Skip to content

Commit 56b355b

Browse files
authored
Merge pull request #246 from finos/typescript-playwright
Port to TypeScript & Playwright
2 parents 46ef064 + 70344c9 commit 56b355b

File tree

108 files changed

+8146
-13947
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

108 files changed

+8146
-13947
lines changed

.github/workflows/build.yml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,14 @@
1+
# ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
2+
# ░░░░░░░░░░▄▀░█▀▄░█▀▀░█▀▀░█░█░█░░░█▀█░█▀▄░░░░░▀█▀░█▀█░█▀▄░█░░░█▀▀░▀▄░░░░░░░░░░
3+
# ░░░░░░░░░▀▄░░█▀▄░█▀▀░█░█░█░█░█░░░█▀█░█▀▄░▀▀▀░░█░░█▀█░█▀▄░█░░░█▀▀░░▄▀░░░░░░░░░
4+
# ░░░░░░░░░░░▀░▀░▀░▀▀▀░▀▀▀░▀▀▀░▀▀▀░▀░▀░▀░▀░░░░░░▀░░▀░▀░▀▀░░▀▀▀░▀▀▀░▀░░░░░░░░░░░
5+
# ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
6+
# ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
7+
# ┃ * Copyright (c) 2020, the Regular Table Authors. This file is part * ┃
8+
# ┃ * of the Regular Table library, distributed under the terms of the * ┃
9+
# ┃ * [Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0). * ┃
10+
# ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
11+
112
name: Build Status
213

314
on:
@@ -40,6 +51,9 @@ jobs:
4051
run: |
4152
pnpm run build
4253
54+
- name: Install Playwright browsers
55+
run: pnpm exec playwright install --with-deps
56+
4357
- name: Test
4458
run: |
4559
pnpm run test

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -197,3 +197,5 @@ python_junit.xml
197197

198198
docs/.docusaurus
199199
docs/static/blocks
200+
test-results
201+
playwright-report

README.md

Lines changed: 59 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,9 @@
33
</p>
44

55
<p align="center">
6-
<a href="https://community.finos.org/docs/governance/software-projects/stages/active/"><img alt="FINOS active badge" src="https://cdn.jsdelivr.net/gh/finos/contrib-toolbox@master/images/badge-active.svg"></a>
7-
<a href="https://www.npmjs.com/package/regular-table"><img alt="NPM Version" src="https://img.shields.io/npm/v/regular-table.svg?color=brightgreen&style=flat-squar"></a>
8-
<a href="https://www.npmjs.com/package/regular-table"><img alt="NPM Version" src="https://img.shields.io/npm/l/regular-table.svg?color=brightgreen&style=flat-square"></a>
9-
<a href="https://github.com/finos/regular-table/actions?query=workflow%3A%22Build+Status"><img alt="Build Status" src="https://github.com/finos/regular-table/workflows/Build%20Status/badge.svg?branch=master"></a>
6+
<a href="https://github.com/texodus/regular-layout/actions"><img alt="Build Status" src="https://img.shields.io/github/actions/workflow/status/texodus/regular-layout/build.yaml?event=push&style=flat-square"></a>
7+
<a href="https://www.npmjs.com/package/regular-table"><img alt="NPM Version" src="https://img.shields.io/npm/v/regular-table.svg?color=brightgreen&style=flat-square"></a>
8+
<a href="https://bundlephobia.com/package/regular-table"><img alt="Bundlephobia (Minified)" src="https://img.shields.io/bundlephobia/min/regular-table?style=flat-square"></a>
109
</p>
1110

1211
#
@@ -19,12 +18,12 @@ queried from a natively `async` virtual data model, making `regular-table` ideal
1918
for enormous or remote data sets. Use it to build Data Grids, Spreadsheets,
2019
Pivot Tables, File Trees, or anytime you need:
2120

22-
- Just a regular `<table>`.
23-
- Virtually rendered for high-performance.
24-
- `async` data model handles slow, remote, enormous, and/or distributed
25-
backends.
26-
- Easy to style, works with any regular CSS for `<table>`.
27-
- Small bundle size, no dependencies.
21+
- Just a regular `<table>`.
22+
- Virtually rendered for high-performance.
23+
- `async` data model handles slow, remote, enormous, and/or distributed
24+
backends.
25+
- Easy to style, works with any regular CSS for `<table>`.
26+
- Small bundle size, no dependencies.
2827

2928
## Examples
3029

@@ -57,13 +56,13 @@ Pivot Tables, File Trees, or anytime you need:
5756
</a>
5857
<br/>
5958

60-
- [2d_array.md](examples/2d_array.md)
61-
- [canvas_data_model.md](examples/canvas_data_model.md)
62-
- [file_browser.md](examples/file_browser.md)
63-
- [minesweeper.md](examples/minesweeper.md)
64-
- [react.md](examples/react.md)
65-
- [spreadsheet.md](examples/spreadsheet.md)
66-
- [two_billion_rows.md](examples/two_billion_rows.md)
59+
- [2d_array.md](examples/2d_array/2d_array.js)
60+
- [canvas_data_model.md](examples/canvas_data_model/canvas_data_model.js)
61+
- [file_browser.md](examples/file_browser/file_browser.js)
62+
- [minesweeper.md](examples/minesweeper/minesweeper.js)
63+
- [react.md](examples/react/react.js)
64+
- [spreadsheet.md](examples/spreadsheet/spreadsheet.js)
65+
- [two_billion_rows.md](examples/two_billion_rows/two_billion_rows.js)
6766

6867
## Documentation
6968

@@ -74,38 +73,37 @@ documented
7473
[examples](https://github.com/finos/regular-table/tree/master/examples) are also
7574
available.
7675

77-
- QuickStart
78-
79-
- [Installation](#installation)
80-
- [`<regular-table>` Custom Element](#regular-table-custom-element)
81-
- [`.setDataListener()` Virtual Data Model](#setdatalistener-virtual-data-model)
82-
- [Column and Row Headers](#column-and-row-headers)
83-
- [Hierarchial/Group Headers](#hierarchialgroup-headers)
84-
- [`async` Data Models](#async-data-models)
85-
- [`.addStyleListener()` and `getMeta()` Styling](#addstylelistener-and-getmeta-styling)
86-
- [`.invalidate()`](#invalidate)
87-
- [`.addEventListener()` Interaction](#addeventlistener-interaction)
88-
- [Scrolling](#scrolling)
89-
- [Pivots, Filters, Sorts, and Column Expressions with `perspective`](#pivots-filters-sorts-and-column-expressions-with-perspective)
90-
- [Development](#development)
91-
92-
- [API Docs](https://github.com/finos/regular-table/blob/master/api.md)
93-
94-
- Annotated Examples
95-
- [2d_array.md](examples/2d_array.md)
96-
- [canvas_data_model.md](examples/canvas_data_model.md)
97-
- [file_browser.md](examples/file_browser.md)
98-
- [minesweeper.md](examples/minesweeper.md)
99-
- [react.md](examples/react.md)
100-
- [spreadsheet.md](examples/spreadsheet.md)
101-
- [two_billion_rows.md](examples/two_billion_rows.md)
76+
- QuickStart
77+
- [Installation](#installation)
78+
- [`<regular-table>` Custom Element](#regular-table-custom-element)
79+
- [`.setDataListener()` Virtual Data Model](#setdatalistener-virtual-data-model)
80+
- [Column and Row Headers](#column-and-row-headers)
81+
- [Hierarchial/Group Headers](#hierarchialgroup-headers)
82+
- [`async` Data Models](#async-data-models)
83+
- [`.addStyleListener()` and `getMeta()` Styling](#addstylelistener-and-getmeta-styling)
84+
- [`.invalidate()`](#invalidate)
85+
- [`.addEventListener()` Interaction](#addeventlistener-interaction)
86+
- [Scrolling](#scrolling)
87+
- [Pivots, Filters, Sorts, and Column Expressions with `perspective`](#pivots-filters-sorts-and-column-expressions-with-perspective)
88+
- [Development](#development)
89+
90+
- [API Docs](https://github.com/finos/regular-table/blob/master/api.md)
91+
92+
- Annotated Examples
93+
- [2d_array.md](examples/2d_array/2d_array.js)
94+
- [canvas_data_model.md](examples/canvas_data_model/canvas_data_model.js)
95+
- [file_browser.md](examples/file_browser/file_browser.js)
96+
- [minesweeper.md](examples/minesweeper/minesweeper.js)
97+
- [react.md](examples/react/react.js)
98+
- [spreadsheet.md](examples/spreadsheet/spreadsheet.js)
99+
- [two_billion_rows.md](examples/two_billion_rows/two_billion_rows.js)
102100

103101
## Installation
104102

105103
Include via a CDN like [JSDelivr](https://cdn.jsdelivr.net/npm/regular-table):
106104

107105
```html
108-
<script src="https://cdn.jsdelivr.net/npm/regular-table"></script>
106+
<script type="module" src="https://cdn.jsdelivr.net/npm/regular-table"></script>
109107
<link
110108
rel="stylesheet"
111109
href="https://cdn.jsdelivr.net/npm/regular-table/dist/css/material.css"
@@ -248,10 +246,10 @@ configured via the `virtual_mode` optional argument. Note that using a
248246
`<table>` along the non-virtual axis(es), and may cause rendering performance
249247
degradation.
250248

251-
- "both" (default) virtualizes scrolling on both axes.
252-
- "vertical" only virtualizes vertical (y) scrolling.
253-
- "horizontal" only virtualizes horizontal (x) scrolling.
254-
- "none" disable all scroll virtualization.
249+
- "both" (default) virtualizes scrolling on both axes.
250+
- "vertical" only virtualizes vertical (y) scrolling.
251+
- "horizontal" only virtualizes horizontal (x) scrolling.
252+
- "none" disable all scroll virtualization.
255253

256254
```javascript
257255
table.setDataListener(listener, { virtual_mode: "vertical" });
@@ -383,14 +381,14 @@ field will accompany the metadata records returned by `regular-table`'s
383381
Additional rendering options which can be set on the object returned by a
384382
`setDataListener` callback include:
385383

386-
- `column_header_merge_depth: number` configures the number of rows to include
387-
from `colspan` merging. This defaults to `header_length - 1`.
388-
- `row_height: number` configures the pixel height of a row for virtual
389-
scrolling calculation. This is typically auto-detected from the DOM, but can
390-
be overridden if needed.
391-
- `merge_headers: "column" | "row" | "both" | "none"` configures whether
392-
equivalent, contiguous `<th>` elements are merged via `rowspan` or `colspan`
393-
for `"row"` and `"column"` respectively (defaults to `"both"`).
384+
- `column_header_merge_depth: number` configures the number of rows to include
385+
from `colspan` merging. This defaults to `header_length - 1`.
386+
- `row_height: number` configures the pixel height of a row for virtual
387+
scrolling calculation. This is typically auto-detected from the DOM, but can
388+
be overridden if needed.
389+
- `merge_headers: "column" | "row" | "both" | "none"` configures whether
390+
equivalent, contiguous `<th>` elements are merged via `rowspan` or `colspan`
391+
for `"row"` and `"column"` respectively (defaults to `"both"`).
394392

395393
### `async` Data Models
396394

@@ -445,11 +443,11 @@ However, CSS alone cannot select on properties of your _data_ - if you scroll
445443
this example, the 2nd row will always be the striped one. Some other
446444
data-reliant style examples include:
447445

448-
- Styling a specific column in the virtual data set, as `<td>` may represent a
449-
different column based on horizontal scroll position.
450-
- Styling cells by value, +/-, heatmaps, categories, etc.
451-
- Styling cells based on data within-or-outside of the virtual viewport,
452-
grouping depth, grouping categories, etc.
446+
- Styling a specific column in the virtual data set, as `<td>` may represent a
447+
different column based on horizontal scroll position.
448+
- Styling cells by value, +/-, heatmaps, categories, etc.
449+
- Styling cells based on data within-or-outside of the virtual viewport,
450+
grouping depth, grouping categories, etc.
453451

454452
To make CSS that is virtual-data-model-aware, you'll need to use
455453
`addStyleListener()`, which invokes a callback whenever the `<table>` is
@@ -605,4 +603,4 @@ The Regular Table project achieves the
605603
## License
606604

607605
This software is licensed under the Apache 2.0 license. See the
608-
[LICENSE](LICENSE) and [AUTHORS](AUTHORS) files for details.
606+
[LICENSE](LICENSE) file for details.

0 commit comments

Comments
 (0)