@skyux/ag-grid 11.26.0 → 11.28.0
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/css/sky-ag-grid.css +4 -4
- package/documentation.json +607 -607
- package/esm2022/lib/modules/ag-grid/ag-grid-adapter.service.mjs +4 -4
- package/esm2022/lib/modules/ag-grid/ag-grid-data-manager-adapter.directive.mjs +4 -4
- package/esm2022/lib/modules/ag-grid/ag-grid-row-delete.component.mjs +4 -4
- package/esm2022/lib/modules/ag-grid/ag-grid-row-delete.directive.mjs +4 -4
- package/esm2022/lib/modules/ag-grid/ag-grid-wrapper.component.mjs +4 -4
- package/esm2022/lib/modules/ag-grid/ag-grid.module.mjs +5 -5
- package/esm2022/lib/modules/ag-grid/ag-grid.service.mjs +4 -4
- package/esm2022/lib/modules/ag-grid/cell-editors/cell-editor-autocomplete/cell-editor-autocomplete.component.mjs +4 -4
- package/esm2022/lib/modules/ag-grid/cell-editors/cell-editor-autocomplete/cell-editor-autocomplete.module.mjs +5 -5
- package/esm2022/lib/modules/ag-grid/cell-editors/cell-editor-currency/cell-editor-currency.component.mjs +4 -4
- package/esm2022/lib/modules/ag-grid/cell-editors/cell-editor-currency/cell-editor-currency.module.mjs +5 -5
- package/esm2022/lib/modules/ag-grid/cell-editors/cell-editor-datepicker/cell-editor-datepicker.component.mjs +4 -4
- package/esm2022/lib/modules/ag-grid/cell-editors/cell-editor-datepicker/cell-editor-datepicker.module.mjs +5 -5
- package/esm2022/lib/modules/ag-grid/cell-editors/cell-editor-lookup/cell-editor-lookup.component.mjs +4 -4
- package/esm2022/lib/modules/ag-grid/cell-editors/cell-editor-lookup/cell-editor-lookup.module.mjs +5 -5
- package/esm2022/lib/modules/ag-grid/cell-editors/cell-editor-number/cell-editor-number.component.mjs +4 -4
- package/esm2022/lib/modules/ag-grid/cell-editors/cell-editor-number/cell-editor-number.module.mjs +5 -5
- package/esm2022/lib/modules/ag-grid/cell-editors/cell-editor-text/cell-editor-text.component.mjs +4 -4
- package/esm2022/lib/modules/ag-grid/cell-editors/cell-editor-text/cell-editor-text.module.mjs +5 -5
- package/esm2022/lib/modules/ag-grid/cell-renderers/cell-renderer-currency/cell-renderer-currency-validator.component.mjs +4 -4
- package/esm2022/lib/modules/ag-grid/cell-renderers/cell-renderer-currency/cell-renderer-currency.component.mjs +4 -4
- package/esm2022/lib/modules/ag-grid/cell-renderers/cell-renderer-currency/cell-renderer-currency.module.mjs +5 -5
- package/esm2022/lib/modules/ag-grid/cell-renderers/cell-renderer-lookup/cell-renderer-lookup.component.mjs +4 -4
- package/esm2022/lib/modules/ag-grid/cell-renderers/cell-renderer-lookup/cell-renderer-lookup.module.mjs +5 -5
- package/esm2022/lib/modules/ag-grid/cell-renderers/cell-renderer-row-selector/cell-renderer-row-selector.component.mjs +4 -4
- package/esm2022/lib/modules/ag-grid/cell-renderers/cell-renderer-row-selector/cell-renderer-row-selector.module.mjs +5 -5
- package/esm2022/lib/modules/ag-grid/cell-renderers/cell-renderer-template/cell-renderer-template.component.mjs +4 -4
- package/esm2022/lib/modules/ag-grid/cell-renderers/cell-renderer-validator-tooltip/cell-renderer-validator-tooltip.component.mjs +4 -4
- package/esm2022/lib/modules/ag-grid/cell-renderers/cell-renderer-validator-tooltip/cell-renderer-validator-tooltip.module.mjs +5 -5
- package/esm2022/lib/modules/ag-grid/cell-validator/ag-grid-cell-validator-tooltip.component.mjs +4 -4
- package/esm2022/lib/modules/ag-grid/cell-validator/ag-grid-cell-validator.module.mjs +5 -5
- package/esm2022/lib/modules/ag-grid/header/header-group.component.mjs +4 -4
- package/esm2022/lib/modules/ag-grid/header/header.component.mjs +4 -4
- package/esm2022/lib/modules/ag-grid/loading/loading.component.mjs +4 -4
- package/esm2022/lib/modules/ag-grid/types/header-group-info.mjs +4 -4
- package/esm2022/lib/modules/ag-grid/types/header-info.mjs +4 -4
- package/esm2022/lib/modules/shared/sky-ag-grid-resources.module.mjs +5 -5
- package/fesm2022/skyux-ag-grid.mjs +124 -124
- package/fesm2022/skyux-ag-grid.mjs.map +1 -1
- package/package.json +16 -16
|
@@ -48,13 +48,13 @@ export class SkyAgGridAdapterService {
|
|
|
48
48
|
focusableChildren[0].focus();
|
|
49
49
|
}
|
|
50
50
|
}
|
|
51
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
52
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.
|
|
51
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SkyAgGridAdapterService, deps: [{ token: i1.SkyCoreAdapterService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
52
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SkyAgGridAdapterService, providedIn: 'root' }); }
|
|
53
53
|
}
|
|
54
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
54
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SkyAgGridAdapterService, decorators: [{
|
|
55
55
|
type: Injectable,
|
|
56
56
|
args: [{
|
|
57
57
|
providedIn: 'root',
|
|
58
58
|
}]
|
|
59
59
|
}], ctorParameters: () => [{ type: i1.SkyCoreAdapterService }] });
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWctZ3JpZC1hZGFwdGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC9hZy1ncmlkLWFkYXB0ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFHM0M7O0dBRUc7QUFJSCxNQUFNLE9BQU8sdUJBQXVCO0lBQ2xDLGtCQUFrQixDQUF3QjtJQUUxQyxZQUFZLGlCQUF3QztRQUNsRCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsaUJBQWlCLENBQUM7SUFDOUMsQ0FBQztJQUVNLDJCQUEyQixDQUNoQyxPQUFvQixFQUNwQixTQUFpQjtRQUVqQixJQUFJLE9BQU8sSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQ3JELE9BQU8sT0FBTyxDQUFDO1FBQ2pCLENBQUM7YUFBTSxJQUFJLE9BQU8sQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNqQyxPQUFPLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQzVFLENBQUM7UUFFRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRU0scUJBQXFCLENBQUMsUUFBcUIsRUFBRSxRQUFnQjtRQUNsRSxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLElBQUksUUFBUSxFQUFFLENBQWdCLENBQUM7UUFFdEUsMEJBQTBCO1FBQzFCLElBQUksT0FBTyxFQUFFLENBQUM7WUFDWixPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDbEIsQ0FBQztJQUNILENBQUM7SUFFTSxpQkFBaUI7UUFDdEIsT0FBTyxRQUFRLENBQUMsYUFBNEIsQ0FBQztJQUMvQyxDQUFDO0lBRU0sdUJBQXVCLENBQzVCLFNBQXNCLEVBQ3RCLFFBQXNCLEVBQ3RCLGFBQXVCO1FBRXZCLElBQUksUUFBUSxFQUFFLENBQUM7WUFDYixNQUFNLGlCQUFpQixHQUNyQixJQUFJLENBQUMsa0JBQWtCLENBQUMsb0JBQW9CLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDekQsTUFBTSxtQkFBbUIsR0FBRyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDakUsTUFBTSxTQUFTLEdBQUcsYUFBYTtnQkFDN0IsQ0FBQyxDQUFDLG1CQUFtQixHQUFHLENBQUM7Z0JBQ3pCLENBQUMsQ0FBQyxtQkFBbUIsR0FBRyxDQUFDLENBQUM7WUFFNUIsSUFDRSxDQUFDLENBQUMsYUFBYSxJQUFJLGlCQUFpQixDQUFDLE1BQU0sSUFBSSxTQUFTLENBQUM7Z0JBQ3pELENBQUMsYUFBYSxJQUFJLFNBQVMsSUFBSSxDQUFDLENBQUMsRUFDakMsQ0FBQztnQkFDRCxPQUFPLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3RDLENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVNLHdCQUF3QixDQUFDLE9BQW9CO1FBQ2xELE1BQU0saUJBQWlCLEdBQ3JCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUV4RCxJQUFJLGlCQUFpQixDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzdCLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQy9CLENBQUM7SUFDSCxDQUFDOytHQWhFVSx1QkFBdUI7bUhBQXZCLHVCQUF1QixjQUZ0QixNQUFNOzs0RkFFUCx1QkFBdUI7a0JBSG5DLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2t5Q29yZUFkYXB0ZXJTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2NvcmUnO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgU2t5QWdHcmlkQWRhcHRlclNlcnZpY2Uge1xuICAjc2t5QWRhcHRlclNlcnZpY2U6IFNreUNvcmVBZGFwdGVyU2VydmljZTtcblxuICBjb25zdHJ1Y3Rvcihza3lBZGFwdGVyU2VydmljZTogU2t5Q29yZUFkYXB0ZXJTZXJ2aWNlKSB7XG4gICAgdGhpcy4jc2t5QWRhcHRlclNlcnZpY2UgPSBza3lBZGFwdGVyU2VydmljZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRFbGVtZW50T3JQYXJlbnRXaXRoQ2xhc3MoXG4gICAgZWxlbWVudDogSFRNTEVsZW1lbnQsXG4gICAgY2xhc3NOYW1lOiBzdHJpbmcsXG4gICk6IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoZWxlbWVudCAmJiBlbGVtZW50LmNsYXNzTGlzdC5jb250YWlucyhjbGFzc05hbWUpKSB7XG4gICAgICByZXR1cm4gZWxlbWVudDtcbiAgICB9IGVsc2UgaWYgKGVsZW1lbnQucGFyZW50RWxlbWVudCkge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0RWxlbWVudE9yUGFyZW50V2l0aENsYXNzKGVsZW1lbnQucGFyZW50RWxlbWVudCwgY2xhc3NOYW1lKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgcHVibGljIHNldEZvY3VzZWRFbGVtZW50QnlJZChwYXJlbnRFbDogSFRNTEVsZW1lbnQsIHNlbGVjdG9yOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBlbGVtZW50ID0gcGFyZW50RWwucXVlcnlTZWxlY3RvcihgIyR7c2VsZWN0b3J9YCkgYXMgSFRNTEVsZW1lbnQ7XG5cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmIChlbGVtZW50KSB7XG4gICAgICBlbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldEZvY3VzZWRFbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcbiAgfVxuXG4gIHB1YmxpYyBnZXROZXh0Rm9jdXNhYmxlRWxlbWVudChcbiAgICBjdXJyZW50RWw6IEhUTUxFbGVtZW50LFxuICAgIHBhcmVudEVsPzogSFRNTEVsZW1lbnQsXG4gICAgbW92ZUZvY3VzTGVmdD86IGJvb2xlYW4sXG4gICk6IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkIHtcbiAgICBpZiAocGFyZW50RWwpIHtcbiAgICAgIGNvbnN0IGZvY3VzYWJsZUNoaWxkcmVuID1cbiAgICAgICAgdGhpcy4jc2t5QWRhcHRlclNlcnZpY2UuZ2V0Rm9jdXNhYmxlQ2hpbGRyZW4ocGFyZW50RWwpO1xuICAgICAgY29uc3QgY3VycmVudEVsZW1lbnRJbmRleCA9IGZvY3VzYWJsZUNoaWxkcmVuLmluZGV4T2YoY3VycmVudEVsKTtcbiAgICAgIGNvbnN0IG5leHRJbmRleCA9IG1vdmVGb2N1c0xlZnRcbiAgICAgICAgPyBjdXJyZW50RWxlbWVudEluZGV4IC0gMVxuICAgICAgICA6IGN1cnJlbnRFbGVtZW50SW5kZXggKyAxO1xuXG4gICAgICBpZiAoXG4gICAgICAgICghbW92ZUZvY3VzTGVmdCAmJiBmb2N1c2FibGVDaGlsZHJlbi5sZW5ndGggPj0gbmV4dEluZGV4KSB8fFxuICAgICAgICAobW92ZUZvY3VzTGVmdCAmJiBuZXh0SW5kZXggPj0gMClcbiAgICAgICkge1xuICAgICAgICByZXR1cm4gZm9jdXNhYmxlQ2hpbGRyZW5bbmV4dEluZGV4XTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgcHVibGljIGZvY3VzT25Gb2N1c2FibGVDaGlsZHJlbihlbGVtZW50OiBIVE1MRWxlbWVudCk6IHZvaWQge1xuICAgIGNvbnN0IGZvY3VzYWJsZUNoaWxkcmVuID1cbiAgICAgIHRoaXMuI3NreUFkYXB0ZXJTZXJ2aWNlLmdldEZvY3VzYWJsZUNoaWxkcmVuKGVsZW1lbnQpO1xuXG4gICAgaWYgKGZvY3VzYWJsZUNoaWxkcmVuLmxlbmd0aCkge1xuICAgICAgZm9jdXNhYmxlQ2hpbGRyZW5bMF0uZm9jdXMoKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -293,10 +293,10 @@ export class SkyAgGridDataManagerAdapterDirective {
|
|
|
293
293
|
}
|
|
294
294
|
return gridColumnLimits;
|
|
295
295
|
}
|
|
296
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
297
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "18.2.
|
|
296
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SkyAgGridDataManagerAdapterDirective, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.SkyDataManagerService }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
297
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "18.2.13", type: SkyAgGridDataManagerAdapterDirective, selector: "[skyAgGridDataManagerAdapter]", inputs: { viewId: "viewId" }, queries: [{ propertyName: "agGridList", predicate: AgGridAngular, descendants: true, isSignal: true }, { propertyName: "skyAgGridWrapperList", predicate: SkyAgGridWrapperComponent, descendants: true, isSignal: true }], ngImport: i0 }); }
|
|
298
298
|
}
|
|
299
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
299
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SkyAgGridDataManagerAdapterDirective, decorators: [{
|
|
300
300
|
type: Directive,
|
|
301
301
|
args: [{
|
|
302
302
|
selector: '[skyAgGridDataManagerAdapter]',
|
|
@@ -304,4 +304,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
|
|
|
304
304
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.SkyDataManagerService }], propDecorators: { viewId: [{
|
|
305
305
|
type: Input
|
|
306
306
|
}] } });
|
|
307
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWctZ3JpZC1kYXRhLW1hbmFnZXItYWRhcHRlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC9hZy1ncmlkLWRhdGEtbWFuYWdlci1hZGFwdGVyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0wsU0FBUyxFQUNULEtBQUssRUFFTCxlQUFlLEVBQ2YsTUFBTSxFQUNOLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEQsT0FBTyxFQUFpQixvQkFBb0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQVFsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFVaEQsT0FBTyxFQUFFLE9BQU8sRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDN0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7O0FBRXhFLFNBQVMsaUJBQWlCLENBQUMsVUFBeUI7SUFDbEQsT0FBTyxVQUFVLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUMzQyxDQUFDO0FBRUQ7O0dBRUc7QUFJSCxNQUFNLE9BQU8sb0NBQW9DO0lBYy9DLGNBQWMsQ0FBNEI7SUFDMUMsaUJBQWlCLENBQWtDO0lBQ25ELHdCQUF3QixDQUF3QztJQUNoRSxhQUFhLENBQTJCO0lBQ3hDLFdBQVcsQ0FBZ0M7SUFDM0MsY0FBYyxDQUF1QjtJQUNyQyxlQUFlLENBQW9CO0lBQ25DLGVBQWUsQ0FBd0I7SUFFOUIsV0FBVyxDQUVsQjtJQUVGLFlBQ0UsY0FBaUMs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LFlBQVksRUFBRSxDQUFDLENBQUM7WUFDOUQsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsb0JBQW9CLENBQ2xCLGdCQUEwQixFQUMxQixhQUFzQyxFQUN0QyxjQUE2QztRQUU3QyxNQUFNLGdCQUFnQixHQUFtQixFQUFFLENBQUM7UUFFNUMsS0FBSyxNQUFNLE1BQU0sSUFBSSxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3RDLE1BQU0sV0FBVyxHQUFHLGFBQWEsQ0FBQyxjQUFjLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUUxRCxJQUFJLFdBQVcsRUFBRSxDQUFDO2dCQUNoQixnQkFBZ0IsQ0FBQyxJQUFJLENBQUM7b0JBQ3BCLEdBQUcsRUFBRSxNQUFNO29CQUNYLFFBQVEsRUFBRSxXQUFXO29CQUNyQixRQUFRLEVBQUUsV0FBVztpQkFDdEIsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLGdCQUFnQixDQUFDO0lBQzFCLENBQUM7OEdBNVpVLG9DQUFvQztrR0FBcEMsb0NBQW9DLDhIQU1hLGFBQWEsMEZBSTNCLHlCQUF5Qjs7MkZBVjVELG9DQUFvQztrQkFIaEQsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsK0JBQStCO2lCQUMxQzswSEFLUSxNQUFNO3NCQURaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgRGlyZWN0aXZlLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBjb250ZW50Q2hpbGRyZW4sXG4gIGVmZmVjdCxcbiAgaW5qZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgU2t5QnJlYWtwb2ludCwgU2t5TWVkaWFRdWVyeVNlcnZpY2UgfSBmcm9tICdAc2t5dXgvY29yZSc7XG5pbXBvcnQge1xuICBTa3lEYXRhTWFuYWdlclNlcnZpY2UsXG4gIFNreURhdGFNYW5hZ2VyU3RhdGUsXG4gIFNreURhdGFWaWV3Q29sdW1uV2lkdGhzLFxuICBTa3lEYXRhVmlld0NvbmZpZyxcbn0gZnJvbSAnQHNreXV4L2RhdGEtbWFuYWdlcic7XG5cbmltcG9ydCB7IEFnR3JpZEFuZ3VsYXIgfSBmcm9tICdhZy1ncmlkLWFuZ3VsYXInO1xuaW1wb3J0IHtcbiAgQ29sdW1uTW92ZWRFdmVudCxcbiAgQ29sdW1uUmVzaXplZEV2ZW50LFxuICBDb2x1bW5TdGF0ZSxcbiAgRHJhZ1N0b3BwZWRFdmVudCxcbiAgR3JpZEFwaSxcbiAgSUNvbHVtbkxpbWl0LFxuICBSb3dTZWxlY3RlZEV2ZW50LFxufSBmcm9tICdhZy1ncmlkLWNvbW11bml0eSc7XG5pbXBvcnQgeyBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBTa3lBZ0dyaWRXcmFwcGVyQ29tcG9uZW50IH0gZnJvbSAnLi9hZy1ncmlkLXdyYXBwZXIuY29tcG9uZW50JztcblxuZnVuY3Rpb24gdG9Db2x1bW5XaWR0aE5hbWUoYnJlYWtwb2ludDogU2t5QnJlYWtwb2ludCk6ICd4cycgfCAnc20nIHtcbiAgcmV0dXJuIGJyZWFrcG9pbnQgPT09ICd4cycgPyAneHMnIDogJ3NtJztcbn1cblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3NreUFnR3JpZERhdGFNYW5hZ2VyQWRhcHRlcl0nLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lBZ0dyaWREYXRhTWFuYWdlckFkYXB0ZXJEaXJlY3RpdmVcbiAgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBPbkRlc3Ryb3lcbntcbiAgQElucHV0KClcbiAgcHVibGljIHZpZXdJZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyByZWFkb25seSBhZ0dyaWRMaXN0ID0gY29udGVudENoaWxkcmVuPEFnR3JpZEFuZ3VsYXI+KEFnR3JpZEFuZ3VsYXIsIHtcbiAgICBkZXNjZW5kYW50czogdHJ1ZSxcbiAgfSk7XG5cbiAgcHVibGljIHNreUFnR3JpZFdyYXBwZXJMaXN0ID0gY29udGVudENoaWxkcmVuKFNreUFnR3JpZFdyYXBwZXJDb21wb25lbnQsIHtcbiAgICBkZXNjZW5kYW50czogdHJ1ZSxcbiAgfSk7XG5cbiAgI2N1cnJlbnRBZ0dyaWQ6IEFnR3JpZEFuZ3VsYXIgfCB1bmRlZmluZWQ7XG4gICNjdXJyZW50RGF0YVN0YXRlOiBTa3lEYXRhTWFuYWdlclN0YXRlIHwgdW5kZWZpbmVkO1xuICAjY3VycmVudFNreUFnR3JpZFdyYXBwZXI6IFNreUFnR3JpZFdyYXBwZXJDb21wb25lbnQgfCB1bmRlZmluZWQ7XG4gICNkYXRhU3RhdGVTdWI6IFN1YnNjcmlwdGlvbiB8IHVuZGVmaW5lZDtcbiAgI3ZpZXdDb25maWc6IFNreURhdGFWaWV3Q29uZmlnIHwgdW5kZWZpbmVkO1xuICAjbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICNjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWY7XG4gICNkYXRhTWFuYWdlclN2YzogU2t5RGF0YU1hbmFnZXJTZXJ2aWNlO1xuXG4gIHJlYWRvbmx5ICNicmVha3BvaW50ID0gdG9TaWduYWwoXG4gICAgaW5qZWN0KFNreU1lZGlhUXVlcnlTZXJ2aWNlKS5icmVha3BvaW50Q2hhbmdlLFxuICApO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBkYXRhTWFuYWdlclN2YzogU2t5RGF0YU1hbmFnZXJTZXJ2aWNlLFxuICApIHtcbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3RvciA9IGNoYW5nZURldGVjdG9yO1xuICAgIHRoaXMuI2RhdGFNYW5hZ2VyU3ZjID0gZGF0YU1hbmFnZXJTdmM7XG5cbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3QgbGlzdCA9IHRoaXMuYWdHcmlkTGlzdCgpO1xuXG4gICAgICB0aGlzLiNjaGVja0ZvckFnR3JpZChsaXN0KTtcbiAgICB9KTtcblxuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCBsaXN0ID0gdGhpcy5za3lBZ0dyaWRXcmFwcGVyTGlzdCgpO1xuXG4gICAgICB0aGlzLiNjaGVja0ZvclNreUFnR3JpZFdyYXBwZXIobGlzdCk7XG4gICAgfSk7XG5cbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3QgYnJlYWtwb2ludCA9IHRoaXMuI2JyZWFrcG9pbnQoKTtcblxuICAgICAgaWYgKGJyZWFrcG9pbnQpIHtcbiAgICAgICAgdGhpcy4jYXBwbHlDb2x1bW5XaWR0aHMoYnJlYWtwb2ludCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnZpZXdJZCkge1xuICAgICAgdGhpcy4jZGF0YU1hbmFnZXJTdmMuc2V0Vmlld2tlZXBlckNsYXNzZXModGhpcy52aWV3SWQsIFsnLmFnLWhlYWRlciddKTtcbiAgICAgIHRoaXMuI3ZpZXdDb25maWcgPSB0aGlzLiNkYXRhTWFuYWdlclN2Yy5nZXRWaWV3QnlJZCh0aGlzLnZpZXdJZCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgfVxuXG4gICNjaGVja0ZvckFnR3JpZChhZ0dyaWRMaXN0OiByZWFkb25seSBBZ0dyaWRBbmd1bGFyW10pOiB2b2lkIHtcbiAgICBjb25zdCBhZ0dyaWQgPSBhZ0dyaWRMaXN0WzBdO1xuICAgIGNvbnN0IGFnR3JpZENvdW50ID0gYWdHcmlkTGlzdC5sZW5ndGg7XG5cbiAgICBpZiAoYWdHcmlkKSB7XG4gICAgICBpZiAoYWdHcmlkICE9PSB0aGlzLiNjdXJyZW50QWdHcmlkKSB7XG4gICAgICAgIHRoaXMuI3JlZ2lzdGVyQWdHcmlkKGFnR3JpZCk7XG4gICAgICB9XG5cbiAgICAgIGlmIChhZ0dyaWRDb3VudCA+IDEpIHtcbiAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICdNb3JlIHRoYW4gb25lIGFnLWdyaWQgY2hpbGQgY29tcG9uZW50IHdhcyBmb3VuZC4gVXNpbmcgdGhlIGZpcnN0IGFnLUdyaWQuJyxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAjY2hlY2tGb3JTa3lBZ0dyaWRXcmFwcGVyKFxuICAgIHdyYXBwZXJzOiByZWFkb25seSBTa3lBZ0dyaWRXcmFwcGVyQ29tcG9uZW50W10sXG4gICk6IHZvaWQge1xuICAgIGNvbnN0IGNvdW50ID0gd3JhcHBlcnMubGVuZ3RoO1xuICAgIGNvbnN0IHdyYXBwZXIgPSB3cmFwcGVyc1swXTtcblxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKHdyYXBwZXIgIT09IHRoaXMuI2N1cnJlbnRTa3lBZ0dyaWRXcmFwcGVyKSB7XG4gICAgICB0aGlzLiNyZWdpc3RlclNreUFnR3JpZFdyYXBwZXIod3JhcHBlcik7XG4gICAgfVxuXG4gICAgaWYgKGNvdW50ID4gMSkge1xuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAnTW9yZSB0aGFuIG9uZSBhZy1ncmlkIGNoaWxkIGNvbXBvbmVudCB3YXMgZm91bmQuIFVzaW5nIHRoZSBmaXJzdCBhZy1HcmlkLicsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gICN1bnJlZ2lzdGVyQWdHcmlkKCk6IHZvaWQge1xuICAgIHRoaXMuI2N1cnJlbnRBZ0dyaWQgPSB1bmRlZmluZWQ7XG5cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgICBpZiAodGhpcy4jZGF0YVN0YXRlU3ViKSB7XG4gICAgICB0aGlzLiNkYXRhU3RhdGVTdWIudW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICAjdW5yZWdpc3RlclNreUFnR3JpZFdyYXBwZXIoKTogdm9pZCB7XG4gICAgdGhpcy4jY3VycmVudFNreUFnR3JpZFdyYXBwZXIgPSB1bmRlZmluZWQ7XG4gIH1cblxuICAjcmVnaXN0ZXJTa3lBZ0dyaWRXcmFwcGVyKHdyYXBwZXI6IFNreUFnR3JpZFdyYXBwZXJDb21wb25lbnQpOiB2b2lkIHtcbiAgICB0aGlzLiN1bnJlZ2lzdGVyU2t5QWdHcmlkV3JhcHBlcigpO1xuICAgIHRoaXMuI2N1cnJlbnRTa3lBZ0dyaWRXcmFwcGVyID0gd3JhcHBlcjtcblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuI2N1cnJlbnRTa3lBZ0dyaWRXcmFwcGVyKSB7XG4gICAgICAgIHRoaXMuI2N1cnJlbnRTa3lBZ0dyaWRXcmFwcGVyLnZpZXdrZWVwZXJDbGFzc2VzID0gW107XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAjcmVnaXN0ZXJBZ0dyaWQoYWdHcmlkOiBBZ0dyaWRBbmd1bGFyKTogdm9pZCB7XG4gICAgdGhpcy4jdW5yZWdpc3RlckFnR3JpZCgpO1xuXG4gICAgdGhpcy4jY3VycmVudEFnR3JpZCA9IGFnR3JpZDtcblxuICAgIGlmIChhZ0dyaWQpIHtcbiAgICAgIGFnR3JpZC5ncmlkUmVhZHkucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLiN2aWV3Q29uZmlnICYmIHRoaXMudmlld0lkKSB7XG4gICAgICAgICAgdGhpcy4jdmlld0NvbmZpZy5vblNlbGVjdEFsbENsaWNrID0gKCkgPT4gYWdHcmlkLmFwaS5zZWxlY3RBbGwoKTtcbiAgICAgICAgICB0aGlzLiN2aWV3Q29uZmlnLm9uQ2xlYXJBbGxDbGljayA9ICgpID0+IGFnR3JpZC5hcGkuZGVzZWxlY3RBbGwoKTtcbiAgICAgICAgICB0aGlzLiNkYXRhTWFuYWdlclN2Yy51cGRhdGVWaWV3Q29uZmlnKHRoaXMuI3ZpZXdDb25maWcpO1xuICAgICAgICAgIHRoaXMuI2RhdGFTdGF0ZVN1YiA9IHRoaXMuI2RhdGFNYW5hZ2VyU3ZjXG4gICAgICAgICAgICAuZ2V0RGF0YVN0YXRlVXBkYXRlcyh0aGlzLiN2aWV3Q29uZmlnLmlkKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZGF0YVN0YXRlOiBTa3lEYXRhTWFuYWdlclN0YXRlKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuI2N1cnJlbnREYXRhU3RhdGUgPSBkYXRhU3RhdGU7XG4gICAgICAgICAgICAgIHRoaXMuI2Rpc3BsYXlDb2x1bW5zKGRhdGFTdGF0ZSk7XG4gICAgICAgICAgICAgIHRoaXMuI2FwcGx5U29ydChkYXRhU3RhdGUpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICBpZiAoYWdHcmlkLmdyaWRPcHRpb25zPy5jb250ZXh0Py5lbmFibGVUb3BTY3JvbGwpIHtcbiAgICAgICAgICAgIHRoaXMuI2RhdGFNYW5hZ2VyU3ZjLnNldFZpZXdrZWVwZXJDbGFzc2VzKHRoaXMudmlld0lkLCBbXG4gICAgICAgICAgICAgICcuYWctaGVhZGVyJyxcbiAgICAgICAgICAgICAgJy5hZy1ib2R5LWhvcml6b250YWwtc2Nyb2xsJyxcbiAgICAgICAgICAgIF0pO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHRoaXMuI2FwcGx5Q29sdW1uV2lkdGhzKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICBhZ0dyaWQuY29sdW1uTW92ZWRcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgdGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpLFxuICAgICAgICAgIGZpbHRlcihcbiAgICAgICAgICAgIChldmVudDogQ29sdW1uTW92ZWRFdmVudCkgPT5cbiAgICAgICAgICAgICAgIVtcbiAgICAgICAgICAgICAgICAnZ3JpZEluaXRpYWxpemluZycsXG4gICAgICAgICAgICAgICAgJ3VpQ29sdW1uUmVzaXplZCcsXG4gICAgICAgICAgICAgICAgJ3VpQ29sdW1uRHJhZ2dlZCcsXG4gICAgICAgICAgICAgICAgJ2FwaScsXG4gICAgICAgICAgICAgIF0uaW5jbHVkZXMoZXZlbnQuc291cmNlKSxcbiAgICAgICAgICApLFxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKHZhbHVlOiBDb2x1bW5Nb3ZlZEV2ZW50KSA9PiB7XG4gICAgICAgICAgdGhpcy4jdXBkYXRlQ29sdW1uc0luQ3VycmVudERhdGFTdGF0ZSh2YWx1ZS5hcGkpO1xuICAgICAgICB9KTtcblxuICAgICAgYWdHcmlkLmNvbHVtblJlc2l6ZWRcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgdGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpLFxuICAgICAgICAgIGZpbHRlcihcbiAgICAgICAgICAgIChldmVudDogQ29sdW1uUmVzaXplZEV2ZW50KSA9PiBldmVudC5zb3VyY2UgPT09ICd1aUNvbHVtblJlc2l6ZWQnLFxuICAgICAgICAgICksXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgoZXZlbnQ6IENvbHVtblJlc2l6ZWRFdmVudCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGNvbElkID0gZXZlbnQuY29sdW1uPy5nZXRDb2xJZCgpO1xuICAgICAgICAgIGNvbnN0IHdpZHRoID0gZXZlbnQuY29sdW1uPy5nZXRBY3R1YWxXaWR0aCgpO1xuICAgICAgICAgIGNvbnN0IGJyZWFrcG9pbnQgPSB0aGlzLiNicmVha3BvaW50KCk7XG5cbiAgICAgICAgICBpZiAoY29sSWQgJiYgd2lkdGggJiYgYnJlYWtwb2ludCkge1xuICAgICAgICAgICAgdGhpcy4jdXBkYXRlQ29sdW1uV2lkdGgoY29sSWQsIHdpZHRoLCBicmVha3BvaW50KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICBhZ0dyaWQuZHJhZ1N0b3BwZWRcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgICAuc3Vic2NyaWJlKCh2YWx1ZTogRHJhZ1N0b3BwZWRFdmVudCkgPT4ge1xuICAgICAgICAgIHRoaXMuI3VwZGF0ZUNvbHVtbnNJbkN1cnJlbnREYXRhU3RhdGUodmFsdWUuYXBpKTtcbiAgICAgICAgfSk7XG5cbiAgICAgIGFnR3JpZC5yb3dTZWxlY3RlZFxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50OiBSb3dTZWxlY3RlZEV2ZW50KSA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMuI3ZpZXdDb25maWcgJiYgdGhpcy4jY3VycmVudERhdGFTdGF0ZSkge1xuICAgICAgICAgICAgY29uc3Qgcm93ID0gZXZlbnQubm9kZTtcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkSWRzID0gdGhpcy4jY3VycmVudERhdGFTdGF0ZS5zZWxlY3RlZElkcyB8fCBbXTtcbiAgICAgICAgICAgIGNvbnN0IHJvd0luZGV4ID0gc2VsZWN0ZWRJZHMuaW5kZXhPZihyb3cuZGF0YS5pZCk7XG5cbiAgICAgICAgICAgIGlmIChyb3cuaXNTZWxlY3RlZCgpICYmIHJvd0luZGV4ID09PSAtMSkge1xuICAgICAgICAgICAgICBzZWxlY3RlZElkcy5wdXNoKHJvdy5kYXRhLmlkKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoIXJvdy5pc1NlbGVjdGVkKCkgJiYgcm93SW5kZXggIT09IC0xKSB7XG4gICAgICAgICAgICAgIHNlbGVjdGVkSWRzLnNwbGljZShyb3dJbmRleCwgMSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuI2N1cnJlbnREYXRhU3RhdGUuc2VsZWN0ZWRJZHMgPSBzZWxlY3RlZElkcztcbiAgICAgICAgICAgIHRoaXMuI2RhdGFNYW5hZ2VyU3ZjLnVwZGF0ZURhdGFTdGF0ZShcbiAgICAgICAgICAgICAgdGhpcy4jY3VycmVudERhdGFTdGF0ZSxcbiAgICAgICAgICAgICAgdGhpcy4jdmlld0NvbmZpZy5pZCxcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgIGFnR3JpZC5zb3J0Q2hhbmdlZC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgY29uc3QgZ3JpZENvbHVtblN0YXRlczogQ29sdW1uU3RhdGVbXSA9IGFnR3JpZC5hcGkuZ2V0Q29sdW1uU3RhdGUoKTtcblxuICAgICAgICBjb25zdCBhY3RpdmVTb3J0Q29sdW1uU3RhdGUgPVxuICAgICAgICAgIGdyaWRDb2x1bW5TdGF0ZXM/LmZpbmQoXG4gICAgICAgICAgICAoYUdyaWRDb2x1bW5TdGF0ZSkgPT4gYUdyaWRDb2x1bW5TdGF0ZS5zb3J0SW5kZXggPT09IDAsXG4gICAgICAgICAgKSA/P1xuICAgICAgICAgIGdyaWRDb2x1bW5TdGF0ZXM/LmZpbmQoKGFHcmlkQ29sdW1uU3RhdGUpID0+IGFHcmlkQ29sdW1uU3RhdGUuc29ydCk7XG5cbiAgICAgICAgaWYgKHRoaXMuI3ZpZXdDb25maWcgJiYgdGhpcy4jY3VycmVudERhdGFTdGF0ZSkge1xuICAgICAgICAgIGlmIChhY3RpdmVTb3J0Q29sdW1uU3RhdGUpIHtcbiAgICAgICAgICAgIGNvbnN0IGFjdGl2ZVNvcnRDb2x1bW5EZWYgPSBhZ0dyaWQuYXBpLmdldENvbHVtbkRlZihcbiAgICAgICAgICAgICAgYWN0aXZlU29ydENvbHVtblN0YXRlLmNvbElkLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHRoaXMuI2N1cnJlbnREYXRhU3RhdGUuYWN0aXZlU29ydE9wdGlvbiA9IHtcbiAgICAgICAgICAgICAgZGVzY2VuZGluZzogYWN0aXZlU29ydENvbHVtblN0YXRlLnNvcnQgPT09ICdkZXNjJyxcbiAgICAgICAgICAgICAgaWQ6IGFjdGl2ZVNvcnRDb2x1bW5TdGF0ZS5jb2xJZCxcbiAgICAgICAgICAgICAgcHJvcGVydHlOYW1lOiBhY3RpdmVTb3J0Q29sdW1uRGVmPy5maWVsZCB8fCAnJyxcbiAgICAgICAgICAgICAgbGFiZWw6IGFjdGl2ZVNvcnRDb2x1bW5EZWY/LmhlYWRlck5hbWUgfHwgJycsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLiNjdXJyZW50RGF0YVN0YXRlLmFjdGl2ZVNvcnRPcHRpb24gPSB1bmRlZmluZWQ7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuI2RhdGFNYW5hZ2VyU3ZjLnVwZGF0ZURhdGFTdGF0ZShcbiAgICAgICAgICAgIHRoaXMuI2N1cnJlbnREYXRhU3RhdGUsXG4gICAgICAgICAgICB0aGlzLiN2aWV3Q29uZmlnLmlkLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gICN1cGRhdGVDb2x1bW5zSW5DdXJyZW50RGF0YVN0YXRlKGFwaTogR3JpZEFwaSk6IHZvaWQge1xuICAgIGlmICh0aGlzLiN2aWV3Q29uZmlnICYmIHRoaXMuI2N1cnJlbnREYXRhU3RhdGUpIHtcbiAgICAgIGNvbnN0IGNvbHVtbk9yZGVyID0gdGhpcy4jZ2V0Q29sdW1uT3JkZXIoYXBpKTtcblxuICAgICAgY29uc3Qgdmlld1N0YXRlID0gdGhpcy4jY3VycmVudERhdGFTdGF0ZS5nZXRWaWV3U3RhdGVCeUlkKFxuICAgICAgICB0aGlzLiN2aWV3Q29uZmlnLmlkLFxuICAgICAgKTtcblxuICAgICAgaWYgKFxuICAgICAgICB2aWV3U3RhdGUgJiZcbiAgICAgICAgKHZpZXdTdGF0ZS5kaXNwbGF5ZWRDb2x1bW5JZHMubGVuZ3RoICE9PSBjb2x1bW5PcmRlci5sZW5ndGggfHxcbiAgICAgICAgICB2aWV3U3RhdGUuZGlzcGxheWVkQ29sdW1uSWRzLnNvbWUoKGNvbCwgaSkgPT4gY29sICE9PSBjb2x1bW5PcmRlcltpXSkpXG4gICAgICApIHtcbiAgICAgICAgdmlld1N0YXRlLmRpc3BsYXllZENvbHVtbklkcyA9IGNvbHVtbk9yZGVyO1xuXG4gICAgICAgIHRoaXMuI2RhdGFNYW5hZ2VyU3ZjLnVwZGF0ZURhdGFTdGF0ZShcbiAgICAgICAgICB0aGlzLiNjdXJyZW50RGF0YVN0YXRlLmFkZE9yVXBkYXRlVmlldyhcbiAgICAgICAgICAgIHRoaXMuI3ZpZXdDb25maWcuaWQsXG4gICAgICAgICAgICB2aWV3U3RhdGUsXG4gICAgICAgICAgKSxcbiAgICAgICAgICB0aGlzLiN2aWV3Q29uZmlnLmlkLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICNnZXRDb2x1bW5PcmRlcihhcGk6IEdyaWRBcGkpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIGFwaVxuICAgICAgLmdldENvbHVtblN0YXRlKClcbiAgICAgIC5maWx0ZXIoKHN0YXRlKSA9PiAhc3RhdGUuaGlkZSlcbiAgICAgIC5tYXAoKHN0YXRlKSA9PiBzdGF0ZS5jb2xJZCk7XG4gIH1cblxuICAjZGlzcGxheUNvbHVtbnMoZGF0YVN0YXRlOiBTa3lEYXRhTWFuYWdlclN0YXRlKTogdm9pZCB7XG4gICAgY29uc3QgYWdHcmlkID0gdGhpcy4jY3VycmVudEFnR3JpZDtcblxuICAgIGlmIChhZ0dyaWQgJiYgdGhpcy4jdmlld0NvbmZpZykge1xuICAgICAgY29uc3Qgdmlld1N0YXRlID0gZGF0YVN0YXRlLmdldFZpZXdTdGF0ZUJ5SWQodGhpcy4jdmlld0NvbmZpZy5pZCk7XG4gICAgICBsZXQgZGlzcGxheWVkQ29sdW1uSWRzOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgICAvKmlzdGFuYnVsIGlnbm9yZSBlbHNlKi9cbiAgICAgIGlmICh2aWV3U3RhdGU/LmRpc3BsYXllZENvbHVtbklkcykge1xuICAgICAgICBkaXNwbGF5ZWRDb2x1bW5JZHMgPSB2aWV3U3RhdGUuZGlzcGxheWVkQ29sdW1uSWRzO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBjb2x1bW5PcmRlciA9IHRoaXMuI2dldENvbHVtbk9yZGVyKGFnR3JpZC5hcGkpO1xuXG4gICAgICBpZiAoXG4gICAgICAgIGRpc3BsYXllZENvbHVtbklkcy5sZW5ndGggIT09IGNvbHVtbk9yZGVyLmxlbmd0aCB8fFxuICAgICAgICBkaXNwbGF5ZWRDb2x1bW5JZHMuc29tZSgoY29sLCBpKSA9PiBjb2wgIT09IGNvbHVtbk9yZGVyW2ldKVxuICAgICAgKSB7XG4gICAgICAgIGNvbnN0IGhpZGVDb2x1bW5zID0gYWdHcmlkLmFwaVxuICAgICAgICAgIC5nZXRDb2x1bW5TdGF0ZSgpXG4gICAgICAgICAgLm1hcCgoY29sKSA9PiBjb2wuY29sSWQpXG4gICAgICAgICAgLmZpbHRlcigoY29sSWQpID0+ICFkaXNwbGF5ZWRDb2x1bW5JZHMuaW5jbHVkZXMoY29sSWQpKTtcblxuICAgICAgICBhZ0dyaWQuYXBpLnNldENvbHVtbnNWaXNpYmxlKGhpZGVDb2x1bW5zLCBmYWxzZSk7XG4gICAgICAgIGFnR3JpZC5hcGkuc2V0Q29sdW1uc1Zpc2libGUoZGlzcGxheWVkQ29sdW1uSWRzLCB0cnVlKTtcbiAgICAgICAgYWdHcmlkLmFwaS5tb3ZlQ29sdW1ucyhkaXNwbGF5ZWRDb2x1bW5JZHMsIDApO1xuICAgICAgICB0aGlzLiNyZW1vdmVDb2x1bW5XaWR0aHMoaGlkZUNvbHVtbnMpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICNhcHBseVNvcnQoZGF0YVN0YXRlOiBTa3lEYXRhTWFuYWdlclN0YXRlKTogdm9pZCB7XG4gICAgY29uc3QgYWdHcmlkID0gdGhpcy4jY3VycmVudEFnR3JpZDtcbiAgICBjb25zdCBhY3RpdmVTb3J0ID0gZGF0YVN0YXRlLmFjdGl2ZVNvcnRPcHRpb247XG5cbiAgICBpZiAoYWN0aXZlU29ydCkge1xuICAgICAgYWdHcmlkPy5hcGkuYXBwbHlDb2x1bW5TdGF0ZSh7XG4gICAgICAgIHN0YXRlOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgY29sSWQ6IGFjdGl2ZVNvcnQuaWQsXG4gICAgICAgICAgICBzb3J0OiBhY3RpdmVTb3J0LmRlc2NlbmRpbmcgPyAnZGVzYycgOiAnYXNjJyxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBkZWZhdWx0U3RhdGU6IHsgc29ydDogbnVsbCB9LFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgI3VwZGF0ZUNvbHVtbldpZHRoKFxuICAgIGNvbElkOiBzdHJpbmcsXG4gICAgd2lkdGg6IG51bWJlcixcbiAgICBicmVha3BvaW50OiBTa3lCcmVha3BvaW50LFxuICApOiB2b2lkIHtcbiAgICBjb25zdCB2aWV3U3RhdGUgPVxuICAgICAgdGhpcy52aWV3SWQgJiYgdGhpcy4jY3VycmVudERhdGFTdGF0ZT8uZ2V0Vmlld1N0YXRlQnlJZCh0aGlzLnZpZXdJZCk7XG4gICAgaWYgKHZpZXdTdGF0ZSAmJiB0aGlzLnZpZXdJZCAmJiB0aGlzLiNjdXJyZW50RGF0YVN0YXRlKSB7XG4gICAgICBjb25zdCBjdXJyZW50V2lkdGhzID0gdmlld1N0YXRlPy5jb2x1bW5XaWR0aHM7XG5cbiAgICAgIGN1cnJlbnRXaWR0aHNbdG9Db2x1bW5XaWR0aE5hbWUoYnJlYWtwb2ludCldW2NvbElkXSA9IHdpZHRoO1xuXG4gICAgICB2aWV3U3RhdGUuY29sdW1uV2lkdGhzID0gY3VycmVudFdpZHRocztcbiAgICAgIHRoaXMuI2RhdGFNYW5hZ2VyU3ZjLnVwZGF0ZURhdGFTdGF0ZShcbiAgICAgICAgdGhpcy4jY3VycmVudERhdGFTdGF0ZS5hZGRPclVwZGF0ZVZpZXcodGhpcy52aWV3SWQsIHZpZXdTdGF0ZSksXG4gICAgICAgIHRoaXMudmlld0lkLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAjcmVtb3ZlQ29sdW1uV2lkdGhzKGNvbElkczogc3RyaW5nW10pOiB2b2lkIHtcbiAgICBjb25zdCB2aWV3U3RhdGUgPVxuICAgICAgdGhpcy52aWV3SWQgJiYgdGhpcy4jY3VycmVudERhdGFTdGF0ZT8uZ2V0Vmlld1N0YXRlQnlJZCh0aGlzLnZpZXdJZCk7XG5cbiAgICBpZiAodmlld1N0YXRlICYmIHRoaXMudmlld0lkICYmIHRoaXMuI2N1cnJlbnREYXRhU3RhdGUpIHtcbiAgICAgIGNvbnN0IGN1cnJlbnRXaWR0aHMgPSB2aWV3U3RhdGU/LmNvbHVtbldpZHRocztcblxuICAgICAgZm9yIChjb25zdCBjb2xJZCBvZiBjb2xJZHMpIHtcbiAgICAgICAgZGVsZXRlIGN1cnJlbnRXaWR0aHNbJ3hzJ11bY29sSWRdO1xuICAgICAgICBkZWxldGUgY3VycmVudFdpZHRoc1snc20nXVtjb2xJZF07XG4gICAgICB9XG5cbiAgICAgIHZpZXdTdGF0ZS5jb2x1bW5XaWR0aHMgPSBjdXJyZW50V2lkdGhzO1xuICAgICAgdGhpcy4jZGF0YU1hbmFnZXJTdmMudXBkYXRlRGF0YVN0YXRlKFxuICAgICAgICB0aGlzLiNjdXJyZW50RGF0YVN0YXRlLmFkZE9yVXBkYXRlVmlldyh0aGlzLnZpZXdJZCwgdmlld1N0YXRlKSxcbiAgICAgICAgdGhpcy52aWV3SWQsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gICNhcHBseUNvbHVtbldpZHRocyhicmVha3BvaW50PzogU2t5QnJlYWtwb2ludCk6IHZvaWQge1xuICAgIGJyZWFrcG9pbnQgPz89IHRoaXMuI2JyZWFrcG9pbnQoKTtcblxuICAgIGlmIChicmVha3BvaW50KSB7XG4gICAgICBjb25zdCB2aWV3U3RhdGUgPVxuICAgICAgICB0aGlzLnZpZXdJZCAmJiB0aGlzLiNjdXJyZW50RGF0YVN0YXRlPy5nZXRWaWV3U3RhdGVCeUlkKHRoaXMudmlld0lkKTtcblxuICAgICAgaWYgKHZpZXdTdGF0ZSAmJiB2aWV3U3RhdGUuY29sdW1uV2lkdGhzICYmIHZpZXdTdGF0ZS5kaXNwbGF5ZWRDb2x1bW5JZHMpIHtcbiAgICAgICAgY29uc3QgY29sdW1uTGltaXRzID0gdGhpcy4jZ2V0R3JpZENvbHVtbkxpbWl0cyhcbiAgICAgICAgICB2aWV3U3RhdGUuZGlzcGxheWVkQ29sdW1uSWRzLFxuICAgICAgICAgIHZpZXdTdGF0ZS5jb2x1bW5XaWR0aHMsXG4gICAgICAgICAgdG9Db2x1bW5XaWR0aE5hbWUoYnJlYWtwb2ludCksXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy4jY3VycmVudEFnR3JpZD8uYXBpLnNpemVDb2x1bW5zVG9GaXQoeyBjb2x1bW5MaW1pdHMgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgI2dldEdyaWRDb2x1bW5MaW1pdHMoXG4gICAgZGlzcGxheWVkQ29sdW1uczogc3RyaW5nW10sXG4gICAgY3VycmVudFdpZHRoczogU2t5RGF0YVZpZXdDb2x1bW5XaWR0aHMsXG4gICAgYnJlYWtwb2ludE5hbWU6IGtleW9mIFNreURhdGFWaWV3Q29sdW1uV2lkdGhzLFxuICApOiBJQ29sdW1uTGltaXRbXSB7XG4gICAgY29uc3QgZ3JpZENvbHVtbkxpbWl0czogSUNvbHVtbkxpbWl0W10gPSBbXTtcblxuICAgIGZvciAoY29uc3QgY29sdW1uIG9mIGRpc3BsYXllZENvbHVtbnMpIHtcbiAgICAgIGNvbnN0IGNvbHVtbldpZHRoID0gY3VycmVudFdpZHRoc1ticmVha3BvaW50TmFtZV1bY29sdW1uXTtcblxuICAgICAgaWYgKGNvbHVtbldpZHRoKSB7XG4gICAgICAgIGdyaWRDb2x1bW5MaW1pdHMucHVzaCh7XG4gICAgICAgICAga2V5OiBjb2x1bW4sXG4gICAgICAgICAgbWluV2lkdGg6IGNvbHVtbldpZHRoLFxuICAgICAgICAgIG1heFdpZHRoOiBjb2x1bW5XaWR0aCxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBncmlkQ29sdW1uTGltaXRzO1xuICB9XG59XG4iXX0=
|
|
307
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWctZ3JpZC1kYXRhLW1hbmFnZXItYWRhcHRlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC9hZy1ncmlkLWRhdGEtbWFuYWdlci1hZGFwdGVyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0wsU0FBUyxFQUNULEtBQUssRUFFTCxlQUFlLEVBQ2YsTUFBTSxFQUNOLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEQsT0FBTyxFQUFpQixvQkFBb0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQVFsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFVaEQsT0FBTyxFQUFFLE9BQU8sRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDN0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7O0FBRXhFLFNBQVMsaUJBQWlCLENBQUMsVUFBeUI7SUFDbEQsT0FBTyxVQUFVLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUMzQyxDQUFDO0FBRUQ7O0dBRUc7QUFJSCxNQUFNLE9BQU8sb0NBQW9DO0lBYy9DLGNBQWMsQ0FBNEI7SUFDMUMsaUJBQWlCLENBQWtDO0lBQ25ELHdCQUF3QixDQUF3QztJQUNoRSxhQUFhLENBQTJCO0lBQ3hDLFdBQVcsQ0FBZ0M7SUFDM0MsY0FBYyxDQUF1QjtJQUNyQyxlQUFlLENBQW9CO0lBQ25DLGVBQWUsQ0FBd0I7SUFFOUIsV0FBVyxDQUVsQjtJQUVGLFlBQ0UsY0FBaUMs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LFlBQVksRUFBRSxDQUFDLENBQUM7WUFDOUQsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsb0JBQW9CLENBQ2xCLGdCQUEwQixFQUMxQixhQUFzQyxFQUN0QyxjQUE2QztRQUU3QyxNQUFNLGdCQUFnQixHQUFtQixFQUFFLENBQUM7UUFFNUMsS0FBSyxNQUFNLE1BQU0sSUFBSSxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3RDLE1BQU0sV0FBVyxHQUFHLGFBQWEsQ0FBQyxjQUFjLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUUxRCxJQUFJLFdBQVcsRUFBRSxDQUFDO2dCQUNoQixnQkFBZ0IsQ0FBQyxJQUFJLENBQUM7b0JBQ3BCLEdBQUcsRUFBRSxNQUFNO29CQUNYLFFBQVEsRUFBRSxXQUFXO29CQUNyQixRQUFRLEVBQUUsV0FBVztpQkFDdEIsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLGdCQUFnQixDQUFDO0lBQzFCLENBQUM7K0dBNVpVLG9DQUFvQzttR0FBcEMsb0NBQW9DLDhIQU1hLGFBQWEsMEZBSTNCLHlCQUF5Qjs7NEZBVjVELG9DQUFvQztrQkFIaEQsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsK0JBQStCO2lCQUMxQzswSEFLUSxNQUFNO3NCQURaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgRGlyZWN0aXZlLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBjb250ZW50Q2hpbGRyZW4sXG4gIGVmZmVjdCxcbiAgaW5qZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgU2t5QnJlYWtwb2ludCwgU2t5TWVkaWFRdWVyeVNlcnZpY2UgfSBmcm9tICdAc2t5dXgvY29yZSc7XG5pbXBvcnQge1xuICBTa3lEYXRhTWFuYWdlclNlcnZpY2UsXG4gIFNreURhdGFNYW5hZ2VyU3RhdGUsXG4gIFNreURhdGFWaWV3Q29sdW1uV2lkdGhzLFxuICBTa3lEYXRhVmlld0NvbmZpZyxcbn0gZnJvbSAnQHNreXV4L2RhdGEtbWFuYWdlcic7XG5cbmltcG9ydCB7IEFnR3JpZEFuZ3VsYXIgfSBmcm9tICdhZy1ncmlkLWFuZ3VsYXInO1xuaW1wb3J0IHtcbiAgQ29sdW1uTW92ZWRFdmVudCxcbiAgQ29sdW1uUmVzaXplZEV2ZW50LFxuICBDb2x1bW5TdGF0ZSxcbiAgRHJhZ1N0b3BwZWRFdmVudCxcbiAgR3JpZEFwaSxcbiAgSUNvbHVtbkxpbWl0LFxuICBSb3dTZWxlY3RlZEV2ZW50LFxufSBmcm9tICdhZy1ncmlkLWNvbW11bml0eSc7XG5pbXBvcnQgeyBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBTa3lBZ0dyaWRXcmFwcGVyQ29tcG9uZW50IH0gZnJvbSAnLi9hZy1ncmlkLXdyYXBwZXIuY29tcG9uZW50JztcblxuZnVuY3Rpb24gdG9Db2x1bW5XaWR0aE5hbWUoYnJlYWtwb2ludDogU2t5QnJlYWtwb2ludCk6ICd4cycgfCAnc20nIHtcbiAgcmV0dXJuIGJyZWFrcG9pbnQgPT09ICd4cycgPyAneHMnIDogJ3NtJztcbn1cblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3NreUFnR3JpZERhdGFNYW5hZ2VyQWRhcHRlcl0nLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lBZ0dyaWREYXRhTWFuYWdlckFkYXB0ZXJEaXJlY3RpdmVcbiAgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBPbkRlc3Ryb3lcbntcbiAgQElucHV0KClcbiAgcHVibGljIHZpZXdJZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyByZWFkb25seSBhZ0dyaWRMaXN0ID0gY29udGVudENoaWxkcmVuPEFnR3JpZEFuZ3VsYXI+KEFnR3JpZEFuZ3VsYXIsIHtcbiAgICBkZXNjZW5kYW50czogdHJ1ZSxcbiAgfSk7XG5cbiAgcHVibGljIHNreUFnR3JpZFdyYXBwZXJMaXN0ID0gY29udGVudENoaWxkcmVuKFNreUFnR3JpZFdyYXBwZXJDb21wb25lbnQsIHtcbiAgICBkZXNjZW5kYW50czogdHJ1ZSxcbiAgfSk7XG5cbiAgI2N1cnJlbnRBZ0dyaWQ6IEFnR3JpZEFuZ3VsYXIgfCB1bmRlZmluZWQ7XG4gICNjdXJyZW50RGF0YVN0YXRlOiBTa3lEYXRhTWFuYWdlclN0YXRlIHwgdW5kZWZpbmVkO1xuICAjY3VycmVudFNreUFnR3JpZFdyYXBwZXI6IFNreUFnR3JpZFdyYXBwZXJDb21wb25lbnQgfCB1bmRlZmluZWQ7XG4gICNkYXRhU3RhdGVTdWI6IFN1YnNjcmlwdGlvbiB8IHVuZGVmaW5lZDtcbiAgI3ZpZXdDb25maWc6IFNreURhdGFWaWV3Q29uZmlnIHwgdW5kZWZpbmVkO1xuICAjbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICNjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWY7XG4gICNkYXRhTWFuYWdlclN2YzogU2t5RGF0YU1hbmFnZXJTZXJ2aWNlO1xuXG4gIHJlYWRvbmx5ICNicmVha3BvaW50ID0gdG9TaWduYWwoXG4gICAgaW5qZWN0KFNreU1lZGlhUXVlcnlTZXJ2aWNlKS5icmVha3BvaW50Q2hhbmdlLFxuICApO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBkYXRhTWFuYWdlclN2YzogU2t5RGF0YU1hbmFnZXJTZXJ2aWNlLFxuICApIHtcbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3RvciA9IGNoYW5nZURldGVjdG9yO1xuICAgIHRoaXMuI2RhdGFNYW5hZ2VyU3ZjID0gZGF0YU1hbmFnZXJTdmM7XG5cbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3QgbGlzdCA9IHRoaXMuYWdHcmlkTGlzdCgpO1xuXG4gICAgICB0aGlzLiNjaGVja0ZvckFnR3JpZChsaXN0KTtcbiAgICB9KTtcblxuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCBsaXN0ID0gdGhpcy5za3lBZ0dyaWRXcmFwcGVyTGlzdCgpO1xuXG4gICAgICB0aGlzLiNjaGVja0ZvclNreUFnR3JpZFdyYXBwZXIobGlzdCk7XG4gICAgfSk7XG5cbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3QgYnJlYWtwb2ludCA9IHRoaXMuI2JyZWFrcG9pbnQoKTtcblxuICAgICAgaWYgKGJyZWFrcG9pbnQpIHtcbiAgICAgICAgdGhpcy4jYXBwbHlDb2x1bW5XaWR0aHMoYnJlYWtwb2ludCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnZpZXdJZCkge1xuICAgICAgdGhpcy4jZGF0YU1hbmFnZXJTdmMuc2V0Vmlld2tlZXBlckNsYXNzZXModGhpcy52aWV3SWQsIFsnLmFnLWhlYWRlciddKTtcbiAgICAgIHRoaXMuI3ZpZXdDb25maWcgPSB0aGlzLiNkYXRhTWFuYWdlclN2Yy5nZXRWaWV3QnlJZCh0aGlzLnZpZXdJZCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgfVxuXG4gICNjaGVja0ZvckFnR3JpZChhZ0dyaWRMaXN0OiByZWFkb25seSBBZ0dyaWRBbmd1bGFyW10pOiB2b2lkIHtcbiAgICBjb25zdCBhZ0dyaWQgPSBhZ0dyaWRMaXN0WzBdO1xuICAgIGNvbnN0IGFnR3JpZENvdW50ID0gYWdHcmlkTGlzdC5sZW5ndGg7XG5cbiAgICBpZiAoYWdHcmlkKSB7XG4gICAgICBpZiAoYWdHcmlkICE9PSB0aGlzLiNjdXJyZW50QWdHcmlkKSB7XG4gICAgICAgIHRoaXMuI3JlZ2lzdGVyQWdHcmlkKGFnR3JpZCk7XG4gICAgICB9XG5cbiAgICAgIGlmIChhZ0dyaWRDb3VudCA+IDEpIHtcbiAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICdNb3JlIHRoYW4gb25lIGFnLWdyaWQgY2hpbGQgY29tcG9uZW50IHdhcyBmb3VuZC4gVXNpbmcgdGhlIGZpcnN0IGFnLUdyaWQuJyxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAjY2hlY2tGb3JTa3lBZ0dyaWRXcmFwcGVyKFxuICAgIHdyYXBwZXJzOiByZWFkb25seSBTa3lBZ0dyaWRXcmFwcGVyQ29tcG9uZW50W10sXG4gICk6IHZvaWQge1xuICAgIGNvbnN0IGNvdW50ID0gd3JhcHBlcnMubGVuZ3RoO1xuICAgIGNvbnN0IHdyYXBwZXIgPSB3cmFwcGVyc1swXTtcblxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKHdyYXBwZXIgIT09IHRoaXMuI2N1cnJlbnRTa3lBZ0dyaWRXcmFwcGVyKSB7XG4gICAgICB0aGlzLiNyZWdpc3RlclNreUFnR3JpZFdyYXBwZXIod3JhcHBlcik7XG4gICAgfVxuXG4gICAgaWYgKGNvdW50ID4gMSkge1xuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAnTW9yZSB0aGFuIG9uZSBhZy1ncmlkIGNoaWxkIGNvbXBvbmVudCB3YXMgZm91bmQuIFVzaW5nIHRoZSBmaXJzdCBhZy1HcmlkLicsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gICN1bnJlZ2lzdGVyQWdHcmlkKCk6IHZvaWQge1xuICAgIHRoaXMuI2N1cnJlbnRBZ0dyaWQgPSB1bmRlZmluZWQ7XG5cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgICBpZiAodGhpcy4jZGF0YVN0YXRlU3ViKSB7XG4gICAgICB0aGlzLiNkYXRhU3RhdGVTdWIudW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICAjdW5yZWdpc3RlclNreUFnR3JpZFdyYXBwZXIoKTogdm9pZCB7XG4gICAgdGhpcy4jY3VycmVudFNreUFnR3JpZFdyYXBwZXIgPSB1bmRlZmluZWQ7XG4gIH1cblxuICAjcmVnaXN0ZXJTa3lBZ0dyaWRXcmFwcGVyKHdyYXBwZXI6IFNreUFnR3JpZFdyYXBwZXJDb21wb25lbnQpOiB2b2lkIHtcbiAgICB0aGlzLiN1bnJlZ2lzdGVyU2t5QWdHcmlkV3JhcHBlcigpO1xuICAgIHRoaXMuI2N1cnJlbnRTa3lBZ0dyaWRXcmFwcGVyID0gd3JhcHBlcjtcblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuI2N1cnJlbnRTa3lBZ0dyaWRXcmFwcGVyKSB7XG4gICAgICAgIHRoaXMuI2N1cnJlbnRTa3lBZ0dyaWRXcmFwcGVyLnZpZXdrZWVwZXJDbGFzc2VzID0gW107XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAjcmVnaXN0ZXJBZ0dyaWQoYWdHcmlkOiBBZ0dyaWRBbmd1bGFyKTogdm9pZCB7XG4gICAgdGhpcy4jdW5yZWdpc3RlckFnR3JpZCgpO1xuXG4gICAgdGhpcy4jY3VycmVudEFnR3JpZCA9IGFnR3JpZDtcblxuICAgIGlmIChhZ0dyaWQpIHtcbiAgICAgIGFnR3JpZC5ncmlkUmVhZHkucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLiN2aWV3Q29uZmlnICYmIHRoaXMudmlld0lkKSB7XG4gICAgICAgICAgdGhpcy4jdmlld0NvbmZpZy5vblNlbGVjdEFsbENsaWNrID0gKCkgPT4gYWdHcmlkLmFwaS5zZWxlY3RBbGwoKTtcbiAgICAgICAgICB0aGlzLiN2aWV3Q29uZmlnLm9uQ2xlYXJBbGxDbGljayA9ICgpID0+IGFnR3JpZC5hcGkuZGVzZWxlY3RBbGwoKTtcbiAgICAgICAgICB0aGlzLiNkYXRhTWFuYWdlclN2Yy51cGRhdGVWaWV3Q29uZmlnKHRoaXMuI3ZpZXdDb25maWcpO1xuICAgICAgICAgIHRoaXMuI2RhdGFTdGF0ZVN1YiA9IHRoaXMuI2RhdGFNYW5hZ2VyU3ZjXG4gICAgICAgICAgICAuZ2V0RGF0YVN0YXRlVXBkYXRlcyh0aGlzLiN2aWV3Q29uZmlnLmlkKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZGF0YVN0YXRlOiBTa3lEYXRhTWFuYWdlclN0YXRlKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuI2N1cnJlbnREYXRhU3RhdGUgPSBkYXRhU3RhdGU7XG4gICAgICAgICAgICAgIHRoaXMuI2Rpc3BsYXlDb2x1bW5zKGRhdGFTdGF0ZSk7XG4gICAgICAgICAgICAgIHRoaXMuI2FwcGx5U29ydChkYXRhU3RhdGUpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICBpZiAoYWdHcmlkLmdyaWRPcHRpb25zPy5jb250ZXh0Py5lbmFibGVUb3BTY3JvbGwpIHtcbiAgICAgICAgICAgIHRoaXMuI2RhdGFNYW5hZ2VyU3ZjLnNldFZpZXdrZWVwZXJDbGFzc2VzKHRoaXMudmlld0lkLCBbXG4gICAgICAgICAgICAgICcuYWctaGVhZGVyJyxcbiAgICAgICAgICAgICAgJy5hZy1ib2R5LWhvcml6b250YWwtc2Nyb2xsJyxcbiAgICAgICAgICAgIF0pO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHRoaXMuI2FwcGx5Q29sdW1uV2lkdGhzKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICBhZ0dyaWQuY29sdW1uTW92ZWRcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgdGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpLFxuICAgICAgICAgIGZpbHRlcihcbiAgICAgICAgICAgIChldmVudDogQ29sdW1uTW92ZWRFdmVudCkgPT5cbiAgICAgICAgICAgICAgIVtcbiAgICAgICAgICAgICAgICAnZ3JpZEluaXRpYWxpemluZycsXG4gICAgICAgICAgICAgICAgJ3VpQ29sdW1uUmVzaXplZCcsXG4gICAgICAgICAgICAgICAgJ3VpQ29sdW1uRHJhZ2dlZCcsXG4gICAgICAgICAgICAgICAgJ2FwaScsXG4gICAgICAgICAgICAgIF0uaW5jbHVkZXMoZXZlbnQuc291cmNlKSxcbiAgICAgICAgICApLFxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKHZhbHVlOiBDb2x1bW5Nb3ZlZEV2ZW50KSA9PiB7XG4gICAgICAgICAgdGhpcy4jdXBkYXRlQ29sdW1uc0luQ3VycmVudERhdGFTdGF0ZSh2YWx1ZS5hcGkpO1xuICAgICAgICB9KTtcblxuICAgICAgYWdHcmlkLmNvbHVtblJlc2l6ZWRcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgdGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpLFxuICAgICAgICAgIGZpbHRlcihcbiAgICAgICAgICAgIChldmVudDogQ29sdW1uUmVzaXplZEV2ZW50KSA9PiBldmVudC5zb3VyY2UgPT09ICd1aUNvbHVtblJlc2l6ZWQnLFxuICAgICAgICAgICksXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgoZXZlbnQ6IENvbHVtblJlc2l6ZWRFdmVudCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGNvbElkID0gZXZlbnQuY29sdW1uPy5nZXRDb2xJZCgpO1xuICAgICAgICAgIGNvbnN0IHdpZHRoID0gZXZlbnQuY29sdW1uPy5nZXRBY3R1YWxXaWR0aCgpO1xuICAgICAgICAgIGNvbnN0IGJyZWFrcG9pbnQgPSB0aGlzLiNicmVha3BvaW50KCk7XG5cbiAgICAgICAgICBpZiAoY29sSWQgJiYgd2lkdGggJiYgYnJlYWtwb2ludCkge1xuICAgICAgICAgICAgdGhpcy4jdXBkYXRlQ29sdW1uV2lkdGgoY29sSWQsIHdpZHRoLCBicmVha3BvaW50KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICBhZ0dyaWQuZHJhZ1N0b3BwZWRcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgICAuc3Vic2NyaWJlKCh2YWx1ZTogRHJhZ1N0b3BwZWRFdmVudCkgPT4ge1xuICAgICAgICAgIHRoaXMuI3VwZGF0ZUNvbHVtbnNJbkN1cnJlbnREYXRhU3RhdGUodmFsdWUuYXBpKTtcbiAgICAgICAgfSk7XG5cbiAgICAgIGFnR3JpZC5yb3dTZWxlY3RlZFxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50OiBSb3dTZWxlY3RlZEV2ZW50KSA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMuI3ZpZXdDb25maWcgJiYgdGhpcy4jY3VycmVudERhdGFTdGF0ZSkge1xuICAgICAgICAgICAgY29uc3Qgcm93ID0gZXZlbnQubm9kZTtcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkSWRzID0gdGhpcy4jY3VycmVudERhdGFTdGF0ZS5zZWxlY3RlZElkcyB8fCBbXTtcbiAgICAgICAgICAgIGNvbnN0IHJvd0luZGV4ID0gc2VsZWN0ZWRJZHMuaW5kZXhPZihyb3cuZGF0YS5pZCk7XG5cbiAgICAgICAgICAgIGlmIChyb3cuaXNTZWxlY3RlZCgpICYmIHJvd0luZGV4ID09PSAtMSkge1xuICAgICAgICAgICAgICBzZWxlY3RlZElkcy5wdXNoKHJvdy5kYXRhLmlkKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoIXJvdy5pc1NlbGVjdGVkKCkgJiYgcm93SW5kZXggIT09IC0xKSB7XG4gICAgICAgICAgICAgIHNlbGVjdGVkSWRzLnNwbGljZShyb3dJbmRleCwgMSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuI2N1cnJlbnREYXRhU3RhdGUuc2VsZWN0ZWRJZHMgPSBzZWxlY3RlZElkcztcbiAgICAgICAgICAgIHRoaXMuI2RhdGFNYW5hZ2VyU3ZjLnVwZGF0ZURhdGFTdGF0ZShcbiAgICAgICAgICAgICAgdGhpcy4jY3VycmVudERhdGFTdGF0ZSxcbiAgICAgICAgICAgICAgdGhpcy4jdmlld0NvbmZpZy5pZCxcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgIGFnR3JpZC5zb3J0Q2hhbmdlZC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgY29uc3QgZ3JpZENvbHVtblN0YXRlczogQ29sdW1uU3RhdGVbXSA9IGFnR3JpZC5hcGkuZ2V0Q29sdW1uU3RhdGUoKTtcblxuICAgICAgICBjb25zdCBhY3RpdmVTb3J0Q29sdW1uU3RhdGUgPVxuICAgICAgICAgIGdyaWRDb2x1bW5TdGF0ZXM/LmZpbmQoXG4gICAgICAgICAgICAoYUdyaWRDb2x1bW5TdGF0ZSkgPT4gYUdyaWRDb2x1bW5TdGF0ZS5zb3J0SW5kZXggPT09IDAsXG4gICAgICAgICAgKSA/P1xuICAgICAgICAgIGdyaWRDb2x1bW5TdGF0ZXM/LmZpbmQoKGFHcmlkQ29sdW1uU3RhdGUpID0+IGFHcmlkQ29sdW1uU3RhdGUuc29ydCk7XG5cbiAgICAgICAgaWYgKHRoaXMuI3ZpZXdDb25maWcgJiYgdGhpcy4jY3VycmVudERhdGFTdGF0ZSkge1xuICAgICAgICAgIGlmIChhY3RpdmVTb3J0Q29sdW1uU3RhdGUpIHtcbiAgICAgICAgICAgIGNvbnN0IGFjdGl2ZVNvcnRDb2x1bW5EZWYgPSBhZ0dyaWQuYXBpLmdldENvbHVtbkRlZihcbiAgICAgICAgICAgICAgYWN0aXZlU29ydENvbHVtblN0YXRlLmNvbElkLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHRoaXMuI2N1cnJlbnREYXRhU3RhdGUuYWN0aXZlU29ydE9wdGlvbiA9IHtcbiAgICAgICAgICAgICAgZGVzY2VuZGluZzogYWN0aXZlU29ydENvbHVtblN0YXRlLnNvcnQgPT09ICdkZXNjJyxcbiAgICAgICAgICAgICAgaWQ6IGFjdGl2ZVNvcnRDb2x1bW5TdGF0ZS5jb2xJZCxcbiAgICAgICAgICAgICAgcHJvcGVydHlOYW1lOiBhY3RpdmVTb3J0Q29sdW1uRGVmPy5maWVsZCB8fCAnJyxcbiAgICAgICAgICAgICAgbGFiZWw6IGFjdGl2ZVNvcnRDb2x1bW5EZWY/LmhlYWRlck5hbWUgfHwgJycsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLiNjdXJyZW50RGF0YVN0YXRlLmFjdGl2ZVNvcnRPcHRpb24gPSB1bmRlZmluZWQ7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuI2RhdGFNYW5hZ2VyU3ZjLnVwZGF0ZURhdGFTdGF0ZShcbiAgICAgICAgICAgIHRoaXMuI2N1cnJlbnREYXRhU3RhdGUsXG4gICAgICAgICAgICB0aGlzLiN2aWV3Q29uZmlnLmlkLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gICN1cGRhdGVDb2x1bW5zSW5DdXJyZW50RGF0YVN0YXRlKGFwaTogR3JpZEFwaSk6IHZvaWQge1xuICAgIGlmICh0aGlzLiN2aWV3Q29uZmlnICYmIHRoaXMuI2N1cnJlbnREYXRhU3RhdGUpIHtcbiAgICAgIGNvbnN0IGNvbHVtbk9yZGVyID0gdGhpcy4jZ2V0Q29sdW1uT3JkZXIoYXBpKTtcblxuICAgICAgY29uc3Qgdmlld1N0YXRlID0gdGhpcy4jY3VycmVudERhdGFTdGF0ZS5nZXRWaWV3U3RhdGVCeUlkKFxuICAgICAgICB0aGlzLiN2aWV3Q29uZmlnLmlkLFxuICAgICAgKTtcblxuICAgICAgaWYgKFxuICAgICAgICB2aWV3U3RhdGUgJiZcbiAgICAgICAgKHZpZXdTdGF0ZS5kaXNwbGF5ZWRDb2x1bW5JZHMubGVuZ3RoICE9PSBjb2x1bW5PcmRlci5sZW5ndGggfHxcbiAgICAgICAgICB2aWV3U3RhdGUuZGlzcGxheWVkQ29sdW1uSWRzLnNvbWUoKGNvbCwgaSkgPT4gY29sICE9PSBjb2x1bW5PcmRlcltpXSkpXG4gICAgICApIHtcbiAgICAgICAgdmlld1N0YXRlLmRpc3BsYXllZENvbHVtbklkcyA9IGNvbHVtbk9yZGVyO1xuXG4gICAgICAgIHRoaXMuI2RhdGFNYW5hZ2VyU3ZjLnVwZGF0ZURhdGFTdGF0ZShcbiAgICAgICAgICB0aGlzLiNjdXJyZW50RGF0YVN0YXRlLmFkZE9yVXBkYXRlVmlldyhcbiAgICAgICAgICAgIHRoaXMuI3ZpZXdDb25maWcuaWQsXG4gICAgICAgICAgICB2aWV3U3RhdGUsXG4gICAgICAgICAgKSxcbiAgICAgICAgICB0aGlzLiN2aWV3Q29uZmlnLmlkLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICNnZXRDb2x1bW5PcmRlcihhcGk6IEdyaWRBcGkpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIGFwaVxuICAgICAgLmdldENvbHVtblN0YXRlKClcbiAgICAgIC5maWx0ZXIoKHN0YXRlKSA9PiAhc3RhdGUuaGlkZSlcbiAgICAgIC5tYXAoKHN0YXRlKSA9PiBzdGF0ZS5jb2xJZCk7XG4gIH1cblxuICAjZGlzcGxheUNvbHVtbnMoZGF0YVN0YXRlOiBTa3lEYXRhTWFuYWdlclN0YXRlKTogdm9pZCB7XG4gICAgY29uc3QgYWdHcmlkID0gdGhpcy4jY3VycmVudEFnR3JpZDtcblxuICAgIGlmIChhZ0dyaWQgJiYgdGhpcy4jdmlld0NvbmZpZykge1xuICAgICAgY29uc3Qgdmlld1N0YXRlID0gZGF0YVN0YXRlLmdldFZpZXdTdGF0ZUJ5SWQodGhpcy4jdmlld0NvbmZpZy5pZCk7XG4gICAgICBsZXQgZGlzcGxheWVkQ29sdW1uSWRzOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgICAvKmlzdGFuYnVsIGlnbm9yZSBlbHNlKi9cbiAgICAgIGlmICh2aWV3U3RhdGU/LmRpc3BsYXllZENvbHVtbklkcykge1xuICAgICAgICBkaXNwbGF5ZWRDb2x1bW5JZHMgPSB2aWV3U3RhdGUuZGlzcGxheWVkQ29sdW1uSWRzO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBjb2x1bW5PcmRlciA9IHRoaXMuI2dldENvbHVtbk9yZGVyKGFnR3JpZC5hcGkpO1xuXG4gICAgICBpZiAoXG4gICAgICAgIGRpc3BsYXllZENvbHVtbklkcy5sZW5ndGggIT09IGNvbHVtbk9yZGVyLmxlbmd0aCB8fFxuICAgICAgICBkaXNwbGF5ZWRDb2x1bW5JZHMuc29tZSgoY29sLCBpKSA9PiBjb2wgIT09IGNvbHVtbk9yZGVyW2ldKVxuICAgICAgKSB7XG4gICAgICAgIGNvbnN0IGhpZGVDb2x1bW5zID0gYWdHcmlkLmFwaVxuICAgICAgICAgIC5nZXRDb2x1bW5TdGF0ZSgpXG4gICAgICAgICAgLm1hcCgoY29sKSA9PiBjb2wuY29sSWQpXG4gICAgICAgICAgLmZpbHRlcigoY29sSWQpID0+ICFkaXNwbGF5ZWRDb2x1bW5JZHMuaW5jbHVkZXMoY29sSWQpKTtcblxuICAgICAgICBhZ0dyaWQuYXBpLnNldENvbHVtbnNWaXNpYmxlKGhpZGVDb2x1bW5zLCBmYWxzZSk7XG4gICAgICAgIGFnR3JpZC5hcGkuc2V0Q29sdW1uc1Zpc2libGUoZGlzcGxheWVkQ29sdW1uSWRzLCB0cnVlKTtcbiAgICAgICAgYWdHcmlkLmFwaS5tb3ZlQ29sdW1ucyhkaXNwbGF5ZWRDb2x1bW5JZHMsIDApO1xuICAgICAgICB0aGlzLiNyZW1vdmVDb2x1bW5XaWR0aHMoaGlkZUNvbHVtbnMpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICNhcHBseVNvcnQoZGF0YVN0YXRlOiBTa3lEYXRhTWFuYWdlclN0YXRlKTogdm9pZCB7XG4gICAgY29uc3QgYWdHcmlkID0gdGhpcy4jY3VycmVudEFnR3JpZDtcbiAgICBjb25zdCBhY3RpdmVTb3J0ID0gZGF0YVN0YXRlLmFjdGl2ZVNvcnRPcHRpb247XG5cbiAgICBpZiAoYWN0aXZlU29ydCkge1xuICAgICAgYWdHcmlkPy5hcGkuYXBwbHlDb2x1bW5TdGF0ZSh7XG4gICAgICAgIHN0YXRlOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgY29sSWQ6IGFjdGl2ZVNvcnQuaWQsXG4gICAgICAgICAgICBzb3J0OiBhY3RpdmVTb3J0LmRlc2NlbmRpbmcgPyAnZGVzYycgOiAnYXNjJyxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBkZWZhdWx0U3RhdGU6IHsgc29ydDogbnVsbCB9LFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgI3VwZGF0ZUNvbHVtbldpZHRoKFxuICAgIGNvbElkOiBzdHJpbmcsXG4gICAgd2lkdGg6IG51bWJlcixcbiAgICBicmVha3BvaW50OiBTa3lCcmVha3BvaW50LFxuICApOiB2b2lkIHtcbiAgICBjb25zdCB2aWV3U3RhdGUgPVxuICAgICAgdGhpcy52aWV3SWQgJiYgdGhpcy4jY3VycmVudERhdGFTdGF0ZT8uZ2V0Vmlld1N0YXRlQnlJZCh0aGlzLnZpZXdJZCk7XG4gICAgaWYgKHZpZXdTdGF0ZSAmJiB0aGlzLnZpZXdJZCAmJiB0aGlzLiNjdXJyZW50RGF0YVN0YXRlKSB7XG4gICAgICBjb25zdCBjdXJyZW50V2lkdGhzID0gdmlld1N0YXRlPy5jb2x1bW5XaWR0aHM7XG5cbiAgICAgIGN1cnJlbnRXaWR0aHNbdG9Db2x1bW5XaWR0aE5hbWUoYnJlYWtwb2ludCldW2NvbElkXSA9IHdpZHRoO1xuXG4gICAgICB2aWV3U3RhdGUuY29sdW1uV2lkdGhzID0gY3VycmVudFdpZHRocztcbiAgICAgIHRoaXMuI2RhdGFNYW5hZ2VyU3ZjLnVwZGF0ZURhdGFTdGF0ZShcbiAgICAgICAgdGhpcy4jY3VycmVudERhdGFTdGF0ZS5hZGRPclVwZGF0ZVZpZXcodGhpcy52aWV3SWQsIHZpZXdTdGF0ZSksXG4gICAgICAgIHRoaXMudmlld0lkLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAjcmVtb3ZlQ29sdW1uV2lkdGhzKGNvbElkczogc3RyaW5nW10pOiB2b2lkIHtcbiAgICBjb25zdCB2aWV3U3RhdGUgPVxuICAgICAgdGhpcy52aWV3SWQgJiYgdGhpcy4jY3VycmVudERhdGFTdGF0ZT8uZ2V0Vmlld1N0YXRlQnlJZCh0aGlzLnZpZXdJZCk7XG5cbiAgICBpZiAodmlld1N0YXRlICYmIHRoaXMudmlld0lkICYmIHRoaXMuI2N1cnJlbnREYXRhU3RhdGUpIHtcbiAgICAgIGNvbnN0IGN1cnJlbnRXaWR0aHMgPSB2aWV3U3RhdGU/LmNvbHVtbldpZHRocztcblxuICAgICAgZm9yIChjb25zdCBjb2xJZCBvZiBjb2xJZHMpIHtcbiAgICAgICAgZGVsZXRlIGN1cnJlbnRXaWR0aHNbJ3hzJ11bY29sSWRdO1xuICAgICAgICBkZWxldGUgY3VycmVudFdpZHRoc1snc20nXVtjb2xJZF07XG4gICAgICB9XG5cbiAgICAgIHZpZXdTdGF0ZS5jb2x1bW5XaWR0aHMgPSBjdXJyZW50V2lkdGhzO1xuICAgICAgdGhpcy4jZGF0YU1hbmFnZXJTdmMudXBkYXRlRGF0YVN0YXRlKFxuICAgICAgICB0aGlzLiNjdXJyZW50RGF0YVN0YXRlLmFkZE9yVXBkYXRlVmlldyh0aGlzLnZpZXdJZCwgdmlld1N0YXRlKSxcbiAgICAgICAgdGhpcy52aWV3SWQsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gICNhcHBseUNvbHVtbldpZHRocyhicmVha3BvaW50PzogU2t5QnJlYWtwb2ludCk6IHZvaWQge1xuICAgIGJyZWFrcG9pbnQgPz89IHRoaXMuI2JyZWFrcG9pbnQoKTtcblxuICAgIGlmIChicmVha3BvaW50KSB7XG4gICAgICBjb25zdCB2aWV3U3RhdGUgPVxuICAgICAgICB0aGlzLnZpZXdJZCAmJiB0aGlzLiNjdXJyZW50RGF0YVN0YXRlPy5nZXRWaWV3U3RhdGVCeUlkKHRoaXMudmlld0lkKTtcblxuICAgICAgaWYgKHZpZXdTdGF0ZSAmJiB2aWV3U3RhdGUuY29sdW1uV2lkdGhzICYmIHZpZXdTdGF0ZS5kaXNwbGF5ZWRDb2x1bW5JZHMpIHtcbiAgICAgICAgY29uc3QgY29sdW1uTGltaXRzID0gdGhpcy4jZ2V0R3JpZENvbHVtbkxpbWl0cyhcbiAgICAgICAgICB2aWV3U3RhdGUuZGlzcGxheWVkQ29sdW1uSWRzLFxuICAgICAgICAgIHZpZXdTdGF0ZS5jb2x1bW5XaWR0aHMsXG4gICAgICAgICAgdG9Db2x1bW5XaWR0aE5hbWUoYnJlYWtwb2ludCksXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy4jY3VycmVudEFnR3JpZD8uYXBpLnNpemVDb2x1bW5zVG9GaXQoeyBjb2x1bW5MaW1pdHMgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgI2dldEdyaWRDb2x1bW5MaW1pdHMoXG4gICAgZGlzcGxheWVkQ29sdW1uczogc3RyaW5nW10sXG4gICAgY3VycmVudFdpZHRoczogU2t5RGF0YVZpZXdDb2x1bW5XaWR0aHMsXG4gICAgYnJlYWtwb2ludE5hbWU6IGtleW9mIFNreURhdGFWaWV3Q29sdW1uV2lkdGhzLFxuICApOiBJQ29sdW1uTGltaXRbXSB7XG4gICAgY29uc3QgZ3JpZENvbHVtbkxpbWl0czogSUNvbHVtbkxpbWl0W10gPSBbXTtcblxuICAgIGZvciAoY29uc3QgY29sdW1uIG9mIGRpc3BsYXllZENvbHVtbnMpIHtcbiAgICAgIGNvbnN0IGNvbHVtbldpZHRoID0gY3VycmVudFdpZHRoc1ticmVha3BvaW50TmFtZV1bY29sdW1uXTtcblxuICAgICAgaWYgKGNvbHVtbldpZHRoKSB7XG4gICAgICAgIGdyaWRDb2x1bW5MaW1pdHMucHVzaCh7XG4gICAgICAgICAga2V5OiBjb2x1bW4sXG4gICAgICAgICAgbWluV2lkdGg6IGNvbHVtbldpZHRoLFxuICAgICAgICAgIG1heFdpZHRoOiBjb2x1bW5XaWR0aCxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBncmlkQ29sdW1uTGltaXRzO1xuICB9XG59XG4iXX0=
|
|
@@ -9,8 +9,8 @@ import * as i2 from "@skyux/layout";
|
|
|
9
9
|
* @internal
|
|
10
10
|
*/
|
|
11
11
|
export class SkyAgGridRowDeleteComponent {
|
|
12
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
13
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.
|
|
12
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SkyAgGridRowDeleteComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
13
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SkyAgGridRowDeleteComponent, isStandalone: true, selector: "sky-ag-grid-row-delete", viewQueries: [{ propertyName: "inlineDeleteTemplateRef", first: true, predicate: ["inlineDeleteTemplateRef"], descendants: true, read: TemplateRef }, { propertyName: "inlineDeleteRefs", predicate: ["inlineDeleteRef"], descendants: true }], ngImport: i0, template: `
|
|
14
14
|
<ng-template
|
|
15
15
|
#inlineDeleteTemplateRef
|
|
16
16
|
let-row
|
|
@@ -38,7 +38,7 @@ export class SkyAgGridRowDeleteComponent {
|
|
|
38
38
|
</ng-template>
|
|
39
39
|
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: SkyInlineDeleteModule }, { kind: "component", type: i2.λ8, selector: "sky-inline-delete", inputs: ["pending"], outputs: ["cancelTriggered", "deleteTriggered"] }] }); }
|
|
40
40
|
}
|
|
41
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
41
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SkyAgGridRowDeleteComponent, decorators: [{
|
|
42
42
|
type: Component,
|
|
43
43
|
args: [{
|
|
44
44
|
standalone: true,
|
|
@@ -79,4 +79,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
|
|
|
79
79
|
type: ViewChild,
|
|
80
80
|
args: ['inlineDeleteTemplateRef', { read: TemplateRef }]
|
|
81
81
|
}] } });
|
|
82
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
82
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWctZ3JpZC1yb3ctZGVsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9saWIvbW9kdWxlcy9hZy1ncmlkL2FnLWdyaWQtcm93LWRlbGV0ZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCxTQUFTLEVBR1QsV0FBVyxFQUNYLFNBQVMsRUFDVCxZQUFZLEdBQ2IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBRXREOzs7R0FHRztBQWlDSCxNQUFNLE9BQU8sMkJBQTJCOytHQUEzQiwyQkFBMkI7bUdBQTNCLDJCQUEyQixpTUFJUSxXQUFXLHNIQWpDL0M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMEJULDJEQUNTLFlBQVksbUhBQUUscUJBQXFCOzs0RkFFbEMsMkJBQTJCO2tCQWhDdkMsU0FBUzttQkFBQztvQkFDVCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLHdCQUF3QjtvQkFDbEMsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTBCVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUscUJBQXFCLENBQUM7aUJBQy9DOzhCQUdRLGdCQUFnQjtzQkFEdEIsWUFBWTt1QkFBQyxpQkFBaUI7Z0JBSXhCLHVCQUF1QjtzQkFEN0IsU0FBUzt1QkFBQyx5QkFBeUIsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBRdWVyeUxpc3QsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDaGlsZHJlbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTa3lJbmxpbmVEZWxldGVNb2R1bGUgfSBmcm9tICdAc2t5dXgvbGF5b3V0JztcblxuLyoqXG4gKiBDb21wb25lbnQgZm9yIHJlbmRlcmluZyB0aGUgaW5saW5lIGRlbGV0ZSB0ZW1wbGF0ZSBpbiB0aGUgb3ZlcmxheS5cbiAqIEBpbnRlcm5hbFxuICovXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICdza3ktYWctZ3JpZC1yb3ctZGVsZXRlJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8bmctdGVtcGxhdGVcbiAgICAgICNpbmxpbmVEZWxldGVUZW1wbGF0ZVJlZlxuICAgICAgbGV0LXJvd1xuICAgICAgbGV0LXRhYmxlV2lkdGg9XCJ0YWJsZVdpZHRoKClcIlxuICAgICAgbGV0LWdldFJvd0RlbGV0ZUl0ZW09XCJnZXRSb3dEZWxldGVJdGVtXCJcbiAgICAgIGxldC1jYW5jZWxSb3dEZWxldGU9XCJjYW5jZWxSb3dEZWxldGVcIlxuICAgICAgbGV0LWNvbmZpcm1Sb3dEZWxldGU9XCJjb25maXJtUm93RGVsZXRlXCJcbiAgICA+XG4gICAgICA8ZGl2XG4gICAgICAgICNpbmxpbmVEZWxldGVSZWZcbiAgICAgICAgY2xhc3M9XCJza3ktYWctZ3JpZC1yb3ctZGVsZXRlXCJcbiAgICAgICAgW2lkXT1cIidyb3ctZGVsZXRlLXJlZi0nICsgcm93LmlkXCJcbiAgICAgICAgW25nU3R5bGVdPVwie1xuICAgICAgICAgIGhlaWdodDogcm93LnJvd0hlaWdodCArICdweCcsXG4gICAgICAgICAgcG9zaXRpb246ICdmaXhlZCcsXG4gICAgICAgICAgd2lkdGg6IHRhYmxlV2lkdGggKyAncHgnLFxuICAgICAgICB9XCJcbiAgICAgID5cbiAgICAgICAgPHNreS1pbmxpbmUtZGVsZXRlXG4gICAgICAgICAgW3BlbmRpbmddPVwiZ2V0Um93RGVsZXRlSXRlbShyb3cpLnBlbmRpbmdcIlxuICAgICAgICAgIChjYW5jZWxUcmlnZ2VyZWQpPVwiY2FuY2VsUm93RGVsZXRlKHJvdylcIlxuICAgICAgICAgIChkZWxldGVUcmlnZ2VyZWQpPVwiY29uZmlybVJvd0RlbGV0ZShyb3cpXCJcbiAgICAgICAgLz5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIGAsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFNreUlubGluZURlbGV0ZU1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIFNreUFnR3JpZFJvd0RlbGV0ZUNvbXBvbmVudCB7XG4gIEBWaWV3Q2hpbGRyZW4oJ2lubGluZURlbGV0ZVJlZicpXG4gIHB1YmxpYyBpbmxpbmVEZWxldGVSZWZzOiBRdWVyeUxpc3Q8RWxlbWVudFJlZj4gfCB1bmRlZmluZWQ7XG5cbiAgQFZpZXdDaGlsZCgnaW5saW5lRGVsZXRlVGVtcGxhdGVSZWYnLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pXG4gIHB1YmxpYyBpbmxpbmVEZWxldGVUZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8dW5rbm93bj4gfCB1bmRlZmluZWQ7XG59XG4iXX0=
|
|
@@ -237,10 +237,10 @@ export class SkyAgGridRowDeleteDirective {
|
|
|
237
237
|
});
|
|
238
238
|
this.#changeDetector.markForCheck();
|
|
239
239
|
}
|
|
240
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
241
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.
|
|
240
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SkyAgGridRowDeleteDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
241
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: SkyAgGridRowDeleteDirective, selector: "[skyAgGridRowDelete]", inputs: { rowDeleteIds: "rowDeleteIds" }, outputs: { rowDeleteCancel: "rowDeleteCancel", rowDeleteConfirm: "rowDeleteConfirm", rowDeleteIdsChange: "rowDeleteIdsChange" }, queries: [{ propertyName: "agGrid", first: true, predicate: AgGridAngular, descendants: true }], ngImport: i0 }); }
|
|
242
242
|
}
|
|
243
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
243
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SkyAgGridRowDeleteDirective, decorators: [{
|
|
244
244
|
type: Directive,
|
|
245
245
|
args: [{
|
|
246
246
|
selector: '[skyAgGridRowDelete]',
|
|
@@ -257,4 +257,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
|
|
|
257
257
|
type: ContentChild,
|
|
258
258
|
args: [AgGridAngular]
|
|
259
259
|
}] } });
|
|
260
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWctZ3JpZC1yb3ctZGVsZXRlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9saWIvbW9kdWxlcy9hZy1ncmlkL2FnLWdyaWQtcm93LWRlbGV0ZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLGlCQUFpQixFQUNqQixZQUFZLEVBQ1osU0FBUyxFQUNULFVBQVUsRUFDVixtQkFBbUIsRUFDbkIsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBQ04sZ0JBQWdCLEVBQ2hCLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLHNCQUFzQixFQUN0QixlQUFlLEVBRWYsMEJBQTBCLEVBQzFCLGlCQUFpQixFQUNqQix3QkFBd0IsR0FDekIsTUFBTSxhQUFhLENBQUM7QUFFckIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWhELE9BQU8sRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7QUFTN0UsTUFBTSxPQUFPLDJCQUEyQjtJQUd0Qzs7T0FFRztJQUNILElBQ1csWUFBWSxDQUFDLEtBQTJCO1FBQ2pELElBQUksQ0FBQyxxQkFBcUIsR0FBRyxLQUFLLENBQUM7UUFFbkMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ1gsS0FBSyxNQUFNLE1BQU0sSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztnQkFDNUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNwQyxDQUFDO1lBRUQsSUFBSSxDQUFD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QUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QyxDQUFDOzhHQTFSVSwyQkFBMkI7a0dBQTNCLDJCQUEyQiwyUUE0SHhCLGFBQWE7OzJGQTVIaEIsMkJBQTJCO2tCQUh2QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxzQkFBc0I7aUJBQ2pDO3dEQVFZLFlBQVk7c0JBRHRCLEtBQUs7Z0JBc0dDLGVBQWU7c0JBRHJCLE1BQU07Z0JBT0EsZ0JBQWdCO3NCQUR0QixNQUFNO2dCQU9BLGtCQUFrQjtzQkFEeEIsTUFBTTtnQkFNQSxNQUFNO3NCQURaLFlBQVk7dUJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb250ZW50Q2hpbGQsXG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgRW52aXJvbm1lbnRJbmplY3RvcixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPdXRwdXQsXG4gIFZpZXdDb250YWluZXJSZWYsXG4gIGluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBTS1lfU1RBQ0tJTkdfQ09OVEVYVCxcbiAgU2t5QWZmaXhBdXRvRml0Q29udGV4dCxcbiAgU2t5QWZmaXhTZXJ2aWNlLFxuICBTa3lBZmZpeGVyLFxuICBTa3lEeW5hbWljQ29tcG9uZW50U2VydmljZSxcbiAgU2t5T3ZlcmxheVNlcnZpY2UsXG4gIFNreVNjcm9sbGFibGVIb3N0U2VydmljZSxcbn0gZnJvbSAnQHNreXV4L2NvcmUnO1xuXG5pbXBvcnQgeyBBZ0dyaWRBbmd1bGFyIH0gZnJvbSAnYWctZ3JpZC1hbmd1bGFyJztcbmltcG9ydCB7IElSb3dOb2RlIH0gZnJvbSAnYWctZ3JpZC1jb21tdW5pdHknO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFNreUFnR3JpZFJvd0RlbGV0ZUNvbXBvbmVudCB9IGZyb20gJy4vYWctZ3JpZC1yb3ctZGVsZXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lBZ0dyaWRSb3dEZWxldGVDYW5jZWxBcmdzIH0gZnJvbSAnLi90eXBlcy9hZy1ncmlkLXJvdy1kZWxldGUtY2FuY2VsLWFyZ3MnO1xuaW1wb3J0IHsgU2t5QWdHcmlkUm93RGVsZXRlQ29uZmlnIH0gZnJvbSAnLi90eXBlcy9hZy1ncmlkLXJvdy1kZWxldGUtY29uZmlnJztcbmltcG9ydCB7IFNreUFnR3JpZFJvd0RlbGV0ZUNvbmZpcm1BcmdzIH0gZnJvbSAnLi90eXBlcy9hZy1ncmlkLXJvdy1kZWxldGUtY29uZmlybS1hcmdzJztcbmltcG9ydCB7IFNreUFnR3JpZFJvd0RlbGV0ZUNvbnRlbnRzIH0gZnJvbSAnLi90eXBlcy9hZy1ncmlkLXJvdy1kZWxldGUtY29udGVudHMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbc2t5QWdHcmlkUm93RGVsZXRlXScsXG59KVxuZXhwb3J0IGNsYXNzIFNreUFnR3JpZFJvd0RlbGV0ZURpcmVjdGl2ZVxuICBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveVxue1xuICAvKipcbiAgICogVGhlIElEcyBvZiB0aGUgZGF0YSBpbiB0aGUgcm93cyB3aGVyZSB0aGUgaW5saW5lIGRlbGV0ZSBhcHBlYXJzLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCByb3dEZWxldGVJZHModmFsdWU6IHN0cmluZ1tdIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy4jcm93RGVsZXRlSWRzSW50ZXJuYWwgPSB2YWx1ZTtcblxuICAgIGlmICghdmFsdWUpIHtcbiAgICAgIGZvciAoY29uc3QgY29uZmlnIG9mIHRoaXMuI3Jvd0RlbGV0ZUNvbmZpZ3MpIHtcbiAgICAgICAgdGhpcy4jZGVzdHJveVJvd0RlbGV0ZShjb25maWcuaWQpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgaWQgb2YgdmFsdWUpIHtcbiAgICAgIGNvbnN0IGV4aXN0aW5nQ29uZmlnID0gdGhpcy4jcm93RGVsZXRlQ29uZmlncy5maW5kKFxuICAgICAgICAoY29uZmlnKSA9PiBjb25maWcuaWQgPT09IGlkLFxuICAgICAgKTtcbiAgICAgIGlmIChleGlzdGluZ0NvbmZpZykge1xuICAgICAgICBleGlzdGluZ0NvbmZpZy5wZW5kaW5nID0gZmFsc2U7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMuI3Jvd0RlbGV0ZUNvbXBvbmVudCAmJiB0aGlzLmFnR3JpZCkge1xuICAgICAgICB0aGlzLiNyb3dEZWxldGVDb25maWdzLnB1c2goe1xuICAgICAgICAgIGlkOiBpZCxcbiAgICAgICAgICBwZW5kaW5nOiBmYWxzZSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3Qgb3ZlcmxheSA9IHRoaXMuI292ZXJsYXlTZXJ2aWNlLmNyZWF0ZSh7XG4gICAgICAgICAgZW5hYmxlU2Nyb2xsOiB0cnVlLFxuICAgICAgICAgIGVudmlyb25tZW50SW5qZWN0b3I6IHRoaXMuI2Vudmlyb25tZW50SW5qZWN0b3IsXG4gICAgICAgICAgc2hvd0JhY2tkcm9wOiBmYWxzZSxcbiAgICAgICAgICBjbG9zZU9uTmF2aWdhdGlvbjogdHJ1ZSxcbiAgICAgICAgICBlbmFibGVDbG9zZTogZmFsc2UsXG4gICAgICAgICAgZW5hYmxlUG9pbnRlckV2ZW50czogdHJ1ZSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKHRoaXMuI3Jvd0RlbGV0ZUNvbXBvbmVudC5pbmxpbmVEZWxldGVUZW1wbGF0ZVJlZikge1xuICAgICAgICAgIG92ZXJsYXkuYXR0YWNoVGVtcGxhdGUoXG4gICAgICAgICAgICB0aGlzLiNyb3dEZWxldGVDb21wb25lbnQuaW5saW5lRGVsZXRlVGVtcGxhdGVSZWYsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICRpbXBsaWNpdDogdGhpcy5hZ0dyaWQuYXBpLmdldFJvd05vZGUoaWQpLFxuICAgICAgICAgICAgICB0YWJsZVdpZHRoOiAoKSA9PlxuICAgICAgICAgICAgICAgIHRoaXMuI2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuc2t5LWFnLWdyaWQnKVxuICAgICAgICAgICAgICAgICAgLm9mZnNldFdpZHRoLFxuICAgICAgICAgICAgICBnZXRSb3dEZWxldGVJdGVtOiAocm93OiBJUm93Tm9kZSkgPT4gdGhpcy5nZXRSb3dEZWxldGVJdGVtKHJvdyksXG4gICAgICAgICAgICAgIGNhbmNlbFJvd0RlbGV0ZTogKHJvdzogSVJvd05vZGUpID0+IHRoaXMuY2FuY2VsUm93RGVsZXRlKHJvdyksXG4gICAgICAgICAgICAgIGNvbmZpcm1Sb3dEZWxldGU6IChyb3c6IElSb3dOb2RlKSA9PiB0aGlzLmNvbmZpcm1Sb3dEZWxldGUocm93KSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBXZSBhcmUgbWFudWFsbHkgc2V0dGluZyB0aGUgei1pbmRleCBoZXJlIGJlY2F1c2Ugb3ZlcmxheXMgd2lsbCBhbHdheXMgYmUgb24gdG9wIG9mXG4gICAgICAgICAqIHRoZSBvbW5pYmFyLiBUaGUgZGVmYXVsdCBtYW51YWwgc2V0dGluZyBpcyAyIGxlc3MgdGhhbiB0aGUgb21uaWJhcidzIHotaW5kZXggb2YgMTAwMCBhbmQgb25lIGxlc3MgdGhhblxuICAgICAgICAgKiB0aGUgaGVhZGVyIHJvdydzIHZpZXdrZWVwZXIgd2hpY2ggaXMgOTk5LiBXZSBkaXNjdXNzZWQgY2hhbmdpbmcgdGhlIG92ZXJsYXkgc2VydmljZSB0byBhbGxvdyBmb3IgdGhpc1xuICAgICAgICAgKiBidXQgZGVjaWRlZCBhZ2FpbnN0IHRoYXQgY2hhbmdlIGF0IHRoaXMgdGltZSBkdWUgdG8gaXRzIG5pY2hlIG5hdHVyZS5cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuI3pJbmRleFxuICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgICAuc3Vic2NyaWJlKCh6SW5kZXgpID0+IHtcbiAgICAgICAgICAgIG92ZXJsYXkuY29tcG9uZW50UmVmLmluc3RhbmNlLnpJbmRleCA9IHpJbmRleC50b1N0cmluZygxMCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuI2NsaXBQYXRoXG4gICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgICAgIC5zdWJzY3JpYmUoKGNsaXBQYXRoKSA9PiB7XG4gICAgICAgICAgICBvdmVybGF5LmNvbXBvbmVudFJlZi5pbnN0YW5jZS51cGRhdGVDbGlwUGF0aChjbGlwUGF0aCk7XG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgY29uc3QgaW5saW5lRGVsZXRlUmVmID0gdGhpcy4jcm93RGVsZXRlQ29tcG9uZW50Py5pbmxpbmVEZWxldGVSZWZzXG4gICAgICAgICAgICA/LnRvQXJyYXkoKVxuICAgICAgICAgICAgLmZpbmQoXG4gICAgICAgICAgICAgIChlbFJlZikgPT4gZWxSZWYubmF0aXZlRWxlbWVudC5pZCA9PT0gJ3Jvdy1kZWxldGUtcmVmLScgKyBpZCxcbiAgICAgICAgICAgICkgYXMgRWxlbWVudFJlZjtcbiAgICAgICAgICBjb25zdCBhZmZpeGVyID0gdGhpcy4jYWZmaXhTZXJ2aWNlLmNyZWF0ZUFmZml4ZXIoaW5saW5lRGVsZXRlUmVmKTtcblxuICAgICAgICAgIHRoaXMuI2FmZml4VG9Sb3coYWZmaXhlciwgaWQpO1xuXG4gICAgICAgICAgdGhpcy4jcm93RGVsZXRlQ29udGVudHNbaWRdID0ge1xuICAgICAgICAgICAgYWZmaXhlcjogYWZmaXhlcixcbiAgICAgICAgICAgIG92ZXJsYXk6IG92ZXJsYXksXG4gICAgICAgICAgfTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBjb25maWcgb2YgdGhpcy4jcm93RGVsZXRlQ29uZmlncykge1xuICAgICAgaWYgKHZhbHVlLmluZGV4T2YoY29uZmlnLmlkKSA8IDApIHtcbiAgICAgICAgdGhpcy4jZGVzdHJveVJvd0RlbGV0ZShjb25maWcuaWQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHVibGljIGdldCByb3dEZWxldGVJZHMoKTogc3RyaW5nW10gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLiNyb3dEZWxldGVJZHNJbnRlcm5hbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbWl0cyBhIGBTa3lBZ0dyaWRSb3dEZWxldGVDYW5jZWxBcmdzYCBvYmplY3Qgd2hlbiBhIHJvdydzIGlubGluZSBkZWxldGUgaXMgY2FuY2VsbGVkLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyByb3dEZWxldGVDYW5jZWwgPSBuZXcgRXZlbnRFbWl0dGVyPFNreUFnR3JpZFJvd0RlbGV0ZUNhbmNlbEFyZ3M+KCk7XG5cbiAgLyoqXG4gICAqIEVtaXRzIGEgYFNreUFnR3JpZFJvd0RlbGV0ZUNvbmZpcm1BcmdzYCBvYmplY3Qgd2hlbiBhIHJvdydzIGlubGluZSBkZWxldGUgaXMgY29uZmlybWVkLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyByb3dEZWxldGVDb25maXJtID0gbmV3IEV2ZW50RW1pdHRlcjxTa3lBZ0dyaWRSb3dEZWxldGVDb25maXJtQXJncz4oKTtcblxuICAvKipcbiAgICogRW1pdHMgd2hlbiB0aGUgbGlzdCBvZiBpZHMgb2YgdGhlIGRhdGEgaW4gdGhlIHJvd3Mgd2hlcmUgaW5saW5lIGRlbGV0ZXMgYXJlIHNob3duIGNoYW5nZXMuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIHJvd0RlbGV0ZUlkc0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nW10+KCk7XG5cbiAgI3Jvd0RlbGV0ZUNvbmZpZ3M6IFNreUFnR3JpZFJvd0RlbGV0ZUNvbmZpZ1tdID0gW107XG5cbiAgQENvbnRlbnRDaGlsZChBZ0dyaWRBbmd1bGFyKVxuICBwdWJsaWMgYWdHcmlkOiBBZ0dyaWRBbmd1bGFyIHwgdW5kZWZpbmVkO1xuXG4gICNuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgI3Jvd0RlbGV0ZUNvbXBvbmVudDogU2t5QWdHcmlkUm93RGVsZXRlQ29tcG9uZW50IHwgdW5kZWZpbmVkO1xuICAjcm93RGVsZXRlQ29udGVudHM6IFJlY29yZDxzdHJpbmcsIFNreUFnR3JpZFJvd0RlbGV0ZUNvbnRlbnRzPiA9IHt9O1xuXG4gICNyb3dEZWxldGVJZHNJbnRlcm5hbDogc3RyaW5nW10gfCB1bmRlZmluZWQ7XG4gICNjbGlwUGF0aCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICAjekluZGV4ID0gbmV3IEJlaGF2aW9yU3ViamVjdCg5OTgpO1xuICAjaGFzU3RhY2tpbmdDb250ZXh0OiBib29sZWFuO1xuXG4gIHJlYWRvbmx5ICNhZmZpeFNlcnZpY2UgPSBpbmplY3QoU2t5QWZmaXhTZXJ2aWNlKTtcbiAgcmVhZG9ubHkgI2NoYW5nZURldGVjdG9yID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgcmVhZG9ubHkgI2R5bmFtaWNDb21wb25lbnRTdmMgPSBpbmplY3QoU2t5RHluYW1pY0NvbXBvbmVudFNlcnZpY2UpO1xuICByZWFkb25seSAjZWxlbWVudFJlZiA9IGluamVjdChFbGVtZW50UmVmPEhUTUxFbGVtZW50Pik7XG4gIHJlYWRvbmx5ICNlbnZpcm9ubWVudEluamVjdG9yID0gaW5qZWN0KEVudmlyb25tZW50SW5qZWN0b3IpO1xuICByZWFkb25seSAjb3ZlcmxheVNlcnZpY2UgPSBpbmplY3QoU2t5T3ZlcmxheVNlcnZpY2UpO1xuICByZWFkb25seSAjc2Nyb2xsYWJsZUhvc3RTZXJ2aWNlID0gaW5qZWN0KFNreVNjcm9sbGFibGVIb3N0U2VydmljZSk7XG4gIHJlYWRvbmx5ICNzdGFja2luZ0NvbnRleHQgPSBpbmplY3QoU0tZX1NUQUNLSU5HX0NPTlRFWFQsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG4gIHJlYWRvbmx5ICN2aWV3Q29udGFpbmVyUmVmID0gaW5qZWN0KFZpZXdDb250YWluZXJSZWYpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuI2hhc1N0YWNraW5nQ29udGV4dCA9ICEhdGhpcy4jc3RhY2tpbmdDb250ZXh0O1xuXG4gICAgaWYgKHRoaXMuI3N0YWNraW5nQ29udGV4dCkge1xuICAgICAgdGhpcy4jc3RhY2tpbmdDb250ZXh0LnpJbmRleFxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKHpJbmRleCkgPT4ge1xuICAgICAgICAgIHRoaXMuI3pJbmRleC5uZXh0KHpJbmRleCk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgdGhpcy4jcm93RGVsZXRlQ29tcG9uZW50ID0gdGhpcy4jZHluYW1pY0NvbXBvbmVudFN2Yy5jcmVhdGVDb21wb25lbnQoXG4gICAgICBTa3lBZ0dyaWRSb3dEZWxldGVDb21wb25lbnQsXG4gICAgICB7XG4gICAgICAgIGVudmlyb25tZW50SW5qZWN0b3I6IHRoaXMuI2Vudmlyb25tZW50SW5qZWN0b3IsXG4gICAgICAgIHZpZXdDb250YWluZXJSZWY6IHRoaXMuI3ZpZXdDb250YWluZXJSZWYsXG4gICAgICB9LFxuICAgICkuaW5zdGFuY2U7XG5cbiAgICBpZiAodGhpcy5hZ0dyaWQpIHtcbiAgICAgIHRoaXMuYWdHcmlkLnJvd0RhdGFVcGRhdGVkXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy4jdXBkYXRlUm93RGVsZXRlU3RhdGVzKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICB0aGlzLmFnR3JpZC5zb3J0Q2hhbmdlZFxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuI3VwZGF0ZVJvd0RlbGV0ZVN0YXRlcygpO1xuICAgICAgICB9KTtcblxuICAgICAgdGhpcy5hZ0dyaWQuZmlsdGVyQ2hhbmdlZFxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuI3VwZGF0ZVJvd0RlbGV0ZVN0YXRlcygpO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLiNoYXNTdGFja2luZ0NvbnRleHQpIHtcbiAgICAgIHRoaXMuI3Njcm9sbGFibGVIb3N0U2VydmljZVxuICAgICAgICAud2F0Y2hTY3JvbGxhYmxlSG9zdENsaXBQYXRoQ2hhbmdlcyh0aGlzLiNlbGVtZW50UmVmKVxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKGNsaXBQYXRoKSA9PiB7XG4gICAgICAgICAgdGhpcy4jY2xpcFBhdGgubmV4dChjbGlwUGF0aCk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG5cbiAgICBPYmplY3Qua2V5cyh0aGlzLiNyb3dEZWxldGVDb250ZW50cykuZm9yRWFjaCgoaWQpID0+IHtcbiAgICAgIHRoaXMuI2Rlc3Ryb3lSb3dEZWxldGUoaWQpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGNhbmNlbFJvd0RlbGV0ZShyb3c6IElSb3dOb2RlKTogdm9pZCB7XG4gICAgaWYgKHJvdy5pZCkge1xuICAgICAgdGhpcy4jcm93RGVsZXRlQ29uZmlncyA9IHRoaXMuI3Jvd0RlbGV0ZUNvbmZpZ3MuZmlsdGVyKFxuICAgICAgICAoY29uZmlnKSA9PiBjb25maWcuaWQgIT09IHJvdy5pZCxcbiAgICAgICk7XG4gICAgICB0aGlzLnJvd0RlbGV0ZUNhbmNlbC5lbWl0KHsgaWQ6IHJvdy5pZCB9KTtcblxuICAgICAgdGhpcy4jZGVzdHJveVJvd0RlbGV0ZShyb3cuaWQpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBjb25maXJtUm93RGVsZXRlKHJvdzogSVJvd05vZGUpOiB2b2lkIHtcbiAgICBpZiAocm93LmlkKSB7XG4gICAgICBjb25zdCByb3dDb25maWcgPSB0aGlzLiNyb3dEZWxldGVDb25maWdzLmZpbmQoXG4gICAgICAgIChjb25maWcpID0+IGNvbmZpZy5pZCA9PT0gcm93LmlkLFxuICAgICAgKTtcblxuICAgICAgaWYgKHJvd0NvbmZpZykge1xuICAgICAgICByb3dDb25maWcucGVuZGluZyA9IHRydWU7XG4gICAgICAgIHRoaXMucm93RGVsZXRlQ29uZmlybS5lbWl0KHsgaWQ6IHJvdy5pZCB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0Um93RGVsZXRlSXRlbShyb3c6IElSb3dOb2RlKTogU2t5QWdHcmlkUm93RGVsZXRlQ29uZmlnIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy4jcm93RGVsZXRlQ29uZmlncy5maW5kKChyb3dEZWxldGUpID0+IHJvd0RlbGV0ZS5pZCA9PT0gcm93LmlkKTtcbiAgfVxuXG4gICNhZmZpeFRvUm93KGFmZml4ZXI6IFNreUFmZml4ZXIsIGlkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCByb3dFbGVtZW50ID0gdGhpcy4jZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoYFxuICAgICAgW3Jvdy1pZD1cIiR7aWR9XCJdIGRpdlthcmlhLWNvbGluZGV4XSxcbiAgICAgIC5hZy1yb3cuc2t5LWFnLWdyaWQtcm93LSR7aWR9IGRpdlthcmlhLWNvbGluZGV4XVxuICAgIGApO1xuXG4gICAgYWZmaXhlci5hZmZpeFRvKHJvd0VsZW1lbnQsIHtcbiAgICAgIGF1dG9GaXRDb250ZXh0OiBTa3lBZmZpeEF1dG9GaXRDb250ZXh0LlZpZXdwb3J0LFxuICAgICAgaXNTdGlja3k6IHRydWUsXG4gICAgICBwbGFjZW1lbnQ6ICdhYm92ZScsXG4gICAgICB2ZXJ0aWNhbEFsaWdubWVudDogJ3RvcCcsXG4gICAgICBob3Jpem9udGFsQWxpZ25tZW50OiAnbGVmdCcsXG4gICAgICBlbmFibGVBdXRvRml0OiBmYWxzZSxcbiAgICB9KTtcbiAgfVxuXG4gICNkZXN0cm95Um93RGVsZXRlKGlkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCByb3dEZWxldGVDb250ZW50cyA9IHRoaXMuI3Jvd0RlbGV0ZUNvbnRlbnRzW2lkXTtcblxuICAgIC8qIHNhbml0eSBjaGVjayAqL1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKHJvd0RlbGV0ZUNvbnRlbnRzKSB7XG4gICAgICByb3dEZWxldGVDb250ZW50cy5hZmZpeGVyLmRlc3Ryb3koKTtcbiAgICAgIHRoaXMuI292ZXJsYXlTZXJ2aWNlLmNsb3NlKHJvd0RlbGV0ZUNvbnRlbnRzLm92ZXJsYXkpO1xuICAgICAgZGVsZXRlIHRoaXMuI3Jvd0RlbGV0ZUNvbnRlbnRzW2lkXTtcbiAgICAgIHRoaXMuI3Jvd0RlbGV0ZUNvbmZpZ3MgPSB0aGlzLiNyb3dEZWxldGVDb25maWdzLmZpbHRlcihcbiAgICAgICAgKGNvbmZpZykgPT4gY29uZmlnLmlkICE9PSBpZCxcbiAgICAgICk7XG4gICAgICB0aGlzLiNyb3dEZWxldGVJZHNJbnRlcm5hbCA9IHRoaXMucm93RGVsZXRlSWRzPy5maWx0ZXIoXG4gICAgICAgIChhcnJheUlkKSA9PiBhcnJheUlkICE9PSBpZCxcbiAgICAgICk7XG4gICAgICB0aGlzLnJvd0RlbGV0ZUlkc0NoYW5nZS5lbWl0KHRoaXMuI3Jvd0RlbGV0ZUlkc0ludGVybmFsKTtcbiAgICB9XG4gIH1cblxuICAjdXBkYXRlUm93RGVsZXRlU3RhdGVzKCk6IHZvaWQge1xuICAgIHRoaXMuI3Jvd0RlbGV0ZUNvbmZpZ3MuZm9yRWFjaCgoY29uZmlnOiBTa3lBZ0dyaWRSb3dEZWxldGVDb25maWcpID0+IHtcbiAgICAgIGlmICghdGhpcy5hZ0dyaWQ/LmFwaS5nZXRSb3dOb2RlKGNvbmZpZy5pZCkpIHtcbiAgICAgICAgdGhpcy4jZGVzdHJveVJvd0RlbGV0ZShjb25maWcuaWQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gV2UgbXVzdCByZWFmZml4IHRoaW5ncyB3aGVuIHRoZSBkYXRhIGNoYW5nZXMgYmVjYXVzZSB0aGUgcm93cyByZXJlbmRlciBhbmQgdGhlIHByZXZpb3VzIGVsZW1lbnQgdGhhdCB0aGUgZGVsZXRlIHdhcyBhZmZpeGVkXG4gICAgICAgIC8vIHRvIGlzIGRlc3Ryb3llZC5cbiAgICAgICAgdGhpcy4jYWZmaXhUb1Jvdyh0aGlzLiNyb3dEZWxldGVDb250ZW50c1tjb25maWcuaWRdLmFmZml4ZXIsIGNvbmZpZy5pZCk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gIH1cbn1cbiJdfQ==
|
|
260
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWctZ3JpZC1yb3ctZGVsZXRlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9saWIvbW9kdWxlcy9hZy1ncmlkL2FnLWdyaWQtcm93LWRlbGV0ZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLGlCQUFpQixFQUNqQixZQUFZLEVBQ1osU0FBUyxFQUNULFVBQVUsRUFDVixtQkFBbUIsRUFDbkIsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBQ04sZ0JBQWdCLEVBQ2hCLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLHNCQUFzQixFQUN0QixlQUFlLEVBRWYsMEJBQTBCLEVBQzFCLGlCQUFpQixFQUNqQix3QkFBd0IsR0FDekIsTUFBTSxhQUFhLENBQUM7QUFFckIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWhELE9BQU8sRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7QUFTN0UsTUFBTSxPQUFPLDJCQUEyQjtJQUd0Qzs7T0FFRztJQUNILElBQ1csWUFBWSxDQUFDLEtBQTJCO1FBQ2pELElBQUksQ0FBQyxxQkFBcUIsR0FBRyxLQUFLLENBQUM7UUFFbkMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ1gsS0FBSyxNQUFNLE1BQU0sSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztnQkFDNUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNwQyxDQUFDO1lBRUQsSUFBSSxDQUFD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QUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QyxDQUFDOytHQTFSVSwyQkFBMkI7bUdBQTNCLDJCQUEyQiwyUUE0SHhCLGFBQWE7OzRGQTVIaEIsMkJBQTJCO2tCQUh2QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxzQkFBc0I7aUJBQ2pDO3dEQVFZLFlBQVk7c0JBRHRCLEtBQUs7Z0JBc0dDLGVBQWU7c0JBRHJCLE1BQU07Z0JBT0EsZ0JBQWdCO3NCQUR0QixNQUFNO2dCQU9BLGtCQUFrQjtzQkFEeEIsTUFBTTtnQkFNQSxNQUFNO3NCQURaLFlBQVk7dUJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb250ZW50Q2hpbGQsXG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgRW52aXJvbm1lbnRJbmplY3RvcixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPdXRwdXQsXG4gIFZpZXdDb250YWluZXJSZWYsXG4gIGluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBTS1lfU1RBQ0tJTkdfQ09OVEVYVCxcbiAgU2t5QWZmaXhBdXRvRml0Q29udGV4dCxcbiAgU2t5QWZmaXhTZXJ2aWNlLFxuICBTa3lBZmZpeGVyLFxuICBTa3lEeW5hbWljQ29tcG9uZW50U2VydmljZSxcbiAgU2t5T3ZlcmxheVNlcnZpY2UsXG4gIFNreVNjcm9sbGFibGVIb3N0U2VydmljZSxcbn0gZnJvbSAnQHNreXV4L2NvcmUnO1xuXG5pbXBvcnQgeyBBZ0dyaWRBbmd1bGFyIH0gZnJvbSAnYWctZ3JpZC1hbmd1bGFyJztcbmltcG9ydCB7IElSb3dOb2RlIH0gZnJvbSAnYWctZ3JpZC1jb21tdW5pdHknO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFNreUFnR3JpZFJvd0RlbGV0ZUNvbXBvbmVudCB9IGZyb20gJy4vYWctZ3JpZC1yb3ctZGVsZXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lBZ0dyaWRSb3dEZWxldGVDYW5jZWxBcmdzIH0gZnJvbSAnLi90eXBlcy9hZy1ncmlkLXJvdy1kZWxldGUtY2FuY2VsLWFyZ3MnO1xuaW1wb3J0IHsgU2t5QWdHcmlkUm93RGVsZXRlQ29uZmlnIH0gZnJvbSAnLi90eXBlcy9hZy1ncmlkLXJvdy1kZWxldGUtY29uZmlnJztcbmltcG9ydCB7IFNreUFnR3JpZFJvd0RlbGV0ZUNvbmZpcm1BcmdzIH0gZnJvbSAnLi90eXBlcy9hZy1ncmlkLXJvdy1kZWxldGUtY29uZmlybS1hcmdzJztcbmltcG9ydCB7IFNreUFnR3JpZFJvd0RlbGV0ZUNvbnRlbnRzIH0gZnJvbSAnLi90eXBlcy9hZy1ncmlkLXJvdy1kZWxldGUtY29udGVudHMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbc2t5QWdHcmlkUm93RGVsZXRlXScsXG59KVxuZXhwb3J0IGNsYXNzIFNreUFnR3JpZFJvd0RlbGV0ZURpcmVjdGl2ZVxuICBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveVxue1xuICAvKipcbiAgICogVGhlIElEcyBvZiB0aGUgZGF0YSBpbiB0aGUgcm93cyB3aGVyZSB0aGUgaW5saW5lIGRlbGV0ZSBhcHBlYXJzLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCByb3dEZWxldGVJZHModmFsdWU6IHN0cmluZ1tdIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy4jcm93RGVsZXRlSWRzSW50ZXJuYWwgPSB2YWx1ZTtcblxuICAgIGlmICghdmFsdWUpIHtcbiAgICAgIGZvciAoY29uc3QgY29uZmlnIG9mIHRoaXMuI3Jvd0RlbGV0ZUNvbmZpZ3MpIHtcbiAgICAgICAgdGhpcy4jZGVzdHJveVJvd0RlbGV0ZShjb25maWcuaWQpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgaWQgb2YgdmFsdWUpIHtcbiAgICAgIGNvbnN0IGV4aXN0aW5nQ29uZmlnID0gdGhpcy4jcm93RGVsZXRlQ29uZmlncy5maW5kKFxuICAgICAgICAoY29uZmlnKSA9PiBjb25maWcuaWQgPT09IGlkLFxuICAgICAgKTtcbiAgICAgIGlmIChleGlzdGluZ0NvbmZpZykge1xuICAgICAgICBleGlzdGluZ0NvbmZpZy5wZW5kaW5nID0gZmFsc2U7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMuI3Jvd0RlbGV0ZUNvbXBvbmVudCAmJiB0aGlzLmFnR3JpZCkge1xuICAgICAgICB0aGlzLiNyb3dEZWxldGVDb25maWdzLnB1c2goe1xuICAgICAgICAgIGlkOiBpZCxcbiAgICAgICAgICBwZW5kaW5nOiBmYWxzZSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3Qgb3ZlcmxheSA9IHRoaXMuI292ZXJsYXlTZXJ2aWNlLmNyZWF0ZSh7XG4gICAgICAgICAgZW5hYmxlU2Nyb2xsOiB0cnVlLFxuICAgICAgICAgIGVudmlyb25tZW50SW5qZWN0b3I6IHRoaXMuI2Vudmlyb25tZW50SW5qZWN0b3IsXG4gICAgICAgICAgc2hvd0JhY2tkcm9wOiBmYWxzZSxcbiAgICAgICAgICBjbG9zZU9uTmF2aWdhdGlvbjogdHJ1ZSxcbiAgICAgICAgICBlbmFibGVDbG9zZTogZmFsc2UsXG4gICAgICAgICAgZW5hYmxlUG9pbnRlckV2ZW50czogdHJ1ZSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKHRoaXMuI3Jvd0RlbGV0ZUNvbXBvbmVudC5pbmxpbmVEZWxldGVUZW1wbGF0ZVJlZikge1xuICAgICAgICAgIG92ZXJsYXkuYXR0YWNoVGVtcGxhdGUoXG4gICAgICAgICAgICB0aGlzLiNyb3dEZWxldGVDb21wb25lbnQuaW5saW5lRGVsZXRlVGVtcGxhdGVSZWYsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICRpbXBsaWNpdDogdGhpcy5hZ0dyaWQuYXBpLmdldFJvd05vZGUoaWQpLFxuICAgICAgICAgICAgICB0YWJsZVdpZHRoOiAoKSA9PlxuICAgICAgICAgICAgICAgIHRoaXMuI2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuc2t5LWFnLWdyaWQnKVxuICAgICAgICAgICAgICAgICAgLm9mZnNldFdpZHRoLFxuICAgICAgICAgICAgICBnZXRSb3dEZWxldGVJdGVtOiAocm93OiBJUm93Tm9kZSkgPT4gdGhpcy5nZXRSb3dEZWxldGVJdGVtKHJvdyksXG4gICAgICAgICAgICAgIGNhbmNlbFJvd0RlbGV0ZTogKHJvdzogSVJvd05vZGUpID0+IHRoaXMuY2FuY2VsUm93RGVsZXRlKHJvdyksXG4gICAgICAgICAgICAgIGNvbmZpcm1Sb3dEZWxldGU6IChyb3c6IElSb3dOb2RlKSA9PiB0aGlzLmNvbmZpcm1Sb3dEZWxldGUocm93KSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBXZSBhcmUgbWFudWFsbHkgc2V0dGluZyB0aGUgei1pbmRleCBoZXJlIGJlY2F1c2Ugb3ZlcmxheXMgd2lsbCBhbHdheXMgYmUgb24gdG9wIG9mXG4gICAgICAgICAqIHRoZSBvbW5pYmFyLiBUaGUgZGVmYXVsdCBtYW51YWwgc2V0dGluZyBpcyAyIGxlc3MgdGhhbiB0aGUgb21uaWJhcidzIHotaW5kZXggb2YgMTAwMCBhbmQgb25lIGxlc3MgdGhhblxuICAgICAgICAgKiB0aGUgaGVhZGVyIHJvdydzIHZpZXdrZWVwZXIgd2hpY2ggaXMgOTk5LiBXZSBkaXNjdXNzZWQgY2hhbmdpbmcgdGhlIG92ZXJsYXkgc2VydmljZSB0byBhbGxvdyBmb3IgdGhpc1xuICAgICAgICAgKiBidXQgZGVjaWRlZCBhZ2FpbnN0IHRoYXQgY2hhbmdlIGF0IHRoaXMgdGltZSBkdWUgdG8gaXRzIG5pY2hlIG5hdHVyZS5cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuI3pJbmRleFxuICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgICAuc3Vic2NyaWJlKCh6SW5kZXgpID0+IHtcbiAgICAgICAgICAgIG92ZXJsYXkuY29tcG9uZW50UmVmLmluc3RhbmNlLnpJbmRleCA9IHpJbmRleC50b1N0cmluZygxMCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuI2NsaXBQYXRoXG4gICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgICAgIC5zdWJzY3JpYmUoKGNsaXBQYXRoKSA9PiB7XG4gICAgICAgICAgICBvdmVybGF5LmNvbXBvbmVudFJlZi5pbnN0YW5jZS51cGRhdGVDbGlwUGF0aChjbGlwUGF0aCk7XG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgY29uc3QgaW5saW5lRGVsZXRlUmVmID0gdGhpcy4jcm93RGVsZXRlQ29tcG9uZW50Py5pbmxpbmVEZWxldGVSZWZzXG4gICAgICAgICAgICA/LnRvQXJyYXkoKVxuICAgICAgICAgICAgLmZpbmQoXG4gICAgICAgICAgICAgIChlbFJlZikgPT4gZWxSZWYubmF0aXZlRWxlbWVudC5pZCA9PT0gJ3Jvdy1kZWxldGUtcmVmLScgKyBpZCxcbiAgICAgICAgICAgICkgYXMgRWxlbWVudFJlZjtcbiAgICAgICAgICBjb25zdCBhZmZpeGVyID0gdGhpcy4jYWZmaXhTZXJ2aWNlLmNyZWF0ZUFmZml4ZXIoaW5saW5lRGVsZXRlUmVmKTtcblxuICAgICAgICAgIHRoaXMuI2FmZml4VG9Sb3coYWZmaXhlciwgaWQpO1xuXG4gICAgICAgICAgdGhpcy4jcm93RGVsZXRlQ29udGVudHNbaWRdID0ge1xuICAgICAgICAgICAgYWZmaXhlcjogYWZmaXhlcixcbiAgICAgICAgICAgIG92ZXJsYXk6IG92ZXJsYXksXG4gICAgICAgICAgfTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBjb25maWcgb2YgdGhpcy4jcm93RGVsZXRlQ29uZmlncykge1xuICAgICAgaWYgKHZhbHVlLmluZGV4T2YoY29uZmlnLmlkKSA8IDApIHtcbiAgICAgICAgdGhpcy4jZGVzdHJveVJvd0RlbGV0ZShjb25maWcuaWQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHVibGljIGdldCByb3dEZWxldGVJZHMoKTogc3RyaW5nW10gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLiNyb3dEZWxldGVJZHNJbnRlcm5hbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbWl0cyBhIGBTa3lBZ0dyaWRSb3dEZWxldGVDYW5jZWxBcmdzYCBvYmplY3Qgd2hlbiBhIHJvdydzIGlubGluZSBkZWxldGUgaXMgY2FuY2VsbGVkLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyByb3dEZWxldGVDYW5jZWwgPSBuZXcgRXZlbnRFbWl0dGVyPFNreUFnR3JpZFJvd0RlbGV0ZUNhbmNlbEFyZ3M+KCk7XG5cbiAgLyoqXG4gICAqIEVtaXRzIGEgYFNreUFnR3JpZFJvd0RlbGV0ZUNvbmZpcm1BcmdzYCBvYmplY3Qgd2hlbiBhIHJvdydzIGlubGluZSBkZWxldGUgaXMgY29uZmlybWVkLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyByb3dEZWxldGVDb25maXJtID0gbmV3IEV2ZW50RW1pdHRlcjxTa3lBZ0dyaWRSb3dEZWxldGVDb25maXJtQXJncz4oKTtcblxuICAvKipcbiAgICogRW1pdHMgd2hlbiB0aGUgbGlzdCBvZiBpZHMgb2YgdGhlIGRhdGEgaW4gdGhlIHJvd3Mgd2hlcmUgaW5saW5lIGRlbGV0ZXMgYXJlIHNob3duIGNoYW5nZXMuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIHJvd0RlbGV0ZUlkc0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nW10+KCk7XG5cbiAgI3Jvd0RlbGV0ZUNvbmZpZ3M6IFNreUFnR3JpZFJvd0RlbGV0ZUNvbmZpZ1tdID0gW107XG5cbiAgQENvbnRlbnRDaGlsZChBZ0dyaWRBbmd1bGFyKVxuICBwdWJsaWMgYWdHcmlkOiBBZ0dyaWRBbmd1bGFyIHwgdW5kZWZpbmVkO1xuXG4gICNuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgI3Jvd0RlbGV0ZUNvbXBvbmVudDogU2t5QWdHcmlkUm93RGVsZXRlQ29tcG9uZW50IHwgdW5kZWZpbmVkO1xuICAjcm93RGVsZXRlQ29udGVudHM6IFJlY29yZDxzdHJpbmcsIFNreUFnR3JpZFJvd0RlbGV0ZUNvbnRlbnRzPiA9IHt9O1xuXG4gICNyb3dEZWxldGVJZHNJbnRlcm5hbDogc3RyaW5nW10gfCB1bmRlZmluZWQ7XG4gICNjbGlwUGF0aCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICAjekluZGV4ID0gbmV3IEJlaGF2aW9yU3ViamVjdCg5OTgpO1xuICAjaGFzU3RhY2tpbmdDb250ZXh0OiBib29sZWFuO1xuXG4gIHJlYWRvbmx5ICNhZmZpeFNlcnZpY2UgPSBpbmplY3QoU2t5QWZmaXhTZXJ2aWNlKTtcbiAgcmVhZG9ubHkgI2NoYW5nZURldGVjdG9yID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgcmVhZG9ubHkgI2R5bmFtaWNDb21wb25lbnRTdmMgPSBpbmplY3QoU2t5RHluYW1pY0NvbXBvbmVudFNlcnZpY2UpO1xuICByZWFkb25seSAjZWxlbWVudFJlZiA9IGluamVjdChFbGVtZW50UmVmPEhUTUxFbGVtZW50Pik7XG4gIHJlYWRvbmx5ICNlbnZpcm9ubWVudEluamVjdG9yID0gaW5qZWN0KEVudmlyb25tZW50SW5qZWN0b3IpO1xuICByZWFkb25seSAjb3ZlcmxheVNlcnZpY2UgPSBpbmplY3QoU2t5T3ZlcmxheVNlcnZpY2UpO1xuICByZWFkb25seSAjc2Nyb2xsYWJsZUhvc3RTZXJ2aWNlID0gaW5qZWN0KFNreVNjcm9sbGFibGVIb3N0U2VydmljZSk7XG4gIHJlYWRvbmx5ICNzdGFja2luZ0NvbnRleHQgPSBpbmplY3QoU0tZX1NUQUNLSU5HX0NPTlRFWFQsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG4gIHJlYWRvbmx5ICN2aWV3Q29udGFpbmVyUmVmID0gaW5qZWN0KFZpZXdDb250YWluZXJSZWYpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuI2hhc1N0YWNraW5nQ29udGV4dCA9ICEhdGhpcy4jc3RhY2tpbmdDb250ZXh0O1xuXG4gICAgaWYgKHRoaXMuI3N0YWNraW5nQ29udGV4dCkge1xuICAgICAgdGhpcy4jc3RhY2tpbmdDb250ZXh0LnpJbmRleFxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKHpJbmRleCkgPT4ge1xuICAgICAgICAgIHRoaXMuI3pJbmRleC5uZXh0KHpJbmRleCk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgdGhpcy4jcm93RGVsZXRlQ29tcG9uZW50ID0gdGhpcy4jZHluYW1pY0NvbXBvbmVudFN2Yy5jcmVhdGVDb21wb25lbnQoXG4gICAgICBTa3lBZ0dyaWRSb3dEZWxldGVDb21wb25lbnQsXG4gICAgICB7XG4gICAgICAgIGVudmlyb25tZW50SW5qZWN0b3I6IHRoaXMuI2Vudmlyb25tZW50SW5qZWN0b3IsXG4gICAgICAgIHZpZXdDb250YWluZXJSZWY6IHRoaXMuI3ZpZXdDb250YWluZXJSZWYsXG4gICAgICB9LFxuICAgICkuaW5zdGFuY2U7XG5cbiAgICBpZiAodGhpcy5hZ0dyaWQpIHtcbiAgICAgIHRoaXMuYWdHcmlkLnJvd0RhdGFVcGRhdGVkXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy4jdXBkYXRlUm93RGVsZXRlU3RhdGVzKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICB0aGlzLmFnR3JpZC5zb3J0Q2hhbmdlZFxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuI3VwZGF0ZVJvd0RlbGV0ZVN0YXRlcygpO1xuICAgICAgICB9KTtcblxuICAgICAgdGhpcy5hZ0dyaWQuZmlsdGVyQ2hhbmdlZFxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuI3VwZGF0ZVJvd0RlbGV0ZVN0YXRlcygpO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLiNoYXNTdGFja2luZ0NvbnRleHQpIHtcbiAgICAgIHRoaXMuI3Njcm9sbGFibGVIb3N0U2VydmljZVxuICAgICAgICAud2F0Y2hTY3JvbGxhYmxlSG9zdENsaXBQYXRoQ2hhbmdlcyh0aGlzLiNlbGVtZW50UmVmKVxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKGNsaXBQYXRoKSA9PiB7XG4gICAgICAgICAgdGhpcy4jY2xpcFBhdGgubmV4dChjbGlwUGF0aCk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG5cbiAgICBPYmplY3Qua2V5cyh0aGlzLiNyb3dEZWxldGVDb250ZW50cykuZm9yRWFjaCgoaWQpID0+IHtcbiAgICAgIHRoaXMuI2Rlc3Ryb3lSb3dEZWxldGUoaWQpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGNhbmNlbFJvd0RlbGV0ZShyb3c6IElSb3dOb2RlKTogdm9pZCB7XG4gICAgaWYgKHJvdy5pZCkge1xuICAgICAgdGhpcy4jcm93RGVsZXRlQ29uZmlncyA9IHRoaXMuI3Jvd0RlbGV0ZUNvbmZpZ3MuZmlsdGVyKFxuICAgICAgICAoY29uZmlnKSA9PiBjb25maWcuaWQgIT09IHJvdy5pZCxcbiAgICAgICk7XG4gICAgICB0aGlzLnJvd0RlbGV0ZUNhbmNlbC5lbWl0KHsgaWQ6IHJvdy5pZCB9KTtcblxuICAgICAgdGhpcy4jZGVzdHJveVJvd0RlbGV0ZShyb3cuaWQpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBjb25maXJtUm93RGVsZXRlKHJvdzogSVJvd05vZGUpOiB2b2lkIHtcbiAgICBpZiAocm93LmlkKSB7XG4gICAgICBjb25zdCByb3dDb25maWcgPSB0aGlzLiNyb3dEZWxldGVDb25maWdzLmZpbmQoXG4gICAgICAgIChjb25maWcpID0+IGNvbmZpZy5pZCA9PT0gcm93LmlkLFxuICAgICAgKTtcblxuICAgICAgaWYgKHJvd0NvbmZpZykge1xuICAgICAgICByb3dDb25maWcucGVuZGluZyA9IHRydWU7XG4gICAgICAgIHRoaXMucm93RGVsZXRlQ29uZmlybS5lbWl0KHsgaWQ6IHJvdy5pZCB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0Um93RGVsZXRlSXRlbShyb3c6IElSb3dOb2RlKTogU2t5QWdHcmlkUm93RGVsZXRlQ29uZmlnIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy4jcm93RGVsZXRlQ29uZmlncy5maW5kKChyb3dEZWxldGUpID0+IHJvd0RlbGV0ZS5pZCA9PT0gcm93LmlkKTtcbiAgfVxuXG4gICNhZmZpeFRvUm93KGFmZml4ZXI6IFNreUFmZml4ZXIsIGlkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCByb3dFbGVtZW50ID0gdGhpcy4jZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoYFxuICAgICAgW3Jvdy1pZD1cIiR7aWR9XCJdIGRpdlthcmlhLWNvbGluZGV4XSxcbiAgICAgIC5hZy1yb3cuc2t5LWFnLWdyaWQtcm93LSR7aWR9IGRpdlthcmlhLWNvbGluZGV4XVxuICAgIGApO1xuXG4gICAgYWZmaXhlci5hZmZpeFRvKHJvd0VsZW1lbnQsIHtcbiAgICAgIGF1dG9GaXRDb250ZXh0OiBTa3lBZmZpeEF1dG9GaXRDb250ZXh0LlZpZXdwb3J0LFxuICAgICAgaXNTdGlja3k6IHRydWUsXG4gICAgICBwbGFjZW1lbnQ6ICdhYm92ZScsXG4gICAgICB2ZXJ0aWNhbEFsaWdubWVudDogJ3RvcCcsXG4gICAgICBob3Jpem9udGFsQWxpZ25tZW50OiAnbGVmdCcsXG4gICAgICBlbmFibGVBdXRvRml0OiBmYWxzZSxcbiAgICB9KTtcbiAgfVxuXG4gICNkZXN0cm95Um93RGVsZXRlKGlkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCByb3dEZWxldGVDb250ZW50cyA9IHRoaXMuI3Jvd0RlbGV0ZUNvbnRlbnRzW2lkXTtcblxuICAgIC8qIHNhbml0eSBjaGVjayAqL1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKHJvd0RlbGV0ZUNvbnRlbnRzKSB7XG4gICAgICByb3dEZWxldGVDb250ZW50cy5hZmZpeGVyLmRlc3Ryb3koKTtcbiAgICAgIHRoaXMuI292ZXJsYXlTZXJ2aWNlLmNsb3NlKHJvd0RlbGV0ZUNvbnRlbnRzLm92ZXJsYXkpO1xuICAgICAgZGVsZXRlIHRoaXMuI3Jvd0RlbGV0ZUNvbnRlbnRzW2lkXTtcbiAgICAgIHRoaXMuI3Jvd0RlbGV0ZUNvbmZpZ3MgPSB0aGlzLiNyb3dEZWxldGVDb25maWdzLmZpbHRlcihcbiAgICAgICAgKGNvbmZpZykgPT4gY29uZmlnLmlkICE9PSBpZCxcbiAgICAgICk7XG4gICAgICB0aGlzLiNyb3dEZWxldGVJZHNJbnRlcm5hbCA9IHRoaXMucm93RGVsZXRlSWRzPy5maWx0ZXIoXG4gICAgICAgIChhcnJheUlkKSA9PiBhcnJheUlkICE9PSBpZCxcbiAgICAgICk7XG4gICAgICB0aGlzLnJvd0RlbGV0ZUlkc0NoYW5nZS5lbWl0KHRoaXMuI3Jvd0RlbGV0ZUlkc0ludGVybmFsKTtcbiAgICB9XG4gIH1cblxuICAjdXBkYXRlUm93RGVsZXRlU3RhdGVzKCk6IHZvaWQge1xuICAgIHRoaXMuI3Jvd0RlbGV0ZUNvbmZpZ3MuZm9yRWFjaCgoY29uZmlnOiBTa3lBZ0dyaWRSb3dEZWxldGVDb25maWcpID0+IHtcbiAgICAgIGlmICghdGhpcy5hZ0dyaWQ/LmFwaS5nZXRSb3dOb2RlKGNvbmZpZy5pZCkpIHtcbiAgICAgICAgdGhpcy4jZGVzdHJveVJvd0RlbGV0ZShjb25maWcuaWQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gV2UgbXVzdCByZWFmZml4IHRoaW5ncyB3aGVuIHRoZSBkYXRhIGNoYW5nZXMgYmVjYXVzZSB0aGUgcm93cyByZXJlbmRlciBhbmQgdGhlIHByZXZpb3VzIGVsZW1lbnQgdGhhdCB0aGUgZGVsZXRlIHdhcyBhZmZpeGVkXG4gICAgICAgIC8vIHRvIGlzIGRlc3Ryb3llZC5cbiAgICAgICAgdGhpcy4jYWZmaXhUb1Jvdyh0aGlzLiNyb3dEZWxldGVDb250ZW50c1tjb25maWcuaWRdLmFmZml4ZXIsIGNvbmZpZy5pZCk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -273,10 +273,10 @@ export class SkyAgGridWrapperComponent {
|
|
|
273
273
|
return false;
|
|
274
274
|
}
|
|
275
275
|
}
|
|
276
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
277
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.
|
|
276
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SkyAgGridWrapperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
277
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.13", type: SkyAgGridWrapperComponent, selector: "sky-ag-grid-wrapper", inputs: { compact: ["compact", "compact", booleanAttribute] }, host: { properties: { "class.sky-ag-grid-layout-normal": "this.isNormalLayout" } }, queries: [{ propertyName: "agGrid", first: true, predicate: AgGridAngular, descendants: true, static: true }], ngImport: i0, template: "<span\n class=\"nav-anchor\"\n tabindex=\"0\"\n [id]=\"beforeAnchorId\"\n (focusin)=\"onAnchorFocus($event)\"\n>\n</span>\n<div\n class=\"sky-ag-grid\"\n tabindex=\"0\"\n [class.sky-ag-grid-top-scrollbar]=\"\n agGrid?.gridOptions?.context &&\n agGrid?.gridOptions?.context['enableTopScroll']\n \"\n [ngClass]=\"wrapperClasses$ | async\"\n [id]=\"gridId\"\n [skyViewkeeper]=\"viewkeeperClasses\"\n (keydown)=\"onGridKeydown($event)\"\n (keyup.escape)=\"onKeyUpEscape($event)\"\n>\n <ng-content />\n</div>\n<span\n tabindex=\"0\"\n class=\"nav-anchor\"\n [id]=\"afterAnchorId\"\n (focusin)=\"onAnchorFocus($event)\"\n>\n</span>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.λ3, selector: "[skyViewkeeper]", inputs: ["skyViewkeeper"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
278
278
|
}
|
|
279
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
279
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SkyAgGridWrapperComponent, decorators: [{
|
|
280
280
|
type: Component,
|
|
281
281
|
args: [{ selector: 'sky-ag-grid-wrapper', changeDetection: ChangeDetectionStrategy.OnPush, template: "<span\n class=\"nav-anchor\"\n tabindex=\"0\"\n [id]=\"beforeAnchorId\"\n (focusin)=\"onAnchorFocus($event)\"\n>\n</span>\n<div\n class=\"sky-ag-grid\"\n tabindex=\"0\"\n [class.sky-ag-grid-top-scrollbar]=\"\n agGrid?.gridOptions?.context &&\n agGrid?.gridOptions?.context['enableTopScroll']\n \"\n [ngClass]=\"wrapperClasses$ | async\"\n [id]=\"gridId\"\n [skyViewkeeper]=\"viewkeeperClasses\"\n (keydown)=\"onGridKeydown($event)\"\n (keyup.escape)=\"onKeyUpEscape($event)\"\n>\n <ng-content />\n</div>\n<span\n tabindex=\"0\"\n class=\"nav-anchor\"\n [id]=\"afterAnchorId\"\n (focusin)=\"onAnchorFocus($event)\"\n>\n</span>\n" }]
|
|
282
282
|
}], ctorParameters: () => [], propDecorators: { agGrid: [{
|
|
@@ -291,4 +291,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
|
|
|
291
291
|
type: Input,
|
|
292
292
|
args: [{ transform: booleanAttribute }]
|
|
293
293
|
}] } });
|
|
294
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWctZ3JpZC13cmFwcGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9saWIvbW9kdWxlcy9hZy1ncmlkL2FnLWdyaWQtd3JhcHBlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC9hZy1ncmlkLXdyYXBwZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFHTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLFdBQVcsRUFDWCxLQUFLLEVBR0wsZ0JBQWdCLEVBQ2hCLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDekQsT0FBTyxFQUNMLGVBQWUsR0FHaEIsTUFBTSxjQUFjLENBQUM7QUFFdEIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hELE9BQU8sRUFLTCxXQUFXLEVBQ1gsY0FBYyxHQUNmLE1BQU0sbUJBQW1CLENBQUM7QUFDM0IsT0FBTyxFQUNMLGVBQWUsRUFFZixhQUFhLEVBQ2IsT0FBTyxFQUNQLGFBQWEsRUFDYixvQkFBb0IsRUFDcEIsRUFBRSxFQUNGLElBQUksRUFDSixTQUFTLEdBQ1YsTUFBTSxNQUFNLENBQUM7QUFFZCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFekQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDcEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFt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WUFDTixPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7SUFDSCxDQUFDOzhHQTdUVSx5QkFBeUI7a0dBQXpCLHlCQUF5Qiw2RUFlaEIsZ0JBQWdCLHFKQVp0QixhQUFhLDhEQzNEN0IsNm9CQTZCQTs7MkZEMkJhLHlCQUF5QjtrQkFMckMsU0FBUzsrQkFDRSxxQkFBcUIsbUJBRWQsdUJBQXVCLENBQUMsTUFBTTt3REFReEMsTUFBTTtzQkFIWixZQUFZO3VCQUFDLGFBQWEsRUFBRTt3QkFDM0IsTUFBTSxFQUFFLElBQUk7cUJBQ2I7Z0JBSU0sY0FBYztzQkFEcEIsV0FBVzt1QkFBQyxpQ0FBaUM7Z0JBUW5DLE9BQU87c0JBRGpCLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBFbGVtZW50UmVmLFxuICBIb3N0QmluZGluZyxcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBib29sZWFuQXR0cmlidXRlLFxuICBpbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2t5TXV0YXRpb25PYnNlcnZlclNlcnZpY2UgfSBmcm9tICdAc2t5dXgvY29yZSc7XG5pbXBvcnQge1xuICBTa3lUaGVtZVNlcnZpY2UsXG4gIFNreVRoZW1lU2V0dGluZ3MsXG4gIFNreVRoZW1lU2V0dGluZ3NDaGFuZ2UsXG59IGZyb20gJ0Bza3l1eC90aGVtZSc7XG5cbmltcG9ydCB7IEFnR3JpZEFuZ3VsYXIgfSBmcm9tICdhZy1ncmlkLWFuZ3VsYXInO1xuaW1wb3J0IHtcbiAgQ2VsbEVkaXRpbmdTdGFydGVkRXZlbnQsXG4gIENlbGxGb2N1c2VkRXZlbnQsXG4gIERldGFpbEdyaWRJbmZvLFxuICBIZWFkZXJGb2N1c2VkRXZlbnQsXG4gIE1vZHVsZU5hbWVzLFxuICBNb2R1bGVSZWdpc3RyeSxcbn0gZnJvbSAnYWctZ3JpZC1jb21tdW5pdHknO1xuaW1wb3J0IHtcbiAgQmVoYXZpb3JTdWJqZWN0LFxuICBPYnNlcnZhYmxlLFxuICBSZXBsYXlTdWJqZWN0LFxuICBTdWJqZWN0LFxuICBjb21iaW5lTGF0ZXN0LFxuICBkaXN0aW5jdFVudGlsQ2hhbmdlZCxcbiAgb2YsXG4gIHRha2UsXG4gIHRha2VVbnRpbCxcbn0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IGFnR3JpZFRoZW1lIH0gZnJvbSAnLi4vLi4vc3R5bGVzL2FnLWdyaWQtdGhlbWUnO1xuXG5pbXBvcnQgeyBTa3lBZ0dyaWRBZGFwdGVyU2VydmljZSB9IGZyb20gJy4vYWctZ3JpZC1hZGFwdGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2t5Q2VsbFR5cGUgfSBmcm9tICcuL3R5cGVzL2NlbGwtdHlwZSc7XG5cbmxldCBpZEluZGV4ID0gMDtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LWFnLWdyaWQtd3JhcHBlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9hZy1ncmlkLXdyYXBwZXIuY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgU2t5QWdHcmlkV3JhcHBlckNvbXBvbmVudFxuICBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSwgT25Jbml0XG57XG4gIEBDb250ZW50Q2hpbGQoQWdHcmlkQW5ndWxhciwge1xuICAgIHN0YXRpYzogdHJ1ZSxcbiAgfSlcbiAgcHVibGljIGFnR3JpZDogQWdHcmlkQW5ndWxhciB8IHVuZGVmaW5lZDtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnNreS1hZy1ncmlkLWxheW91dC1ub3JtYWwnKVxuICBwdWJsaWMgaXNOb3JtYWxMYXlvdXQgPSBmYWxzZTtcblxuICAvKipcbiAgICogRW5hYmxlIGEgY29tcGFjdCBsYXlvdXQgZm9yIHRoZSBncmlkIHdoZW4gdXNpbmcgbW9kZXJuIHRoZW1lLiBDb21wYWN0IGxheW91dCB1c2VzXG4gICAqIGEgc21hbGxlciBmb250IHNpemUgYW5kIHJvdyBoZWlnaHQgdG8gZGlzcGxheSBtb3JlIGRhdGEgaW4gYSBzbWFsbGVyIHNwYWNlLlxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gIHB1YmxpYyBzZXQgY29tcGFjdCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuI2lzQ29tcGFjdC5uZXh0KHZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBhZnRlckFuY2hvcklkOiBzdHJpbmc7XG4gIHB1YmxpYyBiZWZvcmVBbmNob3JJZDogc3RyaW5nO1xuICBwdWJsaWMgZ3JpZElkOiBzdHJpbmc7XG4gIHB1YmxpYyB3cmFwcGVyQ2xhc3NlcyQ6IE9ic2VydmFibGU8c3RyaW5nW10+O1xuXG4gIHB1YmxpYyBnZXQgdmlld2tlZXBlckNsYXNzZXMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLiNfdmlld2tlZXBlckNsYXNzZXM7XG4gIH1cblxuICBwdWJsaWMgc2V0IHZpZXdrZWVwZXJDbGFzc2VzKHZhbHVlOiBzdHJpbmdbXSkge1xuICAgIHRoaXMuI192aWV3a2VlcGVyQ2xhc3NlcyA9IHZhbHVlO1xuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgZ2V0ICNpc0luRWRpdE1vZGUoKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuYWdHcmlkICYmIHRoaXMuYWdHcmlkLmFwaSkge1xuICAgICAgY29uc3QgcHJpbWFyeUdyaWRFZGl0aW5nID0gdGhpcy5hZ0dyaWQuYXBpLmdldEVkaXRpbmdDZWxscygpLmxlbmd0aCA+IDA7XG4gICAgICBpZiAocHJpbWFyeUdyaWRFZGl0aW5nKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgTW9kdWxlUmVnaXN0cnkuX19pc1JlZ2lzdGVyZWQoXG4gICAgICAgICAgTW9kdWxlTmFtZXMuRW50ZXJwcmlzZUNvcmVNb2R1bGUsXG4gICAgICAgICAgJ3NreS1hZy1ncmlkLXdyYXBwZXInLFxuICAgICAgICApXG4gICAgICApIHtcbiAgICAgICAgLy8gQUcgR3JpZCAzMisgdGhyb3dzIGFuIGVycm9yIGZvciBjYWxsaW5nIHRoaXMgQVBJIHdpdGhvdXQgZW50ZXJwcmlzZSBtb2R1bGVzLlxuICAgICAgICBsZXQgaW5uZXJFZGl0aW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMuYWdHcmlkLmFwaS5mb3JFYWNoRGV0YWlsR3JpZEluZm8oKGRldGFpbEdyaWQ6IERldGFpbEdyaWRJbmZvKSA9PiB7XG4gICAgICAgICAgaWYgKGRldGFpbEdyaWQ/LmFwaSAmJiBkZXRhaWxHcmlkLmFwaS5nZXRFZGl0aW5nQ2VsbHMoKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBpbm5lckVkaXRpbmcgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIGlubmVyRWRpdGluZztcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgI192aWV3a2VlcGVyQ2xhc3Nlczogc3RyaW5nW10gPSBbXTtcbiAgcmVhZG9ubHkgI25nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICByZWFkb25seSAjdGhlbWVTdmMgPSBpbmplY3QoU2t5VGhlbWVTZXJ2aWNlLCB7XG4gICAgb3B0aW9uYWw6IHRydWUsXG4gIH0pO1xuICByZWFkb25seSAjd3JhcHBlckNsYXNzZXMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZ1tdPihbXG4gICAgYGFnLXRoZW1lLXNreS1kYXRhLWdyaWQtZGVmYXVsdGAsXG4gIF0pO1xuICByZWFkb25seSAjYWRhcHRlclNlcnZpY2UgPSBpbmplY3QoU2t5QWdHcmlkQWRhcHRlclNlcnZpY2UpO1xuICByZWFkb25seSAjY2hhbmdlRGV0ZWN0b3IgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICByZWFkb25seSAjcGFyZW50Q2hhbmdlRGV0ZWN0b3IgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYsIHtcbiAgICBvcHRpb25hbDogdHJ1ZSxcbiAgICBza2lwU2VsZjogdHJ1ZSxcbiAgfSk7XG4gIHJlYWRvbmx5ICNlbGVtZW50UmVmID0gaW5qZWN0KEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+KTtcbiAgcmVhZG9ubHkgI2RvY3VtZW50ID0gaW5qZWN0KERPQ1VNRU5UKTtcbiAgcmVhZG9ubHkgI211dGF0aW9uT2JzZXJ2ZXJTZXJ2aWNlID0gaW5qZWN0KFNreU11dGF0aW9uT2JzZXJ2ZXJTZXJ2aWNlKTtcbiAgcmVhZG9ubHkgI2lzQ29tcGFjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSAjaGFzRWRpdGFibGVDbGFzcyA9IG5ldyBSZXBsYXlTdWJqZWN0PGJvb2xlYW4+KDEpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGlkSW5kZXgrKztcbiAgICB0aGlzLmFmdGVyQW5jaG9ySWQgPSAnc2t5LWFnLWdyaWQtbmF2LWFuY2hvci1hZnRlci0nICsgaWRJbmRleDtcbiAgICB0aGlzLmJlZm9yZUFuY2hvcklkID0gJ3NreS1hZy1ncmlkLW5hdi1hbmNob3ItYmVmb3JlLScgKyBpZEluZGV4O1xuICAgIHRoaXMuZ3JpZElkID0gJ3NreS1hZy1ncmlkLScgKyBpZEluZGV4O1xuICAgIHRoaXMud3JhcHBlckNsYXNzZXMkID0gdGhpcy4jd3JhcHBlckNsYXNzZXMuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmFnR3JpZCkge1xuICAgICAgY29uc3QgZG9tTGF5b3V0ID0gdGhpcy5hZ0dyaWQuZ3JpZE9wdGlvbnM/LmRvbUxheW91dDtcbiAgICAgIGlmIChkb21MYXlvdXQgPT09ICdhdXRvSGVpZ2h0Jykge1xuICAgICAgICBpZiAodGhpcy5hZ0dyaWQuZ3JpZE9wdGlvbnM/LmNvbnRleHQ/LmVuYWJsZVRvcFNjcm9sbCkge1xuICAgICAgICAgIHRoaXMudmlld2tlZXBlckNsYXNzZXMucHVzaChcbiAgICAgICAgICAgICcuYWctaGVhZGVyJyxcbiAgICAgICAgICAgICcuYWctYm9keS1ob3Jpem9udGFsLXNjcm9sbCcsXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnZpZXdrZWVwZXJDbGFzc2VzLnB1c2goJy5hZy1oZWFkZXInKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChkb21MYXlvdXQgPT09ICdub3JtYWwnKSB7XG4gICAgICAgIHRoaXMuaXNOb3JtYWxMYXlvdXQgPSB0cnVlO1xuICAgICAgICB0aGlzLiNwYXJlbnRDaGFuZ2VEZXRlY3Rvcj8uZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgfVxuICAgICAgdGhpcy5hZ0dyaWQuZ3JpZFJlYWR5XG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy4jbW92ZUhvcml6b250YWxTY3JvbGwoKTtcbiAgICAgICAgfSk7XG4gICAgICB0aGlzLmFnR3JpZC5maXJzdERhdGFSZW5kZXJlZFxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuI21vdmVIb3Jpem9udGFsU2Nyb2xsKCk7XG4gICAgICAgIH0pO1xuICAgICAgdGhpcy5hZ0dyaWQucm93RGF0YVVwZGF0ZWRcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICB0aGlzLiNtb3ZlSG9yaXpvbnRhbFNjcm9sbCgpO1xuICAgICAgICB9KTtcbiAgICAgIHRoaXMuYWdHcmlkLmNlbGxFZGl0aW5nU3RhcnRlZFxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKHBhcmFtczogQ2VsbEVkaXRpbmdTdGFydGVkRXZlbnQpID0+IHtcbiAgICAgICAgICBpZiAocGFyYW1zLmNvbERlZi50eXBlKSB7XG4gICAgICAgICAgICBjb25zdCB0eXBlcyA9IEFycmF5LmlzQXJyYXkocGFyYW1zLmNvbERlZi50eXBlKVxuICAgICAgICAgICAgICA/IHBhcmFtcy5jb2xEZWYudHlwZVxuICAgICAgICAgICAgICA6IFtwYXJhbXMuY29sRGVmLnR5cGVdO1xuICAgICAgICAgICAgY29uc3QgYWRkQ2xhc3NlcyA9IHR5cGVzLm1hcChcbiAgICAgICAgICAgICAgKHQpID0+IGBza3ktYWctZ3JpZC1jZWxsLWVkaXRpbmctJHt0fWAsXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgdGhpcy4jd3JhcHBlckNsYXNzZXMubmV4dChbXG4gICAgICAgICAgICAgIC4uLnRoaXMuI3dyYXBwZXJDbGFzc2VzLmdldFZhbHVlKCksXG4gICAgICAgICAgICAgIC4uLmFkZENsYXNzZXMsXG4gICAgICAgICAgICBdKTtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgdHlwZXMuaW5jbHVkZXMoU2t5Q2VsbFR5cGUuVGVtcGxhdGUpICYmXG4gICAgICAgICAgICAgIHBhcmFtcy5yb3dJbmRleCAhPT0gbnVsbFxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIHRoaXMuYWdHcmlkPy5hcGkuc2V0Rm9jdXNlZENlbGwocGFyYW1zLnJvd0luZGV4LCBwYXJhbXMuY29sdW1uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgdGhpcy5hZ0dyaWQuY2VsbEVkaXRpbmdTdG9wcGVkXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy4jd3JhcHBlckNsYXNzZXMubmV4dChcbiAgICAgICAgICAgIHRoaXMuI3dyYXBwZXJDbGFzc2VzXG4gICAgICAgICAgICAgIC5nZXRWYWx1ZSgpXG4gICAgICAgICAgICAgIC5maWx0ZXIoKGMpID0+ICFjLnN0YXJ0c1dpdGgoJ3NreS1hZy1ncmlkLWNlbGwtZWRpdGluZy0nKSksXG4gICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgICB0aGlzLmFnR3JpZC5jZWxsRm9jdXNlZFxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50OiBDZWxsRm9jdXNlZEV2ZW50KSA9PiB7XG4gICAgICAgICAgY29uc3QgY29udGV4dCA9IGV2ZW50LmNvbnRleHQgfHwge307XG5cbiAgICAgICAgICBjb250ZXh0WydsYXN0Rm9jdXNlZENlbGwnXSA9IHtcbiAgICAgICAgICAgIHJvd0luZGV4OiBldmVudC5yb3dJbmRleCxcbiAgICAgICAgICAgIGNvbHVtbjpcbiAgICAgICAgICAgICAgdHlwZW9mIGV2ZW50LmNvbHVtbiA9PT0gJ29iamVjdCdcbiAgICAgICAgICAgICAgICA/IGV2ZW50LmNvbHVtbj8uZ2V0Q29sSWQoKVxuICAgICAgICAgICAgICAgIDogYCR7ZXZlbnQuY29sdW1ufWAsXG4gICAgICAgICAgfTtcblxuICAgICAgICAgIGV2ZW50LmFwaT8uc2V0R3JpZE9wdGlvbignY29udGV4dCcsIGNvbnRleHQpO1xuICAgICAgICB9KTtcblxuICAgICAgdGhpcy5hZ0dyaWQuaGVhZGVyRm9jdXNlZFxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50OiBIZWFkZXJGb2N1c2VkRXZlbnQpID0+IHtcbiAgICAgICAgICBjb25zdCBjb250ZXh0ID0gZXZlbnQuY29udGV4dCB8fCB7fTtcblxuICAgICAgICAgIGNvbnRleHRbJ2xhc3RGb2N1c2VkQ2VsbCddID0ge1xuICAgICAgICAgICAgcm93SW5kZXg6IG51bGwsXG4gICAgICAgICAgICBjb2x1bW46IGV2ZW50LmNvbHVtbj8uZ2V0VW5pcXVlSWRcbiAgICAgICAgICAgICAgPyBldmVudC5jb2x1bW4uZ2V0VW5pcXVlSWQoKVxuICAgICAgICAgICAgICA6IGAke2V2ZW50LmNvbHVtbn1gLFxuICAgICAgICAgIH07XG5cbiAgICAgICAgICBldmVudC5hcGk/LnNldEdyaWRPcHRpb24oJ2NvbnRleHQnLCBjb250ZXh0KTtcbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgICB0aGlzLiNoYXNFZGl0YWJsZUNsYXNzLmNvbXBsZXRlKCk7XG4gICAgdGhpcy4jaXNDb21wYWN0LmNvbXBsZXRlKCk7XG4gICAgdGhpcy4jd3JhcHBlckNsYXNzZXMuY29tcGxldGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBjb21iaW5lTGF0ZXN0PFtib29sZWFuLCBib29sZWFuLCBTa3lUaGVtZVNldHRpbmdzQ2hhbmdlIHwgdW5kZWZpbmVkXT4oW1xuICAgICAgdGhpcy4jaGFzRWRpdGFibGVDbGFzcy5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpLFxuICAgICAgdGhpcy4jaXNDb21wYWN0LnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSksXG4gICAgICB0aGlzLiN0aGVtZVN2Yz8uc2V0dGluZ3NDaGFuZ2UgPz8gb2YodW5kZWZpbmVkKSxcbiAgICBdKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSgoW2hhc0VkaXRhYmxlQ2xhc3MsIGlzQ29tcGFjdCwgc2V0dGluZ3NdKSA9PiB7XG4gICAgICAgIHRoaXMuI3VwZGF0ZUdyaWRUaGVtZShcbiAgICAgICAgICBoYXNFZGl0YWJsZUNsYXNzLFxuICAgICAgICAgIGlzQ29tcGFjdCxcbiAgICAgICAgICBzZXR0aW5ncz8uY3VycmVudFNldHRpbmdzLFxuICAgICAgICApO1xuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGNvbnN0IGFnR3JpZEVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkID1cbiAgICAgIHRoaXMuI2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCdhZy1ncmlkLWFuZ3VsYXInKTtcbiAgICBjb25zdCBjYWxsYmFjayA9ICgpOiB2b2lkID0+IHtcbiAgICAgIHRoaXMuI2hhc0VkaXRhYmxlQ2xhc3MubmV4dChcbiAgICAgICAgISFhZ0dyaWRFbGVtZW50Py5jbGFzc0xpc3QuY29udGFpbnMoJ3NreS1hZy1ncmlkLWVkaXRhYmxlJyksXG4gICAgICApO1xuICAgIH07XG4gICAgaWYgKGFnR3JpZEVsZW1lbnQpIHtcbiAgICAgIGNvbnN0IGFnR3JpZENsYXNzT2JzZXJ2ZXIgPVxuICAgICAgICB0aGlzLiNtdXRhdGlvbk9ic2VydmVyU2VydmljZS5jcmVhdGUoY2FsbGJhY2spO1xuICAgICAgYWdHcmlkQ2xhc3NPYnNlcnZlci5vYnNlcnZlKGFnR3JpZEVsZW1lbnQsIHtcbiAgICAgICAgYXR0cmlidXRlczogdHJ1ZSxcbiAgICAgICAgYXR0cmlidXRlRmlsdGVyOiBbJ2NsYXNzJ10sXG4gICAgICB9KTtcbiAgICAgIHRoaXMuI25nVW5zdWJzY3JpYmUucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICBhZ0dyaWRDbGFzc09ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICBjYWxsYmFjaygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFByZXZlbnQgY2xvc2luZyBhIG1vZGFsIHdoZW4gZm9jdXNlZCBpbiBBRyBHcmlkLlxuICAgKi9cbiAgcHVibGljIG9uS2V5VXBFc2NhcGUoJGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLmFnR3JpZD8uYXBpLnN0b3BFZGl0aW5nKHRydWUpO1xuICB9XG5cbiAgcHVibGljIG9uR3JpZEtleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5hZ0dyaWQgJiYgIXRoaXMuI2lzSW5FZGl0TW9kZSAmJiBldmVudC5rZXkgPT09ICdUYWInKSB7XG4gICAgICBjb25zdCBpZFRvRm9jdXMgPSBldmVudC5zaGlmdEtleVxuICAgICAgICA/IHRoaXMuYmVmb3JlQW5jaG9ySWRcbiAgICAgICAgOiB0aGlzLmFmdGVyQW5jaG9ySWQ7XG4gICAgICB0aGlzLiNhZGFwdGVyU2VydmljZS5zZXRGb2N1c2VkRWxlbWVudEJ5SWQoXG4gICAgICAgIHRoaXMuI2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgaWRUb0ZvY3VzLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25BbmNob3JGb2N1cyhldmVudDogRm9jdXNFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHJlbGF0ZWRUYXJnZXQgPSBldmVudC5yZWxhdGVkVGFyZ2V0IGFzIEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkO1xuICAgIGNvbnN0IHByZXZpb3VzV2FzR3JpZCA9XG4gICAgICByZWxhdGVkVGFyZ2V0ICYmIHRoaXMuI2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jb250YWlucyhyZWxhdGVkVGFyZ2V0KTtcblxuICAgIGlmICh0aGlzLmFnR3JpZCAmJiAhcHJldmlvdXNXYXNHcmlkKSB7XG4gICAgICB0aGlzLiNlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnRcbiAgICAgICAgLnF1ZXJ5U2VsZWN0b3IoJy5hZy10YWItZ3VhcmQuYWctdGFiLWd1YXJkLXRvcCcpXG4gICAgICAgID8uZm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICAjbW92ZUhvcml6b250YWxTY3JvbGwoKTogdm9pZCB7XG4gICAgY29uc3QgdG9Ub3AgPSAhIXRoaXMuYWdHcmlkPy5ncmlkT3B0aW9ucz8uY29udGV4dD8uZW5hYmxlVG9wU2Nyb2xsO1xuICAgIGNvbnN0IHJvb3QgPSB0aGlzLiNlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLmFnLXJvb3QnKTtcbiAgICBjb25zdCBoZWFkZXIgPSByb290Py5xdWVyeVNlbGVjdG9yKCcuYWctaGVhZGVyJyk7XG4gICAgY29uc3QgZmxvYXRpbmdCb3R0b20gPSByb290Py5xdWVyeVNlbGVjdG9yKCcuYWctZmxvYXRpbmctYm90dG9tJyk7XG4gICAgY29uc3Qgc2Nyb2xsYmFyID0gcm9vdD8ucXVlcnlTZWxlY3RvcignLmFnLWJvZHktaG9yaXpvbnRhbC1zY3JvbGwnKTtcbiAgICBpZiAocm9vdCAmJiBoZWFkZXIgJiYgZmxvYXRpbmdCb3R0b20gJiYgc2Nyb2xsYmFyKSB7XG4gICAgICBpZiAoXG4gICAgICAgIHNjcm9sbGJhci5zdHlsZS5oZWlnaHQgIT09XG4gICAgICAgIHNjcm9sbGJhci5zdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKFxuICAgICAgICAgICctLXNreS1hZy1ib2R5LWhvcml6b250YWwtc2Nyb2xsLXdpZHRoJyxcbiAgICAgICAgKVxuICAgICAgKSB7XG4gICAgICAgIHNjcm9sbGJhci5zdHlsZS5zZXRQcm9wZXJ0eShcbiAgICAgICAgICAnLS1za3ktYWctYm9keS1ob3Jpem9udGFsLXNjcm9sbC13aWR0aCcsXG4gICAgICAgICAgc2Nyb2xsYmFyLnN0eWxlLmhlaWdodCxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGlzVG9wID0gcm9vdC5jaGlsZHJlblsxXS5tYXRjaGVzKCcuYWctYm9keS1ob3Jpem9udGFsLXNjcm9sbCcpO1xuICAgICAgaWYgKHRvVG9wICYmICFpc1RvcCkge1xuICAgICAgICBjb25zdCBmcmFnbWVudCA9IHRoaXMuI2RvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTtcbiAgICAgICAgZnJhZ21lbnQuYXBwZW5kQ2hpbGQoc2Nyb2xsYmFyKTtcbiAgICAgICAgaGVhZGVyLmFmdGVyKGZyYWdtZW50KTtcbiAgICAgIH0gZWxzZSBpZiAoIXRvVG9wICYmIGlzVG9wKSB7XG4gICAgICAgIGNvbnN0IGZyYWdtZW50ID0gdGhpcy4jZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpO1xuICAgICAgICBmcmFnbWVudC5hcHBlbmRDaGlsZChzY3JvbGxiYXIpO1xuICAgICAgICBmbG9hdGluZ0JvdHRvbS5hZnRlcihmcmFnbWVudCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgI3VwZGF0ZUdyaWRUaGVtZShcbiAgICBoYXNFZGl0YWJsZUNsYXNzOiBib29sZWFuLFxuICAgIGlzQ29tcGFjdDogYm9vbGVhbixcbiAgICB0aGVtZVNldHRpbmdzPzogU2t5VGhlbWVTZXR0aW5ncyxcbiAgKTogdm9pZCB7XG4gICAgY29uc3QgYWdUaGVtZSA9IGFnR3JpZFRoZW1lKGhhc0VkaXRhYmxlQ2xhc3MsIHRoZW1lU2V0dGluZ3MsIGlzQ29tcGFjdCk7XG4gICAgY29uc3QgcHJldmlvdXNWYWx1ZSA9IHRoaXMuI3dyYXBwZXJDbGFzc2VzLmdldFZhbHVlKCk7XG4gICAgbGV0IHZhbHVlID0gW1xuICAgICAgLi4ucHJldmlvdXNWYWx1ZS5maWx0ZXIoKGMpID0+ICFjLnN0YXJ0c1dpdGgoJ2FnLXRoZW1lLScpKSxcbiAgICAgIGFnVGhlbWUsXG4gICAgXTtcbiAgICBjb25zdCB0ZXh0U2VsZWN0aW9uQ2xhc3MgPSAnc2t5LWFnLWdyaWQtdGV4dC1zZWxlY3Rpb24nO1xuICAgIGlmICh0aGlzLiNnZXRUZXh0U2VsZWN0aW9uKGhhc0VkaXRhYmxlQ2xhc3MpKSB7XG4gICAgICB2YWx1ZS5wdXNoKHRleHRTZWxlY3Rpb25DbGFzcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhbHVlID0gdmFsdWUuZmlsdGVyKChjKSA9PiBjICE9PSB0ZXh0U2VsZWN0aW9uQ2xhc3MpO1xuICAgIH1cbiAgICB0aGlzLiN3cmFwcGVyQ2xhc3Nlcy5uZXh0KFsuLi5uZXcgU2V0KHZhbHVlKV0pO1xuICB9XG5cbiAgI2dldFRleHRTZWxlY3Rpb24oaGFzRWRpdGFibGVDbGFzczogYm9vbGVhbik6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLmFnR3JpZD8uZ3JpZE9wdGlvbnM/LmNvbnRleHQ/LmVuYWJsZUNlbGxUZXh0U2VsZWN0aW9uKSB7XG4gICAgICByZXR1cm4gIWhhc0VkaXRhYmxlQ2xhc3M7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cbn1cbiIsIjxzcGFuXG4gIGNsYXNzPVwibmF2LWFuY2hvclwiXG4gIHRhYmluZGV4PVwiMFwiXG4gIFtpZF09XCJiZWZvcmVBbmNob3JJZFwiXG4gIChmb2N1c2luKT1cIm9uQW5jaG9yRm9jdXMoJGV2ZW50KVwiXG4+XG48L3NwYW4+XG48ZGl2XG4gIGNsYXNzPVwic2t5LWFnLWdyaWRcIlxuICB0YWJpbmRleD1cIjBcIlxuICBbY2xhc3Muc2t5LWFnLWdyaWQtdG9wLXNjcm9sbGJhcl09XCJcbiAgICBhZ0dyaWQ/LmdyaWRPcHRpb25zPy5jb250ZXh0ICYmXG4gICAgYWdHcmlkPy5ncmlkT3B0aW9ucz8uY29udGV4dFsnZW5hYmxlVG9wU2Nyb2xsJ11cbiAgXCJcbiAgW25nQ2xhc3NdPVwid3JhcHBlckNsYXNzZXMkIHwgYXN5bmNcIlxuICBbaWRdPVwiZ3JpZElkXCJcbiAgW3NreVZpZXdrZWVwZXJdPVwidmlld2tlZXBlckNsYXNzZXNcIlxuICAoa2V5ZG93bik9XCJvbkdyaWRLZXlkb3duKCRldmVudClcIlxuICAoa2V5dXAuZXNjYXBlKT1cIm9uS2V5VXBFc2NhcGUoJGV2ZW50KVwiXG4+XG4gIDxuZy1jb250ZW50IC8+XG48L2Rpdj5cbjxzcGFuXG4gIHRhYmluZGV4PVwiMFwiXG4gIGNsYXNzPVwibmF2LWFuY2hvclwiXG4gIFtpZF09XCJhZnRlckFuY2hvcklkXCJcbiAgKGZvY3VzaW4pPVwib25BbmNob3JGb2N1cygkZXZlbnQpXCJcbj5cbjwvc3Bhbj5cbiJdfQ==
|
|
294
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWctZ3JpZC13cmFwcGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9saWIvbW9kdWxlcy9hZy1ncmlkL2FnLWdyaWQtd3JhcHBlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC9hZy1ncmlkLXdyYXBwZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFHTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLFdBQVcsRUFDWCxLQUFLLEVBR0wsZ0JBQWdCLEVBQ2hCLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDekQsT0FBTyxFQUNMLGVBQWUsR0FHaEIsTUFBTSxjQUFjLENBQUM7QUFFdEIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hELE9BQU8sRUFLTCxXQUFXLEVBQ1gsY0FBYyxHQUNmLE1BQU0sbUJBQW1CLENBQUM7QUFDM0IsT0FBTyxFQUNMLGVBQWUsRUFFZixhQUFhLEVBQ2IsT0FBTyxFQUNQLGFBQWEsRUFDYixvQkFBb0IsRUFDcEIsRUFBRSxFQUNGLElBQUksRUFDSixTQUFTLEdBQ1YsTUFBTSxNQUFNLENBQUM7QUFFZCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFekQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDcEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFt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WUFDTixPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7SUFDSCxDQUFDOytHQTdUVSx5QkFBeUI7bUdBQXpCLHlCQUF5Qiw2RUFlaEIsZ0JBQWdCLHFKQVp0QixhQUFhLDhEQzNEN0IsNm9CQTZCQTs7NEZEMkJhLHlCQUF5QjtrQkFMckMsU0FBUzsrQkFDRSxxQkFBcUIsbUJBRWQsdUJBQXVCLENBQUMsTUFBTTt3REFReEMsTUFBTTtzQkFIWixZQUFZO3VCQUFDLGFBQWEsRUFBRTt3QkFDM0IsTUFBTSxFQUFFLElBQUk7cUJBQ2I7Z0JBSU0sY0FBYztzQkFEcEIsV0FBVzt1QkFBQyxpQ0FBaUM7Z0JBUW5DLE9BQU87c0JBRGpCLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBFbGVtZW50UmVmLFxuICBIb3N0QmluZGluZyxcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBib29sZWFuQXR0cmlidXRlLFxuICBpbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2t5TXV0YXRpb25PYnNlcnZlclNlcnZpY2UgfSBmcm9tICdAc2t5dXgvY29yZSc7XG5pbXBvcnQge1xuICBTa3lUaGVtZVNlcnZpY2UsXG4gIFNreVRoZW1lU2V0dGluZ3MsXG4gIFNreVRoZW1lU2V0dGluZ3NDaGFuZ2UsXG59IGZyb20gJ0Bza3l1eC90aGVtZSc7XG5cbmltcG9ydCB7IEFnR3JpZEFuZ3VsYXIgfSBmcm9tICdhZy1ncmlkLWFuZ3VsYXInO1xuaW1wb3J0IHtcbiAgQ2VsbEVkaXRpbmdTdGFydGVkRXZlbnQsXG4gIENlbGxGb2N1c2VkRXZlbnQsXG4gIERldGFpbEdyaWRJbmZvLFxuICBIZWFkZXJGb2N1c2VkRXZlbnQsXG4gIE1vZHVsZU5hbWVzLFxuICBNb2R1bGVSZWdpc3RyeSxcbn0gZnJvbSAnYWctZ3JpZC1jb21tdW5pdHknO1xuaW1wb3J0IHtcbiAgQmVoYXZpb3JTdWJqZWN0LFxuICBPYnNlcnZhYmxlLFxuICBSZXBsYXlTdWJqZWN0LFxuICBTdWJqZWN0LFxuICBjb21iaW5lTGF0ZXN0LFxuICBkaXN0aW5jdFVudGlsQ2hhbmdlZCxcbiAgb2YsXG4gIHRha2UsXG4gIHRha2VVbnRpbCxcbn0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IGFnR3JpZFRoZW1lIH0gZnJvbSAnLi4vLi4vc3R5bGVzL2FnLWdyaWQtdGhlbWUnO1xuXG5pbXBvcnQgeyBTa3lBZ0dyaWRBZGFwdGVyU2VydmljZSB9IGZyb20gJy4vYWctZ3JpZC1hZGFwdGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2t5Q2VsbFR5cGUgfSBmcm9tICcuL3R5cGVzL2NlbGwtdHlwZSc7XG5cbmxldCBpZEluZGV4ID0gMDtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LWFnLWdyaWQtd3JhcHBlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9hZy1ncmlkLXdyYXBwZXIuY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgU2t5QWdHcmlkV3JhcHBlckNvbXBvbmVudFxuICBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSwgT25Jbml0XG57XG4gIEBDb250ZW50Q2hpbGQoQWdHcmlkQW5ndWxhciwge1xuICAgIHN0YXRpYzogdHJ1ZSxcbiAgfSlcbiAgcHVibGljIGFnR3JpZDogQWdHcmlkQW5ndWxhciB8IHVuZGVmaW5lZDtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnNreS1hZy1ncmlkLWxheW91dC1ub3JtYWwnKVxuICBwdWJsaWMgaXNOb3JtYWxMYXlvdXQgPSBmYWxzZTtcblxuICAvKipcbiAgICogRW5hYmxlIGEgY29tcGFjdCBsYXlvdXQgZm9yIHRoZSBncmlkIHdoZW4gdXNpbmcgbW9kZXJuIHRoZW1lLiBDb21wYWN0IGxheW91dCB1c2VzXG4gICAqIGEgc21hbGxlciBmb250IHNpemUgYW5kIHJvdyBoZWlnaHQgdG8gZGlzcGxheSBtb3JlIGRhdGEgaW4gYSBzbWFsbGVyIHNwYWNlLlxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gIHB1YmxpYyBzZXQgY29tcGFjdCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuI2lzQ29tcGFjdC5uZXh0KHZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBhZnRlckFuY2hvcklkOiBzdHJpbmc7XG4gIHB1YmxpYyBiZWZvcmVBbmNob3JJZDogc3RyaW5nO1xuICBwdWJsaWMgZ3JpZElkOiBzdHJpbmc7XG4gIHB1YmxpYyB3cmFwcGVyQ2xhc3NlcyQ6IE9ic2VydmFibGU8c3RyaW5nW10+O1xuXG4gIHB1YmxpYyBnZXQgdmlld2tlZXBlckNsYXNzZXMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLiNfdmlld2tlZXBlckNsYXNzZXM7XG4gIH1cblxuICBwdWJsaWMgc2V0IHZpZXdrZWVwZXJDbGFzc2VzKHZhbHVlOiBzdHJpbmdbXSkge1xuICAgIHRoaXMuI192aWV3a2VlcGVyQ2xhc3NlcyA9IHZhbHVlO1xuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgZ2V0ICNpc0luRWRpdE1vZGUoKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuYWdHcmlkICYmIHRoaXMuYWdHcmlkLmFwaSkge1xuICAgICAgY29uc3QgcHJpbWFyeUdyaWRFZGl0aW5nID0gdGhpcy5hZ0dyaWQuYXBpLmdldEVkaXRpbmdDZWxscygpLmxlbmd0aCA+IDA7XG4gICAgICBpZiAocHJpbWFyeUdyaWRFZGl0aW5nKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgTW9kdWxlUmVnaXN0cnkuX19pc1JlZ2lzdGVyZWQoXG4gICAgICAgICAgTW9kdWxlTmFtZXMuRW50ZXJwcmlzZUNvcmVNb2R1bGUsXG4gICAgICAgICAgJ3NreS1hZy1ncmlkLXdyYXBwZXInLFxuICAgICAgICApXG4gICAgICApIHtcbiAgICAgICAgLy8gQUcgR3JpZCAzMisgdGhyb3dzIGFuIGVycm9yIGZvciBjYWxsaW5nIHRoaXMgQVBJIHdpdGhvdXQgZW50ZXJwcmlzZSBtb2R1bGVzLlxuICAgICAgICBsZXQgaW5uZXJFZGl0aW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMuYWdHcmlkLmFwaS5mb3JFYWNoRGV0YWlsR3JpZEluZm8oKGRldGFpbEdyaWQ6IERldGFpbEdyaWRJbmZvKSA9PiB7XG4gICAgICAgICAgaWYgKGRldGFpbEdyaWQ/LmFwaSAmJiBkZXRhaWxHcmlkLmFwaS5nZXRFZGl0aW5nQ2VsbHMoKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBpbm5lckVkaXRpbmcgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIGlubmVyRWRpdGluZztcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgI192aWV3a2VlcGVyQ2xhc3Nlczogc3RyaW5nW10gPSBbXTtcbiAgcmVhZG9ubHkgI25nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICByZWFkb25seSAjdGhlbWVTdmMgPSBpbmplY3QoU2t5VGhlbWVTZXJ2aWNlLCB7XG4gICAgb3B0aW9uYWw6IHRydWUsXG4gIH0pO1xuICByZWFkb25seSAjd3JhcHBlckNsYXNzZXMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZ1tdPihbXG4gICAgYGFnLXRoZW1lLXNreS1kYXRhLWdyaWQtZGVmYXVsdGAsXG4gIF0pO1xuICByZWFkb25seSAjYWRhcHRlclNlcnZpY2UgPSBpbmplY3QoU2t5QWdHcmlkQWRhcHRlclNlcnZpY2UpO1xuICByZWFkb25seSAjY2hhbmdlRGV0ZWN0b3IgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICByZWFkb25seSAjcGFyZW50Q2hhbmdlRGV0ZWN0b3IgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYsIHtcbiAgICBvcHRpb25hbDogdHJ1ZSxcbiAgICBza2lwU2VsZjogdHJ1ZSxcbiAgfSk7XG4gIHJlYWRvbmx5ICNlbGVtZW50UmVmID0gaW5qZWN0KEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+KTtcbiAgcmVhZG9ubHkgI2RvY3VtZW50ID0gaW5qZWN0KERPQ1VNRU5UKTtcbiAgcmVhZG9ubHkgI211dGF0aW9uT2JzZXJ2ZXJTZXJ2aWNlID0gaW5qZWN0KFNreU11dGF0aW9uT2JzZXJ2ZXJTZXJ2aWNlKTtcbiAgcmVhZG9ubHkgI2lzQ29tcGFjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSAjaGFzRWRpdGFibGVDbGFzcyA9IG5ldyBSZXBsYXlTdWJqZWN0PGJvb2xlYW4+KDEpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGlkSW5kZXgrKztcbiAgICB0aGlzLmFmdGVyQW5jaG9ySWQgPSAnc2t5LWFnLWdyaWQtbmF2LWFuY2hvci1hZnRlci0nICsgaWRJbmRleDtcbiAgICB0aGlzLmJlZm9yZUFuY2hvcklkID0gJ3NreS1hZy1ncmlkLW5hdi1hbmNob3ItYmVmb3JlLScgKyBpZEluZGV4O1xuICAgIHRoaXMuZ3JpZElkID0gJ3NreS1hZy1ncmlkLScgKyBpZEluZGV4O1xuICAgIHRoaXMud3JhcHBlckNsYXNzZXMkID0gdGhpcy4jd3JhcHBlckNsYXNzZXMuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmFnR3JpZCkge1xuICAgICAgY29uc3QgZG9tTGF5b3V0ID0gdGhpcy5hZ0dyaWQuZ3JpZE9wdGlvbnM/LmRvbUxheW91dDtcbiAgICAgIGlmIChkb21MYXlvdXQgPT09ICdhdXRvSGVpZ2h0Jykge1xuICAgICAgICBpZiAodGhpcy5hZ0dyaWQuZ3JpZE9wdGlvbnM/LmNvbnRleHQ/LmVuYWJsZVRvcFNjcm9sbCkge1xuICAgICAgICAgIHRoaXMudmlld2tlZXBlckNsYXNzZXMucHVzaChcbiAgICAgICAgICAgICcuYWctaGVhZGVyJyxcbiAgICAgICAgICAgICcuYWctYm9keS1ob3Jpem9udGFsLXNjcm9sbCcsXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnZpZXdrZWVwZXJDbGFzc2VzLnB1c2goJy5hZy1oZWFkZXInKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChkb21MYXlvdXQgPT09ICdub3JtYWwnKSB7XG4gICAgICAgIHRoaXMuaXNOb3JtYWxMYXlvdXQgPSB0cnVlO1xuICAgICAgICB0aGlzLiNwYXJlbnRDaGFuZ2VEZXRlY3Rvcj8uZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgfVxuICAgICAgdGhpcy5hZ0dyaWQuZ3JpZFJlYWR5XG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy4jbW92ZUhvcml6b250YWxTY3JvbGwoKTtcbiAgICAgICAgfSk7XG4gICAgICB0aGlzLmFnR3JpZC5maXJzdERhdGFSZW5kZXJlZFxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuI21vdmVIb3Jpem9udGFsU2Nyb2xsKCk7XG4gICAgICAgIH0pO1xuICAgICAgdGhpcy5hZ0dyaWQucm93RGF0YVVwZGF0ZWRcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICB0aGlzLiNtb3ZlSG9yaXpvbnRhbFNjcm9sbCgpO1xuICAgICAgICB9KTtcbiAgICAgIHRoaXMuYWdHcmlkLmNlbGxFZGl0aW5nU3RhcnRlZFxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKHBhcmFtczogQ2VsbEVkaXRpbmdTdGFydGVkRXZlbnQpID0+IHtcbiAgICAgICAgICBpZiAocGFyYW1zLmNvbERlZi50eXBlKSB7XG4gICAgICAgICAgICBjb25zdCB0eXBlcyA9IEFycmF5LmlzQXJyYXkocGFyYW1zLmNvbERlZi50eXBlKVxuICAgICAgICAgICAgICA/IHBhcmFtcy5jb2xEZWYudHlwZVxuICAgICAgICAgICAgICA6IFtwYXJhbXMuY29sRGVmLnR5cGVdO1xuICAgICAgICAgICAgY29uc3QgYWRkQ2xhc3NlcyA9IHR5cGVzLm1hcChcbiAgICAgICAgICAgICAgKHQpID0+IGBza3ktYWctZ3JpZC1jZWxsLWVkaXRpbmctJHt0fWAsXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgdGhpcy4jd3JhcHBlckNsYXNzZXMubmV4dChbXG4gICAgICAgICAgICAgIC4uLnRoaXMuI3dyYXBwZXJDbGFzc2VzLmdldFZhbHVlKCksXG4gICAgICAgICAgICAgIC4uLmFkZENsYXNzZXMsXG4gICAgICAgICAgICBdKTtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgdHlwZXMuaW5jbHVkZXMoU2t5Q2VsbFR5cGUuVGVtcGxhdGUpICYmXG4gICAgICAgICAgICAgIHBhcmFtcy5yb3dJbmRleCAhPT0gbnVsbFxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIHRoaXMuYWdHcmlkPy5hcGkuc2V0Rm9jdXNlZENlbGwocGFyYW1zLnJvd0luZGV4LCBwYXJhbXMuY29sdW1uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgdGhpcy5hZ0dyaWQuY2VsbEVkaXRpbmdTdG9wcGVkXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy4jd3JhcHBlckNsYXNzZXMubmV4dChcbiAgICAgICAgICAgIHRoaXMuI3dyYXBwZXJDbGFzc2VzXG4gICAgICAgICAgICAgIC5nZXRWYWx1ZSgpXG4gICAgICAgICAgICAgIC5maWx0ZXIoKGMpID0+ICFjLnN0YXJ0c1dpdGgoJ3NreS1hZy1ncmlkLWNlbGwtZWRpdGluZy0nKSksXG4gICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgICB0aGlzLmFnR3JpZC5jZWxsRm9jdXNlZFxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50OiBDZWxsRm9jdXNlZEV2ZW50KSA9PiB7XG4gICAgICAgICAgY29uc3QgY29udGV4dCA9IGV2ZW50LmNvbnRleHQgfHwge307XG5cbiAgICAgICAgICBjb250ZXh0WydsYXN0Rm9jdXNlZENlbGwnXSA9IHtcbiAgICAgICAgICAgIHJvd0luZGV4OiBldmVudC5yb3dJbmRleCxcbiAgICAgICAgICAgIGNvbHVtbjpcbiAgICAgICAgICAgICAgdHlwZW9mIGV2ZW50LmNvbHVtbiA9PT0gJ29iamVjdCdcbiAgICAgICAgICAgICAgICA/IGV2ZW50LmNvbHVtbj8uZ2V0Q29sSWQoKVxuICAgICAgICAgICAgICAgIDogYCR7ZXZlbnQuY29sdW1ufWAsXG4gICAgICAgICAgfTtcblxuICAgICAgICAgIGV2ZW50LmFwaT8uc2V0R3JpZE9wdGlvbignY29udGV4dCcsIGNvbnRleHQpO1xuICAgICAgICB9KTtcblxuICAgICAgdGhpcy5hZ0dyaWQuaGVhZGVyRm9jdXNlZFxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50OiBIZWFkZXJGb2N1c2VkRXZlbnQpID0+IHtcbiAgICAgICAgICBjb25zdCBjb250ZXh0ID0gZXZlbnQuY29udGV4dCB8fCB7fTtcblxuICAgICAgICAgIGNvbnRleHRbJ2xhc3RGb2N1c2VkQ2VsbCddID0ge1xuICAgICAgICAgICAgcm93SW5kZXg6IG51bGwsXG4gICAgICAgICAgICBjb2x1bW46IGV2ZW50LmNvbHVtbj8uZ2V0VW5pcXVlSWRcbiAgICAgICAgICAgICAgPyBldmVudC5jb2x1bW4uZ2V0VW5pcXVlSWQoKVxuICAgICAgICAgICAgICA6IGAke2V2ZW50LmNvbHVtbn1gLFxuICAgICAgICAgIH07XG5cbiAgICAgICAgICBldmVudC5hcGk/LnNldEdyaWRPcHRpb24oJ2NvbnRleHQnLCBjb250ZXh0KTtcbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgICB0aGlzLiNoYXNFZGl0YWJsZUNsYXNzLmNvbXBsZXRlKCk7XG4gICAgdGhpcy4jaXNDb21wYWN0LmNvbXBsZXRlKCk7XG4gICAgdGhpcy4jd3JhcHBlckNsYXNzZXMuY29tcGxldGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBjb21iaW5lTGF0ZXN0PFtib29sZWFuLCBib29sZWFuLCBTa3lUaGVtZVNldHRpbmdzQ2hhbmdlIHwgdW5kZWZpbmVkXT4oW1xuICAgICAgdGhpcy4jaGFzRWRpdGFibGVDbGFzcy5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpLFxuICAgICAgdGhpcy4jaXNDb21wYWN0LnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSksXG4gICAgICB0aGlzLiN0aGVtZVN2Yz8uc2V0dGluZ3NDaGFuZ2UgPz8gb2YodW5kZWZpbmVkKSxcbiAgICBdKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSgoW2hhc0VkaXRhYmxlQ2xhc3MsIGlzQ29tcGFjdCwgc2V0dGluZ3NdKSA9PiB7XG4gICAgICAgIHRoaXMuI3VwZGF0ZUdyaWRUaGVtZShcbiAgICAgICAgICBoYXNFZGl0YWJsZUNsYXNzLFxuICAgICAgICAgIGlzQ29tcGFjdCxcbiAgICAgICAgICBzZXR0aW5ncz8uY3VycmVudFNldHRpbmdzLFxuICAgICAgICApO1xuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGNvbnN0IGFnR3JpZEVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkID1cbiAgICAgIHRoaXMuI2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCdhZy1ncmlkLWFuZ3VsYXInKTtcbiAgICBjb25zdCBjYWxsYmFjayA9ICgpOiB2b2lkID0+IHtcbiAgICAgIHRoaXMuI2hhc0VkaXRhYmxlQ2xhc3MubmV4dChcbiAgICAgICAgISFhZ0dyaWRFbGVtZW50Py5jbGFzc0xpc3QuY29udGFpbnMoJ3NreS1hZy1ncmlkLWVkaXRhYmxlJyksXG4gICAgICApO1xuICAgIH07XG4gICAgaWYgKGFnR3JpZEVsZW1lbnQpIHtcbiAgICAgIGNvbnN0IGFnR3JpZENsYXNzT2JzZXJ2ZXIgPVxuICAgICAgICB0aGlzLiNtdXRhdGlvbk9ic2VydmVyU2VydmljZS5jcmVhdGUoY2FsbGJhY2spO1xuICAgICAgYWdHcmlkQ2xhc3NPYnNlcnZlci5vYnNlcnZlKGFnR3JpZEVsZW1lbnQsIHtcbiAgICAgICAgYXR0cmlidXRlczogdHJ1ZSxcbiAgICAgICAgYXR0cmlidXRlRmlsdGVyOiBbJ2NsYXNzJ10sXG4gICAgICB9KTtcbiAgICAgIHRoaXMuI25nVW5zdWJzY3JpYmUucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICBhZ0dyaWRDbGFzc09ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICBjYWxsYmFjaygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFByZXZlbnQgY2xvc2luZyBhIG1vZGFsIHdoZW4gZm9jdXNlZCBpbiBBRyBHcmlkLlxuICAgKi9cbiAgcHVibGljIG9uS2V5VXBFc2NhcGUoJGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLmFnR3JpZD8uYXBpLnN0b3BFZGl0aW5nKHRydWUpO1xuICB9XG5cbiAgcHVibGljIG9uR3JpZEtleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5hZ0dyaWQgJiYgIXRoaXMuI2lzSW5FZGl0TW9kZSAmJiBldmVudC5rZXkgPT09ICdUYWInKSB7XG4gICAgICBjb25zdCBpZFRvRm9jdXMgPSBldmVudC5zaGlmdEtleVxuICAgICAgICA/IHRoaXMuYmVmb3JlQW5jaG9ySWRcbiAgICAgICAgOiB0aGlzLmFmdGVyQW5jaG9ySWQ7XG4gICAgICB0aGlzLiNhZGFwdGVyU2VydmljZS5zZXRGb2N1c2VkRWxlbWVudEJ5SWQoXG4gICAgICAgIHRoaXMuI2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgaWRUb0ZvY3VzLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25BbmNob3JGb2N1cyhldmVudDogRm9jdXNFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHJlbGF0ZWRUYXJnZXQgPSBldmVudC5yZWxhdGVkVGFyZ2V0IGFzIEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkO1xuICAgIGNvbnN0IHByZXZpb3VzV2FzR3JpZCA9XG4gICAgICByZWxhdGVkVGFyZ2V0ICYmIHRoaXMuI2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jb250YWlucyhyZWxhdGVkVGFyZ2V0KTtcblxuICAgIGlmICh0aGlzLmFnR3JpZCAmJiAhcHJldmlvdXNXYXNHcmlkKSB7XG4gICAgICB0aGlzLiNlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnRcbiAgICAgICAgLnF1ZXJ5U2VsZWN0b3IoJy5hZy10YWItZ3VhcmQuYWctdGFiLWd1YXJkLXRvcCcpXG4gICAgICAgID8uZm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICAjbW92ZUhvcml6b250YWxTY3JvbGwoKTogdm9pZCB7XG4gICAgY29uc3QgdG9Ub3AgPSAhIXRoaXMuYWdHcmlkPy5ncmlkT3B0aW9ucz8uY29udGV4dD8uZW5hYmxlVG9wU2Nyb2xsO1xuICAgIGNvbnN0IHJvb3QgPSB0aGlzLiNlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLmFnLXJvb3QnKTtcbiAgICBjb25zdCBoZWFkZXIgPSByb290Py5xdWVyeVNlbGVjdG9yKCcuYWctaGVhZGVyJyk7XG4gICAgY29uc3QgZmxvYXRpbmdCb3R0b20gPSByb290Py5xdWVyeVNlbGVjdG9yKCcuYWctZmxvYXRpbmctYm90dG9tJyk7XG4gICAgY29uc3Qgc2Nyb2xsYmFyID0gcm9vdD8ucXVlcnlTZWxlY3RvcignLmFnLWJvZHktaG9yaXpvbnRhbC1zY3JvbGwnKTtcbiAgICBpZiAocm9vdCAmJiBoZWFkZXIgJiYgZmxvYXRpbmdCb3R0b20gJiYgc2Nyb2xsYmFyKSB7XG4gICAgICBpZiAoXG4gICAgICAgIHNjcm9sbGJhci5zdHlsZS5oZWlnaHQgIT09XG4gICAgICAgIHNjcm9sbGJhci5zdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKFxuICAgICAgICAgICctLXNreS1hZy1ib2R5LWhvcml6b250YWwtc2Nyb2xsLXdpZHRoJyxcbiAgICAgICAgKVxuICAgICAgKSB7XG4gICAgICAgIHNjcm9sbGJhci5zdHlsZS5zZXRQcm9wZXJ0eShcbiAgICAgICAgICAnLS1za3ktYWctYm9keS1ob3Jpem9udGFsLXNjcm9sbC13aWR0aCcsXG4gICAgICAgICAgc2Nyb2xsYmFyLnN0eWxlLmhlaWdodCxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGlzVG9wID0gcm9vdC5jaGlsZHJlblsxXS5tYXRjaGVzKCcuYWctYm9keS1ob3Jpem9udGFsLXNjcm9sbCcpO1xuICAgICAgaWYgKHRvVG9wICYmICFpc1RvcCkge1xuICAgICAgICBjb25zdCBmcmFnbWVudCA9IHRoaXMuI2RvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTtcbiAgICAgICAgZnJhZ21lbnQuYXBwZW5kQ2hpbGQoc2Nyb2xsYmFyKTtcbiAgICAgICAgaGVhZGVyLmFmdGVyKGZyYWdtZW50KTtcbiAgICAgIH0gZWxzZSBpZiAoIXRvVG9wICYmIGlzVG9wKSB7XG4gICAgICAgIGNvbnN0IGZyYWdtZW50ID0gdGhpcy4jZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpO1xuICAgICAgICBmcmFnbWVudC5hcHBlbmRDaGlsZChzY3JvbGxiYXIpO1xuICAgICAgICBmbG9hdGluZ0JvdHRvbS5hZnRlcihmcmFnbWVudCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgI3VwZGF0ZUdyaWRUaGVtZShcbiAgICBoYXNFZGl0YWJsZUNsYXNzOiBib29sZWFuLFxuICAgIGlzQ29tcGFjdDogYm9vbGVhbixcbiAgICB0aGVtZVNldHRpbmdzPzogU2t5VGhlbWVTZXR0aW5ncyxcbiAgKTogdm9pZCB7XG4gICAgY29uc3QgYWdUaGVtZSA9IGFnR3JpZFRoZW1lKGhhc0VkaXRhYmxlQ2xhc3MsIHRoZW1lU2V0dGluZ3MsIGlzQ29tcGFjdCk7XG4gICAgY29uc3QgcHJldmlvdXNWYWx1ZSA9IHRoaXMuI3dyYXBwZXJDbGFzc2VzLmdldFZhbHVlKCk7XG4gICAgbGV0IHZhbHVlID0gW1xuICAgICAgLi4ucHJldmlvdXNWYWx1ZS5maWx0ZXIoKGMpID0+ICFjLnN0YXJ0c1dpdGgoJ2FnLXRoZW1lLScpKSxcbiAgICAgIGFnVGhlbWUsXG4gICAgXTtcbiAgICBjb25zdCB0ZXh0U2VsZWN0aW9uQ2xhc3MgPSAnc2t5LWFnLWdyaWQtdGV4dC1zZWxlY3Rpb24nO1xuICAgIGlmICh0aGlzLiNnZXRUZXh0U2VsZWN0aW9uKGhhc0VkaXRhYmxlQ2xhc3MpKSB7XG4gICAgICB2YWx1ZS5wdXNoKHRleHRTZWxlY3Rpb25DbGFzcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhbHVlID0gdmFsdWUuZmlsdGVyKChjKSA9PiBjICE9PSB0ZXh0U2VsZWN0aW9uQ2xhc3MpO1xuICAgIH1cbiAgICB0aGlzLiN3cmFwcGVyQ2xhc3Nlcy5uZXh0KFsuLi5uZXcgU2V0KHZhbHVlKV0pO1xuICB9XG5cbiAgI2dldFRleHRTZWxlY3Rpb24oaGFzRWRpdGFibGVDbGFzczogYm9vbGVhbik6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLmFnR3JpZD8uZ3JpZE9wdGlvbnM/LmNvbnRleHQ/LmVuYWJsZUNlbGxUZXh0U2VsZWN0aW9uKSB7XG4gICAgICByZXR1cm4gIWhhc0VkaXRhYmxlQ2xhc3M7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cbn1cbiIsIjxzcGFuXG4gIGNsYXNzPVwibmF2LWFuY2hvclwiXG4gIHRhYmluZGV4PVwiMFwiXG4gIFtpZF09XCJiZWZvcmVBbmNob3JJZFwiXG4gIChmb2N1c2luKT1cIm9uQW5jaG9yRm9jdXMoJGV2ZW50KVwiXG4+XG48L3NwYW4+XG48ZGl2XG4gIGNsYXNzPVwic2t5LWFnLWdyaWRcIlxuICB0YWJpbmRleD1cIjBcIlxuICBbY2xhc3Muc2t5LWFnLWdyaWQtdG9wLXNjcm9sbGJhcl09XCJcbiAgICBhZ0dyaWQ/LmdyaWRPcHRpb25zPy5jb250ZXh0ICYmXG4gICAgYWdHcmlkPy5ncmlkT3B0aW9ucz8uY29udGV4dFsnZW5hYmxlVG9wU2Nyb2xsJ11cbiAgXCJcbiAgW25nQ2xhc3NdPVwid3JhcHBlckNsYXNzZXMkIHwgYXN5bmNcIlxuICBbaWRdPVwiZ3JpZElkXCJcbiAgW3NreVZpZXdrZWVwZXJdPVwidmlld2tlZXBlckNsYXNzZXNcIlxuICAoa2V5ZG93bik9XCJvbkdyaWRLZXlkb3duKCRldmVudClcIlxuICAoa2V5dXAuZXNjYXBlKT1cIm9uS2V5VXBFc2NhcGUoJGV2ZW50KVwiXG4+XG4gIDxuZy1jb250ZW50IC8+XG48L2Rpdj5cbjxzcGFuXG4gIHRhYmluZGV4PVwiMFwiXG4gIGNsYXNzPVwibmF2LWFuY2hvclwiXG4gIFtpZF09XCJhZnRlckFuY2hvcklkXCJcbiAgKGZvY3VzaW4pPVwib25BbmNob3JGb2N1cygkZXZlbnQpXCJcbj5cbjwvc3Bhbj5cbiJdfQ==
|