@atscript/vue-table 0.1.58

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 (202) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +24 -0
  3. package/dist/as-action-form-dialog.cjs +221 -0
  4. package/dist/as-action-form-dialog.d.cts +6 -0
  5. package/dist/as-action-form-dialog.d.mts +7 -0
  6. package/dist/as-action-form-dialog.mjs +221 -0
  7. package/dist/as-action-menu-content-CXsdPn42.mjs +104 -0
  8. package/dist/as-action-menu-content-CyUfBrWH.cjs +109 -0
  9. package/dist/as-cell-array-CXeZzZqt.cjs +69 -0
  10. package/dist/as-cell-array-DOQKR6t5.mjs +64 -0
  11. package/dist/as-cell-array.cjs +3 -0
  12. package/dist/as-cell-array.d.cts +2 -0
  13. package/dist/as-cell-array.d.mts +2 -0
  14. package/dist/as-cell-array.mjs +3 -0
  15. package/dist/as-cell-array.vue-DZGM2VHh.d.mts +12 -0
  16. package/dist/as-cell-array.vue-pFs5GcCR.d.cts +12 -0
  17. package/dist/as-cell-date-CTrvxS1h.cjs +78 -0
  18. package/dist/as-cell-date-Cq49RHmL.mjs +73 -0
  19. package/dist/as-cell-date.cjs +3 -0
  20. package/dist/as-cell-date.d.cts +2 -0
  21. package/dist/as-cell-date.d.mts +2 -0
  22. package/dist/as-cell-date.mjs +3 -0
  23. package/dist/as-cell-date.vue-BBSps2B2.d.cts +12 -0
  24. package/dist/as-cell-date.vue-Zlt4mHWb.d.mts +12 -0
  25. package/dist/as-cell-json-BynWIs1d.mjs +37 -0
  26. package/dist/as-cell-json-DvHvQ6IL.cjs +42 -0
  27. package/dist/as-cell-json-popover-BWdNs1YU.cjs +70 -0
  28. package/dist/as-cell-json-popover-DUq25I0L.mjs +65 -0
  29. package/dist/as-cell-json.cjs +3 -0
  30. package/dist/as-cell-json.d.cts +2 -0
  31. package/dist/as-cell-json.d.mts +2 -0
  32. package/dist/as-cell-json.mjs +3 -0
  33. package/dist/as-cell-json.vue-C6wg4ARZ.d.cts +12 -0
  34. package/dist/as-cell-json.vue-CESWuCer.d.mts +12 -0
  35. package/dist/as-cell-number-0_WrSCzu.cjs +76 -0
  36. package/dist/as-cell-number-Bc1C97Vg.mjs +71 -0
  37. package/dist/as-cell-number.cjs +3 -0
  38. package/dist/as-cell-number.d.cts +2 -0
  39. package/dist/as-cell-number.d.mts +2 -0
  40. package/dist/as-cell-number.mjs +3 -0
  41. package/dist/as-cell-number.vue-1Oq7nVI3.d.mts +12 -0
  42. package/dist/as-cell-number.vue-CJ2K5zeM.d.cts +12 -0
  43. package/dist/as-cell-union-C1w3B38J.mjs +88 -0
  44. package/dist/as-cell-union-CFAI0utz.cjs +93 -0
  45. package/dist/as-cell-union.cjs +4 -0
  46. package/dist/as-cell-union.d.cts +2 -0
  47. package/dist/as-cell-union.d.mts +2 -0
  48. package/dist/as-cell-union.mjs +4 -0
  49. package/dist/as-cell-union.vue-CslPM_c2.d.cts +12 -0
  50. package/dist/as-cell-union.vue-NnDmQZOA.d.mts +12 -0
  51. package/dist/as-column-menu-CH9Htz0Q.cjs +220 -0
  52. package/dist/as-column-menu-DCfhorMP.mjs +215 -0
  53. package/dist/as-column-menu.cjs +2 -0
  54. package/dist/as-column-menu.d.cts +2 -0
  55. package/dist/as-column-menu.d.mts +2 -0
  56. package/dist/as-column-menu.mjs +2 -0
  57. package/dist/as-column-menu.vue-C9e6wJ3z.d.mts +47 -0
  58. package/dist/as-column-menu.vue-o0qFdzoL.d.cts +47 -0
  59. package/dist/as-config-dialog-d2k7_l0U.cjs +699 -0
  60. package/dist/as-config-dialog-vRklaKbi.mjs +688 -0
  61. package/dist/as-config-dialog.cjs +3 -0
  62. package/dist/as-config-dialog.d.cts +2 -0
  63. package/dist/as-config-dialog.d.mts +2 -0
  64. package/dist/as-config-dialog.mjs +3 -0
  65. package/dist/as-config-dialog.vue-C6Q62xF5.d.mts +7 -0
  66. package/dist/as-config-dialog.vue-DvvJi3xx.d.cts +7 -0
  67. package/dist/as-confirm-dialog-BLh3Ju4-.mjs +52 -0
  68. package/dist/as-confirm-dialog-BgpIEE2z.cjs +57 -0
  69. package/dist/as-confirm-dialog.cjs +3 -0
  70. package/dist/as-confirm-dialog.d.cts +2 -0
  71. package/dist/as-confirm-dialog.d.mts +2 -0
  72. package/dist/as-confirm-dialog.mjs +3 -0
  73. package/dist/as-confirm-dialog.vue-CXxLpzbu.d.cts +7 -0
  74. package/dist/as-confirm-dialog.vue-pas8jGhv.d.mts +7 -0
  75. package/dist/as-filter-dialog-C0HMpUPT.mjs +610 -0
  76. package/dist/as-filter-dialog-DcGvIV3h.cjs +621 -0
  77. package/dist/as-filter-dialog.cjs +15 -0
  78. package/dist/as-filter-dialog.d.cts +2 -0
  79. package/dist/as-filter-dialog.d.mts +2 -0
  80. package/dist/as-filter-dialog.mjs +15 -0
  81. package/dist/as-filter-dialog.vue-BV2J8PgZ.d.cts +7 -0
  82. package/dist/as-filter-dialog.vue-RDZjp4gJ.d.mts +7 -0
  83. package/dist/as-filter-field-B_tYzvvl.cjs +984 -0
  84. package/dist/as-filter-field-Bqvu2ASN.mjs +943 -0
  85. package/dist/as-filter-field.cjs +9 -0
  86. package/dist/as-filter-field.d.cts +2 -0
  87. package/dist/as-filter-field.d.mts +2 -0
  88. package/dist/as-filter-field.mjs +9 -0
  89. package/dist/as-filter-field.vue-ByQ8xIGq.d.cts +11 -0
  90. package/dist/as-filter-field.vue-QY8wi5S5.d.mts +11 -0
  91. package/dist/as-filter-input--nr72iwX.cjs +106 -0
  92. package/dist/as-filter-input-P1i0CW2-.mjs +101 -0
  93. package/dist/as-filter-input.cjs +2 -0
  94. package/dist/as-filter-input.d.cts +2 -0
  95. package/dist/as-filter-input.d.mts +2 -0
  96. package/dist/as-filter-input.mjs +2 -0
  97. package/dist/as-filter-input.vue-CBQ71eNg.d.mts +18 -0
  98. package/dist/as-filter-input.vue-CS4nOk_Q.d.cts +18 -0
  99. package/dist/as-filters-Bxa9ZEMm.mjs +44 -0
  100. package/dist/as-filters-xRT2qv56.cjs +49 -0
  101. package/dist/as-filters.cjs +10 -0
  102. package/dist/as-filters.d.cts +2 -0
  103. package/dist/as-filters.d.mts +2 -0
  104. package/dist/as-filters.mjs +10 -0
  105. package/dist/as-filters.vue-BsMgYUcX.d.mts +10 -0
  106. package/dist/as-filters.vue-fv-tRL2H.d.cts +10 -0
  107. package/dist/as-preset-dialog-BaTfwMnh.cjs +569 -0
  108. package/dist/as-preset-dialog-BdDRgwf_.mjs +564 -0
  109. package/dist/as-preset-dialog.cjs +4 -0
  110. package/dist/as-preset-dialog.d.cts +2 -0
  111. package/dist/as-preset-dialog.d.mts +2 -0
  112. package/dist/as-preset-dialog.mjs +4 -0
  113. package/dist/as-preset-dialog.vue-Bzv-ON9W.d.mts +7 -0
  114. package/dist/as-preset-dialog.vue-DP9fy00Y.d.cts +7 -0
  115. package/dist/as-preset-picker-BQbNEiy9.mjs +427 -0
  116. package/dist/as-preset-picker-Ce3crTQy.cjs +432 -0
  117. package/dist/as-preset-picker.cjs +4 -0
  118. package/dist/as-preset-picker.d.cts +2 -0
  119. package/dist/as-preset-picker.d.mts +2 -0
  120. package/dist/as-preset-picker.mjs +4 -0
  121. package/dist/as-preset-picker.vue-CTBk6leV.d.mts +7 -0
  122. package/dist/as-preset-picker.vue-DfXS3pGl.d.cts +7 -0
  123. package/dist/as-row-actions-B6Kob6gt.cjs +120 -0
  124. package/dist/as-row-actions-CeWBBGqh.mjs +115 -0
  125. package/dist/as-row-actions.cjs +4 -0
  126. package/dist/as-row-actions.d.cts +2 -0
  127. package/dist/as-row-actions.d.mts +2 -0
  128. package/dist/as-row-actions.mjs +4 -0
  129. package/dist/as-row-actions.vue-BPaQfGev.d.mts +11 -0
  130. package/dist/as-row-actions.vue-Bvcc2tUN.d.cts +11 -0
  131. package/dist/as-table-Cnw2fOqZ.mjs +204 -0
  132. package/dist/as-table-DlDFxdXI.cjs +209 -0
  133. package/dist/as-table-actions-BK1Thy2G.cjs +142 -0
  134. package/dist/as-table-actions-BpMiNFni.mjs +137 -0
  135. package/dist/as-table-actions.cjs +4 -0
  136. package/dist/as-table-actions.d.cts +2 -0
  137. package/dist/as-table-actions.d.mts +2 -0
  138. package/dist/as-table-actions.mjs +4 -0
  139. package/dist/as-table-actions.vue-B7Q-JA3z.d.cts +47 -0
  140. package/dist/as-table-actions.vue-Bs1Jl1ep.d.mts +47 -0
  141. package/dist/as-table-base-D0k4k7k_.mjs +646 -0
  142. package/dist/as-table-base-VIz-B_6_.cjs +651 -0
  143. package/dist/as-table-cell-value-B1CiJYFn.mjs +26 -0
  144. package/dist/as-table-cell-value-CuxRtFn9.cjs +31 -0
  145. package/dist/as-table-cell-value.cjs +3 -0
  146. package/dist/as-table-cell-value.d.cts +2 -0
  147. package/dist/as-table-cell-value.d.mts +2 -0
  148. package/dist/as-table-cell-value.mjs +3 -0
  149. package/dist/as-table-cell-value.vue-BgFDv2JQ.d.cts +12 -0
  150. package/dist/as-table-cell-value.vue-BuPCQ8YA.d.mts +12 -0
  151. package/dist/as-table-header-cell-C3zeZUZo.cjs +117 -0
  152. package/dist/as-table-header-cell-CBn_ioCe.mjs +112 -0
  153. package/dist/as-table-header-cell.cjs +3 -0
  154. package/dist/as-table-header-cell.d.cts +2 -0
  155. package/dist/as-table-header-cell.d.mts +2 -0
  156. package/dist/as-table-header-cell.mjs +3 -0
  157. package/dist/as-table-header-cell.vue-Bc_DSsGY.d.cts +31 -0
  158. package/dist/as-table-header-cell.vue-DNMOHfek.d.mts +31 -0
  159. package/dist/as-table-root-Br6WcGRo.cjs +263 -0
  160. package/dist/as-table-root-gG7pTIdD.mjs +258 -0
  161. package/dist/as-table-root.cjs +28 -0
  162. package/dist/as-table-root.d.cts +2 -0
  163. package/dist/as-table-root.d.mts +2 -0
  164. package/dist/as-table-root.mjs +28 -0
  165. package/dist/as-table-root.vue-5_OhVwse.d.mts +2258 -0
  166. package/dist/as-table-root.vue-CSqEtIll.d.cts +2258 -0
  167. package/dist/as-table-status-BjRGGuhC.mjs +683 -0
  168. package/dist/as-table-status-DWYoJIMC.cjs +724 -0
  169. package/dist/as-table.cjs +10 -0
  170. package/dist/as-table.d.cts +2 -0
  171. package/dist/as-table.d.mts +2 -0
  172. package/dist/as-table.mjs +10 -0
  173. package/dist/as-table.vue-BTYg-e3Z.d.mts +81 -0
  174. package/dist/as-table.vue-wdRARLIe.d.cts +81 -0
  175. package/dist/as-window-table-CKIfo3M_.mjs +709 -0
  176. package/dist/as-window-table-DE7_NyEP.cjs +714 -0
  177. package/dist/as-window-table.cjs +9 -0
  178. package/dist/as-window-table.d.cts +2 -0
  179. package/dist/as-window-table.d.mts +2 -0
  180. package/dist/as-window-table.mjs +9 -0
  181. package/dist/as-window-table.vue-Bf8xGC9M.d.mts +86 -0
  182. package/dist/as-window-table.vue-CA8qsrz4.d.cts +86 -0
  183. package/dist/format-cell-B2xMDYO9.mjs +27 -0
  184. package/dist/format-cell-D4mqaN0E.cjs +32 -0
  185. package/dist/get-cell-value-CZSVfDLg.cjs +19 -0
  186. package/dist/get-cell-value-DiH84HKL.mjs +14 -0
  187. package/dist/index.cjs +598 -0
  188. package/dist/index.d.cts +21 -0
  189. package/dist/index.d.mts +21 -0
  190. package/dist/index.mjs +505 -0
  191. package/dist/preset-aspect-display-BYeiSgcc.mjs +43 -0
  192. package/dist/preset-aspect-display-y8aal_EF.cjs +72 -0
  193. package/dist/types-BvvXN72P.d.mts +531 -0
  194. package/dist/types-CNMmF6W2.d.cts +531 -0
  195. package/dist/use-cell-locale-1uQaFTLQ.mjs +23 -0
  196. package/dist/use-cell-locale-B480_QYK.cjs +34 -0
  197. package/dist/use-table-column-handlers-CGYAY2xH.cjs +65 -0
  198. package/dist/use-table-column-handlers-t6xi1yCE.mjs +54 -0
  199. package/dist/use-table-state-C4JbonEZ.mjs +1822 -0
  200. package/dist/use-table-state-MU-vuzui.cjs +1917 -0
  201. package/package.json +195 -0
  202. package/styles.d.ts +2 -0
@@ -0,0 +1,115 @@
1
+ import { a as useTableContext, c as applyRowGate, d as extractIdentifier, f as intentClass, l as ariaLabelFor, m as triggerAction } from "./use-table-state-C4JbonEZ.mjs";
2
+ import { t as as_action_menu_content_default } from "./as-action-menu-content-CXsdPn42.mjs";
3
+ import { Fragment, computed, createCommentVNode, createElementBlock, createElementVNode, createVNode, defineComponent, normalizeClass, openBlock, toDisplayString, unref, withCtx, withModifiers } from "vue";
4
+ import { DropdownMenuPortal, DropdownMenuRoot, DropdownMenuTrigger } from "reka-ui";
5
+ //#region src/components/defaults/as-row-actions.vue?vue&type=script&setup=true&lang.ts
6
+ const _hoisted_1 = {
7
+ key: 0,
8
+ class: "as-row-actions"
9
+ };
10
+ const _hoisted_2 = {
11
+ key: 1,
12
+ class: "as-row-actions"
13
+ };
14
+ const _hoisted_3 = [
15
+ "data-default",
16
+ "aria-label",
17
+ "title"
18
+ ];
19
+ const _hoisted_4 = {
20
+ key: 1,
21
+ class: "as-row-actions-btn-label"
22
+ };
23
+ const _hoisted_5 = {
24
+ key: 2,
25
+ class: "as-row-actions"
26
+ };
27
+ //#endregion
28
+ //#region src/components/defaults/as-row-actions.vue
29
+ var as_row_actions_default = /* @__PURE__ */ defineComponent({
30
+ __name: "as-row-actions",
31
+ props: {
32
+ row: {
33
+ type: Object,
34
+ required: false
35
+ },
36
+ pk: {
37
+ type: Object,
38
+ required: false
39
+ }
40
+ },
41
+ setup(__props) {
42
+ const props = __props;
43
+ const { state } = useTableContext();
44
+ const view = computed(() => {
45
+ const sourceDefault = state.actions.default.row;
46
+ const filtered = applyRowGate({
47
+ default: sourceDefault,
48
+ others: state.actions.others.row,
49
+ rows: state.actions.rows
50
+ }, props.row);
51
+ const total = (filtered.default ? 1 : 0) + filtered.others.length + filtered.rows.length;
52
+ const single = total === 1 ? filtered.default ?? filtered.others[0] ?? filtered.rows[0] : void 0;
53
+ return {
54
+ total,
55
+ default: filtered.default,
56
+ single,
57
+ singleLabelOnly: !!single && !single.icon,
58
+ singleIntentClass: single ? intentClass("as-row-actions", single) : void 0,
59
+ singleIsDefault: !!single && single === sourceDefault,
60
+ menuGroups: [
61
+ filtered.default ? [filtered.default] : [],
62
+ filtered.others,
63
+ filtered.rows
64
+ ]
65
+ };
66
+ });
67
+ async function trigger(action, event) {
68
+ const preferredId = state.tableDef.value?.preferredId ?? [];
69
+ const id = props.pk !== void 0 ? props.pk : extractIdentifier(props.row, preferredId);
70
+ await triggerAction(state, action, {
71
+ identifiers: id === void 0 ? [] : [id],
72
+ preferredId
73
+ }, event);
74
+ }
75
+ return (_ctx, _cache) => {
76
+ return openBlock(), createElementBlock(Fragment, null, [createCommentVNode(" table-layout: fixed needs a placeholder cell so column widths line up. "), view.value.total === 0 ? (openBlock(), createElementBlock("td", _hoisted_1)) : view.value.single ? (openBlock(), createElementBlock("td", _hoisted_2, [createElementVNode("button", {
77
+ type: "button",
78
+ class: normalizeClass(["as-row-actions-btn", [view.value.singleLabelOnly ? "as-row-actions-btn-labelled" : void 0, view.value.singleIntentClass]]),
79
+ "data-default": view.value.singleIsDefault || void 0,
80
+ "aria-label": unref(ariaLabelFor)(view.value.single),
81
+ title: unref(ariaLabelFor)(view.value.single),
82
+ onClick: _cache[0] || (_cache[0] = withModifiers(($event) => trigger(view.value.single, $event), ["stop"]))
83
+ }, [view.value.single.icon ? (openBlock(), createElementBlock("span", {
84
+ key: 0,
85
+ class: normalizeClass(["as-row-actions-btn-icon", view.value.single.icon]),
86
+ "aria-hidden": "true"
87
+ }, null, 2)) : (openBlock(), createElementBlock("span", _hoisted_4, toDisplayString(view.value.single.label || view.value.single.name), 1))], 10, _hoisted_3)])) : (openBlock(), createElementBlock("td", _hoisted_5, [createVNode(unref(DropdownMenuRoot), { modal: false }, {
88
+ default: withCtx(() => [createVNode(unref(DropdownMenuTrigger), { "as-child": "" }, {
89
+ default: withCtx(() => [createElementVNode("button", {
90
+ type: "button",
91
+ class: "as-row-actions-btn as-row-actions-more",
92
+ "aria-label": "Row actions",
93
+ title: "Row actions",
94
+ onClick: _cache[1] || (_cache[1] = withModifiers(() => {}, ["stop"]))
95
+ }, [..._cache[2] || (_cache[2] = [createElementVNode("span", {
96
+ class: "as-row-actions-btn-icon i-as-menu",
97
+ "aria-hidden": "true"
98
+ }, null, -1)])])]),
99
+ _: 1
100
+ }), createVNode(unref(DropdownMenuPortal), null, {
101
+ default: withCtx(() => [createVNode(as_action_menu_content_default, {
102
+ groups: view.value.menuGroups,
103
+ "default-marker": view.value.default,
104
+ prefix: "as-row-actions",
105
+ onSelect: trigger
106
+ }, null, 8, ["groups", "default-marker"])]),
107
+ _: 1
108
+ })]),
109
+ _: 1
110
+ })]))], 2112);
111
+ };
112
+ }
113
+ });
114
+ //#endregion
115
+ export { as_row_actions_default as t };
@@ -0,0 +1,4 @@
1
+ require("./use-table-state-MU-vuzui.cjs");
2
+ require("./as-action-menu-content-CyUfBrWH.cjs");
3
+ const require_as_row_actions = require("./as-row-actions-B6Kob6gt.cjs");
4
+ module.exports = require_as_row_actions.as_row_actions_default;
@@ -0,0 +1,2 @@
1
+ import { t as _default } from "./as-row-actions.vue-Bvcc2tUN.cjs";
2
+ export = _default;
@@ -0,0 +1,2 @@
1
+ import { t as _default } from "./as-row-actions.vue-BPaQfGev.mjs";
2
+ export { _default as default };
@@ -0,0 +1,4 @@
1
+ import "./use-table-state-C4JbonEZ.mjs";
2
+ import "./as-action-menu-content-CXsdPn42.mjs";
3
+ import { t as as_row_actions_default } from "./as-row-actions-CeWBBGqh.mjs";
4
+ export { as_row_actions_default as default };
@@ -0,0 +1,11 @@
1
+ import * as vue from "vue";
2
+
3
+ //#region src/components/defaults/as-row-actions.vue.d.ts
4
+ type __VLS_Props = {
5
+ row?: Record<string, unknown>;
6
+ pk?: Record<string, unknown>;
7
+ };
8
+ declare const __VLS_export: vue.DefineComponent<__VLS_Props, {}, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
9
+ declare const _default: typeof __VLS_export;
10
+ //#endregion
11
+ export { _default as t };
@@ -0,0 +1,11 @@
1
+ import * as vue from "vue";
2
+
3
+ //#region src/components/defaults/as-row-actions.vue.d.ts
4
+ type __VLS_Props = {
5
+ row?: Record<string, unknown>;
6
+ pk?: Record<string, unknown>;
7
+ };
8
+ declare const __VLS_export: vue.DefineComponent<__VLS_Props, {}, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
9
+ declare const _default: typeof __VLS_export;
10
+ //#endregion
11
+ export { _default as t };
@@ -0,0 +1,204 @@
1
+ import { a as useTableContext, g as ROW_ACTIONS_TYPE, h as ROW_ACTIONS_PATH, i as useRegisterMainActionListener } from "./use-table-state-C4JbonEZ.mjs";
2
+ import { o as useSelectModeReset } from "./as-table-status-BjRGGuhC.mjs";
3
+ import { n as useHasEmitListener, t as useTableColumnHandlers } from "./use-table-column-handlers-t6xi1yCE.mjs";
4
+ import { t as as_table_base_default } from "./as-table-base-D0k4k7k_.mjs";
5
+ import { computed, createCommentVNode, createElementBlock, createElementVNode, createSlots, createVNode, defineComponent, guardReactiveProps, normalizeProps, openBlock, renderList, renderSlot, unref, watch, withCtx } from "vue";
6
+ import { rowsToPks } from "@atscript/ui-table";
7
+ //#region src/components/as-table.vue?vue&type=script&setup=true&lang.ts
8
+ const _hoisted_1 = { class: "as-table-outer-wrap" };
9
+ const _hoisted_2 = {
10
+ key: 0,
11
+ class: "as-table-query-overlay"
12
+ };
13
+ //#endregion
14
+ //#region src/components/as-table.vue
15
+ var as_table_default = /* @__PURE__ */ defineComponent({
16
+ __name: "as-table",
17
+ props: {
18
+ rows: {
19
+ type: Array,
20
+ required: false
21
+ },
22
+ columns: {
23
+ type: Array,
24
+ required: false
25
+ },
26
+ stickyHeader: {
27
+ type: Boolean,
28
+ required: false,
29
+ default: true
30
+ },
31
+ virtualRowHeight: {
32
+ type: Number,
33
+ required: false
34
+ },
35
+ virtualOverscan: {
36
+ type: Number,
37
+ required: false,
38
+ default: 5
39
+ },
40
+ columnMenu: {
41
+ type: Object,
42
+ required: false
43
+ },
44
+ reorderable: {
45
+ type: Boolean,
46
+ required: false,
47
+ default: true
48
+ },
49
+ resizable: {
50
+ type: Boolean,
51
+ required: false,
52
+ default: true
53
+ },
54
+ columnMinWidth: {
55
+ type: Number,
56
+ required: false,
57
+ default: 48
58
+ },
59
+ select: {
60
+ type: String,
61
+ required: false,
62
+ default: "none"
63
+ },
64
+ rowDelete: {
65
+ type: [Boolean, Object],
66
+ required: false,
67
+ default: false
68
+ },
69
+ rowActionsColumn: {
70
+ type: [String, Boolean],
71
+ required: false,
72
+ default: false
73
+ }
74
+ },
75
+ emits: [
76
+ "row-click",
77
+ "row-dblclick",
78
+ "main-action"
79
+ ],
80
+ setup(__props, { emit: __emit }) {
81
+ const props = __props;
82
+ const emit = __emit;
83
+ const { state } = useTableContext();
84
+ watch(() => props.rowDelete, (val) => {
85
+ state.rowDelete.value = val;
86
+ }, { immediate: true });
87
+ useSelectModeReset(state, () => props.select);
88
+ watch(() => {
89
+ const placement = props.rowActionsColumn;
90
+ if (!placement) return false;
91
+ if (placement === "merge-select" && props.select !== "none") return false;
92
+ return state.actions.cellRow.length > 0;
93
+ }, (on) => {
94
+ state.includeActions.value = on;
95
+ }, { immediate: true });
96
+ const effectiveRows = computed(() => props.rows ?? state.results.value);
97
+ const actionsCol = computed(() => {
98
+ const acts = state.actions.row;
99
+ return {
100
+ path: ROW_ACTIONS_PATH,
101
+ label: "",
102
+ type: ROW_ACTIONS_TYPE,
103
+ sortable: false,
104
+ filterable: false,
105
+ visible: true,
106
+ order: 0,
107
+ fixed: true,
108
+ width: acts.length === 1 && !acts[0]?.icon ? "8em" : "4em"
109
+ };
110
+ });
111
+ const effectiveColumns = computed(() => {
112
+ const base = props.columns ?? state.columns.value;
113
+ const placement = props.rowActionsColumn;
114
+ if (placement === false || placement === void 0) return base;
115
+ if (state.actions.row.length === 0) return base;
116
+ if (placement === "first") return [actionsCol.value, ...base];
117
+ if (placement === "last") return [...base, actionsCol.value];
118
+ if (props.select === "none") return [actionsCol.value, ...base];
119
+ return base;
120
+ });
121
+ useRegisterMainActionListener(state, (req) => emit("main-action", req.row, req.absIndex, req.event), useHasEmitListener("onMainAction"));
122
+ const { onSort, onHide, onFilter, onFiltersOff, onResetWidth, onReorder, onClearFilters } = useTableColumnHandlers(state);
123
+ function handleSelectAll() {
124
+ state.selectedRows.value = rowsToPks(effectiveRows.value, state.rowValueFn);
125
+ }
126
+ function handleDeselectAll() {
127
+ state.selectedRows.value = [];
128
+ }
129
+ return (_ctx, _cache) => {
130
+ return openBlock(), createElementBlock("div", _hoisted_1, [createVNode(as_table_base_default, {
131
+ "render-mode": "standalone",
132
+ columns: effectiveColumns.value,
133
+ rows: effectiveRows.value,
134
+ sorters: unref(state).sorters.value,
135
+ "selected-rows": unref(state).selectedRows.value,
136
+ select: props.select,
137
+ "row-value-fn": unref(state).rowValueFn,
138
+ querying: unref(state).querying.value,
139
+ "query-error": unref(state).queryError.value,
140
+ "on-retry": unref(state).query,
141
+ "sticky-header": __props.stickyHeader,
142
+ "virtual-row-height": __props.virtualRowHeight,
143
+ "virtual-overscan": __props.virtualOverscan,
144
+ filters: unref(state).filters.value,
145
+ "search-term": unref(state).searchTerm.value,
146
+ "on-clear-filters": unref(onClearFilters),
147
+ "column-menu": __props.columnMenu,
148
+ reorderable: __props.reorderable,
149
+ resizable: __props.resizable,
150
+ "column-min-width": __props.columnMinWidth,
151
+ "column-widths": unref(state).columnWidths.value,
152
+ onSort: unref(onSort),
153
+ onHide: unref(onHide),
154
+ onFilter: unref(onFilter),
155
+ onFiltersOff: unref(onFiltersOff),
156
+ onSelectAll: handleSelectAll,
157
+ onDeselectAll: handleDeselectAll,
158
+ onReorder: unref(onReorder),
159
+ onResize: unref(state).setColumnWidth,
160
+ onResetWidth: unref(onResetWidth),
161
+ onRowClick: _cache[0] || (_cache[0] = (row, ev) => emit("row-click", row, ev)),
162
+ onRowDblclick: _cache[1] || (_cache[1] = (row, ev) => emit("row-dblclick", row, ev))
163
+ }, createSlots({ _: 2 }, [renderList(_ctx.$slots, (_, name) => {
164
+ return {
165
+ name,
166
+ fn: withCtx((slotProps) => [renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(slotProps ?? {})))])
167
+ };
168
+ })]), 1032, [
169
+ "columns",
170
+ "rows",
171
+ "sorters",
172
+ "selected-rows",
173
+ "select",
174
+ "row-value-fn",
175
+ "querying",
176
+ "query-error",
177
+ "on-retry",
178
+ "sticky-header",
179
+ "virtual-row-height",
180
+ "virtual-overscan",
181
+ "filters",
182
+ "search-term",
183
+ "on-clear-filters",
184
+ "column-menu",
185
+ "reorderable",
186
+ "resizable",
187
+ "column-min-width",
188
+ "column-widths",
189
+ "onSort",
190
+ "onHide",
191
+ "onFilter",
192
+ "onFiltersOff",
193
+ "onReorder",
194
+ "onResize",
195
+ "onResetWidth"
196
+ ]), unref(state).querying.value ? (openBlock(), createElementBlock("div", _hoisted_2, [renderSlot(_ctx.$slots, "query-loading", {}, () => [_cache[2] || (_cache[2] = createElementVNode("span", {
197
+ class: "as-table-query-overlay-icon",
198
+ "aria-hidden": "true"
199
+ }, null, -1))])])) : createCommentVNode("v-if", true)]);
200
+ };
201
+ }
202
+ });
203
+ //#endregion
204
+ export { as_table_default as t };
@@ -0,0 +1,209 @@
1
+ const require_use_table_state = require("./use-table-state-MU-vuzui.cjs");
2
+ const require_as_table_status = require("./as-table-status-DWYoJIMC.cjs");
3
+ const require_use_table_column_handlers = require("./use-table-column-handlers-CGYAY2xH.cjs");
4
+ const require_as_table_base = require("./as-table-base-VIz-B_6_.cjs");
5
+ let vue = require("vue");
6
+ let _atscript_ui_table = require("@atscript/ui-table");
7
+ //#region src/components/as-table.vue?vue&type=script&setup=true&lang.ts
8
+ const _hoisted_1 = { class: "as-table-outer-wrap" };
9
+ const _hoisted_2 = {
10
+ key: 0,
11
+ class: "as-table-query-overlay"
12
+ };
13
+ //#endregion
14
+ //#region src/components/as-table.vue
15
+ var as_table_default = /* @__PURE__ */ (0, vue.defineComponent)({
16
+ __name: "as-table",
17
+ props: {
18
+ rows: {
19
+ type: Array,
20
+ required: false
21
+ },
22
+ columns: {
23
+ type: Array,
24
+ required: false
25
+ },
26
+ stickyHeader: {
27
+ type: Boolean,
28
+ required: false,
29
+ default: true
30
+ },
31
+ virtualRowHeight: {
32
+ type: Number,
33
+ required: false
34
+ },
35
+ virtualOverscan: {
36
+ type: Number,
37
+ required: false,
38
+ default: 5
39
+ },
40
+ columnMenu: {
41
+ type: Object,
42
+ required: false
43
+ },
44
+ reorderable: {
45
+ type: Boolean,
46
+ required: false,
47
+ default: true
48
+ },
49
+ resizable: {
50
+ type: Boolean,
51
+ required: false,
52
+ default: true
53
+ },
54
+ columnMinWidth: {
55
+ type: Number,
56
+ required: false,
57
+ default: 48
58
+ },
59
+ select: {
60
+ type: String,
61
+ required: false,
62
+ default: "none"
63
+ },
64
+ rowDelete: {
65
+ type: [Boolean, Object],
66
+ required: false,
67
+ default: false
68
+ },
69
+ rowActionsColumn: {
70
+ type: [String, Boolean],
71
+ required: false,
72
+ default: false
73
+ }
74
+ },
75
+ emits: [
76
+ "row-click",
77
+ "row-dblclick",
78
+ "main-action"
79
+ ],
80
+ setup(__props, { emit: __emit }) {
81
+ const props = __props;
82
+ const emit = __emit;
83
+ const { state } = require_use_table_state.useTableContext();
84
+ (0, vue.watch)(() => props.rowDelete, (val) => {
85
+ state.rowDelete.value = val;
86
+ }, { immediate: true });
87
+ require_as_table_status.useSelectModeReset(state, () => props.select);
88
+ (0, vue.watch)(() => {
89
+ const placement = props.rowActionsColumn;
90
+ if (!placement) return false;
91
+ if (placement === "merge-select" && props.select !== "none") return false;
92
+ return state.actions.cellRow.length > 0;
93
+ }, (on) => {
94
+ state.includeActions.value = on;
95
+ }, { immediate: true });
96
+ const effectiveRows = (0, vue.computed)(() => props.rows ?? state.results.value);
97
+ const actionsCol = (0, vue.computed)(() => {
98
+ const acts = state.actions.row;
99
+ return {
100
+ path: require_use_table_state.ROW_ACTIONS_PATH,
101
+ label: "",
102
+ type: require_use_table_state.ROW_ACTIONS_TYPE,
103
+ sortable: false,
104
+ filterable: false,
105
+ visible: true,
106
+ order: 0,
107
+ fixed: true,
108
+ width: acts.length === 1 && !acts[0]?.icon ? "8em" : "4em"
109
+ };
110
+ });
111
+ const effectiveColumns = (0, vue.computed)(() => {
112
+ const base = props.columns ?? state.columns.value;
113
+ const placement = props.rowActionsColumn;
114
+ if (placement === false || placement === void 0) return base;
115
+ if (state.actions.row.length === 0) return base;
116
+ if (placement === "first") return [actionsCol.value, ...base];
117
+ if (placement === "last") return [...base, actionsCol.value];
118
+ if (props.select === "none") return [actionsCol.value, ...base];
119
+ return base;
120
+ });
121
+ require_use_table_state.useRegisterMainActionListener(state, (req) => emit("main-action", req.row, req.absIndex, req.event), require_use_table_column_handlers.useHasEmitListener("onMainAction"));
122
+ const { onSort, onHide, onFilter, onFiltersOff, onResetWidth, onReorder, onClearFilters } = require_use_table_column_handlers.useTableColumnHandlers(state);
123
+ function handleSelectAll() {
124
+ state.selectedRows.value = (0, _atscript_ui_table.rowsToPks)(effectiveRows.value, state.rowValueFn);
125
+ }
126
+ function handleDeselectAll() {
127
+ state.selectedRows.value = [];
128
+ }
129
+ return (_ctx, _cache) => {
130
+ return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", _hoisted_1, [(0, vue.createVNode)(require_as_table_base.as_table_base_default, {
131
+ "render-mode": "standalone",
132
+ columns: effectiveColumns.value,
133
+ rows: effectiveRows.value,
134
+ sorters: (0, vue.unref)(state).sorters.value,
135
+ "selected-rows": (0, vue.unref)(state).selectedRows.value,
136
+ select: props.select,
137
+ "row-value-fn": (0, vue.unref)(state).rowValueFn,
138
+ querying: (0, vue.unref)(state).querying.value,
139
+ "query-error": (0, vue.unref)(state).queryError.value,
140
+ "on-retry": (0, vue.unref)(state).query,
141
+ "sticky-header": __props.stickyHeader,
142
+ "virtual-row-height": __props.virtualRowHeight,
143
+ "virtual-overscan": __props.virtualOverscan,
144
+ filters: (0, vue.unref)(state).filters.value,
145
+ "search-term": (0, vue.unref)(state).searchTerm.value,
146
+ "on-clear-filters": (0, vue.unref)(onClearFilters),
147
+ "column-menu": __props.columnMenu,
148
+ reorderable: __props.reorderable,
149
+ resizable: __props.resizable,
150
+ "column-min-width": __props.columnMinWidth,
151
+ "column-widths": (0, vue.unref)(state).columnWidths.value,
152
+ onSort: (0, vue.unref)(onSort),
153
+ onHide: (0, vue.unref)(onHide),
154
+ onFilter: (0, vue.unref)(onFilter),
155
+ onFiltersOff: (0, vue.unref)(onFiltersOff),
156
+ onSelectAll: handleSelectAll,
157
+ onDeselectAll: handleDeselectAll,
158
+ onReorder: (0, vue.unref)(onReorder),
159
+ onResize: (0, vue.unref)(state).setColumnWidth,
160
+ onResetWidth: (0, vue.unref)(onResetWidth),
161
+ onRowClick: _cache[0] || (_cache[0] = (row, ev) => emit("row-click", row, ev)),
162
+ onRowDblclick: _cache[1] || (_cache[1] = (row, ev) => emit("row-dblclick", row, ev))
163
+ }, (0, vue.createSlots)({ _: 2 }, [(0, vue.renderList)(_ctx.$slots, (_, name) => {
164
+ return {
165
+ name,
166
+ fn: (0, vue.withCtx)((slotProps) => [(0, vue.renderSlot)(_ctx.$slots, name, (0, vue.normalizeProps)((0, vue.guardReactiveProps)(slotProps ?? {})))])
167
+ };
168
+ })]), 1032, [
169
+ "columns",
170
+ "rows",
171
+ "sorters",
172
+ "selected-rows",
173
+ "select",
174
+ "row-value-fn",
175
+ "querying",
176
+ "query-error",
177
+ "on-retry",
178
+ "sticky-header",
179
+ "virtual-row-height",
180
+ "virtual-overscan",
181
+ "filters",
182
+ "search-term",
183
+ "on-clear-filters",
184
+ "column-menu",
185
+ "reorderable",
186
+ "resizable",
187
+ "column-min-width",
188
+ "column-widths",
189
+ "onSort",
190
+ "onHide",
191
+ "onFilter",
192
+ "onFiltersOff",
193
+ "onReorder",
194
+ "onResize",
195
+ "onResetWidth"
196
+ ]), (0, vue.unref)(state).querying.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", _hoisted_2, [(0, vue.renderSlot)(_ctx.$slots, "query-loading", {}, () => [_cache[2] || (_cache[2] = (0, vue.createElementVNode)("span", {
197
+ class: "as-table-query-overlay-icon",
198
+ "aria-hidden": "true"
199
+ }, null, -1))])])) : (0, vue.createCommentVNode)("v-if", true)]);
200
+ };
201
+ }
202
+ });
203
+ //#endregion
204
+ Object.defineProperty(exports, "as_table_default", {
205
+ enumerable: true,
206
+ get: function() {
207
+ return as_table_default;
208
+ }
209
+ });