@skyux/lookup 5.1.1 → 5.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/bundles/skyux-lookup-testing.umd.js +8 -8
- package/bundles/skyux-lookup.umd.js +480 -123
- package/documentation.json +1102 -632
- package/esm2015/modules/autocomplete/autocomplete-adapter.service.js +3 -3
- package/esm2015/modules/autocomplete/autocomplete-input.directive.js +3 -3
- package/esm2015/modules/autocomplete/autocomplete-search-async-disabled.pipe.js +19 -0
- package/esm2015/modules/autocomplete/autocomplete.component.js +77 -30
- package/esm2015/modules/autocomplete/autocomplete.module.js +22 -9
- package/esm2015/modules/autocomplete/types/autocomplete-search-async-args.js +2 -0
- package/esm2015/modules/autocomplete/types/autocomplete-search-async-function.js +2 -0
- package/esm2015/modules/autocomplete/types/autocomplete-search-async-result-display-type.js +2 -0
- package/esm2015/modules/autocomplete/types/autocomplete-search-async-result.js +2 -0
- package/esm2015/modules/country-field/country-field.component.js +6 -5
- package/esm2015/modules/country-field/country-field.module.js +4 -4
- package/esm2015/modules/lookup/lookup-adapter.service.js +3 -3
- package/esm2015/modules/lookup/lookup-autocomplete-adapter.js +12 -7
- package/esm2015/modules/lookup/lookup-item-selected.pipe.js +16 -0
- package/esm2015/modules/lookup/lookup-show-more-async-modal.component.js +184 -0
- package/esm2015/modules/lookup/lookup-show-more-modal.component.js +8 -4
- package/esm2015/modules/lookup/lookup.component.js +67 -36
- package/esm2015/modules/lookup/lookup.module.js +25 -9
- package/esm2015/modules/lookup/types/lookup-show-more-native-picker-async-context.js +7 -0
- package/esm2015/modules/lookup/types/lookup-show-more-native-picker-config.js +1 -1
- package/esm2015/modules/search/search-adapter.service.js +3 -3
- package/esm2015/modules/search/search.component.js +8 -8
- package/esm2015/modules/search/search.module.js +4 -4
- package/esm2015/modules/shared/sky-lookup-resources.module.js +8 -5
- package/esm2015/public-api.js +4 -1
- package/esm2015/testing/country-field/country-field-testing.module.js +4 -4
- package/esm2015/testing/search/search-testing.module.js +4 -4
- package/fesm2015/skyux-lookup-testing.js +8 -8
- package/fesm2015/skyux-lookup.js +443 -123
- package/fesm2015/skyux-lookup.js.map +1 -1
- package/modules/autocomplete/autocomplete-search-async-disabled.pipe.d.ts +11 -0
- package/modules/autocomplete/autocomplete.component.d.ts +17 -6
- package/modules/autocomplete/autocomplete.module.d.ts +8 -7
- package/modules/autocomplete/types/autocomplete-search-async-args.d.ts +35 -0
- package/modules/autocomplete/types/autocomplete-search-async-function.d.ts +4 -0
- package/modules/autocomplete/types/autocomplete-search-async-result-display-type.d.ts +1 -0
- package/modules/autocomplete/types/autocomplete-search-async-result.d.ts +25 -0
- package/modules/country-field/country-field.component.d.ts +3 -2
- package/modules/lookup/lookup-autocomplete-adapter.d.ts +6 -4
- package/modules/lookup/lookup-item-selected.pipe.d.ts +7 -0
- package/modules/lookup/lookup-show-more-async-modal.component.d.ts +49 -0
- package/modules/lookup/lookup.component.d.ts +3 -0
- package/modules/lookup/lookup.module.d.ts +17 -15
- package/modules/lookup/types/lookup-show-more-native-picker-async-context.d.ts +17 -0
- package/modules/lookup/types/lookup-show-more-native-picker-config.d.ts +1 -1
- package/modules/search/search.component.d.ts +5 -5
- package/package.json +11 -11
- package/public-api.d.ts +3 -0
|
@@ -10,8 +10,8 @@ import { SkyCountryFieldComponent } from './country-field.component';
|
|
|
10
10
|
import * as i0 from "@angular/core";
|
|
11
11
|
export class SkyCountryFieldModule {
|
|
12
12
|
}
|
|
13
|
-
SkyCountryFieldModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
|
14
|
-
SkyCountryFieldModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.
|
|
13
|
+
SkyCountryFieldModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyCountryFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
14
|
+
SkyCountryFieldModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyCountryFieldModule, declarations: [SkyCountryFieldComponent], imports: [CommonModule,
|
|
15
15
|
FormsModule,
|
|
16
16
|
ReactiveFormsModule,
|
|
17
17
|
SkyAutocompleteModule,
|
|
@@ -19,7 +19,7 @@ SkyCountryFieldModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", v
|
|
|
19
19
|
SkyI18nModule,
|
|
20
20
|
SkyLookupResourcesModule,
|
|
21
21
|
SkyThemeModule], exports: [SkyCountryFieldComponent] });
|
|
22
|
-
SkyCountryFieldModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.
|
|
22
|
+
SkyCountryFieldModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyCountryFieldModule, imports: [[
|
|
23
23
|
CommonModule,
|
|
24
24
|
FormsModule,
|
|
25
25
|
ReactiveFormsModule,
|
|
@@ -29,7 +29,7 @@ SkyCountryFieldModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", v
|
|
|
29
29
|
SkyLookupResourcesModule,
|
|
30
30
|
SkyThemeModule,
|
|
31
31
|
]] });
|
|
32
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
|
32
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyCountryFieldModule, decorators: [{
|
|
33
33
|
type: NgModule,
|
|
34
34
|
args: [{
|
|
35
35
|
declarations: [SkyCountryFieldComponent],
|
|
@@ -13,9 +13,9 @@ export class SkyLookupAdapterService {
|
|
|
13
13
|
}
|
|
14
14
|
}
|
|
15
15
|
}
|
|
16
|
-
SkyLookupAdapterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
|
17
|
-
SkyLookupAdapterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.
|
|
18
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
|
16
|
+
SkyLookupAdapterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyLookupAdapterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
17
|
+
SkyLookupAdapterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyLookupAdapterService });
|
|
18
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyLookupAdapterService, decorators: [{
|
|
19
19
|
type: Injectable
|
|
20
20
|
}] });
|
|
21
21
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9va3VwLWFkYXB0ZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2xvb2t1cC9zcmMvbW9kdWxlcy9sb29rdXAvbG9va3VwLWFkYXB0ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUV2RDs7R0FFRztBQUVILE1BQU0sT0FBTyx1QkFBdUI7SUFDM0IsVUFBVSxDQUFDLEtBQWlCO1FBQ2pDLE1BQU0sT0FBTyxHQUNYLEtBQUssQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFFekQsa0JBQWtCO1FBQ2xCLDBCQUEwQjtRQUMxQixJQUFJLE9BQU8sRUFBRTtZQUNYLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUNqQjtJQUNILENBQUM7O3FIQVZVLHVCQUF1Qjt5SEFBdkIsdUJBQXVCOzRGQUF2Qix1QkFBdUI7a0JBRG5DLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbGVtZW50UmVmLCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTa3lMb29rdXBBZGFwdGVyU2VydmljZSB7XG4gIHB1YmxpYyBmb2N1c0lucHV0KGVsUmVmOiBFbGVtZW50UmVmKTogdm9pZCB7XG4gICAgY29uc3QgaW5wdXRFbDogSFRNTEVsZW1lbnQgPVxuICAgICAgZWxSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuc2t5LWxvb2t1cC1pbnB1dCcpO1xuXG4gICAgLyogU2FuaXR5IGNoZWNrICovXG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAoaW5wdXRFbCkge1xuICAgICAgaW5wdXRFbC5mb2N1cygpO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -1,14 +1,17 @@
|
|
|
1
|
-
import { Directive, Input } from '@angular/core';
|
|
1
|
+
import { Directive, EventEmitter, Input, Output, } from '@angular/core';
|
|
2
2
|
import { skyAutocompleteDefaultSearchFunction } from '../autocomplete/autocomplete-default-search-function';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
/**
|
|
5
5
|
* @internal
|
|
6
6
|
*/
|
|
7
7
|
export class SkyLookupAutocompleteAdapter {
|
|
8
|
+
constructor() {
|
|
9
|
+
this.searchAsync = new EventEmitter();
|
|
10
|
+
}
|
|
8
11
|
/**
|
|
9
12
|
* Specifies an object property to display in the text input after users
|
|
10
13
|
* select an item in the dropdown list.
|
|
11
|
-
* @default name
|
|
14
|
+
* @default "name"
|
|
12
15
|
*/
|
|
13
16
|
set descriptorProperty(value) {
|
|
14
17
|
this._descriptorProperty = value;
|
|
@@ -18,7 +21,7 @@ export class SkyLookupAutocompleteAdapter {
|
|
|
18
21
|
}
|
|
19
22
|
/**
|
|
20
23
|
* Specifies an array of object properties to search.
|
|
21
|
-
* @default [
|
|
24
|
+
* @default ["name"]
|
|
22
25
|
*/
|
|
23
26
|
set propertiesToSearch(value) {
|
|
24
27
|
this._propertiesToSearch = value;
|
|
@@ -43,9 +46,9 @@ export class SkyLookupAutocompleteAdapter {
|
|
|
43
46
|
}));
|
|
44
47
|
}
|
|
45
48
|
}
|
|
46
|
-
SkyLookupAutocompleteAdapter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
|
47
|
-
SkyLookupAutocompleteAdapter.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.
|
|
48
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
|
49
|
+
SkyLookupAutocompleteAdapter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyLookupAutocompleteAdapter, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
50
|
+
SkyLookupAutocompleteAdapter.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.16", type: SkyLookupAutocompleteAdapter, inputs: { debounceTime: "debounceTime", descriptorProperty: "descriptorProperty", propertiesToSearch: "propertiesToSearch", search: "search", searchResultTemplate: "searchResultTemplate", searchTextMinimumCharacters: "searchTextMinimumCharacters", searchFilters: "searchFilters", searchResultsLimit: "searchResultsLimit" }, outputs: { searchAsync: "searchAsync" }, ngImport: i0 });
|
|
51
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyLookupAutocompleteAdapter, decorators: [{
|
|
49
52
|
type: Directive
|
|
50
53
|
}], propDecorators: { debounceTime: [{
|
|
51
54
|
type: Input
|
|
@@ -63,5 +66,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImpo
|
|
|
63
66
|
type: Input
|
|
64
67
|
}], searchResultsLimit: [{
|
|
65
68
|
type: Input
|
|
69
|
+
}], searchAsync: [{
|
|
70
|
+
type: Output
|
|
66
71
|
}] } });
|
|
67
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9va3VwLWF1dG9jb21wbGV0ZS1hZGFwdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbG9va3VwL3NyYy9tb2R1bGVzL2xvb2t1cC9sb29rdXAtYXV0b2NvbXBsZXRlLWFkYXB0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsb0NBQW9DLEVBQUUsTUFBTSxzREFBc0QsQ0FBQzs7QUFPNUc7O0dBRUc7QUFFSCxNQUFNLE9BQU8sNEJBQTRCO0lBRHpDO1FBNkZTLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQWtDLENBQUM7S0FLekU7SUF4RkM7Ozs7T0FJRztJQUNILElBQ1csa0JBQWtCLENBQUMsS0FBYTtRQUN6QyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsS0FBSyxDQUFDO0lBQ25DLENBQUM7SUFFRCxJQUFXLGtCQUFrQjtRQUMzQixPQUFPLElBQUksQ0FBQyxtQkFBbUIsSUFBSSxNQUFNLENBQUM7SUFDNUMsQ0FBQztJQUVEOzs7T0FHRztJQUNILElBQ1csa0JBQWtCLENBQUMsS0FBZTtRQUMzQyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsS0FBSyxDQUFDO0lBQ25DLENBQUM7SUFFRCxJQUFXLGtCQUFrQjtRQUMzQixPQUFPLElBQUksQ0FBQyxtQkFBbUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILElBQ1csTUFBTSxDQUFDLEtBQW9DO1FBQ3BELElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxJQUFXLE1BQU07UUFDZixPQUFPLENBQ0wsSUFBSSxDQUFDLE9BQU87WUFDWixvQ0FBb0MsQ0FBQztnQkFDbkMsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLGtCQUFrQjtnQkFDM0MsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhO2FBQ2xDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQzs7MEhBdkRVLDRCQUE0Qjs4R0FBNUIsNEJBQTRCOzRGQUE1Qiw0QkFBNEI7a0JBRHhDLFNBQVM7OEJBUUQsWUFBWTtzQkFEbEIsS0FBSztnQkFTSyxrQkFBa0I7c0JBRDVCLEtBQUs7Z0JBY0ssa0JBQWtCO3NCQUQ1QixLQUFLO2dCQWdCSyxNQUFNO3NCQURoQixLQUFLO2dCQXFCQyxvQkFBb0I7c0JBRDFCLEtBQUs7Z0JBVUMsMkJBQTJCO3NCQURqQyxLQUFLO2dCQVdDLGFBQWE7c0JBRG5CLEtBQUs7Z0JBUUMsa0JBQWtCO3NCQUR4QixLQUFLO2dCQUlDLFdBQVc7c0JBRGpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEaXJlY3RpdmUsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgVGVtcGxhdGVSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBza3lBdXRvY29tcGxldGVEZWZhdWx0U2VhcmNoRnVuY3Rpb24gfSBmcm9tICcuLi9hdXRvY29tcGxldGUvYXV0b2NvbXBsZXRlLWRlZmF1bHQtc2VhcmNoLWZ1bmN0aW9uJztcbmltcG9ydCB7IFNreUF1dG9jb21wbGV0ZVNlYXJjaEFzeW5jQXJncyB9IGZyb20gJy4uL2F1dG9jb21wbGV0ZS90eXBlcy9hdXRvY29tcGxldGUtc2VhcmNoLWFzeW5jLWFyZ3MnO1xuXG5pbXBvcnQgeyBTa3lBdXRvY29tcGxldGVTZWFyY2hGdW5jdGlvbiB9IGZyb20gJy4uL2F1dG9jb21wbGV0ZS90eXBlcy9hdXRvY29tcGxldGUtc2VhcmNoLWZ1bmN0aW9uJztcblxuaW1wb3J0IHsgU2t5QXV0b2NvbXBsZXRlU2VhcmNoRnVuY3Rpb25GaWx0ZXIgfSBmcm9tICcuLi9hdXRvY29tcGxldGUvdHlwZXMvYXV0b2NvbXBsZXRlLXNlYXJjaC1mdW5jdGlvbi1maWx0ZXInO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBjbGFzcyBTa3lMb29rdXBBdXRvY29tcGxldGVBZGFwdGVyIHtcbiAgLyoqXG4gICAqIFNwZWNpZmllcyBob3cgbWFueSBtaWxsaXNlY29uZHMgdG8gd2FpdCBiZWZvcmUgc2VhcmNoaW5nIHdoaWxlIHVzZXJzXG4gICAqIGVudGVyIHRleHQgaW4gdGhlIGxvb2t1cCBmaWVsZC5cbiAgICogQGRlZmF1bHQgMFxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGRlYm91bmNlVGltZTogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgYW4gb2JqZWN0IHByb3BlcnR5IHRvIGRpc3BsYXkgaW4gdGhlIHRleHQgaW5wdXQgYWZ0ZXIgdXNlcnNcbiAgICogc2VsZWN0IGFuIGl0ZW0gaW4gdGhlIGRyb3Bkb3duIGxpc3QuXG4gICAqIEBkZWZhdWx0IFwibmFtZVwiXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGRlc2NyaXB0b3JQcm9wZXJ0eSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fZGVzY3JpcHRvclByb3BlcnR5ID0gdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGRlc2NyaXB0b3JQcm9wZXJ0eSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9kZXNjcmlwdG9yUHJvcGVydHkgfHwgJ25hbWUnO1xuICB9XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyBhbiBhcnJheSBvZiBvYmplY3QgcHJvcGVydGllcyB0byBzZWFyY2guXG4gICAqIEBkZWZhdWx0IFtcIm5hbWVcIl1cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgcHJvcGVydGllc1RvU2VhcmNoKHZhbHVlOiBzdHJpbmdbXSkge1xuICAgIHRoaXMuX3Byb3BlcnRpZXNUb1NlYXJjaCA9IHZhbHVlO1xuICB9XG5cbiAgcHVibGljIGdldCBwcm9wZXJ0aWVzVG9TZWFyY2goKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLl9wcm9wZXJ0aWVzVG9TZWFyY2ggfHwgWyduYW1lJ107XG4gIH1cblxuICAvKipcbiAgICogU3BlY2lmaWVzIGEgZnVuY3Rpb24gdG8gZHluYW1pY2FsbHkgbWFuYWdlIHRoZSBkYXRhIHNvdXJjZSB3aGVuIHVzZXJzXG4gICAqIGNoYW5nZSB0aGUgdGV4dCBpbiB0aGUgbG9va3VwIGZpZWxkLiBUaGUgc2VhcmNoIGZ1bmN0aW9uIG11c3QgcmV0dXJuXG4gICAqIGFuIGFycmF5IG9yIGEgcHJvbWlzZSBvZiBhbiBhcnJheS4gVGhlIGBzZWFyY2hgIHByb3BlcnR5IGlzIHBhcnRpY3VsYXJseVxuICAgKiB1c2VmdWwgd2hlbiB0aGUgZGF0YSBzb3VyY2UgZG9lcyBub3QgbGl2ZSBpbiB0aGUgc291cmNlIGNvZGUuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHNlYXJjaCh2YWx1ZTogU2t5QXV0b2NvbXBsZXRlU2VhcmNoRnVuY3Rpb24pIHtcbiAgICB0aGlzLl9zZWFyY2ggPSB2YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc2VhcmNoKCk6IFNreUF1dG9jb21wbGV0ZVNlYXJjaEZ1bmN0aW9uIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5fc2VhcmNoIHx8XG4gICAgICBza3lBdXRvY29tcGxldGVEZWZhdWx0U2VhcmNoRnVuY3Rpb24oe1xuICAgICAgICBwcm9wZXJ0aWVzVG9TZWFyY2g6IHRoaXMucHJvcGVydGllc1RvU2VhcmNoLFxuICAgICAgICBzZWFyY2hGaWx0ZXJzOiB0aGlzLnNlYXJjaEZpbHRlcnMsXG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogU3BlY2lmaWVzIGEgdGVtcGxhdGUgdG8gZm9ybWF0IGVhY2ggb3B0aW9uIGluIHRoZSBkcm9wZG93biBsaXN0LiBUaGUgbG9va3VwIGNvbXBvbmVudFxuICAgKiBpbmplY3RzIHZhbHVlcyBpbnRvIHRoZSB0ZW1wbGF0ZSBhcyBgaXRlbWAgdmFyaWFibGVzIHRoYXQgcmVmZXJlbmNlIGFsbCB0aGUgb2JqZWN0XG4gICAqIHByb3BlcnRpZXMgb2YgdGhlIG9wdGlvbnMuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2VhcmNoUmVzdWx0VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgbWluaW11bSBudW1iZXIgb2YgY2hhcmFjdGVycyB0aGF0IHVzZXJzIG11c3QgZW50ZXIgYmVmb3JlXG4gICAqIHRoZSBsb29rdXAgY29tcG9uZW50IHNlYXJjaGVzIHRoZSBkYXRhIHNvdXJjZSBhbmQgZGlzcGxheXMgc2VhcmNoIHJlc3VsdHNcbiAgICogaW4gdGhlIGRyb3Bkb3duIGxpc3QuXG4gICAqIEBkZWZhdWx0IDFcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZWFyY2hUZXh0TWluaW11bUNoYXJhY3RlcnM6IG51bWJlcjtcblxuICAvKipcbiAgICogU3BlY2lmaWVzIGFuIGFycmF5IG9mIGZ1bmN0aW9ucyB0byBjYWxsIGFnYWluc3QgZWFjaCBzZWFyY2ggcmVzdWx0IGluIG9yZGVyXG4gICAqIHRvIGZpbHRlciB0aGUgc2VhcmNoIHJlc3VsdHMgd2hlbiB1c2luZyB0aGUgZGVmYXVsdCBzZWFyY2ggZnVuY3Rpb24uIFdoZW5cbiAgICogdXNpbmcgYSBjdXN0b20gc2VhcmNoIGZ1bmN0aW9uIHZpYSB0aGUgYHNlYXJjaGAgcHJvcGVydHkgZmlsdGVycyBtdXN0IGJlXG4gICAqIGFwcGxpZWQgbWFudWFsbHkgaW5zaWRlIHRoYXQgZnVuY3Rpb24uIFRoZSBmdW5jdGlvbiBtdXN0IHJldHVybiBgdHJ1ZWAgb3JcbiAgICogYGZhbHNlYCBmb3IgZWFjaCByZXN1bHQgdG8gaW5kaWNhdGUgd2hldGhlciB0byBkaXNwbGF5IGl0IGluIHRoZSBkcm9wZG93biBsaXN0LlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNlYXJjaEZpbHRlcnM6IFNreUF1dG9jb21wbGV0ZVNlYXJjaEZ1bmN0aW9uRmlsdGVyW107XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgbWF4aW11bSBudW1iZXIgb2Ygc2VhcmNoIHJlc3VsdHMgdG8gZGlzcGxheSBpbiB0aGUgZHJvcGRvd25cbiAgICogbGlzdC4gQnkgZGVmYXVsdCwgdGhlIGxvb2t1cCBjb21wb25lbnQgZGlzcGxheXMgYWxsIG1hdGNoaW5nIHJlc3VsdHMuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2VhcmNoUmVzdWx0c0xpbWl0OiBudW1iZXI7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBzZWFyY2hBc3luYyA9IG5ldyBFdmVudEVtaXR0ZXI8U2t5QXV0b2NvbXBsZXRlU2VhcmNoQXN5bmNBcmdzPigpO1xuXG4gIHByaXZhdGUgX2Rlc2NyaXB0b3JQcm9wZXJ0eTogc3RyaW5nO1xuICBwcml2YXRlIF9wcm9wZXJ0aWVzVG9TZWFyY2g6IHN0cmluZ1tdO1xuICBwcml2YXRlIF9zZWFyY2g6IFNreUF1dG9jb21wbGV0ZVNlYXJjaEZ1bmN0aW9uO1xufVxuIl19
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Pipe } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class SkyLookupItemSelectedPipe {
|
|
4
|
+
transform(id, selectedIdMap) {
|
|
5
|
+
return selectedIdMap.has(id);
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
SkyLookupItemSelectedPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyLookupItemSelectedPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
9
|
+
SkyLookupItemSelectedPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyLookupItemSelectedPipe, name: "skyLookupItemSelected" });
|
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyLookupItemSelectedPipe, decorators: [{
|
|
11
|
+
type: Pipe,
|
|
12
|
+
args: [{
|
|
13
|
+
name: 'skyLookupItemSelected',
|
|
14
|
+
}]
|
|
15
|
+
}] });
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9va3VwLWl0ZW0tc2VsZWN0ZWQucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2xvb2t1cC9zcmMvbW9kdWxlcy9sb29rdXAvbG9va3VwLWl0ZW0tc2VsZWN0ZWQucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQzs7QUFLcEQsTUFBTSxPQUFPLHlCQUF5QjtJQUM3QixTQUFTLENBQUMsRUFBVyxFQUFFLGFBQW9DO1FBQ2hFLE9BQU8sYUFBYSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMvQixDQUFDOzt1SEFIVSx5QkFBeUI7cUhBQXpCLHlCQUF5Qjs0RkFBekIseUJBQXlCO2tCQUhyQyxJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSx1QkFBdUI7aUJBQzlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AUGlwZSh7XG4gIG5hbWU6ICdza3lMb29rdXBJdGVtU2VsZWN0ZWQnLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lMb29rdXBJdGVtU2VsZWN0ZWRQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHB1YmxpYyB0cmFuc2Zvcm0oaWQ6IHVua25vd24sIHNlbGVjdGVkSWRNYXA6IE1hcDx1bmtub3duLCB1bmtub3duPik6IGJvb2xlYW4ge1xuICAgIHJldHVybiBzZWxlY3RlZElkTWFwLmhhcyhpZCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, } from '@angular/core';
|
|
2
|
+
import { Subject } from 'rxjs';
|
|
3
|
+
import { take } from 'rxjs/operators';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@skyux/modals";
|
|
6
|
+
import * as i2 from "./types/lookup-show-more-native-picker-async-context";
|
|
7
|
+
import * as i3 from "@skyux/indicators";
|
|
8
|
+
import * as i4 from "@skyux/layout";
|
|
9
|
+
import * as i5 from "../search/search.component";
|
|
10
|
+
import * as i6 from "@skyux/forms";
|
|
11
|
+
import * as i7 from "@skyux/lists";
|
|
12
|
+
import * as i8 from "@angular/common";
|
|
13
|
+
import * as i9 from "@skyux/core";
|
|
14
|
+
import * as i10 from "@skyux/theme";
|
|
15
|
+
import * as i11 from "@skyux/i18n";
|
|
16
|
+
import * as i12 from "./lookup-item-selected.pipe";
|
|
17
|
+
/**
|
|
18
|
+
* @internal
|
|
19
|
+
* Internal component to implement the native picker.
|
|
20
|
+
*/
|
|
21
|
+
export class SkyLookupShowMoreAsyncModalComponent {
|
|
22
|
+
constructor(modalInstance, context, changeDetector) {
|
|
23
|
+
this.modalInstance = modalInstance;
|
|
24
|
+
this.context = context;
|
|
25
|
+
this.changeDetector = changeDetector;
|
|
26
|
+
/**
|
|
27
|
+
* @internal
|
|
28
|
+
* Fires when users select the button to add new options to the list.
|
|
29
|
+
*/
|
|
30
|
+
this.addClick = new Subject();
|
|
31
|
+
this.displayedItems = [];
|
|
32
|
+
this.onlyShowSelected = false;
|
|
33
|
+
this.isSearching = false;
|
|
34
|
+
this.hasMoreItems = false;
|
|
35
|
+
this.isLoadingMore = false;
|
|
36
|
+
this.offset = 0;
|
|
37
|
+
this.ngUnsubscribe = new Subject();
|
|
38
|
+
}
|
|
39
|
+
ngOnInit() {
|
|
40
|
+
this.searchText = this.context.initialSearch;
|
|
41
|
+
this.createInitialSelectedItemsMap();
|
|
42
|
+
this.loadSearchResults();
|
|
43
|
+
}
|
|
44
|
+
ngOnDestroy() {
|
|
45
|
+
this.cancelCurrentSearch();
|
|
46
|
+
this.ngUnsubscribe.next();
|
|
47
|
+
this.ngUnsubscribe.complete();
|
|
48
|
+
}
|
|
49
|
+
addButtonClicked() {
|
|
50
|
+
this.addClick.next();
|
|
51
|
+
}
|
|
52
|
+
clearAll() {
|
|
53
|
+
this.selectedIdMap = new Map(this.selectedIdMap);
|
|
54
|
+
// Only deselect items that have been loaded; items that would be loaded
|
|
55
|
+
// after an infinite scroll event should remain selected.
|
|
56
|
+
for (const item of this.items) {
|
|
57
|
+
this.selectedIdMap.delete(item[this.context.idProperty]);
|
|
58
|
+
}
|
|
59
|
+
this.updateDisplayedItems();
|
|
60
|
+
this.changeDetector.markForCheck();
|
|
61
|
+
}
|
|
62
|
+
itemClick(selectedItem) {
|
|
63
|
+
if (this.context.selectMode === 'single') {
|
|
64
|
+
this.onItemSelect(!selectedItem.selected, selectedItem);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
onItemSelect(newSelectState, itemToSelect) {
|
|
68
|
+
const itemId = itemToSelect[this.context.idProperty];
|
|
69
|
+
// Create a new Map so the pipe transform will execute on the next
|
|
70
|
+
// change detection cycle.
|
|
71
|
+
this.selectedIdMap = new Map(this.selectedIdMap);
|
|
72
|
+
if (this.context.selectMode === 'single') {
|
|
73
|
+
if (newSelectState) {
|
|
74
|
+
this.selectedIdMap.clear();
|
|
75
|
+
this.selectedIdMap.set(itemId, itemToSelect);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
if (newSelectState) {
|
|
80
|
+
this.selectedIdMap.set(itemId, itemToSelect);
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
this.selectedIdMap.delete(itemId);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
this.updateDisplayedItems();
|
|
87
|
+
}
|
|
88
|
+
searchApplied(searchText) {
|
|
89
|
+
this.offset = 0;
|
|
90
|
+
this.searchText = searchText;
|
|
91
|
+
this.loadSearchResults();
|
|
92
|
+
}
|
|
93
|
+
selectAll() {
|
|
94
|
+
this.selectedIdMap = new Map();
|
|
95
|
+
for (const item of this.items) {
|
|
96
|
+
this.selectedIdMap.set(item[this.context.idProperty], item);
|
|
97
|
+
}
|
|
98
|
+
this.updateDisplayedItems();
|
|
99
|
+
}
|
|
100
|
+
infiniteScrollEnd() {
|
|
101
|
+
this.cancelCurrentSearch();
|
|
102
|
+
/* Sanity check - else case would only happen if this was called directly */
|
|
103
|
+
/* istanbul ignore else */
|
|
104
|
+
if (this.hasMoreItems) {
|
|
105
|
+
this.isLoadingMore = true;
|
|
106
|
+
this.performSearch((result) => {
|
|
107
|
+
this.items = this.items.concat(result.items);
|
|
108
|
+
this.updateDisplayedItems();
|
|
109
|
+
this.isLoadingMore = false;
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
save() {
|
|
114
|
+
const selectedItems = Array.from(this.selectedIdMap.values(), (itemData, index) => ({
|
|
115
|
+
index,
|
|
116
|
+
itemData,
|
|
117
|
+
})).sort((a, b) => {
|
|
118
|
+
return this.items.indexOf(a.itemData) < this.items.indexOf(b.itemData)
|
|
119
|
+
? -1
|
|
120
|
+
: 1;
|
|
121
|
+
});
|
|
122
|
+
this.modalInstance.save(selectedItems);
|
|
123
|
+
}
|
|
124
|
+
loadSearchResults() {
|
|
125
|
+
this.cancelCurrentSearch();
|
|
126
|
+
this.isSearching = true;
|
|
127
|
+
this.performSearch((result) => {
|
|
128
|
+
this.isSearching = false;
|
|
129
|
+
this.items = result.items;
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
createInitialSelectedItemsMap() {
|
|
133
|
+
this.selectedIdMap = new Map(this.context.initialValue.map((item) => [
|
|
134
|
+
item[this.context.idProperty],
|
|
135
|
+
item,
|
|
136
|
+
]));
|
|
137
|
+
}
|
|
138
|
+
performSearch(processResults) {
|
|
139
|
+
this.currentSearchSub = this.context
|
|
140
|
+
.searchAsync({
|
|
141
|
+
displayType: 'modal',
|
|
142
|
+
offset: this.offset,
|
|
143
|
+
searchText: this.searchText || '',
|
|
144
|
+
continuationData: this.continuationData,
|
|
145
|
+
})
|
|
146
|
+
.pipe(take(1))
|
|
147
|
+
.subscribe((result) => {
|
|
148
|
+
processResults(result);
|
|
149
|
+
this.continuationData = result.continuationData;
|
|
150
|
+
this.hasMoreItems = result.hasMore;
|
|
151
|
+
this.offset = this.items.length;
|
|
152
|
+
this.updateDisplayedItems();
|
|
153
|
+
this.changeDetector.markForCheck();
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
updateDisplayedItems() {
|
|
157
|
+
if (this.onlyShowSelected) {
|
|
158
|
+
this.displayedItems = this.items.filter((item) => this.selectedIdMap.has(item[this.context.idProperty]));
|
|
159
|
+
}
|
|
160
|
+
else {
|
|
161
|
+
this.displayedItems = this.items;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
cancelCurrentSearch() {
|
|
165
|
+
if (this.currentSearchSub) {
|
|
166
|
+
this.currentSearchSub.unsubscribe();
|
|
167
|
+
this.currentSearchSub = undefined;
|
|
168
|
+
this.isLoadingMore = false;
|
|
169
|
+
this.isSearching = false;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
SkyLookupShowMoreAsyncModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyLookupShowMoreAsyncModalComponent, deps: [{ token: i1.SkyModalInstance }, { token: i2.SkyLookupShowMoreNativePickerAsyncContext }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
174
|
+
SkyLookupShowMoreAsyncModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: SkyLookupShowMoreAsyncModalComponent, selector: "sky-lookup-show-more-async-modal", ngImport: i0, template: "<sky-modal>\n <sky-modal-header>\n <ng-container *ngIf=\"context.userConfig?.title; else defaultTitle\">\n {{ context.userConfig.title }}\n </ng-container>\n </sky-modal-header>\n <sky-modal-content>\n <sky-wait [isWaiting]=\"isSearching\"></sky-wait>\n <div\n [skyViewkeeper]=\"[\n '.sky-lookup-show-more-modal-toolbar',\n '.sky-lookup-show-more-modal-muiltiselect-toolbar'\n ]\"\n >\n <sky-toolbar class=\"sky-lookup-show-more-modal-toolbar\">\n <sky-toolbar-section>\n <sky-toolbar-item>\n <sky-search\n [debounceTime]=\"250\"\n [searchText]=\"searchText\"\n (searchApply)=\"searchApplied($event)\"\n >\n </sky-search>\n </sky-toolbar-item>\n <sky-toolbar-view-actions>\n <button\n *ngIf=\"context.showAddButton\"\n type=\"button\"\n class=\"sky-btn sky-btn-link sky-lookup-show-more-modal-add\"\n (click)=\"addButtonClicked()\"\n >\n <sky-icon\n *skyThemeIf=\"'modern'\"\n icon=\"add\"\n iconType=\"skyux\"\n ></sky-icon>\n <sky-icon *skyThemeIf=\"'default'\" icon=\"plus-circle\"></sky-icon>\n {{ 'skyux_lookup_show_more_add' | skyLibResources }}\n </button>\n </sky-toolbar-view-actions>\n </sky-toolbar-section>\n </sky-toolbar>\n <sky-toolbar\n *ngIf=\"context.selectMode === 'multiple'\"\n class=\"sky-lookup-show-more-modal-muiltiselect-toolbar\"\n >\n <sky-toolbar-section>\n <sky-toolbar-item>\n <button\n class=\"\n sky-btn sky-btn-link sky-lookup-show-more-modal-select-all-btn\n \"\n type=\"button\"\n (click)=\"selectAll()\"\n >\n {{\n 'skyux_lookup_show_more_select_all_button_title'\n | skyLibResources\n }}\n </button>\n </sky-toolbar-item>\n <sky-toolbar-item>\n <button\n class=\"\n sky-btn sky-btn-link sky-lookup-show-more-modal-clear-all-btn\n \"\n type=\"button\"\n (click)=\"clearAll()\"\n >\n {{\n 'skyux_lookup_show_more_clear_all_button_title'\n | skyLibResources\n }}\n </button>\n </sky-toolbar-item>\n <sky-toolbar-view-actions>\n <sky-checkbox\n [(checked)]=\"onlyShowSelected\"\n (change)=\"updateDisplayedItems()\"\n >\n <sky-checkbox-label>\n {{\n 'skyux_lookup_show_more_show_selected_option_title'\n | skyLibResources\n }}\n </sky-checkbox-label>\n </sky-checkbox>\n </sky-toolbar-view-actions>\n </sky-toolbar-section>\n </sky-toolbar>\n </div>\n <div\n *ngIf=\"!isSearching && displayedItems.length === 0\"\n class=\"sky-font-deemphasized sky-lookup-show-more-no-results\"\n >\n {{ 'skyux_lookup_show_more_no_results' | skyLibResources }}\n </div>\n <sky-repeater class=\"sky-lookup-show-more-repeater\" expandMode=\"none\">\n <sky-repeater-item\n *ngFor=\"let item of displayedItems\"\n [isSelected]=\"\n item[context.idProperty] | skyLookupItemSelected: selectedIdMap\n \"\n [selectable]=\"context.selectMode === 'multiple'\"\n (click)=\"itemClick(item)\"\n (keyup.enter)=\"itemClick(item)\"\n (isSelectedChange)=\"onItemSelect($event, item)\"\n >\n <sky-repeater-item-content>\n <ng-container\n *ngTemplateOutlet=\"\n context.userConfig?.itemTemplate\n ? context.userConfig?.itemTemplate\n : defaultItemTemplate;\n context: { item: item }\n \"\n >\n </ng-container>\n </sky-repeater-item-content>\n </sky-repeater-item>\n </sky-repeater>\n <sky-infinite-scroll\n [enabled]=\"hasMoreItems\"\n [loading]=\"isLoadingMore\"\n (scrollEnd)=\"infiniteScrollEnd()\"\n >\n </sky-infinite-scroll>\n </sky-modal-content>\n <sky-modal-footer>\n <button\n class=\"\n sky-btn\n sky-btn-primary\n sky-margin-inline-compact\n sky-lookup-show-more-modal-save\n \"\n type=\"button\"\n [disabled]=\"isSearching\"\n (click)=\"save()\"\n >\n {{ 'skyux_lookup_show_more_select' | skyLibResources }}\n </button>\n <button\n class=\"sky-btn sky-btn-link sky-lookup-show-more-modal-close\"\n type=\"button\"\n (click)=\"modalInstance.close()\"\n >\n {{ 'skyux_lookup_show_more_cancel' | skyLibResources }}\n </button>\n </sky-modal-footer>\n</sky-modal>\n\n<ng-template let-item=\"item\" #defaultItemTemplate>\n {{ item[context.descriptorProperty] }}\n</ng-template>\n\n<ng-template #defaultTitle>\n <ng-container *ngIf=\"context.selectMode === 'single'\">\n {{ 'skyux_lookup_show_more_modal_title_single' | skyLibResources }}\n </ng-container>\n <ng-container *ngIf=\"context.selectMode === 'multiple'\">\n {{ 'skyux_lookup_show_more_modal_title_multiple' | skyLibResources }}\n </ng-container>\n</ng-template>\n", styles: [".sky-lookup-show-more-no-results{padding:20px 0}:host-context(.sky-theme-modern) .sky-lookup-show-more-no-results{padding:30px 0}.sky-theme-modern .sky-lookup-show-more-no-results{padding:30px 0}\n"], components: [{ type: i1.λ5, selector: "sky-modal", inputs: ["ariaRole", "tiledBody"] }, { type: i1.λ4, selector: "sky-modal-header" }, { type: i1.λ2, selector: "sky-modal-content" }, { type: i3.λ14, selector: "sky-wait", inputs: ["ariaLabel", "isWaiting", "isFullPage", "isNonBlocking"] }, { type: i4.λ37, selector: "sky-toolbar" }, { type: i4.λ38, selector: "sky-toolbar-section" }, { type: i4.λ39, selector: "sky-toolbar-item" }, { type: i5.SkySearchComponent, selector: "sky-search", inputs: ["searchText", "expandMode", "debounceTime", "disabled", "placeholderText"], outputs: ["searchApply", "searchChange", "searchClear"] }, { type: i4.λ40, selector: "sky-toolbar-view-actions" }, { type: i3.λ4, selector: "sky-icon", inputs: ["icon", "iconType", "size", "fixedWidth", "variant"] }, { type: i6.λ3, selector: "sky-checkbox", inputs: ["label", "labelledBy", "id", "disabled", "tabindex", "name", "icon", "checkboxType", "checked", "required"], outputs: ["change", "checkedChange", "disabledChange"] }, { type: i6.λ4, selector: "sky-checkbox-label" }, { type: i7.λ11, selector: "sky-repeater", inputs: ["activeIndex", "ariaLabel", "reorderable", "expandMode"], outputs: ["activeIndexChange", "orderChange"] }, { type: i7.λ10, selector: "sky-repeater-item", inputs: ["itemName", "inlineFormConfig", "inlineFormTemplate", "isExpanded", "isSelected", "reorderable", "selectable", "showInlineForm", "tag"], outputs: ["collapse", "expand", "inlineFormClose", "isSelectedChange"] }, { type: i7.λ8, selector: "sky-repeater-item-content" }, { type: i7.λ6, selector: "sky-infinite-scroll", inputs: ["enabled", "loading"], outputs: ["scrollEnd"] }, { type: i1.λ3, selector: "sky-modal-footer" }], directives: [{ type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i9.λ3, selector: "[skyViewkeeper]", inputs: ["skyViewkeeper"] }, { type: i10.λ3, selector: "[skyThemeIf]", inputs: ["skyThemeIf"] }, { type: i8.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i8.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], pipes: { "skyLibResources": i11.SkyLibResourcesPipe, "skyLookupItemSelected": i12.SkyLookupItemSelectedPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
175
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyLookupShowMoreAsyncModalComponent, decorators: [{
|
|
176
|
+
type: Component,
|
|
177
|
+
args: [{
|
|
178
|
+
selector: 'sky-lookup-show-more-async-modal',
|
|
179
|
+
templateUrl: './lookup-show-more-async-modal.component.html',
|
|
180
|
+
styleUrls: ['./lookup-show-more-async-modal.component.scss'],
|
|
181
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
182
|
+
}]
|
|
183
|
+
}], ctorParameters: function () { return [{ type: i1.SkyModalInstance }, { type: i2.SkyLookupShowMoreNativePickerAsyncContext }, { type: i0.ChangeDetectorRef }]; } });
|
|
184
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9va3VwLXNob3ctbW9yZS1hc3luYy1tb2RhbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9sb29rdXAvc3JjL21vZHVsZXMvbG9va3VwL2xvb2t1cC1zaG93LW1vcmUtYXN5bmMtbW9kYWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbG9va3VwL3NyYy9tb2R1bGVzL2xvb2t1cC9sb29rdXAtc2hvdy1tb3JlLWFzeW5jLW1vZGFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxHQUdWLE1BQU0sZUFBZSxDQUFDO0FBS3ZCLE9BQU8sRUFBRSxPQUFPLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFJdEM7OztHQUdHO0FBT0gsTUFBTSxPQUFPLG9DQUFvQztJQXNCL0MsWUFDUyxhQUErQixFQUMvQixPQUFrRCxFQUNqRCxjQUFpQztRQUZsQyxrQkFBYSxHQUFiLGFBQWEsQ0FBa0I7UUFDL0IsWUFBTyxHQUFQLE9BQU8sQ0FBMkM7UUFDakQsbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBeEIzQzs7O1dBR0c7UUFDSSxhQUFRLEdBQWtCLElBQUksT0FBTyxFQUFFLENBQUM7UUFJeEMsbUJBQWMsR0FBYyxFQUFFLENBQUM7UUFDL0IscUJBQWdCLEdBQVksS0FBSyxDQUFDO1FBRWxDLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBSXJCLFdBQU0sR0FBVyxDQUFDLENBQUM7UUFDbkIsa0JBQWEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0lBT3pDLENBQUM7SUFFRyxRQUFRO1FBQ2IsSUFBSSxDQUFD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QyxDQUFDO0lBQ1AsQ0FBQztJQUVPLG9CQUFvQjtRQUMxQixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUN6QixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FDL0MsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FDdEQsQ0FBQztTQUNIO2FBQU07WUFDTCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7U0FDbEM7SUFDSCxDQUFDO0lBRU8sbUJBQW1CO1FBQ3pCLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3pCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNwQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsU0FBUyxDQUFDO1lBQ2xDLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO1lBQzNCLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1NBQzFCO0lBQ0gsQ0FBQzs7a0lBek1VLG9DQUFvQztzSEFBcEMsb0NBQW9DLHdFQzFCakQsNjRLQW9LQTs0RkQxSWEsb0NBQW9DO2tCQU5oRCxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxrQ0FBa0M7b0JBQzVDLFdBQVcsRUFBRSwrQ0FBK0M7b0JBQzVELFNBQVMsRUFBRSxDQUFDLCtDQUErQyxDQUFDO29CQUM1RCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDaEQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2t5QXV0b2NvbXBsZXRlU2VhcmNoQXN5bmNSZXN1bHQgfSBmcm9tICcuLi9hdXRvY29tcGxldGUvdHlwZXMvYXV0b2NvbXBsZXRlLXNlYXJjaC1hc3luYy1yZXN1bHQnO1xuXG5pbXBvcnQgeyBTa3lNb2RhbEluc3RhbmNlIH0gZnJvbSAnQHNreXV4L21vZGFscyc7XG5cbmltcG9ydCB7IFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgU2t5TG9va3VwU2hvd01vcmVOYXRpdmVQaWNrZXJBc3luY0NvbnRleHQgfSBmcm9tICcuL3R5cGVzL2xvb2t1cC1zaG93LW1vcmUtbmF0aXZlLXBpY2tlci1hc3luYy1jb250ZXh0JztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqIEludGVybmFsIGNvbXBvbmVudCB0byBpbXBsZW1lbnQgdGhlIG5hdGl2ZSBwaWNrZXIuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1sb29rdXAtc2hvdy1tb3JlLWFzeW5jLW1vZGFsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2xvb2t1cC1zaG93LW1vcmUtYXN5bmMtbW9kYWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9sb29rdXAtc2hvdy1tb3JlLWFzeW5jLW1vZGFsLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lMb29rdXBTaG93TW9yZUFzeW5jTW9kYWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICogRmlyZXMgd2hlbiB1c2VycyBzZWxlY3QgdGhlIGJ1dHRvbiB0byBhZGQgbmV3IG9wdGlvbnMgdG8gdGhlIGxpc3QuXG4gICAqL1xuICBwdWJsaWMgYWRkQ2xpY2s6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xuXG4gIHB1YmxpYyBpdGVtczogdW5rbm93bltdO1xuXG4gIHB1YmxpYyBkaXNwbGF5ZWRJdGVtczogdW5rbm93bltdID0gW107XG4gIHB1YmxpYyBvbmx5U2hvd1NlbGVjdGVkOiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyBzZWFyY2hUZXh0OiBzdHJpbmc7XG4gIHB1YmxpYyBpc1NlYXJjaGluZyA9IGZhbHNlO1xuICBwdWJsaWMgaGFzTW9yZUl0ZW1zID0gZmFsc2U7XG4gIHB1YmxpYyBpc0xvYWRpbmdNb3JlID0gZmFsc2U7XG4gIHB1YmxpYyBzZWxlY3RlZElkTWFwOiBNYXA8dW5rbm93biwgdW5rbm93bj47XG5cbiAgcHJpdmF0ZSBjb250aW51YXRpb25EYXRhOiB1bmtub3duO1xuICBwcml2YXRlIG9mZnNldDogbnVtYmVyID0gMDtcbiAgcHJpdmF0ZSBuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHJpdmF0ZSBjdXJyZW50U2VhcmNoU3ViOiBTdWJzY3JpcHRpb24gfCB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIG1vZGFsSW5zdGFuY2U6IFNreU1vZGFsSW5zdGFuY2UsXG4gICAgcHVibGljIGNvbnRleHQ6IFNreUxvb2t1cFNob3dNb3JlTmF0aXZlUGlja2VyQXN5bmNDb250ZXh0LFxuICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmXG4gICkge31cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zZWFyY2hUZXh0ID0gdGhpcy5jb250ZXh0LmluaXRpYWxTZWFyY2g7XG5cbiAgICB0aGlzLmNyZWF0ZUluaXRpYWxTZWxlY3RlZEl0ZW1zTWFwKCk7XG4gICAgdGhpcy5sb2FkU2VhcmNoUmVzdWx0cygpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuY2FuY2VsQ3VycmVudFNlYXJjaCgpO1xuXG4gICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLm5nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRCdXR0b25DbGlja2VkKCk6IHZvaWQge1xuICAgIHRoaXMuYWRkQ2xpY2submV4dCgpO1xuICB9XG5cbiAgcHVibGljIGNsZWFyQWxsKCk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRJZE1hcCA9IG5ldyBNYXAodGhpcy5zZWxlY3RlZElkTWFwKTtcblxuICAgIC8vIE9ubHkgZGVzZWxlY3QgaXRlbXMgdGhhdCBoYXZlIGJlZW4gbG9hZGVkOyBpdGVtcyB0aGF0IHdvdWxkIGJlIGxvYWRlZFxuICAgIC8vIGFmdGVyIGFuIGluZmluaXRlIHNjcm9sbCBldmVudCBzaG91bGQgcmVtYWluIHNlbGVjdGVkLlxuICAgIGZvciAoY29uc3QgaXRlbSBvZiB0aGlzLml0ZW1zKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkSWRNYXAuZGVsZXRlKGl0ZW1bdGhpcy5jb250ZXh0LmlkUHJvcGVydHldKTtcbiAgICB9XG5cbiAgICB0aGlzLnVwZGF0ZURpc3BsYXllZEl0ZW1zKCk7XG5cbiAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHVibGljIGl0ZW1DbGljayhzZWxlY3RlZEl0ZW06IGFueSk6IHZvaWQge1xuICAgIGlmICh0aGlzLmNvbnRleHQuc2VsZWN0TW9kZSA9PT0gJ3NpbmdsZScpIHtcbiAgICAgIHRoaXMub25JdGVtU2VsZWN0KCFzZWxlY3RlZEl0ZW0uc2VsZWN0ZWQsIHNlbGVjdGVkSXRlbSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uSXRlbVNlbGVjdChuZXdTZWxlY3RTdGF0ZTogYm9vbGVhbiwgaXRlbVRvU2VsZWN0OiBhbnkpOiB2b2lkIHtcbiAgICBjb25zdCBpdGVtSWQgPSBpdGVtVG9TZWxlY3RbdGhpcy5jb250ZXh0LmlkUHJvcGVydHldO1xuXG4gICAgLy8gQ3JlYXRlIGEgbmV3IE1hcCBzbyB0aGUgcGlwZSB0cmFuc2Zvcm0gd2lsbCBleGVjdXRlIG9uIHRoZSBuZXh0XG4gICAgLy8gY2hhbmdlIGRldGVjdGlvbiBjeWNsZS5cbiAgICB0aGlzLnNlbGVjdGVkSWRNYXAgPSBuZXcgTWFwKHRoaXMuc2VsZWN0ZWRJZE1hcCk7XG5cbiAgICBpZiAodGhpcy5jb250ZXh0LnNlbGVjdE1vZGUgPT09ICdzaW5nbGUnKSB7XG4gICAgICBpZiAobmV3U2VsZWN0U3RhdGUpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZElkTWFwLmNsZWFyKCk7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJZE1hcC5zZXQoaXRlbUlkLCBpdGVtVG9TZWxlY3QpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAobmV3U2VsZWN0U3RhdGUpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZElkTWFwLnNldChpdGVtSWQsIGl0ZW1Ub1NlbGVjdCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNlbGVjdGVkSWRNYXAuZGVsZXRlKGl0ZW1JZCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy51cGRhdGVEaXNwbGF5ZWRJdGVtcygpO1xuICB9XG5cbiAgcHVibGljIHNlYXJjaEFwcGxpZWQoc2VhcmNoVGV4dDogc3RyaW5nKSB7XG4gICAgdGhpcy5vZmZzZXQgPSAwO1xuICAgIHRoaXMuc2VhcmNoVGV4dCA9IHNlYXJjaFRleHQ7XG5cbiAgICB0aGlzLmxvYWRTZWFyY2hSZXN1bHRzKCk7XG4gIH1cblxuICBwdWJsaWMgc2VsZWN0QWxsKCk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRJZE1hcCA9IG5ldyBNYXAoKTtcblxuICAgIGZvciAoY29uc3QgaXRlbSBvZiB0aGlzLml0ZW1zKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkSWRNYXAuc2V0KGl0ZW1bdGhpcy5jb250ZXh0LmlkUHJvcGVydHldLCBpdGVtKTtcbiAgICB9XG5cbiAgICB0aGlzLnVwZGF0ZURpc3BsYXllZEl0ZW1zKCk7XG4gIH1cblxuICBwdWJsaWMgaW5maW5pdGVTY3JvbGxFbmQoKTogdm9pZCB7XG4gICAgdGhpcy5jYW5jZWxDdXJyZW50U2VhcmNoKCk7XG5cbiAgICAvKiBTYW5pdHkgY2hlY2sgLSBlbHNlIGNhc2Ugd291bGQgb25seSBoYXBwZW4gaWYgdGhpcyB3YXMgY2FsbGVkIGRpcmVjdGx5ICovXG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAodGhpcy5oYXNNb3JlSXRlbXMpIHtcbiAgICAgIHRoaXMuaXNMb2FkaW5nTW9yZSA9IHRydWU7XG5cbiAgICAgIHRoaXMucGVyZm9ybVNlYXJjaCgocmVzdWx0KSA9PiB7XG4gICAgICAgIHRoaXMuaXRlbXMgPSB0aGlzLml0ZW1zLmNvbmNhdChyZXN1bHQuaXRlbXMpO1xuXG4gICAgICAgIHRoaXMudXBkYXRlRGlzcGxheWVkSXRlbXMoKTtcblxuICAgICAgICB0aGlzLmlzTG9hZGluZ01vcmUgPSBmYWxzZTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzYXZlKCk6IHZvaWQge1xuICAgIGNvbnN0IHNlbGVjdGVkSXRlbXMgPSBBcnJheS5mcm9tKFxuICAgICAgdGhpcy5zZWxlY3RlZElkTWFwLnZhbHVlcygpLFxuICAgICAgKGl0ZW1EYXRhLCBpbmRleCkgPT4gKHtcbiAgICAgICAgaW5kZXgsXG4gICAgICAgIGl0ZW1EYXRhLFxuICAgICAgfSlcbiAgICApLnNvcnQoKGEsIGIpID0+IHtcbiAgICAgIHJldHVybiB0aGlzLml0ZW1zLmluZGV4T2YoYS5pdGVtRGF0YSkgPCB0aGlzLml0ZW1zLmluZGV4T2YoYi5pdGVtRGF0YSlcbiAgICAgICAgPyAtMVxuICAgICAgICA6IDE7XG4gICAgfSk7XG5cbiAgICB0aGlzLm1vZGFsSW5zdGFuY2Uuc2F2ZShzZWxlY3RlZEl0ZW1zKTtcbiAgfVxuXG4gIHByaXZhdGUgbG9hZFNlYXJjaFJlc3VsdHMoKTogdm9pZCB7XG4gICAgdGhpcy5jYW5jZWxDdXJyZW50U2VhcmNoKCk7XG5cbiAgICB0aGlzLmlzU2VhcmNoaW5nID0gdHJ1ZTtcblxuICAgIHRoaXMucGVyZm9ybVNlYXJjaCgocmVzdWx0KSA9PiB7XG4gICAgICB0aGlzLmlzU2VhcmNoaW5nID0gZmFsc2U7XG4gICAgICB0aGlzLml0ZW1zID0gcmVzdWx0Lml0ZW1zO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVJbml0aWFsU2VsZWN0ZWRJdGVtc01hcCgpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkSWRNYXAgPSBuZXcgTWFwKFxuICAgICAgdGhpcy5jb250ZXh0LmluaXRpYWxWYWx1ZS5tYXAoKGl0ZW0pID0+IFtcbiAgICAgICAgaXRlbVt0aGlzLmNvbnRleHQuaWRQcm9wZXJ0eV0sXG4gICAgICAgIGl0ZW0sXG4gICAgICBdKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIHBlcmZvcm1TZWFyY2goXG4gICAgcHJvY2Vzc1Jlc3VsdHM6IChyZXN1bHQ6IFNreUF1dG9jb21wbGV0ZVNlYXJjaEFzeW5jUmVzdWx0KSA9PiB2b2lkXG4gICk6IHZvaWQge1xuICAgIHRoaXMuY3VycmVudFNlYXJjaFN1YiA9IHRoaXMuY29udGV4dFxuICAgICAgLnNlYXJjaEFzeW5jKHtcbiAgICAgICAgZGlzcGxheVR5cGU6ICdtb2RhbCcsXG4gICAgICAgIG9mZnNldDogdGhpcy5vZmZzZXQsXG4gICAgICAgIHNlYXJjaFRleHQ6IHRoaXMuc2VhcmNoVGV4dCB8fCAnJyxcbiAgICAgICAgY29udGludWF0aW9uRGF0YTogdGhpcy5jb250aW51YXRpb25EYXRhLFxuICAgICAgfSlcbiAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcbiAgICAgICAgcHJvY2Vzc1Jlc3VsdHMocmVzdWx0KTtcblxuICAgICAgICB0aGlzLmNvbnRpbnVhdGlvbkRhdGEgPSByZXN1bHQuY29udGludWF0aW9uRGF0YTtcbiAgICAgICAgdGhpcy5oYXNNb3JlSXRlbXMgPSByZXN1bHQuaGFzTW9yZTtcbiAgICAgICAgdGhpcy5vZmZzZXQgPSB0aGlzLml0ZW1zLmxlbmd0aDtcblxuICAgICAgICB0aGlzLnVwZGF0ZURpc3BsYXllZEl0ZW1zKCk7XG5cbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVEaXNwbGF5ZWRJdGVtcygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5vbmx5U2hvd1NlbGVjdGVkKSB7XG4gICAgICB0aGlzLmRpc3BsYXllZEl0ZW1zID0gdGhpcy5pdGVtcy5maWx0ZXIoKGl0ZW0pID0+XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJZE1hcC5oYXMoaXRlbVt0aGlzLmNvbnRleHQuaWRQcm9wZXJ0eV0pXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRpc3BsYXllZEl0ZW1zID0gdGhpcy5pdGVtcztcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNhbmNlbEN1cnJlbnRTZWFyY2goKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY3VycmVudFNlYXJjaFN1Yikge1xuICAgICAgdGhpcy5jdXJyZW50U2VhcmNoU3ViLnVuc3Vic2NyaWJlKCk7XG4gICAgICB0aGlzLmN1cnJlbnRTZWFyY2hTdWIgPSB1bmRlZmluZWQ7XG4gICAgICB0aGlzLmlzTG9hZGluZ01vcmUgPSBmYWxzZTtcbiAgICAgIHRoaXMuaXNTZWFyY2hpbmcgPSBmYWxzZTtcbiAgICB9XG4gIH1cbn1cbiIsIjxza3ktbW9kYWw+XG4gIDxza3ktbW9kYWwtaGVhZGVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb250ZXh0LnVzZXJDb25maWc/LnRpdGxlOyBlbHNlIGRlZmF1bHRUaXRsZVwiPlxuICAgICAge3sgY29udGV4dC51c2VyQ29uZmlnLnRpdGxlIH19XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvc2t5LW1vZGFsLWhlYWRlcj5cbiAgPHNreS1tb2RhbC1jb250ZW50PlxuICAgIDxza3ktd2FpdCBbaXNXYWl0aW5nXT1cImlzU2VhcmNoaW5nXCI+PC9za3ktd2FpdD5cbiAgICA8ZGl2XG4gICAgICBbc2t5Vmlld2tlZXBlcl09XCJbXG4gICAgICAgICcuc2t5LWxvb2t1cC1zaG93LW1vcmUtbW9kYWwtdG9vbGJhcicsXG4gICAgICAgICcuc2t5LWxvb2t1cC1zaG93LW1vcmUtbW9kYWwtbXVpbHRpc2VsZWN0LXRvb2xiYXInXG4gICAgICBdXCJcbiAgICA+XG4gICAgICA8c2t5LXRvb2xiYXIgY2xhc3M9XCJza3ktbG9va3VwLXNob3ctbW9yZS1tb2RhbC10b29sYmFyXCI+XG4gICAgICAgIDxza3ktdG9vbGJhci1zZWN0aW9uPlxuICAgICAgICAgIDxza3ktdG9vbGJhci1pdGVtPlxuICAgICAgICAgICAgPHNreS1zZWFyY2hcbiAgICAgICAgICAgICAgW2RlYm91bmNlVGltZV09XCIyNTBcIlxuICAgICAgICAgICAgICBbc2VhcmNoVGV4dF09XCJzZWFyY2hUZXh0XCJcbiAgICAgICAgICAgICAgKHNlYXJjaEFwcGx5KT1cInNlYXJjaEFwcGxpZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8L3NreS1zZWFyY2g+XG4gICAgICAgICAgPC9za3ktdG9vbGJhci1pdGVtPlxuICAgICAgICAgIDxza3ktdG9vbGJhci12aWV3LWFjdGlvbnM+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICpuZ0lmPVwiY29udGV4dC5zaG93QWRkQnV0dG9uXCJcbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgIGNsYXNzPVwic2t5LWJ0biBza3ktYnRuLWxpbmsgc2t5LWxvb2t1cC1zaG93LW1vcmUtbW9kYWwtYWRkXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImFkZEJ1dHRvbkNsaWNrZWQoKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxza3ktaWNvblxuICAgICAgICAgICAgICAgICpza3lUaGVtZUlmPVwiJ21vZGVybidcIlxuICAgICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICAgIGljb25UeXBlPVwic2t5dXhcIlxuICAgICAgICAgICAgICA+PC9za3ktaWNvbj5cbiAgICAgICAgICAgICAgPHNreS1pY29uICpza3lUaGVtZUlmPVwiJ2RlZmF1bHQnXCIgaWNvbj1cInBsdXMtY2lyY2xlXCI+PC9za3ktaWNvbj5cbiAgICAgICAgICAgICAge3sgJ3NreXV4X2xvb2t1cF9zaG93X21vcmVfYWRkJyB8IHNreUxpYlJlc291cmNlcyB9fVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC9za3ktdG9vbGJhci12aWV3LWFjdGlvbnM+XG4gICAgICAgIDwvc2t5LXRvb2xiYXItc2VjdGlvbj5cbiAgICAgIDwvc2t5LXRvb2xiYXI+XG4gICAgICA8c2t5LXRvb2xiYXJcbiAgICAgICAgKm5nSWY9XCJjb250ZXh0LnNlbGVjdE1vZGUgPT09ICdtdWx0aXBsZSdcIlxuICAgICAgICBjbGFzcz1cInNreS1sb29rdXAtc2hvdy1tb3JlLW1vZGFsLW11aWx0aXNlbGVjdC10b29sYmFyXCJcbiAgICAgID5cbiAgICAgICAgPHNreS10b29sYmFyLXNlY3Rpb24+XG4gICAgICAgICAgPHNreS10b29sYmFyLWl0ZW0+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIGNsYXNzPVwiXG4gICAgICAgICAgICAgICAgc2t5LWJ0biBza3ktYnRuLWxpbmsgc2t5LWxvb2t1cC1zaG93LW1vcmUtbW9kYWwtc2VsZWN0LWFsbC1idG5cbiAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RBbGwoKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgJ3NreXV4X2xvb2t1cF9zaG93X21vcmVfc2VsZWN0X2FsbF9idXR0b25fdGl0bGUnXG4gICAgICAgICAgICAgICAgICB8IHNreUxpYlJlc291cmNlc1xuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC9za3ktdG9vbGJhci1pdGVtPlxuICAgICAgICAgIDxza3ktdG9vbGJhci1pdGVtPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICBjbGFzcz1cIlxuICAgICAgICAgICAgICAgIHNreS1idG4gc2t5LWJ0bi1saW5rIHNreS1sb29rdXAtc2hvdy1tb3JlLW1vZGFsLWNsZWFyLWFsbC1idG5cbiAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJjbGVhckFsbCgpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAnc2t5dXhfbG9va3VwX3Nob3dfbW9yZV9jbGVhcl9hbGxfYnV0dG9uX3RpdGxlJ1xuICAgICAgICAgICAgICAgICAgfCBza3lMaWJSZXNvdXJjZXNcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvc2t5LXRvb2xiYXItaXRlbT5cbiAgICAgICAgICA8c2t5LXRvb2xiYXItdmlldy1hY3Rpb25zPlxuICAgICAgICAgICAgPHNreS1jaGVja2JveFxuICAgICAgICAgICAgICBbKGNoZWNrZWQpXT1cIm9ubHlTaG93U2VsZWN0ZWRcIlxuICAgICAgICAgICAgICAoY2hhbmdlKT1cInVwZGF0ZURpc3BsYXllZEl0ZW1zKClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8c2t5LWNoZWNrYm94LWxhYmVsPlxuICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAnc2t5dXhfbG9va3VwX3Nob3dfbW9yZV9zaG93X3NlbGVjdGVkX29wdGlvbl90aXRsZSdcbiAgICAgICAgICAgICAgICAgICAgfCBza3lMaWJSZXNvdXJjZXNcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICA8L3NreS1jaGVja2JveC1sYWJlbD5cbiAgICAgICAgICAgIDwvc2t5LWNoZWNrYm94PlxuICAgICAgICAgIDwvc2t5LXRvb2xiYXItdmlldy1hY3Rpb25zPlxuICAgICAgICA8L3NreS10b29sYmFyLXNlY3Rpb24+XG4gICAgICA8L3NreS10b29sYmFyPlxuICAgIDwvZGl2PlxuICAgIDxkaXZcbiAgICAgICpuZ0lmPVwiIWlzU2VhcmNoaW5nICYmIGRpc3BsYXllZEl0ZW1zLmxlbmd0aCA9PT0gMFwiXG4gICAgICBjbGFzcz1cInNreS1mb250LWRlZW1waGFzaXplZCBza3ktbG9va3VwLXNob3ctbW9yZS1uby1yZXN1bHRzXCJcbiAgICA+XG4gICAgICB7eyAnc2t5dXhfbG9va3VwX3Nob3dfbW9yZV9ub19yZXN1bHRzJyB8IHNreUxpYlJlc291cmNlcyB9fVxuICAgIDwvZGl2PlxuICAgIDxza3ktcmVwZWF0ZXIgY2xhc3M9XCJza3ktbG9va3VwLXNob3ctbW9yZS1yZXBlYXRlclwiIGV4cGFuZE1vZGU9XCJub25lXCI+XG4gICAgICA8c2t5LXJlcGVhdGVyLWl0ZW1cbiAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZGlzcGxheWVkSXRlbXNcIlxuICAgICAgICBbaXNTZWxlY3RlZF09XCJcbiAgICAgICAgICBpdGVtW2NvbnRleHQuaWRQcm9wZXJ0eV0gfCBza3lMb29rdXBJdGVtU2VsZWN0ZWQ6IHNlbGVjdGVkSWRNYXBcbiAgICAgICAgXCJcbiAgICAgICAgW3NlbGVjdGFibGVdPVwiY29udGV4dC5zZWxlY3RNb2RlID09PSAnbXVsdGlwbGUnXCJcbiAgICAgICAgKGNsaWNrKT1cIml0ZW1DbGljayhpdGVtKVwiXG4gICAgICAgIChrZXl1cC5lbnRlcik9XCJpdGVtQ2xpY2soaXRlbSlcIlxuICAgICAgICAoaXNTZWxlY3RlZENoYW5nZSk9XCJvbkl0ZW1TZWxlY3QoJGV2ZW50LCBpdGVtKVwiXG4gICAgICA+XG4gICAgICAgIDxza3ktcmVwZWF0ZXItaXRlbS1jb250ZW50PlxuICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgIGNvbnRleHQudXNlckNvbmZpZz8uaXRlbVRlbXBsYXRlXG4gICAgICAgICAgICAgICAgPyBjb250ZXh0LnVzZXJDb25maWc/Lml0ZW1UZW1wbGF0ZVxuICAgICAgICAgICAgICAgIDogZGVmYXVsdEl0ZW1UZW1wbGF0ZTtcbiAgICAgICAgICAgICAgY29udGV4dDogeyBpdGVtOiBpdGVtIH1cbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L3NreS1yZXBlYXRlci1pdGVtLWNvbnRlbnQ+XG4gICAgICA8L3NreS1yZXBlYXRlci1pdGVtPlxuICAgIDwvc2t5LXJlcGVhdGVyPlxuICAgIDxza3ktaW5maW5pdGUtc2Nyb2xsXG4gICAgICBbZW5hYmxlZF09XCJoYXNNb3JlSXRlbXNcIlxuICAgICAgW2xvYWRpbmddPVwiaXNMb2FkaW5nTW9yZVwiXG4gICAgICAoc2Nyb2xsRW5kKT1cImluZmluaXRlU2Nyb2xsRW5kKClcIlxuICAgID5cbiAgICA8L3NreS1pbmZpbml0ZS1zY3JvbGw+XG4gIDwvc2t5LW1vZGFsLWNvbnRlbnQ+XG4gIDxza3ktbW9kYWwtZm9vdGVyPlxuICAgIDxidXR0b25cbiAgICAgIGNsYXNzPVwiXG4gICAgICAgIHNreS1idG5cbiAgICAgICAgc2t5LWJ0bi1wcmltYXJ5XG4gICAgICAgIHNreS1tYXJnaW4taW5saW5lLWNvbXBhY3RcbiAgICAgICAgc2t5LWxvb2t1cC1zaG93LW1vcmUtbW9kYWwtc2F2ZVxuICAgICAgXCJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgW2Rpc2FibGVkXT1cImlzU2VhcmNoaW5nXCJcbiAgICAgIChjbGljayk9XCJzYXZlKClcIlxuICAgID5cbiAgICAgIHt7ICdza3l1eF9sb29rdXBfc2hvd19tb3JlX3NlbGVjdCcgfCBza3lMaWJSZXNvdXJjZXMgfX1cbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uXG4gICAgICBjbGFzcz1cInNreS1idG4gc2t5LWJ0bi1saW5rIHNreS1sb29rdXAtc2hvdy1tb3JlLW1vZGFsLWNsb3NlXCJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgKGNsaWNrKT1cIm1vZGFsSW5zdGFuY2UuY2xvc2UoKVwiXG4gICAgPlxuICAgICAge3sgJ3NreXV4X2xvb2t1cF9zaG93X21vcmVfY2FuY2VsJyB8IHNreUxpYlJlc291cmNlcyB9fVxuICAgIDwvYnV0dG9uPlxuICA8L3NreS1tb2RhbC1mb290ZXI+XG48L3NreS1tb2RhbD5cblxuPG5nLXRlbXBsYXRlIGxldC1pdGVtPVwiaXRlbVwiICNkZWZhdWx0SXRlbVRlbXBsYXRlPlxuICB7eyBpdGVtW2NvbnRleHQuZGVzY3JpcHRvclByb3BlcnR5XSB9fVxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNkZWZhdWx0VGl0bGU+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb250ZXh0LnNlbGVjdE1vZGUgPT09ICdzaW5nbGUnXCI+XG4gICAge3sgJ3NreXV4X2xvb2t1cF9zaG93X21vcmVfbW9kYWxfdGl0bGVfc2luZ2xlJyB8IHNreUxpYlJlc291cmNlcyB9fVxuICA8L25nLWNvbnRhaW5lcj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbnRleHQuc2VsZWN0TW9kZSA9PT0gJ211bHRpcGxlJ1wiPlxuICAgIHt7ICdza3l1eF9sb29rdXBfc2hvd19tb3JlX21vZGFsX3RpdGxlX211bHRpcGxlJyB8IHNreUxpYlJlc291cmNlcyB9fVxuICA8L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
@@ -238,15 +238,19 @@ export class SkyLookupShowMoreModalComponent {
|
|
|
238
238
|
this.changeDetector.markForCheck();
|
|
239
239
|
}
|
|
240
240
|
}
|
|
241
|
-
SkyLookupShowMoreModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
|
242
|
-
SkyLookupShowMoreModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.
|
|
243
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
|
241
|
+
SkyLookupShowMoreModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyLookupShowMoreModalComponent, deps: [{ token: i1.SkyModalInstance }, { token: i2.SkyLookupShowMoreNativePickerContext }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
242
|
+
SkyLookupShowMoreModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: SkyLookupShowMoreModalComponent, selector: "skyux-lookup-show-more-modal", ngImport: i0, template: "<sky-modal>\n <sky-modal-header>\n <ng-container *ngIf=\"context.userConfig?.title; else defaultTitle\">\n {{ context.userConfig.title }}\n </ng-container>\n </sky-modal-header>\n <sky-modal-content>\n <div\n [skyViewkeeper]=\"[\n '.sky-lookup-show-more-modal-toolbar',\n '.sky-lookup-show-more-modal-muiltiselect-toolbar'\n ]\"\n >\n <sky-toolbar class=\"sky-lookup-show-more-modal-toolbar\">\n <sky-toolbar-section>\n <sky-toolbar-item>\n <sky-search\n [debounceTime]=\"250\"\n [searchText]=\"searchText\"\n (searchApply)=\"searchApplied($event)\"\n >\n </sky-search>\n </sky-toolbar-item>\n <sky-toolbar-view-actions>\n <button\n *ngIf=\"context.showAddButton\"\n type=\"button\"\n class=\"sky-btn sky-btn-link sky-lookup-show-more-modal-add\"\n (click)=\"addButtonClicked()\"\n >\n <sky-icon\n *skyThemeIf=\"'modern'\"\n icon=\"add\"\n iconType=\"skyux\"\n ></sky-icon>\n <sky-icon *skyThemeIf=\"'default'\" icon=\"plus-circle\"></sky-icon>\n {{ 'skyux_lookup_show_more_add' | skyLibResources }}\n </button>\n </sky-toolbar-view-actions>\n </sky-toolbar-section>\n </sky-toolbar>\n <sky-toolbar\n *ngIf=\"context.selectMode === 'multiple'\"\n class=\"sky-lookup-show-more-modal-muiltiselect-toolbar\"\n >\n <sky-toolbar-section>\n <sky-toolbar-item>\n <button\n class=\"\n sky-btn sky-btn-link sky-lookup-show-more-modal-select-all-btn\n \"\n type=\"button\"\n (click)=\"selectAll()\"\n >\n {{\n 'skyux_lookup_show_more_select_all_button_title'\n | skyLibResources\n }}\n </button>\n </sky-toolbar-item>\n <sky-toolbar-item>\n <button\n class=\"\n sky-btn sky-btn-link sky-lookup-show-more-modal-clear-all-btn\n \"\n type=\"button\"\n (click)=\"clearAll()\"\n >\n {{\n 'skyux_lookup_show_more_clear_all_button_title'\n | skyLibResources\n }}\n </button>\n </sky-toolbar-item>\n <sky-toolbar-view-actions>\n <sky-checkbox\n [(checked)]=\"onlyShowSelected\"\n (change)=\"updateDataState()\"\n >\n <sky-checkbox-label>\n {{\n 'skyux_lookup_show_more_show_selected_option_title'\n | skyLibResources\n }}\n </sky-checkbox-label>\n </sky-checkbox>\n </sky-toolbar-view-actions>\n </sky-toolbar-section>\n </sky-toolbar>\n </div>\n <div\n *ngIf=\"displayedItems.length === 0\"\n class=\"sky-font-deemphasized sky-lookup-show-more-no-results\"\n >\n {{ 'skyux_lookup_show_more_no_results' | skyLibResources }}\n </div>\n <sky-repeater class=\"sky-lookup-show-more-repeater\" expandMode=\"none\">\n <sky-repeater-item\n *ngFor=\"let item of displayedItems\"\n [selectable]=\"context.selectMode === 'multiple'\"\n [(isSelected)]=\"item.selected\"\n (click)=\"itemClick(item)\"\n (keyup.enter)=\"itemClick(item)\"\n (isSelectedChange)=\"onItemSelect($event, item)\"\n >\n <sky-repeater-item-content>\n <ng-container\n *ngTemplateOutlet=\"\n context.userConfig?.itemTemplate\n ? context.userConfig?.itemTemplate\n : defaultItemTemplate;\n context: { item: item.value }\n \"\n >\n </ng-container>\n </sky-repeater-item-content>\n </sky-repeater-item>\n </sky-repeater>\n <sky-infinite-scroll [enabled]=\"itemsHaveMore\" (scrollEnd)=\"addItems()\">\n </sky-infinite-scroll>\n </sky-modal-content>\n <sky-modal-footer>\n <button\n class=\"\n sky-btn\n sky-btn-primary\n sky-margin-inline-compact\n sky-lookup-show-more-modal-save\n \"\n type=\"button\"\n (click)=\"modalInstance.save(selectedItems)\"\n >\n {{ 'skyux_lookup_show_more_select' | skyLibResources }}\n </button>\n <button\n class=\"sky-btn sky-btn-link sky-lookup-show-more-modal-close\"\n type=\"button\"\n (click)=\"modalInstance.close()\"\n >\n {{ 'skyux_lookup_show_more_cancel' | skyLibResources }}\n </button>\n </sky-modal-footer>\n</sky-modal>\n\n<ng-template let-item=\"item\" #defaultItemTemplate>\n {{ item[context.descriptorProperty] }}\n</ng-template>\n\n<ng-template #defaultTitle>\n <ng-container *ngIf=\"context.selectMode === 'single'\">\n {{ 'skyux_lookup_show_more_modal_title_single' | skyLibResources }}\n </ng-container>\n <ng-container *ngIf=\"context.selectMode === 'multiple'\">\n {{ 'skyux_lookup_show_more_modal_title_multiple' | skyLibResources }}\n </ng-container>\n</ng-template>\n", styles: [".sky-lookup-show-more-no-results{padding:20px 0}:host-context(.sky-theme-modern) .sky-lookup-show-more-no-results{padding:30px 0}.sky-theme-modern .sky-lookup-show-more-no-results{padding:30px 0}\n"], components: [{ type: i1.λ5, selector: "sky-modal", inputs: ["ariaRole", "tiledBody"] }, { type: i1.λ4, selector: "sky-modal-header" }, { type: i1.λ2, selector: "sky-modal-content" }, { type: i3.λ37, selector: "sky-toolbar" }, { type: i3.λ38, selector: "sky-toolbar-section" }, { type: i3.λ39, selector: "sky-toolbar-item" }, { type: i4.SkySearchComponent, selector: "sky-search", inputs: ["searchText", "expandMode", "debounceTime", "disabled", "placeholderText"], outputs: ["searchApply", "searchChange", "searchClear"] }, { type: i3.λ40, selector: "sky-toolbar-view-actions" }, { type: i5.λ4, selector: "sky-icon", inputs: ["icon", "iconType", "size", "fixedWidth", "variant"] }, { type: i6.λ3, selector: "sky-checkbox", inputs: ["label", "labelledBy", "id", "disabled", "tabindex", "name", "icon", "checkboxType", "checked", "required"], outputs: ["change", "checkedChange", "disabledChange"] }, { type: i6.λ4, selector: "sky-checkbox-label" }, { type: i7.λ11, selector: "sky-repeater", inputs: ["activeIndex", "ariaLabel", "reorderable", "expandMode"], outputs: ["activeIndexChange", "orderChange"] }, { type: i7.λ10, selector: "sky-repeater-item", inputs: ["itemName", "inlineFormConfig", "inlineFormTemplate", "isExpanded", "isSelected", "reorderable", "selectable", "showInlineForm", "tag"], outputs: ["collapse", "expand", "inlineFormClose", "isSelectedChange"] }, { type: i7.λ8, selector: "sky-repeater-item-content" }, { type: i7.λ6, selector: "sky-infinite-scroll", inputs: ["enabled", "loading"], outputs: ["scrollEnd"] }, { type: i1.λ3, selector: "sky-modal-footer" }], directives: [{ type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i9.λ3, selector: "[skyViewkeeper]", inputs: ["skyViewkeeper"] }, { type: i10.λ3, selector: "[skyThemeIf]", inputs: ["skyThemeIf"] }, { type: i8.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i8.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], pipes: { "skyLibResources": i11.SkyLibResourcesPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
243
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyLookupShowMoreModalComponent, decorators: [{
|
|
244
244
|
type: Component,
|
|
245
245
|
args: [{
|
|
246
|
+
// Suppress this error rather than fix the selector since consumers with unit tests
|
|
247
|
+
// may be looking for an element with this selector. We can change it in the next major
|
|
248
|
+
// version of SKY UX.
|
|
249
|
+
// eslint-disable-next-line @angular-eslint/component-selector
|
|
246
250
|
selector: 'skyux-lookup-show-more-modal',
|
|
247
251
|
templateUrl: './lookup-show-more-modal.component.html',
|
|
248
252
|
styleUrls: ['./lookup-show-more-modal.component.scss'],
|
|
249
253
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
250
254
|
}]
|
|
251
255
|
}], ctorParameters: function () { return [{ type: i1.SkyModalInstance }, { type: i2.SkyLookupShowMoreNativePickerContext }, { type: i0.ChangeDetectorRef }]; } });
|
|
252
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9va3VwLXNob3ctbW9yZS1tb2RhbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9sb29rdXAvc3JjL21vZHVsZXMvbG9va3VwL2xvb2t1cC1zaG93LW1vcmUtbW9kYWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbG9va3VwL3NyYy9tb2R1bGVzL2xvb2t1cC9sb29rdXAtc2hvdy1tb3JlLW1vZGFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFFdkIsU0FBUyxHQUVWLE1BQU0sZUFBZSxDQUFDO0FBSXZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7Ozs7Ozs7QUFJL0I7OztHQUdHO0FBT0gsTUFBTSxPQUFPLCtCQUErQjtJQXFDMUMsWUFDUyxhQUErQixFQUMvQixPQUE2QyxFQUM1QyxjQUFpQztRQUZsQyxrQkFBYSxHQUFiLGFBQWEsQ0FBa0I7UUFDL0IsWUFBTyxHQUFQLE9BQU8sQ0FBc0M7UUFDNUMsbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBckMzQzs7O1dBR0c7UUFDSSxhQUFRLEdBQWtCLElBQUksT0FBTyxFQUFFLENBQUM7UUFJeEMsc0JBQWlCLEdBQUc7WUFDekIsV0FBVyxFQUFFO2dCQUNYO29CQUNFLEVBQUUsRUFBRSxJQUFJO29CQUNSLEtBQUssRUFBRSxzQkFBc0I7b0JBQzdCLFVBQVUsRUFBRSxLQUFLO29CQUNqQixZQUFZLEVBQUUsTUFBTTtpQkFDckI7Z0JBQ0Q7b0JBQ0UsRUFBRSxFQUFFLElBQUk7b0JBQ1IsS0FBSyxFQUFFLHNCQUFzQjtvQkFDN0IsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFlBQVksRUFBRSxNQUFNO2lCQUNyQjthQUNGO1NBQ0YsQ0FBQztRQUVLLG1CQUFjLEdBQVUsRUFBRSxDQUFDO1FBQzNCLGtCQUFhLEdBQVksS0FB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QztRQUNyQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxjQUFjLENBQUMsSUFBVztRQUMvQixJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDMUIsSUFBSSxDQUFDLEtBQUssR0FBRyxTQUFTLENBQUM7UUFDdkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxZQUFZLEVBQUUsRUFBRTtZQUMxQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFTLEVBQUUsS0FBYSxFQUFFLEVBQUU7Z0JBQ3RELElBQUksWUFBWSxDQUFDLFFBQVEsS0FBSyxJQUFJLEVBQUU7b0JBQ2xDLFlBQVksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO2lCQUM1QjtZQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFaEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNyQyxDQUFDOzs2SEE3UlUsK0JBQStCO2lIQUEvQiwrQkFBK0Isb0VDeEI1QywycktBNEpBOzRGRHBJYSwrQkFBK0I7a0JBTjNDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDhCQUE4QjtvQkFDeEMsV0FBVyxFQUFFLHlDQUF5QztvQkFDdEQsU0FBUyxFQUFFLENBQUMseUNBQXlDLENBQUM7b0JBQ3RELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNoRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBPbkRlc3Ryb3ksXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTa3lNb2RhbEluc3RhbmNlIH0gZnJvbSAnQHNreXV4L21vZGFscyc7XG5cbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgU2t5TG9va3VwU2hvd01vcmVOYXRpdmVQaWNrZXJDb250ZXh0IH0gZnJvbSAnLi90eXBlcy9sb29rdXAtc2hvdy1tb3JlLW5hdGl2ZS1waWNrZXItY29udGV4dCc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKiBJbnRlcm5hbCBjb21wb25lbnQgdG8gaW1wbGVtZW50IHRoZSBuYXRpdmUgcGlja2VyLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3l1eC1sb29rdXAtc2hvdy1tb3JlLW1vZGFsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2xvb2t1cC1zaG93LW1vcmUtbW9kYWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9sb29rdXAtc2hvdy1tb3JlLW1vZGFsLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lMb29rdXBTaG93TW9yZU1vZGFsQ29tcG9uZW50XG4gIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95XG57XG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICogRmlyZXMgd2hlbiB1c2VycyBzZWxlY3QgdGhlIGJ1dHRvbiB0byBhZGQgbmV3IG9wdGlvbnMgdG8gdGhlIGxpc3QuXG4gICAqL1xuICBwdWJsaWMgYWRkQ2xpY2s6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xuXG4gIHB1YmxpYyBpdGVtczogYW55W107XG5cbiAgcHVibGljIGRhdGFNYW5hZ2VyQ29uZmlnID0ge1xuICAgIHNvcnRPcHRpb25zOiBbXG4gICAgICB7XG4gICAgICAgIGlkOiAnYXonLFxuICAgICAgICBsYWJlbDogJ0FscGhhYmV0aWNhbCAoQSAtIFopJyxcbiAgICAgICAgZGVzY2VuZGluZzogZmFsc2UsXG4gICAgICAgIHByb3BlcnR5TmFtZTogJ25hbWUnLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICd6YScsXG4gICAgICAgIGxhYmVsOiAnQWxwaGFiZXRpY2FsIChaIC0gQSknLFxuICAgICAgICBkZXNjZW5kaW5nOiB0cnVlLFxuICAgICAgICBwcm9wZXJ0eU5hbWU6ICduYW1lJyxcbiAgICAgIH0sXG4gICAgXSxcbiAgfTtcblxuICBwdWJsaWMgZGlzcGxheWVkSXRlbXM6IGFueVtdID0gW107XG4gIHB1YmxpYyBpdGVtc0hhdmVNb3JlOiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyBvbmx5U2hvd1NlbGVjdGVkOiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyBzZWFyY2hUZXh0OiBzdHJpbmc7XG4gIHB1YmxpYyBzZWxlY3RlZEl0ZW1zOiB7IGluZGV4OiBudW1iZXI7IGl0ZW1EYXRhOiBhbnkgfVtdID0gW107XG5cbiAgcHJpdmF0ZSBpdGVtSW5kZXg6IG51bWJlciA9IDA7XG4gIHByaXZhdGUgbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIG1vZGFsSW5zdGFuY2U6IFNreU1vZGFsSW5zdGFuY2UsXG4gICAgcHVibGljIGNvbnRleHQ6IFNreUxvb2t1cFNob3dNb3JlTmF0aXZlUGlja2VyQ29udGV4dCxcbiAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHt9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNlYXJjaFRleHQgPSB0aGlzLmNvbnRleHQuaW5pdGlhbFNlYXJjaDtcbiAgICB0aGlzLmFkZEl0ZW1zKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLm5nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRCdXR0b25DbGlja2VkKCk6IHZvaWQge1xuICAgIHRoaXMuYWRkQ2xpY2submV4dCgpO1xuICB9XG5cbiAgcHVibGljIGFkZEl0ZW1zKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5pdGVtcyB8fCB0aGlzLml0ZW1zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgbGV0IHNlbGVjdGVkSXRlbXM6IGFueVtdID0gdGhpcy5zZWxlY3RlZEl0ZW1zLnNsaWNlKCk7XG5cbiAgICAgIHRoaXMuaXRlbXMgPSB0aGlzLmNvbnRleHQuaXRlbXNcbiAgICAgICAgPyB0aGlzLmNvbnRleHQuaXRlbXMubWFwKChpdGVtKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICB2YWx1ZTogaXRlbSxcbiAgICAgICAgICAgICAgc2VsZWN0ZWQ6IGZhbHNlLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9KVxuICAgICAgICA6IFtdO1xuXG4gICAgICB0aGlzLml0ZW1zLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgY29uc3QgaXNJbml0aWFsVmFsdWU6IGJvb2xlYW4gPVxuICAgICAgICAgIHRoaXMuY29udGV4dC5pbml0aWFsVmFsdWUgPT09IGl0ZW0udmFsdWU7XG5cbiAgICAgICAgY29uc3QgaW5pdGlhbElzQXJyYXk6IGJvb2xlYW4gPSBBcnJheS5pc0FycmF5KFxuICAgICAgICAgIHRoaXMuY29udGV4dC5pbml0aWFsVmFsdWVcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgaW5pdGlhbFZhbHVlQ29udGFpbnNJdGVtOiBib29sZWFuID1cbiAgICAgICAgICB0aGlzLmNvbnRleHQuaW5pdGlhbFZhbHVlLmZpbmRJbmRleChcbiAgICAgICAgICAgIChpbml0aWFsSXRlbTogYW55KSA9PiBpbml0aWFsSXRlbSA9PT0gaXRlbS52YWx1ZVxuICAgICAgICAgICkgPj0gMDtcblxuICAgICAgICBpZiAoaXNJbml0aWFsVmFsdWUgfHwgKGluaXRpYWxJc0FycmF5ICYmIGluaXRpYWxWYWx1ZUNvbnRhaW5zSXRlbSkpIHtcbiAgICAgICAgICBpdGVtLnNlbGVjdGVkID0gdHJ1ZTtcbiAgICAgICAgICBjb25zdCBpdGVtSW5kZXggPSB0aGlzLml0ZW1zLmluZGV4T2YoaXRlbSk7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgc2VsZWN0ZWRJdGVtcy5maW5kSW5kZXgoXG4gICAgICAgICAgICAgIChzZWxlY3RlZEl0ZW0pID0+IHNlbGVjdGVkSXRlbS5pbmRleCA9PT0gaXRlbUluZGV4XG4gICAgICAgICAgICApIDwgMFxuICAgICAgICAgICkge1xuICAgICAgICAgICAgc2VsZWN0ZWRJdGVtcy5wdXNoKHsgaW5kZXg6IGl0ZW1JbmRleCwgaXRlbURhdGE6IGl0ZW0udmFsdWUgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0gc2VsZWN0ZWRJdGVtcztcbiAgICAgIHRoaXMudXBkYXRlRGF0YVN0YXRlKCk7XG4gICAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIHRoaXMuaXRlbUluZGV4ID0gdGhpcy5pdGVtSW5kZXggKyAxMDtcbiAgICB0aGlzLnNlYXJjaEl0ZW1zKHRoaXMuaXRlbXMpLnRoZW4oKHNlYXJjaGVkSXRlbXMpID0+IHtcbiAgICAgIHRoaXMuZGlzcGxheWVkSXRlbXMgPSBzZWFyY2hlZEl0ZW1zLnNsaWNlKDAsIHRoaXMuaXRlbUluZGV4KTtcblxuICAgICAgaWYgKHRoaXMuaXRlbUluZGV4ID4gc2VhcmNoZWRJdGVtcy5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy5pdGVtc0hhdmVNb3JlID0gZmFsc2U7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLml0ZW1zSGF2ZU1vcmUgPSB0cnVlO1xuICAgICAgfVxuICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBjbGVhckFsbCgpOiB2b2lkIHtcbiAgICB0aGlzLmRpc3BsYXllZEl0ZW1zLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgIGlmIChpdGVtLnNlbGVjdGVkKSB7XG4gICAgICAgIGl0ZW0uc2VsZWN0ZWQgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSBbXTtcbiAgICB0aGlzLnVwZGF0ZURhdGFTdGF0ZSgpO1xuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwdWJsaWMgaXRlbUNsaWNrKHNlbGVjdGVkSXRlbTogYW55KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY29udGV4dC5zZWxlY3RNb2RlID09PSAnc2luZ2xlJykge1xuICAgICAgdGhpcy5vbkl0ZW1TZWxlY3QoIXNlbGVjdGVkSXRlbS5zZWxlY3RlZCwgc2VsZWN0ZWRJdGVtKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25JdGVtU2VsZWN0KG5ld1NlbGVjdFN0YXRlOiBib29sZWFuLCBpdGVtVG9TZWxlY3Q6IGFueSk6IHZvaWQge1xuICAgIGlmICh0aGlzLmNvbnRleHQuc2VsZWN0TW9kZSA9PT0gJ3NpbmdsZScpIHtcbiAgICAgIC8qIFNhbml0eSBjaGVjayAtIHNpbmdsZSBzZWxlY3QgbW9kZSBzaG91bGQgb25seSBhbG93IGZvciBhIGB0cnVlYCBzZWxlY3Qgc3RhdGUgKi9cbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICBpZiAobmV3U2VsZWN0U3RhdGUpIHtcbiAgICAgICAgaXRlbVRvU2VsZWN0LnNlbGVjdGVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5pdGVtcy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgaWYgKGl0ZW0udmFsdWUgIT09IGl0ZW1Ub1NlbGVjdC52YWx1ZSkge1xuICAgICAgICAgICAgaXRlbS5zZWxlY3RlZCA9IGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuZGlzcGxheWVkSXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgIGlmIChpdGVtLnZhbHVlICE9PSBpdGVtVG9TZWxlY3QudmFsdWUpIHtcbiAgICAgICAgICAgIGl0ZW0uc2VsZWN0ZWQgPSBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBpdGVtSW5kZXggPSB0aGlzLml0ZW1zLmZpbmRJbmRleChcbiAgICAgICAgICAoaXRlbSkgPT4gaXRlbS52YWx1ZSA9PT0gaXRlbVRvU2VsZWN0LnZhbHVlXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IFtcbiAgICAgICAgICB7IGluZGV4OiBpdGVtSW5kZXgsIGl0ZW1EYXRhOiB0aGlzLml0ZW1zW2l0ZW1JbmRleF0udmFsdWUgfSxcbiAgICAgICAgXTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgbGV0IHNlbGVjdGVkSXRlbXM6IHsgaW5kZXg6IG51bWJlcjsgaXRlbURhdGE6IGFueSB9W10gPVxuICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXM7XG4gICAgICBjb25zdCBhbGxJdGVtc0luZGV4ID0gdGhpcy5pdGVtcy5maW5kSW5kZXgoXG4gICAgICAgIChpdGVtKSA9PiBpdGVtLnZhbHVlID09PSBpdGVtVG9TZWxlY3QudmFsdWVcbiAgICAgICk7XG4gICAgICBsZXQgc2VsZWN0ZWRJdGVtc0luZGV4ID0gc2VsZWN0ZWRJdGVtcy5maW5kSW5kZXgoXG4gICAgICAgIChzZWxlY3RlZEl0ZW0pID0+IHNlbGVjdGVkSXRlbS5pbmRleCA9PT0gYWxsSXRlbXNJbmRleFxuICAgICAgKTtcblxuICAgICAgaWYgKG5ld1NlbGVjdFN0YXRlICYmIHNlbGVjdGVkSXRlbXNJbmRleCA9PT0gLTEpIHtcbiAgICAgICAgc2VsZWN0ZWRJdGVtcy5wdXNoKHtcbiAgICAgICAgICBpbmRleDogYWxsSXRlbXNJbmRleCxcbiAgICAgICAgICBpdGVtRGF0YTogdGhpcy5pdGVtc1thbGxJdGVtc0luZGV4XS52YWx1ZSxcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2UgaWYgKCFuZXdTZWxlY3RTdGF0ZSAmJiBzZWxlY3RlZEl0ZW1zSW5kZXggIT09IC0xKSB7XG4gICAgICAgIHNlbGVjdGVkSXRlbXMuc3BsaWNlKHNlbGVjdGVkSXRlbXNJbmRleCwgMSk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IHNlbGVjdGVkSXRlbXM7XG4gICAgfVxuICAgIHRoaXMudXBkYXRlRGF0YVN0YXRlKCk7XG4gICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHB1YmxpYyBzZWFyY2hBcHBsaWVkKHNlYXJjaFRleHQ6IHN0cmluZykge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKHRoaXMuc2VhcmNoVGV4dCAhPT0gc2VhcmNoVGV4dCkge1xuICAgICAgdGhpcy5pdGVtSW5kZXggPSAxMDtcbiAgICB9XG4gICAgdGhpcy5zZWFyY2hUZXh0ID0gc2VhcmNoVGV4dDtcbiAgICB0aGlzLnVwZGF0ZURhdGFTdGF0ZSgpO1xuICB9XG5cbiAgcHVibGljIHNlYXJjaEl0ZW1zKGl0ZW1zOiBhbnlbXSk6IFByb21pc2U8YW55W10+IHtcbiAgICBsZXQgc2VhcmNoVGV4dCA9IHRoaXMuc2VhcmNoVGV4dDtcblxuICAgIGlmIChzZWFyY2hUZXh0KSB7XG4gICAgICBjb25zdCByZXN1bHRWYWx1ZXMgPSB0aGlzLmNvbnRleHQuc2VhcmNoKFxuICAgICAgICBzZWFyY2hUZXh0LFxuICAgICAgICBpdGVtcy5tYXAoKGl0ZW0pID0+IHtcbiAgICAgICAgICByZXR1cm4gaXRlbS52YWx1ZTtcbiAgICAgICAgfSlcbiAgICAgICk7XG5cbiAgICAgIGlmIChyZXN1bHRWYWx1ZXMgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBpdGVtcy5maWx0ZXIoXG4gICAgICAgICAgKGl0ZW0pID0+IHJlc3VsdFZhbHVlcy5pbmRleE9mKGl0ZW0udmFsdWUpID49IDBcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShyZXN1bHQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHJlc3VsdFZhbHVlcy50aGVuKCh2YWx1ZXMpID0+IHtcbiAgICAgICAgICBjb25zdCByZXN1bHQgPSBpdGVtcy5maWx0ZXIoXG4gICAgICAgICAgICAoaXRlbSkgPT4gdmFsdWVzLmluZGV4T2YoaXRlbS52YWx1ZSkgPj0gMFxuICAgICAgICAgICk7XG4gICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShyZXN1bHQpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShpdGVtcyk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHNlbGVjdEFsbCgpOiB2b2lkIHtcbiAgICBsZXQgc2VsZWN0ZWRJdGVtczogeyBpbmRleDogbnVtYmVyOyBpdGVtRGF0YTogYW55IH1bXSA9IHRoaXMuc2VsZWN0ZWRJdGVtcztcblxuICAgIHRoaXMuZGlzcGxheWVkSXRlbXMuZm9yRWFjaCgoaXRlbTogYW55KSA9PiB7XG4gICAgICBpZiAoIWl0ZW0uc2VsZWN0ZWQpIHtcbiAgICAgICAgaXRlbS5zZWxlY3RlZCA9IHRydWU7XG5cbiAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLml0ZW1zLmluZGV4T2YoaXRlbSk7XG5cbiAgICAgICAgLyogU2FuaXR5IGNoZWNrICovXG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgIGlmIChcbiAgICAgICAgICBzZWxlY3RlZEl0ZW1zLmZpbmRJbmRleChcbiAgICAgICAgICAgIChzZWxlY3RlZEl0ZW0pID0+IHNlbGVjdGVkSXRlbS5pbmRleCA9PT0gaW5kZXhcbiAgICAgICAgICApIDwgMFxuICAgICAgICApIHtcbiAgICAgICAgICBzZWxlY3RlZEl0ZW1zLnB1c2goe1xuICAgICAgICAgICAgaW5kZXg6IGluZGV4LFxuICAgICAgICAgICAgaXRlbURhdGE6IHRoaXMuaXRlbXNbaW5kZXhdLnZhbHVlLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSBzZWxlY3RlZEl0ZW1zO1xuICAgIHRoaXMudXBkYXRlRGF0YVN0YXRlKCk7XG4gICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVEYXRhU3RhdGUoKTogdm9pZCB7XG4gICAgbGV0IHNlbGVjdGVkSXRlbXM6IHsgaW5kZXg6IG51bWJlcjsgaXRlbURhdGE6IGFueSB9W10gPSB0aGlzLnNlbGVjdGVkSXRlbXM7XG4gICAgdGhpcy5pdGVtcy5mb3JFYWNoKChpdGVtOiBhbnksIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgIGl0ZW0uc2VsZWN0ZWQgPVxuICAgICAgICBzZWxlY3RlZEl0ZW1zLmZpbmRJbmRleChcbiAgICAgICAgICAoc2VsZWN0ZWRJdGVtKSA9PiBzZWxlY3RlZEl0ZW0uaW5kZXggPT09IGluZGV4XG4gICAgICAgICkgIT09IC0xO1xuICAgIH0pO1xuXG4gICAgdGhpcy5zZWFyY2hJdGVtcyh0aGlzLml0ZW1zKS50aGVuKChzZWFyY2hlZEl0ZW1zKSA9PiB7XG4gICAgICBpZiAodGhpcy5vbmx5U2hvd1NlbGVjdGVkKSB7XG4gICAgICAgIHNlYXJjaGVkSXRlbXMgPSBzZWFyY2hlZEl0ZW1zLmZpbHRlcigoaXRlbSkgPT4gaXRlbS5zZWxlY3RlZCk7XG4gICAgICB9XG4gICAgICB0aGlzLmRpc3BsYXllZEl0ZW1zID0gc2VhcmNoZWRJdGVtcy5zbGljZSgwLCB0aGlzLml0ZW1JbmRleCk7XG5cbiAgICAgIGlmICh0aGlzLml0ZW1JbmRleCA+IHNlYXJjaGVkSXRlbXMubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMuaXRlbXNIYXZlTW9yZSA9IGZhbHNlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5pdGVtc0hhdmVNb3JlID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVJdGVtRGF0YShkYXRhOiBhbnlbXSk6IHZvaWQge1xuICAgIHRoaXMuY29udGV4dC5pdGVtcyA9IGRhdGE7XG4gICAgdGhpcy5pdGVtcyA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLml0ZW1JbmRleCA9IDEwO1xuICAgIHRoaXMuc2VsZWN0ZWRJdGVtcy5mb3JFYWNoKChzZWxlY3RlZEl0ZW0pID0+IHtcbiAgICAgIHRoaXMuY29udGV4dC5pdGVtcy5mb3JFYWNoKChpdGVtOiBhbnksIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgICAgaWYgKHNlbGVjdGVkSXRlbS5pdGVtRGF0YSA9PT0gaXRlbSkge1xuICAgICAgICAgIHNlbGVjdGVkSXRlbS5pbmRleCA9IGluZGV4O1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIHRoaXMuYWRkSXRlbXMoKTtcblxuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gIH1cbn1cbiIsIjxza3ktbW9kYWw+XG4gIDxza3ktbW9kYWwtaGVhZGVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb250ZXh0LnVzZXJDb25maWc/LnRpdGxlOyBlbHNlIGRlZmF1bHRUaXRsZVwiPlxuICAgICAge3sgY29udGV4dC51c2VyQ29uZmlnLnRpdGxlIH19XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvc2t5LW1vZGFsLWhlYWRlcj5cbiAgPHNreS1tb2RhbC1jb250ZW50PlxuICAgIDxkaXZcbiAgICAgIFtza3lWaWV3a2VlcGVyXT1cIltcbiAgICAgICAgJy5za3ktbG9va3VwLXNob3ctbW9yZS1tb2RhbC10b29sYmFyJyxcbiAgICAgICAgJy5za3ktbG9va3VwLXNob3ctbW9yZS1tb2RhbC1tdWlsdGlzZWxlY3QtdG9vbGJhcidcbiAgICAgIF1cIlxuICAgID5cbiAgICAgIDxza3ktdG9vbGJhciBjbGFzcz1cInNreS1sb29rdXAtc2hvdy1tb3JlLW1vZGFsLXRvb2xiYXJcIj5cbiAgICAgICAgPHNreS10b29sYmFyLXNlY3Rpb24+XG4gICAgICAgICAgPHNreS10b29sYmFyLWl0ZW0+XG4gICAgICAgICAgICA8c2t5LXNlYXJjaFxuICAgICAgICAgICAgICBbZGVib3VuY2VUaW1lXT1cIjI1MFwiXG4gICAgICAgICAgICAgIFtzZWFyY2hUZXh0XT1cInNlYXJjaFRleHRcIlxuICAgICAgICAgICAgICAoc2VhcmNoQXBwbHkpPVwic2VhcmNoQXBwbGllZCgkZXZlbnQpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvc2t5LXNlYXJjaD5cbiAgICAgICAgICA8L3NreS10b29sYmFyLWl0ZW0+XG4gICAgICAgICAgPHNreS10b29sYmFyLXZpZXctYWN0aW9ucz5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgKm5nSWY9XCJjb250ZXh0LnNob3dBZGRCdXR0b25cIlxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJza3ktYnRuIHNreS1idG4tbGluayBza3ktbG9va3VwLXNob3ctbW9yZS1tb2RhbC1hZGRcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiYWRkQnV0dG9uQ2xpY2tlZCgpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPHNreS1pY29uXG4gICAgICAgICAgICAgICAgKnNreVRoZW1lSWY9XCInbW9kZXJuJ1wiXG4gICAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgICAgaWNvblR5cGU9XCJza3l1eFwiXG4gICAgICAgICAgICAgID48L3NreS1pY29uPlxuICAgICAgICAgICAgICA8c2t5LWljb24gKnNreVRoZW1lSWY9XCInZGVmYXVsdCdcIiBpY29uPVwicGx1cy1jaXJjbGVcIj48L3NreS1pY29uPlxuICAgICAgICAgICAgICB7eyAnc2t5dXhfbG9va3VwX3Nob3dfbW9yZV9hZGQnIHwgc2t5TGliUmVzb3VyY2VzIH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L3NreS10b29sYmFyLXZpZXctYWN0aW9ucz5cbiAgICAgICAgPC9za3ktdG9vbGJhci1zZWN0aW9uPlxuICAgICAgPC9za3ktdG9vbGJhcj5cbiAgICAgIDxza3ktdG9vbGJhclxuICAgICAgICAqbmdJZj1cImNvbnRleHQuc2VsZWN0TW9kZSA9PT0gJ211bHRpcGxlJ1wiXG4gICAgICAgIGNsYXNzPVwic2t5LWxvb2t1cC1zaG93LW1vcmUtbW9kYWwtbXVpbHRpc2VsZWN0LXRvb2xiYXJcIlxuICAgICAgPlxuICAgICAgICA8c2t5LXRvb2xiYXItc2VjdGlvbj5cbiAgICAgICAgICA8c2t5LXRvb2xiYXItaXRlbT5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgY2xhc3M9XCJcbiAgICAgICAgICAgICAgICBza3ktYnRuIHNreS1idG4tbGluayBza3ktbG9va3VwLXNob3ctbW9yZS1tb2RhbC1zZWxlY3QtYWxsLWJ0blxuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdEFsbCgpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAnc2t5dXhfbG9va3VwX3Nob3dfbW9yZV9zZWxlY3RfYWxsX2J1dHRvbl90aXRsZSdcbiAgICAgICAgICAgICAgICAgIHwgc2t5TGliUmVzb3VyY2VzXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L3NreS10b29sYmFyLWl0ZW0+XG4gICAgICAgICAgPHNreS10b29sYmFyLWl0ZW0+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIGNsYXNzPVwiXG4gICAgICAgICAgICAgICAgc2t5LWJ0biBza3ktYnRuLWxpbmsgc2t5LWxvb2t1cC1zaG93LW1vcmUtbW9kYWwtY2xlYXItYWxsLWJ0blxuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImNsZWFyQWxsKClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAgICdza3l1eF9sb29rdXBfc2hvd19tb3JlX2NsZWFyX2FsbF9idXR0b25fdGl0bGUnXG4gICAgICAgICAgICAgICAgICB8IHNreUxpYlJlc291cmNlc1xuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC9za3ktdG9vbGJhci1pdGVtPlxuICAgICAgICAgIDxza3ktdG9vbGJhci12aWV3LWFjdGlvbnM+XG4gICAgICAgICAgICA8c2t5LWNoZWNrYm94XG4gICAgICAgICAgICAgIFsoY2hlY2tlZCldPVwib25seVNob3dTZWxlY3RlZFwiXG4gICAgICAgICAgICAgIChjaGFuZ2UpPVwidXBkYXRlRGF0YVN0YXRlKClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8c2t5LWNoZWNrYm94LWxhYmVsPlxuICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAnc2t5dXhfbG9va3VwX3Nob3dfbW9yZV9zaG93X3NlbGVjdGVkX29wdGlvbl90aXRsZSdcbiAgICAgICAgICAgICAgICAgICAgfCBza3lMaWJSZXNvdXJjZXNcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICA8L3NreS1jaGVja2JveC1sYWJlbD5cbiAgICAgICAgICAgIDwvc2t5LWNoZWNrYm94PlxuICAgICAgICAgIDwvc2t5LXRvb2xiYXItdmlldy1hY3Rpb25zPlxuICAgICAgICA8L3NreS10b29sYmFyLXNlY3Rpb24+XG4gICAgICA8L3NreS10b29sYmFyPlxuICAgIDwvZGl2PlxuICAgIDxkaXZcbiAgICAgICpuZ0lmPVwiZGlzcGxheWVkSXRlbXMubGVuZ3RoID09PSAwXCJcbiAgICAgIGNsYXNzPVwic2t5LWZvbnQtZGVlbXBoYXNpemVkIHNreS1sb29rdXAtc2hvdy1tb3JlLW5vLXJlc3VsdHNcIlxuICAgID5cbiAgICAgIHt7ICdza3l1eF9sb29rdXBfc2hvd19tb3JlX25vX3Jlc3VsdHMnIHwgc2t5TGliUmVzb3VyY2VzIH19XG4gICAgPC9kaXY+XG4gICAgPHNreS1yZXBlYXRlciBjbGFzcz1cInNreS1sb29rdXAtc2hvdy1tb3JlLXJlcGVhdGVyXCIgZXhwYW5kTW9kZT1cIm5vbmVcIj5cbiAgICAgIDxza3ktcmVwZWF0ZXItaXRlbVxuICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBkaXNwbGF5ZWRJdGVtc1wiXG4gICAgICAgIFtzZWxlY3RhYmxlXT1cImNvbnRleHQuc2VsZWN0TW9kZSA9PT0gJ211bHRpcGxlJ1wiXG4gICAgICAgIFsoaXNTZWxlY3RlZCldPVwiaXRlbS5zZWxlY3RlZFwiXG4gICAgICAgIChjbGljayk9XCJpdGVtQ2xpY2soaXRlbSlcIlxuICAgICAgICAoa2V5dXAuZW50ZXIpPVwiaXRlbUNsaWNrKGl0ZW0pXCJcbiAgICAgICAgKGlzU2VsZWN0ZWRDaGFuZ2UpPVwib25JdGVtU2VsZWN0KCRldmVudCwgaXRlbSlcIlxuICAgICAgPlxuICAgICAgICA8c2t5LXJlcGVhdGVyLWl0ZW0tY29udGVudD5cbiAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICBjb250ZXh0LnVzZXJDb25maWc/Lml0ZW1UZW1wbGF0ZVxuICAgICAgICAgICAgICAgID8gY29udGV4dC51c2VyQ29uZmlnPy5pdGVtVGVtcGxhdGVcbiAgICAgICAgICAgICAgICA6IGRlZmF1bHRJdGVtVGVtcGxhdGU7XG4gICAgICAgICAgICAgIGNvbnRleHQ6IHsgaXRlbTogaXRlbS52YWx1ZSB9XG4gICAgICAgICAgICBcIlxuICAgICAgICAgID5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9za3ktcmVwZWF0ZXItaXRlbS1jb250ZW50PlxuICAgICAgPC9za3ktcmVwZWF0ZXItaXRlbT5cbiAgICA8L3NreS1yZXBlYXRlcj5cbiAgICA8c2t5LWluZmluaXRlLXNjcm9sbCBbZW5hYmxlZF09XCJpdGVtc0hhdmVNb3JlXCIgKHNjcm9sbEVuZCk9XCJhZGRJdGVtcygpXCI+XG4gICAgPC9za3ktaW5maW5pdGUtc2Nyb2xsPlxuICA8L3NreS1tb2RhbC1jb250ZW50PlxuICA8c2t5LW1vZGFsLWZvb3Rlcj5cbiAgICA8YnV0dG9uXG4gICAgICBjbGFzcz1cIlxuICAgICAgICBza3ktYnRuXG4gICAgICAgIHNreS1idG4tcHJpbWFyeVxuICAgICAgICBza3ktbWFyZ2luLWlubGluZS1jb21wYWN0XG4gICAgICAgIHNreS1sb29rdXAtc2hvdy1tb3JlLW1vZGFsLXNhdmVcbiAgICAgIFwiXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIChjbGljayk9XCJtb2RhbEluc3RhbmNlLnNhdmUoc2VsZWN0ZWRJdGVtcylcIlxuICAgID5cbiAgICAgIHt7ICdza3l1eF9sb29rdXBfc2hvd19tb3JlX3NlbGVjdCcgfCBza3lMaWJSZXNvdXJjZXMgfX1cbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uXG4gICAgICBjbGFzcz1cInNreS1idG4gc2t5LWJ0bi1saW5rIHNreS1sb29rdXAtc2hvdy1tb3JlLW1vZGFsLWNsb3NlXCJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgKGNsaWNrKT1cIm1vZGFsSW5zdGFuY2UuY2xvc2UoKVwiXG4gICAgPlxuICAgICAge3sgJ3NreXV4X2xvb2t1cF9zaG93X21vcmVfY2FuY2VsJyB8IHNreUxpYlJlc291cmNlcyB9fVxuICAgIDwvYnV0dG9uPlxuICA8L3NreS1tb2RhbC1mb290ZXI+XG48L3NreS1tb2RhbD5cblxuPG5nLXRlbXBsYXRlIGxldC1pdGVtPVwiaXRlbVwiICNkZWZhdWx0SXRlbVRlbXBsYXRlPlxuICB7eyBpdGVtW2NvbnRleHQuZGVzY3JpcHRvclByb3BlcnR5XSB9fVxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNkZWZhdWx0VGl0bGU+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb250ZXh0LnNlbGVjdE1vZGUgPT09ICdzaW5nbGUnXCI+XG4gICAge3sgJ3NreXV4X2xvb2t1cF9zaG93X21vcmVfbW9kYWxfdGl0bGVfc2luZ2xlJyB8IHNreUxpYlJlc291cmNlcyB9fVxuICA8L25nLWNvbnRhaW5lcj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbnRleHQuc2VsZWN0TW9kZSA9PT0gJ211bHRpcGxlJ1wiPlxuICAgIHt7ICdza3l1eF9sb29rdXBfc2hvd19tb3JlX21vZGFsX3RpdGxlX211bHRpcGxlJyB8IHNreUxpYlJlc291cmNlcyB9fVxuICA8L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
256
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9va3VwLXNob3ctbW9yZS1tb2RhbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9sb29rdXAvc3JjL21vZHVsZXMvbG9va3VwL2xvb2t1cC1zaG93LW1vcmUtbW9kYWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbG9va3VwL3NyYy9tb2R1bGVzL2xvb2t1cC9sb29rdXAtc2hvdy1tb3JlLW1vZGFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFFdkIsU0FBUyxHQUVWLE1BQU0sZUFBZSxDQUFDO0FBSXZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7Ozs7Ozs7QUFJL0I7OztHQUdHO0FBV0gsTUFBTSxPQUFPLCtCQUErQjtJQXFDMUMsWUFDUyxhQUErQixFQUMvQixPQUE2QyxFQUM1QyxjQUFpQztRQUZsQyxrQkFBYSxHQUFiLGFBQWEsQ0FBa0I7UUFDL0IsWUFBTyxHQUFQLE9BQU8sQ0FBc0M7UUFDNUMsbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBckMzQzs7O1dBR0c7UUFDSSxhQUFRLEdBQWtCLElBQUksT0FBTyxFQUFFLENBQUM7UUFJeEMsc0JBQWlCLEdBQUc7WUFDekIsV0FBVyxFQUFFO2dCQUNYO29CQUNFLEVBQUUsRUFBRSxJQUFJO29CQUNSLEtBQUssRUFBRSxzQkFBc0I7b0JBQzdCLFVBQVUsRUFBRSxLQUFLO29CQUNqQixZQUFZLEVBQUUsTUFBTTtpQkFDckI7Z0JBQ0Q7b0JBQ0UsRUFBRSxFQUFFLElBQUk7b0JBQ1IsS0FBSyxFQUFFLHNCQUFzQjtvQkFDN0IsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFlBQVksRUFBRSxNQUFNO2lCQUNyQjthQUNGO1NBQ0YsQ0FBQztRQUVLLG1CQUFjLEdBQVUsRUFBRSxDQUFDO1FBQzNCLGtCQUFhLEdBQVksS0FB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QztRQUNyQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxjQUFjLENBQUMsSUFBVztRQUMvQixJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDMUIsSUFBSSxDQUFDLEtBQUssR0FBRyxTQUFTLENBQUM7UUFDdkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxZQUFZLEVBQUUsRUFBRTtZQUMxQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFTLEVBQUUsS0FBYSxFQUFFLEVBQUU7Z0JBQ3RELElBQUksWUFBWSxDQUFDLFFBQVEsS0FBSyxJQUFJLEVBQUU7b0JBQ2xDLFlBQVksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO2lCQUM1QjtZQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFaEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNyQyxDQUFDOzs2SEE3UlUsK0JBQStCO2lIQUEvQiwrQkFBK0Isb0VDNUI1QywycktBNEpBOzRGRGhJYSwrQkFBK0I7a0JBVjNDLFNBQVM7bUJBQUM7b0JBQ1QsbUZBQW1GO29CQUNuRix1RkFBdUY7b0JBQ3ZGLHFCQUFxQjtvQkFDckIsOERBQThEO29CQUM5RCxRQUFRLEVBQUUsOEJBQThCO29CQUN4QyxXQUFXLEVBQUUseUNBQXlDO29CQUN0RCxTQUFTLEVBQUUsQ0FBQyx5Q0FBeUMsQ0FBQztvQkFDdEQsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2hEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIE9uRGVzdHJveSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFNreU1vZGFsSW5zdGFuY2UgfSBmcm9tICdAc2t5dXgvbW9kYWxzJztcblxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBTa3lMb29rdXBTaG93TW9yZU5hdGl2ZVBpY2tlckNvbnRleHQgfSBmcm9tICcuL3R5cGVzL2xvb2t1cC1zaG93LW1vcmUtbmF0aXZlLXBpY2tlci1jb250ZXh0JztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqIEludGVybmFsIGNvbXBvbmVudCB0byBpbXBsZW1lbnQgdGhlIG5hdGl2ZSBwaWNrZXIuXG4gKi9cbkBDb21wb25lbnQoe1xuICAvLyBTdXBwcmVzcyB0aGlzIGVycm9yIHJhdGhlciB0aGFuIGZpeCB0aGUgc2VsZWN0b3Igc2luY2UgY29uc3VtZXJzIHdpdGggdW5pdCB0ZXN0c1xuICAvLyBtYXkgYmUgbG9va2luZyBmb3IgYW4gZWxlbWVudCB3aXRoIHRoaXMgc2VsZWN0b3IuIFdlIGNhbiBjaGFuZ2UgaXQgaW4gdGhlIG5leHQgbWFqb3JcbiAgLy8gdmVyc2lvbiBvZiBTS1kgVVguXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnc2t5dXgtbG9va3VwLXNob3ctbW9yZS1tb2RhbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9sb29rdXAtc2hvdy1tb3JlLW1vZGFsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbG9va3VwLXNob3ctbW9yZS1tb2RhbC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgU2t5TG9va3VwU2hvd01vcmVNb2RhbENvbXBvbmVudFxuICBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveVxue1xuICAvKipcbiAgICogQGludGVybmFsXG4gICAqIEZpcmVzIHdoZW4gdXNlcnMgc2VsZWN0IHRoZSBidXR0b24gdG8gYWRkIG5ldyBvcHRpb25zIHRvIHRoZSBsaXN0LlxuICAgKi9cbiAgcHVibGljIGFkZENsaWNrOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3QoKTtcblxuICBwdWJsaWMgaXRlbXM6IGFueVtdO1xuXG4gIHB1YmxpYyBkYXRhTWFuYWdlckNvbmZpZyA9IHtcbiAgICBzb3J0T3B0aW9uczogW1xuICAgICAge1xuICAgICAgICBpZDogJ2F6JyxcbiAgICAgICAgbGFiZWw6ICdBbHBoYWJldGljYWwgKEEgLSBaKScsXG4gICAgICAgIGRlc2NlbmRpbmc6IGZhbHNlLFxuICAgICAgICBwcm9wZXJ0eU5hbWU6ICduYW1lJyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnemEnLFxuICAgICAgICBsYWJlbDogJ0FscGhhYmV0aWNhbCAoWiAtIEEpJyxcbiAgICAgICAgZGVzY2VuZGluZzogdHJ1ZSxcbiAgICAgICAgcHJvcGVydHlOYW1lOiAnbmFtZScsXG4gICAgICB9LFxuICAgIF0sXG4gIH07XG5cbiAgcHVibGljIGRpc3BsYXllZEl0ZW1zOiBhbnlbXSA9IFtdO1xuICBwdWJsaWMgaXRlbXNIYXZlTW9yZTogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgb25seVNob3dTZWxlY3RlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgc2VhcmNoVGV4dDogc3RyaW5nO1xuICBwdWJsaWMgc2VsZWN0ZWRJdGVtczogeyBpbmRleDogbnVtYmVyOyBpdGVtRGF0YTogYW55IH1bXSA9IFtdO1xuXG4gIHByaXZhdGUgaXRlbUluZGV4OiBudW1iZXIgPSAwO1xuICBwcml2YXRlIG5nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBtb2RhbEluc3RhbmNlOiBTa3lNb2RhbEluc3RhbmNlLFxuICAgIHB1YmxpYyBjb250ZXh0OiBTa3lMb29rdXBTaG93TW9yZU5hdGl2ZVBpY2tlckNvbnRleHQsXG4gICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7fVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zZWFyY2hUZXh0ID0gdGhpcy5jb250ZXh0LmluaXRpYWxTZWFyY2g7XG4gICAgdGhpcy5hZGRJdGVtcygpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMubmdVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwdWJsaWMgYWRkQnV0dG9uQ2xpY2tlZCgpOiB2b2lkIHtcbiAgICB0aGlzLmFkZENsaWNrLm5leHQoKTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRJdGVtcygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaXRlbXMgfHwgdGhpcy5pdGVtcy5sZW5ndGggPT09IDApIHtcbiAgICAgIGxldCBzZWxlY3RlZEl0ZW1zOiBhbnlbXSA9IHRoaXMuc2VsZWN0ZWRJdGVtcy5zbGljZSgpO1xuXG4gICAgICB0aGlzLml0ZW1zID0gdGhpcy5jb250ZXh0Lml0ZW1zXG4gICAgICAgID8gdGhpcy5jb250ZXh0Lml0ZW1zLm1hcCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgdmFsdWU6IGl0ZW0sXG4gICAgICAgICAgICAgIHNlbGVjdGVkOiBmYWxzZSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfSlcbiAgICAgICAgOiBbXTtcblxuICAgICAgdGhpcy5pdGVtcy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgIGNvbnN0IGlzSW5pdGlhbFZhbHVlOiBib29sZWFuID1cbiAgICAgICAgICB0aGlzLmNvbnRleHQuaW5pdGlhbFZhbHVlID09PSBpdGVtLnZhbHVlO1xuXG4gICAgICAgIGNvbnN0IGluaXRpYWxJc0FycmF5OiBib29sZWFuID0gQXJyYXkuaXNBcnJheShcbiAgICAgICAgICB0aGlzLmNvbnRleHQuaW5pdGlhbFZhbHVlXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IGluaXRpYWxWYWx1ZUNvbnRhaW5zSXRlbTogYm9vbGVhbiA9XG4gICAgICAgICAgdGhpcy5jb250ZXh0LmluaXRpYWxWYWx1ZS5maW5kSW5kZXgoXG4gICAgICAgICAgICAoaW5pdGlhbEl0ZW06IGFueSkgPT4gaW5pdGlhbEl0ZW0gPT09IGl0ZW0udmFsdWVcbiAgICAgICAgICApID49IDA7XG5cbiAgICAgICAgaWYgKGlzSW5pdGlhbFZhbHVlIHx8IChpbml0aWFsSXNBcnJheSAmJiBpbml0aWFsVmFsdWVDb250YWluc0l0ZW0pKSB7XG4gICAgICAgICAgaXRlbS5zZWxlY3RlZCA9IHRydWU7XG4gICAgICAgICAgY29uc3QgaXRlbUluZGV4ID0gdGhpcy5pdGVtcy5pbmRleE9mKGl0ZW0pO1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIHNlbGVjdGVkSXRlbXMuZmluZEluZGV4KFxuICAgICAgICAgICAgICAoc2VsZWN0ZWRJdGVtKSA9PiBzZWxlY3RlZEl0ZW0uaW5kZXggPT09IGl0ZW1JbmRleFxuICAgICAgICAgICAgKSA8IDBcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHNlbGVjdGVkSXRlbXMucHVzaCh7IGluZGV4OiBpdGVtSW5kZXgsIGl0ZW1EYXRhOiBpdGVtLnZhbHVlIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IHNlbGVjdGVkSXRlbXM7XG4gICAgICB0aGlzLnVwZGF0ZURhdGFTdGF0ZSgpO1xuICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICB0aGlzLml0ZW1JbmRleCA9IHRoaXMuaXRlbUluZGV4ICsgMTA7XG4gICAgdGhpcy5zZWFyY2hJdGVtcyh0aGlzLml0ZW1zKS50aGVuKChzZWFyY2hlZEl0ZW1zKSA9PiB7XG4gICAgICB0aGlzLmRpc3BsYXllZEl0ZW1zID0gc2VhcmNoZWRJdGVtcy5zbGljZSgwLCB0aGlzLml0ZW1JbmRleCk7XG5cbiAgICAgIGlmICh0aGlzLml0ZW1JbmRleCA+IHNlYXJjaGVkSXRlbXMubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMuaXRlbXNIYXZlTW9yZSA9IGZhbHNlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5pdGVtc0hhdmVNb3JlID0gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgY2xlYXJBbGwoKTogdm9pZCB7XG4gICAgdGhpcy5kaXNwbGF5ZWRJdGVtcy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICBpZiAoaXRlbS5zZWxlY3RlZCkge1xuICAgICAgICBpdGVtLnNlbGVjdGVkID0gZmFsc2U7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0gW107XG4gICAgdGhpcy51cGRhdGVEYXRhU3RhdGUoKTtcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHVibGljIGl0ZW1DbGljayhzZWxlY3RlZEl0ZW06IGFueSk6IHZvaWQge1xuICAgIGlmICh0aGlzLmNvbnRleHQuc2VsZWN0TW9kZSA9PT0gJ3NpbmdsZScpIHtcbiAgICAgIHRoaXMub25JdGVtU2VsZWN0KCFzZWxlY3RlZEl0ZW0uc2VsZWN0ZWQsIHNlbGVjdGVkSXRlbSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uSXRlbVNlbGVjdChuZXdTZWxlY3RTdGF0ZTogYm9vbGVhbiwgaXRlbVRvU2VsZWN0OiBhbnkpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jb250ZXh0LnNlbGVjdE1vZGUgPT09ICdzaW5nbGUnKSB7XG4gICAgICAvKiBTYW5pdHkgY2hlY2sgLSBzaW5nbGUgc2VsZWN0IG1vZGUgc2hvdWxkIG9ubHkgYWxvdyBmb3IgYSBgdHJ1ZWAgc2VsZWN0IHN0YXRlICovXG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgaWYgKG5ld1NlbGVjdFN0YXRlKSB7XG4gICAgICAgIGl0ZW1Ub1NlbGVjdC5zZWxlY3RlZCA9IHRydWU7XG4gICAgICAgIHRoaXMuaXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgIGlmIChpdGVtLnZhbHVlICE9PSBpdGVtVG9TZWxlY3QudmFsdWUpIHtcbiAgICAgICAgICAgIGl0ZW0uc2VsZWN0ZWQgPSBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmRpc3BsYXllZEl0ZW1zLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICBpZiAoaXRlbS52YWx1ZSAhPT0gaXRlbVRvU2VsZWN0LnZhbHVlKSB7XG4gICAgICAgICAgICBpdGVtLnNlbGVjdGVkID0gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgaXRlbUluZGV4ID0gdGhpcy5pdGVtcy5maW5kSW5kZXgoXG4gICAgICAgICAgKGl0ZW0pID0+IGl0ZW0udmFsdWUgPT09IGl0ZW1Ub1NlbGVjdC52YWx1ZVxuICAgICAgICApO1xuICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSBbXG4gICAgICAgICAgeyBpbmRleDogaXRlbUluZGV4LCBpdGVtRGF0YTogdGhpcy5pdGVtc1tpdGVtSW5kZXhdLnZhbHVlIH0sXG4gICAgICAgIF07XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGxldCBzZWxlY3RlZEl0ZW1zOiB7IGluZGV4OiBudW1iZXI7IGl0ZW1EYXRhOiBhbnkgfVtdID1cbiAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zO1xuICAgICAgY29uc3QgYWxsSXRlbXNJbmRleCA9IHRoaXMuaXRlbXMuZmluZEluZGV4KFxuICAgICAgICAoaXRlbSkgPT4gaXRlbS52YWx1ZSA9PT0gaXRlbVRvU2VsZWN0LnZhbHVlXG4gICAgICApO1xuICAgICAgbGV0IHNlbGVjdGVkSXRlbXNJbmRleCA9IHNlbGVjdGVkSXRlbXMuZmluZEluZGV4KFxuICAgICAgICAoc2VsZWN0ZWRJdGVtKSA9PiBzZWxlY3RlZEl0ZW0uaW5kZXggPT09IGFsbEl0ZW1zSW5kZXhcbiAgICAgICk7XG5cbiAgICAgIGlmIChuZXdTZWxlY3RTdGF0ZSAmJiBzZWxlY3RlZEl0ZW1zSW5kZXggPT09IC0xKSB7XG4gICAgICAgIHNlbGVjdGVkSXRlbXMucHVzaCh7XG4gICAgICAgICAgaW5kZXg6IGFsbEl0ZW1zSW5kZXgsXG4gICAgICAgICAgaXRlbURhdGE6IHRoaXMuaXRlbXNbYWxsSXRlbXNJbmRleF0udmFsdWUsXG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIGlmICghbmV3U2VsZWN0U3RhdGUgJiYgc2VsZWN0ZWRJdGVtc0luZGV4ICE9PSAtMSkge1xuICAgICAgICBzZWxlY3RlZEl0ZW1zLnNwbGljZShzZWxlY3RlZEl0ZW1zSW5kZXgsIDEpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSBzZWxlY3RlZEl0ZW1zO1xuICAgIH1cbiAgICB0aGlzLnVwZGF0ZURhdGFTdGF0ZSgpO1xuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwdWJsaWMgc2VhcmNoQXBwbGllZChzZWFyY2hUZXh0OiBzdHJpbmcpIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmICh0aGlzLnNlYXJjaFRleHQgIT09IHNlYXJjaFRleHQpIHtcbiAgICAgIHRoaXMuaXRlbUluZGV4ID0gMTA7XG4gICAgfVxuICAgIHRoaXMuc2VhcmNoVGV4dCA9IHNlYXJjaFRleHQ7XG4gICAgdGhpcy51cGRhdGVEYXRhU3RhdGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZWFyY2hJdGVtcyhpdGVtczogYW55W10pOiBQcm9taXNlPGFueVtdPiB7XG4gICAgbGV0IHNlYXJjaFRleHQgPSB0aGlzLnNlYXJjaFRleHQ7XG5cbiAgICBpZiAoc2VhcmNoVGV4dCkge1xuICAgICAgY29uc3QgcmVzdWx0VmFsdWVzID0gdGhpcy5jb250ZXh0LnNlYXJjaChcbiAgICAgICAgc2VhcmNoVGV4dCxcbiAgICAgICAgaXRlbXMubWFwKChpdGVtKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGl0ZW0udmFsdWU7XG4gICAgICAgIH0pXG4gICAgICApO1xuXG4gICAgICBpZiAocmVzdWx0VmFsdWVzIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gaXRlbXMuZmlsdGVyKFxuICAgICAgICAgIChpdGVtKSA9PiByZXN1bHRWYWx1ZXMuaW5kZXhPZihpdGVtLnZhbHVlKSA+PSAwXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUocmVzdWx0KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiByZXN1bHRWYWx1ZXMudGhlbigodmFsdWVzKSA9PiB7XG4gICAgICAgICAgY29uc3QgcmVzdWx0ID0gaXRlbXMuZmlsdGVyKFxuICAgICAgICAgICAgKGl0ZW0pID0+IHZhbHVlcy5pbmRleE9mKGl0ZW0udmFsdWUpID49IDBcbiAgICAgICAgICApO1xuICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUocmVzdWx0KTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoaXRlbXMpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzZWxlY3RBbGwoKTogdm9pZCB7XG4gICAgbGV0IHNlbGVjdGVkSXRlbXM6IHsgaW5kZXg6IG51bWJlcjsgaXRlbURhdGE6IGFueSB9W10gPSB0aGlzLnNlbGVjdGVkSXRlbXM7XG5cbiAgICB0aGlzLmRpc3BsYXllZEl0ZW1zLmZvckVhY2goKGl0ZW06IGFueSkgPT4ge1xuICAgICAgaWYgKCFpdGVtLnNlbGVjdGVkKSB7XG4gICAgICAgIGl0ZW0uc2VsZWN0ZWQgPSB0cnVlO1xuXG4gICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5pdGVtcy5pbmRleE9mKGl0ZW0pO1xuXG4gICAgICAgIC8qIFNhbml0eSBjaGVjayAqL1xuICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICBpZiAoXG4gICAgICAgICAgc2VsZWN0ZWRJdGVtcy5maW5kSW5kZXgoXG4gICAgICAgICAgICAoc2VsZWN0ZWRJdGVtKSA9PiBzZWxlY3RlZEl0ZW0uaW5kZXggPT09IGluZGV4XG4gICAgICAgICAgKSA8IDBcbiAgICAgICAgKSB7XG4gICAgICAgICAgc2VsZWN0ZWRJdGVtcy5wdXNoKHtcbiAgICAgICAgICAgIGluZGV4OiBpbmRleCxcbiAgICAgICAgICAgIGl0ZW1EYXRhOiB0aGlzLml0ZW1zW2luZGV4XS52YWx1ZSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0gc2VsZWN0ZWRJdGVtcztcbiAgICB0aGlzLnVwZGF0ZURhdGFTdGF0ZSgpO1xuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlRGF0YVN0YXRlKCk6IHZvaWQge1xuICAgIGxldCBzZWxlY3RlZEl0ZW1zOiB7IGluZGV4OiBudW1iZXI7IGl0ZW1EYXRhOiBhbnkgfVtdID0gdGhpcy5zZWxlY3RlZEl0ZW1zO1xuICAgIHRoaXMuaXRlbXMuZm9yRWFjaCgoaXRlbTogYW55LCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICBpdGVtLnNlbGVjdGVkID1cbiAgICAgICAgc2VsZWN0ZWRJdGVtcy5maW5kSW5kZXgoXG4gICAgICAgICAgKHNlbGVjdGVkSXRlbSkgPT4gc2VsZWN0ZWRJdGVtLmluZGV4ID09PSBpbmRleFxuICAgICAgICApICE9PSAtMTtcbiAgICB9KTtcblxuICAgIHRoaXMuc2VhcmNoSXRlbXModGhpcy5pdGVtcykudGhlbigoc2VhcmNoZWRJdGVtcykgPT4ge1xuICAgICAgaWYgKHRoaXMub25seVNob3dTZWxlY3RlZCkge1xuICAgICAgICBzZWFyY2hlZEl0ZW1zID0gc2VhcmNoZWRJdGVtcy5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0uc2VsZWN0ZWQpO1xuICAgICAgfVxuICAgICAgdGhpcy5kaXNwbGF5ZWRJdGVtcyA9IHNlYXJjaGVkSXRlbXMuc2xpY2UoMCwgdGhpcy5pdGVtSW5kZXgpO1xuXG4gICAgICBpZiAodGhpcy5pdGVtSW5kZXggPiBzZWFyY2hlZEl0ZW1zLmxlbmd0aCkge1xuICAgICAgICB0aGlzLml0ZW1zSGF2ZU1vcmUgPSBmYWxzZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuaXRlbXNIYXZlTW9yZSA9IHRydWU7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlSXRlbURhdGEoZGF0YTogYW55W10pOiB2b2lkIHtcbiAgICB0aGlzLmNvbnRleHQuaXRlbXMgPSBkYXRhO1xuICAgIHRoaXMuaXRlbXMgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5pdGVtSW5kZXggPSAxMDtcbiAgICB0aGlzLnNlbGVjdGVkSXRlbXMuZm9yRWFjaCgoc2VsZWN0ZWRJdGVtKSA9PiB7XG4gICAgICB0aGlzLmNvbnRleHQuaXRlbXMuZm9yRWFjaCgoaXRlbTogYW55LCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICAgIGlmIChzZWxlY3RlZEl0ZW0uaXRlbURhdGEgPT09IGl0ZW0pIHtcbiAgICAgICAgICBzZWxlY3RlZEl0ZW0uaW5kZXggPSBpbmRleDtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLmFkZEl0ZW1zKCk7XG5cbiAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICB9XG59XG4iLCI8c2t5LW1vZGFsPlxuICA8c2t5LW1vZGFsLWhlYWRlcj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29udGV4dC51c2VyQ29uZmlnPy50aXRsZTsgZWxzZSBkZWZhdWx0VGl0bGVcIj5cbiAgICAgIHt7IGNvbnRleHQudXNlckNvbmZpZy50aXRsZSB9fVxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L3NreS1tb2RhbC1oZWFkZXI+XG4gIDxza3ktbW9kYWwtY29udGVudD5cbiAgICA8ZGl2XG4gICAgICBbc2t5Vmlld2tlZXBlcl09XCJbXG4gICAgICAgICcuc2t5LWxvb2t1cC1zaG93LW1vcmUtbW9kYWwtdG9vbGJhcicsXG4gICAgICAgICcuc2t5LWxvb2t1cC1zaG93LW1vcmUtbW9kYWwtbXVpbHRpc2VsZWN0LXRvb2xiYXInXG4gICAgICBdXCJcbiAgICA+XG4gICAgICA8c2t5LXRvb2xiYXIgY2xhc3M9XCJza3ktbG9va3VwLXNob3ctbW9yZS1tb2RhbC10b29sYmFyXCI+XG4gICAgICAgIDxza3ktdG9vbGJhci1zZWN0aW9uPlxuICAgICAgICAgIDxza3ktdG9vbGJhci1pdGVtPlxuICAgICAgICAgICAgPHNreS1zZWFyY2hcbiAgICAgICAgICAgICAgW2RlYm91bmNlVGltZV09XCIyNTBcIlxuICAgICAgICAgICAgICBbc2VhcmNoVGV4dF09XCJzZWFyY2hUZXh0XCJcbiAgICAgICAgICAgICAgKHNlYXJjaEFwcGx5KT1cInNlYXJjaEFwcGxpZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8L3NreS1zZWFyY2g+XG4gICAgICAgICAgPC9za3ktdG9vbGJhci1pdGVtPlxuICAgICAgICAgIDxza3ktdG9vbGJhci12aWV3LWFjdGlvbnM+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICpuZ0lmPVwiY29udGV4dC5zaG93QWRkQnV0dG9uXCJcbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgIGNsYXNzPVwic2t5LWJ0biBza3ktYnRuLWxpbmsgc2t5LWxvb2t1cC1zaG93LW1vcmUtbW9kYWwtYWRkXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImFkZEJ1dHRvbkNsaWNrZWQoKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxza3ktaWNvblxuICAgICAgICAgICAgICAgICpza3lUaGVtZUlmPVwiJ21vZGVybidcIlxuICAgICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICAgIGljb25UeXBlPVwic2t5dXhcIlxuICAgICAgICAgICAgICA+PC9za3ktaWNvbj5cbiAgICAgICAgICAgICAgPHNreS1pY29uICpza3lUaGVtZUlmPVwiJ2RlZmF1bHQnXCIgaWNvbj1cInBsdXMtY2lyY2xlXCI+PC9za3ktaWNvbj5cbiAgICAgICAgICAgICAge3sgJ3NreXV4X2xvb2t1cF9zaG93X21vcmVfYWRkJyB8IHNreUxpYlJlc291cmNlcyB9fVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC9za3ktdG9vbGJhci12aWV3LWFjdGlvbnM+XG4gICAgICAgIDwvc2t5LXRvb2xiYXItc2VjdGlvbj5cbiAgICAgIDwvc2t5LXRvb2xiYXI+XG4gICAgICA8c2t5LXRvb2xiYXJcbiAgICAgICAgKm5nSWY9XCJjb250ZXh0LnNlbGVjdE1vZGUgPT09ICdtdWx0aXBsZSdcIlxuICAgICAgICBjbGFzcz1cInNreS1sb29rdXAtc2hvdy1tb3JlLW1vZGFsLW11aWx0aXNlbGVjdC10b29sYmFyXCJcbiAgICAgID5cbiAgICAgICAgPHNreS10b29sYmFyLXNlY3Rpb24+XG4gICAgICAgICAgPHNreS10b29sYmFyLWl0ZW0+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIGNsYXNzPVwiXG4gICAgICAgICAgICAgICAgc2t5LWJ0biBza3ktYnRuLWxpbmsgc2t5LWxvb2t1cC1zaG93LW1vcmUtbW9kYWwtc2VsZWN0LWFsbC1idG5cbiAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RBbGwoKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgJ3NreXV4X2xvb2t1cF9zaG93X21vcmVfc2VsZWN0X2FsbF9idXR0b25fdGl0bGUnXG4gICAgICAgICAgICAgICAgICB8IHNreUxpYlJlc291cmNlc1xuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC9za3ktdG9vbGJhci1pdGVtPlxuICAgICAgICAgIDxza3ktdG9vbGJhci1pdGVtPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICBjbGFzcz1cIlxuICAgICAgICAgICAgICAgIHNreS1idG4gc2t5LWJ0bi1saW5rIHNreS1sb29rdXAtc2hvdy1tb3JlLW1vZGFsLWNsZWFyLWFsbC1idG5cbiAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJjbGVhckFsbCgpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAnc2t5dXhfbG9va3VwX3Nob3dfbW9yZV9jbGVhcl9hbGxfYnV0dG9uX3RpdGxlJ1xuICAgICAgICAgICAgICAgICAgfCBza3lMaWJSZXNvdXJjZXNcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvc2t5LXRvb2xiYXItaXRlbT5cbiAgICAgICAgICA8c2t5LXRvb2xiYXItdmlldy1hY3Rpb25zPlxuICAgICAgICAgICAgPHNreS1jaGVja2JveFxuICAgICAgICAgICAgICBbKGNoZWNrZWQpXT1cIm9ubHlTaG93U2VsZWN0ZWRcIlxuICAgICAgICAgICAgICAoY2hhbmdlKT1cInVwZGF0ZURhdGFTdGF0ZSgpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPHNreS1jaGVja2JveC1sYWJlbD5cbiAgICAgICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAgICAgJ3NreXV4X2xvb2t1cF9zaG93X21vcmVfc2hvd19zZWxlY3RlZF9vcHRpb25fdGl0bGUnXG4gICAgICAgICAgICAgICAgICAgIHwgc2t5TGliUmVzb3VyY2VzXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPC9za3ktY2hlY2tib3gtbGFiZWw+XG4gICAgICAgICAgICA8L3NreS1jaGVja2JveD5cbiAgICAgICAgICA8L3NreS10b29sYmFyLXZpZXctYWN0aW9ucz5cbiAgICAgICAgPC9za3ktdG9vbGJhci1zZWN0aW9uPlxuICAgICAgPC9za3ktdG9vbGJhcj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2XG4gICAgICAqbmdJZj1cImRpc3BsYXllZEl0ZW1zLmxlbmd0aCA9PT0gMFwiXG4gICAgICBjbGFzcz1cInNreS1mb250LWRlZW1waGFzaXplZCBza3ktbG9va3VwLXNob3ctbW9yZS1uby1yZXN1bHRzXCJcbiAgICA+XG4gICAgICB7eyAnc2t5dXhfbG9va3VwX3Nob3dfbW9yZV9ub19yZXN1bHRzJyB8IHNreUxpYlJlc291cmNlcyB9fVxuICAgIDwvZGl2PlxuICAgIDxza3ktcmVwZWF0ZXIgY2xhc3M9XCJza3ktbG9va3VwLXNob3ctbW9yZS1yZXBlYXRlclwiIGV4cGFuZE1vZGU9XCJub25lXCI+XG4gICAgICA8c2t5LXJlcGVhdGVyLWl0ZW1cbiAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZGlzcGxheWVkSXRlbXNcIlxuICAgICAgICBbc2VsZWN0YWJsZV09XCJjb250ZXh0LnNlbGVjdE1vZGUgPT09ICdtdWx0aXBsZSdcIlxuICAgICAgICBbKGlzU2VsZWN0ZWQpXT1cIml0ZW0uc2VsZWN0ZWRcIlxuICAgICAgICAoY2xpY2spPVwiaXRlbUNsaWNrKGl0ZW0pXCJcbiAgICAgICAgKGtleXVwLmVudGVyKT1cIml0ZW1DbGljayhpdGVtKVwiXG4gICAgICAgIChpc1NlbGVjdGVkQ2hhbmdlKT1cIm9uSXRlbVNlbGVjdCgkZXZlbnQsIGl0ZW0pXCJcbiAgICAgID5cbiAgICAgICAgPHNreS1yZXBlYXRlci1pdGVtLWNvbnRlbnQ+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgY29udGV4dC51c2VyQ29uZmlnPy5pdGVtVGVtcGxhdGVcbiAgICAgICAgICAgICAgICA/IGNvbnRleHQudXNlckNvbmZpZz8uaXRlbVRlbXBsYXRlXG4gICAgICAgICAgICAgICAgOiBkZWZhdWx0SXRlbVRlbXBsYXRlO1xuICAgICAgICAgICAgICBjb250ZXh0OiB7IGl0ZW06IGl0ZW0udmFsdWUgfVxuICAgICAgICAgICAgXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvc2t5LXJlcGVhdGVyLWl0ZW0tY29udGVudD5cbiAgICAgIDwvc2t5LXJlcGVhdGVyLWl0ZW0+XG4gICAgPC9za3ktcmVwZWF0ZXI+XG4gICAgPHNreS1pbmZpbml0ZS1zY3JvbGwgW2VuYWJsZWRdPVwiaXRlbXNIYXZlTW9yZVwiIChzY3JvbGxFbmQpPVwiYWRkSXRlbXMoKVwiPlxuICAgIDwvc2t5LWluZmluaXRlLXNjcm9sbD5cbiAgPC9za3ktbW9kYWwtY29udGVudD5cbiAgPHNreS1tb2RhbC1mb290ZXI+XG4gICAgPGJ1dHRvblxuICAgICAgY2xhc3M9XCJcbiAgICAgICAgc2t5LWJ0blxuICAgICAgICBza3ktYnRuLXByaW1hcnlcbiAgICAgICAgc2t5LW1hcmdpbi1pbmxpbmUtY29tcGFjdFxuICAgICAgICBza3ktbG9va3VwLXNob3ctbW9yZS1tb2RhbC1zYXZlXG4gICAgICBcIlxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAoY2xpY2spPVwibW9kYWxJbnN0YW5jZS5zYXZlKHNlbGVjdGVkSXRlbXMpXCJcbiAgICA+XG4gICAgICB7eyAnc2t5dXhfbG9va3VwX3Nob3dfbW9yZV9zZWxlY3QnIHwgc2t5TGliUmVzb3VyY2VzIH19XG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvblxuICAgICAgY2xhc3M9XCJza3ktYnRuIHNreS1idG4tbGluayBza3ktbG9va3VwLXNob3ctbW9yZS1tb2RhbC1jbG9zZVwiXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIChjbGljayk9XCJtb2RhbEluc3RhbmNlLmNsb3NlKClcIlxuICAgID5cbiAgICAgIHt7ICdza3l1eF9sb29rdXBfc2hvd19tb3JlX2NhbmNlbCcgfCBza3lMaWJSZXNvdXJjZXMgfX1cbiAgICA8L2J1dHRvbj5cbiAgPC9za3ktbW9kYWwtZm9vdGVyPlxuPC9za3ktbW9kYWw+XG5cbjxuZy10ZW1wbGF0ZSBsZXQtaXRlbT1cIml0ZW1cIiAjZGVmYXVsdEl0ZW1UZW1wbGF0ZT5cbiAge3sgaXRlbVtjb250ZXh0LmRlc2NyaXB0b3JQcm9wZXJ0eV0gfX1cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZGVmYXVsdFRpdGxlPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29udGV4dC5zZWxlY3RNb2RlID09PSAnc2luZ2xlJ1wiPlxuICAgIHt7ICdza3l1eF9sb29rdXBfc2hvd19tb3JlX21vZGFsX3RpdGxlX3NpbmdsZScgfCBza3lMaWJSZXNvdXJjZXMgfX1cbiAgPC9uZy1jb250YWluZXI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb250ZXh0LnNlbGVjdE1vZGUgPT09ICdtdWx0aXBsZSdcIj5cbiAgICB7eyAnc2t5dXhfbG9va3VwX3Nob3dfbW9yZV9tb2RhbF90aXRsZV9tdWx0aXBsZScgfCBza3lMaWJSZXNvdXJjZXMgfX1cbiAgPC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuIl19
|