@mediusinc/mng-commons 2.3.1 → 2.4.0-rc.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.
Files changed (26) hide show
  1. package/assets/i18n/en.json +3 -1
  2. package/assets/i18n/sl.json +3 -1
  3. package/esm2020/lib/api/utils/medius-rest.util.mjs +58 -36
  4. package/esm2020/lib/components/action/editor/action-editor.component.mjs +5 -3
  5. package/esm2020/lib/components/form/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.mjs +7 -1
  6. package/esm2020/lib/components/form/formly/formly.config.mjs +31 -3
  7. package/esm2020/lib/components/tableview/table/table.component.mjs +8 -8
  8. package/esm2020/lib/descriptors/editor/field.descriptor.mjs +8 -1
  9. package/esm2020/lib/descriptors/filter/filter.descriptor.mjs +3 -3
  10. package/esm2020/lib/provide-commons.mjs +4 -2
  11. package/esm2020/lib/services/commons.service.mjs +6 -4
  12. package/esm2020/lib/services/providers/formly-config.provider.mjs +3 -3
  13. package/esm2020/lib/validators/field.validator.mjs +33 -0
  14. package/esm2020/lib/validators/index.mjs +2 -0
  15. package/fesm2015/mediusinc-mng-commons.mjs +156 -54
  16. package/fesm2015/mediusinc-mng-commons.mjs.map +1 -1
  17. package/fesm2020/mediusinc-mng-commons.mjs +153 -53
  18. package/fesm2020/mediusinc-mng-commons.mjs.map +1 -1
  19. package/lib/api/utils/medius-rest.util.d.ts +19 -8
  20. package/lib/components/form/formly/formly.config.d.ts +4 -1
  21. package/lib/components/tableview/table/table.component.d.ts +1 -2
  22. package/lib/descriptors/filter/filter.descriptor.d.ts +4 -4
  23. package/lib/services/providers/formly-config.provider.d.ts +2 -1
  24. package/lib/validators/field.validator.d.ts +3 -0
  25. package/lib/validators/index.d.ts +1 -0
  26. package/package.json +2 -2
@@ -1027,7 +1027,43 @@ var TableDynamicColumnsModeEnum;
1027
1027
  })(TableDynamicColumnsModeEnum || (TableDynamicColumnsModeEnum = {}));
1028
1028
 
1029
1029
  class MediusRestUtil {
1030
- static fromAngularQueryParamsToMediusQueryParams(params, filterDescriptors, defaultItemsPerPage = 10, defaultOffset = 0) {
1030
+ constructor() {
1031
+ // first value is from primeNG, second is for use in query params
1032
+ this.matchModeMapping = [
1033
+ [FilterMatchMode.CONTAINS, 'c', MediusFilterMatchType.Contains, null],
1034
+ [FilterMatchMode.ENDS_WITH, 'ew', MediusFilterMatchType.EndsWith, null],
1035
+ [FilterMatchMode.EQUALS, 'eq', MediusFilterMatchType.Equals, null],
1036
+ [FilterMatchMode.GREATER_THAN, 'gt', MediusFilterMatchType.GreaterThan, null],
1037
+ [FilterMatchMode.LESS_THAN, 'lt', MediusFilterMatchType.SmallerThan, null],
1038
+ [FilterMatchMode.STARTS_WITH, 'sw', MediusFilterMatchType.StartsWith, null],
1039
+ [FilterMatchMode.IN, 'in', MediusFilterMatchType.In, null],
1040
+ [FilterMatchMode.NOT_EQUALS, 'neq', MediusFilterMatchType.NotEquals, null],
1041
+ [FilterMatchMode.BETWEEN, 'ft', MediusFilterMatchType.FromTo, FilterTypeEnum.Date],
1042
+ [FilterMatchMode.DATE_IS, 'dteq', MediusFilterMatchType.Equals, FilterTypeEnum.Date],
1043
+ [FilterMatchMode.DATE_BEFORE, 'lt', MediusFilterMatchType.SmallerThan, FilterTypeEnum.Date],
1044
+ [FilterMatchMode.DATE_AFTER, 'gt', MediusFilterMatchType.GreaterThan, FilterTypeEnum.Date],
1045
+ [FilterMatchMode.DATE_IS_NOT, 'neq', MediusFilterMatchType.NotEquals, FilterTypeEnum.Date]
1046
+ ];
1047
+ this.dateTimeInUtc = true;
1048
+ this.dateTimeWithTimezone = true;
1049
+ this.dateTimeWithMillis = true;
1050
+ // empty
1051
+ }
1052
+ static get() {
1053
+ return MediusRestUtil._instance;
1054
+ }
1055
+ configure(config) {
1056
+ if (config.dateTimeInUtc !== undefined) {
1057
+ this.dateTimeInUtc = config.dateTimeInUtc;
1058
+ }
1059
+ if (config.dateTimeWithTimezone !== undefined) {
1060
+ this.dateTimeWithTimezone = config.dateTimeWithTimezone;
1061
+ }
1062
+ if (config.dateTimeWithMillis !== undefined) {
1063
+ this.dateTimeWithMillis = config.dateTimeWithMillis;
1064
+ }
1065
+ }
1066
+ fromAngularQueryParamsToMediusQueryParams(params, filterDescriptors, defaultItemsPerPage = 10, defaultOffset = 0) {
1031
1067
  const offset = params['first'] ? parseInt(params['first']) : defaultOffset;
1032
1068
  const itemsPerPage = params['rows'] ? parseInt(params['rows']) : defaultItemsPerPage;
1033
1069
  const mediusParamsBuilder = MediusQueryParamBuilder.create(itemsPerPage, offset);
@@ -1062,15 +1098,15 @@ class MediusRestUtil {
1062
1098
  value = value[0];
1063
1099
  }
1064
1100
  const filterDescriptor = filterDescriptors.find(f => f.property === field);
1065
- const matchMode = MediusRestUtil.getMapping(operator, filterDescriptor === null || filterDescriptor === void 0 ? void 0 : filterDescriptor.filterType, 1);
1101
+ const matchMode = this.getMapping(operator, filterDescriptor === null || filterDescriptor === void 0 ? void 0 : filterDescriptor.filterType, 1);
1066
1102
  if (matchMode && filterDescriptor) {
1067
- mediusParamsBuilder.withFilter(filterDescriptor.property, value, valueTo, MediusRestUtil.getMediusFilterMatchTypeFromPrimeMatchMode(matchMode[0]));
1103
+ mediusParamsBuilder.withFilter(filterDescriptor.property, value, valueTo, this.getMediusFilterMatchTypeFromPrimeMatchMode(matchMode[0]));
1068
1104
  }
1069
1105
  }
1070
1106
  }
1071
1107
  return mediusParamsBuilder.build();
1072
1108
  }
1073
- static fromPrimeLazyLoadEventToAngularQueryParams(event) {
1109
+ fromPrimeLazyLoadEventToAngularQueryParams(event) {
1074
1110
  var _a, _b;
1075
1111
  const params = {
1076
1112
  first: null,
@@ -1092,7 +1128,7 @@ class MediusRestUtil {
1092
1128
  for (const field in event.filters) {
1093
1129
  const primeOperator = event.filters[field].matchMode;
1094
1130
  let value = event.filters[field].value;
1095
- const operatorMapping = primeOperator ? MediusRestUtil.getMapping(primeOperator, undefined, 0) : undefined;
1131
+ const operatorMapping = primeOperator ? this.getMapping(primeOperator, undefined, 0) : undefined;
1096
1132
  if (operatorMapping && typeof value !== 'undefined' && value !== null) {
1097
1133
  let doAddFilter = false;
1098
1134
  if (typeof value === 'string' && value.length > 0) {
@@ -1134,8 +1170,8 @@ class MediusRestUtil {
1134
1170
  }
1135
1171
  return params;
1136
1172
  }
1137
- static modifyFilterProperties(mediusQueryParams, filterDescriptors) {
1138
- var _a, _b;
1173
+ modifyFilterProperties(mediusQueryParams, filterDescriptors) {
1174
+ var _a, _b, _c, _d, _e, _f;
1139
1175
  for (const filterParam of (_a = mediusQueryParams.filterParams) !== null && _a !== void 0 ? _a : []) {
1140
1176
  const filterDescriptor = filterDescriptors.find(f => f.property === filterParam.property);
1141
1177
  filterParam.property = (_b = filterDescriptor === null || filterDescriptor === void 0 ? void 0 : filterDescriptor.filterProperty) !== null && _b !== void 0 ? _b : filterParam.property;
@@ -1161,24 +1197,25 @@ class MediusRestUtil {
1161
1197
  // transform dates to correct iso string
1162
1198
  if (typeof filterParam.filterValue !== 'undefined') {
1163
1199
  if (Array.isArray(filterParam.filterValue)) {
1164
- filterParam.filterValue = filterParam.filterValue.map(v => DateUtil.toIsoString(v, filterDescriptor.datePickerValueInUtc, filterDescriptor.datePickerValueWithTimezone));
1200
+ filterParam.filterValue = filterParam.filterValue.map(v => { var _a, _b; return DateUtil.toIsoString(v, (_a = filterDescriptor.datePickerValueInUtc) !== null && _a !== void 0 ? _a : this.dateTimeInUtc, (_b = filterDescriptor.datePickerValueWithTimezone) !== null && _b !== void 0 ? _b : this.dateTimeWithTimezone, this.dateTimeWithMillis, !filterDescriptor.datePickerShowTime); });
1165
1201
  }
1166
1202
  else {
1167
- filterParam.filterValue = DateUtil.toIsoString(filterParam.filterValue, filterDescriptor.datePickerValueInUtc, filterDescriptor.datePickerValueWithTimezone);
1203
+ filterDescriptor.datePickerValueInUtc;
1204
+ filterParam.filterValue = DateUtil.toIsoString(filterParam.filterValue, (_c = filterDescriptor.datePickerValueInUtc) !== null && _c !== void 0 ? _c : this.dateTimeInUtc, (_d = filterDescriptor.datePickerValueWithTimezone) !== null && _d !== void 0 ? _d : this.dateTimeWithTimezone, this.dateTimeWithMillis, !filterDescriptor.datePickerShowTime);
1168
1205
  }
1169
1206
  }
1170
1207
  if (typeof filterParam.filterValueTo !== 'undefined') {
1171
1208
  if (Array.isArray(filterParam.filterValueTo)) {
1172
- filterParam.filterValueTo = filterParam.filterValueTo.map(v => DateUtil.toIsoString(v, filterDescriptor.datePickerValueInUtc, filterDescriptor.datePickerValueWithTimezone));
1209
+ filterParam.filterValueTo = filterParam.filterValueTo.map(v => { var _a, _b; return DateUtil.toIsoString(v, (_a = filterDescriptor.datePickerValueInUtc) !== null && _a !== void 0 ? _a : this.dateTimeInUtc, (_b = filterDescriptor.datePickerValueWithTimezone) !== null && _b !== void 0 ? _b : this.dateTimeWithTimezone, this.dateTimeWithMillis, !filterDescriptor.datePickerShowTime); });
1173
1210
  }
1174
1211
  else {
1175
- filterParam.filterValueTo = DateUtil.toIsoString(filterParam.filterValueTo, filterDescriptor.datePickerValueInUtc, filterDescriptor.datePickerValueWithTimezone);
1212
+ filterParam.filterValueTo = DateUtil.toIsoString(filterParam.filterValueTo, (_e = filterDescriptor.datePickerValueInUtc) !== null && _e !== void 0 ? _e : this.dateTimeInUtc, (_f = filterDescriptor.datePickerValueWithTimezone) !== null && _f !== void 0 ? _f : this.dateTimeWithTimezone, this.dateTimeWithMillis, !filterDescriptor.datePickerShowTime);
1176
1213
  }
1177
1214
  }
1178
1215
  }
1179
1216
  }
1180
1217
  }
1181
- static fromPrimeLazyLoadEventToMediusQueryParams(event) {
1218
+ fromPrimeLazyLoadEventToMediusQueryParams(event) {
1182
1219
  const queryParamBuilder = MediusQueryParamBuilder.create(event.rows, event.first);
1183
1220
  // apply sorting
1184
1221
  if (event.multiSortMeta) {
@@ -1189,28 +1226,28 @@ class MediusRestUtil {
1189
1226
  for (const key of Object.keys(event.filters)) {
1190
1227
  const filterEvent = event.filters[key];
1191
1228
  if (Array.isArray(filterEvent)) {
1192
- filterEvent.filter(e => e.value).forEach(e => MediusRestUtil.addMediusFilterFromPrimeFilterMetadata(queryParamBuilder, key, e));
1229
+ filterEvent.filter(e => e.value).forEach(e => this.addMediusFilterFromPrimeFilterMetadata(queryParamBuilder, key, e));
1193
1230
  }
1194
1231
  else if (typeof filterEvent === 'object') {
1195
1232
  if (filterEvent.value) {
1196
- MediusRestUtil.addMediusFilterFromPrimeFilterMetadata(queryParamBuilder, key, filterEvent);
1233
+ this.addMediusFilterFromPrimeFilterMetadata(queryParamBuilder, key, filterEvent);
1197
1234
  }
1198
1235
  }
1199
1236
  }
1200
1237
  }
1201
1238
  return queryParamBuilder.build();
1202
1239
  }
1203
- static addMediusFilterFromPrimeFilterMetadata(queryParamBuilder, property, filterMetadata) {
1240
+ addMediusFilterFromPrimeFilterMetadata(queryParamBuilder, property, filterMetadata) {
1204
1241
  var _a;
1205
- const matchType = MediusRestUtil.getMediusFilterMatchTypeFromPrimeMatchMode((_a = filterMetadata.matchMode) !== null && _a !== void 0 ? _a : 'equals');
1242
+ const matchType = this.getMediusFilterMatchTypeFromPrimeMatchMode((_a = filterMetadata.matchMode) !== null && _a !== void 0 ? _a : 'equals');
1206
1243
  queryParamBuilder.withFilter(property, filterMetadata.value, undefined, matchType);
1207
1244
  }
1208
- static getMediusFilterMatchTypeFromPrimeMatchMode(matchMode, dataType) {
1245
+ getMediusFilterMatchTypeFromPrimeMatchMode(matchMode, dataType) {
1209
1246
  var _a, _b;
1210
- return (_b = (_a = MediusRestUtil.getMapping(matchMode, dataType)) === null || _a === void 0 ? void 0 : _a[2]) !== null && _b !== void 0 ? _b : MediusFilterMatchType.Equals;
1247
+ return (_b = (_a = this.getMapping(matchMode, dataType)) === null || _a === void 0 ? void 0 : _a[2]) !== null && _b !== void 0 ? _b : MediusFilterMatchType.Equals;
1211
1248
  }
1212
- static getMapping(matchMode, dataType, idx = 0) {
1213
- const mappings = MediusRestUtil.matchModeMapping.filter(m => m[idx] === matchMode && (!dataType || !m[3] || dataType === m[3]));
1249
+ getMapping(matchMode, dataType, idx = 0) {
1250
+ const mappings = this.matchModeMapping.filter(m => m[idx] === matchMode && (!dataType || !m[3] || dataType === m[3]));
1214
1251
  if (mappings.length === 0) {
1215
1252
  return null;
1216
1253
  }
@@ -1222,22 +1259,7 @@ class MediusRestUtil {
1222
1259
  }
1223
1260
  }
1224
1261
  }
1225
- // first value is from primeNG, second is for use in query params
1226
- MediusRestUtil.matchModeMapping = [
1227
- [FilterMatchMode.CONTAINS, 'c', MediusFilterMatchType.Contains, null],
1228
- [FilterMatchMode.ENDS_WITH, 'ew', MediusFilterMatchType.EndsWith, null],
1229
- [FilterMatchMode.EQUALS, 'eq', MediusFilterMatchType.Equals, null],
1230
- [FilterMatchMode.GREATER_THAN, 'gt', MediusFilterMatchType.GreaterThan, null],
1231
- [FilterMatchMode.LESS_THAN, 'lt', MediusFilterMatchType.SmallerThan, null],
1232
- [FilterMatchMode.STARTS_WITH, 'sw', MediusFilterMatchType.StartsWith, null],
1233
- [FilterMatchMode.IN, 'in', MediusFilterMatchType.In, null],
1234
- [FilterMatchMode.NOT_EQUALS, 'neq', MediusFilterMatchType.NotEquals, null],
1235
- [FilterMatchMode.BETWEEN, 'ft', MediusFilterMatchType.FromTo, FilterTypeEnum.Date],
1236
- [FilterMatchMode.DATE_IS, 'dteq', MediusFilterMatchType.Equals, FilterTypeEnum.Date],
1237
- [FilterMatchMode.DATE_BEFORE, 'lt', MediusFilterMatchType.SmallerThan, FilterTypeEnum.Date],
1238
- [FilterMatchMode.DATE_AFTER, 'gt', MediusFilterMatchType.GreaterThan, FilterTypeEnum.Date],
1239
- [FilterMatchMode.DATE_IS_NOT, 'neq', MediusFilterMatchType.NotEquals, FilterTypeEnum.Date]
1240
- ];
1262
+ MediusRestUtil._instance = new MediusRestUtil();
1241
1263
 
1242
1264
  class MngFormEditorSubmitEvent {
1243
1265
  constructor(formItem) {
@@ -3320,11 +3342,13 @@ class MngCommonsService {
3320
3342
  this.setPageTitle();
3321
3343
  });
3322
3344
  // serialization
3323
- ObjectSerializer.get().configure({
3345
+ const dateSerializationConfig = {
3324
3346
  dateTimeInUtc: (_t = (_s = this.moduleConfig.serialization) === null || _s === void 0 ? void 0 : _s.dateTimeInUtc) !== null && _t !== void 0 ? _t : true,
3325
3347
  dateTimeWithTimezone: (_v = (_u = this.moduleConfig.serialization) === null || _u === void 0 ? void 0 : _u.dateTimeWithTimezone) !== null && _v !== void 0 ? _v : true,
3326
3348
  dateTimeWithMillis: (_x = (_w = this.moduleConfig.serialization) === null || _w === void 0 ? void 0 : _w.dateTimeWithMillis) !== null && _x !== void 0 ? _x : true
3327
- });
3349
+ };
3350
+ ObjectSerializer.get().configure(dateSerializationConfig);
3351
+ MediusRestUtil.get().configure(dateSerializationConfig);
3328
3352
  }
3329
3353
  // MENU actions
3330
3354
  menuChangeActiveKey(key) {
@@ -3793,6 +3817,39 @@ var ButtonStyleRoundedEnum;
3793
3817
  ButtonStyleRoundedEnum[ButtonStyleRoundedEnum["SQUARE"] = 2] = "SQUARE";
3794
3818
  })(ButtonStyleRoundedEnum || (ButtonStyleRoundedEnum = {}));
3795
3819
 
3820
+ const minDateValidator = (min) => {
3821
+ return (c) => {
3822
+ const date = c === null || c === void 0 ? void 0 : c.value;
3823
+ const valid = !date || date >= min;
3824
+ if (!valid) {
3825
+ const newErrors = Object.assign(Object.assign({}, c.errors), { minDate: true });
3826
+ c === null || c === void 0 ? void 0 : c.markAsDirty();
3827
+ c.setErrors(newErrors);
3828
+ return newErrors;
3829
+ }
3830
+ if (c === null || c === void 0 ? void 0 : c.hasError('minDate')) {
3831
+ c.setErrors(Object.assign(Object.assign({}, c.errors), { minDate: null }));
3832
+ }
3833
+ return null;
3834
+ };
3835
+ };
3836
+ const maxDateValidator = (max) => {
3837
+ return (c) => {
3838
+ const date = c === null || c === void 0 ? void 0 : c.value;
3839
+ const valid = !date || date <= max;
3840
+ if (!valid) {
3841
+ const newErrors = Object.assign(Object.assign({}, c.errors), { maxDate: true });
3842
+ c === null || c === void 0 ? void 0 : c.markAsDirty();
3843
+ c.setErrors(newErrors);
3844
+ return newErrors;
3845
+ }
3846
+ if (c === null || c === void 0 ? void 0 : c.hasError('maxDate')) {
3847
+ c.setErrors(Object.assign(Object.assign({}, c.errors), { maxDate: null }));
3848
+ }
3849
+ return null;
3850
+ };
3851
+ };
3852
+
3796
3853
  class FilterDescriptor {
3797
3854
  constructor(property) {
3798
3855
  this._filterType = FilterTypeEnum.String;
@@ -3800,8 +3857,8 @@ class FilterDescriptor {
3800
3857
  this._matchModes = null;
3801
3858
  this._numberUseGrouping = true;
3802
3859
  this._datePickerShowTime = false;
3803
- this._datePickerValueWithTimezone = false;
3804
- this._datePickerValueInUtc = false;
3860
+ this._datePickerValueWithTimezone = undefined;
3861
+ this._datePickerValueInUtc = undefined;
3805
3862
  this._className = '';
3806
3863
  this._columnClassName = '';
3807
3864
  this._columnWidth = null;
@@ -5851,6 +5908,12 @@ class FieldInputDescriptor extends AFieldDescriptor {
5851
5908
  this._datePickerMax = max;
5852
5909
  this._datePickerShowTime = showTime !== null && showTime !== void 0 ? showTime : false;
5853
5910
  this._datePickerShowSeconds = showSeconds !== null && showSeconds !== void 0 ? showSeconds : true;
5911
+ if (min != undefined) {
5912
+ this.withValidation('minDate', minDateValidator(min));
5913
+ }
5914
+ if (max !== undefined) {
5915
+ this.withValidation('maxDate', maxDateValidator(max));
5916
+ }
5854
5917
  return this;
5855
5918
  }
5856
5919
  asMask(mask, slotChar) {
@@ -10244,7 +10307,9 @@ class MngActionEditorComponent {
10244
10307
  if (this.dialogConfig) {
10245
10308
  requestAnimationFrame(() => {
10246
10309
  this.dialogConfig.header = t !== null && t !== void 0 ? t : undefined;
10247
- this.mngCommonsService.setPageTitle(t !== null && t !== void 0 ? t : undefined);
10310
+ if (this.action.activationTrigger === ActionActivationTriggerEnum.OnRoute) {
10311
+ this.mngCommonsService.setPageTitle(t !== null && t !== void 0 ? t : undefined);
10312
+ }
10248
10313
  });
10249
10314
  }
10250
10315
  });
@@ -11009,7 +11074,7 @@ class MngTableComponent {
11009
11074
  if (this.useQueryParams) {
11010
11075
  const rowParams = this.route.snapshot.queryParamMap.get('rows');
11011
11076
  const rows = rowParams ? parseInt(rowParams) : this.rows;
11012
- const mediusQueryParam = MediusRestUtil.fromAngularQueryParamsToMediusQueryParams(this.route.snapshot.queryParams, this.filterDescriptors, this.rows);
11077
+ const mediusQueryParam = MediusRestUtil.get().fromAngularQueryParamsToMediusQueryParams(this.route.snapshot.queryParams, this.filterDescriptors, this.rows);
11013
11078
  const event = {};
11014
11079
  event.multiSortMeta = this.createSortMeta(mediusQueryParam);
11015
11080
  event.filters = this.createFilterMeta(mediusQueryParam);
@@ -11019,7 +11084,7 @@ class MngTableComponent {
11019
11084
  .navigate([], {
11020
11085
  relativeTo: this.route,
11021
11086
  replaceUrl: true,
11022
- queryParams: MediusRestUtil.fromPrimeLazyLoadEventToAngularQueryParams(event)
11087
+ queryParams: MediusRestUtil.get().fromPrimeLazyLoadEventToAngularQueryParams(event)
11023
11088
  })
11024
11089
  .then(() => {
11025
11090
  this.initializeDataLoadingTriggers();
@@ -11087,12 +11152,12 @@ class MngTableComponent {
11087
11152
  this.router.navigate([], {
11088
11153
  relativeTo: this.route,
11089
11154
  replaceUrl: true,
11090
- queryParams: MediusRestUtil.fromPrimeLazyLoadEventToAngularQueryParams(event)
11155
+ queryParams: MediusRestUtil.get().fromPrimeLazyLoadEventToAngularQueryParams(event)
11091
11156
  });
11092
11157
  }
11093
11158
  }
11094
11159
  else {
11095
- const mediusQueryParams = event ? MediusRestUtil.fromPrimeLazyLoadEventToMediusQueryParams(event) : new MediusQueryParam();
11160
+ const mediusQueryParams = event ? MediusRestUtil.get().fromPrimeLazyLoadEventToMediusQueryParams(event) : new MediusQueryParam();
11096
11161
  this.loadTableWithDataProvider(mediusQueryParams);
11097
11162
  }
11098
11163
  }
@@ -11139,7 +11204,7 @@ class MngTableComponent {
11139
11204
  }
11140
11205
  this.dataProviderLatestQueryParam = queryParam;
11141
11206
  this.dataProviderLatestQueryParamVersion++;
11142
- MediusRestUtil.modifyFilterProperties(queryParam, this.filterDescriptors);
11207
+ MediusRestUtil.get().modifyFilterProperties(queryParam, this.filterDescriptors);
11143
11208
  this.dataProviderSubscription = (_b = this.dataProvider) === null || _b === void 0 ? void 0 : _b.getAll(queryParam, this.dataProviderService, ((_c = this.descriptor) === null || _c === void 0 ? void 0 : _c.isLocalized) ? (_d = this.mngCommonsService.appDataLanguage) !== null && _d !== void 0 ? _d : undefined : undefined).subscribe({
11144
11209
  next: res => {
11145
11210
  var _a, _b, _c;
@@ -11184,7 +11249,7 @@ class MngTableComponent {
11184
11249
  }
11185
11250
  }
11186
11251
  loadTableFromRouteUpdate(params) {
11187
- const mediusQueryParam = MediusRestUtil.fromAngularQueryParamsToMediusQueryParams(params, this.filterDescriptors, this.rows);
11252
+ const mediusQueryParam = MediusRestUtil.get().fromAngularQueryParamsToMediusQueryParams(params, this.filterDescriptors, this.rows);
11188
11253
  if (this.dataProviderLatestLazyLoadEventVersion < this.dataProviderLatestQueryParamVersion + 1) {
11189
11254
  // update only if new version from query params will be higher
11190
11255
  this.updatePrimeSortAndFilter(mediusQueryParam);
@@ -11259,7 +11324,7 @@ class MngTableComponent {
11259
11324
  (_c = params.filterParams) === null || _c === void 0 ? void 0 : _c.forEach(f => {
11260
11325
  var _a;
11261
11326
  const descriptor = this.filterDescriptors.find(fd => fd.filterProperty === f.property || fd.property === f.property);
11262
- const matchMode = f.filterMatchType && descriptor ? (_a = MediusRestUtil.getMapping(f.filterMatchType, descriptor.filterType, 2)) === null || _a === void 0 ? void 0 : _a[0] : MediusFilterMatchType.Equals;
11327
+ const matchMode = f.filterMatchType && descriptor ? (_a = MediusRestUtil.get().getMapping(f.filterMatchType, descriptor.filterType, 2)) === null || _a === void 0 ? void 0 : _a[0] : MediusFilterMatchType.Equals;
11263
11328
  if (descriptor && matchMode) {
11264
11329
  let filterValue = f.filterValue;
11265
11330
  if (descriptor.filterType === FilterTypeEnum.Date && typeof filterValue !== 'undefined') {
@@ -11942,6 +12007,8 @@ class MngFormlyFieldTableDialogFormComponent extends FieldType {
11942
12007
  this.formControl.markAsTouched();
11943
12008
  return of(ctx.parameters.item);
11944
12009
  })
12010
+ .withRunNotificationSuccess(undefined, undefined, false)
12011
+ .withRunNotificationError(undefined, undefined, false)
11945
12012
  .withIsVisibleFunction(() => { var _a; return of(!((_a = this.options) === null || _a === void 0 ? void 0 : _a.formState.disabled)); })
11946
12013
  .withIsEnabledFunction(() => this.isEnabled$);
11947
12014
  addAction.button.withLabel(null).withIcon('pi pi-plus');
@@ -11969,6 +12036,8 @@ class MngFormlyFieldTableDialogFormComponent extends FieldType {
11969
12036
  this.formControl.markAsTouched();
11970
12037
  return of(ctx.parameters.item);
11971
12038
  })
12039
+ .withRunNotificationSuccess(undefined, undefined, false)
12040
+ .withRunNotificationError(undefined, undefined, false)
11972
12041
  .withIsVisibleFunction(ctx => { var _a; return (this.hideActionsForRowWithDefaultLocalization(ctx) ? of(false) : of(!((_a = this.formControl) === null || _a === void 0 ? void 0 : _a.disabled))); })
11973
12042
  .withIsEnabledFunction(() => this.isEnabled$);
11974
12043
  editAction.button.withLabel(null).withIcon('pi pi-pencil');
@@ -12004,6 +12073,8 @@ class MngFormlyFieldTableDialogFormComponent extends FieldType {
12004
12073
  this.formControl.markAsTouched();
12005
12074
  return of(ctxItem);
12006
12075
  })
12076
+ .withRunNotificationSuccess(undefined, undefined, false)
12077
+ .withRunNotificationError(undefined, undefined, false)
12007
12078
  .withIsVisibleFunction(ctx => { var _a; return (this.hideActionsForRowWithDefaultLocalization(ctx) ? of(false) : of(!((_a = this.options) === null || _a === void 0 ? void 0 : _a.formState.disabled))); })
12008
12079
  .withIsEnabledFunction(() => this.isEnabled$);
12009
12080
  deleteAction.button.withLabel(null).withIcon('pi pi-trash');
@@ -13425,7 +13496,35 @@ function getEmailValidationMessage(translate) {
13425
13496
  return translate.instant('mngEditor.validation.email', { field: fieldName });
13426
13497
  };
13427
13498
  }
13428
- const getFormlyValidationMessages = (translate) => {
13499
+ function getMinDateValidationMessage(translate, datePipe) {
13500
+ return (error, field) => {
13501
+ var _a;
13502
+ const inputDescriptor = field.props.descriptor;
13503
+ const minDate = inputDescriptor.datePickerMin;
13504
+ if (!minDate)
13505
+ return '';
13506
+ let dateString = (_a = datePipe.transform(minDate, 'dd. MM. yyyy')) !== null && _a !== void 0 ? _a : '';
13507
+ if (inputDescriptor.datePickerShowTime) {
13508
+ dateString += datePipe.transform(minDate, ' HH:mm:ss');
13509
+ }
13510
+ return translate.instant('mngEditor.validation.minDate', { min: dateString });
13511
+ };
13512
+ }
13513
+ function getMaxDateValidationMessage(translate, datePipe) {
13514
+ return (error, field) => {
13515
+ var _a;
13516
+ const inputDescriptor = field.props.descriptor;
13517
+ const maxDate = inputDescriptor.datePickerMax;
13518
+ if (!maxDate)
13519
+ return '';
13520
+ let dateString = (_a = datePipe.transform(maxDate, 'dd. MM. yyyy')) !== null && _a !== void 0 ? _a : '';
13521
+ if (inputDescriptor.datePickerShowTime) {
13522
+ dateString += datePipe.transform(maxDate, ' HH:mm:ss');
13523
+ }
13524
+ return translate.instant('mngEditor.validation.maxDate', { max: dateString });
13525
+ };
13526
+ }
13527
+ const getFormlyValidationMessages = (translate, datePipe) => {
13429
13528
  return [
13430
13529
  { name: 'required', message: getRequiredValidationMessage(translate) },
13431
13530
  { name: 'minLength', message: getMinLengthValidationMessage(translate) },
@@ -13433,11 +13532,13 @@ const getFormlyValidationMessages = (translate) => {
13433
13532
  { name: 'min', message: getMinValidationMessage(translate) },
13434
13533
  { name: 'max', message: getMaxValidationMessage(translate) },
13435
13534
  { name: 'pattern', message: getTextPatternValidationMessage(translate) },
13436
- { name: 'email', message: getEmailValidationMessage(translate) }
13535
+ { name: 'email', message: getEmailValidationMessage(translate) },
13536
+ { name: 'minDate', message: getMinDateValidationMessage(translate, datePipe) },
13537
+ { name: 'maxDate', message: getMaxDateValidationMessage(translate, datePipe) }
13437
13538
  ];
13438
13539
  };
13439
13540
 
13440
- function mngFormlyConfigProvider(translate, moduleConfig = {}) {
13541
+ function mngFormlyConfigProvider(translate, datePipe, moduleConfig = {}) {
13441
13542
  var _a, _b, _c, _d, _e;
13442
13543
  const merge = (_b = (_a = moduleConfig.formly) === null || _a === void 0 ? void 0 : _a.merge) !== null && _b !== void 0 ? _b : true;
13443
13544
  let types = formlyTypesConfig;
@@ -13454,7 +13555,7 @@ function mngFormlyConfigProvider(translate, moduleConfig = {}) {
13454
13555
  }
13455
13556
  wrappers = [...wrappers, ...moduleConfig.formly.wrappers];
13456
13557
  }
13457
- let validationMessages = getFormlyValidationMessages(translate);
13558
+ let validationMessages = getFormlyValidationMessages(translate, datePipe);
13458
13559
  if (typeof ((_e = moduleConfig.formly) === null || _e === void 0 ? void 0 : _e.getValidationMessages) === 'function') {
13459
13560
  if (!merge) {
13460
13561
  validationMessages = [];
@@ -13486,6 +13587,7 @@ function provideMngCommons(config) {
13486
13587
  MngEnumeratePipe,
13487
13588
  MngEnumerateAsyncPipe,
13488
13589
  MngLocaleDefaultRowClassPipe,
13590
+ DatePipe,
13489
13591
  {
13490
13592
  provide: MNG_MODULE_CONFIG_IT,
13491
13593
  useValue: config
@@ -13515,7 +13617,7 @@ function provideMngCommons(config) {
13515
13617
  provide: FORMLY_CONFIG,
13516
13618
  multi: true,
13517
13619
  useFactory: mngFormlyConfigProvider,
13518
- deps: [TranslateService, MNG_MODULE_CONFIG_IT]
13620
+ deps: [TranslateService, DatePipe, MNG_MODULE_CONFIG_IT]
13519
13621
  },
13520
13622
  {
13521
13623
  provide: ACTION_EDITOR_DIALOG_COMPONENT_SETTING,
@@ -14674,5 +14776,5 @@ function EnumName(typeName) {
14674
14776
  * Generated bundle index. Do not edit.
14675
14777
  */
14676
14778
 
14677
- export { ACTION_EDITOR_DIALOG_COMPONENT_SETTING, AFieldDescriptor, AFieldGroupDescriptor, AGenericFieldDescriptor, AMngApiService, AMngBaseApiService, AMngCrudApiService, AMngGetAllApiService, AMngTableviewRouteComponent, APermissions, ActionActivationTriggerEnum, ActionButtonDescriptor, ActionConfirmationDialogDescriptor, ActionContext, ActionContextValidation, ActionDataProviderUtil, ActionDeleteDescriptor, ActionDescriptor, ActionEditorAddDescriptor, ActionEditorDescriptor, ActionEditorDetailsDescriptor, ActionEditorEditDescriptor, ActionEditorSubmitDescriptor, ActionEditorSubmitTypeEnum, ActionError, ActionInstance, ActionInstanceStateEnum, ActionLinkDescriptor, ActionParameters, ActionPositionEnum, ActionSimpleDescriptor, ActionTypeEnum, AuthorizationTypeEnum, AuthorizationUtil, ButtonStyleBuilder, ButtonStyleRoundedEnum, ColumnDescriptor, ColumnDisplayTypeEnum, ColumnDynamicDescriptor, ColumnTypeEnum, DataProvider, DateUtil, DefaultMngErrorMapperService, DynamicTableviewDataProvider, EditorDataProvider, EditorDescriptor, EditorFormlyUtil, EnumName, EnumUtil, EnumeratePipeI18nHelper, ExportUtils, FieldActionDescriptor, FieldGroupDescriptor, FieldGroupTypeEnum, FieldInputDescriptor, FieldInputTypeEnum, FieldLookupDescriptor, FieldLookupEnumDescriptor, FieldLookupTypeEnum, FieldManyEditorActionEnum, FieldManyEditorDescriptor, FieldManyEditorTypeEnum, FieldManyToManyEditorActionEnum, FieldManyToManyEditorDescriptor, FieldManyToManyEditorTypeEnum, FieldSizeEnum, FieldTabGroupDescriptor, FieldValidationDescriptor, FilterDescriptor, FilterLookupDescriptor, FilterLookupEnumDescriptor, FilterLookupTypeEnum, FilterMatchModeEnum, FilterTypeEnum, I18nUtils, IdProperty, JsonPathPipe, LookupDataProvider, MNG_AUTOCOMPLETE_VALUE_ACCESSOR, MNG_BROWSER_STORAGE_IT, MNG_COMMONS_INITIALIZER_IT, MNG_DATE_RANGE_VALUE_ACCESSOR, MNG_DROPDOWN_VALUE_ACCESSOR, MNG_MODULE_CONFIG_IT, MediusFilterMatchType, MediusFilterParam, MediusQueryMode, MediusQueryParam, MediusQueryParamBuilder, MediusQueryResult, MediusRestUtil, MngActionComponent, MngActionEditorComponent, MngActionExecutorService, MngActionRouteComponent, MngAuthorizationGuard, MngAuthorizationService, MngAutocompleteComponent, MngBooleanPipe, MngBreadcrumbComponent, MngClassMapPipe, MngCommonsModule, MngCommonsService, MngComponentDirective, MngConfigurationService, MngDataLanguageDropdownComponent, MngDateRangeComponent, MngDropdownComponent, MngEnumPipe, MngEnumerateAsyncPipe, MngEnumeratePipe, MngErrorMapperService, MngFooterComponent, MngFormEditorComponent, MngFormEditorSubmitEvent, MngFormEvent, MngFormEventTypeEnum, MngFormFieldEvent, MngFormFieldEventComponentSubtype, MngFormFieldEventDialogSubtype, MngFormFieldEventTypeEnum, MngFormlyFieldActionComponent, MngFormlyFieldAutocompleteComponent, MngFormlyFieldDropdownComponent, MngFormlyFieldFieldsetComponent, MngFormlyFieldInputComponent, MngFormlyFieldLabelComponent, MngFormlyFieldLookupDialogComponent, MngFormlyFieldNoLabelWrapperComponent, MngFormlyFieldTableDialogFormComponent, MngFormlyFieldTableDialogMultiselectComponent, MngFormlyFieldTabsComponent, MngFormlyFieldWrapperComponent, MngGetterPipe, MngI18nPropertyPipe, MngLocaleDefaultRowClassPipe, MngMainLayoutComponent, MngMainLayoutComponentService, MngMenuComponent, MngMenuItemComponent, MngNavigationService, MngParametrizePipe, MngTableCellClickEvent, MngTableColumnFilterComponent, MngTableColumnValueComponent, MngTableComponent, MngTableLoadEvent, MngTableReloadEvent, MngTableviewComponent, MngTableviewRouteComponent, MngTemplateDirective, MngTemplatePipe, MngTopbarComponent, MngTopbarUserComponent, MngVersionComponent, MngViewContainerComponentService, ModelDescriptor, ModelUtil, NotificationUtil, ObjectSerializer, ObjectUtil, Permissions, RouteBuilder, RoutesBuilder, StringUtil, StyleLevelEnum, StyleSizeEnum, StylesUtil, TableDataProvider, TableDescriptor, TableDynamicColumnsModeEnum, TableDynamicDescriptor, TableFilterDisplayEnum, TablePaginationModeEnum, TableSizeEnum, TableviewActionDefaultCategories, TableviewCrudDataProvider, TableviewDataProvider, TableviewDescriptor, TableviewDynamicDescriptor, TableviewEditorTypeEnum, TableviewRouteBuilder, TableviewRouteBuilderInternal, TitleProperty, TypeName, TypeUtil, enumsMapBase, formlyTypesConfig, formlyWrappersConfig, getEmailValidationMessage, getFormlyValidationMessages, getMaxLengthValidationMessage, getMaxValidationMessage, getMinLengthValidationMessage, getMinValidationMessage, getRequiredValidationMessage, getTextPatternValidationMessage, mngConfigJsonAppInitializerProvider, mngConfigurationServiceProvider, mngFormlyConfigProvider, primeNgModules, provideMngCommons, typeMapBase };
14779
+ export { ACTION_EDITOR_DIALOG_COMPONENT_SETTING, AFieldDescriptor, AFieldGroupDescriptor, AGenericFieldDescriptor, AMngApiService, AMngBaseApiService, AMngCrudApiService, AMngGetAllApiService, AMngTableviewRouteComponent, APermissions, ActionActivationTriggerEnum, ActionButtonDescriptor, ActionConfirmationDialogDescriptor, ActionContext, ActionContextValidation, ActionDataProviderUtil, ActionDeleteDescriptor, ActionDescriptor, ActionEditorAddDescriptor, ActionEditorDescriptor, ActionEditorDetailsDescriptor, ActionEditorEditDescriptor, ActionEditorSubmitDescriptor, ActionEditorSubmitTypeEnum, ActionError, ActionInstance, ActionInstanceStateEnum, ActionLinkDescriptor, ActionParameters, ActionPositionEnum, ActionSimpleDescriptor, ActionTypeEnum, AuthorizationTypeEnum, AuthorizationUtil, ButtonStyleBuilder, ButtonStyleRoundedEnum, ColumnDescriptor, ColumnDisplayTypeEnum, ColumnDynamicDescriptor, ColumnTypeEnum, DataProvider, DateUtil, DefaultMngErrorMapperService, DynamicTableviewDataProvider, EditorDataProvider, EditorDescriptor, EditorFormlyUtil, EnumName, EnumUtil, EnumeratePipeI18nHelper, ExportUtils, FieldActionDescriptor, FieldGroupDescriptor, FieldGroupTypeEnum, FieldInputDescriptor, FieldInputTypeEnum, FieldLookupDescriptor, FieldLookupEnumDescriptor, FieldLookupTypeEnum, FieldManyEditorActionEnum, FieldManyEditorDescriptor, FieldManyEditorTypeEnum, FieldManyToManyEditorActionEnum, FieldManyToManyEditorDescriptor, FieldManyToManyEditorTypeEnum, FieldSizeEnum, FieldTabGroupDescriptor, FieldValidationDescriptor, FilterDescriptor, FilterLookupDescriptor, FilterLookupEnumDescriptor, FilterLookupTypeEnum, FilterMatchModeEnum, FilterTypeEnum, I18nUtils, IdProperty, JsonPathPipe, LookupDataProvider, MNG_AUTOCOMPLETE_VALUE_ACCESSOR, MNG_BROWSER_STORAGE_IT, MNG_COMMONS_INITIALIZER_IT, MNG_DATE_RANGE_VALUE_ACCESSOR, MNG_DROPDOWN_VALUE_ACCESSOR, MNG_MODULE_CONFIG_IT, MediusFilterMatchType, MediusFilterParam, MediusQueryMode, MediusQueryParam, MediusQueryParamBuilder, MediusQueryResult, MediusRestUtil, MngActionComponent, MngActionEditorComponent, MngActionExecutorService, MngActionRouteComponent, MngAuthorizationGuard, MngAuthorizationService, MngAutocompleteComponent, MngBooleanPipe, MngBreadcrumbComponent, MngClassMapPipe, MngCommonsModule, MngCommonsService, MngComponentDirective, MngConfigurationService, MngDataLanguageDropdownComponent, MngDateRangeComponent, MngDropdownComponent, MngEnumPipe, MngEnumerateAsyncPipe, MngEnumeratePipe, MngErrorMapperService, MngFooterComponent, MngFormEditorComponent, MngFormEditorSubmitEvent, MngFormEvent, MngFormEventTypeEnum, MngFormFieldEvent, MngFormFieldEventComponentSubtype, MngFormFieldEventDialogSubtype, MngFormFieldEventTypeEnum, MngFormlyFieldActionComponent, MngFormlyFieldAutocompleteComponent, MngFormlyFieldDropdownComponent, MngFormlyFieldFieldsetComponent, MngFormlyFieldInputComponent, MngFormlyFieldLabelComponent, MngFormlyFieldLookupDialogComponent, MngFormlyFieldNoLabelWrapperComponent, MngFormlyFieldTableDialogFormComponent, MngFormlyFieldTableDialogMultiselectComponent, MngFormlyFieldTabsComponent, MngFormlyFieldWrapperComponent, MngGetterPipe, MngI18nPropertyPipe, MngLocaleDefaultRowClassPipe, MngMainLayoutComponent, MngMainLayoutComponentService, MngMenuComponent, MngMenuItemComponent, MngNavigationService, MngParametrizePipe, MngTableCellClickEvent, MngTableColumnFilterComponent, MngTableColumnValueComponent, MngTableComponent, MngTableLoadEvent, MngTableReloadEvent, MngTableviewComponent, MngTableviewRouteComponent, MngTemplateDirective, MngTemplatePipe, MngTopbarComponent, MngTopbarUserComponent, MngVersionComponent, MngViewContainerComponentService, ModelDescriptor, ModelUtil, NotificationUtil, ObjectSerializer, ObjectUtil, Permissions, RouteBuilder, RoutesBuilder, StringUtil, StyleLevelEnum, StyleSizeEnum, StylesUtil, TableDataProvider, TableDescriptor, TableDynamicColumnsModeEnum, TableDynamicDescriptor, TableFilterDisplayEnum, TablePaginationModeEnum, TableSizeEnum, TableviewActionDefaultCategories, TableviewCrudDataProvider, TableviewDataProvider, TableviewDescriptor, TableviewDynamicDescriptor, TableviewEditorTypeEnum, TableviewRouteBuilder, TableviewRouteBuilderInternal, TitleProperty, TypeName, TypeUtil, enumsMapBase, formlyTypesConfig, formlyWrappersConfig, getEmailValidationMessage, getFormlyValidationMessages, getMaxDateValidationMessage, getMaxLengthValidationMessage, getMaxValidationMessage, getMinDateValidationMessage, getMinLengthValidationMessage, getMinValidationMessage, getRequiredValidationMessage, getTextPatternValidationMessage, mngConfigJsonAppInitializerProvider, mngConfigurationServiceProvider, mngFormlyConfigProvider, primeNgModules, provideMngCommons, typeMapBase };
14678
14780
  //# sourceMappingURL=mediusinc-mng-commons.mjs.map