@zeedhi/teknisa-components-common 1.46.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 +381 -410
- package/coverage/coverage-final.json +9 -9
- package/coverage/lcov-report/index.html +15 -15
- package/coverage/lcov.info +733 -798
- package/dist/tek-components-common.esm.js +78 -185
- package/dist/tek-components-common.umd.js +77 -184
- 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.spec.ts +37 -130
- package/types/components/tek-grid/filter-helper.d.ts +0 -2
- package/types/components/tek-grid/interfaces.d.ts +3 -6
- package/types/utils/grid-base/grid-base.d.ts +1 -6
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { KeyMap, I18n, FormatterParserProvider, Messages, Metadata, DatasourceFactory, RestDatasource, URL, MemoryDatasource, Utils, Loader,
|
|
1
|
+
import { KeyMap, I18n, FormatterParserProvider, Messages, Metadata, DatasourceFactory, RestDatasource, URL, MemoryDatasource, Utils, Loader, DateHelper } from '@zeedhi/core';
|
|
2
2
|
import { Form, Button, Tooltip, GridEditable, Grid, ComponentRender, Iterable, Carousel, Loading as Loading$1, ModalService, GridColumnEditable, Report, IterableColumnsButtonController, IterableColumnsButton, TreeGridEditable } from '@zeedhi/common';
|
|
3
3
|
import get from 'lodash.get';
|
|
4
4
|
import debounce from 'lodash.debounce';
|
|
@@ -1134,9 +1134,11 @@ class GridBase {
|
|
|
1134
1134
|
columnComponentName = `${this.grid.name}-filter-AND-CONTAINS-${column.name}-${index}`;
|
|
1135
1135
|
}
|
|
1136
1136
|
this.filterFormInputs[column.name].push(columnComponentName);
|
|
1137
|
-
|
|
1137
|
+
const newColumnComponent = Object.assign(Object.assign(Object.assign({ label: column.label }, column.componentProps), filterItem), { name: columnComponentName });
|
|
1138
1138
|
if (filterItem.helperOptions) {
|
|
1139
|
-
|
|
1139
|
+
if (!newColumnComponent.events)
|
|
1140
|
+
newColumnComponent.events = {};
|
|
1141
|
+
newColumnComponent.events.change = this.changeHelperEvent.bind(this, column);
|
|
1140
1142
|
}
|
|
1141
1143
|
filterColumns.push(newColumnComponent);
|
|
1142
1144
|
});
|
|
@@ -1144,54 +1146,9 @@ class GridBase {
|
|
|
1144
1146
|
});
|
|
1145
1147
|
return filterColumns;
|
|
1146
1148
|
}
|
|
1147
|
-
|
|
1148
|
-
|
|
1149
|
-
|
|
1150
|
-
component: 'ZdTag',
|
|
1151
|
-
tag: 'span',
|
|
1152
|
-
cssClass: 'zd-display-flex',
|
|
1153
|
-
grid: component.grid,
|
|
1154
|
-
children: [
|
|
1155
|
-
Object.assign(Object.assign({}, component), { persistentHint: true, events: {
|
|
1156
|
-
onMounted: this.registerFilterComponentToForm.bind(this),
|
|
1157
|
-
change: this.clearFilterHelperValue.bind(this, column),
|
|
1158
|
-
} }),
|
|
1159
|
-
{
|
|
1160
|
-
name: `${component.name}_helperdropdown`,
|
|
1161
|
-
component: 'ZdDropdown',
|
|
1162
|
-
offsetY: true,
|
|
1163
|
-
activator: {
|
|
1164
|
-
name: `${component.name}_helperbutton`,
|
|
1165
|
-
component: 'ZdButton',
|
|
1166
|
-
iconName: 'magnify',
|
|
1167
|
-
icon: true,
|
|
1168
|
-
small: true,
|
|
1169
|
-
cssClass: `filter-helper-values-button ${component.showLabel !== false ? 'with-label' : ''}`,
|
|
1170
|
-
},
|
|
1171
|
-
children: this.createHelperValueOptions(component, helperValues, column),
|
|
1172
|
-
},
|
|
1173
|
-
],
|
|
1174
|
-
};
|
|
1175
|
-
}
|
|
1176
|
-
createHelperValueOptions(component, helperValues, column) {
|
|
1177
|
-
return helperValues.map((value) => ({
|
|
1178
|
-
name: `${component.name}_helpervalue_${value}`,
|
|
1179
|
-
component: 'ZdText',
|
|
1180
|
-
cssClass: 'filter-helper-values-option',
|
|
1181
|
-
text: TekFilterHelper.getLabel(value),
|
|
1182
|
-
events: {
|
|
1183
|
-
click: this.helperValuesOptionClick.bind(this, component, value, column),
|
|
1184
|
-
},
|
|
1185
|
-
}));
|
|
1186
|
-
}
|
|
1187
|
-
helperValuesOptionClick(component, helperValue, column) {
|
|
1188
|
-
const value = TekFilterHelper.getValue(helperValue, column);
|
|
1189
|
-
const componentObject = Metadata.getInstance(component.name);
|
|
1190
|
-
componentObject.value = value;
|
|
1191
|
-
componentObject.hint = TekFilterHelper.getLabel(helperValue);
|
|
1192
|
-
this.setFilterPropsHelperValue(column, component.name, helperValue);
|
|
1193
|
-
}
|
|
1194
|
-
setFilterPropsHelperValue(column, componentName, helperValue) {
|
|
1149
|
+
changeHelperEvent(column, { component }) {
|
|
1150
|
+
const { helperValue } = component;
|
|
1151
|
+
const componentName = component.name;
|
|
1195
1152
|
if (!Array.isArray(column.filterProps)) {
|
|
1196
1153
|
column.filterProps.helperValue = helperValue;
|
|
1197
1154
|
}
|
|
@@ -1205,14 +1162,6 @@ class GridBase {
|
|
|
1205
1162
|
});
|
|
1206
1163
|
}
|
|
1207
1164
|
}
|
|
1208
|
-
registerFilterComponentToForm({ component }) {
|
|
1209
|
-
const form = Metadata.getInstance(`${this.grid.name}-filter-form`);
|
|
1210
|
-
form.registerInput(component);
|
|
1211
|
-
}
|
|
1212
|
-
clearFilterHelperValue(column, { component }) {
|
|
1213
|
-
this.setFilterPropsHelperValue(column, component.name, '');
|
|
1214
|
-
component.hint = '';
|
|
1215
|
-
}
|
|
1216
1165
|
loadFilterValues({ component }) {
|
|
1217
1166
|
const { datasource } = this.grid;
|
|
1218
1167
|
if (datasource instanceof TekRestDatasource || datasource instanceof TekMemoryDatasource) {
|
|
@@ -1687,6 +1636,8 @@ class TekRestDatasource extends RestDatasource {
|
|
|
1687
1636
|
}
|
|
1688
1637
|
this.lazyLoad = this.getInitValue('lazyLoad', props.lazyLoad, this.lazyLoad);
|
|
1689
1638
|
this.createAccessors();
|
|
1639
|
+
this.createObjAccessors(this.dynamicFilter, 'dynamicFilter');
|
|
1640
|
+
this.createObjAccessors(this.searchJoin, 'searchJoin');
|
|
1690
1641
|
if (!this.lazyLoad) {
|
|
1691
1642
|
this.get();
|
|
1692
1643
|
}
|
|
@@ -1866,6 +1817,8 @@ class TekMemoryDatasource extends MemoryDatasource {
|
|
|
1866
1817
|
this.searchJoin = this.getInitValue('searchJoin', props.searchJoin, {});
|
|
1867
1818
|
}
|
|
1868
1819
|
this.createAccessors();
|
|
1820
|
+
this.createObjAccessors(this.dynamicFilter, 'dynamicFilter');
|
|
1821
|
+
this.createObjAccessors(this.searchJoin, 'searchJoin');
|
|
1869
1822
|
this.get();
|
|
1870
1823
|
}
|
|
1871
1824
|
updateReservedKeys() {
|
|
@@ -2012,61 +1965,70 @@ class TekMemoryDatasource extends MemoryDatasource {
|
|
|
2012
1965
|
}
|
|
2013
1966
|
getRowByDynamicFilter(row) {
|
|
2014
1967
|
let filtered;
|
|
2015
|
-
|
|
2016
|
-
|
|
2017
|
-
|
|
2018
|
-
|
|
2019
|
-
|
|
2020
|
-
|
|
2021
|
-
|
|
2022
|
-
|
|
2023
|
-
|
|
2024
|
-
|
|
2025
|
-
|
|
2026
|
-
|
|
2027
|
-
|
|
2028
|
-
|
|
2029
|
-
|
|
2030
|
-
|
|
2031
|
-
|
|
2032
|
-
|
|
2033
|
-
|
|
2034
|
-
|
|
2035
|
-
|
|
2036
|
-
|
|
1968
|
+
try {
|
|
1969
|
+
Object.keys(this.dynamicFilter).forEach((key) => {
|
|
1970
|
+
const filterItems = this.dynamicFilter[key];
|
|
1971
|
+
filterItems.forEach((item) => {
|
|
1972
|
+
if (filtered === false && item.relation === 'AND')
|
|
1973
|
+
return;
|
|
1974
|
+
if (filtered === true && item.relation === 'OR')
|
|
1975
|
+
return;
|
|
1976
|
+
const columnValue = Utils.normalize(row[key].toString());
|
|
1977
|
+
let value = '';
|
|
1978
|
+
if (Array.isArray(item.value)) {
|
|
1979
|
+
value = item.value.map((val) => Utils.normalize(val.toString()));
|
|
1980
|
+
switch (item.operation) {
|
|
1981
|
+
case 'IN':
|
|
1982
|
+
filtered = value.includes(columnValue);
|
|
1983
|
+
break;
|
|
1984
|
+
case 'NOT_IN':
|
|
1985
|
+
filtered = !value.includes(columnValue);
|
|
1986
|
+
break;
|
|
1987
|
+
case 'BETWEEN':
|
|
1988
|
+
filtered = (Number(columnValue) || columnValue) >= (Number(value[0]) || value[0])
|
|
1989
|
+
&& (Number(columnValue) || columnValue) <= (Number(value[1]) || value[1]);
|
|
1990
|
+
break;
|
|
1991
|
+
default:
|
|
1992
|
+
break;
|
|
1993
|
+
}
|
|
2037
1994
|
}
|
|
2038
|
-
|
|
2039
|
-
|
|
2040
|
-
|
|
2041
|
-
|
|
2042
|
-
|
|
2043
|
-
|
|
2044
|
-
|
|
2045
|
-
|
|
2046
|
-
|
|
2047
|
-
|
|
2048
|
-
|
|
2049
|
-
|
|
2050
|
-
|
|
2051
|
-
|
|
2052
|
-
|
|
2053
|
-
|
|
2054
|
-
|
|
2055
|
-
|
|
2056
|
-
|
|
2057
|
-
|
|
2058
|
-
|
|
2059
|
-
|
|
2060
|
-
|
|
2061
|
-
|
|
2062
|
-
|
|
2063
|
-
|
|
2064
|
-
|
|
2065
|
-
|
|
1995
|
+
else {
|
|
1996
|
+
value = Utils.normalize(item.value.toString());
|
|
1997
|
+
switch (item.operation) {
|
|
1998
|
+
case 'CONTAINS':
|
|
1999
|
+
filtered = columnValue.indexOf(value) !== -1;
|
|
2000
|
+
break;
|
|
2001
|
+
case 'NOT_CONTAINS':
|
|
2002
|
+
filtered = columnValue.indexOf(value) === -1;
|
|
2003
|
+
break;
|
|
2004
|
+
case 'EQUALS':
|
|
2005
|
+
filtered = columnValue === value;
|
|
2006
|
+
break;
|
|
2007
|
+
case 'NOT_EQUALS':
|
|
2008
|
+
filtered = columnValue !== value;
|
|
2009
|
+
break;
|
|
2010
|
+
case 'GREATER_THAN':
|
|
2011
|
+
filtered = (Number(columnValue) || columnValue) > (Number(value) || value);
|
|
2012
|
+
break;
|
|
2013
|
+
case 'LESS_THAN':
|
|
2014
|
+
filtered = (Number(columnValue) || columnValue) < (Number(value) || value);
|
|
2015
|
+
break;
|
|
2016
|
+
case 'GREATER_THAN_EQUALS':
|
|
2017
|
+
filtered = (Number(columnValue) || columnValue) >= (Number(value) || value);
|
|
2018
|
+
break;
|
|
2019
|
+
case 'LESS_THAN_EQUALS':
|
|
2020
|
+
filtered = (Number(columnValue) || columnValue) <= (Number(value) || value);
|
|
2021
|
+
break;
|
|
2022
|
+
default:
|
|
2023
|
+
break;
|
|
2024
|
+
}
|
|
2066
2025
|
}
|
|
2067
|
-
}
|
|
2026
|
+
});
|
|
2068
2027
|
});
|
|
2069
|
-
}
|
|
2028
|
+
}
|
|
2029
|
+
catch (_a) {
|
|
2030
|
+
// do nothing
|
|
2031
|
+
}
|
|
2070
2032
|
return filtered;
|
|
2071
2033
|
}
|
|
2072
2034
|
getRowBySearchJoin(row) {
|
|
@@ -3031,88 +2993,19 @@ class TekGridLayoutOptions extends ComponentRender {
|
|
|
3031
2993
|
}
|
|
3032
2994
|
|
|
3033
2995
|
class TekFilterHelper {
|
|
3034
|
-
static formatDate(date, column) {
|
|
3035
|
-
if (column.componentProps.dateFormat) {
|
|
3036
|
-
return dayjs(date).format(column.componentProps.dateFormat);
|
|
3037
|
-
}
|
|
3038
|
-
return dayjs(date).format(Config.dateFormat);
|
|
3039
|
-
}
|
|
3040
2996
|
static getLabel(name) {
|
|
3041
|
-
return
|
|
2997
|
+
return DateHelper.getLabel(name);
|
|
3042
2998
|
}
|
|
3043
2999
|
static getValue(name, column) {
|
|
3044
|
-
|
|
3045
|
-
return '';
|
|
3046
|
-
const value = this.values[name].fn();
|
|
3047
|
-
if (Array.isArray(value)) {
|
|
3048
|
-
return value.map((item) => this.formatDate(item, column));
|
|
3049
|
-
}
|
|
3050
|
-
return this.formatDate(value, column);
|
|
3000
|
+
return DateHelper.getValue(name, column.componentProps.dateFormat);
|
|
3051
3001
|
}
|
|
3052
3002
|
static register(name, label, fn) {
|
|
3053
|
-
|
|
3054
|
-
label,
|
|
3055
|
-
fn,
|
|
3056
|
-
};
|
|
3003
|
+
DateHelper.register(name, label, fn);
|
|
3057
3004
|
}
|
|
3058
3005
|
static unregister(name) {
|
|
3059
|
-
|
|
3006
|
+
DateHelper.unregister(name);
|
|
3060
3007
|
}
|
|
3061
|
-
}
|
|
3062
|
-
TekFilterHelper.values = {
|
|
3063
|
-
TODAY: {
|
|
3064
|
-
label: 'TEKGRID_HELPERVALUE_TODAY',
|
|
3065
|
-
fn: () => dayjs().toDate(),
|
|
3066
|
-
},
|
|
3067
|
-
TOMORROW: {
|
|
3068
|
-
label: 'TEKGRID_HELPERVALUE_TOMORROW',
|
|
3069
|
-
fn: () => dayjs().add(1, 'day').toDate(),
|
|
3070
|
-
},
|
|
3071
|
-
YESTERDAY: {
|
|
3072
|
-
label: 'TEKGRID_HELPERVALUE_YESTERDAY',
|
|
3073
|
-
fn: () => dayjs().subtract(1, 'day').toDate(),
|
|
3074
|
-
},
|
|
3075
|
-
LAST_7_DAYS: {
|
|
3076
|
-
label: 'TEKGRID_HELPERVALUE_LAST_7_DAYS',
|
|
3077
|
-
fn: () => {
|
|
3078
|
-
const end = dayjs().toDate();
|
|
3079
|
-
const start = dayjs().subtract(7, 'day').toDate();
|
|
3080
|
-
return [start, end];
|
|
3081
|
-
},
|
|
3082
|
-
},
|
|
3083
|
-
NEXT_7_DAYS: {
|
|
3084
|
-
label: 'TEKGRID_HELPERVALUE_NEXT_7_DAYS',
|
|
3085
|
-
fn: () => {
|
|
3086
|
-
const start = dayjs().toDate();
|
|
3087
|
-
const end = dayjs().add(7, 'day').toDate();
|
|
3088
|
-
return [start, end];
|
|
3089
|
-
},
|
|
3090
|
-
},
|
|
3091
|
-
CURRENT_WEEK: {
|
|
3092
|
-
label: 'TEKGRID_HELPERVALUE_CURRENT_WEEK',
|
|
3093
|
-
fn: () => {
|
|
3094
|
-
const start = dayjs().startOf('week').toDate();
|
|
3095
|
-
const end = dayjs().endOf('week').toDate();
|
|
3096
|
-
return [start, end];
|
|
3097
|
-
},
|
|
3098
|
-
},
|
|
3099
|
-
CURRENT_MONTH: {
|
|
3100
|
-
label: 'TEKGRID_HELPERVALUE_CURRENT_MONTH',
|
|
3101
|
-
fn: () => {
|
|
3102
|
-
const start = dayjs().startOf('month').toDate();
|
|
3103
|
-
const end = dayjs().endOf('month').toDate();
|
|
3104
|
-
return [start, end];
|
|
3105
|
-
},
|
|
3106
|
-
},
|
|
3107
|
-
CURRENT_YEAR: {
|
|
3108
|
-
label: 'TEKGRID_HELPERVALUE_CURRENT_YEAR',
|
|
3109
|
-
fn: () => {
|
|
3110
|
-
const start = dayjs().startOf('year').toDate();
|
|
3111
|
-
const end = dayjs().endOf('year').toDate();
|
|
3112
|
-
return [start, end];
|
|
3113
|
-
},
|
|
3114
|
-
},
|
|
3115
|
-
};
|
|
3008
|
+
}
|
|
3116
3009
|
|
|
3117
3010
|
/* TekTreeGrid Class */
|
|
3118
3011
|
class TekTreeGrid extends TreeGridEditable {
|
|
@@ -1140,9 +1140,11 @@
|
|
|
1140
1140
|
columnComponentName = `${this.grid.name}-filter-AND-CONTAINS-${column.name}-${index}`;
|
|
1141
1141
|
}
|
|
1142
1142
|
this.filterFormInputs[column.name].push(columnComponentName);
|
|
1143
|
-
|
|
1143
|
+
const newColumnComponent = Object.assign(Object.assign(Object.assign({ label: column.label }, column.componentProps), filterItem), { name: columnComponentName });
|
|
1144
1144
|
if (filterItem.helperOptions) {
|
|
1145
|
-
|
|
1145
|
+
if (!newColumnComponent.events)
|
|
1146
|
+
newColumnComponent.events = {};
|
|
1147
|
+
newColumnComponent.events.change = this.changeHelperEvent.bind(this, column);
|
|
1146
1148
|
}
|
|
1147
1149
|
filterColumns.push(newColumnComponent);
|
|
1148
1150
|
});
|
|
@@ -1150,54 +1152,9 @@
|
|
|
1150
1152
|
});
|
|
1151
1153
|
return filterColumns;
|
|
1152
1154
|
}
|
|
1153
|
-
|
|
1154
|
-
|
|
1155
|
-
|
|
1156
|
-
component: 'ZdTag',
|
|
1157
|
-
tag: 'span',
|
|
1158
|
-
cssClass: 'zd-display-flex',
|
|
1159
|
-
grid: component.grid,
|
|
1160
|
-
children: [
|
|
1161
|
-
Object.assign(Object.assign({}, component), { persistentHint: true, events: {
|
|
1162
|
-
onMounted: this.registerFilterComponentToForm.bind(this),
|
|
1163
|
-
change: this.clearFilterHelperValue.bind(this, column),
|
|
1164
|
-
} }),
|
|
1165
|
-
{
|
|
1166
|
-
name: `${component.name}_helperdropdown`,
|
|
1167
|
-
component: 'ZdDropdown',
|
|
1168
|
-
offsetY: true,
|
|
1169
|
-
activator: {
|
|
1170
|
-
name: `${component.name}_helperbutton`,
|
|
1171
|
-
component: 'ZdButton',
|
|
1172
|
-
iconName: 'magnify',
|
|
1173
|
-
icon: true,
|
|
1174
|
-
small: true,
|
|
1175
|
-
cssClass: `filter-helper-values-button ${component.showLabel !== false ? 'with-label' : ''}`,
|
|
1176
|
-
},
|
|
1177
|
-
children: this.createHelperValueOptions(component, helperValues, column),
|
|
1178
|
-
},
|
|
1179
|
-
],
|
|
1180
|
-
};
|
|
1181
|
-
}
|
|
1182
|
-
createHelperValueOptions(component, helperValues, column) {
|
|
1183
|
-
return helperValues.map((value) => ({
|
|
1184
|
-
name: `${component.name}_helpervalue_${value}`,
|
|
1185
|
-
component: 'ZdText',
|
|
1186
|
-
cssClass: 'filter-helper-values-option',
|
|
1187
|
-
text: TekFilterHelper.getLabel(value),
|
|
1188
|
-
events: {
|
|
1189
|
-
click: this.helperValuesOptionClick.bind(this, component, value, column),
|
|
1190
|
-
},
|
|
1191
|
-
}));
|
|
1192
|
-
}
|
|
1193
|
-
helperValuesOptionClick(component, helperValue, column) {
|
|
1194
|
-
const value = TekFilterHelper.getValue(helperValue, column);
|
|
1195
|
-
const componentObject = core.Metadata.getInstance(component.name);
|
|
1196
|
-
componentObject.value = value;
|
|
1197
|
-
componentObject.hint = TekFilterHelper.getLabel(helperValue);
|
|
1198
|
-
this.setFilterPropsHelperValue(column, component.name, helperValue);
|
|
1199
|
-
}
|
|
1200
|
-
setFilterPropsHelperValue(column, componentName, helperValue) {
|
|
1155
|
+
changeHelperEvent(column, { component }) {
|
|
1156
|
+
const { helperValue } = component;
|
|
1157
|
+
const componentName = component.name;
|
|
1201
1158
|
if (!Array.isArray(column.filterProps)) {
|
|
1202
1159
|
column.filterProps.helperValue = helperValue;
|
|
1203
1160
|
}
|
|
@@ -1211,14 +1168,6 @@
|
|
|
1211
1168
|
});
|
|
1212
1169
|
}
|
|
1213
1170
|
}
|
|
1214
|
-
registerFilterComponentToForm({ component }) {
|
|
1215
|
-
const form = core.Metadata.getInstance(`${this.grid.name}-filter-form`);
|
|
1216
|
-
form.registerInput(component);
|
|
1217
|
-
}
|
|
1218
|
-
clearFilterHelperValue(column, { component }) {
|
|
1219
|
-
this.setFilterPropsHelperValue(column, component.name, '');
|
|
1220
|
-
component.hint = '';
|
|
1221
|
-
}
|
|
1222
1171
|
loadFilterValues({ component }) {
|
|
1223
1172
|
const { datasource } = this.grid;
|
|
1224
1173
|
if (datasource instanceof TekRestDatasource || datasource instanceof TekMemoryDatasource) {
|
|
@@ -1693,6 +1642,8 @@
|
|
|
1693
1642
|
}
|
|
1694
1643
|
this.lazyLoad = this.getInitValue('lazyLoad', props.lazyLoad, this.lazyLoad);
|
|
1695
1644
|
this.createAccessors();
|
|
1645
|
+
this.createObjAccessors(this.dynamicFilter, 'dynamicFilter');
|
|
1646
|
+
this.createObjAccessors(this.searchJoin, 'searchJoin');
|
|
1696
1647
|
if (!this.lazyLoad) {
|
|
1697
1648
|
this.get();
|
|
1698
1649
|
}
|
|
@@ -1872,6 +1823,8 @@
|
|
|
1872
1823
|
this.searchJoin = this.getInitValue('searchJoin', props.searchJoin, {});
|
|
1873
1824
|
}
|
|
1874
1825
|
this.createAccessors();
|
|
1826
|
+
this.createObjAccessors(this.dynamicFilter, 'dynamicFilter');
|
|
1827
|
+
this.createObjAccessors(this.searchJoin, 'searchJoin');
|
|
1875
1828
|
this.get();
|
|
1876
1829
|
}
|
|
1877
1830
|
updateReservedKeys() {
|
|
@@ -2018,61 +1971,70 @@
|
|
|
2018
1971
|
}
|
|
2019
1972
|
getRowByDynamicFilter(row) {
|
|
2020
1973
|
let filtered;
|
|
2021
|
-
|
|
2022
|
-
|
|
2023
|
-
|
|
2024
|
-
|
|
2025
|
-
|
|
2026
|
-
|
|
2027
|
-
|
|
2028
|
-
|
|
2029
|
-
|
|
2030
|
-
|
|
2031
|
-
|
|
2032
|
-
|
|
2033
|
-
|
|
2034
|
-
|
|
2035
|
-
|
|
2036
|
-
|
|
2037
|
-
|
|
2038
|
-
|
|
2039
|
-
|
|
2040
|
-
|
|
2041
|
-
|
|
2042
|
-
|
|
1974
|
+
try {
|
|
1975
|
+
Object.keys(this.dynamicFilter).forEach((key) => {
|
|
1976
|
+
const filterItems = this.dynamicFilter[key];
|
|
1977
|
+
filterItems.forEach((item) => {
|
|
1978
|
+
if (filtered === false && item.relation === 'AND')
|
|
1979
|
+
return;
|
|
1980
|
+
if (filtered === true && item.relation === 'OR')
|
|
1981
|
+
return;
|
|
1982
|
+
const columnValue = core.Utils.normalize(row[key].toString());
|
|
1983
|
+
let value = '';
|
|
1984
|
+
if (Array.isArray(item.value)) {
|
|
1985
|
+
value = item.value.map((val) => core.Utils.normalize(val.toString()));
|
|
1986
|
+
switch (item.operation) {
|
|
1987
|
+
case 'IN':
|
|
1988
|
+
filtered = value.includes(columnValue);
|
|
1989
|
+
break;
|
|
1990
|
+
case 'NOT_IN':
|
|
1991
|
+
filtered = !value.includes(columnValue);
|
|
1992
|
+
break;
|
|
1993
|
+
case 'BETWEEN':
|
|
1994
|
+
filtered = (Number(columnValue) || columnValue) >= (Number(value[0]) || value[0])
|
|
1995
|
+
&& (Number(columnValue) || columnValue) <= (Number(value[1]) || value[1]);
|
|
1996
|
+
break;
|
|
1997
|
+
default:
|
|
1998
|
+
break;
|
|
1999
|
+
}
|
|
2043
2000
|
}
|
|
2044
|
-
|
|
2045
|
-
|
|
2046
|
-
|
|
2047
|
-
|
|
2048
|
-
|
|
2049
|
-
|
|
2050
|
-
|
|
2051
|
-
|
|
2052
|
-
|
|
2053
|
-
|
|
2054
|
-
|
|
2055
|
-
|
|
2056
|
-
|
|
2057
|
-
|
|
2058
|
-
|
|
2059
|
-
|
|
2060
|
-
|
|
2061
|
-
|
|
2062
|
-
|
|
2063
|
-
|
|
2064
|
-
|
|
2065
|
-
|
|
2066
|
-
|
|
2067
|
-
|
|
2068
|
-
|
|
2069
|
-
|
|
2070
|
-
|
|
2071
|
-
|
|
2001
|
+
else {
|
|
2002
|
+
value = core.Utils.normalize(item.value.toString());
|
|
2003
|
+
switch (item.operation) {
|
|
2004
|
+
case 'CONTAINS':
|
|
2005
|
+
filtered = columnValue.indexOf(value) !== -1;
|
|
2006
|
+
break;
|
|
2007
|
+
case 'NOT_CONTAINS':
|
|
2008
|
+
filtered = columnValue.indexOf(value) === -1;
|
|
2009
|
+
break;
|
|
2010
|
+
case 'EQUALS':
|
|
2011
|
+
filtered = columnValue === value;
|
|
2012
|
+
break;
|
|
2013
|
+
case 'NOT_EQUALS':
|
|
2014
|
+
filtered = columnValue !== value;
|
|
2015
|
+
break;
|
|
2016
|
+
case 'GREATER_THAN':
|
|
2017
|
+
filtered = (Number(columnValue) || columnValue) > (Number(value) || value);
|
|
2018
|
+
break;
|
|
2019
|
+
case 'LESS_THAN':
|
|
2020
|
+
filtered = (Number(columnValue) || columnValue) < (Number(value) || value);
|
|
2021
|
+
break;
|
|
2022
|
+
case 'GREATER_THAN_EQUALS':
|
|
2023
|
+
filtered = (Number(columnValue) || columnValue) >= (Number(value) || value);
|
|
2024
|
+
break;
|
|
2025
|
+
case 'LESS_THAN_EQUALS':
|
|
2026
|
+
filtered = (Number(columnValue) || columnValue) <= (Number(value) || value);
|
|
2027
|
+
break;
|
|
2028
|
+
default:
|
|
2029
|
+
break;
|
|
2030
|
+
}
|
|
2072
2031
|
}
|
|
2073
|
-
}
|
|
2032
|
+
});
|
|
2074
2033
|
});
|
|
2075
|
-
}
|
|
2034
|
+
}
|
|
2035
|
+
catch (_a) {
|
|
2036
|
+
// do nothing
|
|
2037
|
+
}
|
|
2076
2038
|
return filtered;
|
|
2077
2039
|
}
|
|
2078
2040
|
getRowBySearchJoin(row) {
|
|
@@ -3037,88 +2999,19 @@
|
|
|
3037
2999
|
}
|
|
3038
3000
|
|
|
3039
3001
|
class TekFilterHelper {
|
|
3040
|
-
static formatDate(date, column) {
|
|
3041
|
-
if (column.componentProps.dateFormat) {
|
|
3042
|
-
return core.dayjs(date).format(column.componentProps.dateFormat);
|
|
3043
|
-
}
|
|
3044
|
-
return core.dayjs(date).format(core.Config.dateFormat);
|
|
3045
|
-
}
|
|
3046
3002
|
static getLabel(name) {
|
|
3047
|
-
return core.
|
|
3003
|
+
return core.DateHelper.getLabel(name);
|
|
3048
3004
|
}
|
|
3049
3005
|
static getValue(name, column) {
|
|
3050
|
-
|
|
3051
|
-
return '';
|
|
3052
|
-
const value = this.values[name].fn();
|
|
3053
|
-
if (Array.isArray(value)) {
|
|
3054
|
-
return value.map((item) => this.formatDate(item, column));
|
|
3055
|
-
}
|
|
3056
|
-
return this.formatDate(value, column);
|
|
3006
|
+
return core.DateHelper.getValue(name, column.componentProps.dateFormat);
|
|
3057
3007
|
}
|
|
3058
3008
|
static register(name, label, fn) {
|
|
3059
|
-
|
|
3060
|
-
label,
|
|
3061
|
-
fn,
|
|
3062
|
-
};
|
|
3009
|
+
core.DateHelper.register(name, label, fn);
|
|
3063
3010
|
}
|
|
3064
3011
|
static unregister(name) {
|
|
3065
|
-
|
|
3012
|
+
core.DateHelper.unregister(name);
|
|
3066
3013
|
}
|
|
3067
|
-
}
|
|
3068
|
-
TekFilterHelper.values = {
|
|
3069
|
-
TODAY: {
|
|
3070
|
-
label: 'TEKGRID_HELPERVALUE_TODAY',
|
|
3071
|
-
fn: () => core.dayjs().toDate(),
|
|
3072
|
-
},
|
|
3073
|
-
TOMORROW: {
|
|
3074
|
-
label: 'TEKGRID_HELPERVALUE_TOMORROW',
|
|
3075
|
-
fn: () => core.dayjs().add(1, 'day').toDate(),
|
|
3076
|
-
},
|
|
3077
|
-
YESTERDAY: {
|
|
3078
|
-
label: 'TEKGRID_HELPERVALUE_YESTERDAY',
|
|
3079
|
-
fn: () => core.dayjs().subtract(1, 'day').toDate(),
|
|
3080
|
-
},
|
|
3081
|
-
LAST_7_DAYS: {
|
|
3082
|
-
label: 'TEKGRID_HELPERVALUE_LAST_7_DAYS',
|
|
3083
|
-
fn: () => {
|
|
3084
|
-
const end = core.dayjs().toDate();
|
|
3085
|
-
const start = core.dayjs().subtract(7, 'day').toDate();
|
|
3086
|
-
return [start, end];
|
|
3087
|
-
},
|
|
3088
|
-
},
|
|
3089
|
-
NEXT_7_DAYS: {
|
|
3090
|
-
label: 'TEKGRID_HELPERVALUE_NEXT_7_DAYS',
|
|
3091
|
-
fn: () => {
|
|
3092
|
-
const start = core.dayjs().toDate();
|
|
3093
|
-
const end = core.dayjs().add(7, 'day').toDate();
|
|
3094
|
-
return [start, end];
|
|
3095
|
-
},
|
|
3096
|
-
},
|
|
3097
|
-
CURRENT_WEEK: {
|
|
3098
|
-
label: 'TEKGRID_HELPERVALUE_CURRENT_WEEK',
|
|
3099
|
-
fn: () => {
|
|
3100
|
-
const start = core.dayjs().startOf('week').toDate();
|
|
3101
|
-
const end = core.dayjs().endOf('week').toDate();
|
|
3102
|
-
return [start, end];
|
|
3103
|
-
},
|
|
3104
|
-
},
|
|
3105
|
-
CURRENT_MONTH: {
|
|
3106
|
-
label: 'TEKGRID_HELPERVALUE_CURRENT_MONTH',
|
|
3107
|
-
fn: () => {
|
|
3108
|
-
const start = core.dayjs().startOf('month').toDate();
|
|
3109
|
-
const end = core.dayjs().endOf('month').toDate();
|
|
3110
|
-
return [start, end];
|
|
3111
|
-
},
|
|
3112
|
-
},
|
|
3113
|
-
CURRENT_YEAR: {
|
|
3114
|
-
label: 'TEKGRID_HELPERVALUE_CURRENT_YEAR',
|
|
3115
|
-
fn: () => {
|
|
3116
|
-
const start = core.dayjs().startOf('year').toDate();
|
|
3117
|
-
const end = core.dayjs().endOf('year').toDate();
|
|
3118
|
-
return [start, end];
|
|
3119
|
-
},
|
|
3120
|
-
},
|
|
3121
|
-
};
|
|
3014
|
+
}
|
|
3122
3015
|
|
|
3123
3016
|
/* TekTreeGrid Class */
|
|
3124
3017
|
class TekTreeGrid extends common.TreeGridEditable {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zeedhi/teknisa-components-common",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.47.0",
|
|
4
4
|
"description": "Teknisa Components Common",
|
|
5
5
|
"author": "Zeedhi <zeedhi@teknisa.com>",
|
|
6
6
|
"license": "ISC",
|
|
@@ -28,5 +28,5 @@
|
|
|
28
28
|
"peerDependencies": {
|
|
29
29
|
"@zeedhi/core": "*"
|
|
30
30
|
},
|
|
31
|
-
"gitHead": "
|
|
31
|
+
"gitHead": "abcaca117ec02f18fa6c8c1aef4bf6bb3582fdf7"
|
|
32
32
|
}
|