@nanoporetech-digital/components 5.1.3 → 5.2.1
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.
- package/CHANGELOG.md +26 -0
- package/dist/cjs/{component-store-74d25f63.js → component-store-f1dc1276.js} +2 -2
- package/dist/cjs/{component-store-74d25f63.js.map → component-store-f1dc1276.js.map} +1 -1
- package/dist/cjs/index.cjs.js +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/nano-algolia-filter.cjs.entry.js +2 -2
- package/dist/cjs/nano-algolia-input.cjs.entry.js +2 -2
- package/dist/cjs/nano-algolia.cjs.entry.js +2 -2
- package/dist/cjs/nano-checkbox-group.cjs.entry.js +1 -1
- package/dist/cjs/nano-components.cjs.js +1 -1
- package/dist/cjs/nano-datalist_3.cjs.entry.js +1 -1
- package/dist/cjs/nano-dialog.cjs.entry.js +2 -2
- package/dist/cjs/nano-global-nav-user-profile_3.cjs.entry.js +2 -2
- package/dist/cjs/nano-global-nav-user-profile_3.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-global-nav.cjs.entry.js +2 -2
- package/dist/cjs/nano-input.cjs.entry.js +1 -1
- package/dist/cjs/nano-overflow-nav.cjs.entry.js +1 -1
- package/dist/cjs/nano-range.cjs.entry.js +1 -1
- package/dist/cjs/nano-resize-observe_2.cjs.entry.js +3 -1
- package/dist/cjs/nano-resize-observe_2.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-sortable.cjs.entry.js +16 -8
- package/dist/cjs/nano-sortable.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-split-pane.cjs.entry.js +1 -1
- package/dist/cjs/nano-sticker.cjs.entry.js +4 -2
- package/dist/cjs/nano-sticker.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-tab-group.cjs.entry.js +2 -2
- package/dist/cjs/{nano-table-5a7a4d53.js → nano-table-10a40ab3.js} +557 -185
- package/dist/cjs/nano-table-10a40ab3.js.map +1 -0
- package/dist/cjs/nano-table.cjs.entry.js +2 -2
- package/dist/cjs/{table.worker-77e56070.js → table.worker-f04588c1.js} +4 -4
- package/dist/cjs/table.worker-f04588c1.js.map +1 -0
- package/dist/cjs/{table.worker-bd51e29f.js → table.worker-f258383d.js} +1 -1
- package/dist/cjs/{throttle-f55496c8.js → throttle-dfa64b9e.js} +17 -20
- package/dist/cjs/throttle-dfa64b9e.js.map +1 -0
- package/dist/collection/components/resize-observe/resize-observe.js +21 -1
- package/dist/collection/components/resize-observe/resize-observe.js.map +1 -1
- package/dist/collection/components/select/select.css +0 -1
- package/dist/collection/components/sortable/sortable.js +3 -7
- package/dist/collection/components/sortable/sortable.js.map +1 -1
- package/dist/collection/components/sticker/sticker.js +11 -5
- package/dist/collection/components/sticker/sticker.js.map +1 -1
- package/dist/collection/components/table/table-interface.js.map +1 -1
- package/dist/collection/components/table/table.cell.js +43 -10
- package/dist/collection/components/table/table.cell.js.map +1 -1
- package/dist/collection/components/table/table.css +38 -55
- package/dist/collection/components/table/table.header.js +4 -9
- package/dist/collection/components/table/table.header.js.map +1 -1
- package/dist/collection/components/table/table.js +101 -47
- package/dist/collection/components/table/table.js.map +1 -1
- package/dist/collection/components/table/table.pin-service.js +382 -0
- package/dist/collection/components/table/table.pin-service.js.map +1 -0
- package/dist/collection/components/table/table.row.js +39 -46
- package/dist/collection/components/table/table.row.js.map +1 -1
- package/dist/collection/components/table/table.utils.js +0 -124
- package/dist/collection/components/table/table.utils.js.map +1 -1
- package/dist/collection/components/table/table.worker.js +1 -0
- package/dist/collection/components/table/table.worker.js.map +1 -1
- package/dist/collection/utils/events.js +27 -0
- package/dist/collection/utils/events.js.map +1 -0
- package/dist/collection/utils/throttle.js +16 -19
- package/dist/collection/utils/throttle.js.map +1 -1
- package/dist/components/nano-sortable.js +15 -7
- package/dist/components/nano-sortable.js.map +1 -1
- package/dist/components/resize-observe.js +3 -1
- package/dist/components/resize-observe.js.map +1 -1
- package/dist/components/select.js +1 -1
- package/dist/components/select.js.map +1 -1
- package/dist/components/sticker.js +3 -1
- package/dist/components/sticker.js.map +1 -1
- package/dist/components/table.js +530 -187
- package/dist/components/table.js.map +1 -1
- package/dist/components/table.worker.js +1 -1
- package/dist/components/throttle.js +16 -19
- package/dist/components/throttle.js.map +1 -1
- package/dist/esm/{component-store-244a8431.js → component-store-c23ebc9c.js} +2 -2
- package/dist/esm/{component-store-244a8431.js.map → component-store-c23ebc9c.js.map} +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/nano-algolia-filter.entry.js +2 -2
- package/dist/esm/nano-algolia-input.entry.js +2 -2
- package/dist/esm/nano-algolia.entry.js +2 -2
- package/dist/esm/nano-checkbox-group.entry.js +1 -1
- package/dist/esm/nano-components.js +1 -1
- package/dist/esm/nano-datalist_3.entry.js +1 -1
- package/dist/esm/nano-dialog.entry.js +2 -2
- package/dist/esm/nano-global-nav-user-profile_3.entry.js +2 -2
- package/dist/esm/nano-global-nav-user-profile_3.entry.js.map +1 -1
- package/dist/esm/nano-global-nav.entry.js +2 -2
- package/dist/esm/nano-input.entry.js +1 -1
- package/dist/esm/nano-overflow-nav.entry.js +1 -1
- package/dist/esm/nano-range.entry.js +1 -1
- package/dist/esm/nano-resize-observe_2.entry.js +3 -1
- package/dist/esm/nano-resize-observe_2.entry.js.map +1 -1
- package/dist/esm/nano-sortable.entry.js +16 -8
- package/dist/esm/nano-sortable.entry.js.map +1 -1
- package/dist/esm/nano-split-pane.entry.js +1 -1
- package/dist/esm/nano-sticker.entry.js +4 -2
- package/dist/esm/nano-sticker.entry.js.map +1 -1
- package/dist/esm/nano-tab-group.entry.js +2 -2
- package/dist/esm/{nano-table-026a0d30.js → nano-table-2bbcaa8d.js} +558 -186
- package/dist/esm/nano-table-2bbcaa8d.js.map +1 -0
- package/dist/esm/nano-table.entry.js +2 -2
- package/dist/esm/{table.worker-c17a27ed.js → table.worker-7324ad73.js} +4 -4
- package/dist/esm/table.worker-7324ad73.js.map +1 -0
- package/dist/esm/{table.worker-bd51e29f.js → table.worker-f258383d.js} +1 -1
- package/dist/esm/{throttle-7836544e.js → throttle-ac4fcefa.js} +17 -20
- package/dist/esm/throttle-ac4fcefa.js.map +1 -0
- package/dist/nano-components/index.esm.js +1 -1
- package/dist/nano-components/nano-components.esm.js +1 -1
- package/dist/nano-components/nano-components.esm.js.map +1 -1
- package/dist/nano-components/{p-7d6065c6.entry.js → p-0697795a.entry.js} +2 -2
- package/dist/nano-components/p-0697795a.entry.js.map +1 -0
- package/dist/nano-components/{p-6975f110.entry.js → p-192902e0.entry.js} +2 -2
- package/dist/nano-components/{p-a6ff5ca6.js → p-1a0b5bc3.js} +2 -2
- package/dist/nano-components/{p-3a761d77.entry.js → p-1b791810.entry.js} +2 -2
- package/dist/nano-components/p-39aec880.entry.js +5 -0
- package/dist/nano-components/{p-3b4b7f40.entry.js → p-3eb6d833.entry.js} +2 -2
- package/dist/nano-components/{p-a1c0afb6.entry.js → p-4884b65a.entry.js} +2 -2
- package/dist/nano-components/p-52ae36ec.js +5 -0
- package/dist/nano-components/{p-34501eae.entry.js → p-565793a2.entry.js} +2 -2
- package/dist/nano-components/p-5aae2588.entry.js +5 -0
- package/dist/nano-components/p-5aae2588.entry.js.map +1 -0
- package/dist/nano-components/{p-935aef3d.entry.js → p-6920ad69.entry.js} +2 -2
- package/dist/nano-components/{p-1c6c94cb.entry.js → p-7baa9e14.entry.js} +2 -2
- package/dist/nano-components/p-7bff5224.js +5 -0
- package/dist/nano-components/p-7bff5224.js.map +1 -0
- package/dist/nano-components/{p-f60fe933.entry.js → p-898cbac7.entry.js} +2 -2
- package/dist/nano-components/p-9b533dc3.js +5 -0
- package/dist/nano-components/p-9b533dc3.js.map +1 -0
- package/dist/nano-components/{p-ace1ffc2.entry.js → p-a362bd23.entry.js} +2 -2
- package/dist/nano-components/{p-eb6c9191.entry.js → p-b72df1aa.entry.js} +2 -2
- package/dist/nano-components/{p-9c4efe14.entry.js → p-bf18e298.entry.js} +2 -2
- package/dist/nano-components/p-bf18e298.entry.js.map +1 -0
- package/dist/nano-components/p-ce5efc3f.entry.js +5 -0
- package/dist/nano-components/p-ce5efc3f.entry.js.map +1 -0
- package/dist/nano-components/{p-1b687f96.entry.js → p-d0eefd52.entry.js} +2 -2
- package/dist/nano-components/{p-1a9d9956.entry.js → p-d74e2642.entry.js} +2 -2
- package/dist/nano-components/{p-bd51e29f.js → p-f258383d.js} +1 -1
- package/dist/types/components/resize-observe/resize-observe.d.ts +2 -0
- package/dist/types/components/sortable/sortable.d.ts +0 -1
- package/dist/types/components/sticker/sticker.d.ts +2 -2
- package/dist/types/components/table/table-interface.d.ts +23 -11
- package/dist/types/components/table/table.cell.d.ts +0 -7
- package/dist/types/components/table/table.d.ts +10 -8
- package/dist/types/components/table/table.header.d.ts +0 -1
- package/dist/types/components/table/table.pin-service.d.ts +90 -0
- package/dist/types/components/table/table.row.d.ts +3 -2
- package/dist/types/components/table/table.utils.d.ts +0 -27
- package/dist/types/components.d.ts +29 -11
- package/dist/types/utils/events.d.ts +15 -0
- package/dist/types/utils/throttle.d.ts +1 -1
- package/docs-json.json +59 -24
- package/docs-vscode.json +2 -2
- package/hydrate/index.js +580 -194
- package/package.json +2 -2
- package/dist/cjs/nano-table-5a7a4d53.js.map +0 -1
- package/dist/cjs/table.worker-77e56070.js.map +0 -1
- package/dist/cjs/throttle-f55496c8.js.map +0 -1
- package/dist/esm/nano-table-026a0d30.js.map +0 -1
- package/dist/esm/table.worker-c17a27ed.js.map +0 -1
- package/dist/esm/throttle-7836544e.js.map +0 -1
- package/dist/nano-components/p-15217442.entry.js +0 -5
- package/dist/nano-components/p-15217442.entry.js.map +0 -1
- package/dist/nano-components/p-2e63676f.js +0 -5
- package/dist/nano-components/p-30cc21c2.entry.js +0 -5
- package/dist/nano-components/p-59eb9caa.js +0 -5
- package/dist/nano-components/p-59eb9caa.js.map +0 -1
- package/dist/nano-components/p-7759d185.entry.js +0 -5
- package/dist/nano-components/p-7759d185.entry.js.map +0 -1
- package/dist/nano-components/p-7d6065c6.entry.js.map +0 -1
- package/dist/nano-components/p-9746b0a5.js +0 -5
- package/dist/nano-components/p-9746b0a5.js.map +0 -1
- package/dist/nano-components/p-9c4efe14.entry.js.map +0 -1
- /package/dist/nano-components/{p-6975f110.entry.js.map → p-192902e0.entry.js.map} +0 -0
- /package/dist/nano-components/{p-a6ff5ca6.js.map → p-1a0b5bc3.js.map} +0 -0
- /package/dist/nano-components/{p-3a761d77.entry.js.map → p-1b791810.entry.js.map} +0 -0
- /package/dist/nano-components/{p-2e63676f.js.map → p-39aec880.entry.js.map} +0 -0
- /package/dist/nano-components/{p-3b4b7f40.entry.js.map → p-3eb6d833.entry.js.map} +0 -0
- /package/dist/nano-components/{p-a1c0afb6.entry.js.map → p-4884b65a.entry.js.map} +0 -0
- /package/dist/nano-components/{p-30cc21c2.entry.js.map → p-52ae36ec.js.map} +0 -0
- /package/dist/nano-components/{p-34501eae.entry.js.map → p-565793a2.entry.js.map} +0 -0
- /package/dist/nano-components/{p-935aef3d.entry.js.map → p-6920ad69.entry.js.map} +0 -0
- /package/dist/nano-components/{p-1c6c94cb.entry.js.map → p-7baa9e14.entry.js.map} +0 -0
- /package/dist/nano-components/{p-f60fe933.entry.js.map → p-898cbac7.entry.js.map} +0 -0
- /package/dist/nano-components/{p-ace1ffc2.entry.js.map → p-a362bd23.entry.js.map} +0 -0
- /package/dist/nano-components/{p-eb6c9191.entry.js.map → p-b72df1aa.entry.js.map} +0 -0
- /package/dist/nano-components/{p-1b687f96.entry.js.map → p-d0eefd52.entry.js.map} +0 -0
- /package/dist/nano-components/{p-1a9d9956.entry.js.map → p-d74e2642.entry.js.map} +0 -0
@@ -3,8 +3,8 @@
|
|
3
3
|
*/
|
4
4
|
import { Fragment, h } from '@stencil/core';
|
5
5
|
import { CSSNAMESPACE } from './table.constants';
|
6
|
-
import {
|
7
|
-
export const TableColHead = ({ column,
|
6
|
+
import { colheadFootRender, headerPinClasses, mergeProperties, } from './table.utils';
|
7
|
+
export const TableColHead = ({ column, onColumnSortClick, defaults, }) => {
|
8
8
|
// Sort handling
|
9
9
|
function handleColumnSortClick(e) {
|
10
10
|
let order;
|
@@ -29,7 +29,7 @@ export const TableColHead = ({ column, headRenderer, onColumnSortClick, onColumn
|
|
29
29
|
extraProps = column.columnProperties(column) || extraProps;
|
30
30
|
}
|
31
31
|
const baseProps = {
|
32
|
-
class: Object.assign(Object.assign({}, headerPinClasses('th',
|
32
|
+
class: Object.assign(Object.assign({}, headerPinClasses('th', column.pinned)), { [`${CSSNAMESPACE}__pin--start`]: column.pinned === 'start', [`${CSSNAMESPACE}__pin--end`]: column.pinned === 'end', [`${CSSNAMESPACE}__ordered`]: !!column.order, [`${CSSNAMESPACE}__filtered`]: column.filter !== undefined && column.filter !== null }),
|
33
33
|
};
|
34
34
|
let props = extraProps ? mergeProperties(baseProps, extraProps) : baseProps;
|
35
35
|
const content = colheadFootRender(column);
|
@@ -46,12 +46,7 @@ export const TableColHead = ({ column, headRenderer, onColumnSortClick, onColumn
|
|
46
46
|
: 'none';
|
47
47
|
props = Object.assign(Object.assign({}, props), { 'aria-sort': sort });
|
48
48
|
}
|
49
|
-
return (h("th", Object.assign({}, props, {
|
50
|
-
if (['end', 'start'].includes(column.pinned))
|
51
|
-
addHObserver(th, column.pinned, onColumnPinned);
|
52
|
-
if (['top', 'bottom'].includes(headRenderer.pinned))
|
53
|
-
addVObserver(th, headRenderer.pinned, onColumnPinned);
|
54
|
-
}, key: column.prop }), isSortable() ? (h("button", { class: {
|
49
|
+
return (h("th", Object.assign({}, props, { key: column.prop }), isSortable() ? (h("button", { class: {
|
55
50
|
[`${CSSNAMESPACE}__order-btn`]: true,
|
56
51
|
[`${CSSNAMESPACE}__cell-content`]: true,
|
57
52
|
}, onClick: handleColumnSortClick }, colheadFootRender(column), column.filter !== undefined && column.filter !== null && (h("nano-icon", { name: "light/filter" })), !!column.order &&
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"table.header.js","sourceRoot":"","sources":["../../../src/components/table/table.header.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAuB,CAAC,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EACL,
|
1
|
+
{"version":3,"file":"table.header.js","sourceRoot":"","sources":["../../../src/components/table/table.header.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Fragment, FunctionalComponent, h } from '@stencil/core';\nimport { CSSNAMESPACE } from './table.constants';\nimport {\n colheadFootRender,\n headerPinClasses,\n mergeProperties,\n} from './table.utils';\nimport type { TableTypes } from '../../interface';\n\n// TABLE HEADERS\n// (thead > tr > th, tfoot > tr > th)\n\ntype TableColHeadProps = {\n column: TableTypes.ColumnConfig;\n headRenderer: TableTypes.HeadFootRenderer;\n onColumnSortClick?: (\n order: TableTypes.Order,\n column: TableTypes.Prop,\n el: HTMLTableCellElement\n ) => void;\n defaults: { sortable?: boolean };\n};\n\nexport const TableColHead: FunctionalComponent<TableColHeadProps> = ({\n column,\n onColumnSortClick,\n defaults,\n}) => {\n // Sort handling\n\n function handleColumnSortClick(e: MouseEvent & { target: HTMLElement }) {\n let order;\n switch (column.order) {\n case 'asc':\n order = 'desc';\n break;\n case 'desc':\n order = null;\n break;\n default:\n order = 'asc';\n }\n onColumnSortClick(order, column.prop, e.target.closest('th'));\n }\n\n function isSortable() {\n return (\n (!!defaults.sortable && column.sortable !== false) ||\n (!defaults.sortable && column.sortable === true)\n );\n }\n\n let extraProps = {};\n if (column.columnProperties) {\n extraProps = column.columnProperties(column) || extraProps;\n }\n\n const baseProps = {\n class: {\n ...headerPinClasses('th', column.pinned),\n [`${CSSNAMESPACE}__pin--start`]: column.pinned === 'start',\n [`${CSSNAMESPACE}__pin--end`]: column.pinned === 'end',\n [`${CSSNAMESPACE}__ordered`]: !!column.order,\n [`${CSSNAMESPACE}__filtered`]:\n column.filter !== undefined && column.filter !== null,\n },\n };\n let props = extraProps ? mergeProperties(baseProps, extraProps) : baseProps;\n const content = colheadFootRender(column);\n\n if (!content) return <Fragment></Fragment>;\n\n props =\n Number((props as TableTypes.CellProps).colSpan) > 1\n ? { ...props, scope: 'colgroup' }\n : { ...props, scope: 'col' };\n\n if (isSortable()) {\n const sort = column.order\n ? column.order === 'asc'\n ? 'ascending'\n : 'descending'\n : 'none';\n\n props = { ...props, 'aria-sort': sort };\n }\n\n return (\n <th {...props} key={column.prop}>\n {isSortable() ? (\n <button\n class={{\n [`${CSSNAMESPACE}__order-btn`]: true,\n [`${CSSNAMESPACE}__cell-content`]: true,\n }}\n onClick={handleColumnSortClick}\n >\n {colheadFootRender(column)}\n {column.filter !== undefined && column.filter !== null && (\n <nano-icon name=\"light/filter\" />\n )}\n {!!column.order &&\n (column.order === 'desc' ? (\n <nano-icon name=\"solid/long-arrow-down\" />\n ) : (\n <nano-icon name=\"solid/long-arrow-up\" />\n ))}\n <div class={`${CSSNAMESPACE}__status-icons`}>\n <nano-icon name=\"light/chevron-down\" />\n </div>\n </button>\n ) : (\n <div class={`${CSSNAMESPACE}__cell-content`}>\n {colheadFootRender(column)}\n {column.filter !== undefined && column.filter !== null && (\n <nano-icon name=\"light/bars-filter\" />\n )}\n </div>\n )}\n </th>\n );\n};\n"]}
|
@@ -1,7 +1,7 @@
|
|
1
1
|
/*!
|
2
2
|
* Web Components for Nanopore digital Web Apps
|
3
3
|
*/
|
4
|
-
import { h, Host, readTask,
|
4
|
+
import { h, Host, readTask, } from '@stencil/core';
|
5
5
|
import { cyrb53 } from '../../utils/math';
|
6
6
|
import { debounce } from '../../utils/throttle';
|
7
7
|
import { TableColHead } from './table.header';
|
@@ -10,9 +10,10 @@ import { TableCell } from './table.cell';
|
|
10
10
|
import { CSSNAMESPACE } from './table.constants';
|
11
11
|
import { generateStore, storeSearch, storeSetConfig, storeSetData, storeSort, storeFilter, } from './table.store';
|
12
12
|
import { findScrollParent, isInViewport } from './table.utils';
|
13
|
+
import { TablePinService } from './table.pin-service';
|
13
14
|
const measurePerf = false;
|
14
15
|
function perMark(name, end = false) {
|
15
|
-
if (!
|
16
|
+
if (!performance || !measurePerf)
|
16
17
|
return;
|
17
18
|
if (end) {
|
18
19
|
performance === null || performance === void 0 ? void 0 : performance.mark('end' + name);
|
@@ -45,7 +46,6 @@ export class Table {
|
|
45
46
|
this.filters = [];
|
46
47
|
this.currentFilters = '[]';
|
47
48
|
this.currentSort = '';
|
48
|
-
this.cacheScrollPosition = 0;
|
49
49
|
this.measureHeight = 0;
|
50
50
|
this.blockHeights = [];
|
51
51
|
this.unitHeight = 0;
|
@@ -108,25 +108,40 @@ export class Table {
|
|
108
108
|
* stop loop - it's on the current active block.
|
109
109
|
*/
|
110
110
|
this.scrollHandler = () => {
|
111
|
+
var _a;
|
112
|
+
let scrollPos = 0;
|
113
|
+
perMark('scrollHandler');
|
111
114
|
// don't listen if this table isn't in the viewport
|
112
|
-
if (!this.store.general.state.isActive || !this.rows)
|
115
|
+
if (!((_a = this.store) === null || _a === void 0 ? void 0 : _a.general.state.isActive) || !this.rows)
|
113
116
|
return;
|
114
117
|
if (this.primaryBlockIndex === undefined)
|
115
118
|
this.primaryBlockIndex = 0;
|
116
119
|
readTask(() => {
|
117
|
-
|
120
|
+
scrollPos =
|
121
|
+
typeof this.scrollParent.scrollTop !== 'undefined'
|
122
|
+
? this.scrollParent.scrollTop
|
123
|
+
: window.scrollY;
|
124
|
+
scrollPos += this.host.offsetTop;
|
125
|
+
if (this.tablePinnedService) {
|
126
|
+
this.tablePinnedService.onScroll({
|
127
|
+
x: typeof this.scrollParent.scrollLeft !== 'undefined'
|
128
|
+
? this.scrollParent.scrollLeft
|
129
|
+
: window.scrollX,
|
130
|
+
y: scrollPos,
|
131
|
+
});
|
132
|
+
}
|
118
133
|
let cumulativeHeight = this.host.offsetTop;
|
119
134
|
let blockIndex = 0;
|
120
135
|
const blockLen = this.blocks.length;
|
121
|
-
while (blockIndex < blockLen &&
|
122
|
-
this.cacheScrollPosition >= cumulativeHeight) {
|
136
|
+
while (blockIndex < blockLen && scrollPos >= cumulativeHeight) {
|
123
137
|
cumulativeHeight += this.getBlockHeight(blockIndex);
|
124
|
-
if (
|
138
|
+
if (scrollPos < cumulativeHeight) {
|
125
139
|
const potentialBlocks = [
|
126
140
|
blockIndex,
|
127
141
|
blockIndex + 1,
|
128
|
-
Math.max(0, blockIndex - 1),
|
142
|
+
// Math.max(0, blockIndex - 1),
|
129
143
|
];
|
144
|
+
console.log(potentialBlocks);
|
130
145
|
if (potentialBlocks.toString() !== this.activeBlocks.toString()) {
|
131
146
|
this.activeBlocks = potentialBlocks;
|
132
147
|
}
|
@@ -134,11 +149,7 @@ export class Table {
|
|
134
149
|
}
|
135
150
|
blockIndex++;
|
136
151
|
}
|
137
|
-
|
138
|
-
};
|
139
|
-
this.handleColumnPinned = (positions) => {
|
140
|
-
Object.entries(positions).forEach(([key, applied]) => {
|
141
|
-
this.tableEle.classList.toggle(`${CSSNAMESPACE}__pinned--${key}`, applied);
|
152
|
+
perMark('scrollHandler', true);
|
142
153
|
});
|
143
154
|
};
|
144
155
|
this.handleResizeChange = (e) => {
|
@@ -149,12 +160,12 @@ export class Table {
|
|
149
160
|
classes = [...e.target.className.split(' '), ...classes];
|
150
161
|
this.tableWrapperEle.classList.add(...classes.filter((cl) => !!cl));
|
151
162
|
};
|
152
|
-
this.
|
163
|
+
this.customRenderer = undefined;
|
153
164
|
this.type = 'table';
|
154
165
|
this.caption = undefined;
|
155
166
|
this.showCaption = false;
|
156
167
|
this.loading = undefined;
|
157
|
-
this.internalLoading =
|
168
|
+
this.internalLoading = true;
|
158
169
|
this.placeholderSize = 5;
|
159
170
|
this.rows = undefined;
|
160
171
|
this.columns = [];
|
@@ -162,14 +173,14 @@ export class Table {
|
|
162
173
|
this.rowRender = undefined;
|
163
174
|
this.footRender = { pinned: 'bottom' };
|
164
175
|
this.showFooter = false;
|
165
|
-
this.perBlock =
|
176
|
+
this.perBlock = 50;
|
166
177
|
this.searchTerm = undefined;
|
167
178
|
this.customFilterFn = undefined;
|
168
179
|
this.customSortFn = undefined;
|
169
180
|
this.defaultSort = true;
|
170
181
|
this.virtualTotalItems = 0;
|
171
182
|
this.blocks = [];
|
172
|
-
this.activeBlocks = [0, 1
|
183
|
+
this.activeBlocks = [0, 1];
|
173
184
|
this.debounceSetLoading = debounce(this.debounceSetLoading.bind(this), 50);
|
174
185
|
}
|
175
186
|
get _loading() {
|
@@ -198,6 +209,8 @@ export class Table {
|
|
198
209
|
if (!this.isReady)
|
199
210
|
requestAnimationFrame(() => this.setInitialBlockDimension());
|
200
211
|
this._loading = false;
|
212
|
+
if (this.tablePinnedService)
|
213
|
+
this.tablePinnedService.assessRows();
|
201
214
|
});
|
202
215
|
}
|
203
216
|
async handleColsChange() {
|
@@ -215,6 +228,10 @@ export class Table {
|
|
215
228
|
virtualTotalItemsChangeHandler() {
|
216
229
|
this.setBlocks();
|
217
230
|
}
|
231
|
+
/** @readonly - shows the currently applied filters */
|
232
|
+
get appliedFilters() {
|
233
|
+
return this.filters;
|
234
|
+
}
|
218
235
|
/** Remove any column sorts currently applied
|
219
236
|
* @returns a promise which resolves when complete */
|
220
237
|
async resetSorting() {
|
@@ -257,8 +274,6 @@ export class Table {
|
|
257
274
|
}
|
258
275
|
/** Updates a row model at a given index
|
259
276
|
* @param row - the row to update.
|
260
|
-
* *Note* - this should come from the `col.cellTemplate` or `row.rowRender.template` `rowModel` property
|
261
|
-
* - rows are augmented with certain properties to aid with efficient rendering
|
262
277
|
* @param rowIndex - the row index to insert this row
|
263
278
|
*/
|
264
279
|
async updateRow(row, rowIndex) {
|
@@ -289,7 +304,9 @@ export class Table {
|
|
289
304
|
? document
|
290
305
|
: this._scrollParent).removeEventListener('scroll', this.scrollHandler);
|
291
306
|
}
|
292
|
-
(ele === document.documentElement ? document : ele).addEventListener('scroll', this.scrollHandler
|
307
|
+
(ele === document.documentElement ? document : ele).addEventListener('scroll', this.scrollHandler
|
308
|
+
// {passive: true}
|
309
|
+
);
|
293
310
|
this._scrollParent = ele;
|
294
311
|
}
|
295
312
|
// used to fire `nanoTblBlockRendered` on block render change
|
@@ -392,10 +409,11 @@ export class Table {
|
|
392
409
|
const res = await this.customFilterFn(this.filters);
|
393
410
|
// if the response is 'true', the custom filter did it's thing
|
394
411
|
// handover to finish and stop loading state.
|
395
|
-
// if response is
|
412
|
+
// if response is falsy, carry on to do a FE filter
|
396
413
|
if (res === true) {
|
397
414
|
this.filterComplete();
|
398
415
|
this._loading = false;
|
416
|
+
return;
|
399
417
|
}
|
400
418
|
}
|
401
419
|
catch (e) {
|
@@ -404,8 +422,8 @@ export class Table {
|
|
404
422
|
console.warn('custom filter failed', e);
|
405
423
|
this.currentFilters = '';
|
406
424
|
this._loading = false;
|
425
|
+
return;
|
407
426
|
}
|
408
|
-
return;
|
409
427
|
}
|
410
428
|
try {
|
411
429
|
await storeFilter(this.host, this.filters);
|
@@ -421,9 +439,17 @@ export class Table {
|
|
421
439
|
filterComplete() {
|
422
440
|
this.columns = this.columns.map((c) => {
|
423
441
|
const cFilter = this.filters.find((f) => f.prop === c.prop);
|
424
|
-
if
|
442
|
+
// if we found a filter AND
|
443
|
+
// it isn't true / false and has a length OR
|
444
|
+
// it is true or false
|
445
|
+
if (cFilter &&
|
446
|
+
((typeof cFilter.filter !== 'boolean' && cFilter.filter.length) ||
|
447
|
+
typeof cFilter.filter === 'boolean'))
|
425
448
|
c.filter = cFilter.filter;
|
426
|
-
|
449
|
+
// if a filter value is not set OR
|
450
|
+
// it isn't true / false and has no length
|
451
|
+
else if ((c.filter !== null && c.filter !== undefined) ||
|
452
|
+
(!!c.filter && typeof c.filter !== 'boolean' && !c.filter.length))
|
427
453
|
c.filter = undefined;
|
428
454
|
return c;
|
429
455
|
});
|
@@ -512,6 +538,8 @@ export class Table {
|
|
512
538
|
if (!!col) {
|
513
539
|
await this.sortStart(col.order, col.prop);
|
514
540
|
}
|
541
|
+
if (this.tablePinnedService)
|
542
|
+
this.tablePinnedService.assessCols();
|
515
543
|
}
|
516
544
|
/** Split up all incoming rows into 'blocks' split amongst tbody elements.
|
517
545
|
* These can then be hidden / shown to improve performance.
|
@@ -634,6 +662,9 @@ export class Table {
|
|
634
662
|
}
|
635
663
|
componentDidLoad() {
|
636
664
|
this.setInitialBlockDimension();
|
665
|
+
if (!this.tablePinnedService) {
|
666
|
+
this.tablePinnedService = new TablePinService(this.tableEle, this.scrollParent);
|
667
|
+
}
|
637
668
|
}
|
638
669
|
componentShouldUpdate(_newVal, _oldVal, stateName) {
|
639
670
|
// stop double rendering - we use the store for rendering internally
|
@@ -641,7 +672,7 @@ export class Table {
|
|
641
672
|
// but we don't want it to cause renders
|
642
673
|
if (['rows', 'columns'].includes(stateName))
|
643
674
|
return false;
|
644
|
-
if (
|
675
|
+
if (measurePerf)
|
645
676
|
console.log(stateName, _newVal, _oldVal);
|
646
677
|
}
|
647
678
|
componentWillRender() {
|
@@ -662,17 +693,20 @@ export class Table {
|
|
662
693
|
}
|
663
694
|
render() {
|
664
695
|
this.blockElements = [];
|
665
|
-
return (h(Host, null, h("div", { class: `${CSSNAMESPACE}__top-anchor`, ref: (a) => (this.topAnchorEle = a) }, "\u00A0"), h("nano-resize-observe", { states: "576w sm, 768w md", class: "sm md", onNanoResizeStateChange: this.handleResizeChange
|
696
|
+
return (h(Host, null, h("div", { class: `${CSSNAMESPACE}__top-anchor`, ref: (a) => (this.topAnchorEle = a) }, "\u00A0"), h("nano-resize-observe", { states: "576w sm, 768w md", class: "sm md", onNanoResizeStateChange: this.handleResizeChange, onNanoResize: () => {
|
697
|
+
if (this.tablePinnedService)
|
698
|
+
this.tablePinnedService.onResize();
|
699
|
+
} }), h("div", { class: `${CSSNAMESPACE}__wrap sm md`, ref: (div) => (this.tableWrapperEle = div), "aria-labelledby": 'nano-table-caption-' + this.renderId, tabindex: this.type === 'grid' ? '0' : undefined }, h("nano-progress-bar", { indeterminate: true, class: {
|
666
700
|
[`${CSSNAMESPACE}__progress-bar`]: true,
|
667
701
|
[`${CSSNAMESPACE}__progress-bar--show`]: this._loading,
|
668
|
-
} }), h("table", { role: this.type === 'grid' ? 'grid' : undefined, "aria-rowcount": this.store.data.state.rows.length, "aria-colcount": this.store.config.state.columns.length, class: `${CSSNAMESPACE}`, ref: (tbl) => (this.tableEle = tbl) }, h("caption", { class: {
|
702
|
+
} }), h("table", { role: this.type === 'grid' ? 'grid' : undefined, "aria-rowcount": this.store.data.state.rows.length, "aria-colcount": this.store.config.state.columns.length, class: `${CSSNAMESPACE}`, ref: (tbl) => (this.tableEle = tbl), id: 'nano-table-' + this.renderId }, h("caption", { class: {
|
669
703
|
[`${CSSNAMESPACE}__caption`]: true,
|
670
704
|
[`${CSSNAMESPACE}__caption--hide`]: !this.showCaption,
|
671
|
-
}, id: 'table-caption-' + this.renderId }, h("slot", { name: "caption" }, this.caption)), h("thead", null, h(TableHeadFootRow, { rowRenderer: this.headRender
|
672
|
-
h(TableColHead, { column: colModel, headRenderer: this.headRender, onColumnSortClick: this.sortStart,
|
705
|
+
}, id: 'nano-table-caption-' + this.renderId }, h("slot", { name: "caption" }, this.caption)), h("thead", null, h(TableHeadFootRow, { rowRenderer: this.headRender }, this.store.config.state.columns.map((colModel) => [
|
706
|
+
h(TableColHead, { column: colModel, headRenderer: this.headRender, onColumnSortClick: this.sortStart, defaults: {
|
673
707
|
sortable: this.defaultSort,
|
674
708
|
} }),
|
675
|
-
]))), this._loading && !this.blocks.length && (h("tbody", { class: `${CSSNAMESPACE}__active` }, [...Array(10).keys()].map((rowIndex) => (h("tr", null, this.store.config.state.columns.map((_colModel, colIndex) => (h(TableCell, { rowIndex: rowIndex, colIndex: colIndex, nestedContent: () => h("nano-skeleton", null) })))))))), h("tr", { hidden: !!this._loading || !!this.blocks.length }, h("th", { class: `${CSSNAMESPACE}__th`, colSpan: this.store.config.state.columns.length }, h("div", { class: "nano-tbl__cell-content nano-tbl__cell-content--no-result" }, h("slot", { name: "no-results" }, "No results found")))), this.blocks.map((block, blockIndex) => (h("tbody", { key: block.__uuid, id: `tbody-${this.renderId}-${blockIndex}`, ref: (tb) => {
|
709
|
+
]))), this._loading && !this.blocks.length && (h("tbody", { class: `${CSSNAMESPACE}__active ${CSSNAMESPACE}__loading` }, [...Array(10).keys()].map((rowIndex) => (h("tr", null, this.store.config.state.columns.map((_colModel, colIndex) => (h(TableCell, { rowIndex: rowIndex, colIndex: colIndex, nestedContent: () => h("nano-skeleton", null) })))))))), h("tr", { hidden: !!this._loading || !!this.blocks.length }, h("th", { class: `${CSSNAMESPACE}__th`, colSpan: this.store.config.state.columns.length }, h("div", { class: "nano-tbl__cell-content nano-tbl__cell-content--no-result" }, h("slot", { name: "no-results" }, "No results found")))), this.blocks.map((block, blockIndex) => (h("tbody", { key: block.__uuid, id: `tbody-${this.renderId}-${blockIndex}`, ref: (tb) => {
|
676
710
|
this.blockElements.push(tb);
|
677
711
|
}, class: {
|
678
712
|
[`${CSSNAMESPACE}__inactive`]: !this.activeBlocks.includes(blockIndex),
|
@@ -680,10 +714,10 @@ export class Table {
|
|
680
714
|
} }, this.activeBlocks.includes(blockIndex) ? (block.rows.map((row, i) => {
|
681
715
|
const rowIndex = blockIndex > 0 ? blockIndex * this.perBlock + i : i;
|
682
716
|
return (h(TableRow, { rowRenderer: this.rowRender, rowModel: row, rowIndex: rowIndex }, this.store.config.state.columns.map((_colModel, colIndex) => (h(TableCell, { rowIndex: rowIndex, colIndex: colIndex })))));
|
683
|
-
})) : (h("tr",
|
717
|
+
})) : (h("tr", { class: `${CSSNAMESPACE}__tr--placeholder` }, h("td", { colSpan: this.store.config.state.columns.length, style: {
|
684
718
|
height: this.getBlockHeight(blockIndex) + 'px',
|
685
|
-
} })))))), this.showFooter && (h("tfoot", null, h(TableHeadFootRow, { rowRenderer: this.footRender
|
686
|
-
h(TableColHead, { column: colModel, headRenderer: this.footRender,
|
719
|
+
} })))))), this.showFooter && (h("tfoot", null, h(TableHeadFootRow, { rowRenderer: this.footRender }, this.store.config.state.columns.map((colModel) => [
|
720
|
+
h(TableColHead, { column: colModel, headRenderer: this.footRender, onColumnSortClick: this.sortStart, defaults: {
|
687
721
|
sortable: this.defaultSort,
|
688
722
|
} }),
|
689
723
|
]))))), !!this.blocks.length && (h("nano-spinner", { type: "circle", class: {
|
@@ -704,16 +738,15 @@ export class Table {
|
|
704
738
|
}
|
705
739
|
static get properties() {
|
706
740
|
return {
|
707
|
-
"
|
741
|
+
"customRenderer": {
|
708
742
|
"type": "unknown",
|
709
743
|
"mutable": false,
|
710
744
|
"complexType": {
|
711
|
-
"original": "
|
712
|
-
"resolved": "
|
745
|
+
"original": "(node: any, cell: HTMLElement) => void",
|
746
|
+
"resolved": "(node: any, cell: HTMLElement) => void",
|
713
747
|
"references": {
|
714
|
-
"
|
715
|
-
"location": "
|
716
|
-
"path": "../../interface"
|
748
|
+
"HTMLElement": {
|
749
|
+
"location": "global"
|
717
750
|
}
|
718
751
|
}
|
719
752
|
},
|
@@ -721,7 +754,7 @@ export class Table {
|
|
721
754
|
"optional": false,
|
722
755
|
"docs": {
|
723
756
|
"tags": [],
|
724
|
-
"text": ""
|
757
|
+
"text": "Function called whenever `col.cellTemplate` renders an unknown object.\nThe function should render a valid HTMLElement to the cell arg.\nExample usage - render JSX from a 3rd party lib and append the result to the cell element."
|
725
758
|
},
|
726
759
|
"getter": false,
|
727
760
|
"setter": false
|
@@ -797,7 +830,7 @@ export class Table {
|
|
797
830
|
"optional": false,
|
798
831
|
"docs": {
|
799
832
|
"tags": [],
|
800
|
-
"text": "Will show a loading state when set to true.\nBy default, will be shown automatically if `rows` is a promise waiting to resolve\
|
833
|
+
"text": "Will show a loading state when set to true.\nBy default, will be shown automatically if `rows` is a promise waiting to resolve / or falsy\n*or* when performing custom filtering or sorting.\n*Note* when set manually, will overwrite any internal loading state.\nSet to 'undefined' to revert to default behaviour."
|
801
834
|
},
|
802
835
|
"getter": false,
|
803
836
|
"setter": false,
|
@@ -979,7 +1012,7 @@ export class Table {
|
|
979
1012
|
"setter": false,
|
980
1013
|
"attribute": "per-block",
|
981
1014
|
"reflect": false,
|
982
|
-
"defaultValue": "
|
1015
|
+
"defaultValue": "50"
|
983
1016
|
},
|
984
1017
|
"blocksLength": {
|
985
1018
|
"type": "number",
|
@@ -1039,7 +1072,7 @@ export class Table {
|
|
1039
1072
|
"optional": true,
|
1040
1073
|
"docs": {
|
1041
1074
|
"tags": [],
|
1042
|
-
"text": "A custom filtering function. Should return a promise.\nIf the promise resolves as `true` the column UI will be updated.\nIf the promise resolves as
|
1075
|
+
"text": "A custom filtering function. Should return a promise.\nIf the promise resolves as `true` the column UI will be updated.\nIf the promise resolves as falsy, the sort will be performed by the component.\nA good use-case would be performing the filter on a server / via fetch.\nThen on success, updating the table's data via the `rows` property"
|
1043
1076
|
},
|
1044
1077
|
"getter": false,
|
1045
1078
|
"setter": false
|
@@ -1108,6 +1141,27 @@ export class Table {
|
|
1108
1141
|
"attribute": "virtual-total-items",
|
1109
1142
|
"reflect": false,
|
1110
1143
|
"defaultValue": "0"
|
1144
|
+
},
|
1145
|
+
"appliedFilters": {
|
1146
|
+
"type": "unknown",
|
1147
|
+
"mutable": false,
|
1148
|
+
"complexType": {
|
1149
|
+
"original": "Filter[]",
|
1150
|
+
"resolved": "Filter[]",
|
1151
|
+
"references": {}
|
1152
|
+
},
|
1153
|
+
"required": false,
|
1154
|
+
"optional": false,
|
1155
|
+
"docs": {
|
1156
|
+
"tags": [{
|
1157
|
+
"name": "readonly",
|
1158
|
+
"text": "- shows the currently applied filters"
|
1159
|
+
}],
|
1160
|
+
"text": ""
|
1161
|
+
},
|
1162
|
+
"getter": true,
|
1163
|
+
"setter": false,
|
1164
|
+
"defaultValue": "[]"
|
1111
1165
|
}
|
1112
1166
|
};
|
1113
1167
|
}
|
@@ -1428,9 +1482,9 @@ export class Table {
|
|
1428
1482
|
"parameters": [{
|
1429
1483
|
"tags": [{
|
1430
1484
|
"name": "param",
|
1431
|
-
"text": "row - the row to update
|
1485
|
+
"text": "row - the row to update."
|
1432
1486
|
}],
|
1433
|
-
"text": "- the row to update
|
1487
|
+
"text": "- the row to update."
|
1434
1488
|
}, {
|
1435
1489
|
"tags": [{
|
1436
1490
|
"name": "param",
|
@@ -1453,7 +1507,7 @@ export class Table {
|
|
1453
1507
|
"text": "Updates a row model at a given index",
|
1454
1508
|
"tags": [{
|
1455
1509
|
"name": "param",
|
1456
|
-
"text": "row - the row to update
|
1510
|
+
"text": "row - the row to update."
|
1457
1511
|
}, {
|
1458
1512
|
"name": "param",
|
1459
1513
|
"text": "rowIndex - the row index to insert this row"
|