@digitalwalletcorp/vue-core 1.3.0 → 1.4.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.
@@ -1,9 +1,7 @@
1
- import type { ClassValue, StyleValue } from 'vue';
2
-
3
1
  /** 列の値の型。ソートの比較方法を決める */
4
2
  export type DataTableValueType = 'boolean' | 'string' | 'number' | 'object';
5
3
 
6
- /** ソートの方式。page は表示中の行を並べ替えて返し、remote はソート条件を通知するだけで利用側が再取得する */
4
+ /** ソートの方式。page は表示中の行を並べ替えて表示し、remote はソート条件を通知するだけで利用側が再取得する */
7
5
  export type DataTableSortMode = 'page' | 'remote';
8
6
 
9
7
  /** コントロール(ページネーション・総件数・表示件数・ダウンロードボタン)を出す位置 */
@@ -90,101 +88,6 @@ export interface DataTableLabels {
90
88
  /** 関数を評価した後の文言 */
91
89
  export type DataTableResolvedLabels = Record<keyof DataTableLabels, string>;
92
90
 
93
- /**
94
- * DataTable の props
95
- */
96
- export interface DataTableProps<T = unknown> {
97
- /** 表示している行のデータ。スロットで描画する行と同じ順に並んでいること */
98
- dataList: T[];
99
- /** ヘッダ。id は一意であること */
100
- headers: DataTableHeader<T>[];
101
- /** 読み込み中。true の間は行を描画せず読み込み中の表示を出す */
102
- loading?: boolean;
103
- /** 総件数。未指定なら dataList の件数 */
104
- totalCount?: number;
105
- /** 現在ページ(1起点) */
106
- current?: number;
107
- /** 1ページあたりの表示件数 */
108
- limit?: number;
109
- /** 1ページあたりの表示件数の上限 */
110
- maxLimit?: number;
111
- /** ページネーションに並べるページ番号の最大数 */
112
- maxPagination?: number;
113
- /** 行をクリックで選択できるか */
114
- selectable?: boolean;
115
- /** コントロールを出す位置 */
116
- controls?: DataTableControlsPlacement;
117
- /** ページネーションを出す位置。controls が無い側には出ない */
118
- pagination?: DataTableControlsPlacement;
119
- /** ページダウンロードボタンを表示するか */
120
- showDownloadPage?: boolean;
121
- /** 全件ダウンロードボタンを表示するか */
122
- showDownloadAll?: boolean;
123
- /** 総件数を表示するか */
124
- showTotal?: boolean;
125
- /** 1ページあたりの表示件数の入力を表示するか */
126
- showLimit?: boolean;
127
- /** ページネーションにページ番号の選択を表示するか */
128
- showPageSelect?: boolean;
129
- /** dataList が空のときにデータが無い旨の行を表示するか */
130
- showNoData?: boolean;
131
- /** ヘッダの境界のドラッグで列幅を変えられるか */
132
- resizable?: boolean;
133
- /** ヘッダのクリックでソートできるか */
134
- sortable?: boolean;
135
- /** ソートの方式。未指定なら remote */
136
- sortMode?: DataTableSortMode;
137
- /** テーブルをスクロールする領域に付ける class */
138
- contentClass?: ClassValue;
139
- /** テーブルをスクロールする領域に付ける style */
140
- contentStyle?: StyleValue;
141
- /** table に付ける class */
142
- tableClass?: ClassValue;
143
- /** table に付ける style */
144
- tableStyle?: StyleValue;
145
- /** 表示する文言。未指定の項目は英語 */
146
- labels?: DataTableLabels;
147
- /** 総件数の整形。未指定なら en-US の桁区切り。SSR とクライアントで同じ文字列を返すこと */
148
- formatTotalCount?: (count: number) => string;
149
- }
150
-
151
- /**
152
- * DataTable が発行するイベント
153
- */
154
- export interface DataTableEmits<T = unknown> {
155
- /** 選択が変わった。クリックでの選択・解除、カーソルキーでの移動、読み込み完了時の解除で発行する。解除は undefined と -1 */
156
- (e: 'emit:selectRow', value: T | undefined, index: number): void;
157
- /** ソートの条件が変わった。sortMode に関わらず発行する */
158
- (e: 'emit:changeSort', context: DataTableSortContext): void;
159
- /** sortMode が page のとき、表示中の行を並べ替えた配列を発行する */
160
- (e: 'emit:sortData', dataList: T[]): void;
161
- (e: 'emit:updateHeader', headers: DataTableHeader<T>[]): void;
162
- (e: 'emit:dblclickRow', value: T, index: number): void;
163
- (e: 'emit:changeLimit', limit: number): void;
164
- (e: 'emit:changePage', page: number): void;
165
- (e: 'emit:downloadPage'): void;
166
- (e: 'emit:downloadAll'): void;
167
- }
168
-
169
- /**
170
- * DataTable のスロット
171
- */
172
- export interface DataTableSlots<T = unknown> {
173
- /** 行。tr を dataList と同じ順に並べ、tr の click で clickRow(row, index) を呼ぶ */
174
- default?(props: {
175
- /** 行を選択する。選択している行なら選択を解除する */
176
- clickRow: (row: T, index: number) => void;
177
- /** 行を選択してダブルクリックを通知する */
178
- dblclickRow: (row: T, index: number) => void;
179
- /** 行のインデックスから、ページをまたいだ1起点の行番号を返す */
180
- rowNumber: (index: number) => number;
181
- /** 選択している行のインデックス。選択していなければ -1 */
182
- selectedIndex: number;
183
- }): unknown;
184
- /** 読み込み中の表示。未指定なら既定のスピナー */
185
- loading?(): unknown;
186
- }
187
-
188
91
  /**
189
92
  * ソートの状態
190
93
  */
@@ -1 +0,0 @@
1
- "use strict";const e=require("vue"),S=require("@digitalwalletcorp/vue-svg-icons"),D=e.defineComponent({__name:"label-icon",props:{preset:{},gap:{},iconClass:{type:[Boolean,null,String,Object,Array]},iconStyle:{type:[Boolean,null,String,Object,Array]},labelClass:{type:[Boolean,null,String,Object,Array]},labelStyle:{type:[Boolean,null,String,Object,Array]}},setup(r){const n=r,t=e.useSlots();return(o,a)=>(e.openBlock(),e.createElementBlock("span",{class:"dwui-label-icon",style:e.normalizeStyle(n.gap==null?void 0:{"--dwui-gap-label-icon":n.gap})},[e.renderSlot(o.$slots,"icon",{},()=>[n.preset!=null?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(n.preset.icon),e.mergeProps({key:0},n.preset.iconProps,{class:n.iconClass,style:n.iconStyle}),null,16,["class","style"])):e.createCommentVNode("",!0)]),t.default!=null||n.preset!=null?(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(["dwui-label",n.labelClass]),style:e.normalizeStyle(n.labelStyle)},[e.renderSlot(o.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(typeof n.preset?.label=="function"?n.preset.label():n.preset?.label),1)])],6)):e.createCommentVNode("",!0)],4))}}),me=70;function J(r){const n=e.ref(!0);let t;return e.onMounted(()=>{const o=r.value;o!=null&&(t=new ResizeObserver(()=>{n.value=me<=o.scrollHeight}),t.observe(o))}),e.onBeforeUnmount(()=>{t?.disconnect()}),n}const pe=["disabled"],fe={class:"dwui-accordion-legend"},ge=["aria-expanded"],ve=e.defineComponent({__name:"accordion-fieldset",props:e.mergeModels({legend:{},disabled:{type:Boolean},initialExpand:{type:Boolean}},{expanded:{type:Boolean,default:void 0},expandedModifiers:{}}),emits:["update:expanded"],setup(r){const n=r,t=e.useSlots(),o=e.ref(),a=e.useModel(r,"expanded"),l=e.ref(!!n.initialExpand),i=e.computed({get:()=>a.value??l.value,set:d=>{l.value=d,a.value=d}}),m=J(o),c=()=>{i.value=!i.value};return(d,v)=>(e.openBlock(),e.createElementBlock("fieldset",{class:"dwui-accordion-fieldset",disabled:n.disabled},[e.createElementVNode("legend",fe,[e.createElementVNode("button",{type:"button",class:"dwui-accordion-toggle","aria-expanded":i.value,onClick:c},[e.createVNode(e.unref(S.SvgTriangleButton),{direction:i.value?"up":"down"},null,8,["direction"]),n.legend!=null||t.legend!=null||t.icon!=null?(e.openBlock(),e.createBlock(D,{key:0},e.createSlots({_:2},[t.icon!=null?{name:"icon",fn:e.withCtx(()=>[e.renderSlot(d.$slots,"icon")]),key:"0"}:void 0,n.legend!=null||t.legend!=null?{name:"default",fn:e.withCtx(()=>[e.renderSlot(d.$slots,"legend",{},()=>[e.createTextVNode(e.toDisplayString(n.legend),1)])]),key:"1"}:void 0]),1024)):e.createCommentVNode("",!0)],8,ge)]),e.createElementVNode("div",{ref_key:"refContents",ref:o,class:e.normalizeClass(["dwui-accordion-contents",e.unref(m)?i.value?"dwui-expanded":"dwui-shrunk":""])},[e.renderSlot(d.$slots,"default")],2)],8,pe))}}),he={class:"dwui-accordion-section"},be={key:0,class:"dwui-accordion-section-control"},we=["disabled","aria-expanded"],ye=e.defineComponent({__name:"accordion-section",props:e.mergeModels({disabled:{type:Boolean},initialExpand:{type:Boolean},noGradient:{type:Boolean},expandLabel:{},collapseLabel:{},expandPreset:{},collapsePreset:{}},{expanded:{type:Boolean,default:void 0},expandedModifiers:{}}),emits:["update:expanded"],setup(r){const n=r,t=e.useSlots(),o=e.ref(),a=e.useModel(r,"expanded"),l=e.ref(!!n.initialExpand),i=e.computed({get:()=>a.value??l.value,set:k=>{l.value=k,a.value=k}}),m=J(o),c=e.computed(()=>i.value?n.collapsePreset:n.expandPreset),d=()=>(i.value?t["collapse-icon"]:t["expand-icon"])??c.value?.icon,v=()=>(i.value?t["collapse-icon"]:t["expand-icon"])==null?c.value?.iconProps:void 0,p=e.computed(()=>{const k=i.value?n.collapseLabel:n.expandLabel;if(k!=null)return k;const _=c.value?.label;return typeof _=="function"?_():_}),u=()=>{i.value=!i.value};return(k,_)=>(e.openBlock(),e.createElementBlock("div",he,[e.createElementVNode("div",{ref_key:"refContents",ref:o,class:e.normalizeClass(["dwui-accordion-section-contents",[e.unref(m)?i.value?"dwui-expanded":"dwui-shrunk":"",{"dwui-no-gradient":n.noGradient}]])},[e.renderSlot(k.$slots,"default")],2),e.unref(m)?(e.openBlock(),e.createElementBlock("div",be,[e.createElementVNode("button",{type:"button",class:"dwui-accordion-section-toggle",disabled:n.disabled,"aria-expanded":i.value,onClick:e.withModifiers(u,["stop"])},[d()!=null||p.value!=null?(e.openBlock(),e.createBlock(D,{key:0},e.createSlots({_:2},[d()!=null?{name:"icon",fn:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(d()),e.normalizeProps(e.guardReactiveProps(v())),null,16))]),key:"0"}:void 0,p.value!=null?{name:"default",fn:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(p.value),1)]),key:"1"}:void 0]),1024)):(e.openBlock(),e.createBlock(e.unref(S.SvgTriangleButton),{key:1,direction:i.value?"up":"down"},null,8,["direction"]))],8,we)])):e.createCommentVNode("",!0)]))}}),ke=["aria-label"],Be=e.defineComponent({__name:"copy-button",props:{value:{},label:{default:"Copy"}},emits:["emit:copy","emit:error"],setup(r,{emit:n}){const t=r,o=n,a=e.useSlots(),l=async()=>{const i=String(typeof t.value=="function"?t.value():t.value);try{await navigator.clipboard.writeText(i)}catch(m){o("emit:error",m);return}o("emit:copy",i)};return(i,m)=>(e.openBlock(),e.createElementBlock("button",{type:"button",class:"dwui-copy-button","aria-label":a.default?void 0:t.label,onClick:l},[e.renderSlot(i.$slots,"default",{},()=>[e.createVNode(e.unref(S.SvgMemo))])],8,ke))}}),_e=["aria-label","aria-checked"],Se={class:"dwui-dark-mode-selector-track"},Ce={class:"dwui-dark-mode-selector-icon-light"},$e={class:"dwui-dark-mode-selector-icon-dark"},Ee=e.defineComponent({__name:"dark-mode-selector",props:{storageKey:{default:"dwui-color-scheme"},label:{default:"Dark mode"}},emits:["emit:change"],setup(r,{emit:n}){const t=r,o=n,a=e.ref(!1);let l=null,i=null;const m=y=>y==="light"||y==="dark",c=()=>i?.matches?"dark":"light",d=()=>{try{const y=localStorage.getItem(t.storageKey);return m(y)?y:null}catch{return null}},v=y=>{const h=document.documentElement.classList;h.remove(y==="dark"?"light":"dark"),h.add(y),a.value=y==="dark",l!==y&&(l=y,o("emit:change",y))},p=y=>{try{localStorage.setItem(t.storageKey,y)}catch{}v(y)},u=()=>{p(a.value?"light":"dark")},k=y=>{p(y.matches?"dark":"light")},_=y=>{y.key===t.storageKey&&v(m(y.newValue)?y.newValue:c())};return e.onMounted(()=>{i=window.matchMedia("(prefers-color-scheme: dark)"),v(d()??c()),i.addEventListener("change",k),window.addEventListener("storage",_)}),e.onBeforeUnmount(()=>{i?.removeEventListener("change",k),window.removeEventListener("storage",_)}),(y,h)=>(e.openBlock(),e.createElementBlock("button",{type:"button",role:"switch",class:"dwui-dark-mode-selector","aria-label":t.label,"aria-checked":a.value,onClick:u},[e.createElementVNode("span",Se,[e.createElementVNode("span",Ce,[e.renderSlot(y.$slots,"icon-light",{},()=>[e.createVNode(e.unref(S.SvgHighBrightness))])]),e.createElementVNode("span",$e,[e.renderSlot(y.$slots,"icon-dark",{},()=>[e.createVNode(e.unref(S.SvgMoonPhases),{"moon-age":3.85})])])]),h[0]||(h[0]=e.createElementVNode("span",{class:"dwui-dark-mode-selector-handle"},null,-1))],8,_e))}}),Ne={class:"dwui-pagination"},xe={class:"dwui-pagination-list"},Pe=["disabled","aria-label","title"],Ve=["disabled","aria-label","title"],Le=["disabled","aria-label","title"],Me=["aria-current","onClick"],De=["disabled","aria-label","title"],Te=["disabled","aria-label","title"],ze=["disabled","aria-label","title"],Ae={key:0,class:"dwui-pagination-select"},Ie=["value","disabled"],Oe=["value"],He=e.defineComponent({__name:"pagination",props:{current:{},totalCount:{},limit:{},maxPagination:{},showPageSelect:{type:Boolean},labels:{}},emits:["emit:changePage"],setup(r,{emit:n}){const t=r,o=n,a=e.computed(()=>Math.ceil(t.totalCount/t.limit)),l=e.computed(()=>Math.min(Math.max(t.current,1),a.value)),i=e.ref(!1),m=e.computed(()=>a.value<1?[]:i.value?Array.from({length:a.value},(h,B)=>B+1):[l.value]),c=e.computed(()=>{if(a.value<1)return[];const h=Math.min(Math.max(l.value-Math.floor((t.maxPagination-1)/2),1),Math.max(a.value-t.maxPagination+1,1)),B=Math.min(h+t.maxPagination-1,a.value);return Array.from({length:B-h+1},(f,N)=>h+N)}),d=h=>{h!==t.current&&o("emit:changePage",h)},v=h=>{let B;h<0?B=Math.max(c.value[0]-t.maxPagination,1):B=Math.min(c.value[c.value.length-1]+t.maxPagination,a.value)-t.maxPagination+1,d(B+Math.round((t.maxPagination-1)/2))},p=h=>{d(Number(h.target.value))},u=()=>{i.value=!0},k=h=>{document.activeElement!==h.currentTarget&&(i.value=!1)},_=()=>{i.value=!0},y=()=>{i.value=!1};return(h,B)=>(e.openBlock(),e.createElementBlock("div",Ne,[e.createElementVNode("ul",xe,[e.createElementVNode("li",null,[e.createElementVNode("button",{type:"button",disabled:l.value<=1,"aria-label":t.labels.firstPage,title:t.labels.firstPage,onClick:B[0]||(B[0]=f=>d(1))},[e.createVNode(e.unref(S.SvgChevronDouble),{direction:"left",size:"1em","stroke-width":8})],8,Pe)]),e.createElementVNode("li",null,[e.createElementVNode("button",{type:"button",disabled:l.value<=1,"aria-label":t.labels.previousPage,title:t.labels.previousPage,onClick:B[1]||(B[1]=f=>d(l.value-1))},[e.createVNode(e.unref(S.SvgChevron),{direction:"left",size:"1em","stroke-width":8})],8,Ve)]),e.createElementVNode("li",null,[e.createElementVNode("button",{type:"button",disabled:c.value.length===0||c.value[0]===1,"aria-label":t.labels.previousPages,title:t.labels.previousPages,onClick:B[2]||(B[2]=f=>v(-1))},[e.createVNode(e.unref(S.SvgBlackArrow),{direction:"left",size:"1em"})],8,Le)]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.value,f=>(e.openBlock(),e.createElementBlock("li",{key:f},[e.createElementVNode("button",{type:"button",class:e.normalizeClass(["dwui-pagination-page",{"dwui-current":f===l.value}]),"aria-current":f===l.value?"page":void 0,onClick:N=>d(f)},e.toDisplayString(f),11,Me)]))),128)),e.createElementVNode("li",null,[e.createElementVNode("button",{type:"button",disabled:c.value.length===0||c.value[c.value.length-1]===a.value,"aria-label":t.labels.nextPages,title:t.labels.nextPages,onClick:B[3]||(B[3]=f=>v(1))},[e.createVNode(e.unref(S.SvgBlackArrow),{direction:"right",size:"1em"})],8,De)]),e.createElementVNode("li",null,[e.createElementVNode("button",{type:"button",disabled:a.value<=l.value,"aria-label":t.labels.nextPage,title:t.labels.nextPage,onClick:B[4]||(B[4]=f=>d(l.value+1))},[e.createVNode(e.unref(S.SvgChevron),{direction:"right",size:"1em","stroke-width":8})],8,Te)]),e.createElementVNode("li",null,[e.createElementVNode("button",{type:"button",disabled:a.value<=l.value,"aria-label":t.labels.lastPage,title:t.labels.lastPage,onClick:B[5]||(B[5]=f=>d(a.value))},[e.createVNode(e.unref(S.SvgChevronDouble),{direction:"right",size:"1em","stroke-width":8})],8,ze)])]),t.showPageSelect?(e.openBlock(),e.createElementBlock("label",Ae,[e.createElementVNode("span",null,e.toDisplayString(t.labels.pageNumber),1),e.createElementVNode("select",{value:l.value,disabled:a.value<=1,onPointerenter:u,onPointerleave:k,onFocus:_,onBlur:y,onChange:p},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(m.value,f=>(e.openBlock(),e.createElementBlock("option",{key:f,value:f},e.toDisplayString(f)+" ("+e.toDisplayString((f-1)*t.limit+1)+" - "+e.toDisplayString(Math.min(f*t.limit,t.totalCount))+") ",9,Oe))),128))],40,Ie)])):e.createCommentVNode("",!0)]))}}),Re={class:"dwui-data-table-controls"},Fe={class:"dwui-data-table-tools"},We={key:0,class:"dwui-data-table-total"},je={class:"dwui-data-table-total-count"},Ke={key:1,class:"dwui-data-table-limit"},Ue=["value","max"],Ge=["title","aria-label"],Xe=["title","aria-label"],U=e.defineComponent({__name:"data-table-controls",props:{pagination:{type:Boolean},showTotal:{type:Boolean},showLimit:{type:Boolean},showPageSelect:{type:Boolean},showDownloadPage:{type:Boolean},showDownloadAll:{type:Boolean},current:{},limit:{},maxLimit:{},maxPagination:{},totalCount:{},labels:{},formatTotalCount:{type:Function}},emits:["emit:changePage","emit:changeLimit","emit:downloadPage","emit:downloadAll"],setup(r,{emit:n}){const t=r,o=n,a=new Intl.NumberFormat("en-US"),l=e.computed(()=>t.formatTotalCount?t.formatTotalCount(t.totalCount):a.format(t.totalCount)),i=m=>{const c=m.target,d=Math.min(Math.max(Math.trunc(Number(c.value))||1,1),t.maxLimit);c.value=String(d),d!==t.limit&&o("emit:changeLimit",d)};return(m,c)=>(e.openBlock(),e.createElementBlock("div",Re,[t.pagination?(e.openBlock(),e.createBlock(He,{key:0,current:t.current,"total-count":t.totalCount,limit:t.limit,"max-pagination":t.maxPagination,"show-page-select":t.showPageSelect,labels:t.labels,"onEmit:changePage":c[0]||(c[0]=d=>o("emit:changePage",d))},null,8,["current","total-count","limit","max-pagination","show-page-select","labels"])):e.createCommentVNode("",!0),e.createElementVNode("div",Fe,[t.showTotal?(e.openBlock(),e.createElementBlock("span",We,[e.createElementVNode("span",null,e.toDisplayString(t.labels.totalCount),1),e.createElementVNode("span",je,e.toDisplayString(l.value),1),e.createElementVNode("span",null,e.toDisplayString(t.labels.totalUnit),1)])):e.createCommentVNode("",!0),t.showLimit?(e.openBlock(),e.createElementBlock("label",Ke,[e.createElementVNode("span",null,e.toDisplayString(t.labels.limit),1),e.createElementVNode("input",{type:"number",value:t.limit,min:"1",max:t.maxLimit,step:"1",onChange:i},null,40,Ue)])):e.createCommentVNode("",!0),t.showDownloadPage?(e.openBlock(),e.createElementBlock("button",{key:2,type:"button",title:t.labels.downloadPage,"aria-label":t.labels.downloadPage,onClick:c[1]||(c[1]=d=>o("emit:downloadPage"))},[e.createVNode(e.unref(S.SvgFolderDownload))],8,Ge)):e.createCommentVNode("",!0),t.showDownloadAll?(e.openBlock(),e.createElementBlock("button",{key:3,type:"button",title:t.labels.downloadAll,"aria-label":t.labels.downloadAll,onClick:c[2]||(c[2]=d=>o("emit:downloadAll"))},[e.createVNode(e.unref(S.SvgCloudDownload))],8,Xe)):e.createCommentVNode("",!0)])]))}}),R=(r,n)=>{let t=r;for(const o of n.replace(/\[(\w+)\]/g,".$1").split(".")){if(t==null)return;t=t[o]}return t},F=r=>typeof r=="function"?r():r??"",G=r=>r===!0||r==="true"||r==="1"||r==="on"||r===1,X=r=>typeof r=="number"?r:Number(String(r).replace(/[^+\-\d.]/g,"")),qe=(r,n,t)=>{if(r==null&&n==null)return 0;if(r==null)return-1;if(n==null)return 1;if(r===n)return 0;switch(t){case"boolean":return(G(r)?1:0)-(G(n)?1:0);case"number":{const o=X(r),a=X(n);return Number.isNaN(o)||Number.isNaN(a)?(Number.isNaN(o)?0:1)-(Number.isNaN(a)?0:1):o-a}case"object":return A(r).localeCompare(A(n));default:return String(r).localeCompare(String(n))}},A=r=>{try{return JSON.stringify(r,(n,t)=>typeof t=="bigint"?t.toString():t)??""}catch{return""}},Ye=["rowspan","colspan","title","aria-sort"],Qe={class:"dwui-data-table-header"},Je=["role","tabindex","onClick","onKeydown"],Ze=["innerHTML"],et={key:2},tt=["onPointerdown"],ot={key:0,class:"dwui-data-table-no-data"},nt=["colspan"],lt={key:0,class:"dwui-data-table-loading"},at=e.defineComponent({__name:"data-table",props:{dataList:{},headers:{},loading:{type:Boolean,default:!1},totalCount:{default:void 0},current:{default:1},limit:{default:100},maxLimit:{default:9999},maxPagination:{default:7},selectable:{type:Boolean,default:!0},controls:{default:"both"},pagination:{default:"both"},showDownloadPage:{type:Boolean,default:!0},showDownloadAll:{type:Boolean,default:!0},showTotal:{type:Boolean,default:!0},showLimit:{type:Boolean,default:!0},showPageSelect:{type:Boolean,default:!1},showNoData:{type:Boolean,default:!0},resizable:{type:Boolean,default:!0},sortable:{type:Boolean,default:!0},sortMode:{default:"remote"},contentClass:{type:[Boolean,null,String,Object,Array],default:void 0},contentStyle:{type:[Boolean,null,String,Object,Array],default:void 0},tableClass:{type:[Boolean,null,String,Object,Array],default:void 0},tableStyle:{type:[Boolean,null,String,Object,Array],default:void 0},labels:{default:void 0},formatTotalCount:{type:Function,default:void 0}},emits:["emit:selectRow","emit:changeSort","emit:sortData","emit:updateHeader","emit:dblclickRow","emit:changeLimit","emit:changePage","emit:downloadPage","emit:downloadAll"],setup(r,{expose:n,emit:t}){const o=r,a=t,l=e.ref(),i=e.ref(),m=e.ref(),c=e.ref({}),d=e.ref(""),v=e.ref(!1),p=e.ref();let u;const k=e.computed(()=>o.headers.map(s=>c.value[s.id]==null?s:{...s,width:c.value[s.id]})),_=e.computed(()=>{const s={totalCount:"Total",totalUnit:"",limit:"Rows per page",noData:"No data found",pageNumber:"Page",downloadPage:"Download this page",downloadAll:"Download all",firstPage:"First page",previousPage:"Previous page",previousPages:"Previous pages",nextPages:"Next pages",nextPage:"Next page",lastPage:"Last page",...o.labels},g={};for(const b of Object.keys(s)){const C=s[b];g[b]=typeof C=="function"?C():C}return g}),y=e.computed(()=>Math.min(o.limit,o.maxLimit)),h=e.computed(()=>({showTotal:o.showTotal,showLimit:o.showLimit,showPageSelect:o.showPageSelect,showDownloadPage:o.showDownloadPage,showDownloadAll:o.showDownloadAll,current:o.current,limit:y.value,maxLimit:o.maxLimit,maxPagination:o.maxPagination,totalCount:o.totalCount??o.dataList.length,formatTotalCount:o.formatTotalCount,labels:_.value})),B=e.shallowRef(void 0),f=e.computed(()=>{const s=B.value;if(s==null)return-1;const g=o.dataList.indexOf(s);if(g!==-1)return g;const b=A(s);return b===""?-1:o.dataList.findIndex(C=>A(C)===b)}),N=e.computed(()=>o.headers.reduce((s,g)=>s+(g.colspan==null?1:Number(g.colspan)),0)),w=s=>{if(s!=null)return typeof s=="number"?`${s}px`:s},x=s=>({width:w(s.width),minWidth:w(s.minWidth),maxWidth:w(s.maxWidth)}),$=s=>{if(d.value===s)return v.value?"descending":"ascending"},V=s=>{if(!(!o.sortable||d.value!==s))return v.value?"down":"up"},P=s=>(o.current-1)*y.value+s+1,L=()=>Array.from(m.value?.children??[]).filter(s=>s.tagName==="TR"&&!s.classList.contains("dwui-data-table-no-data")),re=s=>Array.from(s.children).filter(g=>g.tagName==="TD"||g.tagName==="TH"),W=()=>{a("emit:updateHeader",k.value.map(s=>({...s})))},I=()=>{L().forEach((s,g)=>s.classList.toggle("dwui-selected",g===f.value))},ie=()=>{const s=l.value,g=L()[f.value];if(!s||!g)return;const b=i.value?.offsetHeight??0,C=g.offsetTop,E=C+g.offsetHeight;C<s.scrollTop+b?s.scrollTop=C-b:s.scrollTop+s.clientHeight<E&&(s.scrollTop=E-s.clientHeight)},T=(s,g)=>{B.value=s,a("emit:selectRow",s,g)},j=(s,g)=>{o.selectable&&(g===f.value?T(void 0,-1):(T(s,g),l.value?.focus({preventScroll:!0})))},se=(s,g)=>{g!==f.value&&j(s,g),a("emit:dblclickRow",s,g)},ce=s=>{if(s.target!==s.currentTarget||f.value<0||s.key!=="ArrowUp"&&s.key!=="ArrowDown")return;const g=f.value+(s.key==="ArrowUp"?-1:1);g<0||o.dataList.length<=g||(s.preventDefault(),T(o.dataList[g],g))},O=s=>{if(!o.sortable||o.dataList.length===0||(v.value=d.value===s.id?!v.value:!1,d.value=s.id,a("emit:changeSort",{sortKey:d.value,descending:v.value}),o.sortMode!=="page"))return;const g=s.compare??((C,E)=>{const M=s.sortKey??s.id;return qe(R(C,M),R(E,M),s.type??"string")}),b=[...o.dataList].sort((C,E)=>v.value?g(E,C):g(C,E));a("emit:sortData",b)},de=(s,g)=>{if(!o.resizable)return;s.preventDefault();const b=i.value?.firstElementChild,C=b?re(b):[];for(const[E,M]of C.entries())c.value[o.headers[E].id]=M.getBoundingClientRect().width;p.value={index:g,x:s.clientX},s.currentTarget.setPointerCapture(s.pointerId),W()},ue=s=>{if(!p.value)return;const g=s.clientX-p.value.x;if(g===0)return;p.value.x=s.clientX;const b=p.value.index,C=o.headers.map(M=>M.id);c.value[C[b]]+=g;const E=g/(C.length-b-1);for(const M of C.slice(b+1))c.value[M]-=E},K=()=>{p.value&&(p.value=void 0,W())};return e.onMounted(()=>{u=new MutationObserver(I),m.value&&u.observe(m.value,{childList:!0}),I()}),e.onBeforeUnmount(()=>{u?.disconnect()}),e.watch(()=>o.headers,(s,g)=>{const b=s.map(E=>E.id),C=g.map(E=>E.id);(b.length!==C.length||b.some(E=>!C.includes(E)))&&(c.value={})}),e.watch(()=>o.loading,(s,g)=>{g&&!s&&(o.sortMode==="page"&&(d.value="",v.value=!1),B.value!=null&&T(void 0,-1))}),e.watch(f,s=>{0<=s&&ie()},{flush:"post"}),e.watch(f,I,{flush:"post"}),n({getSortContext:()=>({sortKey:d.value,descending:v.value})}),(s,g)=>(e.openBlock(),e.createElementBlock("section",{class:e.normalizeClass(["dwui-data-table",{"dwui-selectable":o.selectable}])},[o.controls==="both"||o.controls==="top"?(e.openBlock(),e.createBlock(U,e.mergeProps({key:0},h.value,{pagination:o.pagination==="both"||o.pagination==="top","onEmit:changePage":g[0]||(g[0]=b=>a("emit:changePage",b)),"onEmit:changeLimit":g[1]||(g[1]=b=>a("emit:changeLimit",b)),"onEmit:downloadPage":g[2]||(g[2]=b=>a("emit:downloadPage")),"onEmit:downloadAll":g[3]||(g[3]=b=>a("emit:downloadAll"))}),null,16,["pagination"])):e.createCommentVNode("",!0),e.createElementVNode("div",{ref_key:"refContent",ref:l,class:e.normalizeClass(["dwui-data-table-content",[{"dwui-loading":o.loading},o.contentClass]]),style:e.normalizeStyle(o.contentStyle),tabindex:"-1",onKeydown:ce},[e.createElementVNode("table",{class:e.normalizeClass(o.tableClass),style:e.normalizeStyle(o.tableStyle)},[e.createElementVNode("thead",{ref_key:"refThead",ref:i},[e.createElementVNode("tr",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(k.value,(b,C)=>(e.openBlock(),e.createElementBlock("th",{key:b.id,rowspan:b.rowspan,colspan:b.colspan,title:b.title,style:e.normalizeStyle(x(b)),"aria-sort":$(b.id),scope:"col"},[e.createElementVNode("div",Qe,[e.createElementVNode("span",{class:"dwui-data-table-sort",role:o.sortable?"button":void 0,tabindex:o.sortable?0:void 0,onClick:E=>O(b),onKeydown:[e.withKeys(e.withModifiers(E=>O(b),["prevent"]),["enter"]),e.withKeys(e.withModifiers(E=>O(b),["prevent"]),["space"])]},[V(b.id)?(e.openBlock(),e.createBlock(e.unref(S.SvgPointingTriangle),{key:0,direction:V(b.id),size:"0.7em"},null,8,["direction"])):e.createCommentVNode("",!0),b.html?(e.openBlock(),e.createElementBlock("span",{key:1,innerHTML:e.unref(F)(b.label)},null,8,Ze)):(e.openBlock(),e.createElementBlock("span",et,e.toDisplayString(e.unref(F)(b.label)),1))],40,Je)]),o.resizable&&C<k.value.length-1?(e.openBlock(),e.createElementBlock("div",{key:0,class:"dwui-data-table-resizer",onPointerdown:E=>de(E,C),onPointermove:ue,onPointerup:K,onPointercancel:K},null,40,tt)):e.createCommentVNode("",!0)],12,Ye))),128))])],512),e.createElementVNode("tbody",{ref_key:"refTbody",ref:m},[o.loading?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.renderSlot(s.$slots,"default",{clickRow:j,dblclickRow:se,rowNumber:P,selectedIndex:f.value}),o.dataList.length===0&&o.showNoData?(e.openBlock(),e.createElementBlock("tr",ot,[e.createElementVNode("td",{colspan:N.value},e.toDisplayString(_.value.noData),9,nt)])):e.createCommentVNode("",!0)],64))],512)],6),o.loading?(e.openBlock(),e.createElementBlock("div",lt,[e.renderSlot(s.$slots,"loading",{},()=>[g[8]||(g[8]=e.createElementVNode("div",{class:"dwui-data-table-loading-spinner"},null,-1))])])):e.createCommentVNode("",!0)],38),o.controls==="both"||o.controls==="bottom"?(e.openBlock(),e.createBlock(U,e.mergeProps({key:1},h.value,{pagination:o.pagination==="both"||o.pagination==="bottom","onEmit:changePage":g[4]||(g[4]=b=>a("emit:changePage",b)),"onEmit:changeLimit":g[5]||(g[5]=b=>a("emit:changeLimit",b)),"onEmit:downloadPage":g[6]||(g[6]=b=>a("emit:downloadPage")),"onEmit:downloadAll":g[7]||(g[7]=b=>a("emit:downloadAll"))}),null,16,["pagination"])):e.createCommentVNode("",!0)],2))}}),q={top:"bottom",bottom:"top",left:"right",right:"left"},H=(r,n,t)=>Math.min(Math.max(r,n),t),Z=(r,n,t,o)=>{const{offset:a,margin:l,arrowMargin:i}=o,[m,c="center"]=o.placement.split("-"),d=m==="top"||m==="bottom",v=r.top+r.height,p=r.left+r.width,u={top:r.top-l,bottom:t.height-v-l,left:r.left-l,right:t.width-p-l},y=(d?n.height:n.width)+a<=u[m]||u[q[m]]<=u[m]?m:q[m];let h;switch(y){case"top":h=r.top-a-n.height;break;case"bottom":h=v+a;break;case"left":h=r.left-a-n.width;break;default:h=p+a;break}const B=d?r.left:r.top,f=d?r.width:r.height,N=d?n.width:n.height;let w;switch(c){case"start":w=B;break;case"end":w=B+f-N;break;default:w=B+(f-N)/2;break}const x=H(d?h:w,l,Math.max(l,t.height-l-n.height)),$=H(d?w:h,l,Math.max(l,t.width-l-n.width)),V=B+f/2,L=H(V-(d?$:x),i,Math.max(i,N-i));return{top:x,left:$,side:y,arrow:L}},rt=["popover","data-side"],it={class:"dwui-anchored-popover-content"},Y=4,st=7,ct=12,dt=8,ee=e.defineComponent({__name:"anchored-popover",props:{anchor:{},placement:{},arrow:{type:Boolean},mode:{}},emits:["emit:open","emit:close"],setup(r,{expose:n,emit:t}){const o=r,a=t,l=e.ref(),i=e.ref(),m=()=>{l.value?.hidePopover()},c=()=>{l.value?.showPopover()},d=()=>{const u=l.value;if(!o.anchor||!u)return;const k={width:document.documentElement.clientWidth,height:document.documentElement.clientHeight},_=Z(o.anchor.getBoundingClientRect(),u.getBoundingClientRect(),k,{placement:o.placement,offset:o.arrow?Y+st:Y,margin:dt,arrowMargin:ct});i.value=_.side,u.style.top=`${_.top}px`,u.style.left=`${_.left}px`,u.style.setProperty("--dwui-offset-arrow",`${_.arrow}px`),u.style.visibility="visible"},v=u=>{l.value?.contains(u.target)||d()},p=u=>{u.newState==="open"?(d(),window.addEventListener("scroll",v,!0),window.addEventListener("resize",d),a("emit:open")):(l.value&&(l.value.style.visibility=""),window.removeEventListener("scroll",v,!0),window.removeEventListener("resize",d),a("emit:close"))};return e.onBeforeUnmount(()=>{window.removeEventListener("scroll",v,!0),window.removeEventListener("resize",d)}),n({element:l,show:c,hide:m}),(u,k)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"refPanel",ref:l,class:e.normalizeClass(["dwui-anchored-popover",{"dwui-arrow":o.arrow}]),popover:o.mode,"data-side":i.value,onToggle:p},[e.createElementVNode("div",it,[e.renderSlot(u.$slots,"default")])],42,rt))}}),ut=["aria-label"],mt=e.defineComponent({inheritAttrs:!1,__name:"help-button",props:{placement:{default:"bottom-start"},arrow:{type:Boolean,default:!1},label:{default:"Help"}},emits:["emit:open","emit:close"],setup(r,{emit:n}){const t=r,o=n,a=e.useAttrs(),l=e.ref(),i=e.ref();return e.onMounted(()=>{const m=i.value?.element;l.value&&m&&(l.value.popoverTargetElement=m)}),(m,c)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("button",e.mergeProps({ref_key:"refButton",ref:l,type:"button",class:"dwui-help-button","aria-label":t.label},e.unref(a)),[e.renderSlot(m.$slots,"icon",{},()=>[e.createVNode(e.unref(S.SvgQuestion))])],16,ut),e.createVNode(ee,{ref_key:"refPopover",ref:i,class:"dwui-help-button-popover",mode:"auto",anchor:l.value,placement:t.placement,arrow:t.arrow,"onEmit:open":c[0]||(c[0]=d=>o("emit:open")),"onEmit:close":c[1]||(c[1]=d=>o("emit:close"))},{default:e.withCtx(()=>[e.renderSlot(m.$slots,"default")]),_:3},8,["anchor","placement","arrow"])],64))}}),pt=["aria-label","aria-describedby"],ft=150,te=e.defineComponent({inheritAttrs:!1,__name:"icon-popper",props:{placement:{},arrow:{type:Boolean},popoverClass:{},label:{}},emits:["emit:open","emit:close"],setup(r,{emit:n}){const t=r,o=n,a=e.useAttrs(),l=e.ref(),i=e.ref(),m=e.ref(!1),c=e.useId();let d;const v=()=>{d!==void 0&&(clearTimeout(d),d=void 0)},p=()=>{v(),i.value?.show()},u=()=>{v(),i.value?.hide()},k=()=>{v(),d=setTimeout(()=>{d=void 0,i.value?.hide()},ft)},_=P=>{const L=P.target;!l.value?.contains(L)&&!i.value?.element?.contains(L)&&u()},y=P=>{P.pointerType!=="touch"&&p()},h=P=>{P.pointerType!=="touch"&&k()},B=P=>{P.pointerType!=="touch"&&v()},f=P=>{P.pointerType==="touch"&&(m.value?u():p())},N=()=>{p()},w=()=>{u()},x=()=>{u()},$=()=>{m.value=!0,document.addEventListener("pointerdown",_,!0),o("emit:open")},V=()=>{m.value=!1,document.removeEventListener("pointerdown",_,!0),o("emit:close")};return e.onBeforeUnmount(()=>{v(),document.removeEventListener("pointerdown",_,!0)}),(P,L)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("span",e.mergeProps({ref_key:"refTrigger",ref:l,class:"dwui-icon-popper",tabindex:"0","aria-label":t.label,"aria-describedby":e.unref(c)},e.unref(a),{onPointerenter:y,onPointerleave:h,onPointerdown:f,onFocus:N,onBlur:w,onKeydown:e.withKeys(x,["esc"])}),[e.renderSlot(P.$slots,"icon")],16,pt),e.createVNode(ee,{ref_key:"refPopover",ref:i,id:e.unref(c),class:e.normalizeClass(["dwui-icon-popper-popover",t.popoverClass]),role:"tooltip",mode:"manual",anchor:l.value,placement:t.placement,arrow:t.arrow,onPointerenter:B,onPointerleave:h,"onEmit:open":$,"onEmit:close":V},{default:e.withCtx(()=>[e.renderSlot(P.$slots,"default")]),_:3},8,["id","class","anchor","placement","arrow"])],64))}}),gt=e.defineComponent({__name:"help-popper",props:{placement:{default:"right"},arrow:{type:Boolean,default:!0},label:{default:"Help"}},emits:["emit:open","emit:close"],setup(r,{emit:n}){const t=r,o=n;return(a,l)=>(e.openBlock(),e.createBlock(te,{class:"dwui-help-popper","popover-class":"dwui-help-popper-popover",placement:t.placement,arrow:t.arrow,label:t.label,"onEmit:open":l[0]||(l[0]=i=>o("emit:open")),"onEmit:close":l[1]||(l[1]=i=>o("emit:close"))},{icon:e.withCtx(()=>[e.renderSlot(a.$slots,"icon",{},()=>[e.createVNode(e.unref(S.SvgQuestion))])]),default:e.withCtx(()=>[e.renderSlot(a.$slots,"default")]),_:3},8,["placement","arrow","label"]))}}),vt=e.defineComponent({__name:"hourglass-loading",props:{loading:{type:Boolean},duration:{},size:{default:"1.2em"}},setup(r){const n=r;return(t,o)=>n.loading?(e.openBlock(),e.createBlock(e.unref(S.SvgHourglass),{key:0,duration:n.duration,size:n.size,class:"dwui-hourglass-loading"},null,8,["duration","size"])):e.renderSlot(t.$slots,"default",{},void 0,void 0,1)}}),ht=e.defineComponent({__name:"intersection-lazy-component",props:{root:{},rootMargin:{},threshold:{}},emits:["emit:visible"],setup(r,{emit:n}){const t=r,o=n,a=e.ref(),l=e.ref(!1);let i;const m=()=>{i?.disconnect(),i=void 0,!(!a.value||l.value)&&(i=new IntersectionObserver(c=>{c.some(d=>d.isIntersecting)&&(l.value=!0,i?.disconnect(),i=void 0,o("emit:visible"))},{root:t.root,rootMargin:t.rootMargin,threshold:t.threshold}),i.observe(a.value))};return e.onMounted(()=>{m()}),e.onBeforeUnmount(()=>{i?.disconnect()}),e.watch(()=>[t.root,t.rootMargin,t.threshold],()=>{m()},{flush:"post"}),(c,d)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"refTarget",ref:a,class:"dwui-intersection-lazy-component"},[l.value?e.renderSlot(c.$slots,"default",{},void 0,void 0,0):e.renderSlot(c.$slots,"placeholder",{},void 0,void 0,1)],512))}}),bt={type:"button",class:"dwui-label-button"},wt=e.defineComponent({__name:"label-button",props:{preset:{},gap:{},iconClass:{type:[Boolean,null,String,Object,Array]},iconStyle:{type:[Boolean,null,String,Object,Array]},labelClass:{type:[Boolean,null,String,Object,Array]},labelStyle:{type:[Boolean,null,String,Object,Array]}},setup(r){const n=r,t=e.useSlots();return(o,a)=>(e.openBlock(),e.createElementBlock("button",bt,[e.createVNode(D,{preset:n.preset,gap:n.gap,"icon-class":n.iconClass,"icon-style":n.iconStyle,"label-class":n.labelClass,"label-style":n.labelStyle},e.createSlots({_:2},[t.icon!=null?{name:"icon",fn:e.withCtx(()=>[e.renderSlot(o.$slots,"icon")]),key:"0"}:void 0,t.default!=null?{name:"default",fn:e.withCtx(()=>[e.renderSlot(o.$slots,"default")]),key:"1"}:void 0]),1032,["preset","gap","icon-class","icon-style","label-class","label-style"])]))}}),yt=["aria-labelledby","aria-describedby"],kt={class:"dwui-modal-dialog-header"},Bt={class:"dwui-modal-dialog-icon"},_t=["id","innerHTML"],St=["id"],Ct=["id"],$t=["innerHTML"],Et={key:1},Nt={key:0,class:"dwui-modal-dialog-images"},xt=["src","alt"],Pt=["onClick"],Vt=e.defineComponent({__name:"modal-dialog",props:e.mergeModels({type:{default:"info"},title:{default:void 0},message:{default:void 0},html:{type:Boolean,default:!1},image:{default:void 0},buttons:{default:void 0},okLabel:{default:"OK"},yesLabel:{default:"Yes"},noLabel:{default:"No"},cancelLabel:{default:"Cancel"}},{open:{type:Boolean,default:!1},openModifiers:{}}),emits:e.mergeModels(["emit:close"],["update:open"]),setup(r,{emit:n}){const t=r,o=n,a=e.useModel(r,"open"),l=e.ref(),i=e.ref(),m=e.useId(),c=e.useId(),d={info:S.SvgInfo,confirm:S.SvgQuestion,warn:S.SvgWarningSign,error:S.SvgCritical},v=["cancel","no","yes","ok"],p=e.computed(()=>t.buttons??(t.type==="confirm"?["yes","no"]:["ok"])),u=e.computed(()=>({ok:t.okLabel,yes:t.yesLabel,no:t.noLabel,cancel:t.cancelLabel})),k=e.computed(()=>t.message==null?[]:[t.message].flat()),_=e.computed(()=>[t.image??[]].flat().map(w=>typeof w=="string"?{src:w,alt:""}:w)),y=w=>{N(w)},h=w=>{w.preventDefault(),N("cancel")},B=w=>{if(w.key!=="ArrowLeft"&&w.key!=="ArrowRight")return;const x=[...i.value?.children??[]],$=x.indexOf(document.activeElement);$<0||x[w.key==="ArrowRight"?$+1:$-1]?.focus()},f=()=>{l.value?.showModal();const w=v.find($=>p.value.includes($)),x=w?p.value.indexOf(w):-1;i.value?.children[x]?.focus()},N=w=>{l.value?.close(),a.value=!1,o("emit:close",w)};return e.onMounted(()=>{a.value&&f()}),e.watch(a,w=>{w?f():l.value?.close()},{flush:"post"}),(w,x)=>(e.openBlock(),e.createElementBlock("dialog",{ref_key:"refDialog",ref:l,class:e.normalizeClass(["dwui-modal-dialog",`dwui-modal-dialog-${t.type}`]),"aria-labelledby":t.title?e.unref(m):void 0,"aria-describedby":e.unref(c),onCancel:h,onKeydown:B},[e.createElementVNode("div",kt,[e.createElementVNode("span",Bt,[e.renderSlot(w.$slots,"icon",{},()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(d[t.type])))])]),t.title?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[t.html?(e.openBlock(),e.createElementBlock("span",{key:0,id:e.unref(m),class:"dwui-modal-dialog-title",innerHTML:t.title},null,8,_t)):(e.openBlock(),e.createElementBlock("span",{key:1,id:e.unref(m),class:"dwui-modal-dialog-title"},e.toDisplayString(t.title),9,St))],64)):e.createCommentVNode("",!0)]),e.createElementVNode("div",{id:e.unref(c),class:"dwui-modal-dialog-body"},[e.renderSlot(w.$slots,"default",{},()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(k.value,($,V)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:V},[t.html?(e.openBlock(),e.createElementBlock("p",{key:0,innerHTML:$},null,8,$t)):(e.openBlock(),e.createElementBlock("p",Et,e.toDisplayString($),1))],64))),128)),_.value.length?(e.openBlock(),e.createElementBlock("div",Nt,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(_.value,($,V)=>(e.openBlock(),e.createElementBlock("img",{key:V,src:$.src,alt:$.alt},null,8,xt))),128))])):e.createCommentVNode("",!0)])],8,Ct),e.createElementVNode("div",{ref_key:"refButtons",ref:i,class:"dwui-modal-dialog-buttons"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(p.value,$=>(e.openBlock(),e.createElementBlock("button",{key:$,type:"button",class:e.normalizeClass(["dwui-modal-dialog-button",`dwui-modal-dialog-button-${$}`]),onClick:V=>y($)},e.toDisplayString(u.value[$]),11,Pt))),128))],512)],42,yt))}});function Lt(r){const n=r.minWidth??20,t=r.minHeight??20,o=e.ref(!1),a=e.ref(!1),l=e.reactive({x:0,y:0}),i=e.reactive({width:-1,height:-1});let m=null,c="bottom-right",d={x:0,y:0};const v=f=>{if(f.pointerId!==m)return;f.preventDefault();const N=f.clientX-d.x,w=f.clientY-d.y;if(d={x:f.clientX,y:f.clientY},o.value)l.x+=N,l.y+=w;else if(a.value){if(c.endsWith("left")){const x=Math.max(n,i.width-N);l.x+=i.width-x,i.width=x}else i.width=Math.max(n,i.width+N);if(c.startsWith("top")){const x=Math.max(t,i.height-w);l.y+=i.height-x,i.height=x}else i.height=Math.max(t,i.height+w)}},p=()=>{const f=r.target.value?.getBoundingClientRect().width||0;l.x<40-f&&(l.x=40-f),window.innerWidth-40<l.x&&(l.x=window.innerWidth-40),l.y<0&&(l.y=0),r.clampBottom&&window.innerHeight-20<l.y&&(l.y=window.innerHeight-20)},u=f=>{if(f.pointerId!==m)return;const N=o.value;k(),N&&p()},k=()=>{document.removeEventListener("pointermove",v,!0),document.removeEventListener("pointerup",u,!0),document.removeEventListener("pointercancel",u,!0),m=null,o.value=!1,a.value=!1},_=f=>{k(),m=f.pointerId,d={x:f.clientX,y:f.clientY},document.addEventListener("pointermove",v,!0),document.addEventListener("pointerup",u,!0),document.addEventListener("pointercancel",u,!0)},y=f=>{f.isPrimary&&r.dragMode()==="body"&&(_(f),o.value=!0)},h=f=>{f.isPrimary&&r.dragMode()==="header"&&(_(f),o.value=!0)},B=(f,N="bottom-right")=>{if(!f.isPrimary)return;c=N;const w=r.target.value?.getBoundingClientRect();w&&(i.width<0&&(i.width=w.width),i.height<0&&(i.height=w.height)),_(f),a.value=!0};return e.onBeforeUnmount(k),{moving:o,resizing:a,currentPosition:l,currentRect:i,onDragStart:y,onDragHeaderStart:h,onResizeStart:B,teardown:k}}const Mt=["aria-labelledby"],Dt=["id"],Tt=["aria-label"],zt=["onPointerdown"],oe=e.defineComponent({__name:"movable-window",props:{name:{},dragMode:{},loading:{type:Boolean},closeLabel:{},clampBottom:{type:Boolean},headerClass:{type:[Boolean,null,String,Object,Array]},headerStyle:{type:[Boolean,null,String,Object,Array]}},emits:["emit:close"],setup(r,{expose:n,emit:t}){const o=r,a=t,l=e.ref(),i=e.useId(),m=["top-left","top-right","bottom-left"],c=Lt({target:l,dragMode:()=>o.dragMode,clampBottom:o.clampBottom}),d=e.computed(()=>{const{currentPosition:v,currentRect:p}=c;return{top:`${v.y}px`,left:`${v.x}px`,width:0<=p.width?`${p.width}px`:void 0,height:0<=p.height?`${p.height}px`:void 0}});return n({element:l,position:c.currentPosition,size:c.currentRect,teardown:c.teardown}),(v,p)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"refWindow",ref:l,class:"dwui-movable-window",role:"dialog","aria-labelledby":e.unref(i),style:e.normalizeStyle(d.value)},[e.createElementVNode("div",{class:"dwui-movable-window-frame",onPointerdown:p[2]||(p[2]=(...u)=>e.unref(c).onDragStart&&e.unref(c).onDragStart(...u))},[e.createElementVNode("div",{class:e.normalizeClass(["dwui-movable-window-header",[`${o.name}-header`,o.headerClass,{"dwui-movable":o.dragMode}]]),style:e.normalizeStyle(o.headerStyle),onPointerdown:p[1]||(p[1]=(...u)=>e.unref(c).onDragHeaderStart&&e.unref(c).onDragHeaderStart(...u))},[e.createElementVNode("div",{id:e.unref(i),class:e.normalizeClass(["dwui-movable-window-title",`${o.name}-title`])},[e.renderSlot(v.$slots,"title")],10,Dt),e.renderSlot(v.$slots,"actions"),e.createElementVNode("button",{type:"button",class:e.normalizeClass(["dwui-movable-window-close-button",`${o.name}-close-button`]),"aria-label":o.closeLabel,onClick:p[0]||(p[0]=u=>a("emit:close"))},[e.createVNode(e.unref(S.SvgNegativeSquaredCrossMark))],10,Tt)],38),e.createElementVNode("div",{class:e.normalizeClass(["dwui-movable-window-body",[`${o.name}-body`,{"dwui-movable":o.dragMode==="body"}]])},[e.renderSlot(v.$slots,"default")],2)],32),o.loading?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["dwui-movable-window-loading",`${o.name}-loading`])},[e.createElementVNode("div",{class:e.normalizeClass(["dwui-movable-window-spinner",`${o.name}-spinner`])},null,2)],2)):e.createCommentVNode("",!0),(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(m,u=>e.createElementVNode("div",{key:u,class:e.normalizeClass(["dwui-movable-window-corner",[`${o.name}-corner`,`dwui-${u}`]]),onPointerdown:e.withModifiers(k=>e.unref(c).onResizeStart(k,u),["prevent"])},null,42,zt)),64)),e.createElementVNode("div",{class:e.normalizeClass(["dwui-movable-window-resizer",`${o.name}-resizer`]),onPointerdown:p[3]||(p[3]=e.withModifiers(u=>e.unref(c).onResizeStart(u,"bottom-right"),["prevent"]))},[e.createVNode(e.unref(S.SvgCornerDiagonal),{direction:"bottom-right"})],34)],12,Mt))}}),z=[];let Q=0;const ne=()=>(Q+=1,Q),At=e.defineComponent({__name:"overlay-box",props:e.mergeModels({title:{default:void 0},dragMode:{default:void 0},closeOnBackdrop:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},closeLabel:{default:"Close"}},{open:{type:Boolean,default:!1},openModifiers:{}}),emits:e.mergeModels(["emit:close"],["update:open"]),setup(r,{emit:n}){const t=r,o=n,a=e.useModel(r,"open"),l=e.ref(),i=e.ref(0),m=Symbol("dwui-overlay-box");let c=null;const d=()=>{t.closeOnBackdrop&&(a.value=!1)},v=()=>{a.value=!1},p=h=>{h.key!=="Escape"||!h.isTrusted||h.isComposing||h.target instanceof Element&&h.target.closest("dialog")||z.at(-1)===m&&(a.value=!1)},u=()=>{o("emit:close")},k=()=>{const h=z.indexOf(m);0<=h&&z.splice(h,1)},_=()=>{i.value=ne();const h=l.value,B=h?.element?.getBoundingClientRect();h&&(h.position.x=(window.innerWidth-(B?.width||0))/2,h.position.y=Math.max(0,(window.innerHeight-(B?.height||0))/2)),c=document.activeElement instanceof HTMLElement?document.activeElement:null,h?.element?.focus(),z.push(m)},y=()=>{l.value?.teardown(),k(),c?.isConnected&&c.focus(),c=null};return e.onMounted(()=>{a.value&&_()}),e.onBeforeUnmount(()=>{k()}),e.watch(a,h=>{h?_():y()},{flush:"post"}),(h,B)=>(e.openBlock(),e.createBlock(e.Transition,{name:"dwui-overlay-box-fade",onAfterLeave:u},{default:e.withCtx(()=>[a.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:"dwui-overlay-box",style:e.normalizeStyle({"--dwui-order-window":i.value})},[e.createElementVNode("div",{class:"dwui-overlay-box-backdrop",onClick:d}),e.createVNode(oe,{ref_key:"refWindow",ref:l,class:"dwui-overlay-box-container",name:"dwui-overlay-box",tabindex:"-1","drag-mode":t.dragMode,loading:t.loading,"close-label":t.closeLabel,"clamp-bottom":"",onKeydown:p,"onEmit:close":v},{title:e.withCtx(()=>[e.renderSlot(h.$slots,"title",{},()=>[e.createTextVNode(e.toDisplayString(t.title),1)])]),default:e.withCtx(()=>[e.renderSlot(h.$slots,"default")]),_:3},8,["drag-mode","loading","close-label"])],4)):e.createCommentVNode("",!0)]),_:3}))}}),It={class:"dwui-page-section"},Ot={class:"dwui-page-section-content"},Ht=e.defineComponent({__name:"page-section",props:{title:{},icon:{default:"diamond"},iconVariant:{},iconColor:{},titleClass:{type:[Boolean,null,String,Object,Array]},titleStyle:{type:[Boolean,null,String,Object,Array]}},setup(r){const n=r,t={diamond:{component:S.SvgDiamond,shape:!0,color:"#1a44b6"},circle:{component:S.SvgCircle,shape:!0,color:"#e78b2f"},square:{component:S.SvgSquare,shape:!0,color:"#d13a2b"},pushpin:{component:S.SvgPushpin,shape:!1},"round-pushpin":{component:S.SvgRoundPushpin,shape:!1}},o=e.computed(()=>{const a=t[n.icon];return{component:a.component,props:a.shape?{variant:n.iconVariant,color:n.iconColor??a.color}:{}}});return(a,l)=>(e.openBlock(),e.createElementBlock("section",It,[n.title!=null?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["dwui-page-section-title",n.titleClass]),style:e.normalizeStyle(n.titleStyle)},[e.createVNode(D,null,{icon:e.withCtx(()=>[e.renderSlot(a.$slots,"icon",{},()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(o.value.component),e.normalizeProps(e.guardReactiveProps(o.value.props)),null,16))])]),default:e.withCtx(()=>[e.createTextVNode(" "+e.toDisplayString(n.title),1)]),_:3})],6)):e.createCommentVNode("",!0),e.createElementVNode("div",Ot,[e.renderSlot(a.$slots,"default")])]))}}),Rt={class:"dwui-page-title"},Ft={key:0,class:"dwui-page-title-actions"},Wt=e.defineComponent({__name:"page-title",props:{title:{}},setup(r){const n=r,t=e.useSlots();return(o,a)=>(e.openBlock(),e.createElementBlock("section",Rt,[e.createVNode(D,{class:"dwui-page-title-label"},e.createSlots({default:e.withCtx(()=>[e.createTextVNode(" "+e.toDisplayString(n.title),1)]),_:2},[t.icon!=null?{name:"icon",fn:e.withCtx(()=>[e.renderSlot(o.$slots,"icon")]),key:"0"}:void 0]),1024),t.default!=null?(e.openBlock(),e.createElementBlock("span",Ft,[e.renderSlot(o.$slots,"default")])):e.createCommentVNode("",!0)]))}}),jt=e.defineComponent({__name:"screen-loading",props:{loading:{type:Boolean}},setup(r){const n=r,t=e.ref(null),o=()=>{const l=t.value;l&&!l.open&&l.showModal()},a=()=>{const l=t.value;l?.open&&l.close()};return e.onMounted(()=>{n.loading&&o()}),e.onBeforeUnmount(()=>{a()}),e.watch(()=>n.loading,l=>{l?o():a()},{flush:"post"}),(l,i)=>(e.openBlock(),e.createElementBlock("dialog",{ref_key:"refDialog",ref:t,class:"dwui-screen-loading",closedby:"none",onCancel:i[0]||(i[0]=e.withModifiers(()=>{},["prevent"]))},[...i[1]||(i[1]=[e.createElementVNode("div",{class:"dwui-screen-loading-spinner"},null,-1)])],544))}}),le=Symbol("dwui-tab-group"),Kt=["id","aria-labelledby","aria-busy","hidden"],Ut={key:0,class:"dwui-tab-loading"},Gt={key:1,class:"dwui-tab-loading-spinner"},ae=e.defineComponent({__name:"tab-content",props:{tabId:{},label:{},disabled:{type:Boolean},status:{},headerClass:{type:[Boolean,null,String,Object,Array]},headerStyle:{type:[Boolean,null,String,Object,Array]}},setup(r){const n=r,t=e.inject(le,void 0),o=e.ref(!1),a=()=>t?.loadingSlot(),l=e.computed(()=>t?.activeTabId.value===n.tabId),i=e.computed(()=>!!t?.mounted.value&&l.value),m=c=>{o.value=c};return(c,d)=>n.disabled?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",{key:0,id:e.unref(t)?`${e.unref(t).groupName}-${n.tabId}-panel`:void 0,class:"dwui-tab-content",role:"tabpanel","aria-labelledby":e.unref(t)?`${e.unref(t).groupName}-${n.tabId}`:void 0,"aria-busy":o.value?"true":void 0,hidden:!l.value},[e.renderSlot(c.$slots,"default",{activated:i.value,setLoading:m}),o.value?(e.openBlock(),e.createElementBlock("div",Ut,[a()!=null?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(a()),{key:0})):(e.openBlock(),e.createElementBlock("span",Gt))])):e.createCommentVNode("",!0)],8,Kt))}}),Xt={class:"dwui-tab-group"},qt=["id","name","disabled","checked","aria-selected","aria-controls","onChange"],Yt=["for"],Qt={class:"dwui-tab-items"},Jt=e.defineComponent({__name:"tab-group",props:e.mergeModels({tabGroupName:{},selectFirstEnabled:{type:Boolean},headerClass:{type:[Boolean,null,String,Object,Array]},headerStyle:{type:[Boolean,null,String,Object,Array]},teleport:{}},{selectedTabId:{},selectedTabIdModifiers:{}}),emits:["update:selectedTabId"],setup(r){const n=r,t=e.useModel(r,"selectedTabId"),o=e.useSlots(),a=n.tabGroupName??e.useId(),l=v=>{if(v.type!==ae)return;const p=v.props??{},u=p.disabled;return{tabId:String(p["tab-id"]??p.tabId),label:p.label,disabled:u===""||!!u,status:p.status,headerClass:p["header-class"]??p.headerClass,headerStyle:p["header-style"]??p.headerStyle,icon:v.children?.icon}},i=e.computed(()=>{const v=[];for(const p of o.default?.()??[]){const u=Array.isArray(p.children)?p.children:[p];for(const k of u){const _=l(k);_&&v.push(_)}}return v}),m=e.computed(()=>t.value!=null?t.value:(n.selectFirstEnabled?i.value.find(p=>!p.disabled):i.value[0])?.tabId),c=e.ref(!1);e.provide(le,{groupName:a,activeTabId:m,mounted:c,loadingSlot:()=>o.loading}),e.onMounted(()=>{c.value=!0});const d=v=>{t.value=v};return(v,p)=>(e.openBlock(),e.createElementBlock("div",Xt,[(e.openBlock(),e.createBlock(e.Teleport,{to:n.teleport??"body",disabled:n.teleport==null},[e.createElementVNode("div",{class:e.normalizeClass(["dwui-tab-headers",n.headerClass]),role:"tablist",style:e.normalizeStyle(n.headerStyle)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,u=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:u.tabId},[e.createElementVNode("input",{id:`${e.unref(a)}-${u.tabId}`,type:"radio",class:"dwui-tab-radio",role:"tab",name:e.unref(a),disabled:u.disabled,checked:u.tabId===m.value,"aria-selected":u.tabId===m.value?"true":"false","aria-controls":`${e.unref(a)}-${u.tabId}-panel`,onChange:k=>d(u.tabId)},null,40,qt),e.createElementVNode("label",{for:`${e.unref(a)}-${u.tabId}`,class:e.normalizeClass(["dwui-tab-item",[u.status!=null?`dwui-tab-${u.status}`:void 0,u.headerClass]]),style:e.normalizeStyle(u.headerStyle)},[e.createVNode(D,null,e.createSlots({default:e.withCtx(()=>[e.createTextVNode(" "+e.toDisplayString(u.label),1)]),_:2},[u.icon!=null?{name:"icon",fn:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(u.icon)))]),key:"0"}:void 0]),1024)],14,Yt)],64))),128))],6)],8,["to","disabled"])),e.createElementVNode("div",Qt,[e.renderSlot(v.$slots,"default")])]))}}),Zt=e.defineComponent({__name:"warning-popper",props:{placement:{default:"right"},arrow:{type:Boolean,default:!0},label:{default:"Warning"}},emits:["emit:open","emit:close"],setup(r,{emit:n}){const t=r,o=n;return(a,l)=>(e.openBlock(),e.createBlock(te,{class:"dwui-warning-popper","popover-class":"dwui-warning-popper-popover",placement:t.placement,arrow:t.arrow,label:t.label,"onEmit:open":l[0]||(l[0]=i=>o("emit:open")),"onEmit:close":l[1]||(l[1]=i=>o("emit:close"))},{icon:e.withCtx(()=>[e.renderSlot(a.$slots,"icon",{},()=>[e.createVNode(e.unref(S.SvgWarningSign))])]),default:e.withCtx(()=>[e.renderSlot(a.$slots,"default")]),_:3},8,["placement","arrow","label"]))}});exports._sfc_main=oe;exports._sfc_main$1=Be;exports._sfc_main$10=gt;exports._sfc_main$11=vt;exports._sfc_main$12=ht;exports._sfc_main$13=wt;exports._sfc_main$14=D;exports._sfc_main$15=Ht;exports._sfc_main$16=Wt;exports._sfc_main$17=ae;exports._sfc_main$18=Jt;exports._sfc_main$19=Zt;exports._sfc_main$2=Vt;exports._sfc_main$3=At;exports._sfc_main$4=jt;exports._sfc_main$5=ve;exports._sfc_main$6=ye;exports._sfc_main$7=Ee;exports._sfc_main$8=at;exports._sfc_main$9=mt;exports.computeAnchoredPosition=Z;exports.getValueByPath=R;exports.nextWindowOrder=ne;exports.resolveLabel=F;