@dxos/lit-grid 0.7.1 → 0.7.2-main.f1adc9f

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 (74) hide show
  1. package/dist/src/dx-grid.d.ts +2 -0
  2. package/dist/src/dx-grid.d.ts.map +1 -1
  3. package/dist/src/dx-grid.js +37 -5
  4. package/dist/src/dx-grid.js.map +1 -1
  5. package/dist/src/dx-grid.lit-stories.d.ts +4 -1
  6. package/dist/src/dx-grid.lit-stories.d.ts.map +1 -1
  7. package/dist/src/dx-grid.lit-stories.js +14 -12
  8. package/dist/src/dx-grid.lit-stories.js.map +1 -1
  9. package/dist/src/testing/index.d.ts +2 -0
  10. package/dist/src/testing/index.d.ts.map +1 -0
  11. package/dist/src/testing/index.js +5 -0
  12. package/dist/src/testing/index.js.map +1 -0
  13. package/dist/src/testing/playwright/dx-grid-manager.d.ts +24 -0
  14. package/dist/src/testing/playwright/dx-grid-manager.d.ts.map +1 -0
  15. package/dist/src/testing/playwright/dx-grid-manager.js +79 -0
  16. package/dist/src/testing/playwright/dx-grid-manager.js.map +1 -0
  17. package/dist/src/testing/playwright/dx-grid.spec.d.ts +2 -0
  18. package/dist/src/testing/playwright/dx-grid.spec.d.ts.map +1 -0
  19. package/dist/src/testing/playwright/dx-grid.spec.js +92 -0
  20. package/dist/src/testing/playwright/dx-grid.spec.js.map +1 -0
  21. package/dist/src/testing/playwright/playwright.config.d.ts +3 -0
  22. package/dist/src/testing/playwright/playwright.config.d.ts.map +1 -0
  23. package/dist/src/testing/playwright/playwright.config.js +16 -0
  24. package/dist/src/testing/playwright/playwright.config.js.map +1 -0
  25. package/dist/src/types.d.ts +5 -3
  26. package/dist/src/types.d.ts.map +1 -1
  27. package/dist/src/types.js +4 -3
  28. package/dist/src/types.js.map +1 -1
  29. package/dist/src/util.d.ts +2 -5
  30. package/dist/src/util.d.ts.map +1 -1
  31. package/dist/src/util.js +3 -5
  32. package/dist/src/util.js.map +1 -1
  33. package/dist/types/src/dx-grid.d.ts +2 -0
  34. package/dist/types/src/dx-grid.d.ts.map +1 -1
  35. package/dist/types/src/dx-grid.js +37 -5
  36. package/dist/types/src/dx-grid.js.map +1 -1
  37. package/dist/types/src/dx-grid.lit-stories.d.ts +4 -1
  38. package/dist/types/src/dx-grid.lit-stories.d.ts.map +1 -1
  39. package/dist/types/src/dx-grid.lit-stories.js +14 -12
  40. package/dist/types/src/dx-grid.lit-stories.js.map +1 -1
  41. package/dist/types/src/testing/index.d.ts +2 -0
  42. package/dist/types/src/testing/index.d.ts.map +1 -0
  43. package/dist/types/src/testing/index.js +5 -0
  44. package/dist/types/src/testing/index.js.map +1 -0
  45. package/dist/types/src/testing/playwright/dx-grid-manager.d.ts +24 -0
  46. package/dist/types/src/testing/playwright/dx-grid-manager.d.ts.map +1 -0
  47. package/dist/types/src/testing/playwright/dx-grid-manager.js +79 -0
  48. package/dist/types/src/testing/playwright/dx-grid-manager.js.map +1 -0
  49. package/dist/types/src/testing/playwright/dx-grid.spec.d.ts +2 -0
  50. package/dist/types/src/testing/playwright/dx-grid.spec.d.ts.map +1 -0
  51. package/dist/types/src/testing/playwright/dx-grid.spec.js +92 -0
  52. package/dist/types/src/testing/playwright/dx-grid.spec.js.map +1 -0
  53. package/dist/types/src/testing/playwright/playwright.config.d.ts +3 -0
  54. package/dist/types/src/testing/playwright/playwright.config.d.ts.map +1 -0
  55. package/dist/types/src/testing/playwright/playwright.config.js +16 -0
  56. package/dist/types/src/testing/playwright/playwright.config.js.map +1 -0
  57. package/dist/types/src/types.d.ts +5 -3
  58. package/dist/types/src/types.d.ts.map +1 -1
  59. package/dist/types/src/types.js +4 -3
  60. package/dist/types/src/types.js.map +1 -1
  61. package/dist/types/src/util.d.ts +2 -5
  62. package/dist/types/src/util.d.ts.map +1 -1
  63. package/dist/types/src/util.js +3 -5
  64. package/dist/types/src/util.js.map +1 -1
  65. package/package.json +19 -3
  66. package/src/dx-grid.lit-stories.ts +14 -12
  67. package/src/dx-grid.pcss +3 -2
  68. package/src/dx-grid.ts +43 -7
  69. package/src/testing/index.ts +5 -0
  70. package/src/testing/playwright/dx-grid-manager.ts +110 -0
  71. package/src/testing/playwright/dx-grid.spec.ts +118 -0
  72. package/src/testing/playwright/playwright.config.ts +18 -0
  73. package/src/types.ts +9 -6
  74. package/src/util.ts +6 -5
@@ -0,0 +1 @@
1
+ {"version":3,"file":"playwright.config.js","sourceRoot":"","sources":["../../../../../src/testing/playwright/playwright.config.ts"],"names":[],"mappings":"AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;AAEF,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAExD,eAAe,YAAY,CAAC;IAC1B,GAAG,WAAW,CAAC,UAAU,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;IAClD,GAAG,SAAS,CAAC,SAAS,CAAC;IACvB,SAAS,EAAE;QACT,OAAO,EAAE,kCAAkC;QAC3C,IAAI,EAAE,IAAI;QACV,mBAAmB,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;KACrC;CACF,CAAC,CAAC"}
@@ -1,5 +1,7 @@
1
1
  import { type DxGrid } from './dx-grid';
2
- export type DxGridCellIndex = `${string},${string}`;
2
+ export declare const separator: ",";
3
+ export type DxGridPlaneCellIndex = `${string}${typeof separator}${string}`;
4
+ export type DxGridCellIndex = `${DxGridPlane}${typeof separator}${string}${typeof separator}${string}`;
3
5
  export type DxGridAxis = 'row' | 'col';
4
6
  export type DxGridFrozenColsPlane = `frozenCols${'Start' | 'End'}`;
5
7
  export type DxGridFrozenRowsPlane = `frozenRows${'Start' | 'End'}`;
@@ -20,7 +22,7 @@ export type DxGridAnnotatedPanEvent = (WheelEvent | PointerEvent) & {
20
22
  overscrollBlock: number;
21
23
  gridId: string;
22
24
  }>;
23
- export type DxGridPlaneCells = Record<DxGridCellIndex, DxGridCellValue>;
25
+ export type DxGridPlaneCells = Record<DxGridPlaneCellIndex, DxGridCellValue>;
24
26
  export type DxGridCells = {
25
27
  grid: DxGridPlaneCells;
26
28
  } & Partial<Record<DxGridFixedPlane | DxGridFrozenPlane, DxGridPlaneCells>>;
@@ -108,7 +110,7 @@ export declare class DxAxisResizeInternal extends Event {
108
110
  }
109
111
  export type DxEditRequestProps = Pick<DxEditRequest, 'cellIndex' | 'cellBox' | 'initialContent'>;
110
112
  export declare class DxEditRequest extends Event {
111
- readonly cellIndex: DxGridCellIndex;
113
+ readonly cellIndex: DxGridPlaneCellIndex;
112
114
  readonly cellBox: Record<'insetInlineStart' | 'insetBlockStart' | 'inlineSize' | 'blockSize', number>;
113
115
  readonly initialContent?: string;
114
116
  constructor(props: DxEditRequestProps);
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,8 @@
1
1
  //
2
2
  // Copyright 2024 DXOS.org
3
3
  //
4
- import { toCellIndex } from './util';
4
+ import { toPlaneCellIndex } from './util';
5
+ export const separator = ',';
5
6
  export class DxAxisResize extends Event {
6
7
  constructor(props) {
7
8
  super('dx-axis-resize');
@@ -33,8 +34,8 @@ export class DxEditRequest extends Event {
33
34
  export class DxGridCellsSelect extends Event {
34
35
  constructor({ start, end }) {
35
36
  super('dx-grid-cells-select');
36
- this.start = toCellIndex(start);
37
- this.end = toCellIndex(end);
37
+ this.start = toPlaneCellIndex(start);
38
+ this.end = toPlaneCellIndex(end);
38
39
  this.minCol = Math.min(start.col, end.col);
39
40
  this.maxCol = Math.max(start.col, end.col);
40
41
  this.minRow = Math.min(start.row, end.row);
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;AAGF,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAiHrC,MAAM,OAAO,YAAa,SAAQ,KAAK;IAKrC,YAAY,KAAwB;QAClC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACvB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;IACzB,CAAC;CACF;AAED,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IAO7C,YAAY,KAAgC;QAC1C,KAAK,CAAC,yBAAyB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACpE,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACvB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACvB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;IAC3B,CAAC;CACF;AAID,MAAM,OAAO,aAAc,SAAQ,KAAK;IAItC,YAAY,KAAyB;QACnC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACzB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;QACjC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QAC7B,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,cAAc,CAAC;IAC7C,CAAC;CACF;AAKD,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IAO1C,YAAY,EAAE,KAAK,EAAE,GAAG,EAAe;QACrC,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC9B,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;QAChC,IAAI,CAAC,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;QAC3C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;QAC3C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;QAC3C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7C,CAAC;CACF"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;AAGF,OAAO,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AAE1C,MAAM,CAAC,MAAM,SAAS,GAAG,GAAY,CAAC;AAkHtC,MAAM,OAAO,YAAa,SAAQ,KAAK;IAKrC,YAAY,KAAwB;QAClC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACvB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;IACzB,CAAC;CACF;AAED,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IAO7C,YAAY,KAAgC;QAC1C,KAAK,CAAC,yBAAyB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACpE,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACvB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACvB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;IAC3B,CAAC;CACF;AAID,MAAM,OAAO,aAAc,SAAQ,KAAK;IAItC,YAAY,KAAyB;QACnC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACzB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;QACjC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QAC7B,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,cAAc,CAAC;IAC7C,CAAC;CACF;AAKD,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IAO1C,YAAY,EAAE,KAAK,EAAE,GAAG,EAAe;QACrC,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC9B,IAAI,CAAC,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;QACrC,IAAI,CAAC,GAAG,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;QAC3C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;QAC3C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;QAC3C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7C,CAAC;CACF"}
@@ -1,8 +1,5 @@
1
- import { type DxGridCellIndex, type DxGridPosition, type DxGridPointer, type DxGridSelectionProps, type DxGridPositionNullable, type DxGridPlane, type DxGridFrozenRowsPlane, type DxGridFrozenColsPlane, type DxGridFrozenPlane, type DxGridAxis } from './types';
2
- /**
3
- * Separator for serializing cell position vectors
4
- */
5
- export declare const separator = ",";
1
+ import { type DxGridPlaneCellIndex, type DxGridCellIndex, type DxGridPosition, type DxGridPointer, type DxGridSelectionProps, type DxGridPositionNullable, type DxGridPlane, type DxGridFrozenRowsPlane, type DxGridFrozenColsPlane, type DxGridFrozenPlane, type DxGridAxis, type DxGridPlanePosition } from './types';
2
+ export declare const toPlaneCellIndex: (cellCoords: Partial<DxGridPosition> & DxGridPlanePosition) => DxGridPlaneCellIndex;
6
3
  export declare const toCellIndex: (cellCoords: DxGridPosition) => DxGridCellIndex;
7
4
  export declare const colToA1Notation: (col: number) => string;
8
5
  export declare const rowToA1Notation: (row: number) => string;
@@ -1 +1 @@
1
- {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../src/util.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,EAC3B,KAAK,WAAW,EAChB,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,EACtB,KAAK,UAAU,EAChB,MAAM,SAAS,CAAC;AAEjB;;GAEG;AACH,eAAO,MAAM,SAAS,MAAM,CAAC;AAE7B,eAAO,MAAM,WAAW,eAAgB,cAAc,KAAG,eACP,CAAC;AAMnD,eAAO,MAAM,eAAe,QAAS,MAAM,KAAG,MAK7C,CAAC;AAEF,eAAO,MAAM,eAAe,QAAS,MAAM,KAAG,MAE7C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,GAAG,IAAI,CAAC;AAErB;;GAEG;AACH,eAAO,MAAM,eAAe,IAAI,CAAC;AAEjC;;GAEG;AACH,eAAO,MAAM,eAAe,IAAI,CAAC;AAKjC,eAAO,MAAM,UAAU,KAAiB,CAAC;AACzC,eAAO,MAAM,UAAU,OAAO,CAAC;AAC/B,eAAO,MAAM,UAAU,KAAiB,CAAC;AACzC,eAAO,MAAM,UAAU,OAAO,CAAC;AAE/B,eAAO,MAAM,YAAY,YAAa,aAAa,oBAAoB,YAAY,YAMlF,CAAC;AAEF,eAAO,MAAM,cAAc,mBAAoB,cAAc,gBAAgB,cAAc,KAAG,oBAQ7F,CAAC;AAEF,eAAO,MAAM,YAAY,QAClB,MAAM,OACN,MAAM,SACJ,WAAW,aACP,oBAAoB,KAC9B,OAQF,CAAC;AAEF,eAAO,MAAM,aAAa,WAAY,WAAW,GAAG,IAAI,KAAG;IAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,QAAQ,EAAE,WAAW,GAAG,IAAI,CAAA;CAG/G,CAAC;AAEF,eAAO,MAAM,WAAW,WAAY,WAAW,GAAG,IAAI,aAAa,WAAW,GAAG,IAAI,KAAG,sBAiBvF,CAAC;AAEF,eAAO,MAAM,aAAa,WAAY,WAAW,GAAG,IAAI,KAAG,WAAW,GAAG,IAExE,CAAC;AAEF,eAAO,MAAM,eAAe,UAAW,WAAW,KAAG,MAAM,GAAG,qBAa7D,CAAC;AAEF,eAAO,MAAM,eAAe,UAAW,WAAW,KAAG,MAAM,GAAG,qBAa7D,CAAC;AAEF,eAAO,MAAM,kBAAkB,SAAU,UAAU,aAAa,WAAW,KAAG,MAAM,GAAG,iBAmBtF,CAAC;AAEF,eAAO,MAAM,UAAU,MAAO,sBAAsB,KAAK,sBAAsB,mBAO9D,CAAC"}
1
+ {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../src/util.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,KAAK,oBAAoB,EACzB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,EAC3B,KAAK,WAAW,EAChB,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,EACtB,KAAK,UAAU,EACf,KAAK,mBAAmB,EAEzB,MAAM,SAAS,CAAC;AAEjB,eAAO,MAAM,gBAAgB,eAAgB,OAAO,CAAC,cAAc,CAAC,GAAG,mBAAmB,KAAG,oBAC3C,CAAC;AAEnD,eAAO,MAAM,WAAW,eAAgB,cAAc,KAAG,eACwB,CAAC;AAMlF,eAAO,MAAM,eAAe,QAAS,MAAM,KAAG,MAK7C,CAAC;AAEF,eAAO,MAAM,eAAe,QAAS,MAAM,KAAG,MAE7C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,GAAG,IAAI,CAAC;AAErB;;GAEG;AACH,eAAO,MAAM,eAAe,IAAI,CAAC;AAEjC;;GAEG;AACH,eAAO,MAAM,eAAe,IAAI,CAAC;AAKjC,eAAO,MAAM,UAAU,KAAiB,CAAC;AACzC,eAAO,MAAM,UAAU,OAAO,CAAC;AAC/B,eAAO,MAAM,UAAU,KAAiB,CAAC;AACzC,eAAO,MAAM,UAAU,OAAO,CAAC;AAE/B,eAAO,MAAM,YAAY,YAAa,aAAa,oBAAoB,YAAY,YAMlF,CAAC;AAEF,eAAO,MAAM,cAAc,mBAAoB,cAAc,gBAAgB,cAAc,KAAG,oBAQ7F,CAAC;AAEF,eAAO,MAAM,YAAY,QAClB,MAAM,OACN,MAAM,SACJ,WAAW,aACP,oBAAoB,KAC9B,OAQF,CAAC;AAEF,eAAO,MAAM,aAAa,WAAY,WAAW,GAAG,IAAI,KAAG;IAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,QAAQ,EAAE,WAAW,GAAG,IAAI,CAAA;CAG/G,CAAC;AAEF,eAAO,MAAM,WAAW,WAAY,WAAW,GAAG,IAAI,aAAa,WAAW,GAAG,IAAI,KAAG,sBAiBvF,CAAC;AAEF,eAAO,MAAM,aAAa,WAAY,WAAW,GAAG,IAAI,KAAG,WAAW,GAAG,IAExE,CAAC;AAEF,eAAO,MAAM,eAAe,UAAW,WAAW,KAAG,MAAM,GAAG,qBAa7D,CAAC;AAEF,eAAO,MAAM,eAAe,UAAW,WAAW,KAAG,MAAM,GAAG,qBAa7D,CAAC;AAEF,eAAO,MAAM,kBAAkB,SAAU,UAAU,aAAa,WAAW,KAAG,MAAM,GAAG,iBAmBtF,CAAC;AAEF,eAAO,MAAM,UAAU,MAAO,sBAAsB,KAAK,sBAAsB,mBAO9D,CAAC"}
@@ -2,11 +2,9 @@
2
2
  // Copyright 2024 DXOS.org
3
3
  //
4
4
  import { defaultSizeRow } from './defs';
5
- /**
6
- * Separator for serializing cell position vectors
7
- */
8
- export const separator = ',';
9
- export const toCellIndex = (cellCoords) => `${cellCoords.col}${separator}${cellCoords.row}`;
5
+ import { separator, } from './types';
6
+ export const toPlaneCellIndex = (cellCoords) => `${cellCoords.col}${separator}${cellCoords.row}`;
7
+ export const toCellIndex = (cellCoords) => `${cellCoords.plane}${separator}${cellCoords.col}${separator}${cellCoords.row}`;
10
8
  //
11
9
  // A1 notation is the fallback for numbering columns and rows.
12
10
  //
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../../../src/util.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../../../src/util.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dxos/lit-grid",
3
- "version": "0.7.1",
3
+ "version": "0.7.2-main.f1adc9f",
4
4
  "description": "A grid Web Component using Lit",
5
5
  "homepage": "https://dxos.org",
6
6
  "bugs": "https://github.com/dxos/dxos/issues",
@@ -10,12 +10,25 @@
10
10
  "exports": {
11
11
  ".": {
12
12
  "types": "./dist/types/src/index.d.ts",
13
- "import": "./dist/src/index.js"
13
+ "browser": "./dist/src/index.js",
14
+ "node": "./dist/src/index.js"
14
15
  },
15
- "./dx-grid.pcss": "./src/dx-grid.pcss"
16
+ "./dx-grid.pcss": "./src/dx-grid.pcss",
17
+ "./testing": {
18
+ "types": "./dist/types/src/testing/index.d.ts",
19
+ "browser": "./dist/src/testing/index.js",
20
+ "node": "./dist/src/testing/index.js"
21
+ }
16
22
  },
17
23
  "main": "dist/src/index.js",
18
24
  "types": "dist/src/index.d.ts",
25
+ "typesVersions": {
26
+ "*": {
27
+ "testing": [
28
+ "dist/types/src/testing/index.d.ts"
29
+ ]
30
+ }
31
+ },
19
32
  "files": [
20
33
  "src",
21
34
  "dist"
@@ -23,5 +36,8 @@
23
36
  "dependencies": {
24
37
  "@atlaskit/pragmatic-drag-and-drop": "^1.4.0",
25
38
  "lit": "^3.2.0"
39
+ },
40
+ "devDependencies": {
41
+ "@dxos/test-utils": "0.7.2-main.f1adc9f"
26
42
  }
27
43
  }
@@ -9,7 +9,7 @@ import './dx-grid-multiselect-cell.ts';
9
9
 
10
10
  import { html, nothing } from 'lit';
11
11
 
12
- import { defaultSizeCol, defaultSizeRow } from './defs.js';
12
+ import { defaultSizeRow } from './defs.js';
13
13
  import { type DxGridFrozenPlane, type DxGridPlaneCells, type DxGridProps } from './types';
14
14
  import { colToA1Notation, rowToA1Notation } from './util';
15
15
 
@@ -98,7 +98,10 @@ Basic.args = {
98
98
  } satisfies DxGridProps['frozen']),
99
99
  };
100
100
 
101
- export const Frozen = (props: DxGridProps) => {
101
+ /**
102
+ * This story is for testing, please make changes in concert with changes to `dx-grid.spec.ts`.
103
+ */
104
+ export const Spec = (props: DxGridProps) => {
102
105
  return html`<div class="dark" style="position:fixed;inset:0;">
103
106
  <dx-grid
104
107
  initialCells=${props.initialCells ?? nothing}
@@ -110,31 +113,30 @@ export const Frozen = (props: DxGridProps) => {
110
113
  </div>`;
111
114
  };
112
115
 
113
- Frozen.args = {
116
+ Spec.args = {
114
117
  initialCells: JSON.stringify({
115
118
  grid: {},
116
- ...initialLabels,
117
119
  } satisfies DxGridProps['initialCells']),
118
120
  columnDefault: JSON.stringify({
119
121
  grid: {
120
- size: defaultSizeCol,
122
+ size: 31,
121
123
  },
122
124
  frozenColsStart: {
123
- size: defaultSizeCol,
125
+ size: 15,
124
126
  },
125
127
  frozenColsEnd: {
126
- size: defaultSizeCol,
128
+ size: 23,
127
129
  },
128
130
  } satisfies DxGridProps['columnDefault']),
129
131
  rowDefault: JSON.stringify({
130
132
  grid: {
131
- size: defaultSizeRow,
133
+ size: 31,
132
134
  },
133
135
  frozenRowsStart: {
134
- size: defaultSizeRow,
136
+ size: 15,
135
137
  },
136
138
  frozenRowsEnd: {
137
- size: defaultSizeRow,
139
+ size: 23,
138
140
  },
139
141
  } satisfies DxGridProps['rowDefault']),
140
142
  columns: JSON.stringify({ grid: {} } satisfies DxGridProps['columns']),
@@ -142,8 +144,8 @@ Frozen.args = {
142
144
  frozen: JSON.stringify({
143
145
  frozenColsStart: 2,
144
146
  frozenRowsStart: 2,
145
- frozenColsEnd: 2,
146
- frozenRowsEnd: 2,
147
+ frozenColsEnd: 1,
148
+ frozenRowsEnd: 1,
147
149
  } satisfies DxGridProps['frozen']),
148
150
  };
149
151
 
package/src/dx-grid.pcss CHANGED
@@ -5,8 +5,6 @@ dx-grid {
5
5
  display: contents;
6
6
  --dx-grid-gap: 1px;
7
7
  --dx-plane-gap: 1px;
8
- touch-action: none;
9
- user-select: none;
10
8
  }
11
9
 
12
10
  .dx-grid {
@@ -21,6 +19,9 @@ dx-grid {
21
19
  max-inline-size: 100dvw;
22
20
  max-block-size: 100dvh;
23
21
 
22
+ touch-action: none;
23
+ user-select: none;
24
+
24
25
  background: var(--dx-grid-lines, var(--dx-gridLine));
25
26
  }
26
27
 
package/src/dx-grid.ts CHANGED
@@ -14,7 +14,7 @@ import './dx-grid-axis-resize-handle';
14
14
  import {
15
15
  type DxGridAxisMetaProps,
16
16
  type DxGridAxisSizes,
17
- type DxGridCellIndex,
17
+ type DxGridPlaneCellIndex,
18
18
  type DxGridCellValue,
19
19
  DxAxisResize,
20
20
  type DxAxisResizeInternal,
@@ -38,10 +38,10 @@ import {
38
38
  type DxGridSelectionProps,
39
39
  type DxGridAnnotatedPanEvent,
40
40
  type DxGridRange,
41
+ separator,
41
42
  } from './types';
42
43
  import {
43
- separator,
44
- toCellIndex,
44
+ toPlaneCellIndex,
45
45
  gap,
46
46
  resizeTolerance,
47
47
  sizeColMin,
@@ -247,6 +247,12 @@ export class DxGrid extends LitElement {
247
247
  @state()
248
248
  private intrinsicBlockSize: number = Infinity;
249
249
 
250
+ @state()
251
+ private totalIntrinsicInlineSize: number = Infinity;
252
+
253
+ @state()
254
+ private totalIntrinsicBlockSize: number = Infinity;
255
+
250
256
  //
251
257
  // Primary pointer and keyboard handlers
252
258
  //
@@ -258,7 +264,7 @@ export class DxGrid extends LitElement {
258
264
  queueMicrotask(() =>
259
265
  this.dispatchEvent(
260
266
  new DxEditRequest({
261
- cellIndex: toCellIndex(this.focusedCell),
267
+ cellIndex: toPlaneCellIndex(this.focusedCell),
262
268
  cellBox: this.focusedCellBox(),
263
269
  initialContent,
264
270
  }),
@@ -497,7 +503,7 @@ export class DxGrid extends LitElement {
497
503
  }
498
504
 
499
505
  private cell(c: number | string, r: number | string, plane: DxGridPlane): DxGridCellValue | undefined {
500
- const index: DxGridCellIndex = `${c}${separator}${r}`;
506
+ const index: DxGridPlaneCellIndex = `${c}${separator}${r}`;
501
507
  return this.cells?.[plane]?.[index] ?? this.initialCells?.[plane]?.[index];
502
508
  }
503
509
 
@@ -831,9 +837,11 @@ export class DxGrid extends LitElement {
831
837
 
832
838
  private handleFocus(event: FocusEvent) {
833
839
  const cellCoords = closestCell(event.target);
834
- if (cellCoords) {
840
+ if (cellCoords || targetIsPlane(event.target)) {
835
841
  this.focusActive = true;
836
- this.setFocusedCell(cellCoords);
842
+ if (cellCoords) {
843
+ this.setFocusedCell(cellCoords);
844
+ }
837
845
  }
838
846
  }
839
847
 
@@ -1268,6 +1276,12 @@ export class DxGrid extends LitElement {
1268
1276
  'grid-template-rows': `${this.templatefrozenRowsStart ? 'min-content ' : ''}minmax(0, ${
1269
1277
  Number.isFinite(this.limitRows) ? `${Math.max(0, this.intrinsicBlockSize)}px` : '1fr'
1270
1278
  })${this.templatefrozenRowsEnd ? ' min-content' : ''}`,
1279
+ '--dx-grid-content-inline-size': Number.isFinite(this.limitColumns)
1280
+ ? `${Math.max(0, this.totalIntrinsicInlineSize)}px`
1281
+ : 'max-content',
1282
+ '--dx-grid-content-block-size': Number.isFinite(this.limitRows)
1283
+ ? `${Math.max(0, this.totalIntrinsicBlockSize)}px`
1284
+ : 'max-content',
1271
1285
  })}
1272
1286
  data-grid=${this.gridId}
1273
1287
  data-grid-mode=${this.mode}
@@ -1324,6 +1338,17 @@ export class DxGrid extends LitElement {
1324
1338
  ? [...Array(this.limitColumns)].reduce((acc, _, c0) => acc + this.colSize(c0, 'grid'), 0) +
1325
1339
  gap * (this.limitColumns - 1)
1326
1340
  : Infinity;
1341
+ this.totalIntrinsicInlineSize =
1342
+ this.intrinsicInlineSize +
1343
+ (Number.isFinite(this.frozen.frozenColsStart)
1344
+ ? [...Array(this.frozen.frozenColsStart)].reduce(
1345
+ (acc, _, c0) => acc + gap + this.colSize(c0, 'frozenColsStart'),
1346
+ 0,
1347
+ )
1348
+ : 0) +
1349
+ (Number.isFinite(this.frozen.frozenColsEnd)
1350
+ ? [...Array(this.frozen.frozenColsEnd)].reduce((acc, _, c0) => acc + gap + this.colSize(c0, 'frozenColsEnd'), 0)
1351
+ : 0);
1327
1352
  }
1328
1353
 
1329
1354
  private updateIntrinsicBlockSize() {
@@ -1331,6 +1356,17 @@ export class DxGrid extends LitElement {
1331
1356
  ? [...Array(this.limitRows)].reduce((acc, _, r0) => acc + this.rowSize(r0, 'grid'), 0) +
1332
1357
  gap * (this.limitRows - 1)
1333
1358
  : Infinity;
1359
+ this.totalIntrinsicBlockSize =
1360
+ this.intrinsicBlockSize +
1361
+ (Number.isFinite(this.frozen.frozenRowsStart)
1362
+ ? [...Array(this.frozen.frozenRowsStart)].reduce(
1363
+ (acc, _, r0) => acc + gap + this.rowSize(r0, 'frozenRowsStart'),
1364
+ 0,
1365
+ )
1366
+ : 0) +
1367
+ (Number.isFinite(this.frozen.frozenRowsEnd)
1368
+ ? [...Array(this.frozen.frozenRowsEnd)].reduce((acc, _, r0) => acc + gap + this.rowSize(r0, 'frozenRowsEnd'), 0)
1369
+ : 0);
1334
1370
  }
1335
1371
 
1336
1372
  private updateIntrinsicSizes() {
@@ -0,0 +1,5 @@
1
+ //
2
+ // Copyright 2024 DXOS.org
3
+ //
4
+
5
+ export { DxGridManager } from './playwright/dx-grid-manager';
@@ -0,0 +1,110 @@
1
+ //
2
+ // Copyright 2024 DXOS.org
3
+ //
4
+
5
+ import { expect, type Locator, type Page } from '@playwright/test';
6
+
7
+ import type { DxGridPlanePosition } from '../../types';
8
+
9
+ /**
10
+ * Test helper for managing dx-grid interactions and assertions in Playwright tests.
11
+ * Provides utilities for cell selection, grid navigation, virtualization checks and event handling.
12
+ */
13
+ export class DxGridManager {
14
+ constructor(page: Page, grid: Locator = page.locator('dx-grid')) {
15
+ this.grid = grid;
16
+ this.page = page;
17
+ }
18
+
19
+ grid: Locator;
20
+ page: Page;
21
+
22
+ async ready() {
23
+ return this.grid.locator('.dx-grid').waitFor({ state: 'visible' });
24
+ }
25
+
26
+ planes() {
27
+ return this.grid.locator('.dx-grid [data-dx-grid-plane]');
28
+ }
29
+
30
+ cellsWithinPlane(plane: string) {
31
+ return this.grid.locator(`.dx-grid [data-dx-grid-plane="${plane}"]`).getByRole('gridcell');
32
+ }
33
+
34
+ cell(col: number, row: number, plane: string) {
35
+ return this.grid.locator(
36
+ `.dx-grid [data-dx-grid-plane="${plane}"] [aria-colindex="${col}"][aria-rowindex="${row}"]`,
37
+ );
38
+ }
39
+
40
+ mode() {
41
+ return this.grid.locator('.dx-grid').getAttribute('data-grid-mode');
42
+ }
43
+
44
+ panByWheel(deltaX: number, deltaY: number) {
45
+ return this.grid.locator('.dx-grid [data-dx-grid-plane="grid"]').dispatchEvent('wheel', { deltaX, deltaY });
46
+ }
47
+
48
+ async forCellsInRange(
49
+ start: DxGridPlanePosition,
50
+ end: DxGridPlanePosition,
51
+ iterator: (col: number, row: number) => Promise<void>,
52
+ ) {
53
+ const nCols = 1 + end.col - start.col;
54
+ const nRows = 1 + end.row - start.row;
55
+
56
+ await Promise.all(
57
+ [...Array(nCols)].map(async (_, c0) => {
58
+ return Promise.all(
59
+ [...Array(nRows)].map(async (_, r0) => {
60
+ return iterator(start.col + c0, start.row + r0);
61
+ }),
62
+ );
63
+ }),
64
+ );
65
+ }
66
+
67
+ async expectSelectionResult(start: DxGridPlanePosition, end: DxGridPlanePosition) {
68
+ return this.forCellsInRange(start, end, (col, row) =>
69
+ expect(this.cell(col, row, 'grid')).toHaveAttribute('aria-selected', 'true'),
70
+ );
71
+ }
72
+
73
+ async expectVirtualizationResult(cols: number, rows: number, minColIndex = 0, minRowIndex = 0) {
74
+ await this.cell(minColIndex, minRowIndex, 'grid').waitFor({ state: 'visible' });
75
+ // Top planes
76
+ await expect(this.cellsWithinPlane('fixedStartStart')).toHaveCount(4);
77
+ await expect(this.cellsWithinPlane('frozenRowsStart')).toHaveCount(2 * cols);
78
+ await expect(this.cellsWithinPlane('fixedStartEnd')).toHaveCount(2);
79
+ // Center planes
80
+ await expect(this.cellsWithinPlane('frozenColsStart')).toHaveCount(2 * rows);
81
+ await expect(this.cellsWithinPlane('grid')).toHaveCount(rows * cols);
82
+ await expect(this.cellsWithinPlane('frozenColsEnd')).toHaveCount(rows);
83
+ // Bottom planes
84
+ await expect(this.cellsWithinPlane('fixedEndStart')).toHaveCount(2);
85
+ await expect(this.cellsWithinPlane('frozenRowsEnd')).toHaveCount(cols);
86
+ await expect(this.cellsWithinPlane('fixedEndEnd')).toHaveCount(1);
87
+ }
88
+
89
+ async expectFocus(locator: Locator) {
90
+ return expect(await locator.evaluate((node) => document.activeElement === node)).toBeTruthy();
91
+ }
92
+
93
+ listenForSelect() {
94
+ return this.grid.evaluate(() => {
95
+ document.querySelector('dx-grid')!.addEventListener('dx-grid-cells-select', (event) => {
96
+ (window as any).DX_GRID_EVENT = event;
97
+ });
98
+ });
99
+ }
100
+
101
+ async waitForDxEvent<E>(): Promise<E> {
102
+ const event = await this.page.waitForFunction(() => {
103
+ return (window as any).DX_GRID_EVENT;
104
+ });
105
+ await this.grid.evaluate(() => {
106
+ return ((window as any).DX_GRID_EVENT = undefined);
107
+ });
108
+ return event.jsonValue();
109
+ }
110
+ }
@@ -0,0 +1,118 @@
1
+ //
2
+ // Copyright 2021 DXOS.org
3
+ //
4
+
5
+ import { expect, test, type Page } from '@playwright/test';
6
+
7
+ import { setupPage, storybookUrl } from '@dxos/test-utils/playwright';
8
+
9
+ import { DxGridManager } from './dx-grid-manager';
10
+ import { type DxGridCellsSelect } from '../../types';
11
+ import { toPlaneCellIndex } from '../../util';
12
+
13
+ const gridPlaneCellSize = 31;
14
+ const gap = 1;
15
+ const nCols = 9;
16
+ const nRows = 7;
17
+
18
+ test.describe('dx-grid', () => {
19
+ let page: Page;
20
+ let grid: DxGridManager;
21
+
22
+ test.beforeEach(async ({ browser }) => {
23
+ const setup = await setupPage(browser, {
24
+ url: storybookUrl('dx-grid--spec'),
25
+ viewportSize: {
26
+ width: (gridPlaneCellSize + gap) * (nCols + 1.5),
27
+ height: (gridPlaneCellSize + gap) * (nRows + 1.5),
28
+ }, // 336 x 272
29
+ });
30
+ page = setup.page;
31
+ grid = new DxGridManager(page);
32
+ await grid.ready();
33
+ });
34
+
35
+ test.afterEach(async () => {
36
+ await page.close();
37
+ });
38
+
39
+ test('virtualization & panning', async () => {
40
+ // There are nine planes in the spec story.
41
+ await expect(grid.planes()).toHaveCount(9);
42
+
43
+ // Each plane starts with the correct number of cells within it on initial render.
44
+ await grid.expectVirtualizationResult(nCols, nRows);
45
+
46
+ // Now pan by wheel to the center point of the cell one right and one down from the origin cell of the grid plane.
47
+ await grid.panByWheel(gridPlaneCellSize * 1.5 + gap, gridPlaneCellSize * 1.5 + gap);
48
+
49
+ // Confirm that the grid plane is showing only the cells that would be visible.
50
+ await grid.expectVirtualizationResult(nCols + 1, nRows + 1, 1, 1);
51
+ });
52
+
53
+ test('mouse access', async () => {
54
+ await grid.listenForSelect();
55
+
56
+ // Find and click on the cell at 0,0.
57
+ const cell00 = await grid.cell(0, 0, 'grid');
58
+ await cell00.click();
59
+
60
+ // It should now have focus
61
+ await grid.expectFocus(cell00);
62
+
63
+ // Shift-click on the cell at 1,1 and wait for the selection change custom event.
64
+ await grid.cell(1, 1, 'grid').click({ modifiers: ['Shift'] });
65
+ const select = await grid.waitForDxEvent<DxGridCellsSelect>();
66
+
67
+ // Expect the event to have the right information.
68
+ expect(select).toHaveProperty('start', toPlaneCellIndex({ col: 0, row: 0 }));
69
+ expect(select).toHaveProperty('end', toPlaneCellIndex({ col: 1, row: 1 }));
70
+
71
+ // The cell at 0,0 should still have focus despite the shift+click.
72
+ await grid.expectFocus(cell00);
73
+
74
+ // All the cells between 0,0 and 1,1 must have `aria-selected=true`.
75
+ await grid.expectSelectionResult({ col: 0, row: 0 }, { col: 1, row: 1 });
76
+
77
+ // Clicking on another cell should move focus and change selection to match that one cell.
78
+ const cell22 = await grid.cell(2, 2, 'grid');
79
+ await cell22.click();
80
+ const finalSelect = await grid.waitForDxEvent<DxGridCellsSelect>();
81
+
82
+ expect(finalSelect).toHaveProperty('start', toPlaneCellIndex({ col: 2, row: 2 }));
83
+ expect(finalSelect).toHaveProperty('end', toPlaneCellIndex({ col: 2, row: 2 }));
84
+
85
+ await grid.expectFocus(cell22);
86
+
87
+ await grid.expectSelectionResult({ col: 2, row: 2 }, { col: 2, row: 2 });
88
+ });
89
+
90
+ test('keyboard access', async () => {
91
+ // Tabbing to the first plane and enter to the first cell there.
92
+ await page.keyboard.press('Tab');
93
+ await page.keyboard.press('Enter');
94
+ await grid.expectFocus(grid.cell(0, 0, 'fixedStartStart'));
95
+
96
+ // Escape to the planes and arrow over to the grid plane, then enter to the first cell there.
97
+ await page.keyboard.press('Escape');
98
+ await page.keyboard.press('ArrowRight');
99
+ await page.keyboard.press('ArrowDown');
100
+ await page.keyboard.press('Enter');
101
+ await grid.expectFocus(grid.cell(0, 0, 'grid'));
102
+
103
+ // Select a range by holding shift.
104
+ await page.keyboard.down('Shift');
105
+ await page.keyboard.press('ArrowRight');
106
+ await page.keyboard.press('ArrowRight');
107
+ await page.keyboard.press('ArrowDown');
108
+ await page.keyboard.press('ArrowDown');
109
+ await page.keyboard.up('Shift');
110
+ await grid.expectFocus(grid.cell(0, 0, 'grid'));
111
+ await grid.expectSelectionResult({ col: 0, row: 0 }, { col: 2, row: 2 });
112
+
113
+ // Arrowing from there cancels selection.
114
+ await page.keyboard.press('ArrowRight');
115
+ await page.keyboard.press('ArrowDown');
116
+ await grid.expectFocus(grid.cell(1, 1, 'grid'));
117
+ });
118
+ });
@@ -0,0 +1,18 @@
1
+ //
2
+ // Copyright 2023 DXOS.org
3
+ //
4
+
5
+ import { nxE2EPreset } from '@nx/playwright/preset';
6
+ import { defineConfig } from '@playwright/test';
7
+
8
+ import { e2ePreset } from '@dxos/test-utils/playwright';
9
+
10
+ export default defineConfig({
11
+ ...nxE2EPreset(__filename, { testDir: __dirname }),
12
+ ...e2ePreset(__dirname),
13
+ webServer: {
14
+ command: 'pnpm -w nx storybook lit-stories',
15
+ port: 9009,
16
+ reuseExistingServer: !process.env.CI,
17
+ },
18
+ });