@digitalwalletcorp/vue-core 1.4.6 → 1.4.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -0
- package/lib/components-CHD1xxHL.js +28 -0
- package/lib/components-CJJFfT_A.cjs +1 -0
- package/lib/components.d.cts +2 -0
- package/lib/components.d.ts +2 -0
- package/lib/diff-text.d.cts +11 -0
- package/lib/diff-text.d.ts +11 -0
- package/lib/highlight-text.d.cts +11 -0
- package/lib/highlight-text.d.ts +11 -0
- package/lib/index.cjs +1 -1
- package/lib/index.d.cts +2 -0
- package/lib/index.d.ts +2 -0
- package/lib/index.js +51 -49
- package/lib/nuxt.cjs +1 -1
- package/lib/nuxt.js +1 -1
- package/lib/register.cjs +1 -1
- package/lib/register.js +1 -1
- package/lib/style.css +1 -1
- package/lib/warning-popper.vue_vue_type_style_index_0_lang-CP4D0WRP.cjs +4 -0
- package/lib/{warning-popper.vue_vue_type_style_index_0_lang-DuzeuEx2.js → warning-popper.vue_vue_type_style_index_0_lang-CuqNSPPH.js} +650 -601
- package/package.json +4 -1
- package/src/components.ts +2 -0
- package/src/data-table.vue +5 -5
- package/src/diff-text.vue +48 -0
- package/src/highlight-text.vue +51 -0
- package/src/index.ts +2 -0
- package/src/screen-loading.vue +1 -1
- package/src/tab-content.vue +5 -5
- package/lib/components-Dniui6mw.cjs +0 -1
- package/lib/components-gKR_xoi-.js +0 -26
- package/lib/warning-popper.vue_vue_type_style_index_0_lang-BxdfpRXg.cjs +0 -4
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@digitalwalletcorp/vue-core",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.8",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Basic UI components for Vue 3",
|
|
6
6
|
"main": "lib/index.cjs",
|
|
@@ -75,6 +75,9 @@
|
|
|
75
75
|
"lib/**/*",
|
|
76
76
|
"src/**/*"
|
|
77
77
|
],
|
|
78
|
+
"dependencies": {
|
|
79
|
+
"diff": "^8.0.2"
|
|
80
|
+
},
|
|
78
81
|
"peerDependencies": {
|
|
79
82
|
"@digitalwalletcorp/vue-svg-icons": "^1.15.3",
|
|
80
83
|
"@nuxt/kit": "^3.17.5",
|
package/src/components.ts
CHANGED
|
@@ -4,8 +4,10 @@ export { default as AccordionSection } from '@/accordion-section.vue';
|
|
|
4
4
|
export { default as CopyButton } from '@/copy-button.vue';
|
|
5
5
|
export { default as DarkModeSelector } from '@/dark-mode-selector.vue';
|
|
6
6
|
export { default as DataTable } from '@/data-table.vue';
|
|
7
|
+
export { default as DiffText } from '@/diff-text.vue';
|
|
7
8
|
export { default as HelpButton } from '@/help-button.vue';
|
|
8
9
|
export { default as HelpPopper } from '@/help-popper.vue';
|
|
10
|
+
export { default as HighlightText } from '@/highlight-text.vue';
|
|
9
11
|
export { default as HourglassLoading } from '@/hourglass-loading.vue';
|
|
10
12
|
export { default as IntersectionLazyComponent } from '@/intersection-lazy-component.vue';
|
|
11
13
|
export { default as LabelButton } from '@/label-button.vue';
|
package/src/data-table.vue
CHANGED
|
@@ -767,14 +767,14 @@ defineExpose({
|
|
|
767
767
|
display: flex;
|
|
768
768
|
align-items: center;
|
|
769
769
|
justify-content: center;
|
|
770
|
-
background: var(--dwui-overlay-color-loading, light-dark(rgba(0, 0, 0, 0.25), rgba(0, 0, 0, 0.45)));
|
|
770
|
+
background: var(--dwui-overlay-color-data-table-loading, light-dark(rgba(0, 0, 0, 0.25), rgba(0, 0, 0, 0.45)));
|
|
771
771
|
}
|
|
772
772
|
|
|
773
773
|
:where(.dwui-data-table-loading-spinner) {
|
|
774
|
-
width: var(--dwui-size-loading-spinner, 40px);
|
|
775
|
-
height: var(--dwui-size-loading-spinner, 40px);
|
|
776
|
-
border: 4px solid var(--dwui-border-color-loading-spinner, rgba(255, 255, 255, 0.4));
|
|
777
|
-
border-top-color: var(--dwui-border-color-loading-spinner-accent, #ffffff);
|
|
774
|
+
width: var(--dwui-size-data-table-loading-spinner, 40px);
|
|
775
|
+
height: var(--dwui-size-data-table-loading-spinner, 40px);
|
|
776
|
+
border: var(--dwui-border-width-data-table-loading-spinner, 4px) solid var(--dwui-border-color-data-table-loading-spinner, rgba(255, 255, 255, 0.4));
|
|
777
|
+
border-top-color: var(--dwui-border-color-data-table-loading-spinner-accent, #ffffff);
|
|
778
778
|
border-radius: 50%;
|
|
779
779
|
animation: dwui-data-table-loading-spin 0.8s linear infinite;
|
|
780
780
|
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
2つの文字列を1文字ずつ比較し、追加・削除・一致の部分を色分けして表示する
|
|
3
|
+
-->
|
|
4
|
+
<template>
|
|
5
|
+
<span class="dwui-diff-text">
|
|
6
|
+
<!-- 開始タグと文字の間で改行すると、文字の前後に空白が入って差分の表示が崩れるため v-text で描画する -->
|
|
7
|
+
<span
|
|
8
|
+
v-for="(segment, i) in segments"
|
|
9
|
+
:key="i"
|
|
10
|
+
:class="`dwui-diff-text-${segment.type}`"
|
|
11
|
+
v-text="segment.value"
|
|
12
|
+
/>
|
|
13
|
+
</span>
|
|
14
|
+
</template>
|
|
15
|
+
|
|
16
|
+
<script setup lang="ts">
|
|
17
|
+
import { computed } from 'vue';
|
|
18
|
+
import { diffChars } from 'diff';
|
|
19
|
+
|
|
20
|
+
export interface Props {
|
|
21
|
+
/** 比較の元にする文字列。null, undefined は空文字として扱う */
|
|
22
|
+
before?: string | null;
|
|
23
|
+
/** 比較する文字列。null, undefined は空文字として扱う */
|
|
24
|
+
after?: string | null;
|
|
25
|
+
/** true の場合、大文字小文字を区別せずに比較する デフォルト false */
|
|
26
|
+
ignoreCase?: boolean;
|
|
27
|
+
}
|
|
28
|
+
const props = defineProps<Props>();
|
|
29
|
+
|
|
30
|
+
const segments = computed(() => diffChars(props.before ?? '', props.after ?? '', { ignoreCase: props.ignoreCase }).map(change => ({
|
|
31
|
+
type: change.added ? 'added' : change.removed ? 'removed' : 'same',
|
|
32
|
+
value: change.value
|
|
33
|
+
})));
|
|
34
|
+
</script>
|
|
35
|
+
|
|
36
|
+
<style>
|
|
37
|
+
:where(.dwui-diff-text > .dwui-diff-text-added) {
|
|
38
|
+
color: var(--dwui-color-text-diff-added, light-dark(#006400, rgb(121, 227, 121)));
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
:where(.dwui-diff-text > .dwui-diff-text-removed) {
|
|
42
|
+
color: var(--dwui-color-text-diff-removed, light-dark(#ff0000, rgb(222, 109, 109)));
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
:where(.dwui-diff-text > .dwui-diff-text-same) {
|
|
46
|
+
color: var(--dwui-color-text-diff-same, light-dark(#838383, #808080));
|
|
47
|
+
}
|
|
48
|
+
</style>
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
文字列の中で語に一致した部分を mark タグで強調して表示する
|
|
3
|
+
-->
|
|
4
|
+
<template>
|
|
5
|
+
<span class="dwui-highlight-text">
|
|
6
|
+
<template
|
|
7
|
+
v-for="(part, i) in parts"
|
|
8
|
+
:key="i"
|
|
9
|
+
>
|
|
10
|
+
<mark v-if="part.match">{{ part.text }}</mark>
|
|
11
|
+
<template v-else>{{ part.text }}</template>
|
|
12
|
+
</template>
|
|
13
|
+
</span>
|
|
14
|
+
</template>
|
|
15
|
+
|
|
16
|
+
<script setup lang="ts">
|
|
17
|
+
import { computed } from 'vue';
|
|
18
|
+
|
|
19
|
+
export interface Props {
|
|
20
|
+
/** 表示する文字列 */
|
|
21
|
+
text?: string | null;
|
|
22
|
+
/** 強調する語。一致した部分をすべて強調する。空の場合は text をそのまま表示する */
|
|
23
|
+
word?: string | null;
|
|
24
|
+
/** true の場合、大文字小文字を区別しない デフォルト false */
|
|
25
|
+
ignoreCase?: boolean;
|
|
26
|
+
}
|
|
27
|
+
const props = defineProps<Props>();
|
|
28
|
+
|
|
29
|
+
const parts = computed(() => {
|
|
30
|
+
const text = props.text ?? '';
|
|
31
|
+
if (!props.word) {
|
|
32
|
+
return [{ text, match: false }];
|
|
33
|
+
}
|
|
34
|
+
// 語に含まれる正規表現の記号は文字として扱う
|
|
35
|
+
const pattern = props.word.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
36
|
+
// キャプチャグループで分割すると、奇数番目の要素が一致した部分になる
|
|
37
|
+
return text
|
|
38
|
+
.split(new RegExp(`(${pattern})`, props.ignoreCase ? 'i' : ''))
|
|
39
|
+
.map((part, i) => ({
|
|
40
|
+
text: part,
|
|
41
|
+
match: i % 2 === 1
|
|
42
|
+
}));
|
|
43
|
+
});
|
|
44
|
+
</script>
|
|
45
|
+
|
|
46
|
+
<style>
|
|
47
|
+
:where(.dwui-highlight-text > mark) {
|
|
48
|
+
background: var(--dwui-background-highlight, Mark);
|
|
49
|
+
color: var(--dwui-color-text-highlight, MarkText);
|
|
50
|
+
}
|
|
51
|
+
</style>
|
package/src/index.ts
CHANGED
|
@@ -4,8 +4,10 @@ export type { Props as AccordionSectionProps, Slots as AccordionSectionSlots } f
|
|
|
4
4
|
export type { Props as CopyButtonProps, Emits as CopyButtonEmits, Slots as CopyButtonSlots } from '@/copy-button.vue';
|
|
5
5
|
export type { Props as DataTableProps, Emits as DataTableEmits, Slots as DataTableSlots } from '@/data-table.vue';
|
|
6
6
|
export type { Props as DarkModeSelectorProps, Emits as DarkModeSelectorEmits, Slots as DarkModeSelectorSlots } from '@/dark-mode-selector.vue';
|
|
7
|
+
export type { Props as DiffTextProps } from '@/diff-text.vue';
|
|
7
8
|
export type { Props as HelpButtonProps, Emits as HelpButtonEmits, Slots as HelpButtonSlots } from '@/help-button.vue';
|
|
8
9
|
export type { Props as HelpPopperProps, Emits as HelpPopperEmits, Slots as HelpPopperSlots } from '@/help-popper.vue';
|
|
10
|
+
export type { Props as HighlightTextProps } from '@/highlight-text.vue';
|
|
9
11
|
export type { Props as HourglassLoadingProps } from '@/hourglass-loading.vue';
|
|
10
12
|
export type { Props as IntersectionLazyComponentProps, Emits as IntersectionLazyComponentEmits, Slots as IntersectionLazyComponentSlots } from '@/intersection-lazy-component.vue';
|
|
11
13
|
export type { Props as LabelButtonProps, Slots as LabelButtonSlots } from '@/label-button.vue';
|
package/src/screen-loading.vue
CHANGED
|
@@ -84,7 +84,7 @@ watch(() => props.loading, (newValue) => {
|
|
|
84
84
|
box-sizing: border-box;
|
|
85
85
|
width: var(--dwui-size-screen-loading-spinner, 100px);
|
|
86
86
|
height: var(--dwui-size-screen-loading-spinner, 100px);
|
|
87
|
-
border:
|
|
87
|
+
border: var(--dwui-border-width-screen-loading-spinner, 6px) solid var(--dwui-border-color-screen-loading-spinner, light-dark(rgba(0, 0, 0, 0.15), rgba(255, 255, 255, 0.2)));
|
|
88
88
|
border-left-color: var(--dwui-border-color-screen-loading-spinner-accent, light-dark(rgba(47, 90, 74, 0.8), rgba(140, 200, 170, 0.8)));
|
|
89
89
|
border-radius: 50%;
|
|
90
90
|
animation: dwui-screen-loading-spin 1.1s linear infinite;
|
package/src/tab-content.vue
CHANGED
|
@@ -117,14 +117,14 @@ const setLoading = (value: boolean) => {
|
|
|
117
117
|
display: flex;
|
|
118
118
|
align-items: center;
|
|
119
119
|
justify-content: center;
|
|
120
|
-
background: var(--dwui-overlay-color-loading, light-dark(rgba(0, 0, 0, 0.25), rgba(0, 0, 0, 0.45)));
|
|
120
|
+
background: var(--dwui-overlay-color-tab-loading, light-dark(rgba(0, 0, 0, 0.25), rgba(0, 0, 0, 0.45)));
|
|
121
121
|
}
|
|
122
122
|
|
|
123
123
|
:where(.dwui-tab-loading-spinner) {
|
|
124
|
-
width: var(--dwui-size-loading-spinner, 40px);
|
|
125
|
-
height: var(--dwui-size-loading-spinner, 40px);
|
|
126
|
-
border: 4px solid var(--dwui-border-color-loading-spinner, rgba(255, 255, 255, 0.4));
|
|
127
|
-
border-top-color: var(--dwui-border-color-loading-spinner-accent, #ffffff);
|
|
124
|
+
width: var(--dwui-size-tab-loading-spinner, 40px);
|
|
125
|
+
height: var(--dwui-size-tab-loading-spinner, 40px);
|
|
126
|
+
border: var(--dwui-border-width-tab-loading-spinner, 4px) solid var(--dwui-border-color-tab-loading-spinner, rgba(255, 255, 255, 0.4));
|
|
127
|
+
border-top-color: var(--dwui-border-color-tab-loading-spinner-accent, #ffffff);
|
|
128
128
|
border-radius: 50%;
|
|
129
129
|
animation: dwui-tab-loading-spin 0.8s linear infinite;
|
|
130
130
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";const n=require("./warning-popper.vue_vue_type_style_index_0_lang-BxdfpRXg.cjs"),_=Object.freeze(Object.defineProperty({__proto__:null,AccordionFieldset:n._sfc_main$4,AccordionSection:n._sfc_main$5,CopyButton:n._sfc_main$1,DarkModeSelector:n._sfc_main$6,DataTable:n._sfc_main$7,HelpButton:n._sfc_main$8,HelpPopper:n._sfc_main$9,HourglassLoading:n._sfc_main$10,IntersectionLazyComponent:n._sfc_main$11,LabelButton:n._sfc_main$12,LabelIcon:n._sfc_main$13,ModalDialog:n._sfc_main$2,OverlayBox:n._sfc_main$14,PageSection:n._sfc_main$15,PageTitle:n._sfc_main$16,ScreenLoading:n._sfc_main$3,TabContent:n._sfc_main$17,TabGroup:n._sfc_main$18,WarningPopper:n._sfc_main$19},Symbol.toStringTag,{value:"Module"}));exports.components=_;
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { e as a, f as s, a as n, g as _, h as o, i as e, j as c, k as i, l as t, o as f, p as m, b as r, q as l, r as $, s as p, d, v as g, w as b, x as u } from "./warning-popper.vue_vue_type_style_index_0_lang-DuzeuEx2.js";
|
|
2
|
-
const y = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
3
|
-
__proto__: null,
|
|
4
|
-
AccordionFieldset: a,
|
|
5
|
-
AccordionSection: s,
|
|
6
|
-
CopyButton: n,
|
|
7
|
-
DarkModeSelector: _,
|
|
8
|
-
DataTable: o,
|
|
9
|
-
HelpButton: e,
|
|
10
|
-
HelpPopper: c,
|
|
11
|
-
HourglassLoading: i,
|
|
12
|
-
IntersectionLazyComponent: t,
|
|
13
|
-
LabelButton: f,
|
|
14
|
-
LabelIcon: m,
|
|
15
|
-
ModalDialog: r,
|
|
16
|
-
OverlayBox: l,
|
|
17
|
-
PageSection: $,
|
|
18
|
-
PageTitle: p,
|
|
19
|
-
ScreenLoading: d,
|
|
20
|
-
TabContent: g,
|
|
21
|
-
TabGroup: b,
|
|
22
|
-
WarningPopper: u
|
|
23
|
-
}, Symbol.toStringTag, { value: "Module" }));
|
|
24
|
-
export {
|
|
25
|
-
y as c
|
|
26
|
-
};
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
"use strict";const e=require("vue"),S=require("@digitalwalletcorp/vue-svg-icons"),T=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(l){const o=l,t=e.useSlots();return(n,a)=>(e.openBlock(),e.createElementBlock("span",{class:"dwui-label-icon",style:e.normalizeStyle(o.gap==null?void 0:{"--dwui-gap-label-icon":o.gap})},[e.renderSlot(n.$slots,"icon",{},()=>[o.preset!=null?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(o.preset.icon),e.mergeProps({key:0},o.preset.iconProps,{class:o.iconClass,style:o.iconStyle}),null,16,["class","style"])):e.createCommentVNode("",!0)]),t.default!=null||o.preset!=null?(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(["dwui-label",o.labelClass]),style:e.normalizeStyle(o.labelStyle)},[e.renderSlot(n.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(typeof o.preset?.label=="function"?o.preset.label():o.preset?.label),1)])],6)):e.createCommentVNode("",!0)],4))}}),Le=70;function re(l){const o=e.ref(!0);let t;return e.onMounted(()=>{const n=l.value;n!=null&&(t=new ResizeObserver(()=>{o.value=Le<=n.scrollHeight}),t.observe(n))}),e.onBeforeUnmount(()=>{t?.disconnect()}),o}const Te=["disabled"],Me={class:"dwui-accordion-legend"},De=["aria-expanded"],ze=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(l){const o=l,t=e.useSlots(),n=e.ref(),a=e.useModel(l,"expanded"),r=e.ref(!!o.initialExpand),s=e.computed({get:()=>a.value??r.value,set:c=>{r.value=c,a.value=c}}),m=re(n),i=()=>{s.value=!s.value};return(c,g)=>(e.openBlock(),e.createElementBlock("fieldset",{class:"dwui-accordion-fieldset",disabled:o.disabled},[e.createElementVNode("legend",Me,[e.createElementVNode("button",{type:"button",class:"dwui-accordion-toggle","aria-expanded":s.value,onClick:i},[e.createVNode(e.unref(S.SvgTriangleButton),{direction:s.value?"up":"down"},null,8,["direction"]),o.legend!=null||t.legend!=null||t.icon!=null?(e.openBlock(),e.createBlock(T,{key:0},e.createSlots({_:2},[t.icon!=null?{name:"icon",fn:e.withCtx(()=>[e.renderSlot(c.$slots,"icon")]),key:"0"}:void 0,o.legend!=null||t.legend!=null?{name:"default",fn:e.withCtx(()=>[e.renderSlot(c.$slots,"legend",{},()=>[e.createTextVNode(e.toDisplayString(o.legend),1)])]),key:"1"}:void 0]),1024)):e.createCommentVNode("",!0)],8,De)]),e.createElementVNode("div",{ref_key:"refContents",ref:n,class:e.normalizeClass(["dwui-accordion-contents",e.unref(m)?s.value?"dwui-expanded":"dwui-shrunk":""])},[e.renderSlot(c.$slots,"default")],2)],8,Te))}}),Ae={class:"dwui-accordion-section"},Oe={key:0,class:"dwui-accordion-section-control"},Ie=["disabled","aria-expanded"],He=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(l){const o=l,t=e.useSlots(),n=e.ref(),a=e.useModel(l,"expanded"),r=e.ref(!!o.initialExpand),s=e.computed({get:()=>a.value??r.value,set:k=>{r.value=k,a.value=k}}),m=re(n),i=e.computed(()=>s.value?o.collapsePreset:o.expandPreset),c=()=>(s.value?t["collapse-icon"]:t["expand-icon"])??i.value?.icon,g=()=>(s.value?t["collapse-icon"]:t["expand-icon"])==null?i.value?.iconProps:void 0,f=e.computed(()=>{const k=s.value?o.collapseLabel:o.expandLabel;if(k!=null)return k;const C=i.value?.label;return typeof C=="function"?C():C}),p=()=>{s.value=!s.value};return(k,C)=>(e.openBlock(),e.createElementBlock("div",Ae,[e.createElementVNode("div",{ref_key:"refContents",ref:n,class:e.normalizeClass(["dwui-accordion-section-contents",[e.unref(m)?s.value?"dwui-expanded":"dwui-shrunk":"",{"dwui-no-gradient":o.noGradient}]])},[e.renderSlot(k.$slots,"default")],2),e.unref(m)?(e.openBlock(),e.createElementBlock("div",Oe,[e.createElementVNode("button",{type:"button",class:"dwui-accordion-section-toggle",disabled:o.disabled,"aria-expanded":s.value,onClick:e.withModifiers(p,["stop"])},[c()!=null||f.value!=null?(e.openBlock(),e.createBlock(T,{key:0},e.createSlots({_:2},[c()!=null?{name:"icon",fn:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(c()),e.normalizeProps(e.guardReactiveProps(g())),null,16))]),key:"0"}:void 0,f.value!=null?{name:"default",fn:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(f.value),1)]),key:"1"}:void 0]),1024)):(e.openBlock(),e.createBlock(e.unref(S.SvgTriangleButton),{key:1,direction:s.value?"up":"down"},null,8,["direction"]))],8,Ie)])):e.createCommentVNode("",!0)]))}}),G=Symbol("dwui-vue-core-options"),Re=["aria-label","title"],je=["title","onClick"],We={key:0,class:"dwui-snackbar-header"},Fe={key:0,class:"dwui-snackbar-title"},Ke={key:1,class:"dwui-snackbar-label"},Ue={class:"dwui-snackbar-message"},Ge={key:1,class:"dwui-snackbar-timestamp"},Xe=e.defineComponent({__name:"snackbar-container",props:{placement:{},direction:{},items:{}},emits:["emit:close","emit:clear","emit:afterLeave"],setup(l,{emit:o}){const t=l,n=o,a=e.computed(()=>{const[s,m="center"]=t.placement.split("-");return[`dwui-snackbar-container-${s}`,`dwui-snackbar-container-${m}`,`dwui-snackbar-container-${t.direction}`]}),r=e.computed(()=>t.items.filter(s=>s.clearable).at(-1)?.clearLabel);return(s,m)=>(e.openBlock(),e.createBlock(e.TransitionGroup,{tag:"div",name:"dwui-snackbar-fade",class:e.normalizeClass(["dwui-snackbar-container",a.value]),role:"status",onAfterLeave:m[1]||(m[1]=i=>n("emit:afterLeave"))},{default:e.withCtx(()=>[r.value!=null?(e.openBlock(),e.createElementBlock("button",{key:"clear",type:"button",class:"dwui-snackbar-clear-button","aria-label":r.value,title:r.value,onClick:m[0]||(m[0]=i=>n("emit:clear"))},[e.createVNode(e.unref(S.SvgWastebasket))],8,Re)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.items,i=>(e.openBlock(),e.createElementBlock("button",{key:i.id,type:"button",class:e.normalizeClass(["dwui-snackbar",i.class]),style:e.normalizeStyle(i.style),title:i.message,onClick:c=>n("emit:close",i.id)},[i.title||i.label?(e.openBlock(),e.createElementBlock("span",We,[i.title?(e.openBlock(),e.createElementBlock("span",Fe,e.toDisplayString(i.title),1)):e.createCommentVNode("",!0),i.label?(e.openBlock(),e.createElementBlock("span",Ke,e.toDisplayString(i.label),1)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.createElementVNode("span",Ue,e.toDisplayString(i.message),1),i.timestamp?(e.openBlock(),e.createElementBlock("span",Ge,e.toDisplayString(i.timestamp),1)):e.createCommentVNode("",!0)],14,je))),128))]),_:1},8,["class"]))}});function Ye(l,o=new Date){const t=new Intl.DateTimeFormat("en-US",{timeZone:l||"UTC",hourCycle:"h23",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",timeZoneName:"longOffset"}).formatToParts(o),n=r=>t.find(s=>s.type===r)?.value??"",a=n("timeZoneName").replace(/^GMT/,"")||"+00:00";return`${n("year")}-${n("month")}-${n("day")} ${n("hour")}:${n("minute")}:${n("second")}${a}`}const qe=50,D=new Map,F=new Map;let Z=0;const I=(l,o,t)=>{const n=l.findIndex(r=>r.id===o);if(n<0)return;l.splice(n,1);const a=F.get(o);F.delete(o),clearTimeout(a?.timer),a?.onClose?.(t)},se=l=>{const o=l.map(t=>t.id);for(let t=0;t<o.length;t++)setTimeout(()=>I(l,o[t],"clear"),qe*t)},Je=(l,o)=>{const t=`${l} ${o}`,n=D.get(t);if(n)return n;const a=document.createElement("div");document.body.appendChild(a);const r=e.shallowReactive([]);return D.set(t,r),e.render(e.h(Xe,{placement:l,direction:o,items:r,"onEmit:close":s=>I(r,s,"click"),"onEmit:clear":()=>se(r),"onEmit:afterLeave":()=>{r.length===0&&D.get(t)===r&&(D.delete(t),e.render(null,a),a.remove())}}),a),r};function ie(l,o){const{placement:t="bottom",direction:n="overlap",duration:a,clearable:r=!1,clearLabel:s="Clear all",timezone:m,onClose:i,...c}=o??{},g=m===!1?void 0:Ye(m??""),f=Je(t,n);Z+=1;const p=Z;return f.push({...c,id:p,message:l,timestamp:g,clearable:r,clearLabel:s}),F.set(p,{timer:a?setTimeout(()=>I(f,p,"duration"),a):void 0,onClose:i}),{close:()=>I(f,p,"handle")}}function Qe(){for(const l of D.values())se(l)}function ce(){if(!e.getCurrentInstance())throw new Error("useSnackbar() must be called inside setup().");const l=e.inject(G,void 0);return{showSnackbar:(o,t)=>ie(o,{...t,timezone:t?.timezone??e.toValue(l?.snackbar?.timezone)})}}const Ze=["aria-label"],et=e.defineComponent({__name:"copy-button",props:{value:{},label:{default:"Copy"},copiedMessage:{default:void 0},copiedDuration:{default:5e3}},emits:["emit:copy","emit:error"],setup(l,{emit:o}){const t=l,n=o,a=e.useSlots(),{showSnackbar:r}=ce(),s=async()=>{const m=String(typeof t.value=="function"?t.value():t.value);try{await navigator.clipboard.writeText(m)}catch(i){n("emit:error",i);return}n("emit:copy",m),t.copiedMessage&&r(t.copiedMessage,{duration:t.copiedDuration})};return(m,i)=>(e.openBlock(),e.createElementBlock("button",{type:"button",class:"dwui-copy-button","aria-label":a.default?void 0:t.label,onClick:s},[e.renderSlot(m.$slots,"default",{},()=>[e.createVNode(e.unref(S.SvgMemo))])],8,Ze))}}),tt=["aria-label","aria-checked"],ot={class:"dwui-dark-mode-selector-track"},nt={class:"dwui-dark-mode-selector-icon-light"},lt={class:"dwui-dark-mode-selector-icon-dark"},at=e.defineComponent({__name:"dark-mode-selector",props:{storageKey:{default:"dwui-color-scheme"},label:{default:"Dark mode"}},emits:["emit:change"],setup(l,{emit:o}){const t=l,n=o,a=e.ref(!1);let r=null,s=null;const m=y=>y==="light"||y==="dark",i=()=>s?.matches?"dark":"light",c=()=>{try{const y=localStorage.getItem(t.storageKey);return m(y)?y:null}catch{return null}},g=y=>{const u=document.documentElement.classList;u.remove(y==="dark"?"light":"dark"),u.add(y),a.value=y==="dark",r!==y&&(r=y,n("emit:change",y))},f=y=>{try{localStorage.setItem(t.storageKey,y)}catch{}g(y)},p=()=>{f(a.value?"light":"dark")},k=y=>{f(y.matches?"dark":"light")},C=y=>{y.key===t.storageKey&&g(m(y.newValue)?y.newValue:i())};return e.onMounted(()=>{s=window.matchMedia("(prefers-color-scheme: dark)"),g(c()??i()),s.addEventListener("change",k),window.addEventListener("storage",C)}),e.onBeforeUnmount(()=>{s?.removeEventListener("change",k),window.removeEventListener("storage",C)}),(y,u)=>(e.openBlock(),e.createElementBlock("button",{type:"button",role:"switch",class:"dwui-dark-mode-selector","aria-label":t.label,"aria-checked":a.value,onClick:p},[e.createElementVNode("span",ot,[e.createElementVNode("span",nt,[e.renderSlot(y.$slots,"icon-light",{},()=>[e.createVNode(e.unref(S.SvgHighBrightness))])]),e.createElementVNode("span",lt,[e.renderSlot(y.$slots,"icon-dark",{},()=>[e.createVNode(e.unref(S.SvgMoonPhases),{"moon-age":3.85})])])]),u[0]||(u[0]=e.createElementVNode("span",{class:"dwui-dark-mode-selector-handle"},null,-1))],8,tt))}}),rt={class:"dwui-pagination"},st={class:"dwui-pagination-list"},it=["disabled","aria-label","title"],ct=["disabled","aria-label","title"],dt=["disabled","aria-label","title"],ut=["aria-current","onClick"],mt=["disabled","aria-label","title"],pt=["disabled","aria-label","title"],ft=["disabled","aria-label","title"],vt={key:0,class:"dwui-pagination-select"},gt=["value","disabled"],bt=["value"],ht=e.defineComponent({__name:"pagination",props:{current:{},totalCount:{},limit:{},maxPagination:{},showPageSelect:{type:Boolean},labels:{}},emits:["emit:changePage"],setup(l,{emit:o}){const t=l,n=o,a=e.computed(()=>Math.ceil(t.totalCount/t.limit)),r=e.computed(()=>Math.min(Math.max(t.current,1),a.value)),s=e.ref(!1),m=e.computed(()=>a.value<1?[]:s.value?Array.from({length:a.value},(u,B)=>B+1):[r.value]),i=e.computed(()=>{if(a.value<1)return[];const u=Math.min(Math.max(r.value-Math.floor((t.maxPagination-1)/2),1),Math.max(a.value-t.maxPagination+1,1)),B=Math.min(u+t.maxPagination-1,a.value);return Array.from({length:B-u+1},(b,E)=>u+E)}),c=u=>{u!==t.current&&n("emit:changePage",u)},g=u=>{let B;u<0?B=Math.max(i.value[0]-t.maxPagination,1):B=Math.min(i.value[i.value.length-1]+t.maxPagination,a.value)-t.maxPagination+1,c(B+Math.round((t.maxPagination-1)/2))},f=u=>{c(Number(u.target.value))},p=()=>{s.value=!0},k=u=>{document.activeElement!==u.currentTarget&&(s.value=!1)},C=()=>{s.value=!0},y=()=>{s.value=!1};return(u,B)=>(e.openBlock(),e.createElementBlock("div",rt,[e.createElementVNode("ul",st,[e.createElementVNode("li",null,[e.createElementVNode("button",{type:"button",disabled:r.value<=1,"aria-label":t.labels.firstPage,title:t.labels.firstPage,onClick:B[0]||(B[0]=b=>c(1))},[e.createVNode(e.unref(S.SvgChevronDouble),{direction:"left",size:"1em","stroke-width":8})],8,it)]),e.createElementVNode("li",null,[e.createElementVNode("button",{type:"button",disabled:r.value<=1,"aria-label":t.labels.previousPage,title:t.labels.previousPage,onClick:B[1]||(B[1]=b=>c(r.value-1))},[e.createVNode(e.unref(S.SvgChevron),{direction:"left",size:"1em","stroke-width":8})],8,ct)]),e.createElementVNode("li",null,[e.createElementVNode("button",{type:"button",disabled:i.value.length===0||i.value[0]===1,"aria-label":t.labels.previousPages,title:t.labels.previousPages,onClick:B[2]||(B[2]=b=>g(-1))},[e.createVNode(e.unref(S.SvgBlackArrow),{direction:"left",size:"1em"})],8,dt)]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,b=>(e.openBlock(),e.createElementBlock("li",{key:b},[e.createElementVNode("button",{type:"button",class:e.normalizeClass(["dwui-pagination-page",{"dwui-current":b===r.value}]),"aria-current":b===r.value?"page":void 0,onClick:E=>c(b)},e.toDisplayString(b),11,ut)]))),128)),e.createElementVNode("li",null,[e.createElementVNode("button",{type:"button",disabled:i.value.length===0||i.value[i.value.length-1]===a.value,"aria-label":t.labels.nextPages,title:t.labels.nextPages,onClick:B[3]||(B[3]=b=>g(1))},[e.createVNode(e.unref(S.SvgBlackArrow),{direction:"right",size:"1em"})],8,mt)]),e.createElementVNode("li",null,[e.createElementVNode("button",{type:"button",disabled:a.value<=r.value,"aria-label":t.labels.nextPage,title:t.labels.nextPage,onClick:B[4]||(B[4]=b=>c(r.value+1))},[e.createVNode(e.unref(S.SvgChevron),{direction:"right",size:"1em","stroke-width":8})],8,pt)]),e.createElementVNode("li",null,[e.createElementVNode("button",{type:"button",disabled:a.value<=r.value,"aria-label":t.labels.lastPage,title:t.labels.lastPage,onClick:B[5]||(B[5]=b=>c(a.value))},[e.createVNode(e.unref(S.SvgChevronDouble),{direction:"right",size:"1em","stroke-width":8})],8,ft)])]),t.showPageSelect?(e.openBlock(),e.createElementBlock("label",vt,[e.createElementVNode("span",null,e.toDisplayString(t.labels.pageNumber),1),e.createElementVNode("select",{value:r.value,disabled:a.value<=1,onPointerenter:p,onPointerleave:k,onFocus:C,onBlur:y,onChange:f},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(m.value,b=>(e.openBlock(),e.createElementBlock("option",{key:b,value:b},e.toDisplayString(b)+" ("+e.toDisplayString((b-1)*t.limit+1)+" - "+e.toDisplayString(Math.min(b*t.limit,t.totalCount))+") ",9,bt))),128))],40,gt)])):e.createCommentVNode("",!0)]))}}),wt={class:"dwui-data-table-controls"},yt={class:"dwui-data-table-tools"},kt={key:0,class:"dwui-data-table-total"},Bt={class:"dwui-data-table-total-count"},Ct={key:1,class:"dwui-data-table-limit"},_t=["value","max"],St=["title","aria-label"],$t=["title","aria-label"],ee=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(l,{emit:o}){const t=l,n=o,a=new Intl.NumberFormat("en-US"),r=e.computed(()=>t.formatTotalCount?t.formatTotalCount(t.totalCount):a.format(t.totalCount)),s=m=>{const i=m.target,c=Math.min(Math.max(Math.trunc(Number(i.value))||1,1),t.maxLimit);i.value=String(c),c!==t.limit&&n("emit:changeLimit",c)};return(m,i)=>(e.openBlock(),e.createElementBlock("div",wt,[t.pagination?(e.openBlock(),e.createBlock(ht,{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":i[0]||(i[0]=c=>n("emit:changePage",c))},null,8,["current","total-count","limit","max-pagination","show-page-select","labels"])):e.createCommentVNode("",!0),e.createElementVNode("div",yt,[t.showTotal?(e.openBlock(),e.createElementBlock("span",kt,[e.createElementVNode("span",null,e.toDisplayString(t.labels.totalCount),1),e.createElementVNode("span",Bt,e.toDisplayString(r.value),1),e.createElementVNode("span",null,e.toDisplayString(t.labels.totalUnit),1)])):e.createCommentVNode("",!0),t.showLimit?(e.openBlock(),e.createElementBlock("label",Ct,[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:s},null,40,_t)])):e.createCommentVNode("",!0),t.showDownloadPage?(e.openBlock(),e.createElementBlock("button",{key:2,type:"button",title:t.labels.downloadPage,"aria-label":t.labels.downloadPage,onClick:i[1]||(i[1]=c=>n("emit:downloadPage"))},[e.createVNode(e.unref(S.SvgFolderDownload))],8,St)):e.createCommentVNode("",!0),t.showDownloadAll?(e.openBlock(),e.createElementBlock("button",{key:3,type:"button",title:t.labels.downloadAll,"aria-label":t.labels.downloadAll,onClick:i[2]||(i[2]=c=>n("emit:downloadAll"))},[e.createVNode(e.unref(S.SvgCloudDownload))],8,$t)):e.createCommentVNode("",!0)])]))}}),K=(l,o)=>{let t=l;for(const n of o.replace(/\[(\w+)\]/g,".$1").split(".")){if(t==null)return;t=t[n]}return t},U=l=>typeof l=="function"?l():l??"",te=l=>l===!0||l==="true"||l==="1"||l==="on"||l===1,oe=l=>typeof l=="number"?l:Number(String(l).replace(/[^+\-\d.]/g,"")),Et=(l,o,t)=>{if(l==null&&o==null)return 0;if(l==null)return-1;if(o==null)return 1;if(l===o)return 0;switch(t){case"boolean":return(te(l)?1:0)-(te(o)?1:0);case"number":{const n=oe(l),a=oe(o);return Number.isNaN(n)||Number.isNaN(a)?(Number.isNaN(n)?0:1)-(Number.isNaN(a)?0:1):n-a}case"object":return H(l).localeCompare(H(o));default:return String(l).localeCompare(String(o))}},H=l=>{try{return JSON.stringify(l,(o,t)=>typeof t=="bigint"?t.toString():t)??""}catch{return""}},xt="$index",de=l=>{const o=[];for(const t of l)if(t.csv===!0)o.push({header:t,column:{}});else if(Array.isArray(t.csv))for(const n of t.csv)n.disabled||o.push({header:t,column:n});return o},Nt=l=>de(l).map(({header:o,column:t})=>U(t.label??o.label)),Pt=(l,o,t)=>de(l).map(({header:n,column:a})=>{if(a.format)return a.format(o);const r=a.key??n.id;return r===xt?t:K(o,r)}),Vt=["rowspan","colspan","title","aria-sort"],Lt={class:"dwui-data-table-header"},Tt=["role","tabindex","onClick","onKeydown"],Mt=["innerHTML"],Dt={key:2},zt=["onPointerdown"],At={key:0,class:"dwui-data-table-no-data"},Ot=["colspan"],It={key:0,class:"dwui-data-table-loading"},Ht=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:void 0},maxPagination:{default:void 0},selectable:{type:Boolean,default:void 0},controls:{default:void 0},pagination:{default:void 0},showDownloadPage:{type:Boolean,default:void 0},showDownloadAll:{type:Boolean,default:void 0},showTotal:{type:Boolean,default:void 0},showLimit:{type:Boolean,default:void 0},showPageSelect:{type:Boolean,default:void 0},showNoData:{type:Boolean,default:void 0},resizable:{type:Boolean,default:void 0},sortable:{type:Boolean,default:void 0},sortMode:{default:void 0},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:updateHeader","emit:dblclickRow","emit:changeLimit","emit:changePage","emit:downloadPage","emit:downloadAll"],setup(l,{expose:o,emit:t}){const n=l,a=t,r=e.inject(G,{}),s=e.ref(),m=e.ref(),i=e.ref(),c=e.ref({}),g=e.ref(""),f=e.ref(!1),p=e.ref();let k;const C=e.computed(()=>n.headers.map(d=>c.value[d.id]==null?d:{...d,width:c.value[d.id]})),y={maxLimit:9999,maxPagination:7,selectable:!0,controls:"both",pagination:"both",showDownloadPage:!0,showDownloadAll:!0,showTotal:!0,showLimit:!0,showPageSelect:!1,showNoData:!0,resizable:!0,sortable:!0,sortMode:"remote",contentClass:void 0,contentStyle:void 0,tableClass:void 0,tableStyle:void 0,formatTotalCount:void 0},u=e.computed(()=>{const d={...y};for(const v of[r.dataTable??{},n])for(const h of Object.keys(y))v[h]!==void 0&&Object.assign(d,{[h]:v[h]});return d}),B=e.computed(()=>{const d={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",...r.dataTable?.labels,...n.labels},v={};for(const h of Object.keys(d)){const $=d[h];v[h]=typeof $=="function"?$():$}return v}),b=e.computed(()=>Math.min(n.limit,u.value.maxLimit)),E=e.computed(()=>({showTotal:u.value.showTotal,showLimit:u.value.showLimit,showPageSelect:u.value.showPageSelect,showDownloadPage:u.value.showDownloadPage,showDownloadAll:u.value.showDownloadAll,current:n.current,limit:b.value,maxLimit:u.value.maxLimit,maxPagination:u.value.maxPagination,totalCount:n.totalCount??n.dataList.length,formatTotalCount:u.value.formatTotalCount,labels:B.value})),w=e.shallowRef(void 0),x=e.computed(()=>{const d=u.value.sortMode==="page"?n.headers.find(h=>h.id===g.value):void 0;if(!d)return n.dataList;const v=d.compare??((h,$)=>{const N=d.sortKey??d.id;return Et(K(h,N),K($,N),d.type??"string")});return[...n.dataList].sort((h,$)=>f.value?v($,h):v(h,$))}),_=e.computed(()=>{const d=w.value;if(d==null)return-1;const v=x.value.indexOf(d);if(v!==-1)return v;const h=H(d);return h===""?-1:x.value.findIndex($=>H($)===h)}),V=e.computed(()=>n.headers.reduce((d,v)=>d+(v.colspan==null?1:Number(v.colspan)),0)),P=d=>{if(d!=null)return typeof d=="number"?`${d}px`:d},L=d=>({width:P(d.width),minWidth:P(d.minWidth),maxWidth:P(d.maxWidth)}),_e=d=>{if(g.value===d)return f.value?"descending":"ascending"},X=d=>{if(!(!u.value.sortable||g.value!==d))return f.value?"down":"up"},Se=d=>(n.current-1)*b.value+d+1,Y=()=>Array.from(i.value?.children??[]).filter(d=>d.tagName==="TR"&&!d.classList.contains("dwui-data-table-no-data")),$e=d=>Array.from(d.children).filter(v=>v.tagName==="TD"||v.tagName==="TH"),q=()=>{a("emit:updateHeader",C.value.map(d=>({...d})))},R=()=>{Y().forEach((d,v)=>d.classList.toggle("dwui-selected",v===_.value))},Ee=()=>{const d=s.value,v=Y()[_.value];if(!d||!v)return;const h=m.value?.offsetHeight??0,$=v.offsetTop,N=$+v.offsetHeight;$<d.scrollTop+h?d.scrollTop=$-h:d.scrollTop+d.clientHeight<N&&(d.scrollTop=N-d.clientHeight)},A=(d,v)=>{w.value=d,a("emit:selectRow",d,v)},J=(d,v)=>{u.value.selectable&&(v===_.value?A(void 0,-1):(A(d,v),s.value?.focus({preventScroll:!0})))},xe=(d,v)=>{v!==_.value&&J(d,v),a("emit:dblclickRow",d,v)},Ne=d=>{if(d.target!==d.currentTarget||_.value<0||d.key!=="ArrowUp"&&d.key!=="ArrowDown")return;const v=_.value+(d.key==="ArrowUp"?-1:1);v<0||x.value.length<=v||(d.preventDefault(),A(x.value[v],v))},j=d=>{!u.value.sortable||n.dataList.length===0||(f.value=g.value===d.id?!f.value:!1,g.value=d.id,a("emit:changeSort",{sortKey:g.value,descending:f.value}))},Pe=(d,v)=>{if(!u.value.resizable)return;d.preventDefault();const h=m.value?.firstElementChild,$=h?$e(h):[];for(const[N,M]of $.entries())c.value[n.headers[N].id]=M.getBoundingClientRect().width;p.value={index:v,x:d.clientX},d.currentTarget.setPointerCapture(d.pointerId),q()},Ve=d=>{if(!p.value)return;const v=d.clientX-p.value.x;if(v===0)return;p.value.x=d.clientX;const h=p.value.index,$=n.headers.map(M=>M.id);c.value[$[h]]+=v;const N=v/($.length-h-1);for(const M of $.slice(h+1))c.value[M]-=N},Q=()=>{p.value&&(p.value=void 0,q())};return e.onMounted(()=>{k=new MutationObserver(R),i.value&&k.observe(i.value,{childList:!0}),R()}),e.onBeforeUnmount(()=>{k?.disconnect()}),e.watch(()=>n.headers,(d,v)=>{const h=d.map(N=>N.id),$=v.map(N=>N.id);(h.length!==$.length||h.some(N=>!$.includes(N)))&&(c.value={})}),e.watch(()=>n.loading,(d,v)=>{v&&!d&&(u.value.sortMode==="page"&&(g.value="",f.value=!1),w.value!=null&&A(void 0,-1))}),e.watch(_,d=>{0<=d&&Ee()},{flush:"post"}),e.watch(_,R,{flush:"post"}),o({getSortContext:()=>({sortKey:g.value,descending:f.value})}),(d,v)=>(e.openBlock(),e.createElementBlock("section",{class:e.normalizeClass(["dwui-data-table",{"dwui-selectable":u.value.selectable}])},[u.value.controls==="both"||u.value.controls==="top"?(e.openBlock(),e.createBlock(ee,e.mergeProps({key:0},E.value,{pagination:u.value.pagination==="both"||u.value.pagination==="top","onEmit:changePage":v[0]||(v[0]=h=>a("emit:changePage",h)),"onEmit:changeLimit":v[1]||(v[1]=h=>a("emit:changeLimit",h)),"onEmit:downloadPage":v[2]||(v[2]=h=>a("emit:downloadPage")),"onEmit:downloadAll":v[3]||(v[3]=h=>a("emit:downloadAll"))}),null,16,["pagination"])):e.createCommentVNode("",!0),e.createElementVNode("div",{ref_key:"refContent",ref:s,class:e.normalizeClass(["dwui-data-table-content",[{"dwui-loading":n.loading},u.value.contentClass]]),style:e.normalizeStyle(u.value.contentStyle),tabindex:"-1",onKeydown:Ne},[e.createElementVNode("table",{class:e.normalizeClass(u.value.tableClass),style:e.normalizeStyle(u.value.tableStyle)},[e.createElementVNode("thead",{ref_key:"refThead",ref:m},[e.createElementVNode("tr",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(C.value,(h,$)=>(e.openBlock(),e.createElementBlock("th",{key:h.id,rowspan:h.rowspan,colspan:h.colspan,title:h.title,style:e.normalizeStyle(L(h)),"aria-sort":_e(h.id),scope:"col"},[e.createElementVNode("div",Lt,[e.createElementVNode("span",{class:"dwui-data-table-sort",role:u.value.sortable?"button":void 0,tabindex:u.value.sortable?0:void 0,onClick:N=>j(h),onKeydown:[e.withKeys(e.withModifiers(N=>j(h),["prevent"]),["enter"]),e.withKeys(e.withModifiers(N=>j(h),["prevent"]),["space"])]},[X(h.id)?(e.openBlock(),e.createBlock(e.unref(S.SvgPointingTriangle),{key:0,direction:X(h.id),size:"0.7em"},null,8,["direction"])):e.createCommentVNode("",!0),h.html?(e.openBlock(),e.createElementBlock("span",{key:1,innerHTML:e.unref(U)(h.label)},null,8,Mt)):(e.openBlock(),e.createElementBlock("span",Dt,e.toDisplayString(e.unref(U)(h.label)),1))],40,Tt)]),u.value.resizable&&$<C.value.length-1?(e.openBlock(),e.createElementBlock("div",{key:0,class:"dwui-data-table-resizer",onPointerdown:N=>Pe(N,$),onPointermove:Ve,onPointerup:Q,onPointercancel:Q},null,40,zt)):e.createCommentVNode("",!0)],12,Vt))),128))])],512),e.createElementVNode("tbody",{ref_key:"refTbody",ref:i},[n.loading?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.renderSlot(d.$slots,"default",{rows:x.value,clickRow:J,dblclickRow:xe,rowNumber:Se,selectedIndex:_.value}),n.dataList.length===0&&u.value.showNoData?(e.openBlock(),e.createElementBlock("tr",At,[e.createElementVNode("td",{colspan:V.value},e.toDisplayString(B.value.noData),9,Ot)])):e.createCommentVNode("",!0)],64))],512)],6),n.loading?(e.openBlock(),e.createElementBlock("div",It,[e.renderSlot(d.$slots,"loading",{},()=>[v[8]||(v[8]=e.createElementVNode("div",{class:"dwui-data-table-loading-spinner"},null,-1))])])):e.createCommentVNode("",!0)],38),u.value.controls==="both"||u.value.controls==="bottom"?(e.openBlock(),e.createBlock(ee,e.mergeProps({key:1},E.value,{pagination:u.value.pagination==="both"||u.value.pagination==="bottom","onEmit:changePage":v[4]||(v[4]=h=>a("emit:changePage",h)),"onEmit:changeLimit":v[5]||(v[5]=h=>a("emit:changeLimit",h)),"onEmit:downloadPage":v[6]||(v[6]=h=>a("emit:downloadPage")),"onEmit:downloadAll":v[7]||(v[7]=h=>a("emit:downloadAll"))}),null,16,["pagination"])):e.createCommentVNode("",!0)],2))}}),ne={top:"bottom",bottom:"top",left:"right",right:"left"},W=(l,o,t)=>Math.min(Math.max(l,o),t),ue=(l,o,t,n)=>{const{offset:a,margin:r,arrowMargin:s}=n,[m,i="center"]=n.placement.split("-"),c=m==="top"||m==="bottom",g=l.top+l.height,f=l.left+l.width,p={top:l.top-r,bottom:t.height-g-r,left:l.left-r,right:t.width-f-r},y=(c?o.height:o.width)+a<=p[m]||p[ne[m]]<=p[m]?m:ne[m];let u;switch(y){case"top":u=l.top-a-o.height;break;case"bottom":u=g+a;break;case"left":u=l.left-a-o.width;break;default:u=f+a;break}const B=c?l.left:l.top,b=c?l.width:l.height,E=c?o.width:o.height;let w;switch(i){case"start":w=B;break;case"end":w=B+b-E;break;default:w=B+(b-E)/2;break}const x=W(c?u:w,r,Math.max(r,t.height-r-o.height)),_=W(c?w:u,r,Math.max(r,t.width-r-o.width)),V=B+b/2,L=W(V-(c?_:x),s,Math.max(s,E-s));return{top:x,left:_,side:y,arrow:L}},Rt=["popover","data-side"],jt={class:"dwui-anchored-popover-content"},le=4,Wt=7,Ft=12,Kt=8,me=e.defineComponent({__name:"anchored-popover",props:{anchor:{},placement:{},arrow:{type:Boolean},mode:{}},emits:["emit:open","emit:close"],setup(l,{expose:o,emit:t}){const n=l,a=t,r=e.ref(),s=e.ref(),m=()=>{r.value?.hidePopover()},i=()=>{r.value?.showPopover()},c=()=>{const p=r.value;if(!n.anchor||!p)return;const k={width:document.documentElement.clientWidth,height:document.documentElement.clientHeight},C=ue(n.anchor.getBoundingClientRect(),p.getBoundingClientRect(),k,{placement:n.placement,offset:n.arrow?le+Wt:le,margin:Kt,arrowMargin:Ft});s.value=C.side,p.style.top=`${C.top}px`,p.style.left=`${C.left}px`,p.style.setProperty("--dwui-offset-arrow",`${C.arrow}px`),p.style.visibility="visible"},g=p=>{r.value?.contains(p.target)||c()},f=p=>{p.newState==="open"?(c(),window.addEventListener("scroll",g,!0),window.addEventListener("resize",c),a("emit:open")):(r.value&&(r.value.style.visibility=""),window.removeEventListener("scroll",g,!0),window.removeEventListener("resize",c),a("emit:close"))};return e.onBeforeUnmount(()=>{window.removeEventListener("scroll",g,!0),window.removeEventListener("resize",c)}),o({element:r,show:i,hide:m}),(p,k)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"refPanel",ref:r,class:e.normalizeClass(["dwui-anchored-popover",{"dwui-arrow":n.arrow}]),popover:n.mode,"data-side":s.value,onToggle:f},[e.createElementVNode("div",jt,[e.renderSlot(p.$slots,"default")])],42,Rt))}}),Ut=["aria-label"],Gt=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(l,{emit:o}){const t=l,n=o,a=e.useAttrs(),r=e.ref(),s=e.ref();return e.onMounted(()=>{const m=s.value?.element;r.value&&m&&(r.value.popoverTargetElement=m)}),(m,i)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("button",e.mergeProps({ref_key:"refButton",ref:r,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(me,{ref_key:"refPopover",ref:s,class:"dwui-help-button-popover",mode:"auto",anchor:r.value,placement:t.placement,arrow:t.arrow,"onEmit:open":i[0]||(i[0]=c=>n("emit:open")),"onEmit:close":i[1]||(i[1]=c=>n("emit:close"))},{default:e.withCtx(()=>[e.renderSlot(m.$slots,"default")]),_:3},8,["anchor","placement","arrow"])],64))}}),Xt=["aria-label","aria-describedby"],Yt=150,pe=e.defineComponent({inheritAttrs:!1,__name:"icon-popper",props:{placement:{},arrow:{type:Boolean},popoverClass:{},label:{}},emits:["emit:open","emit:close"],setup(l,{emit:o}){const t=l,n=o,a=e.useAttrs(),r=e.ref(),s=e.ref(),m=e.ref(!1),i=e.useId();let c;const g=()=>{c!==void 0&&(clearTimeout(c),c=void 0)},f=()=>{g(),s.value?.show()},p=()=>{g(),s.value?.hide()},k=()=>{g(),c=setTimeout(()=>{c=void 0,s.value?.hide()},Yt)},C=P=>{const L=P.target;!r.value?.contains(L)&&!s.value?.element?.contains(L)&&p()},y=P=>{P.pointerType!=="touch"&&f()},u=P=>{P.pointerType!=="touch"&&k()},B=P=>{P.pointerType!=="touch"&&g()},b=P=>{P.pointerType==="touch"&&(m.value?p():f())},E=()=>{f()},w=()=>{p()},x=()=>{p()},_=()=>{m.value=!0,document.addEventListener("pointerdown",C,!0),n("emit:open")},V=()=>{m.value=!1,document.removeEventListener("pointerdown",C,!0),n("emit:close")};return e.onBeforeUnmount(()=>{g(),document.removeEventListener("pointerdown",C,!0)}),(P,L)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("span",e.mergeProps({ref_key:"refTrigger",ref:r,class:"dwui-icon-popper",tabindex:"0","aria-label":t.label,"aria-describedby":e.unref(i)},e.unref(a),{onPointerenter:y,onPointerleave:u,onPointerdown:b,onFocus:E,onBlur:w,onKeydown:e.withKeys(x,["esc"])}),[e.renderSlot(P.$slots,"icon")],16,Xt),e.createVNode(me,{ref_key:"refPopover",ref:s,id:e.unref(i),class:e.normalizeClass(["dwui-icon-popper-popover",t.popoverClass]),role:"tooltip",mode:"manual",anchor:r.value,placement:t.placement,arrow:t.arrow,onPointerenter:B,onPointerleave:u,"onEmit:open":_,"onEmit:close":V},{default:e.withCtx(()=>[e.renderSlot(P.$slots,"default")]),_:3},8,["id","class","anchor","placement","arrow"])],64))}}),qt=e.defineComponent({__name:"help-popper",props:{placement:{default:"right"},arrow:{type:Boolean,default:!0},label:{default:"Help"}},emits:["emit:open","emit:close"],setup(l,{emit:o}){const t=l,n=o;return(a,r)=>(e.openBlock(),e.createBlock(pe,{class:"dwui-help-popper","popover-class":"dwui-help-popper-popover",placement:t.placement,arrow:t.arrow,label:t.label,"onEmit:open":r[0]||(r[0]=s=>n("emit:open")),"onEmit:close":r[1]||(r[1]=s=>n("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"]))}}),Jt=e.defineComponent({__name:"hourglass-loading",props:{loading:{type:Boolean},duration:{},size:{default:"1.2em"}},setup(l){const o=l;return(t,n)=>o.loading?(e.openBlock(),e.createBlock(e.unref(S.SvgHourglass),{key:0,duration:o.duration,size:o.size,class:"dwui-hourglass-loading"},null,8,["duration","size"])):e.renderSlot(t.$slots,"default",{},void 0,void 0,1)}}),Qt=e.defineComponent({__name:"intersection-lazy-component",props:{root:{},rootMargin:{},threshold:{}},emits:["emit:visible"],setup(l,{emit:o}){const t=l,n=o,a=e.ref(),r=e.ref(!1);let s;const m=()=>{s?.disconnect(),s=void 0,!(!a.value||r.value)&&(s=new IntersectionObserver(i=>{i.some(c=>c.isIntersecting)&&(r.value=!0,s?.disconnect(),s=void 0,n("emit:visible"))},{root:t.root,rootMargin:t.rootMargin,threshold:t.threshold}),s.observe(a.value))};return e.onMounted(()=>{m()}),e.onBeforeUnmount(()=>{s?.disconnect()}),e.watch(()=>[t.root,t.rootMargin,t.threshold],()=>{m()},{flush:"post"}),(i,c)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"refTarget",ref:a,class:"dwui-intersection-lazy-component"},[r.value?e.renderSlot(i.$slots,"default",{},void 0,void 0,0):e.renderSlot(i.$slots,"placeholder",{},void 0,void 0,1)],512))}}),Zt={type:"button",class:"dwui-label-button"},eo=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(l){const o=l,t=e.useSlots();return(n,a)=>(e.openBlock(),e.createElementBlock("button",Zt,[e.createVNode(T,{preset:o.preset,gap:o.gap,"icon-class":o.iconClass,"icon-style":o.iconStyle,"label-class":o.labelClass,"label-style":o.labelStyle},e.createSlots({_:2},[t.icon!=null?{name:"icon",fn:e.withCtx(()=>[e.renderSlot(n.$slots,"icon")]),key:"0"}:void 0,t.default!=null?{name:"default",fn:e.withCtx(()=>[e.renderSlot(n.$slots,"default")]),key:"1"}:void 0]),1032,["preset","gap","icon-class","icon-style","label-class","label-style"])]))}}),to=/^\s*[[{]/;function fe(l){return typeof l=="string"?l:l instanceof Error?String(l):z(l,0,"",[])??String(l)}function oo(l){if(to.test(l))try{const o=JSON.parse(l);return typeof o=="object"&&o!==null?o:void 0}catch{return}}function z(l,o,t,n){switch(typeof l){case"string":{const a=oo(l);return a===void 0?`"${l}"`:z(a,o,t,n)}case"number":case"boolean":return String(l);case"bigint":return`"${l.toString()}"`;case"object":{if(l===null)return"null";if(l instanceof Error)return`"${String(l)}"`;const{toJSON:a}=l;if(typeof a=="function")return z(a.call(l,t),o,t,n);if(n.includes(l))return'"[Circular]"';n.push(l);try{return no(l,o,n)}finally{n.pop()}}default:return}}function no(l,o,t){const n=Array.isArray(l),a=[];if(n)for(let c=0;c<l.length;c++)a.push(z(l[c],o+1,String(c),t)??"null");else for(const[c,g]of Object.entries(l)){const f=z(g,o+1,c,t);f!==void 0&&a.push(`"${c}": ${f}`)}const[r,s]=n?["[","]"]:["{","}"];if(a.length===0)return`${r}${s}`;const m=" ".repeat(o+1),i=" ".repeat(o);return`${r}
|
|
2
|
-
${m}${a.join(`,
|
|
3
|
-
${m}`)}
|
|
4
|
-
${i}${s}`}const lo=["aria-labelledby","aria-describedby"],ao={class:"dwui-modal-dialog-header"},ro={class:"dwui-modal-dialog-icon"},so=["id","innerHTML"],io=["id"],co=["id"],uo={key:0},mo=["innerHTML"],po={key:2},fo={key:0,class:"dwui-modal-dialog-images"},vo=["src","alt"],go=["onClick"],bo=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(l,{emit:o}){const t=l,n=o,a=e.useModel(l,"open"),r=e.ref(),s=e.ref(),m=e.useId(),i=e.useId(),c={info:S.SvgInfo,confirm:S.SvgQuestion,warn:S.SvgWarningSign,error:S.SvgCritical},g=["cancel","no","yes","ok"],f=e.computed(()=>t.buttons??(t.type==="confirm"?["yes","no"]:["ok"])),p=e.computed(()=>({ok:t.okLabel,yes:t.yesLabel,no:t.noLabel,cancel:t.cancelLabel})),k=e.computed(()=>t.message==null?[]:[t.message].flat()),C=e.computed(()=>[t.image??[]].flat().map(w=>typeof w=="string"?{src:w,alt:""}:w)),y=w=>{E(w)},u=w=>{w.preventDefault(),E("cancel")},B=w=>{if(w.key!=="ArrowLeft"&&w.key!=="ArrowRight")return;const x=[...s.value?.children??[]],_=x.indexOf(document.activeElement);_<0||x[w.key==="ArrowRight"?_+1:_-1]?.focus()},b=()=>{r.value?.showModal();const w=g.find(_=>f.value.includes(_)),x=w?f.value.indexOf(w):-1;s.value?.children[x]?.focus()},E=w=>{r.value?.close(),a.value=!1,n("emit:close",w)};return e.onMounted(()=>{a.value&&b()}),e.watch(a,w=>{w?b():r.value?.close()},{flush:"post"}),(w,x)=>(e.openBlock(),e.createElementBlock("dialog",{ref_key:"refDialog",ref:r,class:e.normalizeClass(["dwui-modal-dialog",`dwui-modal-dialog-${t.type}`]),"aria-labelledby":t.title?e.unref(m):void 0,"aria-describedby":e.unref(i),onCancel:u,onKeydown:B},[e.createElementVNode("div",ao,[e.createElementVNode("span",ro,[e.renderSlot(w.$slots,"icon",{},()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(c[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,so)):(e.openBlock(),e.createElementBlock("span",{key:1,id:e.unref(m),class:"dwui-modal-dialog-title"},e.toDisplayString(t.title),9,io))],64)):e.createCommentVNode("",!0)]),e.createElementVNode("div",{id:e.unref(i),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},[typeof _!="string"?(e.openBlock(),e.createElementBlock("pre",uo,e.toDisplayString(e.unref(fe)(_)),1)):t.html?(e.openBlock(),e.createElementBlock("p",{key:1,innerHTML:_},null,8,mo)):(e.openBlock(),e.createElementBlock("p",po,e.toDisplayString(_),1))],64))),128)),C.value.length?(e.openBlock(),e.createElementBlock("div",fo,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(C.value,(_,V)=>(e.openBlock(),e.createElementBlock("img",{key:V,src:_.src,alt:_.alt},null,8,vo))),128))])):e.createCommentVNode("",!0)])],8,co),e.createElementVNode("div",{ref_key:"refButtons",ref:s,class:"dwui-modal-dialog-buttons"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(f.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(p.value[_]),11,go))),128))],512)],42,lo))}});function ho(l){const o=l.minWidth??20,t=l.minHeight??20,n=e.ref(!1),a=e.ref(!1),r=e.reactive({x:0,y:0}),s=e.reactive({width:-1,height:-1});let m=null,i="bottom-right",c={x:0,y:0};const g=b=>{if(b.pointerId!==m)return;b.preventDefault();const E=b.clientX-c.x,w=b.clientY-c.y;if(c={x:b.clientX,y:b.clientY},n.value)r.x+=E,r.y+=w;else if(a.value){if(i.endsWith("left")){const x=Math.max(o,s.width-E);r.x+=s.width-x,s.width=x}else s.width=Math.max(o,s.width+E);if(i.startsWith("top")){const x=Math.max(t,s.height-w);r.y+=s.height-x,s.height=x}else s.height=Math.max(t,s.height+w)}},f=()=>{const b=l.target.value?.getBoundingClientRect().width||0;r.x<40-b&&(r.x=40-b),window.innerWidth-40<r.x&&(r.x=window.innerWidth-40),r.y<0&&(r.y=0),l.clampBottom&&window.innerHeight-20<r.y&&(r.y=window.innerHeight-20)},p=b=>{if(b.pointerId!==m)return;const E=n.value;k(),E&&f()},k=()=>{document.removeEventListener("pointermove",g,!0),document.removeEventListener("pointerup",p,!0),document.removeEventListener("pointercancel",p,!0),m=null,n.value=!1,a.value=!1},C=b=>{k(),m=b.pointerId,c={x:b.clientX,y:b.clientY},document.addEventListener("pointermove",g,!0),document.addEventListener("pointerup",p,!0),document.addEventListener("pointercancel",p,!0)},y=b=>{b.isPrimary&&l.dragMode()==="body"&&(C(b),n.value=!0)},u=b=>{b.isPrimary&&l.dragMode()==="header"&&(C(b),n.value=!0)},B=(b,E="bottom-right")=>{if(!b.isPrimary)return;i=E;const w=l.target.value?.getBoundingClientRect();w&&(s.width<0&&(s.width=w.width),s.height<0&&(s.height=w.height)),C(b),a.value=!0};return e.onBeforeUnmount(k),{moving:n,resizing:a,currentPosition:r,currentRect:s,onDragStart:y,onDragHeaderStart:u,onResizeStart:B,teardown:k}}const wo=["aria-labelledby"],yo=["id"],ko=["aria-label"],Bo=["onPointerdown"],ve=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(l,{expose:o,emit:t}){const n=l,a=t,r=e.ref(),s=e.useId(),m=["top-left","top-right","bottom-left"],i=ho({target:r,dragMode:()=>n.dragMode,clampBottom:n.clampBottom}),c=e.computed(()=>{const{currentPosition:g,currentRect:f}=i;return{top:`${g.y}px`,left:`${g.x}px`,width:0<=f.width?`${f.width}px`:void 0,height:0<=f.height?`${f.height}px`:void 0}});return o({element:r,position:i.currentPosition,size:i.currentRect,teardown:i.teardown}),(g,f)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"refWindow",ref:r,class:"dwui-movable-window",role:"dialog","aria-labelledby":e.unref(s),style:e.normalizeStyle(c.value)},[e.createElementVNode("div",{class:"dwui-movable-window-frame",onPointerdown:f[2]||(f[2]=(...p)=>e.unref(i).onDragStart&&e.unref(i).onDragStart(...p))},[e.createElementVNode("div",{class:e.normalizeClass(["dwui-movable-window-header",[`${n.name}-header`,n.headerClass,{"dwui-movable":n.dragMode}]]),style:e.normalizeStyle(n.headerStyle),onPointerdown:f[1]||(f[1]=(...p)=>e.unref(i).onDragHeaderStart&&e.unref(i).onDragHeaderStart(...p))},[e.createElementVNode("div",{id:e.unref(s),class:e.normalizeClass(["dwui-movable-window-title",`${n.name}-title`])},[e.renderSlot(g.$slots,"title")],10,yo),e.renderSlot(g.$slots,"actions"),e.createElementVNode("button",{type:"button",class:e.normalizeClass(["dwui-movable-window-close-button",`${n.name}-close-button`]),"aria-label":n.closeLabel,onClick:f[0]||(f[0]=p=>a("emit:close"))},[e.createVNode(e.unref(S.SvgNegativeSquaredCrossMark))],10,ko)],38),e.createElementVNode("div",{class:e.normalizeClass(["dwui-movable-window-body",[`${n.name}-body`,{"dwui-movable":n.dragMode==="body"}]])},[e.renderSlot(g.$slots,"default")],2)],32),n.loading?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["dwui-movable-window-loading",`${n.name}-loading`])},[e.createElementVNode("div",{class:e.normalizeClass(["dwui-movable-window-spinner",`${n.name}-spinner`])},null,2)],2)):e.createCommentVNode("",!0),(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(m,p=>e.createElementVNode("div",{key:p,class:e.normalizeClass(["dwui-movable-window-corner",[`${n.name}-corner`,`dwui-${p}`]]),onPointerdown:e.withModifiers(k=>e.unref(i).onResizeStart(k,p),["prevent"])},null,42,Bo)),64)),e.createElementVNode("div",{class:e.normalizeClass(["dwui-movable-window-resizer",`${n.name}-resizer`]),onPointerdown:f[3]||(f[3]=e.withModifiers(p=>e.unref(i).onResizeStart(p,"bottom-right"),["prevent"]))},[e.createVNode(e.unref(S.SvgCornerDiagonal),{direction:"bottom-right"})],34)],12,wo))}});let ae=0;const ge=()=>(ae+=1,ae);function be(l,o,t){const n=document.createElement("div");document.body.appendChild(n);const a=e.ref(!0),r=e.ref(!1),s={close:()=>{a.value=!1},setLoading:c=>{r.value=c}},m=e.defineComponent(()=>()=>l({open:a.value,loading:r.value,"onUpdate:open":c=>{a.value=c},"onEmit:close":()=>{t.delete(s),e.render(null,n),n.remove(),o.onClosed?.(),o.onClose?.()}},s)),i=e.h(m);return o.appContext&&(i.appContext=o.appContext),e.render(i,n),t.add(s),s}function he(l){const o=e.getCurrentInstance();if(!o)throw new Error(`${l}() must be called inside setup().`);const t=new Set;return e.onBeforeUnmount(()=>{for(const n of t)n.close()}),{appContext:o.appContext,own:n=>{const a=n(()=>{t.delete(a)});return t.add(a),a}}}const O=[],we=new Set,ye=(l,o,t,n)=>{const{appContext:a,onClose:r,...s}=t??{};return be((m,i)=>e.h(ke,{...s,...m},{default:()=>e.h(l,{...o,close:i.close,setLoading:i.setLoading})}),{appContext:a,onClose:r,onClosed:n},we)};function Co(l,o,t){return ye(l,o,t)}function _o(){for(const l of[...we])l.close()}function So(){const l=he("useOverlayBox");return{showOverlayBox:(o,t,n)=>l.own(a=>ye(o,t,{appContext:l.appContext,...n},a))}}const ke=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(l,{emit:o}){const t=l,n=o,a=e.useModel(l,"open"),r=e.ref(),s=e.ref(0),m=Symbol("dwui-overlay-box");let i=null;const c=()=>{t.closeOnBackdrop&&(a.value=!1)},g=()=>{a.value=!1},f=u=>{u.key!=="Escape"||!u.isTrusted||u.isComposing||u.target instanceof Element&&u.target.closest("dialog")||O.at(-1)===m&&(a.value=!1)},p=()=>{n("emit:close")},k=()=>{const u=O.indexOf(m);0<=u&&O.splice(u,1)},C=()=>{s.value=ge();const u=r.value,B=u?.element?.getBoundingClientRect();u&&(u.position.x=(window.innerWidth-(B?.width||0))/2,u.position.y=Math.max(0,(window.innerHeight-(B?.height||0))/2)),i=document.activeElement instanceof HTMLElement?document.activeElement:null,u?.element?.focus(),O.push(m)},y=()=>{r.value?.teardown(),k(),i?.isConnected&&i.focus(),i=null};return e.onMounted(()=>{a.value&&C()}),e.onBeforeUnmount(()=>{k()}),e.watch(a,u=>{u?C():y()},{flush:"post"}),(u,B)=>(e.openBlock(),e.createBlock(e.Transition,{name:"dwui-overlay-box-fade",onAfterLeave:p},{default:e.withCtx(()=>[a.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:"dwui-overlay-box",style:e.normalizeStyle({"--dwui-order-window":s.value})},[e.createElementVNode("div",{class:"dwui-overlay-box-backdrop",onClick:c}),e.createVNode(ve,{ref_key:"refWindow",ref:r,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:f,"onEmit:close":g},{title:e.withCtx(()=>[e.renderSlot(u.$slots,"title",{},()=>[e.createTextVNode(e.toDisplayString(t.title),1)])]),default:e.withCtx(()=>[e.renderSlot(u.$slots,"default")]),_:3},8,["drag-mode","loading","close-label"])],4)):e.createCommentVNode("",!0)]),_:3}))}}),$o={class:"dwui-page-section"},Eo={class:"dwui-page-section-content"},xo=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(l){const o=l,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}},n=e.computed(()=>{const a=t[o.icon];return{component:a.component,props:a.shape?{variant:o.iconVariant,color:o.iconColor??a.color}:{}}});return(a,r)=>(e.openBlock(),e.createElementBlock("section",$o,[o.title!=null?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["dwui-page-section-title",o.titleClass]),style:e.normalizeStyle(o.titleStyle)},[e.createVNode(T,null,{icon:e.withCtx(()=>[e.renderSlot(a.$slots,"icon",{},()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(n.value.component),e.normalizeProps(e.guardReactiveProps(n.value.props)),null,16))])]),default:e.withCtx(()=>[e.createTextVNode(" "+e.toDisplayString(o.title),1)]),_:3})],6)):e.createCommentVNode("",!0),e.createElementVNode("div",Eo,[e.renderSlot(a.$slots,"default")])]))}}),No={class:"dwui-page-title"},Po={key:0,class:"dwui-page-title-actions"},Vo=e.defineComponent({__name:"page-title",props:{title:{}},setup(l){const o=l,t=e.useSlots();return(n,a)=>(e.openBlock(),e.createElementBlock("section",No,[e.createVNode(T,{class:"dwui-page-title-label"},e.createSlots({default:e.withCtx(()=>[e.createTextVNode(" "+e.toDisplayString(o.title),1)]),_:2},[t.icon!=null?{name:"icon",fn:e.withCtx(()=>[e.renderSlot(n.$slots,"icon")]),key:"0"}:void 0]),1024),t.default!=null?(e.openBlock(),e.createElementBlock("span",Po,[e.renderSlot(n.$slots,"default")])):e.createCommentVNode("",!0)]))}}),Lo=e.defineComponent({__name:"screen-loading",props:{loading:{type:Boolean}},setup(l){const o=l,t=e.ref(null),n=()=>{const r=t.value;r&&!r.open&&r.showModal()},a=()=>{const r=t.value;r?.open&&r.close()};return e.onMounted(()=>{o.loading&&n()}),e.onBeforeUnmount(()=>{a()}),e.watch(()=>o.loading,r=>{r?n():a()},{flush:"post"}),(r,s)=>(e.openBlock(),e.createElementBlock("dialog",{ref_key:"refDialog",ref:t,class:"dwui-screen-loading",closedby:"none",onCancel:s[0]||(s[0]=e.withModifiers(()=>{},["prevent"]))},[...s[1]||(s[1]=[e.createElementVNode("div",{class:"dwui-screen-loading-spinner"},null,-1)])],544))}}),Be=Symbol("dwui-tab-group"),To=["id","aria-labelledby","aria-busy","hidden"],Mo={key:0,class:"dwui-tab-loading"},Do={key:1,class:"dwui-tab-loading-spinner"},Ce=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(l){const o=l,t=e.inject(Be,void 0),n=e.ref(!1),a=()=>t?.loadingSlot(),r=e.computed(()=>t?.activeTabId.value===o.tabId),s=e.computed(()=>!!t?.mounted.value&&r.value),m=i=>{n.value=i};return(i,c)=>o.disabled?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",{key:0,id:e.unref(t)?`${e.unref(t).groupName}-${o.tabId}-panel`:void 0,class:"dwui-tab-content",role:"tabpanel","aria-labelledby":e.unref(t)?`${e.unref(t).groupName}-${o.tabId}`:void 0,"aria-busy":n.value?"true":void 0,hidden:!r.value},[e.renderSlot(i.$slots,"default",{activated:s.value,setLoading:m}),n.value?(e.openBlock(),e.createElementBlock("div",Mo,[a()!=null?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(a()),{key:0})):(e.openBlock(),e.createElementBlock("span",Do))])):e.createCommentVNode("",!0)],8,To))}}),zo={class:"dwui-tab-group"},Ao=["id","name","disabled","checked","aria-selected","aria-controls","onChange"],Oo=["for"],Io={class:"dwui-tab-items"},Ho=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(l){const o=l,t=e.useModel(l,"selectedTabId"),n=e.useSlots(),a=o.tabGroupName??e.useId(),r=g=>{if(g.type!==Ce)return;const f=g.props??{},p=f.disabled;return{tabId:String(f["tab-id"]??f.tabId),label:f.label,disabled:p===""||!!p,status:f.status,headerClass:f["header-class"]??f.headerClass,headerStyle:f["header-style"]??f.headerStyle,icon:g.children?.icon}},s=e.computed(()=>{const g=[];for(const f of n.default?.()??[]){const p=Array.isArray(f.children)?f.children:[f];for(const k of p){const C=r(k);C&&g.push(C)}}return g}),m=e.computed(()=>t.value!=null?t.value:(o.selectFirstEnabled?s.value.find(f=>!f.disabled):s.value[0])?.tabId),i=e.ref(!1);e.provide(Be,{groupName:a,activeTabId:m,mounted:i,loadingSlot:()=>n.loading}),e.onMounted(()=>{i.value=!0});const c=g=>{t.value=g};return(g,f)=>(e.openBlock(),e.createElementBlock("div",zo,[(e.openBlock(),e.createBlock(e.Teleport,{to:o.teleport??"body",disabled:o.teleport==null},[e.createElementVNode("div",{class:e.normalizeClass(["dwui-tab-headers",o.headerClass]),role:"tablist",style:e.normalizeStyle(o.headerStyle)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,p=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:p.tabId},[e.createElementVNode("input",{id:`${e.unref(a)}-${p.tabId}`,type:"radio",class:"dwui-tab-radio",role:"tab",name:e.unref(a),disabled:p.disabled,checked:p.tabId===m.value,"aria-selected":p.tabId===m.value?"true":"false","aria-controls":`${e.unref(a)}-${p.tabId}-panel`,onChange:k=>c(p.tabId)},null,40,Ao),e.createElementVNode("label",{for:`${e.unref(a)}-${p.tabId}`,class:e.normalizeClass(["dwui-tab-item",[p.status!=null?`dwui-tab-${p.status}`:void 0,p.headerClass]]),style:e.normalizeStyle(p.headerStyle)},[e.createVNode(T,null,e.createSlots({default:e.withCtx(()=>[e.createTextVNode(" "+e.toDisplayString(p.label),1)]),_:2},[p.icon!=null?{name:"icon",fn:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(p.icon)))]),key:"0"}:void 0]),1024)],14,Oo)],64))),128))],6)],8,["to","disabled"])),e.createElementVNode("div",Io,[e.renderSlot(g.$slots,"default")])]))}}),Ro=e.defineComponent({__name:"warning-popper",props:{placement:{default:"right"},arrow:{type:Boolean,default:!0},label:{default:"Warning"}},emits:["emit:open","emit:close"],setup(l,{emit:o}){const t=l,n=o;return(a,r)=>(e.openBlock(),e.createBlock(pe,{class:"dwui-warning-popper","popover-class":"dwui-warning-popper-popover",placement:t.placement,arrow:t.arrow,label:t.label,"onEmit:open":r[0]||(r[0]=s=>n("emit:open")),"onEmit:close":r[1]||(r[1]=s=>n("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=ve;exports._sfc_main$1=et;exports._sfc_main$10=Jt;exports._sfc_main$11=Qt;exports._sfc_main$12=eo;exports._sfc_main$13=T;exports._sfc_main$14=ke;exports._sfc_main$15=xo;exports._sfc_main$16=Vo;exports._sfc_main$17=Ce;exports._sfc_main$18=Ho;exports._sfc_main$19=Ro;exports._sfc_main$2=bo;exports._sfc_main$3=Lo;exports._sfc_main$4=ze;exports._sfc_main$5=He;exports._sfc_main$6=at;exports._sfc_main$7=Ht;exports._sfc_main$8=Gt;exports._sfc_main$9=qt;exports.closeAllOverlayBoxes=_o;exports.closeAllSnackbars=Qe;exports.computeAnchoredPosition=ue;exports.headersToCsvColumns=Nt;exports.mountWindow=be;exports.nextWindowOrder=ge;exports.rowToCsvColumns=Pt;exports.showOverlayBox=Co;exports.showSnackbar=ie;exports.toMessageText=fe;exports.useOverlayBox=So;exports.useSnackbar=ce;exports.useWindowOwner=he;exports.vueCoreOptionsKey=G;
|