@digitalwalletcorp/vue-core 1.4.0 → 1.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (106) hide show
  1. package/lib/accordion-section.d.cts +1 -1
  2. package/lib/accordion-section.d.ts +1 -1
  3. package/lib/components-BCJWnExf.cjs +1 -0
  4. package/lib/{components-B2jz-g6A.js → components-CDIhw5uP.js} +5 -5
  5. package/lib/data-table.d.cts +1 -1
  6. package/lib/data-table.d.ts +1 -1
  7. package/lib/{types → helpers}/data-table.d.cts +47 -0
  8. package/lib/{types → helpers}/data-table.d.ts +47 -0
  9. package/lib/helpers/{show-floating-component.d.cts → floating-component.d.cts} +1 -1
  10. package/lib/helpers/{show-floating-component.d.ts → floating-component.d.ts} +1 -1
  11. package/lib/helpers/{show-modal-dialog.d.cts → modal-dialog.d.cts} +13 -1
  12. package/lib/helpers/{show-modal-dialog.d.ts → modal-dialog.d.ts} +13 -1
  13. package/lib/helpers/{show-overlay-box.d.ts → overlay-box.d.cts} +3 -1
  14. package/lib/helpers/{show-overlay-box.d.cts → overlay-box.d.ts} +3 -1
  15. package/lib/helpers/{show-snackbar.d.cts → snackbar.d.cts} +16 -1
  16. package/lib/helpers/{show-snackbar.d.ts → snackbar.d.ts} +16 -1
  17. package/lib/index.cjs +1 -1
  18. package/lib/index.d.cts +15 -18
  19. package/lib/index.d.ts +15 -18
  20. package/lib/index.js +181 -265
  21. package/lib/internal/data-table-controls.d.cts +1 -1
  22. package/lib/internal/data-table-controls.d.ts +1 -1
  23. package/lib/internal/floating-component.d.cts +1 -1
  24. package/lib/internal/floating-component.d.ts +1 -1
  25. package/lib/internal/movable-window.d.cts +1 -1
  26. package/lib/internal/movable-window.d.ts +1 -1
  27. package/lib/internal/pagination.d.cts +1 -1
  28. package/lib/internal/pagination.d.ts +1 -1
  29. package/lib/internal/snackbar-container.d.cts +1 -1
  30. package/lib/internal/snackbar-container.d.ts +1 -1
  31. package/lib/internal/use-movable-window.d.cts +1 -1
  32. package/lib/internal/use-movable-window.d.ts +1 -1
  33. package/lib/internal/{mount-window.d.cts → window-control.d.cts} +22 -1
  34. package/lib/internal/{mount-window.d.ts → window-control.d.ts} +22 -1
  35. package/lib/label-button.d.cts +1 -1
  36. package/lib/label-button.d.ts +1 -1
  37. package/lib/label-icon.d.cts +12 -2
  38. package/lib/label-icon.d.ts +12 -2
  39. package/lib/modal-dialog.d.cts +1 -1
  40. package/lib/modal-dialog.d.ts +1 -1
  41. package/lib/nuxt.cjs +1 -1
  42. package/lib/nuxt.js +1 -1
  43. package/lib/overlay-box.d.cts +1 -1
  44. package/lib/overlay-box.d.ts +1 -1
  45. package/lib/register.cjs +1 -1
  46. package/lib/register.js +1 -1
  47. package/lib/tab-content.d.cts +1 -1
  48. package/lib/tab-content.d.ts +1 -1
  49. package/lib/warning-popper.vue_vue_type_style_index_0_lang-BJxLA6aU.js +1954 -0
  50. package/lib/warning-popper.vue_vue_type_style_index_0_lang-TYmLM_h9.cjs +1 -0
  51. package/package.json +1 -1
  52. package/src/accordion-section.vue +1 -1
  53. package/src/data-table.vue +2 -2
  54. package/src/helpers/data-table.ts +250 -0
  55. package/src/helpers/{show-floating-component.ts → floating-component.ts} +2 -2
  56. package/src/helpers/{show-modal-dialog.ts → modal-dialog.ts} +17 -1
  57. package/src/helpers/{show-overlay-box.ts → overlay-box.ts} +5 -2
  58. package/src/helpers/{show-snackbar.ts → snackbar.ts} +19 -1
  59. package/src/index.ts +15 -18
  60. package/src/internal/data-table-controls.vue +1 -1
  61. package/src/internal/floating-component.vue +2 -2
  62. package/src/internal/movable-window.vue +1 -1
  63. package/src/internal/pagination.vue +1 -1
  64. package/src/internal/snackbar-container.vue +1 -1
  65. package/src/internal/use-movable-window.ts +1 -1
  66. package/src/internal/{mount-window.ts → window-control.ts} +31 -1
  67. package/src/label-button.vue +1 -1
  68. package/src/label-icon.vue +13 -2
  69. package/src/modal-dialog.vue +1 -1
  70. package/src/overlay-box.vue +3 -3
  71. package/src/tab-content.vue +2 -2
  72. package/src/tab-group.vue +2 -2
  73. package/lib/components-COL2ZbhC.cjs +0 -1
  74. package/lib/helpers/data-table-csv.d.cts +0 -17
  75. package/lib/helpers/data-table-csv.d.ts +0 -17
  76. package/lib/internal/data-table-value.d.cts +0 -32
  77. package/lib/internal/data-table-value.d.ts +0 -32
  78. package/lib/internal/opened-overlay-boxes.d.cts +0 -2
  79. package/lib/internal/opened-overlay-boxes.d.ts +0 -2
  80. package/lib/internal/snackbar-item.d.cts +0 -17
  81. package/lib/internal/snackbar-item.d.ts +0 -17
  82. package/lib/internal/window-order.d.cts +0 -6
  83. package/lib/internal/window-order.d.ts +0 -6
  84. package/lib/types/label-preset.d.cts +0 -12
  85. package/lib/types/label-preset.d.ts +0 -12
  86. package/lib/types/modal-dialog.d.cts +0 -13
  87. package/lib/types/modal-dialog.d.ts +0 -13
  88. package/lib/types/movable-window.d.cts +0 -16
  89. package/lib/types/movable-window.d.ts +0 -16
  90. package/lib/warning-popper.vue_vue_type_style_index_0_lang-4FIOsOY5.cjs +0 -1
  91. package/lib/warning-popper.vue_vue_type_style_index_0_lang-CgXoSjjp.js +0 -1865
  92. package/src/helpers/data-table-csv.ts +0 -55
  93. package/src/internal/data-table-value.ts +0 -99
  94. package/src/internal/opened-overlay-boxes.ts +0 -2
  95. package/src/internal/snackbar-item.ts +0 -20
  96. package/src/internal/window-order.ts +0 -11
  97. package/src/types/data-table.ts +0 -99
  98. package/src/types/label-preset.ts +0 -13
  99. package/src/types/modal-dialog.ts +0 -16
  100. package/src/types/movable-window.ts +0 -18
  101. /package/lib/helpers/{show-screen-loading.d.cts → screen-loading.d.cts} +0 -0
  102. /package/lib/helpers/{show-screen-loading.d.ts → screen-loading.d.ts} +0 -0
  103. /package/lib/internal/{tab-group-context.d.cts → tab-group.d.cts} +0 -0
  104. /package/lib/internal/{tab-group-context.d.ts → tab-group.d.ts} +0 -0
  105. /package/src/helpers/{show-screen-loading.ts → screen-loading.ts} +0 -0
  106. /package/src/internal/{tab-group-context.ts → tab-group.ts} +0 -0
@@ -1,6 +1,36 @@
1
1
  import { defineComponent, getCurrentInstance, h, onBeforeUnmount, ref, render } from 'vue';
2
2
  import type { AppContext, VNode } from 'vue';
3
- import type { MovableWindowHandle } from '@/types/movable-window';
3
+
4
+ /** ドラッグで移動するときに掴む範囲。body はウィンドウ全体、header は見出しだけ */
5
+ export type MovableWindowDragMode = 'body' | 'header';
6
+
7
+ /** showOverlayBox / showFloatingComponent が中身のコンポーネントに props として渡す関数 */
8
+ export interface MovableWindowContentProps {
9
+ /** ウィンドウを閉じる */
10
+ close: () => void;
11
+ /** ウィンドウのローディング表示を切り替える */
12
+ setLoading: (loading: boolean) => void;
13
+ }
14
+
15
+ /** showOverlayBox / showFloatingComponent が返す、表示中のウィンドウを操作するためのハンドル */
16
+ export interface MovableWindowHandle {
17
+ /** ウィンドウを閉じ、閉じ終わったら取り外す */
18
+ close: () => void;
19
+ /** ウィンドウのローディング表示を切り替える */
20
+ setLoading: (loading: boolean) => void;
21
+ }
22
+
23
+ let lastOrder = 0;
24
+
25
+ /**
26
+ * ウィンドウ(OverlayBox / FloatingComponent)の重なり順を返す。後から呼んだものほど大きく、前面に出る
27
+ *
28
+ * @returns {number}
29
+ */
30
+ export const nextWindowOrder = (): number => {
31
+ lastOrder += 1;
32
+ return lastOrder;
33
+ };
4
34
 
5
35
  /** ウィンドウのコンポーネントに渡す、開閉とローディングの props とリスナー */
6
36
  export interface WindowProps {
@@ -34,7 +34,7 @@
34
34
  <script setup lang="ts">
35
35
  import type { ClassValue, StyleValue } from 'vue';
36
36
  import LabelIcon from '@/label-icon.vue';
37
- import type { LabelPreset } from '@/types/label-preset';
37
+ import type { LabelPreset } from '@/label-icon.vue';
38
38
 
39
39
  export interface Props {
40
40
  /** アイコンとラベルの組み合わせ */
@@ -28,8 +28,19 @@
28
28
  </template>
29
29
 
30
30
  <script setup lang="ts">
31
- import type { ClassValue, StyleValue } from 'vue';
32
- import type { LabelPreset } from '@/types/label-preset';
31
+ import type { ClassValue, Component, StyleValue } from 'vue';
32
+
33
+ /**
34
+ * アイコンとラベルの組み合わせ
35
+ */
36
+ export interface LabelPreset {
37
+ /** アイコンのコンポーネント */
38
+ icon: Component;
39
+ /** アイコンに渡すProps */
40
+ iconProps?: Record<string, unknown>;
41
+ /** ラベル。言語切替に追従させる場合は、描画のたびに呼ばれる関数で渡す */
42
+ label: string | (() => string);
43
+ }
33
44
 
34
45
  export interface Props {
35
46
  /** アイコンとラベルの組み合わせ */
@@ -84,7 +84,7 @@
84
84
  <script setup lang="ts">
85
85
  import { computed, onMounted, ref, useId, watch } from 'vue';
86
86
  import { SvgCritical, SvgInfo, SvgQuestion, SvgWarningSign } from '@digitalwalletcorp/vue-svg-icons';
87
- import type { ModalDialogButton, ModalDialogImage, ModalDialogResult, ModalDialogType } from '@/types/modal-dialog';
87
+ import type { ModalDialogButton, ModalDialogImage, ModalDialogResult, ModalDialogType } from '@/helpers/modal-dialog';
88
88
 
89
89
  export interface Props {
90
90
  /** ダイアログの種類 */
@@ -45,9 +45,9 @@ FloatingComponent とは開いた順に重なり、後から開いたものが
45
45
  <script setup lang="ts">
46
46
  import { onBeforeUnmount, onMounted, ref, watch } from 'vue';
47
47
  import MovableWindow from '@/internal/movable-window.vue';
48
- import { openedOverlayBoxes } from '@/internal/opened-overlay-boxes';
49
- import { nextWindowOrder } from '@/internal/window-order';
50
- import type { MovableWindowDragMode } from '@/types/movable-window';
48
+ import { openedOverlayBoxes } from '@/helpers/overlay-box';
49
+ import { nextWindowOrder } from '@/internal/window-control';
50
+ import type { MovableWindowDragMode } from '@/internal/window-control';
51
51
 
52
52
  export interface Props {
53
53
  /** 見出し。title スロットで差し替えられる */
@@ -36,8 +36,8 @@ TabGroupの中に置くタブ1つ分の中身
36
36
  <script setup lang="ts">
37
37
  import { computed, inject, ref } from 'vue';
38
38
  import type { ClassValue, Slot, StyleValue } from 'vue';
39
- import { tabGroupContextKey } from '@/internal/tab-group-context';
40
- import type { TabContentStatus } from '@/internal/tab-group-context';
39
+ import { tabGroupContextKey } from '@/internal/tab-group';
40
+ import type { TabContentStatus } from '@/internal/tab-group';
41
41
 
42
42
  // tabId・label・header*・status・#iconは、TabGroupが見出しを描画するために読む
43
43
  export interface Props {
package/src/tab-group.vue CHANGED
@@ -61,8 +61,8 @@ import { computed, onMounted, provide, ref, useId } from 'vue';
61
61
  import type { ClassValue, Slot, StyleValue, VNode } from 'vue';
62
62
  import LabelIcon from '@/label-icon.vue';
63
63
  import TabContent from '@/tab-content.vue';
64
- import { tabGroupContextKey } from '@/internal/tab-group-context';
65
- import type { TabContentStatus } from '@/internal/tab-group-context';
64
+ import { tabGroupContextKey } from '@/internal/tab-group';
65
+ import type { TabContentStatus } from '@/internal/tab-group';
66
66
 
67
67
  export interface Props {
68
68
  /** ラジオボタンのname。未指定なら自動で採番する */
@@ -1 +0,0 @@
1
- "use strict";const n=require("./warning-popper.vue_vue_type_style_index_0_lang-4FIOsOY5.cjs"),_=Object.freeze(Object.defineProperty({__proto__:null,AccordionFieldset:n._sfc_main$5,AccordionSection:n._sfc_main$6,CopyButton:n._sfc_main$1,DarkModeSelector:n._sfc_main$7,DataTable:n._sfc_main$8,HelpButton:n._sfc_main$9,HelpPopper:n._sfc_main$10,HourglassLoading:n._sfc_main$11,IntersectionLazyComponent:n._sfc_main$12,LabelButton:n._sfc_main$13,LabelIcon:n._sfc_main$14,ModalDialog:n._sfc_main$2,OverlayBox:n._sfc_main$3,PageSection:n._sfc_main$15,PageTitle:n._sfc_main$16,ScreenLoading:n._sfc_main$4,TabContent:n._sfc_main$17,TabGroup:n._sfc_main$18,WarningPopper:n._sfc_main$19},Symbol.toStringTag,{value:"Module"}));exports.components=_;
@@ -1,17 +0,0 @@
1
- import { DataTableHeader } from '../types/data-table.cjs';
2
- /**
3
- * ヘッダの csv の定義から CSV の列名を作る
4
- *
5
- * @param {DataTableHeader<T>[]} headers
6
- * @returns {string[]} 列名
7
- */
8
- export declare const headersToCsvColumns: <T>(headers: DataTableHeader<T>[]) => string[];
9
- /**
10
- * ヘッダの csv の定義に従って行から CSV の列の値を取り出す
11
- *
12
- * @param {DataTableHeader<T>[]} headers
13
- * @param {T} row
14
- * @param {number} [rowNumber] key が '$index' の列に出力する行番号
15
- * @returns {unknown[]} 列の値。文字列化はしない
16
- */
17
- export declare const rowToCsvColumns: <T>(headers: DataTableHeader<T>[], row: T, rowNumber?: number) => unknown[];
@@ -1,17 +0,0 @@
1
- import { DataTableHeader } from '../types/data-table';
2
- /**
3
- * ヘッダの csv の定義から CSV の列名を作る
4
- *
5
- * @param {DataTableHeader<T>[]} headers
6
- * @returns {string[]} 列名
7
- */
8
- export declare const headersToCsvColumns: <T>(headers: DataTableHeader<T>[]) => string[];
9
- /**
10
- * ヘッダの csv の定義に従って行から CSV の列の値を取り出す
11
- *
12
- * @param {DataTableHeader<T>[]} headers
13
- * @param {T} row
14
- * @param {number} [rowNumber] key が '$index' の列に出力する行番号
15
- * @returns {unknown[]} 列の値。文字列化はしない
16
- */
17
- export declare const rowToCsvColumns: <T>(headers: DataTableHeader<T>[], row: T, rowNumber?: number) => unknown[];
@@ -1,32 +0,0 @@
1
- import { DataTableValueType } from '../types/data-table.cjs';
2
- /**
3
- * ドット区切りのパスで入れ子の値を取り出す。途中が null なら undefined
4
- *
5
- * @param {unknown} obj
6
- * @param {string} path 'a.b.c' の形。'a[0].b' は 'a.0.b' と同じ
7
- * @returns {unknown}
8
- */
9
- export declare const getValueByPath: (obj: unknown, path: string) => unknown;
10
- /**
11
- * 文字列または文字列を返す関数から文字列を得る
12
- *
13
- * @param {string | (() => string)} label
14
- * @returns {string}
15
- */
16
- export declare const resolveLabel: (label: string | (() => string) | undefined) => string;
17
- /**
18
- * 型に応じて2つの値を比較する。null / undefined は最小として扱う
19
- *
20
- * @param {unknown} a
21
- * @param {unknown} b
22
- * @param {DataTableValueType} type
23
- * @returns {number} a が前なら負の数、後ろなら正の数、等しければ 0
24
- */
25
- export declare const compareValues: (a: unknown, b: unknown, type: DataTableValueType) => number;
26
- /**
27
- * 行の同一性の判定に使う文字列にする。bigint は文字列にし、循環参照は空文字にする
28
- *
29
- * @param {unknown} value
30
- * @returns {string}
31
- */
32
- export declare const stringifyValue: (value: unknown) => string;
@@ -1,32 +0,0 @@
1
- import { DataTableValueType } from '../types/data-table';
2
- /**
3
- * ドット区切りのパスで入れ子の値を取り出す。途中が null なら undefined
4
- *
5
- * @param {unknown} obj
6
- * @param {string} path 'a.b.c' の形。'a[0].b' は 'a.0.b' と同じ
7
- * @returns {unknown}
8
- */
9
- export declare const getValueByPath: (obj: unknown, path: string) => unknown;
10
- /**
11
- * 文字列または文字列を返す関数から文字列を得る
12
- *
13
- * @param {string | (() => string)} label
14
- * @returns {string}
15
- */
16
- export declare const resolveLabel: (label: string | (() => string) | undefined) => string;
17
- /**
18
- * 型に応じて2つの値を比較する。null / undefined は最小として扱う
19
- *
20
- * @param {unknown} a
21
- * @param {unknown} b
22
- * @param {DataTableValueType} type
23
- * @returns {number} a が前なら負の数、後ろなら正の数、等しければ 0
24
- */
25
- export declare const compareValues: (a: unknown, b: unknown, type: DataTableValueType) => number;
26
- /**
27
- * 行の同一性の判定に使う文字列にする。bigint は文字列にし、循環参照は空文字にする
28
- *
29
- * @param {unknown} value
30
- * @returns {string}
31
- */
32
- export declare const stringifyValue: (value: unknown) => string;
@@ -1,2 +0,0 @@
1
- /** 開いている OverlayBox を開いた順に持つ。Esc では最後に開いたものだけを閉じる */
2
- export declare const openedOverlayBoxes: symbol[];
@@ -1,2 +0,0 @@
1
- /** 開いている OverlayBox を開いた順に持つ。Esc では最後に開いたものだけを閉じる */
2
- export declare const openedOverlayBoxes: symbol[];
@@ -1,17 +0,0 @@
1
- import { ClassValue, StyleValue } from 'vue';
2
- /** snackbar を表示する画面上の位置 */
3
- export type SnackbarPlacement = 'top' | 'top-start' | 'top-end' | 'bottom' | 'bottom-start' | 'bottom-end';
4
- /** 同じ表示領域に並べる向き。overlap は同じ位置に重ねて新しいものを前面に出し、column は縦に積み、row は横に並べて端で折り返す */
5
- export type SnackbarDirection = 'overlap' | 'column' | 'row';
6
- /** 表示領域に並べる snackbar 1件分の内容 */
7
- export interface SnackbarItem {
8
- id: number;
9
- message: string;
10
- title?: string;
11
- label?: string;
12
- timestamp?: string;
13
- clearable: boolean;
14
- clearLabel: string;
15
- class?: ClassValue;
16
- style?: StyleValue;
17
- }
@@ -1,17 +0,0 @@
1
- import { ClassValue, StyleValue } from 'vue';
2
- /** snackbar を表示する画面上の位置 */
3
- export type SnackbarPlacement = 'top' | 'top-start' | 'top-end' | 'bottom' | 'bottom-start' | 'bottom-end';
4
- /** 同じ表示領域に並べる向き。overlap は同じ位置に重ねて新しいものを前面に出し、column は縦に積み、row は横に並べて端で折り返す */
5
- export type SnackbarDirection = 'overlap' | 'column' | 'row';
6
- /** 表示領域に並べる snackbar 1件分の内容 */
7
- export interface SnackbarItem {
8
- id: number;
9
- message: string;
10
- title?: string;
11
- label?: string;
12
- timestamp?: string;
13
- clearable: boolean;
14
- clearLabel: string;
15
- class?: ClassValue;
16
- style?: StyleValue;
17
- }
@@ -1,6 +0,0 @@
1
- /**
2
- * ウィンドウ(OverlayBox / FloatingComponent)の重なり順を返す。後から呼んだものほど大きく、前面に出る
3
- *
4
- * @returns {number}
5
- */
6
- export declare const nextWindowOrder: () => number;
@@ -1,6 +0,0 @@
1
- /**
2
- * ウィンドウ(OverlayBox / FloatingComponent)の重なり順を返す。後から呼んだものほど大きく、前面に出る
3
- *
4
- * @returns {number}
5
- */
6
- export declare const nextWindowOrder: () => number;
@@ -1,12 +0,0 @@
1
- import { Component } from 'vue';
2
- /**
3
- * アイコンとラベルの組み合わせ
4
- */
5
- export interface LabelPreset {
6
- /** アイコンのコンポーネント */
7
- icon: Component;
8
- /** アイコンに渡すProps */
9
- iconProps?: Record<string, unknown>;
10
- /** ラベル。言語切替に追従させる場合は、描画のたびに呼ばれる関数で渡す */
11
- label: string | (() => string);
12
- }
@@ -1,12 +0,0 @@
1
- import { Component } from 'vue';
2
- /**
3
- * アイコンとラベルの組み合わせ
4
- */
5
- export interface LabelPreset {
6
- /** アイコンのコンポーネント */
7
- icon: Component;
8
- /** アイコンに渡すProps */
9
- iconProps?: Record<string, unknown>;
10
- /** ラベル。言語切替に追従させる場合は、描画のたびに呼ばれる関数で渡す */
11
- label: string | (() => string);
12
- }
@@ -1,13 +0,0 @@
1
- /** モーダルダイアログの種類 */
2
- export type ModalDialogType = 'info' | 'confirm' | 'warn' | 'error';
3
- /** モーダルダイアログに並べるボタンの種類 */
4
- export type ModalDialogButton = 'ok' | 'yes' | 'no' | 'cancel';
5
- /** モーダルダイアログを閉じたボタン。Esc で閉じたときは cancel */
6
- export type ModalDialogResult = ModalDialogButton;
7
- /** モーダルダイアログに表示する画像。文字列は画像の URL */
8
- export type ModalDialogImage = string | {
9
- /** 画像の URL */
10
- src: string;
11
- /** 代替テキスト */
12
- alt: string;
13
- };
@@ -1,13 +0,0 @@
1
- /** モーダルダイアログの種類 */
2
- export type ModalDialogType = 'info' | 'confirm' | 'warn' | 'error';
3
- /** モーダルダイアログに並べるボタンの種類 */
4
- export type ModalDialogButton = 'ok' | 'yes' | 'no' | 'cancel';
5
- /** モーダルダイアログを閉じたボタン。Esc で閉じたときは cancel */
6
- export type ModalDialogResult = ModalDialogButton;
7
- /** モーダルダイアログに表示する画像。文字列は画像の URL */
8
- export type ModalDialogImage = string | {
9
- /** 画像の URL */
10
- src: string;
11
- /** 代替テキスト */
12
- alt: string;
13
- };
@@ -1,16 +0,0 @@
1
- /** ドラッグで移動するときに掴む範囲。body はウィンドウ全体、header は見出しだけ */
2
- export type MovableWindowDragMode = 'body' | 'header';
3
- /** showOverlayBox / showFloatingComponent が中身のコンポーネントに props として渡す関数 */
4
- export interface MovableWindowContentProps {
5
- /** ウィンドウを閉じる */
6
- close: () => void;
7
- /** ウィンドウのローディング表示を切り替える */
8
- setLoading: (loading: boolean) => void;
9
- }
10
- /** showOverlayBox / showFloatingComponent が返す、表示中のウィンドウを操作するためのハンドル */
11
- export interface MovableWindowHandle {
12
- /** ウィンドウを閉じ、閉じ終わったら取り外す */
13
- close: () => void;
14
- /** ウィンドウのローディング表示を切り替える */
15
- setLoading: (loading: boolean) => void;
16
- }
@@ -1,16 +0,0 @@
1
- /** ドラッグで移動するときに掴む範囲。body はウィンドウ全体、header は見出しだけ */
2
- export type MovableWindowDragMode = 'body' | 'header';
3
- /** showOverlayBox / showFloatingComponent が中身のコンポーネントに props として渡す関数 */
4
- export interface MovableWindowContentProps {
5
- /** ウィンドウを閉じる */
6
- close: () => void;
7
- /** ウィンドウのローディング表示を切り替える */
8
- setLoading: (loading: boolean) => void;
9
- }
10
- /** showOverlayBox / showFloatingComponent が返す、表示中のウィンドウを操作するためのハンドル */
11
- export interface MovableWindowHandle {
12
- /** ウィンドウを閉じ、閉じ終わったら取り外す */
13
- close: () => void;
14
- /** ウィンドウのローディング表示を切り替える */
15
- setLoading: (loading: boolean) => void;
16
- }
@@ -1 +0,0 @@
1
- "use strict";const e=require("vue"),C=require("@digitalwalletcorp/vue-svg-icons"),M=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))}}),he=70;function ee(r){const n=e.ref(!0);let t;return e.onMounted(()=>{const o=r.value;o!=null&&(t=new ResizeObserver(()=>{n.value=he<=o.scrollHeight}),t.observe(o))}),e.onBeforeUnmount(()=>{t?.disconnect()}),n}const be=["disabled"],we={class:"dwui-accordion-legend"},ye=["aria-expanded"],ke=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:m=>{l.value=m,a.value=m}}),v=ee(o),d=()=>{i.value=!i.value};return(m,g)=>(e.openBlock(),e.createElementBlock("fieldset",{class:"dwui-accordion-fieldset",disabled:n.disabled},[e.createElementVNode("legend",we,[e.createElementVNode("button",{type:"button",class:"dwui-accordion-toggle","aria-expanded":i.value,onClick:d},[e.createVNode(e.unref(C.SvgTriangleButton),{direction:i.value?"up":"down"},null,8,["direction"]),n.legend!=null||t.legend!=null||t.icon!=null?(e.openBlock(),e.createBlock(M,{key:0},e.createSlots({_:2},[t.icon!=null?{name:"icon",fn:e.withCtx(()=>[e.renderSlot(m.$slots,"icon")]),key:"0"}:void 0,n.legend!=null||t.legend!=null?{name:"default",fn:e.withCtx(()=>[e.renderSlot(m.$slots,"legend",{},()=>[e.createTextVNode(e.toDisplayString(n.legend),1)])]),key:"1"}:void 0]),1024)):e.createCommentVNode("",!0)],8,ye)]),e.createElementVNode("div",{ref_key:"refContents",ref:o,class:e.normalizeClass(["dwui-accordion-contents",e.unref(v)?i.value?"dwui-expanded":"dwui-shrunk":""])},[e.renderSlot(m.$slots,"default")],2)],8,be))}}),Be={class:"dwui-accordion-section"},_e={key:0,class:"dwui-accordion-section-control"},Se=["disabled","aria-expanded"],Ce=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}}),v=ee(o),d=e.computed(()=>i.value?n.collapsePreset:n.expandPreset),m=()=>(i.value?t["collapse-icon"]:t["expand-icon"])??d.value?.icon,g=()=>(i.value?t["collapse-icon"]:t["expand-icon"])==null?d.value?.iconProps:void 0,f=e.computed(()=>{const k=i.value?n.collapseLabel:n.expandLabel;if(k!=null)return k;const _=d.value?.label;return typeof _=="function"?_():_}),u=()=>{i.value=!i.value};return(k,_)=>(e.openBlock(),e.createElementBlock("div",Be,[e.createElementVNode("div",{ref_key:"refContents",ref:o,class:e.normalizeClass(["dwui-accordion-section-contents",[e.unref(v)?i.value?"dwui-expanded":"dwui-shrunk":"",{"dwui-no-gradient":n.noGradient}]])},[e.renderSlot(k.$slots,"default")],2),e.unref(v)?(e.openBlock(),e.createElementBlock("div",_e,[e.createElementVNode("button",{type:"button",class:"dwui-accordion-section-toggle",disabled:n.disabled,"aria-expanded":i.value,onClick:e.withModifiers(u,["stop"])},[m()!=null||f.value!=null?(e.openBlock(),e.createBlock(M,{key:0},e.createSlots({_:2},[m()!=null?{name:"icon",fn:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(m()),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(C.SvgTriangleButton),{key:1,direction:i.value?"up":"down"},null,8,["direction"]))],8,Se)])):e.createCommentVNode("",!0)]))}}),$e=["aria-label"],Ee=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(v){o("emit:error",v);return}o("emit:copy",i)};return(i,v)=>(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(C.SvgMemo))])],8,$e))}}),Ne=["aria-label","aria-checked"],xe={class:"dwui-dark-mode-selector-track"},Pe={class:"dwui-dark-mode-selector-icon-light"},Ve={class:"dwui-dark-mode-selector-icon-dark"},Le=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 v=y=>y==="light"||y==="dark",d=()=>i?.matches?"dark":"light",m=()=>{try{const y=localStorage.getItem(t.storageKey);return v(y)?y:null}catch{return null}},g=y=>{const c=document.documentElement.classList;c.remove(y==="dark"?"light":"dark"),c.add(y),a.value=y==="dark",l!==y&&(l=y,o("emit:change",y))},f=y=>{try{localStorage.setItem(t.storageKey,y)}catch{}g(y)},u=()=>{f(a.value?"light":"dark")},k=y=>{f(y.matches?"dark":"light")},_=y=>{y.key===t.storageKey&&g(v(y.newValue)?y.newValue:d())};return e.onMounted(()=>{i=window.matchMedia("(prefers-color-scheme: dark)"),g(m()??d()),i.addEventListener("change",k),window.addEventListener("storage",_)}),e.onBeforeUnmount(()=>{i?.removeEventListener("change",k),window.removeEventListener("storage",_)}),(y,c)=>(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",xe,[e.createElementVNode("span",Pe,[e.renderSlot(y.$slots,"icon-light",{},()=>[e.createVNode(e.unref(C.SvgHighBrightness))])]),e.createElementVNode("span",Ve,[e.renderSlot(y.$slots,"icon-dark",{},()=>[e.createVNode(e.unref(C.SvgMoonPhases),{"moon-age":3.85})])])]),c[0]||(c[0]=e.createElementVNode("span",{class:"dwui-dark-mode-selector-handle"},null,-1))],8,Ne))}}),Me={class:"dwui-pagination"},Te={class:"dwui-pagination-list"},De=["disabled","aria-label","title"],ze=["disabled","aria-label","title"],Ae=["disabled","aria-label","title"],Ie=["aria-current","onClick"],Oe=["disabled","aria-label","title"],He=["disabled","aria-label","title"],Re=["disabled","aria-label","title"],je={key:0,class:"dwui-pagination-select"},Fe=["value","disabled"],Ke=["value"],We=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),v=e.computed(()=>a.value<1?[]:i.value?Array.from({length:a.value},(c,B)=>B+1):[l.value]),d=e.computed(()=>{if(a.value<1)return[];const c=Math.min(Math.max(l.value-Math.floor((t.maxPagination-1)/2),1),Math.max(a.value-t.maxPagination+1,1)),B=Math.min(c+t.maxPagination-1,a.value);return Array.from({length:B-c+1},(h,E)=>c+E)}),m=c=>{c!==t.current&&o("emit:changePage",c)},g=c=>{let B;c<0?B=Math.max(d.value[0]-t.maxPagination,1):B=Math.min(d.value[d.value.length-1]+t.maxPagination,a.value)-t.maxPagination+1,m(B+Math.round((t.maxPagination-1)/2))},f=c=>{m(Number(c.target.value))},u=()=>{i.value=!0},k=c=>{document.activeElement!==c.currentTarget&&(i.value=!1)},_=()=>{i.value=!0},y=()=>{i.value=!1};return(c,B)=>(e.openBlock(),e.createElementBlock("div",Me,[e.createElementVNode("ul",Te,[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]=h=>m(1))},[e.createVNode(e.unref(C.SvgChevronDouble),{direction:"left",size:"1em","stroke-width":8})],8,De)]),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]=h=>m(l.value-1))},[e.createVNode(e.unref(C.SvgChevron),{direction:"left",size:"1em","stroke-width":8})],8,ze)]),e.createElementVNode("li",null,[e.createElementVNode("button",{type:"button",disabled:d.value.length===0||d.value[0]===1,"aria-label":t.labels.previousPages,title:t.labels.previousPages,onClick:B[2]||(B[2]=h=>g(-1))},[e.createVNode(e.unref(C.SvgBlackArrow),{direction:"left",size:"1em"})],8,Ae)]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.value,h=>(e.openBlock(),e.createElementBlock("li",{key:h},[e.createElementVNode("button",{type:"button",class:e.normalizeClass(["dwui-pagination-page",{"dwui-current":h===l.value}]),"aria-current":h===l.value?"page":void 0,onClick:E=>m(h)},e.toDisplayString(h),11,Ie)]))),128)),e.createElementVNode("li",null,[e.createElementVNode("button",{type:"button",disabled:d.value.length===0||d.value[d.value.length-1]===a.value,"aria-label":t.labels.nextPages,title:t.labels.nextPages,onClick:B[3]||(B[3]=h=>g(1))},[e.createVNode(e.unref(C.SvgBlackArrow),{direction:"right",size:"1em"})],8,Oe)]),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]=h=>m(l.value+1))},[e.createVNode(e.unref(C.SvgChevron),{direction:"right",size:"1em","stroke-width":8})],8,He)]),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]=h=>m(a.value))},[e.createVNode(e.unref(C.SvgChevronDouble),{direction:"right",size:"1em","stroke-width":8})],8,Re)])]),t.showPageSelect?(e.openBlock(),e.createElementBlock("label",je,[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:f},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(v.value,h=>(e.openBlock(),e.createElementBlock("option",{key:h,value:h},e.toDisplayString(h)+" ("+e.toDisplayString((h-1)*t.limit+1)+" - "+e.toDisplayString(Math.min(h*t.limit,t.totalCount))+") ",9,Ke))),128))],40,Fe)])):e.createCommentVNode("",!0)]))}}),Ue={class:"dwui-data-table-controls"},Ge={class:"dwui-data-table-tools"},Xe={key:0,class:"dwui-data-table-total"},qe={class:"dwui-data-table-total-count"},Ye={key:1,class:"dwui-data-table-limit"},Qe=["value","max"],Je=["title","aria-label"],Ze=["title","aria-label"],X=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=v=>{const d=v.target,m=Math.min(Math.max(Math.trunc(Number(d.value))||1,1),t.maxLimit);d.value=String(m),m!==t.limit&&o("emit:changeLimit",m)};return(v,d)=>(e.openBlock(),e.createElementBlock("div",Ue,[t.pagination?(e.openBlock(),e.createBlock(We,{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":d[0]||(d[0]=m=>o("emit:changePage",m))},null,8,["current","total-count","limit","max-pagination","show-page-select","labels"])):e.createCommentVNode("",!0),e.createElementVNode("div",Ge,[t.showTotal?(e.openBlock(),e.createElementBlock("span",Xe,[e.createElementVNode("span",null,e.toDisplayString(t.labels.totalCount),1),e.createElementVNode("span",qe,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",Ye,[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,Qe)])):e.createCommentVNode("",!0),t.showDownloadPage?(e.openBlock(),e.createElementBlock("button",{key:2,type:"button",title:t.labels.downloadPage,"aria-label":t.labels.downloadPage,onClick:d[1]||(d[1]=m=>o("emit:downloadPage"))},[e.createVNode(e.unref(C.SvgFolderDownload))],8,Je)):e.createCommentVNode("",!0),t.showDownloadAll?(e.openBlock(),e.createElementBlock("button",{key:3,type:"button",title:t.labels.downloadAll,"aria-label":t.labels.downloadAll,onClick:d[2]||(d[2]=m=>o("emit:downloadAll"))},[e.createVNode(e.unref(C.SvgCloudDownload))],8,Ze)):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},j=r=>typeof r=="function"?r():r??"",q=r=>r===!0||r==="true"||r==="1"||r==="on"||r===1,Y=r=>typeof r=="number"?r:Number(String(r).replace(/[^+\-\d.]/g,"")),et=(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(q(r)?1:0)-(q(n)?1:0);case"number":{const o=Y(r),a=Y(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""}},te=Symbol("dwui-vue-core-options"),tt=["rowspan","colspan","title","aria-sort"],ot={class:"dwui-data-table-header"},nt=["role","tabindex","onClick","onKeydown"],lt=["innerHTML"],at={key:2},rt=["onPointerdown"],it={key:0,class:"dwui-data-table-no-data"},st=["colspan"],ct={key:0,class:"dwui-data-table-loading"},dt=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(r,{expose:n,emit:t}){const o=r,a=t,l=e.inject(te,{}),i=e.ref(),v=e.ref(),d=e.ref(),m=e.ref({}),g=e.ref(""),f=e.ref(!1),u=e.ref();let k;const _=e.computed(()=>o.headers.map(s=>m.value[s.id]==null?s:{...s,width:m.value[s.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},c=e.computed(()=>{const s={...y};for(const p of[l.dataTable??{},o])for(const b of Object.keys(y))p[b]!==void 0&&Object.assign(s,{[b]:p[b]});return s}),B=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",...l.dataTable?.labels,...o.labels},p={};for(const b of Object.keys(s)){const $=s[b];p[b]=typeof $=="function"?$():$}return p}),h=e.computed(()=>Math.min(o.limit,c.value.maxLimit)),E=e.computed(()=>({showTotal:c.value.showTotal,showLimit:c.value.showLimit,showPageSelect:c.value.showPageSelect,showDownloadPage:c.value.showDownloadPage,showDownloadAll:c.value.showDownloadAll,current:o.current,limit:h.value,maxLimit:c.value.maxLimit,maxPagination:c.value.maxPagination,totalCount:o.totalCount??o.dataList.length,formatTotalCount:c.value.formatTotalCount,labels:B.value})),w=e.shallowRef(void 0),N=e.computed(()=>{const s=c.value.sortMode==="page"?o.headers.find(b=>b.id===g.value):void 0;if(!s)return o.dataList;const p=s.compare??((b,$)=>{const x=s.sortKey??s.id;return et(R(b,x),R($,x),s.type??"string")});return[...o.dataList].sort((b,$)=>f.value?p($,b):p(b,$))}),S=e.computed(()=>{const s=w.value;if(s==null)return-1;const p=N.value.indexOf(s);if(p!==-1)return p;const b=A(s);return b===""?-1:N.value.findIndex($=>A($)===b)}),V=e.computed(()=>o.headers.reduce((s,p)=>s+(p.colspan==null?1:Number(p.colspan)),0)),P=s=>{if(s!=null)return typeof s=="number"?`${s}px`:s},L=s=>({width:P(s.width),minWidth:P(s.minWidth),maxWidth:P(s.maxWidth)}),ce=s=>{if(g.value===s)return f.value?"descending":"ascending"},F=s=>{if(!(!c.value.sortable||g.value!==s))return f.value?"down":"up"},de=s=>(o.current-1)*h.value+s+1,K=()=>Array.from(d.value?.children??[]).filter(s=>s.tagName==="TR"&&!s.classList.contains("dwui-data-table-no-data")),ue=s=>Array.from(s.children).filter(p=>p.tagName==="TD"||p.tagName==="TH"),W=()=>{a("emit:updateHeader",_.value.map(s=>({...s})))},I=()=>{K().forEach((s,p)=>s.classList.toggle("dwui-selected",p===S.value))},me=()=>{const s=i.value,p=K()[S.value];if(!s||!p)return;const b=v.value?.offsetHeight??0,$=p.offsetTop,x=$+p.offsetHeight;$<s.scrollTop+b?s.scrollTop=$-b:s.scrollTop+s.clientHeight<x&&(s.scrollTop=x-s.clientHeight)},D=(s,p)=>{w.value=s,a("emit:selectRow",s,p)},U=(s,p)=>{c.value.selectable&&(p===S.value?D(void 0,-1):(D(s,p),i.value?.focus({preventScroll:!0})))},pe=(s,p)=>{p!==S.value&&U(s,p),a("emit:dblclickRow",s,p)},fe=s=>{if(s.target!==s.currentTarget||S.value<0||s.key!=="ArrowUp"&&s.key!=="ArrowDown")return;const p=S.value+(s.key==="ArrowUp"?-1:1);p<0||N.value.length<=p||(s.preventDefault(),D(N.value[p],p))},O=s=>{!c.value.sortable||o.dataList.length===0||(f.value=g.value===s.id?!f.value:!1,g.value=s.id,a("emit:changeSort",{sortKey:g.value,descending:f.value}))},ve=(s,p)=>{if(!c.value.resizable)return;s.preventDefault();const b=v.value?.firstElementChild,$=b?ue(b):[];for(const[x,T]of $.entries())m.value[o.headers[x].id]=T.getBoundingClientRect().width;u.value={index:p,x:s.clientX},s.currentTarget.setPointerCapture(s.pointerId),W()},ge=s=>{if(!u.value)return;const p=s.clientX-u.value.x;if(p===0)return;u.value.x=s.clientX;const b=u.value.index,$=o.headers.map(T=>T.id);m.value[$[b]]+=p;const x=p/($.length-b-1);for(const T of $.slice(b+1))m.value[T]-=x},G=()=>{u.value&&(u.value=void 0,W())};return e.onMounted(()=>{k=new MutationObserver(I),d.value&&k.observe(d.value,{childList:!0}),I()}),e.onBeforeUnmount(()=>{k?.disconnect()}),e.watch(()=>o.headers,(s,p)=>{const b=s.map(x=>x.id),$=p.map(x=>x.id);(b.length!==$.length||b.some(x=>!$.includes(x)))&&(m.value={})}),e.watch(()=>o.loading,(s,p)=>{p&&!s&&(c.value.sortMode==="page"&&(g.value="",f.value=!1),w.value!=null&&D(void 0,-1))}),e.watch(S,s=>{0<=s&&me()},{flush:"post"}),e.watch(S,I,{flush:"post"}),n({getSortContext:()=>({sortKey:g.value,descending:f.value})}),(s,p)=>(e.openBlock(),e.createElementBlock("section",{class:e.normalizeClass(["dwui-data-table",{"dwui-selectable":c.value.selectable}])},[c.value.controls==="both"||c.value.controls==="top"?(e.openBlock(),e.createBlock(X,e.mergeProps({key:0},E.value,{pagination:c.value.pagination==="both"||c.value.pagination==="top","onEmit:changePage":p[0]||(p[0]=b=>a("emit:changePage",b)),"onEmit:changeLimit":p[1]||(p[1]=b=>a("emit:changeLimit",b)),"onEmit:downloadPage":p[2]||(p[2]=b=>a("emit:downloadPage")),"onEmit:downloadAll":p[3]||(p[3]=b=>a("emit:downloadAll"))}),null,16,["pagination"])):e.createCommentVNode("",!0),e.createElementVNode("div",{ref_key:"refContent",ref:i,class:e.normalizeClass(["dwui-data-table-content",[{"dwui-loading":o.loading},c.value.contentClass]]),style:e.normalizeStyle(c.value.contentStyle),tabindex:"-1",onKeydown:fe},[e.createElementVNode("table",{class:e.normalizeClass(c.value.tableClass),style:e.normalizeStyle(c.value.tableStyle)},[e.createElementVNode("thead",{ref_key:"refThead",ref:v},[e.createElementVNode("tr",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(_.value,(b,$)=>(e.openBlock(),e.createElementBlock("th",{key:b.id,rowspan:b.rowspan,colspan:b.colspan,title:b.title,style:e.normalizeStyle(L(b)),"aria-sort":ce(b.id),scope:"col"},[e.createElementVNode("div",ot,[e.createElementVNode("span",{class:"dwui-data-table-sort",role:c.value.sortable?"button":void 0,tabindex:c.value.sortable?0:void 0,onClick:x=>O(b),onKeydown:[e.withKeys(e.withModifiers(x=>O(b),["prevent"]),["enter"]),e.withKeys(e.withModifiers(x=>O(b),["prevent"]),["space"])]},[F(b.id)?(e.openBlock(),e.createBlock(e.unref(C.SvgPointingTriangle),{key:0,direction:F(b.id),size:"0.7em"},null,8,["direction"])):e.createCommentVNode("",!0),b.html?(e.openBlock(),e.createElementBlock("span",{key:1,innerHTML:e.unref(j)(b.label)},null,8,lt)):(e.openBlock(),e.createElementBlock("span",at,e.toDisplayString(e.unref(j)(b.label)),1))],40,nt)]),c.value.resizable&&$<_.value.length-1?(e.openBlock(),e.createElementBlock("div",{key:0,class:"dwui-data-table-resizer",onPointerdown:x=>ve(x,$),onPointermove:ge,onPointerup:G,onPointercancel:G},null,40,rt)):e.createCommentVNode("",!0)],12,tt))),128))])],512),e.createElementVNode("tbody",{ref_key:"refTbody",ref:d},[o.loading?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.renderSlot(s.$slots,"default",{rows:N.value,clickRow:U,dblclickRow:pe,rowNumber:de,selectedIndex:S.value}),o.dataList.length===0&&c.value.showNoData?(e.openBlock(),e.createElementBlock("tr",it,[e.createElementVNode("td",{colspan:V.value},e.toDisplayString(B.value.noData),9,st)])):e.createCommentVNode("",!0)],64))],512)],6),o.loading?(e.openBlock(),e.createElementBlock("div",ct,[e.renderSlot(s.$slots,"loading",{},()=>[p[8]||(p[8]=e.createElementVNode("div",{class:"dwui-data-table-loading-spinner"},null,-1))])])):e.createCommentVNode("",!0)],38),c.value.controls==="both"||c.value.controls==="bottom"?(e.openBlock(),e.createBlock(X,e.mergeProps({key:1},E.value,{pagination:c.value.pagination==="both"||c.value.pagination==="bottom","onEmit:changePage":p[4]||(p[4]=b=>a("emit:changePage",b)),"onEmit:changeLimit":p[5]||(p[5]=b=>a("emit:changeLimit",b)),"onEmit:downloadPage":p[6]||(p[6]=b=>a("emit:downloadPage")),"onEmit:downloadAll":p[7]||(p[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),oe=(r,n,t,o)=>{const{offset:a,margin:l,arrowMargin:i}=o,[v,d="center"]=o.placement.split("-"),m=v==="top"||v==="bottom",g=r.top+r.height,f=r.left+r.width,u={top:r.top-l,bottom:t.height-g-l,left:r.left-l,right:t.width-f-l},y=(m?n.height:n.width)+a<=u[v]||u[Q[v]]<=u[v]?v:Q[v];let c;switch(y){case"top":c=r.top-a-n.height;break;case"bottom":c=g+a;break;case"left":c=r.left-a-n.width;break;default:c=f+a;break}const B=m?r.left:r.top,h=m?r.width:r.height,E=m?n.width:n.height;let w;switch(d){case"start":w=B;break;case"end":w=B+h-E;break;default:w=B+(h-E)/2;break}const N=H(m?c:w,l,Math.max(l,t.height-l-n.height)),S=H(m?w:c,l,Math.max(l,t.width-l-n.width)),V=B+h/2,L=H(V-(m?S:N),i,Math.max(i,E-i));return{top:N,left:S,side:y,arrow:L}},ut=["popover","data-side"],mt={class:"dwui-anchored-popover-content"},J=4,pt=7,ft=12,vt=8,ne=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(),v=()=>{l.value?.hidePopover()},d=()=>{l.value?.showPopover()},m=()=>{const u=l.value;if(!o.anchor||!u)return;const k={width:document.documentElement.clientWidth,height:document.documentElement.clientHeight},_=oe(o.anchor.getBoundingClientRect(),u.getBoundingClientRect(),k,{placement:o.placement,offset:o.arrow?J+pt:J,margin:vt,arrowMargin:ft});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"},g=u=>{l.value?.contains(u.target)||m()},f=u=>{u.newState==="open"?(m(),window.addEventListener("scroll",g,!0),window.addEventListener("resize",m),a("emit:open")):(l.value&&(l.value.style.visibility=""),window.removeEventListener("scroll",g,!0),window.removeEventListener("resize",m),a("emit:close"))};return e.onBeforeUnmount(()=>{window.removeEventListener("scroll",g,!0),window.removeEventListener("resize",m)}),n({element:l,show:d,hide:v}),(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:f},[e.createElementVNode("div",mt,[e.renderSlot(u.$slots,"default")])],42,ut))}}),gt=["aria-label"],ht=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 v=i.value?.element;l.value&&v&&(l.value.popoverTargetElement=v)}),(v,d)=>(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(v.$slots,"icon",{},()=>[e.createVNode(e.unref(C.SvgQuestion))])],16,gt),e.createVNode(ne,{ref_key:"refPopover",ref:i,class:"dwui-help-button-popover",mode:"auto",anchor:l.value,placement:t.placement,arrow:t.arrow,"onEmit:open":d[0]||(d[0]=m=>o("emit:open")),"onEmit:close":d[1]||(d[1]=m=>o("emit:close"))},{default:e.withCtx(()=>[e.renderSlot(v.$slots,"default")]),_:3},8,["anchor","placement","arrow"])],64))}}),bt=["aria-label","aria-describedby"],wt=150,le=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(),v=e.ref(!1),d=e.useId();let m;const g=()=>{m!==void 0&&(clearTimeout(m),m=void 0)},f=()=>{g(),i.value?.show()},u=()=>{g(),i.value?.hide()},k=()=>{g(),m=setTimeout(()=>{m=void 0,i.value?.hide()},wt)},_=P=>{const L=P.target;!l.value?.contains(L)&&!i.value?.element?.contains(L)&&u()},y=P=>{P.pointerType!=="touch"&&f()},c=P=>{P.pointerType!=="touch"&&k()},B=P=>{P.pointerType!=="touch"&&g()},h=P=>{P.pointerType==="touch"&&(v.value?u():f())},E=()=>{f()},w=()=>{u()},N=()=>{u()},S=()=>{v.value=!0,document.addEventListener("pointerdown",_,!0),o("emit:open")},V=()=>{v.value=!1,document.removeEventListener("pointerdown",_,!0),o("emit:close")};return e.onBeforeUnmount(()=>{g(),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(d)},e.unref(a),{onPointerenter:y,onPointerleave:c,onPointerdown:h,onFocus:E,onBlur:w,onKeydown:e.withKeys(N,["esc"])}),[e.renderSlot(P.$slots,"icon")],16,bt),e.createVNode(ne,{ref_key:"refPopover",ref:i,id:e.unref(d),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:c,"onEmit:open":S,"onEmit:close":V},{default:e.withCtx(()=>[e.renderSlot(P.$slots,"default")]),_:3},8,["id","class","anchor","placement","arrow"])],64))}}),yt=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(le,{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(C.SvgQuestion))])]),default:e.withCtx(()=>[e.renderSlot(a.$slots,"default")]),_:3},8,["placement","arrow","label"]))}}),kt=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(C.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)}}),Bt=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 v=()=>{i?.disconnect(),i=void 0,!(!a.value||l.value)&&(i=new IntersectionObserver(d=>{d.some(m=>m.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(()=>{v()}),e.onBeforeUnmount(()=>{i?.disconnect()}),e.watch(()=>[t.root,t.rootMargin,t.threshold],()=>{v()},{flush:"post"}),(d,m)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"refTarget",ref:a,class:"dwui-intersection-lazy-component"},[l.value?e.renderSlot(d.$slots,"default",{},void 0,void 0,0):e.renderSlot(d.$slots,"placeholder",{},void 0,void 0,1)],512))}}),_t={type:"button",class:"dwui-label-button"},St=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",_t,[e.createVNode(M,{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"])]))}}),Ct=["aria-labelledby","aria-describedby"],$t={class:"dwui-modal-dialog-header"},Et={class:"dwui-modal-dialog-icon"},Nt=["id","innerHTML"],xt=["id"],Pt=["id"],Vt=["innerHTML"],Lt={key:1},Mt={key:0,class:"dwui-modal-dialog-images"},Tt=["src","alt"],Dt=["onClick"],zt=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(),v=e.useId(),d=e.useId(),m={info:C.SvgInfo,confirm:C.SvgQuestion,warn:C.SvgWarningSign,error:C.SvgCritical},g=["cancel","no","yes","ok"],f=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=>{E(w)},c=w=>{w.preventDefault(),E("cancel")},B=w=>{if(w.key!=="ArrowLeft"&&w.key!=="ArrowRight")return;const N=[...i.value?.children??[]],S=N.indexOf(document.activeElement);S<0||N[w.key==="ArrowRight"?S+1:S-1]?.focus()},h=()=>{l.value?.showModal();const w=g.find(S=>f.value.includes(S)),N=w?f.value.indexOf(w):-1;i.value?.children[N]?.focus()},E=w=>{l.value?.close(),a.value=!1,o("emit:close",w)};return e.onMounted(()=>{a.value&&h()}),e.watch(a,w=>{w?h():l.value?.close()},{flush:"post"}),(w,N)=>(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(v):void 0,"aria-describedby":e.unref(d),onCancel:c,onKeydown:B},[e.createElementVNode("div",$t,[e.createElementVNode("span",Et,[e.renderSlot(w.$slots,"icon",{},()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(m[t.type])))])]),t.title?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[t.html?(e.openBlock(),e.createElementBlock("span",{key:0,id:e.unref(v),class:"dwui-modal-dialog-title",innerHTML:t.title},null,8,Nt)):(e.openBlock(),e.createElementBlock("span",{key:1,id:e.unref(v),class:"dwui-modal-dialog-title"},e.toDisplayString(t.title),9,xt))],64)):e.createCommentVNode("",!0)]),e.createElementVNode("div",{id:e.unref(d),class:"dwui-modal-dialog-body"},[e.renderSlot(w.$slots,"default",{},()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(k.value,(S,V)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:V},[t.html?(e.openBlock(),e.createElementBlock("p",{key:0,innerHTML:S},null,8,Vt)):(e.openBlock(),e.createElementBlock("p",Lt,e.toDisplayString(S),1))],64))),128)),_.value.length?(e.openBlock(),e.createElementBlock("div",Mt,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(_.value,(S,V)=>(e.openBlock(),e.createElementBlock("img",{key:V,src:S.src,alt:S.alt},null,8,Tt))),128))])):e.createCommentVNode("",!0)])],8,Pt),e.createElementVNode("div",{ref_key:"refButtons",ref:i,class:"dwui-modal-dialog-buttons"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(f.value,S=>(e.openBlock(),e.createElementBlock("button",{key:S,type:"button",class:e.normalizeClass(["dwui-modal-dialog-button",`dwui-modal-dialog-button-${S}`]),onClick:V=>y(S)},e.toDisplayString(u.value[S]),11,Dt))),128))],512)],42,Ct))}});function At(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 v=null,d="bottom-right",m={x:0,y:0};const g=h=>{if(h.pointerId!==v)return;h.preventDefault();const E=h.clientX-m.x,w=h.clientY-m.y;if(m={x:h.clientX,y:h.clientY},o.value)l.x+=E,l.y+=w;else if(a.value){if(d.endsWith("left")){const N=Math.max(n,i.width-E);l.x+=i.width-N,i.width=N}else i.width=Math.max(n,i.width+E);if(d.startsWith("top")){const N=Math.max(t,i.height-w);l.y+=i.height-N,i.height=N}else i.height=Math.max(t,i.height+w)}},f=()=>{const h=r.target.value?.getBoundingClientRect().width||0;l.x<40-h&&(l.x=40-h),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=h=>{if(h.pointerId!==v)return;const E=o.value;k(),E&&f()},k=()=>{document.removeEventListener("pointermove",g,!0),document.removeEventListener("pointerup",u,!0),document.removeEventListener("pointercancel",u,!0),v=null,o.value=!1,a.value=!1},_=h=>{k(),v=h.pointerId,m={x:h.clientX,y:h.clientY},document.addEventListener("pointermove",g,!0),document.addEventListener("pointerup",u,!0),document.addEventListener("pointercancel",u,!0)},y=h=>{h.isPrimary&&r.dragMode()==="body"&&(_(h),o.value=!0)},c=h=>{h.isPrimary&&r.dragMode()==="header"&&(_(h),o.value=!0)},B=(h,E="bottom-right")=>{if(!h.isPrimary)return;d=E;const w=r.target.value?.getBoundingClientRect();w&&(i.width<0&&(i.width=w.width),i.height<0&&(i.height=w.height)),_(h),a.value=!0};return e.onBeforeUnmount(k),{moving:o,resizing:a,currentPosition:l,currentRect:i,onDragStart:y,onDragHeaderStart:c,onResizeStart:B,teardown:k}}const It=["aria-labelledby"],Ot=["id"],Ht=["aria-label"],Rt=["onPointerdown"],ae=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(),v=["top-left","top-right","bottom-left"],d=At({target:l,dragMode:()=>o.dragMode,clampBottom:o.clampBottom}),m=e.computed(()=>{const{currentPosition:g,currentRect:f}=d;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 n({element:l,position:d.currentPosition,size:d.currentRect,teardown:d.teardown}),(g,f)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"refWindow",ref:l,class:"dwui-movable-window",role:"dialog","aria-labelledby":e.unref(i),style:e.normalizeStyle(m.value)},[e.createElementVNode("div",{class:"dwui-movable-window-frame",onPointerdown:f[2]||(f[2]=(...u)=>e.unref(d).onDragStart&&e.unref(d).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:f[1]||(f[1]=(...u)=>e.unref(d).onDragHeaderStart&&e.unref(d).onDragHeaderStart(...u))},[e.createElementVNode("div",{id:e.unref(i),class:e.normalizeClass(["dwui-movable-window-title",`${o.name}-title`])},[e.renderSlot(g.$slots,"title")],10,Ot),e.renderSlot(g.$slots,"actions"),e.createElementVNode("button",{type:"button",class:e.normalizeClass(["dwui-movable-window-close-button",`${o.name}-close-button`]),"aria-label":o.closeLabel,onClick:f[0]||(f[0]=u=>a("emit:close"))},[e.createVNode(e.unref(C.SvgNegativeSquaredCrossMark))],10,Ht)],38),e.createElementVNode("div",{class:e.normalizeClass(["dwui-movable-window-body",[`${o.name}-body`,{"dwui-movable":o.dragMode==="body"}]])},[e.renderSlot(g.$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(v,u=>e.createElementVNode("div",{key:u,class:e.normalizeClass(["dwui-movable-window-corner",[`${o.name}-corner`,`dwui-${u}`]]),onPointerdown:e.withModifiers(k=>e.unref(d).onResizeStart(k,u),["prevent"])},null,42,Rt)),64)),e.createElementVNode("div",{class:e.normalizeClass(["dwui-movable-window-resizer",`${o.name}-resizer`]),onPointerdown:f[3]||(f[3]=e.withModifiers(u=>e.unref(d).onResizeStart(u,"bottom-right"),["prevent"]))},[e.createVNode(e.unref(C.SvgCornerDiagonal),{direction:"bottom-right"})],34)],12,It))}}),z=[];let Z=0;const re=()=>(Z+=1,Z),jt=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),v=Symbol("dwui-overlay-box");let d=null;const m=()=>{t.closeOnBackdrop&&(a.value=!1)},g=()=>{a.value=!1},f=c=>{c.key!=="Escape"||!c.isTrusted||c.isComposing||c.target instanceof Element&&c.target.closest("dialog")||z.at(-1)===v&&(a.value=!1)},u=()=>{o("emit:close")},k=()=>{const c=z.indexOf(v);0<=c&&z.splice(c,1)},_=()=>{i.value=re();const c=l.value,B=c?.element?.getBoundingClientRect();c&&(c.position.x=(window.innerWidth-(B?.width||0))/2,c.position.y=Math.max(0,(window.innerHeight-(B?.height||0))/2)),d=document.activeElement instanceof HTMLElement?document.activeElement:null,c?.element?.focus(),z.push(v)},y=()=>{l.value?.teardown(),k(),d?.isConnected&&d.focus(),d=null};return e.onMounted(()=>{a.value&&_()}),e.onBeforeUnmount(()=>{k()}),e.watch(a,c=>{c?_():y()},{flush:"post"}),(c,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:m}),e.createVNode(ae,{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:f,"onEmit:close":g},{title:e.withCtx(()=>[e.renderSlot(c.$slots,"title",{},()=>[e.createTextVNode(e.toDisplayString(t.title),1)])]),default:e.withCtx(()=>[e.renderSlot(c.$slots,"default")]),_:3},8,["drag-mode","loading","close-label"])],4)):e.createCommentVNode("",!0)]),_:3}))}}),Ft={class:"dwui-page-section"},Kt={class:"dwui-page-section-content"},Wt=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:C.SvgDiamond,shape:!0,color:"#1a44b6"},circle:{component:C.SvgCircle,shape:!0,color:"#e78b2f"},square:{component:C.SvgSquare,shape:!0,color:"#d13a2b"},pushpin:{component:C.SvgPushpin,shape:!1},"round-pushpin":{component:C.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",Ft,[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(M,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",Kt,[e.renderSlot(a.$slots,"default")])]))}}),Ut={class:"dwui-page-title"},Gt={key:0,class:"dwui-page-title-actions"},Xt=e.defineComponent({__name:"page-title",props:{title:{}},setup(r){const n=r,t=e.useSlots();return(o,a)=>(e.openBlock(),e.createElementBlock("section",Ut,[e.createVNode(M,{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",Gt,[e.renderSlot(o.$slots,"default")])):e.createCommentVNode("",!0)]))}}),qt=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))}}),ie=Symbol("dwui-tab-group"),Yt=["id","aria-labelledby","aria-busy","hidden"],Qt={key:0,class:"dwui-tab-loading"},Jt={key:1,class:"dwui-tab-loading-spinner"},se=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(ie,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),v=d=>{o.value=d};return(d,m)=>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(d.$slots,"default",{activated:i.value,setLoading:v}),o.value?(e.openBlock(),e.createElementBlock("div",Qt,[a()!=null?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(a()),{key:0})):(e.openBlock(),e.createElementBlock("span",Jt))])):e.createCommentVNode("",!0)],8,Yt))}}),Zt={class:"dwui-tab-group"},eo=["id","name","disabled","checked","aria-selected","aria-controls","onChange"],to=["for"],oo={class:"dwui-tab-items"},no=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=g=>{if(g.type!==se)return;const f=g.props??{},u=f.disabled;return{tabId:String(f["tab-id"]??f.tabId),label:f.label,disabled:u===""||!!u,status:f.status,headerClass:f["header-class"]??f.headerClass,headerStyle:f["header-style"]??f.headerStyle,icon:g.children?.icon}},i=e.computed(()=>{const g=[];for(const f of o.default?.()??[]){const u=Array.isArray(f.children)?f.children:[f];for(const k of u){const _=l(k);_&&g.push(_)}}return g}),v=e.computed(()=>t.value!=null?t.value:(n.selectFirstEnabled?i.value.find(f=>!f.disabled):i.value[0])?.tabId),d=e.ref(!1);e.provide(ie,{groupName:a,activeTabId:v,mounted:d,loadingSlot:()=>o.loading}),e.onMounted(()=>{d.value=!0});const m=g=>{t.value=g};return(g,f)=>(e.openBlock(),e.createElementBlock("div",Zt,[(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===v.value,"aria-selected":u.tabId===v.value?"true":"false","aria-controls":`${e.unref(a)}-${u.tabId}-panel`,onChange:k=>m(u.tabId)},null,40,eo),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(M,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,to)],64))),128))],6)],8,["to","disabled"])),e.createElementVNode("div",oo,[e.renderSlot(g.$slots,"default")])]))}}),lo=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(le,{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(C.SvgWarningSign))])]),default:e.withCtx(()=>[e.renderSlot(a.$slots,"default")]),_:3},8,["placement","arrow","label"]))}});exports._sfc_main=ae;exports._sfc_main$1=Ee;exports._sfc_main$10=yt;exports._sfc_main$11=kt;exports._sfc_main$12=Bt;exports._sfc_main$13=St;exports._sfc_main$14=M;exports._sfc_main$15=Wt;exports._sfc_main$16=Xt;exports._sfc_main$17=se;exports._sfc_main$18=no;exports._sfc_main$19=lo;exports._sfc_main$2=zt;exports._sfc_main$3=jt;exports._sfc_main$4=qt;exports._sfc_main$5=ke;exports._sfc_main$6=Ce;exports._sfc_main$7=Le;exports._sfc_main$8=dt;exports._sfc_main$9=ht;exports.computeAnchoredPosition=oe;exports.getValueByPath=R;exports.nextWindowOrder=re;exports.resolveLabel=j;exports.vueCoreOptionsKey=te;