@opengis/table 0.0.1 → 0.0.11

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/index.umd.js ADDED
@@ -0,0 +1 @@
1
+ (function(f,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],e):(f=typeof globalThis<"u"?globalThis:f||self,e(f.filter={},f.Vue))})(this,function(f,e){"use strict";const O=e.defineComponent({name:"NumberFormat",__name:"NumberFormat",props:{value:{},row:{},column:{}},setup(g){const o=g,t=e.computed(()=>o.value===null||o.value===void 0?"":typeof o.value=="number"?o.value.toLocaleString():o.value);return(m,n)=>(e.openBlock(),e.createElementBlock("span",null,e.toDisplayString(t.value),1))}}),U=e.defineComponent({name:"DateFormat",__name:"DateFormat",props:{value:{},row:{},column:{}},setup(g){const o=g,t=e.computed(()=>{if(!o.value)return"";try{return new Date(o.value).toLocaleDateString()}catch{return o.value}});return(m,n)=>(e.openBlock(),e.createElementBlock("span",null,e.toDisplayString(t.value),1))}}),q=e.defineComponent({name:"TextFormat",__name:"TextFormat",props:{value:{},row:{},column:{}},setup(g){return(o,t)=>(e.openBlock(),e.createElementBlock("span",null,e.toDisplayString(o.value),1))}}),J=((g,o)=>{const t=g.__vccOpts||g;for(const[m,n]of o)t[m]=n;return t})(e.defineComponent({name:"BadgeFormat",__name:"BadgeFormat",props:{value:{},row:{},column:{}},setup(g){const o=g,t=e.computed(()=>{const r=String(o.value||"").toLowerCase(),i="inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium";return r.includes("success")||r.includes("active")||r.includes("completed")?`${i} bg-green-100 text-green-800`:r.includes("error")||r.includes("failed")||r.includes("inactive")?`${i} bg-red-100 text-red-800`:r.includes("warning")||r.includes("pending")?`${i} bg-yellow-100 text-yellow-800`:r.includes("info")||r.includes("processing")?`${i} bg-blue-100 text-blue-800`:o.value.color&&!/^#([0-9a-f]{3}|[0-9a-f]{6})$/i.test(o.value.color)?`${i} bg-${o.value.color}-100 text-${o.value.color}-800`:`${i} bg-gray-100 text-gray-800`}),m=e.computed(()=>{const r={minWidth:"60px",textAlign:"center",display:"inline-block"};return/^#([0-9a-f]{3}|[0-9a-f]{6})$/i.test(o.value.color)?{...r,backgroundColor:n(o.value.color,.1),color:n(o.value.color,.8)}:r});function n(r,i=1){const h=parseInt(r.slice(1,3),16),x=parseInt(r.slice(3,5),16),C=parseInt(r.slice(5,7),16);return`rgba(${h}, ${x}, ${C}, ${i})`}return(r,i)=>(e.openBlock(),e.createElementBlock("span",{class:e.normalizeClass(["badge",t.value]),style:e.normalizeStyle(m.value)},e.toDisplayString(r.value.text||r.value.ua||r.value),7))}}),[["__scopeId","data-v-aaab5e06"]]),ie={class:"flex flex-wrap gap-1"},G=e.defineComponent({name:"ArrayFormat",__name:"ArrayFormat",props:{value:{},row:{},column:{}},setup(g){const o=g,t=e.computed(()=>o.value?Array.isArray(o.value)?o.value:[o.value]:[]),m=n=>n?typeof n=="object"&&n.name?n.name:typeof n=="string"||typeof n=="number"?String(n):JSON.stringify(n):"";return(n,r)=>(e.openBlock(),e.createElementBlock("div",ie,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.value,(i,h)=>(e.openBlock(),e.createElementBlock("span",{key:h,class:"inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium bg-blue-100 text-blue-800 hover:bg-blue-200 transition-colors"},e.toDisplayString(m(i)),1))),128))]))}}),ce=["href","target"],K=e.defineComponent({__name:"LinkFormat",props:{href:{default:""},target:{default:"_self"},onClick:{type:Function,default:void 0},value:{},row:{},column:{}},setup(g){const o=g,t=e.computed(()=>typeof o.value=="string"||typeof o.value=="number"?o.value:o.value?.text||o.value?.label||"Link"),m=e.computed(()=>o.href?o.href:typeof o.value=="object"&&o.value?.href?o.value.href:""),n=e.computed(()=>o.target?o.target:typeof o.value=="object"&&o.value?.target?o.value.target:"_self"),r=e.computed(()=>"text-blue-600 hover:text-blue-800 dark:text-blue-400 dark:hover:text-blue-300 underline cursor-pointer"),i=h=>{o.onClick&&o.row&&(h.preventDefault(),o.onClick(o.row,o.value))};return(h,x)=>m.value?(e.openBlock(),e.createElementBlock("a",{key:0,href:m.value,target:n.value,class:e.normalizeClass(r.value),onClick:i},e.toDisplayString(t.value),11,ce)):(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",class:e.normalizeClass(r.value),onClick:i},e.toDisplayString(t.value),3))}}),F={number:O,date:U,text:q,badge:J,array:G,link:K},de={class:"flex items-center space-x-4"},me={class:"font-medium"},pe={class:"font-medium"},ue={class:"font-medium"},ge={class:"flex items-center space-x-2"},fe=["disabled"],ye={class:"flex items-center space-x-1"},be=["onClick"],he=["disabled"],I=e.defineComponent({name:"Pagination",__name:"Pagination",props:{page:{},limit:{},total:{},theme:{default:"light"},size:{default:"medium"}},emits:["update:page"],setup(g,{emit:o}){const t=g,m=e.computed(()=>({small:{text:"text-xs",button:"px-2 h-7 text-xs min-w-[28px] flex items-center justify-center",icon:"w-3.5 h-3.5"},medium:{text:"text-sm",button:"px-3 h-9 text-sm min-w-[36px] flex items-center justify-center",icon:"w-4 h-4"},large:{text:"text-base",button:"px-4 h-11 text-base min-w-[44px] flex items-center justify-center",icon:"w-5 h-5"}})[t.size]),n=e.computed(()=>{const{theme:p}=t;return p==="dark"?{container:"bg-gray-900 border-gray-700",text:"text-gray-300",button:"text-gray-300 bg-gray-800 border-gray-600 hover:bg-gray-700",buttonDisabled:"text-gray-500 bg-gray-800",buttonActive:"bg-blue-600 text-white",ellipsis:"text-gray-400"}:p==="light"?{container:"bg-white border-gray-200",text:"text-gray-700",button:"text-gray-700 bg-white border-gray-300 hover:bg-gray-50",buttonDisabled:"text-gray-400 bg-gray-100",buttonActive:"bg-blue-600 text-white",ellipsis:"text-gray-500"}:{container:"bg-white dark:bg-gray-900 border-gray-200 dark:border-gray-700",text:"text-gray-700 dark:text-gray-300",button:"text-gray-700 dark:text-gray-300 bg-white dark:bg-gray-800 border-gray-300 dark:border-gray-600 hover:bg-gray-50 dark:hover:bg-gray-700",buttonDisabled:"text-gray-400 dark:text-gray-500 bg-gray-100 dark:bg-gray-800",buttonActive:"bg-blue-600 text-white",ellipsis:"text-gray-500 dark:text-gray-400"}}),r=o,i=e.computed(()=>Math.ceil(t.total/t.limit)),h=e.computed(()=>t.total===0?0:(t.page-1)*t.limit+1),x=e.computed(()=>Math.min(t.page*t.limit,t.total)),C=e.computed(()=>{const p=[];if(i.value<=7)for(let b=1;b<=i.value;b+=1)p.push(b);else{p.push(1),t.page>4&&p.push("...");const b=Math.max(2,t.page-1),E=Math.min(i.value-1,t.page+1);for(let _=b;_<=E;_+=1)_!==1&&_!==i.value&&p.push(_);t.page<i.value-3&&p.push("..."),i.value>1&&p.push(i.value)}return p}),w=p=>{p>=1&&p<=i.value&&p!==t.page&&r("update:page",p)};return(p,u)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["flex items-center justify-between py-3 border-t",n.value.container])},[e.createElementVNode("div",de,[e.createElementVNode("div",{class:e.normalizeClass(["flex items-center text-sm",n.value.text,m.value.text])},[e.createElementVNode("span",null,[u[2]||(u[2]=e.createTextVNode(" Показано ",-1)),e.createElementVNode("span",me,e.toDisplayString(h.value),1),u[3]||(u[3]=e.createTextVNode(" до ",-1)),e.createElementVNode("span",pe,e.toDisplayString(x.value),1),u[4]||(u[4]=e.createTextVNode(" з ",-1)),e.createElementVNode("span",ue,e.toDisplayString(p.total),1),u[5]||(u[5]=e.createTextVNode(" результатів ",-1))])],2)]),e.createElementVNode("div",ge,[e.createElementVNode("button",{onClick:u[0]||(u[0]=b=>w(p.page-1)),disabled:p.page<=1,class:e.normalizeClass(["relative font-medium rounded-md",m.value.button,p.page<=1?n.value.buttonDisabled:n.value.button])},[(e.openBlock(),e.createElementBlock("svg",{class:e.normalizeClass(m.value.icon),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},u[6]||(u[6]=[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M15 19l-7-7 7-7"},null,-1)]),2))],10,fe),e.createElementVNode("div",ye,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(C.value,b=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:b},[b==="..."?(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(["font-medium",m.value.button,n.value.ellipsis])}," ... ",2)):(e.openBlock(),e.createElementBlock("button",{key:1,onClick:E=>w(b),class:e.normalizeClass(["relative font-medium rounded-md",m.value.button,b===p.page?n.value.buttonActive:n.value.button])},e.toDisplayString(b),11,be))],64))),128))]),e.createElementVNode("button",{onClick:u[1]||(u[1]=b=>w(p.page+1)),disabled:p.page>=i.value,class:e.normalizeClass(["relative font-medium rounded-md",m.value.button,p.page>=i.value?n.value.buttonDisabled:n.value.button])},[(e.openBlock(),e.createElementBlock("svg",{class:e.normalizeClass(m.value.icon),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},u[7]||(u[7]=[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M9 5l7 7-7 7"},null,-1)]),2))],10,he)])],2))}}),ke={key:0,class:"text-center py-8"},xe={class:"inline-flex items-center space-x-2"},Ce={key:2,class:"overflow-x-auto"},_e=["checked","indeterminate"],we=["onClick"],Be={class:"flex items-center justify-between"},Ee={key:0,class:"ml-1 text-xs"},$e=["onClick"],Ve=["checked","onChange"],$=e.defineComponent({name:"DataTable",__name:"DataTable",props:{rows:{default:()=>[]},columns:{default:()=>[]},api:{},tableStyle:{default:"min-width: 50rem"},tableClass:{default:"min-w-full divide-y divide-gray-200 dark:divide-gray-700"},tableClassWrapper:{},size:{default:"medium"},theme:{default:"light"},loading:{type:Boolean,default:!1},classTr:{default:""},classTd:{default:""},classTh:{default:""},classLink:{default:""},selectable:{type:Boolean,default:!1},selectedRows:{default:()=>[]},limit:{default:10},page:{default:1},total:{default:0},showPagination:{type:Boolean,default:!0},sortable:{type:Boolean,default:!1},clickable:{type:Boolean,default:!1},getCellData:{type:Function,default:void 0}},emits:["update:page","update:selectedRows","row-click","sort"],setup(g,{emit:o}){const t=g,m=o,n=e.ref(t.selectedRows||[]),r=e.ref([]),i=e.ref([]),h=e.ref([]),x=e.ref(!1),C=e.ref(null),w=e.useSlots(),p=e.computed(()=>w.action),u=e.computed(()=>{if(t.api)return i.value;if(t.sortable&&r.value.length>0){const a=[...t.rows];return a.sort((c,l)=>{for(const d of r.value){if(!d.direction)return 0;const s=c[d.field],y=l[d.field];if(s==null)return 1;if(y==null)return-1;let B=0;typeof s=="string"&&typeof y=="string"?B=s.localeCompare(y):s<y?B=-1:s>y?B=1:B=0;const T=d.direction==="desc"?-B:B;if(T!==0)return T}return 0}),a}return t.rows});e.watch(()=>t.selectedRows,a=>{n.value=a||[]});const b=a=>n.value.some(c=>c===a),E=a=>{const c=n.value.findIndex(l=>l===a);c>-1?n.value.splice(c,1):n.value.push(a),m("update:selectedRows",[...n.value])},_=e.computed(()=>u.value.length>0&&n.value.length===u.value.length),Z=e.computed(()=>n.value.length>0&&n.value.length<u.value.length),ee=()=>{_.value?n.value=[]:n.value=[...u.value],m("update:selectedRows",[...n.value])},V=a=>{if(!t.sortable)return;const c=r.value.findIndex(d=>d.field===a);if(c>=0){const d=r.value[c];d.direction==="asc"?d.direction="desc":d.direction==="desc"&&r.value.splice(c,1)}else r.value.unshift({field:a,direction:"asc"});const l=r.value.filter(d=>d.direction).map(d=>({name:d.field,asc:d.direction==="asc"}));m("sort",l),t.api&&S()},L=a=>r.value.find(l=>l.field===a)?.direction==="asc",Me=a=>{const c=r.value.find(l=>l.field===a);if(!c)return"↑↓";switch(c.direction){case"asc":return"↑";case"desc":return"↓";default:return"↕️"}},j=a=>t.sortable&&a.sortable!==!1,He=a=>{t.clickable&&m("row-click",a)},R=(a,c)=>{let l=c[a.name];if(a.suffix&&l===void 0){const d=`${a.name}${a.suffix}`;l=c[d]}if(t.getCellData||a.getCellData){const d=a.getCellData||t.getCellData;if(d){const s={name:a.name,row:c,value:l};l=d(s)}}return l},te=a=>a.width?a.width==="w-full"?"w-full":typeof a.width=="string"?a.width:typeof a.width=="number"?`w-${a.width}`:"":"",P=e.ref(t.page),ae=e.ref(t.limit),A=e.ref(t.total),N=e.ref(1),M=e.ref(10),v=e.ref(0),oe=e.computed(()=>t.api?N.value:P.value),le=e.computed(()=>t.api?M.value:ae.value),ne=e.computed(()=>t.api?v.value:A.value),k=e.computed(()=>{const{theme:a}=t;return a==="dark"?{container:"dark",loading:"text-gray-400",error:"text-red-400",thead:"bg-gray-800",th:"text-gray-300",thHover:"hover:bg-gray-700",tbody:"bg-gray-900 divide-gray-700",tr:"hover:bg-gray-800",td:"text-gray-300",empty:"text-gray-400",checkbox:"border-gray-600 bg-gray-700 text-blue-400"}:a==="light"?{container:"",loading:"text-gray-500",error:"text-red-500",thead:"bg-gray-50",th:"text-gray-500",thHover:"hover:bg-gray-100",tbody:"bg-white divide-gray-200",tr:"hover:bg-gray-50",td:"text-gray-900",empty:"text-gray-500",checkbox:"border-gray-300 bg-white text-blue-600"}:{container:"",loading:"text-gray-500 dark:text-gray-400",error:"text-red-500 dark:text-red-400",thead:"bg-gray-50 dark:bg-gray-800",th:"text-gray-500 dark:text-gray-300",thHover:"hover:bg-gray-100 dark:hover:bg-gray-700",tbody:"bg-white dark:bg-gray-900 divide-gray-200 dark:divide-gray-700",tr:"hover:bg-gray-50 dark:hover:bg-gray-800",td:"text-gray-900 dark:text-gray-300",empty:"text-gray-500 dark:text-gray-400",checkbox:"border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-700 text-blue-600 dark:text-blue-400"}});e.watch(()=>t.page,a=>{P.value=a}),e.watch(()=>t.limit,a=>{ae.value=a}),e.watch(()=>t.total,a=>{A.value=a});const S=async()=>{if(t.api){x.value=!0,C.value=null;try{const a=new URL(t.api,window.location.origin);if(a.searchParams.set("page",oe.value.toString()),a.searchParams.set("limit",le.value.toString()),r.value.length>0){const d=r.value.filter(s=>s.direction).map(s=>`${s.field}:${s.direction}`).join(",");d&&a.searchParams.set("sort",d)}const c=await fetch(a.toString());if(!c.ok)throw new Error(`HTTP error! status: ${c.status}`);const l=await c.json();l.rows&&Array.isArray(l.rows)&&(i.value=l.rows),l.columns&&Array.isArray(l.columns)&&(h.value=l.columns),l.total!==void 0&&(t.api?v.value=l.total:A.value=l.total)}catch(a){C.value=a instanceof Error?a.message:"Failed to fetch data",console.error("Error fetching data:",a)}finally{x.value=!1}}},We=a=>{t.api?N.value=a:(P.value=a,m("update:page",a)),t.api&&S()},Oe=e.computed(()=>t.showPagination&&ne.value>0),D=e.computed(()=>({small:{header:"px-3 py-2 text-xs",cell:"px-3 py-2 text-xs"},medium:{header:"px-6 py-3 text-xs",cell:"px-6 py-4 text-sm"},large:{header:"px-8 py-4 text-sm",cell:"px-8 py-6 text-base"}})[t.size]);e.onMounted(()=>{t.api&&(t.page&&(N.value=t.page),t.limit&&(M.value=t.limit),t.total&&(v.value=t.total),S())}),e.watch(()=>t.api,a=>{a&&(N.value=t.page||1,M.value=t.limit||10,v.value=t.total||0,S())});const Ue=e.computed(()=>t.api?h.value:t.columns),H=e.ref([]),z=e.ref({});e.provide("registerColumn",(a,c)=>{H.value.push(a),c&&a.slotName&&(z.value[a.name]=c)});const re=e.computed(()=>{const a=Ue.value||[],c=[],l=w.default?.();if(l){const d=l.filter(s=>s.type?.name==="Column"||s.type==="Column"||s.type&&typeof s.type=="object"&&s.type.name==="Column").map(s=>{const y=s.props||s.componentProps||{},B=y.field||y.name||"",T=y.header||y.label||"",se=s.children&&s.children.body,W={name:B,ua:T,format:y.format||"text",slotName:se?"body":void 0,...y};return se&&W.name&&(z.value[W.name]=s.children.body),W});c.push(...d)}if(H.value.length>0&&c.push(...H.value),c.length>0){const d=[],s=new Set(c.map(y=>y.name));return a.forEach(y=>{s.has(y.name)||d.push(y)}),d.push(...c),console.log("Combined columns:",{default:a.length,custom:c.length,combined:d.length}),d}return a.length>0?(console.log("Using default columns:",a.length),a):[]}),qe=(a="text")=>F[a]||F.text;return(a,c)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["w-full",k.value.container])},[x.value||t.loading?(e.openBlock(),e.createElementBlock("div",ke,[e.createElementVNode("div",xe,[c[0]||(c[0]=e.createElementVNode("div",{class:"animate-spin rounded-full h-6 w-6 border-b-2 border-blue-600"},null,-1)),e.createElementVNode("span",{class:e.normalizeClass(k.value.loading)},"Loading...",2)])])):C.value?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(["text-center py-8",k.value.error])},e.toDisplayString(C.value),3)):!t.loading&&u.value.length>0?(e.openBlock(),e.createElementBlock("div",Ce,[e.createElementVNode("div",{class:e.normalizeClass(a.tableClassWrapper?a.tableClassWrapper:"relative w-full overflow-auto")},[e.createElementVNode("table",{class:e.normalizeClass(a.tableClass),style:e.normalizeStyle(a.tableStyle)},[e.createElementVNode("thead",{class:e.normalizeClass(k.value.thead)},[e.createElementVNode("tr",null,[a.selectable?(e.openBlock(),e.createElementBlock("th",{key:0,class:e.normalizeClass(["text-left font-medium uppercase tracking-wider",k.value.th,D.value.header,t.classTh,"w-12"])},[e.createElementVNode("input",{type:"checkbox",checked:_.value,indeterminate:Z.value,onChange:ee,class:e.normalizeClass(["h-4 w-4 focus:ring-blue-500 rounded",k.value.checkbox])},null,42,_e)],2)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(re.value,l=>(e.openBlock(),e.createElementBlock("th",{key:l.name,class:e.normalizeClass(["text-left font-medium uppercase tracking-wider",k.value.th,D.value.header,t.classTh,l.align?`text-${l.align}`:"",j(l)?["cursor-pointer",k.value.thHover]:"",te(l)]),onClick:d=>j(l)?V(l.name):void 0},[e.createElementVNode("div",Be,[e.createElementVNode("span",null,e.toDisplayString(l.ua||l.header||l.name),1),j(l)?(e.openBlock(),e.createElementBlock("span",Ee,[e.renderSlot(a.$slots,"sort",{asc:L(l.name)},()=>[e.createTextVNode(e.toDisplayString(Me(l.name)),1)])])):e.createCommentVNode("",!0)])],10,we))),128))])],2),e.createElementVNode("tbody",{class:e.normalizeClass(k.value.tbody)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(u.value,(l,d)=>(e.openBlock(),e.createElementBlock("tr",{key:d,class:e.normalizeClass([k.value.tr,t.classTr,t.clickable?"cursor-pointer":""]),onClick:s=>t.clickable?He(l):void 0},[a.selectable?(e.openBlock(),e.createElementBlock("td",{key:0,class:e.normalizeClass(["whitespace-nowrap",k.value.td,D.value.cell,t.classTd,"w-12"])},[e.createElementVNode("input",{type:"checkbox",checked:b(l),onChange:s=>E(l),class:e.normalizeClass(["h-4 w-4 focus:ring-blue-500 rounded",k.value.checkbox])},null,42,Ve)],2)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(re.value,s=>(e.openBlock(),e.createElementBlock("td",{key:s.name,class:e.normalizeClass(["whitespace-nowrap",k.value.td,D.value.cell,t.classTd,s.align?`text-${s.align}`:"",te(s)])},[s.action&&p.value?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(p.value),{key:0,row:l,value:R(s,l)},null,8,["row","value"])):s.slotName&&z.value[s.name]?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(z.value[s.name]),{key:1,data:l,value:R(s,l),row:l,column:s},null,8,["data","value","row","column"])):(e.openBlock(),e.createBlock(e.resolveDynamicComponent(qe(s.format)),{key:2,value:R(s,l),row:l,column:s,href:s.link?.href,target:s.link?.target,onClick:s.link?.onClick},null,8,["value","row","column","href","target","onClick"]))],2))),128))],10,$e))),128))],2)],6)],2)])):e.createCommentVNode("",!0),Oe.value&&!x.value&&!t.loading&&!C.value?(e.openBlock(),e.createBlock(I,{key:3,page:oe.value,limit:le.value,total:ne.value,theme:t.theme,size:t.size,"onUpdate:page":We},null,8,["page","limit","total","theme","size"])):e.createCommentVNode("",!0),!x.value&&!t.loading&&!C.value&&u.value.length===0?(e.openBlock(),e.createElementBlock("div",{key:4,class:e.normalizeClass(["text-center py-8",k.value.empty])}," Дані відсутні ",2)):e.createCommentVNode("",!0)],2))}}),Ne={style:{display:"none"}},Q=e.defineComponent({name:"Column",__name:"Column",props:{field:{},name:{},header:{},label:{},format:{},hidden:{type:Boolean},sortable:{type:Boolean},width:{},align:{},slot:{},slotName:{},link:{},action:{type:Boolean},getCellData:{type:Function},suffix:{}},setup(g){const o=g,t=e.useSlots(),m=e.inject("registerColumn");return e.onMounted(()=>{if(m){const{field:n,name:r,header:i,label:h,format:x,slotName:C,link:w,action:p,getCellData:u,suffix:b,...E}=o,V={name:n||r||"",ua:i||h||"",format:x||"text",slotName:C||(t.body?"body":void 0),link:w,action:p,getCellData:u,suffix:b,...E};console.log("Registering column:",V);const L=t.body;m(V,L)}}),(n,r)=>(e.openBlock(),e.createElementBlock("div",Ne,[e.renderSlot(n.$slots,"body",{data:{}})]))}}),ve={class:"mt-4"},Se={class:"text-sm text-gray-600 dark:text-gray-300"},X=e.defineComponent({__name:"SelectionInfo",props:{selectedRows:{},totalCount:{}},setup(g){const o=g,t=e.computed(()=>o.selectedRows.length);return(m,n)=>(e.openBlock(),e.createElementBlock("div",ve,[e.createElementVNode("div",Se," Обрано: "+e.toDisplayString(t.value)+" з "+e.toDisplayString(m.totalCount)+" записів ",1)]))}}),De={class:"mt-4"},ze={class:"border-b border-gray-200 dark:border-gray-700"},Te={class:"-mb-px flex space-x-8"},Fe=["onClick"],Ie={class:"mt-4"},Le={class:"bg-gray-900 rounded-lg overflow-hidden"},je={class:"flex items-center justify-between px-4 py-2 bg-gray-800 border-b border-gray-700"},Re={class:"text-sm text-gray-300"},Pe=["onClick"],Ae={class:"p-4 text-sm text-gray-100 overflow-x-auto"},Y=e.defineComponent({__name:"CodeTabs",props:{tabs:{},defaultTab:{default:void 0}},setup(g){const o=g,t=e.ref(o.defaultTab||o.tabs[0]?.id||""),m=async n=>{try{await navigator.clipboard.writeText(n),console.log("Код скопійовано!")}catch(r){console.error("Помилка копіювання:",r)}};return(n,r)=>(e.openBlock(),e.createElementBlock("div",De,[e.createElementVNode("div",ze,[e.createElementVNode("nav",Te,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.tabs,i=>(e.openBlock(),e.createElementBlock("button",{key:i.id,onClick:h=>t.value=i.id,class:e.normalizeClass(["py-2 px-1 border-b-2 font-medium text-sm transition-colors",t.value===i.id?"border-blue-500 text-blue-600 dark:text-blue-400":"border-transparent text-gray-500 hover:text-gray-700 hover:border-gray-300 dark:text-gray-400 dark:hover:text-gray-300"])},e.toDisplayString(i.label),11,Fe))),128))])]),e.createElementVNode("div",Ie,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.tabs,i=>e.withDirectives((e.openBlock(),e.createElementBlock("div",{key:i.id},[e.createElementVNode("div",Le,[e.createElementVNode("div",je,[e.createElementVNode("span",Re,e.toDisplayString(i.label),1),e.createElementVNode("button",{onClick:h=>m(i.content),class:"text-gray-400 hover:text-white transition-colors",title:"Копіювати код"},r[0]||(r[0]=[e.createElementVNode("svg",{class:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z"})],-1)]),8,Pe)]),e.createElementVNode("pre",Ae,[e.createElementVNode("code",null,e.toDisplayString(i.content),1)])])])),[[e.vShow,t.value===i.id]])),128))])]))}});$.install=function(o){o.component("DataTable",$),o.component("Column",Q),o.component("Pagination",I),o.component("SelectionInfo",X),o.component("CodeTabs",Y)},f.ArrayFormat=G,f.BadgeFormat=J,f.CodeTabs=Y,f.Column=Q,f.DataTable=$,f.DateFormat=U,f.LinkFormat=K,f.NumberFormat=O,f.Pagination=I,f.SelectionInfo=X,f.TextFormat=q,f.default=$,f.formatComponents=F,Object.defineProperties(f,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
package/package.json CHANGED
@@ -1,11 +1,9 @@
1
1
  {
2
2
  "name": "@opengis/table",
3
- "version": "0.0.1",
3
+ "version": "0.0.11",
4
4
  "description": "A Vue 3 data table component with advanced features",
5
- "main": "dist/index.mjs",
6
- "files": [
7
- "dist"
8
- ],
5
+ "private": false,
6
+ "main": "index.mjs",
9
7
  "keywords": [
10
8
  "vue",
11
9
  "vue3",
@@ -14,46 +12,6 @@
14
12
  "component",
15
13
  "typescript"
16
14
  ],
17
- "license": "MIT",
18
- "peerDependencies": {
19
- "vue": "^3.0.0"
20
- },
21
- "devDependencies": {
22
- "@tsconfig/node22": "^22.0.2",
23
- "@types/node": "^22.15.32",
24
- "@vitejs/plugin-vue": "^6.0.0",
25
- "@vue/tsconfig": "^0.7.0",
26
- "typescript": "~5.8.0",
27
- "vite": "^7.0.0",
28
- "vue-tsc": "^2.2.10",
29
- "eslint": "8.49.0",
30
- "eslint-config-airbnb": "19.0.4",
31
- "eslint-plugin-import": "^2.25.3",
32
- "eslint-plugin-vue": "^9.17.0",
33
- "@vue/eslint-config-typescript": "^12.0.0",
34
- "vue": "^3.5.17"
35
- },
36
- "scripts": {
37
- "lint": "eslint src --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore",
38
- "dev": "vite",
39
- "build": "vite build",
40
- "docs": "vite docs",
41
- "build:lib": "vite build --config vite.lib.config.ts",
42
- "build:types": "copy src\\types\\index.ts dist\\types.d.ts",
43
- "build:full": "npm run build:lib && npm run build:types",
44
- "preview": "vite preview",
45
- "build-only": "vite build",
46
- "prepublishOnly": "bun run build ",
47
- "docs:dev": "npm run --prefix ./docs docs:dev",
48
- "docs:build": "npm run --prefix ./docs docs:build",
49
- "docs:preview": "npm run --prefix ./docs docs:preview"
50
- },
51
- "directories": {
52
- "example": "examples"
53
- },
54
- "repository": {
55
- "type": "git",
56
- "url": "https://git.softpro.ua/npm/table.git"
57
- },
58
- "author": "softpro"
15
+ "author": "softpro",
16
+ "license": "MIT"
59
17
  }
package/dist/index.css DELETED
@@ -1 +0,0 @@
1
- .badge[data-v-9d7cd70c]{transition:all .2s ease-in-out}.badge[data-v-9d7cd70c]:hover{transform:scale(1.05)}