@stonecrop/atable 0.12.3 → 0.12.4

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.
@@ -10,6 +10,11 @@ import type { TableColumn } from './types';
10
10
  * `fieldname` is renamed to `name`; `hidden` is stripped. All other `ColumnSchema` properties
11
11
  * spread through automatically.
12
12
  *
13
+ * For `fieldtype: 'Link'` fields without an explicit `cellComponent`:
14
+ * - `linkDoctype` is set from the field's `doctype` property (used by ACell's async resolver).
15
+ * - A synchronous `format` function is added (unless the field already has one) that handles
16
+ * both bare ID strings and pre-resolved `{ id, displayText }` objects.
17
+ *
13
18
  * @public
14
19
  */
15
20
  export declare function schemaToColumns(schema: ColumnSchema[]): TableColumn[];
@@ -1 +1 @@
1
- {"version":3,"file":"schemaToColumns.d.ts","sourceRoot":"","sources":["../../src/schemaToColumns.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAErD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAE1C;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,WAAW,EAAE,CAOrE"}
1
+ {"version":3,"file":"schemaToColumns.d.ts","sourceRoot":"","sources":["../../src/schemaToColumns.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAErD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAE1C;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,WAAW,EAAE,CA4BrE"}
@@ -8,13 +8,38 @@
8
8
  * `fieldname` is renamed to `name`; `hidden` is stripped. All other `ColumnSchema` properties
9
9
  * spread through automatically.
10
10
  *
11
+ * For `fieldtype: 'Link'` fields without an explicit `cellComponent`:
12
+ * - `linkDoctype` is set from the field's `doctype` property (used by ACell's async resolver).
13
+ * - A synchronous `format` function is added (unless the field already has one) that handles
14
+ * both bare ID strings and pre-resolved `{ id, displayText }` objects.
15
+ *
11
16
  * @public
12
17
  */
13
18
  export function schemaToColumns(schema) {
14
19
  return schema
15
20
  .filter(f => !f.hidden && f.fieldtype)
16
- .map(({ fieldname, hidden: _hidden, ...rest }) => ({
17
- name: fieldname,
18
- ...rest,
19
- }));
21
+ .map(({ fieldname, hidden: _hidden, ...rest }) => {
22
+ const col = { name: fieldname, ...rest };
23
+ // Link fields: store the linked doctype for async resolution by ACell,
24
+ // and add a sync format that handles pre-resolved AFormLinkValue objects.
25
+ if (rest.fieldtype === 'Link' && !rest.cellComponent) {
26
+ const fields = rest;
27
+ const linkedDoctype = typeof fields.doctype === 'string' ? fields.doctype : undefined;
28
+ if (linkedDoctype)
29
+ col.linkDoctype = linkedDoctype;
30
+ if (!rest.format) {
31
+ col.format = (v) => {
32
+ if (v === null || v === undefined)
33
+ return '';
34
+ if (typeof v === 'object') {
35
+ const rec = v;
36
+ const display = rec.displayText ?? rec.id ?? '';
37
+ return typeof display === 'string' || typeof display === 'number' ? String(display) : '';
38
+ }
39
+ return String(v);
40
+ };
41
+ }
42
+ }
43
+ return col;
44
+ });
20
45
  }
@@ -29,12 +29,14 @@ export declare const createTableStore: (initData: {
29
29
  id?: string;
30
30
  config?: TableConfig;
31
31
  modal?: TableModal;
32
+ linkResolver?: ((doctype: string, id: string) => Promise<string | undefined>) | null;
32
33
  }) => import("pinia").Store<`table-${string}`, Pick<{
33
34
  columns: import("vue").Ref<{
34
35
  name: string;
35
36
  format?: string | ((value: any, context: CellContext) => string) | undefined;
36
37
  modalComponent?: string | ((context: CellContext) => string) | undefined;
37
38
  mask?: ((value: any) => any) | undefined;
39
+ linkDoctype?: string | undefined;
38
40
  readonly originalIndex?: number | undefined;
39
41
  fieldtype?: string | undefined;
40
42
  label?: string | undefined;
@@ -59,6 +61,7 @@ export declare const createTableStore: (initData: {
59
61
  format?: string | ((value: any, context: CellContext) => string) | undefined;
60
62
  modalComponent?: string | ((context: CellContext) => string) | undefined;
61
63
  mask?: ((value: any) => any) | undefined;
64
+ linkDoctype?: string | undefined;
62
65
  readonly originalIndex?: number | undefined;
63
66
  fieldtype?: string | undefined;
64
67
  label?: string | undefined;
@@ -612,6 +615,7 @@ export declare const createTableStore: (initData: {
612
615
  isDependencyGraphEnabled: import("vue").ComputedRef<boolean>;
613
616
  numberedRowWidth: import("vue").ComputedRef<string>;
614
617
  zeroColumn: import("vue").ComputedRef<boolean>;
618
+ linkResolver: ((doctype: string, id: string) => Promise<string | undefined>) | null;
615
619
  addRow: (rowData?: Partial<TableRow>, position?: "start" | "end" | number) => number;
616
620
  clearFilter: (colIndex: number) => void;
617
621
  closeModal: (event: MouseEvent) => void;
@@ -673,12 +677,13 @@ export declare const createTableStore: (initData: {
673
677
  unregisterGanttBar: (barId: string) => void;
674
678
  updateGanttBar: (event: GanttDragEvent) => void;
675
679
  updateRows: (newRows: TableRow[]) => void;
676
- }, "columns" | "config" | "connectionHandles" | "connectionPaths" | "filterState" | "ganttBars" | "modal" | "rows" | "sortState" | "updates">, Pick<{
680
+ }, "columns" | "config" | "connectionHandles" | "connectionPaths" | "filterState" | "ganttBars" | "modal" | "rows" | "sortState" | "updates" | "linkResolver">, Pick<{
677
681
  columns: import("vue").Ref<{
678
682
  name: string;
679
683
  format?: string | ((value: any, context: CellContext) => string) | undefined;
680
684
  modalComponent?: string | ((context: CellContext) => string) | undefined;
681
685
  mask?: ((value: any) => any) | undefined;
686
+ linkDoctype?: string | undefined;
682
687
  readonly originalIndex?: number | undefined;
683
688
  fieldtype?: string | undefined;
684
689
  label?: string | undefined;
@@ -703,6 +708,7 @@ export declare const createTableStore: (initData: {
703
708
  format?: string | ((value: any, context: CellContext) => string) | undefined;
704
709
  modalComponent?: string | ((context: CellContext) => string) | undefined;
705
710
  mask?: ((value: any) => any) | undefined;
711
+ linkDoctype?: string | undefined;
706
712
  readonly originalIndex?: number | undefined;
707
713
  fieldtype?: string | undefined;
708
714
  label?: string | undefined;
@@ -1256,6 +1262,7 @@ export declare const createTableStore: (initData: {
1256
1262
  isDependencyGraphEnabled: import("vue").ComputedRef<boolean>;
1257
1263
  numberedRowWidth: import("vue").ComputedRef<string>;
1258
1264
  zeroColumn: import("vue").ComputedRef<boolean>;
1265
+ linkResolver: ((doctype: string, id: string) => Promise<string | undefined>) | null;
1259
1266
  addRow: (rowData?: Partial<TableRow>, position?: "start" | "end" | number) => number;
1260
1267
  clearFilter: (colIndex: number) => void;
1261
1268
  closeModal: (event: MouseEvent) => void;
@@ -1323,6 +1330,7 @@ export declare const createTableStore: (initData: {
1323
1330
  format?: string | ((value: any, context: CellContext) => string) | undefined;
1324
1331
  modalComponent?: string | ((context: CellContext) => string) | undefined;
1325
1332
  mask?: ((value: any) => any) | undefined;
1333
+ linkDoctype?: string | undefined;
1326
1334
  readonly originalIndex?: number | undefined;
1327
1335
  fieldtype?: string | undefined;
1328
1336
  label?: string | undefined;
@@ -1347,6 +1355,7 @@ export declare const createTableStore: (initData: {
1347
1355
  format?: string | ((value: any, context: CellContext) => string) | undefined;
1348
1356
  modalComponent?: string | ((context: CellContext) => string) | undefined;
1349
1357
  mask?: ((value: any) => any) | undefined;
1358
+ linkDoctype?: string | undefined;
1350
1359
  readonly originalIndex?: number | undefined;
1351
1360
  fieldtype?: string | undefined;
1352
1361
  label?: string | undefined;
@@ -1900,6 +1909,7 @@ export declare const createTableStore: (initData: {
1900
1909
  isDependencyGraphEnabled: import("vue").ComputedRef<boolean>;
1901
1910
  numberedRowWidth: import("vue").ComputedRef<string>;
1902
1911
  zeroColumn: import("vue").ComputedRef<boolean>;
1912
+ linkResolver: ((doctype: string, id: string) => Promise<string | undefined>) | null;
1903
1913
  addRow: (rowData?: Partial<TableRow>, position?: "start" | "end" | number) => number;
1904
1914
  clearFilter: (colIndex: number) => void;
1905
1915
  closeModal: (event: MouseEvent) => void;
@@ -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":"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"}
@@ -9,6 +9,7 @@ import { generateHash } from '../utils';
9
9
  */
10
10
  export const createTableStore = (initData) => {
11
11
  const id = initData.id || generateHash();
12
+ const linkResolver = initData.linkResolver ?? null;
12
13
  const createStore = defineStore(`table-${id}`, () => {
13
14
  const createDisplayObject = () => {
14
15
  const defaultDisplay = [Object.assign({}, { rowModified: false })];
@@ -759,6 +760,8 @@ export const createTableStore = (initData) => {
759
760
  isDependencyGraphEnabled,
760
761
  numberedRowWidth,
761
762
  zeroColumn,
763
+ // resolver
764
+ linkResolver,
762
765
  // actions
763
766
  addRow,
764
767
  clearFilter,
@@ -37,6 +37,12 @@ export interface TableColumn extends Omit<ColumnSchema, 'fieldname' | 'hidden' |
37
37
  * masks cannot be serialized to JSON so they are absent from `ColumnSchema`.
38
38
  */
39
39
  mask?: (value: any) => any;
40
+ /**
41
+ * For `fieldtype: 'Link'` columns: the target doctype slug used by the `linkResolver`
42
+ * to look up display text for bare ID values. Set automatically by `schemaToColumns`
43
+ * from the field's `doctype` property.
44
+ */
45
+ linkDoctype?: string;
40
46
  /**
41
47
  * Runtime Gantt column index (excluding pinned columns). Set automatically during
42
48
  * Gantt table rendering.
@@ -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.12.3",
3
+ "version": "0.12.4",
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.12.3",
39
- "@stonecrop/themes": "0.12.3",
40
- "@stonecrop/utilities": "0.12.3"
38
+ "@stonecrop/schema": "0.12.4",
39
+ "@stonecrop/themes": "0.12.4",
40
+ "@stonecrop/utilities": "0.12.4"
41
41
  },
42
42
  "peerDependencies": {
43
43
  "pinia": "^3.0.4",
@@ -17,17 +17,17 @@
17
17
  <component
18
18
  :is="column.cellComponent"
19
19
  v-if="column.cellComponent"
20
- :value="displayValue"
20
+ :value="renderedValue"
21
21
  v-bind="column.cellComponentProps" />
22
- <span v-else-if="isHtmlValue" v-html="displayValue" />
23
- <span v-else>{{ displayValue }}</span>
22
+ <span v-else-if="isHtmlValue" v-html="renderedValue" />
23
+ <span v-else>{{ renderedValue }}</span>
24
24
  </td>
25
25
  </template>
26
26
 
27
27
  <script setup lang="ts">
28
28
  import { KeypressHandlers, defaultKeypressHandlers, useKeyboardNav } from '@stonecrop/utilities'
29
29
  import { useDebounceFn, useElementBounding } from '@vueuse/core'
30
- import { computed, type CSSProperties, ref, useTemplateRef, nextTick } from 'vue'
30
+ import { computed, type CSSProperties, onMounted, ref, useTemplateRef, nextTick } from 'vue'
31
31
 
32
32
  import { createTableStore } from '../stores/table'
33
33
  import { isHtmlString } from '../utils'
@@ -64,9 +64,38 @@ const textAlign = column.align || 'center'
64
64
  const cellWidth = column.width || '40ch'
65
65
 
66
66
  const displayValue = computed(() => store.getCellDisplayValue(colIndex, rowIndex))
67
+
68
+ // Resolved display text for Link columns with bare string IDs.
69
+ // null = not yet resolved or not applicable; non-null overrides displayValue.
70
+ const resolvedText = ref<string | null>(null)
71
+
72
+ onMounted(() => {
73
+ if (!column.linkDoctype) return
74
+ const raw = store.getCellData(colIndex, rowIndex)
75
+
76
+ // Pre-resolved AFormLinkValue object — extract display text directly.
77
+ if (raw !== null && raw !== undefined && typeof raw === 'object') {
78
+ const obj = raw as Record<string, unknown>
79
+ const display = obj.displayText ?? obj.id
80
+ if (typeof display === 'string' || typeof display === 'number') {
81
+ resolvedText.value = String(display)
82
+ }
83
+ return
84
+ }
85
+
86
+ // Bare string ID — call the resolver if available.
87
+ const resolver = store.linkResolver
88
+ if (!resolver || typeof raw !== 'string' || raw === '') return
89
+ void resolver(column.linkDoctype, raw).then(text => {
90
+ if (text != null) resolvedText.value = text
91
+ })
92
+ })
93
+
94
+ const renderedValue = computed(() => resolvedText.value ?? displayValue.value)
95
+
67
96
  const isHtmlValue = computed(() => {
68
97
  // TODO: check if display value is a native DOM element
69
- return typeof displayValue.value === 'string' ? isHtmlString(displayValue.value) : false
98
+ return typeof renderedValue.value === 'string' ? isHtmlString(renderedValue.value) : false
70
99
  })
71
100
 
72
101
  const cellStyle = computed((): CSSProperties => {
@@ -85,7 +85,7 @@
85
85
  <script setup lang="ts">
86
86
  import { vOnClickOutside } from '@vueuse/components'
87
87
  import { useMutationObserver } from '@vueuse/core'
88
- import { computed, nextTick, onMounted, useTemplateRef, watch } from 'vue'
88
+ import { computed, inject, nextTick, onMounted, useTemplateRef, watch } from 'vue'
89
89
 
90
90
  import AGanttConnection from './AGanttConnection.vue'
91
91
  import ARow from './ARow.vue'
@@ -114,14 +114,18 @@ const rows = defineModel<TableRow[]>('rows', { required: true })
114
114
  // TODO: convert columns from defineModel to a regular prop
115
115
  const columns = defineModel<TableColumn[]>('columns')
116
116
 
117
+ type LinkResolverFn = (doctype: string, id: string) => Promise<string | undefined>
118
+
117
119
  const {
118
120
  id = '',
119
121
  config = new Object(),
120
122
  schema = [],
123
+ linkResolver = undefined,
121
124
  } = defineProps<{
122
125
  id?: string
123
126
  config?: TableConfig
124
127
  schema?: ColumnSchema[]
128
+ linkResolver?: LinkResolverFn
125
129
  }>()
126
130
 
127
131
  const emit = defineEmits<{
@@ -139,7 +143,14 @@ const emit = defineEmits<{
139
143
 
140
144
  const tableRef = useTemplateRef<HTMLTableElement>('table')
141
145
  const resolvedColumns = columns.value?.length ? columns.value : schemaToColumns(schema ?? [])
142
- const store = createTableStore({ columns: resolvedColumns, rows: rows.value, id, config })
146
+ const injectedLinkResolver = inject<LinkResolverFn | null>('aformLinkResolver', null)
147
+ const store = createTableStore({
148
+ columns: resolvedColumns,
149
+ rows: rows.value,
150
+ id,
151
+ config,
152
+ linkResolver: linkResolver ?? injectedLinkResolver,
153
+ })
143
154
 
144
155
  store.$onAction(({ name, store, args, after }) => {
145
156
  if (name === 'setCellData' || name === 'setCellText') {
@@ -12,13 +12,39 @@ import type { TableColumn } from './types'
12
12
  * `fieldname` is renamed to `name`; `hidden` is stripped. All other `ColumnSchema` properties
13
13
  * spread through automatically.
14
14
  *
15
+ * For `fieldtype: 'Link'` fields without an explicit `cellComponent`:
16
+ * - `linkDoctype` is set from the field's `doctype` property (used by ACell's async resolver).
17
+ * - A synchronous `format` function is added (unless the field already has one) that handles
18
+ * both bare ID strings and pre-resolved `{ id, displayText }` objects.
19
+ *
15
20
  * @public
16
21
  */
17
22
  export function schemaToColumns(schema: ColumnSchema[]): TableColumn[] {
18
23
  return schema
19
24
  .filter(f => !f.hidden && f.fieldtype)
20
- .map(({ fieldname, hidden: _hidden, ...rest }) => ({
21
- name: fieldname,
22
- ...rest,
23
- }))
25
+ .map(({ fieldname, hidden: _hidden, ...rest }) => {
26
+ const col: TableColumn = { name: fieldname, ...rest }
27
+
28
+ // Link fields: store the linked doctype for async resolution by ACell,
29
+ // and add a sync format that handles pre-resolved AFormLinkValue objects.
30
+ if (rest.fieldtype === 'Link' && !rest.cellComponent) {
31
+ const fields = rest as Record<string, unknown>
32
+ const linkedDoctype = typeof fields.doctype === 'string' ? fields.doctype : undefined
33
+ if (linkedDoctype) col.linkDoctype = linkedDoctype
34
+
35
+ if (!rest.format) {
36
+ col.format = (v: any): string => {
37
+ if (v === null || v === undefined) return ''
38
+ if (typeof v === 'object') {
39
+ const rec = v as Record<string, unknown>
40
+ const display = rec.displayText ?? rec.id ?? ''
41
+ return typeof display === 'string' || typeof display === 'number' ? String(display) : ''
42
+ }
43
+ return String(v)
44
+ }
45
+ }
46
+ }
47
+
48
+ return col
49
+ })
24
50
  }
@@ -46,8 +46,10 @@ export const createTableStore = (initData: {
46
46
  id?: string
47
47
  config?: TableConfig
48
48
  modal?: TableModal
49
+ linkResolver?: ((doctype: string, id: string) => Promise<string | undefined>) | null
49
50
  }) => {
50
51
  const id = initData.id || generateHash()
52
+ const linkResolver = initData.linkResolver ?? null
51
53
  const createStore = defineStore(`table-${id}`, () => {
52
54
  const createDisplayObject = () => {
53
55
  const defaultDisplay: TableDisplay[] = [Object.assign({}, { rowModified: false })]
@@ -903,6 +905,9 @@ export const createTableStore = (initData: {
903
905
  numberedRowWidth,
904
906
  zeroColumn,
905
907
 
908
+ // resolver
909
+ linkResolver,
910
+
906
911
  // actions
907
912
  addRow,
908
913
  clearFilter,
@@ -44,6 +44,13 @@ export interface TableColumn extends Omit<ColumnSchema, 'fieldname' | 'hidden' |
44
44
  */
45
45
  mask?: (value: any) => any
46
46
 
47
+ /**
48
+ * For `fieldtype: 'Link'` columns: the target doctype slug used by the `linkResolver`
49
+ * to look up display text for bare ID values. Set automatically by `schemaToColumns`
50
+ * from the field's `doctype` property.
51
+ */
52
+ linkDoctype?: string
53
+
47
54
  /**
48
55
  * Runtime Gantt column index (excluding pinned columns). Set automatically during
49
56
  * Gantt table rendering.