@zeedhi/teknisa-components-common 1.44.0 → 1.47.0
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/coverage/clover.xml +551 -577
- package/coverage/coverage-final.json +11 -11
- package/coverage/lcov-report/index.html +14 -14
- package/coverage/lcov.info +1092 -1149
- package/dist/tek-components-common.esm.js +86 -187
- package/dist/tek-components-common.umd.js +84 -185
- package/package.json +2 -2
- package/tests/unit/components/tek-datasource/memory-datasource.spec.ts +24 -0
- package/tests/unit/components/tek-datasource/rest-datasource.spec.ts +28 -1
- package/tests/unit/components/tek-grid/filter-helper.spec.ts +5 -2
- package/tests/unit/components/tek-grid/grid-columns-button.spec.ts +25 -0
- package/tests/unit/components/tek-grid/grid.spec.ts +37 -130
- package/types/components/tek-grid/filter-helper.d.ts +0 -2
- package/types/components/tek-grid/grid-columns-button-controller.d.ts +1 -0
- package/types/components/tek-grid/interfaces.d.ts +3 -6
- package/types/components/tek-loading/interfaces.d.ts +2 -2
- package/types/components/tek-loading/loading.d.ts +2 -2
- package/types/utils/grid-base/grid-base.d.ts +1 -6
|
@@ -4,9 +4,10 @@ import {
|
|
|
4
4
|
Button, Date, Dropdown, Form, IButton, IForm, IModal, Modal, ModalService, Search, Text, TextInput,
|
|
5
5
|
} from '@zeedhi/common';
|
|
6
6
|
import {
|
|
7
|
-
KeyMap, Http, Metadata,
|
|
7
|
+
KeyMap, Http, Metadata, IDictionary, DateHelper,
|
|
8
8
|
} from '@zeedhi/core';
|
|
9
9
|
import {
|
|
10
|
+
IFilterPropsComponent,
|
|
10
11
|
ITekGrid,
|
|
11
12
|
TekGrid, TekGridColumn, TekRestDatasource,
|
|
12
13
|
} from '../../../../src';
|
|
@@ -1756,6 +1757,8 @@ describe('TekGrid', () => {
|
|
|
1756
1757
|
|
|
1757
1758
|
return new Modal(modal);
|
|
1758
1759
|
});
|
|
1760
|
+
const dateHelperSpy = jest.spyOn(DateHelper, 'getLabel').mockImplementation((name: string) => name);
|
|
1761
|
+
|
|
1759
1762
|
instance.onCreated();
|
|
1760
1763
|
const filterTooltip = instance.toolbarSlot[6];
|
|
1761
1764
|
if (filterTooltip && filterTooltip.children && filterTooltip.children.length > 0) {
|
|
@@ -1763,29 +1766,11 @@ describe('TekGrid', () => {
|
|
|
1763
1766
|
const event = new Event('click');
|
|
1764
1767
|
button.click(event, {} as HTMLElement);
|
|
1765
1768
|
expect(formElements[0].name).toBe('grid_filterClick7-filter-AND-CONTAINS-id-0');
|
|
1766
|
-
expect(formElements[1].name).toBe('grid_filterClick7-filter-OR-NOT_EQUALS-date-
|
|
1767
|
-
expect(formElements[
|
|
1768
|
-
expect(formElements[1].children.length).toBe(2);
|
|
1769
|
-
expect(formElements[1].children[0].name).toBe('grid_filterClick7-filter-OR-NOT_EQUALS-date-0');
|
|
1770
|
-
expect(formElements[1].children[0].component).toBe('ZdDate');
|
|
1771
|
-
expect(formElements[1].children[1].name).toBe('grid_filterClick7-filter-OR-NOT_EQUALS-date-0_helperdropdown');
|
|
1772
|
-
expect(formElements[1].children[1].component).toBe('ZdDropdown');
|
|
1773
|
-
expect(formElements[1].children[1].activator.cssClass).toBe('filter-helper-values-button with-label');
|
|
1774
|
-
expect(formElements[1].children[1].children.length).toBe(2);
|
|
1775
|
-
expect(formElements[1].children[1].children[0].component).toBe('ZdText');
|
|
1776
|
-
expect(formElements[1].children[1].children[0].text).toBe('TEKGRID_HELPERVALUE_TODAY');
|
|
1777
|
-
expect(formElements[1].children[1].children[1].component).toBe('ZdText');
|
|
1778
|
-
expect(formElements[1].children[1].children[1].text).toBe('TEKGRID_HELPERVALUE_TOMORROW');
|
|
1779
|
-
expect(formElements[2].name).toBe('grid_filterClick7-filter-OR-NOT_EQUALS-date-1_helperspan');
|
|
1780
|
-
expect(formElements[2].component).toBe('ZdTag');
|
|
1781
|
-
expect(formElements[2].children.length).toBe(2);
|
|
1782
|
-
expect(formElements[2].children[0].name).toBe('grid_filterClick7-filter-OR-NOT_EQUALS-date-1');
|
|
1783
|
-
expect(formElements[2].children[0].component).toBe('ZdDate');
|
|
1784
|
-
expect(formElements[2].children[1].name).toBe('grid_filterClick7-filter-OR-NOT_EQUALS-date-1_helperdropdown');
|
|
1785
|
-
expect(formElements[2].children[1].component).toBe('ZdDropdown');
|
|
1786
|
-
expect(formElements[2].children[1].activator.cssClass).toBe('filter-helper-values-button ');
|
|
1769
|
+
expect(formElements[1].name).toBe('grid_filterClick7-filter-OR-NOT_EQUALS-date-0');
|
|
1770
|
+
expect(formElements[2].name).toBe('grid_filterClick7-filter-OR-NOT_EQUALS-date-1');
|
|
1787
1771
|
}
|
|
1788
1772
|
spy.mockClear();
|
|
1773
|
+
dateHelperSpy.mockClear();
|
|
1789
1774
|
});
|
|
1790
1775
|
|
|
1791
1776
|
it('should apply helper value', () => {
|
|
@@ -1797,11 +1782,11 @@ describe('TekGrid', () => {
|
|
|
1797
1782
|
},
|
|
1798
1783
|
columns: [
|
|
1799
1784
|
{
|
|
1800
|
-
name: '
|
|
1801
|
-
componentProps: { name: '
|
|
1785
|
+
name: 'date1',
|
|
1786
|
+
componentProps: { name: 'date_edit1', component: 'ZdDate' },
|
|
1802
1787
|
filterProps: {
|
|
1803
|
-
name: '
|
|
1804
|
-
label: '
|
|
1788
|
+
name: 'date_edit1',
|
|
1789
|
+
label: 'date1',
|
|
1805
1790
|
operation: 'NOT_EQUALS',
|
|
1806
1791
|
relation: 'OR',
|
|
1807
1792
|
helperOptions: [
|
|
@@ -1810,53 +1795,23 @@ describe('TekGrid', () => {
|
|
|
1810
1795
|
],
|
|
1811
1796
|
},
|
|
1812
1797
|
},
|
|
1813
|
-
],
|
|
1814
|
-
});
|
|
1815
|
-
|
|
1816
|
-
let formElements: any = [];
|
|
1817
|
-
let form: IForm;
|
|
1818
|
-
const spy = jest.spyOn(ModalService, 'create').mockImplementation((modal: IModal) => {
|
|
1819
|
-
if (modal.children && modal.children.length > 1) {
|
|
1820
|
-
form = modal.children[1] as IForm;
|
|
1821
|
-
formElements = form.children;
|
|
1822
|
-
}
|
|
1823
|
-
|
|
1824
|
-
return new Modal(modal);
|
|
1825
|
-
});
|
|
1826
|
-
instance.onCreated();
|
|
1827
|
-
const filterTooltip = instance.toolbarSlot[6];
|
|
1828
|
-
if (filterTooltip && filterTooltip.children && filterTooltip.children.length > 0) {
|
|
1829
|
-
const button = new Button(filterTooltip.children[0]);
|
|
1830
|
-
const event = new Event('click');
|
|
1831
|
-
button.click(event, {} as HTMLElement);
|
|
1832
|
-
const todayHelper = new Text(formElements[0].children[1].children[0]);
|
|
1833
|
-
const dateComp = new Date(formElements[0].children[0]);
|
|
1834
|
-
const spyMetadata = jest.spyOn(Metadata, 'getInstance').mockImplementation(() => dateComp);
|
|
1835
|
-
todayHelper.click(event, {} as HTMLElement);
|
|
1836
|
-
expect(dateComp.value).toBe(dayjs().format(Config.dateFormat));
|
|
1837
|
-
expect(dateComp.hint).toBe('TEKGRID_HELPERVALUE_TODAY');
|
|
1838
|
-
dateComp.change(event, {} as HTMLElement);
|
|
1839
|
-
expect(dateComp.hint).toBe('');
|
|
1840
|
-
spyMetadata.mockClear();
|
|
1841
|
-
}
|
|
1842
|
-
spy.mockClear();
|
|
1843
|
-
});
|
|
1844
|
-
|
|
1845
|
-
it('should apply helper value on filterProps as an array', () => {
|
|
1846
|
-
const instance = new TekGrid({
|
|
1847
|
-
name: 'grid_filterClick8_1',
|
|
1848
|
-
component: 'TekGrid',
|
|
1849
|
-
datasource: {
|
|
1850
|
-
type: 'tek-rest',
|
|
1851
|
-
},
|
|
1852
|
-
columns: [
|
|
1853
1798
|
{
|
|
1854
|
-
name: '
|
|
1855
|
-
componentProps: { name: '
|
|
1799
|
+
name: 'date2',
|
|
1800
|
+
componentProps: { name: 'date_edit2', component: 'ZdDate' },
|
|
1856
1801
|
filterProps: [
|
|
1857
1802
|
{
|
|
1858
|
-
name: '
|
|
1859
|
-
label: '
|
|
1803
|
+
name: 'date_edit21',
|
|
1804
|
+
label: 'date21',
|
|
1805
|
+
operation: 'NOT_EQUALS',
|
|
1806
|
+
relation: 'OR',
|
|
1807
|
+
helperOptions: [
|
|
1808
|
+
'TODAY',
|
|
1809
|
+
'TOMORROW',
|
|
1810
|
+
],
|
|
1811
|
+
},
|
|
1812
|
+
{
|
|
1813
|
+
name: 'date_edit22',
|
|
1814
|
+
label: 'date22',
|
|
1860
1815
|
helperOptions: [
|
|
1861
1816
|
'TODAY',
|
|
1862
1817
|
'TOMORROW',
|
|
@@ -1883,68 +1838,20 @@ describe('TekGrid', () => {
|
|
|
1883
1838
|
const button = new Button(filterTooltip.children[0]);
|
|
1884
1839
|
const event = new Event('click');
|
|
1885
1840
|
button.click(event, {} as HTMLElement);
|
|
1886
|
-
const
|
|
1887
|
-
|
|
1888
|
-
const spyMetadata = jest.spyOn(Metadata, 'getInstance').mockImplementation(() => dateComp);
|
|
1889
|
-
todayHelper.click(event, {} as HTMLElement);
|
|
1890
|
-
expect(dateComp.value).toBe(dayjs().format(Config.dateFormat));
|
|
1891
|
-
expect(dateComp.hint).toBe('TEKGRID_HELPERVALUE_TODAY');
|
|
1841
|
+
const dateComp = new Date(formElements[0]);
|
|
1842
|
+
dateComp.helperValue = 'TODAY';
|
|
1892
1843
|
dateComp.change(event, {} as HTMLElement);
|
|
1893
|
-
expect(
|
|
1894
|
-
spyMetadata.mockClear();
|
|
1895
|
-
}
|
|
1896
|
-
spy.mockClear();
|
|
1897
|
-
});
|
|
1898
|
-
|
|
1899
|
-
it('should apply helper value on filterProps as an array', () => {
|
|
1900
|
-
const instance = new TekGrid({
|
|
1901
|
-
name: 'grid_filterClick8_2',
|
|
1902
|
-
component: 'TekGrid',
|
|
1903
|
-
datasource: {
|
|
1904
|
-
type: 'tek-rest',
|
|
1905
|
-
},
|
|
1906
|
-
columns: [
|
|
1907
|
-
{
|
|
1908
|
-
name: 'date',
|
|
1909
|
-
componentProps: { name: 'date_edit', component: 'ZdDate' },
|
|
1910
|
-
filterProps: {
|
|
1911
|
-
name: 'date_edit',
|
|
1912
|
-
label: 'date',
|
|
1913
|
-
helperOptions: [
|
|
1914
|
-
'TODAY',
|
|
1915
|
-
'TOMORROW',
|
|
1916
|
-
],
|
|
1917
|
-
},
|
|
1918
|
-
},
|
|
1919
|
-
],
|
|
1920
|
-
});
|
|
1844
|
+
expect((instance.columns[0].filterProps as IFilterPropsComponent).helperValue).toBe('TODAY');
|
|
1921
1845
|
|
|
1922
|
-
|
|
1923
|
-
|
|
1924
|
-
|
|
1925
|
-
|
|
1926
|
-
form = modal.children[1] as IForm;
|
|
1927
|
-
formElements = form.children;
|
|
1928
|
-
}
|
|
1846
|
+
const dateComp21 = new Date(formElements[1]);
|
|
1847
|
+
dateComp21.helperValue = 'TODAY';
|
|
1848
|
+
dateComp21.change(event, {} as HTMLElement);
|
|
1849
|
+
expect((instance.columns[1].filterProps as IFilterPropsComponent[])[0].helperValue).toBe('TODAY');
|
|
1929
1850
|
|
|
1930
|
-
|
|
1931
|
-
|
|
1932
|
-
|
|
1933
|
-
|
|
1934
|
-
if (filterTooltip && filterTooltip.children && filterTooltip.children.length > 0) {
|
|
1935
|
-
const button = new Button(filterTooltip.children[0]);
|
|
1936
|
-
const event = new Event('click');
|
|
1937
|
-
button.click(event, {} as HTMLElement);
|
|
1938
|
-
const dateComp = new Date(formElements[0].children[0]);
|
|
1939
|
-
if (form) {
|
|
1940
|
-
const formObj = new Form(form);
|
|
1941
|
-
const spyMetadata = jest.spyOn(Metadata, 'getInstance').mockImplementation(() => formObj);
|
|
1942
|
-
dateComp.onMounted({} as HTMLElement);
|
|
1943
|
-
expect(formObj.value).toEqual({
|
|
1944
|
-
'grid_filterClick8_2-filter-AND-CONTAINS-date-0': undefined,
|
|
1945
|
-
});
|
|
1946
|
-
spyMetadata.mockClear();
|
|
1947
|
-
}
|
|
1851
|
+
const dateComp22 = new Date(formElements[2]);
|
|
1852
|
+
dateComp22.helperValue = 'TODAY';
|
|
1853
|
+
dateComp22.change(event, {} as HTMLElement);
|
|
1854
|
+
expect((instance.columns[1].filterProps as IFilterPropsComponent[])[1].helperValue).toBe('TODAY');
|
|
1948
1855
|
}
|
|
1949
1856
|
spy.mockClear();
|
|
1950
1857
|
});
|
|
@@ -2026,7 +1933,7 @@ describe('TekGrid', () => {
|
|
|
2026
1933
|
'grid_filterClick9-filter-AND-CONTAINS-phone-0': '9',
|
|
2027
1934
|
'grid_filterClick9-filter-OR-IN-date-0': ['2021-11-12', '2021-12-12'],
|
|
2028
1935
|
});
|
|
2029
|
-
expect(dateObject.hint).toBe('
|
|
1936
|
+
expect(dateObject.hint).toBe('TODAY');
|
|
2030
1937
|
spyMetadata.mockClear();
|
|
2031
1938
|
}
|
|
2032
1939
|
}
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import { TekGridColumn } from '..';
|
|
2
2
|
export declare class TekFilterHelper {
|
|
3
|
-
private static values;
|
|
4
|
-
private static formatDate;
|
|
5
3
|
static getLabel(name: string): string;
|
|
6
4
|
static getValue(name: string, column: TekGridColumn): string | string[];
|
|
7
5
|
static register(name: string, label: string, fn: () => Date | [Date, Date]): void;
|
|
@@ -4,4 +4,5 @@ import { TekGridColumn } from './grid-column';
|
|
|
4
4
|
export declare class TekGridColumnsButtonController extends IterableColumnsButtonController {
|
|
5
5
|
changeGroupedColumn(column: TekGridColumn, { component, event, element }: IEventParam<Checkbox>): void;
|
|
6
6
|
changeAggregationColumn(column: TekGridColumn, { component, event, element }: IEventParam<Checkbox>): void;
|
|
7
|
+
showHideTekColumn(column: TekGridColumn, { component, event, element }: IEventParam<Checkbox>): void;
|
|
7
8
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { IComponent, IComponentEvents, IComponentRender, IGridColumnEditable, IGridEditable, IIterableColumnsButton } from '@zeedhi/common';
|
|
2
|
-
import { IDictionary, IEvent, IEventParam } from '@zeedhi/core';
|
|
2
|
+
import { IDictionary, IEvent, IEventParam, IDateHelperValue, IDateHelperValues } from '@zeedhi/core';
|
|
3
3
|
import { IDynamicFilterItem, TekGridLayoutOptions } from '..';
|
|
4
4
|
export interface ITekGridLayoutEventParams extends IEventParam<ITekGrid> {
|
|
5
5
|
layouts: ITekGridLayoutInfo;
|
|
@@ -138,10 +138,7 @@ export interface ITekGridSummary {
|
|
|
138
138
|
min: any;
|
|
139
139
|
max: any;
|
|
140
140
|
}
|
|
141
|
-
export interface ITekFilterHelperValue {
|
|
142
|
-
label: string;
|
|
143
|
-
fn: () => Date | [Date, Date];
|
|
141
|
+
export interface ITekFilterHelperValue extends IDateHelperValue {
|
|
144
142
|
}
|
|
145
|
-
export interface ITekFilterHelperValues {
|
|
146
|
-
[key: string]: ITekFilterHelperValue;
|
|
143
|
+
export interface ITekFilterHelperValues extends IDateHelperValues {
|
|
147
144
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export interface ILoading extends
|
|
1
|
+
import { ILoading as IZdLoading } from '@zeedhi/common';
|
|
2
|
+
export interface ILoading extends IZdLoading {
|
|
3
3
|
text?: string;
|
|
4
4
|
zIndex?: number | string;
|
|
5
5
|
image?: string;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Loading as ZdLoading } from '@zeedhi/common';
|
|
2
2
|
import { ILoading } from './interfaces';
|
|
3
3
|
/**
|
|
4
4
|
* Teknisa component
|
|
5
5
|
*/
|
|
6
|
-
export declare class Loading extends
|
|
6
|
+
export declare class Loading extends ZdLoading implements ILoading {
|
|
7
7
|
/**
|
|
8
8
|
* text to show in Loader Overlay
|
|
9
9
|
*/
|
|
@@ -252,12 +252,7 @@ export declare class GridBase {
|
|
|
252
252
|
hideFilterModal(): void;
|
|
253
253
|
private sortFilterIndex;
|
|
254
254
|
private getFilterModalComponents;
|
|
255
|
-
private
|
|
256
|
-
private createHelperValueOptions;
|
|
257
|
-
private helperValuesOptionClick;
|
|
258
|
-
private setFilterPropsHelperValue;
|
|
259
|
-
private registerFilterComponentToForm;
|
|
260
|
-
private clearFilterHelperValue;
|
|
255
|
+
private changeHelperEvent;
|
|
261
256
|
private loadFilterValues;
|
|
262
257
|
private applyFilter;
|
|
263
258
|
private clearFilter;
|