@nuralyui/table 0.0.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.
Files changed (89) hide show
  1. package/components/hy-table-actions.d.ts +11 -0
  2. package/components/hy-table-actions.d.ts.map +1 -0
  3. package/components/hy-table-actions.js +40 -0
  4. package/components/hy-table-actions.js.map +1 -0
  5. package/components/hy-table-content.d.ts +25 -0
  6. package/components/hy-table-content.d.ts.map +1 -0
  7. package/components/hy-table-content.js +168 -0
  8. package/components/hy-table-content.js.map +1 -0
  9. package/components/hy-table-filter.d.ts +11 -0
  10. package/components/hy-table-filter.d.ts.map +1 -0
  11. package/components/hy-table-filter.js +59 -0
  12. package/components/hy-table-filter.js.map +1 -0
  13. package/components/hy-table-pagination.d.ts +21 -0
  14. package/components/hy-table-pagination.d.ts.map +1 -0
  15. package/components/hy-table-pagination.js +111 -0
  16. package/components/hy-table-pagination.js.map +1 -0
  17. package/components/table-actions.style.d.ts +2 -0
  18. package/components/table-actions.style.d.ts.map +1 -0
  19. package/components/table-actions.style.js +31 -0
  20. package/components/table-actions.style.js.map +1 -0
  21. package/components/table-actions.variables.d.ts +2 -0
  22. package/components/table-actions.variables.d.ts.map +1 -0
  23. package/components/table-actions.variables.js +13 -0
  24. package/components/table-actions.variables.js.map +1 -0
  25. package/components/table-content.style.d.ts +2 -0
  26. package/components/table-content.style.d.ts.map +1 -0
  27. package/components/table-content.style.js +77 -0
  28. package/components/table-content.style.js.map +1 -0
  29. package/components/table-content.variables.d.ts +2 -0
  30. package/components/table-content.variables.d.ts.map +1 -0
  31. package/components/table-content.variables.js +29 -0
  32. package/components/table-content.variables.js.map +1 -0
  33. package/components/table-filter.style.d.ts +2 -0
  34. package/components/table-filter.style.d.ts.map +1 -0
  35. package/components/table-filter.style.js +39 -0
  36. package/components/table-filter.style.js.map +1 -0
  37. package/components/table-filter.variables.d.ts +2 -0
  38. package/components/table-filter.variables.d.ts.map +1 -0
  39. package/components/table-filter.variables.js +17 -0
  40. package/components/table-filter.variables.js.map +1 -0
  41. package/components/table-pagination.style.d.ts +2 -0
  42. package/components/table-pagination.style.d.ts.map +1 -0
  43. package/components/table-pagination.style.js +102 -0
  44. package/components/table-pagination.style.js.map +1 -0
  45. package/components/table-pagination.variables.d.ts +2 -0
  46. package/components/table-pagination.variables.d.ts.map +1 -0
  47. package/components/table-pagination.variables.js +17 -0
  48. package/components/table-pagination.variables.js.map +1 -0
  49. package/demo/table-demo.d.ts +17 -0
  50. package/demo/table-demo.d.ts.map +1 -0
  51. package/demo/table-demo.js +166 -0
  52. package/demo/table-demo.js.map +1 -0
  53. package/index.d.ts +2 -0
  54. package/index.d.ts.map +1 -0
  55. package/index.js +2 -0
  56. package/index.js.map +1 -0
  57. package/package.json +15 -0
  58. package/table.component.d.ts +39 -0
  59. package/table.component.d.ts.map +1 -0
  60. package/table.component.js +245 -0
  61. package/table.component.js.map +1 -0
  62. package/table.style.d.ts +3 -0
  63. package/table.style.d.ts.map +1 -0
  64. package/table.style.js +14 -0
  65. package/table.style.js.map +1 -0
  66. package/table.types.d.ts +29 -0
  67. package/table.types.d.ts.map +1 -0
  68. package/table.types.js +25 -0
  69. package/table.types.js.map +1 -0
  70. package/test/hy-table-actions_test.d.ts +2 -0
  71. package/test/hy-table-actions_test.d.ts.map +1 -0
  72. package/test/hy-table-actions_test.js +32 -0
  73. package/test/hy-table-actions_test.js.map +1 -0
  74. package/test/hy-table-content_test.d.ts +2 -0
  75. package/test/hy-table-content_test.d.ts.map +1 -0
  76. package/test/hy-table-content_test.js +168 -0
  77. package/test/hy-table-content_test.js.map +1 -0
  78. package/test/hy-table-filter_test.d.ts +2 -0
  79. package/test/hy-table-filter_test.d.ts.map +1 -0
  80. package/test/hy-table-filter_test.js +80 -0
  81. package/test/hy-table-filter_test.js.map +1 -0
  82. package/test/hy-table-pagination_test.d.ts +2 -0
  83. package/test/hy-table-pagination_test.d.ts.map +1 -0
  84. package/test/hy-table-pagination_test.js +114 -0
  85. package/test/hy-table-pagination_test.js.map +1 -0
  86. package/test/hy-table_test.d.ts +2 -0
  87. package/test/hy-table_test.d.ts.map +1 -0
  88. package/test/hy-table_test.js +145 -0
  89. package/test/hy-table_test.js.map +1 -0
@@ -0,0 +1,245 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import styles from './table.style.js';
8
+ import { LitElement, html, nothing } from 'lit';
9
+ import { customElement, property, state } from 'lit/decorators.js';
10
+ import './components/hy-table-actions.js';
11
+ import './components/hy-table-filter.js';
12
+ import './components/hy-table-pagination.js';
13
+ import './components/hy-table-content.js';
14
+ import { Sizes, SortOrder, SortValue } from './table.types.js';
15
+ let HyTable = class HyTable extends LitElement {
16
+ constructor() {
17
+ super(...arguments);
18
+ this.rows = [];
19
+ this.size = Sizes.Normal;
20
+ this.withFilter = false;
21
+ this.itemPerPage = [5, 10, 15, 20];
22
+ this.selectedItemPerPage = this.itemPerPage[0];
23
+ this.displayedRows = [];
24
+ this.selectedItems = [];
25
+ this.rowsCopy = [];
26
+ this.activeSearch = false;
27
+ this.sortAttribute = { index: -1, order: SortOrder.Default };
28
+ }
29
+ connectedCallback() {
30
+ super.connectedCallback();
31
+ this._initSelection();
32
+ }
33
+ willUpdate(_changedProperties) {
34
+ if (_changedProperties.has('sortAttribute') && this.sortAttribute.index > -1) {
35
+ this._initPagination();
36
+ this._initSelection();
37
+ }
38
+ if (_changedProperties.has('rowsCopy')) {
39
+ if (this.activeSearch) {
40
+ this._initPagination();
41
+ }
42
+ }
43
+ if (_changedProperties.has('activeSearch') || _changedProperties.has('rows')) {
44
+ if (!this.activeSearch) {
45
+ this.rowsCopy = [...this.rows];
46
+ this._initPagination();
47
+ }
48
+ }
49
+ }
50
+ _initSelection() {
51
+ if (this.selectionMode)
52
+ this.selectedItems = Array(this.rows.length).fill(false);
53
+ }
54
+ _initPagination() {
55
+ if (this.sortAttribute.index > -1) {
56
+ if (this.sortAttribute.order != SortOrder.Default)
57
+ this._sort();
58
+ else
59
+ this._resetSort();
60
+ }
61
+ this.displayedRows = this.rowsCopy.slice(0, this.selectedItemPerPage);
62
+ this.currentPage = this.rowsCopy.length > 0 ? 1 : 0;
63
+ }
64
+ _handleItemPerPage(itemPerPageEvent) {
65
+ this.selectedItemPerPage = itemPerPageEvent.detail.selectedItemPerPage;
66
+ this._initPagination();
67
+ }
68
+ _handleUpdatePage(updatePageEvent) {
69
+ this.currentPage = updatePageEvent.detail.page;
70
+ this.displayedRows = this.rowsCopy.slice((updatePageEvent.detail.page - 1) * this.selectedItemPerPage, (updatePageEvent.detail.page - 1) * this.selectedItemPerPage + this.selectedItemPerPage);
71
+ this.dispatchEvent(new CustomEvent('onPaginate', { bubbles: true, composed: true, detail: { value: this.currentPage } }));
72
+ }
73
+ _handleCheckAll(checkAllEvent) {
74
+ const everyItemChecked = checkAllEvent.detail.isEveryItemChecked;
75
+ this.selectedItems = everyItemChecked ? this.selectedItems.map(() => false) : this.selectedItems.map(() => true);
76
+ this.dispatchEvent(new CustomEvent('onSelect', { bubbles: true, composed: true, detail: { value: this.rowsCopy.filter((_, i) => this.selectedItems[i]) } }));
77
+ }
78
+ _handleCheckOne(checkOneEvent) {
79
+ const indexSelected = checkOneEvent.detail.index;
80
+ this.selectedItems[indexSelected + (this.currentPage - 1) * this.selectedItemPerPage] = checkOneEvent.detail.value;
81
+ this.selectedItems = [...this.selectedItems];
82
+ this.dispatchEvent(new CustomEvent('onSelect', { bubbles: true, composed: true, detail: { value: this.rowsCopy.filter((_, i) => this.selectedItems[i]) } }));
83
+ }
84
+ _handleSelectOne(selectOneEvent) {
85
+ const previousSelected = this.selectedItems.findIndex((isSelected) => isSelected);
86
+ if (previousSelected > -1) {
87
+ this.selectedItems[previousSelected] = false;
88
+ }
89
+ const indexSelected = selectOneEvent.detail.index;
90
+ this.selectedItems[indexSelected + (this.currentPage - 1) * this.selectedItemPerPage] = true;
91
+ this.selectedItems = [...this.selectedItems];
92
+ this.dispatchEvent(new CustomEvent('onSelect', { bubbles: true, composed: true, detail: { value: this.rowsCopy.filter((_, i) => this.selectedItems[i]) } }));
93
+ }
94
+ _handleCancelSelection() {
95
+ this.selectedItems = this.selectedItems.map(() => false);
96
+ this.dispatchEvent(new CustomEvent('onSelect', { bubbles: true, composed: true, detail: { value: this.selectedItems } }));
97
+ }
98
+ _handleSearch(searchEvent) {
99
+ const searchValue = searchEvent.detail.value;
100
+ if (searchValue.trim().length > 0) {
101
+ this.activeSearch = true;
102
+ this.rowsCopy = this.rows.filter((rowValue) => {
103
+ return Object.values(rowValue).some((attributeValue) => {
104
+ const stringValue = JSON.stringify(attributeValue);
105
+ return stringValue.includes(searchValue);
106
+ });
107
+ });
108
+ this.dispatchEvent(new CustomEvent('onSearch', { bubbles: true, composed: true, detail: { value: this.rowsCopy } }));
109
+ }
110
+ else {
111
+ this.activeSearch = false;
112
+ }
113
+ }
114
+ _handleSortOrder(sortOrderEvent) {
115
+ const index = sortOrderEvent.detail.index;
116
+ if (index != this.sortAttribute.index) {
117
+ this.sortAttribute.index = index;
118
+ this.sortAttribute.order = SortOrder.Ascending;
119
+ }
120
+ else {
121
+ if (this.sortAttribute.order == SortOrder.Default)
122
+ this.sortAttribute.order = SortOrder.Ascending;
123
+ else if (this.sortAttribute.order == SortOrder.Ascending)
124
+ this.sortAttribute.order = SortOrder.Descending;
125
+ else
126
+ this.sortAttribute.order = SortOrder.Default;
127
+ }
128
+ this.sortAttribute = Object.assign({}, this.sortAttribute);
129
+ }
130
+ _sort() {
131
+ if (this.rowsCopy.length) {
132
+ const sortOrder = this.sortAttribute.order == SortOrder.Default
133
+ ? SortValue.Default
134
+ : this.sortAttribute.order == SortOrder.Ascending
135
+ ? SortValue.Ascending
136
+ : SortValue.Descending;
137
+ this.rowsCopy.sort((a, b) => {
138
+ const stringifyA = JSON.stringify(a[this.headers[this.sortAttribute.index].key]);
139
+ const stringifyB = JSON.stringify(b[this.headers[this.sortAttribute.index].key]);
140
+ const result = stringifyA < stringifyB ? -1 : stringifyA > stringifyB ? 1 : 0;
141
+ return result * sortOrder;
142
+ });
143
+ this.dispatchEvent(new CustomEvent('onSort', { bubbles: true, composed: true, detail: { value: this.rowsCopy } }));
144
+ }
145
+ }
146
+ _resetSort() {
147
+ this.rowsCopy.sort((copyA, copyB) => {
148
+ const positionInOriginalArrayA = this.rows.findIndex((originalA) => JSON.stringify(originalA) === JSON.stringify(copyA));
149
+ const positionInOriginalArrayB = this.rows.findIndex((originalB) => JSON.stringify(originalB) === JSON.stringify(copyB));
150
+ return positionInOriginalArrayA > positionInOriginalArrayB
151
+ ? SortValue.Ascending
152
+ : positionInOriginalArrayA < positionInOriginalArrayB
153
+ ? SortValue.Descending
154
+ : SortValue.Default;
155
+ });
156
+ }
157
+ render() {
158
+ return html `${this.selectionMode && !this.withFilter && this.selectedItems.some((isSelected) => isSelected)
159
+ ? html `<hy-table-actions
160
+ .selectedItems=${this.selectedItems.filter((isSelected) => isSelected).length}
161
+ .size=${this.size}
162
+ @cancel-selection=${this._handleCancelSelection}
163
+ ></hy-table-actions>`
164
+ : this.withFilter
165
+ ? html `
166
+ <div class="filter-container">
167
+ <hy-table-filter @value-change=${this._handleSearch}></hy-table-filter>
168
+ </div>
169
+ `
170
+ : nothing}
171
+ <hy-table-content
172
+ .headers=${this.headers}
173
+ .rows=${this.displayedRows}
174
+ .expandable=${this.expandable && !this.selectionMode ? this.expandable : nothing}
175
+ .selectionMode=${this.selectionMode && !this.withFilter ? this.selectionMode : nothing}
176
+ .selectedItems=${this.selectedItems}
177
+ .currentPage=${this.currentPage}
178
+ .itemPerPage=${this.selectedItemPerPage}
179
+ .sortAttribute=${this.sortAttribute}
180
+ .size=${this.size}
181
+ @check-all=${this._handleCheckAll}
182
+ @check-one=${this._handleCheckOne}
183
+ @select-one=${this._handleSelectOne}
184
+ @update-sort=${this._handleSortOrder}
185
+ ></hy-table-content>
186
+
187
+ <hy-table-pagination
188
+ .numberOfItems=${this.rowsCopy.length}
189
+ .currentPage=${this.currentPage}
190
+ .itemPerPage=${this.itemPerPage}
191
+ .selectedItemPerPage=${this.selectedItemPerPage}
192
+ .size=${this.size}
193
+ @item-per-page=${this._handleItemPerPage}
194
+ @update-page=${this._handleUpdatePage}
195
+ ></hy-table-pagination> `;
196
+ }
197
+ };
198
+ HyTable.styles = styles;
199
+ __decorate([
200
+ property({ type: Array })
201
+ ], HyTable.prototype, "headers", void 0);
202
+ __decorate([
203
+ property({ type: Array })
204
+ ], HyTable.prototype, "rows", void 0);
205
+ __decorate([
206
+ property()
207
+ ], HyTable.prototype, "size", void 0);
208
+ __decorate([
209
+ property({ type: Boolean })
210
+ ], HyTable.prototype, "withFilter", void 0);
211
+ __decorate([
212
+ property({ type: String })
213
+ ], HyTable.prototype, "expandable", void 0);
214
+ __decorate([
215
+ property()
216
+ ], HyTable.prototype, "selectionMode", void 0);
217
+ __decorate([
218
+ state()
219
+ ], HyTable.prototype, "itemPerPage", void 0);
220
+ __decorate([
221
+ state()
222
+ ], HyTable.prototype, "selectedItemPerPage", void 0);
223
+ __decorate([
224
+ state()
225
+ ], HyTable.prototype, "displayedRows", void 0);
226
+ __decorate([
227
+ state()
228
+ ], HyTable.prototype, "selectedItems", void 0);
229
+ __decorate([
230
+ state()
231
+ ], HyTable.prototype, "currentPage", void 0);
232
+ __decorate([
233
+ state()
234
+ ], HyTable.prototype, "rowsCopy", void 0);
235
+ __decorate([
236
+ state()
237
+ ], HyTable.prototype, "activeSearch", void 0);
238
+ __decorate([
239
+ state()
240
+ ], HyTable.prototype, "sortAttribute", void 0);
241
+ HyTable = __decorate([
242
+ customElement('hy-table')
243
+ ], HyTable);
244
+ export { HyTable };
245
+ //# sourceMappingURL=table.component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table.component.js","sourceRoot":"","sources":["../../../src/components/table/table.component.ts"],"names":[],"mappings":"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","sourcesContent":["import styles from './table.style.js';\nimport {LitElement, PropertyValueMap, html, nothing} from 'lit';\nimport {customElement, property, state} from 'lit/decorators.js';\nimport './components/hy-table-actions.js';\nimport './components/hy-table-filter.js';\nimport './components/hy-table-pagination.js';\nimport './components/hy-table-content.js';\nimport {IHeader, SelectionMode, Sizes, SortAttribute, SortOrder, SortValue} from './table.types.js';\n\n@customElement('hy-table')\nexport class HyTable extends LitElement {\n static override styles = styles;\n\n @property({type: Array}) headers!: IHeader[];\n @property({type: Array}) rows: [] = [];\n @property() size = Sizes.Normal;\n @property({type: Boolean}) withFilter = false;\n @property({type: String}) expandable: string | undefined;\n @property() selectionMode: SelectionMode | undefined;\n\n @state() itemPerPage = [5, 10, 15, 20];\n @state() selectedItemPerPage = this.itemPerPage[0];\n @state() displayedRows = [];\n @state() selectedItems: boolean[] = [];\n @state() currentPage!: number;\n @state() rowsCopy: [] = [];\n @state() activeSearch = false;\n @state() sortAttribute: SortAttribute = {index: -1, order: SortOrder.Default};\n\n override connectedCallback(): void {\n super.connectedCallback();\n this._initSelection();\n }\n\n override willUpdate(_changedProperties: PropertyValueMap<this>) {\n if (_changedProperties.has('sortAttribute') && this.sortAttribute.index > -1) {\n this._initPagination();\n this._initSelection();\n }\n if (_changedProperties.has('rowsCopy')) {\n if (this.activeSearch) {\n this._initPagination();\n }\n }\n if (_changedProperties.has('activeSearch') || _changedProperties.has('rows')) {\n if (!this.activeSearch) {\n this.rowsCopy = [...this.rows];\n this._initPagination();\n }\n }\n }\n\n _initSelection() {\n if (this.selectionMode) this.selectedItems = Array(this.rows.length).fill(false);\n }\n _initPagination() {\n if (this.sortAttribute.index > -1) {\n if (this.sortAttribute.order != SortOrder.Default) this._sort();\n else this._resetSort();\n }\n this.displayedRows = this.rowsCopy.slice(0, this.selectedItemPerPage);\n this.currentPage = this.rowsCopy.length > 0 ? 1 : 0;\n }\n\n _handleItemPerPage(itemPerPageEvent: CustomEvent) {\n this.selectedItemPerPage = itemPerPageEvent.detail.selectedItemPerPage;\n this._initPagination();\n }\n\n _handleUpdatePage(updatePageEvent: CustomEvent) {\n this.currentPage = updatePageEvent.detail.page;\n this.displayedRows = this.rowsCopy.slice(\n (updatePageEvent.detail.page - 1) * this.selectedItemPerPage,\n (updatePageEvent.detail.page - 1) * this.selectedItemPerPage + this.selectedItemPerPage\n );\n this.dispatchEvent(new CustomEvent('onPaginate',{bubbles:true,composed:true,detail:{value:this.currentPage}}))\n\n }\n\n _handleCheckAll(checkAllEvent: CustomEvent) {\n const everyItemChecked = checkAllEvent.detail.isEveryItemChecked;\n this.selectedItems = everyItemChecked ? this.selectedItems.map(() => false) : this.selectedItems.map(() => true);\n this.dispatchEvent(new CustomEvent('onSelect',{bubbles:true,composed:true,detail:{value:this.rowsCopy.filter((_,i)=>this.selectedItems[i])}}))\n\n }\n _handleCheckOne(checkOneEvent: CustomEvent) {\n const indexSelected = checkOneEvent.detail.index;\n this.selectedItems[indexSelected + (this.currentPage - 1) * this.selectedItemPerPage] = checkOneEvent.detail.value;\n this.selectedItems = [...this.selectedItems];\n this.dispatchEvent(new CustomEvent('onSelect',{bubbles:true,composed:true,detail:{value:this.rowsCopy.filter((_,i)=>this.selectedItems[i])}}))\n }\n _handleSelectOne(selectOneEvent: CustomEvent) {\n const previousSelected = this.selectedItems.findIndex((isSelected) => isSelected);\n if (previousSelected > -1) {\n this.selectedItems[previousSelected] = false;\n }\n const indexSelected = selectOneEvent.detail.index;\n this.selectedItems[indexSelected + (this.currentPage - 1) * this.selectedItemPerPage] = true;\n this.selectedItems = [...this.selectedItems];\n this.dispatchEvent(new CustomEvent('onSelect',{bubbles:true,composed:true,detail:{value:this.rowsCopy.filter((_,i)=>this.selectedItems[i])}}))\n\n }\n\n _handleCancelSelection() {\n this.selectedItems = this.selectedItems.map(() => false);\n this.dispatchEvent(new CustomEvent('onSelect',{bubbles:true,composed:true,detail:{value:this.selectedItems}}))\n }\n\n _handleSearch(searchEvent: CustomEvent) {\n const searchValue = searchEvent.detail.value;\n if ((searchValue as string).trim().length > 0) {\n this.activeSearch = true;\n this.rowsCopy = this.rows.filter((rowValue) => {\n return Object.values(rowValue).some((attributeValue) => {\n const stringValue = JSON.stringify(attributeValue);\n return stringValue.includes(searchValue);\n });\n }) as [];\n this.dispatchEvent(new CustomEvent('onSearch',{bubbles:true,composed:true,detail:{value:this.rowsCopy}}))\n } else {\n this.activeSearch = false;\n }\n }\n\n _handleSortOrder(sortOrderEvent: CustomEvent) {\n const index = sortOrderEvent.detail.index;\n if (index != this.sortAttribute.index) {\n this.sortAttribute.index = index;\n this.sortAttribute.order = SortOrder.Ascending;\n } else {\n if (this.sortAttribute.order == SortOrder.Default) this.sortAttribute.order = SortOrder.Ascending;\n else if (this.sortAttribute.order == SortOrder.Ascending) this.sortAttribute.order = SortOrder.Descending;\n else this.sortAttribute.order = SortOrder.Default;\n }\n this.sortAttribute = {...this.sortAttribute};\n }\n\n _sort() {\n if (this.rowsCopy.length) {\n const sortOrder =\n this.sortAttribute.order == SortOrder.Default\n ? SortValue.Default\n : this.sortAttribute.order == SortOrder.Ascending\n ? SortValue.Ascending\n : SortValue.Descending;\n this.rowsCopy.sort((a, b) => {\n const stringifyA = JSON.stringify(a[this.headers[this.sortAttribute.index].key]);\n const stringifyB = JSON.stringify(b[this.headers[this.sortAttribute.index].key]);\n const result = stringifyA < stringifyB ? -1 : stringifyA > stringifyB ? 1 : 0;\n return result * sortOrder;\n });\n this.dispatchEvent(new CustomEvent('onSort',{bubbles:true,composed:true,detail:{value:this.rowsCopy}}))\n }\n }\n\n _resetSort() {\n this.rowsCopy.sort((copyA, copyB) => {\n const positionInOriginalArrayA = this.rows.findIndex(\n (originalA) => JSON.stringify(originalA) === JSON.stringify(copyA)\n );\n const positionInOriginalArrayB = this.rows.findIndex(\n (originalB) => JSON.stringify(originalB) === JSON.stringify(copyB)\n );\n return positionInOriginalArrayA > positionInOriginalArrayB\n ? SortValue.Ascending\n : positionInOriginalArrayA < positionInOriginalArrayB\n ? SortValue.Descending\n : SortValue.Default;\n });\n }\n override render() {\n return html`${this.selectionMode && !this.withFilter && this.selectedItems.some((isSelected) => isSelected)\n ? html`<hy-table-actions\n .selectedItems=${this.selectedItems.filter((isSelected) => isSelected).length}\n .size=${this.size}\n @cancel-selection=${this._handleCancelSelection}\n ></hy-table-actions>`\n : this.withFilter\n ? html`\n <div class=\"filter-container\">\n <hy-table-filter @value-change=${this._handleSearch}></hy-table-filter>\n </div>\n `\n : nothing}\n <hy-table-content\n .headers=${this.headers}\n .rows=${this.displayedRows}\n .expandable=${this.expandable && !this.selectionMode ? this.expandable : nothing}\n .selectionMode=${this.selectionMode && !this.withFilter ? this.selectionMode : nothing}\n .selectedItems=${this.selectedItems}\n .currentPage=${this.currentPage}\n .itemPerPage=${this.selectedItemPerPage}\n .sortAttribute=${this.sortAttribute}\n .size=${this.size}\n @check-all=${this._handleCheckAll}\n @check-one=${this._handleCheckOne}\n @select-one=${this._handleSelectOne}\n @update-sort=${this._handleSortOrder}\n ></hy-table-content>\n\n <hy-table-pagination\n .numberOfItems=${this.rowsCopy.length}\n .currentPage=${this.currentPage}\n .itemPerPage=${this.itemPerPage}\n .selectedItemPerPage=${this.selectedItemPerPage}\n .size=${this.size}\n @item-per-page=${this._handleItemPerPage}\n @update-page=${this._handleUpdatePage}\n ></hy-table-pagination> `;\n }\n}\n"]}
@@ -0,0 +1,3 @@
1
+ declare const _default: import("lit").CSSResult;
2
+ export default _default;
3
+ //# sourceMappingURL=table.style.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table.style.d.ts","sourceRoot":"","sources":["../../../src/components/table/table.style.ts"],"names":[],"mappings":";AAEA,wBAWE"}
package/table.style.js ADDED
@@ -0,0 +1,14 @@
1
+ import { css } from 'lit';
2
+ export default css `
3
+ :host {
4
+ display: block;
5
+ width: 100%;
6
+ font-family: Arial, sans-serif;
7
+ }
8
+ .filter-container {
9
+ display: flex;
10
+ justify-content: end;
11
+ width: 100%;
12
+ }
13
+ `;
14
+ //# sourceMappingURL=table.style.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table.style.js","sourceRoot":"","sources":["../../../src/components/table/table.style.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAC,MAAM,KAAK,CAAC;AAExB,eAAe,GAAG,CAAA;;;;;;;;;;;CAWjB,CAAC","sourcesContent":["import {css} from 'lit';\n\nexport default css`\n :host {\n display: block;\n width: 100%;\n font-family: Arial, sans-serif;\n }\n .filter-container {\n display: flex;\n justify-content: end;\n width: 100%;\n }\n`;\n"]}
@@ -0,0 +1,29 @@
1
+ export interface IHeader {
2
+ name: string;
3
+ key: string;
4
+ }
5
+ export declare enum SelectionMode {
6
+ Single = "single",
7
+ Multiple = "multiple"
8
+ }
9
+ export declare enum Sizes {
10
+ Small = "small",
11
+ Normal = "normal",
12
+ Large = "large"
13
+ }
14
+ export declare enum SortOrder {
15
+ Default = "default",
16
+ Ascending = "ascending",
17
+ Descending = "descending"
18
+ }
19
+ export declare enum SortValue {
20
+ Default = 0,
21
+ Ascending = 1,
22
+ Descending = -1
23
+ }
24
+ export interface SortAttribute {
25
+ index: number;
26
+ order: SortOrder;
27
+ }
28
+ export declare const EMPTY_STRING = "";
29
+ //# sourceMappingURL=table.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table.types.d.ts","sourceRoot":"","sources":["../../../src/components/table/table.types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACb;AAED,oBAAY,aAAa;IACvB,MAAM,WAAW;IACjB,QAAQ,aAAa;CACtB;AAED,oBAAY,KAAK;IACf,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,KAAK,UAAU;CAChB;AAED,oBAAY,SAAS;IACnB,OAAO,YAAY;IACnB,SAAS,cAAc;IACvB,UAAU,eAAe;CAC1B;AACD,oBAAY,SAAS;IACnB,OAAO,IAAI;IACX,SAAS,IAAI;IACb,UAAU,KAAK;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,SAAS,CAAC;CAClB;AACD,eAAO,MAAM,YAAY,KAAK,CAAC"}
package/table.types.js ADDED
@@ -0,0 +1,25 @@
1
+ export var SelectionMode;
2
+ (function (SelectionMode) {
3
+ SelectionMode["Single"] = "single";
4
+ SelectionMode["Multiple"] = "multiple";
5
+ })(SelectionMode || (SelectionMode = {}));
6
+ export var Sizes;
7
+ (function (Sizes) {
8
+ Sizes["Small"] = "small";
9
+ Sizes["Normal"] = "normal";
10
+ Sizes["Large"] = "large";
11
+ })(Sizes || (Sizes = {}));
12
+ export var SortOrder;
13
+ (function (SortOrder) {
14
+ SortOrder["Default"] = "default";
15
+ SortOrder["Ascending"] = "ascending";
16
+ SortOrder["Descending"] = "descending";
17
+ })(SortOrder || (SortOrder = {}));
18
+ export var SortValue;
19
+ (function (SortValue) {
20
+ SortValue[SortValue["Default"] = 0] = "Default";
21
+ SortValue[SortValue["Ascending"] = 1] = "Ascending";
22
+ SortValue[SortValue["Descending"] = -1] = "Descending";
23
+ })(SortValue || (SortValue = {}));
24
+ export const EMPTY_STRING = '';
25
+ //# sourceMappingURL=table.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table.types.js","sourceRoot":"","sources":["../../../src/components/table/table.types.ts"],"names":[],"mappings":"AAKA,MAAM,CAAN,IAAY,aAGX;AAHD,WAAY,aAAa;IACvB,kCAAiB,CAAA;IACjB,sCAAqB,CAAA;AACvB,CAAC,EAHW,aAAa,KAAb,aAAa,QAGxB;AAED,MAAM,CAAN,IAAY,KAIX;AAJD,WAAY,KAAK;IACf,wBAAe,CAAA;IACf,0BAAiB,CAAA;IACjB,wBAAe,CAAA;AACjB,CAAC,EAJW,KAAK,KAAL,KAAK,QAIhB;AAED,MAAM,CAAN,IAAY,SAIX;AAJD,WAAY,SAAS;IACnB,gCAAmB,CAAA;IACnB,oCAAuB,CAAA;IACvB,sCAAyB,CAAA;AAC3B,CAAC,EAJW,SAAS,KAAT,SAAS,QAIpB;AACD,MAAM,CAAN,IAAY,SAIX;AAJD,WAAY,SAAS;IACnB,+CAAW,CAAA;IACX,mDAAa,CAAA;IACb,sDAAe,CAAA;AACjB,CAAC,EAJW,SAAS,KAAT,SAAS,QAIpB;AAMD,MAAM,CAAC,MAAM,YAAY,GAAG,EAAE,CAAC","sourcesContent":["export interface IHeader {\n name: string;\n key: string;\n}\n\nexport enum SelectionMode {\n Single = 'single',\n Multiple = 'multiple',\n}\n\nexport enum Sizes {\n Small = 'small',\n Normal = 'normal',\n Large = 'large',\n}\n\nexport enum SortOrder {\n Default = 'default',\n Ascending = 'ascending',\n Descending = 'descending',\n}\nexport enum SortValue {\n Default = 0,\n Ascending = 1,\n Descending = -1,\n}\n\nexport interface SortAttribute {\n index: number;\n order: SortOrder;\n}\nexport const EMPTY_STRING = '';\n"]}
@@ -0,0 +1,2 @@
1
+ import '../components/hy-table-actions';
2
+ //# sourceMappingURL=hy-table-actions_test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hy-table-actions_test.d.ts","sourceRoot":"","sources":["../../../../src/components/table/test/hy-table-actions_test.ts"],"names":[],"mappings":"AACA,OAAO,gCAAgC,CAAC"}
@@ -0,0 +1,32 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { html, fixture, expect } from '@open-wc/testing';
11
+ import '../components/hy-table-actions';
12
+ suite('HyTableActions', () => {
13
+ test('init table actions', () => __awaiter(void 0, void 0, void 0, function* () {
14
+ const selectedItems = 1;
15
+ const el = yield fixture(html `<hy-table-actions .selectedItems=${selectedItems}></hy-table-actions>`);
16
+ const textContainer = el.shadowRoot.querySelector('span');
17
+ expect(el.selectedItems).to.equal(selectedItems);
18
+ expect(textContainer.textContent).to.equal(`${selectedItems} selected`);
19
+ }));
20
+ test('cancel selection', () => __awaiter(void 0, void 0, void 0, function* () {
21
+ var _a;
22
+ const el = yield fixture(html `<hy-table-actions></hy-table-actions>`);
23
+ const cancelBtn = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('button');
24
+ let cancelSelectionDispatched = false;
25
+ el.addEventListener('cancel-selection', () => {
26
+ cancelSelectionDispatched = true;
27
+ });
28
+ cancelBtn === null || cancelBtn === void 0 ? void 0 : cancelBtn.click();
29
+ expect(cancelSelectionDispatched).to.be.true;
30
+ }));
31
+ });
32
+ //# sourceMappingURL=hy-table-actions_test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hy-table-actions_test.js","sourceRoot":"","sources":["../../../../src/components/table/test/hy-table-actions_test.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAC,MAAM,kBAAkB,CAAC;AACvD,OAAO,gCAAgC,CAAC;AAGxC,KAAK,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC3B,IAAI,CAAC,oBAAoB,EAAE,GAAS,EAAE;QACpC,MAAM,aAAa,GAAG,CAAC,CAAC;QACxB,MAAM,EAAE,GAAmB,MAAM,OAAO,CACtC,IAAI,CAAA,oCAAoC,aAAa,sBAAsB,CAC5E,CAAC;QACF,MAAM,aAAa,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,MAAM,CAAE,CAAC;QAC5D,MAAM,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACjD,MAAM,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,aAAa,WAAW,CAAC,CAAC;IAC1E,CAAC,CAAA,CAAC,CAAC;IAEH,IAAI,CAAC,kBAAkB,EAAE,GAAS,EAAE;;QAClC,MAAM,EAAE,GAAmB,MAAM,OAAO,CAAC,IAAI,CAAA,uCAAuC,CAAC,CAAC;QACtF,MAAM,SAAS,GAAG,MAAA,EAAE,CAAC,UAAU,0CAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;QACzD,IAAI,yBAAyB,GAAG,KAAK,CAAC;QACtC,EAAE,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,GAAG,EAAE;YAC3C,yBAAyB,GAAG,IAAI,CAAC;QACnC,CAAC,CAAC,CAAC;QACH,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,KAAK,EAAE,CAAC;QACnB,MAAM,CAAC,yBAAyB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IAC/C,CAAC,CAAA,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import {html, fixture, expect} from '@open-wc/testing';\nimport '../components/hy-table-actions';\nimport {HyTableActions} from '../components/hy-table-actions';\n\nsuite('HyTableActions', () => {\n test('init table actions', async () => {\n const selectedItems = 1;\n const el: HyTableActions = await fixture(\n html`<hy-table-actions .selectedItems=${selectedItems}></hy-table-actions>`\n );\n const textContainer = el.shadowRoot!.querySelector('span')!;\n expect(el.selectedItems).to.equal(selectedItems);\n expect(textContainer.textContent).to.equal(`${selectedItems} selected`);\n });\n\n test('cancel selection', async () => {\n const el: HyTableActions = await fixture(html`<hy-table-actions></hy-table-actions>`);\n const cancelBtn = el.shadowRoot?.querySelector('button');\n let cancelSelectionDispatched = false;\n el.addEventListener('cancel-selection', () => {\n cancelSelectionDispatched = true;\n });\n cancelBtn?.click();\n expect(cancelSelectionDispatched).to.be.true;\n });\n});\n"]}
@@ -0,0 +1,2 @@
1
+ import '../components/hy-table-content';
2
+ //# sourceMappingURL=hy-table-content_test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hy-table-content_test.d.ts","sourceRoot":"","sources":["../../../../src/components/table/test/hy-table-content_test.ts"],"names":[],"mappings":"AACA,OAAO,gCAAgC,CAAC"}
@@ -0,0 +1,168 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { html, fixture, expect } from '@open-wc/testing';
11
+ import '../components/hy-table-content';
12
+ import { SelectionMode, SortOrder } from '../table.types';
13
+ suite('HyTableContent', () => {
14
+ const headers = [
15
+ { key: 'name', name: 'Name' },
16
+ { key: 'age', name: 'Age' },
17
+ ];
18
+ const rows = [
19
+ { name: 'John', age: 30 },
20
+ { name: 'Doe', age: 25 },
21
+ ];
22
+ test('init table content', () => __awaiter(void 0, void 0, void 0, function* () {
23
+ const el = yield fixture(html `<hy-table-content
24
+ .headers=${headers}
25
+ .rows=${rows}
26
+ .sortAttribute=${{ index: -1, order: SortOrder.Default }}
27
+ ></hy-table-content>`);
28
+ const headerElements = el.shadowRoot.querySelectorAll('th span');
29
+ expect(headerElements.length).to.equal(headers.length);
30
+ }));
31
+ test('Specify selected items', () => __awaiter(void 0, void 0, void 0, function* () {
32
+ const selectedItems = [true, false];
33
+ const currentPage = 1;
34
+ const itemPerPage = 2;
35
+ const el = yield fixture(html `<hy-table-content
36
+ .headers=${headers}
37
+ .rows=${rows}
38
+ .selectionMode=${SelectionMode.Multiple}
39
+ .selectedItems=${selectedItems}
40
+ .currentPage=${currentPage}
41
+ .itemPerPage=${itemPerPage}
42
+ .sortAttribute=${{ index: -1, order: SortOrder.Default }}
43
+ ></hy-table-content>`);
44
+ const checkboxes = el.shadowRoot.querySelectorAll('input[type="checkbox"]');
45
+ expect(checkboxes.length).to.equal(3);
46
+ expect(checkboxes[1].checked).to.be.true;
47
+ expect(checkboxes[2].checked).to.be.false;
48
+ }));
49
+ test('expand row attribute on click', () => __awaiter(void 0, void 0, void 0, function* () {
50
+ const headers = [
51
+ { key: 'name', name: 'Name' },
52
+ { key: 'age', name: 'Age' },
53
+ { key: 'details', name: 'Details' },
54
+ ];
55
+ const rows = [
56
+ { name: 'John', age: 30, details: 'John details' },
57
+ { name: 'Doe', age: 25, details: 'Doe details' },
58
+ ];
59
+ const el = yield fixture(html `<hy-table-content
60
+ .headers=${headers}
61
+ .rows=${rows}
62
+ expandable="details"
63
+ .sortAttribute=${{ index: -1, order: SortOrder.Default }}
64
+ ></hy-table-content>`);
65
+ const expandIcons = el.shadowRoot.querySelectorAll('.expand-icon');
66
+ expect(expandIcons.length).to.equal(rows.length);
67
+ expect(el.expand[0]).to.be.false;
68
+ expect(el.expand[1]).to.be.false;
69
+ expandIcons[0].click();
70
+ expect(el.expand[0]).to.be.true;
71
+ expect(el.expand[1]).to.be.false;
72
+ }));
73
+ test('dispatch check-all element event', () => __awaiter(void 0, void 0, void 0, function* () {
74
+ const el = yield fixture(html `<hy-table-content
75
+ .headers=${headers}
76
+ .rows=${rows}
77
+ .sortAttribute=${{ index: 0, order: SortOrder.Ascending }}
78
+ .selectionMode=${SelectionMode.Multiple}
79
+ ></hy-table-content>`);
80
+ const globalCheckBox = el.shadowRoot.querySelectorAll('input[type="checkbox"]')[0];
81
+ let dispatchCheckAllItem = false;
82
+ el.addEventListener('check-all', () => {
83
+ dispatchCheckAllItem = true;
84
+ });
85
+ globalCheckBox.dispatchEvent(new Event('change'));
86
+ expect(dispatchCheckAllItem).to.be.true;
87
+ }));
88
+ test('dispatch check one item event', () => __awaiter(void 0, void 0, void 0, function* () {
89
+ const el = yield fixture(html `<hy-table-content
90
+ .headers=${headers}
91
+ .rows=${rows}
92
+ .sortAttribute=${{ index: 0, order: SortOrder.Ascending }}
93
+ .selectionMode=${SelectionMode.Multiple}
94
+ ></hy-table-content>`);
95
+ const firstItemCheckBox = el.shadowRoot.querySelectorAll('input[type="checkbox"]')[1];
96
+ let dispatchCheckItem = false;
97
+ el.addEventListener('check-one', () => {
98
+ dispatchCheckItem = true;
99
+ });
100
+ firstItemCheckBox.dispatchEvent(new Event('change'));
101
+ expect(dispatchCheckItem).to.be.true;
102
+ }));
103
+ test('dispatch select one event ', () => __awaiter(void 0, void 0, void 0, function* () {
104
+ const el = yield fixture(html `<hy-table-content
105
+ .headers=${headers}
106
+ .rows=${rows}
107
+ .sortAttribute=${{ index: 0, order: SortOrder.Ascending }}
108
+ .selectionMode=${SelectionMode.Single}
109
+ ></hy-table-content>`);
110
+ const firstItemRadio = el.shadowRoot.querySelector('input[type="radio"]');
111
+ let dispatchSelectItem = false;
112
+ el.addEventListener('select-one', () => {
113
+ dispatchSelectItem = true;
114
+ });
115
+ firstItemRadio.dispatchEvent(new Event('change'));
116
+ expect(dispatchSelectItem).to.be.true;
117
+ }));
118
+ test('dispatch update sort order event', () => __awaiter(void 0, void 0, void 0, function* () {
119
+ var _a;
120
+ const el = yield fixture(html `<hy-table-content
121
+ .headers=${headers}
122
+ .rows=${rows}
123
+ .sortAttribute=${{ index: 0, order: SortOrder.Ascending }}
124
+ ></hy-table-content>`);
125
+ const th = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('th');
126
+ let dispatchUpdateSortOrder = false;
127
+ el.addEventListener('update-sort', () => {
128
+ dispatchUpdateSortOrder = true;
129
+ });
130
+ expect(dispatchUpdateSortOrder).to.be.false;
131
+ th === null || th === void 0 ? void 0 : th.click();
132
+ yield el.updateComplete;
133
+ expect(dispatchUpdateSortOrder).to.be.true;
134
+ }));
135
+ suite('display sorting icon', () => {
136
+ test('ascending icon', () => __awaiter(void 0, void 0, void 0, function* () {
137
+ const el = yield fixture(html `<hy-table-content
138
+ .headers=${headers}
139
+ .rows=${rows}
140
+ .sortAttribute=${{ index: 0, order: SortOrder.Ascending }}
141
+ ></hy-table-content>`);
142
+ const sortIcon = el.shadowRoot.querySelector('th span hy-icon');
143
+ expect(sortIcon).to.exist;
144
+ expect(sortIcon).to.have.attribute('name', 'long-arrow-up');
145
+ }));
146
+ test('descending icon', () => __awaiter(void 0, void 0, void 0, function* () {
147
+ const el = yield fixture(html `<hy-table-content
148
+ .headers=${headers}
149
+ .rows=${rows}
150
+ .sortAttribute=${{ index: 0, order: SortOrder.Descending }}
151
+ ></hy-table-content>`);
152
+ const sortIcon = el.shadowRoot.querySelector('th span hy-icon');
153
+ expect(sortIcon).to.exist;
154
+ expect(sortIcon).to.have.attribute('name', 'long-arrow-down');
155
+ }));
156
+ test('default icon', () => __awaiter(void 0, void 0, void 0, function* () {
157
+ const el = yield fixture(html `<hy-table-content
158
+ .headers=${headers}
159
+ .rows=${rows}
160
+ .sortAttribute=${{ index: 0, order: SortOrder.Default }}
161
+ ></hy-table-content>`);
162
+ const sortIcon = el.shadowRoot.querySelector('th span hy-icon');
163
+ expect(sortIcon).to.exist;
164
+ expect(sortIcon).to.have.attribute('name', 'arrows-v');
165
+ }));
166
+ });
167
+ });
168
+ //# sourceMappingURL=hy-table-content_test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hy-table-content_test.js","sourceRoot":"","sources":["../../../../src/components/table/test/hy-table-content_test.ts"],"names":[],"mappings":"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","sourcesContent":["import {html, fixture, expect} from '@open-wc/testing';\nimport '../components/hy-table-content';\nimport {HyTableContent} from '../components/hy-table-content';\nimport {SelectionMode, SortOrder} from '../table.types';\n\nsuite('HyTableContent', () => {\n const headers = [\n {key: 'name', name: 'Name'},\n {key: 'age', name: 'Age'},\n ];\n const rows = [\n {name: 'John', age: 30},\n {name: 'Doe', age: 25},\n ];\n test('init table content', async () => {\n const el: HyTableContent = await fixture(\n html`<hy-table-content\n .headers=${headers}\n .rows=${rows}\n .sortAttribute=${{index: -1, order: SortOrder.Default}}\n ></hy-table-content>`\n );\n\n const headerElements = el.shadowRoot!.querySelectorAll('th span');\n expect(headerElements.length).to.equal(headers.length);\n });\n\n test('Specify selected items', async () => {\n const selectedItems = [true, false];\n const currentPage = 1;\n const itemPerPage = 2;\n\n const el: HyTableContent = await fixture(html`<hy-table-content\n .headers=${headers}\n .rows=${rows}\n .selectionMode=${SelectionMode.Multiple}\n .selectedItems=${selectedItems}\n .currentPage=${currentPage}\n .itemPerPage=${itemPerPage}\n .sortAttribute=${{index: -1, order: SortOrder.Default}}\n ></hy-table-content>`);\n\n const checkboxes: NodeListOf<HTMLInputElement> = el.shadowRoot!.querySelectorAll('input[type=\"checkbox\"]');\n expect(checkboxes.length).to.equal(3);\n expect(checkboxes[1].checked).to.be.true;\n expect(checkboxes[2].checked).to.be.false;\n });\n\n test('expand row attribute on click', async () => {\n const headers = [\n {key: 'name', name: 'Name'},\n {key: 'age', name: 'Age'},\n {key: 'details', name: 'Details'},\n ];\n const rows = [\n {name: 'John', age: 30, details: 'John details'},\n {name: 'Doe', age: 25, details: 'Doe details'},\n ];\n\n const el: HyTableContent = await fixture(html`<hy-table-content\n .headers=${headers}\n .rows=${rows}\n expandable=\"details\"\n .sortAttribute=${{index: -1, order: SortOrder.Default}}\n ></hy-table-content>`);\n\n const expandIcons: NodeListOf<HTMLElement> = el.shadowRoot!.querySelectorAll('.expand-icon');\n expect(expandIcons.length).to.equal(rows.length);\n\n expect(el.expand[0]).to.be.false;\n expect(el.expand[1]).to.be.false;\n expandIcons[0].click();\n expect(el.expand[0]).to.be.true;\n expect(el.expand[1]).to.be.false;\n });\n\n test('dispatch check-all element event', async () => {\n const el: HyTableContent = await fixture(html`<hy-table-content\n .headers=${headers}\n .rows=${rows}\n .sortAttribute=${{index: 0, order: SortOrder.Ascending}}\n .selectionMode=${SelectionMode.Multiple}\n ></hy-table-content>`);\n const globalCheckBox: Element = el.shadowRoot!.querySelectorAll('input[type=\"checkbox\"]')[0];\n let dispatchCheckAllItem = false;\n el.addEventListener('check-all', () => {\n dispatchCheckAllItem = true;\n });\n globalCheckBox.dispatchEvent(new Event('change'));\n expect(dispatchCheckAllItem).to.be.true;\n });\n test('dispatch check one item event', async () => {\n const el: HyTableContent = await fixture(html`<hy-table-content\n .headers=${headers}\n .rows=${rows}\n .sortAttribute=${{index: 0, order: SortOrder.Ascending}}\n .selectionMode=${SelectionMode.Multiple}\n ></hy-table-content>`);\n const firstItemCheckBox: Element = el.shadowRoot!.querySelectorAll('input[type=\"checkbox\"]')[1];\n let dispatchCheckItem = false;\n el.addEventListener('check-one', () => {\n dispatchCheckItem = true;\n });\n firstItemCheckBox.dispatchEvent(new Event('change'));\n expect(dispatchCheckItem).to.be.true;\n });\n test('dispatch select one event ', async () => {\n const el: HyTableContent = await fixture(html`<hy-table-content\n .headers=${headers}\n .rows=${rows}\n .sortAttribute=${{index: 0, order: SortOrder.Ascending}}\n .selectionMode=${SelectionMode.Single}\n ></hy-table-content>`);\n const firstItemRadio: Element = el.shadowRoot!.querySelector('input[type=\"radio\"]')!;\n let dispatchSelectItem = false;\n el.addEventListener('select-one', () => {\n dispatchSelectItem = true;\n });\n firstItemRadio.dispatchEvent(new Event('change'));\n expect(dispatchSelectItem).to.be.true;\n });\n\n test('dispatch update sort order event', async () => {\n const el: HyTableContent = await fixture(html`<hy-table-content\n .headers=${headers}\n .rows=${rows}\n .sortAttribute=${{index: 0, order: SortOrder.Ascending}}\n ></hy-table-content>`);\n const th = el.shadowRoot?.querySelector('th');\n let dispatchUpdateSortOrder = false;\n el.addEventListener('update-sort', () => {\n dispatchUpdateSortOrder = true;\n });\n expect(dispatchUpdateSortOrder).to.be.false;\n th?.click();\n await el.updateComplete;\n expect(dispatchUpdateSortOrder).to.be.true;\n });\n suite('display sorting icon', () => {\n test('ascending icon', async () => {\n const el: HyTableContent = await fixture(html`<hy-table-content\n .headers=${headers}\n .rows=${rows}\n .sortAttribute=${{index: 0, order: SortOrder.Ascending}}\n ></hy-table-content>`);\n const sortIcon = el.shadowRoot!.querySelector('th span hy-icon')!;\n expect(sortIcon).to.exist;\n expect(sortIcon).to.have.attribute('name', 'long-arrow-up');\n });\n test('descending icon', async () => {\n const el: HyTableContent = await fixture(html`<hy-table-content\n .headers=${headers}\n .rows=${rows}\n .sortAttribute=${{index: 0, order: SortOrder.Descending}}\n ></hy-table-content>`);\n const sortIcon = el.shadowRoot!.querySelector('th span hy-icon')!;\n expect(sortIcon).to.exist;\n expect(sortIcon).to.have.attribute('name', 'long-arrow-down');\n });\n test('default icon', async () => {\n const el: HyTableContent = await fixture(html`<hy-table-content\n .headers=${headers}\n .rows=${rows}\n .sortAttribute=${{index: 0, order: SortOrder.Default}}\n ></hy-table-content>`);\n const sortIcon = el.shadowRoot!.querySelector('th span hy-icon')!;\n expect(sortIcon).to.exist;\n expect(sortIcon).to.have.attribute('name', 'arrows-v');\n });\n });\n});\n"]}
@@ -0,0 +1,2 @@
1
+ import '../components/hy-table-filter';
2
+ //# sourceMappingURL=hy-table-filter_test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hy-table-filter_test.d.ts","sourceRoot":"","sources":["../../../../src/components/table/test/hy-table-filter_test.ts"],"names":[],"mappings":"AAAA,OAAO,+BAA+B,CAAC"}