@stonecrop/atable 0.5.0 → 0.6.1

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.
@@ -1,3 +1,3 @@
1
- (function(N,t){typeof exports=="object"&&typeof module<"u"?t(exports,require("vue"),require("pinia")):typeof define=="function"&&define.amd?define(["exports","vue","pinia"],t):(N=typeof globalThis<"u"?globalThis:N||self,t(N["@stonecrop/atable"]={},N.Vue,N.pinia))})(this,(function(N,t,Ke){"use strict";var Re=document.createElement("style");Re.textContent=`@import"https://fonts.googleapis.com/css2?family=Arimo:ital,wght@0,400..700;1,400..700&display=swap";.atable-cell{border-radius:0;box-sizing:border-box;margin:0;outline:none;box-shadow:none;color:var(--sc-cell-text-color);padding-left:.5ch!important;padding-right:.5ch;padding-top:var(--sc-atable-row-padding);padding-bottom:var(--sc-atable-row-padding);border-spacing:0px;border-collapse:collapse;overflow:hidden;text-overflow:ellipsis;order:1;white-space:nowrap;max-width:40ch;border-top:1px solid var(--sc-row-border-color)}.atable-cell a{color:var(--sc-cell-text-color);text-decoration:none}.atable-cell:focus,.atable-cell:focus-within{background-color:var(--sc-focus-cell-background);outline-width:var(--sc-atable-cell-border-width);outline-style:solid;outline-offset:calc(var(--sc-atable-cell-border-width) * -1);outline-color:var(--sc-focus-cell-outline);box-shadow:none;overflow:hidden;text-wrap:nowrap;box-sizing:border-box}.cell-modified{font-weight:700;font-style:italic}.cell-modified-highlight{background-color:var(--sc-cell-changed-color)}.row-index{color:var(--sc-header-text-color);font-weight:700;text-align:center;-webkit-user-select:none;user-select:none;width:2ch;display:flex;align-items:center;justify-content:center}.expandable-row{border-top:1px solid var(--sc-row-border-color);height:var(--sc-atable-row-height)}.expandable-row>td:first-child{border-left:4px solid var(--sc-row-border-color)}.expanded-row{border-left:2px solid var(--sc-row-border-color)}.expandable-row:last-child{border-bottom:1px solid var(--sc-row-border-color)}.expanded-row-content{border-top:1px solid var(--sc-row-border-color);padding:1.5rem}.expandable-row.changed-row-gradient[data-v-a42297c7]:has(td.cell-modified){--cell-color-start: color-mix(in srgb, var(--sc-cell-changed-color), #fff 20%);--cell-color-end: color-mix(in srgb, var(--sc-cell-changed-color), #fff 60%);background:linear-gradient(90deg,var(--cell-color-start),var(--cell-color-end))}.aganttcell[data-v-8917a8a3]{background-color:#f9f9f9;width:100%;padding:0;height:100%}.gantt-container[data-v-8917a8a3]{position:relative;height:100%;background-color:#f0f0f0;border-radius:4px;overflow:visible}.gantt-bar[data-v-8917a8a3]{position:absolute;border-radius:4px;display:flex;align-items:center;justify-content:space-between;cursor:grab;box-sizing:border-box;border:1px solid rgba(0,0,0,.5);transition:left .1s ease-out,width .1s ease-out;height:80%;top:50%;z-index:2;transform:translateY(-50%)}.gantt-bar[data-v-8917a8a3]:active{cursor:grabbing}.gantt-bar.is-dragging[data-v-8917a8a3]{z-index:10}.gantt-label[data-v-8917a8a3]{flex:1;text-align:center;font-size:12px;color:#aaa;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 8px;-webkit-user-select:none;user-select:none}.resize-handle[data-v-8917a8a3]{position:relative;width:12px;height:100%;cursor:ew-resize;display:flex;align-items:center;justify-content:center;z-index:0;background:#00000040}.left-resize-handle[data-v-8917a8a3]{border-right:1px solid rgba(0,0,0,.5)}.right-resize-handle[data-v-8917a8a3]{border-left:1px solid rgba(0,0,0,.5)}.handle-grip[data-v-8917a8a3]{width:4px;height:12px;border-radius:2px;background:#000c}.resize-handle[data-v-8917a8a3]:hover{background-color:#ffffff80}.vertical-indicator[data-v-8917a8a3]{position:absolute;width:2px;opacity:0;pointer-events:none;transition:opacity .2s ease;top:-100vh;height:100vh;z-index:5;background-color:var(--v6d722296)}.left-indicator[data-v-8917a8a3]{left:50%;transform:translate(-50%)}.right-indicator[data-v-8917a8a3]{right:50%;transform:translate(50%)}.resize-handle.is-dragging .vertical-indicator[data-v-8917a8a3]{opacity:.7}.gantt-container[data-v-8917a8a3]:after{content:"";position:absolute;inset:0;background-size:calc(100% / var(--v260b36f8)) 100%;background-image:linear-gradient(to right,rgba(0,0,0,.1) 1px,transparent 1px);pointer-events:none;z-index:1}.connection-handle[data-v-8917a8a3]{position:absolute;top:50%;transform:translateY(-50%);width:16px;height:16px;opacity:0;transition:opacity .2s ease;cursor:crosshair;z-index:15;display:flex;align-items:center;justify-content:center}.connection-handle.visible[data-v-8917a8a3]{opacity:1}.left-connection-handle[data-v-8917a8a3]{left:-16px}.right-connection-handle[data-v-8917a8a3]{right:-16px}.connection-dot[data-v-8917a8a3]{width:8px;height:8px;border-radius:50%;background-color:#2196f3;border:2px solid white;box-shadow:0 1px 3px #0000004d}.connection-handle:hover .connection-dot[data-v-8917a8a3]{background-color:#1976d2;transform:scale(1.2)}.connection-handle.is-dragging[data-v-8917a8a3]{opacity:1!important}.connection-handle.is-dragging .connection-dot[data-v-8917a8a3]{background-color:#1976d2;transform:scale(1.3);box-shadow:0 2px 8px #2196f366}.atable-row{background-color:#fff}.atable-row>td:first-child{border-left:4px solid var(--sc-row-border-color)}.list-index{color:var(--sc-header-text-color);font-weight:700;padding-left:var(--sc-atable-row-padding);padding-right:.5em;text-align:left;-webkit-user-select:none;user-select:none;width:7ch;text-overflow:ellipsis;overflow:hidden;box-sizing:border-box;padding-top:var(--sc-atable-row-padding);padding-bottom:var(--sc-atable-row-padding)}.tree-index{color:var(--sc-header-text-color);font-weight:700;text-align:center;-webkit-user-select:none;user-select:none;width:2ch;box-sizing:border-box;padding-top:var(--sc-atable-row-padding);padding-bottom:var(--sc-atable-row-padding)}.atable-row:has(td.cell-modified)>td.sticky-column,.atable-row:has(td.cell-modified)>th.sticky-column,.atable-row:has(td.cell-modified)>td.sticky-index,.atable-row:has(td.cell-modified)>th.sticky-index{background:var(--sc-cell-changed-color)}.atable-row.changed-row-gradient[data-v-0fa91f83]:has(td.cell-modified){--cell-color-start: color-mix(in srgb, var(--sc-cell-changed-color), #fff 20%);--cell-color-end: color-mix(in srgb, var(--sc-cell-changed-color), #fff 60%);background:linear-gradient(90deg,var(--cell-color-start),var(--cell-color-end))}.gantt-connection-overlay[data-v-71911260]{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:1}.connection-path[data-v-71911260]{transition:stroke-width .2s ease;pointer-events:auto;cursor:pointer;stroke-dasharray:5px;stroke:var(--sc-cell-text-color)}#arrowhead-marker polygon[data-v-71911260]{fill:var(--sc-cell-text-color)}.animated-path[data-v-71911260]{animation:animated-dash-71911260 infinite 1.5s linear}.connection-path[data-v-71911260]:hover{stroke-width:3px}.connection-hitbox[data-v-71911260]{pointer-events:auto;cursor:pointer}@keyframes animated-dash-71911260{0%{stroke-dashoffset:0px}to{stroke-dashoffset:-10px}}.atable-header-row th{padding-left:.5ch!important;font-weight:700;padding-top:var(--sc-atable-row-padding);padding-bottom:var(--sc-atable-row-padding);box-sizing:border-box;color:var(--sc-header-text-color);position:relative}#header-index{padding-left:var(--sc-atable-row-padding);box-sizing:border-box}.tree-index{padding-right:0}th{order:1}.list-expansion-index{width:2ch;margin-left:5px}:root{--sc-primary-color: #0098c9;--sc-primary-text-color: #ffffff;--sc-brand-color: #202a44;--sc-gray-5: #f2f2f2;--sc-gray-10: #e6e6e6;--sc-gray-20: #cccccc;--sc-gray-50: #808080;--sc-gray-60: #666666;--sc-gray-80: #333333;--sc-brand-danger: #e63c28;--sc-brand-success: #155724;--sc-brand-warning: #b99d3e;--sc-active-cell-background: #ffffff;--sc-active-cell-outline: #e6a92d;--sc-cell-border-color: #ffffff;--sc-cell-text-color: #3a3c41;--sc-focus-cell-background: #ffffff;--sc-focus-cell-outline: #000000;--sc-header-border-color: #ffffff;--sc-header-text-color: var(--sc-gray-20);--sc-row-border-color: var(--sc-gray-20);--sc-row-color-zebra-dark: #dddddd;--sc-row-color-zebra-light: #eeeeee;--sc-row-number-background-color: #ffffff;--sc-input-active-border-color: #000000;--sc-input-active-label-color: #000000;--sc-input-border-color: var(--sc-gray-20);--sc-input-label-color: var(--sc-gray-60);--sc-required-border: #e63c28;--sc-cell-changed-color: #d8edff;--sc-form-border: var(--sc-gray-5);--sc-form-background: #ffffff;--sc-input-field-background: #ffffff;--sc-input-field-disabled-background: var(--sc-gray-5);--sc-font-size: 10px;--sc-font-family: Arimo, Arial, sans-serif;--sc-table-font-size: 16px;--sc-atable-font-family: "Arimo", sans-serif;--sc-atable-row-padding: .125rem;--sc-atable-row-height: 1.5em;--sc-atable-cell-border-width: 2px;--sc-table-loading-color: 204, 204, 204;--sc-btn-border: #cccccc;--sc-btn-color: white;--sc-btn-hover: #f2f2f2;--sc-btn-label-color: black}.amodal{position:absolute;background-color:var(--sc-row-color-zebra-dark);z-index:5}.atable-container{position:relative}.sticky-index{position:sticky;left:0;z-index:10;order:0}.sticky-column,th.sticky-column,td.sticky-column,th.sticky-index,td.sticky-index{position:sticky;z-index:10;order:0;background:#fff}.sticky-column-edge,.atable th.sticky-column-edge{border-right:1px solid var(--sc-row-border-color)}[data-v-50e8e2bf]:root{--sc-primary-color: #0098c9;--sc-primary-text-color: #ffffff;--sc-brand-color: #202a44;--sc-gray-5: #f2f2f2;--sc-gray-10: #e6e6e6;--sc-gray-20: #cccccc;--sc-gray-50: #808080;--sc-gray-60: #666666;--sc-gray-80: #333333;--sc-brand-danger: #e63c28;--sc-brand-success: #155724;--sc-brand-warning: #b99d3e;--sc-active-cell-background: #ffffff;--sc-active-cell-outline: #e6a92d;--sc-cell-border-color: #ffffff;--sc-cell-text-color: #3a3c41;--sc-focus-cell-background: #ffffff;--sc-focus-cell-outline: #000000;--sc-header-border-color: #ffffff;--sc-header-text-color: var(--sc-gray-20);--sc-row-border-color: var(--sc-gray-20);--sc-row-color-zebra-dark: #dddddd;--sc-row-color-zebra-light: #eeeeee;--sc-row-number-background-color: #ffffff;--sc-input-active-border-color: #000000;--sc-input-active-label-color: #000000;--sc-input-border-color: var(--sc-gray-20);--sc-input-label-color: var(--sc-gray-60);--sc-required-border: #e63c28;--sc-cell-changed-color: #d8edff;--sc-form-border: var(--sc-gray-5);--sc-form-background: #ffffff;--sc-input-field-background: #ffffff;--sc-input-field-disabled-background: var(--sc-gray-5);--sc-font-size: 10px;--sc-font-family: Arimo, Arial, sans-serif;--sc-table-font-size: 16px;--sc-atable-font-family: "Arimo", sans-serif;--sc-atable-row-padding: .125rem;--sc-atable-row-height: 1.5em;--sc-atable-cell-border-width: 2px;--sc-table-loading-color: 204, 204, 204;--sc-btn-border: #cccccc;--sc-btn-color: white;--sc-btn-hover: #f2f2f2;--sc-btn-label-color: black}.atable[data-v-50e8e2bf]{position:relative;font-family:var(--sc-atable-font-family);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:var(--sc-table-font-size);border-collapse:collapse;box-sizing:border-box;table-layout:auto;width:auto;overflow:clip;height:1px}.atable th[data-v-50e8e2bf]{border-width:0px;border-style:solid;border-radius:0;padding-left:.5ch;padding-right:.5ch;padding-top:var(--sc-atable-row-padding);padding-bottom:var(--sc-atable-row-padding);color:var(--sc-gray-60);height:var(--sc-atable-row-height);font-weight:300;letter-spacing:.05rem;order:1;box-sizing:border-box}.atable th[data-v-50e8e2bf]:focus{outline:none}.atable[data-v-50e8e2bf]:tbody{overflow:hidden;position:relative}.atable[data-v-50e8e2bf]:tbody:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background-color:transparent;z-index:100}.aloading[data-v-a930a25b]{width:100%;border-top:1px solid var(--sc-row-border-color);border-bottom:1px solid var(--sc-row-border-color);display:flex;background-color:#fff;border-left:4px solid var(--sc-row-border-color);padding-left:.5ch!important;padding-right:.5ch;padding-top:var(--sc-atable-row-padding);padding-bottom:var(--sc-atable-row-padding);align-items:center;box-sizing:border-box;background:var(--sc-focus-cell-background);overflow:hidden;position:relative}.aloading-bar[data-v-a930a25b]{width:100%;height:100%;position:absolute;left:-100%;top:0;background:linear-gradient(90deg,rgba(var(--sc-table-loading-color),0),rgba(var(--sc-table-loading-color),1),rgba(var(--sc-table-loading-color),0));animation:gradient-a930a25b infinite 2s;z-index:0}.aloading-header[data-v-a930a25b]{color:var(--sc-cell-text-color);font-family:var(--sc-atable-font-family);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:var(--sc-table-font-size);padding:0;margin:0;font-weight:400;z-index:1}.aloading-header[data-v-a930a25b]:after{content:"...";animation:ellipse-a930a25b 2s;animation-iteration-count:infinite}@keyframes gradient-a930a25b{0%{left:-100%}to{left:100%}}@keyframes ellipse-a930a25b{0%{content:""}20%{content:""}40%{content:"."}60%{content:".."}80%{content:"..."}}.aloading[data-v-e1165876]{width:100%;border-top:1px solid var(--sc-row-border-color);border-bottom:1px solid var(--sc-row-border-color);display:flex;background-color:#fff;border-left:4px solid var(--sc-row-border-color);padding-left:.5ch!important;padding-right:.5ch;padding-top:var(--sc-atable-row-padding);padding-bottom:var(--sc-atable-row-padding);align-items:center;box-sizing:border-box;background:var(--sc-focus-cell-background);overflow:hidden;position:relative}.aloading-bar[data-v-e1165876]{width:50%;height:3px;position:absolute;left:-100%;bottom:0;background:var(--sc-row-border-color);animation:bar-left-e1165876 infinite 2s;z-index:0}.aloading-header[data-v-e1165876]{color:var(--sc-cell-text-color);font-family:var(--sc-atable-font-family);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:var(--sc-table-font-size);padding:0;margin:0;font-weight:400;z-index:1}.aloading-header[data-v-e1165876]:after{content:"...";animation:ellipse-e1165876 2s;animation-iteration-count:infinite}@keyframes bar-left-e1165876{0%{left:-50%}to{left:100%}}@keyframes ellipse-e1165876{0%{content:""}20%{content:""}40%{content:"."}60%{content:".."}80%{content:"..."}}
2
- /*$vite$:1*/`,document.head.appendChild(Re);function ce(e,n){return t.getCurrentScope()?(t.onScopeDispose(e,n),!0):!1}const _e=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const et=e=>e!=null,tt=Object.prototype.toString,nt=e=>tt.call(e)==="[object Object]",ot=()=>{};function _(e){return Array.isArray(e)?e:[e]}function at(e,n,i){return t.watch(e,n,{...i,immediate:!0})}const q=_e?window:void 0;function J(e){var n;const i=t.toValue(e);return(n=i?.$el)!==null&&n!==void 0?n:i}function Z(...e){const n=[],i=()=>{n.forEach(o=>o()),n.length=0},d=(o,r,u,m)=>(o.addEventListener(r,u,m),()=>o.removeEventListener(r,u,m)),f=t.computed(()=>{const o=_(t.toValue(e[0])).filter(r=>r!=null);return o.every(r=>typeof r!="string")?o:void 0}),s=at(()=>{var o,r;return[(o=(r=f.value)===null||r===void 0?void 0:r.map(u=>J(u)))!==null&&o!==void 0?o:[q].filter(u=>u!=null),_(t.toValue(f.value?e[1]:e[0])),_(t.unref(f.value?e[2]:e[1])),t.toValue(f.value?e[3]:e[2])]},([o,r,u,m])=>{if(i(),!o?.length||!r?.length||!u?.length)return;const v=nt(m)?{...m}:m;n.push(...o.flatMap(E=>r.flatMap(b=>u.map(k=>d(E,b,k,v)))))},{flush:"post"}),l=()=>{s(),i()};return ce(i),l}function lt(){const e=t.shallowRef(!1),n=t.getCurrentInstance();return n&&t.onMounted(()=>{e.value=!0},n),e}function rt(e){const n=lt();return t.computed(()=>(n.value,!!e()))}function it(e,n,i={}){const{window:d=q,...f}=i;let s;const l=rt(()=>d&&"MutationObserver"in d),o=()=>{s&&(s.disconnect(),s=void 0)},r=t.watch(t.computed(()=>{const v=_(t.toValue(e)).map(J).filter(et);return new Set(v)}),v=>{o(),l.value&&v.size&&(s=new MutationObserver(n),v.forEach(E=>s.observe(E,f)))},{immediate:!0,flush:"post"}),u=()=>s?.takeRecords(),m=()=>{r(),o()};return ce(m),{isSupported:l,stop:m,takeRecords:u}}function st(e,n,i={}){const{window:d=q,document:f=d?.document,flush:s="sync"}=i;if(!d||!f)return ot;let l;const o=m=>{l?.(),l=m},r=t.watchEffect(()=>{const m=J(e);if(m){const{stop:v}=it(f,E=>{E.map(b=>[...b.removedNodes]).flat().some(b=>b===m||b.contains(m))&&n(E)},{window:d,childList:!0,subtree:!0});o(v)}},{flush:s}),u=()=>{r(),o()};return ce(u),u}function ct(e={}){var n;const{window:i=q,deep:d=!0,triggerOnRemoval:f=!1}=e,s=(n=e.document)!==null&&n!==void 0?n:i?.document,l=()=>{let u=s?.activeElement;if(d)for(var m;u?.shadowRoot;)u=u==null||(m=u.shadowRoot)===null||m===void 0?void 0:m.activeElement;return u},o=t.shallowRef(),r=()=>{o.value=l()};if(i){const u={capture:!0,passive:!0};Z(i,"blur",m=>{m.relatedTarget===null&&r()},u),Z(i,"focus",r,u)}return f&&st(o,r,{document:s}),r(),o}const dt="focusin",ft="focusout",ut=":focus-within";function gt(e,n={}){const{window:i=q}=n,d=t.computed(()=>J(e)),f=t.shallowRef(!1),s=t.computed(()=>f.value);if(!i||!ct(n).value)return{focused:s};const l={passive:!0};return Z(d,dt,()=>f.value=!0,l),Z(d,ft,()=>{var o,r,u;return f.value=(o=(r=d.value)===null||r===void 0||(u=r.matches)===null||u===void 0?void 0:u.call(r,ut))!==null&&o!==void 0?o:!1},l),{focused:s}}function mt(e,{window:n=q,scrollTarget:i}={}){const d=t.ref(!1),f=()=>{if(!n)return;const s=n.document,l=J(e);if(!l)d.value=!1;else{const o=l.getBoundingClientRect();d.value=o.top<=(n.innerHeight||s.documentElement.clientHeight)&&o.left<=(n.innerWidth||s.documentElement.clientWidth)&&o.bottom>=0&&o.right>=0}};return t.watch(()=>J(e),()=>f(),{immediate:!0,flush:"post"}),n&&Z(i||n,"scroll",f,{capture:!1,passive:!0}),d}const L=e=>{let n=mt(e).value;return n=n&&e.offsetHeight>0,n},W=e=>e.tabIndex>=0,$e=e=>{const n=e.target;return de(n)},de=e=>{let n;if(e instanceof HTMLTableCellElement){const i=e.parentElement?.previousElementSibling;if(i){const d=Array.from(i.children)[e.cellIndex];d&&(n=d)}}else if(e instanceof HTMLTableRowElement){const i=e.previousElementSibling;i&&(n=i)}return n&&(!W(n)||!L(n))?de(n):n},ht=e=>{const n=e.target;let i;if(n instanceof HTMLTableCellElement){const d=n.parentElement?.parentElement;if(d){const f=d.firstElementChild?.children[n.cellIndex];f&&(i=f)}}else if(n instanceof HTMLTableRowElement){const d=n.parentElement;if(d){const f=d.firstElementChild;f&&(i=f)}}return i&&(!W(i)||!L(i))?fe(i):i},ze=e=>{const n=e.target;return fe(n)},fe=e=>{let n;if(e instanceof HTMLTableCellElement){const i=e.parentElement?.nextElementSibling;if(i){const d=Array.from(i.children)[e.cellIndex];d&&(n=d)}}else if(e instanceof HTMLTableRowElement){const i=e.nextElementSibling;i&&(n=i)}return n&&(!W(n)||!L(n))?fe(n):n},pt=e=>{const n=e.target;let i;if(n instanceof HTMLTableCellElement){const d=n.parentElement?.parentElement;if(d){const f=d.lastElementChild?.children[n.cellIndex];f&&(i=f)}}else if(n instanceof HTMLTableRowElement){const d=n.parentElement;if(d){const f=d.lastElementChild;f&&(i=f)}}return i&&(!W(i)||!L(i))?de(i):i},Me=e=>{const n=e.target;return ue(n)},ue=e=>{let n;return e.previousElementSibling?n=e.previousElementSibling:n=e.parentElement?.previousElementSibling?.lastElementChild,n&&(!W(n)||!L(n))?ue(n):n},Te=e=>{const n=e.target;return ge(n)},ge=e=>{let n;return e.nextElementSibling?n=e.nextElementSibling:n=e.parentElement?.nextElementSibling?.firstElementChild,n&&(!W(n)||!L(n))?ge(n):n},Ae=e=>{const n=e.target.parentElement?.firstElementChild;return n&&(!W(n)||!L(n))?ge(n):n},Ve=e=>{const n=e.target.parentElement?.lastElementChild;return n&&(!W(n)||!L(n))?ue(n):n},ee=["alt","control","shift","meta"],bt={ArrowUp:"up",ArrowDown:"down",ArrowLeft:"left",ArrowRight:"right"},te={"keydown.up":e=>{const n=$e(e);n&&(e.preventDefault(),e.stopPropagation(),n.focus())},"keydown.down":e=>{const n=ze(e);n&&(e.preventDefault(),e.stopPropagation(),n.focus())},"keydown.left":e=>{const n=Me(e);e.preventDefault(),e.stopPropagation(),n&&n.focus()},"keydown.right":e=>{const n=Te(e);e.preventDefault(),e.stopPropagation(),n&&n.focus()},"keydown.control.up":e=>{const n=ht(e);n&&(e.preventDefault(),e.stopPropagation(),n.focus())},"keydown.control.down":e=>{const n=pt(e);n&&(e.preventDefault(),e.stopPropagation(),n.focus())},"keydown.control.left":e=>{const n=Ae(e);n&&(e.preventDefault(),e.stopPropagation(),n.focus())},"keydown.control.right":e=>{const n=Ve(e);n&&(e.preventDefault(),e.stopPropagation(),n.focus())},"keydown.end":e=>{const n=Ve(e);n&&(e.preventDefault(),e.stopPropagation(),n.focus())},"keydown.enter":e=>{if(e.target instanceof HTMLTableCellElement){e.preventDefault(),e.stopPropagation();const n=ze(e);n&&n.focus()}},"keydown.shift.enter":e=>{if(e.target instanceof HTMLTableCellElement){e.preventDefault(),e.stopPropagation();const n=$e(e);n&&n.focus()}},"keydown.home":e=>{const n=Ae(e);n&&(e.preventDefault(),e.stopPropagation(),n.focus())},"keydown.tab":e=>{const n=Te(e);n&&(e.preventDefault(),e.stopPropagation(),n.focus())},"keydown.shift.tab":e=>{const n=Me(e);n&&(e.preventDefault(),e.stopPropagation(),n.focus())}};function me(e){const n=l=>{let o=null;return l.parent&&(typeof l.parent=="string"?o=document.querySelector(l.parent):l.parent instanceof HTMLElement?o=l.parent:o=l.parent.value),o},i=l=>{const o=n(l);let r=[];if(typeof l.selectors=="string")r=o?Array.from(o.querySelectorAll(l.selectors)):Array.from(document.querySelectorAll(l.selectors));else if(Array.isArray(l.selectors))for(const u of l.selectors)u instanceof HTMLElement?r.push(u):r.push(u.$el);else if(l.selectors instanceof HTMLElement)r.push(l.selectors);else if(l.selectors?.value)if(Array.isArray(l.selectors.value))for(const u of l.selectors.value)u instanceof HTMLElement?r.push(u):r.push(u.$el);else r.push(l.selectors.value);return r},d=l=>{const o=n(l);let r=[];return l.selectors?r=i(l):o&&(r=Array.from(o.children).filter(u=>W(u)&&L(u))),r},f=l=>o=>{const r=bt[o.key]||o.key.toLowerCase();if(ee.includes(r))return;const u=l.handlers||te;for(const m of Object.keys(u)){const[v,...E]=m.split(".");if(v==="keydown"&&E.includes(r)){const b=u[m],k=E.filter(g=>ee.includes(g)),w=ee.some(g=>{const h=g.charAt(0).toUpperCase()+g.slice(1);return o.getModifierState(h)});if(k.length>0){if(w){for(const g of ee)if(E.includes(g)){const h=g.charAt(0).toUpperCase()+g.slice(1);o.getModifierState(h)&&b(o)}}}else w||b(o)}}},s=[];t.onMounted(()=>{for(const l of e){const o=n(l),r=d(l),u=f(l),m=o?[o]:r;for(const v of m){const{focused:E}=gt(t.ref(v)),b=t.watch(E,k=>{k?v.addEventListener("keydown",u):v.removeEventListener("keydown",u)});s.push(b)}}}),t.onBeforeUnmount(()=>{for(const l of s)l()})}function ne(e,n){return t.getCurrentScope()?(t.onScopeDispose(e,n),!0):!1}const De=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const wt=e=>e!=null,xt=Object.prototype.toString,vt=e=>xt.call(e)==="[object Object]",F=()=>{};function yt(...e){if(e.length!==1)return t.toRef(...e);const n=e[0];return typeof n=="function"?t.readonly(t.customRef(()=>({get:n,set:F}))):t.ref(n)}function kt(e,n){function i(...d){return new Promise((f,s)=>{Promise.resolve(e(()=>n.apply(this,d),{fn:n,thisArg:this,args:d})).then(f).catch(s)})}return i}function Ct(e,n={}){let i,d,f=F;const s=r=>{clearTimeout(r),f(),f=F};let l;return r=>{const u=t.toValue(e),m=t.toValue(n.maxWait);return i&&s(i),u<=0||m!==void 0&&m<=0?(d&&(s(d),d=void 0),Promise.resolve(r())):new Promise((v,E)=>{f=n.rejectOnCancel?E:v,l=r,m&&!d&&(d=setTimeout(()=>{i&&s(i),d=void 0,v(l())},m)),i=setTimeout(()=>{d&&s(d),d=void 0,v(r())},u)})}}function oe(e){return Array.isArray(e)?e:[e]}function Et(e){return t.getCurrentInstance()}function It(e,n=200,i={}){return kt(Ct(n,i),e)}function St(e,n={}){if(!t.isRef(e))return t.toRefs(e);const i=Array.isArray(e.value)?Array.from({length:e.value.length}):{};for(const d in e.value)i[d]=t.customRef(()=>({get(){return e.value[d]},set(f){var s;if(!((s=t.toValue(n.replaceRef))!==null&&s!==void 0)||s)if(Array.isArray(e.value)){const l=[...e.value];l[d]=f,e.value=l}else{const l={...e.value,[d]:f};Object.setPrototypeOf(l,Object.getPrototypeOf(e.value)),e.value=l}else e.value[d]=f}}));return i}function Bt(e,n=!0,i){Et()?t.onMounted(e,i):n?e():t.nextTick(e)}function Rt(e,n,i){return t.watch(e,n,{...i,immediate:!0})}const Q=De?window:void 0;function H(e){var n;const i=t.toValue(e);return(n=i?.$el)!==null&&n!==void 0?n:i}function G(...e){const n=[],i=()=>{n.forEach(o=>o()),n.length=0},d=(o,r,u,m)=>(o.addEventListener(r,u,m),()=>o.removeEventListener(r,u,m)),f=t.computed(()=>{const o=oe(t.toValue(e[0])).filter(r=>r!=null);return o.every(r=>typeof r!="string")?o:void 0}),s=Rt(()=>{var o,r;return[(o=(r=f.value)===null||r===void 0?void 0:r.map(u=>H(u)))!==null&&o!==void 0?o:[Q].filter(u=>u!=null),oe(t.toValue(f.value?e[1]:e[0])),oe(t.unref(f.value?e[2]:e[1])),t.toValue(f.value?e[3]:e[2])]},([o,r,u,m])=>{if(i(),!o?.length||!r?.length||!u?.length)return;const v=vt(m)?{...m}:m;n.push(...o.flatMap(E=>r.flatMap(b=>u.map(k=>d(E,b,k,v)))))},{flush:"post"}),l=()=>{s(),i()};return ne(i),l}function Ne(e,n,i={}){const{window:d=Q,ignore:f=[],capture:s=!0,detectIframe:l=!1,controls:o=!1}=i;if(!d)return o?{stop:F,cancel:F,trigger:F}:F;let r=!0;const u=g=>t.toValue(f).some(h=>{if(typeof h=="string")return Array.from(d.document.querySelectorAll(h)).some(y=>y===g.target||g.composedPath().includes(y));{const y=H(h);return y&&(g.target===y||g.composedPath().includes(y))}});function m(g){const h=t.toValue(g);return h&&h.$.subTree.shapeFlag===16}function v(g,h){const y=t.toValue(g),T=y.$.subTree&&y.$.subTree.children;return T==null||!Array.isArray(T)?!1:T.some(A=>A.el===h.target||h.composedPath().includes(A.el))}const E=g=>{const h=H(e);if(g.target!=null&&!(!(h instanceof Element)&&m(e)&&v(e,g))&&!(!h||h===g.target||g.composedPath().includes(h))){if("detail"in g&&g.detail===0&&(r=!u(g)),!r){r=!0;return}n(g)}};let b=!1;const k=[G(d,"click",g=>{b||(b=!0,setTimeout(()=>{b=!1},0),E(g))},{passive:!0,capture:s}),G(d,"pointerdown",g=>{const h=H(e);r=!u(g)&&!!(h&&!g.composedPath().includes(h))},{passive:!0}),l&&G(d,"blur",g=>{setTimeout(()=>{var h;const y=H(e);((h=d.document.activeElement)===null||h===void 0?void 0:h.tagName)==="IFRAME"&&!y?.contains(d.document.activeElement)&&n(g)},0)},{passive:!0})].filter(Boolean),w=()=>k.forEach(g=>g());return o?{stop:w,cancel:()=>{r=!1},trigger:g=>{r=!0,E(g),r=!1}}:w}function $t(){const e=t.shallowRef(!1),n=t.getCurrentInstance();return n&&t.onMounted(()=>{e.value=!0},n),e}function Oe(e){const n=$t();return t.computed(()=>(n.value,!!e()))}function Pe(e,n,i={}){const{window:d=Q,...f}=i;let s;const l=Oe(()=>d&&"MutationObserver"in d),o=()=>{s&&(s.disconnect(),s=void 0)},r=t.watch(t.computed(()=>{const v=oe(t.toValue(e)).map(H).filter(wt);return new Set(v)}),v=>{o(),l.value&&v.size&&(s=new MutationObserver(n),v.forEach(E=>s.observe(E,f)))},{immediate:!0,flush:"post"}),u=()=>s?.takeRecords(),m=()=>{r(),o()};return ne(m),{isSupported:l,stop:m,takeRecords:u}}function he(e,n={}){var i;const{pointerTypes:d,preventDefault:f,stopPropagation:s,exact:l,onMove:o,onEnd:r,onStart:u,initialValue:m,axis:v="both",draggingElement:E=Q,containerElement:b,handle:k=e,buttons:w=[0]}=n,g=t.ref((i=t.toValue(m))!==null&&i!==void 0?i:{x:0,y:0}),h=t.ref(),y=x=>d?d.includes(x.pointerType):!0,T=x=>{t.toValue(f)&&x.preventDefault(),t.toValue(s)&&x.stopPropagation()},A=x=>{var B;if(!t.toValue(w).includes(x.button)||t.toValue(n.disabled)||!y(x)||t.toValue(l)&&x.target!==t.toValue(e))return;const D=t.toValue(b),V=D==null||(B=D.getBoundingClientRect)===null||B===void 0?void 0:B.call(D),z=t.toValue(e).getBoundingClientRect(),P={x:x.clientX-(D?z.left-V.left+D.scrollLeft:z.left),y:x.clientY-(D?z.top-V.top+D.scrollTop:z.top)};u?.(P,x)!==!1&&(h.value=P,T(x))},O=x=>{if(t.toValue(n.disabled)||!y(x)||!h.value)return;const B=t.toValue(b),D=t.toValue(e).getBoundingClientRect();let{x:V,y:z}=g.value;(v==="x"||v==="both")&&(V=x.clientX-h.value.x,B&&(V=Math.min(Math.max(0,V),B.scrollWidth-D.width))),(v==="y"||v==="both")&&(z=x.clientY-h.value.y,B&&(z=Math.min(Math.max(0,z),B.scrollHeight-D.height))),g.value={x:V,y:z},o?.(g.value,x),T(x)},$=x=>{t.toValue(n.disabled)||!y(x)||h.value&&(h.value=void 0,r?.(g.value,x),T(x))};if(De){const x=()=>{var B;return{capture:(B=n.capture)!==null&&B!==void 0?B:!0,passive:!t.toValue(f)}};G(k,"pointerdown",A,x),G(E,"pointermove",O,x),G(E,"pointerup",$,x)}return{...St(g),position:g,isDragging:t.computed(()=>!!h.value),style:t.computed(()=>`left:${g.value.x}px;top:${g.value.y}px;`)}}function pe(e,n,i={}){const{window:d=Q,...f}=i;let s;const l=Oe(()=>d&&"ResizeObserver"in d),o=()=>{s&&(s.disconnect(),s=void 0)},r=t.watch(t.computed(()=>{const m=t.toValue(e);return Array.isArray(m)?m.map(v=>H(v)):[H(m)]}),m=>{if(o(),l.value&&d){s=new ResizeObserver(n);for(const v of m)v&&s.observe(v,f)}},{immediate:!0,flush:"post"}),u=()=>{o(),r()};return ne(u),{isSupported:l,stop:u}}function Y(e,n={}){const{reset:i=!0,windowResize:d=!0,windowScroll:f=!0,immediate:s=!0,updateTiming:l="sync"}=n,o=t.shallowRef(0),r=t.shallowRef(0),u=t.shallowRef(0),m=t.shallowRef(0),v=t.shallowRef(0),E=t.shallowRef(0),b=t.shallowRef(0),k=t.shallowRef(0);function w(){const h=H(e);if(!h){i&&(o.value=0,r.value=0,u.value=0,m.value=0,v.value=0,E.value=0,b.value=0,k.value=0);return}const y=h.getBoundingClientRect();o.value=y.height,r.value=y.bottom,u.value=y.left,m.value=y.right,v.value=y.top,E.value=y.width,b.value=y.x,k.value=y.y}function g(){l==="sync"?w():l==="next-frame"&&requestAnimationFrame(()=>w())}return pe(e,g),t.watch(()=>H(e),h=>!h&&g()),Pe(e,g,{attributeFilter:["style","class"]}),f&&G("scroll",g,{capture:!0,passive:!0}),d&&G("resize",g,{passive:!0}),Bt(()=>{s&&g()}),{height:o,bottom:r,left:u,right:m,top:v,width:E,x:b,y:k,update:g}}function be(e){return typeof Window<"u"&&e instanceof Window?e.document.documentElement:typeof Document<"u"&&e instanceof Document?e.documentElement:e}const we=new WeakMap;function zt(e,n=!1){const i=t.shallowRef(n);let d="";t.watch(yt(e),l=>{const o=be(t.toValue(l));if(o){const r=o;if(we.get(r)||we.set(r,r.style.overflow),r.style.overflow!=="hidden"&&(d=r.style.overflow),r.style.overflow==="hidden")return i.value=!0;if(i.value)return r.style.overflow="hidden"}},{immediate:!0});const f=()=>{const l=be(t.toValue(e));!l||i.value||(l.style.overflow="hidden",i.value=!0)},s=()=>{const l=be(t.toValue(e));!l||!i.value||(l.style.overflow=d,we.delete(l),i.value=!1)};return ne(s),t.computed({get(){return i.value},set(l){l?f():s()}})}const Mt=e=>{const n=new DOMParser().parseFromString(e,"text/html");return Array.from(n.body.childNodes).some(i=>i.nodeType===1)},Tt=(e=8)=>Array.from({length:e},()=>Math.floor(Math.random()*16).toString(16)).join(""),At=["data-colindex","data-rowindex","data-editable","contenteditable","tabindex"],Vt=["innerHTML"],Dt={key:2},He=t.defineComponent({__name:"ACell",props:{colIndex:{},rowIndex:{},store:{},addNavigation:{type:[Boolean,Object],default:!0},tabIndex:{default:0},pinned:{type:Boolean,default:!1},debounce:{default:300}},setup(e,{expose:n}){const i=t.useTemplateRef("cell"),d=e.store.getCellData(e.colIndex,e.rowIndex),f=t.ref(""),s=t.ref(!1),l=e.store.columns[e.colIndex],o=e.store.rows[e.rowIndex],r=l.align||"center",u=l.width||"40ch",m=t.computed(()=>e.store.getCellDisplayValue(e.colIndex,e.rowIndex)),v=t.computed(()=>typeof m.value=="string"?Mt(m.value):!1),E=t.computed(()=>({textAlign:r,width:u,fontWeight:s.value?"bold":"inherit",paddingLeft:e.store.getIndent(e.colIndex,e.store.display[e.rowIndex]?.indent)})),b=t.computed(()=>({"sticky-column":e.pinned,"cell-modified":s.value})),k=()=>{g(),w()},w=()=>{const{left:$,bottom:x,width:B,height:D}=Y(i);l.mask,l.modalComponent&&e.store.$patch(V=>{V.modal.visible=!0,V.modal.colIndex=e.colIndex,V.modal.rowIndex=e.rowIndex,V.modal.left=$,V.modal.bottom=x,V.modal.width=B,V.modal.height=D,V.modal.cell=i.value,typeof l.modalComponent=="function"?V.modal.component=l.modalComponent({table:V.table,row:o,column:l}):V.modal.component=l.modalComponent,V.modal.componentProps=l.modalComponentExtraProps})};if(e.addNavigation){let $={...te,"keydown.f2":w,"keydown.alt.up":w,"keydown.alt.down":w,"keydown.alt.left":w,"keydown.alt.right":w};typeof e.addNavigation=="object"&&($={...$,...e.addNavigation}),me([{selectors:i,handlers:$}])}const g=()=>{if(i.value&&l.edit){const $=window.getSelection();if($)try{const x=document.createRange();x.selectNodeContents&&(x.selectNodeContents(i.value),$.removeAllRanges(),$.addRange(x))}catch{}}},h=()=>{i.value&&(f.value=i.value.textContent,g())},y=()=>{try{const $=window.getSelection();if($&&$.rangeCount>0&&i.value){const x=$.getRangeAt(0),B=x.cloneRange();if(B.selectNodeContents&&B.setEnd)return B.selectNodeContents(i.value),B.setEnd(x.endContainer,x.endOffset),B.toString().length}}catch{}return 0},T=$=>{if(i.value)try{const x=window.getSelection();if(!x)return;let B=0;const D=document.createTreeWalker?document.createTreeWalker(i.value,NodeFilter.SHOW_TEXT,null):null;if(!D)return;let V,z=null;for(;V=D.nextNode();){const P=V,X=B+P.textContent.length;if($<=X&&(z=document.createRange(),z.setStart&&z.setEnd)){z.setStart(P,$-B),z.setEnd(P,$-B);break}B=X}z&&x.removeAllRanges&&x.addRange&&(x.removeAllRanges(),x.addRange(z))}catch{}},A=$=>{if(!l.edit)return;const x=$.target;if(x.textContent===f.value)return;const B=y();f.value=x.textContent,l.format?(s.value=x.textContent!==e.store.getFormattedValue(e.colIndex,e.rowIndex,d),e.store.setCellText(e.colIndex,e.rowIndex,x.textContent)):(s.value=x.textContent!==d,e.store.setCellData(e.colIndex,e.rowIndex,x.textContent)),t.nextTick().then(()=>{T(B)})},O=It(A,e.debounce);return n({currentData:f}),($,x)=>(t.openBlock(),t.createElementBlock("td",{ref:"cell","data-colindex":e.colIndex,"data-rowindex":e.rowIndex,"data-editable":t.unref(l).edit,contenteditable:t.unref(l).edit,tabindex:e.tabIndex,spellcheck:!1,style:t.normalizeStyle(E.value),class:t.normalizeClass(["atable-cell",b.value]),onFocus:h,onPaste:A,onInput:x[0]||(x[0]=(...B)=>t.unref(O)&&t.unref(O)(...B)),onClick:k},[t.unref(l).cellComponent?(t.openBlock(),t.createBlock(t.resolveDynamicComponent(t.unref(l).cellComponent),t.mergeProps({key:0,value:m.value},t.unref(l).cellComponentProps),null,16,["value"])):v.value?(t.openBlock(),t.createElementBlock("span",{key:1,innerHTML:m.value},null,8,Vt)):(t.openBlock(),t.createElementBlock("span",Dt,t.toDisplayString(m.value),1))],46,At))}}),Nt=["tabindex"],Ot=["tabindex"],Pt=["colspan"],Ht=t.defineComponent({__name:"AExpansionRow",props:{rowIndex:{},store:{},tabIndex:{default:()=>-1},addNavigation:{type:[Boolean,Object],default:()=>te}},setup(e){const n=t.useTemplateRef("rowEl"),i=t.computed(()=>e.store.display[e.rowIndex].expanded?"▼":"►");if(e.addNavigation){const d={"keydown.control.g":f=>{f.stopPropagation(),f.preventDefault(),e.store.toggleRowExpand(e.rowIndex)}};typeof e.addNavigation=="object"&&Object.assign(d,e.addNavigation),me([{selectors:n,handlers:d}])}return(d,f)=>(t.openBlock(),t.createElementBlock(t.Fragment,null,[t.createElementVNode("tr",t.mergeProps(d.$attrs,{ref:"rowEl",tabindex:e.tabIndex,class:"expandable-row"}),[t.createElementVNode("td",{tabIndex:-1,class:"row-index",onClick:f[0]||(f[0]=s=>e.store.toggleRowExpand(e.rowIndex))},t.toDisplayString(i.value),1),t.renderSlot(d.$slots,"row",{},void 0,!0)],16,Nt),e.store.display[e.rowIndex].expanded?(t.openBlock(),t.createElementBlock("tr",{key:0,ref:"rowExpanded",tabindex:e.tabIndex,class:"expanded-row"},[t.createElementVNode("td",{tabIndex:-1,colspan:e.store.columns.length+1,class:"expanded-row-content"},[t.renderSlot(d.$slots,"content",{},void 0,!0)],8,Pt)],8,Ot)):t.createCommentVNode("",!0)],64))}}),j=(e,n)=>{const i=e.__vccOpts||e;for(const[d,f]of n)i[d]=f;return i},Le=j(Ht,[["__scopeId","data-v-a42297c7"]]),Lt=["colspan"],Wt={ref:"container",class:"gantt-container"},Gt=["data-rowindex","data-colindex"],Xt={key:2,class:"gantt-label"},Ft=["x1","y1","x2","y2"],We=j(t.defineComponent({__name:"AGanttCell",props:{store:{},columnsCount:{},rowIndex:{},colIndex:{},start:{default:0},end:{default:0},colspan:{default:1},label:{default:""},color:{default:"#cccccc"}},emits:["connection:create"],setup(e,{expose:n,emit:i}){t.useCssVars(I=>({v6d722296:f.value,v260b36f8:I.colspan}));const d=i,f=t.ref(e.color.length>=6?e.color:"#cccccc"),s=`gantt-bar-row-${e.rowIndex}-col-${e.colIndex}`,l=t.useTemplateRef("container"),o=t.useTemplateRef("bar"),r=t.useTemplateRef("leftResizeHandle"),u=t.useTemplateRef("rightResizeHandle"),m=t.useTemplateRef("leftConnectionHandle"),v=t.useTemplateRef("rightConnectionHandle"),{width:E}=Y(l),{left:b,right:k}=Y(o),w=t.ref(e.start),g=t.ref(e.end||w.value+e.colspan),h=t.ref(!1),y=t.ref(!1),T=t.ref(!1),A=t.ref(!1),O=t.ref(!1),$=t.ref({startX:0,startY:0,endX:0,endY:0}),x=t.computed(()=>le.value||P.value||X.value),B=t.computed(()=>e.colspan>0?E.value/e.colspan:0),D=t.computed(()=>{const I=w.value/e.colspan*100,a=g.value/e.colspan*100;return{left:`${I}%`,width:`${a-I}%`,backgroundColor:f.value}}),V=t.computed(()=>({position:"fixed",top:0,left:0,width:"100vw",height:"100vh",pointerEvents:"none",zIndex:1e3})),z=t.ref({startX:0,startPos:0}),{isDragging:P}=he(r,{axis:"x",onStart:()=>K(b.value,w.value),onMove:({x:I})=>re(I),onEnd:({x:I})=>Ce(I)}),{isDragging:X}=he(u,{axis:"x",onStart:()=>K(k.value,g.value),onMove:({x:I})=>ie(I),onEnd:({x:I})=>je(I)}),{isDragging:le}=he(o,{exact:!0,axis:"x",onStart:()=>K(b.value,w.value),onMove:({x:I})=>Ue(I),onEnd:({x:I})=>qe(I)});t.onMounted(()=>{Je()}),t.onUnmounted(()=>{Ze()});function K(I,a){o.value&&(o.value.style.transition="none"),z.value={startX:I,startPos:a}}function re(I){if(!P.value||!o.value)return;const c=(I-z.value.startX)/B.value,p=Math.max(0,Math.min(g.value-1,z.value.startPos+c));o.value.style.left=`${p/e.colspan*100}%`,o.value.style.width=`${(g.value-p)/e.colspan*100}%`}function Ce(I){if(!o.value)return;const a=I-z.value.startX,c=Math.round(a/B.value),p=w.value,C=Math.max(0,Math.min(g.value-1,z.value.startPos+c));w.value=C,e.store.updateGanttBar({rowIndex:e.rowIndex,colIndex:e.colIndex,type:"resize",edge:"start",oldStart:p,newStart:C,end:g.value,delta:c,oldColspan:g.value-p,newColspan:g.value-C})}function ie(I){if(!X.value||!o.value)return;const c=(I-z.value.startX)/B.value,p=Math.max(w.value+1,Math.min(e.columnsCount,z.value.startPos+c));o.value.style.width=`${(p-w.value)/e.colspan*100}%`}function je(I){if(!o.value)return;const a=I-z.value.startX,c=Math.round(a/B.value),p=g.value,C=Math.max(w.value+1,Math.min(e.columnsCount,z.value.startPos+c));g.value=C,e.store.updateGanttBar({rowIndex:e.rowIndex,colIndex:e.colIndex,type:"resize",edge:"end",oldEnd:p,newEnd:C,start:w.value,delta:c,oldColspan:p-w.value,newColspan:C-w.value})}function Ue(I){if(!le.value||!o.value)return;const c=(I-z.value.startX)/B.value,p=g.value-w.value,C=Math.max(0,Math.min(z.value.startPos+c,e.columnsCount-p));o.value.style.left=`${C/e.colspan*100}%`}function qe(I){if(!o.value)return;const a=I-z.value.startX,c=Math.round(a/B.value),p=g.value-w.value,C=w.value,M=g.value;let S=z.value.startPos+c,R=S+p;S<0?(S=0,R=p):R>e.columnsCount&&(R=e.columnsCount,S=R-p),w.value=S,g.value=R,e.store.updateGanttBar({rowIndex:e.rowIndex,colIndex:e.colIndex,type:"bar",oldStart:C,oldEnd:M,newStart:S,newEnd:R,delta:c,colspan:R-S})}function Je(){const{x:I,y:a}=Y(o),{x:c,y:p}=Y(m),{x:C,y:M}=Y(v);e.store.registerGanttBar({id:s,rowIndex:e.rowIndex,colIndex:e.colIndex,startIndex:w,endIndex:g,color:f,label:e.label,position:{x:I,y:a}}),e.store.isDependencyGraphEnabled&&(e.store.registerConnectionHandle({id:`${s}-connection-left`,rowIndex:e.rowIndex,colIndex:e.colIndex,side:"left",position:{x:c,y:p},visible:h,barId:s}),e.store.registerConnectionHandle({id:`${s}-connection-right`,rowIndex:e.rowIndex,colIndex:e.colIndex,side:"right",position:{x:C,y:M},visible:y,barId:s}))}function Ze(){e.store.unregisterGanttBar(s),e.store.isDependencyGraphEnabled&&(e.store.unregisterConnectionHandle(`${s}-connection-left`),e.store.unregisterConnectionHandle(`${s}-connection-right`))}function Qe(){e.store.isDependencyGraphEnabled&&(h.value=!0,y.value=!0)}function Ee(){!T.value&&!A.value&&(h.value=!1,y.value=!1)}function Ie(I,a){a.preventDefault(),a.stopPropagation(),O.value=!0,I==="left"?T.value=!0:A.value=!0;const c=I==="left"?m.value:v.value;if(c){const M=c.getBoundingClientRect(),S=M.left+M.width/2,R=M.top+M.height/2;$.value={startX:S,startY:R,endX:S,endY:R}}const p=M=>{$.value.endX=M.clientX,$.value.endY=M.clientY},C=M=>{Se(M,I),Be(p,C)};document.addEventListener("mousemove",p),document.addEventListener("mouseup",C)}function Se(I,a){const p=document.elementFromPoint(I.clientX,I.clientY)?.closest(".connection-handle");if(p&&p!==(a==="left"?m.value:v.value)){const C=p.closest(".gantt-bar");if(C){const M=parseInt(C.getAttribute("data-rowindex")||"0"),S=parseInt(C.getAttribute("data-colindex")||"0"),R=p.classList.contains("left-connection-handle")?"left":"right",U=`gantt-bar-row-${M}-col-${S}`,se=e.store.createConnection(`${s}-connection-${a}`,`${U}-connection-${R}`);se&&d("connection:create",se)}}}function Be(I,a){O.value=!1,T.value=!1,A.value=!1,document.removeEventListener("mousemove",I),document.removeEventListener("mouseup",a),o.value?.matches(":hover")||Ee()}return n({barStyle:D,cleanupConnectionDrag:Be,currentEnd:g,handleConnectionDrop:Se,isLeftConnectionDragging:T,isLeftConnectionVisible:h,isRightConnectionDragging:A,isRightConnectionVisible:y,showDragPreview:O}),(I,a)=>(t.openBlock(),t.createElementBlock("td",{class:"aganttcell",colspan:e.colspan},[t.createElementVNode("div",Wt,[t.createElementVNode("div",{ref:"bar","data-rowindex":e.rowIndex,"data-colindex":e.colIndex,class:t.normalizeClass(["gantt-bar",{"is-dragging":x.value}]),style:t.normalizeStyle(D.value),onMouseenter:Qe,onMouseleave:Ee},[e.store.isDependencyGraphEnabled?(t.openBlock(),t.createElementBlock("div",{key:0,ref:"leftConnectionHandle",class:t.normalizeClass(["connection-handle left-connection-handle",{visible:h.value,"is-dragging":T.value}]),onMousedown:a[0]||(a[0]=t.withModifiers(c=>Ie("left",c),["stop"]))},[...a[2]||(a[2]=[t.createElementVNode("div",{class:"connection-dot"},null,-1)])],34)):t.createCommentVNode("",!0),e.store.isDependencyGraphEnabled?(t.openBlock(),t.createElementBlock("div",{key:1,ref:"rightConnectionHandle",class:t.normalizeClass(["connection-handle right-connection-handle",{visible:y.value,"is-dragging":A.value}]),onMousedown:a[1]||(a[1]=t.withModifiers(c=>Ie("right",c),["stop"]))},[...a[3]||(a[3]=[t.createElementVNode("div",{class:"connection-dot"},null,-1)])],34)):t.createCommentVNode("",!0),t.createElementVNode("div",{ref:"leftResizeHandle",class:t.normalizeClass(["resize-handle left-resize-handle",{"is-dragging":t.unref(P)}])},[...a[4]||(a[4]=[t.createElementVNode("div",{class:"handle-grip"},null,-1),t.createElementVNode("div",{class:"vertical-indicator left-indicator"},null,-1)])],2),e.label?(t.openBlock(),t.createElementBlock("label",Xt,t.toDisplayString(e.label),1)):t.createCommentVNode("",!0),t.createElementVNode("div",{ref:"rightResizeHandle",class:t.normalizeClass(["resize-handle right-resize-handle",{"is-dragging":t.unref(X)}])},[...a[5]||(a[5]=[t.createElementVNode("div",{class:"handle-grip"},null,-1),t.createElementVNode("div",{class:"vertical-indicator right-indicator"},null,-1)])],2)],46,Gt)],512),e.store.isDependencyGraphEnabled&&O.value?(t.openBlock(),t.createElementBlock("svg",{key:0,style:t.normalizeStyle(V.value)},[t.createElementVNode("line",{x1:$.value.startX,y1:$.value.startY,x2:$.value.endX,y2:$.value.endY,stroke:"#2196f3","stroke-width":"2","stroke-dasharray":"5,5"},null,8,Ft)],4)):t.createCommentVNode("",!0)],8,Lt))}}),[["__scopeId","data-v-8917a8a3"]]),Yt=["tabindex"],xe=j(t.defineComponent({__name:"ARow",props:{rowIndex:{},store:{},tabIndex:{default:()=>-1},addNavigation:{type:[Boolean,Object],default:!1}},setup(e){const n=t.useTemplateRef("rowEl"),i=t.computed(()=>e.store.isRowVisible(e.rowIndex)),d=t.computed(()=>e.store.getRowExpandSymbol(e.rowIndex));if(e.addNavigation){let f=te;typeof e.addNavigation=="object"&&(f={...f,...e.addNavigation}),me([{selectors:n,handlers:f}])}return(f,s)=>t.withDirectives((t.openBlock(),t.createElementBlock("tr",{ref:"rowEl",tabindex:e.tabIndex,class:"atable-row"},[e.store.config.view!=="uncounted"?t.renderSlot(f.$slots,"index",{key:0},()=>[e.store.config.view==="list"?(t.openBlock(),t.createElementBlock("td",{key:0,tabIndex:-1,class:t.normalizeClass(["list-index",e.store.hasPinnedColumns?"sticky-index":""])},t.toDisplayString(e.rowIndex+1),3)):e.store.isTreeView?(t.openBlock(),t.createElementBlock("td",{key:1,tabIndex:-1,class:t.normalizeClass(["tree-index",e.store.hasPinnedColumns?"sticky-index":""]),onClick:s[0]||(s[0]=l=>e.store.toggleRowExpand(e.rowIndex))},t.toDisplayString(d.value),3)):t.createCommentVNode("",!0)],!0):t.createCommentVNode("",!0),t.renderSlot(f.$slots,"default",{},void 0,!0)],8,Yt)),[[t.vShow,i.value]])}}),[["__scopeId","data-v-0fa91f83"]]),ve=new WeakMap,jt={mounted(e,n){const i=!n.modifiers.bubble;let d;if(typeof n.value=="function")d=Ne(e,n.value,{capture:i});else{const[f,s]=n.value;d=Ne(e,f,Object.assign({capture:i},s))}ve.set(e,d)},unmounted(e){const n=ve.get(e);n&&typeof n=="function"?n():n?.stop(),ve.delete(e)}},Ut={mounted(e,n){typeof n.value=="function"?pe(e,n.value):pe(e,...n.value)}};function qt(){let e=!1;const n=t.shallowRef(!1);return(i,d)=>{if(n.value=d.value,e)return;e=!0;const f=zt(i,d.value);t.watch(n,s=>f.value=s)}}qt();const Jt={class:"gantt-connection-overlay"},Zt={class:"connection-svg",style:{position:"absolute",top:0,left:0,width:"100%",height:"100%",pointerEvents:"none",zIndex:1}},Qt=["d","stroke-width","onDblclick"],Kt=["id","d","stroke","stroke-width","onDblclick"],_t=.25,ae=16,en=j(t.defineComponent({__name:"AGanttConnection",props:{store:{}},emits:["connection:delete"],setup(e,{emit:n}){const i=n,d=t.computed(()=>e.store.connectionPaths.filter(l=>{const o=e.store.ganttBars.find(u=>u.id===l.from.barId),r=e.store.ganttBars.find(u=>u.id===l.to.barId);return o&&r})),f=l=>{const o=e.store.connectionHandles.find(x=>x.barId===l.from.barId&&x.side===l.from.side),r=e.store.connectionHandles.find(x=>x.barId===l.to.barId&&x.side===l.to.side);if(!o||!r)return"";const u=o.position.x+ae/2,m=o.position.y+ae/2,v=r.position.x+ae/2,E=r.position.y+ae/2,b=Math.abs(v-u),k=Math.max(b*_t,50),w=u+(l.from.side==="left"?-k:k),g=v+(l.to.side==="left"?-k:k),h={x:.5*u+.5*w,y:.5*m+.5*m},y={x:.5*w+.5*g,y:.5*m+.5*E},T={x:.5*g+.5*v,y:.5*E+.5*E},A={x:.5*h.x+.5*y.x,y:.5*h.y+.5*y.y},O={x:.5*y.x+.5*T.x,y:.5*y.y+.5*T.y},$={x:.5*A.x+.5*O.x,y:.5*A.y+.5*O.y};return`M ${u} ${m} Q ${w} ${m}, ${$.x} ${$.y} Q ${g} ${E}, ${v} ${E}`},s=l=>{e.store.deleteConnection(l.id)&&i("connection:delete",l)};return(l,o)=>(t.openBlock(),t.createElementBlock("div",Jt,[(t.openBlock(),t.createElementBlock("svg",Zt,[o[0]||(o[0]=t.createElementVNode("defs",null,[t.createElementVNode("path",{id:"arrowhead",d:"M 0 -7 L 20 0 L 0 7Z",stroke:"black","stroke-width":"1",fill:"currentColor"}),t.createElementVNode("marker",{id:"arrowhead-marker",markerWidth:"10",markerHeight:"7",refX:"5",refY:"3.5",orient:"auto",markerUnits:"strokeWidth"},[t.createElementVNode("polygon",{points:"0 0, 10 3.5, 0 7",fill:"currentColor"})])],-1)),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(d.value,r=>(t.openBlock(),t.createElementBlock("path",{key:`${r.id}-hitbox`,d:f(r),stroke:"transparent","stroke-width":(r.style?.width||2)+10,fill:"none",class:"connection-hitbox",onDblclick:u=>s(r)},null,40,Qt))),128)),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(d.value,r=>(t.openBlock(),t.createElementBlock("path",{id:r.id,key:r.id,d:f(r),stroke:r.style?.color||"#666","stroke-width":r.style?.width||2,fill:"none","marker-mid":"url(#arrowhead-marker)",class:"connection-path animated-path",onDblclick:u=>s(r)},null,40,Kt))),128))]))]))}}),[["__scopeId","data-v-71911260"]]),tn={key:0},nn={class:"atable-header-row",tabindex:"-1"},on=["data-colindex"],ye=t.defineComponent({__name:"ATableHeader",props:{columns:{},store:{}},setup(e){const n=i=>{for(const d of i){if(d.borderBoxSize.length===0)continue;const s=d.borderBoxSize[0].inlineSize,l=Number(d.target.dataset.colindex),o=e.store.columns[l]?.width;typeof o=="number"&&o!==s&&e.store.resizeColumn(l,s)}};return(i,d)=>e.columns.length?(t.openBlock(),t.createElementBlock("thead",tn,[t.createElementVNode("tr",nn,[e.store.zeroColumn?(t.openBlock(),t.createElementBlock("th",{key:0,id:"header-index",class:t.normalizeClass([[e.store.hasPinnedColumns?"sticky-index":"",e.store.isTreeView?"tree-index":"",e.store.config.view==="list-expansion"?"list-expansion-index":""],"list-index"])},null,2)):t.createCommentVNode("",!0),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(e.columns,(f,s)=>t.withDirectives((t.openBlock(),t.createElementBlock("th",{key:f.name,"data-colindex":s,tabindex:"-1",style:t.normalizeStyle(e.store.getHeaderCellStyle(f)),class:t.normalizeClass(f.pinned?"sticky-column":"")},[t.renderSlot(i.$slots,"default",{},()=>[t.createTextVNode(t.toDisplayString(f.label||String.fromCharCode(s+97).toUpperCase()),1)])],14,on)),[[t.unref(Ut),n]])),128))])])):t.createCommentVNode("",!0)}}),ke=t.defineComponent({__name:"ATableModal",props:{store:{}},setup(e){const n=t.useTemplateRef("amodal"),{width:i,height:d}=Y(n),f=t.computed(()=>{if(!(e.store.modal.height&&e.store.modal.width&&e.store.modal.left&&e.store.modal.bottom))return;const s=e.store.modal.cell?.closest("table");if(!s)return{};const l=s.offsetHeight||0,o=s.offsetWidth||0;let r=e.store.modal.cell?.offsetTop||0;const u=s.querySelector("thead")?.offsetHeight||0;r+=u,r=r+d.value<l?r:r-(d.value+e.store.modal.height);let m=e.store.modal.cell?.offsetLeft||0;return m=m+i.value<=o?m:m-(i.value-e.store.modal.width),{left:`${m}px`,top:`${r}px`}});return(s,l)=>(t.openBlock(),t.createElementBlock("div",{ref:"amodal",class:"amodal",tabindex:"-1",style:t.normalizeStyle(f.value),onClick:l[0]||(l[0]=t.withModifiers(()=>{},["stop"])),onInput:l[1]||(l[1]=t.withModifiers(()=>{},["stop"]))},[t.renderSlot(s.$slots,"default")],36))}}),Ge=e=>{const n=e.id||Tt();return Ke.defineStore(`table-${n}`,()=>{const d=()=>{const a=[Object.assign({},{rowModified:!1})],c=new Set;for(let S=0;S<s.value.length;S++){const R=s.value[S];R.parent!==null&&R.parent!==void 0&&c.add(R.parent)}const p=S=>s.value[S]?.gantt!==void 0,C=S=>{for(let R=0;R<s.value.length;R++)if(s.value[R].parent===S&&(p(R)||C(R)))return!0;return!1},M=S=>{const R=l.value,U=R.view==="tree"||R.view==="tree-gantt"?R.defaultTreeExpansion:void 0;if(!U)return!0;switch(U){case"root":return!1;case"branch":return C(S);case"leaf":return!0;default:return!0}};for(let S=0;S<s.value.length;S++){const R=s.value[S],U=R.parent===null||R.parent===void 0,se=c.has(S);a[S]={childrenOpen:M(S),expanded:!1,indent:R.indent||0,isParent:se,isRoot:U,rowModified:!1,open:U,parent:R.parent}}return a},f=t.ref(e.columns),s=t.ref(e.rows),l=t.ref(e.config||{}),o=t.ref({}),r=t.ref({}),u=t.computed(()=>{const a={};for(const[c,p]of f.value.entries())for(const[C,M]of s.value.entries())a[`${c}:${C}`]=M[p.name];return a}),m=t.computed({get:()=>{const a=d();for(let c=0;c<a.length;c++)o.value[c]&&(a[c].rowModified=o.value[c]),r.value[c]&&(r.value[c].childrenOpen!==void 0&&(a[c].childrenOpen=r.value[c].childrenOpen),r.value[c].expanded!==void 0&&(a[c].expanded=r.value[c].expanded));if(y.value){const c=(p,C)=>{const M=C[p];if(M.isRoot||M.parent===null||M.parent===void 0)return!0;const S=M.parent;return S<0||S>=C.length?!1:(C[S].childrenOpen||!1)&&c(S,C)};for(let p=0;p<a.length;p++)a[p].isRoot||(a[p].open=c(p,a))}return a},set:a=>{JSON.stringify(a)!==JSON.stringify(m.value)&&(m.value=a)}}),v=t.ref(e.modal||{visible:!1}),E=t.ref({}),b=t.ref([]),k=t.ref([]),w=t.ref([]),g=t.computed(()=>f.value.some(a=>a.pinned)),h=t.computed(()=>l.value.view==="gantt"||l.value.view==="tree-gantt"),y=t.computed(()=>l.value.view==="tree"||l.value.view==="tree-gantt"),T=t.computed(()=>{const a=l.value;return a.view==="gantt"||a.view==="tree-gantt"?a.dependencyGraph!==!1:!0}),A=t.computed(()=>`${Math.ceil(s.value.length/100+1)}ch`),O=t.computed(()=>l.value.view?["list","tree","tree-gantt","list-expansion"].includes(l.value.view):!1),$=(a,c)=>u.value[`${a}:${c}`],x=(a,c,p)=>{const C=`${a}:${c}`,M=f.value[a];u.value[C]!==p&&(o.value[c]=!0),u.value[C]=p,s.value[c]={...s.value[c],[M.name]:p}},B=a=>{s.value=a},D=(a,c,p)=>{const C=`${a}:${c}`;u.value[C]!==p&&(o.value[c]=!0,E.value[C]=p)},V=a=>{const c=f.value.indexOf(a)===f.value.length-1,p=l.value.fullWidth?a.resizable&&!c:a.resizable;return{width:a.width||"40ch",textAlign:a.align||"center",...p&&{resize:"horizontal",overflow:"hidden",whiteSpace:"nowrap"}}},z=(a,c)=>{if(a<0||a>=f.value.length)return;const C=Math.max(c,40);f.value[a]={...f.value[a],width:`${C}px`}},P=a=>{const c=s.value[a];return h.value&&c.gantt!==void 0},X=a=>!y.value||m.value[a].isRoot||m.value[a].open,le=a=>!y.value&&l.value.view!=="list-expansion"?"":y.value&&(m.value[a].isRoot||m.value[a].isParent)?m.value[a].childrenOpen?"▼":"►":l.value.view==="list-expansion"?m.value[a].expanded?"▼":"►":"",K=a=>{if(y.value){const c=r.value[a]||{},C=!(c.childrenOpen??m.value[a].childrenOpen);r.value[a]={...c,childrenOpen:C},C||re(a)}else if(l.value.view==="list-expansion"){const c=r.value[a]||{},p=c.expanded??m.value[a].expanded;r.value[a]={...c,expanded:!p}}},re=a=>{for(let c=0;c<s.value.length;c++)if(m.value[c].parent===a){const p=r.value[c]||{};r.value[c]={...p,childrenOpen:!1},re(c)}},Ce=(a,c)=>{const p=$(a,c);return ie(a,c,p)},ie=(a,c,p)=>{const C=f.value[a],M=s.value[c],S=C.format;return S?typeof S=="function"?S(p,{table:u.value,row:M,column:C}):typeof S=="string"?Function(`"use strict";return (${S})`)()(p,{table:u.value,row:M,column:C}):p:p};return{columns:f,config:l,connectionHandles:k,connectionPaths:w,display:m,ganttBars:b,modal:v,rows:s,table:u,updates:E,hasPinnedColumns:g,isGanttView:h,isTreeView:y,isDependencyGraphEnabled:T,numberedRowWidth:A,zeroColumn:O,closeModal:a=>{a.target instanceof Node&&v.value.parent?.contains(a.target)||v.value.visible&&(v.value.visible=!1)},createConnection:(a,c,p)=>{const C=k.value.find(R=>R.id===a),M=k.value.find(R=>R.id===c);if(!C||!M)return console.warn("Cannot create connection: handle not found"),null;const S={id:`connection-${a}-${c}`,from:{barId:C.barId,side:C.side},to:{barId:M.barId,side:M.side},style:p?.style,label:p?.label};return w.value.push(S),S},deleteConnection:a=>{const c=w.value.findIndex(p=>p.id===a);return c>=0?(w.value.splice(c,1),!0):!1},getCellData:$,getCellDisplayValue:Ce,getConnectionsForBar:a=>w.value.filter(c=>c.from.barId===a||c.to.barId===a),getFormattedValue:ie,getHandlesForBar:a=>k.value.filter(c=>c.barId===a),getHeaderCellStyle:V,getIndent:(a,c)=>c&&a===0&&c>0?`${c}ch`:"inherit",getRowExpandSymbol:le,isRowGantt:P,isRowVisible:X,registerConnectionHandle:a=>{const c=k.value.findIndex(p=>p.id===a.id);c>=0?k.value[c]=a:k.value.push(a)},registerGanttBar:a=>{const c=b.value.findIndex(p=>p.id===a.id);c>=0?b.value[c]=a:b.value.push(a)},resizeColumn:z,setCellData:x,setCellText:D,toggleRowExpand:K,unregisterConnectionHandle:a=>{const c=k.value.findIndex(p=>p.id===a);c>=0&&k.value.splice(c,1)},unregisterGanttBar:a=>{const c=b.value.findIndex(p=>p.id===a);c>=0&&b.value.splice(c,1)},updateGanttBar:a=>{const c=s.value[a.rowIndex]?.gantt;c&&(a.type==="resize"?a.edge==="start"?(c.startIndex=a.newStart,c.endIndex=a.end,c.colspan=c.endIndex-c.startIndex):a.edge==="end"&&(c.startIndex=a.start,c.endIndex=a.newEnd,c.colspan=c.endIndex-c.startIndex):a.type==="bar"&&(c.startIndex=a.newStart,c.endIndex=a.newEnd,c.colspan=c.endIndex-c.startIndex))},updateRows:B}})()},an={class:"atable-container",style:{position:"relative"}},Xe=j(t.defineComponent({__name:"ATable",props:t.mergeModels({id:{default:""},config:{default:()=>new Object}},{rows:{required:!0},rowsModifiers:{},columns:{required:!0},columnsModifiers:{}}),emits:t.mergeModels(["cellUpdate","gantt:drag","connection:event","columns:update"],["update:rows","update:columns"]),setup(e,{expose:n,emit:i}){const d=t.useModel(e,"rows"),f=t.useModel(e,"columns"),s=i,l=t.useTemplateRef("table"),o=Ge({columns:f.value,rows:d.value,id:e.id,config:e.config});o.$onAction(({name:b,store:k,args:w,after:g})=>{if(b==="setCellData"||b==="setCellText"){const[h,y,T]=w,A=k.getCellData(h,y);g(()=>{d.value=[...k.rows],s("cellUpdate",{colIndex:h,rowIndex:y,newValue:T,oldValue:A})})}else if(b==="updateGanttBar"){const[h]=w;let y=!1;h.type==="resize"?y=h.oldColspan!==h.newColspan:h.type==="bar"&&(y=h.oldStart!==h.newStart||h.oldEnd!==h.newEnd),y&&g(()=>{s("gantt:drag",h)})}else b==="resizeColumn"&&g(()=>{f.value=[...k.columns],s("columns:update",[...k.columns])})}),t.watch(()=>d.value,b=>{JSON.stringify(b)!==JSON.stringify(o.rows)&&(o.rows=[...b])},{deep:!0}),t.watch(f,b=>{JSON.stringify(b)!==JSON.stringify(o.columns)&&(o.columns=[...b],s("columns:update",[...b]))},{deep:!0}),t.onMounted(()=>{f.value.some(b=>b.pinned)&&(u(),o.isTreeView&&Pe(l,u,{childList:!0,subtree:!0}))});const r=t.computed(()=>o.columns.filter(b=>b.pinned).length),u=()=>{const b=l.value,k=b?.rows[0],w=b?.rows[1],g=k?Array.from(k.cells):[];for(const[h,y]of g.entries()){const T=w?.cells[h];T&&(y.style.width=`${T.offsetWidth}px`)}for(const h of b?.rows||[]){let y=0;const T=[];for(const A of h.cells)(A.classList.contains("sticky-column")||A.classList.contains("sticky-index"))&&(A.style.left=`${y}px`,y+=A.offsetWidth,T.push(A));T.length>0&&T[T.length-1].classList.add("sticky-column-edge")}};window.addEventListener("keydown",b=>{if(b.key==="Escape"&&o.modal.visible){o.modal.visible=!1;const k=o.modal.parent;k&&t.nextTick().then(()=>{k.focus()})}});const m=b=>{if(!b.gantt||r.value===0)return o.columns;const k=[];for(let w=0;w<r.value;w++){const g={...o.columns[w]};g.originalIndex=w,k.push(g)}return k.push({...o.columns[r.value],isGantt:!0,colspan:b.gantt?.colspan||o.columns.length-r.value,originalIndex:r.value,width:"auto"}),k},v=b=>{s("connection:event",{type:"create",connection:b})},E=b=>{s("connection:event",{type:"delete",connection:b})};return n({store:o,createConnection:o.createConnection,deleteConnection:o.deleteConnection,getConnectionsForBar:o.getConnectionsForBar,getHandlesForBar:o.getHandlesForBar}),(b,k)=>(t.openBlock(),t.createElementBlock("div",an,[t.withDirectives((t.openBlock(),t.createElementBlock("table",{ref:"table",class:"atable",style:t.normalizeStyle({width:t.unref(o).config.fullWidth?"100%":"auto"})},[t.renderSlot(b.$slots,"header",{data:t.unref(o)},()=>[t.createVNode(ye,{columns:t.unref(o).columns,store:t.unref(o)},null,8,["columns","store"])],!0),t.createElementVNode("tbody",null,[t.renderSlot(b.$slots,"body",{data:t.unref(o)},()=>[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(t.unref(o).rows,(w,g)=>(t.openBlock(),t.createBlock(xe,{key:w.id,row:w,"row-index":g,store:t.unref(o)},{default:t.withCtx(()=>[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(m(w),(h,y)=>(t.openBlock(),t.createElementBlock(t.Fragment,{key:h.name},[h.isGantt?(t.openBlock(),t.createBlock(t.resolveDynamicComponent(h.ganttComponent||"AGanttCell"),{key:0,store:t.unref(o),"columns-count":t.unref(o).columns.length-r.value,color:w.gantt?.color,start:w.gantt?.startIndex,end:w.gantt?.endIndex,colspan:h.colspan,pinned:h.pinned,"row-index":g,"col-index":h.originalIndex??y,style:t.normalizeStyle({textAlign:h?.align||"center",minWidth:h?.width||"40ch",width:t.unref(o).config.fullWidth?"auto":null}),"onConnection:create":v},null,40,["store","columns-count","color","start","end","colspan","pinned","row-index","col-index","style"])):(t.openBlock(),t.createBlock(t.resolveDynamicComponent(h.cellComponent||"ACell"),{key:1,store:t.unref(o),pinned:h.pinned,"row-index":g,"col-index":y,style:t.normalizeStyle({textAlign:h?.align||"center",width:t.unref(o).config.fullWidth?"auto":null}),spellcheck:"false"},null,8,["store","pinned","row-index","col-index","style"]))],64))),128))]),_:2},1032,["row","row-index","store"]))),128))],!0)]),t.renderSlot(b.$slots,"footer",{data:t.unref(o)},void 0,!0),t.renderSlot(b.$slots,"modal",{data:t.unref(o)},()=>[t.withDirectives(t.createVNode(ke,{store:t.unref(o)},{default:t.withCtx(()=>[(t.openBlock(),t.createBlock(t.resolveDynamicComponent(t.unref(o).modal.component),t.mergeProps({key:`${t.unref(o).modal.rowIndex}:${t.unref(o).modal.colIndex}`,"col-index":t.unref(o).modal.colIndex,"row-index":t.unref(o).modal.rowIndex,store:t.unref(o)},t.unref(o).modal.componentProps),null,16,["col-index","row-index","store"]))]),_:1},8,["store"]),[[t.vShow,t.unref(o).modal.visible]])],!0)],4)),[[t.unref(jt),t.unref(o).closeModal]]),t.unref(o).isGanttView&&t.unref(o).isDependencyGraphEnabled?(t.openBlock(),t.createBlock(en,{key:0,store:t.unref(o),"onConnection:delete":E},null,8,["store"])):t.createCommentVNode("",!0)]))}}),[["__scopeId","data-v-50e8e2bf"]]),ln={},rn={class:"aloading"},sn={class:"aloading-header"};function cn(e,n){return t.openBlock(),t.createElementBlock("div",rn,[t.createElementVNode("h2",sn,[t.renderSlot(e.$slots,"default",{},void 0,!0)]),n[0]||(n[0]=t.createElementVNode("div",{class:"aloading-bar"},null,-1))])}const Fe=j(ln,[["render",cn],["__scopeId","data-v-a930a25b"]]),dn={},fn={class:"aloading"},un={class:"aloading-header"};function gn(e,n){return t.openBlock(),t.createElementBlock("div",fn,[t.createElementVNode("h2",un,[t.renderSlot(e.$slots,"default",{},void 0,!0)]),n[0]||(n[0]=t.createElementVNode("div",{class:"aloading-bar"},null,-1))])}const Ye=j(dn,[["render",gn],["__scopeId","data-v-e1165876"]]);function mn(e){e.component("ACell",He),e.component("AExpansionRow",Le),e.component("AGanttCell",We),e.component("ARow",xe),e.component("ATable",Xe),e.component("ATableHeader",ye),e.component("ATableLoading",Fe),e.component("ATableLoadingBar",Ye),e.component("ATableModal",ke)}N.ACell=He,N.AExpansionRow=Le,N.AGanttCell=We,N.ARow=xe,N.ATable=Xe,N.ATableHeader=ye,N.ATableLoading=Fe,N.ATableLoadingBar=Ye,N.ATableModal=ke,N.createTableStore=Ge,N.install=mn,Object.defineProperty(N,Symbol.toStringTag,{value:"Module"})}));
1
+ (function(F,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue"),require("pinia")):typeof define=="function"&&define.amd?define(["exports","vue","pinia"],e):(F=typeof globalThis<"u"?globalThis:F||self,e(F["@stonecrop/atable"]={},F.Vue,F.pinia))})(this,(function(F,e,st){"use strict";var Fe=document.createElement("style");Fe.textContent=`@import"https://fonts.googleapis.com/css2?family=Arimo:ital,wght@0,400..700;1,400..700&display=swap";.atable-cell{border-radius:0;box-sizing:border-box;margin:0;outline:none;box-shadow:none;color:var(--sc-cell-text-color);padding-left:.5ch!important;padding-right:.5ch;padding-top:var(--sc-atable-row-padding);padding-bottom:var(--sc-atable-row-padding);border-spacing:0px;border-collapse:collapse;overflow:hidden;text-overflow:ellipsis;order:1;white-space:nowrap;max-width:40ch;border-top:1px solid var(--sc-row-border-color)}.atable-cell a{color:var(--sc-cell-text-color);text-decoration:none}.atable-cell:focus,.atable-cell:focus-within{background-color:var(--sc-focus-cell-background);outline-width:var(--sc-atable-cell-border-width);outline-style:solid;outline-offset:calc(var(--sc-atable-cell-border-width) * -1);outline-color:var(--sc-focus-cell-outline);box-shadow:none;overflow:hidden;text-wrap:nowrap;box-sizing:border-box}.cell-modified{font-weight:700;font-style:italic}.cell-modified-highlight{background-color:var(--sc-cell-changed-color)}.row-index{color:var(--sc-header-text-color);font-weight:700;text-align:center;-webkit-user-select:none;user-select:none;width:2ch;display:flex;align-items:center;justify-content:center}.expandable-row{border-top:1px solid var(--sc-row-border-color);height:var(--sc-atable-row-height)}.expandable-row>td:first-child{border-left:4px solid var(--sc-row-border-color)}.expanded-row{border-left:2px solid var(--sc-row-border-color)}.expandable-row:last-child{border-bottom:1px solid var(--sc-row-border-color)}.expanded-row-content{border-top:1px solid var(--sc-row-border-color);padding:1.5rem}.expandable-row.changed-row-gradient[data-v-a42297c7]:has(td.cell-modified){--cell-color-start: color-mix(in srgb, var(--sc-cell-changed-color), #fff 20%);--cell-color-end: color-mix(in srgb, var(--sc-cell-changed-color), #fff 60%);background:linear-gradient(90deg,var(--cell-color-start),var(--cell-color-end))}.aganttcell[data-v-8917a8a3]{background-color:#f9f9f9;width:100%;padding:0;height:100%}.gantt-container[data-v-8917a8a3]{position:relative;height:100%;background-color:#f0f0f0;border-radius:4px;overflow:visible}.gantt-bar[data-v-8917a8a3]{position:absolute;border-radius:4px;display:flex;align-items:center;justify-content:space-between;cursor:grab;box-sizing:border-box;border:1px solid rgba(0,0,0,.5);transition:left .1s ease-out,width .1s ease-out;height:80%;top:50%;z-index:2;transform:translateY(-50%)}.gantt-bar[data-v-8917a8a3]:active{cursor:grabbing}.gantt-bar.is-dragging[data-v-8917a8a3]{z-index:10}.gantt-label[data-v-8917a8a3]{flex:1;text-align:center;font-size:12px;color:#aaa;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 8px;-webkit-user-select:none;user-select:none}.resize-handle[data-v-8917a8a3]{position:relative;width:12px;height:100%;cursor:ew-resize;display:flex;align-items:center;justify-content:center;z-index:0;background:#00000040}.left-resize-handle[data-v-8917a8a3]{border-right:1px solid rgba(0,0,0,.5)}.right-resize-handle[data-v-8917a8a3]{border-left:1px solid rgba(0,0,0,.5)}.handle-grip[data-v-8917a8a3]{width:4px;height:12px;border-radius:2px;background:#000c}.resize-handle[data-v-8917a8a3]:hover{background-color:#ffffff80}.vertical-indicator[data-v-8917a8a3]{position:absolute;width:2px;opacity:0;pointer-events:none;transition:opacity .2s ease;top:-100vh;height:100vh;z-index:5;background-color:var(--v6d722296)}.left-indicator[data-v-8917a8a3]{left:50%;transform:translate(-50%)}.right-indicator[data-v-8917a8a3]{right:50%;transform:translate(50%)}.resize-handle.is-dragging .vertical-indicator[data-v-8917a8a3]{opacity:.7}.gantt-container[data-v-8917a8a3]:after{content:"";position:absolute;inset:0;background-size:calc(100% / var(--v260b36f8)) 100%;background-image:linear-gradient(to right,rgba(0,0,0,.1) 1px,transparent 1px);pointer-events:none;z-index:1}.connection-handle[data-v-8917a8a3]{position:absolute;top:50%;transform:translateY(-50%);width:16px;height:16px;opacity:0;transition:opacity .2s ease;cursor:crosshair;z-index:15;display:flex;align-items:center;justify-content:center}.connection-handle.visible[data-v-8917a8a3]{opacity:1}.left-connection-handle[data-v-8917a8a3]{left:-16px}.right-connection-handle[data-v-8917a8a3]{right:-16px}.connection-dot[data-v-8917a8a3]{width:8px;height:8px;border-radius:50%;background-color:#2196f3;border:2px solid white;box-shadow:0 1px 3px #0000004d}.connection-handle:hover .connection-dot[data-v-8917a8a3]{background-color:#1976d2;transform:scale(1.2)}.connection-handle.is-dragging[data-v-8917a8a3]{opacity:1!important}.connection-handle.is-dragging .connection-dot[data-v-8917a8a3]{background-color:#1976d2;transform:scale(1.3);box-shadow:0 2px 8px #2196f366}.atable-row{background-color:#fff}.atable-row>td:first-child{border-left:4px solid var(--sc-row-border-color)}.list-index{color:var(--sc-header-text-color);font-weight:700;padding-left:var(--sc-atable-row-padding);padding-right:.5em;text-align:left;-webkit-user-select:none;user-select:none;width:7ch;text-overflow:ellipsis;overflow:hidden;box-sizing:border-box;padding-top:var(--sc-atable-row-padding);padding-bottom:var(--sc-atable-row-padding)}.tree-index{color:var(--sc-header-text-color);font-weight:700;text-align:center;-webkit-user-select:none;user-select:none;width:2ch;box-sizing:border-box;padding-top:var(--sc-atable-row-padding);padding-bottom:var(--sc-atable-row-padding)}.atable-row:has(td.cell-modified)>td.sticky-column,.atable-row:has(td.cell-modified)>th.sticky-column,.atable-row:has(td.cell-modified)>td.sticky-index,.atable-row:has(td.cell-modified)>th.sticky-index{background:var(--sc-cell-changed-color)}.atable-row.changed-row-gradient[data-v-0fa91f83]:has(td.cell-modified){--cell-color-start: color-mix(in srgb, var(--sc-cell-changed-color), #fff 20%);--cell-color-end: color-mix(in srgb, var(--sc-cell-changed-color), #fff 60%);background:linear-gradient(90deg,var(--cell-color-start),var(--cell-color-end))}.gantt-connection-overlay[data-v-71911260]{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:1}.connection-path[data-v-71911260]{transition:stroke-width .2s ease;pointer-events:auto;cursor:pointer;stroke-dasharray:5px;stroke:var(--sc-cell-text-color)}#arrowhead-marker polygon[data-v-71911260]{fill:var(--sc-cell-text-color)}.animated-path[data-v-71911260]{animation:animated-dash-71911260 infinite 1.5s linear}.connection-path[data-v-71911260]:hover{stroke-width:3px}.connection-hitbox[data-v-71911260]{pointer-events:auto;cursor:pointer}@keyframes animated-dash-71911260{0%{stroke-dashoffset:0px}to{stroke-dashoffset:-10px}}.column-filter[data-v-8487462d]{display:flex;align-items:center;gap:.25rem;width:100%}.filter-input[data-v-8487462d],.filter-select[data-v-8487462d]{background-color:var(--sc-form-background)!important;padding:.15rem .2rem;border:1px solid var(--sc-form-border);border-radius:3px;font-size:.875rem;color:var(--sc-text-color);width:100%;box-sizing:border-box}.filter-input[data-v-8487462d]:focus,.filter-select[data-v-8487462d]:focus{outline:none;border-color:var(--sc-input-active-border-color)}.checkbox-filter[data-v-8487462d]{display:flex;align-items:center;gap:.25rem;font-size:.875rem;color:var(--sc-text-color);cursor:pointer}.filter-checkbox[data-v-8487462d]{margin:0}.date-range-filter[data-v-8487462d]{display:flex;gap:.25rem;align-items:center;width:100%}.date-range-filter .filter-input[data-v-8487462d]{flex:1;min-width:0}.date-separator[data-v-8487462d]{color:var(--sc-gray-50);font-weight:500;padding:0 .25rem;flex-shrink:0}.clear-btn[data-v-8487462d]{background:var(--sc-gray-10, #f0f0f0);border:1px solid var(--sc-form-border);border-radius:3px;color:var(--sc-gray-70);cursor:pointer;font-size:1rem;padding:.15rem .4rem;line-height:1;flex-shrink:0}.atable-header-row th{padding-left:.5ch!important;font-weight:700;padding-top:var(--sc-atable-row-padding);padding-bottom:var(--sc-atable-row-padding);box-sizing:border-box;color:var(--sc-header-text-color);position:relative}#header-index{padding-left:var(--sc-atable-row-padding);box-sizing:border-box}.tree-index{padding-right:0}th{order:1}.list-expansion-index{width:2ch;margin-left:5px}.cursor-pointer{cursor:pointer}.atable-filters-row th{padding:.25rem .5ch;vertical-align:top}:root{--sc-primary-color: #0098c9;--sc-primary-text-color: #ffffff;--sc-brand-color: #202a44;--sc-gray-5: #f2f2f2;--sc-gray-10: #e6e6e6;--sc-gray-20: #cccccc;--sc-gray-50: #808080;--sc-gray-60: #666666;--sc-gray-80: #333333;--sc-brand-danger: #e63c28;--sc-brand-success: #155724;--sc-brand-warning: #b99d3e;--sc-active-cell-background: #ffffff;--sc-active-cell-outline: #e6a92d;--sc-cell-border-color: #ffffff;--sc-cell-text-color: #3a3c41;--sc-focus-cell-background: #ffffff;--sc-focus-cell-outline: #000000;--sc-header-border-color: #ffffff;--sc-header-text-color: var(--sc-gray-20);--sc-row-border-color: var(--sc-gray-20);--sc-row-color-zebra-dark: #dddddd;--sc-row-color-zebra-light: #eeeeee;--sc-row-number-background-color: #ffffff;--sc-input-active-border-color: #000000;--sc-input-active-label-color: #000000;--sc-input-border-color: var(--sc-gray-20);--sc-input-label-color: var(--sc-gray-60);--sc-required-border: #e63c28;--sc-cell-changed-color: #d8edff;--sc-form-border: var(--sc-gray-5);--sc-form-background: #ffffff;--sc-input-field-background: #ffffff;--sc-input-field-disabled-background: var(--sc-gray-5);--sc-font-size: 10px;--sc-font-family: Arimo, Arial, sans-serif;--sc-table-font-size: 16px;--sc-atable-font-family: "Arimo", sans-serif;--sc-atable-row-padding: .125rem;--sc-atable-row-height: 1.5em;--sc-atable-cell-border-width: 2px;--sc-table-loading-color: 204, 204, 204;--sc-btn-border: #cccccc;--sc-btn-color: white;--sc-btn-hover: #f2f2f2;--sc-btn-label-color: black}.amodal{position:absolute;background-color:var(--sc-row-color-zebra-dark);z-index:5}.atable-container{position:relative}.sticky-index{position:sticky;left:0;z-index:10;order:0}.sticky-column,th.sticky-column,td.sticky-column,th.sticky-index,td.sticky-index{position:sticky;z-index:10;order:0;background:#fff}.sticky-column-edge,.atable th.sticky-column-edge{border-right:1px solid var(--sc-row-border-color)}[data-v-c0a0032f]:root{--sc-primary-color: #0098c9;--sc-primary-text-color: #ffffff;--sc-brand-color: #202a44;--sc-gray-5: #f2f2f2;--sc-gray-10: #e6e6e6;--sc-gray-20: #cccccc;--sc-gray-50: #808080;--sc-gray-60: #666666;--sc-gray-80: #333333;--sc-brand-danger: #e63c28;--sc-brand-success: #155724;--sc-brand-warning: #b99d3e;--sc-active-cell-background: #ffffff;--sc-active-cell-outline: #e6a92d;--sc-cell-border-color: #ffffff;--sc-cell-text-color: #3a3c41;--sc-focus-cell-background: #ffffff;--sc-focus-cell-outline: #000000;--sc-header-border-color: #ffffff;--sc-header-text-color: var(--sc-gray-20);--sc-row-border-color: var(--sc-gray-20);--sc-row-color-zebra-dark: #dddddd;--sc-row-color-zebra-light: #eeeeee;--sc-row-number-background-color: #ffffff;--sc-input-active-border-color: #000000;--sc-input-active-label-color: #000000;--sc-input-border-color: var(--sc-gray-20);--sc-input-label-color: var(--sc-gray-60);--sc-required-border: #e63c28;--sc-cell-changed-color: #d8edff;--sc-form-border: var(--sc-gray-5);--sc-form-background: #ffffff;--sc-input-field-background: #ffffff;--sc-input-field-disabled-background: var(--sc-gray-5);--sc-font-size: 10px;--sc-font-family: Arimo, Arial, sans-serif;--sc-table-font-size: 16px;--sc-atable-font-family: "Arimo", sans-serif;--sc-atable-row-padding: .125rem;--sc-atable-row-height: 1.5em;--sc-atable-cell-border-width: 2px;--sc-table-loading-color: 204, 204, 204;--sc-btn-border: #cccccc;--sc-btn-color: white;--sc-btn-hover: #f2f2f2;--sc-btn-label-color: black}.atable[data-v-c0a0032f]{position:relative;font-family:var(--sc-atable-font-family);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:var(--sc-table-font-size);border-collapse:collapse;box-sizing:border-box;table-layout:auto;width:auto;overflow:clip;height:1px}.atable th[data-v-c0a0032f]{border-width:0px;border-style:solid;border-radius:0;padding-left:.5ch;padding-right:.5ch;padding-top:var(--sc-atable-row-padding);padding-bottom:var(--sc-atable-row-padding);color:var(--sc-gray-60);height:var(--sc-atable-row-height);font-weight:300;letter-spacing:.05rem;order:1;box-sizing:border-box}.atable th[data-v-c0a0032f]:focus{outline:none}.atable[data-v-c0a0032f]:tbody{overflow:hidden;position:relative}.atable[data-v-c0a0032f]:tbody:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background-color:transparent;z-index:100}.aloading[data-v-a930a25b]{width:100%;border-top:1px solid var(--sc-row-border-color);border-bottom:1px solid var(--sc-row-border-color);display:flex;background-color:#fff;border-left:4px solid var(--sc-row-border-color);padding-left:.5ch!important;padding-right:.5ch;padding-top:var(--sc-atable-row-padding);padding-bottom:var(--sc-atable-row-padding);align-items:center;box-sizing:border-box;background:var(--sc-focus-cell-background);overflow:hidden;position:relative}.aloading-bar[data-v-a930a25b]{width:100%;height:100%;position:absolute;left:-100%;top:0;background:linear-gradient(90deg,rgba(var(--sc-table-loading-color),0),rgba(var(--sc-table-loading-color),1),rgba(var(--sc-table-loading-color),0));animation:gradient-a930a25b infinite 2s;z-index:0}.aloading-header[data-v-a930a25b]{color:var(--sc-cell-text-color);font-family:var(--sc-atable-font-family);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:var(--sc-table-font-size);padding:0;margin:0;font-weight:400;z-index:1}.aloading-header[data-v-a930a25b]:after{content:"...";animation:ellipse-a930a25b 2s;animation-iteration-count:infinite}@keyframes gradient-a930a25b{0%{left:-100%}to{left:100%}}@keyframes ellipse-a930a25b{0%{content:""}20%{content:""}40%{content:"."}60%{content:".."}80%{content:"..."}}.aloading[data-v-e1165876]{width:100%;border-top:1px solid var(--sc-row-border-color);border-bottom:1px solid var(--sc-row-border-color);display:flex;background-color:#fff;border-left:4px solid var(--sc-row-border-color);padding-left:.5ch!important;padding-right:.5ch;padding-top:var(--sc-atable-row-padding);padding-bottom:var(--sc-atable-row-padding);align-items:center;box-sizing:border-box;background:var(--sc-focus-cell-background);overflow:hidden;position:relative}.aloading-bar[data-v-e1165876]{width:50%;height:3px;position:absolute;left:-100%;bottom:0;background:var(--sc-row-border-color);animation:bar-left-e1165876 infinite 2s;z-index:0}.aloading-header[data-v-e1165876]{color:var(--sc-cell-text-color);font-family:var(--sc-atable-font-family);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:var(--sc-table-font-size);padding:0;margin:0;font-weight:400;z-index:1}.aloading-header[data-v-e1165876]:after{content:"...";animation:ellipse-e1165876 2s;animation-iteration-count:infinite}@keyframes bar-left-e1165876{0%{left:-50%}to{left:100%}}@keyframes ellipse-e1165876{0%{content:""}20%{content:""}40%{content:"."}60%{content:".."}80%{content:"..."}}
2
+ /*$vite$:1*/`,document.head.appendChild(Fe);function ye(t,n){return e.getCurrentScope()?(e.onScopeDispose(t,n),!0):!1}const ct=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const dt=t=>t!=null,ft=Object.prototype.toString,ut=t=>ft.call(t)==="[object Object]",mt=()=>{};function ie(t){return Array.isArray(t)?t:[t]}function gt(t,n,r){return e.watch(t,n,{...r,immediate:!0})}const ne=ct?window:void 0;function oe(t){var n;const r=e.toValue(t);return(n=r?.$el)!==null&&n!==void 0?n:r}function ae(...t){const n=[],r=()=>{n.forEach(o=>o()),n.length=0},u=(o,l,i,d)=>(o.addEventListener(l,i,d),()=>o.removeEventListener(l,i,d)),f=e.computed(()=>{const o=ie(e.toValue(t[0])).filter(l=>l!=null);return o.every(l=>typeof l!="string")?o:void 0}),c=gt(()=>{var o,l;return[(o=(l=f.value)===null||l===void 0?void 0:l.map(i=>oe(i)))!==null&&o!==void 0?o:[ne].filter(i=>i!=null),ie(e.toValue(f.value?t[1]:t[0])),ie(e.unref(f.value?t[2]:t[1])),e.toValue(f.value?t[3]:t[2])]},([o,l,i,d])=>{if(r(),!o?.length||!l?.length||!i?.length)return;const b=ut(d)?{...d}:d;n.push(...o.flatMap(I=>l.flatMap(p=>i.map(C=>u(I,p,C,b)))))},{flush:"post"}),a=()=>{c(),r()};return ye(r),a}function ht(){const t=e.shallowRef(!1),n=e.getCurrentInstance();return n&&e.onMounted(()=>{t.value=!0},n),t}function pt(t){const n=ht();return e.computed(()=>(n.value,!!t()))}function bt(t,n,r={}){const{window:u=ne,...f}=r;let c;const a=pt(()=>u&&"MutationObserver"in u),o=()=>{c&&(c.disconnect(),c=void 0)},l=e.watch(e.computed(()=>{const b=ie(e.toValue(t)).map(oe).filter(dt);return new Set(b)}),b=>{o(),a.value&&b.size&&(c=new MutationObserver(n),b.forEach(I=>c.observe(I,f)))},{immediate:!0,flush:"post"}),i=()=>c?.takeRecords(),d=()=>{l(),o()};return ye(d),{isSupported:a,stop:d,takeRecords:i}}function wt(t,n,r={}){const{window:u=ne,document:f=u?.document,flush:c="sync"}=r;if(!u||!f)return mt;let a;const o=d=>{a?.(),a=d},l=e.watchEffect(()=>{const d=oe(t);if(d){const{stop:b}=bt(f,I=>{I.map(p=>[...p.removedNodes]).flat().some(p=>p===d||p.contains(d))&&n(I)},{window:u,childList:!0,subtree:!0});o(b)}},{flush:c}),i=()=>{l(),o()};return ye(i),i}function xt(t={}){var n;const{window:r=ne,deep:u=!0,triggerOnRemoval:f=!1}=t,c=(n=t.document)!==null&&n!==void 0?n:r?.document,a=()=>{let i=c?.activeElement;if(u)for(var d;i?.shadowRoot;)i=i==null||(d=i.shadowRoot)===null||d===void 0?void 0:d.activeElement;return i},o=e.shallowRef(),l=()=>{o.value=a()};if(r){const i={capture:!0,passive:!0};ae(r,"blur",d=>{d.relatedTarget===null&&l()},i),ae(r,"focus",l,i)}return f&&wt(o,l,{document:c}),l(),o}const yt="focusin",vt="focusout",kt=":focus-within";function Ct(t,n={}){const{window:r=ne}=n,u=e.computed(()=>oe(t)),f=e.shallowRef(!1),c=e.computed(()=>f.value);if(!r||!xt(n).value)return{focused:c};const a={passive:!0};return ae(u,yt,()=>f.value=!0,a),ae(u,vt,()=>{var o,l,i;return f.value=(o=(l=u.value)===null||l===void 0||(i=l.matches)===null||i===void 0?void 0:i.call(l,kt))!==null&&o!==void 0?o:!1},a),{focused:c}}function Et(t,{window:n=ne,scrollTarget:r}={}){const u=e.ref(!1),f=()=>{if(!n)return;const c=n.document,a=oe(t);if(!a)u.value=!1;else{const o=a.getBoundingClientRect();u.value=o.top<=(n.innerHeight||c.documentElement.clientHeight)&&o.left<=(n.innerWidth||c.documentElement.clientWidth)&&o.bottom>=0&&o.right>=0}};return e.watch(()=>oe(t),()=>f(),{immediate:!0,flush:"post"}),n&&ae(r||n,"scroll",f,{capture:!1,passive:!0}),u}const J=t=>{let n=Et(t).value;return n=n&&t.offsetHeight>0,n},Z=t=>t.tabIndex>=0,We=t=>{const n=t.target;return ve(n)},ve=t=>{let n;if(t instanceof HTMLTableCellElement){const r=t.parentElement?.previousElementSibling;if(r){const u=Array.from(r.children)[t.cellIndex];u&&(n=u)}}else if(t instanceof HTMLTableRowElement){const r=t.previousElementSibling;r&&(n=r)}return n&&(!Z(n)||!J(n))?ve(n):n},It=t=>{const n=t.target;let r;if(n instanceof HTMLTableCellElement){const u=n.parentElement?.parentElement;if(u){const f=u.firstElementChild?.children[n.cellIndex];f&&(r=f)}}else if(n instanceof HTMLTableRowElement){const u=n.parentElement;if(u){const f=u.firstElementChild;f&&(r=f)}}return r&&(!Z(r)||!J(r))?ke(r):r},Xe=t=>{const n=t.target;return ke(n)},ke=t=>{let n;if(t instanceof HTMLTableCellElement){const r=t.parentElement?.nextElementSibling;if(r){const u=Array.from(r.children)[t.cellIndex];u&&(n=u)}}else if(t instanceof HTMLTableRowElement){const r=t.nextElementSibling;r&&(n=r)}return n&&(!Z(n)||!J(n))?ke(n):n},Bt=t=>{const n=t.target;let r;if(n instanceof HTMLTableCellElement){const u=n.parentElement?.parentElement;if(u){const f=u.lastElementChild?.children[n.cellIndex];f&&(r=f)}}else if(n instanceof HTMLTableRowElement){const u=n.parentElement;if(u){const f=u.lastElementChild;f&&(r=f)}}return r&&(!Z(r)||!J(r))?ve(r):r},Ge=t=>{const n=t.target;return Ce(n)},Ce=t=>{let n;return t.previousElementSibling?n=t.previousElementSibling:n=t.parentElement?.previousElementSibling?.lastElementChild,n&&(!Z(n)||!J(n))?Ce(n):n},Ye=t=>{const n=t.target;return Ee(n)},Ee=t=>{let n;return t.nextElementSibling?n=t.nextElementSibling:n=t.parentElement?.nextElementSibling?.firstElementChild,n&&(!Z(n)||!J(n))?Ee(n):n},je=t=>{const n=t.target.parentElement?.firstElementChild;return n&&(!Z(n)||!J(n))?Ee(n):n},Ue=t=>{const n=t.target.parentElement?.lastElementChild;return n&&(!Z(n)||!J(n))?Ce(n):n},se=["alt","control","shift","meta"],St={ArrowUp:"up",ArrowDown:"down",ArrowLeft:"left",ArrowRight:"right"},ce={"keydown.up":t=>{const n=We(t);n&&(t.preventDefault(),t.stopPropagation(),n.focus())},"keydown.down":t=>{const n=Xe(t);n&&(t.preventDefault(),t.stopPropagation(),n.focus())},"keydown.left":t=>{const n=Ge(t);t.preventDefault(),t.stopPropagation(),n&&n.focus()},"keydown.right":t=>{const n=Ye(t);t.preventDefault(),t.stopPropagation(),n&&n.focus()},"keydown.control.up":t=>{const n=It(t);n&&(t.preventDefault(),t.stopPropagation(),n.focus())},"keydown.control.down":t=>{const n=Bt(t);n&&(t.preventDefault(),t.stopPropagation(),n.focus())},"keydown.control.left":t=>{const n=je(t);n&&(t.preventDefault(),t.stopPropagation(),n.focus())},"keydown.control.right":t=>{const n=Ue(t);n&&(t.preventDefault(),t.stopPropagation(),n.focus())},"keydown.end":t=>{const n=Ue(t);n&&(t.preventDefault(),t.stopPropagation(),n.focus())},"keydown.enter":t=>{if(t.target instanceof HTMLTableCellElement){t.preventDefault(),t.stopPropagation();const n=Xe(t);n&&n.focus()}},"keydown.shift.enter":t=>{if(t.target instanceof HTMLTableCellElement){t.preventDefault(),t.stopPropagation();const n=We(t);n&&n.focus()}},"keydown.home":t=>{const n=je(t);n&&(t.preventDefault(),t.stopPropagation(),n.focus())},"keydown.tab":t=>{const n=Ye(t);n&&(t.preventDefault(),t.stopPropagation(),n.focus())},"keydown.shift.tab":t=>{const n=Ge(t);n&&(t.preventDefault(),t.stopPropagation(),n.focus())}};function Ie(t){const n=a=>{let o=null;return a.parent&&(typeof a.parent=="string"?o=document.querySelector(a.parent):a.parent instanceof HTMLElement?o=a.parent:o=a.parent.value),o},r=a=>{const o=n(a);let l=[];if(typeof a.selectors=="string")l=o?Array.from(o.querySelectorAll(a.selectors)):Array.from(document.querySelectorAll(a.selectors));else if(Array.isArray(a.selectors))for(const i of a.selectors)i instanceof HTMLElement?l.push(i):l.push(i.$el);else if(a.selectors instanceof HTMLElement)l.push(a.selectors);else if(a.selectors?.value)if(Array.isArray(a.selectors.value))for(const i of a.selectors.value)i instanceof HTMLElement?l.push(i):l.push(i.$el);else l.push(a.selectors.value);return l},u=a=>{const o=n(a);let l=[];return a.selectors?l=r(a):o&&(l=Array.from(o.children).filter(i=>Z(i)&&J(i))),l},f=a=>o=>{const l=St[o.key]||o.key.toLowerCase();if(se.includes(l))return;const i=a.handlers||ce;for(const d of Object.keys(i)){const[b,...I]=d.split(".");if(b==="keydown"&&I.includes(l)){const p=i[d],C=I.filter(g=>se.includes(g)),w=se.some(g=>{const h=g.charAt(0).toUpperCase()+g.slice(1);return o.getModifierState(h)});if(C.length>0){if(w){for(const g of se)if(I.includes(g)){const h=g.charAt(0).toUpperCase()+g.slice(1);o.getModifierState(h)&&p(o)}}}else w||p(o)}}},c=[];e.onMounted(()=>{for(const a of t){const o=n(a),l=u(a),i=f(a),d=o?[o]:l;for(const b of d){const{focused:I}=Ct(e.ref(b)),p=e.watch(I,C=>{C?b.addEventListener("keydown",i):b.removeEventListener("keydown",i)});c.push(p)}}}),e.onBeforeUnmount(()=>{for(const a of c)a()})}function de(t,n){return e.getCurrentScope()?(e.onScopeDispose(t,n),!0):!1}const qe=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const $t=t=>t!=null,Vt=Object.prototype.toString,Rt=t=>Vt.call(t)==="[object Object]",ee=()=>{};function zt(...t){if(t.length!==1)return e.toRef(...t);const n=t[0];return typeof n=="function"?e.readonly(e.customRef(()=>({get:n,set:ee}))):e.ref(n)}function Dt(t,n){function r(...u){return new Promise((f,c)=>{Promise.resolve(t(()=>n.apply(this,u),{fn:n,thisArg:this,args:u})).then(f).catch(c)})}return r}function Tt(t,n={}){let r,u,f=ee;const c=l=>{clearTimeout(l),f(),f=ee};let a;return l=>{const i=e.toValue(t),d=e.toValue(n.maxWait);return r&&c(r),i<=0||d!==void 0&&d<=0?(u&&(c(u),u=void 0),Promise.resolve(l())):new Promise((b,I)=>{f=n.rejectOnCancel?I:b,a=l,d&&!u&&(u=setTimeout(()=>{r&&c(r),u=void 0,b(a())},d)),r=setTimeout(()=>{u&&c(u),u=void 0,b(l())},i)})}}function fe(t){return Array.isArray(t)?t:[t]}function Mt(t){return e.getCurrentInstance()}function Nt(t,n=200,r={}){return Dt(Tt(n,r),t)}function At(t,n={}){if(!e.isRef(t))return e.toRefs(t);const r=Array.isArray(t.value)?Array.from({length:t.value.length}):{};for(const u in t.value)r[u]=e.customRef(()=>({get(){return t.value[u]},set(f){var c;if(!((c=e.toValue(n.replaceRef))!==null&&c!==void 0)||c)if(Array.isArray(t.value)){const a=[...t.value];a[u]=f,t.value=a}else{const a={...t.value,[u]:f};Object.setPrototypeOf(a,Object.getPrototypeOf(t.value)),t.value=a}else t.value[u]=f}}));return r}function Ot(t,n=!0,r){Mt()?e.onMounted(t,r):n?t():e.nextTick(t)}function Pt(t,n,r){return e.watch(t,n,{...r,immediate:!0})}const le=qe?window:void 0;function U(t){var n;const r=e.toValue(t);return(n=r?.$el)!==null&&n!==void 0?n:r}function Q(...t){const n=[],r=()=>{n.forEach(o=>o()),n.length=0},u=(o,l,i,d)=>(o.addEventListener(l,i,d),()=>o.removeEventListener(l,i,d)),f=e.computed(()=>{const o=fe(e.toValue(t[0])).filter(l=>l!=null);return o.every(l=>typeof l!="string")?o:void 0}),c=Pt(()=>{var o,l;return[(o=(l=f.value)===null||l===void 0?void 0:l.map(i=>U(i)))!==null&&o!==void 0?o:[le].filter(i=>i!=null),fe(e.toValue(f.value?t[1]:t[0])),fe(e.unref(f.value?t[2]:t[1])),e.toValue(f.value?t[3]:t[2])]},([o,l,i,d])=>{if(r(),!o?.length||!l?.length||!i?.length)return;const b=Rt(d)?{...d}:d;n.push(...o.flatMap(I=>l.flatMap(p=>i.map(C=>u(I,p,C,b)))))},{flush:"post"}),a=()=>{c(),r()};return de(r),a}function Je(t,n,r={}){const{window:u=le,ignore:f=[],capture:c=!0,detectIframe:a=!1,controls:o=!1}=r;if(!u)return o?{stop:ee,cancel:ee,trigger:ee}:ee;let l=!0;const i=g=>e.toValue(f).some(h=>{if(typeof h=="string")return Array.from(u.document.querySelectorAll(h)).some(v=>v===g.target||g.composedPath().includes(v));{const v=U(h);return v&&(g.target===v||g.composedPath().includes(v))}});function d(g){const h=e.toValue(g);return h&&h.$.subTree.shapeFlag===16}function b(g,h){const v=e.toValue(g),T=v.$.subTree&&v.$.subTree.children;return T==null||!Array.isArray(T)?!1:T.some(D=>D.el===h.target||h.composedPath().includes(D.el))}const I=g=>{const h=U(t);if(g.target!=null&&!(!(h instanceof Element)&&d(t)&&b(t,g))&&!(!h||h===g.target||g.composedPath().includes(h))){if("detail"in g&&g.detail===0&&(l=!i(g)),!l){l=!0;return}n(g)}};let p=!1;const C=[Q(u,"click",g=>{p||(p=!0,setTimeout(()=>{p=!1},0),I(g))},{passive:!0,capture:c}),Q(u,"pointerdown",g=>{const h=U(t);l=!i(g)&&!!(h&&!g.composedPath().includes(h))},{passive:!0}),a&&Q(u,"blur",g=>{setTimeout(()=>{var h;const v=U(t);((h=u.document.activeElement)===null||h===void 0?void 0:h.tagName)==="IFRAME"&&!v?.contains(u.document.activeElement)&&n(g)},0)},{passive:!0})].filter(Boolean),w=()=>C.forEach(g=>g());return o?{stop:w,cancel:()=>{l=!1},trigger:g=>{l=!0,I(g),l=!1}}:w}function Lt(){const t=e.shallowRef(!1),n=e.getCurrentInstance();return n&&e.onMounted(()=>{t.value=!0},n),t}function Ze(t){const n=Lt();return e.computed(()=>(n.value,!!t()))}function Qe(t,n,r={}){const{window:u=le,...f}=r;let c;const a=Ze(()=>u&&"MutationObserver"in u),o=()=>{c&&(c.disconnect(),c=void 0)},l=e.watch(e.computed(()=>{const b=fe(e.toValue(t)).map(U).filter($t);return new Set(b)}),b=>{o(),a.value&&b.size&&(c=new MutationObserver(n),b.forEach(I=>c.observe(I,f)))},{immediate:!0,flush:"post"}),i=()=>c?.takeRecords(),d=()=>{l(),o()};return de(d),{isSupported:a,stop:d,takeRecords:i}}function Be(t,n={}){var r;const{pointerTypes:u,preventDefault:f,stopPropagation:c,exact:a,onMove:o,onEnd:l,onStart:i,initialValue:d,axis:b="both",draggingElement:I=le,containerElement:p,handle:C=t,buttons:w=[0]}=n,g=e.ref((r=e.toValue(d))!==null&&r!==void 0?r:{x:0,y:0}),h=e.ref(),v=y=>u?u.includes(y.pointerType):!0,T=y=>{e.toValue(f)&&y.preventDefault(),e.toValue(c)&&y.stopPropagation()},D=y=>{var S;if(!e.toValue(w).includes(y.button)||e.toValue(n.disabled)||!v(y)||e.toValue(a)&&y.target!==e.toValue(t))return;const P=e.toValue(p),A=P==null||(S=P.getBoundingClientRect)===null||S===void 0?void 0:S.call(P),z=e.toValue(t).getBoundingClientRect(),j={x:y.clientX-(P?z.left-A.left+P.scrollLeft:z.left),y:y.clientY-(P?z.top-A.top+P.scrollTop:z.top)};i?.(j,y)!==!1&&(h.value=j,T(y))},X=y=>{if(e.toValue(n.disabled)||!v(y)||!h.value)return;const S=e.toValue(p),P=e.toValue(t).getBoundingClientRect();let{x:A,y:z}=g.value;(b==="x"||b==="both")&&(A=y.clientX-h.value.x,S&&(A=Math.min(Math.max(0,A),S.scrollWidth-P.width))),(b==="y"||b==="both")&&(z=y.clientY-h.value.y,S&&(z=Math.min(Math.max(0,z),S.scrollHeight-P.height))),g.value={x:A,y:z},o?.(g.value,y),T(y)},R=y=>{e.toValue(n.disabled)||!v(y)||h.value&&(h.value=void 0,l?.(g.value,y),T(y))};if(qe){const y=()=>{var S;return{capture:(S=n.capture)!==null&&S!==void 0?S:!0,passive:!e.toValue(f)}};Q(C,"pointerdown",D,y),Q(I,"pointermove",X,y),Q(I,"pointerup",R,y)}return{...At(g),position:g,isDragging:e.computed(()=>!!h.value),style:e.computed(()=>`left:${g.value.x}px;top:${g.value.y}px;`)}}function Se(t,n,r={}){const{window:u=le,...f}=r;let c;const a=Ze(()=>u&&"ResizeObserver"in u),o=()=>{c&&(c.disconnect(),c=void 0)},l=e.watch(e.computed(()=>{const d=e.toValue(t);return Array.isArray(d)?d.map(b=>U(b)):[U(d)]}),d=>{if(o(),a.value&&u){c=new ResizeObserver(n);for(const b of d)b&&c.observe(b,f)}},{immediate:!0,flush:"post"}),i=()=>{o(),l()};return de(i),{isSupported:a,stop:i}}function te(t,n={}){const{reset:r=!0,windowResize:u=!0,windowScroll:f=!0,immediate:c=!0,updateTiming:a="sync"}=n,o=e.shallowRef(0),l=e.shallowRef(0),i=e.shallowRef(0),d=e.shallowRef(0),b=e.shallowRef(0),I=e.shallowRef(0),p=e.shallowRef(0),C=e.shallowRef(0);function w(){const h=U(t);if(!h){r&&(o.value=0,l.value=0,i.value=0,d.value=0,b.value=0,I.value=0,p.value=0,C.value=0);return}const v=h.getBoundingClientRect();o.value=v.height,l.value=v.bottom,i.value=v.left,d.value=v.right,b.value=v.top,I.value=v.width,p.value=v.x,C.value=v.y}function g(){a==="sync"?w():a==="next-frame"&&requestAnimationFrame(()=>w())}return Se(t,g),e.watch(()=>U(t),h=>!h&&g()),Qe(t,g,{attributeFilter:["style","class"]}),f&&Q("scroll",g,{capture:!0,passive:!0}),u&&Q("resize",g,{passive:!0}),Ot(()=>{c&&g()}),{height:o,bottom:l,left:i,right:d,top:b,width:I,x:p,y:C,update:g}}function $e(t){return typeof Window<"u"&&t instanceof Window?t.document.documentElement:typeof Document<"u"&&t instanceof Document?t.documentElement:t}const Ve=new WeakMap;function Ht(t,n=!1){const r=e.shallowRef(n);let u="";e.watch(zt(t),a=>{const o=$e(e.toValue(a));if(o){const l=o;if(Ve.get(l)||Ve.set(l,l.style.overflow),l.style.overflow!=="hidden"&&(u=l.style.overflow),l.style.overflow==="hidden")return r.value=!0;if(r.value)return l.style.overflow="hidden"}},{immediate:!0});const f=()=>{const a=$e(e.toValue(t));!a||r.value||(a.style.overflow="hidden",r.value=!0)},c=()=>{const a=$e(e.toValue(t));!a||!r.value||(a.style.overflow=u,Ve.delete(a),r.value=!1)};return de(c),e.computed({get(){return r.value},set(a){a?f():c()}})}const Ft=t=>{const n=new DOMParser().parseFromString(t,"text/html");return Array.from(n.body.childNodes).some(r=>r.nodeType===1)},Wt=(t=8)=>Array.from({length:t},()=>Math.floor(Math.random()*16).toString(16)).join(""),Xt=["data-colindex","data-rowindex","data-editable","contenteditable","tabindex"],Gt=["innerHTML"],Yt={key:2},Ke=e.defineComponent({__name:"ACell",props:{colIndex:{},rowIndex:{},store:{},addNavigation:{type:[Boolean,Object],default:!0},tabIndex:{default:0},pinned:{type:Boolean,default:!1},debounce:{default:300}},setup(t,{expose:n}){const r=e.useTemplateRef("cell"),u=t.store.getCellData(t.colIndex,t.rowIndex),f=e.ref(""),c=e.ref(!1),a=t.store.columns[t.colIndex],o=t.store.rows[t.rowIndex],l=a.align||"center",i=a.width||"40ch",d=e.computed(()=>t.store.getCellDisplayValue(t.colIndex,t.rowIndex)),b=e.computed(()=>typeof d.value=="string"?Ft(d.value):!1),I=e.computed(()=>({textAlign:l,width:i,fontWeight:c.value?"bold":"inherit",paddingLeft:t.store.getIndent(t.colIndex,t.store.display[t.rowIndex]?.indent)})),p=e.computed(()=>({"sticky-column":t.pinned,"cell-modified":c.value})),C=()=>{g(),w()},w=()=>{const{left:R,bottom:y,width:S,height:P}=te(r);a.mask,a.modalComponent&&t.store.$patch(A=>{A.modal.visible=!0,A.modal.colIndex=t.colIndex,A.modal.rowIndex=t.rowIndex,A.modal.left=R,A.modal.bottom=y,A.modal.width=S,A.modal.height=P,A.modal.cell=r.value,typeof a.modalComponent=="function"?A.modal.component=a.modalComponent({table:A.table,row:o,column:a}):A.modal.component=a.modalComponent,A.modal.componentProps=a.modalComponentExtraProps})};if(t.addNavigation){let R={...ce,"keydown.f2":w,"keydown.alt.up":w,"keydown.alt.down":w,"keydown.alt.left":w,"keydown.alt.right":w};typeof t.addNavigation=="object"&&(R={...R,...t.addNavigation}),Ie([{selectors:r,handlers:R}])}const g=()=>{if(r.value&&a.edit){const R=window.getSelection();if(R)try{const y=document.createRange();y.selectNodeContents&&(y.selectNodeContents(r.value),R.removeAllRanges(),R.addRange(y))}catch{}}},h=()=>{r.value&&(f.value=r.value.textContent,g())},v=()=>{try{const R=window.getSelection();if(R&&R.rangeCount>0&&r.value){const y=R.getRangeAt(0),S=y.cloneRange();if(S.selectNodeContents&&S.setEnd)return S.selectNodeContents(r.value),S.setEnd(y.endContainer,y.endOffset),S.toString().length}}catch{}return 0},T=R=>{if(r.value)try{const y=window.getSelection();if(!y)return;let S=0;const P=document.createTreeWalker?document.createTreeWalker(r.value,NodeFilter.SHOW_TEXT,null):null;if(!P)return;let A,z=null;for(;A=P.nextNode();){const j=A,_=S+j.textContent.length;if(R<=_&&(z=document.createRange(),z.setStart&&z.setEnd)){z.setStart(j,R-S),z.setEnd(j,R-S);break}S=_}z&&y.removeAllRanges&&y.addRange&&(y.removeAllRanges(),y.addRange(z))}catch{}},D=R=>{if(!a.edit)return;const y=R.target;if(y.textContent===f.value)return;const S=v();f.value=y.textContent,a.format?(c.value=y.textContent!==t.store.getFormattedValue(t.colIndex,t.rowIndex,u),t.store.setCellText(t.colIndex,t.rowIndex,y.textContent)):(c.value=y.textContent!==u,t.store.setCellData(t.colIndex,t.rowIndex,y.textContent)),e.nextTick().then(()=>{T(S)})},X=Nt(D,t.debounce);return n({currentData:f}),(R,y)=>(e.openBlock(),e.createElementBlock("td",{ref:"cell","data-colindex":t.colIndex,"data-rowindex":t.rowIndex,"data-editable":e.unref(a).edit,contenteditable:e.unref(a).edit,tabindex:t.tabIndex,spellcheck:!1,style:e.normalizeStyle(I.value),class:e.normalizeClass(["atable-cell",p.value]),onFocus:h,onPaste:D,onInput:y[0]||(y[0]=(...S)=>e.unref(X)&&e.unref(X)(...S)),onClick:C},[e.unref(a).cellComponent?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(a).cellComponent),e.mergeProps({key:0,value:d.value},e.unref(a).cellComponentProps),null,16,["value"])):b.value?(e.openBlock(),e.createElementBlock("span",{key:1,innerHTML:d.value},null,8,Gt)):(e.openBlock(),e.createElementBlock("span",Yt,e.toDisplayString(d.value),1))],46,Xt))}}),jt=["tabindex"],Ut=["tabindex"],qt=["colspan"],Jt=e.defineComponent({__name:"AExpansionRow",props:{rowIndex:{},store:{},tabIndex:{default:()=>-1},addNavigation:{type:[Boolean,Object],default:()=>ce}},setup(t){const n=e.useTemplateRef("rowEl"),r=e.computed(()=>t.store.display[t.rowIndex].expanded?"▼":"►");if(t.addNavigation){const u={"keydown.control.g":f=>{f.stopPropagation(),f.preventDefault(),t.store.toggleRowExpand(t.rowIndex)}};typeof t.addNavigation=="object"&&Object.assign(u,t.addNavigation),Ie([{selectors:n,handlers:u}])}return(u,f)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("tr",e.mergeProps(u.$attrs,{ref:"rowEl",tabindex:t.tabIndex,class:"expandable-row"}),[e.createElementVNode("td",{tabIndex:-1,class:"row-index",onClick:f[0]||(f[0]=c=>t.store.toggleRowExpand(t.rowIndex))},e.toDisplayString(r.value),1),e.renderSlot(u.$slots,"row",{},void 0,!0)],16,jt),t.store.display[t.rowIndex].expanded?(e.openBlock(),e.createElementBlock("tr",{key:0,ref:"rowExpanded",tabindex:t.tabIndex,class:"expanded-row"},[e.createElementVNode("td",{tabIndex:-1,colspan:t.store.columns.length+1,class:"expanded-row-content"},[e.renderSlot(u.$slots,"content",{},void 0,!0)],8,qt)],8,Ut)):e.createCommentVNode("",!0)],64))}}),K=(t,n)=>{const r=t.__vccOpts||t;for(const[u,f]of n)r[u]=f;return r},_e=K(Jt,[["__scopeId","data-v-a42297c7"]]),Zt=["colspan"],Qt={ref:"container",class:"gantt-container"},Kt=["data-rowindex","data-colindex"],_t={key:2,class:"gantt-label"},en=["x1","y1","x2","y2"],et=K(e.defineComponent({__name:"AGanttCell",props:{store:{},columnsCount:{},rowIndex:{},colIndex:{},start:{default:0},end:{default:0},colspan:{default:1},label:{default:""},color:{default:"#cccccc"}},emits:["connection:create"],setup(t,{expose:n,emit:r}){e.useCssVars(E=>({v6d722296:f.value,v260b36f8:E.colspan}));const u=r,f=e.ref(t.color.length>=6?t.color:"#cccccc"),c=`gantt-bar-row-${t.rowIndex}-col-${t.colIndex}`,a=e.useTemplateRef("container"),o=e.useTemplateRef("bar"),l=e.useTemplateRef("leftResizeHandle"),i=e.useTemplateRef("rightResizeHandle"),d=e.useTemplateRef("leftConnectionHandle"),b=e.useTemplateRef("rightConnectionHandle"),{width:I}=te(a),{left:p,right:C}=te(o),w=e.ref(t.start),g=e.ref(t.end||w.value+t.colspan),h=e.ref(!1),v=e.ref(!1),T=e.ref(!1),D=e.ref(!1),X=e.ref(!1),R=e.ref({startX:0,startY:0,endX:0,endY:0}),y=e.computed(()=>me.value||j.value||_.value),S=e.computed(()=>t.colspan>0?I.value/t.colspan:0),P=e.computed(()=>{const E=w.value/t.colspan*100,$=g.value/t.colspan*100;return{left:`${E}%`,width:`${$-E}%`,backgroundColor:f.value}}),A=e.computed(()=>({position:"fixed",top:0,left:0,width:"100vw",height:"100vh",pointerEvents:"none",zIndex:1e3})),z=e.ref({startX:0,startPos:0}),{isDragging:j}=Be(l,{axis:"x",onStart:()=>re(p.value,w.value),onMove:({x:E})=>Me(E),onEnd:({x:E})=>Ne(E)}),{isDragging:_}=Be(i,{axis:"x",onStart:()=>re(C.value,g.value),onMove:({x:E})=>Ae(E),onEnd:({x:E})=>ge(E)}),{isDragging:me}=Be(o,{exact:!0,axis:"x",onStart:()=>re(p.value,w.value),onMove:({x:E})=>Oe(E),onEnd:({x:E})=>he(E)});e.onMounted(()=>{Pe()}),e.onUnmounted(()=>{Le()});function re(E,$){o.value&&(o.value.style.transition="none"),z.value={startX:E,startPos:$}}function Me(E){if(!j.value||!o.value)return;const O=(E-z.value.startX)/S.value,N=Math.max(0,Math.min(g.value-1,z.value.startPos+O));o.value.style.left=`${N/t.colspan*100}%`,o.value.style.width=`${(g.value-N)/t.colspan*100}%`}function Ne(E){if(!o.value)return;const $=E-z.value.startX,O=Math.round($/S.value),N=w.value,L=Math.max(0,Math.min(g.value-1,z.value.startPos+O));w.value=L,t.store.updateGanttBar({rowIndex:t.rowIndex,colIndex:t.colIndex,type:"resize",edge:"start",oldStart:N,newStart:L,end:g.value,delta:O,oldColspan:g.value-N,newColspan:g.value-L})}function Ae(E){if(!_.value||!o.value)return;const O=(E-z.value.startX)/S.value,N=Math.max(w.value+1,Math.min(t.columnsCount,z.value.startPos+O));o.value.style.width=`${(N-w.value)/t.colspan*100}%`}function ge(E){if(!o.value)return;const $=E-z.value.startX,O=Math.round($/S.value),N=g.value,L=Math.max(w.value+1,Math.min(t.columnsCount,z.value.startPos+O));g.value=L,t.store.updateGanttBar({rowIndex:t.rowIndex,colIndex:t.colIndex,type:"resize",edge:"end",oldEnd:N,newEnd:L,start:w.value,delta:O,oldColspan:N-w.value,newColspan:L-w.value})}function Oe(E){if(!me.value||!o.value)return;const O=(E-z.value.startX)/S.value,N=g.value-w.value,L=Math.max(0,Math.min(z.value.startPos+O,t.columnsCount-N));o.value.style.left=`${L/t.colspan*100}%`}function he(E){if(!o.value)return;const $=E-z.value.startX,O=Math.round($/S.value),N=g.value-w.value,L=w.value,W=g.value;let G=z.value.startPos+O,Y=G+N;G<0?(G=0,Y=N):Y>t.columnsCount&&(Y=t.columnsCount,G=Y-N),w.value=G,g.value=Y,t.store.updateGanttBar({rowIndex:t.rowIndex,colIndex:t.colIndex,type:"bar",oldStart:L,oldEnd:W,newStart:G,newEnd:Y,delta:O,colspan:Y-G})}function Pe(){const{x:E,y:$}=te(o),{x:O,y:N}=te(d),{x:L,y:W}=te(b);t.store.registerGanttBar({id:c,rowIndex:t.rowIndex,colIndex:t.colIndex,startIndex:w,endIndex:g,color:f,label:t.label,position:{x:E,y:$}}),t.store.isDependencyGraphEnabled&&(t.store.registerConnectionHandle({id:`${c}-connection-left`,rowIndex:t.rowIndex,colIndex:t.colIndex,side:"left",position:{x:O,y:N},visible:h,barId:c}),t.store.registerConnectionHandle({id:`${c}-connection-right`,rowIndex:t.rowIndex,colIndex:t.colIndex,side:"right",position:{x:L,y:W},visible:v,barId:c}))}function Le(){t.store.unregisterGanttBar(c),t.store.isDependencyGraphEnabled&&(t.store.unregisterConnectionHandle(`${c}-connection-left`),t.store.unregisterConnectionHandle(`${c}-connection-right`))}function He(){t.store.isDependencyGraphEnabled&&(h.value=!0,v.value=!0)}function pe(){!T.value&&!D.value&&(h.value=!1,v.value=!1)}function be(E,$){$.preventDefault(),$.stopPropagation(),X.value=!0,E==="left"?T.value=!0:D.value=!0;const O=E==="left"?d.value:b.value;if(O){const W=O.getBoundingClientRect(),G=W.left+W.width/2,Y=W.top+W.height/2;R.value={startX:G,startY:Y,endX:G,endY:Y}}const N=W=>{R.value.endX=W.clientX,R.value.endY=W.clientY},L=W=>{we(W,E),xe(N,L)};document.addEventListener("mousemove",N),document.addEventListener("mouseup",L)}function we(E,$){const N=document.elementFromPoint(E.clientX,E.clientY)?.closest(".connection-handle");if(N&&N!==($==="left"?d.value:b.value)){const L=N.closest(".gantt-bar");if(L){const W=parseInt(L.getAttribute("data-rowindex")||"0"),G=parseInt(L.getAttribute("data-colindex")||"0"),Y=N.classList.contains("left-connection-handle")?"left":"right",s=`gantt-bar-row-${W}-col-${G}`,m=t.store.createConnection(`${c}-connection-${$}`,`${s}-connection-${Y}`);m&&u("connection:create",m)}}}function xe(E,$){X.value=!1,T.value=!1,D.value=!1,document.removeEventListener("mousemove",E),document.removeEventListener("mouseup",$),o.value?.matches(":hover")||pe()}return n({barStyle:P,cleanupConnectionDrag:xe,currentEnd:g,handleConnectionDrop:we,isLeftConnectionDragging:T,isLeftConnectionVisible:h,isRightConnectionDragging:D,isRightConnectionVisible:v,showDragPreview:X}),(E,$)=>(e.openBlock(),e.createElementBlock("td",{class:"aganttcell",colspan:t.colspan},[e.createElementVNode("div",Qt,[e.createElementVNode("div",{ref:"bar","data-rowindex":t.rowIndex,"data-colindex":t.colIndex,class:e.normalizeClass(["gantt-bar",{"is-dragging":y.value}]),style:e.normalizeStyle(P.value),onMouseenter:He,onMouseleave:pe},[t.store.isDependencyGraphEnabled?(e.openBlock(),e.createElementBlock("div",{key:0,ref:"leftConnectionHandle",class:e.normalizeClass(["connection-handle left-connection-handle",{visible:h.value,"is-dragging":T.value}]),onMousedown:$[0]||($[0]=e.withModifiers(O=>be("left",O),["stop"]))},[...$[2]||($[2]=[e.createElementVNode("div",{class:"connection-dot"},null,-1)])],34)):e.createCommentVNode("",!0),t.store.isDependencyGraphEnabled?(e.openBlock(),e.createElementBlock("div",{key:1,ref:"rightConnectionHandle",class:e.normalizeClass(["connection-handle right-connection-handle",{visible:v.value,"is-dragging":D.value}]),onMousedown:$[1]||($[1]=e.withModifiers(O=>be("right",O),["stop"]))},[...$[3]||($[3]=[e.createElementVNode("div",{class:"connection-dot"},null,-1)])],34)):e.createCommentVNode("",!0),e.createElementVNode("div",{ref:"leftResizeHandle",class:e.normalizeClass(["resize-handle left-resize-handle",{"is-dragging":e.unref(j)}])},[...$[4]||($[4]=[e.createElementVNode("div",{class:"handle-grip"},null,-1),e.createElementVNode("div",{class:"vertical-indicator left-indicator"},null,-1)])],2),t.label?(e.openBlock(),e.createElementBlock("label",_t,e.toDisplayString(t.label),1)):e.createCommentVNode("",!0),e.createElementVNode("div",{ref:"rightResizeHandle",class:e.normalizeClass(["resize-handle right-resize-handle",{"is-dragging":e.unref(_)}])},[...$[5]||($[5]=[e.createElementVNode("div",{class:"handle-grip"},null,-1),e.createElementVNode("div",{class:"vertical-indicator right-indicator"},null,-1)])],2)],46,Kt)],512),t.store.isDependencyGraphEnabled&&X.value?(e.openBlock(),e.createElementBlock("svg",{key:0,style:e.normalizeStyle(A.value)},[e.createElementVNode("line",{x1:R.value.startX,y1:R.value.startY,x2:R.value.endX,y2:R.value.endY,stroke:"#2196f3","stroke-width":"2","stroke-dasharray":"5,5"},null,8,en)],4)):e.createCommentVNode("",!0)],8,Zt))}}),[["__scopeId","data-v-8917a8a3"]]),tn=["tabindex"],Re=K(e.defineComponent({__name:"ARow",props:{rowIndex:{},store:{},tabIndex:{default:()=>-1},addNavigation:{type:[Boolean,Object],default:!1}},setup(t){const n=e.useTemplateRef("rowEl"),r=e.computed(()=>t.store.isRowVisible(t.rowIndex)),u=e.computed(()=>t.store.getRowExpandSymbol(t.rowIndex));if(t.addNavigation){let f=ce;typeof t.addNavigation=="object"&&(f={...f,...t.addNavigation}),Ie([{selectors:n,handlers:f}])}return(f,c)=>e.withDirectives((e.openBlock(),e.createElementBlock("tr",{ref:"rowEl",tabindex:t.tabIndex,class:"atable-row"},[t.store.config.view!=="uncounted"?e.renderSlot(f.$slots,"index",{key:0},()=>[t.store.config.view==="list"?(e.openBlock(),e.createElementBlock("td",{key:0,tabIndex:-1,class:e.normalizeClass(["list-index",t.store.hasPinnedColumns?"sticky-index":""])},e.toDisplayString(t.rowIndex+1),3)):t.store.isTreeView?(e.openBlock(),e.createElementBlock("td",{key:1,tabIndex:-1,class:e.normalizeClass(["tree-index",t.store.hasPinnedColumns?"sticky-index":""]),onClick:c[0]||(c[0]=a=>t.store.toggleRowExpand(t.rowIndex))},e.toDisplayString(u.value),3)):e.createCommentVNode("",!0)],!0):e.createCommentVNode("",!0),e.renderSlot(f.$slots,"default",{},void 0,!0)],8,tn)),[[e.vShow,r.value]])}}),[["__scopeId","data-v-0fa91f83"]]),ze=new WeakMap,nn={mounted(t,n){const r=!n.modifiers.bubble;let u;if(typeof n.value=="function")u=Je(t,n.value,{capture:r});else{const[f,c]=n.value;u=Je(t,f,Object.assign({capture:r},c))}ze.set(t,u)},unmounted(t){const n=ze.get(t);n&&typeof n=="function"?n():n?.stop(),ze.delete(t)}},on={mounted(t,n){typeof n.value=="function"?Se(t,n.value):Se(t,...n.value)}};function an(){let t=!1;const n=e.shallowRef(!1);return(r,u)=>{if(n.value=u.value,t)return;t=!0;const f=Ht(r,u.value);e.watch(n,c=>f.value=c)}}an();const ln={class:"gantt-connection-overlay"},rn={class:"connection-svg",style:{position:"absolute",top:0,left:0,width:"100%",height:"100%",pointerEvents:"none",zIndex:1}},sn=["d","stroke-width","onDblclick"],cn=["id","d","stroke","stroke-width","onDblclick"],dn=.25,ue=16,fn=K(e.defineComponent({__name:"AGanttConnection",props:{store:{}},emits:["connection:delete"],setup(t,{emit:n}){const r=n,u=e.computed(()=>t.store.connectionPaths.filter(a=>{const o=t.store.ganttBars.find(i=>i.id===a.from.barId),l=t.store.ganttBars.find(i=>i.id===a.to.barId);return o&&l})),f=a=>{const o=t.store.connectionHandles.find(y=>y.barId===a.from.barId&&y.side===a.from.side),l=t.store.connectionHandles.find(y=>y.barId===a.to.barId&&y.side===a.to.side);if(!o||!l)return"";const i=o.position.x+ue/2,d=o.position.y+ue/2,b=l.position.x+ue/2,I=l.position.y+ue/2,p=Math.abs(b-i),C=Math.max(p*dn,50),w=i+(a.from.side==="left"?-C:C),g=b+(a.to.side==="left"?-C:C),h={x:.5*i+.5*w,y:.5*d+.5*d},v={x:.5*w+.5*g,y:.5*d+.5*I},T={x:.5*g+.5*b,y:.5*I+.5*I},D={x:.5*h.x+.5*v.x,y:.5*h.y+.5*v.y},X={x:.5*v.x+.5*T.x,y:.5*v.y+.5*T.y},R={x:.5*D.x+.5*X.x,y:.5*D.y+.5*X.y};return`M ${i} ${d} Q ${w} ${d}, ${R.x} ${R.y} Q ${g} ${I}, ${b} ${I}`},c=a=>{t.store.deleteConnection(a.id)&&r("connection:delete",a)};return(a,o)=>(e.openBlock(),e.createElementBlock("div",ln,[(e.openBlock(),e.createElementBlock("svg",rn,[o[0]||(o[0]=e.createElementVNode("defs",null,[e.createElementVNode("path",{id:"arrowhead",d:"M 0 -7 L 20 0 L 0 7Z",stroke:"black","stroke-width":"1",fill:"currentColor"}),e.createElementVNode("marker",{id:"arrowhead-marker",markerWidth:"10",markerHeight:"7",refX:"5",refY:"3.5",orient:"auto",markerUnits:"strokeWidth"},[e.createElementVNode("polygon",{points:"0 0, 10 3.5, 0 7",fill:"currentColor"})])],-1)),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(u.value,l=>(e.openBlock(),e.createElementBlock("path",{key:`${l.id}-hitbox`,d:f(l),stroke:"transparent","stroke-width":(l.style?.width||2)+10,fill:"none",class:"connection-hitbox",onDblclick:i=>c(l)},null,40,sn))),128)),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(u.value,l=>(e.openBlock(),e.createElementBlock("path",{id:l.id,key:l.id,d:f(l),stroke:l.style?.color||"#666","stroke-width":l.style?.width||2,fill:"none","marker-mid":"url(#arrowhead-marker)",class:"connection-path animated-path",onDblclick:i=>c(l)},null,40,cn))),128))]))]))}}),[["__scopeId","data-v-71911260"]]),un={class:"column-filter"},mn={key:2,class:"checkbox-filter"},gn=["value"],hn={key:5,class:"date-range-filter"},pn=K(e.defineComponent({__name:"ATableColumnFilter",props:{column:{},colIndex:{},store:{}},setup(t){const n=e.ref(""),r=e.reactive({startValue:"",endValue:""}),u=l=>{if(l.filterOptions)return l.filterOptions;const i=new Set;return t.store.rows.forEach(d=>{const b=d[l.name];b!=null&&b!==""&&i.add(b)}),Array.from(i).map(d=>({value:d,label:String(d)}))},f=e.computed(()=>!!(n.value||r.startValue||r.endValue)),c=l=>{!l&&t.column.filterType!=="checkbox"?(t.store.clearFilter(t.colIndex),n.value=""):(n.value=l,t.store.setFilter(t.colIndex,{value:l}))},a=(l,i)=>{l==="start"?r.startValue=i:r.endValue=i,!r.startValue&&!r.endValue?t.store.clearFilter(t.colIndex):t.store.setFilter(t.colIndex,{value:null,startValue:r.startValue,endValue:r.endValue})},o=()=>{n.value="",r.startValue="",r.endValue="",t.store.clearFilter(t.colIndex)};return(l,i)=>(e.openBlock(),e.createElementBlock("div",un,[(t.column.filterType||"text")==="text"?e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:0,"onUpdate:modelValue":i[0]||(i[0]=d=>n.value=d),type:"text",class:"filter-input",onInput:i[1]||(i[1]=d=>c(n.value))},null,544)),[[e.vModelText,n.value]]):t.column.filterType==="number"?e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:1,"onUpdate:modelValue":i[2]||(i[2]=d=>n.value=d),type:"number",class:"filter-input",onInput:i[3]||(i[3]=d=>c(n.value))},null,544)),[[e.vModelText,n.value]]):t.column.filterType==="checkbox"?(e.openBlock(),e.createElementBlock("label",mn,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":i[4]||(i[4]=d=>n.value=d),type:"checkbox",class:"filter-checkbox",onChange:i[5]||(i[5]=d=>c(n.value))},null,544),[[e.vModelCheckbox,n.value]]),e.createElementVNode("span",null,e.toDisplayString(t.column.label),1)])):t.column.filterType==="select"?e.withDirectives((e.openBlock(),e.createElementBlock("select",{key:3,"onUpdate:modelValue":i[6]||(i[6]=d=>n.value=d),class:"filter-select",onChange:i[7]||(i[7]=d=>c(n.value))},[i[15]||(i[15]=e.createElementVNode("option",{value:""},"All",-1)),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(u(t.column),d=>(e.openBlock(),e.createElementBlock("option",{key:d.value||d,value:d.value||d},e.toDisplayString(d.label||d),9,gn))),128))],544)),[[e.vModelSelect,n.value]]):t.column.filterType==="date"?e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:4,"onUpdate:modelValue":i[8]||(i[8]=d=>n.value=d),type:"date",class:"filter-input",onChange:i[9]||(i[9]=d=>c(n.value))},null,544)),[[e.vModelText,n.value]]):t.column.filterType==="dateRange"?(e.openBlock(),e.createElementBlock("div",hn,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":i[10]||(i[10]=d=>r.startValue=d),type:"date",class:"filter-input",onChange:i[11]||(i[11]=d=>a("start",r.startValue))},null,544),[[e.vModelText,r.startValue]]),i[16]||(i[16]=e.createElementVNode("span",{class:"date-separator"},"-",-1)),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":i[12]||(i[12]=d=>r.endValue=d),type:"date",class:"filter-input",onChange:i[13]||(i[13]=d=>a("end",r.endValue))},null,544),[[e.vModelText,r.endValue]])])):t.column.filterType==="component"&&t.column.filterComponent?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.column.filterComponent),{key:6,value:n.value,column:t.column,colIndex:t.colIndex,store:t.store,"onUpdate:value":i[14]||(i[14]=d=>c(d))},null,40,["value","column","colIndex","store"])):e.createCommentVNode("",!0),f.value?(e.openBlock(),e.createElementBlock("button",{key:7,onClick:o,class:"clear-btn",title:"Clear"},"×")):e.createCommentVNode("",!0)]))}}),[["__scopeId","data-v-8487462d"]]),bn={key:0},wn={class:"atable-header-row",tabindex:"-1"},xn=["data-colindex","onClick"],yn={key:0,class:"atable-filters-row"},De=e.defineComponent({__name:"ATableHeader",props:{columns:{},store:{}},setup(t){const n=e.computed(()=>t.columns.filter(f=>f.filterable)),r=f=>t.store.sortByColumn(f),u=f=>{for(const c of f){if(c.borderBoxSize.length===0)continue;const o=c.borderBoxSize[0].inlineSize,l=Number(c.target.dataset.colindex),i=t.store.columns[l]?.width;typeof i=="number"&&i!==o&&t.store.resizeColumn(l,o)}};return(f,c)=>t.columns.length?(e.openBlock(),e.createElementBlock("thead",bn,[e.createElementVNode("tr",wn,[t.store.zeroColumn?(e.openBlock(),e.createElementBlock("th",{key:0,id:"header-index",class:e.normalizeClass([[t.store.hasPinnedColumns?"sticky-index":"",t.store.isTreeView?"tree-index":"",t.store.config.view==="list-expansion"?"list-expansion-index":""],"list-index"])},null,2)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.columns,(a,o)=>e.withDirectives((e.openBlock(),e.createElementBlock("th",{key:a.name,"data-colindex":o,tabindex:"-1",style:e.normalizeStyle(t.store.getHeaderCellStyle(a)),class:e.normalizeClass(`${a.pinned?"sticky-column":""} ${a.sortable===!1?"":"cursor-pointer"}`),onClick:l=>a.sortable!==!1?r(o):void 0},[e.renderSlot(f.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(a.label||String.fromCharCode(o+97).toUpperCase()),1)])],14,xn)),[[e.unref(on),u]])),128))]),n.value.length>0?(e.openBlock(),e.createElementBlock("tr",yn,[t.store.zeroColumn?(e.openBlock(),e.createElementBlock("th",{key:0,class:e.normalizeClass([[t.store.hasPinnedColumns?"sticky-index":"",t.store.isTreeView?"tree-index":"",t.store.config.view==="list-expansion"?"list-expansion-index":""],"list-index"])},null,2)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.columns,(a,o)=>(e.openBlock(),e.createElementBlock("th",{key:`filter-${a.name}`,class:e.normalizeClass(`${a.pinned?"sticky-column":""}`),style:e.normalizeStyle(t.store.getHeaderCellStyle(a))},[a.filterable?(e.openBlock(),e.createBlock(pn,{key:0,column:a,"col-index":o,store:t.store},null,8,["column","col-index","store"])):e.createCommentVNode("",!0)],6))),128))])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)}}),Te=e.defineComponent({__name:"ATableModal",props:{store:{}},setup(t){const n=e.useTemplateRef("amodal"),{width:r,height:u}=te(n),f=e.computed(()=>{if(!(t.store.modal.height&&t.store.modal.width&&t.store.modal.left&&t.store.modal.bottom))return;const c=t.store.modal.cell?.closest("table");if(!c)return{};const a=c.offsetHeight||0,o=c.offsetWidth||0;let l=t.store.modal.cell?.offsetTop||0;const i=c.querySelector("thead")?.offsetHeight||0;l+=i,l=l+u.value<a?l:l-(u.value+t.store.modal.height);let d=t.store.modal.cell?.offsetLeft||0;return d=d+r.value<=o?d:d-(r.value-t.store.modal.width),{left:`${d}px`,top:`${l}px`}});return(c,a)=>(e.openBlock(),e.createElementBlock("div",{ref:"amodal",class:"amodal",tabindex:"-1",style:e.normalizeStyle(f.value),onClick:a[0]||(a[0]=e.withModifiers(()=>{},["stop"])),onInput:a[1]||(a[1]=e.withModifiers(()=>{},["stop"]))},[e.renderSlot(c.$slots,"default")],36))}}),tt=t=>{const n=t.id||Wt();return st.defineStore(`table-${n}`,()=>{const u=()=>{const s=[Object.assign({},{rowModified:!1})],m=new Set;for(let k=0;k<c.value.length;k++){const B=c.value[k];B.parent!==null&&B.parent!==void 0&&m.add(B.parent)}const x=k=>c.value[k]?.gantt!==void 0,V=k=>{for(let B=0;B<c.value.length;B++)if(c.value[B].parent===k&&(x(B)||V(B)))return!0;return!1},M=k=>{const B=a.value,H=B.view==="tree"||B.view==="tree-gantt"?B.defaultTreeExpansion:void 0;if(!H)return!0;switch(H){case"root":return!1;case"branch":return V(k);case"leaf":return!0;default:return!0}};for(let k=0;k<c.value.length;k++){const B=c.value[k],H=B.parent===null||B.parent===void 0,q=m.has(k);s[k]={childrenOpen:M(k),expanded:!1,indent:B.indent||0,isParent:q,isRoot:H,rowModified:!1,open:H,parent:B.parent}}return s},f=e.ref(t.columns),c=e.ref(t.rows),a=e.ref(t.config||{}),o=e.ref({}),l=e.ref({}),i=e.computed(()=>{const s={};for(const[m,x]of f.value.entries())for(const[V,M]of c.value.entries())s[`${m}:${V}`]=M[x.name];return s}),d=e.computed({get:()=>{const s=u();for(let m=0;m<s.length;m++)o.value[m]&&(s[m].rowModified=o.value[m]),l.value[m]&&(l.value[m].childrenOpen!==void 0&&(s[m].childrenOpen=l.value[m].childrenOpen),l.value[m].expanded!==void 0&&(s[m].expanded=l.value[m].expanded));if(D.value){const m=(x,V)=>{const M=V[x];if(M.isRoot||M.parent===null||M.parent===void 0)return!0;const k=M.parent;return k<0||k>=V.length?!1:(V[k].childrenOpen||!1)&&m(k,V)};for(let x=0;x<s.length;x++)s[x].isRoot||(s[x].open=m(x,s))}return s},set:s=>{JSON.stringify(s)!==JSON.stringify(d.value)&&(d.value=s)}}),b=e.ref(t.modal||{visible:!1}),I=e.ref({}),p=e.ref([]),C=e.ref([]),w=e.ref([]),g=e.ref({column:null,direction:null}),h=e.ref({}),v=e.computed(()=>f.value.some(s=>s.pinned)),T=e.computed(()=>a.value.view==="gantt"||a.value.view==="tree-gantt"),D=e.computed(()=>a.value.view==="tree"||a.value.view==="tree-gantt"),X=e.computed(()=>{const s=a.value;return s.view==="gantt"||s.view==="tree-gantt"?s.dependencyGraph!==!1:!0}),R=e.computed(()=>`${Math.ceil(c.value.length/100+1)}ch`),y=e.computed(()=>a.value.view?["list","tree","tree-gantt","list-expansion"].includes(a.value.view):!1),S=e.computed(()=>{let s=c.value.map((m,x)=>({...m,originalIndex:x}));if(Object.entries(h.value).forEach(([m,x])=>{const V=parseInt(m),M=f.value[V];!M||!(x.value||x.startValue||x.endValue||M.filterType==="checkbox"&&x.value!==void 0)||(s=s.filter(B=>{const H=B[M.name];return W(H,x,M)}))}),g.value.column!==null&&g.value.direction){const m=f.value[g.value.column],x=g.value.direction;s.sort((V,M)=>{let k=V[m.name],B=M[m.name];k==null&&(k=""),B==null&&(B="");const H=Number(k),q=Number(B);if(!isNaN(H)&&!isNaN(q)&&k!==""&&B!=="")return x==="asc"?H-q:q-H;{const rt=String(k).toLowerCase(),it=String(B).toLowerCase();return x==="asc"?rt.localeCompare(it):it.localeCompare(rt)}})}return s}),P=(s,m)=>i.value[`${s}:${m}`],A=(s,m,x)=>{const V=`${s}:${m}`,M=f.value[s];i.value[V]!==x&&(o.value[m]=!0),i.value[V]=x,c.value[m]={...c.value[m],[M.name]:x}},z=s=>{c.value=s},j=(s,m,x)=>{const V=`${s}:${m}`;i.value[V]!==x&&(o.value[m]=!0,I.value[V]=x)},_=s=>{const m=f.value.indexOf(s)===f.value.length-1,x=a.value.fullWidth?s.resizable&&!m:s.resizable;return{width:s.width||"40ch",textAlign:s.align||"center",...x&&{resize:"horizontal",overflow:"hidden",whiteSpace:"nowrap"}}},me=(s,m)=>{if(s<0||s>=f.value.length)return;const V=Math.max(m,40);f.value[s]={...f.value[s],width:`${V}px`}},re=s=>{const m=c.value[s];return T.value&&m.gantt!==void 0},Me=s=>!D.value||d.value[s].isRoot||d.value[s].open,Ne=s=>!D.value&&a.value.view!=="list-expansion"?"":D.value&&(d.value[s].isRoot||d.value[s].isParent)?d.value[s].childrenOpen?"▼":"►":a.value.view==="list-expansion"?d.value[s].expanded?"▼":"►":"",Ae=s=>{if(D.value){const m=l.value[s]||{},V=!(m.childrenOpen??d.value[s].childrenOpen);l.value[s]={...m,childrenOpen:V},V||ge(s)}else if(a.value.view==="list-expansion"){const m=l.value[s]||{},x=m.expanded??d.value[s].expanded;l.value[s]={...m,expanded:!x}}},ge=s=>{for(let m=0;m<c.value.length;m++)if(d.value[m].parent===s){const x=l.value[m]||{};l.value[m]={...x,childrenOpen:!1},ge(m)}},Oe=(s,m)=>{const x=P(s,m);return he(s,m,x)},he=(s,m,x)=>{const V=f.value[s],M=c.value[m],k=V.format;return k?typeof k=="function"?k(x,{table:i.value,row:M,column:V}):typeof k=="string"?Function(`"use strict";return (${k})`)()(x,{table:i.value,row:M,column:V}):x:x},Pe=s=>{s.target instanceof Node&&b.value.parent?.contains(s.target)||b.value.visible&&(b.value.visible=!1)},Le=(s,m)=>m&&s===0&&m>0?`${m}ch`:"inherit",He=s=>{const m=c.value[s.rowIndex]?.gantt;m&&(s.type==="resize"?s.edge==="start"?(m.startIndex=s.newStart,m.endIndex=s.end,m.colspan=m.endIndex-m.startIndex):s.edge==="end"&&(m.startIndex=s.start,m.endIndex=s.newEnd,m.colspan=m.endIndex-m.startIndex):s.type==="bar"&&(m.startIndex=s.newStart,m.endIndex=s.newEnd,m.colspan=m.endIndex-m.startIndex))},pe=s=>{const m=p.value.findIndex(x=>x.id===s.id);m>=0?p.value[m]=s:p.value.push(s)},be=s=>{const m=p.value.findIndex(x=>x.id===s);m>=0&&p.value.splice(m,1)},we=s=>{const m=C.value.findIndex(x=>x.id===s.id);m>=0?C.value[m]=s:C.value.push(s)},xe=s=>{const m=C.value.findIndex(x=>x.id===s);m>=0&&C.value.splice(m,1)},E=(s,m,x)=>{const V=C.value.find(B=>B.id===s),M=C.value.find(B=>B.id===m);if(!V||!M)return console.warn("Cannot create connection: handle not found"),null;const k={id:`connection-${s}-${m}`,from:{barId:V.barId,side:V.side},to:{barId:M.barId,side:M.side},style:x?.style,label:x?.label};return w.value.push(k),k},$=s=>{const m=w.value.findIndex(x=>x.id===s);return m>=0?(w.value.splice(m,1),!0):!1},O=s=>w.value.filter(m=>m.from.barId===s||m.to.barId===s),N=s=>C.value.filter(m=>m.barId===s),L=s=>{if(f.value[s].sortable===!1)return;let x;g.value.column===s&&g.value.direction==="asc"?x="desc":x="asc",g.value.column=s,g.value.direction=x},W=(s,m,x)=>{const V=x.filterType||"text",M=m.value;if(!M&&V!=="dateRange"&&V!=="checkbox")return!0;switch(V){case"text":{let k="";return typeof s=="object"&&s!==null?k=Object.values(s).join(" "):k=String(s||""),k.toLowerCase().includes(String(M).toLowerCase())}case"number":{const k=Number(s),B=Number(M);return!isNaN(k)&&!isNaN(B)&&k===B}case"select":return s===M;case"checkbox":return M===!0?!!s:!0;case"date":{let k;if(typeof s=="number"){const H=new Date(s),q=new Date().getFullYear();k=new Date(q,H.getMonth(),H.getDate())}else k=new Date(String(s));const B=new Date(String(M));return k.toDateString()===B.toDateString()}case"dateRange":{const k=m.startValue,B=m.endValue;if(!k&&!B)return!0;let H;if(typeof s=="number"){const q=new Date(s),lt=new Date().getFullYear();H=new Date(lt,q.getMonth(),q.getDate())}else H=new Date(String(s));return!(k&&H<new Date(String(k))||B&&H>new Date(String(B)))}default:return!0}};return{columns:f,config:a,connectionHandles:C,connectionPaths:w,display:d,filterState:h,ganttBars:p,modal:b,rows:c,sortState:g,table:i,updates:I,filteredRows:S,hasPinnedColumns:v,isGanttView:T,isTreeView:D,isDependencyGraphEnabled:X,numberedRowWidth:R,zeroColumn:y,clearFilter:s=>{delete h.value[s]},closeModal:Pe,createConnection:E,deleteConnection:$,getCellData:P,getCellDisplayValue:Oe,getConnectionsForBar:O,getFormattedValue:he,getHandlesForBar:N,getHeaderCellStyle:_,getIndent:Le,getRowExpandSymbol:Ne,isRowGantt:re,isRowVisible:Me,registerConnectionHandle:we,registerGanttBar:pe,resizeColumn:me,setCellData:A,setCellText:j,setFilter:(s,m)=>{!m.value&&!m.startValue&&!m.endValue?delete h.value[s]:h.value[s]=m},sortByColumn:L,toggleRowExpand:Ae,unregisterConnectionHandle:xe,unregisterGanttBar:be,updateGanttBar:He,updateRows:z}})()},vn={class:"atable-container",style:{position:"relative"}},nt=K(e.defineComponent({__name:"ATable",props:e.mergeModels({id:{default:""},config:{default:()=>new Object}},{rows:{required:!0},rowsModifiers:{},columns:{required:!0},columnsModifiers:{}}),emits:e.mergeModels(["cellUpdate","gantt:drag","connection:event","columns:update"],["update:rows","update:columns"]),setup(t,{expose:n,emit:r}){const u=e.useModel(t,"rows"),f=e.useModel(t,"columns"),c=r,a=e.useTemplateRef("table"),o=tt({columns:f.value,rows:u.value,id:t.id,config:t.config});o.$onAction(({name:p,store:C,args:w,after:g})=>{if(p==="setCellData"||p==="setCellText"){const[h,v,T]=w,D=C.getCellData(h,v);g(()=>{u.value=[...C.rows],c("cellUpdate",{colIndex:h,rowIndex:v,newValue:T,oldValue:D})})}else if(p==="updateGanttBar"){const[h]=w;let v=!1;h.type==="resize"?v=h.oldColspan!==h.newColspan:h.type==="bar"&&(v=h.oldStart!==h.newStart||h.oldEnd!==h.newEnd),v&&g(()=>{c("gantt:drag",h)})}else p==="resizeColumn"&&g(()=>{f.value=[...C.columns],c("columns:update",[...C.columns])})}),e.watch(()=>u.value,p=>{JSON.stringify(p)!==JSON.stringify(o.rows)&&(o.rows=[...p])},{deep:!0}),e.watch(f,p=>{JSON.stringify(p)!==JSON.stringify(o.columns)&&(o.columns=[...p],c("columns:update",[...p]))},{deep:!0}),e.onMounted(()=>{f.value.some(p=>p.pinned)&&(i(),o.isTreeView&&Qe(a,i,{childList:!0,subtree:!0}))});const l=e.computed(()=>o.columns.filter(p=>p.pinned).length),i=()=>{const p=a.value,C=p?.rows[0],w=p?.rows[1],g=C?Array.from(C.cells):[];for(const[h,v]of g.entries()){const T=w?.cells[h];T&&(v.style.width=`${T.offsetWidth}px`)}for(const h of p?.rows||[]){let v=0;const T=[];for(const D of h.cells)(D.classList.contains("sticky-column")||D.classList.contains("sticky-index"))&&(D.style.left=`${v}px`,v+=D.offsetWidth,T.push(D));T.length>0&&T[T.length-1].classList.add("sticky-column-edge")}};window.addEventListener("keydown",p=>{if(p.key==="Escape"&&o.modal.visible){o.modal.visible=!1;const C=o.modal.parent;C&&e.nextTick().then(()=>{C.focus()})}});const d=p=>{if(!p.gantt||l.value===0)return o.columns;const C=[];for(let w=0;w<l.value;w++){const g={...o.columns[w]};g.originalIndex=w,C.push(g)}return C.push({...o.columns[l.value],isGantt:!0,colspan:p.gantt?.colspan||o.columns.length-l.value,originalIndex:l.value,width:"auto"}),C},b=p=>{c("connection:event",{type:"create",connection:p})},I=p=>{c("connection:event",{type:"delete",connection:p})};return n({store:o,createConnection:o.createConnection,deleteConnection:o.deleteConnection,getConnectionsForBar:o.getConnectionsForBar,getHandlesForBar:o.getHandlesForBar}),(p,C)=>(e.openBlock(),e.createElementBlock("div",vn,[e.withDirectives((e.openBlock(),e.createElementBlock("table",{ref:"table",class:"atable",style:e.normalizeStyle({width:e.unref(o).config.fullWidth?"100%":"auto"})},[e.renderSlot(p.$slots,"header",{data:e.unref(o)},()=>[e.createVNode(De,{columns:e.unref(o).columns,store:e.unref(o)},null,8,["columns","store"])],!0),e.createElementVNode("tbody",null,[e.renderSlot(p.$slots,"body",{data:e.unref(o)},()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(o).filteredRows,(w,g)=>(e.openBlock(),e.createBlock(Re,{key:`${w.originalIndex}-${g}`,row:w,rowIndex:w.originalIndex,store:e.unref(o)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d(w),(h,v)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:h.name},[h.isGantt?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(h.ganttComponent||"AGanttCell"),{key:0,store:e.unref(o),"columns-count":e.unref(o).columns.length-l.value,color:w.gantt?.color,start:w.gantt?.startIndex,end:w.gantt?.endIndex,colspan:h.colspan,pinned:h.pinned,rowIndex:w.originalIndex,colIndex:h.originalIndex??v,style:e.normalizeStyle({textAlign:h?.align||"center",minWidth:h?.width||"40ch",width:e.unref(o).config.fullWidth?"auto":null}),"onConnection:create":b},null,40,["store","columns-count","color","start","end","colspan","pinned","rowIndex","colIndex","style"])):(e.openBlock(),e.createBlock(e.resolveDynamicComponent(h.cellComponent||"ACell"),{key:1,store:e.unref(o),pinned:h.pinned,rowIndex:w.originalIndex,colIndex:v,style:e.normalizeStyle({textAlign:h?.align||"center",width:e.unref(o).config.fullWidth?"auto":null}),spellcheck:"false"},null,8,["store","pinned","rowIndex","colIndex","style"]))],64))),128))]),_:2},1032,["row","rowIndex","store"]))),128))],!0)]),e.renderSlot(p.$slots,"footer",{data:e.unref(o)},void 0,!0),e.renderSlot(p.$slots,"modal",{data:e.unref(o)},()=>[e.withDirectives(e.createVNode(Te,{store:e.unref(o)},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(o).modal.component),e.mergeProps({key:`${e.unref(o).modal.rowIndex}:${e.unref(o).modal.colIndex}`,"col-index":e.unref(o).modal.colIndex,"row-index":e.unref(o).modal.rowIndex,store:e.unref(o)},e.unref(o).modal.componentProps),null,16,["col-index","row-index","store"]))]),_:1},8,["store"]),[[e.vShow,e.unref(o).modal.visible]])],!0)],4)),[[e.unref(nn),e.unref(o).closeModal]]),e.unref(o).isGanttView&&e.unref(o).isDependencyGraphEnabled?(e.openBlock(),e.createBlock(fn,{key:0,store:e.unref(o),"onConnection:delete":I},null,8,["store"])):e.createCommentVNode("",!0)]))}}),[["__scopeId","data-v-c0a0032f"]]),kn={},Cn={class:"aloading"},En={class:"aloading-header"};function In(t,n){return e.openBlock(),e.createElementBlock("div",Cn,[e.createElementVNode("h2",En,[e.renderSlot(t.$slots,"default",{},void 0,!0)]),n[0]||(n[0]=e.createElementVNode("div",{class:"aloading-bar"},null,-1))])}const ot=K(kn,[["render",In],["__scopeId","data-v-a930a25b"]]),Bn={},Sn={class:"aloading"},$n={class:"aloading-header"};function Vn(t,n){return e.openBlock(),e.createElementBlock("div",Sn,[e.createElementVNode("h2",$n,[e.renderSlot(t.$slots,"default",{},void 0,!0)]),n[0]||(n[0]=e.createElementVNode("div",{class:"aloading-bar"},null,-1))])}const at=K(Bn,[["render",Vn],["__scopeId","data-v-e1165876"]]);function Rn(t){t.component("ACell",Ke),t.component("AExpansionRow",_e),t.component("AGanttCell",et),t.component("ARow",Re),t.component("ATable",nt),t.component("ATableHeader",De),t.component("ATableLoading",ot),t.component("ATableLoadingBar",at),t.component("ATableModal",Te)}F.ACell=Ke,F.AExpansionRow=_e,F.AGanttCell=et,F.ARow=Re,F.ATable=nt,F.ATableHeader=De,F.ATableLoading=ot,F.ATableLoadingBar=at,F.ATableModal=Te,F.createTableStore=tt,F.install=Rn,Object.defineProperty(F,Symbol.toStringTag,{value:"Module"})}));
3
3
  //# sourceMappingURL=atable.umd.cjs.map