@dsivd/prestations-ng 14.5.23-beta4 → 14.5.23-beta5

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.
@@ -1930,9 +1930,8 @@
1930
1930
  'foehn-status-progress-bar.step3': 'Confirmation',
1931
1931
  'foehn-status-progress-bar.step3.srOnly': 'Etape 3 sur 3, Confirmation, demande transmise',
1932
1932
  'foehn-multiselect-autocomplete.selected.delete': 'Supprimer {elementLabel}',
1933
- 'foehn-multiselect-autocomplete.selected.screen-reader.default-value': 'Élément sélectionné par défaut non supprimable :',
1934
- 'foehn-multiselect-autocomplete.selected.screen-reader.selected-value': 'Élément sélectionné:',
1935
- 'foehn-multiselect-autocomplete.list-of-selected-items': 'Liste des éléments sélectionnés:',
1933
+ 'foehn-multiselect-autocomplete.sr-announcement.deleted': '{elementLabel} a été supprimé, ',
1934
+ 'foehn-multiselect-autocomplete.sr-announcement.added': '{elementLabel} a été ajouté, ',
1936
1935
  'foehn-multiselect-autocomplete.autocomplete.empty-message': 'Tous les éléments de la liste de proposition ont déjà été ajoutés.',
1937
1936
  'foehn-multiselect-autocomplete.autocomplete.screen-reader.label': 'Sélectionner un élément dans la liste de recherche' +
1938
1937
  ' ci-dessous pour l\'ajouter à votre sélection.'
@@ -8857,7 +8856,7 @@
8857
8856
  var _this = _super.call(this, ngZone) || this;
8858
8857
  _this.dictionaryService = dictionaryService;
8859
8858
  _this.showEmptyListMessage = false;
8860
- _this.keyboardNavigationAllowed = false;
8859
+ _this.srAnnouncements = '';
8861
8860
  return _this;
8862
8861
  }
8863
8862
  Object.defineProperty(FoehnMultiselectAutocompleteComponent.prototype, "defaultElementValues", {
@@ -8880,11 +8879,6 @@
8880
8879
  enumerable: false,
8881
8880
  configurable: true
8882
8881
  });
8883
- FoehnMultiselectAutocompleteComponent.prototype.handleKeyboardDownEvent = function (event) {
8884
- if (this.keyboardNavigationAllowed) {
8885
- this.onKeyDownSelectedInner(event);
8886
- }
8887
- };
8888
8882
  FoehnMultiselectAutocompleteComponent.prototype.updateMultiselectAutocomplete = function () {
8889
8883
  var validValue = this.getValidValue();
8890
8884
  if (typeof validValue !== 'undefined') {
@@ -8908,6 +8902,7 @@
8908
8902
  this.updateMultiselectAutocomplete();
8909
8903
  this.handleUserInput();
8910
8904
  this.manageSuggestionListAndFocusAfterAddingAnItem();
8905
+ this.manageScreenReaderAnnouncement(item, false);
8911
8906
  }
8912
8907
  }
8913
8908
  };
@@ -8917,6 +8912,7 @@
8917
8912
  this.model.splice(index, 1);
8918
8913
  this.triggerUserInput(this.model);
8919
8914
  this.manageSuggestionListAndFocusAfterRemovingAnItem();
8915
+ this.manageScreenReaderAnnouncement(item, true);
8920
8916
  }
8921
8917
  };
8922
8918
  FoehnMultiselectAutocompleteComponent.prototype.trackByFn = function (index) {
@@ -8927,30 +8923,9 @@
8927
8923
  var elem = this.findElementByModelItem(value);
8928
8924
  return _super.prototype.getLabel.call(this, elem);
8929
8925
  };
8930
- FoehnMultiselectAutocompleteComponent.prototype.getSelectedElementTabIndex = function (index) {
8931
- var _this = this;
8932
- var firstIndexFocusable = 0;
8933
- if (!!this.defaultElementValues) {
8934
- firstIndexFocusable = this.model.findIndex(function (selected) { return !_this.defaultElementValues.includes(selected); });
8935
- }
8936
- if (index !== firstIndexFocusable) {
8937
- return -1;
8938
- }
8939
- return 0;
8940
- };
8941
- FoehnMultiselectAutocompleteComponent.prototype.isSelectedItemFocusable = function (index) {
8942
- return !this.disabled && !!this.defaultElementValues && this.defaultElementValues.includes(this.model[index]);
8943
- };
8944
8926
  FoehnMultiselectAutocompleteComponent.prototype.canBeDeleted = function (index) {
8945
8927
  return !this.defaultElementValues || !this.defaultElementValues.includes(this.model[index]);
8946
8928
  };
8947
- FoehnMultiselectAutocompleteComponent.prototype.onSelectedItemsFocusin = function () {
8948
- this.keyboardNavigationAllowed = true;
8949
- this.currentFocusedElem = document.activeElement;
8950
- };
8951
- FoehnMultiselectAutocompleteComponent.prototype.onSelectedItemsFocusout = function () {
8952
- this.keyboardNavigationAllowed = false;
8953
- };
8954
8929
  FoehnMultiselectAutocompleteComponent.prototype.onAutocompleteElementsLoaded = function (elements) {
8955
8930
  var _this = this;
8956
8931
  // Need to wait for childView to be loaded
@@ -8963,8 +8938,8 @@
8963
8938
  }
8964
8939
  });
8965
8940
  };
8966
- FoehnMultiselectAutocompleteComponent.prototype.getSelectedListAriaLabel = function () {
8967
- return this.label + ": " + this.dictionaryService.getKeySync('foehn-multiselect-autocomplete.list-of-selected-items');
8941
+ FoehnMultiselectAutocompleteComponent.prototype.getDeleteButtonAriaLabel = function (element) {
8942
+ return "" + this.dictionaryService.getKeySync('foehn-multiselect-autocomplete.selected.delete', { elementLabel: this.getLabel(element) });
8968
8943
  };
8969
8944
  FoehnMultiselectAutocompleteComponent.prototype.findElementByModelItem = function (item) {
8970
8945
  var _this = this;
@@ -8986,56 +8961,6 @@
8986
8961
  }
8987
8962
  return this.model;
8988
8963
  };
8989
- FoehnMultiselectAutocompleteComponent.prototype.getFirstDeleteButtonToFocus = function () {
8990
- var closeButtonsElemRefArray = __spreadArray([], __read(this.closeButtonsElemRef.toArray()));
8991
- if (!!closeButtonsElemRefArray.length) {
8992
- return closeButtonsElemRefArray[0].nativeElement;
8993
- }
8994
- return null;
8995
- };
8996
- FoehnMultiselectAutocompleteComponent.prototype.navigateSelectedList = function (offset) {
8997
- var _this = this;
8998
- if (!this.disabled) {
8999
- var closeButtonsElemRefArray = this.getDefaultSelectedElements().concat(__spreadArray([], __read(this.closeButtonsElemRef.toArray())));
9000
- if (!!closeButtonsElemRefArray.length) {
9001
- var focusIndex = closeButtonsElemRefArray.findIndex(function (value) { return _this.currentFocusedElem === value.nativeElement; });
9002
- var newIndex = focusIndex + offset;
9003
- if (newIndex >= closeButtonsElemRefArray.length) {
9004
- newIndex = 0;
9005
- }
9006
- if (newIndex < 0) {
9007
- newIndex = closeButtonsElemRefArray.length - 1;
9008
- }
9009
- var elemRef = closeButtonsElemRefArray[newIndex];
9010
- if (!!elemRef) {
9011
- elemRef.nativeElement.focus();
9012
- }
9013
- }
9014
- }
9015
- };
9016
- FoehnMultiselectAutocompleteComponent.prototype.getDefaultSelectedElements = function () {
9017
- return __spreadArray([], __read(this.selectedElemRef.toArray())).filter(function (value) { return value.nativeElement.getAttribute('is-default') === 'true'; });
9018
- };
9019
- FoehnMultiselectAutocompleteComponent.prototype.onKeyDownSelectedInner = function (keyEvent) {
9020
- // IE doesn't support keyEvent.code, and has different values
9021
- // in keyEvent.key (Down instead of ArrowDown for instance), hence the multi-support.
9022
- var ie11CompatibleCode = keyEvent.code || keyEvent.key;
9023
- switch (ie11CompatibleCode) {
9024
- case 'Right':
9025
- case 'ArrowRight':
9026
- this.navigateSelectedList(1);
9027
- break;
9028
- case 'Left':
9029
- case 'ArrowLeft':
9030
- this.navigateSelectedList(-1);
9031
- break;
9032
- default:
9033
- return true;
9034
- }
9035
- keyEvent.preventDefault();
9036
- keyEvent.stopPropagation();
9037
- return false;
9038
- };
9039
8964
  FoehnMultiselectAutocompleteComponent.prototype.filterAutocompleteElements = function (elements) {
9040
8965
  var _this = this;
9041
8966
  var filteredElements = ObjectHelper.deepCopy(elements);
@@ -9065,6 +8990,7 @@
9065
8990
  };
9066
8991
  FoehnMultiselectAutocompleteComponent.prototype.manageSuggestionListAndFocusAfterAddingAnItem = function () {
9067
8992
  var _this = this;
8993
+ // Empty autocomplete input
9068
8994
  this.autocompleteInputValue = null;
9069
8995
  // Remove selected item from autocomplete suggestion list
9070
8996
  this.autocompleteComponent.elements = this.filterAutocompleteElements(this.elements);
@@ -9081,24 +9007,12 @@
9081
9007
  }
9082
9008
  };
9083
9009
  FoehnMultiselectAutocompleteComponent.prototype.manageSuggestionListAndFocusAfterRemovingAnItem = function () {
9084
- var _this = this;
9085
9010
  // Hide message saying no more suggestions to display
9086
9011
  this.showEmptyListMessage = false;
9087
9012
  // Manually show autocomplete because there is at least one suggestions to display
9088
9013
  this.autocompleteComponent.inputElement.nativeElement.hidden = false;
9089
9014
  // Add back selected item to autocomplete suggestion list
9090
9015
  this.autocompleteComponent.elements = this.filterAutocompleteElements(this.elements);
9091
- // When deleting a selected item, check were to set focus back
9092
- this.closeButtonsElemRef.changes.pipe(operators.first()).subscribe(function () {
9093
- var buttonToFocus = _this.getFirstDeleteButtonToFocus();
9094
- if (!!buttonToFocus) {
9095
- buttonToFocus.focus();
9096
- }
9097
- else {
9098
- _this.autocompleteComponent.setFocusOnInput();
9099
- _this.autocompleteComponent.onInputFocus();
9100
- }
9101
- });
9102
9016
  };
9103
9017
  FoehnMultiselectAutocompleteComponent.prototype.showAlertMessageAndHideAutocomplete = function () {
9104
9018
  // Show a message to user indicating there is no more suggestions to display
@@ -9107,16 +9021,29 @@
9107
9021
  this.autocompleteInputValue = null;
9108
9022
  this.autocompleteComponent.inputElement.nativeElement.hidden = true;
9109
9023
  };
9024
+ FoehnMultiselectAutocompleteComponent.prototype.manageScreenReaderAnnouncement = function (element, isDelete) {
9025
+ var _this = this;
9026
+ clearTimeout(this.srAnnouncementAutoClearTimer);
9027
+ if (isDelete) {
9028
+ this.srAnnouncements += "" + this.dictionaryService.getKeySync('foehn-multiselect-autocomplete.sr-announcement.deleted', { elementLabel: this.getLabel(element) });
9029
+ }
9030
+ else {
9031
+ this.srAnnouncements += "" + this.dictionaryService.getKeySync('foehn-multiselect-autocomplete.sr-announcement.added', { elementLabel: this.getLabel(element) });
9032
+ }
9033
+ this.srAnnouncementAutoClearTimer = setTimeout(function () {
9034
+ _this.srAnnouncements = '';
9035
+ }, 10000);
9036
+ };
9110
9037
  return FoehnMultiselectAutocompleteComponent;
9111
9038
  }(FoehnAutocompleteComponent));
9112
9039
  FoehnMultiselectAutocompleteComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0__namespace, type: FoehnMultiselectAutocompleteComponent, deps: [{ token: i0__namespace.NgZone }, { token: SdkDictionaryService }], target: i0__namespace.ɵɵFactoryTarget.Component });
9113
- FoehnMultiselectAutocompleteComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: FoehnMultiselectAutocompleteComponent, selector: "foehn-multiselect-autocomplete", inputs: { defaultElementValues: "defaultElementValues", defaultElementValue: "defaultElementValue" }, host: { listeners: { "keydown": "handleKeyboardDownEvent($event)" } }, providers: [
9040
+ FoehnMultiselectAutocompleteComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: FoehnMultiselectAutocompleteComponent, selector: "foehn-multiselect-autocomplete", inputs: { defaultElementValues: "defaultElementValues", defaultElementValue: "defaultElementValue" }, providers: [
9114
9041
  {
9115
9042
  provide: FoehnInputComponent,
9116
9043
  useExisting: i0.forwardRef(function () { return FoehnMultiselectAutocompleteComponent; }),
9117
9044
  multi: true
9118
9045
  }
9119
- ], viewQueries: [{ propertyName: "autocompleteComponent", first: true, predicate: ["autocompleteComponent"], descendants: true }, { propertyName: "alertMessageContainer", first: true, predicate: ["alertMessageContainer"], descendants: true }, { propertyName: "closeButtonsElemRef", predicate: ["closeButtonsElemRef"], descendants: true }, { propertyName: "selectedElemRef", predicate: ["selectedElemRef"], descendants: true }], usesInheritance: true, ngImport: i0__namespace, template: "<foehn-autocomplete\n #autocompleteComponent\n [name]=\"name\"\n [label]=\"label\"\n [elements]=\"elements\"\n [elementsUrl]=\"elementsUrl\"\n [elementValue]=\"elementValue\"\n [elementLabel]=\"elementLabel\"\n [elementValueIdentity]=\"elementValueIdentity\"\n [elementDisabled]=\"elementDisabled\"\n [allElementDisabled]=\"allElementDisabled\"\n [elementGroup]=\"elementGroup\"\n [allowCustomValue]=\"false\"\n [searchValueMinCharsCount]=\"searchValueMinCharsCount\"\n [customValueModelGenerator]=\"customValueModelGenerator\"\n [required]=\"required\"\n [disabled]=\"disabled\"\n (userInput)=\"addItem($event)\"\n [(model)]=\"autocompleteInputValue\"\n (elementsLoaded)=\"onAutocompleteElementsLoaded($event)\"\n>\n <div\n [attr.role]=\"!disabled ? 'application' : null\"\n (focusin)=\"onSelectedItemsFocusin()\"\n (focusout)=\"onSelectedItemsFocusout()\"\n [tabindex]=\"(!!model && !!model.length) ? 0 : -1\"\n class=\"selected-list-container\"\n >\n <ul\n [id]=\"buildChildId() + 'SelectedItemsList'\"\n class=\"list-unstyled mb-1 d-flex align-content-stretch flex-wrap\"\n aria-live=\"polite\"\n aria-atomic=\"true\"\n aria-relevant=\"all\"\n aria-orientation=\"horizontal\"\n [attr.aria-label]=\"getSelectedListAriaLabel()\"\n >\n <li\n *ngFor=\"let element of model; let index = index; trackBy: trackByFn\"\n class=\"badge badge-pill badge-secondary mr-1 mb-1 py-2 px-3 d-flex align-items-center\"\n [tabindex]=\"isSelectedItemFocusable(index) ? 0 : -1\"\n [attr.is-default]=\"!canBeDeleted(index)\"\n #selectedElemRef\n >\n <ng-container *ngIf=\"!disabled\">\n <span *ngIf=\"!canBeDeleted(index)\" class=\"sr-only\">{{ 'foehn-multiselect-autocomplete.selected.screen-reader.default-value' | fromDictionary }}</span>\n <span *ngIf=\"canBeDeleted(index)\" class=\"sr-only\">{{ 'foehn-multiselect-autocomplete.selected.screen-reader.selected-value' | fromDictionary }}</span>\n </ng-container>\n\n <span [innerHtml]=\"getLabel(element)\"></span>\n\n <button\n *ngIf=\"!disabled && canBeDeleted(index)\"\n type=\"button\"\n class=\"btn btn-link ml-2\"\n [tabindex]=\"getSelectedElementTabIndex(index)\"\n (click)=\"removeItem(element)\"\n #closeButtonsElemRef\n >\n <foehn-icon-times\n title=\"{{ 'foehn-multiselect-autocomplete.selected.delete' | fromDictionary: {elementLabel: getLabel(element)} }}\"\n ></foehn-icon-times>\n </button>\n </li>\n </ul>\n </div>\n\n <small\n *ngIf=\"!showEmptyListMessage\"\n [attr.id]=\"buildChildId() + 'Help'\"\n class=\"form-text text-secondary\"\n [innerHTML]=\"helpText ? helpText : 'foehn-multiselect-autocomplete.autocomplete.screen-reader.label' | fromDictionary\"\n ></small>\n\n <div\n [id]=\"buildChildId() + 'AlertMessageContainer'\"\n role=\"status\"\n tabindex=\"-1\"\n #alertMessageContainer\n >\n <p\n *ngIf=\"showEmptyListMessage\"\n class=\"alert alert-info\"\n tabindex=\"0\"\n >{{'foehn-multiselect-autocomplete.autocomplete.empty-message' | fromDictionary}}</p>\n </div>\n</foehn-autocomplete>\n", styles: [".selected-list-container button>.btn,.btn-link{line-height:inherit;padding:0}.selected-list-container li:focus{outline:0;box-shadow:inset 0 1px 1px #00000013,0 0 0 .2rem #ffbf47}.selected-list-container:focus{outline:0;box-shadow:inset 0 1px 1px #00000013,0 0 0 .2rem #ffbf47}foehn-autocomplete p.alert:focus{outline:0;box-shadow:inset 0 1px 1px #00000013,0 0 0 .2rem #ffbf47}\n"], components: [{ type: FoehnAutocompleteComponent, selector: "foehn-autocomplete", inputs: ["searchValueMinCharsCount", "allowCustomValue", "customValueModelGenerator"] }, { type: FoehnIconTimesComponent, selector: "foehn-icon-times" }], directives: [{ type: i3__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "fromDictionary": SdkDictionaryPipe } });
9046
+ ], viewQueries: [{ propertyName: "autocompleteComponent", first: true, predicate: ["autocompleteComponent"], descendants: true }, { propertyName: "alertMessageContainer", first: true, predicate: ["alertMessageContainer"], descendants: true }], usesInheritance: true, ngImport: i0__namespace, template: "<foehn-autocomplete\n #autocompleteComponent\n [name]=\"name\"\n [label]=\"label\"\n [elements]=\"elements\"\n [elementsUrl]=\"elementsUrl\"\n [elementValue]=\"elementValue\"\n [elementLabel]=\"elementLabel\"\n [elementValueIdentity]=\"elementValueIdentity\"\n [elementDisabled]=\"elementDisabled\"\n [allElementDisabled]=\"allElementDisabled\"\n [elementGroup]=\"elementGroup\"\n [allowCustomValue]=\"false\"\n [searchValueMinCharsCount]=\"searchValueMinCharsCount\"\n [customValueModelGenerator]=\"customValueModelGenerator\"\n [required]=\"required\"\n [disabled]=\"disabled\"\n (userInput)=\"addItem($event)\"\n [(model)]=\"autocompleteInputValue\"\n (elementsLoaded)=\"onAutocompleteElementsLoaded($event)\"\n>\n <small\n *ngIf=\"!showEmptyListMessage\"\n [attr.id]=\"buildChildId('Help')\"\n class=\"form-text text-secondary\"\n [innerHTML]=\"helpText ? helpText : 'foehn-multiselect-autocomplete.autocomplete.screen-reader.label' | fromDictionary\"\n ></small>\n\n <div\n [id]=\"buildChildId('AlertMessageContainer')\"\n role=\"status\"\n #alertMessageContainer\n >\n <p\n *ngIf=\"showEmptyListMessage\"\n class=\"alert alert-info\"\n tabindex=\"0\"\n >{{'foehn-multiselect-autocomplete.autocomplete.empty-message' | fromDictionary}}</p>\n </div>\n</foehn-autocomplete>\n\n<p\n class=\"sr-only\"\n aria-live=\"polite\"\n aria-atomic=\"true\"\n>\n {{srAnnouncements}}\n</p>\n\n<div\n role=\"presentation\"\n class=\"selected-list-container d-flex align-content-stretch flex-wrap\"\n [ngClass]=\"!!model && !!model.length ? 'mb-2' : 'mb-0'\"\n>\n <ng-container *ngFor=\"let element of model; let index = index; trackBy: trackByFn\">\n <span\n *ngIf=\"!canBeDeleted(index)\"\n class=\"badge badge-pill badge-secondary mr-1 mb-1 py-2 px-3 d-flex align-items-center\"\n [tabindex]=\"0\"\n [attr.aria-describedby]=\"buildChildId('Label')\"\n >\n {{getLabel(element)}}\n </span>\n <button\n *ngIf=\"canBeDeleted(index)\"\n class=\"btn btn-secondary badge badge-pill mr-1 mb-1 py-2 px-3 d-flex align-items-center\"\n [tabindex]=\"0\"\n [attr.aria-label]=\"getDeleteButtonAriaLabel(element)\"\n [attr.aria-describedby]=\"buildChildId('Label')\"\n [title]=\"getDeleteButtonAriaLabel(element)\"\n (click)=\"removeItem(element)\"\n >\n {{getLabel(element)}}\n <foehn-icon-times\n aria-hidden=\"true\"\n class=\"ml-2\"\n [title]=\"getDeleteButtonAriaLabel(element)\"\n ></foehn-icon-times>\n </button>\n </ng-container>\n</div>\n", styles: ["foehn-autocomplete p.alert:focus{outline:0;box-shadow:inset 0 1px 1px #00000013,0 0 0 .2rem #ffbf47}.selected-list-container button>.btn,.btn-link{line-height:inherit;padding:0}.selected-list-container .btn{text-transform:none}.selected-list-container span.badge-pill:focus{outline:0;box-shadow:inset 0 1px 1px #00000013,0 0 0 .2rem #ffbf47}\n"], components: [{ type: FoehnAutocompleteComponent, selector: "foehn-autocomplete", inputs: ["searchValueMinCharsCount", "allowCustomValue", "customValueModelGenerator"] }, { type: FoehnIconTimesComponent, selector: "foehn-icon-times" }], directives: [{ type: i3__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3__namespace.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "fromDictionary": SdkDictionaryPipe } });
9120
9047
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0__namespace, type: FoehnMultiselectAutocompleteComponent, decorators: [{
9121
9048
  type: i0.Component,
9122
9049
  args: [{
@@ -9137,19 +9064,10 @@
9137
9064
  }], alertMessageContainer: [{
9138
9065
  type: i0.ViewChild,
9139
9066
  args: ['alertMessageContainer']
9140
- }], closeButtonsElemRef: [{
9141
- type: i0.ViewChildren,
9142
- args: ['closeButtonsElemRef']
9143
- }], selectedElemRef: [{
9144
- type: i0.ViewChildren,
9145
- args: ['selectedElemRef']
9146
9067
  }], defaultElementValues: [{
9147
9068
  type: i0.Input
9148
9069
  }], defaultElementValue: [{
9149
9070
  type: i0.Input
9150
- }], handleKeyboardDownEvent: [{
9151
- type: i0.HostListener,
9152
- args: ['keydown', ['$event']]
9153
9071
  }] } });
9154
9072
 
9155
9073
  var FoehnMultiselectAutocompleteModule = /** @class */ (function () {