@zeedhi/teknisa-components-common 1.117.1 → 3.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/.package.json +43 -0
- package/dist/teknisa-components-common.js +3802 -0
- package/dist/teknisa-components-common.min.js +3802 -0
- package/dist/types/components/index.d.ts +7 -0
- package/{types → dist/types}/components/tek-breadcrumb-header/breadcrumb-header.d.ts +12 -12
- package/{types → dist/types}/components/tek-breadcrumb-header/interfaces.d.ts +6 -6
- package/dist/types/components/tek-datasource/index.d.ts +3 -0
- package/{types → dist/types}/components/tek-datasource/interfaces.d.ts +16 -16
- package/{types/components/tek-datasource/memory-datasource.d.ts → dist/types/components/tek-datasource/tek-memory-datasource.d.ts} +93 -100
- package/{types/components/tek-datasource/rest-datasource.d.ts → dist/types/components/tek-datasource/tek-rest-datasource.d.ts} +95 -103
- package/dist/types/components/tek-grid/columns-searcher.d.ts +5 -0
- package/dist/types/components/tek-grid/dynamic-filter-datasource-factory.d.ts +6 -0
- package/{types → dist/types}/components/tek-grid/filter-helper.d.ts +7 -7
- package/{types → dist/types}/components/tek-grid/grid-filter-button.d.ts +29 -31
- package/dist/types/components/tek-grid/grouped-data-manager.d.ts +82 -0
- package/dist/types/components/tek-grid/grouped-data-selector.d.ts +7 -0
- package/dist/types/components/tek-grid/grouped-view-navigator.d.ts +14 -0
- package/dist/types/components/tek-grid/index.d.ts +18 -0
- package/dist/types/components/tek-grid/interfaces.d.ts +259 -0
- package/dist/types/components/tek-grid/keymap-grouped.d.ts +6 -0
- package/{types → dist/types}/components/tek-grid/layout-options.d.ts +39 -31
- package/{types/components/tek-grid/grid-column.d.ts → dist/types/components/tek-grid/tek-grid-column.d.ts} +42 -45
- package/{types/components/tek-grid/grid-columns-button-controller.d.ts → dist/types/components/tek-grid/tek-grid-columns-button/tek-grid-columns-button-controller.d.ts} +8 -8
- package/{types/components/tek-grid/grid-columns-button.d.ts → dist/types/components/tek-grid/tek-grid-columns-button/tek-grid-columns-button.d.ts} +13 -12
- package/dist/types/components/tek-grid/tek-grid-controller.d.ts +31 -0
- package/dist/types/components/tek-grid/tek-grid-events.d.ts +31 -0
- package/{types/utils/grid-base → dist/types/components/tek-grid/tek-grid-toolbar-provider}/export-options/button-option.d.ts +17 -16
- package/{types/utils/grid-base → dist/types/components/tek-grid/tek-grid-toolbar-provider}/export-options/index.d.ts +3 -3
- package/dist/types/components/tek-grid/tek-grid-toolbar-provider/export-options/interfaces.d.ts +5 -0
- package/{types/utils/grid-base → dist/types/components/tek-grid/tek-grid-toolbar-provider}/export-options/multi-option.d.ts +12 -12
- package/dist/types/components/tek-grid/tek-grid-toolbar-provider/index.d.ts +2 -0
- package/dist/types/components/tek-grid/tek-grid-toolbar-provider/tek-grid-toolbar-provider.d.ts +22 -0
- package/dist/types/components/tek-grid/tek-grid.d.ts +216 -0
- package/{types → dist/types}/components/tek-user-info/TekUserInfoController.d.ts +22 -21
- package/{types → dist/types}/components/tek-user-info/interfaces.d.ts +27 -28
- package/{types → dist/types}/components/tek-user-info/tek-user-info-list.d.ts +32 -31
- package/{types → dist/types}/components/tek-user-info/tek-user-info.d.ts +37 -38
- package/{types → dist/types}/error/delete-rows-error.d.ts +6 -6
- package/dist/types/error/tek-grid-delete-rows-error.d.ts +7 -0
- package/dist/types/error/teknisa-common-error.d.ts +6 -0
- package/dist/types/index.d.ts +2 -0
- package/{types → dist/types}/utils/config/config.d.ts +7 -7
- package/dist/types/utils/index.d.ts +3 -0
- package/dist/types/utils/is-filled-object/is-filled-object.d.ts +2 -0
- package/dist/types/utils/is-nil.d.ts +1 -0
- package/environments.json +14 -0
- package/package.json +26 -18
- package/src/components/index.ts +101 -0
- package/src/components/tek-breadcrumb-header/breadcrumb-header.ts +29 -0
- package/src/components/tek-breadcrumb-header/interfaces.ts +7 -0
- package/src/components/tek-datasource/index.ts +3 -0
- package/src/components/tek-datasource/interfaces.ts +36 -0
- package/src/components/tek-datasource/tek-memory-datasource.ts +314 -0
- package/src/components/tek-datasource/tek-rest-datasource.ts +224 -0
- package/src/components/tek-grid/columns-searcher.ts +22 -0
- package/src/components/tek-grid/dynamic-filter-datasource-factory.ts +20 -0
- package/src/components/tek-grid/filter-helper.ts +20 -0
- package/src/components/tek-grid/grid-filter-button.ts +419 -0
- package/src/components/tek-grid/grouped-data-manager.ts +448 -0
- package/src/components/tek-grid/grouped-data-selector.ts +40 -0
- package/src/components/tek-grid/grouped-view-navigator.ts +84 -0
- package/src/components/tek-grid/index.ts +18 -0
- package/src/components/tek-grid/interfaces.ts +329 -0
- package/src/components/tek-grid/keymap-grouped.ts +20 -0
- package/src/components/tek-grid/layout-options.ts +248 -0
- package/src/components/tek-grid/tek-grid-column.ts +193 -0
- package/src/components/tek-grid/tek-grid-columns-button/tek-grid-columns-button-controller.ts +28 -0
- package/src/components/tek-grid/tek-grid-columns-button/tek-grid-columns-button.ts +38 -0
- package/src/components/tek-grid/tek-grid-controller.ts +140 -0
- package/src/components/tek-grid/tek-grid-events.ts +105 -0
- package/src/components/tek-grid/tek-grid-toolbar-provider/export-options/button-option.ts +26 -0
- package/src/components/tek-grid/tek-grid-toolbar-provider/export-options/index.ts +3 -0
- package/src/components/tek-grid/tek-grid-toolbar-provider/export-options/interfaces.ts +6 -0
- package/src/components/tek-grid/tek-grid-toolbar-provider/export-options/multi-option.ts +85 -0
- package/src/components/tek-grid/tek-grid-toolbar-provider/index.ts +2 -0
- package/src/components/tek-grid/tek-grid-toolbar-provider/tek-grid-toolbar-provider.ts +365 -0
- package/src/components/tek-grid/tek-grid.ts +1118 -0
- package/src/components/tek-user-info/TekUserInfoController.ts +87 -0
- package/src/components/tek-user-info/interfaces.ts +21 -0
- package/src/components/tek-user-info/tek-user-info-list.ts +64 -0
- package/src/components/tek-user-info/tek-user-info.ts +337 -0
- package/src/error/tek-grid-delete-rows-error.ts +15 -0
- package/src/error/teknisa-common-error.ts +8 -0
- package/src/index.ts +2 -0
- package/src/utils/config/config.ts +8 -0
- package/src/utils/index.ts +3 -0
- package/src/utils/is-filled-object/is-filled-object.ts +5 -0
- package/src/utils/is-nil.ts +3 -0
- package/tests/__helpers__/component-event-helper.ts +1 -1
- package/tests/__helpers__/get-child-helper.ts +1 -1
- package/tests/__helpers__/mock-created-helper.ts +1 -1
- package/tests/unit/components/crud/crud-button.spec.ts +1 -1
- package/tests/unit/components/tek-datasource/memory-datasource.spec.ts +1 -11
- package/tests/unit/components/tek-datasource/rest-datasource.spec.ts +5 -7
- package/tests/unit/components/tek-drag-grid/tek-drag-grid.spec.ts +1 -1
- package/tests/unit/components/tek-grid/button-option.spec.ts +49 -0
- package/tests/unit/components/tek-grid/columns-searcher.spec.ts +112 -0
- package/tests/unit/components/tek-grid/dynamic-filter-datasource-factory.spec.ts +90 -0
- package/tests/unit/components/tek-grid/filter-helper.spec.ts +34 -130
- package/tests/unit/components/tek-grid/grid-filter-button.spec.ts +114 -239
- package/tests/unit/components/tek-grid/grouped-data-manager.spec.ts +593 -0
- package/tests/unit/components/tek-grid/grouped-data-selector.spec.ts +136 -0
- package/tests/unit/components/tek-grid/grouped-view-navigator.spec.ts +244 -0
- package/tests/unit/components/tek-grid/keymap-grouped.spec.ts +20 -0
- package/tests/unit/components/tek-grid/{layout_options.spec.ts → layout-options.spec.ts} +70 -30
- package/tests/unit/components/tek-grid/multi-option.spec.ts +139 -0
- package/tests/unit/components/tek-grid/{grid-column.spec.ts → tek-grid-column.spec.ts} +44 -2
- package/tests/unit/components/tek-grid/{grid-columns-button.spec.ts → tek-grid-columns-button.spec.ts} +42 -9
- package/tests/unit/components/tek-grid/tek-grid-controller.spec.ts +253 -0
- package/tests/unit/components/tek-grid/tek-grid-events.spec.ts +186 -0
- package/tests/unit/components/tek-grid/tek-grid-toolbar-provider.spec.ts +34 -0
- package/tests/unit/components/tek-grid/tek-grid.spec.ts +895 -0
- package/tests/unit/components/tek-grid/tek-memory-datasource.spec.ts +482 -0
- package/tests/unit/components/tek-grid/tek-rest-datasource.spec.ts +422 -0
- package/tests/unit/components/tek-user-info/tek-user-info-list.spec.ts +1 -1
- package/tests/unit/components/tek-user-info/tek-user-info.spec.ts +10 -14
- package/tests/unit/components/tree-grid/tree-grid.spec.ts +4 -28
- package/tests/unit/utils/grid-base/export-options/multi-option.spec.ts +2 -2
- package/tests/unit/utils/grid-base/grid-controller.spec.ts +17 -152
- package/tsconfig.build.json +7 -0
- package/coverage/clover.xml +0 -2007
- package/coverage/coverage-final.json +0 -48
- package/coverage/lcov-report/base.css +0 -224
- package/coverage/lcov-report/block-navigation.js +0 -87
- package/coverage/lcov-report/favicon.png +0 -0
- package/coverage/lcov-report/index.html +0 -431
- package/coverage/lcov-report/prettify.css +0 -1
- package/coverage/lcov-report/prettify.js +0 -2
- package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/lcov-report/sorter.js +0 -210
- package/coverage/lcov-report/tests/__helpers__/component-event-helper.ts.html +0 -100
- package/coverage/lcov-report/tests/__helpers__/flush-promises-helper.ts.html +0 -94
- package/coverage/lcov-report/tests/__helpers__/get-child-helper.ts.html +0 -166
- package/coverage/lcov-report/tests/__helpers__/index.html +0 -176
- package/coverage/lcov-report/tests/__helpers__/index.ts.html +0 -94
- package/coverage/lcov-report/tests/__helpers__/mock-created-helper.ts.html +0 -121
- package/coverage/lcov.info +0 -3885
- package/dist/tek-components-common.esm.js +0 -4833
- package/dist/tek-components-common.umd.js +0 -4870
- package/tests/unit/components/tek-grid/grid.spec.ts +0 -3377
- package/tests/unit/utils/grid-base/delete-rows-error.spec.ts +0 -24
- package/types/components/crud/crud-add-button.d.ts +0 -38
- package/types/components/crud/crud-button.d.ts +0 -27
- package/types/components/crud/crud-cancel-button.d.ts +0 -28
- package/types/components/crud/crud-delete-button.d.ts +0 -42
- package/types/components/crud/crud-form.d.ts +0 -46
- package/types/components/crud/crud-save-button.d.ts +0 -24
- package/types/components/crud/interfaces.d.ts +0 -15
- package/types/components/index.d.ts +0 -41
- package/types/components/tek-card-title/card-title.d.ts +0 -14
- package/types/components/tek-card-title/interfaces.d.ts +0 -9
- package/types/components/tek-drag-grid/interfaces.d.ts +0 -7
- package/types/components/tek-drag-grid/tek-drag-grid.d.ts +0 -36
- package/types/components/tek-grid/grid.d.ts +0 -267
- package/types/components/tek-grid/interfaces.d.ts +0 -203
- package/types/components/tek-image/image.d.ts +0 -55
- package/types/components/tek-image/interfaces.d.ts +0 -12
- package/types/components/tek-iterable-carousel/interfaces.d.ts +0 -5
- package/types/components/tek-iterable-carousel/iterable-carousel.d.ts +0 -13
- package/types/components/tek-iterable-component-render/interfaces.d.ts +0 -3
- package/types/components/tek-iterable-component-render/iterable-component-render.d.ts +0 -10
- package/types/components/tek-loading/interfaces.d.ts +0 -6
- package/types/components/tek-loading/loading.d.ts +0 -24
- package/types/components/tek-notifications/interfaces.d.ts +0 -22
- package/types/components/tek-notifications/notifications.d.ts +0 -35
- package/types/components/tek-product-card/interfaces.d.ts +0 -19
- package/types/components/tek-product-card/product-card.d.ts +0 -66
- package/types/components/tek-tree-grid/interfaces.d.ts +0 -30
- package/types/components/tek-tree-grid/tree-grid.d.ts +0 -102
- package/types/error/incomplete-groups-error.d.ts +0 -8
- package/types/index.d.ts +0 -2
- package/types/utils/extract-properties.d.ts +0 -7
- package/types/utils/grid-base/export-options/interfaces.d.ts +0 -5
- package/types/utils/grid-base/grid-base.d.ts +0 -59
- package/types/utils/grid-base/grid-controller.d.ts +0 -27
- package/types/utils/index.d.ts +0 -6
- package/types/utils/report-filter/report-filter.d.ts +0 -12
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { Grid, Tag } from '@zeedhi/common';
|
|
2
|
-
import { Config, Http } from '@zeedhi/core';
|
|
2
|
+
import { Config, Http, Loader, SimpleControllerBuilder } from '@zeedhi/core';
|
|
3
3
|
import {
|
|
4
4
|
ITekConfig,
|
|
5
5
|
ITekGridLayoutInfo,
|
|
6
6
|
TekGrid,
|
|
7
7
|
TekGridLayoutOptions,
|
|
8
|
+
ITekGridProps,
|
|
8
9
|
} from '../../../../src';
|
|
10
|
+
import { flushPromises } from '../../__helpers__';
|
|
9
11
|
|
|
10
12
|
let savedLayouts: string = '';
|
|
11
13
|
const testLayouts: ITekGridLayoutInfo = {
|
|
@@ -37,7 +39,42 @@ const testLayouts: ITekGridLayoutInfo = {
|
|
|
37
39
|
},
|
|
38
40
|
};
|
|
39
41
|
|
|
42
|
+
const setupInstance = (props: Partial<ITekGridProps> = {}) => {
|
|
43
|
+
const instance = new TekGrid({
|
|
44
|
+
name: 'Grid',
|
|
45
|
+
component: 'TekGrid',
|
|
46
|
+
columns: [
|
|
47
|
+
{ name: 'first' },
|
|
48
|
+
{ name: 'second' },
|
|
49
|
+
{ name: 'third' },
|
|
50
|
+
],
|
|
51
|
+
datasource: {
|
|
52
|
+
limit: 2,
|
|
53
|
+
page: 1,
|
|
54
|
+
data: [
|
|
55
|
+
{ id: 1 },
|
|
56
|
+
{ id: 2 },
|
|
57
|
+
{ id: 3 },
|
|
58
|
+
{ id: 4 },
|
|
59
|
+
{ id: 5 },
|
|
60
|
+
{ id: 6 },
|
|
61
|
+
{ id: 7 },
|
|
62
|
+
],
|
|
63
|
+
},
|
|
64
|
+
...props,
|
|
65
|
+
});
|
|
66
|
+
const elem = document.createElement('DIV');
|
|
67
|
+
instance.onCreated();
|
|
68
|
+
instance.onMounted(elem);
|
|
69
|
+
|
|
70
|
+
return instance;
|
|
71
|
+
};
|
|
72
|
+
|
|
40
73
|
describe('LayoutOptions', () => {
|
|
74
|
+
beforeAll(() => {
|
|
75
|
+
Loader.setBuilder(new SimpleControllerBuilder());
|
|
76
|
+
});
|
|
77
|
+
|
|
41
78
|
describe('constructor()', () => {
|
|
42
79
|
it('should create layout options object', () => {
|
|
43
80
|
const instance = new TekGridLayoutOptions({ name: 'layout', component: 'TekGridLayoutOptions' });
|
|
@@ -56,7 +93,7 @@ describe('LayoutOptions', () => {
|
|
|
56
93
|
component: 'ZdTag',
|
|
57
94
|
tag: 'span',
|
|
58
95
|
});
|
|
59
|
-
const grid =
|
|
96
|
+
const grid = setupInstance({
|
|
60
97
|
name: 'grid',
|
|
61
98
|
component: 'TekGrid',
|
|
62
99
|
columns: [
|
|
@@ -103,9 +140,10 @@ describe('LayoutOptions', () => {
|
|
|
103
140
|
maxWidth: undefined,
|
|
104
141
|
aggregation: undefined,
|
|
105
142
|
align: 'left',
|
|
106
|
-
groupOpened:
|
|
143
|
+
groupOpened: false,
|
|
107
144
|
label: '',
|
|
108
145
|
filterHelperValue: [],
|
|
146
|
+
width: undefined,
|
|
109
147
|
},
|
|
110
148
|
{
|
|
111
149
|
name: 'name',
|
|
@@ -116,9 +154,10 @@ describe('LayoutOptions', () => {
|
|
|
116
154
|
maxWidth: undefined,
|
|
117
155
|
aggregation: undefined,
|
|
118
156
|
align: 'left',
|
|
119
|
-
groupOpened:
|
|
157
|
+
groupOpened: false,
|
|
120
158
|
label: '',
|
|
121
159
|
filterHelperValue: [],
|
|
160
|
+
width: undefined,
|
|
122
161
|
},
|
|
123
162
|
{
|
|
124
163
|
name: 'salary',
|
|
@@ -129,9 +168,10 @@ describe('LayoutOptions', () => {
|
|
|
129
168
|
maxWidth: undefined,
|
|
130
169
|
aggregation: undefined,
|
|
131
170
|
align: 'left',
|
|
132
|
-
groupOpened:
|
|
171
|
+
groupOpened: false,
|
|
133
172
|
label: '',
|
|
134
173
|
filterHelperValue: [],
|
|
174
|
+
width: undefined,
|
|
135
175
|
},
|
|
136
176
|
{
|
|
137
177
|
name: 'date1',
|
|
@@ -142,9 +182,10 @@ describe('LayoutOptions', () => {
|
|
|
142
182
|
maxWidth: undefined,
|
|
143
183
|
aggregation: undefined,
|
|
144
184
|
align: 'left',
|
|
145
|
-
groupOpened:
|
|
185
|
+
groupOpened: false,
|
|
146
186
|
label: '',
|
|
147
187
|
filterHelperValue: 'TODAY',
|
|
188
|
+
width: undefined
|
|
148
189
|
},
|
|
149
190
|
{
|
|
150
191
|
name: 'date2',
|
|
@@ -155,9 +196,10 @@ describe('LayoutOptions', () => {
|
|
|
155
196
|
maxWidth: undefined,
|
|
156
197
|
aggregation: undefined,
|
|
157
198
|
align: 'left',
|
|
158
|
-
groupOpened:
|
|
199
|
+
groupOpened: false,
|
|
159
200
|
label: '',
|
|
160
201
|
filterHelperValue: ['TODAY', 'TOMORROW'],
|
|
202
|
+
width: undefined,
|
|
161
203
|
},
|
|
162
204
|
]);
|
|
163
205
|
});
|
|
@@ -172,6 +214,7 @@ describe('LayoutOptions', () => {
|
|
|
172
214
|
{ name: 'salary' },
|
|
173
215
|
],
|
|
174
216
|
});
|
|
217
|
+
grid.onCreated();
|
|
175
218
|
const instance = new TekGridLayoutOptions({ name: 'layout', component: 'TekGridLayoutOptions' });
|
|
176
219
|
instance.parent = grid;
|
|
177
220
|
|
|
@@ -258,7 +301,7 @@ describe('LayoutOptions', () => {
|
|
|
258
301
|
component: 'ZdTag',
|
|
259
302
|
tag: 'span',
|
|
260
303
|
});
|
|
261
|
-
const grid =
|
|
304
|
+
const grid = setupInstance({
|
|
262
305
|
name: 'grid',
|
|
263
306
|
component: 'TekGrid',
|
|
264
307
|
columns: [
|
|
@@ -287,7 +330,7 @@ describe('LayoutOptions', () => {
|
|
|
287
330
|
component: 'ZdTag',
|
|
288
331
|
tag: 'span',
|
|
289
332
|
});
|
|
290
|
-
const grid =
|
|
333
|
+
const grid = setupInstance({
|
|
291
334
|
name: 'grid',
|
|
292
335
|
component: 'TekGrid',
|
|
293
336
|
columns: [
|
|
@@ -354,7 +397,7 @@ describe('LayoutOptions', () => {
|
|
|
354
397
|
component: 'ZdTag',
|
|
355
398
|
tag: 'span',
|
|
356
399
|
});
|
|
357
|
-
const grid =
|
|
400
|
+
const grid = setupInstance({
|
|
358
401
|
name: 'grid',
|
|
359
402
|
component: 'TekGrid',
|
|
360
403
|
columns: [
|
|
@@ -412,7 +455,7 @@ describe('LayoutOptions', () => {
|
|
|
412
455
|
component: 'ZdTag',
|
|
413
456
|
tag: 'span',
|
|
414
457
|
});
|
|
415
|
-
const grid =
|
|
458
|
+
const grid = setupInstance({
|
|
416
459
|
name: 'grid',
|
|
417
460
|
component: 'TekGrid',
|
|
418
461
|
columns: [
|
|
@@ -447,7 +490,7 @@ describe('LayoutOptions', () => {
|
|
|
447
490
|
component: 'ZdTag',
|
|
448
491
|
tag: 'span',
|
|
449
492
|
});
|
|
450
|
-
const grid =
|
|
493
|
+
const grid = setupInstance({
|
|
451
494
|
name: 'grid',
|
|
452
495
|
component: 'TekGrid',
|
|
453
496
|
columns: [
|
|
@@ -476,7 +519,7 @@ describe('LayoutOptions', () => {
|
|
|
476
519
|
component: 'ZdTag',
|
|
477
520
|
tag: 'span',
|
|
478
521
|
});
|
|
479
|
-
const grid =
|
|
522
|
+
const grid = setupInstance({
|
|
480
523
|
name: 'grid',
|
|
481
524
|
component: 'TekGrid',
|
|
482
525
|
columns: [
|
|
@@ -508,7 +551,7 @@ describe('LayoutOptions', () => {
|
|
|
508
551
|
component: 'ZdTag',
|
|
509
552
|
tag: 'span',
|
|
510
553
|
});
|
|
511
|
-
const grid =
|
|
554
|
+
const grid = setupInstance({
|
|
512
555
|
name: 'grid',
|
|
513
556
|
component: 'TekGrid',
|
|
514
557
|
columns: [
|
|
@@ -537,7 +580,7 @@ describe('LayoutOptions', () => {
|
|
|
537
580
|
component: 'ZdTag',
|
|
538
581
|
tag: 'span',
|
|
539
582
|
});
|
|
540
|
-
const grid =
|
|
583
|
+
const grid = setupInstance({
|
|
541
584
|
name: 'grid',
|
|
542
585
|
component: 'TekGrid',
|
|
543
586
|
columns: [
|
|
@@ -567,7 +610,7 @@ describe('LayoutOptions', () => {
|
|
|
567
610
|
component: 'ZdTag',
|
|
568
611
|
tag: 'span',
|
|
569
612
|
});
|
|
570
|
-
const grid =
|
|
613
|
+
const grid = setupInstance({
|
|
571
614
|
name: 'grid',
|
|
572
615
|
component: 'TekGrid',
|
|
573
616
|
columns: [
|
|
@@ -662,7 +705,7 @@ describe('LayoutOptions', () => {
|
|
|
662
705
|
component: 'ZdTag',
|
|
663
706
|
tag: 'span',
|
|
664
707
|
});
|
|
665
|
-
const grid =
|
|
708
|
+
const grid = setupInstance({
|
|
666
709
|
name: 'grid',
|
|
667
710
|
component: 'TekGrid',
|
|
668
711
|
columns: [
|
|
@@ -699,7 +742,7 @@ describe('LayoutOptions', () => {
|
|
|
699
742
|
component: 'ZdTag',
|
|
700
743
|
tag: 'span',
|
|
701
744
|
});
|
|
702
|
-
const grid =
|
|
745
|
+
const grid = setupInstance({
|
|
703
746
|
name: 'grid',
|
|
704
747
|
component: 'TekGrid',
|
|
705
748
|
columns: [
|
|
@@ -755,7 +798,7 @@ describe('LayoutOptions', () => {
|
|
|
755
798
|
component: 'ZdTag',
|
|
756
799
|
tag: 'span',
|
|
757
800
|
});
|
|
758
|
-
const grid =
|
|
801
|
+
const grid = setupInstance({
|
|
759
802
|
name: 'grid',
|
|
760
803
|
component: 'TekGrid',
|
|
761
804
|
columns: [
|
|
@@ -796,7 +839,7 @@ describe('LayoutOptions', () => {
|
|
|
796
839
|
component: 'ZdTag',
|
|
797
840
|
tag: 'span',
|
|
798
841
|
});
|
|
799
|
-
const grid =
|
|
842
|
+
const grid = setupInstance({
|
|
800
843
|
name: 'grid',
|
|
801
844
|
component: 'TekGrid',
|
|
802
845
|
columns: [
|
|
@@ -806,7 +849,6 @@ describe('LayoutOptions', () => {
|
|
|
806
849
|
],
|
|
807
850
|
});
|
|
808
851
|
const instance = new TekGridLayoutOptions({ name: 'layout', component: 'TekGridLayoutOptions' });
|
|
809
|
-
const flushPromises = () => new Promise(setImmediate);
|
|
810
852
|
instance.parent = tag;
|
|
811
853
|
tag.parent = grid;
|
|
812
854
|
|
|
@@ -832,7 +874,7 @@ describe('LayoutOptions', () => {
|
|
|
832
874
|
await grid.onMounted({} as HTMLElement);
|
|
833
875
|
|
|
834
876
|
await flushPromises();
|
|
835
|
-
expect(spy).
|
|
877
|
+
expect(spy).toHaveBeenCalled();
|
|
836
878
|
expect(instance.layouts).toEqual({
|
|
837
879
|
'layout-test': {
|
|
838
880
|
name: 'layout-test',
|
|
@@ -856,7 +898,7 @@ describe('LayoutOptions', () => {
|
|
|
856
898
|
component: 'ZdTag',
|
|
857
899
|
tag: 'span',
|
|
858
900
|
});
|
|
859
|
-
const grid =
|
|
901
|
+
const grid = setupInstance({
|
|
860
902
|
name: 'grid',
|
|
861
903
|
component: 'TekGrid',
|
|
862
904
|
columns: [
|
|
@@ -866,7 +908,6 @@ describe('LayoutOptions', () => {
|
|
|
866
908
|
],
|
|
867
909
|
});
|
|
868
910
|
const instance = new TekGridLayoutOptions({ name: 'layout', component: 'TekGridLayoutOptions' });
|
|
869
|
-
const flushPromises = () => new Promise(setImmediate);
|
|
870
911
|
instance.parent = tag;
|
|
871
912
|
tag.parent = grid;
|
|
872
913
|
|
|
@@ -892,7 +933,7 @@ describe('LayoutOptions', () => {
|
|
|
892
933
|
await grid.onMounted({} as HTMLElement);
|
|
893
934
|
|
|
894
935
|
await flushPromises();
|
|
895
|
-
expect(spy).
|
|
936
|
+
expect(spy).toHaveBeenCalled();
|
|
896
937
|
expect(instance.layouts).toEqual({
|
|
897
938
|
'layout-test': {
|
|
898
939
|
name: 'layout-test',
|
|
@@ -916,7 +957,7 @@ describe('LayoutOptions', () => {
|
|
|
916
957
|
component: 'ZdTag',
|
|
917
958
|
tag: 'span',
|
|
918
959
|
});
|
|
919
|
-
const grid =
|
|
960
|
+
const grid = setupInstance({
|
|
920
961
|
name: 'grid',
|
|
921
962
|
component: 'TekGrid',
|
|
922
963
|
columns: [
|
|
@@ -926,17 +967,16 @@ describe('LayoutOptions', () => {
|
|
|
926
967
|
],
|
|
927
968
|
});
|
|
928
969
|
const instance = new TekGridLayoutOptions({ name: 'layout', component: 'TekGridLayoutOptions' });
|
|
929
|
-
const flushPromises = () => new Promise(setImmediate);
|
|
930
970
|
instance.parent = tag;
|
|
931
971
|
tag.parent = grid;
|
|
932
972
|
|
|
933
973
|
const spy = jest.spyOn(Http, 'get').mockImplementation(() => Promise.resolve({ data: { data: '' } }));
|
|
934
974
|
|
|
935
975
|
await instance.onMounted({} as HTMLElement);
|
|
936
|
-
|
|
976
|
+
grid.onMounted({} as HTMLElement);
|
|
937
977
|
|
|
938
978
|
await flushPromises();
|
|
939
|
-
expect(spy).
|
|
979
|
+
expect(spy).toHaveBeenCalled();
|
|
940
980
|
expect(instance.layouts).toEqual({});
|
|
941
981
|
spy.mockReset();
|
|
942
982
|
(Config as ITekConfig).loadGridLayoutsEndPoint = '';
|
|
@@ -949,7 +989,7 @@ describe('LayoutOptions', () => {
|
|
|
949
989
|
component: 'ZdTag',
|
|
950
990
|
tag: 'span',
|
|
951
991
|
});
|
|
952
|
-
const grid =
|
|
992
|
+
const grid = setupInstance({
|
|
953
993
|
name: 'grid',
|
|
954
994
|
component: 'TekGrid',
|
|
955
995
|
columns: [
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import { Button, IText, Text } from '@zeedhi/common';
|
|
2
|
+
import { ITekGridExportConfig, TekGrid, MultiOption } from '../../../../src';
|
|
3
|
+
import { Loader, SimpleControllerBuilder } from '@zeedhi/core';
|
|
4
|
+
|
|
5
|
+
describe('MultiOption', () => {
|
|
6
|
+
beforeAll(() => {
|
|
7
|
+
Loader.setBuilder(new SimpleControllerBuilder());
|
|
8
|
+
});
|
|
9
|
+
|
|
10
|
+
describe('buildComponent()', () => {
|
|
11
|
+
it('when called, should build a row with multiple buttons', () => {
|
|
12
|
+
const grid = new TekGrid({ name: 'Grid', component: 'TekGrid' });
|
|
13
|
+
const config: ITekGridExportConfig = {
|
|
14
|
+
type: 'pdf',
|
|
15
|
+
label: 'Exportar PDF',
|
|
16
|
+
multiOption: [
|
|
17
|
+
{ label: 'portrait', iconName: 'icon-portrait' },
|
|
18
|
+
{ label: 'landscape', iconName: 'icon-landscape' },
|
|
19
|
+
],
|
|
20
|
+
};
|
|
21
|
+
const option = new MultiOption(config);
|
|
22
|
+
|
|
23
|
+
const component = option.buildComponent(grid);
|
|
24
|
+
|
|
25
|
+
expect(component).toEqual({
|
|
26
|
+
name: 'Grid_export_pdf_row',
|
|
27
|
+
component: 'ZdRow',
|
|
28
|
+
cssClass: 'zd-display-flex zd-ma-0 zd-py-0 zd-gap-x-1 tek-grid-export-multioption-row',
|
|
29
|
+
children: [
|
|
30
|
+
expect.objectContaining({
|
|
31
|
+
name: 'Grid_export_pdf_text',
|
|
32
|
+
component: 'ZdText',
|
|
33
|
+
text: 'Exportar PDF',
|
|
34
|
+
cssClass: 'zd-display-flex zd-align-center zd-flex-grow-1 tek-grid-export-multioption-text',
|
|
35
|
+
}),
|
|
36
|
+
{
|
|
37
|
+
name: 'Grid_export_pdf_tooltip_portrait',
|
|
38
|
+
component: 'ZdTooltip',
|
|
39
|
+
bottom: true,
|
|
40
|
+
label: 'portrait',
|
|
41
|
+
children: [
|
|
42
|
+
expect.objectContaining({
|
|
43
|
+
name: 'Grid_export_pdf_button_portrait',
|
|
44
|
+
component: 'ZdButton',
|
|
45
|
+
icon: true,
|
|
46
|
+
iconName: 'icon-portrait',
|
|
47
|
+
}),
|
|
48
|
+
],
|
|
49
|
+
},
|
|
50
|
+
expect.objectContaining({
|
|
51
|
+
name: 'Grid_export_pdf_divider_portrait',
|
|
52
|
+
component: 'ZdDivider',
|
|
53
|
+
cssClass: 'zd-my-1',
|
|
54
|
+
vertical: true,
|
|
55
|
+
}),
|
|
56
|
+
{
|
|
57
|
+
name: 'Grid_export_pdf_tooltip_landscape',
|
|
58
|
+
component: 'ZdTooltip',
|
|
59
|
+
bottom: true,
|
|
60
|
+
label: 'landscape',
|
|
61
|
+
children: [
|
|
62
|
+
expect.objectContaining({
|
|
63
|
+
name: 'Grid_export_pdf_button_landscape',
|
|
64
|
+
component: 'ZdButton',
|
|
65
|
+
icon: true,
|
|
66
|
+
iconName: 'icon-landscape',
|
|
67
|
+
}),
|
|
68
|
+
],
|
|
69
|
+
},
|
|
70
|
+
],
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
it('the generated text component should call stopPropagation on click', () => {
|
|
75
|
+
const grid = new TekGrid({ name: 'Grid', component: 'TekGrid' });
|
|
76
|
+
const config: ITekGridExportConfig = {
|
|
77
|
+
type: 'pdf',
|
|
78
|
+
label: 'Exportar PDF',
|
|
79
|
+
multiOption: [
|
|
80
|
+
{ label: 'portrait', iconName: 'icon-portrait' },
|
|
81
|
+
{ label: 'landscape', iconName: 'icon-landscape' },
|
|
82
|
+
],
|
|
83
|
+
};
|
|
84
|
+
const option = new MultiOption(config);
|
|
85
|
+
|
|
86
|
+
const component = option.buildComponent(grid);
|
|
87
|
+
|
|
88
|
+
const instance = new Text(component.children![0] as IText);
|
|
89
|
+
const spy = jest.fn();
|
|
90
|
+
const event = { stopPropagation: spy } as unknown as Event;
|
|
91
|
+
instance.click(event);
|
|
92
|
+
|
|
93
|
+
expect(spy).toHaveBeenCalled();
|
|
94
|
+
});
|
|
95
|
+
|
|
96
|
+
it('the generated text component should not throw if event is undefined', () => {
|
|
97
|
+
const grid = new TekGrid({ name: 'Grid', component: 'TekGrid' });
|
|
98
|
+
const config: ITekGridExportConfig = {
|
|
99
|
+
type: 'pdf',
|
|
100
|
+
label: 'Exportar PDF',
|
|
101
|
+
multiOption: [
|
|
102
|
+
{ label: 'portrait', iconName: 'icon-portrait' },
|
|
103
|
+
{ label: 'landscape', iconName: 'icon-landscape' },
|
|
104
|
+
],
|
|
105
|
+
};
|
|
106
|
+
const option = new MultiOption(config);
|
|
107
|
+
|
|
108
|
+
const component = option.buildComponent(grid);
|
|
109
|
+
|
|
110
|
+
const instance = new Text(component.children![0] as IText);
|
|
111
|
+
|
|
112
|
+
expect(() => instance.callEvent('click', { event: undefined })).not.toThrow();
|
|
113
|
+
});
|
|
114
|
+
|
|
115
|
+
it('the generated button components should call grid.getReport on click', () => {
|
|
116
|
+
const grid = new TekGrid({ name: 'Grid', component: 'TekGrid' });
|
|
117
|
+
const spy = jest.fn();
|
|
118
|
+
grid.getReport = spy;
|
|
119
|
+
const config: ITekGridExportConfig = {
|
|
120
|
+
type: 'pdf',
|
|
121
|
+
multiOption: [
|
|
122
|
+
{ label: 'portrait', iconName: 'icon-portrait' },
|
|
123
|
+
{ label: 'landscape', iconName: 'icon-landscape' },
|
|
124
|
+
],
|
|
125
|
+
};
|
|
126
|
+
const option = new MultiOption(config);
|
|
127
|
+
|
|
128
|
+
const component = option.buildComponent(grid);
|
|
129
|
+
|
|
130
|
+
const instance = new Button(component.children![1].children![0]);
|
|
131
|
+
instance.click();
|
|
132
|
+
|
|
133
|
+
const instance2 = new Button(component.children![3].children![0]);
|
|
134
|
+
instance2.click();
|
|
135
|
+
|
|
136
|
+
expect(spy).toHaveBeenCalledTimes(2);
|
|
137
|
+
});
|
|
138
|
+
});
|
|
139
|
+
});
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Http } from '@zeedhi/core';
|
|
1
|
+
import { Http, Loader, SimpleControllerBuilder } from '@zeedhi/core';
|
|
2
2
|
import {
|
|
3
3
|
IFilterOperation,
|
|
4
4
|
IFilterPropsComponent,
|
|
@@ -7,14 +7,18 @@ import {
|
|
|
7
7
|
TekGrid,
|
|
8
8
|
TekGridColumn,
|
|
9
9
|
} from '../../../../src';
|
|
10
|
+
import { flushPromises } from '../../__helpers__';
|
|
10
11
|
|
|
11
12
|
jest.mock('lodash.debounce', () => jest.fn((fn) => fn));
|
|
12
|
-
const flushPromises = () => new Promise(setImmediate);
|
|
13
13
|
|
|
14
14
|
describe('TekGridColumn', () => {
|
|
15
15
|
let baseProps: ITekGridColumn;
|
|
16
16
|
let httpSpy: jest.SpyInstance;
|
|
17
17
|
|
|
18
|
+
beforeAll(() => {
|
|
19
|
+
Loader.setBuilder(new SimpleControllerBuilder());
|
|
20
|
+
});
|
|
21
|
+
|
|
18
22
|
beforeEach(() => {
|
|
19
23
|
httpSpy = jest.spyOn(Http, 'get').mockImplementation((url: string) => {
|
|
20
24
|
if (url === '/zeedhi') {
|
|
@@ -120,6 +124,7 @@ describe('TekGridColumn', () => {
|
|
|
120
124
|
it('should get lookup data', async () => {
|
|
121
125
|
const grid = new TekGrid({ name: 'grid', component: 'TekGrid' });
|
|
122
126
|
const column = new TekGridColumn(baseProps, grid);
|
|
127
|
+
column.initialize();
|
|
123
128
|
|
|
124
129
|
let data = column.getLookupData('name', 'employee 1');
|
|
125
130
|
expect(data).toEqual({});
|
|
@@ -153,6 +158,7 @@ describe('TekGridColumn', () => {
|
|
|
153
158
|
const grid = new TekGrid({ name: 'grid', component: 'TekGrid' });
|
|
154
159
|
baseProps.storeData = false;
|
|
155
160
|
const column = new TekGridColumn(baseProps, grid);
|
|
161
|
+
column.initialize();
|
|
156
162
|
|
|
157
163
|
let data = column.getLookupData('name', 'employee 1');
|
|
158
164
|
expect(data).toEqual({});
|
|
@@ -267,4 +273,40 @@ describe('TekGridColumn', () => {
|
|
|
267
273
|
await expect(column.memorySearch('')).rejects.toThrow();
|
|
268
274
|
});
|
|
269
275
|
});
|
|
276
|
+
|
|
277
|
+
describe('change grouping', () => {
|
|
278
|
+
beforeEach(() => {
|
|
279
|
+
jest.useFakeTimers();
|
|
280
|
+
});
|
|
281
|
+
|
|
282
|
+
it('when grouped property changes, should call grid updateGrouping', () => {
|
|
283
|
+
const grid = { updateGrouping: jest.fn() } as any as TekGrid;
|
|
284
|
+
const column = new TekGridColumn(baseProps, grid);
|
|
285
|
+
column.grouped = true;
|
|
286
|
+
|
|
287
|
+
jest.runAllTimers();
|
|
288
|
+
|
|
289
|
+
expect(grid.updateGrouping).toHaveBeenCalled();
|
|
290
|
+
});
|
|
291
|
+
|
|
292
|
+
it('when aggregation property changes, should call grid updateGrouping', () => {
|
|
293
|
+
const grid = { updateGrouping: jest.fn() } as any as TekGrid;
|
|
294
|
+
const column = new TekGridColumn(baseProps, grid);
|
|
295
|
+
column.aggregation = 'COUNT';
|
|
296
|
+
|
|
297
|
+
jest.runAllTimers();
|
|
298
|
+
|
|
299
|
+
expect(grid.updateGrouping).toHaveBeenCalled();
|
|
300
|
+
});
|
|
301
|
+
|
|
302
|
+
it('when groupOpened property changes, should call grid updateGrouping', () => {
|
|
303
|
+
const grid = { updateGrouping: jest.fn() } as any as TekGrid;
|
|
304
|
+
const column = new TekGridColumn(baseProps, grid);
|
|
305
|
+
column.groupOpened = true;
|
|
306
|
+
|
|
307
|
+
jest.runAllTimers();
|
|
308
|
+
|
|
309
|
+
expect(grid.updateGrouping).toHaveBeenCalled();
|
|
310
|
+
});
|
|
311
|
+
});
|
|
270
312
|
});
|
|
@@ -1,9 +1,42 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import { I18n, Loader, SimpleControllerBuilder } from '@zeedhi/core';
|
|
2
|
+
import { TekGrid, TekGridColumnsButton, TekGridColumnsButtonController, Grid, Checkbox, ITekGridProps } from '../../../../src';
|
|
3
|
+
|
|
4
|
+
const setupInstance = (props: Partial<ITekGridProps> = {}) => {
|
|
5
|
+
const instance = new TekGrid({
|
|
6
|
+
name: 'Grid',
|
|
7
|
+
component: 'TekGrid',
|
|
8
|
+
columns: [
|
|
9
|
+
{ name: 'first' },
|
|
10
|
+
{ name: 'second' },
|
|
11
|
+
{ name: 'third' },
|
|
12
|
+
],
|
|
13
|
+
datasource: {
|
|
14
|
+
limit: 2,
|
|
15
|
+
page: 1,
|
|
16
|
+
data: [
|
|
17
|
+
{ id: 1 },
|
|
18
|
+
{ id: 2 },
|
|
19
|
+
{ id: 3 },
|
|
20
|
+
{ id: 4 },
|
|
21
|
+
{ id: 5 },
|
|
22
|
+
{ id: 6 },
|
|
23
|
+
{ id: 7 },
|
|
24
|
+
],
|
|
25
|
+
},
|
|
26
|
+
...props,
|
|
27
|
+
});
|
|
28
|
+
const elem = document.createElement('DIV');
|
|
29
|
+
instance.onCreated();
|
|
30
|
+
instance.onMounted(elem);
|
|
31
|
+
|
|
32
|
+
return instance;
|
|
33
|
+
};
|
|
5
34
|
|
|
6
35
|
describe('TekGridColumnsButton', () => {
|
|
36
|
+
beforeAll(() => {
|
|
37
|
+
Loader.setBuilder(new SimpleControllerBuilder());
|
|
38
|
+
});
|
|
39
|
+
|
|
7
40
|
describe('getAggregationSelectData', () => {
|
|
8
41
|
it('should get aggregation data', () => {
|
|
9
42
|
let I18Called = false;
|
|
@@ -12,7 +45,7 @@ describe('TekGridColumnsButton', () => {
|
|
|
12
45
|
if (Array.isArray(code)) return code[0];
|
|
13
46
|
return code;
|
|
14
47
|
});
|
|
15
|
-
const grid =
|
|
48
|
+
const grid = setupInstance({
|
|
16
49
|
name: 'grid-1',
|
|
17
50
|
component: 'TekGrid',
|
|
18
51
|
});
|
|
@@ -45,7 +78,7 @@ describe('TekGridColumnsButton', () => {
|
|
|
45
78
|
component: 'ZdCheckbox',
|
|
46
79
|
value: false,
|
|
47
80
|
});
|
|
48
|
-
const iterable = new
|
|
81
|
+
const iterable = new Grid({
|
|
49
82
|
name: 'iterable',
|
|
50
83
|
component: 'ZdIterable',
|
|
51
84
|
columns: [
|
|
@@ -55,7 +88,7 @@ describe('TekGridColumnsButton', () => {
|
|
|
55
88
|
},
|
|
56
89
|
],
|
|
57
90
|
});
|
|
58
|
-
const grid =
|
|
91
|
+
const grid = setupInstance({
|
|
59
92
|
name: 'grid-1',
|
|
60
93
|
component: 'TekGrid',
|
|
61
94
|
parent: iterable,
|
|
@@ -78,7 +111,7 @@ describe('TekGridColumnsButton', () => {
|
|
|
78
111
|
});
|
|
79
112
|
|
|
80
113
|
it('changeGroupedColumn', () => {
|
|
81
|
-
const grid =
|
|
114
|
+
const grid = setupInstance({
|
|
82
115
|
name: 'grid-2',
|
|
83
116
|
component: 'TekGrid',
|
|
84
117
|
columns: [
|
|
@@ -130,7 +163,7 @@ describe('TekGridColumnsButton', () => {
|
|
|
130
163
|
});
|
|
131
164
|
|
|
132
165
|
it('changeAggregationColumn', () => {
|
|
133
|
-
const grid =
|
|
166
|
+
const grid = setupInstance({
|
|
134
167
|
name: 'grid-2',
|
|
135
168
|
component: 'TekGrid',
|
|
136
169
|
columns: [
|