@greg-md/ng-flex-css-layout
Version:
Flex-CSS-Layout is an alternative behaviour of Flex-Layout directives, that will still work with Angular Universal and App Shell.
238 lines (237 loc) • 15.6 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
import * as tslib_1 from "tslib";
import { Directive, ElementRef, Input, Renderer2 } from '@angular/core';
import { ReplaySubject } from 'rxjs';
import { FlexCssService } from './flex-css.service';
import { BaseDirective } from './directive';
var LayoutDirective = /** @class */ (function (_super) {
tslib_1.__extends(LayoutDirective, _super);
function LayoutDirective(elementRef, renderer, service) {
var _this = _super.call(this, elementRef, renderer) || this;
_this.service = service;
_this.fcValues = {};
_this.observer$ = new ReplaySubject(1);
return _this;
}
Object.defineProperty(LayoutDirective.prototype, "layout", {
set: /**
* @param {?} val
* @return {?}
*/
function (val) { this.fcValues['all'] = val; },
enumerable: true,
configurable: true
});
Object.defineProperty(LayoutDirective.prototype, "layoutXs", {
// get layout() { return this.fcValues['all']; }
set: /**
* @param {?} val
* @return {?}
*/
function (val) { this.fcValues['xs'] = val; },
enumerable: true,
configurable: true
});
Object.defineProperty(LayoutDirective.prototype, "layoutSm", {
set: /**
* @param {?} val
* @return {?}
*/
function (val) { this.fcValues['sm'] = val; },
enumerable: true,
configurable: true
});
Object.defineProperty(LayoutDirective.prototype, "layoutMd", {
set: /**
* @param {?} val
* @return {?}
*/
function (val) { this.fcValues['md'] = val; },
enumerable: true,
configurable: true
});
Object.defineProperty(LayoutDirective.prototype, "layoutLg", {
set: /**
* @param {?} val
* @return {?}
*/
function (val) { this.fcValues['lg'] = val; },
enumerable: true,
configurable: true
});
Object.defineProperty(LayoutDirective.prototype, "layoutXl", {
set: /**
* @param {?} val
* @return {?}
*/
function (val) { this.fcValues['xl'] = val; },
enumerable: true,
configurable: true
});
Object.defineProperty(LayoutDirective.prototype, "layoutGtXs", {
set: /**
* @param {?} val
* @return {?}
*/
function (val) { this.fcValues['gt-xs'] = val; },
enumerable: true,
configurable: true
});
Object.defineProperty(LayoutDirective.prototype, "layoutGtSm", {
set: /**
* @param {?} val
* @return {?}
*/
function (val) { this.fcValues['gt-sm'] = val; },
enumerable: true,
configurable: true
});
Object.defineProperty(LayoutDirective.prototype, "layoutGtMd", {
set: /**
* @param {?} val
* @return {?}
*/
function (val) { this.fcValues['gt-md'] = val; },
enumerable: true,
configurable: true
});
Object.defineProperty(LayoutDirective.prototype, "layoutGtLg", {
set: /**
* @param {?} val
* @return {?}
*/
function (val) { this.fcValues['gt-lg'] = val; },
enumerable: true,
configurable: true
});
Object.defineProperty(LayoutDirective.prototype, "layoutLtSm", {
set: /**
* @param {?} val
* @return {?}
*/
function (val) { this.fcValues['lt-sm'] = val; },
enumerable: true,
configurable: true
});
Object.defineProperty(LayoutDirective.prototype, "layoutLtMd", {
set: /**
* @param {?} val
* @return {?}
*/
function (val) { this.fcValues['lt-md'] = val; },
enumerable: true,
configurable: true
});
Object.defineProperty(LayoutDirective.prototype, "layoutLtLg", {
set: /**
* @param {?} val
* @return {?}
*/
function (val) { this.fcValues['lt-lg'] = val; },
enumerable: true,
configurable: true
});
Object.defineProperty(LayoutDirective.prototype, "layoutLtXl", {
set: /**
* @param {?} val
* @return {?}
*/
function (val) { this.fcValues['lt-xl'] = val; },
enumerable: true,
configurable: true
});
/**
* @return {?}
*/
LayoutDirective.prototype.ngOnChanges = /**
* @return {?}
*/
function () {
this.reload();
};
/**
* @return {?}
*/
LayoutDirective.prototype.reload = /**
* @return {?}
*/
function () {
var _this = this;
var /** @type {?} */ classNames = [];
this.breakpoints.forEach(function (breakpoint) {
classNames.push(_this.service.addLayout(_this.fcValues[breakpoint], breakpoint));
});
this.setClassNames(classNames);
this.observer$.next(this.fcValues);
};
/**
* @param {?} breakpoints
* @param {?=} defaultValue
* @return {?}
*/
LayoutDirective.prototype.addNewBreakpoints = /**
* @param {?} breakpoints
* @param {?=} defaultValue
* @return {?}
*/
function (breakpoints, defaultValue) {
var _this = this;
breakpoints.forEach(function (breakpoint) {
if (!_this.fcValues[breakpoint]) {
_this.fcValues[breakpoint] = defaultValue;
}
});
this.reload();
};
Object.defineProperty(LayoutDirective.prototype, "breakpoints", {
get: /**
* @return {?}
*/
function () {
return Object.keys(this.fcValues);
},
enumerable: true,
configurable: true
});
LayoutDirective.decorators = [
{ type: Directive, args: [{
selector: "\n [fcLayout],\n [fcLayout.xs], [fcLayout.sm], [fcLayout.md], [fcLayout.lg], [fcLayout.xl],\n [fcLayout.lt-sm], [fcLayout.lt-md], [fcLayout.lt-lg], [fcLayout.lt-xl],\n [fcLayout.gt-xs], [fcLayout.gt-sm], [fcLayout.gt-md], [fcLayout.gt-lg]\n ",
},] },
];
/** @nocollapse */
LayoutDirective.ctorParameters = function () { return [
{ type: ElementRef },
{ type: Renderer2 },
{ type: FlexCssService }
]; };
LayoutDirective.propDecorators = {
layout: [{ type: Input, args: ['fcLayout',] }],
layoutXs: [{ type: Input, args: ['fcLayout.xs',] }],
layoutSm: [{ type: Input, args: ['fcLayout.sm',] }],
layoutMd: [{ type: Input, args: ['fcLayout.md',] }],
layoutLg: [{ type: Input, args: ['fcLayout.lg',] }],
layoutXl: [{ type: Input, args: ['fcLayout.xl',] }],
layoutGtXs: [{ type: Input, args: ['fcLayout.gt-xs',] }],
layoutGtSm: [{ type: Input, args: ['fcLayout.gt-sm',] }],
layoutGtMd: [{ type: Input, args: ['fcLayout.gt-md',] }],
layoutGtLg: [{ type: Input, args: ['fcLayout.gt-lg',] }],
layoutLtSm: [{ type: Input, args: ['fcLayout.lt-sm',] }],
layoutLtMd: [{ type: Input, args: ['fcLayout.lt-md',] }],
layoutLtLg: [{ type: Input, args: ['fcLayout.lt-lg',] }],
layoutLtXl: [{ type: Input, args: ['fcLayout.lt-xl',] }]
};
return LayoutDirective;
}(BaseDirective));
export { LayoutDirective };
function LayoutDirective_tsickle_Closure_declarations() {
/** @type {?} */
LayoutDirective.prototype.fcValues;
/** @type {?} */
LayoutDirective.prototype.observer$;
/** @type {?} */
LayoutDirective.prototype.service;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BncmVnLW1kL25nLWZsZXgtY3NzLWxheW91dC8iLCJzb3VyY2VzIjpbImxpYi9sYXlvdXQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUNuRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXJDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDOztJQVVQLDJDQUFhO0lBd0JoRCx5QkFDRSxVQUFzQixFQUN0QixRQUFtQixFQUNYO1FBSFYsWUFLRSxrQkFBTSxVQUFVLEVBQUUsUUFBUSxDQUFDLFNBQzVCO1FBSFMsYUFBTyxHQUFQLE9BQU87eUJBMUJHLEVBQUU7MEJBRUQsSUFBSSxhQUFhLENBQUMsQ0FBQyxDQUFDOztLQTJCeEM7SUF6QkQsc0JBQThCLG1DQUFNOzs7OztRQUFwQyxVQUFxQyxHQUFHLElBQVEsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxHQUFHLENBQUMsRUFBRTs7O09BQUE7SUFHN0Usc0JBQThCLHFDQUFRO1FBRlosdURBQXVEOzs7OztRQUVqRixVQUF1QyxHQUFHLElBQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsRUFBRTs7O09BQUE7SUFDNUUsc0JBQThCLHFDQUFROzs7OztRQUF0QyxVQUF1QyxHQUFHLElBQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsRUFBRTs7O09BQUE7SUFDNUUsc0JBQThCLHFDQUFROzs7OztRQUF0QyxVQUF1QyxHQUFHLElBQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsRUFBRTs7O09BQUE7SUFDNUUsc0JBQThCLHFDQUFROzs7OztRQUF0QyxVQUF1QyxHQUFHLElBQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsRUFBRTs7O09BQUE7SUFDNUUsc0JBQThCLHFDQUFROzs7OztRQUF0QyxVQUF1QyxHQUFHLElBQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsRUFBRTs7O09BQUE7SUFFNUUsc0JBQThCLHVDQUFVOzs7OztRQUF4QyxVQUF5QyxHQUFHLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxHQUFHLENBQUMsRUFBRTs7O09BQUE7SUFDL0Usc0JBQThCLHVDQUFVOzs7OztRQUF4QyxVQUF5QyxHQUFHLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxHQUFHLENBQUMsRUFBRTs7O09BQUE7SUFDL0Usc0JBQThCLHVDQUFVOzs7OztRQUF4QyxVQUF5QyxHQUFHLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxHQUFHLENBQUMsRUFBRTs7O09BQUE7SUFDL0Usc0JBQThCLHVDQUFVOzs7OztRQUF4QyxVQUF5QyxHQUFHLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxHQUFHLENBQUMsRUFBRTs7O09BQUE7SUFFL0Usc0JBQThCLHVDQUFVOzs7OztRQUF4QyxVQUF5QyxHQUFHLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxHQUFHLENBQUMsRUFBRTs7O09BQUE7SUFDL0Usc0JBQThCLHVDQUFVOzs7OztRQUF4QyxVQUF5QyxHQUFHLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxHQUFHLENBQUMsRUFBRTs7O09BQUE7SUFDL0Usc0JBQThCLHVDQUFVOzs7OztRQUF4QyxVQUF5QyxHQUFHLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxHQUFHLENBQUMsRUFBRTs7O09BQUE7SUFDL0Usc0JBQThCLHVDQUFVOzs7OztRQUF4QyxVQUF5QyxHQUFHLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxHQUFHLENBQUMsRUFBRTs7O09BQUE7Ozs7SUFVL0UscUNBQVc7OztJQUFYO1FBQ0UsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0tBQ2Y7Ozs7SUFFRCxnQ0FBTTs7O0lBQU47UUFBQSxpQkFVQztRQVRDLHFCQUFNLFVBQVUsR0FBRyxFQUFFLENBQUM7UUFFdEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsVUFBQSxVQUFVO1lBQ2pDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDO1NBQ2hGLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFL0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0tBQ3BDOzs7Ozs7SUFFRCwyQ0FBaUI7Ozs7O0lBQWpCLFVBQWtCLFdBQXFCLEVBQUUsWUFBYTtRQUF0RCxpQkFRQztRQVBDLFdBQVcsQ0FBQyxPQUFPLENBQUMsVUFBQSxVQUFVO1lBQzVCLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQy9CLEtBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEdBQUcsWUFBWSxDQUFDO2FBQzFDO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0tBQ2Y7SUFFRCxzQkFBSSx3Q0FBVzs7OztRQUFmO1lBQ0UsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ25DOzs7T0FBQTs7Z0JBcEVGLFNBQVMsU0FBQztvQkFDVCxRQUFRLEVBQUUsZ1FBS1Q7aUJBQ0Y7Ozs7Z0JBYm1CLFVBQVU7Z0JBQVMsU0FBUztnQkFHdkMsY0FBYzs7O3lCQWdCcEIsS0FBSyxTQUFDLFVBQVU7MkJBR2hCLEtBQUssU0FBQyxhQUFhOzJCQUNuQixLQUFLLFNBQUMsYUFBYTsyQkFDbkIsS0FBSyxTQUFDLGFBQWE7MkJBQ25CLEtBQUssU0FBQyxhQUFhOzJCQUNuQixLQUFLLFNBQUMsYUFBYTs2QkFFbkIsS0FBSyxTQUFDLGdCQUFnQjs2QkFDdEIsS0FBSyxTQUFDLGdCQUFnQjs2QkFDdEIsS0FBSyxTQUFDLGdCQUFnQjs2QkFDdEIsS0FBSyxTQUFDLGdCQUFnQjs2QkFFdEIsS0FBSyxTQUFDLGdCQUFnQjs2QkFDdEIsS0FBSyxTQUFDLGdCQUFnQjs2QkFDdEIsS0FBSyxTQUFDLGdCQUFnQjs2QkFDdEIsS0FBSyxTQUFDLGdCQUFnQjs7MEJBcEN6QjtFQWNxQyxhQUFhO1NBQXJDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0LCBSZW5kZXJlcjIsIE9uQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUmVwbGF5U3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBGbGV4Q3NzU2VydmljZSB9IGZyb20gJy4vZmxleC1jc3Muc2VydmljZSc7XG5pbXBvcnQgeyBCYXNlRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6IGBcbiAgICBbZmNMYXlvdXRdLFxuICAgIFtmY0xheW91dC54c10sIFtmY0xheW91dC5zbV0sIFtmY0xheW91dC5tZF0sIFtmY0xheW91dC5sZ10sIFtmY0xheW91dC54bF0sXG4gICAgW2ZjTGF5b3V0Lmx0LXNtXSwgW2ZjTGF5b3V0Lmx0LW1kXSwgW2ZjTGF5b3V0Lmx0LWxnXSwgW2ZjTGF5b3V0Lmx0LXhsXSxcbiAgICBbZmNMYXlvdXQuZ3QteHNdLCBbZmNMYXlvdXQuZ3Qtc21dLCBbZmNMYXlvdXQuZ3QtbWRdLCBbZmNMYXlvdXQuZ3QtbGddXG4gIGAsXG59KVxuZXhwb3J0IGNsYXNzIExheW91dERpcmVjdGl2ZSBleHRlbmRzIEJhc2VEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICByZWFkb25seSBmY1ZhbHVlcyA9IHt9O1xuXG4gIHJlYWRvbmx5IG9ic2VydmVyJCA9IG5ldyBSZXBsYXlTdWJqZWN0KDEpO1xuXG4gIEBJbnB1dCgnZmNMYXlvdXQnKSAgICAgICAgc2V0IGxheW91dCh2YWwpICAgICB7IHRoaXMuZmNWYWx1ZXNbJ2FsbCddID0gdmFsOyB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZ2V0IGxheW91dCgpICAgICAgICB7IHJldHVybiB0aGlzLmZjVmFsdWVzWydhbGwnXTsgfVxuXG4gIEBJbnB1dCgnZmNMYXlvdXQueHMnKSAgICAgc2V0IGxheW91dFhzKHZhbCkgICB7IHRoaXMuZmNWYWx1ZXNbJ3hzJ10gPSB2YWw7IH1cbiAgQElucHV0KCdmY0xheW91dC5zbScpICAgICBzZXQgbGF5b3V0U20odmFsKSAgIHsgdGhpcy5mY1ZhbHVlc1snc20nXSA9IHZhbDsgfVxuICBASW5wdXQoJ2ZjTGF5b3V0Lm1kJykgICAgIHNldCBsYXlvdXRNZCh2YWwpICAgeyB0aGlzLmZjVmFsdWVzWydtZCddID0gdmFsOyB9XG4gIEBJbnB1dCgnZmNMYXlvdXQubGcnKSAgICAgc2V0IGxheW91dExnKHZhbCkgICB7IHRoaXMuZmNWYWx1ZXNbJ2xnJ10gPSB2YWw7IH1cbiAgQElucHV0KCdmY0xheW91dC54bCcpICAgICBzZXQgbGF5b3V0WGwodmFsKSAgIHsgdGhpcy5mY1ZhbHVlc1sneGwnXSA9IHZhbDsgfVxuXG4gIEBJbnB1dCgnZmNMYXlvdXQuZ3QteHMnKSAgc2V0IGxheW91dEd0WHModmFsKSB7IHRoaXMuZmNWYWx1ZXNbJ2d0LXhzJ10gPSB2YWw7IH1cbiAgQElucHV0KCdmY0xheW91dC5ndC1zbScpICBzZXQgbGF5b3V0R3RTbSh2YWwpIHsgdGhpcy5mY1ZhbHVlc1snZ3Qtc20nXSA9IHZhbDsgfVxuICBASW5wdXQoJ2ZjTGF5b3V0Lmd0LW1kJykgIHNldCBsYXlvdXRHdE1kKHZhbCkgeyB0aGlzLmZjVmFsdWVzWydndC1tZCddID0gdmFsOyB9XG4gIEBJbnB1dCgnZmNMYXlvdXQuZ3QtbGcnKSAgc2V0IGxheW91dEd0TGcodmFsKSB7IHRoaXMuZmNWYWx1ZXNbJ2d0LWxnJ10gPSB2YWw7IH1cblxuICBASW5wdXQoJ2ZjTGF5b3V0Lmx0LXNtJykgIHNldCBsYXlvdXRMdFNtKHZhbCkgeyB0aGlzLmZjVmFsdWVzWydsdC1zbSddID0gdmFsOyB9XG4gIEBJbnB1dCgnZmNMYXlvdXQubHQtbWQnKSAgc2V0IGxheW91dEx0TWQodmFsKSB7IHRoaXMuZmNWYWx1ZXNbJ2x0LW1kJ10gPSB2YWw7IH1cbiAgQElucHV0KCdmY0xheW91dC5sdC1sZycpICBzZXQgbGF5b3V0THRMZyh2YWwpIHsgdGhpcy5mY1ZhbHVlc1snbHQtbGcnXSA9IHZhbDsgfVxuICBASW5wdXQoJ2ZjTGF5b3V0Lmx0LXhsJykgIHNldCBsYXlvdXRMdFhsKHZhbCkgeyB0aGlzLmZjVmFsdWVzWydsdC14bCddID0gdmFsOyB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIHByaXZhdGUgc2VydmljZTogRmxleENzc1NlcnZpY2UsXG4gICkge1xuICAgIHN1cGVyKGVsZW1lbnRSZWYsIHJlbmRlcmVyKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKCkge1xuICAgIHRoaXMucmVsb2FkKCk7XG4gIH1cblxuICByZWxvYWQoKSB7XG4gICAgY29uc3QgY2xhc3NOYW1lcyA9IFtdO1xuXG4gICAgdGhpcy5icmVha3BvaW50cy5mb3JFYWNoKGJyZWFrcG9pbnQgPT4ge1xuICAgICAgY2xhc3NOYW1lcy5wdXNoKHRoaXMuc2VydmljZS5hZGRMYXlvdXQodGhpcy5mY1ZhbHVlc1ticmVha3BvaW50XSwgYnJlYWtwb2ludCkpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5zZXRDbGFzc05hbWVzKGNsYXNzTmFtZXMpO1xuXG4gICAgdGhpcy5vYnNlcnZlciQubmV4dCh0aGlzLmZjVmFsdWVzKTtcbiAgfVxuXG4gIGFkZE5ld0JyZWFrcG9pbnRzKGJyZWFrcG9pbnRzOiBzdHJpbmdbXSwgZGVmYXVsdFZhbHVlPykge1xuICAgIGJyZWFrcG9pbnRzLmZvckVhY2goYnJlYWtwb2ludCA9PiB7XG4gICAgICBpZiAoIXRoaXMuZmNWYWx1ZXNbYnJlYWtwb2ludF0pIHtcbiAgICAgICAgdGhpcy5mY1ZhbHVlc1ticmVha3BvaW50XSA9IGRlZmF1bHRWYWx1ZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMucmVsb2FkKCk7XG4gIH1cblxuICBnZXQgYnJlYWtwb2ludHMoKSB7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKHRoaXMuZmNWYWx1ZXMpO1xuICB9XG59XG4iXX0=