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 23.9 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 MarginDirective { /** * @param {?} elementRef */ constructor(elementRef) { this.m = {}; this.elementRef = elementRef; } /** * @return {?} */ ngOnInit() { try { /** @type {?} */ const marginKeys = Object.keys(this.m); marginKeys.forEach((/** * @param {?} key * @return {?} */ key => { if (key === 'all') { this.elementRef.nativeElement.classList.add(`m-${this.m[key]}`); } else { this.elementRef.nativeElement.classList.add(`m-${key}-${this.m[key]}`); } })); } catch (err) { console.error(`Malformed margins\`: ${err}`); } } } MarginDirective.decorators = [ { type: Directive, args: [{ // tslint:disable-next-line: directive-selector selector: '[m]' },] } ]; /** @nocollapse */ MarginDirective.ctorParameters = () => [ { type: ElementRef } ]; MarginDirective.propDecorators = { m: [{ type: Input }] }; if (false) { /** @type {?} */ MarginDirective.prototype.m; /** * @type {?} * @private */ MarginDirective.prototype.elementRef; } export class MarginTopDirective { /** * @param {?} elementRef */ constructor(elementRef) { this.mt = {}; this.elementRef = elementRef; } /** * @return {?} */ ngOnInit() { try { /** @type {?} */ const marginKeys = Object.keys(this.mt); marginKeys.forEach((/** * @param {?} key * @return {?} */ key => { if (key === 'all') { this.elementRef.nativeElement.classList.add(`mt-${this.mt[key]}`); } else { this.elementRef.nativeElement.classList.add(`mt-${key}-${this.mt[key]}`); } })); } catch (err) { console.error(`Malformed margins\`: ${err}`); } } } MarginTopDirective.decorators = [ { type: Directive, args: [{ // tslint:disable-next-line: directive-selector selector: '[mt]' },] } ]; /** @nocollapse */ MarginTopDirective.ctorParameters = () => [ { type: ElementRef } ]; MarginTopDirective.propDecorators = { mt: [{ type: Input }] }; if (false) { /** @type {?} */ MarginTopDirective.prototype.mt; /** * @type {?} * @private */ MarginTopDirective.prototype.elementRef; } export class MarginBottomDirective { /** * @param {?} elementRef */ constructor(elementRef) { this.mb = {}; this.elementRef = elementRef; } /** * @return {?} */ ngOnInit() { try { /** @type {?} */ const marginKeys = Object.keys(this.mb); marginKeys.forEach((/** * @param {?} key * @return {?} */ key => { if (key === 'all') { this.elementRef.nativeElement.classList.add(`mb-${this.mb[key]}`); } else { this.elementRef.nativeElement.classList.add(`mb-${key}-${this.mb[key]}`); } })); } catch (err) { console.error(`Malformed margins\`: ${err}`); } } } MarginBottomDirective.decorators = [ { type: Directive, args: [{ // tslint:disable-next-line: directive-selector selector: '[mb]' },] } ]; /** @nocollapse */ MarginBottomDirective.ctorParameters = () => [ { type: ElementRef } ]; MarginBottomDirective.propDecorators = { mb: [{ type: Input }] }; if (false) { /** @type {?} */ MarginBottomDirective.prototype.mb; /** * @type {?} * @private */ MarginBottomDirective.prototype.elementRef; } export class MarginLeftDirective { /** * @param {?} elementRef */ constructor(elementRef) { this.ml = {}; this.elementRef = elementRef; } /** * @return {?} */ ngOnInit() { try { /** @type {?} */ const marginKeys = Object.keys(this.ml); marginKeys.forEach((/** * @param {?} key * @return {?} */ key => { if (key === 'all') { this.elementRef.nativeElement.classList.add(`ml-${this.ml[key]}`); } else { this.elementRef.nativeElement.classList.add(`ml-${key}-${this.ml[key]}`); } })); } catch (err) { console.error(`Malformed margins\`: ${err}`); } } } MarginLeftDirective.decorators = [ { type: Directive, args: [{ // tslint:disable-next-line: directive-selector selector: '[ml]' },] } ]; /** @nocollapse */ MarginLeftDirective.ctorParameters = () => [ { type: ElementRef } ]; MarginLeftDirective.propDecorators = { ml: [{ type: Input }] }; if (false) { /** @type {?} */ MarginLeftDirective.prototype.ml; /** * @type {?} * @private */ MarginLeftDirective.prototype.elementRef; } export class MarginRightDirective { /** * @param {?} elementRef */ constructor(elementRef) { this.mr = {}; this.elementRef = elementRef; } /** * @return {?} */ ngOnInit() { try { /** @type {?} */ const marginKeys = Object.keys(this.mr); marginKeys.forEach((/** * @param {?} key * @return {?} */ key => { if (key === 'all') { this.elementRef.nativeElement.classList.add(`mr-${this.mr[key]}`); } else { this.elementRef.nativeElement.classList.add(`mr-${key}-${this.mr[key]}`); } })); } catch (err) { console.error(`Malformed margins\`: ${err}`); } } } MarginRightDirective.decorators = [ { type: Directive, args: [{ // tslint:disable-next-line: directive-selector selector: '[mr]' },] } ]; /** @nocollapse */ MarginRightDirective.ctorParameters = () => [ { type: ElementRef } ]; MarginRightDirective.propDecorators = { mr: [{ type: Input }] }; if (false) { /** @type {?} */ MarginRightDirective.prototype.mr; /** * @type {?} * @private */ MarginRightDirective.prototype.elementRef; } export class MarginHorizontalDirective { /** * @param {?} elementRef */ constructor(elementRef) { this.mx = {}; this.elementRef = elementRef; } /** * @return {?} */ ngOnInit() { try { /** @type {?} */ const marginKeys = Object.keys(this.mx); marginKeys.forEach((/** * @param {?} key * @return {?} */ key => { if (key === 'all') { this.elementRef.nativeElement.classList.add(`mx-${this.mx[key]}`); } else { this.elementRef.nativeElement.classList.add(`mx-${key}-${this.mx[key]}`); } })); } catch (err) { console.error(`Malformed margins\`: ${err}`); } } } MarginHorizontalDirective.decorators = [ { type: Directive, args: [{ // tslint:disable-next-line: directive-selector selector: '[mx]' },] } ]; /** @nocollapse */ MarginHorizontalDirective.ctorParameters = () => [ { type: ElementRef } ]; MarginHorizontalDirective.propDecorators = { mx: [{ type: Input }] }; if (false) { /** @type {?} */ MarginHorizontalDirective.prototype.mx; /** * @type {?} * @private */ MarginHorizontalDirective.prototype.elementRef; } export class MarginVerticalDirective { /** * @param {?} elementRef */ constructor(elementRef) { this.my = {}; this.elementRef = elementRef; } /** * @return {?} */ ngOnInit() { try { /** @type {?} */ const marginKeys = Object.keys(this.my); marginKeys.forEach((/** * @param {?} key * @return {?} */ key => { if (key === 'all') { this.elementRef.nativeElement.classList.add(`my-${this.my[key]}`); } else { this.elementRef.nativeElement.classList.add(`my-${key}-${this.my[key]}`); } })); } catch (err) { console.error(`Malformed margins\`: ${err}`); } } } MarginVerticalDirective.decorators = [ { type: Directive, args: [{ // tslint:disable-next-line: directive-selector selector: '[my]' },] } ]; /** @nocollapse */ MarginVerticalDirective.ctorParameters = () => [ { type: ElementRef } ]; MarginVerticalDirective.propDecorators = { my: [{ type: Input }] }; if (false) { /** @type {?} */ MarginVerticalDirective.prototype.my; /** * @type {?} * @private */ MarginVerticalDirective.prototype.elementRef; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFyZ2luLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BrdXNoa2kvbmctc3VrYS8iLCJzb3VyY2VzIjpbImxpYi9zcGFjaW5nL21hcmdpbi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQU1yRSxNQUFNLE9BQU8sZUFBZTs7OztJQUsxQixZQUFZLFVBQXNCO1FBSnpCLE1BQUMsR0FBRyxFQUFFLENBQUM7UUFLZCxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztJQUMvQixDQUFDOzs7O0lBRUQsUUFBUTtRQUNOLElBQUk7O2tCQUNJLFVBQVUsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFFdEMsVUFBVSxDQUFDLE9BQU87Ozs7WUFBQyxHQUFHLENBQUMsRUFBRTtnQkFDdkIsSUFBSSxHQUFHLEtBQUssS0FBSyxFQUFFO29CQUNqQixJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7aUJBQ2pFO3FCQUFNO29CQUNMLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7aUJBQ3hFO1lBQ0gsQ0FBQyxFQUFDLENBQUM7U0FDSjtRQUFDLE9BQU8sR0FBRyxFQUFFO1lBQ1osT0FBTyxDQUFDLEtBQUssQ0FBQyx3QkFBd0IsR0FBRyxFQUFFLENBQUMsQ0FBQztTQUM5QztJQUNILENBQUM7OztZQTNCRixTQUFTLFNBQUM7O2dCQUVULFFBQVEsRUFBRSxLQUFLO2FBQ2hCOzs7O1lBTGtDLFVBQVU7OztnQkFPMUMsS0FBSzs7OztJQUFOLDRCQUFnQjs7Ozs7SUFFaEIscUNBQStCOztBQTJCakMsTUFBTSxPQUFPLGtCQUFrQjs7OztJQUs3QixZQUFZLFVBQXNCO1FBSnpCLE9BQUUsR0FBRyxFQUFFLENBQUM7UUFLZixJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztJQUMvQixDQUFDOzs7O0lBRUQsUUFBUTtRQUNOLElBQUk7O2tCQUNJLFVBQVUsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFFdkMsVUFBVSxDQUFDLE9BQU87Ozs7WUFBQyxHQUFHLENBQUMsRUFBRTtnQkFDdkIsSUFBSSxHQUFHLEtBQUssS0FBSyxFQUFFO29CQUNqQixJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7aUJBQ25FO3FCQUFNO29CQUNMLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLElBQUksSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7aUJBQzFFO1lBQ0gsQ0FBQyxFQUFDLENBQUM7U0FDSjtRQUFDLE9BQU8sR0FBRyxFQUFFO1lBQ1osT0FBTyxDQUFDLEtBQUssQ0FBQyx3QkFBd0IsR0FBRyxFQUFFLENBQUMsQ0FBQztTQUM5QztJQUNILENBQUM7OztZQTNCRixTQUFTLFNBQUM7O2dCQUVULFFBQVEsRUFBRSxNQUFNO2FBQ2pCOzs7O1lBbkNrQyxVQUFVOzs7aUJBcUMxQyxLQUFLOzs7O0lBQU4sZ0NBQWlCOzs7OztJQUVqQix3Q0FBK0I7O0FBMkJqQyxNQUFNLE9BQU8scUJBQXFCOzs7O0lBS2hDLFlBQVksVUFBc0I7UUFKekIsT0FBRSxHQUFHLEVBQUUsQ0FBQztRQUtmLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO0lBQy9CLENBQUM7Ozs7SUFFRCxRQUFRO1FBQ04sSUFBSTs7a0JBQ0ksVUFBVSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUV2QyxVQUFVLENBQUMsT0FBTzs7OztZQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUN2QixJQUFJLEdBQUcsS0FBSyxLQUFLLEVBQUU7b0JBQ2pCLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztpQkFDbkU7cUJBQU07b0JBQ0wsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztpQkFDMUU7WUFDSCxDQUFDLEVBQUMsQ0FBQztTQUNKO1FBQUMsT0FBTyxHQUFHLEVBQUU7WUFDWixPQUFPLENBQUMsS0FBSyxDQUFDLHdCQUF3QixHQUFHLEVBQUUsQ0FBQyxDQUFDO1NBQzlDO0lBQ0gsQ0FBQzs7O1lBM0JGLFNBQVMsU0FBQzs7Z0JBRVQsUUFBUSxFQUFFLE1BQU07YUFDakI7Ozs7WUFqRWtDLFVBQVU7OztpQkFtRTFDLEtBQUs7Ozs7SUFBTixtQ0FBaUI7Ozs7O0lBRWpCLDJDQUErQjs7QUEyQmpDLE1BQU0sT0FBTyxtQkFBbUI7Ozs7SUFLOUIsWUFBWSxVQUFzQjtRQUp6QixPQUFFLEdBQUcsRUFBRSxDQUFDO1FBS2YsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7SUFDL0IsQ0FBQzs7OztJQUVELFFBQVE7UUFDTixJQUFJOztrQkFDSSxVQUFVLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBRXZDLFVBQVUsQ0FBQyxPQUFPOzs7O1lBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ3ZCLElBQUksR0FBRyxLQUFLLEtBQUssRUFBRTtvQkFDakIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2lCQUNuRTtxQkFBTTtvQkFDTCxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxJQUFJLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2lCQUMxRTtZQUNILENBQUMsRUFBQyxDQUFDO1NBQ0o7UUFBQyxPQUFPLEdBQUcsRUFBRTtZQUNaLE9BQU8sQ0FBQyxLQUFLLENBQUMsd0JBQXdCLEdBQUcsRUFBRSxDQUFDLENBQUM7U0FDOUM7SUFDSCxDQUFDOzs7WUEzQkYsU0FBUyxTQUFDOztnQkFFVCxRQUFRLEVBQUUsTUFBTTthQUNqQjs7OztZQS9Ga0MsVUFBVTs7O2lCQWlHMUMsS0FBSzs7OztJQUFOLGlDQUFpQjs7Ozs7SUFFakIseUNBQStCOztBQTJCakMsTUFBTSxPQUFPLG9CQUFvQjs7OztJQUsvQixZQUFZLFVBQXNCO1FBSnpCLE9BQUUsR0FBRyxFQUFFLENBQUM7UUFLZixJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztJQUMvQixDQUFDOzs7O0lBRUQsUUFBUTtRQUNOLElBQUk7O2tCQUNJLFVBQVUsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFFdkMsVUFBVSxDQUFDLE9BQU87Ozs7WUFBQyxHQUFHLENBQUMsRUFBRTtnQkFDdkIsSUFBSSxHQUFHLEtBQUssS0FBSyxFQUFFO29CQUNqQixJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7aUJBQ25FO3FCQUFNO29CQUNMLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLElBQUksSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7aUJBQzFFO1lBQ0gsQ0FBQyxFQUFDLENBQUM7U0FDSjtRQUFDLE9BQU8sR0FBRyxFQUFFO1lBQ1osT0FBTyxDQUFDLEtBQUssQ0FBQyx3QkFBd0IsR0FBRyxFQUFFLENBQUMsQ0FBQztTQUM5QztJQUNILENBQUM7OztZQTNCRixTQUFTLFNBQUM7O2dCQUVULFFBQVEsRUFBRSxNQUFNO2FBQ2pCOzs7O1lBN0hrQyxVQUFVOzs7aUJBK0gxQyxLQUFLOzs7O0lBQU4sa0NBQWlCOzs7OztJQUVqQiwwQ0FBK0I7O0FBMkJqQyxNQUFNLE9BQU8seUJBQXlCOzs7O0lBS3BDLFlBQVksVUFBc0I7UUFKekIsT0FBRSxHQUFHLEVBQUUsQ0FBQztRQUtmLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO0lBQy9CLENBQUM7Ozs7SUFFRCxRQUFRO1FBQ04sSUFBSTs7a0JBQ0ksVUFBVSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUV2QyxVQUFVLENBQUMsT0FBTzs7OztZQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUN2QixJQUFJLEdBQUcsS0FBSyxLQUFLLEVBQUU7b0JBQ2pCLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztpQkFDbkU7cUJBQU07b0JBQ0wsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztpQkFDMUU7WUFDSCxDQUFDLEVBQUMsQ0FBQztTQUNKO1FBQUMsT0FBTyxHQUFHLEVBQUU7WUFDWixPQUFPLENBQUMsS0FBSyxDQUFDLHdCQUF3QixHQUFHLEVBQUUsQ0FBQyxDQUFDO1NBQzlDO0lBQ0gsQ0FBQzs7O1lBM0JGLFNBQVMsU0FBQzs7Z0JBRVQsUUFBUSxFQUFFLE1BQU07YUFDakI7Ozs7WUEzSmtDLFVBQVU7OztpQkE2SjFDLEtBQUs7Ozs7SUFBTix1Q0FBaUI7Ozs7O0lBRWpCLCtDQUErQjs7QUEyQmpDLE1BQU0sT0FBTyx1QkFBdUI7Ozs7SUFLbEMsWUFBWSxVQUFzQjtRQUp6QixPQUFFLEdBQUcsRUFBRSxDQUFDO1FBS2YsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7SUFDL0IsQ0FBQzs7OztJQUVELFFBQVE7UUFDTixJQUFJOztrQkFDSSxVQUFVLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBRXZDLFVBQVUsQ0FBQyxPQUFPOzs7O1lBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ3ZCLElBQUksR0FBRyxLQUFLLEtBQUssRUFBRTtvQkFDakIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2lCQUNuRTtxQkFBTTtvQkFDTCxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxJQUFJLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2lCQUMxRTtZQUNILENBQUMsRUFBQyxDQUFDO1NBQ0o7UUFBQyxPQUFPLEdBQUcsRUFBRTtZQUNaLE9BQU8sQ0FBQyxLQUFLLENBQUMsd0JBQXdCLEdBQUcsRUFBRSxDQUFDLENBQUM7U0FDOUM7SUFDSCxDQUFDOzs7WUEzQkYsU0FBUyxTQUFDOztnQkFFVCxRQUFRLEVBQUUsTUFBTTthQUNqQjs7OztZQXpMa0MsVUFBVTs7O2lCQTJMMUMsS0FBSzs7OztJQUFOLHFDQUFpQjs7Ozs7SUFFakIsNkNBQStCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbnB1dCwgT25Jbml0LCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IGRpcmVjdGl2ZS1zZWxlY3RvclxuICBzZWxlY3RvcjogJ1ttXSdcbn0pXG5leHBvcnQgY2xhc3MgTWFyZ2luRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgbSA9IHt9O1xuXG4gIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZjtcblxuICBjb25zdHJ1Y3RvcihlbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7XG4gICAgdGhpcy5lbGVtZW50UmVmID0gZWxlbWVudFJlZjtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBtYXJnaW5LZXlzID0gT2JqZWN0LmtleXModGhpcy5tKTtcblxuICAgICAgbWFyZ2luS2V5cy5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgIGlmIChrZXkgPT09ICdhbGwnKSB7XG4gICAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZChgbS0ke3RoaXMubVtrZXldfWApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoYG0tJHtrZXl9LSR7dGhpcy5tW2tleV19YCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgY29uc29sZS5lcnJvcihgTWFsZm9ybWVkIG1hcmdpbnNcXGA6ICR7ZXJyfWApO1xuICAgIH1cbiAgfVxufVxuXG5ARGlyZWN0aXZlKHtcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBkaXJlY3RpdmUtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICdbbXRdJ1xufSlcbmV4cG9ydCBjbGFzcyBNYXJnaW5Ub3BEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBtdCA9IHt9O1xuXG4gIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZjtcblxuICBjb25zdHJ1Y3RvcihlbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7XG4gICAgdGhpcy5lbGVtZW50UmVmID0gZWxlbWVudFJlZjtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBtYXJnaW5LZXlzID0gT2JqZWN0LmtleXModGhpcy5tdCk7XG5cbiAgICAgIG1hcmdpbktleXMuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgICBpZiAoa2V5ID09PSAnYWxsJykge1xuICAgICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoYG10LSR7dGhpcy5tdFtrZXldfWApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoYG10LSR7a2V5fS0ke3RoaXMubXRba2V5XX1gKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBNYWxmb3JtZWQgbWFyZ2luc1xcYDogJHtlcnJ9YCk7XG4gICAgfVxuICB9XG59XG5cbkBEaXJlY3RpdmUoe1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IGRpcmVjdGl2ZS1zZWxlY3RvclxuICBzZWxlY3RvcjogJ1ttYl0nXG59KVxuZXhwb3J0IGNsYXNzIE1hcmdpbkJvdHRvbURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIG1iID0ge307XG5cbiAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmO1xuXG4gIGNvbnN0cnVjdG9yKGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHtcbiAgICB0aGlzLmVsZW1lbnRSZWYgPSBlbGVtZW50UmVmO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IG1hcmdpbktleXMgPSBPYmplY3Qua2V5cyh0aGlzLm1iKTtcblxuICAgICAgbWFyZ2luS2V5cy5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgIGlmIChrZXkgPT09ICdhbGwnKSB7XG4gICAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZChgbWItJHt0aGlzLm1iW2tleV19YCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZChgbWItJHtrZXl9LSR7dGhpcy5tYltrZXldfWApO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYE1hbGZvcm1lZCBtYXJnaW5zXFxgOiAke2Vycn1gKTtcbiAgICB9XG4gIH1cbn1cblxuQERpcmVjdGl2ZSh7XG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogZGlyZWN0aXZlLXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnW21sXSdcbn0pXG5leHBvcnQgY2xhc3MgTWFyZ2luTGVmdERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIG1sID0ge307XG5cbiAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmO1xuXG4gIGNvbnN0cnVjdG9yKGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHtcbiAgICB0aGlzLmVsZW1lbnRSZWYgPSBlbGVtZW50UmVmO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IG1hcmdpbktleXMgPSBPYmplY3Qua2V5cyh0aGlzLm1sKTtcblxuICAgICAgbWFyZ2luS2V5cy5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgIGlmIChrZXkgPT09ICdhbGwnKSB7XG4gICAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZChgbWwtJHt0aGlzLm1sW2tleV19YCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZChgbWwtJHtrZXl9LSR7dGhpcy5tbFtrZXldfWApO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYE1hbGZvcm1lZCBtYXJnaW5zXFxgOiAke2Vycn1gKTtcbiAgICB9XG4gIH1cbn1cblxuQERpcmVjdGl2ZSh7XG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogZGlyZWN0aXZlLXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnW21yXSdcbn0pXG5leHBvcnQgY2xhc3MgTWFyZ2luUmlnaHREaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBtciA9IHt9O1xuXG4gIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZjtcblxuICBjb25zdHJ1Y3RvcihlbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7XG4gICAgdGhpcy5lbGVtZW50UmVmID0gZWxlbWVudFJlZjtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBtYXJnaW5LZXlzID0gT2JqZWN0LmtleXModGhpcy5tcik7XG5cbiAgICAgIG1hcmdpbktleXMuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgICBpZiAoa2V5ID09PSAnYWxsJykge1xuICAgICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoYG1yLSR7dGhpcy5tcltrZXldfWApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoYG1yLSR7a2V5fS0ke3RoaXMubXJba2V5XX1gKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBNYWxmb3JtZWQgbWFyZ2luc1xcYDogJHtlcnJ9YCk7XG4gICAgfVxuICB9XG59XG5cbkBEaXJlY3RpdmUoe1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IGRpcmVjdGl2ZS1zZWxlY3RvclxuICBzZWxlY3RvcjogJ1tteF0nXG59KVxuZXhwb3J0IGNsYXNzIE1hcmdpbkhvcml6b250YWxEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBteCA9IHt9O1xuXG4gIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZjtcblxuICBjb25zdHJ1Y3RvcihlbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7XG4gICAgdGhpcy5lbGVtZW50UmVmID0gZWxlbWVudFJlZjtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBtYXJnaW5LZXlzID0gT2JqZWN0LmtleXModGhpcy5teCk7XG5cbiAgICAgIG1hcmdpbktleXMuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgICBpZiAoa2V5ID09PSAnYWxsJykge1xuICAgICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoYG14LSR7dGhpcy5teFtrZXldfWApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoYG14LSR7a2V5fS0ke3RoaXMubXhba2V5XX1gKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBNYWxmb3JtZWQgbWFyZ2luc1xcYDogJHtlcnJ9YCk7XG4gICAgfVxuICB9XG59XG5cbkBEaXJlY3RpdmUoe1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IGRpcmVjdGl2ZS1zZWxlY3RvclxuICBzZWxlY3RvcjogJ1tteV0nXG59KVxuZXhwb3J0IGNsYXNzIE1hcmdpblZlcnRpY2FsRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgbXkgPSB7fTtcblxuICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY7XG5cbiAgY29uc3RydWN0b3IoZWxlbWVudFJlZjogRWxlbWVudFJlZikge1xuICAgIHRoaXMuZWxlbWVudFJlZiA9IGVsZW1lbnRSZWY7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgbWFyZ2luS2V5cyA9IE9iamVjdC5rZXlzKHRoaXMubXkpO1xuXG4gICAgICBtYXJnaW5LZXlzLmZvckVhY2goa2V5ID0+IHtcbiAgICAgICAgaWYgKGtleSA9PT0gJ2FsbCcpIHtcbiAgICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKGBteS0ke3RoaXMubXlba2V5XX1gKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKGBteS0ke2tleX0tJHt0aGlzLm15W2tleV19YCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgY29uc29sZS5lcnJvcihgTWFsZm9ybWVkIG1hcmdpbnNcXGA6ICR7ZXJyfWApO1xuICAgIH1cbiAgfVxufVxuIl19