@atscript/vue-table 0.1.137 → 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 (63) hide show
  1. package/dist/as-column-menu.d.cts +1 -1
  2. package/dist/as-column-menu.d.mts +1 -1
  3. package/dist/{as-column-menu.vue-DIuEvru6.d.mts → as-column-menu.vue-CgvDp7JK.d.cts} +2 -2
  4. package/dist/{as-column-menu.vue-olu6BNEU.d.cts → as-column-menu.vue-SRkxrvo_.d.mts} +2 -2
  5. package/dist/{as-filter-dialog-DoynFox2.cjs → as-filter-dialog-CW8-zoag.cjs} +2 -2
  6. package/dist/{as-filter-dialog-DAvtsH3d.mjs → as-filter-dialog-Dis7tkN_.mjs} +2 -2
  7. package/dist/as-filter-dialog.cjs +1 -1
  8. package/dist/as-filter-dialog.mjs +1 -1
  9. package/dist/{as-filter-field-DB5WFT4l.mjs → as-filter-field-BKoxTudl.mjs} +1 -1
  10. package/dist/{as-filter-field-CBMDjApB.cjs → as-filter-field-bVIXoH3j.cjs} +1 -1
  11. package/dist/as-filter-field.cjs +1 -1
  12. package/dist/as-filter-field.mjs +1 -1
  13. package/dist/{as-filters-DfBH5YH9.mjs → as-filters-CxVy00LQ.mjs} +1 -1
  14. package/dist/{as-filters-CiPv-dKs.cjs → as-filters-Dx8WkGiA.cjs} +1 -1
  15. package/dist/as-filters.cjs +1 -1
  16. package/dist/as-filters.mjs +1 -1
  17. package/dist/as-row-actions.d.cts +1 -1
  18. package/dist/as-row-actions.d.mts +1 -1
  19. package/dist/{as-row-actions.vue-Cac2kfwO.d.cts → as-row-actions.vue-BCgHsU18.d.mts} +1 -1
  20. package/dist/{as-row-actions.vue-DZrASzp7.d.mts → as-row-actions.vue-C49h8PpE.d.cts} +1 -1
  21. package/dist/{as-table-DtfWLLlb.mjs → as-table-BAoJ60tx.mjs} +8 -34
  22. package/dist/{as-table-BNfZcSra.cjs → as-table-QoXP-NZr.cjs} +7 -33
  23. package/dist/as-table-actions.d.cts +1 -1
  24. package/dist/as-table-actions.d.mts +1 -1
  25. package/dist/{as-table-actions.vue-66cjnFZI.d.mts → as-table-actions.vue-BTGQnFH_.d.mts} +2 -2
  26. package/dist/{as-table-actions.vue-B7ttOxKU.d.cts → as-table-actions.vue-oxyikRAt.d.cts} +2 -2
  27. package/dist/{as-table-base-D7mO_Zmv.mjs → as-table-base-DA5T7x_K.mjs} +1 -1
  28. package/dist/{as-table-base-CdtyDOra.cjs → as-table-base-wPJuru7P.cjs} +1 -1
  29. package/dist/as-table-header-cell.d.cts +1 -1
  30. package/dist/as-table-header-cell.d.mts +1 -1
  31. package/dist/{as-table-header-cell.vue-DhCxDIn1.d.mts → as-table-header-cell.vue-BjgxfKhi.d.cts} +2 -2
  32. package/dist/{as-table-header-cell.vue-DmncmpeQ.d.cts → as-table-header-cell.vue-zGeuzm3w.d.mts} +2 -2
  33. package/dist/as-table-root.d.cts +1 -1
  34. package/dist/as-table-root.d.mts +1 -1
  35. package/dist/{as-table-root.vue-zWOmt_ug.d.mts → as-table-root.vue-DnOHVQtA.d.mts} +3 -3
  36. package/dist/{as-table-root.vue-BllmTRXj.d.cts → as-table-root.vue-Dze91qga.d.cts} +3 -3
  37. package/dist/as-table.cjs +1 -1
  38. package/dist/as-table.d.cts +1 -1
  39. package/dist/as-table.d.mts +1 -1
  40. package/dist/as-table.mjs +1 -1
  41. package/dist/{as-table.vue-Bzp4UOqz.d.cts → as-table.vue-BSKifGzD.d.cts} +4 -4
  42. package/dist/{as-table.vue-Cd1Hc5v9.d.mts → as-table.vue-emq84QmP.d.mts} +4 -4
  43. package/dist/{as-window-table-D5grrLFG.mjs → as-window-table-ByTXS8yA.mjs} +29 -12
  44. package/dist/{as-window-table-OB4B1knU.cjs → as-window-table-DS30wumm.cjs} +29 -12
  45. package/dist/as-window-table.cjs +1 -1
  46. package/dist/as-window-table.d.cts +1 -1
  47. package/dist/as-window-table.d.mts +1 -1
  48. package/dist/as-window-table.mjs +1 -1
  49. package/dist/{as-window-table.vue-CcDoghqs.d.mts → as-window-table.vue-DJNJ-6dd.d.cts} +15 -2
  50. package/dist/{as-window-table.vue-Db--CSWD.d.cts → as-window-table.vue-DUJgZDXy.d.mts} +15 -2
  51. package/dist/index.cjs +5 -5
  52. package/dist/index.d.cts +8 -8
  53. package/dist/index.d.mts +8 -8
  54. package/dist/index.mjs +5 -5
  55. package/dist/{types-n40LWFm_.d.cts → types-CsgAGRfG.d.mts} +8 -3
  56. package/dist/{types-CuOHiH-S.d.mts → types-DvWLY5zQ.d.cts} +8 -3
  57. package/dist/use-table-column-handlers-DGn4ZW9j.mjs +85 -0
  58. package/dist/use-table-column-handlers-r47WDxEh.cjs +96 -0
  59. package/package.json +4 -4
  60. package/dist/use-table-column-handlers-BMrP0WY2.cjs +0 -45
  61. package/dist/use-table-column-handlers-Bx3JERqs.mjs +0 -40
  62. /package/dist/{as-table-status-CbKmSKAy.cjs → as-table-status-B2O3hLGg.cjs} +0 -0
  63. /package/dist/{as-table-status-D9YuoBOm.mjs → as-table-status-aebsG7bR.mjs} +0 -0
@@ -2,8 +2,8 @@ import { a as useTableContext, i as useRegisterMainActionListener, p as onSelect
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-D9YuoBOm.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",
@@ -2,8 +2,8 @@ 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-CbKmSKAy.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",
@@ -1,2 +1,2 @@
1
- const require_as_window_table = require("./as-window-table-OB4B1knU.cjs");
1
+ const require_as_window_table = require("./as-window-table-DS30wumm.cjs");
2
2
  module.exports = require_as_window_table.as_window_table_default;
@@ -1,2 +1,2 @@
1
- import { t as _default } from "./as-window-table.vue-Db--CSWD.cjs";
1
+ import { t as _default } from "./as-window-table.vue-DJNJ-6dd.cjs";
2
2
  export = _default;
@@ -1,2 +1,2 @@
1
- import { t as _default } from "./as-window-table.vue-CcDoghqs.mjs";
1
+ import { t as _default } from "./as-window-table.vue-DUJgZDXy.mjs";
2
2
  export { _default as default };
@@ -1,2 +1,2 @@
1
- import { t as as_window_table_default } from "./as-window-table-D5grrLFG.mjs";
1
+ import { t as as_window_table_default } from "./as-window-table-ByTXS8yA.mjs";
2
2
  export { as_window_table_default as default };
@@ -1,4 +1,4 @@
1
- import { _ as RowDeleteOpt, f as QueryErrorKind, g as RowClassHook, h as RowAttrsHook, o as EnterAction, r as ColumnMenuConfig, y as RowSelectableHook } from "./types-CuOHiH-S.mjs";
1
+ import { _ as RowClassHook, b as RowSelectableHook, f as QueryErrorKind, g as RowAttrsHook, m as RowActionsColumnPlacement, o as EnterAction, r as ColumnMenuConfig, v as RowDeleteOpt } from "./types-DvWLY5zQ.cjs";
2
2
  import * as vue from "vue";
3
3
  import { SelectionMode } from "@atscript/ui-table";
4
4
 
@@ -51,6 +51,18 @@ type __VLS_Props = {
51
51
  * a watcher — the action set live-updates as the prop flips.
52
52
  */
53
53
  rowDelete?: boolean | RowDeleteOpt;
54
+ /**
55
+ * Synthesised row-actions pseudo-column, as on `<AsTable>`. `'first'` /
56
+ * `'last'` prepend or append a fixed `__actions` column rendering
57
+ * `controls.rowActions` (the `@DbAction` row actions, per-row gated by
58
+ * `$actions`). `'merge-select'` only renders it when `select === "none"`,
59
+ * sharing the leading gutter with the checkbox column.
60
+ *
61
+ * The column is locked: no header dropdown, no resize, no drag-reorder,
62
+ * NOT in the `columnNames` v-model. Hidden entirely when
63
+ * `state.actions.row` is empty. Since 0.1.138.
64
+ */
65
+ rowActionsColumn?: RowActionsColumnPlacement | false;
54
66
  /**
55
67
  * Render without a header row. Omits `<thead>` entirely (not
56
68
  * `display:none`); column widths are carried by the `<colgroup>`, so data
@@ -97,11 +109,12 @@ declare const __VLS_base: vue.DefineComponent<__VLS_Props, {}, {}, {}, {}, vue.C
97
109
  "onMain-action"?: ((row: Row, absIndex: number, event: MouseEvent | KeyboardEvent) => any) | undefined;
98
110
  onError?: ((error: Error, kind: QueryErrorKind) => any) | undefined;
99
111
  }>, {
112
+ select: SelectionMode;
100
113
  reorderable: boolean;
101
114
  resizable: boolean;
102
115
  columnMinWidth: number;
103
- select: SelectionMode;
104
116
  rowDelete: boolean | RowDeleteOpt;
117
+ rowActionsColumn: RowActionsColumnPlacement | false;
105
118
  headless: boolean;
106
119
  rowHeight: number;
107
120
  wheelRowsPerTick: number;
@@ -1,4 +1,4 @@
1
- import { _ as RowDeleteOpt, f as QueryErrorKind, g as RowClassHook, h as RowAttrsHook, o as EnterAction, r as ColumnMenuConfig, y as RowSelectableHook } from "./types-n40LWFm_.cjs";
1
+ import { _ as RowClassHook, b as RowSelectableHook, f as QueryErrorKind, g as RowAttrsHook, m as RowActionsColumnPlacement, o as EnterAction, r as ColumnMenuConfig, v as RowDeleteOpt } from "./types-CsgAGRfG.mjs";
2
2
  import * as vue from "vue";
3
3
  import { SelectionMode } from "@atscript/ui-table";
4
4
 
@@ -51,6 +51,18 @@ type __VLS_Props = {
51
51
  * a watcher — the action set live-updates as the prop flips.
52
52
  */
53
53
  rowDelete?: boolean | RowDeleteOpt;
54
+ /**
55
+ * Synthesised row-actions pseudo-column, as on `<AsTable>`. `'first'` /
56
+ * `'last'` prepend or append a fixed `__actions` column rendering
57
+ * `controls.rowActions` (the `@DbAction` row actions, per-row gated by
58
+ * `$actions`). `'merge-select'` only renders it when `select === "none"`,
59
+ * sharing the leading gutter with the checkbox column.
60
+ *
61
+ * The column is locked: no header dropdown, no resize, no drag-reorder,
62
+ * NOT in the `columnNames` v-model. Hidden entirely when
63
+ * `state.actions.row` is empty. Since 0.1.138.
64
+ */
65
+ rowActionsColumn?: RowActionsColumnPlacement | false;
54
66
  /**
55
67
  * Render without a header row. Omits `<thead>` entirely (not
56
68
  * `display:none`); column widths are carried by the `<colgroup>`, so data
@@ -97,11 +109,12 @@ declare const __VLS_base: vue.DefineComponent<__VLS_Props, {}, {}, {}, {}, vue.C
97
109
  "onMain-action"?: ((row: Row, absIndex: number, event: MouseEvent | KeyboardEvent) => any) | undefined;
98
110
  onError?: ((error: Error, kind: QueryErrorKind) => any) | undefined;
99
111
  }>, {
112
+ select: SelectionMode;
100
113
  reorderable: boolean;
101
114
  resizable: boolean;
102
115
  columnMinWidth: number;
103
- select: SelectionMode;
104
116
  rowDelete: boolean | RowDeleteOpt;
117
+ rowActionsColumn: RowActionsColumnPlacement | false;
105
118
  headless: boolean;
106
119
  rowHeight: number;
107
120
  wheelRowsPerTick: number;
package/dist/index.cjs CHANGED
@@ -17,15 +17,15 @@ const require_as_column_menu = require("./as-column-menu-D_8NxujZ.cjs");
17
17
  const require_as_config_dialog = require("./as-config-dialog-BrVhIV_e.cjs");
18
18
  const require_as_confirm_dialog = require("./as-confirm-dialog-iytk-urB.cjs");
19
19
  const require_as_filter_input = require("./as-filter-input-DUqpkTkg.cjs");
20
- const require_as_filter_dialog = require("./as-filter-dialog-DoynFox2.cjs");
20
+ const require_as_filter_dialog = require("./as-filter-dialog-CW8-zoag.cjs");
21
21
  const require_as_table_header_cell = require("./as-table-header-cell-CiRLNVJz.cjs");
22
- const require_as_window_table = require("./as-window-table-OB4B1knU.cjs");
23
- const require_as_filter_field = require("./as-filter-field-CBMDjApB.cjs");
24
- const require_as_filters = require("./as-filters-CiPv-dKs.cjs");
22
+ const require_as_window_table = require("./as-window-table-DS30wumm.cjs");
23
+ const require_as_filter_field = require("./as-filter-field-bVIXoH3j.cjs");
24
+ const require_as_filters = require("./as-filters-Dx8WkGiA.cjs");
25
25
  const require_as_preset_dialog = require("./as-preset-dialog-D8o2ChtM.cjs");
26
26
  const require_as_row_actions = require("./as-row-actions-CAiCfw8d.cjs");
27
27
  const require_as_table_cell_value = require("./as-table-cell-value-BAi5yadc.cjs");
28
- const require_as_table = require("./as-table-BNfZcSra.cjs");
28
+ const require_as_table = require("./as-table-QoXP-NZr.cjs");
29
29
  const require_as_table_actions = require("./as-table-actions-8yf2QIER.cjs");
30
30
  const require_as_preset_picker = require("./as-preset-picker-DonMQ8Ia.cjs");
31
31
  let _atscript_ui = require("@atscript/ui");
package/dist/index.d.cts CHANGED
@@ -1,23 +1,23 @@
1
1
  import { t as _default$11 } from "./as-filters.vue-DcxDnWAU.cjs";
2
2
  import { t as _default$13 } from "./as-preset-picker.vue-DfXS3pGl.cjs";
3
- import { C as TVueTableActionInfo, E as extractIdentifier, S as TAsTableControls, T as TableNavBridge, _ as RowDeleteOpt, b as RowSelectableVerdict, c as LocalRowAction, f as QueryErrorKind, g as RowClassHook, h as RowAttrsHook, i as ConfigTab, l as MainActionRequest, m as RowActionsConfig, n as ApplyUrlQueryOptions, p as ReactiveTableState, r as ColumnMenuConfig, s as InvokeOpts, t as ActionResult, u as NavKeyOptions, v as RowHookContext, w as TableActionsState, x as TAsCellTypeComponents, y as RowSelectableHook } from "./types-n40LWFm_.cjs";
4
- import { t as _default$16 } from "./as-table-actions.vue-B7ttOxKU.cjs";
5
- import { $ as useTableExport, A as CellLocale, B as injectPresetsApp, C as isSystemPresetId, Ct as UseLocalDraftReturn, D as formatCellValue, E as setDefaultClientFactory, F as useTableComponent, G as useTableFilter, H as useTableUrlQuery, I as UseAppPrefsOptions, J as ExportProgress, K as useTableNavBridge, L as UseAppPrefsReturn, M as useCellLocale, N as createDefaultCellTypes, O as getCellValue, P as createDefaultControls, Q as downloadExport, R as useAppPrefs, S as getDefaultClientFactory, St as UseLocalDraftOptions, T as resolveSystemPresets, U as useTableActions, V as UseTableUrlQueryOptions, W as useTableSearch, X as ExportRowsOptions, Y as ExportResult, Z as UseTableExportReturn, _ as SYSTEM_PRESET_PREFIX, _t as ActivePresetView, a as CsvOptions, at as BuildQueryOptions, b as UrlQuerySync, bt as usePresets, c as ExportScalar, ct as QueryFn, d as PresetCapabilities, dt as TableStateInternals, et as UseTableOptions, f as PresetData, ft as createStaticTableState, g as STANDARD_PRESET_ID, gt as useTableContextOptional, h as QueryOptions, ht as useTableContext, i as ClientFactory, it as useTableSelection, j as provideCellLocale, k as getColumnWidth, l as PRESET_ASPECTS, lt as TableContext, m as PresetSnapshotWire, mt as provideTableContext, n as AppConfData, nt as useTable, o as DisplayColumnDef, ot as CreateStaticTableStateOptions, p as PresetSnapshot, pt as createTableState, q as ExportCellFormatter, r as AsPresetEntryRow, rt as SelectionPersistence, s as ExportAbortError, st as CreateTableStateOptions, t as _default$19, tt as clearTableCache, u as PresetAspect, ut as TableModelRefs, v as SystemPreset, vt as UsePresetsOptions, w as resetDefaultClientFactory, wt as useLocalDraft, x as UserConfData, xt as StorageLike, y as SystemPresetInput, yt as UsePresetsReturn, z as AS_PRESETS_APP } from "./as-table-root.vue-BllmTRXj.cjs";
6
- import { t as _default$15 } from "./as-table.vue-Bzp4UOqz.cjs";
7
- import { t as _default$20 } from "./as-window-table.vue-Db--CSWD.cjs";
3
+ import { C as TAsTableControls, D as extractIdentifier, E as TableNavBridge, S as TAsCellTypeComponents, T as TableActionsState, _ as RowClassHook, b as RowSelectableHook, c as LocalRowAction, f as QueryErrorKind, g as RowAttrsHook, h as RowActionsConfig, i as ConfigTab, l as MainActionRequest, n as ApplyUrlQueryOptions, p as ReactiveTableState, r as ColumnMenuConfig, s as InvokeOpts, t as ActionResult, u as NavKeyOptions, v as RowDeleteOpt, w as TVueTableActionInfo, x as RowSelectableVerdict, y as RowHookContext } from "./types-DvWLY5zQ.cjs";
4
+ import { t as _default$16 } from "./as-table-actions.vue-oxyikRAt.cjs";
5
+ import { $ as useTableExport, A as CellLocale, B as injectPresetsApp, C as isSystemPresetId, Ct as UseLocalDraftReturn, D as formatCellValue, E as setDefaultClientFactory, F as useTableComponent, G as useTableFilter, H as useTableUrlQuery, I as UseAppPrefsOptions, J as ExportProgress, K as useTableNavBridge, L as UseAppPrefsReturn, M as useCellLocale, N as createDefaultCellTypes, O as getCellValue, P as createDefaultControls, Q as downloadExport, R as useAppPrefs, S as getDefaultClientFactory, St as UseLocalDraftOptions, T as resolveSystemPresets, U as useTableActions, V as UseTableUrlQueryOptions, W as useTableSearch, X as ExportRowsOptions, Y as ExportResult, Z as UseTableExportReturn, _ as SYSTEM_PRESET_PREFIX, _t as ActivePresetView, a as CsvOptions, at as BuildQueryOptions, b as UrlQuerySync, bt as usePresets, c as ExportScalar, ct as QueryFn, d as PresetCapabilities, dt as TableStateInternals, et as UseTableOptions, f as PresetData, ft as createStaticTableState, g as STANDARD_PRESET_ID, gt as useTableContextOptional, h as QueryOptions, ht as useTableContext, i as ClientFactory, it as useTableSelection, j as provideCellLocale, k as getColumnWidth, l as PRESET_ASPECTS, lt as TableContext, m as PresetSnapshotWire, mt as provideTableContext, n as AppConfData, nt as useTable, o as DisplayColumnDef, ot as CreateStaticTableStateOptions, p as PresetSnapshot, pt as createTableState, q as ExportCellFormatter, r as AsPresetEntryRow, rt as SelectionPersistence, s as ExportAbortError, st as CreateTableStateOptions, t as _default$19, tt as clearTableCache, u as PresetAspect, ut as TableModelRefs, v as SystemPreset, vt as UsePresetsOptions, w as resetDefaultClientFactory, wt as useLocalDraft, x as UserConfData, xt as StorageLike, y as SystemPresetInput, yt as UsePresetsReturn, z as AS_PRESETS_APP } from "./as-table-root.vue-Dze91qga.cjs";
6
+ import { t as _default$15 } from "./as-table.vue-BSKifGzD.cjs";
7
+ import { t as _default$20 } from "./as-window-table.vue-DJNJ-6dd.cjs";
8
8
  import { t as _default } from "./as-cell-array.vue-pFs5GcCR.cjs";
9
9
  import { t as _default$1 } from "./as-cell-date.vue-BBSps2B2.cjs";
10
10
  import { t as _default$2 } from "./as-cell-json.vue-C6wg4ARZ.cjs";
11
11
  import { t as _default$3 } from "./as-cell-number.vue-CJ2K5zeM.cjs";
12
12
  import { t as _default$4 } from "./as-cell-union.vue-CslPM_c2.cjs";
13
- import { t as _default$5 } from "./as-column-menu.vue-olu6BNEU.cjs";
13
+ import { t as _default$5 } from "./as-column-menu.vue-CgvDp7JK.cjs";
14
14
  import { t as _default$6 } from "./as-config-dialog.vue-DvvJi3xx.cjs";
15
15
  import { t as _default$7 } from "./as-confirm-dialog.vue-CXxLpzbu.cjs";
16
16
  import { t as _default$8 } from "./as-filter-dialog.vue-BV2J8PgZ.cjs";
17
17
  import { t as _default$9 } from "./as-filter-field.vue-ByQ8xIGq.cjs";
18
18
  import { t as _default$10 } from "./as-filter-input.vue-CS4nOk_Q.cjs";
19
19
  import { t as _default$12 } from "./as-preset-dialog.vue-DP9fy00Y.cjs";
20
- import { t as _default$14 } from "./as-row-actions.vue-Cac2kfwO.cjs";
20
+ import { t as _default$14 } from "./as-row-actions.vue-C49h8PpE.cjs";
21
21
  import { t as _default$17 } from "./as-table-cell-value.vue-BgFDv2JQ.cjs";
22
- import { t as _default$18 } from "./as-table-header-cell.vue-DmncmpeQ.cjs";
22
+ import { t as _default$18 } from "./as-table-header-cell.vue-BjgxfKhi.cjs";
23
23
  export { AS_PRESETS_APP, ActionResult, ActivePresetView, AppConfData, ApplyUrlQueryOptions, _default as AsCellArray, _default$1 as AsCellDate, _default$2 as AsCellJson, _default$3 as AsCellNumber, _default$4 as AsCellUnion, _default$5 as AsColumnMenu, _default$6 as AsConfigDialog, _default$7 as AsConfirmDialog, _default$8 as AsFilterDialog, _default$9 as AsFilterField, _default$10 as AsFilterInput, _default$11 as AsFilters, _default$12 as AsPresetDialog, AsPresetEntryRow, _default$13 as AsPresetPicker, _default$14 as AsRowActions, _default$15 as AsTable, _default$16 as AsTableActions, _default$17 as AsTableCellValue, _default$18 as AsTableHeaderCell, _default$19 as AsTableRoot, _default$20 as AsWindowTable, BuildQueryOptions, CellLocale, ClientFactory, ColumnMenuConfig, ConfigTab, CreateStaticTableStateOptions, CreateTableStateOptions, CsvOptions, DisplayColumnDef, ExportAbortError, ExportCellFormatter, ExportProgress, ExportResult, ExportRowsOptions, ExportScalar, InvokeOpts, LocalRowAction, MainActionRequest, NavKeyOptions, PRESET_ASPECTS, PresetAspect, PresetCapabilities, PresetData, PresetSnapshot, PresetSnapshotWire, QueryErrorKind, QueryFn, QueryOptions, ReactiveTableState, RowActionsConfig, RowAttrsHook, RowClassHook, RowDeleteOpt, RowHookContext, RowSelectableHook, RowSelectableVerdict, STANDARD_PRESET_ID, SYSTEM_PRESET_PREFIX, SelectionPersistence, StorageLike, SystemPreset, SystemPresetInput, TAsCellTypeComponents, TAsTableControls, TVueTableActionInfo, TableActionsState, TableContext, TableModelRefs, TableNavBridge, TableStateInternals, UrlQuerySync, UseAppPrefsOptions, UseAppPrefsReturn, UseLocalDraftOptions, UseLocalDraftReturn, UsePresetsOptions, UsePresetsReturn, UseTableExportReturn, UseTableOptions, UseTableUrlQueryOptions, UserConfData, clearTableCache, createDefaultCellTypes, createDefaultControls, createStaticTableState, createTableState, downloadExport, extractIdentifier, formatCellValue, getCellValue, getColumnWidth, getDefaultClientFactory, injectPresetsApp, isSystemPresetId, provideCellLocale, provideTableContext, resetDefaultClientFactory, resolveSystemPresets, setDefaultClientFactory, useAppPrefs, useCellLocale, useLocalDraft, usePresets, useTable, useTableActions, useTableComponent, useTableContext, useTableContextOptional, useTableExport, useTableFilter, useTableNavBridge, useTableSearch, useTableSelection, useTableUrlQuery };
package/dist/index.d.mts CHANGED
@@ -1,23 +1,23 @@
1
1
  import { t as _default$11 } from "./as-filters.vue-BG_ysCkC.mjs";
2
2
  import { t as _default$13 } from "./as-preset-picker.vue-BPjsiaVt.mjs";
3
- import { C as TVueTableActionInfo, E as extractIdentifier, S as TAsTableControls, T as TableNavBridge, _ as RowDeleteOpt, b as RowSelectableVerdict, c as LocalRowAction, f as QueryErrorKind, g as RowClassHook, h as RowAttrsHook, i as ConfigTab, l as MainActionRequest, m as RowActionsConfig, n as ApplyUrlQueryOptions, p as ReactiveTableState, r as ColumnMenuConfig, s as InvokeOpts, t as ActionResult, u as NavKeyOptions, v as RowHookContext, w as TableActionsState, x as TAsCellTypeComponents, y as RowSelectableHook } from "./types-CuOHiH-S.mjs";
4
- import { t as _default$16 } from "./as-table-actions.vue-66cjnFZI.mjs";
5
- import { $ as useTableExport, A as CellLocale, B as injectPresetsApp, C as isSystemPresetId, Ct as UseLocalDraftReturn, D as formatCellValue, E as setDefaultClientFactory, F as useTableComponent, G as useTableFilter, H as useTableUrlQuery, I as UseAppPrefsOptions, J as ExportProgress, K as useTableNavBridge, L as UseAppPrefsReturn, M as useCellLocale, N as createDefaultCellTypes, O as getCellValue, P as createDefaultControls, Q as downloadExport, R as useAppPrefs, S as getDefaultClientFactory, St as UseLocalDraftOptions, T as resolveSystemPresets, U as useTableActions, V as UseTableUrlQueryOptions, W as useTableSearch, X as ExportRowsOptions, Y as ExportResult, Z as UseTableExportReturn, _ as SYSTEM_PRESET_PREFIX, _t as ActivePresetView, a as CsvOptions, at as BuildQueryOptions, b as UrlQuerySync, bt as usePresets, c as ExportScalar, ct as QueryFn, d as PresetCapabilities, dt as TableStateInternals, et as UseTableOptions, f as PresetData, ft as createStaticTableState, g as STANDARD_PRESET_ID, gt as useTableContextOptional, h as QueryOptions, ht as useTableContext, i as ClientFactory, it as useTableSelection, j as provideCellLocale, k as getColumnWidth, l as PRESET_ASPECTS, lt as TableContext, m as PresetSnapshotWire, mt as provideTableContext, n as AppConfData, nt as useTable, o as DisplayColumnDef, ot as CreateStaticTableStateOptions, p as PresetSnapshot, pt as createTableState, q as ExportCellFormatter, r as AsPresetEntryRow, rt as SelectionPersistence, s as ExportAbortError, st as CreateTableStateOptions, t as _default$19, tt as clearTableCache, u as PresetAspect, ut as TableModelRefs, v as SystemPreset, vt as UsePresetsOptions, w as resetDefaultClientFactory, wt as useLocalDraft, x as UserConfData, xt as StorageLike, y as SystemPresetInput, yt as UsePresetsReturn, z as AS_PRESETS_APP } from "./as-table-root.vue-zWOmt_ug.mjs";
6
- import { t as _default$15 } from "./as-table.vue-Cd1Hc5v9.mjs";
7
- import { t as _default$20 } from "./as-window-table.vue-CcDoghqs.mjs";
3
+ import { C as TAsTableControls, D as extractIdentifier, E as TableNavBridge, S as TAsCellTypeComponents, T as TableActionsState, _ as RowClassHook, b as RowSelectableHook, c as LocalRowAction, f as QueryErrorKind, g as RowAttrsHook, h as RowActionsConfig, i as ConfigTab, l as MainActionRequest, n as ApplyUrlQueryOptions, p as ReactiveTableState, r as ColumnMenuConfig, s as InvokeOpts, t as ActionResult, u as NavKeyOptions, v as RowDeleteOpt, w as TVueTableActionInfo, x as RowSelectableVerdict, y as RowHookContext } from "./types-CsgAGRfG.mjs";
4
+ import { t as _default$16 } from "./as-table-actions.vue-BTGQnFH_.mjs";
5
+ import { $ as useTableExport, A as CellLocale, B as injectPresetsApp, C as isSystemPresetId, Ct as UseLocalDraftReturn, D as formatCellValue, E as setDefaultClientFactory, F as useTableComponent, G as useTableFilter, H as useTableUrlQuery, I as UseAppPrefsOptions, J as ExportProgress, K as useTableNavBridge, L as UseAppPrefsReturn, M as useCellLocale, N as createDefaultCellTypes, O as getCellValue, P as createDefaultControls, Q as downloadExport, R as useAppPrefs, S as getDefaultClientFactory, St as UseLocalDraftOptions, T as resolveSystemPresets, U as useTableActions, V as UseTableUrlQueryOptions, W as useTableSearch, X as ExportRowsOptions, Y as ExportResult, Z as UseTableExportReturn, _ as SYSTEM_PRESET_PREFIX, _t as ActivePresetView, a as CsvOptions, at as BuildQueryOptions, b as UrlQuerySync, bt as usePresets, c as ExportScalar, ct as QueryFn, d as PresetCapabilities, dt as TableStateInternals, et as UseTableOptions, f as PresetData, ft as createStaticTableState, g as STANDARD_PRESET_ID, gt as useTableContextOptional, h as QueryOptions, ht as useTableContext, i as ClientFactory, it as useTableSelection, j as provideCellLocale, k as getColumnWidth, l as PRESET_ASPECTS, lt as TableContext, m as PresetSnapshotWire, mt as provideTableContext, n as AppConfData, nt as useTable, o as DisplayColumnDef, ot as CreateStaticTableStateOptions, p as PresetSnapshot, pt as createTableState, q as ExportCellFormatter, r as AsPresetEntryRow, rt as SelectionPersistence, s as ExportAbortError, st as CreateTableStateOptions, t as _default$19, tt as clearTableCache, u as PresetAspect, ut as TableModelRefs, v as SystemPreset, vt as UsePresetsOptions, w as resetDefaultClientFactory, wt as useLocalDraft, x as UserConfData, xt as StorageLike, y as SystemPresetInput, yt as UsePresetsReturn, z as AS_PRESETS_APP } from "./as-table-root.vue-DnOHVQtA.mjs";
6
+ import { t as _default$15 } from "./as-table.vue-emq84QmP.mjs";
7
+ import { t as _default$20 } from "./as-window-table.vue-DUJgZDXy.mjs";
8
8
  import { t as _default } from "./as-cell-array.vue-D4vS7C_D.mjs";
9
9
  import { t as _default$1 } from "./as-cell-date.vue-Chs7WTZ9.mjs";
10
10
  import { t as _default$2 } from "./as-cell-json.vue-C0_LDvQw.mjs";
11
11
  import { t as _default$3 } from "./as-cell-number.vue-BBF0OuU8.mjs";
12
12
  import { t as _default$4 } from "./as-cell-union.vue-CL-Lf-Rm.mjs";
13
- import { t as _default$5 } from "./as-column-menu.vue-DIuEvru6.mjs";
13
+ import { t as _default$5 } from "./as-column-menu.vue-SRkxrvo_.mjs";
14
14
  import { t as _default$6 } from "./as-config-dialog.vue-BvFZZRuY.mjs";
15
15
  import { t as _default$7 } from "./as-confirm-dialog.vue-Cz52-v6c.mjs";
16
16
  import { t as _default$8 } from "./as-filter-dialog.vue-likNLqzF.mjs";
17
17
  import { t as _default$9 } from "./as-filter-field.vue-BbXLhd6O.mjs";
18
18
  import { t as _default$10 } from "./as-filter-input.vue-B9ma2l9j.mjs";
19
19
  import { t as _default$12 } from "./as-preset-dialog.vue-BRjjfPty.mjs";
20
- import { t as _default$14 } from "./as-row-actions.vue-DZrASzp7.mjs";
20
+ import { t as _default$14 } from "./as-row-actions.vue-BCgHsU18.mjs";
21
21
  import { t as _default$17 } from "./as-table-cell-value.vue-kfNgVhzn.mjs";
22
- import { t as _default$18 } from "./as-table-header-cell.vue-DhCxDIn1.mjs";
22
+ import { t as _default$18 } from "./as-table-header-cell.vue-zGeuzm3w.mjs";
23
23
  export { AS_PRESETS_APP, ActionResult, ActivePresetView, AppConfData, ApplyUrlQueryOptions, _default as AsCellArray, _default$1 as AsCellDate, _default$2 as AsCellJson, _default$3 as AsCellNumber, _default$4 as AsCellUnion, _default$5 as AsColumnMenu, _default$6 as AsConfigDialog, _default$7 as AsConfirmDialog, _default$8 as AsFilterDialog, _default$9 as AsFilterField, _default$10 as AsFilterInput, _default$11 as AsFilters, _default$12 as AsPresetDialog, AsPresetEntryRow, _default$13 as AsPresetPicker, _default$14 as AsRowActions, _default$15 as AsTable, _default$16 as AsTableActions, _default$17 as AsTableCellValue, _default$18 as AsTableHeaderCell, _default$19 as AsTableRoot, _default$20 as AsWindowTable, BuildQueryOptions, CellLocale, ClientFactory, ColumnMenuConfig, ConfigTab, CreateStaticTableStateOptions, CreateTableStateOptions, CsvOptions, DisplayColumnDef, ExportAbortError, ExportCellFormatter, ExportProgress, ExportResult, ExportRowsOptions, ExportScalar, InvokeOpts, LocalRowAction, MainActionRequest, NavKeyOptions, PRESET_ASPECTS, PresetAspect, PresetCapabilities, PresetData, PresetSnapshot, PresetSnapshotWire, QueryErrorKind, QueryFn, QueryOptions, ReactiveTableState, RowActionsConfig, RowAttrsHook, RowClassHook, RowDeleteOpt, RowHookContext, RowSelectableHook, RowSelectableVerdict, STANDARD_PRESET_ID, SYSTEM_PRESET_PREFIX, SelectionPersistence, StorageLike, SystemPreset, SystemPresetInput, TAsCellTypeComponents, TAsTableControls, TVueTableActionInfo, TableActionsState, TableContext, TableModelRefs, TableNavBridge, TableStateInternals, UrlQuerySync, UseAppPrefsOptions, UseAppPrefsReturn, UseLocalDraftOptions, UseLocalDraftReturn, UsePresetsOptions, UsePresetsReturn, UseTableExportReturn, UseTableOptions, UseTableUrlQueryOptions, UserConfData, clearTableCache, createDefaultCellTypes, createDefaultControls, createStaticTableState, createTableState, downloadExport, extractIdentifier, formatCellValue, getCellValue, getColumnWidth, getDefaultClientFactory, injectPresetsApp, isSystemPresetId, provideCellLocale, provideTableContext, resetDefaultClientFactory, resolveSystemPresets, setDefaultClientFactory, useAppPrefs, useCellLocale, useLocalDraft, usePresets, useTable, useTableActions, useTableComponent, useTableContext, useTableContextOptional, useTableExport, useTableFilter, useTableNavBridge, useTableSearch, useTableSelection, useTableUrlQuery };
package/dist/index.mjs CHANGED
@@ -16,15 +16,15 @@ import { t as as_column_menu_default } from "./as-column-menu-BMTS3DO2.mjs";
16
16
  import { t as as_config_dialog_default } from "./as-config-dialog-DHdpmRo9.mjs";
17
17
  import { t as as_confirm_dialog_default } from "./as-confirm-dialog-BG5vlbvV.mjs";
18
18
  import { t as as_filter_input_default } from "./as-filter-input-C8KmOus8.mjs";
19
- import { t as as_filter_dialog_default } from "./as-filter-dialog-DAvtsH3d.mjs";
19
+ import { t as as_filter_dialog_default } from "./as-filter-dialog-Dis7tkN_.mjs";
20
20
  import { t as as_table_header_cell_default } from "./as-table-header-cell-Cl8waY_g.mjs";
21
- import { t as as_window_table_default } from "./as-window-table-D5grrLFG.mjs";
22
- import { t as as_filter_field_default } from "./as-filter-field-DB5WFT4l.mjs";
23
- import { t as as_filters_default } from "./as-filters-DfBH5YH9.mjs";
21
+ import { t as as_window_table_default } from "./as-window-table-ByTXS8yA.mjs";
22
+ import { t as as_filter_field_default } from "./as-filter-field-BKoxTudl.mjs";
23
+ import { t as as_filters_default } from "./as-filters-CxVy00LQ.mjs";
24
24
  import { t as as_preset_dialog_default } from "./as-preset-dialog-C0f_6VxJ.mjs";
25
25
  import { t as as_row_actions_default } from "./as-row-actions-B8YANdb4.mjs";
26
26
  import { t as as_table_cell_value_default } from "./as-table-cell-value-BVcfhhCb.mjs";
27
- import { t as as_table_default } from "./as-table-DtfWLLlb.mjs";
27
+ import { t as as_table_default } from "./as-table-BAoJ60tx.mjs";
28
28
  import { t as as_table_actions_default } from "./as-table-actions-z5xUWtvK.mjs";
29
29
  import { t as as_preset_picker_default } from "./as-preset-picker-CDItDinB.mjs";
30
30
  import { getDefaultClientFactory, resetDefaultClientFactory, setDefaultClientFactory } from "@atscript/ui";
@@ -1,8 +1,8 @@
1
+ import { ColumnDef, PaginationControl, SortControl, TableDef } from "@atscript/ui";
1
2
  import { Component, ComputedRef, MaybeRefOrGetter, Ref, ShallowRef } from "vue";
3
+ import { AsPresetEntryRow, AspectMask, ColumnWidthsMap, ConfigTab, FieldFilters, PresetAspect, PresetCapabilities, PresetSnapshot, SelectionMode, SystemPreset, SystemPresetInput, TableStateMethods } from "@atscript/ui-table";
2
4
  import { ClientError, PageResult, TDbActionInfo, TDbActionProcessor, TDbDeleteResult } from "@atscript/db-client";
3
5
  import { Uniquery } from "@uniqu/core";
4
- import { ColumnDef, PaginationControl, SortControl, TableDef } from "@atscript/ui";
5
- import { AsPresetEntryRow, AspectMask, ColumnWidthsMap, ConfigTab, FieldFilters, PresetAspect, PresetCapabilities, PresetSnapshot, SelectionMode, SystemPreset, SystemPresetInput, TableStateMethods } from "@atscript/ui-table";
6
6
 
7
7
  //#region src/composables/state/intent-scope.d.ts
8
8
  interface ActionBuckets {
@@ -52,6 +52,11 @@ interface RowActionsPolicy {
52
52
  //#region src/types.d.ts
53
53
  /** UI-side sentinel for the synthesised row-delete processor. */
54
54
  declare const REMOVE_PROCESSOR = "__remove";
55
+ /**
56
+ * Where a renderer places the synthesised row-actions column
57
+ * (`:row-actions-column` on `<AsTable>` / `<AsWindowTable>`).
58
+ */
59
+ type RowActionsColumnPlacement = "first" | "last" | "merge-select";
55
60
  /**
56
61
  * Action descriptor used everywhere in vue-table. Widens `processor` to admit
57
62
  * the UI-side `__remove` sentinel without leaking into db-client.
@@ -833,4 +838,4 @@ interface PresetSurface {
833
838
  lastError: Ref<Error | null>;
834
839
  }
835
840
  //#endregion
836
- export { TVueTableActionInfo as C, extractIdentifier as E, TAsTableControls as S, TableNavBridge as T, RowDeleteOpt as _, ConfirmOptions as a, RowSelectableVerdict as b, LocalRowAction as c, PresetConfig as d, QueryErrorKind as f, RowClassHook as g, RowAttrsHook as h, ConfigTab as i, MainActionRequest as l, RowActionsConfig as m, ApplyUrlQueryOptions as n, EnterAction as o, ReactiveTableState as p, ColumnMenuConfig as r, InvokeOpts as s, ActionResult as t, NavKeyOptions as u, RowHookContext as v, TableActionsState as w, TAsCellTypeComponents as x, RowSelectableHook as y };
841
+ export { TAsTableControls as C, extractIdentifier as D, TableNavBridge as E, TAsCellTypeComponents as S, TableActionsState as T, RowClassHook as _, ConfirmOptions as a, RowSelectableHook as b, LocalRowAction as c, PresetConfig as d, QueryErrorKind as f, RowAttrsHook as g, RowActionsConfig as h, ConfigTab as i, MainActionRequest as l, RowActionsColumnPlacement as m, ApplyUrlQueryOptions as n, EnterAction as o, ReactiveTableState as p, ColumnMenuConfig as r, InvokeOpts as s, ActionResult as t, NavKeyOptions as u, RowDeleteOpt as v, TVueTableActionInfo as w, RowSelectableVerdict as x, RowHookContext as y };
@@ -1,8 +1,8 @@
1
- import { ColumnDef, PaginationControl, SortControl, TableDef } from "@atscript/ui";
2
1
  import { Component, ComputedRef, MaybeRefOrGetter, Ref, ShallowRef } from "vue";
3
- import { AsPresetEntryRow, AspectMask, ColumnWidthsMap, ConfigTab, FieldFilters, PresetAspect, PresetCapabilities, PresetSnapshot, SelectionMode, SystemPreset, SystemPresetInput, TableStateMethods } from "@atscript/ui-table";
4
2
  import { ClientError, PageResult, TDbActionInfo, TDbActionProcessor, TDbDeleteResult } from "@atscript/db-client";
5
3
  import { Uniquery } from "@uniqu/core";
4
+ import { ColumnDef, PaginationControl, SortControl, TableDef } from "@atscript/ui";
5
+ import { AsPresetEntryRow, AspectMask, ColumnWidthsMap, ConfigTab, FieldFilters, PresetAspect, PresetCapabilities, PresetSnapshot, SelectionMode, SystemPreset, SystemPresetInput, TableStateMethods } from "@atscript/ui-table";
6
6
 
7
7
  //#region src/composables/state/intent-scope.d.ts
8
8
  interface ActionBuckets {
@@ -52,6 +52,11 @@ interface RowActionsPolicy {
52
52
  //#region src/types.d.ts
53
53
  /** UI-side sentinel for the synthesised row-delete processor. */
54
54
  declare const REMOVE_PROCESSOR = "__remove";
55
+ /**
56
+ * Where a renderer places the synthesised row-actions column
57
+ * (`:row-actions-column` on `<AsTable>` / `<AsWindowTable>`).
58
+ */
59
+ type RowActionsColumnPlacement = "first" | "last" | "merge-select";
55
60
  /**
56
61
  * Action descriptor used everywhere in vue-table. Widens `processor` to admit
57
62
  * the UI-side `__remove` sentinel without leaking into db-client.
@@ -833,4 +838,4 @@ interface PresetSurface {
833
838
  lastError: Ref<Error | null>;
834
839
  }
835
840
  //#endregion
836
- export { TVueTableActionInfo as C, extractIdentifier as E, TAsTableControls as S, TableNavBridge as T, RowDeleteOpt as _, ConfirmOptions as a, RowSelectableVerdict as b, LocalRowAction as c, PresetConfig as d, QueryErrorKind as f, RowClassHook as g, RowAttrsHook as h, ConfigTab as i, MainActionRequest as l, RowActionsConfig as m, ApplyUrlQueryOptions as n, EnterAction as o, ReactiveTableState as p, ColumnMenuConfig as r, InvokeOpts as s, ActionResult as t, NavKeyOptions as u, RowHookContext as v, TableActionsState as w, TAsCellTypeComponents as x, RowSelectableHook as y };
841
+ export { TAsTableControls as C, extractIdentifier as D, TableNavBridge as E, TAsCellTypeComponents as S, TableActionsState as T, RowClassHook as _, ConfirmOptions as a, RowSelectableHook as b, LocalRowAction as c, PresetConfig as d, QueryErrorKind as f, RowAttrsHook as g, RowActionsConfig as h, ConfigTab as i, MainActionRequest as l, RowActionsColumnPlacement as m, ApplyUrlQueryOptions as n, EnterAction as o, ReactiveTableState as p, ColumnMenuConfig as r, InvokeOpts as s, ActionResult as t, NavKeyOptions as u, RowDeleteOpt as v, TVueTableActionInfo as w, RowSelectableVerdict as x, RowHookContext as y };