@stonecrop/atable 0.3.8 → 0.3.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/index.css +1 -1
- package/dist/atable.d.ts +12 -11
- package/dist/atable.js +575 -542
- package/dist/atable.js.map +1 -1
- package/dist/atable.umd.cjs +2 -2
- package/dist/atable.umd.cjs.map +1 -1
- package/dist/src/stores/table.d.ts +6 -6
- package/dist/src/types/index.d.ts +6 -5
- package/dist/src/types/index.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/components/ACell.vue +7 -6
- package/src/components/ATable.vue +4 -9
- package/src/components/ATableModal.vue +25 -25
- package/src/types/index.ts +7 -5
package/dist/atable.umd.cjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
(function(
|
|
2
|
-
/*$vite$:1*/`,document.head.appendChild(ne);function re(e){return t.getCurrentScope()?(t.onScopeDispose(e),!0):!1}function W(e){return typeof e=="function"?e():t.unref(e)}const Ae=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const Ie=e=>e!=null,Te=Object.prototype.toString,$e=e=>Te.call(e)==="[object Object]",Me=()=>{},O=Ae?window:void 0;function L(e){var o;const n=W(e);return(o=n==null?void 0:n.$el)!=null?o:n}function D(...e){let o,n,r,s;if(typeof e[0]=="string"||Array.isArray(e[0])?([n,r,s]=e,o=O):[o,n,r,s]=e,!o)return Me;Array.isArray(n)||(n=[n]),Array.isArray(r)||(r=[r]);const d=[],l=()=>{d.forEach(c=>c()),d.length=0},i=(c,f,u,m)=>(c.addEventListener(f,u,m),()=>c.removeEventListener(f,u,m)),p=t.watch(()=>[L(o),W(s)],([c,f])=>{if(l(),!c)return;const u=$e(f)?{...f}:f;d.push(...n.flatMap(m=>r.map(x=>i(c,m,x,u))))},{immediate:!0,flush:"post"}),a=()=>{p(),l()};return re(a),a}function Re(){const e=t.ref(!1),o=t.getCurrentInstance();return o&&t.onMounted(()=>{e.value=!0},o),e}function Be(e){const o=Re();return t.computed(()=>(o.value,!!e()))}function Oe(e,o,n={}){const{window:r=O,...s}=n;let d;const l=Be(()=>r&&"MutationObserver"in r),i=()=>{d&&(d.disconnect(),d=void 0)},p=t.computed(()=>{const u=W(e),m=(Array.isArray(u)?u:[u]).map(L).filter(Ie);return new Set(m)}),a=t.watch(()=>p.value,u=>{i(),l.value&&u.size&&(d=new MutationObserver(o),u.forEach(m=>d.observe(m,s)))},{immediate:!0,flush:"post"}),c=()=>d==null?void 0:d.takeRecords(),f=()=>{a(),i()};return re(f),{isSupported:l,stop:f,takeRecords:c}}function Le(e={}){var o;const{window:n=O,deep:r=!0,triggerOnRemoval:s=!1}=e,d=(o=e.document)!=null?o:n==null?void 0:n.document,l=()=>{var a;let c=d==null?void 0:d.activeElement;if(r)for(;c!=null&&c.shadowRoot;)c=(a=c==null?void 0:c.shadowRoot)==null?void 0:a.activeElement;return c},i=t.ref(),p=()=>{i.value=l()};return n&&(D(n,"blur",a=>{a.relatedTarget===null&&p()},!0),D(n,"focus",p,!0)),s&&Oe(d,a=>{a.filter(c=>c.removedNodes.length).map(c=>Array.from(c.removedNodes)).flat().forEach(c=>{c===i.value&&p()})},{childList:!0,subtree:!0}),p(),i}const De="focusin",ze="focusout";function Pe(e,o={}){const{window:n=O}=o,r=t.computed(()=>L(e)),s=t.ref(!1),d=t.computed(()=>s.value),l=Le(o);return!n||!l.value?{focused:d}:(D(r,De,()=>s.value=!0),D(r,ze,()=>s.value=!1),{focused:d})}function Ne(e,{window:o=O,scrollTarget:n}={}){const r=t.ref(!1),s=()=>{if(!o)return;const d=o.document,l=L(e);if(!l)r.value=!1;else{const i=l.getBoundingClientRect();r.value=i.top<=(o.innerHeight||d.documentElement.clientHeight)&&i.left<=(o.innerWidth||d.documentElement.clientWidth)&&i.bottom>=0&&i.right>=0}};return t.watch(()=>L(e),()=>s(),{immediate:!0,flush:"post"}),o&&D(n||o,"scroll",s,{capture:!1,passive:!0}),r}const $=e=>{let o=Ne(e).value;return o=o&&e.offsetHeight>0,o},M=e=>e.tabIndex>=0,le=e=>{const o=e.target;return j(o)},j=e=>{var o;let n;if(e instanceof HTMLTableCellElement){const r=(o=e.parentElement)==null?void 0:o.previousElementSibling;if(r){const s=Array.from(r.children)[e.cellIndex];s&&(n=s)}}else if(e instanceof HTMLTableRowElement){const r=e.previousElementSibling;r&&(n=r)}return n&&(!M(n)||!$(n))?j(n):n},He=e=>{var o;const n=e.target;let r;if(n instanceof HTMLTableCellElement){const s=(o=n.parentElement)==null?void 0:o.parentElement;if(s){const d=s.firstElementChild,l=d==null?void 0:d.children[n.cellIndex];l&&(r=l)}}else if(n instanceof HTMLTableRowElement){const s=n.parentElement;if(s){const d=s.firstElementChild;d&&(r=d)}}return r&&(!M(r)||!$(r))?F(r):r},ae=e=>{const o=e.target;return F(o)},F=e=>{var o;let n;if(e instanceof HTMLTableCellElement){const r=(o=e.parentElement)==null?void 0:o.nextElementSibling;if(r){const s=Array.from(r.children)[e.cellIndex];s&&(n=s)}}else if(e instanceof HTMLTableRowElement){const r=e.nextElementSibling;r&&(n=r)}return n&&(!M(n)||!$(n))?F(n):n},Ve=e=>{var o;const n=e.target;let r;if(n instanceof HTMLTableCellElement){const s=(o=n.parentElement)==null?void 0:o.parentElement;if(s){const d=s.lastElementChild,l=d==null?void 0:d.children[n.cellIndex];l&&(r=l)}}else if(n instanceof HTMLTableRowElement){const s=n.parentElement;if(s){const d=s.lastElementChild;d&&(r=d)}}return r&&(!M(r)||!$(r))?j(r):r},se=e=>{const o=e.target;return q(o)},q=e=>{var o;let n;if(e.previousElementSibling)n=e.previousElementSibling;else{const r=(o=e.parentElement)==null?void 0:o.previousElementSibling;n=r==null?void 0:r.lastElementChild}return n&&(!M(n)||!$(n))?q(n):n},ce=e=>{const o=e.target;return U(o)},U=e=>{var o;let n;if(e.nextElementSibling)n=e.nextElementSibling;else{const r=(o=e.parentElement)==null?void 0:o.nextElementSibling;n=r==null?void 0:r.firstElementChild}return n&&(!M(n)||!$(n))?U(n):n},ie=e=>{const o=e.target.parentElement,n=o==null?void 0:o.firstElementChild;return n&&(!M(n)||!$(n))?U(n):n},de=e=>{const o=e.target.parentElement,n=o==null?void 0:o.lastElementChild;return n&&(!M(n)||!$(n))?q(n):n},H=["alt","control","shift","meta"],We={ArrowUp:"up",ArrowDown:"down",ArrowLeft:"left",ArrowRight:"right"},G={"keydown.up":e=>{const o=le(e);o&&(e.preventDefault(),e.stopPropagation(),o.focus())},"keydown.down":e=>{const o=ae(e);o&&(e.preventDefault(),e.stopPropagation(),o.focus())},"keydown.left":e=>{const o=se(e);e.preventDefault(),e.stopPropagation(),o&&o.focus()},"keydown.right":e=>{const o=ce(e);e.preventDefault(),e.stopPropagation(),o&&o.focus()},"keydown.control.up":e=>{const o=He(e);o&&(e.preventDefault(),e.stopPropagation(),o.focus())},"keydown.control.down":e=>{const o=Ve(e);o&&(e.preventDefault(),e.stopPropagation(),o.focus())},"keydown.control.left":e=>{const o=ie(e);o&&(e.preventDefault(),e.stopPropagation(),o.focus())},"keydown.control.right":e=>{const o=de(e);o&&(e.preventDefault(),e.stopPropagation(),o.focus())},"keydown.end":e=>{const o=de(e);o&&(e.preventDefault(),e.stopPropagation(),o.focus())},"keydown.enter":e=>{if(e.target instanceof HTMLTableCellElement){e.preventDefault(),e.stopPropagation();const o=ae(e);o&&o.focus()}},"keydown.shift.enter":e=>{if(e.target instanceof HTMLTableCellElement){e.preventDefault(),e.stopPropagation();const o=le(e);o&&o.focus()}},"keydown.home":e=>{const o=ie(e);o&&(e.preventDefault(),e.stopPropagation(),o.focus())},"keydown.tab":e=>{const o=ce(e);o&&(e.preventDefault(),e.stopPropagation(),o.focus())},"keydown.shift.tab":e=>{const o=se(e);o&&(e.preventDefault(),e.stopPropagation(),o.focus())}};function Y(e){const o=l=>{let i=null;return l.parent&&(typeof l.parent=="string"?i=document.querySelector(l.parent):l.parent instanceof HTMLElement?i=l.parent:i=l.parent.value),i},n=l=>{var i;const p=o(l);let a=[];if(typeof l.selectors=="string")a=p?Array.from(p.querySelectorAll(l.selectors)):Array.from(document.querySelectorAll(l.selectors));else if(Array.isArray(l.selectors))for(const c of l.selectors)c instanceof HTMLElement?a.push(c):a.push(c.$el);else if(l.selectors instanceof HTMLElement)a.push(l.selectors);else if((i=l.selectors)!=null&&i.value)if(Array.isArray(l.selectors.value))for(const c of l.selectors.value)c instanceof HTMLElement?a.push(c):a.push(c.$el);else a.push(l.selectors.value);return a},r=l=>{const i=o(l);let p=[];return l.selectors?p=n(l):i&&(p=Array.from(i.children).filter(a=>M(a)&&$(a))),p},s=l=>i=>{const p=We[i.key]||i.key.toLowerCase();if(H.includes(p))return;const a=l.handlers||G;for(const c of Object.keys(a)){const[f,...u]=c.split(".");if(f==="keydown"&&u.includes(p)){const m=a[c],x=u.filter(b=>H.includes(b)),w=H.some(b=>{const v=b.charAt(0).toUpperCase()+b.slice(1);return i.getModifierState(v)});if(x.length>0){if(w){for(const b of H)if(u.includes(b)){const v=b.charAt(0).toUpperCase()+b.slice(1);i.getModifierState(v)&&m(i)}}}else w||m(i)}}},d=[];t.onMounted(()=>{for(const l of e){const i=o(l),p=r(l),a=s(l),c=i?[i]:p;for(const f of c){const{focused:u}=Pe(t.ref(f)),m=t.watch(u,x=>{x?f.addEventListener("keydown",a):f.removeEventListener("keydown",a)});d.push(m)}}}),t.onBeforeUnmount(()=>{for(const l of d)l()})}function z(e){return t.getCurrentScope()?(t.onScopeDispose(e),!0):!1}function I(e){return typeof e=="function"?e():t.unref(e)}const X=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const je=e=>e!=null,Fe=Object.prototype.toString,fe=e=>Fe.call(e)==="[object Object]",R=()=>{},J=qe();function qe(){var e,o;return X&&((e=window==null?void 0:window.navigator)==null?void 0:e.userAgent)&&(/iP(?:ad|hone|od)/.test(window.navigator.userAgent)||((o=window==null?void 0:window.navigator)==null?void 0:o.maxTouchPoints)>2&&/iPad|Macintosh/.test(window==null?void 0:window.navigator.userAgent))}function Ue(e){return t.getCurrentInstance()}function Ge(...e){if(e.length!==1)return t.toRef(...e);const o=e[0];return typeof o=="function"?t.readonly(t.customRef(()=>({get:o,set:R}))):t.ref(o)}function Ye(e,o=!0,n){Ue()?t.onMounted(e,n):o?e():t.nextTick(e)}const Q=X?window:void 0;function B(e){var o;const n=I(e);return(o=n==null?void 0:n.$el)!=null?o:n}function ue(...e){let o,n,r,s;if(typeof e[0]=="string"||Array.isArray(e[0])?([n,r,s]=e,o=Q):[o,n,r,s]=e,!o)return R;Array.isArray(n)||(n=[n]),Array.isArray(r)||(r=[r]);const d=[],l=()=>{d.forEach(c=>c()),d.length=0},i=(c,f,u,m)=>(c.addEventListener(f,u,m),()=>c.removeEventListener(f,u,m)),p=t.watch(()=>[B(o),I(s)],([c,f])=>{if(l(),!c)return;const u=fe(f)?{...f}:f;d.push(...n.flatMap(m=>r.map(x=>i(c,m,x,u))))},{immediate:!0,flush:"post"}),a=()=>{p(),l()};return z(a),a}function Xe(){const e=t.ref(!1),o=t.getCurrentInstance();return o&&t.onMounted(()=>{e.value=!0},o),e}function me(e){const o=Xe();return t.computed(()=>(o.value,!!e()))}function pe(e,o,n={}){const{window:r=Q,...s}=n;let d;const l=me(()=>r&&"MutationObserver"in r),i=()=>{d&&(d.disconnect(),d=void 0)},p=t.computed(()=>{const u=I(e),m=(Array.isArray(u)?u:[u]).map(B).filter(je);return new Set(m)}),a=t.watch(()=>p.value,u=>{i(),l.value&&u.size&&(d=new MutationObserver(o),u.forEach(m=>d.observe(m,s)))},{immediate:!0,flush:"post"}),c=()=>d==null?void 0:d.takeRecords(),f=()=>{a(),i()};return z(f),{isSupported:l,stop:f,takeRecords:c}}function Je(e,o,n={}){const{window:r=Q,...s}=n;let d;const l=me(()=>r&&"ResizeObserver"in r),i=()=>{d&&(d.disconnect(),d=void 0)},p=t.computed(()=>{const f=I(e);return Array.isArray(f)?f.map(u=>B(u)):[B(f)]}),a=t.watch(p,f=>{if(i(),l.value&&r){d=new ResizeObserver(o);for(const u of f)u&&d.observe(u,s)}},{immediate:!0,flush:"post"}),c=()=>{i(),a()};return z(c),{isSupported:l,stop:c}}function be(e,o={}){const{reset:n=!0,windowResize:r=!0,windowScroll:s=!0,immediate:d=!0,updateTiming:l="sync"}=o,i=t.ref(0),p=t.ref(0),a=t.ref(0),c=t.ref(0),f=t.ref(0),u=t.ref(0),m=t.ref(0),x=t.ref(0);function w(){const v=B(e);if(!v){n&&(i.value=0,p.value=0,a.value=0,c.value=0,f.value=0,u.value=0,m.value=0,x.value=0);return}const E=v.getBoundingClientRect();i.value=E.height,p.value=E.bottom,a.value=E.left,c.value=E.right,f.value=E.top,u.value=E.width,m.value=E.x,x.value=E.y}function b(){l==="sync"?w():l==="next-frame"&&requestAnimationFrame(()=>w())}return Je(e,b),t.watch(()=>B(e),v=>!v&&b()),pe(e,b,{attributeFilter:["style","class"]}),s&&ue("scroll",b,{capture:!0,passive:!0}),r&&ue("resize",b,{passive:!0}),Ye(()=>{d&&b()}),{height:i,bottom:p,left:a,right:c,top:f,width:u,x:m,y:x,update:b}}const Qe=e=>{const o=new DOMParser().parseFromString(e,"text/html");return Array.from(o.body.childNodes).some(n=>n.nodeType===1)},Ze=["data-colindex","data-rowindex","data-editable","contenteditable","tabindex"],Ke=["innerHTML"],_e={key:2},Z=t.defineComponent({__name:"ACell",props:{colIndex:{},rowIndex:{},store:{},addNavigation:{type:[Boolean,Object],default:!0},tabIndex:{default:0},pinned:{type:Boolean}},emits:["cellInput"],setup(e,{emit:o}){const n=o,r=t.useTemplateRef("cell"),{width:s,height:d}=be(r),l=e.store.getCellData(e.colIndex,e.rowIndex),i=t.ref(""),p=t.ref(!1),a=e.store.columns[e.colIndex],c=e.store.rows[e.rowIndex],f=a.align||"center",u=a.width||"40ch",m=t.computed(()=>e.store.getCellDisplayValue(e.colIndex,e.rowIndex)),x=t.computed(()=>typeof m.value=="string"?Qe(m.value):!1),w=t.computed(()=>{var y;return{textAlign:f,width:u,backgroundColor:p.value?"var(--sc-cell-changed-color)":"inherit",fontWeight:p.value?"bold":"inherit",paddingLeft:e.store.getIndent(e.colIndex,(y=e.store.display[e.rowIndex])==null?void 0:y.indent)}}),b=()=>{a.mask,a.modalComponent&&e.store.$patch(y=>{y.modal.visible=!0,y.modal.colIndex=e.colIndex,y.modal.rowIndex=e.rowIndex,y.modal.parent=r.value,y.modal.top=r.value.offsetTop+r.value.offsetHeight,y.modal.left=r.value.offsetLeft,y.modal.width=s.value,y.modal.height=d.value,typeof a.modalComponent=="function"?y.modal.component=a.modalComponent({table:y.table,row:c,column:a}):y.modal.component=a.modalComponent,y.modal.componentProps=a.modalComponentExtraProps})};if(e.addNavigation){let y={...G,"keydown.f2":b,"keydown.alt.up":b,"keydown.alt.down":b,"keydown.alt.left":b,"keydown.alt.right":b};typeof e.addNavigation=="object"&&(y={...y,...e.addNavigation}),Y([{selectors:r,handlers:y}])}const v=()=>{r.value&&(i.value=r.value.textContent)},E=y=>{const T=y.target;T.textContent!==i.value&&(n("cellInput",e.colIndex,e.rowIndex,T.textContent,i.value),i.value=T.textContent,a.format?(p.value=T.textContent!==e.store.getFormattedValue(e.colIndex,e.rowIndex,l),e.store.setCellText(e.colIndex,e.rowIndex,T.textContent)):(p.value=T.textContent!==l,e.store.setCellData(e.colIndex,e.rowIndex,T.textContent)))};return(y,T)=>(t.openBlock(),t.createElementBlock("td",{ref:"cell","data-colindex":y.colIndex,"data-rowindex":y.rowIndex,"data-editable":t.unref(a).edit,contenteditable:t.unref(a).edit,tabindex:y.tabIndex,spellcheck:!1,style:t.normalizeStyle(w.value),onFocus:v,onPaste:E,onInput:E,onClick:b,class:t.normalizeClass(["atable-cell",y.pinned?"sticky-column":""])},[t.unref(a).cellComponent?(t.openBlock(),t.createBlock(t.resolveDynamicComponent(t.unref(a).cellComponent),t.mergeProps({key:0,value:m.value},t.unref(a).cellComponentProps),null,16,["value"])):x.value?(t.openBlock(),t.createElementBlock("span",{key:1,innerHTML:m.value},null,8,Ke)):(t.openBlock(),t.createElementBlock("span",_e,t.toDisplayString(m.value),1))],46,Ze))}}),et=["tabindex"],tt=["tabindex"],ot=["colspan"],we=t.defineComponent({__name:"AExpansionRow",props:{rowIndex:{},store:{},tabIndex:{default:()=>-1},addNavigation:{type:[Boolean,Object]}},setup(e){const o=t.useTemplateRef("rowEl"),n=t.computed(()=>e.store.display[e.rowIndex].expanded?"▼":"►");if(e.addNavigation){const r={"keydown.control.g":s=>{s.stopPropagation(),s.preventDefault(),e.store.toggleRowExpand(e.rowIndex)}};typeof e.addNavigation=="object"&&Object.assign(r,e.addNavigation),Y([{selectors:o,handlers:r}])}return(r,s)=>(t.openBlock(),t.createElementBlock(t.Fragment,null,[t.createElementVNode("tr",t.mergeProps(r.$attrs,{ref:"rowEl",tabindex:r.tabIndex,class:"expandable-row"}),[t.createElementVNode("td",{tabIndex:-1,onClick:s[0]||(s[0]=d=>r.store.toggleRowExpand(r.rowIndex)),class:"row-index"},t.toDisplayString(n.value),1),t.renderSlot(r.$slots,"row")],16,et),r.store.display[r.rowIndex].expanded?(t.openBlock(),t.createElementBlock("tr",{key:0,ref:"rowExpanded",tabindex:r.tabIndex,class:"expanded-row"},[t.createElementVNode("td",{tabIndex:-1,colspan:r.store.columns.length+1,class:"expanded-row-content"},[t.renderSlot(r.$slots,"content")],8,ot)],8,tt)):t.createCommentVNode("",!0)],64))}}),nt=["tabindex"],K=t.defineComponent({__name:"ARow",props:{rowIndex:{},store:{},tabIndex:{default:()=>-1},addNavigation:{type:[Boolean,Object],default:!1}},setup(e){const o=t.useTemplateRef("rowEl"),n=t.computed(()=>e.store.isRowVisible(e.rowIndex)),r=t.computed(()=>e.store.getRowExpandSymbol(e.rowIndex));if(e.addNavigation){let s=G;typeof e.addNavigation=="object"&&(s={...s,...e.addNavigation}),Y([{selectors:o,handlers:s}])}return(s,d)=>t.withDirectives((t.openBlock(),t.createElementBlock("tr",{ref:"rowEl",tabindex:s.tabIndex,class:"table-row"},[s.store.config.view!=="uncounted"?t.renderSlot(s.$slots,"index",{key:0},()=>[s.store.config.view==="list"?(t.openBlock(),t.createElementBlock("td",{key:0,tabIndex:-1,class:t.normalizeClass(["list-index",s.store.hasPinnedColumns?"sticky-index":""])},t.toDisplayString(s.rowIndex+1),3)):s.store.config.view==="tree"?(t.openBlock(),t.createElementBlock("td",{key:1,tabIndex:-1,class:t.normalizeClass(["tree-index",s.store.hasPinnedColumns?"sticky-index":""]),onClick:d[0]||(d[0]=l=>s.store.toggleRowExpand(s.rowIndex))},t.toDisplayString(r.value),3)):t.createCommentVNode("",!0)]):t.createCommentVNode("",!0),t.renderSlot(s.$slots,"default")],8,nt)),[[t.vShow,n.value]])}}),ge=X?window:void 0;function P(e){var o;const n=I(e);return(o=n==null?void 0:n.$el)!=null?o:n}function V(...e){let o,n,r,s;if(typeof e[0]=="string"||Array.isArray(e[0])?([n,r,s]=e,o=ge):[o,n,r,s]=e,!o)return R;Array.isArray(n)||(n=[n]),Array.isArray(r)||(r=[r]);const d=[],l=()=>{d.forEach(c=>c()),d.length=0},i=(c,f,u,m)=>(c.addEventListener(f,u,m),()=>c.removeEventListener(f,u,m)),p=t.watch(()=>[P(o),I(s)],([c,f])=>{if(l(),!c)return;const u=fe(f)?{...f}:f;d.push(...n.flatMap(m=>r.map(x=>i(c,m,x,u))))},{immediate:!0,flush:"post"}),a=()=>{p(),l()};return z(a),a}let he=!1;function ye(e,o,n={}){const{window:r=ge,ignore:s=[],capture:d=!0,detectIframe:l=!1}=n;if(!r)return R;J&&!he&&(he=!0,Array.from(r.document.body.children).forEach(w=>w.addEventListener("click",R)),r.document.documentElement.addEventListener("click",R));let i=!0;const p=w=>I(s).some(b=>{if(typeof b=="string")return Array.from(r.document.querySelectorAll(b)).some(v=>v===w.target||w.composedPath().includes(v));{const v=P(b);return v&&(w.target===v||w.composedPath().includes(v))}});function a(w){const b=I(w);return b&&b.$.subTree.shapeFlag===16}function c(w,b){const v=I(w),E=v.$.subTree&&v.$.subTree.children;return E==null||!Array.isArray(E)?!1:E.some(y=>y.el===b.target||b.composedPath().includes(y.el))}const f=w=>{const b=P(e);if(w.target!=null&&!(!(b instanceof Element)&&a(e)&&c(e,w))&&!(!b||b===w.target||w.composedPath().includes(b))){if(w.detail===0&&(i=!p(w)),!i){i=!0;return}o(w)}};let u=!1;const m=[V(r,"click",w=>{u||(u=!0,setTimeout(()=>{u=!1},0),f(w))},{passive:!0,capture:d}),V(r,"pointerdown",w=>{const b=P(e);i=!p(w)&&!!(b&&!w.composedPath().includes(b))},{passive:!0}),l&&V(r,"blur",w=>{setTimeout(()=>{var b;const v=P(e);((b=r.document.activeElement)==null?void 0:b.tagName)==="IFRAME"&&!(v!=null&&v.contains(r.document.activeElement))&&o(w)},0)})].filter(Boolean);return()=>m.forEach(w=>w())}const rt={mounted(e,o){const n=!o.modifiers.bubble;if(typeof o.value=="function")e.__onClickOutside_stop=ye(e,o.value,{capture:n});else{const[r,s]=o.value;e.__onClickOutside_stop=ye(e,r,Object.assign({capture:n},s))}},unmounted(e){e.__onClickOutside_stop()}};function _(e){return typeof Window<"u"&&e instanceof Window?e.document.documentElement:typeof Document<"u"&&e instanceof Document?e.documentElement:e}function xe(e){const o=window.getComputedStyle(e);if(o.overflowX==="scroll"||o.overflowY==="scroll"||o.overflowX==="auto"&&e.clientWidth<e.scrollWidth||o.overflowY==="auto"&&e.clientHeight<e.scrollHeight)return!0;{const n=e.parentNode;return!n||n.tagName==="BODY"?!1:xe(n)}}function lt(e){const o=e||window.event,n=o.target;return xe(n)?!1:o.touches.length>1?!0:(o.preventDefault&&o.preventDefault(),!1)}const ee=new WeakMap;function at(e,o=!1){const n=t.ref(o);let r=null,s="";t.watch(Ge(e),i=>{const p=_(I(i));if(p){const a=p;if(ee.get(a)||ee.set(a,a.style.overflow),a.style.overflow!=="hidden"&&(s=a.style.overflow),a.style.overflow==="hidden")return n.value=!0;if(n.value)return a.style.overflow="hidden"}},{immediate:!0});const d=()=>{const i=_(I(e));!i||n.value||(J&&(r=V(i,"touchmove",p=>{lt(p)},{passive:!1})),i.style.overflow="hidden",n.value=!0)},l=()=>{const i=_(I(e));!i||!n.value||(J&&(r==null||r()),i.style.overflow=s,ee.delete(i),n.value=!1)};return z(l),t.computed({get(){return n.value},set(i){i?d():l()}})}function st(){let e=!1;const o=t.ref(!1);return(n,r)=>{if(o.value=r.value,e)return;e=!0;const s=at(n,r.value);t.watch(o,d=>s.value=d)}}st();const ct={key:0,id:"resizable"},it={class:"atable-header-row",tabindex:"-1"},te=t.defineComponent({__name:"ATableHeader",props:{columns:{},store:{}},setup(e){return(o,n)=>o.columns.length?(t.openBlock(),t.createElementBlock("thead",ct,[t.createElementVNode("tr",it,[o.store.zeroColumn?(t.openBlock(),t.createElementBlock("th",{key:0,id:"header-index",class:t.normalizeClass([[o.store.hasPinnedColumns?"sticky-index":"",o.store.config.view==="tree"?"tree-index":"",o.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(o.columns,(r,s)=>(t.openBlock(),t.createElementBlock("th",{key:r.name,tabindex:"-1",style:t.normalizeStyle(o.store.getHeaderCellStyle(r)),class:t.normalizeClass(r.pinned?"sticky-column":"")},[t.renderSlot(o.$slots,"default",{},()=>[t.createTextVNode(t.toDisplayString(r.label||String.fromCharCode(s+97).toUpperCase()),1)])],6))),128))])])):t.createCommentVNode("",!0)}}),oe=t.defineComponent({__name:"ATableModal",props:{colIndex:{},rowIndex:{},store:{},container:{}},setup(e){const o=t.useTemplateRef("amodal"),{width:n,height:r}=be(o),s=t.computed(()=>{var c,f;const l=((c=e.container)==null?void 0:c.offsetWidth)||0,i=((f=e.container)==null?void 0:f.offsetHeight)||0,p=e.store.modal.left+n.value>l?e.store.modal.left-(n.value-e.store.modal.width):e.store.modal.left,a=e.store.modal.top+r.value>i?e.store.modal.top-r.value-e.store.modal.height:e.store.modal.top;return{left:`${p}px`,top:`${a}px`}}),d=l=>{l.stopPropagation()};return(l,i)=>(t.openBlock(),t.createElementBlock("div",{class:"amodal",ref:"amodal",tabindex:"-1",onClick:d,onInput:d,style:t.normalizeStyle(s.value)},[t.renderSlot(l.$slots,"default")],36))}}),ve=e=>{const o=e.id||crypto.randomUUID();return Se.defineStore(`table-${o}`,()=>{const r=()=>{const g={};for(const[h,k]of d.value.entries())for(const[C,A]of l.value.entries())g[`${h}:${C}`]=A[k.name];return g},s=g=>{const h=[Object.assign({},{rowModified:!1})];if(g&&"0:0"in g)return g;const k=new Set;for(let C=l.value.length-1;C>=0;C--){const A=l.value[C];A.parent&&k.add(A.parent),h[C]={childrenOpen:!1,expanded:!1,indent:A.indent||0,isParent:k.has(C),isRoot:A.parent===null||A.parent===void 0,rowModified:!1,open:A.parent===null||A.parent===void 0,parent:A.parent}}return h},d=t.ref(e.columns),l=t.ref(e.rows),i=t.ref(e.config||{}),p=t.ref(e.table||r()),a=t.ref(s(e.display)),c=t.ref(e.modal||{visible:!1}),f=t.ref({}),u=t.computed(()=>d.value.some(g=>g.pinned)),m=t.computed(()=>`${Math.ceil(l.value.length/100+1)}ch`),x=t.computed(()=>i.value.view?["list","tree","list-expansion"].includes(i.value.view):!1),w=(g,h)=>p.value[`${g}:${h}`],b=(g,h,k)=>{const C=`${g}:${h}`,A=d.value[g];p.value[C]!==k&&(a.value[h].rowModified=!0),p.value[C]=k,l.value[h][A.name]=k},v=(g,h,k)=>{const C=`${g}:${h}`;p.value[C]!==k&&(a.value[h].rowModified=!0,f.value[C]=k)},E=g=>({minWidth:g.width||"40ch",textAlign:g.align||"center",width:i.value.fullWidth?"auto":void 0}),y=g=>i.value.view!=="tree"||a.value[g].isRoot||a.value[g].open,T=g=>i.value.view!=="tree"?"":a.value[g].isRoot||a.value[g].isParent?a.value[g].childrenOpen?"-":"+":"",Ee=g=>{if(i.value.view==="tree"){a.value[g].childrenOpen=!a.value[g].childrenOpen;for(let h=l.value.length-1;h>=0;h--)a.value[h].parent===g&&(a.value[h].open=!a.value[h].open,a.value[h].childrenOpen&&Ee(h))}else i.value.view==="list-expansion"&&(a.value[g].expanded=!a.value[g].expanded)},ft=(g,h)=>{const k=w(g,h);return Ce(g,h,k)},Ce=(g,h,k)=>{const C=d.value[g],A=l.value[h],N=C.format;return N?typeof N=="function"?N(k,{table:p.value,row:A,column:C}):typeof N=="string"?Function(`"use strict";return (${N})`)()(k,{table:p.value,row:A,column:C}):k:k};return{columns:d,config:i,display:a,modal:c,rows:l,table:p,updates:f,hasPinnedColumns:u,numberedRowWidth:m,zeroColumn:x,closeModal:g=>{var h;g.target instanceof Node&&(h=c.value.parent)!=null&&h.contains(g.target)||c.value.visible&&(c.value.visible=!1)},getCellData:w,getCellDisplayValue:ft,getFormattedValue:Ce,getHeaderCellStyle:E,getIndent:(g,h)=>h&&g===0&&h>0?`${h}ch`:"inherit",getRowExpandSymbol:T,isRowVisible:y,setCellData:b,setCellText:v,toggleRowExpand:Ee}})()},ke=((e,o)=>{const n=e.__vccOpts||e;for(const[r,s]of o)n[r]=s;return n})(t.defineComponent({__name:"ATable",props:{id:{},modelValue:{},columns:{},rows:{default:()=>[]},config:{default:()=>new Object}},emits:["update:modelValue","cellUpdate"],setup(e,{expose:o,emit:n}){const r=n,s=t.useTemplateRef("table"),d=e.modelValue?e.modelValue:e.rows,l=ve({columns:e.columns,rows:d,id:e.id,config:e.config});l.$onAction(({name:a,store:c,args:f,after:u})=>{if(a==="setCellData"){const[m,x,w]=f,b=c.getCellData(m,x);u(()=>{r("cellUpdate",m,x,w,b)})}}),t.watch(()=>l.rows,a=>{r("update:modelValue",a)},{deep:!0}),t.onMounted(()=>{e.columns.some(a=>a.pinned)&&(p(),l.config.view==="tree"&&pe(s,p,{childList:!0,subtree:!0}))});const i=(a,c,f,u)=>{r("cellUpdate",a,c,f,u)},p=()=>{const a=s.value,c=a.rows[0],f=a.rows[1],u=c?Array.from(c.cells):[];for(const[m,x]of u.entries()){const w=f==null?void 0:f.cells[m];w&&(x.style.width=`${w.offsetWidth}px`)}for(const m of a.rows){let x=0;const w=[];for(const b of m.cells)(b.classList.contains("sticky-column")||b.classList.contains("sticky-index"))&&(b.style.left=`${x}px`,x+=b.offsetWidth,w.push(b));w.length>0&&w[w.length-1].classList.add("sticky-column-edge")}};return window.addEventListener("keydown",a=>{if(a.key==="Escape"&&l.modal.visible){l.modal.visible=!1;const c=l.modal.parent;c&&t.nextTick().then(()=>{c.focus()})}}),o({store:l}),(a,c)=>t.withDirectives((t.openBlock(),t.createElementBlock("table",{ref:"table",class:"atable",style:t.normalizeStyle({width:t.unref(l).config.fullWidth?"100%":"auto"})},[t.renderSlot(a.$slots,"header",{data:t.unref(l)},()=>[t.createVNode(te,{columns:t.unref(l).columns,store:t.unref(l)},null,8,["columns","store"])],!0),t.createElementVNode("tbody",null,[t.renderSlot(a.$slots,"body",{data:t.unref(l)},()=>[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(t.unref(l).rows,(f,u)=>(t.openBlock(),t.createBlock(K,{key:f.id,row:f,rowIndex:u,store:t.unref(l)},{default:t.withCtx(()=>[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(t.unref(l).columns,(m,x)=>(t.openBlock(),t.createBlock(Z,{key:m.name,store:t.unref(l),col:m,spellcheck:"false",pinned:m.pinned,rowIndex:u,colIndex:x,component:m.cellComponent,style:t.normalizeStyle({textAlign:(m==null?void 0:m.align)||"center",minWidth:(m==null?void 0:m.width)||"40ch",width:t.unref(l).config.fullWidth?"auto":null}),onCellInput:i},null,8,["store","col","pinned","rowIndex","colIndex","component","style"]))),128))]),_:2},1032,["row","rowIndex","store"]))),128))],!0)]),t.renderSlot(a.$slots,"footer",{data:t.unref(l)},void 0,!0),t.renderSlot(a.$slots,"modal",{data:t.unref(l)},()=>[t.withDirectives(t.createVNode(oe,{colIndex:t.unref(l).modal.colIndex,rowIndex:t.unref(l).modal.rowIndex,store:t.unref(l),container:t.unref(s)},{default:t.withCtx(()=>[(t.openBlock(),t.createBlock(t.resolveDynamicComponent(t.unref(l).modal.component),t.mergeProps({key:`${t.unref(l).modal.rowIndex}:${t.unref(l).modal.colIndex}`,colIndex:t.unref(l).modal.colIndex,rowIndex:t.unref(l).modal.rowIndex,store:t.unref(l)},t.unref(l).modal.componentProps),null,16,["colIndex","rowIndex","store"]))]),_:1},8,["colIndex","rowIndex","store","container"]),[[t.vShow,t.unref(l).modal.visible]])],!0)],4)),[[t.unref(rt),t.unref(l).closeModal]])}}),[["__scopeId","data-v-7480394f"]]);function dt(e){e.component("ACell",Z),e.component("AExpansionRow",we),e.component("ARow",K),e.component("ATable",ke),e.component("ATableHeader",te),e.component("ATableModal",oe)}S.ACell=Z,S.AExpansionRow=we,S.ARow=K,S.ATable=ke,S.ATableHeader=te,S.ATableModal=oe,S.createTableStore=ve,S.install=dt,Object.defineProperty(S,Symbol.toStringTag,{value:"Module"})});
|
|
1
|
+
(function(C,t){typeof exports=="object"&&typeof module<"u"?t(exports,require("vue"),require("pinia")):typeof define=="function"&&define.amd?define(["exports","vue","pinia"],t):(C=typeof globalThis<"u"?globalThis:C||self,t(C["@stonecrop/atable"]={},C.Vue,C.pinia))})(this,function(C,t,Se){"use strict";var le=document.createElement("style");le.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}.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}.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);display:flex}.expandable-row>td:first-child{border-left:4px solid var(--sc-row-border-color)}.expanded-row{display:flex;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}.table-row{border-top:1px solid var(--sc-row-border-color);display:flex;background-color:#fff}.table-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-header-row{display:flex}.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)}#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-20);--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-btn-border: #cccccc;--sc-btn-color: white;--sc-btn-hover: #f2f2f2;--sc-btn-label-color: black}.amodal{position:fixed;background-color:var(--sc-row-color-zebra-dark);z-index:1000}.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}[data-v-bd5101d3]: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-20);--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-btn-border: #cccccc;--sc-btn-color: white;--sc-btn-hover: #f2f2f2;--sc-btn-label-color: black}.atable[data-v-bd5101d3]{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}.atable th[data-v-bd5101d3]{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-bd5101d3]:focus{outline:none}
|
|
2
|
+
/*$vite$:1*/`,document.head.appendChild(le);function ae(e){return t.getCurrentScope()?(t.onScopeDispose(e),!0):!1}function j(e){return typeof e=="function"?e():t.unref(e)}const Ae=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const Ie=e=>e!=null,Te=Object.prototype.toString,Me=e=>Te.call(e)==="[object Object]",$e=()=>{},O=Ae?window:void 0;function L(e){var o;const n=j(e);return(o=n==null?void 0:n.$el)!=null?o:n}function D(...e){let o,n,r,c;if(typeof e[0]=="string"||Array.isArray(e[0])?([n,r,c]=e,o=O):[o,n,r,c]=e,!o)return $e;Array.isArray(n)||(n=[n]),Array.isArray(r)||(r=[r]);const i=[],l=()=>{i.forEach(d=>d()),i.length=0},a=(d,f,m,p)=>(d.addEventListener(f,m,p),()=>d.removeEventListener(f,m,p)),u=t.watch(()=>[L(o),j(c)],([d,f])=>{if(l(),!d)return;const m=Me(f)?{...f}:f;i.push(...n.flatMap(p=>r.map(y=>a(d,p,y,m))))},{immediate:!0,flush:"post"}),s=()=>{u(),l()};return ae(s),s}function Re(){const e=t.ref(!1),o=t.getCurrentInstance();return o&&t.onMounted(()=>{e.value=!0},o),e}function Be(e){const o=Re();return t.computed(()=>(o.value,!!e()))}function Oe(e,o,n={}){const{window:r=O,...c}=n;let i;const l=Be(()=>r&&"MutationObserver"in r),a=()=>{i&&(i.disconnect(),i=void 0)},u=t.computed(()=>{const m=j(e),p=(Array.isArray(m)?m:[m]).map(L).filter(Ie);return new Set(p)}),s=t.watch(()=>u.value,m=>{a(),l.value&&m.size&&(i=new MutationObserver(o),m.forEach(p=>i.observe(p,c)))},{immediate:!0,flush:"post"}),d=()=>i==null?void 0:i.takeRecords(),f=()=>{s(),a()};return ae(f),{isSupported:l,stop:f,takeRecords:d}}function Le(e={}){var o;const{window:n=O,deep:r=!0,triggerOnRemoval:c=!1}=e,i=(o=e.document)!=null?o:n==null?void 0:n.document,l=()=>{var s;let d=i==null?void 0:i.activeElement;if(r)for(;d!=null&&d.shadowRoot;)d=(s=d==null?void 0:d.shadowRoot)==null?void 0:s.activeElement;return d},a=t.ref(),u=()=>{a.value=l()};return n&&(D(n,"blur",s=>{s.relatedTarget===null&&u()},!0),D(n,"focus",u,!0)),c&&Oe(i,s=>{s.filter(d=>d.removedNodes.length).map(d=>Array.from(d.removedNodes)).flat().forEach(d=>{d===a.value&&u()})},{childList:!0,subtree:!0}),u(),a}const De="focusin",ze="focusout";function Pe(e,o={}){const{window:n=O}=o,r=t.computed(()=>L(e)),c=t.ref(!1),i=t.computed(()=>c.value),l=Le(o);return!n||!l.value?{focused:i}:(D(r,De,()=>c.value=!0),D(r,ze,()=>c.value=!1),{focused:i})}function We(e,{window:o=O,scrollTarget:n}={}){const r=t.ref(!1),c=()=>{if(!o)return;const i=o.document,l=L(e);if(!l)r.value=!1;else{const a=l.getBoundingClientRect();r.value=a.top<=(o.innerHeight||i.documentElement.clientHeight)&&a.left<=(o.innerWidth||i.documentElement.clientWidth)&&a.bottom>=0&&a.right>=0}};return t.watch(()=>L(e),()=>c(),{immediate:!0,flush:"post"}),o&&D(n||o,"scroll",c,{capture:!1,passive:!0}),r}const T=e=>{let o=We(e).value;return o=o&&e.offsetHeight>0,o},M=e=>e.tabIndex>=0,se=e=>{const o=e.target;return F(o)},F=e=>{var o;let n;if(e instanceof HTMLTableCellElement){const r=(o=e.parentElement)==null?void 0:o.previousElementSibling;if(r){const c=Array.from(r.children)[e.cellIndex];c&&(n=c)}}else if(e instanceof HTMLTableRowElement){const r=e.previousElementSibling;r&&(n=r)}return n&&(!M(n)||!T(n))?F(n):n},He=e=>{var o;const n=e.target;let r;if(n instanceof HTMLTableCellElement){const c=(o=n.parentElement)==null?void 0:o.parentElement;if(c){const i=c.firstElementChild,l=i==null?void 0:i.children[n.cellIndex];l&&(r=l)}}else if(n instanceof HTMLTableRowElement){const c=n.parentElement;if(c){const i=c.firstElementChild;i&&(r=i)}}return r&&(!M(r)||!T(r))?q(r):r},ce=e=>{const o=e.target;return q(o)},q=e=>{var o;let n;if(e instanceof HTMLTableCellElement){const r=(o=e.parentElement)==null?void 0:o.nextElementSibling;if(r){const c=Array.from(r.children)[e.cellIndex];c&&(n=c)}}else if(e instanceof HTMLTableRowElement){const r=e.nextElementSibling;r&&(n=r)}return n&&(!M(n)||!T(n))?q(n):n},Ne=e=>{var o;const n=e.target;let r;if(n instanceof HTMLTableCellElement){const c=(o=n.parentElement)==null?void 0:o.parentElement;if(c){const i=c.lastElementChild,l=i==null?void 0:i.children[n.cellIndex];l&&(r=l)}}else if(n instanceof HTMLTableRowElement){const c=n.parentElement;if(c){const i=c.lastElementChild;i&&(r=i)}}return r&&(!M(r)||!T(r))?F(r):r},ie=e=>{const o=e.target;return U(o)},U=e=>{var o;let n;if(e.previousElementSibling)n=e.previousElementSibling;else{const r=(o=e.parentElement)==null?void 0:o.previousElementSibling;n=r==null?void 0:r.lastElementChild}return n&&(!M(n)||!T(n))?U(n):n},de=e=>{const o=e.target;return Y(o)},Y=e=>{var o;let n;if(e.nextElementSibling)n=e.nextElementSibling;else{const r=(o=e.parentElement)==null?void 0:o.nextElementSibling;n=r==null?void 0:r.firstElementChild}return n&&(!M(n)||!T(n))?Y(n):n},fe=e=>{const o=e.target.parentElement,n=o==null?void 0:o.firstElementChild;return n&&(!M(n)||!T(n))?Y(n):n},ue=e=>{const o=e.target.parentElement,n=o==null?void 0:o.lastElementChild;return n&&(!M(n)||!T(n))?U(n):n},H=["alt","control","shift","meta"],Ve={ArrowUp:"up",ArrowDown:"down",ArrowLeft:"left",ArrowRight:"right"},X={"keydown.up":e=>{const o=se(e);o&&(e.preventDefault(),e.stopPropagation(),o.focus())},"keydown.down":e=>{const o=ce(e);o&&(e.preventDefault(),e.stopPropagation(),o.focus())},"keydown.left":e=>{const o=ie(e);e.preventDefault(),e.stopPropagation(),o&&o.focus()},"keydown.right":e=>{const o=de(e);e.preventDefault(),e.stopPropagation(),o&&o.focus()},"keydown.control.up":e=>{const o=He(e);o&&(e.preventDefault(),e.stopPropagation(),o.focus())},"keydown.control.down":e=>{const o=Ne(e);o&&(e.preventDefault(),e.stopPropagation(),o.focus())},"keydown.control.left":e=>{const o=fe(e);o&&(e.preventDefault(),e.stopPropagation(),o.focus())},"keydown.control.right":e=>{const o=ue(e);o&&(e.preventDefault(),e.stopPropagation(),o.focus())},"keydown.end":e=>{const o=ue(e);o&&(e.preventDefault(),e.stopPropagation(),o.focus())},"keydown.enter":e=>{if(e.target instanceof HTMLTableCellElement){e.preventDefault(),e.stopPropagation();const o=ce(e);o&&o.focus()}},"keydown.shift.enter":e=>{if(e.target instanceof HTMLTableCellElement){e.preventDefault(),e.stopPropagation();const o=se(e);o&&o.focus()}},"keydown.home":e=>{const o=fe(e);o&&(e.preventDefault(),e.stopPropagation(),o.focus())},"keydown.tab":e=>{const o=de(e);o&&(e.preventDefault(),e.stopPropagation(),o.focus())},"keydown.shift.tab":e=>{const o=ie(e);o&&(e.preventDefault(),e.stopPropagation(),o.focus())}};function G(e){const o=l=>{let a=null;return l.parent&&(typeof l.parent=="string"?a=document.querySelector(l.parent):l.parent instanceof HTMLElement?a=l.parent:a=l.parent.value),a},n=l=>{var a;const u=o(l);let s=[];if(typeof l.selectors=="string")s=u?Array.from(u.querySelectorAll(l.selectors)):Array.from(document.querySelectorAll(l.selectors));else if(Array.isArray(l.selectors))for(const d of l.selectors)d instanceof HTMLElement?s.push(d):s.push(d.$el);else if(l.selectors instanceof HTMLElement)s.push(l.selectors);else if((a=l.selectors)!=null&&a.value)if(Array.isArray(l.selectors.value))for(const d of l.selectors.value)d instanceof HTMLElement?s.push(d):s.push(d.$el);else s.push(l.selectors.value);return s},r=l=>{const a=o(l);let u=[];return l.selectors?u=n(l):a&&(u=Array.from(a.children).filter(s=>M(s)&&T(s))),u},c=l=>a=>{const u=Ve[a.key]||a.key.toLowerCase();if(H.includes(u))return;const s=l.handlers||X;for(const d of Object.keys(s)){const[f,...m]=d.split(".");if(f==="keydown"&&m.includes(u)){const p=s[d],y=m.filter(b=>H.includes(b)),g=H.some(b=>{const w=b.charAt(0).toUpperCase()+b.slice(1);return a.getModifierState(w)});if(y.length>0){if(g){for(const b of H)if(m.includes(b)){const w=b.charAt(0).toUpperCase()+b.slice(1);a.getModifierState(w)&&p(a)}}}else g||p(a)}}},i=[];t.onMounted(()=>{for(const l of e){const a=o(l),u=r(l),s=c(l),d=a?[a]:u;for(const f of d){const{focused:m}=Pe(t.ref(f)),p=t.watch(m,y=>{y?f.addEventListener("keydown",s):f.removeEventListener("keydown",s)});i.push(p)}}}),t.onBeforeUnmount(()=>{for(const l of i)l()})}function z(e){return t.getCurrentScope()?(t.onScopeDispose(e),!0):!1}function I(e){return typeof e=="function"?e():t.unref(e)}const J=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const je=e=>e!=null,Fe=Object.prototype.toString,me=e=>Fe.call(e)==="[object Object]",$=()=>{},Q=qe();function qe(){var e,o;return J&&((e=window==null?void 0:window.navigator)==null?void 0:e.userAgent)&&(/iP(?:ad|hone|od)/.test(window.navigator.userAgent)||((o=window==null?void 0:window.navigator)==null?void 0:o.maxTouchPoints)>2&&/iPad|Macintosh/.test(window==null?void 0:window.navigator.userAgent))}function Ue(e){return t.getCurrentInstance()}function Ye(...e){if(e.length!==1)return t.toRef(...e);const o=e[0];return typeof o=="function"?t.readonly(t.customRef(()=>({get:o,set:$}))):t.ref(o)}function Xe(e,o=!0,n){Ue()?t.onMounted(e,n):o?e():t.nextTick(e)}const N=J?window:void 0;function R(e){var o;const n=I(e);return(o=n==null?void 0:n.$el)!=null?o:n}function Z(...e){let o,n,r,c;if(typeof e[0]=="string"||Array.isArray(e[0])?([n,r,c]=e,o=N):[o,n,r,c]=e,!o)return $;Array.isArray(n)||(n=[n]),Array.isArray(r)||(r=[r]);const i=[],l=()=>{i.forEach(d=>d()),i.length=0},a=(d,f,m,p)=>(d.addEventListener(f,m,p),()=>d.removeEventListener(f,m,p)),u=t.watch(()=>[R(o),I(c)],([d,f])=>{if(l(),!d)return;const m=me(f)?{...f}:f;i.push(...n.flatMap(p=>r.map(y=>a(d,p,y,m))))},{immediate:!0,flush:"post"}),s=()=>{u(),l()};return z(s),s}function Ge(){const e=t.ref(!1),o=t.getCurrentInstance();return o&&t.onMounted(()=>{e.value=!0},o),e}function pe(e){const o=Ge();return t.computed(()=>(o.value,!!e()))}function be(e,o,n={}){const{window:r=N,...c}=n;let i;const l=pe(()=>r&&"MutationObserver"in r),a=()=>{i&&(i.disconnect(),i=void 0)},u=t.computed(()=>{const m=I(e),p=(Array.isArray(m)?m:[m]).map(R).filter(je);return new Set(p)}),s=t.watch(()=>u.value,m=>{a(),l.value&&m.size&&(i=new MutationObserver(o),m.forEach(p=>i.observe(p,c)))},{immediate:!0,flush:"post"}),d=()=>i==null?void 0:i.takeRecords(),f=()=>{s(),a()};return z(f),{isSupported:l,stop:f,takeRecords:d}}function Je(e,o,n={}){const{window:r=N,...c}=n;let i;const l=pe(()=>r&&"ResizeObserver"in r),a=()=>{i&&(i.disconnect(),i=void 0)},u=t.computed(()=>{const f=I(e);return Array.isArray(f)?f.map(m=>R(m)):[R(f)]}),s=t.watch(u,f=>{if(a(),l.value&&r){i=new ResizeObserver(o);for(const m of f)m&&i.observe(m,c)}},{immediate:!0,flush:"post"}),d=()=>{a(),s()};return z(d),{isSupported:l,stop:d}}function ge(e,o={}){const{reset:n=!0,windowResize:r=!0,windowScroll:c=!0,immediate:i=!0,updateTiming:l="sync"}=o,a=t.ref(0),u=t.ref(0),s=t.ref(0),d=t.ref(0),f=t.ref(0),m=t.ref(0),p=t.ref(0),y=t.ref(0);function g(){const w=R(e);if(!w){n&&(a.value=0,u.value=0,s.value=0,d.value=0,f.value=0,m.value=0,p.value=0,y.value=0);return}const v=w.getBoundingClientRect();a.value=v.height,u.value=v.bottom,s.value=v.left,d.value=v.right,f.value=v.top,m.value=v.width,p.value=v.x,y.value=v.y}function b(){l==="sync"?g():l==="next-frame"&&requestAnimationFrame(()=>g())}return Je(e,b),t.watch(()=>R(e),w=>!w&&b()),be(e,b,{attributeFilter:["style","class"]}),c&&Z("scroll",b,{capture:!0,passive:!0}),r&&Z("resize",b,{passive:!0}),Xe(()=>{i&&b()}),{height:a,bottom:u,left:s,right:d,top:f,width:m,x:p,y,update:b}}function Qe(e={}){const{window:o=N,behavior:n="auto"}=e;if(!o)return{x:t.ref(0),y:t.ref(0)};const r=t.ref(o.scrollX),c=t.ref(o.scrollY),i=t.computed({get(){return r.value},set(a){scrollTo({left:a,behavior:n})}}),l=t.computed({get(){return c.value},set(a){scrollTo({top:a,behavior:n})}});return Z(o,"scroll",()=>{r.value=o.scrollX,c.value=o.scrollY},{capture:!1,passive:!0}),{x:i,y:l}}const Ze=e=>{const o=new DOMParser().parseFromString(e,"text/html");return Array.from(o.body.childNodes).some(n=>n.nodeType===1)},Ke=["data-colindex","data-rowindex","data-editable","contenteditable","tabindex"],_e=["innerHTML"],et={key:2},K=t.defineComponent({__name:"ACell",props:{colIndex:{},rowIndex:{},store:{},addNavigation:{type:[Boolean,Object],default:!0},tabIndex:{default:0},pinned:{type:Boolean}},emits:["cellInput"],setup(e,{emit:o}){const n=o,r=t.useTemplateRef("cell"),c=e.store.getCellData(e.colIndex,e.rowIndex),i=t.ref(""),l=t.ref(!1),a=e.store.columns[e.colIndex],u=e.store.rows[e.rowIndex],s=a.align||"center",d=a.width||"40ch",f=t.computed(()=>e.store.getCellDisplayValue(e.colIndex,e.rowIndex)),m=t.computed(()=>typeof f.value=="string"?Ze(f.value):!1),p=t.computed(()=>{var w;return{textAlign:s,width:d,backgroundColor:l.value?"var(--sc-cell-changed-color)":"inherit",fontWeight:l.value?"bold":"inherit",paddingLeft:e.store.getIndent(e.colIndex,(w=e.store.display[e.rowIndex])==null?void 0:w.indent)}}),y=()=>{const{left:w,bottom:v,width:B,height:re}=ge(r);a.mask,a.modalComponent&&e.store.$patch(A=>{A.modal.visible=!0,A.modal.colIndex=e.colIndex,A.modal.rowIndex=e.rowIndex,A.modal.left=w,A.modal.bottom=v,A.modal.width=B,A.modal.height=re,typeof a.modalComponent=="function"?A.modal.component=a.modalComponent({table:A.table,row:u,column:a}):A.modal.component=a.modalComponent,A.modal.componentProps=a.modalComponentExtraProps})};if(e.addNavigation){let w={...X,"keydown.f2":y,"keydown.alt.up":y,"keydown.alt.down":y,"keydown.alt.left":y,"keydown.alt.right":y};typeof e.addNavigation=="object"&&(w={...w,...e.addNavigation}),G([{selectors:r,handlers:w}])}const g=()=>{r.value&&(i.value=r.value.textContent)},b=w=>{const v=w.target;v.textContent!==i.value&&(n("cellInput",e.colIndex,e.rowIndex,v.textContent,i.value),i.value=v.textContent,a.format?(l.value=v.textContent!==e.store.getFormattedValue(e.colIndex,e.rowIndex,c),e.store.setCellText(e.colIndex,e.rowIndex,v.textContent)):(l.value=v.textContent!==c,e.store.setCellData(e.colIndex,e.rowIndex,v.textContent)))};return(w,v)=>(t.openBlock(),t.createElementBlock("td",{ref:"cell","data-colindex":w.colIndex,"data-rowindex":w.rowIndex,"data-editable":t.unref(a).edit,contenteditable:t.unref(a).edit,tabindex:w.tabIndex,spellcheck:!1,style:t.normalizeStyle(p.value),onFocus:g,onPaste:b,onInput:b,onClick:y,class:t.normalizeClass(["atable-cell",w.pinned?"sticky-column":""])},[t.unref(a).cellComponent?(t.openBlock(),t.createBlock(t.resolveDynamicComponent(t.unref(a).cellComponent),t.mergeProps({key:0,value:f.value},t.unref(a).cellComponentProps),null,16,["value"])):m.value?(t.openBlock(),t.createElementBlock("span",{key:1,innerHTML:f.value},null,8,_e)):(t.openBlock(),t.createElementBlock("span",et,t.toDisplayString(f.value),1))],46,Ke))}}),tt=["tabindex"],ot=["tabindex"],nt=["colspan"],he=t.defineComponent({__name:"AExpansionRow",props:{rowIndex:{},store:{},tabIndex:{default:()=>-1},addNavigation:{type:[Boolean,Object]}},setup(e){const o=t.useTemplateRef("rowEl"),n=t.computed(()=>e.store.display[e.rowIndex].expanded?"▼":"►");if(e.addNavigation){const r={"keydown.control.g":c=>{c.stopPropagation(),c.preventDefault(),e.store.toggleRowExpand(e.rowIndex)}};typeof e.addNavigation=="object"&&Object.assign(r,e.addNavigation),G([{selectors:o,handlers:r}])}return(r,c)=>(t.openBlock(),t.createElementBlock(t.Fragment,null,[t.createElementVNode("tr",t.mergeProps(r.$attrs,{ref:"rowEl",tabindex:r.tabIndex,class:"expandable-row"}),[t.createElementVNode("td",{tabIndex:-1,onClick:c[0]||(c[0]=i=>r.store.toggleRowExpand(r.rowIndex)),class:"row-index"},t.toDisplayString(n.value),1),t.renderSlot(r.$slots,"row")],16,tt),r.store.display[r.rowIndex].expanded?(t.openBlock(),t.createElementBlock("tr",{key:0,ref:"rowExpanded",tabindex:r.tabIndex,class:"expanded-row"},[t.createElementVNode("td",{tabIndex:-1,colspan:r.store.columns.length+1,class:"expanded-row-content"},[t.renderSlot(r.$slots,"content")],8,nt)],8,ot)):t.createCommentVNode("",!0)],64))}}),rt=["tabindex"],_=t.defineComponent({__name:"ARow",props:{rowIndex:{},store:{},tabIndex:{default:()=>-1},addNavigation:{type:[Boolean,Object],default:!1}},setup(e){const o=t.useTemplateRef("rowEl"),n=t.computed(()=>e.store.isRowVisible(e.rowIndex)),r=t.computed(()=>e.store.getRowExpandSymbol(e.rowIndex));if(e.addNavigation){let c=X;typeof e.addNavigation=="object"&&(c={...c,...e.addNavigation}),G([{selectors:o,handlers:c}])}return(c,i)=>t.withDirectives((t.openBlock(),t.createElementBlock("tr",{ref:"rowEl",tabindex:c.tabIndex,class:"table-row"},[c.store.config.view!=="uncounted"?t.renderSlot(c.$slots,"index",{key:0},()=>[c.store.config.view==="list"?(t.openBlock(),t.createElementBlock("td",{key:0,tabIndex:-1,class:t.normalizeClass(["list-index",c.store.hasPinnedColumns?"sticky-index":""])},t.toDisplayString(c.rowIndex+1),3)):c.store.config.view==="tree"?(t.openBlock(),t.createElementBlock("td",{key:1,tabIndex:-1,class:t.normalizeClass(["tree-index",c.store.hasPinnedColumns?"sticky-index":""]),onClick:i[0]||(i[0]=l=>c.store.toggleRowExpand(c.rowIndex))},t.toDisplayString(r.value),3)):t.createCommentVNode("",!0)]):t.createCommentVNode("",!0),t.renderSlot(c.$slots,"default")],8,rt)),[[t.vShow,n.value]])}}),we=J?window:void 0;function P(e){var o;const n=I(e);return(o=n==null?void 0:n.$el)!=null?o:n}function V(...e){let o,n,r,c;if(typeof e[0]=="string"||Array.isArray(e[0])?([n,r,c]=e,o=we):[o,n,r,c]=e,!o)return $;Array.isArray(n)||(n=[n]),Array.isArray(r)||(r=[r]);const i=[],l=()=>{i.forEach(d=>d()),i.length=0},a=(d,f,m,p)=>(d.addEventListener(f,m,p),()=>d.removeEventListener(f,m,p)),u=t.watch(()=>[P(o),I(c)],([d,f])=>{if(l(),!d)return;const m=me(f)?{...f}:f;i.push(...n.flatMap(p=>r.map(y=>a(d,p,y,m))))},{immediate:!0,flush:"post"}),s=()=>{u(),l()};return z(s),s}let ye=!1;function xe(e,o,n={}){const{window:r=we,ignore:c=[],capture:i=!0,detectIframe:l=!1}=n;if(!r)return $;Q&&!ye&&(ye=!0,Array.from(r.document.body.children).forEach(g=>g.addEventListener("click",$)),r.document.documentElement.addEventListener("click",$));let a=!0;const u=g=>I(c).some(b=>{if(typeof b=="string")return Array.from(r.document.querySelectorAll(b)).some(w=>w===g.target||g.composedPath().includes(w));{const w=P(b);return w&&(g.target===w||g.composedPath().includes(w))}});function s(g){const b=I(g);return b&&b.$.subTree.shapeFlag===16}function d(g,b){const w=I(g),v=w.$.subTree&&w.$.subTree.children;return v==null||!Array.isArray(v)?!1:v.some(B=>B.el===b.target||b.composedPath().includes(B.el))}const f=g=>{const b=P(e);if(g.target!=null&&!(!(b instanceof Element)&&s(e)&&d(e,g))&&!(!b||b===g.target||g.composedPath().includes(b))){if(g.detail===0&&(a=!u(g)),!a){a=!0;return}o(g)}};let m=!1;const p=[V(r,"click",g=>{m||(m=!0,setTimeout(()=>{m=!1},0),f(g))},{passive:!0,capture:i}),V(r,"pointerdown",g=>{const b=P(e);a=!u(g)&&!!(b&&!g.composedPath().includes(b))},{passive:!0}),l&&V(r,"blur",g=>{setTimeout(()=>{var b;const w=P(e);((b=r.document.activeElement)==null?void 0:b.tagName)==="IFRAME"&&!(w!=null&&w.contains(r.document.activeElement))&&o(g)},0)})].filter(Boolean);return()=>p.forEach(g=>g())}const lt={mounted(e,o){const n=!o.modifiers.bubble;if(typeof o.value=="function")e.__onClickOutside_stop=xe(e,o.value,{capture:n});else{const[r,c]=o.value;e.__onClickOutside_stop=xe(e,r,Object.assign({capture:n},c))}},unmounted(e){e.__onClickOutside_stop()}};function ee(e){return typeof Window<"u"&&e instanceof Window?e.document.documentElement:typeof Document<"u"&&e instanceof Document?e.documentElement:e}function ve(e){const o=window.getComputedStyle(e);if(o.overflowX==="scroll"||o.overflowY==="scroll"||o.overflowX==="auto"&&e.clientWidth<e.scrollWidth||o.overflowY==="auto"&&e.clientHeight<e.scrollHeight)return!0;{const n=e.parentNode;return!n||n.tagName==="BODY"?!1:ve(n)}}function at(e){const o=e||window.event,n=o.target;return ve(n)?!1:o.touches.length>1?!0:(o.preventDefault&&o.preventDefault(),!1)}const te=new WeakMap;function st(e,o=!1){const n=t.ref(o);let r=null,c="";t.watch(Ye(e),a=>{const u=ee(I(a));if(u){const s=u;if(te.get(s)||te.set(s,s.style.overflow),s.style.overflow!=="hidden"&&(c=s.style.overflow),s.style.overflow==="hidden")return n.value=!0;if(n.value)return s.style.overflow="hidden"}},{immediate:!0});const i=()=>{const a=ee(I(e));!a||n.value||(Q&&(r=V(a,"touchmove",u=>{at(u)},{passive:!1})),a.style.overflow="hidden",n.value=!0)},l=()=>{const a=ee(I(e));!a||!n.value||(Q&&(r==null||r()),a.style.overflow=c,te.delete(a),n.value=!1)};return z(l),t.computed({get(){return n.value},set(a){a?i():l()}})}function ct(){let e=!1;const o=t.ref(!1);return(n,r)=>{if(o.value=r.value,e)return;e=!0;const c=st(n,r.value);t.watch(o,i=>c.value=i)}}ct();const it={key:0,id:"resizable"},dt={class:"atable-header-row",tabindex:"-1"},oe=t.defineComponent({__name:"ATableHeader",props:{columns:{},store:{}},setup(e){return(o,n)=>o.columns.length?(t.openBlock(),t.createElementBlock("thead",it,[t.createElementVNode("tr",dt,[o.store.zeroColumn?(t.openBlock(),t.createElementBlock("th",{key:0,id:"header-index",class:t.normalizeClass([[o.store.hasPinnedColumns?"sticky-index":"",o.store.config.view==="tree"?"tree-index":"",o.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(o.columns,(r,c)=>(t.openBlock(),t.createElementBlock("th",{key:r.name,tabindex:"-1",style:t.normalizeStyle(o.store.getHeaderCellStyle(r)),class:t.normalizeClass(r.pinned?"sticky-column":"")},[t.renderSlot(o.$slots,"default",{},()=>[t.createTextVNode(t.toDisplayString(r.label||String.fromCharCode(c+97).toUpperCase()),1)])],6))),128))])])):t.createCommentVNode("",!0)}}),ne=t.defineComponent({__name:"ATableModal",props:{store:{}},setup(e){const o=t.useTemplateRef("amodal"),{width:n,height:r}=ge(o),{y:c}=Qe(),i=t.computed(()=>{if(!(e.store.modal.height&&e.store.modal.width&&e.store.modal.left&&e.store.modal.bottom))return;const a=document.body,u=document.documentElement,s=Math.max(a.scrollHeight,a.offsetHeight,u.clientHeight,u.scrollHeight,u.offsetHeight),d=Math.max(a.scrollWidth,a.offsetWidth,u.clientWidth,u.scrollWidth,u.offsetWidth),f=e.store.modal.bottom+r.value+c.value<=s?e.store.modal.bottom:e.store.modal.bottom-r.value-e.store.modal.height;return{left:`${e.store.modal.left+n.value<=d?e.store.modal.left:e.store.modal.left-(n.value-e.store.modal.width)}px`,top:`${f}px`}}),l=a=>{a.stopPropagation()};return(a,u)=>(t.openBlock(),t.createElementBlock("div",{class:"amodal",ref:"amodal",tabindex:"-1",onClick:l,onInput:l,style:t.normalizeStyle(i.value)},[t.renderSlot(a.$slots,"default")],36))}}),ke=e=>{const o=e.id||crypto.randomUUID();return Se.defineStore(`table-${o}`,()=>{const r=()=>{const h={};for(const[x,k]of i.value.entries())for(const[E,S]of l.value.entries())h[`${x}:${E}`]=S[k.name];return h},c=h=>{const x=[Object.assign({},{rowModified:!1})];if(h&&"0:0"in h)return h;const k=new Set;for(let E=l.value.length-1;E>=0;E--){const S=l.value[E];S.parent&&k.add(S.parent),x[E]={childrenOpen:!1,expanded:!1,indent:S.indent||0,isParent:k.has(E),isRoot:S.parent===null||S.parent===void 0,rowModified:!1,open:S.parent===null||S.parent===void 0,parent:S.parent}}return x},i=t.ref(e.columns),l=t.ref(e.rows),a=t.ref(e.config||{}),u=t.ref(e.table||r()),s=t.ref(c(e.display)),d=t.ref(e.modal||{visible:!1}),f=t.ref({}),m=t.computed(()=>i.value.some(h=>h.pinned)),p=t.computed(()=>`${Math.ceil(l.value.length/100+1)}ch`),y=t.computed(()=>a.value.view?["list","tree","list-expansion"].includes(a.value.view):!1),g=(h,x)=>u.value[`${h}:${x}`],b=(h,x,k)=>{const E=`${h}:${x}`,S=i.value[h];u.value[E]!==k&&(s.value[x].rowModified=!0),u.value[E]=k,l.value[x][S.name]=k},w=(h,x,k)=>{const E=`${h}:${x}`;u.value[E]!==k&&(s.value[x].rowModified=!0,f.value[E]=k)},v=h=>({minWidth:h.width||"40ch",textAlign:h.align||"center",width:a.value.fullWidth?"auto":void 0}),B=h=>a.value.view!=="tree"||s.value[h].isRoot||s.value[h].open,re=h=>a.value.view!=="tree"?"":s.value[h].isRoot||s.value[h].isParent?s.value[h].childrenOpen?"-":"+":"",A=h=>{if(a.value.view==="tree"){s.value[h].childrenOpen=!s.value[h].childrenOpen;for(let x=l.value.length-1;x>=0;x--)s.value[x].parent===h&&(s.value[x].open=!s.value[x].open,s.value[x].childrenOpen&&A(x))}else a.value.view==="list-expansion"&&(s.value[h].expanded=!s.value[h].expanded)},ut=(h,x)=>{const k=g(h,x);return Ce(h,x,k)},Ce=(h,x,k)=>{const E=i.value[h],S=l.value[x],W=E.format;return W?typeof W=="function"?W(k,{table:u.value,row:S,column:E}):typeof W=="string"?Function(`"use strict";return (${W})`)()(k,{table:u.value,row:S,column:E}):k:k};return{columns:i,config:a,display:s,modal:d,rows:l,table:u,updates:f,hasPinnedColumns:m,numberedRowWidth:p,zeroColumn:y,closeModal:h=>{var x;h.target instanceof Node&&(x=d.value.parent)!=null&&x.contains(h.target)||d.value.visible&&(d.value.visible=!1)},getCellData:g,getCellDisplayValue:ut,getFormattedValue:Ce,getHeaderCellStyle:v,getIndent:(h,x)=>x&&h===0&&x>0?`${x}ch`:"inherit",getRowExpandSymbol:re,isRowVisible:B,setCellData:b,setCellText:w,toggleRowExpand:A}})()},Ee=((e,o)=>{const n=e.__vccOpts||e;for(const[r,c]of o)n[r]=c;return n})(t.defineComponent({__name:"ATable",props:{id:{},modelValue:{},columns:{},rows:{default:()=>[]},config:{default:()=>new Object}},emits:["update:modelValue","cellUpdate"],setup(e,{expose:o,emit:n}){const r=n,c=t.useTemplateRef("table"),i=e.modelValue?e.modelValue:e.rows,l=ke({columns:e.columns,rows:i,id:e.id,config:e.config});l.$onAction(({name:s,store:d,args:f,after:m})=>{if(s==="setCellData"){const[p,y,g]=f,b=d.getCellData(p,y);m(()=>{r("cellUpdate",p,y,g,b)})}}),t.watch(()=>l.rows,s=>{r("update:modelValue",s)},{deep:!0}),t.onMounted(()=>{e.columns.some(s=>s.pinned)&&(u(),l.config.view==="tree"&&be(c,u,{childList:!0,subtree:!0}))});const a=(s,d,f,m)=>{r("cellUpdate",s,d,f,m)},u=()=>{const s=c.value,d=s==null?void 0:s.rows[0],f=s==null?void 0:s.rows[1],m=d?Array.from(d.cells):[];for(const[p,y]of m.entries()){const g=f==null?void 0:f.cells[p];g&&(y.style.width=`${g.offsetWidth}px`)}for(const p of(s==null?void 0:s.rows)||[]){let y=0;const g=[];for(const b of p.cells)(b.classList.contains("sticky-column")||b.classList.contains("sticky-index"))&&(b.style.left=`${y}px`,y+=b.offsetWidth,g.push(b));g.length>0&&g[g.length-1].classList.add("sticky-column-edge")}};return window.addEventListener("keydown",s=>{if(s.key==="Escape"&&l.modal.visible){l.modal.visible=!1;const d=l.modal.parent;d&&t.nextTick().then(()=>{d.focus()})}}),o({store:l}),(s,d)=>t.withDirectives((t.openBlock(),t.createElementBlock("table",{ref:"table",class:"atable",style:t.normalizeStyle({width:t.unref(l).config.fullWidth?"100%":"auto"})},[t.renderSlot(s.$slots,"header",{data:t.unref(l)},()=>[t.createVNode(oe,{columns:t.unref(l).columns,store:t.unref(l)},null,8,["columns","store"])],!0),t.createElementVNode("tbody",null,[t.renderSlot(s.$slots,"body",{data:t.unref(l)},()=>[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(t.unref(l).rows,(f,m)=>(t.openBlock(),t.createBlock(_,{key:f.id,row:f,rowIndex:m,store:t.unref(l)},{default:t.withCtx(()=>[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(t.unref(l).columns,(p,y)=>(t.openBlock(),t.createBlock(K,{key:p.name,store:t.unref(l),col:p,spellcheck:"false",pinned:p.pinned,rowIndex:m,colIndex:y,component:p.cellComponent,style:t.normalizeStyle({textAlign:(p==null?void 0:p.align)||"center",minWidth:(p==null?void 0:p.width)||"40ch",width:t.unref(l).config.fullWidth?"auto":null}),onCellInput:a},null,8,["store","col","pinned","rowIndex","colIndex","component","style"]))),128))]),_:2},1032,["row","rowIndex","store"]))),128))],!0)]),t.renderSlot(s.$slots,"footer",{data:t.unref(l)},void 0,!0),t.renderSlot(s.$slots,"modal",{data:t.unref(l)},()=>[t.withDirectives(t.createVNode(ne,{store:t.unref(l)},{default:t.withCtx(()=>[(t.openBlock(),t.createBlock(t.resolveDynamicComponent(t.unref(l).modal.component),t.mergeProps({key:`${t.unref(l).modal.rowIndex}:${t.unref(l).modal.colIndex}`,colIndex:t.unref(l).modal.colIndex,rowIndex:t.unref(l).modal.rowIndex,store:t.unref(l)},t.unref(l).modal.componentProps),null,16,["colIndex","rowIndex","store"]))]),_:1},8,["store"]),[[t.vShow,t.unref(l).modal.visible]])],!0)],4)),[[t.unref(lt),t.unref(l).closeModal]])}}),[["__scopeId","data-v-bd5101d3"]]);function ft(e){e.component("ACell",K),e.component("AExpansionRow",he),e.component("ARow",_),e.component("ATable",Ee),e.component("ATableHeader",oe),e.component("ATableModal",ne)}C.ACell=K,C.AExpansionRow=he,C.ARow=_,C.ATable=Ee,C.ATableHeader=oe,C.ATableModal=ne,C.createTableStore=ke,C.install=ft,Object.defineProperty(C,Symbol.toStringTag,{value:"Module"})});
|
|
3
3
|
//# sourceMappingURL=atable.umd.cjs.map
|