@dcodegroup-au/dsg-vue 1.0.8-next → 1.0.9-next

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.
@@ -14,6 +14,10 @@ export interface DsgTableProps {
14
14
  displayPaginationInfo?: boolean;
15
15
  reloadOnChangeTimer?: boolean;
16
16
  selectable?: boolean;
17
+ /** Width of the selection checkbox column (e.g. "4rem", "64px"). */
18
+ selectableColumnWidth?: string;
19
+ /** Width of the expandable toggle column when expandable rows are enabled (e.g. "3rem", "48px"). */
20
+ expandableColumnWidth?: string;
17
21
  /** Custom CSS colour for the Shift+Hover range highlight. Defaults to primary-50. */
18
22
  shiftSelectHighlight?: string;
19
23
  /** Custom CSS colour for the selected row background. Defaults to gray-50. */
@@ -203,6 +207,8 @@ declare function __VLS_template(): {
203
207
  readonly fieldPrefix?: string | undefined;
204
208
  readonly eventPrefix?: string | undefined;
205
209
  readonly selectable?: boolean | undefined;
210
+ readonly selectableColumnWidth?: string | undefined;
211
+ readonly expandableColumnWidth?: string | undefined;
206
212
  readonly shiftSelectHighlight?: string | undefined;
207
213
  readonly selectedRowHighlight?: string | undefined;
208
214
  readonly replaceState?: boolean | undefined;
@@ -265,6 +271,8 @@ declare function __VLS_template(): {
265
271
  collapseAllRows: () => void;
266
272
  getExpandedRows: () => Set<any>;
267
273
  isRowExpanded: (item: any) => boolean;
274
+ getSelection: () => any[];
275
+ clearSelection: () => void;
268
276
  }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
269
277
  "update:filterParams": (value: any) => any;
270
278
  "update:perPage": (value: any) => any;
@@ -317,7 +325,7 @@ declare function __VLS_template(): {
317
325
  "onDsg-table:row-collapsed"?: ((rowData: Record<string, any>, rowIndex: number) => any) | undefined;
318
326
  "onUpdate:filterParams"?: ((value: any) => any) | undefined;
319
327
  "onUpdate:perPage"?: ((value: any) => any) | undefined;
320
- }>, "changePage" | "reload" | "getData" | "setData" | "setLoading" | "expandRow" | "collapseRow" | "toggleRowExpand" | "expandAllRows" | "collapseAllRows" | "getExpandedRows" | "isRowExpanded"> & {
328
+ }>, "changePage" | "reload" | "getData" | "setData" | "setLoading" | "expandRow" | "collapseRow" | "toggleRowExpand" | "expandAllRows" | "collapseAllRows" | "getExpandedRows" | "isRowExpanded" | "getSelection" | "clearSelection"> & {
321
329
  changePage: (page: "next" | "prev" | number) => void;
322
330
  reload: () => void;
323
331
  getData: () => any[] | null;
@@ -330,6 +338,8 @@ declare function __VLS_template(): {
330
338
  collapseAllRows: () => void;
331
339
  getExpandedRows: () => Set<any>;
332
340
  isRowExpanded: (item: any) => boolean;
341
+ getSelection: () => any[];
342
+ clearSelection: () => void;
333
343
  } & {} & import('vue').ComponentCustomProperties & {} & {
334
344
  $slots: Partial<Record<string, (_: {
335
345
  rowData: any;
@@ -422,6 +432,8 @@ declare const __VLS_component: import('vue').DefineComponent<DsgTableProps, {
422
432
  expandAllRows: () => void;
423
433
  collapseAllRows: () => void;
424
434
  getExpandedRows: () => Set<any>;
435
+ getSelection: () => any[];
436
+ clearSelection: () => void;
425
437
  changePage: (page: any) => void;
426
438
  }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
427
439
  "dsg-table:action-edit": (ev: Event, rowData: Record<string, any>) => any;
@@ -506,6 +518,8 @@ declare const __VLS_component: import('vue').DefineComponent<DsgTableProps, {
506
518
  readonly fieldPrefix?: string | undefined;
507
519
  readonly eventPrefix?: string | undefined;
508
520
  readonly selectable?: boolean | undefined;
521
+ readonly selectableColumnWidth?: string | undefined;
522
+ readonly expandableColumnWidth?: string | undefined;
509
523
  readonly shiftSelectHighlight?: string | undefined;
510
524
  readonly selectedRowHighlight?: string | undefined;
511
525
  readonly replaceState?: boolean | undefined;
@@ -568,6 +582,8 @@ declare const __VLS_component: import('vue').DefineComponent<DsgTableProps, {
568
582
  collapseAllRows: () => void;
569
583
  getExpandedRows: () => Set<any>;
570
584
  isRowExpanded: (item: any) => boolean;
585
+ getSelection: () => any[];
586
+ clearSelection: () => void;
571
587
  }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
572
588
  "update:filterParams": (value: any) => any;
573
589
  "update:perPage": (value: any) => any;
@@ -620,7 +636,7 @@ declare const __VLS_component: import('vue').DefineComponent<DsgTableProps, {
620
636
  "onDsg-table:row-collapsed"?: ((rowData: Record<string, any>, rowIndex: number) => any) | undefined;
621
637
  "onUpdate:filterParams"?: ((value: any) => any) | undefined;
622
638
  "onUpdate:perPage"?: ((value: any) => any) | undefined;
623
- }>, "changePage" | "reload" | "getData" | "setData" | "setLoading" | "expandRow" | "collapseRow" | "toggleRowExpand" | "expandAllRows" | "collapseAllRows" | "getExpandedRows" | "isRowExpanded"> & {
639
+ }>, "changePage" | "reload" | "getData" | "setData" | "setLoading" | "expandRow" | "collapseRow" | "toggleRowExpand" | "expandAllRows" | "collapseAllRows" | "getExpandedRows" | "isRowExpanded" | "getSelection" | "clearSelection"> & {
624
640
  changePage: (page: "next" | "prev" | number) => void;
625
641
  reload: () => void;
626
642
  getData: () => any[] | null;
@@ -633,6 +649,8 @@ declare const __VLS_component: import('vue').DefineComponent<DsgTableProps, {
633
649
  collapseAllRows: () => void;
634
650
  getExpandedRows: () => Set<any>;
635
651
  isRowExpanded: (item: any) => boolean;
652
+ getSelection: () => any[];
653
+ clearSelection: () => void;
636
654
  } & {} & import('vue').ComponentCustomProperties & {} & {
637
655
  $slots: Partial<Record<string, (_: {
638
656
  rowData: any;
@@ -102,6 +102,10 @@ export interface DsgTableComponentProp {
102
102
  fieldPrefix?: string;
103
103
  eventPrefix?: string;
104
104
  selectable?: boolean;
105
+ /** Width of the selection checkbox column (e.g. "4rem", "64px"). */
106
+ selectableColumnWidth?: string;
107
+ /** Width of the expandable toggle column (e.g. "3rem", "48px"). */
108
+ expandableColumnWidth?: string;
105
109
  /** Custom CSS colour for the Shift+Hover range highlight background. Defaults to `var(--color-primary-50)`. */
106
110
  shiftSelectHighlight?: string;
107
111
  /** Custom CSS colour for the selected row background. Defaults to `var(--color-gray-50)`. */
@@ -156,6 +160,8 @@ declare const __VLS_component: import('vue').DefineComponent<__VLS_PublicProps,
156
160
  collapseAllRows: () => void;
157
161
  getExpandedRows: () => Set<any>;
158
162
  isRowExpanded: (item: any) => boolean;
163
+ getSelection: () => any[];
164
+ clearSelection: () => void;
159
165
  }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
160
166
  "update:filterParams": (value: any) => any;
161
167
  "update:perPage": (value: any) => any;
@@ -15,6 +15,8 @@ export interface DsgTableRowHeaderProps {
15
15
  hasSelectAll?: boolean;
16
16
  showExpandDetail?: boolean;
17
17
  tableDataLength?: number;
18
+ selectableColumnWidth?: string;
19
+ expandableColumnWidth?: string;
18
20
  }
19
21
  type __VLS_Props = DsgTableRowHeaderProps;
20
22
  type __VLS_PublicProps = {
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),p=require("./DsgTablePerPage.vue_vue_type_style_index_0_lang-DQk8doWV.cjs"),G=require("./dsg-vue.helpers-string.cjs"),le=require("./dsg-vue.helpers-object.cjs"),Oe=require("./dsg-vue.helpers.cjs"),We={class:"dsg-table-pagination"},je=["disabled"],Ke=["disabled"],Qe=["onClick","innerHTML"],Ye=["onClick","innerHTML"],Ge=["disabled"],Je=["disabled"],me=e.defineComponent({__name:"DsgTablePagination",props:e.mergeModels({onEachSide:{default:3},firstPage:{default:1},showFirstLast:{type:Boolean,default:!0},firstIcon:{default:"chevron-left-double"},lastIcon:{default:"chevron-right-double"},prevIcon:{default:"chevron-left"},nextIcon:{default:"chevron-right"}},{pagination:{default:null},paginationModifiers:{}}),emits:e.mergeModels(["dsg-table:change-page"],["update:pagination"]),setup(t,{expose:x,emit:v}){const d=e.useModel(t,"pagination"),y=e.computed(()=>d.value===null?0:d.value?.last_page-t.firstPage+1),$=e.computed(()=>d.value===null?0:d.value?.last_page),m=e.computed(()=>d.value===null?!1:d.value?.current_page===t.firstPage),u=e.computed(()=>d.value===null?!1:d.value?.current_page===$.value),V=e.computed(()=>y.value<t.onEachSide*2+4),S=e.computed(()=>t.onEachSide*2+1),C=e.computed(()=>!d.value||d.value?.current_page<=t.onEachSide?1:d.value?.current_page>=y.value-t.onEachSide?y.value-t.onEachSide*2:d.value?.current_page-t.onEachSide),b=v,l=P=>{b("dsg-table:change-page",P)},E=P=>P===d.value?.current_page;return x({loadPage:l}),(P,k)=>e.withDirectives((e.openBlock(),e.createElementBlock("div",We,[t.showFirstLast?(e.openBlock(),e.createElementBlock("a",{key:0,onClick:k[0]||(k[0]=w=>l(t.firstPage)),class:e.normalizeClass(["dsg-table-pagination__link",{"dsg-table-pagination__link--disabled":m.value}]),disabled:m.value,title:"First","aria-label":"First"},[e.createVNode(p._sfc_main,{icon:t.firstIcon,size:"sm"},null,8,["icon"])],10,je)):e.createCommentVNode("",!0),e.createElementVNode("a",{onClick:k[1]||(k[1]=w=>l("prev")),class:e.normalizeClass(["dsg-table-pagination__link",{"dsg-table-pagination__link--disabled":m.value}]),disabled:m.value,title:"Previous","aria-label":"Previous"},[e.createVNode(p._sfc_main,{icon:t.prevIcon,size:"sm"},null,8,["icon"])],10,Ke),V.value?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:1},e.renderList(y.value,(w,R)=>(e.openBlock(),e.createElementBlock("a",{key:R,onClick:I=>l(R+t.firstPage),class:e.normalizeClass(["dsg-table-pagination__link",{"dsg-table-pagination__link--active":E(R+t.firstPage)}]),innerHTML:w},null,10,Qe))),128)):(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:2},e.renderList(S.value,(w,R)=>(e.openBlock(),e.createElementBlock("a",{key:R,onClick:I=>l(C.value+R+t.firstPage-1),class:e.normalizeClass(["dsg-table-pagination__link",{"dsg-table-pagination__link--active":E(C.value+R+t.firstPage-1)}]),innerHTML:C.value+w-1},null,10,Ye))),128)),e.createElementVNode("a",{onClick:k[2]||(k[2]=w=>l("next")),class:e.normalizeClass(["dsg-table-pagination__link",{"dsg-table-pagination__link--disabled":u.value}]),disabled:u.value,title:"Next","aria-label":"Next"},[e.createVNode(p._sfc_main,{icon:t.nextIcon,size:"sm"},null,8,["icon"])],10,Ge),t.showFirstLast?(e.openBlock(),e.createElementBlock("a",{key:3,onClick:k[3]||(k[3]=w=>l($.value)),class:e.normalizeClass(["dsg-table-pagination__link",{"dsg-table-pagination__link--disabled":u.value}]),disabled:u.value,title:"Last","aria-label":"Last"},[e.createVNode(p._sfc_main,{icon:t.lastIcon,size:"sm"},null,8,["icon"])],10,Je)):e.createCommentVNode("",!0)],512)),[[e.vShow,d.value&&$.value>t.firstPage]])}}),Xe=["innerHTML"],ve=e.defineComponent({__name:"DsgTablePaginationInfo",props:e.mergeModels({infoTemplate:{default:"Displaying {from} to {to} of {total} items"},noDataTemplate:{default:"No relevant data"}},{pagination:{default:null},paginationModifiers:{}}),emits:["update:pagination"],setup(t){const x=e.useModel(t,"pagination"),v=e.computed(()=>x.value==null||x.value.total==0?t.noDataTemplate:t.infoTemplate.replace("{from}",(x.value?.from||0).toString()).replace("{to}",(x.value?.to||0).toString()).replace("{total}",(x.value?.total||0).toString()));return(d,y)=>(e.openBlock(),e.createElementBlock("div",{class:"dsg-table-pagination-info",innerHTML:v.value},null,8,Xe))}}),Ze={class:"dsg-table-actions",ref:"dsgTableActions"},_e={class:"dsg-table-action__trigger"},et={key:0,class:"dsg-table-actions__menu-wrapper"},tt=["href","target","onClick"],at=["textContent"],lt={key:0},nt={key:1},ot=["href","target","onClick"],st={class:"flex-1"},be=e.defineComponent({__name:"DsgTableActions",props:{placement:{default:"auto"},data:{default:()=>{}}},emits:["dsg-table:action-edit","dsg-table:action-view","dsg-table:action-delete","dsg-table:action-archive","dsg-table:link-clicked"],setup(t,{emit:x}){const v=e.ref(!1);e.useTemplateRef("dsgTableActions");const d=e.computed(()=>t.data?.rowData??null),y=e.computed(()=>d.value?.actions??null),$=e.computed(()=>d.value?.links??null),m=C=>{switch(C){case"edit":return"edit-05";case"view":return"eye";case"delete":return"trash-01";case"archive":return"eye-off";default:return"dots-horizontal"}},u=(C,b,l)=>{switch(b){case"edit":S("dsg-table:action-edit",l,d.value);break;case"view":S("dsg-table:action-view",l,d.value);break;case"delete":S("dsg-table:action-delete",l,d.value);break;case"archive":S("dsg-table:action-archive",l,d.value);break}},V=(C,b)=>{const l=C.actionId||C.label.trim().toLowerCase().replace(/[^a-z0-9-]/g,"-").replace(/-+/g,"-");S("dsg-table:link-clicked",b,l,d.value)},S=x;return(C,b)=>e.withDirectives((e.openBlock(),e.createElementBlock("div",Ze,[e.createVNode(e.unref(p.kt),{triggers:[],placement:t.placement,"handle-resize":!0,strategy:"absolute",shown:v.value,class:"dsg-table-actions__popper",onHide:b[1]||(b[1]=l=>v.value=!1),ref:"floatingVueFilterDropdown"},{popper:e.withCtx(()=>[v.value?(e.openBlock(),e.createElementBlock("div",et,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(y.value,(l,E)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[["edit","view","delete","archive"].includes(String(E))?(e.openBlock(),e.createElementBlock("a",{key:E,href:l?.link,target:l?.target||"_self",onClick:P=>u(l,String(E),P)},[e.createElementVNode("div",{class:e.normalizeClass(["dsg-table-actions__menu-item",`dsg-table-actions__menu-item--${String(E)}`])},[e.createVNode(p._sfc_main,{icon:m(String(E)),size:"sm"},null,8,["icon"]),e.createElementVNode("span",{class:"dsg-table-actions__menu-item-id",textContent:e.toDisplayString(l?.label||e.unref(G.ucfirst)(String(E)))},null,8,at)],2)],8,tt)):e.createCommentVNode("",!0)],64))),256)),y.value&&$.value?(e.openBlock(),e.createElementBlock("hr",lt)):e.createCommentVNode("",!0),$.value?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:1},e.renderList($.value,l=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:l.label},[l.hasOwnProperty("component")?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(l.component),{key:0,quote:d.value,"row-data":d.value},null,8,["quote","row-data"])):l.hasOwnProperty("type")&&l.type=="break"?(e.openBlock(),e.createElementBlock("hr",nt)):(e.openBlock(),e.createElementBlock("a",{key:2,href:l.link,target:l.target||"_self",class:e.normalizeClass(["dsg-table-actions__menu-item",l.class]),onClick:E=>V(l,E)},[l.icon?(e.openBlock(),e.createBlock(p._sfc_main,{key:0,icon:l.icon,size:"sm"},null,8,["icon"])):e.createCommentVNode("",!0),e.createElementVNode("span",st,e.toDisplayString(l.label),1)],10,ot))],64))),128)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)]),default:e.withCtx(()=>[e.createElementVNode("div",_e,[e.createElementVNode("button",{type:"button",class:"dsg-table-actions__button","aria-expanded":"false","aria-haspopup":"true",onClick:b[0]||(b[0]=l=>v.value=!v.value)},[e.renderSlot(C.$slots,"dsg-table-action-button-content",{},()=>[e.createVNode(p._sfc_main,{icon:"dots-vertical",size:"sm"})])])])]),_:3},8,["placement","shown"])])),[[e.unref(p.vOnClickOutside),()=>v.value=!1]])}}),rt={class:"dsg-table-search"},he=e.defineComponent({__name:"DsgTableSearch",props:{name:{},id:{},placeholder:{default:"Search"},disabled:{type:Boolean,default:!1},required:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},hidden:{type:Boolean,default:!1},extraClasses:{},eventName:{},replaceState:{type:Boolean,default:!0}},emits:["dsg-table:term-changed"],setup(t,{emit:x}){const v=e.ref("");e.onMounted(()=>{const m=new URL(window.location.href).searchParams.get("term");m&&(v.value=m,d("dsg-table:term-changed",m))});const d=x,y=p.useDebounceFn($=>{if(v.value=$,t.replaceState){const m=new URL(window.location.href);v.value?m.searchParams.set("term",v.value):m.searchParams.delete("term"),window.history.pushState({},"",m.toString())}d("dsg-table:term-changed",v.value)},300);return($,m)=>(e.openBlock(),e.createElementBlock("div",rt,[e.createVNode(p._sfc_main$4,{modelValue:v.value,"onUpdate:modelValue":m[0]||(m[0]=u=>v.value=u),name:t.name,id:t.id||t.name,placeholder:t.placeholder,disabled:t.disabled,required:t.required,readonly:t.readonly,hidden:t.hidden,"has-clear-button":!0,autocomplete:"off",size:"sm",icon:"search-sm","icon-clickable":!0,onIconClicked:m[1]||(m[1]=u=>e.unref(y)(u)),onEnterPressed:m[2]||(m[2]=u=>e.unref(y)(u)),onOnClear:m[3]||(m[3]=()=>e.unref(y)(""))},null,8,["modelValue","name","id","placeholder","disabled","required","readonly","hidden"])]))}}),it={class:"dsg-table-row-header"},dt={key:0,class:"dsg-table-row-header__row dsg-table-row-header__row--checkbox",scope:"col"},ct={key:1,class:"dsg-table-row-header__row dsg-table-row-header__row--expand-detail",scope:"col"},ut=["title","id","onClick"],gt={key:0,class:"dsg-table-row-header__sort-icon"},ft=["innerHTML"],mt=["innerHTML"],vt=["innerHTML"],bt=["innerHTML"],ke=e.defineComponent({__name:"DsgTableRowHeader",props:e.mergeModels({fields:{},scrollVisible:{type:Boolean},hasSelectAll:{type:Boolean,default:!1},showExpandDetail:{type:Boolean,default:!0},tableDataLength:{default:0}},{sortField:{default:null},sortFieldModifiers:{},selectedRows:{default:[]},selectedRowsModifiers:{},hasSelected:{type:Boolean,default:!1},hasSelectedModifiers:{}}),emits:e.mergeModels(["dsg-table:sort-field","dsg-table:on-select-all","dsg-table:on-deselect-all"],["update:sortField","update:selectedRows","update:hasSelected"]),setup(t,{emit:x}){const v=e.useModel(t,"sortField"),d=e.useModel(t,"selectedRows"),y=e.useModel(t,"hasSelected"),$=e.ref("17px"),m=C=>{y.value&&d.value.length>0&&d.value.length!==t.tableDataLength?(y.value=!0,u("dsg-table:on-select-all")):!y.value&&d.value.length===0?(y.value=!1,u("dsg-table:on-select-all")):u("dsg-table:on-deselect-all")},u=x,V=(C,b)=>[C,C+"-"+G.toSnakeCase(String(b?.name)),b.titleClass||"",{"dsg-table-row-header__row--sortable":b.sortable},{"dsg-table-row-header__row--sort-active":v.value?.name===b.name}],S=C=>{C.sortable&&(v.value={name:String(C?.name),field:String(C?.sortField),direction:v.value?.name===C.name&&v.value?.direction==="asc"?"desc":"asc"},u("dsg-table:sort-field",C))};return(C,b)=>(e.openBlock(),e.createElementBlock("tr",it,[t.hasSelectAll?(e.openBlock(),e.createElementBlock("th",dt,[e.createVNode(p._sfc_main$2,{modelValue:y.value,"onUpdate:modelValue":[b[0]||(b[0]=l=>y.value=l),m],indeterminate:d.value.length>0&&d.value.length!==t.tableDataLength},null,8,["modelValue","indeterminate"])])):e.createCommentVNode("",!0),t.showExpandDetail?(e.openBlock(),e.createElementBlock("th",ct)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.fields,(l,E)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[l?.visible?(e.openBlock(),e.createElementBlock("th",{key:E,class:e.normalizeClass(V("dsg-table-row-header__row",l)),style:e.normalizeStyle([{width:l.width||void 0},l.style]),title:l.title+(l.sortable?" Sort":""),id:"_"+l.name,onClick:P=>S(l),scope:"col"},[l.sortable?(e.openBlock(),e.createElementBlock("div",gt,[l.tooltip?(e.openBlock(),e.createBlock(p._sfc_main$1,e.mergeProps({key:0,ref_for:!0},l.tooltip,{class:"dsg-table-row-header__tooltip"}),{"dsg-tooltip--trigger":e.withCtx(()=>[l.title?(e.openBlock(),e.createElementBlock("span",{key:0,class:"dsg-table-row-header__title",innerHTML:l.title},null,8,ft)):e.createCommentVNode("",!0),l.tooltip.icon?(e.openBlock(),e.createBlock(p._sfc_main,{key:1,icon:l.tooltip.icon,class:"inline-flex",size:"xs"},null,8,["icon"])):e.createCommentVNode("",!0)]),_:2},1040)):l.title?(e.openBlock(),e.createElementBlock("span",{key:1,class:"dsg-table-row-header__title",innerHTML:l.title},null,8,mt)):e.createCommentVNode("",!0),l.sortable&&v.value?.name!==l.name?(e.openBlock(),e.createBlock(p._sfc_main,{key:2,icon:"chevron-selector-vertical",class:"inline-flex",size:"xs"})):e.createCommentVNode("",!0),l.sortable&&v.value?.name===l.name&&v.value?.direction==="asc"?(e.openBlock(),e.createBlock(p._sfc_main,{key:3,icon:"chevron-down",class:"inline-flex",size:"xs"})):e.createCommentVNode("",!0),l.sortable&&v.value?.name===l.name&&v.value?.direction==="desc"?(e.openBlock(),e.createBlock(p._sfc_main,{key:4,icon:"chevron-up",class:"inline-flex",size:"xs"})):e.createCommentVNode("",!0)])):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[l.tooltip?(e.openBlock(),e.createBlock(p._sfc_main$1,e.mergeProps({key:0,ref_for:!0},l.tooltip,{class:"dsg-table-row-header__tooltip"}),{"dsg-tooltip--trigger":e.withCtx(()=>[e.createElementVNode("span",{class:"dsg-table-row-header__title",innerHTML:e.unref(G.ucwords)(String(l?.title))},null,8,vt),l.tooltip.icon?(e.openBlock(),e.createBlock(p._sfc_main,{key:0,icon:l.tooltip.icon,class:"inline-flex",size:"xs"},null,8,["icon"])):e.createCommentVNode("",!0)]),_:2},1040)):(e.openBlock(),e.createElementBlock("span",{key:1,class:"dsg-table-row-header__title",innerHTML:e.unref(G.ucwords)(String(l?.title))},null,8,bt))],64))],14,ut)):e.createCommentVNode("",!0)],64))),256)),t.scrollVisible?(e.openBlock(),e.createElementBlock("th",{key:2,style:e.normalizeStyle({width:$.value}),class:"dsg-table-row-header__col-gutter"},null,4)):e.createCommentVNode("",!0)]))}}),ht=["span"],kt={key:0,class:"dsg-table-component__loading"},wt=["colspan"],pt=["colspan"],yt=["onClick","onDblclick","onMouseover","onMouseenter"],Bt=["onClickCapture"],Ct={key:1,class:"dsg-table-component__cell dsg-table-component__cell--expand"},St=["aria-expanded","onClick"],Et=["onClick","onDblclick","onContextmenu"],Pt=["innerHTML"],Dt=["onClick"],xt=["colspan"],$t={key:2},Vt=["colspan"],Tt={class:"dsg-table-component__footer"},Nt=e.defineComponent({__name:"DsgTableComponent",props:e.mergeModels({fields:{default:()=>[]},isDraggable:{type:Boolean,default:!1},dragApi:{default:""},loadOnStart:{type:Boolean,default:!0},apiUrl:{default:""},httpMethod:{default:"get"},reactiveApiUrl:{type:Boolean,default:!0},apiMode:{type:Boolean,default:!0},data:{default:null},dataManager:{type:[Function,null],default:null},dataPath:{default:"data"},tableLayout:{default:"fixed"},paginationPath:{default:"links.pagination"},queryParams:{default:()=>({sort:"sort",order:"order",page:"page",perPage:"per_page"})},httpOptions:{default:()=>({})},hasDetailRow:{type:Boolean,default:!1},showExpandDetail:{type:Boolean,default:!0},expandableRows:{type:Boolean,default:!1},expandMultiple:{type:Boolean,default:!1},initialPage:{default:1},firstPage:{default:1},sortOrder:{default:()=>[]},multiSort:{type:Boolean},tableHeight:{default:null},multiSortKey:{},rowClass:{type:[String,Function],default:""},detailRowComponent:{},detailRowTransition:{default:"fade"},detailRowClass:{type:[String,Function]},detailRowOptions:{default:()=>({})},trackBy:{default:"id"},css:{default:()=>({tableWrapper:"dsg-table-wrapper",thead:"dsg-table-thead",tbody:"dsg-table-tbody",table:"dsg-table-component"})},minRows:{default:0},noDataTemplate:{default:"No Data Available"},showSortIcons:{type:Boolean},headerRows:{},transform:{type:[Function,null],default:null},sortParams:{type:[Function,null],default:null},fieldPrefix:{},eventPrefix:{},selectable:{type:Boolean,default:!1},shiftSelectHighlight:{default:()=>{}},selectedRowHighlight:{default:()=>{}},replaceState:{type:Boolean,default:!0},replaceStrategy:{default:"window"}},{filterParams:{default:{}},filterParamsModifiers:{},perPage:{default:20},perPageModifiers:{}}),emits:e.mergeModels(["dsg-table:loading","dsg-table:loaded","dsg-table:load-success","dsg-table:load-error","dsg-table:pagination-data","dsg-table:rows-selected","dsg-table:row-clicked","dsg-table:row-hover","dsg-table:row-dblclick","dsg-table:row-expanded","dsg-table:row-collapsed"],["update:filterParams","update:perPage"]),setup(t,{expose:x,emit:v}){const d=a=>a.map((n,o)=>({field:n.field||"",title:n.title||"",name:n.name||"",titleClass:n.titleClass||"",dataClass:n.dataClass||"",visible:n.visible??!0,width:n.width||void 0,sortField:n.sortField||null,sortable:n.sortField,formatter:n.formatter||null,tooltip:n.tooltip??null,$_index:o})),y=()=>{if(!t.apiMode)return null;const n=p.getQueryStrings().find(o=>o.key===t.queryParams.sort);if(n&&n.value.length>0){const o=n.value[0],g=o.startsWith("-"),c=g?o.substring(1):o,B=t.fields.find(F=>F.sortField===c||F.name===c||F.field===c);return B?{name:String(B.name||B.field),field:c,direction:g?"desc":"asc"}:{name:c,field:c,direction:g?"desc":"asc"}}return null},$=()=>{if(!(!t.apiMode||!t.replaceState)&&t.replaceStrategy==="window"){const a=new URL(window.location.href),n=new URLSearchParams(a.search);if(n.delete(t.queryParams.sort),k.value){const g=(k.value.direction==="desc"?"-":"")+k.value.field;n.set(t.queryParams.sort,g)}const o=`${a.pathname}${n.toString()?"?"+n.toString():""}`;window.history.pushState({},"",o)}},m=e.ref(d(t.fields)),u=e.ref(t.data),V=e.ref(null),S=e.ref(t.initialPage),C=e.ref("17px"),b=e.ref(!1),l=e.ref({}),E=e.ref(0),P=e.ref(!0),k=e.ref(y()),w=e.ref(null),R=e.ref(0),I=e.useModel(t,"filterParams"),j=e.useModel(t,"perPage"),D=e.ref([]),O=e.ref(!1),M=e.ref(new Set),N=e.ref(null),L=e.ref(null),z=e.ref(!1),A=e.computed(()=>t.tableHeight!=null),U=e.computed(()=>{let a=m.value.filter(n=>n.visible).length;return t.selectable&&a++,t.hasDetailRow&&t.expandableRows&&a++,a}),J=e.computed(()=>{const a={};return t.shiftSelectHighlight&&(a["--dsg-shift-select-bg"]=t.shiftSelectHighlight),t.selectedRowHighlight&&(a["--dsg-selected-row-bg"]=t.selectedRowHighlight),Object.keys(a).length>0?a:void 0}),X=(a,n)=>{const o=a?.[t.trackBy];return o??n};e.watch(()=>D.value.length,a=>{O.value=t.selectable&&a>0},{immediate:!0}),e.watch(()=>t.fields,a=>{m.value=d(a)},{immediate:!0,deep:!0}),e.watch(()=>I.value,a=>{q()},{deep:!0}),e.watch(()=>j.value,()=>{q()}),e.watch(()=>t.apiUrl,(a,n)=>{t.apiMode&&a!==n&&a&&q()}),e.watch(()=>k.value,()=>{$()},{deep:!0});const T=v,Z=(a,n)=>a.formatter&&typeof a.formatter=="function"?a.formatter(a,n):le.data_get(n,String(a?.name),""),_=a=>"dsg-field--"+a.name?.toLowerCase().replaceAll(/[_ ]/g,"-"),ee=(a,n)=>{const o={odd:n%2===0,even:n%2!==0,"dsg-table-component__row--selected":a.selected};if(!t.rowClass)return o;let g={};if(typeof t.rowClass=="function"){const c=t.rowClass(a,n);typeof c=="string"?c.split(" ").forEach(B=>{B.trim()&&(g[B.trim()]=!0)}):Array.isArray(c)?c.forEach(B=>{typeof B=="string"&&B.trim()&&(g[B.trim()]=!0)}):typeof c=="object"&&c!==null&&(g=c)}else typeof t.rowClass=="string"&&t.rowClass.split(" ").forEach(c=>{c.trim()&&(g[c.trim()]=!0)});return{...o,...g}},H=a=>M.value.has(a[t.trackBy]),K=(a,n)=>{const o=a[t.trackBy];M.value.has(o)?(M.value.delete(o),T("dsg-table:row-collapsed",a,n)):(t.expandMultiple||M.value.clear(),M.value.add(o),T("dsg-table:row-expanded",a,n))},Q=a=>{const n=a[t.trackBy];M.value.has(n)||(t.expandMultiple||M.value.clear(),M.value.add(n))},te=a=>{M.value.delete(a[t.trackBy])},s=()=>{u.value?.forEach(a=>{M.value.add(a[t.trackBy])})},r=()=>{M.value.clear()},i=()=>M.value,f=(a,n)=>{if(t.selectable){if(n!==void 0&&(N.value=n),a.selected)D.value.push(a);else{const o=D.value.findIndex(g=>g[t.trackBy]===a[t.trackBy]);o!==-1&&D.value.splice(o,1)}T("dsg-table:rows-selected",D.value)}},h=(a,n,o)=>{if(t.selectable&&a.shiftKey&&N.value!==null){a.stopPropagation(),a.preventDefault();const g=Math.min(N.value,o),c=Math.max(N.value,o),B=!n.selected;for(let F=g;F<=c;F++){if(F===N.value)continue;const W=u.value?.[F];if(W){const ge=W.selected;if(W.selected=B,B&&!ge)D.value.push(W);else if(!B&&ge){const fe=D.value.findIndex(Ie=>Ie[t.trackBy]===W[t.trackBy]);fe!==-1&&D.value.splice(fe,1)}}}N.value=o,L.value=null,T("dsg-table:rows-selected",D.value)}},ae=()=>{t.selectable&&(u.value?.forEach(a=>{a.selected=!0}),D.value=u.value?.filter(a=>a.selected)??[],N.value=null,T("dsg-table:rows-selected",D.value))},De=()=>{t.selectable&&(u.value?.forEach(a=>{a.selected=!1}),D.value=[],N.value=null,T("dsg-table:rows-selected",D.value))},Y=a=>{u.value=Array.isArray(a)?a:[],t.selectable&&(N.value=null,u.value.forEach(n=>{n.selected=n.selected??!1}))},xe=()=>u.value??[],$e=a=>{a==="prev"?S.value>t.firstPage&&S.value--:a==="next"?S.value<(V.value?.last_page??0)&&S.value++:a!=S.value&&a>=t.firstPage&&a<=(V.value?.last_page??0)&&(S.value=a),q()},Ve=()=>({[t.queryParams?.sort]:k.value?(k.value?.direction==="desc"?"-":"")+k.value?.field:void 0,[t.queryParams?.order]:k.value?.direction,[t.queryParams?.page]:S.value,[t.queryParams?.perPage]:j.value}),ne=()=>{w.value&&(w.value.abort(),w.value=null)},Te=(a,n)=>{ne(),R.value++;const o=R.value,g=new AbortController;return n.signal=g.signal,w.value=g,(t.httpMethod.toLowerCase()==="get"?p.axios.get(a,n):(()=>{const B=n.params;return delete n.params,p.axios.post(a,B,n)})()).then(B=>({...B,_requestId:o,_apiUrl:a}),B=>{throw B.name==="AbortError"||B.code==="ERR_CANCELED"?{...B,_requestId:o,_cancelled:!0}:{...B,_requestId:o}})},oe=a=>{if(a._requestId&&a._requestId!==R.value||a._apiUrl&&a._apiUrl!==t.apiUrl)return;T("dsg-table:load-success",a);const n=t.transform?t.transform(a.data):a.data;u.value=le.data_get(n,t.dataPath,null),t.selectable&&(N.value=null,u.value?.forEach(o=>{o.selected=o.selected??!1})),V.value=le.data_get(n,t.paginationPath,null)??null,E.value=u.value?.length?u.value[0].order:E,!Oe.isEmpty(t.paginationPath)&&V.value===null&&console.warn('DsgTable: pagination-path "'+t.paginationPath+`" not found. It looks like the data returned from the server does not have pagination information or you may have set it incorrectly.
2
- You can explicitly suppress this warning by setting pagination-path="".`),w.value=null,T("dsg-table:pagination-data",V.value),V.value&&S.value>(V.value?.last_page||0)&&u.value?.length===0&&(S.value=t.initialPage,q()),T("dsg-table:loaded"),P.value=!1},se=a=>{a._requestId&&a._requestId!==R.value||a._apiUrl&&a._apiUrl!==t.apiUrl||a._cancelled||(console.error("load-error",a),w.value=null,T("dsg-table:load-error",a),T("dsg-table:loaded"),P.value=!1)},re=()=>{if(t.data!==null&&Array.isArray(t.data)){Y(t.data),P.value=!1;return}if(t.dataManager&&typeof t.dataManager=="function"){const a=t.dataManager();Y(a),P.value=!1}else Y(t.data),P.value=!1},q=(a=oe,n=se,o={})=>{const g=a||oe,c=n||se;if(!t.apiMode){re();return}return P.value=!0,T("dsg-table:loading",P.value),t.httpOptions.params={...Ve(),...I.value},Te(t.apiUrl,t.httpOptions).then(g).catch(B=>c(B))},Ne=(a,n,o)=>{T("dsg-table:row-clicked",a,n,o)},Re=(a,n,o)=>{T("dsg-table:row-dblclick",a,n,o)},Me=(a,n,o)=>{},Fe=(a,n,o,g)=>{},Le=(a,n,o,g)=>{},ze=(a,n,o,g)=>{},He=(a,n,o)=>{},ie=a=>{a.key==="Shift"&&(z.value=!0)},de=a=>{a.key==="Shift"&&(z.value=!1,L.value=null)},ce=()=>{z.value=!1,L.value=null},Ae=a=>{t.selectable&&z.value&&N.value!==null&&(L.value=a)},Ue=()=>{L.value=null},qe=a=>{if(!t.selectable||!z.value||N.value===null||L.value===null)return!1;const n=Math.min(N.value,L.value),o=Math.max(N.value,L.value);return a>=n&&a<=o};e.onMounted(()=>{t.apiMode===!0?q():re(),t.selectable&&(document.addEventListener("keydown",ie),document.addEventListener("keyup",de),window.addEventListener("blur",ce))}),e.onUnmounted(()=>{t.selectable&&(document.removeEventListener("keydown",ie),document.removeEventListener("keyup",de),window.removeEventListener("blur",ce))});const ue=()=>{t.apiMode&&(D.value=[],ne(),q())};return x({changePage:$e,reload:ue,getData:xe,setData:Y,setLoading:a=>{P.value=a,T("dsg-table:loading",P.value)},expandRow:Q,collapseRow:te,toggleRowExpand:K,expandAllRows:s,collapseAllRows:r,getExpandedRows:i,isRowExpanded:H}),(a,n)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["dsg-table-component",{"dsg-table-component--shift-active":t.selectable&&z.value}]),style:e.normalizeStyle(J.value)},[e.createElementVNode("div",{ref:"dsgTableBodyWrapper",class:e.normalizeClass(["dsg-table-component__body-wrapper",{"dsg-table-component__body-wrapper--fixed-header":A.value}]),style:e.normalizeStyle({height:t.tableHeight||void 0})},[e.createElementVNode("table",{class:e.normalizeClass(["dsg-table-component__main",A.value?"dsg-table-component__main--fixed-header":"","dsg-table-component__main--"+t.tableLayout,l.value.table])},[e.createElementVNode("colgroup",{span:U.value},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(m.value,(o,g)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[o?.visible?(e.openBlock(),e.createElementBlock("col",{key:g,style:e.normalizeStyle({width:o.width||void 0}),class:e.normalizeClass("dsg-table-component__col-"+o.name+" "+o.titleClass)},null,6)):e.createCommentVNode("",!0)],64))),256)),!A.value&&b.value?(e.openBlock(),e.createElementBlock("col",{key:0,style:e.normalizeStyle({width:C.value}),class:"dsg-table-component__col-gutter"},null,4)):e.createCommentVNode("",!0)],8,ht),e.createElementVNode("thead",{class:e.normalizeClass([[l.value.thead,{sticky:A.value,"top-0":A.value}],"dsg-table-component__head"])},[e.renderSlot(a.$slots,"tableHeader",{fields:m.value},()=>[e.createVNode(ke,{fields:m.value,"has-select-all":t.selectable,"selected-rows":D.value,"onUpdate:selectedRows":n[0]||(n[0]=o=>D.value=o),"has-selected":O.value,"onUpdate:hasSelected":n[1]||(n[1]=o=>O.value=o),"scroll-visible":b.value,"show-expand-detail":t.hasDetailRow&&t.showExpandDetail,"table-data-length":u.value?.length,"sort-field":k.value,"onUpdate:sortField":n[2]||(n[2]=o=>k.value=o),"onDsgTable:sortField":n[3]||(n[3]=o=>ue()),"onDsgTable:onSelectAll":ae,"onDsgTable:onDeselectAll":De},null,8,["fields","has-select-all","selected-rows","has-selected","scroll-visible","show-expand-detail","table-data-length","sort-field"])])],2),e.createElementVNode("tbody",{class:e.normalizeClass(["dsg-table-component__body",l.value.tbody])},[P.value?(e.openBlock(),e.createElementBlock("tr",kt,[e.createElementVNode("td",{colspan:U.value},[e.createElementVNode("div",{"aria-label":"Loading...",role:"status",class:"flex items-center space-x-3 h-12 w-full justify-center",colspan:U.value},[e.renderSlot(a.$slots,"dsg-table-loading",{},()=>[e.createVNode(p._sfc_main,{icon:"loading-02",class:"animate-spin"}),n[5]||(n[5]=e.createElementVNode("span",{class:"text-xs font-medium text-gray-500"},"Loading...",-1))])],8,pt)],8,wt)])):(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:1},e.renderList(u.value,(o,g)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:X(o,g)},[e.createElementVNode("tr",{class:e.normalizeClass(["dsg-table-component__row",[ee(o,g),{"dsg-table-component__row--shift-range":t.selectable&&qe(g)}]]),onClick:c=>Ne(c,g,o),onDblclick:c=>Re(c,g,o),onMouseover:c=>Me(),onMouseenter:c=>Ae(g),onMouseleave:n[4]||(n[4]=c=>Ue())},[t.selectable?(e.openBlock(),e.createElementBlock("td",{key:0,class:"dsg-table-component__cell dsg-table-component__cell--checkbox",onClickCapture:c=>h(c,o,g)},[e.createVNode(p._sfc_main$2,{modelValue:o.selected,"onUpdate:modelValue":[c=>o.selected=c,c=>f(o,g)]},null,8,["modelValue","onUpdate:modelValue"])],40,Bt)):e.createCommentVNode("",!0),t.hasDetailRow&&t.expandableRows?(e.openBlock(),e.createElementBlock("td",Ct,[e.createElementVNode("button",{type:"button",class:e.normalizeClass(["dsg-table-component__expand-toggle",{"dsg-table-component__expand-toggle--expanded":H(o)}]),"aria-expanded":H(o),"aria-label":"Toggle row details",onClick:e.withModifiers(c=>K(o,g),["stop"])},[e.createVNode(p._sfc_main,{icon:"chevron-right",size:"sm",class:"dsg-table-component__expand-icon"})],10,St)])):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(m.value,(c,B)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:B},[c.visible?(e.openBlock(),e.createElementBlock("td",{key:0,class:e.normalizeClass(["dsg-table-component__cell",c.dataClass]),style:e.normalizeStyle({width:c.width||void 0}),onClick:F=>Fe(),onDblclick:F=>Le(),onContextmenu:F=>ze()},[e.renderSlot(a.$slots,_(c),{rowData:o,rowIndex:g,rowField:c},()=>[e.createElementVNode("span",{innerHTML:Z(c,o)},null,8,Pt)])],46,Et)):e.createCommentVNode("",!0)],64))),128))],42,yt),t.hasDetailRow&&(!t.expandableRows||H(o))?(e.openBlock(),e.createBlock(e.Transition,{key:0,name:t.detailRowTransition},{default:e.withCtx(()=>[e.createElementVNode("tr",{class:e.normalizeClass(["dsg-table-component__detail",{"dsg-table-component__detail--expanded":t.expandableRows&&H(o)}]),onClick:c=>He()},[e.createElementVNode("td",{colspan:U.value},[e.renderSlot(a.$slots,"dsg-table-detail-row",{rowData:o,rowIndex:g,options:t.detailRowOptions,isExpanded:t.expandableRows?H(o):!0})],8,xt)],10,Dt)]),_:2},1032,["name"])):e.createCommentVNode("",!0)],64))),128)),!P.value&&!u.value?.length&&t.noDataTemplate.length?(e.openBlock(),e.createElementBlock("tr",$t,[e.createElementVNode("td",{colspan:U.value,class:"dsg-table-component__empty-result"},[e.renderSlot(a.$slots,"dsg-table-empty-result",{},()=>[e.createTextVNode(e.toDisplayString(t.noDataTemplate),1)])],8,Vt)])):e.createCommentVNode("",!0)],2),e.createElementVNode("tfoot",Tt,[e.renderSlot(a.$slots,"dsg-table-footer",{fields:m.value,data:u.value})])],2)],6)],6))}}),Rt={class:"dsg-table"},Mt={key:0,class:"dsg-table__pre-header"},Ft={class:"dsg-table--pre-header-left"},Lt=["textContent"],zt={class:"dsg-table__pre-header-right"},Ht={key:1,class:"dsg-table__search-header",ref:"dsgTableSearchHeaderEl"},At={class:"dsg-table__search-top"},Ut={key:2,class:"dsg-table__footer",ref:"dsgTableFooterEl"},qt={class:"dsg-table__footer-left"},It={class:"dsg-table__footer-center"},Ot={class:"dsg-table__footer-right"},Wt=e.defineComponent({__name:"DsgTable",props:{getUrl:{},fields:{},loadOnStart:{type:Boolean,default:!0},displaySearch:{type:Boolean,default:!0},displayPaginationInfo:{type:Boolean,default:!0},reloadOnChangeTimer:{type:Boolean,default:!1},selectable:{type:Boolean,default:!1},shiftSelectHighlight:{default:()=>{}},selectedRowHighlight:{default:()=>{}},trackBy:{default:"id"},title:{default:""},filters:{default:()=>{}},initialFilters:{default:()=>({})},filterEntity:{default:""},filterEndpoint:{default:""},filterSearchEndpoint:{default:""},tableLayout:{default:"fixed"},autoSortFilters:{type:Boolean,default:!0},showSaveAsDefault:{type:Boolean,default:!1},saveAsDefaultLabel:{default:"Save as default"},showClearAll:{type:Boolean,default:!0},clearAllLabel:{default:"Clear all"},data:{default:null},hasHeader:{type:Boolean,default:!0},hasFooter:{type:Boolean,default:!0},perPage:{default:20},pagination:{},paginationPath:{default:"meta"},css:{default:()=>({tableWrapper:"border-b"})},rowClass:{type:[String,Function],default:void 0},apiMode:{type:Boolean,default:!0},replaceState:{type:Boolean,default:!0},replaceStrategy:{default:"window"},hasDetailRow:{type:Boolean,default:!1},expandableRows:{type:Boolean,default:!1},expandMultiple:{type:Boolean,default:!1},showExpandDetail:{type:Boolean,default:!0},detailRowTransition:{default:"fade"},detailRowOptions:{default:()=>({})}},emits:["dsg-table:action-edit","dsg-table:action-view","dsg-table:action-delete","dsg-table:action-archive","dsg-table:link-clicked","dsg-table:rows-selected","dsg-table:row-clicked","dsg-table:row-hover","dsg-table:row-dblclick","dsg-table:filter-updated","dsg-table:save-as-default","dsg-table:term-changed","dsg-table:data-loaded","dsg-table:row-expanded","dsg-table:row-collapsed"],setup(t,{expose:x,emit:v}){const d=s=>{P.value=s},y=e.ref(t.apiMode&&!!(t.filterEntity||t.filterEndpoint||t.getUrl)),$=()=>{if(y.value){let s={};return p.getQueryStrings().forEach(r=>{const i=p.parseFilterQueryKey(r.key);if(!i)return;const f=s[`filter[${i}]`],h=r.value.join(",");s[`filter[${i}]`]=f?`${f},${h}`:h}),s}else return{}},m=e.computed(()=>({...t.css,tableWrapper:"border-b "+(t.css?.tableWrapper||"")})),u=e.useSlots(),V=e.ref(!0),S=e.ref(null),C=e.ref("<p>Showing {from} to {to} of {total}</p>"),b=e.ref(null),l=e.useTemplateRef("dsgTable"),E=e.ref({perPage:t.perPage,change:d}),P=e.ref(t.perPage),k=e.ref({...$(),...t.initialFilters}),w=v,R=s=>{l.value?.changePage(s)},I=s=>{b.value=s},j=({data:s})=>{S.value=s,w("dsg-table:data-loaded",s)},D=()=>{l.value?.reload()},O=s=>{l.value?.setLoading(s)},M=s=>{const r=l.value?.getData?.()??[];l.value?.setData(r.map(i=>i.id===s.id?s:i))},N=s=>{const r=l.value?.getData?.()??[];l.value?.setData([...r,s])},L=s=>{const r=l.value?.getData?.()??[];l.value?.setData(r.filter(i=>i.id!==s.id))},z=s=>{l.value?.setData(s)},A=()=>l.value?.getData()??[],U=s=>{const r=l.value?.getData()??[],i=s(r);i&&l.value?.setData(i)},J=s=>{l.value?.expandRow(s)},X=s=>{l.value?.collapseRow(s)},T=(s,r)=>{l.value?.toggleRowExpand(s,r)},Z=()=>{l.value?.expandAllRows()},_=()=>{l.value?.collapseAllRows()},ee=()=>l.value?.getExpandedRows()??new Set,H=s=>{k.value=s},K=()=>k.value??{},Q=s=>{const r={...k.value};!s||s.trim()===""?delete r["filter[term]"]:r["filter[term]"]=s,k.value=r,e.nextTick(()=>{D()}),w("dsg-table:term-changed",s)},te=(s,r,i)=>{let f={};k.value["filter[term]"]&&(f["filter[term]"]=k.value["filter[term]"]),Object.keys(s).forEach(h=>{s[h]!==null&&s[h]!==void 0&&s[h]!==""&&(f[h]=s[h])}),k.value=f,e.nextTick(()=>{D()}),w("dsg-table:filter-updated",k.value,r,i)};return x({reloadTable:D,updateRowTable:M,addRowTable:N,deleteRowTable:L,setData:z,getData:A,mutateData:U,termChanged:Q,setFilters:H,getFilters:K,setLoading:O,expandRow:J,collapseRow:X,toggleRowExpand:T,expandAllRows:Z,collapseAllRows:_,getExpandedRows:ee,changePage:R}),(s,r)=>(e.openBlock(),e.createElementBlock("div",Rt,[t.hasHeader?(e.openBlock(),e.createElementBlock("div",Mt,[e.renderSlot(s.$slots,"dsg-table--pre-header",{},()=>[e.createElementVNode("div",Ft,[e.renderSlot(s.$slots,"dsg-table--page-title",{data:S.value,title:t.title},()=>[t.title.length>0?(e.openBlock(),e.createElementBlock("h1",{key:0,class:"dsg-table__title",textContent:e.toDisplayString(t.title)},null,8,Lt)):e.createCommentVNode("",!0)])]),e.createElementVNode("div",zt,[e.renderSlot(s.$slots,"dsg-table--page-actions",{data:S.value})])])])):e.createCommentVNode("",!0),t.displaySearch?(e.openBlock(),e.createElementBlock("div",Ht,[e.createElementVNode("div",At,[e.renderSlot(s.$slots,"dsg-table--search-header",{data:S.value},()=>[e.createVNode(he,{name:"term","onDsgTable:termChanged":r[0]||(r[0]=i=>Q(i))}),e.createVNode(p._sfc_main$7,{entity:t.filterEntity,"filter-endpoint":t.filterEndpoint,"search-endpoint":t.filterSearchEndpoint,"auto-sort":t.autoSortFilters,filters:t.filters,"show-save-as-default":t.showSaveAsDefault,"save-as-default-label":t.saveAsDefaultLabel,"show-clear-all":t.showClearAll,"clear-all-label":t.clearAllLabel,"onDsgTable:filterUpdated":r[1]||(r[1]=(i,f,h)=>te(i,f,h)),"onDsgTable:saveAsDefault":r[2]||(r[2]=(i,f,h)=>w("dsg-table:save-as-default",i,f,h))},null,8,["entity","filter-endpoint","search-endpoint","auto-sort","filters","show-save-as-default","save-as-default-label","show-clear-all","clear-all-label"]),e.renderSlot(s.$slots,"dsg-table--search-actions",{data:S.value})])]),e.renderSlot(s.$slots,"dsg-table--search-navigation")],512)):e.createCommentVNode("",!0),e.createVNode(Nt,{ref:"dsgTable","api-url":t.getUrl,"filter-params":k.value,"onUpdate:filterParams":r[8]||(r[8]=i=>k.value=i),"per-page":P.value,"onUpdate:perPage":r[9]||(r[9]=i=>P.value=i),fields:t.fields,"load-on-start":t.loadOnStart,"pagination-path":t.paginationPath,selectable:t.selectable,"shift-select-highlight":t.shiftSelectHighlight,"selected-row-highlight":t.selectedRowHighlight,"track-by":t.trackBy,"table-layout":t.tableLayout,css:m.value,data:t.data,"row-class":t.rowClass,"api-mode":y.value,"replace-state":t.replaceState,"replace-strategy":t.replaceStrategy,"has-detail-row":t.hasDetailRow,"expandable-rows":t.expandableRows,"expand-multiple":t.expandMultiple,"show-expand-detail":t.showExpandDetail,"detail-row-transition":t.detailRowTransition,"detail-row-options":t.detailRowOptions,"onDsgTable:loading":r[10]||(r[10]=i=>V.value=!0),"onDsgTable:loaded":r[11]||(r[11]=i=>V.value=!1),"onDsgTable:paginationData":I,"onDsgTable:loadSuccess":j,"onDsgTable:rowsSelected":r[12]||(r[12]=i=>w("dsg-table:rows-selected",i)),"onDsgTable:rowClicked":r[13]||(r[13]=(i,f,h)=>w("dsg-table:row-clicked",i,f,h)),"onDsgTable:rowHover":r[14]||(r[14]=(i,f,h)=>w("dsg-table:row-hover",i,f,h)),"onDsgTable:rowDblclick":r[15]||(r[15]=(i,f,h)=>w("dsg-table:row-dblclick",i,f,h)),"onDsgTable:rowExpanded":r[16]||(r[16]=(i,f)=>w("dsg-table:row-expanded",i,f)),"onDsgTable:rowCollapsed":r[17]||(r[17]=(i,f)=>w("dsg-table:row-collapsed",i,f))},e.createSlots({"dsg-field--actions":e.withCtx(i=>[e.renderSlot(s.$slots,"dsg-table-actions",{data:i},()=>[(e.openBlock(),e.createBlock(be,{key:i.rowData?.[t.trackBy]??i.rowIndex,data:i,"onDsgTable:actionEdit":r[3]||(r[3]=(f,h)=>w("dsg-table:action-edit",f,h)),"onDsgTable:actionView":r[4]||(r[4]=(f,h)=>w("dsg-table:action-view",f,h)),"onDsgTable:actionDelete":r[5]||(r[5]=(f,h)=>w("dsg-table:action-delete",f,h)),"onDsgTable:actionArchive":r[6]||(r[6]=(f,h)=>w("dsg-table:action-archive",f,h)),"onDsgTable:linkClicked":r[7]||(r[7]=(f,h,ae)=>w("dsg-table:link-clicked",f,h,ae))},null,8,["data"]))])]),_:2},[e.renderList(e.unref(u),(i,f)=>({name:f,fn:e.withCtx(h=>[String(f)!=="dsg-field--actions"?e.renderSlot(s.$slots,f,e.normalizeProps(e.mergeProps({key:0},h))):e.createCommentVNode("",!0)])}))]),1032,["api-url","filter-params","per-page","fields","load-on-start","pagination-path","selectable","shift-select-highlight","selected-row-highlight","track-by","table-layout","css","data","row-class","api-mode","replace-state","replace-strategy","has-detail-row","expandable-rows","expand-multiple","show-expand-detail","detail-row-transition","detail-row-options"]),t.hasFooter?(e.openBlock(),e.createElementBlock("div",Ut,[e.createElementVNode("div",qt,[e.renderSlot(s.$slots,"dsg-table--footer-left",{data:b.value,perPage:E.value},()=>[t.displayPaginationInfo?(e.openBlock(),e.createBlock(ve,{key:0,ref:"paginationInfoStart",pagination:b.value,"onUpdate:pagination":r[18]||(r[18]=i=>b.value=i),"info-template":C.value},null,8,["pagination","info-template"])):e.createCommentVNode("",!0),e.renderSlot(s.$slots,"dsg-table--footer-left-extras",{data:b.value,perPage:E.value})])]),e.createElementVNode("div",It,[e.renderSlot(s.$slots,"dsg-table--footer-center",{data:b.value,perPage:E.value},()=>[e.renderSlot(s.$slots,"dsg-table--footer-center-extras",{data:b.value,perPage:E.value})])]),e.createElementVNode("div",Ot,[e.renderSlot(s.$slots,"dsg-table--footer-right",{data:b.value,perPage:E.value},()=>[V.value===!1&&t.displayPaginationInfo?(e.openBlock(),e.createBlock(me,e.mergeProps({key:0,ref:"pagination",pagination:b.value,"onUpdate:pagination":r[19]||(r[19]=i=>b.value=i),"onDsgTable:changePage":R},t.pagination),null,16,["pagination"])):e.createCommentVNode("",!0),e.renderSlot(s.$slots,"dsg-table--footer-right-extras",{data:b.value,perPage:E.value})])])],512)):e.createCommentVNode("",!0)]))}}),jt={class:"dsg-table-per-page"},Kt=e.defineComponent({__name:"DsgTablePerPage",props:{perPageOptions:{default:()=>[{label:10,id:0},{label:20,id:1},{label:30,id:2},{label:50,id:3},{label:100,id:4}]},perPage:{}},setup(t){const x=d=>t.perPageOptions.find(y=>y.label===d),v=d=>{t.perPage.perPage=d.label,t.perPage.change(d.label)};return(d,y)=>(e.openBlock(),e.createElementBlock("div",jt,[e.createVNode(p._sfc_main$8,{modelValue:x(t.perPage.perPage),"onUpdate:modelValue":v,options:t.perPageOptions,size:"sm","close-on-select":""},null,8,["modelValue","options"])]))}}),we=Wt,pe=be,ye=Kt,Be=p._sfc_main$7,Ce=me,Se=ve,Ee=he,Pe=ke,Qt={DsgTable:we,DsgTableActions:pe,DsgTablePerPage:ye,DsgTableFilter:Be,DsgTablePagination:Ce,DsgTablePaginationInfo:Se,DsgTableSearch:Ee,DsgTableRowHeader:Pe};exports.DsgTable=we;exports.DsgTableActions=pe;exports.DsgTableFilter=Be;exports.DsgTablePagination=Ce;exports.DsgTablePaginationInfo=Se;exports.DsgTablePerPage=ye;exports.DsgTableRowHeader=Pe;exports.DsgTableSearch=Ee;exports.default=Qt;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),y=require("./DsgTablePerPage.vue_vue_type_style_index_0_lang-DQk8doWV.cjs"),G=require("./dsg-vue.helpers-string.cjs"),oe=require("./dsg-vue.helpers-object.cjs"),je=require("./dsg-vue.helpers.cjs"),Ke={class:"dsg-table-pagination"},Qe=["disabled"],Ye=["disabled"],Ge=["onClick","innerHTML"],Je=["onClick","innerHTML"],Xe=["disabled"],Ze=["disabled"],be=e.defineComponent({__name:"DsgTablePagination",props:e.mergeModels({onEachSide:{default:3},firstPage:{default:1},showFirstLast:{type:Boolean,default:!0},firstIcon:{default:"chevron-left-double"},lastIcon:{default:"chevron-right-double"},prevIcon:{default:"chevron-left"},nextIcon:{default:"chevron-right"}},{pagination:{default:null},paginationModifiers:{}}),emits:e.mergeModels(["dsg-table:change-page"],["update:pagination"]),setup(t,{expose:x,emit:v}){const d=e.useModel(t,"pagination"),p=e.computed(()=>d.value===null?0:d.value?.last_page-t.firstPage+1),$=e.computed(()=>d.value===null?0:d.value?.last_page),f=e.computed(()=>d.value===null?!1:d.value?.current_page===t.firstPage),u=e.computed(()=>d.value===null?!1:d.value?.current_page===$.value),T=e.computed(()=>p.value<t.onEachSide*2+4),S=e.computed(()=>t.onEachSide*2+1),C=e.computed(()=>!d.value||d.value?.current_page<=t.onEachSide?1:d.value?.current_page>=p.value-t.onEachSide?p.value-t.onEachSide*2:d.value?.current_page-t.onEachSide),b=v,l=P=>{b("dsg-table:change-page",P)},E=P=>P===d.value?.current_page;return x({loadPage:l}),(P,w)=>e.withDirectives((e.openBlock(),e.createElementBlock("div",Ke,[t.showFirstLast?(e.openBlock(),e.createElementBlock("a",{key:0,onClick:w[0]||(w[0]=k=>l(t.firstPage)),class:e.normalizeClass(["dsg-table-pagination__link",{"dsg-table-pagination__link--disabled":f.value}]),disabled:f.value,title:"First","aria-label":"First"},[e.createVNode(y._sfc_main,{icon:t.firstIcon,size:"sm"},null,8,["icon"])],10,Qe)):e.createCommentVNode("",!0),e.createElementVNode("a",{onClick:w[1]||(w[1]=k=>l("prev")),class:e.normalizeClass(["dsg-table-pagination__link",{"dsg-table-pagination__link--disabled":f.value}]),disabled:f.value,title:"Previous","aria-label":"Previous"},[e.createVNode(y._sfc_main,{icon:t.prevIcon,size:"sm"},null,8,["icon"])],10,Ye),T.value?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:1},e.renderList(p.value,(k,R)=>(e.openBlock(),e.createElementBlock("a",{key:R,onClick:I=>l(R+t.firstPage),class:e.normalizeClass(["dsg-table-pagination__link",{"dsg-table-pagination__link--active":E(R+t.firstPage)}]),innerHTML:k},null,10,Ge))),128)):(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:2},e.renderList(S.value,(k,R)=>(e.openBlock(),e.createElementBlock("a",{key:R,onClick:I=>l(C.value+R+t.firstPage-1),class:e.normalizeClass(["dsg-table-pagination__link",{"dsg-table-pagination__link--active":E(C.value+R+t.firstPage-1)}]),innerHTML:C.value+k-1},null,10,Je))),128)),e.createElementVNode("a",{onClick:w[2]||(w[2]=k=>l("next")),class:e.normalizeClass(["dsg-table-pagination__link",{"dsg-table-pagination__link--disabled":u.value}]),disabled:u.value,title:"Next","aria-label":"Next"},[e.createVNode(y._sfc_main,{icon:t.nextIcon,size:"sm"},null,8,["icon"])],10,Xe),t.showFirstLast?(e.openBlock(),e.createElementBlock("a",{key:3,onClick:w[3]||(w[3]=k=>l($.value)),class:e.normalizeClass(["dsg-table-pagination__link",{"dsg-table-pagination__link--disabled":u.value}]),disabled:u.value,title:"Last","aria-label":"Last"},[e.createVNode(y._sfc_main,{icon:t.lastIcon,size:"sm"},null,8,["icon"])],10,Ze)):e.createCommentVNode("",!0)],512)),[[e.vShow,d.value&&$.value>t.firstPage]])}}),_e=["innerHTML"],he=e.defineComponent({__name:"DsgTablePaginationInfo",props:e.mergeModels({infoTemplate:{default:"Displaying {from} to {to} of {total} items"},noDataTemplate:{default:"No relevant data"}},{pagination:{default:null},paginationModifiers:{}}),emits:["update:pagination"],setup(t){const x=e.useModel(t,"pagination"),v=e.computed(()=>x.value==null||x.value.total==0?t.noDataTemplate:t.infoTemplate.replace("{from}",(x.value?.from||0).toString()).replace("{to}",(x.value?.to||0).toString()).replace("{total}",(x.value?.total||0).toString()));return(d,p)=>(e.openBlock(),e.createElementBlock("div",{class:"dsg-table-pagination-info",innerHTML:v.value},null,8,_e))}}),et={class:"dsg-table-actions",ref:"dsgTableActions"},tt={class:"dsg-table-action__trigger"},at={key:0,class:"dsg-table-actions__menu-wrapper"},lt=["href","target","onClick"],nt=["textContent"],ot={key:0},st={key:1},rt=["href","target","onClick"],it={class:"flex-1"},we=e.defineComponent({__name:"DsgTableActions",props:{placement:{default:"auto"},data:{default:()=>{}}},emits:["dsg-table:action-edit","dsg-table:action-view","dsg-table:action-delete","dsg-table:action-archive","dsg-table:link-clicked"],setup(t,{emit:x}){const v=e.ref(!1);e.useTemplateRef("dsgTableActions");const d=e.computed(()=>t.data?.rowData??null),p=e.computed(()=>d.value?.actions??null),$=e.computed(()=>d.value?.links??null),f=C=>{switch(C){case"edit":return"edit-05";case"view":return"eye";case"delete":return"trash-01";case"archive":return"eye-off";default:return"dots-horizontal"}},u=(C,b,l)=>{switch(b){case"edit":S("dsg-table:action-edit",l,d.value);break;case"view":S("dsg-table:action-view",l,d.value);break;case"delete":S("dsg-table:action-delete",l,d.value);break;case"archive":S("dsg-table:action-archive",l,d.value);break}},T=(C,b)=>{const l=C.actionId||C.label.trim().toLowerCase().replace(/[^a-z0-9-]/g,"-").replace(/-+/g,"-");S("dsg-table:link-clicked",b,l,d.value)},S=x;return(C,b)=>e.withDirectives((e.openBlock(),e.createElementBlock("div",et,[e.createVNode(e.unref(y.kt),{triggers:[],placement:t.placement,"handle-resize":!0,strategy:"absolute",shown:v.value,class:"dsg-table-actions__popper",onHide:b[1]||(b[1]=l=>v.value=!1),ref:"floatingVueFilterDropdown"},{popper:e.withCtx(()=>[v.value?(e.openBlock(),e.createElementBlock("div",at,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(p.value,(l,E)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[["edit","view","delete","archive"].includes(String(E))?(e.openBlock(),e.createElementBlock("a",{key:E,href:l?.link,target:l?.target||"_self",onClick:P=>u(l,String(E),P)},[e.createElementVNode("div",{class:e.normalizeClass(["dsg-table-actions__menu-item",`dsg-table-actions__menu-item--${String(E)}`])},[e.createVNode(y._sfc_main,{icon:f(String(E)),size:"sm"},null,8,["icon"]),e.createElementVNode("span",{class:"dsg-table-actions__menu-item-id",textContent:e.toDisplayString(l?.label||e.unref(G.ucfirst)(String(E)))},null,8,nt)],2)],8,lt)):e.createCommentVNode("",!0)],64))),256)),p.value&&$.value?(e.openBlock(),e.createElementBlock("hr",ot)):e.createCommentVNode("",!0),$.value?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:1},e.renderList($.value,l=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:l.label},[l.hasOwnProperty("component")?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(l.component),{key:0,quote:d.value,"row-data":d.value},null,8,["quote","row-data"])):l.hasOwnProperty("type")&&l.type=="break"?(e.openBlock(),e.createElementBlock("hr",st)):(e.openBlock(),e.createElementBlock("a",{key:2,href:l.link,target:l.target||"_self",class:e.normalizeClass(["dsg-table-actions__menu-item",l.class]),onClick:E=>T(l,E)},[l.icon?(e.openBlock(),e.createBlock(y._sfc_main,{key:0,icon:l.icon,size:"sm"},null,8,["icon"])):e.createCommentVNode("",!0),e.createElementVNode("span",it,e.toDisplayString(l.label),1)],10,rt))],64))),128)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)]),default:e.withCtx(()=>[e.createElementVNode("div",tt,[e.createElementVNode("button",{type:"button",class:"dsg-table-actions__button","aria-expanded":"false","aria-haspopup":"true",onClick:b[0]||(b[0]=l=>v.value=!v.value)},[e.renderSlot(C.$slots,"dsg-table-action-button-content",{},()=>[e.createVNode(y._sfc_main,{icon:"dots-vertical",size:"sm"})])])])]),_:3},8,["placement","shown"])])),[[e.unref(y.vOnClickOutside),()=>v.value=!1]])}}),dt={class:"dsg-table-search"},ke=e.defineComponent({__name:"DsgTableSearch",props:{name:{},id:{},placeholder:{default:"Search"},disabled:{type:Boolean,default:!1},required:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},hidden:{type:Boolean,default:!1},extraClasses:{},eventName:{},replaceState:{type:Boolean,default:!0}},emits:["dsg-table:term-changed"],setup(t,{emit:x}){const v=e.ref("");e.onMounted(()=>{const f=new URL(window.location.href).searchParams.get("term");f&&(v.value=f,d("dsg-table:term-changed",f))});const d=x,p=y.useDebounceFn($=>{if(v.value=$,t.replaceState){const f=new URL(window.location.href);v.value?f.searchParams.set("term",v.value):f.searchParams.delete("term"),window.history.pushState({},"",f.toString())}d("dsg-table:term-changed",v.value)},300);return($,f)=>(e.openBlock(),e.createElementBlock("div",dt,[e.createVNode(y._sfc_main$4,{modelValue:v.value,"onUpdate:modelValue":f[0]||(f[0]=u=>v.value=u),name:t.name,id:t.id||t.name,placeholder:t.placeholder,disabled:t.disabled,required:t.required,readonly:t.readonly,hidden:t.hidden,"has-clear-button":!0,autocomplete:"off",size:"sm",icon:"search-sm","icon-clickable":!0,onIconClicked:f[1]||(f[1]=u=>e.unref(p)(u)),onEnterPressed:f[2]||(f[2]=u=>e.unref(p)(u)),onOnClear:f[3]||(f[3]=()=>e.unref(p)(""))},null,8,["modelValue","name","id","placeholder","disabled","required","readonly","hidden"])]))}}),ct={class:"dsg-table-row-header"},ut=["title","id","onClick"],gt={key:0,class:"dsg-table-row-header__sort-icon"},mt=["innerHTML"],ft=["innerHTML"],vt=["innerHTML"],bt=["innerHTML"],ye=e.defineComponent({__name:"DsgTableRowHeader",props:e.mergeModels({fields:{},scrollVisible:{type:Boolean},hasSelectAll:{type:Boolean,default:!1},showExpandDetail:{type:Boolean,default:!0},tableDataLength:{default:0},selectableColumnWidth:{default:"4rem"},expandableColumnWidth:{default:"3rem"}},{sortField:{default:null},sortFieldModifiers:{},selectedRows:{default:[]},selectedRowsModifiers:{},hasSelected:{type:Boolean,default:!1},hasSelectedModifiers:{}}),emits:e.mergeModels(["dsg-table:sort-field","dsg-table:on-select-all","dsg-table:on-deselect-all"],["update:sortField","update:selectedRows","update:hasSelected"]),setup(t,{emit:x}){const v=e.useModel(t,"sortField"),d=e.useModel(t,"selectedRows"),p=e.useModel(t,"hasSelected"),$=e.ref("17px"),f=C=>{p.value&&d.value.length>0&&d.value.length!==t.tableDataLength?(p.value=!0,u("dsg-table:on-select-all")):!p.value&&d.value.length===0?(p.value=!1,u("dsg-table:on-select-all")):u("dsg-table:on-deselect-all")},u=x,T=(C,b)=>[C,C+"-"+G.toSnakeCase(String(b?.name)),b.titleClass||"",{"dsg-table-row-header__row--sortable":b.sortable},{"dsg-table-row-header__row--sort-active":v.value?.name===b.name}],S=C=>{C.sortable&&(v.value={name:String(C?.name),field:String(C?.sortField),direction:v.value?.name===C.name&&v.value?.direction==="asc"?"desc":"asc"},u("dsg-table:sort-field",C))};return(C,b)=>(e.openBlock(),e.createElementBlock("tr",ct,[t.hasSelectAll?(e.openBlock(),e.createElementBlock("th",{key:0,class:"dsg-table-row-header__row dsg-table-row-header__row--checkbox",style:e.normalizeStyle({width:t.selectableColumnWidth}),scope:"col"},[e.createVNode(y._sfc_main$2,{modelValue:p.value,"onUpdate:modelValue":[b[0]||(b[0]=l=>p.value=l),f],indeterminate:d.value.length>0&&d.value.length!==t.tableDataLength},null,8,["modelValue","indeterminate"])],4)):e.createCommentVNode("",!0),t.showExpandDetail?(e.openBlock(),e.createElementBlock("th",{key:1,class:"dsg-table-row-header__row dsg-table-row-header__row--expand-detail",style:e.normalizeStyle({width:t.expandableColumnWidth}),scope:"col"},null,4)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.fields,(l,E)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[l?.visible?(e.openBlock(),e.createElementBlock("th",{key:E,class:e.normalizeClass(T("dsg-table-row-header__row",l)),style:e.normalizeStyle([{width:l.width||void 0},l.style]),title:l.title+(l.sortable?" Sort":""),id:"_"+l.name,onClick:P=>S(l),scope:"col"},[l.sortable?(e.openBlock(),e.createElementBlock("div",gt,[l.tooltip?(e.openBlock(),e.createBlock(y._sfc_main$1,e.mergeProps({key:0,ref_for:!0},l.tooltip,{class:"dsg-table-row-header__tooltip"}),{"dsg-tooltip--trigger":e.withCtx(()=>[l.title?(e.openBlock(),e.createElementBlock("span",{key:0,class:"dsg-table-row-header__title",innerHTML:l.title},null,8,mt)):e.createCommentVNode("",!0),l.tooltip.icon?(e.openBlock(),e.createBlock(y._sfc_main,{key:1,icon:l.tooltip.icon,class:"inline-flex",size:"xs"},null,8,["icon"])):e.createCommentVNode("",!0)]),_:2},1040)):l.title?(e.openBlock(),e.createElementBlock("span",{key:1,class:"dsg-table-row-header__title",innerHTML:l.title},null,8,ft)):e.createCommentVNode("",!0),l.sortable&&v.value?.name!==l.name?(e.openBlock(),e.createBlock(y._sfc_main,{key:2,icon:"chevron-selector-vertical",class:"inline-flex",size:"xs"})):e.createCommentVNode("",!0),l.sortable&&v.value?.name===l.name&&v.value?.direction==="asc"?(e.openBlock(),e.createBlock(y._sfc_main,{key:3,icon:"chevron-down",class:"inline-flex",size:"xs"})):e.createCommentVNode("",!0),l.sortable&&v.value?.name===l.name&&v.value?.direction==="desc"?(e.openBlock(),e.createBlock(y._sfc_main,{key:4,icon:"chevron-up",class:"inline-flex",size:"xs"})):e.createCommentVNode("",!0)])):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[l.tooltip?(e.openBlock(),e.createBlock(y._sfc_main$1,e.mergeProps({key:0,ref_for:!0},l.tooltip,{class:"dsg-table-row-header__tooltip"}),{"dsg-tooltip--trigger":e.withCtx(()=>[e.createElementVNode("span",{class:"dsg-table-row-header__title",innerHTML:e.unref(G.ucwords)(String(l?.title))},null,8,vt),l.tooltip.icon?(e.openBlock(),e.createBlock(y._sfc_main,{key:0,icon:l.tooltip.icon,class:"inline-flex",size:"xs"},null,8,["icon"])):e.createCommentVNode("",!0)]),_:2},1040)):(e.openBlock(),e.createElementBlock("span",{key:1,class:"dsg-table-row-header__title",innerHTML:e.unref(G.ucwords)(String(l?.title))},null,8,bt))],64))],14,ut)):e.createCommentVNode("",!0)],64))),256)),t.scrollVisible?(e.openBlock(),e.createElementBlock("th",{key:2,style:e.normalizeStyle({width:$.value}),class:"dsg-table-row-header__col-gutter"},null,4)):e.createCommentVNode("",!0)]))}}),ht=["span"],wt={key:0,class:"dsg-table-component__loading"},kt=["colspan"],yt=["colspan"],pt=["onClick","onDblclick","onMouseover","onMouseenter"],Bt=["onClickCapture"],Ct=["aria-expanded","onClick"],St=["onClick","onDblclick","onContextmenu"],Et=["innerHTML"],Pt=["onClick"],Dt=["colspan"],xt={key:2},Vt=["colspan"],$t={class:"dsg-table-component__footer"},Tt=e.defineComponent({__name:"DsgTableComponent",props:e.mergeModels({fields:{default:()=>[]},isDraggable:{type:Boolean,default:!1},dragApi:{default:""},loadOnStart:{type:Boolean,default:!0},apiUrl:{default:""},httpMethod:{default:"get"},reactiveApiUrl:{type:Boolean,default:!0},apiMode:{type:Boolean,default:!0},data:{default:null},dataManager:{type:[Function,null],default:null},dataPath:{default:"data"},tableLayout:{default:"fixed"},paginationPath:{default:"links.pagination"},queryParams:{default:()=>({sort:"sort",order:"order",page:"page",perPage:"per_page"})},httpOptions:{default:()=>({})},hasDetailRow:{type:Boolean,default:!1},showExpandDetail:{type:Boolean,default:!0},expandableRows:{type:Boolean,default:!1},expandMultiple:{type:Boolean,default:!1},initialPage:{default:1},firstPage:{default:1},sortOrder:{default:()=>[]},multiSort:{type:Boolean},tableHeight:{default:null},multiSortKey:{},rowClass:{type:[String,Function],default:""},detailRowComponent:{},detailRowTransition:{default:"fade"},detailRowClass:{type:[String,Function]},detailRowOptions:{default:()=>({})},trackBy:{default:"id"},css:{default:()=>({tableWrapper:"dsg-table-wrapper",thead:"dsg-table-thead",tbody:"dsg-table-tbody",table:"dsg-table-component"})},minRows:{default:0},noDataTemplate:{default:"No Data Available"},showSortIcons:{type:Boolean},headerRows:{},transform:{type:[Function,null],default:null},sortParams:{type:[Function,null],default:null},fieldPrefix:{},eventPrefix:{},selectable:{type:Boolean,default:!1},selectableColumnWidth:{default:"4rem"},expandableColumnWidth:{default:"3rem"},shiftSelectHighlight:{default:()=>{}},selectedRowHighlight:{default:()=>{}},replaceState:{type:Boolean,default:!0},replaceStrategy:{default:"window"}},{filterParams:{default:{}},filterParamsModifiers:{},perPage:{default:20},perPageModifiers:{}}),emits:e.mergeModels(["dsg-table:loading","dsg-table:loaded","dsg-table:load-success","dsg-table:load-error","dsg-table:pagination-data","dsg-table:rows-selected","dsg-table:row-clicked","dsg-table:row-hover","dsg-table:row-dblclick","dsg-table:row-expanded","dsg-table:row-collapsed"],["update:filterParams","update:perPage"]),setup(t,{expose:x,emit:v}){const d=a=>a.map((n,o)=>({field:n.field||"",title:n.title||"",name:n.name||"",titleClass:n.titleClass||"",dataClass:n.dataClass||"",visible:n.visible??!0,width:n.width||void 0,sortField:n.sortField||null,sortable:n.sortField,formatter:n.formatter||null,tooltip:n.tooltip??null,$_index:o})),p=()=>{if(!t.apiMode)return null;const n=y.getQueryStrings().find(o=>o.key===t.queryParams.sort);if(n&&n.value.length>0){const o=n.value[0],g=o.startsWith("-"),c=g?o.substring(1):o,B=t.fields.find(L=>L.sortField===c||L.name===c||L.field===c);return B?{name:String(B.name||B.field),field:c,direction:g?"desc":"asc"}:{name:c,field:c,direction:g?"desc":"asc"}}return null},$=()=>{if(!(!t.apiMode||!t.replaceState)&&t.replaceStrategy==="window"){const a=new URL(window.location.href),n=new URLSearchParams(a.search);if(n.delete(t.queryParams.sort),w.value){const g=(w.value.direction==="desc"?"-":"")+w.value.field;n.set(t.queryParams.sort,g)}const o=`${a.pathname}${n.toString()?"?"+n.toString():""}`;window.history.pushState({},"",o)}},f=e.ref(d(t.fields)),u=e.ref(t.data),T=e.ref(null),S=e.ref(t.initialPage),C=e.ref("17px"),b=e.ref(!1),l=e.ref({}),E=e.ref(0),P=e.ref(!0),w=e.ref(p()),k=e.ref(null),R=e.ref(0),I=e.useModel(t,"filterParams"),j=e.useModel(t,"perPage"),D=e.ref([]),W=e.ref(!1),M=e.ref(new Set),N=e.ref(null),F=e.ref(null),z=e.ref(!1),A=e.computed(()=>t.tableHeight!=null),U=e.computed(()=>{let a=f.value.filter(n=>n.visible).length;return t.selectable&&a++,t.hasDetailRow&&t.expandableRows&&a++,a}),J=e.computed(()=>{const a={};return t.shiftSelectHighlight&&(a["--dsg-shift-select-bg"]=t.shiftSelectHighlight),t.selectedRowHighlight&&(a["--dsg-selected-row-bg"]=t.selectedRowHighlight),Object.keys(a).length>0?a:void 0}),X=(a,n)=>{const o=a?.[t.trackBy];return o??n};e.watch(()=>D.value.length,a=>{W.value=t.selectable&&a>0},{immediate:!0}),e.watch(()=>t.fields,a=>{f.value=d(a)},{immediate:!0,deep:!0}),e.watch(()=>I.value,a=>{q()},{deep:!0}),e.watch(()=>j.value,()=>{q()}),e.watch(()=>t.apiUrl,(a,n)=>{t.apiMode&&a!==n&&a&&q()}),e.watch(()=>w.value,()=>{$()},{deep:!0});const V=v,Z=(a,n)=>a.formatter&&typeof a.formatter=="function"?a.formatter(a,n):oe.data_get(n,String(a?.name),""),_=a=>"dsg-field--"+a.name?.toLowerCase().replaceAll(/[_ ]/g,"-"),ee=(a,n)=>{const o={odd:n%2===0,even:n%2!==0,"dsg-table-component__row--selected":a.selected};if(!t.rowClass)return o;let g={};if(typeof t.rowClass=="function"){const c=t.rowClass(a,n);typeof c=="string"?c.split(" ").forEach(B=>{B.trim()&&(g[B.trim()]=!0)}):Array.isArray(c)?c.forEach(B=>{typeof B=="string"&&B.trim()&&(g[B.trim()]=!0)}):typeof c=="object"&&c!==null&&(g=c)}else typeof t.rowClass=="string"&&t.rowClass.split(" ").forEach(c=>{c.trim()&&(g[c.trim()]=!0)});return{...o,...g}},H=a=>M.value.has(a[t.trackBy]),K=(a,n)=>{const o=a[t.trackBy];M.value.has(o)?(M.value.delete(o),V("dsg-table:row-collapsed",a,n)):(t.expandMultiple||M.value.clear(),M.value.add(o),V("dsg-table:row-expanded",a,n))},te=a=>{const n=a[t.trackBy];M.value.has(n)||(t.expandMultiple||M.value.clear(),M.value.add(n))},ae=a=>{M.value.delete(a[t.trackBy])},Q=()=>{u.value?.forEach(a=>{M.value.add(a[t.trackBy])})},le=()=>{M.value.clear()},s=()=>M.value,r=(a,n)=>{if(t.selectable){if(n!==void 0&&(N.value=n),a.selected)D.value.push(a);else{const o=D.value.findIndex(g=>g[t.trackBy]===a[t.trackBy]);o!==-1&&D.value.splice(o,1)}V("dsg-table:rows-selected",D.value)}},i=(a,n,o)=>{if(t.selectable&&a.shiftKey&&N.value!==null){a.stopPropagation(),a.preventDefault();const g=Math.min(N.value,o),c=Math.max(N.value,o),B=!n.selected;for(let L=g;L<=c;L++){if(L===N.value)continue;const O=u.value?.[L];if(O){const fe=O.selected;if(O.selected=B,B&&!fe)D.value.push(O);else if(!B&&fe){const ve=D.value.findIndex(Oe=>Oe[t.trackBy]===O[t.trackBy]);ve!==-1&&D.value.splice(ve,1)}}}N.value=o,F.value=null,V("dsg-table:rows-selected",D.value)}},m=()=>{t.selectable&&(u.value?.forEach(a=>{a.selected=!0}),D.value=u.value?.filter(a=>a.selected)??[],N.value=null,V("dsg-table:rows-selected",D.value))},h=()=>{t.selectable&&(u.value?.forEach(a=>{a.selected=!1}),D.value=[],N.value=null,V("dsg-table:rows-selected",D.value))},ne=()=>D.value??[],Ve=()=>{t.selectable&&u.value?.forEach(a=>{a.selected=!1}),D.value=[],W.value=!1,N.value=null,F.value=null,V("dsg-table:rows-selected",D.value)},Y=a=>{u.value=Array.isArray(a)?a:[],t.selectable&&(N.value=null,u.value.forEach(n=>{n.selected=n.selected??!1}))},$e=()=>u.value??[],Te=a=>{a==="prev"?S.value>t.firstPage&&S.value--:a==="next"?S.value<(T.value?.last_page??0)&&S.value++:a!=S.value&&a>=t.firstPage&&a<=(T.value?.last_page??0)&&(S.value=a),q()},Ne=()=>({[t.queryParams?.sort]:w.value?(w.value?.direction==="desc"?"-":"")+w.value?.field:void 0,[t.queryParams?.order]:w.value?.direction,[t.queryParams?.page]:S.value,[t.queryParams?.perPage]:j.value}),se=()=>{k.value&&(k.value.abort(),k.value=null)},Re=(a,n)=>{se(),R.value++;const o=R.value,g=new AbortController;return n.signal=g.signal,k.value=g,(t.httpMethod.toLowerCase()==="get"?y.axios.get(a,n):(()=>{const B=n.params;return delete n.params,y.axios.post(a,B,n)})()).then(B=>({...B,_requestId:o,_apiUrl:a}),B=>{throw B.name==="AbortError"||B.code==="ERR_CANCELED"?{...B,_requestId:o,_cancelled:!0}:{...B,_requestId:o}})},re=a=>{if(a._requestId&&a._requestId!==R.value||a._apiUrl&&a._apiUrl!==t.apiUrl)return;V("dsg-table:load-success",a);const n=t.transform?t.transform(a.data):a.data;u.value=oe.data_get(n,t.dataPath,null),t.selectable&&(N.value=null,u.value?.forEach(o=>{o.selected=o.selected??!1})),T.value=oe.data_get(n,t.paginationPath,null)??null,E.value=u.value?.length?u.value[0].order:E,!je.isEmpty(t.paginationPath)&&T.value===null&&console.warn('DsgTable: pagination-path "'+t.paginationPath+`" not found. It looks like the data returned from the server does not have pagination information or you may have set it incorrectly.
2
+ You can explicitly suppress this warning by setting pagination-path="".`),k.value=null,V("dsg-table:pagination-data",T.value),T.value&&S.value>(T.value?.last_page||0)&&u.value?.length===0&&(S.value=t.initialPage,q()),V("dsg-table:loaded"),P.value=!1},ie=a=>{a._requestId&&a._requestId!==R.value||a._apiUrl&&a._apiUrl!==t.apiUrl||a._cancelled||(console.error("load-error",a),k.value=null,V("dsg-table:load-error",a),V("dsg-table:loaded"),P.value=!1)},de=()=>{if(t.data!==null&&Array.isArray(t.data)){Y(t.data),P.value=!1;return}if(t.dataManager&&typeof t.dataManager=="function"){const a=t.dataManager();Y(a),P.value=!1}else Y(t.data),P.value=!1},q=(a=re,n=ie,o={})=>{const g=a||re,c=n||ie;if(!t.apiMode){de();return}return P.value=!0,V("dsg-table:loading",P.value),t.httpOptions.params={...Ne(),...I.value},Re(t.apiUrl,t.httpOptions).then(g).catch(B=>c(B))},Me=(a,n,o)=>{V("dsg-table:row-clicked",a,n,o)},Fe=(a,n,o)=>{V("dsg-table:row-dblclick",a,n,o)},Le=(a,n,o)=>{},ze=(a,n,o,g)=>{},He=(a,n,o,g)=>{},Ae=(a,n,o,g)=>{},Ue=(a,n,o)=>{},ce=a=>{a.key==="Shift"&&(z.value=!0)},ue=a=>{a.key==="Shift"&&(z.value=!1,F.value=null)},ge=()=>{z.value=!1,F.value=null},qe=a=>{t.selectable&&z.value&&N.value!==null&&(F.value=a)},Ie=()=>{F.value=null},We=a=>{if(!t.selectable||!z.value||N.value===null||F.value===null)return!1;const n=Math.min(N.value,F.value),o=Math.max(N.value,F.value);return a>=n&&a<=o};e.onMounted(()=>{t.apiMode===!0?q():de(),t.selectable&&(document.addEventListener("keydown",ce),document.addEventListener("keyup",ue),window.addEventListener("blur",ge))}),e.onUnmounted(()=>{t.selectable&&(document.removeEventListener("keydown",ce),document.removeEventListener("keyup",ue),window.removeEventListener("blur",ge))});const me=()=>{t.apiMode&&(D.value=[],se(),q())};return x({changePage:Te,reload:me,getData:$e,setData:Y,setLoading:a=>{P.value=a,V("dsg-table:loading",P.value)},expandRow:te,collapseRow:ae,toggleRowExpand:K,expandAllRows:Q,collapseAllRows:le,getExpandedRows:s,isRowExpanded:H,getSelection:ne,clearSelection:Ve}),(a,n)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["dsg-table-component",{"dsg-table-component--shift-active":t.selectable&&z.value}]),style:e.normalizeStyle(J.value)},[e.createElementVNode("div",{ref:"dsgTableBodyWrapper",class:e.normalizeClass(["dsg-table-component__body-wrapper",{"dsg-table-component__body-wrapper--fixed-header":A.value}]),style:e.normalizeStyle({height:t.tableHeight||void 0})},[e.createElementVNode("table",{class:e.normalizeClass(["dsg-table-component__main",A.value?"dsg-table-component__main--fixed-header":"","dsg-table-component__main--"+t.tableLayout,l.value.table])},[e.createElementVNode("colgroup",{span:U.value},[t.selectable?(e.openBlock(),e.createElementBlock("col",{key:0,style:e.normalizeStyle({width:t.selectableColumnWidth}),class:"dsg-table-component__col-checkbox"},null,4)):e.createCommentVNode("",!0),t.hasDetailRow&&t.expandableRows?(e.openBlock(),e.createElementBlock("col",{key:1,style:e.normalizeStyle({width:t.expandableColumnWidth}),class:"dsg-table-component__col-expand"},null,4)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(f.value,(o,g)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[o?.visible?(e.openBlock(),e.createElementBlock("col",{key:g,style:e.normalizeStyle({width:o.width||void 0}),class:e.normalizeClass("dsg-table-component__col-"+o.name+" "+o.titleClass)},null,6)):e.createCommentVNode("",!0)],64))),256)),!A.value&&b.value?(e.openBlock(),e.createElementBlock("col",{key:2,style:e.normalizeStyle({width:C.value}),class:"dsg-table-component__col-gutter"},null,4)):e.createCommentVNode("",!0)],8,ht),e.createElementVNode("thead",{class:e.normalizeClass([[l.value.thead,{sticky:A.value,"top-0":A.value}],"dsg-table-component__head"])},[e.renderSlot(a.$slots,"tableHeader",{fields:f.value},()=>[e.createVNode(ye,{fields:f.value,"has-select-all":t.selectable,"selectable-column-width":t.selectableColumnWidth,"expandable-column-width":t.expandableColumnWidth,"selected-rows":D.value,"onUpdate:selectedRows":n[0]||(n[0]=o=>D.value=o),"has-selected":W.value,"onUpdate:hasSelected":n[1]||(n[1]=o=>W.value=o),"scroll-visible":b.value,"show-expand-detail":t.hasDetailRow&&t.showExpandDetail,"table-data-length":u.value?.length,"sort-field":w.value,"onUpdate:sortField":n[2]||(n[2]=o=>w.value=o),"onDsgTable:sortField":n[3]||(n[3]=o=>me()),"onDsgTable:onSelectAll":m,"onDsgTable:onDeselectAll":h},null,8,["fields","has-select-all","selectable-column-width","expandable-column-width","selected-rows","has-selected","scroll-visible","show-expand-detail","table-data-length","sort-field"])])],2),e.createElementVNode("tbody",{class:e.normalizeClass(["dsg-table-component__body",l.value.tbody])},[P.value?(e.openBlock(),e.createElementBlock("tr",wt,[e.createElementVNode("td",{colspan:U.value},[e.createElementVNode("div",{"aria-label":"Loading...",role:"status",class:"flex items-center space-x-3 h-12 w-full justify-center",colspan:U.value},[e.renderSlot(a.$slots,"dsg-table-loading",{},()=>[e.createVNode(y._sfc_main,{icon:"loading-02",class:"animate-spin"}),n[5]||(n[5]=e.createElementVNode("span",{class:"text-xs font-medium text-gray-500"},"Loading...",-1))])],8,yt)],8,kt)])):(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:1},e.renderList(u.value,(o,g)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:X(o,g)},[e.createElementVNode("tr",{class:e.normalizeClass(["dsg-table-component__row",[ee(o,g),{"dsg-table-component__row--shift-range":t.selectable&&We(g)}]]),onClick:c=>Me(c,g,o),onDblclick:c=>Fe(c,g,o),onMouseover:c=>Le(),onMouseenter:c=>qe(g),onMouseleave:n[4]||(n[4]=c=>Ie())},[t.selectable?(e.openBlock(),e.createElementBlock("td",{key:0,class:"dsg-table-component__cell dsg-table-component__cell--checkbox",style:e.normalizeStyle({width:t.selectableColumnWidth}),onClickCapture:c=>i(c,o,g)},[e.createVNode(y._sfc_main$2,{modelValue:o.selected,"onUpdate:modelValue":[c=>o.selected=c,c=>r(o,g)]},null,8,["modelValue","onUpdate:modelValue"])],44,Bt)):e.createCommentVNode("",!0),t.hasDetailRow&&t.expandableRows?(e.openBlock(),e.createElementBlock("td",{key:1,class:"dsg-table-component__cell dsg-table-component__cell--expand",style:e.normalizeStyle({width:t.expandableColumnWidth})},[e.createElementVNode("button",{type:"button",class:e.normalizeClass(["dsg-table-component__expand-toggle",{"dsg-table-component__expand-toggle--expanded":H(o)}]),"aria-expanded":H(o),"aria-label":"Toggle row details",onClick:e.withModifiers(c=>K(o,g),["stop"])},[e.createVNode(y._sfc_main,{icon:"chevron-right",size:"sm",class:"dsg-table-component__expand-icon"})],10,Ct)],4)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(f.value,(c,B)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:B},[c.visible?(e.openBlock(),e.createElementBlock("td",{key:0,class:e.normalizeClass(["dsg-table-component__cell",c.dataClass]),style:e.normalizeStyle({width:c.width||void 0}),onClick:L=>ze(),onDblclick:L=>He(),onContextmenu:L=>Ae()},[e.renderSlot(a.$slots,_(c),{rowData:o,rowIndex:g,rowField:c},()=>[e.createElementVNode("span",{innerHTML:Z(c,o)},null,8,Et)])],46,St)):e.createCommentVNode("",!0)],64))),128))],42,pt),t.hasDetailRow&&(!t.expandableRows||H(o))?(e.openBlock(),e.createBlock(e.Transition,{key:0,name:t.detailRowTransition},{default:e.withCtx(()=>[e.createElementVNode("tr",{class:e.normalizeClass(["dsg-table-component__detail",{"dsg-table-component__detail--expanded":t.expandableRows&&H(o)}]),onClick:c=>Ue()},[e.createElementVNode("td",{colspan:U.value},[e.renderSlot(a.$slots,"dsg-table-detail-row",{rowData:o,rowIndex:g,options:t.detailRowOptions,isExpanded:t.expandableRows?H(o):!0})],8,Dt)],10,Pt)]),_:2},1032,["name"])):e.createCommentVNode("",!0)],64))),128)),!P.value&&!u.value?.length&&t.noDataTemplate.length?(e.openBlock(),e.createElementBlock("tr",xt,[e.createElementVNode("td",{colspan:U.value,class:"dsg-table-component__empty-result"},[e.renderSlot(a.$slots,"dsg-table-empty-result",{},()=>[e.createTextVNode(e.toDisplayString(t.noDataTemplate),1)])],8,Vt)])):e.createCommentVNode("",!0)],2),e.createElementVNode("tfoot",$t,[e.renderSlot(a.$slots,"dsg-table-footer",{fields:f.value,data:u.value})])],2)],6)],6))}}),Nt={class:"dsg-table"},Rt={key:0,class:"dsg-table__pre-header"},Mt={class:"dsg-table--pre-header-left"},Ft=["textContent"],Lt={class:"dsg-table__pre-header-right"},zt={key:1,class:"dsg-table__search-header",ref:"dsgTableSearchHeaderEl"},Ht={class:"dsg-table__search-top"},At={key:2,class:"dsg-table__footer",ref:"dsgTableFooterEl"},Ut={class:"dsg-table__footer-left"},qt={class:"dsg-table__footer-center"},It={class:"dsg-table__footer-right"},Wt=e.defineComponent({__name:"DsgTable",props:{getUrl:{},fields:{},loadOnStart:{type:Boolean,default:!0},displaySearch:{type:Boolean,default:!0},displayPaginationInfo:{type:Boolean,default:!0},reloadOnChangeTimer:{type:Boolean,default:!1},selectable:{type:Boolean,default:!1},selectableColumnWidth:{default:"4rem"},expandableColumnWidth:{default:"3rem"},shiftSelectHighlight:{default:()=>{}},selectedRowHighlight:{default:()=>{}},trackBy:{default:"id"},title:{default:""},filters:{default:()=>{}},initialFilters:{default:()=>({})},filterEntity:{default:""},filterEndpoint:{default:""},filterSearchEndpoint:{default:""},tableLayout:{default:"fixed"},autoSortFilters:{type:Boolean,default:!0},showSaveAsDefault:{type:Boolean,default:!1},saveAsDefaultLabel:{default:"Save as default"},showClearAll:{type:Boolean,default:!0},clearAllLabel:{default:"Clear all"},data:{default:null},hasHeader:{type:Boolean,default:!0},hasFooter:{type:Boolean,default:!0},perPage:{default:20},pagination:{},paginationPath:{default:"meta"},css:{default:()=>({tableWrapper:"border-b"})},rowClass:{type:[String,Function],default:void 0},apiMode:{type:Boolean,default:!0},replaceState:{type:Boolean,default:!0},replaceStrategy:{default:"window"},hasDetailRow:{type:Boolean,default:!1},expandableRows:{type:Boolean,default:!1},expandMultiple:{type:Boolean,default:!1},showExpandDetail:{type:Boolean,default:!0},detailRowTransition:{default:"fade"},detailRowOptions:{default:()=>({})}},emits:["dsg-table:action-edit","dsg-table:action-view","dsg-table:action-delete","dsg-table:action-archive","dsg-table:link-clicked","dsg-table:rows-selected","dsg-table:row-clicked","dsg-table:row-hover","dsg-table:row-dblclick","dsg-table:filter-updated","dsg-table:save-as-default","dsg-table:term-changed","dsg-table:data-loaded","dsg-table:row-expanded","dsg-table:row-collapsed"],setup(t,{expose:x,emit:v}){const d=s=>{P.value=s},p=e.ref(t.apiMode&&!!(t.filterEntity||t.filterEndpoint||t.getUrl)),$=()=>{if(p.value){let s={};return y.getQueryStrings().forEach(r=>{const i=y.parseFilterQueryKey(r.key);if(!i)return;const m=s[`filter[${i}]`],h=r.value.join(",");s[`filter[${i}]`]=m?`${m},${h}`:h}),s}else return{}},f=e.computed(()=>({...t.css,tableWrapper:"border-b "+(t.css?.tableWrapper||"")})),u=e.useSlots(),T=e.ref(!0),S=e.ref(null),C=e.ref("<p>Showing {from} to {to} of {total}</p>"),b=e.ref(null),l=e.useTemplateRef("dsgTable"),E=e.ref({perPage:t.perPage,change:d}),P=e.ref(t.perPage),w=e.ref({...$(),...t.initialFilters}),k=v,R=s=>{l.value?.changePage(s)},I=s=>{b.value=s},j=({data:s})=>{S.value=s,k("dsg-table:data-loaded",s)},D=()=>{l.value?.reload()},W=s=>{l.value?.setLoading(s)},M=s=>{const r=l.value?.getData?.()??[];l.value?.setData(r.map(i=>i.id===s.id?s:i))},N=s=>{const r=l.value?.getData?.()??[];l.value?.setData([...r,s])},F=s=>{const r=l.value?.getData?.()??[];l.value?.setData(r.filter(i=>i.id!==s.id))},z=s=>{l.value?.setData(s)},A=()=>l.value?.getData()??[],U=s=>{const r=l.value?.getData()??[],i=s(r);i&&l.value?.setData(i)},J=s=>{l.value?.expandRow(s)},X=s=>{l.value?.collapseRow(s)},V=(s,r)=>{l.value?.toggleRowExpand(s,r)},Z=()=>{l.value?.expandAllRows()},_=()=>{l.value?.collapseAllRows()},ee=()=>l.value?.getExpandedRows()??new Set,H=()=>l.value?.getSelection()??[],K=()=>{l.value?.clearSelection()},te=s=>{w.value=s},ae=()=>w.value??{},Q=s=>{const r={...w.value};!s||s.trim()===""?delete r["filter[term]"]:r["filter[term]"]=s,w.value=r,e.nextTick(()=>{D()}),k("dsg-table:term-changed",s)},le=(s,r,i)=>{let m={};w.value["filter[term]"]&&(m["filter[term]"]=w.value["filter[term]"]),Object.keys(s).forEach(h=>{s[h]!==null&&s[h]!==void 0&&s[h]!==""&&(m[h]=s[h])}),w.value=m,e.nextTick(()=>{D()}),k("dsg-table:filter-updated",w.value,r,i)};return x({reloadTable:D,updateRowTable:M,addRowTable:N,deleteRowTable:F,setData:z,getData:A,mutateData:U,termChanged:Q,setFilters:te,getFilters:ae,setLoading:W,expandRow:J,collapseRow:X,toggleRowExpand:V,expandAllRows:Z,collapseAllRows:_,getExpandedRows:ee,getSelection:H,clearSelection:K,changePage:R}),(s,r)=>(e.openBlock(),e.createElementBlock("div",Nt,[t.hasHeader?(e.openBlock(),e.createElementBlock("div",Rt,[e.renderSlot(s.$slots,"dsg-table--pre-header",{},()=>[e.createElementVNode("div",Mt,[e.renderSlot(s.$slots,"dsg-table--page-title",{data:S.value,title:t.title},()=>[t.title.length>0?(e.openBlock(),e.createElementBlock("h1",{key:0,class:"dsg-table__title",textContent:e.toDisplayString(t.title)},null,8,Ft)):e.createCommentVNode("",!0)])]),e.createElementVNode("div",Lt,[e.renderSlot(s.$slots,"dsg-table--page-actions",{data:S.value})])])])):e.createCommentVNode("",!0),t.displaySearch?(e.openBlock(),e.createElementBlock("div",zt,[e.createElementVNode("div",Ht,[e.renderSlot(s.$slots,"dsg-table--search-header",{data:S.value},()=>[e.createVNode(ke,{name:"term","onDsgTable:termChanged":r[0]||(r[0]=i=>Q(i))}),e.createVNode(y._sfc_main$7,{entity:t.filterEntity,"filter-endpoint":t.filterEndpoint,"search-endpoint":t.filterSearchEndpoint,"auto-sort":t.autoSortFilters,filters:t.filters,"show-save-as-default":t.showSaveAsDefault,"save-as-default-label":t.saveAsDefaultLabel,"show-clear-all":t.showClearAll,"clear-all-label":t.clearAllLabel,"onDsgTable:filterUpdated":r[1]||(r[1]=(i,m,h)=>le(i,m,h)),"onDsgTable:saveAsDefault":r[2]||(r[2]=(i,m,h)=>k("dsg-table:save-as-default",i,m,h))},null,8,["entity","filter-endpoint","search-endpoint","auto-sort","filters","show-save-as-default","save-as-default-label","show-clear-all","clear-all-label"]),e.renderSlot(s.$slots,"dsg-table--search-actions",{data:S.value})])]),e.renderSlot(s.$slots,"dsg-table--search-navigation")],512)):e.createCommentVNode("",!0),e.createVNode(Tt,{ref:"dsgTable","api-url":t.getUrl,"filter-params":w.value,"onUpdate:filterParams":r[8]||(r[8]=i=>w.value=i),"per-page":P.value,"onUpdate:perPage":r[9]||(r[9]=i=>P.value=i),fields:t.fields,"load-on-start":t.loadOnStart,"pagination-path":t.paginationPath,selectable:t.selectable,"selectable-column-width":t.selectableColumnWidth,"expandable-column-width":t.expandableColumnWidth,"shift-select-highlight":t.shiftSelectHighlight,"selected-row-highlight":t.selectedRowHighlight,"track-by":t.trackBy,"table-layout":t.tableLayout,css:f.value,data:t.data,"row-class":t.rowClass,"api-mode":p.value,"replace-state":t.replaceState,"replace-strategy":t.replaceStrategy,"has-detail-row":t.hasDetailRow,"expandable-rows":t.expandableRows,"expand-multiple":t.expandMultiple,"show-expand-detail":t.showExpandDetail,"detail-row-transition":t.detailRowTransition,"detail-row-options":t.detailRowOptions,"onDsgTable:loading":r[10]||(r[10]=i=>T.value=!0),"onDsgTable:loaded":r[11]||(r[11]=i=>T.value=!1),"onDsgTable:paginationData":I,"onDsgTable:loadSuccess":j,"onDsgTable:rowsSelected":r[12]||(r[12]=i=>k("dsg-table:rows-selected",i)),"onDsgTable:rowClicked":r[13]||(r[13]=(i,m,h)=>k("dsg-table:row-clicked",i,m,h)),"onDsgTable:rowHover":r[14]||(r[14]=(i,m,h)=>k("dsg-table:row-hover",i,m,h)),"onDsgTable:rowDblclick":r[15]||(r[15]=(i,m,h)=>k("dsg-table:row-dblclick",i,m,h)),"onDsgTable:rowExpanded":r[16]||(r[16]=(i,m)=>k("dsg-table:row-expanded",i,m)),"onDsgTable:rowCollapsed":r[17]||(r[17]=(i,m)=>k("dsg-table:row-collapsed",i,m))},e.createSlots({"dsg-field--actions":e.withCtx(i=>[e.renderSlot(s.$slots,"dsg-table-actions",{data:i},()=>[(e.openBlock(),e.createBlock(we,{key:i.rowData?.[t.trackBy]??i.rowIndex,data:i,"onDsgTable:actionEdit":r[3]||(r[3]=(m,h)=>k("dsg-table:action-edit",m,h)),"onDsgTable:actionView":r[4]||(r[4]=(m,h)=>k("dsg-table:action-view",m,h)),"onDsgTable:actionDelete":r[5]||(r[5]=(m,h)=>k("dsg-table:action-delete",m,h)),"onDsgTable:actionArchive":r[6]||(r[6]=(m,h)=>k("dsg-table:action-archive",m,h)),"onDsgTable:linkClicked":r[7]||(r[7]=(m,h,ne)=>k("dsg-table:link-clicked",m,h,ne))},null,8,["data"]))])]),_:2},[e.renderList(e.unref(u),(i,m)=>({name:m,fn:e.withCtx(h=>[String(m)!=="dsg-field--actions"?e.renderSlot(s.$slots,m,e.normalizeProps(e.mergeProps({key:0},h))):e.createCommentVNode("",!0)])}))]),1032,["api-url","filter-params","per-page","fields","load-on-start","pagination-path","selectable","selectable-column-width","expandable-column-width","shift-select-highlight","selected-row-highlight","track-by","table-layout","css","data","row-class","api-mode","replace-state","replace-strategy","has-detail-row","expandable-rows","expand-multiple","show-expand-detail","detail-row-transition","detail-row-options"]),t.hasFooter?(e.openBlock(),e.createElementBlock("div",At,[e.createElementVNode("div",Ut,[e.renderSlot(s.$slots,"dsg-table--footer-left",{data:b.value,perPage:E.value},()=>[t.displayPaginationInfo?(e.openBlock(),e.createBlock(he,{key:0,ref:"paginationInfoStart",pagination:b.value,"onUpdate:pagination":r[18]||(r[18]=i=>b.value=i),"info-template":C.value},null,8,["pagination","info-template"])):e.createCommentVNode("",!0),e.renderSlot(s.$slots,"dsg-table--footer-left-extras",{data:b.value,perPage:E.value})])]),e.createElementVNode("div",qt,[e.renderSlot(s.$slots,"dsg-table--footer-center",{data:b.value,perPage:E.value},()=>[e.renderSlot(s.$slots,"dsg-table--footer-center-extras",{data:b.value,perPage:E.value})])]),e.createElementVNode("div",It,[e.renderSlot(s.$slots,"dsg-table--footer-right",{data:b.value,perPage:E.value},()=>[T.value===!1&&t.displayPaginationInfo?(e.openBlock(),e.createBlock(be,e.mergeProps({key:0,ref:"pagination",pagination:b.value,"onUpdate:pagination":r[19]||(r[19]=i=>b.value=i),"onDsgTable:changePage":R},t.pagination),null,16,["pagination"])):e.createCommentVNode("",!0),e.renderSlot(s.$slots,"dsg-table--footer-right-extras",{data:b.value,perPage:E.value})])])],512)):e.createCommentVNode("",!0)]))}}),Ot={class:"dsg-table-per-page"},jt=e.defineComponent({__name:"DsgTablePerPage",props:{perPageOptions:{default:()=>[{label:10,id:0},{label:20,id:1},{label:30,id:2},{label:50,id:3},{label:100,id:4}]},perPage:{}},setup(t){const x=d=>t.perPageOptions.find(p=>p.label===d),v=d=>{t.perPage.perPage=d.label,t.perPage.change(d.label)};return(d,p)=>(e.openBlock(),e.createElementBlock("div",Ot,[e.createVNode(y._sfc_main$8,{modelValue:x(t.perPage.perPage),"onUpdate:modelValue":v,options:t.perPageOptions,size:"sm","close-on-select":""},null,8,["modelValue","options"])]))}}),pe=Wt,Be=we,Ce=jt,Se=y._sfc_main$7,Ee=be,Pe=he,De=ke,xe=ye,Kt={DsgTable:pe,DsgTableActions:Be,DsgTablePerPage:Ce,DsgTableFilter:Se,DsgTablePagination:Ee,DsgTablePaginationInfo:Pe,DsgTableSearch:De,DsgTableRowHeader:xe};exports.DsgTable=pe;exports.DsgTableActions=Be;exports.DsgTableFilter=Se;exports.DsgTablePagination=Ee;exports.DsgTablePaginationInfo=Pe;exports.DsgTablePerPage=Ce;exports.DsgTableRowHeader=xe;exports.DsgTableSearch=De;exports.default=Kt;