@mediusinc/mng-commons 0.14.0 → 0.14.1

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 (29) hide show
  1. package/assets/i18n/en.json +3 -2
  2. package/assets/i18n/sl.json +3 -2
  3. package/esm2020/lib/api/models/filter-param.model.mjs +1 -1
  4. package/esm2020/lib/api/utils/medius-rest.util.mjs +59 -6
  5. package/esm2020/lib/components/form/date-range/date-range.component.mjs +106 -0
  6. package/esm2020/lib/components/form/index.mjs +2 -1
  7. package/esm2020/lib/components/tableview/table/column-filter/column-filter.component.mjs +34 -22
  8. package/esm2020/lib/components/tableview/table/table.component.mjs +7 -2
  9. package/esm2020/lib/descriptors/column.descriptor.mjs +16 -1
  10. package/esm2020/lib/descriptors/filter.descriptor.mjs +20 -1
  11. package/esm2020/lib/mng-commons.module.mjs +5 -2
  12. package/esm2020/lib/services/commons.service.mjs +6 -5
  13. package/esm2020/lib/utils/date.util.mjs +118 -0
  14. package/esm2020/lib/utils/index.mjs +2 -1
  15. package/fesm2015/mediusinc-mng-commons.mjs +359 -33
  16. package/fesm2015/mediusinc-mng-commons.mjs.map +1 -1
  17. package/fesm2020/mediusinc-mng-commons.mjs +352 -31
  18. package/fesm2020/mediusinc-mng-commons.mjs.map +1 -1
  19. package/lib/api/models/filter-param.model.d.ts +2 -2
  20. package/lib/components/form/date-range/date-range.component.d.ts +28 -0
  21. package/lib/components/form/index.d.ts +1 -0
  22. package/lib/components/tableview/table/column-filter/column-filter.component.d.ts +13 -7
  23. package/lib/descriptors/filter.descriptor.d.ts +5 -0
  24. package/lib/mng-commons.module.d.ts +63 -62
  25. package/lib/services/commons.service.d.ts +3 -2
  26. package/lib/utils/date.util.d.ts +7 -0
  27. package/lib/utils/index.d.ts +1 -0
  28. package/package.json +1 -1
  29. package/version-info.json +5 -5
@@ -63,7 +63,7 @@ import { SelectButtonModule } from 'primeng/selectbutton';
63
63
  import * as i7$3 from 'primeng/skeleton';
64
64
  import { SkeletonModule } from 'primeng/skeleton';
65
65
  import * as i6$4 from 'primeng/table';
66
- import { Table, TableModule } from 'primeng/table';
66
+ import { ColumnFilter, Table, TableModule } from 'primeng/table';
67
67
  import * as i4$4 from 'primeng/tabview';
68
68
  import { TabViewModule } from 'primeng/tabview';
69
69
  import { TagModule } from 'primeng/tag';
@@ -74,7 +74,7 @@ import * as i6$2 from 'primeng/toolbar';
74
74
  import { ToolbarModule } from 'primeng/toolbar';
75
75
  import * as i7 from 'primeng/tooltip';
76
76
  import { TooltipModule } from 'primeng/tooltip';
77
- import { isObservable, throwError, of, Subject, BehaviorSubject, ReplaySubject, distinctUntilChanged, combineLatest, tap, switchMap, mergeMap as mergeMap$1, from, Observable } from 'rxjs';
77
+ import { isObservable, throwError, of, Subject, BehaviorSubject, ReplaySubject, distinctUntilChanged, combineLatest, tap, switchMap, mergeMap as mergeMap$1, from, Observable, merge, debounceTime } from 'rxjs';
78
78
  import { map, mergeMap, catchError, first, filter, finalize, startWith } from 'rxjs/operators';
79
79
  import 'reflect-metadata';
80
80
  import * as i4 from '@angular/platform-browser';
@@ -453,6 +453,124 @@ class ActionDataProviderUtil {
453
453
  }
454
454
  }
455
455
 
456
+ class DateUtil {
457
+ static toIsoString(date, inUtc = false, withTimezone = false, withMillis = false) {
458
+ if (typeof date === 'string') {
459
+ date = new Date(date);
460
+ }
461
+ if (!(date instanceof Date)) {
462
+ return null;
463
+ }
464
+ if (inUtc) {
465
+ let str = date.toISOString();
466
+ if (!withMillis) {
467
+ const dotIdx = str.lastIndexOf('.');
468
+ str = str.substring(0, dotIdx) + str.substring(dotIdx + 4, str.length);
469
+ }
470
+ if (!withTimezone) {
471
+ str = str.substring(0, str.length - 1);
472
+ }
473
+ return str;
474
+ }
475
+ else {
476
+ const tzo = -date.getTimezoneOffset(), dif = tzo >= 0 ? '+' : '-', pad = (num) => (num < 10 ? '0' : '') + num;
477
+ let base = date.getFullYear() +
478
+ '-' +
479
+ pad(date.getMonth() + 1) +
480
+ '-' +
481
+ pad(date.getDate()) +
482
+ 'T' +
483
+ pad(date.getHours()) +
484
+ ':' +
485
+ pad(date.getMinutes()) +
486
+ ':' +
487
+ pad(date.getSeconds());
488
+ if (withMillis) {
489
+ base += '.' + pad(date.getMilliseconds());
490
+ }
491
+ if (withTimezone) {
492
+ return base + (dif + pad(Math.floor(Math.abs(tzo) / 60)) + ':' + pad(Math.abs(tzo) % 60));
493
+ }
494
+ else {
495
+ return base;
496
+ }
497
+ }
498
+ }
499
+ static fromPrimeToAngularDateFormat(ngDateFormat) {
500
+ let primeDateFormat = ngDateFormat;
501
+ for (const regex of DateUtil.NG_PRIME_FORMAT_OTHER) {
502
+ primeDateFormat = primeDateFormat.replace(regex, ' ');
503
+ }
504
+ for (const regex of DateUtil.NG_PRIME_FORMAT_SUPPORTED) {
505
+ const matches = [...primeDateFormat.matchAll(regex)].reverse();
506
+ for (const match of matches) {
507
+ if (match.index) {
508
+ const matchStr = match[0];
509
+ const replacement = DateUtil.NG_PRIME_FORMAT_MAP[matchStr] ?? match[0];
510
+ primeDateFormat = primeDateFormat.substring(0, match.index) + replacement + primeDateFormat.substring(match.index + matchStr.length);
511
+ }
512
+ }
513
+ }
514
+ primeDateFormat = primeDateFormat.replace(/\s+\W\s+/g, ' ');
515
+ primeDateFormat = primeDateFormat.replace(/\s\s+/g, ' ');
516
+ return primeDateFormat.trim();
517
+ }
518
+ }
519
+ DateUtil.NG_PRIME_FORMAT_SUPPORTED = [/d{1,2}/g, /E{1,5}/g, /c{1,5}/g, /M{1,5}/g, /L{1,5}/g, /y{1,4}/g, /Y{1,4}/g];
520
+ DateUtil.NG_PRIME_FORMAT_OTHER = [
521
+ /G{1,5}/g,
522
+ /w{1,2}/g,
523
+ /W/g,
524
+ /a{1,5}/g,
525
+ /B{1,5}/g,
526
+ /b{1,5}/g,
527
+ /h{1,2}/g,
528
+ /H{1,2}/g,
529
+ /m{1,2}/g,
530
+ /s{1,2}/g,
531
+ /S{1,3}/g,
532
+ /z{1,4}/g,
533
+ /Z{1,5}/g,
534
+ /O{1,4}/g
535
+ ];
536
+ DateUtil.NG_PRIME_FORMAT_MAP = {
537
+ // days
538
+ d: 'd',
539
+ dd: 'dd',
540
+ E: 'D',
541
+ EE: 'D',
542
+ EEE: 'D',
543
+ EEEE: 'DD',
544
+ EEEEE: 'D',
545
+ EEEEEE: 'D',
546
+ c: 'd',
547
+ cc: 'dd',
548
+ ccc: 'D',
549
+ cccc: 'DD',
550
+ ccccc: 'D',
551
+ cccccc: 'D',
552
+ // months
553
+ M: 'm',
554
+ MM: 'mm',
555
+ MMM: 'M',
556
+ MMMM: 'MM',
557
+ MMMMM: 'M',
558
+ L: 'm',
559
+ LL: 'mm',
560
+ LLL: 'M',
561
+ LLLL: 'MM',
562
+ LLLLL: 'M',
563
+ // year
564
+ y: 'y',
565
+ yy: 'y',
566
+ yyy: 'yy',
567
+ yyyy: 'yy',
568
+ Y: 'y',
569
+ YY: 'y',
570
+ YYY: 'yy',
571
+ YYYY: 'yy'
572
+ };
573
+
456
574
  class DataProvider {
457
575
  constructor(modelType, serviceType) {
458
576
  this._modelType = modelType;
@@ -1858,6 +1976,8 @@ class FilterDescriptor {
1858
1976
  this._matchModes = null;
1859
1977
  this._numberUseGrouping = true;
1860
1978
  this._datePickerShowTime = false;
1979
+ this._datePickerValueWithTimezone = false;
1980
+ this._datePickerValueInUtc = false;
1861
1981
  this._className = '';
1862
1982
  this._columnClassName = '';
1863
1983
  this._columnWidth = null;
@@ -1900,6 +2020,12 @@ class FilterDescriptor {
1900
2020
  get datePickerShowTime() {
1901
2021
  return this._datePickerShowTime;
1902
2022
  }
2023
+ get datePickerValueInUtc() {
2024
+ return this._datePickerValueInUtc;
2025
+ }
2026
+ get datePickerValueWithTimezone() {
2027
+ return this._datePickerValueWithTimezone;
2028
+ }
1903
2029
  get placeholder() {
1904
2030
  return this._placeholder;
1905
2031
  }
@@ -1951,6 +2077,15 @@ class FilterDescriptor {
1951
2077
  this._datePickerShowTime = showTime;
1952
2078
  return this;
1953
2079
  }
2080
+ withDateValue(inUtc, withTimezone) {
2081
+ if (typeof inUtc !== 'undefined') {
2082
+ this._datePickerValueInUtc = inUtc;
2083
+ }
2084
+ if (typeof withTimezone !== 'undefined') {
2085
+ this._datePickerValueWithTimezone = withTimezone;
2086
+ }
2087
+ return this;
2088
+ }
1954
2089
  withPlaceholder(placeholder) {
1955
2090
  this._placeholder = placeholder;
1956
2091
  return this;
@@ -1989,6 +2124,8 @@ class FilterDescriptor {
1989
2124
  descriptor._numberUseGrouping = this._numberUseGrouping;
1990
2125
  descriptor._datePickerFormat = this._datePickerFormat;
1991
2126
  descriptor._datePickerShowTime = this._datePickerShowTime;
2127
+ descriptor._datePickerValueInUtc = this._datePickerValueInUtc;
2128
+ descriptor._datePickerValueWithTimezone = this._datePickerValueWithTimezone;
1992
2129
  descriptor._placeholder = this._placeholder;
1993
2130
  descriptor._className = this._className;
1994
2131
  descriptor._columnWidth = this._columnWidth;
@@ -2353,6 +2490,7 @@ class ColumnDescriptor {
2353
2490
  }
2354
2491
  switch (this._columnType) {
2355
2492
  case ColumnTypeEnum.Number:
2493
+ case ColumnTypeEnum.Currency:
2356
2494
  filterType = FilterTypeEnum.Number;
2357
2495
  break;
2358
2496
  case ColumnTypeEnum.Boolean:
@@ -2376,6 +2514,19 @@ class ColumnDescriptor {
2376
2514
  break;
2377
2515
  }
2378
2516
  this._filterDescriptor.asFilterType(filterType);
2517
+ if (filterType === FilterTypeEnum.Number) {
2518
+ const displayFormatFractions = this._displayFormat?.split('.')?.[1]?.split('-');
2519
+ if (displayFormatFractions && displayFormatFractions.length > 2) {
2520
+ this._filterDescriptor.withNumberFractions(parseInt(displayFormatFractions[0]), parseInt(displayFormatFractions[1]));
2521
+ }
2522
+ }
2523
+ else if (filterType === FilterTypeEnum.Date) {
2524
+ const displayFormat = this._displayFormat;
2525
+ if (displayFormat) {
2526
+ const filterDisplayFormat = DateUtil.fromPrimeToAngularDateFormat(displayFormat);
2527
+ this._filterDescriptor.withDateFormat(filterDisplayFormat);
2528
+ }
2529
+ }
2379
2530
  return this._filterDescriptor;
2380
2531
  }
2381
2532
  withFilterLookup() {
@@ -5589,7 +5740,7 @@ class MediusRestUtil {
5589
5740
  const operator = filterFieldSplit.length > 1 ? filterFieldSplit[1] : 'eq';
5590
5741
  // prepare value
5591
5742
  let value = filterFieldSplit.length > 2 ? filterFieldSplit.slice(2).join(':') : '';
5592
- const valueTo = undefined;
5743
+ let valueTo = undefined;
5593
5744
  if (value.startsWith("'")) {
5594
5745
  value = value.substring(1, value.length - 1);
5595
5746
  }
@@ -5599,6 +5750,10 @@ class MediusRestUtil {
5599
5750
  .split(',')
5600
5751
  .map((v) => (v.startsWith("'") ? v.substring(1, v.length - 1) : v));
5601
5752
  }
5753
+ if (operator === 'ft') {
5754
+ valueTo = value[1];
5755
+ value = value[0];
5756
+ }
5602
5757
  const filterDescriptor = filterDescriptors.find(f => f.property === field);
5603
5758
  const matchMode = MediusRestUtil.getMapping(operator, filterDescriptor?.filterType, 1);
5604
5759
  if (matchMode && filterDescriptor) {
@@ -5621,7 +5776,7 @@ class MediusRestUtil {
5621
5776
  if (event.rows && event.rows !== defaultItemsPerPage && event.rows > 0) {
5622
5777
  params['rows'] = event.rows;
5623
5778
  }
5624
- if (event.multiSortMeta?.length ?? 0 > 0) {
5779
+ if (event.multiSortMeta?.length) {
5625
5780
  params['sort'] = event.multiSortMeta?.map(s => `${s.field}${s.order === 1 ? '' : ':desc'}`).join(',');
5626
5781
  }
5627
5782
  if (event.filters) {
@@ -5640,11 +5795,21 @@ class MediusRestUtil {
5640
5795
  doAddFilter = true;
5641
5796
  }
5642
5797
  else if (Array.isArray(value)) {
5643
- value = `[${value.map(v => `'${v}'`).join(',')}]`;
5798
+ const joinedValue = value
5799
+ .map(v => {
5800
+ if (v instanceof Date) {
5801
+ // for query params, always convert to iso string, correct transformation will be done later
5802
+ return v.toISOString();
5803
+ }
5804
+ return v;
5805
+ })
5806
+ .join(',');
5807
+ value = `[${joinedValue}]`;
5644
5808
  doAddFilter = true;
5645
5809
  }
5646
5810
  else if (value instanceof Date) {
5647
- value = `${value.toISOString()}`;
5811
+ // for query params, always convert to iso string, correct transformation will be done later
5812
+ value = value.toISOString();
5648
5813
  doAddFilter = true;
5649
5814
  }
5650
5815
  if (doAddFilter) {
@@ -5662,6 +5827,43 @@ class MediusRestUtil {
5662
5827
  for (const filterParam of mediusQueryParams.filterParams ?? []) {
5663
5828
  const filterDescriptor = filterDescriptors.find(f => f.property === filterParam.property);
5664
5829
  filterParam.property = filterDescriptor?.filterProperty ?? filterParam.property;
5830
+ if (filterDescriptor?.filterType === FilterTypeEnum.Date) {
5831
+ if (filterParam.filterMatchType === MediusFilterMatchType.Equals) {
5832
+ // convert date equals filter to date range
5833
+ const filterDate = filterParam.filterValue;
5834
+ const startDate = new Date(filterDate);
5835
+ const endDate = new Date(startDate);
5836
+ if (filterDescriptor.datePickerShowTime) {
5837
+ startDate.setHours(startDate.getHours(), startDate.getMinutes(), 0, 0);
5838
+ endDate.setHours(endDate.getHours(), endDate.getMinutes() + 1, 0, 0);
5839
+ }
5840
+ else {
5841
+ startDate.setHours(0, 0, 0, 0);
5842
+ endDate.setHours(0, 0, 0, 0);
5843
+ endDate.setDate(endDate.getDate() + 1);
5844
+ }
5845
+ filterParam.filterMatchType = MediusFilterMatchType.FromTo;
5846
+ filterParam.filterValue = startDate;
5847
+ filterParam.filterValueTo = endDate;
5848
+ }
5849
+ // transform dates to correct iso string
5850
+ if (typeof filterParam.filterValue !== 'undefined') {
5851
+ if (Array.isArray(filterParam.filterValue)) {
5852
+ filterParam.filterValue = filterParam.filterValue.map(v => DateUtil.toIsoString(v, filterDescriptor.datePickerValueInUtc, filterDescriptor.datePickerValueWithTimezone));
5853
+ }
5854
+ else {
5855
+ filterParam.filterValue = DateUtil.toIsoString(filterParam.filterValue, filterDescriptor.datePickerValueInUtc, filterDescriptor.datePickerValueWithTimezone);
5856
+ }
5857
+ }
5858
+ if (typeof filterParam.filterValueTo !== 'undefined') {
5859
+ if (Array.isArray(filterParam.filterValueTo)) {
5860
+ filterParam.filterValueTo = filterParam.filterValueTo.map(v => DateUtil.toIsoString(v, filterDescriptor.datePickerValueInUtc, filterDescriptor.datePickerValueWithTimezone));
5861
+ }
5862
+ else {
5863
+ filterParam.filterValueTo = DateUtil.toIsoString(filterParam.filterValueTo, filterDescriptor.datePickerValueInUtc, filterDescriptor.datePickerValueWithTimezone);
5864
+ }
5865
+ }
5866
+ }
5665
5867
  }
5666
5868
  }
5667
5869
  static fromPrimeLazyLoadEventToMediusQueryParams(event) {
@@ -5716,7 +5918,8 @@ MediusRestUtil.matchModeMapping = [
5716
5918
  [FilterMatchMode.STARTS_WITH, 'sw', MediusFilterMatchType.StartsWith, null],
5717
5919
  [FilterMatchMode.IN, 'in', MediusFilterMatchType.In, null],
5718
5920
  [FilterMatchMode.NOT_EQUALS, 'neq', MediusFilterMatchType.NotEquals, null],
5719
- [FilterMatchMode.DATE_IS, 'eq', MediusFilterMatchType.Equals, FilterTypeEnum.Date],
5921
+ [FilterMatchMode.BETWEEN, 'ft', MediusFilterMatchType.FromTo, FilterTypeEnum.Date],
5922
+ [FilterMatchMode.DATE_IS, 'dteq', MediusFilterMatchType.Equals, FilterTypeEnum.Date],
5720
5923
  [FilterMatchMode.DATE_BEFORE, 'lt', MediusFilterMatchType.SmallerThan, FilterTypeEnum.Date],
5721
5924
  [FilterMatchMode.DATE_AFTER, 'gt', MediusFilterMatchType.GreaterThan, FilterTypeEnum.Date],
5722
5925
  [FilterMatchMode.DATE_IS_NOT, 'neq', MediusFilterMatchType.NotEquals, FilterTypeEnum.Date]
@@ -6985,11 +7188,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImpor
6985
7188
  }] }]; } });
6986
7189
 
6987
7190
  class MngCommonsService {
6988
- constructor(router, primengConfig, translate, titleService, moduleConfig, localStorage) {
7191
+ constructor(router, primengConfig, translate, titleService, filterService, moduleConfig, localStorage) {
6989
7192
  this.router = router;
6990
7193
  this.primengConfig = primengConfig;
6991
7194
  this.translate = translate;
6992
7195
  this.titleService = titleService;
7196
+ this.filterService = filterService;
6993
7197
  this.moduleConfig = moduleConfig;
6994
7198
  this.localStorage = localStorage;
6995
7199
  // menu
@@ -7145,7 +7349,7 @@ class MngCommonsService {
7145
7349
  this.primengConfig.filterMatchModeOptions = {
7146
7350
  text: [FilterMatchModeEnum.Contains, FilterMatchModeEnum.Equals, FilterMatchModeEnum.NotEquals, FilterMatchModeEnum.StartsWith, FilterMatchModeEnum.EndsWith],
7147
7351
  numeric: [FilterMatchModeEnum.Equals, FilterMatchModeEnum.NotEquals, FilterMatchModeEnum.LessThan, FilterMatchModeEnum.GreaterThan],
7148
- date: [FilterMatchModeEnum.DateIs, FilterMatchModeEnum.DateIsNot, FilterMatchModeEnum.DateBefore, FilterMatchModeEnum.DateAfter]
7352
+ date: [FilterMatchModeEnum.DateIs, FilterMatchModeEnum.DateBefore, FilterMatchModeEnum.DateAfter, FilterMatchModeEnum.Between]
7149
7353
  };
7150
7354
  // translate
7151
7355
  this.translate.langs = this.appLanguages;
@@ -7304,11 +7508,11 @@ class MngCommonsService {
7304
7508
  return titlePieces.join(' - ');
7305
7509
  }
7306
7510
  }
7307
- MngCommonsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: MngCommonsService, deps: [{ token: i1.Router }, { token: i2.PrimeNGConfig }, { token: i1$2.TranslateService }, { token: i4.Title }, { token: MNG_MODULE_CONFIG_IT }, { token: MNG_BROWSER_STORAGE_IT }], target: i0.ɵɵFactoryTarget.Injectable });
7511
+ MngCommonsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: MngCommonsService, deps: [{ token: i1.Router }, { token: i2.PrimeNGConfig }, { token: i1$2.TranslateService }, { token: i4.Title }, { token: i2.FilterService }, { token: MNG_MODULE_CONFIG_IT }, { token: MNG_BROWSER_STORAGE_IT }], target: i0.ɵɵFactoryTarget.Injectable });
7308
7512
  MngCommonsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: MngCommonsService });
7309
7513
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: MngCommonsService, decorators: [{
7310
7514
  type: Injectable
7311
- }], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.PrimeNGConfig }, { type: i1$2.TranslateService }, { type: i4.Title }, { type: undefined, decorators: [{
7515
+ }], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.PrimeNGConfig }, { type: i1$2.TranslateService }, { type: i4.Title }, { type: i2.FilterService }, { type: undefined, decorators: [{
7312
7516
  type: Inject,
7313
7517
  args: [MNG_MODULE_CONFIG_IT]
7314
7518
  }] }, { type: Storage, decorators: [{
@@ -8455,6 +8659,105 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImpor
8455
8659
  args: [Dropdown]
8456
8660
  }] } });
8457
8661
 
8662
+ const MNG_DATE_RANGE_VALUE_ACCESSOR = {
8663
+ provide: NG_VALUE_ACCESSOR,
8664
+ useExisting: forwardRef(() => MngDateRangeComponent),
8665
+ multi: true
8666
+ };
8667
+ class MngDateRangeComponent {
8668
+ constructor(formBuilder) {
8669
+ this.formBuilder = formBuilder;
8670
+ this.showTime = false;
8671
+ this.showSeconds = false;
8672
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
8673
+ this.onChangeFn = () => { };
8674
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
8675
+ this.onTouchedFn = () => { };
8676
+ this.subscriptions = [];
8677
+ }
8678
+ get fromCtrl() {
8679
+ return this.fromToFormControl.get('from');
8680
+ }
8681
+ get toCtrl() {
8682
+ return this.fromToFormControl.get('to');
8683
+ }
8684
+ get dateRangeCtrl() {
8685
+ return this.fromToFormControl.get('dateRange');
8686
+ }
8687
+ ngOnInit() {
8688
+ this.fromToFormControl = this.formBuilder.group({
8689
+ from: [],
8690
+ to: [],
8691
+ dateRange: []
8692
+ });
8693
+ this.subscriptions.push(merge(this.fromCtrl.valueChanges, this.toCtrl.valueChanges, this.dateRangeCtrl.valueChanges).subscribe(() => this.onValueChange()));
8694
+ }
8695
+ ngOnDestroy() {
8696
+ this.subscriptions.forEach(value => value.unsubscribe());
8697
+ }
8698
+ registerOnChange(fn) {
8699
+ this.onChangeFn = fn;
8700
+ }
8701
+ registerOnTouched(fn) {
8702
+ this.onTouchedFn = fn;
8703
+ }
8704
+ setDisabledState(isDisabled) {
8705
+ if (isDisabled) {
8706
+ this.fromToFormControl.disable();
8707
+ }
8708
+ else {
8709
+ this.fromToFormControl.enable();
8710
+ }
8711
+ }
8712
+ writeValue(obj) {
8713
+ let startDate = null;
8714
+ let endDate = null;
8715
+ if (Array.isArray(obj)) {
8716
+ if (obj.length > 0 && (obj[0] instanceof Date || typeof obj[0] === 'string' || typeof obj[0] === 'number')) {
8717
+ startDate = new Date(obj[0]);
8718
+ }
8719
+ if (obj.length > 1 && (obj[1] instanceof Date || typeof obj[1] === 'string' || typeof obj[1] === 'number')) {
8720
+ endDate = new Date(obj[1]);
8721
+ }
8722
+ }
8723
+ else if (obj instanceof Date || typeof obj === 'string' || typeof obj === 'number') {
8724
+ startDate = new Date(obj);
8725
+ }
8726
+ if (this.showTime) {
8727
+ this.fromCtrl.setValue(startDate);
8728
+ this.toCtrl.setValue(endDate);
8729
+ }
8730
+ else {
8731
+ this.dateRangeCtrl.setValue([startDate, endDate]);
8732
+ }
8733
+ }
8734
+ onValueChange() {
8735
+ if (this.showTime) {
8736
+ const fromDate = this.fromCtrl.value;
8737
+ const toDate = this.toCtrl.value;
8738
+ this.onChangeFn([fromDate, toDate]);
8739
+ }
8740
+ else {
8741
+ const date = this.dateRangeCtrl.value;
8742
+ this.onChangeFn(date);
8743
+ }
8744
+ }
8745
+ }
8746
+ MngDateRangeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: MngDateRangeComponent, deps: [{ token: i2$1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
8747
+ MngDateRangeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: MngDateRangeComponent, selector: "mng-date-range", inputs: { placeholder: "placeholder", showTime: "showTime", showSeconds: "showSeconds", dateFormat: "dateFormat" }, providers: [MNG_DATE_RANGE_VALUE_ACCESSOR], ngImport: i0, template: "<ng-container *ngIf=\"showTime; else defaultRange\">\n <div class=\"flex gap-2\">\n <p-calendar\n appendTo=\"body\"\n [formControl]=\"fromCtrl\"\n [maxDate]=\"toCtrl.value\"\n [placeholder]=\"$any(placeholder)\"\n [dateFormat]=\"$any(dateFormat)\"\n [showTime]=\"showTime\"\n [showSeconds]=\"showSeconds\"\n [showIcon]=\"true\"\n (onFocus)=\"onTouchedFn()\"></p-calendar>\n <p-calendar\n appendTo=\"body\"\n [formControl]=\"toCtrl\"\n [minDate]=\"fromCtrl.value\"\n [placeholder]=\"$any(placeholder)\"\n [dateFormat]=\"$any(dateFormat)\"\n [showTime]=\"showTime\"\n [showSeconds]=\"showSeconds\"\n [showIcon]=\"true\"\n (onFocus)=\"onTouchedFn()\"></p-calendar>\n </div>\n</ng-container>\n<ng-template #defaultRange>\n <p-calendar\n appendTo=\"body\"\n [formControl]=\"dateRangeCtrl\"\n [placeholder]=\"$any(placeholder)\"\n [dateFormat]=\"$any(dateFormat)\"\n selectionMode=\"range\"\n [showIcon]=\"true\"\n (onFocus)=\"onTouchedFn()\"></p-calendar>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i4$3.Calendar, selector: "p-calendar", inputs: ["style", "styleClass", "inputStyle", "inputId", "name", "inputStyleClass", "placeholder", "ariaLabelledBy", "iconAriaLabel", "disabled", "dateFormat", "multipleSeparator", "rangeSeparator", "inline", "showOtherMonths", "selectOtherMonths", "showIcon", "icon", "appendTo", "readonlyInput", "shortYearCutoff", "monthNavigator", "yearNavigator", "hourFormat", "timeOnly", "stepHour", "stepMinute", "stepSecond", "showSeconds", "required", "showOnFocus", "showWeek", "showClear", "dataType", "selectionMode", "maxDateCount", "showButtonBar", "todayButtonStyleClass", "clearButtonStyleClass", "autoZIndex", "baseZIndex", "panelStyleClass", "panelStyle", "keepInvalid", "hideOnDateTimeSelect", "touchUI", "timeSeparator", "focusTrap", "showTransitionOptions", "hideTransitionOptions", "tabindex", "view", "defaultDate", "minDate", "maxDate", "disabledDates", "disabledDays", "yearRange", "showTime", "responsiveOptions", "numberOfMonths", "firstDayOfWeek", "locale"], outputs: ["onFocus", "onBlur", "onClose", "onSelect", "onClear", "onInput", "onTodayClick", "onClearClick", "onMonthChange", "onYearChange", "onClickOutside", "onShow"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
8748
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: MngDateRangeComponent, decorators: [{
8749
+ type: Component,
8750
+ args: [{ selector: 'mng-date-range', providers: [MNG_DATE_RANGE_VALUE_ACCESSOR], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"showTime; else defaultRange\">\n <div class=\"flex gap-2\">\n <p-calendar\n appendTo=\"body\"\n [formControl]=\"fromCtrl\"\n [maxDate]=\"toCtrl.value\"\n [placeholder]=\"$any(placeholder)\"\n [dateFormat]=\"$any(dateFormat)\"\n [showTime]=\"showTime\"\n [showSeconds]=\"showSeconds\"\n [showIcon]=\"true\"\n (onFocus)=\"onTouchedFn()\"></p-calendar>\n <p-calendar\n appendTo=\"body\"\n [formControl]=\"toCtrl\"\n [minDate]=\"fromCtrl.value\"\n [placeholder]=\"$any(placeholder)\"\n [dateFormat]=\"$any(dateFormat)\"\n [showTime]=\"showTime\"\n [showSeconds]=\"showSeconds\"\n [showIcon]=\"true\"\n (onFocus)=\"onTouchedFn()\"></p-calendar>\n </div>\n</ng-container>\n<ng-template #defaultRange>\n <p-calendar\n appendTo=\"body\"\n [formControl]=\"dateRangeCtrl\"\n [placeholder]=\"$any(placeholder)\"\n [dateFormat]=\"$any(dateFormat)\"\n selectionMode=\"range\"\n [showIcon]=\"true\"\n (onFocus)=\"onTouchedFn()\"></p-calendar>\n</ng-template>\n" }]
8751
+ }], ctorParameters: function () { return [{ type: i2$1.FormBuilder }]; }, propDecorators: { placeholder: [{
8752
+ type: Input
8753
+ }], showTime: [{
8754
+ type: Input
8755
+ }], showSeconds: [{
8756
+ type: Input
8757
+ }], dateFormat: [{
8758
+ type: Input
8759
+ }] } });
8760
+
8458
8761
  class MngActionEditorComponent {
8459
8762
  constructor(injector, translate, actionExecutor, mngCommonsService, navigationService, dialogRef, dialogConfig, viewContainerService) {
8460
8763
  this.injector = injector;
@@ -8991,6 +9294,14 @@ class MngTableColumnFilterComponent {
8991
9294
  this.primeShowMatchMode = true;
8992
9295
  this.primeDisplay = 'row';
8993
9296
  this.primeMatchModes = null;
9297
+ this.dateDebounceSubject = new Subject();
9298
+ this.dateDebounceSubscription = this.dateDebounceSubject.pipe(debounceTime(500), distinctUntilChanged()).subscribe(v => {
9299
+ this.dateFilterCallback?.(v);
9300
+ });
9301
+ }
9302
+ get activeMatchMode() {
9303
+ const filter = this.primeColumnFilter?.dt.filters[this.descriptor.property];
9304
+ return filter?.matchMode;
8994
9305
  }
8995
9306
  ngOnInit() {
8996
9307
  this.primeDefaultMatchMode = this.descriptor.defaultFilterMatchMode ?? FilterMatchModeEnum.Equals;
@@ -9004,7 +9315,7 @@ class MngTableColumnFilterComponent {
9004
9315
  break;
9005
9316
  case FilterTypeEnum.Date:
9006
9317
  this.primeType = 'date';
9007
- this.primeDefaultMatchMode = FilterMatchMode.DATE_AFTER;
9318
+ this.primeDefaultMatchMode = FilterMatchModeEnum.DateIs;
9008
9319
  break;
9009
9320
  case FilterTypeEnum.Lookup:
9010
9321
  this.primeType = 'lookup';
@@ -9018,7 +9329,7 @@ class MngTableColumnFilterComponent {
9018
9329
  break;
9019
9330
  case FilterTypeEnum.String:
9020
9331
  this.primeType = 'text';
9021
- this.primeDefaultMatchMode = FilterMatchMode.CONTAINS;
9332
+ this.primeDefaultMatchMode = FilterMatchModeEnum.Contains;
9022
9333
  break;
9023
9334
  }
9024
9335
  if (this.descriptor.matchModes) {
@@ -9032,20 +9343,22 @@ class MngTableColumnFilterComponent {
9032
9343
  this.primeDisplay = 'menu';
9033
9344
  }
9034
9345
  }
9035
- valueToDate(value) {
9036
- console.log('call', this.descriptor.property);
9037
- if (typeof value === 'string' || typeof value === 'number') {
9038
- return new Date(value);
9039
- }
9040
- else if (value instanceof Date) {
9041
- return value;
9042
- }
9043
- else {
9044
- return null;
9045
- }
9346
+ ngOnDestroy() {
9347
+ this.dateDebounceSubscription?.unsubscribe();
9046
9348
  }
9047
9349
  // eslint-disable-next-line @typescript-eslint/ban-types
9048
9350
  dateFilter(value, filterCallback) {
9351
+ this.dateFilterCallback = filterCallback;
9352
+ if (this.activeMatchMode === FilterMatchModeEnum.Between && Array.isArray(value)) {
9353
+ const dateValues = value.filter(v => v instanceof Date);
9354
+ if (dateValues.length <= 1) {
9355
+ return;
9356
+ }
9357
+ }
9358
+ this.dateDebounceSubject.next(value);
9359
+ }
9360
+ // eslint-disable-next-line @typescript-eslint/ban-types
9361
+ dateRangeChange(value, filterCallback) {
9049
9362
  filterCallback(value);
9050
9363
  }
9051
9364
  // eslint-disable-next-line @typescript-eslint/ban-types
@@ -9059,19 +9372,19 @@ class MngTableColumnFilterComponent {
9059
9372
  }
9060
9373
  filterCallback(value);
9061
9374
  }
9062
- toLookupFilterValue(value) {
9063
- return this.lookupDescriptor.dataKeyProperty && value ? { [this.lookupDescriptor.dataKeyProperty]: value } : value;
9064
- }
9065
9375
  }
9066
9376
  MngTableColumnFilterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: MngTableColumnFilterComponent, deps: [{ token: i2.PrimeNGConfig }], target: i0.ɵɵFactoryTarget.Component });
9067
- MngTableColumnFilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: MngTableColumnFilterComponent, selector: "mng-table-column-filter", inputs: { descriptor: "descriptor", display: "display" }, ngImport: i0, template: "<p-columnFilter\n class=\"ml-auto\"\n [type]=\"primeType\"\n [field]=\"descriptor.property\"\n [display]=\"primeDisplay\"\n [matchMode]=\"primeDefaultMatchMode\"\n [matchModeOptions]=\"$any(primeMatchModes)\"\n [placeholder]=\"descriptor.placeholder ?? 'mngTable.typeToFilter' | translate\"\n [showMatchModes]=\"true\"\n [showOperator]=\"false\"\n [showAddButton]=\"false\"\n [hideOnClear]=\"true\"\n [showMenu]=\"primeShowMatchMode\"\n [minFractionDigits]=\"$any(descriptor.numberMinFractionDigits)\"\n [maxFractionDigits]=\"$any(descriptor.numberMaxFractionDigits)\"\n [useGrouping]=\"descriptor.numberUseGrouping\">\n <ng-template *ngIf=\"primeType === 'date'\" pTemplate=\"filter\" let-value let-filterCallback=\"filterCallback\">\n <p-calendar\n appendTo=\"body\"\n [ngModel]=\"value\"\n (ngModelChange)=\"dateFilter($event, filterCallback)\"\n [placeholder]=\"descriptor.placeholder ?? 'mngTable.typeToFilter' | translate\"\n [showIcon]=\"true\"\n [dateFormat]=\"descriptor.datePickerFormat ?? 'dd.mm.yy'\"\n [showTime]=\"descriptor.datePickerShowTime\">\n </p-calendar>\n </ng-template>\n <ng-template *ngIf=\"lookupDescriptor\" pTemplate=\"filter\" let-value let-filterCallback=\"filterCallback\">\n <ng-container [ngSwitch]=\"lookupDescriptor.lookupType\">\n <mng-autocomplete\n *ngSwitchCase=\"lookupTypeAutocomplete\"\n [ngModel]=\"value\"\n [dataProvider]=\"lookupDescriptor.dataProvider\"\n [dataKeyProperty]=\"lookupDescriptor.dataKeyProperty\"\n [itemsValueProperty]=\"lookupDescriptor.itemsValueProperty\"\n [itemsLabelProperty]=\"lookupDescriptor.itemsLabelProperty\"\n [itemsLabelTranslate]=\"lookupDescriptor.itemsLabelTranslate\"\n [multiselect]=\"lookupDescriptor.multiselect\"\n [openOnFocus]=\"lookupDescriptor.autocompleteOpenOnFocus\"\n [inlineSearch]=\"lookupDescriptor.autocompleteInlineSearch\"\n [placeholder]=\"descriptor.placeholder ?? 'mngTable.searchToFilter' | translate\"\n [className]=\"lookupDescriptor.className\"\n [dropdownClassName]=\"lookupDescriptor.dropdownClassName\"\n (valueChange)=\"autocompleteFilter($event, filterCallback)\">\n </mng-autocomplete>\n <mng-dropdown\n *ngSwitchCase=\"lookupTypeDropdown\"\n [ngModel]=\"value\"\n [dataProvider]=\"lookupDescriptor.dataProvider\"\n [itemsValueProperty]=\"lookupDescriptor.itemsValueProperty\"\n [itemsLabelProperty]=\"lookupDescriptor.itemsLabelProperty\"\n [itemsLabelTranslate]=\"lookupDescriptor.itemsLabelTranslate\"\n [multiselect]=\"lookupDescriptor.multiselect\"\n [placeholder]=\"descriptor.placeholder ?? 'mngTable.selectToFilter' | translate\"\n [className]=\"lookupDescriptor.className\"\n [dropdownClassName]=\"lookupDescriptor.dropdownClassName\"\n [showClear]=\"false\"\n [changeValueOnBlur]=\"lookupDescriptor.multiselect\"\n (valueChange)=\"dropdownFilter($event, filterCallback)\">\n </mng-dropdown>\n </ng-container>\n </ng-template>\n</p-columnFilter>\n", dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1$1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i4$3.Calendar, selector: "p-calendar", inputs: ["style", "styleClass", "inputStyle", "inputId", "name", "inputStyleClass", "placeholder", "ariaLabelledBy", "iconAriaLabel", "disabled", "dateFormat", "multipleSeparator", "rangeSeparator", "inline", "showOtherMonths", "selectOtherMonths", "showIcon", "icon", "appendTo", "readonlyInput", "shortYearCutoff", "monthNavigator", "yearNavigator", "hourFormat", "timeOnly", "stepHour", "stepMinute", "stepSecond", "showSeconds", "required", "showOnFocus", "showWeek", "showClear", "dataType", "selectionMode", "maxDateCount", "showButtonBar", "todayButtonStyleClass", "clearButtonStyleClass", "autoZIndex", "baseZIndex", "panelStyleClass", "panelStyle", "keepInvalid", "hideOnDateTimeSelect", "touchUI", "timeSeparator", "focusTrap", "showTransitionOptions", "hideTransitionOptions", "tabindex", "view", "defaultDate", "minDate", "maxDate", "disabledDates", "disabledDays", "yearRange", "showTime", "responsiveOptions", "numberOfMonths", "firstDayOfWeek", "locale"], outputs: ["onFocus", "onBlur", "onClose", "onSelect", "onClear", "onInput", "onTodayClick", "onClearClick", "onMonthChange", "onYearChange", "onClickOutside", "onShow"] }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i6$4.ColumnFilter, selector: "p-columnFilter", inputs: ["field", "type", "display", "showMenu", "matchMode", "operator", "showOperator", "showClearButton", "showApplyButton", "showMatchModes", "showAddButton", "hideOnClear", "placeholder", "matchModeOptions", "maxConstraints", "minFractionDigits", "maxFractionDigits", "prefix", "suffix", "locale", "localeMatcher", "currency", "currencyDisplay", "useGrouping"] }, { kind: "component", type: MngAutocompleteComponent, selector: "mng-autocomplete", inputs: ["dataProvider", "dataKeyProperty", "itemsValueProperty", "itemsLabelProperty", "itemsLabelTranslate", "inlineSearch", "openOnFocus", "multiselect", "placeholder", "className", "dropdownClassName"], outputs: ["valueChange"] }, { kind: "component", type: MngDropdownComponent, selector: "mng-dropdown", inputs: ["dataProvider", "dataKeyProperty", "itemsLabelProperty", "itemsLabelTranslate", "itemsValueProperty", "itemsDisabledProperty", "multiselect", "placeholder", "showClear", "selectFirstItem", "className", "dropdownClassName", "changeValueOnBlur"], outputs: ["valueChange"] }, { kind: "pipe", type: i1$2.TranslatePipe, name: "translate" }] });
9377
+ MngTableColumnFilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: MngTableColumnFilterComponent, selector: "mng-table-column-filter", inputs: { descriptor: "descriptor", display: "display" }, viewQueries: [{ propertyName: "primeColumnFilter", first: true, predicate: ColumnFilter, descendants: true }], ngImport: i0, template: "<p-columnFilter\n class=\"ml-auto\"\n [type]=\"primeType\"\n [field]=\"descriptor.property\"\n [display]=\"primeDisplay\"\n [matchMode]=\"$any(primeDefaultMatchMode)\"\n [matchModeOptions]=\"$any(primeMatchModes)\"\n [placeholder]=\"descriptor.placeholder ?? 'mngTable.typeToFilter' | translate\"\n [showMatchModes]=\"true\"\n [showOperator]=\"false\"\n [showAddButton]=\"false\"\n [hideOnClear]=\"true\"\n [showMenu]=\"primeShowMatchMode\"\n [minFractionDigits]=\"$any(descriptor.numberMinFractionDigits)\"\n [maxFractionDigits]=\"$any(descriptor.numberMaxFractionDigits)\"\n [useGrouping]=\"descriptor.numberUseGrouping\">\n <ng-template *ngIf=\"primeType === 'date'\" pTemplate=\"filter\" let-value let-filterCallback=\"filterCallback\">\n <ng-container *ngIf=\"activeMatchMode === 'between'; else datePicker\">\n <mng-date-range\n [ngModel]=\"value\"\n (ngModelChange)=\"dateFilter($event, filterCallback)\"\n [showTime]=\"descriptor.datePickerShowTime\"\n [dateFormat]=\"descriptor.datePickerFormat\"\n [placeholder]=\"descriptor.placeholder ?? 'mngTable.typeToFilter' | translate\"></mng-date-range>\n </ng-container>\n <ng-template #datePicker>\n <p-calendar\n appendTo=\"body\"\n [ngModel]=\"value\"\n (ngModelChange)=\"dateFilter($event, filterCallback)\"\n [placeholder]=\"descriptor.placeholder ?? 'mngTable.typeToFilter' | translate\"\n [showIcon]=\"true\"\n [dateFormat]=\"descriptor.datePickerFormat ?? 'dd.mm.yy'\"\n [showTime]=\"descriptor.datePickerShowTime\">\n </p-calendar>\n </ng-template>\n </ng-template>\n <ng-template *ngIf=\"lookupDescriptor\" pTemplate=\"filter\" let-value let-filterCallback=\"filterCallback\">\n <ng-container [ngSwitch]=\"lookupDescriptor.lookupType\">\n <mng-autocomplete\n *ngSwitchCase=\"lookupTypeAutocomplete\"\n [ngModel]=\"value\"\n [dataProvider]=\"lookupDescriptor.dataProvider\"\n [dataKeyProperty]=\"lookupDescriptor.dataKeyProperty\"\n [itemsValueProperty]=\"lookupDescriptor.itemsValueProperty\"\n [itemsLabelProperty]=\"lookupDescriptor.itemsLabelProperty\"\n [itemsLabelTranslate]=\"lookupDescriptor.itemsLabelTranslate\"\n [multiselect]=\"lookupDescriptor.multiselect\"\n [openOnFocus]=\"lookupDescriptor.autocompleteOpenOnFocus\"\n [inlineSearch]=\"lookupDescriptor.autocompleteInlineSearch\"\n [placeholder]=\"descriptor.placeholder ?? 'mngTable.searchToFilter' | translate\"\n [className]=\"lookupDescriptor.className\"\n [dropdownClassName]=\"lookupDescriptor.dropdownClassName\"\n (valueChange)=\"autocompleteFilter($event, filterCallback)\">\n </mng-autocomplete>\n <mng-dropdown\n *ngSwitchCase=\"lookupTypeDropdown\"\n [ngModel]=\"value\"\n [dataProvider]=\"lookupDescriptor.dataProvider\"\n [itemsValueProperty]=\"lookupDescriptor.itemsValueProperty\"\n [itemsLabelProperty]=\"lookupDescriptor.itemsLabelProperty\"\n [itemsLabelTranslate]=\"lookupDescriptor.itemsLabelTranslate\"\n [multiselect]=\"lookupDescriptor.multiselect\"\n [placeholder]=\"descriptor.placeholder ?? 'mngTable.selectToFilter' | translate\"\n [className]=\"lookupDescriptor.className\"\n [dropdownClassName]=\"lookupDescriptor.dropdownClassName\"\n [showClear]=\"false\"\n [changeValueOnBlur]=\"lookupDescriptor.multiselect\"\n (valueChange)=\"dropdownFilter($event, filterCallback)\">\n </mng-dropdown>\n </ng-container>\n </ng-template>\n</p-columnFilter>\n", dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1$1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i4$3.Calendar, selector: "p-calendar", inputs: ["style", "styleClass", "inputStyle", "inputId", "name", "inputStyleClass", "placeholder", "ariaLabelledBy", "iconAriaLabel", "disabled", "dateFormat", "multipleSeparator", "rangeSeparator", "inline", "showOtherMonths", "selectOtherMonths", "showIcon", "icon", "appendTo", "readonlyInput", "shortYearCutoff", "monthNavigator", "yearNavigator", "hourFormat", "timeOnly", "stepHour", "stepMinute", "stepSecond", "showSeconds", "required", "showOnFocus", "showWeek", "showClear", "dataType", "selectionMode", "maxDateCount", "showButtonBar", "todayButtonStyleClass", "clearButtonStyleClass", "autoZIndex", "baseZIndex", "panelStyleClass", "panelStyle", "keepInvalid", "hideOnDateTimeSelect", "touchUI", "timeSeparator", "focusTrap", "showTransitionOptions", "hideTransitionOptions", "tabindex", "view", "defaultDate", "minDate", "maxDate", "disabledDates", "disabledDays", "yearRange", "showTime", "responsiveOptions", "numberOfMonths", "firstDayOfWeek", "locale"], outputs: ["onFocus", "onBlur", "onClose", "onSelect", "onClear", "onInput", "onTodayClick", "onClearClick", "onMonthChange", "onYearChange", "onClickOutside", "onShow"] }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i6$4.ColumnFilter, selector: "p-columnFilter", inputs: ["field", "type", "display", "showMenu", "matchMode", "operator", "showOperator", "showClearButton", "showApplyButton", "showMatchModes", "showAddButton", "hideOnClear", "placeholder", "matchModeOptions", "maxConstraints", "minFractionDigits", "maxFractionDigits", "prefix", "suffix", "locale", "localeMatcher", "currency", "currencyDisplay", "useGrouping"] }, { kind: "component", type: MngAutocompleteComponent, selector: "mng-autocomplete", inputs: ["dataProvider", "dataKeyProperty", "itemsValueProperty", "itemsLabelProperty", "itemsLabelTranslate", "inlineSearch", "openOnFocus", "multiselect", "placeholder", "className", "dropdownClassName"], outputs: ["valueChange"] }, { kind: "component", type: MngDropdownComponent, selector: "mng-dropdown", inputs: ["dataProvider", "dataKeyProperty", "itemsLabelProperty", "itemsLabelTranslate", "itemsValueProperty", "itemsDisabledProperty", "multiselect", "placeholder", "showClear", "selectFirstItem", "className", "dropdownClassName", "changeValueOnBlur"], outputs: ["valueChange"] }, { kind: "component", type: MngDateRangeComponent, selector: "mng-date-range", inputs: ["placeholder", "showTime", "showSeconds", "dateFormat"] }, { kind: "pipe", type: i1$2.TranslatePipe, name: "translate" }] });
9068
9378
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: MngTableColumnFilterComponent, decorators: [{
9069
9379
  type: Component,
9070
- args: [{ selector: 'mng-table-column-filter', template: "<p-columnFilter\n class=\"ml-auto\"\n [type]=\"primeType\"\n [field]=\"descriptor.property\"\n [display]=\"primeDisplay\"\n [matchMode]=\"primeDefaultMatchMode\"\n [matchModeOptions]=\"$any(primeMatchModes)\"\n [placeholder]=\"descriptor.placeholder ?? 'mngTable.typeToFilter' | translate\"\n [showMatchModes]=\"true\"\n [showOperator]=\"false\"\n [showAddButton]=\"false\"\n [hideOnClear]=\"true\"\n [showMenu]=\"primeShowMatchMode\"\n [minFractionDigits]=\"$any(descriptor.numberMinFractionDigits)\"\n [maxFractionDigits]=\"$any(descriptor.numberMaxFractionDigits)\"\n [useGrouping]=\"descriptor.numberUseGrouping\">\n <ng-template *ngIf=\"primeType === 'date'\" pTemplate=\"filter\" let-value let-filterCallback=\"filterCallback\">\n <p-calendar\n appendTo=\"body\"\n [ngModel]=\"value\"\n (ngModelChange)=\"dateFilter($event, filterCallback)\"\n [placeholder]=\"descriptor.placeholder ?? 'mngTable.typeToFilter' | translate\"\n [showIcon]=\"true\"\n [dateFormat]=\"descriptor.datePickerFormat ?? 'dd.mm.yy'\"\n [showTime]=\"descriptor.datePickerShowTime\">\n </p-calendar>\n </ng-template>\n <ng-template *ngIf=\"lookupDescriptor\" pTemplate=\"filter\" let-value let-filterCallback=\"filterCallback\">\n <ng-container [ngSwitch]=\"lookupDescriptor.lookupType\">\n <mng-autocomplete\n *ngSwitchCase=\"lookupTypeAutocomplete\"\n [ngModel]=\"value\"\n [dataProvider]=\"lookupDescriptor.dataProvider\"\n [dataKeyProperty]=\"lookupDescriptor.dataKeyProperty\"\n [itemsValueProperty]=\"lookupDescriptor.itemsValueProperty\"\n [itemsLabelProperty]=\"lookupDescriptor.itemsLabelProperty\"\n [itemsLabelTranslate]=\"lookupDescriptor.itemsLabelTranslate\"\n [multiselect]=\"lookupDescriptor.multiselect\"\n [openOnFocus]=\"lookupDescriptor.autocompleteOpenOnFocus\"\n [inlineSearch]=\"lookupDescriptor.autocompleteInlineSearch\"\n [placeholder]=\"descriptor.placeholder ?? 'mngTable.searchToFilter' | translate\"\n [className]=\"lookupDescriptor.className\"\n [dropdownClassName]=\"lookupDescriptor.dropdownClassName\"\n (valueChange)=\"autocompleteFilter($event, filterCallback)\">\n </mng-autocomplete>\n <mng-dropdown\n *ngSwitchCase=\"lookupTypeDropdown\"\n [ngModel]=\"value\"\n [dataProvider]=\"lookupDescriptor.dataProvider\"\n [itemsValueProperty]=\"lookupDescriptor.itemsValueProperty\"\n [itemsLabelProperty]=\"lookupDescriptor.itemsLabelProperty\"\n [itemsLabelTranslate]=\"lookupDescriptor.itemsLabelTranslate\"\n [multiselect]=\"lookupDescriptor.multiselect\"\n [placeholder]=\"descriptor.placeholder ?? 'mngTable.selectToFilter' | translate\"\n [className]=\"lookupDescriptor.className\"\n [dropdownClassName]=\"lookupDescriptor.dropdownClassName\"\n [showClear]=\"false\"\n [changeValueOnBlur]=\"lookupDescriptor.multiselect\"\n (valueChange)=\"dropdownFilter($event, filterCallback)\">\n </mng-dropdown>\n </ng-container>\n </ng-template>\n</p-columnFilter>\n" }]
9380
+ args: [{ selector: 'mng-table-column-filter', template: "<p-columnFilter\n class=\"ml-auto\"\n [type]=\"primeType\"\n [field]=\"descriptor.property\"\n [display]=\"primeDisplay\"\n [matchMode]=\"$any(primeDefaultMatchMode)\"\n [matchModeOptions]=\"$any(primeMatchModes)\"\n [placeholder]=\"descriptor.placeholder ?? 'mngTable.typeToFilter' | translate\"\n [showMatchModes]=\"true\"\n [showOperator]=\"false\"\n [showAddButton]=\"false\"\n [hideOnClear]=\"true\"\n [showMenu]=\"primeShowMatchMode\"\n [minFractionDigits]=\"$any(descriptor.numberMinFractionDigits)\"\n [maxFractionDigits]=\"$any(descriptor.numberMaxFractionDigits)\"\n [useGrouping]=\"descriptor.numberUseGrouping\">\n <ng-template *ngIf=\"primeType === 'date'\" pTemplate=\"filter\" let-value let-filterCallback=\"filterCallback\">\n <ng-container *ngIf=\"activeMatchMode === 'between'; else datePicker\">\n <mng-date-range\n [ngModel]=\"value\"\n (ngModelChange)=\"dateFilter($event, filterCallback)\"\n [showTime]=\"descriptor.datePickerShowTime\"\n [dateFormat]=\"descriptor.datePickerFormat\"\n [placeholder]=\"descriptor.placeholder ?? 'mngTable.typeToFilter' | translate\"></mng-date-range>\n </ng-container>\n <ng-template #datePicker>\n <p-calendar\n appendTo=\"body\"\n [ngModel]=\"value\"\n (ngModelChange)=\"dateFilter($event, filterCallback)\"\n [placeholder]=\"descriptor.placeholder ?? 'mngTable.typeToFilter' | translate\"\n [showIcon]=\"true\"\n [dateFormat]=\"descriptor.datePickerFormat ?? 'dd.mm.yy'\"\n [showTime]=\"descriptor.datePickerShowTime\">\n </p-calendar>\n </ng-template>\n </ng-template>\n <ng-template *ngIf=\"lookupDescriptor\" pTemplate=\"filter\" let-value let-filterCallback=\"filterCallback\">\n <ng-container [ngSwitch]=\"lookupDescriptor.lookupType\">\n <mng-autocomplete\n *ngSwitchCase=\"lookupTypeAutocomplete\"\n [ngModel]=\"value\"\n [dataProvider]=\"lookupDescriptor.dataProvider\"\n [dataKeyProperty]=\"lookupDescriptor.dataKeyProperty\"\n [itemsValueProperty]=\"lookupDescriptor.itemsValueProperty\"\n [itemsLabelProperty]=\"lookupDescriptor.itemsLabelProperty\"\n [itemsLabelTranslate]=\"lookupDescriptor.itemsLabelTranslate\"\n [multiselect]=\"lookupDescriptor.multiselect\"\n [openOnFocus]=\"lookupDescriptor.autocompleteOpenOnFocus\"\n [inlineSearch]=\"lookupDescriptor.autocompleteInlineSearch\"\n [placeholder]=\"descriptor.placeholder ?? 'mngTable.searchToFilter' | translate\"\n [className]=\"lookupDescriptor.className\"\n [dropdownClassName]=\"lookupDescriptor.dropdownClassName\"\n (valueChange)=\"autocompleteFilter($event, filterCallback)\">\n </mng-autocomplete>\n <mng-dropdown\n *ngSwitchCase=\"lookupTypeDropdown\"\n [ngModel]=\"value\"\n [dataProvider]=\"lookupDescriptor.dataProvider\"\n [itemsValueProperty]=\"lookupDescriptor.itemsValueProperty\"\n [itemsLabelProperty]=\"lookupDescriptor.itemsLabelProperty\"\n [itemsLabelTranslate]=\"lookupDescriptor.itemsLabelTranslate\"\n [multiselect]=\"lookupDescriptor.multiselect\"\n [placeholder]=\"descriptor.placeholder ?? 'mngTable.selectToFilter' | translate\"\n [className]=\"lookupDescriptor.className\"\n [dropdownClassName]=\"lookupDescriptor.dropdownClassName\"\n [showClear]=\"false\"\n [changeValueOnBlur]=\"lookupDescriptor.multiselect\"\n (valueChange)=\"dropdownFilter($event, filterCallback)\">\n </mng-dropdown>\n </ng-container>\n </ng-template>\n</p-columnFilter>\n" }]
9071
9381
  }], ctorParameters: function () { return [{ type: i2.PrimeNGConfig }]; }, propDecorators: { descriptor: [{
9072
9382
  type: Input
9073
9383
  }], display: [{
9074
9384
  type: Input
9385
+ }], primeColumnFilter: [{
9386
+ type: ViewChild,
9387
+ args: [ColumnFilter]
9075
9388
  }] } });
9076
9389
 
9077
9390
  class MngTableComponent {
@@ -9426,7 +9739,7 @@ class MngTableComponent {
9426
9739
  matchMode = FilterMatchMode.CONTAINS;
9427
9740
  break;
9428
9741
  case FilterTypeEnum.Date:
9429
- matchMode = FilterMatchMode.DATE_AFTER;
9742
+ matchMode = FilterMatchMode.DATE_IS;
9430
9743
  break;
9431
9744
  case FilterTypeEnum.Lookup:
9432
9745
  case FilterTypeEnum.LookupEnum: {
@@ -9458,6 +9771,11 @@ class MngTableComponent {
9458
9771
  if (typeof filterValue === 'string' || typeof filterValue === 'number') {
9459
9772
  filterValue = new Date(filterValue);
9460
9773
  }
9774
+ // if range is provided, take that into account
9775
+ if (typeof f.filterValueTo === 'string' || typeof f.filterValueTo === 'number') {
9776
+ const filterValueTo = new Date(f.filterValueTo);
9777
+ filterValue = [filterValue, filterValueTo];
9778
+ }
9461
9779
  }
9462
9780
  primeFilterMeta[descriptor.property] = {
9463
9781
  value: filterValue,
@@ -11218,6 +11536,7 @@ const declarations = [
11218
11536
  // mng fields
11219
11537
  MngAutocompleteComponent,
11220
11538
  MngDropdownComponent,
11539
+ MngDateRangeComponent,
11221
11540
  // formly wrappers
11222
11541
  MngFormlyFieldWrapperComponent,
11223
11542
  MngFormlyTableWrapperComponent,
@@ -11342,6 +11661,7 @@ MngCommonsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", versio
11342
11661
  // mng fields
11343
11662
  MngAutocompleteComponent,
11344
11663
  MngDropdownComponent,
11664
+ MngDateRangeComponent,
11345
11665
  // formly wrappers
11346
11666
  MngFormlyFieldWrapperComponent,
11347
11667
  MngFormlyTableWrapperComponent,
@@ -11462,6 +11782,7 @@ MngCommonsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", versio
11462
11782
  // mng fields
11463
11783
  MngAutocompleteComponent,
11464
11784
  MngDropdownComponent,
11785
+ MngDateRangeComponent,
11465
11786
  // formly wrappers
11466
11787
  MngFormlyFieldWrapperComponent,
11467
11788
  MngFormlyTableWrapperComponent,
@@ -12327,5 +12648,5 @@ class TableviewRouteBuilder {
12327
12648
  * Generated bundle index. Do not edit.
12328
12649
  */
12329
12650
 
12330
- export { ACTION_EDITOR_DIALOG_COMPONENT_SETTING, AFieldDescriptor, AFieldGroupDescriptor, AGenericFieldDescriptor, AMngApiService, AMngBaseApiService, AMngCrudApiService, AMngGetAllApiService, AMngTableviewRouteComponent, APermissions, ActionActivationTriggerEnum, ActionConfirmationDialogDescriptor, ActionContext, ActionContextValidation, ActionDataProviderUtil, ActionDeleteDescriptor, ActionDescriptor, ActionEditorAddDescriptor, ActionEditorDescriptor, ActionEditorDetailsDescriptor, ActionEditorDialogSizeEnum, ActionEditorEditDescriptor, ActionEditorSubmitDescriptor, ActionEditorSubmitTypeEnum, ActionError, ActionInstance, ActionInstanceStateEnum, ActionLevelEnum, ActionLinkDescriptor, ActionParameters, ActionPositionEnum, ActionSimpleDescriptor, ActionSizeEnum, ActionTypeEnum, AuthorizationTypeEnum, AuthorizationUtil, ButtonDescriptor, ButtonStyleBuilder, ButtonStyleRoundedEnum, ColumnDescriptor, ColumnDynamicDescriptor, ColumnTypeEnum, DataProvider, DefaultMngErrorMapperService, DynamicTableviewDataProvider, EditorDataProvider, EditorDescriptor, EditorFormlyUtil, EnumName, EnumUtil, FieldGroupDescriptor, FieldGroupTypeEnum, FieldInputDescriptor, FieldInputTypeEnum, FieldLookupDescriptor, FieldLookupEnumDescriptor, FieldLookupTypeEnum, FieldManyEditorActionEnum, FieldManyEditorDescriptor, FieldManyEditorTypeEnum, FieldManyToManyEditorActionEnum, FieldManyToManyEditorDescriptor, FieldManyToManyEditorTypeEnum, FieldSizeEnum, FieldTabGroupDescriptor, FieldValidationDescriptor, FilterDescriptor, FilterLookupDescriptor, FilterLookupEnumDescriptor, FilterLookupTypeEnum, FilterMatchModeEnum, FilterTypeEnum, I18nUtils, JsonPathPipe, LookupDataProvider, MNG_AUTOCOMPLETE_VALUE_ACCESSOR, MNG_BROWSER_STORAGE_IT, MNG_COMMONS_INITIALIZER_IT, MNG_DROPDOWN_VALUE_ACCESSOR, MNG_MODULE_CONFIG_IT, MediusFilterMatchType, MediusFilterParam, MediusQueryMode, MediusQueryParam, MediusQueryParamBuilder, MediusQueryResult, MediusRestUtil, MngActionComponent, MngActionEditorComponent, MngActionExecutorService, MngActionRouteComponent, MngAuthorizationGuard, MngAuthorizationService, MngAutocompleteComponent, MngBooleanPipe, MngBreadcrumbComponent, MngButtonComponent, MngClassMapPipe, MngCommonsModule, MngCommonsService, MngComponentDirective, MngConfigurationService, MngDropdownComponent, MngEnumPipe, MngErrorMapperService, MngFooterComponent, MngFormEditorComponent, MngFormEditorSubmitEvent, MngFormFieldEvent, MngFormFieldEventComponentSubtype, MngFormFieldEventDialogSubtype, MngFormFieldEventTypeEnum, MngFormlyFieldAutocompleteComponent, MngFormlyFieldDropdownComponent, MngFormlyFieldFieldsetComponent, MngFormlyFieldInputComponent, MngFormlyFieldLabelComponent, MngFormlyFieldLookupDialogComponent, MngFormlyFieldTableDialogFormComponent, MngFormlyFieldTableDialogMultiselectComponent, MngFormlyFieldTabsComponent, MngFormlyFieldWrapperComponent, MngFormlyTableWrapperComponent, MngGetterPipe, MngI18nPropertyPipe, MngMainLayoutComponent, MngMainLayoutComponentService, MngMenuComponent, MngMenuItemComponent, MngNavigationService, MngParametrizePipe, MngTableCellClickEvent, MngTableColumnFilterComponent, MngTableColumnValueComponent, MngTableComponent, MngTableLoadEvent, MngTableReloadEvent, MngTableviewComponent, MngTableviewRouteComponent, MngTemplateDirective, MngTemplatePipe, MngTopbarComponent, MngVersionComponent, MngViewContainerComponentService, ModelDescriptor, ModelUtil, NotificationUtil, ObjectSerializer, Permissions, RouteBuilder, RoutesBuilder, StringUtil, StylesUtil, TableDataProvider, TableDescriptor, TableDynamicColumnsModeEnum, TableDynamicDescriptor, TableFilterDisplayEnum, TablePaginationModeEnum, TableSizeEnum, TableviewActionDefaultCategories, TableviewCrudDataProvider, TableviewDataProvider, TableviewDescriptor, TableviewDynamicDescriptor, TableviewRouteBuilder, TableviewTypeEnum, TypeName, TypeUtil, enumNameDecoratorPropertyName, enumsMapBase, formlyTypesConfig, formlyWrappersConfig, getEmailValidationMessage, getFormlyValidationMessages, getMaxLengthValidationMessage, getMinLengthValidationMessage, getRequiredValidationMessage, getTextPatternValidationMessage, mngConfigJsonAppInitializerProvider, mngConfigurationServiceProvider, mngFormlyConfigProvider, primeNgModules, typeMapBase, typeNameDecoratorPropertyName };
12651
+ export { ACTION_EDITOR_DIALOG_COMPONENT_SETTING, AFieldDescriptor, AFieldGroupDescriptor, AGenericFieldDescriptor, AMngApiService, AMngBaseApiService, AMngCrudApiService, AMngGetAllApiService, AMngTableviewRouteComponent, APermissions, ActionActivationTriggerEnum, ActionConfirmationDialogDescriptor, ActionContext, ActionContextValidation, ActionDataProviderUtil, ActionDeleteDescriptor, ActionDescriptor, ActionEditorAddDescriptor, ActionEditorDescriptor, ActionEditorDetailsDescriptor, ActionEditorDialogSizeEnum, ActionEditorEditDescriptor, ActionEditorSubmitDescriptor, ActionEditorSubmitTypeEnum, ActionError, ActionInstance, ActionInstanceStateEnum, ActionLevelEnum, ActionLinkDescriptor, ActionParameters, ActionPositionEnum, ActionSimpleDescriptor, ActionSizeEnum, ActionTypeEnum, AuthorizationTypeEnum, AuthorizationUtil, ButtonDescriptor, ButtonStyleBuilder, ButtonStyleRoundedEnum, ColumnDescriptor, ColumnDynamicDescriptor, ColumnTypeEnum, DataProvider, DateUtil, DefaultMngErrorMapperService, DynamicTableviewDataProvider, EditorDataProvider, EditorDescriptor, EditorFormlyUtil, EnumName, EnumUtil, FieldGroupDescriptor, FieldGroupTypeEnum, FieldInputDescriptor, FieldInputTypeEnum, FieldLookupDescriptor, FieldLookupEnumDescriptor, FieldLookupTypeEnum, FieldManyEditorActionEnum, FieldManyEditorDescriptor, FieldManyEditorTypeEnum, FieldManyToManyEditorActionEnum, FieldManyToManyEditorDescriptor, FieldManyToManyEditorTypeEnum, FieldSizeEnum, FieldTabGroupDescriptor, FieldValidationDescriptor, FilterDescriptor, FilterLookupDescriptor, FilterLookupEnumDescriptor, FilterLookupTypeEnum, FilterMatchModeEnum, FilterTypeEnum, I18nUtils, 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, MngButtonComponent, MngClassMapPipe, MngCommonsModule, MngCommonsService, MngComponentDirective, MngConfigurationService, MngDateRangeComponent, MngDropdownComponent, MngEnumPipe, MngErrorMapperService, MngFooterComponent, MngFormEditorComponent, MngFormEditorSubmitEvent, MngFormFieldEvent, MngFormFieldEventComponentSubtype, MngFormFieldEventDialogSubtype, MngFormFieldEventTypeEnum, MngFormlyFieldAutocompleteComponent, MngFormlyFieldDropdownComponent, MngFormlyFieldFieldsetComponent, MngFormlyFieldInputComponent, MngFormlyFieldLabelComponent, MngFormlyFieldLookupDialogComponent, MngFormlyFieldTableDialogFormComponent, MngFormlyFieldTableDialogMultiselectComponent, MngFormlyFieldTabsComponent, MngFormlyFieldWrapperComponent, MngFormlyTableWrapperComponent, MngGetterPipe, MngI18nPropertyPipe, MngMainLayoutComponent, MngMainLayoutComponentService, MngMenuComponent, MngMenuItemComponent, MngNavigationService, MngParametrizePipe, MngTableCellClickEvent, MngTableColumnFilterComponent, MngTableColumnValueComponent, MngTableComponent, MngTableLoadEvent, MngTableReloadEvent, MngTableviewComponent, MngTableviewRouteComponent, MngTemplateDirective, MngTemplatePipe, MngTopbarComponent, MngVersionComponent, MngViewContainerComponentService, ModelDescriptor, ModelUtil, NotificationUtil, ObjectSerializer, Permissions, RouteBuilder, RoutesBuilder, StringUtil, StylesUtil, TableDataProvider, TableDescriptor, TableDynamicColumnsModeEnum, TableDynamicDescriptor, TableFilterDisplayEnum, TablePaginationModeEnum, TableSizeEnum, TableviewActionDefaultCategories, TableviewCrudDataProvider, TableviewDataProvider, TableviewDescriptor, TableviewDynamicDescriptor, TableviewRouteBuilder, TableviewTypeEnum, TypeName, TypeUtil, enumNameDecoratorPropertyName, enumsMapBase, formlyTypesConfig, formlyWrappersConfig, getEmailValidationMessage, getFormlyValidationMessages, getMaxLengthValidationMessage, getMinLengthValidationMessage, getRequiredValidationMessage, getTextPatternValidationMessage, mngConfigJsonAppInitializerProvider, mngConfigurationServiceProvider, mngFormlyConfigProvider, primeNgModules, typeMapBase, typeNameDecoratorPropertyName };
12331
12652
  //# sourceMappingURL=mediusinc-mng-commons.mjs.map