UNPKG

dbweb-common

Version:

用`yarn add dbweb-common`安装,不要忘记修改`angular.json`里的 `architect\build\options\assets`,加上

445 lines 28.5 kB
var _a; /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Injectable } from '@angular/core'; import { ElementApiService, fullApiPath, ElementsService } from 'dbweb-core'; import { tap, map } from 'rxjs/operators'; import * as i0 from "@angular/core"; import * as i1 from "dbweb-core"; /** @type {?} */ var indexElementName = 'index'; /** @enum {string} */ var CardType = { navigation: 'navigation', calendar: 'calendar', notice: 'notice', datalist: 'datalist', chart: 'chart', }; export { CardType }; /** @type {?} */ export var defaultCardSize = (_a = {}, _a[CardType.navigation] = 'sm', _a[CardType.calendar] = 'sm', _a[CardType.notice] = 'sm', _a[CardType.datalist] = 'md', _a[CardType.chart] = 'sm', _a); /** * @record */ export function UserIndexCard() { } if (false) { /** @type {?} */ UserIndexCard.prototype.Type; /** @type {?} */ UserIndexCard.prototype.Size; /** @type {?} */ UserIndexCard.prototype.Setting; } /** * @record */ function UserIndexSetting() { } if (false) { /** @type {?} */ UserIndexSetting.prototype.Layout; /** @type {?} */ UserIndexSetting.prototype.Cards; /** @type {?} */ UserIndexSetting.prototype.NavigationElements; } /** * @record */ function BannerSetting() { } if (false) { /** @type {?} */ BannerSetting.prototype.DefaultBannerImage; /** @type {?} */ BannerSetting.prototype.Banners; } /** * @record */ function UserDiary() { } if (false) { /** @type {?} */ UserDiary.prototype.Day; /** @type {?} */ UserDiary.prototype.Content; } /** * @record */ function UserNotice() { } if (false) { /** @type {?} */ UserNotice.prototype.ID; /** @type {?} */ UserNotice.prototype.Title; /** @type {?} */ UserNotice.prototype.Time; /** @type {?} */ UserNotice.prototype.IsReaded; /** @type {?} */ UserNotice.prototype.URL; /** @type {?} */ UserNotice.prototype.Sign; /** @type {?} */ UserNotice.prototype.FrontURL; } /** * @record */ function FetchMyNoticeResult() { } if (false) { /** @type {?} */ FetchMyNoticeResult.prototype.ElementForBrowseNotice; /** @type {?} */ FetchMyNoticeResult.prototype.Data; } var IndexService = /** @class */ (function () { function IndexService(api, eles) { this.api = api; this.eles = eles; this.userSetting = (/** @type {?} */ ({})); this.inited = false; // 是否已经初始化完毕 } /** * @private * @return {?} */ IndexService.prototype.fetchIndexSetting = /** * @private * @return {?} */ function () { return this.api.get(indexElementName, 'fetch-index-setting'); }; /** * @private * @param {?} param * @return {?} */ IndexService.prototype.updateIndexSetting = /** * @private * @param {?} param * @return {?} */ function (param) { return this.api.post(indexElementName, 'update-index-setting', param); }; /** * @private * @return {?} */ IndexService.prototype.fetchBanner = /** * @private * @return {?} */ function () { return this.api.get(indexElementName, 'fetch-banner'); }; /** * @private * @return {?} */ IndexService.prototype.fetchIndexUserDiary = /** * @private * @return {?} */ function () { // 需要将后端传递过来的字符串转换成date类型 return this.api.get(indexElementName, 'fetch-index-user-diary').pipe(map((/** * @param {?} vals * @return {?} */ function (vals) { return vals ? vals.map((/** * @param {?} v * @return {?} */ function (v) { return ({ Day: new Date(v.Day), Content: v.Content // tslint:disable-next-line: indent }); })) : []; }))); }; /** * @private * @param {?} day * @return {?} */ IndexService.prototype.removeIndexUserDiary = /** * @private * @param {?} day * @return {?} */ function (day) { return this.api.post(indexElementName, 'remove-index-user-diary', day); }; /** * @private * @param {?} param * @return {?} */ IndexService.prototype.updateIndexUserDiary = /** * @private * @param {?} param * @return {?} */ function (param) { return this.api.post(indexElementName, 'update-index-user-diary', param); }; /** * @private * @return {?} */ IndexService.prototype.fetchMyNotice = /** * @private * @return {?} */ function () { /** * @record */ function IUserNotice() { } if (false) { /** @type {?} */ IUserNotice.prototype.ID; /** @type {?} */ IUserNotice.prototype.Title; /** @type {?} */ IUserNotice.prototype.Time; /** @type {?} */ IUserNotice.prototype.IsReaded; /** @type {?} */ IUserNotice.prototype.URL; /** @type {?} */ IUserNotice.prototype.Sign; } /** * @record */ function IFetchMyNoticeResult() { } if (false) { /** @type {?} */ IFetchMyNoticeResult.prototype.ElementForBrowseNotice; /** @type {?} */ IFetchMyNoticeResult.prototype.Data; } return this.api.get(indexElementName, 'fetch-my-notice').pipe(map((/** * @param {?} v * @return {?} */ function (v) { return ((/** @type {?} */ ({ ElementForBrowseNotice: v.ElementForBrowseNotice, Data: v.Data.map((/** * @param {?} sv * @return {?} */ function (sv) { return ((/** @type {?} */ ({ ID: sv.ID, Title: sv.Title, Time: new Date(sv.Time), IsReaded: sv.IsReaded, URL: sv.URL, Sign: sv.Sign }))); })) }))); }))); }; /** * @return {?} */ IndexService.prototype.init = /** * @return {?} */ function () { var _this = this; this.fetchIndexSetting().subscribe((/** * @param {?} data * @return {?} */ function (data) { _this.userSetting = data || ((/** @type {?} */ ({}))); // console.log('======', this.userSetting); _this.userSetting.Cards = _this.userSetting.Cards || []; _this.userSetting.Layout = _this.userSetting.Layout || 'auto'; // console.log('------', this.userSetting.Layout); _this.userSetting.NavigationElements = _this.userSetting.NavigationElements || []; // 找不到的菜单项,或者是没有权限,需要去除 _this.userSetting.NavigationElements = _this.userSetting.NavigationElements.filter((/** * @param {?} v * @return {?} */ function (v) { return _this.eles.get(v); })); _this.inited = true; })); this.fetchBanner().subscribe((/** * @param {?} val * @return {?} */ function (val) { _this.banner = val; _this.banner.DefaultBannerImage = fullApiPath(_this.banner.DefaultBannerImage); })); }; /** * @return {?} */ IndexService.prototype.initCalendar = /** * @return {?} */ function () { var _this = this; this.fetchIndexUserDiary().subscribe((/** * @param {?} v * @return {?} */ function (v) { _this.userDiary = v; })); }; /** * @return {?} */ IndexService.prototype.initNotice = /** * @return {?} */ function () { var _this = this; this.fetchMyNotice().subscribe((/** * @param {?} v * @return {?} */ function (v) { _this.notice = v.Data; _this.eles.addElement(v.ElementForBrowseNotice); v.Data.forEach((/** * @param {?} one * @return {?} */ function (one) { return _this.eles.setURLSign(one.URL, one.Sign); })); // 然后才能计算前端url _this.notice.forEach((/** * @param {?} one * @return {?} */ function (one) { one.FrontURL = _this.eles.frontElementURL(v.ElementForBrowseNotice.Name, one.URL); })); })); }; /** * @param {?} day * @param {?} content * @return {?} */ IndexService.prototype.updateUserDiary = /** * @param {?} day * @param {?} content * @return {?} */ function (day, content) { var _this = this; return this.updateIndexUserDiary({ Day: day, Content: content }).pipe(tap((/** * @return {?} */ function () { /** @type {?} */ var found = _this.userDiary.find((/** * @param {?} v * @return {?} */ function (v) { return v.Day.getTime() === day.getTime(); })); if (found) { found.Content = content; } else { _this.userDiary.push({ Day: day, Content: content }); _this.userDiary.sort((/** * @param {?} a * @param {?} b * @return {?} */ function (a, b) { return a.Day.getTime() - b.Day.getTime(); })); } }))); }; /** * @param {?} day * @return {?} */ IndexService.prototype.removeUserDiary = /** * @param {?} day * @return {?} */ function (day) { var _this = this; return this.removeIndexUserDiary(day).pipe(tap((/** * @return {?} */ function () { _this.userDiary.splice(_this.userDiary.findIndex((/** * @param {?} v * @return {?} */ function (v) { return v.Day.getTime() === day.getTime(); })), 1); }))); }; /** * @return {?} */ IndexService.prototype.updateSetting = /** * @return {?} */ function () { return this.updateIndexSetting(this.userSetting); }; IndexService.decorators = [ { type: Injectable, args: [{ providedIn: 'root' },] } ]; /** @nocollapse */ IndexService.ctorParameters = function () { return [ { type: ElementApiService }, { type: ElementsService } ]; }; /** @nocollapse */ IndexService.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function IndexService_Factory() { return new IndexService(i0.ɵɵinject(i1.ElementApiService), i0.ɵɵinject(i1.ElementsService)); }, token: IndexService, providedIn: "root" }); return IndexService; }()); export { IndexService }; if (false) { /** @type {?} */ IndexService.prototype.userSetting; /** @type {?} */ IndexService.prototype.banner; /** @type {?} */ IndexService.prototype.userDiary; /** @type {?} */ IndexService.prototype.notice; /** @type {?} */ IndexService.prototype.inited; /** * @type {?} * @private */ IndexService.prototype.api; /** * @type {?} * @private */ IndexService.prototype.eles; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2Rid2ViLWNvbW1vbi8iLCJzb3VyY2VzIjpbImxpYi9pbmRleC9pbmRleC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBWSxNQUFNLFlBQVksQ0FBQztBQUN2RixPQUFPLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0lBQ3BDLGdCQUFnQixHQUFHLE9BQU87OztJQUcvQixZQUFhLFlBQVk7SUFDekIsVUFBVyxVQUFVO0lBQ3JCLFFBQVMsUUFBUTtJQUNqQixVQUFXLFVBQVU7SUFDckIsT0FBUSxPQUFPOzs7O0FBRWhCLE1BQU0sS0FBTyxlQUFlO0lBQzNCLEdBQUMsUUFBUSxDQUFDLFVBQVUsSUFBRyxJQUFJO0lBQzNCLEdBQUMsUUFBUSxDQUFDLFFBQVEsSUFBRyxJQUFJO0lBQ3pCLEdBQUMsUUFBUSxDQUFDLE1BQU0sSUFBRyxJQUFJO0lBQ3ZCLEdBQUMsUUFBUSxDQUFDLFFBQVEsSUFBRyxJQUFJO0lBQ3pCLEdBQUMsUUFBUSxDQUFDLEtBQUssSUFBRyxJQUFJO09BQ3RCOzs7O0FBRUQsbUNBSUM7OztJQUhBLDZCQUFlOztJQUNmLDZCQUFlOztJQUNmLGdDQUFnQzs7Ozs7QUFFakMsK0JBSUM7OztJQUhBLGtDQUFvQjs7SUFDcEIsaUNBQXVCOztJQUN2Qiw4Q0FBNkI7Ozs7O0FBRTlCLDRCQU1DOzs7SUFMQSwyQ0FBMkI7O0lBQzNCLGdDQUdJOzs7OztBQUVMLHdCQUdDOzs7SUFGQSx3QkFBVTs7SUFDViw0QkFBZ0I7Ozs7O0FBRWpCLHlCQVFDOzs7SUFQQSx3QkFBVzs7SUFDWCwyQkFBYzs7SUFDZCwwQkFBVzs7SUFDWCw4QkFBa0I7O0lBQ2xCLHlCQUFZOztJQUNaLDBCQUFh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RixDQUFDO0lBQ0gsQ0FBQzs7OztJQUNELG9DQUFhOzs7SUFBYjtRQUNDLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNsRCxDQUFDOztnQkFqSUQsVUFBVSxTQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRTs7OztnQkFyRHpCLGlCQUFpQjtnQkFBZSxlQUFlOzs7dUJBRHhEO0NBd0xDLEFBbElELElBa0lDO1NBaklZLFlBQVk7OztJQUN4QixtQ0FBdUQ7O0lBQ3ZELDhCQUFzQjs7SUFDdEIsaUNBQXVCOztJQUN2Qiw4QkFBcUI7O0lBQ3JCLDhCQUFlOzs7OztJQUNILDJCQUE4Qjs7Ozs7SUFBRSw0QkFBNkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEVsZW1lbnRBcGlTZXJ2aWNlLCBmdWxsQXBpUGF0aCwgRWxlbWVudHNTZXJ2aWNlLCBJRWxlbWVudCB9IGZyb20gJ2Rid2ViLWNvcmUnO1xyXG5pbXBvcnQgeyB0YXAsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuY29uc3QgaW5kZXhFbGVtZW50TmFtZSA9ICdpbmRleCc7XHJcbmV4cG9ydCB0eXBlIENhcmRTaXplID0gJ3NtJyB8ICdtZCcgfCAnbGcnO1xyXG5leHBvcnQgZW51bSBDYXJkVHlwZSB7XHJcblx0bmF2aWdhdGlvbiA9ICduYXZpZ2F0aW9uJyxcclxuXHRjYWxlbmRhciA9ICdjYWxlbmRhcicsXHJcblx0bm90aWNlID0gJ25vdGljZScsXHJcblx0ZGF0YWxpc3QgPSAnZGF0YWxpc3QnLFxyXG5cdGNoYXJ0ID0gJ2NoYXJ0J1xyXG59XHJcbmV4cG9ydCBjb25zdCBkZWZhdWx0Q2FyZFNpemU6IHsgW2tleTogc3RyaW5nXTogQ2FyZFNpemUgfSA9IHtcclxuXHRbQ2FyZFR5cGUubmF2aWdhdGlvbl06ICdzbScsXHJcblx0W0NhcmRUeXBlLmNhbGVuZGFyXTogJ3NtJyxcclxuXHRbQ2FyZFR5cGUubm90aWNlXTogJ3NtJyxcclxuXHRbQ2FyZFR5cGUuZGF0YWxpc3RdOiAnbWQnLFxyXG5cdFtDYXJkVHlwZS5jaGFydF06ICdzbSdcclxufTtcclxuZXhwb3J0IHR5cGUgSW5kZXhMYXlvdXQgPSAnYXV0bycgfCAnc2ltcGxlJztcclxuZXhwb3J0IGludGVyZmFjZSBVc2VySW5kZXhDYXJkIHtcclxuXHRUeXBlOiBDYXJkVHlwZTtcclxuXHRTaXplOiBDYXJkU2l6ZTtcclxuXHRTZXR0aW5nOiB7IFtrZXk6IHN0cmluZ106IGFueSB9O1xyXG59XHJcbmludGVyZmFjZSBVc2VySW5kZXhTZXR0aW5nIHtcclxuXHRMYXlvdXQ6IEluZGV4TGF5b3V0O1xyXG5cdENhcmRzOiBVc2VySW5kZXhDYXJkW107XHJcblx0TmF2aWdhdGlvbkVsZW1lbnRzOiBzdHJpbmdbXTtcclxufVxyXG5pbnRlcmZhY2UgQmFubmVyU2V0dGluZyB7XHJcblx0RGVmYXVsdEJhbm5lckltYWdlOiBzdHJpbmc7XHJcblx0QmFubmVyczoge1xyXG5cdFx0SW1hZ2VVUkw6IHN0cmluZztcclxuXHRcdE5hdmlnYXRpb25VUkw6IHN0cmluZztcclxuXHR9W107XHJcbn1cclxuaW50ZXJmYWNlIFVzZXJEaWFyeSB7XHJcblx0RGF5OiBEYXRlO1xyXG5cdENvbnRlbnQ6IHN0cmluZztcclxufVxyXG5pbnRlcmZhY2UgVXNlck5vdGljZSB7XHJcblx0SUQ6IHN0cmluZztcclxuXHRUaXRsZTogc3RyaW5nO1xyXG5cdFRpbWU6IERhdGU7XHJcblx0SXNSZWFkZWQ6IGJvb2xlYW47XHJcblx0VVJMOiBzdHJpbmc7XHJcblx0U2lnbjogc3RyaW5nO1xyXG5cdEZyb250VVJMOiBzdHJpbmc7IC8vIOWQjuerr1VSTOi9rOaNouaIkOWJjeerr1VSTFxyXG59XHJcbmludGVyZmFjZSBGZXRjaE15Tm90aWNlUmVzdWx0IHtcclxuXHRFbGVtZW50Rm9yQnJvd3NlTm90aWNlOiBJRWxlbWVudDtcclxuXHREYXRhOiBVc2VyTm90aWNlW107XHJcbn1cclxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcclxuZXhwb3J0IGNsYXNzIEluZGV4U2VydmljZSB7XHJcblx0dXNlclNldHRpbmc6IFVzZXJJbmRleFNldHRpbmcgPSB7fSBhcyBVc2VySW5kZXhTZXR0aW5nO1xyXG5cdGJhbm5lcjogQmFubmVyU2V0dGluZztcclxuXHR1c2VyRGlhcnk6IFVzZXJEaWFyeVtdO1xyXG5cdG5vdGljZTogVXNlck5vdGljZVtdO1xyXG5cdGluaXRlZCA9IGZhbHNlOyAvLyDmmK/lkKblt7Lnu4/liJ3lp4vljJblrozmr5VcclxuXHRjb25zdHJ1Y3Rvcihwcml2YXRlIGFwaTogRWxlbWVudEFwaVNlcnZpY2UsIHByaXZhdGUgZWxlczogRWxlbWVudHNTZXJ2aWNlKSB7fVxyXG5cdHByaXZhdGUgZmV0Y2hJbmRleFNldHRpbmcoKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5hcGkuZ2V0PFVzZXJJbmRleFNldHRpbmc+KGluZGV4RWxlbWVudE5hbWUsICdmZXRjaC1pbmRleC1zZXR0aW5nJyk7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIHVwZGF0ZUluZGV4U2V0dGluZyhwYXJhbTogVXNlckluZGV4U2V0dGluZykge1xyXG5cdFx0cmV0dXJuIHRoaXMuYXBpLnBvc3QoaW5kZXhFbGVtZW50TmFtZSwgJ3VwZGF0ZS1pbmRleC1zZXR0aW5nJywgcGFyYW0pO1xyXG5cdH1cclxuXHRwcml2YXRlIGZldGNoQmFubmVyKCkge1xyXG5cdFx0cmV0dXJuIHRoaXMuYXBpLmdldDxCYW5uZXJTZXR0aW5nPihpbmRleEVsZW1lbnROYW1lLCAnZmV0Y2gtYmFubmVyJyk7XHJcblx0fVxyXG5cdHByaXZhdGUgZmV0Y2hJbmRleFVzZXJEaWFyeSgpIHtcclxuXHRcdC8vIOmcgOimgeWwhuWQjuerr+S8oOmAkui/h+adpeeahOWtl+espuS4sui9rOaNouaIkGRhdGXnsbvlnotcclxuXHRcdHJldHVybiB0aGlzLmFwaS5nZXQ8VXNlckRpYXJ5W10+KGluZGV4RWxlbWVudE5hbWUsICdmZXRjaC1pbmRleC11c2VyLWRpYXJ5JykucGlwZShcclxuXHRcdFx0bWFwKFxyXG5cdFx0XHRcdHZhbHMgPT5cclxuXHRcdFx0XHRcdHZhbHNcclxuXHRcdFx0XHRcdFx0PyB2YWxzLm1hcCh2ID0+ICh7XHJcblx0XHRcdFx0XHRcdFx0XHREYXk6IG5ldyBEYXRlKHYuRGF5KSxcclxuXHRcdFx0XHRcdFx0XHRcdENvbnRlbnQ6IHYuQ29udGVudFxyXG5cdFx0XHRcdFx0XHRcdFx0Ly8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBpbmRlbnRcclxuXHRcdFx0XHRcdFx0XHR9KSlcclxuXHRcdFx0XHRcdFx0OiBbXVxyXG5cdFx0XHQpXHJcblx0XHQpO1xyXG5cdH1cclxuXHRwcml2YXRlIHJlbW92ZUluZGV4VXNlckRpYXJ5KGRheTogRGF0ZSkge1xyXG5cdFx0cmV0dXJuIHRoaXMuYXBpLnBvc3Q8Ym9vbGVhbj4oaW5kZXhFbGVtZW50TmFtZSwgJ3JlbW92ZS1pbmRleC11c2VyLWRpYXJ5JywgZGF5KTtcclxuXHR9XHJcblx0cHJpdmF0ZSB1cGRhdGVJbmRleFVzZXJEaWFyeShwYXJhbTogVXNlckRpYXJ5KSB7XHJcblx0XHRyZXR1cm4gdGhpcy5hcGkucG9zdDxib29sZWFuPihpbmRleEVsZW1lbnROYW1lLCAndXBkYXRlLWluZGV4LXVzZXItZGlhcnknLCBwYXJhbSk7XHJcblx0fVxyXG5cdHByaXZhdGUgZmV0Y2hNeU5vdGljZSgpIHtcclxuXHRcdGludGVyZmFjZSBJVXNlck5vdGljZSB7XHJcblx0XHRcdElEOiBzdHJpbmc7XHJcblx0XHRcdFRpdGxlOiBzdHJpbmc7XHJcblx0XHRcdFRpbWU6IHN0cmluZztcclxuXHRcdFx0SXNSZWFkZWQ6IGJvb2xlYW47XHJcblx0XHRcdFVSTDogc3RyaW5nO1xyXG5cdFx0XHRTaWduOiBzdHJpbmc7XHJcblx0XHR9XHJcblx0XHRpbnRlcmZhY2UgSUZldGNoTXlOb3RpY2VSZXN1bHQge1xyXG5cdFx0XHRFbGVtZW50Rm9yQnJvd3NlTm90aWNlOiBJRWxlbWVudDtcclxuXHRcdFx0RGF0YTogSVVzZXJOb3RpY2VbXTtcclxuXHRcdH1cclxuXHRcdHJldHVybiB0aGlzLmFwaS5nZXQ8SUZldGNoTXlOb3RpY2VSZXN1bHQ+KGluZGV4RWxlbWVudE5hbWUsICdmZXRjaC1teS1ub3RpY2UnKS5waXBlKFxyXG5cdFx0XHRtYXAoXHJcblx0XHRcdFx0diA9PlxyXG5cdFx0XHRcdFx0KHtcclxuXHRcdFx0XHRcdFx0RWxlbWVudEZvckJyb3dzZU5vdGljZTogdi5FbGVtZW50Rm9yQnJvd3NlTm90aWNlLFxyXG5cdFx0XHRcdFx0XHREYXRhOiB2LkRhdGEubWFwKFxyXG5cdFx0XHRcdFx0XHRcdHN2ID0+XHJcblx0XHRcdFx0XHRcdFx0XHQoe1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRJRDogc3YuSUQsXHJcblx0XHRcdFx0XHRcdFx0XHRcdFRpdGxlOiBzdi5UaXRsZSxcclxuXHRcdFx0XHRcdFx0XHRcdFx0VGltZTogbmV3IERhdGUoc3YuVGltZSksXHJcblx0XHRcdFx0XHRcdFx0XHRcdElzUmVhZGVkOiBzdi5Jc1JlYWRlZCxcclxuXHRcdFx0XHRcdFx0XHRcdFx0VVJMOiBzdi5VUkwsXHJcblx0XHRcdFx0XHRcdFx0XHRcdFNpZ246IHN2LlNpZ25cclxuXHRcdFx0XHRcdFx0XHRcdH0gYXMgVXNlck5vdGljZSlcclxuXHRcdFx0XHRcdFx0KVxyXG5cdFx0XHRcdFx0fSBhcyBGZXRjaE15Tm90aWNlUmVzdWx0KVxyXG5cdFx0XHQpXHJcblx0XHQpO1xyXG5cdH1cclxuXHRpbml0KCkge1xyXG5cdFx0dGhpcy5mZXRjaEluZGV4U2V0dGluZygpLnN1YnNjcmliZShkYXRhID0+IHtcclxuXHRcdFx0dGhpcy51c2VyU2V0dGluZyA9IGRhdGEgfHwgKHt9IGFzIFVzZXJJbmRleFNldHRpbmcpO1xyXG5cdFx0XHQvLyBjb25zb2xlLmxvZygnPT09PT09JywgdGhpcy51c2VyU2V0dGluZyk7XHJcblx0XHRcdHRoaXMudXNlclNldHRpbmcuQ2FyZHMgPSB0aGlzLnVzZXJTZXR0aW5nLkNhcmRzIHx8IFtdO1xyXG5cdFx0XHR0aGlzLnVzZXJTZXR0aW5nLkxheW91dCA9IHRoaXMudXNlclNldHRpbmcuTGF5b3V0IHx8ICdhdXRvJztcclxuXHRcdFx0Ly8gY29uc29sZS5sb2coJy0tLS0tLScsIHRoaXMudXNlclNldHRpbmcuTGF5b3V0KTtcclxuXHRcdFx0dGhpcy51c2VyU2V0dGluZy5OYXZpZ2F0aW9uRWxlbWVudHMgPSB0aGlzLnVzZXJTZXR0aW5nLk5hdmlnYXRpb25FbGVtZW50cyB8fCBbXTtcclxuXHRcdFx0Ly8g5om+5LiN5Yiw55qE6I+c5Y2V6aG577yM5oiW6ICF5piv5rKh5pyJ5p2D6ZmQ77yM6ZyA6KaB5Y676ZmkXHJcblx0XHRcdHRoaXMudXNlclNldHRpbmcuTmF2aWdhdGlvbkVsZW1lbnRzID0gdGhpcy51c2VyU2V0dGluZy5OYXZpZ2F0aW9uRWxlbWVudHMuZmlsdGVyKHYgPT4gdGhpcy5lbGVzLmdldCh2KSk7XHJcblx0XHRcdHRoaXMuaW5pdGVkID0gdHJ1ZTtcclxuXHRcdH0pO1xyXG5cdFx0dGhpcy5mZXRjaEJhbm5lcigpLnN1YnNjcmliZSh2YWwgPT4ge1xyXG5cdFx0XHR0aGlzLmJhbm5lciA9IHZhbDtcclxuXHRcdFx0dGhpcy5iYW5uZXIuRGVmYXVsdEJhbm5lckltYWdlID0gZnVsbEFwaVBhdGgodGhpcy5iYW5uZXIuRGVmYXVsdEJhbm5lckltYWdlKTtcclxuXHRcdH0pO1xyXG5cdH1cclxuXHRpbml0Q2FsZW5kYXIoKSB7XHJcblx0XHR0aGlzLmZldGNoSW5kZXhVc2VyRGlhcnkoKS5zdWJzY3JpYmUodiA9PiB7XHJcblx0XHRcdHRoaXMudXNlckRpYXJ5ID0gdjtcclxuXHRcdH0pO1xyXG5cdH1cclxuXHRpbml0Tm90aWNlKCkge1xyXG5cdFx0dGhpcy5mZXRjaE15Tm90aWNlKCkuc3Vic2NyaWJlKHYgPT4ge1xyXG5cdFx0XHR0aGlzLm5vdGljZSA9IHYuRGF0YTtcclxuXHRcdFx0dGhpcy5lbGVzLmFkZEVsZW1lbnQodi5FbGVtZW50Rm9yQnJvd3NlTm90aWNlKTtcclxuXHRcdFx0di5EYXRhLmZvckVhY2gob25lID0+IHRoaXMuZWxlcy5zZXRVUkxTaWduKG9uZS5VUkwsIG9uZS5TaWduKSk7XHJcblx0XHRcdC8vIOeEtuWQjuaJjeiDveiuoeeul+WJjeerr3VybFxyXG5cdFx0XHR0aGlzLm5vdGljZS5mb3JFYWNoKG9uZSA9PiB7XHJcblx0XHRcdFx0b25lLkZyb250VVJMID0gdGhpcy5lbGVzLmZyb250RWxlbWVudFVSTCh2LkVsZW1lbnRGb3JCcm93c2VOb3RpY2UuTmFtZSwgb25lLlVSTCk7XHJcblx0XHRcdH0pO1xyXG5cdFx0fSk7XHJcblx0fVxyXG5cdHVwZGF0ZVVzZXJEaWFyeShkYXk6IERhdGUsIGNvbnRlbnQ6IHN0cmluZykge1xyXG5cdFx0cmV0dXJuIHRoaXMudXBkYXRlSW5kZXhVc2VyRGlhcnkoeyBEYXk6IGRheSwgQ29udGVudDogY29udGVudCB9KS5waXBlKFxyXG5cdFx0XHR0YXAoKCkgPT4ge1xyXG5cdFx0XHRcdGNvbnN0IGZvdW5kID0gdGhpcy51c2VyRGlhcnkuZmluZCh2ID0+IHYuRGF5LmdldFRpbWUoKSA9PT0gZGF5LmdldFRpbWUoKSk7XHJcblx0XHRcdFx0aWYgKGZvdW5kKSB7XHJcblx0XHRcdFx0XHRmb3VuZC5Db250ZW50ID0gY29udGVudDtcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0dGhpcy51c2VyRGlhcnkucHVzaCh7IERheTogZGF5LCBDb250ZW50OiBjb250ZW50IH0pO1xyXG5cdFx0XHRcdFx0dGhpcy51c2VyRGlhcnkuc29ydCgoYSwgYikgPT4ge1xyXG5cdFx0XHRcdFx0XHRyZXR1cm4gYS5EYXkuZ2V0VGltZSgpIC0gYi5EYXkuZ2V0VGltZSgpO1xyXG5cdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9KVxyXG5cdFx0KTtcclxuXHR9XHJcblx0cmVtb3ZlVXNlckRpYXJ5KGRheTogRGF0ZSkge1xyXG5cdFx0cmV0dXJuIHRoaXMucmVtb3ZlSW5kZXhVc2VyRGlhcnkoZGF5KS5waXBlKFxyXG5cdFx0XHR0YXAoKCkgPT4ge1xyXG5cdFx0XHRcdHRoaXMudXNlckRpYXJ5LnNwbGljZSh0aGlzLnVzZXJEaWFyeS5maW5kSW5kZXgodiA9PiB2LkRheS5nZXRUaW1lKCkgPT09IGRheS5nZXRUaW1lKCkpLCAxKTtcclxuXHRcdFx0fSlcclxuXHRcdCk7XHJcblx0fVxyXG5cdHVwZGF0ZVNldHRpbmcoKSB7XHJcblx0XHRyZXR1cm4gdGhpcy51cGRhdGVJbmRleFNldHRpbmcodGhpcy51c2VyU2V0dGluZyk7XHJcblx0fVxyXG59XHJcbiJdfQ==