@atscript/vue-table 0.1.140 → 0.1.142

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 (113) 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-B5RFt7Hc.cjs → as-action-menu-content-BaNFBYn3.cjs} +1 -1
  4. package/dist/{as-action-menu-content-KNJr1EkO.mjs → as-action-menu-content-miQYVP7x.mjs} +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-DKQNY5gh.d.cts → as-column-menu.vue-Ca3wSDxw.d.mts} +2 -2
  8. package/dist/{as-column-menu.vue-hOmuVcKf.d.mts → as-column-menu.vue-Co7FtiEM.d.cts} +2 -2
  9. package/dist/{as-config-dialog-B1KJJSHE.cjs → as-config-dialog-CVSOrS9O.cjs} +2 -2
  10. package/dist/{as-config-dialog-JXNkCCrh.mjs → as-config-dialog-Di02V3bs.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-CC6U8nLZ.mjs → as-confirm-dialog-C9Qat2rG.mjs} +1 -1
  14. package/dist/{as-confirm-dialog-a736BLOm.cjs → as-confirm-dialog-fCwo1ty9.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-IflKkOd8.cjs → as-filter-dialog-DYpbsNDx.cjs} +7 -7
  18. package/dist/{as-filter-dialog-C3wltqrN.mjs → as-filter-dialog-DdtrTT5w.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-pygBjA-K.cjs → as-filter-field-4-qFRsJx.cjs} +8 -10
  22. package/dist/{as-filter-field-D_6DlFcp.mjs → as-filter-field-DEQVodKG.mjs} +8 -10
  23. package/dist/as-filter-field.cjs +1 -1
  24. package/dist/as-filter-field.mjs +1 -1
  25. package/dist/{as-filters-BIoEsPD0.cjs → as-filters-C6ZkLrf4.cjs} +68 -25
  26. package/dist/{as-filters-BDzQ2SM_.mjs → as-filters-Dd_j6_6G.mjs} +69 -26
  27. package/dist/as-filters.cjs +1 -1
  28. package/dist/as-filters.d.cts +1 -1
  29. package/dist/as-filters.d.mts +1 -1
  30. package/dist/as-filters.mjs +1 -1
  31. package/dist/{as-filters.vue-BSgUEh4D.d.mts → as-filters.vue-dHbGmcbr.d.mts} +56 -4
  32. package/dist/{as-filters.vue-DMXZhQW3.d.cts → as-filters.vue-vH1FHn9L.d.cts} +56 -4
  33. package/dist/{as-preset-dialog-D_w4cxKS.mjs → as-preset-dialog-Bap48oUv.mjs} +1 -1
  34. package/dist/{as-preset-dialog-BgZB8xyk.cjs → as-preset-dialog-SYA-6lGR.cjs} +1 -1
  35. package/dist/as-preset-dialog.cjs +1 -1
  36. package/dist/as-preset-dialog.mjs +1 -1
  37. package/dist/{as-preset-picker-XnGrqHyF.cjs → as-preset-picker-BdKTZa95.cjs} +27 -21
  38. package/dist/{as-preset-picker-B8d6l3U1.mjs → as-preset-picker-NBrvsE6s.mjs} +27 -21
  39. package/dist/as-preset-picker.cjs +1 -1
  40. package/dist/as-preset-picker.mjs +1 -1
  41. package/dist/{as-residual-filter-C65QsWxr.mjs → as-residual-filter-BFnbI3h3.mjs} +1 -1
  42. package/dist/{as-residual-filter-ihvXCtpH.cjs → as-residual-filter-CZ-Bytdj.cjs} +1 -1
  43. package/dist/as-residual-filter.cjs +1 -1
  44. package/dist/as-residual-filter.mjs +1 -1
  45. package/dist/{as-row-actions-C6N0lcZb.cjs → as-row-actions-C3xHkX53.cjs} +2 -2
  46. package/dist/{as-row-actions-xQ9M1PrO.mjs → as-row-actions-KeoHo9Ex.mjs} +2 -2
  47. package/dist/as-row-actions.cjs +1 -1
  48. package/dist/as-row-actions.d.cts +1 -1
  49. package/dist/as-row-actions.d.mts +1 -1
  50. package/dist/as-row-actions.mjs +1 -1
  51. package/dist/{as-row-actions.vue-C8vslg0n.d.mts → as-row-actions.vue-D3_z3ytk.d.cts} +1 -1
  52. package/dist/{as-row-actions.vue-B3XAxDAL.d.cts → as-row-actions.vue-nmaDuxBT.d.mts} +1 -1
  53. package/dist/{as-table-status-2rA91OFT.mjs → as-select-cell-KD_ns8DS.mjs} +149 -36
  54. package/dist/{as-table-status-UWTPJJUL.cjs → as-select-cell-XnzNuW2v.cjs} +154 -35
  55. package/dist/{as-table-B49x0hDM.mjs → as-table-NHqyekNd.mjs} +10 -11
  56. package/dist/{as-table-actions-B2Hy3h7v.mjs → as-table-actions-BpEFcsgh.mjs} +2 -2
  57. package/dist/{as-table-actions-B-jY3s6f.cjs → as-table-actions-UQmFtRdJ.cjs} +2 -2
  58. package/dist/as-table-actions.cjs +1 -1
  59. package/dist/as-table-actions.d.cts +1 -1
  60. package/dist/as-table-actions.d.mts +1 -1
  61. package/dist/as-table-actions.mjs +1 -1
  62. package/dist/{as-table-actions.vue-BgTJuXEH.d.cts → as-table-actions.vue-BG3JVaBQ.d.mts} +1 -1
  63. package/dist/{as-table-actions.vue-BnLH2NqO.d.mts → as-table-actions.vue-DcuzNZoC.d.cts} +1 -1
  64. package/dist/{as-table-ouPxssqv.cjs → as-table-ay1yel3u.cjs} +10 -11
  65. package/dist/{as-table-base-DErJfFYz.mjs → as-table-base-89DkDZ-1.mjs} +46 -60
  66. package/dist/{as-table-base-ceywcVRq.cjs → as-table-base-umzg4PBR.cjs} +51 -65
  67. package/dist/{as-table-header-cell-Ccf06b2_.mjs → as-table-header-cell-DU3ws2x9.mjs} +1 -1
  68. package/dist/{as-table-header-cell-ZCk3XD_d.cjs → as-table-header-cell-f3YpgJX1.cjs} +1 -1
  69. package/dist/as-table-header-cell.cjs +1 -1
  70. package/dist/as-table-header-cell.d.cts +1 -1
  71. package/dist/as-table-header-cell.d.mts +1 -1
  72. package/dist/as-table-header-cell.mjs +1 -1
  73. package/dist/{as-table-header-cell.vue-C7jNmdDh.d.mts → as-table-header-cell.vue-5VGRc23o.d.mts} +1 -1
  74. package/dist/{as-table-header-cell.vue-DkClJBAT.d.cts → as-table-header-cell.vue-XR90UlHO.d.cts} +1 -1
  75. package/dist/{as-table-root-CG7bLzcQ.mjs → as-table-root-47hiBEnq.mjs} +8 -5
  76. package/dist/{as-table-root-_58hdHAi.cjs → as-table-root-DDeGktcl.cjs} +8 -5
  77. package/dist/as-table-root.cjs +1 -1
  78. package/dist/as-table-root.d.cts +1 -1
  79. package/dist/as-table-root.d.mts +1 -1
  80. package/dist/as-table-root.mjs +1 -1
  81. package/dist/{as-table-root.vue-DpPRMy3v.d.mts → as-table-root.vue-BGx453_Q.d.mts} +30 -4
  82. package/dist/{as-table-root.vue-D8hH1xGK.d.cts → as-table-root.vue-yZ7ZcwdT.d.cts} +32 -6
  83. package/dist/as-table.cjs +1 -1
  84. package/dist/as-table.d.cts +1 -1
  85. package/dist/as-table.d.mts +1 -1
  86. package/dist/as-table.mjs +1 -1
  87. package/dist/{as-table.vue-CudFoZTF.d.mts → as-table.vue-CwI5Z0y5.d.cts} +13 -11
  88. package/dist/{as-table.vue-Bv6sKnL5.d.cts → as-table.vue-wdFf4hMW.d.mts} +13 -11
  89. package/dist/{as-window-table-KyS6YUpa.mjs → as-window-table-C312T_bc.mjs} +83 -62
  90. package/dist/{as-window-table-C9YtzepV.cjs → as-window-table-hOYLNhX3.cjs} +89 -68
  91. package/dist/as-window-table.cjs +1 -1
  92. package/dist/as-window-table.d.cts +1 -1
  93. package/dist/as-window-table.d.mts +1 -1
  94. package/dist/as-window-table.mjs +1 -1
  95. package/dist/{as-window-table.vue-COVl3die.d.mts → as-window-table.vue-D6UDA6td.d.cts} +9 -7
  96. package/dist/{as-window-table.vue-CRWdhOgC.d.cts → as-window-table.vue-Deg1mj3t.d.mts} +9 -7
  97. package/dist/index.cjs +18 -18
  98. package/dist/index.d.cts +10 -10
  99. package/dist/index.d.mts +10 -10
  100. package/dist/index.mjs +18 -18
  101. package/dist/{types-BCixOa8x.d.cts → types-BU7J-a1r.d.mts} +79 -10
  102. package/dist/{types-D7qVxU_y.d.mts → types-D4dK49sA.d.cts} +79 -10
  103. package/dist/{use-table-2xPxoNRX.mjs → use-table-DlqGHjPh.mjs} +3 -2
  104. package/dist/{use-table-column-handlers-p_xK-l0e.mjs → use-table-column-handlers-0myVzrZR.mjs} +1 -1
  105. package/dist/{use-table-column-handlers-rqFo9HLz.cjs → use-table-column-handlers-BHMCo_HR.cjs} +1 -1
  106. package/dist/{use-table-component-XQ-Qt_sp.cjs → use-table-component-IziAm0vk.cjs} +1 -1
  107. package/dist/{use-table-component-BYO0zMQj.mjs → use-table-component-TLwFq4rx.mjs} +1 -1
  108. package/dist/{use-table-nav-bridge-BDBnRc4C.mjs → use-table-nav-bridge-CkQqimdS.mjs} +1 -1
  109. package/dist/{use-table-nav-bridge-DvrsPanF.cjs → use-table-nav-bridge-QU4jKhqx.cjs} +1 -1
  110. package/dist/{use-table-state-pF_9gnTG.cjs → use-table-state-BiklfjP0.cjs} +243 -45
  111. package/dist/{use-table-state-BzjbnpBA.mjs → use-table-state-Cq-3tbVr.mjs} +227 -47
  112. package/dist/{use-table-B45WZLwg.cjs → use-table-yZNJTfRq.cjs} +3 -2
  113. package/package.json +9 -9
@@ -1,4 +1,4 @@
1
- import { r as ColumnMenuConfig } from "./types-D7qVxU_y.mjs";
1
+ import { r as ColumnMenuConfig } from "./types-BU7J-a1r.mjs";
2
2
  import { ColumnDef } from "@atscript/ui";
3
3
  import * as vue from "vue";
4
4
  import { ColumnWidthEntry, FilterCondition } from "@atscript/ui-table";
@@ -1,4 +1,4 @@
1
- import { r as ColumnMenuConfig } from "./types-BCixOa8x.cjs";
1
+ import { r as ColumnMenuConfig } from "./types-D4dK49sA.cjs";
2
2
  import * as vue from "vue";
3
3
  import { ColumnDef } from "@atscript/ui";
4
4
  import { ColumnWidthEntry, FilterCondition } from "@atscript/ui-table";
@@ -1,8 +1,8 @@
1
- import { i as useRegisterMainActionListener, s as warnUnsupportedFilter, t as createStaticTableState } from "./use-table-state-BzjbnpBA.mjs";
2
- import { n as finalizeTableState, r as useTable } from "./use-table-2xPxoNRX.mjs";
3
- import { t as useTableNavBridge } from "./use-table-nav-bridge-BDBnRc4C.mjs";
1
+ import { c as warnUnsupportedFilter, i as useRegisterMainActionListener, s as warnFieldsDropped, t as createStaticTableState } from "./use-table-state-Cq-3tbVr.mjs";
2
+ import { n as finalizeTableState, r as useTable } from "./use-table-DlqGHjPh.mjs";
3
+ import { t as useTableNavBridge } from "./use-table-nav-bridge-CkQqimdS.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-CC6U8nLZ.mjs";
5
+ import { t as as_confirm_dialog_default } from "./as-confirm-dialog-C9Qat2rG.mjs";
6
6
  import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, defineAsyncComponent, defineComponent, mergeModels, openBlock, ref, renderSlot, resolveDynamicComponent, unref, useModel, watch } from "vue";
7
7
  import { DEV } from "@atscript/ui-table";
8
8
  //#endregion
@@ -166,7 +166,8 @@ var as_table_root_default = /* @__PURE__ */ defineComponent({
166
166
  emits: /* @__PURE__ */ mergeModels([
167
167
  "main-action",
168
168
  "action",
169
- "unsupported-filter"
169
+ "unsupported-filter",
170
+ "fields-dropped"
170
171
  ], [
171
172
  "update:filterFields",
172
173
  "update:columnNames",
@@ -259,6 +260,7 @@ var as_table_root_default = /* @__PURE__ */ defineComponent({
259
260
  return localState;
260
261
  }
261
262
  const hasUnsupportedFilterListener = useHasEmitListener("onUnsupportedFilter");
263
+ const hasFieldsDroppedListener = useHasEmitListener("onFieldsDropped");
262
264
  const state = localMode ? createLocalState() : useTable(props.url, {
263
265
  limit: props.limit,
264
266
  rowValueFn: props.rowValueFn,
@@ -292,6 +294,7 @@ var as_table_root_default = /* @__PURE__ */ defineComponent({
292
294
  onUrlQueryChange: urlQueryActive ? (s) => urlQuery.value = s : void 0,
293
295
  urlQuerySync: props.urlQuerySync,
294
296
  onUnsupportedFilter: (issue) => hasUnsupportedFilterListener.value ? emit("unsupported-filter", issue) : warnUnsupportedFilter(issue),
297
+ onFieldsDropped: (report) => hasFieldsDroppedListener.value ? emit("fields-dropped", report) : warnFieldsDropped(report),
295
298
  preset: props.preset,
296
299
  displayColumns: props.displayColumns
297
300
  });
@@ -1,8 +1,8 @@
1
- const require_use_table_state = require("./use-table-state-pF_9gnTG.cjs");
2
- const require_use_table = require("./use-table-B45WZLwg.cjs");
3
- const require_use_table_nav_bridge = require("./use-table-nav-bridge-DvrsPanF.cjs");
1
+ const require_use_table_state = require("./use-table-state-BiklfjP0.cjs");
2
+ const require_use_table = require("./use-table-yZNJTfRq.cjs");
3
+ const require_use_table_nav_bridge = require("./use-table-nav-bridge-QU4jKhqx.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-a736BLOm.cjs");
5
+ const require_as_confirm_dialog = require("./as-confirm-dialog-fCwo1ty9.cjs");
6
6
  let vue = require("vue");
7
7
  let _atscript_ui_table = require("@atscript/ui-table");
8
8
  //#endregion
@@ -166,7 +166,8 @@ var as_table_root_default = /* @__PURE__ */ (0, vue.defineComponent)({
166
166
  emits: /* @__PURE__ */ (0, vue.mergeModels)([
167
167
  "main-action",
168
168
  "action",
169
- "unsupported-filter"
169
+ "unsupported-filter",
170
+ "fields-dropped"
170
171
  ], [
171
172
  "update:filterFields",
172
173
  "update:columnNames",
@@ -259,6 +260,7 @@ var as_table_root_default = /* @__PURE__ */ (0, vue.defineComponent)({
259
260
  return localState;
260
261
  }
261
262
  const hasUnsupportedFilterListener = require_use_has_emit_listener.useHasEmitListener("onUnsupportedFilter");
263
+ const hasFieldsDroppedListener = require_use_has_emit_listener.useHasEmitListener("onFieldsDropped");
262
264
  const state = localMode ? createLocalState() : require_use_table.useTable(props.url, {
263
265
  limit: props.limit,
264
266
  rowValueFn: props.rowValueFn,
@@ -292,6 +294,7 @@ var as_table_root_default = /* @__PURE__ */ (0, vue.defineComponent)({
292
294
  onUrlQueryChange: urlQueryActive ? (s) => urlQuery.value = s : void 0,
293
295
  urlQuerySync: props.urlQuerySync,
294
296
  onUnsupportedFilter: (issue) => hasUnsupportedFilterListener.value ? emit("unsupported-filter", issue) : require_use_table_state.warnUnsupportedFilter(issue),
297
+ onFieldsDropped: (report) => hasFieldsDroppedListener.value ? emit("fields-dropped", report) : require_use_table_state.warnFieldsDropped(report),
295
298
  preset: props.preset,
296
299
  displayColumns: props.displayColumns
297
300
  });
@@ -1,2 +1,2 @@
1
- const require_as_table_root = require("./as-table-root-_58hdHAi.cjs");
1
+ const require_as_table_root = require("./as-table-root-DDeGktcl.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-D8hH1xGK.cjs";
1
+ import { t as _default } from "./as-table-root.vue-yZ7ZcwdT.cjs";
2
2
  export = _default;
@@ -1,2 +1,2 @@
1
- import { t as _default } from "./as-table-root.vue-DpPRMy3v.mjs";
1
+ import { t as _default } from "./as-table-root.vue-BGx453_Q.mjs";
2
2
  export { _default as default };
@@ -1,2 +1,2 @@
1
- import { t as as_table_root_default } from "./as-table-root-CG7bLzcQ.mjs";
1
+ import { t as as_table_root_default } from "./as-table-root-47hiBEnq.mjs";
2
2
  export { as_table_root_default as default };
@@ -1,4 +1,4 @@
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-D7qVxU_y.mjs";
1
+ import { D as TVueTableActionInfo, E as TAsTableControls, O as TableActionsState, T as TAsCellTypeComponents, a as ConfirmOptions, d as NavKeyOptions, f as PresetConfig, g as RowActionsConfig, k as TableNavBridge, m as ReactiveTableState, o as DroppedFieldsReport, t as ActionResult } from "./types-BU7J-a1r.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";
@@ -227,9 +227,13 @@ type TableSelectionOptions = SelectionApiOptions;
227
227
  interface TableQueryOptions {
228
228
  /** Override the default query function. */
229
229
  fn?: QueryFn;
230
- /** Always-applied Uniquery filter expression (AND'd with user filters). */
230
+ /**
231
+ * Always-applied Uniquery filter expression (AND'd with user filters).
232
+ * App-authored, so never pruned of fields the caller cannot see — keep it
233
+ * to fields every role reads, or the query is rejected.
234
+ */
231
235
  forceFilters?: FilterExpr;
232
- /** Always-applied sorters (prepended before user sorters). */
236
+ /** Always-applied sorters (prepended before user sorters). Never pruned, like `forceFilters`. */
233
237
  forceSorters?: SortControl[];
234
238
  /**
235
239
  * Leaf field paths always added to `$select` (deduped, gated by available
@@ -290,6 +294,16 @@ interface TableQueryOptions {
290
294
  * `urlQuerySync.residual` is not `false`); only the rest are reported.
291
295
  */
292
296
  onUnsupportedFilter?: (issue: UnsupportedFilter) => void;
297
+ /**
298
+ * Receives what the table left out because it names a field outside the
299
+ * columns this caller can use — a column hidden from their role, or gone
300
+ * from the schema. Presets (with the local draft) and restored URLs are
301
+ * pruned instead of failing the query; one report per apply, only when
302
+ * something was dropped. Anything else the query leaves out without a
303
+ * report. When omitted, each report is a dev-mode `console.warn`.
304
+ * Since 0.1.141.
305
+ */
306
+ onFieldsDropped?: (report: DroppedFieldsReport) => void;
293
307
  }
294
308
  interface TableWindowOptions {
295
309
  /** Page-alignment unit for `loadRange` and the `queryNext` extension. */
@@ -561,6 +575,11 @@ interface UseTableOptions {
561
575
  * Since 0.1.139.
562
576
  */
563
577
  onUnsupportedFilter?: (issue: UnsupportedFilter) => void;
578
+ /**
579
+ * Receives what the table left out because it names a field this caller
580
+ * cannot use — see `TableQueryOptions.onFieldsDropped`. Since 0.1.141.
581
+ */
582
+ onFieldsDropped?: (report: DroppedFieldsReport) => void;
564
583
  /**
565
584
  * Preset feature config — opt-in. Omit to disable presets entirely
566
585
  * (`<AsPresetPicker>` / `<AsPresetDialog>` render nothing). When set,
@@ -2421,7 +2440,12 @@ type __VLS_Props = {
2421
2440
  formTypes?: TAsTypeComponents; /** Named form-component overrides for the action-form dialog. */
2422
2441
  formComponents?: Record<string, Component$1>;
2423
2442
  limit?: number;
2424
- forceFilters?: FilterExpr;
2443
+ /**
2444
+ * Always-applied filter. App-authored: unlike presets and URLs it is
2445
+ * never pruned of fields the caller cannot see — keep it to fields every
2446
+ * role reads.
2447
+ */
2448
+ forceFilters?: FilterExpr; /** Always-applied sorters. Never pruned, like `forceFilters`. */
2425
2449
  forceSorters?: SortControl[];
2426
2450
  /**
2427
2451
  * Leaf field paths always added to `$select` (deduped, gated by available
@@ -2549,10 +2573,12 @@ declare const __VLS_base: vue.DefineComponent<__VLS_PublicProps, {
2549
2573
  } & {
2550
2574
  "main-action": (row: Record<string, unknown>, absIndex: number, event: MouseEvent | KeyboardEvent) => any;
2551
2575
  "unsupported-filter": (issue: UnsupportedFilter) => any;
2576
+ "fields-dropped": (report: DroppedFieldsReport) => any;
2552
2577
  action: (action: TVueTableActionInfo, ids: unknown[], result: ActionResult, event?: MouseEvent | KeyboardEvent | undefined) => any;
2553
2578
  }, string, vue.PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
2554
2579
  "onMain-action"?: ((row: Record<string, unknown>, absIndex: number, event: MouseEvent | KeyboardEvent) => any) | undefined;
2555
2580
  "onUnsupported-filter"?: ((issue: UnsupportedFilter) => any) | undefined;
2581
+ "onFields-dropped"?: ((report: DroppedFieldsReport) => any) | undefined;
2556
2582
  "onUpdate:filterFields"?: ((value: string[]) => any) | undefined;
2557
2583
  "onUpdate:columnNames"?: ((value: string[]) => any) | undefined;
2558
2584
  "onUpdate:columnWidths"?: ((value: ColumnWidthsMap) => any) | undefined;
@@ -1,10 +1,10 @@
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-BCixOa8x.cjs";
1
+ import { D as TVueTableActionInfo, E as TAsTableControls, O as TableActionsState, T as TAsCellTypeComponents, a as ConfirmOptions, d as NavKeyOptions, f as PresetConfig, g as RowActionsConfig, k as TableNavBridge, m as ReactiveTableState, o as DroppedFieldsReport, t as ActionResult } from "./types-D4dK49sA.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
- import { Client, PageResult } from "@atscript/db-client";
5
- import { FilterExpr, Uniquery } from "@uniqu/core";
6
4
  import * as _atscript_ui0 from "@atscript/ui";
7
5
  import { ClientFactory, ClientFactory as ClientFactory$1, ColumnDef, SortControl, TableDef, getDefaultClientFactory, resetDefaultClientFactory, setDefaultClientFactory } from "@atscript/ui";
6
+ import { Client, PageResult } from "@atscript/db-client";
7
+ import { FilterExpr, Uniquery } from "@uniqu/core";
8
8
  import * as _atscript_ui_table0 from "@atscript/ui-table";
9
9
  import { AppConfData, AppConfData as AppConfData$1, AsPresetEntryRow, AsPresetEntryRow as AsPresetEntryRow$1, ColumnWidthsMap, CsvOptions, CsvOptions as CsvOptions$1, DisplayColumnDef, DisplayColumnDef as DisplayColumnDef$1, ExportAbortError, ExportScalar, ExportScalar as ExportScalar$1, FilterCondition, PRESET_ASPECTS, PresetAspect, PresetAspect as PresetAspect$1, PresetCapabilities, PresetCapabilities as PresetCapabilities$1, PresetData, PresetDraft, PresetSnapshot, PresetSnapshot as PresetSnapshot$1, PresetSnapshotWire, QueryOptions, STANDARD_PRESET_ID, SYSTEM_PRESET_PREFIX, SelectionMode, SystemPreset, SystemPreset as SystemPreset$1, SystemPresetInput, SystemPresetInput as SystemPresetInput$1, UnsupportedFilter, UrlQuerySync, UrlQuerySync as UrlQuerySync$1, UserConfData, isSystemPresetId, resolveSystemPresets } from "@atscript/ui-table";
10
10
  import { TAsTypeComponents } from "@atscript/vue-form";
@@ -227,9 +227,13 @@ type TableSelectionOptions = SelectionApiOptions;
227
227
  interface TableQueryOptions {
228
228
  /** Override the default query function. */
229
229
  fn?: QueryFn;
230
- /** Always-applied Uniquery filter expression (AND'd with user filters). */
230
+ /**
231
+ * Always-applied Uniquery filter expression (AND'd with user filters).
232
+ * App-authored, so never pruned of fields the caller cannot see — keep it
233
+ * to fields every role reads, or the query is rejected.
234
+ */
231
235
  forceFilters?: FilterExpr;
232
- /** Always-applied sorters (prepended before user sorters). */
236
+ /** Always-applied sorters (prepended before user sorters). Never pruned, like `forceFilters`. */
233
237
  forceSorters?: SortControl[];
234
238
  /**
235
239
  * Leaf field paths always added to `$select` (deduped, gated by available
@@ -290,6 +294,16 @@ interface TableQueryOptions {
290
294
  * `urlQuerySync.residual` is not `false`); only the rest are reported.
291
295
  */
292
296
  onUnsupportedFilter?: (issue: UnsupportedFilter) => void;
297
+ /**
298
+ * Receives what the table left out because it names a field outside the
299
+ * columns this caller can use — a column hidden from their role, or gone
300
+ * from the schema. Presets (with the local draft) and restored URLs are
301
+ * pruned instead of failing the query; one report per apply, only when
302
+ * something was dropped. Anything else the query leaves out without a
303
+ * report. When omitted, each report is a dev-mode `console.warn`.
304
+ * Since 0.1.141.
305
+ */
306
+ onFieldsDropped?: (report: DroppedFieldsReport) => void;
293
307
  }
294
308
  interface TableWindowOptions {
295
309
  /** Page-alignment unit for `loadRange` and the `queryNext` extension. */
@@ -561,6 +575,11 @@ interface UseTableOptions {
561
575
  * Since 0.1.139.
562
576
  */
563
577
  onUnsupportedFilter?: (issue: UnsupportedFilter) => void;
578
+ /**
579
+ * Receives what the table left out because it names a field this caller
580
+ * cannot use — see `TableQueryOptions.onFieldsDropped`. Since 0.1.141.
581
+ */
582
+ onFieldsDropped?: (report: DroppedFieldsReport) => void;
564
583
  /**
565
584
  * Preset feature config — opt-in. Omit to disable presets entirely
566
585
  * (`<AsPresetPicker>` / `<AsPresetDialog>` render nothing). When set,
@@ -2421,7 +2440,12 @@ type __VLS_Props = {
2421
2440
  formTypes?: TAsTypeComponents; /** Named form-component overrides for the action-form dialog. */
2422
2441
  formComponents?: Record<string, Component$1>;
2423
2442
  limit?: number;
2424
- forceFilters?: FilterExpr;
2443
+ /**
2444
+ * Always-applied filter. App-authored: unlike presets and URLs it is
2445
+ * never pruned of fields the caller cannot see — keep it to fields every
2446
+ * role reads.
2447
+ */
2448
+ forceFilters?: FilterExpr; /** Always-applied sorters. Never pruned, like `forceFilters`. */
2425
2449
  forceSorters?: SortControl[];
2426
2450
  /**
2427
2451
  * Leaf field paths always added to `$select` (deduped, gated by available
@@ -2549,10 +2573,12 @@ declare const __VLS_base: vue.DefineComponent<__VLS_PublicProps, {
2549
2573
  } & {
2550
2574
  "main-action": (row: Record<string, unknown>, absIndex: number, event: MouseEvent | KeyboardEvent) => any;
2551
2575
  "unsupported-filter": (issue: UnsupportedFilter) => any;
2576
+ "fields-dropped": (report: DroppedFieldsReport) => any;
2552
2577
  action: (action: TVueTableActionInfo, ids: unknown[], result: ActionResult, event?: MouseEvent | KeyboardEvent | undefined) => any;
2553
2578
  }, string, vue.PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
2554
2579
  "onMain-action"?: ((row: Record<string, unknown>, absIndex: number, event: MouseEvent | KeyboardEvent) => any) | undefined;
2555
2580
  "onUnsupported-filter"?: ((issue: UnsupportedFilter) => any) | undefined;
2581
+ "onFields-dropped"?: ((report: DroppedFieldsReport) => any) | undefined;
2556
2582
  "onUpdate:filterFields"?: ((value: string[]) => any) | undefined;
2557
2583
  "onUpdate:columnNames"?: ((value: string[]) => any) | undefined;
2558
2584
  "onUpdate:columnWidths"?: ((value: ColumnWidthsMap) => any) | undefined;
package/dist/as-table.cjs CHANGED
@@ -1,2 +1,2 @@
1
- const require_as_table = require("./as-table-ouPxssqv.cjs");
1
+ const require_as_table = require("./as-table-ay1yel3u.cjs");
2
2
  module.exports = require_as_table.as_table_default;
@@ -1,2 +1,2 @@
1
- import { t as _default } from "./as-table.vue-Bv6sKnL5.cjs";
1
+ import { t as _default } from "./as-table.vue-CwI5Z0y5.cjs";
2
2
  export = _default;
@@ -1,2 +1,2 @@
1
- import { t as _default } from "./as-table.vue-CudFoZTF.mjs";
1
+ import { t as _default } from "./as-table.vue-wdFf4hMW.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-B49x0hDM.mjs";
1
+ import { t as as_table_default } from "./as-table-NHqyekNd.mjs";
2
2
  export { as_table_default as default };
@@ -1,6 +1,6 @@
1
- import { _ as RowClassHook, b as RowSelectableHook, g as RowAttrsHook, m as RowActionsColumnPlacement, r as ColumnMenuConfig, v as RowDeleteOpt } from "./types-D7qVxU_y.mjs";
2
- import { ColumnDef } from "@atscript/ui";
1
+ import { _ as RowAttrsHook, h as RowActionsColumnPlacement, r as ColumnMenuConfig, v as RowClassHook, w as SelectOn, x as RowSelectableHook, y as RowDeleteOpt } from "./types-D4dK49sA.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
@@ -22,7 +22,8 @@ type __VLS_Props = {
22
22
  * flipping `select` to `"none"` hides the checkbox UI but leaves the
23
23
  * user's selected pks in place, surviving a future re-enable.
24
24
  */
25
- select?: SelectionMode;
25
+ select?: SelectionMode; /** See {@link SelectOn}. Since 0.1.142. */
26
+ selectOn?: SelectOn;
26
27
  /**
27
28
  * Built-in row-delete: `false` (off, default), `true` (on with defaults),
28
29
  * or a `RowDeleteOpt` overriding label/icon/intent/promptText. The
@@ -79,28 +80,29 @@ type __VLS_Props = {
79
80
  */
80
81
  rowAttrs?: RowAttrsHook;
81
82
  };
82
- declare var __VLS_21: string, __VLS_22: any, __VLS_24: {};
83
- type __VLS_Slots = {} & { [K in NonNullable<typeof __VLS_21>]?: (props: typeof __VLS_22) => any } & {
84
- 'query-loading'?: (props: typeof __VLS_24) => any;
83
+ declare var __VLS_19: string, __VLS_20: any, __VLS_22: {};
84
+ type __VLS_Slots = {} & { [K in NonNullable<typeof __VLS_19>]?: (props: typeof __VLS_20) => any } & {
85
+ 'query-loading'?: (props: typeof __VLS_22) => any;
85
86
  };
86
87
  declare const __VLS_base: vue.DefineComponent<__VLS_Props, {}, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {} & {
88
+ "main-action": (row: Record<string, unknown>, absIndex: number, event: MouseEvent | KeyboardEvent) => any;
87
89
  "row-click": (row: Record<string, unknown>, event: MouseEvent) => any;
88
90
  "row-dblclick": (row: Record<string, unknown>, event: MouseEvent) => any;
89
- "main-action": (row: Record<string, unknown>, absIndex: number, event: MouseEvent | KeyboardEvent) => any;
90
91
  }, string, vue.PublicProps, Readonly<__VLS_Props> & Readonly<{
92
+ "onMain-action"?: ((row: Record<string, unknown>, absIndex: number, event: MouseEvent | KeyboardEvent) => any) | undefined;
91
93
  "onRow-click"?: ((row: Record<string, unknown>, event: MouseEvent) => any) | undefined;
92
94
  "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
95
  }>, {
95
- stickyHeader: boolean;
96
- virtualOverscan: number;
96
+ select: SelectionMode;
97
+ selectOn: SelectOn;
97
98
  reorderable: boolean;
98
99
  resizable: boolean;
99
100
  columnMinWidth: number;
100
- select: SelectionMode;
101
101
  rowDelete: boolean | RowDeleteOpt;
102
102
  rowActionsColumn: RowActionsColumnPlacement | false;
103
103
  headless: boolean;
104
+ stickyHeader: boolean;
105
+ virtualOverscan: number;
104
106
  }, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
105
107
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
106
108
  declare const _default: typeof __VLS_export;
@@ -1,6 +1,6 @@
1
- import { _ as RowClassHook, b as RowSelectableHook, g as RowAttrsHook, m as RowActionsColumnPlacement, r as ColumnMenuConfig, v as RowDeleteOpt } from "./types-BCixOa8x.cjs";
2
- import * as vue from "vue";
1
+ import { _ as RowAttrsHook, h as RowActionsColumnPlacement, r as ColumnMenuConfig, v as RowClassHook, w as SelectOn, x as RowSelectableHook, y as RowDeleteOpt } from "./types-BU7J-a1r.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
@@ -22,7 +22,8 @@ type __VLS_Props = {
22
22
  * flipping `select` to `"none"` hides the checkbox UI but leaves the
23
23
  * user's selected pks in place, surviving a future re-enable.
24
24
  */
25
- select?: SelectionMode;
25
+ select?: SelectionMode; /** See {@link SelectOn}. Since 0.1.142. */
26
+ selectOn?: SelectOn;
26
27
  /**
27
28
  * Built-in row-delete: `false` (off, default), `true` (on with defaults),
28
29
  * or a `RowDeleteOpt` overriding label/icon/intent/promptText. The
@@ -79,28 +80,29 @@ type __VLS_Props = {
79
80
  */
80
81
  rowAttrs?: RowAttrsHook;
81
82
  };
82
- declare var __VLS_21: string, __VLS_22: any, __VLS_24: {};
83
- type __VLS_Slots = {} & { [K in NonNullable<typeof __VLS_21>]?: (props: typeof __VLS_22) => any } & {
84
- 'query-loading'?: (props: typeof __VLS_24) => any;
83
+ declare var __VLS_19: string, __VLS_20: any, __VLS_22: {};
84
+ type __VLS_Slots = {} & { [K in NonNullable<typeof __VLS_19>]?: (props: typeof __VLS_20) => any } & {
85
+ 'query-loading'?: (props: typeof __VLS_22) => any;
85
86
  };
86
87
  declare const __VLS_base: vue.DefineComponent<__VLS_Props, {}, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {} & {
88
+ "main-action": (row: Record<string, unknown>, absIndex: number, event: MouseEvent | KeyboardEvent) => any;
87
89
  "row-click": (row: Record<string, unknown>, event: MouseEvent) => any;
88
90
  "row-dblclick": (row: Record<string, unknown>, event: MouseEvent) => any;
89
- "main-action": (row: Record<string, unknown>, absIndex: number, event: MouseEvent | KeyboardEvent) => any;
90
91
  }, string, vue.PublicProps, Readonly<__VLS_Props> & Readonly<{
92
+ "onMain-action"?: ((row: Record<string, unknown>, absIndex: number, event: MouseEvent | KeyboardEvent) => any) | undefined;
91
93
  "onRow-click"?: ((row: Record<string, unknown>, event: MouseEvent) => any) | undefined;
92
94
  "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
95
  }>, {
95
- stickyHeader: boolean;
96
- virtualOverscan: number;
96
+ select: SelectionMode;
97
+ selectOn: SelectOn;
97
98
  reorderable: boolean;
98
99
  resizable: boolean;
99
100
  columnMinWidth: number;
100
- select: SelectionMode;
101
101
  rowDelete: boolean | RowDeleteOpt;
102
102
  rowActionsColumn: RowActionsColumnPlacement | false;
103
103
  headless: boolean;
104
+ stickyHeader: boolean;
105
+ virtualOverscan: number;
104
106
  }, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
105
107
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
106
108
  declare const _default: typeof __VLS_export;