@stonecrop/atable 0.2.47 → 0.2.49

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,2 +1,3 @@
1
- (function(w,n){typeof exports=="object"&&typeof module<"u"?n(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],n):(w=typeof globalThis<"u"?globalThis:w||self,n(w["@stonecrop/atable"]={},w.Vue))})(this,function(w,n){"use strict";var dt=Object.defineProperty;var ft=(w,n,I)=>n in w?dt(w,n,{enumerable:!0,configurable:!0,writable:!0,value:I}):w[n]=I;var A=(w,n,I)=>ft(w,typeof n!="symbol"?n+"":n,I);function I(e){return n.getCurrentScope()?(n.onScopeDispose(e),!0):!1}function N(e){return typeof e=="function"?e():n.unref(e)}const be=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const ke=e=>e!=null,Ee=Object.prototype.toString,xe=e=>Ee.call(e)==="[object Object]",Ce=()=>{},D=be?window:void 0;function $(e){var t;const o=N(e);return(t=o==null?void 0:o.$el)!=null?t:o}function O(...e){let t,o,r,i;if(typeof e[0]=="string"||Array.isArray(e[0])?([o,r,i]=e,t=D):[t,o,r,i]=e,!t)return Ce;Array.isArray(o)||(o=[o]),Array.isArray(r)||(r=[r]);const l=[],d=()=>{l.forEach(u=>u()),l.length=0},a=(u,p,c,m)=>(u.addEventListener(p,c,m),()=>u.removeEventListener(p,c,m)),s=n.watch(()=>[$(t),N(i)],([u,p])=>{if(d(),!u)return;const c=xe(p)?{...p}:p;l.push(...o.flatMap(m=>r.map(h=>a(u,m,h,c))))},{immediate:!0,flush:"post"}),f=()=>{s(),d()};return I(f),f}function Se(){const e=n.ref(!1),t=n.getCurrentInstance();return t&&n.onMounted(()=>{e.value=!0},t),e}function Ae(e){const t=Se();return n.computed(()=>(t.value,!!e()))}function Ie(e,t,o={}){const{window:r=D,...i}=o;let l;const d=Ae(()=>r&&"MutationObserver"in r),a=()=>{l&&(l.disconnect(),l=void 0)},s=n.computed(()=>{const c=N(e),m=(Array.isArray(c)?c:[c]).map($).filter(ke);return new Set(m)}),f=n.watch(()=>s.value,c=>{a(),d.value&&c.size&&(l=new MutationObserver(t),c.forEach(m=>l.observe(m,i)))},{immediate:!0,flush:"post"}),u=()=>l==null?void 0:l.takeRecords(),p=()=>{f(),a()};return I(p),{isSupported:d,stop:p,takeRecords:u}}function Te(e={}){var t;const{window:o=D,deep:r=!0,triggerOnRemoval:i=!1}=e,l=(t=e.document)!=null?t:o==null?void 0:o.document,d=()=>{var f;let u=l==null?void 0:l.activeElement;if(r)for(;u!=null&&u.shadowRoot;)u=(f=u==null?void 0:u.shadowRoot)==null?void 0:f.activeElement;return u},a=n.ref(),s=()=>{a.value=d()};return o&&(O(o,"blur",f=>{f.relatedTarget===null&&s()},!0),O(o,"focus",s,!0)),i&&Ie(l,f=>{f.filter(u=>u.removedNodes.length).map(u=>Array.from(u.removedNodes)).flat().forEach(u=>{u===a.value&&s()})},{childList:!0,subtree:!0}),s(),a}const De="focusin",$e="focusout";function Oe(e,t={}){const{window:o=D}=t,r=n.computed(()=>$(e)),i=n.ref(!1),l=n.computed(()=>i.value),d=Te(t);return!o||!d.value?{focused:l}:(O(r,De,()=>i.value=!0),O(r,$e,()=>i.value=!1),{focused:l})}function Be(e,{window:t=D,scrollTarget:o}={}){const r=n.ref(!1),i=()=>{if(!t)return;const l=t.document,d=$(e);if(!d)r.value=!1;else{const a=d.getBoundingClientRect();r.value=a.top<=(t.innerHeight||l.documentElement.clientHeight)&&a.left<=(t.innerWidth||l.documentElement.clientWidth)&&a.bottom>=0&&a.right>=0}};return n.watch(()=>$(e),()=>i(),{immediate:!0,flush:"post"}),t&&O(o||t,"scroll",i,{capture:!1,passive:!0}),r}const C=e=>{let t=Be(e).value;return t=t&&e.offsetHeight>0,t},S=e=>e.tabIndex>=0,_=e=>{const t=e.target;return W(t)},W=e=>{var t;let o;if(e instanceof HTMLTableCellElement){const r=(t=e.parentElement)==null?void 0:t.previousElementSibling;if(r){const i=Array.from(r.children)[e.cellIndex];i&&(o=i)}}else if(e instanceof HTMLTableRowElement){const r=e.previousElementSibling;r&&(o=r)}return o&&(!S(o)||!C(o))?W(o):o},Me=e=>{var t;const o=e.target;let r;if(o instanceof HTMLTableCellElement){const i=(t=o.parentElement)==null?void 0:t.parentElement;if(i){const l=i.firstElementChild.children[o.cellIndex];l&&(r=l)}}else if(o instanceof HTMLTableRowElement){const i=o.parentElement;if(i){const l=i.firstElementChild;l&&(r=l)}}return r&&(!S(r)||!C(r))?j(r):r},ee=e=>{const t=e.target;return j(t)},j=e=>{var t;let o;if(e instanceof HTMLTableCellElement){const r=(t=e.parentElement)==null?void 0:t.nextElementSibling;if(r){const i=Array.from(r.children)[e.cellIndex];i&&(o=i)}}else if(e instanceof HTMLTableRowElement){const r=e.nextElementSibling;r&&(o=r)}return o&&(!S(o)||!C(o))?j(o):o},Re=e=>{var t;const o=e.target;let r;if(o instanceof HTMLTableCellElement){const i=(t=o.parentElement)==null?void 0:t.parentElement;if(i){const l=i.lastElementChild.children[o.cellIndex];l&&(r=l)}}else if(o instanceof HTMLTableRowElement){const i=o.parentElement;if(i){const l=i.lastElementChild;l&&(r=l)}}return r&&(!S(r)||!C(r))?W(r):r},te=e=>{const t=e.target;return H(t)},H=e=>{var t;let o;if(e.previousElementSibling)o=e.previousElementSibling;else{const r=(t=e.parentElement)==null?void 0:t.previousElementSibling;o=r==null?void 0:r.lastElementChild}return o&&(!S(o)||!C(o))?H(o):o},ne=e=>{const t=e.target;return V(t)},V=e=>{var t;let o;if(e.nextElementSibling)o=e.nextElementSibling;else{const r=(t=e.parentElement)==null?void 0:t.nextElementSibling;o=r==null?void 0:r.firstElementChild}return o&&(!S(o)||!C(o))?V(o):o},oe=e=>{const t=e.target.parentElement.firstElementChild;return t&&(!S(t)||!C(t))?V(t):t},le=e=>{const t=e.target.parentElement.lastElementChild;return t&&(!S(t)||!C(t))?H(t):t},L=["alt","control","shift","meta"],Le={ArrowUp:"up",ArrowDown:"down",ArrowLeft:"left",ArrowRight:"right"},z={"keydown.up":e=>{const t=_(e);t&&(e.preventDefault(),e.stopPropagation(),t.focus())},"keydown.down":e=>{const t=ee(e);t&&(e.preventDefault(),e.stopPropagation(),t.focus())},"keydown.left":e=>{const t=te(e);e.preventDefault(),e.stopPropagation(),t&&t.focus()},"keydown.right":e=>{const t=ne(e);e.preventDefault(),e.stopPropagation(),t&&t.focus()},"keydown.control.up":e=>{const t=Me(e);t&&(e.preventDefault(),e.stopPropagation(),t.focus())},"keydown.control.down":e=>{const t=Re(e);t&&(e.preventDefault(),e.stopPropagation(),t.focus())},"keydown.control.left":e=>{const t=oe(e);t&&(e.preventDefault(),e.stopPropagation(),t.focus())},"keydown.control.right":e=>{const t=le(e);t&&(e.preventDefault(),e.stopPropagation(),t.focus())},"keydown.end":e=>{const t=le(e);t&&(e.preventDefault(),e.stopPropagation(),t.focus())},"keydown.enter":e=>{if(e.target instanceof HTMLTableCellElement){e.preventDefault(),e.stopPropagation();const t=ee(e);t&&t.focus()}},"keydown.shift.enter":e=>{if(e.target instanceof HTMLTableCellElement){e.preventDefault(),e.stopPropagation();const t=_(e);t&&t.focus()}},"keydown.home":e=>{const t=oe(e);t&&(e.preventDefault(),e.stopPropagation(),t.focus())},"keydown.tab":e=>{const t=ne(e);t&&(e.preventDefault(),e.stopPropagation(),t.focus())},"keydown.shift.tab":e=>{const t=te(e);t&&(e.preventDefault(),e.stopPropagation(),t.focus())}};function F(e){const t=d=>{let a=null;return d.parent&&(typeof d.parent=="string"?a=document.querySelector(d.parent):d.parent instanceof HTMLElement?a=d.parent:a=d.parent.value),a},o=d=>{const a=t(d);let s=[];if(typeof d.selectors=="string")s=a?Array.from(a.querySelectorAll(d.selectors)):Array.from(document.querySelectorAll(d.selectors));else if(Array.isArray(d.selectors))for(const f of d.selectors)f instanceof HTMLElement?s.push(f):s.push(f.$el);else if(d.selectors instanceof HTMLElement)s.push(d.selectors);else if(Array.isArray(d.selectors.value))for(const f of d.selectors.value)f instanceof HTMLElement?s.push(f):s.push(f.$el);else s.push(d.selectors.value);return s},r=d=>{const a=t(d);let s=[];return d.selectors?s=o(d):a&&(s=Array.from(a.children).filter(f=>S(f)&&C(f))),s},i=d=>a=>{const s=Le[a.key]||a.key.toLowerCase();if(L.includes(s))return;const f=d.handlers||z;for(const u of Object.keys(f)){const[p,...c]=u.split(".");if(p==="keydown"&&c.includes(s)){const m=f[u],h=c.filter(y=>L.includes(y)),b=L.some(y=>{const k=y.charAt(0).toUpperCase()+y.slice(1);return a.getModifierState(k)});if(h.length>0){if(b){for(const y of L)if(c.includes(y)){const k=y.charAt(0).toUpperCase()+y.slice(1);a.getModifierState(k)&&m(a)}}}else b||m(a)}}},l=[];n.onMounted(()=>{for(const d of e){const a=t(d),s=r(d),f=i(d),u=a?[a]:s;for(const p of u){const{focused:c}=Oe(n.ref(p)),m=n.watch(c,h=>{h?p.addEventListener("keydown",f):p.removeEventListener("keydown",f)});l.push(m)}}}),n.onBeforeUnmount(()=>{for(const d of l)d()})}function q(e){return n.getCurrentScope()?(n.onScopeDispose(e),!0):!1}function v(e){return typeof e=="function"?e():n.unref(e)}const ve=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const Pe=e=>e!=null,Ne=Object.prototype.toString,We=e=>Ne.call(e)==="[object Object]",je=()=>{};function He(e){return n.getCurrentInstance()}function Ve(e,t=!0,o){He()?n.onMounted(e,o):t?e():n.nextTick(e)}const G=ve?window:void 0;function T(e){var t;const o=v(e);return(t=o==null?void 0:o.$el)!=null?t:o}function re(...e){let t,o,r,i;if(typeof e[0]=="string"||Array.isArray(e[0])?([o,r,i]=e,t=G):[t,o,r,i]=e,!t)return je;Array.isArray(o)||(o=[o]),Array.isArray(r)||(r=[r]);const l=[],d=()=>{l.forEach(u=>u()),l.length=0},a=(u,p,c,m)=>(u.addEventListener(p,c,m),()=>u.removeEventListener(p,c,m)),s=n.watch(()=>[T(t),v(i)],([u,p])=>{if(d(),!u)return;const c=We(p)?{...p}:p;l.push(...o.flatMap(m=>r.map(h=>a(u,m,h,c))))},{immediate:!0,flush:"post"}),f=()=>{s(),d()};return q(f),f}function ze(){const e=n.ref(!1),t=n.getCurrentInstance();return t&&n.onMounted(()=>{e.value=!0},t),e}function ie(e){const t=ze();return n.computed(()=>(t.value,!!e()))}function ae(e,t,o={}){const{window:r=G,...i}=o;let l;const d=ie(()=>r&&"MutationObserver"in r),a=()=>{l&&(l.disconnect(),l=void 0)},s=n.computed(()=>{const c=v(e),m=(Array.isArray(c)?c:[c]).map(T).filter(Pe);return new Set(m)}),f=n.watch(()=>s.value,c=>{a(),d.value&&c.size&&(l=new MutationObserver(t),c.forEach(m=>l.observe(m,i)))},{immediate:!0,flush:"post"}),u=()=>l==null?void 0:l.takeRecords(),p=()=>{f(),a()};return q(p),{isSupported:d,stop:p,takeRecords:u}}function Fe(e,t,o={}){const{window:r=G,...i}=o;let l;const d=ie(()=>r&&"ResizeObserver"in r),a=()=>{l&&(l.disconnect(),l=void 0)},s=n.computed(()=>{const p=v(e);return Array.isArray(p)?p.map(c=>T(c)):[T(p)]}),f=n.watch(s,p=>{if(a(),d.value&&r){l=new ResizeObserver(t);for(const c of p)c&&l.observe(c,i)}},{immediate:!0,flush:"post"}),u=()=>{a(),f()};return q(u),{isSupported:d,stop:u}}function qe(e,t={}){const{reset:o=!0,windowResize:r=!0,windowScroll:i=!0,immediate:l=!0,updateTiming:d="sync"}=t,a=n.ref(0),s=n.ref(0),f=n.ref(0),u=n.ref(0),p=n.ref(0),c=n.ref(0),m=n.ref(0),h=n.ref(0);function b(){const k=T(e);if(!k){o&&(a.value=0,s.value=0,f.value=0,u.value=0,p.value=0,c.value=0,m.value=0,h.value=0);return}const E=k.getBoundingClientRect();a.value=E.height,s.value=E.bottom,f.value=E.left,u.value=E.right,p.value=E.top,c.value=E.width,m.value=E.x,h.value=E.y}function y(){d==="sync"?b():d==="next-frame"&&requestAnimationFrame(()=>b())}return Fe(e,y),n.watch(()=>T(e),k=>!k&&y()),ae(e,y,{attributeFilter:["style","class"]}),i&&re("scroll",y,{capture:!0,passive:!0}),r&&re("resize",y,{passive:!0}),Ve(()=>{l&&y()}),{height:a,bottom:s,left:f,right:u,top:p,width:c,x:m,y:h,update:y}}const Ge=e=>{const t=new DOMParser().parseFromString(e,"text/html");return Array.from(t.body.childNodes).some(o=>o.nodeType===1)},Ue=["data-colindex","data-rowindex","data-editable","contenteditable","tabindex"],Ye=["innerHTML"],Xe={key:2},U=n.defineComponent({__name:"ACell",props:{colIndex:{},rowIndex:{},tableid:{},addNavigation:{type:[Boolean,Object],default:!0},tabIndex:{default:0},pinned:{type:Boolean}},setup(e){var ge;const t=n.inject(e.tableid),o=n.useTemplateRef("cell"),r=n.ref(""),i=n.ref(!1),{bottom:l,left:d}=qe(o),a=t.table,s=t.columns[e.colIndex],f=t.rows[e.rowIndex],u=n.computed(()=>s.align||"center"),p=n.computed(()=>s.width||"40ch"),c=n.computed(()=>{const g=t.cellData(e.colIndex,e.rowIndex),x=s.format;return x?typeof x=="function"?x(g,{table:a,row:f,column:s}):typeof x=="string"?Function(`"use strict";return (${x})`)()(g,{table:a,row:f,column:s}):g:g}),m=n.computed(()=>typeof c.value=="string"?Ge(c.value):!1),h=()=>{s.mask,s.modalComponent&&(t.modal.visible=!0,t.modal.colIndex=e.colIndex,t.modal.rowIndex=e.rowIndex,t.modal.parent=o.value,t.modal.top=l.value,t.modal.left=d.value,t.modal.width=p.value,typeof s.modalComponent=="function"?t.modal.component=s.modalComponent({table:a,row:f,column:s}):t.modal.component=s.modalComponent,t.modal.componentProps=s.modalComponentExtraProps)};if(e.addNavigation){let g={...z,"keydown.f2":h,"keydown.alt.up":h,"keydown.alt.down":h,"keydown.alt.left":h,"keydown.alt.right":h};typeof e.addNavigation=="object"&&(g={...g,...e.addNavigation}),F([{selectors:o,handlers:g}])}const b=()=>{o.value&&(r.value=o.value.textContent)},y=()=>{o.value&&o.value.textContent!==r.value&&(r.value=o.value.textContent,o.value.dispatchEvent(new Event("change")),i.value=!0,s.format||t.setCellData(e.rowIndex,e.colIndex,r.value))},k=(g,x)=>x&&g===0&&x>0?`${x}ch`:"inherit",E={textAlign:u.value,width:p.value,backgroundColor:i.value?"var(--cell-modified-color)":"inherit",fontWeight:i.value?"bold":"inherit",paddingLeft:k(e.colIndex,(ge=t.display[e.rowIndex])==null?void 0:ge.indent)};return(g,x)=>(n.openBlock(),n.createElementBlock("td",{ref:"cell","data-colindex":g.colIndex,"data-rowindex":g.rowIndex,"data-editable":n.unref(s).edit,contenteditable:n.unref(s).edit,tabindex:g.tabIndex,spellcheck:!1,style:E,onFocus:b,onPaste:y,onBlur:y,onInput:y,onClick:h,onMousedown:h,class:n.normalizeClass(["atable__cell",g.pinned?"sticky-column":""])},[n.unref(s).cellComponent?(n.openBlock(),n.createBlock(n.resolveDynamicComponent(n.unref(s).cellComponent),n.mergeProps({key:0,value:c.value},n.unref(s).cellComponentProps),null,16,["value"])):m.value?(n.openBlock(),n.createElementBlock("span",{key:1,innerHTML:c.value},null,8,Ye)):(n.openBlock(),n.createElementBlock("span",Xe,n.toDisplayString(c.value),1))],42,Ue))}}),Je=["tabindex"],Qe=["tabindex"],Ze=["colspan"],se=n.defineComponent({__name:"AExpansionRow",props:{rowIndex:{},tableid:{},tabIndex:{default:()=>-1},addNavigation:{type:[Boolean,Object]}},setup(e){const t=n.inject(e.tableid),o=n.useTemplateRef("rowEl"),r=n.computed(()=>t.display[e.rowIndex].expanded?"▼":"►");if(e.addNavigation){const i={"keydown.control.g":l=>{l.stopPropagation(),l.preventDefault(),t.toggleRowExpand(e.rowIndex)}};typeof e.addNavigation=="object"&&Object.assign(i,e.addNavigation),F([{selectors:o,handlers:i}])}return(i,l)=>(n.openBlock(),n.createElementBlock(n.Fragment,null,[n.createElementVNode("tr",n.mergeProps(i.$attrs,{ref:"rowEl",tabindex:i.tabIndex,class:"expandable-row"}),[n.createElementVNode("td",{tabIndex:-1,onClick:l[0]||(l[0]=d=>n.unref(t).toggleRowExpand(i.rowIndex)),class:"row-index"},n.toDisplayString(r.value),1),n.renderSlot(i.$slots,"row")],16,Je),n.unref(t).display[i.rowIndex].expanded?(n.openBlock(),n.createElementBlock("tr",{key:0,ref:"rowExpanded",tabindex:i.tabIndex,class:"expanded-row"},[n.createElementVNode("td",{tabIndex:-1,colspan:n.unref(t).columns.length+1,class:"expanded-row-content"},[n.renderSlot(i.$slots,"content")],8,Ze)],8,Qe)):n.createCommentVNode("",!0)],64))}}),Ke=["tabindex"],Y=n.defineComponent({__name:"ARow",props:{rowIndex:{},tableid:{},tabIndex:{default:()=>-1},addNavigation:{type:[Boolean,Object],default:!1}},setup(e){const t=n.inject(e.tableid),o=n.useTemplateRef("rowEl"),r=n.computed(()=>t.columns.some(a=>a.pinned)),i=n.computed(()=>t.config.view!=="tree"||t.display[e.rowIndex].isRoot||t.display[e.rowIndex].open),l=n.computed(()=>t.config.view!=="tree"?"":t.display[e.rowIndex].isRoot||t.display[e.rowIndex].isParent?t.display[e.rowIndex].childrenOpen?"-":"+":""),d=a=>{t.toggleRowExpand(a)};if(e.addNavigation){let a=z;typeof e.addNavigation=="object"&&(a={...a,...e.addNavigation}),F([{selectors:o,handlers:a}])}return(a,s)=>n.withDirectives((n.openBlock(),n.createElementBlock("tr",{ref:"rowEl",tabindex:a.tabIndex,class:"table-row"},[n.renderSlot(a.$slots,"index",{},()=>[n.unref(t).config.view==="list"?(n.openBlock(),n.createElementBlock("td",{key:0,tabIndex:-1,class:n.normalizeClass(["list-index",r.value?"sticky-index":""])},n.toDisplayString(a.rowIndex+1),3)):n.unref(t).config.view==="tree"?(n.openBlock(),n.createElementBlock("td",{key:1,tabIndex:-1,class:n.normalizeClass(["tree-index",r.value?"sticky-index":""]),onClick:s[0]||(s[0]=f=>d(a.rowIndex))},n.toDisplayString(l.value),3)):n.createCommentVNode("",!0)]),n.renderSlot(a.$slots,"default")],8,Ke)),[[n.vShow,i.value]])}});function ce(e){return n.getCurrentScope()?(n.onScopeDispose(e),!0):!1}function B(e){return typeof e=="function"?e():n.unref(e)}const de=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const _e=Object.prototype.toString,et=e=>_e.call(e)==="[object Object]",M=()=>{},X=tt();function tt(){var e,t;return de&&((e=window==null?void 0:window.navigator)==null?void 0:e.userAgent)&&(/iP(?:ad|hone|od)/.test(window.navigator.userAgent)||((t=window==null?void 0:window.navigator)==null?void 0:t.maxTouchPoints)>2&&/iPad|Macintosh/.test(window==null?void 0:window.navigator.userAgent))}const fe={mounted:"mounted",updated:"updated",unmounted:"unmounted"};function nt(...e){if(e.length!==1)return n.toRef(...e);const t=e[0];return typeof t=="function"?n.readonly(n.customRef(()=>({get:t,set:M}))):n.ref(t)}function R(e){var t;const o=B(e);return(t=o==null?void 0:o.$el)!=null?t:o}const ue=de?window:void 0;function P(...e){let t,o,r,i;if(typeof e[0]=="string"||Array.isArray(e[0])?([o,r,i]=e,t=ue):[t,o,r,i]=e,!t)return M;Array.isArray(o)||(o=[o]),Array.isArray(r)||(r=[r]);const l=[],d=()=>{l.forEach(u=>u()),l.length=0},a=(u,p,c,m)=>(u.addEventListener(p,c,m),()=>u.removeEventListener(p,c,m)),s=n.watch(()=>[R(t),B(i)],([u,p])=>{if(d(),!u)return;const c=et(p)?{...p}:p;l.push(...o.flatMap(m=>r.map(h=>a(u,m,h,c))))},{immediate:!0,flush:"post"}),f=()=>{s(),d()};return ce(f),f}let me=!1;function pe(e,t,o={}){const{window:r=ue,ignore:i=[],capture:l=!0,detectIframe:d=!1}=o;if(!r)return M;X&&!me&&(me=!0,Array.from(r.document.body.children).forEach(c=>c.addEventListener("click",M)),r.document.documentElement.addEventListener("click",M));let a=!0;const s=c=>i.some(m=>{if(typeof m=="string")return Array.from(r.document.querySelectorAll(m)).some(h=>h===c.target||c.composedPath().includes(h));{const h=R(m);return h&&(c.target===h||c.composedPath().includes(h))}}),u=[P(r,"click",c=>{const m=R(e);if(!(!m||m===c.target||c.composedPath().includes(m))){if(c.detail===0&&(a=!s(c)),!a){a=!0;return}t(c)}},{passive:!0,capture:l}),P(r,"pointerdown",c=>{const m=R(e);a=!s(c)&&!!(m&&!c.composedPath().includes(m))},{passive:!0}),d&&P(r,"blur",c=>{setTimeout(()=>{var m;const h=R(e);((m=r.document.activeElement)==null?void 0:m.tagName)==="IFRAME"&&!(h!=null&&h.contains(r.document.activeElement))&&t(c)},0)})].filter(Boolean);return()=>u.forEach(c=>c())}const ot={[fe.mounted](e,t){const o=!t.modifiers.bubble;if(typeof t.value=="function")e.__onClickOutside_stop=pe(e,t.value,{capture:o});else{const[r,i]=t.value;e.__onClickOutside_stop=pe(e,r,Object.assign({capture:o},i))}},[fe.unmounted](e){e.__onClickOutside_stop()}};function J(e){return typeof Window<"u"&&e instanceof Window?e.document.documentElement:typeof Document<"u"&&e instanceof Document?e.documentElement:e}function he(e){const t=window.getComputedStyle(e);if(t.overflowX==="scroll"||t.overflowY==="scroll"||t.overflowX==="auto"&&e.clientWidth<e.scrollWidth||t.overflowY==="auto"&&e.clientHeight<e.scrollHeight)return!0;{const o=e.parentNode;return!o||o.tagName==="BODY"?!1:he(o)}}function lt(e){const t=e||window.event,o=t.target;return he(o)?!1:t.touches.length>1?!0:(t.preventDefault&&t.preventDefault(),!1)}const Q=new WeakMap;function rt(e,t=!1){const o=n.ref(t);let r=null,i="";n.watch(nt(e),a=>{const s=J(B(a));if(s){const f=s;if(Q.get(f)||Q.set(f,f.style.overflow),f.style.overflow!=="hidden"&&(i=f.style.overflow),f.style.overflow==="hidden")return o.value=!0;if(o.value)return f.style.overflow="hidden"}},{immediate:!0});const l=()=>{const a=J(B(e));!a||o.value||(X&&(r=P(a,"touchmove",s=>{lt(s)},{passive:!1})),a.style.overflow="hidden",o.value=!0)},d=()=>{const a=J(B(e));!a||!o.value||(X&&(r==null||r()),a.style.overflow=i,Q.delete(a),o.value=!1)};return ce(d),n.computed({get(){return o.value},set(a){a?l():d()}})}function it(){let e=!1;const t=n.ref(!1);return(o,r)=>{if(t.value=r.value,e)return;e=!0;const i=rt(o,r.value);n.watch(t,l=>i.value=l)}}it();class we{constructor(t,o,r,i,l,d){A(this,"id");A(this,"rows");A(this,"columns");A(this,"config");A(this,"table");A(this,"display");A(this,"modal");this.id=t||crypto.randomUUID(),this.rows=r,this.columns=n.reactive(o),this.config=n.reactive(i),this.table=l||n.reactive(this.createTableObject()),this.display=this.createDisplayObject(d),this.modal=n.reactive({visible:!1})}createTableObject(){const t={};for(const[o,r]of this.columns.entries())for(const[i,l]of this.rows.entries())t[`${o}:${i}`]=l[r.name];return t}createDisplayObject(t){const o=[Object.assign({},{modified:!1})];if(t&&"0:0"in t)return t;const r=new Set;for(let i=this.rows.length-1;i>=0;i--){const l=this.rows[i];l.parent&&r.add(l.parent),o[i]={childrenOpen:!1,expanded:!1,indent:l.indent||null,isParent:r.has(i),isRoot:l.parent===null||l.parent===void 0,modified:!1,open:l.parent===null||l.parent===void 0,parent:l.parent}}return n.reactive(o)}get zeroColumn(){return["list","tree","list-expansion"].includes(this.config.view)}get numberedRowWidth(){return n.computed(()=>String(Math.ceil(this.rows.length/100)+1)+"ch")}cellData(t,o){return this.table[`${t}:${o}`]}setCellData(t,o,r){this.table[`${o}:${t}`]!==r&&(this.display[t].modified=!0),this.table[`${o}:${t}`]=r;const i=this.columns[o];return this.rows[t][i.name]=r,this.table[`${o}:${t}`]}toggleRowExpand(t){if(this.config.view==="tree"){this.display[t].childrenOpen=!this.display[t].childrenOpen;for(let o=this.rows.length-1;o>=0;o--)this.display[o].parent===t&&(this.display[o].open=!this.display[o].open,this.display[o].childrenOpen&&this.toggleRowExpand(o))}else this.config.view==="list-expansion"&&(this.display[t].expanded=!this.display[t].expanded)}}const at={key:0,id:"resizable"},st={class:"atable-header-row",tabindex:"-1"},Z=n.defineComponent({__name:"ATableHeader",props:{columns:{},tableid:{}},setup(e){const t=n.inject(e.tableid),o=n.computed(()=>t.columns.some(i=>i.pinned)),r=i=>({minWidth:i.width||"40ch",textAlign:i.align||"center",width:t.config.fullWidth?"auto":null});return(i,l)=>i.columns.length?(n.openBlock(),n.createElementBlock("thead",at,[n.createElementVNode("tr",st,[n.unref(t).zeroColumn?(n.openBlock(),n.createElementBlock("th",{key:0,id:"header-index",class:n.normalizeClass(o.value?"sticky-index":"")},null,2)):n.createCommentVNode("",!0),(n.openBlock(!0),n.createElementBlock(n.Fragment,null,n.renderList(i.columns,(d,a)=>(n.openBlock(),n.createElementBlock("th",{key:d.name,tabindex:"-1",style:n.normalizeStyle(r(d)),class:n.normalizeClass(d.pinned?"sticky-column":"")},[n.renderSlot(i.$slots,"default",{},()=>[n.createTextVNode(n.toDisplayString(d.label||String.fromCharCode(a+97).toUpperCase()),1)])],6))),128))])])):n.createCommentVNode("",!0)}}),K=n.defineComponent({__name:"ATableModal",props:{colIndex:{},rowIndex:{},tableid:{}},setup(e){const t=o=>{o.stopPropagation()};return(o,r)=>(n.openBlock(),n.createElementBlock("div",{class:"amodal",tabindex:"-1",onClick:t,onInput:t},[n.renderSlot(o.$slots,"default")],32))}}),ye=n.defineComponent({__name:"ATable",props:{id:{},modelValue:{},columns:{},rows:{default:()=>[]},config:{default:()=>new Object}},emits:["update:modelValue"],setup(e,{emit:t}){const o=t,r=n.useTemplateRef("table"),i=e.modelValue?e.modelValue:e.rows,l=new we(e.id,e.columns,i,e.config);n.provide(l.id,l),n.watch(()=>l.rows,s=>{o("update:modelValue",s)},{deep:!0}),n.onMounted(()=>{e.columns.some(s=>s.pinned)&&(d(),l.config.view==="tree"&&ae(r,d,{childList:!0,subtree:!0}))});const d=()=>{const s=r.value,f=s.rows[0],u=s.rows[1],p=f?Array.from(f.cells):[];for(const[c,m]of p.entries()){const h=u.cells[c];h&&(m.style.width=`${h.offsetWidth}px`)}for(const c of s.rows){let m=0;const h=[];for(const b of c.cells)(b.classList.contains("sticky-column")||b.classList.contains("sticky-index"))&&(b.style.left=`${m}px`,m+=b.offsetWidth,h.push(b));h.length>0&&h[h.length-1].classList.add("sticky-column-edge")}},a=s=>{var f;s.target instanceof Node&&(f=l.modal.parent)!=null&&f.contains(s.target)||l.modal.visible&&(l.modal.visible=!1)};return window.addEventListener("keydown",s=>{if(s.key==="Escape"&&l.modal.visible){l.modal.visible=!1;const f=l.modal.parent;f&&n.nextTick().then(()=>{f.focus()})}}),(s,f)=>n.withDirectives((n.openBlock(),n.createElementBlock("table",{ref:"table",class:"atable",style:n.normalizeStyle({width:n.unref(l).config.fullWidth?"100%":"auto"})},[n.renderSlot(s.$slots,"header",{data:n.unref(l)},()=>[n.createVNode(Z,{columns:n.unref(l).columns,tableid:n.unref(l).id},null,8,["columns","tableid"])]),n.createElementVNode("tbody",null,[n.renderSlot(s.$slots,"body",{data:n.unref(l)},()=>[(n.openBlock(!0),n.createElementBlock(n.Fragment,null,n.renderList(n.unref(l).rows,(u,p)=>(n.openBlock(),n.createBlock(Y,{key:u.id,row:u,rowIndex:p,tableid:n.unref(l).id},{default:n.withCtx(()=>[(n.openBlock(!0),n.createElementBlock(n.Fragment,null,n.renderList(n.unref(l).columns,(c,m)=>(n.openBlock(),n.createBlock(U,{key:c.name,tableid:n.unref(l).id,col:c,spellcheck:"false",pinned:c.pinned,rowIndex:p,colIndex:m+(n.unref(l).zeroColumn?0:-1),component:c.cellComponent,style:n.normalizeStyle({textAlign:(c==null?void 0:c.align)||"center",minWidth:(c==null?void 0:c.width)||"40ch",width:n.unref(l).config.fullWidth?"auto":null})},null,8,["tableid","col","pinned","rowIndex","colIndex","component","style"]))),128))]),_:2},1032,["row","rowIndex","tableid"]))),128))])]),n.renderSlot(s.$slots,"footer",{data:n.unref(l)}),n.renderSlot(s.$slots,"modal",{data:n.unref(l)},()=>[n.withDirectives(n.createVNode(K,{colIndex:n.unref(l).modal.colIndex,rowIndex:n.unref(l).modal.rowIndex,tableid:n.unref(l).id,style:n.normalizeStyle({left:n.unref(l).modal.left+"px",top:n.unref(l).modal.top+"px",maxWidth:n.unref(l).modal.width+"px"})},{default:n.withCtx(()=>[(n.openBlock(),n.createBlock(n.resolveDynamicComponent(n.unref(l).modal.component),n.mergeProps({key:`${n.unref(l).modal.rowIndex}:${n.unref(l).modal.colIndex}`,colIndex:n.unref(l).modal.colIndex,rowIndex:n.unref(l).modal.rowIndex,tableid:n.unref(l).id},n.unref(l).modal.componentProps),null,16,["colIndex","rowIndex","tableid"]))]),_:1},8,["colIndex","rowIndex","tableid","style"]),[[n.vShow,n.unref(l).modal.visible]])])],4)),[[n.unref(ot),a]])}});function ct(e){e.component("ACell",U),e.component("AExpansionRow",se),e.component("ARow",Y),e.component("ATable",ye),e.component("ATableHeader",Z),e.component("ATableModal",K)}w.ACell=U,w.AExpansionRow=se,w.ARow=Y,w.ATable=ye,w.ATableHeader=Z,w.ATableModal=K,w.TableDataStore=we,w.install=ct,Object.defineProperty(w,Symbol.toStringTag,{value:"Module"})});
1
+ (function(g,o){typeof exports=="object"&&typeof module<"u"?o(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],o):(g=typeof globalThis<"u"?globalThis:g||self,o(g["@stonecrop/atable"]={},g.Vue))})(this,function(g,o){"use strict";var ft=Object.defineProperty;var pt=(g,o,S)=>o in g?ft(g,o,{enumerable:!0,configurable:!0,writable:!0,value:S}):g[o]=S;var C=(g,o,S)=>pt(g,typeof o!="symbol"?o+"":o,S);var S=document.createElement("style");S.textContent=`@import"https://fonts.googleapis.com/css2?family=Arimo:ital,wght@0,400..700;1,400..700&display=swap";: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-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-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: 0px;--sc-atable-row-height: 1.5em;--sc-btn-border: #cccccc;--sc-btn-color: white;--sc-btn-hover: #f2f2f2;--sc-btn-label-color: black}.aform{display:flex;flex-wrap:wrap;gap:1rem;padding:1rem;border:1px solid var(--sc-gray-5);border-left:4px solid var(--sc-gray-5);margin-bottom:1rem;max-width:100%}@media screen and (max-width: 400px){.aform{flex-direction:column}}.aform__form-element{border:1px solid transparent;padding:0;margin:0;position:relative;box-sizing:border-box;flex-grow:1;min-width:100px}.aform__input-field{outline:1px solid transparent;border:1px solid var(--sc-input-border-color);font-size:1rem;padding:.5rem .25rem .25rem .5rem;margin:0;border-radius:0;box-sizing:border-box;width:100%;position:relative;color:var(--sc-cell-text-color)}.aform__field-label{color:var(--sc-input-label-color);display:inline-block;position:absolute;padding:0 .25rem;margin:0rem;z-index:2;font-size:.7rem;font-weight:300;letter-spacing:.05rem;width:auto;box-sizing:border-box;background:#fff;margin:0;border:1px solid var(--sc-input-border-color);grid-row:1;top:0;left:10px;border:none;transform:translateY(-50%)}p.error{display:block;display:inline-block;display:none;padding:0rem 0rem 0rem .5rem;margin:.5rem 0 .25rem 0rem;border:1px solid transparent;width:100%;width:auto;color:var(--sc-brand-danger);font-size:.8rem;position:absolute;right:0;top:0;background:#fff;padding:.25rem;transform:translate(-1rem,-50%);margin:0}.aform__input-field:focus{border:1px solid var(--sc-input-active-border-color)}.aform__input-field:focus+.aform__field-label{color:var(--sc-input-active-label-color)}.aform__checkbox{cursor:pointer;width:auto;margin-top:0;display:block}.aform__checkbox:checked{accent-color:var(--sc-primary-color);border:1px solid black}.aform__checkbox-container{width:100%;display:inline-block;text-align:left}.aform__checkbox-container input{width:auto}.aform__checkbox-container:hover+.aform__field-label{color:var(--sc-input-active-label-color)}.aform-primary-action{font-size:100%;text-align:center;min-height:2em;padding:.25rem 1rem;border:1px solid var(--sc-primary-color);color:var(--sc-primary-text-color);background-color:var(--sc-primary-color);outline:2px solid var(--sc-primary-text-color);transition:outline-offset .2s ease;font-size:var(--sc-font-size);margin:.5ch}.aform-primary-action:hover,.aform-primary-action:active{outline:2px solid var(--sc-primary-text-color);outline-offset:-4px;transition:outline-offset .2s ease}tr:focus{background-color:#add8e6;outline:auto}.aform__form-btn{padding:.5rem 2rem;width:auto;border:1px solid var(--sc-input-border-color);color:var(--sc-input-label-color);cursor:pointer;background-color:#fff}.aform__form-btn:disabled{background-color:var(--sc-gray-5)}.aform__file-attach{padding:1rem;display:flex;flex-wrap:wrap;gap:1rem;flex-direction:row;justify-content:center;align-items:center;border:1px dashed var(--sc-input-border-color);width:100%}@media screen and (max-width: 400px){.aform__file-attach>.aform__form-btn{width:100%}}.aform__file-attach-feedback{color:var(--sc-input-label-color);width:100%;padding:.5rem;text-align:center;align-self:center}.aform__file-attach-feedback>li{list-style:none;font-style:italic}.aform__file-attach-feedback>p{margin-top:0}.atable{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}.row-index{color:var(--sc-header-text-color);font-weight:700;text-align:center;-webkit-user-select:none;user-select:none;width:2ch}.expandable-row{border-top:1px solid var(--sc-row-border-color);height:var(--sc-atable-row-height);border-left:4px solid var(--sc-row-border-color)}.expanded-row{border-bottom:1px solid var(--sc-row-border-color);border-top:1px solid var(--sc-row-border-color)}.expanded-row-content{border-bottom:1px solid var(--sc-row-border-color);border-top:1px solid var(--sc-row-border-color);padding:1.5rem}.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}.atable__cell span{overflow:hidden;text-overflow:ellipsis}.atable__cell:focus,.atable__cell:focus-within{background-color:var(--sc-focus-cell-background);outline-width:2px;outline-style:solid;outline-offset:-1px;outline-color:var(--sc-focus-cell-outline);box-shadow:none;min-height:1.15em;max-height:1.15em;overflow:hidden;box-sizing:border-box}.table-row{border-top:1px solid var(--sc-row-border-color);height:var(--sc-atable-row-height);display:flex;background-color:#fff}.list-index{color:var(--sc-header-text-color);font-weight:700;padding-left:var(--sc-atable-row-padding);padding-right:1em;text-align:center;-webkit-user-select:none;user-select:none;width:30px;text-overflow:ellipsis;overflow:hidden}.tree-index{color:var(--sc-header-text-color);font-weight:700;text-align:center;-webkit-user-select:none;user-select:none;width:2ch}.atable #header-index{width:30px;padding-right:1em;padding-left:0;box-sizing:border-box}.atable-header-row{display:flex}.atable th{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}#header-index{box-sizing:content-box}.atable th:focus{outline:none}.amodal{position:fixed;background-color:var(--sc-row-color-zebra-dark);z-index:100}.sticky-index{position:sticky;left:0;z-index:1;order:0}.sticky-column,th.sticky-column,td.sticky-column,th.sticky-index,td.sticky-index{position:sticky;z-index:1;order:0;background:#fff}.sticky-column-edge,.atable th.sticky-column-edge{border-right:1px solid var(--sc-row-border-color);border-right-width:1px}.login-container{width:100%;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;font-family:var(--sc-font-family)}.account-container{width:100%;margin-left:auto;margin-top:.5rem;margin-right:auto;display:flex;flex-direction:column;justify-content:center}.account-header{display:flex;flex-direction:column;text-align:center;margin-top:.5rem}#account-title{font-size:1.5rem;line-height:2rem;font-weight:600;letter-spacing:-.025em;margin:0}#account-subtitle{font-size:.875rem;line-height:1.25rem;margin:1rem}.login-form-container{display:grid;gap:.5rem}.login-form-element{display:grid;margin:.5rem 0;position:relative}.login-field{padding:.5rem .25rem .25rem .5rem;outline:1px solid transparent;border:1px solid var(--sc-input-border-color);border-radius:.25rem}.login-field:focus{border:1px solid black}.btn{background-color:var(--sc-btn-color);color:var(--sc-btn-label-color);border:1px solid var(--sc-btn-border);margin:.5rem 0;padding:.25rem;position:relative;cursor:pointer}.btn:hover{background-color:var(--sc-btn-hover)}.btn:disabled{background-color:light-dark(rgba(239,239,239,.3),rgba(59,59,59,.3));color:light-dark(rgb(84,84,84),rgb(170,170,170))}.disabled{opacity:.5}.loading-icon{animation:spin 1s linear infinite forwards;display:inline-block;margin-right:.2rem;line-height:0;font-size:1rem;position:relative;top:.2rem}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}[data-v-2896bed9]: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-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-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: 0px;--sc-atable-row-height: 1.5em;--sc-btn-border: #cccccc;--sc-btn-color: white;--sc-btn-hover: #f2f2f2;--sc-btn-label-color: black}.aform[data-v-2896bed9]{display:flex;flex-wrap:wrap;gap:1rem;padding:1rem;border:1px solid var(--sc-gray-5);border-left:4px solid var(--sc-gray-5);margin-bottom:1rem;max-width:100%}@media screen and (max-width: 400px){.aform[data-v-2896bed9]{flex-direction:column}}.aform__form-element[data-v-2896bed9]{border:1px solid transparent;padding:0;margin:0;position:relative;box-sizing:border-box;flex-grow:1;min-width:100px}.aform__input-field[data-v-2896bed9]{outline:1px solid transparent;border:1px solid var(--sc-input-border-color);font-size:1rem;padding:.5rem .25rem .25rem .5rem;margin:0;border-radius:0;box-sizing:border-box;width:100%;position:relative;color:var(--sc-cell-text-color)}.aform__field-label[data-v-2896bed9]{color:var(--sc-input-label-color);display:inline-block;position:absolute;padding:0 .25rem;margin:0rem;z-index:2;font-size:.7rem;font-weight:300;letter-spacing:.05rem;width:auto;box-sizing:border-box;background:#fff;margin:0;border:1px solid var(--sc-input-border-color);grid-row:1;top:0;left:10px;border:none;transform:translateY(-50%)}p.error[data-v-2896bed9]{display:block;display:inline-block;display:none;padding:0rem 0rem 0rem .5rem;margin:.5rem 0 .25rem 0rem;border:1px solid transparent;width:100%;width:auto;color:var(--sc-brand-danger);font-size:.8rem;position:absolute;right:0;top:0;background:#fff;padding:.25rem;transform:translate(-1rem,-50%);margin:0}.aform__input-field[data-v-2896bed9]:focus{border:1px solid var(--sc-input-active-border-color)}.aform__input-field:focus+.aform__field-label[data-v-2896bed9]{color:var(--sc-input-active-label-color)}.aform__checkbox[data-v-2896bed9]{cursor:pointer;width:auto;margin-top:0;display:block}.aform__checkbox[data-v-2896bed9]:checked{accent-color:var(--sc-primary-color);border:1px solid black}.aform__checkbox-container[data-v-2896bed9]{width:100%;display:inline-block;text-align:left}.aform__checkbox-container input[data-v-2896bed9]{width:auto}.aform__checkbox-container:hover+.aform__field-label[data-v-2896bed9]{color:var(--sc-input-active-label-color)}.aform-primary-action[data-v-2896bed9]{font-size:100%;text-align:center;min-height:2em;padding:.25rem 1rem;border:1px solid var(--sc-primary-color);color:var(--sc-primary-text-color);background-color:var(--sc-primary-color);outline:2px solid var(--sc-primary-text-color);transition:outline-offset .2s ease;font-size:var(--sc-font-size);margin:.5ch}.aform-primary-action[data-v-2896bed9]:hover,.aform-primary-action[data-v-2896bed9]:active{outline:2px solid var(--sc-primary-text-color);outline-offset:-4px;transition:outline-offset .2s ease}tr[data-v-2896bed9]:focus{background-color:#add8e6;outline:auto}.aform__form-btn[data-v-2896bed9]{padding:.5rem 2rem;width:auto;border:1px solid var(--sc-input-border-color);color:var(--sc-input-label-color);cursor:pointer;background-color:#fff}.aform__form-btn[data-v-2896bed9]:disabled{background-color:var(--sc-gray-5)}.aform__file-attach[data-v-2896bed9]{padding:1rem;display:flex;flex-wrap:wrap;gap:1rem;flex-direction:row;justify-content:center;align-items:center;border:1px dashed var(--sc-input-border-color);width:100%}@media screen and (max-width: 400px){.aform__file-attach>.aform__form-btn[data-v-2896bed9]{width:100%}}.aform__file-attach-feedback[data-v-2896bed9]{color:var(--sc-input-label-color);width:100%;padding:.5rem;text-align:center;align-self:center}.aform__file-attach-feedback>li[data-v-2896bed9]{list-style:none;font-style:italic}.aform__file-attach-feedback>p[data-v-2896bed9]{margin-top:0}.atable[data-v-2896bed9]{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}.row-index[data-v-2896bed9]{color:var(--sc-header-text-color);font-weight:700;text-align:center;-webkit-user-select:none;user-select:none;width:2ch}.expandable-row[data-v-2896bed9]{border-top:1px solid var(--sc-row-border-color);height:var(--sc-atable-row-height);border-left:4px solid var(--sc-row-border-color)}.expanded-row[data-v-2896bed9]{border-bottom:1px solid var(--sc-row-border-color);border-top:1px solid var(--sc-row-border-color)}.expanded-row-content[data-v-2896bed9]{border-bottom:1px solid var(--sc-row-border-color);border-top:1px solid var(--sc-row-border-color);padding:1.5rem}.atable__cell[data-v-2896bed9]{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}.atable__cell span[data-v-2896bed9]{overflow:hidden;text-overflow:ellipsis}.atable__cell[data-v-2896bed9]:focus,.atable__cell[data-v-2896bed9]:focus-within{background-color:var(--sc-focus-cell-background);outline-width:2px;outline-style:solid;outline-offset:-1px;outline-color:var(--sc-focus-cell-outline);box-shadow:none;min-height:1.15em;max-height:1.15em;overflow:hidden;box-sizing:border-box}.table-row[data-v-2896bed9]{border-top:1px solid var(--sc-row-border-color);height:var(--sc-atable-row-height);display:flex;background-color:#fff}.list-index[data-v-2896bed9]{color:var(--sc-header-text-color);font-weight:700;padding-left:var(--sc-atable-row-padding);padding-right:1em;text-align:center;-webkit-user-select:none;user-select:none;width:30px;text-overflow:ellipsis;overflow:hidden}.tree-index[data-v-2896bed9]{color:var(--sc-header-text-color);font-weight:700;text-align:center;-webkit-user-select:none;user-select:none;width:2ch}.atable #header-index[data-v-2896bed9]{width:30px;padding-right:1em;padding-left:0;box-sizing:border-box}.atable-header-row[data-v-2896bed9]{display:flex}.atable th[data-v-2896bed9]{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}#header-index[data-v-2896bed9]{box-sizing:content-box}.atable th[data-v-2896bed9]:focus{outline:none}.amodal[data-v-2896bed9]{position:fixed;background-color:var(--sc-row-color-zebra-dark);z-index:100}.sticky-index[data-v-2896bed9]{position:sticky;left:0;z-index:1;order:0}.sticky-column[data-v-2896bed9],th.sticky-column[data-v-2896bed9],td.sticky-column[data-v-2896bed9],th.sticky-index[data-v-2896bed9],td.sticky-index[data-v-2896bed9]{position:sticky;z-index:1;order:0;background:#fff}.sticky-column-edge[data-v-2896bed9],.atable th.sticky-column-edge[data-v-2896bed9]{border-right:1px solid var(--sc-row-border-color);border-right-width:1px}.login-container[data-v-2896bed9]{width:100%;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;font-family:var(--sc-font-family)}.account-container[data-v-2896bed9]{width:100%;margin-left:auto;margin-top:.5rem;margin-right:auto;display:flex;flex-direction:column;justify-content:center}.account-header[data-v-2896bed9]{display:flex;flex-direction:column;text-align:center;margin-top:.5rem}#account-title[data-v-2896bed9]{font-size:1.5rem;line-height:2rem;font-weight:600;letter-spacing:-.025em;margin:0}#account-subtitle[data-v-2896bed9]{font-size:.875rem;line-height:1.25rem;margin:1rem}.login-form-container[data-v-2896bed9]{display:grid;gap:.5rem}.login-form-element[data-v-2896bed9]{display:grid;margin:.5rem 0;position:relative}.login-field[data-v-2896bed9]{padding:.5rem .25rem .25rem .5rem;outline:1px solid transparent;border:1px solid var(--sc-input-border-color);border-radius:.25rem}.login-field[data-v-2896bed9]:focus{border:1px solid black}.btn[data-v-2896bed9]{background-color:var(--sc-btn-color);color:var(--sc-btn-label-color);border:1px solid var(--sc-btn-border);margin:.5rem 0;padding:.25rem;position:relative;cursor:pointer}.btn[data-v-2896bed9]:hover{background-color:var(--sc-btn-hover)}.btn[data-v-2896bed9]:disabled{background-color:light-dark(rgba(239,239,239,.3),rgba(59,59,59,.3));color:light-dark(rgb(84,84,84),rgb(170,170,170))}.disabled[data-v-2896bed9]{opacity:.5}.loading-icon[data-v-2896bed9]{animation:spin-2896bed9 1s linear infinite forwards;display:inline-block;margin-right:.2rem;line-height:0;font-size:1rem;position:relative;top:.2rem}@keyframes spin-2896bed9{0%{transform:rotate(0)}to{transform:rotate(360deg)}}
2
+ `,document.head.appendChild(S);function K(e){return o.getCurrentScope()?(o.onScopeDispose(e),!0):!1}function L(e){return typeof e=="function"?e():o.unref(e)}const ye=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const ve=e=>e!=null,ke=Object.prototype.toString,Ee=e=>ke.call(e)==="[object Object]",_e=()=>{},z=ye?window:void 0;function I(e){var t;const n=L(e);return(t=n==null?void 0:n.$el)!=null?t:n}function T(...e){let t,n,a,l;if(typeof e[0]=="string"||Array.isArray(e[0])?([n,a,l]=e,t=z):[t,n,a,l]=e,!t)return _e;Array.isArray(n)||(n=[n]),Array.isArray(a)||(a=[a]);const r=[],d=()=>{r.forEach(p=>p()),r.length=0},i=(p,u,s,m)=>(p.addEventListener(u,s,m),()=>p.removeEventListener(u,s,m)),c=o.watch(()=>[I(t),L(l)],([p,u])=>{if(d(),!p)return;const s=Ee(u)?{...u}:u;r.push(...n.flatMap(m=>a.map(b=>i(p,m,b,s))))},{immediate:!0,flush:"post"}),f=()=>{c(),d()};return K(f),f}function Ce(){const e=o.ref(!1),t=o.getCurrentInstance();return t&&o.onMounted(()=>{e.value=!0},t),e}function Se(e){const t=Ce();return o.computed(()=>(t.value,!!e()))}function Ae(e,t,n={}){const{window:a=z,...l}=n;let r;const d=Se(()=>a&&"MutationObserver"in a),i=()=>{r&&(r.disconnect(),r=void 0)},c=o.computed(()=>{const s=L(e),m=(Array.isArray(s)?s:[s]).map(I).filter(ve);return new Set(m)}),f=o.watch(()=>c.value,s=>{i(),d.value&&s.size&&(r=new MutationObserver(t),s.forEach(m=>r.observe(m,l)))},{immediate:!0,flush:"post"}),p=()=>r==null?void 0:r.takeRecords(),u=()=>{f(),i()};return K(u),{isSupported:d,stop:u,takeRecords:p}}function ze(e={}){var t;const{window:n=z,deep:a=!0,triggerOnRemoval:l=!1}=e,r=(t=e.document)!=null?t:n==null?void 0:n.document,d=()=>{var f;let p=r==null?void 0:r.activeElement;if(a)for(;p!=null&&p.shadowRoot;)p=(f=p==null?void 0:p.shadowRoot)==null?void 0:f.activeElement;return p},i=o.ref(),c=()=>{i.value=d()};return n&&(T(n,"blur",f=>{f.relatedTarget===null&&c()},!0),T(n,"focus",c,!0)),l&&Ae(r,f=>{f.filter(p=>p.removedNodes.length).map(p=>Array.from(p.removedNodes)).flat().forEach(p=>{p===i.value&&c()})},{childList:!0,subtree:!0}),c(),i}const Ie="focusin",Te="focusout";function De(e,t={}){const{window:n=z}=t,a=o.computed(()=>I(e)),l=o.ref(!1),r=o.computed(()=>l.value),d=ze(t);return!n||!d.value?{focused:r}:(T(a,Ie,()=>l.value=!0),T(a,Te,()=>l.value=!1),{focused:r})}function $e(e,{window:t=z,scrollTarget:n}={}){const a=o.ref(!1),l=()=>{if(!t)return;const r=t.document,d=I(e);if(!d)a.value=!1;else{const i=d.getBoundingClientRect();a.value=i.top<=(t.innerHeight||r.documentElement.clientHeight)&&i.left<=(t.innerWidth||r.documentElement.clientWidth)&&i.bottom>=0&&i.right>=0}};return o.watch(()=>I(e),()=>l(),{immediate:!0,flush:"post"}),t&&T(n||t,"scroll",l,{capture:!1,passive:!0}),a}const E=e=>{let t=$e(e).value;return t=t&&e.offsetHeight>0,t},_=e=>e.tabIndex>=0,ee=e=>{const t=e.target;return j(t)},j=e=>{var t;let n;if(e instanceof HTMLTableCellElement){const a=(t=e.parentElement)==null?void 0:t.previousElementSibling;if(a){const l=Array.from(a.children)[e.cellIndex];l&&(n=l)}}else if(e instanceof HTMLTableRowElement){const a=e.previousElementSibling;a&&(n=a)}return n&&(!_(n)||!E(n))?j(n):n},Oe=e=>{var t;const n=e.target;let a;if(n instanceof HTMLTableCellElement){const l=(t=n.parentElement)==null?void 0:t.parentElement;if(l){const r=l.firstElementChild.children[n.cellIndex];r&&(a=r)}}else if(n instanceof HTMLTableRowElement){const l=n.parentElement;if(l){const r=l.firstElementChild;r&&(a=r)}}return a&&(!_(a)||!E(a))?P(a):a},te=e=>{const t=e.target;return P(t)},P=e=>{var t;let n;if(e instanceof HTMLTableCellElement){const a=(t=e.parentElement)==null?void 0:t.nextElementSibling;if(a){const l=Array.from(a.children)[e.cellIndex];l&&(n=l)}}else if(e instanceof HTMLTableRowElement){const a=e.nextElementSibling;a&&(n=a)}return n&&(!_(n)||!E(n))?P(n):n},Be=e=>{var t;const n=e.target;let a;if(n instanceof HTMLTableCellElement){const l=(t=n.parentElement)==null?void 0:t.parentElement;if(l){const r=l.lastElementChild.children[n.cellIndex];r&&(a=r)}}else if(n instanceof HTMLTableRowElement){const l=n.parentElement;if(l){const r=l.lastElementChild;r&&(a=r)}}return a&&(!_(a)||!E(a))?j(a):a},oe=e=>{const t=e.target;return N(t)},N=e=>{var t;let n;if(e.previousElementSibling)n=e.previousElementSibling;else{const a=(t=e.parentElement)==null?void 0:t.previousElementSibling;n=a==null?void 0:a.lastElementChild}return n&&(!_(n)||!E(n))?N(n):n},ne=e=>{const t=e.target;return W(t)},W=e=>{var t;let n;if(e.nextElementSibling)n=e.nextElementSibling;else{const a=(t=e.parentElement)==null?void 0:t.nextElementSibling;n=a==null?void 0:a.firstElementChild}return n&&(!_(n)||!E(n))?W(n):n},re=e=>{const t=e.target.parentElement.firstElementChild;return t&&(!_(t)||!E(t))?W(t):t},ae=e=>{const t=e.target.parentElement.lastElementChild;return t&&(!_(t)||!E(t))?N(t):t},B=["alt","control","shift","meta"],Me={ArrowUp:"up",ArrowDown:"down",ArrowLeft:"left",ArrowRight:"right"},H={"keydown.up":e=>{const t=ee(e);t&&(e.preventDefault(),e.stopPropagation(),t.focus())},"keydown.down":e=>{const t=te(e);t&&(e.preventDefault(),e.stopPropagation(),t.focus())},"keydown.left":e=>{const t=oe(e);e.preventDefault(),e.stopPropagation(),t&&t.focus()},"keydown.right":e=>{const t=ne(e);e.preventDefault(),e.stopPropagation(),t&&t.focus()},"keydown.control.up":e=>{const t=Oe(e);t&&(e.preventDefault(),e.stopPropagation(),t.focus())},"keydown.control.down":e=>{const t=Be(e);t&&(e.preventDefault(),e.stopPropagation(),t.focus())},"keydown.control.left":e=>{const t=re(e);t&&(e.preventDefault(),e.stopPropagation(),t.focus())},"keydown.control.right":e=>{const t=ae(e);t&&(e.preventDefault(),e.stopPropagation(),t.focus())},"keydown.end":e=>{const t=ae(e);t&&(e.preventDefault(),e.stopPropagation(),t.focus())},"keydown.enter":e=>{if(e.target instanceof HTMLTableCellElement){e.preventDefault(),e.stopPropagation();const t=te(e);t&&t.focus()}},"keydown.shift.enter":e=>{if(e.target instanceof HTMLTableCellElement){e.preventDefault(),e.stopPropagation();const t=ee(e);t&&t.focus()}},"keydown.home":e=>{const t=re(e);t&&(e.preventDefault(),e.stopPropagation(),t.focus())},"keydown.tab":e=>{const t=ne(e);t&&(e.preventDefault(),e.stopPropagation(),t.focus())},"keydown.shift.tab":e=>{const t=oe(e);t&&(e.preventDefault(),e.stopPropagation(),t.focus())}};function V(e){const t=d=>{let i=null;return d.parent&&(typeof d.parent=="string"?i=document.querySelector(d.parent):d.parent instanceof HTMLElement?i=d.parent:i=d.parent.value),i},n=d=>{const i=t(d);let c=[];if(typeof d.selectors=="string")c=i?Array.from(i.querySelectorAll(d.selectors)):Array.from(document.querySelectorAll(d.selectors));else if(Array.isArray(d.selectors))for(const f of d.selectors)f instanceof HTMLElement?c.push(f):c.push(f.$el);else if(d.selectors instanceof HTMLElement)c.push(d.selectors);else if(Array.isArray(d.selectors.value))for(const f of d.selectors.value)f instanceof HTMLElement?c.push(f):c.push(f.$el);else c.push(d.selectors.value);return c},a=d=>{const i=t(d);let c=[];return d.selectors?c=n(d):i&&(c=Array.from(i.children).filter(f=>_(f)&&E(f))),c},l=d=>i=>{const c=Me[i.key]||i.key.toLowerCase();if(B.includes(c))return;const f=d.handlers||H;for(const p of Object.keys(f)){const[u,...s]=p.split(".");if(u==="keydown"&&s.includes(c)){const m=f[p],b=s.filter(h=>B.includes(h)),x=B.some(h=>{const y=h.charAt(0).toUpperCase()+h.slice(1);return i.getModifierState(y)});if(b.length>0){if(x){for(const h of B)if(s.includes(h)){const y=h.charAt(0).toUpperCase()+h.slice(1);i.getModifierState(y)&&m(i)}}}else x||m(i)}}},r=[];o.onMounted(()=>{for(const d of e){const i=t(d),c=a(d),f=l(d),p=i?[i]:c;for(const u of p){const{focused:s}=De(o.ref(u)),m=o.watch(s,b=>{b?u.addEventListener("keydown",f):u.removeEventListener("keydown",f)});r.push(m)}}}),o.onBeforeUnmount(()=>{for(const d of r)d()})}function F(e){return o.getCurrentScope()?(o.onScopeDispose(e),!0):!1}function M(e){return typeof e=="function"?e():o.unref(e)}const Re=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const Le=e=>e!=null,je=Object.prototype.toString,Pe=e=>je.call(e)==="[object Object]",Ne=()=>{};function We(e){return o.getCurrentInstance()}function He(e,t=!0,n){We()?o.onMounted(e,n):t?e():o.nextTick(e)}const q=Re?window:void 0;function A(e){var t;const n=M(e);return(t=n==null?void 0:n.$el)!=null?t:n}function le(...e){let t,n,a,l;if(typeof e[0]=="string"||Array.isArray(e[0])?([n,a,l]=e,t=q):[t,n,a,l]=e,!t)return Ne;Array.isArray(n)||(n=[n]),Array.isArray(a)||(a=[a]);const r=[],d=()=>{r.forEach(p=>p()),r.length=0},i=(p,u,s,m)=>(p.addEventListener(u,s,m),()=>p.removeEventListener(u,s,m)),c=o.watch(()=>[A(t),M(l)],([p,u])=>{if(d(),!p)return;const s=Pe(u)?{...u}:u;r.push(...n.flatMap(m=>a.map(b=>i(p,m,b,s))))},{immediate:!0,flush:"post"}),f=()=>{c(),d()};return F(f),f}function Ve(){const e=o.ref(!1),t=o.getCurrentInstance();return t&&o.onMounted(()=>{e.value=!0},t),e}function ie(e){const t=Ve();return o.computed(()=>(t.value,!!e()))}function ce(e,t,n={}){const{window:a=q,...l}=n;let r;const d=ie(()=>a&&"MutationObserver"in a),i=()=>{r&&(r.disconnect(),r=void 0)},c=o.computed(()=>{const s=M(e),m=(Array.isArray(s)?s:[s]).map(A).filter(Le);return new Set(m)}),f=o.watch(()=>c.value,s=>{i(),d.value&&s.size&&(r=new MutationObserver(t),s.forEach(m=>r.observe(m,l)))},{immediate:!0,flush:"post"}),p=()=>r==null?void 0:r.takeRecords(),u=()=>{f(),i()};return F(u),{isSupported:d,stop:u,takeRecords:p}}function Fe(e,t,n={}){const{window:a=q,...l}=n;let r;const d=ie(()=>a&&"ResizeObserver"in a),i=()=>{r&&(r.disconnect(),r=void 0)},c=o.computed(()=>{const u=M(e);return Array.isArray(u)?u.map(s=>A(s)):[A(u)]}),f=o.watch(c,u=>{if(i(),d.value&&a){r=new ResizeObserver(t);for(const s of u)s&&r.observe(s,l)}},{immediate:!0,flush:"post"}),p=()=>{i(),f()};return F(p),{isSupported:d,stop:p}}function qe(e,t={}){const{reset:n=!0,windowResize:a=!0,windowScroll:l=!0,immediate:r=!0,updateTiming:d="sync"}=t,i=o.ref(0),c=o.ref(0),f=o.ref(0),p=o.ref(0),u=o.ref(0),s=o.ref(0),m=o.ref(0),b=o.ref(0);function x(){const y=A(e);if(!y){n&&(i.value=0,c.value=0,f.value=0,p.value=0,u.value=0,s.value=0,m.value=0,b.value=0);return}const v=y.getBoundingClientRect();i.value=v.height,c.value=v.bottom,f.value=v.left,p.value=v.right,u.value=v.top,s.value=v.width,m.value=v.x,b.value=v.y}function h(){d==="sync"?x():d==="next-frame"&&requestAnimationFrame(()=>x())}return Fe(e,h),o.watch(()=>A(e),y=>!y&&h()),ce(e,h,{attributeFilter:["style","class"]}),l&&le("scroll",h,{capture:!0,passive:!0}),a&&le("resize",h,{passive:!0}),He(()=>{r&&h()}),{height:i,bottom:c,left:f,right:p,top:u,width:s,x:m,y:b,update:h}}const Ge=e=>{const t=new DOMParser().parseFromString(e,"text/html");return Array.from(t.body.childNodes).some(n=>n.nodeType===1)},Ue=["data-colindex","data-rowindex","data-editable","contenteditable","tabindex"],Ye=["innerHTML"],Xe={key:2},G=o.defineComponent({__name:"ACell",props:{colIndex:{},rowIndex:{},tableid:{},addNavigation:{type:[Boolean,Object],default:!0},tabIndex:{default:0},pinned:{type:Boolean}},setup(e){var xe;const t=o.inject(e.tableid),n=o.useTemplateRef("cell"),a=o.ref(""),l=o.ref(!1),{bottom:r,left:d}=qe(n),i=t.table,c=t.columns[e.colIndex],f=t.rows[e.rowIndex],p=o.computed(()=>c.align||"center"),u=o.computed(()=>c.width||"40ch"),s=o.computed(()=>{const w=t.cellData(e.colIndex,e.rowIndex),k=c.format;return k?typeof k=="function"?k(w,{table:i,row:f,column:c}):typeof k=="string"?Function(`"use strict";return (${k})`)()(w,{table:i,row:f,column:c}):w:w}),m=o.computed(()=>typeof s.value=="string"?Ge(s.value):!1),b=()=>{c.mask,c.modalComponent&&(t.modal.visible=!0,t.modal.colIndex=e.colIndex,t.modal.rowIndex=e.rowIndex,t.modal.parent=n.value,t.modal.top=r.value,t.modal.left=d.value,t.modal.width=u.value,typeof c.modalComponent=="function"?t.modal.component=c.modalComponent({table:i,row:f,column:c}):t.modal.component=c.modalComponent,t.modal.componentProps=c.modalComponentExtraProps)};if(e.addNavigation){let w={...H,"keydown.f2":b,"keydown.alt.up":b,"keydown.alt.down":b,"keydown.alt.left":b,"keydown.alt.right":b};typeof e.addNavigation=="object"&&(w={...w,...e.addNavigation}),V([{selectors:n,handlers:w}])}const x=()=>{n.value&&(a.value=n.value.textContent)},h=()=>{n.value&&n.value.textContent!==a.value&&(a.value=n.value.textContent,n.value.dispatchEvent(new Event("change")),l.value=!0,c.format||t.setCellData(e.rowIndex,e.colIndex,a.value))},y=(w,k)=>k&&w===0&&k>0?`${k}ch`:"inherit",v={textAlign:p.value,width:u.value,backgroundColor:l.value?"var(--cell-modified-color)":"inherit",fontWeight:l.value?"bold":"inherit",paddingLeft:y(e.colIndex,(xe=t.display[e.rowIndex])==null?void 0:xe.indent)};return(w,k)=>(o.openBlock(),o.createElementBlock("td",{ref:"cell","data-colindex":w.colIndex,"data-rowindex":w.rowIndex,"data-editable":o.unref(c).edit,contenteditable:o.unref(c).edit,tabindex:w.tabIndex,spellcheck:!1,style:v,onFocus:x,onPaste:h,onBlur:h,onInput:h,onClick:b,onMousedown:b,class:o.normalizeClass(["atable__cell",w.pinned?"sticky-column":""])},[o.unref(c).cellComponent?(o.openBlock(),o.createBlock(o.resolveDynamicComponent(o.unref(c).cellComponent),o.mergeProps({key:0,value:s.value},o.unref(c).cellComponentProps),null,16,["value"])):m.value?(o.openBlock(),o.createElementBlock("span",{key:1,innerHTML:s.value},null,8,Ye)):(o.openBlock(),o.createElementBlock("span",Xe,o.toDisplayString(s.value),1))],42,Ue))}}),Je=["tabindex"],Qe=["tabindex"],Ze=["colspan"],se=o.defineComponent({__name:"AExpansionRow",props:{rowIndex:{},tableid:{},tabIndex:{default:()=>-1},addNavigation:{type:[Boolean,Object]}},setup(e){const t=o.inject(e.tableid),n=o.useTemplateRef("rowEl"),a=o.computed(()=>t.display[e.rowIndex].expanded?"▼":"►");if(e.addNavigation){const l={"keydown.control.g":r=>{r.stopPropagation(),r.preventDefault(),t.toggleRowExpand(e.rowIndex)}};typeof e.addNavigation=="object"&&Object.assign(l,e.addNavigation),V([{selectors:n,handlers:l}])}return(l,r)=>(o.openBlock(),o.createElementBlock(o.Fragment,null,[o.createElementVNode("tr",o.mergeProps(l.$attrs,{ref:"rowEl",tabindex:l.tabIndex,class:"expandable-row"}),[o.createElementVNode("td",{tabIndex:-1,onClick:r[0]||(r[0]=d=>o.unref(t).toggleRowExpand(l.rowIndex)),class:"row-index"},o.toDisplayString(a.value),1),o.renderSlot(l.$slots,"row")],16,Je),o.unref(t).display[l.rowIndex].expanded?(o.openBlock(),o.createElementBlock("tr",{key:0,ref:"rowExpanded",tabindex:l.tabIndex,class:"expanded-row"},[o.createElementVNode("td",{tabIndex:-1,colspan:o.unref(t).columns.length+1,class:"expanded-row-content"},[o.renderSlot(l.$slots,"content")],8,Ze)],8,Qe)):o.createCommentVNode("",!0)],64))}}),Ke=["tabindex"],U=o.defineComponent({__name:"ARow",props:{rowIndex:{},tableid:{},tabIndex:{default:()=>-1},addNavigation:{type:[Boolean,Object],default:!1}},setup(e){const t=o.inject(e.tableid),n=o.useTemplateRef("rowEl"),a=o.computed(()=>t.columns.some(i=>i.pinned)),l=o.computed(()=>t.config.view!=="tree"||t.display[e.rowIndex].isRoot||t.display[e.rowIndex].open),r=o.computed(()=>t.config.view!=="tree"?"":t.display[e.rowIndex].isRoot||t.display[e.rowIndex].isParent?t.display[e.rowIndex].childrenOpen?"-":"+":""),d=i=>{t.toggleRowExpand(i)};if(e.addNavigation){let i=H;typeof e.addNavigation=="object"&&(i={...i,...e.addNavigation}),V([{selectors:n,handlers:i}])}return(i,c)=>o.withDirectives((o.openBlock(),o.createElementBlock("tr",{ref:"rowEl",tabindex:i.tabIndex,class:"table-row"},[o.renderSlot(i.$slots,"index",{},()=>[o.unref(t).config.view==="list"?(o.openBlock(),o.createElementBlock("td",{key:0,tabIndex:-1,class:o.normalizeClass(["list-index",a.value?"sticky-index":""])},o.toDisplayString(i.rowIndex+1),3)):o.unref(t).config.view==="tree"?(o.openBlock(),o.createElementBlock("td",{key:1,tabIndex:-1,class:o.normalizeClass(["tree-index",a.value?"sticky-index":""]),onClick:c[0]||(c[0]=f=>d(i.rowIndex))},o.toDisplayString(r.value),3)):o.createCommentVNode("",!0)]),o.renderSlot(i.$slots,"default")],8,Ke)),[[o.vShow,l.value]])}});function de(e){return o.getCurrentScope()?(o.onScopeDispose(e),!0):!1}function D(e){return typeof e=="function"?e():o.unref(e)}const fe=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const et=Object.prototype.toString,tt=e=>et.call(e)==="[object Object]",$=()=>{},Y=ot();function ot(){var e,t;return fe&&((e=window==null?void 0:window.navigator)==null?void 0:e.userAgent)&&(/iP(?:ad|hone|od)/.test(window.navigator.userAgent)||((t=window==null?void 0:window.navigator)==null?void 0:t.maxTouchPoints)>2&&/iPad|Macintosh/.test(window==null?void 0:window.navigator.userAgent))}const pe={mounted:"mounted",updated:"updated",unmounted:"unmounted"};function nt(...e){if(e.length!==1)return o.toRef(...e);const t=e[0];return typeof t=="function"?o.readonly(o.customRef(()=>({get:t,set:$}))):o.ref(t)}function O(e){var t;const n=D(e);return(t=n==null?void 0:n.$el)!=null?t:n}const me=fe?window:void 0;function R(...e){let t,n,a,l;if(typeof e[0]=="string"||Array.isArray(e[0])?([n,a,l]=e,t=me):[t,n,a,l]=e,!t)return $;Array.isArray(n)||(n=[n]),Array.isArray(a)||(a=[a]);const r=[],d=()=>{r.forEach(p=>p()),r.length=0},i=(p,u,s,m)=>(p.addEventListener(u,s,m),()=>p.removeEventListener(u,s,m)),c=o.watch(()=>[O(t),D(l)],([p,u])=>{if(d(),!p)return;const s=tt(u)?{...u}:u;r.push(...n.flatMap(m=>a.map(b=>i(p,m,b,s))))},{immediate:!0,flush:"post"}),f=()=>{c(),d()};return de(f),f}let ue=!1;function be(e,t,n={}){const{window:a=me,ignore:l=[],capture:r=!0,detectIframe:d=!1}=n;if(!a)return $;Y&&!ue&&(ue=!0,Array.from(a.document.body.children).forEach(s=>s.addEventListener("click",$)),a.document.documentElement.addEventListener("click",$));let i=!0;const c=s=>l.some(m=>{if(typeof m=="string")return Array.from(a.document.querySelectorAll(m)).some(b=>b===s.target||s.composedPath().includes(b));{const b=O(m);return b&&(s.target===b||s.composedPath().includes(b))}}),p=[R(a,"click",s=>{const m=O(e);if(!(!m||m===s.target||s.composedPath().includes(m))){if(s.detail===0&&(i=!c(s)),!i){i=!0;return}t(s)}},{passive:!0,capture:r}),R(a,"pointerdown",s=>{const m=O(e);i=!c(s)&&!!(m&&!s.composedPath().includes(m))},{passive:!0}),d&&R(a,"blur",s=>{setTimeout(()=>{var m;const b=O(e);((m=a.document.activeElement)==null?void 0:m.tagName)==="IFRAME"&&!(b!=null&&b.contains(a.document.activeElement))&&t(s)},0)})].filter(Boolean);return()=>p.forEach(s=>s())}const rt={[pe.mounted](e,t){const n=!t.modifiers.bubble;if(typeof t.value=="function")e.__onClickOutside_stop=be(e,t.value,{capture:n});else{const[a,l]=t.value;e.__onClickOutside_stop=be(e,a,Object.assign({capture:n},l))}},[pe.unmounted](e){e.__onClickOutside_stop()}};function X(e){return typeof Window<"u"&&e instanceof Window?e.document.documentElement:typeof Document<"u"&&e instanceof Document?e.documentElement:e}function ge(e){const t=window.getComputedStyle(e);if(t.overflowX==="scroll"||t.overflowY==="scroll"||t.overflowX==="auto"&&e.clientWidth<e.scrollWidth||t.overflowY==="auto"&&e.clientHeight<e.scrollHeight)return!0;{const n=e.parentNode;return!n||n.tagName==="BODY"?!1:ge(n)}}function at(e){const t=e||window.event,n=t.target;return ge(n)?!1:t.touches.length>1?!0:(t.preventDefault&&t.preventDefault(),!1)}const J=new WeakMap;function lt(e,t=!1){const n=o.ref(t);let a=null,l="";o.watch(nt(e),i=>{const c=X(D(i));if(c){const f=c;if(J.get(f)||J.set(f,f.style.overflow),f.style.overflow!=="hidden"&&(l=f.style.overflow),f.style.overflow==="hidden")return n.value=!0;if(n.value)return f.style.overflow="hidden"}},{immediate:!0});const r=()=>{const i=X(D(e));!i||n.value||(Y&&(a=R(i,"touchmove",c=>{at(c)},{passive:!1})),i.style.overflow="hidden",n.value=!0)},d=()=>{const i=X(D(e));!i||!n.value||(Y&&(a==null||a()),i.style.overflow=l,J.delete(i),n.value=!1)};return de(d),o.computed({get(){return n.value},set(i){i?r():d()}})}function it(){let e=!1;const t=o.ref(!1);return(n,a)=>{if(t.value=a.value,e)return;e=!0;const l=lt(n,a.value);o.watch(t,r=>l.value=r)}}it();class he{constructor(t,n,a,l,r,d){C(this,"id");C(this,"rows");C(this,"columns");C(this,"config");C(this,"table");C(this,"display");C(this,"modal");this.id=t||crypto.randomUUID(),this.rows=a,this.columns=o.reactive(n),this.config=o.reactive(l),this.table=r||o.reactive(this.createTableObject()),this.display=this.createDisplayObject(d),this.modal=o.reactive({visible:!1})}createTableObject(){const t={};for(const[n,a]of this.columns.entries())for(const[l,r]of this.rows.entries())t[`${n}:${l}`]=r[a.name];return t}createDisplayObject(t){const n=[Object.assign({},{modified:!1})];if(t&&"0:0"in t)return t;const a=new Set;for(let l=this.rows.length-1;l>=0;l--){const r=this.rows[l];r.parent&&a.add(r.parent),n[l]={childrenOpen:!1,expanded:!1,indent:r.indent||null,isParent:a.has(l),isRoot:r.parent===null||r.parent===void 0,modified:!1,open:r.parent===null||r.parent===void 0,parent:r.parent}}return o.reactive(n)}get zeroColumn(){return["list","tree","list-expansion"].includes(this.config.view)}get numberedRowWidth(){return o.computed(()=>String(Math.ceil(this.rows.length/100)+1)+"ch")}cellData(t,n){return this.table[`${t}:${n}`]}setCellData(t,n,a){this.table[`${n}:${t}`]!==a&&(this.display[t].modified=!0),this.table[`${n}:${t}`]=a;const l=this.columns[n];return this.rows[t][l.name]=a,this.table[`${n}:${t}`]}toggleRowExpand(t){if(this.config.view==="tree"){this.display[t].childrenOpen=!this.display[t].childrenOpen;for(let n=this.rows.length-1;n>=0;n--)this.display[n].parent===t&&(this.display[n].open=!this.display[n].open,this.display[n].childrenOpen&&this.toggleRowExpand(n))}else this.config.view==="list-expansion"&&(this.display[t].expanded=!this.display[t].expanded)}}const ct={key:0,id:"resizable"},st={class:"atable-header-row",tabindex:"-1"},Q=o.defineComponent({__name:"ATableHeader",props:{columns:{},tableid:{}},setup(e){const t=o.inject(e.tableid),n=o.computed(()=>t.columns.some(l=>l.pinned)),a=l=>({minWidth:l.width||"40ch",textAlign:l.align||"center",width:t.config.fullWidth?"auto":null});return(l,r)=>l.columns.length?(o.openBlock(),o.createElementBlock("thead",ct,[o.createElementVNode("tr",st,[o.unref(t).zeroColumn?(o.openBlock(),o.createElementBlock("th",{key:0,id:"header-index",class:o.normalizeClass(n.value?"sticky-index":"")},null,2)):o.createCommentVNode("",!0),(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(l.columns,(d,i)=>(o.openBlock(),o.createElementBlock("th",{key:d.name,tabindex:"-1",style:o.normalizeStyle(a(d)),class:o.normalizeClass(d.pinned?"sticky-column":"")},[o.renderSlot(l.$slots,"default",{},()=>[o.createTextVNode(o.toDisplayString(d.label||String.fromCharCode(i+97).toUpperCase()),1)])],6))),128))])])):o.createCommentVNode("",!0)}}),Z=o.defineComponent({__name:"ATableModal",props:{colIndex:{},rowIndex:{},tableid:{}},setup(e){const t=n=>{n.stopPropagation()};return(n,a)=>(o.openBlock(),o.createElementBlock("div",{class:"amodal",tabindex:"-1",onClick:t,onInput:t},[o.renderSlot(n.$slots,"default")],32))}}),we=((e,t)=>{const n=e.__vccOpts||e;for(const[a,l]of t)n[a]=l;return n})(o.defineComponent({__name:"ATable",props:{id:{},modelValue:{},columns:{},rows:{default:()=>[]},config:{default:()=>new Object}},emits:["update:modelValue"],setup(e,{emit:t}){const n=t,a=o.useTemplateRef("table"),l=e.modelValue?e.modelValue:e.rows,r=new he(e.id,e.columns,l,e.config);o.provide(r.id,r),o.watch(()=>r.rows,c=>{n("update:modelValue",c)},{deep:!0}),o.onMounted(()=>{e.columns.some(c=>c.pinned)&&(d(),r.config.view==="tree"&&ce(a,d,{childList:!0,subtree:!0}))});const d=()=>{const c=a.value,f=c.rows[0],p=c.rows[1],u=f?Array.from(f.cells):[];for(const[s,m]of u.entries()){const b=p.cells[s];b&&(m.style.width=`${b.offsetWidth}px`)}for(const s of c.rows){let m=0;const b=[];for(const x of s.cells)(x.classList.contains("sticky-column")||x.classList.contains("sticky-index"))&&(x.style.left=`${m}px`,m+=x.offsetWidth,b.push(x));b.length>0&&b[b.length-1].classList.add("sticky-column-edge")}},i=c=>{var f;c.target instanceof Node&&(f=r.modal.parent)!=null&&f.contains(c.target)||r.modal.visible&&(r.modal.visible=!1)};return window.addEventListener("keydown",c=>{if(c.key==="Escape"&&r.modal.visible){r.modal.visible=!1;const f=r.modal.parent;f&&o.nextTick().then(()=>{f.focus()})}}),(c,f)=>o.withDirectives((o.openBlock(),o.createElementBlock("table",{ref:"table",class:"atable",style:o.normalizeStyle({width:o.unref(r).config.fullWidth?"100%":"auto"})},[o.renderSlot(c.$slots,"header",{data:o.unref(r)},()=>[o.createVNode(Q,{columns:o.unref(r).columns,tableid:o.unref(r).id},null,8,["columns","tableid"])],!0),o.createElementVNode("tbody",null,[o.renderSlot(c.$slots,"body",{data:o.unref(r)},()=>[(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(o.unref(r).rows,(p,u)=>(o.openBlock(),o.createBlock(U,{key:p.id,row:p,rowIndex:u,tableid:o.unref(r).id},{default:o.withCtx(()=>[(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(o.unref(r).columns,(s,m)=>(o.openBlock(),o.createBlock(G,{key:s.name,tableid:o.unref(r).id,col:s,spellcheck:"false",pinned:s.pinned,rowIndex:u,colIndex:m+(o.unref(r).zeroColumn?0:-1),component:s.cellComponent,style:o.normalizeStyle({textAlign:(s==null?void 0:s.align)||"center",minWidth:(s==null?void 0:s.width)||"40ch",width:o.unref(r).config.fullWidth?"auto":null})},null,8,["tableid","col","pinned","rowIndex","colIndex","component","style"]))),128))]),_:2},1032,["row","rowIndex","tableid"]))),128))],!0)]),o.renderSlot(c.$slots,"footer",{data:o.unref(r)},void 0,!0),o.renderSlot(c.$slots,"modal",{data:o.unref(r)},()=>[o.withDirectives(o.createVNode(Z,{colIndex:o.unref(r).modal.colIndex,rowIndex:o.unref(r).modal.rowIndex,tableid:o.unref(r).id,style:o.normalizeStyle({left:o.unref(r).modal.left+"px",top:o.unref(r).modal.top+"px",maxWidth:o.unref(r).modal.width+"px"})},{default:o.withCtx(()=>[(o.openBlock(),o.createBlock(o.resolveDynamicComponent(o.unref(r).modal.component),o.mergeProps({key:`${o.unref(r).modal.rowIndex}:${o.unref(r).modal.colIndex}`,colIndex:o.unref(r).modal.colIndex,rowIndex:o.unref(r).modal.rowIndex,tableid:o.unref(r).id},o.unref(r).modal.componentProps),null,16,["colIndex","rowIndex","tableid"]))]),_:1},8,["colIndex","rowIndex","tableid","style"]),[[o.vShow,o.unref(r).modal.visible]])],!0)],4)),[[o.unref(rt),i]])}}),[["__scopeId","data-v-2896bed9"]]);function dt(e){e.component("ACell",G),e.component("AExpansionRow",se),e.component("ARow",U),e.component("ATable",we),e.component("ATableHeader",Q),e.component("ATableModal",Z)}g.ACell=G,g.AExpansionRow=se,g.ARow=U,g.ATable=we,g.ATableHeader=Q,g.ATableModal=Z,g.TableDataStore=he,g.install=dt,Object.defineProperty(g,Symbol.toStringTag,{value:"Module"})});
2
3
  //# sourceMappingURL=atable.umd.cjs.map