@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,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,2 @@
1
+ import '../components/hy-table-pagination';
2
+ //# sourceMappingURL=hy-table-pagination_test.d.ts.map
@@ -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":";;;;;;;;;AAAA,OAAO,EAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAC,MAAM,kBAAkB,CAAC;AACvD,OAAO,mCAAmC,CAAC;AAE3C,OAAO,EAAC,KAAK,EAAC,MAAM,gBAAgB,CAAC;AAErC,KAAK,CAAC,mBAAmB,EAAE,GAAG,EAAE;IAC9B,IAAI,CAAC,iBAAiB,EAAE,GAAS,EAAE;QACjC,MAAM,aAAa,GAAG,GAAG,CAAC;QAC1B,MAAM,WAAW,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QAChC,MAAM,mBAAmB,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QAC3C,MAAM,WAAW,GAAG,CAAC,CAAC;QACtB,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC;QAC1B,MAAM,EAAE,GAAsB,MAAM,OAAO,CACzC,IAAI,CAAA;yBACe,aAAa;uBACf,WAAW;+BACH,mBAAmB;uBAC3B,WAAW;gBAClB,IAAI;8BACU,CACzB,CAAC;QACF,MAAM,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACjD,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC7C,MAAM,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAC7D,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC7C,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/B,MAAM,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACtC,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAChC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC9B,MAAM,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;QACtC,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IACnC,CAAC,CAAA,CAAC,CAAC;IAEH,IAAI,CAAC,8BAA8B,EAAE,GAAS,EAAE;QAC9C,MAAM,aAAa,GAAG,GAAG,CAAC;QAC1B,MAAM,WAAW,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QACjC,MAAM,mBAAmB,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QAC3C,MAAM,WAAW,GAAG,CAAC,CAAC;QACtB,MAAM,EAAE,GAAsB,MAAM,OAAO,CAAC,IAAI,CAAA;uBAC7B,aAAa;qBACf,WAAW;6BACH,mBAAmB;qBAC3B,WAAW;4BACJ,CAAC,CAAC;QAC1B,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAChC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC/B,MAAM,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;QACtC,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QACjC,MAAM,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAEtC,MAAM,MAAM,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,QAAQ,CAAE,CAAC;QACvD,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;QACpB,MAAM,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC1C,MAAM,EAAE,CAAC,cAAc,CAAC;QACxB,MAAM,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC5C,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAChC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC/B,MAAM,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;QACtC,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QACjC,MAAM,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACvC,CAAC,CAAA,CAAC,CAAC;IAEH,IAAI,CAAC,0BAA0B,EAAE,GAAS,EAAE;QAC1C,MAAM,aAAa,GAAG,GAAG,CAAC;QAC1B,MAAM,WAAW,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QACjC,MAAM,mBAAmB,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QAC3C,MAAM,WAAW,GAAG,CAAC,CAAC;QACtB,MAAM,EAAE,GAAsB,MAAM,OAAO,CAAC,IAAI,CAAA;uBAC7B,aAAa;qBACf,WAAW;6BACH,mBAAmB;qBAC3B,WAAW;4BACJ,CAAC,CAAC;QAC1B,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAChC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC/B,MAAM,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;QACtC,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QAEjC,EAAE,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,EAAE,CAAC,cAAc,CAAC;QACxB,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACjC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC/B,MAAM,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QACrC,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IACnC,CAAC,CAAA,CAAC,CAAC;IAEH,IAAI,CAAC,8BAA8B,EAAE,GAAS,EAAE;QAC9C,MAAM,aAAa,GAAG,GAAG,CAAC;QAC1B,MAAM,WAAW,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QACjC,MAAM,mBAAmB,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QAC3C,MAAM,WAAW,GAAG,EAAE,CAAC;QACvB,MAAM,EAAE,GAAsB,MAAM,OAAO,CAAC,IAAI,CAAA;uBAC7B,aAAa;qBACf,WAAW;6BACH,mBAAmB;qBAC3B,WAAW;4BACJ,CAAC,CAAC;QAC1B,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACpC,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACjC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAChC,MAAM,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QACrC,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;QAElC,EAAE,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,EAAE,CAAC,cAAc,CAAC;QACxB,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACjC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC/B,MAAM,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QACrC,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IACnC,CAAC,CAAA,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","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,2 @@
1
+ import '../table.component';
2
+ //# sourceMappingURL=hy-table_test.d.ts.map
@@ -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"]}