@skyux/list-builder 8.0.0-alpha.2 → 8.0.0-alpha.21
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/documentation.json +176 -174
- package/esm2020/lib/modules/list/list-view.component.mjs +1 -1
- package/esm2020/lib/modules/list/list.component.mjs +4 -4
- package/esm2020/lib/modules/list/list.module.mjs +4 -4
- package/esm2020/lib/modules/list/state/list-state.rxstate.mjs +3 -3
- package/esm2020/lib/modules/list/state/list-state.state-node.mjs +3 -3
- package/esm2020/lib/modules/list-filters/list-filter-button.component.mjs +3 -3
- package/esm2020/lib/modules/list-filters/list-filter-inline-item-renderer.component.mjs +3 -3
- package/esm2020/lib/modules/list-filters/list-filter-inline-item.component.mjs +3 -3
- package/esm2020/lib/modules/list-filters/list-filter-inline.component.mjs +3 -3
- package/esm2020/lib/modules/list-filters/list-filter-summary.component.mjs +3 -3
- package/esm2020/lib/modules/list-filters/list-filters.module.mjs +4 -4
- package/esm2020/lib/modules/list-paging/list-paging.component.mjs +3 -3
- package/esm2020/lib/modules/list-paging/list-paging.module.mjs +4 -4
- package/esm2020/lib/modules/list-toolbar/list-multiselect-toolbar.component.mjs +3 -3
- package/esm2020/lib/modules/list-toolbar/list-secondary-actions/list-secondary-action.component.mjs +3 -3
- package/esm2020/lib/modules/list-toolbar/list-secondary-actions/list-secondary-actions-host.component.mjs +3 -3
- package/esm2020/lib/modules/list-toolbar/list-secondary-actions/list-secondary-actions.component.mjs +3 -3
- package/esm2020/lib/modules/list-toolbar/list-secondary-actions/list-secondary-actions.module.mjs +4 -4
- package/esm2020/lib/modules/list-toolbar/list-secondary-actions/list-secondary-actions.service.mjs +3 -3
- package/esm2020/lib/modules/list-toolbar/list-toolbar-item-renderer.component.mjs +3 -3
- package/esm2020/lib/modules/list-toolbar/list-toolbar-item.component.mjs +3 -3
- package/esm2020/lib/modules/list-toolbar/list-toolbar-search-actions.component.mjs +3 -3
- package/esm2020/lib/modules/list-toolbar/list-toolbar-sort.component.mjs +3 -3
- package/esm2020/lib/modules/list-toolbar/list-toolbar-view-actions.component.mjs +3 -3
- package/esm2020/lib/modules/list-toolbar/list-toolbar.component.mjs +28 -28
- package/esm2020/lib/modules/list-toolbar/list-toolbar.module.mjs +4 -4
- package/esm2020/lib/modules/list-toolbar/state/toolbar-state.rxstate.mjs +3 -3
- package/esm2020/lib/modules/list-toolbar/state/toolbar-state.state-node.mjs +3 -3
- package/esm2020/lib/modules/shared/sky-list-builder-resources.module.mjs +4 -4
- package/fesm2015/skyux-list-builder.mjs +114 -114
- package/fesm2015/skyux-list-builder.mjs.map +1 -1
- package/fesm2020/skyux-list-builder.mjs +114 -114
- package/fesm2020/skyux-list-builder.mjs.map +1 -1
- package/lib/modules/list/state/list-state-action.type.d.ts +1 -1
- package/lib/modules/list-toolbar/state/toolbar-state-action.type.d.ts +1 -1
- package/package.json +13 -13
package/esm2020/lib/modules/list-toolbar/list-secondary-actions/list-secondary-actions.module.mjs
CHANGED
|
@@ -13,20 +13,20 @@ import * as i0 from "@angular/core";
|
|
|
13
13
|
*/
|
|
14
14
|
export class SkyListSecondaryActionsModule {
|
|
15
15
|
}
|
|
16
|
-
SkyListSecondaryActionsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1
|
|
17
|
-
SkyListSecondaryActionsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.1
|
|
16
|
+
SkyListSecondaryActionsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SkyListSecondaryActionsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
17
|
+
SkyListSecondaryActionsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.1", ngImport: i0, type: SkyListSecondaryActionsModule, declarations: [SkyListSecondaryActionsComponent,
|
|
18
18
|
SkyListSecondaryActionsHostComponent,
|
|
19
19
|
SkyListSecondaryActionComponent], imports: [CommonModule,
|
|
20
20
|
SkyDropdownModule,
|
|
21
21
|
SkyI18nModule,
|
|
22
22
|
SkyIconModule,
|
|
23
23
|
SkyListBuilderResourcesModule], exports: [SkyListSecondaryActionsComponent, SkyListSecondaryActionComponent] });
|
|
24
|
-
SkyListSecondaryActionsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.1
|
|
24
|
+
SkyListSecondaryActionsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SkyListSecondaryActionsModule, imports: [CommonModule,
|
|
25
25
|
SkyDropdownModule,
|
|
26
26
|
SkyI18nModule,
|
|
27
27
|
SkyIconModule,
|
|
28
28
|
SkyListBuilderResourcesModule] });
|
|
29
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1
|
|
29
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SkyListSecondaryActionsModule, decorators: [{
|
|
30
30
|
type: NgModule,
|
|
31
31
|
args: [{
|
|
32
32
|
declarations: [
|
package/esm2020/lib/modules/list-toolbar/list-secondary-actions/list-secondary-actions.service.mjs
CHANGED
|
@@ -28,9 +28,9 @@ export class SkyListSecondaryActionsService {
|
|
|
28
28
|
this.actionsStream.complete();
|
|
29
29
|
}
|
|
30
30
|
}
|
|
31
|
-
SkyListSecondaryActionsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1
|
|
32
|
-
SkyListSecondaryActionsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1
|
|
33
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1
|
|
31
|
+
SkyListSecondaryActionsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SkyListSecondaryActionsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
32
|
+
SkyListSecondaryActionsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SkyListSecondaryActionsService });
|
|
33
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SkyListSecondaryActionsService, decorators: [{
|
|
34
34
|
type: Injectable
|
|
35
35
|
}] });
|
|
36
36
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1zZWNvbmRhcnktYWN0aW9ucy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2xpc3QtYnVpbGRlci9zcmMvbGliL21vZHVsZXMvbGlzdC10b29sYmFyL2xpc3Qtc2Vjb25kYXJ5LWFjdGlvbnMvbGlzdC1zZWNvbmRhcnktYWN0aW9ucy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFFdEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFJdkM7O0dBRUc7QUFFSCxNQUFNLE9BQU8sOEJBQThCO0lBRDNDO1FBRVMsMEJBQXFCLEdBQUcsQ0FBQyxDQUFDO1FBQzFCLDRCQUF1QixHQUFHLElBQUksZUFBZSxDQUFTLENBQUMsQ0FBQyxDQUFDO1FBQ3pELGtCQUFhLEdBQUcsSUFBSSxlQUFlLENBQTJCLEVBQUUsQ0FBQyxDQUFDO1FBQ2pFLFlBQU8sR0FBNkIsRUFBRSxDQUFDO0tBc0JoRDtJQXBCUSxrQkFBa0IsQ0FBQyxNQUE4QjtRQUN0RCxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUM3QixJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQzlELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzFCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRU0scUJBQXFCLENBQUMsTUFBVztRQUN0QyxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUM3QixJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQzlELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQ2hDLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQyxZQUFZLEtBQUssTUFBTSxDQUMxQyxDQUFDO1FBQ0YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN4QyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2hDLENBQUM7OzJIQXpCVSw4QkFBOEI7K0hBQTlCLDhCQUE4QjsyRkFBOUIsOEJBQThCO2tCQUQxQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBTa3lMaXN0U2Vjb25kYXJ5QWN0aW9uIH0gZnJvbSAnLi9saXN0LXNlY29uZGFyeS1hY3Rpb24nO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU2t5TGlzdFNlY29uZGFyeUFjdGlvbnNTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcHVibGljIHNlY29uZGFyeUFjdGlvbnNDb3VudCA9IDA7XG4gIHB1YmxpYyBzZWNvbmRhcnlBY3Rpb25zU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPigwKTtcbiAgcHVibGljIGFjdGlvbnNTdHJlYW0gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFNreUxpc3RTZWNvbmRhcnlBY3Rpb25bXT4oW10pO1xuICBwcml2YXRlIGFjdGlvbnM6IFNreUxpc3RTZWNvbmRhcnlBY3Rpb25bXSA9IFtdO1xuXG4gIHB1YmxpYyBhZGRTZWNvbmRhcnlBY3Rpb24oYWN0aW9uOiBTa3lMaXN0U2Vjb25kYXJ5QWN0aW9uKSB7XG4gICAgdGhpcy5zZWNvbmRhcnlBY3Rpb25zQ291bnQrKztcbiAgICB0aGlzLnNlY29uZGFyeUFjdGlvbnNTdWJqZWN0Lm5leHQodGhpcy5zZWNvbmRhcnlBY3Rpb25zQ291bnQpO1xuICAgIHRoaXMuYWN0aW9ucy5wdXNoKGFjdGlvbik7XG4gICAgdGhpcy5hY3Rpb25zU3RyZWFtLm5leHQodGhpcy5hY3Rpb25zKTtcbiAgfVxuXG4gIHB1YmxpYyByZW1vdmVTZWNvbmRhcnlBY3Rpb24oYWN0aW9uOiBhbnkpIHtcbiAgICB0aGlzLnNlY29uZGFyeUFjdGlvbnNDb3VudC0tO1xuICAgIHRoaXMuc2Vjb25kYXJ5QWN0aW9uc1N1YmplY3QubmV4dCh0aGlzLnNlY29uZGFyeUFjdGlvbnNDb3VudCk7XG4gICAgdGhpcy5hY3Rpb25zID0gdGhpcy5hY3Rpb25zLmZpbHRlcihcbiAgICAgIChleGlzdGluZ0l0ZW0pID0+IGV4aXN0aW5nSXRlbSAhPT0gYWN0aW9uXG4gICAgKTtcbiAgICB0aGlzLmFjdGlvbnNTdHJlYW0ubmV4dCh0aGlzLmFjdGlvbnMpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuc2Vjb25kYXJ5QWN0aW9uc1N1YmplY3QuY29tcGxldGUoKTtcbiAgICB0aGlzLmFjdGlvbnNTdHJlYW0uY29tcGxldGUoKTtcbiAgfVxufVxuIl19
|
|
@@ -10,9 +10,9 @@ export class SkyListToolbarItemRendererComponent {
|
|
|
10
10
|
}
|
|
11
11
|
}
|
|
12
12
|
}
|
|
13
|
-
SkyListToolbarItemRendererComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1
|
|
14
|
-
SkyListToolbarItemRendererComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1
|
|
15
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1
|
|
13
|
+
SkyListToolbarItemRendererComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SkyListToolbarItemRendererComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
14
|
+
SkyListToolbarItemRendererComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.1", type: SkyListToolbarItemRendererComponent, selector: "sky-list-toolbar-item-renderer", inputs: { template: "template" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: '<ng-template #container></ng-template>', isInline: true });
|
|
15
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SkyListToolbarItemRendererComponent, decorators: [{
|
|
16
16
|
type: Component,
|
|
17
17
|
args: [{
|
|
18
18
|
selector: 'sky-list-toolbar-item-renderer',
|
|
@@ -27,9 +27,9 @@ export class SkyListToolbarItemComponent {
|
|
|
27
27
|
return this.templates.length > 0 ? this.templates.first : undefined;
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
|
-
SkyListToolbarItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1
|
|
31
|
-
SkyListToolbarItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1
|
|
32
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1
|
|
30
|
+
SkyListToolbarItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SkyListToolbarItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
31
|
+
SkyListToolbarItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.1", type: SkyListToolbarItemComponent, selector: "sky-list-toolbar-item", inputs: { id: "id", index: "index", location: "location" }, queries: [{ propertyName: "templates", predicate: TemplateRef }], ngImport: i0, template: '<ng-content></ng-content>', isInline: true });
|
|
32
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SkyListToolbarItemComponent, decorators: [{
|
|
33
33
|
type: Component,
|
|
34
34
|
args: [{
|
|
35
35
|
selector: 'sky-list-toolbar-item',
|
|
@@ -6,9 +6,9 @@ import * as i0 from "@angular/core";
|
|
|
6
6
|
*/
|
|
7
7
|
export class SkyListToolbarSearchActionsComponent {
|
|
8
8
|
}
|
|
9
|
-
SkyListToolbarSearchActionsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1
|
|
10
|
-
SkyListToolbarSearchActionsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1
|
|
11
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1
|
|
9
|
+
SkyListToolbarSearchActionsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SkyListToolbarSearchActionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
10
|
+
SkyListToolbarSearchActionsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.1", type: SkyListToolbarSearchActionsComponent, selector: "sky-list-toolbar-search-actions", ngImport: i0, template: "<div class=\"sky-list-toolbar-search-actions\">\n <ng-content></ng-content>\n</div>\n", styles: [".sky-list-toolbar-search-actions{margin-left:10px}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
11
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SkyListToolbarSearchActionsComponent, decorators: [{
|
|
12
12
|
type: Component,
|
|
13
13
|
args: [{ selector: 'sky-list-toolbar-search-actions', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"sky-list-toolbar-search-actions\">\n <ng-content></ng-content>\n</div>\n", styles: [".sky-list-toolbar-search-actions{margin-left:10px}\n"] }]
|
|
14
14
|
}] });
|
|
@@ -6,9 +6,9 @@ import * as i0 from "@angular/core";
|
|
|
6
6
|
*/
|
|
7
7
|
export class SkyListToolbarSortComponent {
|
|
8
8
|
}
|
|
9
|
-
SkyListToolbarSortComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1
|
|
10
|
-
SkyListToolbarSortComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1
|
|
11
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1
|
|
9
|
+
SkyListToolbarSortComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SkyListToolbarSortComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
10
|
+
SkyListToolbarSortComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.1", type: SkyListToolbarSortComponent, selector: "sky-list-toolbar-sort", inputs: { label: "label", field: "field", type: "type", descending: "descending" }, ngImport: i0, template: '', isInline: true });
|
|
11
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SkyListToolbarSortComponent, decorators: [{
|
|
12
12
|
type: Component,
|
|
13
13
|
args: [{
|
|
14
14
|
selector: 'sky-list-toolbar-sort',
|
|
@@ -17,9 +17,9 @@ export class SkyListToolbarViewActionsComponent {
|
|
|
17
17
|
});
|
|
18
18
|
}
|
|
19
19
|
}
|
|
20
|
-
SkyListToolbarViewActionsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1
|
|
21
|
-
SkyListToolbarViewActionsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1
|
|
22
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1
|
|
20
|
+
SkyListToolbarViewActionsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SkyListToolbarViewActionsComponent, deps: [{ token: i1.SkyLogService }], target: i0.ɵɵFactoryTarget.Component });
|
|
21
|
+
SkyListToolbarViewActionsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.1", type: SkyListToolbarViewActionsComponent, selector: "sky-list-toolbar-view-actions", ngImport: i0, template: "<ng-content></ng-content>\n", styles: [":host{display:flex;align-items:center}:host::ng-deep>:not(:last-child){margin-right:5px}.sky-list-toolbar-view-actions ::ng-deep>:not(:last-child){margin-right:5px}\n"] });
|
|
22
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SkyListToolbarViewActionsComponent, decorators: [{
|
|
23
23
|
type: Component,
|
|
24
24
|
args: [{ selector: 'sky-list-toolbar-view-actions', template: "<ng-content></ng-content>\n", styles: [":host{display:flex;align-items:center}:host::ng-deep>:not(:last-child){margin-right:5px}.sky-list-toolbar-view-actions ::ng-deep>:not(:last-child){margin-right:5px}\n"] }]
|
|
25
25
|
}], ctorParameters: function () { return [{ type: i1.SkyLogService }]; } });
|
|
@@ -35,6 +35,30 @@ let nextId = 0;
|
|
|
35
35
|
* @deprecated
|
|
36
36
|
*/
|
|
37
37
|
export class SkyListToolbarComponent {
|
|
38
|
+
/**
|
|
39
|
+
* Whether to use the in-memory search.
|
|
40
|
+
* Setting this to `false` will allow consumers to run their own searches remotely,
|
|
41
|
+
* and push new values to the list component by updating the `data` property.
|
|
42
|
+
* @default true
|
|
43
|
+
* @internal
|
|
44
|
+
*/
|
|
45
|
+
set inMemorySearchEnabled(value) {
|
|
46
|
+
this._inMemorySearchEnabled = value;
|
|
47
|
+
}
|
|
48
|
+
get inMemorySearchEnabled() {
|
|
49
|
+
if (this._inMemorySearchEnabled === undefined) {
|
|
50
|
+
return true;
|
|
51
|
+
}
|
|
52
|
+
return this._inMemorySearchEnabled;
|
|
53
|
+
}
|
|
54
|
+
get isFilterBarDisplayed() {
|
|
55
|
+
return (!this.isToolbarDisabled &&
|
|
56
|
+
this.hasInlineFilters &&
|
|
57
|
+
this.inlineFilterBarExpanded);
|
|
58
|
+
}
|
|
59
|
+
get filterButtonAriaControls() {
|
|
60
|
+
return this.isFilterBarDisplayed ? this.listFilterInlineId : undefined;
|
|
61
|
+
}
|
|
38
62
|
constructor(changeDetector, state, dispatcher, toolbarState, toolbarDispatcher, logger) {
|
|
39
63
|
this.changeDetector = changeDetector;
|
|
40
64
|
this.state = state;
|
|
@@ -71,30 +95,6 @@ export class SkyListToolbarComponent {
|
|
|
71
95
|
replacementRecommendation: 'Use data manager instead.',
|
|
72
96
|
});
|
|
73
97
|
}
|
|
74
|
-
/**
|
|
75
|
-
* Whether to use the in-memory search.
|
|
76
|
-
* Setting this to `false` will allow consumers to run their own searches remotely,
|
|
77
|
-
* and push new values to the list component by updating the `data` property.
|
|
78
|
-
* @default true
|
|
79
|
-
* @internal
|
|
80
|
-
*/
|
|
81
|
-
set inMemorySearchEnabled(value) {
|
|
82
|
-
this._inMemorySearchEnabled = value;
|
|
83
|
-
}
|
|
84
|
-
get inMemorySearchEnabled() {
|
|
85
|
-
if (this._inMemorySearchEnabled === undefined) {
|
|
86
|
-
return true;
|
|
87
|
-
}
|
|
88
|
-
return this._inMemorySearchEnabled;
|
|
89
|
-
}
|
|
90
|
-
get isFilterBarDisplayed() {
|
|
91
|
-
return (!this.isToolbarDisabled &&
|
|
92
|
-
this.hasInlineFilters &&
|
|
93
|
-
this.inlineFilterBarExpanded);
|
|
94
|
-
}
|
|
95
|
-
get filterButtonAriaControls() {
|
|
96
|
-
return this.isFilterBarDisplayed ? this.listFilterInlineId : undefined;
|
|
97
|
-
}
|
|
98
98
|
ngOnInit() {
|
|
99
99
|
this.dispatcher.toolbarExists(true);
|
|
100
100
|
getValue(this.searchText, (searchText) => {
|
|
@@ -292,13 +292,13 @@ export class SkyListToolbarComponent {
|
|
|
292
292
|
});
|
|
293
293
|
}
|
|
294
294
|
}
|
|
295
|
-
SkyListToolbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1
|
|
296
|
-
SkyListToolbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1
|
|
295
|
+
SkyListToolbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SkyListToolbarComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.ListState }, { token: i2.ListStateDispatcher }, { token: i3.ListToolbarState }, { token: i4.ListToolbarStateDispatcher }, { token: i5.SkyLogService }], target: i0.ɵɵFactoryTarget.Component });
|
|
296
|
+
SkyListToolbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.1", type: SkyListToolbarComponent, selector: "sky-list-toolbar", inputs: { inMemorySearchEnabled: "inMemorySearchEnabled", placeholder: "placeholder", searchEnabled: "searchEnabled", sortSelectorEnabled: "sortSelectorEnabled", toolbarType: "toolbarType", searchText: "searchText" }, providers: [
|
|
297
297
|
ListToolbarState,
|
|
298
298
|
ListToolbarStateDispatcher,
|
|
299
299
|
ListToolbarStateModel,
|
|
300
300
|
], queries: [{ propertyName: "toolbarItems", predicate: SkyListToolbarItemComponent }, { propertyName: "toolbarSorts", predicate: SkyListToolbarSortComponent }, { propertyName: "filterSummary", predicate: SkyListFilterSummaryComponent }, { propertyName: "inlineFilter", predicate: SkyListFilterInlineComponent }, { propertyName: "viewActions", predicate: SkyListToolbarViewActionsComponent }], viewQueries: [{ propertyName: "searchComponent", first: true, predicate: SkySearchComponent, descendants: true, read: SkySearchComponent }, { propertyName: "searchTemplate", first: true, predicate: ["search"], descendants: true, read: TemplateRef, static: true }, { propertyName: "sortSelectorTemplate", first: true, predicate: ["sortSelector"], descendants: true, read: TemplateRef, static: true }, { propertyName: "inlineFilterButtonTemplate", first: true, predicate: ["inlineFilterButton"], descendants: true, read: TemplateRef, static: true }], ngImport: i0, template: "<div class=\"sky-list-toolbar-container\">\n <sky-toolbar *ngIf=\"(type | async) !== 'search'\">\n <sky-toolbar-section>\n <sky-toolbar-item *ngFor=\"let item of leftTemplates\">\n <sky-list-toolbar-item-renderer\n [attr.sky-cmp-id]=\"item.id\"\n [template]=\"item.template\"\n >\n </sky-list-toolbar-item-renderer>\n </sky-toolbar-item>\n <sky-toolbar-item *ngFor=\"let item of centerTemplates\">\n <sky-list-toolbar-item-renderer\n [attr.sky-cmp-id]=\"item.id\"\n [template]=\"item.template\"\n >\n </sky-list-toolbar-item-renderer>\n </sky-toolbar-item>\n <sky-toolbar-item\n *ngFor=\"let item of rightTemplates\"\n [attr.sky-toolbar-id]=\"item.id\"\n >\n <sky-list-toolbar-item-renderer\n [attr.sky-cmp-id]=\"item.id\"\n [template]=\"item.template\"\n >\n </sky-list-toolbar-item-renderer>\n </sky-toolbar-item>\n\n <ng-content></ng-content>\n\n <sky-toolbar-view-actions *ngIf=\"hasViewActions\">\n <ng-content select=\"sky-list-toolbar-view-actions\"> </ng-content>\n </sky-toolbar-view-actions>\n </sky-toolbar-section>\n\n <sky-toolbar-section\n *ngIf=\"showFilterSummary && (hasAppliedFilters | async)\"\n >\n <ng-content select=\"sky-list-filter-summary\"> </ng-content>\n </sky-toolbar-section>\n </sky-toolbar>\n\n <div\n *ngIf=\"\n (type | async) === 'search' &&\n ((isSearchEnabled | async) || hasAdditionalToolbarSection)\n \"\n class=\"sky-list-toolbar-search\"\n >\n <sky-toolbar>\n <sky-toolbar-section *ngIf=\"isSearchEnabled | async\">\n <sky-toolbar-item>\n <sky-list-toolbar-item-renderer\n sky-cmp-id=\"search\"\n [template]=\"search\"\n >\n </sky-list-toolbar-item-renderer>\n </sky-toolbar-item>\n </sky-toolbar-section>\n <sky-toolbar-section [hidden]=\"!hasAdditionalToolbarSection\">\n <sky-toolbar-item *ngFor=\"let item of leftTemplates\">\n <sky-list-toolbar-item-renderer\n [attr.sky-cmp-id]=\"item.id\"\n [template]=\"item.template\"\n >\n </sky-list-toolbar-item-renderer>\n </sky-toolbar-item>\n <sky-toolbar-item *ngFor=\"let item of centerTemplates\">\n <sky-list-toolbar-item-renderer\n [attr.sky-cmp-id]=\"item.id\"\n [template]=\"item.template\"\n >\n </sky-list-toolbar-item-renderer>\n </sky-toolbar-item>\n <sky-toolbar-item\n *ngFor=\"let item of rightTemplates\"\n [attr.sky-toolbar-id]=\"item.id\"\n >\n <sky-list-toolbar-item-renderer\n *ngIf=\"item.id !== 'search'\"\n [attr.sky-cmp-id]=\"item.id\"\n [template]=\"item.template\"\n >\n </sky-list-toolbar-item-renderer>\n </sky-toolbar-item>\n <ng-content></ng-content>\n\n <sky-toolbar-view-actions *ngIf=\"hasViewActions\">\n <ng-content select=\"sky-list-toolbar-view-actions\"> </ng-content>\n </sky-toolbar-view-actions>\n </sky-toolbar-section>\n </sky-toolbar>\n </div>\n <div\n *ngIf=\"isFilterBarDisplayed\"\n [attr.aria-labelledby]=\"filterButtonId\"\n [id]=\"listFilterInlineId\"\n >\n <ng-content select=\"sky-list-filter-inline\"> </ng-content>\n </div>\n <sky-list-multiselect-toolbar *ngIf=\"isMultiselectEnabled | async\">\n </sky-list-multiselect-toolbar>\n</div>\n\n<ng-template #search>\n <div *ngIf=\"isSearchEnabled | async\" class=\"sky-list-toolbar-search-wrapper\">\n <sky-search\n [disabled]=\"isToolbarDisabled\"\n [expandMode]=\"(type | async) === 'search' ? 'fit' : 'responsive'\"\n [placeholderText]=\"placeholder\"\n [searchText]=\"searchTextInput | async\"\n (searchApply)=\"updateSearchText($event)\"\n >\n </sky-search>\n <ng-content select=\"sky-list-toolbar-search-actions\"></ng-content>\n </div>\n</ng-template>\n\n<ng-template #sortSelector>\n <div\n *ngIf=\"\n (isSortSelectorEnabled | async) && (sortSelectors | async).length > 0\n \"\n class=\"sky-toolbar-item-sort-container\"\n >\n <sky-sort [showButtonText]=\"true\">\n <sky-sort-item\n *ngFor=\"let item of sortSelectors | async\"\n [active]=\"item.selected\"\n (itemSelect)=\"setSort(item.sort)\"\n >\n {{ item.sort.text }}\n </sky-sort-item>\n </sky-sort>\n </div>\n</ng-template>\n\n<ng-template #inlineFilterButton>\n <sky-filter-button\n [active]=\"hasAppliedFilters | async\"\n [ariaControls]=\"filterButtonAriaControls\"\n [ariaExpanded]=\"inlineFilterBarExpanded\"\n [disabled]=\"isToolbarDisabled\"\n [filterButtonId]=\"filterButtonId\"\n [showButtonText]=\"true\"\n (filterButtonClick)=\"inlineFilterButtonClick()\"\n >\n </sky-filter-button>\n</ng-template>\n", styles: [".sky-list-toolbar-search-wrapper{display:flex}.sky-list-toolbar-search-wrapper ::ng-deep .sky-search-dismiss-absolute{padding:0;position:static}.sky-list-toolbar-search-wrapper ::ng-deep .sky-search-container{position:relative;height:100%}.sky-list-toolbar-search-wrapper ::ng-deep sky-search{flex:1 1 auto}.sky-list-toolbar-search-wrapper ::ng-deep sky-list-toolbar-search-actions{flex:0 0 auto;z-index:1}.sky-list-toolbar-container ::ng-deep .sky-toolbar-section-items sky-toolbar-item{flex:0 1 auto;align-self:flex-start}.sky-list-toolbar-search ::ng-deep .sky-toolbar-section{padding-top:0}.sky-list-toolbar-search ::ng-deep .sky-toolbar-section-items{display:block;width:100%}.sky-list-toolbar-search ::ng-deep .sky-toolbar-item{margin:0}.sky-list-toolbar-search ::ng-deep .sky-toolbar-container,.sky-list-toolbar-search ::ng-deep .sky-search-dismiss-absolute{background-color:#eeeeef}.sky-list-toolbar-search ::ng-deep input[type=text]:disabled,.sky-list-toolbar-search ::ng-deep .sky-search-btn:disabled{background-color:#cdcfd2;opacity:1}.sky-list-toolbar-container ::ng-deep sky-toolbar-item[sky-toolbar-id=sort-selector] .sky-toolbar-item{margin-right:0}.sky-list-toolbar-container ::ng-deep sky-checkbox{position:relative;top:-2px}\n"], dependencies: [{ kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.λ37, selector: "sky-toolbar" }, { kind: "component", type: i7.λ39, selector: "sky-toolbar-item" }, { kind: "component", type: i7.λ38, selector: "sky-toolbar-section" }, { kind: "component", type: i7.λ40, selector: "sky-toolbar-view-actions" }, { kind: "component", type: i8.SkySearchComponent, selector: "sky-search", inputs: ["searchText", "expandMode", "debounceTime", "disabled", "placeholderText"], outputs: ["searchApply", "searchChange", "searchClear"] }, { kind: "component", type: i9.λ14, selector: "sky-sort", inputs: ["showButtonText"] }, { kind: "component", type: i9.λ13, selector: "sky-sort-item", inputs: ["active"], outputs: ["itemSelect"] }, { kind: "component", type: i9.λ1, selector: "sky-filter-button", inputs: ["filterButtonId", "ariaControls", "ariaExpanded", "active", "disabled", "showButtonText"], outputs: ["filterButtonClick"] }, { kind: "component", type: i10.SkyListToolbarItemRendererComponent, selector: "sky-list-toolbar-item-renderer", inputs: ["template"] }, { kind: "component", type: i11.SkyListMultiselectToolbarComponent, selector: "sky-list-multiselect-toolbar", inputs: ["showOnlySelected"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
301
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1
|
|
301
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SkyListToolbarComponent, decorators: [{
|
|
302
302
|
type: Component,
|
|
303
303
|
args: [{ selector: 'sky-list-toolbar', providers: [
|
|
304
304
|
ListToolbarState,
|
|
@@ -357,4 +357,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImpor
|
|
|
357
357
|
static: true,
|
|
358
358
|
}]
|
|
359
359
|
}] } });
|
|
360
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC10b29sYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9saXN0LWJ1aWxkZXIvc3JjL2xpYi9tb2R1bGVzL2xpc3QtdG9vbGJhci9saXN0LXRvb2xiYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2xpc3QtYnVpbGRlci9zcmMvbGliL21vZHVsZXMvbGlzdC10b29sYmFyL2xpc3QtdG9vbGJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxlQUFlLEVBQ2YsS0FBSyxFQUlMLFdBQVcsRUFDWCxTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXRELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBRUwsT0FBTyxFQUNQLGFBQWEsSUFBSSx1QkFBdUIsR0FDekMsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLEdBQUcsSUFBSSxhQUFhLEVBQ3BCLElBQUksRUFDSixTQUFTLEdBQ1YsTUFBTSxnQkFBZ0IsQ0FBQztBQUd4QixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUM1RixPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUc5RixPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUM1RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNqRixPQUFPLEVBQUUsb0JBQW9CLEVB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QVFNLG1CQUFtQjtzQkFEekIsS0FBSztnQkFVQyxXQUFXO3NCQURqQixLQUFLO2dCQU9DLFVBQVU7c0JBRGhCLEtBQUs7Z0JBNkNFLFlBQVk7c0JBRG5CLGVBQWU7dUJBQUMsMkJBQTJCO2dCQUlwQyxZQUFZO3NCQURuQixlQUFlO3VCQUFDLDJCQUEyQjtnQkFJcEMsYUFBYTtzQkFEcEIsZUFBZTt1QkFBQyw2QkFBNkI7Z0JBSXRDLFlBQVk7c0JBRG5CLGVBQWU7dUJBQUMsNEJBQTRCO2dCQUlyQyxXQUFXO3NCQURsQixlQUFlO3VCQUFDLGtDQUFrQztnQkFPM0MsY0FBYztzQkFKckIsU0FBUzt1QkFBQyxRQUFRLEVBQUU7d0JBQ25CLElBQUksRUFBRSxXQUFXO3dCQUNqQixNQUFNLEVBQUUsSUFBSTtxQkFDYjtnQkFPTyxvQkFBb0I7c0JBSjNCLFNBQVM7dUJBQUMsY0FBYyxFQUFFO3dCQUN6QixJQUFJLEVBQUUsV0FBVzt3QkFDakIsTUFBTSxFQUFFLElBQUk7cUJBQ2I7Z0JBT08sMEJBQTBCO3NCQUpqQyxTQUFTO3VCQUFDLG9CQUFvQixFQUFFO3dCQUMvQixJQUFJLEVBQUUsV0FBVzt3QkFDakIsTUFBTSxFQUFFLElBQUk7cUJBQ2IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIFF1ZXJ5TGlzdCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTa3lMb2dTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2NvcmUnO1xuaW1wb3J0IHsgZ2V0VmFsdWUgfSBmcm9tICdAc2t5dXgvbGlzdC1idWlsZGVyLWNvbW1vbic7XG5pbXBvcnQgeyBMaXN0U29ydEZpZWxkU2VsZWN0b3JNb2RlbCB9IGZyb20gJ0Bza3l1eC9saXN0LWJ1aWxkZXItY29tbW9uJztcbmltcG9ydCB7IFNreVNlYXJjaENvbXBvbmVudCB9IGZyb20gJ0Bza3l1eC9sb29rdXAnO1xuXG5pbXBvcnQge1xuICBPYnNlcnZhYmxlLFxuICBTdWJqZWN0LFxuICBjb21iaW5lTGF0ZXN0IGFzIG9ic2VydmFibGVDb21iaW5lTGF0ZXN0LFxufSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxuICBtYXAgYXMgb2JzZXJ2YWJsZU1hcCxcbiAgdGFrZSxcbiAgdGFrZVVudGlsLFxufSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IExpc3RGaWx0ZXJNb2RlbCB9IGZyb20gJy4uL2xpc3QtZmlsdGVycy9maWx0ZXIubW9kZWwnO1xuaW1wb3J0IHsgU2t5TGlzdEZpbHRlcklubGluZUNvbXBvbmVudCB9IGZyb20gJy4uL2xpc3QtZmlsdGVycy9saXN0LWZpbHRlci1pbmxpbmUuY29tcG9uZW50JztcbmltcG9ydCB7IFNreUxpc3RGaWx0ZXJTdW1tYXJ5Q29tcG9uZW50IH0gZnJvbSAnLi4vbGlzdC1maWx0ZXJzL2xpc3QtZmlsdGVyLXN1bW1hcnkuY29tcG9uZW50JztcbmltcG9ydCB7IExpc3RTdGF0ZURpc3BhdGNoZXIgfSBmcm9tICcuLi9saXN0L3N0YXRlL2xpc3Qtc3RhdGUucnhzdGF0ZSc7XG5pbXBvcnQgeyBMaXN0U3RhdGUgfSBmcm9tICcuLi9saXN0L3N0YXRlL2xpc3Qtc3RhdGUuc3RhdGUtbm9kZSc7XG5pbXBvcnQgeyBMaXN0UGFnaW5nU2V0UGFnZU51bWJlckFjdGlvbiB9IGZyb20gJy4uL2xpc3Qvc3RhdGUvcGFnaW5nL3NldC1wYWdlLW51bWJlci5hY3Rpb24nO1xuaW1wb3J0IHsgTGlzdFNvcnRMYWJlbE1vZGVsIH0gZnJvbSAnLi4vbGlzdC9zdGF0ZS9zb3J0L2xhYmVsLm1vZGVsJztcbmltcG9ydCB7IExpc3RUb29sYmFyU2V0VHlwZUFjdGlvbiB9IGZyb20gJy4uL2xpc3Qvc3RhdGUvdG9vbGJhci9zZXQtdHlwZS5hY3Rpb24nO1xuaW1wb3J0IHsgTGlzdFRvb2xiYXJJdGVtTW9kZWwgfSBmcm9tICcuLi9saXN0L3N0YXRlL3Rvb2xiYXIvdG9vbGJhci1pdGVtLm1vZGVsJztcbmltcG9ydCB7IExpc3RUb29sYmFyTW9kZWwgfSBmcm9tICcuLi9saXN0L3N0YXRlL3Rvb2xiYXIvdG9vbGJhci5tb2RlbCc7XG5cbmltcG9ydCB7IFNreUxpc3RUb29sYmFySXRlbUNvbXBvbmVudCB9IGZyb20gJy4vbGlzdC10b29sYmFyLWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IFNreUxpc3RUb29sYmFyU29ydENvbXBvbmVudCB9IGZyb20gJy4vbGlzdC10b29sYmFyLXNvcnQuY29tcG9uZW50JztcbmltcG9ydCB7IFNreUxpc3RUb29sYmFyVmlld0FjdGlvbnNDb21wb25lbnQgfSBmcm9tICcuL2xpc3QtdG9vbGJhci12aWV3LWFjdGlvbnMuY29tcG9uZW50JztcbmltcG9ydCB7IExpc3RUb29sYmFyQ29uZmlnU2V0U2VhcmNoRW5hYmxlZEFjdGlvbiB9IGZyb20gJy4vc3RhdGUvY29uZmlnL3NldC1zZWFyY2gtZW5hYmxlZC5hY3Rpb24nO1xuaW1wb3J0IHsgTGlzdFRvb2xiYXJDb25maWdTZXRTb3J0U2VsZWN0b3JFbmFibGVkQWN0aW9uIH0gZnJvbSAnLi9zdGF0ZS9jb25maWcvc2V0LXNvcnQtc2VsZWN0b3ItZW5hYmxlZC5hY3Rpb24nO1xuaW1wb3J0IHsgTGlzdFRvb2xiYXJTdGF0ZU1vZGVsIH0gZnJvbSAnLi9zdGF0ZS90b29sYmFyLXN0YXRlLm1vZGVsJztcbmltcG9ydCB7IExpc3RUb29sYmFyU3RhdGVEaXNwYXRjaGVyIH0gZnJvbSAnLi9zdGF0ZS90b29sYmFyLXN0YXRlLnJ4c3RhdGUnO1xuaW1wb3J0IHsgTGlzdFRvb2xiYXJTdGF0ZSB9IGZyb20gJy4vc3RhdGUvdG9vbGJhci1zdGF0ZS5zdGF0ZS1ub2RlJztcblxubGV0IG5leHRJZCA9IDA7XG5cbi8qKlxuICogRGlzcGxheXMgYSB0b29sYmFyIGZvciBhIFNLWSBVWC10aGVtZWQgbGlzdCBvZiBkYXRhLlxuICogQGRlcHJlY2F0ZWRcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LWxpc3QtdG9vbGJhcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9saXN0LXRvb2xiYXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9saXN0LXRvb2xiYXIuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgTGlzdFRvb2xiYXJTdGF0ZSxcbiAgICBMaXN0VG9vbGJhclN0YXRlRGlzcGF0Y2hlcixcbiAgICBMaXN0VG9vbGJhclN0YXRlTW9kZWwsXG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lMaXN0VG9vbGJhckNvbXBvbmVudFxuICBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJDb250ZW50SW5pdCwgT25EZXN0cm95XG57XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHVzZSB0aGUgaW4tbWVtb3J5IHNlYXJjaC5cbiAgICogU2V0dGluZyB0aGlzIHRvIGBmYWxzZWAgd2lsbCBhbGxvdyBjb25zdW1lcnMgdG8gcnVuIHRoZWlyIG93biBzZWFyY2hlcyByZW1vdGVseSxcbiAgICogYW5kIHB1c2ggbmV3IHZhbHVlcyB0byB0aGUgbGlzdCBjb21wb25lbnQgYnkgdXBkYXRpbmcgdGhlIGBkYXRhYCBwcm9wZXJ0eS5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgaW5NZW1vcnlTZWFyY2hFbmFibGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5faW5NZW1vcnlTZWFyY2hFbmFibGVkID0gdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGluTWVtb3J5U2VhcmNoRW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5faW5NZW1vcnlTZWFyY2hFbmFibGVkID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5faW5NZW1vcnlTZWFyY2hFbmFibGVkO1xuICB9XG5cbiAgLyoqXG4gICAqIFBsYWNlaG9sZGVyIHRleHQgZm9yIHRoZSBzZWFyY2ggYmFyIHRoYXQgdGhlIGxpc3QgdG9vbGJhciBjcmVhdGVzIHdpdGhcbiAgICogYSBbc2VhcmNoIGNvbXBvbmVudF0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9jb21wb25lbnRzL3NlYXJjaCkuXG4gICAqIEBkZWZhdWx0IFwiRmluZCBpbiB0aGlzIGxpc3RcIlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gZW5hYmxlIHRoZSBzZWFyY2ggYmFyLlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2VhcmNoRW5hYmxlZDogYm9vbGVhbiB8IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgQFZpZXdDaGlsZChTa3lTZWFyY2hDb21wb25lbnQsIHtcbiAgICByZWFkOiBTa3lTZWFyY2hDb21wb25lbnQsXG4gICAgc3RhdGljOiBmYWxzZSxcbiAgfSlcbiAgcHVibGljIHNlYXJjaENvbXBvbmVudDogU2t5U2VhcmNoQ29tcG9uZW50O1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGVuYWJsZSB0aGUgc29ydCBzZWxlY3Rvci5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzb3J0U2VsZWN0b3JFbmFibGVkOiBib29sZWFuIHwgT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICAvKipcbiAgICogRGlzcGxheSB0aGUgc2VhcmNoIGJhciBpbiB0aGUgc3RhbmRhcmQgcG9zaXRpb24gb3IgaW4gYSBzZXBhcmF0ZSBzZWN0aW9uLlxuICAgKiBUbyBoaWdobGlnaHQgdGhlIHNlYXJjaCBiYXIgaW4gYSBzZWN0aW9uIGFib3ZlIGFsbCBvdGhlciB0b29sYmFyIGl0ZW1zLFxuICAgKiBzZXQgdGhpcyBwcm9wZXJ0eSB0byBgc2VhcmNoYC5cbiAgICogQGRlZmF1bHQgXCJzdGFuZGFyZFwiXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgdG9vbGJhclR5cGUgPSAnc3RhbmRhcmQnO1xuXG4gIC8qKlxuICAgKiBUaGUgdGV4dCBzdHJpbmcgdG8gc2VhcmNoIHdpdGguXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2VhcmNoVGV4dDogc3RyaW5nIHwgT2JzZXJ2YWJsZTxzdHJpbmc+O1xuXG4gIHB1YmxpYyBnZXQgaXNGaWx0ZXJCYXJEaXNwbGF5ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgICF0aGlzLmlzVG9vbGJhckRpc2FibGVkICYmXG4gICAgICB0aGlzLmhhc0lubGluZUZpbHRlcnMgJiZcbiAgICAgIHRoaXMuaW5saW5lRmlsdGVyQmFyRXhwYW5kZWRcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGdldCBmaWx0ZXJCdXR0b25BcmlhQ29udHJvbHMoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pc0ZpbHRlckJhckRpc3BsYXllZCA/IHRoaXMubGlzdEZpbHRlcklubGluZUlkIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgcHVibGljIHNvcnRTZWxlY3RvcnM6IE9ic2VydmFibGU8QXJyYXk8YW55Pj47XG4gIHB1YmxpYyBzZWFyY2hUZXh0SW5wdXQ6IE9ic2VydmFibGU8c3RyaW5nPjtcbiAgcHVibGljIHZpZXc6IE9ic2VydmFibGU8c3RyaW5nPjtcbiAgcHVibGljIGxlZnRUZW1wbGF0ZXM6IExpc3RUb29sYmFySXRlbU1vZGVsW107XG4gIHB1YmxpYyBjZW50ZXJUZW1wbGF0ZXM6IExpc3RUb29sYmFySXRlbU1vZGVsW107XG4gIHB1YmxpYyByaWdodFRlbXBsYXRlczogTGlzdFRvb2xiYXJJdGVtTW9kZWxbXTtcbiAgcHVibGljIHR5cGU6IE9ic2VydmFibGU8c3RyaW5nPjtcbiAgcHVibGljIGlzU2VhcmNoRW5hYmxlZDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgcHVibGljIGlzVG9vbGJhckRpc2FibGVkID0gZmFsc2U7XG4gIHB1YmxpYyBpc011bHRpc2VsZWN0RW5hYmxlZDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgcHVibGljIGlzU29ydFNlbGVjdG9yRW5hYmxlZDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgcHVibGljIGFwcGxpZWRGaWx0ZXJzOiBPYnNlcnZhYmxlPEFycmF5PExpc3RGaWx0ZXJNb2RlbD4+O1xuICBwdWJsaWMgaGFzQXBwbGllZEZpbHRlcnM6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIHB1YmxpYyBzaG93RmlsdGVyU3VtbWFyeTogYm9vbGVhbjtcbiAgcHVibGljIGhhc0lubGluZUZpbHRlcnM6IGJvb2xlYW47XG4gIHB1YmxpYyBpbmxpbmVGaWx0ZXJCYXJFeHBhbmRlZCA9IGZhbHNlO1xuICBwdWJsaWMgaGFzQWRkaXRpb25hbFRvb2xiYXJTZWN0aW9uID0gZmFsc2U7XG4gIHB1YmxpYyBoYXNWaWV3QWN0aW9ucyA9IGZhbHNlO1xuXG4gIHB1YmxpYyBmaWx0ZXJCdXR0b25JZCA9IGBza3ktbGlzdC10b29sYmFyLWZpbHRlci1idXR0b24tJHsrK25leHRJZH1gO1xuICBwdWJsaWMgbGlzdEZpbHRlcklubGluZUlkID0gYHNreS1saXN0LXRvb2xiYXItZmlsdGVyLWlubGluZS0keysrbmV4dElkfWA7XG5cbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdXNlcnMgc3VibWl0IGEgc2VhcmNoLlxuICAgKiBAaW50ZXJuYWxcbiAgICogQGRlcHJlY2F0ZWRcbiAgICovXG4gIHB1YmxpYyBzZWFyY2hBcHBsaWVkOiBTdWJqZWN0PHN0cmluZz4gPSBuZXcgU3ViamVjdDxzdHJpbmc+KCk7XG5cbiAgQENvbnRlbnRDaGlsZHJlbihTa3lMaXN0VG9vbGJhckl0ZW1Db21wb25lbnQpXG4gIHByaXZhdGUgdG9vbGJhckl0ZW1zOiBRdWVyeUxpc3Q8U2t5TGlzdFRvb2xiYXJJdGVtQ29tcG9uZW50PjtcblxuICBAQ29udGVudENoaWxkcmVuKFNreUxpc3RUb29sYmFyU29ydENvbXBvbmVudClcbiAgcHJpdmF0ZSB0b29sYmFyU29ydHM6IFF1ZXJ5TGlzdDxTa3lMaXN0VG9vbGJhclNvcnRDb21wb25lbnQ+O1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oU2t5TGlzdEZpbHRlclN1bW1hcnlDb21wb25lbnQpXG4gIHByaXZhdGUgZmlsdGVyU3VtbWFyeTogUXVlcnlMaXN0PFNreUxpc3RGaWx0ZXJTdW1tYXJ5Q29tcG9uZW50PjtcblxuICBAQ29udGVudENoaWxkcmVuKFNreUxpc3RGaWx0ZXJJbmxpbmVDb21wb25lbnQpXG4gIHByaXZhdGUgaW5saW5lRmlsdGVyOiBRdWVyeUxpc3Q8U2t5TGlzdEZpbHRlcklubGluZUNvbXBvbmVudD47XG5cbiAgQENvbnRlbnRDaGlsZHJlbihTa3lMaXN0VG9vbGJhclZpZXdBY3Rpb25zQ29tcG9uZW50KVxuICBwcml2YXRlIHZpZXdBY3Rpb25zOiBRdWVyeUxpc3Q8U2t5TGlzdFRvb2xiYXJWaWV3QWN0aW9uc0NvbXBvbmVudD47XG5cbiAgQFZpZXdDaGlsZCgnc2VhcmNoJywge1xuICAgIHJlYWQ6IFRlbXBsYXRlUmVmLFxuICAgIHN0YXRpYzogdHJ1ZSxcbiAgfSlcbiAgcHJpdmF0ZSBzZWFyY2hUZW1wbGF0ZTogVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cbiAgQFZpZXdDaGlsZCgnc29ydFNlbGVjdG9yJywge1xuICAgIHJlYWQ6IFRlbXBsYXRlUmVmLFxuICAgIHN0YXRpYzogdHJ1ZSxcbiAgfSlcbiAgcHJpdmF0ZSBzb3J0U2VsZWN0b3JUZW1wbGF0ZTogVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cbiAgQFZpZXdDaGlsZCgnaW5saW5lRmlsdGVyQnV0dG9uJywge1xuICAgIHJlYWQ6IFRlbXBsYXRlUmVmLFxuICAgIHN0YXRpYzogdHJ1ZSxcbiAgfSlcbiAgcHJpdmF0ZSBpbmxpbmVGaWx0ZXJCdXR0b25UZW1wbGF0ZTogVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cbiAgcHJpdmF0ZSBjdXN0b21JdGVtSWRzOiBzdHJpbmdbXSA9IFtdO1xuICBwcml2YXRlIGhhc1NvcnRTZWxlY3RvcnMgPSBmYWxzZTtcbiAgcHJpdmF0ZSBpbmxpbmVGaWx0ZXJzSXRlbVRvb2xiYXJJbmRleCA9IDUwMDA7XG4gIHByaXZhdGUgc29ydFNlbGVjdG9ySXRlbVRvb2xiYXJJbmRleCA9IDYwMDA7XG4gIHByaXZhdGUgbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgcHJpdmF0ZSBfaW5NZW1vcnlTZWFyY2hFbmFibGVkOiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgc3RhdGU6IExpc3RTdGF0ZSxcbiAgICBwcml2YXRlIGRpc3BhdGNoZXI6IExpc3RTdGF0ZURpc3BhdGNoZXIsXG4gICAgcHJpdmF0ZSB0b29sYmFyU3RhdGU6IExpc3RUb29sYmFyU3RhdGUsXG4gICAgcHVibGljIHRvb2xiYXJEaXNwYXRjaGVyOiBMaXN0VG9vbGJhclN0YXRlRGlzcGF0Y2hlcixcbiAgICBsb2dnZXI6IFNreUxvZ1NlcnZpY2VcbiAgKSB7XG4gICAgbG9nZ2VyLmRlcHJlY2F0ZWQoJ1NreUxpc3RUb29sYmFyQ29tcG9uZW50Jywge1xuICAgICAgZGVwcmVjYXRpb25NYWpvclZlcnNpb246IDYsXG4gICAgICBtb3JlSW5mb1VybDpcbiAgICAgICAgJ2h0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvY29tcG9uZW50cy9kYXRhLW1hbmFnZXInLFxuICAgICAgcmVwbGFjZW1lbnRSZWNvbW1lbmRhdGlvbjogJ1VzZSBkYXRhIG1hbmFnZXIgaW5zdGVhZC4nLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCkge1xuICAgIHRoaXMuZGlzcGF0Y2hlci50b29sYmFyRXhpc3RzKHRydWUpO1xuXG4gICAgZ2V0VmFsdWUodGhpcy5zZWFyY2hUZXh0LCAoc2VhcmNoVGV4dDogc3RyaW5nKSA9PiB7XG4gICAgICB0aGlzLnVwZGF0ZVNlYXJjaFRleHQoc2VhcmNoVGV4dCk7XG4gICAgfSk7XG5cbiAgICBnZXRWYWx1ZSh0aGlzLnNlYXJjaEVuYWJsZWQsIChzZWFyY2hFbmFibGVkOiBib29sZWFuKSA9PiB7XG4gICAgICB0aGlzLnRvb2xiYXJEaXNwYXRjaGVyLm5leHQoXG4gICAgICAgIG5ldyBMaXN0VG9vbGJhckNvbmZpZ1NldFNlYXJjaEVuYWJsZWRBY3Rpb24oXG4gICAgICAgICAgc2VhcmNoRW5hYmxlZCA9PT0gdW5kZWZpbmVkID8gdHJ1ZSA6IHNlYXJjaEVuYWJsZWRcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICB9KTtcblxuICAgIGdldFZhbHVlKHRoaXMudG9vbGJhclR5cGUsICh0eXBlOiBzdHJpbmcpID0+IHtcbiAgICAgIHRoaXMuZGlzcGF0Y2hlci5uZXh0KG5ldyBMaXN0VG9vbGJhclNldFR5cGVBY3Rpb24odGhpcy50b29sYmFyVHlwZSkpO1xuICAgIH0pO1xuXG4gICAgZ2V0VmFsdWUodGhpcy5zb3J0U2VsZWN0b3JFbmFibGVkLCAoc29ydFNlbGVjdG9yRW5hYmxlZDogYW55KSA9PiB7XG4gICAgICB0aGlzLnRvb2xiYXJEaXNwYXRjaGVyLm5leHQoXG4gICAgICAgIG5ldyBMaXN0VG9vbGJhckNvbmZpZ1NldFNvcnRTZWxlY3RvckVuYWJsZWRBY3Rpb24oXG4gICAgICAgICAgc29ydFNlbGVjdG9yRW5hYmxlZCA9PT0gdW5kZWZpbmVkID8gdHJ1ZSA6IHNvcnRTZWxlY3RvckVuYWJsZWRcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICB9KTtcblxuICAgIHRoaXMuc29ydFNlbGVjdG9ycyA9IHRoaXMuZ2V0U29ydFNlbGVjdG9ycygpO1xuXG4gICAgLy8gSW5pdGlhbGl6ZSB0aGUgc29ydCB0b29sYmFyIGl0ZW0gaWYgbmVjZXNzYXJ5XG4gICAgdGhpcy5zb3J0U2VsZWN0b3JzXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSlcbiAgICAgIC5zdWJzY3JpYmUoKGN1cnJlbnRTb3J0KSA9PiB7XG4gICAgICAgIGlmIChjdXJyZW50U29ydC5sZW5ndGggPiAwICYmICF0aGlzLmhhc1NvcnRTZWxlY3RvcnMpIHtcbiAgICAgICAgICB0aGlzLmhhc1NvcnRTZWxlY3RvcnMgPSB0cnVlO1xuICAgICAgICAgIHRoaXMuZGlzcGF0Y2hlci50b29sYmFyQWRkSXRlbXMoW1xuICAgICAgICAgICAgbmV3IExpc3RUb29sYmFySXRlbU1vZGVsKHtcbiAgICAgICAgICAgICAgaWQ6ICdzb3J0LXNlbGVjdG9yJyxcbiAgICAgICAgICAgICAgdGVtcGxhdGU6IHRoaXMuc29ydFNlbGVjdG9yVGVtcGxhdGUsXG4gICAgICAgICAgICAgIGxvY2F0aW9uOiAnbGVmdCcsXG4gICAgICAgICAgICAgIGluZGV4OiB0aGlzLnNvcnRTZWxlY3Rvckl0ZW1Ub29sYmFySW5kZXgsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICBdKTtcbiAgICAgICAgfSBlbHNlIGlmIChjdXJyZW50U29ydC5sZW5ndGggPCAxICYmIHRoaXMuaGFzU29ydFNlbGVjdG9ycykge1xuICAgICAgICAgIHRoaXMuaGFzU29ydFNlbGVjdG9ycyA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMuZGlzcGF0Y2hlci50b29sYmFyUmVtb3ZlSXRlbXMoWydzb3J0LXNlbGVjdG9yJ10pO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgIHRoaXMuc2VhcmNoVGV4dElucHV0ID0gdGhpcy5zdGF0ZS5waXBlKFxuICAgICAgdGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSksXG4gICAgICBvYnNlcnZhYmxlTWFwKChzKSA9PiBzLnNlYXJjaC5zZWFyY2hUZXh0KSxcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKClcbiAgICApO1xuXG4gICAgdGhpcy52aWV3ID0gdGhpcy5zdGF0ZS5waXBlKFxuICAgICAgdGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSksXG4gICAgICBvYnNlcnZhYmxlTWFwKChzKSA9PiBzLnZpZXdzLmFjdGl2ZSksXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXG4gICAgKTtcblxuICAgIHRoaXMud2F0Y2hUZW1wbGF0ZXMoKTtcblxuICAgIHRoaXMudHlwZSA9IHRoaXMuc3RhdGUucGlwZShcbiAgICAgIHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpLFxuICAgICAgb2JzZXJ2YWJsZU1hcCgoc3RhdGUpID0+IHN0YXRlLnRvb2xiYXIudHlwZSksXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXG4gICAgKTtcblxuICAgIHRoaXMudHlwZS5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKS5zdWJzY3JpYmUoKHRvb2xiYXJUeXBlKSA9PiB7XG4gICAgICBpZiAodG9vbGJhclR5cGUgPT09ICdzZWFyY2gnKSB7XG4gICAgICAgIHRoaXMuZGlzcGF0Y2hlci50b29sYmFyUmVtb3ZlSXRlbXMoWydzZWFyY2gnXSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmRpc3BhdGNoZXIudG9vbGJhckFkZEl0ZW1zKFtcbiAgICAgICAgICBuZXcgTGlzdFRvb2xiYXJJdGVtTW9kZWwoe1xuICAgICAgICAgICAgaWQ6ICdzZWFyY2gnLFxuICAgICAgICAgICAgdGVtcGxhdGU6IHRoaXMuc2VhcmNoVGVtcGxhdGUsXG4gICAgICAgICAgICBsb2NhdGlvbjogJ3JpZ2h0JyxcbiAgICAgICAgICB9KSxcbiAgICAgICAgXSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLmlzU2VhcmNoRW5hYmxlZCA9IHRoaXMudG9vbGJhclN0YXRlLnBpcGUoXG4gICAgICB0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSxcbiAgICAgIG9ic2VydmFibGVNYXAoKHMpID0+IHMuY29uZmlnKSxcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICBvYnNlcnZhYmxlTWFwKChjKSA9PiBjLnNlYXJjaEVuYWJsZWQpXG4gICAgKTtcblxuICAgIHRoaXMuc3RhdGVcbiAgICAgIC5waXBlKFxuICAgICAgICBvYnNlcnZhYmxlTWFwKChzKSA9PiBzLnRvb2xiYXIpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSxcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgICAgb2JzZXJ2YWJsZU1hcCgoYykgPT4gYy5kaXNhYmxlZClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKGlzRGlzYWJsZWQpID0+ICh0aGlzLmlzVG9vbGJhckRpc2FibGVkID0gaXNEaXNhYmxlZCkpO1xuXG4gICAgdGhpcy5pc1NvcnRTZWxlY3RvckVuYWJsZWQgPSB0aGlzLnRvb2xiYXJTdGF0ZS5waXBlKFxuICAgICAgdGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSksXG4gICAgICBvYnNlcnZhYmxlTWFwKChzKSA9PiBzLmNvbmZpZyksXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgb2JzZXJ2YWJsZU1hcCgoYykgPT4gYy5zb3J0U2VsZWN0b3JFbmFibGVkKVxuICAgICk7XG5cbiAgICB0aGlzLmlzTXVsdGlzZWxlY3RFbmFibGVkID0gdGhpcy5zdGF0ZS5waXBlKFxuICAgICAgdGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSksXG4gICAgICBvYnNlcnZhYmxlTWFwKChzKSA9PiBzLnRvb2xiYXIpLFxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgIG9ic2VydmFibGVNYXAoKHQpID0+IHQuc2hvd011bHRpc2VsZWN0VG9vbGJhcilcbiAgICApO1xuXG4gICAgdGhpcy5oYXNBcHBsaWVkRmlsdGVycyA9IHRoaXMuc3RhdGUucGlwZShcbiAgICAgIHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpLFxuICAgICAgb2JzZXJ2YWJsZU1hcCgocykgPT4gcy5maWx0ZXJzKSxcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICBvYnNlcnZhYmxlTWFwKChmaWx0ZXJzKSA9PiB7XG4gICAgICAgIGNvbnN0IGFjdGl2ZUZpbHRlcnMgPSBmaWx0ZXJzLmZpbHRlcigoZikgPT4ge1xuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBmLnZhbHVlICE9PSAnJyAmJlxuICAgICAgICAgICAgZi52YWx1ZSAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgICBmLnZhbHVlICE9PSBmYWxzZSAmJlxuICAgICAgICAgICAgZi52YWx1ZSAhPT0gZi5kZWZhdWx0VmFsdWVcbiAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIGFjdGl2ZUZpbHRlcnMubGVuZ3RoID4gMDtcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIHRoaXMuc3RhdGUucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSkuc3Vic2NyaWJlKChjdXJyZW50OiBhbnkpID0+IHtcbiAgICAgIHRoaXMuaGFzQWRkaXRpb25hbFRvb2xiYXJTZWN0aW9uID0gY3VycmVudC50b29sYmFyLml0ZW1zLmxlbmd0aCA+IDA7XG4gICAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgLy8gSW5qZWN0IGN1c3RvbSB0b29sYmFyIGl0ZW1zLlxuICAgIHRoaXMudG9vbGJhckl0ZW1zLmZvckVhY2goKHRvb2xiYXJJdGVtKSA9PiB7XG4gICAgICB0aGlzLmRpc3BhdGNoZXIudG9vbGJhckFkZEl0ZW1zKFtuZXcgTGlzdFRvb2xiYXJJdGVtTW9kZWwodG9vbGJhckl0ZW0pXSk7XG5cbiAgICAgIHRoaXMuY3VzdG9tSXRlbUlkcy5wdXNoKHRvb2xiYXJJdGVtLmlkKTtcbiAgICB9KTtcblxuICAgIHRoaXMudG9vbGJhckl0ZW1zLmNoYW5nZXNcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSgobmV3SXRlbXM6IFF1ZXJ5TGlzdDxTa3lMaXN0VG9vbGJhckl0ZW1Db21wb25lbnQ+KSA9PiB7XG4gICAgICAgIG5ld0l0ZW1zLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICBpZiAodGhpcy5jdXN0b21JdGVtSWRzLmluZGV4T2YoaXRlbS5pZCkgPCAwKSB7XG4gICAgICAgICAgICB0aGlzLmRpc3BhdGNoZXIudG9vbGJhckFkZEl0ZW1zKFtuZXcgTGlzdFRvb2xiYXJJdGVtTW9kZWwoaXRlbSldKTtcblxuICAgICAgICAgICAgdGhpcy5jdXN0b21JdGVtSWRzLnB1c2goaXRlbS5pZCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCBpdGVtc1RvUmVtb3ZlOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgICAgIHRoaXMuY3VzdG9tSXRlbUlkcy5mb3JFYWNoKChpdGVtSWQsIGluZGV4KSA9PiB7XG4gICAgICAgICAgaWYgKCFuZXdJdGVtcy5maW5kKChpdGVtKSA9PiBpdGVtLmlkID09PSBpdGVtSWQpKSB7XG4gICAgICAgICAgICBpdGVtc1RvUmVtb3ZlLnB1c2goaXRlbUlkKTtcbiAgICAgICAgICAgIHRoaXMuY3VzdG9tSXRlbUlkcy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5kaXNwYXRjaGVyLnRvb2xiYXJSZW1vdmVJdGVtcyhpdGVtc1RvUmVtb3ZlKTtcbiAgICAgIH0pO1xuXG4gICAgY29uc3Qgc29ydE1vZGVscyA9IHRoaXMudG9vbGJhclNvcnRzLm1hcChcbiAgICAgIChzb3J0KSA9PlxuICAgICAgICBuZXcgTGlzdFNvcnRMYWJlbE1vZGVsKHtcbiAgICAgICAgICB0ZXh0OiBzb3J0LmxhYmVsLFxuICAgICAgICAgIGZpZWxkU2VsZWN0b3I6IHNvcnQuZmllbGQsXG4gICAgICAgICAgZmllbGRUeXBlOiBzb3J0LnR5cGUsXG4gICAgICAgICAgZ2xvYmFsOiB0cnVlLFxuICAgICAgICAgIGRlc2NlbmRpbmc6IHNvcnQuZGVzY2VuZGluZyxcbiAgICAgICAgfSlcbiAgICApO1xuXG4gICAgdGhpcy5kaXNwYXRjaGVyLnNvcnRTZXRHbG9iYWwoc29ydE1vZGVscyk7XG5cbiAgICAvLyBBZGQgaW5saW5lIGZpbHRlcnMuXG4gICAgdGhpcy5zaG93RmlsdGVyU3VtbWFyeSA9IHRoaXMuZmlsdGVyU3VtbWFyeS5sZW5ndGggPiAwO1xuICAgIHRoaXMuaGFzSW5saW5lRmlsdGVycyA9IHRoaXMuaW5saW5lRmlsdGVyLmxlbmd0aCA+IDA7XG5cbiAgICBpZiAodGhpcy5oYXNJbmxpbmVGaWx0ZXJzKSB7XG4gICAgICB0aGlzLmRpc3BhdGNoZXIudG9vbGJhckFkZEl0ZW1zKFtcbiAgICAgICAgbmV3IExpc3RUb29sYmFySXRlbU1vZGVsKHtcbiAgICAgICAgICB0ZW1wbGF0ZTogdGhpcy5pbmxpbmVGaWx0ZXJCdXR0b25UZW1wbGF0ZSxcbiAgICAgICAgICBsb2NhdGlvbjogJ2xlZnQnLFxuICAgICAgICAgIGluZGV4OiB0aGlzLmlubGluZUZpbHRlcnNJdGVtVG9vbGJhckluZGV4LFxuICAgICAgICB9KSxcbiAgICAgIF0pO1xuICAgIH1cblxuICAgIC8vIENoZWNrIGZvciB2aWV3IGFjdGlvbnNcbiAgICB0aGlzLmhhc1ZpZXdBY3Rpb25zID0gdGhpcy52aWV3QWN0aW9ucy5sZW5ndGggPiAwO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuc2VhcmNoQXBwbGllZC5jb21wbGV0ZSgpO1xuICAgIHRoaXMubmdVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwdWJsaWMgc2V0U29ydChzb3J0OiBMaXN0U29ydExhYmVsTW9kZWwpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKChjdXJyZW50U3RhdGUpID0+IHtcbiAgICAgIGlmIChcbiAgICAgICAgY3VycmVudFN0YXRlLnBhZ2luZy5wYWdlTnVtYmVyICYmXG4gICAgICAgIGN1cnJlbnRTdGF0ZS5wYWdpbmcucGFnZU51bWJlciAhPT0gMVxuICAgICAgKSB7XG4gICAgICAgIHRoaXMuZGlzcGF0Y2hlci5uZXh0KG5ldyBMaXN0UGFnaW5nU2V0UGFnZU51bWJlckFjdGlvbihOdW1iZXIoMSkpKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5kaXNwYXRjaGVyLnNvcnRTZXRGaWVsZFNlbGVjdG9ycyhbXG4gICAgICAgIHsgZmllbGRTZWxlY3Rvcjogc29ydC5maWVsZFNlbGVjdG9yLCBkZXNjZW5kaW5nOiBzb3J0LmRlc2NlbmRpbmcgfSxcbiAgICAgIF0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGlubGluZUZpbHRlckJ1dHRvbkNsaWNrKCkge1xuICAgIHRoaXMuaW5saW5lRmlsdGVyQmFyRXhwYW5kZWQgPSAhdGhpcy5pbmxpbmVGaWx0ZXJCYXJFeHBhbmRlZDtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVTZWFyY2hUZXh0KHNlYXJjaFRleHQ6IHN0cmluZykge1xuICAgIHRoaXMuc2VhcmNoQXBwbGllZC5uZXh0KHNlYXJjaFRleHQpO1xuICAgIGlmICh0aGlzLmluTWVtb3J5U2VhcmNoRW5hYmxlZCkge1xuICAgICAgdGhpcy5zdGF0ZS5waXBlKHRha2UoMSkpLnN1YnNjcmliZSgoY3VycmVudFN0YXRlKSA9PiB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBjdXJyZW50U3RhdGUucGFnaW5nLnBhZ2VOdW1iZXIgJiZcbiAgICAgICAgICBjdXJyZW50U3RhdGUucGFnaW5nLnBhZ2VOdW1iZXIgIT09IDFcbiAgICAgICAgKSB7XG4gICAgICAgICAgdGhpcy5kaXNwYXRjaGVyLm5leHQobmV3IExpc3RQYWdpbmdTZXRQYWdlTnVtYmVyQWN0aW9uKE51bWJlcigxKSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5kaXNwYXRjaGVyLnNlYXJjaFNldFRleHQoc2VhcmNoVGV4dCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGl0ZW1Jc0luVmlldyhpdGVtVmlldzogc3RyaW5nLCBhY3RpdmVWaWV3OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gaXRlbVZpZXcgPT09IHVuZGVmaW5lZCB8fCBpdGVtVmlldyA9PT0gYWN0aXZlVmlldztcbiAgfVxuXG4gIHByaXZhdGUgZ2V0U29ydFNlbGVjdG9ycygpIHtcbiAgICByZXR1cm4gb2JzZXJ2YWJsZUNvbWJpbmVMYXRlc3QoXG4gICAgICB0aGlzLnN0YXRlLnBpcGUoXG4gICAgICAgIG9ic2VydmFibGVNYXAoKHMpID0+IHMuc29ydC5hdmFpbGFibGUpLFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXG4gICAgICApLFxuICAgICAgdGhpcy5zdGF0ZS5waXBlKFxuICAgICAgICBvYnNlcnZhYmxlTWFwKChzKSA9PiBzLnNvcnQuZ2xvYmFsKSxcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxuICAgICAgKSxcbiAgICAgIHRoaXMuc3RhdGUucGlwZShcbiAgICAgICAgb2JzZXJ2YWJsZU1hcCgocykgPT4gcy5zb3J0LmZpZWxkU2VsZWN0b3JzKSxcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxuICAgICAgKSxcbiAgICAgIChcbiAgICAgICAgYXZhaWxhYmxlOiBBcnJheTxMaXN0U29ydExhYmVsTW9kZWw+LFxuICAgICAgICBnbG9iYWw6IEFycmF5PExpc3RTb3J0TGFiZWxNb2RlbD4sXG4gICAgICAgIGZpZWxkU2VsZWN0b3JzOiBBcnJheTxMaXN0U29ydEZpZWxkU2VsZWN0b3JNb2RlbD5cbiAgICAgICkgPT4ge1xuICAgICAgICAvLyBHZXQgc29ydHMgdGhhdCBhcmUgaW4gdGhlIGdsb2JhbCB0aGF0IGFyZSBub3QgaW4gdGhlIGF2YWlsYWJsZVxuICAgICAgICBjb25zdCBzb3J0cyA9IGdsb2JhbC5maWx0ZXIoXG4gICAgICAgICAgKGcpID0+XG4gICAgICAgICAgICBhdmFpbGFibGUuZmlsdGVyKChhKSA9PiBhLmZpZWxkU2VsZWN0b3IgPT09IGcuZmllbGRTZWxlY3RvcilcbiAgICAgICAgICAgICAgLmxlbmd0aCA9PT0gMFxuICAgICAgICApO1xuXG4gICAgICAgIGNvbnN0IHJlc3VsdFNvcnRTZWxlY3RvcnMgPSBbLi4uc29ydHMsIC4uLmF2YWlsYWJsZV0ubWFwKFxuICAgICAgICAgIChzb3J0TGFiZWxzKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBmcyA9IGZpZWxkU2VsZWN0b3JzLmZpbHRlcigoZikgPT4ge1xuICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIGYuZmllbGRTZWxlY3RvciA9PT0gc29ydExhYmVscy5maWVsZFNlbGVjdG9yICYmXG4gICAgICAgICAgICAgICAgZi5kZXNjZW5kaW5nID09PSBzb3J0TGFiZWxzLmRlc2NlbmRpbmdcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgbGV0IHNlbGVjdGVkID0gZmFsc2U7XG4gICAgICAgICAgICBpZiAoZnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICBzZWxlY3RlZCA9IHRydWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIHNvcnQ6IHNvcnRMYWJlbHMsXG4gICAgICAgICAgICAgIHNlbGVjdGVkOiBzZWxlY3RlZCxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfVxuICAgICAgICApO1xuXG4gICAgICAgIHJldHVybiByZXN1bHRTb3J0U2VsZWN0b3JzO1xuICAgICAgfVxuICAgICkucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSk7XG4gIH1cblxuICBwcml2YXRlIHdhdGNoVGVtcGxhdGVzKCkge1xuICAgIG9ic2VydmFibGVDb21iaW5lTGF0ZXN0KFxuICAgICAgdGhpcy5zdGF0ZS5waXBlKFxuICAgICAgICBvYnNlcnZhYmxlTWFwKChzKSA9PiBzLnRvb2xiYXIpLFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXG4gICAgICApLFxuICAgICAgdGhpcy52aWV3LnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSksXG4gICAgICAodG9vbGJhcjogTGlzdFRvb2xiYXJNb2RlbCwgdmlldzogc3RyaW5nKSA9PiB7XG4gICAgICAgIGNvbnN0IGl0ZW1zID0gdG9vbGJhci5pdGVtcy5maWx0ZXIoKGk6IExpc3RUb29sYmFySXRlbU1vZGVsKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuaXRlbUlzSW5WaWV3KGkudmlldywgdmlldyk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnN0IHRlbXBsYXRlczogYW55ID0ge307XG5cbiAgICAgICAgaXRlbXMuZm9yRWFjaCgoaXRlbTogTGlzdFRvb2xiYXJJdGVtTW9kZWwpID0+IHtcbiAgICAgICAgICB0ZW1wbGF0ZXNbaXRlbS5sb2NhdGlvbl0gPSB0ZW1wbGF0ZXNbaXRlbS5sb2NhdGlvbl0gfHwgW107XG4gICAgICAgICAgdGVtcGxhdGVzW2l0ZW0ubG9jYXRpb25dLnB1c2goaXRlbSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiB0ZW1wbGF0ZXM7XG4gICAgICB9XG4gICAgKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgICB0aGlzLmxlZnRUZW1wbGF0ZXMgPSB2YWx1ZS5sZWZ0O1xuICAgICAgICB0aGlzLmNlbnRlclRlbXBsYXRlcyA9IHZhbHVlLmNlbnRlcjtcbiAgICAgICAgdGhpcy5yaWdodFRlbXBsYXRlcyA9IHZhbHVlLnJpZ2h0O1xuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJza3ktbGlzdC10b29sYmFyLWNvbnRhaW5lclwiPlxuICA8c2t5LXRvb2xiYXIgKm5nSWY9XCIodHlwZSB8IGFzeW5jKSAhPT0gJ3NlYXJjaCdcIj5cbiAgICA8c2t5LXRvb2xiYXItc2VjdGlvbj5cbiAgICAgIDxza3ktdG9vbGJhci1pdGVtICpuZ0Zvcj1cImxldCBpdGVtIG9mIGxlZnRUZW1wbGF0ZXNcIj5cbiAgICAgICAgPHNreS1saXN0LXRvb2xiYXItaXRlbS1yZW5kZXJlclxuICAgICAgICAgIFthdHRyLnNreS1jbXAtaWRdPVwiaXRlbS5pZFwiXG4gICAgICAgICAgW3RlbXBsYXRlXT1cIml0ZW0udGVtcGxhdGVcIlxuICAgICAgICA+XG4gICAgICAgIDwvc2t5LWxpc3QtdG9vbGJhci1pdGVtLXJlbmRlcmVyPlxuICAgICAgPC9za3ktdG9vbGJhci1pdGVtPlxuICAgICAgPHNreS10b29sYmFyLWl0ZW0gKm5nRm9yPVwibGV0IGl0ZW0gb2YgY2VudGVyVGVtcGxhdGVzXCI+XG4gICAgICAgIDxza3ktbGlzdC10b29sYmFyLWl0ZW0tcmVuZGVyZXJcbiAgICAgICAgICBbYXR0ci5za3ktY21wLWlkXT1cIml0ZW0uaWRcIlxuICAgICAgICAgIFt0ZW1wbGF0ZV09XCJpdGVtLnRlbXBsYXRlXCJcbiAgICAgICAgPlxuICAgICAgICA8L3NreS1saXN0LXRvb2xiYXItaXRlbS1yZW5kZXJlcj5cbiAgICAgIDwvc2t5LXRvb2xiYXItaXRlbT5cbiAgICAgIDxza3ktdG9vbGJhci1pdGVtXG4gICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIHJpZ2h0VGVtcGxhdGVzXCJcbiAgICAgICAgW2F0dHIuc2t5LXRvb2xiYXItaWRdPVwiaXRlbS5pZFwiXG4gICAgICA+XG4gICAgICAgIDxza3ktbGlzdC10b29sYmFyLWl0ZW0tcmVuZGVyZXJcbiAgICAgICAgICBbYXR0ci5za3ktY21wLWlkXT1cIml0ZW0uaWRcIlxuICAgICAgICAgIFt0ZW1wbGF0ZV09XCJpdGVtLnRlbXBsYXRlXCJcbiAgICAgICAgPlxuICAgICAgICA8L3NreS1saXN0LXRvb2xiYXItaXRlbS1yZW5kZXJlcj5cbiAgICAgIDwvc2t5LXRvb2xiYXItaXRlbT5cblxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuXG4gICAgICA8c2t5LXRvb2xiYXItdmlldy1hY3Rpb25zICpuZ0lmPVwiaGFzVmlld0FjdGlvbnNcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwic2t5LWxpc3QtdG9vbGJhci12aWV3LWFjdGlvbnNcIj4gPC9uZy1jb250ZW50PlxuICAgICAgPC9za3ktdG9vbGJhci12aWV3LWFjdGlvbnM+XG4gICAgPC9za3ktdG9vbGJhci1zZWN0aW9uPlxuXG4gICAgPHNreS10b29sYmFyLXNlY3Rpb25cbiAgICAgICpuZ0lmPVwic2hvd0ZpbHRlclN1bW1hcnkgJiYgKGhhc0FwcGxpZWRGaWx0ZXJzIHwgYXN5bmMpXCJcbiAgICA+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJza3ktbGlzdC1maWx0ZXItc3VtbWFyeVwiPiA8L25nLWNvbnRlbnQ+XG4gICAgPC9za3ktdG9vbGJhci1zZWN0aW9uPlxuICA8L3NreS10b29sYmFyPlxuXG4gIDxkaXZcbiAgICAqbmdJZj1cIlxuICAgICAgKHR5cGUgfCBhc3luYykgPT09ICdzZWFyY2gnICYmXG4gICAgICAoKGlzU2VhcmNoRW5hYmxlZCB8IGFzeW5jKSB8fCBoYXNBZGRpdGlvbmFsVG9vbGJhclNlY3Rpb24pXG4gICAgXCJcbiAgICBjbGFzcz1cInNreS1saXN0LXRvb2xiYXItc2VhcmNoXCJcbiAgPlxuICAgIDxza3ktdG9vbGJhcj5cbiAgICAgIDxza3ktdG9vbGJhci1zZWN0aW9uICpuZ0lmPVwiaXNTZWFyY2hFbmFibGVkIHwgYXN5bmNcIj5cbiAgICAgICAgPHNreS10b29sYmFyLWl0ZW0+XG4gICAgICAgICAgPHNreS1saXN0LXRvb2xiYXItaXRlbS1yZW5kZXJlclxuICAgICAgICAgICAgc2t5LWNtcC1pZD1cInNlYXJjaFwiXG4gICAgICAgICAgICBbdGVtcGxhdGVdPVwic2VhcmNoXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgPC9za3ktbGlzdC10b29sYmFyLWl0ZW0tcmVuZGVyZXI+XG4gICAgICAgIDwvc2t5LXRvb2xiYXItaXRlbT5cbiAgICAgIDwvc2t5LXRvb2xiYXItc2VjdGlvbj5cbiAgICAgIDxza3ktdG9vbGJhci1zZWN0aW9uIFtoaWRkZW5dPVwiIWhhc0FkZGl0aW9uYWxUb29sYmFyU2VjdGlvblwiPlxuICAgICAgICA8c2t5LXRvb2xiYXItaXRlbSAqbmdGb3I9XCJsZXQgaXRlbSBvZiBsZWZ0VGVtcGxhdGVzXCI+XG4gICAgICAgICAgPHNreS1saXN0LXRvb2xiYXItaXRlbS1yZW5kZXJlclxuICAgICAgICAgICAgW2F0dHIuc2t5LWNtcC1pZF09XCJpdGVtLmlkXCJcbiAgICAgICAgICAgIFt0ZW1wbGF0ZV09XCJpdGVtLnRlbXBsYXRlXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgPC9za3ktbGlzdC10b29sYmFyLWl0ZW0tcmVuZGVyZXI+XG4gICAgICAgIDwvc2t5LXRvb2xiYXItaXRlbT5cbiAgICAgICAgPHNreS10b29sYmFyLWl0ZW0gKm5nRm9yPVwibGV0IGl0ZW0gb2YgY2VudGVyVGVtcGxhdGVzXCI+XG4gICAgICAgICAgPHNreS1saXN0LXRvb2xiYXItaXRlbS1yZW5kZXJlclxuICAgICAgICAgICAgW2F0dHIuc2t5LWNtcC1pZF09XCJpdGVtLmlkXCJcbiAgICAgICAgICAgIFt0ZW1wbGF0ZV09XCJpdGVtLnRlbXBsYXRlXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgPC9za3ktbGlzdC10b29sYmFyLWl0ZW0tcmVuZGVyZXI+XG4gICAgICAgIDwvc2t5LXRvb2xiYXItaXRlbT5cbiAgICAgICAgPHNreS10b29sYmFyLWl0ZW1cbiAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiByaWdodFRlbXBsYXRlc1wiXG4gICAgICAgICAgW2F0dHIuc2t5LXRvb2xiYXItaWRdPVwiaXRlbS5pZFwiXG4gICAgICAgID5cbiAgICAgICAgICA8c2t5LWxpc3QtdG9vbGJhci1pdGVtLXJlbmRlcmVyXG4gICAgICAgICAgICAqbmdJZj1cIml0ZW0uaWQgIT09ICdzZWFyY2gnXCJcbiAgICAgICAgICAgIFthdHRyLnNreS1jbXAtaWRdPVwiaXRlbS5pZFwiXG4gICAgICAgICAgICBbdGVtcGxhdGVdPVwiaXRlbS50ZW1wbGF0ZVwiXG4gICAgICAgICAgPlxuICAgICAgICAgIDwvc2t5LWxpc3QtdG9vbGJhci1pdGVtLXJlbmRlcmVyPlxuICAgICAgICA8L3NreS10b29sYmFyLWl0ZW0+XG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cblxuICAgICAgICA8c2t5LXRvb2xiYXItdmlldy1hY3Rpb25zICpuZ0lmPVwiaGFzVmlld0FjdGlvbnNcIj5cbiAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJza3ktbGlzdC10b29sYmFyLXZpZXctYWN0aW9uc1wiPiA8L25nLWNvbnRlbnQ+XG4gICAgICAgIDwvc2t5LXRvb2xiYXItdmlldy1hY3Rpb25zPlxuICAgICAgPC9za3ktdG9vbGJhci1zZWN0aW9uPlxuICAgIDwvc2t5LXRvb2xiYXI+XG4gIDwvZGl2PlxuICA8ZGl2XG4gICAgKm5nSWY9XCJpc0ZpbHRlckJhckRpc3BsYXllZFwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cImZpbHRlckJ1dHRvbklkXCJcbiAgICBbaWRdPVwibGlzdEZpbHRlcklubGluZUlkXCJcbiAgPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInNreS1saXN0LWZpbHRlci1pbmxpbmVcIj4gPC9uZy1jb250ZW50PlxuICA8L2Rpdj5cbiAgPHNreS1saXN0LW11bHRpc2VsZWN0LXRvb2xiYXIgKm5nSWY9XCJpc011bHRpc2VsZWN0RW5hYmxlZCB8IGFzeW5jXCI+XG4gIDwvc2t5LWxpc3QtbXVsdGlzZWxlY3QtdG9vbGJhcj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI3NlYXJjaD5cbiAgPGRpdiAqbmdJZj1cImlzU2VhcmNoRW5hYmxlZCB8IGFzeW5jXCIgY2xhc3M9XCJza3ktbGlzdC10b29sYmFyLXNlYXJjaC13cmFwcGVyXCI+XG4gICAgPHNreS1zZWFyY2hcbiAgICAgIFtkaXNhYmxlZF09XCJpc1Rvb2xiYXJEaXNhYmxlZFwiXG4gICAgICBbZXhwYW5kTW9kZV09XCIodHlwZSB8IGFzeW5jKSA9PT0gJ3NlYXJjaCcgPyAnZml0JyA6ICdyZXNwb25zaXZlJ1wiXG4gICAgICBbcGxhY2Vob2xkZXJUZXh0XT1cInBsYWNlaG9sZGVyXCJcbiAgICAgIFtzZWFyY2hUZXh0XT1cInNlYXJjaFRleHRJbnB1dCB8IGFzeW5jXCJcbiAgICAgIChzZWFyY2hBcHBseSk9XCJ1cGRhdGVTZWFyY2hUZXh0KCRldmVudClcIlxuICAgID5cbiAgICA8L3NreS1zZWFyY2g+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwic2t5LWxpc3QtdG9vbGJhci1zZWFyY2gtYWN0aW9uc1wiPjwvbmctY29udGVudD5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3NvcnRTZWxlY3Rvcj5cbiAgPGRpdlxuICAgICpuZ0lmPVwiXG4gICAgICAoaXNTb3J0U2VsZWN0b3JFbmFibGVkIHwgYXN5bmMpICYmIChzb3J0U2VsZWN0b3JzIHwgYXN5bmMpLmxlbmd0aCA+IDBcbiAgICBcIlxuICAgIGNsYXNzPVwic2t5LXRvb2xiYXItaXRlbS1zb3J0LWNvbnRhaW5lclwiXG4gID5cbiAgICA8c2t5LXNvcnQgW3Nob3dCdXR0b25UZXh0XT1cInRydWVcIj5cbiAgICAgIDxza3ktc29ydC1pdGVtXG4gICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIHNvcnRTZWxlY3RvcnMgfCBhc3luY1wiXG4gICAgICAgIFthY3RpdmVdPVwiaXRlbS5zZWxlY3RlZFwiXG4gICAgICAgIChpdGVtU2VsZWN0KT1cInNldFNvcnQoaXRlbS5zb3J0KVwiXG4gICAgICA+XG4gICAgICAgIHt7IGl0ZW0uc29ydC50ZXh0IH19XG4gICAgICA8L3NreS1zb3J0LWl0ZW0+XG4gICAgPC9za3ktc29ydD5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2lubGluZUZpbHRlckJ1dHRvbj5cbiAgPHNreS1maWx0ZXItYnV0dG9uXG4gICAgW2FjdGl2ZV09XCJoYXNBcHBsaWVkRmlsdGVycyB8IGFzeW5jXCJcbiAgICBbYXJpYUNvbnRyb2xzXT1cImZpbHRlckJ1dHRvbkFyaWFDb250cm9sc1wiXG4gICAgW2FyaWFFeHBhbmRlZF09XCJpbmxpbmVGaWx0ZXJCYXJFeHBhbmRlZFwiXG4gICAgW2Rpc2FibGVkXT1cImlzVG9vbGJhckRpc2FibGVkXCJcbiAgICBbZmlsdGVyQnV0dG9uSWRdPVwiZmlsdGVyQnV0dG9uSWRcIlxuICAgIFtzaG93QnV0dG9uVGV4dF09XCJ0cnVlXCJcbiAgICAoZmlsdGVyQnV0dG9uQ2xpY2spPVwiaW5saW5lRmlsdGVyQnV0dG9uQ2xpY2soKVwiXG4gID5cbiAgPC9za3ktZmlsdGVyLWJ1dHRvbj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
360
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC10b29sYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9saXN0LWJ1aWxkZXIvc3JjL2xpYi9tb2R1bGVzL2xpc3QtdG9vbGJhci9saXN0LXRvb2xiYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2xpc3QtYnVpbGRlci9zcmMvbGliL21vZHVsZXMvbGlzdC10b29sYmFyL2xpc3QtdG9vbGJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxlQUFlLEVBQ2YsS0FBSyxFQUlMLFdBQVcsRUFDWCxTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXRELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBRUwsT0FBTyxFQUNQLGFBQWEsSUFBSSx1QkFBdUIsR0FDekMsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLEdBQUcsSUFBSSxhQUFhLEVBQ3BCLElBQUksRUFDSixTQUFTLEdBQ1YsTUFBTSxnQkFBZ0IsQ0FBQztBQUd4QixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUM1RixPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUc5RixPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUM1RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNqRixPQUFPLEVBQUUsb0JBQW9CLEVB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TSxtQkFBbUI7c0JBRHpCLEtBQUs7Z0JBVUMsV0FBVztzQkFEakIsS0FBSztnQkFPQyxVQUFVO3NCQURoQixLQUFLO2dCQTZDRSxZQUFZO3NCQURuQixlQUFlO3VCQUFDLDJCQUEyQjtnQkFJcEMsWUFBWTtzQkFEbkIsZUFBZTt1QkFBQywyQkFBMkI7Z0JBSXBDLGFBQWE7c0JBRHBCLGVBQWU7dUJBQUMsNkJBQTZCO2dCQUl0QyxZQUFZO3NCQURuQixlQUFlO3VCQUFDLDRCQUE0QjtnQkFJckMsV0FBVztzQkFEbEIsZUFBZTt1QkFBQyxrQ0FBa0M7Z0JBTzNDLGNBQWM7c0JBSnJCLFNBQVM7dUJBQUMsUUFBUSxFQUFFO3dCQUNuQixJQUFJLEVBQUUsV0FBVzt3QkFDakIsTUFBTSxFQUFFLElBQUk7cUJBQ2I7Z0JBT08sb0JBQW9CO3NCQUozQixTQUFTO3VCQUFDLGNBQWMsRUFBRTt3QkFDekIsSUFBSSxFQUFFLFdBQVc7d0JBQ2pCLE1BQU0sRUFBRSxJQUFJO3FCQUNiO2dCQU9PLDBCQUEwQjtzQkFKakMsU0FBUzt1QkFBQyxvQkFBb0IsRUFBRTt3QkFDL0IsSUFBSSxFQUFFLFdBQVc7d0JBQ2pCLE1BQU0sRUFBRSxJQUFJO3FCQUNiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBRdWVyeUxpc3QsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2t5TG9nU2VydmljZSB9IGZyb20gJ0Bza3l1eC9jb3JlJztcbmltcG9ydCB7IGdldFZhbHVlIH0gZnJvbSAnQHNreXV4L2xpc3QtYnVpbGRlci1jb21tb24nO1xuaW1wb3J0IHsgTGlzdFNvcnRGaWVsZFNlbGVjdG9yTW9kZWwgfSBmcm9tICdAc2t5dXgvbGlzdC1idWlsZGVyLWNvbW1vbic7XG5pbXBvcnQgeyBTa3lTZWFyY2hDb21wb25lbnQgfSBmcm9tICdAc2t5dXgvbG9va3VwJztcblxuaW1wb3J0IHtcbiAgT2JzZXJ2YWJsZSxcbiAgU3ViamVjdCxcbiAgY29tYmluZUxhdGVzdCBhcyBvYnNlcnZhYmxlQ29tYmluZUxhdGVzdCxcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBkaXN0aW5jdFVudGlsQ2hhbmdlZCxcbiAgbWFwIGFzIG9ic2VydmFibGVNYXAsXG4gIHRha2UsXG4gIHRha2VVbnRpbCxcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBMaXN0RmlsdGVyTW9kZWwgfSBmcm9tICcuLi9saXN0LWZpbHRlcnMvZmlsdGVyLm1vZGVsJztcbmltcG9ydCB7IFNreUxpc3RGaWx0ZXJJbmxpbmVDb21wb25lbnQgfSBmcm9tICcuLi9saXN0LWZpbHRlcnMvbGlzdC1maWx0ZXItaW5saW5lLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lMaXN0RmlsdGVyU3VtbWFyeUNvbXBvbmVudCB9IGZyb20gJy4uL2xpc3QtZmlsdGVycy9saXN0LWZpbHRlci1zdW1tYXJ5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMaXN0U3RhdGVEaXNwYXRjaGVyIH0gZnJvbSAnLi4vbGlzdC9zdGF0ZS9saXN0LXN0YXRlLnJ4c3RhdGUnO1xuaW1wb3J0IHsgTGlzdFN0YXRlIH0gZnJvbSAnLi4vbGlzdC9zdGF0ZS9saXN0LXN0YXRlLnN0YXRlLW5vZGUnO1xuaW1wb3J0IHsgTGlzdFBhZ2luZ1NldFBhZ2VOdW1iZXJBY3Rpb24gfSBmcm9tICcuLi9saXN0L3N0YXRlL3BhZ2luZy9zZXQtcGFnZS1udW1iZXIuYWN0aW9uJztcbmltcG9ydCB7IExpc3RTb3J0TGFiZWxNb2RlbCB9IGZyb20gJy4uL2xpc3Qvc3RhdGUvc29ydC9sYWJlbC5tb2RlbCc7XG5pbXBvcnQgeyBMaXN0VG9vbGJhclNldFR5cGVBY3Rpb24gfSBmcm9tICcuLi9saXN0L3N0YXRlL3Rvb2xiYXIvc2V0LXR5cGUuYWN0aW9uJztcbmltcG9ydCB7IExpc3RUb29sYmFySXRlbU1vZGVsIH0gZnJvbSAnLi4vbGlzdC9zdGF0ZS90b29sYmFyL3Rvb2xiYXItaXRlbS5tb2RlbCc7XG5pbXBvcnQgeyBMaXN0VG9vbGJhck1vZGVsIH0gZnJvbSAnLi4vbGlzdC9zdGF0ZS90b29sYmFyL3Rvb2xiYXIubW9kZWwnO1xuXG5pbXBvcnQgeyBTa3lMaXN0VG9vbGJhckl0ZW1Db21wb25lbnQgfSBmcm9tICcuL2xpc3QtdG9vbGJhci1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lMaXN0VG9vbGJhclNvcnRDb21wb25lbnQgfSBmcm9tICcuL2xpc3QtdG9vbGJhci1zb3J0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lMaXN0VG9vbGJhclZpZXdBY3Rpb25zQ29tcG9uZW50IH0gZnJvbSAnLi9saXN0LXRvb2xiYXItdmlldy1hY3Rpb25zLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMaXN0VG9vbGJhckNvbmZpZ1NldFNlYXJjaEVuYWJsZWRBY3Rpb24gfSBmcm9tICcuL3N0YXRlL2NvbmZpZy9zZXQtc2VhcmNoLWVuYWJsZWQuYWN0aW9uJztcbmltcG9ydCB7IExpc3RUb29sYmFyQ29uZmlnU2V0U29ydFNlbGVjdG9yRW5hYmxlZEFjdGlvbiB9IGZyb20gJy4vc3RhdGUvY29uZmlnL3NldC1zb3J0LXNlbGVjdG9yLWVuYWJsZWQuYWN0aW9uJztcbmltcG9ydCB7IExpc3RUb29sYmFyU3RhdGVNb2RlbCB9IGZyb20gJy4vc3RhdGUvdG9vbGJhci1zdGF0ZS5tb2RlbCc7XG5pbXBvcnQgeyBMaXN0VG9vbGJhclN0YXRlRGlzcGF0Y2hlciB9IGZyb20gJy4vc3RhdGUvdG9vbGJhci1zdGF0ZS5yeHN0YXRlJztcbmltcG9ydCB7IExpc3RUb29sYmFyU3RhdGUgfSBmcm9tICcuL3N0YXRlL3Rvb2xiYXItc3RhdGUuc3RhdGUtbm9kZSc7XG5cbmxldCBuZXh0SWQgPSAwO1xuXG4vKipcbiAqIERpc3BsYXlzIGEgdG9vbGJhciBmb3IgYSBTS1kgVVgtdGhlbWVkIGxpc3Qgb2YgZGF0YS5cbiAqIEBkZXByZWNhdGVkXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1saXN0LXRvb2xiYXInLFxuICB0ZW1wbGF0ZVVybDogJy4vbGlzdC10b29sYmFyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbGlzdC10b29sYmFyLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIExpc3RUb29sYmFyU3RhdGUsXG4gICAgTGlzdFRvb2xiYXJTdGF0ZURpc3BhdGNoZXIsXG4gICAgTGlzdFRvb2xiYXJTdGF0ZU1vZGVsLFxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgU2t5TGlzdFRvb2xiYXJDb21wb25lbnRcbiAgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyQ29udGVudEluaXQsIE9uRGVzdHJveVxue1xuICAvKipcbiAgICogV2hldGhlciB0byB1c2UgdGhlIGluLW1lbW9yeSBzZWFyY2guXG4gICAqIFNldHRpbmcgdGhpcyB0byBgZmFsc2VgIHdpbGwgYWxsb3cgY29uc3VtZXJzIHRvIHJ1biB0aGVpciBvd24gc2VhcmNoZXMgcmVtb3RlbHksXG4gICAqIGFuZCBwdXNoIG5ldyB2YWx1ZXMgdG8gdGhlIGxpc3QgY29tcG9uZW50IGJ5IHVwZGF0aW5nIHRoZSBgZGF0YWAgcHJvcGVydHkuXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICogQGludGVybmFsXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGluTWVtb3J5U2VhcmNoRW5hYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX2luTWVtb3J5U2VhcmNoRW5hYmxlZCA9IHZhbHVlO1xuICB9XG5cbiAgcHVibGljIGdldCBpbk1lbW9yeVNlYXJjaEVuYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuX2luTWVtb3J5U2VhcmNoRW5hYmxlZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX2luTWVtb3J5U2VhcmNoRW5hYmxlZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBQbGFjZWhvbGRlciB0ZXh0IGZvciB0aGUgc2VhcmNoIGJhciB0aGF0IHRoZSBsaXN0IHRvb2xiYXIgY3JlYXRlcyB3aXRoXG4gICAqIGEgW3NlYXJjaCBjb21wb25lbnRdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvY29tcG9uZW50cy9zZWFyY2gpLlxuICAgKiBAZGVmYXVsdCBcIkZpbmQgaW4gdGhpcyBsaXN0XCJcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBwbGFjZWhvbGRlcjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGVuYWJsZSB0aGUgc2VhcmNoIGJhci5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNlYXJjaEVuYWJsZWQ6IGJvb2xlYW4gfCBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXG4gIEBWaWV3Q2hpbGQoU2t5U2VhcmNoQ29tcG9uZW50LCB7XG4gICAgcmVhZDogU2t5U2VhcmNoQ29tcG9uZW50LFxuICAgIHN0YXRpYzogZmFsc2UsXG4gIH0pXG4gIHB1YmxpYyBzZWFyY2hDb21wb25lbnQ6IFNreVNlYXJjaENvbXBvbmVudDtcblxuICAvKipcbiAgICogV2hldGhlciB0byBlbmFibGUgdGhlIHNvcnQgc2VsZWN0b3IuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc29ydFNlbGVjdG9yRW5hYmxlZDogYm9vbGVhbiB8IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgLyoqXG4gICAqIERpc3BsYXkgdGhlIHNlYXJjaCBiYXIgaW4gdGhlIHN0YW5kYXJkIHBvc2l0aW9uIG9yIGluIGEgc2VwYXJhdGUgc2VjdGlvbi5cbiAgICogVG8gaGlnaGxpZ2h0IHRoZSBzZWFyY2ggYmFyIGluIGEgc2VjdGlvbiBhYm92ZSBhbGwgb3RoZXIgdG9vbGJhciBpdGVtcyxcbiAgICogc2V0IHRoaXMgcHJvcGVydHkgdG8gYHNlYXJjaGAuXG4gICAqIEBkZWZhdWx0IFwic3RhbmRhcmRcIlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHRvb2xiYXJUeXBlID0gJ3N0YW5kYXJkJztcblxuICAvKipcbiAgICogVGhlIHRleHQgc3RyaW5nIHRvIHNlYXJjaCB3aXRoLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNlYXJjaFRleHQ6IHN0cmluZyB8IE9ic2VydmFibGU8c3RyaW5nPjtcblxuICBwdWJsaWMgZ2V0IGlzRmlsdGVyQmFyRGlzcGxheWVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICAhdGhpcy5pc1Rvb2xiYXJEaXNhYmxlZCAmJlxuICAgICAgdGhpcy5oYXNJbmxpbmVGaWx0ZXJzICYmXG4gICAgICB0aGlzLmlubGluZUZpbHRlckJhckV4cGFuZGVkXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZmlsdGVyQnV0dG9uQXJpYUNvbnRyb2xzKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaXNGaWx0ZXJCYXJEaXNwbGF5ZWQgPyB0aGlzLmxpc3RGaWx0ZXJJbmxpbmVJZCA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHB1YmxpYyBzb3J0U2VsZWN0b3JzOiBPYnNlcnZhYmxlPEFycmF5PGFueT4+O1xuICBwdWJsaWMgc2VhcmNoVGV4dElucHV0OiBPYnNlcnZhYmxlPHN0cmluZz47XG4gIHB1YmxpYyB2aWV3OiBPYnNlcnZhYmxlPHN0cmluZz47XG4gIHB1YmxpYyBsZWZ0VGVtcGxhdGVzOiBMaXN0VG9vbGJhckl0ZW1Nb2RlbFtdO1xuICBwdWJsaWMgY2VudGVyVGVtcGxhdGVzOiBMaXN0VG9vbGJhckl0ZW1Nb2RlbFtdO1xuICBwdWJsaWMgcmlnaHRUZW1wbGF0ZXM6IExpc3RUb29sYmFySXRlbU1vZGVsW107XG4gIHB1YmxpYyB0eXBlOiBPYnNlcnZhYmxlPHN0cmluZz47XG4gIHB1YmxpYyBpc1NlYXJjaEVuYWJsZWQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIHB1YmxpYyBpc1Rvb2xiYXJEaXNhYmxlZCA9IGZhbHNlO1xuICBwdWJsaWMgaXNNdWx0aXNlbGVjdEVuYWJsZWQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIHB1YmxpYyBpc1NvcnRTZWxlY3RvckVuYWJsZWQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIHB1YmxpYyBhcHBsaWVkRmlsdGVyczogT2JzZXJ2YWJsZTxBcnJheTxMaXN0RmlsdGVyTW9kZWw+PjtcbiAgcHVibGljIGhhc0FwcGxpZWRGaWx0ZXJzOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBwdWJsaWMgc2hvd0ZpbHRlclN1bW1hcnk6IGJvb2xlYW47XG4gIHB1YmxpYyBoYXNJbmxpbmVGaWx0ZXJzOiBib29sZWFuO1xuICBwdWJsaWMgaW5saW5lRmlsdGVyQmFyRXhwYW5kZWQgPSBmYWxzZTtcbiAgcHVibGljIGhhc0FkZGl0aW9uYWxUb29sYmFyU2VjdGlvbiA9IGZhbHNlO1xuICBwdWJsaWMgaGFzVmlld0FjdGlvbnMgPSBmYWxzZTtcblxuICBwdWJsaWMgZmlsdGVyQnV0dG9uSWQgPSBgc2t5LWxpc3QtdG9vbGJhci1maWx0ZXItYnV0dG9uLSR7KytuZXh0SWR9YDtcbiAgcHVibGljIGxpc3RGaWx0ZXJJbmxpbmVJZCA9IGBza3ktbGlzdC10b29sYmFyLWZpbHRlci1pbmxpbmUtJHsrK25leHRJZH1gO1xuXG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIHVzZXJzIHN1Ym1pdCBhIHNlYXJjaC5cbiAgICogQGludGVybmFsXG4gICAqIEBkZXByZWNhdGVkXG4gICAqL1xuICBwdWJsaWMgc2VhcmNoQXBwbGllZDogU3ViamVjdDxzdHJpbmc+ID0gbmV3IFN1YmplY3Q8c3RyaW5nPigpO1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oU2t5TGlzdFRvb2xiYXJJdGVtQ29tcG9uZW50KVxuICBwcml2YXRlIHRvb2xiYXJJdGVtczogUXVlcnlMaXN0PFNreUxpc3RUb29sYmFySXRlbUNvbXBvbmVudD47XG5cbiAgQENvbnRlbnRDaGlsZHJlbihTa3lMaXN0VG9vbGJhclNvcnRDb21wb25lbnQpXG4gIHByaXZhdGUgdG9vbGJhclNvcnRzOiBRdWVyeUxpc3Q8U2t5TGlzdFRvb2xiYXJTb3J0Q29tcG9uZW50PjtcblxuICBAQ29udGVudENoaWxkcmVuKFNreUxpc3RGaWx0ZXJTdW1tYXJ5Q29tcG9uZW50KVxuICBwcml2YXRlIGZpbHRlclN1bW1hcnk6IFF1ZXJ5TGlzdDxTa3lMaXN0RmlsdGVyU3VtbWFyeUNvbXBvbmVudD47XG5cbiAgQENvbnRlbnRDaGlsZHJlbihTa3lMaXN0RmlsdGVySW5saW5lQ29tcG9uZW50KVxuICBwcml2YXRlIGlubGluZUZpbHRlcjogUXVlcnlMaXN0PFNreUxpc3RGaWx0ZXJJbmxpbmVDb21wb25lbnQ+O1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oU2t5TGlzdFRvb2xiYXJWaWV3QWN0aW9uc0NvbXBvbmVudClcbiAgcHJpdmF0ZSB2aWV3QWN0aW9uczogUXVlcnlMaXN0PFNreUxpc3RUb29sYmFyVmlld0FjdGlvbnNDb21wb25lbnQ+O1xuXG4gIEBWaWV3Q2hpbGQoJ3NlYXJjaCcsIHtcbiAgICByZWFkOiBUZW1wbGF0ZVJlZixcbiAgICBzdGF0aWM6IHRydWUsXG4gIH0pXG4gIHByaXZhdGUgc2VhcmNoVGVtcGxhdGU6IFRlbXBsYXRlUmVmPHVua25vd24+O1xuXG4gIEBWaWV3Q2hpbGQoJ3NvcnRTZWxlY3RvcicsIHtcbiAgICByZWFkOiBUZW1wbGF0ZVJlZixcbiAgICBzdGF0aWM6IHRydWUsXG4gIH0pXG4gIHByaXZhdGUgc29ydFNlbGVjdG9yVGVtcGxhdGU6IFRlbXBsYXRlUmVmPHVua25vd24+O1xuXG4gIEBWaWV3Q2hpbGQoJ2lubGluZUZpbHRlckJ1dHRvbicsIHtcbiAgICByZWFkOiBUZW1wbGF0ZVJlZixcbiAgICBzdGF0aWM6IHRydWUsXG4gIH0pXG4gIHByaXZhdGUgaW5saW5lRmlsdGVyQnV0dG9uVGVtcGxhdGU6IFRlbXBsYXRlUmVmPHVua25vd24+O1xuXG4gIHByaXZhdGUgY3VzdG9tSXRlbUlkczogc3RyaW5nW10gPSBbXTtcbiAgcHJpdmF0ZSBoYXNTb3J0U2VsZWN0b3JzID0gZmFsc2U7XG4gIHByaXZhdGUgaW5saW5lRmlsdGVyc0l0ZW1Ub29sYmFySW5kZXggPSA1MDAwO1xuICBwcml2YXRlIHNvcnRTZWxlY3Rvckl0ZW1Ub29sYmFySW5kZXggPSA2MDAwO1xuICBwcml2YXRlIG5nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHByaXZhdGUgX2luTWVtb3J5U2VhcmNoRW5hYmxlZDogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIHN0YXRlOiBMaXN0U3RhdGUsXG4gICAgcHJpdmF0ZSBkaXNwYXRjaGVyOiBMaXN0U3RhdGVEaXNwYXRjaGVyLFxuICAgIHByaXZhdGUgdG9vbGJhclN0YXRlOiBMaXN0VG9vbGJhclN0YXRlLFxuICAgIHB1YmxpYyB0b29sYmFyRGlzcGF0Y2hlcjogTGlzdFRvb2xiYXJTdGF0ZURpc3BhdGNoZXIsXG4gICAgbG9nZ2VyOiBTa3lMb2dTZXJ2aWNlXG4gICkge1xuICAgIGxvZ2dlci5kZXByZWNhdGVkKCdTa3lMaXN0VG9vbGJhckNvbXBvbmVudCcsIHtcbiAgICAgIGRlcHJlY2F0aW9uTWFqb3JWZXJzaW9uOiA2LFxuICAgICAgbW9yZUluZm9Vcmw6XG4gICAgICAgICdodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2NvbXBvbmVudHMvZGF0YS1tYW5hZ2VyJyxcbiAgICAgIHJlcGxhY2VtZW50UmVjb21tZW5kYXRpb246ICdVc2UgZGF0YSBtYW5hZ2VyIGluc3RlYWQuJyxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmRpc3BhdGNoZXIudG9vbGJhckV4aXN0cyh0cnVlKTtcblxuICAgIGdldFZhbHVlKHRoaXMuc2VhcmNoVGV4dCwgKHNlYXJjaFRleHQ6IHN0cmluZykgPT4ge1xuICAgICAgdGhpcy51cGRhdGVTZWFyY2hUZXh0KHNlYXJjaFRleHQpO1xuICAgIH0pO1xuXG4gICAgZ2V0VmFsdWUodGhpcy5zZWFyY2hFbmFibGVkLCAoc2VhcmNoRW5hYmxlZDogYm9vbGVhbikgPT4ge1xuICAgICAgdGhpcy50b29sYmFyRGlzcGF0Y2hlci5uZXh0KFxuICAgICAgICBuZXcgTGlzdFRvb2xiYXJDb25maWdTZXRTZWFyY2hFbmFibGVkQWN0aW9uKFxuICAgICAgICAgIHNlYXJjaEVuYWJsZWQgPT09IHVuZGVmaW5lZCA/IHRydWUgOiBzZWFyY2hFbmFibGVkXG4gICAgICAgIClcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICBnZXRWYWx1ZSh0aGlzLnRvb2xiYXJUeXBlLCAodHlwZTogc3RyaW5nKSA9PiB7XG4gICAgICB0aGlzLmRpc3BhdGNoZXIubmV4dChuZXcgTGlzdFRvb2xiYXJTZXRUeXBlQWN0aW9uKHRoaXMudG9vbGJhclR5cGUpKTtcbiAgICB9KTtcblxuICAgIGdldFZhbHVlKHRoaXMuc29ydFNlbGVjdG9yRW5hYmxlZCwgKHNvcnRTZWxlY3RvckVuYWJsZWQ6IGFueSkgPT4ge1xuICAgICAgdGhpcy50b29sYmFyRGlzcGF0Y2hlci5uZXh0KFxuICAgICAgICBuZXcgTGlzdFRvb2xiYXJDb25maWdTZXRTb3J0U2VsZWN0b3JFbmFibGVkQWN0aW9uKFxuICAgICAgICAgIHNvcnRTZWxlY3RvckVuYWJsZWQgPT09IHVuZGVmaW5lZCA/IHRydWUgOiBzb3J0U2VsZWN0b3JFbmFibGVkXG4gICAgICAgIClcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICB0aGlzLnNvcnRTZWxlY3RvcnMgPSB0aGlzLmdldFNvcnRTZWxlY3RvcnMoKTtcblxuICAgIC8vIEluaXRpYWxpemUgdGhlIHNvcnQgdG9vbGJhciBpdGVtIGlmIG5lY2Vzc2FyeVxuICAgIHRoaXMuc29ydFNlbGVjdG9yc1xuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpXG4gICAgICAuc3Vic2NyaWJlKChjdXJyZW50U29ydCkgPT4ge1xuICAgICAgICBpZiAoY3VycmVudFNvcnQubGVuZ3RoID4gMCAmJiAhdGhpcy5oYXNTb3J0U2VsZWN0b3JzKSB7XG4gICAgICAgICAgdGhpcy5oYXNTb3J0U2VsZWN0b3JzID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLmRpc3BhdGNoZXIudG9vbGJhckFkZEl0ZW1zKFtcbiAgICAgICAgICAgIG5ldyBMaXN0VG9vbGJhckl0ZW1Nb2RlbCh7XG4gICAgICAgICAgICAgIGlkOiAnc29ydC1zZWxlY3RvcicsXG4gICAgICAgICAgICAgIHRlbXBsYXRlOiB0aGlzLnNvcnRTZWxlY3RvclRlbXBsYXRlLFxuICAgICAgICAgICAgICBsb2NhdGlvbjogJ2xlZnQnLFxuICAgICAgICAgICAgICBpbmRleDogdGhpcy5zb3J0U2VsZWN0b3JJdGVtVG9vbGJhckluZGV4LFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgXSk7XG4gICAgICAgIH0gZWxzZSBpZiAoY3VycmVudFNvcnQubGVuZ3RoIDwgMSAmJiB0aGlzLmhhc1NvcnRTZWxlY3RvcnMpIHtcbiAgICAgICAgICB0aGlzLmhhc1NvcnRTZWxlY3RvcnMgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLmRpc3BhdGNoZXIudG9vbGJhclJlbW92ZUl0ZW1zKFsnc29ydC1zZWxlY3RvciddKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICB0aGlzLnNlYXJjaFRleHRJbnB1dCA9IHRoaXMuc3RhdGUucGlwZShcbiAgICAgIHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpLFxuICAgICAgb2JzZXJ2YWJsZU1hcCgocykgPT4gcy5zZWFyY2guc2VhcmNoVGV4dCksXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXG4gICAgKTtcblxuICAgIHRoaXMudmlldyA9IHRoaXMuc3RhdGUucGlwZShcbiAgICAgIHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpLFxuICAgICAgb2JzZXJ2YWJsZU1hcCgocykgPT4gcy52aWV3cy5hY3RpdmUpLFxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxuICAgICk7XG5cbiAgICB0aGlzLndhdGNoVGVtcGxhdGVzKCk7XG5cbiAgICB0aGlzLnR5cGUgPSB0aGlzLnN0YXRlLnBpcGUoXG4gICAgICB0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSxcbiAgICAgIG9ic2VydmFibGVNYXAoKHN0YXRlKSA9PiBzdGF0ZS50b29sYmFyLnR5cGUpLFxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxuICAgICk7XG5cbiAgICB0aGlzLnR5cGUucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSkuc3Vic2NyaWJlKCh0b29sYmFyVHlwZSkgPT4ge1xuICAgICAgaWYgKHRvb2xiYXJUeXBlID09PSAnc2VhcmNoJykge1xuICAgICAgICB0aGlzLmRpc3BhdGNoZXIudG9vbGJhclJlbW92ZUl0ZW1zKFsnc2VhcmNoJ10pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5kaXNwYXRjaGVyLnRvb2xiYXJBZGRJdGVtcyhbXG4gICAgICAgICAgbmV3IExpc3RUb29sYmFySXRlbU1vZGVsKHtcbiAgICAgICAgICAgIGlkOiAnc2VhcmNoJyxcbiAgICAgICAgICAgIHRlbXBsYXRlOiB0aGlzLnNlYXJjaFRlbXBsYXRlLFxuICAgICAgICAgICAgbG9jYXRpb246ICdyaWdodCcsXG4gICAgICAgICAgfSksXG4gICAgICAgIF0pO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5pc1NlYXJjaEVuYWJsZWQgPSB0aGlzLnRvb2xiYXJTdGF0ZS5waXBlKFxuICAgICAgdGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSksXG4gICAgICBvYnNlcnZhYmxlTWFwKChzKSA9PiBzLmNvbmZpZyksXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgb2JzZXJ2YWJsZU1hcCgoYykgPT4gYy5zZWFyY2hFbmFibGVkKVxuICAgICk7XG5cbiAgICB0aGlzLnN0YXRlXG4gICAgICAucGlwZShcbiAgICAgICAgb2JzZXJ2YWJsZU1hcCgocykgPT4gcy50b29sYmFyKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSksXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgIG9ic2VydmFibGVNYXAoKGMpID0+IGMuZGlzYWJsZWQpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChpc0Rpc2FibGVkKSA9PiAodGhpcy5pc1Rvb2xiYXJEaXNhYmxlZCA9IGlzRGlzYWJsZWQpKTtcblxuICAgIHRoaXMuaXNTb3J0U2VsZWN0b3JFbmFibGVkID0gdGhpcy50b29sYmFyU3RhdGUucGlwZShcbiAgICAgIHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpLFxuICAgICAgb2JzZXJ2YWJsZU1hcCgocykgPT4gcy5jb25maWcpLFxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgIG9ic2VydmFibGVNYXAoKGMpID0+IGMuc29ydFNlbGVjdG9yRW5hYmxlZClcbiAgICApO1xuXG4gICAgdGhpcy5pc011bHRpc2VsZWN0RW5hYmxlZCA9IHRoaXMuc3RhdGUucGlwZShcbiAgICAgIHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpLFxuICAgICAgb2JzZXJ2YWJsZU1hcCgocykgPT4gcy50b29sYmFyKSxcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICBvYnNlcnZhYmxlTWFwKCh0KSA9PiB0LnNob3dNdWx0aXNlbGVjdFRvb2xiYXIpXG4gICAgKTtcblxuICAgIHRoaXMuaGFzQXBwbGllZEZpbHRlcnMgPSB0aGlzLnN0YXRlLnBpcGUoXG4gICAgICB0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSxcbiAgICAgIG9ic2VydmFibGVNYXAoKHMpID0+IHMuZmlsdGVycyksXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgb2JzZXJ2YWJsZU1hcCgoZmlsdGVycykgPT4ge1xuICAgICAgICBjb25zdCBhY3RpdmVGaWx0ZXJzID0gZmlsdGVycy5maWx0ZXIoKGYpID0+IHtcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgZi52YWx1ZSAhPT0gJycgJiZcbiAgICAgICAgICAgIGYudmFsdWUgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICAgZi52YWx1ZSAhPT0gZmFsc2UgJiZcbiAgICAgICAgICAgIGYudmFsdWUgIT09IGYuZGVmYXVsdFZhbHVlXG4gICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBhY3RpdmVGaWx0ZXJzLmxlbmd0aCA+IDA7XG4gICAgICB9KVxuICAgICk7XG5cbiAgICB0aGlzLnN0YXRlLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpLnN1YnNjcmliZSgoY3VycmVudDogYW55KSA9PiB7XG4gICAgICB0aGlzLmhhc0FkZGl0aW9uYWxUb29sYmFyU2VjdGlvbiA9IGN1cnJlbnQudG9vbGJhci5pdGVtcy5sZW5ndGggPiAwO1xuICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgIC8vIEluamVjdCBjdXN0b20gdG9vbGJhciBpdGVtcy5cbiAgICB0aGlzLnRvb2xiYXJJdGVtcy5mb3JFYWNoKCh0b29sYmFySXRlbSkgPT4ge1xuICAgICAgdGhpcy5kaXNwYXRjaGVyLnRvb2xiYXJBZGRJdGVtcyhbbmV3IExpc3RUb29sYmFySXRlbU1vZGVsKHRvb2xiYXJJdGVtKV0pO1xuXG4gICAgICB0aGlzLmN1c3RvbUl0ZW1JZHMucHVzaCh0b29sYmFySXRlbS5pZCk7XG4gICAgfSk7XG5cbiAgICB0aGlzLnRvb2xiYXJJdGVtcy5jaGFuZ2VzXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKG5ld0l0ZW1zOiBRdWVyeUxpc3Q8U2t5TGlzdFRvb2xiYXJJdGVtQ29tcG9uZW50PikgPT4ge1xuICAgICAgICBuZXdJdGVtcy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMuY3VzdG9tSXRlbUlkcy5pbmRleE9mKGl0ZW0uaWQpIDwgMCkge1xuICAgICAgICAgICAgdGhpcy5kaXNwYXRjaGVyLnRvb2xiYXJBZGRJdGVtcyhbbmV3IExpc3RUb29sYmFySXRlbU1vZGVsKGl0ZW0pXSk7XG5cbiAgICAgICAgICAgIHRoaXMuY3VzdG9tSXRlbUlkcy5wdXNoKGl0ZW0uaWQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3QgaXRlbXNUb1JlbW92ZTogc3RyaW5nW10gPSBbXTtcblxuICAgICAgICB0aGlzLmN1c3RvbUl0ZW1JZHMuZm9yRWFjaCgoaXRlbUlkLCBpbmRleCkgPT4ge1xuICAgICAgICAgIGlmICghbmV3SXRlbXMuZmluZCgoaXRlbSkgPT4gaXRlbS5pZCA9PT0gaXRlbUlkKSkge1xuICAgICAgICAgICAgaXRlbXNUb1JlbW92ZS5wdXNoKGl0ZW1JZCk7XG4gICAgICAgICAgICB0aGlzLmN1c3RvbUl0ZW1JZHMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuZGlzcGF0Y2hlci50b29sYmFyUmVtb3ZlSXRlbXMoaXRlbXNUb1JlbW92ZSk7XG4gICAgICB9KTtcblxuICAgIGNvbnN0IHNvcnRNb2RlbHMgPSB0aGlzLnRvb2xiYXJTb3J0cy5tYXAoXG4gICAgICAoc29ydCkgPT5cbiAgICAgICAgbmV3IExpc3RTb3J0TGFiZWxNb2RlbCh7XG4gICAgICAgICAgdGV4dDogc29ydC5sYWJlbCxcbiAgICAgICAgICBmaWVsZFNlbGVjdG9yOiBzb3J0LmZpZWxkLFxuICAgICAgICAgIGZpZWxkVHlwZTogc29ydC50eXBlLFxuICAgICAgICAgIGdsb2JhbDogdHJ1ZSxcbiAgICAgICAgICBkZXNjZW5kaW5nOiBzb3J0LmRlc2NlbmRpbmcsXG4gICAgICAgIH0pXG4gICAgKTtcblxuICAgIHRoaXMuZGlzcGF0Y2hlci5zb3J0U2V0R2xvYmFsKHNvcnRNb2RlbHMpO1xuXG4gICAgLy8gQWRkIGlubGluZSBmaWx0ZXJzLlxuICAgIHRoaXMuc2hvd0ZpbHRlclN1bW1hcnkgPSB0aGlzLmZpbHRlclN1bW1hcnkubGVuZ3RoID4gMDtcbiAgICB0aGlzLmhhc0lubGluZUZpbHRlcnMgPSB0aGlzLmlubGluZUZpbHRlci5sZW5ndGggPiAwO1xuXG4gICAgaWYgKHRoaXMuaGFzSW5saW5lRmlsdGVycykge1xuICAgICAgdGhpcy5kaXNwYXRjaGVyLnRvb2xiYXJBZGRJdGVtcyhbXG4gICAgICAgIG5ldyBMaXN0VG9vbGJhckl0ZW1Nb2RlbCh7XG4gICAgICAgICAgdGVtcGxhdGU6IHRoaXMuaW5saW5lRmlsdGVyQnV0dG9uVGVtcGxhdGUsXG4gICAgICAgICAgbG9jYXRpb246ICdsZWZ0JyxcbiAgICAgICAgICBpbmRleDogdGhpcy5pbmxpbmVGaWx0ZXJzSXRlbVRvb2xiYXJJbmRleCxcbiAgICAgICAgfSksXG4gICAgICBdKTtcbiAgICB9XG5cbiAgICAvLyBDaGVjayBmb3IgdmlldyBhY3Rpb25zXG4gICAgdGhpcy5oYXNWaWV3QWN0aW9ucyA9IHRoaXMudmlld0FjdGlvbnMubGVuZ3RoID4gMDtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnNlYXJjaEFwcGxpZWQuY29tcGxldGUoKTtcbiAgICB0aGlzLm5nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgIHRoaXMubmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHVibGljIHNldFNvcnQoc29ydDogTGlzdFNvcnRMYWJlbE1vZGVsKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZS5waXBlKHRha2UoMSkpLnN1YnNjcmliZSgoY3VycmVudFN0YXRlKSA9PiB7XG4gICAgICBpZiAoXG4gICAgICAgIGN1cnJlbnRTdGF0ZS5wYWdpbmcucGFnZU51bWJlciAmJlxuICAgICAgICBjdXJyZW50U3RhdGUucGFnaW5nLnBhZ2VOdW1iZXIgIT09IDFcbiAgICAgICkge1xuICAgICAgICB0aGlzLmRpc3BhdGNoZXIubmV4dChuZXcgTGlzdFBhZ2luZ1NldFBhZ2VOdW1iZXJBY3Rpb24oTnVtYmVyKDEpKSk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuZGlzcGF0Y2hlci5zb3J0U2V0RmllbGRTZWxlY3RvcnMoW1xuICAgICAgICB7IGZpZWxkU2VsZWN0b3I6IHNvcnQuZmllbGRTZWxlY3RvciwgZGVzY2VuZGluZzogc29ydC5kZXNjZW5kaW5nIH0sXG4gICAgICBdKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBpbmxpbmVGaWx0ZXJCdXR0b25DbGljaygpIHtcbiAgICB0aGlzLmlubGluZUZpbHRlckJhckV4cGFuZGVkID0gIXRoaXMuaW5saW5lRmlsdGVyQmFyRXhwYW5kZWQ7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlU2VhcmNoVGV4dChzZWFyY2hUZXh0OiBzdHJpbmcpIHtcbiAgICB0aGlzLnNlYXJjaEFwcGxpZWQubmV4dChzZWFyY2hUZXh0KTtcbiAgICBpZiAodGhpcy5pbk1lbW9yeVNlYXJjaEVuYWJsZWQpIHtcbiAgICAgIHRoaXMuc3RhdGUucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoKGN1cnJlbnRTdGF0ZSkgPT4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgY3VycmVudFN0YXRlLnBhZ2luZy5wYWdlTnVtYmVyICYmXG4gICAgICAgICAgY3VycmVudFN0YXRlLnBhZ2luZy5wYWdlTnVtYmVyICE9PSAxXG4gICAgICAgICkge1xuICAgICAgICAgIHRoaXMuZGlzcGF0Y2hlci5uZXh0KG5ldyBMaXN0UGFnaW5nU2V0UGFnZU51bWJlckFjdGlvbihOdW1iZXIoMSkpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZGlzcGF0Y2hlci5zZWFyY2hTZXRUZXh0KHNlYXJjaFRleHQpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpdGVtSXNJblZpZXcoaXRlbVZpZXc6IHN0cmluZywgYWN0aXZlVmlldzogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGl0ZW1WaWV3ID09PSB1bmRlZmluZWQgfHwgaXRlbVZpZXcgPT09IGFjdGl2ZVZpZXc7XG4gIH1cblxuICBwcml2YXRlIGdldFNvcnRTZWxlY3RvcnMoKSB7XG4gICAgcmV0dXJuIG9ic2VydmFibGVDb21iaW5lTGF0ZXN0KFxuICAgICAgdGhpcy5zdGF0ZS5waXBlKFxuICAgICAgICBvYnNlcnZhYmxlTWFwKChzKSA9PiBzLnNvcnQuYXZhaWxhYmxlKSxcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxuICAgICAgKSxcbiAgICAgIHRoaXMuc3RhdGUucGlwZShcbiAgICAgICAgb2JzZXJ2YWJsZU1hcCgocykgPT4gcy5zb3J0Lmdsb2JhbCksXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKClcbiAgICAgICksXG4gICAgICB0aGlzLnN0YXRlLnBpcGUoXG4gICAgICAgIG9ic2VydmFibGVNYXAoKHMpID0+IHMuc29ydC5maWVsZFNlbGVjdG9ycyksXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKClcbiAgICAgICksXG4gICAgICAoXG4gICAgICAgIGF2YWlsYWJsZTogQXJyYXk8TGlzdFNvcnRMYWJlbE1vZGVsPixcbiAgICAgICAgZ2xvYmFsOiBBcnJheTxMaXN0U29ydExhYmVsTW9kZWw+LFxuICAgICAgICBmaWVsZFNlbGVjdG9yczogQXJyYXk8TGlzdFNvcnRGaWVsZFNlbGVjdG9yTW9kZWw+XG4gICAgICApID0+IHtcbiAgICAgICAgLy8gR2V0IHNvcnRzIHRoYXQgYXJlIGluIHRoZSBnbG9iYWwgdGhhdCBhcmUgbm90IGluIHRoZSBhdmFpbGFibGVcbiAgICAgICAgY29uc3Qgc29ydHMgPSBnbG9iYWwuZmlsdGVyKFxuICAgICAgICAgIChnKSA9PlxuICAgICAgICAgICAgYXZhaWxhYmxlLmZpbHRlcigoYSkgPT4gYS5maWVsZFNlbGVjdG9yID09PSBnLmZpZWxkU2VsZWN0b3IpXG4gICAgICAgICAgICAgIC5sZW5ndGggPT09IDBcbiAgICAgICAgKTtcblxuICAgICAgICBjb25zdCByZXN1bHRTb3J0U2VsZWN0b3JzID0gWy4uLnNvcnRzLCAuLi5hdmFpbGFibGVdLm1hcChcbiAgICAgICAgICAoc29ydExhYmVscykgPT4ge1xuICAgICAgICAgICAgY29uc3QgZnMgPSBmaWVsZFNlbGVjdG9ycy5maWx0ZXIoKGYpID0+IHtcbiAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICBmLmZpZWxkU2VsZWN0b3IgPT09IHNvcnRMYWJlbHMuZmllbGRTZWxlY3RvciAmJlxuICAgICAgICAgICAgICAgIGYuZGVzY2VuZGluZyA9PT0gc29ydExhYmVscy5kZXNjZW5kaW5nXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGxldCBzZWxlY3RlZCA9IGZhbHNlO1xuICAgICAgICAgICAgaWYgKGZzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgc2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICBzb3J0OiBzb3J0TGFiZWxzLFxuICAgICAgICAgICAgICBzZWxlY3RlZDogc2VsZWN0ZWQsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH1cbiAgICAgICAgKTtcblxuICAgICAgICByZXR1cm4gcmVzdWx0U29ydFNlbGVjdG9ycztcbiAgICAgIH1cbiAgICApLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpO1xuICB9XG5cbiAgcHJpdmF0ZSB3YXRjaFRlbXBsYXRlcygpIHtcbiAgICBvYnNlcnZhYmxlQ29tYmluZUxhdGVzdChcbiAgICAgIHRoaXMuc3RhdGUucGlwZShcbiAgICAgICAgb2JzZXJ2YWJsZU1hcCgocykgPT4gcy50b29sYmFyKSxcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxuICAgICAgKSxcbiAgICAgIHRoaXMudmlldy5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpLFxuICAgICAgKHRvb2xiYXI6IExpc3RUb29sYmFyTW9kZWwsIHZpZXc6IHN0cmluZykgPT4ge1xuICAgICAgICBjb25zdCBpdGVtcyA9IHRvb2xiYXIuaXRlbXMuZmlsdGVyKChpOiBMaXN0VG9vbGJhckl0ZW1Nb2RlbCkgPT4ge1xuICAgICAgICAgIHJldHVybiB0aGlzLml0ZW1Jc0luVmlldyhpLnZpZXcsIHZpZXcpO1xuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCB0ZW1wbGF0ZXM6IGFueSA9IHt9O1xuXG4gICAgICAgIGl0ZW1zLmZvckVhY2goKGl0ZW06IExpc3RUb29sYmFySXRlbU1vZGVsKSA9PiB7XG4gICAgICAgICAgdGVtcGxhdGVzW2l0ZW0ubG9jYXRpb25dID0gdGVtcGxhdGVzW2l0ZW0ubG9jYXRpb25dIHx8IFtdO1xuICAgICAgICAgIHRlbXBsYXRlc1tpdGVtLmxvY2F0aW9uXS5wdXNoKGl0ZW0pO1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gdGVtcGxhdGVzO1xuICAgICAgfVxuICAgIClcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSgodmFsdWUpID0+IHtcbiAgICAgICAgdGhpcy5sZWZ0VGVtcGxhdGVzID0gdmFsdWUubGVmdDtcbiAgICAgICAgdGhpcy5jZW50ZXJUZW1wbGF0ZXMgPSB2YWx1ZS5jZW50ZXI7XG4gICAgICAgIHRoaXMucmlnaHRUZW1wbGF0ZXMgPSB2YWx1ZS5yaWdodDtcbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0pO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwic2t5LWxpc3QtdG9vbGJhci1jb250YWluZXJcIj5cbiAgPHNreS10b29sYmFyICpuZ0lmPVwiKHR5cGUgfCBhc3luYykgIT09ICdzZWFyY2gnXCI+XG4gICAgPHNreS10b29sYmFyLXNlY3Rpb24+XG4gICAgICA8c2t5LXRvb2xiYXItaXRlbSAqbmdGb3I9XCJsZXQgaXRlbSBvZiBsZWZ0VGVtcGxhdGVzXCI+XG4gICAgICAgIDxza3ktbGlzdC10b29sYmFyLWl0ZW0tcmVuZGVyZXJcbiAgICAgICAgICBbYXR0ci5za3ktY21wLWlkXT1cIml0ZW0uaWRcIlxuICAgICAgICAgIFt0ZW1wbGF0ZV09XCJpdGVtLnRlbXBsYXRlXCJcbiAgICAgICAgPlxuICAgICAgICA8L3NreS1saXN0LXRvb2xiYXItaXRlbS1yZW5kZXJlcj5cbiAgICAgIDwvc2t5LXRvb2xiYXItaXRlbT5cbiAgICAgIDxza3ktdG9vbGJhci1pdGVtICpuZ0Zvcj1cImxldCBpdGVtIG9mIGNlbnRlclRlbXBsYXRlc1wiPlxuICAgICAgICA8c2t5LWxpc3QtdG9vbGJhci1pdGVtLXJlbmRlcmVyXG4gICAgICAgICAgW2F0dHIuc2t5LWNtcC1pZF09XCJpdGVtLmlkXCJcbiAgICAgICAgICBbdGVtcGxhdGVdPVwiaXRlbS50ZW1wbGF0ZVwiXG4gICAgICAgID5cbiAgICAgICAgPC9za3ktbGlzdC10b29sYmFyLWl0ZW0tcmVuZGVyZXI+XG4gICAgICA8L3NreS10b29sYmFyLWl0ZW0+XG4gICAgICA8c2t5LXRvb2xiYXItaXRlbVxuICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiByaWdodFRlbXBsYXRlc1wiXG4gICAgICAgIFthdHRyLnNreS10b29sYmFyLWlkXT1cIml0ZW0uaWRcIlxuICAgICAgPlxuICAgICAgICA8c2t5LWxpc3QtdG9vbGJhci1pdGVtLXJlbmRlcmVyXG4gICAgICAgICAgW2F0dHIuc2t5LWNtcC1pZF09XCJpdGVtLmlkXCJcbiAgICAgICAgICBbdGVtcGxhdGVdPVwiaXRlbS50ZW1wbGF0ZVwiXG4gICAgICAgID5cbiAgICAgICAgPC9za3ktbGlzdC10b29sYmFyLWl0ZW0tcmVuZGVyZXI+XG4gICAgICA8L3NreS10b29sYmFyLWl0ZW0+XG5cbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cblxuICAgICAgPHNreS10b29sYmFyLXZpZXctYWN0aW9ucyAqbmdJZj1cImhhc1ZpZXdBY3Rpb25zXCI+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInNreS1saXN0LXRvb2xiYXItdmlldy1hY3Rpb25zXCI+IDwvbmctY29udGVudD5cbiAgICAgIDwvc2t5LXRvb2xiYXItdmlldy1hY3Rpb25zPlxuICAgIDwvc2t5LXRvb2xiYXItc2VjdGlvbj5cblxuICAgIDxza3ktdG9vbGJhci1zZWN0aW9uXG4gICAgICAqbmdJZj1cInNob3dGaWx0ZXJTdW1tYXJ5ICYmIChoYXNBcHBsaWVkRmlsdGVycyB8IGFzeW5jKVwiXG4gICAgPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwic2t5LWxpc3QtZmlsdGVyLXN1bW1hcnlcIj4gPC9uZy1jb250ZW50PlxuICAgIDwvc2t5LXRvb2xiYXItc2VjdGlvbj5cbiAgPC9za3ktdG9vbGJhcj5cblxuICA8ZGl2XG4gICAgKm5nSWY9XCJcbiAgICAgICh0eXBlIHwgYXN5bmMpID09PSAnc2VhcmNoJyAmJlxuICAgICAgKChpc1NlYXJjaEVuYWJsZWQgfCBhc3luYykgfHwgaGFzQWRkaXRpb25hbFRvb2xiYXJTZWN0aW9uKVxuICAgIFwiXG4gICAgY2xhc3M9XCJza3ktbGlzdC10b29sYmFyLXNlYXJjaFwiXG4gID5cbiAgICA8c2t5LXRvb2xiYXI+XG4gICAgICA8c2t5LXRvb2xiYXItc2VjdGlvbiAqbmdJZj1cImlzU2VhcmNoRW5hYmxlZCB8IGFzeW5jXCI+XG4gICAgICAgIDxza3ktdG9vbGJhci1pdGVtPlxuICAgICAgICAgIDxza3ktbGlzdC10b29sYmFyLWl0ZW0tcmVuZGVyZXJcbiAgICAgICAgICAgIHNreS1jbXAtaWQ9XCJzZWFyY2hcIlxuICAgICAgICAgICAgW3RlbXBsYXRlXT1cInNlYXJjaFwiXG4gICAgICAgICAgPlxuICAgICAgICAgIDwvc2t5LWxpc3QtdG9vbGJhci1pdGVtLXJlbmRlcmVyPlxuICAgICAgICA8L3NreS10b29sYmFyLWl0ZW0+XG4gICAgICA8L3NreS10b29sYmFyLXNlY3Rpb24+XG4gICAgICA8c2t5LXRvb2xiYXItc2VjdGlvbiBbaGlkZGVuXT1cIiFoYXNBZGRpdGlvbmFsVG9vbGJhclNlY3Rpb25cIj5cbiAgICAgICAgPHNreS10b29sYmFyLWl0ZW0gKm5nRm9yPVwibGV0IGl0ZW0gb2YgbGVmdFRlbXBsYXRlc1wiPlxuICAgICAgICAgIDxza3ktbGlzdC10b29sYmFyLWl0ZW0tcmVuZGVyZXJcbiAgICAgICAgICAgIFthdHRyLnNreS1jbXAtaWRdPVwiaXRlbS5pZFwiXG4gICAgICAgICAgICBbdGVtcGxhdGVdPVwiaXRlbS50ZW1wbGF0ZVwiXG4gICAgICAgICAgPlxuICAgICAgICAgIDwvc2t5LWxpc3QtdG9vbGJhci1pdGVtLXJlbmRlcmVyPlxuICAgICAgICA8L3NreS10b29sYmFyLWl0ZW0+XG4gICAgICAgIDxza3ktdG9vbGJhci1pdGVtICpuZ0Zvcj1cImxldCBpdGVtIG9mIGNlbnRlclRlbXBsYXRlc1wiPlxuICAgICAgICAgIDxza3ktbGlzdC10b29sYmFyLWl0ZW0tcmVuZGVyZXJcbiAgICAgICAgICAgIFthdHRyLnNreS1jbXAtaWRdPVwiaXRlbS5pZFwiXG4gICAgICAgICAgICBbdGVtcGxhdGVdPVwiaXRlbS50ZW1wbGF0ZVwiXG4gICAgICAgICAgPlxuICAgICAgICAgIDwvc2t5LWxpc3QtdG9vbGJhci1pdGVtLXJlbmRlcmVyPlxuICAgICAgICA8L3NreS10b29sYmFyLWl0ZW0+XG4gICAgICAgIDxza3ktdG9vbGJhci1pdGVtXG4gICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgcmlnaHRUZW1wbGF0ZXNcIlxuICAgICAgICAgIFthdHRyLnNreS10b29sYmFyLWlkXT1cIml0ZW0uaWRcIlxuICAgICAgICA+XG4gICAgICAgICAgPHNreS1saXN0LXRvb2xiYXItaXRlbS1yZW5kZXJlclxuICAgICAgICAgICAgKm5nSWY9XCJpdGVtLmlkICE9PSAnc2VhcmNoJ1wiXG4gICAgICAgICAgICBbYXR0ci5za3ktY21wLWlkXT1cIml0ZW0uaWRcIlxuICAgICAgICAgICAgW3RlbXBsYXRlXT1cIml0ZW0udGVtcGxhdGVcIlxuICAgICAgICAgID5cbiAgICAgICAgICA8L3NreS1saXN0LXRvb2xiYXItaXRlbS1yZW5kZXJlcj5cbiAgICAgICAgPC9za3ktdG9vbGJhci1pdGVtPlxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG5cbiAgICAgICAgPHNreS10b29sYmFyLXZpZXctYWN0aW9ucyAqbmdJZj1cImhhc1ZpZXdBY3Rpb25zXCI+XG4gICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwic2t5LWxpc3QtdG9vbGJhci12aWV3LWFjdGlvbnNcIj4gPC9uZy1jb250ZW50PlxuICAgICAgICA8L3NreS10b29sYmFyLXZpZXctYWN0aW9ucz5cbiAgICAgIDwvc2t5LXRvb2xiYXItc2VjdGlvbj5cbiAgICA8L3NreS10b29sYmFyPlxuICA8L2Rpdj5cbiAgPGRpdlxuICAgICpuZ0lmPVwiaXNGaWx0ZXJCYXJEaXNwbGF5ZWRcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJmaWx0ZXJCdXR0b25JZFwiXG4gICAgW2lkXT1cImxpc3RGaWx0ZXJJbmxpbmVJZFwiXG4gID5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJza3ktbGlzdC1maWx0ZXItaW5saW5lXCI+IDwvbmctY29udGVudD5cbiAgPC9kaXY+XG4gIDxza3ktbGlzdC1tdWx0aXNlbGVjdC10b29sYmFyICpuZ0lmPVwiaXNNdWx0aXNlbGVjdEVuYWJsZWQgfCBhc3luY1wiPlxuICA8L3NreS1saXN0LW11bHRpc2VsZWN0LXRvb2xiYXI+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNzZWFyY2g+XG4gIDxkaXYgKm5nSWY9XCJpc1NlYXJjaEVuYWJsZWQgfCBhc3luY1wiIGNsYXNzPVwic2t5LWxpc3QtdG9vbGJhci1zZWFyY2gtd3JhcHBlclwiPlxuICAgIDxza3ktc2VhcmNoXG4gICAgICBbZGlzYWJsZWRdPVwiaXNUb29sYmFyRGlzYWJsZWRcIlxuICAgICAgW2V4cGFuZE1vZGVdPVwiKHR5cGUgfCBhc3luYykgPT09ICdzZWFyY2gnID8gJ2ZpdCcgOiAncmVzcG9uc2l2ZSdcIlxuICAgICAgW3BsYWNlaG9sZGVyVGV4dF09XCJwbGFjZWhvbGRlclwiXG4gICAgICBbc2VhcmNoVGV4dF09XCJzZWFyY2hUZXh0SW5wdXQgfCBhc3luY1wiXG4gICAgICAoc2VhcmNoQXBwbHkpPVwidXBkYXRlU2VhcmNoVGV4dCgkZXZlbnQpXCJcbiAgICA+XG4gICAgPC9za3ktc2VhcmNoPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInNreS1saXN0LXRvb2xiYXItc2VhcmNoLWFjdGlvbnNcIj48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNzb3J0U2VsZWN0b3I+XG4gIDxkaXZcbiAgICAqbmdJZj1cIlxuICAgICAgKGlzU29ydFNlbGVjdG9yRW5hYmxlZCB8IGFzeW5jKSAmJiAoc29ydFNlbGVjdG9ycyB8IGFzeW5jKS5sZW5ndGggPiAwXG4gICAgXCJcbiAgICBjbGFzcz1cInNreS10b29sYmFyLWl0ZW0tc29ydC1jb250YWluZXJcIlxuICA+XG4gICAgPHNreS1zb3J0IFtzaG93QnV0dG9uVGV4dF09XCJ0cnVlXCI+XG4gICAgICA8c2t5LXNvcnQtaXRlbVxuICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBzb3J0U2VsZWN0b3JzIHwgYXN5bmNcIlxuICAgICAgICBbYWN0aXZlXT1cIml0ZW0uc2VsZWN0ZWRcIlxuICAgICAgICAoaXRlbVNlbGVjdCk9XCJzZXRTb3J0KGl0ZW0uc29ydClcIlxuICAgICAgPlxuICAgICAgICB7eyBpdGVtLnNvcnQudGV4dCB9fVxuICAgICAgPC9za3ktc29ydC1pdGVtPlxuICAgIDwvc2t5LXNvcnQ+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNpbmxpbmVGaWx0ZXJCdXR0b24+XG4gIDxza3ktZmlsdGVyLWJ1dHRvblxuICAgIFthY3RpdmVdPVwiaGFzQXBwbGllZEZpbHRlcnMgfCBhc3luY1wiXG4gICAgW2FyaWFDb250cm9sc109XCJmaWx0ZXJCdXR0b25BcmlhQ29udHJvbHNcIlxuICAgIFthcmlhRXhwYW5kZWRdPVwiaW5saW5lRmlsdGVyQmFyRXhwYW5kZWRcIlxuICAgIFtkaXNhYmxlZF09XCJpc1Rvb2xiYXJEaXNhYmxlZFwiXG4gICAgW2ZpbHRlckJ1dHRvbklkXT1cImZpbHRlckJ1dHRvbklkXCJcbiAgICBbc2hvd0J1dHRvblRleHRdPVwidHJ1ZVwiXG4gICAgKGZpbHRlckJ1dHRvbkNsaWNrKT1cImlubGluZUZpbHRlckJ1dHRvbkNsaWNrKClcIlxuICA+XG4gIDwvc2t5LWZpbHRlci1idXR0b24+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
@@ -21,8 +21,8 @@ import * as i0 from "@angular/core";
|
|
|
21
21
|
*/
|
|
22
22
|
export class SkyListToolbarModule {
|
|
23
23
|
}
|
|
24
|
-
SkyListToolbarModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1
|
|
25
|
-
SkyListToolbarModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.1
|
|
24
|
+
SkyListToolbarModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SkyListToolbarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
25
|
+
SkyListToolbarModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.1", ngImport: i0, type: SkyListToolbarModule, declarations: [SkyListToolbarComponent,
|
|
26
26
|
SkyListToolbarItemComponent,
|
|
27
27
|
SkyListToolbarItemRendererComponent,
|
|
28
28
|
SkyListMultiselectToolbarComponent,
|
|
@@ -42,7 +42,7 @@ SkyListToolbarModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", ve
|
|
|
42
42
|
SkyListToolbarSearchActionsComponent,
|
|
43
43
|
SkyListToolbarSortComponent,
|
|
44
44
|
SkyListToolbarViewActionsComponent] });
|
|
45
|
-
SkyListToolbarModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.1
|
|
45
|
+
SkyListToolbarModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SkyListToolbarModule, imports: [CommonModule,
|
|
46
46
|
SkyCheckboxModule,
|
|
47
47
|
SkyI18nModule,
|
|
48
48
|
SkyToolbarModule,
|
|
@@ -52,7 +52,7 @@ SkyListToolbarModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", ve
|
|
|
52
52
|
SkyListFiltersModule,
|
|
53
53
|
SkyIconModule,
|
|
54
54
|
SkyListBuilderResourcesModule] });
|
|
55
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1
|
|
55
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SkyListToolbarModule, decorators: [{
|
|
56
56
|
type: NgModule,
|
|
57
57
|
args: [{
|
|
58
58
|
declarations: [
|
|
@@ -6,9 +6,9 @@ import * as i0 from "@angular/core";
|
|
|
6
6
|
*/
|
|
7
7
|
export class ListToolbarStateDispatcher extends StateDispatcher {
|
|
8
8
|
}
|
|
9
|
-
ListToolbarStateDispatcher.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1
|
|
10
|
-
ListToolbarStateDispatcher.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1
|
|
11
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1
|
|
9
|
+
ListToolbarStateDispatcher.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: ListToolbarStateDispatcher, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
|
|
10
|
+
ListToolbarStateDispatcher.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: ListToolbarStateDispatcher });
|
|
11
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: ListToolbarStateDispatcher, decorators: [{
|
|
12
12
|
type: Injectable
|
|
13
13
|
}] });
|
|
14
14
|
/**
|
|
@@ -13,9 +13,9 @@ export class ListToolbarState extends StateNode {
|
|
|
13
13
|
this.register('config', ListToolbarConfigOrchestrator).begin();
|
|
14
14
|
}
|
|
15
15
|
}
|
|
16
|
-
ListToolbarState.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1
|
|
17
|
-
ListToolbarState.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1
|
|
18
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1
|
|
16
|
+
ListToolbarState.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: ListToolbarState, deps: [{ token: i1.ListToolbarStateModel }, { token: i2.ListToolbarStateDispatcher }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
17
|
+
ListToolbarState.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: ListToolbarState });
|
|
18
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: ListToolbarState, decorators: [{
|
|
19
19
|
type: Injectable
|
|
20
20
|
}], ctorParameters: function () { return [{ type: i1.ListToolbarStateModel }, { type: i2.ListToolbarStateDispatcher }]; } });
|
|
21
21
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGJhci1zdGF0ZS5zdGF0ZS1ub2RlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2xpc3QtYnVpbGRlci9zcmMvbGliL21vZHVsZXMvbGlzdC10b29sYmFyL3N0YXRlL3Rvb2xiYXItc3RhdGUuc3RhdGUtbm9kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUV2RCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7OztBQUk3RTs7R0FFRztBQUVILE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxTQUFnQztJQUNwRSxZQUNFLFlBQW1DLEVBQ25DLFVBQXNDO1FBRXRDLEtBQUssQ0FBQyxZQUFZLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFFaEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsNkJBQTZCLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNqRSxDQUFDOzs2R0FSVSxnQkFBZ0I7aUhBQWhCLGdCQUFnQjsyRkFBaEIsZ0JBQWdCO2tCQUQ1QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3RhdGVOb2RlIH0gZnJvbSAnQHNreXV4L2xpc3QtYnVpbGRlci1jb21tb24nO1xuXG5pbXBvcnQgeyBMaXN0VG9vbGJhckNvbmZpZ09yY2hlc3RyYXRvciB9IGZyb20gJy4vY29uZmlnL2NvbmZpZy5vcmNoZXN0cmF0b3InO1xuaW1wb3J0IHsgTGlzdFRvb2xiYXJTdGF0ZU1vZGVsIH0gZnJvbSAnLi90b29sYmFyLXN0YXRlLm1vZGVsJztcbmltcG9ydCB7IExpc3RUb29sYmFyU3RhdGVEaXNwYXRjaGVyIH0gZnJvbSAnLi90b29sYmFyLXN0YXRlLnJ4c3RhdGUnO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTGlzdFRvb2xiYXJTdGF0ZSBleHRlbmRzIFN0YXRlTm9kZTxMaXN0VG9vbGJhclN0YXRlTW9kZWw+IHtcbiAgY29uc3RydWN0b3IoXG4gICAgaW5pdGlhbFN0YXRlOiBMaXN0VG9vbGJhclN0YXRlTW9kZWwsXG4gICAgZGlzcGF0Y2hlcjogTGlzdFRvb2xiYXJTdGF0ZURpc3BhdGNoZXJcbiAgKSB7XG4gICAgc3VwZXIoaW5pdGlhbFN0YXRlLCBkaXNwYXRjaGVyKTtcblxuICAgIHRoaXMucmVnaXN0ZXIoJ2NvbmZpZycsIExpc3RUb29sYmFyQ29uZmlnT3JjaGVzdHJhdG9yKS5iZWdpbigpO1xuICB9XG59XG4iXX0=
|
|
@@ -28,16 +28,16 @@ export class SkyListBuilderResourcesProvider {
|
|
|
28
28
|
*/
|
|
29
29
|
export class SkyListBuilderResourcesModule {
|
|
30
30
|
}
|
|
31
|
-
SkyListBuilderResourcesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1
|
|
32
|
-
SkyListBuilderResourcesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.1
|
|
33
|
-
SkyListBuilderResourcesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.1
|
|
31
|
+
SkyListBuilderResourcesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SkyListBuilderResourcesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
32
|
+
SkyListBuilderResourcesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.1", ngImport: i0, type: SkyListBuilderResourcesModule, exports: [SkyI18nModule] });
|
|
33
|
+
SkyListBuilderResourcesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SkyListBuilderResourcesModule, providers: [
|
|
34
34
|
{
|
|
35
35
|
provide: SKY_LIB_RESOURCES_PROVIDERS,
|
|
36
36
|
useClass: SkyListBuilderResourcesProvider,
|
|
37
37
|
multi: true,
|
|
38
38
|
},
|
|
39
39
|
], imports: [SkyI18nModule] });
|
|
40
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1
|
|
40
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SkyListBuilderResourcesModule, decorators: [{
|
|
41
41
|
type: NgModule,
|
|
42
42
|
args: [{
|
|
43
43
|
exports: [SkyI18nModule],
|