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