UNPKG

@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
/** * @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=