@atscript/vue-table 0.1.97 → 0.1.98

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 (177) hide show
  1. package/dist/as-action-form-dialog.cjs +1 -1
  2. package/dist/as-action-form-dialog.mjs +1 -1
  3. package/dist/{as-cell-array-DOQKR6t5.mjs → as-cell-array-2qmJ1lT2.mjs} +2 -2
  4. package/dist/{as-cell-array-CXeZzZqt.cjs → as-cell-array-iPeUnk2G.cjs} +2 -2
  5. package/dist/as-cell-array.cjs +1 -1
  6. package/dist/as-cell-array.d.mts +1 -1
  7. package/dist/as-cell-array.mjs +1 -1
  8. package/dist/{as-cell-date-DPWBlhyM.mjs → as-cell-date-BwFgi6O0.mjs} +2 -2
  9. package/dist/{as-cell-date-D0rowX5E.cjs → as-cell-date-DyixWKuS.cjs} +2 -2
  10. package/dist/as-cell-date.cjs +1 -1
  11. package/dist/as-cell-date.d.mts +1 -1
  12. package/dist/as-cell-date.mjs +1 -1
  13. package/dist/{as-cell-json-BynWIs1d.mjs → as-cell-json--95Xq6yq.mjs} +2 -2
  14. package/dist/{as-cell-json-DvHvQ6IL.cjs → as-cell-json-Bvv2P7YV.cjs} +2 -2
  15. package/dist/as-cell-json.cjs +1 -1
  16. package/dist/as-cell-json.d.mts +1 -1
  17. package/dist/as-cell-json.mjs +1 -1
  18. package/dist/{as-cell-number-Bc1C97Vg.mjs → as-cell-number-DKRaS9pM.mjs} +2 -2
  19. package/dist/{as-cell-number-0_WrSCzu.cjs → as-cell-number-DuPMOesI.cjs} +2 -2
  20. package/dist/as-cell-number.cjs +1 -1
  21. package/dist/as-cell-number.d.mts +1 -1
  22. package/dist/as-cell-number.mjs +1 -1
  23. package/dist/{as-cell-union-CFAI0utz.cjs → as-cell-union-CT0rIvQq.cjs} +3 -3
  24. package/dist/{as-cell-union-C1w3B38J.mjs → as-cell-union-sAOSdepj.mjs} +3 -3
  25. package/dist/as-cell-union.cjs +1 -1
  26. package/dist/as-cell-union.d.mts +1 -1
  27. package/dist/as-cell-union.mjs +1 -1
  28. package/dist/as-column-menu.cjs +1 -1
  29. package/dist/as-column-menu.d.cts +1 -1
  30. package/dist/as-column-menu.d.mts +1 -1
  31. package/dist/as-column-menu.mjs +1 -1
  32. package/dist/{as-column-menu.vue-C9e6wJ3z.d.mts → as-column-menu.vue-BtXVQywl.d.cts} +2 -2
  33. package/dist/{as-column-menu.vue-o0qFdzoL.d.cts → as-column-menu.vue-D3Z5BVLx.d.mts} +2 -2
  34. package/dist/{as-config-dialog-BB6BDa1E.mjs → as-config-dialog-COwDabdW.mjs} +15 -13
  35. package/dist/{as-config-dialog-BCvtSxi6.cjs → as-config-dialog-vOUtx5zq.cjs} +14 -12
  36. package/dist/as-config-dialog.cjs +1 -1
  37. package/dist/as-config-dialog.d.mts +1 -1
  38. package/dist/as-config-dialog.mjs +1 -1
  39. package/dist/as-confirm-dialog.cjs +1 -1
  40. package/dist/as-confirm-dialog.d.mts +1 -1
  41. package/dist/as-confirm-dialog.mjs +1 -1
  42. package/dist/{as-filter-dialog-O62-CnIQ.cjs → as-filter-dialog-BcPI27cn.cjs} +19 -70
  43. package/dist/{as-filter-dialog-KGyPqr2P.mjs → as-filter-dialog-DuFgEjqE.mjs} +20 -65
  44. package/dist/as-filter-dialog.cjs +1 -1
  45. package/dist/as-filter-dialog.d.mts +1 -1
  46. package/dist/as-filter-dialog.mjs +1 -1
  47. package/dist/{as-filter-field-jL7cnKUR.cjs → as-filter-field-B8idz2UD.cjs} +3 -473
  48. package/dist/{as-filter-field-CkiRXHVx.mjs → as-filter-field-Dsk1l3Et.mjs} +7 -441
  49. package/dist/as-filter-field.cjs +1 -1
  50. package/dist/as-filter-field.d.mts +1 -1
  51. package/dist/as-filter-field.mjs +1 -1
  52. package/dist/as-filter-input.cjs +1 -1
  53. package/dist/as-filter-input.d.mts +1 -1
  54. package/dist/as-filter-input.mjs +1 -1
  55. package/dist/{as-filters-BJM-NjUn.mjs → as-filters-BS7kWJfI.mjs} +5 -3
  56. package/dist/{as-filters-BFpZKtAU.cjs → as-filters-BzdQ4HUx.cjs} +4 -2
  57. package/dist/as-filters.cjs +1 -1
  58. package/dist/as-filters.d.mts +1 -1
  59. package/dist/as-filters.mjs +1 -1
  60. package/dist/{as-preset-dialog-1Xl8DIiN.cjs → as-preset-dialog-DOdrDDKy.cjs} +7 -8
  61. package/dist/{as-preset-dialog-DXbqMVI1.mjs → as-preset-dialog-DoEpCt2j.mjs} +7 -8
  62. package/dist/as-preset-dialog.cjs +1 -1
  63. package/dist/as-preset-dialog.d.mts +1 -1
  64. package/dist/as-preset-dialog.mjs +1 -1
  65. package/dist/{as-preset-picker-CkaaKzYB.cjs → as-preset-picker-2DkH7QfW.cjs} +1 -1
  66. package/dist/{as-preset-picker-DJTF47_V.mjs → as-preset-picker-ByUCQpnX.mjs} +1 -1
  67. package/dist/as-preset-picker.cjs +1 -1
  68. package/dist/as-preset-picker.d.mts +1 -1
  69. package/dist/as-preset-picker.mjs +1 -1
  70. package/dist/{as-row-actions-C78cvaf3.cjs → as-row-actions-05pQX_om.cjs} +1 -1
  71. package/dist/{as-row-actions-CpEMa5NU.mjs → as-row-actions-D7YgGt0x.mjs} +1 -1
  72. package/dist/as-row-actions.cjs +1 -1
  73. package/dist/as-row-actions.d.mts +1 -1
  74. package/dist/as-row-actions.mjs +1 -1
  75. package/dist/{as-table-v42bV1ea.cjs → as-table-DyuL_hUo.cjs} +6 -5
  76. package/dist/{as-table-DDyvnBFL.mjs → as-table-H5uKWieH.mjs} +4 -3
  77. package/dist/{as-table-actions-DtCjMMCI.cjs → as-table-actions-CsdY2_BG.cjs} +1 -1
  78. package/dist/{as-table-actions-D2-MBvoy.mjs → as-table-actions-DCEGQiHi.mjs} +1 -1
  79. package/dist/as-table-actions.cjs +1 -1
  80. package/dist/as-table-actions.d.cts +1 -1
  81. package/dist/as-table-actions.d.mts +1 -1
  82. package/dist/as-table-actions.mjs +1 -1
  83. package/dist/{as-table-actions.vue-pDtCQ0oB.d.cts → as-table-actions.vue-33oeDXOg.d.cts} +2 -2
  84. package/dist/{as-table-actions.vue-riwwEAGF.d.mts → as-table-actions.vue-DMf6-R5o.d.mts} +2 -2
  85. package/dist/{as-table-base-CSrtmIN2.mjs → as-table-base-DReD74pJ.mjs} +2 -2
  86. package/dist/{as-table-base-CHzULili.cjs → as-table-base-GEf95oXP.cjs} +2 -2
  87. package/dist/{as-table-cell-value-B1CiJYFn.mjs → as-table-cell-value-Byrb_Zyh.mjs} +2 -2
  88. package/dist/{as-table-cell-value-CuxRtFn9.cjs → as-table-cell-value-CcWR5oG4.cjs} +2 -2
  89. package/dist/as-table-cell-value.cjs +1 -1
  90. package/dist/as-table-cell-value.d.mts +1 -1
  91. package/dist/as-table-cell-value.mjs +1 -1
  92. package/dist/{as-table-header-cell-CBn_ioCe.mjs → as-table-header-cell-BUf8wvrw.mjs} +6 -4
  93. package/dist/{as-table-header-cell-C3zeZUZo.cjs → as-table-header-cell-DWONx2MI.cjs} +5 -3
  94. package/dist/as-table-header-cell.cjs +1 -1
  95. package/dist/as-table-header-cell.d.cts +1 -1
  96. package/dist/as-table-header-cell.d.mts +1 -1
  97. package/dist/as-table-header-cell.mjs +1 -1
  98. package/dist/{as-table-header-cell.vue-Bc_DSsGY.d.cts → as-table-header-cell.vue-CzqTEpyk.d.cts} +1 -1
  99. package/dist/{as-table-header-cell.vue-DNMOHfek.d.mts → as-table-header-cell.vue-Dj_Tl7dZ.d.mts} +1 -1
  100. package/dist/{as-table-root-zJdmNnsC.cjs → as-table-root-Cg2zkxR5.cjs} +8 -20
  101. package/dist/{as-table-root-Bc23Z7we.mjs → as-table-root-DpQUTbQ8.mjs} +4 -16
  102. package/dist/as-table-root.cjs +1 -1
  103. package/dist/as-table-root.d.cts +1 -1
  104. package/dist/as-table-root.d.mts +1 -1
  105. package/dist/as-table-root.mjs +1 -1
  106. package/dist/{as-table-root.vue-DuMkOgkl.d.mts → as-table-root.vue-Boq6pDr1.d.mts} +13 -4
  107. package/dist/{as-table-root.vue-D3ILISqx.d.cts → as-table-root.vue-CYmnf5SH.d.cts} +13 -4
  108. package/dist/{as-table-status-DKXFSCzE.cjs → as-table-status-DZP8dFpm.cjs} +17 -74
  109. package/dist/{as-table-status-B11orhFu.mjs → as-table-status-Dinns93w.mjs} +19 -64
  110. package/dist/as-table.cjs +1 -1
  111. package/dist/as-table.d.cts +1 -1
  112. package/dist/as-table.d.mts +1 -1
  113. package/dist/as-table.mjs +1 -1
  114. package/dist/{as-table.vue-Bab-ISDO.d.mts → as-table.vue-CE_7OC_h.d.mts} +3 -3
  115. package/dist/{as-table.vue-Dk6YH5ls.d.cts → as-table.vue-kFORh8Vg.d.cts} +3 -3
  116. package/dist/{as-window-table-CDTjX7W5.mjs → as-window-table-BwF2t4Zy.mjs} +5 -3
  117. package/dist/{as-window-table-DuwMCDUh.cjs → as-window-table-CCRJKpoE.cjs} +7 -5
  118. package/dist/as-window-table.cjs +1 -1
  119. package/dist/as-window-table.d.cts +1 -1
  120. package/dist/as-window-table.d.mts +1 -1
  121. package/dist/as-window-table.mjs +1 -1
  122. package/dist/{as-window-table.vue-DjTUqghh.d.mts → as-window-table.vue-C60NtRtq.d.cts} +3 -3
  123. package/dist/{as-window-table.vue-BJFSC4Rq.d.cts → as-window-table.vue-C88OoW5d.d.mts} +3 -3
  124. package/dist/index.cjs +46 -44
  125. package/dist/index.d.cts +19 -17
  126. package/dist/index.d.mts +23 -21
  127. package/dist/index.mjs +35 -35
  128. package/dist/{types-BvvXN72P.d.mts → types-BPFBxUS_.d.cts} +2 -4
  129. package/dist/{types-CNMmF6W2.d.cts → types-BWeFiZKk.d.mts} +2 -4
  130. package/dist/use-has-emit-listener-BTMDIv2e.mjs +14 -0
  131. package/dist/use-has-emit-listener-hhOH8CBI.cjs +19 -0
  132. package/dist/use-seed-on-open-DO3A1kIb.mjs +30 -0
  133. package/dist/use-seed-on-open-Dg9I89fU.cjs +35 -0
  134. package/dist/use-table-CLsp2mAu.cjs +475 -0
  135. package/dist/use-table-CRsFMyJb.mjs +440 -0
  136. package/dist/{use-table-column-handlers-CGYAY2xH.cjs → use-table-column-handlers-BgC4gUJV.cjs} +0 -19
  137. package/dist/{use-table-column-handlers-t6xi1yCE.mjs → use-table-column-handlers-cm0GxR2u.mjs} +1 -14
  138. package/dist/use-table-component-BbETnUuy.mjs +12 -0
  139. package/dist/use-table-component-CirEOQ_P.cjs +17 -0
  140. package/dist/use-table-nav-bridge-Bh1tpG0X.cjs +57 -0
  141. package/dist/use-table-nav-bridge-i8AjtjIt.mjs +52 -0
  142. package/dist/use-table-selection-C84z4OZy.mjs +59 -0
  143. package/dist/use-table-selection-Cmiu1h4S.cjs +70 -0
  144. package/package.json +10 -7
  145. /package/dist/{as-action-menu-content-CSPPMACR.cjs → as-action-menu-content-BChqFX3E.cjs} +0 -0
  146. /package/dist/{as-action-menu-content-DXWuttt_.mjs → as-action-menu-content-D2yf0zD2.mjs} +0 -0
  147. /package/dist/{as-cell-array.vue-DZGM2VHh.d.mts → as-cell-array.vue-D4vS7C_D.d.mts} +0 -0
  148. /package/dist/{as-cell-date.vue-Zlt4mHWb.d.mts → as-cell-date.vue-Chs7WTZ9.d.mts} +0 -0
  149. /package/dist/{as-cell-json-popover-BWdNs1YU.cjs → as-cell-json-popover-BM2QLgfk.cjs} +0 -0
  150. /package/dist/{as-cell-json-popover-DUq25I0L.mjs → as-cell-json-popover-Dkdv5Y9E.mjs} +0 -0
  151. /package/dist/{as-cell-json.vue-CESWuCer.d.mts → as-cell-json.vue-C0_LDvQw.d.mts} +0 -0
  152. /package/dist/{as-cell-number.vue-1Oq7nVI3.d.mts → as-cell-number.vue-BBF0OuU8.d.mts} +0 -0
  153. /package/dist/{as-cell-union.vue-NnDmQZOA.d.mts → as-cell-union.vue-CL-Lf-Rm.d.mts} +0 -0
  154. /package/dist/{as-column-menu-CH9Htz0Q.cjs → as-column-menu-fZVbJ9lU.cjs} +0 -0
  155. /package/dist/{as-column-menu-DCfhorMP.mjs → as-column-menu-kTIQfLTi.mjs} +0 -0
  156. /package/dist/{as-config-dialog.vue-C6Q62xF5.d.mts → as-config-dialog.vue-BvFZZRuY.d.mts} +0 -0
  157. /package/dist/{as-confirm-dialog-Xtw2wE1X.cjs → as-confirm-dialog-C6HAGzrj.cjs} +0 -0
  158. /package/dist/{as-confirm-dialog-DL0mCEeX.mjs → as-confirm-dialog-ClVKU1Dm.mjs} +0 -0
  159. /package/dist/{as-confirm-dialog.vue-pas8jGhv.d.mts → as-confirm-dialog.vue-Cz52-v6c.d.mts} +0 -0
  160. /package/dist/{as-filter-dialog.vue-RDZjp4gJ.d.mts → as-filter-dialog.vue-likNLqzF.d.mts} +0 -0
  161. /package/dist/{as-filter-field.vue-QY8wi5S5.d.mts → as-filter-field.vue-BbXLhd6O.d.mts} +0 -0
  162. /package/dist/{as-filter-input-P1i0CW2-.mjs → as-filter-input-BM23TNeh.mjs} +0 -0
  163. /package/dist/{as-filter-input--nr72iwX.cjs → as-filter-input-DJu2k9gO.cjs} +0 -0
  164. /package/dist/{as-filter-input.vue-CBQ71eNg.d.mts → as-filter-input.vue-B9ma2l9j.d.mts} +0 -0
  165. /package/dist/{as-filters.vue-BsMgYUcX.d.mts → as-filters.vue-DmECMd1v.d.mts} +0 -0
  166. /package/dist/{as-preset-dialog.vue-Bzv-ON9W.d.mts → as-preset-dialog.vue-BRjjfPty.d.mts} +0 -0
  167. /package/dist/{as-preset-picker.vue-CTBk6leV.d.mts → as-preset-picker.vue-BPjsiaVt.d.mts} +0 -0
  168. /package/dist/{as-row-actions.vue-BPaQfGev.d.mts → as-row-actions.vue-DUSDuoR2.d.mts} +0 -0
  169. /package/dist/{as-table-cell-value.vue-BuPCQ8YA.d.mts → as-table-cell-value.vue-kfNgVhzn.d.mts} +0 -0
  170. /package/dist/{format-cell-B2xMDYO9.mjs → format-cell-CNQ6BpvR.mjs} +0 -0
  171. /package/dist/{format-cell-D4mqaN0E.cjs → format-cell-CSbJgz5B.cjs} +0 -0
  172. /package/dist/{get-cell-value-CZSVfDLg.cjs → get-cell-value-4rHKP-TG.cjs} +0 -0
  173. /package/dist/{get-cell-value-DiH84HKL.mjs → get-cell-value-C8LLc_Rr.mjs} +0 -0
  174. /package/dist/{preset-aspect-display-BYeiSgcc.mjs → preset-aspect-display-IICxAlVo.mjs} +0 -0
  175. /package/dist/{preset-aspect-display-y8aal_EF.cjs → preset-aspect-display-TWwf6j1B.cjs} +0 -0
  176. /package/dist/{use-cell-locale-B480_QYK.cjs → use-cell-locale-BGBRQB7s.cjs} +0 -0
  177. /package/dist/{use-cell-locale-1uQaFTLQ.mjs → use-cell-locale-MQXoONh5.mjs} +0 -0
@@ -0,0 +1,70 @@
1
+ let vue = require("vue");
2
+ let _atscript_ui_table = require("@atscript/ui-table");
3
+ //#region src/composables/use-table-selection.ts
4
+ /**
5
+ * Renderer-owned cleanup for the `select` prop transition. Dropping into
6
+ * `'none'` clears `selectedRows` so the next opt-in to multi-mode starts
7
+ * clean; other transitions are no-ops (`'none' → 'multi'` already has an
8
+ * empty selection, `'multi' → 'multi'` doesn't change semantics). The
9
+ * getter is invoked once per change — NOT immediate, so the mount-time
10
+ * default `'none'` doesn't clobber externally-seeded selections.
11
+ *
12
+ * Lives outside `useTableSelection` because selection mode is a renderer
13
+ * concern (a prop, not state) — both `<AsTable>` and `<AsWindowTable>`
14
+ * call this from their setup so the cleanup tracks the renderer's prop.
15
+ */
16
+ function useSelectModeReset(state, selectGetter) {
17
+ (0, vue.watch)(selectGetter, (next, prev) => {
18
+ if (next === "none" && prev !== "none" && state.selectedRows.value.length > 0) state.selectedRows.value = [];
19
+ });
20
+ }
21
+ /**
22
+ * Wire up selection reconciliation on results change.
23
+ *
24
+ * The watcher distinguishes results-replacement (query / invalidate /
25
+ * pagination jump) from results-extension in EITHER direction (queryNext /
26
+ * forward-merging loadRange / backward-merging loadRange) and only runs the
27
+ * reconciliation logic on replacement. Backward extension prepends rows AND
28
+ * decrements `resultsStart` — caught via the last-row reference identity
29
+ * check, so scrolling upward doesn't silently mutate selection.
30
+ *
31
+ * Mode semantics on results-replacement:
32
+ * - `"persist"` — no-op; the consumer's ref is untouched.
33
+ * - `"trim"` (default) — keep the subset of selected PKs still present in the new results.
34
+ * - `"clear"` — drop everything.
35
+ */
36
+ function useTableSelection(state, opts) {
37
+ const mode = opts?.mode ?? "trim";
38
+ (0, vue.watch)([() => state.results.value, () => state.resultsStart.value], ([newResults, newResultsStart], [oldResults, oldResultsStart]) => {
39
+ if (mode === "persist") return;
40
+ if (state.selectedRows.value.length === 0) return;
41
+ const oldArr = oldResults ?? [];
42
+ const newArr = newResults;
43
+ const oldStart = oldResultsStart ?? 0;
44
+ const delta = newArr.length - oldArr.length;
45
+ if (delta > 0 && oldArr.length > 0) {
46
+ if (newResultsStart === oldStart && newArr[0] === oldArr[0]) return;
47
+ if (newResultsStart === oldStart - delta && newArr[newArr.length - 1] === oldArr[oldArr.length - 1]) return;
48
+ }
49
+ if (mode === "clear") {
50
+ state.selectedRows.value = [];
51
+ return;
52
+ }
53
+ const presentPks = /* @__PURE__ */ new Set();
54
+ for (const r of newArr) presentPks.add(state.rowValueFn(r));
55
+ state.selectedRows.value = (0, _atscript_ui_table.trimSelection)(state.selectedRows.value, presentPks);
56
+ });
57
+ }
58
+ //#endregion
59
+ Object.defineProperty(exports, "useSelectModeReset", {
60
+ enumerable: true,
61
+ get: function() {
62
+ return useSelectModeReset;
63
+ }
64
+ });
65
+ Object.defineProperty(exports, "useTableSelection", {
66
+ enumerable: true,
67
+ get: function() {
68
+ return useTableSelection;
69
+ }
70
+ });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atscript/vue-table",
3
- "version": "0.1.97",
3
+ "version": "0.1.98",
4
4
  "description": "Type-driven table components for Atscript with Vue 3",
5
5
  "keywords": [
6
6
  "atscript",
@@ -31,6 +31,9 @@
31
31
  "styles.d.ts"
32
32
  ],
33
33
  "type": "module",
34
+ "sideEffects": [
35
+ "**/*.css"
36
+ ],
34
37
  "main": "dist/index.mjs",
35
38
  "types": "dist/index.d.mts",
36
39
  "exports": {
@@ -159,13 +162,13 @@
159
162
  "access": "public"
160
163
  },
161
164
  "dependencies": {
162
- "@atscript/ui": "^0.1.97",
163
- "@atscript/ui-table": "^0.1.97",
164
- "@atscript/vue-form": "^0.1.97"
165
+ "@atscript/ui": "^0.1.98",
166
+ "@atscript/ui-table": "^0.1.98",
167
+ "@atscript/vue-form": "^0.1.98"
165
168
  },
166
169
  "devDependencies": {
167
- "@atscript/db-client": "^0.1.102",
168
- "@atscript/typescript": "^0.1.74",
170
+ "@atscript/db-client": "^0.1.104",
171
+ "@atscript/typescript": "^0.1.75",
169
172
  "@tanstack/vue-virtual": "^3.13.26",
170
173
  "@uniqu/core": "^0.1.6",
171
174
  "@vitejs/plugin-vue": "^6",
@@ -180,7 +183,7 @@
180
183
  "vunor": "^0.2.1"
181
184
  },
182
185
  "peerDependencies": {
183
- "@atscript/db-client": "^0.1.102",
186
+ "@atscript/db-client": "^0.1.104",
184
187
  "@tanstack/vue-virtual": "^3.13.26",
185
188
  "@vueuse/core": "^14.3.0",
186
189
  "reka-ui": "^2.9.8",