ngx-pluto
Version:
183 lines • 17.7 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Component, ViewEncapsulation, Input, ElementRef, ViewChild } from "@angular/core";
/**
* 盒子组件 - 常用于展示汇总数据等的面板
*
* <example-url>https://stackblitz.com/edit/np-box-sample?embed=1&file=src/app/app.component.html</example-url>
*/
export class NpBox {
constructor() {
this.defaultBgColors = ['blue', 'green', 'red', 'orange'];
this.showCustomHoverColor = false;
}
/**
* @return {?}
*/
ngOnInit() {
this.initOptions();
this.buildCustomBg();
}
/**
* @private
* @return {?}
*/
initOptions() {
if (this.options) {
if (!this.options.bg) {
this.options.bg = 'blue';
}
if (!this.options.layout) {
this.options.layout = 'center';
}
}
}
/**
* @private
* @return {?}
*/
buildCustomBg() {
if (this.options.bg && this.defaultBgColors.indexOf(this.options.bg) === -1 && this.npBoxHeader.nativeElement) {
if (this.options.bg.indexOf('//') > -1 || this.options.bg.indexOf('http') > -1) {
this.npBoxHeader.nativeElement.style.backgroundImage = 'url(' + this.options.bg + ')';
this.npBoxHeader.nativeElement.style.backgroundPosition = '0% 0%';
this.npBoxHeader.nativeElement.style.backgroundRepeat = 'no-repeat';
this.npBoxHeader.nativeElement.style.backgroundSize = '100% 100%';
}
else {
this.npBoxHeader.nativeElement.style.backgroundColor = this.options.bg;
}
}
}
/**
* 构建NpBoxOptions中设置的鼠标hover颜色hoverColor
* @param {?} isHover 鼠标是否hover
* @return {?}
*/
buildCustomHoverColor(isHover) {
if (this.options.bg && this.options.hoverColor && this.defaultBgColors.indexOf(this.options.bg) === -1) {
this.showCustomHoverColor = isHover;
}
}
}
NpBox.decorators = [
{ type: Component, args: [{
selector: `np-box`,
template: "<div #npBoxWrapper class=\"np-box-wrapper flex-wrap col-flex\" [ngClass]=\"{\r\n 'blue-shadow': options.bg === 'blue', \r\n 'green-shadow': options.bg === 'green', \r\n 'red-shadow': options.bg === 'red', \r\n 'orange-shadow': options.bg === 'orange'\r\n }\" [ngStyle]=\"{'box-shadow': showCustomHoverColor ? '0px 8px 16px 0px rgba(' + options.hoverColor + ', 0.2)' : ''}\"\r\n (mouseenter)=\"buildCustomHoverColor(true)\" (mouseleave)=\"buildCustomHoverColor(false)\">\r\n <div #npBoxHeader class=\"np-box-header flex-wrap row-flex\" [ngClass]=\"{\r\n 'blue': options.bg === 'blue', \r\n 'green': options.bg === 'green', \r\n 'red': options.bg === 'red', \r\n 'orange': options.bg === 'orange'\r\n }\">\r\n <i [ngClass]=\"options.faIcon\"></i>\r\n \r\n <span>{{ options.title }}</span>\r\n </div>\r\n <div class=\"np-box-content flex-wrap row-flex\" *ngIf=\"options.layout === 'leftRight'\"\r\n [ngStyle]=\"{'height.px': options.height}\">\r\n <div class=\"flex-wrap col-flex\" [ngClass]=\"{'left-right': options.layout === 'leftRight'}\">\r\n <span>{{ options.lCaption }}</span>\r\n <span [style.color]=\"options.lColor\">{{ options.lContent }}</span>\r\n </div>\r\n <span class=\"vertical-line\"></span>\r\n <div class=\"flex-wrap col-flex\" [ngClass]=\"{'left-right': options.layout === 'leftRight'}\">\r\n <span>{{ options.rCaption }}</span>\r\n <span [style.color]=\"options.rColor\">{{ options.rContent }}</span>\r\n </div>\r\n </div>\r\n <div class=\"np-box-content flex-wrap row-flex\" *ngIf=\"options.layout === 'center'\"\r\n [ngStyle]=\"{'height.px': options.height}\">\r\n <div class=\"flex-wrap col-flex\" [ngClass]=\"{'center': options.layout === 'center'}\">\r\n <span>{{ options.cCaption }}</span>\r\n <span [style.color]=\"options.cColor\">{{ options.cContent }}</span>\r\n </div>\r\n </div>\r\n <div class=\"np-box-content flex-wrap row-flex\" *ngIf=\"options.layout === 'custom'\"\r\n [ngStyle]=\"{'height.px': options.height}\">\r\n <ng-content></ng-content>\r\n </div>\r\n</div>\r\n",
encapsulation: ViewEncapsulation.None,
styles: [".np-box-wrapper{box-shadow:0 8px 16px 0 rgba(174,180,180,.16);border-radius:10px;min-height:155px;transition:box-shadow .5s}.np-box-wrapper:hover.blue-shadow{box-shadow:0 8px 16px 0 rgba(78,136,221,.2)!important}.np-box-wrapper:hover.green-shadow{box-shadow:0 8px 16px 0 rgba(44,197,198,.2)!important}.np-box-wrapper:hover.red-shadow{box-shadow:0 8px 16px 0 rgba(244,107,120,.2)!important}.np-box-wrapper:hover.orange-shadow{box-shadow:0 8px 16px 0 rgba(253,137,34,.2)!important}.np-box-wrapper .np-box-header{justify-content:center;align-items:baseline;border-top-left-radius:10px;border-top-right-radius:10px;font-size:17px;line-height:48px}.np-box-wrapper .np-box-header.blue{background:url(//image.ipay.so/upload/voucher/assets/images/activity/pin-order_amt.png) 0 0/100% 100% no-repeat}.np-box-wrapper .np-box-header.green{background:url(//image.ipay.so/upload/voucher/assets/images/activity/pin-order_count.png) 0 0/100% 100% no-repeat}.np-box-wrapper .np-box-header.red{background:url(//image.ipay.so/upload/voucher/assets/images/activity/pin-user_count.png) 0 0/100% 100% no-repeat}.np-box-wrapper .np-box-header.orange{background:url(//image.ipay.so/upload/voucher/assets/images/activity/pin-product_count.png) 0 0/100% 100% no-repeat}.np-box-wrapper .np-box-content{margin:auto 0;justify-content:space-evenly;align-items:center}.np-box-wrapper .np-box-content>div.center,.np-box-wrapper .np-box-content>div.left-right{align-items:center}.np-box-wrapper .np-box-content>div.center>span:first-child,.np-box-wrapper .np-box-content>div.left-right>span:first-child{text-align:center;font-size:14px;margin-bottom:10px}.np-box-wrapper .np-box-content>div.center>span:last-child,.np-box-wrapper .np-box-content>div.left-right>span:last-child{font-weight:700;font-size:35px}.np-box-wrapper .np-box-content .vertical-line{width:1px;height:51px}"]
}] }
];
/** @nocollapse */
NpBox.ctorParameters = () => [];
NpBox.propDecorators = {
options: [{ type: Input }],
npBoxHeader: [{ type: ViewChild, args: ['npBoxHeader',] }]
};
if (false) {
/**
* 输入参数选项
* @type {?}
*/
NpBox.prototype.options;
/**
* @type {?}
* @private
*/
NpBox.prototype.npBoxHeader;
/**
* @type {?}
* @private
*/
NpBox.prototype.defaultBgColors;
/** @type {?} */
NpBox.prototype.showCustomHoverColor;
}
/**
* @ignore
* @record
*/
export function NpBoxOptions() { }
if (false) {
/**
* 'blue' | 'green' | 'red' | 'orange' 默认提供四种头部背景颜色
* 另外也可以直接传背景图片url或者其他颜色
* default = 'blue'
* @type {?|undefined}
*/
NpBoxOptions.prototype.bg;
/**
* 头部的标题文字
* @type {?}
*/
NpBoxOptions.prototype.title;
/**
* 头部标题icon
* @type {?}
*/
NpBoxOptions.prototype.faIcon;
/**
* 当传入的不是默认的四种颜色值之一的时候需要提供hover的阴影颜色,只支持传入rgb颜色值,eg. '100, 100, 100'
* @type {?|undefined}
*/
NpBoxOptions.prototype.hoverColor;
/**
* box内容布局:左右布局 | 居中布局 | 自定义布局
* default = 'center'
* @type {?|undefined}
*/
NpBoxOptions.prototype.layout;
/**
* 内容部分的高度像素, 如传入'300'则为300px
* @type {?|undefined}
*/
NpBoxOptions.prototype.height;
/**
* 如果内容部分为左右布局,则此参数为左边标题
* @type {?|undefined}
*/
NpBoxOptions.prototype.lCaption;
/**
* 如果内容部分为左右布局,则此参数为左边内容
* @type {?|undefined}
*/
NpBoxOptions.prototype.lContent;
/**
* 如果内容部分为左右布局,则此参数为左边内容文字颜色
* @type {?|undefined}
*/
NpBoxOptions.prototype.lColor;
/**
* 如果内容部分为左右布局,则此参数为右边标题
* @type {?|undefined}
*/
NpBoxOptions.prototype.rCaption;
/**
* 如果内容部分为左右布局,则此参数为右边内容
* @type {?|undefined}
*/
NpBoxOptions.prototype.rContent;
/**
* 如果内容部分为左右布局,则此参数为右边内容文字颜色
* @type {?|undefined}
*/
NpBoxOptions.prototype.rColor;
/**
* 如果内容部分为居中布局,则此参数为居中内容标题
* @type {?|undefined}
*/
NpBoxOptions.prototype.cCaption;
/**
* 如果内容部分为居中布局,则此参数为居中内容
* @type {?|undefined}
*/
NpBoxOptions.prototype.cContent;
/**
* 如果内容部分为居中布局,则此参数为居中内容文字颜色
* @type {?|undefined}
*/
NpBoxOptions.prototype.cColor;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm94LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LXBsdXRvLyIsInNvdXJjZXMiOlsibGliL2JveC9ib3gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQVUsS0FBSyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7OztBQWNuRyxNQUFNLE9BQU8sS0FBSztJQVVoQjtRQUhRLG9CQUFlLEdBQUcsQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztRQUM3RCx5QkFBb0IsR0FBRyxLQUFLLENBQUM7SUFFYixDQUFDOzs7O0lBRWpCLFFBQVE7UUFDTixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7Ozs7O0lBRU8sV0FBVztRQUNqQixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDaEIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFO2dCQUNwQixJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsR0FBRyxNQUFNLENBQUM7YUFDMUI7WUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUU7Z0JBQ3hCLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQzthQUNoQztTQUNGO0lBQ0gsQ0FBQzs7Ozs7SUFFTyxhQUFhO1FBQ25CLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRTtZQUM3RyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUU7Z0JBQzlFLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxlQUFlLEdBQUcsTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxHQUFHLEdBQUcsQ0FBQztnQkFDdEYsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLGtCQUFrQixHQUFHLE9BQU8sQ0FBQztnQkFDbEUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLGdCQUFnQixHQUFHLFdBQVcsQ0FBQztnQkFDcEUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLGNBQWMsR0FBRyxXQUFXLENBQUM7YUFDbkU7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQzthQUN4RTtTQUNGO0lBQ0gsQ0FBQzs7Ozs7O0lBTUQscUJBQXFCLENBQUMsT0FBZ0I7UUFDcEMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO1lBQ3RHLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxPQUFPLENBQUM7U0FDckM7SUFDSCxDQUFDOzs7WUF6REYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxRQUFRO2dCQUNsQiwybkVBQXVCO2dCQUV2QixhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTs7YUFDdEM7Ozs7O3NCQUtFLEtBQUs7MEJBRUwsU0FBUyxTQUFDLGFBQWE7Ozs7Ozs7SUFGeEIsd0JBQStCOzs7OztJQUUvQiw0QkFBdUU7Ozs7O0lBRXZFLGdDQUE2RDs7SUFDN0QscUNBQTZCOzs7Ozs7QUFnRC9CLGtDQXdDQzs7Ozs7Ozs7SUFsQ0MsMEJBQVk7Ozs7O0lBRVosNkJBQWM7Ozs7O0lBRWQsOEJBQWU7Ozs7O0lBSWYsa0NBQW9COzs7Ozs7SUFLcEIsOEJBQTJDOzs7OztJQUUzQyw4QkFBZ0I7Ozs7O0lBRWhCLGdDQUFrQjs7Ozs7SUFFbEIsZ0NBQWU7Ozs7O0lBRWYsOEJBQWdCOzs7OztJQUVoQixnQ0FBa0I7Ozs7O0lBRWxCLGdDQUFlOzs7OztJQUVmLDhCQUFnQjs7Ozs7SUFFaEIsZ0NBQWtCOzs7OztJQUVsQixnQ0FBZTs7Ozs7SUFFZiw4QkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIFZpZXdFbmNhcHN1bGF0aW9uLCBPbkluaXQsIElucHV0LCBFbGVtZW50UmVmLCBWaWV3Q2hpbGQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuLyoqXHJcbiAqIOebkuWtkOe7hOS7tiAtIOW4uOeUqOS6juWxleekuuaxh+aAu+aVsOaNruetieeahOmdouadv1xyXG4gKiBcclxuICogPGV4YW1wbGUtdXJsPmh0dHBzOi8vc3RhY2tibGl0ei5jb20vZWRpdC9ucC1ib3gtc2FtcGxlP2VtYmVkPTEmZmlsZT1zcmMvYXBwL2FwcC5jb21wb25lbnQuaHRtbDwvZXhhbXBsZS11cmw+XHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogYG5wLWJveGAsXHJcbiAgdGVtcGxhdGVVcmw6ICdib3guaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJ2JveC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIE5wQm94IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgLyoq6L6T5YWl5Y+C5pWw6YCJ6aG5ICovXHJcbiAgQElucHV0KCkgb3B0aW9uczogTnBCb3hPcHRpb25zO1xyXG5cclxuICBAVmlld0NoaWxkKCducEJveEhlYWRlcicpIHByaXZhdGUgbnBCb3hIZWFkZXI6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xyXG5cclxuICBwcml2YXRlIGRlZmF1bHRCZ0NvbG9ycyA9IFsnYmx1ZScsICdncmVlbicsICdyZWQnLCAnb3JhbmdlJ107XHJcbiAgc2hvd0N1c3RvbUhvdmVyQ29sb3IgPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmluaXRPcHRpb25zKCk7XHJcbiAgICB0aGlzLmJ1aWxkQ3VzdG9tQmcoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaW5pdE9wdGlvbnMoKSB7XHJcbiAgICBpZiAodGhpcy5vcHRpb25zKSB7XHJcbiAgICAgIGlmICghdGhpcy5vcHRpb25zLmJnKSB7XHJcbiAgICAgICAgdGhpcy5vcHRpb25zLmJnID0gJ2JsdWUnO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoIXRoaXMub3B0aW9ucy5sYXlvdXQpIHtcclxuICAgICAgICB0aGlzLm9wdGlvbnMubGF5b3V0ID0gJ2NlbnRlcic7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgYnVpbGRDdXN0b21CZygpIHtcclxuICAgIGlmICh0aGlzLm9wdGlvbnMuYmcgJiYgdGhpcy5kZWZhdWx0QmdDb2xvcnMuaW5kZXhPZih0aGlzLm9wdGlvbnMuYmcpID09PSAtMSAmJiB0aGlzLm5wQm94SGVhZGVyLm5hdGl2ZUVsZW1lbnQpIHtcclxuICAgICAgaWYgKHRoaXMub3B0aW9ucy5iZy5pbmRleE9mKCcvLycpID4gLTEgfHwgdGhpcy5vcHRpb25zLmJnLmluZGV4T2YoJ2h0dHAnKSA+IC0xKSB7XHJcbiAgICAgICAgdGhpcy5ucEJveEhlYWRlci5uYXRpdmVFbGVtZW50LnN0eWxlLmJhY2tncm91bmRJbWFnZSA9ICd1cmwoJyArIHRoaXMub3B0aW9ucy5iZyArICcpJztcclxuICAgICAgICB0aGlzLm5wQm94SGVhZGVyLm5hdGl2ZUVsZW1lbnQuc3R5bGUuYmFja2dyb3VuZFBvc2l0aW9uID0gJzAlIDAlJztcclxuICAgICAgICB0aGlzLm5wQm94SGVhZGVyLm5hdGl2ZUVsZW1lbnQuc3R5bGUuYmFja2dyb3VuZFJlcGVhdCA9ICduby1yZXBlYXQnO1xyXG4gICAgICAgIHRoaXMubnBCb3hIZWFkZXIubmF0aXZlRWxlbWVudC5zdHlsZS5iYWNrZ3JvdW5kU2l6ZSA9ICcxMDAlIDEwMCUnO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMubnBCb3hIZWFkZXIubmF0aXZlRWxlbWVudC5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSB0aGlzLm9wdGlvbnMuYmc7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIOaehOW7uk5wQm94T3B0aW9uc+S4reiuvue9rueahOm8oOagh2hvdmVy6aKc6ImyaG92ZXJDb2xvclxyXG4gICAqIEBwYXJhbSBpc0hvdmVyIOm8oOagh+aYr+WQpmhvdmVyXHJcbiAgICovXHJcbiAgYnVpbGRDdXN0b21Ib3ZlckNvbG9yKGlzSG92ZXI6IGJvb2xlYW4pIHtcclxuICAgIGlmICh0aGlzLm9wdGlvbnMuYmcgJiYgdGhpcy5vcHRpb25zLmhvdmVyQ29sb3IgJiYgdGhpcy5kZWZhdWx0QmdDb2xvcnMuaW5kZXhPZih0aGlzLm9wdGlvbnMuYmcpID09PSAtMSkge1xyXG4gICAgICB0aGlzLnNob3dDdXN0b21Ib3ZlckNvbG9yID0gaXNIb3ZlcjtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBAaWdub3JlXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIE5wQm94T3B0aW9ucyB7XHJcbiAgLyoqXHJcbiAgKiAnYmx1ZScgfCAnZ3JlZW4nIHwgJ3JlZCcgfCAnb3JhbmdlJyAg6buY6K6k5o+Q5L6b5Zub56eN5aS06YOo6IOM5pmv6aKc6ImyXHJcbiAgKiDlj6blpJbkuZ/lj6/ku6Xnm7TmjqXkvKDog4zmma/lm77niYd1cmzmiJbogIXlhbbku5bpopzoibJcclxuICAqIGRlZmF1bHQgPSAnYmx1ZSdcclxuICAqL1xyXG4gIGJnPzogc3RyaW5nO1xyXG4gIC8qKuWktOmDqOeahOagh+mimOaWh+WtlyAqL1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgLyoq5aS06YOo5qCH6aKYaWNvbiAqL1xyXG4gIGZhSWNvbjogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIOW9k+S8oOWFpeeahOS4jeaYr+m7mOiupOeahOWbm+enjeminOiJsuWAvOS5i+S4gOeahOaXtuWAmemcgOimgeaPkOS+m2hvdmVy55qE6Zi05b2x6aKc6Imy77yM5Y+q5pSv5oyB5Lyg5YWlcmdi6aKc6Imy5YC877yMZWcuICcxMDAsIDEwMCwgMTAwJ1xyXG4gICAqL1xyXG4gIGhvdmVyQ29sb3I/OiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICogYm945YaF5a655biD5bGA77ya5bem5Y+z5biD5bGAIHwg5bGF5Lit5biD5bGAIHwg6Ieq5a6a5LmJ5biD5bGAXHJcbiAgICogZGVmYXVsdCA9ICdjZW50ZXInXHJcbiAgICovXHJcbiAgbGF5b3V0PzogJ2xlZnRSaWdodCcgfCAnY2VudGVyJyB8ICdjdXN0b20nO1xyXG4gIC8qKuWGheWuuemDqOWIhueahOmrmOW6puWDj+e0oO+8jCDlpoLkvKDlhaUnMzAwJ+WImeS4ujMwMHB4ICovXHJcbiAgaGVpZ2h0Pzogc3RyaW5nO1xyXG4gIC8qKuWmguaenOWGheWuuemDqOWIhuS4uuW3puWPs+W4g+WxgO+8jOWImeatpOWPguaVsOS4uuW3pui+ueagh+mimCAqL1xyXG4gIGxDYXB0aW9uPzogc3RyaW5nO1xyXG4gIC8qKuWmguaenOWGheWuuemDqOWIhuS4uuW3puWPs+W4g+WxgO+8jOWImeatpOWPguaVsOS4uuW3pui+ueWGheWuuSAqL1xyXG4gIGxDb250ZW50PzogYW55O1xyXG4gIC8qKuWmguaenOWGheWuuemDqOWIhuS4uuW3puWPs+W4g+WxgO+8jOWImeatpOWPguaVsOS4uuW3pui+ueWGheWuueaWh+Wtl+minOiJsiAqL1xyXG4gIGxDb2xvcj86IHN0cmluZztcclxuICAvKirlpoLmnpzlhoXlrrnpg6jliIbkuLrlt6blj7PluIPlsYDvvIzliJnmraTlj4LmlbDkuLrlj7PovrnmoIfpopggKi9cclxuICByQ2FwdGlvbj86IHN0cmluZztcclxuICAvKirlpoLmnpzlhoXlrrnpg6jliIbkuLrlt6blj7PluIPlsYDvvIzliJnmraTlj4LmlbDkuLrlj7PovrnlhoXlrrkgKi9cclxuICByQ29udGVudD86IGFueTtcclxuICAvKirlpoLmnpzlhoXlrrnpg6jliIbkuLrlt6blj7PluIPlsYDvvIzliJnmraTlj4LmlbDkuLrlj7PovrnlhoXlrrnmloflrZfpopzoibIgKi9cclxuICByQ29sb3I/OiBzdHJpbmc7XHJcbiAgLyoq5aaC5p6c5YaF5a656YOo5YiG5Li65bGF5Lit5biD5bGA77yM5YiZ5q2k5Y+C5pWw5Li65bGF5Lit5YaF5a655qCH6aKYICovXHJcbiAgY0NhcHRpb24/OiBzdHJpbmc7XHJcbiAgLyoq5aaC5p6c5YaF5a656YOo5YiG5Li65bGF5Lit5biD5bGA77yM5YiZ5q2k5Y+C5pWw5Li65bGF5Lit5YaF5a65ICovXHJcbiAgY0NvbnRlbnQ/OiBhbnk7XHJcbiAgLyoq5aaC5p6c5YaF5a656YOo5YiG5Li65bGF5Lit5biD5bGA77yM5YiZ5q2k5Y+C5pWw5Li65bGF5Lit5YaF5a655paH5a2X6aKc6ImyICovXHJcbiAgY0NvbG9yPzogc3RyaW5nO1xyXG59Il19