Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
dist: trusty
language: node_js
node_js: "12"

install:
- yarn

script:
- yarn build
- yarn test
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# regular-table

[![Build Status](https://travis-ci.org/jpmorganchase/regular-table.svg?branch=master)](https://travis-ci.org/jpmorganchase/regular-table)

## Development

First install `dev_dependencies`:
Expand Down
4 changes: 2 additions & 2 deletions jest-puppeteer.config.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
module.exports = {
server: {
command: "yarn start",
port: 8080,
command: "yarn start -p 8081",
port: 8081,
},
};
1 change: 1 addition & 0 deletions jest.config.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
module.exports = {
preset: "jest-puppeteer",
transform: {},
coverageDirectory: "coverage",
};
24 changes: 12 additions & 12 deletions src/js/datagrid.js → src/js/custom_element.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,23 +9,23 @@
*/

import {METADATA_MAP} from "./constants";
import {DatagridTableViewModel} from "./table";
import {DatagridViewEventModel} from "./events";
import {RegularTableViewModel} from "./table";
import {RegularViewEventModel} from "./events";

/**
* Datagrid's "public" API. See the `superstore-custom-grid.html` simple
* Regular's "public" API. See the `superstore-custom-grid.html` simple
* example.
*
* @class DatagridViewEventModel
* @extends {DatagridVirtualTableViewModel}
* @class RegularViewEventModel
* @extends {RegularVirtualTableViewModel}
*/
export class DatagridViewModel extends DatagridViewEventModel {
export class RegularViewModel extends RegularViewEventModel {
connectedCallback() {
this.create_shadow_dom();
this.register_listeners();
this.setAttribute("tabindex", "0");
this._column_sizes = {auto: {}, override: {}, indices: []};
this.table_model = new DatagridTableViewModel(this._table_clip, this._column_sizes, this._sticky_container);
this.table_model = new RegularTableViewModel(this._table_clip, this._column_sizes, this._sticky_container);
if (!this.table_model) return;
if (this !== this._sticky_container.parentElement) {
this.appendChild(this._sticky_container);
Expand All @@ -34,12 +34,12 @@ export class DatagridViewModel extends DatagridViewEventModel {

/**
* Returns the metadata object associated with a `<td>` or `<th>`. When
* an `perspective-datagrid-after-update` event fires, use this method
* an `regular-table-after-update` event fires, use this method
* to look up the Perspective data associated with a `<table>`s DOM cells.
*
* @param {*} td
* @returns a metadata object.
* @memberof DatagridViewModel
* @memberof RegularViewModel
*/
get_meta(td) {
return METADATA_MAP.get(td);
Expand All @@ -50,7 +50,7 @@ export class DatagridViewModel extends DatagridViewEventModel {
* `element.querySlectorAll("td");
*
* @returns
* @memberof DatagridViewModel
* @memberof RegularViewModel
*/
get_tds() {
return this.table_model.body.cells.flat(1);
Expand All @@ -61,7 +61,7 @@ export class DatagridViewModel extends DatagridViewEventModel {
* `element.querySlectorAll("th");
*
* @returns
* @memberof DatagridViewModel
* @memberof RegularViewModel
*/
get_ths() {
return this.table_model.body.cells.flat(1);
Expand All @@ -70,7 +70,7 @@ export class DatagridViewModel extends DatagridViewEventModel {
/**
* Clear this renderer.
*
* @memberof DatagridViewModel
* @memberof RegularViewModel
*/
clear() {
this._sticky_container.innerHTML = "<table></table>";
Expand Down
42 changes: 21 additions & 21 deletions src/js/events.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,16 +10,16 @@

import isEqual from "lodash/isEqual";
import {METADATA_MAP} from "./constants";
import {DatagridVirtualTableViewModel} from "./scroll_panel";
import {RegularVirtualTableViewModel} from "./scroll_panel";
import {getCellConfig, throttlePromise} from "./utils";

/**
*
*
* @class DatagridViewEventModel
* @extends {DatagridVirtualTableViewModel}
* @class RegularViewEventModel
* @extends {RegularVirtualTableViewModel}
*/
export class DatagridViewEventModel extends DatagridVirtualTableViewModel {
export class RegularViewEventModel extends RegularVirtualTableViewModel {
register_listeners() {
this.addEventListener("scroll", this._on_scroll.bind(this), {
passive: false,
Expand All @@ -33,21 +33,21 @@ export class DatagridViewEventModel extends DatagridVirtualTableViewModel {

/**
* @returns
* @memberof DatagridViewModel
* @memberof RegularViewModel
*/
async _on_scroll(event) {
event.stopPropagation();
event.returnValue = false;
await this.draw();
this.dispatchEvent(new CustomEvent("perspective-datagrid-scroll"));
this.dispatchEvent(new CustomEvent("regular-table-scroll"));
}

/**
* Mousewheel must precalculate in addition to `_on_scroll` to prevent
* visual artifacts due to scrolling "inertia" on modern browsers/mobile.
*
* @param {*} event
* @memberof DatagridViewModel
* @memberof RegularViewModel
*/
_on_mousewheel(event) {
if (this._virtual_scrolling_disabled) {
Expand All @@ -68,7 +68,7 @@ export class DatagridViewEventModel extends DatagridVirtualTableViewModel {
*
* @param {*} event
* @returns
* @memberof DatagridVirtualTableViewModel
* @memberof RegularVirtualTableViewModel
*/
async _on_dblclick(event) {
let element = event.target;
Expand Down Expand Up @@ -103,7 +103,7 @@ export class DatagridViewEventModel extends DatagridVirtualTableViewModel {
*
* @param {*} event
* @returns
* @memberof DatagridVirtualTableViewModel
* @memberof RegularVirtualTableViewModel
*/
async _on_click(event) {
if (event.button !== 0) {
Expand Down Expand Up @@ -133,12 +133,12 @@ export class DatagridViewEventModel extends DatagridVirtualTableViewModel {
}

/**
* Datagrid event for column resize.
* Regular event for column resize.
*
* @param {*} event
* @param {*} element
* @param {*} metadata
* @memberof DatagridVirtualTableViewModel
* @memberof RegularVirtualTableViewModel
*/
_on_resize_column(event, element, metadata) {
const start = event.pageX;
Expand All @@ -157,14 +157,14 @@ export class DatagridViewEventModel extends DatagridVirtualTableViewModel {
}

/**
* Datagrid event for mouse movement when resizing a column.
* Regular event for mouse movement when resizing a column.
*
* @param {*} event
* @param {*} th
* @param {*} start
* @param {*} width
* @param {*} metadata
* @memberof DatagridVirtualTableViewModel
* @memberof RegularVirtualTableViewModel
*/
@throttlePromise
async _on_resize_column_move(event, th, start, width, metadata) {
Expand All @@ -191,7 +191,7 @@ export class DatagridViewEventModel extends DatagridVirtualTableViewModel {
/**
* Get the id of the selected row
*
* @memberof DatagridVirtualTableViewModel
* @memberof RegularVirtualTableViewModel
*/
_get_selected() {
return this._selected_id;
Expand All @@ -201,26 +201,26 @@ export class DatagridViewEventModel extends DatagridVirtualTableViewModel {
* will be highlighted if it's in the viewport
*
* @param {*} selected_id
* @memberof DatagridVirtualTableViewModel
* @memberof RegularVirtualTableViewModel
*/
_set_selected(selected_id) {
this._selected_id = selected_id;
}
/**
* Clears selected row
*
* @memberof DatagridVirtualTableViewModel
* @memberof RegularVirtualTableViewModel
*/
_clear_selected() {
delete this._selected_id;
}

/**
* Datagrid event which handles row selection.
* Regular event which handles row selection.
*
* @param {*} metadata
* @returns
* @memberof DatagridVirtualTableViewModel
* @memberof RegularVirtualTableViewModel
*/
async _on_row_select(metadata) {
const is_deselect = isEqual(metadata.id, this._selected_id);
Expand Down Expand Up @@ -253,7 +253,7 @@ export class DatagridViewEventModel extends DatagridVirtualTableViewModel {
*
* @param {*} event
* @param {*} metadata
* @memberof DatagridVirtualTableViewModel
* @memberof RegularVirtualTableViewModel
*/
async _on_toggle(event, metadata) {
if (metadata.is_open) {
Expand All @@ -273,7 +273,7 @@ export class DatagridViewEventModel extends DatagridVirtualTableViewModel {
}

/**
* Datagrid event which handles sorting. There are 3 control states:
* Regular event which handles sorting. There are 3 control states:
*
* - Already sorted by `metadata.column_name`, increment sort clause to
* next sort state.
Expand All @@ -282,7 +282,7 @@ export class DatagridViewEventModel extends DatagridVirtualTableViewModel {
*
* @param {*} event
* @param {*} metadata
* @memberof DatagridVirtualTableViewModel
* @memberof RegularVirtualTableViewModel
*/
async _on_sort(event, metadata) {
let sort = this._view_cache.config.sort.slice();
Expand Down
4 changes: 2 additions & 2 deletions src/js/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
*/

import {_start_profiling_loop} from "./utils";
import {DatagridViewModel} from "./datagrid";
import {RegularViewModel} from "./custom_element";
import MATERIAL_STYLE from "../less/material.less";

/**
Expand All @@ -29,7 +29,7 @@ function _register_global_styles() {
*
*/

window.customElements.define("regular-table", DatagridViewModel);
window.customElements.define("regular-table", RegularViewModel);

_start_profiling_loop();
_register_global_styles();
Loading