@stonecrop/atable 0.13.14 → 0.14.0

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.
@@ -1 +1 @@
1
- {"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../../src/stores/table.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../../src/stores/table.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,aAAa,EAAiB,MAAM,KAAK,CAAA;AAEvD,OAAO,KAAK,EACX,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,cAAc,EACd,WAAW,EACX,WAAW,EACX,YAAY,EACZ,UAAU,EACV,QAAQ,EACR,MAAM,UAAU,CAAA;AAGjB;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC3B,4BAA4B;IAC5B,KAAK,EAAE,GAAG,CAAA;IACV,yCAAyC;IACzC,UAAU,CAAC,EAAE,GAAG,CAAA;IAChB,uCAAuC;IACvC,QAAQ,CAAC,EAAE,GAAG,CAAA;CACd;AAED;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;AA+F3D;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAMxE;AAED;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,GAAI,UAAU;IAC1C,OAAO,EAAE,WAAW,EAAE,CAAA;IACtB,IAAI,EAAE,QAAQ,EAAE,CAAA;IAChB,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,KAAK,CAAC,EAAE,UAAU,CAAA;IAClB,YAAY,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC,GAAG,IAAI,CAAA;CACpF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBA6IiC,MAAM,GAAG,IAAI;mBAAa,KAAK,GAAG,MAAM,GAAG,IAAI;;gBAA/C,MAAM,GAAG,IAAI;mBAAa,KAAK,GAAG,MAAM,GAAG,IAAI;;gBAA/C,MAAM,GAAG,IAAI;mBAAa,KAAK,GAAG,MAAM,GAAG,IAAI;;;;;uBA2B9B,MAAM;;;;;;;;6BAzK9B,MAAM,MAAM,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;uBA8hBjD,OAAO,CAAC,QAAQ,CAAC,aAAY,OAAO,GAAG,KAAK,GAAG,MAAM,KAAW,MAAM;4BAZjE,MAAM;wBAnJV,UAAU;qCAqEtB,MAAM,cACR,MAAM,YACR;QAAE,KAAK,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE;qCA4BtB,MAAM;0BA4FjB,MAAM,KAAG,QAAQ,GAAG,IAAI;6BA4CrB,MAAM,KAAG,MAAM;4BAxYhB,MAAM,YAAY,MAAM,KAAG,GAAG;oCA6HtB,MAAM,YAAY,MAAM;kCA4I1B,MAAM;;;;;;;;;;;;;;;;kCAvIN,MAAM,YAAY,MAAM,SAAS,GAAG;8BA2IxC,MAAM;;;;;;;;;;;;iCA/OH,WAAW,KAAG,aAAa;mCAwCzB,MAAM;+BAwVV,MAAM,YAAY,OAAO,CAAC,QAAQ,CAAC,KAAG,MAAM;+BAW5C,MAAM,YAAY,OAAO,CAAC,QAAQ,CAAC,KAAG,MAAM;2BA5WhD,MAAM;6BAKJ,MAAM;yBAkXV,MAAM,WAAW,MAAM,KAAG,OAAO;2CArOf,gBAAgB;gCAlB3B,YAAY;6BA5If,MAAM,YAAY,MAAM;4BAhDzB,MAAM,YAAY,MAAM,SAAS,GAAG;4BAoBpC,MAAM,YAAY,MAAM,SAAS,MAAM;0BAkRzC,MAAM,UAAU,WAAW;6BAtBxB,MAAM;gCA3LH,MAAM;2CAoIK,MAAM;gCAlBjB,MAAM;4BAjCV,cAAc;0BAtJhB,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBArGP,MAAM,GAAG,IAAI;mBAAa,KAAK,GAAG,MAAM,GAAG,IAAI;;gBAA/C,MAAM,GAAG,IAAI;mBAAa,KAAK,GAAG,MAAM,GAAG,IAAI;;gBAA/C,MAAM,GAAG,IAAI;mBAAa,KAAK,GAAG,MAAM,GAAG,IAAI;;;;;uBA2B9B,MAAM;;;;;;;;6BAzK9B,MAAM,MAAM,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;uBA8hBjD,OAAO,CAAC,QAAQ,CAAC,aAAY,OAAO,GAAG,KAAK,GAAG,MAAM,KAAW,MAAM;4BAZjE,MAAM;wBAnJV,UAAU;qCAqEtB,MAAM,cACR,MAAM,YACR;QAAE,KAAK,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE;qCA4BtB,MAAM;0BA4FjB,MAAM,KAAG,QAAQ,GAAG,IAAI;6BA4CrB,MAAM,KAAG,MAAM;4BAxYhB,MAAM,YAAY,MAAM,KAAG,GAAG;oCA6HtB,MAAM,YAAY,MAAM;kCA4I1B,MAAM;;;;;;;;;;;;;;;;kCAvIN,MAAM,YAAY,MAAM,SAAS,GAAG;8BA2IxC,MAAM;;;;;;;;;;;;iCA/OH,WAAW,KAAG,aAAa;mCAwCzB,MAAM;+BAwVV,MAAM,YAAY,OAAO,CAAC,QAAQ,CAAC,KAAG,MAAM;+BAW5C,MAAM,YAAY,OAAO,CAAC,QAAQ,CAAC,KAAG,MAAM;2BA5WhD,MAAM;6BAKJ,MAAM;yBAkXV,MAAM,WAAW,MAAM,KAAG,OAAO;2CArOf,gBAAgB;gCAlB3B,YAAY;6BA5If,MAAM,YAAY,MAAM;4BAhDzB,MAAM,YAAY,MAAM,SAAS,GAAG;4BAoBpC,MAAM,YAAY,MAAM,SAAS,MAAM;0BAkRzC,MAAM,UAAU,WAAW;6BAtBxB,MAAM;gCA3LH,MAAM;2CAoIK,MAAM;gCAlBjB,MAAM;4BAjCV,cAAc;0BAtJhB,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBArGP,MAAM,GAAG,IAAI;mBAAa,KAAK,GAAG,MAAM,GAAG,IAAI;;gBAA/C,MAAM,GAAG,IAAI;mBAAa,KAAK,GAAG,MAAM,GAAG,IAAI;;gBAA/C,MAAM,GAAG,IAAI;mBAAa,KAAK,GAAG,MAAM,GAAG,IAAI;;;;;uBA2B9B,MAAM;;;;;;;;6BAzK9B,MAAM,MAAM,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;uBA8hBjD,OAAO,CAAC,QAAQ,CAAC,aAAY,OAAO,GAAG,KAAK,GAAG,MAAM,KAAW,MAAM;4BAZjE,MAAM;wBAnJV,UAAU;qCAqEtB,MAAM,cACR,MAAM,YACR;QAAE,KAAK,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE;qCA4BtB,MAAM;0BA4FjB,MAAM,KAAG,QAAQ,GAAG,IAAI;6BA4CrB,MAAM,KAAG,MAAM;4BAxYhB,MAAM,YAAY,MAAM,KAAG,GAAG;oCA6HtB,MAAM,YAAY,MAAM;kCA4I1B,MAAM;;;;;;;;;;;;;;;;kCAvIN,MAAM,YAAY,MAAM,SAAS,GAAG;8BA2IxC,MAAM;;;;;;;;;;;;iCA/OH,WAAW,KAAG,aAAa;mCAwCzB,MAAM;+BAwVV,MAAM,YAAY,OAAO,CAAC,QAAQ,CAAC,KAAG,MAAM;+BAW5C,MAAM,YAAY,OAAO,CAAC,QAAQ,CAAC,KAAG,MAAM;2BA5WhD,MAAM;6BAKJ,MAAM;yBAkXV,MAAM,WAAW,MAAM,KAAG,OAAO;2CArOf,gBAAgB;gCAlB3B,YAAY;6BA5If,MAAM,YAAY,MAAM;4BAhDzB,MAAM,YAAY,MAAM,SAAS,GAAG;4BAoBpC,MAAM,YAAY,MAAM,SAAS,MAAM;0BAkRzC,MAAM,UAAU,WAAW;6BAtBxB,MAAM;gCA3LH,MAAM;2CAoIK,MAAM;gCAlBjB,MAAM;4BAjCV,cAAc;0BAtJhB,QAAQ,EAAE;+kBAuiBxC,CAAA"}
@@ -1,4 +1,5 @@
1
1
  import { defineStore } from 'pinia';
2
+ import { componentCategory } from '@stonecrop/schema';
2
3
  import { computed, ref } from 'vue';
3
4
  import { generateHash } from '../utils';
4
5
  function isNodeOpen(rowIndex, treeDisplay) {
@@ -84,7 +85,12 @@ function applyFilter(cellValue, filter, column) {
84
85
  return true;
85
86
  }
86
87
  }
87
- function getIndent(colIndex, indentLevel) {
88
+ /**
89
+ * Compute the CSS indentation for a tree-table cell. Pure helper (captures no store state);
90
+ * imported directly by cell components rather than exposed on the store's public return.
91
+ * @internal
92
+ */
93
+ export function getIndent(colIndex, indentLevel) {
88
94
  if (indentLevel && colIndex === 0 && indentLevel > 0) {
89
95
  return `${indentLevel}ch`;
90
96
  }
@@ -404,16 +410,16 @@ export const createTableStore = (initData) => {
404
410
  const row = rows.value[rowIndex];
405
411
  const format = column.format;
406
412
  if (!format) {
407
- switch (column.fieldtype) {
408
- case 'Check':
409
- return value ? '✓' : '✗';
410
- case 'Date':
411
- return value != null ? new Date(String(value)).toLocaleDateString() : value;
412
- case 'Datetime':
413
- return value != null ? new Date(String(value)).toLocaleString() : value;
414
- default:
415
- return value;
416
- }
413
+ // Default cell formatting comes from the component's category; anything without an
414
+ // opinion (including an unknown component) renders the raw value.
415
+ const category = componentCategory(column.component);
416
+ if (category === 'boolean')
417
+ return value ? '✓' : '✗';
418
+ if (category === 'date')
419
+ return value != null ? new Date(String(value)).toLocaleDateString() : value;
420
+ if (category === 'datetime')
421
+ return value != null ? new Date(String(value)).toLocaleString() : value;
422
+ return value;
417
423
  }
418
424
  if (typeof format === 'function') {
419
425
  return format(value, { table: table.value, row, column });
@@ -775,7 +781,6 @@ export const createTableStore = (initData) => {
775
781
  getFormattedValue,
776
782
  getHandlesForBar,
777
783
  getHeaderCellStyle,
778
- getIndent,
779
784
  getRowExpandSymbol,
780
785
  insertRowAbove,
781
786
  insertRowBelow,
@@ -5,7 +5,7 @@ import { createTableStore } from '../stores/table';
5
5
  /**
6
6
  * Runtime column definition for ATable.
7
7
  *
8
- * Extends `ColumnSchema` from `@stonecrop/schema` — all authoring properties (`label`, `fieldtype`, `width`,
8
+ * Extends `ColumnSchema` from `@stonecrop/schema` — all authoring properties (`label`, `component`, `width`,
9
9
  * `pinned`, filter config, cell/modal component names, etc.) are inherited. The overrides
10
10
  * below widen three properties for runtime use (live functions, broader alignment values)
11
11
  * and add two runtime-only additions (`mask`, `originalIndex`).
@@ -38,7 +38,7 @@ export interface TableColumn extends Omit<ColumnSchema, 'fieldname' | 'hidden' |
38
38
  */
39
39
  mask?: (value: any) => any;
40
40
  /**
41
- * For `fieldtype: 'Link'` columns: the target doctype slug used by the `linkResolver`
41
+ * For link columns (those carrying `doctype`): the target doctype slug used by the `linkResolver`
42
42
  * to look up display text for bare ID values. Set automatically by `schemaToColumns`
43
43
  * from the field's `doctype` property.
44
44
  */
@@ -73,7 +73,7 @@ export interface CellContext {
73
73
  * Row action type identifiers.
74
74
  * @public
75
75
  */
76
- export type RowActionType = 'open' | 'add' | 'delete' | 'duplicate' | 'insertAbove' | 'insertBelow' | 'move';
76
+ export type RowActionType = 'open' | 'add' | 'delete' | 'duplicate' | 'insertAbove' | 'insertBelow' | 'move' | 'moveUp' | 'moveDown';
77
77
  /**
78
78
  * Options for configuring individual row actions.
79
79
  * @public
@@ -101,6 +101,15 @@ export interface RowActionOptions {
101
101
  * @returns void or false to prevent default behavior
102
102
  */
103
103
  handler?: (rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean;
104
+ /**
105
+ * Per-row predicate to disable this action for specific rows (e.g. a lock-aware delete, or
106
+ * move-up on the first row). Returns true to render the action disabled. Evaluated reactively
107
+ * against the store, so it updates as rows change.
108
+ *
109
+ * @param rowIndex - The index of the row
110
+ * @param store - The table store instance
111
+ */
112
+ disabled?: (rowIndex: number, store: ReturnType<typeof createTableStore>) => boolean;
104
113
  }
105
114
  /**
106
115
  * Configuration for row-level actions (add, delete, duplicate, etc.).
@@ -144,6 +153,8 @@ export interface RowActionsConfig {
144
153
  insertAbove?: boolean | RowActionOptions;
145
154
  insertBelow?: boolean | RowActionOptions;
146
155
  move?: boolean | RowActionOptions;
156
+ moveUp?: boolean | RowActionOptions;
157
+ moveDown?: boolean | RowActionOptions;
147
158
  };
148
159
  }
149
160
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stonecrop/atable",
3
- "version": "0.13.14",
3
+ "version": "0.14.0",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "author": {
@@ -35,9 +35,9 @@
35
35
  "dependencies": {
36
36
  "@vueuse/components": "^14.2.1",
37
37
  "@vueuse/core": "^14.2.1",
38
- "@stonecrop/schema": "0.13.14",
39
- "@stonecrop/themes": "0.13.14",
40
- "@stonecrop/utilities": "0.13.14"
38
+ "@stonecrop/schema": "0.14.0",
39
+ "@stonecrop/utilities": "0.14.0",
40
+ "@stonecrop/themes": "0.14.0"
41
41
  },
42
42
  "peerDependencies": {
43
43
  "pinia": "^3.0.4",
@@ -61,6 +61,7 @@
61
61
  "vitest": "^4.1.5",
62
62
  "vue": "^3.5.33",
63
63
  "vue-router": "^5.0.6",
64
+ "vue-tsc": "^3.3.6",
64
65
  "stonecrop-rig": "0.7.0"
65
66
  },
66
67
  "publishConfig": {
@@ -78,6 +79,7 @@
78
79
  "lint:fix": "oxlint --fix",
79
80
  "preview": "vite preview",
80
81
  "test": "vitest run --coverage.enabled false",
82
+ "test:types": "vue-tsc --noEmit",
81
83
  "test:watch": "vitest watch",
82
84
  "test:coverage": "vitest run --coverage",
83
85
  "test:ui": "vitest --ui"
@@ -29,7 +29,7 @@ import { KeypressHandlers, defaultKeypressHandlers, useKeyboardNav } from '@ston
29
29
  import { useDebounceFn, useElementBounding } from '@vueuse/core'
30
30
  import { computed, type CSSProperties, onMounted, ref, useTemplateRef, nextTick } from 'vue'
31
31
 
32
- import { createTableStore } from '../stores/table'
32
+ import { createTableStore, getIndent } from '../stores/table'
33
33
  import { isHtmlString } from '../utils'
34
34
 
35
35
  const {
@@ -104,7 +104,7 @@ const cellStyle = computed((): CSSProperties => {
104
104
  textAlign,
105
105
  width: cellWidth,
106
106
  fontWeight: !cellModified.value ? 'inherit' : 'bold',
107
- paddingLeft: store.getIndent(colIndex, store.display[rowIndex]?.indent),
107
+ paddingLeft: getIndent(colIndex, store.display[rowIndex]?.indent),
108
108
  }
109
109
  })
110
110
 
@@ -136,15 +136,19 @@ const showModal = () => {
136
136
  state.modal.visible = true
137
137
  state.modal.colIndex = colIndex
138
138
  state.modal.rowIndex = rowIndex
139
- // TODO: typing refs somehow resolves to unref'd value; probably a bug in TS?
140
- state.modal.left = left
141
- state.modal.bottom = bottom
142
- state.modal.width = width
143
- state.modal.height = height
139
+ // Snapshot the cell's box as it was when the modal opened. These are refs, and assigning
140
+ // them raw happened to work only because reactive reads unwrap refs — which also left the
141
+ // stored values live, tracking the cell for as long as the modal stayed open.
142
+ state.modal.left = left.value
143
+ state.modal.bottom = bottom.value
144
+ state.modal.width = width.value
145
+ state.modal.height = height.value
144
146
  state.modal.cell = cellRef.value
145
147
 
146
148
  if (typeof column.modalComponent === 'function') {
147
- state.modal.component = column.modalComponent({ table: state.table, row, column })
149
+ // `table` is a computed, so Pinia exposes it as a getter — it is not on `$state`, which
150
+ // is what $patch hands back. Reading it off the store is what passes a real table.
151
+ state.modal.component = column.modalComponent({ table: store.table, row, column })
148
152
  } else {
149
153
  state.modal.component = column.modalComponent
150
154
  }
@@ -314,8 +318,6 @@ defineExpose({
314
318
  </script>
315
319
 
316
320
  <style>
317
- @import url('@stonecrop/themes/default.css');
318
-
319
321
  .atable-cell {
320
322
  border-radius: 0px;
321
323
  box-sizing: border-box;
@@ -1,6 +1,7 @@
1
1
  <template>
2
2
  <tr
3
3
  v-show="isRowVisible"
4
+ v-bind="$attrs"
4
5
  ref="rowEl"
5
6
  :tabindex="tabIndex"
6
7
  class="atable-row"
@@ -32,6 +33,14 @@
32
33
  @click="store.toggleRowExpand(rowIndex)">
33
34
  {{ rowExpandSymbol }}
34
35
  </td>
36
+ <td
37
+ v-else-if="store.config.view === 'list-expansion'"
38
+ :tabIndex="-1"
39
+ class="expansion-index"
40
+ :class="store.hasPinnedColumns ? 'sticky-index' : ''"
41
+ @click="store.toggleRowExpand(rowIndex)">
42
+ {{ rowExpandSymbol }}
43
+ </td>
35
44
  </slot>
36
45
 
37
46
  <!-- Row actions after index -->
@@ -55,6 +64,13 @@
55
64
  :position="actionsPosition"
56
65
  @action="onRowAction" />
57
66
  </tr>
67
+
68
+ <!-- list-expansion content panel: a second row spanning the whole width -->
69
+ <tr v-if="isExpanded" :tabindex="tabIndex" class="atable-expanded-row">
70
+ <td :tabIndex="-1" :colspan="expandedColspan" class="atable-expanded-content">
71
+ <slot name="content" :row="store.rows[rowIndex]" :row-index="rowIndex" :store="store" />
72
+ </td>
73
+ </tr>
58
74
  </template>
59
75
 
60
76
  <script setup lang="ts">
@@ -101,24 +117,49 @@ const actionsPosition = computed(() => {
101
117
  return rowActionsConfig.value.position || 'before-index'
102
118
  })
103
119
 
120
+ // list-expansion: this row owns an expandable content panel (a second <tr>).
121
+ const isExpanded = computed(() => store.config.view === 'list-expansion' && Boolean(store.display[rowIndex]?.expanded))
122
+
123
+ // The content panel spans every column the main row occupies: data columns + the
124
+ // index/chevron column (absent only in uncounted) + the row-actions column when enabled.
125
+ const expandedColspan = computed(() => {
126
+ const indexCol = store.config.view === 'uncounted' ? 0 : 1
127
+ const actionsCol = showRowActions.value ? 1 : 0
128
+ return store.columns.length + indexCol + actionsCol
129
+ })
130
+
104
131
  const onRowAction = (actionType: RowActionType, index: number, event?: MouseEvent) => {
105
132
  emit('row:action', actionType, index, event)
106
133
  }
107
134
 
108
135
  const onRowClick = (event: MouseEvent) => {
109
- // Ignore clicks on the row actions cell or tree expand cell
136
+ // Ignore clicks on the row actions cell or an expand/collapse chevron (tree or list-expansion),
137
+ // so toggling a chevron never doubles as a row-click navigation.
110
138
  const target = event.target as HTMLElement
111
- if (target.closest('.atable-row-actions') || target.closest('.tree-index')) return
139
+ if (target.closest('.atable-row-actions') || target.closest('.tree-index') || target.closest('.expansion-index'))
140
+ return
112
141
  emit('row:click', rowIndex, event)
113
142
  }
114
143
 
115
- if (addNavigation) {
116
- let handlers = defaultKeypressHandlers
144
+ // A list-expansion row always binds Ctrl+G to toggle its own panel while opt-in
145
+ // cell navigation stays gated on `addNavigation` (default off), so other view
146
+ // types are unchanged.
147
+ const isListExpansion = store.config.view === 'list-expansion'
117
148
 
118
- if (typeof addNavigation === 'object') {
119
- handlers = {
120
- ...handlers,
121
- ...addNavigation,
149
+ if (addNavigation || isListExpansion) {
150
+ let handlers: KeypressHandlers = {}
151
+
152
+ if (addNavigation === true) {
153
+ handlers = { ...defaultKeypressHandlers }
154
+ } else if (typeof addNavigation === 'object') {
155
+ handlers = { ...defaultKeypressHandlers, ...addNavigation }
156
+ }
157
+
158
+ if (isListExpansion && !handlers['keydown.control.g']) {
159
+ handlers['keydown.control.g'] = (event: KeyboardEvent) => {
160
+ event.stopPropagation()
161
+ event.preventDefault()
162
+ store.toggleRowExpand(rowIndex)
122
163
  }
123
164
  }
124
165
 
@@ -132,8 +173,6 @@ if (addNavigation) {
132
173
  </script>
133
174
 
134
175
  <style>
135
- @import url('@stonecrop/themes/default.css');
136
-
137
176
  .atable-row {
138
177
  background-color: white;
139
178
  }
@@ -174,16 +213,27 @@ if (addNavigation) {
174
213
  padding-bottom: var(--sc-atable-row-padding);
175
214
  }
176
215
 
177
- .tree-index {
216
+ .tree-index,
217
+ .expansion-index {
178
218
  color: var(--sc-header-text-color);
179
219
  font-weight: bold;
180
220
  text-align: center;
181
221
  user-select: none;
182
222
  width: 2ch;
183
223
  box-sizing: border-box;
224
+ cursor: pointer;
184
225
  padding-top: var(--sc-atable-row-padding);
185
226
  padding-bottom: var(--sc-atable-row-padding);
186
227
  }
228
+
229
+ .atable-expanded-row {
230
+ border-left: 2px solid var(--sc-row-border-color);
231
+ }
232
+
233
+ .atable-expanded-content {
234
+ border-top: 1px solid var(--sc-row-border-color);
235
+ padding: 1.5rem;
236
+ }
187
237
  /* sticky cells in modified rows should be a solid color to properly hide non-sticky cells */
188
238
  .atable-row:has(td.cell-modified) > td.sticky-column,
189
239
  .atable-row:has(td.cell-modified) > th.sticky-column,
@@ -26,6 +26,7 @@
26
26
  type="button"
27
27
  class="row-action-menu-item"
28
28
  role="menuitem"
29
+ :disabled="action.disabled"
29
30
  @click.stop="executeAction(action.type, $event)">
30
31
  <span class="action-icon" v-html="action.icon" />
31
32
  <span class="action-label">{{ action.label }}</span>
@@ -42,6 +43,7 @@
42
43
  class="row-action-btn"
43
44
  :title="action.label"
44
45
  :aria-label="action.label"
46
+ :disabled="action.disabled"
45
47
  @click.stop="executeAction(action.type, $event)">
46
48
  <span class="action-icon" v-html="action.icon" />
47
49
  </button>
@@ -83,15 +85,27 @@ const defaultLabels: Record<RowActionType, string> = {
83
85
  insertAbove: 'Insert Above',
84
86
  insertBelow: 'Insert Below',
85
87
  move: 'Move Record',
88
+ moveUp: 'Move Up',
89
+ moveDown: 'Move Down',
86
90
  open: 'Open Record',
87
91
  }
88
92
 
89
93
  // Determine which actions are enabled
90
94
  const enabledActions = computed(() => {
91
- const actions: Array<{ type: RowActionType; label: string; icon: string }> = []
95
+ const actions: Array<{ type: RowActionType; label: string; icon: string; disabled: boolean }> = []
92
96
  const configActions = props.config.actions || {}
93
97
 
94
- const actionTypes: RowActionType[] = ['open', 'add', 'delete', 'duplicate', 'insertAbove', 'insertBelow', 'move']
98
+ const actionTypes: RowActionType[] = [
99
+ 'open',
100
+ 'moveUp',
101
+ 'moveDown',
102
+ 'duplicate',
103
+ 'insertAbove',
104
+ 'insertBelow',
105
+ 'add',
106
+ 'delete',
107
+ 'move',
108
+ ]
95
109
 
96
110
  for (const type of actionTypes) {
97
111
  const actionConfig = configActions[type]
@@ -105,15 +119,18 @@ const enabledActions = computed(() => {
105
119
  let enabled = true
106
120
  let label = defaultLabels[type]
107
121
  let icon = actionIcons[type]
122
+ let disabled = false
108
123
 
109
124
  if (typeof actionConfig === 'object') {
110
125
  enabled = actionConfig.enabled !== false
111
126
  label = actionConfig.label || label
112
127
  icon = actionConfig.icon || icon
128
+ // Per-row predicate; reading store state here keeps this computed reactive to row changes.
129
+ if (actionConfig.disabled) disabled = actionConfig.disabled(props.rowIndex, props.store)
113
130
  }
114
131
 
115
132
  if (enabled) {
116
- actions.push({ type, label, icon })
133
+ actions.push({ type, label, icon, disabled })
117
134
  }
118
135
  }
119
136
 
@@ -172,7 +189,9 @@ const checkDropdownPosition = () => {
172
189
 
173
190
  const buttonRect = toggleButtonRef.value.getBoundingClientRect()
174
191
  const viewportHeight = window.innerHeight
192
+ const viewportWidth = window.innerWidth
175
193
  const estimatedMenuHeight = enabledActions.value.length * 40 + 16 // ~40px per item + padding
194
+ const estimatedMenuWidth = 160 // matches min-width: 10rem
176
195
 
177
196
  // Check if menu would extend beyond viewport bottom
178
197
  const spaceBelow = viewportHeight - buttonRect.bottom
@@ -181,17 +200,17 @@ const checkDropdownPosition = () => {
181
200
  // Flip if not enough space below but enough space above
182
201
  dropdownFlipped.value = spaceBelow < estimatedMenuHeight && spaceAbove > estimatedMenuHeight
183
202
 
203
+ // Horizontal: anchor the menu's left edge to the button, but right-align it to the button when
204
+ // it would overflow the viewport's right edge (e.g. an end-positioned actions column).
205
+ let left = buttonRect.left
206
+ if (left + estimatedMenuWidth > viewportWidth) {
207
+ left = Math.max(0, buttonRect.right - estimatedMenuWidth)
208
+ }
209
+
184
210
  // Calculate fixed position
185
- if (dropdownFlipped.value) {
186
- menuPosition.value = {
187
- top: buttonRect.top,
188
- left: buttonRect.left,
189
- }
190
- } else {
191
- menuPosition.value = {
192
- top: buttonRect.bottom,
193
- left: buttonRect.left,
194
- }
211
+ menuPosition.value = {
212
+ top: dropdownFlipped.value ? buttonRect.top : buttonRect.bottom,
213
+ left,
195
214
  }
196
215
  }
197
216
 
@@ -219,8 +238,6 @@ const executeAction = (actionType: RowActionType, event?: MouseEvent) => {
219
238
  </script>
220
239
 
221
240
  <style>
222
- @import url('@stonecrop/themes/default.css');
223
-
224
241
  .atable-row-actions {
225
242
  width: 2rem;
226
243
  min-width: 2rem;
@@ -359,6 +376,17 @@ const executeAction = (actionType: RowActionType, event?: MouseEvent) => {
359
376
  background-color: var(--sc-gray-10, #f5f5f5);
360
377
  }
361
378
 
379
+ .row-action-menu-item:disabled,
380
+ .row-action-btn:disabled {
381
+ opacity: 0.4;
382
+ cursor: not-allowed;
383
+ }
384
+
385
+ .row-action-menu-item:disabled:hover,
386
+ .row-action-btn:disabled:hover {
387
+ background-color: transparent;
388
+ }
389
+
362
390
  .row-action-menu-item .action-icon {
363
391
  display: flex;
364
392
  align-items: center;
@@ -204,10 +204,13 @@ watch(
204
204
  watch(
205
205
  columns,
206
206
  newColumns => {
207
+ // The model is optional, so it can be absent — there is nothing to sync from, and the store
208
+ // keeps the columns it resolved from the schema.
209
+ if (!newColumns) return
207
210
  // Only update if the columns have actually changed (avoid infinite loops)
208
211
  if (JSON.stringify(newColumns) !== JSON.stringify(store.columns)) {
209
212
  store.columns = [...newColumns]
210
- emit('columns:update', [...newColumns] as TableColumn[])
213
+ emit('columns:update', [...newColumns])
211
214
  }
212
215
  },
213
216
  { deep: true }
@@ -371,6 +374,20 @@ const handleRowAction = (actionType: RowActionType, rowIndex: number, event?: Mo
371
374
  emit('row:move', { fromIndex: rowIndex, toIndex: -1 })
372
375
  break
373
376
  }
377
+ case 'moveUp': {
378
+ if (rowIndex > 0 && store.moveRow(rowIndex, rowIndex - 1)) {
379
+ rows.value = [...store.rows]
380
+ emit('row:move', { fromIndex: rowIndex, toIndex: rowIndex - 1 })
381
+ }
382
+ break
383
+ }
384
+ case 'moveDown': {
385
+ if (rowIndex < store.rows.length - 1 && store.moveRow(rowIndex, rowIndex + 1)) {
386
+ rows.value = [...store.rows]
387
+ emit('row:move', { fromIndex: rowIndex, toIndex: rowIndex + 1 })
388
+ }
389
+ break
390
+ }
374
391
  case 'open': {
375
392
  const row = store.rows[rowIndex]
376
393
  emit('row:open', { row, rowIndex, event })
@@ -425,7 +442,6 @@ td.sticky-index {
425
442
  </style>
426
443
 
427
444
  <style scoped>
428
- @import url('@stonecrop/themes/default.css');
429
445
  .atable {
430
446
  position: relative;
431
447
  font-family: var(--sc-atable-font-family);
@@ -66,9 +66,24 @@
66
66
 
67
67
  <script setup lang="ts">
68
68
  import { ref, reactive, computed } from 'vue'
69
+ import { componentCategory, type ComponentCategory } from '@stonecrop/schema'
70
+
69
71
  import { createTableStore } from '../stores/table'
70
72
  import type { TableColumn } from '../types'
71
73
 
74
+ // The filter widget is chosen by the component's semantic category.
75
+ const CATEGORY_FILTER: Record<ComponentCategory, 'text' | 'select' | 'number' | 'date' | 'dateRange' | 'checkbox'> = {
76
+ text: 'text',
77
+ number: 'number',
78
+ boolean: 'checkbox',
79
+ date: 'date',
80
+ datetime: 'dateRange',
81
+ select: 'select',
82
+ code: 'text',
83
+ link: 'text',
84
+ attach: 'text',
85
+ }
86
+
72
87
  const { column, colIndex, store } = defineProps<{
73
88
  column: TableColumn
74
89
  colIndex: number
@@ -83,24 +98,10 @@ const dateFilter = reactive({
83
98
 
84
99
  const resolvedFilterType = computed(() => {
85
100
  if (column.filterType) return column.filterType
86
- switch (column.fieldtype) {
87
- case 'Check':
88
- return 'checkbox'
89
- case 'Date':
90
- return 'date'
91
- case 'Datetime':
92
- return 'dateRange'
93
- case 'Select':
94
- return 'select'
95
- case 'Int':
96
- case 'Float':
97
- case 'Currency':
98
- case 'Decimal':
99
- case 'Quantity':
100
- return 'number'
101
- default:
102
- return 'text'
103
- }
101
+ const category = componentCategory(column.component)
102
+ if (category) return CATEGORY_FILTER[category]
103
+ // An unknown (custom) component gets the widget that can filter anything.
104
+ return 'text'
104
105
  })
105
106
 
106
107
  const getSelectOptions = (col: TableColumn): any[] => {
@@ -98,8 +98,6 @@ const onResize = (entries: ReadonlyArray<ResizeObserverEntry>) => {
98
98
  </script>
99
99
 
100
100
  <style>
101
- @import url('@stonecrop/themes/default.css');
102
-
103
101
  .atable-header-row th {
104
102
  padding-left: 0.5ch !important;
105
103
  font-weight: 700;
@@ -44,8 +44,6 @@ const amodalStyles = computed((): StyleValue => {
44
44
  </script>
45
45
 
46
46
  <style>
47
- @import url('@stonecrop/themes/default.css');
48
-
49
47
  .amodal {
50
48
  position: absolute;
51
49
  background-color: var(--sc-row-color-zebra-dark);