@alaarab/ogrid-vue 2.1.14 → 2.1.15

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 (2) hide show
  1. package/dist/esm/index.js +20 -12
  2. package/package.json +2 -2
package/dist/esm/index.js CHANGED
@@ -71,8 +71,8 @@ var MarchingAntsOverlay = defineComponent({
71
71
  return () => {
72
72
  if (!selRect.value && !clipRect.value) return null;
73
73
  return h("div", { style: { position: "relative" } }, [
74
- // Selection range: solid green border (hidden when clipboard range overlaps)
75
- selRect.value && !clipRangeMatchesSel.value ? h("svg", {
74
+ // Selection range: solid green border (hidden when clipboard range overlaps or single-cell — CSS outline handles that)
75
+ selRect.value && !clipRangeMatchesSel.value && !(props.selectionRange && props.selectionRange.startRow === props.selectionRange.endRow && props.selectionRange.startCol === props.selectionRange.endCol) ? h("svg", {
76
76
  style: {
77
77
  position: "absolute",
78
78
  top: `${selRect.value.top}px`,
@@ -151,7 +151,10 @@ var StatusBar = defineComponent({
151
151
  display: "flex",
152
152
  alignItems: "center",
153
153
  gap: "16px",
154
- fontSize: "0.875rem"
154
+ fontSize: "0.875rem",
155
+ lineHeight: "20px",
156
+ minHeight: "33px",
157
+ boxSizing: "border-box"
155
158
  }
156
159
  }, parts.map(
157
160
  (p, i) => h("span", {
@@ -961,15 +964,17 @@ function useCellSelection(params) {
961
964
  }
962
965
  }
963
966
  if (!cellIndex) cellIndex = buildCellIndex(wrapperRef.value);
967
+ let rebuilt = false;
964
968
  for (let r = minR; r <= maxR; r++) {
965
969
  for (let c = minC; c <= maxC; c++) {
966
970
  const key = `${r},${c + colOff}`;
967
971
  let el = cellIndex?.get(key);
968
- if (el && !el.isConnected) {
972
+ if (el && !el.isConnected && !rebuilt) {
973
+ rebuilt = true;
969
974
  cellIndex = buildCellIndex(wrapperRef.value);
970
975
  el = cellIndex?.get(key);
971
976
  }
972
- if (el) {
977
+ if (el && el.isConnected) {
973
978
  styleCellInRange(el, r, c, minR, maxR, minC, maxC, anchor);
974
979
  }
975
980
  }
@@ -1097,10 +1102,13 @@ function useCellSelection(params) {
1097
1102
  const finalRange = liveDragRange;
1098
1103
  if (finalRange) {
1099
1104
  setSelectionRange(finalRange);
1100
- setActiveCell({
1101
- rowIndex: finalRange.endRow,
1102
- columnIndex: finalRange.endCol + getColOffset()
1103
- });
1105
+ const anchor = dragStart;
1106
+ if (anchor) {
1107
+ setActiveCell({
1108
+ rowIndex: anchor.row,
1109
+ columnIndex: anchor.col + getColOffset()
1110
+ });
1111
+ }
1104
1112
  }
1105
1113
  }
1106
1114
  clearDragAttrs();
@@ -1607,7 +1615,7 @@ function useFillHandle(params) {
1607
1615
  norm.endRow = Math.min(norm.endRow, vr.endIndex);
1608
1616
  }
1609
1617
  setSelectionRange(norm);
1610
- setActiveCell({ rowIndex: end.endRow, columnIndex: end.endCol + getColOffset() });
1618
+ setActiveCell({ rowIndex: drag.startRow, columnIndex: drag.startCol + getColOffset() });
1611
1619
  const currentItems = items.value;
1612
1620
  const currentCols = visibleCols.value;
1613
1621
  const callback = onCellValueChanged.value;
@@ -3430,8 +3438,8 @@ function createDataGridTable(ui) {
3430
3438
  if (col.type === "numeric") cellClasses.push("ogrid-cell-content--numeric");
3431
3439
  else if (col.type === "boolean") cellClasses.push("ogrid-cell-content--boolean");
3432
3440
  if (descriptor.canEditAny) cellClasses.push("ogrid-cell-content--editable");
3433
- if (descriptor.isActive && !descriptor.isInRange) cellClasses.push("ogrid-cell-content--active");
3434
- if (descriptor.isInRange) cellClasses.push("ogrid-cell-in-range");
3441
+ if (descriptor.isActive) cellClasses.push("ogrid-cell-content--active");
3442
+ if (descriptor.isInRange && !descriptor.isActive) cellClasses.push("ogrid-cell-in-range");
3435
3443
  if (descriptor.isInCutRange) cellClasses.push("ogrid-cell-cut");
3436
3444
  const styledContent = cellStyle ? h("span", { style: cellStyle }, content) : content;
3437
3445
  return h("div", {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alaarab/ogrid-vue",
3
- "version": "2.1.14",
3
+ "version": "2.1.15",
4
4
  "description": "OGrid Vue – Vue 3 composables, headless components, and utilities for OGrid data grids.",
5
5
  "main": "dist/esm/index.js",
6
6
  "module": "dist/esm/index.js",
@@ -36,7 +36,7 @@
36
36
  "node": ">=18"
37
37
  },
38
38
  "dependencies": {
39
- "@alaarab/ogrid-core": "2.1.14"
39
+ "@alaarab/ogrid-core": "2.1.15"
40
40
  },
41
41
  "peerDependencies": {
42
42
  "vue": "^3.3.0"