@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.
- package/components/hy-table-actions.d.ts +11 -0
- package/components/hy-table-actions.d.ts.map +1 -0
- package/components/hy-table-actions.js +40 -0
- package/components/hy-table-actions.js.map +1 -0
- package/components/hy-table-content.d.ts +25 -0
- package/components/hy-table-content.d.ts.map +1 -0
- package/components/hy-table-content.js +168 -0
- package/components/hy-table-content.js.map +1 -0
- package/components/hy-table-filter.d.ts +11 -0
- package/components/hy-table-filter.d.ts.map +1 -0
- package/components/hy-table-filter.js +59 -0
- package/components/hy-table-filter.js.map +1 -0
- package/components/hy-table-pagination.d.ts +21 -0
- package/components/hy-table-pagination.d.ts.map +1 -0
- package/components/hy-table-pagination.js +111 -0
- package/components/hy-table-pagination.js.map +1 -0
- package/components/table-actions.style.d.ts +2 -0
- package/components/table-actions.style.d.ts.map +1 -0
- package/components/table-actions.style.js +31 -0
- package/components/table-actions.style.js.map +1 -0
- package/components/table-actions.variables.d.ts +2 -0
- package/components/table-actions.variables.d.ts.map +1 -0
- package/components/table-actions.variables.js +13 -0
- package/components/table-actions.variables.js.map +1 -0
- package/components/table-content.style.d.ts +2 -0
- package/components/table-content.style.d.ts.map +1 -0
- package/components/table-content.style.js +77 -0
- package/components/table-content.style.js.map +1 -0
- package/components/table-content.variables.d.ts +2 -0
- package/components/table-content.variables.d.ts.map +1 -0
- package/components/table-content.variables.js +29 -0
- package/components/table-content.variables.js.map +1 -0
- package/components/table-filter.style.d.ts +2 -0
- package/components/table-filter.style.d.ts.map +1 -0
- package/components/table-filter.style.js +39 -0
- package/components/table-filter.style.js.map +1 -0
- package/components/table-filter.variables.d.ts +2 -0
- package/components/table-filter.variables.d.ts.map +1 -0
- package/components/table-filter.variables.js +17 -0
- package/components/table-filter.variables.js.map +1 -0
- package/components/table-pagination.style.d.ts +2 -0
- package/components/table-pagination.style.d.ts.map +1 -0
- package/components/table-pagination.style.js +102 -0
- package/components/table-pagination.style.js.map +1 -0
- package/components/table-pagination.variables.d.ts +2 -0
- package/components/table-pagination.variables.d.ts.map +1 -0
- package/components/table-pagination.variables.js +17 -0
- package/components/table-pagination.variables.js.map +1 -0
- package/demo/table-demo.d.ts +17 -0
- package/demo/table-demo.d.ts.map +1 -0
- package/demo/table-demo.js +166 -0
- package/demo/table-demo.js.map +1 -0
- package/index.d.ts +2 -0
- package/index.d.ts.map +1 -0
- package/index.js +2 -0
- package/index.js.map +1 -0
- package/package.json +15 -0
- package/table.component.d.ts +39 -0
- package/table.component.d.ts.map +1 -0
- package/table.component.js +245 -0
- package/table.component.js.map +1 -0
- package/table.style.d.ts +3 -0
- package/table.style.d.ts.map +1 -0
- package/table.style.js +14 -0
- package/table.style.js.map +1 -0
- package/table.types.d.ts +29 -0
- package/table.types.d.ts.map +1 -0
- package/table.types.js +25 -0
- package/table.types.js.map +1 -0
- package/test/hy-table-actions_test.d.ts +2 -0
- package/test/hy-table-actions_test.d.ts.map +1 -0
- package/test/hy-table-actions_test.js +32 -0
- package/test/hy-table-actions_test.js.map +1 -0
- package/test/hy-table-content_test.d.ts +2 -0
- package/test/hy-table-content_test.d.ts.map +1 -0
- package/test/hy-table-content_test.js +168 -0
- package/test/hy-table-content_test.js.map +1 -0
- package/test/hy-table-filter_test.d.ts +2 -0
- package/test/hy-table-filter_test.d.ts.map +1 -0
- package/test/hy-table-filter_test.js +80 -0
- package/test/hy-table-filter_test.js.map +1 -0
- package/test/hy-table-pagination_test.d.ts +2 -0
- package/test/hy-table-pagination_test.d.ts.map +1 -0
- package/test/hy-table-pagination_test.js +114 -0
- package/test/hy-table-pagination_test.js.map +1 -0
- package/test/hy-table_test.d.ts +2 -0
- package/test/hy-table_test.d.ts.map +1 -0
- package/test/hy-table_test.js +145 -0
- 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"]}
|
package/table.style.d.ts
ADDED
|
@@ -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"]}
|
package/table.types.d.ts
ADDED
|
@@ -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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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"}
|