@delon/abc 18.3.0 → 19.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/auto-focus/auto-focus.directive.d.ts +3 -5
- package/avatar-list/avatar-list.component.d.ts +3 -0
- package/avatar-list/avatar-list.module.d.ts +3 -0
- package/exception/exception.component.d.ts +1 -1
- package/fesm2022/auto-focus.mjs +19 -28
- package/fesm2022/auto-focus.mjs.map +1 -1
- package/fesm2022/avatar-list.mjs +35 -27
- package/fesm2022/avatar-list.mjs.map +1 -1
- package/fesm2022/cell.mjs +104 -107
- package/fesm2022/cell.mjs.map +1 -1
- package/fesm2022/chart-observer-size.mjs +17 -22
- package/fesm2022/chart-observer-size.mjs.map +1 -1
- package/fesm2022/count-down.mjs +11 -12
- package/fesm2022/count-down.mjs.map +1 -1
- package/fesm2022/date-picker.mjs +26 -26
- package/fesm2022/date-picker.mjs.map +1 -1
- package/fesm2022/down-file.mjs +19 -15
- package/fesm2022/down-file.mjs.map +1 -1
- package/fesm2022/ellipsis.mjs +29 -25
- package/fesm2022/ellipsis.mjs.map +1 -1
- package/fesm2022/error-collect.mjs +22 -21
- package/fesm2022/error-collect.mjs.map +1 -1
- package/fesm2022/exception.mjs +24 -20
- package/fesm2022/exception.mjs.map +1 -1
- package/fesm2022/footer-toolbar.mjs +13 -14
- package/fesm2022/footer-toolbar.mjs.map +1 -1
- package/fesm2022/full-content.mjs +31 -38
- package/fesm2022/full-content.mjs.map +1 -1
- package/fesm2022/global-footer.mjs +24 -23
- package/fesm2022/global-footer.mjs.map +1 -1
- package/fesm2022/hotkey.mjs +13 -15
- package/fesm2022/hotkey.mjs.map +1 -1
- package/fesm2022/loading.mjs +23 -21
- package/fesm2022/loading.mjs.map +1 -1
- package/fesm2022/lodop.mjs +15 -13
- package/fesm2022/lodop.mjs.map +1 -1
- package/fesm2022/media.mjs +30 -30
- package/fesm2022/media.mjs.map +1 -1
- package/fesm2022/notice-icon.mjs +48 -84
- package/fesm2022/notice-icon.mjs.map +1 -1
- package/fesm2022/onboarding.mjs +41 -37
- package/fesm2022/onboarding.mjs.map +1 -1
- package/fesm2022/page-header.mjs +48 -36
- package/fesm2022/page-header.mjs.map +1 -1
- package/fesm2022/pdf.mjs +45 -34
- package/fesm2022/pdf.mjs.map +1 -1
- package/fesm2022/quick-menu.mjs +22 -22
- package/fesm2022/quick-menu.mjs.map +1 -1
- package/fesm2022/result.mjs +17 -16
- package/fesm2022/result.mjs.map +1 -1
- package/fesm2022/reuse-tab.mjs +124 -122
- package/fesm2022/reuse-tab.mjs.map +1 -1
- package/fesm2022/se.mjs +68 -50
- package/fesm2022/se.mjs.map +1 -1
- package/fesm2022/sg.mjs +22 -21
- package/fesm2022/sg.mjs.map +1 -1
- package/fesm2022/st.mjs +445 -419
- package/fesm2022/st.mjs.map +1 -1
- package/fesm2022/sv.mjs +62 -43
- package/fesm2022/sv.mjs.map +1 -1
- package/fesm2022/tag-select.mjs +18 -20
- package/fesm2022/tag-select.mjs.map +1 -1
- package/fesm2022/xlsx.mjs +17 -18
- package/fesm2022/xlsx.mjs.map +1 -1
- package/fesm2022/zip.mjs +7 -6
- package/fesm2022/zip.mjs.map +1 -1
- package/hotkey/hotkey.directive.d.ts +2 -2
- package/notice-icon/notice-icon-tab.component.d.ts +5 -6
- package/notice-icon/notice-icon.component.d.ts +17 -22
- package/package.json +5 -75
- package/reuse-tab/public_api.d.ts +2 -1
- package/st/st-column-source.d.ts +1 -0
- package/st/st-filter.component.d.ts +4 -4
- package/st/st-row.directive.d.ts +1 -1
- package/st/st-widget-host.directive.d.ts +1 -1
- package/st/st.component.d.ts +33 -24
- package/st/st.interfaces.d.ts +26 -4
- package/st/st.module.d.ts +1 -22
- package/st/st.types.d.ts +2 -3
- package/sv/sv-container.component.d.ts +1 -1
- package/esm2022/abc.mjs +0 -5
- package/esm2022/auto-focus/auto-focus.directive.mjs +0 -40
- package/esm2022/auto-focus/auto-focus.mjs +0 -5
- package/esm2022/auto-focus/auto-focus.module.mjs +0 -17
- package/esm2022/auto-focus/index.mjs +0 -3
- package/esm2022/avatar-list/avatar-list-item.component.mjs +0 -27
- package/esm2022/avatar-list/avatar-list.component.mjs +0 -79
- package/esm2022/avatar-list/avatar-list.mjs +0 -5
- package/esm2022/avatar-list/avatar-list.module.mjs +0 -21
- package/esm2022/avatar-list/public_api.mjs +0 -4
- package/esm2022/cell/cell-host.directive.mjs +0 -35
- package/esm2022/cell/cell.component.mjs +0 -289
- package/esm2022/cell/cell.mjs +0 -5
- package/esm2022/cell/cell.module.mjs +0 -55
- package/esm2022/cell/cell.service.mjs +0 -173
- package/esm2022/cell/cell.types.mjs +0 -2
- package/esm2022/cell/index.mjs +0 -7
- package/esm2022/cell/provide.mjs +0 -18
- package/esm2022/count-down/count-down.component.mjs +0 -50
- package/esm2022/count-down/count-down.mjs +0 -5
- package/esm2022/count-down/count-down.module.mjs +0 -19
- package/esm2022/count-down/public_api.mjs +0 -3
- package/esm2022/date-picker/date-picker.mjs +0 -5
- package/esm2022/date-picker/date-picker.module.mjs +0 -21
- package/esm2022/date-picker/public_api.mjs +0 -4
- package/esm2022/date-picker/range-shortcut.component.mjs +0 -34
- package/esm2022/date-picker/range.directive.mjs +0 -168
- package/esm2022/down-file/down-file.directive.mjs +0 -113
- package/esm2022/down-file/down-file.mjs +0 -5
- package/esm2022/down-file/down-file.module.mjs +0 -19
- package/esm2022/down-file/public_api.mjs +0 -3
- package/esm2022/ellipsis/ellipsis.component.mjs +0 -219
- package/esm2022/ellipsis/ellipsis.mjs +0 -5
- package/esm2022/ellipsis/ellipsis.module.mjs +0 -20
- package/esm2022/ellipsis/public_api.mjs +0 -3
- package/esm2022/error-collect/error-collect.component.mjs +0 -110
- package/esm2022/error-collect/error-collect.mjs +0 -5
- package/esm2022/error-collect/error-collect.module.mjs +0 -19
- package/esm2022/error-collect/public_api.mjs +0 -3
- package/esm2022/exception/exception.component.mjs +0 -103
- package/esm2022/exception/exception.mjs +0 -5
- package/esm2022/exception/exception.module.mjs +0 -22
- package/esm2022/exception/public_api.mjs +0 -3
- package/esm2022/footer-toolbar/footer-toolbar.component.mjs +0 -33
- package/esm2022/footer-toolbar/footer-toolbar.mjs +0 -5
- package/esm2022/footer-toolbar/footer-toolbar.module.mjs +0 -20
- package/esm2022/footer-toolbar/public_api.mjs +0 -3
- package/esm2022/full-content/full-content-toggle.directive.mjs +0 -25
- package/esm2022/full-content/full-content.component.mjs +0 -125
- package/esm2022/full-content/full-content.mjs +0 -5
- package/esm2022/full-content/full-content.module.mjs +0 -19
- package/esm2022/full-content/full-content.service.mjs +0 -22
- package/esm2022/full-content/public_api.mjs +0 -5
- package/esm2022/global-footer/global-footer-item.component.mjs +0 -27
- package/esm2022/global-footer/global-footer.component.mjs +0 -65
- package/esm2022/global-footer/global-footer.mjs +0 -5
- package/esm2022/global-footer/global-footer.module.mjs +0 -20
- package/esm2022/global-footer/global-footer.types.mjs +0 -2
- package/esm2022/global-footer/public_api.mjs +0 -5
- package/esm2022/hotkey/hotkey.directive.mjs +0 -36
- package/esm2022/hotkey/hotkey.mjs +0 -5
- package/esm2022/hotkey/hotkey.module.mjs +0 -17
- package/esm2022/hotkey/public_api.mjs +0 -3
- package/esm2022/let/index.mjs +0 -3
- package/esm2022/let/let.directive.mjs +0 -40
- package/esm2022/let/let.mjs +0 -5
- package/esm2022/let/let.module.mjs +0 -20
- package/esm2022/loading/loading.component.mjs +0 -26
- package/esm2022/loading/loading.mjs +0 -5
- package/esm2022/loading/loading.module.mjs +0 -22
- package/esm2022/loading/loading.service.mjs +0 -88
- package/esm2022/loading/loading.types.mjs +0 -2
- package/esm2022/loading/public_api.mjs +0 -5
- package/esm2022/lodop/lodop.mjs +0 -5
- package/esm2022/lodop/lodop.module.mjs +0 -12
- package/esm2022/lodop/lodop.service.mjs +0 -224
- package/esm2022/lodop/lodop.types.mjs +0 -2
- package/esm2022/lodop/public_api.mjs +0 -4
- package/esm2022/media/media.component.mjs +0 -114
- package/esm2022/media/media.mjs +0 -5
- package/esm2022/media/media.module.mjs +0 -18
- package/esm2022/media/media.service.mjs +0 -46
- package/esm2022/media/public_api.mjs +0 -4
- package/esm2022/notice-icon/notice-icon-tab.component.mjs +0 -41
- package/esm2022/notice-icon/notice-icon.component.mjs +0 -96
- package/esm2022/notice-icon/notice-icon.mjs +0 -5
- package/esm2022/notice-icon/notice-icon.module.mjs +0 -59
- package/esm2022/notice-icon/notice-icon.types.mjs +0 -2
- package/esm2022/notice-icon/public_api.mjs +0 -5
- package/esm2022/observers/chart-observer-size.mjs +0 -5
- package/esm2022/observers/observer-size.mjs +0 -117
- package/esm2022/observers/public-api.mjs +0 -2
- package/esm2022/onboarding/onboarding.component.mjs +0 -127
- package/esm2022/onboarding/onboarding.mjs +0 -5
- package/esm2022/onboarding/onboarding.module.mjs +0 -42
- package/esm2022/onboarding/onboarding.service.mjs +0 -192
- package/esm2022/onboarding/onboarding.storage.mjs +0 -17
- package/esm2022/onboarding/onboarding.types.mjs +0 -2
- package/esm2022/onboarding/public_api.mjs +0 -6
- package/esm2022/page-header/page-header.component.mjs +0 -220
- package/esm2022/page-header/page-header.mjs +0 -5
- package/esm2022/page-header/page-header.module.mjs +0 -45
- package/esm2022/page-header/public_api.mjs +0 -3
- package/esm2022/pdf/pdf.component.mjs +0 -449
- package/esm2022/pdf/pdf.config.mjs +0 -10
- package/esm2022/pdf/pdf.mjs +0 -5
- package/esm2022/pdf/pdf.module.mjs +0 -19
- package/esm2022/pdf/pdf.types.mjs +0 -16
- package/esm2022/pdf/public_api.mjs +0 -5
- package/esm2022/public_api.mjs +0 -3
- package/esm2022/quick-menu/public_api.mjs +0 -3
- package/esm2022/quick-menu/quick-menu.component.mjs +0 -81
- package/esm2022/quick-menu/quick-menu.mjs +0 -5
- package/esm2022/quick-menu/quick-menu.module.mjs +0 -20
- package/esm2022/result/public_api.mjs +0 -3
- package/esm2022/result/result.component.mjs +0 -58
- package/esm2022/result/result.mjs +0 -5
- package/esm2022/result/result.module.mjs +0 -23
- package/esm2022/reuse-tab/lifecycle_hooks.mjs +0 -2
- package/esm2022/reuse-tab/provide.mjs +0 -74
- package/esm2022/reuse-tab/public_api.mjs +0 -14
- package/esm2022/reuse-tab/reuse-tab-context-menu.component.mjs +0 -75
- package/esm2022/reuse-tab/reuse-tab-context.component.mjs +0 -30
- package/esm2022/reuse-tab/reuse-tab-context.directive.mjs +0 -36
- package/esm2022/reuse-tab/reuse-tab-context.service.mjs +0 -54
- package/esm2022/reuse-tab/reuse-tab.cache.mjs +0 -13
- package/esm2022/reuse-tab/reuse-tab.component.mjs +0 -337
- package/esm2022/reuse-tab/reuse-tab.interfaces.mjs +0 -33
- package/esm2022/reuse-tab/reuse-tab.mjs +0 -5
- package/esm2022/reuse-tab/reuse-tab.module.mjs +0 -79
- package/esm2022/reuse-tab/reuse-tab.service.mjs +0 -574
- package/esm2022/reuse-tab/reuse-tab.state.mjs +0 -16
- package/esm2022/reuse-tab/reuse-tab.strategy.mjs +0 -23
- package/esm2022/se/public_api.mjs +0 -5
- package/esm2022/se/se-container.component.mjs +0 -158
- package/esm2022/se/se.component.mjs +0 -220
- package/esm2022/se/se.mjs +0 -5
- package/esm2022/se/se.module.mjs +0 -22
- package/esm2022/se/se.types.mjs +0 -14
- package/esm2022/sg/public_api.mjs +0 -4
- package/esm2022/sg/sg-container.component.mjs +0 -44
- package/esm2022/sg/sg.component.mjs +0 -62
- package/esm2022/sg/sg.mjs +0 -5
- package/esm2022/sg/sg.module.mjs +0 -19
- package/esm2022/st/provide.mjs +0 -18
- package/esm2022/st/public_api.mjs +0 -13
- package/esm2022/st/st-column-source.mjs +0 -496
- package/esm2022/st/st-data-source.mjs +0 -507
- package/esm2022/st/st-export.mjs +0 -87
- package/esm2022/st/st-filter.component.mjs +0 -293
- package/esm2022/st/st-row.directive.mjs +0 -43
- package/esm2022/st/st-widget-host.directive.mjs +0 -31
- package/esm2022/st/st-widget.mjs +0 -26
- package/esm2022/st/st.component.mjs +0 -966
- package/esm2022/st/st.config.mjs +0 -79
- package/esm2022/st/st.interfaces.mjs +0 -2
- package/esm2022/st/st.mjs +0 -5
- package/esm2022/st/st.module.mjs +0 -100
- package/esm2022/st/st.types.mjs +0 -2
- package/esm2022/sv/public_api.mjs +0 -5
- package/esm2022/sv/sv-container.component.mjs +0 -127
- package/esm2022/sv/sv-value.component.mjs +0 -53
- package/esm2022/sv/sv.component.mjs +0 -109
- package/esm2022/sv/sv.mjs +0 -5
- package/esm2022/sv/sv.module.mjs +0 -24
- package/esm2022/tag-select/public_api.mjs +0 -3
- package/esm2022/tag-select/tag-select.component.mjs +0 -53
- package/esm2022/tag-select/tag-select.mjs +0 -5
- package/esm2022/tag-select/tag-select.module.mjs +0 -20
- package/esm2022/xlsx/public_api.mjs +0 -5
- package/esm2022/xlsx/xlsx.directive.mjs +0 -28
- package/esm2022/xlsx/xlsx.mjs +0 -5
- package/esm2022/xlsx/xlsx.module.mjs +0 -17
- package/esm2022/xlsx/xlsx.service.mjs +0 -128
- package/esm2022/xlsx/xlsx.types.mjs +0 -2
- package/esm2022/zip/public_api.mjs +0 -3
- package/esm2022/zip/zip.mjs +0 -5
- package/esm2022/zip/zip.service.mjs +0 -116
- package/esm2022/zip/zip.types.mjs +0 -2
- package/fesm2022/let.mjs +0 -64
- package/fesm2022/let.mjs.map +0 -1
- package/let/index.d.ts +0 -2
- package/let/let.directive.d.ts +0 -19
- package/let/let.module.d.ts +0 -10
|
@@ -1,337 +0,0 @@
|
|
|
1
|
-
import { Directionality } from '@angular/cdk/bidi';
|
|
2
|
-
import { Platform } from '@angular/cdk/platform';
|
|
3
|
-
import { DOCUMENT, NgTemplateOutlet } from '@angular/common';
|
|
4
|
-
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, DestroyRef, EventEmitter, Input, Output, ViewChild, ViewEncapsulation, booleanAttribute, inject, numberAttribute } from '@angular/core';
|
|
5
|
-
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
6
|
-
import { ActivatedRoute, Router } from '@angular/router';
|
|
7
|
-
import { debounceTime, filter, of } from 'rxjs';
|
|
8
|
-
import { ALAIN_I18N_TOKEN } from '@delon/theme';
|
|
9
|
-
import { NzIconDirective } from 'ng-zorro-antd/icon';
|
|
10
|
-
import { NzTabComponent, NzTabSetComponent } from 'ng-zorro-antd/tabs';
|
|
11
|
-
import { ReuseTabContextMenuComponent } from './reuse-tab-context-menu.component';
|
|
12
|
-
import { ReuseTabContextComponent } from './reuse-tab-context.component';
|
|
13
|
-
import { ReuseTabContextDirective } from './reuse-tab-context.directive';
|
|
14
|
-
import { ReuseTabContextService } from './reuse-tab-context.service';
|
|
15
|
-
import { ReuseTabMatchMode } from './reuse-tab.interfaces';
|
|
16
|
-
import { ReuseTabService } from './reuse-tab.service';
|
|
17
|
-
import { REUSE_TAB_STORAGE_KEY, REUSE_TAB_STORAGE_STATE } from './reuse-tab.state';
|
|
18
|
-
import * as i0 from "@angular/core";
|
|
19
|
-
export class ReuseTabComponent {
|
|
20
|
-
constructor() {
|
|
21
|
-
this.srv = inject(ReuseTabService, { optional: true });
|
|
22
|
-
this.cdr = inject(ChangeDetectorRef);
|
|
23
|
-
this.router = inject(Router);
|
|
24
|
-
this.route = inject(ActivatedRoute);
|
|
25
|
-
this.i18nSrv = inject(ALAIN_I18N_TOKEN);
|
|
26
|
-
this.doc = inject(DOCUMENT);
|
|
27
|
-
this.platform = inject(Platform);
|
|
28
|
-
this.directionality = inject(Directionality);
|
|
29
|
-
this.stateKey = inject(REUSE_TAB_STORAGE_KEY);
|
|
30
|
-
this.stateSrv = inject(REUSE_TAB_STORAGE_STATE);
|
|
31
|
-
this.destroy$ = inject(DestroyRef);
|
|
32
|
-
this.list = [];
|
|
33
|
-
this.pos = 0;
|
|
34
|
-
this.dir = 'ltr';
|
|
35
|
-
// #region fields
|
|
36
|
-
this.mode = ReuseTabMatchMode.Menu;
|
|
37
|
-
this.debug = false;
|
|
38
|
-
this.allowClose = true;
|
|
39
|
-
this.keepingScroll = false;
|
|
40
|
-
this.storageState = false;
|
|
41
|
-
this.customContextMenu = [];
|
|
42
|
-
this.tabBarStyle = null;
|
|
43
|
-
this.tabType = 'line';
|
|
44
|
-
this.routeParamMatchMode = 'strict';
|
|
45
|
-
this.disabled = false;
|
|
46
|
-
this.change = new EventEmitter();
|
|
47
|
-
this.close = new EventEmitter();
|
|
48
|
-
}
|
|
49
|
-
set keepingScrollContainer(value) {
|
|
50
|
-
this._keepingScrollContainer = typeof value === 'string' ? this.doc.querySelector(value) : value;
|
|
51
|
-
}
|
|
52
|
-
// #endregion
|
|
53
|
-
genTit(title) {
|
|
54
|
-
return title.i18n ? this.i18nSrv.fanyi(title.i18n) : title.text;
|
|
55
|
-
}
|
|
56
|
-
get curUrl() {
|
|
57
|
-
return this.srv.getUrl(this.route.snapshot);
|
|
58
|
-
}
|
|
59
|
-
genCurItem() {
|
|
60
|
-
const url = this.curUrl;
|
|
61
|
-
const snapshotTrue = this.srv.getTruthRoute(this.route.snapshot);
|
|
62
|
-
return {
|
|
63
|
-
url,
|
|
64
|
-
title: this.genTit(this.srv.getTitle(url, snapshotTrue)),
|
|
65
|
-
closable: this.allowClose && this.srv.count > 0 && this.srv.getClosable(url, snapshotTrue),
|
|
66
|
-
active: false,
|
|
67
|
-
last: false,
|
|
68
|
-
index: 0
|
|
69
|
-
};
|
|
70
|
-
}
|
|
71
|
-
genList(notify) {
|
|
72
|
-
const ls = this.srv.items.map((item, index) => ({
|
|
73
|
-
url: item.url,
|
|
74
|
-
title: this.genTit(item.title),
|
|
75
|
-
closable: this.allowClose && this.srv.count > 0 && this.srv.getClosable(item.url, item._snapshot),
|
|
76
|
-
position: item.position,
|
|
77
|
-
index,
|
|
78
|
-
active: false,
|
|
79
|
-
last: false
|
|
80
|
-
}));
|
|
81
|
-
const url = this.curUrl;
|
|
82
|
-
let addCurrent = ls.findIndex(w => w.url === url) === -1;
|
|
83
|
-
if (notify && notify.active === 'close' && notify.url === url) {
|
|
84
|
-
addCurrent = false;
|
|
85
|
-
let toPos = 0;
|
|
86
|
-
const curItem = this.list.find(w => w.url === url);
|
|
87
|
-
if (curItem.index === ls.length) {
|
|
88
|
-
// When closed is last
|
|
89
|
-
toPos = ls.length - 1;
|
|
90
|
-
}
|
|
91
|
-
else if (curItem.index < ls.length) {
|
|
92
|
-
// Should be actived next tab when closed is middle
|
|
93
|
-
toPos = Math.max(0, curItem.index);
|
|
94
|
-
}
|
|
95
|
-
this.router.navigateByUrl(ls[toPos].url);
|
|
96
|
-
}
|
|
97
|
-
if (addCurrent) {
|
|
98
|
-
const addPos = this.pos + 1;
|
|
99
|
-
ls.splice(addPos, 0, this.genCurItem());
|
|
100
|
-
// Attach to cache
|
|
101
|
-
this.srv.saveCache(this.route.snapshot, null, addPos);
|
|
102
|
-
}
|
|
103
|
-
ls.forEach((item, index) => (item.index = index));
|
|
104
|
-
if (ls.length === 1) {
|
|
105
|
-
ls[0].closable = false;
|
|
106
|
-
}
|
|
107
|
-
this.list = ls;
|
|
108
|
-
this.cdr.detectChanges();
|
|
109
|
-
this.updatePos();
|
|
110
|
-
}
|
|
111
|
-
updateTitle(res) {
|
|
112
|
-
const item = this.list.find(w => w.url === res.url);
|
|
113
|
-
if (!item)
|
|
114
|
-
return;
|
|
115
|
-
item.title = this.genTit(res.title);
|
|
116
|
-
this.cdr.detectChanges();
|
|
117
|
-
}
|
|
118
|
-
refresh(item) {
|
|
119
|
-
this.srv.runHook('_onReuseInit', this.pos === item.index ? this.srv.componentRef : item.index, 'refresh');
|
|
120
|
-
}
|
|
121
|
-
saveState() {
|
|
122
|
-
if (!this.srv.inited || !this.storageState)
|
|
123
|
-
return;
|
|
124
|
-
this.stateSrv?.update(this.stateKey, this.list);
|
|
125
|
-
}
|
|
126
|
-
// #region UI
|
|
127
|
-
contextMenuChange(res) {
|
|
128
|
-
let fn = null;
|
|
129
|
-
switch (res.type) {
|
|
130
|
-
case 'refresh':
|
|
131
|
-
this.refresh(res.item);
|
|
132
|
-
break;
|
|
133
|
-
case 'close':
|
|
134
|
-
this._close(null, res.item.index, res.includeNonCloseable);
|
|
135
|
-
break;
|
|
136
|
-
case 'closeRight':
|
|
137
|
-
fn = () => {
|
|
138
|
-
this.srv.closeRight(res.item.url, res.includeNonCloseable);
|
|
139
|
-
this.close.emit(null);
|
|
140
|
-
};
|
|
141
|
-
break;
|
|
142
|
-
case 'closeOther':
|
|
143
|
-
fn = () => {
|
|
144
|
-
this.srv.clear(res.includeNonCloseable);
|
|
145
|
-
this.close.emit(null);
|
|
146
|
-
};
|
|
147
|
-
break;
|
|
148
|
-
}
|
|
149
|
-
if (!fn) {
|
|
150
|
-
return;
|
|
151
|
-
}
|
|
152
|
-
if (!res.item.active && res.item.index <= this.list.find(w => w.active).index) {
|
|
153
|
-
this._to(res.item.index, fn);
|
|
154
|
-
}
|
|
155
|
-
else {
|
|
156
|
-
fn();
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
_to(index, cb) {
|
|
160
|
-
index = Math.max(0, Math.min(index, this.list.length - 1));
|
|
161
|
-
const item = this.list[index];
|
|
162
|
-
this.router.navigateByUrl(item.url).then(res => {
|
|
163
|
-
if (!res)
|
|
164
|
-
return;
|
|
165
|
-
this.item = item;
|
|
166
|
-
this.change.emit(item);
|
|
167
|
-
cb?.();
|
|
168
|
-
});
|
|
169
|
-
}
|
|
170
|
-
_close(e, idx, includeNonCloseable) {
|
|
171
|
-
if (e != null) {
|
|
172
|
-
e.preventDefault();
|
|
173
|
-
e.stopPropagation();
|
|
174
|
-
}
|
|
175
|
-
const item = this.list[idx];
|
|
176
|
-
(this.canClose ? this.canClose({ item, includeNonCloseable }) : of(true)).pipe(filter(v => v)).subscribe(() => {
|
|
177
|
-
this.srv.close(item.url, includeNonCloseable);
|
|
178
|
-
this.close.emit(item);
|
|
179
|
-
this.cdr.detectChanges();
|
|
180
|
-
});
|
|
181
|
-
return false;
|
|
182
|
-
}
|
|
183
|
-
/**
|
|
184
|
-
* 设置激活路由的实例,在 `src/app/layout/basic/basic.component.ts` 修改:
|
|
185
|
-
*
|
|
186
|
-
* @example
|
|
187
|
-
* <reuse-tab #reuseTab></reuse-tab>
|
|
188
|
-
* <router-outlet (activate)="reuseTab.activate($event)" (attach)="reuseTab.activate($event)"></router-outlet>
|
|
189
|
-
*/
|
|
190
|
-
activate(instance) {
|
|
191
|
-
if (this.srv == null)
|
|
192
|
-
return;
|
|
193
|
-
this.srv.componentRef = { instance };
|
|
194
|
-
}
|
|
195
|
-
updatePos() {
|
|
196
|
-
const url = this.srv.getUrl(this.route.snapshot);
|
|
197
|
-
const ls = this.list.filter(w => w.url === url || !this.srv.isExclude(w.url));
|
|
198
|
-
if (ls.length === 0) {
|
|
199
|
-
return;
|
|
200
|
-
}
|
|
201
|
-
const last = ls[ls.length - 1];
|
|
202
|
-
const item = ls.find(w => w.url === url);
|
|
203
|
-
last.last = true;
|
|
204
|
-
const pos = item == null ? last.index : item.index;
|
|
205
|
-
ls.forEach((i, idx) => (i.active = pos === idx));
|
|
206
|
-
this.pos = pos;
|
|
207
|
-
// TODO: 目前无法知道为什么 `pos` 无法通过 `nzSelectedIndex` 生效,因此强制使用组件实例的方式来修改,这种方式是安全的
|
|
208
|
-
// https://github.com/ng-alain/ng-alain/issues/1736
|
|
209
|
-
this.tabset.nzSelectedIndex = pos;
|
|
210
|
-
this.list = ls;
|
|
211
|
-
this.cdr.detectChanges();
|
|
212
|
-
this.saveState();
|
|
213
|
-
}
|
|
214
|
-
// #endregion
|
|
215
|
-
ngOnInit() {
|
|
216
|
-
this.dir = this.directionality.value;
|
|
217
|
-
this.directionality.change.pipe(takeUntilDestroyed(this.destroy$)).subscribe(direction => {
|
|
218
|
-
this.dir = direction;
|
|
219
|
-
this.cdr.detectChanges();
|
|
220
|
-
});
|
|
221
|
-
if (!this.platform.isBrowser || this.srv == null) {
|
|
222
|
-
return;
|
|
223
|
-
}
|
|
224
|
-
this.srv.change.pipe(takeUntilDestroyed(this.destroy$)).subscribe(res => {
|
|
225
|
-
switch (res?.active) {
|
|
226
|
-
case 'title':
|
|
227
|
-
this.updateTitle(res);
|
|
228
|
-
return;
|
|
229
|
-
case 'override':
|
|
230
|
-
if (res?.list?.length === this.list.length) {
|
|
231
|
-
this.updatePos();
|
|
232
|
-
return;
|
|
233
|
-
}
|
|
234
|
-
break;
|
|
235
|
-
}
|
|
236
|
-
this.genList(res);
|
|
237
|
-
});
|
|
238
|
-
this.i18nSrv.change
|
|
239
|
-
.pipe(filter(() => this.srv.inited), takeUntilDestroyed(this.destroy$), debounceTime(100))
|
|
240
|
-
.subscribe(() => this.genList({ active: 'title' }));
|
|
241
|
-
this.srv.init();
|
|
242
|
-
}
|
|
243
|
-
ngOnChanges(changes) {
|
|
244
|
-
if (!this.platform.isBrowser || this.srv == null) {
|
|
245
|
-
return;
|
|
246
|
-
}
|
|
247
|
-
if (changes.max)
|
|
248
|
-
this.srv.max = this.max;
|
|
249
|
-
if (changes.excludes)
|
|
250
|
-
this.srv.excludes = this.excludes;
|
|
251
|
-
if (changes.mode)
|
|
252
|
-
this.srv.mode = this.mode;
|
|
253
|
-
if (changes.routeParamMatchMode)
|
|
254
|
-
this.srv.routeParamMatchMode = this.routeParamMatchMode;
|
|
255
|
-
if (changes.keepingScroll) {
|
|
256
|
-
this.srv.keepingScroll = this.keepingScroll;
|
|
257
|
-
this.srv.keepingScrollContainer = this._keepingScrollContainer;
|
|
258
|
-
}
|
|
259
|
-
if (changes.storageState)
|
|
260
|
-
this.srv.storageState = this.storageState;
|
|
261
|
-
this.srv.debug = this.debug;
|
|
262
|
-
this.cdr.detectChanges();
|
|
263
|
-
}
|
|
264
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ReuseTabComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
265
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: ReuseTabComponent, isStandalone: true, selector: "reuse-tab, [reuse-tab]", inputs: { mode: "mode", i18n: "i18n", debug: ["debug", "debug", booleanAttribute], max: ["max", "max", numberAttribute], tabMaxWidth: ["tabMaxWidth", "tabMaxWidth", numberAttribute], excludes: "excludes", allowClose: ["allowClose", "allowClose", booleanAttribute], keepingScroll: ["keepingScroll", "keepingScroll", booleanAttribute], storageState: ["storageState", "storageState", booleanAttribute], keepingScrollContainer: "keepingScrollContainer", customContextMenu: "customContextMenu", tabBarExtraContent: "tabBarExtraContent", tabBarGutter: "tabBarGutter", tabBarStyle: "tabBarStyle", tabType: "tabType", routeParamMatchMode: "routeParamMatchMode", disabled: ["disabled", "disabled", booleanAttribute], titleRender: "titleRender", canClose: "canClose" }, outputs: { change: "change", close: "close" }, host: { properties: { "class.reuse-tab": "true", "class.reuse-tab__line": "tabType === 'line'", "class.reuse-tab__card": "tabType === 'card'", "class.reuse-tab__disabled": "disabled", "class.reuse-tab-rtl": "dir === 'rtl'" } }, providers: [ReuseTabContextService], viewQueries: [{ propertyName: "tabset", first: true, predicate: ["tabset"], descendants: true }], exportAs: ["reuseTab"], usesOnChanges: true, ngImport: i0, template: "<nz-tabset\n #tabset\n [nzSelectedIndex]=\"pos\"\n [nzAnimated]=\"false\"\n [nzType]=\"tabType\"\n [nzTabBarExtraContent]=\"tabBarExtraContent\"\n [nzTabBarGutter]=\"tabBarGutter\"\n [nzTabBarStyle]=\"tabBarStyle\"\n>\n @for (i of list; track $index) {\n <nz-tab [nzTitle]=\"titleTemplate\" (nzClick)=\"_to($index)\">\n <ng-template #titleTemplate>\n <div\n [reuse-tab-context-menu]=\"i\"\n [customContextMenu]=\"customContextMenu\"\n class=\"reuse-tab__name\"\n [attr.title]=\"i.title\"\n >\n <span [class.reuse-tab__name-width]=\"tabMaxWidth\" [style.max-width.px]=\"tabMaxWidth\">\n @if (titleRender) {\n <ng-template [ngTemplateOutlet]=\"titleRender\" [ngTemplateOutletContext]=\"{ $implicit: i }\" />\n } @else {\n {{ i.title }}\n }\n </span>\n </div>\n @if (i.closable) {\n <i nz-icon nzType=\"close\" class=\"reuse-tab__op\" (click)=\"_close($event, $index, false)\"></i>\n }\n </ng-template>\n </nz-tab>\n }\n</nz-tabset>\n<reuse-tab-context [i18n]=\"i18n\" (change)=\"contextMenuChange($event)\" />\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: NzTabSetComponent, selector: "nz-tabset", inputs: ["nzSelectedIndex", "nzTabPosition", "nzTabBarExtraContent", "nzCanDeactivate", "nzAddIcon", "nzTabBarStyle", "nzType", "nzSize", "nzAnimated", "nzTabBarGutter", "nzHideAdd", "nzCentered", "nzHideAll", "nzLinkRouter", "nzLinkExact"], outputs: ["nzSelectChange", "nzSelectedIndexChange", "nzTabListScroll", "nzClose", "nzAdd"], exportAs: ["nzTabset"] }, { kind: "component", type: NzTabComponent, selector: "nz-tab", inputs: ["nzTitle", "nzClosable", "nzCloseIcon", "nzDisabled", "nzForceRender"], outputs: ["nzSelect", "nzDeselect", "nzClick", "nzContextmenu"], exportAs: ["nzTab"] }, { kind: "directive", type: ReuseTabContextDirective, selector: "[reuse-tab-context-menu]", inputs: ["reuse-tab-context-menu", "customContextMenu"], exportAs: ["reuseTabContextMenu"] }, { kind: "component", type: ReuseTabContextComponent, selector: "reuse-tab-context", inputs: ["i18n"], outputs: ["change"] }, { kind: "directive", type: NzIconDirective, selector: "[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
266
|
-
}
|
|
267
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ReuseTabComponent, decorators: [{
|
|
268
|
-
type: Component,
|
|
269
|
-
args: [{ selector: 'reuse-tab, [reuse-tab]', exportAs: 'reuseTab', host: {
|
|
270
|
-
'[class.reuse-tab]': 'true',
|
|
271
|
-
'[class.reuse-tab__line]': `tabType === 'line'`,
|
|
272
|
-
'[class.reuse-tab__card]': `tabType === 'card'`,
|
|
273
|
-
'[class.reuse-tab__disabled]': `disabled`,
|
|
274
|
-
'[class.reuse-tab-rtl]': `dir === 'rtl'`
|
|
275
|
-
}, providers: [ReuseTabContextService], preserveWhitespaces: false, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, standalone: true, imports: [
|
|
276
|
-
NgTemplateOutlet,
|
|
277
|
-
NzTabSetComponent,
|
|
278
|
-
NzTabComponent,
|
|
279
|
-
ReuseTabContextMenuComponent,
|
|
280
|
-
ReuseTabContextDirective,
|
|
281
|
-
ReuseTabContextComponent,
|
|
282
|
-
NzIconDirective
|
|
283
|
-
], template: "<nz-tabset\n #tabset\n [nzSelectedIndex]=\"pos\"\n [nzAnimated]=\"false\"\n [nzType]=\"tabType\"\n [nzTabBarExtraContent]=\"tabBarExtraContent\"\n [nzTabBarGutter]=\"tabBarGutter\"\n [nzTabBarStyle]=\"tabBarStyle\"\n>\n @for (i of list; track $index) {\n <nz-tab [nzTitle]=\"titleTemplate\" (nzClick)=\"_to($index)\">\n <ng-template #titleTemplate>\n <div\n [reuse-tab-context-menu]=\"i\"\n [customContextMenu]=\"customContextMenu\"\n class=\"reuse-tab__name\"\n [attr.title]=\"i.title\"\n >\n <span [class.reuse-tab__name-width]=\"tabMaxWidth\" [style.max-width.px]=\"tabMaxWidth\">\n @if (titleRender) {\n <ng-template [ngTemplateOutlet]=\"titleRender\" [ngTemplateOutletContext]=\"{ $implicit: i }\" />\n } @else {\n {{ i.title }}\n }\n </span>\n </div>\n @if (i.closable) {\n <i nz-icon nzType=\"close\" class=\"reuse-tab__op\" (click)=\"_close($event, $index, false)\"></i>\n }\n </ng-template>\n </nz-tab>\n }\n</nz-tabset>\n<reuse-tab-context [i18n]=\"i18n\" (change)=\"contextMenuChange($event)\" />\n" }]
|
|
284
|
-
}], propDecorators: { tabset: [{
|
|
285
|
-
type: ViewChild,
|
|
286
|
-
args: ['tabset']
|
|
287
|
-
}], mode: [{
|
|
288
|
-
type: Input
|
|
289
|
-
}], i18n: [{
|
|
290
|
-
type: Input
|
|
291
|
-
}], debug: [{
|
|
292
|
-
type: Input,
|
|
293
|
-
args: [{ transform: booleanAttribute }]
|
|
294
|
-
}], max: [{
|
|
295
|
-
type: Input,
|
|
296
|
-
args: [{ transform: numberAttribute }]
|
|
297
|
-
}], tabMaxWidth: [{
|
|
298
|
-
type: Input,
|
|
299
|
-
args: [{ transform: numberAttribute }]
|
|
300
|
-
}], excludes: [{
|
|
301
|
-
type: Input
|
|
302
|
-
}], allowClose: [{
|
|
303
|
-
type: Input,
|
|
304
|
-
args: [{ transform: booleanAttribute }]
|
|
305
|
-
}], keepingScroll: [{
|
|
306
|
-
type: Input,
|
|
307
|
-
args: [{ transform: booleanAttribute }]
|
|
308
|
-
}], storageState: [{
|
|
309
|
-
type: Input,
|
|
310
|
-
args: [{ transform: booleanAttribute }]
|
|
311
|
-
}], keepingScrollContainer: [{
|
|
312
|
-
type: Input
|
|
313
|
-
}], customContextMenu: [{
|
|
314
|
-
type: Input
|
|
315
|
-
}], tabBarExtraContent: [{
|
|
316
|
-
type: Input
|
|
317
|
-
}], tabBarGutter: [{
|
|
318
|
-
type: Input
|
|
319
|
-
}], tabBarStyle: [{
|
|
320
|
-
type: Input
|
|
321
|
-
}], tabType: [{
|
|
322
|
-
type: Input
|
|
323
|
-
}], routeParamMatchMode: [{
|
|
324
|
-
type: Input
|
|
325
|
-
}], disabled: [{
|
|
326
|
-
type: Input,
|
|
327
|
-
args: [{ transform: booleanAttribute }]
|
|
328
|
-
}], titleRender: [{
|
|
329
|
-
type: Input
|
|
330
|
-
}], canClose: [{
|
|
331
|
-
type: Input
|
|
332
|
-
}], change: [{
|
|
333
|
-
type: Output
|
|
334
|
-
}], close: [{
|
|
335
|
-
type: Output
|
|
336
|
-
}] } });
|
|
337
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV1c2UtdGFiLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FiYy9yZXVzZS10YWIvcmV1c2UtdGFiLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FiYy9yZXVzZS10YWIvcmV1c2UtdGFiLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDakQsT0FBTyxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzdELE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBSU4sU0FBUyxFQUNULGlCQUFpQixFQUNqQixnQkFBZ0IsRUFDaEIsTUFBTSxFQUNOLGVBQWUsRUFDaEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFaEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRWhELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsY0FBYyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFdkUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDbEYsT0FBTyxFQUFFLHdCQUF3QixFQUFF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QUFhO3NCQUFwRCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUNFLFlBQVk7c0JBQW5ELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBRWxDLHNCQUFzQjtzQkFEekIsS0FBSztnQkFJRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUNrQyxRQUFRO3NCQUEvQyxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUM3QixXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ2EsTUFBTTtzQkFBeEIsTUFBTTtnQkFDWSxLQUFLO3NCQUF2QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aW9uLCBEaXJlY3Rpb25hbGl0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9iaWRpJztcbmltcG9ydCB7IFBsYXRmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BsYXRmb3JtJztcbmltcG9ydCB7IERPQ1VNRU5ULCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBEZXN0cm95UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2UsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBib29sZWFuQXR0cmlidXRlLFxuICBpbmplY3QsXG4gIG51bWJlckF0dHJpYnV0ZVxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBmaWx0ZXIsIG9mIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEFMQUlOX0kxOE5fVE9LRU4gfSBmcm9tICdAZGVsb24vdGhlbWUnO1xuaW1wb3J0IHR5cGUgeyBOelNhZmVBbnkgfSBmcm9tICduZy16b3Jyby1hbnRkL2NvcmUvdHlwZXMnO1xuaW1wb3J0IHsgTnpJY29uRGlyZWN0aXZlIH0gZnJvbSAnbmctem9ycm8tYW50ZC9pY29uJztcbmltcG9ydCB7IE56VGFiQ29tcG9uZW50LCBOelRhYlNldENvbXBvbmVudCB9IGZyb20gJ25nLXpvcnJvLWFudGQvdGFicyc7XG5cbmltcG9ydCB7IFJldXNlVGFiQ29udGV4dE1lbnVDb21wb25lbnQgfSBmcm9tICcuL3JldXNlLXRhYi1jb250ZXh0LW1lbnUuY29tcG9uZW50JztcbmltcG9ydCB7IFJldXNlVGFiQ29udGV4dENvbXBvbmVudCB9IGZyb20gJy4vcmV1c2UtdGFiLWNvbnRleHQuY29tcG9uZW50JztcbmltcG9ydCB7IFJldXNlVGFiQ29udGV4dERpcmVjdGl2ZSB9IGZyb20gJy4vcmV1c2UtdGFiLWNvbnRleHQuZGlyZWN0aXZlJztcbmltcG9ydCB7IFJldXNlVGFiQ29udGV4dFNlcnZpY2UgfSBmcm9tICcuL3JldXNlLXRhYi1jb250ZXh0LnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgUmV1c2VDYW5DbG9zZSxcbiAgUmV1c2VDb250ZXh0Q2xvc2VFdmVudCxcbiAgUmV1c2VDb250ZXh0STE4bixcbiAgUmV1c2VDdXN0b21Db250ZXh0TWVudSxcbiAgUmV1c2VJdGVtLFxuICBSZXVzZVRhYkNhY2hlZCxcbiAgUmV1c2VUYWJNYXRjaE1vZGUsXG4gIFJldXNlVGFiTm90aWZ5LFxuICBSZXVzZVRhYlJvdXRlUGFyYW1NYXRjaE1vZGUsXG4gIFJldXNlVGl0bGVcbn0gZnJvbSAnLi9yZXVzZS10YWIuaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBSZXVzZVRhYlNlcnZpY2UgfSBmcm9tICcuL3JldXNlLXRhYi5zZXJ2aWNlJztcbmltcG9ydCB7IFJFVVNFX1RBQl9TVE9SQUdFX0tFWSwgUkVVU0VfVEFCX1NUT1JBR0VfU1RBVEUgfSBmcm9tICcuL3JldXNlLXRhYi5zdGF0ZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JldXNlLXRhYiwgW3JldXNlLXRhYl0nLFxuICBleHBvcnRBczogJ3JldXNlVGFiJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3JldXNlLXRhYi5jb21wb25lbnQuaHRtbCcsXG4gIGhvc3Q6IHtcbiAgICAnW2NsYXNzLnJldXNlLXRhYl0nOiAndHJ1ZScsXG4gICAgJ1tjbGFzcy5yZXVzZS10YWJfX2xpbmVdJzogYHRhYlR5cGUgPT09ICdsaW5lJ2AsXG4gICAgJ1tjbGFzcy5yZXVzZS10YWJfX2NhcmRdJzogYHRhYlR5cGUgPT09ICdjYXJkJ2AsXG4gICAgJ1tjbGFzcy5yZXVzZS10YWJfX2Rpc2FibGVkXSc6IGBkaXNhYmxlZGAsXG4gICAgJ1tjbGFzcy5yZXVzZS10YWItcnRsXSc6IGBkaXIgPT09ICdydGwnYFxuICB9LFxuICBwcm92aWRlcnM6IFtSZXVzZVRhYkNvbnRleHRTZXJ2aWNlXSxcbiAgcHJlc2VydmVXaGl0ZXNwYWNlczogZmFsc2UsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICBOelRhYlNldENvbXBvbmVudCxcbiAgICBOelRhYkNvbXBvbmVudCxcbiAgICBSZXVzZVRhYkNvbnRleHRNZW51Q29tcG9uZW50LFxuICAgIFJldXNlVGFiQ29udGV4dERpcmVjdGl2ZSxcbiAgICBSZXVzZVRhYkNvbnRleHRDb21wb25lbnQsXG4gICAgTnpJY29uRGlyZWN0aXZlXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgUmV1c2VUYWJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIHByaXZhdGUgcmVhZG9ubHkgc3J2ID0gaW5qZWN0KFJldXNlVGFiU2VydmljZSwgeyBvcHRpb25hbDogdHJ1ZSB9KSE7XG4gIHByaXZhdGUgcmVhZG9ubHkgY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcbiAgcHJpdmF0ZSByZWFkb25seSByb3V0ZSA9IGluamVjdChBY3RpdmF0ZWRSb3V0ZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgaTE4blNydiA9IGluamVjdChBTEFJTl9JMThOX1RPS0VOKTtcbiAgcHJpdmF0ZSByZWFkb25seSBkb2MgPSBpbmplY3QoRE9DVU1FTlQpO1xuICBwcml2YXRlIHJlYWRvbmx5IHBsYXRmb3JtID0gaW5qZWN0KFBsYXRmb3JtKTtcbiAgcHJpdmF0ZSByZWFkb25seSBkaXJlY3Rpb25hbGl0eSA9IGluamVjdChEaXJlY3Rpb25hbGl0eSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgc3RhdGVLZXkgPSBpbmplY3QoUkVVU0VfVEFCX1NUT1JBR0VfS0VZKTtcbiAgcHJpdmF0ZSByZWFkb25seSBzdGF0ZVNydiA9IGluamVjdChSRVVTRV9UQUJfU1RPUkFHRV9TVEFURSk7XG5cbiAgQFZpZXdDaGlsZCgndGFic2V0JykgcHJpdmF0ZSB0YWJzZXQhOiBOelRhYlNldENvbXBvbmVudDtcbiAgcHJpdmF0ZSBkZXN0cm95JCA9IGluamVjdChEZXN0cm95UmVmKTtcbiAgcHJpdmF0ZSBfa2VlcGluZ1Njcm9sbENvbnRhaW5lcj86IEVsZW1lbnQgfCBudWxsO1xuICBsaXN0OiBSZXVzZUl0ZW1bXSA9IFtdO1xuICBpdGVtPzogUmV1c2VJdGVtO1xuICBwb3MgPSAwO1xuICBkaXI/OiBEaXJlY3Rpb24gPSAnbHRyJztcblxuICAvLyAjcmVnaW9uIGZpZWxkc1xuXG4gIEBJbnB1dCgpIG1vZGU6IFJldXNlVGFiTWF0Y2hNb2RlID0gUmV1c2VUYWJNYXRjaE1vZGUuTWVudTtcbiAgQElucHV0KCkgaTE4bj86IFJldXNlQ29udGV4dEkxOG47XG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBkZWJ1ZyA9IGZhbHNlO1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KSBtYXg/OiBudW1iZXI7XG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pIHRhYk1heFdpZHRoPzogbnVtYmVyO1xuICBASW5wdXQoKSBleGNsdWRlcz86IFJlZ0V4cFtdO1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgYWxsb3dDbG9zZSA9IHRydWU7XG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBrZWVwaW5nU2Nyb2xsID0gZmFsc2U7XG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBzdG9yYWdlU3RhdGUgPSBmYWxzZTtcbiAgQElucHV0KClcbiAgc2V0IGtlZXBpbmdTY3JvbGxDb250YWluZXIodmFsdWU6IHN0cmluZyB8IEVsZW1lbnQpIHtcbiAgICB0aGlzLl9rZWVwaW5nU2Nyb2xsQ29udGFpbmVyID0gdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyA/IHRoaXMuZG9jLnF1ZXJ5U2VsZWN0b3IodmFsdWUpIDogdmFsdWU7XG4gIH1cbiAgQElucHV0KCkgY3VzdG9tQ29udGV4dE1lbnU6IFJldXNlQ3VzdG9tQ29udGV4dE1lbnVbXSA9IFtdO1xuICBASW5wdXQoKSB0YWJCYXJFeHRyYUNvbnRlbnQ/OiBUZW1wbGF0ZVJlZjx2b2lkPjtcbiAgQElucHV0KCkgdGFiQmFyR3V0dGVyPzogbnVtYmVyO1xuICBASW5wdXQoKSB0YWJCYXJTdHlsZTogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSB0YWJUeXBlOiAnbGluZScgfCAnY2FyZCcgPSAnbGluZSc7XG4gIEBJbnB1dCgpIHJvdXRlUGFyYW1NYXRjaE1vZGU6IFJldXNlVGFiUm91dGVQYXJhbU1hdGNoTW9kZSA9ICdzdHJpY3QnO1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgZGlzYWJsZWQgPSBmYWxzZTtcbiAgQElucHV0KCkgdGl0bGVSZW5kZXI/OiBUZW1wbGF0ZVJlZjx7ICRpbXBsaWNpdDogUmV1c2VJdGVtIH0+O1xuICBASW5wdXQoKSBjYW5DbG9zZT86IFJldXNlQ2FuQ2xvc2U7XG4gIEBPdXRwdXQoKSByZWFkb25seSBjaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFJldXNlSXRlbT4oKTtcbiAgQE91dHB1dCgpIHJlYWRvbmx5IGNsb3NlID0gbmV3IEV2ZW50RW1pdHRlcjxSZXVzZUl0ZW0gfCBudWxsPigpO1xuXG4gIC8vICNlbmRyZWdpb25cblxuICBwcml2YXRlIGdlblRpdCh0aXRsZTogUmV1c2VUaXRsZSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRpdGxlLmkxOG4gPyB0aGlzLmkxOG5TcnYuZmFueWkodGl0bGUuaTE4bikgOiB0aXRsZS50ZXh0ITtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IGN1clVybCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnNydi5nZXRVcmwodGhpcy5yb3V0ZS5zbmFwc2hvdCk7XG4gIH1cblxuICBwcml2YXRlIGdlbkN1ckl0ZW0oKTogUmV1c2VJdGVtIHtcbiAgICBjb25zdCB1cmwgPSB0aGlzLmN1clVybDtcbiAgICBjb25zdCBzbmFwc2hvdFRydWUgPSB0aGlzLnNydi5nZXRUcnV0aFJvdXRlKHRoaXMucm91dGUuc25hcHNob3QpO1xuICAgIHJldHVybiB7XG4gICAgICB1cmwsXG4gICAgICB0aXRsZTogdGhpcy5nZW5UaXQodGhpcy5zcnYuZ2V0VGl0bGUodXJsLCBzbmFwc2hvdFRydWUpKSxcbiAgICAgIGNsb3NhYmxlOiB0aGlzLmFsbG93Q2xvc2UgJiYgdGhpcy5zcnYuY291bnQgPiAwICYmIHRoaXMuc3J2LmdldENsb3NhYmxlKHVybCwgc25hcHNob3RUcnVlKSxcbiAgICAgIGFjdGl2ZTogZmFsc2UsXG4gICAgICBsYXN0OiBmYWxzZSxcbiAgICAgIGluZGV4OiAwXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgZ2VuTGlzdChub3RpZnk6IFJldXNlVGFiTm90aWZ5IHwgbnVsbCk6IHZvaWQge1xuICAgIGNvbnN0IGxzID0gdGhpcy5zcnYuaXRlbXMubWFwKFxuICAgICAgKGl0ZW06IFJldXNlVGFiQ2FjaGVkLCBpbmRleDogbnVtYmVyKSA9PlxuICAgICAgICAoe1xuICAgICAgICAgIHVybDogaXRlbS51cmwsXG4gICAgICAgICAgdGl0bGU6IHRoaXMuZ2VuVGl0KGl0ZW0udGl0bGUpLFxuICAgICAgICAgIGNsb3NhYmxlOiB0aGlzLmFsbG93Q2xvc2UgJiYgdGhpcy5zcnYuY291bnQgPiAwICYmIHRoaXMuc3J2LmdldENsb3NhYmxlKGl0ZW0udXJsLCBpdGVtLl9zbmFwc2hvdCksXG4gICAgICAgICAgcG9zaXRpb246IGl0ZW0ucG9zaXRpb24sXG4gICAgICAgICAgaW5kZXgsXG4gICAgICAgICAgYWN0aXZlOiBmYWxzZSxcbiAgICAgICAgICBsYXN0OiBmYWxzZVxuICAgICAgICB9KSBhcyBSZXVzZUl0ZW1cbiAgICApO1xuXG4gICAgY29uc3QgdXJsID0gdGhpcy5jdXJVcmw7XG4gICAgbGV0IGFkZEN1cnJlbnQgPSBscy5maW5kSW5kZXgodyA9PiB3LnVybCA9PT0gdXJsKSA9PT0gLTE7XG4gICAgaWYgKG5vdGlmeSAmJiBub3RpZnkuYWN0aXZlID09PSAnY2xvc2UnICYmIG5vdGlmeS51cmwgPT09IHVybCkge1xuICAgICAgYWRkQ3VycmVudCA9IGZhbHNlO1xuICAgICAgbGV0IHRvUG9zID0gMDtcbiAgICAgIGNvbnN0IGN1ckl0ZW0gPSB0aGlzLmxpc3QuZmluZCh3ID0+IHcudXJsID09PSB1cmwpITtcbiAgICAgIGlmIChjdXJJdGVtLmluZGV4ID09PSBscy5sZW5ndGgpIHtcbiAgICAgICAgLy8gV2hlbiBjbG9zZWQgaXMgbGFzdFxuICAgICAgICB0b1BvcyA9IGxzLmxlbmd0aCAtIDE7XG4gICAgICB9IGVsc2UgaWYgKGN1ckl0ZW0uaW5kZXggPCBscy5sZW5ndGgpIHtcbiAgICAgICAgLy8gU2hvdWxkIGJlIGFjdGl2ZWQgbmV4dCB0YWIgd2hlbiBjbG9zZWQgaXMgbWlkZGxlXG4gICAgICAgIHRvUG9zID0gTWF0aC5tYXgoMCwgY3VySXRlbS5pbmRleCk7XG4gICAgICB9XG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKGxzW3RvUG9zXS51cmwpO1xuICAgIH1cblxuICAgIGlmIChhZGRDdXJyZW50KSB7XG4gICAgICBjb25zdCBhZGRQb3MgPSB0aGlzLnBvcyArIDE7XG4gICAgICBscy5zcGxpY2UoYWRkUG9zLCAwLCB0aGlzLmdlbkN1ckl0ZW0oKSk7XG4gICAgICAvLyBBdHRhY2ggdG8gY2FjaGVcbiAgICAgIHRoaXMuc3J2LnNhdmVDYWNoZSh0aGlzLnJvdXRlLnNuYXBzaG90LCBudWxsLCBhZGRQb3MpO1xuICAgIH1cblxuICAgIGxzLmZvckVhY2goKGl0ZW0sIGluZGV4KSA9PiAoaXRlbS5pbmRleCA9IGluZGV4KSk7XG4gICAgaWYgKGxzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgbHNbMF0uY2xvc2FibGUgPSBmYWxzZTtcbiAgICB9XG4gICAgdGhpcy5saXN0ID0gbHM7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIHRoaXMudXBkYXRlUG9zKCk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVRpdGxlKHJlczogUmV1c2VUYWJOb3RpZnkpOiB2b2lkIHtcbiAgICBjb25zdCBpdGVtID0gdGhpcy5saXN0LmZpbmQodyA9PiB3LnVybCA9PT0gcmVzIS51cmwpO1xuICAgIGlmICghaXRlbSkgcmV0dXJuO1xuICAgIGl0ZW0udGl0bGUgPSB0aGlzLmdlblRpdChyZXMhLnRpdGxlISk7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgcHJpdmF0ZSByZWZyZXNoKGl0ZW06IFJldXNlSXRlbSk6IHZvaWQge1xuICAgIHRoaXMuc3J2LnJ1bkhvb2soJ19vblJldXNlSW5pdCcsIHRoaXMucG9zID09PSBpdGVtLmluZGV4ID8gdGhpcy5zcnYuY29tcG9uZW50UmVmIDogaXRlbS5pbmRleCwgJ3JlZnJlc2gnKTtcbiAgfVxuXG4gIHByaXZhdGUgc2F2ZVN0YXRlKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5zcnYuaW5pdGVkIHx8ICF0aGlzLnN0b3JhZ2VTdGF0ZSkgcmV0dXJuO1xuXG4gICAgdGhpcy5zdGF0ZVNydj8udXBkYXRlKHRoaXMuc3RhdGVLZXkhLCB0aGlzLmxpc3QpO1xuICB9XG5cbiAgLy8gI3JlZ2lvbiBVSVxuXG4gIGNvbnRleHRNZW51Q2hhbmdlKHJlczogUmV1c2VDb250ZXh0Q2xvc2VFdmVudCk6IHZvaWQge1xuICAgIGxldCBmbjogKCgpID0+IHZvaWQpIHwgbnVsbCA9IG51bGw7XG4gICAgc3dpdGNoIChyZXMudHlwZSkge1xuICAgICAgY2FzZSAncmVmcmVzaCc6XG4gICAgICAgIHRoaXMucmVmcmVzaChyZXMuaXRlbSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnY2xvc2UnOlxuICAgICAgICB0aGlzLl9jbG9zZShudWxsLCByZXMuaXRlbS5pbmRleCwgcmVzLmluY2x1ZGVOb25DbG9zZWFibGUpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2Nsb3NlUmlnaHQnOlxuICAgICAgICBmbiA9ICgpID0+IHtcbiAgICAgICAgICB0aGlzLnNydi5jbG9zZVJpZ2h0KHJlcy5pdGVtLnVybCwgcmVzLmluY2x1ZGVOb25DbG9zZWFibGUpO1xuICAgICAgICAgIHRoaXMuY2xvc2UuZW1pdChudWxsKTtcbiAgICAgICAgfTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdjbG9zZU90aGVyJzpcbiAgICAgICAgZm4gPSAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5zcnYuY2xlYXIocmVzLmluY2x1ZGVOb25DbG9zZWFibGUpO1xuICAgICAgICAgIHRoaXMuY2xvc2UuZW1pdChudWxsKTtcbiAgICAgICAgfTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgIGlmICghZm4pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKCFyZXMuaXRlbS5hY3RpdmUgJiYgcmVzLml0ZW0uaW5kZXggPD0gdGhpcy5saXN0LmZpbmQodyA9PiB3LmFjdGl2ZSkhLmluZGV4KSB7XG4gICAgICB0aGlzLl90byhyZXMuaXRlbS5pbmRleCwgZm4pO1xuICAgIH0gZWxzZSB7XG4gICAgICBmbigpO1xuICAgIH1cbiAgfVxuXG4gIF90byhpbmRleDogbnVtYmVyLCBjYj86ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICBpbmRleCA9IE1hdGgubWF4KDAsIE1hdGgubWluKGluZGV4LCB0aGlzLmxpc3QubGVuZ3RoIC0gMSkpO1xuICAgIGNvbnN0IGl0ZW0gPSB0aGlzLmxpc3RbaW5kZXhdO1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoaXRlbS51cmwpLnRoZW4ocmVzID0+IHtcbiAgICAgIGlmICghcmVzKSByZXR1cm47XG4gICAgICB0aGlzLml0ZW0gPSBpdGVtO1xuICAgICAgdGhpcy5jaGFuZ2UuZW1pdChpdGVtKTtcbiAgICAgIGNiPy4oKTtcbiAgICB9KTtcbiAgfVxuXG4gIF9jbG9zZShlOiBFdmVudCB8IG51bGwsIGlkeDogbnVtYmVyLCBpbmNsdWRlTm9uQ2xvc2VhYmxlOiBib29sZWFuKTogYm9vbGVhbiB7XG4gICAgaWYgKGUgIT0gbnVsbCkge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9XG4gICAgY29uc3QgaXRlbSA9IHRoaXMubGlzdFtpZHhdO1xuICAgICh0aGlzLmNhbkNsb3NlID8gdGhpcy5jYW5DbG9zZSh7IGl0ZW0sIGluY2x1ZGVOb25DbG9zZWFibGUgfSkgOiBvZih0cnVlKSkucGlwZShmaWx0ZXIodiA9PiB2KSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuc3J2LmNsb3NlKGl0ZW0udXJsLCBpbmNsdWRlTm9uQ2xvc2VhYmxlKTtcbiAgICAgIHRoaXMuY2xvc2UuZW1pdChpdGVtKTtcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9KTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICog6K6+572u5r+A5rS76Lev55Sx55qE5a6e5L6L77yM5ZyoIGBzcmMvYXBwL2xheW91dC9iYXNpYy9iYXNpYy5jb21wb25lbnQudHNgIOS/ruaUue+8mlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiA8cmV1c2UtdGFiICNyZXVzZVRhYj48L3JldXNlLXRhYj5cbiAgICogPHJvdXRlci1vdXRsZXQgKGFjdGl2YXRlKT1cInJldXNlVGFiLmFjdGl2YXRlKCRldmVudClcIiAoYXR0YWNoKT1cInJldXNlVGFiLmFjdGl2YXRlKCRldmVudClcIj48L3JvdXRlci1vdXRsZXQ+XG4gICAqL1xuICBhY3RpdmF0ZShpbnN0YW5jZTogTnpTYWZlQW55KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3J2ID09IG51bGwpIHJldHVybjtcbiAgICB0aGlzLnNydi5jb21wb25lbnRSZWYgPSB7IGluc3RhbmNlIH07XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVBvcygpOiB2b2lkIHtcbiAgICBjb25zdCB1cmwgPSB0aGlzLnNydi5nZXRVcmwodGhpcy5yb3V0ZS5zbmFwc2hvdCk7XG4gICAgY29uc3QgbHMgPSB0aGlzLmxpc3QuZmlsdGVyKHcgPT4gdy51cmwgPT09IHVybCB8fCAhdGhpcy5zcnYuaXNFeGNsdWRlKHcudXJsKSk7XG4gICAgaWYgKGxzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGxhc3QgPSBsc1tscy5sZW5ndGggLSAxXTtcbiAgICBjb25zdCBpdGVtID0gbHMuZmluZCh3ID0+IHcudXJsID09PSB1cmwpO1xuICAgIGxhc3QubGFzdCA9IHRydWU7XG4gICAgY29uc3QgcG9zID0gaXRlbSA9PSBudWxsID8gbGFzdC5pbmRleCA6IGl0ZW0uaW5kZXg7XG4gICAgbHMuZm9yRWFjaCgoaSwgaWR4KSA9PiAoaS5hY3RpdmUgPSBwb3MgPT09IGlkeCkpO1xuICAgIHRoaXMucG9zID0gcG9zO1xuICAgIC8vIFRPRE86IOebruWJjeaXoOazleefpemBk+S4uuS7gOS5iCBgcG9zYCDml6Dms5XpgJrov4cgYG56U2VsZWN0ZWRJbmRleGAg55Sf5pWI77yM5Zug5q2k5by65Yi25L2/55So57uE5Lu25a6e5L6L55qE5pa55byP5p2l5L+u5pS577yM6L+Z56eN5pa55byP5piv5a6J5YWo55qEXG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL25nLWFsYWluL25nLWFsYWluL2lzc3Vlcy8xNzM2XG4gICAgdGhpcy50YWJzZXQubnpTZWxlY3RlZEluZGV4ID0gcG9zO1xuICAgIHRoaXMubGlzdCA9IGxzO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB0aGlzLnNhdmVTdGF0ZSgpO1xuICB9XG5cbiAgLy8gI2VuZHJlZ2lvblxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZGlyID0gdGhpcy5kaXJlY3Rpb25hbGl0eS52YWx1ZTtcbiAgICB0aGlzLmRpcmVjdGlvbmFsaXR5LmNoYW5nZS5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKGRpcmVjdGlvbiA9PiB7XG4gICAgICB0aGlzLmRpciA9IGRpcmVjdGlvbjtcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9KTtcblxuICAgIGlmICghdGhpcy5wbGF0Zm9ybS5pc0Jyb3dzZXIgfHwgdGhpcy5zcnYgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc3J2LmNoYW5nZS5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICBzd2l0Y2ggKHJlcz8uYWN0aXZlKSB7XG4gICAgICAgIGNhc2UgJ3RpdGxlJzpcbiAgICAgICAgICB0aGlzLnVwZGF0ZVRpdGxlKHJlcyk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjYXNlICdvdmVycmlkZSc6XG4gICAgICAgICAgaWYgKHJlcz8ubGlzdD8ubGVuZ3RoID09PSB0aGlzLmxpc3QubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVBvcygpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIHRoaXMuZ2VuTGlzdChyZXMpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5pMThuU3J2LmNoYW5nZVxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcigoKSA9PiB0aGlzLnNydi5pbml0ZWQpLFxuICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95JCksXG4gICAgICAgIGRlYm91bmNlVGltZSgxMDApXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuZ2VuTGlzdCh7IGFjdGl2ZTogJ3RpdGxlJyB9KSk7XG5cbiAgICB0aGlzLnNydi5pbml0KCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiB7IFtQIGluIGtleW9mIHRoaXNdPzogU2ltcGxlQ2hhbmdlIH0gJiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnBsYXRmb3JtLmlzQnJvd3NlciB8fCB0aGlzLnNydiA9PSBudWxsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZXMubWF4KSB0aGlzLnNydi5tYXggPSB0aGlzLm1heCE7XG4gICAgaWYgKGNoYW5nZXMuZXhjbHVkZXMpIHRoaXMuc3J2LmV4Y2x1ZGVzID0gdGhpcy5leGNsdWRlcyE7XG4gICAgaWYgKGNoYW5nZXMubW9kZSkgdGhpcy5zcnYubW9kZSA9IHRoaXMubW9kZTtcbiAgICBpZiAoY2hhbmdlcy5yb3V0ZVBhcmFtTWF0Y2hNb2RlKSB0aGlzLnNydi5yb3V0ZVBhcmFtTWF0Y2hNb2RlID0gdGhpcy5yb3V0ZVBhcmFtTWF0Y2hNb2RlO1xuICAgIGlmIChjaGFuZ2VzLmtlZXBpbmdTY3JvbGwpIHtcbiAgICAgIHRoaXMuc3J2LmtlZXBpbmdTY3JvbGwgPSB0aGlzLmtlZXBpbmdTY3JvbGw7XG4gICAgICB0aGlzLnNydi5rZWVwaW5nU2Nyb2xsQ29udGFpbmVyID0gdGhpcy5fa2VlcGluZ1Njcm9sbENvbnRhaW5lcjtcbiAgICB9XG4gICAgaWYgKGNoYW5nZXMuc3RvcmFnZVN0YXRlKSB0aGlzLnNydi5zdG9yYWdlU3RhdGUgPSB0aGlzLnN0b3JhZ2VTdGF0ZTtcblxuICAgIHRoaXMuc3J2LmRlYnVnID0gdGhpcy5kZWJ1ZztcblxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxufVxuIiwiPG56LXRhYnNldFxuICAjdGFic2V0XG4gIFtuelNlbGVjdGVkSW5kZXhdPVwicG9zXCJcbiAgW256QW5pbWF0ZWRdPVwiZmFsc2VcIlxuICBbbnpUeXBlXT1cInRhYlR5cGVcIlxuICBbbnpUYWJCYXJFeHRyYUNvbnRlbnRdPVwidGFiQmFyRXh0cmFDb250ZW50XCJcbiAgW256VGFiQmFyR3V0dGVyXT1cInRhYkJhckd1dHRlclwiXG4gIFtuelRhYkJhclN0eWxlXT1cInRhYkJhclN0eWxlXCJcbj5cbiAgQGZvciAoaSBvZiBsaXN0OyB0cmFjayAkaW5kZXgpIHtcbiAgICA8bnotdGFiIFtuelRpdGxlXT1cInRpdGxlVGVtcGxhdGVcIiAobnpDbGljayk9XCJfdG8oJGluZGV4KVwiPlxuICAgICAgPG5nLXRlbXBsYXRlICN0aXRsZVRlbXBsYXRlPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgW3JldXNlLXRhYi1jb250ZXh0LW1lbnVdPVwiaVwiXG4gICAgICAgICAgW2N1c3RvbUNvbnRleHRNZW51XT1cImN1c3RvbUNvbnRleHRNZW51XCJcbiAgICAgICAgICBjbGFzcz1cInJldXNlLXRhYl9fbmFtZVwiXG4gICAgICAgICAgW2F0dHIudGl0bGVdPVwiaS50aXRsZVwiXG4gICAgICAgID5cbiAgICAgICAgICA8c3BhbiBbY2xhc3MucmV1c2UtdGFiX19uYW1lLXdpZHRoXT1cInRhYk1heFdpZHRoXCIgW3N0eWxlLm1heC13aWR0aC5weF09XCJ0YWJNYXhXaWR0aFwiPlxuICAgICAgICAgICAgQGlmICh0aXRsZVJlbmRlcikge1xuICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwidGl0bGVSZW5kZXJcIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGkgfVwiIC8+XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAge3sgaS50aXRsZSB9fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIEBpZiAoaS5jbG9zYWJsZSkge1xuICAgICAgICAgIDxpIG56LWljb24gbnpUeXBlPVwiY2xvc2VcIiBjbGFzcz1cInJldXNlLXRhYl9fb3BcIiAoY2xpY2spPVwiX2Nsb3NlKCRldmVudCwgJGluZGV4LCBmYWxzZSlcIj48L2k+XG4gICAgICAgIH1cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9uei10YWI+XG4gIH1cbjwvbnotdGFic2V0PlxuPHJldXNlLXRhYi1jb250ZXh0IFtpMThuXT1cImkxOG5cIiAoY2hhbmdlKT1cImNvbnRleHRNZW51Q2hhbmdlKCRldmVudClcIiAvPlxuIl19
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 复用匹配模式
|
|
3
|
-
*/
|
|
4
|
-
export var ReuseTabMatchMode;
|
|
5
|
-
(function (ReuseTabMatchMode) {
|
|
6
|
-
/**
|
|
7
|
-
* (推荐)按菜单 `Menu` 配置
|
|
8
|
-
*
|
|
9
|
-
* 可复用:
|
|
10
|
-
* - `{ text:'Dashboard' }`
|
|
11
|
-
* - `{ text:'Dashboard', reuse: true }`
|
|
12
|
-
*
|
|
13
|
-
* 不可复用:
|
|
14
|
-
* - `{ text:'Dashboard', reuse: false }`
|
|
15
|
-
*/
|
|
16
|
-
ReuseTabMatchMode[ReuseTabMatchMode["Menu"] = 0] = "Menu";
|
|
17
|
-
/**
|
|
18
|
-
* 按菜单 `Menu` 强制配置
|
|
19
|
-
*
|
|
20
|
-
* 可复用:
|
|
21
|
-
* - `{ text:'Dashboard', reuse: true }`
|
|
22
|
-
*
|
|
23
|
-
* 不可复用:
|
|
24
|
-
* - `{ text:'Dashboard' }`
|
|
25
|
-
* - `{ text:'Dashboard', reuse: false }`
|
|
26
|
-
*/
|
|
27
|
-
ReuseTabMatchMode[ReuseTabMatchMode["MenuForce"] = 1] = "MenuForce";
|
|
28
|
-
/**
|
|
29
|
-
* 对所有路由有效,可以配合 `excludes` 过滤无须复用路由
|
|
30
|
-
*/
|
|
31
|
-
ReuseTabMatchMode[ReuseTabMatchMode["URL"] = 2] = "URL";
|
|
32
|
-
})(ReuseTabMatchMode || (ReuseTabMatchMode = {}));
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV1c2UtdGFiLmludGVyZmFjZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hYmMvcmV1c2UtdGFiL3JldXNlLXRhYi5pbnRlcmZhY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BOztHQUVHO0FBQ0gsTUFBTSxDQUFOLElBQVksaUJBMkJYO0FBM0JELFdBQVksaUJBQWlCO0lBQzNCOzs7Ozs7Ozs7T0FTRztJQUNILHlEQUFJLENBQUE7SUFDSjs7Ozs7Ozs7O09BU0c7SUFDSCxtRUFBUyxDQUFBO0lBQ1Q7O09BRUc7SUFDSCx1REFBRyxDQUFBO0FBQ0wsQ0FBQyxFQTNCVyxpQkFBaUIsS0FBakIsaUJBQWlCLFFBMkI1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjdGl2YXRlZFJvdXRlU25hcHNob3QgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgdHlwZSB7IE56U2FmZUFueSB9IGZyb20gJ25nLXpvcnJvLWFudGQvY29yZS90eXBlcyc7XG5cbmltcG9ydCB7IFJldXNlVGFiQ29udGV4dENvbXBvbmVudCB9IGZyb20gJy4vcmV1c2UtdGFiLWNvbnRleHQuY29tcG9uZW50JztcblxuLyoqXG4gKiDlpI3nlKjljLnphY3mqKHlvI9cbiAqL1xuZXhwb3J0IGVudW0gUmV1c2VUYWJNYXRjaE1vZGUge1xuICAvKipcbiAgICog77yI5o6o6I2Q77yJ5oyJ6I+c5Y2VIGBNZW51YCDphY3nva5cbiAgICpcbiAgICog5Y+v5aSN55So77yaXG4gICAqIC0gYHsgdGV4dDonRGFzaGJvYXJkJyB9YFxuICAgKiAtIGB7IHRleHQ6J0Rhc2hib2FyZCcsIHJldXNlOiB0cnVlIH1gXG4gICAqXG4gICAqIOS4jeWPr+WkjeeUqO+8mlxuICAgKiAtIGB7IHRleHQ6J0Rhc2hib2FyZCcsIHJldXNlOiBmYWxzZSB9YFxuICAgKi9cbiAgTWVudSxcbiAgLyoqXG4gICAqIOaMieiPnOWNlSBgTWVudWAg5by65Yi26YWN572uXG4gICAqXG4gICAqIOWPr+WkjeeUqO+8mlxuICAgKiAtIGB7IHRleHQ6J0Rhc2hib2FyZCcsIHJldXNlOiB0cnVlIH1gXG4gICAqXG4gICAqIOS4jeWPr+WkjeeUqO+8mlxuICAgKiAtIGB7IHRleHQ6J0Rhc2hib2FyZCcgfWBcbiAgICogLSBgeyB0ZXh0OidEYXNoYm9hcmQnLCByZXVzZTogZmFsc2UgfWBcbiAgICovXG4gIE1lbnVGb3JjZSxcbiAgLyoqXG4gICAqIOWvueaJgOaciei3r+eUseacieaViO+8jOWPr+S7pemFjeWQiCBgZXhjbHVkZXNgIOi/h+a7pOaXoOmhu+WkjeeUqOi3r+eUsVxuICAgKi9cbiAgVVJMXG59XG5cbmV4cG9ydCB0eXBlIFJldXNlVGFiUm91dGVQYXJhbU1hdGNoTW9kZSA9ICdzdHJpY3QnIHwgJ2xvb3NlJztcblxuZXhwb3J0IGludGVyZmFjZSBSZXVzZVRpdGxlIHtcbiAgdGV4dD86IHN0cmluZztcbiAgaTE4bj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZXVzZVRhYkNhY2hlZCB7XG4gIHRpdGxlOiBSZXVzZVRpdGxlO1xuXG4gIHVybDogc3RyaW5nO1xuXG4gIC8qKiDmmK/lkKblhYHorrjlhbPpl63vvIzpu5jorqTvvJpgdHJ1ZWAgKi9cbiAgY2xvc2FibGU/OiBib29sZWFuO1xuXG4gIC8qKiDlvZPliY3mu5rliqjmnaHkvY3nva4gKi9cbiAgcG9zaXRpb24/OiBbbnVtYmVyLCBudW1iZXJdIHwgbnVsbDtcblxuICBfc25hcHNob3Q/OiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90O1xuXG4gIF9oYW5kbGU/OiBSZXVzZUNvbXBvbmVudEhhbmRsZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZXVzZVRhYk5vdGlmeSB7XG4gIC8qKiDkuovku7bnsbvlnosgKi9cbiAgYWN0aXZlOlxuICAgIHwgJ2FkZCdcbiAgICB8ICdvdmVycmlkZSdcbiAgICB8ICd0aXRsZSdcbiAgICB8ICdjbGVhcidcbiAgICB8ICdjbG9zYWJsZSdcbiAgICB8ICdjbG9zZSdcbiAgICB8ICdjbG9zZVJpZ2h0J1xuICAgIHwgJ21vdmUnXG4gICAgfCAncmVmcmVzaCdcbiAgICB8ICdsb2FkU3RhdGUnO1xuICB1cmw/OiBzdHJpbmc7XG4gIHRpdGxlPzogUmV1c2VUaXRsZTtcbiAgaXRlbT86IFJldXNlVGFiQ2FjaGVkO1xuICBsaXN0PzogUmV1c2VUYWJDYWNoZWRbXTtcbiAgW2tleTogc3RyaW5nXTogTnpTYWZlQW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJldXNlSXRlbSB7XG4gIHVybDogc3RyaW5nO1xuICB0aXRsZTogc3RyaW5nO1xuICBjbG9zYWJsZTogYm9vbGVhbjtcbiAgaW5kZXg6IG51bWJlcjtcbiAgYWN0aXZlOiBib29sZWFuO1xuICBsYXN0OiBib29sZWFuO1xuICAvKiog5b2T5YmN5rua5Yqo5p2h5L2N572uICovXG4gIHBvc2l0aW9uPzogW251bWJlciwgbnVtYmVyXSB8IG51bGw7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmV1c2VDb250ZXh0RXZlbnQge1xuICBldmVudDogTW91c2VFdmVudDtcbiAgaXRlbTogUmV1c2VJdGVtO1xuICBjb21wPzogUmV1c2VUYWJDb250ZXh0Q29tcG9uZW50O1xuICBjdXN0b21Db250ZXh0TWVudT86IFJldXNlQ3VzdG9tQ29udGV4dE1lbnVbXTtcbn1cblxuZXhwb3J0IHR5cGUgQ2xvc2VUeXBlID0gJ2Nsb3NlJyB8ICdjbG9zZU90aGVyJyB8ICdjbG9zZVJpZ2h0JyB8ICdjdXN0b20nIHwgJ3JlZnJlc2gnIHwgbnVsbDtcblxuZXhwb3J0IGludGVyZmFjZSBSZXVzZUNvbnRleHRDbG9zZUV2ZW50IHtcbiAgdHlwZTogQ2xvc2VUeXBlO1xuICBpdGVtOiBSZXVzZUl0ZW07XG4gIGluY2x1ZGVOb25DbG9zZWFibGU6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmV1c2VDb250ZXh0STE4biB7XG4gIGNsb3NlPzogc3RyaW5nO1xuICBjbG9zZU90aGVyPzogc3RyaW5nO1xuICBjbG9zZVJpZ2h0Pzogc3RyaW5nO1xuICByZWZyZXNoPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJldXNlQ3VzdG9tQ29udGV4dE1lbnUge1xuICBpZDogc3RyaW5nO1xuICB0aXRsZTogc3RyaW5nO1xuICBmbjogKGl0ZW06IFJldXNlSXRlbSwgbWVudTogUmV1c2VDdXN0b21Db250ZXh0TWVudSkgPT4gdm9pZDtcbiAgZGlzYWJsZWQ/OiAoaXRlbTogUmV1c2VJdGVtKSA9PiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJldXNlQ29tcG9uZW50SGFuZGxlIHtcbiAgY29tcG9uZW50UmVmOiBSZXVzZUNvbXBvbmVudFJlZjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZXVzZUNvbXBvbmVudFJlZiB7XG4gIGluc3RhbmNlOiBSZXVzZUNvbXBvbmVudEluc3RhbmNlO1xufVxuXG5leHBvcnQgdHlwZSBSZXVzZUhvb2tUeXBlcyA9ICdfb25SZXVzZUluaXQnIHwgJ19vblJldXNlRGVzdHJveSc7XG5cbmV4cG9ydCB0eXBlIFJldXNlSG9va09uUmV1c2VJbml0VHlwZSA9ICdpbml0JyB8ICdyZWZyZXNoJztcblxuZXhwb3J0IGludGVyZmFjZSBSZXVzZUNvbXBvbmVudEluc3RhbmNlIHtcbiAgX29uUmV1c2VJbml0OiAodHlwZTogUmV1c2VIb29rT25SZXVzZUluaXRUeXBlKSA9PiB2b2lkO1xuICBfb25SZXVzZURlc3Ryb3k6ICgpID0+IHZvaWQ7XG4gIGRlc3Ryb3k6ICgpID0+IHZvaWQ7XG59XG5cbmV4cG9ydCB0eXBlIFJldXNlQ2FuQ2xvc2UgPSAob3B0aW9uczogeyBpdGVtOiBSZXVzZUl0ZW07IGluY2x1ZGVOb25DbG9zZWFibGU6IGJvb2xlYW4gfSkgPT4gT2JzZXJ2YWJsZTxib29sZWFuPjtcbiJdfQ==
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
export * from './public_api';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV1c2UtdGFiLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYWJjL3JldXNlLXRhYi9yZXVzZS10YWIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWNfYXBpJztcbiJdfQ==
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
import { OverlayModule } from '@angular/cdk/overlay';
|
|
2
|
-
import { CommonModule } from '@angular/common';
|
|
3
|
-
import { NgModule } from '@angular/core';
|
|
4
|
-
import { RouterModule } from '@angular/router';
|
|
5
|
-
import { DelonLocaleModule } from '@delon/theme';
|
|
6
|
-
import { NzIconModule } from 'ng-zorro-antd/icon';
|
|
7
|
-
import { NzMenuModule } from 'ng-zorro-antd/menu';
|
|
8
|
-
import { NzTabsModule } from 'ng-zorro-antd/tabs';
|
|
9
|
-
import { ReuseTabContextMenuComponent } from './reuse-tab-context-menu.component';
|
|
10
|
-
import { ReuseTabContextComponent } from './reuse-tab-context.component';
|
|
11
|
-
import { ReuseTabContextDirective } from './reuse-tab-context.directive';
|
|
12
|
-
import { REUSE_TAB_CACHED_MANAGER, ReuseTabCachedManagerFactory } from './reuse-tab.cache';
|
|
13
|
-
import { ReuseTabComponent } from './reuse-tab.component';
|
|
14
|
-
import { ReuseTabLocalStorageState, REUSE_TAB_STORAGE_KEY, REUSE_TAB_STORAGE_STATE } from './reuse-tab.state';
|
|
15
|
-
import * as i0 from "@angular/core";
|
|
16
|
-
const COMPONENTS = [ReuseTabComponent];
|
|
17
|
-
const NOEXPORTS = [ReuseTabContextMenuComponent, ReuseTabContextComponent, ReuseTabContextDirective];
|
|
18
|
-
export class ReuseTabModule {
|
|
19
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ReuseTabModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
20
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.7", ngImport: i0, type: ReuseTabModule, imports: [CommonModule,
|
|
21
|
-
RouterModule,
|
|
22
|
-
DelonLocaleModule,
|
|
23
|
-
NzMenuModule,
|
|
24
|
-
NzTabsModule,
|
|
25
|
-
NzIconModule,
|
|
26
|
-
OverlayModule, ReuseTabComponent, ReuseTabContextMenuComponent, ReuseTabContextComponent, ReuseTabContextDirective], exports: [ReuseTabComponent] }); }
|
|
27
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ReuseTabModule, providers: [
|
|
28
|
-
{
|
|
29
|
-
provide: REUSE_TAB_STORAGE_KEY,
|
|
30
|
-
useValue: '_reuse-tab-state'
|
|
31
|
-
},
|
|
32
|
-
{
|
|
33
|
-
provide: REUSE_TAB_STORAGE_STATE,
|
|
34
|
-
useFactory: () => new ReuseTabLocalStorageState()
|
|
35
|
-
},
|
|
36
|
-
{
|
|
37
|
-
provide: REUSE_TAB_CACHED_MANAGER,
|
|
38
|
-
useFactory: () => new ReuseTabCachedManagerFactory()
|
|
39
|
-
}
|
|
40
|
-
], imports: [CommonModule,
|
|
41
|
-
RouterModule,
|
|
42
|
-
DelonLocaleModule,
|
|
43
|
-
NzMenuModule,
|
|
44
|
-
NzTabsModule,
|
|
45
|
-
NzIconModule,
|
|
46
|
-
OverlayModule, COMPONENTS, ReuseTabContextMenuComponent] }); }
|
|
47
|
-
}
|
|
48
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ReuseTabModule, decorators: [{
|
|
49
|
-
type: NgModule,
|
|
50
|
-
args: [{
|
|
51
|
-
imports: [
|
|
52
|
-
CommonModule,
|
|
53
|
-
RouterModule,
|
|
54
|
-
DelonLocaleModule,
|
|
55
|
-
NzMenuModule,
|
|
56
|
-
NzTabsModule,
|
|
57
|
-
NzIconModule,
|
|
58
|
-
OverlayModule,
|
|
59
|
-
...COMPONENTS,
|
|
60
|
-
...NOEXPORTS
|
|
61
|
-
],
|
|
62
|
-
providers: [
|
|
63
|
-
{
|
|
64
|
-
provide: REUSE_TAB_STORAGE_KEY,
|
|
65
|
-
useValue: '_reuse-tab-state'
|
|
66
|
-
},
|
|
67
|
-
{
|
|
68
|
-
provide: REUSE_TAB_STORAGE_STATE,
|
|
69
|
-
useFactory: () => new ReuseTabLocalStorageState()
|
|
70
|
-
},
|
|
71
|
-
{
|
|
72
|
-
provide: REUSE_TAB_CACHED_MANAGER,
|
|
73
|
-
useFactory: () => new ReuseTabCachedManagerFactory()
|
|
74
|
-
}
|
|
75
|
-
],
|
|
76
|
-
exports: COMPONENTS
|
|
77
|
-
}]
|
|
78
|
-
}] });
|
|
79
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV1c2UtdGFiLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FiYy9yZXVzZS10YWIvcmV1c2UtdGFiLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDckQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVsRCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNsRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMzRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUscUJBQXFCLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFFOUcsTUFBTSxVQUFVLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0FBQ3ZDLE1BQU0sU0FBUyxHQUFHLENBQUMsNEJBQTRCLEVBQUUsd0JBQXdCLEVBQUUsd0JBQXdCLENBQUMsQ0FBQztBQThCckcsTUFBTSxPQUFPLGNBQWM7OEdBQWQsY0FBYzsrR0FBZCxjQUFjLFlBMUJ2QixZQUFZO1lBQ1osWUFBWTtZQUNaLGlCQUFpQjtZQUNqQixZQUFZO1lBQ1osWUFBWTtZQUNaLFlBQVk7WUFDWixhQUFhLEVBWEcsaUJBQWlCLEVBQ2xCLDRCQUE0QixFQUFFLHdCQUF3QixFQUFFLHdCQUF3QixhQUQvRSxpQkFBaUI7K0dBK0J4QixjQUFjLGFBaEJkO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLHFCQUFxQjtnQkFDOUIsUUFBUSxFQUFFLGtCQUFrQjthQUM3QjtZQUNEO2dCQUNFLE9BQU8sRUFBRSx1QkFBdUI7Z0JBQ2hDLFVBQVUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLHlCQUF5QixFQUFFO2FBQ2xEO1lBQ0Q7Z0JBQ0UsT0FBTyxFQUFFLHdCQUF3QjtnQkFDakMsVUFBVSxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksNEJBQTRCLEVBQUU7YUFDckQ7U0FDRixZQXZCQyxZQUFZO1lBQ1osWUFBWTtZQUNaLGlCQUFpQjtZQUNqQixZQUFZO1lBQ1osWUFBWTtZQUNaLFlBQVk7WUFDWixhQUFhLEVBQ1YsVUFBVSxFQVhFLDRCQUE0Qjs7MkZBOEJsQyxjQUFjO2tCQTVCMUIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixZQUFZO3dCQUNaLGlCQUFpQjt3QkFDakIsWUFBWTt3QkFDWixZQUFZO3dCQUNaLFlBQVk7d0JBQ1osYUFBYTt3QkFDYixHQUFHLFVBQVU7d0JBQ2IsR0FBRyxTQUFTO3FCQUNiO29CQUNELFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUscUJBQXFCOzRCQUM5QixRQUFRLEVBQUUsa0JBQWtCO3lCQUM3Qjt3QkFDRDs0QkFDRSxPQUFPLEVBQUUsdUJBQXVCOzRCQUNoQyxVQUFVLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSx5QkFBeUIsRUFBRTt5QkFDbEQ7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLHdCQUF3Qjs0QkFDakMsVUFBVSxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksNEJBQTRCLEVBQUU7eUJBQ3JEO3FCQUNGO29CQUNELE9BQU8sRUFBRSxVQUFVO2lCQUNwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE92ZXJsYXlNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7IERlbG9uTG9jYWxlTW9kdWxlIH0gZnJvbSAnQGRlbG9uL3RoZW1lJztcbmltcG9ydCB7IE56SWNvbk1vZHVsZSB9IGZyb20gJ25nLXpvcnJvLWFudGQvaWNvbic7XG5pbXBvcnQgeyBOek1lbnVNb2R1bGUgfSBmcm9tICduZy16b3Jyby1hbnRkL21lbnUnO1xuaW1wb3J0IHsgTnpUYWJzTW9kdWxlIH0gZnJvbSAnbmctem9ycm8tYW50ZC90YWJzJztcblxuaW1wb3J0IHsgUmV1c2VUYWJDb250ZXh0TWVudUNvbXBvbmVudCB9IGZyb20gJy4vcmV1c2UtdGFiLWNvbnRleHQtbWVudS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUmV1c2VUYWJDb250ZXh0Q29tcG9uZW50IH0gZnJvbSAnLi9yZXVzZS10YWItY29udGV4dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUmV1c2VUYWJDb250ZXh0RGlyZWN0aXZlIH0gZnJvbSAnLi9yZXVzZS10YWItY29udGV4dC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgUkVVU0VfVEFCX0NBQ0hFRF9NQU5BR0VSLCBSZXVzZVRhYkNhY2hlZE1hbmFnZXJGYWN0b3J5IH0gZnJvbSAnLi9yZXVzZS10YWIuY2FjaGUnO1xuaW1wb3J0IHsgUmV1c2VUYWJDb21wb25lbnQgfSBmcm9tICcuL3JldXNlLXRhYi5jb21wb25lbnQnO1xuaW1wb3J0IHsgUmV1c2VUYWJMb2NhbFN0b3JhZ2VTdGF0ZSwgUkVVU0VfVEFCX1NUT1JBR0VfS0VZLCBSRVVTRV9UQUJfU1RPUkFHRV9TVEFURSB9IGZyb20gJy4vcmV1c2UtdGFiLnN0YXRlJztcblxuY29uc3QgQ09NUE9ORU5UUyA9IFtSZXVzZVRhYkNvbXBvbmVudF07XG5jb25zdCBOT0VYUE9SVFMgPSBbUmV1c2VUYWJDb250ZXh0TWVudUNvbXBvbmVudCwgUmV1c2VUYWJDb250ZXh0Q29tcG9uZW50LCBSZXVzZVRhYkNvbnRleHREaXJlY3RpdmVdO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFJvdXRlck1vZHVsZSxcbiAgICBEZWxvbkxvY2FsZU1vZHVsZSxcbiAgICBOek1lbnVNb2R1bGUsXG4gICAgTnpUYWJzTW9kdWxlLFxuICAgIE56SWNvbk1vZHVsZSxcbiAgICBPdmVybGF5TW9kdWxlLFxuICAgIC4uLkNPTVBPTkVOVFMsXG4gICAgLi4uTk9FWFBPUlRTXG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IFJFVVNFX1RBQl9TVE9SQUdFX0tFWSxcbiAgICAgIHVzZVZhbHVlOiAnX3JldXNlLXRhYi1zdGF0ZSdcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IFJFVVNFX1RBQl9TVE9SQUdFX1NUQVRFLFxuICAgICAgdXNlRmFjdG9yeTogKCkgPT4gbmV3IFJldXNlVGFiTG9jYWxTdG9yYWdlU3RhdGUoKVxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogUkVVU0VfVEFCX0NBQ0hFRF9NQU5BR0VSLFxuICAgICAgdXNlRmFjdG9yeTogKCkgPT4gbmV3IFJldXNlVGFiQ2FjaGVkTWFuYWdlckZhY3RvcnkoKVxuICAgIH1cbiAgXSxcbiAgZXhwb3J0czogQ09NUE9ORU5UU1xufSlcbmV4cG9ydCBjbGFzcyBSZXVzZVRhYk1vZHVsZSB7fVxuIl19
|