@ghentcdh/ui 0.2.2 → 0.3.0

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.
Files changed (63) hide show
  1. package/index.css +1 -1
  2. package/index.esm.js +1583 -0
  3. package/index.js +7 -7
  4. package/package.json +21 -8
  5. package/button/btn-badge.vue.d.ts +0 -38
  6. package/button/btn.vue.d.ts +0 -44
  7. package/button/const.d.ts +0 -9
  8. package/button/index.d.ts +0 -2
  9. package/card/card.vue.d.ts +0 -20
  10. package/const/colors.d.ts +0 -8
  11. package/const/index.d.ts +0 -2
  12. package/const/size.d.ts +0 -3
  13. package/directives/click-outside.directive.d.ts +0 -6
  14. package/drawer/drawer.properties.d.ts +0 -0
  15. package/drawer/drawer.vue.d.ts +0 -26
  16. package/drawer/index.d.ts +0 -1
  17. package/form/AutoComplete.vue.d.ts +0 -33
  18. package/form/MultiSelect.vue.d.ts +0 -31
  19. package/form/SelectComponent.vue.d.ts +0 -32
  20. package/form/core/ControlWrapper.vue.d.ts +0 -30
  21. package/form/core/emits.d.ts +0 -5
  22. package/form/core/properties.d.ts +0 -32
  23. package/form/core/styles.d.ts +0 -7
  24. package/form/core/utils/style.d.ts +0 -2
  25. package/form/index.d.ts +0 -7
  26. package/icons/icon-list.d.ts +0 -22
  27. package/icons/icon.vue.d.ts +0 -8
  28. package/icons/index.d.ts +0 -2
  29. package/index.mjs +0 -1608
  30. package/loading/index.d.ts +0 -1
  31. package/loading/loading.vue.d.ts +0 -5
  32. package/menu/dropdown.vue.d.ts +0 -6
  33. package/menu/index.d.ts +0 -4
  34. package/menu/menu-item.vue.d.ts +0 -5
  35. package/menu/menu.type.d.ts +0 -15
  36. package/menu/menu.vue.d.ts +0 -7
  37. package/menu/sub-menu.vue.d.ts +0 -7
  38. package/modal/confirmModal.vue.d.ts +0 -10
  39. package/modal/index.d.ts +0 -5
  40. package/modal/modal.model.d.ts +0 -17
  41. package/modal/modal.service.d.ts +0 -15
  42. package/modal/modal.vue.d.ts +0 -39
  43. package/modal/modalWrapper.vue.d.ts +0 -2
  44. package/shell/menu.type.d.ts +0 -11
  45. package/shell/shell.component.vue.d.ts +0 -31
  46. package/table/cells/text.cell.vue.d.ts +0 -30
  47. package/table/header/sort.header.vue.d.ts +0 -12
  48. package/table/index.d.ts +0 -8
  49. package/table/pagination-button.component.vue.d.ts +0 -17
  50. package/table/pagination.component.vue.d.ts +0 -38
  51. package/table/table.component.vue.d.ts +0 -28
  52. package/table/table.model.d.ts +0 -10
  53. package/toast/index.d.ts +0 -3
  54. package/toast/notification-message.d.ts +0 -7
  55. package/toast/notification-message.vue.d.ts +0 -7
  56. package/toast/notification.service.d.ts +0 -24
  57. package/toast/notifications.vue.d.ts +0 -2
  58. package/tree/TreeItem.vue.d.ts +0 -15
  59. package/tree/TreeView.vue.d.ts +0 -7
  60. package/tree/index.d.ts +0 -1
  61. package/tree/props.d.ts +0 -13
  62. package/utils/hasCustomEventListener.d.ts +0 -1
  63. package/utils/index.d.ts +0 -1
package/index.js CHANGED
@@ -1,16 +1,16 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),se=require("vue-router"),h=(...t)=>`<svg
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),re=require("vue-router"),g=(...t)=>`<svg
2
2
  xmlns="http://www.w3.org/2000/svg"
3
3
  fill="none"
4
4
  viewBox="0 0 24 24"
5
5
  stroke-width="1.5"
6
6
  stroke="currentColor" >
7
- ${t.map(l=>` <path
7
+ ${t.map(n=>` <path
8
8
  stroke-linejoin="round"
9
9
  stroke-linecap="round"
10
- d="${l}"
10
+ d="${n}"
11
11
  />`).join(`
12
12
  `)}
13
- </svg>`;var k=(t=>(t.Edit="Edit",t.Delete="Delete",t.BarsArrowDown="BarsArrowDown",t.BarsArrowUp="BarsArrowUp",t.Funnel="Funnel",t.Close="Close",t.Plus="Plus",t.PaperClip="PaperClip",t.Hamburger="Hamburger",t.ChevronRight="ChevronRight",t.ChevronLeft="ChevronLeft",t.ChevronDown="ChevronDown",t.ChevronUp="ChevronUp",t.DblChevronLeft="DblChevronLeft",t.DblChevronRight="DblChevronRight",t.Check="Check",t.View="View",t.Text="Text",t))(k||{});const H={Edit:h("m16.862 4.487 1.687-1.688a1.875 1.875 0 1 1 2.652 2.652L10.582 16.07a4.5 4.5 0 0 1-1.897 1.13L6 18l.8-2.685a4.5 4.5 0 0 1 1.13-1.897l8.932-8.931Zm0 0L19.5 7.125M18 14v4.75A2.25 2.25 0 0 1 15.75 21H5.25A2.25 2.25 0 0 1 3 18.75V8.25A2.25 2.25 0 0 1 5.25 6H10"),Delete:h("m14.74 9-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 0 1-2.244 2.077H8.084a2.25 2.25 0 0 1-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 0 0-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 0 1 3.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 0 0-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 0 0-7.5 0"),BarsArrowDown:h("M3 4.5h14.25M3 9h9.75M3 13.5h9.75m4.5-4.5v12m0 0-3.75-3.75M17.25 21 21 17.25"),BarsArrowUp:h("M3 4.5h14.25M3 9h9.75M3 13.5h5.25m5.25-.75L17.25 9m0 0L21 12.75M17.25 9v12"),Funnel:h("M12 3c2.755 0 5.455.232 8.083.678.533.09.917.556.917 1.096v1.044a2.25 2.25 0 0 1-.659 1.591l-5.432 5.432a2.25 2.25 0 0 0-.659 1.591v2.927a2.25 2.25 0 0 1-1.244 2.013L9.75 21v-6.568a2.25 2.25 0 0 0-.659-1.591L3.659 7.409A2.25 2.25 0 0 1 3 5.818V4.774c0-.54.384-1.006.917-1.096A48.32 48.32 0 0 1 12 3Z"),Close:h("M6 18 18 6M6 6l12 12"),Plus:h("M12 9v6m3-3H9m12 0a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"),PaperClip:h("m18.375 12.739-7.693 7.693a4.5 4.5 0 0 1-6.364-6.364l10.94-10.94A3 3 0 1 1 19.5 7.372L8.552 18.32m.009-.01-.01.01m5.699-9.941-7.81 7.81a1.5 1.5 0 0 0 2.112 2.13"),Hamburger:h("M4 6h16M4 12h16M4 18h16"),ChevronDown:h("M12.53 16.28a.75.75 0 0 1-1.06 0l-7.5-7.5a.75.75 0 0 1 1.06-1.06L12 14.69l6.97-6.97a.75.75 0 1 1 1.06 1.06l-7.5 7.5Z"),ChevronUp:h("M11.47 7.72a.75.75 0 0 1 1.06 0l7.5 7.5a.75.75 0 1 1-1.06 1.06L12 9.31l-6.97 6.97a.75.75 0 0 1-1.06-1.06l7.5-7.5Z"),Check:h("m4.5 12.75 6 6 9-13.5"),View:h("M2.036 12.322a1.012 1.012 0 0 1 0-.639C3.423 7.51 7.36 4.5 12 4.5c4.638 0 8.573 3.007 9.963 7.178.07.207.07.431 0 .639C20.577 16.49 16.64 19.5 12 19.5c-4.638 0-8.573-3.007-9.963-7.178Z","M15 12a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z"),Text:h("M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m0 12.75h7.5m-7.5 3H12M10.5 2.25H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z"),DblChevronLeft:h("m18.75 4.5-7.5 7.5 7.5 7.5m-6-15L5.25 12l7.5 7.5"),DblChevronRight:h("m5.25 4.5 7.5 7.5-7.5 7.5m6-15 7.5 7.5-7.5 7.5")},ce=["innerHTML"],_=e.defineComponent({__name:"icon",props:{icon:{},size:{}},setup(t){return(o,l)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([{"w-full h-full":!o.size,"w-2 h-2":o.size==="xs","w-4 h-4":o.size==="sm"}]),innerHTML:e.unref(H)[o.icon]},null,10,ce))}}),ie={class:"dropdown dropdown-end"},de={tabindex:"0",class:"menu dropdown-content bg-white z-1 mt-4 p-2 shadow-sm"},ue={class:"min-w-max flex-no-wrap text-black"},P=e.defineComponent({__name:"sub-menu",props:{label:{},items:{},action:{type:Function},disabled:{type:Boolean},btnClass:{},disableArrow:{type:Boolean}},setup(t){return(o,l)=>(e.openBlock(),e.createElementBlock("div",ie,[e.createElementVNode("div",{tabindex:"0",role:"button",class:e.normalizeClass([o.btnClass,"btn btn-ghost text-right flex-nowrap flex"])},[e.createElementVNode("span",null,e.toDisplayString(o.label),1),o.disableArrow?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(_),{key:0,icon:e.unref(k).ChevronDown,size:"sm"},null,8,["icon"]))],2),e.createElementVNode("ul",de,[e.createElementVNode("li",ue,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.items,r=>(e.openBlock(),e.createBlock(K,e.mergeProps({key:r.label},{ref_for:!0},r),null,16))),128))])])]))}}),S="btn btn-ghost text-left justify-between min-w-max font-normal",K=e.defineComponent({__name:"menu-item",props:{label:{},items:{},action:{},disabled:{type:Boolean,default:!1}},setup(t){const o=t,l=e.computed(()=>!o.disabled&&o.action&&"routerLink"in o.action),r=e.computed(()=>!o.disabled&&o.action),n=e.computed(()=>{var s;return(s=o.items)==null?void 0:s.length}),a=e.computed(()=>{const s=o.action;return s&&"routerLink"in s&&"params"in s?{name:s.routerLink,params:s.params}:""}),p=()=>{var s;(s=o.action)==null||s.call(o)};return(s,i)=>{const d=e.resolveComponent("RouterLink");return n.value?(e.openBlock(),e.createBlock(P,e.mergeProps({key:0},o,{"btn-class":S}),null,16)):l.value?(e.openBlock(),e.createBlock(d,{key:1,to:a.value,class:e.normalizeClass(S),onClick:p},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(s.label),1)]),_:1},8,["to"])):r.value?(e.openBlock(),e.createElementBlock("button",{key:2,class:e.normalizeClass(S),onClick:p},e.toDisplayString(s.label),1)):(e.openBlock(),e.createElementBlock("div",{key:3,class:e.normalizeClass([S,{"btn-disabled":s.disabled}])},e.toDisplayString(s.label),3))}}}),pe={class:"navbar bg-base-100 shadow-sm"},me={class:"flex-1"},fe={key:0,class:"breadcrumbs text-sm"},ge={class:"flex grow justify-end px-2"},he={class:"flex items-stretch"},ve=e.defineComponent({__name:"menu",props:{menu:{},breadcrumbs:{}},setup(t){return(o,l)=>{const r=e.resolveComponent("RouterLink");return e.openBlock(),e.createElementBlock("nav",pe,[e.createElementVNode("div",me,[o.breadcrumbs?(e.openBlock(),e.createElementBlock("div",fe,[e.createElementVNode("ul",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.breadcrumbs,n=>(e.openBlock(),e.createElementBlock("li",{key:n.label},[n.routerLink?(e.openBlock(),e.createBlock(r,{key:0,to:{name:n.routerLink,params:n.params}},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(n.label),1)]),_:2},1032,["to"])):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(n.label),1)],64))]))),128))])])):e.createCommentVNode("",!0)]),e.createElementVNode("div",ge,[e.createElementVNode("div",he,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.menu,n=>(e.openBlock(),e.createBlock(K,e.mergeProps({key:n.label},{ref_for:!0},n),null,16))),128))])])])}}}),be=e.defineComponent({__name:"dropdown",props:{items:{}},setup(t){const o=e.ref(!0);return(l,r)=>(e.openBlock(),e.createBlock(P,{items:l.items,label:"test",open:o.value,"btn-class":"","disable-arrow":!0},null,8,["items","open"]))}}),g=[];for(let t=0;t<256;++t)g.push((t+256).toString(16).slice(1));function ke(t,o=0){return(g[t[o+0]]+g[t[o+1]]+g[t[o+2]]+g[t[o+3]]+"-"+g[t[o+4]]+g[t[o+5]]+"-"+g[t[o+6]]+g[t[o+7]]+"-"+g[t[o+8]]+g[t[o+9]]+"-"+g[t[o+10]]+g[t[o+11]]+g[t[o+12]]+g[t[o+13]]+g[t[o+14]]+g[t[o+15]]).toLowerCase()}let F;const ye=new Uint8Array(16);function Be(){if(!F){if(typeof crypto>"u"||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");F=crypto.getRandomValues.bind(crypto)}return F(ye)}const Ce=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),U={randomUUID:Ce};function M(t,o,l){var n;if(U.randomUUID&&!t)return U.randomUUID();t=t||{};const r=t.random??((n=t.rng)==null?void 0:n.call(t))??Be();if(r.length<16)throw new Error("Random bytes length must be >= 16");return r[6]=r[6]&15|64,r[8]=r[8]&63|128,ke(r)}const we={class:"font-bold"},_e={class:"pt-4"},Ve={class:"modal-action"},j=e.defineComponent({__name:"modal",props:{modalTitle:{},buttonLabel:{},buttonSaveLabel:{},data:{},open:{type:Boolean,default:!1},disableClose:{type:Boolean,default:!1},width:{default:"sm"}},emits:["closeModal"],setup(t,{expose:o,emit:l}){const r={xs:"max-w-xs w-[50VW]",sm:"max-w-sm w-[50VW]",lg:"max-w-2xl w-[80VW]",xl:"max-w-[80VW] w-[80VW]"},n=t,a=`modal_${M()}`,p=l,s=()=>{const d=document.getElementById(a);d==null||d.showModal()},i=()=>{const d=document.getElementById(a);d==null||d.close(),p("closeModal")};return o({closeModal:i,openModal:s}),e.watch(()=>n.open,(d,c,v)=>{n.open?s():i()}),e.onMounted(()=>{n.open&&s()}),(d,c)=>(e.openBlock(),e.createElementBlock("dialog",{id:a,class:"modal"},[e.createElementVNode("div",{class:e.normalizeClass(["modal-box bg-white",r[d.width]])},[d.disableClose?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"btn btn-sm btn-circle btn-ghost absolute right-2 top-2",onClick:i}," ✕ ")),e.createElementVNode("h3",we,e.toDisplayString(d.modalTitle),1),e.createElementVNode("div",_e,[e.renderSlot(d.$slots,"content")]),e.createElementVNode("div",Ve,[e.renderSlot(d.$slots,"actions")])],2)]))}});var R=(t=>(t.button="button",t.submit="submit",t.reset="reset",t))(R||{}),I=(t=>(t.a="a",t.button="button",t))(I||{}),N=(t=>(t.blank="blank",t.primary="primary",t.secondary="secondary",t.error="error",t))(N||{});const Ee={blank:"btn-ghost",primary:"btn-primary",secondary:"btn-soft btn-primary",error:"btn-error text-white"},Ne={blank:"badge-ghost",primary:"badge-primary",secondary:"badge-soft badge-primary",error:"badge-error"},q={xs:"btn-xs",sm:"btn-sm",lg:"btn-sm",xl:"btn"},Z={xs:"badge-xs text-xxs",sm:"badge-sm text-xs",lg:"badge-sm text-xs",xl:"badge text-xs"},$=e.defineComponent({__name:"btn",props:{href:{},disabled:{type:Boolean,default:!1},as:{default:I.button},icon:{},type:{default:R.button},outline:{type:Boolean,default:!1},color:{default:N.primary},size:{default:"sm"},square:{type:Boolean,default:!1}},emits:["click"],setup(t,{emit:o}){const l=t,r=o;return(n,a)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(n.as),e.mergeProps({class:["btn p-1 flex justify-center flex-nowrap",e.unref(Ee)[n.color],e.unref(q)[n.size],{"btn-outline":n.outline,"btn-square":n.square}]},l,{onClick:a[0]||(a[0]=p=>r("click"))}),{default:e.withCtx(()=>[n.icon?(e.openBlock(),e.createBlock(e.unref(_),{key:0,icon:n.icon,size:n.size},null,8,["icon","size"])):e.createCommentVNode("",!0),e.renderSlot(n.$slots,"default")]),_:3},16,["class"]))}}),$e=["type","disabled"],xe=e.defineComponent({__name:"btn-badge",props:{icon:{default:void 0},type:{default:R.button},color:{default:void 0},disabled:{type:Boolean,default:!1},size:{default:"sm"}},emits:["click"],setup(t,{emit:o}){const l=o;return(r,n)=>(e.openBlock(),e.createElementBlock("button",{class:e.normalizeClass(["badge gap-1",e.unref(Z)[r.size],e.unref(Ne)[r.color]]),type:r.type,disabled:r.disabled,onClick:n[0]||(n[0]=a=>l("click"))},[e.renderSlot(r.$slots,"default"),r.icon?(e.openBlock(),e.createBlock(e.unref(_),{key:0,icon:r.icon,size:r.size},null,8,["icon","size"])):e.createCommentVNode("",!0)],10,$e))}}),W=e.defineComponent({__name:"confirmModal",props:{title:{},message:{},confirmLabel:{default:"Ok"},cancelLabel:{default:"Cancel"}},emits:["closeModal"],setup(t,{emit:o}){const l=o,r=n=>{l("closeModal",{confirmed:n})};return(n,a)=>(e.openBlock(),e.createBlock(j,{"modal-title":n.title,open:!0,"disable-close":!0},{content:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(n.message),1)]),actions:e.withCtx(()=>[e.createVNode(e.unref($),{color:e.unref(N).secondary,outline:!0,onClick:a[0]||(a[0]=p=>r(!1))},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(n.cancelLabel),1)]),_:1},8,["color"]),e.createVNode(e.unref($),{onClick:a[1]||(a[1]=p=>r(!0))},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(n.confirmLabel),1)]),_:1})]),_:1},8,["modal-title"]))}});class z{constructor(){this.showModal=e.ref(!1),this.modals=[]}openModal(o){const l=o.props.onClose,r=M(),n=o;o.props.onClose=a=>{l(a),this.closeModal(r)},n.id=r,this.modals=[...this.modals,n],this.showModal.value=Date.now()}closeModal(o){this.modals=this.modals.filter(l=>l.id!==o),this.showModal.value=Date.now()}static showConfirm(o){this.getInstance().openModal({component:W,props:o})}static openModal(o){this.getInstance().openModal(o)}static getInstance(){return this.instance||(this.instance=new z),this.instance}static closeAll(){this.instance.closeAll()}closeAll(){this.modals=[],this.showModal.value=!1}}const G=e.defineComponent({__name:"modalWrapper",setup(t){const o=z.getInstance(),l=e.computed(()=>o.showModal.value?o.modals:[]);return(r,n)=>(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.value,a=>{var p;return e.openBlock(),e.createBlock(e.resolveDynamicComponent(a==null?void 0:a.component),e.mergeProps({key:a.id,ref_for:!0},a==null?void 0:a.props,{open:!0,onCloseModal:(p=a==null?void 0:a.props)==null?void 0:p.onClose}),null,16,["onCloseModal"])}),128))}}),J=e.defineComponent({__name:"notification-message",props:{message:{},type:{}},setup(t){const o={success:"alert-success",error:"alert-error",warning:"alert-warning",info:"alert-info"};return(l,r)=>(e.openBlock(),e.createElementBlock("div",{role:"alert",class:e.normalizeClass(`alert ${o[l.type]} `)},[e.createElementVNode("span",null,e.toDisplayString(l.message),1)],2))}}),Le=5e3;class T{constructor(){this.notifications=e.ref([]),this.addNotification=(o,l="info")=>{const r={id:M(),duration:Le,message:o,type:l};this.notifications.value.push(r),this.removeNotificationAfterDuration(r)},this.removeNotificationAfterDuration=o=>{setTimeout(()=>{this.removeNotification(o.id)},o.duration)},this.removeNotification=o=>{this.notifications.value=this.notifications.value.filter(l=>l.id!==o)}}static getInstance(){return this.instance||(this.instance=new T),this.instance}static info(o){this.getInstance().addNotification(o,"info")}static success(o){this.getInstance().addNotification(o,"success")}static warning(o){this.getInstance().addNotification(o,"warning")}static error(o){this.getInstance().addNotification(o,"error")}static removeNotification(o){this.getInstance().removeNotification(o)}}const De={class:"toast toast-top toast-center z-[999]"},Q=e.defineComponent({__name:"notifications",setup(t){const o=T.getInstance();return(l,r)=>(e.openBlock(),e.createElementBlock("div",De,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(o).notifications.value,n=>(e.openBlock(),e.createBlock(J,e.mergeProps({key:n.id},{ref_for:!0},n),null,16))),128))]))}}),Se={class:"h-screen"},Pe={class:"navbar bg-primary text-primary-content w-full z-100 sticky"},Me={class:"navbar-start"},ze={class:"navbar-center"},Te=["href"],Ae={class:"navbar-end"},Fe={class:"menu h-full flex-col space-between m-0 overflow-y-auto"},Re={class:"flex-grow-1"},Ue={class:"bg-base-200 p-4"},Oe={class:"h-full"},O=64,He=e.defineComponent({__name:"shell.component",props:{title:{},menu:{},user:{},version:{},widthSidebar:{default:300}},emits:["logout"],setup(t,{emit:o}){const r=t,n=e.ref(!1),a=()=>{n.value=!n.value},p=o,s=e.computed(()=>r.user?{label:r.user.name,items:[{label:"Logout",action:()=>{p("logout")}}]}:null);return(i,d)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(Q),e.createVNode(e.unref(G)),e.createElementVNode("div",Se,[e.createElementVNode("header",null,[e.createElementVNode("nav",Pe,[e.createElementVNode("div",Me,[e.createElementVNode("button",{"aria-label":"open sidebar",class:"btn btn-square btn-ghost p-1",onClick:a},[e.createVNode(e.unref(_),{icon:e.unref(k).Hamburger},null,8,["icon"])])]),e.createElementVNode("div",ze,[e.createElementVNode("a",{class:"btn btn-ghost text-xl",href:e.unref("/")},e.toDisplayString(i.title),9,Te)]),e.createElementVNode("div",Ae,[s.value?(e.openBlock(),e.createBlock(e.unref(P),e.mergeProps({key:0},s.value,{"btn-class":""}),null,16)):e.createCommentVNode("",!0)])])]),n.value?(e.openBlock(),e.createElementBlock("aside",{key:0,id:"drawer-left",class:"fixed overflow-y-auto z-[1000] min-h-0 min-w-0 relative flex-shrink-0 bg-white shadow-lg transition-all duration-300 ease-in-out border-l border-gray-200 overflow-visible inset-0",style:e.normalizeStyle({width:i.widthSidebar+"px",top:`${O}px`})},[e.createElementVNode("div",Fe,[e.createElementVNode("ul",Re,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.menu,c=>(e.openBlock(),e.createElementBlock("li",{key:c.label},[e.createVNode(e.unref(se.RouterLink),{to:{name:c.routerLink,params:c.params}},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(c.label),1)]),_:2},1032,["to"])]))),128))]),e.createElementVNode("div",Ue," version: "+e.toDisplayString(i.version),1)])],4)):e.createCommentVNode("",!0),e.createElementVNode("main",{class:e.normalizeClass("overflow-hidden fixed border-red bg-white p-4 mx-auto max-h-full shadow-sm "),style:e.normalizeStyle({top:`${O}px`,bottom:"2px",right:"2px",left:n.value?i.widthSidebar+"px":0})},[e.createElementVNode("div",Oe,[e.renderSlot(i.$slots,"default")])],4)])],64))}}),x=e.defineComponent({__name:"pagination-button.component",props:{currentPage:{},page:{},label:{},neverActive:{type:Boolean,default:!1},disabled:{type:Boolean}},emits:["updatePage","updatePageSize"],setup(t,{emit:o}){const l=t,r=o,n=e.computed(()=>l.neverActive?!1:l.page===l.currentPage),a=e.computed(()=>l.neverActive?N.blank:n.value?N.primary:N.secondary),p=()=>{r("updatePage",l.page)};return(s,i)=>(e.openBlock(),e.createBlock(e.unref($),{disabled:s.disabled,square:!0,size:"xs",color:a.value,onClick:i[0]||(i[0]=d=>p())},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(s.label),1)]),_:1},8,["disabled","color"]))}}),Ke={class:"flex gap-2"},je={class:"flex flex-1 justify-center items-center"},Ie={class:"flex gap-1"},qe={class:"text-sm"},L=6,X=e.defineComponent({__name:"pagination.component",props:{totalItems:{type:Number,default:0},itemsPerPage:{type:Number,default:1},currentPage:{type:Number,default:1}},emits:["updatePage","updatePageSize"],setup(t,{emit:o}){const l=t,r=o,n=e.computed(()=>{let c=Math.ceil(l.totalItems/l.itemsPerPage);return c<1?1:c}),a=L/2,p=e.computed(()=>{if(n.value<=L)return{min:1,max:n.value};let c=l.currentPage-a;c<=1?c=1:c+L>n.value&&(c=n.value-L);let v=c+L;return{min:c,max:v}}),s=c=>({label:"...",currentPage:c,page:-10,disabled:!0,neverActive:!0}),i=e.computed(()=>{let c=n.value;c<1&&(c=1);const v=l.currentPage,y=[],{min:C,max:V}=p.value;return Array.from({length:c},(m,B)=>{const u=B+1;u!==1&&u!==c&&(u>V||u<C)||(u===c&&c>1&&V<c&&y.push(s(v)),y.push({label:`${u}`,totalPages:c,currentPage:v,page:u}),u===1&&c>1&&C>1&&y.push(s(v)))}),y}),d=c=>{r("updatePage",c)};return(c,v)=>(e.openBlock(),e.createElementBlock("div",Ke,[e.createElementVNode("div",je,[e.createElementVNode("div",Ie,[e.createVNode(x,e.mergeProps(l,{page:1,label:"<<","current-page":t.currentPage,"never-active":!0,disabled:t.currentPage===1,onUpdatePage:d}),null,16,["current-page","disabled"]),e.createVNode(x,e.mergeProps(l,{page:t.currentPage-1,label:"<","current-page":t.currentPage,"never-active":!0,disabled:t.currentPage===1,onUpdatePage:d}),null,16,["page","current-page","disabled"]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,y=>(e.openBlock(),e.createBlock(x,e.mergeProps({key:y.page,ref_for:!0},y,{onUpdatePage:d}),null,16))),128)),e.createVNode(x,e.mergeProps(l,{page:t.currentPage+1,label:">","current-page":t.currentPage,"never-active":!0,disabled:l.currentPage===n.value,onUpdatePage:d}),null,16,["page","current-page","disabled"]),e.createVNode(x,e.mergeProps(l,{page:n.value,label:">>","current-page":t.currentPage,"never-active":!0,disabled:l.currentPage===n.value,onUpdatePage:d}),null,16,["page","current-page","disabled"])])]),e.createElementVNode("div",qe," page "+e.toDisplayString(t.currentPage)+" of "+e.toDisplayString(n.value),1)]))}}),Y=(t,o)=>{const l=t.__vccOpts||t;for(const[r,n]of o)l[r]=n;return l},Ze=()=>({data:{type:Object,required:!0},column:{type:Object,required:!0},options:{type:Object,required:!1}}),We=e.defineComponent({name:"TextCell",props:{...Ze()},computed:{value(){var o;const t=this.data[this.column.id];return t?((o=this.column.options)==null?void 0:o.format)==="keyValue"?t[this.column.options.key]:t:null}}}),Ge=We;function Je(t,o,l,r,n,a){return e.toDisplayString(t.value)}const Qe=Y(Ge,[["render",Je]]),Xe={class:"flex-grow pr-2"},Ye={class:"h-4 w-4"},et=e.defineComponent({__name:"sort.header",props:{column:{},sortColumn:{},sortDirection:{}},emits:["sort"],setup(t,{emit:o}){const l=t,r=e.computed(()=>l.sortDirection==="asc"?k.BarsArrowUp:k.BarsArrowDown),n=e.computed(()=>{var s;return((s=l.column.options)==null?void 0:s.sortId)??l.column.id}),a=()=>{p("sort",n.value)},p=o;return(s,i)=>(e.openBlock(),e.createElementBlock("button",{class:"flex items-center",onClick:a},[e.createElementVNode("span",Xe,e.toDisplayString(s.column.label),1),e.createElementVNode("div",Ye,[s.sortColumn===n.value?(e.openBlock(),e.createBlock(e.unref(_),{key:0,icon:r.value},null,8,["icon"])):e.createCommentVNode("",!0)])]))}}),tt={class:"table w-full"},ot={key:0},nt=["colspan"],lt={class:"flex gap-2"},ee=e.defineComponent({__name:"table.component",props:{loading:{type:Boolean},actions:{},data:{},displayColumns:{},page:{},sort:{}},emits:["delete","edit","updatePage","sort"],setup(t,{emit:o}){const l=o,r=s=>{l("edit",s)},n=s=>{l("delete",s)},a=s=>{l("updatePage",s)},p=s=>{l("sort",s)};return(s,i)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("table",tt,[e.createElementVNode("thead",null,[e.createElementVNode("tr",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.displayColumns,d=>(e.openBlock(),e.createElementBlock("th",{key:d.scope},[e.createVNode(et,e.mergeProps({column:d},{ref_for:!0},s.sort,{onSort:p}),null,16,["column"])]))),128)),i[0]||(i[0]=e.createElementVNode("th",null,null,-1))])]),e.createElementVNode("tbody",null,[s.loading?(e.openBlock(),e.createElementBlock("tr",ot,[e.createElementVNode("td",{colspan:s.displayColumns.length+1,class:"text-center"},i[1]||(i[1]=[e.createElementVNode("span",{class:"loading loading-bars loading-xs"},null,-1)]),8,nt)])):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.data,d=>(e.openBlock(),e.createElementBlock("tr",{key:d.id},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.displayColumns,c=>(e.openBlock(),e.createElementBlock("td",{key:c.scope},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(c.component),e.mergeProps({ref_for:!0},c,{data:d,column:c}),null,16,["data","column"]))]))),128)),e.createElementVNode("td",null,[e.createElementVNode("span",lt,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.actions,c=>(e.openBlock(),e.createBlock($,{key:c.label,icon:c.icon,outline:!0,onClick:v=>c.action(d)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(c.label),1)]),_:2},1032,["icon","onClick"]))),128)),e.createVNode($,{icon:e.unref(k).Edit,outline:!0,onClick:c=>r(d)},null,8,["icon","onClick"]),e.createVNode($,{icon:e.unref(k).Delete,outline:!0,onClick:c=>n(d)},null,8,["icon","onClick"])])])]))),128))])]),s.page?(e.openBlock(),e.createBlock(X,{key:0,class:"border-gray-300 border-t pt-4 border-x-0 border-b-0","total-items":s.page.count,"items-per-page":s.page.pageSize,"current-page":s.page.page,onUpdatePage:a},null,8,["total-items","items-per-page","current-page"])):e.createCommentVNode("",!0)],64))}}),rt={},at={class:"card bg-base-100 shadow-sm"},st={class:"card-body"},ct={key:0,class:"card-title"},it={key:1,class:"card-actions justify-end"};function dt(t,o){return e.openBlock(),e.createElementBlock("div",at,[e.createElementVNode("div",st,[t.$slots.title?(e.openBlock(),e.createElementBlock("h2",ct,[e.renderSlot(t.$slots,"title")])):e.createCommentVNode("",!0),e.createElementVNode("p",null,[e.renderSlot(t.$slots,"default"),e.renderSlot(t.$slots,"content")]),t.$slots.actions?(e.openBlock(),e.createElementBlock("div",it,[e.renderSlot(t.$slots,"actions")])):e.createCommentVNode("",!0)])])}const ut=Y(rt,[["render",dt]]),pt=(t,o)=>{if(!t)return null;const l=r=>{t.contains(r.target)||o()};return document.addEventListener("click",l),l},mt=t=>{document.removeEventListener("click",t)},ft={beforeMount(t,o){t.clickOutsideEvent=function(l){t===l.target||t.contains(l.target)||o.value(l)},document.addEventListener("click",t.clickOutsideEvent)},unmounted(t){document.removeEventListener("click",t.clickOutsideEvent)}};function gt(t){const o=e.getCurrentInstance();if(!o)return!1;const l=o.vnode.props;return l?!!(l[e.toHandlerKey(t)]||l[e.toHandlerKey(e.camelize(t))]):!1}const te={group:{root:"group",label:"text-primary text-lg font-bold",item:"group-item"},verticalLayout:{root:"flex flex-col gap-x-2",item:"w-full"},horizontalLayout:{root:"flex flex-row gap-x-2",item:"w-full"},arrayList:{root:"fieldset",legend:"fieldset-legend text-xl capitalize"},control:{root:"fieldset",wrapper:"fieldset",label:"fieldset-legend",error:"",input:"input",select:"select",description:"form-control--description label text-xs text-gray-500"},fixedArrayList:{root:"flex flex-row gap-x-2",item:"w-full"}},D=()=>({id:M(),visible:!0,required:!1,enabled:!0,isFocused:!1,isTouched:!1,hideLabel:!1,styles:te}),oe=()=>({...D(),options:[],valueKey:"value",labelKey:"label"}),ne=(t,o,l)=>!!(t&&l),le=(t,o,l,r)=>o===void 0||o!==void 0&&!t||!r&&!l,ht={key:0},A=e.defineComponent({__name:"ControlWrapper",props:e.mergeDefaults({id:{},description:{},errors:{},label:{},visible:{type:Boolean},required:{type:Boolean},enabled:{type:Boolean},isFocused:{type:Boolean},isTouched:{type:Boolean},hideLabel:{type:Boolean},styles:{}},D()),setup(t){const o=t,l=e.computed(()=>!le(o.visible,o.description,o.isFocused,!0)),r=e.computed(()=>o.required),n=e.computed(()=>ne(o.isTouched,o.isFocused,o.errors));return(a,p)=>(e.openBlock(),e.createElementBlock("fieldset",{class:e.normalizeClass(a.styles.control.wrapper)},[a.hideLabel?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("legend",{key:0,class:e.normalizeClass(a.styles.control.label)},[e.createTextVNode(e.toDisplayString(a.label)+" ",1),r.value?(e.openBlock(),e.createElementBlock("span",ht,"*")):e.createCommentVNode("",!0)],2)),e.renderSlot(a.$slots,"default"),e.createElementVNode("p",{class:e.normalizeClass(["fieldset-label h-4",{"text-error":n.value}])},e.toDisplayString(n.value?a.errors:l.value?a.description:null),3)],2))}}),vt=["disabled"],bt=["value"],kt=e.defineComponent({__name:"SelectComponent",props:e.mergeModels(e.mergeDefaults({id:{},description:{},errors:{},label:{},visible:{type:Boolean},required:{type:Boolean},enabled:{type:Boolean},isFocused:{type:Boolean},isTouched:{type:Boolean},hideLabel:{type:Boolean},styles:{},options:{},valueKey:{},labelKey:{}},{...D(),options:[],valueKey:"value",labelKey:"label"}),{modelValue:{},modelModifiers:{}}),emits:e.mergeModels(["change","focus","blur"],["update:modelValue"]),setup(t,{emit:o}){const l=t,r=o,n=e.useModel(t,"modelValue"),a=i=>{r("change",i)},p=i=>{r("focus",i)},s=i=>{r("blur",i)};return(i,d)=>(e.openBlock(),e.createBlock(A,e.normalizeProps(e.guardReactiveProps(l)),{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":d[0]||(d[0]=c=>n.value=c),disabled:!i.enabled,class:e.normalizeClass(["select select-bordered",i.styles.control.select]),onChange:a,onFocus:p,onBlur:s},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.options,c=>(e.openBlock(),e.createElementBlock("option",{key:c[i.valueKey],value:c},e.toDisplayString(c[i.labelKey]),9,bt))),128))],42,vt),[[e.vModelSelect,n.value]])]),_:1},16))}}),yt="GHENTCDH_AUTHENTICATION",Bt=()=>{const t=e.inject(yt);t||console.warn("No auth provided, authorized calls may not work");const o=async(l,r,n={contentType:"application/json"})=>{const a=(n==null?void 0:n.skipAuth)??(t==null?void 0:t.options.skipAuthentication),p={accept:"application/json",...r.headers??{}};n.contentType&&(p["Content-Type"]=n.contentType),a||(await(t==null?void 0:t.updateToken()),p.Authorization=`Bearer ${t==null?void 0:t.token()}`);const s=new URL(l,window.location.href);if(n!=null&&n.queryParams)for(const[d,c]of Object.entries(n.queryParams))s.searchParams.set(d,c);const i=await fetch(s.toString(),{...r,headers:p});return i.ok?i.json():(n!=null&&n.skipAuth,Promise.reject({content:i.body,status:i.status}))};return{get:(l,r)=>o(l,{method:"GET"},r),postFile:(l,r,n={},a)=>{const p=new FormData;for(const s in n)p.append(s,n[s]);return p.append("file",r),o(l,{method:"POST",body:p},{...a,contentType:void 0})},post:(l,r,n)=>o(l,{method:"POST",body:JSON.stringify(r)},n),patch:(l,r,n)=>o(l,{method:"PATCH",body:JSON.stringify(r)},n),delete:(l,r,n)=>o(l,{method:"DELETE",body:JSON.stringify(r)},n)}},Ct=["disabled"],wt={key:0,class:e.normalizeClass([`bg-base-100 w-52 shadow -mt-5
14
- absolute z-50`])},_t=["onClick","onBlur"],Vt=e.defineComponent({__name:"AutoComplete",props:e.mergeModels(e.mergeDefaults({id:{},description:{},errors:{},label:{},visible:{type:Boolean},required:{type:Boolean},enabled:{type:Boolean},isFocused:{type:Boolean},isTouched:{type:Boolean},hideLabel:{type:Boolean},styles:{},config:{},options:{},valueKey:{},labelKey:{}},oe()),{modelValue:{},modelModifiers:{}}),emits:e.mergeModels(["change","focus","blur"],["update:modelValue"]),setup(t,{emit:o}){const l=t,r=o,n=e.useModel(t,"modelValue"),a=e.ref(""),p=u=>{r("change",u)},s=u=>{r("focus",u)},i=u=>{r("blur",u)},d=e.ref(!1),c=e.ref([]),v=u=>{d.value=!0,y(u)},y=u=>{n.value=u,p(u)},C=u=>{var f;((f=c.value)==null?void 0:f.length)===u+1&&(c.value=[])},V=Bt(),m=u=>u[l.valueKey],B=u=>(u==null?void 0:u[l.labelKey])??"";return e.watch(()=>n.value,u=>{u&&!m(u)||(d.value=!0,c.value=[],a.value=B(u))},{immediate:!0}),e.watch(()=>a.value,u=>{if(d.value){d.value=!1;return}if(y({[l.labelKey]:u}),l.config){const{uri:f,skipAuth:E,dataField:b}=l.config;V.get(`${f}${u}`,{skipAuth:E}).then(w=>{c.value=w[b]})}else l.options&&(c.value=l.options.filter(f=>B(f).toLowerCase().includes(u)).slice(0,10))}),(u,f)=>{const E=e.resolveDirective("click-outside");return e.openBlock(),e.createBlock(A,e.normalizeProps(e.guardReactiveProps(l)),{default:e.withCtx(()=>{var b;return[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":f[0]||(f[0]=w=>a.value=w),autocomplete:"off",type:"text",class:e.normalizeClass([u.styles.control.select]),disabled:!u.enabled,onFocus:s,onBlur:i},null,42,Ct),[[e.vModelText,a.value]]),e.withDirectives((e.openBlock(),e.createElementBlock("div",null,[(b=c.value)!=null&&b.length?(e.openBlock(),e.createElementBlock("ul",wt,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.value,(w,re)=>(e.openBlock(),e.createElementBlock("li",{key:w[u.valueKey]},[e.createElementVNode("button",{class:"w-full h-8 border-b-1 border-gray-200 border-x-0 border-t-0 px-4 py-2 text-left hover:bg-primary-content cursor-pointer",type:"button",onClick:ae=>v(w),onBlur:ae=>C(re)},e.toDisplayString(B(w)),41,_t)]))),128))])):e.createCommentVNode("",!0)])),[[E,()=>c.value=[]]])]}),_:1},16)}}}),Et={key:0,class:e.normalizeClass([`bg-base-100 w-52 shadow -mt-5
15
- absolute z-50 p-0`])},Nt=["onClick"],$t={class:"w-4 mr-2"},xt=e.defineComponent({__name:"MultiSelect",props:e.mergeModels(e.mergeDefaults({id:{},description:{},errors:{},label:{},visible:{type:Boolean},required:{type:Boolean},enabled:{type:Boolean},isFocused:{type:Boolean},isTouched:{type:Boolean},hideLabel:{type:Boolean},styles:{},options:{},valueKey:{},labelKey:{}},{...D(),valueKey:"value",labelKey:"label"}),{modelValue:{},modelModifiers:{}}),emits:e.mergeModels(["change","focus","blur"],["update:modelValue"]),setup(t,{emit:o}){const l=t,r=o,n=e.useModel(t,"modelValue");let a=!1;const p=m=>{r("change",m)},s=e.ref(!1),i=()=>{s.value=!s.value,a=!0},d=()=>{a||(s.value=!1),a=!1},c=e.computed(()=>{var m;return((m=n.value)==null?void 0:m.map(B=>C(B)))??[]}),v=m=>c.value.includes(m),y=(m,B)=>{m.preventDefault();let u=n.value??[];const f=C(B);v(f)?u=u.filter(b=>C(b)!==f):u.push(B),n.value=u,p(u)},C=m=>m[l.valueKey],V=m=>(m==null?void 0:m[l.labelKey])??"";return(m,B)=>{const u=e.resolveDirective("click-outside");return e.openBlock(),e.createBlock(A,e.normalizeProps(e.guardReactiveProps(l)),{default:e.withCtx(()=>{var f,E;return[e.createElementVNode("button",{type:"button",class:e.normalizeClass([m.styles.control.select,"w-full truncate block"]),onClick:i},e.toDisplayString(((E=(f=n.value)==null?void 0:f.map)==null?void 0:E.call(f,b=>V(b)).join(", "))??"Select value"),3),e.withDirectives((e.openBlock(),e.createElementBlock("div",null,[s.value?(e.openBlock(),e.createElementBlock("ul",Et,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(m.options,b=>(e.openBlock(),e.createElementBlock("li",{key:b[m.valueKey]},[e.createElementVNode("button",{class:"w-full flex h-8 border-b-1 border-gray-200 border-x-0 border-t-0 p-2 text-left hover:bg-primary-content cursor-pointer",type:"button",onClick:w=>y(w,b)},[e.createElementVNode("div",$t,[v(C(b))?(e.openBlock(),e.createBlock(e.unref(_),{key:0,icon:e.unref(k).Check,size:"sm"},null,8,["icon"])):e.createCommentVNode("",!0)]),e.createTextVNode(" "+e.toDisplayString(V(b)),1)],8,Nt)]))),128))])):e.createCommentVNode("",!0)])),[[u,()=>d()]])]}),_:1},16)}}}),Lt={class:"grid grid-cols-[auto_1fr_auto] h-full overflow-hidden"},Dt={id:"drawer-left",class:"min-h-0 min-w-6 relative flex-shrink-0 bg-white shadow-lg transition-all duration-300 ease-in-out border-l border-gray-200 overflow-visible"},St={class:"flex-1 overflow-y-auto bg-white"},Pt={class:"min-h-0 min-w-6 relative flex-shrink-0 bg-white shadow-lg transition-all duration-300 ease-in-out border-l border-gray-200 overflow-visible"},Mt=e.defineComponent({__name:"drawer",props:{widthLeft:{default:200},widthRight:{default:200}},setup(t){const o=e.ref({left:!0,right:!0}),l=r=>{o.value[r]=!o.value[r]};return(r,n)=>(e.openBlock(),e.createElementBlock("main",Lt,[e.createElementVNode("aside",Dt,[e.createElementVNode("div",{class:e.normalizeClass(["absolute top-0 z-20",o.value.left?"-right-0":"-right-2"])},[e.createElementVNode("button",{class:"btn btn-ghost btn-circle",onClick:n[0]||(n[0]=a=>l("left"))},[e.createVNode(e.unref(_),{size:"sm",icon:o.value.left?e.unref(k).DblChevronLeft:e.unref(k).DblChevronRight},null,8,["icon"])])],2),o.value.left?(e.openBlock(),e.createElementBlock("div",{key:0,style:e.normalizeStyle({width:r.widthLeft+"px"}),class:"h-full overflow-y-auto p-4"},[e.renderSlot(r.$slots,"left-drawer")],4)):e.createCommentVNode("",!0)]),e.createElementVNode("div",St,[e.renderSlot(r.$slots,"default")]),e.createElementVNode("aside",Pt,[o.value.right?(e.openBlock(),e.createElementBlock("div",{key:0,style:e.normalizeStyle({width:r.widthRight+"px"}),class:"h-full overflow-y-auto p-4"},[e.renderSlot(r.$slots,"right-drawer")],4)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(["absolute top-0 z-20",o.value.right?"-left-0":"-left-2"])},[e.createElementVNode("button",{class:"btn btn-ghost btn-circle",onClick:n[1]||(n[1]=a=>l("right"))},[e.createVNode(e.unref(_),{size:"sm",icon:o.value.right?e.unref(k).DblChevronRight:e.unref(k).DblChevronLeft},null,8,["icon"])])],2)])]))}});function zt(t,o){return e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true","data-slot":"icon"},[e.createElementVNode("path",{"fill-rule":"evenodd",d:"M12.53 16.28a.75.75 0 0 1-1.06 0l-7.5-7.5a.75.75 0 0 1 1.06-1.06L12 14.69l6.97-6.97a.75.75 0 1 1 1.06 1.06l-7.5 7.5Z","clip-rule":"evenodd"})])}function Tt(t,o){return e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true","data-slot":"icon"},[e.createElementVNode("path",{"fill-rule":"evenodd",d:"M16.28 11.47a.75.75 0 0 1 0 1.06l-7.5 7.5a.75.75 0 0 1-1.06-1.06L14.69 12 7.72 5.03a.75.75 0 0 1 1.06-1.06l7.5 7.5Z","clip-rule":"evenodd"})])}const At={class:"ml-1"},Ft={class:"truncate flex-1 min-w-0 text-left"},Rt={key:0,class:"badge badge-ghost badge-sm flex-shrink-0"},Ut=e.defineComponent({__name:"TreeItem",props:{active:{},node:{},expanded:{},isExpanded:{type:Function}},emits:["toggle","select"],setup(t,{emit:o}){const l=t,r=o,n=e.computed(()=>l.active===l.node.id);return(a,p)=>{var i;const s=e.resolveComponent("TreeItem",!0);return e.openBlock(),e.createElementBlock("li",At,[e.createElementVNode("div",{class:e.normalizeClass([`flex items-center gap-1 cursor-pointer rounded-md px-1 py-0.5
16
- hover:bg-gray-100`,n.value?"text-primary":""])},[((i=a.node.children)==null?void 0:i.length)>0?(e.openBlock(),e.createElementBlock("span",{key:0,class:"flex items-center justify-center",onClick:p[0]||(p[0]=d=>r("toggle",a.node))},[a.node.children&&a.isExpanded(a.node.id)?(e.openBlock(),e.createBlock(e.unref(zt),{key:0,class:"w-3 h-3"})):(e.openBlock(),e.createBlock(e.unref(Tt),{key:1,class:"w-3 h-3"}))])):e.createCommentVNode("",!0),e.createElementVNode("div",{class:"flex items-center gap-2 w-full min-w-0",onClick:p[1]||(p[1]=d=>r("select",a.node))},[e.createElementVNode("div",Ft,e.toDisplayString(a.node.label),1),a.node.tag?(e.openBlock(),e.createElementBlock("div",Rt,e.toDisplayString(a.node.tag),1)):e.createCommentVNode("",!0)])],2),a.node.children&&a.isExpanded(a.node.id)?(e.openBlock(),e.createElementBlock("ul",{key:0,class:e.normalizeClass(["ml-4 border-l pl-2",{"border-gray-200":!n.value,"border-primary":n.value}])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.node.children,d=>(e.openBlock(),e.createBlock(s,{key:d.id,node:d,expanded:a.expanded,active:a.active,"is-expanded":a.isExpanded,onToggle:p[2]||(p[2]=c=>r("toggle",c)),onSelect:p[3]||(p[3]=c=>r("select",c))},null,8,["node","expanded","active","is-expanded"]))),128))],2)):e.createCommentVNode("",!0)])}}}),Ot={class:"select-none text-sm"},Ht=e.defineComponent({__name:"TreeView",props:{data:{},active:{}},emits:["select"],setup(t,{emit:o}){const l=t,r=o,n=e.ref(new Set),a=i=>{const d=i.id;if(!i.children||i.children.length===0){r("select",i);return}n.value.has(d)?n.value.delete(d):n.value.add(d)},p=i=>{r("select",i),n.value.add(i.id)},s=i=>n.value.has(i);return(i,d)=>(e.openBlock(),e.createElementBlock("ul",Ot,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.data,c=>(e.openBlock(),e.createBlock(Ut,{key:c.id,node:c,expanded:n.value,active:i.active,"is-expanded":s,onToggle:a,onSelect:p},null,8,["node","expanded","active"]))),128))]))}}),Kt={key:0,class:"flex items-center justify-center h-20"},jt=e.defineComponent({__name:"loading",props:{loading:{type:Boolean}},setup(t){return(o,l)=>o.loading?(e.openBlock(),e.createElementBlock("div",Kt,l[0]||(l[0]=[e.createElementVNode("span",{class:"loading loading-bars loading-md text-primary"},null,-1)]))):e.createCommentVNode("",!0)}});exports.Autocomplete=Vt;exports.BadgeSize=Z;exports.Btn=$;exports.BtnBadge=xe;exports.ButtonSize=q;exports.Card=ut;exports.ClickOutside=ft;exports.Color=N;exports.ConfirmModal=W;exports.ControlWrapper=A;exports.DefaultAutoCompleteProperties=oe;exports.DefaultControlProperties=D;exports.Drawer=Mt;exports.Dropdown=be;exports.Icon=_;exports.IconEnum=k;exports.IconMap=H;exports.Loading=jt;exports.Menu=ve;exports.Modal=j;exports.ModalService=z;exports.ModalWrapper=G;exports.MultiSelect=xt;exports.NotificationMessage=J;exports.NotificationService=T;exports.Notifications=Q;exports.PaginationComponent=X;exports.SelectComponent=kt;exports.ShellComponent=He;exports.SubMenu=P;exports.Table=ee;exports.TableComponent=ee;exports.TextCell=Qe;exports.TreeView=Ht;exports.addClickOutsideEventListener=pt;exports.hasCustomEventListener=gt;exports.isDescriptionHidden=le;exports.myStyles=te;exports.removeClickOutsideEventListener=mt;exports.showErrors=ne;
13
+ </svg>`;var b=(t=>(t.Edit="Edit",t.Delete="Delete",t.BarsArrowDown="BarsArrowDown",t.BarsArrowUp="BarsArrowUp",t.Funnel="Funnel",t.Close="Close",t.Plus="Plus",t.PaperClip="PaperClip",t.Hamburger="Hamburger",t.ChevronRight="ChevronRight",t.ChevronLeft="ChevronLeft",t.ChevronDown="ChevronDown",t.ChevronUp="ChevronUp",t.DblChevronLeft="DblChevronLeft",t.DblChevronRight="DblChevronRight",t.Check="Check",t.View="View",t.Text="Text",t))(b||{});const H={Edit:g("m16.862 4.487 1.687-1.688a1.875 1.875 0 1 1 2.652 2.652L10.582 16.07a4.5 4.5 0 0 1-1.897 1.13L6 18l.8-2.685a4.5 4.5 0 0 1 1.13-1.897l8.932-8.931Zm0 0L19.5 7.125M18 14v4.75A2.25 2.25 0 0 1 15.75 21H5.25A2.25 2.25 0 0 1 3 18.75V8.25A2.25 2.25 0 0 1 5.25 6H10"),Delete:g("m14.74 9-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 0 1-2.244 2.077H8.084a2.25 2.25 0 0 1-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 0 0-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 0 1 3.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 0 0-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 0 0-7.5 0"),BarsArrowDown:g("M3 4.5h14.25M3 9h9.75M3 13.5h9.75m4.5-4.5v12m0 0-3.75-3.75M17.25 21 21 17.25"),BarsArrowUp:g("M3 4.5h14.25M3 9h9.75M3 13.5h5.25m5.25-.75L17.25 9m0 0L21 12.75M17.25 9v12"),Funnel:g("M12 3c2.755 0 5.455.232 8.083.678.533.09.917.556.917 1.096v1.044a2.25 2.25 0 0 1-.659 1.591l-5.432 5.432a2.25 2.25 0 0 0-.659 1.591v2.927a2.25 2.25 0 0 1-1.244 2.013L9.75 21v-6.568a2.25 2.25 0 0 0-.659-1.591L3.659 7.409A2.25 2.25 0 0 1 3 5.818V4.774c0-.54.384-1.006.917-1.096A48.32 48.32 0 0 1 12 3Z"),Close:g("M6 18 18 6M6 6l12 12"),Plus:g("M12 9v6m3-3H9m12 0a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"),PaperClip:g("m18.375 12.739-7.693 7.693a4.5 4.5 0 0 1-6.364-6.364l10.94-10.94A3 3 0 1 1 19.5 7.372L8.552 18.32m.009-.01-.01.01m5.699-9.941-7.81 7.81a1.5 1.5 0 0 0 2.112 2.13"),Hamburger:g("M4 6h16M4 12h16M4 18h16"),ChevronDown:g("M12.53 16.28a.75.75 0 0 1-1.06 0l-7.5-7.5a.75.75 0 0 1 1.06-1.06L12 14.69l6.97-6.97a.75.75 0 1 1 1.06 1.06l-7.5 7.5Z"),ChevronUp:g("M11.47 7.72a.75.75 0 0 1 1.06 0l7.5 7.5a.75.75 0 1 1-1.06 1.06L12 9.31l-6.97 6.97a.75.75 0 0 1-1.06-1.06l7.5-7.5Z"),Check:g("m4.5 12.75 6 6 9-13.5"),View:g("M2.036 12.322a1.012 1.012 0 0 1 0-.639C3.423 7.51 7.36 4.5 12 4.5c4.638 0 8.573 3.007 9.963 7.178.07.207.07.431 0 .639C20.577 16.49 16.64 19.5 12 19.5c-4.638 0-8.573-3.007-9.963-7.178Z","M15 12a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z"),Text:g("M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m0 12.75h7.5m-7.5 3H12M10.5 2.25H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z"),DblChevronLeft:g("m18.75 4.5-7.5 7.5 7.5 7.5m-6-15L5.25 12l7.5 7.5"),DblChevronRight:g("m5.25 4.5 7.5 7.5-7.5 7.5m6-15 7.5 7.5-7.5 7.5")},se=["innerHTML"],w=e.defineComponent({__name:"icon",props:{icon:{},size:{}},setup(t){return(o,n)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([{"w-full h-full":!t.size,"w-2 h-2":t.size==="xs","w-4 h-4":t.size==="sm"}]),innerHTML:e.unref(H)[t.icon]},null,10,se))}}),ce={class:"dropdown dropdown-end"},ie={tabindex:"0",class:"menu dropdown-content bg-white z-1 mt-4 p-2 shadow-sm"},de={class:"min-w-max flex-no-wrap text-black"},P=e.defineComponent({__name:"sub-menu",props:{label:{},items:{},action:{type:Function},disabled:{type:Boolean},btnClass:{},disableArrow:{type:Boolean}},setup(t){return(o,n)=>(e.openBlock(),e.createElementBlock("div",ce,[e.createElementVNode("div",{tabindex:"0",role:"button",class:e.normalizeClass([t.btnClass,"btn btn-ghost text-right flex-nowrap flex"])},[e.createElementVNode("span",null,e.toDisplayString(t.label),1),t.disableArrow?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(w),{key:0,icon:e.unref(b).ChevronDown,size:"sm"},null,8,["icon"]))],2),e.createElementVNode("ul",ie,[e.createElementVNode("li",de,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.items,a=>(e.openBlock(),e.createBlock(K,e.mergeProps({key:a.label},{ref_for:!0},a),null,16))),128))])])]))}}),S="btn btn-ghost text-left justify-between min-w-max font-normal",K=e.defineComponent({__name:"menu-item",props:{label:{},items:{},action:{},disabled:{type:Boolean,default:!1}},setup(t){const o=t,n=e.computed(()=>!o.disabled&&o.action&&"routerLink"in o.action),a=e.computed(()=>!o.disabled&&o.action),l=e.computed(()=>o.items?.length),s=e.computed(()=>{const i=o.action;return i&&"routerLink"in i&&"params"in i?{name:i.routerLink,params:i.params}:""}),u=()=>{o.action?.()};return(i,c)=>{const d=e.resolveComponent("RouterLink");return l.value?(e.openBlock(),e.createBlock(P,e.mergeProps({key:0},o,{"btn-class":S}),null,16)):n.value?(e.openBlock(),e.createBlock(d,{key:1,to:s.value,class:e.normalizeClass(S),onClick:u},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.label),1)]),_:1},8,["to"])):a.value?(e.openBlock(),e.createElementBlock("button",{key:2,class:e.normalizeClass(S),onClick:u},e.toDisplayString(t.label),1)):(e.openBlock(),e.createElementBlock("div",{key:3,class:e.normalizeClass([S,{"btn-disabled":t.disabled}])},e.toDisplayString(t.label),3))}}}),ue={class:"navbar bg-base-100 shadow-sm"},me={class:"flex-1"},pe={key:0,class:"breadcrumbs text-sm"},fe={class:"flex grow justify-end px-2"},ge={class:"flex items-stretch"},he=e.defineComponent({__name:"menu",props:{menu:{},breadcrumbs:{}},setup(t){return(o,n)=>{const a=e.resolveComponent("RouterLink");return e.openBlock(),e.createElementBlock("nav",ue,[e.createElementVNode("div",me,[t.breadcrumbs?(e.openBlock(),e.createElementBlock("div",pe,[e.createElementVNode("ul",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.breadcrumbs,l=>(e.openBlock(),e.createElementBlock("li",{key:l.label},[l.routerLink?(e.openBlock(),e.createBlock(a,{key:0,to:{name:l.routerLink,params:l.params}},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(l.label),1)]),_:2},1032,["to"])):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(l.label),1)],64))]))),128))])])):e.createCommentVNode("",!0)]),e.createElementVNode("div",fe,[e.createElementVNode("div",ge,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.menu,l=>(e.openBlock(),e.createBlock(K,e.mergeProps({key:l.label},{ref_for:!0},l),null,16))),128))])])])}}}),ve=e.defineComponent({__name:"dropdown",props:{items:{}},setup(t){const o=e.ref(!0);return(n,a)=>(e.openBlock(),e.createBlock(P,{items:t.items,label:"test",open:o.value,"btn-class":"","disable-arrow":!0},null,8,["items","open"]))}}),p=[];for(let t=0;t<256;++t)p.push((t+256).toString(16).slice(1));function be(t,o=0){return(p[t[o+0]]+p[t[o+1]]+p[t[o+2]]+p[t[o+3]]+"-"+p[t[o+4]]+p[t[o+5]]+"-"+p[t[o+6]]+p[t[o+7]]+"-"+p[t[o+8]]+p[t[o+9]]+"-"+p[t[o+10]]+p[t[o+11]]+p[t[o+12]]+p[t[o+13]]+p[t[o+14]]+p[t[o+15]]).toLowerCase()}let F;const ke=new Uint8Array(16);function ye(){if(!F){if(typeof crypto>"u"||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");F=crypto.getRandomValues.bind(crypto)}return F(ke)}const Be=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),U={randomUUID:Be};function M(t,o,n){if(U.randomUUID&&!t)return U.randomUUID();t=t||{};const a=t.random??t.rng?.()??ye();if(a.length<16)throw new Error("Random bytes length must be >= 16");return a[6]=a[6]&15|64,a[8]=a[8]&63|128,be(a)}const Ce={class:"font-bold"},we={class:"pt-4"},xe={class:"modal-action"},j=e.defineComponent({__name:"modal",props:{modalTitle:{},buttonLabel:{},buttonSaveLabel:{},data:{},open:{type:Boolean,default:!1},disableClose:{type:Boolean,default:!1},width:{default:"sm"}},emits:["closeModal"],setup(t,{expose:o,emit:n}){const a={xs:"max-w-xs w-[50VW]",sm:"max-w-sm w-[50VW]",lg:"max-w-2xl w-[80VW]",xl:"max-w-[80VW] w-[80VW]"},l=t,s=`modal_${M()}`,u=n,i=()=>{document.getElementById(s)?.showModal()},c=()=>{document.getElementById(s)?.close(),u("closeModal")};return o({closeModal:c,openModal:i}),e.watch(()=>l.open,(d,r,v)=>{l.open?i():c()}),e.onMounted(()=>{l.open&&i()}),(d,r)=>(e.openBlock(),e.createElementBlock("dialog",{id:s,class:"modal"},[e.createElementVNode("div",{class:e.normalizeClass(["modal-box bg-white",a[t.width]])},[t.disableClose?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"btn btn-sm btn-circle btn-ghost absolute right-2 top-2",onClick:c}," ✕ ")),e.createElementVNode("h3",Ce,e.toDisplayString(t.modalTitle),1),e.createElementVNode("div",we,[e.renderSlot(d.$slots,"content")]),e.createElementVNode("div",xe,[e.renderSlot(d.$slots,"actions")])],2)]))}});var R=(t=>(t.button="button",t.submit="submit",t.reset="reset",t))(R||{}),I=(t=>(t.a="a",t.button="button",t))(I||{}),V=(t=>(t.blank="blank",t.primary="primary",t.secondary="secondary",t.error="error",t))(V||{});const Ve={blank:"btn-ghost",primary:"btn-primary",secondary:"btn-soft btn-primary",error:"btn-error text-white"},Ee={blank:"badge-ghost",primary:"badge-primary",secondary:"badge-soft badge-primary",error:"badge-error"},q={xs:"btn-xs",sm:"btn-sm",lg:"btn-sm",xl:"btn"},Z={xs:"badge-xs text-xxs",sm:"badge-sm text-xs",lg:"badge-sm text-xs",xl:"badge text-xs"},E=e.defineComponent({__name:"btn",props:{href:{},disabled:{type:Boolean,default:!1},as:{default:I.button},icon:{},type:{default:R.button},outline:{type:Boolean,default:!1},color:{default:V.primary},size:{default:"sm"},square:{type:Boolean,default:!1}},emits:["click"],setup(t,{emit:o}){const n=t,a=o;return(l,s)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.as),e.mergeProps({class:["btn p-1 flex justify-center flex-nowrap",e.unref(Ve)[t.color],e.unref(q)[t.size],{"btn-outline":t.outline,"btn-square":t.square}]},n,{onClick:s[0]||(s[0]=u=>a("click"))}),{default:e.withCtx(()=>[t.icon?(e.openBlock(),e.createBlock(e.unref(w),{key:0,icon:t.icon,size:t.size},null,8,["icon","size"])):e.createCommentVNode("",!0),e.renderSlot(l.$slots,"default")]),_:3},16,["class"]))}}),Ne=["type","disabled"],$e=e.defineComponent({__name:"btn-badge",props:{icon:{default:void 0},type:{default:R.button},color:{default:void 0},disabled:{type:Boolean,default:!1},size:{default:"sm"}},emits:["click"],setup(t,{emit:o}){const n=o;return(a,l)=>(e.openBlock(),e.createElementBlock("button",{class:e.normalizeClass(["badge gap-1",e.unref(Z)[t.size],e.unref(Ee)[t.color]]),type:t.type,disabled:t.disabled,onClick:l[0]||(l[0]=s=>n("click"))},[e.renderSlot(a.$slots,"default"),t.icon?(e.openBlock(),e.createBlock(e.unref(w),{key:0,icon:t.icon,size:t.size},null,8,["icon","size"])):e.createCommentVNode("",!0)],10,Ne))}}),W=e.defineComponent({__name:"confirmModal",props:{title:{},message:{},confirmLabel:{default:"Ok"},cancelLabel:{default:"Cancel"}},emits:["closeModal"],setup(t,{emit:o}){const n=o,a=l=>{n("closeModal",{confirmed:l})};return(l,s)=>(e.openBlock(),e.createBlock(j,{"modal-title":t.title,open:!0,"disable-close":!0},{content:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.message),1)]),actions:e.withCtx(()=>[e.createVNode(e.unref(E),{color:e.unref(V).secondary,outline:!0,onClick:s[0]||(s[0]=u=>a(!1))},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.cancelLabel),1)]),_:1},8,["color"]),e.createVNode(e.unref(E),{onClick:s[1]||(s[1]=u=>a(!0))},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.confirmLabel),1)]),_:1})]),_:1},8,["modal-title"]))}});class _{constructor(){this.showModal=e.ref(!1),this.modals=[]}openModal(o){const n=o.props.onClose,a=M(),l=o;o.props.onClose=s=>{n(s),this.closeModal(a)},l.id=a,this.modals=[...this.modals,l],this.showModal.value=Date.now()}closeModal(o){this.modals=this.modals.filter(n=>n.id!==o),this.showModal.value=Date.now()}static showConfirm(o){this.getInstance().openModal({component:W,props:o})}static openModal(o){this.getInstance().openModal(o)}static getInstance(){return this.instance||(this.instance=new _),this.instance}static closeAll(){this.instance.closeAll()}closeAll(){this.modals=[],this.showModal.value=!1}}const G=e.defineComponent({__name:"modalWrapper",setup(t){const o=_.getInstance(),n=e.computed(()=>o.showModal.value?o.modals:[]);return(a,l)=>(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.value,s=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(s?.component),e.mergeProps({key:s.id,ref_for:!0},s?.props,{open:!0,onCloseModal:s?.props?.onClose}),null,16,["onCloseModal"]))),128))}}),J=e.defineComponent({__name:"notification-message",props:{message:{},type:{}},setup(t){const o={success:"alert-success",error:"alert-error",warning:"alert-warning",info:"alert-info"};return(n,a)=>(e.openBlock(),e.createElementBlock("div",{role:"alert",class:e.normalizeClass(`alert ${o[t.type]} `)},[e.createElementVNode("span",null,e.toDisplayString(t.message),1)],2))}}),Le=5e3;class z{constructor(){this.notifications=e.ref([]),this.addNotification=(o,n="info")=>{const a={id:M(),duration:Le,message:o,type:n};this.notifications.value.push(a),this.removeNotificationAfterDuration(a)},this.removeNotificationAfterDuration=o=>{setTimeout(()=>{this.removeNotification(o.id)},o.duration)},this.removeNotification=o=>{this.notifications.value=this.notifications.value.filter(n=>n.id!==o)}}static getInstance(){return this.instance||(this.instance=new z),this.instance}static info(o){this.getInstance().addNotification(o,"info")}static success(o){this.getInstance().addNotification(o,"success")}static warning(o){this.getInstance().addNotification(o,"warning")}static error(o){this.getInstance().addNotification(o,"error")}static removeNotification(o){this.getInstance().removeNotification(o)}}const De={class:"toast toast-top toast-center z-[999]"},Q=e.defineComponent({__name:"notifications",setup(t){const o=z.getInstance();return(n,a)=>(e.openBlock(),e.createElementBlock("div",De,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(o).notifications.value,l=>(e.openBlock(),e.createBlock(J,e.mergeProps({key:l.id},{ref_for:!0},l),null,16))),128))]))}}),Se={class:"h-screen"},Pe={class:"navbar bg-primary text-primary-content w-full z-100 sticky"},Me={class:"navbar-start"},_e={class:"navbar-center"},ze=["href"],Te={class:"navbar-end"},Ae={class:"menu h-full flex-col space-between m-0 overflow-y-auto"},Fe={class:"flex-grow-1"},Re={class:"bg-base-200 p-4"},Ue={class:"h-full"},O=64,Oe=e.defineComponent({__name:"shell.component",props:{title:{},menu:{},user:{},version:{},widthSidebar:{default:300}},emits:["logout"],setup(t,{emit:o}){const a=t,l=e.ref(!1),s=()=>{l.value=!l.value},u=o,i=e.computed(()=>a.user?{label:a.user.name,items:[{label:"Logout",action:()=>{u("logout")}}]}:null);return(c,d)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(Q),e.createVNode(e.unref(G)),e.createElementVNode("div",Se,[e.createElementVNode("header",null,[e.createElementVNode("nav",Pe,[e.createElementVNode("div",Me,[e.createElementVNode("button",{"aria-label":"open sidebar",class:"btn btn-square btn-ghost p-1",onClick:s},[e.createVNode(e.unref(w),{icon:e.unref(b).Hamburger},null,8,["icon"])])]),e.createElementVNode("div",_e,[e.createElementVNode("a",{class:"btn btn-ghost text-xl",href:e.unref("/")},e.toDisplayString(t.title),9,ze)]),e.createElementVNode("div",Te,[i.value?(e.openBlock(),e.createBlock(e.unref(P),e.mergeProps({key:0},i.value,{"btn-class":""}),null,16)):e.createCommentVNode("",!0)])])]),l.value?(e.openBlock(),e.createElementBlock("aside",{key:0,id:"drawer-left",class:"fixed overflow-y-auto z-[1000] min-h-0 min-w-0 relative flex-shrink-0 bg-white shadow-lg transition-all duration-300 ease-in-out border-l border-gray-200 overflow-visible inset-0",style:e.normalizeStyle({width:t.widthSidebar+"px",top:`${O}px`})},[e.createElementVNode("div",Ae,[e.createElementVNode("ul",Fe,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.menu,r=>(e.openBlock(),e.createElementBlock("li",{key:r.label},[e.createVNode(e.unref(re.RouterLink),{to:{name:r.routerLink,params:r.params}},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(r.label),1)]),_:2},1032,["to"])]))),128))]),e.createElementVNode("div",Re," version: "+e.toDisplayString(t.version),1)])],4)):e.createCommentVNode("",!0),e.createElementVNode("main",{class:e.normalizeClass("overflow-hidden fixed border-red bg-white p-4 mx-auto max-h-full shadow-sm "),style:e.normalizeStyle({top:`${O}px`,bottom:"2px",right:"2px",left:l.value?t.widthSidebar+"px":0})},[e.createElementVNode("div",Ue,[e.renderSlot(c.$slots,"default")])],4)])],64))}}),$=e.defineComponent({__name:"pagination-button.component",props:{currentPage:{},page:{},label:{},neverActive:{type:Boolean,default:!1},disabled:{type:Boolean}},emits:["updatePage","updatePageSize"],setup(t,{emit:o}){const n=t,a=o,l=e.computed(()=>n.neverActive?!1:n.page===n.currentPage),s=e.computed(()=>n.neverActive?V.blank:l.value?V.primary:V.secondary),u=()=>{a("updatePage",n.page)};return(i,c)=>(e.openBlock(),e.createBlock(e.unref(E),{disabled:t.disabled,square:!0,size:"xs",color:s.value,onClick:c[0]||(c[0]=d=>u())},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.label),1)]),_:1},8,["disabled","color"]))}}),He={class:"flex gap-2"},Ke={class:"flex flex-1 justify-center items-center"},je={class:"flex gap-1"},Ie={class:"text-sm"},L=6,X=e.defineComponent({__name:"pagination.component",props:{totalItems:{type:Number,default:0},itemsPerPage:{type:Number,default:1},currentPage:{type:Number,default:1}},emits:["updatePage","updatePageSize"],setup(t,{emit:o}){const n=t,a=o,l=e.computed(()=>{let r=Math.ceil(n.totalItems/n.itemsPerPage);return r<1?1:r}),s=L/2,u=e.computed(()=>{if(l.value<=L)return{min:1,max:l.value};let r=n.currentPage-s;r<=1?r=1:r+L>l.value&&(r=l.value-L);let v=r+L;return{min:r,max:v}}),i=r=>({label:"...",currentPage:r,page:-10,disabled:!0,neverActive:!0}),c=e.computed(()=>{let r=l.value;r<1&&(r=1);const v=n.currentPage,k=[],{min:y,max:x}=u.value;return Array.from({length:r},(h,B)=>{const m=B+1;m!==1&&m!==r&&(m>x||m<y)||(m===r&&r>1&&x<r&&k.push(i(v)),k.push({label:`${m}`,totalPages:r,currentPage:v,page:m}),m===1&&r>1&&y>1&&k.push(i(v)))}),k}),d=r=>{a("updatePage",r)};return(r,v)=>(e.openBlock(),e.createElementBlock("div",He,[e.createElementVNode("div",Ke,[e.createElementVNode("div",je,[e.createVNode($,e.mergeProps(n,{page:1,label:"<<","current-page":t.currentPage,"never-active":!0,disabled:t.currentPage===1,onUpdatePage:d}),null,16,["current-page","disabled"]),e.createVNode($,e.mergeProps(n,{page:t.currentPage-1,label:"<","current-page":t.currentPage,"never-active":!0,disabled:t.currentPage===1,onUpdatePage:d}),null,16,["page","current-page","disabled"]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.value,k=>(e.openBlock(),e.createBlock($,e.mergeProps({key:k.page,ref_for:!0},k,{onUpdatePage:d}),null,16))),128)),e.createVNode($,e.mergeProps(n,{page:t.currentPage+1,label:">","current-page":t.currentPage,"never-active":!0,disabled:n.currentPage===l.value,onUpdatePage:d}),null,16,["page","current-page","disabled"]),e.createVNode($,e.mergeProps(n,{page:l.value,label:">>","current-page":t.currentPage,"never-active":!0,disabled:n.currentPage===l.value,onUpdatePage:d}),null,16,["page","current-page","disabled"])])]),e.createElementVNode("div",Ie," page "+e.toDisplayString(t.currentPage)+" of "+e.toDisplayString(l.value),1)]))}}),Y=(t,o)=>{const n=t.__vccOpts||t;for(const[a,l]of o)n[a]=l;return n},qe=()=>({data:{type:Object,required:!0},column:{type:Object,required:!0},options:{type:Object,required:!1}}),Ze=e.defineComponent({name:"TextCell",props:{...qe()},computed:{value(){const t=this.data[this.column.id];return t?this.column.options?.format==="keyValue"?t[this.column.options.key]:t:null}}}),We=Ze;function Ge(t,o,n,a,l,s){return e.toDisplayString(t.value)}const Je=Y(We,[["render",Ge]]),Qe={class:"flex-grow pr-2"},Xe={class:"h-4 w-4"},Ye=e.defineComponent({__name:"sort.header",props:{column:{},sortColumn:{},sortDirection:{}},emits:["sort"],setup(t,{emit:o}){const n=t,a=e.computed(()=>n.sortDirection==="asc"?b.BarsArrowUp:b.BarsArrowDown),l=e.computed(()=>n.column.options?.sortId??n.column.id),s=()=>{u("sort",l.value)},u=o;return(i,c)=>(e.openBlock(),e.createElementBlock("button",{class:"flex items-center",onClick:s},[e.createElementVNode("span",Qe,e.toDisplayString(t.column.label),1),e.createElementVNode("div",Xe,[t.sortColumn===l.value?(e.openBlock(),e.createBlock(e.unref(w),{key:0,icon:a.value},null,8,["icon"])):e.createCommentVNode("",!0)])]))}}),et={class:"table w-full"},tt={key:0},ot=["colspan"],nt={class:"flex gap-2"},ee=e.defineComponent({__name:"table.component",props:{loading:{type:Boolean},actions:{},data:{},displayColumns:{},page:{},sort:{}},emits:["delete","edit","updatePage","sort"],setup(t,{emit:o}){const n=o,a=i=>{n("edit",i)},l=i=>{n("delete",i)},s=i=>{n("updatePage",i)},u=i=>{n("sort",i)};return(i,c)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("table",et,[e.createElementVNode("thead",null,[e.createElementVNode("tr",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.displayColumns,d=>(e.openBlock(),e.createElementBlock("th",{key:d.scope},[e.createVNode(Ye,e.mergeProps({column:d},{ref_for:!0},t.sort,{onSort:u}),null,16,["column"])]))),128)),c[0]||(c[0]=e.createElementVNode("th",null,null,-1))])]),e.createElementVNode("tbody",null,[t.loading?(e.openBlock(),e.createElementBlock("tr",tt,[e.createElementVNode("td",{colspan:t.displayColumns.length+1,class:"text-center"},[...c[1]||(c[1]=[e.createElementVNode("span",{class:"loading loading-bars loading-xs"},null,-1)])],8,ot)])):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.data,d=>(e.openBlock(),e.createElementBlock("tr",{key:d.id},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.displayColumns,r=>(e.openBlock(),e.createElementBlock("td",{key:r.scope},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(r.component),e.mergeProps({ref_for:!0},r,{data:d,column:r}),null,16,["data","column"]))]))),128)),e.createElementVNode("td",null,[e.createElementVNode("span",nt,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.actions,r=>(e.openBlock(),e.createBlock(E,{key:r.label,icon:r.icon,outline:!0,onClick:v=>r.action(d)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(r.label),1)]),_:2},1032,["icon","onClick"]))),128)),e.createVNode(E,{icon:e.unref(b).Edit,outline:!0,onClick:r=>a(d)},null,8,["icon","onClick"]),e.createVNode(E,{icon:e.unref(b).Delete,outline:!0,onClick:r=>l(d)},null,8,["icon","onClick"])])])]))),128))])]),t.page?(e.openBlock(),e.createBlock(X,{key:0,class:"border-gray-300 border-t pt-4 border-x-0 border-b-0","total-items":t.page.count,"items-per-page":t.page.pageSize,"current-page":t.page.page,onUpdatePage:s},null,8,["total-items","items-per-page","current-page"])):e.createCommentVNode("",!0)],64))}}),lt={},at={class:"card bg-base-100 shadow-sm"},rt={class:"card-body"},st={key:0,class:"card-title"},ct={key:1,class:"card-actions justify-end"};function it(t,o){return e.openBlock(),e.createElementBlock("div",at,[e.createElementVNode("div",rt,[t.$slots.title?(e.openBlock(),e.createElementBlock("h2",st,[e.renderSlot(t.$slots,"title")])):e.createCommentVNode("",!0),e.createElementVNode("p",null,[e.renderSlot(t.$slots,"default"),e.renderSlot(t.$slots,"content")]),t.$slots.actions?(e.openBlock(),e.createElementBlock("div",ct,[e.renderSlot(t.$slots,"actions")])):e.createCommentVNode("",!0)])])}const dt=Y(lt,[["render",it]]),ut=(t,o)=>{if(!t)return null;const n=a=>{t.contains(a.target)||o()};return document.addEventListener("click",n),n},mt=t=>{document.removeEventListener("click",t)},pt={beforeMount(t,o){t.clickOutsideEvent=function(n){t===n.target||t.contains(n.target)||o.value(n)},document.addEventListener("click",t.clickOutsideEvent)},unmounted(t){document.removeEventListener("click",t.clickOutsideEvent)}};function ft(t){const o=e.getCurrentInstance();if(!o)return!1;const n=o.vnode.props;return n?!!(n[e.toHandlerKey(t)]||n[e.toHandlerKey(e.camelize(t))]):!1}const te={group:{root:"group",label:"text-primary text-lg font-bold",item:"group-item"},verticalLayout:{root:"flex flex-col gap-x-2",item:"w-full"},horizontalLayout:{root:"flex flex-row gap-x-2",item:"w-full"},arrayList:{root:"fieldset",legend:"fieldset-legend text-xl capitalize"},control:{root:"fieldset",wrapper:"fieldset",label:"fieldset-legend",error:"",input:"input",select:"select",description:"form-control--description label text-xs text-gray-500"},fixedArrayList:{root:"flex flex-row gap-x-2",item:"w-full"}},D=()=>({id:M(),visible:!0,required:!1,enabled:!0,isFocused:!1,isTouched:!1,hideLabel:!1,styles:te}),oe=()=>({...D(),options:[],valueKey:"value",labelKey:"label"}),ne=(t,o,n)=>!!(t&&n),le=(t,o,n,a)=>o===void 0||o!==void 0&&!t||!a&&!n,gt={key:0},T=e.defineComponent({__name:"ControlWrapper",props:e.mergeDefaults({id:{},description:{},errors:{},label:{},visible:{type:Boolean},required:{type:Boolean},enabled:{type:Boolean},isFocused:{type:Boolean},isTouched:{type:Boolean},hideLabel:{type:Boolean},styles:{}},D()),setup(t){const o=t,n=e.computed(()=>!le(o.visible,o.description,o.isFocused,!0)),a=e.computed(()=>o.required),l=e.computed(()=>ne(o.isTouched,o.isFocused,o.errors));return(s,u)=>(e.openBlock(),e.createElementBlock("fieldset",{class:e.normalizeClass(t.styles.control.wrapper)},[t.hideLabel?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("legend",{key:0,class:e.normalizeClass(t.styles.control.label)},[e.createTextVNode(e.toDisplayString(t.label)+" ",1),a.value?(e.openBlock(),e.createElementBlock("span",gt,"*")):e.createCommentVNode("",!0)],2)),e.renderSlot(s.$slots,"default"),e.createElementVNode("p",{class:e.normalizeClass(["fieldset-label h-4",{"text-error":l.value}])},e.toDisplayString(l.value?t.errors:n.value?t.description:null),3)],2))}}),ht=["disabled"],vt=["value"],bt=e.defineComponent({__name:"SelectComponent",props:e.mergeModels(e.mergeDefaults({id:{},description:{},errors:{},label:{},visible:{type:Boolean},required:{type:Boolean},enabled:{type:Boolean},isFocused:{type:Boolean},isTouched:{type:Boolean},hideLabel:{type:Boolean},styles:{},options:{},valueKey:{},labelKey:{}},{...D(),options:[],valueKey:"value",labelKey:"label"}),{modelValue:{},modelModifiers:{}}),emits:e.mergeModels(["change","focus","blur"],["update:modelValue"]),setup(t,{emit:o}){const n=t,a=o,l=e.useModel(t,"modelValue"),s=c=>{a("change",c)},u=c=>{a("focus",c)},i=c=>{a("blur",c)};return(c,d)=>(e.openBlock(),e.createBlock(T,e.normalizeProps(e.guardReactiveProps(n)),{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":d[0]||(d[0]=r=>l.value=r),disabled:!t.enabled,class:e.normalizeClass(["select select-bordered",t.styles.control.select]),onChange:s,onFocus:u,onBlur:i},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.options,r=>(e.openBlock(),e.createElementBlock("option",{key:r[t.valueKey],value:r},e.toDisplayString(r[t.labelKey]),9,vt))),128))],42,ht),[[e.vModelSelect,l.value]])]),_:1},16))}}),kt="GHENTCDH_AUTHENTICATION",yt=()=>{const t=e.inject(kt);t||console.warn("No auth provided, authorized calls may not work");const o=async(n,a,l={contentType:"application/json"})=>{const s=l?.skipAuth??t?.options.skipAuthentication,u={accept:"application/json",...a.headers??{}};l.contentType&&(u["Content-Type"]=l.contentType),s||(await t?.updateToken(),u.Authorization=`Bearer ${t?.token()}`);const i=new URL(n,window.location.href);if(l?.queryParams)for(const[d,r]of Object.entries(l.queryParams))i.searchParams.set(d,r);const c=await fetch(i.toString(),{...a,headers:u});return c.ok?c.json():(l?.skipAuth,Promise.reject({content:c.body,status:c.status}))};return{get:(n,a)=>o(n,{method:"GET"},a),postFile:(n,a,l={},s)=>{const u=new FormData;for(const i in l)u.append(i,l[i]);return u.append("file",a),o(n,{method:"POST",body:u},{...s,contentType:void 0})},post:(n,a,l)=>o(n,{method:"POST",body:JSON.stringify(a)},l),patch:(n,a,l)=>o(n,{method:"PATCH",body:JSON.stringify(a)},l),delete:(n,a,l)=>o(n,{method:"DELETE",body:JSON.stringify(a)},l)}},Bt=["disabled"],Ct={key:0,class:e.normalizeClass([`bg-base-100 w-52 shadow -mt-5
14
+ absolute z-50`])},wt=["onClick","onBlur"],xt=e.defineComponent({__name:"AutoComplete",props:e.mergeModels(e.mergeDefaults({id:{},description:{},errors:{},label:{},visible:{type:Boolean},required:{type:Boolean},enabled:{type:Boolean},isFocused:{type:Boolean},isTouched:{type:Boolean},hideLabel:{type:Boolean},styles:{},config:{},options:{},valueKey:{},labelKey:{}},oe()),{modelValue:{},modelModifiers:{}}),emits:e.mergeModels(["change","focus","blur"],["update:modelValue"]),setup(t,{emit:o}){const n=t,a=o,l=e.useModel(t,"modelValue"),s=e.ref(""),u=m=>{a("change",m)},i=m=>{a("focus",m)},c=m=>{a("blur",m)},d=e.ref(!1),r=e.ref([]),v=m=>{d.value=!0,k(m)},k=m=>{l.value=m,u(m)},y=m=>{r.value?.length===m+1&&(r.value=[])},x=yt(),h=m=>m[n.valueKey],B=m=>m?.[n.labelKey]??"";return e.watch(()=>l.value,m=>{m&&!h(m)||(d.value=!0,r.value=[],s.value=B(m))},{immediate:!0}),e.watch(()=>s.value,m=>{if(d.value){d.value=!1;return}if(k({[n.labelKey]:m}),n.config){const{uri:f,skipAuth:N,dataField:C}=n.config;x.get(`${f}${m}`,{skipAuth:N}).then(A=>{r.value=A[C]})}else n.options&&(r.value=n.options.filter(f=>B(f).toLowerCase().includes(m)).slice(0,10))}),(m,f)=>{const N=e.resolveDirective("click-outside");return e.openBlock(),e.createBlock(T,e.normalizeProps(e.guardReactiveProps(n)),{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":f[0]||(f[0]=C=>s.value=C),autocomplete:"off",type:"text",class:e.normalizeClass([t.styles.control.select]),disabled:!t.enabled,onFocus:i,onBlur:c},null,42,Bt),[[e.vModelText,s.value]]),e.withDirectives((e.openBlock(),e.createElementBlock("div",null,[r.value?.length?(e.openBlock(),e.createElementBlock("ul",Ct,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,(C,A)=>(e.openBlock(),e.createElementBlock("li",{key:C[t.valueKey]},[e.createElementVNode("button",{class:"w-full h-8 border-b-1 border-gray-200 border-x-0 border-t-0 px-4 py-2 text-left hover:bg-primary-content cursor-pointer",type:"button",onClick:ae=>v(C),onBlur:ae=>y(A)},e.toDisplayString(B(C)),41,wt)]))),128))])):e.createCommentVNode("",!0)])),[[N,()=>r.value=[]]])]),_:1},16)}}}),Vt={key:0,class:e.normalizeClass([`bg-base-100 w-52 shadow -mt-5
15
+ absolute z-50 p-0`])},Et=["onClick"],Nt={class:"w-4 mr-2"},$t=e.defineComponent({__name:"MultiSelect",props:e.mergeModels(e.mergeDefaults({id:{},description:{},errors:{},label:{},visible:{type:Boolean},required:{type:Boolean},enabled:{type:Boolean},isFocused:{type:Boolean},isTouched:{type:Boolean},hideLabel:{type:Boolean},styles:{},options:{},valueKey:{},labelKey:{}},{...D(),valueKey:"value",labelKey:"label"}),{modelValue:{},modelModifiers:{}}),emits:e.mergeModels(["change","focus","blur"],["update:modelValue"]),setup(t,{emit:o}){const n=t,a=o,l=e.useModel(t,"modelValue");let s=!1;const u=h=>{a("change",h)},i=e.ref(!1),c=()=>{i.value=!i.value,s=!0},d=()=>{s||(i.value=!1),s=!1},r=e.computed(()=>l.value?.map(h=>y(h))??[]),v=h=>r.value.includes(h),k=(h,B)=>{h.preventDefault();let m=l.value??[];const f=y(B);v(f)?m=m.filter(C=>y(C)!==f):m.push(B),l.value=m,u(m)},y=h=>h[n.valueKey],x=h=>h?.[n.labelKey]??"";return(h,B)=>{const m=e.resolveDirective("click-outside");return e.openBlock(),e.createBlock(T,e.normalizeProps(e.guardReactiveProps(n)),{default:e.withCtx(()=>[e.createElementVNode("button",{type:"button",class:e.normalizeClass([t.styles.control.select,"w-full truncate block"]),onClick:c},e.toDisplayString(l.value?.map?.(f=>x(f)).join(", ")??"Select value"),3),e.withDirectives((e.openBlock(),e.createElementBlock("div",null,[i.value?(e.openBlock(),e.createElementBlock("ul",Vt,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.options,f=>(e.openBlock(),e.createElementBlock("li",{key:f[t.valueKey]},[e.createElementVNode("button",{class:"w-full flex h-8 border-b-1 border-gray-200 border-x-0 border-t-0 p-2 text-left hover:bg-primary-content cursor-pointer",type:"button",onClick:N=>k(N,f)},[e.createElementVNode("div",Nt,[v(y(f))?(e.openBlock(),e.createBlock(e.unref(w),{key:0,icon:e.unref(b).Check,size:"sm"},null,8,["icon"])):e.createCommentVNode("",!0)]),e.createTextVNode(" "+e.toDisplayString(x(f)),1)],8,Et)]))),128))])):e.createCommentVNode("",!0)])),[[m,()=>d()]])]),_:1},16)}}}),Lt={class:"grid grid-cols-[auto_1fr_auto] h-full overflow-hidden"},Dt={id:"drawer-left",class:"min-h-0 min-w-6 relative flex-shrink-0 bg-white shadow-lg transition-all duration-300 ease-in-out border-l border-gray-200 overflow-visible"},St={class:"flex-1 overflow-y-auto bg-white"},Pt={class:"min-h-0 min-w-6 relative flex-shrink-0 bg-white shadow-lg transition-all duration-300 ease-in-out border-l border-gray-200 overflow-visible"},Mt=e.defineComponent({__name:"drawer",props:{widthLeft:{default:200},widthRight:{default:200}},setup(t){const o=e.ref({left:!0,right:!0}),n=a=>{o.value[a]=!o.value[a]};return(a,l)=>(e.openBlock(),e.createElementBlock("main",Lt,[e.createElementVNode("aside",Dt,[e.createElementVNode("div",{class:e.normalizeClass(["absolute top-0 z-20",o.value.left?"-right-0":"-right-2"])},[e.createElementVNode("button",{class:"btn btn-ghost btn-circle",onClick:l[0]||(l[0]=s=>n("left"))},[e.createVNode(e.unref(w),{size:"sm",icon:o.value.left?e.unref(b).DblChevronLeft:e.unref(b).DblChevronRight},null,8,["icon"])])],2),o.value.left?(e.openBlock(),e.createElementBlock("div",{key:0,style:e.normalizeStyle({width:t.widthLeft+"px"}),class:"h-full overflow-y-auto p-4"},[e.renderSlot(a.$slots,"left-drawer")],4)):e.createCommentVNode("",!0)]),e.createElementVNode("div",St,[e.renderSlot(a.$slots,"default")]),e.createElementVNode("aside",Pt,[o.value.right?(e.openBlock(),e.createElementBlock("div",{key:0,style:e.normalizeStyle({width:t.widthRight+"px"}),class:"h-full overflow-y-auto p-4"},[e.renderSlot(a.$slots,"right-drawer")],4)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(["absolute top-0 z-20",o.value.right?"-left-0":"-left-2"])},[e.createElementVNode("button",{class:"btn btn-ghost btn-circle",onClick:l[1]||(l[1]=s=>n("right"))},[e.createVNode(e.unref(w),{size:"sm",icon:o.value.right?e.unref(b).DblChevronRight:e.unref(b).DblChevronLeft},null,8,["icon"])])],2)])]))}});function _t(t,o){return e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true","data-slot":"icon"},[e.createElementVNode("path",{"fill-rule":"evenodd",d:"M12.53 16.28a.75.75 0 0 1-1.06 0l-7.5-7.5a.75.75 0 0 1 1.06-1.06L12 14.69l6.97-6.97a.75.75 0 1 1 1.06 1.06l-7.5 7.5Z","clip-rule":"evenodd"})])}function zt(t,o){return e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true","data-slot":"icon"},[e.createElementVNode("path",{"fill-rule":"evenodd",d:"M16.28 11.47a.75.75 0 0 1 0 1.06l-7.5 7.5a.75.75 0 0 1-1.06-1.06L14.69 12 7.72 5.03a.75.75 0 0 1 1.06-1.06l7.5 7.5Z","clip-rule":"evenodd"})])}const Tt={class:"ml-1"},At={class:"truncate flex-1 min-w-0 text-left"},Ft={key:0,class:"badge badge-ghost badge-sm flex-shrink-0"},Rt=e.defineComponent({__name:"TreeItem",props:{active:{},node:{},expanded:{},isExpanded:{type:Function}},emits:["toggle","select"],setup(t,{emit:o}){const n=t,a=o,l=e.computed(()=>n.active===n.node.id);return(s,u)=>{const i=e.resolveComponent("TreeItem",!0);return e.openBlock(),e.createElementBlock("li",Tt,[e.createElementVNode("div",{class:e.normalizeClass([`flex items-center gap-1 cursor-pointer rounded-md px-1 py-0.5
16
+ hover:bg-gray-100`,l.value?"text-primary":""])},[t.node.children?.length>0?(e.openBlock(),e.createElementBlock("span",{key:0,class:"flex items-center justify-center",onClick:u[0]||(u[0]=c=>a("toggle",t.node))},[t.node.children&&t.isExpanded(t.node.id)?(e.openBlock(),e.createBlock(e.unref(_t),{key:0,class:"w-3 h-3"})):(e.openBlock(),e.createBlock(e.unref(zt),{key:1,class:"w-3 h-3"}))])):e.createCommentVNode("",!0),e.createElementVNode("div",{class:"flex items-center gap-2 w-full min-w-0",onClick:u[1]||(u[1]=c=>a("select",t.node))},[e.createElementVNode("div",At,e.toDisplayString(t.node.label),1),t.node.tag?(e.openBlock(),e.createElementBlock("div",Ft,e.toDisplayString(t.node.tag),1)):e.createCommentVNode("",!0)])],2),t.node.children&&t.isExpanded(t.node.id)?(e.openBlock(),e.createElementBlock("ul",{key:0,class:e.normalizeClass(["ml-4 border-l pl-2",{"border-gray-200":!l.value,"border-primary":l.value}])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.node.children,c=>(e.openBlock(),e.createBlock(i,{key:c.id,node:c,expanded:t.expanded,active:t.active,"is-expanded":t.isExpanded,onToggle:u[2]||(u[2]=d=>a("toggle",d)),onSelect:u[3]||(u[3]=d=>a("select",d))},null,8,["node","expanded","active","is-expanded"]))),128))],2)):e.createCommentVNode("",!0)])}}}),Ut={class:"select-none text-sm"},Ot=e.defineComponent({__name:"TreeView",props:{data:{},active:{}},emits:["select"],setup(t,{emit:o}){const n=t,a=o,l=e.ref(new Set),s=c=>{const d=c.id;if(!c.children||c.children.length===0){a("select",c);return}l.value.has(d)?l.value.delete(d):l.value.add(d)},u=c=>{a("select",c),l.value.add(c.id)},i=c=>l.value.has(c);return(c,d)=>(e.openBlock(),e.createElementBlock("ul",Ut,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.data,r=>(e.openBlock(),e.createBlock(Rt,{key:r.id,node:r,expanded:l.value,active:t.active,"is-expanded":i,onToggle:s,onSelect:u},null,8,["node","expanded","active"]))),128))]))}}),Ht={key:0,class:"flex items-center justify-center h-20"},Kt=e.defineComponent({__name:"loading",props:{loading:{type:Boolean}},setup(t){return(o,n)=>t.loading?(e.openBlock(),e.createElementBlock("div",Ht,[...n[0]||(n[0]=[e.createElementVNode("span",{class:"loading loading-bars loading-md text-primary"},null,-1)])])):e.createCommentVNode("",!0)}});exports.Autocomplete=xt;exports.BadgeSize=Z;exports.Btn=E;exports.BtnBadge=$e;exports.ButtonSize=q;exports.Card=dt;exports.ClickOutside=pt;exports.Color=V;exports.ConfirmModal=W;exports.ControlWrapper=T;exports.DefaultAutoCompleteProperties=oe;exports.DefaultControlProperties=D;exports.Drawer=Mt;exports.Dropdown=ve;exports.Icon=w;exports.IconEnum=b;exports.IconMap=H;exports.Loading=Kt;exports.Menu=he;exports.Modal=j;exports.ModalService=_;exports.ModalWrapper=G;exports.MultiSelect=$t;exports.NotificationMessage=J;exports.NotificationService=z;exports.Notifications=Q;exports.PaginationComponent=X;exports.SelectComponent=bt;exports.ShellComponent=Oe;exports.SubMenu=P;exports.Table=ee;exports.TableComponent=ee;exports.TextCell=Je;exports.TreeView=Ot;exports.addClickOutsideEventListener=ut;exports.hasCustomEventListener=ft;exports.isDescriptionHidden=le;exports.myStyles=te;exports.removeClickOutsideEventListener=mt;exports.showErrors=ne;
package/package.json CHANGED
@@ -1,19 +1,32 @@
1
1
  {
2
2
  "name": "@ghentcdh/ui",
3
- "version": "0.2.2",
4
- "main": "./index.js",
3
+ "author": "GhentCDH",
4
+ "version": "0.3.0",
5
+ "main": "./index.cjs",
6
+ "module": "./index.js",
5
7
  "types": "./index.d.ts",
6
8
  "exports": {
7
9
  ".": {
8
- "import": "./index.mjs",
9
- "require": "./index.js"
10
+ "require": "./index.js",
11
+ "import": "./index.js"
10
12
  },
11
- "./index.css": {
12
- "import": "./index.css"
13
- }
13
+ "./index.css": "./index.css",
14
+ "./package.json": "./package.json"
14
15
  },
16
+ "files": [
17
+ "*.js",
18
+ "*.cjs",
19
+ "*.d.ts",
20
+ "*.css",
21
+ "*.md",
22
+ "assets/**",
23
+ "lib/**"
24
+ ],
25
+ "sideEffects": false,
26
+ "dependencies": {},
15
27
  "repository": {
16
28
  "type": "git",
17
- "url": "https://github.com/GhentCDH/ghentcdh-monorepo.git"
29
+ "url": "https://github.com/GhentCDH/ghentcdh-monorepo.git",
30
+ "directory": "libs/ui"
18
31
  }
19
32
  }
@@ -1,38 +0,0 @@
1
- import { Size } from '../const/size';
2
- import { IconEnum } from '../icons';
3
- import { ButtonType } from './const';
4
- import { Color } from '../const/colors';
5
- type __VLS_Props = {
6
- icon?: IconEnum;
7
- type?: ButtonType;
8
- color?: Color;
9
- disabled?: boolean;
10
- size?: Size;
11
- };
12
- declare function __VLS_template(): {
13
- attrs: Partial<{}>;
14
- slots: {
15
- default?(_: {}): any;
16
- };
17
- refs: {};
18
- rootEl: HTMLButtonElement;
19
- };
20
- type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
21
- declare const __VLS_component: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
22
- click: (...args: any[]) => void;
23
- }, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
24
- onClick?: ((...args: any[]) => any) | undefined;
25
- }>, {
26
- icon: IconEnum;
27
- size: Size;
28
- disabled: boolean;
29
- type: ButtonType;
30
- color: Color;
31
- }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLButtonElement>;
32
- declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
33
- export default _default;
34
- type __VLS_WithTemplateSlots<T, S> = T & {
35
- new (): {
36
- $slots: S;
37
- };
38
- };
@@ -1,44 +0,0 @@
1
- import { IconEnum } from '../icons';
2
- import { ButtonTag, ButtonType } from './const';
3
- import { Color } from '../const/colors';
4
- import { Size } from '../const/size';
5
- export interface ButtonProps {
6
- href?: string;
7
- disabled?: boolean;
8
- as?: ButtonTag;
9
- icon?: IconEnum;
10
- type?: ButtonType;
11
- outline?: boolean;
12
- color?: Color;
13
- size?: Size;
14
- square?: boolean;
15
- }
16
- declare function __VLS_template(): {
17
- attrs: Partial<{}>;
18
- slots: {
19
- default?(_: {}): any;
20
- };
21
- refs: {};
22
- rootEl: any;
23
- };
24
- type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
25
- declare const __VLS_component: import('vue').DefineComponent<ButtonProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
26
- click: (...args: any[]) => void;
27
- }, string, import('vue').PublicProps, Readonly<ButtonProps> & Readonly<{
28
- onClick?: ((...args: any[]) => any) | undefined;
29
- }>, {
30
- size: Size;
31
- disabled: boolean;
32
- type: ButtonType;
33
- as: ButtonTag;
34
- outline: boolean;
35
- color: Color;
36
- square: boolean;
37
- }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
38
- declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
39
- export default _default;
40
- type __VLS_WithTemplateSlots<T, S> = T & {
41
- new (): {
42
- $slots: S;
43
- };
44
- };
package/button/const.d.ts DELETED
@@ -1,9 +0,0 @@
1
- export declare enum ButtonType {
2
- button = "button",
3
- submit = "submit",
4
- reset = "reset"
5
- }
6
- export declare enum ButtonTag {
7
- a = "a",
8
- button = "button"
9
- }
package/button/index.d.ts DELETED
@@ -1,2 +0,0 @@
1
- export { default as Btn } from './btn.vue';
2
- export { default as BtnBadge } from './btn-badge.vue';
@@ -1,20 +0,0 @@
1
- declare function __VLS_template(): {
2
- attrs: Partial<{}>;
3
- slots: {
4
- title?(_: {}): any;
5
- default?(_: {}): any;
6
- content?(_: {}): any;
7
- actions?(_: {}): any;
8
- };
9
- refs: {};
10
- rootEl: HTMLDivElement;
11
- };
12
- type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
13
- declare const __VLS_component: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, HTMLDivElement>;
14
- declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
15
- export default _default;
16
- type __VLS_WithTemplateSlots<T, S> = T & {
17
- new (): {
18
- $slots: S;
19
- };
20
- };
package/const/colors.d.ts DELETED
@@ -1,8 +0,0 @@
1
- export declare enum Color {
2
- blank = "blank",
3
- primary = "primary",
4
- secondary = "secondary",
5
- error = "error"
6
- }
7
- export declare const ButtonColor: Record<Color, string>;
8
- export declare const BadgeColor: Record<Color, string>;
package/const/index.d.ts DELETED
@@ -1,2 +0,0 @@
1
- export { Color } from './colors';
2
- export * from './size';
package/const/size.d.ts DELETED
@@ -1,3 +0,0 @@
1
- export type Size = 'xs' | 'sm' | 'lg' | 'xl';
2
- export declare const ButtonSize: Record<Size, string>;
3
- export declare const BadgeSize: Record<Size, string>;
@@ -1,6 +0,0 @@
1
- export declare const addClickOutsideEventListener: (targetElement: any, callback: () => void) => ((event: Event) => void) | null;
2
- export declare const removeClickOutsideEventListener: (eventListener: any) => void;
3
- export declare const ClickOutside: {
4
- beforeMount(el: any, binding: any): void;
5
- unmounted(el: any): void;
6
- };
File without changes
@@ -1,26 +0,0 @@
1
- type __VLS_Props = {
2
- widthLeft?: number;
3
- widthRight?: number;
4
- };
5
- declare function __VLS_template(): {
6
- attrs: Partial<{}>;
7
- slots: {
8
- 'left-drawer'?(_: {}): any;
9
- default?(_: {}): any;
10
- 'right-drawer'?(_: {}): any;
11
- };
12
- refs: {};
13
- rootEl: HTMLElement;
14
- };
15
- type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
16
- declare const __VLS_component: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
17
- widthLeft: number;
18
- widthRight: number;
19
- }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLElement>;
20
- declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
21
- export default _default;
22
- type __VLS_WithTemplateSlots<T, S> = T & {
23
- new (): {
24
- $slots: S;
25
- };
26
- };
package/drawer/index.d.ts DELETED
@@ -1 +0,0 @@
1
- export { default as Drawer } from './drawer.vue';
@@ -1,33 +0,0 @@
1
- import { AutoCompleteProperties } from './core/properties';
2
- type __VLS_Props = AutoCompleteProperties;
3
- type __VLS_PublicProps = {
4
- modelValue?: any;
5
- } & __VLS_Props;
6
- declare const _default: import('vue').DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
7
- blur: (event: Event) => any;
8
- change: (event: Event) => any;
9
- focus: (event: FocusEvent) => any;
10
- "update:modelValue": (value: any) => any;
11
- }, string, import('vue').PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
12
- onBlur?: ((event: Event) => any) | undefined;
13
- onChange?: ((event: Event) => any) | undefined;
14
- onFocus?: ((event: FocusEvent) => any) | undefined;
15
- "onUpdate:modelValue"?: ((value: any) => any) | undefined;
16
- }>, {
17
- label: string;
18
- required: boolean;
19
- id: string;
20
- options: Array<any>;
21
- description: string;
22
- errors: string;
23
- visible: boolean;
24
- enabled: boolean;
25
- isFocused: boolean;
26
- isTouched: boolean;
27
- hideLabel: boolean;
28
- styles: import('.').MyStyles;
29
- valueKey: string;
30
- labelKey: string;
31
- config: import('./core/properties').AutoCompleteConfig;
32
- }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLFieldSetElement>;
33
- export default _default;
@@ -1,31 +0,0 @@
1
- import { SelectControlProperties } from './core/properties';
2
- type __VLS_Props = SelectControlProperties;
3
- type __VLS_PublicProps = {
4
- modelValue?: any[];
5
- } & __VLS_Props;
6
- declare const _default: import('vue').DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
7
- blur: (event: Event) => any;
8
- change: (event: Event) => any;
9
- focus: (event: FocusEvent) => any;
10
- "update:modelValue": (value: any[]) => any;
11
- }, string, import('vue').PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
12
- onBlur?: ((event: Event) => any) | undefined;
13
- onChange?: ((event: Event) => any) | undefined;
14
- onFocus?: ((event: FocusEvent) => any) | undefined;
15
- "onUpdate:modelValue"?: ((value: any[]) => any) | undefined;
16
- }>, {
17
- label: string;
18
- required: boolean;
19
- id: string;
20
- description: string;
21
- errors: string;
22
- visible: boolean;
23
- enabled: boolean;
24
- isFocused: boolean;
25
- isTouched: boolean;
26
- hideLabel: boolean;
27
- styles: import('.').MyStyles;
28
- valueKey: string;
29
- labelKey: string;
30
- }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLFieldSetElement>;
31
- export default _default;
@@ -1,32 +0,0 @@
1
- import { SelectControlProperties } from './core/properties';
2
- type __VLS_Props = SelectControlProperties;
3
- type __VLS_PublicProps = {
4
- modelValue?: any;
5
- } & __VLS_Props;
6
- declare const _default: import('vue').DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
7
- blur: (event: Event) => any;
8
- change: (event: Event) => any;
9
- focus: (event: FocusEvent) => any;
10
- "update:modelValue": (value: any) => any;
11
- }, string, import('vue').PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
12
- onBlur?: ((event: Event) => any) | undefined;
13
- onChange?: ((event: Event) => any) | undefined;
14
- onFocus?: ((event: FocusEvent) => any) | undefined;
15
- "onUpdate:modelValue"?: ((value: any) => any) | undefined;
16
- }>, {
17
- label: string;
18
- required: boolean;
19
- id: string;
20
- options: any[];
21
- description: string;
22
- errors: string;
23
- visible: boolean;
24
- enabled: boolean;
25
- isFocused: boolean;
26
- isTouched: boolean;
27
- hideLabel: boolean;
28
- styles: import('.').MyStyles;
29
- valueKey: string;
30
- labelKey: string;
31
- }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLFieldSetElement>;
32
- export default _default;
@@ -1,30 +0,0 @@
1
- import { ControlProperties } from './properties';
2
- declare function __VLS_template(): {
3
- attrs: Partial<{}>;
4
- slots: {
5
- default?(_: {}): any;
6
- };
7
- refs: {};
8
- rootEl: HTMLFieldSetElement;
9
- };
10
- type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
11
- declare const __VLS_component: import('vue').DefineComponent<ControlProperties, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<ControlProperties> & Readonly<{}>, {
12
- label: string;
13
- required: boolean;
14
- id: string;
15
- description: string;
16
- errors: string;
17
- visible: boolean;
18
- enabled: boolean;
19
- isFocused: boolean;
20
- isTouched: boolean;
21
- hideLabel: boolean;
22
- styles: import('./styles').MyStyles;
23
- }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLFieldSetElement>;
24
- declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
25
- export default _default;
26
- type __VLS_WithTemplateSlots<T, S> = T & {
27
- new (): {
28
- $slots: S;
29
- };
30
- };
@@ -1,5 +0,0 @@
1
- export type ControlEmits = {
2
- change: [event: Event];
3
- focus: [event: FocusEvent];
4
- blur: [event: Event];
5
- };