@affino/datagrid-vue 0.3.16 → 0.3.18

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.
@@ -12,6 +12,7 @@ export interface UseDataGridAppColumnLayoutPanelResult {
12
12
  applyColumnLayoutPanel: () => void;
13
13
  moveColumnUp: (key: string) => void;
14
14
  moveColumnDown: (key: string) => void;
15
+ moveColumnToPosition: (key: string, targetKey: string, placement: "before" | "after") => void;
15
16
  updateColumnVisibility: (patch: DataGridAppColumnLayoutVisibilityPatch) => void;
16
17
  }
17
18
  export declare function useDataGridAppColumnLayoutPanel(options: UseDataGridAppColumnLayoutPanelOptions): UseDataGridAppColumnLayoutPanelResult;
@@ -1 +1 @@
1
- {"version":3,"file":"useDataGridAppColumnLayoutPanel.d.ts","sourceRoot":"","sources":["../../src/app/useDataGridAppColumnLayoutPanel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,WAAW,EAAE,MAAM,KAAK,CAAA;AACrD,OAAO,KAAK,EACV,mCAAmC,EACnC,kCAAkC,EAClC,gCAAgC,EAChC,sCAAsC,EACvC,MAAM,2BAA2B,CAAA;AAElC,UAAU,sCAAsC;IAC9C,cAAc,EAAE,MAAM,SAAS,kCAAkC,EAAE,CAAA;IACnE,iBAAiB,EAAE,CAAC,OAAO,EAAE,mCAAmC,KAAK,IAAI,CAAA;CAC1E;AAED,MAAM,WAAW,qCAAqC;IACpD,uBAAuB,EAAE,WAAW,CAAC,OAAO,CAAC,CAAA;IAC7C,sBAAsB,EAAE,WAAW,CAAC,SAAS,gCAAgC,EAAE,CAAC,CAAA;IAChF,qBAAqB,EAAE,MAAM,IAAI,CAAA;IACjC,uBAAuB,EAAE,MAAM,IAAI,CAAA;IACnC,sBAAsB,EAAE,MAAM,IAAI,CAAA;IAClC,YAAY,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;IACnC,cAAc,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;IACrC,sBAAsB,EAAE,CAAC,KAAK,EAAE,sCAAsC,KAAK,IAAI,CAAA;CAChF;AAED,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,sCAAsC,GAC9C,qCAAqC,CAqFvC"}
1
+ {"version":3,"file":"useDataGridAppColumnLayoutPanel.d.ts","sourceRoot":"","sources":["../../src/app/useDataGridAppColumnLayoutPanel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,WAAW,EAAE,MAAM,KAAK,CAAA;AACrD,OAAO,KAAK,EACV,mCAAmC,EACnC,kCAAkC,EAClC,gCAAgC,EAChC,sCAAsC,EACvC,MAAM,2BAA2B,CAAA;AAElC,UAAU,sCAAsC;IAC9C,cAAc,EAAE,MAAM,SAAS,kCAAkC,EAAE,CAAA;IACnE,iBAAiB,EAAE,CAAC,OAAO,EAAE,mCAAmC,KAAK,IAAI,CAAA;CAC1E;AAED,MAAM,WAAW,qCAAqC;IACpD,uBAAuB,EAAE,WAAW,CAAC,OAAO,CAAC,CAAA;IAC7C,sBAAsB,EAAE,WAAW,CAAC,SAAS,gCAAgC,EAAE,CAAC,CAAA;IAChF,qBAAqB,EAAE,MAAM,IAAI,CAAA;IACjC,uBAAuB,EAAE,MAAM,IAAI,CAAA;IACnC,sBAAsB,EAAE,MAAM,IAAI,CAAA;IAClC,YAAY,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;IACnC,cAAc,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;IACrC,oBAAoB,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,GAAG,OAAO,KAAK,IAAI,CAAA;IAC7F,sBAAsB,EAAE,CAAC,KAAK,EAAE,sCAAsC,KAAK,IAAI,CAAA;CAChF;AAED,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,sCAAsC,GAC9C,qCAAqC,CAkHvC"}
@@ -38,6 +38,29 @@ export function useDataGridAppColumnLayoutPanel(options) {
38
38
  const moveColumnDown = (key) => {
39
39
  moveColumn(key, 1);
40
40
  };
41
+ const moveColumnToPosition = (key, targetKey, placement) => {
42
+ if (key === targetKey) {
43
+ return;
44
+ }
45
+ const sourceIndex = draftColumns.value.findIndex(column => column.key === key);
46
+ const targetIndex = draftColumns.value.findIndex(column => column.key === targetKey);
47
+ if (sourceIndex < 0 || targetIndex < 0) {
48
+ return;
49
+ }
50
+ const nextDraft = [...draftColumns.value];
51
+ const movedColumn = nextDraft[sourceIndex];
52
+ if (!movedColumn) {
53
+ return;
54
+ }
55
+ nextDraft.splice(sourceIndex, 1);
56
+ const normalizedTargetIndex = nextDraft.findIndex(column => column.key === targetKey);
57
+ if (normalizedTargetIndex < 0) {
58
+ return;
59
+ }
60
+ const insertIndex = placement === "after" ? normalizedTargetIndex + 1 : normalizedTargetIndex;
61
+ nextDraft.splice(insertIndex, 0, movedColumn);
62
+ draftColumns.value = nextDraft;
63
+ };
41
64
  const updateColumnVisibility = (patch) => {
42
65
  draftColumns.value = draftColumns.value.map(column => {
43
66
  if (column.key !== patch.key) {
@@ -70,6 +93,7 @@ export function useDataGridAppColumnLayoutPanel(options) {
70
93
  applyColumnLayoutPanel,
71
94
  moveColumnUp,
72
95
  moveColumnDown,
96
+ moveColumnToPosition,
73
97
  updateColumnVisibility,
74
98
  };
75
99
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useDataGridAppInteractionController.d.ts","sourceRoot":"","sources":["../../src/app/useDataGridAppInteractionController.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useDataGridAppInteractionController.d.ts","sourceRoot":"","sources":["../../src/app/useDataGridAppInteractionController.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,62 @@ export function useDataGridAppInteractionController(options) {
16
16
  const runtime = options.runtime;
17
17
  return runtime.getBodyRowAtIndex?.(rowIndex) ?? options.runtime.api.rows.get(rowIndex) ?? null;
18
18
  };
19
+ const isSemanticNavigationCellNonEmpty = (rowIndex, columnIndex) => {
20
+ const row = getBodyRowAtIndex(rowIndex);
21
+ const columnKey = options.visibleColumns.value[columnIndex]?.key;
22
+ if (!row || row.rowId == null || row.kind === "group" || !columnKey) {
23
+ return null;
24
+ }
25
+ return options.readCell(row, columnKey).trim().length > 0;
26
+ };
27
+ const resolveDirectionalSemanticJumpTarget = (current, direction, event) => {
28
+ if (!(event.ctrlKey || event.metaKey) || event.altKey) {
29
+ return undefined;
30
+ }
31
+ const currentCellIsNonEmpty = isSemanticNavigationCellNonEmpty(current.rowIndex, current.columnIndex);
32
+ if (currentCellIsNonEmpty == null) {
33
+ return undefined;
34
+ }
35
+ const nextColumnIndex = (columnIndex, step) => {
36
+ const lastColumn = Math.max(0, options.visibleColumns.value.length - 1);
37
+ return Math.max(0, Math.min(lastColumn, columnIndex + step));
38
+ };
39
+ const step = (coord) => {
40
+ switch (direction) {
41
+ case "up":
42
+ return coord.rowIndex > 0
43
+ ? { ...coord, rowIndex: coord.rowIndex - 1, rowId: getBodyRowAtIndex(coord.rowIndex - 1)?.rowId ?? null }
44
+ : null;
45
+ case "down":
46
+ return coord.rowIndex < Math.max(0, options.totalRows.value - 1)
47
+ ? { ...coord, rowIndex: coord.rowIndex + 1, rowId: getBodyRowAtIndex(coord.rowIndex + 1)?.rowId ?? null }
48
+ : null;
49
+ case "left": {
50
+ const columnIndex = nextColumnIndex(coord.columnIndex, -1);
51
+ return columnIndex === coord.columnIndex
52
+ ? null
53
+ : { ...coord, columnIndex, rowId: getBodyRowAtIndex(coord.rowIndex)?.rowId ?? null };
54
+ }
55
+ case "right": {
56
+ const columnIndex = nextColumnIndex(coord.columnIndex, 1);
57
+ return columnIndex === coord.columnIndex
58
+ ? null
59
+ : { ...coord, columnIndex, rowId: getBodyRowAtIndex(coord.rowIndex)?.rowId ?? null };
60
+ }
61
+ }
62
+ };
63
+ let lastMatchingCoord = current;
64
+ let candidate = step(current);
65
+ while (candidate) {
66
+ const candidateIsNonEmpty = isSemanticNavigationCellNonEmpty(candidate.rowIndex, candidate.columnIndex);
67
+ if (candidateIsNonEmpty == null || candidateIsNonEmpty !== currentCellIsNonEmpty) {
68
+ break;
69
+ }
70
+ lastMatchingCoord = candidate;
71
+ candidate = step(candidate);
72
+ }
73
+ return options.normalizeCellCoord(lastMatchingCoord) ?? current;
74
+ };
19
75
  const resolveBodyRowIndexById = (rowId) => {
20
76
  const runtime = options.runtime;
21
77
  if (typeof runtime.resolveBodyRowIndexById === "function") {
@@ -627,7 +683,10 @@ export function useDataGridAppInteractionController(options) {
627
683
  }
628
684
  return { ...current, rowIndex: current.rowIndex + 1, columnIndex: 0 };
629
685
  },
630
- normalizeCellCoord: coord => options.normalizeCellCoord(coord),
686
+ normalizeCellCoord: coord => options.normalizeCellCoord({
687
+ ...coord,
688
+ rowId: getBodyRowAtIndex(coord.rowIndex)?.rowId ?? null,
689
+ }),
631
690
  getAdjacentNavigableColumnIndex: (columnIndex, direction) => {
632
691
  const lastColumn = Math.max(0, options.visibleColumns.value.length - 1);
633
692
  return Math.max(0, Math.min(lastColumn, columnIndex + direction));
@@ -641,6 +700,9 @@ export function useDataGridAppInteractionController(options) {
641
700
  options.clearCellSelection();
642
701
  },
643
702
  setLastAction: () => undefined,
703
+ resolveDirectionalJumpTarget: (current, direction, event) => {
704
+ return resolveDirectionalSemanticJumpTarget(current, direction, event);
705
+ },
644
706
  applyCellSelection: (nextCoord, extend, fallbackAnchor) => {
645
707
  options.applyCellSelectionByCoord(nextCoord, extend, fallbackAnchor);
646
708
  },
@@ -1 +1 @@
1
- {"version":3,"file":"useDataGridAppRowPresentation.d.ts","sourceRoot":"","sources":["../../src/app/useDataGridAppRowPresentation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,KAAK,CAAA;AAC9B,OAAO,EAEL,KAAK,eAAe,EACrB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAA;AACjF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAE9C,MAAM,WAAW,oCAAoC,CAAC,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACxF,IAAI,EAAE,GAAG,CAAC,eAAe,CAAC,CAAA;IAC1B,OAAO,EAAE,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,EAAE,KAAK,GAAG,gBAAgB,CAAC,CAAA;IACvE,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC7B,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;CAC5B;AAED,MAAM,WAAW,mCAAmC,CAAC,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACvF,aAAa,EAAE,CAAC,GAAG,EAAE,eAAe,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,MAAM,KAAK,MAAM,CAAA;IACxE,QAAQ,EAAE,CAAC,GAAG,EAAE,eAAe,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,MAAM,KAAK,MAAM,CAAA;IAC7D,eAAe,EAAE,CAAC,GAAG,EAAE,eAAe,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,MAAM,KAAK,MAAM,CAAA;IACpE,QAAQ,EAAE,CAAC,GAAG,EAAE,eAAe,CAAC,IAAI,CAAC,KAAK,MAAM,CAAA;IAChD,cAAc,EAAE,CAAC,GAAG,EAAE,eAAe,CAAC,IAAI,CAAC,KAAK,IAAI,CAAA;CACrD;AAED,wBAAgB,6BAA6B,CAAC,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChF,OAAO,EAAE,oCAAoC,CAAC,IAAI,CAAC,GAClD,mCAAmC,CAAC,IAAI,CAAC,CA8G3C"}
1
+ {"version":3,"file":"useDataGridAppRowPresentation.d.ts","sourceRoot":"","sources":["../../src/app/useDataGridAppRowPresentation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,KAAK,CAAA;AAC9B,OAAO,EAEL,KAAK,eAAe,EACrB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAA;AACjF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAE9C,MAAM,WAAW,oCAAoC,CAAC,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACxF,IAAI,EAAE,GAAG,CAAC,eAAe,CAAC,CAAA;IAC1B,OAAO,EAAE,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,EAAE,KAAK,GAAG,gBAAgB,CAAC,CAAA;IACvE,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC7B,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;CAC5B;AAED,MAAM,WAAW,mCAAmC,CAAC,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACvF,aAAa,EAAE,CAAC,GAAG,EAAE,eAAe,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,MAAM,KAAK,MAAM,CAAA;IACxE,QAAQ,EAAE,CAAC,GAAG,EAAE,eAAe,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,MAAM,KAAK,MAAM,CAAA;IAC7D,eAAe,EAAE,CAAC,GAAG,EAAE,eAAe,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,MAAM,KAAK,MAAM,CAAA;IACpE,QAAQ,EAAE,CAAC,GAAG,EAAE,eAAe,CAAC,IAAI,CAAC,KAAK,MAAM,CAAA;IAChD,cAAc,EAAE,CAAC,GAAG,EAAE,eAAe,CAAC,IAAI,CAAC,KAAK,IAAI,CAAA;CACrD;AAED,wBAAgB,6BAA6B,CAAC,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChF,OAAO,EAAE,oCAAoC,CAAC,IAAI,CAAC,GAClD,mCAAmC,CAAC,IAAI,CAAC,CA0G3C"}
@@ -4,10 +4,6 @@ export function useDataGridAppRowPresentation(options) {
4
4
  if (row.kind === "group") {
5
5
  return "";
6
6
  }
7
- const sourceId = row.data.id;
8
- if (typeof sourceId === "number" && Number.isFinite(sourceId)) {
9
- return String(sourceId);
10
- }
11
7
  return String(options.viewportRowStart.value + rowOffset + 1);
12
8
  };
13
9
  const resolveColumnDef = (key) => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@affino/datagrid-vue",
3
- "version": "0.3.16",
3
+ "version": "0.3.18",
4
4
  "author": "Anton Pavlov <a.pavlov@affino.dev>",
5
5
  "type": "module",
6
6
  "description": "Vue adapter and headless foundation for Affino DataGrid",
@@ -75,9 +75,9 @@
75
75
  }
76
76
  },
77
77
  "dependencies": {
78
- "@affino/datagrid-pivot": "0.1.1",
79
- "@affino/datagrid-orchestration": "0.3.6",
80
78
  "@affino/datagrid-core": "0.3.9",
79
+ "@affino/datagrid-pivot": "0.1.1",
80
+ "@affino/datagrid-orchestration": "0.3.7",
81
81
  "@affino/datagrid-worker": "0.1.1"
82
82
  },
83
83
  "devDependencies": {