@atscript/vue-table 0.1.136 → 0.1.138

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 (107) 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-action-menu-content-qATZy3cu.mjs → as-action-menu-content-CVlExEpl.mjs} +1 -1
  4. package/dist/{as-action-menu-content-D8VzLK9e.cjs → as-action-menu-content-D8f60mY-.cjs} +1 -1
  5. package/dist/as-column-menu.d.cts +1 -1
  6. package/dist/as-column-menu.d.mts +1 -1
  7. package/dist/{as-column-menu.vue-BaIGUOhP.d.mts → as-column-menu.vue-CgvDp7JK.d.cts} +2 -2
  8. package/dist/{as-column-menu.vue-CDlI4-Cz.d.cts → as-column-menu.vue-SRkxrvo_.d.mts} +2 -2
  9. package/dist/{as-config-dialog-CP362FP3.cjs → as-config-dialog-BrVhIV_e.cjs} +2 -2
  10. package/dist/{as-config-dialog-BMQxSqzl.mjs → as-config-dialog-DHdpmRo9.mjs} +2 -2
  11. package/dist/as-config-dialog.cjs +1 -1
  12. package/dist/as-config-dialog.mjs +1 -1
  13. package/dist/{as-confirm-dialog-Dp_njNXz.mjs → as-confirm-dialog-BG5vlbvV.mjs} +1 -1
  14. package/dist/{as-confirm-dialog-D41XaN_P.cjs → as-confirm-dialog-iytk-urB.cjs} +1 -1
  15. package/dist/as-confirm-dialog.cjs +1 -1
  16. package/dist/as-confirm-dialog.mjs +1 -1
  17. package/dist/{as-filter-dialog-BCUqpKPd.cjs → as-filter-dialog-CW8-zoag.cjs} +7 -7
  18. package/dist/{as-filter-dialog-kAXGDwsk.mjs → as-filter-dialog-Dis7tkN_.mjs} +7 -7
  19. package/dist/as-filter-dialog.cjs +1 -1
  20. package/dist/as-filter-dialog.mjs +1 -1
  21. package/dist/{as-filter-field-WnV2axh8.mjs → as-filter-field-BKoxTudl.mjs} +3 -3
  22. package/dist/{as-filter-field-D3jSbSwB.cjs → as-filter-field-bVIXoH3j.cjs} +3 -3
  23. package/dist/as-filter-field.cjs +1 -1
  24. package/dist/as-filter-field.mjs +1 -1
  25. package/dist/{as-filters-Bc44srvA.mjs → as-filters-CxVy00LQ.mjs} +3 -3
  26. package/dist/{as-filters-Dp93OWRS.cjs → as-filters-Dx8WkGiA.cjs} +3 -3
  27. package/dist/as-filters.cjs +1 -1
  28. package/dist/as-filters.mjs +1 -1
  29. package/dist/{as-preset-dialog-Bx4nRuyk.mjs → as-preset-dialog-C0f_6VxJ.mjs} +1 -1
  30. package/dist/{as-preset-dialog-pusPD935.cjs → as-preset-dialog-D8o2ChtM.cjs} +1 -1
  31. package/dist/as-preset-dialog.cjs +1 -1
  32. package/dist/as-preset-dialog.mjs +1 -1
  33. package/dist/{as-preset-picker-BRQdflJz.mjs → as-preset-picker-CDItDinB.mjs} +1 -1
  34. package/dist/{as-preset-picker-nAx3MYl7.cjs → as-preset-picker-DonMQ8Ia.cjs} +1 -1
  35. package/dist/as-preset-picker.cjs +1 -1
  36. package/dist/as-preset-picker.mjs +1 -1
  37. package/dist/{as-row-actions-gxmuZkYI.mjs → as-row-actions-B8YANdb4.mjs} +2 -2
  38. package/dist/{as-row-actions-PD-sFmDs.cjs → as-row-actions-CAiCfw8d.cjs} +2 -2
  39. package/dist/as-row-actions.cjs +1 -1
  40. package/dist/as-row-actions.d.cts +1 -1
  41. package/dist/as-row-actions.d.mts +1 -1
  42. package/dist/as-row-actions.mjs +1 -1
  43. package/dist/{as-row-actions.vue-AXXt5kQS.d.mts → as-row-actions.vue-BCgHsU18.d.mts} +1 -1
  44. package/dist/{as-row-actions.vue-D0MXQoeg.d.cts → as-row-actions.vue-C49h8PpE.d.cts} +1 -1
  45. package/dist/{as-table-BIV1W3O9.mjs → as-table-BAoJ60tx.mjs} +8 -34
  46. package/dist/{as-table-ucLFACn0.cjs → as-table-QoXP-NZr.cjs} +8 -34
  47. package/dist/{as-table-actions-D_PUqMYy.cjs → as-table-actions-8yf2QIER.cjs} +2 -2
  48. package/dist/{as-table-actions-DQ5Nn8Jc.mjs → as-table-actions-z5xUWtvK.mjs} +2 -2
  49. package/dist/as-table-actions.cjs +1 -1
  50. package/dist/as-table-actions.d.cts +1 -1
  51. package/dist/as-table-actions.d.mts +1 -1
  52. package/dist/as-table-actions.mjs +1 -1
  53. package/dist/{as-table-actions.vue-iKw4tsJh.d.cts → as-table-actions.vue-BTGQnFH_.d.mts} +2 -2
  54. package/dist/{as-table-actions.vue-kndyFTyi.d.mts → as-table-actions.vue-oxyikRAt.d.cts} +2 -2
  55. package/dist/{as-table-base-kHOKCI7T.mjs → as-table-base-DA5T7x_K.mjs} +2 -2
  56. package/dist/{as-table-base-M6_12pPq.cjs → as-table-base-wPJuru7P.cjs} +2 -2
  57. package/dist/{as-table-header-cell-Ct_GPLVu.cjs → as-table-header-cell-CiRLNVJz.cjs} +1 -1
  58. package/dist/{as-table-header-cell-CZyy4q1s.mjs → as-table-header-cell-Cl8waY_g.mjs} +1 -1
  59. package/dist/as-table-header-cell.cjs +1 -1
  60. package/dist/as-table-header-cell.d.cts +1 -1
  61. package/dist/as-table-header-cell.d.mts +1 -1
  62. package/dist/as-table-header-cell.mjs +1 -1
  63. package/dist/{as-table-header-cell.vue-BNsOEsof.d.mts → as-table-header-cell.vue-BjgxfKhi.d.cts} +2 -2
  64. package/dist/{as-table-header-cell.vue-DqjorECQ.d.cts → as-table-header-cell.vue-zGeuzm3w.d.mts} +2 -2
  65. package/dist/{as-table-root-DGYw0kPC.mjs → as-table-root-Bza3ZGJZ.mjs} +20 -13
  66. package/dist/{as-table-root-EyN1JHuS.cjs → as-table-root-C6a6iO6M.cjs} +20 -13
  67. package/dist/as-table-root.cjs +1 -1
  68. package/dist/as-table-root.d.cts +1 -1
  69. package/dist/as-table-root.d.mts +1 -1
  70. package/dist/as-table-root.mjs +1 -1
  71. package/dist/{as-table-root.vue-D5RZKczC.d.mts → as-table-root.vue-DnOHVQtA.d.mts} +3 -3
  72. package/dist/{as-table-root.vue-DHmH2h1z.d.cts → as-table-root.vue-Dze91qga.d.cts} +3 -3
  73. package/dist/{as-table-status-DMFZuZfJ.cjs → as-table-status-B2O3hLGg.cjs} +4 -4
  74. package/dist/{as-table-status-CYzRbU71.mjs → as-table-status-aebsG7bR.mjs} +4 -4
  75. package/dist/as-table.cjs +1 -1
  76. package/dist/as-table.d.cts +1 -1
  77. package/dist/as-table.d.mts +1 -1
  78. package/dist/as-table.mjs +1 -1
  79. package/dist/{as-table.vue-CSsa8u47.d.mts → as-table.vue-BSKifGzD.d.cts} +8 -8
  80. package/dist/{as-table.vue-B2yu8GI5.d.cts → as-table.vue-emq84QmP.d.mts} +8 -8
  81. package/dist/{as-window-table-B9Y4Xgwm.mjs → as-window-table-ByTXS8yA.mjs} +30 -13
  82. package/dist/{as-window-table-Bxq7cYW5.cjs → as-window-table-DS30wumm.cjs} +30 -13
  83. package/dist/as-window-table.cjs +1 -1
  84. package/dist/as-window-table.d.cts +1 -1
  85. package/dist/as-window-table.d.mts +1 -1
  86. package/dist/as-window-table.mjs +1 -1
  87. package/dist/{as-window-table.vue-DxNiv9jn.d.mts → as-window-table.vue-DJNJ-6dd.d.cts} +18 -5
  88. package/dist/{as-window-table.vue-CBSeXWnu.d.cts → as-window-table.vue-DUJgZDXy.d.mts} +18 -5
  89. package/dist/index.cjs +17 -17
  90. package/dist/index.d.cts +9 -9
  91. package/dist/index.d.mts +9 -9
  92. package/dist/index.mjs +17 -17
  93. package/dist/{types-CyAmAg10.d.cts → types-CsgAGRfG.d.mts} +29 -8
  94. package/dist/{types-yS6-QFfT.d.mts → types-DvWLY5zQ.d.cts} +29 -8
  95. package/dist/{use-table-BVptAnaS.mjs → use-table-DRN4nlZs.mjs} +1 -1
  96. package/dist/{use-table-Bm2a0g9D.cjs → use-table-JU7BAX4e.cjs} +1 -1
  97. package/dist/use-table-column-handlers-DGn4ZW9j.mjs +85 -0
  98. package/dist/use-table-column-handlers-r47WDxEh.cjs +96 -0
  99. package/dist/{use-table-component-Bpy5mg_P.cjs → use-table-component-DIWiP_Vs.cjs} +1 -1
  100. package/dist/{use-table-component-DYzKgCC4.mjs → use-table-component-VUFlxIk-.mjs} +1 -1
  101. package/dist/{use-table-nav-bridge-qyvyRm6S.cjs → use-table-nav-bridge-BBtXE70x.cjs} +1 -1
  102. package/dist/{use-table-nav-bridge-LCL6vq9F.mjs → use-table-nav-bridge-DT8oU-6r.mjs} +1 -1
  103. package/dist/{use-table-state-jljSQQ8m.cjs → use-table-state-CoVe_8NI.cjs} +6 -5
  104. package/dist/{use-table-state-CwfgWmuk.mjs → use-table-state-CqU1N4Q9.mjs} +7 -6
  105. package/package.json +6 -6
  106. package/dist/use-table-column-handlers-BMrP0WY2.cjs +0 -45
  107. package/dist/use-table-column-handlers-Bx3JERqs.mjs +0 -40
@@ -1,2 +1,2 @@
1
- import { t as _default } from "./as-table-header-cell.vue-BNsOEsof.mjs";
1
+ import { t as _default } from "./as-table-header-cell.vue-zGeuzm3w.mjs";
2
2
  export { _default as default };
@@ -1,2 +1,2 @@
1
- import { t as as_table_header_cell_default } from "./as-table-header-cell-CZyy4q1s.mjs";
1
+ import { t as as_table_header_cell_default } from "./as-table-header-cell-Cl8waY_g.mjs";
2
2
  export { as_table_header_cell_default as default };
@@ -1,6 +1,6 @@
1
- import { n as ColumnMenuConfig } from "./types-yS6-QFfT.mjs";
2
- import { ColumnDef } from "@atscript/ui";
1
+ import { r as ColumnMenuConfig } from "./types-DvWLY5zQ.cjs";
3
2
  import * as vue from "vue";
3
+ import { ColumnDef } from "@atscript/ui";
4
4
  import { ColumnWidthEntry, FilterCondition } from "@atscript/ui-table";
5
5
 
6
6
  //#region src/components/defaults/as-table-header-cell.vue.d.ts
@@ -1,6 +1,6 @@
1
- import { n as ColumnMenuConfig } from "./types-CyAmAg10.cjs";
2
- import * as vue from "vue";
1
+ import { r as ColumnMenuConfig } from "./types-CsgAGRfG.mjs";
3
2
  import { ColumnDef } from "@atscript/ui";
3
+ import * as vue from "vue";
4
4
  import { ColumnWidthEntry, FilterCondition } from "@atscript/ui-table";
5
5
 
6
6
  //#region src/components/defaults/as-table-header-cell.vue.d.ts
@@ -1,8 +1,8 @@
1
- import { i as useRegisterMainActionListener, t as createStaticTableState } from "./use-table-state-CwfgWmuk.mjs";
2
- import { n as finalizeTableState, r as useTable } from "./use-table-BVptAnaS.mjs";
3
- import { t as useTableNavBridge } from "./use-table-nav-bridge-LCL6vq9F.mjs";
1
+ import { i as useRegisterMainActionListener, t as createStaticTableState } from "./use-table-state-CqU1N4Q9.mjs";
2
+ import { n as finalizeTableState, r as useTable } from "./use-table-DRN4nlZs.mjs";
3
+ import { t as useTableNavBridge } from "./use-table-nav-bridge-DT8oU-6r.mjs";
4
4
  import { t as useHasEmitListener } from "./use-has-emit-listener-DrBbsLHQ.mjs";
5
- import { t as as_confirm_dialog_default } from "./as-confirm-dialog-Dp_njNXz.mjs";
5
+ import { t as as_confirm_dialog_default } from "./as-confirm-dialog-BG5vlbvV.mjs";
6
6
  import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, defineAsyncComponent, defineComponent, mergeModels, openBlock, ref, renderSlot, resolveDynamicComponent, unref, useModel, watch } from "vue";
7
7
  //#region src/utils/dev.ts
8
8
  /**
@@ -310,15 +310,22 @@ var as_table_root_default = /* @__PURE__ */ defineComponent({
310
310
  watch(() => props.rowActions, (value) => {
311
311
  state.rowActions.value = value;
312
312
  }, { immediate: true });
313
- if (urlQueryActive && !localMode) watch([
314
- () => state.tableDef.value,
315
- () => urlQuery.value,
316
- () => state.preset.ready.value
317
- ], ([def, q, presetReady]) => {
318
- if (def === null || !presetReady) return;
319
- if (typeof q === "string" && q !== "") state.applyUrlQuery(q);
320
- if (!urlQueryReady.value) urlQueryReady.value = true;
321
- }, { immediate: true });
313
+ if (urlQueryActive && !localMode) {
314
+ let lastSeenQuery = "";
315
+ watch([
316
+ () => state.tableDef.value,
317
+ () => urlQuery.value,
318
+ () => state.preset.ready.value
319
+ ], ([def, q, presetReady]) => {
320
+ if (def === null || !presetReady) return;
321
+ const query = typeof q === "string" ? q : "";
322
+ if (!urlQueryReady.value) {
323
+ if (query !== "") state.applyUrlQuery(query, { mode: "merge" });
324
+ urlQueryReady.value = true;
325
+ } else if (query !== lastSeenQuery) state.applyUrlQuery(query, { mode: "replace" });
326
+ lastSeenQuery = query;
327
+ }, { immediate: true });
328
+ }
322
329
  useRegisterMainActionListener(state, (req) => emit("main-action", req.row, req.absIndex, req.event), useHasEmitListener("onMainAction"));
323
330
  const navBridge = useTableNavBridge(state);
324
331
  function latchOpened(source) {
@@ -1,8 +1,8 @@
1
- const require_use_table_state = require("./use-table-state-jljSQQ8m.cjs");
2
- const require_use_table = require("./use-table-Bm2a0g9D.cjs");
3
- const require_use_table_nav_bridge = require("./use-table-nav-bridge-qyvyRm6S.cjs");
1
+ const require_use_table_state = require("./use-table-state-CoVe_8NI.cjs");
2
+ const require_use_table = require("./use-table-JU7BAX4e.cjs");
3
+ const require_use_table_nav_bridge = require("./use-table-nav-bridge-BBtXE70x.cjs");
4
4
  const require_use_has_emit_listener = require("./use-has-emit-listener-BaGFZDyM.cjs");
5
- const require_as_confirm_dialog = require("./as-confirm-dialog-D41XaN_P.cjs");
5
+ const require_as_confirm_dialog = require("./as-confirm-dialog-iytk-urB.cjs");
6
6
  let vue = require("vue");
7
7
  //#region src/utils/dev.ts
8
8
  /**
@@ -310,15 +310,22 @@ var as_table_root_default = /* @__PURE__ */ (0, vue.defineComponent)({
310
310
  (0, vue.watch)(() => props.rowActions, (value) => {
311
311
  state.rowActions.value = value;
312
312
  }, { immediate: true });
313
- if (urlQueryActive && !localMode) (0, vue.watch)([
314
- () => state.tableDef.value,
315
- () => urlQuery.value,
316
- () => state.preset.ready.value
317
- ], ([def, q, presetReady]) => {
318
- if (def === null || !presetReady) return;
319
- if (typeof q === "string" && q !== "") state.applyUrlQuery(q);
320
- if (!urlQueryReady.value) urlQueryReady.value = true;
321
- }, { immediate: true });
313
+ if (urlQueryActive && !localMode) {
314
+ let lastSeenQuery = "";
315
+ (0, vue.watch)([
316
+ () => state.tableDef.value,
317
+ () => urlQuery.value,
318
+ () => state.preset.ready.value
319
+ ], ([def, q, presetReady]) => {
320
+ if (def === null || !presetReady) return;
321
+ const query = typeof q === "string" ? q : "";
322
+ if (!urlQueryReady.value) {
323
+ if (query !== "") state.applyUrlQuery(query, { mode: "merge" });
324
+ urlQueryReady.value = true;
325
+ } else if (query !== lastSeenQuery) state.applyUrlQuery(query, { mode: "replace" });
326
+ lastSeenQuery = query;
327
+ }, { immediate: true });
328
+ }
322
329
  require_use_table_state.useRegisterMainActionListener(state, (req) => emit("main-action", req.row, req.absIndex, req.event), require_use_has_emit_listener.useHasEmitListener("onMainAction"));
323
330
  const navBridge = require_use_table_nav_bridge.useTableNavBridge(state);
324
331
  function latchOpened(source) {
@@ -1,2 +1,2 @@
1
- const require_as_table_root = require("./as-table-root-EyN1JHuS.cjs");
1
+ const require_as_table_root = require("./as-table-root-C6a6iO6M.cjs");
2
2
  module.exports = require_as_table_root.as_table_root_default;
@@ -1,2 +1,2 @@
1
- import { t as _default } from "./as-table-root.vue-DHmH2h1z.cjs";
1
+ import { t as _default } from "./as-table-root.vue-Dze91qga.cjs";
2
2
  export = _default;
@@ -1,2 +1,2 @@
1
- import { t as _default } from "./as-table-root.vue-D5RZKczC.mjs";
1
+ import { t as _default } from "./as-table-root.vue-DnOHVQtA.mjs";
2
2
  export { _default as default };
@@ -1,2 +1,2 @@
1
- import { t as as_table_root_default } from "./as-table-root-DGYw0kPC.mjs";
1
+ import { t as as_table_root_default } from "./as-table-root-Bza3ZGJZ.mjs";
2
2
  export { as_table_root_default as default };
@@ -1,4 +1,4 @@
1
- import { C as TableActionsState, S as TVueTableActionInfo, b as TAsCellTypeComponents, f as ReactiveTableState, i as ConfirmOptions, l as NavKeyOptions, p as RowActionsConfig, t as ActionResult, u as PresetConfig, w as TableNavBridge, x as TAsTableControls } from "./types-yS6-QFfT.mjs";
1
+ import { C as TAsTableControls, E as TableNavBridge, S as TAsCellTypeComponents, T as TableActionsState, a as ConfirmOptions, d as PresetConfig, h as RowActionsConfig, p as ReactiveTableState, t as ActionResult, u as NavKeyOptions, w as TVueTableActionInfo } from "./types-CsgAGRfG.mjs";
2
2
  import * as _atscript_ui0 from "@atscript/ui";
3
3
  import { ClientFactory, ClientFactory as ClientFactory$1, ColumnDef, SortControl, TableDef, getDefaultClientFactory, resetDefaultClientFactory, setDefaultClientFactory } from "@atscript/ui";
4
4
  import * as vue from "vue";
@@ -2525,11 +2525,11 @@ declare const __VLS_base: vue.DefineComponent<__VLS_PublicProps, {
2525
2525
  "update:selectedRows": (value: unknown[]) => any;
2526
2526
  "update:urlQuery": (value: string | undefined) => any;
2527
2527
  } & {
2528
- "main-action": (row: Record<string, unknown>, absIndex: number, event: MouseEvent | KeyboardEvent) => any;
2529
2528
  action: (action: TVueTableActionInfo, ids: unknown[], result: ActionResult, event?: MouseEvent | KeyboardEvent | undefined) => any;
2529
+ "main-action": (row: Record<string, unknown>, absIndex: number, event: MouseEvent | KeyboardEvent) => any;
2530
2530
  }, string, vue.PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
2531
- "onMain-action"?: ((row: Record<string, unknown>, absIndex: number, event: MouseEvent | KeyboardEvent) => any) | undefined;
2532
2531
  onAction?: ((action: TVueTableActionInfo, ids: unknown[], result: ActionResult, event?: MouseEvent | KeyboardEvent | undefined) => any) | undefined;
2532
+ "onMain-action"?: ((row: Record<string, unknown>, absIndex: number, event: MouseEvent | KeyboardEvent) => any) | undefined;
2533
2533
  "onUpdate:filterFields"?: ((value: string[]) => any) | undefined;
2534
2534
  "onUpdate:columnNames"?: ((value: string[]) => any) | undefined;
2535
2535
  "onUpdate:columnWidths"?: ((value: ColumnWidthsMap) => any) | undefined;
@@ -1,4 +1,4 @@
1
- import { C as TableActionsState, S as TVueTableActionInfo, b as TAsCellTypeComponents, f as ReactiveTableState, i as ConfirmOptions, l as NavKeyOptions, p as RowActionsConfig, t as ActionResult, u as PresetConfig, w as TableNavBridge, x as TAsTableControls } from "./types-CyAmAg10.cjs";
1
+ import { C as TAsTableControls, E as TableNavBridge, S as TAsCellTypeComponents, T as TableActionsState, a as ConfirmOptions, d as PresetConfig, h as RowActionsConfig, p as ReactiveTableState, t as ActionResult, u as NavKeyOptions, w as TVueTableActionInfo } from "./types-DvWLY5zQ.cjs";
2
2
  import * as vue from "vue";
3
3
  import { AllowedComponentProps, AnchorHTMLAttributes, App, Component as Component$1, ComponentCustomProps, ComponentPublicInstance, ComputedRef, DefineComponent, InjectionKey, MaybeRef, MaybeRefOrGetter, Ref, ShallowRef, UnwrapRef, VNode, VNodeProps, WritableComputedRef } from "vue";
4
4
  import { Client, PageResult } from "@atscript/db-client";
@@ -2525,11 +2525,11 @@ declare const __VLS_base: vue.DefineComponent<__VLS_PublicProps, {
2525
2525
  "update:selectedRows": (value: unknown[]) => any;
2526
2526
  "update:urlQuery": (value: string | undefined) => any;
2527
2527
  } & {
2528
- "main-action": (row: Record<string, unknown>, absIndex: number, event: MouseEvent | KeyboardEvent) => any;
2529
2528
  action: (action: TVueTableActionInfo, ids: unknown[], result: ActionResult, event?: MouseEvent | KeyboardEvent | undefined) => any;
2529
+ "main-action": (row: Record<string, unknown>, absIndex: number, event: MouseEvent | KeyboardEvent) => any;
2530
2530
  }, string, vue.PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
2531
- "onMain-action"?: ((row: Record<string, unknown>, absIndex: number, event: MouseEvent | KeyboardEvent) => any) | undefined;
2532
2531
  onAction?: ((action: TVueTableActionInfo, ids: unknown[], result: ActionResult, event?: MouseEvent | KeyboardEvent | undefined) => any) | undefined;
2532
+ "onMain-action"?: ((row: Record<string, unknown>, absIndex: number, event: MouseEvent | KeyboardEvent) => any) | undefined;
2533
2533
  "onUpdate:filterFields"?: ((value: string[]) => any) | undefined;
2534
2534
  "onUpdate:columnNames"?: ((value: string[]) => any) | undefined;
2535
2535
  "onUpdate:columnWidths"?: ((value: ColumnWidthsMap) => any) | undefined;
@@ -1,7 +1,7 @@
1
- const require_use_table_state = require("./use-table-state-jljSQQ8m.cjs");
2
- const require_use_table_component = require("./use-table-component-Bpy5mg_P.cjs");
3
- const require_as_table_header_cell = require("./as-table-header-cell-Ct_GPLVu.cjs");
4
- const require_as_row_actions = require("./as-row-actions-PD-sFmDs.cjs");
1
+ const require_use_table_state = require("./use-table-state-CoVe_8NI.cjs");
2
+ const require_use_table_component = require("./use-table-component-DIWiP_Vs.cjs");
3
+ const require_as_table_header_cell = require("./as-table-header-cell-CiRLNVJz.cjs");
4
+ const require_as_row_actions = require("./as-row-actions-CAiCfw8d.cjs");
5
5
  const require_as_table_cell_value = require("./as-table-cell-value-BAi5yadc.cjs");
6
6
  let _atscript_ui = require("@atscript/ui");
7
7
  let vue = require("vue");
@@ -1,7 +1,7 @@
1
- import { o as useTableContextOptional } from "./use-table-state-CwfgWmuk.mjs";
2
- import { t as useTableComponent } from "./use-table-component-DYzKgCC4.mjs";
3
- import { t as as_table_header_cell_default } from "./as-table-header-cell-CZyy4q1s.mjs";
4
- import { t as as_row_actions_default } from "./as-row-actions-gxmuZkYI.mjs";
1
+ import { o as useTableContextOptional } from "./use-table-state-CqU1N4Q9.mjs";
2
+ import { t as useTableComponent } from "./use-table-component-VUFlxIk-.mjs";
3
+ import { t as as_table_header_cell_default } from "./as-table-header-cell-Cl8waY_g.mjs";
4
+ import { t as as_row_actions_default } from "./as-row-actions-B8YANdb4.mjs";
5
5
  import { t as as_table_cell_value_default } from "./as-table-cell-value-BVcfhhCb.mjs";
6
6
  import { UI_TABLE_ATTR, UI_TABLE_CLASSES, UI_TABLE_FN_ATTR, UI_TABLE_FN_CLASSES, UI_TABLE_FN_STYLES, UI_TABLE_STYLES, getFieldMeta, parseStaticAttrs, resolveAttrs, resolveFieldProp } from "@atscript/ui";
7
7
  import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, defineComponent, normalizeClass, normalizeStyle, onBeforeUnmount, openBlock, ref, renderList, renderSlot, resolveDynamicComponent, toDisplayString, unref, withModifiers } from "vue";
package/dist/as-table.cjs CHANGED
@@ -1,2 +1,2 @@
1
- const require_as_table = require("./as-table-ucLFACn0.cjs");
1
+ const require_as_table = require("./as-table-QoXP-NZr.cjs");
2
2
  module.exports = require_as_table.as_table_default;
@@ -1,2 +1,2 @@
1
- import { t as _default } from "./as-table.vue-B2yu8GI5.cjs";
1
+ import { t as _default } from "./as-table.vue-BSKifGzD.cjs";
2
2
  export = _default;
@@ -1,2 +1,2 @@
1
- import { t as _default } from "./as-table.vue-CSsa8u47.mjs";
1
+ import { t as _default } from "./as-table.vue-emq84QmP.mjs";
2
2
  export { _default as default };
package/dist/as-table.mjs CHANGED
@@ -1,2 +1,2 @@
1
- import { t as as_table_default } from "./as-table-BIV1W3O9.mjs";
1
+ import { t as as_table_default } from "./as-table-BAoJ60tx.mjs";
2
2
  export { as_table_default as default };
@@ -1,6 +1,6 @@
1
- import { g as RowDeleteOpt, h as RowClassHook, m as RowAttrsHook, n as ColumnMenuConfig, v as RowSelectableHook } from "./types-yS6-QFfT.mjs";
2
- import { ColumnDef } from "@atscript/ui";
1
+ import { _ as RowClassHook, b as RowSelectableHook, g as RowAttrsHook, m as RowActionsColumnPlacement, r as ColumnMenuConfig, v as RowDeleteOpt } from "./types-DvWLY5zQ.cjs";
3
2
  import * as vue from "vue";
3
+ import { ColumnDef } from "@atscript/ui";
4
4
  import { SelectionMode } from "@atscript/ui-table";
5
5
 
6
6
  //#region src/components/as-table.vue.d.ts
@@ -46,7 +46,7 @@ type __VLS_Props = {
46
46
  * Wrapper-only prop — not forwarded by `<AsTableRoot>`. Raw consumers
47
47
  * compose their own column layout.
48
48
  */
49
- rowActionsColumn?: "first" | "last" | "merge-select" | false;
49
+ rowActionsColumn?: RowActionsColumnPlacement | false;
50
50
  /**
51
51
  * Render without a header row. Omits `<thead>` entirely (not
52
52
  * `display:none`); column widths are carried by the `<colgroup>`, so data
@@ -84,23 +84,23 @@ type __VLS_Slots = {} & { [K in NonNullable<typeof __VLS_21>]?: (props: typeof _
84
84
  'query-loading'?: (props: typeof __VLS_24) => any;
85
85
  };
86
86
  declare const __VLS_base: vue.DefineComponent<__VLS_Props, {}, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {} & {
87
- "main-action": (row: Record<string, unknown>, absIndex: number, event: MouseEvent | KeyboardEvent) => any;
88
87
  "row-click": (row: Record<string, unknown>, event: MouseEvent) => any;
89
88
  "row-dblclick": (row: Record<string, unknown>, event: MouseEvent) => any;
89
+ "main-action": (row: Record<string, unknown>, absIndex: number, event: MouseEvent | KeyboardEvent) => any;
90
90
  }, string, vue.PublicProps, Readonly<__VLS_Props> & Readonly<{
91
- "onMain-action"?: ((row: Record<string, unknown>, absIndex: number, event: MouseEvent | KeyboardEvent) => any) | undefined;
92
91
  "onRow-click"?: ((row: Record<string, unknown>, event: MouseEvent) => any) | undefined;
93
92
  "onRow-dblclick"?: ((row: Record<string, unknown>, event: MouseEvent) => any) | undefined;
93
+ "onMain-action"?: ((row: Record<string, unknown>, absIndex: number, event: MouseEvent | KeyboardEvent) => any) | undefined;
94
94
  }>, {
95
95
  select: SelectionMode;
96
+ stickyHeader: boolean;
97
+ virtualOverscan: number;
96
98
  reorderable: boolean;
97
99
  resizable: boolean;
98
100
  columnMinWidth: number;
99
101
  rowDelete: boolean | RowDeleteOpt;
102
+ rowActionsColumn: RowActionsColumnPlacement | false;
100
103
  headless: boolean;
101
- stickyHeader: boolean;
102
- virtualOverscan: number;
103
- rowActionsColumn: "first" | "last" | "merge-select" | false;
104
104
  }, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
105
105
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
106
106
  declare const _default: typeof __VLS_export;
@@ -1,6 +1,6 @@
1
- import { g as RowDeleteOpt, h as RowClassHook, m as RowAttrsHook, n as ColumnMenuConfig, v as RowSelectableHook } from "./types-CyAmAg10.cjs";
2
- import * as vue from "vue";
1
+ import { _ as RowClassHook, b as RowSelectableHook, g as RowAttrsHook, m as RowActionsColumnPlacement, r as ColumnMenuConfig, v as RowDeleteOpt } from "./types-CsgAGRfG.mjs";
3
2
  import { ColumnDef } from "@atscript/ui";
3
+ import * as vue from "vue";
4
4
  import { SelectionMode } from "@atscript/ui-table";
5
5
 
6
6
  //#region src/components/as-table.vue.d.ts
@@ -46,7 +46,7 @@ type __VLS_Props = {
46
46
  * Wrapper-only prop — not forwarded by `<AsTableRoot>`. Raw consumers
47
47
  * compose their own column layout.
48
48
  */
49
- rowActionsColumn?: "first" | "last" | "merge-select" | false;
49
+ rowActionsColumn?: RowActionsColumnPlacement | false;
50
50
  /**
51
51
  * Render without a header row. Omits `<thead>` entirely (not
52
52
  * `display:none`); column widths are carried by the `<colgroup>`, so data
@@ -84,23 +84,23 @@ type __VLS_Slots = {} & { [K in NonNullable<typeof __VLS_21>]?: (props: typeof _
84
84
  'query-loading'?: (props: typeof __VLS_24) => any;
85
85
  };
86
86
  declare const __VLS_base: vue.DefineComponent<__VLS_Props, {}, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {} & {
87
- "main-action": (row: Record<string, unknown>, absIndex: number, event: MouseEvent | KeyboardEvent) => any;
88
87
  "row-click": (row: Record<string, unknown>, event: MouseEvent) => any;
89
88
  "row-dblclick": (row: Record<string, unknown>, event: MouseEvent) => any;
89
+ "main-action": (row: Record<string, unknown>, absIndex: number, event: MouseEvent | KeyboardEvent) => any;
90
90
  }, string, vue.PublicProps, Readonly<__VLS_Props> & Readonly<{
91
- "onMain-action"?: ((row: Record<string, unknown>, absIndex: number, event: MouseEvent | KeyboardEvent) => any) | undefined;
92
91
  "onRow-click"?: ((row: Record<string, unknown>, event: MouseEvent) => any) | undefined;
93
92
  "onRow-dblclick"?: ((row: Record<string, unknown>, event: MouseEvent) => any) | undefined;
93
+ "onMain-action"?: ((row: Record<string, unknown>, absIndex: number, event: MouseEvent | KeyboardEvent) => any) | undefined;
94
94
  }>, {
95
95
  select: SelectionMode;
96
+ stickyHeader: boolean;
97
+ virtualOverscan: number;
96
98
  reorderable: boolean;
97
99
  resizable: boolean;
98
100
  columnMinWidth: number;
99
101
  rowDelete: boolean | RowDeleteOpt;
102
+ rowActionsColumn: RowActionsColumnPlacement | false;
100
103
  headless: boolean;
101
- stickyHeader: boolean;
102
- virtualOverscan: number;
103
- rowActionsColumn: "first" | "last" | "merge-select" | false;
104
104
  }, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
105
105
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
106
106
  declare const _default: typeof __VLS_export;
@@ -1,9 +1,9 @@
1
- import { a as useTableContext, i as useRegisterMainActionListener, p as onSelectControlKeydown } from "./use-table-state-CwfgWmuk.mjs";
1
+ import { a as useTableContext, i as useRegisterMainActionListener, p as onSelectControlKeydown } from "./use-table-state-CqU1N4Q9.mjs";
2
2
  import { t as getCellValue } from "./get-cell-value-Cb3X8nUn.mjs";
3
3
  import { t as useSelectModeReset } from "./use-table-selection-ULbKT2xW.mjs";
4
4
  import { t as useHasEmitListener } from "./use-has-emit-listener-DrBbsLHQ.mjs";
5
- import { a as useCellComponents, i as useRafBatch, n as as_table_header_default, o as useCellResolver, r as as_table_colgroup_default, t as as_table_status_default } from "./as-table-status-CYzRbU71.mjs";
6
- import { t as useTableColumnHandlers } from "./use-table-column-handlers-Bx3JERqs.mjs";
5
+ import { n as useRowActionsColumn, t as useTableColumnHandlers } from "./use-table-column-handlers-DGn4ZW9j.mjs";
6
+ import { a as useCellComponents, i as useRafBatch, n as as_table_header_default, o as useCellResolver, r as as_table_colgroup_default, t as as_table_status_default } from "./as-table-status-aebsG7bR.mjs";
7
7
  import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createSlots, createVNode, defineComponent, guardReactiveProps, mergeProps, nextTick, normalizeClass, normalizeProps, normalizeStyle, onBeforeUnmount, onMounted, openBlock, ref, renderList, renderSlot, resolveDynamicComponent, unref, useSlots, watch, withCtx, withModifiers } from "vue";
8
8
  import { DEFAULT_ROW_HEIGHT_PX, clampTopIndex, filledFilterCount } from "@atscript/ui-table";
9
9
  import { useElementSize, useResizeObserver } from "@vueuse/core";
@@ -208,6 +208,10 @@ const _hoisted_8 = {
208
208
  var as_window_table_base_default = /* @__PURE__ */ defineComponent({
209
209
  __name: "as-window-table-base",
210
210
  props: {
211
+ columns: {
212
+ type: Array,
213
+ required: false
214
+ },
211
215
  rowHeight: {
212
216
  type: Number,
213
217
  required: true
@@ -270,8 +274,9 @@ var as_window_table_base_default = /* @__PURE__ */ defineComponent({
270
274
  const slots = useSlots();
271
275
  const { state } = useTableContext();
272
276
  const { resolve: cellResolver, hasAnyCellBindings } = useCellResolver(() => state.tableDef.value);
273
- const cellComponents = useCellComponents(() => state.columns.value);
274
- const headerColumns = computed(() => state.localSortAvailable.value ? state.columns.value : state.columns.value.map((c) => c.local && c.sortable ? {
277
+ const columns = computed(() => props.columns ?? state.columns.value);
278
+ const cellComponents = useCellComponents(() => columns.value);
279
+ const headerColumns = computed(() => state.localSortAvailable.value ? columns.value : columns.value.map((c) => c.local && c.sortable ? {
275
280
  ...c,
276
281
  sortable: false
277
282
  } : c));
@@ -283,7 +288,7 @@ var as_window_table_base_default = /* @__PURE__ */ defineComponent({
283
288
  });
284
289
  const cellSlotFlags = computed(() => {
285
290
  const out = {};
286
- for (const c of state.columns.value) out[c.path] = !!slots[`cell-${c.path}`];
291
+ for (const c of columns.value) out[c.path] = !!slots[`cell-${c.path}`];
287
292
  return out;
288
293
  });
289
294
  const rowStyle = computed(() => ({ height: `${props.rowHeight}px` }));
@@ -456,7 +461,7 @@ var as_window_table_base_default = /* @__PURE__ */ defineComponent({
456
461
  onMounted(() => {
457
462
  nextTick(() => recompute());
458
463
  });
459
- watch(() => [props.rowHeight, state.columns.value], scheduleRecompute);
464
+ watch(() => [props.rowHeight, columns.value], scheduleRecompute);
460
465
  return (_ctx, _cache) => {
461
466
  return openBlock(), createElementBlock("div", _hoisted_1$1, [createElementVNode("div", {
462
467
  ref_key: "wrapperRef",
@@ -470,7 +475,7 @@ var as_window_table_base_default = /* @__PURE__ */ defineComponent({
470
475
  "aria-multiselectable": __props.select === "multi" ? "true" : void 0
471
476
  }, [
472
477
  createVNode(as_table_colgroup_default, {
473
- columns: unref(state).columns.value,
478
+ columns: columns.value,
474
479
  "column-widths": unref(state).columnWidths.value,
475
480
  "has-select": hasValue.value,
476
481
  "with-filler": true
@@ -502,7 +507,7 @@ var as_window_table_base_default = /* @__PURE__ */ defineComponent({
502
507
  onReorder: unref(onReorder),
503
508
  onResize: unref(state).setColumnWidth,
504
509
  onSelectAllToggle
505
- }, createSlots({ _: 2 }, [renderList(unref(state).columns.value, (col) => {
510
+ }, createSlots({ _: 2 }, [renderList(columns.value, (col) => {
506
511
  return {
507
512
  name: `header-${col.path}`,
508
513
  fn: withCtx((scope) => [renderSlot(_ctx.$slots, `header-${col.path}`, normalizeProps(guardReactiveProps(scope)))])
@@ -569,7 +574,7 @@ var as_window_table_base_default = /* @__PURE__ */ defineComponent({
569
574
  "aria-disabled": slot.selectable.ok ? void 0 : "true",
570
575
  onKeydown: ($event) => onSelectCellKeydown($event, unref(state).topIndex.value + slot.s)
571
576
  }, [slot.selected ? (openBlock(), createElementBlock("span", _hoisted_7)) : createCommentVNode("v-if", true)], 42, _hoisted_6)])) : createCommentVNode("v-if", true),
572
- unref(hasAnyCellBindings) ? (openBlock(true), createElementBlock(Fragment, { key: 1 }, renderList(unref(state).columns.value, (col) => {
577
+ unref(hasAnyCellBindings) ? (openBlock(true), createElementBlock(Fragment, { key: 1 }, renderList(columns.value, (col) => {
573
578
  return openBlock(), createElementBlock(Fragment, { key: col.path }, [(openBlock(true), createElementBlock(Fragment, null, renderList([unref(cellResolver)(col, slot.row, unref(state).topIndex.value + slot.s)], (bindings) => {
574
579
  return openBlock(), createElementBlock(Fragment, { key: 0 }, [cellSlotFlags.value[col.path] ? (openBlock(), createElementBlock("td", mergeProps({
575
580
  key: 0,
@@ -585,7 +590,7 @@ var as_window_table_base_default = /* @__PURE__ */ defineComponent({
585
590
  role: "gridcell"
586
591
  }, { ref_for: true }, bindings), null, 16, ["row", "column"]))], 64);
587
592
  }), 128))], 64);
588
- }), 128)) : (openBlock(true), createElementBlock(Fragment, { key: 2 }, renderList(unref(state).columns.value, (col) => {
593
+ }), 128)) : (openBlock(true), createElementBlock(Fragment, { key: 2 }, renderList(columns.value, (col) => {
589
594
  return openBlock(), createElementBlock(Fragment, { key: col.path }, [cellSlotFlags.value[col.path] ? (openBlock(), createElementBlock("td", _hoisted_8, [renderSlot(_ctx.$slots, `cell-${col.path}`, {
590
595
  row: slot.row,
591
596
  value: unref(getCellValue)(slot.row, col.path),
@@ -603,7 +608,7 @@ var as_window_table_base_default = /* @__PURE__ */ defineComponent({
603
608
  }, null, -1))
604
609
  ], 16, _hoisted_4)) : (openBlock(), createBlock(as_window_skeleton_row_default, {
605
610
  key: 1,
606
- columns: unref(state).columns.value,
611
+ columns: columns.value,
607
612
  "row-height": __props.rowHeight,
608
613
  "has-select": hasValue.value,
609
614
  errored: slot.errored
@@ -620,7 +625,7 @@ var as_window_table_base_default = /* @__PURE__ */ defineComponent({
620
625
  "query-error": unref(state).queryError.value,
621
626
  "is-empty": unref(state).totalCount.value === 0,
622
627
  querying: unref(state).querying.value,
623
- columns: unref(state).columns.value,
628
+ columns: columns.value,
624
629
  "search-term": unref(state).searchTerm.value,
625
630
  "has-active-filters": hasActiveFilters.value,
626
631
  "on-clear-filters": unref(onClearFilters),
@@ -718,6 +723,11 @@ var as_window_table_default = /* @__PURE__ */ defineComponent({
718
723
  required: false,
719
724
  default: false
720
725
  },
726
+ rowActionsColumn: {
727
+ type: [String, Boolean],
728
+ required: false,
729
+ default: false
730
+ },
721
731
  headless: {
722
732
  type: Boolean,
723
733
  required: false,
@@ -753,6 +763,11 @@ var as_window_table_default = /* @__PURE__ */ defineComponent({
753
763
  state.rowSelectable.value = val;
754
764
  }, { immediate: true });
755
765
  useSelectModeReset(state, () => props.select);
766
+ const effectiveColumns = useRowActionsColumn(state, {
767
+ placement: () => props.rowActionsColumn,
768
+ select: () => props.select,
769
+ columns: () => state.columns.value
770
+ });
756
771
  useRegisterMainActionListener(state, (req) => emit("main-action", req.row, req.absIndex, req.event), useHasEmitListener("onMainAction"));
757
772
  const containerRef = ref(null);
758
773
  function onMetrics({ fits, rowHeightPx, chromePx }) {
@@ -779,6 +794,7 @@ var as_window_table_default = /* @__PURE__ */ defineComponent({
779
794
  ref: containerRef,
780
795
  class: "as-table-outer-wrap"
781
796
  }, [createVNode(as_window_table_base_default, {
797
+ columns: unref(effectiveColumns),
782
798
  "row-height": __props.rowHeight,
783
799
  "wheel-rows-per-tick": __props.wheelRowsPerTick,
784
800
  "column-menu": __props.columnMenu,
@@ -799,6 +815,7 @@ var as_window_table_default = /* @__PURE__ */ defineComponent({
799
815
  fn: withCtx((slotProps) => [renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(slotProps ?? {})))])
800
816
  };
801
817
  })]), 1032, [
818
+ "columns",
802
819
  "row-height",
803
820
  "wheel-rows-per-tick",
804
821
  "column-menu",
@@ -1,9 +1,9 @@
1
- const require_use_table_state = require("./use-table-state-jljSQQ8m.cjs");
1
+ const require_use_table_state = require("./use-table-state-CoVe_8NI.cjs");
2
2
  const require_get_cell_value = require("./get-cell-value-CJT4fk4y.cjs");
3
3
  const require_use_table_selection = require("./use-table-selection-DtCV3rhu.cjs");
4
4
  const require_use_has_emit_listener = require("./use-has-emit-listener-BaGFZDyM.cjs");
5
- const require_as_table_status = require("./as-table-status-DMFZuZfJ.cjs");
6
- const require_use_table_column_handlers = require("./use-table-column-handlers-BMrP0WY2.cjs");
5
+ const require_use_table_column_handlers = require("./use-table-column-handlers-r47WDxEh.cjs");
6
+ const require_as_table_status = require("./as-table-status-B2O3hLGg.cjs");
7
7
  let vue = require("vue");
8
8
  let _atscript_ui_table = require("@atscript/ui-table");
9
9
  let _vueuse_core = require("@vueuse/core");
@@ -208,6 +208,10 @@ const _hoisted_8 = {
208
208
  var as_window_table_base_default = /* @__PURE__ */ (0, vue.defineComponent)({
209
209
  __name: "as-window-table-base",
210
210
  props: {
211
+ columns: {
212
+ type: Array,
213
+ required: false
214
+ },
211
215
  rowHeight: {
212
216
  type: Number,
213
217
  required: true
@@ -270,8 +274,9 @@ var as_window_table_base_default = /* @__PURE__ */ (0, vue.defineComponent)({
270
274
  const slots = (0, vue.useSlots)();
271
275
  const { state } = require_use_table_state.useTableContext();
272
276
  const { resolve: cellResolver, hasAnyCellBindings } = require_as_table_status.useCellResolver(() => state.tableDef.value);
273
- const cellComponents = require_as_table_status.useCellComponents(() => state.columns.value);
274
- const headerColumns = (0, vue.computed)(() => state.localSortAvailable.value ? state.columns.value : state.columns.value.map((c) => c.local && c.sortable ? {
277
+ const columns = (0, vue.computed)(() => props.columns ?? state.columns.value);
278
+ const cellComponents = require_as_table_status.useCellComponents(() => columns.value);
279
+ const headerColumns = (0, vue.computed)(() => state.localSortAvailable.value ? columns.value : columns.value.map((c) => c.local && c.sortable ? {
275
280
  ...c,
276
281
  sortable: false
277
282
  } : c));
@@ -283,7 +288,7 @@ var as_window_table_base_default = /* @__PURE__ */ (0, vue.defineComponent)({
283
288
  });
284
289
  const cellSlotFlags = (0, vue.computed)(() => {
285
290
  const out = {};
286
- for (const c of state.columns.value) out[c.path] = !!slots[`cell-${c.path}`];
291
+ for (const c of columns.value) out[c.path] = !!slots[`cell-${c.path}`];
287
292
  return out;
288
293
  });
289
294
  const rowStyle = (0, vue.computed)(() => ({ height: `${props.rowHeight}px` }));
@@ -456,7 +461,7 @@ var as_window_table_base_default = /* @__PURE__ */ (0, vue.defineComponent)({
456
461
  (0, vue.onMounted)(() => {
457
462
  (0, vue.nextTick)(() => recompute());
458
463
  });
459
- (0, vue.watch)(() => [props.rowHeight, state.columns.value], scheduleRecompute);
464
+ (0, vue.watch)(() => [props.rowHeight, columns.value], scheduleRecompute);
460
465
  return (_ctx, _cache) => {
461
466
  return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", _hoisted_1$1, [(0, vue.createElementVNode)("div", {
462
467
  ref_key: "wrapperRef",
@@ -470,7 +475,7 @@ var as_window_table_base_default = /* @__PURE__ */ (0, vue.defineComponent)({
470
475
  "aria-multiselectable": __props.select === "multi" ? "true" : void 0
471
476
  }, [
472
477
  (0, vue.createVNode)(require_as_table_status.as_table_colgroup_default, {
473
- columns: (0, vue.unref)(state).columns.value,
478
+ columns: columns.value,
474
479
  "column-widths": (0, vue.unref)(state).columnWidths.value,
475
480
  "has-select": hasValue.value,
476
481
  "with-filler": true
@@ -502,7 +507,7 @@ var as_window_table_base_default = /* @__PURE__ */ (0, vue.defineComponent)({
502
507
  onReorder: (0, vue.unref)(onReorder),
503
508
  onResize: (0, vue.unref)(state).setColumnWidth,
504
509
  onSelectAllToggle
505
- }, (0, vue.createSlots)({ _: 2 }, [(0, vue.renderList)((0, vue.unref)(state).columns.value, (col) => {
510
+ }, (0, vue.createSlots)({ _: 2 }, [(0, vue.renderList)(columns.value, (col) => {
506
511
  return {
507
512
  name: `header-${col.path}`,
508
513
  fn: (0, vue.withCtx)((scope) => [(0, vue.renderSlot)(_ctx.$slots, `header-${col.path}`, (0, vue.normalizeProps)((0, vue.guardReactiveProps)(scope)))])
@@ -569,7 +574,7 @@ var as_window_table_base_default = /* @__PURE__ */ (0, vue.defineComponent)({
569
574
  "aria-disabled": slot.selectable.ok ? void 0 : "true",
570
575
  onKeydown: ($event) => onSelectCellKeydown($event, (0, vue.unref)(state).topIndex.value + slot.s)
571
576
  }, [slot.selected ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", _hoisted_7)) : (0, vue.createCommentVNode)("v-if", true)], 42, _hoisted_6)])) : (0, vue.createCommentVNode)("v-if", true),
572
- (0, vue.unref)(hasAnyCellBindings) ? ((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, { key: 1 }, (0, vue.renderList)((0, vue.unref)(state).columns.value, (col) => {
577
+ (0, vue.unref)(hasAnyCellBindings) ? ((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, { key: 1 }, (0, vue.renderList)(columns.value, (col) => {
573
578
  return (0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, { key: col.path }, [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)([(0, vue.unref)(cellResolver)(col, slot.row, (0, vue.unref)(state).topIndex.value + slot.s)], (bindings) => {
574
579
  return (0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, { key: 0 }, [cellSlotFlags.value[col.path] ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("td", (0, vue.mergeProps)({
575
580
  key: 0,
@@ -585,7 +590,7 @@ var as_window_table_base_default = /* @__PURE__ */ (0, vue.defineComponent)({
585
590
  role: "gridcell"
586
591
  }, { ref_for: true }, bindings), null, 16, ["row", "column"]))], 64);
587
592
  }), 128))], 64);
588
- }), 128)) : ((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, { key: 2 }, (0, vue.renderList)((0, vue.unref)(state).columns.value, (col) => {
593
+ }), 128)) : ((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, { key: 2 }, (0, vue.renderList)(columns.value, (col) => {
589
594
  return (0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, { key: col.path }, [cellSlotFlags.value[col.path] ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("td", _hoisted_8, [(0, vue.renderSlot)(_ctx.$slots, `cell-${col.path}`, {
590
595
  row: slot.row,
591
596
  value: (0, vue.unref)(require_get_cell_value.getCellValue)(slot.row, col.path),
@@ -603,7 +608,7 @@ var as_window_table_base_default = /* @__PURE__ */ (0, vue.defineComponent)({
603
608
  }, null, -1))
604
609
  ], 16, _hoisted_4)) : ((0, vue.openBlock)(), (0, vue.createBlock)(as_window_skeleton_row_default, {
605
610
  key: 1,
606
- columns: (0, vue.unref)(state).columns.value,
611
+ columns: columns.value,
607
612
  "row-height": __props.rowHeight,
608
613
  "has-select": hasValue.value,
609
614
  errored: slot.errored
@@ -620,7 +625,7 @@ var as_window_table_base_default = /* @__PURE__ */ (0, vue.defineComponent)({
620
625
  "query-error": (0, vue.unref)(state).queryError.value,
621
626
  "is-empty": (0, vue.unref)(state).totalCount.value === 0,
622
627
  querying: (0, vue.unref)(state).querying.value,
623
- columns: (0, vue.unref)(state).columns.value,
628
+ columns: columns.value,
624
629
  "search-term": (0, vue.unref)(state).searchTerm.value,
625
630
  "has-active-filters": hasActiveFilters.value,
626
631
  "on-clear-filters": (0, vue.unref)(onClearFilters),
@@ -718,6 +723,11 @@ var as_window_table_default = /* @__PURE__ */ (0, vue.defineComponent)({
718
723
  required: false,
719
724
  default: false
720
725
  },
726
+ rowActionsColumn: {
727
+ type: [String, Boolean],
728
+ required: false,
729
+ default: false
730
+ },
721
731
  headless: {
722
732
  type: Boolean,
723
733
  required: false,
@@ -753,6 +763,11 @@ var as_window_table_default = /* @__PURE__ */ (0, vue.defineComponent)({
753
763
  state.rowSelectable.value = val;
754
764
  }, { immediate: true });
755
765
  require_use_table_selection.useSelectModeReset(state, () => props.select);
766
+ const effectiveColumns = require_use_table_column_handlers.useRowActionsColumn(state, {
767
+ placement: () => props.rowActionsColumn,
768
+ select: () => props.select,
769
+ columns: () => state.columns.value
770
+ });
756
771
  require_use_table_state.useRegisterMainActionListener(state, (req) => emit("main-action", req.row, req.absIndex, req.event), require_use_has_emit_listener.useHasEmitListener("onMainAction"));
757
772
  const containerRef = (0, vue.ref)(null);
758
773
  function onMetrics({ fits, rowHeightPx, chromePx }) {
@@ -779,6 +794,7 @@ var as_window_table_default = /* @__PURE__ */ (0, vue.defineComponent)({
779
794
  ref: containerRef,
780
795
  class: "as-table-outer-wrap"
781
796
  }, [(0, vue.createVNode)(as_window_table_base_default, {
797
+ columns: (0, vue.unref)(effectiveColumns),
782
798
  "row-height": __props.rowHeight,
783
799
  "wheel-rows-per-tick": __props.wheelRowsPerTick,
784
800
  "column-menu": __props.columnMenu,
@@ -799,6 +815,7 @@ var as_window_table_default = /* @__PURE__ */ (0, vue.defineComponent)({
799
815
  fn: (0, vue.withCtx)((slotProps) => [(0, vue.renderSlot)(_ctx.$slots, name, (0, vue.normalizeProps)((0, vue.guardReactiveProps)(slotProps ?? {})))])
800
816
  };
801
817
  })]), 1032, [
818
+ "columns",
802
819
  "row-height",
803
820
  "wheel-rows-per-tick",
804
821
  "column-menu",