@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.
@@ -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, dayjs, Config, IDictionary,
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-0_helperspan');
1767
- expect(formElements[1].component).toBe('ZdTag');
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: 'date',
1801
- componentProps: { name: 'date_edit', component: 'ZdDate' },
1785
+ name: 'date1',
1786
+ componentProps: { name: 'date_edit1', component: 'ZdDate' },
1802
1787
  filterProps: {
1803
- name: 'date_edit',
1804
- label: 'date',
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: 'date',
1855
- componentProps: { name: 'date_edit', component: 'ZdDate' },
1799
+ name: 'date2',
1800
+ componentProps: { name: 'date_edit2', component: 'ZdDate' },
1856
1801
  filterProps: [
1857
1802
  {
1858
- name: 'date_edit',
1859
- label: 'date',
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 todayHelper = new Text(formElements[0].children[1].children[0]);
1887
- const dateComp = new Date(formElements[0].children[0]);
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(dateComp.hint).toBe('');
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
- let formElements: any = [];
1923
- let form: IForm | undefined;
1924
- const spy = jest.spyOn(ModalService, 'create').mockImplementation((modal: IModal) => {
1925
- if (modal.children && modal.children.length > 1) {
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
- return new Modal(modal);
1931
- });
1932
- instance.onCreated();
1933
- const filterTooltip = instance.toolbarSlot[6];
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('TEKGRID_HELPERVALUE_TODAY');
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 { IComponentRender } from '@zeedhi/common';
2
- export interface ILoading extends IComponentRender {
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 { ComponentRender } from '@zeedhi/common';
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 ComponentRender implements ILoading {
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 getHelperValueComponent;
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;