ngx-pluto
Version:
181 lines • 15 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Component, ViewEncapsulation, Input, Output, EventEmitter, ViewChild } from '@angular/core';
import { NpTooltipDirective } from '../tooltip/index';
import { Utils } from '../utils';
/**
* kebab组件
*
* <example-url>https://stackblitz.com/edit/angular-vc3q8h?embed=1&file=src/app/app.component.html</example-url>
*/
var NpKebab = /** @class */ (function () {
function NpKebab() {
/**
* 布局格式,默认flex布局
*/
this.display = 'flex';
this.position = 'bottomRight';
/**
* 点击单个item接收符合KebabItem 格式的对象
*
*/
this.onItemClicked = new EventEmitter();
this.itemsInKebab = [];
this.itemsOutKebab = [];
this.isDropdownVisible = false;
}
/**
* @return {?}
*/
NpKebab.prototype.ngOnInit = /**
* @return {?}
*/
function () {
this.buildKebabItems();
};
/**
* @param {?} $event
* @param {?} item
* @param {?=} itemInKebab
* @return {?}
*/
NpKebab.prototype.onKebabItemClicked = /**
* @param {?} $event
* @param {?} item
* @param {?=} itemInKebab
* @return {?}
*/
function ($event, item, itemInKebab) {
if (itemInKebab === void 0) { itemInKebab = false; }
this.onItemClicked.emit({ $event: $event, item: item });
if (itemInKebab && this.dropdownTooltip) {
this.dropdownTooltip.hide();
}
};
/**
* @private
* @return {?}
*/
NpKebab.prototype.buildKebabItems = /**
* @private
* @return {?}
*/
function () {
if (!this.data || !this.data.items) {
throw new Error('Invalid data');
}
this.data.items.forEach((/**
* @param {?} item
* @return {?}
*/
function (item) {
if (item.id === undefined || item.id === null) {
item.id = Utils.ID();
}
}));
if (!this.data.limit) {
this.itemsOutKebab = this.data.items || [];
this.itemsInKebab = [];
return;
}
if (this.data.limit > 0 && this.data.items.length > 0) {
this.data.limit = (this.data.limit > this.data.items.length) ? this.data.items.length : this.data.limit;
this.itemsOutKebab = this.data.items.slice(0, this.data.items.length - this.data.limit) || [];
this.itemsInKebab = this.data.items.slice(this.itemsOutKebab.length, this.data.items.length) || [];
return;
}
};
NpKebab.decorators = [
{ type: Component, args: [{
selector: "np-kebab",
template: "<div class=\"np-kebab-wrapper flex-wrap row-flex\" [style.display]=\"display\">\r\n <!-- items out of kebab -->\r\n <span *ngFor=\"let item of itemsOutKebab\" [ngClass]=\"{'interact-expand': item.type !== 'separator'}\"\r\n [style.color]=\"item.color\" (click)=\"onKebabItemClicked($event, item)\">\r\n <ng-container *ngIf=\"!item.type || item.type === 'text'\">{{ item.value }}</ng-container>\r\n <ng-container *ngIf=\"item.type === 'icon'\"><i [ngClass]=\"item.value\"></i></ng-container>\r\n <ng-container *ngIf=\"item.type === 'separator'\">|</ng-container>\r\n </span>\r\n\r\n <!-- items in kebab -->\r\n <ng-container *ngIf=\"data.limit\">\r\n <span npTooltip [template]=\"dropdownTemplate\" trigger=\"click\" [position]=\"position\" bgColor=\"transparent\"\r\n [showArrow]=\"false\" style=\"cursor: pointer;\"><i class=\"fas fa-ellipsis-v\" style=\"font-size: 14px;\"></i></span>\r\n <ng-template #dropdownTemplate>\r\n <div class=\"flex-wrap col-flex kebab-dropdown-container\">\r\n <span *ngFor=\"let item of itemsInKebab\" [ngClass]=\"{'h-line': item.type === 'separator'}\"\r\n (click)=\"onKebabItemClicked($event, item, true)\">\r\n <ng-container *ngIf=\"!item.type || item.type === 'text'\">{{ item.value }}</ng-container>\r\n <ng-container *ngIf=\"item.type === 'icon'\"><i [ngClass]=\"item.value\"></i></ng-container>\r\n </span>\r\n </div>\r\n </ng-template>\r\n </ng-container>\r\n</div>\r\n",
encapsulation: ViewEncapsulation.None,
styles: [".cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:0}.kebab-dropdown-container{padding:5px 8px;border-radius:5px}.kebab-dropdown-container>span{padding:5px 8px;cursor:pointer}.kebab-dropdown-container .h-line{margin-bottom:4px;padding-top:0;height:0}.np-kebab-wrapper>span{padding:5px 8px}.np-kebab-wrapper .interact-expand{cursor:pointer;font-size:14px;font-weight:400;display:inline-block}.np-kebab-wrapper .interact-expand:hover{transform:scale(1.05);transition:transform ease-in-out}"]
}] }
];
/** @nocollapse */
NpKebab.ctorParameters = function () { return []; };
NpKebab.propDecorators = {
data: [{ type: Input }],
display: [{ type: Input }],
position: [{ type: Input }],
onItemClicked: [{ type: Output }],
dropdownTooltip: [{ type: ViewChild, args: [NpTooltipDirective,] }]
};
return NpKebab;
}());
export { NpKebab };
if (false) {
/**
* 传入的需要进行展示的数组
* @type {?}
*/
NpKebab.prototype.data;
/**
* 布局格式,默认flex布局
* @type {?}
*/
NpKebab.prototype.display;
/** @type {?} */
NpKebab.prototype.position;
/**
* 点击单个item接收符合KebabItem 格式的对象
*
* @type {?}
*/
NpKebab.prototype.onItemClicked;
/** @type {?} */
NpKebab.prototype.dropdownTooltip;
/** @type {?} */
NpKebab.prototype.itemsInKebab;
/** @type {?} */
NpKebab.prototype.itemsOutKebab;
/** @type {?} */
NpKebab.prototype.isDropdownVisible;
}
/**
* @ignore
* @record
*/
export function KebabComponentData() { }
if (false) {
/** @type {?} */
KebabComponentData.prototype.items;
/**
* If no limit passed in or 0, which means all items out of kebab;
* if limit === items.length, which means all items in kebab;
* otherwise, limit is the count for items in kebab.
*
* @type {?|undefined}
*/
KebabComponentData.prototype.limit;
}
/**
* @record
*/
export function KebabItem() { }
if (false) {
/**
* 页面展示文案,字符串类型,属于必传参数
* @type {?}
*/
KebabItem.prototype.value;
/**
* 可自己传入不同的id,支持字符串和数字,如果不传入,则默认生成随机id
* @type {?|undefined}
*/
KebabItem.prototype.id;
/**
* 支持传入`icon`, `text`, `separator`, 默认`text`
* @type {?|undefined}
*/
KebabItem.prototype.type;
/**
* 支持传入颜色,非必传,不传使用默认色
* @type {?|undefined}
*/
KebabItem.prototype.color;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2ViYWIuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtcGx1dG8vIiwic291cmNlcyI6WyJsaWIva2ViYWIva2ViYWIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQVUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdHLE9BQU8sRUFBRSxrQkFBa0IsRUFBcUIsTUFBTSxrQkFBa0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sVUFBVSxDQUFDOzs7Ozs7QUFRakM7SUF3QkU7Ozs7UUFaUyxZQUFPLEdBQVcsTUFBTSxDQUFDO1FBQ3pCLGFBQVEsR0FBc0IsYUFBYSxDQUFDOzs7OztRQUkzQyxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFvQyxDQUFDO1FBRy9FLGlCQUFZLEdBQXFCLEVBQUUsQ0FBQztRQUNwQyxrQkFBYSxHQUFxQixFQUFFLENBQUM7UUFDckMsc0JBQWlCLEdBQUcsS0FBSyxDQUFDO0lBRVYsQ0FBQzs7OztJQUVqQiwwQkFBUTs7O0lBQVI7UUFDRSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDekIsQ0FBQzs7Ozs7OztJQUVELG9DQUFrQjs7Ozs7O0lBQWxCLFVBQW1CLE1BQVcsRUFBRSxJQUFlLEVBQUUsV0FBNEI7UUFBNUIsNEJBQUEsRUFBQSxtQkFBNEI7UUFDM0UsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRXhELElBQUksV0FBVyxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDdkMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUM3QjtJQUNILENBQUM7Ozs7O0lBRU8saUNBQWU7Ozs7SUFBdkI7UUFDRSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ2xDLE1BQU0sSUFBSSxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7U0FDakM7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPOzs7O1FBQUMsVUFBQSxJQUFJO1lBQzFCLElBQUksSUFBSSxDQUFDLEVBQUUsS0FBSyxTQUFTLElBQUksSUFBSSxDQUFDLEVBQUUsS0FBSyxJQUFJLEVBQUU7Z0JBQzdDLElBQUksQ0FBQyxFQUFFLEdBQUcsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDO2FBQ3RCO1FBQ0gsQ0FBQyxFQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDcEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDM0MsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7WUFFdkIsT0FBTztTQUNSO1FBRUQsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNyRCxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO1lBQ3hHLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDOUYsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1lBRW5HLE9BQU87U0FDUjtJQUNILENBQUM7O2dCQS9ERixTQUFTLFNBQUM7b0JBQ1QsUUFBUSxFQUFFLFVBQVU7b0JBQ3BCLCs5Q0FBeUI7b0JBRXpCLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJOztpQkFDdEM7Ozs7O3VCQUtFLEtBQUs7MEJBRUwsS0FBSzsyQkFDTCxLQUFLO2dDQUlMLE1BQU07a0NBRU4sU0FBUyxTQUFDLGtCQUFrQjs7SUE2Qy9CLGNBQUM7Q0FBQSxBQWhFRCxJQWdFQztTQXpEWSxPQUFPOzs7Ozs7SUFHbEIsdUJBQWtDOzs7OztJQUVsQywwQkFBa0M7O0lBQ2xDLDJCQUFxRDs7Ozs7O0lBSXJELGdDQUErRTs7SUFFL0Usa0NBQW1FOztJQUNuRSwrQkFBb0M7O0lBQ3BDLGdDQUFxQzs7SUFDckMsb0NBQTBCOzs7Ozs7QUErQzVCLHdDQU9DOzs7SUFOQyxtQ0FBd0I7Ozs7Ozs7O0lBS3hCLG1DQUFlOzs7OztBQUdqQiwrQkFTQzs7Ozs7O0lBUEMsMEJBQWM7Ozs7O0lBRWQsdUJBQXFCOzs7OztJQUVyQix5QkFBcUM7Ozs7O0lBRXJDLDBCQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBWaWV3RW5jYXBzdWxhdGlvbiwgT25Jbml0LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOcFRvb2x0aXBEaXJlY3RpdmUsIE5wVG9vbHRpcFBvc2l0aW9uIH0gZnJvbSAnLi4vdG9vbHRpcC9pbmRleCc7XHJcbmltcG9ydCB7IFV0aWxzIH0gZnJvbSAnLi4vdXRpbHMnO1xyXG5cclxuLyoqXHJcbiAqIGtlYmFi57uE5Lu2XHJcbiAqIFxyXG4gKiA8ZXhhbXBsZS11cmw+aHR0cHM6Ly9zdGFja2JsaXR6LmNvbS9lZGl0L2FuZ3VsYXItdmMzcThoP2VtYmVkPTEmZmlsZT1zcmMvYXBwL2FwcC5jb21wb25lbnQuaHRtbDwvZXhhbXBsZS11cmw+XHJcbiAqL1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IGBucC1rZWJhYmAsXHJcbiAgdGVtcGxhdGVVcmw6ICdrZWJhYi5odG1sJyxcclxuICBzdHlsZVVybHM6IFsna2ViYWIuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBOcEtlYmFiIGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgLyoq5Lyg5YWl55qE6ZyA6KaB6L+b6KGM5bGV56S655qE5pWw57uEICAqL1xyXG4gIEBJbnB1dCgpIGRhdGE6IEtlYmFiQ29tcG9uZW50RGF0YTtcclxuICAvKirluIPlsYDmoLzlvI/vvIzpu5jorqRmbGV45biD5bGAICovXHJcbiAgQElucHV0KCkgZGlzcGxheTogc3RyaW5nID0gJ2ZsZXgnO1xyXG4gIEBJbnB1dCgpIHBvc2l0aW9uOiBOcFRvb2x0aXBQb3NpdGlvbiA9ICdib3R0b21SaWdodCc7XHJcbiAgLyoqXHJcbiAgICog54K55Ye75Y2V5LiqaXRlbeaOpeaUtuespuWQiEtlYmFiSXRlbSDmoLzlvI/nmoTlr7nosaFcclxuICAgKiAgKi9cclxuICBAT3V0cHV0KCkgb25JdGVtQ2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXI8eyAkZXZlbnQ6IGFueSwgaXRlbTogS2ViYWJJdGVtIH0+KCk7XHJcblxyXG4gIEBWaWV3Q2hpbGQoTnBUb29sdGlwRGlyZWN0aXZlKSBkcm9wZG93blRvb2x0aXA6IE5wVG9vbHRpcERpcmVjdGl2ZTtcclxuICBpdGVtc0luS2ViYWI6IEFycmF5PEtlYmFiSXRlbT4gPSBbXTtcclxuICBpdGVtc091dEtlYmFiOiBBcnJheTxLZWJhYkl0ZW0+ID0gW107XHJcbiAgaXNEcm9wZG93blZpc2libGUgPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmJ1aWxkS2ViYWJJdGVtcygpO1xyXG4gIH1cclxuXHJcbiAgb25LZWJhYkl0ZW1DbGlja2VkKCRldmVudDogYW55LCBpdGVtOiBLZWJhYkl0ZW0sIGl0ZW1JbktlYmFiOiBib29sZWFuID0gZmFsc2UpIHtcclxuICAgIHRoaXMub25JdGVtQ2xpY2tlZC5lbWl0KHsgJGV2ZW50OiAkZXZlbnQsIGl0ZW06IGl0ZW0gfSk7XHJcblxyXG4gICAgaWYgKGl0ZW1JbktlYmFiICYmIHRoaXMuZHJvcGRvd25Ub29sdGlwKSB7XHJcbiAgICAgIHRoaXMuZHJvcGRvd25Ub29sdGlwLmhpZGUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgYnVpbGRLZWJhYkl0ZW1zKCkge1xyXG4gICAgaWYgKCF0aGlzLmRhdGEgfHwgIXRoaXMuZGF0YS5pdGVtcykge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgZGF0YScpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZGF0YS5pdGVtcy5mb3JFYWNoKGl0ZW0gPT4ge1xyXG4gICAgICBpZiAoaXRlbS5pZCA9PT0gdW5kZWZpbmVkIHx8IGl0ZW0uaWQgPT09IG51bGwpIHtcclxuICAgICAgICBpdGVtLmlkID0gVXRpbHMuSUQoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgaWYgKCF0aGlzLmRhdGEubGltaXQpIHtcclxuICAgICAgdGhpcy5pdGVtc091dEtlYmFiID0gdGhpcy5kYXRhLml0ZW1zIHx8IFtdO1xyXG4gICAgICB0aGlzLml0ZW1zSW5LZWJhYiA9IFtdO1xyXG5cclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmRhdGEubGltaXQgPiAwICYmIHRoaXMuZGF0YS5pdGVtcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMuZGF0YS5saW1pdCA9ICh0aGlzLmRhdGEubGltaXQgPiB0aGlzLmRhdGEuaXRlbXMubGVuZ3RoKSA/IHRoaXMuZGF0YS5pdGVtcy5sZW5ndGggOiB0aGlzLmRhdGEubGltaXQ7XHJcbiAgICAgIHRoaXMuaXRlbXNPdXRLZWJhYiA9IHRoaXMuZGF0YS5pdGVtcy5zbGljZSgwLCB0aGlzLmRhdGEuaXRlbXMubGVuZ3RoIC0gdGhpcy5kYXRhLmxpbWl0KSB8fCBbXTtcclxuICAgICAgdGhpcy5pdGVtc0luS2ViYWIgPSB0aGlzLmRhdGEuaXRlbXMuc2xpY2UodGhpcy5pdGVtc091dEtlYmFiLmxlbmd0aCwgdGhpcy5kYXRhLml0ZW1zLmxlbmd0aCkgfHwgW107XHJcblxyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogQGlnbm9yZVxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBLZWJhYkNvbXBvbmVudERhdGEge1xyXG4gIGl0ZW1zOiBBcnJheTxLZWJhYkl0ZW0+O1xyXG4gIC8qKklmIG5vIGxpbWl0IHBhc3NlZCBpbiBvciAwLCB3aGljaCBtZWFucyBhbGwgaXRlbXMgb3V0IG9mIGtlYmFiOyBcclxuICAgKiBpZiBsaW1pdCA9PT0gaXRlbXMubGVuZ3RoLCB3aGljaCBtZWFucyBhbGwgaXRlbXMgaW4ga2ViYWI7XHJcbiAgICogb3RoZXJ3aXNlLCBsaW1pdCBpcyB0aGUgY291bnQgZm9yIGl0ZW1zIGluIGtlYmFiLlxyXG4gICAqICAqL1xyXG4gIGxpbWl0PzogbnVtYmVyO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEtlYmFiSXRlbSB7XHJcbiAgLyoq6aG16Z2i5bGV56S65paH5qGI77yM5a2X56ym5Liy57G75Z6L77yM5bGe5LqO5b+F5Lyg5Y+C5pWwICovXHJcbiAgdmFsdWU6IHN0cmluZztcclxuICAvKirlj6/oh6rlt7HkvKDlhaXkuI3lkIznmoRpZO+8jOaUr+aMgeWtl+espuS4suWSjOaVsOWtl++8jOWmguaenOS4jeS8oOWFpe+8jOWImem7mOiupOeUn+aIkOmaj+acumlkICovXHJcbiAgaWQ/OiBzdHJpbmcgfCBudW1iZXI7XHJcbiAgLyoq5pSv5oyB5Lyg5YWlYGljb25gLCBgdGV4dGAsIGBzZXBhcmF0b3JgLCDpu5jorqRgdGV4dGAqL1xyXG4gIHR5cGU/OiAndGV4dCcgfCAnaWNvbicgfCAnc2VwYXJhdG9yJztcclxuICAvKiog5pSv5oyB5Lyg5YWl6aKc6Imy77yM6Z2e5b+F5Lyg77yM5LiN5Lyg5L2/55So6buY6K6k6ImyICovXHJcbiAgY29sb3I/OiBzdHJpbmc7XHJcbn1cclxuXHJcblxyXG4iXX0=