ng2-iq-select2-exe 16.2.0 → 16.2.2
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.
- package/README.md +2 -2
- package/esm2022/lib/iq-select2/iq-select2.component.mjs +40 -67
- package/esm2022/lib/iq-select2/messages.mjs +6 -7
- package/esm2022/lib/iq-select2-results/iq-select2-results.component.mjs +32 -18
- package/esm2022/public_api.mjs +1 -2
- package/fesm2022/ng2-iq-select2-exe.mjs +74 -89
- package/fesm2022/ng2-iq-select2-exe.mjs.map +1 -1
- package/lib/iq-select2/iq-select2.component.d.ts +10 -16
- package/lib/iq-select2/messages.d.ts +5 -8
- package/lib/iq-select2-results/iq-select2-results.component.d.ts +11 -6
- package/package.json +1 -1
- package/public_api.d.ts +0 -1
package/README.md
CHANGED
|
@@ -35,7 +35,7 @@ import { IqSelect2Module } from 'ng2-iq-select2';
|
|
|
35
35
|
*html file*
|
|
36
36
|
```html
|
|
37
37
|
<form [formGroup]="form">
|
|
38
|
-
<iq-select2
|
|
38
|
+
<iq-select2 inputContainerClass="form-control input-sm"
|
|
39
39
|
formControlName="country"
|
|
40
40
|
[dataSourceProvider]="listCountries"
|
|
41
41
|
[selectedProvider]="loadFromIds"
|
|
@@ -46,7 +46,7 @@ import { IqSelect2Module } from 'ng2-iq-select2';
|
|
|
46
46
|
*html file (custom template)*
|
|
47
47
|
```html
|
|
48
48
|
<form [formGroup]="form">
|
|
49
|
-
<iq-select2
|
|
49
|
+
<iq-select2 inputContainerClass="form-control input-sm"
|
|
50
50
|
formControlName="country"
|
|
51
51
|
[dataSourceProvider]="listCountries"
|
|
52
52
|
[selectedProvider]="loadFromIds"
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { Component, EventEmitter, forwardRef, Input, Output, ViewChild } from '@angular/core';
|
|
1
|
+
import { Component, ElementRef, EventEmitter, forwardRef, Input, Output, ViewChild } from '@angular/core';
|
|
2
2
|
import { IqSelect2ResultsComponent } from '../iq-select2-results/iq-select2-results.component';
|
|
3
|
-
import {
|
|
4
|
-
import { Messages } from './messages';
|
|
3
|
+
import { NG_VALUE_ACCESSOR, UntypedFormControl } from '@angular/forms';
|
|
5
4
|
import { of } from 'rxjs';
|
|
6
5
|
import { debounceTime, distinctUntilChanged, filter, map, mergeMap, switchMap, tap } from 'rxjs/operators';
|
|
6
|
+
import Messages from "./messages";
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
8
8
|
import * as i1 from "@angular/common";
|
|
9
9
|
import * as i2 from "@angular/forms";
|
|
@@ -18,33 +18,31 @@ const VALUE_ACCESSOR = {
|
|
|
18
18
|
useExisting: forwardRef(() => IqSelect2Component),
|
|
19
19
|
multi: true
|
|
20
20
|
};
|
|
21
|
-
const noop = () => {
|
|
22
|
-
};
|
|
23
21
|
export class IqSelect2Component {
|
|
24
22
|
constructor() {
|
|
25
|
-
this.MORE_RESULTS_MSG = 'Showing ' + Messages.PARTIAL_COUNT_VAR + ' of ' + Messages.TOTAL_COUNT_VAR + ' results. Refine your search to show more results.';
|
|
26
|
-
this.NO_RESULTS_MSG = 'No results available';
|
|
27
23
|
this.referenceMode = 'id';
|
|
28
24
|
this.multiple = false;
|
|
29
|
-
this.searchDelay = 250;
|
|
30
25
|
this.placeholder = '';
|
|
31
|
-
this.minimumInputLength = 2;
|
|
32
26
|
this.disabled = false;
|
|
33
|
-
this.messages = {
|
|
34
|
-
moreResultsAvailableMsg: this.MORE_RESULTS_MSG,
|
|
35
|
-
noResultsAvailableMsg: this.NO_RESULTS_MSG
|
|
36
|
-
};
|
|
37
27
|
this.clientMode = false;
|
|
38
28
|
this.badgeColor = 'info';
|
|
29
|
+
this.wrapSelectedText = 'nowrap';
|
|
30
|
+
this.debounceDelay = 250;
|
|
31
|
+
this.debounceLength = 2;
|
|
32
|
+
this.iconCaret = '▼';
|
|
33
|
+
this.iconDelete = '×';
|
|
34
|
+
this.messageMoreResults = Messages.MORE_RESULTS;
|
|
35
|
+
this.messageNoResults = Messages.NO_RESULTS;
|
|
39
36
|
this.onSelect = new EventEmitter();
|
|
40
37
|
this.onRemove = new EventEmitter();
|
|
41
38
|
this.term = new UntypedFormControl();
|
|
42
39
|
this.resultsVisible = false;
|
|
40
|
+
this.listData = [];
|
|
43
41
|
this.selectedItems = [];
|
|
44
42
|
this.searchFocused = false;
|
|
45
43
|
this.placeholderSelected = '';
|
|
46
|
-
this.onTouchedCallback =
|
|
47
|
-
this.onChangeCallback =
|
|
44
|
+
this.onTouchedCallback = () => false;
|
|
45
|
+
this.onChangeCallback = () => false;
|
|
48
46
|
}
|
|
49
47
|
ngAfterViewInit() {
|
|
50
48
|
this.subscribeToChangesAndLoadDataFromObservable();
|
|
@@ -73,11 +71,10 @@ export class IqSelect2Component {
|
|
|
73
71
|
this.disabled = isDisabled;
|
|
74
72
|
}
|
|
75
73
|
subscribeToChangesAndLoadDataFromObservable() {
|
|
76
|
-
|
|
77
|
-
this.subscribeToResults(observable);
|
|
74
|
+
this.subscribeToResults(this.term.valueChanges.pipe(debounceTime(this.debounceDelay), distinctUntilChanged()));
|
|
78
75
|
}
|
|
79
76
|
subscribeToResults(observable) {
|
|
80
|
-
observable.pipe(tap(() => this.resultsVisible = false), filter((term) => term.length >= this.
|
|
77
|
+
observable.pipe(tap(() => this.resultsVisible = false), filter((term) => term.length >= this.debounceLength), switchMap(term => this.loadDataFromObservable(term)), map(items => items.filter(item => !(this.multiple && this.alreadySelected(item)))), tap(() => this.resultsVisible = this.searchFocused)).subscribe((items) => this.listData = items);
|
|
81
78
|
}
|
|
82
79
|
loadDataFromObservable(term) {
|
|
83
80
|
return this.clientMode ? this.fetchAndfilterLocalData(term) : this.fetchData(term);
|
|
@@ -100,15 +97,7 @@ export class IqSelect2Component {
|
|
|
100
97
|
return item.text.toUpperCase().indexOf(term.toUpperCase()) !== -1;
|
|
101
98
|
}
|
|
102
99
|
fetchData(term) {
|
|
103
|
-
return this
|
|
104
|
-
.dataSourceProvider(term, this.buildValue())
|
|
105
|
-
.pipe(map((items) => this.adaptItems(items)));
|
|
106
|
-
}
|
|
107
|
-
adaptItems(items) {
|
|
108
|
-
const convertedItems = [];
|
|
109
|
-
items.map((item) => this.iqSelect2ItemAdapter(item))
|
|
110
|
-
.forEach((iqSelect2Item) => convertedItems.push(iqSelect2Item));
|
|
111
|
-
return convertedItems;
|
|
100
|
+
return this.dataSourceProvider(term, this.buildValue()).pipe(map((items) => items.map((item) => this.iqSelect2ItemAdapter(item))));
|
|
112
101
|
}
|
|
113
102
|
populateItemsFromEntities(selectedValues) {
|
|
114
103
|
if (this.multiple) {
|
|
@@ -194,9 +183,7 @@ export class IqSelect2Component {
|
|
|
194
183
|
}
|
|
195
184
|
getSelectedIds() {
|
|
196
185
|
if (this.multiple) {
|
|
197
|
-
|
|
198
|
-
this.selectedItems.forEach(item => ids.push(item.id));
|
|
199
|
-
return ids;
|
|
186
|
+
return this.selectedItems.map(item => item.id);
|
|
200
187
|
}
|
|
201
188
|
else {
|
|
202
189
|
return this.selectedItems.length === 0 ? null : this.selectedItems[0].id;
|
|
@@ -204,11 +191,7 @@ export class IqSelect2Component {
|
|
|
204
191
|
}
|
|
205
192
|
getEntities() {
|
|
206
193
|
if (this.multiple) {
|
|
207
|
-
|
|
208
|
-
this.selectedItems.forEach(item => {
|
|
209
|
-
entities.push(item.entity);
|
|
210
|
-
});
|
|
211
|
-
return entities;
|
|
194
|
+
return this.selectedItems.map(item => item.entity);
|
|
212
195
|
}
|
|
213
196
|
else {
|
|
214
197
|
return this.selectedItems.length === 0 ? null : this.selectedItems[0].entity;
|
|
@@ -264,7 +247,7 @@ export class IqSelect2Component {
|
|
|
264
247
|
}
|
|
265
248
|
}
|
|
266
249
|
else {
|
|
267
|
-
if (this.
|
|
250
|
+
if (this.debounceLength === 0) {
|
|
268
251
|
if (ev.keyCode === KEY_CODE_ENTER || ev.keyCode === KEY_CODE_DOWN_ARROW) {
|
|
269
252
|
this.focusAndShowResults();
|
|
270
253
|
}
|
|
@@ -272,6 +255,9 @@ export class IqSelect2Component {
|
|
|
272
255
|
}
|
|
273
256
|
}
|
|
274
257
|
onKeyDown(ev) {
|
|
258
|
+
if (ev.keyCode === KEY_CODE_ENTER) {
|
|
259
|
+
ev.preventDefault();
|
|
260
|
+
}
|
|
275
261
|
if (this.results) {
|
|
276
262
|
if (ev.keyCode === KEY_CODE_TAB) {
|
|
277
263
|
this.results.selectCurrentItem();
|
|
@@ -284,32 +270,15 @@ export class IqSelect2Component {
|
|
|
284
270
|
}
|
|
285
271
|
}
|
|
286
272
|
}
|
|
287
|
-
onKeyPress(ev) {
|
|
288
|
-
if (ev.keyCode === KEY_CODE_ENTER) {
|
|
289
|
-
ev.preventDefault();
|
|
290
|
-
}
|
|
291
|
-
}
|
|
292
|
-
getCss() {
|
|
293
|
-
return 'select2-selection-container ' + (this.css === undefined ? '' : this.css);
|
|
294
|
-
}
|
|
295
273
|
getPlaceholder() {
|
|
296
274
|
return this.selectedItems.length > 0 ? this.placeholderSelected : this.placeholder;
|
|
297
275
|
}
|
|
298
|
-
getCountMessage() {
|
|
299
|
-
let msg = this.messages && this.messages.moreResultsAvailableMsg ? this.messages.moreResultsAvailableMsg : this.MORE_RESULTS_MSG;
|
|
300
|
-
msg = msg.replace(Messages.PARTIAL_COUNT_VAR, String(this.listData.length));
|
|
301
|
-
msg = msg.replace(Messages.TOTAL_COUNT_VAR, String(this.resultsCount - this.selectedItems.length));
|
|
302
|
-
return msg;
|
|
303
|
-
}
|
|
304
|
-
getBadgeColor() {
|
|
305
|
-
return this.multiple ? 'bg-' + this.badgeColor : '';
|
|
306
|
-
}
|
|
307
276
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.4", ngImport: i0, type: IqSelect2Component, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
308
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.4", type: IqSelect2Component, selector: "iq-select2", inputs: { dataSourceProvider: "dataSourceProvider", selectedProvider: "selectedProvider", iqSelect2ItemAdapter: "iqSelect2ItemAdapter", referenceMode: "referenceMode", multiple: "multiple",
|
|
277
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.4", type: IqSelect2Component, selector: "iq-select2", inputs: { dataSourceProvider: "dataSourceProvider", selectedProvider: "selectedProvider", iqSelect2ItemAdapter: "iqSelect2ItemAdapter", referenceMode: "referenceMode", multiple: "multiple", inputContainerClass: "inputContainerClass", placeholder: "placeholder", disabled: "disabled", maxResults: "maxResults", clientMode: "clientMode", badgeColor: "badgeColor", wrapSelectedText: "wrapSelectedText", debounceDelay: "debounceDelay", debounceLength: "debounceLength", iconCaret: "iconCaret", iconDelete: "iconDelete", messageMoreResults: "messageMoreResults", messageNoResults: "messageNoResults" }, outputs: { onSelect: "onSelect", onRemove: "onRemove" }, providers: [VALUE_ACCESSOR], viewQueries: [{ propertyName: "termInput", first: true, predicate: ["termInput"], descendants: true }, { propertyName: "results", first: true, predicate: ["results"], descendants: true }], ngImport: i0, template: "<div class=\"select2-container\">\r\n <div\r\n class=\"select2-inner-container\" [ngClass]=\"inputContainerClass ? inputContainerClass : ''\"\r\n [class.simple-selection]=\"!multiple\" [class.multiple-selection]=\"multiple\"\r\n [class.search-focused]=\"searchFocused\" [class.readonly]=\"disabled\"\r\n (click)=\"focusAndShowResults()\"\r\n >\r\n <ul class=\"select2-selection-container\">\r\n <ng-container *ngIf=\"!searchFocused || multiple\">\r\n <li *ngFor=\"let item of selectedItems\" class=\"select2-selected\">\r\n <span class=\"select2-selected-item\" [ngStyle]=\"{whitespace: wrapSelectedText}\" [title]=\"item.text\">{{item.text}}</span>\r\n <button *ngIf=\"!disabled\" class=\"select2-icon\" aria-label=\"Close\" (click)=\"removeItem(item)\">\r\n <span class=\"select2-selection-remove\" [innerHTML]=\"iconDelete\"></span>\r\n </button>\r\n </li>\r\n </ng-container>\r\n\r\n <li class=\"select2-input-container\">\r\n <input #termInput *ngIf=\"!disabled\" [formControl]=\"term\" type=\"text\" [placeholder]=\"getPlaceholder()\"\r\n [class.transparent]=\"!multiple && selectedItems.length > 0 && !searchFocused\"\r\n (focus)=\"onFocus()\" (blur)=\"onBlur()\"\r\n (keyup)=\"onKeyUp($event)\" (keydown)=\"onKeyDown($event)\"\r\n />\r\n </li>\r\n </ul>\r\n\r\n <div *ngIf=\"(multiple || (!multiple && selectedItems.length === 0))\" class=\"select2-icon\">\r\n <span class=\"select2-selection-caret\" [innerHTML]=\"iconCaret\"></span>\r\n </div>\r\n </div>\r\n\r\n <iq-select2-results *ngIf=\"!disabled\" #results [resultsVisible]=\"resultsVisible\"\r\n [items]=\"listData\" [selectedItems]=\"selectedItems\" [maxResults]=\"maxResults\"\r\n [messageMoreResults]=\"messageMoreResults\" [messageNoResults]=\"messageNoResults\"\r\n [templateRef]=\"templateRef\" (onItemSelected)=\"onItemSelected($event);\"\r\n >\r\n </iq-select2-results>\r\n</div>\r\n", styles: [".select2-container{position:relative;width:100%;--select2-color-background: hsl(0, 0%, 96%);--select2-color-border: hsl(0, 0%, 90%);--select2-color-disabled: hsl(220, 20%, 90%);--select2-color-focused-border: hsl(220, 100%, 80%);--select2-color-focused-shadow: hsla(220, 80%, 40%);--select2-color-scrollbar-track: hsl(0, 0%, 90%);--select2-color-scrollbar-thumb: hsl(220, 25%, 25%);--select2-color-item-text: hsl(0, 0%, 96%);--select2-color-item-background: hsl(200, 90%, 50%);--select2-color-list-active: hsl(200, 70%, 70%);--select2-color-list-selected: hsl(200, 70%, 50%)}.select2-inner-container{display:grid;grid-template-columns:1fr min-content;gap:.2em}.select2-inner-container.search-focused{color:invert(var(--select2-color-item-text));background-color:var(--select2-color-background);border-color:var(--select2-color-focused-border);outline:0;box-shadow:0 0 0 .1rem var(--select2-color-focused-shadow)}.simple-selection .select2-selection-container{display:grid;grid-auto-columns:100%}.simple-selection .select2-selection-container>*{grid-area:1 / 1}.simple-selection .select2-selected{width:100%;padding:0}.simple-selection input.transparent{opacity:0}.multiple-selection .select2-selected{color:var(--select2-color-item-text);background-color:var(--select2-color-item-background);padding:.1em .4em;border-radius:.25em;max-width:100%}.select2-selection-container{width:100%;display:flex;flex-flow:row wrap;align-items:baseline;justify-content:flex-start;gap:.2em;overflow:hidden;list-style-type:none;padding:0;margin:0}.select2-selected{display:inline-flex;flex-flow:row nowrap;align-items:baseline;justify-content:space-between;gap:.2em;padding:.25em}.select2-input-container{flex-grow:1}.select2-input-container input{background-color:transparent;border:none;outline:none;padding:0;width:100%}.select2-icon{color:inherit;font-size:1em;z-index:5;display:grid}.select2-icon:is(button){background-color:transparent;border:0;outline:0;padding:0}:not(.readonly)>.select2-icon{cursor:pointer}.select2-selected-item{width:100%;overflow:hidden;text-overflow:ellipsis}.readonly{background-color:var(--select2-color-disabled);cursor:not-allowed}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i3.IqSelect2ResultsComponent, selector: "iq-select2-results", inputs: ["items", "maxResults", "messageMoreResults", "messageNoResults", "resultsVisible", "selectedItems", "templateRef"], outputs: ["onItemSelected"] }] }); }
|
|
309
278
|
}
|
|
310
279
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.4", ngImport: i0, type: IqSelect2Component, decorators: [{
|
|
311
280
|
type: Component,
|
|
312
|
-
args: [{ selector: 'iq-select2', providers: [VALUE_ACCESSOR], template: "<div class=\"select2-container\">\r\n
|
|
281
|
+
args: [{ selector: 'iq-select2', providers: [VALUE_ACCESSOR], template: "<div class=\"select2-container\">\r\n <div\r\n class=\"select2-inner-container\" [ngClass]=\"inputContainerClass ? inputContainerClass : ''\"\r\n [class.simple-selection]=\"!multiple\" [class.multiple-selection]=\"multiple\"\r\n [class.search-focused]=\"searchFocused\" [class.readonly]=\"disabled\"\r\n (click)=\"focusAndShowResults()\"\r\n >\r\n <ul class=\"select2-selection-container\">\r\n <ng-container *ngIf=\"!searchFocused || multiple\">\r\n <li *ngFor=\"let item of selectedItems\" class=\"select2-selected\">\r\n <span class=\"select2-selected-item\" [ngStyle]=\"{whitespace: wrapSelectedText}\" [title]=\"item.text\">{{item.text}}</span>\r\n <button *ngIf=\"!disabled\" class=\"select2-icon\" aria-label=\"Close\" (click)=\"removeItem(item)\">\r\n <span class=\"select2-selection-remove\" [innerHTML]=\"iconDelete\"></span>\r\n </button>\r\n </li>\r\n </ng-container>\r\n\r\n <li class=\"select2-input-container\">\r\n <input #termInput *ngIf=\"!disabled\" [formControl]=\"term\" type=\"text\" [placeholder]=\"getPlaceholder()\"\r\n [class.transparent]=\"!multiple && selectedItems.length > 0 && !searchFocused\"\r\n (focus)=\"onFocus()\" (blur)=\"onBlur()\"\r\n (keyup)=\"onKeyUp($event)\" (keydown)=\"onKeyDown($event)\"\r\n />\r\n </li>\r\n </ul>\r\n\r\n <div *ngIf=\"(multiple || (!multiple && selectedItems.length === 0))\" class=\"select2-icon\">\r\n <span class=\"select2-selection-caret\" [innerHTML]=\"iconCaret\"></span>\r\n </div>\r\n </div>\r\n\r\n <iq-select2-results *ngIf=\"!disabled\" #results [resultsVisible]=\"resultsVisible\"\r\n [items]=\"listData\" [selectedItems]=\"selectedItems\" [maxResults]=\"maxResults\"\r\n [messageMoreResults]=\"messageMoreResults\" [messageNoResults]=\"messageNoResults\"\r\n [templateRef]=\"templateRef\" (onItemSelected)=\"onItemSelected($event);\"\r\n >\r\n </iq-select2-results>\r\n</div>\r\n", styles: [".select2-container{position:relative;width:100%;--select2-color-background: hsl(0, 0%, 96%);--select2-color-border: hsl(0, 0%, 90%);--select2-color-disabled: hsl(220, 20%, 90%);--select2-color-focused-border: hsl(220, 100%, 80%);--select2-color-focused-shadow: hsla(220, 80%, 40%);--select2-color-scrollbar-track: hsl(0, 0%, 90%);--select2-color-scrollbar-thumb: hsl(220, 25%, 25%);--select2-color-item-text: hsl(0, 0%, 96%);--select2-color-item-background: hsl(200, 90%, 50%);--select2-color-list-active: hsl(200, 70%, 70%);--select2-color-list-selected: hsl(200, 70%, 50%)}.select2-inner-container{display:grid;grid-template-columns:1fr min-content;gap:.2em}.select2-inner-container.search-focused{color:invert(var(--select2-color-item-text));background-color:var(--select2-color-background);border-color:var(--select2-color-focused-border);outline:0;box-shadow:0 0 0 .1rem var(--select2-color-focused-shadow)}.simple-selection .select2-selection-container{display:grid;grid-auto-columns:100%}.simple-selection .select2-selection-container>*{grid-area:1 / 1}.simple-selection .select2-selected{width:100%;padding:0}.simple-selection input.transparent{opacity:0}.multiple-selection .select2-selected{color:var(--select2-color-item-text);background-color:var(--select2-color-item-background);padding:.1em .4em;border-radius:.25em;max-width:100%}.select2-selection-container{width:100%;display:flex;flex-flow:row wrap;align-items:baseline;justify-content:flex-start;gap:.2em;overflow:hidden;list-style-type:none;padding:0;margin:0}.select2-selected{display:inline-flex;flex-flow:row nowrap;align-items:baseline;justify-content:space-between;gap:.2em;padding:.25em}.select2-input-container{flex-grow:1}.select2-input-container input{background-color:transparent;border:none;outline:none;padding:0;width:100%}.select2-icon{color:inherit;font-size:1em;z-index:5;display:grid}.select2-icon:is(button){background-color:transparent;border:0;outline:0;padding:0}:not(.readonly)>.select2-icon{cursor:pointer}.select2-selected-item{width:100%;overflow:hidden;text-overflow:ellipsis}.readonly{background-color:var(--select2-color-disabled);cursor:not-allowed}\n"] }]
|
|
313
282
|
}], ctorParameters: function () { return []; }, propDecorators: { dataSourceProvider: [{
|
|
314
283
|
type: Input
|
|
315
284
|
}], selectedProvider: [{
|
|
@@ -320,27 +289,31 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.4", ngImpor
|
|
|
320
289
|
type: Input
|
|
321
290
|
}], multiple: [{
|
|
322
291
|
type: Input
|
|
323
|
-
}],
|
|
324
|
-
type: Input
|
|
325
|
-
}], css: [{
|
|
292
|
+
}], inputContainerClass: [{
|
|
326
293
|
type: Input
|
|
327
294
|
}], placeholder: [{
|
|
328
295
|
type: Input
|
|
329
|
-
}], minimumInputLength: [{
|
|
330
|
-
type: Input
|
|
331
296
|
}], disabled: [{
|
|
332
297
|
type: Input
|
|
333
|
-
}],
|
|
298
|
+
}], maxResults: [{
|
|
334
299
|
type: Input
|
|
335
|
-
}],
|
|
300
|
+
}], clientMode: [{
|
|
336
301
|
type: Input
|
|
337
|
-
}],
|
|
302
|
+
}], badgeColor: [{
|
|
338
303
|
type: Input
|
|
339
|
-
}],
|
|
304
|
+
}], wrapSelectedText: [{
|
|
340
305
|
type: Input
|
|
341
|
-
}],
|
|
306
|
+
}], debounceDelay: [{
|
|
342
307
|
type: Input
|
|
343
|
-
}],
|
|
308
|
+
}], debounceLength: [{
|
|
309
|
+
type: Input
|
|
310
|
+
}], iconCaret: [{
|
|
311
|
+
type: Input
|
|
312
|
+
}], iconDelete: [{
|
|
313
|
+
type: Input
|
|
314
|
+
}], messageMoreResults: [{
|
|
315
|
+
type: Input
|
|
316
|
+
}], messageNoResults: [{
|
|
344
317
|
type: Input
|
|
345
318
|
}], onSelect: [{
|
|
346
319
|
type: Output
|
|
@@ -353,4 +326,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.4", ngImpor
|
|
|
353
326
|
type: ViewChild,
|
|
354
327
|
args: ['results']
|
|
355
328
|
}] } });
|
|
356
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXEtc2VsZWN0Mi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZzItaXEtc2VsZWN0Mi9zcmMvbGliL2lxLXNlbGVjdDIvaXEtc2VsZWN0Mi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZzItaXEtc2VsZWN0Mi9zcmMvbGliL2lxLXNlbGVjdDIvaXEtc2VsZWN0Mi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLFNBQVMsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQWUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXhILE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLG9EQUFvRCxDQUFDO0FBQzdGLE9BQU8sRUFBdUIsa0JBQWtCLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzRixPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sWUFBWSxDQUFDO0FBQ3BDLE9BQU8sRUFBYSxFQUFFLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUFDLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7Ozs7O0FBRXpHLE1BQU0sbUJBQW1CLEdBQUcsRUFBRSxDQUFDO0FBQy9CLE1BQU0saUJBQWlCLEdBQUcsRUFBRSxDQUFDO0FBQzdCLE1BQU0sY0FBYyxHQUFHLEVBQUUsQ0FBQztBQUMxQixNQUFNLFlBQVksR0FBRyxDQUFDLENBQUM7QUFDdkIsTUFBTSxlQUFlLEdBQUcsQ0FBQyxDQUFDO0FBQzFCLE1BQU0sY0FBYyxHQUFHO0lBQ25CLE9BQU8sRUFBRSxpQkFBaUI7SUFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxrQkFB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Q0FBQyxFQUFFLENBQUM7SUFDeEQsQ0FBQzs4R0F2VlEsa0JBQWtCO2tHQUFsQixrQkFBa0IsOGpCQUZoQixDQUFDLGNBQWMsQ0FBQyx1TkN6Qi9CLG03RkF3REE7OzJGRDdCYSxrQkFBa0I7a0JBTjlCLFNBQVM7K0JBQ0ksWUFBWSxhQUdYLENBQUMsY0FBYyxDQUFDOzBFQU9sQixrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFJRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDSSxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ3lCLFNBQVM7c0JBQXhDLFNBQVM7dUJBQUMsV0FBVztnQkFDQSxPQUFPO3NCQUE1QixTQUFTO3VCQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBmb3J3YXJkUmVmLCBJbnB1dCwgT3V0cHV0LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtJcVNlbGVjdDJJdGVtfSBmcm9tICcuL2lxLXNlbGVjdDItaXRlbSc7XHJcbmltcG9ydCB7SXFTZWxlY3QyUmVzdWx0c0NvbXBvbmVudH0gZnJvbSAnLi4vaXEtc2VsZWN0Mi1yZXN1bHRzL2lxLXNlbGVjdDItcmVzdWx0cy5jb21wb25lbnQnO1xyXG5pbXBvcnQge0NvbnRyb2xWYWx1ZUFjY2Vzc29yLCBVbnR5cGVkRm9ybUNvbnRyb2wsIE5HX1ZBTFVFX0FDQ0VTU09SfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7TWVzc2FnZXN9IGZyb20gJy4vbWVzc2FnZXMnO1xyXG5pbXBvcnQge09ic2VydmFibGUsIG9mfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHtkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIG1hcCwgbWVyZ2VNYXAsIHN3aXRjaE1hcCwgdGFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5jb25zdCBLRVlfQ09ERV9ET1dOX0FSUk9XID0gNDA7XHJcbmNvbnN0IEtFWV9DT0RFX1VQX0FSUk9XID0gMzg7XHJcbmNvbnN0IEtFWV9DT0RFX0VOVEVSID0gMTM7XHJcbmNvbnN0IEtFWV9DT0RFX1RBQiA9IDk7XHJcbmNvbnN0IEtFWV9DT0RFX0RFTEVURSA9IDg7XHJcbmNvbnN0IFZBTFVFX0FDQ0VTU09SID0ge1xyXG4gICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBJcVNlbGVjdDJDb21wb25lbnQpLFxyXG4gICAgbXVsdGk6IHRydWVcclxufTtcclxuY29uc3Qgbm9vcCA9ICgpID0+IHtcclxufTtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdpcS1zZWxlY3QyJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9pcS1zZWxlY3QyLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2lxLXNlbGVjdDIuY29tcG9uZW50LmNzcyddLFxyXG4gICAgcHJvdmlkZXJzOiBbVkFMVUVfQUNDRVNTT1JdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJcVNlbGVjdDJDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcblxyXG4gICAgTU9SRV9SRVNVTFRTX01TRyA9ICdTaG93aW5nICcgKyBNZXNzYWdlcy5QQVJUSUFMX0NPVU5UX1ZBUiArICcgb2YgJyArIE1lc3NhZ2VzLlRPVEFMX0NPVU5UX1ZBUiArICcgcmVzdWx0cy4gUmVmaW5lIHlvdXIgc2VhcmNoIHRvIHNob3cgbW9yZSByZXN1bHRzLic7XHJcbiAgICBOT19SRVNVTFRTX01TRyA9ICdObyByZXN1bHRzIGF2YWlsYWJsZSc7XHJcblxyXG4gICAgQElucHV0KCkgZGF0YVNvdXJjZVByb3ZpZGVyOiAodGVybTogc3RyaW5nLCBzZWxlY3RlZD86IGFueVtdKSA9PiBPYnNlcnZhYmxlPGFueVtdPjtcclxuICAgIEBJbnB1dCgpIHNlbGVjdGVkUHJvdmlkZXI6IChpZHM6IHN0cmluZ1tdKSA9PiBPYnNlcnZhYmxlPGFueVtdPjtcclxuICAgIEBJbnB1dCgpIGlxU2VsZWN0Mkl0ZW1BZGFwdGVyOiAoZW50aXR5OiBhbnkpID0+IElxU2VsZWN0Mkl0ZW07XHJcbiAgICBASW5wdXQoKSByZWZlcmVuY2VNb2RlOiAnaWQnIHwgJ2VudGl0eScgPSAnaWQnO1xyXG4gICAgQElucHV0KCkgbXVsdGlwbGUgPSBmYWxzZTtcclxuICAgIEBJbnB1dCgpIHNlYXJjaERlbGF5ID0gMjUwO1xyXG4gICAgQElucHV0KCkgY3NzOiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSBwbGFjZWhvbGRlciA9ICcnO1xyXG4gICAgQElucHV0KCkgbWluaW11bUlucHV0TGVuZ3RoID0gMjtcclxuICAgIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XHJcbiAgICBASW5wdXQoKSBzZWFyY2hJY29uO1xyXG4gICAgQElucHV0KCkgZGVsZXRlSWNvbjtcclxuICAgIEBJbnB1dCgpIG1lc3NhZ2VzOiBNZXNzYWdlcyA9IHtcclxuICAgICAgICBtb3JlUmVzdWx0c0F2YWlsYWJsZU1zZzogdGhpcy5NT1JFX1JFU1VMVFNfTVNHLFxyXG4gICAgICAgIG5vUmVzdWx0c0F2YWlsYWJsZU1zZzogdGhpcy5OT19SRVNVTFRTX01TR1xyXG4gICAgfTtcclxuICAgIEBJbnB1dCgpIHJlc3VsdHNDb3VudDtcclxuICAgIEBJbnB1dCgpIGNsaWVudE1vZGUgPSBmYWxzZTtcclxuICAgIEBJbnB1dCgpIGJhZGdlQ29sb3IgPSAnaW5mbyc7XHJcbiAgICBAT3V0cHV0KCkgb25TZWxlY3Q6IEV2ZW50RW1pdHRlcjxJcVNlbGVjdDJJdGVtPiA9IG5ldyBFdmVudEVtaXR0ZXI8SXFTZWxlY3QySXRlbT4oKTtcclxuICAgIEBPdXRwdXQoKSBvblJlbW92ZTogRXZlbnRFbWl0dGVyPElxU2VsZWN0Mkl0ZW0+ID0gbmV3IEV2ZW50RW1pdHRlcjxJcVNlbGVjdDJJdGVtPigpO1xyXG4gICAgQFZpZXdDaGlsZCgndGVybUlucHV0JykgcHJpdmF0ZSB0ZXJtSW5wdXQ7XHJcbiAgICBAVmlld0NoaWxkKCdyZXN1bHRzJykgcmVzdWx0czogSXFTZWxlY3QyUmVzdWx0c0NvbXBvbmVudDtcclxuICAgIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gICAgdGVybSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woKTtcclxuICAgIHJlc3VsdHNWaXNpYmxlID0gZmFsc2U7XHJcbiAgICBsaXN0RGF0YTogSXFTZWxlY3QySXRlbVtdO1xyXG4gICAgZnVsbERhdGFMaXN0OiBJcVNlbGVjdDJJdGVtW107XHJcbiAgICBzZWxlY3RlZEl0ZW1zOiBJcVNlbGVjdDJJdGVtW10gPSBbXTtcclxuICAgIHNlYXJjaEZvY3VzZWQgPSBmYWxzZTtcclxuICAgIHByaXZhdGUgcGxhY2Vob2xkZXJTZWxlY3RlZCA9ICcnO1xyXG4gICAgb25Ub3VjaGVkQ2FsbGJhY2s6ICgpID0+IHZvaWQgPSBub29wO1xyXG4gICAgb25DaGFuZ2VDYWxsYmFjazogKF86IGFueSkgPT4gdm9pZCA9IG5vb3A7XHJcblxyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICB9XHJcblxyXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgICAgIHRoaXMuc3Vic2NyaWJlVG9DaGFuZ2VzQW5kTG9hZERhdGFGcm9tT2JzZXJ2YWJsZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHdyaXRlVmFsdWUoc2VsZWN0ZWRWYWx1ZXM6IGFueSk6IHZvaWQge1xyXG4gICAgICAgIGlmIChzZWxlY3RlZFZhbHVlcykge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5yZWZlcmVuY2VNb2RlID09PSAnaWQnKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnBvcHVsYXRlSXRlbXNGcm9tSWRzKHNlbGVjdGVkVmFsdWVzKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMucG9wdWxhdGVJdGVtc0Zyb21FbnRpdGllcyhzZWxlY3RlZFZhbHVlcyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnBsYWNlaG9sZGVyU2VsZWN0ZWQgPSAnJztcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0gW107XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayA9IGZuO1xyXG4gICAgfVxyXG5cclxuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLm9uVG91Y2hlZENhbGxiYWNrID0gZm47XHJcbiAgICB9XHJcblxyXG4gICAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzdWJzY3JpYmVUb0NoYW5nZXNBbmRMb2FkRGF0YUZyb21PYnNlcnZhYmxlKCkge1xyXG4gICAgICAgIGNvbnN0IG9ic2VydmFibGUgPSB0aGlzLnRlcm0udmFsdWVDaGFuZ2VzLnBpcGUoXHJcbiAgICAgICAgICAgIGRlYm91bmNlVGltZSh0aGlzLnNlYXJjaERlbGF5KSxcclxuICAgICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgdGhpcy5zdWJzY3JpYmVUb1Jlc3VsdHMob2JzZXJ2YWJsZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzdWJzY3JpYmVUb1Jlc3VsdHMob2JzZXJ2YWJsZTogT2JzZXJ2YWJsZTxzdHJpbmc+KTogdm9pZCB7XHJcbiAgICAgICAgb2JzZXJ2YWJsZS5waXBlKFxyXG4gICAgICAgICAgICB0YXAoKCkgPT4gdGhpcy5yZXN1bHRzVmlzaWJsZSA9IGZhbHNlKSxcclxuICAgICAgICAgICAgZmlsdGVyKCh0ZXJtKSA9PiB0ZXJtLmxlbmd0aCA+PSB0aGlzLm1pbmltdW1JbnB1dExlbmd0aCksXHJcbiAgICAgICAgICAgIHN3aXRjaE1hcCh0ZXJtID0+IHRoaXMubG9hZERhdGFGcm9tT2JzZXJ2YWJsZSh0ZXJtKSksXHJcbiAgICAgICAgICAgIG1hcChpdGVtcyA9PiBpdGVtcy5maWx0ZXIoaXRlbSA9PiAhKHRoaXMubXVsdGlwbGUgJiYgdGhpcy5hbHJlYWR5U2VsZWN0ZWQoaXRlbSkpKSksXHJcbiAgICAgICAgICAgIHRhcCgoKSA9PiB0aGlzLnJlc3VsdHNWaXNpYmxlID0gdGhpcy5zZWFyY2hGb2N1c2VkKVxyXG4gICAgICAgICkuc3Vic2NyaWJlKChpdGVtcykgPT4gdGhpcy5saXN0RGF0YSA9IGl0ZW1zKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGxvYWREYXRhRnJvbU9ic2VydmFibGUodGVybTogc3RyaW5nKTogT2JzZXJ2YWJsZTxJcVNlbGVjdDJJdGVtW10+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jbGllbnRNb2RlID8gdGhpcy5mZXRjaEFuZGZpbHRlckxvY2FsRGF0YSh0ZXJtKSA6IHRoaXMuZmV0Y2hEYXRhKHRlcm0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZmV0Y2hBbmRmaWx0ZXJMb2NhbERhdGEodGVybTogc3RyaW5nKTogT2JzZXJ2YWJsZTxJcVNlbGVjdDJJdGVtW10+IHtcclxuICAgICAgICBpZiAoIXRoaXMuZnVsbERhdGFMaXN0KSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmZldGNoRGF0YSgnJykucGlwZShcclxuICAgICAgICAgICAgICAgIG1lcmdlTWFwKChpdGVtcykgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZnVsbERhdGFMaXN0ID0gaXRlbXM7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyTG9jYWxEYXRhKHRlcm0pO1xyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5maWx0ZXJMb2NhbERhdGEodGVybSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZmlsdGVyTG9jYWxEYXRhKHRlcm06IHN0cmluZyk6IE9ic2VydmFibGU8SXFTZWxlY3QySXRlbVtdPiB7XHJcbiAgICAgICAgcmV0dXJuIG9mKHRoaXMuZnVsbERhdGFMaXN0LmZpbHRlcigoaXRlbSkgPT4gdGhpcy5jb250YWluc1RleHQoaXRlbSwgdGVybSkpKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGNvbnRhaW5zVGV4dChpdGVtLCB0ZXJtOiBzdHJpbmcpIHtcclxuICAgICAgICByZXR1cm4gaXRlbS50ZXh0LnRvVXBwZXJDYXNlKCkuaW5kZXhPZih0ZXJtLnRvVXBwZXJDYXNlKCkpICE9PSAtMTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGZldGNoRGF0YSh0ZXJtOiBzdHJpbmcpOiBPYnNlcnZhYmxlPElxU2VsZWN0Mkl0ZW1bXT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzXHJcbiAgICAgICAgICAgIC5kYXRhU291cmNlUHJvdmlkZXIodGVybSwgdGhpcy5idWlsZFZhbHVlKCkpXHJcbiAgICAgICAgICAgIC5waXBlKG1hcCgoaXRlbXM6IGFueVtdKSA9PiB0aGlzLmFkYXB0SXRlbXMoaXRlbXMpKSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBhZGFwdEl0ZW1zKGl0ZW1zOiBhbnlbXSk6IElxU2VsZWN0Mkl0ZW1bXSB7XHJcbiAgICAgICAgY29uc3QgY29udmVydGVkSXRlbXMgPSBbXTtcclxuICAgICAgICBpdGVtcy5tYXAoKGl0ZW0pID0+IHRoaXMuaXFTZWxlY3QySXRlbUFkYXB0ZXIoaXRlbSkpXHJcbiAgICAgICAgICAgIC5mb3JFYWNoKChpcVNlbGVjdDJJdGVtKSA9PiBjb252ZXJ0ZWRJdGVtcy5wdXNoKGlxU2VsZWN0Mkl0ZW0pKTtcclxuICAgICAgICByZXR1cm4gY29udmVydGVkSXRlbXM7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBwb3B1bGF0ZUl0ZW1zRnJvbUVudGl0aWVzKHNlbGVjdGVkVmFsdWVzOiBhbnkpIHtcclxuICAgICAgICBpZiAodGhpcy5tdWx0aXBsZSkge1xyXG4gICAgICAgICAgICB0aGlzLmhhbmRsZU11bHRpcGxlV2l0aEVudGl0aWVzKHNlbGVjdGVkVmFsdWVzKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBjb25zdCBpcVNlbGVjdDJJdGVtID0gdGhpcy5pcVNlbGVjdDJJdGVtQWRhcHRlcihzZWxlY3RlZFZhbHVlcyk7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IFtpcVNlbGVjdDJJdGVtXTtcclxuICAgICAgICAgICAgdGhpcy5wbGFjZWhvbGRlclNlbGVjdGVkID0gaXFTZWxlY3QySXRlbS50ZXh0O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGhhbmRsZU11bHRpcGxlV2l0aEVudGl0aWVzKHNlbGVjdGVkVmFsdWVzOiBhbnkpIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSBbXTtcclxuICAgICAgICBzZWxlY3RlZFZhbHVlcy5mb3JFYWNoKChlbnRpdHkpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgaXRlbSA9IHRoaXMuaXFTZWxlY3QySXRlbUFkYXB0ZXIoZW50aXR5KTtcclxuICAgICAgICAgICAgY29uc3QgaWRzID0gdGhpcy5nZXRTZWxlY3RlZElkcygpO1xyXG5cclxuICAgICAgICAgICAgaWYgKGlkcy5pbmRleE9mKGl0ZW0uaWQpID09PSAtMSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zLnB1c2goaXRlbSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHBvcHVsYXRlSXRlbXNGcm9tSWRzKHNlbGVjdGVkVmFsdWVzOiBhbnkpIHtcclxuICAgICAgICBpZiAodGhpcy5tdWx0aXBsZSkge1xyXG4gICAgICAgICAgICB0aGlzLmhhbmRsZU11bHRpcGxlV2l0aElkcyhzZWxlY3RlZFZhbHVlcyk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5oYW5kbGVTaW5nbGVXaXRoSWQoc2VsZWN0ZWRWYWx1ZXMpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGhhbmRsZU11bHRpcGxlV2l0aElkcyhzZWxlY3RlZFZhbHVlczogYW55KSB7XHJcbiAgICAgICAgaWYgKHNlbGVjdGVkVmFsdWVzICE9PSB1bmRlZmluZWQgJiYgdGhpcy5zZWxlY3RlZFByb3ZpZGVyICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgY29uc3QgdW5pcXVlSWRzID0gW107XHJcbiAgICAgICAgICAgIHNlbGVjdGVkVmFsdWVzLmZvckVhY2goKGlkKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAodW5pcXVlSWRzLmluZGV4T2YoaWQpID09PSAtMSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHVuaXF1ZUlkcy5wdXNoKGlkKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkUHJvdmlkZXIodW5pcXVlSWRzKS5zdWJzY3JpYmUoKGl0ZW1zOiBhbnlbXSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0gaXRlbXMubWFwKHRoaXMuaXFTZWxlY3QySXRlbUFkYXB0ZXIpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBoYW5kbGVTaW5nbGVXaXRoSWQoaWQ6IGFueSkge1xyXG4gICAgICAgIGlmIChpZCAhPT0gdW5kZWZpbmVkICYmIHRoaXMuc2VsZWN0ZWRQcm92aWRlciAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRQcm92aWRlcihbaWRdKS5zdWJzY3JpYmUoKGl0ZW1zOiBhbnlbXSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGlxU2VsZWN0Mkl0ZW0gPSB0aGlzLmlxU2VsZWN0Mkl0ZW1BZGFwdGVyKGl0ZW0pO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IFtpcVNlbGVjdDJJdGVtXTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnBsYWNlaG9sZGVyU2VsZWN0ZWQgPSBpcVNlbGVjdDJJdGVtLnRleHQ7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgYWxyZWFkeVNlbGVjdGVkKGl0ZW06IElxU2VsZWN0Mkl0ZW0pOiBib29sZWFuIHtcclxuICAgICAgICBsZXQgcmVzdWx0ID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zLmZvckVhY2goc2VsZWN0ZWRJdGVtID0+IHtcclxuICAgICAgICAgICAgaWYgKHNlbGVjdGVkSXRlbS5pZCA9PT0gaXRlbS5pZCkge1xyXG4gICAgICAgICAgICAgICAgcmVzdWx0ID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9XHJcblxyXG4gICAgb25JdGVtU2VsZWN0ZWQoaXRlbTogSXFTZWxlY3QySXRlbSkge1xyXG4gICAgICAgIGlmICh0aGlzLm11bHRpcGxlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcy5wdXNoKGl0ZW0pO1xyXG4gICAgICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMubGlzdERhdGEuaW5kZXhPZihpdGVtLCAwKTtcclxuICAgICAgICAgICAgaWYgKGluZGV4ID4gLTEpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMubGlzdERhdGEuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcy5sZW5ndGggPSAwO1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMucHVzaChpdGVtKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayh0aGlzLmJ1aWxkVmFsdWUoKSk7XHJcbiAgICAgICAgdGhpcy50ZXJtLnBhdGNoVmFsdWUoJycsIHtlbWl0RXZlbnQ6IGZhbHNlfSk7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmZvY3VzKCksIDEpO1xyXG4gICAgICAgIHRoaXMucmVzdWx0c1Zpc2libGUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLm9uU2VsZWN0LmVtaXQoaXRlbSk7XHJcbiAgICAgICAgaWYgKCF0aGlzLm11bHRpcGxlKSB7XHJcbiAgICAgICAgICAgIHRoaXMucGxhY2Vob2xkZXJTZWxlY3RlZCA9IGl0ZW0udGV4dDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRTZWxlY3RlZElkcygpOiBhbnkge1xyXG4gICAgICAgIGlmICh0aGlzLm11bHRpcGxlKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGlkczogc3RyaW5nW10gPSBbXTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcy5mb3JFYWNoKGl0ZW0gPT4gaWRzLnB1c2goaXRlbS5pZCkpO1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuIGlkcztcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3RlZEl0ZW1zLmxlbmd0aCA9PT0gMCA/IG51bGwgOiB0aGlzLnNlbGVjdGVkSXRlbXNbMF0uaWQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0RW50aXRpZXMoKTogYW55W10ge1xyXG4gICAgICAgIGlmICh0aGlzLm11bHRpcGxlKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGVudGl0aWVzID0gW107XHJcblxyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMuZm9yRWFjaChpdGVtID0+IHtcclxuICAgICAgICAgICAgICAgIGVudGl0aWVzLnB1c2goaXRlbS5lbnRpdHkpO1xyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIHJldHVybiBlbnRpdGllcztcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3RlZEl0ZW1zLmxlbmd0aCA9PT0gMCA/IG51bGwgOiB0aGlzLnNlbGVjdGVkSXRlbXNbMF0uZW50aXR5O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZW1vdmVJdGVtKGl0ZW06IElxU2VsZWN0Mkl0ZW0pIHtcclxuICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuc2VsZWN0ZWRJdGVtcy5pbmRleE9mKGl0ZW0sIDApO1xyXG5cclxuICAgICAgICBpZiAoaW5kZXggPiAtMSkge1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayh0aGlzLmJ1aWxkVmFsdWUoKSk7XHJcbiAgICAgICAgdGhpcy5vblJlbW92ZS5lbWl0KGl0ZW0pO1xyXG4gICAgICAgIGlmICghdGhpcy5tdWx0aXBsZSkge1xyXG4gICAgICAgICAgICB0aGlzLnBsYWNlaG9sZGVyU2VsZWN0ZWQgPSAnJztcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBidWlsZFZhbHVlKCkge1xyXG4gICAgICAgIHJldHVybiAnaWQnID09PSB0aGlzLnJlZmVyZW5jZU1vZGUgPyB0aGlzLmdldFNlbGVjdGVkSWRzKCkgOiB0aGlzLmdldEVudGl0aWVzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgb25Gb2N1cygpIHtcclxuICAgICAgICB0aGlzLnNlYXJjaEZvY3VzZWQgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIG9uQmx1cigpIHtcclxuICAgICAgICB0aGlzLnRlcm0ucGF0Y2hWYWx1ZSgnJywge2VtaXRFdmVudDogZmFsc2V9KTtcclxuICAgICAgICB0aGlzLnNlYXJjaEZvY3VzZWQgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnJlc3VsdHNWaXNpYmxlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5vblRvdWNoZWRDYWxsYmFjaygpO1xyXG4gICAgfVxyXG5cclxuICAgIGZvY3VzKCkge1xyXG4gICAgICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xyXG4gICAgICAgICAgICB0aGlzLnRlcm1JbnB1dC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XHJcbiAgICAgICAgICAgIHRoaXMucmVzdWx0c1Zpc2libGUgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5zZWFyY2hGb2N1c2VkID0gIXRoaXMuZGlzYWJsZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgZm9jdXNBbmRTaG93UmVzdWx0cygpIHtcclxuICAgICAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcclxuICAgICAgICAgICAgdGhpcy50ZXJtSW5wdXQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xyXG4gICAgICAgICAgICB0aGlzLnN1YnNjcmliZVRvUmVzdWx0cyhvZignJykpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnNlYXJjaEZvY3VzZWQgPSAhdGhpcy5kaXNhYmxlZDtcclxuICAgIH1cclxuXHJcbiAgICBvbktleVVwKGV2KSB7XHJcbiAgICAgICAgaWYgKHRoaXMucmVzdWx0cykge1xyXG4gICAgICAgICAgICBpZiAoZXYua2V5Q29kZSA9PT0gS0VZX0NPREVfRE9XTl9BUlJPVykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5yZXN1bHRzLmFjdGl2ZU5leHQoKTtcclxuICAgICAgICAgICAgfSBlbHNlIGlmIChldi5rZXlDb2RlID09PSBLRVlfQ09ERV9VUF9BUlJPVykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5yZXN1bHRzLmFjdGl2ZVByZXZpb3VzKCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZXYua2V5Q29kZSA9PT0gS0VZX0NPREVfRU5URVIpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMucmVzdWx0cy5zZWxlY3RDdXJyZW50SXRlbSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMubWluaW11bUlucHV0TGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZXYua2V5Q29kZSA9PT0gS0VZX0NPREVfRU5URVIgfHwgZXYua2V5Q29kZSA9PT0gS0VZX0NPREVfRE9XTl9BUlJPVykge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9jdXNBbmRTaG93UmVzdWx0cygpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG9uS2V5RG93bihldikge1xyXG4gICAgICAgIGlmICh0aGlzLnJlc3VsdHMpIHtcclxuICAgICAgICAgICAgaWYgKGV2LmtleUNvZGUgPT09IEtFWV9DT0RFX1RBQikge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5yZXN1bHRzLnNlbGVjdEN1cnJlbnRJdGVtKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChldi5rZXlDb2RlID09PSBLRVlfQ09ERV9ERUxFVEUpIHtcclxuICAgICAgICAgICAgY29uc3QgdGV4dEVudGVyZWQgPSAhdGhpcy50ZXJtLnZhbHVlIHx8IHRoaXMudGVybS52YWx1ZS5sZW5ndGggPT09IDA7XHJcbiAgICAgICAgICAgIGlmICh0ZXh0RW50ZXJlZCAmJiB0aGlzLnNlbGVjdGVkSXRlbXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5yZW1vdmVJdGVtKHRoaXMuc2VsZWN0ZWRJdGVtc1t0aGlzLnNlbGVjdGVkSXRlbXMubGVuZ3RoIC0gMV0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG9uS2V5UHJlc3MoZXYpIHtcclxuICAgICAgICBpZiAoZXYua2V5Q29kZSA9PT0gS0VZX0NPREVfRU5URVIpIHtcclxuICAgICAgICAgICAgZXYucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0Q3NzKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuICdzZWxlY3QyLXNlbGVjdGlvbi1jb250YWluZXIgJyArICh0aGlzLmNzcyA9PT0gdW5kZWZpbmVkID8gJycgOiB0aGlzLmNzcyk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0UGxhY2Vob2xkZXIoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3RlZEl0ZW1zLmxlbmd0aCA+IDAgPyB0aGlzLnBsYWNlaG9sZGVyU2VsZWN0ZWQgOiB0aGlzLnBsYWNlaG9sZGVyO1xyXG4gICAgfVxyXG5cclxuICAgIGdldENvdW50TWVzc2FnZSgpOiBzdHJpbmcge1xyXG4gICAgICAgIGxldCBtc2cgPSB0aGlzLm1lc3NhZ2VzICYmIHRoaXMubWVzc2FnZXMubW9yZVJlc3VsdHNBdmFpbGFibGVNc2cgPyB0aGlzLm1lc3NhZ2VzLm1vcmVSZXN1bHRzQXZhaWxhYmxlTXNnIDogdGhpcy5NT1JFX1JFU1VMVFNfTVNHO1xyXG4gICAgICAgIG1zZyA9IG1zZy5yZXBsYWNlKE1lc3NhZ2VzLlBBUlRJQUxfQ09VTlRfVkFSLCBTdHJpbmcodGhpcy5saXN0RGF0YS5sZW5ndGgpKTtcclxuICAgICAgICBtc2cgPSBtc2cucmVwbGFjZShNZXNzYWdlcy5UT1RBTF9DT1VOVF9WQVIsIFN0cmluZyh0aGlzLnJlc3VsdHNDb3VudCAtIHRoaXMuc2VsZWN0ZWRJdGVtcy5sZW5ndGgpKTtcclxuICAgICAgICByZXR1cm4gbXNnO1xyXG4gICAgfVxyXG5cclxuICAgIGdldEJhZGdlQ29sb3IoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5tdWx0aXBsZSA/ICdiZy0nICsgdGhpcy5iYWRnZUNvbG9yIDogJyc7XHJcbiAgICB9XHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJzZWxlY3QyLWNvbnRhaW5lclwiPlxyXG4gICAgPHVsIChjbGljayk9XCJmb2N1c0FuZFNob3dSZXN1bHRzKClcIlxyXG4gICAgICAgIFtjbGFzc109XCJnZXRDc3MoKVwiXHJcbiAgICAgICAgW2NsYXNzLnNpbXBsZS1zZWxlY3Rpb25dPVwiIW11bHRpcGxlXCJcclxuICAgICAgICBbY2xhc3MubXVsdGlwbGUtc2VsZWN0aW9uXT1cIm11bHRpcGxlXCJcclxuICAgICAgICBbY2xhc3Muc2VhcmNoLWZvY3VzZWRdPVwic2VhcmNoRm9jdXNlZFwiXHJcbiAgICAgICAgW2NsYXNzLnJlYWRvbmx5XT1cImRpc2FibGVkXCI+XHJcblxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhc2VhcmNoRm9jdXNlZCB8fCBtdWx0aXBsZVwiPlxyXG4gICAgICAgICAgICA8bGkgKm5nRm9yPVwibGV0IGl0ZW0gb2Ygc2VsZWN0ZWRJdGVtc1wiXHJcbiAgICAgICAgICAgICAgICBbY2xhc3NdPVwiJ3NlbGVjdDItc2VsZWN0ZWQgJyArIGdldEJhZGdlQ29sb3IoKVwiXHJcbiAgICAgICAgICAgICAgICBbY2xhc3MuYmFkZ2VdPVwibXVsdGlwbGVcIj5cclxuXHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNlbGVjdGVkSXRlbVRleHRcIj57e2l0ZW0udGV4dH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFkaXNhYmxlZFwiIGNsYXNzPVwic2VsZWN0Mi1zZWxlY3Rpb24tcmVtb3ZlXCIgKGNsaWNrKT1cInJlbW92ZUl0ZW0oaXRlbSlcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cImRlbGV0ZUljb25cIiBbY2xhc3NdPVwiZGVsZXRlSWNvblwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwiIWRlbGV0ZUljb25cIiAoY2xpY2spPVwicmVtb3ZlSXRlbShpdGVtKVwiIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0bi1jbG9zZVwiIFtjbGFzcy5idG4tY2xvc2Utd2hpdGVdPVwibXVsdGlwbGVcIiBhcmlhLWxhYmVsPVwiQ2xvc2VcIj48L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPC9saT5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8bGkgY2xhc3M9XCJzZWxlY3QyLWlucHV0XCI+XHJcbiAgICAgICAgICAgIDxpbnB1dCAjdGVybUlucHV0IHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJnZXRQbGFjZWhvbGRlcigpXCJcclxuICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJ0ZXJtXCJcclxuICAgICAgICAgICAgICAgICAgIFtjbGFzcy50cmFuc3BhcmVudF09XCIhbXVsdGlwbGUgJiYgc2VsZWN0ZWRJdGVtcy5sZW5ndGggPiAwICYmICFzZWFyY2hGb2N1c2VkXCJcclxuICAgICAgICAgICAgICAgICAgIChmb2N1cyk9XCJvbkZvY3VzKClcIlxyXG4gICAgICAgICAgICAgICAgICAgKGJsdXIpPVwib25CbHVyKClcIlxyXG4gICAgICAgICAgICAgICAgICAgKGtleXVwKT1cIm9uS2V5VXAoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAoa2V5ZG93bik9XCJvbktleURvd24oJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAoa2V5cHJlc3MpPVwib25LZXlQcmVzcygkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiIWRpc2FibGVkXCIvPlxyXG4gICAgICAgIDwvbGk+XHJcblxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCIhZGlzYWJsZWQgJiYgKG11bHRpcGxlIHx8ICghbXVsdGlwbGUgJiYgc2VsZWN0ZWRJdGVtcy5sZW5ndGggPT09IDApKVwiIGNsYXNzPVwiY2FyZXRcIj5cclxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCIhc2VhcmNoSWNvblwiIGNsYXNzPVwiY2FyZXQtc3ltYm9sXCI+JiM5NjYwOzwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4gW2NsYXNzXT1cInNlYXJjaEljb25cIiAqbmdJZj1cInNlYXJjaEljb24gJiYgbWluaW11bUlucHV0TGVuZ3RoPT09MFwiXHJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJmb2N1c0FuZFNob3dSZXN1bHRzKClcIj48L3NwYW4+XHJcbiAgICAgICAgICAgIDxzcGFuIFtjbGFzc109XCJzZWFyY2hJY29uXCIgKm5nSWY9XCJzZWFyY2hJY29uICYmIG1pbmltdW1JbnB1dExlbmd0aCE9PTBcIj48L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgPC91bD5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwicmVzdWx0cy1jb250YWluZXJcIiAqbmdJZj1cInJlc3VsdHNWaXNpYmxlXCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJyZXN1bHRzLW1zZ1wiICpuZ0lmPVwibGlzdERhdGEgJiYgKGxpc3REYXRhLmxlbmd0aCArIHNlbGVjdGVkSXRlbXMubGVuZ3RoKSA8IHJlc3VsdHNDb3VudFwiPlxyXG4gICAgICAgICAgICB7e2dldENvdW50TWVzc2FnZSgpfX1cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJyZXN1bHRzLW1zZyBuby1yZXN1bHRzLW1zZ1wiICpuZ0lmPVwic2VhcmNoRm9jdXNlZCAmJiBsaXN0RGF0YSAmJiBsaXN0RGF0YS5sZW5ndGggPT09IDBcIj5cclxuICAgICAgICAgICAge3ttZXNzYWdlcyAmJiBtZXNzYWdlcy5ub1Jlc3VsdHNBdmFpbGFibGVNc2cgPyBtZXNzYWdlcy5ub1Jlc3VsdHNBdmFpbGFibGVNc2cgOiBOT19SRVNVTFRTX01TR319XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDxpcS1zZWxlY3QyLXJlc3VsdHMgI3Jlc3VsdHMgW3NlbGVjdGVkSXRlbXNdPVwic2VsZWN0ZWRJdGVtc1wiIFtpdGVtc109XCJsaXN0RGF0YVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaXRlbVNlbGVjdGVkRXZlbnQpPVwib25JdGVtU2VsZWN0ZWQoJGV2ZW50KTtcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RlbXBsYXRlUmVmXT1cInRlbXBsYXRlUmVmXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzZWFyY2hGb2N1c2VkXT1cInNlYXJjaEZvY3VzZWRcIj48L2lxLXNlbGVjdDItcmVzdWx0cz5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
|
|
329
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXEtc2VsZWN0Mi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZzItaXEtc2VsZWN0Mi9zcmMvbGliL2lxLXNlbGVjdDIvaXEtc2VsZWN0Mi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZzItaXEtc2VsZWN0Mi9zcmMvbGliL2lxLXNlbGVjdDIvaXEtc2VsZWN0Mi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFlLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUVwSSxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSxvREFBb0QsQ0FBQztBQUM3RixPQUFPLEVBQXVCLGlCQUFpQixFQUFFLGtCQUFrQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0YsT0FBTyxFQUFhLEVBQUUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNwQyxPQUFPLEVBQUMsWUFBWSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RyxPQUFPLFFBQVEsTUFBTSxZQUFZLENBQUM7Ozs7O0FBRWxDLE1BQU0sbUJBQW1CLEdBQUcsRUFBRSxDQUFDO0FBQy9CLE1BQU0saUJBQWlCLEdBQUcsRUFBRSxDQUFDO0FBQzdCLE1BQU0sY0FBYyxHQUFHLEVBQUUsQ0FBQztBQUMxQixNQUFNLFlBQVksR0FBRyxDQUFDLENBQUM7QUFDdkIsTUFBTSxlQUFlLEdBQUcsQ0FBQyxDQUFDO0FBQzFCLE1BQU0sY0FBYyxHQUFHO0lBQ3JCLE9BQU8sRUFBRSxpQkFBaUI7SUFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxrQkFB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YUFBYTtzQkFBckIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUVHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFFSSxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLFFBQVE7c0JBQWpCLE1BQU07Z0JBRXlCLFNBQVM7c0JBQXhDLFNBQVM7dUJBQUMsV0FBVztnQkFDQSxPQUFPO3NCQUE1QixTQUFTO3VCQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBmb3J3YXJkUmVmLCBJbnB1dCwgT3V0cHV0LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtJcVNlbGVjdDJJdGVtfSBmcm9tICcuL2lxLXNlbGVjdDItaXRlbSc7XHJcbmltcG9ydCB7SXFTZWxlY3QyUmVzdWx0c0NvbXBvbmVudH0gZnJvbSAnLi4vaXEtc2VsZWN0Mi1yZXN1bHRzL2lxLXNlbGVjdDItcmVzdWx0cy5jb21wb25lbnQnO1xyXG5pbXBvcnQge0NvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiwgVW50eXBlZEZvcm1Db250cm9sfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7T2JzZXJ2YWJsZSwgb2Z9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge2RlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgbWFwLCBtZXJnZU1hcCwgc3dpdGNoTWFwLCB0YXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IE1lc3NhZ2VzIGZyb20gXCIuL21lc3NhZ2VzXCI7XHJcblxyXG5jb25zdCBLRVlfQ09ERV9ET1dOX0FSUk9XID0gNDA7XHJcbmNvbnN0IEtFWV9DT0RFX1VQX0FSUk9XID0gMzg7XHJcbmNvbnN0IEtFWV9DT0RFX0VOVEVSID0gMTM7XHJcbmNvbnN0IEtFWV9DT0RFX1RBQiA9IDk7XHJcbmNvbnN0IEtFWV9DT0RFX0RFTEVURSA9IDg7XHJcbmNvbnN0IFZBTFVFX0FDQ0VTU09SID0ge1xyXG4gIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IElxU2VsZWN0MkNvbXBvbmVudCksXHJcbiAgbXVsdGk6IHRydWVcclxufTtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaXEtc2VsZWN0MicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2lxLXNlbGVjdDIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2lxLXNlbGVjdDIuY29tcG9uZW50LmNzcyddLFxyXG4gIHByb3ZpZGVyczogW1ZBTFVFX0FDQ0VTU09SXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgSXFTZWxlY3QyQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xyXG5cclxuICBASW5wdXQoKSBkYXRhU291cmNlUHJvdmlkZXI6ICh0ZXJtOiBzdHJpbmcsIHNlbGVjdGVkPzogYW55W10pID0+IE9ic2VydmFibGU8YW55W10+O1xyXG4gIEBJbnB1dCgpIHNlbGVjdGVkUHJvdmlkZXI6IChpZHM6IHN0cmluZ1tdKSA9PiBPYnNlcnZhYmxlPGFueVtdPjtcclxuICBASW5wdXQoKSBpcVNlbGVjdDJJdGVtQWRhcHRlcjogKGVudGl0eTogYW55KSA9PiBJcVNlbGVjdDJJdGVtO1xyXG5cclxuICBASW5wdXQoKSByZWZlcmVuY2VNb2RlOiAnaWQnIHwgJ2VudGl0eScgPSAnaWQnO1xyXG4gIEBJbnB1dCgpIG11bHRpcGxlID0gZmFsc2U7XHJcbiAgQElucHV0KCkgaW5wdXRDb250YWluZXJDbGFzczogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyID0gJyc7XHJcbiAgQElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcclxuICBASW5wdXQoKSBtYXhSZXN1bHRzOiBudW1iZXI7XHJcbiAgQElucHV0KCkgY2xpZW50TW9kZSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGJhZGdlQ29sb3IgPSAnaW5mbyc7XHJcbiAgQElucHV0KCkgd3JhcFNlbGVjdGVkVGV4dCA9ICdub3dyYXAnXHJcblxyXG4gIEBJbnB1dCgpIGRlYm91bmNlRGVsYXkgPSAyNTBcclxuICBASW5wdXQoKSBkZWJvdW5jZUxlbmd0aCA9IDJcclxuICBASW5wdXQoKSBpY29uQ2FyZXQgPSAnJiM5NjYwOydcclxuICBASW5wdXQoKSBpY29uRGVsZXRlID0gJyYjMjE1OydcclxuICBASW5wdXQoKSBtZXNzYWdlTW9yZVJlc3VsdHM6IHN0cmluZyA9IE1lc3NhZ2VzLk1PUkVfUkVTVUxUUztcclxuICBASW5wdXQoKSBtZXNzYWdlTm9SZXN1bHRzOiBzdHJpbmcgPSBNZXNzYWdlcy5OT19SRVNVTFRTO1xyXG5cclxuICBAT3V0cHV0KCkgb25TZWxlY3Q6IEV2ZW50RW1pdHRlcjxJcVNlbGVjdDJJdGVtPiA9IG5ldyBFdmVudEVtaXR0ZXI8SXFTZWxlY3QySXRlbT4oKTtcclxuICBAT3V0cHV0KCkgb25SZW1vdmU6IEV2ZW50RW1pdHRlcjxJcVNlbGVjdDJJdGVtPiA9IG5ldyBFdmVudEVtaXR0ZXI8SXFTZWxlY3QySXRlbT4oKTtcclxuXHJcbiAgQFZpZXdDaGlsZCgndGVybUlucHV0JykgcHJpdmF0ZSB0ZXJtSW5wdXQ6IEVsZW1lbnRSZWZcclxuICBAVmlld0NoaWxkKCdyZXN1bHRzJykgcmVzdWx0czogSXFTZWxlY3QyUmVzdWx0c0NvbXBvbmVudDtcclxuXHJcbiAgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgdGVybSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woKTtcclxuICByZXN1bHRzVmlzaWJsZSA9IGZhbHNlO1xyXG4gIGxpc3REYXRhOiBJcVNlbGVjdDJJdGVtW10gPSBbXVxyXG4gIGZ1bGxEYXRhTGlzdDogSXFTZWxlY3QySXRlbVtdO1xyXG4gIHNlbGVjdGVkSXRlbXM6IElxU2VsZWN0Mkl0ZW1bXSA9IFtdO1xyXG4gIHNlYXJjaEZvY3VzZWQgPSBmYWxzZTtcclxuICBwcml2YXRlIHBsYWNlaG9sZGVyU2VsZWN0ZWQgPSAnJztcclxuXHJcbiAgb25Ub3VjaGVkQ2FsbGJhY2s6ICgpID0+IHZvaWQgPSAoKSA9PiBmYWxzZVxyXG4gIG9uQ2hhbmdlQ2FsbGJhY2s6IChfOiBhbnkpID0+IHZvaWQgPSAoKSA9PiBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLnN1YnNjcmliZVRvQ2hhbmdlc0FuZExvYWREYXRhRnJvbU9ic2VydmFibGUoKTtcclxuICB9XHJcblxyXG4gIHdyaXRlVmFsdWUoc2VsZWN0ZWRWYWx1ZXM6IGFueSk6IHZvaWQge1xyXG4gICAgaWYgKHNlbGVjdGVkVmFsdWVzKSB7XHJcbiAgICAgIGlmICh0aGlzLnJlZmVyZW5jZU1vZGUgPT09ICdpZCcpIHtcclxuICAgICAgICB0aGlzLnBvcHVsYXRlSXRlbXNGcm9tSWRzKHNlbGVjdGVkVmFsdWVzKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnBvcHVsYXRlSXRlbXNGcm9tRW50aXRpZXMoc2VsZWN0ZWRWYWx1ZXMpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnBsYWNlaG9sZGVyU2VsZWN0ZWQgPSAnJztcclxuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0gW107XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5vblRvdWNoZWRDYWxsYmFjayA9IGZuO1xyXG4gIH1cclxuXHJcbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc3Vic2NyaWJlVG9DaGFuZ2VzQW5kTG9hZERhdGFGcm9tT2JzZXJ2YWJsZSgpIHtcclxuICAgIHRoaXMuc3Vic2NyaWJlVG9SZXN1bHRzKHRoaXMudGVybS52YWx1ZUNoYW5nZXMucGlwZShkZWJvdW5jZVRpbWUodGhpcy5kZWJvdW5jZURlbGF5KSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSkpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzdWJzY3JpYmVUb1Jlc3VsdHMob2JzZXJ2YWJsZTogT2JzZXJ2YWJsZTxzdHJpbmc+KTogdm9pZCB7XHJcbiAgICBvYnNlcnZhYmxlLnBpcGUoXHJcbiAgICAgIHRhcCgoKSA9PiB0aGlzLnJlc3VsdHNWaXNpYmxlID0gZmFsc2UpLFxyXG4gICAgICBmaWx0ZXIoKHRlcm0pID0+IHRlcm0ubGVuZ3RoID49IHRoaXMuZGVib3VuY2VMZW5ndGgpLFxyXG4gICAgICBzd2l0Y2hNYXAodGVybSA9PiB0aGlzLmxvYWREYXRhRnJvbU9ic2VydmFibGUodGVybSkpLFxyXG4gICAgICBtYXAoaXRlbXMgPT4gaXRlbXMuZmlsdGVyKGl0ZW0gPT4gISh0aGlzLm11bHRpcGxlICYmIHRoaXMuYWxyZWFkeVNlbGVjdGVkKGl0ZW0pKSkpLFxyXG4gICAgICB0YXAoKCkgPT4gdGhpcy5yZXN1bHRzVmlzaWJsZSA9IHRoaXMuc2VhcmNoRm9jdXNlZClcclxuICAgICkuc3Vic2NyaWJlKChpdGVtcykgPT4gdGhpcy5saXN0RGF0YSA9IGl0ZW1zKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgbG9hZERhdGFGcm9tT2JzZXJ2YWJsZSh0ZXJtOiBzdHJpbmcpOiBPYnNlcnZhYmxlPElxU2VsZWN0Mkl0ZW1bXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuY2xpZW50TW9kZSA/IHRoaXMuZmV0Y2hBbmRmaWx0ZXJMb2NhbERhdGEodGVybSkgOiB0aGlzLmZldGNoRGF0YSh0ZXJtKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZmV0Y2hBbmRmaWx0ZXJMb2NhbERhdGEodGVybTogc3RyaW5nKTogT2JzZXJ2YWJsZTxJcVNlbGVjdDJJdGVtW10+IHtcclxuICAgIGlmICghdGhpcy5mdWxsRGF0YUxpc3QpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZmV0Y2hEYXRhKCcnKS5waXBlKFxyXG4gICAgICAgIG1lcmdlTWFwKChpdGVtcykgPT4ge1xyXG4gICAgICAgICAgdGhpcy5mdWxsRGF0YUxpc3QgPSBpdGVtcztcclxuICAgICAgICAgIHJldHVybiB0aGlzLmZpbHRlckxvY2FsRGF0YSh0ZXJtKTtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyTG9jYWxEYXRhKHRlcm0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBmaWx0ZXJMb2NhbERhdGEodGVybTogc3RyaW5nKTogT2JzZXJ2YWJsZTxJcVNlbGVjdDJJdGVtW10+IHtcclxuICAgIHJldHVybiBvZih0aGlzLmZ1bGxEYXRhTGlzdC5maWx0ZXIoKGl0ZW0pID0+IHRoaXMuY29udGFpbnNUZXh0KGl0ZW0sIHRlcm0pKSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNvbnRhaW5zVGV4dChpdGVtLCB0ZXJtOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiBpdGVtLnRleHQudG9VcHBlckNhc2UoKS5pbmRleE9mKHRlcm0udG9VcHBlckNhc2UoKSkgIT09IC0xO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBmZXRjaERhdGEodGVybTogc3RyaW5nKTogT2JzZXJ2YWJsZTxJcVNlbGVjdDJJdGVtW10+IHtcclxuICAgIHJldHVybiB0aGlzLmRhdGFTb3VyY2VQcm92aWRlcih0ZXJtLCB0aGlzLmJ1aWxkVmFsdWUoKSkucGlwZShtYXAoKGl0ZW1zOiBhbnlbXSkgPT4gaXRlbXMubWFwKChpdGVtKSA9PiB0aGlzLmlxU2VsZWN0Mkl0ZW1BZGFwdGVyKGl0ZW0pKSkpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBwb3B1bGF0ZUl0ZW1zRnJvbUVudGl0aWVzKHNlbGVjdGVkVmFsdWVzOiBhbnkpIHtcclxuICAgIGlmICh0aGlzLm11bHRpcGxlKSB7XHJcbiAgICAgIHRoaXMuaGFuZGxlTXVsdGlwbGVXaXRoRW50aXRpZXMoc2VsZWN0ZWRWYWx1ZXMpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgaXFTZWxlY3QySXRlbSA9IHRoaXMuaXFTZWxlY3QySXRlbUFkYXB0ZXIoc2VsZWN0ZWRWYWx1ZXMpO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSBbaXFTZWxlY3QySXRlbV07XHJcbiAgICAgIHRoaXMucGxhY2Vob2xkZXJTZWxlY3RlZCA9IGlxU2VsZWN0Mkl0ZW0udGV4dDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgaGFuZGxlTXVsdGlwbGVXaXRoRW50aXRpZXMoc2VsZWN0ZWRWYWx1ZXM6IGFueSkge1xyXG4gICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0gW107XHJcblxyXG4gICAgc2VsZWN0ZWRWYWx1ZXMuZm9yRWFjaCgoZW50aXR5KSA9PiB7XHJcbiAgICAgIGNvbnN0IGl0ZW0gPSB0aGlzLmlxU2VsZWN0Mkl0ZW1BZGFwdGVyKGVudGl0eSk7XHJcbiAgICAgIGNvbnN0IGlkcyA9IHRoaXMuZ2V0U2VsZWN0ZWRJZHMoKTtcclxuXHJcbiAgICAgIGlmIChpZHMuaW5kZXhPZihpdGVtLmlkKSA9PT0gLTEpIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMucHVzaChpdGVtKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHBvcHVsYXRlSXRlbXNGcm9tSWRzKHNlbGVjdGVkVmFsdWVzOiBhbnkpIHtcclxuICAgIGlmICh0aGlzLm11bHRpcGxlKSB7XHJcbiAgICAgIHRoaXMuaGFuZGxlTXVsdGlwbGVXaXRoSWRzKHNlbGVjdGVkVmFsdWVzKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuaGFuZGxlU2luZ2xlV2l0aElkKHNlbGVjdGVkVmFsdWVzKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgaGFuZGxlTXVsdGlwbGVXaXRoSWRzKHNlbGVjdGVkVmFsdWVzOiBhbnkpIHtcclxuICAgIGlmIChzZWxlY3RlZFZhbHVlcyAhPT0gdW5kZWZpbmVkICYmIHRoaXMuc2VsZWN0ZWRQcm92aWRlciAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIGNvbnN0IHVuaXF1ZUlkcyA9IFtdO1xyXG4gICAgICBzZWxlY3RlZFZhbHVlcy5mb3JFYWNoKChpZCkgPT4ge1xyXG4gICAgICAgIGlmICh1bmlxdWVJZHMuaW5kZXhPZihpZCkgPT09IC0xKSB7XHJcbiAgICAgICAgICB1bmlxdWVJZHMucHVzaChpZCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRQcm92aWRlcih1bmlxdWVJZHMpLnN1YnNjcmliZSgoaXRlbXM6IGFueVtdKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0gaXRlbXMubWFwKHRoaXMuaXFTZWxlY3QySXRlbUFkYXB0ZXIpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgaGFuZGxlU2luZ2xlV2l0aElkKGlkOiBhbnkpIHtcclxuICAgIGlmIChpZCAhPT0gdW5kZWZpbmVkICYmIHRoaXMuc2VsZWN0ZWRQcm92aWRlciAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRQcm92aWRlcihbaWRdKS5zdWJzY3JpYmUoKGl0ZW1zOiBhbnlbXSkgPT4ge1xyXG4gICAgICAgIGl0ZW1zLmZvckVhY2goKGl0ZW0pID0+IHtcclxuICAgICAgICAgIGNvbnN0IGlxU2VsZWN0Mkl0ZW0gPSB0aGlzLmlxU2VsZWN0Mkl0ZW1BZGFwdGVyKGl0ZW0pO1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0gW2lxU2VsZWN0Mkl0ZW1dO1xyXG4gICAgICAgICAgdGhpcy5wbGFjZWhvbGRlclNlbGVjdGVkID0gaXFTZWxlY3QySXRlbS50ZXh0O1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgYWxyZWFkeVNlbGVjdGVkKGl0ZW06IElxU2VsZWN0Mkl0ZW0pOiBib29sZWFuIHtcclxuICAgIGxldCByZXN1bHQgPSBmYWxzZTtcclxuXHJcbiAgICB0aGlzLnNlbGVjdGVkSXRlbXMuZm9yRWFjaChzZWxlY3RlZEl0ZW0gPT4ge1xyXG4gICAgICBpZiAoc2VsZWN0ZWRJdGVtLmlkID09PSBpdGVtLmlkKSB7XHJcbiAgICAgICAgcmVzdWx0ID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcblxyXG4gIG9uSXRlbVNlbGVjdGVkKGl0ZW06IElxU2VsZWN0Mkl0ZW0pIHtcclxuICAgIGlmICh0aGlzLm11bHRpcGxlKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcy5wdXNoKGl0ZW0pO1xyXG4gICAgICBjb25zdCBpbmRleCA9IHRoaXMubGlzdERhdGEuaW5kZXhPZihpdGVtLCAwKTtcclxuICAgICAgaWYgKGluZGV4ID4gLTEpIHtcclxuICAgICAgICB0aGlzLmxpc3REYXRhLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcy5sZW5ndGggPSAwO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbXMucHVzaChpdGVtKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLm9uQ2hhbmdlQ2FsbGJhY2sodGhpcy5idWlsZFZhbHVlKCkpO1xyXG4gICAgdGhpcy50ZXJtLnBhdGNoVmFsdWUoJycsIHtlbWl0RXZlbnQ6IGZhbHNlfSk7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuZm9jdXMoKSwgMSk7XHJcbiAgICB0aGlzLnJlc3VsdHNWaXNpYmxlID0gZmFsc2U7XHJcbiAgICB0aGlzLm9uU2VsZWN0LmVtaXQoaXRlbSk7XHJcblxyXG4gICAgaWYgKCF0aGlzLm11bHRpcGxlKSB7XHJcbiAgICAgIHRoaXMucGxhY2Vob2xkZXJTZWxlY3RlZCA9IGl0ZW0udGV4dDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0U2VsZWN0ZWRJZHMoKTogYW55IHtcclxuICAgIGlmICh0aGlzLm11bHRpcGxlKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnNlbGVjdGVkSXRlbXMubWFwKGl0ZW0gPT4gaXRlbS5pZClcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnNlbGVjdGVkSXRlbXMubGVuZ3RoID09PSAwID8gbnVsbCA6IHRoaXMuc2VsZWN0ZWRJdGVtc1swXS5pZDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0RW50aXRpZXMoKTogYW55W10ge1xyXG4gICAgaWYgKHRoaXMubXVsdGlwbGUpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRJdGVtcy5tYXAoaXRlbSA9PiBpdGVtLmVudGl0eSlcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnNlbGVjdGVkSXRlbXMubGVuZ3RoID09PSAwID8gbnVsbCA6IHRoaXMuc2VsZWN0ZWRJdGVtc1swXS5lbnRpdHk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZW1vdmVJdGVtKGl0ZW06IElxU2VsZWN0Mkl0ZW0pIHtcclxuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5zZWxlY3RlZEl0ZW1zLmluZGV4T2YoaXRlbSwgMCk7XHJcblxyXG4gICAgaWYgKGluZGV4ID4gLTEpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrKHRoaXMuYnVpbGRWYWx1ZSgpKTtcclxuICAgIHRoaXMub25SZW1vdmUuZW1pdChpdGVtKTtcclxuXHJcbiAgICBpZiAoIXRoaXMubXVsdGlwbGUpIHtcclxuICAgICAgdGhpcy5wbGFjZWhvbGRlclNlbGVjdGVkID0gJyc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGJ1aWxkVmFsdWUoKSB7XHJcbiAgICByZXR1cm4gJ2lkJyA9PT0gdGhpcy5yZWZlcmVuY2VNb2RlID8gdGhpcy5nZXRTZWxlY3RlZElkcygpIDogdGhpcy5nZXRFbnRpdGllcygpO1xyXG4gIH1cclxuXHJcbiAgb25Gb2N1cygpIHtcclxuICAgIHRoaXMuc2VhcmNoRm9jdXNlZCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBvbkJsdXIoKSB7XHJcbiAgICB0aGlzLnRlcm0ucGF0Y2hWYWx1ZSgnJywge2VtaXRFdmVudDogZmFsc2V9KTtcclxuICAgIHRoaXMuc2VhcmNoRm9jdXNlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5yZXN1bHRzVmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgdGhpcy5vblRvdWNoZWRDYWxsYmFjaygpO1xyXG4gIH1cclxuXHJcbiAgZm9jdXMoKSB7XHJcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcclxuICAgICAgdGhpcy50ZXJtSW5wdXQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xyXG4gICAgICB0aGlzLnJlc3VsdHNWaXNpYmxlID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5zZWFyY2hGb2N1c2VkID0gIXRoaXMuZGlzYWJsZWQ7XHJcbiAgfVxyXG5cclxuICBmb2N1c0FuZFNob3dSZXN1bHRzKCkge1xyXG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XHJcbiAgICAgIHRoaXMudGVybUlucHV0Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcclxuICAgICAgdGhpcy5zdWJzY3JpYmVUb1Jlc3VsdHMob2YoJycpKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnNlYXJjaEZvY3VzZWQgPSAhdGhpcy5kaXNhYmxlZDtcclxuICB9XHJcblxyXG4gIG9uS2V5VXAoZXYpIHtcclxuICAgIGlmICh0aGlzLnJlc3VsdHMpIHtcclxuICAgICAgaWYgKGV2LmtleUNvZGUgPT09IEtFWV9DT0RFX0RPV05fQVJST1cpIHtcclxuICAgICAgICB0aGlzLnJlc3VsdHMuYWN0aXZlTmV4dCgpO1xyXG4gICAgICB9IGVsc2UgaWYgKGV2LmtleUNvZGUgPT09IEtFWV9DT0RFX1VQX0FSUk9XKSB7XHJcbiAgICAgICAgdGhpcy5yZXN1bHRzLmFjdGl2ZVByZXZpb3VzKCk7XHJcbiAgICAgIH0gZWxzZSBpZiAoZXYua2V5Q29kZSA9PT0gS0VZX0NPREVfRU5URVIpIHtcclxuICAgICAgICB0aGlzLnJlc3VsdHMuc2VsZWN0Q3VycmVudEl0ZW0oKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKHRoaXMuZGVib3VuY2VMZW5ndGggPT09IDApIHtcclxuICAgICAgICBpZiAoZXYua2V5Q29kZSA9PT0gS0VZX0NPREVfRU5URVIgfHwgZXYua2V5Q29kZSA9PT0gS0VZX0NPREVfRE9XTl9BUlJPVykge1xyXG4gICAgICAgICAgdGhpcy5mb2N1c0FuZFNob3dSZXN1bHRzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbktleURvd24oZXYpIHtcclxuICAgIGlmIChldi5rZXlDb2RlID09PSBLRVlfQ09ERV9FTlRFUikge1xyXG4gICAgICBldi5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLnJlc3VsdHMpIHtcclxuICAgICAgaWYgKGV2LmtleUNvZGUgPT09IEtFWV9DT0RFX1RBQikge1xyXG4gICAgICAgIHRoaXMucmVzdWx0cy5zZWxlY3RDdXJyZW50SXRlbSgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGV2LmtleUNvZGUgPT09IEtFWV9DT0RFX0RFTEVURSkge1xyXG4gICAgICBjb25zdCB0ZXh0RW50ZXJlZCA9ICF0aGlzLnRlcm0udmFsdWUgfHwgdGhpcy50ZXJtLnZhbHVlLmxlbmd0aCA9PT0gMDtcclxuICAgICAgaWYgKHRleHRFbnRlcmVkICYmIHRoaXMuc2VsZWN0ZWRJdGVtcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgdGhpcy5yZW1vdmVJdGVtKHRoaXMuc2VsZWN0ZWRJdGVtc1t0aGlzLnNlbGVjdGVkSXRlbXMubGVuZ3RoIC0gMV0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRQbGFjZWhvbGRlcigpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRJdGVtcy5sZW5ndGggPiAwID8gdGhpcy5wbGFjZWhvbGRlclNlbGVjdGVkIDogdGhpcy5wbGFjZWhvbGRlcjtcclxuICB9XHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJzZWxlY3QyLWNvbnRhaW5lclwiPlxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwic2VsZWN0Mi1pbm5lci1jb250YWluZXJcIiBbbmdDbGFzc109XCJpbnB1dENvbnRhaW5lckNsYXNzID8gaW5wdXRDb250YWluZXJDbGFzcyA6ICcnXCJcclxuICAgIFtjbGFzcy5zaW1wbGUtc2VsZWN0aW9uXT1cIiFtdWx0aXBsZVwiIFtjbGFzcy5tdWx0aXBsZS1zZWxlY3Rpb25dPVwibXVsdGlwbGVcIlxyXG4gICAgW2NsYXNzLnNlYXJjaC1mb2N1c2VkXT1cInNlYXJjaEZvY3VzZWRcIiBbY2xhc3MucmVhZG9ubHldPVwiZGlzYWJsZWRcIlxyXG4gICAgKGNsaWNrKT1cImZvY3VzQW5kU2hvd1Jlc3VsdHMoKVwiXHJcbiAgPlxyXG4gICAgPHVsIGNsYXNzPVwic2VsZWN0Mi1zZWxlY3Rpb24tY29udGFpbmVyXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhc2VhcmNoRm9jdXNlZCB8fCBtdWx0aXBsZVwiPlxyXG4gICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgaXRlbSBvZiBzZWxlY3RlZEl0ZW1zXCIgY2xhc3M9XCJzZWxlY3QyLXNlbGVjdGVkXCI+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInNlbGVjdDItc2VsZWN0ZWQtaXRlbVwiIFtuZ1N0eWxlXT1cInt3aGl0ZXNwYWNlOiB3cmFwU2VsZWN0ZWRUZXh0fVwiIFt0aXRsZV09XCJpdGVtLnRleHRcIj57e2l0ZW0udGV4dH19PC9zcGFuPlxyXG4gICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cIiFkaXNhYmxlZFwiIGNsYXNzPVwic2VsZWN0Mi1pY29uXCIgYXJpYS1sYWJlbD1cIkNsb3NlXCIgKGNsaWNrKT1cInJlbW92ZUl0ZW0oaXRlbSlcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzZWxlY3QyLXNlbGVjdGlvbi1yZW1vdmVcIiBbaW5uZXJIVE1MXT1cImljb25EZWxldGVcIj48L3NwYW4+XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L2xpPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgIDxsaSBjbGFzcz1cInNlbGVjdDItaW5wdXQtY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGlucHV0ICN0ZXJtSW5wdXQgKm5nSWY9XCIhZGlzYWJsZWRcIiBbZm9ybUNvbnRyb2xdPVwidGVybVwiIHR5cGU9XCJ0ZXh0XCIgW3BsYWNlaG9sZGVyXT1cImdldFBsYWNlaG9sZGVyKClcIlxyXG4gICAgICAgICAgW2NsYXNzLnRyYW5zcGFyZW50XT1cIiFtdWx0aXBsZSAmJiBzZWxlY3RlZEl0ZW1zLmxlbmd0aCA+IDAgJiYgIXNlYXJjaEZvY3VzZWRcIlxyXG4gICAgICAgICAgKGZvY3VzKT1cIm9uRm9jdXMoKVwiIChibHVyKT1cIm9uQmx1cigpXCJcclxuICAgICAgICAgIChrZXl1cCk9XCJvbktleVVwKCRldmVudClcIiAoa2V5ZG93bik9XCJvbktleURvd24oJGV2ZW50KVwiXHJcbiAgICAgICAgLz5cclxuICAgICAgPC9saT5cclxuICAgIDwvdWw+XHJcblxyXG4gICAgPGRpdiAqbmdJZj1cIihtdWx0aXBsZSB8fCAoIW11bHRpcGxlICYmIHNlbGVjdGVkSXRlbXMubGVuZ3RoID09PSAwKSlcIiBjbGFzcz1cInNlbGVjdDItaWNvblwiPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cInNlbGVjdDItc2VsZWN0aW9uLWNhcmV0XCIgW2lubmVySFRNTF09XCJpY29uQ2FyZXRcIj48L3NwYW4+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGlxLXNlbGVjdDItcmVzdWx0cyAqbmdJZj1cIiFkaXNhYmxlZFwiICNyZXN1bHRzIFtyZXN1bHRzVmlzaWJsZV09XCJyZXN1bHRzVmlzaWJsZVwiXHJcbiAgICBbaXRlbXNdPVwibGlzdERhdGFcIiBbc2VsZWN0ZWRJdGVtc109XCJzZWxlY3RlZEl0ZW1zXCIgW21heFJlc3VsdHNdPVwibWF4UmVzdWx0c1wiXHJcbiAgICBbbWVzc2FnZU1vcmVSZXN1bHRzXT1cIm1lc3NhZ2VNb3JlUmVzdWx0c1wiIFttZXNzYWdlTm9SZXN1bHRzXT1cIm1lc3NhZ2VOb1Jlc3VsdHNcIlxyXG4gICAgW3RlbXBsYXRlUmVmXT1cInRlbXBsYXRlUmVmXCIgKG9uSXRlbVNlbGVjdGVkKT1cIm9uSXRlbVNlbGVjdGVkKCRldmVudCk7XCJcclxuICA+XHJcbiAgPC9pcS1zZWxlY3QyLXJlc3VsdHM+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
static { this.
|
|
6
|
-
static { this.TOTAL_COUNT_VAR = '%TOTAL_COUNT%'; }
|
|
1
|
+
export default class Messages {
|
|
2
|
+
static { this.VISIBLE_COUNT_VAR = '%VISIBLE_COUNT%'; }
|
|
3
|
+
static { this.MAX_COUNT_VAR = '%MAX_COUNT%'; }
|
|
4
|
+
static { this.MORE_RESULTS = 'Showing ' + this.VISIBLE_COUNT_VAR + ' of ' + this.MAX_COUNT_VAR + ' results. Refine your search to show more results.'; }
|
|
5
|
+
static { this.NO_RESULTS = 'No results available'; }
|
|
7
6
|
}
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZzItaXEtc2VsZWN0Mi9zcmMvbGliL2lxLXNlbGVjdDIvbWVzc2FnZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE9BQU8sT0FBTyxRQUFRO2FBRVgsc0JBQWlCLEdBQUcsaUJBQWlCLENBQUM7YUFDdEMsa0JBQWEsR0FBRyxhQUFhLENBQUM7YUFFOUIsaUJBQVksR0FBRyxVQUFVLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixHQUFHLE1BQU0sR0FBRyxJQUFJLENBQUMsYUFBYSxHQUFHLG9EQUFvRCxDQUFDO2FBQ3hJLGVBQVUsR0FBRyxzQkFBc0IsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGNsYXNzIE1lc3NhZ2VzIHtcclxuXHJcbiAgc3RhdGljIHJlYWRvbmx5IFZJU0lCTEVfQ09VTlRfVkFSID0gJyVWSVNJQkxFX0NPVU5UJSc7XHJcbiAgc3RhdGljIHJlYWRvbmx5IE1BWF9DT1VOVF9WQVIgPSAnJU1BWF9DT1VOVCUnO1xyXG5cclxuICBzdGF0aWMgcmVhZG9ubHkgTU9SRV9SRVNVTFRTID0gJ1Nob3dpbmcgJyArIHRoaXMuVklTSUJMRV9DT1VOVF9WQVIgKyAnIG9mICcgKyB0aGlzLk1BWF9DT1VOVF9WQVIgKyAnIHJlc3VsdHMuIFJlZmluZSB5b3VyIHNlYXJjaCB0byBzaG93IG1vcmUgcmVzdWx0cy4nO1xyXG4gIHN0YXRpYyByZWFkb25seSBOT19SRVNVTFRTID0gJ05vIHJlc3VsdHMgYXZhaWxhYmxlJ1xyXG5cclxufVxyXG4iXX0=
|