ngx-bootstrap 3.1.3 → 3.1.4
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/CHANGELOG.md +67 -0
- package/CONTRIBUTING.md +1 -1
- package/README.md +5 -5
- package/accordion/package.json +1 -1
- package/alert/package.json +1 -1
- package/bundles/ngx-bootstrap.es2015.js +117 -23
- package/bundles/ngx-bootstrap.es2015.js.map +1 -1
- package/buttons/package.json +1 -1
- package/carousel/package.json +1 -1
- package/chronos/package.json +1 -1
- package/collapse/package.json +1 -1
- package/component-loader/bundles/ngx-bootstrap-component-loader.umd.js +10 -1
- package/component-loader/bundles/ngx-bootstrap-component-loader.umd.js.map +1 -1
- package/component-loader/bundles/ngx-bootstrap-component-loader.umd.min.js +1 -1
- package/component-loader/bundles/ngx-bootstrap-component-loader.umd.min.js.map +1 -1
- package/component-loader/esm2015/component-loader.class.js +11 -2
- package/component-loader/esm2015/listen-options.model.js +3 -1
- package/component-loader/esm5/component-loader.class.js +11 -2
- package/component-loader/esm5/listen-options.model.js +3 -1
- package/component-loader/fesm2015/ngx-bootstrap-component-loader.js +11 -2
- package/component-loader/fesm2015/ngx-bootstrap-component-loader.js.map +1 -1
- package/component-loader/fesm5/ngx-bootstrap-component-loader.js +11 -2
- package/component-loader/fesm5/ngx-bootstrap-component-loader.js.map +1 -1
- package/component-loader/listen-options.model.d.ts +1 -0
- package/component-loader/ngx-bootstrap-component-loader.metadata.json +1 -1
- package/component-loader/package.json +1 -1
- package/datepicker/bs-datepicker.component.d.ts +1 -0
- package/datepicker/bs-datepicker.config.d.ts +4 -0
- package/datepicker/bs-datepicker.css +5 -6
- package/datepicker/bs-datepicker.css.map +2 -2
- package/datepicker/bs-datepicker.module.d.ts +0 -1
- package/datepicker/bs-datepicker.scss +7 -8
- package/datepicker/bs-daterangepicker.component.d.ts +1 -0
- package/datepicker/bundles/ngx-bootstrap-datepicker.umd.js +42 -9
- package/datepicker/bundles/ngx-bootstrap-datepicker.umd.js.map +1 -1
- package/datepicker/bundles/ngx-bootstrap-datepicker.umd.min.js +1 -1
- package/datepicker/bundles/ngx-bootstrap-datepicker.umd.min.js.map +1 -1
- package/datepicker/esm2015/bs-datepicker-input.directive.js +2 -1
- package/datepicker/esm2015/bs-datepicker.component.js +6 -1
- package/datepicker/esm2015/bs-datepicker.config.js +6 -1
- package/datepicker/esm2015/bs-datepicker.module.js +1 -9
- package/datepicker/esm2015/bs-daterangepicker-input.directive.js +9 -4
- package/datepicker/esm2015/bs-daterangepicker.component.js +6 -1
- package/datepicker/esm2015/engine/flag-days-calendar.js +5 -2
- package/datepicker/esm2015/models/index.js +3 -1
- package/datepicker/esm2015/themes/bs/bs-datepicker-day-decorator.directive.js +32 -2
- package/datepicker/esm5/bs-datepicker-input.directive.js +2 -1
- package/datepicker/esm5/bs-datepicker.component.js +6 -1
- package/datepicker/esm5/bs-datepicker.config.js +6 -1
- package/datepicker/esm5/bs-datepicker.module.js +1 -5
- package/datepicker/esm5/bs-daterangepicker-input.directive.js +9 -4
- package/datepicker/esm5/bs-daterangepicker.component.js +6 -1
- package/datepicker/esm5/engine/flag-days-calendar.js +5 -2
- package/datepicker/esm5/models/index.js +3 -1
- package/datepicker/esm5/themes/bs/bs-datepicker-day-decorator.directive.js +29 -3
- package/datepicker/fesm2015/ngx-bootstrap-datepicker.js +44 -13
- package/datepicker/fesm2015/ngx-bootstrap-datepicker.js.map +1 -1
- package/datepicker/fesm5/ngx-bootstrap-datepicker.js +41 -10
- package/datepicker/fesm5/ngx-bootstrap-datepicker.js.map +1 -1
- package/datepicker/models/index.d.ts +1 -0
- package/datepicker/ngx-bootstrap-datepicker.metadata.json +1 -1
- package/datepicker/package.json +1 -1
- package/datepicker/themes/bs/bs-datepicker-day-decorator.directive.d.ts +8 -1
- package/dropdown/bundles/ngx-bootstrap-dropdown.umd.js +3 -1
- package/dropdown/bundles/ngx-bootstrap-dropdown.umd.js.map +1 -1
- package/dropdown/bundles/ngx-bootstrap-dropdown.umd.min.js +1 -1
- package/dropdown/bundles/ngx-bootstrap-dropdown.umd.min.js.map +1 -1
- package/dropdown/esm2015/bs-dropdown.directive.js +3 -1
- package/dropdown/esm5/bs-dropdown.directive.js +3 -1
- package/dropdown/fesm2015/ngx-bootstrap-dropdown.js +3 -1
- package/dropdown/fesm2015/ngx-bootstrap-dropdown.js.map +1 -1
- package/dropdown/fesm5/ngx-bootstrap-dropdown.js +3 -1
- package/dropdown/fesm5/ngx-bootstrap-dropdown.js.map +1 -1
- package/dropdown/package.json +1 -1
- package/locale/package.json +1 -1
- package/mini-ngrx/package.json +1 -1
- package/modal/package.json +1 -1
- package/package.json +2 -2
- package/pagination/package.json +1 -1
- package/popover/bundles/ngx-bootstrap-popover.umd.js +2 -2
- package/popover/bundles/ngx-bootstrap-popover.umd.js.map +1 -1
- package/popover/bundles/ngx-bootstrap-popover.umd.min.js +1 -1
- package/popover/bundles/ngx-bootstrap-popover.umd.min.js.map +1 -1
- package/popover/esm2015/popover-container.component.js +3 -3
- package/popover/esm5/popover-container.component.js +2 -2
- package/popover/fesm2015/ngx-bootstrap-popover.js +3 -3
- package/popover/fesm2015/ngx-bootstrap-popover.js.map +1 -1
- package/popover/fesm5/ngx-bootstrap-popover.js +2 -2
- package/popover/fesm5/ngx-bootstrap-popover.js.map +1 -1
- package/popover/ngx-bootstrap-popover.metadata.json +1 -1
- package/popover/package.json +1 -1
- package/positioning/package.json +1 -1
- package/progressbar/package.json +1 -1
- package/rating/package.json +1 -1
- package/sortable/package.json +1 -1
- package/tabs/package.json +1 -1
- package/timepicker/package.json +1 -1
- package/tooltip/bundles/ngx-bootstrap-tooltip.umd.js +10 -4
- package/tooltip/bundles/ngx-bootstrap-tooltip.umd.js.map +1 -1
- package/tooltip/bundles/ngx-bootstrap-tooltip.umd.min.js +1 -1
- package/tooltip/bundles/ngx-bootstrap-tooltip.umd.min.js.map +1 -1
- package/tooltip/esm2015/tooltip-container.component.js +6 -3
- package/tooltip/esm2015/tooltip.directive.js +13 -4
- package/tooltip/esm5/tooltip-container.component.js +5 -2
- package/tooltip/esm5/tooltip.directive.js +13 -4
- package/tooltip/fesm2015/ngx-bootstrap-tooltip.js +12 -6
- package/tooltip/fesm2015/ngx-bootstrap-tooltip.js.map +1 -1
- package/tooltip/fesm5/ngx-bootstrap-tooltip.js +11 -5
- package/tooltip/fesm5/ngx-bootstrap-tooltip.js.map +1 -1
- package/tooltip/ngx-bootstrap-tooltip.metadata.json +1 -1
- package/tooltip/package.json +1 -1
- package/tooltip/tooltip-container.component.d.ts +1 -0
- package/tooltip/tooltip.directive.d.ts +2 -0
- package/typeahead/bundles/ngx-bootstrap-typeahead.umd.js +35 -7
- package/typeahead/bundles/ngx-bootstrap-typeahead.umd.js.map +1 -1
- package/typeahead/bundles/ngx-bootstrap-typeahead.umd.min.js +1 -1
- package/typeahead/bundles/ngx-bootstrap-typeahead.umd.min.js.map +1 -1
- package/typeahead/esm2015/ngx-bootstrap-typeahead.js +2 -2
- package/typeahead/esm2015/public_api.js +2 -1
- package/typeahead/esm2015/typeahead.config.js +35 -0
- package/typeahead/esm2015/typeahead.directive.js +21 -7
- package/typeahead/esm2015/typeahead.module.js +3 -2
- package/typeahead/esm5/ngx-bootstrap-typeahead.js +2 -2
- package/typeahead/esm5/public_api.js +2 -1
- package/typeahead/esm5/typeahead.config.js +37 -0
- package/typeahead/esm5/typeahead.directive.js +20 -7
- package/typeahead/esm5/typeahead.module.js +3 -2
- package/typeahead/fesm2015/ngx-bootstrap-typeahead.js +37 -10
- package/typeahead/fesm2015/ngx-bootstrap-typeahead.js.map +1 -1
- package/typeahead/fesm5/ngx-bootstrap-typeahead.js +37 -10
- package/typeahead/fesm5/ngx-bootstrap-typeahead.js.map +1 -1
- package/typeahead/ngx-bootstrap-typeahead.metadata.json +1 -1
- package/typeahead/package.json +1 -1
- package/typeahead/public_api.d.ts +1 -0
- package/typeahead/typeahead.config.d.ts +5 -0
- package/typeahead/typeahead.directive.d.ts +4 -1
- package/utils/bundles/ngx-bootstrap-utils.umd.js +22 -1
- package/utils/bundles/ngx-bootstrap-utils.umd.js.map +1 -1
- package/utils/bundles/ngx-bootstrap-utils.umd.min.js +1 -1
- package/utils/bundles/ngx-bootstrap-utils.umd.min.js.map +1 -1
- package/utils/esm2015/ngx-bootstrap-utils.js +2 -2
- package/utils/esm2015/public_api.js +2 -2
- package/utils/esm2015/triggers.js +23 -1
- package/utils/esm5/ngx-bootstrap-utils.js +2 -2
- package/utils/esm5/public_api.js +2 -2
- package/utils/esm5/triggers.js +23 -1
- package/utils/fesm2015/ngx-bootstrap-utils.js +22 -2
- package/utils/fesm2015/ngx-bootstrap-utils.js.map +1 -1
- package/utils/fesm5/ngx-bootstrap-utils.js +22 -2
- package/utils/fesm5/ngx-bootstrap-utils.js.map +1 -1
- package/utils/ngx-bootstrap-utils.metadata.json +1 -1
- package/utils/package.json +1 -1
- package/utils/public_api.d.ts +1 -1
- package/utils/triggers.d.ts +2 -0
package/buttons/package.json
CHANGED
package/carousel/package.json
CHANGED
package/chronos/package.json
CHANGED
package/collapse/package.json
CHANGED
@@ -259,6 +259,7 @@
|
|
259
259
|
var _this = this;
|
260
260
|
this.triggers = listenOpts.triggers || this.triggers;
|
261
261
|
this._listenOpts.outsideClick = listenOpts.outsideClick;
|
262
|
+
this._listenOpts.outsideEsc = listenOpts.outsideEsc;
|
262
263
|
listenOpts.target = listenOpts.target || this._elementRef.nativeElement;
|
263
264
|
var /** @type {?} */ hide = (this._listenOpts.hide = function () {
|
264
265
|
return listenOpts.hide ? listenOpts.hide() : void _this.hide();
|
@@ -329,6 +330,14 @@
|
|
329
330
|
});
|
330
331
|
});
|
331
332
|
}
|
333
|
+
if (this._listenOpts.outsideEsc) {
|
334
|
+
var /** @type {?} */ target = this._componentRef.location.nativeElement;
|
335
|
+
this._globalListener = utils.registerEscClick(this._renderer, {
|
336
|
+
targets: [target, this._elementRef.nativeElement],
|
337
|
+
outsideEsc: this._listenOpts.outsideEsc,
|
338
|
+
hide: function () { return _this._listenOpts.hide(); }
|
339
|
+
});
|
340
|
+
}
|
332
341
|
};
|
333
342
|
/**
|
334
343
|
* @return {?}
|
@@ -496,4 +505,4 @@
|
|
496
505
|
|
497
506
|
})));
|
498
507
|
|
499
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWJvb3RzdHJhcC1jb21wb25lbnQtbG9hZGVyLnVtZC5qcy5tYXAiLCJzb3VyY2VzIjpbIm5nOi8vbmd4LWJvb3RzdHJhcC9jb21wb25lbnQtbG9hZGVyL2JzLWNvbXBvbmVudC1yZWYuY2xhc3MudHMiLCJuZzovL25neC1ib290c3RyYXAvY29tcG9uZW50LWxvYWRlci9jb250ZW50LXJlZi5jbGFzcy50cyIsIm5nOi8vbmd4LWJvb3RzdHJhcC9jb21wb25lbnQtbG9hZGVyL2NvbXBvbmVudC1sb2FkZXIuY2xhc3MudHMiLCJuZzovL25neC1ib290c3RyYXAvY29tcG9uZW50LWxvYWRlci9jb21wb25lbnQtbG9hZGVyLmZhY3RvcnkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGVtcGxhdGVSZWYsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGNsYXNzIEJzQ29tcG9uZW50UmVmPFQ+IHtcbiAgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPFQ+O1xuICB2aWV3Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmO1xufVxuIiwiLyoqXG4gKiBAY29weXJpZ2h0IFZhbG9yIFNvZnR3YXJlXG4gKiBAY29weXJpZ2h0IEFuZ3VsYXIgbmctYm9vdHN0cmFwIHRlYW1cbiAqL1xuXG5pbXBvcnQgeyBDb21wb25lbnRSZWYsIFZpZXdSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGNsYXNzIENvbnRlbnRSZWYge1xuICAvKiB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG5vLWFueSAqL1xuICBub2RlczogYW55W107XG4gIHZpZXdSZWY/OiBWaWV3UmVmO1xuICAvKiB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG5vLWFueSAqL1xuICBjb21wb25lbnRSZWY/OiBDb21wb25lbnRSZWY8YW55PjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICAvKiB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG5vLWFueSAqL1xuICAgIG5vZGVzOiBhbnlbXSxcbiAgICB2aWV3UmVmPzogVmlld1JlZixcbiAgICAvKiB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG5vLWFueSAqL1xuICAgIGNvbXBvbmVudFJlZj86IENvbXBvbmVudFJlZjxhbnk+XG4gICkge1xuICAgIHRoaXMubm9kZXMgPSBub2RlcztcbiAgICB0aGlzLnZpZXdSZWYgPSB2aWV3UmVmO1xuICAgIHRoaXMuY29tcG9uZW50UmVmID0gY29tcG9uZW50UmVmO1xuICB9XG59XG4iLCIvLyB0c2xpbnQ6ZGlzYWJsZTptYXgtZmlsZS1saW5lLWNvdW50XG4vLyB0b2RvOiBhZGQgZGVsYXkgc3VwcG9ydFxuLy8gdG9kbzogbWVyZ2UgZXZlbnRzIG9uU2hvdywgb25TaG93biwgZXRjLi4uXG4vLyB0b2RvOiBhZGQgZ2xvYmFsIHBvc2l0aW9uaW5nIGNvbmZpZ3VyYXRpb24/XG5pbXBvcnQge1xuICBBcHBsaWNhdGlvblJlZixcbiAgQ29tcG9uZW50RmFjdG9yeSxcbiAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICBDb21wb25lbnRSZWYsXG4gIEVsZW1lbnRSZWYsXG4gIEVtYmVkZGVkVmlld1JlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbmplY3RvcixcbiAgTmdab25lLFxuICBSZW5kZXJlcjIsXG4gIFN0YXRpY1Byb3ZpZGVyLFxuICBUZW1wbGF0ZVJlZixcbiAgVHlwZSxcbiAgVmlld0NvbnRhaW5lclJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFBvc2l0aW9uaW5nT3B0aW9ucywgUG9zaXRpb25pbmdTZXJ2aWNlIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9wb3NpdGlvbmluZyc7XG5pbXBvcnQgeyBsaXN0ZW5Ub1RyaWdnZXJzVjIsIHJlZ2lzdGVyT3V0c2lkZUNsaWNrIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC91dGlscyc7XG5pbXBvcnQgeyBDb250ZW50UmVmIH0gZnJvbSAnLi9jb250ZW50LXJlZi5jbGFzcyc7XG5pbXBvcnQgeyBMaXN0ZW5PcHRpb25zIH0gZnJvbSAnLi9saXN0ZW4tb3B0aW9ucy5tb2RlbCc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuZXhwb3J0IGNsYXNzIENvbXBvbmVudExvYWRlcjxUPiB7XG4gIG9uQmVmb3JlU2hvdzogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAvKiB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG5vLWFueSovXG4gIG9uU2hvd246IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAvKiB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG5vLWFueSovXG4gIG9uQmVmb3JlSGlkZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIG9uSGlkZGVuOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgaW5zdGFuY2U6IFQ7XG4gIF9jb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxUPjtcbiAgX2lubGluZVZpZXdSZWY6IEVtYmVkZGVkVmlld1JlZjxUPjtcblxuICBwcml2YXRlIF9wcm92aWRlcnM6IFN0YXRpY1Byb3ZpZGVyW10gPSBbXTtcbiAgcHJpdmF0ZSBfY29tcG9uZW50RmFjdG9yeTogQ29tcG9uZW50RmFjdG9yeTxUPjtcbiAgcHJpdmF0ZSBfem9uZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIF9jb250ZW50UmVmOiBDb250ZW50UmVmO1xuICBwcml2YXRlIF9pbm5lckNvbXBvbmVudDogQ29tcG9uZW50UmVmPFQ+O1xuXG4gIHByaXZhdGUgX3VucmVnaXN0ZXJMaXN0ZW5lcnNGbjogRnVuY3Rpb247XG5cbiAgZ2V0IGlzU2hvd24oKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuX2lzSGlkaW5nKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuICEhdGhpcy5fY29tcG9uZW50UmVmO1xuICB9XG5cbiAgcHJpdmF0ZSBfaXNIaWRpbmcgPSBmYWxzZTtcblxuICAvKipcbiAgICogUGxhY2VtZW50IG9mIGEgY29tcG9uZW50LiBBY2NlcHRzOiBcInRvcFwiLCBcImJvdHRvbVwiLCBcImxlZnRcIiwgXCJyaWdodFwiXG4gICAqL1xuICBwcml2YXRlIGF0dGFjaG1lbnQ6IHN0cmluZztcblxuICAvKipcbiAgICogQSBzZWxlY3RvciBzcGVjaWZ5aW5nIHRoZSBlbGVtZW50IHRoZSBwb3BvdmVyIHNob3VsZCBiZSBhcHBlbmRlZCB0by5cbiAgICogQ3VycmVudGx5IG9ubHkgc3VwcG9ydHMgXCJib2R5XCIuXG4gICAqL1xuICAvKiB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG5vLWFueSovXG4gIHByaXZhdGUgY29udGFpbmVyOiBzdHJpbmcgfCBFbGVtZW50UmVmIHwgYW55O1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgZXZlbnRzIHRoYXQgc2hvdWxkIHRyaWdnZXIuIFN1cHBvcnRzIGEgc3BhY2Ugc2VwYXJhdGVkIGxpc3Qgb2ZcbiAgICogZXZlbnQgbmFtZXMuXG4gICAqL1xuICBwcml2YXRlIHRyaWdnZXJzOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBfbGlzdGVuT3B0czogTGlzdGVuT3B0aW9ucyA9IHt9O1xuICBwcml2YXRlIF9nbG9iYWxMaXN0ZW5lciA9IEZ1bmN0aW9uLnByb3RvdHlwZTtcblxuICAvKipcbiAgICogRG8gbm90IHVzZSB0aGlzIGRpcmVjdGx5LCBpdCBzaG91bGQgYmUgaW5zdGFuY2VkIHZpYVxuICAgKiBgQ29tcG9uZW50TG9hZEZhY3RvcnkuYXR0YWNoYFxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZVxuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICBwcml2YXRlIF9yZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSBfaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIHByaXZhdGUgX2NvbXBvbmVudEZhY3RvcnlSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgIHByaXZhdGUgX25nWm9uZTogTmdab25lLFxuICAgIHByaXZhdGUgX2FwcGxpY2F0aW9uUmVmOiBBcHBsaWNhdGlvblJlZixcbiAgICBwcml2YXRlIF9wb3NTZXJ2aWNlOiBQb3NpdGlvbmluZ1NlcnZpY2VcbiAgKSB7fVxuXG4gIGF0dGFjaChjb21wVHlwZTogVHlwZTxUPik6IENvbXBvbmVudExvYWRlcjxUPiB7XG4gICAgdGhpcy5fY29tcG9uZW50RmFjdG9yeSA9IHRoaXMuX2NvbXBvbmVudEZhY3RvcnlSZXNvbHZlclxuICAgICAgLnJlc29sdmVDb21wb25lbnRGYWN0b3J5PFQ+KGNvbXBUeXBlKTtcblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLy8gdG9kbzogYWRkIGJlaGF2aW91cjogdG8gdGFyZ2V0IGVsZW1lbnQsIGBib2R5YCwgY3VzdG9tIGVsZW1lbnRcbiAgdG8oY29udGFpbmVyPzogc3RyaW5nKTogQ29tcG9uZW50TG9hZGVyPFQ+IHtcbiAgICB0aGlzLmNvbnRhaW5lciA9IGNvbnRhaW5lciB8fCB0aGlzLmNvbnRhaW5lcjtcblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcG9zaXRpb24ob3B0cz86IFBvc2l0aW9uaW5nT3B0aW9ucyk6IENvbXBvbmVudExvYWRlcjxUPiB7XG4gICAgdGhpcy5hdHRhY2htZW50ID0gb3B0cy5hdHRhY2htZW50IHx8IHRoaXMuYXR0YWNobWVudDtcbiAgICB0aGlzLl9lbGVtZW50UmVmID0gKG9wdHMudGFyZ2V0IGFzIEVsZW1lbnRSZWYpIHx8IHRoaXMuX2VsZW1lbnRSZWY7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHByb3ZpZGUocHJvdmlkZXI6IFN0YXRpY1Byb3ZpZGVyKTogQ29tcG9uZW50TG9hZGVyPFQ+IHtcbiAgICB0aGlzLl9wcm92aWRlcnMucHVzaChwcm92aWRlcik7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8vIHRvZG86IGFwcGVuZENoaWxkIHRvIGVsZW1lbnQgb3IgZG9jdW1lbnQucXVlcnlTZWxlY3Rvcih0aGlzLmNvbnRhaW5lcilcblxuICBzaG93KG9wdHM6IHtcbiAgICAvKiB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG5vLWFueSovXG4gICAgY29udGVudD86IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT47XG4gICAgLyogdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBuby1hbnkqL1xuICAgIGNvbnRleHQ/OiBhbnk7XG4gICAgLyogdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBuby1hbnkqL1xuICAgIGluaXRpYWxTdGF0ZT86IGFueTtcbiAgICAvKiB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG5vLWFueSovXG4gICAgW2tleTogc3RyaW5nXTogYW55O1xuICB9ID0ge31cbiAgKTogQ29tcG9uZW50UmVmPFQ+IHtcblxuICAgIHRoaXMuX3N1YnNjcmliZVBvc2l0aW9uaW5nKCk7XG4gICAgdGhpcy5faW5uZXJDb21wb25lbnQgPSBudWxsO1xuXG4gICAgaWYgKCF0aGlzLl9jb21wb25lbnRSZWYpIHtcbiAgICAgIHRoaXMub25CZWZvcmVTaG93LmVtaXQoKTtcbiAgICAgIHRoaXMuX2NvbnRlbnRSZWYgPSB0aGlzLl9nZXRDb250ZW50UmVmKG9wdHMuY29udGVudCwgb3B0cy5jb250ZXh0LCBvcHRzLmluaXRpYWxTdGF0ZSk7XG5cbiAgICAgIGNvbnN0IGluamVjdG9yID0gSW5qZWN0b3IuY3JlYXRlKHtcbiAgICAgICAgcHJvdmlkZXJzOiB0aGlzLl9wcm92aWRlcnMsXG4gICAgICAgIHBhcmVudDogdGhpcy5faW5qZWN0b3JcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLl9jb21wb25lbnRSZWYgPSB0aGlzLl9jb21wb25lbnRGYWN0b3J5LmNyZWF0ZShpbmplY3RvciwgdGhpcy5fY29udGVudFJlZi5ub2Rlcyk7XG4gICAgICB0aGlzLl9hcHBsaWNhdGlvblJlZi5hdHRhY2hWaWV3KHRoaXMuX2NvbXBvbmVudFJlZi5ob3N0Vmlldyk7XG4gICAgICAvLyB0aGlzLl9jb21wb25lbnRSZWYgPSB0aGlzLl92aWV3Q29udGFpbmVyUmVmXG4gICAgICAvLyAgIC5jcmVhdGVDb21wb25lbnQodGhpcy5fY29tcG9uZW50RmFjdG9yeSwgMCwgaW5qZWN0b3IsIHRoaXMuX2NvbnRlbnRSZWYubm9kZXMpO1xuICAgICAgdGhpcy5pbnN0YW5jZSA9IHRoaXMuX2NvbXBvbmVudFJlZi5pbnN0YW5jZTtcblxuICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLl9jb21wb25lbnRSZWYuaW5zdGFuY2UsIG9wdHMpO1xuXG4gICAgICBpZiAodGhpcy5jb250YWluZXIgaW5zdGFuY2VvZiBFbGVtZW50UmVmKSB7XG4gICAgICAgIHRoaXMuY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuYXBwZW5kQ2hpbGQoXG4gICAgICAgICAgdGhpcy5fY29tcG9uZW50UmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnRcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuY29udGFpbmVyID09PSAnYm9keScgJiYgdHlwZW9mIGRvY3VtZW50ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICBkb2N1bWVudFxuICAgICAgICAgIC5xdWVyeVNlbGVjdG9yKHRoaXMuY29udGFpbmVyIGFzIHN0cmluZylcbiAgICAgICAgICAuYXBwZW5kQ2hpbGQodGhpcy5fY29tcG9uZW50UmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgfVxuXG4gICAgICBpZiAoXG4gICAgICAgICF0aGlzLmNvbnRhaW5lciAmJlxuICAgICAgICB0aGlzLl9lbGVtZW50UmVmICYmXG4gICAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50XG4gICAgICApIHtcbiAgICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQuYXBwZW5kQ2hpbGQoXG4gICAgICAgICAgdGhpcy5fY29tcG9uZW50UmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnRcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgLy8gd2UgbmVlZCB0byBtYW51YWxseSBpbnZva2UgY2hhbmdlIGRldGVjdGlvbiBzaW5jZSBldmVudHMgcmVnaXN0ZXJlZFxuICAgICAgLy8gdmlhXG4gICAgICAvLyBSZW5kZXJlcjo6bGlzdGVuKCkgYXJlIG5vdCBwaWNrZWQgdXAgYnkgY2hhbmdlIGRldGVjdGlvbiB3aXRoIHRoZVxuICAgICAgLy8gT25QdXNoIHN0cmF0ZWd5XG4gICAgICBpZiAodGhpcy5fY29udGVudFJlZi5jb21wb25lbnRSZWYpIHtcbiAgICAgICAgdGhpcy5faW5uZXJDb21wb25lbnQgPSB0aGlzLl9jb250ZW50UmVmLmNvbXBvbmVudFJlZi5pbnN0YW5jZTtcbiAgICAgICAgdGhpcy5fY29udGVudFJlZi5jb21wb25lbnRSZWYuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIHRoaXMuX2NvbnRlbnRSZWYuY29tcG9uZW50UmVmLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuX2NvbXBvbmVudFJlZi5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIHRoaXMuX2NvbXBvbmVudFJlZi5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB0aGlzLm9uU2hvd24uZW1pdCh0aGlzLl9jb21wb25lbnRSZWYuaW5zdGFuY2UpO1xuICAgIH1cblxuICAgIHRoaXMuX3JlZ2lzdGVyT3V0c2lkZUNsaWNrKCk7XG5cbiAgICByZXR1cm4gdGhpcy5fY29tcG9uZW50UmVmO1xuICB9XG5cbiAgaGlkZSgpOiBDb21wb25lbnRMb2FkZXI8VD4ge1xuICAgIGlmICghdGhpcy5fY29tcG9uZW50UmVmKSB7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICB0aGlzLm9uQmVmb3JlSGlkZS5lbWl0KHRoaXMuX2NvbXBvbmVudFJlZi5pbnN0YW5jZSk7XG5cbiAgICBjb25zdCBjb21wb25lbnRFbCA9IHRoaXMuX2NvbXBvbmVudFJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50O1xuICAgIGNvbXBvbmVudEVsLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoY29tcG9uZW50RWwpO1xuICAgIGlmICh0aGlzLl9jb250ZW50UmVmLmNvbXBvbmVudFJlZikge1xuICAgICAgdGhpcy5fY29udGVudFJlZi5jb21wb25lbnRSZWYuZGVzdHJveSgpO1xuICAgIH1cbiAgICB0aGlzLl9jb21wb25lbnRSZWYuZGVzdHJveSgpO1xuICAgIGlmICh0aGlzLl92aWV3Q29udGFpbmVyUmVmICYmIHRoaXMuX2NvbnRlbnRSZWYudmlld1JlZikge1xuICAgICAgdGhpcy5fdmlld0NvbnRhaW5lclJlZi5yZW1vdmUoXG4gICAgICAgIHRoaXMuX3ZpZXdDb250YWluZXJSZWYuaW5kZXhPZih0aGlzLl9jb250ZW50UmVmLnZpZXdSZWYpXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAodGhpcy5fY29udGVudFJlZi52aWV3UmVmKSB7XG4gICAgICB0aGlzLl9jb250ZW50UmVmLnZpZXdSZWYuZGVzdHJveSgpO1xuICAgIH1cblxuICAgIHRoaXMuX2NvbnRlbnRSZWYgPSBudWxsO1xuICAgIHRoaXMuX2NvbXBvbmVudFJlZiA9IG51bGw7XG4gICAgdGhpcy5fcmVtb3ZlR2xvYmFsTGlzdGVuZXIoKTtcblxuICAgIHRoaXMub25IaWRkZW4uZW1pdCgpO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICB0b2dnbGUoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNTaG93bikge1xuICAgICAgdGhpcy5oaWRlKCk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnNob3coKTtcbiAgfVxuXG4gIGRpc3Bvc2UoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNTaG93bikge1xuICAgICAgdGhpcy5oaWRlKCk7XG4gICAgfVxuXG4gICAgdGhpcy5fdW5zdWJzY3JpYmVQb3NpdGlvbmluZygpO1xuXG4gICAgaWYgKHRoaXMuX3VucmVnaXN0ZXJMaXN0ZW5lcnNGbikge1xuICAgICAgdGhpcy5fdW5yZWdpc3Rlckxpc3RlbmVyc0ZuKCk7XG4gICAgfVxuICB9XG5cbiAgbGlzdGVuKGxpc3Rlbk9wdHM6IExpc3Rlbk9wdGlvbnMpOiBDb21wb25lbnRMb2FkZXI8VD4ge1xuICAgIHRoaXMudHJpZ2dlcnMgPSBsaXN0ZW5PcHRzLnRyaWdnZXJzIHx8IHRoaXMudHJpZ2dlcnM7XG4gICAgdGhpcy5fbGlzdGVuT3B0cy5vdXRzaWRlQ2xpY2sgPSBsaXN0ZW5PcHRzLm91dHNpZGVDbGljaztcbiAgICBsaXN0ZW5PcHRzLnRhcmdldCA9IGxpc3Rlbk9wdHMudGFyZ2V0IHx8IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcblxuICAgIGNvbnN0IGhpZGUgPSAodGhpcy5fbGlzdGVuT3B0cy5oaWRlID0gKCkgPT5cbiAgICAgIGxpc3Rlbk9wdHMuaGlkZSA/IGxpc3Rlbk9wdHMuaGlkZSgpIDogdm9pZCB0aGlzLmhpZGUoKSk7XG4gICAgY29uc3Qgc2hvdyA9ICh0aGlzLl9saXN0ZW5PcHRzLnNob3cgPSAocmVnaXN0ZXJIaWRlOiBGdW5jdGlvbikgPT4ge1xuICAgICAgbGlzdGVuT3B0cy5zaG93ID8gbGlzdGVuT3B0cy5zaG93KHJlZ2lzdGVySGlkZSkgOiB0aGlzLnNob3cocmVnaXN0ZXJIaWRlKTtcbiAgICAgIHJlZ2lzdGVySGlkZSgpO1xuICAgIH0pO1xuXG4gICAgY29uc3QgdG9nZ2xlID0gKHJlZ2lzdGVySGlkZTogRnVuY3Rpb24pID0+IHtcbiAgICAgIHRoaXMuaXNTaG93biA/IGhpZGUoKSA6IHNob3cocmVnaXN0ZXJIaWRlKTtcbiAgICB9O1xuXG4gICAgdGhpcy5fdW5yZWdpc3Rlckxpc3RlbmVyc0ZuID0gbGlzdGVuVG9UcmlnZ2Vyc1YyKHRoaXMuX3JlbmRlcmVyLCB7XG4gICAgICB0YXJnZXQ6IGxpc3Rlbk9wdHMudGFyZ2V0LFxuICAgICAgdHJpZ2dlcnM6IGxpc3Rlbk9wdHMudHJpZ2dlcnMsXG4gICAgICBzaG93LFxuICAgICAgaGlkZSxcbiAgICAgIHRvZ2dsZVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBfcmVtb3ZlR2xvYmFsTGlzdGVuZXIoKSB7XG4gICAgaWYgKHRoaXMuX2dsb2JhbExpc3RlbmVyKSB7XG4gICAgICB0aGlzLl9nbG9iYWxMaXN0ZW5lcigpO1xuICAgICAgdGhpcy5fZ2xvYmFsTGlzdGVuZXIgPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIGF0dGFjaElubGluZShcbiAgICB2UmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgIC8qIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8tYW55Ki9cbiAgICB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PlxuICApOiBDb21wb25lbnRMb2FkZXI8VD4ge1xuICAgIHRoaXMuX2lubGluZVZpZXdSZWYgPSB2UmVmLmNyZWF0ZUVtYmVkZGVkVmlldyh0ZW1wbGF0ZSk7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIF9yZWdpc3Rlck91dHNpZGVDbGljaygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX2NvbXBvbmVudFJlZiB8fCAhdGhpcy5fY29tcG9uZW50UmVmLmxvY2F0aW9uKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIC8vIHdoeTogc2hvdWxkIHJ1biBhZnRlciBmaXJzdCBldmVudCBidWJibGVcbiAgICBpZiAodGhpcy5fbGlzdGVuT3B0cy5vdXRzaWRlQ2xpY2spIHtcbiAgICAgIGNvbnN0IHRhcmdldCA9IHRoaXMuX2NvbXBvbmVudFJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50O1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuX2dsb2JhbExpc3RlbmVyID0gcmVnaXN0ZXJPdXRzaWRlQ2xpY2sodGhpcy5fcmVuZGVyZXIsIHtcbiAgICAgICAgICB0YXJnZXRzOiBbdGFyZ2V0LCB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnRdLFxuICAgICAgICAgIG91dHNpZGVDbGljazogdGhpcy5fbGlzdGVuT3B0cy5vdXRzaWRlQ2xpY2ssXG4gICAgICAgICAgaGlkZTogKCkgPT4gdGhpcy5fbGlzdGVuT3B0cy5oaWRlKClcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBnZXRJbm5lckNvbXBvbmVudCgpOiBDb21wb25lbnRSZWY8VD4ge1xuICAgIHJldHVybiB0aGlzLl9pbm5lckNvbXBvbmVudDtcbiAgfVxuXG4gIHByaXZhdGUgX3N1YnNjcmliZVBvc2l0aW9uaW5nKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl96b25lU3Vic2NyaXB0aW9uIHx8ICF0aGlzLmF0dGFjaG1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl96b25lU3Vic2NyaXB0aW9uID0gdGhpcy5fbmdab25lLm9uU3RhYmxlLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICBpZiAoIXRoaXMuX2NvbXBvbmVudFJlZikge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0aGlzLl9wb3NTZXJ2aWNlLnBvc2l0aW9uKHtcbiAgICAgICAgZWxlbWVudDogdGhpcy5fY29tcG9uZW50UmVmLmxvY2F0aW9uLFxuICAgICAgICB0YXJnZXQ6IHRoaXMuX2VsZW1lbnRSZWYsXG4gICAgICAgIGF0dGFjaG1lbnQ6IHRoaXMuYXR0YWNobWVudCxcbiAgICAgICAgYXBwZW5kVG9Cb2R5OiB0aGlzLmNvbnRhaW5lciA9PT0gJ2JvZHknXG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX3Vuc3Vic2NyaWJlUG9zaXRpb25pbmcoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl96b25lU3Vic2NyaXB0aW9uKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX3pvbmVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLl96b25lU3Vic2NyaXB0aW9uID0gbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgX2dldENvbnRlbnRSZWYoXG4gICAgLyogdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBuby1hbnkqL1xuICAgIGNvbnRlbnQ6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT4gfCBhbnksXG4gICAgLyogdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBuby1hbnkqL1xuICAgIGNvbnRleHQ/OiBhbnksXG4gICAgLyogdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBuby1hbnkqL1xuICAgIGluaXRpYWxTdGF0ZT86IGFueVxuICApOiBDb250ZW50UmVmIHtcbiAgICBpZiAoIWNvbnRlbnQpIHtcbiAgICAgIHJldHVybiBuZXcgQ29udGVudFJlZihbXSk7XG4gICAgfVxuXG4gICAgaWYgKGNvbnRlbnQgaW5zdGFuY2VvZiBUZW1wbGF0ZVJlZikge1xuICAgICAgaWYgKHRoaXMuX3ZpZXdDb250YWluZXJSZWYpIHtcbiAgICAgICAgY29uc3QgX3ZpZXdSZWYgPSB0aGlzLl92aWV3Q29udGFpbmVyUmVmXG4gICAgICAgICAgLmNyZWF0ZUVtYmVkZGVkVmlldzxUZW1wbGF0ZVJlZjxUPj4oY29udGVudCwgY29udGV4dCk7XG4gICAgICAgIF92aWV3UmVmLm1hcmtGb3JDaGVjaygpO1xuXG4gICAgICAgIHJldHVybiBuZXcgQ29udGVudFJlZihbX3ZpZXdSZWYucm9vdE5vZGVzXSwgX3ZpZXdSZWYpO1xuICAgICAgfVxuICAgICAgY29uc3Qgdmlld1JlZiA9IGNvbnRlbnQuY3JlYXRlRW1iZWRkZWRWaWV3KHt9KTtcbiAgICAgIHRoaXMuX2FwcGxpY2F0aW9uUmVmLmF0dGFjaFZpZXcodmlld1JlZik7XG5cbiAgICAgIHJldHVybiBuZXcgQ29udGVudFJlZihbdmlld1JlZi5yb290Tm9kZXNdLCB2aWV3UmVmKTtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIGNvbnRlbnQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGNvbnN0IGNvbnRlbnRDbXB0RmFjdG9yeSA9IHRoaXMuX2NvbXBvbmVudEZhY3RvcnlSZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShcbiAgICAgICAgY29udGVudFxuICAgICAgKTtcblxuICAgICAgY29uc3QgbW9kYWxDb250ZW50SW5qZWN0b3IgPSBJbmplY3Rvci5jcmVhdGUoe1xuICAgICAgICBwcm92aWRlcnM6IHRoaXMuX3Byb3ZpZGVycyxcbiAgICAgICAgcGFyZW50OiB0aGlzLl9pbmplY3RvclxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IGNvbnRlbnRDbXB0RmFjdG9yeS5jcmVhdGUobW9kYWxDb250ZW50SW5qZWN0b3IpO1xuICAgICAgT2JqZWN0LmFzc2lnbihjb21wb25lbnRSZWYuaW5zdGFuY2UsIGluaXRpYWxTdGF0ZSk7XG4gICAgICB0aGlzLl9hcHBsaWNhdGlvblJlZi5hdHRhY2hWaWV3KGNvbXBvbmVudFJlZi5ob3N0Vmlldyk7XG5cbiAgICAgIHJldHVybiBuZXcgQ29udGVudFJlZihcbiAgICAgICAgW1tjb21wb25lbnRSZWYubG9jYXRpb24ubmF0aXZlRWxlbWVudF1dLFxuICAgICAgICBjb21wb25lbnRSZWYuaG9zdFZpZXcsXG4gICAgICAgIGNvbXBvbmVudFJlZlxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IENvbnRlbnRSZWYoW1t0aGlzLl9yZW5kZXJlci5jcmVhdGVUZXh0KGAke2NvbnRlbnR9YCldXSk7XG4gIH1cbn1cbiIsImltcG9ydCB7XG4gIEFwcGxpY2F0aW9uUmVmLCBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsIEVsZW1lbnRSZWYsIEluamVjdGFibGUsIEluamVjdG9yLFxuICBOZ1pvbmUsIFJlbmRlcmVyMiwgVmlld0NvbnRhaW5lclJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbXBvbmVudExvYWRlciB9IGZyb20gJy4vY29tcG9uZW50LWxvYWRlci5jbGFzcyc7XG5pbXBvcnQgeyBQb3NpdGlvbmluZ1NlcnZpY2UgfSBmcm9tICduZ3gtYm9vdHN0cmFwL3Bvc2l0aW9uaW5nJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENvbXBvbmVudExvYWRlckZhY3Rvcnkge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfbmdab25lOiBOZ1pvbmUsXG4gICAgICAgICAgICAgIHByaXZhdGUgX2luamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfcG9zU2VydmljZTogUG9zaXRpb25pbmdTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIF9hcHBsaWNhdGlvblJlZjogQXBwbGljYXRpb25SZWYpIHt9XG5cbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSBfZWxlbWVudFJlZlxuICAgKiBAcGFyYW0gX3ZpZXdDb250YWluZXJSZWZcbiAgICogQHBhcmFtIF9yZW5kZXJlclxuICAgKi9cbiAgY3JlYXRlTG9hZGVyPFQ+KF9lbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICAgICAgICAgICAgX3ZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgICAgICAgICAgICAgICBfcmVuZGVyZXI6IFJlbmRlcmVyMik6IENvbXBvbmVudExvYWRlcjxUPiB7XG4gICAgcmV0dXJuIG5ldyBDb21wb25lbnRMb2FkZXI8VD4oXG4gICAgICBfdmlld0NvbnRhaW5lclJlZixcbiAgICAgIF9yZW5kZXJlcixcbiAgICAgIF9lbGVtZW50UmVmLFxuICAgICAgdGhpcy5faW5qZWN0b3IsXG4gICAgICB0aGlzLl9jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgICB0aGlzLl9uZ1pvbmUsXG4gICAgICB0aGlzLl9hcHBsaWNhdGlvblJlZixcbiAgICAgIHRoaXMuX3Bvc1NlcnZpY2VcbiAgICApO1xuICB9XG59XG4iXSwibmFtZXMiOlsiRXZlbnRFbWl0dGVyIiwiSW5qZWN0b3IiLCJFbGVtZW50UmVmIiwibGlzdGVuVG9UcmlnZ2Vyc1YyIiwicmVnaXN0ZXJPdXRzaWRlQ2xpY2siLCJUZW1wbGF0ZVJlZiIsIkluamVjdGFibGUiLCJDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIiLCJOZ1pvbmUiLCJQb3NpdGlvbmluZ1NlcnZpY2UiLCJBcHBsaWNhdGlvblJlZiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUVBOztRQUFBOzs7NkJBRkE7UUFLQzs7Ozs7Ozs7OztBQ0VELFFBQUE7UUFPRTs7UUFFRSxLQUFZLEVBQ1osT0FBaUI7O1FBRWpCLFlBQWdDO1lBRWhDLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1lBQ25CLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO1NBQ2xDO3lCQXhCSDtRQXlCQzs7Ozs7O0FDckJEOzs7QUFzQkE7O1FBQUE7aUNBMERZLG1CQUNBLFdBQ0EsYUFDQSxXQUNBLDJCQUNBLFNBQ0EsaUJBQ0E7WUFQQSxzQkFBaUIsR0FBakIsaUJBQWlCO1lBQ2pCLGNBQVMsR0FBVCxTQUFTO1lBQ1QsZ0JBQVcsR0FBWCxXQUFXO1lBQ1gsY0FBUyxHQUFULFNBQVM7WUFDVCw4QkFBeUIsR0FBekIseUJBQXlCO1lBQ3pCLFlBQU8sR0FBUCxPQUFPO1lBQ1Asb0JBQWUsR0FBZixlQUFlO1lBQ2YsZ0JBQVcsR0FBWCxXQUFXO2dDQWhFYyxJQUFJQSxpQkFBWSxFQUFFOzsyQkFFeEIsSUFBSUEsaUJBQVksRUFBRTs7Z0NBRWIsSUFBSUEsaUJBQVksRUFBRTs0QkFDbEIsSUFBSUEsaUJBQVksRUFBRTs4QkFNYixFQUFFOzZCQWdCckIsS0FBSzsrQkFvQlksRUFBRTttQ0FDYixRQUFRLENBQUMsU0FBUzs7UUE3QjVDLHNCQUFJLG9DQUFPOzs7Z0JBQVg7Z0JBQ0UsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO29CQUNsQixPQUFPLEtBQUssQ0FBQztpQkFDZDtnQkFFRCxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDO2FBQzdCOzs7V0FBQTs7Ozs7UUEwQ0QsZ0NBQU07Ozs7WUFBTixVQUFPLFFBQWlCO2dCQUN0QixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLHlCQUF5QjtxQkFDcEQsdUJBQXVCLENBQUksUUFBUSxDQUFDLENBQUM7Z0JBRXhDLE9BQU8sSUFBSSxDQUFDO2FBQ2I7Ozs7OztRQUdELDRCQUFFOzs7O1lBQUYsVUFBRyxTQUFrQjtnQkFDbkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQztnQkFFN0MsT0FBTyxJQUFJLENBQUM7YUFDYjs7Ozs7UUFFRCxrQ0FBUTs7OztZQUFSLFVBQVMsSUFBeUI7Z0JBQ2hDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDO2dCQUNyRCxJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUMsSUFBSSxDQUFDLE1BQW9CLE1BQUssSUFBSSxDQUFDLFdBQVcsQ0FBQztnQkFFbkUsT0FBTyxJQUFJLENBQUM7YUFDYjs7Ozs7UUFFRCxpQ0FBTzs7OztZQUFQLFVBQVEsUUFBd0I7Z0JBQzlCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUUvQixPQUFPLElBQUksQ0FBQzthQUNiOzs7Ozs7UUFJRCw4QkFBSTs7OztZQUFKLFVBQUssSUFTQztnQkFURCxxQkFBQTtvQkFBQSxTQVNDOztnQkFHSixJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztnQkFDN0IsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7Z0JBRTVCLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFO29CQUN2QixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDO29CQUN6QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztvQkFFdEYscUJBQU0sUUFBUSxHQUFHQyxhQUFRLENBQUMsTUFBTSxDQUFDO3dCQUMvQixTQUFTLEVBQUUsSUFBSSxDQUFDLFVBQVU7d0JBQzFCLE1BQU0sRUFBRSxJQUFJLENBQUMsU0FBUztxQkFDdkIsQ0FBQyxDQUFDO29CQUVILElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDckYsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQzs7O29CQUc3RCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDO29CQUU1QyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO29CQUVqRCxJQUFJLElBQUksQ0FBQyxTQUFTLFlBQVlDLGVBQVUsRUFBRTt3QkFDeEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUN0QyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQzFDLENBQUM7cUJBQ0g7b0JBRUQsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLE1BQU0sSUFBSSxPQUFPLFFBQVEsS0FBSyxXQUFXLEVBQUU7d0JBQ2hFLFFBQVE7NkJBQ0wsYUFBYSxtQkFBQyxJQUFJLENBQUMsU0FBbUIsRUFBQzs2QkFDdkMsV0FBVyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDO3FCQUMzRDtvQkFFRCxJQUNFLENBQUMsSUFBSSxDQUFDLFNBQVM7d0JBQ2YsSUFBSSxDQUFDLFdBQVc7d0JBQ2hCLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLGFBQ2pDLEVBQUU7d0JBQ0EsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FDdEQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUMxQyxDQUFDO3FCQUNIOzs7OztvQkFNRCxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFO3dCQUNqQyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQzt3QkFDOUQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUMsWUFBWSxFQUFFLENBQUM7d0JBQy9ELElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxDQUFDO3FCQUNqRTtvQkFDRCxJQUFJLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLFlBQVksRUFBRSxDQUFDO29CQUNwRCxJQUFJLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxDQUFDO29CQUNyRCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2lCQUNoRDtnQkFFRCxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztnQkFFN0IsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO2FBQzNCOzs7O1FBRUQsOEJBQUk7OztZQUFKO2dCQUNFLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFO29CQUN2QixPQUFPLElBQUksQ0FBQztpQkFDYjtnQkFFRCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUVwRCxxQkFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDO2dCQUM5RCxXQUFXLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDaEQsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRTtvQkFDakMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLENBQUM7aUJBQ3pDO2dCQUNELElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQzdCLElBQUksSUFBSSxDQUFDLGlCQUFpQixJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFO29CQUN0RCxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUMzQixJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQ3pELENBQUM7aUJBQ0g7Z0JBQ0QsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRTtvQkFDNUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7aUJBQ3BDO2dCQUVELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO2dCQUN4QixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztnQkFDMUIsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7Z0JBRTdCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBRXJCLE9BQU8sSUFBSSxDQUFDO2FBQ2I7Ozs7UUFFRCxnQ0FBTTs7O1lBQU47Z0JBQ0UsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO29CQUNoQixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7b0JBRVosT0FBTztpQkFDUjtnQkFFRCxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7YUFDYjs7OztRQUVELGlDQUFPOzs7WUFBUDtnQkFDRSxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7b0JBQ2hCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztpQkFDYjtnQkFFRCxJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztnQkFFL0IsSUFBSSxJQUFJLENBQUMsc0JBQXNCLEVBQUU7b0JBQy9CLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO2lCQUMvQjthQUNGOzs7OztRQUVELGdDQUFNOzs7O1lBQU4sVUFBTyxVQUF5QjtnQkFBaEMsaUJBeUJDO2dCQXhCQyxJQUFJLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQztnQkFDckQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEdBQUcsVUFBVSxDQUFDLFlBQVksQ0FBQztnQkFDeEQsVUFBVSxDQUFDLE1BQU0sR0FBRyxVQUFVLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDO2dCQUV4RSxxQkFBTSxJQUFJLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEdBQUc7b0JBQ3BDLE9BQUEsVUFBVSxDQUFDLElBQUksR0FBRyxVQUFVLENBQUMsSUFBSSxFQUFFLEdBQUcsS0FBSyxLQUFJLENBQUMsSUFBSSxFQUFFO2lCQUFBLENBQUMsQ0FBQztnQkFDMUQscUJBQU0sSUFBSSxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxHQUFHLFVBQUMsWUFBc0I7b0JBQzNELFVBQVUsQ0FBQyxJQUFJLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxLQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO29CQUMxRSxZQUFZLEVBQUUsQ0FBQztpQkFDaEIsQ0FBQyxDQUFDO2dCQUVILHFCQUFNLE1BQU0sR0FBRyxVQUFDLFlBQXNCO29CQUNwQyxLQUFJLENBQUMsT0FBTyxHQUFHLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztpQkFDNUMsQ0FBQztnQkFFRixJQUFJLENBQUMsc0JBQXNCLEdBQUdDLHdCQUFrQixDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUU7b0JBQy9ELE1BQU0sRUFBRSxVQUFVLENBQUMsTUFBTTtvQkFDekIsUUFBUSxFQUFFLFVBQVUsQ0FBQyxRQUFRO29CQUM3QixJQUFJLE1BQUE7b0JBQ0osSUFBSSxNQUFBO29CQUNKLE1BQU0sUUFBQTtpQkFDUCxDQUFDLENBQUM7Z0JBRUgsT0FBTyxJQUFJLENBQUM7YUFDYjs7OztRQUVELCtDQUFxQjs7O1lBQXJCO2dCQUNFLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRTtvQkFDeEIsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO29CQUN2QixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztpQkFDN0I7YUFDRjs7Ozs7O1FBRUQsc0NBQVk7Ozs7O1lBQVosVUFDRSxJQUFzQjs7WUFFdEIsUUFBMEI7Z0JBRTFCLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUV4RCxPQUFPLElBQUksQ0FBQzthQUNiOzs7O1FBRUQsK0NBQXFCOzs7WUFBckI7Z0JBQUEsaUJBZUM7Z0JBZEMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRTtvQkFDdkQsT0FBTztpQkFDUjs7Z0JBRUQsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRTtvQkFDakMscUJBQU0sUUFBTSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQztvQkFDekQsVUFBVSxDQUFDO3dCQUNULEtBQUksQ0FBQyxlQUFlLEdBQUdDLDBCQUFvQixDQUFDLEtBQUksQ0FBQyxTQUFTLEVBQUU7NEJBQzFELE9BQU8sRUFBRSxDQUFDLFFBQU0sRUFBRSxLQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQzs0QkFDakQsWUFBWSxFQUFFLEtBQUksQ0FBQyxXQUFXLENBQUMsWUFBWTs0QkFDM0MsSUFBSSxFQUFFLGNBQU0sT0FBQSxLQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxHQUFBO3lCQUNwQyxDQUFDLENBQUM7cUJBQ0osQ0FBQyxDQUFDO2lCQUNKO2FBQ0Y7Ozs7UUFFRCwyQ0FBaUI7OztZQUFqQjtnQkFDRSxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7YUFDN0I7Ozs7UUFFTywrQ0FBcUI7Ozs7O2dCQUMzQixJQUFJLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUU7b0JBQzlDLE9BQU87aUJBQ1I7Z0JBRUQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQztvQkFDdkQsSUFBSSxDQUFDLEtBQUksQ0FBQyxhQUFhLEVBQUU7d0JBQ3ZCLE9BQU87cUJBQ1I7b0JBQ0QsS0FBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUM7d0JBQ3hCLE9BQU8sRUFBRSxLQUFJLENBQUMsYUFBYSxDQUFDLFFBQVE7d0JBQ3BDLE1BQU0sRUFBRSxLQUFJLENBQUMsV0FBVzt3QkFDeEIsVUFBVSxFQUFFLEtBQUksQ0FBQyxVQUFVO3dCQUMzQixZQUFZLEVBQUUsS0FBSSxDQUFDLFNBQVMsS0FBSyxNQUFNO3FCQUN4QyxDQUFDLENBQUM7aUJBQ0osQ0FBQyxDQUFDOzs7OztRQUdHLGlEQUF1Qjs7OztnQkFDN0IsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtvQkFDM0IsT0FBTztpQkFDUjtnQkFDRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQ3JDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUM7Ozs7Ozs7O1FBR3hCLHdDQUFjOzs7Ozs7OztZQUVwQixPQUF3Qzs7WUFFeEMsT0FBYTs7WUFFYixZQUFrQjtnQkFFbEIsSUFBSSxDQUFDLE9BQU8sRUFBRTtvQkFDWixPQUFPLElBQUksVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2lCQUMzQjtnQkFFRCxJQUFJLE9BQU8sWUFBWUMsZ0JBQVcsRUFBRTtvQkFDbEMsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7d0JBQzFCLHFCQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsaUJBQWlCOzZCQUNwQyxrQkFBa0IsQ0FBaUIsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO3dCQUN4RCxRQUFRLENBQUMsWUFBWSxFQUFFLENBQUM7d0JBRXhCLE9BQU8sSUFBSSxVQUFVLENBQUMsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUM7cUJBQ3ZEO29CQUNELHFCQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDLENBQUM7b0JBQy9DLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO29CQUV6QyxPQUFPLElBQUksVUFBVSxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO2lCQUNyRDtnQkFFRCxJQUFJLE9BQU8sT0FBTyxLQUFLLFVBQVUsRUFBRTtvQkFDakMscUJBQU0sa0JBQWtCLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixDQUFDLHVCQUF1QixDQUMvRSxPQUFPLENBQ1IsQ0FBQztvQkFFRixxQkFBTSxvQkFBb0IsR0FBR0osYUFBUSxDQUFDLE1BQU0sQ0FBQzt3QkFDM0MsU0FBUyxFQUFFLElBQUksQ0FBQyxVQUFVO3dCQUMxQixNQUFNLEVBQUUsSUFBSSxDQUFDLFNBQVM7cUJBQ3ZCLENBQUMsQ0FBQztvQkFFSCxxQkFBTSxZQUFZLEdBQUcsa0JBQWtCLENBQUMsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUM7b0JBQ3JFLE1BQU0sQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxZQUFZLENBQUMsQ0FBQztvQkFDbkQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDO29CQUV2RCxPQUFPLElBQUksVUFBVSxDQUNuQixDQUFDLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQyxFQUN2QyxZQUFZLENBQUMsUUFBUSxFQUNyQixZQUFZLENBQ2IsQ0FBQztpQkFDSDtnQkFFRCxPQUFPLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxLQUFHLE9BQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDOzs4QkFuWXZFO1FBcVlDOzs7Ozs7QUNyWUQ7UUFTRSxnQ0FBb0IseUJBQW1ELEVBQ25ELFNBQ0EsV0FDQSxhQUNBO1lBSkEsOEJBQXlCLEdBQXpCLHlCQUF5QixDQUEwQjtZQUNuRCxZQUFPLEdBQVAsT0FBTztZQUNQLGNBQVMsR0FBVCxTQUFTO1lBQ1QsZ0JBQVcsR0FBWCxXQUFXO1lBQ1gsb0JBQWUsR0FBZixlQUFlO1NBQW9COzs7Ozs7Ozs7Ozs7Ozs7UUFRdkQsNkNBQVk7Ozs7Ozs7O1lBQVosVUFBZ0IsV0FBdUIsRUFDdkIsaUJBQW1DLEVBQ25DLFNBQW9CO2dCQUNsQyxPQUFPLElBQUksZUFBZSxDQUN4QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFdBQVcsRUFDWCxJQUFJLENBQUMsU0FBUyxFQUNkLElBQUksQ0FBQyx5QkFBeUIsRUFDOUIsSUFBSSxDQUFDLE9BQU8sRUFDWixJQUFJLENBQUMsZUFBZSxFQUNwQixJQUFJLENBQUMsV0FBVyxDQUNqQixDQUFDO2FBQ0g7O29CQTNCRkssZUFBVTs7Ozs7d0JBTk9DLDZCQUF3Qjt3QkFDeENDLFdBQU07d0JBRDREUCxhQUFRO3dCQUluRVEsOEJBQWtCO3dCQUp6QkMsbUJBQWM7OztxQ0FEaEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OyJ9
|
508
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWJvb3RzdHJhcC1jb21wb25lbnQtbG9hZGVyLnVtZC5qcy5tYXAiLCJzb3VyY2VzIjpbIm5nOi8vbmd4LWJvb3RzdHJhcC9jb21wb25lbnQtbG9hZGVyL2JzLWNvbXBvbmVudC1yZWYuY2xhc3MudHMiLCJuZzovL25neC1ib290c3RyYXAvY29tcG9uZW50LWxvYWRlci9jb250ZW50LXJlZi5jbGFzcy50cyIsIm5nOi8vbmd4LWJvb3RzdHJhcC9jb21wb25lbnQtbG9hZGVyL2NvbXBvbmVudC1sb2FkZXIuY2xhc3MudHMiLCJuZzovL25neC1ib290c3RyYXAvY29tcG9uZW50LWxvYWRlci9jb21wb25lbnQtbG9hZGVyLmZhY3RvcnkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGVtcGxhdGVSZWYsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGNsYXNzIEJzQ29tcG9uZW50UmVmPFQ+IHtcbiAgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPFQ+O1xuICB2aWV3Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmO1xufVxuIiwiLyoqXG4gKiBAY29weXJpZ2h0IFZhbG9yIFNvZnR3YXJlXG4gKiBAY29weXJpZ2h0IEFuZ3VsYXIgbmctYm9vdHN0cmFwIHRlYW1cbiAqL1xuXG5pbXBvcnQgeyBDb21wb25lbnRSZWYsIFZpZXdSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGNsYXNzIENvbnRlbnRSZWYge1xuICAvKiB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG5vLWFueSAqL1xuICBub2RlczogYW55W107XG4gIHZpZXdSZWY/OiBWaWV3UmVmO1xuICAvKiB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG5vLWFueSAqL1xuICBjb21wb25lbnRSZWY/OiBDb21wb25lbnRSZWY8YW55PjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICAvKiB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG5vLWFueSAqL1xuICAgIG5vZGVzOiBhbnlbXSxcbiAgICB2aWV3UmVmPzogVmlld1JlZixcbiAgICAvKiB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG5vLWFueSAqL1xuICAgIGNvbXBvbmVudFJlZj86IENvbXBvbmVudFJlZjxhbnk+XG4gICkge1xuICAgIHRoaXMubm9kZXMgPSBub2RlcztcbiAgICB0aGlzLnZpZXdSZWYgPSB2aWV3UmVmO1xuICAgIHRoaXMuY29tcG9uZW50UmVmID0gY29tcG9uZW50UmVmO1xuICB9XG59XG4iLCIvLyB0c2xpbnQ6ZGlzYWJsZTptYXgtZmlsZS1saW5lLWNvdW50XG4vLyB0b2RvOiBhZGQgZGVsYXkgc3VwcG9ydFxuLy8gdG9kbzogbWVyZ2UgZXZlbnRzIG9uU2hvdywgb25TaG93biwgZXRjLi4uXG4vLyB0b2RvOiBhZGQgZ2xvYmFsIHBvc2l0aW9uaW5nIGNvbmZpZ3VyYXRpb24/XG5pbXBvcnQge1xuICBBcHBsaWNhdGlvblJlZixcbiAgQ29tcG9uZW50RmFjdG9yeSxcbiAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICBDb21wb25lbnRSZWYsXG4gIEVsZW1lbnRSZWYsXG4gIEVtYmVkZGVkVmlld1JlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbmplY3RvcixcbiAgTmdab25lLFxuICBSZW5kZXJlcjIsXG4gIFN0YXRpY1Byb3ZpZGVyLFxuICBUZW1wbGF0ZVJlZixcbiAgVHlwZSxcbiAgVmlld0NvbnRhaW5lclJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgUG9zaXRpb25pbmdPcHRpb25zLCBQb3NpdGlvbmluZ1NlcnZpY2UgfSBmcm9tICduZ3gtYm9vdHN0cmFwL3Bvc2l0aW9uaW5nJztcblxuaW1wb3J0IHtcbiAgbGlzdGVuVG9UcmlnZ2Vyc1YyLFxuICByZWdpc3RlckVzY0NsaWNrLFxuICByZWdpc3Rlck91dHNpZGVDbGlja1xufSBmcm9tICduZ3gtYm9vdHN0cmFwL3V0aWxzJztcblxuaW1wb3J0IHsgQ29udGVudFJlZiB9IGZyb20gJy4vY29udGVudC1yZWYuY2xhc3MnO1xuaW1wb3J0IHsgTGlzdGVuT3B0aW9ucyB9IGZyb20gJy4vbGlzdGVuLW9wdGlvbnMubW9kZWwnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCBjbGFzcyBDb21wb25lbnRMb2FkZXI8VD4ge1xuICBvbkJlZm9yZVNob3c6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgLyogdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBuby1hbnkqL1xuICBvblNob3duOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgLyogdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBuby1hbnkqL1xuICBvbkJlZm9yZUhpZGU6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBvbkhpZGRlbjogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIGluc3RhbmNlOiBUO1xuICBfY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8VD47XG4gIF9pbmxpbmVWaWV3UmVmOiBFbWJlZGRlZFZpZXdSZWY8VD47XG5cbiAgcHJpdmF0ZSBfcHJvdmlkZXJzOiBTdGF0aWNQcm92aWRlcltdID0gW107XG4gIHByaXZhdGUgX2NvbXBvbmVudEZhY3Rvcnk6IENvbXBvbmVudEZhY3Rvcnk8VD47XG4gIHByaXZhdGUgX3pvbmVTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSBfY29udGVudFJlZjogQ29udGVudFJlZjtcbiAgcHJpdmF0ZSBfaW5uZXJDb21wb25lbnQ6IENvbXBvbmVudFJlZjxUPjtcblxuICBwcml2YXRlIF91bnJlZ2lzdGVyTGlzdGVuZXJzRm46IEZ1bmN0aW9uO1xuXG4gIGdldCBpc1Nob3duKCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLl9pc0hpZGluZykge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHJldHVybiAhIXRoaXMuX2NvbXBvbmVudFJlZjtcbiAgfVxuXG4gIHByaXZhdGUgX2lzSGlkaW5nID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFBsYWNlbWVudCBvZiBhIGNvbXBvbmVudC4gQWNjZXB0czogXCJ0b3BcIiwgXCJib3R0b21cIiwgXCJsZWZ0XCIsIFwicmlnaHRcIlxuICAgKi9cbiAgcHJpdmF0ZSBhdHRhY2htZW50OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgc2VsZWN0b3Igc3BlY2lmeWluZyB0aGUgZWxlbWVudCB0aGUgcG9wb3ZlciBzaG91bGQgYmUgYXBwZW5kZWQgdG8uXG4gICAqIEN1cnJlbnRseSBvbmx5IHN1cHBvcnRzIFwiYm9keVwiLlxuICAgKi9cbiAgLyogdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBuby1hbnkqL1xuICBwcml2YXRlIGNvbnRhaW5lcjogc3RyaW5nIHwgRWxlbWVudFJlZiB8IGFueTtcblxuICAvKipcbiAgICogU3BlY2lmaWVzIGV2ZW50cyB0aGF0IHNob3VsZCB0cmlnZ2VyLiBTdXBwb3J0cyBhIHNwYWNlIHNlcGFyYXRlZCBsaXN0IG9mXG4gICAqIGV2ZW50IG5hbWVzLlxuICAgKi9cbiAgcHJpdmF0ZSB0cmlnZ2Vyczogc3RyaW5nO1xuXG4gIHByaXZhdGUgX2xpc3Rlbk9wdHM6IExpc3Rlbk9wdGlvbnMgPSB7fTtcbiAgcHJpdmF0ZSBfZ2xvYmFsTGlzdGVuZXIgPSBGdW5jdGlvbi5wcm90b3R5cGU7XG5cbiAgLyoqXG4gICAqIERvIG5vdCB1c2UgdGhpcyBkaXJlY3RseSwgaXQgc2hvdWxkIGJlIGluc3RhbmNlZCB2aWFcbiAgICogYENvbXBvbmVudExvYWRGYWN0b3J5LmF0dGFjaGBcbiAgICogQGludGVybmFsXG4gICAqL1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmVcbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX3ZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgcHJpdmF0ZSBfcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgX2luamVjdG9yOiBJbmplY3RvcixcbiAgICBwcml2YXRlIF9jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICBwcml2YXRlIF9uZ1pvbmU6IE5nWm9uZSxcbiAgICBwcml2YXRlIF9hcHBsaWNhdGlvblJlZjogQXBwbGljYXRpb25SZWYsXG4gICAgcHJpdmF0ZSBfcG9zU2VydmljZTogUG9zaXRpb25pbmdTZXJ2aWNlXG4gICkge31cblxuICBhdHRhY2goY29tcFR5cGU6IFR5cGU8VD4pOiBDb21wb25lbnRMb2FkZXI8VD4ge1xuICAgIHRoaXMuX2NvbXBvbmVudEZhY3RvcnkgPSB0aGlzLl9jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXJcbiAgICAgIC5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeTxUPihjb21wVHlwZSk7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8vIHRvZG86IGFkZCBiZWhhdmlvdXI6IHRvIHRhcmdldCBlbGVtZW50LCBgYm9keWAsIGN1c3RvbSBlbGVtZW50XG4gIHRvKGNvbnRhaW5lcj86IHN0cmluZyk6IENvbXBvbmVudExvYWRlcjxUPiB7XG4gICAgdGhpcy5jb250YWluZXIgPSBjb250YWluZXIgfHwgdGhpcy5jb250YWluZXI7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHBvc2l0aW9uKG9wdHM/OiBQb3NpdGlvbmluZ09wdGlvbnMpOiBDb21wb25lbnRMb2FkZXI8VD4ge1xuICAgIHRoaXMuYXR0YWNobWVudCA9IG9wdHMuYXR0YWNobWVudCB8fCB0aGlzLmF0dGFjaG1lbnQ7XG4gICAgdGhpcy5fZWxlbWVudFJlZiA9IChvcHRzLnRhcmdldCBhcyBFbGVtZW50UmVmKSB8fCB0aGlzLl9lbGVtZW50UmVmO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwcm92aWRlKHByb3ZpZGVyOiBTdGF0aWNQcm92aWRlcik6IENvbXBvbmVudExvYWRlcjxUPiB7XG4gICAgdGhpcy5fcHJvdmlkZXJzLnB1c2gocHJvdmlkZXIpO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvLyB0b2RvOiBhcHBlbmRDaGlsZCB0byBlbGVtZW50IG9yIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IodGhpcy5jb250YWluZXIpXG5cbiAgc2hvdyhvcHRzOiB7XG4gICAgLyogdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBuby1hbnkqL1xuICAgIGNvbnRlbnQ/OiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIC8qIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8tYW55Ki9cbiAgICBjb250ZXh0PzogYW55O1xuICAgIC8qIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8tYW55Ki9cbiAgICBpbml0aWFsU3RhdGU/OiBhbnk7XG4gICAgLyogdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBuby1hbnkqL1xuICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgfSA9IHt9XG4gICk6IENvbXBvbmVudFJlZjxUPiB7XG5cbiAgICB0aGlzLl9zdWJzY3JpYmVQb3NpdGlvbmluZygpO1xuICAgIHRoaXMuX2lubmVyQ29tcG9uZW50ID0gbnVsbDtcblxuICAgIGlmICghdGhpcy5fY29tcG9uZW50UmVmKSB7XG4gICAgICB0aGlzLm9uQmVmb3JlU2hvdy5lbWl0KCk7XG4gICAgICB0aGlzLl9jb250ZW50UmVmID0gdGhpcy5fZ2V0Q29udGVudFJlZihvcHRzLmNvbnRlbnQsIG9wdHMuY29udGV4dCwgb3B0cy5pbml0aWFsU3RhdGUpO1xuXG4gICAgICBjb25zdCBpbmplY3RvciA9IEluamVjdG9yLmNyZWF0ZSh7XG4gICAgICAgIHByb3ZpZGVyczogdGhpcy5fcHJvdmlkZXJzLFxuICAgICAgICBwYXJlbnQ6IHRoaXMuX2luamVjdG9yXG4gICAgICB9KTtcblxuICAgICAgdGhpcy5fY29tcG9uZW50UmVmID0gdGhpcy5fY29tcG9uZW50RmFjdG9yeS5jcmVhdGUoaW5qZWN0b3IsIHRoaXMuX2NvbnRlbnRSZWYubm9kZXMpO1xuICAgICAgdGhpcy5fYXBwbGljYXRpb25SZWYuYXR0YWNoVmlldyh0aGlzLl9jb21wb25lbnRSZWYuaG9zdFZpZXcpO1xuICAgICAgLy8gdGhpcy5fY29tcG9uZW50UmVmID0gdGhpcy5fdmlld0NvbnRhaW5lclJlZlxuICAgICAgLy8gICAuY3JlYXRlQ29tcG9uZW50KHRoaXMuX2NvbXBvbmVudEZhY3RvcnksIDAsIGluamVjdG9yLCB0aGlzLl9jb250ZW50UmVmLm5vZGVzKTtcbiAgICAgIHRoaXMuaW5zdGFuY2UgPSB0aGlzLl9jb21wb25lbnRSZWYuaW5zdGFuY2U7XG5cbiAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5fY29tcG9uZW50UmVmLmluc3RhbmNlLCBvcHRzKTtcblxuICAgICAgaWYgKHRoaXMuY29udGFpbmVyIGluc3RhbmNlb2YgRWxlbWVudFJlZikge1xuICAgICAgICB0aGlzLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50LmFwcGVuZENoaWxkKFxuICAgICAgICAgIHRoaXMuX2NvbXBvbmVudFJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50XG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLmNvbnRhaW5lciA9PT0gJ2JvZHknICYmIHR5cGVvZiBkb2N1bWVudCAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgZG9jdW1lbnRcbiAgICAgICAgICAucXVlcnlTZWxlY3Rvcih0aGlzLmNvbnRhaW5lciBhcyBzdHJpbmcpXG4gICAgICAgICAgLmFwcGVuZENoaWxkKHRoaXMuX2NvbXBvbmVudFJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50KTtcbiAgICAgIH1cblxuICAgICAgaWYgKFxuICAgICAgICAhdGhpcy5jb250YWluZXIgJiZcbiAgICAgICAgdGhpcy5fZWxlbWVudFJlZiAmJlxuICAgICAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudFxuICAgICAgKSB7XG4gICAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50LmFwcGVuZENoaWxkKFxuICAgICAgICAgIHRoaXMuX2NvbXBvbmVudFJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50XG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIC8vIHdlIG5lZWQgdG8gbWFudWFsbHkgaW52b2tlIGNoYW5nZSBkZXRlY3Rpb24gc2luY2UgZXZlbnRzIHJlZ2lzdGVyZWRcbiAgICAgIC8vIHZpYVxuICAgICAgLy8gUmVuZGVyZXI6Omxpc3RlbigpIGFyZSBub3QgcGlja2VkIHVwIGJ5IGNoYW5nZSBkZXRlY3Rpb24gd2l0aCB0aGVcbiAgICAgIC8vIE9uUHVzaCBzdHJhdGVneVxuICAgICAgaWYgKHRoaXMuX2NvbnRlbnRSZWYuY29tcG9uZW50UmVmKSB7XG4gICAgICAgIHRoaXMuX2lubmVyQ29tcG9uZW50ID0gdGhpcy5fY29udGVudFJlZi5jb21wb25lbnRSZWYuaW5zdGFuY2U7XG4gICAgICAgIHRoaXMuX2NvbnRlbnRSZWYuY29tcG9uZW50UmVmLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB0aGlzLl9jb250ZW50UmVmLmNvbXBvbmVudFJlZi5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9XG4gICAgICB0aGlzLl9jb21wb25lbnRSZWYuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICB0aGlzLl9jb21wb25lbnRSZWYuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgdGhpcy5vblNob3duLmVtaXQodGhpcy5fY29tcG9uZW50UmVmLmluc3RhbmNlKTtcbiAgICB9XG5cbiAgICB0aGlzLl9yZWdpc3Rlck91dHNpZGVDbGljaygpO1xuXG4gICAgcmV0dXJuIHRoaXMuX2NvbXBvbmVudFJlZjtcbiAgfVxuXG4gIGhpZGUoKTogQ29tcG9uZW50TG9hZGVyPFQ+IHtcbiAgICBpZiAoIXRoaXMuX2NvbXBvbmVudFJlZikge1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgdGhpcy5vbkJlZm9yZUhpZGUuZW1pdCh0aGlzLl9jb21wb25lbnRSZWYuaW5zdGFuY2UpO1xuXG4gICAgY29uc3QgY29tcG9uZW50RWwgPSB0aGlzLl9jb21wb25lbnRSZWYubG9jYXRpb24ubmF0aXZlRWxlbWVudDtcbiAgICBjb21wb25lbnRFbC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGNvbXBvbmVudEVsKTtcbiAgICBpZiAodGhpcy5fY29udGVudFJlZi5jb21wb25lbnRSZWYpIHtcbiAgICAgIHRoaXMuX2NvbnRlbnRSZWYuY29tcG9uZW50UmVmLmRlc3Ryb3koKTtcbiAgICB9XG4gICAgdGhpcy5fY29tcG9uZW50UmVmLmRlc3Ryb3koKTtcbiAgICBpZiAodGhpcy5fdmlld0NvbnRhaW5lclJlZiAmJiB0aGlzLl9jb250ZW50UmVmLnZpZXdSZWYpIHtcbiAgICAgIHRoaXMuX3ZpZXdDb250YWluZXJSZWYucmVtb3ZlKFxuICAgICAgICB0aGlzLl92aWV3Q29udGFpbmVyUmVmLmluZGV4T2YodGhpcy5fY29udGVudFJlZi52aWV3UmVmKVxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuX2NvbnRlbnRSZWYudmlld1JlZikge1xuICAgICAgdGhpcy5fY29udGVudFJlZi52aWV3UmVmLmRlc3Ryb3koKTtcbiAgICB9XG5cbiAgICB0aGlzLl9jb250ZW50UmVmID0gbnVsbDtcbiAgICB0aGlzLl9jb21wb25lbnRSZWYgPSBudWxsO1xuICAgIHRoaXMuX3JlbW92ZUdsb2JhbExpc3RlbmVyKCk7XG5cbiAgICB0aGlzLm9uSGlkZGVuLmVtaXQoKTtcblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgdG9nZ2xlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzU2hvd24pIHtcbiAgICAgIHRoaXMuaGlkZSgpO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zaG93KCk7XG4gIH1cblxuICBkaXNwb3NlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzU2hvd24pIHtcbiAgICAgIHRoaXMuaGlkZSgpO1xuICAgIH1cblxuICAgIHRoaXMuX3Vuc3Vic2NyaWJlUG9zaXRpb25pbmcoKTtcblxuICAgIGlmICh0aGlzLl91bnJlZ2lzdGVyTGlzdGVuZXJzRm4pIHtcbiAgICAgIHRoaXMuX3VucmVnaXN0ZXJMaXN0ZW5lcnNGbigpO1xuICAgIH1cbiAgfVxuXG4gIGxpc3RlbihsaXN0ZW5PcHRzOiBMaXN0ZW5PcHRpb25zKTogQ29tcG9uZW50TG9hZGVyPFQ+IHtcbiAgICB0aGlzLnRyaWdnZXJzID0gbGlzdGVuT3B0cy50cmlnZ2VycyB8fCB0aGlzLnRyaWdnZXJzO1xuICAgIHRoaXMuX2xpc3Rlbk9wdHMub3V0c2lkZUNsaWNrID0gbGlzdGVuT3B0cy5vdXRzaWRlQ2xpY2s7XG4gICAgdGhpcy5fbGlzdGVuT3B0cy5vdXRzaWRlRXNjID0gbGlzdGVuT3B0cy5vdXRzaWRlRXNjO1xuICAgIGxpc3Rlbk9wdHMudGFyZ2V0ID0gbGlzdGVuT3B0cy50YXJnZXQgfHwgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuXG4gICAgY29uc3QgaGlkZSA9ICh0aGlzLl9saXN0ZW5PcHRzLmhpZGUgPSAoKSA9PlxuICAgICAgbGlzdGVuT3B0cy5oaWRlID8gbGlzdGVuT3B0cy5oaWRlKCkgOiB2b2lkIHRoaXMuaGlkZSgpKTtcbiAgICBjb25zdCBzaG93ID0gKHRoaXMuX2xpc3Rlbk9wdHMuc2hvdyA9IChyZWdpc3RlckhpZGU6IEZ1bmN0aW9uKSA9PiB7XG4gICAgICBsaXN0ZW5PcHRzLnNob3cgPyBsaXN0ZW5PcHRzLnNob3cocmVnaXN0ZXJIaWRlKSA6IHRoaXMuc2hvdyhyZWdpc3RlckhpZGUpO1xuICAgICAgcmVnaXN0ZXJIaWRlKCk7XG4gICAgfSk7XG5cbiAgICBjb25zdCB0b2dnbGUgPSAocmVnaXN0ZXJIaWRlOiBGdW5jdGlvbikgPT4ge1xuICAgICAgdGhpcy5pc1Nob3duID8gaGlkZSgpIDogc2hvdyhyZWdpc3RlckhpZGUpO1xuICAgIH07XG5cbiAgICB0aGlzLl91bnJlZ2lzdGVyTGlzdGVuZXJzRm4gPSBsaXN0ZW5Ub1RyaWdnZXJzVjIodGhpcy5fcmVuZGVyZXIsIHtcbiAgICAgIHRhcmdldDogbGlzdGVuT3B0cy50YXJnZXQsXG4gICAgICB0cmlnZ2VyczogbGlzdGVuT3B0cy50cmlnZ2VycyxcbiAgICAgIHNob3csXG4gICAgICBoaWRlLFxuICAgICAgdG9nZ2xlXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIF9yZW1vdmVHbG9iYWxMaXN0ZW5lcigpIHtcbiAgICBpZiAodGhpcy5fZ2xvYmFsTGlzdGVuZXIpIHtcbiAgICAgIHRoaXMuX2dsb2JhbExpc3RlbmVyKCk7XG4gICAgICB0aGlzLl9nbG9iYWxMaXN0ZW5lciA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgYXR0YWNoSW5saW5lKFxuICAgIHZSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgLyogdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBuby1hbnkqL1xuICAgIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+XG4gICk6IENvbXBvbmVudExvYWRlcjxUPiB7XG4gICAgdGhpcy5faW5saW5lVmlld1JlZiA9IHZSZWYuY3JlYXRlRW1iZWRkZWRWaWV3KHRlbXBsYXRlKTtcblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgX3JlZ2lzdGVyT3V0c2lkZUNsaWNrKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5fY29tcG9uZW50UmVmIHx8ICF0aGlzLl9jb21wb25lbnRSZWYubG9jYXRpb24pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgLy8gd2h5OiBzaG91bGQgcnVuIGFmdGVyIGZpcnN0IGV2ZW50IGJ1YmJsZVxuICAgIGlmICh0aGlzLl9saXN0ZW5PcHRzLm91dHNpZGVDbGljaykge1xuICAgICAgY29uc3QgdGFyZ2V0ID0gdGhpcy5fY29tcG9uZW50UmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5fZ2xvYmFsTGlzdGVuZXIgPSByZWdpc3Rlck91dHNpZGVDbGljayh0aGlzLl9yZW5kZXJlciwge1xuICAgICAgICAgIHRhcmdldHM6IFt0YXJnZXQsIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudF0sXG4gICAgICAgICAgb3V0c2lkZUNsaWNrOiB0aGlzLl9saXN0ZW5PcHRzLm91dHNpZGVDbGljayxcbiAgICAgICAgICBoaWRlOiAoKSA9PiB0aGlzLl9saXN0ZW5PcHRzLmhpZGUoKVxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAodGhpcy5fbGlzdGVuT3B0cy5vdXRzaWRlRXNjKSB7XG4gICAgICBjb25zdCB0YXJnZXQgPSB0aGlzLl9jb21wb25lbnRSZWYubG9jYXRpb24ubmF0aXZlRWxlbWVudDtcbiAgICAgIHRoaXMuX2dsb2JhbExpc3RlbmVyID0gcmVnaXN0ZXJFc2NDbGljayh0aGlzLl9yZW5kZXJlciwge1xuICAgICAgICB0YXJnZXRzOiBbdGFyZ2V0LCB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnRdLFxuICAgICAgICBvdXRzaWRlRXNjOiB0aGlzLl9saXN0ZW5PcHRzLm91dHNpZGVFc2MsXG4gICAgICAgIGhpZGU6ICgpID0+IHRoaXMuX2xpc3Rlbk9wdHMuaGlkZSgpXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBnZXRJbm5lckNvbXBvbmVudCgpOiBDb21wb25lbnRSZWY8VD4ge1xuICAgIHJldHVybiB0aGlzLl9pbm5lckNvbXBvbmVudDtcbiAgfVxuXG4gIHByaXZhdGUgX3N1YnNjcmliZVBvc2l0aW9uaW5nKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl96b25lU3Vic2NyaXB0aW9uIHx8ICF0aGlzLmF0dGFjaG1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl96b25lU3Vic2NyaXB0aW9uID0gdGhpcy5fbmdab25lLm9uU3RhYmxlLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICBpZiAoIXRoaXMuX2NvbXBvbmVudFJlZikge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0aGlzLl9wb3NTZXJ2aWNlLnBvc2l0aW9uKHtcbiAgICAgICAgZWxlbWVudDogdGhpcy5fY29tcG9uZW50UmVmLmxvY2F0aW9uLFxuICAgICAgICB0YXJnZXQ6IHRoaXMuX2VsZW1lbnRSZWYsXG4gICAgICAgIGF0dGFjaG1lbnQ6IHRoaXMuYXR0YWNobWVudCxcbiAgICAgICAgYXBwZW5kVG9Cb2R5OiB0aGlzLmNvbnRhaW5lciA9PT0gJ2JvZHknXG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX3Vuc3Vic2NyaWJlUG9zaXRpb25pbmcoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl96b25lU3Vic2NyaXB0aW9uKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX3pvbmVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLl96b25lU3Vic2NyaXB0aW9uID0gbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgX2dldENvbnRlbnRSZWYoXG4gICAgLyogdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBuby1hbnkqL1xuICAgIGNvbnRlbnQ6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT4gfCBhbnksXG4gICAgLyogdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBuby1hbnkqL1xuICAgIGNvbnRleHQ/OiBhbnksXG4gICAgLyogdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBuby1hbnkqL1xuICAgIGluaXRpYWxTdGF0ZT86IGFueVxuICApOiBDb250ZW50UmVmIHtcbiAgICBpZiAoIWNvbnRlbnQpIHtcbiAgICAgIHJldHVybiBuZXcgQ29udGVudFJlZihbXSk7XG4gICAgfVxuXG4gICAgaWYgKGNvbnRlbnQgaW5zdGFuY2VvZiBUZW1wbGF0ZVJlZikge1xuICAgICAgaWYgKHRoaXMuX3ZpZXdDb250YWluZXJSZWYpIHtcbiAgICAgICAgY29uc3QgX3ZpZXdSZWYgPSB0aGlzLl92aWV3Q29udGFpbmVyUmVmXG4gICAgICAgICAgLmNyZWF0ZUVtYmVkZGVkVmlldzxUZW1wbGF0ZVJlZjxUPj4oY29udGVudCwgY29udGV4dCk7XG4gICAgICAgIF92aWV3UmVmLm1hcmtGb3JDaGVjaygpO1xuXG4gICAgICAgIHJldHVybiBuZXcgQ29udGVudFJlZihbX3ZpZXdSZWYucm9vdE5vZGVzXSwgX3ZpZXdSZWYpO1xuICAgICAgfVxuICAgICAgY29uc3Qgdmlld1JlZiA9IGNvbnRlbnQuY3JlYXRlRW1iZWRkZWRWaWV3KHt9KTtcbiAgICAgIHRoaXMuX2FwcGxpY2F0aW9uUmVmLmF0dGFjaFZpZXcodmlld1JlZik7XG5cbiAgICAgIHJldHVybiBuZXcgQ29udGVudFJlZihbdmlld1JlZi5yb290Tm9kZXNdLCB2aWV3UmVmKTtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIGNvbnRlbnQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGNvbnN0IGNvbnRlbnRDbXB0RmFjdG9yeSA9IHRoaXMuX2NvbXBvbmVudEZhY3RvcnlSZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShcbiAgICAgICAgY29udGVudFxuICAgICAgKTtcblxuICAgICAgY29uc3QgbW9kYWxDb250ZW50SW5qZWN0b3IgPSBJbmplY3Rvci5jcmVhdGUoe1xuICAgICAgICBwcm92aWRlcnM6IHRoaXMuX3Byb3ZpZGVycyxcbiAgICAgICAgcGFyZW50OiB0aGlzLl9pbmplY3RvclxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IGNvbnRlbnRDbXB0RmFjdG9yeS5jcmVhdGUobW9kYWxDb250ZW50SW5qZWN0b3IpO1xuICAgICAgT2JqZWN0LmFzc2lnbihjb21wb25lbnRSZWYuaW5zdGFuY2UsIGluaXRpYWxTdGF0ZSk7XG4gICAgICB0aGlzLl9hcHBsaWNhdGlvblJlZi5hdHRhY2hWaWV3KGNvbXBvbmVudFJlZi5ob3N0Vmlldyk7XG5cbiAgICAgIHJldHVybiBuZXcgQ29udGVudFJlZihcbiAgICAgICAgW1tjb21wb25lbnRSZWYubG9jYXRpb24ubmF0aXZlRWxlbWVudF1dLFxuICAgICAgICBjb21wb25lbnRSZWYuaG9zdFZpZXcsXG4gICAgICAgIGNvbXBvbmVudFJlZlxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IENvbnRlbnRSZWYoW1t0aGlzLl9yZW5kZXJlci5jcmVhdGVUZXh0KGAke2NvbnRlbnR9YCldXSk7XG4gIH1cbn1cbiIsImltcG9ydCB7XG4gIEFwcGxpY2F0aW9uUmVmLCBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsIEVsZW1lbnRSZWYsIEluamVjdGFibGUsIEluamVjdG9yLFxuICBOZ1pvbmUsIFJlbmRlcmVyMiwgVmlld0NvbnRhaW5lclJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbXBvbmVudExvYWRlciB9IGZyb20gJy4vY29tcG9uZW50LWxvYWRlci5jbGFzcyc7XG5pbXBvcnQgeyBQb3NpdGlvbmluZ1NlcnZpY2UgfSBmcm9tICduZ3gtYm9vdHN0cmFwL3Bvc2l0aW9uaW5nJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENvbXBvbmVudExvYWRlckZhY3Rvcnkge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfbmdab25lOiBOZ1pvbmUsXG4gICAgICAgICAgICAgIHByaXZhdGUgX2luamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfcG9zU2VydmljZTogUG9zaXRpb25pbmdTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIF9hcHBsaWNhdGlvblJlZjogQXBwbGljYXRpb25SZWYpIHt9XG5cbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSBfZWxlbWVudFJlZlxuICAgKiBAcGFyYW0gX3ZpZXdDb250YWluZXJSZWZcbiAgICogQHBhcmFtIF9yZW5kZXJlclxuICAgKi9cbiAgY3JlYXRlTG9hZGVyPFQ+KF9lbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICAgICAgICAgICAgX3ZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgICAgICAgICAgICAgICBfcmVuZGVyZXI6IFJlbmRlcmVyMik6IENvbXBvbmVudExvYWRlcjxUPiB7XG4gICAgcmV0dXJuIG5ldyBDb21wb25lbnRMb2FkZXI8VD4oXG4gICAgICBfdmlld0NvbnRhaW5lclJlZixcbiAgICAgIF9yZW5kZXJlcixcbiAgICAgIF9lbGVtZW50UmVmLFxuICAgICAgdGhpcy5faW5qZWN0b3IsXG4gICAgICB0aGlzLl9jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgICB0aGlzLl9uZ1pvbmUsXG4gICAgICB0aGlzLl9hcHBsaWNhdGlvblJlZixcbiAgICAgIHRoaXMuX3Bvc1NlcnZpY2VcbiAgICApO1xuICB9XG59XG4iXSwibmFtZXMiOlsiRXZlbnRFbWl0dGVyIiwiSW5qZWN0b3IiLCJFbGVtZW50UmVmIiwibGlzdGVuVG9UcmlnZ2Vyc1YyIiwicmVnaXN0ZXJPdXRzaWRlQ2xpY2siLCJyZWdpc3RlckVzY0NsaWNrIiwiVGVtcGxhdGVSZWYiLCJJbmplY3RhYmxlIiwiQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyIiwiTmdab25lIiwiUG9zaXRpb25pbmdTZXJ2aWNlIiwiQXBwbGljYXRpb25SZWYiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFFQTs7UUFBQTs7OzZCQUZBO1FBS0M7Ozs7Ozs7Ozs7QUNFRCxRQUFBO1FBT0U7O1FBRUUsS0FBWSxFQUNaLE9BQWlCOztRQUVqQixZQUFnQztZQUVoQyxJ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
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ngx-bootstrap-component-loader.umd.js.map","sources":["ng://ngx-bootstrap/component-loader/bs-component-ref.class.ts","ng://ngx-bootstrap/component-loader/content-ref.class.ts","ng://ngx-bootstrap/component-loader/component-loader.class.ts","ng://ngx-bootstrap/component-loader/component-loader.factory.ts"],"sourcesContent":["import { TemplateRef, ViewContainerRef } from '@angular/core';\n\nexport class BsComponentRef<T> {\n templateRef: TemplateRef<T>;\n viewContainer: ViewContainerRef;\n}\n","/**\n * @copyright Valor Software\n * @copyright Angular ng-bootstrap team\n */\n\nimport { ComponentRef, ViewRef } from '@angular/core';\n\nexport class ContentRef {\n /* tslint:disable-next-line: no-any */\n nodes: any[];\n viewRef?: ViewRef;\n /* tslint:disable-next-line: no-any */\n componentRef?: ComponentRef<any>;\n\n constructor(\n /* tslint:disable-next-line: no-any */\n nodes: any[],\n viewRef?: ViewRef,\n /* tslint:disable-next-line: no-any */\n componentRef?: ComponentRef<any>\n ) {\n this.nodes = nodes;\n this.viewRef = viewRef;\n this.componentRef = componentRef;\n }\n}\n","// tslint:disable:max-file-line-count\n// todo: add delay support\n// todo: merge events onShow, onShown, etc...\n// todo: add global positioning configuration?\nimport {\n ApplicationRef,\n ComponentFactory,\n ComponentFactoryResolver,\n ComponentRef,\n ElementRef,\n EmbeddedViewRef,\n EventEmitter,\n Injector,\n NgZone,\n Renderer2,\n StaticProvider,\n TemplateRef,\n Type,\n ViewContainerRef\n} from '@angular/core';\nimport { PositioningOptions, PositioningService } from 'ngx-bootstrap/positioning';\nimport { listenToTriggersV2, registerOutsideClick } from 'ngx-bootstrap/utils';\nimport { ContentRef } from './content-ref.class';\nimport { ListenOptions } from './listen-options.model';\nimport { Subscription } from 'rxjs';\n\nexport class ComponentLoader<T> {\n onBeforeShow: EventEmitter<void> = new EventEmitter();\n /* tslint:disable-next-line: no-any*/\n onShown: EventEmitter<any> = new EventEmitter();\n /* tslint:disable-next-line: no-any*/\n onBeforeHide: EventEmitter<any> = new EventEmitter();\n onHidden: EventEmitter<boolean> = new EventEmitter();\n\n instance: T;\n _componentRef: ComponentRef<T>;\n _inlineViewRef: EmbeddedViewRef<T>;\n\n private _providers: StaticProvider[] = [];\n private _componentFactory: ComponentFactory<T>;\n private _zoneSubscription: Subscription;\n private _contentRef: ContentRef;\n private _innerComponent: ComponentRef<T>;\n\n private _unregisterListenersFn: Function;\n\n get isShown(): boolean {\n if (this._isHiding) {\n return false;\n }\n\n return !!this._componentRef;\n }\n\n private _isHiding = false;\n\n /**\n * Placement of a component. Accepts: \"top\", \"bottom\", \"left\", \"right\"\n */\n private attachment: string;\n\n /**\n * A selector specifying the element the popover should be appended to.\n * Currently only supports \"body\".\n */\n /* tslint:disable-next-line: no-any*/\n private container: string | ElementRef | any;\n\n /**\n * Specifies events that should trigger. Supports a space separated list of\n * event names.\n */\n private triggers: string;\n\n private _listenOpts: ListenOptions = {};\n private _globalListener = Function.prototype;\n\n /**\n * Do not use this directly, it should be instanced via\n * `ComponentLoadFactory.attach`\n * @internal\n */\n // tslint:disable-next-line\n public constructor(\n private _viewContainerRef: ViewContainerRef,\n private _renderer: Renderer2,\n private _elementRef: ElementRef,\n private _injector: Injector,\n private _componentFactoryResolver: ComponentFactoryResolver,\n private _ngZone: NgZone,\n private _applicationRef: ApplicationRef,\n private _posService: PositioningService\n ) {}\n\n attach(compType: Type<T>): ComponentLoader<T> {\n this._componentFactory = this._componentFactoryResolver\n .resolveComponentFactory<T>(compType);\n\n return this;\n }\n\n // todo: add behaviour: to target element, `body`, custom element\n to(container?: string): ComponentLoader<T> {\n this.container = container || this.container;\n\n return this;\n }\n\n position(opts?: PositioningOptions): ComponentLoader<T> {\n this.attachment = opts.attachment || this.attachment;\n this._elementRef = (opts.target as ElementRef) || this._elementRef;\n\n return this;\n }\n\n provide(provider: StaticProvider): ComponentLoader<T> {\n this._providers.push(provider);\n\n return this;\n }\n\n // todo: appendChild to element or document.querySelector(this.container)\n\n show(opts: {\n /* tslint:disable-next-line: no-any*/\n content?: string | TemplateRef<any>;\n /* tslint:disable-next-line: no-any*/\n context?: any;\n /* tslint:disable-next-line: no-any*/\n initialState?: any;\n /* tslint:disable-next-line: no-any*/\n [key: string]: any;\n } = {}\n ): ComponentRef<T> {\n\n this._subscribePositioning();\n this._innerComponent = null;\n\n if (!this._componentRef) {\n this.onBeforeShow.emit();\n this._contentRef = this._getContentRef(opts.content, opts.context, opts.initialState);\n\n const injector = Injector.create({\n providers: this._providers,\n parent: this._injector\n });\n\n this._componentRef = this._componentFactory.create(injector, this._contentRef.nodes);\n this._applicationRef.attachView(this._componentRef.hostView);\n // this._componentRef = this._viewContainerRef\n // .createComponent(this._componentFactory, 0, injector, this._contentRef.nodes);\n this.instance = this._componentRef.instance;\n\n Object.assign(this._componentRef.instance, opts);\n\n if (this.container instanceof ElementRef) {\n this.container.nativeElement.appendChild(\n this._componentRef.location.nativeElement\n );\n }\n\n if (this.container === 'body' && typeof document !== 'undefined') {\n document\n .querySelector(this.container as string)\n .appendChild(this._componentRef.location.nativeElement);\n }\n\n if (\n !this.container &&\n this._elementRef &&\n this._elementRef.nativeElement.parentElement\n ) {\n this._elementRef.nativeElement.parentElement.appendChild(\n this._componentRef.location.nativeElement\n );\n }\n\n // we need to manually invoke change detection since events registered\n // via\n // Renderer::listen() are not picked up by change detection with the\n // OnPush strategy\n if (this._contentRef.componentRef) {\n this._innerComponent = this._contentRef.componentRef.instance;\n this._contentRef.componentRef.changeDetectorRef.markForCheck();\n this._contentRef.componentRef.changeDetectorRef.detectChanges();\n }\n this._componentRef.changeDetectorRef.markForCheck();\n this._componentRef.changeDetectorRef.detectChanges();\n this.onShown.emit(this._componentRef.instance);\n }\n\n this._registerOutsideClick();\n\n return this._componentRef;\n }\n\n hide(): ComponentLoader<T> {\n if (!this._componentRef) {\n return this;\n }\n\n this.onBeforeHide.emit(this._componentRef.instance);\n\n const componentEl = this._componentRef.location.nativeElement;\n componentEl.parentNode.removeChild(componentEl);\n if (this._contentRef.componentRef) {\n this._contentRef.componentRef.destroy();\n }\n this._componentRef.destroy();\n if (this._viewContainerRef && this._contentRef.viewRef) {\n this._viewContainerRef.remove(\n this._viewContainerRef.indexOf(this._contentRef.viewRef)\n );\n }\n if (this._contentRef.viewRef) {\n this._contentRef.viewRef.destroy();\n }\n\n this._contentRef = null;\n this._componentRef = null;\n this._removeGlobalListener();\n\n this.onHidden.emit();\n\n return this;\n }\n\n toggle(): void {\n if (this.isShown) {\n this.hide();\n\n return;\n }\n\n this.show();\n }\n\n dispose(): void {\n if (this.isShown) {\n this.hide();\n }\n\n this._unsubscribePositioning();\n\n if (this._unregisterListenersFn) {\n this._unregisterListenersFn();\n }\n }\n\n listen(listenOpts: ListenOptions): ComponentLoader<T> {\n this.triggers = listenOpts.triggers || this.triggers;\n this._listenOpts.outsideClick = listenOpts.outsideClick;\n listenOpts.target = listenOpts.target || this._elementRef.nativeElement;\n\n const hide = (this._listenOpts.hide = () =>\n listenOpts.hide ? listenOpts.hide() : void this.hide());\n const show = (this._listenOpts.show = (registerHide: Function) => {\n listenOpts.show ? listenOpts.show(registerHide) : this.show(registerHide);\n registerHide();\n });\n\n const toggle = (registerHide: Function) => {\n this.isShown ? hide() : show(registerHide);\n };\n\n this._unregisterListenersFn = listenToTriggersV2(this._renderer, {\n target: listenOpts.target,\n triggers: listenOpts.triggers,\n show,\n hide,\n toggle\n });\n\n return this;\n }\n\n _removeGlobalListener() {\n if (this._globalListener) {\n this._globalListener();\n this._globalListener = null;\n }\n }\n\n attachInline(\n vRef: ViewContainerRef,\n /* tslint:disable-next-line: no-any*/\n template: TemplateRef<any>\n ): ComponentLoader<T> {\n this._inlineViewRef = vRef.createEmbeddedView(template);\n\n return this;\n }\n\n _registerOutsideClick(): void {\n if (!this._componentRef || !this._componentRef.location) {\n return;\n }\n // why: should run after first event bubble\n if (this._listenOpts.outsideClick) {\n const target = this._componentRef.location.nativeElement;\n setTimeout(() => {\n this._globalListener = registerOutsideClick(this._renderer, {\n targets: [target, this._elementRef.nativeElement],\n outsideClick: this._listenOpts.outsideClick,\n hide: () => this._listenOpts.hide()\n });\n });\n }\n }\n\n getInnerComponent(): ComponentRef<T> {\n return this._innerComponent;\n }\n\n private _subscribePositioning(): void {\n if (this._zoneSubscription || !this.attachment) {\n return;\n }\n\n this._zoneSubscription = this._ngZone.onStable.subscribe(() => {\n if (!this._componentRef) {\n return;\n }\n this._posService.position({\n element: this._componentRef.location,\n target: this._elementRef,\n attachment: this.attachment,\n appendToBody: this.container === 'body'\n });\n });\n }\n\n private _unsubscribePositioning(): void {\n if (!this._zoneSubscription) {\n return;\n }\n this._zoneSubscription.unsubscribe();\n this._zoneSubscription = null;\n }\n\n private _getContentRef(\n /* tslint:disable-next-line: no-any*/\n content: string | TemplateRef<any> | any,\n /* tslint:disable-next-line: no-any*/\n context?: any,\n /* tslint:disable-next-line: no-any*/\n initialState?: any\n ): ContentRef {\n if (!content) {\n return new ContentRef([]);\n }\n\n if (content instanceof TemplateRef) {\n if (this._viewContainerRef) {\n const _viewRef = this._viewContainerRef\n .createEmbeddedView<TemplateRef<T>>(content, context);\n _viewRef.markForCheck();\n\n return new ContentRef([_viewRef.rootNodes], _viewRef);\n }\n const viewRef = content.createEmbeddedView({});\n this._applicationRef.attachView(viewRef);\n\n return new ContentRef([viewRef.rootNodes], viewRef);\n }\n\n if (typeof content === 'function') {\n const contentCmptFactory = this._componentFactoryResolver.resolveComponentFactory(\n content\n );\n\n const modalContentInjector = Injector.create({\n providers: this._providers,\n parent: this._injector\n });\n\n const componentRef = contentCmptFactory.create(modalContentInjector);\n Object.assign(componentRef.instance, initialState);\n this._applicationRef.attachView(componentRef.hostView);\n\n return new ContentRef(\n [[componentRef.location.nativeElement]],\n componentRef.hostView,\n componentRef\n );\n }\n\n return new ContentRef([[this._renderer.createText(`${content}`)]]);\n }\n}\n","import {\n ApplicationRef, ComponentFactoryResolver, ElementRef, Injectable, Injector,\n NgZone, Renderer2, ViewContainerRef\n} from '@angular/core';\nimport { ComponentLoader } from './component-loader.class';\nimport { PositioningService } from 'ngx-bootstrap/positioning';\n\n@Injectable()\nexport class ComponentLoaderFactory {\n constructor(private _componentFactoryResolver: ComponentFactoryResolver,\n private _ngZone: NgZone,\n private _injector: Injector,\n private _posService: PositioningService,\n private _applicationRef: ApplicationRef) {}\n\n /**\n *\n * @param _elementRef\n * @param _viewContainerRef\n * @param _renderer\n */\n createLoader<T>(_elementRef: ElementRef,\n _viewContainerRef: ViewContainerRef,\n _renderer: Renderer2): ComponentLoader<T> {\n return new ComponentLoader<T>(\n _viewContainerRef,\n _renderer,\n _elementRef,\n this._injector,\n this._componentFactoryResolver,\n this._ngZone,\n this._applicationRef,\n this._posService\n );\n }\n}\n"],"names":["EventEmitter","Injector","ElementRef","listenToTriggersV2","registerOutsideClick","TemplateRef","Injectable","ComponentFactoryResolver","NgZone","PositioningService","ApplicationRef"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"ngx-bootstrap-component-loader.umd.js.map","sources":["ng://ngx-bootstrap/component-loader/bs-component-ref.class.ts","ng://ngx-bootstrap/component-loader/content-ref.class.ts","ng://ngx-bootstrap/component-loader/component-loader.class.ts","ng://ngx-bootstrap/component-loader/component-loader.factory.ts"],"sourcesContent":["import { TemplateRef, ViewContainerRef } from '@angular/core';\n\nexport class BsComponentRef<T> {\n templateRef: TemplateRef<T>;\n viewContainer: ViewContainerRef;\n}\n","/**\n * @copyright Valor Software\n * @copyright Angular ng-bootstrap team\n */\n\nimport { ComponentRef, ViewRef } from '@angular/core';\n\nexport class ContentRef {\n /* tslint:disable-next-line: no-any */\n nodes: any[];\n viewRef?: ViewRef;\n /* tslint:disable-next-line: no-any */\n componentRef?: ComponentRef<any>;\n\n constructor(\n /* tslint:disable-next-line: no-any */\n nodes: any[],\n viewRef?: ViewRef,\n /* tslint:disable-next-line: no-any */\n componentRef?: ComponentRef<any>\n ) {\n this.nodes = nodes;\n this.viewRef = viewRef;\n this.componentRef = componentRef;\n }\n}\n","// tslint:disable:max-file-line-count\n// todo: add delay support\n// todo: merge events onShow, onShown, etc...\n// todo: add global positioning configuration?\nimport {\n ApplicationRef,\n ComponentFactory,\n ComponentFactoryResolver,\n ComponentRef,\n ElementRef,\n EmbeddedViewRef,\n EventEmitter,\n Injector,\n NgZone,\n Renderer2,\n StaticProvider,\n TemplateRef,\n Type,\n ViewContainerRef\n} from '@angular/core';\n\nimport { PositioningOptions, PositioningService } from 'ngx-bootstrap/positioning';\n\nimport {\n listenToTriggersV2,\n registerEscClick,\n registerOutsideClick\n} from 'ngx-bootstrap/utils';\n\nimport { ContentRef } from './content-ref.class';\nimport { ListenOptions } from './listen-options.model';\nimport { Subscription } from 'rxjs';\n\nexport class ComponentLoader<T> {\n onBeforeShow: EventEmitter<void> = new EventEmitter();\n /* tslint:disable-next-line: no-any*/\n onShown: EventEmitter<any> = new EventEmitter();\n /* tslint:disable-next-line: no-any*/\n onBeforeHide: EventEmitter<any> = new EventEmitter();\n onHidden: EventEmitter<boolean> = new EventEmitter();\n\n instance: T;\n _componentRef: ComponentRef<T>;\n _inlineViewRef: EmbeddedViewRef<T>;\n\n private _providers: StaticProvider[] = [];\n private _componentFactory: ComponentFactory<T>;\n private _zoneSubscription: Subscription;\n private _contentRef: ContentRef;\n private _innerComponent: ComponentRef<T>;\n\n private _unregisterListenersFn: Function;\n\n get isShown(): boolean {\n if (this._isHiding) {\n return false;\n }\n\n return !!this._componentRef;\n }\n\n private _isHiding = false;\n\n /**\n * Placement of a component. Accepts: \"top\", \"bottom\", \"left\", \"right\"\n */\n private attachment: string;\n\n /**\n * A selector specifying the element the popover should be appended to.\n * Currently only supports \"body\".\n */\n /* tslint:disable-next-line: no-any*/\n private container: string | ElementRef | any;\n\n /**\n * Specifies events that should trigger. Supports a space separated list of\n * event names.\n */\n private triggers: string;\n\n private _listenOpts: ListenOptions = {};\n private _globalListener = Function.prototype;\n\n /**\n * Do not use this directly, it should be instanced via\n * `ComponentLoadFactory.attach`\n * @internal\n */\n // tslint:disable-next-line\n public constructor(\n private _viewContainerRef: ViewContainerRef,\n private _renderer: Renderer2,\n private _elementRef: ElementRef,\n private _injector: Injector,\n private _componentFactoryResolver: ComponentFactoryResolver,\n private _ngZone: NgZone,\n private _applicationRef: ApplicationRef,\n private _posService: PositioningService\n ) {}\n\n attach(compType: Type<T>): ComponentLoader<T> {\n this._componentFactory = this._componentFactoryResolver\n .resolveComponentFactory<T>(compType);\n\n return this;\n }\n\n // todo: add behaviour: to target element, `body`, custom element\n to(container?: string): ComponentLoader<T> {\n this.container = container || this.container;\n\n return this;\n }\n\n position(opts?: PositioningOptions): ComponentLoader<T> {\n this.attachment = opts.attachment || this.attachment;\n this._elementRef = (opts.target as ElementRef) || this._elementRef;\n\n return this;\n }\n\n provide(provider: StaticProvider): ComponentLoader<T> {\n this._providers.push(provider);\n\n return this;\n }\n\n // todo: appendChild to element or document.querySelector(this.container)\n\n show(opts: {\n /* tslint:disable-next-line: no-any*/\n content?: string | TemplateRef<any>;\n /* tslint:disable-next-line: no-any*/\n context?: any;\n /* tslint:disable-next-line: no-any*/\n initialState?: any;\n /* tslint:disable-next-line: no-any*/\n [key: string]: any;\n } = {}\n ): ComponentRef<T> {\n\n this._subscribePositioning();\n this._innerComponent = null;\n\n if (!this._componentRef) {\n this.onBeforeShow.emit();\n this._contentRef = this._getContentRef(opts.content, opts.context, opts.initialState);\n\n const injector = Injector.create({\n providers: this._providers,\n parent: this._injector\n });\n\n this._componentRef = this._componentFactory.create(injector, this._contentRef.nodes);\n this._applicationRef.attachView(this._componentRef.hostView);\n // this._componentRef = this._viewContainerRef\n // .createComponent(this._componentFactory, 0, injector, this._contentRef.nodes);\n this.instance = this._componentRef.instance;\n\n Object.assign(this._componentRef.instance, opts);\n\n if (this.container instanceof ElementRef) {\n this.container.nativeElement.appendChild(\n this._componentRef.location.nativeElement\n );\n }\n\n if (this.container === 'body' && typeof document !== 'undefined') {\n document\n .querySelector(this.container as string)\n .appendChild(this._componentRef.location.nativeElement);\n }\n\n if (\n !this.container &&\n this._elementRef &&\n this._elementRef.nativeElement.parentElement\n ) {\n this._elementRef.nativeElement.parentElement.appendChild(\n this._componentRef.location.nativeElement\n );\n }\n\n // we need to manually invoke change detection since events registered\n // via\n // Renderer::listen() are not picked up by change detection with the\n // OnPush strategy\n if (this._contentRef.componentRef) {\n this._innerComponent = this._contentRef.componentRef.instance;\n this._contentRef.componentRef.changeDetectorRef.markForCheck();\n this._contentRef.componentRef.changeDetectorRef.detectChanges();\n }\n this._componentRef.changeDetectorRef.markForCheck();\n this._componentRef.changeDetectorRef.detectChanges();\n this.onShown.emit(this._componentRef.instance);\n }\n\n this._registerOutsideClick();\n\n return this._componentRef;\n }\n\n hide(): ComponentLoader<T> {\n if (!this._componentRef) {\n return this;\n }\n\n this.onBeforeHide.emit(this._componentRef.instance);\n\n const componentEl = this._componentRef.location.nativeElement;\n componentEl.parentNode.removeChild(componentEl);\n if (this._contentRef.componentRef) {\n this._contentRef.componentRef.destroy();\n }\n this._componentRef.destroy();\n if (this._viewContainerRef && this._contentRef.viewRef) {\n this._viewContainerRef.remove(\n this._viewContainerRef.indexOf(this._contentRef.viewRef)\n );\n }\n if (this._contentRef.viewRef) {\n this._contentRef.viewRef.destroy();\n }\n\n this._contentRef = null;\n this._componentRef = null;\n this._removeGlobalListener();\n\n this.onHidden.emit();\n\n return this;\n }\n\n toggle(): void {\n if (this.isShown) {\n this.hide();\n\n return;\n }\n\n this.show();\n }\n\n dispose(): void {\n if (this.isShown) {\n this.hide();\n }\n\n this._unsubscribePositioning();\n\n if (this._unregisterListenersFn) {\n this._unregisterListenersFn();\n }\n }\n\n listen(listenOpts: ListenOptions): ComponentLoader<T> {\n this.triggers = listenOpts.triggers || this.triggers;\n this._listenOpts.outsideClick = listenOpts.outsideClick;\n this._listenOpts.outsideEsc = listenOpts.outsideEsc;\n listenOpts.target = listenOpts.target || this._elementRef.nativeElement;\n\n const hide = (this._listenOpts.hide = () =>\n listenOpts.hide ? listenOpts.hide() : void this.hide());\n const show = (this._listenOpts.show = (registerHide: Function) => {\n listenOpts.show ? listenOpts.show(registerHide) : this.show(registerHide);\n registerHide();\n });\n\n const toggle = (registerHide: Function) => {\n this.isShown ? hide() : show(registerHide);\n };\n\n this._unregisterListenersFn = listenToTriggersV2(this._renderer, {\n target: listenOpts.target,\n triggers: listenOpts.triggers,\n show,\n hide,\n toggle\n });\n\n return this;\n }\n\n _removeGlobalListener() {\n if (this._globalListener) {\n this._globalListener();\n this._globalListener = null;\n }\n }\n\n attachInline(\n vRef: ViewContainerRef,\n /* tslint:disable-next-line: no-any*/\n template: TemplateRef<any>\n ): ComponentLoader<T> {\n this._inlineViewRef = vRef.createEmbeddedView(template);\n\n return this;\n }\n\n _registerOutsideClick(): void {\n if (!this._componentRef || !this._componentRef.location) {\n return;\n }\n // why: should run after first event bubble\n if (this._listenOpts.outsideClick) {\n const target = this._componentRef.location.nativeElement;\n setTimeout(() => {\n this._globalListener = registerOutsideClick(this._renderer, {\n targets: [target, this._elementRef.nativeElement],\n outsideClick: this._listenOpts.outsideClick,\n hide: () => this._listenOpts.hide()\n });\n });\n }\n if (this._listenOpts.outsideEsc) {\n const target = this._componentRef.location.nativeElement;\n this._globalListener = registerEscClick(this._renderer, {\n targets: [target, this._elementRef.nativeElement],\n outsideEsc: this._listenOpts.outsideEsc,\n hide: () => this._listenOpts.hide()\n });\n }\n }\n\n getInnerComponent(): ComponentRef<T> {\n return this._innerComponent;\n }\n\n private _subscribePositioning(): void {\n if (this._zoneSubscription || !this.attachment) {\n return;\n }\n\n this._zoneSubscription = this._ngZone.onStable.subscribe(() => {\n if (!this._componentRef) {\n return;\n }\n this._posService.position({\n element: this._componentRef.location,\n target: this._elementRef,\n attachment: this.attachment,\n appendToBody: this.container === 'body'\n });\n });\n }\n\n private _unsubscribePositioning(): void {\n if (!this._zoneSubscription) {\n return;\n }\n this._zoneSubscription.unsubscribe();\n this._zoneSubscription = null;\n }\n\n private _getContentRef(\n /* tslint:disable-next-line: no-any*/\n content: string | TemplateRef<any> | any,\n /* tslint:disable-next-line: no-any*/\n context?: any,\n /* tslint:disable-next-line: no-any*/\n initialState?: any\n ): ContentRef {\n if (!content) {\n return new ContentRef([]);\n }\n\n if (content instanceof TemplateRef) {\n if (this._viewContainerRef) {\n const _viewRef = this._viewContainerRef\n .createEmbeddedView<TemplateRef<T>>(content, context);\n _viewRef.markForCheck();\n\n return new ContentRef([_viewRef.rootNodes], _viewRef);\n }\n const viewRef = content.createEmbeddedView({});\n this._applicationRef.attachView(viewRef);\n\n return new ContentRef([viewRef.rootNodes], viewRef);\n }\n\n if (typeof content === 'function') {\n const contentCmptFactory = this._componentFactoryResolver.resolveComponentFactory(\n content\n );\n\n const modalContentInjector = Injector.create({\n providers: this._providers,\n parent: this._injector\n });\n\n const componentRef = contentCmptFactory.create(modalContentInjector);\n Object.assign(componentRef.instance, initialState);\n this._applicationRef.attachView(componentRef.hostView);\n\n return new ContentRef(\n [[componentRef.location.nativeElement]],\n componentRef.hostView,\n componentRef\n );\n }\n\n return new ContentRef([[this._renderer.createText(`${content}`)]]);\n }\n}\n","import {\n ApplicationRef, ComponentFactoryResolver, ElementRef, Injectable, Injector,\n NgZone, Renderer2, ViewContainerRef\n} from '@angular/core';\nimport { ComponentLoader } from './component-loader.class';\nimport { PositioningService } from 'ngx-bootstrap/positioning';\n\n@Injectable()\nexport class ComponentLoaderFactory {\n constructor(private _componentFactoryResolver: ComponentFactoryResolver,\n private _ngZone: NgZone,\n private _injector: Injector,\n private _posService: PositioningService,\n private _applicationRef: ApplicationRef) {}\n\n /**\n *\n * @param _elementRef\n * @param _viewContainerRef\n * @param _renderer\n */\n createLoader<T>(_elementRef: ElementRef,\n _viewContainerRef: ViewContainerRef,\n _renderer: Renderer2): ComponentLoader<T> {\n return new ComponentLoader<T>(\n _viewContainerRef,\n _renderer,\n _elementRef,\n this._injector,\n this._componentFactoryResolver,\n this._ngZone,\n this._applicationRef,\n this._posService\n );\n }\n}\n"],"names":["EventEmitter","Injector","ElementRef","listenToTriggersV2","registerOutsideClick","registerEscClick","TemplateRef","Injectable","ComponentFactoryResolver","NgZone","PositioningService","ApplicationRef"],"mappings":"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"}
|
@@ -1,2 +1,2 @@
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("ngx-bootstrap/utils"),require("ngx-bootstrap/positioning")):"function"==typeof define&&define.amd?define("ngx-bootstrap/component-loader",["exports","@angular/core","ngx-bootstrap/utils","ngx-bootstrap/positioning"],t):t((e["ngx-bootstrap"]=e["ngx-bootstrap"]||{},e["ngx-bootstrap"]["component-loader"]={}),e.ng.core,e.utils,e.positioning)}(this,function(e,h,s,t){"use strict";var n=function r(){},a=function c(e,t,n){this.nodes=e,this.viewRef=t,this.componentRef=n},i=function(){function e(e,t,n,i,o,s,r,c){this._viewContainerRef=e,this._renderer=t,this._elementRef=n,this._injector=i,this._componentFactoryResolver=o,this._ngZone=s,this._applicationRef=r,this._posService=c,this.onBeforeShow=new h.EventEmitter,this.onShown=new h.EventEmitter,this.onBeforeHide=new h.EventEmitter,this.onHidden=new h.EventEmitter,this._providers=[],this._isHiding=!1,this._listenOpts={},this._globalListener=Function.prototype}return Object.defineProperty(e.prototype,"isShown",{get:function(){return!this._isHiding&&!!this._componentRef},enumerable:!0,configurable:!0}),e.prototype.attach=function(e){return this._componentFactory=this._componentFactoryResolver.resolveComponentFactory(e),this},e.prototype.to=function(e){return this.container=e||this.container,this},e.prototype.position=function(e){return this.attachment=e.attachment||this.attachment,this._elementRef=e.target||this._elementRef,this},e.prototype.provide=function(e){return this._providers.push(e),this},e.prototype.show=function(e){if(void 0===e&&(e={}),this._subscribePositioning(),this._innerComponent=null,!this._componentRef){this.onBeforeShow.emit(),this._contentRef=this._getContentRef(e.content,e.context,e.initialState);var t=h.Injector.create({providers:this._providers,parent:this._injector});this._componentRef=this._componentFactory.create(t,this._contentRef.nodes),this._applicationRef.attachView(this._componentRef.hostView),this.instance=this._componentRef.instance,Object.assign(this._componentRef.instance,e),this.container instanceof h.ElementRef&&this.container.nativeElement.appendChild(this._componentRef.location.nativeElement),"body"===this.container&&"undefined"!=typeof document&&document.querySelector(this.container).appendChild(this._componentRef.location.nativeElement),!this.container&&this._elementRef&&this._elementRef.nativeElement.parentElement&&this._elementRef.nativeElement.parentElement.appendChild(this._componentRef.location.nativeElement),this._contentRef.componentRef&&(this._innerComponent=this._contentRef.componentRef.instance,this._contentRef.componentRef.changeDetectorRef.markForCheck(),this._contentRef.componentRef.changeDetectorRef.detectChanges()),this._componentRef.changeDetectorRef.markForCheck(),this._componentRef.changeDetectorRef.detectChanges(),this.onShown.emit(this._componentRef.instance)}return this._registerOutsideClick(),this._componentRef},e.prototype.hide=function(){if(!this._componentRef)return this;this.onBeforeHide.emit(this._componentRef.instance);var e=this._componentRef.location.nativeElement;return e.parentNode.removeChild(e),this._contentRef.componentRef&&this._contentRef.componentRef.destroy(),this._componentRef.destroy(),this._viewContainerRef&&this._contentRef.viewRef&&this._viewContainerRef.remove(this._viewContainerRef.indexOf(this._contentRef.viewRef)),this._contentRef.viewRef&&this._contentRef.viewRef.destroy(),this._contentRef=null,this._componentRef=null,this._removeGlobalListener(),this.onHidden.emit(),this},e.prototype.toggle=function(){this.isShown?this.hide():this.show()},e.prototype.dispose=function(){this.isShown&&this.hide(),this._unsubscribePositioning(),this._unregisterListenersFn&&this._unregisterListenersFn()},e.prototype.listen=function(t){var n=this;this.triggers=t.triggers||this.triggers,this._listenOpts.outsideClick=t.outsideClick,t.target=t.target||this._elementRef.nativeElement;var i=this._listenOpts.hide=function(){return t.hide?t.hide():void n.hide()},o=this._listenOpts.show=function(e){t.show?t.show(e):n.show(e),e()};return this._unregisterListenersFn=s.listenToTriggersV2(this._renderer,{target:t.target,triggers:t.triggers,show:o,hide:i,toggle:function(e){n.isShown?i():o(e)}}),this},e.prototype._removeGlobalListener=function(){this._globalListener&&(this._globalListener(),this._globalListener=null)},e.prototype.attachInline=function(e,t){return this._inlineViewRef=e.createEmbeddedView(t),this},e.prototype._registerOutsideClick=function(){var e=this;if(this._componentRef&&this._componentRef.location
|
1
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("ngx-bootstrap/utils"),require("ngx-bootstrap/positioning")):"function"==typeof define&&define.amd?define("ngx-bootstrap/component-loader",["exports","@angular/core","ngx-bootstrap/utils","ngx-bootstrap/positioning"],t):t((e["ngx-bootstrap"]=e["ngx-bootstrap"]||{},e["ngx-bootstrap"]["component-loader"]={}),e.ng.core,e.utils,e.positioning)}(this,function(e,h,s,t){"use strict";var n=function r(){},a=function c(e,t,n){this.nodes=e,this.viewRef=t,this.componentRef=n},i=function(){function e(e,t,n,i,o,s,r,c){this._viewContainerRef=e,this._renderer=t,this._elementRef=n,this._injector=i,this._componentFactoryResolver=o,this._ngZone=s,this._applicationRef=r,this._posService=c,this.onBeforeShow=new h.EventEmitter,this.onShown=new h.EventEmitter,this.onBeforeHide=new h.EventEmitter,this.onHidden=new h.EventEmitter,this._providers=[],this._isHiding=!1,this._listenOpts={},this._globalListener=Function.prototype}return Object.defineProperty(e.prototype,"isShown",{get:function(){return!this._isHiding&&!!this._componentRef},enumerable:!0,configurable:!0}),e.prototype.attach=function(e){return this._componentFactory=this._componentFactoryResolver.resolveComponentFactory(e),this},e.prototype.to=function(e){return this.container=e||this.container,this},e.prototype.position=function(e){return this.attachment=e.attachment||this.attachment,this._elementRef=e.target||this._elementRef,this},e.prototype.provide=function(e){return this._providers.push(e),this},e.prototype.show=function(e){if(void 0===e&&(e={}),this._subscribePositioning(),this._innerComponent=null,!this._componentRef){this.onBeforeShow.emit(),this._contentRef=this._getContentRef(e.content,e.context,e.initialState);var t=h.Injector.create({providers:this._providers,parent:this._injector});this._componentRef=this._componentFactory.create(t,this._contentRef.nodes),this._applicationRef.attachView(this._componentRef.hostView),this.instance=this._componentRef.instance,Object.assign(this._componentRef.instance,e),this.container instanceof h.ElementRef&&this.container.nativeElement.appendChild(this._componentRef.location.nativeElement),"body"===this.container&&"undefined"!=typeof document&&document.querySelector(this.container).appendChild(this._componentRef.location.nativeElement),!this.container&&this._elementRef&&this._elementRef.nativeElement.parentElement&&this._elementRef.nativeElement.parentElement.appendChild(this._componentRef.location.nativeElement),this._contentRef.componentRef&&(this._innerComponent=this._contentRef.componentRef.instance,this._contentRef.componentRef.changeDetectorRef.markForCheck(),this._contentRef.componentRef.changeDetectorRef.detectChanges()),this._componentRef.changeDetectorRef.markForCheck(),this._componentRef.changeDetectorRef.detectChanges(),this.onShown.emit(this._componentRef.instance)}return this._registerOutsideClick(),this._componentRef},e.prototype.hide=function(){if(!this._componentRef)return this;this.onBeforeHide.emit(this._componentRef.instance);var e=this._componentRef.location.nativeElement;return e.parentNode.removeChild(e),this._contentRef.componentRef&&this._contentRef.componentRef.destroy(),this._componentRef.destroy(),this._viewContainerRef&&this._contentRef.viewRef&&this._viewContainerRef.remove(this._viewContainerRef.indexOf(this._contentRef.viewRef)),this._contentRef.viewRef&&this._contentRef.viewRef.destroy(),this._contentRef=null,this._componentRef=null,this._removeGlobalListener(),this.onHidden.emit(),this},e.prototype.toggle=function(){this.isShown?this.hide():this.show()},e.prototype.dispose=function(){this.isShown&&this.hide(),this._unsubscribePositioning(),this._unregisterListenersFn&&this._unregisterListenersFn()},e.prototype.listen=function(t){var n=this;this.triggers=t.triggers||this.triggers,this._listenOpts.outsideClick=t.outsideClick,this._listenOpts.outsideEsc=t.outsideEsc,t.target=t.target||this._elementRef.nativeElement;var i=this._listenOpts.hide=function(){return t.hide?t.hide():void n.hide()},o=this._listenOpts.show=function(e){t.show?t.show(e):n.show(e),e()};return this._unregisterListenersFn=s.listenToTriggersV2(this._renderer,{target:t.target,triggers:t.triggers,show:o,hide:i,toggle:function(e){n.isShown?i():o(e)}}),this},e.prototype._removeGlobalListener=function(){this._globalListener&&(this._globalListener(),this._globalListener=null)},e.prototype.attachInline=function(e,t){return this._inlineViewRef=e.createEmbeddedView(t),this},e.prototype._registerOutsideClick=function(){var e=this;if(this._componentRef&&this._componentRef.location){if(this._listenOpts.outsideClick){var t=this._componentRef.location.nativeElement;setTimeout(function(){e._globalListener=s.registerOutsideClick(e._renderer,{targets:[t,e._elementRef.nativeElement],outsideClick:e._listenOpts.outsideClick,hide:function(){return e._listenOpts.hide()}})})}if(this._listenOpts.outsideEsc){var n=this._componentRef.location.nativeElement;this._globalListener=s.registerEscClick(this._renderer,{targets:[n,this._elementRef.nativeElement],outsideEsc:this._listenOpts.outsideEsc,hide:function(){return e._listenOpts.hide()}})}}},e.prototype.getInnerComponent=function(){return this._innerComponent},e.prototype._subscribePositioning=function(){var e=this;!this._zoneSubscription&&this.attachment&&(this._zoneSubscription=this._ngZone.onStable.subscribe(function(){e._componentRef&&e._posService.position({element:e._componentRef.location,target:e._elementRef,attachment:e.attachment,appendToBody:"body"===e.container})}))},e.prototype._unsubscribePositioning=function(){this._zoneSubscription&&(this._zoneSubscription.unsubscribe(),this._zoneSubscription=null)},e.prototype._getContentRef=function(e,t,n){if(!e)return new a([]);if(e instanceof h.TemplateRef){if(this._viewContainerRef){var i=this._viewContainerRef.createEmbeddedView(e,t);return i.markForCheck(),new a([i.rootNodes],i)}var o=e.createEmbeddedView({});return this._applicationRef.attachView(o),new a([o.rootNodes],o)}if("function"!=typeof e)return new a([[this._renderer.createText(""+e)]]);var s=this._componentFactoryResolver.resolveComponentFactory(e),r=h.Injector.create({providers:this._providers,parent:this._injector}),c=s.create(r);return Object.assign(c.instance,n),this._applicationRef.attachView(c.hostView),new a([[c.location.nativeElement]],c.hostView,c)},e}(),o=function(){function e(e,t,n,i,o){this._componentFactoryResolver=e,this._ngZone=t,this._injector=n,this._posService=i,this._applicationRef=o}return e.prototype.createLoader=function(e,t,n){return new i(t,n,e,this._injector,this._componentFactoryResolver,this._ngZone,this._applicationRef,this._posService)},e.decorators=[{type:h.Injectable}],e.ctorParameters=function(){return[{type:h.ComponentFactoryResolver},{type:h.NgZone},{type:h.Injector},{type:t.PositioningService},{type:h.ApplicationRef}]},e}();e.BsComponentRef=n,e.ComponentLoader=i,e.ComponentLoaderFactory=o,e.ContentRef=a,Object.defineProperty(e,"__esModule",{value:!0})});
|
2
2
|
//# sourceMappingURL=ngx-bootstrap-component-loader.umd.min.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["ng://ngx-bootstrap/component-loader/bs-component-ref.class.ts","ng://ngx-bootstrap/component-loader/content-ref.class.ts","ng://ngx-bootstrap/component-loader/component-loader.class.ts","ng://ngx-bootstrap/component-loader/component-loader.factory.ts"],"names":["BsComponentRef","ContentRef","nodes","viewRef","componentRef","this","ComponentLoader","_viewContainerRef","_renderer","_elementRef","_injector","_componentFactoryResolver","_ngZone","_applicationRef","_posService","EventEmitter","Function","prototype","Object","defineProperty","_isHiding","_componentRef","attach","compType","_componentFactory","resolveComponentFactory","to","container","position","opts","attachment","provide","provider","_providers","push","show","_subscribePositioning","_innerComponent","onBeforeShow","emit","_contentRef","_getContentRef","content","context","initialState","injector","Injector","create","providers","parent","attachView","hostView","instance","assign","ElementRef","nativeElement","appendChild","location","document","querySelector","parentElement","changeDetectorRef","markForCheck","detectChanges","onShown","_registerOutsideClick","hide","onBeforeHide","componentEl","parentNode","removeChild","destroy","remove","indexOf","_removeGlobalListener","onHidden","toggle","isShown","dispose","_unsubscribePositioning","_unregisterListenersFn","listen","listenOpts","_this","triggers","_listenOpts","outsideClick","target","registerHide","listenToTriggersV2","_globalListener","attachInline","vRef","template","_inlineViewRef","createEmbeddedView","target_1","setTimeout","registerOutsideClick","targets","getInnerComponent","_zoneSubscription","onStable","subscribe","element","appendToBody","unsubscribe","TemplateRef","_viewRef","rootNodes","createText","contentCmptFactory","modalContentInjector","ComponentLoaderFactory","createLoader","Injectable","ComponentFactoryResolver","NgZone","PositioningService","ApplicationRef"],"mappings":"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","sourcesContent":["import { TemplateRef, ViewContainerRef } from '@angular/core';\n\nexport class BsComponentRef<T> {\n templateRef: TemplateRef<T>;\n viewContainer: ViewContainerRef;\n}\n","/**\n * @copyright Valor Software\n * @copyright Angular ng-bootstrap team\n */\n\nimport { ComponentRef, ViewRef } from '@angular/core';\n\nexport class ContentRef {\n /* tslint:disable-next-line: no-any */\n nodes: any[];\n viewRef?: ViewRef;\n /* tslint:disable-next-line: no-any */\n componentRef?: ComponentRef<any>;\n\n constructor(\n /* tslint:disable-next-line: no-any */\n nodes: any[],\n viewRef?: ViewRef,\n /* tslint:disable-next-line: no-any */\n componentRef?: ComponentRef<any>\n ) {\n this.nodes = nodes;\n this.viewRef = viewRef;\n this.componentRef = componentRef;\n }\n}\n","// tslint:disable:max-file-line-count\n// todo: add delay support\n// todo: merge events onShow, onShown, etc...\n// todo: add global positioning configuration?\nimport {\n ApplicationRef,\n ComponentFactory,\n ComponentFactoryResolver,\n ComponentRef,\n ElementRef,\n EmbeddedViewRef,\n EventEmitter,\n Injector,\n NgZone,\n Renderer2,\n StaticProvider,\n TemplateRef,\n Type,\n ViewContainerRef\n} from '@angular/core';\nimport { PositioningOptions, PositioningService } from 'ngx-bootstrap/positioning';\nimport { listenToTriggersV2, registerOutsideClick } from 'ngx-bootstrap/utils';\nimport { ContentRef } from './content-ref.class';\nimport { ListenOptions } from './listen-options.model';\nimport { Subscription } from 'rxjs';\n\nexport class ComponentLoader<T> {\n onBeforeShow: EventEmitter<void> = new EventEmitter();\n /* tslint:disable-next-line: no-any*/\n onShown: EventEmitter<any> = new EventEmitter();\n /* tslint:disable-next-line: no-any*/\n onBeforeHide: EventEmitter<any> = new EventEmitter();\n onHidden: EventEmitter<boolean> = new EventEmitter();\n\n instance: T;\n _componentRef: ComponentRef<T>;\n _inlineViewRef: EmbeddedViewRef<T>;\n\n private _providers: StaticProvider[] = [];\n private _componentFactory: ComponentFactory<T>;\n private _zoneSubscription: Subscription;\n private _contentRef: ContentRef;\n private _innerComponent: ComponentRef<T>;\n\n private _unregisterListenersFn: Function;\n\n get isShown(): boolean {\n if (this._isHiding) {\n return false;\n }\n\n return !!this._componentRef;\n }\n\n private _isHiding = false;\n\n /**\n * Placement of a component. Accepts: \"top\", \"bottom\", \"left\", \"right\"\n */\n private attachment: string;\n\n /**\n * A selector specifying the element the popover should be appended to.\n * Currently only supports \"body\".\n */\n /* tslint:disable-next-line: no-any*/\n private container: string | ElementRef | any;\n\n /**\n * Specifies events that should trigger. Supports a space separated list of\n * event names.\n */\n private triggers: string;\n\n private _listenOpts: ListenOptions = {};\n private _globalListener = Function.prototype;\n\n /**\n * Do not use this directly, it should be instanced via\n * `ComponentLoadFactory.attach`\n * @internal\n */\n // tslint:disable-next-line\n public constructor(\n private _viewContainerRef: ViewContainerRef,\n private _renderer: Renderer2,\n private _elementRef: ElementRef,\n private _injector: Injector,\n private _componentFactoryResolver: ComponentFactoryResolver,\n private _ngZone: NgZone,\n private _applicationRef: ApplicationRef,\n private _posService: PositioningService\n ) {}\n\n attach(compType: Type<T>): ComponentLoader<T> {\n this._componentFactory = this._componentFactoryResolver\n .resolveComponentFactory<T>(compType);\n\n return this;\n }\n\n // todo: add behaviour: to target element, `body`, custom element\n to(container?: string): ComponentLoader<T> {\n this.container = container || this.container;\n\n return this;\n }\n\n position(opts?: PositioningOptions): ComponentLoader<T> {\n this.attachment = opts.attachment || this.attachment;\n this._elementRef = (opts.target as ElementRef) || this._elementRef;\n\n return this;\n }\n\n provide(provider: StaticProvider): ComponentLoader<T> {\n this._providers.push(provider);\n\n return this;\n }\n\n // todo: appendChild to element or document.querySelector(this.container)\n\n show(opts: {\n /* tslint:disable-next-line: no-any*/\n content?: string | TemplateRef<any>;\n /* tslint:disable-next-line: no-any*/\n context?: any;\n /* tslint:disable-next-line: no-any*/\n initialState?: any;\n /* tslint:disable-next-line: no-any*/\n [key: string]: any;\n } = {}\n ): ComponentRef<T> {\n\n this._subscribePositioning();\n this._innerComponent = null;\n\n if (!this._componentRef) {\n this.onBeforeShow.emit();\n this._contentRef = this._getContentRef(opts.content, opts.context, opts.initialState);\n\n const injector = Injector.create({\n providers: this._providers,\n parent: this._injector\n });\n\n this._componentRef = this._componentFactory.create(injector, this._contentRef.nodes);\n this._applicationRef.attachView(this._componentRef.hostView);\n // this._componentRef = this._viewContainerRef\n // .createComponent(this._componentFactory, 0, injector, this._contentRef.nodes);\n this.instance = this._componentRef.instance;\n\n Object.assign(this._componentRef.instance, opts);\n\n if (this.container instanceof ElementRef) {\n this.container.nativeElement.appendChild(\n this._componentRef.location.nativeElement\n );\n }\n\n if (this.container === 'body' && typeof document !== 'undefined') {\n document\n .querySelector(this.container as string)\n .appendChild(this._componentRef.location.nativeElement);\n }\n\n if (\n !this.container &&\n this._elementRef &&\n this._elementRef.nativeElement.parentElement\n ) {\n this._elementRef.nativeElement.parentElement.appendChild(\n this._componentRef.location.nativeElement\n );\n }\n\n // we need to manually invoke change detection since events registered\n // via\n // Renderer::listen() are not picked up by change detection with the\n // OnPush strategy\n if (this._contentRef.componentRef) {\n this._innerComponent = this._contentRef.componentRef.instance;\n this._contentRef.componentRef.changeDetectorRef.markForCheck();\n this._contentRef.componentRef.changeDetectorRef.detectChanges();\n }\n this._componentRef.changeDetectorRef.markForCheck();\n this._componentRef.changeDetectorRef.detectChanges();\n this.onShown.emit(this._componentRef.instance);\n }\n\n this._registerOutsideClick();\n\n return this._componentRef;\n }\n\n hide(): ComponentLoader<T> {\n if (!this._componentRef) {\n return this;\n }\n\n this.onBeforeHide.emit(this._componentRef.instance);\n\n const componentEl = this._componentRef.location.nativeElement;\n componentEl.parentNode.removeChild(componentEl);\n if (this._contentRef.componentRef) {\n this._contentRef.componentRef.destroy();\n }\n this._componentRef.destroy();\n if (this._viewContainerRef && this._contentRef.viewRef) {\n this._viewContainerRef.remove(\n this._viewContainerRef.indexOf(this._contentRef.viewRef)\n );\n }\n if (this._contentRef.viewRef) {\n this._contentRef.viewRef.destroy();\n }\n\n this._contentRef = null;\n this._componentRef = null;\n this._removeGlobalListener();\n\n this.onHidden.emit();\n\n return this;\n }\n\n toggle(): void {\n if (this.isShown) {\n this.hide();\n\n return;\n }\n\n this.show();\n }\n\n dispose(): void {\n if (this.isShown) {\n this.hide();\n }\n\n this._unsubscribePositioning();\n\n if (this._unregisterListenersFn) {\n this._unregisterListenersFn();\n }\n }\n\n listen(listenOpts: ListenOptions): ComponentLoader<T> {\n this.triggers = listenOpts.triggers || this.triggers;\n this._listenOpts.outsideClick = listenOpts.outsideClick;\n listenOpts.target = listenOpts.target || this._elementRef.nativeElement;\n\n const hide = (this._listenOpts.hide = () =>\n listenOpts.hide ? listenOpts.hide() : void this.hide());\n const show = (this._listenOpts.show = (registerHide: Function) => {\n listenOpts.show ? listenOpts.show(registerHide) : this.show(registerHide);\n registerHide();\n });\n\n const toggle = (registerHide: Function) => {\n this.isShown ? hide() : show(registerHide);\n };\n\n this._unregisterListenersFn = listenToTriggersV2(this._renderer, {\n target: listenOpts.target,\n triggers: listenOpts.triggers,\n show,\n hide,\n toggle\n });\n\n return this;\n }\n\n _removeGlobalListener() {\n if (this._globalListener) {\n this._globalListener();\n this._globalListener = null;\n }\n }\n\n attachInline(\n vRef: ViewContainerRef,\n /* tslint:disable-next-line: no-any*/\n template: TemplateRef<any>\n ): ComponentLoader<T> {\n this._inlineViewRef = vRef.createEmbeddedView(template);\n\n return this;\n }\n\n _registerOutsideClick(): void {\n if (!this._componentRef || !this._componentRef.location) {\n return;\n }\n // why: should run after first event bubble\n if (this._listenOpts.outsideClick) {\n const target = this._componentRef.location.nativeElement;\n setTimeout(() => {\n this._globalListener = registerOutsideClick(this._renderer, {\n targets: [target, this._elementRef.nativeElement],\n outsideClick: this._listenOpts.outsideClick,\n hide: () => this._listenOpts.hide()\n });\n });\n }\n }\n\n getInnerComponent(): ComponentRef<T> {\n return this._innerComponent;\n }\n\n private _subscribePositioning(): void {\n if (this._zoneSubscription || !this.attachment) {\n return;\n }\n\n this._zoneSubscription = this._ngZone.onStable.subscribe(() => {\n if (!this._componentRef) {\n return;\n }\n this._posService.position({\n element: this._componentRef.location,\n target: this._elementRef,\n attachment: this.attachment,\n appendToBody: this.container === 'body'\n });\n });\n }\n\n private _unsubscribePositioning(): void {\n if (!this._zoneSubscription) {\n return;\n }\n this._zoneSubscription.unsubscribe();\n this._zoneSubscription = null;\n }\n\n private _getContentRef(\n /* tslint:disable-next-line: no-any*/\n content: string | TemplateRef<any> | any,\n /* tslint:disable-next-line: no-any*/\n context?: any,\n /* tslint:disable-next-line: no-any*/\n initialState?: any\n ): ContentRef {\n if (!content) {\n return new ContentRef([]);\n }\n\n if (content instanceof TemplateRef) {\n if (this._viewContainerRef) {\n const _viewRef = this._viewContainerRef\n .createEmbeddedView<TemplateRef<T>>(content, context);\n _viewRef.markForCheck();\n\n return new ContentRef([_viewRef.rootNodes], _viewRef);\n }\n const viewRef = content.createEmbeddedView({});\n this._applicationRef.attachView(viewRef);\n\n return new ContentRef([viewRef.rootNodes], viewRef);\n }\n\n if (typeof content === 'function') {\n const contentCmptFactory = this._componentFactoryResolver.resolveComponentFactory(\n content\n );\n\n const modalContentInjector = Injector.create({\n providers: this._providers,\n parent: this._injector\n });\n\n const componentRef = contentCmptFactory.create(modalContentInjector);\n Object.assign(componentRef.instance, initialState);\n this._applicationRef.attachView(componentRef.hostView);\n\n return new ContentRef(\n [[componentRef.location.nativeElement]],\n componentRef.hostView,\n componentRef\n );\n }\n\n return new ContentRef([[this._renderer.createText(`${content}`)]]);\n }\n}\n","import {\n ApplicationRef, ComponentFactoryResolver, ElementRef, Injectable, Injector,\n NgZone, Renderer2, ViewContainerRef\n} from '@angular/core';\nimport { ComponentLoader } from './component-loader.class';\nimport { PositioningService } from 'ngx-bootstrap/positioning';\n\n@Injectable()\nexport class ComponentLoaderFactory {\n constructor(private _componentFactoryResolver: ComponentFactoryResolver,\n private _ngZone: NgZone,\n private _injector: Injector,\n private _posService: PositioningService,\n private _applicationRef: ApplicationRef) {}\n\n /**\n *\n * @param _elementRef\n * @param _viewContainerRef\n * @param _renderer\n */\n createLoader<T>(_elementRef: ElementRef,\n _viewContainerRef: ViewContainerRef,\n _renderer: Renderer2): ComponentLoader<T> {\n return new ComponentLoader<T>(\n _viewContainerRef,\n _renderer,\n _elementRef,\n this._injector,\n this._componentFactoryResolver,\n this._ngZone,\n this._applicationRef,\n this._posService\n );\n }\n}\n"]}
|
1
|
+
{"version":3,"sources":["ng://ngx-bootstrap/component-loader/bs-component-ref.class.ts","ng://ngx-bootstrap/component-loader/content-ref.class.ts","ng://ngx-bootstrap/component-loader/component-loader.class.ts","ng://ngx-bootstrap/component-loader/component-loader.factory.ts"],"names":["BsComponentRef","ContentRef","nodes","viewRef","componentRef","this","ComponentLoader","_viewContainerRef","_renderer","_elementRef","_injector","_componentFactoryResolver","_ngZone","_applicationRef","_posService","EventEmitter","Function","prototype","Object","defineProperty","_isHiding","_componentRef","attach","compType","_componentFactory","resolveComponentFactory","to","container","position","opts","attachment","provide","provider","_providers","push","show","_subscribePositioning","_innerComponent","onBeforeShow","emit","_contentRef","_getContentRef","content","context","initialState","injector","Injector","create","providers","parent","attachView","hostView","instance","assign","ElementRef","nativeElement","appendChild","location","document","querySelector","parentElement","changeDetectorRef","markForCheck","detectChanges","onShown","_registerOutsideClick","hide","onBeforeHide","componentEl","parentNode","removeChild","destroy","remove","indexOf","_removeGlobalListener","onHidden","toggle","isShown","dispose","_unsubscribePositioning","_unregisterListenersFn","listen","listenOpts","_this","triggers","_listenOpts","outsideClick","outsideEsc","target","registerHide","listenToTriggersV2","_globalListener","attachInline","vRef","template","_inlineViewRef","createEmbeddedView","target_1","setTimeout","registerOutsideClick","targets","registerEscClick","getInnerComponent","_zoneSubscription","onStable","subscribe","element","appendToBody","unsubscribe","TemplateRef","_viewRef","rootNodes","createText","contentCmptFactory","modalContentInjector","ComponentLoaderFactory","createLoader","Injectable","ComponentFactoryResolver","NgZone","PositioningService","ApplicationRef"],"mappings":"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","sourcesContent":["import { TemplateRef, ViewContainerRef } from '@angular/core';\n\nexport class BsComponentRef<T> {\n templateRef: TemplateRef<T>;\n viewContainer: ViewContainerRef;\n}\n","/**\n * @copyright Valor Software\n * @copyright Angular ng-bootstrap team\n */\n\nimport { ComponentRef, ViewRef } from '@angular/core';\n\nexport class ContentRef {\n /* tslint:disable-next-line: no-any */\n nodes: any[];\n viewRef?: ViewRef;\n /* tslint:disable-next-line: no-any */\n componentRef?: ComponentRef<any>;\n\n constructor(\n /* tslint:disable-next-line: no-any */\n nodes: any[],\n viewRef?: ViewRef,\n /* tslint:disable-next-line: no-any */\n componentRef?: ComponentRef<any>\n ) {\n this.nodes = nodes;\n this.viewRef = viewRef;\n this.componentRef = componentRef;\n }\n}\n","// tslint:disable:max-file-line-count\n// todo: add delay support\n// todo: merge events onShow, onShown, etc...\n// todo: add global positioning configuration?\nimport {\n ApplicationRef,\n ComponentFactory,\n ComponentFactoryResolver,\n ComponentRef,\n ElementRef,\n EmbeddedViewRef,\n EventEmitter,\n Injector,\n NgZone,\n Renderer2,\n StaticProvider,\n TemplateRef,\n Type,\n ViewContainerRef\n} from '@angular/core';\n\nimport { PositioningOptions, PositioningService } from 'ngx-bootstrap/positioning';\n\nimport {\n listenToTriggersV2,\n registerEscClick,\n registerOutsideClick\n} from 'ngx-bootstrap/utils';\n\nimport { ContentRef } from './content-ref.class';\nimport { ListenOptions } from './listen-options.model';\nimport { Subscription } from 'rxjs';\n\nexport class ComponentLoader<T> {\n onBeforeShow: EventEmitter<void> = new EventEmitter();\n /* tslint:disable-next-line: no-any*/\n onShown: EventEmitter<any> = new EventEmitter();\n /* tslint:disable-next-line: no-any*/\n onBeforeHide: EventEmitter<any> = new EventEmitter();\n onHidden: EventEmitter<boolean> = new EventEmitter();\n\n instance: T;\n _componentRef: ComponentRef<T>;\n _inlineViewRef: EmbeddedViewRef<T>;\n\n private _providers: StaticProvider[] = [];\n private _componentFactory: ComponentFactory<T>;\n private _zoneSubscription: Subscription;\n private _contentRef: ContentRef;\n private _innerComponent: ComponentRef<T>;\n\n private _unregisterListenersFn: Function;\n\n get isShown(): boolean {\n if (this._isHiding) {\n return false;\n }\n\n return !!this._componentRef;\n }\n\n private _isHiding = false;\n\n /**\n * Placement of a component. Accepts: \"top\", \"bottom\", \"left\", \"right\"\n */\n private attachment: string;\n\n /**\n * A selector specifying the element the popover should be appended to.\n * Currently only supports \"body\".\n */\n /* tslint:disable-next-line: no-any*/\n private container: string | ElementRef | any;\n\n /**\n * Specifies events that should trigger. Supports a space separated list of\n * event names.\n */\n private triggers: string;\n\n private _listenOpts: ListenOptions = {};\n private _globalListener = Function.prototype;\n\n /**\n * Do not use this directly, it should be instanced via\n * `ComponentLoadFactory.attach`\n * @internal\n */\n // tslint:disable-next-line\n public constructor(\n private _viewContainerRef: ViewContainerRef,\n private _renderer: Renderer2,\n private _elementRef: ElementRef,\n private _injector: Injector,\n private _componentFactoryResolver: ComponentFactoryResolver,\n private _ngZone: NgZone,\n private _applicationRef: ApplicationRef,\n private _posService: PositioningService\n ) {}\n\n attach(compType: Type<T>): ComponentLoader<T> {\n this._componentFactory = this._componentFactoryResolver\n .resolveComponentFactory<T>(compType);\n\n return this;\n }\n\n // todo: add behaviour: to target element, `body`, custom element\n to(container?: string): ComponentLoader<T> {\n this.container = container || this.container;\n\n return this;\n }\n\n position(opts?: PositioningOptions): ComponentLoader<T> {\n this.attachment = opts.attachment || this.attachment;\n this._elementRef = (opts.target as ElementRef) || this._elementRef;\n\n return this;\n }\n\n provide(provider: StaticProvider): ComponentLoader<T> {\n this._providers.push(provider);\n\n return this;\n }\n\n // todo: appendChild to element or document.querySelector(this.container)\n\n show(opts: {\n /* tslint:disable-next-line: no-any*/\n content?: string | TemplateRef<any>;\n /* tslint:disable-next-line: no-any*/\n context?: any;\n /* tslint:disable-next-line: no-any*/\n initialState?: any;\n /* tslint:disable-next-line: no-any*/\n [key: string]: any;\n } = {}\n ): ComponentRef<T> {\n\n this._subscribePositioning();\n this._innerComponent = null;\n\n if (!this._componentRef) {\n this.onBeforeShow.emit();\n this._contentRef = this._getContentRef(opts.content, opts.context, opts.initialState);\n\n const injector = Injector.create({\n providers: this._providers,\n parent: this._injector\n });\n\n this._componentRef = this._componentFactory.create(injector, this._contentRef.nodes);\n this._applicationRef.attachView(this._componentRef.hostView);\n // this._componentRef = this._viewContainerRef\n // .createComponent(this._componentFactory, 0, injector, this._contentRef.nodes);\n this.instance = this._componentRef.instance;\n\n Object.assign(this._componentRef.instance, opts);\n\n if (this.container instanceof ElementRef) {\n this.container.nativeElement.appendChild(\n this._componentRef.location.nativeElement\n );\n }\n\n if (this.container === 'body' && typeof document !== 'undefined') {\n document\n .querySelector(this.container as string)\n .appendChild(this._componentRef.location.nativeElement);\n }\n\n if (\n !this.container &&\n this._elementRef &&\n this._elementRef.nativeElement.parentElement\n ) {\n this._elementRef.nativeElement.parentElement.appendChild(\n this._componentRef.location.nativeElement\n );\n }\n\n // we need to manually invoke change detection since events registered\n // via\n // Renderer::listen() are not picked up by change detection with the\n // OnPush strategy\n if (this._contentRef.componentRef) {\n this._innerComponent = this._contentRef.componentRef.instance;\n this._contentRef.componentRef.changeDetectorRef.markForCheck();\n this._contentRef.componentRef.changeDetectorRef.detectChanges();\n }\n this._componentRef.changeDetectorRef.markForCheck();\n this._componentRef.changeDetectorRef.detectChanges();\n this.onShown.emit(this._componentRef.instance);\n }\n\n this._registerOutsideClick();\n\n return this._componentRef;\n }\n\n hide(): ComponentLoader<T> {\n if (!this._componentRef) {\n return this;\n }\n\n this.onBeforeHide.emit(this._componentRef.instance);\n\n const componentEl = this._componentRef.location.nativeElement;\n componentEl.parentNode.removeChild(componentEl);\n if (this._contentRef.componentRef) {\n this._contentRef.componentRef.destroy();\n }\n this._componentRef.destroy();\n if (this._viewContainerRef && this._contentRef.viewRef) {\n this._viewContainerRef.remove(\n this._viewContainerRef.indexOf(this._contentRef.viewRef)\n );\n }\n if (this._contentRef.viewRef) {\n this._contentRef.viewRef.destroy();\n }\n\n this._contentRef = null;\n this._componentRef = null;\n this._removeGlobalListener();\n\n this.onHidden.emit();\n\n return this;\n }\n\n toggle(): void {\n if (this.isShown) {\n this.hide();\n\n return;\n }\n\n this.show();\n }\n\n dispose(): void {\n if (this.isShown) {\n this.hide();\n }\n\n this._unsubscribePositioning();\n\n if (this._unregisterListenersFn) {\n this._unregisterListenersFn();\n }\n }\n\n listen(listenOpts: ListenOptions): ComponentLoader<T> {\n this.triggers = listenOpts.triggers || this.triggers;\n this._listenOpts.outsideClick = listenOpts.outsideClick;\n this._listenOpts.outsideEsc = listenOpts.outsideEsc;\n listenOpts.target = listenOpts.target || this._elementRef.nativeElement;\n\n const hide = (this._listenOpts.hide = () =>\n listenOpts.hide ? listenOpts.hide() : void this.hide());\n const show = (this._listenOpts.show = (registerHide: Function) => {\n listenOpts.show ? listenOpts.show(registerHide) : this.show(registerHide);\n registerHide();\n });\n\n const toggle = (registerHide: Function) => {\n this.isShown ? hide() : show(registerHide);\n };\n\n this._unregisterListenersFn = listenToTriggersV2(this._renderer, {\n target: listenOpts.target,\n triggers: listenOpts.triggers,\n show,\n hide,\n toggle\n });\n\n return this;\n }\n\n _removeGlobalListener() {\n if (this._globalListener) {\n this._globalListener();\n this._globalListener = null;\n }\n }\n\n attachInline(\n vRef: ViewContainerRef,\n /* tslint:disable-next-line: no-any*/\n template: TemplateRef<any>\n ): ComponentLoader<T> {\n this._inlineViewRef = vRef.createEmbeddedView(template);\n\n return this;\n }\n\n _registerOutsideClick(): void {\n if (!this._componentRef || !this._componentRef.location) {\n return;\n }\n // why: should run after first event bubble\n if (this._listenOpts.outsideClick) {\n const target = this._componentRef.location.nativeElement;\n setTimeout(() => {\n this._globalListener = registerOutsideClick(this._renderer, {\n targets: [target, this._elementRef.nativeElement],\n outsideClick: this._listenOpts.outsideClick,\n hide: () => this._listenOpts.hide()\n });\n });\n }\n if (this._listenOpts.outsideEsc) {\n const target = this._componentRef.location.nativeElement;\n this._globalListener = registerEscClick(this._renderer, {\n targets: [target, this._elementRef.nativeElement],\n outsideEsc: this._listenOpts.outsideEsc,\n hide: () => this._listenOpts.hide()\n });\n }\n }\n\n getInnerComponent(): ComponentRef<T> {\n return this._innerComponent;\n }\n\n private _subscribePositioning(): void {\n if (this._zoneSubscription || !this.attachment) {\n return;\n }\n\n this._zoneSubscription = this._ngZone.onStable.subscribe(() => {\n if (!this._componentRef) {\n return;\n }\n this._posService.position({\n element: this._componentRef.location,\n target: this._elementRef,\n attachment: this.attachment,\n appendToBody: this.container === 'body'\n });\n });\n }\n\n private _unsubscribePositioning(): void {\n if (!this._zoneSubscription) {\n return;\n }\n this._zoneSubscription.unsubscribe();\n this._zoneSubscription = null;\n }\n\n private _getContentRef(\n /* tslint:disable-next-line: no-any*/\n content: string | TemplateRef<any> | any,\n /* tslint:disable-next-line: no-any*/\n context?: any,\n /* tslint:disable-next-line: no-any*/\n initialState?: any\n ): ContentRef {\n if (!content) {\n return new ContentRef([]);\n }\n\n if (content instanceof TemplateRef) {\n if (this._viewContainerRef) {\n const _viewRef = this._viewContainerRef\n .createEmbeddedView<TemplateRef<T>>(content, context);\n _viewRef.markForCheck();\n\n return new ContentRef([_viewRef.rootNodes], _viewRef);\n }\n const viewRef = content.createEmbeddedView({});\n this._applicationRef.attachView(viewRef);\n\n return new ContentRef([viewRef.rootNodes], viewRef);\n }\n\n if (typeof content === 'function') {\n const contentCmptFactory = this._componentFactoryResolver.resolveComponentFactory(\n content\n );\n\n const modalContentInjector = Injector.create({\n providers: this._providers,\n parent: this._injector\n });\n\n const componentRef = contentCmptFactory.create(modalContentInjector);\n Object.assign(componentRef.instance, initialState);\n this._applicationRef.attachView(componentRef.hostView);\n\n return new ContentRef(\n [[componentRef.location.nativeElement]],\n componentRef.hostView,\n componentRef\n );\n }\n\n return new ContentRef([[this._renderer.createText(`${content}`)]]);\n }\n}\n","import {\n ApplicationRef, ComponentFactoryResolver, ElementRef, Injectable, Injector,\n NgZone, Renderer2, ViewContainerRef\n} from '@angular/core';\nimport { ComponentLoader } from './component-loader.class';\nimport { PositioningService } from 'ngx-bootstrap/positioning';\n\n@Injectable()\nexport class ComponentLoaderFactory {\n constructor(private _componentFactoryResolver: ComponentFactoryResolver,\n private _ngZone: NgZone,\n private _injector: Injector,\n private _posService: PositioningService,\n private _applicationRef: ApplicationRef) {}\n\n /**\n *\n * @param _elementRef\n * @param _viewContainerRef\n * @param _renderer\n */\n createLoader<T>(_elementRef: ElementRef,\n _viewContainerRef: ViewContainerRef,\n _renderer: Renderer2): ComponentLoader<T> {\n return new ComponentLoader<T>(\n _viewContainerRef,\n _renderer,\n _elementRef,\n this._injector,\n this._componentFactoryResolver,\n this._ngZone,\n this._applicationRef,\n this._posService\n );\n }\n}\n"]}
|