wiki.techinc.nl/resources/lib/codex/modules/CdxTable.cjs

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

2 lines
16 KiB
JavaScript
Raw Normal View History

"use strict";const e=require("vue"),te=require("./CdxCheckbox.cjs"),f=require("./Icon.js"),ae=require("./CdxButton.cjs"),ne=require("./CdxSelect.cjs"),P=require("./useModelWrapper.cjs"),c=require("./useI18n.cjs"),$=require("./_plugin-vue_export-helper.js"),oe=require("./CdxProgressBar.cjs"),y=require("./constants.js"),le=e.defineComponent({name:"CdxTablePager",components:{CdxButton:ae,CdxIcon:f.CdxIcon,CdxSelect:ne},props:{paginationSizeOptions:{type:Array,required:!0},itemsPerPage:{type:Number,required:!0},nextDisabled:{type:Boolean,default:!1},prevDisabled:{type:Boolean,default:!1},lastDisabled:{type:Boolean,default:!1}},emits:["update:itemsPerPage","first","last","next","prev"],setup(t,{emit:n}){const s=P(e.toRef(t,"itemsPerPage"),n,"update:itemsPerPage"),i=c("cdx-table-pager-items-per-page-default","Results per page"),v=c("cdx-table-pager-items-per-page-current",d=>"".concat(d," rows"),[s]),u=c("cdx-table-pager-button-first-page","First page"),p=c("cdx-table-pager-button-next-page","Next page"),g=c("cdx-table-pager-button-prev-page","Previous page"),m=c("cdx-table-pager-button-last-page","Last page");return{defaultItemsPerPageLabel:i,currentItemsPerPageLabel:v,btnLabelFirst:u,btnLabelNext:p,btnLabelPrev:g,btnLabelLast:m,wrappedItemsPerPage:s,cdxIconPrevious:f.d7,cdxIconNext:f.j6,cdxIconMoveFirst:f.P6,cdxIconMoveLast:f.N6}}}),se={class:"cdx-table-pager"},ie={class:"cdx-table-pager__start"},re={key:0},de={key:1},ce={class:"cdx-table-pager__center"},ue={class:"cdx-table-pager__end"};function pe(t,n,s,i,v,u){const p=e.resolveComponent("cdx-select"),g=e.resolveComponent("cdx-icon"),m=e.resolveComponent("cdx-button");return e.openBlock(),e.createElementBlock("div",se,[e.createElementVNode("div",ie,[e.createVNode(p,{selected:t.wrappedItemsPerPage,"onUpdate:selected":n[0]||(n[0]=d=>t.wrappedItemsPerPage=d),"default-label":t.defaultItemsPerPageLabel,"menu-items":t.paginationSizeOptions},{label:e.withCtx(({selectedMenuItem:d,defaultLabel:l})=>[d?(e.openBlock(),e.createElementBlock("span",re,[e.createElementVNode("span",null,e.toDisplayString(t.currentItemsPerPageLabel),1)])):(e.openBlock(),e.createElementBlock("span",de,e.toDisplayString(l),1))]),_:1},8,["selected","default-label","menu-items"])]),e.createElementVNode("div",ce,[e.renderSlot(t.$slots,"default")]),e.createElementVNode("div",ue,[e.createVNode(m,{disabled:t.prevDisabled,class:"cdx-table-pager__button-first",weight:"quiet","aria-label":t.btnLabelFirst,onClick:n[1]||(n[1]=d=>t.$emit("first"))},{default:e.withCtx(()=>[e.createVNode(g,{icon:t.cdxIconMoveFirst},null,8,["icon"])]),_:1},8,["disabled","aria-label"]),e.createVNode(m,{disabled:t.prevDisabled,class:"cdx-table-pager__button-prev",weight:"quiet","aria-label":t.btnLabelPrev,onClick:n[2]||(n[2]=d=>t.$emit("prev"))},{default:e.withCtx(()=>[e.createVNode(g,{icon:t.cdxIconPrevious},null,8,["icon"])]),_:1},8,["disabled","aria-label"]),e.createVNode(m,{disabled:t.nextDisabled,class:"cdx-table-pager__button-next",weight:"quiet","aria-label":t.btnLabelNext,onClick:n[3]||(n[3]=d=>t.$emit("next"))},{default:e.withCtx(()=>[e.createVNode(g,{icon:t.cdxIconNext},null,8,["icon"])]),_:1},8,["disabled","aria-label"]),e.createVNode(m,{disabled:t.nextDisabled||t.lastDisabled,class:"cdx-table-pager__button-last",weight:"quiet","aria-label":t.btnLabelLast,onClick:n[4]||(n[4]=d=>t.$emit("last"))},{default:e.withCtx(()=>[e.createVNode(g,{icon:t.cdxIconMoveLast},null,8,["icon"])]),_:1},8,["disabled","aria-label"])])])}const ge=$._export_sfc(le,[["render",pe]]),me=y.makeStringTypeValidator(y.TableTextAlignments),be=y.makeStringTypeValidator(y.TablePaginationPositions),ve={none:f.T7,asc:f.x8,desc:f.l4},fe={none:"none",asc:"ascending",desc:"descending"},he=e.defineComponent({name:"CdxTable",components:{CdxCheckbox:te,CdxIcon:f.CdxIcon,CdxTablePager:ge,CdxProgressBar:oe},props:{caption:{type:String,required:!0},hideCaption:{type:Boolean,default:!1},columns:{type:Array,default:()=>[],validator:t=>{const n=t.map(i=>i.id);return new Set(n).size===n.length?!0:(console.warn('Each column in the "columns" prop of CdxTable must have a unique "id