@netgrif/components-core 6.2.2 → 6.2.4

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 (32) hide show
  1. package/esm2020/assets/i18n/de.json +2 -1
  2. package/esm2020/assets/i18n/en.json +2 -1
  3. package/esm2020/assets/i18n/sk.json +2 -1
  4. package/esm2020/lib/authentication/components/abstract-authentication-overlay.mjs +4 -1
  5. package/esm2020/lib/data-fields/enumeration-field/enumeration-autocomplete-select-field/abstract-enumeration-autocomplete-select-field.component.mjs +49 -7
  6. package/esm2020/lib/data-fields/enumeration-field/enumeration-autocomplete-select-field/enumeration-autocomplete-filter-property.mjs +6 -0
  7. package/esm2020/lib/data-fields/file-field/abstract-file-field.component.mjs +2 -1
  8. package/esm2020/lib/data-fields/i18n-field/i18n-divider-field/abstract-i18n-divider-field.component.mjs +7 -1
  9. package/esm2020/lib/data-fields/i18n-field/models/i18n-field.mjs +5 -5
  10. package/esm2020/lib/data-fields/models/abstract-data-field.mjs +4 -1
  11. package/esm2020/lib/data-fields/multichoice-field/multichoice-autocomplete-field/abstract-multichoice-autocomplete-field-component.component.mjs +32 -2
  12. package/esm2020/lib/data-fields/multichoice-field/multichoice-autocomplete-field/multichoice-autocomplete-filter-property.mjs +6 -0
  13. package/esm2020/lib/data-fields/public-api.mjs +3 -1
  14. package/esm2020/lib/resources/engine-endpoint/public/public-task-resource.service.mjs +3 -3
  15. package/esm2020/lib/side-menu/content-components/new-case/abstract-new-case.component.mjs +13 -2
  16. package/fesm2015/netgrif-components-core.mjs +130 -18
  17. package/fesm2015/netgrif-components-core.mjs.map +1 -1
  18. package/fesm2020/netgrif-components-core.mjs +126 -18
  19. package/fesm2020/netgrif-components-core.mjs.map +1 -1
  20. package/lib/data-fields/enumeration-field/enumeration-autocomplete-select-field/abstract-enumeration-autocomplete-select-field.component.d.ts +13 -5
  21. package/lib/data-fields/enumeration-field/enumeration-autocomplete-select-field/enumeration-autocomplete-filter-property.d.ts +4 -0
  22. package/lib/data-fields/i18n-field/i18n-divider-field/abstract-i18n-divider-field.component.d.ts +1 -0
  23. package/lib/data-fields/models/abstract-data-field.d.ts +2 -1
  24. package/lib/data-fields/multichoice-field/multichoice-autocomplete-field/abstract-multichoice-autocomplete-field-component.component.d.ts +6 -1
  25. package/lib/data-fields/multichoice-field/multichoice-autocomplete-field/multichoice-autocomplete-filter-property.d.ts +4 -0
  26. package/lib/data-fields/public-api.d.ts +2 -0
  27. package/lib/resources/engine-endpoint/public/public-task-resource.service.d.ts +2 -1
  28. package/lib/side-menu/content-components/new-case/abstract-new-case.component.d.ts +2 -0
  29. package/package.json +1 -1
  30. package/src/assets/i18n/de.json +2 -1
  31. package/src/assets/i18n/en.json +3 -1
  32. package/src/assets/i18n/sk.json +2 -1
@@ -5,6 +5,7 @@ import { BehaviorSubject, combineLatest, ReplaySubject } from 'rxjs';
5
5
  import { NAE_SIDE_MENU_CONTROL } from '../../side-menu-injection-token';
6
6
  import { Hotkey } from 'angular2-hotkeys';
7
7
  import semver from 'semver';
8
+ import { LoadingEmitter } from '../../../utility/loading-emitter';
8
9
  import * as i0 from "@angular/core";
9
10
  import * as i1 from "@angular/forms";
10
11
  import * as i2 from "../../../snack-bar/services/snack-bar.service";
@@ -40,6 +41,7 @@ export class AbstractNewCaseComponent {
40
41
  this._hasMultipleNets$ = new ReplaySubject(1);
41
42
  this._notInitialized$ = new BehaviorSubject(true);
42
43
  this._options$ = new ReplaySubject(1);
44
+ this.loadingSubmit = new LoadingEmitter(false);
43
45
  this._allowedNetsSubscription = this._injectedData.allowedNets$.pipe(map(nets => nets.map(petriNet => ({
44
46
  value: petriNet.stringId,
45
47
  viewValue: petriNet.title,
@@ -76,6 +78,7 @@ export class AbstractNewCaseComponent {
76
78
  }
77
79
  ngOnDestroy() {
78
80
  this._hasMultipleNets$.complete();
81
+ this.loadingSubmit.complete();
79
82
  this._allowedNetsSubscription.unsubscribe();
80
83
  }
81
84
  get hasMultipleNets$() {
@@ -95,14 +98,19 @@ export class AbstractNewCaseComponent {
95
98
  return process && process.viewValue ? process.viewValue : '';
96
99
  }
97
100
  createNewCase() {
101
+ if (this.loadingSubmit.value) {
102
+ return;
103
+ }
98
104
  if (this.titleFormControl.valid || !this.isCaseTitleRequired()) {
99
105
  const newCase = {
100
106
  title: this.titleFormControl.value === '' ? null : this.titleFormControl.value,
101
107
  color: 'panel-primary-icon',
102
108
  netId: this.options.length === 1 ? this.options[0].value : this.processFormControl.value.value
103
109
  };
110
+ this.loadingSubmit.on();
104
111
  this._caseResourceService.createCase(newCase)
105
112
  .subscribe((response) => {
113
+ this.loadingSubmit.off();
106
114
  if (!!response.outcome) {
107
115
  this._snackBarService.openSuccessSnackBar(response.outcome.message === undefined
108
116
  ? this._translate.instant('side-menu.new-case.createCase') + ' ' + newCase.title
@@ -124,7 +132,10 @@ export class AbstractNewCaseComponent {
124
132
  : response.error
125
133
  });
126
134
  }
127
- }, error => this._snackBarService.openErrorSnackBar(error.message ? error.message : error));
135
+ }, error => {
136
+ this.loadingSubmit.off();
137
+ this._snackBarService.openErrorSnackBar(error.message ? error.message : error);
138
+ });
128
139
  }
129
140
  }
130
141
  /**
@@ -252,4 +263,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
252
263
  type: ViewChild,
253
264
  args: ['stepper2']
254
265
  }] } });
255
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtbmV3LWNhc2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmV0Z3JpZi1jb21wb25lbnRzLWNvcmUvc3JjL2xpYi9zaWRlLW1lbnUvY29udGVudC1jb21wb25lbnRzL25ldy1jYXNlL2Fic3RyYWN0LW5ldy1jYXNlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLE1BQU0sRUFBYSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdEUsT0FBTyxFQUFjLFdBQVcsRUFBRSxVQUFVLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUVwRSxPQUFPLEVBQUMsR0FBRyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQUMsZUFBZSxFQUFFLGFBQWEsRUFBYyxhQUFhLEVBQWUsTUFBTSxNQUFNLENBQUM7QUFFN0YsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFLdEUsT0FBTyxFQUFDLE1BQU0sRUFBaUIsTUFBTSxrQkFBa0IsQ0FBQztBQUV4RCxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7Ozs7Ozs7O0FBZTVCLE1BQU0sT0FBZ0Isd0JBQXdCO0lBdUIxQyxZQUErRCxnQkFBaUMsRUFDaEUsWUFBeUIsRUFDekIsZ0JBQWlDLEVBQ2pDLG9CQUF5QyxFQUN6QyxlQUErQixFQUMvQixVQUE0QjtRQUxHLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBaUI7UUFDaEUsaUJBQVksR0FBWixZQUFZLENBQWE7UUFDekIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFpQjtRQUNqQyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXFCO1FBQ3pDLG9CQUFlLEdBQWYsZUFBZSxDQUFnQjtRQUMvQixlQUFVLEdBQVYsVUFBVSxDQUFrQjtRQTFCNUQsdUJBQWtCLEdB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ZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbmplY3QsIE9uRGVzdHJveSwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Rm9ybUJ1aWxkZXIsIEZvcm1Db250cm9sLCBWYWxpZGF0b3JzfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1N0ZXBwZXJTZWxlY3Rpb25FdmVudH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3N0ZXBwZXInO1xuaW1wb3J0IHttYXAsIHN0YXJ0V2l0aCwgdGFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZSwgUmVwbGF5U3ViamVjdCwgU3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7U25hY2tCYXJTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zbmFjay1iYXIvc2VydmljZXMvc25hY2stYmFyLnNlcnZpY2UnO1xuaW1wb3J0IHtOQUVfU0lERV9NRU5VX0NPTlRST0x9IGZyb20gJy4uLy4uL3NpZGUtbWVudS1pbmplY3Rpb24tdG9rZW4nO1xuaW1wb3J0IHtTaWRlTWVudUNvbnRyb2x9IGZyb20gJy4uLy4uL21vZGVscy9zaWRlLW1lbnUtY29udHJvbCc7XG5pbXBvcnQge0Nhc2VSZXNvdXJjZVNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3Jlc291cmNlcy9lbmdpbmUtZW5kcG9pbnQvY2FzZS1yZXNvdXJjZS5zZXJ2aWNlJztcbmltcG9ydCB7TmV3Q2FzZUluamVjdGlvbkRhdGF9IGZyb20gJy4vbW9kZWwvbmV3LWNhc2UtaW5qZWN0aW9uLWRhdGEnO1xuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7SG90a2V5LCBIb3RrZXlzU2VydmljZX0gZnJvbSAnYW5ndWxhcjItaG90a2V5cyc7XG5pbXBvcnQge01hdFRvb2xiYXJ9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2xiYXInO1xuaW1wb3J0IHNlbXZlciBmcm9tICdzZW12ZXInO1xuaW1wb3J0IHtDcmVhdGVDYXNlRXZlbnRPdXRjb21lfSBmcm9tICcuLi8uLi8uLi9ldmVudC9tb2RlbC9ldmVudC1vdXRjb21lcy9jYXNlLW91dGNvbWVzL2NyZWF0ZS1jYXNlLWV2ZW50LW91dGNvbWUnO1xuaW1wb3J0IHtFdmVudE91dGNvbWVNZXNzYWdlUmVzb3VyY2V9IGZyb20gJy4uLy4uLy4uL3Jlc291cmNlcy9pbnRlcmZhY2UvbWVzc2FnZS1yZXNvdXJjZSc7XG5pbXBvcnQge01hdE9wdGlvbn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5cbmludGVyZmFjZSBGb3JtIHtcbiAgICB2YWx1ZTogc3RyaW5nO1xuICAgIHZpZXdWYWx1ZTogc3RyaW5nO1xuICAgIHZlcnNpb24/OiBzdHJpbmc7XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmNjLWFic3RyYWN0LW5ldy1jYXNlJyxcbiAgICB0ZW1wbGF0ZTogJydcbn0pXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3ROZXdDYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcblxuICAgIHByb2Nlc3NGb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgnJywgVmFsaWRhdG9ycy5yZXF1aXJlZCk7XG4gICAgdGl0bGVGb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgnJywgVmFsaWRhdG9ycy5yZXF1aXJlZCk7XG4gICAgbmV0VmVyc2lvbjogc3RyaW5nO1xuXG4gICAgb3B0aW9uczogQXJyYXk8Rm9ybT4gPSBbXTtcbiAgICBjb2xvcnM6IEFycmF5PEZvcm0+ID0gW1xuICAgICAgICB7dmFsdWU6ICdwYW5lbC1wcmltYXJ5LWljb24nLCB2aWV3VmFsdWU6ICdQcmltYXJ5J30sXG4gICAgICAgIHt2YWx1ZTogJ3BhbmVsLWFjY2VudC1pY29uJywgdmlld1ZhbHVlOiAnQWNjZW50J30sXG4gICAgXTtcbiAgICBmaWx0ZXJlZE9wdGlvbnMkOiBPYnNlcnZhYmxlPEFycmF5PEZvcm0+PjtcbiAgICBAVmlld0NoaWxkKCd0b29sYmFyJykgdG9vbGJhcjogTWF0VG9vbGJhcjtcblxuICAgIEBWaWV3Q2hpbGQoJ3N0ZXBwZXIxJykgc3RlcHBlcjE7XG4gICAgQFZpZXdDaGlsZCgnc3RlcHBlcjInKSBzdGVwcGVyMjtcblxuICAgIHByb3RlY3RlZCBfb3B0aW9ucyQ6IFJlcGxheVN1YmplY3Q8QXJyYXk8Rm9ybT4+O1xuICAgIHByb3RlY3RlZCBfaW5qZWN0ZWREYXRhOiBOZXdDYXNlSW5qZWN0aW9uRGF0YTtcbiAgICBwcm90ZWN0ZWQgX2hhc011bHRpcGxlTmV0cyQ6IFJlcGxheVN1YmplY3Q8Ym9vbGVhbj47XG4gICAgcHJvdGVjdGVkIF9ub3RJbml0aWFsaXplZCQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPjtcbiAgICBwcml2YXRlIF9hbGxvd2VkTmV0c1N1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gICAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKEBJbmplY3QoTkFFX1NJREVfTUVOVV9DT05UUk9MKSBwcm90ZWN0ZWQgX3NpZGVNZW51Q29udHJvbDogU2lkZU1lbnVDb250cm9sLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX2Zvcm1CdWlsZGVyOiBGb3JtQnVpbGRlcixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9zbmFja0JhclNlcnZpY2U6IFNuYWNrQmFyU2VydmljZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9jYXNlUmVzb3VyY2VTZXJ2aWNlOiBDYXNlUmVzb3VyY2VTZXJ2aWNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX2hvdGtleXNTZXJ2aWNlOiBIb3RrZXlzU2VydmljZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdGVjdGVkIF90cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UpIHtcbiAgICAgICAgaWYgKHRoaXMuX3NpZGVNZW51Q29udHJvbC5kYXRhKSB7XG4gICAgICAgICAgICB0aGlzLl9pbmplY3RlZERhdGEgPSB0aGlzLl9zaWRlTWVudUNvbnRyb2wuZGF0YSBhcyBOZXdDYXNlSW5qZWN0aW9uRGF0YTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMuX2luamVjdGVkRGF0YSkge1xuICAgICAgICAgICAgdGhpcy5jbG9zZU5vTmV0cygpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2hvdGtleXNTZXJ2aWNlLmFkZChuZXcgSG90a2V5KCdlbnRlcicsIChldmVudDogS2V5Ym9hcmRFdmVudCk6IGJvb2xlYW4gPT4ge1xuICAgICAgICAgICAgdGhpcy5uZXh0U3RlcCgpO1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9KSk7XG5cbiAgICAgICAgdGhpcy5faGFzTXVsdGlwbGVOZXRzJCA9IG5ldyBSZXBsYXlTdWJqZWN0KDEpO1xuICAgICAgICB0aGlzLl9ub3RJbml0aWFsaXplZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRydWUpO1xuICAgICAgICB0aGlzLl9vcHRpb25zJCA9IG5ldyBSZXBsYXlTdWJqZWN0KDEpO1xuXG4gICAgICAgIHRoaXMuX2FsbG93ZWROZXRzU3Vic2NyaXB0aW9uID0gdGhpcy5faW5qZWN0ZWREYXRhLmFsbG93ZWROZXRzJC5waXBlKFxuICAgICAgICAgICAgbWFwKG5ldHMgPT4gbmV0cy5tYXAocGV0cmlOZXQgPT4gKHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogcGV0cmlOZXQuc3RyaW5nSWQsXG4gICAgICAgICAgICAgICAgdmlld1ZhbHVlOiBwZXRyaU5ldC50aXRsZSxcbiAgICAgICAgICAgICAgICB2ZXJzaW9uOiBwZXRyaU5ldC52ZXJzaW9uXG4gICAgICAgICAgICB9KSkpLFxuICAgICAgICAgICAgbWFwKG5ldHMgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy5fc2lkZU1lbnVDb250cm9sLmFsbFZlcnNpb25FbmFibGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnJlbW92ZU9sZFZlcnNpb25zKG5ldHMpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXRzO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgdGFwKG9wdGlvbnMgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChvcHRpb25zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNsb3NlTm9OZXRzKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgICAgICAgICAgICAgdGhpcy5faGFzTXVsdGlwbGVOZXRzJC5uZXh0KG9wdGlvbnMubGVuZ3RoID4gMSk7XG4gICAgICAgICAgICB9KVxuICAgICAgICApLnN1YnNjcmliZShvcHRpb25zID0+IHtcbiAgICAgICAgICAgIHRoaXMuX29wdGlvbnMkLm5leHQob3B0aW9ucyk7XG4gICAgICAgICAgICBpZiAoIXRoaXMuX25vdEluaXRpYWxpemVkJC5jbG9zZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9ub3RJbml0aWFsaXplZCQubmV4dChmYWxzZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5fbm90SW5pdGlhbGl6ZWQkLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zJCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuX29wdGlvbnMkLCB0aGlzLnByb2Nlc3NGb3JtQ29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShzdGFydFdpdGgoJycpKV0pLnBpcGUoXG4gICAgICAgICAgICBtYXAoc291cmNlcyA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHNvdXJjZXNbMF07XG4gICAgICAgICAgICAgICAgY29uc3QgaW5wdXQgPSB0eXBlb2Ygc291cmNlc1sxXSA9PT0gJ3N0cmluZycgfHwgc291cmNlc1sxXSA9PT0gbnVsbCA/IHNvdXJjZXNbMV0gOiBzb3VyY2VzWzFdLnZpZXdWYWx1ZTtcbiAgICAgICAgICAgICAgICByZXR1cm4gaW5wdXQgPyB0aGlzLl9maWx0ZXIoaW5wdXQsIG9wdGlvbnMpIDogb3B0aW9ucy5zbGljZSgpO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICB0YXAoZmlsdGVyZWRPcHRpb25zID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZmlsdGVyZWRPcHRpb25zLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnByb2Nlc3NGb3JtQ29udHJvbC5zZXRWYWx1ZShmaWx0ZXJlZE9wdGlvbnNbMF0sIHtlbWl0RXZlbnQ6IGZhbHNlfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5faGFzTXVsdGlwbGVOZXRzJC5jb21wbGV0ZSgpO1xuICAgICAgICB0aGlzLl9hbGxvd2VkTmV0c1N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaGFzTXVsdGlwbGVOZXRzJCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2hhc011bHRpcGxlTmV0cyQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBub3RJbml0aWFsaXplZCQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9ub3RJbml0aWFsaXplZCQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0ZXBDaGFuZ2UoJGV2ZW50OiBTdGVwcGVyU2VsZWN0aW9uRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc2lkZU1lbnVDb250cm9sLnB1Ymxpc2goe1xuICAgICAgICAgICAgb3BlbmVkOiB0cnVlLFxuICAgICAgICAgICAgbWVzc2FnZTogJ0FjdGl2ZSBzdGVwIGhhcyBjaGFuZ2VkJyxcbiAgICAgICAgICAgIGRhdGE6ICRldmVudFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBkaXNwbGF5Rm4ocHJvY2VzczogRm9ybSk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBwcm9jZXNzICYmIHByb2Nlc3Mudmlld1ZhbHVlID8gcHJvY2Vzcy52aWV3VmFsdWUgOiAnJztcbiAgICB9XG5cbiAgICBwdWJsaWMgY3JlYXRlTmV3Q2FzZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMudGl0bGVGb3JtQ29udHJvbC52YWxpZCB8fCAhdGhpcy5pc0Nhc2VUaXRsZVJlcXVpcmVkKCkpIHtcbiAgICAgICAgICAgIGNvbnN0IG5ld0Nhc2UgPSB7XG4gICAgICAgICAgICAgICAgdGl0bGU6IHRoaXMudGl0bGVGb3JtQ29udHJvbC52YWx1ZSA9PT0gJycgPyBudWxsIDogdGhpcy50aXRsZUZvcm1Db250cm9sLnZhbHVlLFxuICAgICAgICAgICAgICAgIGNvbG9yOiAncGFuZWwtcHJpbWFyeS1pY29uJyxcbiAgICAgICAgICAgICAgICBuZXRJZDogdGhpcy5vcHRpb25zLmxlbmd0aCA9PT0gMSA/IHRoaXMub3B0aW9uc1swXS52YWx1ZSA6IHRoaXMucHJvY2Vzc0Zvcm1Db250cm9sLnZhbHVlLnZhbHVlXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICB0aGlzLl9jYXNlUmVzb3VyY2VTZXJ2aWNlLmNyZWF0ZUNhc2UobmV3Q2FzZSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgICAgICAocmVzcG9uc2U6IEV2ZW50T3V0Y29tZU1lc3NhZ2VSZXNvdXJjZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCEhcmVzcG9uc2Uub3V0Y29tZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3NuYWNrQmFyU2VydmljZS5vcGVuU3VjY2Vzc1NuYWNrQmFyKHJlc3BvbnNlLm91dGNvbWUubWVzc2FnZSA9PT0gdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gdGhpcy5fdHJhbnNsYXRlLmluc3RhbnQoJ3NpZGUtbWVudS5uZXctY2FzZS5jcmVhdGVDYXNlJykgKyAnICcgKyBuZXdDYXNlLnRpdGxlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogcmVzcG9uc2Uub3V0Y29tZS5tZXNzYWdlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9zaWRlTWVudUNvbnRyb2wuY2xvc2Uoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVuZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiByZXNwb25zZS5vdXRjb21lLm1lc3NhZ2UgPT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAnQ29uZmlybSBuZXcgY2FzZSBzZXR1cCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogcmVzcG9uc2Uub3V0Y29tZS5tZXNzYWdlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YTogKHJlc3BvbnNlLm91dGNvbWUgYXMgQ3JlYXRlQ2FzZUV2ZW50T3V0Y29tZSkuYUNhc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoISFyZXNwb25zZS5lcnJvcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3NuYWNrQmFyU2VydmljZS5vcGVuV2FybmluZ1NuYWNrQmFyKHRoaXMuX3RyYW5zbGF0ZS5pbnN0YW50KCdzaWRlLW1lbnUubmV3LWNhc2UuY3JlYXRlQ2FzZUVycm9yJykgKyAnICcgKyBuZXdDYXNlLnRpdGxlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9zaWRlTWVudUNvbnRyb2wuY2xvc2Uoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVuZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiByZXNwb25zZS5lcnJvciA9PT0gdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICdDb25maXJtIG5ldyBjYXNlIHNldHVwJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiByZXNwb25zZS5lcnJvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBlcnJvciA9PiB0aGlzLl9zbmFja0JhclNlcnZpY2Uub3BlbkVycm9yU25hY2tCYXIoZXJyb3IubWVzc2FnZSA/IGVycm9yLm1lc3NhZ2UgOiBlcnJvcilcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRnVuY3Rpb24gdG8gZmlsdGVyIG91dCBtYXRjaGxlc3Mgb3B0aW9ucyB3aXRob3V0IGFjY2VudCBhbmQgY2FzZS1zZW5zaXRpdmUgZGlmZmVyZW5jZXNcbiAgICAgKiBAcGFyYW0gdmFsdWUgdG8gY29tcGFyZSBtYXRjaGluZyBvcHRpb25zXG4gICAgICogQHBhcmFtIG9wdGlvbnMgdGhhdCBzaG91bGQgYmUgZmlsdGVyZWRcbiAgICAgKiBAcmV0dXJuICByZXR1cm4gbWF0Y2hlZCBvcHRpb25zXG4gICAgICovXG4gICAgcHJvdGVjdGVkIF9maWx0ZXIodmFsdWU6IHN0cmluZywgb3B0aW9uczogQXJyYXk8Rm9ybT4pOiBBcnJheTxGb3JtPiB7XG4gICAgICAgIGNvbnN0IGZpbHRlclZhbHVlID0gdmFsdWUudG9Mb3dlckNhc2UoKS5ub3JtYWxpemUoJ05GRCcpLnJlcGxhY2UoL1tcXHUwMzAwLVxcdTAzNmZdL2csICcnKTtcblxuICAgICAgICByZXR1cm4gb3B0aW9ucy5maWx0ZXIob3B0aW9uID0+IG9wdGlvbi52aWV3VmFsdWUudG9Mb3dlckNhc2UoKS5ub3JtYWxpemUoJ05GRCcpXG4gICAgICAgICAgICAucmVwbGFjZSgvW1xcdTAzMDAtXFx1MDM2Zl0vZywgJycpLmluZGV4T2YoZmlsdGVyVmFsdWUpID09PSAwKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY2xvc2VOb05ldHMoKSB7XG4gICAgICAgIHRoaXMuX3NuYWNrQmFyU2VydmljZS5vcGVuRXJyb3JTbmFja0Jhcih0aGlzLl90cmFuc2xhdGUuaW5zdGFudCgnc2lkZS1tZW51Lm5ldy1jYXNlLm5vTmV0cycpKTtcbiAgICAgICAgdGhpcy5fc2lkZU1lbnVDb250cm9sLmNsb3NlKHtcbiAgICAgICAgICAgIG9wZW5lZDogZmFsc2VcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmV4dFN0ZXAoKSB7XG4gICAgICAgIGlmICh0aGlzLnN0ZXBwZXIxKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5zdGVwcGVyMS5zZWxlY3RlZEluZGV4ID09PSAxKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVOZXdDYXNlKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RlcHBlcjEubmV4dCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnN0ZXBwZXIyKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5zdGVwcGVyMi5zZWxlY3RlZEluZGV4ID09PSAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVOZXdDYXNlKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RlcHBlcjIubmV4dCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgdGl0bGVTaG9ydGVuaW5nKCkge1xuICAgICAgICBsZXQgc2l6ZTtcbiAgICAgICAgaWYgKHRoaXMudG9vbGJhciAmJiB0aGlzLnRvb2xiYXIuX2VsZW1lbnRSZWYgJiYgdGhpcy50b29sYmFyLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgJiZcbiAgICAgICAgICAgIHRoaXMudG9vbGJhci5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKHRoaXMudG9vbGJhci5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAyOTY6XG4gICAgICAgICAgICAgICAgICAgIHNpemUgPSAyMjtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSA0OTY6XG4gICAgICAgICAgICAgICAgICAgIHNpemUgPSA0MjtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAyNDY6XG4gICAgICAgICAgICAgICAgICAgIHNpemUgPSAxODtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgc2l6ZSA9IDMyO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHNpemUgPSAzMjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGNhemUgPSB0aGlzLl90cmFuc2xhdGUuaW5zdGFudCgnc2lkZS1tZW51Lm5ldy1jYXNlLmNhc2UnKTtcbiAgICAgICAgY29uc3QgbmFtZSA9IHR5cGVvZiB0aGlzLnByb2Nlc3NGb3JtQ29udHJvbC52YWx1ZSA9PT0gJ3N0cmluZycgfHwgdGhpcy5wcm9jZXNzRm9ybUNvbnRyb2wudmFsdWUgPT09IG51bGwgP1xuICAgICAgICAgICAgdW5kZWZpbmVkIDogdGhpcy5wcm9jZXNzRm9ybUNvbnRyb2wudmFsdWUudmlld1ZhbHVlO1xuICAgICAgICBjb25zdCB0aXRsZSA9IG5hbWUgPT09IHVuZGVmaW5lZCA/IGNhemUgOiBjYXplICsgJyAtICcgKyBuYW1lO1xuICAgICAgICBpZiAodGl0bGUubGVuZ3RoID4gc2l6ZSkge1xuICAgICAgICAgICAgY29uc3QgdG1wID0gdGl0bGUuc2xpY2UoMCwgc2l6ZSk7XG4gICAgICAgICAgICByZXR1cm4gdG1wICsgJy4uLic7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRpdGxlO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVtb3ZlT2xkVmVyc2lvbnMob3B0aW9uczogQXJyYXk8Rm9ybT4pOiBBcnJheTxGb3JtPiB7XG4gICAgICAgIGNvbnN0IHRlbXBOZXRzID0gT2JqZWN0LmFzc2lnbihbXSwgb3B0aW9ucyk7XG4gICAgICAgIGNvbnN0IHBldHJpTmV0SWRzID0gbmV3IFNldChvcHRpb25zLm1hcChmb3JtID0+IGZvcm0udmFsdWUpKTtcbiAgICAgICAgY29uc3QgbmV3ZXN0TmV0cyA9IG5ldyBBcnJheTxGb3JtPigpO1xuXG4gICAgICAgIGZvciAoY29uc3QgdmFsdWUgb2YgcGV0cmlOZXRJZHMpIHtcbiAgICAgICAgICAgIGxldCBjdXJyZW50OiBGb3JtID0ge3ZhbHVlLCB2ZXJzaW9uOiAnMS4wLjAnLCB2aWV3VmFsdWU6ICcnfTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgbmV0IG9mIHRlbXBOZXRzKSB7XG4gICAgICAgICAgICAgICAgaWYgKHZhbHVlID09PSBuZXQudmFsdWUgJiYgIXNlbXZlci5sdChuZXQudmVyc2lvbiwgY3VycmVudC52ZXJzaW9uKSkge1xuICAgICAgICAgICAgICAgICAgICBjdXJyZW50ID0gbmV0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG5ld2VzdE5ldHMucHVzaChjdXJyZW50KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV3ZXN0TmV0cztcbiAgICB9XG5cbiAgICBpc0Nhc2VUaXRsZUVuYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhISh0aGlzLl9pbmplY3RlZERhdGE/Lm5ld0Nhc2VDcmVhdGlvbkNvbmZpZ3VyYXRpb24/LmVuYWJsZUNhc2VUaXRsZSA/PyB0cnVlKTtcbiAgICB9XG5cbiAgICBpc0Nhc2VUaXRsZVJlcXVpcmVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pc0Nhc2VUaXRsZUVuYWJsZWQoKSAmJiAhISh0aGlzLl9pbmplY3RlZERhdGE/Lm5ld0Nhc2VDcmVhdGlvbkNvbmZpZ3VyYXRpb24/LmlzQ2FzZVRpdGxlUmVxdWlyZWQgPz8gdHJ1ZSk7XG4gICAgfVxuXG4gICAgc2hvd1ZlcnNpb24ob3B0aW9uOiBNYXRPcHRpb24pOiB2b2lkIHtcbiAgICAgICAgaWYgKG9wdGlvbiAhPT0gdW5kZWZpbmVkICYmIG9wdGlvbi52YWx1ZSAhPT0gdW5kZWZpbmVkICYmIG9wdGlvbi52YWx1ZS52ZXJzaW9uICE9PSB1bmRlZmluZWQpXG4gICAgICAgICAgICB0aGlzLm5ldFZlcnNpb24gPSBvcHRpb24udmFsdWUudmVyc2lvbjtcbiAgICB9XG5cbiAgICBjaGVja1ZlcnNpb24odmlld1ZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY3VycmVudE9wdGlvbiA9IHR5cGVvZiB2aWV3VmFsdWUgPT09ICdzdHJpbmcnIHx8IHZpZXdWYWx1ZSA9PT0gbnVsbCA/IHVuZGVmaW5lZCA6IHZpZXdWYWx1ZS52ZXJzaW9uO1xuICAgICAgICBpZiAoY3VycmVudE9wdGlvbiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLm5ldFZlcnNpb24gPSAnJztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHRvTmV4dFN0ZXAodmlld1ZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgaWYgKHZpZXdWYWx1ZSAhPT0gbnVsbCAmJiB2aWV3VmFsdWUudmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5zdGVwcGVyMS5uZXh0KCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
266
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtbmV3LWNhc2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmV0Z3JpZi1jb21wb25lbnRzLWNvcmUvc3JjL2xpYi9zaWRlLW1lbnUvY29udGVudC1jb21wb25lbnRzL25ldy1jYXNlL2Fic3RyYWN0LW5ldy1jYXNlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLE1BQU0sRUFBYSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdEUsT0FBTyxFQUFjLFdBQVcsRUFBRSxVQUFVLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUVwRSxPQUFPLEVBQUMsR0FBRyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQUMsZUFBZSxFQUFFLGFBQWEsRUFBYyxhQUFhLEVBQWUsTUFBTSxNQUFNLENBQUM7QUFFN0YsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFLdEUsT0FBTyxFQUFDLE1BQU0sRUFBaUIsTUFBTSxrQkFBa0IsQ0FBQztBQUV4RCxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFJNUIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7Ozs7OztBQVlsRSxNQUFNLE9BQWdCLHdCQUF3QjtJQXdCMUMsWUFBK0QsZ0JBQWlDLEVBQ2hFLFlBQXlCLEVBQ3pCLGdCQUFpQyxFQUNqQyxvQkFBeUMsRUFDekMsZUFBK0IsRUFDL0IsVUFBNEI7UUFMRyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWlCO1FBQ2hFLGlCQUFZLEdBQVosWUFBWSxDQUFhO1FBQ3pCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBaUI7UUFDakMseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFxQjtRQUN6QyxvQkFBZSxHQUFmLGVBQWUsQ0FBZ0I7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QUFFO1lBQ3JELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDeEI7SUFDTCxDQUFDOztzSEE5UWlCLHdCQUF3QixrQkF3QloscUJBQXFCOzBHQXhCakMsd0JBQXdCLCtVQUZoQyxFQUFFOzRGQUVNLHdCQUF3QjtrQkFKN0MsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsdUJBQXVCO29CQUNqQyxRQUFRLEVBQUUsRUFBRTtpQkFDZjs7MEJBeUIwQixNQUFNOzJCQUFDLHFCQUFxQjtrTUFaN0IsT0FBTztzQkFBNUIsU0FBUzt1QkFBQyxTQUFTO2dCQUVHLFFBQVE7c0JBQTlCLFNBQVM7dUJBQUMsVUFBVTtnQkFDRSxRQUFRO3NCQUE5QixTQUFTO3VCQUFDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSW5qZWN0LCBPbkRlc3Ryb3ksIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Zvcm1CdWlsZGVyLCBGb3JtQ29udHJvbCwgVmFsaWRhdG9yc30gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtTdGVwcGVyU2VsZWN0aW9uRXZlbnR9IGZyb20gJ0Bhbmd1bGFyL2Nkay9zdGVwcGVyJztcbmltcG9ydCB7bWFwLCBzdGFydFdpdGgsIHRhcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUsIFJlcGxheVN1YmplY3QsIFN1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1NuYWNrQmFyU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc25hY2stYmFyL3NlcnZpY2VzL3NuYWNrLWJhci5zZXJ2aWNlJztcbmltcG9ydCB7TkFFX1NJREVfTUVOVV9DT05UUk9MfSBmcm9tICcuLi8uLi9zaWRlLW1lbnUtaW5qZWN0aW9uLXRva2VuJztcbmltcG9ydCB7U2lkZU1lbnVDb250cm9sfSBmcm9tICcuLi8uLi9tb2RlbHMvc2lkZS1tZW51LWNvbnRyb2wnO1xuaW1wb3J0IHtDYXNlUmVzb3VyY2VTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9yZXNvdXJjZXMvZW5naW5lLWVuZHBvaW50L2Nhc2UtcmVzb3VyY2Uuc2VydmljZSc7XG5pbXBvcnQge05ld0Nhc2VJbmplY3Rpb25EYXRhfSBmcm9tICcuL21vZGVsL25ldy1jYXNlLWluamVjdGlvbi1kYXRhJztcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge0hvdGtleSwgSG90a2V5c1NlcnZpY2V9IGZyb20gJ2FuZ3VsYXIyLWhvdGtleXMnO1xuaW1wb3J0IHtNYXRUb29sYmFyfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sYmFyJztcbmltcG9ydCBzZW12ZXIgZnJvbSAnc2VtdmVyJztcbmltcG9ydCB7Q3JlYXRlQ2FzZUV2ZW50T3V0Y29tZX0gZnJvbSAnLi4vLi4vLi4vZXZlbnQvbW9kZWwvZXZlbnQtb3V0Y29tZXMvY2FzZS1vdXRjb21lcy9jcmVhdGUtY2FzZS1ldmVudC1vdXRjb21lJztcbmltcG9ydCB7RXZlbnRPdXRjb21lTWVzc2FnZVJlc291cmNlfSBmcm9tICcuLi8uLi8uLi9yZXNvdXJjZXMvaW50ZXJmYWNlL21lc3NhZ2UtcmVzb3VyY2UnO1xuaW1wb3J0IHtNYXRPcHRpb259IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgTG9hZGluZ0VtaXR0ZXIgfSBmcm9tICcuLi8uLi8uLi91dGlsaXR5L2xvYWRpbmctZW1pdHRlcic7XG5cbmludGVyZmFjZSBGb3JtIHtcbiAgICB2YWx1ZTogc3RyaW5nO1xuICAgIHZpZXdWYWx1ZTogc3RyaW5nO1xuICAgIHZlcnNpb24/OiBzdHJpbmc7XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmNjLWFic3RyYWN0LW5ldy1jYXNlJyxcbiAgICB0ZW1wbGF0ZTogJydcbn0pXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3ROZXdDYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcblxuICAgIHByb2Nlc3NGb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgnJywgVmFsaWRhdG9ycy5yZXF1aXJlZCk7XG4gICAgdGl0bGVGb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgnJywgVmFsaWRhdG9ycy5yZXF1aXJlZCk7XG4gICAgbmV0VmVyc2lvbjogc3RyaW5nO1xuXG4gICAgb3B0aW9uczogQXJyYXk8Rm9ybT4gPSBbXTtcbiAgICBjb2xvcnM6IEFycmF5PEZvcm0+ID0gW1xuICAgICAgICB7dmFsdWU6ICdwYW5lbC1wcmltYXJ5LWljb24nLCB2aWV3VmFsdWU6ICdQcmltYXJ5J30sXG4gICAgICAgIHt2YWx1ZTogJ3BhbmVsLWFjY2VudC1pY29uJywgdmlld1ZhbHVlOiAnQWNjZW50J30sXG4gICAgXTtcbiAgICBmaWx0ZXJlZE9wdGlvbnMkOiBPYnNlcnZhYmxlPEFycmF5PEZvcm0+PjtcbiAgICBAVmlld0NoaWxkKCd0b29sYmFyJykgdG9vbGJhcjogTWF0VG9vbGJhcjtcblxuICAgIEBWaWV3Q2hpbGQoJ3N0ZXBwZXIxJykgc3RlcHBlcjE7XG4gICAgQFZpZXdDaGlsZCgnc3RlcHBlcjInKSBzdGVwcGVyMjtcblxuICAgIHB1YmxpYyBsb2FkaW5nU3VibWl0OiBMb2FkaW5nRW1pdHRlcjtcbiAgICBwcm90ZWN0ZWQgX29wdGlvbnMkOiBSZXBsYXlTdWJqZWN0PEFycmF5PEZvcm0+PjtcbiAgICBwcm90ZWN0ZWQgX2luamVjdGVkRGF0YTogTmV3Q2FzZUluamVjdGlvbkRhdGE7XG4gICAgcHJvdGVjdGVkIF9oYXNNdWx0aXBsZU5ldHMkOiBSZXBsYXlTdWJqZWN0PGJvb2xlYW4+O1xuICAgIHByb3RlY3RlZCBfbm90SW5pdGlhbGl6ZWQkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj47XG4gICAgcHJpdmF0ZSBfYWxsb3dlZE5ldHNTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICAgIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihASW5qZWN0KE5BRV9TSURFX01FTlVfQ09OVFJPTCkgcHJvdGVjdGVkIF9zaWRlTWVudUNvbnRyb2w6IFNpZGVNZW51Q29udHJvbCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9mb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfc25hY2tCYXJTZXJ2aWNlOiBTbmFja0JhclNlcnZpY2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfY2FzZVJlc291cmNlU2VydmljZTogQ2FzZVJlc291cmNlU2VydmljZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9ob3RrZXlzU2VydmljZTogSG90a2V5c1NlcnZpY2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlKSB7XG4gICAgICAgIGlmICh0aGlzLl9zaWRlTWVudUNvbnRyb2wuZGF0YSkge1xuICAgICAgICAgICAgdGhpcy5faW5qZWN0ZWREYXRhID0gdGhpcy5fc2lkZU1lbnVDb250cm9sLmRhdGEgYXMgTmV3Q2FzZUluamVjdGlvbkRhdGE7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLl9pbmplY3RlZERhdGEpIHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2VOb05ldHMoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9ob3RrZXlzU2VydmljZS5hZGQobmV3IEhvdGtleSgnZW50ZXInLCAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiBib29sZWFuID0+IHtcbiAgICAgICAgICAgIHRoaXMubmV4dFN0ZXAoKTtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfSkpO1xuXG4gICAgICAgIHRoaXMuX2hhc011bHRpcGxlTmV0cyQgPSBuZXcgUmVwbGF5U3ViamVjdCgxKTtcbiAgICAgICAgdGhpcy5fbm90SW5pdGlhbGl6ZWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih0cnVlKTtcbiAgICAgICAgdGhpcy5fb3B0aW9ucyQgPSBuZXcgUmVwbGF5U3ViamVjdCgxKTtcbiAgICAgICAgdGhpcy5sb2FkaW5nU3VibWl0ID0gbmV3IExvYWRpbmdFbWl0dGVyKGZhbHNlKTtcblxuICAgICAgICB0aGlzLl9hbGxvd2VkTmV0c1N1YnNjcmlwdGlvbiA9IHRoaXMuX2luamVjdGVkRGF0YS5hbGxvd2VkTmV0cyQucGlwZShcbiAgICAgICAgICAgIG1hcChuZXRzID0+IG5ldHMubWFwKHBldHJpTmV0ID0+ICh7XG4gICAgICAgICAgICAgICAgdmFsdWU6IHBldHJpTmV0LnN0cmluZ0lkLFxuICAgICAgICAgICAgICAgIHZpZXdWYWx1ZTogcGV0cmlOZXQudGl0bGUsXG4gICAgICAgICAgICAgICAgdmVyc2lvbjogcGV0cmlOZXQudmVyc2lvblxuICAgICAgICAgICAgfSkpKSxcbiAgICAgICAgICAgIG1hcChuZXRzID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuX3NpZGVNZW51Q29udHJvbC5hbGxWZXJzaW9uRW5hYmxlZCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5yZW1vdmVPbGRWZXJzaW9ucyhuZXRzKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV0cztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHRhcChvcHRpb25zID0+IHtcbiAgICAgICAgICAgICAgICBpZiAob3B0aW9ucy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jbG9zZU5vTmV0cygpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuICAgICAgICAgICAgICAgIHRoaXMuX2hhc011bHRpcGxlTmV0cyQubmV4dChvcHRpb25zLmxlbmd0aCA+IDEpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKS5zdWJzY3JpYmUob3B0aW9ucyA9PiB7XG4gICAgICAgICAgICB0aGlzLl9vcHRpb25zJC5uZXh0KG9wdGlvbnMpO1xuICAgICAgICAgICAgaWYgKCF0aGlzLl9ub3RJbml0aWFsaXplZCQuY2xvc2VkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fbm90SW5pdGlhbGl6ZWQkLm5leHQoZmFsc2UpO1xuICAgICAgICAgICAgICAgIHRoaXMuX25vdEluaXRpYWxpemVkJC5jb21wbGV0ZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmZpbHRlcmVkT3B0aW9ucyQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLl9vcHRpb25zJCwgdGhpcy5wcm9jZXNzRm9ybUNvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUoc3RhcnRXaXRoKCcnKSldKS5waXBlKFxuICAgICAgICAgICAgbWFwKHNvdXJjZXMgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IG9wdGlvbnMgPSBzb3VyY2VzWzBdO1xuICAgICAgICAgICAgICAgIGNvbnN0IGlucHV0ID0gdHlwZW9mIHNvdXJjZXNbMV0gPT09ICdzdHJpbmcnIHx8IHNvdXJjZXNbMV0gPT09IG51bGwgPyBzb3VyY2VzWzFdIDogc291cmNlc1sxXS52aWV3VmFsdWU7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlucHV0ID8gdGhpcy5fZmlsdGVyKGlucHV0LCBvcHRpb25zKSA6IG9wdGlvbnMuc2xpY2UoKTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgdGFwKGZpbHRlcmVkT3B0aW9ucyA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGZpbHRlcmVkT3B0aW9ucy5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9jZXNzRm9ybUNvbnRyb2wuc2V0VmFsdWUoZmlsdGVyZWRPcHRpb25zWzBdLCB7ZW1pdEV2ZW50OiBmYWxzZX0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2hhc011bHRpcGxlTmV0cyQuY29tcGxldGUoKTtcbiAgICAgICAgdGhpcy5sb2FkaW5nU3VibWl0LmNvbXBsZXRlKCk7XG4gICAgICAgIHRoaXMuX2FsbG93ZWROZXRzU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBoYXNNdWx0aXBsZU5ldHMkKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faGFzTXVsdGlwbGVOZXRzJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IG5vdEluaXRpYWxpemVkJCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX25vdEluaXRpYWxpemVkJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RlcENoYW5nZSgkZXZlbnQ6IFN0ZXBwZXJTZWxlY3Rpb25FdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9zaWRlTWVudUNvbnRyb2wucHVibGlzaCh7XG4gICAgICAgICAgICBvcGVuZWQ6IHRydWUsXG4gICAgICAgICAgICBtZXNzYWdlOiAnQWN0aXZlIHN0ZXAgaGFzIGNoYW5nZWQnLFxuICAgICAgICAgICAgZGF0YTogJGV2ZW50XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGRpc3BsYXlGbihwcm9jZXNzOiBGb3JtKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHByb2Nlc3MgJiYgcHJvY2Vzcy52aWV3VmFsdWUgPyBwcm9jZXNzLnZpZXdWYWx1ZSA6ICcnO1xuICAgIH1cblxuICAgIHB1YmxpYyBjcmVhdGVOZXdDYXNlKCk6IHZvaWQge1xuICAgICAgICBpZih0aGlzLmxvYWRpbmdTdWJtaXQudmFsdWUpe1xuICAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy50aXRsZUZvcm1Db250cm9sLnZhbGlkIHx8ICF0aGlzLmlzQ2FzZVRpdGxlUmVxdWlyZWQoKSkge1xuICAgICAgICAgICAgY29uc3QgbmV3Q2FzZSA9IHtcbiAgICAgICAgICAgICAgICB0aXRsZTogdGhpcy50aXRsZUZvcm1Db250cm9sLnZhbHVlID09PSAnJyA/IG51bGwgOiB0aGlzLnRpdGxlRm9ybUNvbnRyb2wudmFsdWUsXG4gICAgICAgICAgICAgICAgY29sb3I6ICdwYW5lbC1wcmltYXJ5LWljb24nLFxuICAgICAgICAgICAgICAgIG5ldElkOiB0aGlzLm9wdGlvbnMubGVuZ3RoID09PSAxID8gdGhpcy5vcHRpb25zWzBdLnZhbHVlIDogdGhpcy5wcm9jZXNzRm9ybUNvbnRyb2wudmFsdWUudmFsdWVcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB0aGlzLmxvYWRpbmdTdWJtaXQub24oKTtcbiAgICAgICAgICAgIHRoaXMuX2Nhc2VSZXNvdXJjZVNlcnZpY2UuY3JlYXRlQ2FzZShuZXdDYXNlKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgICAgICAgIChyZXNwb25zZTogRXZlbnRPdXRjb21lTWVzc2FnZVJlc291cmNlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxvYWRpbmdTdWJtaXQub2ZmKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoISFyZXNwb25zZS5vdXRjb21lKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fc25hY2tCYXJTZXJ2aWNlLm9wZW5TdWNjZXNzU25hY2tCYXIocmVzcG9uc2Uub3V0Y29tZS5tZXNzYWdlID09PSB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB0aGlzLl90cmFuc2xhdGUuaW5zdGFudCgnc2lkZS1tZW51Lm5ldy1jYXNlLmNyZWF0ZUNhc2UnKSArICcgJyArIG5ld0Nhc2UudGl0bGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiByZXNwb25zZS5vdXRjb21lLm1lc3NhZ2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3NpZGVNZW51Q29udHJvbC5jbG9zZSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wZW5lZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IHJlc3BvbnNlLm91dGNvbWUubWVzc2FnZSA9PT0gdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICdDb25maXJtIG5ldyBjYXNlIHNldHVwJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiByZXNwb25zZS5vdXRjb21lLm1lc3NhZ2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiAocmVzcG9uc2Uub3V0Y29tZSBhcyBDcmVhdGVDYXNlRXZlbnRPdXRjb21lKS5hQ2FzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICghIXJlc3BvbnNlLmVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fc25hY2tCYXJTZXJ2aWNlLm9wZW5XYXJuaW5nU25hY2tCYXIodGhpcy5fdHJhbnNsYXRlLmluc3RhbnQoJ3NpZGUtbWVudS5uZXctY2FzZS5jcmVhdGVDYXNlRXJyb3InKSArICcgJyArIG5ld0Nhc2UudGl0bGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3NpZGVNZW51Q29udHJvbC5jbG9zZSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wZW5lZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IHJlc3BvbnNlLmVycm9yID09PSB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gJ0NvbmZpcm0gbmV3IGNhc2Ugc2V0dXAnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHJlc3BvbnNlLmVycm9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIGVycm9yID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZ1N1Ym1pdC5vZmYoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3NuYWNrQmFyU2VydmljZS5vcGVuRXJyb3JTbmFja0JhcihlcnJvci5tZXNzYWdlID8gZXJyb3IubWVzc2FnZSA6IGVycm9yKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBGdW5jdGlvbiB0byBmaWx0ZXIgb3V0IG1hdGNobGVzcyBvcHRpb25zIHdpdGhvdXQgYWNjZW50IGFuZCBjYXNlLXNlbnNpdGl2ZSBkaWZmZXJlbmNlc1xuICAgICAqIEBwYXJhbSB2YWx1ZSB0byBjb21wYXJlIG1hdGNoaW5nIG9wdGlvbnNcbiAgICAgKiBAcGFyYW0gb3B0aW9ucyB0aGF0IHNob3VsZCBiZSBmaWx0ZXJlZFxuICAgICAqIEByZXR1cm4gIHJldHVybiBtYXRjaGVkIG9wdGlvbnNcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgX2ZpbHRlcih2YWx1ZTogc3RyaW5nLCBvcHRpb25zOiBBcnJheTxGb3JtPik6IEFycmF5PEZvcm0+IHtcbiAgICAgICAgY29uc3QgZmlsdGVyVmFsdWUgPSB2YWx1ZS50b0xvd2VyQ2FzZSgpLm5vcm1hbGl6ZSgnTkZEJykucmVwbGFjZSgvW1xcdTAzMDAtXFx1MDM2Zl0vZywgJycpO1xuXG4gICAgICAgIHJldHVybiBvcHRpb25zLmZpbHRlcihvcHRpb24gPT4gb3B0aW9uLnZpZXdWYWx1ZS50b0xvd2VyQ2FzZSgpLm5vcm1hbGl6ZSgnTkZEJylcbiAgICAgICAgICAgIC5yZXBsYWNlKC9bXFx1MDMwMC1cXHUwMzZmXS9nLCAnJykuaW5kZXhPZihmaWx0ZXJWYWx1ZSkgPT09IDApO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBjbG9zZU5vTmV0cygpIHtcbiAgICAgICAgdGhpcy5fc25hY2tCYXJTZXJ2aWNlLm9wZW5FcnJvclNuYWNrQmFyKHRoaXMuX3RyYW5zbGF0ZS5pbnN0YW50KCdzaWRlLW1lbnUubmV3LWNhc2Uubm9OZXRzJykpO1xuICAgICAgICB0aGlzLl9zaWRlTWVudUNvbnRyb2wuY2xvc2Uoe1xuICAgICAgICAgICAgb3BlbmVkOiBmYWxzZVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZXh0U3RlcCgpIHtcbiAgICAgICAgaWYgKHRoaXMuc3RlcHBlcjEpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnN0ZXBwZXIxLnNlbGVjdGVkSW5kZXggPT09IDEpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZU5ld0Nhc2UoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGVwcGVyMS5uZXh0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuc3RlcHBlcjIpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnN0ZXBwZXIyLnNlbGVjdGVkSW5kZXggPT09IDApIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZU5ld0Nhc2UoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGVwcGVyMi5uZXh0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB0aXRsZVNob3J0ZW5pbmcoKSB7XG4gICAgICAgIGxldCBzaXplO1xuICAgICAgICBpZiAodGhpcy50b29sYmFyICYmIHRoaXMudG9vbGJhci5fZWxlbWVudFJlZiAmJiB0aGlzLnRvb2xiYXIuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCAmJlxuICAgICAgICAgICAgdGhpcy50b29sYmFyLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGgpIHtcbiAgICAgICAgICAgIHN3aXRjaCAodGhpcy50b29sYmFyLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGgpIHtcbiAgICAgICAgICAgICAgICBjYXNlIDI5NjpcbiAgICAgICAgICAgICAgICAgICAgc2l6ZSA9IDIyO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIDQ5NjpcbiAgICAgICAgICAgICAgICAgICAgc2l6ZSA9IDQyO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIDI0NjpcbiAgICAgICAgICAgICAgICAgICAgc2l6ZSA9IDE4O1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICBzaXplID0gMzI7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc2l6ZSA9IDMyO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY2F6ZSA9IHRoaXMuX3RyYW5zbGF0ZS5pbnN0YW50KCdzaWRlLW1lbnUubmV3LWNhc2UuY2FzZScpO1xuICAgICAgICBjb25zdCBuYW1lID0gdHlwZW9mIHRoaXMucHJvY2Vzc0Zvcm1Db250cm9sLnZhbHVlID09PSAnc3RyaW5nJyB8fCB0aGlzLnByb2Nlc3NGb3JtQ29udHJvbC52YWx1ZSA9PT0gbnVsbCA/XG4gICAgICAgICAgICB1bmRlZmluZWQgOiB0aGlzLnByb2Nlc3NGb3JtQ29udHJvbC52YWx1ZS52aWV3VmFsdWU7XG4gICAgICAgIGNvbnN0IHRpdGxlID0gbmFtZSA9PT0gdW5kZWZpbmVkID8gY2F6ZSA6IGNhemUgKyAnIC0gJyArIG5hbWU7XG4gICAgICAgIGlmICh0aXRsZS5sZW5ndGggPiBzaXplKSB7XG4gICAgICAgICAgICBjb25zdCB0bXAgPSB0aXRsZS5zbGljZSgwLCBzaXplKTtcbiAgICAgICAgICAgIHJldHVybiB0bXAgKyAnLi4uJztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGl0bGU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZW1vdmVPbGRWZXJzaW9ucyhvcHRpb25zOiBBcnJheTxGb3JtPik6IEFycmF5PEZvcm0+IHtcbiAgICAgICAgY29uc3QgdGVtcE5ldHMgPSBPYmplY3QuYXNzaWduKFtdLCBvcHRpb25zKTtcbiAgICAgICAgY29uc3QgcGV0cmlOZXRJZHMgPSBuZXcgU2V0KG9wdGlvbnMubWFwKGZvcm0gPT4gZm9ybS52YWx1ZSkpO1xuICAgICAgICBjb25zdCBuZXdlc3ROZXRzID0gbmV3IEFycmF5PEZvcm0+KCk7XG5cbiAgICAgICAgZm9yIChjb25zdCB2YWx1ZSBvZiBwZXRyaU5ldElkcykge1xuICAgICAgICAgICAgbGV0IGN1cnJlbnQ6IEZvcm0gPSB7dmFsdWUsIHZlcnNpb246ICcxLjAuMCcsIHZpZXdWYWx1ZTogJyd9O1xuICAgICAgICAgICAgZm9yIChjb25zdCBuZXQgb2YgdGVtcE5ldHMpIHtcbiAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT09IG5ldC52YWx1ZSAmJiAhc2VtdmVyLmx0KG5ldC52ZXJzaW9uLCBjdXJyZW50LnZlcnNpb24pKSB7XG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnQgPSBuZXQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbmV3ZXN0TmV0cy5wdXNoKGN1cnJlbnQpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXdlc3ROZXRzO1xuICAgIH1cblxuICAgIGlzQ2FzZVRpdGxlRW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhKHRoaXMuX2luamVjdGVkRGF0YT8ubmV3Q2FzZUNyZWF0aW9uQ29uZmlndXJhdGlvbj8uZW5hYmxlQ2FzZVRpdGxlID8/IHRydWUpO1xuICAgIH1cblxuICAgIGlzQ2FzZVRpdGxlUmVxdWlyZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzQ2FzZVRpdGxlRW5hYmxlZCgpICYmICEhKHRoaXMuX2luamVjdGVkRGF0YT8ubmV3Q2FzZUNyZWF0aW9uQ29uZmlndXJhdGlvbj8uaXNDYXNlVGl0bGVSZXF1aXJlZCA/PyB0cnVlKTtcbiAgICB9XG5cbiAgICBzaG93VmVyc2lvbihvcHRpb246IE1hdE9wdGlvbik6IHZvaWQge1xuICAgICAgICBpZiAob3B0aW9uICE9PSB1bmRlZmluZWQgJiYgb3B0aW9uLnZhbHVlICE9PSB1bmRlZmluZWQgJiYgb3B0aW9uLnZhbHVlLnZlcnNpb24gIT09IHVuZGVmaW5lZClcbiAgICAgICAgICAgIHRoaXMubmV0VmVyc2lvbiA9IG9wdGlvbi52YWx1ZS52ZXJzaW9uO1xuICAgIH1cblxuICAgIGNoZWNrVmVyc2lvbih2aWV3VmFsdWU6IGFueSk6IHZvaWQge1xuICAgICAgICBjb25zdCBjdXJyZW50T3B0aW9uID0gdHlwZW9mIHZpZXdWYWx1ZSA9PT0gJ3N0cmluZycgfHwgdmlld1ZhbHVlID09PSBudWxsID8gdW5kZWZpbmVkIDogdmlld1ZhbHVlLnZlcnNpb247XG4gICAgICAgIGlmIChjdXJyZW50T3B0aW9uID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMubmV0VmVyc2lvbiA9ICcnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdG9OZXh0U3RlcCh2aWV3VmFsdWU6IGFueSk6IHZvaWQge1xuICAgICAgICBpZiAodmlld1ZhbHVlICE9PSBudWxsICYmIHZpZXdWYWx1ZS52YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLnN0ZXBwZXIxLm5leHQoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
@@ -1080,7 +1080,8 @@ var admin$2 = {
1080
1080
  },
1081
1081
  "ldapGroup-list": {
1082
1082
  noLdapGroupsWereFound: "No LDAP group was found",
1083
- listTitle: "Ldap Groups"
1083
+ listTitle: "LDAP groups",
1084
+ count: "Number of groups"
1084
1085
  },
1085
1086
  "process-list": {
1086
1087
  newestVersion: "Newest version",
@@ -1559,7 +1560,8 @@ var admin$1 = {
1559
1560
  },
1560
1561
  "ldapGroup-list": {
1561
1562
  noLdapGroupsWereFound: "Žiadna LDAP skupina nebola najdená",
1562
- listTitle: "Ldap Skupiny"
1563
+ listTitle: "LDAP Skupiny",
1564
+ count: "Počet skupín"
1563
1565
  },
1564
1566
  "process-list": {
1565
1567
  newestVersion: "Najnovšia verzia",
@@ -2038,7 +2040,8 @@ var admin = {
2038
2040
  },
2039
2041
  "ldapGroup-list": {
2040
2042
  noLdapGroupsWereFound: "Keine LDAP Gruppe wurde gefunden",
2041
- listTitle: "LDAP Gruppen"
2043
+ listTitle: "LDAP Gruppen",
2044
+ count: "Anzahl der Gruppen"
2042
2045
  },
2043
2046
  "process-list": {
2044
2047
  newestVersion: "Neuste Version",
@@ -3777,6 +3780,9 @@ class DataField {
3777
3780
  set touch(set) {
3778
3781
  this._touch.next(set);
3779
3782
  }
3783
+ get touch$() {
3784
+ return this._touch.asObservable();
3785
+ }
3780
3786
  get component() {
3781
3787
  return this._component;
3782
3788
  }
@@ -4937,6 +4943,12 @@ class EnumerationField extends DataField {
4937
4943
  }
4938
4944
  }
4939
4945
 
4946
+ var EnumerationAutocompleteFilterProperty;
4947
+ (function (EnumerationAutocompleteFilterProperty) {
4948
+ EnumerationAutocompleteFilterProperty["PREFIX"] = "prefix";
4949
+ EnumerationAutocompleteFilterProperty["SUBSTRING"] = "substring";
4950
+ })(EnumerationAutocompleteFilterProperty || (EnumerationAutocompleteFilterProperty = {}));
4951
+
4940
4952
  class AbstractEnumerationAutocompleteSelectFieldComponent {
4941
4953
  constructor(_translate) {
4942
4954
  this._translate = _translate;
@@ -4950,26 +4962,69 @@ class AbstractEnumerationAutocompleteSelectFieldComponent {
4950
4962
  };
4951
4963
  }
4952
4964
  ngOnInit() {
4965
+ var _a;
4966
+ this.tmpValue = (_a = this.formControlRef.value) !== null && _a !== void 0 ? _a : '';
4953
4967
  this.filteredOptions = this.formControlRef.valueChanges.pipe(startWith(''), map(value => this._filter(value)));
4968
+ this.enumerationField.touch$.subscribe(touch => {
4969
+ if (touch) {
4970
+ this.text.control.markAsTouched();
4971
+ }
4972
+ });
4973
+ this.formControlRef.valueChanges.subscribe(it => {
4974
+ this.tmpValue = it !== null && it !== void 0 ? it : '';
4975
+ });
4954
4976
  }
4955
4977
  ngOnDestroy() {
4956
4978
  this.filteredOptions = undefined;
4957
4979
  }
4980
+ change() {
4981
+ if (this.text.value !== undefined) {
4982
+ this.filteredOptions = of(this._filter(this.text.value));
4983
+ }
4984
+ }
4985
+ select(event) {
4986
+ this.formControlRef.setValue(event.option.value);
4987
+ }
4988
+ isInvalid() {
4989
+ return !this.formControlRef.disabled && !this.formControlRef.valid && this.text.control.touched;
4990
+ }
4991
+ checkPropertyInComponent(property) {
4992
+ return !!this.enumerationField.component && !!this.enumerationField.component.properties && property in this.enumerationField.component.properties;
4993
+ }
4994
+ filterType() {
4995
+ if (this.checkPropertyInComponent('filter')) {
4996
+ return this.enumerationField.component.properties.filter;
4997
+ }
4998
+ }
4999
+ _filter(value) {
5000
+ var _a;
5001
+ let filterType = (_a = this.filterType()) === null || _a === void 0 ? void 0 : _a.toLowerCase();
5002
+ switch (filterType) {
5003
+ case EnumerationAutocompleteFilterProperty.SUBSTRING:
5004
+ return this._filterInclude(value);
5005
+ case EnumerationAutocompleteFilterProperty.PREFIX:
5006
+ return this._filterIndexOf(value);
5007
+ default:
5008
+ return this._filterIndexOf(value);
5009
+ }
5010
+ }
5011
+ _filterInclude(value) {
5012
+ const filterValue = value === null || value === void 0 ? void 0 : value.toLowerCase().normalize('NFD').replace(/[\u0300-\u036f]/g, '');
5013
+ return this.enumerationField.choices.filter(option => option.value.toLowerCase()
5014
+ .normalize('NFD')
5015
+ .replace(/[\u0300-\u036f]/g, '')
5016
+ .includes(filterValue));
5017
+ }
4958
5018
  /**
4959
5019
  * Function to filter out matchless options without accent and case-sensitive differences
4960
5020
  * @param value to compare matching options
4961
5021
  * @return return matched options
4962
5022
  */
4963
- _filter(value) {
5023
+ _filterIndexOf(value) {
4964
5024
  const filterValue = value === null || value === void 0 ? void 0 : value.toLowerCase().normalize('NFD').replace(/[\u0300-\u036f]/g, '');
4965
5025
  return this.enumerationField.choices.filter(option => option.value.toLowerCase().normalize('NFD')
4966
5026
  .replace(/[\u0300-\u036f]/g, '').indexOf(filterValue) === 0);
4967
5027
  }
4968
- change() {
4969
- if (this.text.nativeElement.value !== undefined) {
4970
- this.filteredOptions = of(this._filter(this.text.nativeElement.value));
4971
- }
4972
- }
4973
5028
  buildErrorMessage() {
4974
5029
  if (this.formControlRef.hasError(EnumerationFieldValidation.REQUIRED)) {
4975
5030
  return this._translate.instant('dataField.validations.required');
@@ -5627,8 +5682,8 @@ class I18nField extends DataField {
5627
5682
  && ((!a.translations && !!b.translations) || (!b.translations && !!a.translations)));
5628
5683
  }
5629
5684
  static translationsEquality(a, b) {
5630
- const aKeys = Object.keys(a.translations).sort();
5631
- const bKeys = Object.keys(b.translations).sort();
5685
+ const aKeys = !!a.translations ? Object.keys(a.translations).sort() : [];
5686
+ const bKeys = !!b.translations ? Object.keys(b.translations).sort() : [];
5632
5687
  if (aKeys.length !== bKeys.length
5633
5688
  || !aKeys.every((element, index) => {
5634
5689
  return element === bKeys[index];
@@ -5744,13 +5799,13 @@ class I18nField extends DataField {
5744
5799
  validTranslationRequired(countries) {
5745
5800
  return (fc) => {
5746
5801
  return countries.every(languageCode => languageCode in fc.value.translations)
5747
- ? (null) : ({ translationRequired: true });
5802
+ ? null : ({ translationRequired: true });
5748
5803
  };
5749
5804
  }
5750
5805
  validTranslationOnly(countries) {
5751
5806
  return (fc) => {
5752
5807
  return Object.keys(fc.value.translations).every(translation => countries.includes(translation))
5753
- ? (null) : ({ translationOnly: true });
5808
+ ? null : ({ translationOnly: true });
5754
5809
  };
5755
5810
  }
5756
5811
  validRequiredI18n(fc) {
@@ -6478,6 +6533,7 @@ class AbstractFileFieldComponent extends AbstractDataFieldComponent {
6478
6533
  }
6479
6534
  }
6480
6535
  this.updatedFieldSubscription = this.dataField.updated.subscribe(() => {
6536
+ this.previewSource = undefined;
6481
6537
  if (!!this.filePreview
6482
6538
  && !!this.dataField.value
6483
6539
  && !!this.dataField.value.name) {
@@ -7158,6 +7214,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
7158
7214
  type: Input
7159
7215
  }] } });
7160
7216
 
7217
+ var MultichoiceAutocompleteFilterProperty;
7218
+ (function (MultichoiceAutocompleteFilterProperty) {
7219
+ MultichoiceAutocompleteFilterProperty["PREFIX"] = "prefix";
7220
+ MultichoiceAutocompleteFilterProperty["SUBSTRING"] = "substring";
7221
+ })(MultichoiceAutocompleteFilterProperty || (MultichoiceAutocompleteFilterProperty = {}));
7222
+
7161
7223
  class AbstractMultichoiceAutocompleteFieldComponentComponent {
7162
7224
  constructor() {
7163
7225
  this.separatorKeysCodes = [ENTER, COMMA];
@@ -7177,7 +7239,7 @@ class AbstractMultichoiceAutocompleteFieldComponentComponent {
7177
7239
  this.filteredOptions = undefined;
7178
7240
  }
7179
7241
  add(event) {
7180
- const value = (event.value || '').trim();
7242
+ const value = (event['key'] || '').trim();
7181
7243
  if (value) {
7182
7244
  const choiceArray = [...this.multichoiceField.value];
7183
7245
  choiceArray.push(value);
@@ -7204,7 +7266,34 @@ class AbstractMultichoiceAutocompleteFieldComponentComponent {
7204
7266
  this.filteredOptions = of(this._filter(this.input.nativeElement.value).filter((option) => !this.multichoiceField.value.includes(option.key)));
7205
7267
  }
7206
7268
  }
7269
+ checkPropertyInComponent(property) {
7270
+ return !!this.multichoiceField.component && !!this.multichoiceField.component.properties && property in this.multichoiceField.component.properties;
7271
+ }
7272
+ filterType() {
7273
+ if (this.checkPropertyInComponent('filter')) {
7274
+ return this.multichoiceField.component.properties.filter;
7275
+ }
7276
+ }
7207
7277
  _filter(value) {
7278
+ var _a;
7279
+ let filterType = (_a = this.filterType()) === null || _a === void 0 ? void 0 : _a.toLowerCase();
7280
+ switch (filterType) {
7281
+ case MultichoiceAutocompleteFilterProperty.SUBSTRING:
7282
+ return this._filterInclude(value);
7283
+ case MultichoiceAutocompleteFilterProperty.PREFIX:
7284
+ return this._filterIndexOf(value);
7285
+ default:
7286
+ return this._filterIndexOf(value);
7287
+ }
7288
+ }
7289
+ _filterInclude(value) {
7290
+ if (Array.isArray(value)) {
7291
+ value = '';
7292
+ }
7293
+ const filterValue = value === null || value === void 0 ? void 0 : value.toLowerCase().normalize('NFD').replace(/[\u0300-\u036f]/g, '');
7294
+ return this.multichoiceField.choices.filter(option => option.value.toLowerCase().normalize('NFD').replace(/[\u0300-\u036f]/g, '').includes(filterValue));
7295
+ }
7296
+ _filterIndexOf(value) {
7208
7297
  if (Array.isArray(value)) {
7209
7298
  value = '';
7210
7299
  }
@@ -7212,6 +7301,10 @@ class AbstractMultichoiceAutocompleteFieldComponentComponent {
7212
7301
  return this.multichoiceField.choices.filter(option => option.value.toLowerCase().normalize('NFD')
7213
7302
  .replace(/[\u0300-\u036f]/g, '').indexOf(filterValue) === 0);
7214
7303
  }
7304
+ getValueFromKey(key) {
7305
+ var _a;
7306
+ return (_a = this.multichoiceField.choices.find(choice => choice.key === key)) === null || _a === void 0 ? void 0 : _a.value;
7307
+ }
7215
7308
  }
7216
7309
  AbstractMultichoiceAutocompleteFieldComponentComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AbstractMultichoiceAutocompleteFieldComponentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
7217
7310
  AbstractMultichoiceAutocompleteFieldComponentComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: AbstractMultichoiceAutocompleteFieldComponentComponent, selector: "ncc-abstract-multichoice-autocomplete-field", inputs: { multichoiceField: "multichoiceField", formControlRef: "formControlRef", showLargeLayout: "showLargeLayout" }, viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], ngImport: i0, template: '', isInline: true });
@@ -13447,6 +13540,12 @@ class AbstractI18nDividerFieldComponent {
13447
13540
  return this.dividerI18nField.component.properties.dividerColor;
13448
13541
  }
13449
13542
  }
13543
+ isDividerLGBTQ() {
13544
+ if (this.dividerPropertyEnabled('dividerLGBTQ')) {
13545
+ return this.dividerI18nField.component.properties.dividerLGBTQ === 'true';
13546
+ }
13547
+ return false;
13548
+ }
13450
13549
  getDividerFontSize() {
13451
13550
  if (this.dividerPropertyEnabled('fontSize')) {
13452
13551
  return this.dividerI18nField.component.properties.fontSize + 'px';
@@ -14020,6 +14119,9 @@ class AbstractAuthenticationOverlayComponent {
14020
14119
  if (!!user && !!user.id && user.id.length > 0) {
14021
14120
  this.redirect(!active);
14022
14121
  }
14122
+ else if (!active) {
14123
+ this._spinnerOverlay.spin$.next(false);
14124
+ }
14023
14125
  });
14024
14126
  });
14025
14127
  }
@@ -20111,6 +20213,7 @@ class AbstractNewCaseComponent {
20111
20213
  this._hasMultipleNets$ = new ReplaySubject(1);
20112
20214
  this._notInitialized$ = new BehaviorSubject(true);
20113
20215
  this._options$ = new ReplaySubject(1);
20216
+ this.loadingSubmit = new LoadingEmitter(false);
20114
20217
  this._allowedNetsSubscription = this._injectedData.allowedNets$.pipe(map(nets => nets.map(petriNet => ({
20115
20218
  value: petriNet.stringId,
20116
20219
  viewValue: petriNet.title,
@@ -20147,6 +20250,7 @@ class AbstractNewCaseComponent {
20147
20250
  }
20148
20251
  ngOnDestroy() {
20149
20252
  this._hasMultipleNets$.complete();
20253
+ this.loadingSubmit.complete();
20150
20254
  this._allowedNetsSubscription.unsubscribe();
20151
20255
  }
20152
20256
  get hasMultipleNets$() {
@@ -20166,14 +20270,19 @@ class AbstractNewCaseComponent {
20166
20270
  return process && process.viewValue ? process.viewValue : '';
20167
20271
  }
20168
20272
  createNewCase() {
20273
+ if (this.loadingSubmit.value) {
20274
+ return;
20275
+ }
20169
20276
  if (this.titleFormControl.valid || !this.isCaseTitleRequired()) {
20170
20277
  const newCase = {
20171
20278
  title: this.titleFormControl.value === '' ? null : this.titleFormControl.value,
20172
20279
  color: 'panel-primary-icon',
20173
20280
  netId: this.options.length === 1 ? this.options[0].value : this.processFormControl.value.value
20174
20281
  };
20282
+ this.loadingSubmit.on();
20175
20283
  this._caseResourceService.createCase(newCase)
20176
20284
  .subscribe((response) => {
20285
+ this.loadingSubmit.off();
20177
20286
  if (!!response.outcome) {
20178
20287
  this._snackBarService.openSuccessSnackBar(response.outcome.message === undefined
20179
20288
  ? this._translate.instant('side-menu.new-case.createCase') + ' ' + newCase.title
@@ -20195,7 +20304,10 @@ class AbstractNewCaseComponent {
20195
20304
  : response.error
20196
20305
  });
20197
20306
  }
20198
- }, error => this._snackBarService.openErrorSnackBar(error.message ? error.message : error));
20307
+ }, error => {
20308
+ this.loadingSubmit.off();
20309
+ this._snackBarService.openErrorSnackBar(error.message ? error.message : error);
20310
+ });
20199
20311
  }
20200
20312
  }
20201
20313
  /**
@@ -23212,9 +23324,9 @@ class PublicTaskResourceService extends TaskResourceService {
23212
23324
  * Delete file from the task
23213
23325
  * DELETE
23214
23326
  */
23215
- deleteFile(taskId, fieldId, name) {
23327
+ deleteFile(taskId, fieldId, name, param) {
23216
23328
  const url = !!name ? `public/task/${taskId}/file/${fieldId}/${name}` : `public/task/${taskId}/file/${fieldId}`;
23217
- return this._resourceProvider.delete$(url, this.SERVER_URL).pipe(map(r => this.changeType(r, undefined)));
23329
+ return this._resourceProvider.delete$(url, this.SERVER_URL, param).pipe(map(r => this.changeType(r, undefined)));
23218
23330
  }
23219
23331
  /**
23220
23332
  * Download task file preview for field value
@@ -32096,5 +32208,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
32096
32208
  * Generated bundle index. Do not edit.
32097
32209
  */
32098
32210
 
32099
- export { AbstractAddChildNodeComponent, AbstractAdvancedSearchComponent, AbstractAuthenticationOverlayComponent, AbstractBooleanFieldComponent, AbstractBreadcrumbsComponent, AbstractButtonFieldComponent, AbstractCaseListComponent, AbstractCaseListPaginatorComponent, AbstractCasePanelComponent, AbstractCaseViewComponent, AbstractCountCardComponent, AbstractCurrencyNumberFieldComponent, AbstractCustomCardComponent, AbstractDashboardContentComponent, AbstractDataFieldTemplateComponent, AbstractDateFieldComponent, AbstractDateTimeFieldComponent, AbstractDefaultNumberFieldComponent, AbstractEditModeComponent, AbstractEmailSubmissionFormComponent, AbstractEnumerationAutocompleteDynamicFieldComponent, AbstractEnumerationAutocompleteSelectFieldComponent, AbstractEnumerationFieldComponent, AbstractEnumerationIconFieldComponent, AbstractEnumerationListFieldComponent, AbstractEnumerationSelectFieldComponent, AbstractEnumerationStepperFieldComponent, AbstractFieldComponentResolverComponent, AbstractFileFieldComponent, AbstractFileListFieldComponent, AbstractFilterFieldComponent, AbstractFilterFieldContentComponent, AbstractFilterSelectorComponent, AbstractFilterSelectorListItemComponent, AbstractForgottenPasswordComponent, AbstractFulltextSearchComponent, AbstractGroupNavigationComponentResolverComponent, AbstractHeaderComponent, AbstractHeaderService, AbstractHtmlTextareaFieldComponent, AbstractI18nDividerFieldComponent, AbstractI18nErrorsComponent, AbstractI18nFieldComponent, AbstractI18nTextFieldComponent, AbstractIframeCardComponent, AbstractImmediateFilterTextComponent, AbstractImmediateFilterTextContentComponent, AbstractImportNetComponent, AbstractInternalLinkComponent, AbstractLanguageSelectorComponent, AbstractLdapGroupRoleAssignmentComponent, AbstractLegalNoticeComponent, AbstractLoadFilterComponent, AbstractLoadingModeComponent, AbstractLoggerService, AbstractLoginFormComponent, AbstractLogoutShortcutComponent, AbstractMultichoiceAutocompleteFieldComponentComponent, AbstractMultichoiceFieldComponent, AbstractMultichoiceListFieldComponent, AbstractMultichoiceSelectFieldComponent, AbstractNavigationDoubleDrawerComponent, AbstractNavigationDrawerComponent, AbstractNavigationRailComponent, AbstractNavigationTreeComponent, AbstractNewCaseComponent, AbstractNumberErrorsComponent, AbstractNumberFieldComponent, AbstractOptionSelectorComponent, AbstractPanelComponent, AbstractPanelItemComponent, AbstractPasswordTextFieldComponent, AbstractProfileComponent, AbstractQuickPanelComponent, AbstractRegistrationComponent, AbstractRegistrationFormComponent, AbstractRemoveNodeComponent, AbstractResourceProvider, AbstractResourceService, AbstractRichTextareaFieldComponent, AbstractRoleAssignmentComponent, AbstractSaveFilterComponent, AbstractSearchClauseComponent, AbstractSearchComponent, AbstractSearchConfigurationInputComponent, AbstractSearchModeComponent, AbstractSearchOperandInputComponent, AbstractSearchPredicateComponent, AbstractSideMenuContainerComponent, AbstractSimpleTextFieldComponent, AbstractSingleTaskComponent, AbstractSingleTaskViewComponent, AbstractSortModeComponent, AbstractSortableViewComponent, AbstractTabCreationDetectorComponent, AbstractTabViewComponent, AbstractTabbedCaseViewComponent, AbstractTabbedTaskViewComponent, AbstractTaskContentComponent, AbstractTaskListComponent, AbstractTaskListPaginationComponent, AbstractTaskPanelComponent, AbstractTaskViewComponent, AbstractTextErrorsComponent, AbstractTextFieldComponent, AbstractTextareaFieldComponent, AbstractToolbarComponent, AbstractTreeComponent, AbstractTreeTaskContentComponent, AbstractUserAssignComponent, AbstractUserAssignItemComponent, AbstractUserAssignListComponent, AbstractUserCardComponent, AbstractUserFieldComponent, AbstractUserInviteComponent, AbstractUserListFieldComponent, AbstractViewWithHeadersComponent, AbstractWorkflowPanelComponent, AbstractWorkflowViewComponent, AccessService, ActiveGroupService, AdvancedSearchComponentInitializationService, AfterAction, AlertDialogComponent, AlertDialogModule, AllowedNetsService, AllowedNetsServiceFactory, AnonymousService, AssignPolicy, AssignPolicyService, AssignTaskService, AuthenticationGuardService, AuthenticationMethodService, AuthenticationModule, AuthenticationService, AuthorityGuardService, AutocompleteCategory, BOOLEAN_VALUE_LABEL_ENABLED, BaseAllowedNetsService, BasicAuthenticationService, BooleanField, BooleanFieldValidation, BooleanOperator, ButtonField, ButtonFieldValidation, CallChainService, CancelTaskService, CaseAuthor, CaseCreationDate, CaseCreationDateTime, CaseDataset, CaseHeaderService, CaseListFontColorService, CaseMetaField, CaseNetAttributeAutocompleteCategory, CaseProcess, CaseResourceService, CaseRole, CaseSearch, CaseSimpleDataset, CaseStringId, CaseTask, CaseTitle, CaseTreeNode, CaseTreeService, CaseViewService, CaseVisualId, Categories, Category, CategoryFactory, CategoryResolverService, ChangedFieldsService, ClausePredicate, ConfigParams, ConfigurationInput, ConfigurationService, ConfirmDialogComponent, ConfirmDialogModule, ConsoleLogPublisher, CovalentModule, CurrencyModule, CustomDateAdapter, DATE_FORMAT, DATE_FORMAT_STRING, DATE_TIME_FORMAT, DATE_TIME_FORMAT_STRING, DEFAULT_LANGUAGE_CODE, DashboardCardTypes, DashboardMultiData, DashboardResourceService, DashboardSingleData, DataField, DataFieldsModule, DataFocusPolicy, DataFocusPolicyService, DataGroupAlignment, DatafieldMapKey, DateField, DateTimeField, DefaultSearchCategoriesModule, DelegateTaskService, DialogModule, DialogService, DynamicEnumerationField, DynamicNavigationRouteProviderService, EditableClausePredicate, EditableClausePredicateWithGenerators, EditableElementaryPredicate, EditablePredicate, EditablePredicateWithGenerator, ElementaryPredicate, EnumerationField, EnumerationFieldValidation, Equals, EqualsDate, ErrorSnackBarComponent, EventConstants, EventQueueService, EventService, FILTER_IDENTIFIERS, FILTER_VIEW_TASK_TRANSITION_ID, FieldAlignment, FieldConverterService, FieldTypeResource, FileField, FileListField, FileListFieldValidation, FilePreviewType, FileUploadMIMEType, FileUploadModel, Filter, FilterExtractionService, FilterField, FilterRepository, FilterType, FinishPolicy, FinishPolicyService, FinishTaskService, GenericSnackBarComponent, GroupGuardService, GroupNavigationComponentResolverService, GroupNavigationConstants, HeaderColumn, HeaderColumnType, HeaderMode, HeaderSearchService, HeaderType, HttpLoaderFactory, I18nField, I18nFieldValidation, InRange, InRangeDate, IncrementingCounter, IsNull, LanguageIconsService, LanguageService, LdapGroupListService, LdapGroupResourceService, LessThan, LessThanDate, LessThanDateTime, Like, LoadingEmitter, LoadingWithFilterEmitter, LocalStorageLogPublisher, LogEntry, LogLevel, LogPublisher, LogPublisherService, LoggerService, MaterialAppearance, MaterialModule, MergeOperator, MergedFilter, MockAuthenticationMethodService, MockAuthenticationService, MockEndpoint, MockSignUpService, MockUserPreferenceService, MockUserResourceService, MoreThan, MoreThanDate, MoreThanDateTime, MultichoiceField, NAE_ASYNC_RENDERING_CONFIGURATION, NAE_AUTOSWITCH_TAB_TOKEN, NAE_BASE_FILTER, NAE_DEFAULT_CASE_SEARCH_CATEGORIES, NAE_DEFAULT_HEADERS, NAE_DEFAULT_TASK_SEARCH_CATEGORIES, NAE_FILES_UPLOAD_COMPONENT, NAE_FILTERS_FILTER, NAE_FILTER_FIELD, NAE_FILTER_TEXT, NAE_GROUP_NAVIGATION_COMPONENT_RESOLVER_COMPONENT, NAE_INFORM_ABOUT_INVALID_DATA, NAE_LOAD_FILTER_COMPONENT, NAE_NAVIGATION_ITEM_TASK_DATA, NAE_NET_ALL_VERSIONS, NAE_NET_VERSION_VISIBLE, NAE_NEW_CASE_COMPONENT, NAE_NEW_CASE_CONFIGURATION, NAE_NEW_CASE_CREATION_CONFIGURATION_DATA, NAE_OPEN_EXISTING_TAB, NAE_OPTION_SELECTOR_COMPONENT, NAE_PREFERRED_TASK_ENDPOINT, NAE_ROUTING_CONFIGURATION_PATH, NAE_SAVE_FILTER_COMPONENT, NAE_SEARCH_CATEGORIES, NAE_SEARCH_COMPONENT_CONFIGURATION, NAE_SIDE_MENU_CONTROL, NAE_SNACKBAR_HORIZONTAL_POSITION, NAE_SNACKBAR_VERTICAL_POSITION, NAE_TAB_DATA, NAE_TASK_OPERATIONS, NAE_TASK_PANEL_DISABLE_BUTTON_FUNCTIONS, NAE_TASK_VIEW_CONFIGURATION, NAE_TREE_CASE_VIEW_CONFIGURATION, NAE_USER_ASSIGN_COMPONENT, NAE_VIEW_ID, NAE_VIEW_ID_SEGMENT, NAE_WORKFLOW_SERVICE_CONFIRM_DELETE, NAE_WORKFLOW_SERVICE_FILTER, Net, NetAttributeAutocompleteCategory, NextGroupService, NoConfigurationAutocompleteCategory, NoConfigurationCategory, NoConfigurationUserAutocompleteCategory, NotEquals, NotEqualsDate, NotEqualsDateTime, NullAuthenticationService, NullTaskOperations, NumberField, NumberFieldValidation, OpenedTab, Operator, OperatorResolverService, OperatorService, OperatorTemplatePart, OperatorTemplatePartType, Operators, OrganizationListService, OverflowService, PUBLISHERS, PageLoadRequestContext, PaginationParams, PaginationSort, PaperViewService, PermissionService, PermissionType, PetriNetResourceService, Predicate, PredicateWithGenerator, ProcessList, ProcessService, ProgressType, PromptDialogComponent, PromptDialogModule, PublicCaseResourceService, PublicPetriNetResourceService, PublicProcessService, PublicTaskLoadingService, PublicTaskResourceService, PublicUrlResolverService, Query, QueuedEvent, RedirectService, ResourceProvider, ResultWithAfterActions, RoleAssignmentLdapGroupService, RoleAssignmentService, RoleGuardService, RoutingBuilderService, SearchIndex, SearchIndexResolverService, SearchInputType, SearchMode, SearchService, SelectedCaseService, SessionService, SideMenuControl, SideMenuRef, SideMenuService, SideMenuSize, SignUpModule, SignUpService, SimpleFilter, SingleTaskContentService, SnackBarComponent, SnackBarHorizontalPosition, SnackBarModule, SnackBarService, SnackBarVerticalPosition, SpinnerOverlayService, Subgrid, SubjectTaskOperations, Substring, SuccessSnackBarComponent, TabLabelStream, TabView, TabbedVirtualScrollComponent, TaskAssignee, TaskConst, TaskContentService, TaskDataService, TaskElementType, TaskEndpoint, TaskEvent, TaskEventService, TaskHandlingService, TaskHeaderService, TaskMetaField, TaskNetAttributeAutocompleteCategory, TaskProcess, TaskRefField, TaskRequestStateService, TaskResourceService, TaskRole, TaskTask, TaskViewService, TemplateAppearance, TestCaseBaseFilterProvider, TestCaseViewAllowedNetsFactory, TestConfigurationService, TestMockDependenciesModule, TestNoAllowedNetsFactory, TestTaskBaseFilterProvider, TestTaskViewAllowedNetsFactory, TestViewService, TextAreaField, TextAreaHeight, TextField, TextFieldValidation, TranslateLibModule, TreeCaseViewService, TreePetriflowIdentifiers, TreeTaskContentService, UnlimitedTaskContentService, UriContentType, UriResourceService, UriService, User, UserAutocomplete, UserComparatorService, UserField, UserFilterConstants, UserFiltersService, UserInviteService, UserListField, UserListService, UserPreferenceService, UserResourceService, UserService, UserTransformer, UserValue, ViewIdService, ViewService, WarningSnackBarComponent, WorkflowHeaderService, WorkflowMetaField, WorkflowViewService, WrappedBoolean, arrayToObservable, authenticationServiceFactory, clearTimeInformation, configureCategory, createMockCase, createMockCaseOutcome, createMockDataGroup, createMockDependencies, createMockField, createMockGetDataOutcome, createMockImmediateData, createMockNet, createMockPage, createMockPetriNetOutcome, createMockSetDataOutcome, createMockTask, createMockTaskOutcome, createSortParam, createTaskEventNotification, defaultCaseSearchCategoriesFactory, defaultTaskSearchCategoriesFactory, destroySubscription, extractFilterFieldFromData, extractFilterFromData, extractFilterFromFilterField, extractIconAndTitle, extractRoles, getField, getFieldFromDataGroups, getFieldIndex, getFieldIndexFromDataGroups, getImmediateData, getNetAndCreateCase, groupNavigationViewIdSegmentFactory, hasContent, loadAllPages, mockUserAutocompleteValue, navigationItemTaskAllowedNetsServiceFactory, navigationItemTaskCategoryFactory, navigationItemTaskFilterFactory, ofVoid, processMessageResponse, publicBaseFilterFactory, publicFactoryResolver, refreshTree, tabbedAllowedNetsServiceFactory, tabbedTaskViewConfigurationFactory, toMoment };
32211
+ export { AbstractAddChildNodeComponent, AbstractAdvancedSearchComponent, AbstractAuthenticationOverlayComponent, AbstractBooleanFieldComponent, AbstractBreadcrumbsComponent, AbstractButtonFieldComponent, AbstractCaseListComponent, AbstractCaseListPaginatorComponent, AbstractCasePanelComponent, AbstractCaseViewComponent, AbstractCountCardComponent, AbstractCurrencyNumberFieldComponent, AbstractCustomCardComponent, AbstractDashboardContentComponent, AbstractDataFieldTemplateComponent, AbstractDateFieldComponent, AbstractDateTimeFieldComponent, AbstractDefaultNumberFieldComponent, AbstractEditModeComponent, AbstractEmailSubmissionFormComponent, AbstractEnumerationAutocompleteDynamicFieldComponent, AbstractEnumerationAutocompleteSelectFieldComponent, AbstractEnumerationFieldComponent, AbstractEnumerationIconFieldComponent, AbstractEnumerationListFieldComponent, AbstractEnumerationSelectFieldComponent, AbstractEnumerationStepperFieldComponent, AbstractFieldComponentResolverComponent, AbstractFileFieldComponent, AbstractFileListFieldComponent, AbstractFilterFieldComponent, AbstractFilterFieldContentComponent, AbstractFilterSelectorComponent, AbstractFilterSelectorListItemComponent, AbstractForgottenPasswordComponent, AbstractFulltextSearchComponent, AbstractGroupNavigationComponentResolverComponent, AbstractHeaderComponent, AbstractHeaderService, AbstractHtmlTextareaFieldComponent, AbstractI18nDividerFieldComponent, AbstractI18nErrorsComponent, AbstractI18nFieldComponent, AbstractI18nTextFieldComponent, AbstractIframeCardComponent, AbstractImmediateFilterTextComponent, AbstractImmediateFilterTextContentComponent, AbstractImportNetComponent, AbstractInternalLinkComponent, AbstractLanguageSelectorComponent, AbstractLdapGroupRoleAssignmentComponent, AbstractLegalNoticeComponent, AbstractLoadFilterComponent, AbstractLoadingModeComponent, AbstractLoggerService, AbstractLoginFormComponent, AbstractLogoutShortcutComponent, AbstractMultichoiceAutocompleteFieldComponentComponent, AbstractMultichoiceFieldComponent, AbstractMultichoiceListFieldComponent, AbstractMultichoiceSelectFieldComponent, AbstractNavigationDoubleDrawerComponent, AbstractNavigationDrawerComponent, AbstractNavigationRailComponent, AbstractNavigationTreeComponent, AbstractNewCaseComponent, AbstractNumberErrorsComponent, AbstractNumberFieldComponent, AbstractOptionSelectorComponent, AbstractPanelComponent, AbstractPanelItemComponent, AbstractPasswordTextFieldComponent, AbstractProfileComponent, AbstractQuickPanelComponent, AbstractRegistrationComponent, AbstractRegistrationFormComponent, AbstractRemoveNodeComponent, AbstractResourceProvider, AbstractResourceService, AbstractRichTextareaFieldComponent, AbstractRoleAssignmentComponent, AbstractSaveFilterComponent, AbstractSearchClauseComponent, AbstractSearchComponent, AbstractSearchConfigurationInputComponent, AbstractSearchModeComponent, AbstractSearchOperandInputComponent, AbstractSearchPredicateComponent, AbstractSideMenuContainerComponent, AbstractSimpleTextFieldComponent, AbstractSingleTaskComponent, AbstractSingleTaskViewComponent, AbstractSortModeComponent, AbstractSortableViewComponent, AbstractTabCreationDetectorComponent, AbstractTabViewComponent, AbstractTabbedCaseViewComponent, AbstractTabbedTaskViewComponent, AbstractTaskContentComponent, AbstractTaskListComponent, AbstractTaskListPaginationComponent, AbstractTaskPanelComponent, AbstractTaskViewComponent, AbstractTextErrorsComponent, AbstractTextFieldComponent, AbstractTextareaFieldComponent, AbstractToolbarComponent, AbstractTreeComponent, AbstractTreeTaskContentComponent, AbstractUserAssignComponent, AbstractUserAssignItemComponent, AbstractUserAssignListComponent, AbstractUserCardComponent, AbstractUserFieldComponent, AbstractUserInviteComponent, AbstractUserListFieldComponent, AbstractViewWithHeadersComponent, AbstractWorkflowPanelComponent, AbstractWorkflowViewComponent, AccessService, ActiveGroupService, AdvancedSearchComponentInitializationService, AfterAction, AlertDialogComponent, AlertDialogModule, AllowedNetsService, AllowedNetsServiceFactory, AnonymousService, AssignPolicy, AssignPolicyService, AssignTaskService, AuthenticationGuardService, AuthenticationMethodService, AuthenticationModule, AuthenticationService, AuthorityGuardService, AutocompleteCategory, BOOLEAN_VALUE_LABEL_ENABLED, BaseAllowedNetsService, BasicAuthenticationService, BooleanField, BooleanFieldValidation, BooleanOperator, ButtonField, ButtonFieldValidation, CallChainService, CancelTaskService, CaseAuthor, CaseCreationDate, CaseCreationDateTime, CaseDataset, CaseHeaderService, CaseListFontColorService, CaseMetaField, CaseNetAttributeAutocompleteCategory, CaseProcess, CaseResourceService, CaseRole, CaseSearch, CaseSimpleDataset, CaseStringId, CaseTask, CaseTitle, CaseTreeNode, CaseTreeService, CaseViewService, CaseVisualId, Categories, Category, CategoryFactory, CategoryResolverService, ChangedFieldsService, ClausePredicate, ConfigParams, ConfigurationInput, ConfigurationService, ConfirmDialogComponent, ConfirmDialogModule, ConsoleLogPublisher, CovalentModule, CurrencyModule, CustomDateAdapter, DATE_FORMAT, DATE_FORMAT_STRING, DATE_TIME_FORMAT, DATE_TIME_FORMAT_STRING, DEFAULT_LANGUAGE_CODE, DashboardCardTypes, DashboardMultiData, DashboardResourceService, DashboardSingleData, DataField, DataFieldsModule, DataFocusPolicy, DataFocusPolicyService, DataGroupAlignment, DatafieldMapKey, DateField, DateTimeField, DefaultSearchCategoriesModule, DelegateTaskService, DialogModule, DialogService, DynamicEnumerationField, DynamicNavigationRouteProviderService, EditableClausePredicate, EditableClausePredicateWithGenerators, EditableElementaryPredicate, EditablePredicate, EditablePredicateWithGenerator, ElementaryPredicate, EnumerationAutocompleteFilterProperty, EnumerationField, EnumerationFieldValidation, Equals, EqualsDate, ErrorSnackBarComponent, EventConstants, EventQueueService, EventService, FILTER_IDENTIFIERS, FILTER_VIEW_TASK_TRANSITION_ID, FieldAlignment, FieldConverterService, FieldTypeResource, FileField, FileListField, FileListFieldValidation, FilePreviewType, FileUploadMIMEType, FileUploadModel, Filter, FilterExtractionService, FilterField, FilterRepository, FilterType, FinishPolicy, FinishPolicyService, FinishTaskService, GenericSnackBarComponent, GroupGuardService, GroupNavigationComponentResolverService, GroupNavigationConstants, HeaderColumn, HeaderColumnType, HeaderMode, HeaderSearchService, HeaderType, HttpLoaderFactory, I18nField, I18nFieldValidation, InRange, InRangeDate, IncrementingCounter, IsNull, LanguageIconsService, LanguageService, LdapGroupListService, LdapGroupResourceService, LessThan, LessThanDate, LessThanDateTime, Like, LoadingEmitter, LoadingWithFilterEmitter, LocalStorageLogPublisher, LogEntry, LogLevel, LogPublisher, LogPublisherService, LoggerService, MaterialAppearance, MaterialModule, MergeOperator, MergedFilter, MockAuthenticationMethodService, MockAuthenticationService, MockEndpoint, MockSignUpService, MockUserPreferenceService, MockUserResourceService, MoreThan, MoreThanDate, MoreThanDateTime, MultichoiceAutocompleteFilterProperty, MultichoiceField, NAE_ASYNC_RENDERING_CONFIGURATION, NAE_AUTOSWITCH_TAB_TOKEN, NAE_BASE_FILTER, NAE_DEFAULT_CASE_SEARCH_CATEGORIES, NAE_DEFAULT_HEADERS, NAE_DEFAULT_TASK_SEARCH_CATEGORIES, NAE_FILES_UPLOAD_COMPONENT, NAE_FILTERS_FILTER, NAE_FILTER_FIELD, NAE_FILTER_TEXT, NAE_GROUP_NAVIGATION_COMPONENT_RESOLVER_COMPONENT, NAE_INFORM_ABOUT_INVALID_DATA, NAE_LOAD_FILTER_COMPONENT, NAE_NAVIGATION_ITEM_TASK_DATA, NAE_NET_ALL_VERSIONS, NAE_NET_VERSION_VISIBLE, NAE_NEW_CASE_COMPONENT, NAE_NEW_CASE_CONFIGURATION, NAE_NEW_CASE_CREATION_CONFIGURATION_DATA, NAE_OPEN_EXISTING_TAB, NAE_OPTION_SELECTOR_COMPONENT, NAE_PREFERRED_TASK_ENDPOINT, NAE_ROUTING_CONFIGURATION_PATH, NAE_SAVE_FILTER_COMPONENT, NAE_SEARCH_CATEGORIES, NAE_SEARCH_COMPONENT_CONFIGURATION, NAE_SIDE_MENU_CONTROL, NAE_SNACKBAR_HORIZONTAL_POSITION, NAE_SNACKBAR_VERTICAL_POSITION, NAE_TAB_DATA, NAE_TASK_OPERATIONS, NAE_TASK_PANEL_DISABLE_BUTTON_FUNCTIONS, NAE_TASK_VIEW_CONFIGURATION, NAE_TREE_CASE_VIEW_CONFIGURATION, NAE_USER_ASSIGN_COMPONENT, NAE_VIEW_ID, NAE_VIEW_ID_SEGMENT, NAE_WORKFLOW_SERVICE_CONFIRM_DELETE, NAE_WORKFLOW_SERVICE_FILTER, Net, NetAttributeAutocompleteCategory, NextGroupService, NoConfigurationAutocompleteCategory, NoConfigurationCategory, NoConfigurationUserAutocompleteCategory, NotEquals, NotEqualsDate, NotEqualsDateTime, NullAuthenticationService, NullTaskOperations, NumberField, NumberFieldValidation, OpenedTab, Operator, OperatorResolverService, OperatorService, OperatorTemplatePart, OperatorTemplatePartType, Operators, OrganizationListService, OverflowService, PUBLISHERS, PageLoadRequestContext, PaginationParams, PaginationSort, PaperViewService, PermissionService, PermissionType, PetriNetResourceService, Predicate, PredicateWithGenerator, ProcessList, ProcessService, ProgressType, PromptDialogComponent, PromptDialogModule, PublicCaseResourceService, PublicPetriNetResourceService, PublicProcessService, PublicTaskLoadingService, PublicTaskResourceService, PublicUrlResolverService, Query, QueuedEvent, RedirectService, ResourceProvider, ResultWithAfterActions, RoleAssignmentLdapGroupService, RoleAssignmentService, RoleGuardService, RoutingBuilderService, SearchIndex, SearchIndexResolverService, SearchInputType, SearchMode, SearchService, SelectedCaseService, SessionService, SideMenuControl, SideMenuRef, SideMenuService, SideMenuSize, SignUpModule, SignUpService, SimpleFilter, SingleTaskContentService, SnackBarComponent, SnackBarHorizontalPosition, SnackBarModule, SnackBarService, SnackBarVerticalPosition, SpinnerOverlayService, Subgrid, SubjectTaskOperations, Substring, SuccessSnackBarComponent, TabLabelStream, TabView, TabbedVirtualScrollComponent, TaskAssignee, TaskConst, TaskContentService, TaskDataService, TaskElementType, TaskEndpoint, TaskEvent, TaskEventService, TaskHandlingService, TaskHeaderService, TaskMetaField, TaskNetAttributeAutocompleteCategory, TaskProcess, TaskRefField, TaskRequestStateService, TaskResourceService, TaskRole, TaskTask, TaskViewService, TemplateAppearance, TestCaseBaseFilterProvider, TestCaseViewAllowedNetsFactory, TestConfigurationService, TestMockDependenciesModule, TestNoAllowedNetsFactory, TestTaskBaseFilterProvider, TestTaskViewAllowedNetsFactory, TestViewService, TextAreaField, TextAreaHeight, TextField, TextFieldValidation, TranslateLibModule, TreeCaseViewService, TreePetriflowIdentifiers, TreeTaskContentService, UnlimitedTaskContentService, UriContentType, UriResourceService, UriService, User, UserAutocomplete, UserComparatorService, UserField, UserFilterConstants, UserFiltersService, UserInviteService, UserListField, UserListService, UserPreferenceService, UserResourceService, UserService, UserTransformer, UserValue, ViewIdService, ViewService, WarningSnackBarComponent, WorkflowHeaderService, WorkflowMetaField, WorkflowViewService, WrappedBoolean, arrayToObservable, authenticationServiceFactory, clearTimeInformation, configureCategory, createMockCase, createMockCaseOutcome, createMockDataGroup, createMockDependencies, createMockField, createMockGetDataOutcome, createMockImmediateData, createMockNet, createMockPage, createMockPetriNetOutcome, createMockSetDataOutcome, createMockTask, createMockTaskOutcome, createSortParam, createTaskEventNotification, defaultCaseSearchCategoriesFactory, defaultTaskSearchCategoriesFactory, destroySubscription, extractFilterFieldFromData, extractFilterFromData, extractFilterFromFilterField, extractIconAndTitle, extractRoles, getField, getFieldFromDataGroups, getFieldIndex, getFieldIndexFromDataGroups, getImmediateData, getNetAndCreateCase, groupNavigationViewIdSegmentFactory, hasContent, loadAllPages, mockUserAutocompleteValue, navigationItemTaskAllowedNetsServiceFactory, navigationItemTaskCategoryFactory, navigationItemTaskFilterFactory, ofVoid, processMessageResponse, publicBaseFilterFactory, publicFactoryResolver, refreshTree, tabbedAllowedNetsServiceFactory, tabbedTaskViewConfigurationFactory, toMoment };
32100
32212
  //# sourceMappingURL=netgrif-components-core.mjs.map