UNPKG

@kushki/ng-suka

Version:

<p align="center"> <h1 align="center">Suka Components Angular</h1> <p align="center"> An Angular implementation of the Suka Design System </p> </p>

391 lines 24.1 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Directive, Input, ElementRef } from '@angular/core'; export class PaddingDirective { /** * @param {?} elementRef */ constructor(elementRef) { this.p = {}; this.elementRef = elementRef; } /** * @return {?} */ ngOnInit() { try { /** @type {?} */ const paddingKeys = Object.keys(this.p); paddingKeys.forEach((/** * @param {?} key * @return {?} */ key => { if (key === 'all') { this.elementRef.nativeElement.classList.add(`p-${this.p[key]}`); } else { this.elementRef.nativeElement.classList.add(`p-${key}-${this.p[key]}`); } })); } catch (err) { console.error(`Malformed paddings\`: ${err}`); } } } PaddingDirective.decorators = [ { type: Directive, args: [{ // tslint:disable-next-line: directive-selector selector: '[p]' },] } ]; /** @nocollapse */ PaddingDirective.ctorParameters = () => [ { type: ElementRef } ]; PaddingDirective.propDecorators = { p: [{ type: Input }] }; if (false) { /** @type {?} */ PaddingDirective.prototype.p; /** * @type {?} * @private */ PaddingDirective.prototype.elementRef; } export class PaddingTopDirective { /** * @param {?} elementRef */ constructor(elementRef) { this.pt = {}; this.elementRef = elementRef; } /** * @return {?} */ ngOnInit() { try { /** @type {?} */ const paddingKeys = Object.keys(this.pt); paddingKeys.forEach((/** * @param {?} key * @return {?} */ key => { if (key === 'all') { this.elementRef.nativeElement.classList.add(`pt-${this.pt[key]}`); } else { this.elementRef.nativeElement.classList.add(`pt-${key}-${this.pt[key]}`); } })); } catch (err) { console.error(`Malformed paddings\`: ${err}`); } } } PaddingTopDirective.decorators = [ { type: Directive, args: [{ // tslint:disable-next-line: directive-selector selector: '[pt]' },] } ]; /** @nocollapse */ PaddingTopDirective.ctorParameters = () => [ { type: ElementRef } ]; PaddingTopDirective.propDecorators = { pt: [{ type: Input }] }; if (false) { /** @type {?} */ PaddingTopDirective.prototype.pt; /** * @type {?} * @private */ PaddingTopDirective.prototype.elementRef; } export class PaddingBottomDirective { /** * @param {?} elementRef */ constructor(elementRef) { this.pb = {}; this.elementRef = elementRef; } /** * @return {?} */ ngOnInit() { try { /** @type {?} */ const paddingKeys = Object.keys(this.pb); paddingKeys.forEach((/** * @param {?} key * @return {?} */ key => { if (key === 'all') { this.elementRef.nativeElement.classList.add(`pb-${this.pb[key]}`); } else { this.elementRef.nativeElement.classList.add(`pb-${key}-${this.pb[key]}`); } })); } catch (err) { console.error(`Malformed paddings\`: ${err}`); } } } PaddingBottomDirective.decorators = [ { type: Directive, args: [{ // tslint:disable-next-line: directive-selector selector: '[pb]' },] } ]; /** @nocollapse */ PaddingBottomDirective.ctorParameters = () => [ { type: ElementRef } ]; PaddingBottomDirective.propDecorators = { pb: [{ type: Input }] }; if (false) { /** @type {?} */ PaddingBottomDirective.prototype.pb; /** * @type {?} * @private */ PaddingBottomDirective.prototype.elementRef; } export class PaddingLeftDirective { /** * @param {?} elementRef */ constructor(elementRef) { this.pl = {}; this.elementRef = elementRef; } /** * @return {?} */ ngOnInit() { try { /** @type {?} */ const paddingKeys = Object.keys(this.pl); paddingKeys.forEach((/** * @param {?} key * @return {?} */ key => { if (key === 'all') { this.elementRef.nativeElement.classList.add(`pl-${this.pl[key]}`); } else { this.elementRef.nativeElement.classList.add(`pl-${key}-${this.pl[key]}`); } })); } catch (err) { console.error(`Malformed paddings\`: ${err}`); } } } PaddingLeftDirective.decorators = [ { type: Directive, args: [{ // tslint:disable-next-line: directive-selector selector: '[pl]' },] } ]; /** @nocollapse */ PaddingLeftDirective.ctorParameters = () => [ { type: ElementRef } ]; PaddingLeftDirective.propDecorators = { pl: [{ type: Input }] }; if (false) { /** @type {?} */ PaddingLeftDirective.prototype.pl; /** * @type {?} * @private */ PaddingLeftDirective.prototype.elementRef; } export class PaddingRightDirective { /** * @param {?} elementRef */ constructor(elementRef) { this.pr = {}; this.elementRef = elementRef; } /** * @return {?} */ ngOnInit() { try { /** @type {?} */ const paddingKeys = Object.keys(this.pr); paddingKeys.forEach((/** * @param {?} key * @return {?} */ key => { if (key === 'all') { this.elementRef.nativeElement.classList.add(`pr-${this.pr[key]}`); } else { this.elementRef.nativeElement.classList.add(`pr-${key}-${this.pr[key]}`); } })); } catch (err) { console.error(`Malformed paddings\`: ${err}`); } } } PaddingRightDirective.decorators = [ { type: Directive, args: [{ // tslint:disable-next-line: directive-selector selector: '[pr]' },] } ]; /** @nocollapse */ PaddingRightDirective.ctorParameters = () => [ { type: ElementRef } ]; PaddingRightDirective.propDecorators = { pr: [{ type: Input }] }; if (false) { /** @type {?} */ PaddingRightDirective.prototype.pr; /** * @type {?} * @private */ PaddingRightDirective.prototype.elementRef; } export class PaddingHorizontalDirective { /** * @param {?} elementRef */ constructor(elementRef) { this.px = {}; this.elementRef = elementRef; } /** * @return {?} */ ngOnInit() { try { /** @type {?} */ const paddingKeys = Object.keys(this.px); paddingKeys.forEach((/** * @param {?} key * @return {?} */ key => { if (key === 'all') { this.elementRef.nativeElement.classList.add(`px-${this.px[key]}`); } else { this.elementRef.nativeElement.classList.add(`px-${key}-${this.px[key]}`); } })); } catch (err) { console.error(`Malformed paddings\`: ${err}`); } } } PaddingHorizontalDirective.decorators = [ { type: Directive, args: [{ // tslint:disable-next-line: directive-selector selector: '[px]' },] } ]; /** @nocollapse */ PaddingHorizontalDirective.ctorParameters = () => [ { type: ElementRef } ]; PaddingHorizontalDirective.propDecorators = { px: [{ type: Input }] }; if (false) { /** @type {?} */ PaddingHorizontalDirective.prototype.px; /** * @type {?} * @private */ PaddingHorizontalDirective.prototype.elementRef; } export class PaddingVerticalDirective { /** * @param {?} elementRef */ constructor(elementRef) { this.py = {}; this.elementRef = elementRef; } /** * @return {?} */ ngOnInit() { try { /** @type {?} */ const paddingKeys = Object.keys(this.py); paddingKeys.forEach((/** * @param {?} key * @return {?} */ key => { if (key === 'all') { this.elementRef.nativeElement.classList.add(`py-${this.py[key]}`); } else { this.elementRef.nativeElement.classList.add(`py-${key}-${this.py[key]}`); } })); } catch (err) { console.error(`Malformed paddings\`: ${err}`); } } } PaddingVerticalDirective.decorators = [ { type: Directive, args: [{ // tslint:disable-next-line: directive-selector selector: '[py]' },] } ]; /** @nocollapse */ PaddingVerticalDirective.ctorParameters = () => [ { type: ElementRef } ]; PaddingVerticalDirective.propDecorators = { py: [{ type: Input }] }; if (false) { /** @type {?} */ PaddingVerticalDirective.prototype.py; /** * @type {?} * @private */ PaddingVerticalDirective.prototype.elementRef; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFkZGluZy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Aa3VzaGtpL25nLXN1a2EvIiwic291cmNlcyI6WyJsaWIvc3BhY2luZy9wYWRkaW5nLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBTXJFLE1BQU0sT0FBTyxnQkFBZ0I7Ozs7SUFLM0IsWUFBWSxVQUFzQjtRQUp6QixNQUFDLEdBQUcsRUFBRSxDQUFDO1FBS2QsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7SUFDL0IsQ0FBQzs7OztJQUVELFFBQVE7UUFDTixJQUFJOztrQkFDSSxXQUFXLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBRXZDLFdBQVcsQ0FBQyxPQUFPOzs7O1lBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ3hCLElBQUksR0FBRyxLQUFLLEtBQUssRUFBRTtvQkFDakIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2lCQUNqRTtxQkFBTTtvQkFDTCxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEtBQUssR0FBRyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2lCQUN4RTtZQUNILENBQUMsRUFBQyxDQUFDO1NBQ0o7UUFBQyxPQUFPLEdBQUcsRUFBRTtZQUNaLE9BQU8sQ0FBQyxLQUFLLENBQUMseUJBQXlCLEdBQUcsRUFBRSxDQUFDLENBQUM7U0FDL0M7SUFDSCxDQUFDOzs7WUEzQkYsU0FBUyxTQUFDOztnQkFFVCxRQUFRLEVBQUUsS0FBSzthQUNoQjs7OztZQUxrQyxVQUFV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cmVjdGl2ZSwgSW5wdXQsIE9uSW5pdCwgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBkaXJlY3RpdmUtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICdbcF0nXG59KVxuZXhwb3J0IGNsYXNzIFBhZGRpbmdEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBwID0ge307XG5cbiAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmO1xuXG4gIGNvbnN0cnVjdG9yKGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHtcbiAgICB0aGlzLmVsZW1lbnRSZWYgPSBlbGVtZW50UmVmO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHBhZGRpbmdLZXlzID0gT2JqZWN0LmtleXModGhpcy5wKTtcblxuICAgICAgcGFkZGluZ0tleXMuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgICBpZiAoa2V5ID09PSAnYWxsJykge1xuICAgICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoYHAtJHt0aGlzLnBba2V5XX1gKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKGBwLSR7a2V5fS0ke3RoaXMucFtrZXldfWApO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYE1hbGZvcm1lZCBwYWRkaW5nc1xcYDogJHtlcnJ9YCk7XG4gICAgfVxuICB9XG59XG5cbkBEaXJlY3RpdmUoe1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IGRpcmVjdGl2ZS1zZWxlY3RvclxuICBzZWxlY3RvcjogJ1twdF0nXG59KVxuZXhwb3J0IGNsYXNzIFBhZGRpbmdUb3BEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBwdCA9IHt9O1xuXG4gIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZjtcblxuICBjb25zdHJ1Y3RvcihlbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7XG4gICAgdGhpcy5lbGVtZW50UmVmID0gZWxlbWVudFJlZjtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBwYWRkaW5nS2V5cyA9IE9iamVjdC5rZXlzKHRoaXMucHQpO1xuXG4gICAgICBwYWRkaW5nS2V5cy5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgIGlmIChrZXkgPT09ICdhbGwnKSB7XG4gICAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZChgcHQtJHt0aGlzLnB0W2tleV19YCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZChgcHQtJHtrZXl9LSR7dGhpcy5wdFtrZXldfWApO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYE1hbGZvcm1lZCBwYWRkaW5nc1xcYDogJHtlcnJ9YCk7XG4gICAgfVxuICB9XG59XG5cbkBEaXJlY3RpdmUoe1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IGRpcmVjdGl2ZS1zZWxlY3RvclxuICBzZWxlY3RvcjogJ1twYl0nXG59KVxuZXhwb3J0IGNsYXNzIFBhZGRpbmdCb3R0b21EaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBwYiA9IHt9O1xuXG4gIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZjtcblxuICBjb25zdHJ1Y3RvcihlbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7XG4gICAgdGhpcy5lbGVtZW50UmVmID0gZWxlbWVudFJlZjtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBwYWRkaW5nS2V5cyA9IE9iamVjdC5rZXlzKHRoaXMucGIpO1xuXG4gICAgICBwYWRkaW5nS2V5cy5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgIGlmIChrZXkgPT09ICdhbGwnKSB7XG4gICAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZChgcGItJHt0aGlzLnBiW2tleV19YCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZChgcGItJHtrZXl9LSR7dGhpcy5wYltrZXldfWApO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYE1hbGZvcm1lZCBwYWRkaW5nc1xcYDogJHtlcnJ9YCk7XG4gICAgfVxuICB9XG59XG5cbkBEaXJlY3RpdmUoe1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IGRpcmVjdGl2ZS1zZWxlY3RvclxuICBzZWxlY3RvcjogJ1twbF0nXG59KVxuZXhwb3J0IGNsYXNzIFBhZGRpbmdMZWZ0RGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgcGwgPSB7fTtcblxuICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY7XG5cbiAgY29uc3RydWN0b3IoZWxlbWVudFJlZjogRWxlbWVudFJlZikge1xuICAgIHRoaXMuZWxlbWVudFJlZiA9IGVsZW1lbnRSZWY7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcGFkZGluZ0tleXMgPSBPYmplY3Qua2V5cyh0aGlzLnBsKTtcblxuICAgICAgcGFkZGluZ0tleXMuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgICBpZiAoa2V5ID09PSAnYWxsJykge1xuICAgICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoYHBsLSR7dGhpcy5wbFtrZXldfWApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoYHBsLSR7a2V5fS0ke3RoaXMucGxba2V5XX1gKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBNYWxmb3JtZWQgcGFkZGluZ3NcXGA6ICR7ZXJyfWApO1xuICAgIH1cbiAgfVxufVxuXG5ARGlyZWN0aXZlKHtcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBkaXJlY3RpdmUtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICdbcHJdJ1xufSlcbmV4cG9ydCBjbGFzcyBQYWRkaW5nUmlnaHREaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBwciA9IHt9O1xuXG4gIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZjtcblxuICBjb25zdHJ1Y3RvcihlbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7XG4gICAgdGhpcy5lbGVtZW50UmVmID0gZWxlbWVudFJlZjtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBwYWRkaW5nS2V5cyA9IE9iamVjdC5rZXlzKHRoaXMucHIpO1xuXG4gICAgICBwYWRkaW5nS2V5cy5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgIGlmIChrZXkgPT09ICdhbGwnKSB7XG4gICAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZChgcHItJHt0aGlzLnByW2tleV19YCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZChgcHItJHtrZXl9LSR7dGhpcy5wcltrZXldfWApO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYE1hbGZvcm1lZCBwYWRkaW5nc1xcYDogJHtlcnJ9YCk7XG4gICAgfVxuICB9XG59XG5cbkBEaXJlY3RpdmUoe1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IGRpcmVjdGl2ZS1zZWxlY3RvclxuICBzZWxlY3RvcjogJ1tweF0nXG59KVxuZXhwb3J0IGNsYXNzIFBhZGRpbmdIb3Jpem9udGFsRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgcHggPSB7fTtcblxuICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY7XG5cbiAgY29uc3RydWN0b3IoZWxlbWVudFJlZjogRWxlbWVudFJlZikge1xuICAgIHRoaXMuZWxlbWVudFJlZiA9IGVsZW1lbnRSZWY7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcGFkZGluZ0tleXMgPSBPYmplY3Qua2V5cyh0aGlzLnB4KTtcblxuICAgICAgcGFkZGluZ0tleXMuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgICBpZiAoa2V5ID09PSAnYWxsJykge1xuICAgICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoYHB4LSR7dGhpcy5weFtrZXldfWApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoYHB4LSR7a2V5fS0ke3RoaXMucHhba2V5XX1gKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBNYWxmb3JtZWQgcGFkZGluZ3NcXGA6ICR7ZXJyfWApO1xuICAgIH1cbiAgfVxufVxuXG5ARGlyZWN0aXZlKHtcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBkaXJlY3RpdmUtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICdbcHldJ1xufSlcbmV4cG9ydCBjbGFzcyBQYWRkaW5nVmVydGljYWxEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBweSA9IHt9O1xuXG4gIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZjtcblxuICBjb25zdHJ1Y3RvcihlbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7XG4gICAgdGhpcy5lbGVtZW50UmVmID0gZWxlbWVudFJlZjtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBwYWRkaW5nS2V5cyA9IE9iamVjdC5rZXlzKHRoaXMucHkpO1xuXG4gICAgICBwYWRkaW5nS2V5cy5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgIGlmIChrZXkgPT09ICdhbGwnKSB7XG4gICAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZChgcHktJHt0aGlzLnB5W2tleV19YCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZChgcHktJHtrZXl9LSR7dGhpcy5weVtrZXldfWApO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYE1hbGZvcm1lZCBwYWRkaW5nc1xcYDogJHtlcnJ9YCk7XG4gICAgfVxuICB9XG59XG4iXX0=