@junte/ui
Version:
Quality Angular UI components kit
175 lines • 16.8 kB
JavaScript
var _a, _b;
import { __decorate, __extends, __metadata } from "tslib";
import { Directive, EmbeddedViewRef, Input, OnDestroy, OnInit, TemplateRef, ViewContainerRef } from '@angular/core';
import { takeWhile } from 'rxjs/operators';
import { PropertyApi } from '../../core/decorators/api';
import { Breakpoint } from '../../core/enums/breakpoint';
import { BreakpointService } from './breakpoint.service';
var breakpoints = [Breakpoint.mobile,
Breakpoint.tablet,
Breakpoint.desktop,
Breakpoint.wide];
var BreakpointDirective = /** @class */ (function () {
function BreakpointDirective(breakpoint, templateRef, viewContainerRef) {
this.breakpoint = breakpoint;
this.templateRef = templateRef;
this.viewContainerRef = viewContainerRef;
this.destroyed = false;
this._target = [];
}
BreakpointDirective.prototype.ngOnInit = function () {
var _this = this;
this.matched(this.breakpoint.current);
this.breakpoint.changed
.pipe(takeWhile(function () { return !_this.destroyed; }))
.subscribe(function (b) { return _this.matched(b); });
};
BreakpointDirective.prototype.ngOnDestroy = function () {
this.destroyed = true;
};
BreakpointDirective.prototype.matched = function (breakpoint) {
if (this._target.includes(breakpoint)) {
if (!this.view) {
this.view = this.viewContainerRef.createEmbeddedView(this.templateRef);
}
}
else {
if (!!this.view) {
this.viewContainerRef.clear();
this.view = null;
}
}
};
return BreakpointDirective;
}());
export { BreakpointDirective };
var ForDirective = /** @class */ (function (_super) {
__extends(ForDirective, _super);
function ForDirective(breakpoint, templateRef, viewContainerRef) {
return _super.call(this, breakpoint, templateRef, viewContainerRef) || this;
}
Object.defineProperty(ForDirective.prototype, "target", {
set: function (target) {
this._target = [target];
},
enumerable: true,
configurable: true
});
ForDirective.ctorParameters = function () { return [
{ type: BreakpointService },
{ type: TemplateRef },
{ type: ViewContainerRef }
]; };
__decorate([
PropertyApi({
name: 'jntFor',
description: 'Target break point for rendering',
path: 'ui.breakpoints',
options: breakpoints
}),
Input('jntFor'),
__metadata("design:type", String),
__metadata("design:paramtypes", [String])
], ForDirective.prototype, "target", null);
ForDirective = __decorate([
Directive({
selector: '[jntFor]'
}),
__metadata("design:paramtypes", [BreakpointService,
TemplateRef,
ViewContainerRef])
], ForDirective);
return ForDirective;
}(BreakpointDirective));
export { ForDirective };
var min = (_a = {},
_a[Breakpoint.mobile] = [Breakpoint.mobile, Breakpoint.tablet, Breakpoint.desktop, Breakpoint.wide],
_a[Breakpoint.tablet] = [Breakpoint.tablet, Breakpoint.desktop, Breakpoint.wide],
_a[Breakpoint.desktop] = [Breakpoint.desktop, Breakpoint.wide],
_a[Breakpoint.wide] = [Breakpoint.wide],
_a);
var ForMinDirective = /** @class */ (function (_super) {
__extends(ForMinDirective, _super);
function ForMinDirective(breakpoint, templateRef, viewContainerRef) {
return _super.call(this, breakpoint, templateRef, viewContainerRef) || this;
}
Object.defineProperty(ForMinDirective.prototype, "target", {
set: function (target) {
this._target = min[target];
},
enumerable: true,
configurable: true
});
ForMinDirective.ctorParameters = function () { return [
{ type: BreakpointService },
{ type: TemplateRef },
{ type: ViewContainerRef }
]; };
__decorate([
PropertyApi({
name: 'jntMinFor',
description: 'Min break point for rendering',
path: 'ui.breakpoints',
options: breakpoints
}),
Input('jntMinFor'),
__metadata("design:type", String),
__metadata("design:paramtypes", [String])
], ForMinDirective.prototype, "target", null);
ForMinDirective = __decorate([
Directive({
selector: '[jntMinFor]'
}),
__metadata("design:paramtypes", [BreakpointService,
TemplateRef,
ViewContainerRef])
], ForMinDirective);
return ForMinDirective;
}(BreakpointDirective));
export { ForMinDirective };
var max = (_b = {},
_b[Breakpoint.mobile] = [Breakpoint.mobile],
_b[Breakpoint.tablet] = [Breakpoint.mobile, Breakpoint.tablet],
_b[Breakpoint.desktop] = [Breakpoint.mobile, Breakpoint.tablet, Breakpoint.desktop],
_b[Breakpoint.wide] = [Breakpoint.mobile, Breakpoint.tablet, Breakpoint.desktop, Breakpoint.wide],
_b);
var ForMaxDirective = /** @class */ (function (_super) {
__extends(ForMaxDirective, _super);
function ForMaxDirective(breakpoint, templateRef, viewContainerRef) {
return _super.call(this, breakpoint, templateRef, viewContainerRef) || this;
}
Object.defineProperty(ForMaxDirective.prototype, "target", {
set: function (target) {
this._target = max[target];
},
enumerable: true,
configurable: true
});
ForMaxDirective.ctorParameters = function () { return [
{ type: BreakpointService },
{ type: TemplateRef },
{ type: ViewContainerRef }
]; };
__decorate([
PropertyApi({
name: 'jntMaxFor',
description: 'Max break point for rendering',
path: 'ui.breakpoints',
options: breakpoints
}),
Input('jntMaxFor'),
__metadata("design:type", String),
__metadata("design:paramtypes", [String])
], ForMaxDirective.prototype, "target", null);
ForMaxDirective = __decorate([
Directive({
selector: '[jntMaxFor]'
}),
__metadata("design:paramtypes", [BreakpointService,
TemplateRef,
ViewContainerRef])
], ForMaxDirective);
return ForMaxDirective;
}(BreakpointDirective));
export { ForMaxDirective };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzcG9uc2l2ZS5kaXJlY3RpdmVzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGp1bnRlL3VpLyIsInNvdXJjZXMiOlsibGliL2xheW91dC9yZXNwb25zaXZlL3Jlc3BvbnNpdmUuZGlyZWN0aXZlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwSCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUV6RCxJQUFNLFdBQVcsR0FBRyxDQUFDLFVBQVUsQ0FBQyxNQUFNO0lBQ3BDLFVBQVUsQ0FBQyxNQUFNO0lBQ2pCLFVBQVUsQ0FBQyxPQUFPO0lBQ2xCLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUVuQjtJQU1FLDZCQUE4QixVQUE2QixFQUM3QixXQUE2QixFQUM3QixnQkFBa0M7UUFGbEMsZUFBVSxHQUFWLFVBQVUsQ0FBbUI7UUFDN0IsZ0JBQVcsR0FBWCxXQUFXLENBQWtCO1FBQzdCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFOeEQsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUVoQixZQUFPLEdBQUcsRUFBRSxDQUFDO0lBS3ZCLENBQUM7SUFFRCxzQ0FBUSxHQUFSO1FBQUEsaUJBS0M7UUFKQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPO2FBQ3BCLElBQUksQ0FBQyxTQUFTLENBQUMsY0FBTSxPQUFBLENBQUMsS0FBSSxDQUFDLFNBQVMsRUFBZixDQUFlLENBQUMsQ0FBQzthQUN0QyxTQUFTLENBQUMsVUFBQSxDQUFDLElBQUksT0FBQSxLQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFmLENBQWUsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRCx5Q0FBVyxHQUFYO1FBQ0UsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7SUFDeEIsQ0FBQztJQUVPLHFDQUFPLEdBQWYsVUFBZ0IsVUFBc0I7UUFDcEMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUNyQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRTtnQkFDZCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7YUFDeEU7U0FDRjthQUFNO1lBQ0wsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRTtnQkFDZixJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQzlCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO2FBQ2xCO1NBQ0Y7SUFDSCxDQUFDO0lBRUgsMEJBQUM7QUFBRCxDQUFDLEFBbkNELElBbUNDOztBQUtEO0lBQWtDLGdDQUFtQjtJQWFuRCxzQkFBWSxVQUE2QixFQUM3QixXQUE2QixFQUM3QixnQkFBa0M7ZUFDNUMsa0JBQU0sVUFBVSxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsQ0FBQztJQUNsRCxDQUFDO0lBUkQsc0JBQUksZ0NBQU07YUFBVixVQUFXLE1BQWtCO1lBQzNCLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMxQixDQUFDOzs7T0FBQTs7Z0JBRXVCLGlCQUFpQjtnQkFDaEIsV0FBVztnQkFDTixnQkFBZ0I7O0lBTjlDO1FBUEMsV0FBVyxDQUFDO1lBQ1gsSUFBSSxFQUFFLFFBQVE7WUFDZCxXQUFXLEVBQUUsa0NBQWtDO1lBQy9DLElBQUksRUFBRSxnQkFBZ0I7WUFDdEIsT0FBTyxFQUFFLFdBQVc7U0FDckIsQ0FBQztRQUNELEtBQUssQ0FBQyxRQUFRLENBQUM7Ozs4Q0FHZjtJQVhVLFlBQVk7UUFIeEIsU0FBUyxDQUFDO1lBQ1QsUUFBUSxFQUFFLFVBQVU7U0FDckIsQ0FBQzt5Q0Fjd0IsaUJBQWlCO1lBQ2hCLFdBQVc7WUFDTixnQkFBZ0I7T0FmbkMsWUFBWSxDQW1CeEI7SUFBRCxtQkFBQztDQUFBLEFBbkJELENBQWtDLG1CQUFtQixHQW1CcEQ7U0FuQlksWUFBWTtBQXFCekIsSUFBTSxHQUFHO0lBQ1AsR0FBQyxVQUFVLENBQUMsTUFBTSxJQUFHLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLElBQUksQ0FBQztJQUNoRyxHQUFDLFVBQVUsQ0FBQyxNQUFNLElBQUcsQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLElBQUksQ0FBQztJQUM3RSxHQUFDLFVBQVUsQ0FBQyxPQUFPLElBQUcsQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUM7SUFDM0QsR0FBQyxVQUFVLENBQUMsSUFBSSxJQUFHLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQztPQUNyQyxDQUFDO0FBS0Y7SUFBcUMsbUNBQW1CO0lBYXRELHlCQUFZLFVBQTZCLEVBQzdCLFdBQTZCLEVBQzdCLGdCQUFrQztlQUM1QyxrQkFBTSxVQUFVLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixDQUFDO0lBQ2xELENBQUM7SUFSRCxzQkFBSSxtQ0FBTTthQUFWLFVBQVcsTUFBa0I7WUFDM0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDN0IsQ0FBQzs7O09BQUE7O2dCQUV1QixpQkFBaUI7Z0JBQ2hCLFdBQVc7Z0JBQ04sZ0JBQWdCOztJQU45QztRQVBDLFdBQVcsQ0FBQztZQUNYLElBQUksRUFBRSxXQUFXO1lBQ2pCLFdBQVcsRUFBRSwrQkFBK0I7WUFDNUMsSUFBSSxFQUFFLGdCQUFnQjtZQUN0QixPQUFPLEVBQUUsV0FBVztTQUNyQixDQUFDO1FBQ0QsS0FBSyxDQUFDLFdBQVcsQ0FBQzs7O2lEQUdsQjtJQVhVLGVBQWU7UUFIM0IsU0FBUyxDQUFDO1lBQ1QsUUFBUSxFQUFFLGFBQWE7U0FDeEIsQ0FBQzt5Q0Fjd0IsaUJBQWlCO1lBQ2hCLFdBQVc7WUFDTixnQkFBZ0I7T0FmbkMsZUFBZSxDQW1CM0I7SUFBRCxzQkFBQztDQUFBLEFBbkJELENBQXFDLG1CQUFtQixHQW1CdkQ7U0FuQlksZUFBZTtBQXFCNUIsSUFBTSxHQUFHO0lBQ1AsR0FBQyxVQUFVLENBQUMsTUFBTSxJQUFHLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQztJQUN4QyxHQUFDLFVBQVUsQ0FBQyxNQUFNLElBQUcsQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxNQUFNLENBQUM7SUFDM0QsR0FBQyxVQUFVLENBQUMsT0FBTyxJQUFHLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxPQUFPLENBQUM7SUFDaEYsR0FBQyxVQUFVLENBQUMsSUFBSSxJQUFHLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLElBQUksQ0FBQztPQUMvRixDQUFDO0FBS0Y7SUFBcUMsbUNBQW1CO0lBYXRELHlCQUFZLFVBQTZCLEVBQzdCLFdBQTZCLEVBQzdCLGdCQUFrQztlQUM1QyxrQkFBTSxVQUFVLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixDQUFDO0lBQ2xELENBQUM7SUFSRCxzQkFBSSxtQ0FBTTthQUFWLFVBQVcsTUFBa0I7WUFDM0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDN0IsQ0FBQzs7O09BQUE7O2dCQUV1QixpQkFBaUI7Z0JBQ2hCLFdBQVc7Z0JBQ04sZ0JBQWdCOztJQU45QztRQVBDLFdBQVcsQ0FBQztZQUNYLElBQUksRUFBRSxXQUFXO1lBQ2pCLFdBQVcsRUFBRSwrQkFBK0I7WUFDNUMsSUFBSSxFQUFFLGdCQUFnQjtZQUN0QixPQUFPLEVBQUUsV0FBVztTQUNyQixDQUFDO1FBQ0QsS0FBSyxDQUFDLFdBQVcsQ0FBQzs7O2lEQUdsQjtJQVhVLGVBQWU7UUFIM0IsU0FBUyxDQUFDO1lBQ1QsUUFBUSxFQUFFLGFBQWE7U0FDeEIsQ0FBQzt5Q0Fjd0IsaUJBQWlCO1lBQ2hCLFdBQVc7WUFDTixnQkFBZ0I7T0FmbkMsZUFBZSxDQW1CM0I7SUFBRCxzQkFBQztDQUFBLEFBbkJELENBQXFDLG1CQUFtQixHQW1CdkQ7U0FuQlksZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRW1iZWRkZWRWaWV3UmVmLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIFRlbXBsYXRlUmVmLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlV2hpbGUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBQcm9wZXJ0eUFwaSB9IGZyb20gJy4uLy4uL2NvcmUvZGVjb3JhdG9ycy9hcGknO1xuaW1wb3J0IHsgQnJlYWtwb2ludCB9IGZyb20gJy4uLy4uL2NvcmUvZW51bXMvYnJlYWtwb2ludCc7XG5pbXBvcnQgeyBCcmVha3BvaW50U2VydmljZSB9IGZyb20gJy4vYnJlYWtwb2ludC5zZXJ2aWNlJztcblxuY29uc3QgYnJlYWtwb2ludHMgPSBbQnJlYWtwb2ludC5tb2JpbGUsXG4gIEJyZWFrcG9pbnQudGFibGV0LFxuICBCcmVha3BvaW50LmRlc2t0b3AsXG4gIEJyZWFrcG9pbnQud2lkZV07XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCcmVha3BvaW50RGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gIHByaXZhdGUgZGVzdHJveWVkID0gZmFsc2U7XG4gIHByaXZhdGUgdmlldzogRW1iZWRkZWRWaWV3UmVmPGFueT47XG4gIHByb3RlY3RlZCBfdGFyZ2V0ID0gW107XG5cbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKHByaXZhdGUgYnJlYWtwb2ludDogQnJlYWtwb2ludFNlcnZpY2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBwcml2YXRlIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+LFxuICAgICAgICAgICAgICAgICAgICAgICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmKSB7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLm1hdGNoZWQodGhpcy5icmVha3BvaW50LmN1cnJlbnQpO1xuICAgIHRoaXMuYnJlYWtwb2ludC5jaGFuZ2VkXG4gICAgICAucGlwZSh0YWtlV2hpbGUoKCkgPT4gIXRoaXMuZGVzdHJveWVkKSlcbiAgICAgIC5zdWJzY3JpYmUoYiA9PiB0aGlzLm1hdGNoZWQoYikpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5kZXN0cm95ZWQgPSB0cnVlO1xuICB9XG5cbiAgcHJpdmF0ZSBtYXRjaGVkKGJyZWFrcG9pbnQ6IEJyZWFrcG9pbnQpIHtcbiAgICBpZiAodGhpcy5fdGFyZ2V0LmluY2x1ZGVzKGJyZWFrcG9pbnQpKSB7XG4gICAgICBpZiAoIXRoaXMudmlldykge1xuICAgICAgICB0aGlzLnZpZXcgPSB0aGlzLnZpZXdDb250YWluZXJSZWYuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMudGVtcGxhdGVSZWYpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoISF0aGlzLnZpZXcpIHtcbiAgICAgICAgdGhpcy52aWV3Q29udGFpbmVyUmVmLmNsZWFyKCk7XG4gICAgICAgIHRoaXMudmlldyA9IG51bGw7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbn1cblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2pudEZvcl0nXG59KVxuZXhwb3J0IGNsYXNzIEZvckRpcmVjdGl2ZSBleHRlbmRzIEJyZWFrcG9pbnREaXJlY3RpdmUge1xuXG4gIEBQcm9wZXJ0eUFwaSh7XG4gICAgbmFtZTogJ2pudEZvcicsXG4gICAgZGVzY3JpcHRpb246ICdUYXJnZXQgYnJlYWsgcG9pbnQgZm9yIHJlbmRlcmluZycsXG4gICAgcGF0aDogJ3VpLmJyZWFrcG9pbnRzJyxcbiAgICBvcHRpb25zOiBicmVha3BvaW50c1xuICB9KVxuICBASW5wdXQoJ2pudEZvcicpXG4gIHNldCB0YXJnZXQodGFyZ2V0OiBCcmVha3BvaW50KSB7XG4gICAgdGhpcy5fdGFyZ2V0ID0gW3RhcmdldF07XG4gIH1cblxuICBjb25zdHJ1Y3RvcihicmVha3BvaW50OiBCcmVha3BvaW50U2VydmljZSxcbiAgICAgICAgICAgICAgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT4sXG4gICAgICAgICAgICAgIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYpIHtcbiAgICBzdXBlcihicmVha3BvaW50LCB0ZW1wbGF0ZVJlZiwgdmlld0NvbnRhaW5lclJlZik7XG4gIH1cblxufVxuXG5jb25zdCBtaW4gPSB7XG4gIFtCcmVha3BvaW50Lm1vYmlsZV06IFtCcmVha3BvaW50Lm1vYmlsZSwgQnJlYWtwb2ludC50YWJsZXQsIEJyZWFrcG9pbnQuZGVza3RvcCwgQnJlYWtwb2ludC53aWRlXSxcbiAgW0JyZWFrcG9pbnQudGFibGV0XTogW0JyZWFrcG9pbnQudGFibGV0LCBCcmVha3BvaW50LmRlc2t0b3AsIEJyZWFrcG9pbnQud2lkZV0sXG4gIFtCcmVha3BvaW50LmRlc2t0b3BdOiBbQnJlYWtwb2ludC5kZXNrdG9wLCBCcmVha3BvaW50LndpZGVdLFxuICBbQnJlYWtwb2ludC53aWRlXTogW0JyZWFrcG9pbnQud2lkZV1cbn07XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tqbnRNaW5Gb3JdJ1xufSlcbmV4cG9ydCBjbGFzcyBGb3JNaW5EaXJlY3RpdmUgZXh0ZW5kcyBCcmVha3BvaW50RGlyZWN0aXZlIHtcblxuICBAUHJvcGVydHlBcGkoe1xuICAgIG5hbWU6ICdqbnRNaW5Gb3InLFxuICAgIGRlc2NyaXB0aW9uOiAnTWluIGJyZWFrIHBvaW50IGZvciByZW5kZXJpbmcnLFxuICAgIHBhdGg6ICd1aS5icmVha3BvaW50cycsXG4gICAgb3B0aW9uczogYnJlYWtwb2ludHNcbiAgfSlcbiAgQElucHV0KCdqbnRNaW5Gb3InKVxuICBzZXQgdGFyZ2V0KHRhcmdldDogQnJlYWtwb2ludCkge1xuICAgIHRoaXMuX3RhcmdldCA9IG1pblt0YXJnZXRdO1xuICB9XG5cbiAgY29uc3RydWN0b3IoYnJlYWtwb2ludDogQnJlYWtwb2ludFNlcnZpY2UsXG4gICAgICAgICAgICAgIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+LFxuICAgICAgICAgICAgICB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmKSB7XG4gICAgc3VwZXIoYnJlYWtwb2ludCwgdGVtcGxhdGVSZWYsIHZpZXdDb250YWluZXJSZWYpO1xuICB9XG5cbn1cblxuY29uc3QgbWF4ID0ge1xuICBbQnJlYWtwb2ludC5tb2JpbGVdOiBbQnJlYWtwb2ludC5tb2JpbGVdLFxuICBbQnJlYWtwb2ludC50YWJsZXRdOiBbQnJlYWtwb2ludC5tb2JpbGUsIEJyZWFrcG9pbnQudGFibGV0XSxcbiAgW0JyZWFrcG9pbnQuZGVza3RvcF06IFtCcmVha3BvaW50Lm1vYmlsZSwgQnJlYWtwb2ludC50YWJsZXQsIEJyZWFrcG9pbnQuZGVza3RvcF0sXG4gIFtCcmVha3BvaW50LndpZGVdOiBbQnJlYWtwb2ludC5tb2JpbGUsIEJyZWFrcG9pbnQudGFibGV0LCBCcmVha3BvaW50LmRlc2t0b3AsIEJyZWFrcG9pbnQud2lkZV1cbn07XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tqbnRNYXhGb3JdJ1xufSlcbmV4cG9ydCBjbGFzcyBGb3JNYXhEaXJlY3RpdmUgZXh0ZW5kcyBCcmVha3BvaW50RGlyZWN0aXZlIHtcblxuICBAUHJvcGVydHlBcGkoe1xuICAgIG5hbWU6ICdqbnRNYXhGb3InLFxuICAgIGRlc2NyaXB0aW9uOiAnTWF4IGJyZWFrIHBvaW50IGZvciByZW5kZXJpbmcnLFxuICAgIHBhdGg6ICd1aS5icmVha3BvaW50cycsXG4gICAgb3B0aW9uczogYnJlYWtwb2ludHNcbiAgfSlcbiAgQElucHV0KCdqbnRNYXhGb3InKVxuICBzZXQgdGFyZ2V0KHRhcmdldDogQnJlYWtwb2ludCkge1xuICAgIHRoaXMuX3RhcmdldCA9IG1heFt0YXJnZXRdO1xuICB9XG5cbiAgY29uc3RydWN0b3IoYnJlYWtwb2ludDogQnJlYWtwb2ludFNlcnZpY2UsXG4gICAgICAgICAgICAgIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+LFxuICAgICAgICAgICAgICB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmKSB7XG4gICAgc3VwZXIoYnJlYWtwb2ludCwgdGVtcGxhdGVSZWYsIHZpZXdDb250YWluZXJSZWYpO1xuICB9XG5cbn1cbiJdfQ==