@digitalwalletcorp/vue-core 1.2.1 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (188) hide show
  1. package/README.md +79 -3
  2. package/lib/accordion-fieldset.d.cts +14 -4
  3. package/lib/accordion-fieldset.d.ts +14 -4
  4. package/lib/accordion-section.d.cts +20 -10
  5. package/lib/accordion-section.d.ts +20 -10
  6. package/lib/components-2zQ2SZuY.js +26 -0
  7. package/lib/components-HaiHcseF.cjs +1 -0
  8. package/lib/components.d.cts +10 -0
  9. package/lib/components.d.ts +10 -0
  10. package/lib/copy-button.d.cts +34 -0
  11. package/lib/copy-button.d.ts +34 -0
  12. package/lib/dark-mode-selector.d.cts +32 -0
  13. package/lib/dark-mode-selector.d.ts +32 -0
  14. package/lib/data-table.d.cts +30 -0
  15. package/lib/data-table.d.ts +30 -0
  16. package/lib/help-button.d.cts +39 -0
  17. package/lib/help-button.d.ts +39 -0
  18. package/lib/help-popper.d.cts +39 -0
  19. package/lib/help-popper.d.ts +39 -0
  20. package/lib/helpers/data-table-csv.d.cts +17 -0
  21. package/lib/helpers/data-table-csv.d.ts +17 -0
  22. package/lib/helpers/show-floating-component.d.cts +82 -0
  23. package/lib/helpers/show-floating-component.d.ts +82 -0
  24. package/lib/helpers/show-modal-dialog.d.cts +73 -0
  25. package/lib/helpers/show-modal-dialog.d.ts +73 -0
  26. package/lib/helpers/show-overlay-box.d.cts +53 -0
  27. package/lib/helpers/show-overlay-box.d.ts +53 -0
  28. package/lib/helpers/show-screen-loading.d.cts +20 -0
  29. package/lib/helpers/show-screen-loading.d.ts +20 -0
  30. package/lib/helpers/show-snackbar.d.cts +47 -0
  31. package/lib/helpers/show-snackbar.d.ts +47 -0
  32. package/lib/hourglass-loading.d.cts +1 -1
  33. package/lib/hourglass-loading.d.ts +1 -1
  34. package/lib/index.cjs +1 -1
  35. package/lib/index.d.cts +34 -0
  36. package/lib/index.d.ts +34 -0
  37. package/lib/index.js +445 -18
  38. package/lib/internal/anchored-popover.d.cts +35 -0
  39. package/lib/internal/anchored-popover.d.ts +35 -0
  40. package/lib/internal/anchored-position.d.cts +50 -0
  41. package/lib/internal/anchored-position.d.ts +50 -0
  42. package/lib/internal/data-table-controls.d.cts +42 -0
  43. package/lib/internal/data-table-controls.d.ts +42 -0
  44. package/lib/internal/data-table-value.d.cts +32 -0
  45. package/lib/internal/data-table-value.d.ts +32 -0
  46. package/lib/internal/floating-component.d.cts +52 -0
  47. package/lib/internal/floating-component.d.ts +52 -0
  48. package/lib/internal/icon-popper.d.cts +32 -0
  49. package/lib/internal/icon-popper.d.ts +32 -0
  50. package/lib/internal/mount-window.d.cts +39 -0
  51. package/lib/internal/mount-window.d.ts +39 -0
  52. package/lib/internal/movable-window.d.cts +55 -0
  53. package/lib/internal/movable-window.d.ts +55 -0
  54. package/lib/internal/opened-overlay-boxes.d.cts +2 -0
  55. package/lib/internal/opened-overlay-boxes.d.ts +2 -0
  56. package/lib/internal/pagination.d.cts +22 -0
  57. package/lib/internal/pagination.d.ts +22 -0
  58. package/lib/internal/snackbar-container.d.cts +20 -0
  59. package/lib/internal/snackbar-container.d.ts +20 -0
  60. package/lib/internal/snackbar-item.d.cts +17 -0
  61. package/lib/internal/snackbar-item.d.ts +17 -0
  62. package/lib/internal/tab-group-context.d.cts +4 -2
  63. package/lib/internal/tab-group-context.d.ts +4 -2
  64. package/lib/internal/use-movable-window.d.cts +44 -0
  65. package/lib/internal/use-movable-window.d.ts +44 -0
  66. package/lib/internal/window-order.d.cts +6 -0
  67. package/lib/internal/window-order.d.ts +6 -0
  68. package/lib/intersection-lazy-component.d.cts +32 -0
  69. package/lib/intersection-lazy-component.d.ts +32 -0
  70. package/lib/label-button.d.cts +2 -2
  71. package/lib/label-button.d.ts +2 -2
  72. package/lib/label-icon.d.cts +2 -2
  73. package/lib/label-icon.d.ts +2 -2
  74. package/lib/modal-dialog.d.cts +67 -0
  75. package/lib/modal-dialog.d.ts +67 -0
  76. package/lib/nuxt.cjs +1 -1
  77. package/lib/nuxt.js +1 -1
  78. package/lib/overlay-box.d.cts +52 -0
  79. package/lib/overlay-box.d.ts +52 -0
  80. package/lib/page-section.d.cts +2 -2
  81. package/lib/page-section.d.ts +2 -2
  82. package/lib/page-title.d.cts +2 -2
  83. package/lib/page-title.d.ts +2 -2
  84. package/lib/register.cjs +1 -1
  85. package/lib/register.js +1 -1
  86. package/lib/screen-loading.d.cts +7 -0
  87. package/lib/screen-loading.d.ts +7 -0
  88. package/lib/style.css +1 -1
  89. package/lib/tab-content.d.cts +5 -5
  90. package/lib/tab-content.d.ts +5 -5
  91. package/lib/tab-group.d.cts +7 -10
  92. package/lib/tab-group.d.ts +7 -10
  93. package/lib/types/data-table.d.cts +185 -0
  94. package/lib/types/data-table.d.ts +185 -0
  95. package/lib/types/modal-dialog.d.cts +13 -0
  96. package/lib/types/modal-dialog.d.ts +13 -0
  97. package/lib/types/movable-window.d.cts +16 -0
  98. package/lib/types/movable-window.d.ts +16 -0
  99. package/lib/warning-popper.d.cts +39 -0
  100. package/lib/warning-popper.d.ts +39 -0
  101. package/lib/warning-popper.vue_vue_type_style_index_0_lang-CxVzqsbn.cjs +1 -0
  102. package/lib/warning-popper.vue_vue_type_style_index_0_lang-zt-jCsvz.js +1833 -0
  103. package/package.json +40 -14
  104. package/src/accordion-fieldset.vue +24 -19
  105. package/src/accordion-section.vue +33 -28
  106. package/src/components.ts +10 -0
  107. package/src/copy-button.vue +89 -0
  108. package/src/dark-mode-selector.vue +212 -0
  109. package/src/data-table.vue +643 -0
  110. package/src/help-button.vue +128 -0
  111. package/src/help-popper.vue +70 -0
  112. package/src/helpers/data-table-csv.ts +55 -0
  113. package/src/helpers/show-floating-component.ts +169 -0
  114. package/src/helpers/show-modal-dialog.ts +121 -0
  115. package/src/helpers/show-overlay-box.ts +106 -0
  116. package/src/helpers/show-screen-loading.ts +37 -0
  117. package/src/helpers/show-snackbar.ts +153 -0
  118. package/src/hourglass-loading.vue +1 -1
  119. package/src/index.ts +34 -0
  120. package/src/internal/anchored-popover.vue +192 -0
  121. package/src/internal/anchored-position.ts +135 -0
  122. package/src/internal/data-table-controls.vue +203 -0
  123. package/src/internal/data-table-value.ts +99 -0
  124. package/src/internal/floating-component.vue +202 -0
  125. package/src/internal/icon-popper.vue +185 -0
  126. package/src/internal/mount-window.ts +110 -0
  127. package/src/internal/movable-window.vue +315 -0
  128. package/src/internal/opened-overlay-boxes.ts +2 -0
  129. package/src/internal/pagination.vue +325 -0
  130. package/src/internal/snackbar-container.vue +258 -0
  131. package/src/internal/snackbar-item.ts +20 -0
  132. package/src/internal/tab-group-context.ts +4 -2
  133. package/src/internal/use-movable-window.ts +208 -0
  134. package/src/internal/window-order.ts +11 -0
  135. package/src/intersection-lazy-component.vue +84 -0
  136. package/src/label-button.vue +9 -6
  137. package/src/label-icon.vue +2 -2
  138. package/src/modal-dialog.vue +287 -0
  139. package/src/overlay-box.vue +218 -0
  140. package/src/page-section.vue +7 -7
  141. package/src/page-title.vue +4 -4
  142. package/src/screen-loading.vue +90 -0
  143. package/src/tab-content.vue +16 -15
  144. package/src/tab-group.vue +34 -36
  145. package/src/types/data-table.ts +196 -0
  146. package/src/types/modal-dialog.ts +16 -0
  147. package/src/types/movable-window.ts +18 -0
  148. package/src/warning-popper.vue +70 -0
  149. package/lib/accordion-fieldset.cjs +0 -1
  150. package/lib/accordion-fieldset.js +0 -4
  151. package/lib/accordion-fieldset.vue_vue_type_style_index_0_lang-Cf4czDXz.js +0 -66
  152. package/lib/accordion-fieldset.vue_vue_type_style_index_0_lang-DoM5QjpJ.cjs +0 -1
  153. package/lib/accordion-section.cjs +0 -1
  154. package/lib/accordion-section.js +0 -4
  155. package/lib/accordion-section.vue_vue_type_style_index_0_lang-CFDdUEnn.cjs +0 -1
  156. package/lib/accordion-section.vue_vue_type_style_index_0_lang-Gvjjx02P.js +0 -78
  157. package/lib/components-C63HJoCn.cjs +0 -1
  158. package/lib/components-q4Cf97bO.js +0 -24
  159. package/lib/hourglass-loading.cjs +0 -1
  160. package/lib/hourglass-loading.js +0 -4
  161. package/lib/hourglass-loading.vue_vue_type_style_index_0_lang-C72UVA9W.cjs +0 -1
  162. package/lib/hourglass-loading.vue_vue_type_style_index_0_lang-DkUGIxQ2.js +0 -22
  163. package/lib/label-button.cjs +0 -1
  164. package/lib/label-button.js +0 -4
  165. package/lib/label-button.vue_vue_type_style_index_0_lang-D7ZgfZOL.cjs +0 -1
  166. package/lib/label-button.vue_vue_type_style_index_0_lang-DqRYddVt.js +0 -44
  167. package/lib/label-icon.cjs +0 -1
  168. package/lib/label-icon.js +0 -4
  169. package/lib/label-icon.vue_vue_type_style_index_0_lang-D9Cimu20.cjs +0 -1
  170. package/lib/label-icon.vue_vue_type_style_index_0_lang-me52HE2V.js +0 -38
  171. package/lib/page-section.cjs +0 -1
  172. package/lib/page-section.js +0 -4
  173. package/lib/page-section.vue_vue_type_style_index_0_lang-DEAkTLxd.cjs +0 -1
  174. package/lib/page-section.vue_vue_type_style_index_0_lang-DpVQe_rV.js +0 -54
  175. package/lib/page-title.cjs +0 -1
  176. package/lib/page-title.js +0 -4
  177. package/lib/page-title.vue_vue_type_style_index_0_lang-BqIsIks5.cjs +0 -1
  178. package/lib/page-title.vue_vue_type_style_index_0_lang-ChZot85K.js +0 -36
  179. package/lib/tab-content.cjs +0 -1
  180. package/lib/tab-content.js +0 -4
  181. package/lib/tab-content.vue_vue_type_style_index_0_lang-BeCi7Xkp.cjs +0 -1
  182. package/lib/tab-content.vue_vue_type_style_index_0_lang-CcQLHmIF.js +0 -44
  183. package/lib/tab-group.cjs +0 -1
  184. package/lib/tab-group.js +0 -4
  185. package/lib/tab-group.vue_vue_type_style_index_0_lang-C84mDEOC.js +0 -103
  186. package/lib/tab-group.vue_vue_type_style_index_0_lang-CMaufRJV.cjs +0 -1
  187. package/lib/use-shrinkable-CS2bmsJJ.js +0 -17
  188. package/lib/use-shrinkable-Cu9JQZll.cjs +0 -1
package/lib/index.js CHANGED
@@ -1,20 +1,447 @@
1
- import { _ as e } from "./accordion-fieldset.vue_vue_type_style_index_0_lang-Cf4czDXz.js";
2
- import { _ as t } from "./accordion-section.vue_vue_type_style_index_0_lang-Gvjjx02P.js";
3
- import { _ as p } from "./hourglass-loading.vue_vue_type_style_index_0_lang-DkUGIxQ2.js";
4
- import { _ as m } from "./label-button.vue_vue_type_style_index_0_lang-DqRYddVt.js";
5
- import { _ as x } from "./label-icon.vue_vue_type_style_index_0_lang-me52HE2V.js";
6
- import { _ as c } from "./page-section.vue_vue_type_style_index_0_lang-DpVQe_rV.js";
7
- import { _ as l } from "./page-title.vue_vue_type_style_index_0_lang-ChZot85K.js";
8
- import { _ as d } from "./tab-content.vue_vue_type_style_index_0_lang-CcQLHmIF.js";
9
- import { _ as u } from "./tab-group.vue_vue_type_style_index_0_lang-C84mDEOC.js";
1
+ import { r as K, g as X, n as T, _ as Y, a as Q, c as Z, b as ee, d as ne, e as te } from "./warning-popper.vue_vue_type_style_index_0_lang-zt-jCsvz.js";
2
+ import { f as Xe, h as Ye, i as Qe, j as Ze, k as en, l as nn, m as tn, o as on, p as an, q as sn, s as ln, t as rn, u as cn, v as dn, w as un } from "./warning-popper.vue_vue_type_style_index_0_lang-zt-jCsvz.js";
3
+ import { defineComponent as E, ref as v, onMounted as oe, openBlock as u, createBlock as L, Transition as ae, withCtx as b, normalizeStyle as W, normalizeClass as S, createSlots as se, renderSlot as le, createTextVNode as re, toDisplayString as y, createVNode as P, createCommentVNode as g, getCurrentInstance as ie, onBeforeUnmount as ce, render as m, h as p, computed as A, TransitionGroup as de, createElementBlock as f, unref as ue, Fragment as pe, renderList as me, createElementVNode as fe, shallowReactive as we } from "vue";
4
+ import { SvgWastebasket as ge } from "@digitalwalletcorp/vue-svg-icons";
5
+ const he = "$index", F = (n) => {
6
+ const t = [];
7
+ for (const e of n)
8
+ if (e.csv === !0)
9
+ t.push({ header: e, column: {} });
10
+ else if (Array.isArray(e.csv))
11
+ for (const o of e.csv)
12
+ o.disabled || t.push({ header: e, column: o });
13
+ return t;
14
+ }, Te = (n) => F(n).map(({ header: t, column: e }) => K(e.label ?? t.label)), Ae = (n, t, e) => F(n).map(({ header: o, column: a }) => {
15
+ if (a.format)
16
+ return a.format(t);
17
+ const s = a.key ?? o.id;
18
+ return s === he ? e : X(t, s);
19
+ }), be = /* @__PURE__ */ E({
20
+ __name: "floating-component",
21
+ props: {
22
+ open: { type: Boolean },
23
+ title: {},
24
+ anchor: {},
25
+ dragMode: {},
26
+ loading: { type: Boolean },
27
+ closeLabel: {},
28
+ copyValue: { type: [String, Number, Function] },
29
+ copyLabel: {},
30
+ closeOnDblClick: { type: Boolean },
31
+ lockScroll: { type: Boolean },
32
+ initialSize: {},
33
+ headerClass: { type: [Boolean, null, String, Object, Array] },
34
+ headerStyle: { type: [Boolean, null, String, Object, Array] }
35
+ },
36
+ emits: ["update:open", "emit:close"],
37
+ setup(n, { emit: t }) {
38
+ const e = n, o = t, a = v(), s = v(T()), r = () => {
39
+ s.value = T();
40
+ }, i = () => {
41
+ e.closeOnDblClick && o("update:open", !1);
42
+ }, l = () => {
43
+ const c = a.value;
44
+ if (!c?.element)
45
+ return;
46
+ const d = c.element.getBoundingClientRect();
47
+ let w = e.initialSize?.width ?? d.width;
48
+ window.innerWidth < w && (w = window.innerWidth * 0.9);
49
+ let h = e.initialSize?.height ?? -1;
50
+ window.innerHeight < h && (h = window.innerHeight * 0.9), c.size.width = w, c.size.height = h;
51
+ const $ = document.documentElement.scrollLeft, D = document.documentElement.scrollTop;
52
+ if (e.anchor) {
53
+ const q = {
54
+ width: w,
55
+ height: 0 <= h ? h : d.height
56
+ }, J = {
57
+ width: document.documentElement.clientWidth,
58
+ height: document.documentElement.clientHeight
59
+ }, O = Z(e.anchor.getBoundingClientRect(), q, J, {
60
+ placement: "bottom-start",
61
+ offset: 0,
62
+ margin: 0,
63
+ arrowMargin: 0
64
+ });
65
+ c.position.x = O.left + $, c.position.y = O.top + D;
66
+ } else
67
+ c.position.x = 10 + $, c.position.y = 10 + D;
68
+ };
69
+ return oe(() => {
70
+ e.open && l();
71
+ }), (c, d) => (u(), L(ae, {
72
+ name: "dwui-floating-component-fade",
73
+ onAfterLeave: d[1] || (d[1] = (w) => o("emit:close"))
74
+ }, {
75
+ default: b(() => [
76
+ e.open ? (u(), L(Y, {
77
+ key: 0,
78
+ ref_key: "refWindow",
79
+ ref: a,
80
+ class: S(["dwui-floating-component", { "dwui-lock-scroll": e.lockScroll }]),
81
+ name: "dwui-floating-component",
82
+ style: W({ "--dwui-order-window": s.value }),
83
+ "drag-mode": e.dragMode,
84
+ loading: e.loading,
85
+ "close-label": e.closeLabel,
86
+ "clamp-bottom": !1,
87
+ "header-class": e.headerClass,
88
+ "header-style": e.headerStyle,
89
+ onPointerdownCapture: r,
90
+ onDblclick: i,
91
+ "onEmit:close": d[0] || (d[0] = (w) => o("update:open", !1))
92
+ }, se({
93
+ title: b(() => [
94
+ re(y(e.title), 1)
95
+ ]),
96
+ default: b(() => [
97
+ le(c.$slots, "default")
98
+ ]),
99
+ _: 2
100
+ }, [
101
+ e.copyValue != null ? {
102
+ name: "actions",
103
+ fn: b(() => [
104
+ P(Q, {
105
+ class: "dwui-floating-component-copy-button",
106
+ value: e.copyValue,
107
+ "aria-label": e.copyLabel
108
+ }, null, 8, ["value", "aria-label"])
109
+ ]),
110
+ key: "0"
111
+ } : void 0
112
+ ]), 1032, ["class", "style", "drag-mode", "loading", "close-label", "header-class", "header-style"])) : g("", !0)
113
+ ]),
114
+ _: 3
115
+ }));
116
+ }
117
+ });
118
+ function V(n, t, e) {
119
+ const o = document.createElement("div");
120
+ document.body.appendChild(o);
121
+ const a = v(!0), s = v(!1), r = {
122
+ close: () => {
123
+ a.value = !1;
124
+ },
125
+ setLoading: (c) => {
126
+ s.value = c;
127
+ }
128
+ }, i = E(() => () => n({
129
+ open: a.value,
130
+ loading: s.value,
131
+ "onUpdate:open": (c) => {
132
+ a.value = c;
133
+ },
134
+ "onEmit:close": () => {
135
+ e.delete(r), m(null, o), o.remove(), t.onClosed?.(), t.onClose?.();
136
+ }
137
+ }, r)), l = p(i);
138
+ return t.appContext && (l.appContext = t.appContext), m(l, o), e.add(r), r;
139
+ }
140
+ function H(n) {
141
+ const t = ie();
142
+ if (!t)
143
+ throw new Error(`${n}() must be called inside setup().`);
144
+ const e = /* @__PURE__ */ new Set();
145
+ return ce(() => {
146
+ for (const o of e)
147
+ o.close();
148
+ }), {
149
+ appContext: t.appContext,
150
+ own: (o) => {
151
+ const a = o(() => {
152
+ e.delete(a);
153
+ });
154
+ return e.add(a), a;
155
+ }
156
+ };
157
+ }
158
+ const I = /* @__PURE__ */ new Set(), k = (n, t, e) => {
159
+ const { appContext: o, onClose: a, ...s } = t ?? {};
160
+ return V((r, i) => p(be, {
161
+ closeLabel: "Close",
162
+ copyLabel: "Copy",
163
+ closeOnDblClick: !1,
164
+ lockScroll: !1,
165
+ ...s,
166
+ ...r
167
+ }, {
168
+ default: () => n(i)
169
+ }), { appContext: o, onClose: a, onClosed: e }, I);
170
+ }, z = (n, t) => (e) => p(n, {
171
+ ...t,
172
+ ...e
173
+ }), N = (n) => typeof n == "string" ? n : JSON.stringify(n, null, 2), R = (n) => () => p("div", { class: "dwui-floating-component-message" }, n);
174
+ function Me(n, t, e) {
175
+ return k(z(n, t), e);
176
+ }
177
+ function We(n, t) {
178
+ const e = N(n);
179
+ return k(R(e), {
180
+ copyValue: e,
181
+ ...t
182
+ });
183
+ }
184
+ function Pe() {
185
+ for (const n of [...I])
186
+ n.close();
187
+ }
188
+ function Fe() {
189
+ const n = H("useFloatingComponent"), t = (e) => ({
190
+ appContext: n.appContext,
191
+ ...e
192
+ });
193
+ return {
194
+ showFloatingComponent: (e, o, a) => n.own((s) => k(z(e, o), t(a), s)),
195
+ showFloatingMessage: (e, o) => {
196
+ const a = N(e);
197
+ return n.own((s) => k(R(a), t({
198
+ copyValue: a,
199
+ ...o
200
+ }), s));
201
+ }
202
+ };
203
+ }
204
+ function _(n, t) {
205
+ const { icon: e, appContext: o, ...a } = t ?? {};
206
+ return new Promise((s) => {
207
+ const r = document.createElement("div");
208
+ document.body.appendChild(r);
209
+ const i = p(ee, {
210
+ ...a,
211
+ message: n,
212
+ open: !0,
213
+ "onEmit:close": (l) => {
214
+ m(null, r), r.remove(), s(l);
215
+ }
216
+ }, e ? { icon: () => p(e) } : void 0);
217
+ o && (i.appContext = o), m(i, r);
218
+ });
219
+ }
220
+ function Ve(n, t) {
221
+ return _(n, {
222
+ ...t,
223
+ type: "info"
224
+ });
225
+ }
226
+ function He(n, t) {
227
+ return _(n, {
228
+ ...t,
229
+ type: "confirm"
230
+ });
231
+ }
232
+ function Ie(n, t) {
233
+ return _(n, {
234
+ ...t,
235
+ type: "warn"
236
+ });
237
+ }
238
+ function ze(n, t) {
239
+ return _(n, {
240
+ ...t,
241
+ type: "error"
242
+ });
243
+ }
244
+ const j = /* @__PURE__ */ new Set(), G = (n, t, e, o) => {
245
+ const { appContext: a, onClose: s, ...r } = e ?? {};
246
+ return V((i, l) => p(ne, {
247
+ ...r,
248
+ ...i
249
+ }, {
250
+ default: () => p(n, {
251
+ ...t,
252
+ close: l.close,
253
+ setLoading: l.setLoading
254
+ })
255
+ }), { appContext: a, onClose: s, onClosed: o }, j);
256
+ };
257
+ function Ne(n, t, e) {
258
+ return G(n, t, e);
259
+ }
260
+ function Re() {
261
+ for (const n of [...j])
262
+ n.close();
263
+ }
264
+ function je() {
265
+ const n = H("useOverlayBox");
266
+ return {
267
+ showOverlayBox: (t, e, o) => n.own((a) => G(t, e, {
268
+ appContext: n.appContext,
269
+ ...o
270
+ }, a))
271
+ };
272
+ }
273
+ function Ge(n) {
274
+ const t = document.createElement("div");
275
+ document.body.appendChild(t);
276
+ const e = () => {
277
+ m(null, t), t.remove();
278
+ };
279
+ return m(p(te, {
280
+ ...n,
281
+ loading: !0
282
+ }), t), { close: e };
283
+ }
284
+ const ye = ["aria-label", "title"], Ce = ["title", "onClick"], ve = {
285
+ key: 0,
286
+ class: "dwui-snackbar-header"
287
+ }, ke = {
288
+ key: 0,
289
+ class: "dwui-snackbar-title"
290
+ }, xe = {
291
+ key: 1,
292
+ class: "dwui-snackbar-label"
293
+ }, _e = { class: "dwui-snackbar-message" }, Le = {
294
+ key: 1,
295
+ class: "dwui-snackbar-timestamp"
296
+ }, Se = /* @__PURE__ */ E({
297
+ __name: "snackbar-container",
298
+ props: {
299
+ placement: {},
300
+ direction: {},
301
+ items: {}
302
+ },
303
+ emits: ["emit:close", "emit:clear", "emit:afterLeave"],
304
+ setup(n, { emit: t }) {
305
+ const e = n, o = t, a = A(() => {
306
+ const [r, i = "center"] = e.placement.split("-");
307
+ return [
308
+ `dwui-snackbar-container-${r}`,
309
+ `dwui-snackbar-container-${i}`,
310
+ `dwui-snackbar-container-${e.direction}`
311
+ ];
312
+ }), s = A(() => e.items.filter((r) => r.clearable).at(-1)?.clearLabel);
313
+ return (r, i) => (u(), L(de, {
314
+ tag: "div",
315
+ name: "dwui-snackbar-fade",
316
+ class: S(["dwui-snackbar-container", a.value]),
317
+ role: "status",
318
+ onAfterLeave: i[1] || (i[1] = (l) => o("emit:afterLeave"))
319
+ }, {
320
+ default: b(() => [
321
+ s.value != null ? (u(), f("button", {
322
+ key: "clear",
323
+ type: "button",
324
+ class: "dwui-snackbar-clear-button",
325
+ "aria-label": s.value,
326
+ title: s.value,
327
+ onClick: i[0] || (i[0] = (l) => o("emit:clear"))
328
+ }, [
329
+ P(ue(ge))
330
+ ], 8, ye)) : g("", !0),
331
+ (u(!0), f(pe, null, me(e.items, (l) => (u(), f("button", {
332
+ key: l.id,
333
+ type: "button",
334
+ class: S(["dwui-snackbar", l.class]),
335
+ style: W(l.style),
336
+ title: l.message,
337
+ onClick: (c) => o("emit:close", l.id)
338
+ }, [
339
+ l.title || l.label ? (u(), f("span", ve, [
340
+ l.title ? (u(), f("span", ke, y(l.title), 1)) : g("", !0),
341
+ l.label ? (u(), f("span", xe, y(l.label), 1)) : g("", !0)
342
+ ])) : g("", !0),
343
+ fe("span", _e, y(l.message), 1),
344
+ l.timestamp ? (u(), f("span", Le, y(l.timestamp), 1)) : g("", !0)
345
+ ], 14, Ce))), 128))
346
+ ]),
347
+ _: 1
348
+ }, 8, ["class"]));
349
+ }
350
+ }), Be = 50, C = /* @__PURE__ */ new Map(), B = /* @__PURE__ */ new Map();
351
+ let M = 0;
352
+ const x = (n, t, e) => {
353
+ const o = n.findIndex((s) => s.id === t);
354
+ if (o < 0)
355
+ return;
356
+ n.splice(o, 1);
357
+ const a = B.get(t);
358
+ B.delete(t), clearTimeout(a?.timer), a?.onClose?.(e);
359
+ }, U = (n) => {
360
+ const t = n.map((e) => e.id);
361
+ for (let e = 0; e < t.length; e++)
362
+ setTimeout(() => x(n, t[e], "clear"), Be * e);
363
+ }, Ee = (n, t) => {
364
+ const e = `${n} ${t}`, o = C.get(e);
365
+ if (o)
366
+ return o;
367
+ const a = document.createElement("div");
368
+ document.body.appendChild(a);
369
+ const s = we([]);
370
+ return C.set(e, s), m(p(Se, {
371
+ placement: n,
372
+ direction: t,
373
+ items: s,
374
+ "onEmit:close": (r) => x(s, r, "click"),
375
+ "onEmit:clear": () => U(s),
376
+ "onEmit:afterLeave": () => {
377
+ s.length === 0 && C.get(e) === s && (C.delete(e), m(null, a), a.remove());
378
+ }
379
+ }), a), s;
380
+ };
381
+ function Ue(n, t) {
382
+ const {
383
+ placement: e = "bottom",
384
+ direction: o = "overlap",
385
+ duration: a,
386
+ clearable: s = !1,
387
+ clearLabel: r = "Clear all",
388
+ onClose: i,
389
+ ...l
390
+ } = t ?? {}, c = Ee(e, o);
391
+ M += 1;
392
+ const d = M;
393
+ return c.push({
394
+ ...l,
395
+ id: d,
396
+ message: n,
397
+ clearable: s,
398
+ clearLabel: r
399
+ }), B.set(d, {
400
+ timer: a ? setTimeout(() => x(c, d, "duration"), a) : void 0,
401
+ onClose: i
402
+ }), {
403
+ close: () => x(c, d, "handle")
404
+ };
405
+ }
406
+ function qe() {
407
+ for (const n of C.values())
408
+ U(n);
409
+ }
10
410
  export {
11
- e as AccordionFieldset,
12
- t as AccordionSection,
13
- p as HourglassLoading,
14
- m as LabelButton,
15
- x as LabelIcon,
16
- c as PageSection,
17
- l as PageTitle,
18
- d as TabContent,
19
- u as TabGroup
411
+ Xe as AccordionFieldset,
412
+ Ye as AccordionSection,
413
+ Q as CopyButton,
414
+ Qe as DarkModeSelector,
415
+ Ze as DataTable,
416
+ en as HelpButton,
417
+ nn as HelpPopper,
418
+ tn as HourglassLoading,
419
+ on as IntersectionLazyComponent,
420
+ an as LabelButton,
421
+ sn as LabelIcon,
422
+ ee as ModalDialog,
423
+ ne as OverlayBox,
424
+ ln as PageSection,
425
+ rn as PageTitle,
426
+ te as ScreenLoading,
427
+ cn as TabContent,
428
+ dn as TabGroup,
429
+ un as WarningPopper,
430
+ Pe as closeAllFloatingComponents,
431
+ Re as closeAllOverlayBoxes,
432
+ qe as closeAllSnackbars,
433
+ Te as headersToCsvColumns,
434
+ Ae as rowToCsvColumns,
435
+ He as showConfirmationDialog,
436
+ ze as showErrorDialog,
437
+ Me as showFloatingComponent,
438
+ We as showFloatingMessage,
439
+ Ve as showInformationDialog,
440
+ _ as showModalDialog,
441
+ Ne as showOverlayBox,
442
+ Ge as showScreenLoading,
443
+ Ue as showSnackbar,
444
+ Ie as showWarningDialog,
445
+ Fe as useFloatingComponent,
446
+ je as useOverlayBox
20
447
  };
@@ -0,0 +1,35 @@
1
+ import { PopoverPlacement } from './anchored-position.cjs';
2
+ interface Props {
3
+ /** 基準要素 */
4
+ anchor?: HTMLElement;
5
+ /** 基準要素に対するパネルの表示位置。収まらないときは反対側に出す */
6
+ placement: PopoverPlacement;
7
+ /** 基準要素を指す矢印を付ける */
8
+ arrow: boolean;
9
+ /** popover 属性の値。auto は外側のクリックや Esc で閉じ、manual は利用側が閉じる */
10
+ mode: 'auto' | 'manual';
11
+ }
12
+ declare var __VLS_1: {};
13
+ type __VLS_Slots = {} & {
14
+ default?: (props: typeof __VLS_1) => any;
15
+ };
16
+ declare const __VLS_base: import('vue').DefineComponent<Props, {
17
+ /** パネルの要素。invoker の設定や、要素がパネルの中かの判定に使う */
18
+ element: import('vue').Ref<HTMLElement | undefined, HTMLElement | undefined>;
19
+ show: () => void;
20
+ hide: () => void;
21
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
22
+ "emit:open": () => any;
23
+ "emit:close": () => any;
24
+ }, string, import('vue').PublicProps, Readonly<Props> & Readonly<{
25
+ "onEmit:open"?: (() => any) | undefined;
26
+ "onEmit:close"?: (() => any) | undefined;
27
+ }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
28
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
29
+ declare const _default: typeof __VLS_export;
30
+ export default _default;
31
+ type __VLS_WithSlots<T, S> = T & {
32
+ new (): {
33
+ $slots: S;
34
+ };
35
+ };
@@ -0,0 +1,35 @@
1
+ import { PopoverPlacement } from './anchored-position';
2
+ interface Props {
3
+ /** 基準要素 */
4
+ anchor?: HTMLElement;
5
+ /** 基準要素に対するパネルの表示位置。収まらないときは反対側に出す */
6
+ placement: PopoverPlacement;
7
+ /** 基準要素を指す矢印を付ける */
8
+ arrow: boolean;
9
+ /** popover 属性の値。auto は外側のクリックや Esc で閉じ、manual は利用側が閉じる */
10
+ mode: 'auto' | 'manual';
11
+ }
12
+ declare var __VLS_1: {};
13
+ type __VLS_Slots = {} & {
14
+ default?: (props: typeof __VLS_1) => any;
15
+ };
16
+ declare const __VLS_base: import('vue').DefineComponent<Props, {
17
+ /** パネルの要素。invoker の設定や、要素がパネルの中かの判定に使う */
18
+ element: import('vue').Ref<HTMLElement | undefined, HTMLElement | undefined>;
19
+ show: () => void;
20
+ hide: () => void;
21
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
22
+ "emit:open": () => any;
23
+ "emit:close": () => any;
24
+ }, string, import('vue').PublicProps, Readonly<Props> & Readonly<{
25
+ "onEmit:open"?: (() => any) | undefined;
26
+ "onEmit:close"?: (() => any) | undefined;
27
+ }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
28
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
29
+ declare const _default: typeof __VLS_export;
30
+ export default _default;
31
+ type __VLS_WithSlots<T, S> = T & {
32
+ new (): {
33
+ $slots: S;
34
+ };
35
+ };
@@ -0,0 +1,50 @@
1
+ /**
2
+ * 基準要素(アンカー)に対するパネルの配置。向きと揃えをハイフンでつなぐ
3
+ * 向きだけを指定したときは中央揃え
4
+ */
5
+ export type PopoverPlacement = 'top' | 'top-start' | 'top-end' | 'bottom' | 'bottom-start' | 'bottom-end' | 'left' | 'left-start' | 'left-end' | 'right' | 'right-start' | 'right-end';
6
+ export type Side = 'top' | 'bottom' | 'left' | 'right';
7
+ /** ビューポート座標の矩形 */
8
+ export interface AnchorRect {
9
+ top: number;
10
+ left: number;
11
+ width: number;
12
+ height: number;
13
+ }
14
+ export interface Size {
15
+ width: number;
16
+ height: number;
17
+ }
18
+ export interface AnchoredPositionOptions {
19
+ /** 配置 */
20
+ placement: PopoverPlacement;
21
+ /** アンカーとパネルの間隔 */
22
+ offset: number;
23
+ /** ビューポートの端との最小の余白 */
24
+ margin: number;
25
+ /** 矢印の中心をパネルの端からどれだけ内側に収めるか */
26
+ arrowMargin: number;
27
+ }
28
+ export interface AnchoredPosition {
29
+ /** パネルの上端のビューポート座標 */
30
+ top: number;
31
+ /** パネルの左端のビューポート座標 */
32
+ left: number;
33
+ /** 実際に配置した向き。収まらずに反転した場合は指定と異なる */
34
+ side: Side;
35
+ /** 矢印の中心の位置。上下に出したときはパネルの左端から、左右に出したときは上端からの距離 */
36
+ arrow: number;
37
+ }
38
+ /**
39
+ * アンカーに対するパネルの配置座標を計算する
40
+ * 指定した向きに収まらないときは、反対側の方が広ければ反対側に出す。
41
+ * 揃えの方向にはみ出す分はビューポートの内側にずらし、それでも収まらない分は端に寄せる。
42
+ * 矢印はずらした後のパネル上でアンカーの中心を指す位置に置く。
43
+ *
44
+ * @param {AnchorRect} anchor 基準要素の矩形
45
+ * @param {Size} panel パネルの寸法
46
+ * @param {Size} viewport ビューポートの寸法
47
+ * @param {AnchoredPositionOptions} options 配置・間隔・余白
48
+ * @returns {AnchoredPosition}
49
+ */
50
+ export declare const computeAnchoredPosition: (anchor: AnchorRect, panel: Size, viewport: Size, options: AnchoredPositionOptions) => AnchoredPosition;
@@ -0,0 +1,50 @@
1
+ /**
2
+ * 基準要素(アンカー)に対するパネルの配置。向きと揃えをハイフンでつなぐ
3
+ * 向きだけを指定したときは中央揃え
4
+ */
5
+ export type PopoverPlacement = 'top' | 'top-start' | 'top-end' | 'bottom' | 'bottom-start' | 'bottom-end' | 'left' | 'left-start' | 'left-end' | 'right' | 'right-start' | 'right-end';
6
+ export type Side = 'top' | 'bottom' | 'left' | 'right';
7
+ /** ビューポート座標の矩形 */
8
+ export interface AnchorRect {
9
+ top: number;
10
+ left: number;
11
+ width: number;
12
+ height: number;
13
+ }
14
+ export interface Size {
15
+ width: number;
16
+ height: number;
17
+ }
18
+ export interface AnchoredPositionOptions {
19
+ /** 配置 */
20
+ placement: PopoverPlacement;
21
+ /** アンカーとパネルの間隔 */
22
+ offset: number;
23
+ /** ビューポートの端との最小の余白 */
24
+ margin: number;
25
+ /** 矢印の中心をパネルの端からどれだけ内側に収めるか */
26
+ arrowMargin: number;
27
+ }
28
+ export interface AnchoredPosition {
29
+ /** パネルの上端のビューポート座標 */
30
+ top: number;
31
+ /** パネルの左端のビューポート座標 */
32
+ left: number;
33
+ /** 実際に配置した向き。収まらずに反転した場合は指定と異なる */
34
+ side: Side;
35
+ /** 矢印の中心の位置。上下に出したときはパネルの左端から、左右に出したときは上端からの距離 */
36
+ arrow: number;
37
+ }
38
+ /**
39
+ * アンカーに対するパネルの配置座標を計算する
40
+ * 指定した向きに収まらないときは、反対側の方が広ければ反対側に出す。
41
+ * 揃えの方向にはみ出す分はビューポートの内側にずらし、それでも収まらない分は端に寄せる。
42
+ * 矢印はずらした後のパネル上でアンカーの中心を指す位置に置く。
43
+ *
44
+ * @param {AnchorRect} anchor 基準要素の矩形
45
+ * @param {Size} panel パネルの寸法
46
+ * @param {Size} viewport ビューポートの寸法
47
+ * @param {AnchoredPositionOptions} options 配置・間隔・余白
48
+ * @returns {AnchoredPosition}
49
+ */
50
+ export declare const computeAnchoredPosition: (anchor: AnchorRect, panel: Size, viewport: Size, options: AnchoredPositionOptions) => AnchoredPosition;
@@ -0,0 +1,42 @@
1
+ import { DataTableResolvedLabels } from '../types/data-table.cjs';
2
+ interface Props {
3
+ /** ページネーションを表示するか */
4
+ pagination: boolean;
5
+ /** 総件数を表示するか */
6
+ showTotal: boolean;
7
+ /** 1ページあたりの表示件数の入力を表示するか */
8
+ showLimit: boolean;
9
+ /** ページ番号の選択を表示するか */
10
+ showPageSelect: boolean;
11
+ /** ページダウンロードボタンを表示するか */
12
+ showDownloadPage: boolean;
13
+ /** 全件ダウンロードボタンを表示するか */
14
+ showDownloadAll: boolean;
15
+ /** 現在ページ */
16
+ current: number;
17
+ /** 1ページあたりの表示件数 */
18
+ limit: number;
19
+ /** 1ページあたりの表示件数の上限 */
20
+ maxLimit: number;
21
+ /** 並べるページ番号の最大数 */
22
+ maxPagination: number;
23
+ /** 総件数 */
24
+ totalCount: number;
25
+ /** 表示する文言 */
26
+ labels: DataTableResolvedLabels;
27
+ /** 総件数の整形。未指定なら en-US の桁区切り */
28
+ formatTotalCount?: (count: number) => string;
29
+ }
30
+ declare const __VLS_export: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
31
+ "emit:changeLimit": (limit: number) => any;
32
+ "emit:changePage": (page: number) => any;
33
+ "emit:downloadPage": () => any;
34
+ "emit:downloadAll": () => any;
35
+ }, string, import('vue').PublicProps, Readonly<Props> & Readonly<{
36
+ "onEmit:changeLimit"?: ((limit: number) => any) | undefined;
37
+ "onEmit:changePage"?: ((page: number) => any) | undefined;
38
+ "onEmit:downloadPage"?: (() => any) | undefined;
39
+ "onEmit:downloadAll"?: (() => any) | undefined;
40
+ }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
41
+ declare const _default: typeof __VLS_export;
42
+ export default _default;