@nanoporetech-digital/components 3.3.4 → 3.5.0

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 (107) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/dist/assets/fonts/HVMicro500.woff +0 -0
  3. package/dist/assets/fonts/HVMicro500.woff2 +0 -0
  4. package/dist/assets/fonts/HVMicro500It.woff +0 -0
  5. package/dist/assets/fonts/HVMicro500It.woff2 +0 -0
  6. package/dist/cjs/index-41582c2a.js +16 -12
  7. package/dist/cjs/index.cjs.js.map +1 -1
  8. package/dist/cjs/loader.cjs.js +1 -1
  9. package/dist/cjs/nano-components.cjs.js +1 -1
  10. package/dist/cjs/nano-demo.cjs.entry.js +291 -0
  11. package/dist/cjs/nano-demo.cjs.entry.js.map +1 -0
  12. package/dist/cjs/{nano-table-bf5002c4.js → nano-table-83e46f68.js} +486 -202
  13. package/dist/cjs/nano-table-83e46f68.js.map +1 -0
  14. package/dist/cjs/nano-table.cjs.entry.js +1 -1
  15. package/dist/cjs/{table.worker-496b9e90.js → table.worker-525ec230.js} +3 -3
  16. package/dist/cjs/table.worker-525ec230.js.map +1 -0
  17. package/dist/cjs/table.worker-e9fb087e.js +4 -0
  18. package/dist/collection/collection-manifest.json +1 -0
  19. package/dist/collection/components/alert/alert.helpers.js.map +1 -1
  20. package/dist/collection/components/demo/demo.js +284 -0
  21. package/dist/collection/components/demo/demo.js.map +1 -0
  22. package/dist/collection/components/dialog/dialog.helpers.js.map +1 -1
  23. package/dist/collection/components/table/table-interface.js.map +1 -1
  24. package/dist/collection/components/table/table.cell.js +65 -0
  25. package/dist/collection/components/table/table.cell.js.map +1 -0
  26. package/dist/collection/components/table/table.css +98 -20
  27. package/dist/collection/components/table/table.header.js +156 -0
  28. package/dist/collection/components/table/table.header.js.map +1 -0
  29. package/dist/collection/components/table/table.js +170 -18
  30. package/dist/collection/components/table/table.js.map +1 -1
  31. package/dist/collection/components/table/table.row.js +113 -0
  32. package/dist/collection/components/table/table.row.js.map +1 -0
  33. package/dist/collection/components/table/table.store.js +46 -9
  34. package/dist/collection/components/table/table.store.js.map +1 -1
  35. package/dist/collection/components/table/table.utils.js +230 -0
  36. package/dist/collection/components/table/table.utils.js.map +1 -1
  37. package/dist/collection/components/table/table.worker.js +1 -0
  38. package/dist/collection/components/table/table.worker.js.map +1 -1
  39. package/dist/components/index.d.ts +1 -0
  40. package/dist/components/index.js +1 -0
  41. package/dist/components/index.js.map +1 -1
  42. package/dist/components/nano-demo.d.ts +11 -0
  43. package/dist/components/nano-demo.js +341 -0
  44. package/dist/components/nano-demo.js.map +1 -0
  45. package/dist/components/nano-table.js +2 -1247
  46. package/dist/components/nano-table.js.map +1 -1
  47. package/dist/components/table.js +1539 -0
  48. package/dist/components/table.js.map +1 -0
  49. package/dist/components/table.worker.js +2 -2
  50. package/dist/custom-elements/index.d.ts +6 -0
  51. package/dist/custom-elements/index.js +772 -204
  52. package/dist/custom-elements/index.js.map +1 -1
  53. package/dist/esm/index-3c280603.js +16 -12
  54. package/dist/esm/index.js.map +1 -1
  55. package/dist/esm/loader.js +1 -1
  56. package/dist/esm/nano-components.js +1 -1
  57. package/dist/esm/nano-demo.entry.js +287 -0
  58. package/dist/esm/nano-demo.entry.js.map +1 -0
  59. package/dist/esm/{nano-table-c1b7d929.js → nano-table-e2405350.js} +487 -203
  60. package/dist/esm/nano-table-e2405350.js.map +1 -0
  61. package/dist/esm/nano-table.entry.js +1 -1
  62. package/dist/esm/{table.worker-7c546c85.js → table.worker-739c193f.js} +3 -3
  63. package/dist/esm/table.worker-739c193f.js.map +1 -0
  64. package/dist/esm/table.worker-e9fb087e.js +4 -0
  65. package/dist/nano-components/index.esm.js.map +1 -1
  66. package/dist/nano-components/nano-components.esm.js +1 -1
  67. package/dist/nano-components/nano-components.esm.js.map +1 -1
  68. package/dist/nano-components/p-28fdfa6b.js +5 -0
  69. package/dist/nano-components/p-28fdfa6b.js.map +1 -0
  70. package/dist/nano-components/p-85cfb0af.entry.js +5 -0
  71. package/dist/nano-components/p-85cfb0af.entry.js.map +1 -0
  72. package/dist/nano-components/p-a71989f3.js +5 -0
  73. package/dist/nano-components/{p-47d4385c.entry.js.map → p-a71989f3.js.map} +0 -0
  74. package/dist/nano-components/{p-47d4385c.entry.js → p-e4a28360.entry.js} +2 -2
  75. package/dist/nano-components/{p-bc92bdcd.js.map → p-e4a28360.entry.js.map} +0 -0
  76. package/dist/nano-components/p-e9fb087e.js +4 -0
  77. package/dist/themes/nanopore.css +1 -1
  78. package/dist/themes/nanopore.css.map +1 -1
  79. package/dist/types/components/alert/alert.helpers.d.ts +1 -1
  80. package/dist/types/components/demo/demo.d.ts +6 -0
  81. package/dist/types/components/dialog/dialog.helpers.d.ts +1 -1
  82. package/dist/types/components/table/table-interface.d.ts +38 -23
  83. package/dist/types/components/table/table.cell.d.ts +18 -0
  84. package/dist/types/components/table/table.d.ts +36 -1
  85. package/dist/types/components/table/table.header.d.ts +16 -0
  86. package/dist/types/components/table/table.row.d.ts +15 -0
  87. package/dist/types/components/table/table.utils.d.ts +99 -0
  88. package/dist/types/components.d.ts +50 -0
  89. package/docs-json.json +124 -3
  90. package/docs-vscode.json +17 -1
  91. package/package.json +2 -2
  92. package/dist/cjs/nano-table-bf5002c4.js.map +0 -1
  93. package/dist/cjs/table.worker-1fd13775.js +0 -4
  94. package/dist/cjs/table.worker-496b9e90.js.map +0 -1
  95. package/dist/collection/components/table/table.children.js +0 -224
  96. package/dist/collection/components/table/table.children.js.map +0 -1
  97. package/dist/collection/components/table/table.service.js +0 -121
  98. package/dist/collection/components/table/table.service.js.map +0 -1
  99. package/dist/esm/nano-table-c1b7d929.js.map +0 -1
  100. package/dist/esm/table.worker-1fd13775.js +0 -4
  101. package/dist/esm/table.worker-7c546c85.js.map +0 -1
  102. package/dist/nano-components/p-07238842.js +0 -5
  103. package/dist/nano-components/p-07238842.js.map +0 -1
  104. package/dist/nano-components/p-1fd13775.js +0 -4
  105. package/dist/nano-components/p-bc92bdcd.js +0 -5
  106. package/dist/types/components/table/table.children.d.ts +0 -30
  107. package/dist/types/components/table/table.service.d.ts +0 -42
@@ -8,10 +8,12 @@ import type { TableTypes } from '../../interface';
8
8
  *- Built-in column sort
9
9
  *- Easily swap in API / async based search / filter & sort
10
10
  *- Pin headers, footers, rows, columns
11
+ *- Drag-&-Drop columns to re-order
11
12
  *- Add custom rendering at every level
12
13
  *- Add custom properties at every level
13
14
  *
14
15
  * @slot caption - The table's caption. You must either use this or the `caption` attribute.
16
+ * @slot no-results - text to display when search or filtering yields no results
15
17
  */
16
18
  export declare class Table implements ComponentInterface {
17
19
  constructor();
@@ -65,6 +67,18 @@ export declare class Table implements ComponentInterface {
65
67
  * A good use-case would be performing the sort on a server / via fetch.
66
68
  * Then on success, updating the table's data via the `rows` property */
67
69
  customSortFn?: (property: TableTypes.Prop, order: TableTypes.Order) => Promise<void>;
70
+ /**
71
+ * The default sortable option for all columns.
72
+ * `true` will enable column sorting unless you set `sortable: false` on a column
73
+ * `false` will disable column sorting unless you set `sortable: true` on a column
74
+ */
75
+ defaultSort: boolean;
76
+ /**
77
+ * The default draggable option for all columns.
78
+ * `true` will enable column drag-to-reorder unless you set `draggable: false` on a column
79
+ * `false` will disable column drag-to-reorder unless you set `draggable: true` on a column
80
+ */
81
+ defaultColDraggable: boolean;
68
82
  handleSearchTermChange(): void;
69
83
  /** Fired whenever a block is activated by scrolling into view / becoming visible
70
84
  * This could be leveraged for infinite scrolling / to fetch more data.
@@ -86,8 +100,20 @@ export declare class Table implements ComponentInterface {
86
100
  column: TableTypes.Prop;
87
101
  order: TableTypes.Order;
88
102
  }>;
103
+ /** Fired when a column has started dragging */
104
+ nanoTblColDrag: EventEmitter<{
105
+ column: TableTypes.Prop;
106
+ }>;
107
+ /** Fired when a column has been dropped (after dragging)
108
+ * `event.preventDefault()` to stop column re-order. */
109
+ nanoTblColDrop: EventEmitter<{
110
+ fromCol: TableTypes.Prop;
111
+ toCol: TableTypes.Prop;
112
+ fromIndex: number;
113
+ toIndex: number;
114
+ }>;
89
115
  /** Fired before a column is filtered.
90
- * `event.preventDefault()` to stop filtering. */
116
+ * `event.preventDefault()` to stop filtering. */
91
117
  nanoTblBeforeFilter: EventEmitter<{
92
118
  filters: TableTypes.Filter[];
93
119
  }>;
@@ -119,6 +145,11 @@ export declare class Table implements ComponentInterface {
119
145
  * @returns a promise which resolves when complete
120
146
  */
121
147
  addFilters(filters: TableTypes.Filter[], additive?: boolean): Promise<void>;
148
+ /** Remove filters from a column
149
+ * @param columnNames - the filters to apply
150
+ * @returns a promise which resolves when complete
151
+ */
152
+ removeFilters(columnNames: TableTypes.Prop[]): Promise<void>;
122
153
  host: HTMLNanoTableElement;
123
154
  private renderId;
124
155
  private store;
@@ -127,6 +158,7 @@ export declare class Table implements ComponentInterface {
127
158
  private currentSort;
128
159
  private tableEle;
129
160
  private topAnchorEle;
161
+ private tableWrapperEle;
130
162
  /** `tr` elements split into units - defined by `perPage`
131
163
  These are show / hidden for perf */
132
164
  blocks: TableTypes.TBody[];
@@ -145,6 +177,8 @@ export declare class Table implements ComponentInterface {
145
177
  private _isReady;
146
178
  scrollListener(): void;
147
179
  private handleReady;
180
+ private colDrag;
181
+ private colDrop;
148
182
  /**
149
183
  * Start a sort - can be cancelled by `preventDefault`
150
184
  * @param order - column order
@@ -197,6 +231,7 @@ export declare class Table implements ComponentInterface {
197
231
  /** Process slotted content */
198
232
  private processSlots;
199
233
  private handleColumnPinned;
234
+ private handleResizeChange;
200
235
  componentWillLoad(): Promise<void>;
201
236
  connectedCallback(): void;
202
237
  componentDidLoad(): void;
@@ -0,0 +1,16 @@
1
+ import { FunctionalComponent } from '../../stencil-public-runtime';
2
+ import type { TableTypes } from '../../interface';
3
+ declare type TableColHeadProps = {
4
+ column: TableTypes.ColumnConfig;
5
+ headRenderer: TableTypes.HeadFootRenderer;
6
+ onColumnSortClick?: (order: TableTypes.Order, column: TableTypes.Prop, el: HTMLTableCellElement) => void;
7
+ onColumnPinned?: TableTypes.PinnedCb;
8
+ onColumnDrag?: (column: TableTypes.Prop, el: HTMLTableCellElement) => void;
9
+ onColumnDrop?: (fromColumn: TableTypes.Prop, toColumn: TableTypes.Prop, el: HTMLTableCellElement) => void;
10
+ defaults: {
11
+ draggable?: boolean;
12
+ sortable?: boolean;
13
+ };
14
+ };
15
+ export declare const TableColHead: FunctionalComponent<TableColHeadProps>;
16
+ export {};
@@ -0,0 +1,15 @@
1
+ import { FunctionalComponent } from '../../stencil-public-runtime';
2
+ import type { TableTypes } from '../../interface';
3
+ declare type TableRowProps = {
4
+ rowRenderer: TableTypes.RowRenderer;
5
+ rowIndex: number;
6
+ row: TableTypes.RowData;
7
+ onColumnPinned?: TableTypes.PinnedCb;
8
+ };
9
+ export declare const TableRow: FunctionalComponent<TableRowProps>;
10
+ declare type TableHeadFootProps = {
11
+ rowRenderer: TableTypes.HeadFootRenderer;
12
+ onColumnPinned?: TableTypes.PinnedCb;
13
+ };
14
+ export declare const TableHeadFootRow: FunctionalComponent<TableHeadFootProps>;
15
+ export {};
@@ -1,3 +1,102 @@
1
+ import { VNode } from '../../stencil-public-runtime';
2
+ import type { TableTypes } from '../../interface';
3
+ declare type ValidRenderTypes = 'tr' | 'th' | 'td';
4
+ /**
5
+ * Get a model object for custom cell / property renderers.
6
+ * @param rowIndex - the current row index being rendered
7
+ * @param colIndex - the current column index being rendered
8
+ * @returns a model object which will be passed to custom renderers
9
+ */
10
+ export declare function colDataModel(rowIndex: number, colIndex: number): TableTypes.ColumnDataSchemaModel;
11
+ /**
12
+ * Get a model object for custom row renderers.
13
+ * @param rowIndex
14
+ * @returns a model object passed to custom row renderers
15
+ */
16
+ export declare function rowDataModel(rowIndex: number): TableTypes.RowDataSchemaModel;
17
+ /**
18
+ * Merges 2 objects of properties together
19
+ * @param current - property object
20
+ * @param extra - additional object property
21
+ * @returns - merged properties that can be applied to a node
22
+ */
23
+ export declare function mergeProperties<T extends TableTypes.CellProps | TableTypes.CellProps>(current: T, extra: T): T;
24
+ /**
25
+ * Returns the current nano-table's stores.
26
+ * @returns the current nano-table stores
27
+ */
28
+ export declare function fetchStores(): import("./table.store").TableStores;
29
+ /**
30
+ * Merges any defined cell properties with properties
31
+ * required by `nano-table` functionality
32
+ * @param rowIndex - the current row index being rendered
33
+ * @param colIndex = the current column index being rendered
34
+ * @param defaultProps - default properties required by `nano-table`
35
+ * @returns - the merged properties that will be applied to a node
36
+ */
37
+ export declare function mergeCellProperties(rowIndex: number, colIndex: number, defaultProps: TableTypes.CellProps): TableTypes.CellProps;
38
+ /**
39
+ * Renders a table header (within a thead) using a custom template if set.
40
+ * @param col - the current column config object
41
+ * @returns - a JSX node
42
+ */
43
+ export declare function colheadFootRender(col: TableTypes.ColumnConfig): VNode;
44
+ /**
45
+ * Adds element to Intersection Observer. Fires when element changes on the x axis
46
+ * @param el - an element to observe
47
+ * @param pos - the edge to watch (start or end)
48
+ * @param cb - callback when an intersection state changes.
49
+ */
50
+ export declare function addHObserver(el: HTMLTableCellElement, pos: TableTypes.Position, cb: TableTypes.PinnedCb): void;
51
+ /**
52
+ * Adds element to Intersection Observer. Fires when element changes on the y axis
53
+ * @param el - an element to observe
54
+ * @param pos - the edge to watch (start or end)
55
+ * @param cb - callback when an intersection state changes.
56
+ */
57
+ export declare function addVObserver(el: HTMLTableCellElement, pos: TableTypes.Position, cb: TableTypes.PinnedCb): void;
58
+ /**
59
+ * Renders a class string or map for pinned classes on the v axis.
60
+ * @param type - element tagName
61
+ * @param vPinned - whether element is currently pinned vertically to top or bottom
62
+ * @param toString - render as a string (defaults to class map)
63
+ */
64
+ export declare function headerPinClasses(type: ValidRenderTypes, vPinned?: TableTypes.Position, toString?: false): {
65
+ [key: string]: boolean;
66
+ };
67
+ export declare function headerPinClasses(type: ValidRenderTypes, vPinned?: TableTypes.Position, toString?: true): string;
68
+ /**
69
+ * Turns a class map {'string': boolean} to class string
70
+ * @param classes - the class map to convert
71
+ * @returns a class string
72
+ */
73
+ export declare function classListToStr(classes: {
74
+ [key: string]: boolean;
75
+ }): string;
76
+ /**
77
+ * Detects the current scroll speed as a number.
78
+ * Use within a scroll listener
79
+ */
1
80
  export declare const detectScrollSpeed: () => number;
81
+ /**
82
+ * Attempts to find the closes scrolling parental element
83
+ * @param element - the element from which to traverse up the DOM
84
+ * @returns - the closest scrolling parental element
85
+ */
2
86
  export declare function findScrollParent(element: HTMLElement): HTMLElement;
87
+ /**
88
+ * Checks whether an element is currently viewable within the viewport
89
+ * @param el - element to check
90
+ * @param percentVisible - the percentage of the element that should be within the viewport
91
+ * @returns true if the element's area percentage is visible
92
+ */
3
93
  export declare function isInViewport(el: Element, percentVisible?: number): boolean;
94
+ /**
95
+ * Immutable array re-order
96
+ * @param from - the index to move from
97
+ * @param to - the index to move to
98
+ * @param arr - the array to re-order
99
+ * @returns - a new, re-orderd array
100
+ */
101
+ export declare function arrMove(from: number, to: number, arr: any[]): any[];
102
+ export {};
@@ -587,6 +587,8 @@ export namespace Components {
587
587
  */
588
588
  "setFocus": (day?: boolean, forceFocusVisible?: boolean) => Promise<void>;
589
589
  }
590
+ interface NanoDemo {
591
+ }
590
592
  interface NanoDetails {
591
593
  /**
592
594
  * Color to use from your application's color palette.
@@ -2031,6 +2033,14 @@ export namespace Components {
2031
2033
  property: TableTypes.Prop,
2032
2034
  order: TableTypes.Order
2033
2035
  ) => Promise<void>;
2036
+ /**
2037
+ * The default draggable option for all columns. `true` will enable column drag-to-reorder unless you set `draggable: false` on a column `false` will disable column drag-to-reorder unless you set `draggable: true` on a column
2038
+ */
2039
+ "defaultColDraggable": boolean;
2040
+ /**
2041
+ * The default sortable option for all columns. `true` will enable column sorting unless you set `sortable: false` on a column `false` will disable column sorting unless you set `sortable: true` on a column
2042
+ */
2043
+ "defaultSort": boolean;
2034
2044
  /**
2035
2045
  * Used for custom tfoot row rendering
2036
2046
  */
@@ -2051,6 +2061,12 @@ export namespace Components {
2051
2061
  * When loading rows asynchronously, this will render this number of placeholder rows
2052
2062
  */
2053
2063
  "placeholderSize": number;
2064
+ /**
2065
+ * Remove filters from a column
2066
+ * @param columnNames - the filters to apply
2067
+ * @returns a promise which resolves when complete
2068
+ */
2069
+ "removeFilters": (columnNames: TableTypes.Prop[]) => Promise<void>;
2054
2070
  /**
2055
2071
  * Remove any column filters currently applied
2056
2072
  * @returns a promise which resolves when complete
@@ -2368,6 +2384,12 @@ declare global {
2368
2384
  prototype: HTMLNanoDatePickerElement;
2369
2385
  new (): HTMLNanoDatePickerElement;
2370
2386
  };
2387
+ interface HTMLNanoDemoElement extends Components.NanoDemo, HTMLStencilElement {
2388
+ }
2389
+ var HTMLNanoDemoElement: {
2390
+ prototype: HTMLNanoDemoElement;
2391
+ new (): HTMLNanoDemoElement;
2392
+ };
2371
2393
  interface HTMLNanoDetailsElement extends Components.NanoDetails, HTMLStencilElement {
2372
2394
  }
2373
2395
  var HTMLNanoDetailsElement: {
@@ -2598,6 +2620,7 @@ declare global {
2598
2620
  "nano-datalist": HTMLNanoDatalistElement;
2599
2621
  "nano-date-input": HTMLNanoDateInputElement;
2600
2622
  "nano-date-picker": HTMLNanoDatePickerElement;
2623
+ "nano-demo": HTMLNanoDemoElement;
2601
2624
  "nano-details": HTMLNanoDetailsElement;
2602
2625
  "nano-dialog": HTMLNanoDialogElement;
2603
2626
  "nano-drawer": HTMLNanoDrawerElement;
@@ -3219,6 +3242,8 @@ declare namespace LocalJSX {
3219
3242
  */
3220
3243
  "selectedDate"?: string;
3221
3244
  }
3245
+ interface NanoDemo {
3246
+ }
3222
3247
  interface NanoDetails {
3223
3248
  /**
3224
3249
  * Color to use from your application's color palette.
@@ -4752,6 +4777,14 @@ declare namespace LocalJSX {
4752
4777
  property: TableTypes.Prop,
4753
4778
  order: TableTypes.Order
4754
4779
  ) => Promise<void>;
4780
+ /**
4781
+ * The default draggable option for all columns. `true` will enable column drag-to-reorder unless you set `draggable: false` on a column `false` will disable column drag-to-reorder unless you set `draggable: true` on a column
4782
+ */
4783
+ "defaultColDraggable"?: boolean;
4784
+ /**
4785
+ * The default sortable option for all columns. `true` will enable column sorting unless you set `sortable: false` on a column `false` will disable column sorting unless you set `sortable: true` on a column
4786
+ */
4787
+ "defaultSort"?: boolean;
4755
4788
  /**
4756
4789
  * Used for custom tfoot row rendering
4757
4790
  */
@@ -4800,6 +4833,21 @@ declare namespace LocalJSX {
4800
4833
  "onNanoTblBlockRendered"?: (event: NanoTableCustomEvent<{
4801
4834
  block: number;
4802
4835
  totalBlocks: number;
4836
+ }>) => void;
4837
+ /**
4838
+ * Fired when a column has started dragging
4839
+ */
4840
+ "onNanoTblColDrag"?: (event: NanoTableCustomEvent<{
4841
+ column: TableTypes.Prop;
4842
+ }>) => void;
4843
+ /**
4844
+ * Fired when a column has been dropped (after dragging) `event.preventDefault()` to stop column re-order.
4845
+ */
4846
+ "onNanoTblColDrop"?: (event: NanoTableCustomEvent<{
4847
+ fromCol: TableTypes.Prop;
4848
+ toCol: TableTypes.Prop;
4849
+ fromIndex: number;
4850
+ toIndex: number;
4803
4851
  }>) => void;
4804
4852
  /**
4805
4853
  * Fired when the table has done it's first complete render
@@ -4910,6 +4958,7 @@ declare namespace LocalJSX {
4910
4958
  "nano-datalist": NanoDatalist;
4911
4959
  "nano-date-input": NanoDateInput;
4912
4960
  "nano-date-picker": NanoDatePicker;
4961
+ "nano-demo": NanoDemo;
4913
4962
  "nano-details": NanoDetails;
4914
4963
  "nano-dialog": NanoDialog;
4915
4964
  "nano-drawer": NanoDrawer;
@@ -4965,6 +5014,7 @@ declare module "@stencil/core" {
4965
5014
  "nano-datalist": LocalJSX.NanoDatalist & JSXBase.HTMLAttributes<HTMLNanoDatalistElement>;
4966
5015
  "nano-date-input": LocalJSX.NanoDateInput & JSXBase.HTMLAttributes<HTMLNanoDateInputElement>;
4967
5016
  "nano-date-picker": LocalJSX.NanoDatePicker & JSXBase.HTMLAttributes<HTMLNanoDatePickerElement>;
5017
+ "nano-demo": LocalJSX.NanoDemo & JSXBase.HTMLAttributes<HTMLNanoDemoElement>;
4968
5018
  "nano-details": LocalJSX.NanoDetails & JSXBase.HTMLAttributes<HTMLNanoDetailsElement>;
4969
5019
  "nano-dialog": LocalJSX.NanoDialog & JSXBase.HTMLAttributes<HTMLNanoDialogElement>;
4970
5020
  "nano-drawer": LocalJSX.NanoDrawer & JSXBase.HTMLAttributes<HTMLNanoDrawerElement>;
package/docs-json.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "timestamp": "2022-12-06T14:07:21",
2
+ "timestamp": "2022-12-14T09:05:27",
3
3
  "compiler": {
4
4
  "name": "@stencil/core",
5
5
  "version": "2.19.4",
@@ -3913,6 +3913,38 @@
3913
3913
  ]
3914
3914
  }
3915
3915
  },
3916
+ {
3917
+ "filePath": "./src/components/demo/demo.tsx",
3918
+ "encapsulation": "shadow",
3919
+ "tag": "nano-demo",
3920
+ "readme": "# nano-demo\n\n\n",
3921
+ "docs": "",
3922
+ "docsTags": [],
3923
+ "usage": {},
3924
+ "props": [],
3925
+ "methods": [],
3926
+ "events": [],
3927
+ "listeners": [],
3928
+ "styles": [],
3929
+ "slots": [],
3930
+ "parts": [],
3931
+ "dependents": [],
3932
+ "dependencies": [
3933
+ "nano-table"
3934
+ ],
3935
+ "dependencyGraph": {
3936
+ "nano-demo": [
3937
+ "nano-table"
3938
+ ],
3939
+ "nano-table": [
3940
+ "nano-resize-observe",
3941
+ "nano-progress-bar",
3942
+ "nano-skeleton",
3943
+ "nano-spinner",
3944
+ "nano-icon"
3945
+ ]
3946
+ }
3947
+ },
3916
3948
  {
3917
3949
  "filePath": "./src/components/details/details.tsx",
3918
3950
  "encapsulation": "shadow",
@@ -14651,11 +14683,15 @@
14651
14683
  "encapsulation": "none",
14652
14684
  "tag": "nano-table",
14653
14685
  "readme": "# nano-table\n\n\n",
14654
- "docs": "A performant, accessible and semantic (uses real html `<table />`, `<tr />` etc) table and data-grid solution.\n\n- Built-in search\n- Built-in column filter\n- Built-in column sort\n- Easily swap in API / async based search / filter & sort\n- Pin headers, footers, rows, columns\n- Add custom rendering at every level\n- Add custom properties at every level",
14686
+ "docs": "A performant, accessible and semantic (uses real html `<table />`, `<tr />` etc) table and data-grid solution.\n\n- Built-in search\n- Built-in column filter\n- Built-in column sort\n- Easily swap in API / async based search / filter & sort\n- Pin headers, footers, rows, columns\n- Drag-&-Drop columns to re-order\n- Add custom rendering at every level\n- Add custom properties at every level",
14655
14687
  "docsTags": [
14656
14688
  {
14657
14689
  "name": "slot",
14658
14690
  "text": "caption - The table's caption. You must either use this or the `caption` attribute."
14691
+ },
14692
+ {
14693
+ "name": "slot",
14694
+ "text": "no-results - text to display when search or filtering yields no results"
14659
14695
  }
14660
14696
  ],
14661
14697
  "usage": {},
@@ -14748,6 +14784,44 @@
14748
14784
  "getter": false,
14749
14785
  "setter": false
14750
14786
  },
14787
+ {
14788
+ "name": "defaultColDraggable",
14789
+ "type": "boolean",
14790
+ "mutable": false,
14791
+ "attr": "default-col-draggable",
14792
+ "reflectToAttr": false,
14793
+ "docs": "The default draggable option for all columns.\n`true` will enable column drag-to-reorder unless you set `draggable: false` on a column\n`false` will disable column drag-to-reorder unless you set `draggable: true` on a column",
14794
+ "docsTags": [],
14795
+ "default": "false",
14796
+ "values": [
14797
+ {
14798
+ "type": "boolean"
14799
+ }
14800
+ ],
14801
+ "optional": false,
14802
+ "required": false,
14803
+ "getter": false,
14804
+ "setter": false
14805
+ },
14806
+ {
14807
+ "name": "defaultSort",
14808
+ "type": "boolean",
14809
+ "mutable": false,
14810
+ "attr": "default-sort",
14811
+ "reflectToAttr": false,
14812
+ "docs": "The default sortable option for all columns.\n`true` will enable column sorting unless you set `sortable: false` on a column\n`false` will disable column sorting unless you set `sortable: true` on a column",
14813
+ "docsTags": [],
14814
+ "default": "true",
14815
+ "values": [
14816
+ {
14817
+ "type": "boolean"
14818
+ }
14819
+ ],
14820
+ "optional": false,
14821
+ "required": false,
14822
+ "getter": false,
14823
+ "setter": false
14824
+ },
14751
14825
  {
14752
14826
  "name": "footRender",
14753
14827
  "type": "HeadFootRenderer",
@@ -15000,6 +15074,26 @@
15000
15074
  }
15001
15075
  ]
15002
15076
  },
15077
+ {
15078
+ "name": "removeFilters",
15079
+ "returns": {
15080
+ "type": "Promise<void>",
15081
+ "docs": "a promise which resolves when complete"
15082
+ },
15083
+ "signature": "removeFilters(columnNames: TableTypes.Prop[]) => Promise<void>",
15084
+ "parameters": [],
15085
+ "docs": "Remove filters from a column",
15086
+ "docsTags": [
15087
+ {
15088
+ "name": "param",
15089
+ "text": "columnNames - the filters to apply"
15090
+ },
15091
+ {
15092
+ "name": "returns",
15093
+ "text": "a promise which resolves when complete"
15094
+ }
15095
+ ]
15096
+ },
15003
15097
  {
15004
15098
  "name": "resetFilters",
15005
15099
  "returns": {
@@ -15097,6 +15191,24 @@
15097
15191
  "docs": "Fired whenever a block is activated by scrolling into view / becoming visible\nThis could be leveraged for infinite scrolling / to fetch more data.",
15098
15192
  "docsTags": []
15099
15193
  },
15194
+ {
15195
+ "event": "nanoTblColDrag",
15196
+ "detail": "{ column: keyof RowData; }",
15197
+ "bubbles": true,
15198
+ "cancelable": true,
15199
+ "composed": true,
15200
+ "docs": "Fired when a column has started dragging",
15201
+ "docsTags": []
15202
+ },
15203
+ {
15204
+ "event": "nanoTblColDrop",
15205
+ "detail": "{ fromCol: keyof RowData; toCol: keyof RowData; fromIndex: number; toIndex: number; }",
15206
+ "bubbles": true,
15207
+ "cancelable": true,
15208
+ "composed": true,
15209
+ "docs": "Fired when a column has been dropped (after dragging)\n`event.preventDefault()` to stop column re-order.",
15210
+ "docsTags": []
15211
+ },
15100
15212
  {
15101
15213
  "event": "nanoTblReady",
15102
15214
  "detail": "any",
@@ -15271,10 +15383,16 @@
15271
15383
  {
15272
15384
  "name": "caption",
15273
15385
  "docs": "The table's caption. You must either use this or the `caption` attribute."
15386
+ },
15387
+ {
15388
+ "name": "no-results",
15389
+ "docs": "text to display when search or filtering yields no results"
15274
15390
  }
15275
15391
  ],
15276
15392
  "parts": [],
15277
- "dependents": [],
15393
+ "dependents": [
15394
+ "nano-demo"
15395
+ ],
15278
15396
  "dependencies": [
15279
15397
  "nano-resize-observe",
15280
15398
  "nano-progress-bar",
@@ -15289,6 +15407,9 @@
15289
15407
  "nano-skeleton",
15290
15408
  "nano-spinner",
15291
15409
  "nano-icon"
15410
+ ],
15411
+ "nano-demo": [
15412
+ "nano-table"
15292
15413
  ]
15293
15414
  }
15294
15415
  },
package/docs-vscode.json CHANGED
@@ -787,6 +787,14 @@
787
787
  }
788
788
  ]
789
789
  },
790
+ {
791
+ "name": "nano-demo",
792
+ "description": {
793
+ "kind": "markdown",
794
+ "value": ""
795
+ },
796
+ "attributes": []
797
+ },
790
798
  {
791
799
  "name": "nano-details",
792
800
  "description": {
@@ -2678,7 +2686,7 @@
2678
2686
  "name": "nano-table",
2679
2687
  "description": {
2680
2688
  "kind": "markdown",
2681
- "value": "A performant, accessible and semantic (uses real html `<table />`, `<tr />` etc) table and data-grid solution.\n\n- Built-in search\n- Built-in column filter\n- Built-in column sort\n- Easily swap in API / async based search / filter & sort\n- Pin headers, footers, rows, columns\n- Add custom rendering at every level\n- Add custom properties at every level"
2689
+ "value": "A performant, accessible and semantic (uses real html `<table />`, `<tr />` etc) table and data-grid solution.\n\n- Built-in search\n- Built-in column filter\n- Built-in column sort\n- Easily swap in API / async based search / filter & sort\n- Pin headers, footers, rows, columns\n- Drag-&-Drop columns to re-order\n- Add custom rendering at every level\n- Add custom properties at every level"
2682
2690
  },
2683
2691
  "attributes": [
2684
2692
  {
@@ -2689,6 +2697,14 @@
2689
2697
  "name": "caption",
2690
2698
  "description": "A descriptive title of the table.\nYou must use this or the `slot=\"caption\"` for accessibility"
2691
2699
  },
2700
+ {
2701
+ "name": "default-col-draggable",
2702
+ "description": "The default draggable option for all columns.\n`true` will enable column drag-to-reorder unless you set `draggable: false` on a column\n`false` will disable column drag-to-reorder unless you set `draggable: true` on a column"
2703
+ },
2704
+ {
2705
+ "name": "default-sort",
2706
+ "description": "The default sortable option for all columns.\n`true` will enable column sorting unless you set `sortable: false` on a column\n`false` will disable column sorting unless you set `sortable: true` on a column"
2707
+ },
2692
2708
  {
2693
2709
  "name": "loading",
2694
2710
  "description": "Will show a loading state when true.\nWill be shown automatically if `rows` is a promise waiting to resolve\nor when performing custom filtering or sorting"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nanoporetech-digital/components",
3
- "version": "3.3.4",
3
+ "version": "3.5.0",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://git.oxfordnanolabs.local/Digital/nano-components"
@@ -124,5 +124,5 @@
124
124
  "nanopore",
125
125
  "digital"
126
126
  ],
127
- "gitHead": "59e02809095738c85ea5ac94d026f355c0c12d51"
127
+ "gitHead": "db9b61df848239b02e70f1e75de62e2409fb6d4e"
128
128
  }