@zeedhi/teknisa-components-common 1.45.0 → 1.48.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 +547 -576
- package/coverage/coverage-final.json +9 -9
- package/coverage/lcov-report/index.html +15 -15
- package/coverage/lcov.info +1078 -1143
- package/dist/tek-components-common.esm.js +497 -187
- package/dist/tek-components-common.umd.js +499 -188
- package/package.json +3 -2
- package/tests/__helpers__/mock-created-helper.ts +10 -0
- 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/tests/unit/components/tek-user-info/TekUserInfoContoller.spec.ts +234 -0
- package/tests/unit/components/tek-user-info/tek-user-info-list.spec.ts +85 -0
- package/tests/unit/components/tek-user-info/tek-user-info.spec.ts +395 -0
- package/types/components/index.d.ts +3 -0
- package/types/components/tek-grid/filter-helper.d.ts +0 -2
- package/types/components/tek-grid/interfaces.d.ts +3 -6
- package/types/components/tek-user-info/TekUserInfoController.d.ts +20 -0
- package/types/components/tek-user-info/interfaces.d.ts +27 -0
- package/types/components/tek-user-info/tek-user-info-list.d.ts +29 -0
- package/types/components/tek-user-info/tek-user-info.d.ts +37 -0
- package/types/utils/grid-base/grid-base.d.ts +1 -6
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { KeyMap, I18n, FormatterParserProvider, Messages, Metadata, DatasourceFactory, RestDatasource, URL, MemoryDatasource, Utils, Loader,
|
|
2
|
-
import { Form, Button, Tooltip, GridEditable, Grid, ComponentRender, Iterable, Carousel, Loading as Loading$1, ModalService, GridColumnEditable, Report, IterableColumnsButtonController, IterableColumnsButton, TreeGridEditable } from '@zeedhi/common';
|
|
1
|
+
import { KeyMap, I18n, FormatterParserProvider, Messages, Metadata, DatasourceFactory, RestDatasource, URL, MemoryDatasource, Utils, Loader, DateHelper, Http } from '@zeedhi/core';
|
|
2
|
+
import { Form, Button, Tooltip, GridEditable, Grid, ComponentRender, Iterable, Carousel, Loading as Loading$1, ModalService, GridColumnEditable, Report, IterableColumnsButtonController, IterableColumnsButton, TreeGridEditable, List } from '@zeedhi/common';
|
|
3
3
|
import get from 'lodash.get';
|
|
4
4
|
import debounce from 'lodash.debounce';
|
|
5
5
|
import merge from 'lodash.merge';
|
|
6
|
+
import { UserInfo } from '@zeedhi/zd-user-info-common';
|
|
6
7
|
|
|
7
8
|
/**
|
|
8
9
|
* Form to be used on Crud operations
|
|
@@ -1134,9 +1135,11 @@ class GridBase {
|
|
|
1134
1135
|
columnComponentName = `${this.grid.name}-filter-AND-CONTAINS-${column.name}-${index}`;
|
|
1135
1136
|
}
|
|
1136
1137
|
this.filterFormInputs[column.name].push(columnComponentName);
|
|
1137
|
-
|
|
1138
|
+
const newColumnComponent = Object.assign(Object.assign(Object.assign({ label: column.label }, column.componentProps), filterItem), { name: columnComponentName });
|
|
1138
1139
|
if (filterItem.helperOptions) {
|
|
1139
|
-
|
|
1140
|
+
if (!newColumnComponent.events)
|
|
1141
|
+
newColumnComponent.events = {};
|
|
1142
|
+
newColumnComponent.events.change = this.changeHelperEvent.bind(this, column);
|
|
1140
1143
|
}
|
|
1141
1144
|
filterColumns.push(newColumnComponent);
|
|
1142
1145
|
});
|
|
@@ -1144,54 +1147,9 @@ class GridBase {
|
|
|
1144
1147
|
});
|
|
1145
1148
|
return filterColumns;
|
|
1146
1149
|
}
|
|
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) {
|
|
1150
|
+
changeHelperEvent(column, { component }) {
|
|
1151
|
+
const { helperValue } = component;
|
|
1152
|
+
const componentName = component.name;
|
|
1195
1153
|
if (!Array.isArray(column.filterProps)) {
|
|
1196
1154
|
column.filterProps.helperValue = helperValue;
|
|
1197
1155
|
}
|
|
@@ -1205,14 +1163,6 @@ class GridBase {
|
|
|
1205
1163
|
});
|
|
1206
1164
|
}
|
|
1207
1165
|
}
|
|
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
1166
|
loadFilterValues({ component }) {
|
|
1217
1167
|
const { datasource } = this.grid;
|
|
1218
1168
|
if (datasource instanceof TekRestDatasource || datasource instanceof TekMemoryDatasource) {
|
|
@@ -1687,6 +1637,8 @@ class TekRestDatasource extends RestDatasource {
|
|
|
1687
1637
|
}
|
|
1688
1638
|
this.lazyLoad = this.getInitValue('lazyLoad', props.lazyLoad, this.lazyLoad);
|
|
1689
1639
|
this.createAccessors();
|
|
1640
|
+
this.createObjAccessors(this.dynamicFilter, 'dynamicFilter');
|
|
1641
|
+
this.createObjAccessors(this.searchJoin, 'searchJoin');
|
|
1690
1642
|
if (!this.lazyLoad) {
|
|
1691
1643
|
this.get();
|
|
1692
1644
|
}
|
|
@@ -1866,6 +1818,8 @@ class TekMemoryDatasource extends MemoryDatasource {
|
|
|
1866
1818
|
this.searchJoin = this.getInitValue('searchJoin', props.searchJoin, {});
|
|
1867
1819
|
}
|
|
1868
1820
|
this.createAccessors();
|
|
1821
|
+
this.createObjAccessors(this.dynamicFilter, 'dynamicFilter');
|
|
1822
|
+
this.createObjAccessors(this.searchJoin, 'searchJoin');
|
|
1869
1823
|
this.get();
|
|
1870
1824
|
}
|
|
1871
1825
|
updateReservedKeys() {
|
|
@@ -2012,61 +1966,70 @@ class TekMemoryDatasource extends MemoryDatasource {
|
|
|
2012
1966
|
}
|
|
2013
1967
|
getRowByDynamicFilter(row) {
|
|
2014
1968
|
let filtered;
|
|
2015
|
-
|
|
2016
|
-
|
|
2017
|
-
|
|
2018
|
-
|
|
2019
|
-
|
|
2020
|
-
|
|
2021
|
-
|
|
2022
|
-
|
|
2023
|
-
|
|
2024
|
-
|
|
2025
|
-
|
|
2026
|
-
|
|
2027
|
-
|
|
2028
|
-
|
|
2029
|
-
|
|
2030
|
-
|
|
2031
|
-
|
|
2032
|
-
|
|
2033
|
-
|
|
2034
|
-
|
|
2035
|
-
|
|
2036
|
-
|
|
1969
|
+
try {
|
|
1970
|
+
Object.keys(this.dynamicFilter).forEach((key) => {
|
|
1971
|
+
const filterItems = this.dynamicFilter[key];
|
|
1972
|
+
filterItems.forEach((item) => {
|
|
1973
|
+
if (filtered === false && item.relation === 'AND')
|
|
1974
|
+
return;
|
|
1975
|
+
if (filtered === true && item.relation === 'OR')
|
|
1976
|
+
return;
|
|
1977
|
+
const columnValue = Utils.normalize(row[key].toString());
|
|
1978
|
+
let value = '';
|
|
1979
|
+
if (Array.isArray(item.value)) {
|
|
1980
|
+
value = item.value.map((val) => Utils.normalize(val.toString()));
|
|
1981
|
+
switch (item.operation) {
|
|
1982
|
+
case 'IN':
|
|
1983
|
+
filtered = value.includes(columnValue);
|
|
1984
|
+
break;
|
|
1985
|
+
case 'NOT_IN':
|
|
1986
|
+
filtered = !value.includes(columnValue);
|
|
1987
|
+
break;
|
|
1988
|
+
case 'BETWEEN':
|
|
1989
|
+
filtered = (Number(columnValue) || columnValue) >= (Number(value[0]) || value[0])
|
|
1990
|
+
&& (Number(columnValue) || columnValue) <= (Number(value[1]) || value[1]);
|
|
1991
|
+
break;
|
|
1992
|
+
default:
|
|
1993
|
+
break;
|
|
1994
|
+
}
|
|
2037
1995
|
}
|
|
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
|
-
|
|
1996
|
+
else {
|
|
1997
|
+
value = Utils.normalize(item.value.toString());
|
|
1998
|
+
switch (item.operation) {
|
|
1999
|
+
case 'CONTAINS':
|
|
2000
|
+
filtered = columnValue.indexOf(value) !== -1;
|
|
2001
|
+
break;
|
|
2002
|
+
case 'NOT_CONTAINS':
|
|
2003
|
+
filtered = columnValue.indexOf(value) === -1;
|
|
2004
|
+
break;
|
|
2005
|
+
case 'EQUALS':
|
|
2006
|
+
filtered = columnValue === value;
|
|
2007
|
+
break;
|
|
2008
|
+
case 'NOT_EQUALS':
|
|
2009
|
+
filtered = columnValue !== value;
|
|
2010
|
+
break;
|
|
2011
|
+
case 'GREATER_THAN':
|
|
2012
|
+
filtered = (Number(columnValue) || columnValue) > (Number(value) || value);
|
|
2013
|
+
break;
|
|
2014
|
+
case 'LESS_THAN':
|
|
2015
|
+
filtered = (Number(columnValue) || columnValue) < (Number(value) || value);
|
|
2016
|
+
break;
|
|
2017
|
+
case 'GREATER_THAN_EQUALS':
|
|
2018
|
+
filtered = (Number(columnValue) || columnValue) >= (Number(value) || value);
|
|
2019
|
+
break;
|
|
2020
|
+
case 'LESS_THAN_EQUALS':
|
|
2021
|
+
filtered = (Number(columnValue) || columnValue) <= (Number(value) || value);
|
|
2022
|
+
break;
|
|
2023
|
+
default:
|
|
2024
|
+
break;
|
|
2025
|
+
}
|
|
2066
2026
|
}
|
|
2067
|
-
}
|
|
2027
|
+
});
|
|
2068
2028
|
});
|
|
2069
|
-
}
|
|
2029
|
+
}
|
|
2030
|
+
catch (_a) {
|
|
2031
|
+
// do nothing
|
|
2032
|
+
}
|
|
2070
2033
|
return filtered;
|
|
2071
2034
|
}
|
|
2072
2035
|
getRowBySearchJoin(row) {
|
|
@@ -3031,88 +2994,19 @@ class TekGridLayoutOptions extends ComponentRender {
|
|
|
3031
2994
|
}
|
|
3032
2995
|
|
|
3033
2996
|
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
2997
|
static getLabel(name) {
|
|
3041
|
-
return
|
|
2998
|
+
return DateHelper.getLabel(name);
|
|
3042
2999
|
}
|
|
3043
3000
|
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);
|
|
3001
|
+
return DateHelper.getValue(name, column.componentProps.dateFormat);
|
|
3051
3002
|
}
|
|
3052
3003
|
static register(name, label, fn) {
|
|
3053
|
-
|
|
3054
|
-
label,
|
|
3055
|
-
fn,
|
|
3056
|
-
};
|
|
3004
|
+
DateHelper.register(name, label, fn);
|
|
3057
3005
|
}
|
|
3058
3006
|
static unregister(name) {
|
|
3059
|
-
|
|
3007
|
+
DateHelper.unregister(name);
|
|
3060
3008
|
}
|
|
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
|
-
};
|
|
3009
|
+
}
|
|
3116
3010
|
|
|
3117
3011
|
/* TekTreeGrid Class */
|
|
3118
3012
|
class TekTreeGrid extends TreeGridEditable {
|
|
@@ -3278,6 +3172,422 @@ class TekTreeGrid extends TreeGridEditable {
|
|
|
3278
3172
|
}
|
|
3279
3173
|
}
|
|
3280
3174
|
|
|
3175
|
+
class TekUserInfoController {
|
|
3176
|
+
constructor(component) {
|
|
3177
|
+
this.component = component;
|
|
3178
|
+
}
|
|
3179
|
+
get versionInfo() {
|
|
3180
|
+
return this.component.versionInfo;
|
|
3181
|
+
}
|
|
3182
|
+
get name() {
|
|
3183
|
+
var _a;
|
|
3184
|
+
return ((_a = this.versionInfo) === null || _a === void 0 ? void 0 : _a.name) || '';
|
|
3185
|
+
}
|
|
3186
|
+
set name(value) {
|
|
3187
|
+
if (!this.versionInfo)
|
|
3188
|
+
return;
|
|
3189
|
+
this.versionInfo.name = value;
|
|
3190
|
+
}
|
|
3191
|
+
get version() {
|
|
3192
|
+
var _a;
|
|
3193
|
+
return ((_a = this.versionInfo) === null || _a === void 0 ? void 0 : _a.version) || '';
|
|
3194
|
+
}
|
|
3195
|
+
set version(value) {
|
|
3196
|
+
if (!this.versionInfo)
|
|
3197
|
+
return;
|
|
3198
|
+
this.versionInfo.version = value;
|
|
3199
|
+
}
|
|
3200
|
+
get defaultEmail() {
|
|
3201
|
+
return this.component.defaultEmail;
|
|
3202
|
+
}
|
|
3203
|
+
set defaultEmail(value) {
|
|
3204
|
+
this.component.defaultEmail = value;
|
|
3205
|
+
}
|
|
3206
|
+
get hasDefaultEmail() {
|
|
3207
|
+
return !!this.component.defaultEmail;
|
|
3208
|
+
}
|
|
3209
|
+
get hasAboutImage() {
|
|
3210
|
+
return !!this.component.aboutImage;
|
|
3211
|
+
}
|
|
3212
|
+
mergeText(name, version) {
|
|
3213
|
+
return `${name} - <b>${version}</b>`;
|
|
3214
|
+
}
|
|
3215
|
+
get mainVersion() {
|
|
3216
|
+
var _a;
|
|
3217
|
+
if (!((_a = this.versionInfo) === null || _a === void 0 ? void 0 : _a.name) || !this.versionInfo.version)
|
|
3218
|
+
return '';
|
|
3219
|
+
return this.mergeText(this.versionInfo.name, this.versionInfo.version);
|
|
3220
|
+
}
|
|
3221
|
+
getItems(tab) {
|
|
3222
|
+
if (!this.versionInfo)
|
|
3223
|
+
return [];
|
|
3224
|
+
const tabInfo = this.versionInfo[tab];
|
|
3225
|
+
return tabInfo.map((item) => this.mergeText(item.name, item.version));
|
|
3226
|
+
}
|
|
3227
|
+
get frontendItems() {
|
|
3228
|
+
return this.getItems('frontend');
|
|
3229
|
+
}
|
|
3230
|
+
get backendItems() {
|
|
3231
|
+
return this.getItems('backend');
|
|
3232
|
+
}
|
|
3233
|
+
get modulesItems() {
|
|
3234
|
+
return this.getItems('modules');
|
|
3235
|
+
}
|
|
3236
|
+
}
|
|
3237
|
+
|
|
3238
|
+
class TekUserInfo extends UserInfo {
|
|
3239
|
+
constructor(props) {
|
|
3240
|
+
super(props);
|
|
3241
|
+
/**
|
|
3242
|
+
* Data about the application version
|
|
3243
|
+
*/
|
|
3244
|
+
this.versionInfo = null;
|
|
3245
|
+
/**
|
|
3246
|
+
* Default email address to be defined in the Report Bug form
|
|
3247
|
+
*/
|
|
3248
|
+
this.defaultEmail = '';
|
|
3249
|
+
/**
|
|
3250
|
+
* Url from which the version info will be retrieved
|
|
3251
|
+
*/
|
|
3252
|
+
this.versionUrl = '';
|
|
3253
|
+
/**
|
|
3254
|
+
* Path to the image to be shown on about modal
|
|
3255
|
+
*/
|
|
3256
|
+
this.aboutImage = '';
|
|
3257
|
+
this.versionInfo = this.getInitValue('versionInfo', props.versionInfo, this.versionInfo);
|
|
3258
|
+
this.defaultEmail = this.getInitValue('defaultEmail', props.defaultEmail, this.defaultEmail);
|
|
3259
|
+
this.versionUrl = this.getInitValue('versionUrl', props.versionUrl, this.versionUrl);
|
|
3260
|
+
this.aboutImage = this.getInitValue('aboutImage', props.aboutImage, this.aboutImage);
|
|
3261
|
+
this.createAccessors();
|
|
3262
|
+
this.propBottomSlot = props.bottomSlot;
|
|
3263
|
+
}
|
|
3264
|
+
getBottomSlot() {
|
|
3265
|
+
return [
|
|
3266
|
+
{
|
|
3267
|
+
name: `${this.name}_bottom_list`,
|
|
3268
|
+
component: 'TekUserInfoList',
|
|
3269
|
+
parentName: this.name,
|
|
3270
|
+
},
|
|
3271
|
+
];
|
|
3272
|
+
}
|
|
3273
|
+
onAboutClick() {
|
|
3274
|
+
if (!this.aboutModal) {
|
|
3275
|
+
this.aboutModal = ModalService.create({
|
|
3276
|
+
name: `${this.name}_about_modal`,
|
|
3277
|
+
cssClass: 'about-modal',
|
|
3278
|
+
children: [
|
|
3279
|
+
{
|
|
3280
|
+
name: `${this.name}_about_header`,
|
|
3281
|
+
component: 'ZdHeader',
|
|
3282
|
+
color: 'transparent',
|
|
3283
|
+
padless: true,
|
|
3284
|
+
elevation: 0,
|
|
3285
|
+
rightSlot: [
|
|
3286
|
+
{
|
|
3287
|
+
name: `${this.name}_about_close_button`,
|
|
3288
|
+
component: 'ZdModalCloseButton',
|
|
3289
|
+
small: true,
|
|
3290
|
+
modalName: `${this.name}_about_modal`,
|
|
3291
|
+
},
|
|
3292
|
+
],
|
|
3293
|
+
},
|
|
3294
|
+
{
|
|
3295
|
+
name: `${this.name}_about_row`,
|
|
3296
|
+
component: 'ZdTag',
|
|
3297
|
+
tag: 'div',
|
|
3298
|
+
cssClass: 'zd-justify-center zd-px-6',
|
|
3299
|
+
isVisible: `{{TekUserInfoController_${this.componentId}.hasAboutImage}}`,
|
|
3300
|
+
children: [
|
|
3301
|
+
{
|
|
3302
|
+
name: `${this.name}_about_image`,
|
|
3303
|
+
component: 'ZdImage',
|
|
3304
|
+
width: '100%',
|
|
3305
|
+
src: this.aboutImage,
|
|
3306
|
+
},
|
|
3307
|
+
],
|
|
3308
|
+
},
|
|
3309
|
+
{
|
|
3310
|
+
name: `${this.name}_version_tabs`,
|
|
3311
|
+
cssClass: 'zd-pt-3',
|
|
3312
|
+
component: 'ZdTabs',
|
|
3313
|
+
tabs: [
|
|
3314
|
+
{
|
|
3315
|
+
name: `${this.name}_version_frontend_tab`,
|
|
3316
|
+
tabTitle: 'Frontend',
|
|
3317
|
+
children: this.getVersionTree('frontend'),
|
|
3318
|
+
},
|
|
3319
|
+
{
|
|
3320
|
+
name: `${this.name}_version_backend_tab`,
|
|
3321
|
+
tabTitle: 'Backend',
|
|
3322
|
+
children: this.getVersionTree('backend'),
|
|
3323
|
+
},
|
|
3324
|
+
{
|
|
3325
|
+
name: `${this.name}_version_modules_tab`,
|
|
3326
|
+
tabTitle: 'Modules',
|
|
3327
|
+
children: this.getVersionTree('modules'),
|
|
3328
|
+
},
|
|
3329
|
+
],
|
|
3330
|
+
},
|
|
3331
|
+
],
|
|
3332
|
+
});
|
|
3333
|
+
}
|
|
3334
|
+
this.aboutModal.show();
|
|
3335
|
+
}
|
|
3336
|
+
getVersionTree(tab) {
|
|
3337
|
+
if (!this.versionInfo)
|
|
3338
|
+
return [];
|
|
3339
|
+
const main = {
|
|
3340
|
+
name: `${this.name}_version_${tab}_main`,
|
|
3341
|
+
component: 'ZdText',
|
|
3342
|
+
text: `{{TekUserInfoController_${this.componentId}.mainVersion}}`,
|
|
3343
|
+
};
|
|
3344
|
+
const itemsComponent = {
|
|
3345
|
+
name: `${this.name}_version_${tab}`,
|
|
3346
|
+
component: 'ZdText',
|
|
3347
|
+
cssClass: 'zd-pl-4',
|
|
3348
|
+
text: `{{TekUserInfoController_${this.componentId}.${tab}Items}}`,
|
|
3349
|
+
};
|
|
3350
|
+
return [main, itemsComponent];
|
|
3351
|
+
}
|
|
3352
|
+
onReportClick() {
|
|
3353
|
+
if (!this.reportModal) {
|
|
3354
|
+
this.reportModal = ModalService.create({
|
|
3355
|
+
name: `${this.name}_report_modal`,
|
|
3356
|
+
children: [
|
|
3357
|
+
{
|
|
3358
|
+
name: `${this.name}_report_header`,
|
|
3359
|
+
component: 'ZdHeader',
|
|
3360
|
+
color: 'transparent',
|
|
3361
|
+
padless: true,
|
|
3362
|
+
elevation: 0,
|
|
3363
|
+
leftSlot: [
|
|
3364
|
+
{
|
|
3365
|
+
name: `${this.name}_report_title`,
|
|
3366
|
+
component: 'ZdText',
|
|
3367
|
+
text: 'TEKUSERINFO_REPORT_ERROR',
|
|
3368
|
+
cssClass: 'zd-theme-font-title',
|
|
3369
|
+
},
|
|
3370
|
+
],
|
|
3371
|
+
rightSlot: [
|
|
3372
|
+
{
|
|
3373
|
+
name: `${this.name}_report_close_button`,
|
|
3374
|
+
component: 'ZdModalCloseButton',
|
|
3375
|
+
small: true,
|
|
3376
|
+
modalName: `${this.name}_report_modal`,
|
|
3377
|
+
},
|
|
3378
|
+
],
|
|
3379
|
+
},
|
|
3380
|
+
{
|
|
3381
|
+
name: `${this.name}_report_form`,
|
|
3382
|
+
component: 'ZdForm',
|
|
3383
|
+
cssClass: 'zd-pt-4',
|
|
3384
|
+
children: [
|
|
3385
|
+
{
|
|
3386
|
+
name: 'report_email',
|
|
3387
|
+
component: 'ZdTextInput',
|
|
3388
|
+
label: 'E-mail',
|
|
3389
|
+
grid: {
|
|
3390
|
+
cols: '12',
|
|
3391
|
+
},
|
|
3392
|
+
value: `{{TekUserInfoController_${this.componentId}.defaultEmail}}`,
|
|
3393
|
+
readonly: `{{TekUserInfoController_${this.componentId}.hasDefaultEmail}}`,
|
|
3394
|
+
validations: {
|
|
3395
|
+
required: {},
|
|
3396
|
+
email: {},
|
|
3397
|
+
},
|
|
3398
|
+
},
|
|
3399
|
+
{
|
|
3400
|
+
name: 'report_cc',
|
|
3401
|
+
component: 'ZdTextInput',
|
|
3402
|
+
label: 'CC',
|
|
3403
|
+
placeholder: 'TEKUSERINFO_EMAIL_PLACEHOLDER',
|
|
3404
|
+
grid: {
|
|
3405
|
+
cols: '12',
|
|
3406
|
+
},
|
|
3407
|
+
},
|
|
3408
|
+
{
|
|
3409
|
+
name: 'report_type',
|
|
3410
|
+
component: 'ZdSelect',
|
|
3411
|
+
label: 'TEKUSERINFO_TYPE',
|
|
3412
|
+
dataValue: 'value',
|
|
3413
|
+
dataText: 'text',
|
|
3414
|
+
datasource: {
|
|
3415
|
+
uniqueKey: 'value',
|
|
3416
|
+
translate: true,
|
|
3417
|
+
data: [
|
|
3418
|
+
{ value: '0', text: 'TEKUSERINFO_ERROR' },
|
|
3419
|
+
{ value: '1', text: 'TEKUSERINFO_IMPROVEMENT' },
|
|
3420
|
+
],
|
|
3421
|
+
},
|
|
3422
|
+
grid: {
|
|
3423
|
+
cols: '12',
|
|
3424
|
+
},
|
|
3425
|
+
validations: {
|
|
3426
|
+
required: {},
|
|
3427
|
+
},
|
|
3428
|
+
},
|
|
3429
|
+
{
|
|
3430
|
+
name: 'report_description',
|
|
3431
|
+
component: 'ZdTextarea',
|
|
3432
|
+
label: 'TEKUSERINFO_DESCRIPTION',
|
|
3433
|
+
grid: {
|
|
3434
|
+
cols: '12',
|
|
3435
|
+
},
|
|
3436
|
+
validations: {
|
|
3437
|
+
required: {},
|
|
3438
|
+
},
|
|
3439
|
+
},
|
|
3440
|
+
],
|
|
3441
|
+
},
|
|
3442
|
+
{
|
|
3443
|
+
name: `${this.name}_report_footer`,
|
|
3444
|
+
component: 'ZdFooter',
|
|
3445
|
+
color: 'transparent',
|
|
3446
|
+
padless: true,
|
|
3447
|
+
rightSlot: [
|
|
3448
|
+
{
|
|
3449
|
+
name: `${this.name}_report_cancel`,
|
|
3450
|
+
component: 'ZdButton',
|
|
3451
|
+
label: 'TEKUSERINFO_CANCEL',
|
|
3452
|
+
outline: true,
|
|
3453
|
+
events: {
|
|
3454
|
+
click: () => { var _a; (_a = this.reportModal) === null || _a === void 0 ? void 0 : _a.hide(); },
|
|
3455
|
+
},
|
|
3456
|
+
},
|
|
3457
|
+
{
|
|
3458
|
+
name: `${this.name}_report_send`,
|
|
3459
|
+
component: 'ZdButton',
|
|
3460
|
+
label: 'TEKUSERINFO_SEND',
|
|
3461
|
+
events: {
|
|
3462
|
+
click: (args) => this.onSendReport(args),
|
|
3463
|
+
},
|
|
3464
|
+
},
|
|
3465
|
+
],
|
|
3466
|
+
},
|
|
3467
|
+
],
|
|
3468
|
+
});
|
|
3469
|
+
}
|
|
3470
|
+
this.reportModal.show();
|
|
3471
|
+
}
|
|
3472
|
+
onSendReport({ event, element }) {
|
|
3473
|
+
if (!this.reportModal)
|
|
3474
|
+
return;
|
|
3475
|
+
const form = Metadata.getInstance(`${this.name}_report_form`);
|
|
3476
|
+
if (!form.validate())
|
|
3477
|
+
return;
|
|
3478
|
+
this.callEvent('onSendReport', {
|
|
3479
|
+
event, element, component: this, form,
|
|
3480
|
+
});
|
|
3481
|
+
this.reportModal.hide();
|
|
3482
|
+
}
|
|
3483
|
+
onCreated() {
|
|
3484
|
+
super.onCreated();
|
|
3485
|
+
Loader.addController(`TekUserInfoController_${this.componentId}`, new TekUserInfoController(this));
|
|
3486
|
+
this.bottomSlot = this.propBottomSlot ? this.propBottomSlot : this.getBottomSlot();
|
|
3487
|
+
}
|
|
3488
|
+
onMounted(element) {
|
|
3489
|
+
const _super = Object.create(null, {
|
|
3490
|
+
onMounted: { get: () => super.onMounted }
|
|
3491
|
+
});
|
|
3492
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
3493
|
+
_super.onMounted.call(this, element);
|
|
3494
|
+
if (this.versionUrl) {
|
|
3495
|
+
const res = yield Http.get(this.versionUrl);
|
|
3496
|
+
this.versionInfo = res.data.versionInfo;
|
|
3497
|
+
}
|
|
3498
|
+
});
|
|
3499
|
+
}
|
|
3500
|
+
}
|
|
3501
|
+
Messages.add({
|
|
3502
|
+
'pt-BR': {
|
|
3503
|
+
translation: {
|
|
3504
|
+
TEKUSERINFO_ABOUT: 'Sobre',
|
|
3505
|
+
TEKUSERINFO_REPORT_ERROR: 'Reportar Erro',
|
|
3506
|
+
TEKUSERINFO_EMAIL_PLACEHOLDER: 'Separe e-mails usando ";"',
|
|
3507
|
+
TEKUSERINFO_TYPE: 'Tipo',
|
|
3508
|
+
TEKUSERINFO_ERROR: 'Erro',
|
|
3509
|
+
TEKUSERINFO_IMPROVEMENT: 'Melhoria',
|
|
3510
|
+
TEKUSERINFO_DESCRIPTION: 'Descrição',
|
|
3511
|
+
TEKUSERINFO_CANCEL: 'Cancelar',
|
|
3512
|
+
TEKUSERINFO_SEND: 'Enviar',
|
|
3513
|
+
},
|
|
3514
|
+
},
|
|
3515
|
+
'en-US': {
|
|
3516
|
+
translation: {
|
|
3517
|
+
TEKUSERINFO_ABOUT: 'About',
|
|
3518
|
+
TEKUSERINFO_REPORT_ERROR: 'Report Bug',
|
|
3519
|
+
TEKUSERINFO_EMAIL_PLACEHOLDER: 'Separate e-mails using ";"',
|
|
3520
|
+
TEKUSERINFO_TYPE: 'Type',
|
|
3521
|
+
TEKUSERINFO_ERROR: 'Bug',
|
|
3522
|
+
TEKUSERINFO_IMPROVEMENT: 'Improvement',
|
|
3523
|
+
TEKUSERINFO_DESCRIPTION: 'Description',
|
|
3524
|
+
TEKUSERINFO_CANCEL: 'Cancel',
|
|
3525
|
+
TEKUSERINFO_SEND: 'Send',
|
|
3526
|
+
},
|
|
3527
|
+
},
|
|
3528
|
+
'es-ES': {
|
|
3529
|
+
translation: {
|
|
3530
|
+
TEKUSERINFO_ABOUT: 'Sobre',
|
|
3531
|
+
TEKUSERINFO_REPORT_ERROR: 'Reportar Error',
|
|
3532
|
+
TEKUSERINFO_EMAIL_PLACEHOLDER: 'Separar e-mails usando ";"',
|
|
3533
|
+
TEKUSERINFO_TYPE: 'Tipo',
|
|
3534
|
+
TEKUSERINFO_ERROR: 'Error',
|
|
3535
|
+
TEKUSERINFO_IMPROVEMENT: 'Mejora',
|
|
3536
|
+
TEKUSERINFO_DESCRIPTION: 'Descripción',
|
|
3537
|
+
TEKUSERINFO_CANCEL: 'Cancelar',
|
|
3538
|
+
TEKUSERINFO_SEND: 'Enviar',
|
|
3539
|
+
},
|
|
3540
|
+
},
|
|
3541
|
+
});
|
|
3542
|
+
|
|
3543
|
+
class TekUserInfoList extends List {
|
|
3544
|
+
constructor(props) {
|
|
3545
|
+
super(props);
|
|
3546
|
+
/**
|
|
3547
|
+
* Name of the user info component
|
|
3548
|
+
*/
|
|
3549
|
+
this.parentName = '';
|
|
3550
|
+
this.dense = true;
|
|
3551
|
+
this.parentName = props.parentName || '';
|
|
3552
|
+
this.items = this.getItems();
|
|
3553
|
+
}
|
|
3554
|
+
getItems() {
|
|
3555
|
+
const parent = this.parentName ? Metadata.getInstance(this.parentName) : this.parent;
|
|
3556
|
+
if (!(parent instanceof TekUserInfo)) {
|
|
3557
|
+
throw Error(`Could not find the TekUserInfo component associated with ${this.name} TekUserInfoList`);
|
|
3558
|
+
}
|
|
3559
|
+
return [
|
|
3560
|
+
{
|
|
3561
|
+
name: `${parent.name}_version`,
|
|
3562
|
+
component: 'ZdListItem',
|
|
3563
|
+
title: `{{TekUserInfoController_${parent.componentId}.name}}`,
|
|
3564
|
+
subtitle: `{{TekUserInfoController_${parent.componentId}.version}}`,
|
|
3565
|
+
cssClass: 'zd-px-2',
|
|
3566
|
+
},
|
|
3567
|
+
{
|
|
3568
|
+
name: `${parent.name}_about`,
|
|
3569
|
+
component: 'ZdListItem',
|
|
3570
|
+
title: 'TEKUSERINFO_ABOUT',
|
|
3571
|
+
prependIcon: 'infoOutline',
|
|
3572
|
+
cssClass: 'zd-px-2',
|
|
3573
|
+
events: {
|
|
3574
|
+
click: () => parent.onAboutClick(),
|
|
3575
|
+
},
|
|
3576
|
+
},
|
|
3577
|
+
{
|
|
3578
|
+
name: `${parent.name}_report`,
|
|
3579
|
+
component: 'ZdListItem',
|
|
3580
|
+
title: 'TEKUSERINFO_REPORT_ERROR',
|
|
3581
|
+
prependIcon: 'mdi-ladybug',
|
|
3582
|
+
cssClass: 'zd-px-2',
|
|
3583
|
+
events: {
|
|
3584
|
+
click: () => parent.onReportClick(),
|
|
3585
|
+
},
|
|
3586
|
+
},
|
|
3587
|
+
];
|
|
3588
|
+
}
|
|
3589
|
+
}
|
|
3590
|
+
|
|
3281
3591
|
Messages.add({
|
|
3282
3592
|
'pt-BR': {
|
|
3283
3593
|
translation: {
|
|
@@ -3326,4 +3636,4 @@ Messages.add({
|
|
|
3326
3636
|
},
|
|
3327
3637
|
});
|
|
3328
3638
|
|
|
3329
|
-
export { BreadcrumbHeader, CardTitle, CrudAddButton, CrudButton, CrudCancelButton, CrudDeleteButton, CrudForm, CrudSaveButton, DynamicFilterOperations, DynamicFilterRelations, Image, IterableCarousel, IterableComponentRender, Loading, Notifications, ProductCard, TekFilterHelper, TekGrid, TekGridColumn, TekGridColumnsButton, TekGridLayoutOptions, TekMemoryDatasource, TekRestDatasource, TekTreeGrid, columnAggregationValues };
|
|
3639
|
+
export { BreadcrumbHeader, CardTitle, CrudAddButton, CrudButton, CrudCancelButton, CrudDeleteButton, CrudForm, CrudSaveButton, DynamicFilterOperations, DynamicFilterRelations, Image, IterableCarousel, IterableComponentRender, Loading, Notifications, ProductCard, TekFilterHelper, TekGrid, TekGridColumn, TekGridColumnsButton, TekGridLayoutOptions, TekMemoryDatasource, TekRestDatasource, TekTreeGrid, TekUserInfo, TekUserInfoList, columnAggregationValues };
|