tablevu 0.2.5 → 0.2.6
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/array.js +1 -1
- package/dist/get.js +1 -1
- package/dist/odata.js +1 -1
- package/dist/table.js +1 -1
- package/dist/webapi.js +1 -1
- package/package.json +1 -1
- package/src/odata.js +0 -1
- package/src/table.js +1 -3
package/dist/array.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export default function(
|
|
1
|
+
export default function(props,data){let d=[];if(Array.isArray(data))d=data;return new Promise((resolve,reject)=>{if(props.pageSize){d=d.slice((props.currPage-1)*props.pageSize,props.currPage*props.pageSize)}if(props.sort&&props.sort.length>0){for(let i=props.sort.length-1;i>=0;i--){let f=null;if(props.sort[i].index>-1)f=props.cols[props.sort[i].index].name;else f=props.sort[i].name;if(props.sort[i].dir=="desc")d.sort((a,b)=>a[f]<b[f]?1:b[f]<a[f]?-1:0);else d.sort((a,b)=>a[f]>b[f]?1:b[f]>a[f]?-1:0)}}resolve({rows:d,count:d.length})})}
|
package/dist/get.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export default function get(
|
|
1
|
+
export default function get(url,options){return new Promise((resolve,reject)=>{fetch(url,options).then(res=>res.json()).then(res=>{let r;let c=0;if(res){if(res.hasOwnProperty("value")){r=res.value;if(res.hasOwnProperty("@count"))c=parseInt(res["@count"]);else if(res.hasOwnProperty("count"))c=parseInt(res["count"]);else c=0}else{r=res;c=0}resolve({rows:r,count:c})}else resolve({rows:null,count:null})}).catch(err=>{console.error(err);reject(err)})})}
|
package/dist/odata.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import get from"./get.js";function filter(
|
|
1
|
+
import get from"./get.js";function filter(q){function fuval(q){if(q===null){return"null"}else if(typeof q==="string"){return"'"+q+"'"}else{if(typeof q==="number")return q;else{debugger;if(q.getMonth&&typeof q.getMonth==="function")return q.toISOString();else return q.func+"("+q.params.join(",")+")"}}}let s="";if(q&&q.filters)for(let i=0;i<q.filters.length;i++){if(i>0)s=s+` ${q.type||"and"} `;if(q.filters[i].column){if(q.filters[i].operator=="in")s=s+fuval(q.filters[i].value)+" "+q.filters[i].operator+" "+q.filters[i].column;else s=s+q.filters[i].column+" "+q.filters[i].operator+" "+fuval(q.filters[i].value)}else{if(q.filters[i].func)s=s+q.filters[i].func+"("+q.filters[i].params.map(m=>fuval(m)).join(",")+")";else if(q.filters[i])s=s+"("+filter(q.filters[i])+")"}}return s}export default class odata{constructor(url,options){this.adapter=props=>{const u=new URL(url);if(props.pageSize){u.searchParams.append("$skip",props.pageSize*(props.currPage-1));u.searchParams.append("$top",props.pageSize)}if(props.select&&props.select.length>0)u.searchParams.append("$select",props.select.join(","));if(props.expand&&props.expand.length>0)u.searchParams.append("$expand",props.expand.map(m=>m.name+(m.select&&m.select.length>0?"($select="+m.select.join(",")+")":"")).join(","));let f=[];if(props.filter&&Object.prototype.hasOwnProperty.call(props.filter,"filters")){let l=filter(props.filter);if(l)f.push(l)}if(props.filter){let l=filter(props.filter);if(l)f.push(l)}if(props.search){let l=props.cols.filter(q=>q.searchable==undefined||q.searchable==true).map(q=>"contains("+q.name.replaceAll(".","/")+",'"+props.search+"')").join(" or ");if(l)f.push("("+l+")")}if(f&&f.length>0)u.searchParams.append("$filter",f.join(" and "));if(props.sort&&props.sort.length>0)u.searchParams.append("$orderby",props.sort.map(m=>{let n={index:-1,name:"",dir:null};if(Object.prototype.hasOwnProperty.call(m,"index")){n.index=m.index}else{n.name=m.name}n.dir=m.dir;return n}).map(m=>{return(m.index>-1?props.cols[m.index].name:m.name)+(m.dir?" "+m.dir:"")}).join(","));if(props.count)u.searchParams.append("$count",true);return get(u,options)}}}
|
package/dist/table.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{h,onMounted,reactive,ref,watch,isReactive,isRef}from"vue";import adaptarr from"./array.js";const tablevuStatuses={Error:-1,Ready:0,Loading:1},tablevu={props:{settings:{type:Object,default:null},data:{type:[Array,Function]},group:{type:[String,Object]},search:{type:String},filter:{type:[Array,Object]},command:{type:Array,default:[]},rowid:{type:String},onRowClick:{type:Function},onRowDblClick:{type:Function},class:{type:String,default:"table"},style:{type:String,default:null}},emits:["onRowClick","onRowDblClick"],setup(a,{attrs:b,slots:c,emit:d,expose:e}){function f(a,b){z=[],y=[];for(let d=0;d<b.length;d++){let e=null,f=null;const c=b[d];if(a.value)e="function"==typeof a.value?a.value(c):c[a.value];else if("function"==typeof a)e=a(c);else if("bigint"==typeof a||"number"==typeof a){const b=parseInt(a);b&&(e=c[b])}else"string"==typeof a&&(e=c[a]);a.content&&("function"==typeof a.content?f=a.content(c):f=c[a.content]);let g=z.findIndex(a=>a.group==e);-1==g&&(g=z.push({group:e,content:f,expand:D.group.expandAll})-1),y.push(g)}}function g(){n(1)}function i(){1<D.page.current?n(D.page.current-1):n(D.page.current)}function j(){n(D.page.current+1)}function k(){n(D.page.count)}function l(){n(D.page.current)}function m(a,b){if(D.sort&&0<D.sort.length){let c=D.sort.findIndex(b=>b.index==a);if(0>c){let b=D.columns[a].name;c=D.sort.findIndex(a=>a.name==b)}0==c?D.sort[c].dir=b?b:D.sort[0].dir?null:"desc":0<c&&D.sort.splice(c,1),0!=c&&D.sort.unshift({index:a,dir:b?b:null}),2<D.sort.length&&D.sort.pop()}else D.sort.push({index:a,dir:b?b:null});n(D.page.current)}function n(b){let c=null;if(a.data)Array.isArray(a.data)&&(c=a.data);else return;D.status=tablevuStatuses.Loading,A&&A({pageSize:D.page.size,currPage:b,sort:D.sort,cols:D.columns,filter:D.filter,search:D.search},c).then(a=>{w=D.onData?D.onData(a.rows):a.rows,D.group&&("string"==typeof D.group||"bigint"==typeof D.group||"object"==typeof D.group&&D.group.value)&&f(D.group,w),D.page.count=0<a.count&&0<D.page.size?a.count/D.page.size:0,D.page.current=b,D.status=tablevuStatuses.Ready,D.time=Date.now()})}function p(a,b){if(b){let c;if("datetime"==a.type||"date"==a.type||"time"==a.type){let d=new Date(b);c="date"==a.type?d.toLocaleDateString():"time"==a.type?d.toLocaleTimeString():d.toLocaleString()}else c="numeric"==a.type?parseFloat(b):"integer"==a.type?parseInt(b):b;return c}return""}function q(a,b){const c={style:{}};a.colspan&&1<a.colspan&&(c.colspan=a.colspan),a.align&&(c.style["text-align"]=a.align),a.width&&(c.style["max-width"]=a.width),a.color&&(c.style.color=a.color),a.backgroundColor&&(c.style["background-color"]=a.backgroundColor);const d=p(a,b);return h("td",c,d)}function s(a,b){const c={style:{}};a.colspan&&1<a.colspan&&(c.colspan=a.colspan),a.align&&(c.style["text-align"]=a.align),a.width&&(c.style["max-width"]=a.width);let d=a.render(b);return h("td",c,d)}function t(a){const c=h("button",{title:a.expand,onClick:b=>{console.log(a.expand),a.expand=!a.expand,b.currentTarget.value=a.expand?"\u25BC":"\u25BA",D.time=Date.now(),b.preventDefault()},style:{padding:0,margin:"0 6px 0 0",width:"12px",height:"100%",border:"none",outline:0,backgroundColor:"transparent"}},a.expand?"\u25BC":"\u25BA"),b=a.content||a.group;return h("tr",{},h("td",{colspan:D.columns.length,class:D.group.class},[c,b]))}function u(b,e){const f={},g=[];f.key=b,f.index=b,a.rowid&&(f.rowid=e[a.rowid]);for(let a=0;a<D.columns.length;a+=1){let b;const d=D.columns[a];if(d.render)b=s(d,e),g.push(b);else{if(d.depth){b=e;for(let a=0;a<d.depth.length;a+=1)b&&(b=b[d.depth[a]])}else b=e[d.name];g.push(q(d,b))}}return f.ondblclick=a=>{const b=w[a.currentTarget.attributes.index.value];d("onRowDblClick",a,b)},a.onRowClick&&(f.onClick=b=>{const c=w[b.currentTarget.attributes.index.value];a.onRowClick(b,c)}),h("tr",f,g)}function v(){const a=[];if(w&&0<w.length)if(z&&0<z.length){let b=[];for(let a=0;a<z.length;a++)b.push({index:a,childs:[]});for(let a=0;a<w.length;a++){const c=y[a];b[c].childs.push(u(a,w[a]))}for(let c=0;c<z.length;c++)a.push(t(z[c])),z[c].expand&&a.push(b[c].childs)}else for(let b=0;b<w.length;b++)a.push(u(b,w[b]));return a}let w=[],y=[],z=[],A=null,B=null,C={rowClick:a.settings.onRowClick||a.onRowClick,rowDblClick:a.settings.onRowDblClick||a.onRowDblClick};const D=reactive({caption:null,group:{value:a.settings&&a.settings.group?a.settings.group.value:a.group?a.group:null,content:a.settings&&a.settings.group?a.settings.group.content:null,expandAll:!0,class:"table-light"},page:{count:0,size:a.settings&&a.settings.page?a.settings.page.size:0,current:0,type:null},sort:a.settings&&a.settings.sort?a.settings.sort:[],columns:a.settings&&a.settings.columns?a.settings.columns:[],footer:{button:{class:"btn"}}});a.data&&(Array.isArray(a.data)?A=adaptarr:A=a.data),a.filter&&(D.filter=a.filter),(isRef(a.search)||isReactive(a.search))&&watch(()=>a.search,(b,c)=>{const d=parseInt(a.settings.searchMinChar)||3;B&&clearTimeout(B),(c&&c.length>d&&(null==b||null==b||b.length<=d)||b&&b.length>d)&&(B=setTimeout(()=>{D.search=b&&b.length>d?a.search:null,l()},444))}),a.filter&&(D.filter=a.filter),(isRef(a.filter)||isReactive(a.filter))&&watch(()=>a.filter,()=>{D.filter=a.filter?a.filter:null,l()},{deep:!0}),(isRef(a.command)||isReactive(a.command))&&watch(()=>a.command,b=>{if(b&&0<b.length){const d=a.command[b.length-1];d&&d.name&&("refresh"==d.name.toLowerCase()?l():"first"==d.name.toLowerCase()?g():"prior"==d.name.toLowerCase()?i():"next"==d.name.toLowerCase()?j():"last"==d.name.toLowerCase()?k():console.log("Unknown command")),a.command.length=0}},{deep:!0}),0==D.columns.length&&alert("Columns not defined !");for(let f=0;f<D.columns.length;f++)D.columns[f].name&&-1<D.columns[f].name.indexOf(".")&&(D.columns[f].depth=D.columns[f].name.split("."));return n(1),onMounted(()=>{console.log("tablevu.mounted")}),{spec:D,renderHeader:function(){let b=[],c=1;for(let d=0;d<D.columns.length;d+=1){if(1<c){c--;continue}const e=[];D.columns[d].label?e.push(h("span",D.columns[d].label)):e.push(h("span",D.columns[d].name)),D.sort&&0<D.sort.length&&D.sort[0].index==d&&("desc"==D.sort[0].dir?e.push(h("span",{style:{float:"right"}},"\u25BC")):e.push(h("span",{style:{float:"right"}},"\u25B2")));let g={position:"relative"};D.columns[d].width&&(g.width=D.columns[d].width,g.minWidth=D.columns[d].width,g.maxWidth=D.columns[d].width);let i={display:"block","font-weight":500,textDecoration:"none",color:"black",textAlign:"center"};D.columns[d].header&&(D.columns[d].header.colspan&&(c=parseInt(D.columns[d].header.colspan)||1),D.columns[d].header.align&&(i.textAlign=D.columns[d].header.align),D.columns[d].header.backgroundColor&&(g.backgroundColor=D.columns[d].header.backgroundColor),D.columns[d].header.color&&(i.color=D.columns[d].header.color));let j,a;if(D.columns[d].popup){const b=ref(null);let f=[h("a",{href:"#",onClick(a){m(d),a.preventDefault()},style:{display:"block",textDecoration:"none",color:"black",fontWeight:"initial",padding:".25rem"}},"Order by Ascending"),h("a",{href:"#",onClick(a){m(d,"desc"),a.preventDefault()},style:{display:"block",textDecoration:"none",color:"black",fontWeight:"initial",padding:".25rem"}},"Order by Descending")];j=h("a",{href:"#",onClick(a){b.value.style.display=b.value&&b.value.style&&b.value.style.display&&"block"==b.value.style.display?"none":"block",a.preventDefault()},style:i},e),a=h("div",{ref:b,style:{position:"absolute",display:"none",width:D.columns[d].width||"12rem",height:"fit-content",border:"1px solid lightgray",backgroundColor:"whitesmoke",zIndex:1,left:0,top:"2rem",bottom:0,right:0,padding:".25rem"}},f)}else j=h("a",{href:"#",onClick(a){m(d),a.preventDefault()},style:i},e);D.columns[d].filter,b.push(h("th",{colspan:1<c?c:null,style:g},[j,a]))}const a=h("tr",{},b);return[a]},renderBody:v,renderFooter:function(){const a=h("button",{class:D.footer.button.class,style:"margin-right: .5rem",onClick:g,disabled:1==D.page.current},"\u25C0\u25C0"),b=h("button",{class:D.footer.button.class,style:"margin-right: .5rem",onClick:k,disabled:0<D.page.count},"\u25B6\u25B6"),c=h("button",{class:D.footer.button.class,style:"margin-right: .5rem"},D.page.current),d=h("button",{class:D.footer.button.class,style:"margin-right: .5rem",onClick:i,disabled:1==D.page.current},"\u25C0"),e=h("button",{class:D.footer.button.class,style:"margin-right: .5rem",onClick:j,disabled:0<D.page.count&&D.page.current==D.page.count},"\u25B6"),f=h("td",{colspan:D.columns.length,align:"center"},[a,d,c,e,b]),l=h("tr",{},[f]);return[l]},renderCaption:function(){return null}}},render(a){console.log("tablevu.render",this.spec.status);let b={class:"tablevu"};a.class&&(b.class="tablevu "+a.class),a.style&&(b.style=a.style);let c=[];return c.push(h("thead",{},this.renderHeader())),this.spec.status==tablevuStatuses.Ready&&c.push(h("tbody",{"data-time":this.spec.time},this.renderBody())),this.spec.caption&&c.push(h("caption",{},this.renderCaption())),0<this.spec.page.size&&c.push(h("tfoot",{},this.renderFooter())),h("table",b,c)}};export default tablevu;
|
|
1
|
+
import{h,onMounted,reactive,ref,watch,isReactive,isRef}from"vue";import adaptarr from"./array.js";const tablevuStatuses={Error:-1,Ready:0,Loading:1};const tablevu={props:{settings:{type:Object,default:null},data:{type:[Array,Function]},group:{type:[String,Object]},search:{type:String},filter:{type:[Array,Object]},command:{type:Array,default:[]},rowid:{type:String},onRowClick:{type:Function},onRowDblClick:{type:Function},class:{type:String,default:"table"},style:{type:String,default:null}},emits:["onRowClick","onRowDblClick"],setup(props,{attrs,slots,emit,expose}){let rows=[];let rowg=[];let grps=[];let adapter=null;let timer=null;let events={rowClick:props.settings.onRowClick||props.onRowClick,rowDblClick:props.settings.onRowDblClick||props.onRowDblClick};const spec=reactive({caption:null,group:{value:props.settings&&props.settings.group?props.settings.group.value:props.group?props.group:null,content:props.settings&&props.settings.group?props.settings.group.content:null,expandAll:true,class:"table-light"},page:{count:0,size:props.settings&&props.settings.page?props.settings.page.size:0,current:0,type:null},sort:props.settings&&props.settings.sort?props.settings.sort:[],columns:props.settings&&props.settings.columns?props.settings.columns:[],footer:{button:{class:"btn"}}});if(props.data){if(Array.isArray(props.data)){adapter=adaptarr}else{adapter=props.data}}if(props.filter)spec.filter=props.filter;if(isRef(props.search)||isReactive(props.search))watch(()=>props.search,(n,o)=>{const x=parseInt(props.settings.searchMinChar)||3;if(timer)clearTimeout(timer);if(o&&o.length>x&&(n==undefined||n==null||n.length<=x)||n&&n.length>x){timer=setTimeout(()=>{if(n&&n.length>x)spec.search=props.search;else spec.search=null;refresh()},444)}});if(props.filter)spec.filter=props.filter;if(isRef(props.filter)||isReactive(props.filter))watch(()=>props.filter,()=>{if(props.filter)spec.filter=props.filter;else spec.filter=null;refresh()},{deep:true});if(isRef(props.command)||isReactive(props.command))watch(()=>props.command,(n,o)=>{if(n&&n.length>0){const c=props.command[n.length-1];if(c&&c.name){if(c.name.toLowerCase()=="refresh")refresh();else if(c.name.toLowerCase()=="first")first();else if(c.name.toLowerCase()=="prior")prior();else if(c.name.toLowerCase()=="next")next();else if(c.name.toLowerCase()=="last")last();else console.log("Unknown command")}props.command.length=0}},{deep:true});function prepareGroup(g,r){grps=[];rowg=[];for(let i=0;i<r.length;i++){let v=null;let c=null;const o=r[i];if(g.value){if(typeof g.value=="function")v=g.value(o);else v=o[g.value]}else if(typeof g=="function")v=g(o);else{if(typeof g=="bigint"||typeof g=="number"){const l=parseInt(g);if(l)v=o[l]}else if(typeof g=="string")v=o[g]}if(g.content){if(typeof g.content=="function")c=g.content(o);else c=o[g.content]}let n=grps.findIndex(f=>f.group==v);if(n==-1){n=grps.push({group:v,content:c,expand:spec.group.expandAll})-1}rowg.push(n)}}function first(){page(1)}function prior(){if(spec.page.current>1){page(spec.page.current-1)}else{page(spec.page.current)}}function next(){page(spec.page.current+1)}function last(){page(spec.page.count)}function refresh(){page(spec.page.current)}function orderby(ind,dir){if(spec.sort&&spec.sort.length>0){let l=spec.sort.findIndex(f=>f.index==ind);if(l<0){let n=spec.columns[ind].name;l=spec.sort.findIndex(f=>f.name==n)}if(l==0){spec.sort[l].dir=dir?dir:spec.sort[0].dir?null:"desc"}else if(l>0){spec.sort.splice(l,1)}if(l!=0){spec.sort.unshift({index:ind,dir:dir?dir:null})}if(spec.sort.length>2){spec.sort.pop()}}else{spec.sort.push({index:ind,dir:dir?dir:null})}page(spec.page.current)}function page(currentPage){let dat=null;if(props.data){if(Array.isArray(props.data))dat=props.data}else return;spec.status=tablevuStatuses.Loading;if(adapter){adapter({pageSize:spec.page.size,currPage:currentPage,sort:spec.sort,cols:spec.columns,filter:spec.filter,search:spec.search},dat).then(ada=>{if(spec.onData)rows=spec.onData(ada.rows);else rows=ada.rows;if(spec.group&&(typeof spec.group=="string"||typeof spec.group=="bigint"||typeof spec.group=="object"&&spec.group.value))prepareGroup(spec.group,rows);spec.page.count=ada.count>0&&spec.page.size>0?ada.count/spec.page.size:0;spec.page.current=currentPage;spec.status=tablevuStatuses.Ready;spec.time=Date.now()})}}function renderValue(col,val){if(val){let v;if(col.type=="datetime"||col.type=="date"||col.type=="time"){let t=new Date(val);if(col.type=="date")v=t.toLocaleDateString();else if(col.type=="time")v=t.toLocaleTimeString();else v=t.toLocaleString()}else{if(col.type=="numeric"){v=parseFloat(val)}else{if(col.type=="integer"){v=parseInt(val)}else v=val}}return v}else return""}function renderCell(col,val){const o={style:{}};if(col.colspan&&col.colspan>1){o.colspan=col.colspan}if(col.align){o.style["text-align"]=col.align}if(col.width){o.style["max-width"]=col.width}if(col.color){o.style["color"]=col.color}if(col.backgroundColor){o.style["background-color"]=col.backgroundColor}const v=renderValue(col,val);return h("td",o,v)}function renderCustomCell(col,row){const o={style:{}};if(col.colspan&&col.colspan>1){o.colspan=col.colspan}if(col.align){o.style["text-align"]=col.align}if(col.width){o.style["max-width"]=col.width}let f=col.render(row);return h("td",o,f)}function renderGroup(grp){const b=h("button",{title:grp.expand,onClick:event=>{grp.expand=grp.expand?false:true;event.currentTarget.value=grp.expand?"▼":"►";spec.time=Date.now();event.preventDefault()},style:{padding:0,margin:"0 6px 0 0",width:"12px",height:"100%",border:"none",outline:0,backgroundColor:"transparent"}},grp.expand?"▼":"►");const v=grp.content||grp.group;return h("tr",{},h("td",{colspan:spec.columns.length,class:spec.group.class},[b,v]))}function renderRow(index,row){const o={};const r=[];o.key=index;o.index=index;if(props.rowid){o.rowid=row[props.rowid]}for(let i=0;i<spec.columns.length;i+=1){let v;const c=spec.columns[i];if(c.render){v=renderCustomCell(c,row);r.push(v)}else{if(c.depth){v=row;for(let j=0;j<c.depth.length;j+=1){if(v)v=v[c.depth[j]]}}else{v=row[c.name]}r.push(renderCell(c,v))}}o.ondblclick=event=>{const r=rows[event.currentTarget.attributes.index.value];emit("onRowDblClick",event,r)};if(props.onRowClick){o.onClick=event=>{const r=rows[event.currentTarget.attributes.index.value];props.onRowClick(event,r)}}return h("tr",o,r)}function renderHeader(){let ar=[];let sp=1;for(let i=0;i<spec.columns.length;i+=1){if(sp>1){sp--;continue}const cl=[];if(spec.columns[i].label){cl.push(h("span",spec.columns[i].label))}else{cl.push(h("span",spec.columns[i].name))}if(spec.sort&&spec.sort.length>0&&spec.sort[0].index==i){if(spec.sort[0].dir=="desc")cl.push(h("span",{style:{float:"right"}},"▼"));else cl.push(h("span",{style:{float:"right"}},"▲"))}let ch={position:"relative"};if(spec.columns[i].width){ch.width=spec.columns[i].width;ch.minWidth=spec.columns[i].width;ch.maxWidth=spec.columns[i].width}let cy={display:"block","font-weight":500,textDecoration:"none",color:"black",textAlign:"center"};if(spec.columns[i].header){if(spec.columns[i].header.colspan)sp=parseInt(spec.columns[i].header.colspan)||1;if(spec.columns[i].header.align)cy.textAlign=spec.columns[i].header.align;if(spec.columns[i].header.backgroundColor)ch.backgroundColor=spec.columns[i].header.backgroundColor;if(spec.columns[i].header.color)cy.color=spec.columns[i].header.color}let a;let f;if(spec.columns[i].popup){const r=ref(null);let c=[h("a",{href:"#",onClick(event){orderby(i);event.preventDefault()},style:{display:"block",textDecoration:"none",color:"black",fontWeight:"initial",padding:".25rem"}},"Order by Ascending"),h("a",{href:"#",onClick(event){orderby(i,"desc");event.preventDefault()},style:{display:"block",textDecoration:"none",color:"black",fontWeight:"initial",padding:".25rem"}},"Order by Descending")];a=h("a",{href:"#",onClick(event){if(r.value&&r.value.style&&r.value.style.display&&r.value.style.display=="block")r.value.style.display="none";else r.value.style.display="block";event.preventDefault()},style:cy},cl);f=h("div",{ref:r,style:{position:"absolute",display:"none",width:spec.columns[i].width||"12rem",height:"fit-content",border:"1px solid lightgray",backgroundColor:"whitesmoke",zIndex:1,left:0,top:"2rem",bottom:0,right:0,padding:".25rem"}},c)}else a=h("a",{href:"#",onClick(event){orderby(i);event.preventDefault()},style:cy},cl);if(spec.columns[i].filter){}ar.push(h("th",{colspan:sp>1?sp:null,style:ch},[a,f]))}const tr=h("tr",{},ar);return[tr]}function renderBody(){const dr=[];if(rows&&rows.length>0){if(grps&&grps.length>0){let r=[];for(let g=0;g<grps.length;g++)r.push({index:g,childs:[]});for(let i=0;i<rows.length;i++){const x=rowg[i];r[x].childs.push(renderRow(i,rows[i]))}for(let g=0;g<grps.length;g++){dr.push(renderGroup(grps[g]));if(grps[g].expand)dr.push(r[g].childs)}}else{for(let i=0;i<rows.length;i++){dr.push(renderRow(i,rows[i]))}}}return dr}function renderFooter(){const fr=h("button",{class:spec.footer.button.class,style:"margin-right: .5rem",onClick:first,disabled:spec.page.current==1},"◀◀");const ls=h("button",{class:spec.footer.button.class,style:"margin-right: .5rem",onClick:last,disabled:spec.page.count>0},"▶▶");const pg=h("button",{class:spec.footer.button.class,style:"margin-right: .5rem"},spec.page.current);const pr=h("button",{class:spec.footer.button.class,style:"margin-right: .5rem",onClick:prior,disabled:spec.page.current==1},"◀");const nx=h("button",{class:spec.footer.button.class,style:"margin-right: .5rem",onClick:next,disabled:spec.page.count>0&&spec.page.current==spec.page.count},"▶");const td=h("td",{colspan:spec.columns.length,align:"center"},[fr,pr,pg,nx,ls]);const tr=h("tr",{},[td]);return[tr]}function renderCaption(){return null}if(spec.columns.length==0){alert("Columns not defined !")}for(let i=0;i<spec.columns.length;i++)if(spec.columns[i].name&&spec.columns[i].name.indexOf(".")>-1){spec.columns[i].depth=spec.columns[i].name.split(".")}page(1);onMounted(()=>{});return{spec:spec,renderHeader:renderHeader,renderBody:renderBody,renderFooter:renderFooter,renderCaption:renderCaption}},render(props){let prps={class:"tablevu"};if(props.class)prps.class="tablevu "+props.class;if(props.style)prps.style=props.style;let cntn=[];cntn.push(h("thead",{},this.renderHeader()));if(this.spec.status==tablevuStatuses.Ready)cntn.push(h("tbody",{"data-time":this.spec.time},this.renderBody()));if(this.spec.caption)cntn.push(h("caption",{},this.renderCaption()));if(this.spec.page.size>0)cntn.push(h("tfoot",{},this.renderFooter()));return h("table",prps,cntn)}};export default tablevu;
|
package/dist/webapi.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import get from"./get.js";export default class webapi{constructor(
|
|
1
|
+
import get from"./get.js";export default class webapi{constructor(req,data,events){this.adapter=props=>{const u=new URL(req.url);if(props.pageSize){u.searchParams.append("skip",props.pageSize*(props.currPage-1));u.searchParams.append("top",props.pageSize)}if(props.search)u.searchParams.append("search",props.search);if(props.sort&&props.sort.length>0){u.searchParams.append("orderby",props.sort.map(m=>{let n={index:-1,name:""};if(Object.prototype.hasOwnProperty.call(m,"index")){n.index=m.index}else{n.name=m.name}return n}).map(m=>{return m.index>-1?props.cols[m.index].name:m.name}))}let r=null;if(events&&events.onfetch&&typeof events.onfetch=="function")r=events.onfetch(new Request(u,req));else r=new Request(u,req);return get(r)}}}
|
package/package.json
CHANGED
package/src/odata.js
CHANGED
package/src/table.js
CHANGED
|
@@ -336,7 +336,7 @@ const tablevu = {
|
|
|
336
336
|
}
|
|
337
337
|
|
|
338
338
|
function renderGroup(grp) {
|
|
339
|
-
const b = h('button', { title: grp.expand, onClick: event => {
|
|
339
|
+
const b = h('button', { title: grp.expand, onClick: event => { grp.expand = (grp.expand ? false: true); event.currentTarget.value = grp.expand ? '▼': '►'; spec.time = Date.now(); event.preventDefault() }, style: { padding: 0, margin: '0 6px 0 0', width: '12px', height: '100%', border: 'none', outline: 0, backgroundColor: 'transparent' } }, grp.expand ? '▼': '►');
|
|
340
340
|
const v = grp.content || grp.group;
|
|
341
341
|
|
|
342
342
|
|
|
@@ -534,7 +534,6 @@ const tablevu = {
|
|
|
534
534
|
page(1);
|
|
535
535
|
|
|
536
536
|
onMounted(() => {
|
|
537
|
-
console.log('tablevu.mounted');
|
|
538
537
|
});
|
|
539
538
|
|
|
540
539
|
return {
|
|
@@ -545,7 +544,6 @@ const tablevu = {
|
|
|
545
544
|
},
|
|
546
545
|
|
|
547
546
|
render(props) {
|
|
548
|
-
console.log('tablevu.render', this.spec.status);
|
|
549
547
|
let prps = { class: 'tablevu' };
|
|
550
548
|
/*
|
|
551
549
|
if (props.id)
|