dbweb-common
Version:
用`yarn add dbweb-common`安装,不要忘记修改`angular.json`里的 `architect\build\options\assets`,加上
246 lines • 17.3 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import * as tslib_1 from "tslib";
import { Injectable } from '@angular/core';
import { BehaviorSubject } from 'rxjs';
import { SimpleReuseStrategy, ElementsService } from 'dbweb-core';
import { Router, NavigationEnd } from '@angular/router';
import * as i0 from "@angular/core";
import * as i1 from "@angular/router";
import * as i2 from "dbweb-core";
var Tab = /** @class */ (function () {
function Tab(state) {
var e_1, _a;
try {
for (var _b = tslib_1.__values(Object.keys(state)), _c = _b.next(); !_c.done; _c = _b.next()) {
var key = _c.value;
this[key] = state[key];
}
}
catch (e_1_1) { e_1 = { error: e_1_1 }; }
finally {
try {
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
}
finally { if (e_1) throw e_1.error; }
}
this.titleObservable = new BehaviorSubject(state.title);
}
/**
* @return {?}
*/
Tab.prototype.data = /**
* @return {?}
*/
function () {
return {
url: this.url,
key: this.key,
title: this.title
};
};
return Tab;
}());
export { Tab };
if (false) {
/** @type {?} */
Tab.prototype.url;
/** @type {?} */
Tab.prototype.key;
/** @type {?} */
Tab.prototype.title;
/** @type {?} */
Tab.prototype.titleObservable;
}
var TabsService = /** @class */ (function () {
function TabsService(router, eles) {
this.router = router;
this.eles = eles;
this.tabs = [];
}
// 激活一个tab,如果不存在,则新增并激活
// 激活一个tab,如果不存在,则新增并激活
/**
* @param {?} data
* @return {?}
*/
TabsService.prototype.activeTab =
// 激活一个tab,如果不存在,则新增并激活
/**
* @param {?} data
* @return {?}
*/
function (data) {
/** @type {?} */
var find = this.tabs.findIndex((/**
* @param {?} v
* @return {?}
*/
function (v) { return v.key === data.key; }));
if (find === -1) {
this.tabs.push(new Tab(data));
this._activeIndex = this.tabs.length - 1;
}
else {
this._activeIndex = find;
// 同时需要更新url和title
this.tabs[this._activeIndex].url = data.url;
this.tabs[this._activeIndex].title = data.title;
}
};
// 删除指定序号的tab,并切换激活的tab,如果只有一个tab,则不能被删除
// 返回true指示激活页已经切换
// 删除指定序号的tab,并切换激活的tab,如果只有一个tab,则不能被删除
// 返回true指示激活页已经切换
/**
* @param {?} index
* @return {?}
*/
TabsService.prototype.removeTab =
// 删除指定序号的tab,并切换激活的tab,如果只有一个tab,则不能被删除
// 返回true指示激活页已经切换
/**
* @param {?} index
* @return {?}
*/
function (index) {
if (this.tabs.length === 1) {
return false;
}
/** @type {?} */
var deleteURL = this.tabs[index].url.toString();
// 如果是关闭当前页面,则会引起路由变化,所以需要在导航结束事件中删除,因为导航过程中还会进行保存
if (index === this._activeIndex) {
/** @type {?} */
var sub_1 = this.router.events.subscribe((/**
* @param {?} v
* @return {?}
*/
function (v) {
if (v instanceof NavigationEnd) {
SimpleReuseStrategy.deleteRouteSnapshot(deleteURL);
sub_1.unsubscribe();
}
}));
}
else {
SimpleReuseStrategy.deleteRouteSnapshot(deleteURL);
}
this.tabs.splice(index, 1);
if (this._activeIndex === index) {
this._activeIndex = Math.min(this.tabs.length - 1, index);
return true;
}
if (this._activeIndex > index) {
this._activeIndex--;
}
return false;
};
// 删除所有的页,一般是logout
// 删除所有的页,一般是logout
/**
* @return {?}
*/
TabsService.prototype.clear =
// 删除所有的页,一般是logout
/**
* @return {?}
*/
function () {
this.tabs.splice(0);
this._activeIndex = undefined;
SimpleReuseStrategy.clearRouteSnapshot();
};
// 关闭当前页,并自动导航到新的页
// 关闭当前页,并自动导航到新的页
/**
* @return {?}
*/
TabsService.prototype.close =
// 关闭当前页,并自动导航到新的页
/**
* @return {?}
*/
function () {
var _this = this;
if (this.activeIndex >= 0) {
/** @type {?} */
var idx_1 = this.activeIndex;
if (this.tabs.length === 1) {
this.router.navigateByUrl(this.eles.frontElementURL(this.eles.indexElementName)).then((/**
* @return {?}
*/
function () {
_this.removeTab(idx_1);
}));
}
if (this.removeTab(idx_1)) {
this.router.navigateByUrl(this.active.url, {
state: this.active.data()
});
}
}
};
Object.defineProperty(TabsService.prototype, "active", {
get: /**
* @return {?}
*/
function () {
if (this._activeIndex >= 0) {
return this.tabs[this._activeIndex];
}
return undefined;
},
enumerable: true,
configurable: true
});
Object.defineProperty(TabsService.prototype, "activeIndex", {
get: /**
* @return {?}
*/
function () {
return this._activeIndex;
},
set: /**
* @param {?} val
* @return {?}
*/
function (val) {
this._activeIndex = val;
},
enumerable: true,
configurable: true
});
TabsService.decorators = [
{ type: Injectable, args: [{
providedIn: 'root'
},] }
];
/** @nocollapse */
TabsService.ctorParameters = function () { return [
{ type: Router },
{ type: ElementsService }
]; };
/** @nocollapse */ TabsService.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function TabsService_Factory() { return new TabsService(i0.ɵɵinject(i1.Router), i0.ɵɵinject(i2.ElementsService)); }, token: TabsService, providedIn: "root" });
return TabsService;
}());
export { TabsService };
if (false) {
/** @type {?} */
TabsService.prototype.tabs;
/** @type {?} */
TabsService.prototype._activeIndex;
/**
* @type {?}
* @private
*/
TabsService.prototype.router;
/**
* @type {?}
* @private
*/
TabsService.prototype.eles;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFicy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vZGJ3ZWItY29tbW9uLyIsInNvdXJjZXMiOlsibGliL2hvbWUvdGFicy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxlQUFlLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDbEUsT0FBTyxFQUFXLE1BQU0sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7OztBQUNqRTtJQUtDLGFBQVksS0FBbUI7OztZQUM5QixLQUFrQixJQUFBLEtBQUEsaUJBQUEsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQSxnQkFBQSw0QkFBRTtnQkFBakMsSUFBTSxHQUFHLFdBQUE7Z0JBQ2IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUN2Qjs7Ozs7Ozs7O1FBQ0QsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLGVBQWUsQ0FBUyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakUsQ0FBQzs7OztJQUNELGtCQUFJOzs7SUFBSjtRQUNDLE9BQU87WUFDTixHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUc7WUFDYixHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUc7WUFDYixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7U0FDakIsQ0FBQztJQUNILENBQUM7SUFDRixVQUFDO0FBQUQsQ0FBQyxBQWxCRCxJQWtCQzs7OztJQWpCQSxrQkFBYTs7SUFDYixrQkFBWTs7SUFDWixvQkFBYzs7SUFDZCw4QkFBeUM7O0FBZ0IxQztJQU1DLHFCQUFvQixNQUFjLEVBQVUsSUFBcUI7UUFBN0MsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUFVLFNBQUksR0FBSixJ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LCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IElSb3V0ZXJTdGF0ZSB9IGZyb20gJy4uL3JvdXRlci1zdGF0ZSc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBTaW1wbGVSZXVzZVN0cmF0ZWd5LCBFbGVtZW50c1NlcnZpY2UgfSBmcm9tICdkYndlYi1jb3JlJztcclxuaW1wb3J0IHsgVXJsVHJlZSwgUm91dGVyLCBOYXZpZ2F0aW9uRW5kIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuZXhwb3J0IGNsYXNzIFRhYiBpbXBsZW1lbnRzIElSb3V0ZXJTdGF0ZSB7XHJcblx0dXJsOiBVcmxUcmVlO1xyXG5cdGtleTogc3RyaW5nO1xyXG5cdHRpdGxlOiBzdHJpbmc7XHJcblx0dGl0bGVPYnNlcnZhYmxlOiBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPjtcclxuXHRjb25zdHJ1Y3RvcihzdGF0ZTogSVJvdXRlclN0YXRlKSB7XHJcblx0XHRmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhzdGF0ZSkpIHtcclxuXHRcdFx0dGhpc1trZXldID0gc3RhdGVba2V5XTtcclxuXHRcdH1cclxuXHRcdHRoaXMudGl0bGVPYnNlcnZhYmxlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KHN0YXRlLnRpdGxlKTtcclxuXHR9XHJcblx0ZGF0YSgpOiBJUm91dGVyU3RhdGUge1xyXG5cdFx0cmV0dXJuIHtcclxuXHRcdFx0dXJsOiB0aGlzLnVybCxcclxuXHRcdFx0a2V5OiB0aGlzLmtleSxcclxuXHRcdFx0dGl0bGU6IHRoaXMudGl0bGVcclxuXHRcdH07XHJcblx0fVxyXG59XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcblx0cHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUYWJzU2VydmljZSB7XHJcblx0dGFiczogVGFiW10gPSBbXTtcclxuXHRfYWN0aXZlSW5kZXg/OiBudW1iZXI7XHJcblx0Y29uc3RydWN0b3IocHJpdmF0ZSByb3V0ZXI6IFJvdXRlciwgcHJpdmF0ZSBlbGVzOiBFbGVtZW50c1NlcnZpY2UpIHt9XHJcblx0Ly8g5r+A5rS75LiA5LiqdGFi77yM5aaC5p6c5LiN5a2Y5Zyo77yM5YiZ5paw5aKe5bm25r+A5rS7XHJcblx0YWN0aXZlVGFiKGRhdGE6IElSb3V0ZXJTdGF0ZSkge1xyXG5cdFx0Y29uc3QgZmluZCA9IHRoaXMudGFicy5maW5kSW5kZXgodiA9PiB2LmtleSA9PT0gZGF0YS5rZXkpO1xyXG5cdFx0aWYgKGZpbmQgPT09IC0xKSB7XHJcblx0XHRcdHRoaXMudGFicy5wdXNoKG5ldyBUYWIoZGF0YSkpO1xyXG5cdFx0XHR0aGlzLl9hY3RpdmVJbmRleCA9IHRoaXMudGFicy5sZW5ndGggLSAxO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0dGhpcy5fYWN0aXZlSW5kZXggPSBmaW5kO1xyXG5cdFx0XHQvLyDlkIzml7bpnIDopoHmm7TmlrB1cmzlkox0aXRsZVxyXG5cdFx0XHR0aGlzLnRhYnNbdGhpcy5fYWN0aXZlSW5kZXhdLnVybCA9IGRhdGEudXJsO1xyXG5cdFx0XHR0aGlzLnRhYnNbdGhpcy5fYWN0aXZlSW5kZXhdLnRpdGxlID0gZGF0YS50aXRsZTtcclxuXHRcdH1cclxuXHR9XHJcblx0Ly8g5Yig6Zmk5oyH5a6a5bqP5Y+355qEdGFi77yM5bm25YiH5o2i5r+A5rS755qEdGFi77yM5aaC5p6c5Y+q5pyJ5LiA5LiqdGFi77yM5YiZ5LiN6IO96KKr5Yig6ZmkXHJcblx0Ly8g6L+U5ZuedHJ1ZeaMh+ekuua/gOa0u+mhteW3sue7j+WIh+aNolxyXG5cdHJlbW92ZVRhYihpbmRleDogbnVtYmVyKTogYm9vbGVhbiB7XHJcblx0XHRpZiAodGhpcy50YWJzLmxlbmd0aCA9PT0gMSkge1xyXG5cdFx0XHRyZXR1cm4gZmFsc2U7XHJcblx0XHR9XHJcblx0XHRjb25zdCBkZWxldGVVUkwgPSB0aGlzLnRhYnNbaW5kZXhdLnVybC50b1N0cmluZygpO1xyXG5cdFx0Ly8g5aaC5p6c5piv5YWz6Zet5b2T5YmN6aG16Z2i77yM5YiZ5Lya5byV6LW36Lev55Sx5Y+Y5YyW77yM5omA5Lul6ZyA6KaB5Zyo5a+86Iiq57uT5p2f5LqL5Lu25Lit5Yig6Zmk77yM5Zug5Li65a+86Iiq6L+H56iL5Lit6L+Y5Lya6L+b6KGM5L+d5a2YXHJcblx0XHRpZiAoaW5kZXggPT09IHRoaXMuX2FjdGl2ZUluZGV4KSB7XHJcblx0XHRcdGNvbnN0IHN1YiA9IHRoaXMucm91dGVyLmV2ZW50cy5zdWJzY3JpYmUodiA9PiB7XHJcblx0XHRcdFx0aWYgKHYgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSB7XHJcblx0XHRcdFx0XHRTaW1wbGVSZXVzZVN0cmF0ZWd5LmRlbGV0ZVJvdXRlU25hcHNob3QoZGVsZXRlVVJMKTtcclxuXHRcdFx0XHRcdHN1Yi51bnN1YnNjcmliZSgpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRTaW1wbGVSZXVzZVN0cmF0ZWd5LmRlbGV0ZVJvdXRlU25hcHNob3QoZGVsZXRlVVJMKTtcclxuXHRcdH1cclxuXHRcdHRoaXMudGFicy5zcGxpY2UoaW5kZXgsIDEpO1xyXG5cdFx0aWYgKHRoaXMuX2FjdGl2ZUluZGV4ID09PSBpbmRleCkge1xyXG5cdFx0XHR0aGlzLl9hY3RpdmVJbmRleCA9IE1hdGgubWluKHRoaXMudGFicy5sZW5ndGggLSAxLCBpbmRleCk7XHJcblx0XHRcdHJldHVybiB0cnVlO1xyXG5cdFx0fVxyXG5cdFx0aWYgKHRoaXMuX2FjdGl2ZUluZGV4ID4gaW5kZXgpIHtcclxuXHRcdFx0dGhpcy5fYWN0aXZlSW5kZXgtLTtcclxuXHRcdH1cclxuXHRcdHJldHVybiBmYWxzZTtcclxuXHR9XHJcblx0Ly8g5Yig6Zmk5omA5pyJ55qE6aG177yM5LiA6Iis5pivbG9nb3V0XHJcblx0Y2xlYXIoKSB7XHJcblx0XHR0aGlzLnRhYnMuc3BsaWNlKDApO1xyXG5cdFx0dGhpcy5fYWN0aXZlSW5kZXggPSB1bmRlZmluZWQ7XHJcblx0XHRTaW1wbGVSZXVzZVN0cmF0ZWd5LmNsZWFyUm91dGVTbmFwc2hvdCgpO1xyXG5cdH1cclxuXHQvLyDlhbPpl63lvZPliY3pobXvvIzlubboh6rliqjlr7zoiKrliLDmlrDnmoTpobVcclxuXHRjbG9zZSgpIHtcclxuXHRcdGlmICh0aGlzLmFjdGl2ZUluZGV4ID49IDApIHtcclxuXHRcdFx0Y29uc3QgaWR4ID0gdGhpcy5hY3RpdmVJbmRleDtcclxuXHRcdFx0aWYgKHRoaXMudGFicy5sZW5ndGggPT09IDEpIHtcclxuXHRcdFx0XHR0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKHRoaXMuZWxlcy5mcm9udEVsZW1lbnRVUkwodGhpcy5lbGVzLmluZGV4RWxlbWVudE5hbWUpKS50aGVuKCgpID0+IHtcclxuXHRcdFx0XHRcdHRoaXMucmVtb3ZlVGFiKGlkeCk7XHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdH1cclxuXHRcdFx0aWYgKHRoaXMucmVtb3ZlVGFiKGlkeCkpIHtcclxuXHRcdFx0XHR0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKHRoaXMuYWN0aXZlLnVybCwge1xyXG5cdFx0XHRcdFx0c3RhdGU6IHRoaXMuYWN0aXZlLmRhdGEoKVxyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdGdldCBhY3RpdmUoKSB7XHJcblx0XHRpZiAodGhpcy5fYWN0aXZlSW5kZXggPj0gMCkge1xyXG5cdFx0XHRyZXR1cm4gdGhpcy50YWJzW3RoaXMuX2FjdGl2ZUluZGV4XTtcclxuXHRcdH1cclxuXHRcdHJldHVybiB1bmRlZmluZWQ7XHJcblx0fVxyXG5cdGdldCBhY3RpdmVJbmRleCgpIHtcclxuXHRcdHJldHVybiB0aGlzLl9hY3RpdmVJbmRleDtcclxuXHR9XHJcblx0c2V0IGFjdGl2ZUluZGV4KHZhbDogbnVtYmVyKSB7XHJcblx0XHR0aGlzLl9hY3RpdmVJbmRleCA9IHZhbDtcclxuXHR9XHJcbn1cclxuIl19