@vtable-guild/vtable-guild 2.8.1 → 2.9.0-alpha.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 (171) hide show
  1. package/css/presets/antdv.css +20 -0
  2. package/css/presets/element-plus.css +20 -0
  3. package/css/style.css +341 -0
  4. package/css/tailwind3-utilities.css +301 -0
  5. package/css/tailwind3.css +40 -0
  6. package/css/tailwind4.css +40 -0
  7. package/dist/core/src/components/Tooltip.d.ts +1 -1
  8. package/dist/core/src/components/Tooltip.d.ts.map +1 -1
  9. package/dist/core/src/components/Tooltip.mjs +49 -46
  10. package/dist/core/src/components/Tooltip.test.d.ts +2 -0
  11. package/dist/core/src/components/Tooltip.test.d.ts.map +1 -0
  12. package/dist/core/src/index.d.ts +1 -1
  13. package/dist/core/src/index.d.ts.map +1 -1
  14. package/dist/core/src/utils/types.d.ts +39 -1
  15. package/dist/core/src/utils/types.d.ts.map +1 -1
  16. package/dist/css/presets/antdv.css +20 -0
  17. package/dist/css/presets/element-plus.css +20 -0
  18. package/dist/css/style.css +341 -0
  19. package/dist/css/tailwind3-utilities.css +301 -0
  20. package/dist/css/tailwind3.css +40 -0
  21. package/dist/css/tailwind4.css +40 -0
  22. package/dist/icons/src/ColumnHeightOutlinedIcon.d.ts +3 -0
  23. package/dist/icons/src/ColumnHeightOutlinedIcon.d.ts.map +1 -0
  24. package/dist/icons/src/ColumnHeightOutlinedIcon.mjs +9 -0
  25. package/dist/icons/src/FullscreenExitOutlinedIcon.d.ts +3 -0
  26. package/dist/icons/src/FullscreenExitOutlinedIcon.d.ts.map +1 -0
  27. package/dist/icons/src/FullscreenExitOutlinedIcon.mjs +9 -0
  28. package/dist/icons/src/FullscreenOutlinedIcon.d.ts +3 -0
  29. package/dist/icons/src/FullscreenOutlinedIcon.d.ts.map +1 -0
  30. package/dist/icons/src/FullscreenOutlinedIcon.mjs +9 -0
  31. package/dist/icons/src/ReloadOutlinedIcon.d.ts +3 -0
  32. package/dist/icons/src/ReloadOutlinedIcon.d.ts.map +1 -0
  33. package/dist/icons/src/ReloadOutlinedIcon.mjs +9 -0
  34. package/dist/icons/src/SettingOutlinedIcon.d.ts +3 -0
  35. package/dist/icons/src/SettingOutlinedIcon.d.ts.map +1 -0
  36. package/dist/icons/src/SettingOutlinedIcon.mjs +9 -0
  37. package/dist/icons/src/index.d.ts +5 -0
  38. package/dist/icons/src/index.d.ts.map +1 -1
  39. package/dist/index.full.mjs +6088 -4458
  40. package/dist/index.mjs +115 -87
  41. package/dist/table/src/components/FilterDropdown.d.ts +1 -1
  42. package/dist/table/src/components/Table.d.ts +31 -4
  43. package/dist/table/src/components/Table.d.ts.map +1 -1
  44. package/dist/table/src/components/Table.mjs +516 -476
  45. package/dist/table/src/components/TableBody.d.ts.map +1 -1
  46. package/dist/table/src/components/TableBody.mjs +37 -36
  47. package/dist/table/src/components/TableCell.d.ts.map +1 -1
  48. package/dist/table/src/components/TableCell.mjs +95 -83
  49. package/dist/table/src/components/TableColumnSettings.d.ts +41 -0
  50. package/dist/table/src/components/TableColumnSettings.d.ts.map +1 -0
  51. package/dist/table/src/components/TableColumnSettings.mjs +360 -0
  52. package/dist/table/src/components/TableColumnSettings.test.d.ts +2 -0
  53. package/dist/table/src/components/TableColumnSettings.test.d.ts.map +1 -0
  54. package/dist/table/src/components/TableCopyButton.d.ts +41 -0
  55. package/dist/table/src/components/TableCopyButton.d.ts.map +1 -0
  56. package/dist/table/src/components/TableCopyButton.mjs +94 -0
  57. package/dist/table/src/components/TableEnterprise.test.d.ts +2 -0
  58. package/dist/table/src/components/TableEnterprise.test.d.ts.map +1 -0
  59. package/dist/table/src/components/TableHeaderCell.d.ts.map +1 -1
  60. package/dist/table/src/components/TableHeaderCell.mjs +284 -241
  61. package/dist/table/src/components/TableSelectionAlert.d.ts +50 -0
  62. package/dist/table/src/components/TableSelectionAlert.d.ts.map +1 -0
  63. package/dist/table/src/components/TableSelectionAlert.mjs +86 -0
  64. package/dist/table/src/components/TableSelectionAlert.test.d.ts +2 -0
  65. package/dist/table/src/components/TableSelectionAlert.test.d.ts.map +1 -0
  66. package/dist/table/src/components/TableToolbar.d.ts +87 -0
  67. package/dist/table/src/components/TableToolbar.d.ts.map +1 -0
  68. package/dist/table/src/components/TableToolbar.mjs +265 -0
  69. package/dist/table/src/components/TableToolbar.test.d.ts +2 -0
  70. package/dist/table/src/components/TableToolbar.test.d.ts.map +1 -0
  71. package/dist/table/src/components/VTable.vue.d.ts.map +1 -1
  72. package/dist/table/src/components/VTable.vue.mjs +24 -15
  73. package/dist/table/src/components/VTableColumnSettings.vue.d.ts +20 -0
  74. package/dist/table/src/components/VTableColumnSettings.vue.d.ts.map +1 -0
  75. package/dist/table/src/components/VTableColumnSettings.vue.mjs +42 -0
  76. package/dist/table/src/components/VTableColumnSettings.vue2.mjs +4 -0
  77. package/dist/table/src/components/VTableSelectionAlert.vue.d.ts +19 -0
  78. package/dist/table/src/components/VTableSelectionAlert.vue.d.ts.map +1 -0
  79. package/dist/table/src/components/VTableSelectionAlert.vue.mjs +54 -0
  80. package/dist/table/src/components/VTableSelectionAlert.vue2.mjs +4 -0
  81. package/dist/table/src/components/VTableToolbar.vue.d.ts +27 -0
  82. package/dist/table/src/components/VTableToolbar.vue.d.ts.map +1 -0
  83. package/dist/table/src/components/VTableToolbar.vue.mjs +108 -0
  84. package/dist/table/src/components/VTableToolbar.vue2.mjs +4 -0
  85. package/dist/table/src/composables/useColumnState.d.ts +32 -0
  86. package/dist/table/src/composables/useColumnState.d.ts.map +1 -0
  87. package/dist/table/src/composables/useColumnState.mjs +107 -0
  88. package/dist/table/src/composables/useColumnState.test.d.ts +2 -0
  89. package/dist/table/src/composables/useColumnState.test.d.ts.map +1 -0
  90. package/dist/table/src/composables/useFilter.d.ts.map +1 -1
  91. package/dist/table/src/composables/useFilter.mjs +28 -25
  92. package/dist/table/src/composables/usePagination.d.ts +1 -0
  93. package/dist/table/src/composables/usePagination.d.ts.map +1 -1
  94. package/dist/table/src/composables/usePagination.mjs +35 -34
  95. package/dist/table/src/composables/useTableRequest.d.ts +4 -0
  96. package/dist/table/src/composables/useTableRequest.d.ts.map +1 -0
  97. package/dist/table/src/composables/useTableRequest.mjs +127 -0
  98. package/dist/table/src/composables/useTableRequest.test.d.ts +2 -0
  99. package/dist/table/src/composables/useTableRequest.test.d.ts.map +1 -0
  100. package/dist/table/src/context.d.ts +9 -2
  101. package/dist/table/src/context.d.ts.map +1 -1
  102. package/dist/table/src/index.d.ts +17 -1
  103. package/dist/table/src/index.d.ts.map +1 -1
  104. package/dist/table/src/types/column-settings.d.ts +31 -0
  105. package/dist/table/src/types/column-settings.d.ts.map +1 -0
  106. package/dist/table/src/types/column-state.typecheck.d.ts +2 -0
  107. package/dist/table/src/types/column-state.typecheck.d.ts.map +1 -0
  108. package/dist/table/src/types/column.d.ts +15 -3
  109. package/dist/table/src/types/column.d.ts.map +1 -1
  110. package/dist/table/src/types/index.d.ts +2 -0
  111. package/dist/table/src/types/index.d.ts.map +1 -1
  112. package/dist/table/src/types/presentation.d.ts +24 -0
  113. package/dist/table/src/types/presentation.d.ts.map +1 -0
  114. package/dist/table/src/types/request.d.ts +65 -0
  115. package/dist/table/src/types/request.d.ts.map +1 -0
  116. package/dist/table/src/types/request.typecheck.d.ts +13 -0
  117. package/dist/table/src/types/request.typecheck.d.ts.map +1 -0
  118. package/dist/table/src/types/selection-alert.d.ts +30 -0
  119. package/dist/table/src/types/selection-alert.d.ts.map +1 -0
  120. package/dist/table/src/types/selection-alert.typecheck.d.ts +12 -0
  121. package/dist/table/src/types/selection-alert.typecheck.d.ts.map +1 -0
  122. package/dist/table/src/types/table.d.ts +12 -1
  123. package/dist/table/src/types/table.d.ts.map +1 -1
  124. package/dist/table/src/types/toolbar.d.ts +58 -0
  125. package/dist/table/src/types/toolbar.d.ts.map +1 -0
  126. package/dist/table/src/utils/cell.d.ts +4 -0
  127. package/dist/table/src/utils/cell.d.ts.map +1 -1
  128. package/dist/table/src/utils/cell.mjs +49 -45
  129. package/dist/table/src/utils/columnSettings.d.ts +22 -0
  130. package/dist/table/src/utils/columnSettings.d.ts.map +1 -0
  131. package/dist/table/src/utils/columnSettings.mjs +107 -0
  132. package/dist/table/src/utils/columnSettings.test.d.ts +2 -0
  133. package/dist/table/src/utils/columnSettings.test.d.ts.map +1 -0
  134. package/dist/table/src/utils/manual.d.ts +3 -0
  135. package/dist/table/src/utils/manual.d.ts.map +1 -0
  136. package/dist/table/src/utils/manual.mjs +6 -0
  137. package/dist/table/src/utils/valueEnum.d.ts +7 -0
  138. package/dist/table/src/utils/valueEnum.d.ts.map +1 -0
  139. package/dist/table/src/utils/valueEnum.mjs +23 -0
  140. package/dist/theme/src/augment.d.ts +4 -0
  141. package/dist/theme/src/augment.d.ts.map +1 -1
  142. package/dist/theme/src/column-settings.d.ts +160 -0
  143. package/dist/theme/src/column-settings.d.ts.map +1 -0
  144. package/dist/theme/src/column-settings.mjs +84 -0
  145. package/dist/theme/src/index.d.ts +12 -0
  146. package/dist/theme/src/index.d.ts.map +1 -1
  147. package/dist/theme/src/presets/antdv/table-locale.d.ts +10 -0
  148. package/dist/theme/src/presets/antdv/table-locale.d.ts.map +1 -1
  149. package/dist/theme/src/presets/antdv/table-locale.mjs +2 -0
  150. package/dist/theme/src/presets/antdv/table.d.ts +4 -0
  151. package/dist/theme/src/presets/antdv/table.d.ts.map +1 -1
  152. package/dist/theme/src/presets/antdv/table.mjs +4 -0
  153. package/dist/theme/src/presets/element-plus/table-locale.d.ts +10 -0
  154. package/dist/theme/src/presets/element-plus/table-locale.d.ts.map +1 -1
  155. package/dist/theme/src/presets/element-plus/table-locale.mjs +2 -0
  156. package/dist/theme/src/presets/element-plus/table.d.ts +4 -0
  157. package/dist/theme/src/presets/element-plus/table.d.ts.map +1 -1
  158. package/dist/theme/src/presets/element-plus/table.mjs +4 -0
  159. package/dist/theme/src/presets/index.d.ts.map +1 -1
  160. package/dist/theme/src/presets/index.mjs +100 -67
  161. package/dist/theme/src/presets/types.d.ts +3 -0
  162. package/dist/theme/src/presets/types.d.ts.map +1 -1
  163. package/dist/theme/src/selection-alert.d.ts +54 -0
  164. package/dist/theme/src/selection-alert.d.ts.map +1 -0
  165. package/dist/theme/src/selection-alert.mjs +36 -0
  166. package/dist/theme/src/toolbar.d.ts +105 -0
  167. package/dist/theme/src/toolbar.d.ts.map +1 -0
  168. package/dist/theme/src/toolbar.mjs +57 -0
  169. package/dist/vtable-guild/src/augment.d.ts +4 -1
  170. package/dist/vtable-guild/src/augment.d.ts.map +1 -1
  171. package/package.json +1 -1
@@ -0,0 +1,360 @@
1
+ import { defineComponent as te, inject as ne, computed as k, useId as le, ref as b, watch as C, onBeforeUnmount as ie, createVNode as n, Teleport as ae, Fragment as _, nextTick as oe, createTextVNode as ue } from "vue";
2
+ import { useTheme as se } from "../../../core/src/composables/useTheme.mjs";
3
+ import F from "../../../core/src/components/Tooltip.mjs";
4
+ import { VTABLE_GUILD_INJECTION_KEY as re } from "../../../core/src/plugin/index.mjs";
5
+ import ce from "../../../icons/src/SettingOutlinedIcon.mjs";
6
+ import de from "../../../icons/src/ColumnHeightOutlinedIcon.mjs";
7
+ import { resolveColumnSettingsThemePreset as fe, columnSettingsZhCN as me } from "../../../theme/src/column-settings.mjs";
8
+ import { resolveTableThemePreset as ve, resolveBuiltInLocale as ge } from "../../../theme/src/presets/index.mjs";
9
+ import { configurableEntries as he, isColumnSettingDisabled as T, isVisibilityLocked as P, setColumnVisibility as K, columnFixedRegion as S, canSetColumnFixed as H, moveSettingColumn as be, setColumnFixed as pe } from "../utils/columnSettings.mjs";
10
+ import { getPopupPositionStyle as ye } from "../utils/popupPosition.mjs";
11
+ const Pe = /* @__PURE__ */ te({
12
+ name: "TableColumnSettings",
13
+ props: {
14
+ columns: {
15
+ type: Array,
16
+ required: !0
17
+ },
18
+ size: String,
19
+ disabled: Boolean,
20
+ options: Object,
21
+ locale: Object,
22
+ ui: Object,
23
+ class: String,
24
+ getPopupContainer: Function
25
+ },
26
+ emits: {
27
+ "update:columns": (l) => !0,
28
+ "update:size": (l) => !0,
29
+ reset: () => !0
30
+ },
31
+ slots: Object,
32
+ setup(l, {
33
+ emit: g,
34
+ slots: U
35
+ }) {
36
+ const p = ne(re, null), E = k(() => p?.themePreset ?? "antdv"), G = k(() => fe(E.value)), {
37
+ slots: i
38
+ } = se("columnSettings", G, l), A = k(() => {
39
+ if (l.size) return l.size;
40
+ const e = p?.theme.table?.defaultVariants?.size;
41
+ return e === "large" || e === "middle" || e === "small" ? e : ve(E.value).defaultVariants.size;
42
+ }), r = k(() => ({
43
+ ...me,
44
+ ...ge(E.value, p?.locale)?.columnSettings,
45
+ ...p?.locales[p.locale]?.columnSettings,
46
+ ...p?.localeOverrides.columnSettings,
47
+ ...l.locale
48
+ })), M = le(), I = b(null), O = b(null), f = b(null), u = b(null), D = b({}), z = b("body"), m = k(() => he(l.columns)), x = b(null), B = /* @__PURE__ */ new Map(), y = k(() => {
49
+ const e = [];
50
+ function t(a, o = !0) {
51
+ for (const s of a) {
52
+ if (T(s.column, "checkbox")) continue;
53
+ const d = o && s.column.visible !== !1;
54
+ P(s) || e.push(d), t(s.children, d);
55
+ }
56
+ }
57
+ return t(m.value), {
58
+ all: e.length > 0 && e.every(Boolean),
59
+ partial: e.some(Boolean) && !e.every(Boolean)
60
+ };
61
+ });
62
+ function j(e) {
63
+ for (const t of e)
64
+ B.has(t.id) || B.set(t.id, t.column.visible), j(t.children);
65
+ }
66
+ C(m, j, {
67
+ immediate: !0,
68
+ flush: "sync"
69
+ });
70
+ function J(e, t) {
71
+ if (l.disabled || P(e)) return;
72
+ const a = t.target;
73
+ g("update:columns", K(l.columns, /* @__PURE__ */ new Map([[e.id, a.checked]]))), a.checked = e.column.visible !== !1;
74
+ }
75
+ function W() {
76
+ l.disabled || (g("update:columns", K(l.columns, B)), g("reset"));
77
+ }
78
+ function Y(e) {
79
+ if (l.disabled || !m.value.length) return;
80
+ const t = e.target, a = /* @__PURE__ */ new Map();
81
+ function o(s) {
82
+ for (const d of s)
83
+ T(d.column, "checkbox") || (P(d) || a.set(d.id, t.checked), o(d.children));
84
+ }
85
+ o(m.value), g("update:columns", K(l.columns, a)), t.checked = y.value.all, t.indeterminate = y.value.partial;
86
+ }
87
+ function V(e = u.value) {
88
+ return e === "density" ? O.value : I.value;
89
+ }
90
+ let w;
91
+ function v(e = !1) {
92
+ const t = V();
93
+ u.value = null, e && t?.focus();
94
+ }
95
+ function h() {
96
+ const e = V();
97
+ if (!u.value || !e) return;
98
+ const t = e.getBoundingClientRect(), a = f.value?.getBoundingClientRect().width ?? 0, o = {
99
+ top: t.top,
100
+ right: t.right,
101
+ bottom: t.bottom,
102
+ left: t.right - a
103
+ };
104
+ D.value = {
105
+ ...ye(o, z.value, a, f.value?.scrollHeight),
106
+ zIndex: "var(--vtg-column-settings-z)"
107
+ }, z.value === document.body && (D.value.left = `${Math.max(8, Math.min(o.left, window.innerWidth - a - 8))}px`, delete D.value.right);
108
+ }
109
+ function L(e) {
110
+ const t = e.target;
111
+ !I.value?.contains(t) && !O.value?.contains(t) && !f.value?.contains(t) && v();
112
+ }
113
+ async function q(e) {
114
+ const t = V(e);
115
+ if (l.disabled || !t) return;
116
+ if (u.value === e) return v();
117
+ if (R(), z.value = l.getPopupContainer?.(t) ?? document.body, u.value = e, h(), await oe(), u.value !== e) return;
118
+ h();
119
+ const a = e === "density" ? '[aria-checked="true"]' : "input:not(:disabled), button:not(:disabled)";
120
+ (f.value?.querySelector(a) ?? f.value?.querySelector("button:not(:disabled)"))?.focus(), typeof ResizeObserver < "u" && (w = new ResizeObserver(h), w.observe(t), f.value && w.observe(f.value));
121
+ }
122
+ function Z(e) {
123
+ if (u.value === "density" && ["ArrowDown", "ArrowUp", "Home", "End"].includes(e.key)) {
124
+ const t = Array.from(f.value?.querySelectorAll('[role="menuitemradio"]') ?? []);
125
+ if (!t.length) return;
126
+ e.preventDefault();
127
+ const a = t.indexOf(e.target), o = e.key === "Home" ? 0 : e.key === "End" ? t.length - 1 : (a + (e.key === "ArrowDown" ? 1 : -1) + t.length) % t.length;
128
+ t[o]?.focus();
129
+ } else if (e.key === "Escape")
130
+ e.preventDefault(), e.stopPropagation(), v(!0);
131
+ else if (e.key === "Tab") {
132
+ if (u.value === "density") {
133
+ v(!0), e.shiftKey && e.preventDefault();
134
+ return;
135
+ }
136
+ const t = f.value?.querySelectorAll("button:not(:disabled), input:not(:disabled), select:not(:disabled)");
137
+ if (!t?.length) return;
138
+ (e.shiftKey && e.target === t[0] || !e.shiftKey && e.target === t[t.length - 1]) && (v(!0), e.shiftKey && e.preventDefault());
139
+ }
140
+ }
141
+ function R() {
142
+ w?.disconnect(), w = void 0, !(typeof document > "u") && (document.removeEventListener("pointerdown", L), document.removeEventListener("focusin", L), window.removeEventListener("resize", h), window.removeEventListener("scroll", h, !0));
143
+ }
144
+ C(u, (e) => {
145
+ if (!e) return R();
146
+ document.addEventListener("pointerdown", L), document.addEventListener("focusin", L), window.addEventListener("resize", h), window.addEventListener("scroll", h, !0);
147
+ }), C(() => l.disabled, (e) => {
148
+ e && v();
149
+ }), C(() => l.getPopupContainer, () => v()), C(() => [l.options?.density, l.options?.setting], () => {
150
+ (u.value === "density" && l.options?.density === !1 || u.value === "columns" && l.options?.setting === !1) && v();
151
+ }), ie(R);
152
+ function Q(e, t) {
153
+ if (l.disabled || !H(e) || S(e.column) === t) return;
154
+ const a = pe(l.columns, e.id, t);
155
+ a !== l.columns && g("update:columns", a);
156
+ }
157
+ function X(e, t) {
158
+ t.preventDefault(), t.stopPropagation();
159
+ const a = x.value;
160
+ if (x.value = null, !a || l.disabled || l.options?.draggable === !1) return;
161
+ const o = be(l.columns, a, e.id);
162
+ o !== l.columns && g("update:columns", o);
163
+ }
164
+ function $(e, t = !1, a = !1) {
165
+ return e.map((o) => {
166
+ const s = o.column, d = U.columnLabel?.({
167
+ column: s
168
+ }) ?? (typeof s.title == "function" ? void 0 : s.title) ?? String(s.key ?? ("dataIndex" in s ? s.dataIndex ?? "" : ""));
169
+ return n("li", {
170
+ key: o.id,
171
+ class: i.item(),
172
+ "data-column-setting": o.id,
173
+ onDragover: (c) => {
174
+ x.value && !a && c.preventDefault();
175
+ },
176
+ onDrop: a ? void 0 : (c) => X(o, c)
177
+ }, [n("div", {
178
+ class: i.row()
179
+ }, [!a && l.options?.draggable !== !1 && n("span", {
180
+ class: i.dragHandle(),
181
+ draggable: !l.disabled && !T(s, "order") && S(s) !== "mixed",
182
+ title: r.value.move,
183
+ "aria-hidden": "true",
184
+ onDragstart: (c) => {
185
+ if (l.disabled || T(s, "order")) return c.preventDefault();
186
+ x.value = o.id, c.dataTransfer?.setData("text/plain", o.id), c.dataTransfer && (c.dataTransfer.effectAllowed = "move");
187
+ },
188
+ onDragend: () => {
189
+ x.value = null;
190
+ }
191
+ }, [ue("⋮⋮")]), n("label", {
192
+ class: i.label()
193
+ }, [n("span", {
194
+ class: i.checkboxControl()
195
+ }, [n("input", {
196
+ type: "checkbox",
197
+ class: i.checkbox(),
198
+ checked: s.visible !== !1,
199
+ disabled: l.disabled || t || P(o),
200
+ onChange: (c) => J(o, c)
201
+ }, null), s.visible !== !1 && n("span", {
202
+ class: i.checkMark(),
203
+ "aria-hidden": "true"
204
+ }, null)]), n("span", {
205
+ class: i.labelText()
206
+ }, [d])]), !a && l.options?.fixed !== !1 && n("span", {
207
+ class: i.pinActions()
208
+ }, [["left", void 0, "right"].map((c) => {
209
+ const N = c === "left" ? r.value.fixedLeft : c === "right" ? r.value.fixedRight : r.value.unfixed;
210
+ return n(F, {
211
+ title: N
212
+ }, {
213
+ default: () => [n("button", {
214
+ type: "button",
215
+ class: i.pinAction(),
216
+ disabled: l.disabled || !H(o),
217
+ "aria-label": `${String(typeof d == "string" || typeof d == "number" ? d : s.key ?? "")}: ${N}`,
218
+ "aria-pressed": S(s) === c,
219
+ "data-column-pin": c ?? "none",
220
+ onClick: () => Q(o, c)
221
+ }, [n("svg", {
222
+ class: i.pinIcon(),
223
+ viewBox: "0 0 16 16",
224
+ fill: "none",
225
+ "aria-hidden": "true"
226
+ }, [n("rect", {
227
+ x: "2",
228
+ y: "3",
229
+ width: "12",
230
+ height: "10",
231
+ rx: "1",
232
+ stroke: "currentColor"
233
+ }, null), c ? n(_, null, [n("path", {
234
+ d: c === "left" ? "M6 3v10" : "M10 3v10",
235
+ stroke: "currentColor"
236
+ }, null), n("rect", {
237
+ x: c === "left" ? "2" : "10",
238
+ y: "3",
239
+ width: "4",
240
+ height: "10",
241
+ fill: "currentColor",
242
+ opacity: ".25"
243
+ }, null)]) : n("path", {
244
+ d: "M6 3v10M10 3v10",
245
+ stroke: "currentColor"
246
+ }, null)])])]
247
+ });
248
+ })])]), o.children.length > 0 && n("ul", {
249
+ class: i.children()
250
+ }, [$(o.children, t || s.visible === !1 || T(s, "checkbox"), !0)])]);
251
+ });
252
+ }
253
+ function ee() {
254
+ return m.value.some((t) => S(t.column) !== void 0) ? ["left", void 0, "right", "mixed"].map((t) => {
255
+ const a = m.value.filter((s) => S(s.column) === t);
256
+ if (!a.length) return null;
257
+ const o = t === "left" ? r.value.fixedLeft : t === "right" ? r.value.fixedRight : t === "mixed" ? r.value.mixed : r.value.unfixed;
258
+ return n("li", {
259
+ key: t ?? "none",
260
+ class: i.group()
261
+ }, [n("div", {
262
+ class: i.groupTitle()
263
+ }, [o]), n("ul", {
264
+ class: i.groupColumns()
265
+ }, [$(a)])]);
266
+ }) : $(m.value);
267
+ }
268
+ return () => n("span", {
269
+ class: i.root()
270
+ }, [l.options?.density !== !1 && n(F, {
271
+ title: r.value.density,
272
+ open: u.value ? !1 : void 0
273
+ }, {
274
+ default: () => [n("button", {
275
+ ref: O,
276
+ type: "button",
277
+ class: i.densityTrigger(),
278
+ disabled: l.disabled,
279
+ "aria-label": r.value.density,
280
+ "aria-haspopup": "menu",
281
+ "aria-expanded": u.value === "density",
282
+ "aria-controls": u.value === "density" ? `${M}-density` : void 0,
283
+ onClick: () => {
284
+ q("density");
285
+ }
286
+ }, [n(de, null, null)])]
287
+ }), l.options?.setting !== !1 && n(F, {
288
+ title: r.value.title,
289
+ open: u.value ? !1 : void 0
290
+ }, {
291
+ default: () => [n("button", {
292
+ ref: I,
293
+ type: "button",
294
+ class: i.trigger(),
295
+ disabled: l.disabled,
296
+ "aria-label": r.value.title,
297
+ "aria-haspopup": "dialog",
298
+ "aria-expanded": u.value === "columns",
299
+ "aria-controls": u.value === "columns" ? `${M}-columns` : void 0,
300
+ onClick: () => {
301
+ q("columns");
302
+ }
303
+ }, [n(ce, null, null)])]
304
+ }), u.value && n(ae, {
305
+ to: z.value
306
+ }, {
307
+ default: () => [n("div", {
308
+ ref: f,
309
+ key: u.value,
310
+ id: `${M}-${u.value}`,
311
+ role: u.value === "density" ? "menu" : "dialog",
312
+ "aria-label": u.value === "density" ? r.value.density : r.value.title,
313
+ "data-vtg-preset": E.value,
314
+ class: u.value === "density" ? i.densityPopup() : i.popup(),
315
+ style: D.value,
316
+ onKeydown: Z
317
+ }, [u.value === "density" ? ["large", "middle", "small"].map((e) => n("button", {
318
+ type: "button",
319
+ role: "menuitemradio",
320
+ tabindex: A.value === e ? 0 : -1,
321
+ class: i.density(),
322
+ "aria-checked": A.value === e,
323
+ onClick: () => {
324
+ l.disabled || (A.value !== e && g("update:size", e), v(!0));
325
+ }
326
+ }, [r.value[e]])) : n(_, null, [n("div", {
327
+ class: i.header()
328
+ }, [n("label", {
329
+ class: i.heading()
330
+ }, [n("span", {
331
+ class: i.checkboxControl()
332
+ }, [n("input", {
333
+ type: "checkbox",
334
+ class: i.checkbox(),
335
+ checked: y.value.all,
336
+ indeterminate: y.value.partial,
337
+ disabled: l.disabled || !m.value.length,
338
+ onChange: Y
339
+ }, null), y.value.all && n("span", {
340
+ class: i.checkMark(),
341
+ "aria-hidden": "true"
342
+ }, null), y.value.partial && n("span", {
343
+ class: i.indeterminateMark(),
344
+ "aria-hidden": "true"
345
+ }, null)]), r.value.columns]), n("button", {
346
+ type: "button",
347
+ class: i.reset(),
348
+ onClick: W
349
+ }, [r.value.reset])]), m.value.length ? n("ul", {
350
+ class: i.columns(),
351
+ "aria-label": r.value.columns
352
+ }, [ee()]) : n("div", {
353
+ class: i.empty()
354
+ }, [r.value.empty])])])]
355
+ })]);
356
+ }
357
+ });
358
+ export {
359
+ Pe as default
360
+ };
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=TableColumnSettings.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableColumnSettings.test.d.ts","sourceRoot":"","sources":["../../../../../table/src/components/TableColumnSettings.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,41 @@
1
+ import { PropType } from 'vue';
2
+ import { ColumnType } from '../types';
3
+ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
4
+ column: {
5
+ type: PropType<ColumnType<Record<string, unknown>>>;
6
+ required: true;
7
+ };
8
+ record: {
9
+ type: PropType<Record<string, unknown>>;
10
+ required: true;
11
+ };
12
+ rowIndex: {
13
+ type: NumberConstructor;
14
+ required: true;
15
+ };
16
+ defaultText: {
17
+ type: StringConstructor;
18
+ default: undefined;
19
+ };
20
+ }>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
21
+ column: {
22
+ type: PropType<ColumnType<Record<string, unknown>>>;
23
+ required: true;
24
+ };
25
+ record: {
26
+ type: PropType<Record<string, unknown>>;
27
+ required: true;
28
+ };
29
+ rowIndex: {
30
+ type: NumberConstructor;
31
+ required: true;
32
+ };
33
+ defaultText: {
34
+ type: StringConstructor;
35
+ default: undefined;
36
+ };
37
+ }>> & Readonly<{}>, {
38
+ defaultText: string;
39
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
40
+ export default _default;
41
+ //# sourceMappingURL=TableCopyButton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableCopyButton.d.ts","sourceRoot":"","sources":["../../../../../table/src/components/TableCopyButton.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA2D,KAAK,QAAQ,EAAE,MAAM,KAAK,CAAA;AAE5F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;;;cAMZ,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;;;;cAC7C,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;;;;;;;;;;;;;cADjC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;;;;cAC7C,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;;;;;;;;;;;;;;AAJ/D,wBAuGE"}
@@ -0,0 +1,94 @@
1
+ import { defineComponent as y, inject as x, ref as p, computed as b, onBeforeUnmount as g, createVNode as o, Fragment as w } from "vue";
2
+ import { TABLE_CONTEXT_KEY as h } from "../context.mjs";
3
+ import { getByDataIndex as T } from "../composables/useColumns.mjs";
4
+ const E = /* @__PURE__ */ y({
5
+ name: "TableCopyButton",
6
+ props: {
7
+ column: {
8
+ type: Object,
9
+ required: !0
10
+ },
11
+ record: {
12
+ type: Object,
13
+ required: !0
14
+ },
15
+ rowIndex: {
16
+ type: Number,
17
+ required: !0
18
+ },
19
+ defaultText: {
20
+ type: String,
21
+ default: void 0
22
+ }
23
+ },
24
+ setup(e) {
25
+ const u = x(h, {}), l = p("idle"), r = p(!1);
26
+ let s = !0, c;
27
+ const d = b(() => {
28
+ const t = u.locale?.value.cell;
29
+ return l.value === "copied" ? t?.copied ?? "已复制" : l.value === "failed" ? t?.copyFailed ?? "复制失败" : t?.copy ?? "复制";
30
+ });
31
+ g(() => {
32
+ s = !1, clearTimeout(c);
33
+ });
34
+ async function v(t) {
35
+ if (t.stopPropagation(), r.value) return;
36
+ r.value = !0;
37
+ const a = typeof e.column.copyable == "object" ? e.column.copyable : {};
38
+ let f = !1, m, n;
39
+ try {
40
+ const i = T(e.record, e.column.dataIndex);
41
+ if (n = typeof a.text == "function" ? await a.text({
42
+ text: i,
43
+ value: i,
44
+ record: e.record,
45
+ column: e.column,
46
+ index: e.rowIndex,
47
+ renderIndex: e.rowIndex
48
+ }) : a.text ?? e.defaultText, typeof n != "string") throw new Error("Provide copyable.text for non-scalar cell values");
49
+ if (!globalThis.navigator?.clipboard?.writeText) throw new Error("Clipboard API unavailable");
50
+ await navigator.clipboard.writeText(n);
51
+ } catch (i) {
52
+ f = !0, m = i;
53
+ }
54
+ s && (r.value = !1, l.value = f ? "failed" : "copied", clearTimeout(c), c = setTimeout(() => {
55
+ l.value = "idle";
56
+ }, 2e3), f ? a.onError?.(m, e.record) : a.onCopy?.(n, e.record));
57
+ }
58
+ return () => o("button", {
59
+ type: "button",
60
+ class: u.subThemeSlots?.copyButton(),
61
+ title: d.value,
62
+ "aria-label": d.value,
63
+ disabled: r.value,
64
+ onClick: v,
65
+ onMousedown: (t) => t.stopPropagation(),
66
+ onDragstart: (t) => {
67
+ t.preventDefault(), t.stopPropagation();
68
+ }
69
+ }, [o("svg", {
70
+ width: "1em",
71
+ height: "1em",
72
+ viewBox: "0 0 16 16",
73
+ fill: "none",
74
+ stroke: "currentColor",
75
+ "aria-hidden": "true"
76
+ }, [l.value === "copied" ? o("path", {
77
+ d: "m3 8 3 3 7-7"
78
+ }, null) : o(w, null, [o("rect", {
79
+ x: "5",
80
+ y: "5",
81
+ width: "8",
82
+ height: "9",
83
+ rx: "1"
84
+ }, null), o("path", {
85
+ d: "M3 10H2V2h8v1"
86
+ }, null)])]), o("span", {
87
+ "aria-live": "polite",
88
+ class: u.vtgClass?.("sr-only")
89
+ }, [l.value === "idle" ? "" : d.value])]);
90
+ }
91
+ });
92
+ export {
93
+ E as default
94
+ };
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=TableEnterprise.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableEnterprise.test.d.ts","sourceRoot":"","sources":["../../../../../table/src/components/TableEnterprise.test.ts"],"names":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"TableHeaderCell.d.ts","sourceRoot":"","sources":["../../../../../table/src/components/TableHeaderCell.tsx"],"names":[],"mappings":"AAAA,OAAO,EASL,KAAK,QAAQ,EACd,MAAM,KAAK,CAAA;AAOZ,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;;;cAuBzC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;;;;;;;;;;;;;;;;;cAAjD,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;;;;;;;;;;;;;;;;AAJvE,wBAiwBE"}
1
+ {"version":3,"file":"TableHeaderCell.d.ts","sourceRoot":"","sources":["../../../../../table/src/components/TableHeaderCell.tsx"],"names":[],"mappings":"AAAA,OAAO,EASL,KAAK,QAAQ,EACd,MAAM,KAAK,CAAA;AAOZ,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;;;cAwBzC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;;;;;;;;;;;;;;;;;cAAjD,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;;;;;;;;;;;;;;;;AAJvE,wBAuzBE"}