@sumaris-net/ngx-components 0.11.1 → 0.11.3

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.
@@ -487,6 +487,9 @@
487
487
  return value;
488
488
  return value.replace(/([a-z])([A-Z])/g, '$1_$2').toLowerCase();
489
489
  }
490
+ function removeDiacritics(text) {
491
+ return text.normalize('NFD').replace(/[\u0300-\u036f]/g, '');
492
+ }
490
493
  function suggestFromArray(items, value, opts) {
491
494
  if (isNotNil(value) && typeof value === 'object')
492
495
  return { data: [value] };
@@ -1123,6 +1126,7 @@
1123
1126
  this.readonly = false;
1124
1127
  this.clearable = false;
1125
1128
  this.debounceTime = null;
1129
+ this.highlightAccent = false;
1126
1130
  this.i18nPrefix = 'REFERENTIAL.';
1127
1131
  this.noResultMessage = 'COMMON.NO_RESULT';
1128
1132
  this.matAutocompletePosition = 'auto';
@@ -1663,7 +1667,7 @@
1663
1667
  { type: i0.Component, args: [{
1664
1668
  // eslint-disable-next-line @angular-eslint/component-selector
1665
1669
  selector: 'mat-autocomplete-field',
1666
- template: "<ion-grid class=\"ion-no-padding\">\n <ion-row>\n <ion-col class=\"ion-no-padding\">\n <mat-form-field [floatLabel]=\"floatLabel\"\n [class.mat-form-field-disabled]=\"disabled\"\n [title]=\"displayValue\">\n\n <div matPrefix><ng-content select=\"[matPrefix]\"></ng-content></div>\n\n <!-- readonly -->\n <ng-container *ngIf=\"readonly; else writable\">\n <input matInput hidden type=\"text\"\n [placeholder]=\"placeholder\"\n [formControl]=\"formControl\"\n readonly>\n <ion-label>{{ displayWith(value) }}&nbsp;</ion-label>\n </ng-container>\n\n <ng-template #writable>\n\n <!-- Basic select -->\n <mat-select #matSelect\n *ngIf=\"!searchable; else searchableTemplate\"\n [placeholder]=\"placeholder\"\n [formControl]=\"formControl\"\n [tabindex]=\"_tabindex\"\n [panelClass]=\"classList\"\n [style.width]=\"panelWidth\"\n (focus)=\"filterMatSelectFocusEvent($event)\"\n (blur)=\"filterMatSelectBlurEvent($event)\"\n [compareWith]=\"compareWith\"\n [multiple]=\"multiple\">\n <mat-select-trigger>{{ displayWith(value) }}</mat-select-trigger>\n\n <!-- header -->\n <ion-row class=\"mat-autocomplete-header ion-no-padding\">\n <ion-col *ngFor=\"let attr of displayAttributes; index as i; last as isLast\" [size]=\"displayColumnSizes[i]\" >\n <ion-label [innerHTML]=\"displayColumnNames[i] | translate\"></ion-label>\n </ion-col>\n </ion-row>\n\n <!-- None option -->\n <mat-option *ngIf=\"!required\" class=\"ion-no-padding\">\n <ion-row class=\"ion-no-padding\">\n <ion-col class=\"ion-no-padding\">\n <ion-label><i translate>COMMON.EMPTY_OPTION</i></ion-label>\n </ion-col>\n </ion-row>\n </mat-option>\n\n <ng-container *ngIf=\"$filteredItems | async; let items\">\n <!-- No item option -->\n <mat-option *ngIf=\"items | isEmptyArray\" class=\"ion-padding text-italic\" disabled>\n <ion-label>{{noResultMessage | translate}}</ion-label>\n </mat-option>\n\n <!-- options -->\n <mat-option *ngFor=\"let item of items\" [value]=\"item\" class=\"ion-no-padding\">\n <ion-row [classList]=\"item.classList\">\n <ion-col *ngFor=\"let path of displayAttributes; index as i;\"\n [size]=\"displayColumnSizes[i]\">\n <ion-text>{{item | propertyGet: path }}</ion-text>\n </ion-col>\n </ion-row>\n </mat-option>\n\n <!-- More item -->\n <a class=\"ion-padding mat-option \"\n *ngIf=\"_moreItemsCount\"\n (click)=\"_fetchMore$.emit($event)\" >\n <ion-label color=\"primary\" style=\"width: 100%;\">\n <span translate>COMMON.BTN_SHOW_MORE</span>\n <mat-icon class=\"ion-color-primary\">expand_more</mat-icon>\n </ion-label>\n </a>\n </ng-container>\n </mat-select>\n </ng-template>\n\n <!--\n NOTE :\n - \"selectInputContent($event) || onFocus.emit($event)\" : call onFocus only when to the input is empty (nothing to select)\n -->\n <ng-template #searchableTemplate>\n <input matInput #matInputText type=\"text\"\n [matAutocomplete]=\"autoComplete\"\n [matAutocompletePosition]=\"matAutocompletePosition\"\n [formControl]=\"formControl\"\n [placeholder]=\"placeholder\"\n [appAutofocus]=\"appAutofocus\"\n [tabindex]=\"_tabindex\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n (click)=\"onClick.emit($event)\"\n (blur)=\"onBlur.emit($event)\"\n (focus)=\"filterInputTextFocusEvent($event)\"\n (keyup.arrowdown)=\"!autoComplete.showPanel && onDropButtonClick.emit($event)\">\n\n <!-- autocomplete -->\n <mat-autocomplete #autoComplete=\"matAutocomplete\"\n autoActiveFirstOption\n [displayWith]=\"displayWith\"\n [class]=\"classList\"\n [class.cdk-visually-hidden]=\"!searchable\"\n [panelWidth]=\"panelWidth\">\n\n <ion-row class=\"mat-autocomplete-header ion-no-padding\">\n <ion-col *ngFor=\"let attr of displayAttributes; index as i; last as last\" [size]=\"displayColumnSizes[i]\" >\n <ion-label [innerHTML]=\"displayColumnNames[i] | translate\"></ion-label>\n <ion-text color=\"light\" *ngIf=\"last && itemCount; let count \" class=\"ion-float-end ion-padding-end\"><i>{{'COMMON.RESULT_COUNT'|translate: {count: count} }}</i></ion-text>\n </ion-col>\n </ion-row>\n\n <ng-container *ngIf=\"$filteredItems | async; else loadingTemplate; let items\">\n <!-- No item option -->\n <mat-option *ngIf=\"items | isEmptyArray\" class=\"ion-padding text-italic\" disabled>\n <ion-label>{{noResultMessage | translate}}</ion-label>\n </mat-option>\n\n <mat-option *ngFor=\"let item of items\" [value]=\"item\" class=\"ion-no-padding\" >\n <ion-row [classList]=\"item.classList\">\n <ion-col *ngFor=\"let path of displayAttributes; index as i;\"\n [size]=\"displayColumnSizes[i]\">\n <ion-text [innerHTML]=\"item | propertyGet: path | highlight: formControl.value\"></ion-text>\n </ion-col>\n </ion-row>\n </mat-option>\n\n <!-- More item -->\n <mat-option *ngIf=\"_moreItemsCount\" (ngInit)=\"_initInfiniteScroll()\"\n class=\"ion-padding\" disabled>\n <ion-skeleton-text [animated]=\"true\" style=\"width: 100%\"></ion-skeleton-text>\n </mat-option>\n </ng-container>\n\n <!-- Loading spinner -->\n <ng-template #loadingTemplate>\n <mat-option *ngIf=\"(matInputText.value | strLength) >= suggestLengthThreshold; else waitMoreCharacterTemplate\"\n class=\"ion-padding\" disabled>\n <ion-skeleton-text [animated]=\"true\" style=\"width: 100%\"></ion-skeleton-text>\n </mat-option>\n </ng-template>\n\n <!-- Need more characters -->\n <ng-template #waitMoreCharacterTemplate>\n <mat-option class=\"ion-padding text-italic\" disabled>\n <ion-label>\n {{'INFO.PLEASE_TYPE_MORE_CHARACTERS'|translate:{minLength: suggestLengthThreshold} }}\n </ion-label>\n </mat-option>\n </ng-template>\n </mat-autocomplete>\n\n </ng-template>\n\n\n <button matSuffix mat-icon-button tabindex=\"-1\"\n type=\"button\"\n *ngIf=\"searchable\"\n (click)=\"onDropButtonClick.emit($event)\"\n [hidden]=\"disabled\">\n <mat-icon class=\"large select-arrow\">arrow_drop_down</mat-icon>\n </button>\n <button matSuffix type=\"button\" mat-icon-button tabindex=\"-1\"\n *ngIf=\"enabled && mobile && !searchable && !multiple\"\n [title]=\"'COMMON.BTN_SEARCH'|translate\"\n (click)=\"toggleSearch($event)\">\n <mat-icon>search</mat-icon>\n </button>\n <button matSuffix mat-icon-button tabindex=\"-1\"\n type=\"button\"\n *ngIf=\"clearable\"\n (click)=\"clearValue($event)\"\n [hidden]=\"disabled || !formControl.value\">\n <mat-icon>close</mat-icon>\n </button>\n\n <ng-content matSuffix select=\"[matSuffix]\"></ng-content>\n\n <mat-error *ngIf=\"formControl.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n <mat-error *ngIf=\"formControl.hasError('entity')\" translate>ERROR.FIELD_INVALID</mat-error>\n <ng-content select=\"[matError]\"></ng-content>\n\n </mat-form-field>\n </ion-col>\n <ion-col size=\"auto\" class=\"ion-align-self-center\">\n <ng-content select=\"[matAfter]\"></ng-content>\n </ion-col>\n </ion-row>\n\n</ion-grid>\n",
1670
+ template: "<ion-grid class=\"ion-no-padding\">\n <ion-row>\n <ion-col class=\"ion-no-padding\">\n <mat-form-field [floatLabel]=\"floatLabel\"\n [class.mat-form-field-disabled]=\"disabled\"\n [title]=\"displayValue\">\n\n <div matPrefix><ng-content select=\"[matPrefix]\"></ng-content></div>\n\n <!-- readonly -->\n <ng-container *ngIf=\"readonly; else writable\">\n <input matInput hidden type=\"text\"\n [placeholder]=\"placeholder\"\n [formControl]=\"formControl\"\n readonly>\n <ion-label>{{ displayWith(value) }}&nbsp;</ion-label>\n </ng-container>\n\n <ng-template #writable>\n\n <!-- Basic select -->\n <mat-select #matSelect\n *ngIf=\"!searchable; else searchableTemplate\"\n [placeholder]=\"placeholder\"\n [formControl]=\"formControl\"\n [tabindex]=\"_tabindex\"\n [panelClass]=\"classList\"\n [style.width]=\"panelWidth\"\n (focus)=\"filterMatSelectFocusEvent($event)\"\n (blur)=\"filterMatSelectBlurEvent($event)\"\n [compareWith]=\"compareWith\"\n [multiple]=\"multiple\">\n <mat-select-trigger>{{ displayWith(value) }}</mat-select-trigger>\n\n <!-- header -->\n <ion-row class=\"mat-autocomplete-header ion-no-padding\">\n <ion-col *ngFor=\"let attr of displayAttributes; index as i; last as isLast\" [size]=\"displayColumnSizes[i]\" >\n <ion-label [innerHTML]=\"displayColumnNames[i] | translate\"></ion-label>\n </ion-col>\n </ion-row>\n\n <!-- None option -->\n <mat-option *ngIf=\"!required\" class=\"ion-no-padding\">\n <ion-row class=\"ion-no-padding\">\n <ion-col class=\"ion-no-padding\">\n <ion-label><i translate>COMMON.EMPTY_OPTION</i></ion-label>\n </ion-col>\n </ion-row>\n </mat-option>\n\n <ng-container *ngIf=\"$filteredItems | async; let items\">\n <!-- No item option -->\n <mat-option *ngIf=\"items | isEmptyArray\" class=\"ion-padding text-italic\" disabled>\n <ion-label>{{noResultMessage | translate}}</ion-label>\n </mat-option>\n\n <!-- options -->\n <mat-option *ngFor=\"let item of items\" [value]=\"item\" class=\"ion-no-padding\">\n <ion-row [classList]=\"item.classList\">\n <ion-col *ngFor=\"let path of displayAttributes; index as i;\"\n [size]=\"displayColumnSizes[i]\">\n <ion-text>{{item | propertyGet: path }}</ion-text>\n </ion-col>\n </ion-row>\n </mat-option>\n\n <!-- More item -->\n <a class=\"ion-padding mat-option \"\n *ngIf=\"_moreItemsCount\"\n (click)=\"_fetchMore$.emit($event)\" >\n <ion-label color=\"primary\" style=\"width: 100%;\">\n <span translate>COMMON.BTN_SHOW_MORE</span>\n <mat-icon class=\"ion-color-primary\">expand_more</mat-icon>\n </ion-label>\n </a>\n </ng-container>\n </mat-select>\n </ng-template>\n\n <!--\n NOTE :\n - \"selectInputContent($event) || onFocus.emit($event)\" : call onFocus only when to the input is empty (nothing to select)\n -->\n <ng-template #searchableTemplate>\n <input matInput #matInputText type=\"text\"\n [matAutocomplete]=\"autoComplete\"\n [matAutocompletePosition]=\"matAutocompletePosition\"\n [formControl]=\"formControl\"\n [placeholder]=\"placeholder\"\n [appAutofocus]=\"appAutofocus\"\n [tabindex]=\"_tabindex\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n (click)=\"onClick.emit($event)\"\n (blur)=\"onBlur.emit($event)\"\n (focus)=\"filterInputTextFocusEvent($event)\"\n (keyup.arrowdown)=\"!autoComplete.showPanel && onDropButtonClick.emit($event)\">\n\n <!-- autocomplete -->\n <mat-autocomplete #autoComplete=\"matAutocomplete\"\n autoActiveFirstOption\n [displayWith]=\"displayWith\"\n [class]=\"classList\"\n [class.cdk-visually-hidden]=\"!searchable\"\n [panelWidth]=\"panelWidth\">\n\n <ion-row class=\"mat-autocomplete-header ion-no-padding\">\n <ion-col *ngFor=\"let attr of displayAttributes; index as i; last as last\" [size]=\"displayColumnSizes[i]\" >\n <ion-label [innerHTML]=\"displayColumnNames[i] | translate\"></ion-label>\n <ion-text color=\"light\" *ngIf=\"last && itemCount; let count \" class=\"ion-float-end ion-padding-end\"><i>{{'COMMON.RESULT_COUNT'|translate: {count: count} }}</i></ion-text>\n </ion-col>\n </ion-row>\n\n <ng-container *ngIf=\"$filteredItems | async; else loadingTemplate; let items\">\n <!-- No item option -->\n <mat-option *ngIf=\"items | isEmptyArray\" class=\"ion-padding text-italic\" disabled>\n <ion-label>{{noResultMessage | translate}}</ion-label>\n </mat-option>\n\n <mat-option *ngFor=\"let item of items\" [value]=\"item\" class=\"ion-no-padding\" >\n <ion-row [classList]=\"item.classList\">\n <ion-col *ngFor=\"let path of displayAttributes; index as i;\"\n [size]=\"displayColumnSizes[i]\">\n <ion-text [innerHTML]=\"item | propertyGet: path | highlight: { search: formControl.value, withAccent: highlightAccent }\"></ion-text>\n </ion-col>\n </ion-row>\n </mat-option>\n\n <!-- More item -->\n <mat-option *ngIf=\"_moreItemsCount\" (ngInit)=\"_initInfiniteScroll()\"\n class=\"ion-padding\" disabled>\n <ion-skeleton-text [animated]=\"true\" style=\"width: 100%\"></ion-skeleton-text>\n </mat-option>\n </ng-container>\n\n <!-- Loading spinner -->\n <ng-template #loadingTemplate>\n <mat-option *ngIf=\"(matInputText.value | strLength) >= suggestLengthThreshold; else waitMoreCharacterTemplate\"\n class=\"ion-padding\" disabled>\n <ion-skeleton-text [animated]=\"true\" style=\"width: 100%\"></ion-skeleton-text>\n </mat-option>\n </ng-template>\n\n <!-- Need more characters -->\n <ng-template #waitMoreCharacterTemplate>\n <mat-option class=\"ion-padding text-italic\" disabled>\n <ion-label>\n {{'INFO.PLEASE_TYPE_MORE_CHARACTERS'|translate:{minLength: suggestLengthThreshold} }}\n </ion-label>\n </mat-option>\n </ng-template>\n </mat-autocomplete>\n\n </ng-template>\n\n\n <button matSuffix mat-icon-button tabindex=\"-1\"\n type=\"button\"\n *ngIf=\"searchable\"\n (click)=\"onDropButtonClick.emit($event)\"\n [hidden]=\"disabled\">\n <mat-icon class=\"large select-arrow\">arrow_drop_down</mat-icon>\n </button>\n <button matSuffix type=\"button\" mat-icon-button tabindex=\"-1\"\n *ngIf=\"enabled && mobile && !searchable && !multiple\"\n [title]=\"'COMMON.BTN_SEARCH'|translate\"\n (click)=\"toggleSearch($event)\">\n <mat-icon>search</mat-icon>\n </button>\n <button matSuffix mat-icon-button tabindex=\"-1\"\n type=\"button\"\n *ngIf=\"clearable\"\n (click)=\"clearValue($event)\"\n [hidden]=\"disabled || !formControl.value\">\n <mat-icon>close</mat-icon>\n </button>\n\n <ng-content matSuffix select=\"[matSuffix]\"></ng-content>\n\n <mat-error *ngIf=\"formControl.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n <mat-error *ngIf=\"formControl.hasError('entity')\" translate>ERROR.FIELD_INVALID</mat-error>\n <ng-content select=\"[matError]\"></ng-content>\n\n </mat-form-field>\n </ion-col>\n <ion-col size=\"auto\" class=\"ion-align-self-center\">\n <ng-content select=\"[matAfter]\"></ng-content>\n </ion-col>\n </ion-row>\n\n</ion-grid>\n",
1667
1671
  providers: [DEFAULT_VALUE_ACCESSOR],
1668
1672
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
1669
1673
  styles: [":host{display:inline-block;position:relative}:host.ion-text-wrap ion-label{white-space:normal!important}button[hidden]{display:none}mat-icon.select-arrow{color:rgba(0,0,0,.47);font-size:150%}.fact-scroll-viewport{height:100%;width:100%}.fact-item{height:54px;display:flex}.fact-item .fact-date{min-width:100px;text-align:center;font-size:24pt}.fact-item .fact-date,.fact-item .fact-text{height:100%;align-items:center;justify-content:center;display:flex}.fact-item .fact-text{border-radius:10px}cdk-virtual-scroll-viewport{border:1px solid #000}cdk-virtual-scroll-viewport li{list-style:none}"]
@@ -1690,6 +1694,7 @@
1690
1694
  displayAttributes: [{ type: i0.Input }],
1691
1695
  displayColumnSizes: [{ type: i0.Input }],
1692
1696
  displayColumnNames: [{ type: i0.Input }],
1697
+ highlightAccent: [{ type: i0.Input }],
1693
1698
  showAllOnFocus: [{ type: i0.Input }],
1694
1699
  showPanelOnFocus: [{ type: i0.Input }],
1695
1700
  appAutofocus: [{ type: i0.Input }],
@@ -2130,18 +2135,35 @@
2130
2135
  var HighlightPipe = /** @class */ (function () {
2131
2136
  function HighlightPipe() {
2132
2137
  }
2138
+ // Replace search text by bold representation
2133
2139
  HighlightPipe.prototype.transform = function (value, args) {
2134
2140
  if (typeof value !== 'string' || !args)
2135
2141
  return value;
2136
2142
  var searchText = (typeof args === 'string' ? args : args.search);
2143
+ var withAccent = (typeof args !== 'string') ? toBoolean(args === null || args === void 0 ? void 0 : args.withAccent, false) : false;
2137
2144
  if (typeof searchText !== 'string')
2138
2145
  return value;
2139
2146
  var searchRegexp = searchText
2140
- .replace(/[.]/g, '[.]').replace(/[*]+/g, '.*');
2147
+ .replace(/[.]/g, '[.]')
2148
+ .replace(/[*]+/g, '.*');
2141
2149
  if (searchRegexp === '.*')
2142
2150
  return value; // skip if can match everything
2143
- var regexp = new RegExp('[ ]?' + searchRegexp, 'gi');
2144
- return ('' + value).replace(regexp, '<b>$&</b>');
2151
+ if (withAccent) {
2152
+ // Remove all accent characters to allow versatile comparison
2153
+ var cleanedSearchText = removeDiacritics(searchRegexp).toUpperCase();
2154
+ var index = removeDiacritics(value.toUpperCase()).indexOf(cleanedSearchText);
2155
+ if (index !== -1) {
2156
+ return value.substr(0, index - 1) +
2157
+ '<b>' + value.substr(index, cleanedSearchText.length) + '</b>' +
2158
+ value.substr(index + cleanedSearchText.length);
2159
+ }
2160
+ return value;
2161
+ }
2162
+ else {
2163
+ // Default behaviour
2164
+ var regexp = new RegExp('[ ]?' + searchRegexp, 'gi');
2165
+ return ('' + value).replace(regexp, '<b>$&</b>');
2166
+ }
2145
2167
  };
2146
2168
  return HighlightPipe;
2147
2169
  }());
@@ -5433,12 +5455,12 @@
5433
5455
  AnimationState["ENTER"] = "enter";
5434
5456
  AnimationState["ENTER_INPUT"] = "enter-input";
5435
5457
  AnimationState["LEAVE"] = "leave";
5436
- })(exports.ɵbd || (exports.ɵbd = {}));
5458
+ })(exports.AnimationState || (exports.AnimationState = {}));
5437
5459
  var MatNumpadContainerComponent = /** @class */ (function () {
5438
5460
  function MatNumpadContainerComponent(cd) {
5439
5461
  this.cd = cd;
5440
5462
  this.debug = true;
5441
- this.backdropState = exports.ɵbd.LEAVE;
5463
+ this.backdropState = exports.AnimationState.LEAVE;
5442
5464
  this.columnCount = 4;
5443
5465
  this.filteredKeymap = new rxjs.BehaviorSubject(undefined);
5444
5466
  if (this.debug)
@@ -5450,15 +5472,15 @@
5450
5472
  }
5451
5473
  if (!this.disableAnimation) {
5452
5474
  if (this.appendToInput) {
5453
- this.panelState = exports.ɵbd.ENTER;
5475
+ this.panelState = exports.AnimationState.ENTER;
5454
5476
  }
5455
5477
  else {
5456
- this.modalState = exports.ɵbd.ENTER;
5478
+ this.modalState = exports.AnimationState.ENTER;
5457
5479
  }
5458
5480
  }
5459
5481
  this.noBackdrop = this.noBackdrop || this.appendToInput;
5460
5482
  if (!this.noBackdrop) {
5461
- this.backdropState = exports.ɵbd.ENTER;
5483
+ this.backdropState = exports.AnimationState.ENTER;
5462
5484
  }
5463
5485
  var keymap = this.defineFilteredKeymap();
5464
5486
  this.filteredKeymap.next(keymap);
@@ -5491,15 +5513,15 @@
5491
5513
  return;
5492
5514
  }
5493
5515
  if (this.modalState)
5494
- this.modalState = exports.ɵbd.LEAVE;
5516
+ this.modalState = exports.AnimationState.LEAVE;
5495
5517
  if (this.panelState)
5496
- this.panelState = exports.ɵbd.LEAVE;
5518
+ this.panelState = exports.AnimationState.LEAVE;
5497
5519
  if (this.backdropState)
5498
- this.backdropState = exports.ɵbd.LEAVE;
5520
+ this.backdropState = exports.AnimationState.LEAVE;
5499
5521
  this.markForCheck();
5500
5522
  };
5501
5523
  MatNumpadContainerComponent.prototype.animationDone = function (event) {
5502
- if (event.phaseName === 'done' && event.toState === exports.ɵbd.LEAVE) {
5524
+ if (event.phaseName === 'done' && event.toState === exports.AnimationState.LEAVE) {
5503
5525
  this.numpadRef.close();
5504
5526
  }
5505
5527
  };
@@ -5525,13 +5547,13 @@
5525
5547
  // Backdrop animation
5526
5548
  animations.trigger('numpadBackdrop', [
5527
5549
  animations.state('*', animations.style({ opacity: 0, background: 'transparent' })),
5528
- animations.state(exports.ɵbd.ENTER, animations.style({ opacity: 1 })),
5529
- animations.state(exports.ɵbd.LEAVE, animations.style({ opacity: 0 })),
5530
- animations.transition("* => " + exports.ɵbd.ENTER, [
5550
+ animations.state(exports.AnimationState.ENTER, animations.style({ opacity: 1 })),
5551
+ animations.state(exports.AnimationState.LEAVE, animations.style({ opacity: 0 })),
5552
+ animations.transition("* => " + exports.AnimationState.ENTER, [
5531
5553
  animations.style({ opacity: 0 }),
5532
5554
  animations.animate('0.4s cubic-bezier(0.25, 0.8, 0.25, 1)')
5533
5555
  ]),
5534
- animations.transition(exports.ɵbd.ENTER + " => " + exports.ɵbd.LEAVE, [
5556
+ animations.transition(exports.AnimationState.ENTER + " => " + exports.AnimationState.LEAVE, [
5535
5557
  animations.style({ opacity: 1 }),
5536
5558
  animations.animate('0.2s cubic-bezier(0.25, 0.8, 0.25, 1)')
5537
5559
  ])
@@ -5539,27 +5561,27 @@
5539
5561
  // Fade in
5540
5562
  animations.trigger('numpadFadeIn', [
5541
5563
  animations.state('*', animations.style({ opacity: 1, transform: 'scale(1)' })),
5542
- animations.state(exports.ɵbd.ENTER, animations.style({ opacity: 1, transform: 'scale(1)' })),
5543
- animations.state(exports.ɵbd.LEAVE, animations.style({ opacity: 0, transform: 'scale(0.9)' })),
5564
+ animations.state(exports.AnimationState.ENTER, animations.style({ opacity: 1, transform: 'scale(1)' })),
5565
+ animations.state(exports.AnimationState.LEAVE, animations.style({ opacity: 0, transform: 'scale(0.9)' })),
5544
5566
  // Modal
5545
- animations.transition("* => " + exports.ɵbd.ENTER, [
5567
+ animations.transition("* => " + exports.AnimationState.ENTER, [
5546
5568
  animations.style({ opacity: 0, transform: 'scale(0.6)' }),
5547
5569
  animations.animate('0.2s ease-out')
5548
5570
  ]),
5549
- animations.transition(exports.ɵbd.ENTER + " => " + exports.ɵbd.LEAVE, [
5571
+ animations.transition(exports.AnimationState.ENTER + " => " + exports.AnimationState.LEAVE, [
5550
5572
  animations.animate('0.2s ease-out')
5551
5573
  ])
5552
5574
  ]),
5553
5575
  // Panel expansion
5554
5576
  animations.trigger('numpadPanelExpansion', [
5555
5577
  animations.state('*', animations.style({ opacity: 1, transform: 'scaleY(0) translateY(-50%)' })),
5556
- animations.state(exports.ɵbd.ENTER, animations.style({ opacity: 1, transform: 'scale(1) translateY(0)' })),
5557
- animations.state(exports.ɵbd.LEAVE, animations.style({ opacity: 0, transform: 'scale(1) translateY(0)' })),
5578
+ animations.state(exports.AnimationState.ENTER, animations.style({ opacity: 1, transform: 'scale(1) translateY(0)' })),
5579
+ animations.state(exports.AnimationState.LEAVE, animations.style({ opacity: 0, transform: 'scale(1) translateY(0)' })),
5558
5580
  // Attach to input
5559
- animations.transition("* => " + exports.ɵbd.ENTER, [
5581
+ animations.transition("* => " + exports.AnimationState.ENTER, [
5560
5582
  animations.animate('0.2s ease-out')
5561
5583
  ]),
5562
- animations.transition(exports.ɵbd.ENTER + " => " + exports.ɵbd.LEAVE, [
5584
+ animations.transition(exports.AnimationState.ENTER + " => " + exports.AnimationState.LEAVE, [
5563
5585
  animations.animate('0.2s ease-out')
5564
5586
  ])
5565
5587
  ])
@@ -6394,6 +6416,7 @@
6394
6416
  this.readonly = false;
6395
6417
  this.clearable = false;
6396
6418
  this.debounceTime = 250;
6419
+ this.highlightAccent = false;
6397
6420
  this.i18nPrefix = 'REFERENTIAL.';
6398
6421
  this.noResultMessage = 'COMMON.NO_RESULT';
6399
6422
  this.debug = false;
@@ -6716,7 +6739,7 @@
6716
6739
  { type: i0.Component, args: [{
6717
6740
  // eslint-disable-next-line @angular-eslint/component-selector
6718
6741
  selector: 'mat-chips-field',
6719
- template: "<ion-grid class=\"ion-no-padding\">\n <ion-row>\n <ion-col class=\"ion-no-padding\">\n <mat-form-field [floatLabel]=\"floatLabel\" class=\"material-chips\" [class.mat-form-field-disabled]=\"disabled\">\n <div matPrefix>\n <ng-content select=\"[matPrefix]\"></ng-content>\n </div>\n <mat-label>{{placeholder}}</mat-label>\n <mat-chip-list #chipList>\n <mat-chip\n *ngFor=\"let item of value\"\n [selectable]=\"false\"\n [removable]=\"!disabled\"\n (removed)=\"remove(item)\">\n {{displayWith(item)}}\n <mat-icon matChipRemove *ngIf=\"!disabled\">cancel</mat-icon>\n </mat-chip>\n\n <input matInput #matInputText type=\"text\"\n [matAutocomplete]=\"autoCombo\"\n [formControl]=\"inputControl\"\n [appAutofocus]=\"appAutofocus\"\n [tabindex]=\"_tabindex\"\n [readonly]=\"disabled\"\n [hidden]=\"disabled\"\n [required]=\"required\"\n (click)=\"clicked.emit($event)\"\n (blur)=\"blurred.emit($event)\"\n (focus)=\"filterInputTextFocusEvent($event)\"\n (keyup.arrowdown)=\"!autoCombo.showPanel && onDropButtonClick.emit($event)\"\n [matChipInputFor]=\"chipList\"\n >\n </mat-chip-list>\n\n <!-- autocomplete -->\n <mat-autocomplete #autoCombo=\"matAutocomplete\"\n (optionSelected)=\"add($event)\"\n autoActiveFirstOption\n [displayWith]=\"displayWith\"\n [class]=\"class\">\n <ng-container *ngIf=\"(filteredItems$ | async) as items\">\n <ion-row class=\"mat-autocomplete-header ion-no-padding\">\n <ion-col *ngFor=\"let attr of displayAttributes; index as i; last as isLast\" [size]=\"displayColumnSizes[i]\">\n <ion-label [innerHTML]=\"displayColumnNames[i] | translate\"></ion-label>\n <ion-text color=\"light\" *ngIf=\"isLast\" class=\"ion-float-end ion-padding-end\"><i>{{'COMMON.RESULT_COUNT'|translate: {count: itemCount} }}</i></ion-text>\n </ion-col>\n </ion-row>\n\n <!-- No item option -->\n <mat-option *ngIf=\"!items.length\" class=\"ion-no-padding\" [disabled]=\"true\">\n <ion-row class=\"ion-no-padding\">\n <ion-col class=\"ion-no-padding\">\n <ion-label><i>{{noResultMessage | translate}}</i></ion-label>\n </ion-col>\n </ion-row>\n </mat-option>\n\n <mat-option *ngFor=\"let item of items\" [value]=\"item\" class=\"ion-no-padding\">\n <ion-row>\n <ion-col *ngFor=\"let attr of displayAttributes; index as i;\"\n [size]=\"displayColumnSizes[i]\">\n <ion-text [innerHTML]=\"getPropertyByPath(item, attr) | highlight: inputControl.value\"></ion-text>\n </ion-col>\n </ion-row>\n </mat-option>\n </ng-container>\n </mat-autocomplete>\n\n <button matSuffix mat-icon-button tabindex=\"-1\"\n type=\"button\"\n (click)=\"onDropButtonClick.emit($event)\"\n [hidden]=\"disabled\">\n <mat-icon class=\"large select-arrow\">arrow_drop_down</mat-icon>\n </button>\n <button matSuffix mat-icon-button tabindex=\"-1\"\n type=\"button\"\n *ngIf=\"clearable\"\n (click)=\"clearValue($event)\"\n [hidden]=\"disabled || !formControl.value\">\n <mat-icon>close</mat-icon>\n </button>\n <ng-content matSuffix select=\"[matSuffix]\"></ng-content>\n\n <mat-error *ngIf=\"formControl.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n\n </mat-form-field>\n\n </ion-col>\n <ion-col size=\"auto\" class=\"ion-align-self-center\">\n <ng-content select=\"[matAfter]\"></ng-content>\n </ion-col>\n </ion-row>\n</ion-grid>\n",
6742
+ template: "<ion-grid class=\"ion-no-padding\">\n <ion-row>\n <ion-col class=\"ion-no-padding\">\n <mat-form-field [floatLabel]=\"floatLabel\" class=\"material-chips\" [class.mat-form-field-disabled]=\"disabled\">\n <div matPrefix>\n <ng-content select=\"[matPrefix]\"></ng-content>\n </div>\n <mat-label>{{placeholder}}</mat-label>\n <mat-chip-list #chipList>\n <mat-chip\n *ngFor=\"let item of value\"\n [selectable]=\"false\"\n [removable]=\"!disabled\"\n (removed)=\"remove(item)\">\n {{displayWith(item)}}\n <mat-icon matChipRemove *ngIf=\"!disabled\">cancel</mat-icon>\n </mat-chip>\n\n <input matInput #matInputText type=\"text\"\n [matAutocomplete]=\"autoCombo\"\n [formControl]=\"inputControl\"\n [appAutofocus]=\"appAutofocus\"\n [tabindex]=\"_tabindex\"\n [readonly]=\"disabled\"\n [hidden]=\"disabled\"\n [required]=\"required\"\n (click)=\"clicked.emit($event)\"\n (blur)=\"blurred.emit($event)\"\n (focus)=\"filterInputTextFocusEvent($event)\"\n (keyup.arrowdown)=\"!autoCombo.showPanel && onDropButtonClick.emit($event)\"\n [matChipInputFor]=\"chipList\"\n >\n </mat-chip-list>\n\n <!-- autocomplete -->\n <mat-autocomplete #autoCombo=\"matAutocomplete\"\n (optionSelected)=\"add($event)\"\n autoActiveFirstOption\n [displayWith]=\"displayWith\"\n [class]=\"class\">\n <ng-container *ngIf=\"(filteredItems$ | async) as items\">\n <ion-row class=\"mat-autocomplete-header ion-no-padding\">\n <ion-col *ngFor=\"let attr of displayAttributes; index as i; last as isLast\" [size]=\"displayColumnSizes[i]\">\n <ion-label [innerHTML]=\"displayColumnNames[i] | translate\"></ion-label>\n <ion-text color=\"light\" *ngIf=\"isLast\" class=\"ion-float-end ion-padding-end\"><i>{{'COMMON.RESULT_COUNT'|translate: {count: itemCount} }}</i></ion-text>\n </ion-col>\n </ion-row>\n\n <!-- No item option -->\n <mat-option *ngIf=\"!items.length\" class=\"ion-no-padding\" [disabled]=\"true\">\n <ion-row class=\"ion-no-padding\">\n <ion-col class=\"ion-no-padding\">\n <ion-label><i>{{noResultMessage | translate}}</i></ion-label>\n </ion-col>\n </ion-row>\n </mat-option>\n\n <mat-option *ngFor=\"let item of items\" [value]=\"item\" class=\"ion-no-padding\">\n <ion-row>\n <ion-col *ngFor=\"let attr of displayAttributes; index as i;\"\n [size]=\"displayColumnSizes[i]\">\n <ion-text [innerHTML]=\"getPropertyByPath(item, attr) | highlight: { search: inputControl.value, withAccent: highlightAccent } \"></ion-text>\n </ion-col>\n </ion-row>\n </mat-option>\n </ng-container>\n </mat-autocomplete>\n\n <button matSuffix mat-icon-button tabindex=\"-1\"\n type=\"button\"\n (click)=\"onDropButtonClick.emit($event)\"\n [hidden]=\"disabled\">\n <mat-icon class=\"large select-arrow\">arrow_drop_down</mat-icon>\n </button>\n <button matSuffix mat-icon-button tabindex=\"-1\"\n type=\"button\"\n *ngIf=\"clearable\"\n (click)=\"clearValue($event)\"\n [hidden]=\"disabled || !formControl.value\">\n <mat-icon>close</mat-icon>\n </button>\n <ng-content matSuffix select=\"[matSuffix]\"></ng-content>\n\n <mat-error *ngIf=\"formControl.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n\n </mat-form-field>\n\n </ion-col>\n <ion-col size=\"auto\" class=\"ion-align-self-center\">\n <ng-content select=\"[matAfter]\"></ng-content>\n </ion-col>\n </ion-row>\n</ion-grid>\n",
6720
6743
  providers: [
6721
6744
  {
6722
6745
  provide: i1.NG_VALUE_ACCESSOR,
@@ -6749,6 +6772,7 @@
6749
6772
  displayAttributes: [{ type: i0.Input }],
6750
6773
  displayColumnSizes: [{ type: i0.Input }],
6751
6774
  displayColumnNames: [{ type: i0.Input }],
6775
+ highlightAccent: [{ type: i0.Input }],
6752
6776
  showAllOnFocus: [{ type: i0.Input }],
6753
6777
  showPanelOnFocus: [{ type: i0.Input }],
6754
6778
  appAutofocus: [{ type: i0.Input }],
@@ -16965,10 +16989,10 @@
16965
16989
  return result;
16966
16990
  }
16967
16991
 
16968
- var Entity$1 = /** @class */ (function () {
16969
- function Entity() {
16992
+ var EntityTestClass = /** @class */ (function () {
16993
+ function EntityTestClass() {
16970
16994
  }
16971
- return Entity;
16995
+ return EntityTestClass;
16972
16996
  }());
16973
16997
  var FAKE_ENTITIES = [
16974
16998
  { id: 1, label: 'AAA', name: 'Item A', description: 'Very long description A', comments: 'Very very long comments... again for A' },
@@ -17752,6 +17776,7 @@
17752
17776
  .map(function (key) { return form.controls[key]; })
17753
17777
  .filter(function (control) { return control.enabled; })
17754
17778
  .forEach(function (control) { return markControlAsTouched(control, opts); });
17779
+ form.updateValueAndValidity(Object.assign(Object.assign({ emitEvent: false }, opts), { onlySelf: true }));
17755
17780
  }
17756
17781
  function markControlAsTouched(control, opts) {
17757
17782
  if (!control)
@@ -18035,10 +18060,10 @@
18035
18060
  { type: i0.ChangeDetectorRef }
18036
18061
  ]; };
18037
18062
 
18038
- var Entity$2 = /** @class */ (function () {
18039
- function Entity() {
18063
+ var EntityTestClass$1 = /** @class */ (function () {
18064
+ function EntityTestClass() {
18040
18065
  }
18041
- return Entity;
18066
+ return EntityTestClass;
18042
18067
  }());
18043
18068
  var FAKE_ENTITIES$1 = [
18044
18069
  { id: 1, label: 'AAA', name: 'Item A' },
@@ -26700,6 +26725,7 @@
26700
26725
  exports.AppGraphQLModule = AppGraphQLModule;
26701
26726
  exports.AppHelpModal = AppHelpModal;
26702
26727
  exports.AppInMemoryTable = AppInMemoryTable;
26728
+ exports.AppInstallUpgradeCard = AppInstallUpgradeCard;
26703
26729
  exports.AppListForm = AppListForm;
26704
26730
  exports.AppLoadingSpinner = AppLoadingSpinner;
26705
26731
  exports.AppMenuModule = AppMenuModule;
@@ -26711,8 +26737,17 @@
26711
26737
  exports.AppTableDataSourceOptions = AppTableDataSourceOptions;
26712
26738
  exports.AppTableUtils = AppTableUtils;
26713
26739
  exports.AppValidatorService = AppValidatorService;
26740
+ exports.AppendToInputDirective = AppendToInputDirective;
26741
+ exports.ArrayFilterPipe = ArrayFilterPipe;
26742
+ exports.ArrayFirstPipe = ArrayFirstPipe;
26743
+ exports.ArrayIncludesPipe = ArrayIncludesPipe;
26744
+ exports.ArrayLengthPipe = ArrayLengthPipe;
26745
+ exports.ArrayPluckPipe = ArrayPluckPipe;
26714
26746
  exports.AudioProvider = AudioProvider;
26747
+ exports.AuthForm = AuthForm;
26715
26748
  exports.AuthGuardService = AuthGuardService;
26749
+ exports.AuthModal = AuthModal;
26750
+ exports.AutocompleteTestPage = AutocompleteTestPage;
26716
26751
  exports.AutofocusDirective = AutofocusDirective;
26717
26752
  exports.Base58 = Base58;
26718
26753
  exports.BaseEntityService = BaseEntityService;
@@ -26722,6 +26757,7 @@
26722
26757
  exports.Beans = Beans;
26723
26758
  exports.CORE_CONFIG_OPTIONS = CORE_CONFIG_OPTIONS;
26724
26759
  exports.CellValueChangeListener = CellValueChangeListener;
26760
+ exports.ChipsTestPage = ChipsTestPage;
26725
26761
  exports.Color = Color;
26726
26762
  exports.ColorScale = ColorScale;
26727
26763
  exports.ConfigService = ConfigService;
@@ -26737,11 +26773,13 @@
26737
26773
  exports.DateDiffDurationPipe = DateDiffDurationPipe;
26738
26774
  exports.DateFormatPipe = DateFormatPipe;
26739
26775
  exports.DateFromNowPipe = DateFromNowPipe;
26776
+ exports.DateTimeTestPage = DateTimeTestPage;
26740
26777
  exports.DateUtils = DateUtils;
26741
26778
  exports.DepartmentToStringPipe = DepartmentToStringPipe;
26742
26779
  exports.DurationPipe = DurationPipe;
26743
26780
  exports.ENTITIES_STORAGE_KEY_PREFIX = ENTITIES_STORAGE_KEY_PREFIX;
26744
26781
  exports.ENVIRONMENT = ENVIRONMENT;
26782
+ exports.EmptyArrayPipe = EmptyArrayPipe;
26745
26783
  exports.EntitiesService = EntitiesService;
26746
26784
  exports.EntitiesStorage = EntitiesStorage;
26747
26785
  exports.EntitiesTableDataSource = EntitiesTableDataSource;
@@ -26750,11 +26788,14 @@
26750
26788
  exports.EntityClasses = EntityClasses;
26751
26789
  exports.EntityFilter = EntityFilter;
26752
26790
  exports.EntityFilterUtils = EntityFilterUtils;
26791
+ exports.EntityMetadataComponent = EntityMetadataComponent;
26753
26792
  exports.EntityStore = EntityStore;
26754
26793
  exports.EntityUtils = EntityUtils;
26755
26794
  exports.Environment = Environment;
26756
26795
  exports.ErrorCodes = ErrorCodes$2;
26796
+ exports.EvenPipe = EvenPipe;
26757
26797
  exports.FileService = FileService;
26798
+ exports.FileSizePipe = FileSizePipe;
26758
26799
  exports.FormArrayHelper = FormArrayHelper;
26759
26800
  exports.FormButtonsBarComponent = FormButtonsBarComponent;
26760
26801
  exports.FormButtonsBarToken = FormButtonsBarToken;
@@ -26769,6 +26810,8 @@
26769
26810
  exports.HotkeysDialogComponent = HotkeysDialogComponent;
26770
26811
  exports.InMemoryEntitiesService = InMemoryEntitiesService;
26771
26812
  exports.IsLoginAccountPipe = IsLoginAccountPipe;
26813
+ exports.IsNilOrBlankPipe = IsNilOrBlankPipe;
26814
+ exports.IsNotNilOrBlankPipe = IsNotNilOrBlankPipe;
26772
26815
  exports.IsNotOnFieldModePipe = IsNotOnFieldModePipe;
26773
26816
  exports.IsOnFieldModePipe = IsOnFieldModePipe;
26774
26817
  exports.JobUtils = JobUtils;
@@ -26776,11 +26819,15 @@
26776
26819
  exports.LAT_LONG_DEFAULT_MAX_DECIMALS = LAT_LONG_DEFAULT_MAX_DECIMALS;
26777
26820
  exports.LAT_LONG_PATTERNS = LAT_LONG_PATTERNS;
26778
26821
  exports.LatLongFormatPipe = LatLongFormatPipe;
26822
+ exports.LatLongTestPage = LatLongTestPage;
26779
26823
  exports.LatitudeFormatPipe = LatitudeFormatPipe;
26780
26824
  exports.LocalSettingsService = LocalSettingsService;
26781
26825
  exports.LongitudeFormatPipe = LongitudeFormatPipe;
26782
26826
  exports.MINIFY_ENTITY_FOR_LOCAL_STORAGE = MINIFY_ENTITY_FOR_LOCAL_STORAGE;
26783
26827
  exports.MINIFY_ENTITY_FOR_POD = MINIFY_ENTITY_FOR_POD;
26828
+ exports.MapGetPipe = MapGetPipe;
26829
+ exports.MapKeysPipe = MapKeysPipe;
26830
+ exports.MapValuesPipe = MapValuesPipe;
26784
26831
  exports.MatAutocompleteConfigHolder = MatAutocompleteConfigHolder;
26785
26832
  exports.MatAutocompleteField = MatAutocompleteField;
26786
26833
  exports.MatBooleanField = MatBooleanField;
@@ -26788,18 +26835,28 @@
26788
26835
  exports.MatDate = MatDate;
26789
26836
  exports.MatDateShort = MatDateShort;
26790
26837
  exports.MatDateTime = MatDateTime;
26838
+ exports.MatDuration = MatDuration;
26791
26839
  exports.MatLatLongField = MatLatLongField;
26840
+ exports.MatNumpadComponent = MatNumpadComponent;
26841
+ exports.MatNumpadContainerComponent = MatNumpadContainerComponent;
26842
+ exports.MatNumpadContent = MatNumpadContent;
26792
26843
  exports.MatPaginatorI18n = MatPaginatorI18n;
26793
26844
  exports.MatStepperI18n = MatStepperI18n;
26845
+ exports.MatSwipeField = MatSwipeField;
26794
26846
  exports.MaterialChipsModule = MaterialChipsModule;
26795
26847
  exports.MaterialTestingModule = MaterialTestingModule;
26796
26848
  exports.MaterialTestingPage = MaterialTestingPage;
26849
+ exports.MathAbsPipe = MathAbsPipe;
26797
26850
  exports.MenuComponent = MenuComponent;
26798
26851
  exports.MenuItems = MenuItems;
26799
26852
  exports.MenuService = MenuService;
26800
26853
  exports.ModalToolbarComponent = ModalToolbarComponent;
26801
26854
  exports.NetworkService = NetworkService;
26855
+ exports.NgInitDirective = NgInitDirective;
26856
+ exports.NotEmptyArrayPipe = NotEmptyArrayPipe;
26802
26857
  exports.NumberFormatPipe = NumberFormatPipe;
26858
+ exports.NumpadDirective = NumpadDirective;
26859
+ exports.OddPipe = OddPipe;
26803
26860
  exports.PRIORITIZED_AUTHORITIES = PRIORITIZED_AUTHORITIES;
26804
26861
  exports.PUBKEY_REGEXP = PUBKEY_REGEXP;
26805
26862
  exports.PersonFragments = PersonFragments;
@@ -26830,7 +26887,11 @@
26830
26887
  exports.SharedHotkeysModule = SharedHotkeysModule;
26831
26888
  exports.SharedMatAutocompleteModule = SharedMatAutocompleteModule;
26832
26889
  exports.SharedMatBooleanModule = SharedMatBooleanModule;
26890
+ exports.SharedMatDateTimeModule = SharedMatDateTimeModule;
26891
+ exports.SharedMatDurationModule = SharedMatDurationModule;
26833
26892
  exports.SharedMatLatLongModule = SharedMatLatLongModule;
26893
+ exports.SharedMatNumpadModule = SharedMatNumpadModule;
26894
+ exports.SharedMatSwipeModule = SharedMatSwipeModule;
26834
26895
  exports.SharedMaterialModule = SharedMaterialModule;
26835
26896
  exports.SharedModule = SharedModule;
26836
26897
  exports.SharedPipesModule = SharedPipesModule;
@@ -26840,10 +26901,15 @@
26840
26901
  exports.SocialModule = SocialModule;
26841
26902
  exports.StatusIds = StatusIds;
26842
26903
  exports.StatusList = StatusList;
26904
+ exports.StrLengthPipe = StrLengthPipe;
26905
+ exports.SwipeTestPage = SwipeTestPage;
26843
26906
  exports.TableSelectColumnsComponent = TableSelectColumnsComponent;
26907
+ exports.ToStringPipe = ToStringPipe;
26844
26908
  exports.Toasts = Toasts;
26845
26909
  exports.ToolbarComponent = ToolbarComponent;
26846
26910
  exports.ToolbarToken = ToolbarToken;
26911
+ exports.TranslatablePipe = TranslatablePipe;
26912
+ exports.TranslateContextPipe = TranslateContextPipe;
26847
26913
  exports.TranslateContextService = TranslateContextService;
26848
26914
  exports.UserEventService = UserEventService;
26849
26915
  exports.UserEventTypes = UserEventTypes;
@@ -26941,6 +27007,7 @@
26941
27007
  exports.referentialsToString = referentialsToString;
26942
27008
  exports.remove = remove;
26943
27009
  exports.removeAll = removeAll;
27010
+ exports.removeDiacritics = removeDiacritics;
26944
27011
  exports.removeDuplicatesFromArray = removeDuplicatesFromArray;
26945
27012
  exports.removeEnd = removeEnd;
26946
27013
  exports.removeValueInArray = removeValueInArray;
@@ -26976,55 +27043,15 @@
26976
27043
  exports.uncapitalizeFirstLetter = uncapitalizeFirstLetter;
26977
27044
  exports.updateValueAndValidity = updateValueAndValidity;
26978
27045
  exports.waitWhilePending = waitWhilePending;
27046
+ exports.ɵ0 = ɵ0$5;
26979
27047
  exports.ɵa = CustomReuseStrategy;
26980
- exports.ɵb = FileSizePipe;
26981
- exports.ɵba = MatNumpadComponent;
26982
- exports.ɵbb = MatNumpadDomService;
26983
- exports.ɵbc = NumpadDirective;
26984
- exports.ɵbe = MatNumpadContainerComponent;
26985
- exports.ɵbf = MatNumpadContent;
26986
- exports.ɵbg = AppendToInputDirective;
26987
- exports.ɵbh = SharedMatSwipeModule;
26988
- exports.ɵbi = MatSwipeField;
26989
- exports.ɵbj = isFocusableElement;
26990
- exports.ɵbk = AutocompleteTestPage;
26991
- exports.ɵbl = DateTimeTestPage;
26992
- exports.ɵbm = LatLongTestPage;
26993
- exports.ɵbn = SwipeTestPage;
26994
- exports.ɵbo = ChipsTestPage;
26995
- exports.ɵbp = AuthForm;
26996
- exports.ɵbq = AuthModal;
26997
- exports.ɵbr = RegisterForm;
26998
- exports.ɵbs = AccountValidatorService;
26999
- exports.ɵbt = RegisterModal;
27000
- exports.ɵbu = UserSettingsValidatorService;
27001
- exports.ɵbv = LocalSettingsValidatorService;
27002
- exports.ɵbw = AppInstallUpgradeCard;
27003
- exports.ɵbx = EntityMetadataComponent;
27004
- exports.ɵc = MathAbsPipe;
27005
- exports.ɵd = EvenPipe;
27006
- exports.ɵe = OddPipe;
27007
- exports.ɵf = NotEmptyArrayPipe;
27008
- exports.ɵg = EmptyArrayPipe;
27009
- exports.ɵh = ArrayLengthPipe;
27010
- exports.ɵi = ArrayFirstPipe;
27011
- exports.ɵj = ArrayPluckPipe;
27012
- exports.ɵk = ArrayIncludesPipe;
27013
- exports.ɵl = ArrayFilterPipe;
27014
- exports.ɵm = MapGetPipe;
27015
- exports.ɵn = MapKeysPipe;
27016
- exports.ɵo = MapValuesPipe;
27017
- exports.ɵp = IsNotNilOrBlankPipe;
27018
- exports.ɵq = IsNilOrBlankPipe;
27019
- exports.ɵr = ToStringPipe;
27020
- exports.ɵs = StrLengthPipe;
27021
- exports.ɵt = TranslateContextPipe;
27022
- exports.ɵu = TranslatablePipe;
27023
- exports.ɵv = NgInitDirective;
27024
- exports.ɵw = SharedMatDateTimeModule;
27025
- exports.ɵx = SharedMatDurationModule;
27026
- exports.ɵy = MatDuration;
27027
- exports.ɵz = SharedMatNumpadModule;
27048
+ exports.ɵb = MatNumpadDomService;
27049
+ exports.ɵc = isFocusableElement;
27050
+ exports.ɵd = RegisterForm;
27051
+ exports.ɵe = AccountValidatorService;
27052
+ exports.ɵf = RegisterModal;
27053
+ exports.ɵg = UserSettingsValidatorService;
27054
+ exports.ɵh = LocalSettingsValidatorService;
27028
27055
 
27029
27056
  Object.defineProperty(exports, '__esModule', { value: true });
27030
27057