@hmcts/rpx-xui-common-lib 1.6.1-adding-location-filter-bugfix → 1.6.1-all-work-filter

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 (45) hide show
  1. package/bundles/hmcts-rpx-xui-common-lib.umd.js +607 -426
  2. package/bundles/hmcts-rpx-xui-common-lib.umd.js.map +1 -1
  3. package/bundles/hmcts-rpx-xui-common-lib.umd.min.js +1 -1
  4. package/bundles/hmcts-rpx-xui-common-lib.umd.min.js.map +1 -1
  5. package/esm2015/lib/components/find-location/find-location.component.js +98 -44
  6. package/esm2015/lib/components/find-person/find-person.component.js +59 -24
  7. package/esm2015/lib/components/generic-filter/generic-filter-utils.js +2 -2
  8. package/esm2015/lib/components/generic-filter/generic-filter.component.js +49 -42
  9. package/esm2015/lib/components/search-location/search-location.component.js +53 -67
  10. package/esm2015/lib/exui-common-lib.module.js +4 -3
  11. package/esm2015/lib/gov-ui/models/isession-storage.interface.js +24 -0
  12. package/esm2015/lib/gov-ui/util/session-storage/session-storage-utils.js +58 -0
  13. package/esm2015/lib/models/filter.model.js +9 -1
  14. package/esm2015/lib/models/person.model.js +11 -1
  15. package/esm2015/lib/models/search-options.model.js +4 -2
  16. package/esm2015/lib/services/find-person/find-person.service.js +77 -24
  17. package/esm5/lib/components/find-location/find-location.component.js +122 -64
  18. package/esm5/lib/components/find-person/find-person.component.js +59 -25
  19. package/esm5/lib/components/generic-filter/generic-filter-utils.js +2 -2
  20. package/esm5/lib/components/generic-filter/generic-filter.component.js +98 -71
  21. package/esm5/lib/components/search-location/search-location.component.js +59 -75
  22. package/esm5/lib/exui-common-lib.module.js +4 -3
  23. package/esm5/lib/gov-ui/models/isession-storage.interface.js +24 -0
  24. package/esm5/lib/gov-ui/util/session-storage/session-storage-utils.js +58 -0
  25. package/esm5/lib/models/filter.model.js +9 -1
  26. package/esm5/lib/models/person.model.js +11 -1
  27. package/esm5/lib/models/search-options.model.js +4 -2
  28. package/esm5/lib/services/find-person/find-person.service.js +83 -24
  29. package/fesm2015/hmcts-rpx-xui-common-lib.js +425 -268
  30. package/fesm2015/hmcts-rpx-xui-common-lib.js.map +1 -1
  31. package/fesm5/hmcts-rpx-xui-common-lib.js +532 -348
  32. package/fesm5/hmcts-rpx-xui-common-lib.js.map +1 -1
  33. package/hmcts-rpx-xui-common-lib.metadata.json +1 -1
  34. package/lib/components/find-location/find-location.component.d.ts +11 -6
  35. package/lib/components/find-person/find-person.component.d.ts +10 -8
  36. package/lib/components/generic-filter/generic-filter-utils.d.ts +2 -2
  37. package/lib/components/generic-filter/generic-filter.component.d.ts +2 -3
  38. package/lib/components/search-location/search-location.component.d.ts +9 -9
  39. package/lib/gov-ui/models/isession-storage.interface.d.ts +4 -0
  40. package/lib/gov-ui/util/session-storage/session-storage-utils.d.ts +6 -0
  41. package/lib/models/filter.model.d.ts +4 -0
  42. package/lib/models/person.model.d.ts +4 -0
  43. package/lib/models/search-options.model.d.ts +2 -1
  44. package/lib/services/find-person/find-person.service.d.ts +2 -2
  45. package/package.json +1 -1
@@ -3,15 +3,16 @@
3
3
  * Generated from: lib/components/find-person/find-person.component.ts
4
4
  * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5
5
  */
6
- import { Component, EventEmitter, Input, Output } from '@angular/core';
6
+ import { ChangeDetectorRef, Component, EventEmitter, Input, Output } from '@angular/core';
7
7
  import { FormControl, FormGroup } from '@angular/forms';
8
8
  import { of, zip } from 'rxjs';
9
- import { map, startWith, switchMap } from 'rxjs/operators';
9
+ import { catchError, filter, map, startWith, switchMap, tap } from 'rxjs/operators';
10
10
  import { PersonRole } from '../../models';
11
11
  import { FindAPersonService } from '../../services/find-person/find-person.service';
12
12
  var FindPersonComponent = /** @class */ (function () {
13
- function FindPersonComponent(findPersonService) {
13
+ function FindPersonComponent(findPersonService, cd) {
14
14
  this.findPersonService = findPersonService;
15
+ this.cd = cd;
15
16
  this.personSelected = new EventEmitter();
16
17
  this.boldTitle = 'Find the person';
17
18
  this.subTitle = 'Type the name of the person and select them.';
@@ -20,16 +21,18 @@ var FindPersonComponent = /** @class */ (function () {
20
21
  this.disabled = null;
21
22
  this.userIncluded = false;
22
23
  this.placeholderContent = '';
23
- this.isNoResultsShown = false;
24
+ this.isNoResultsShown = true;
24
25
  this.showUpdatedColor = false;
25
26
  this.selectedPersons = [];
26
27
  this.errorMessage = 'You must select a name';
27
28
  this.idValue = '';
29
+ this.services = ['IA'];
28
30
  this.isPersonSelectionCompleted = false;
29
31
  this.showAutocomplete = false;
30
32
  this.currentInputValue = '';
31
- this.choosenPerson = (/** @type {?} */ ({}));
32
- this.findPersonControl = new FormControl();
33
+ this.chosenPerson = null;
34
+ this.findPersonControl = new FormControl('');
35
+ this.filteredOptions = [];
33
36
  this.minSearchCharacters = 2;
34
37
  }
35
38
  /**
@@ -46,13 +49,34 @@ var FindPersonComponent = /** @class */ (function () {
46
49
  else {
47
50
  this.findPersonGroup.addControl('findPersonControl', this.findPersonControl);
48
51
  }
49
- this.filteredOptions = this.findPersonControl.valueChanges.pipe(startWith(''), switchMap((/**
52
+ this.findPersonControl.valueChanges.pipe(startWith(''), tap((/**
53
+ * @return {?}
54
+ */
55
+ function () { return _this.showAutocomplete = false; })), tap((/**
56
+ * @return {?}
57
+ */
58
+ function () { return _this.filteredOptions = []; })), filter((/**
50
59
  * @param {?} searchTerm
51
60
  * @return {?}
52
61
  */
53
- function (searchTerm) {
54
- return _this.filter(searchTerm || '');
55
- })));
62
+ function (searchTerm) { return searchTerm && searchTerm.length > _this.minSearchCharacters; })), switchMap((/**
63
+ * @param {?} searchTerm
64
+ * @return {?}
65
+ */
66
+ function (searchTerm) { return _this.filter(searchTerm).pipe(tap((/**
67
+ * @return {?}
68
+ */
69
+ function () { return _this.showAutocomplete = true; })), catchError((/**
70
+ * @return {?}
71
+ */
72
+ function () { return _this.filteredOptions = []; }))); }))).subscribe((/**
73
+ * @param {?} people
74
+ * @return {?}
75
+ */
76
+ function (people) {
77
+ _this.filteredOptions = people;
78
+ _this.cd.detectChanges();
79
+ }));
56
80
  this.findPersonControl.setValue(this.selectedPerson);
57
81
  };
58
82
  /**
@@ -84,9 +108,9 @@ var FindPersonComponent = /** @class */ (function () {
84
108
  function (searchTerm) {
85
109
  var _this = this;
86
110
  /** @type {?} */
87
- var findJudicialPeople = this.findPersonService.find({ searchTerm: searchTerm, jurisdiction: this.domain });
111
+ var findJudicialPeople = this.findPersonService.find({ searchTerm: searchTerm, userRole: this.domain, services: this.services });
88
112
  /** @type {?} */
89
- var findCaseworkersOrAdmins = this.findPersonService.findCaseworkers({ searchTerm: searchTerm, jurisdiction: this.domain });
113
+ var findCaseworkersOrAdmins = this.findPersonService.findCaseworkers({ searchTerm: searchTerm, userRole: this.domain, services: this.services });
90
114
  if (searchTerm && searchTerm.length > this.minSearchCharacters) {
91
115
  switch (this.domain) {
92
116
  case PersonRole.JUDICIAL: {
@@ -126,24 +150,25 @@ var FindPersonComponent = /** @class */ (function () {
126
150
  return findCaseworkersOrAdmins;
127
151
  }
128
152
  default: {
129
- return of();
153
+ return of([]);
130
154
  }
131
155
  }
132
156
  }
133
- return of();
157
+ return of([]);
134
158
  };
135
159
  /**
136
- * @param {?=} selectedPerson
160
+ * @param {?} selectedPerson
137
161
  * @return {?}
138
162
  */
139
163
  FindPersonComponent.prototype.onSelectionChange = /**
140
- * @param {?=} selectedPerson
164
+ * @param {?} selectedPerson
141
165
  * @return {?}
142
166
  */
143
167
  function (selectedPerson) {
144
168
  this.isPersonSelectionCompleted = true;
145
- this.choosenPerson = selectedPerson;
169
+ this.chosenPerson = selectedPerson;
146
170
  this.personSelected.emit(selectedPerson);
171
+ this.findPersonControl.setValue('');
147
172
  };
148
173
  /**
149
174
  * @param {?} currentValue
@@ -156,7 +181,7 @@ var FindPersonComponent = /** @class */ (function () {
156
181
  function (currentValue) {
157
182
  this.currentInputValue = currentValue;
158
183
  this.showAutocomplete = !!currentValue && (currentValue.length > this.minSearchCharacters);
159
- this.isPersonSelectionCompleted = (this.getDisplayName(this.choosenPerson) === currentValue) ? true : false;
184
+ this.isPersonSelectionCompleted = this.getDisplayName(this.chosenPerson) === currentValue;
160
185
  };
161
186
  /**
162
187
  * @param {?} selectedPerson
@@ -167,6 +192,9 @@ var FindPersonComponent = /** @class */ (function () {
167
192
  * @return {?}
168
193
  */
169
194
  function (selectedPerson) {
195
+ if (!selectedPerson) {
196
+ return '';
197
+ }
170
198
  if (selectedPerson.domain === PersonRole.JUDICIAL && selectedPerson.knownAs) {
171
199
  return selectedPerson.knownAs + "(" + selectedPerson.email + ")";
172
200
  }
@@ -175,13 +203,14 @@ var FindPersonComponent = /** @class */ (function () {
175
203
  FindPersonComponent.decorators = [
176
204
  { type: Component, args: [{
177
205
  selector: 'xuilib-find-person',
178
- template: "<h1 class=\"govuk-heading-l\" *ngIf=\"title && title.length\">\n <span class=\"govuk-caption-l\">{{title}}</span>\n {{boldTitle}}\n</h1>\n<div class=\"govuk-form-group\" [formGroup]=\"findPersonGroup\"\n [ngClass]=\"{'form-group-error': !findPersonGroup.valid && submitted}\">\n <fieldset class=\"govuk-fieldset\" aria-describedby=\"sub-title-hint\">\n <div id=\"sub-title-hint\" class=\"govuk-hint\" *ngIf=\"subTitle && subTitle.length\">\n {{subTitle}}\n </div>\n <span id=\"validation-error\" class=\"govuk-error-message\" *ngIf=\"findPersonGroup && findPersonGroup.errors\">\n <span class=\"govuk-visually-hidden\">Error:</span>{{findPersonGroup.errors.error ? findPersonGroup.errors.error : errorMessage}}\n </span>\n <input id=\"inputSelectPerson{{idValue}}\" type=\"text\" aria-label=\"select a person\" matInput\n formControlName=\"findPersonControl\"\n [matAutocomplete]=\"auto\"\n class=\"govuk-input govuk-!-width-one-third\"\n (ngModelChange)=\"updatedVal($event)\"\n [placeholder]=\"placeholderContent\"\n [attr.disabled]=\"disabled\"\n [value]=\"selectedPerson\">\n <mat-autocomplete autoActiveFirstOption #auto=\"matAutocomplete\">\n <mat-option *ngFor=\"let option of filteredOptions | async\"\n [value]=\"getDisplayName(option)\"\n (onSelectionChange)=\"onSelectionChange(option)\"\n [ngClass]=\"{'hide-autocomplete': !showAutocomplete, 'select-option': showUpdatedColor}\">\n {{getDisplayName(option)}}\n </mat-option>\n <mat-option [ngClass]=\"{'select-option': showUpdatedColor}\" *ngIf=\"isNoResultsShown && currentInputValue && currentInputValue.length && !(filteredOptions | async)?.length && showAutocomplete\">{{ 'No results found' }}</mat-option>\n </mat-autocomplete>\n </fieldset>\n</div>\n",
206
+ template: "<h1 class=\"govuk-heading-l\" *ngIf=\"title && title.length\">\n <span class=\"govuk-caption-l\">{{title}}</span>\n {{boldTitle}}\n</h1>\n<div class=\"govuk-form-group\" [formGroup]=\"findPersonGroup\"\n [ngClass]=\"{'form-group-error': findPersonGroup.get('findPersonControl').invalid && submitted}\">\n <fieldset class=\"govuk-fieldset\" aria-describedby=\"sub-title-hint\">\n <div id=\"sub-title-hint\" class=\"govuk-hint\" *ngIf=\"subTitle && subTitle.length\">\n {{subTitle}}\n </div>\n <span id=\"validation-error\" class=\"govuk-error-message\" *ngIf=\"findPersonGroup && findPersonGroup.errors\">\n <span class=\"govuk-visually-hidden\">Error:</span>{{findPersonGroup.errors.error ? findPersonGroup.errors.error : errorMessage}}\n </span>\n <input id=\"inputSelectPerson{{idValue}}\" type=\"text\" aria-label=\"select a person\" matInput\n formControlName=\"findPersonControl\"\n [matAutocomplete]=\"auto\"\n class=\"govuk-input govuk-!-width-one-third\"\n (ngModelChange)=\"updatedVal($event)\"\n [placeholder]=\"placeholderContent\"\n [attr.disabled]=\"disabled\"\n [value]=\"selectedPerson\">\n <mat-autocomplete autoActiveFirstOption #auto=\"matAutocomplete\">\n <mat-option *ngFor=\"let option of filteredOptions\"\n [value]=\"getDisplayName(option)\"\n (onSelectionChange)=\"onSelectionChange(option)\"\n [ngClass]=\"{'hide-autocomplete': !showAutocomplete, 'select-option': showUpdatedColor}\">\n {{getDisplayName(option)}}\n </mat-option>\n <mat-option [ngClass]=\"{'select-option': showUpdatedColor}\" *ngIf=\"isNoResultsShown && currentInputValue && currentInputValue.length > minSearchCharacters && !filteredOptions.length && showAutocomplete\">No results found</mat-option>\n </mat-autocomplete>\n </fieldset>\n</div>\n",
179
207
  styles: [".mat-option:hover{background:#2596be}.mat-option.select-option:hover{background:#1d70b8;color:#fff}.hide-autocomplete{display:none}"]
180
208
  }] }
181
209
  ];
182
210
  /** @nocollapse */
183
211
  FindPersonComponent.ctorParameters = function () { return [
184
- { type: FindAPersonService }
212
+ { type: FindAPersonService },
213
+ { type: ChangeDetectorRef }
185
214
  ]; };
186
215
  FindPersonComponent.propDecorators = {
187
216
  personSelected: [{ type: Output }],
@@ -199,7 +228,8 @@ var FindPersonComponent = /** @class */ (function () {
199
228
  showUpdatedColor: [{ type: Input }],
200
229
  selectedPersons: [{ type: Input }],
201
230
  errorMessage: [{ type: Input }],
202
- idValue: [{ type: Input }]
231
+ idValue: [{ type: Input }],
232
+ services: [{ type: Input }]
203
233
  };
204
234
  return FindPersonComponent;
205
235
  }());
@@ -238,26 +268,30 @@ if (false) {
238
268
  /** @type {?} */
239
269
  FindPersonComponent.prototype.idValue;
240
270
  /** @type {?} */
271
+ FindPersonComponent.prototype.services;
272
+ /** @type {?} */
241
273
  FindPersonComponent.prototype.isPersonSelectionCompleted;
242
274
  /** @type {?} */
243
275
  FindPersonComponent.prototype.showAutocomplete;
244
276
  /** @type {?} */
245
277
  FindPersonComponent.prototype.currentInputValue;
246
278
  /** @type {?} */
247
- FindPersonComponent.prototype.choosenPerson;
279
+ FindPersonComponent.prototype.chosenPerson;
248
280
  /** @type {?} */
249
281
  FindPersonComponent.prototype.findPersonControl;
250
282
  /** @type {?} */
251
283
  FindPersonComponent.prototype.filteredOptions;
284
+ /** @type {?} */
285
+ FindPersonComponent.prototype.minSearchCharacters;
252
286
  /**
253
287
  * @type {?}
254
288
  * @private
255
289
  */
256
- FindPersonComponent.prototype.minSearchCharacters;
290
+ FindPersonComponent.prototype.findPersonService;
257
291
  /**
258
292
  * @type {?}
259
293
  * @private
260
294
  */
261
- FindPersonComponent.prototype.findPersonService;
295
+ FindPersonComponent.prototype.cd;
262
296
  }
263
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZC1wZXJzb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGhtY3RzL3JweC14dWktY29tbW9uLWxpYi8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL2ZpbmQtcGVyc29uL2ZpbmQtcGVyc29uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUN6RyxPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hELE9BQU8sRUFBYyxFQUFFLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNELE9BQU8sRUFBVSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDbEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFFcEY7SUE0QkUsNkJBQTZCLGlCQUFxQztRQUFyQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW9CO1FBckJqRCxtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFFN0MsY0FBUyxHQUFHLGlCQUFpQixDQUFDO1FBQzlCLGFBQVEsR0FBRyw4Q0FBOEMsQ0FBQztRQUMxRCxXQUFNLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQztRQUd4QixjQUFTLEdBQWEsSUFBSSxDQUFDO1FBQzNCLGFBQVEsR0FBYSxJQUFJLENBQUM7UUFDMUIsaUJBQVksR0FBYSxLQUFLLENBQUM7UUFDL0IsdUJBQWtCLEdBQVcsRUFBRSxDQUFDO1FBQ2hDLHFCQUFnQixHQUFZLEtBQUssQ0FBQztRQUNsQyxxQkFBZ0IsR0FBWSxLQUFLLENBQUM7UUFDbEMsb0JBQWUsR0FBYSxFQUFFLENBQUM7UUFDL0IsaUJB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Qzs7SUFDdEMsNENBQTRDOztJQUs1QyxnREFBNkM7O0lBQzdDLDhDQUE2Qzs7Ozs7SUFDN0Msa0RBQXlDOzs7OztJQUw3QixnREFBc0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiwgemlwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAsIHN0YXJ0V2l0aCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgUGVyc29uLCBQZXJzb25Sb2xlIH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IEZpbmRBUGVyc29uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2ZpbmQtcGVyc29uL2ZpbmQtcGVyc29uLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd4dWlsaWItZmluZC1wZXJzb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vZmluZC1wZXJzb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9maW5kLXBlcnNvbi5jb21wb25lbnQuc2NzcyddLFxufSlcblxuZXhwb3J0IGNsYXNzIEZpbmRQZXJzb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIEBPdXRwdXQoKSBwdWJsaWMgcGVyc29uU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFBlcnNvbj4oKTtcbiAgQElucHV0KCkgcHVibGljIHRpdGxlOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHB1YmxpYyBib2xkVGl0bGUgPSAnRmluZCB0aGUgcGVyc29uJztcbiAgQElucHV0KCkgcHVibGljIHN1YlRpdGxlID0gJ1R5cGUgdGhlIG5hbWUgb2YgdGhlIHBlcnNvbiBhbmQgc2VsZWN0IHRoZW0uJztcbiAgQElucHV0KCkgcHVibGljIGRvbWFpbiA9IFBlcnNvblJvbGUuQUxMO1xuICBASW5wdXQoKSBwdWJsaWMgZmluZFBlcnNvbkdyb3VwOiBGb3JtR3JvdXA7XG4gIEBJbnB1dCgpIHB1YmxpYyBzZWxlY3RlZFBlcnNvbjogc3RyaW5nO1xuICBASW5wdXQoKSBwdWJsaWMgc3VibWl0dGVkPzogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpIHB1YmxpYyBkaXNhYmxlZD86IGJvb2xlYW4gPSBudWxsO1xuICBASW5wdXQoKSBwdWJsaWMgdXNlckluY2x1ZGVkPzogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBwdWJsaWMgcGxhY2Vob2xkZXJDb250ZW50OiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgcHVibGljIGlzTm9SZXN1bHRzU2hvd246IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgcHVibGljIHNob3dVcGRhdGVkQ29sb3I6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgcHVibGljIHNlbGVjdGVkUGVyc29uczogUGVyc29uW10gPSBbXTtcbiAgQElucHV0KCkgcHVibGljIGVycm9yTWVzc2FnZTogc3RyaW5nID0gJ1lvdSBtdXN0IHNlbGVjdCBhIG5hbWUnO1xuICBASW5wdXQoKSBwdWJsaWMgaWRWYWx1ZTogc3RyaW5nID0gJyc7XG4gIHB1YmxpYyBpc1BlcnNvblNlbGVjdGlvbkNvbXBsZXRlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgc2hvd0F1dG9jb21wbGV0ZTogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgY3VycmVudElucHV0VmFsdWU6IHN0cmluZyA9ICcnO1xuICBwdWJsaWMgY2hvb3NlblBlcnNvbjogUGVyc29uID0ge30gYXMgUGVyc29uO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgZmluZFBlcnNvblNlcnZpY2U6IEZpbmRBUGVyc29uU2VydmljZSkge1xuICB9XG5cbiAgcHVibGljIGZpbmRQZXJzb25Db250cm9sID0gbmV3IEZvcm1Db250cm9sKCk7XG4gIHB1YmxpYyBmaWx0ZXJlZE9wdGlvbnM6IE9ic2VydmFibGU8UGVyc29uW10+O1xuICBwcml2YXRlIHJlYWRvbmx5IG1pblNlYXJjaENoYXJhY3RlcnMgPSAyO1xuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZmluZFBlcnNvbkdyb3VwKSB7XG4gICAgICB0aGlzLmZpbmRQZXJzb25Hcm91cCA9IG5ldyBGb3JtR3JvdXAoe30pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmZpbmRQZXJzb25Hcm91cC5hZGRDb250cm9sKCdmaW5kUGVyc29uQ29udHJvbCcsIHRoaXMuZmluZFBlcnNvbkNvbnRyb2wpO1xuICAgIH1cbiAgICB0aGlzLmZpbHRlcmVkT3B0aW9ucyA9IHRoaXMuZmluZFBlcnNvbkNvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgICBzdGFydFdpdGgoJycpLFxuICAgICAgc3dpdGNoTWFwKHNlYXJjaFRlcm0gPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5maWx0ZXIoc2VhcmNoVGVybSB8fCAnJyk7XG4gICAgICB9KVxuICAgICk7XG4gICAgdGhpcy5maW5kUGVyc29uQ29udHJvbC5zZXRWYWx1ZSh0aGlzLnNlbGVjdGVkUGVyc29uKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ2RvbWFpbiddICYmICFjaGFuZ2VzWydkb21haW4nXS5maXJzdENoYW5nZSkge1xuICAgICAgdGhpcy5maW5kUGVyc29uQ29udHJvbC5zZXRWYWx1ZShudWxsKTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRQZXJzb24gPSBudWxsO1xuICAgIH1cbiAgICBpZiAoY2hhbmdlc1snc2VsZWN0ZWRQZXJzb24nXSAmJiBjaGFuZ2VzWydzZWxlY3RlZFBlcnNvbiddLmN1cnJlbnRWYWx1ZSA9PT0gJycpIHtcbiAgICAgIHRoaXMuY3VycmVudElucHV0VmFsdWUgPSAnJztcbiAgICAgIHRoaXMuaXNQZXJzb25TZWxlY3Rpb25Db21wbGV0ZWQgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZmlsdGVyKHNlYXJjaFRlcm06IHN0cmluZyk6IE9ic2VydmFibGU8UGVyc29uW10+IHtcbiAgICBjb25zdCBmaW5kSnVkaWNpYWxQZW9wbGUgPSB0aGlzLmZpbmRQZXJzb25TZXJ2aWNlLmZpbmQoeyBzZWFyY2hUZXJtLCBqdXJpc2RpY3Rpb246IHRoaXMuZG9tYWluIH0pO1xuICAgIGNvbnN0IGZpbmRDYXNld29ya2Vyc09yQWRtaW5zID0gdGhpcy5maW5kUGVyc29uU2VydmljZS5maW5kQ2FzZXdvcmtlcnMoeyBzZWFyY2hUZXJtLCBqdXJpc2RpY3Rpb246IHRoaXMuZG9tYWluIH0pO1xuICAgIGlmIChzZWFyY2hUZXJtICYmIHNlYXJjaFRlcm0ubGVuZ3RoID4gdGhpcy5taW5TZWFyY2hDaGFyYWN0ZXJzKSB7XG4gICAgICBzd2l0Y2ggKHRoaXMuZG9tYWluKSB7XG4gICAgICAgIGNhc2UgUGVyc29uUm9sZS5KVURJQ0lBTDoge1xuICAgICAgICAgIHJldHVybiBmaW5kSnVkaWNpYWxQZW9wbGUucGlwZShtYXAocGVyc29ucyA9PiB7XG4gICAgICAgICAgICBjb25zdCBpZHM6IHN0cmluZ1tdID0gdGhpcy5zZWxlY3RlZFBlcnNvbnMubWFwKCh7IGlkIH0pID0+IGlkKTtcbiAgICAgICAgICAgIHJldHVybiBwZXJzb25zLmZpbHRlcigoeyBpZCB9KSA9PiAhaWRzLmluY2x1ZGVzKGlkKSk7XG4gICAgICAgICAgfSkpO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgUGVyc29uUm9sZS5BTEw6IHtcbiAgICAgICAgICByZXR1cm4gemlwKGZpbmRKdWRpY2lhbFBlb3BsZSwgZmluZENhc2V3b3JrZXJzT3JBZG1pbnMpLnBpcGUobWFwKHNlcGFyYXRlUGVvcGxlID0+IHNlcGFyYXRlUGVvcGxlWzBdLmNvbmNhdChzZXBhcmF0ZVBlb3BsZVsxXSkpKTtcbiAgICAgICAgfVxuICAgICAgICBjYXNlIFBlcnNvblJvbGUuQ0FTRVdPUktFUjpcbiAgICAgICAgY2FzZSBQZXJzb25Sb2xlLkFETUlOOiB7XG4gICAgICAgICAgcmV0dXJuIGZpbmRDYXNld29ya2Vyc09yQWRtaW5zO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICByZXR1cm4gb2YoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gb2YoKTtcbiAgfVxuXG4gIHB1YmxpYyBvblNlbGVjdGlvbkNoYW5nZShzZWxlY3RlZFBlcnNvbj86IFBlcnNvbikge1xuICAgIHRoaXMuaXNQZXJzb25TZWxlY3Rpb25Db21wbGV0ZWQgPSB0cnVlO1xuICAgIHRoaXMuY2hvb3NlblBlcnNvbiA9IHNlbGVjdGVkUGVyc29uO1xuICAgIHRoaXMucGVyc29uU2VsZWN0ZWQuZW1pdChzZWxlY3RlZFBlcnNvbik7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlZFZhbChjdXJyZW50VmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuY3VycmVudElucHV0VmFsdWUgPSBjdXJyZW50VmFsdWU7XG4gICAgdGhpcy5zaG93QXV0b2NvbXBsZXRlID0gISFjdXJyZW50VmFsdWUgJiYgKGN1cnJlbnRWYWx1ZS5sZW5ndGggPiB0aGlzLm1pblNlYXJjaENoYXJhY3RlcnMpO1xuICAgIHRoaXMuaXNQZXJzb25TZWxlY3Rpb25Db21wbGV0ZWQgPSAodGhpcy5nZXREaXNwbGF5TmFtZSh0aGlzLmNob29zZW5QZXJzb24pID09PSBjdXJyZW50VmFsdWUpID8gdHJ1ZSA6IGZhbHNlO1xuICB9XG5cbiAgcHVibGljIGdldERpc3BsYXlOYW1lKHNlbGVjdGVkUGVyc29uOiBQZXJzb24pOiBzdHJpbmcge1xuICAgIGlmIChzZWxlY3RlZFBlcnNvbi5kb21haW4gPT09IFBlcnNvblJvbGUuSlVESUNJQUwgJiYgc2VsZWN0ZWRQZXJzb24ua25vd25Bcykge1xuICAgICAgcmV0dXJuIGAke3NlbGVjdGVkUGVyc29uLmtub3duQXN9KCR7c2VsZWN0ZWRQZXJzb24uZW1haWx9KWA7XG4gICAgfVxuICAgIHJldHVybiBzZWxlY3RlZFBlcnNvbi5lbWFpbCA/IGAke3NlbGVjdGVkUGVyc29uLm5hbWV9KCR7c2VsZWN0ZWRQZXJzb24uZW1haWx9KWAgOiBzZWxlY3RlZFBlcnNvbi5uYW1lO1xuICB9XG59XG4iXX0=
297
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZC1wZXJzb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGhtY3RzL3JweC14dWktY29tbW9uLWxpYi8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL2ZpbmQtcGVyc29uL2ZpbmQtcGVyc29uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBQyxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFnQixNQUFNLGVBQWUsQ0FBQztBQUMxSCxPQUFPLEVBQUMsV0FBVyxFQUFFLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3RELE9BQU8sRUFBYSxFQUFFLEVBQUUsR0FBRyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ3pDLE9BQU8sRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2xGLE9BQU8sRUFBUyxVQUFVLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDaEQsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sZ0RBQWdELENBQUM7QUFFbEY7SUFnQ0UsNkJBQTZCLGlCQUFxQyxFQUFtQixFQUFxQjtRQUE3RSxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW9CO1FBQW1CLE9BQUUsR0FBRixFQUFFLENBQW1CO1FBekJ6RixtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFFN0MsY0FBUyxHQUFHLGlCQUFpQixDQUFDO1FBQzlCLGFBQVEsR0FBRyw4Q0FBOEMsQ0FBQztRQUMxRCxXQUFNLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQztRQUd4QixjQUFTLEdBQVksSUFBSSxDQUFDO1FBQzFCLGFBQVEsR0FBWSxJQUFJLENBQUM7UUFDekIsaUJBQVksR0FBYSxLQUFLLENBQUM7UUFDL0IsdUJBQWtCLEdBQVcsRUFBRSxDQUFDO1FBQ2hDLHFCQUFn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LCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXN9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtGb3JtQ29udHJvbCwgRm9ybUdyb3VwfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge09ic2VydmFibGUsIG9mLCB6aXB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtjYXRjaEVycm9yLCBmaWx0ZXIsIG1hcCwgc3RhcnRXaXRoLCBzd2l0Y2hNYXAsIHRhcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtQZXJzb24sIFBlcnNvblJvbGV9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQge0ZpbmRBUGVyc29uU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMvZmluZC1wZXJzb24vZmluZC1wZXJzb24uc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3h1aWxpYi1maW5kLXBlcnNvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9maW5kLXBlcnNvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ZpbmQtcGVyc29uLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuXG5leHBvcnQgY2xhc3MgRmluZFBlcnNvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgQE91dHB1dCgpIHB1YmxpYyBwZXJzb25TZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8UGVyc29uPigpO1xuICBASW5wdXQoKSBwdWJsaWMgdGl0bGU6IHN0cmluZztcbiAgQElucHV0KCkgcHVibGljIGJvbGRUaXRsZSA9ICdGaW5kIHRoZSBwZXJzb24nO1xuICBASW5wdXQoKSBwdWJsaWMgc3ViVGl0bGUgPSAnVHlwZSB0aGUgbmFtZSBvZiB0aGUgcGVyc29uIGFuZCBzZWxlY3QgdGhlbS4nO1xuICBASW5wdXQoKSBwdWJsaWMgZG9tYWluID0gUGVyc29uUm9sZS5BTEw7XG4gIEBJbnB1dCgpIHB1YmxpYyBmaW5kUGVyc29uR3JvdXA6IEZvcm1Hcm91cDtcbiAgQElucHV0KCkgcHVibGljIHNlbGVjdGVkUGVyc29uOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHB1YmxpYyBzdWJtaXR0ZWQ6IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKSBwdWJsaWMgZGlzYWJsZWQ6IGJvb2xlYW4gPSBudWxsO1xuICBASW5wdXQoKSBwdWJsaWMgdXNlckluY2x1ZGVkPzogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBwdWJsaWMgcGxhY2Vob2xkZXJDb250ZW50OiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgcHVibGljIGlzTm9SZXN1bHRzU2hvd246IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKSBwdWJsaWMgc2hvd1VwZGF0ZWRDb2xvcjogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBwdWJsaWMgc2VsZWN0ZWRQZXJzb25zOiBQZXJzb25bXSA9IFtdO1xuICBASW5wdXQoKSBwdWJsaWMgZXJyb3JNZXNzYWdlOiBzdHJpbmcgPSAnWW91IG11c3Qgc2VsZWN0IGEgbmFtZSc7XG4gIEBJbnB1dCgpIHB1YmxpYyBpZFZhbHVlOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgcHVibGljIHNlcnZpY2VzOiBzdHJpbmdbXSA9IFsnSUEnXTtcbiAgcHVibGljIGlzUGVyc29uU2VsZWN0aW9uQ29tcGxldGVkOiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyBzaG93QXV0b2NvbXBsZXRlOiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyBjdXJyZW50SW5wdXRWYWx1ZTogc3RyaW5nID0gJyc7XG4gIHB1YmxpYyBjaG9zZW5QZXJzb246IFBlcnNvbiA9IG51bGw7XG4gIHB1YmxpYyBmaW5kUGVyc29uQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgnJyk7XG4gIHB1YmxpYyBmaWx0ZXJlZE9wdGlvbnM6IFBlcnNvbltdID0gW107XG4gIHB1YmxpYyByZWFkb25seSBtaW5TZWFyY2hDaGFyYWN0ZXJzID0gMjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGZpbmRQZXJzb25TZXJ2aWNlOiBGaW5kQVBlcnNvblNlcnZpY2UsIHByaXZhdGUgcmVhZG9ubHkgY2Q6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmZpbmRQZXJzb25Hcm91cCkge1xuICAgICAgdGhpcy5maW5kUGVyc29uR3JvdXAgPSBuZXcgRm9ybUdyb3VwKHt9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5maW5kUGVyc29uR3JvdXAuYWRkQ29udHJvbCgnZmluZFBlcnNvbkNvbnRyb2wnLCB0aGlzLmZpbmRQZXJzb25Db250cm9sKTtcbiAgICB9XG4gICAgdGhpcy5maW5kUGVyc29uQ29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShcbiAgICAgIHN0YXJ0V2l0aCgnJyksXG4gICAgICB0YXAoKCkgPT4gdGhpcy5zaG93QXV0b2NvbXBsZXRlID0gZmFsc2UpLFxuICAgICAgdGFwKCgpID0+IHRoaXMuZmlsdGVyZWRPcHRpb25zID0gW10pLFxuICAgICAgZmlsdGVyKHNlYXJjaFRlcm0gPT4gc2VhcmNoVGVybSAmJiBzZWFyY2hUZXJtLmxlbmd0aCA+IHRoaXMubWluU2VhcmNoQ2hhcmFjdGVycyksXG4gICAgICBzd2l0Y2hNYXAoc2VhcmNoVGVybSA9PiB0aGlzLmZpbHRlcihzZWFyY2hUZXJtKS5waXBlKFxuICAgICAgICB0YXAoKCkgPT4gdGhpcy5zaG93QXV0b2NvbXBsZXRlID0gdHJ1ZSksXG4gICAgICAgIGNhdGNoRXJyb3IoKCkgPT4gdGhpcy5maWx0ZXJlZE9wdGlvbnMgPSBbXSksXG4gICAgICApKVxuICAgICkuc3Vic2NyaWJlKChwZW9wbGU6IFBlcnNvbltdKSA9PiB7XG4gICAgICB0aGlzLmZpbHRlcmVkT3B0aW9ucyA9IHBlb3BsZTtcbiAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH0pO1xuICAgIHRoaXMuZmluZFBlcnNvbkNvbnRyb2wuc2V0VmFsdWUodGhpcy5zZWxlY3RlZFBlcnNvbik7XG4gIH1cblxuICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzWydkb21haW4nXSAmJiAhY2hhbmdlc1snZG9tYWluJ10uZmlyc3RDaGFuZ2UpIHtcbiAgICAgIHRoaXMuZmluZFBlcnNvbkNvbnRyb2wuc2V0VmFsdWUobnVsbCk7XG4gICAgICB0aGlzLnNlbGVjdGVkUGVyc29uID0gbnVsbDtcbiAgICB9XG4gICAgaWYgKGNoYW5nZXNbJ3NlbGVjdGVkUGVyc29uJ10gJiYgY2hhbmdlc1snc2VsZWN0ZWRQZXJzb24nXS5jdXJyZW50VmFsdWUgPT09ICcnKSB7XG4gICAgICB0aGlzLmN1cnJlbnRJbnB1dFZhbHVlID0gJyc7XG4gICAgICB0aGlzLmlzUGVyc29uU2VsZWN0aW9uQ29tcGxldGVkID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGZpbHRlcihzZWFyY2hUZXJtOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFBlcnNvbltdPiB7XG4gICAgY29uc3QgZmluZEp1ZGljaWFsUGVvcGxlID0gdGhpcy5maW5kUGVyc29uU2VydmljZS5maW5kKHtzZWFyY2hUZXJtLCB1c2VyUm9sZTogdGhpcy5kb21haW4sIHNlcnZpY2VzOiB0aGlzLnNlcnZpY2VzfSk7XG4gICAgY29uc3QgZmluZENhc2V3b3JrZXJzT3JBZG1pbnMgPSB0aGlzLmZpbmRQZXJzb25TZXJ2aWNlLmZpbmRDYXNld29ya2Vycyh7c2VhcmNoVGVybSwgdXNlclJvbGU6IHRoaXMuZG9tYWluLCBzZXJ2aWNlczogdGhpcy5zZXJ2aWNlc30pO1xuICAgIGlmIChzZWFyY2hUZXJtICYmIHNlYXJjaFRlcm0ubGVuZ3RoID4gdGhpcy5taW5TZWFyY2hDaGFyYWN0ZXJzKSB7XG4gICAgICBzd2l0Y2ggKHRoaXMuZG9tYWluKSB7XG4gICAgICAgIGNhc2UgUGVyc29uUm9sZS5KVURJQ0lBTDoge1xuICAgICAgICAgIHJldHVybiBmaW5kSnVkaWNpYWxQZW9wbGUucGlwZShtYXAocGVyc29ucyA9PiB7XG4gICAgICAgICAgICBjb25zdCBpZHM6IHN0cmluZ1tdID0gdGhpcy5zZWxlY3RlZFBlcnNvbnMubWFwKCh7aWR9KSA9PiBpZCk7XG4gICAgICAgICAgICByZXR1cm4gcGVyc29ucy5maWx0ZXIoKHtpZH0pID0+ICFpZHMuaW5jbHVkZXMoaWQpKTtcbiAgICAgICAgICB9KSk7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBQZXJzb25Sb2xlLkFMTDoge1xuICAgICAgICAgIHJldHVybiB6aXAoZmluZEp1ZGljaWFsUGVvcGxlLCBmaW5kQ2FzZXdvcmtlcnNPckFkbWlucykucGlwZShtYXAoc2VwYXJhdGVQZW9wbGUgPT4gc2VwYXJhdGVQZW9wbGVbMF0uY29uY2F0KHNlcGFyYXRlUGVvcGxlWzFdKSkpO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgUGVyc29uUm9sZS5DQVNFV09SS0VSOlxuICAgICAgICBjYXNlIFBlcnNvblJvbGUuQURNSU46IHtcbiAgICAgICAgICByZXR1cm4gZmluZENhc2V3b3JrZXJzT3JBZG1pbnM7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgIHJldHVybiBvZihbXSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG9mKFtdKTtcbiAgfVxuXG4gIHB1YmxpYyBvblNlbGVjdGlvbkNoYW5nZShzZWxlY3RlZFBlcnNvbjogUGVyc29uKSB7XG4gICAgdGhpcy5pc1BlcnNvblNlbGVjdGlvbkNvbXBsZXRlZCA9IHRydWU7XG4gICAgdGhpcy5jaG9zZW5QZXJzb24gPSBzZWxlY3RlZFBlcnNvbjtcbiAgICB0aGlzLnBlcnNvblNlbGVjdGVkLmVtaXQoc2VsZWN0ZWRQZXJzb24pO1xuICAgIHRoaXMuZmluZFBlcnNvbkNvbnRyb2wuc2V0VmFsdWUoJycpO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZWRWYWwoY3VycmVudFZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLmN1cnJlbnRJbnB1dFZhbHVlID0gY3VycmVudFZhbHVlO1xuICAgIHRoaXMuc2hvd0F1dG9jb21wbGV0ZSA9ICEhY3VycmVudFZhbHVlICYmIChjdXJyZW50VmFsdWUubGVuZ3RoID4gdGhpcy5taW5TZWFyY2hDaGFyYWN0ZXJzKTtcbiAgICB0aGlzLmlzUGVyc29uU2VsZWN0aW9uQ29tcGxldGVkID0gdGhpcy5nZXREaXNwbGF5TmFtZSh0aGlzLmNob3NlblBlcnNvbikgPT09IGN1cnJlbnRWYWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXREaXNwbGF5TmFtZShzZWxlY3RlZFBlcnNvbjogUGVyc29uKTogc3RyaW5nIHtcbiAgICBpZiAoIXNlbGVjdGVkUGVyc29uKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIGlmIChzZWxlY3RlZFBlcnNvbi5kb21haW4gPT09IFBlcnNvblJvbGUuSlVESUNJQUwgJiYgc2VsZWN0ZWRQZXJzb24ua25vd25Bcykge1xuICAgICAgcmV0dXJuIGAke3NlbGVjdGVkUGVyc29uLmtub3duQXN9KCR7c2VsZWN0ZWRQZXJzb24uZW1haWx9KWA7XG4gICAgfVxuICAgIHJldHVybiBzZWxlY3RlZFBlcnNvbi5lbWFpbCA/IGAke3NlbGVjdGVkUGVyc29uLm5hbWV9KCR7c2VsZWN0ZWRQZXJzb24uZW1haWx9KWAgOiBzZWxlY3RlZFBlcnNvbi5uYW1lO1xuICB9XG59XG4iXX0=
@@ -49,7 +49,7 @@ export function maxSelectedValidator(max) {
49
49
  * @param {?} values
50
50
  * @return {?}
51
51
  */
52
- export function getCheckBoxesValues(options, values) {
52
+ export function getValues(options, values) {
53
53
  return options.reduce((/**
54
54
  * @param {?} acc
55
55
  * @param {?} option
@@ -63,4 +63,4 @@ export function getCheckBoxesValues(options, values) {
63
63
  return acc;
64
64
  }), []);
65
65
  }
66
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy1maWx0ZXItdXRpbHMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AaG1jdHMvcnB4LXh1aS1jb21tb24tbGliLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvZ2VuZXJpYy1maWx0ZXIvZ2VuZXJpYy1maWx0ZXItdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFFQSxNQUFNLFVBQVUsb0JBQW9CLENBQUksR0FBVztJQUNqRDs7OztJQUFPLFVBQUMsT0FBd0I7O1lBQ3hCLE1BQU0sR0FBRyxtQkFBQSxPQUFPLENBQUMsS0FBSyxFQUFPO1FBQ25DLE9BQU8sTUFBTSxDQUFDLE1BQU0sSUFBSSxNQUFNLENBQUMsTUFBTTs7OztRQUFDLFVBQUEsS0FBSyxJQUFJLE9BQUEsS0FBSyxFQUFMLENBQUssRUFBQyxDQUFDLE1BQU0sSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBQyxTQUFTLEVBQUUsSUFBSSxFQUFDLENBQUM7SUFDakcsQ0FBQyxFQUFDO0FBQ0osQ0FBQzs7Ozs7O0FBRUQsTUFBTSxVQUFVLG9CQUFvQixDQUFJLEdBQVc7SUFDakQ7Ozs7SUFBTyxVQUFDLE9BQXdCOztZQUN4QixNQUFNLEdBQUcsbUJBQUEsT0FBTyxDQUFDLEtBQUssRUFBTztRQUNuQyxPQUFPLE1BQU0sQ0FBQyxNQUFNLElBQUksTUFBTSxDQUFDLE1BQU07Ozs7UUFBQyxVQUFBLEtBQUssSUFBSSxPQUFBLEtBQUssRUFBTCxDQUFLLEVBQUMsQ0FBQyxNQUFNLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUMsU0FBUyxFQUFFLElBQUksRUFBQyxDQUFDO0lBQ2pHLENBQUMsRUFBQztBQUNKLENBQUM7Ozs7OztBQUVELE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxPQUEyRCxFQUFFLE1BQVc7SUFDMUcsT0FBTyxPQUFPLENBQUMsTUFBTTs7Ozs7O0lBQUMsVUFBQyxHQUFhLEVBQUUsTUFBc0MsRUFBRSxLQUFhO1FBQ3pGLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ2pCLHdCQUFXLEdBQUcsR0FBRSxNQUFNLENBQUMsR0FBRyxHQUFFO1NBQzdCO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDLEdBQUUsRUFBRSxDQUFDLENBQUM7QUFDVCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBYnN0cmFjdENvbnRyb2wsIFZhbGlkYXRpb25FcnJvcnMsIFZhbGlkYXRvckZufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBtaW5TZWxlY3RlZFZhbGlkYXRvcjxUPihtaW46IG51bWJlcik6IFZhbGlkYXRvckZuIHtcbiAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XG4gICAgY29uc3QgdmFsdWVzID0gY29udHJvbC52YWx1ZSBhcyBUW107XG4gICAgcmV0dXJuIHZhbHVlcy5sZW5ndGggJiYgdmFsdWVzLmZpbHRlcih2YWx1ZSA9PiB2YWx1ZSkubGVuZ3RoID49IG1pbiA/IG51bGwgOiB7bWluTGVuZ3RoOiB0cnVlfTtcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1heFNlbGVjdGVkVmFsaWRhdG9yPFQ+KG1heDogbnVtYmVyKTogVmFsaWRhdG9yRm4ge1xuICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0+IHtcbiAgICBjb25zdCB2YWx1ZXMgPSBjb250cm9sLnZhbHVlIGFzIFRbXTtcbiAgICByZXR1cm4gdmFsdWVzLmxlbmd0aCAmJiB2YWx1ZXMuZmlsdGVyKHZhbHVlID0+IHZhbHVlKS5sZW5ndGggPD0gbWF4ID8gbnVsbCA6IHttYXhMZW5ndGg6IHRydWV9O1xuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q2hlY2tCb3hlc1ZhbHVlcyhvcHRpb25zOiB7IGtleTogc3RyaW5nLCBsYWJlbDogc3RyaW5nLCBzZWxlY3RBbGw/OiB0cnVlIH1bXSwgdmFsdWVzOiBhbnkpOiBhbnlbXSB7XG4gIHJldHVybiBvcHRpb25zLnJlZHVjZSgoYWNjOiBzdHJpbmdbXSwgb3B0aW9uOiB7IGtleTogc3RyaW5nLCBsYWJlbDogc3RyaW5nIH0sIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICBpZiAodmFsdWVzW2luZGV4XSkge1xuICAgICAgcmV0dXJuIFsuLi5hY2MsIG9wdGlvbi5rZXldO1xuICAgIH1cbiAgICByZXR1cm4gYWNjO1xuICB9LCBbXSk7XG59XG5cbiJdfQ==
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy1maWx0ZXItdXRpbHMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AaG1jdHMvcnB4LXh1aS1jb21tb24tbGliLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvZ2VuZXJpYy1maWx0ZXIvZ2VuZXJpYy1maWx0ZXItdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFFQSxNQUFNLFVBQVUsb0JBQW9CLENBQUksR0FBVztJQUNqRDs7OztJQUFPLFVBQUMsT0FBd0I7O1lBQ3hCLE1BQU0sR0FBRyxtQkFBQSxPQUFPLENBQUMsS0FBSyxFQUFPO1FBQ25DLE9BQU8sTUFBTSxDQUFDLE1BQU0sSUFBSSxNQUFNLENBQUMsTUFBTTs7OztRQUFDLFVBQUEsS0FBSyxJQUFJLE9BQUEsS0FBSyxFQUFMLENBQUssRUFBQyxDQUFDLE1BQU0sSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBQyxTQUFTLEVBQUUsSUFBSSxFQUFDLENBQUM7SUFDakcsQ0FBQyxFQUFDO0FBQ0osQ0FBQzs7Ozs7O0FBRUQsTUFBTSxVQUFVLG9CQUFvQixDQUFJLEdBQVc7SUFDakQ7Ozs7SUFBTyxVQUFDLE9BQXdCOztZQUN4QixNQUFNLEdBQUcsbUJBQUEsT0FBTyxDQUFDLEtBQUssRUFBTztRQUNuQyxPQUFPLE1BQU0sQ0FBQyxNQUFNLElBQUksTUFBTSxDQUFDLE1BQU07Ozs7UUFBQyxVQUFBLEtBQUssSUFBSSxPQUFBLEtBQUssRUFBTCxDQUFLLEVBQUMsQ0FBQyxNQUFNLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUMsU0FBUyxFQUFFLElBQUksRUFBQyxDQUFDO0lBQ2pHLENBQUMsRUFBQztBQUNKLENBQUM7Ozs7OztBQUVELE1BQU0sVUFBVSxTQUFTLENBQUMsT0FBMkQsRUFBRSxNQUFhO0lBQ2xHLE9BQU8sT0FBTyxDQUFDLE1BQU07Ozs7OztJQUFDLFVBQUMsR0FBYSxFQUFFLE1BQXNDLEVBQUUsS0FBYTtRQUN6RixJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNqQix3QkFBVyxHQUFHLEdBQUUsTUFBTSxDQUFDLEdBQUcsR0FBRTtTQUM3QjtRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQyxHQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ1QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QWJzdHJhY3RDb250cm9sLCBWYWxpZGF0aW9uRXJyb3JzLCBWYWxpZGF0b3JGbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5leHBvcnQgZnVuY3Rpb24gbWluU2VsZWN0ZWRWYWxpZGF0b3I8VD4obWluOiBudW1iZXIpOiBWYWxpZGF0b3JGbiB7XG4gIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPT4ge1xuICAgIGNvbnN0IHZhbHVlcyA9IGNvbnRyb2wudmFsdWUgYXMgVFtdO1xuICAgIHJldHVybiB2YWx1ZXMubGVuZ3RoICYmIHZhbHVlcy5maWx0ZXIodmFsdWUgPT4gdmFsdWUpLmxlbmd0aCA+PSBtaW4gPyBudWxsIDoge21pbkxlbmd0aDogdHJ1ZX07XG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtYXhTZWxlY3RlZFZhbGlkYXRvcjxUPihtYXg6IG51bWJlcik6IFZhbGlkYXRvckZuIHtcbiAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XG4gICAgY29uc3QgdmFsdWVzID0gY29udHJvbC52YWx1ZSBhcyBUW107XG4gICAgcmV0dXJuIHZhbHVlcy5sZW5ndGggJiYgdmFsdWVzLmZpbHRlcih2YWx1ZSA9PiB2YWx1ZSkubGVuZ3RoIDw9IG1heCA/IG51bGwgOiB7bWF4TGVuZ3RoOiB0cnVlfTtcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFZhbHVlcyhvcHRpb25zOiB7IGtleTogc3RyaW5nLCBsYWJlbDogc3RyaW5nLCBzZWxlY3RBbGw/OiB0cnVlIH1bXSwgdmFsdWVzOiBhbnlbXSk6IGFueVtdIHtcbiAgcmV0dXJuIG9wdGlvbnMucmVkdWNlKChhY2M6IHN0cmluZ1tdLCBvcHRpb246IHsga2V5OiBzdHJpbmcsIGxhYmVsOiBzdHJpbmcgfSwgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgIGlmICh2YWx1ZXNbaW5kZXhdKSB7XG4gICAgICByZXR1cm4gWy4uLmFjYywgb3B0aW9uLmtleV07XG4gICAgfVxuICAgIHJldHVybiBhY2M7XG4gIH0sIFtdKTtcbn1cblxuIl19