@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,80 @@
|
|
|
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 '../components/hy-table-filter';
|
|
11
|
+
import { fixture, html, expect } from '@open-wc/testing';
|
|
12
|
+
suite('HyTableFilterComponent', () => {
|
|
13
|
+
test('init input filter', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
14
|
+
var _a;
|
|
15
|
+
const el = yield fixture(html `<hy-table-filter></hy-table-filter>`);
|
|
16
|
+
const input = el.shadowRoot.querySelector('input');
|
|
17
|
+
const iconContainer = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.icon-container');
|
|
18
|
+
expect(el.showInput).to.be.false;
|
|
19
|
+
expect(el.value).to.be.empty;
|
|
20
|
+
expect(input).to.not.exist;
|
|
21
|
+
expect(iconContainer).to.exist;
|
|
22
|
+
}));
|
|
23
|
+
test('show input filter and hide icon on click icon', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
24
|
+
const el = yield fixture(html `<hy-table-filter></hy-table-filter>`);
|
|
25
|
+
let input = el.shadowRoot.querySelector('input');
|
|
26
|
+
let iconContainer = el.shadowRoot.querySelector('.icon-container');
|
|
27
|
+
expect(el.showInput).to.be.false;
|
|
28
|
+
expect(input).to.not.exist;
|
|
29
|
+
expect(iconContainer).to.exist;
|
|
30
|
+
iconContainer.click();
|
|
31
|
+
yield el.updateComplete;
|
|
32
|
+
input = el.shadowRoot.querySelector('input');
|
|
33
|
+
iconContainer = el.shadowRoot.querySelector('.icon-container');
|
|
34
|
+
expect(el.showInput).to.be.true;
|
|
35
|
+
expect(input).to.exist;
|
|
36
|
+
expect(iconContainer).to.not.exist;
|
|
37
|
+
}));
|
|
38
|
+
test('dispatch value change', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
39
|
+
const el = yield fixture(html `<hy-table-filter .showInput=${true}></hy-table-filter>`);
|
|
40
|
+
const input = el.shadowRoot.querySelector('input');
|
|
41
|
+
let valueChangeDispatched = false;
|
|
42
|
+
el.addEventListener('value-change', () => {
|
|
43
|
+
valueChangeDispatched = true;
|
|
44
|
+
});
|
|
45
|
+
input.dispatchEvent(new Event('input'));
|
|
46
|
+
expect(valueChangeDispatched).to.be.true;
|
|
47
|
+
}));
|
|
48
|
+
suite('on blur input', () => {
|
|
49
|
+
test('show icon and hide input when input is empty', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
50
|
+
const el = yield fixture(html `<hy-table-filter .showInput=${true}></hy-table-filter>`);
|
|
51
|
+
const iconContainer = el.shadowRoot.querySelector('.icon-container');
|
|
52
|
+
let input = el.shadowRoot.querySelector('input');
|
|
53
|
+
expect(el.showInput).to.be.true;
|
|
54
|
+
expect(input).to.exist;
|
|
55
|
+
expect(iconContainer).to.not.exist;
|
|
56
|
+
input.blur();
|
|
57
|
+
yield el.updateComplete;
|
|
58
|
+
input = el.shadowRoot.querySelector('input');
|
|
59
|
+
expect(el.showInput).to.be.false;
|
|
60
|
+
expect(input).to.not.exist;
|
|
61
|
+
}));
|
|
62
|
+
test('expose input and hide icon when input is filled', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
63
|
+
const el = yield fixture(html `<hy-table-filter .showInput=${true}></hy-table-filter>`);
|
|
64
|
+
const iconContainer = el.shadowRoot.querySelector('.icon-container');
|
|
65
|
+
let input = el.shadowRoot.querySelector('input');
|
|
66
|
+
expect(input).to.exist;
|
|
67
|
+
expect(iconContainer).to.not.exist;
|
|
68
|
+
input.value = 'hey';
|
|
69
|
+
input.dispatchEvent(new Event('input'));
|
|
70
|
+
yield el.updateComplete;
|
|
71
|
+
input.blur();
|
|
72
|
+
yield el.updateComplete;
|
|
73
|
+
input = el.shadowRoot.querySelector('input');
|
|
74
|
+
expect(el.showInput).to.be.true;
|
|
75
|
+
expect(input).to.exist;
|
|
76
|
+
expect(iconContainer).to.not.exist;
|
|
77
|
+
}));
|
|
78
|
+
});
|
|
79
|
+
});
|
|
80
|
+
//# sourceMappingURL=hy-table-filter_test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hy-table-filter_test.js","sourceRoot":"","sources":["../../../../src/components/table/test/hy-table-filter_test.ts"],"names":[],"mappings":"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","sourcesContent":["import '../components/hy-table-filter';\nimport {HyTableFilter} from '../components/hy-table-filter';\nimport {fixture, html, expect} from '@open-wc/testing';\nsuite('HyTableFilterComponent', () => {\n test('init input filter', async () => {\n const el: HyTableFilter = await fixture(html`<hy-table-filter></hy-table-filter>`);\n const input: HTMLInputElement = el.shadowRoot!.querySelector('input')!;\n const iconContainer = el.shadowRoot?.querySelector('.icon-container');\n expect(el.showInput).to.be.false;\n expect(el.value).to.be.empty;\n expect(input).to.not.exist;\n expect(iconContainer).to.exist;\n });\n\n test('show input filter and hide icon on click icon', async () => {\n const el: HyTableFilter = await fixture(html`<hy-table-filter></hy-table-filter>`);\n let input: HTMLInputElement = el.shadowRoot!.querySelector('input')!;\n let iconContainer: HTMLElement = el.shadowRoot!.querySelector('.icon-container')!;\n expect(el.showInput).to.be.false;\n expect(input).to.not.exist;\n expect(iconContainer).to.exist;\n iconContainer.click();\n await el.updateComplete;\n input = el.shadowRoot!.querySelector('input')!;\n iconContainer = el.shadowRoot!.querySelector('.icon-container')!;\n expect(el.showInput).to.be.true;\n expect(input).to.exist;\n expect(iconContainer).to.not.exist;\n });\n test('dispatch value change', async () => {\n const el: HyTableFilter = await fixture(html`<hy-table-filter .showInput=${true}></hy-table-filter>`);\n const input: HTMLInputElement = el.shadowRoot!.querySelector('input')!;\n\n let valueChangeDispatched = false;\n el.addEventListener('value-change', () => {\n valueChangeDispatched = true;\n });\n input.dispatchEvent(new Event('input'));\n expect(valueChangeDispatched).to.be.true;\n });\n\n suite('on blur input', () => {\n test('show icon and hide input when input is empty', async () => {\n const el: HyTableFilter = await fixture(html`<hy-table-filter .showInput=${true}></hy-table-filter>`);\n const iconContainer: HTMLElement = el.shadowRoot!.querySelector('.icon-container')!;\n let input: HTMLInputElement = el.shadowRoot!.querySelector('input')!;\n expect(el.showInput).to.be.true;\n expect(input).to.exist;\n expect(iconContainer).to.not.exist;\n input.blur();\n await el.updateComplete;\n input = el.shadowRoot!.querySelector('input')!;\n expect(el.showInput).to.be.false;\n expect(input).to.not.exist;\n });\n test('expose input and hide icon when input is filled', async () => {\n const el: HyTableFilter = await fixture(html`<hy-table-filter .showInput=${true}></hy-table-filter>`);\n const iconContainer: HTMLElement = el.shadowRoot!.querySelector('.icon-container')!;\n let input: HTMLInputElement = el.shadowRoot!.querySelector('input')!;\n expect(input).to.exist;\n expect(iconContainer).to.not.exist;\n input.value = 'hey';\n input.dispatchEvent(new Event('input'));\n await el.updateComplete;\n input.blur();\n await el.updateComplete;\n input = el.shadowRoot!.querySelector('input')!;\n expect(el.showInput).to.be.true;\n expect(input).to.exist;\n expect(iconContainer).to.not.exist;\n });\n });\n});\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hy-table-pagination_test.d.ts","sourceRoot":"","sources":["../../../../src/components/table/test/hy-table-pagination_test.ts"],"names":[],"mappings":"AACA,OAAO,mCAAmC,CAAC"}
|
|
@@ -0,0 +1,114 @@
|
|
|
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-pagination';
|
|
12
|
+
import { Sizes } from '../table.types';
|
|
13
|
+
suite('HyTablePagination', () => {
|
|
14
|
+
test('init pagination', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
15
|
+
const numberOfItems = 100;
|
|
16
|
+
const itemPerPage = [5, 10, 15];
|
|
17
|
+
const selectedItemPerPage = itemPerPage[0];
|
|
18
|
+
const currentPage = 1;
|
|
19
|
+
const size = Sizes.Normal;
|
|
20
|
+
const el = yield fixture(html `<hy-table-pagination
|
|
21
|
+
.numberOfItems=${numberOfItems}
|
|
22
|
+
.itemPerPage=${itemPerPage}
|
|
23
|
+
.selectedItemPerPage=${selectedItemPerPage}
|
|
24
|
+
.currentPage=${currentPage}
|
|
25
|
+
.size=${size}
|
|
26
|
+
></hy-table-pagination>`);
|
|
27
|
+
expect(el.numberOfItems).to.equal(numberOfItems);
|
|
28
|
+
expect(el.itemPerPage).to.equal(itemPerPage);
|
|
29
|
+
expect(el.selectedItemPerPage).to.equal(selectedItemPerPage);
|
|
30
|
+
expect(el.currentPage).to.equal(currentPage);
|
|
31
|
+
expect(el.size).to.equal(size);
|
|
32
|
+
expect(el.numberOfPages).to.equal(20);
|
|
33
|
+
expect(el.fromItem).to.equal(1);
|
|
34
|
+
expect(el.toItem).to.equal(5);
|
|
35
|
+
expect(el.enablePrevious).to.be.false;
|
|
36
|
+
expect(el.enableNext).to.be.true;
|
|
37
|
+
}));
|
|
38
|
+
test('handles item per page change', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
39
|
+
const numberOfItems = 100;
|
|
40
|
+
const itemPerPage = [10, 20, 50];
|
|
41
|
+
const selectedItemPerPage = itemPerPage[0];
|
|
42
|
+
const currentPage = 1;
|
|
43
|
+
const el = yield fixture(html `<hy-table-pagination
|
|
44
|
+
.numberOfItems=${numberOfItems}
|
|
45
|
+
.itemPerPage=${itemPerPage}
|
|
46
|
+
.selectedItemPerPage=${selectedItemPerPage}
|
|
47
|
+
.currentPage=${currentPage}
|
|
48
|
+
></hy-table-pagination>`);
|
|
49
|
+
expect(el.fromItem).to.equal(1);
|
|
50
|
+
expect(el.toItem).to.equal(10);
|
|
51
|
+
expect(el.enablePrevious).to.be.false;
|
|
52
|
+
expect(el.enableNext).to.be.true;
|
|
53
|
+
expect(el.numberOfPages).to.equal(10);
|
|
54
|
+
const select = el.shadowRoot.querySelector('select');
|
|
55
|
+
select.value = '20';
|
|
56
|
+
select.dispatchEvent(new Event('change'));
|
|
57
|
+
yield el.updateComplete;
|
|
58
|
+
expect(el.selectedItemPerPage).to.equal(20);
|
|
59
|
+
expect(el.fromItem).to.equal(1);
|
|
60
|
+
expect(el.toItem).to.equal(20);
|
|
61
|
+
expect(el.enablePrevious).to.be.false;
|
|
62
|
+
expect(el.enableNext).to.be.true;
|
|
63
|
+
expect(el.numberOfPages).to.equal(5);
|
|
64
|
+
}));
|
|
65
|
+
test('handles next page action', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
66
|
+
const numberOfItems = 100;
|
|
67
|
+
const itemPerPage = [10, 20, 50];
|
|
68
|
+
const selectedItemPerPage = itemPerPage[0];
|
|
69
|
+
const currentPage = 1;
|
|
70
|
+
const el = yield fixture(html `<hy-table-pagination
|
|
71
|
+
.numberOfItems=${numberOfItems}
|
|
72
|
+
.itemPerPage=${itemPerPage}
|
|
73
|
+
.selectedItemPerPage=${selectedItemPerPage}
|
|
74
|
+
.currentPage=${currentPage}
|
|
75
|
+
></hy-table-pagination>`);
|
|
76
|
+
expect(el.currentPage).to.equal(1);
|
|
77
|
+
expect(el.fromItem).to.equal(1);
|
|
78
|
+
expect(el.toItem).to.equal(10);
|
|
79
|
+
expect(el.enablePrevious).to.be.false;
|
|
80
|
+
expect(el.enableNext).to.be.true;
|
|
81
|
+
el._nextPage();
|
|
82
|
+
yield el.updateComplete;
|
|
83
|
+
expect(el.currentPage).to.equal(2);
|
|
84
|
+
expect(el.fromItem).to.equal(11);
|
|
85
|
+
expect(el.toItem).to.equal(20);
|
|
86
|
+
expect(el.enablePrevious).to.be.true;
|
|
87
|
+
expect(el.enableNext).to.be.true;
|
|
88
|
+
}));
|
|
89
|
+
test('handles previous page action', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
90
|
+
const numberOfItems = 100;
|
|
91
|
+
const itemPerPage = [10, 20, 50];
|
|
92
|
+
const selectedItemPerPage = itemPerPage[0];
|
|
93
|
+
const currentPage = 10;
|
|
94
|
+
const el = yield fixture(html `<hy-table-pagination
|
|
95
|
+
.numberOfItems=${numberOfItems}
|
|
96
|
+
.itemPerPage=${itemPerPage}
|
|
97
|
+
.selectedItemPerPage=${selectedItemPerPage}
|
|
98
|
+
.currentPage=${currentPage}
|
|
99
|
+
></hy-table-pagination>`);
|
|
100
|
+
expect(el.currentPage).to.equal(10);
|
|
101
|
+
expect(el.fromItem).to.equal(91);
|
|
102
|
+
expect(el.toItem).to.equal(100);
|
|
103
|
+
expect(el.enablePrevious).to.be.true;
|
|
104
|
+
expect(el.enableNext).to.be.false;
|
|
105
|
+
el._previousPage();
|
|
106
|
+
yield el.updateComplete;
|
|
107
|
+
expect(el.currentPage).to.equal(9);
|
|
108
|
+
expect(el.fromItem).to.equal(81);
|
|
109
|
+
expect(el.toItem).to.equal(90);
|
|
110
|
+
expect(el.enablePrevious).to.be.true;
|
|
111
|
+
expect(el.enableNext).to.be.true;
|
|
112
|
+
}));
|
|
113
|
+
});
|
|
114
|
+
//# sourceMappingURL=hy-table-pagination_test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hy-table-pagination_test.js","sourceRoot":"","sources":["../../../../src/components/table/test/hy-table-pagination_test.ts"],"names":[],"mappings":"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","sourcesContent":["import {html, fixture, expect} from '@open-wc/testing';\nimport '../components/hy-table-pagination';\nimport {HyTablePagination} from '../components/hy-table-pagination';\nimport {Sizes} from '../table.types';\n\nsuite('HyTablePagination', () => {\n test('init pagination', async () => {\n const numberOfItems = 100;\n const itemPerPage = [5, 10, 15];\n const selectedItemPerPage = itemPerPage[0];\n const currentPage = 1;\n const size = Sizes.Normal;\n const el: HyTablePagination = await fixture(\n html`<hy-table-pagination\n .numberOfItems=${numberOfItems}\n .itemPerPage=${itemPerPage}\n .selectedItemPerPage=${selectedItemPerPage}\n .currentPage=${currentPage}\n .size=${size}\n ></hy-table-pagination>`\n );\n expect(el.numberOfItems).to.equal(numberOfItems);\n expect(el.itemPerPage).to.equal(itemPerPage);\n expect(el.selectedItemPerPage).to.equal(selectedItemPerPage);\n expect(el.currentPage).to.equal(currentPage);\n expect(el.size).to.equal(size);\n expect(el.numberOfPages).to.equal(20);\n expect(el.fromItem).to.equal(1);\n expect(el.toItem).to.equal(5);\n expect(el.enablePrevious).to.be.false;\n expect(el.enableNext).to.be.true;\n });\n\n test('handles item per page change', async () => {\n const numberOfItems = 100;\n const itemPerPage = [10, 20, 50];\n const selectedItemPerPage = itemPerPage[0];\n const currentPage = 1;\n const el: HyTablePagination = await fixture(html`<hy-table-pagination\n .numberOfItems=${numberOfItems}\n .itemPerPage=${itemPerPage}\n .selectedItemPerPage=${selectedItemPerPage}\n .currentPage=${currentPage}\n ></hy-table-pagination>`);\n expect(el.fromItem).to.equal(1);\n expect(el.toItem).to.equal(10);\n expect(el.enablePrevious).to.be.false;\n expect(el.enableNext).to.be.true;\n expect(el.numberOfPages).to.equal(10);\n\n const select = el.shadowRoot!.querySelector('select')!;\n select.value = '20';\n select.dispatchEvent(new Event('change'));\n await el.updateComplete;\n expect(el.selectedItemPerPage).to.equal(20);\n expect(el.fromItem).to.equal(1);\n expect(el.toItem).to.equal(20);\n expect(el.enablePrevious).to.be.false;\n expect(el.enableNext).to.be.true;\n expect(el.numberOfPages).to.equal(5);\n });\n\n test('handles next page action', async () => {\n const numberOfItems = 100;\n const itemPerPage = [10, 20, 50];\n const selectedItemPerPage = itemPerPage[0];\n const currentPage = 1;\n const el: HyTablePagination = await fixture(html`<hy-table-pagination\n .numberOfItems=${numberOfItems}\n .itemPerPage=${itemPerPage}\n .selectedItemPerPage=${selectedItemPerPage}\n .currentPage=${currentPage}\n ></hy-table-pagination>`);\n expect(el.currentPage).to.equal(1);\n expect(el.fromItem).to.equal(1);\n expect(el.toItem).to.equal(10);\n expect(el.enablePrevious).to.be.false;\n expect(el.enableNext).to.be.true;\n\n el._nextPage();\n await el.updateComplete;\n expect(el.currentPage).to.equal(2);\n expect(el.fromItem).to.equal(11);\n expect(el.toItem).to.equal(20);\n expect(el.enablePrevious).to.be.true;\n expect(el.enableNext).to.be.true;\n });\n\n test('handles previous page action', async () => {\n const numberOfItems = 100;\n const itemPerPage = [10, 20, 50];\n const selectedItemPerPage = itemPerPage[0];\n const currentPage = 10;\n const el: HyTablePagination = await fixture(html`<hy-table-pagination\n .numberOfItems=${numberOfItems}\n .itemPerPage=${itemPerPage}\n .selectedItemPerPage=${selectedItemPerPage}\n .currentPage=${currentPage}\n ></hy-table-pagination>`);\n expect(el.currentPage).to.equal(10);\n expect(el.fromItem).to.equal(91);\n expect(el.toItem).to.equal(100);\n expect(el.enablePrevious).to.be.true;\n expect(el.enableNext).to.be.false;\n\n el._previousPage();\n await el.updateComplete;\n expect(el.currentPage).to.equal(9);\n expect(el.fromItem).to.equal(81);\n expect(el.toItem).to.equal(90);\n expect(el.enablePrevious).to.be.true;\n expect(el.enableNext).to.be.true;\n });\n});\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hy-table_test.d.ts","sourceRoot":"","sources":["../../../../src/components/table/test/hy-table_test.ts"],"names":[],"mappings":"AAAA,OAAO,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,145 @@
|
|
|
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 '../table.component';
|
|
11
|
+
import { fixture, html, expect } from '@open-wc/testing';
|
|
12
|
+
import { SelectionMode, SortOrder } from '../table.types';
|
|
13
|
+
suite('HyTableComponent', () => {
|
|
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: 55 },
|
|
21
|
+
{ name: 'Jack', age: 20 },
|
|
22
|
+
{ name: 'Phil', age: 35 },
|
|
23
|
+
{ name: 'Sebastian', age: 45 },
|
|
24
|
+
{ name: 'Thibaut', age: 44 },
|
|
25
|
+
];
|
|
26
|
+
test('init table', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
27
|
+
const el = yield fixture(html `<hy-table .headers=${headers} .rows=${rows}></hy-table>`);
|
|
28
|
+
expect(el.rowsCopy).to.deep.equal(rows);
|
|
29
|
+
expect(el.displayedRows).to.deep.equal(el.rowsCopy.slice(0, el.selectedItemPerPage));
|
|
30
|
+
expect(el.currentPage).to.equal(1);
|
|
31
|
+
}));
|
|
32
|
+
test('sort data correctly', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
33
|
+
const el = yield fixture(html `<hy-table .headers=${headers} .rows=${rows}></hy-table>`);
|
|
34
|
+
const sortToNameEvent = new CustomEvent('', { detail: { index: 0 } });
|
|
35
|
+
const rowsAscToName = [
|
|
36
|
+
{ name: 'Doe', age: 55 },
|
|
37
|
+
{ name: 'Jack', age: 20 },
|
|
38
|
+
{ name: 'John', age: 30 },
|
|
39
|
+
{ name: 'Phil', age: 35 },
|
|
40
|
+
{ name: 'Sebastian', age: 45 },
|
|
41
|
+
{ name: 'Thibaut', age: 44 },
|
|
42
|
+
];
|
|
43
|
+
el._handleSortOrder(sortToNameEvent);
|
|
44
|
+
yield el.updateComplete;
|
|
45
|
+
expect(el.sortAttribute.order).to.equal(SortOrder.Ascending);
|
|
46
|
+
expect(el.rowsCopy).to.deep.equal(rowsAscToName);
|
|
47
|
+
const rowsDescToName = [
|
|
48
|
+
{ name: 'Thibaut', age: 44 },
|
|
49
|
+
{ name: 'Sebastian', age: 45 },
|
|
50
|
+
{ name: 'Phil', age: 35 },
|
|
51
|
+
{ name: 'John', age: 30 },
|
|
52
|
+
{ name: 'Jack', age: 20 },
|
|
53
|
+
{ name: 'Doe', age: 55 },
|
|
54
|
+
];
|
|
55
|
+
el._handleSortOrder(sortToNameEvent);
|
|
56
|
+
yield el.updateComplete;
|
|
57
|
+
expect(el.sortAttribute.order).to.equal(SortOrder.Descending);
|
|
58
|
+
expect(el.rowsCopy).to.deep.equal(rowsDescToName);
|
|
59
|
+
el._handleSortOrder(sortToNameEvent);
|
|
60
|
+
yield el.updateComplete;
|
|
61
|
+
expect(el.sortAttribute.order).to.equal(SortOrder.Default);
|
|
62
|
+
expect(el.rowsCopy).to.deep.equal(rows);
|
|
63
|
+
}));
|
|
64
|
+
suite('Multiple selection', () => {
|
|
65
|
+
const selectedItems = Array(rows.length).fill(false);
|
|
66
|
+
test('select one item', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
67
|
+
const el = yield fixture(html `<hy-table .headers=${headers} .rows=${rows} .selectionMode=${SelectionMode.Multiple}></hy-table>`);
|
|
68
|
+
expect(el.selectedItems).to.deep.equal(selectedItems);
|
|
69
|
+
const selectFirstItemEvent = new CustomEvent('', { detail: { index: 1, value: true } });
|
|
70
|
+
el._handleCheckOne(selectFirstItemEvent);
|
|
71
|
+
yield el.updateComplete;
|
|
72
|
+
expect(el.selectedItems[1]).to.be.true;
|
|
73
|
+
const selectSecondItemEvent = new CustomEvent('', { detail: { index: 3, value: true } });
|
|
74
|
+
el._handleCheckOne(selectSecondItemEvent);
|
|
75
|
+
yield el.updateComplete;
|
|
76
|
+
expect(el.selectedItems[3]).to.be.true;
|
|
77
|
+
expect(el.selectedItems[1]).to.be.true;
|
|
78
|
+
}));
|
|
79
|
+
test('select all', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
80
|
+
const el = yield fixture(html `<hy-table .headers=${headers} .rows=${rows} .selectionMode=${SelectionMode.Multiple}></hy-table>`);
|
|
81
|
+
expect(el.selectedItems).to.deep.equal(selectedItems);
|
|
82
|
+
const selectAllItemsEvent = new CustomEvent('', { detail: { isEveryItemChecked: false } });
|
|
83
|
+
el._handleCheckAll(selectAllItemsEvent);
|
|
84
|
+
yield el.updateComplete;
|
|
85
|
+
expect(el.selectedItems.every((v) => v)).to.be.true;
|
|
86
|
+
const unselectAllItemsEvent = new CustomEvent('', { detail: { isEveryItemChecked: true } });
|
|
87
|
+
el._handleCheckAll(unselectAllItemsEvent);
|
|
88
|
+
yield el.updateComplete;
|
|
89
|
+
expect(el.selectedItems.every((v) => !v)).to.be.true;
|
|
90
|
+
}));
|
|
91
|
+
});
|
|
92
|
+
suite('Single selection', () => {
|
|
93
|
+
const selectedItems = Array(rows.length).fill(false);
|
|
94
|
+
test('select one item', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
95
|
+
const el = yield fixture(html `<hy-table .headers=${headers} .rows=${rows} .selectionMode=${SelectionMode.Multiple}></hy-table>`);
|
|
96
|
+
expect(el.selectedItems).to.deep.equal(selectedItems);
|
|
97
|
+
const selectFirstItemEvent = new CustomEvent('', { detail: { index: 0 } });
|
|
98
|
+
el._handleSelectOne(selectFirstItemEvent);
|
|
99
|
+
yield el.updateComplete;
|
|
100
|
+
expect(el.selectedItems[0]).to.be.true;
|
|
101
|
+
const selectSecondItemEvent = new CustomEvent('', { detail: { index: 3 } });
|
|
102
|
+
el._handleSelectOne(selectSecondItemEvent);
|
|
103
|
+
yield el.updateComplete;
|
|
104
|
+
expect(el.selectedItems[3]).to.be.true;
|
|
105
|
+
expect(el.selectedItems[0]).to.be.false;
|
|
106
|
+
}));
|
|
107
|
+
});
|
|
108
|
+
test('search items', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
109
|
+
const el = yield fixture(html `<hy-table .headers=${headers} .rows=${rows}></hy-table>`);
|
|
110
|
+
const searchEvent = new CustomEvent('', { detail: { value: 'Joh' } });
|
|
111
|
+
el._handleSearch(searchEvent);
|
|
112
|
+
yield el.updateComplete;
|
|
113
|
+
expect(el.rowsCopy.length).to.equal(1);
|
|
114
|
+
expect(el.rowsCopy).to.deep.equal([{ name: 'John', age: 30 }]);
|
|
115
|
+
const initSearchEvent = new CustomEvent('', { detail: { value: '' } });
|
|
116
|
+
el._handleSearch(initSearchEvent);
|
|
117
|
+
yield el.updateComplete;
|
|
118
|
+
expect(el.rowsCopy).to.deep.equal(rows);
|
|
119
|
+
}));
|
|
120
|
+
test('update page', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
121
|
+
const el = yield fixture(html `<hy-table .headers=${headers} .rows=${rows}></hy-table>`);
|
|
122
|
+
const updatePageEvent = new CustomEvent('', { detail: { page: 2 } });
|
|
123
|
+
el._handleUpdatePage(updatePageEvent);
|
|
124
|
+
yield el.updateComplete;
|
|
125
|
+
expect(el.currentPage).to.equal(2);
|
|
126
|
+
expect(el.displayedRows).to.deep.equal([{ name: 'Thibaut', age: 44 }]);
|
|
127
|
+
}));
|
|
128
|
+
test('update item per page', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
129
|
+
const el = yield fixture(html `<hy-table .headers=${headers} .rows=${rows}></hy-table>`);
|
|
130
|
+
const updateItemPerPageEvent = new CustomEvent('', { detail: { selectedItemPerPage: el.itemPerPage[1] } });
|
|
131
|
+
expect(el.displayedRows).to.deep.equal([
|
|
132
|
+
{ name: 'John', age: 30 },
|
|
133
|
+
{ name: 'Doe', age: 55 },
|
|
134
|
+
{ name: 'Jack', age: 20 },
|
|
135
|
+
{ name: 'Phil', age: 35 },
|
|
136
|
+
{ name: 'Sebastian', age: 45 },
|
|
137
|
+
]);
|
|
138
|
+
el._handleItemPerPage(updateItemPerPageEvent);
|
|
139
|
+
yield el.updateComplete;
|
|
140
|
+
expect(el.selectedItemPerPage).to.equal(el.itemPerPage[1]);
|
|
141
|
+
expect(el.currentPage).to.equal(1);
|
|
142
|
+
expect(el.displayedRows).to.deep.equal(rows);
|
|
143
|
+
}));
|
|
144
|
+
});
|
|
145
|
+
//# sourceMappingURL=hy-table_test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hy-table_test.js","sourceRoot":"","sources":["../../../../src/components/table/test/hy-table_test.ts"],"names":[],"mappings":"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","sourcesContent":["import '../table.component';\nimport {HyTable} from '../table.component';\nimport {fixture, html, expect} from '@open-wc/testing';\nimport {SelectionMode, SortOrder} from '../table.types';\nsuite('HyTableComponent', () => {\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: 55},\n {name: 'Jack', age: 20},\n {name: 'Phil', age: 35},\n {name: 'Sebastian', age: 45},\n {name: 'Thibaut', age: 44},\n ];\n test('init table', async () => {\n const el: HyTable = await fixture(html`<hy-table .headers=${headers} .rows=${rows}></hy-table>`);\n expect(el.rowsCopy).to.deep.equal(rows);\n expect(el.displayedRows).to.deep.equal(el.rowsCopy.slice(0, el.selectedItemPerPage));\n expect(el.currentPage).to.equal(1);\n });\n\n test('sort data correctly', async () => {\n const el: HyTable = await fixture(html`<hy-table .headers=${headers} .rows=${rows}></hy-table>`);\n const sortToNameEvent = new CustomEvent('', {detail: {index: 0}});\n const rowsAscToName = [\n {name: 'Doe', age: 55},\n {name: 'Jack', age: 20},\n {name: 'John', age: 30},\n {name: 'Phil', age: 35},\n {name: 'Sebastian', age: 45},\n {name: 'Thibaut', age: 44},\n ];\n el._handleSortOrder(sortToNameEvent);\n await el.updateComplete;\n expect(el.sortAttribute.order).to.equal(SortOrder.Ascending);\n expect(el.rowsCopy).to.deep.equal(rowsAscToName);\n const rowsDescToName = [\n {name: 'Thibaut', age: 44},\n {name: 'Sebastian', age: 45},\n {name: 'Phil', age: 35},\n {name: 'John', age: 30},\n {name: 'Jack', age: 20},\n {name: 'Doe', age: 55},\n ];\n el._handleSortOrder(sortToNameEvent);\n await el.updateComplete;\n expect(el.sortAttribute.order).to.equal(SortOrder.Descending);\n expect(el.rowsCopy).to.deep.equal(rowsDescToName);\n el._handleSortOrder(sortToNameEvent);\n await el.updateComplete;\n expect(el.sortAttribute.order).to.equal(SortOrder.Default);\n expect(el.rowsCopy).to.deep.equal(rows);\n });\n\n suite('Multiple selection', () => {\n const selectedItems = Array(rows.length).fill(false);\n test('select one item', async () => {\n const el: HyTable = await fixture(\n html`<hy-table .headers=${headers} .rows=${rows} .selectionMode=${SelectionMode.Multiple}></hy-table>`\n );\n expect(el.selectedItems).to.deep.equal(selectedItems);\n const selectFirstItemEvent = new CustomEvent('', {detail: {index: 1, value: true}});\n el._handleCheckOne(selectFirstItemEvent);\n await el.updateComplete;\n expect(el.selectedItems[1]).to.be.true;\n const selectSecondItemEvent = new CustomEvent('', {detail: {index: 3, value: true}});\n el._handleCheckOne(selectSecondItemEvent);\n await el.updateComplete;\n expect(el.selectedItems[3]).to.be.true;\n expect(el.selectedItems[1]).to.be.true;\n });\n test('select all', async () => {\n const el: HyTable = await fixture(\n html`<hy-table .headers=${headers} .rows=${rows} .selectionMode=${SelectionMode.Multiple}></hy-table>`\n );\n expect(el.selectedItems).to.deep.equal(selectedItems);\n const selectAllItemsEvent = new CustomEvent('', {detail: {isEveryItemChecked: false}});\n el._handleCheckAll(selectAllItemsEvent);\n await el.updateComplete;\n expect(el.selectedItems.every((v) => v)).to.be.true;\n const unselectAllItemsEvent = new CustomEvent('', {detail: {isEveryItemChecked: true}});\n el._handleCheckAll(unselectAllItemsEvent);\n await el.updateComplete;\n expect(el.selectedItems.every((v) => !v)).to.be.true;\n });\n });\n\n suite('Single selection', () => {\n const selectedItems = Array(rows.length).fill(false);\n\n test('select one item', async () => {\n const el: HyTable = await fixture(\n html`<hy-table .headers=${headers} .rows=${rows} .selectionMode=${SelectionMode.Multiple}></hy-table>`\n );\n expect(el.selectedItems).to.deep.equal(selectedItems);\n const selectFirstItemEvent = new CustomEvent('', {detail: {index: 0}});\n el._handleSelectOne(selectFirstItemEvent);\n await el.updateComplete;\n expect(el.selectedItems[0]).to.be.true;\n const selectSecondItemEvent = new CustomEvent('', {detail: {index: 3}});\n el._handleSelectOne(selectSecondItemEvent);\n await el.updateComplete;\n expect(el.selectedItems[3]).to.be.true;\n expect(el.selectedItems[0]).to.be.false;\n });\n });\n\n test('search items', async () => {\n const el: HyTable = await fixture(html`<hy-table .headers=${headers} .rows=${rows}></hy-table>`);\n const searchEvent = new CustomEvent('', {detail: {value: 'Joh'}});\n el._handleSearch(searchEvent);\n await el.updateComplete;\n expect(el.rowsCopy.length).to.equal(1);\n expect(el.rowsCopy).to.deep.equal([{name: 'John', age: 30}]);\n const initSearchEvent = new CustomEvent('', {detail: {value: ''}});\n el._handleSearch(initSearchEvent);\n await el.updateComplete;\n expect(el.rowsCopy).to.deep.equal(rows);\n });\n\n test('update page', async () => {\n const el: HyTable = await fixture(html`<hy-table .headers=${headers} .rows=${rows}></hy-table>`);\n const updatePageEvent = new CustomEvent('', {detail: {page: 2}});\n el._handleUpdatePage(updatePageEvent);\n await el.updateComplete;\n expect(el.currentPage).to.equal(2);\n expect(el.displayedRows).to.deep.equal([{name: 'Thibaut', age: 44}]);\n });\n test('update item per page', async () => {\n const el: HyTable = await fixture(html`<hy-table .headers=${headers} .rows=${rows}></hy-table>`);\n const updateItemPerPageEvent = new CustomEvent('', {detail: {selectedItemPerPage: el.itemPerPage[1]}});\n expect(el.displayedRows).to.deep.equal([\n {name: 'John', age: 30},\n {name: 'Doe', age: 55},\n {name: 'Jack', age: 20},\n {name: 'Phil', age: 35},\n {name: 'Sebastian', age: 45},\n ]);\n el._handleItemPerPage(updateItemPerPageEvent);\n await el.updateComplete;\n expect(el.selectedItemPerPage).to.equal(el.itemPerPage[1]);\n expect(el.currentPage).to.equal(1);\n expect(el.displayedRows).to.deep.equal(rows);\n });\n});\n"]}
|