raise-common-lib-new 0.0.15 → 0.0.20
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/esm2022/lib/layout/grid-box/index.component.mjs +42 -0
- package/esm2022/lib/layout/main-container/index.component.mjs +7 -3
- package/esm2022/lib/layout/multi-tab/index.component.mjs +162 -0
- package/esm2022/lib/layout/page-list/index.component.mjs +43 -0
- package/esm2022/lib/layout/page-tab/index.component.mjs +37 -0
- package/esm2022/lib/layout/rs-aside/index.component.mjs +5 -5
- package/esm2022/lib/layout/rs-header/index.component.mjs +3 -3
- package/esm2022/lib/raise-common-lib.module.mjs +44 -14
- package/esm2022/lib/service/common-function.service.mjs +39 -1
- package/esm2022/lib/service/icon-loader.service.mjs +12 -9
- package/esm2022/lib/service/keep-alive.service.mjs +44 -0
- package/esm2022/public-api.mjs +6 -2
- package/fesm2022/raise-common-lib-new.mjs +394 -53
- package/fesm2022/raise-common-lib-new.mjs.map +1 -1
- package/lib/float-box/index.component.d.ts +2 -2
- package/lib/layout/grid-box/index.component.d.ts +15 -0
- package/lib/layout/main-container/index.component.d.ts +2 -1
- package/lib/layout/multi-tab/index.component.d.ts +40 -0
- package/lib/layout/page-list/index.component.d.ts +15 -0
- package/lib/layout/page-tab/index.component.d.ts +14 -0
- package/lib/raise-common-lib.module.d.ts +36 -33
- package/lib/service/common-function.service.d.ts +2 -0
- package/lib/service/icon-loader.service.d.ts +5 -3
- package/lib/service/keep-alive.service.d.ts +11 -0
- package/package.json +1 -1
- package/public-api.d.ts +5 -1
- package/src/assets/img/close-url.svg +10 -0
- package/src/assets/img/desktop-refresh-btn.svg +6 -0
- package/src/assets/img/icon-more-active.svg +7 -0
- package/src/assets/img/icon-more.svg +7 -0
- package/src/assets/img/split-button-arrow.svg +3 -0
- package/src/assets/style/reset/button.scss +38 -3
- package/esm2022/lib/layout/common-list/index.component.mjs +0 -43
- package/lib/layout/common-list/index.component.d.ts +0 -15
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { EventEmitter, Component, ViewChild, Input, Output, ContentChild, Injectable, Inject, NgModule } from '@angular/core';
|
|
2
|
+
import { EventEmitter, Component, ViewChild, Input, Output, ContentChild, TemplateRef, Injectable, HostListener, Inject, NgModule } from '@angular/core';
|
|
3
3
|
import * as i1 from '@angular/common';
|
|
4
4
|
import { CommonModule } from '@angular/common';
|
|
5
5
|
import * as i2 from '@syncfusion/ej2-angular-grids';
|
|
@@ -11,25 +11,30 @@ import * as i2$1 from '@angular/forms';
|
|
|
11
11
|
import { ReactiveFormsModule, FormsModule } from '@angular/forms';
|
|
12
12
|
import * as i3$1 from '@syncfusion/ej2-angular-inputs';
|
|
13
13
|
import { TextBoxModule, ColorPickerModule, UploaderModule, NumericTextBoxModule } from '@syncfusion/ej2-angular-inputs';
|
|
14
|
-
import * as
|
|
15
|
-
import {
|
|
16
|
-
import * as i1$
|
|
17
|
-
import
|
|
18
|
-
import {
|
|
14
|
+
import * as i2$2 from '@syncfusion/ej2-angular-navigations';
|
|
15
|
+
import { CarouselAllModule, ToolbarModule, TabModule } from '@syncfusion/ej2-angular-navigations';
|
|
16
|
+
import * as i1$1 from '@angular/router';
|
|
17
|
+
import { NavigationEnd } from '@angular/router';
|
|
18
|
+
import { filter } from 'rxjs/operators';
|
|
19
|
+
import * as i5 from '@syncfusion/ej2-angular-popups';
|
|
20
|
+
import { TooltipModule, DialogModule } from '@syncfusion/ej2-angular-popups';
|
|
21
|
+
import * as i1$2 from '@syncfusion/ej2-angular-splitbuttons';
|
|
22
|
+
import { DropDownButtonModule, SplitButtonModule } from '@syncfusion/ej2-angular-splitbuttons';
|
|
23
|
+
import * as i1$3 from '@angular/material/icon';
|
|
24
|
+
import { MatIconModule } from '@angular/material/icon';
|
|
19
25
|
import * as i3$2 from '@syncfusion/ej2-angular-buttons';
|
|
20
26
|
import { SwitchModule, CheckBoxModule, RadioButtonModule, ButtonModule } from '@syncfusion/ej2-angular-buttons';
|
|
27
|
+
import * as i2$3 from '@angular/platform-browser';
|
|
21
28
|
import * as i1$5 from '@angular/material/snack-bar';
|
|
22
29
|
import { MAT_SNACK_BAR_DATA, MatSnackBarModule } from '@angular/material/snack-bar';
|
|
23
30
|
import * as i1$4 from '@angular/material/dialog';
|
|
24
31
|
import { MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';
|
|
25
32
|
import { HttpClientModule } from '@angular/common/http';
|
|
26
33
|
import { DiagramModule } from '@syncfusion/ej2-angular-diagrams';
|
|
27
|
-
import { TooltipModule, DialogModule } from '@syncfusion/ej2-angular-popups';
|
|
28
34
|
import { DatePickerModule, DateRangePickerModule, DateTimePickerModule } from '@syncfusion/ej2-angular-calendars';
|
|
29
35
|
import { DropDownListModule, DropDownTreeModule, MultiSelectAllModule, AutoCompleteModule, ListBoxModule } from '@syncfusion/ej2-angular-dropdowns';
|
|
30
36
|
import { PivotViewAllModule, PivotFieldListAllModule } from '@syncfusion/ej2-angular-pivotview';
|
|
31
37
|
import { DashboardLayoutModule } from '@syncfusion/ej2-angular-layouts';
|
|
32
|
-
import { CarouselAllModule, ToolbarModule } from '@syncfusion/ej2-angular-navigations';
|
|
33
38
|
import { PdfViewerModule, LinkAnnotationService, BookmarkViewService, MagnificationService, ThumbnailViewService, ToolbarService as ToolbarService$1, NavigationService, TextSearchService, TextSelectionService, PrintService } from '@syncfusion/ej2-angular-pdfviewer';
|
|
34
39
|
import { RichTextEditorAllModule, HtmlEditorService, ToolbarService as ToolbarService$2 } from '@syncfusion/ej2-angular-richtexteditor';
|
|
35
40
|
|
|
@@ -683,7 +688,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
683
688
|
}] } });
|
|
684
689
|
|
|
685
690
|
// 组件类
|
|
686
|
-
class
|
|
691
|
+
class RsPageListComponent {
|
|
687
692
|
gridContent;
|
|
688
693
|
pageTitle;
|
|
689
694
|
customPageTitle = false;
|
|
@@ -701,12 +706,12 @@ class CommonListComponent {
|
|
|
701
706
|
onInput() {
|
|
702
707
|
this.debouncedInput();
|
|
703
708
|
}
|
|
704
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type:
|
|
705
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type:
|
|
709
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RsPageListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
710
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: RsPageListComponent, selector: "rs-page-list", inputs: { pageTitle: "pageTitle", customPageTitle: "customPageTitle", isInner: "isInner" }, queries: [{ propertyName: "gridContent", first: true, predicate: CommonGridComponent, descendants: true, static: true }], ngImport: i0, template: "<div class=\"rs-page-list-wrap\" [ngClass]=\"{ 'is-not-inner': !isInner }\">\r\n <ng-container *ngIf=\"customPageTitle; else defaultTitle\">\r\n <ng-content select=\"[titleSlot]\"></ng-content>\r\n </ng-container>\r\n <ng-template #defaultTitle>\r\n <div class=\"rs-page-title\" *ngIf=\"pageTitle\">{{ pageTitle }}</div>\r\n </ng-template>\r\n <div class=\"rs-content-wrap\">\r\n <div class=\"rs-toolbar-wrap\">\r\n <div class=\"rs-left-col\">\r\n <ng-content select=\"[leftToolbarBtnSlot]\"></ng-content>\r\n </div>\r\n <div class=\"rs-right-col\">\r\n <ng-content select=\"[rightToolbarBtnSlot]\"></ng-content>\r\n <div class=\"rs-search-input\">\r\n <ejs-textbox\r\n type=\"text\"\r\n class=\"e-input\"\r\n [(ngModel)]=\"searchValue\"\r\n (input)=\"onInput()\"\r\n placeholder=\"Search all fields\"\r\n [showClearButton]=\"true\"\r\n autocomplete=\"off\"\r\n ></ejs-textbox>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"rs-grid-wrap\">\r\n <ng-content select=\"[gridSlot]\"></ng-content>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".rs-page-list-wrap{height:100%;display:flex;flex-direction:column;position:relative;margin:0 auto;max-width:1885px}.rs-page-list-wrap .rs-page-title{font-family:var(--rs-font-family);font-size:var(--rs-page-title-font-size);font-weight:700;text-align:left;color:var(--rs-page-title-color);display:flex;align-items:center;padding:16px 8px 12px 20px}.rs-page-list-wrap .rs-content-wrap{display:flex;flex-direction:column;flex:1;height:0}.rs-page-list-wrap .rs-content-wrap .rs-toolbar-wrap{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.rs-page-list-wrap .rs-content-wrap .rs-toolbar-wrap .rs-left-col,.rs-page-list-wrap .rs-content-wrap .rs-toolbar-wrap .rs-right-col{display:flex;gap:12px}.rs-page-list-wrap .rs-content-wrap .rs-toolbar-wrap .rs-left-col ::ng-deep .e-btn,.rs-page-list-wrap .rs-content-wrap .rs-toolbar-wrap .rs-right-col ::ng-deep .e-btn{height:28px}.rs-page-list-wrap .rs-content-wrap .rs-grid-wrap{flex:1;height:0}.rs-page-list-wrap.is-not-inner .rs-content-wrap{border-radius:15px;padding:12px 20px;background:#fff;border:1px solid var(--rs-border-color);box-shadow:0 0 4px #0000001a}.rs-page-list-wrap .rs-search-input{width:240px}.rs-page-list-wrap .rs-search-input ::ng-deep .e-input-group{border-radius:14px!important}.rs-page-list-wrap .rs-search-input ::ng-deep .e-input-group.e-input-focus,.rs-page-list-wrap .rs-search-input ::ng-deep .e-input-group:hover{box-shadow:0 0 3px #1f7bff66!important;border-color:var(--rs-input-hover-border-color)!important}.rs-page-list-wrap .rs-search-input ::ng-deep .e-input-group.e-input-focus input.e-input,.rs-page-list-wrap .rs-search-input ::ng-deep .e-input-group:hover input.e-input{box-shadow:none!important}.rs-page-list-wrap .rs-search-input ::ng-deep .e-input-group input.e-input{width:calc(100% - 50px);height:26px}.rs-page-list-wrap .rs-search-input ::ng-deep .e-input-group input.e-input:hover{box-shadow:none!important}.rs-page-list-wrap .rs-search-input ::ng-deep .e-input-group:before{content:\"\"!important;margin:6px 0 0 8px;display:block;width:16px;height:16px;background-image:url(/assets/img/search.svg);background-size:cover;background-position:center}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3$1.TextBoxComponent, selector: "ejs-textbox", inputs: ["autocomplete", "cssClass", "enablePersistence", "enableRtl", "enabled", "floatLabelType", "htmlAttributes", "locale", "multiline", "placeholder", "readonly", "showClearButton", "type", "value", "width"], outputs: ["blur", "change", "created", "destroyed", "focus", "input", "valueChange"] }] });
|
|
706
711
|
}
|
|
707
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type:
|
|
712
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RsPageListComponent, decorators: [{
|
|
708
713
|
type: Component,
|
|
709
|
-
args: [{ selector: 'rs-
|
|
714
|
+
args: [{ selector: 'rs-page-list', template: "<div class=\"rs-page-list-wrap\" [ngClass]=\"{ 'is-not-inner': !isInner }\">\r\n <ng-container *ngIf=\"customPageTitle; else defaultTitle\">\r\n <ng-content select=\"[titleSlot]\"></ng-content>\r\n </ng-container>\r\n <ng-template #defaultTitle>\r\n <div class=\"rs-page-title\" *ngIf=\"pageTitle\">{{ pageTitle }}</div>\r\n </ng-template>\r\n <div class=\"rs-content-wrap\">\r\n <div class=\"rs-toolbar-wrap\">\r\n <div class=\"rs-left-col\">\r\n <ng-content select=\"[leftToolbarBtnSlot]\"></ng-content>\r\n </div>\r\n <div class=\"rs-right-col\">\r\n <ng-content select=\"[rightToolbarBtnSlot]\"></ng-content>\r\n <div class=\"rs-search-input\">\r\n <ejs-textbox\r\n type=\"text\"\r\n class=\"e-input\"\r\n [(ngModel)]=\"searchValue\"\r\n (input)=\"onInput()\"\r\n placeholder=\"Search all fields\"\r\n [showClearButton]=\"true\"\r\n autocomplete=\"off\"\r\n ></ejs-textbox>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"rs-grid-wrap\">\r\n <ng-content select=\"[gridSlot]\"></ng-content>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".rs-page-list-wrap{height:100%;display:flex;flex-direction:column;position:relative;margin:0 auto;max-width:1885px}.rs-page-list-wrap .rs-page-title{font-family:var(--rs-font-family);font-size:var(--rs-page-title-font-size);font-weight:700;text-align:left;color:var(--rs-page-title-color);display:flex;align-items:center;padding:16px 8px 12px 20px}.rs-page-list-wrap .rs-content-wrap{display:flex;flex-direction:column;flex:1;height:0}.rs-page-list-wrap .rs-content-wrap .rs-toolbar-wrap{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.rs-page-list-wrap .rs-content-wrap .rs-toolbar-wrap .rs-left-col,.rs-page-list-wrap .rs-content-wrap .rs-toolbar-wrap .rs-right-col{display:flex;gap:12px}.rs-page-list-wrap .rs-content-wrap .rs-toolbar-wrap .rs-left-col ::ng-deep .e-btn,.rs-page-list-wrap .rs-content-wrap .rs-toolbar-wrap .rs-right-col ::ng-deep .e-btn{height:28px}.rs-page-list-wrap .rs-content-wrap .rs-grid-wrap{flex:1;height:0}.rs-page-list-wrap.is-not-inner .rs-content-wrap{border-radius:15px;padding:12px 20px;background:#fff;border:1px solid var(--rs-border-color);box-shadow:0 0 4px #0000001a}.rs-page-list-wrap .rs-search-input{width:240px}.rs-page-list-wrap .rs-search-input ::ng-deep .e-input-group{border-radius:14px!important}.rs-page-list-wrap .rs-search-input ::ng-deep .e-input-group.e-input-focus,.rs-page-list-wrap .rs-search-input ::ng-deep .e-input-group:hover{box-shadow:0 0 3px #1f7bff66!important;border-color:var(--rs-input-hover-border-color)!important}.rs-page-list-wrap .rs-search-input ::ng-deep .e-input-group.e-input-focus input.e-input,.rs-page-list-wrap .rs-search-input ::ng-deep .e-input-group:hover input.e-input{box-shadow:none!important}.rs-page-list-wrap .rs-search-input ::ng-deep .e-input-group input.e-input{width:calc(100% - 50px);height:26px}.rs-page-list-wrap .rs-search-input ::ng-deep .e-input-group input.e-input:hover{box-shadow:none!important}.rs-page-list-wrap .rs-search-input ::ng-deep .e-input-group:before{content:\"\"!important;margin:6px 0 0 8px;display:block;width:16px;height:16px;background-image:url(/assets/img/search.svg);background-size:cover;background-position:center}\n"] }]
|
|
710
715
|
}], propDecorators: { gridContent: [{
|
|
711
716
|
type: ContentChild,
|
|
712
717
|
args: [CommonGridComponent, { static: true }]
|
|
@@ -718,6 +723,325 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
718
723
|
type: Input
|
|
719
724
|
}] } });
|
|
720
725
|
|
|
726
|
+
// 组件类
|
|
727
|
+
class RsPageTabComponent {
|
|
728
|
+
pageTitle;
|
|
729
|
+
customPageTitle = false;
|
|
730
|
+
tabList = [];
|
|
731
|
+
currentTab;
|
|
732
|
+
tabChange = new EventEmitter();
|
|
733
|
+
animation = {
|
|
734
|
+
previous: { effect: "", duration: 0, easing: "" },
|
|
735
|
+
next: { effect: "", duration: 0, easing: "" },
|
|
736
|
+
};
|
|
737
|
+
ngOnInit() { }
|
|
738
|
+
onTabClick(e) {
|
|
739
|
+
this.tabChange.emit(this.tabList[e.selectedIndex]);
|
|
740
|
+
}
|
|
741
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RsPageTabComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
742
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: RsPageTabComponent, selector: "rs-page-tab", inputs: { pageTitle: "pageTitle", customPageTitle: "customPageTitle", tabList: "tabList", currentTab: "currentTab" }, outputs: { tabChange: "tabChange" }, ngImport: i0, template: "<div class=\"rs-page-list-wrap\">\r\n <ng-container *ngIf=\"customPageTitle; else defaultTitle\">\r\n <ng-content select=\"[titleSlot]\"></ng-content>\r\n </ng-container>\r\n <ng-template #defaultTitle>\r\n <div class=\"rs-page-title\" *ngIf=\"pageTitle\">{{ pageTitle }}</div>\r\n </ng-template>\r\n <ejs-tab\r\n class=\"rs-tab\"\r\n (selected)=\"onTabClick($event)\"\r\n [animation]=\"animation\"\r\n\toverflowMode=\"Popup\"\r\n heightAdjustMode=\"None\"\r\n >\r\n <e-tabitems>\r\n <e-tabitem *ngFor=\"let item of tabList\">\r\n <ng-template #headerText>\r\n <div>{{ item.title }}</div>\r\n </ng-template>\r\n </e-tabitem>\r\n </e-tabitems>\r\n </ejs-tab>\r\n <div class=\"rs-grid-wrap\">\r\n <ng-content select=\"[tabContentSlot]\"></ng-content>\r\n </div>\r\n</div>\r\n", styles: [".rs-page-list-wrap{height:100%;display:flex;flex-direction:column;position:relative;margin:0 auto;max-width:1885px}.rs-page-list-wrap .rs-page-title{font-family:var(--rs-font-family);font-size:var(--rs-page-title-font-size);font-weight:700;text-align:left;color:var(--rs-page-title-color);display:flex;align-items:center;padding:16px 8px 12px 20px}.rs-page-list-wrap .rs-tab{padding:0 20px}.rs-page-list-wrap .rs-tab .e-tab-header:before{display:none}.rs-page-list-wrap .rs-tab .e-toolbar-items{gap:32px;min-height:36px}.rs-page-list-wrap .rs-tab .e-toolbar-items .e-toolbar-item{border:0}.rs-page-list-wrap .rs-tab .e-toolbar-items .e-toolbar-item .e-tab-wrap{padding:0;border:0;position:relative;height:36px}.rs-page-list-wrap .rs-tab .e-toolbar-items .e-toolbar-item .e-tab-wrap:before{content:\" \";position:absolute;left:0;bottom:0;width:100%;height:2px;background-color:transparent}.rs-page-list-wrap .rs-tab .e-toolbar-items .e-toolbar-item .e-tab-text{color:#5f6f81;font-family:Arial;font-size:13px;font-style:normal;font-weight:400;line-height:16px}.rs-page-list-wrap .rs-tab .e-toolbar-items .e-toolbar-item.e-active .e-tab-wrap:before{background-color:#1f7bff}.rs-page-list-wrap .rs-tab .e-toolbar-items .e-toolbar-item.e-active .e-tab-text{color:#44566c}.rs-page-list-wrap .rs-tab .e-hor-nav{width:24px;height:24px;min-height:24px;top:3px;border-radius:4px;background-color:transparent!important;border:1px solid #eaedf0!important}.rs-page-list-wrap .rs-tab .e-hor-nav .e-icons{box-shadow:none;background-color:transparent!important;border-color:transparent!important;background-image:url(\"data:image/svg+xml,%3Csvg width%3D%2214%22 height%3D%223%22 viewBox%3D%220 0 14 3%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0D%3Cg id%3D%22Drag bar%22%3E%0D%3Ccircle id%3D%22Ellipse 30%22 cx%3D%221.5%22 cy%3D%221.5%22 r%3D%221.5%22 transform%3D%22rotate(-90 1.5 1.5)%22 fill%3D%22%236B6B6B%22%2F%3E%0D%3Ccircle id%3D%22Ellipse 31%22 cx%3D%227%22 cy%3D%221.5%22 r%3D%221.5%22 transform%3D%22rotate(-90 7 1.5)%22 fill%3D%22%236B6B6B%22%2F%3E%0D%3Ccircle id%3D%22Ellipse 32%22 cx%3D%2212.5%22 cy%3D%221.5%22 r%3D%221.5%22 transform%3D%22rotate(-90 12.5 1.5)%22 fill%3D%22%236B6B6B%22%2F%3E%0D%3C%2Fg%3E%0D%3C%2Fsvg%3E%0D\");background-size:14px 3px;background-repeat:no-repeat;background-position:4px 14px}.rs-page-list-wrap .rs-tab .e-hor-nav .e-icons:before{display:none}.rs-page-list-wrap .rs-tab .e-hor-nav .e-icons:hover{background-color:#eff5fb!important;border-color:#b1d0fc!important;background-image:url(\"data:image/svg+xml,%3Csvg width%3D%2214%22 height%3D%223%22 viewBox%3D%220 0 14 3%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0D%3Cg id%3D%22Drag bar%22%3E%0D%3Ccircle id%3D%22Ellipse 30%22 cx%3D%221.5%22 cy%3D%221.5%22 r%3D%221.5%22 transform%3D%22rotate(-90 1.5 1.5)%22 fill%3D%22%231F7BFF%22%2F%3E%0D%3Ccircle id%3D%22Ellipse 31%22 cx%3D%227%22 cy%3D%221.5%22 r%3D%221.5%22 transform%3D%22rotate(-90 7 1.5)%22 fill%3D%22%231F7BFF%22%2F%3E%0D%3Ccircle id%3D%22Ellipse 32%22 cx%3D%2212.5%22 cy%3D%221.5%22 r%3D%221.5%22 transform%3D%22rotate(-90 12.5 1.5)%22 fill%3D%22%231F7BFF%22%2F%3E%0D%3C%2Fg%3E%0D%3C%2Fsvg%3E%0D\")}.rs-page-list-wrap .rs-tab .e-toolbar-pop{min-width:160px;border-radius:10px;background:#fff;box-shadow:0 0 8px #00000040;padding:8px}.rs-page-list-wrap .rs-tab .e-toolbar-pop .e-toolbar-item .e-tab-wrap{padding:0 8px}.rs-page-list-wrap .rs-tab .e-toolbar-pop .e-toolbar-item .e-tab-wrap .e-tab-text{color:#44566c;font-family:Arial;font-size:13px;font-weight:400;line-height:16px}.rs-page-list-wrap .rs-tab .e-toolbar-pop .e-toolbar-item .e-tab-wrap:hover{border-radius:6px;background:#1f7bff0d}.rs-page-list-wrap .rs-grid-wrap{flex:1;height:0}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$2.TabComponent, selector: "ejs-tab", inputs: ["allowDragAndDrop", "animation", "clearTemplates", "cssClass", "dragArea", "enableHtmlSanitizer", "enablePersistence", "enableRtl", "headerPlacement", "height", "heightAdjustMode", "items", "loadOn", "locale", "overflowMode", "reorderActiveTab", "scrollStep", "selectedItem", "showCloseButton", "width"], outputs: ["added", "adding", "created", "destroyed", "dragged", "dragging", "onDragStart", "removed", "removing", "selected", "selecting"] }, { kind: "directive", type: i2$2.TabItemDirective, selector: "e-tabitems>e-tabitem", inputs: ["content", "cssClass", "disabled", "header", "headerTemplate", "id", "tabIndex", "visible"] }, { kind: "directive", type: i2$2.TabItemsDirective, selector: "ejs-tab>e-tabitems" }] });
|
|
743
|
+
}
|
|
744
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RsPageTabComponent, decorators: [{
|
|
745
|
+
type: Component,
|
|
746
|
+
args: [{ selector: "rs-page-tab", template: "<div class=\"rs-page-list-wrap\">\r\n <ng-container *ngIf=\"customPageTitle; else defaultTitle\">\r\n <ng-content select=\"[titleSlot]\"></ng-content>\r\n </ng-container>\r\n <ng-template #defaultTitle>\r\n <div class=\"rs-page-title\" *ngIf=\"pageTitle\">{{ pageTitle }}</div>\r\n </ng-template>\r\n <ejs-tab\r\n class=\"rs-tab\"\r\n (selected)=\"onTabClick($event)\"\r\n [animation]=\"animation\"\r\n\toverflowMode=\"Popup\"\r\n heightAdjustMode=\"None\"\r\n >\r\n <e-tabitems>\r\n <e-tabitem *ngFor=\"let item of tabList\">\r\n <ng-template #headerText>\r\n <div>{{ item.title }}</div>\r\n </ng-template>\r\n </e-tabitem>\r\n </e-tabitems>\r\n </ejs-tab>\r\n <div class=\"rs-grid-wrap\">\r\n <ng-content select=\"[tabContentSlot]\"></ng-content>\r\n </div>\r\n</div>\r\n", styles: [".rs-page-list-wrap{height:100%;display:flex;flex-direction:column;position:relative;margin:0 auto;max-width:1885px}.rs-page-list-wrap .rs-page-title{font-family:var(--rs-font-family);font-size:var(--rs-page-title-font-size);font-weight:700;text-align:left;color:var(--rs-page-title-color);display:flex;align-items:center;padding:16px 8px 12px 20px}.rs-page-list-wrap .rs-tab{padding:0 20px}.rs-page-list-wrap .rs-tab .e-tab-header:before{display:none}.rs-page-list-wrap .rs-tab .e-toolbar-items{gap:32px;min-height:36px}.rs-page-list-wrap .rs-tab .e-toolbar-items .e-toolbar-item{border:0}.rs-page-list-wrap .rs-tab .e-toolbar-items .e-toolbar-item .e-tab-wrap{padding:0;border:0;position:relative;height:36px}.rs-page-list-wrap .rs-tab .e-toolbar-items .e-toolbar-item .e-tab-wrap:before{content:\" \";position:absolute;left:0;bottom:0;width:100%;height:2px;background-color:transparent}.rs-page-list-wrap .rs-tab .e-toolbar-items .e-toolbar-item .e-tab-text{color:#5f6f81;font-family:Arial;font-size:13px;font-style:normal;font-weight:400;line-height:16px}.rs-page-list-wrap .rs-tab .e-toolbar-items .e-toolbar-item.e-active .e-tab-wrap:before{background-color:#1f7bff}.rs-page-list-wrap .rs-tab .e-toolbar-items .e-toolbar-item.e-active .e-tab-text{color:#44566c}.rs-page-list-wrap .rs-tab .e-hor-nav{width:24px;height:24px;min-height:24px;top:3px;border-radius:4px;background-color:transparent!important;border:1px solid #eaedf0!important}.rs-page-list-wrap .rs-tab .e-hor-nav .e-icons{box-shadow:none;background-color:transparent!important;border-color:transparent!important;background-image:url(\"data:image/svg+xml,%3Csvg width%3D%2214%22 height%3D%223%22 viewBox%3D%220 0 14 3%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0D%3Cg id%3D%22Drag bar%22%3E%0D%3Ccircle id%3D%22Ellipse 30%22 cx%3D%221.5%22 cy%3D%221.5%22 r%3D%221.5%22 transform%3D%22rotate(-90 1.5 1.5)%22 fill%3D%22%236B6B6B%22%2F%3E%0D%3Ccircle id%3D%22Ellipse 31%22 cx%3D%227%22 cy%3D%221.5%22 r%3D%221.5%22 transform%3D%22rotate(-90 7 1.5)%22 fill%3D%22%236B6B6B%22%2F%3E%0D%3Ccircle id%3D%22Ellipse 32%22 cx%3D%2212.5%22 cy%3D%221.5%22 r%3D%221.5%22 transform%3D%22rotate(-90 12.5 1.5)%22 fill%3D%22%236B6B6B%22%2F%3E%0D%3C%2Fg%3E%0D%3C%2Fsvg%3E%0D\");background-size:14px 3px;background-repeat:no-repeat;background-position:4px 14px}.rs-page-list-wrap .rs-tab .e-hor-nav .e-icons:before{display:none}.rs-page-list-wrap .rs-tab .e-hor-nav .e-icons:hover{background-color:#eff5fb!important;border-color:#b1d0fc!important;background-image:url(\"data:image/svg+xml,%3Csvg width%3D%2214%22 height%3D%223%22 viewBox%3D%220 0 14 3%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0D%3Cg id%3D%22Drag bar%22%3E%0D%3Ccircle id%3D%22Ellipse 30%22 cx%3D%221.5%22 cy%3D%221.5%22 r%3D%221.5%22 transform%3D%22rotate(-90 1.5 1.5)%22 fill%3D%22%231F7BFF%22%2F%3E%0D%3Ccircle id%3D%22Ellipse 31%22 cx%3D%227%22 cy%3D%221.5%22 r%3D%221.5%22 transform%3D%22rotate(-90 7 1.5)%22 fill%3D%22%231F7BFF%22%2F%3E%0D%3Ccircle id%3D%22Ellipse 32%22 cx%3D%2212.5%22 cy%3D%221.5%22 r%3D%221.5%22 transform%3D%22rotate(-90 12.5 1.5)%22 fill%3D%22%231F7BFF%22%2F%3E%0D%3C%2Fg%3E%0D%3C%2Fsvg%3E%0D\")}.rs-page-list-wrap .rs-tab .e-toolbar-pop{min-width:160px;border-radius:10px;background:#fff;box-shadow:0 0 8px #00000040;padding:8px}.rs-page-list-wrap .rs-tab .e-toolbar-pop .e-toolbar-item .e-tab-wrap{padding:0 8px}.rs-page-list-wrap .rs-tab .e-toolbar-pop .e-toolbar-item .e-tab-wrap .e-tab-text{color:#44566c;font-family:Arial;font-size:13px;font-weight:400;line-height:16px}.rs-page-list-wrap .rs-tab .e-toolbar-pop .e-toolbar-item .e-tab-wrap:hover{border-radius:6px;background:#1f7bff0d}.rs-page-list-wrap .rs-grid-wrap{flex:1;height:0}\n"] }]
|
|
747
|
+
}], propDecorators: { pageTitle: [{
|
|
748
|
+
type: Input
|
|
749
|
+
}], customPageTitle: [{
|
|
750
|
+
type: Input
|
|
751
|
+
}], tabList: [{
|
|
752
|
+
type: Input
|
|
753
|
+
}], currentTab: [{
|
|
754
|
+
type: Input
|
|
755
|
+
}], tabChange: [{
|
|
756
|
+
type: Output
|
|
757
|
+
}] } });
|
|
758
|
+
|
|
759
|
+
// 组件类
|
|
760
|
+
class GridBoxComponent {
|
|
761
|
+
gridContent;
|
|
762
|
+
pageTitle;
|
|
763
|
+
customPageTitle = false;
|
|
764
|
+
isInner = false;
|
|
765
|
+
debouncedInput;
|
|
766
|
+
ngOnInit() {
|
|
767
|
+
this.debouncedInput = debounce(() => {
|
|
768
|
+
this.onSeach();
|
|
769
|
+
}, 300);
|
|
770
|
+
}
|
|
771
|
+
searchValue;
|
|
772
|
+
onSeach() {
|
|
773
|
+
this.gridContent.grid.search(this.searchValue);
|
|
774
|
+
}
|
|
775
|
+
onInput() {
|
|
776
|
+
this.debouncedInput();
|
|
777
|
+
}
|
|
778
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GridBoxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
779
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: GridBoxComponent, selector: "rs-grid-box", inputs: { pageTitle: "pageTitle", customPageTitle: "customPageTitle", isInner: "isInner" }, queries: [{ propertyName: "gridContent", first: true, predicate: TemplateRef, descendants: true, static: true }], ngImport: i0, template: "<div class=\"rs-grid-box\" [ngClass]=\"{ 'is-not-inner': !isInner }\">\r\n <div class=\"rs-toolbar-wrap\">\r\n <div class=\"rs-left-col\">\r\n <ng-content select=\"[leftToolbarBtnSlot]\"></ng-content>\r\n </div>\r\n <div class=\"rs-right-col\">\r\n <ng-content select=\"[rightToolbarBtnSlot]\"></ng-content>\r\n <div class=\"rs-search-input\">\r\n <ejs-textbox\r\n type=\"text\"\r\n class=\"e-input\"\r\n [(ngModel)]=\"searchValue\"\r\n (input)=\"onInput()\"\r\n placeholder=\"Search all fields\"\r\n [showClearButton]=\"true\"\r\n autocomplete=\"off\"\r\n ></ejs-textbox>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"rs-grid-wrap\">\r\n <ng-content select=\"[gridSlot]\"></ng-content>\r\n </div>\r\n</div>\r\n", styles: [":host{height:100%}.rs-grid-box{display:flex;flex-direction:column;height:100%}.rs-grid-box.is-not-inner{border-radius:15px;padding:12px 20px;background:#fff;border:1px solid var(--rs-border-color);box-shadow:0 0 4px #0000001a}.rs-grid-box .rs-toolbar-wrap{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.rs-grid-box .rs-toolbar-wrap .rs-left-col,.rs-grid-box .rs-toolbar-wrap .rs-right-col{display:flex;gap:12px}.rs-grid-box .rs-toolbar-wrap .rs-left-col ::ng-deep .e-btn,.rs-grid-box .rs-toolbar-wrap .rs-right-col ::ng-deep .e-btn{height:28px}.rs-grid-box .rs-grid-wrap{flex:1;height:0}.rs-grid-box .rs-search-input{width:240px}.rs-grid-box .rs-search-input ::ng-deep .e-input-group{border-radius:14px!important}.rs-grid-box .rs-search-input ::ng-deep .e-input-group.e-input-focus,.rs-grid-box .rs-search-input ::ng-deep .e-input-group:hover{box-shadow:0 0 3px #1f7bff66!important;border-color:var(--rs-input-hover-border-color)!important}.rs-grid-box .rs-search-input ::ng-deep .e-input-group.e-input-focus input.e-input,.rs-grid-box .rs-search-input ::ng-deep .e-input-group:hover input.e-input{box-shadow:none!important}.rs-grid-box .rs-search-input ::ng-deep .e-input-group input.e-input{width:calc(100% - 50px);height:26px}.rs-grid-box .rs-search-input ::ng-deep .e-input-group input.e-input:hover{box-shadow:none!important}.rs-grid-box .rs-search-input ::ng-deep .e-input-group:before{content:\"\"!important;margin:6px 0 0 8px;display:block;width:16px;height:16px;background-image:url(/assets/img/search.svg);background-size:cover;background-position:center}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3$1.TextBoxComponent, selector: "ejs-textbox", inputs: ["autocomplete", "cssClass", "enablePersistence", "enableRtl", "enabled", "floatLabelType", "htmlAttributes", "locale", "multiline", "placeholder", "readonly", "showClearButton", "type", "value", "width"], outputs: ["blur", "change", "created", "destroyed", "focus", "input", "valueChange"] }] });
|
|
780
|
+
}
|
|
781
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GridBoxComponent, decorators: [{
|
|
782
|
+
type: Component,
|
|
783
|
+
args: [{ selector: 'rs-grid-box', template: "<div class=\"rs-grid-box\" [ngClass]=\"{ 'is-not-inner': !isInner }\">\r\n <div class=\"rs-toolbar-wrap\">\r\n <div class=\"rs-left-col\">\r\n <ng-content select=\"[leftToolbarBtnSlot]\"></ng-content>\r\n </div>\r\n <div class=\"rs-right-col\">\r\n <ng-content select=\"[rightToolbarBtnSlot]\"></ng-content>\r\n <div class=\"rs-search-input\">\r\n <ejs-textbox\r\n type=\"text\"\r\n class=\"e-input\"\r\n [(ngModel)]=\"searchValue\"\r\n (input)=\"onInput()\"\r\n placeholder=\"Search all fields\"\r\n [showClearButton]=\"true\"\r\n autocomplete=\"off\"\r\n ></ejs-textbox>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"rs-grid-wrap\">\r\n <ng-content select=\"[gridSlot]\"></ng-content>\r\n </div>\r\n</div>\r\n", styles: [":host{height:100%}.rs-grid-box{display:flex;flex-direction:column;height:100%}.rs-grid-box.is-not-inner{border-radius:15px;padding:12px 20px;background:#fff;border:1px solid var(--rs-border-color);box-shadow:0 0 4px #0000001a}.rs-grid-box .rs-toolbar-wrap{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.rs-grid-box .rs-toolbar-wrap .rs-left-col,.rs-grid-box .rs-toolbar-wrap .rs-right-col{display:flex;gap:12px}.rs-grid-box .rs-toolbar-wrap .rs-left-col ::ng-deep .e-btn,.rs-grid-box .rs-toolbar-wrap .rs-right-col ::ng-deep .e-btn{height:28px}.rs-grid-box .rs-grid-wrap{flex:1;height:0}.rs-grid-box .rs-search-input{width:240px}.rs-grid-box .rs-search-input ::ng-deep .e-input-group{border-radius:14px!important}.rs-grid-box .rs-search-input ::ng-deep .e-input-group.e-input-focus,.rs-grid-box .rs-search-input ::ng-deep .e-input-group:hover{box-shadow:0 0 3px #1f7bff66!important;border-color:var(--rs-input-hover-border-color)!important}.rs-grid-box .rs-search-input ::ng-deep .e-input-group.e-input-focus input.e-input,.rs-grid-box .rs-search-input ::ng-deep .e-input-group:hover input.e-input{box-shadow:none!important}.rs-grid-box .rs-search-input ::ng-deep .e-input-group input.e-input{width:calc(100% - 50px);height:26px}.rs-grid-box .rs-search-input ::ng-deep .e-input-group input.e-input:hover{box-shadow:none!important}.rs-grid-box .rs-search-input ::ng-deep .e-input-group:before{content:\"\"!important;margin:6px 0 0 8px;display:block;width:16px;height:16px;background-image:url(/assets/img/search.svg);background-size:cover;background-position:center}\n"] }]
|
|
784
|
+
}], propDecorators: { gridContent: [{
|
|
785
|
+
type: ContentChild,
|
|
786
|
+
args: [TemplateRef, { static: true }]
|
|
787
|
+
}], pageTitle: [{
|
|
788
|
+
type: Input
|
|
789
|
+
}], customPageTitle: [{
|
|
790
|
+
type: Input
|
|
791
|
+
}], isInner: [{
|
|
792
|
+
type: Input
|
|
793
|
+
}] } });
|
|
794
|
+
|
|
795
|
+
class CommonFunctionService {
|
|
796
|
+
constructor() { }
|
|
797
|
+
testMethod() {
|
|
798
|
+
return "test1111";
|
|
799
|
+
}
|
|
800
|
+
setMiddleEllipsis(text, maxWidth = 150, fontSize = 13) {
|
|
801
|
+
const canvas = document.createElement("canvas");
|
|
802
|
+
const context = canvas.getContext("2d");
|
|
803
|
+
context.font = `${fontSize}px Arial`;
|
|
804
|
+
let width = context.measureText(text).width;
|
|
805
|
+
if (width <= maxWidth) {
|
|
806
|
+
return text;
|
|
807
|
+
}
|
|
808
|
+
maxWidth = Math.floor(maxWidth - context.measureText("...").width);
|
|
809
|
+
let firstPart = "";
|
|
810
|
+
let secondPart = "";
|
|
811
|
+
let half = Math.floor(maxWidth / 2);
|
|
812
|
+
for (let i = 0; i < text.length; i++) {
|
|
813
|
+
firstPart += text[i];
|
|
814
|
+
width = context.measureText(firstPart).width;
|
|
815
|
+
if (width > half) {
|
|
816
|
+
break;
|
|
817
|
+
}
|
|
818
|
+
}
|
|
819
|
+
for (let i = text.length - 1; i >= 0; i--) {
|
|
820
|
+
secondPart = text[i] + secondPart;
|
|
821
|
+
width = context.measureText(secondPart).width;
|
|
822
|
+
if (width > half) {
|
|
823
|
+
break;
|
|
824
|
+
}
|
|
825
|
+
}
|
|
826
|
+
return firstPart + "..." + secondPart;
|
|
827
|
+
}
|
|
828
|
+
getPureUrl(url) {
|
|
829
|
+
if (url) {
|
|
830
|
+
// 如果params的value 携带查询参数, 则截取前面部分
|
|
831
|
+
url = decodeURIComponent(url);
|
|
832
|
+
if (url.includes("?")) {
|
|
833
|
+
url = url.split("?")[0];
|
|
834
|
+
}
|
|
835
|
+
}
|
|
836
|
+
return url;
|
|
837
|
+
}
|
|
838
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CommonFunctionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
839
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CommonFunctionService, providedIn: "root" });
|
|
840
|
+
}
|
|
841
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CommonFunctionService, decorators: [{
|
|
842
|
+
type: Injectable,
|
|
843
|
+
args: [{
|
|
844
|
+
providedIn: "root",
|
|
845
|
+
}]
|
|
846
|
+
}], ctorParameters: function () { return []; } });
|
|
847
|
+
|
|
848
|
+
const storedRoutes = {};
|
|
849
|
+
let toBeDeleteUrl;
|
|
850
|
+
let excludeRoutes = []; // 不需要缓存的url
|
|
851
|
+
class KeepAliveService {
|
|
852
|
+
setExcludeRoutes(routes) {
|
|
853
|
+
excludeRoutes = routes; // 设置不缓存的路由
|
|
854
|
+
}
|
|
855
|
+
shouldDetach(route) {
|
|
856
|
+
if (toBeDeleteUrl === this.getRoutePath(route)) {
|
|
857
|
+
// 对于新开的又即将关闭的tab,不缓存
|
|
858
|
+
toBeDeleteUrl = "";
|
|
859
|
+
return false;
|
|
860
|
+
}
|
|
861
|
+
return !excludeRoutes.includes(route.routeConfig.path);
|
|
862
|
+
}
|
|
863
|
+
store(route, handle) {
|
|
864
|
+
// console.log("store", this.getRoutePath(route));
|
|
865
|
+
// console.log("store", storedRoutes);
|
|
866
|
+
storedRoutes[this.getRoutePath(route)] = handle;
|
|
867
|
+
}
|
|
868
|
+
shouldAttach(route) {
|
|
869
|
+
return !!storedRoutes[this.getRoutePath(route)];
|
|
870
|
+
}
|
|
871
|
+
retrieve(route) {
|
|
872
|
+
return storedRoutes[this.getRoutePath(route)];
|
|
873
|
+
}
|
|
874
|
+
shouldReuseRoute(future, curr) {
|
|
875
|
+
// console.log("shouldReuseRoute");
|
|
876
|
+
return this.getRoutePath(future) === this.getRoutePath(curr); // 复用相同的路由
|
|
877
|
+
}
|
|
878
|
+
getRoutePath(route) {
|
|
879
|
+
if (route.routeConfig) {
|
|
880
|
+
// const pathParams = JSON.stringify(route.params);
|
|
881
|
+
const queryParams = new URLSearchParams(route.queryParams).toString();
|
|
882
|
+
return route._routerState.url + (queryParams ? "?" + queryParams : "");
|
|
883
|
+
}
|
|
884
|
+
return "";
|
|
885
|
+
}
|
|
886
|
+
clearCache(path) {
|
|
887
|
+
toBeDeleteUrl = path;
|
|
888
|
+
delete storedRoutes[path]; // 清除指定路径的缓存
|
|
889
|
+
}
|
|
890
|
+
}
|
|
891
|
+
|
|
892
|
+
// 组件类
|
|
893
|
+
class MultiTabComponent {
|
|
894
|
+
router;
|
|
895
|
+
cf;
|
|
896
|
+
activatedRoute;
|
|
897
|
+
keepAlive;
|
|
898
|
+
constructor(router, cf, activatedRoute, keepAlive) {
|
|
899
|
+
this.router = router;
|
|
900
|
+
this.cf = cf;
|
|
901
|
+
this.activatedRoute = activatedRoute;
|
|
902
|
+
this.keepAlive = keepAlive;
|
|
903
|
+
}
|
|
904
|
+
singleReuseUrls = []; //只能单个缓存的url
|
|
905
|
+
TAB_WIDTH = 164;
|
|
906
|
+
GAP_NORMAL = 54;
|
|
907
|
+
GAP_SMALL = 30;
|
|
908
|
+
textGap; // 文本与边框的总间距
|
|
909
|
+
foo;
|
|
910
|
+
comRef;
|
|
911
|
+
tabList = [];
|
|
912
|
+
selectedTab = 0;
|
|
913
|
+
maxTabs = 10;
|
|
914
|
+
screenWidth = window.innerWidth; // 初始化屏幕宽度
|
|
915
|
+
onResize(event) {
|
|
916
|
+
this.screenWidth = window.innerWidth; // 更新屏幕宽度
|
|
917
|
+
this.setEllipsisTitle();
|
|
918
|
+
}
|
|
919
|
+
ngOnInit() {
|
|
920
|
+
this.initTab();
|
|
921
|
+
this.router.events
|
|
922
|
+
.pipe(filter((event) => event instanceof NavigationEnd))
|
|
923
|
+
.subscribe(() => {
|
|
924
|
+
const navigation = this.router.getCurrentNavigation(); // 获取当前导航
|
|
925
|
+
if (navigation) {
|
|
926
|
+
const state = navigation.extras.state; // 获取传递的 state
|
|
927
|
+
const currentRoute = this.router.routerState.root.firstChild;
|
|
928
|
+
if (currentRoute) {
|
|
929
|
+
this.setTab(this.router.url, currentRoute.snapshot.routeConfig.path, state && state.title);
|
|
930
|
+
}
|
|
931
|
+
}
|
|
932
|
+
});
|
|
933
|
+
this.setEllipsisTitle();
|
|
934
|
+
}
|
|
935
|
+
setEllipsisTitle(title) {
|
|
936
|
+
this.textGap = this.GAP_NORMAL;
|
|
937
|
+
if (this.screenWidth <= 1100) {
|
|
938
|
+
this.textGap = this.GAP_SMALL;
|
|
939
|
+
}
|
|
940
|
+
let { allWidth, leftWidth, rightWidth } = this.calcTabWidth();
|
|
941
|
+
let width = Math.floor((allWidth - rightWidth) / (this.tabList && this.tabList.length));
|
|
942
|
+
if (title) {
|
|
943
|
+
return this.cf.setMiddleEllipsis(title, width > this.TAB_WIDTH
|
|
944
|
+
? this.TAB_WIDTH - this.textGap
|
|
945
|
+
: width - this.textGap, 12);
|
|
946
|
+
}
|
|
947
|
+
else {
|
|
948
|
+
this.tabList.forEach((ele, idx) => {
|
|
949
|
+
ele.displayTitle = this.cf.setMiddleEllipsis(ele.title, width > this.TAB_WIDTH
|
|
950
|
+
? this.TAB_WIDTH - this.textGap
|
|
951
|
+
: width - this.textGap, 12);
|
|
952
|
+
});
|
|
953
|
+
}
|
|
954
|
+
}
|
|
955
|
+
calcTabWidth() {
|
|
956
|
+
const wrap = document.querySelector(".rs-multi-tab");
|
|
957
|
+
const ulElement = document.querySelector(".rs-multi-tab > ul");
|
|
958
|
+
const refreshTabDiv = document.querySelector(".rs-multi-tab .refresh-tab");
|
|
959
|
+
let allWidth;
|
|
960
|
+
let leftWidth;
|
|
961
|
+
let rightWidth;
|
|
962
|
+
if (wrap && ulElement && refreshTabDiv) {
|
|
963
|
+
// 获取元素的位置信息
|
|
964
|
+
const wrapRect = wrap.getBoundingClientRect();
|
|
965
|
+
const ulRect = ulElement.getBoundingClientRect();
|
|
966
|
+
const refreshTabRect = refreshTabDiv.getBoundingClientRect();
|
|
967
|
+
allWidth = wrapRect.width;
|
|
968
|
+
leftWidth = ulRect.width;
|
|
969
|
+
rightWidth = refreshTabRect.width;
|
|
970
|
+
}
|
|
971
|
+
return {
|
|
972
|
+
allWidth,
|
|
973
|
+
leftWidth,
|
|
974
|
+
rightWidth,
|
|
975
|
+
};
|
|
976
|
+
}
|
|
977
|
+
initTab() {
|
|
978
|
+
let TabCache = JSON.parse(sessionStorage.getItem("TabCache"));
|
|
979
|
+
this.tabList = TabCache || [];
|
|
980
|
+
}
|
|
981
|
+
closeTab(tab, idx) {
|
|
982
|
+
this.tabList = this.tabList.filter((ele) => ele.url !== tab.url);
|
|
983
|
+
this.clearCache(tab.url);
|
|
984
|
+
if (this.selectedTab === idx) {
|
|
985
|
+
const targetIdx = Math.max(0, idx - 1);
|
|
986
|
+
this.changeTab(this.tabList[targetIdx], targetIdx);
|
|
987
|
+
}
|
|
988
|
+
this.setEllipsisTitle();
|
|
989
|
+
sessionStorage.setItem("TabCache", JSON.stringify(this.tabList));
|
|
990
|
+
}
|
|
991
|
+
changeTab(tab, idx) {
|
|
992
|
+
this.router.navigateByUrl(tab.url);
|
|
993
|
+
this.selectedTab = idx;
|
|
994
|
+
}
|
|
995
|
+
addTab(url, title) {
|
|
996
|
+
if (this.tabList.length >= this.maxTabs) {
|
|
997
|
+
this.closeTab(this.tabList[0], 0); // 删除第一个
|
|
998
|
+
}
|
|
999
|
+
this.tabList.push({
|
|
1000
|
+
url: url,
|
|
1001
|
+
title: title || "default",
|
|
1002
|
+
displayTitle: this.setEllipsisTitle(title || "default"),
|
|
1003
|
+
});
|
|
1004
|
+
this.selectedTab = this.tabList.length - 1;
|
|
1005
|
+
this.setEllipsisTitle();
|
|
1006
|
+
sessionStorage.setItem("TabCache", JSON.stringify(this.tabList));
|
|
1007
|
+
}
|
|
1008
|
+
setTab(url, pureUrl, title) {
|
|
1009
|
+
const isExistIdx = this.tabList.findIndex((ele) => ele.url === url);
|
|
1010
|
+
if (isExistIdx === -1) {
|
|
1011
|
+
const singleIdx = this.singleReuseUrls.findIndex((ele) => ele === pureUrl);
|
|
1012
|
+
if (singleIdx !== -1) {
|
|
1013
|
+
this.tabList = this.tabList.filter((ele) => !ele.url.includes(this.singleReuseUrls[singleIdx]));
|
|
1014
|
+
this.keepAlive.clearCache(url);
|
|
1015
|
+
}
|
|
1016
|
+
this.addTab(url, title);
|
|
1017
|
+
}
|
|
1018
|
+
else {
|
|
1019
|
+
this.selectedTab = isExistIdx;
|
|
1020
|
+
}
|
|
1021
|
+
}
|
|
1022
|
+
refreshTab() {
|
|
1023
|
+
this.keepAlive.clearCache(this.tabList[this.selectedTab].url);
|
|
1024
|
+
const currentUrl = this.router.url; // 获取当前 URL
|
|
1025
|
+
this.router.navigateByUrl("/", { skipLocationChange: true }).then(() => {
|
|
1026
|
+
this.router.navigateByUrl(currentUrl); // 重新导航到当前 URL
|
|
1027
|
+
});
|
|
1028
|
+
}
|
|
1029
|
+
clearCache(url) {
|
|
1030
|
+
this.keepAlive.clearCache(url); // 调用自定义策略的清除缓存方法
|
|
1031
|
+
}
|
|
1032
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MultiTabComponent, deps: [{ token: i1$1.Router }, { token: CommonFunctionService }, { token: i1$1.ActivatedRoute }, { token: KeepAliveService }], target: i0.ɵɵFactoryTarget.Component });
|
|
1033
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MultiTabComponent, selector: "rs-multi-tab", inputs: { singleReuseUrls: "singleReuseUrls" }, host: { listeners: { "window:resize": "onResize($event)" } }, ngImport: i0, template: "<div class=\"rs-multi-tab\">\r\n <ul>\r\n <ng-container *ngFor=\"let tab of tabList; let i = index\">\r\n <li\r\n [ngClass]=\"selectedTab === i ? 'isSelect' : 'notSelect'\"\r\n (click)=\"changeTab(tab, i)\"\r\n >\r\n <ejs-tooltip\r\n id=\"notSelectTooltip\"\r\n [showTipPointer]=\"false\"\r\n [openDelay]=\"500\"\r\n *ngIf=\"tab.displayTitle !== tab.title; else originText\"\r\n style=\"height: 27px\"\r\n >\r\n <ng-template #content>\r\n <div class=\"tooltip-content\">\r\n {{ tab.title }}\r\n </div>\r\n </ng-template>\r\n <span class=\"tabTitle\">{{ tab.displayTitle }}</span>\r\n </ejs-tooltip>\r\n <ng-template #originText>\r\n <span class=\"tabTitle\">\r\n {{ tab.displayTitle }}\r\n </span>\r\n </ng-template>\r\n <span class=\"img-block\" *ngIf=\"selectedTab !== i\"></span>\r\n <img\r\n *ngIf=\"tabList.length !== 1\"\r\n src=\"../../../assets/img/close-url.svg\"\r\n (click)=\"closeTab(tab, i)\"\r\n />\r\n </li>\r\n </ng-container>\r\n </ul>\r\n <div class=\"refresh-tab\" (click)=\"refreshTab()\">\r\n <img\r\n id=\"loadingIcon\"\r\n alt\r\n class=\"refresh-btn\"\r\n src=\"../../../assets/img/desktop-refresh-btn.svg\"\r\n />\r\n <span>Refresh Current Tab</span>\r\n </div>\r\n</div>\r\n", styles: [".rs-multi-tab{border-bottom:1px solid #e5eaef;height:28px;width:100%;display:flex;justify-content:space-between}.rs-multi-tab ul{display:flex;margin:0 8px;padding:0;overflow:hidden;height:100%}.rs-multi-tab ul li{max-width:164px;padding:0 12px;display:flex;align-items:center;flex:auto;border:1px solid #e5eaef;border-bottom:none;color:#5f6f81;font-family:Arial;font-size:11px;font-style:normal;font-weight:400;line-height:28px;height:100%;background:#f8fafb;vertical-align:top;position:relative;cursor:default}.rs-multi-tab ul li .tabTitle{display:inline-block;white-space:nowrap;font-size:11px;font-family:Arial;font-style:normal;font-weight:400;line-height:16px;transition:width .3s ease}.rs-multi-tab ul li img{border-radius:4px;padding:4px;margin-left:6px;margin-top:1px;vertical-align:top;cursor:pointer}.rs-multi-tab ul li img:hover{background:#dce8f6}.rs-multi-tab ul li:not(:last-child){border-right:none}.rs-multi-tab ul li:first-of-type{border-top-left-radius:8px}.rs-multi-tab ul li:last-child{border-top-right-radius:8px}.rs-multi-tab ul .isSelect{color:#1f3f5c;background:#fff}.rs-multi-tab ul .notSelect img{display:none}.rs-multi-tab ul .notSelect .img-block{display:inline-block;width:22px}.rs-multi-tab ul .notSelect:hover{color:#1f3f5c;background-color:#1f7bff0a}.rs-multi-tab ul .notSelect:hover .img-block{display:none}.rs-multi-tab ul .notSelect:hover img{display:inline-block}.rs-multi-tab .refresh-tab{cursor:pointer;text-align:right;color:#6c7c90;font-family:Arial;font-size:11px;font-style:normal;font-weight:400;line-height:28px;padding-right:12px}.rs-multi-tab .refresh-tab img{vertical-align:middle;margin-right:4px}.refresh-tab-loading{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.tooltip-content{padding:4px;color:#f8fafb;font-family:Arial;font-size:11px;font-style:normal;font-weight:400;line-height:14px}@media (max-width: 1400px){.refresh-tab{padding-right:0!important}.refresh-tab span{display:none!important}}@media (max-width: 1100px){.rs-multi-tab ul li img{position:absolute;right:3px;background-color:#fff}.notSelect:hover img{position:absolute;right:3px;background-color:#eff5fb}.img-block{display:none!important}}@media (max-width: 600px){.rs-multi-tab ul li{padding:0 8px}.rs-multi-tab ul .notSelect .img-block{width:0px!important}}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.TooltipComponent, selector: "ejs-tooltip", inputs: ["animation", "closeDelay", "container", "content", "cssClass", "enableHtmlParse", "enableHtmlSanitizer", "enablePersistence", "enableRtl", "height", "htmlAttributes", "isSticky", "locale", "mouseTrail", "offsetX", "offsetY", "openDelay", "opensOn", "position", "showTipPointer", "target", "tipPointerPosition", "width", "windowCollision"], outputs: ["afterClose", "afterOpen", "beforeClose", "beforeCollision", "beforeOpen", "beforeRender", "created", "destroyed"] }] });
|
|
1034
|
+
}
|
|
1035
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MultiTabComponent, decorators: [{
|
|
1036
|
+
type: Component,
|
|
1037
|
+
args: [{ selector: "rs-multi-tab", template: "<div class=\"rs-multi-tab\">\r\n <ul>\r\n <ng-container *ngFor=\"let tab of tabList; let i = index\">\r\n <li\r\n [ngClass]=\"selectedTab === i ? 'isSelect' : 'notSelect'\"\r\n (click)=\"changeTab(tab, i)\"\r\n >\r\n <ejs-tooltip\r\n id=\"notSelectTooltip\"\r\n [showTipPointer]=\"false\"\r\n [openDelay]=\"500\"\r\n *ngIf=\"tab.displayTitle !== tab.title; else originText\"\r\n style=\"height: 27px\"\r\n >\r\n <ng-template #content>\r\n <div class=\"tooltip-content\">\r\n {{ tab.title }}\r\n </div>\r\n </ng-template>\r\n <span class=\"tabTitle\">{{ tab.displayTitle }}</span>\r\n </ejs-tooltip>\r\n <ng-template #originText>\r\n <span class=\"tabTitle\">\r\n {{ tab.displayTitle }}\r\n </span>\r\n </ng-template>\r\n <span class=\"img-block\" *ngIf=\"selectedTab !== i\"></span>\r\n <img\r\n *ngIf=\"tabList.length !== 1\"\r\n src=\"../../../assets/img/close-url.svg\"\r\n (click)=\"closeTab(tab, i)\"\r\n />\r\n </li>\r\n </ng-container>\r\n </ul>\r\n <div class=\"refresh-tab\" (click)=\"refreshTab()\">\r\n <img\r\n id=\"loadingIcon\"\r\n alt\r\n class=\"refresh-btn\"\r\n src=\"../../../assets/img/desktop-refresh-btn.svg\"\r\n />\r\n <span>Refresh Current Tab</span>\r\n </div>\r\n</div>\r\n", styles: [".rs-multi-tab{border-bottom:1px solid #e5eaef;height:28px;width:100%;display:flex;justify-content:space-between}.rs-multi-tab ul{display:flex;margin:0 8px;padding:0;overflow:hidden;height:100%}.rs-multi-tab ul li{max-width:164px;padding:0 12px;display:flex;align-items:center;flex:auto;border:1px solid #e5eaef;border-bottom:none;color:#5f6f81;font-family:Arial;font-size:11px;font-style:normal;font-weight:400;line-height:28px;height:100%;background:#f8fafb;vertical-align:top;position:relative;cursor:default}.rs-multi-tab ul li .tabTitle{display:inline-block;white-space:nowrap;font-size:11px;font-family:Arial;font-style:normal;font-weight:400;line-height:16px;transition:width .3s ease}.rs-multi-tab ul li img{border-radius:4px;padding:4px;margin-left:6px;margin-top:1px;vertical-align:top;cursor:pointer}.rs-multi-tab ul li img:hover{background:#dce8f6}.rs-multi-tab ul li:not(:last-child){border-right:none}.rs-multi-tab ul li:first-of-type{border-top-left-radius:8px}.rs-multi-tab ul li:last-child{border-top-right-radius:8px}.rs-multi-tab ul .isSelect{color:#1f3f5c;background:#fff}.rs-multi-tab ul .notSelect img{display:none}.rs-multi-tab ul .notSelect .img-block{display:inline-block;width:22px}.rs-multi-tab ul .notSelect:hover{color:#1f3f5c;background-color:#1f7bff0a}.rs-multi-tab ul .notSelect:hover .img-block{display:none}.rs-multi-tab ul .notSelect:hover img{display:inline-block}.rs-multi-tab .refresh-tab{cursor:pointer;text-align:right;color:#6c7c90;font-family:Arial;font-size:11px;font-style:normal;font-weight:400;line-height:28px;padding-right:12px}.rs-multi-tab .refresh-tab img{vertical-align:middle;margin-right:4px}.refresh-tab-loading{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.tooltip-content{padding:4px;color:#f8fafb;font-family:Arial;font-size:11px;font-style:normal;font-weight:400;line-height:14px}@media (max-width: 1400px){.refresh-tab{padding-right:0!important}.refresh-tab span{display:none!important}}@media (max-width: 1100px){.rs-multi-tab ul li img{position:absolute;right:3px;background-color:#fff}.notSelect:hover img{position:absolute;right:3px;background-color:#eff5fb}.img-block{display:none!important}}@media (max-width: 600px){.rs-multi-tab ul li{padding:0 8px}.rs-multi-tab ul .notSelect .img-block{width:0px!important}}\n"] }]
|
|
1038
|
+
}], ctorParameters: function () { return [{ type: i1$1.Router }, { type: CommonFunctionService }, { type: i1$1.ActivatedRoute }, { type: KeepAliveService }]; }, propDecorators: { singleReuseUrls: [{
|
|
1039
|
+
type: Input
|
|
1040
|
+
}], onResize: [{
|
|
1041
|
+
type: HostListener,
|
|
1042
|
+
args: ["window:resize", ["$event"]]
|
|
1043
|
+
}] } });
|
|
1044
|
+
|
|
721
1045
|
// 组件类
|
|
722
1046
|
class RSFooterComponent {
|
|
723
1047
|
today = new Date();
|
|
@@ -734,15 +1058,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
734
1058
|
// 组件类
|
|
735
1059
|
class MainContainerComponent {
|
|
736
1060
|
isCollapsed = false; // 接收输入属性
|
|
1061
|
+
singleReuseUrls = []; //只能单个缓存的url
|
|
737
1062
|
ngOnInit() { }
|
|
738
1063
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MainContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
739
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MainContainerComponent, selector: "rs-main-container", inputs: { isCollapsed: "isCollapsed" }, ngImport: i0, template: "<div class=\"app-main-container\">\r\n <ng-content select=\"[headerSlot]\"></ng-content>\r\n <div class=\"main-page\">\r\n <div class=\"left-aside\" [ngClass]=\"{ isCollapsed: isCollapsed }\">\r\n <ng-content select=\"[leftAsideSlot]\"></ng-content>\r\n </div>\r\n <div class=\"right-aside\">\r\n
|
|
1064
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MainContainerComponent, selector: "rs-main-container", inputs: { isCollapsed: "isCollapsed", singleReuseUrls: "singleReuseUrls" }, ngImport: i0, template: "<div class=\"app-main-container\">\r\n <ng-content select=\"[headerSlot]\"></ng-content>\r\n <div class=\"main-page\">\r\n <div class=\"left-aside\" [ngClass]=\"{ isCollapsed: isCollapsed }\">\r\n <ng-content select=\"[leftAsideSlot]\"></ng-content>\r\n </div>\r\n <div class=\"right-aside\">\r\n <rs-multi-tab [singleReuseUrls]=\"singleReuseUrls\"></rs-multi-tab>\r\n <div class=\"router-content\">\r\n <ng-content select=\"[routerSlot]\"></ng-content>\r\n </div>\r\n <rs-footer></rs-footer>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".app-main-container{display:flex;flex-direction:column;height:100vh}.app-main-container .main-page{flex:1;height:0;display:flex;background-color:var(--rs-container-bg)}.app-main-container .left-aside{width:240px;height:100%;padding-right:16px;will-change:width;transition:width .3s}.app-main-container .left-aside.isCollapsed{width:64px;padding-right:0}.app-main-container .right-aside{width:0;flex:1;display:flex;flex-direction:column;padding-right:12px}.app-main-container .right-aside .router-content{flex:1;overflow:auto}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: RSFooterComponent, selector: "rs-footer" }, { kind: "component", type: MultiTabComponent, selector: "rs-multi-tab", inputs: ["singleReuseUrls"] }] });
|
|
740
1065
|
}
|
|
741
1066
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MainContainerComponent, decorators: [{
|
|
742
1067
|
type: Component,
|
|
743
|
-
args: [{ selector: "rs-main-container", template: "<div class=\"app-main-container\">\r\n <ng-content select=\"[headerSlot]\"></ng-content>\r\n <div class=\"main-page\">\r\n <div class=\"left-aside\" [ngClass]=\"{ isCollapsed: isCollapsed }\">\r\n <ng-content select=\"[leftAsideSlot]\"></ng-content>\r\n </div>\r\n <div class=\"right-aside\">\r\n
|
|
1068
|
+
args: [{ selector: "rs-main-container", template: "<div class=\"app-main-container\">\r\n <ng-content select=\"[headerSlot]\"></ng-content>\r\n <div class=\"main-page\">\r\n <div class=\"left-aside\" [ngClass]=\"{ isCollapsed: isCollapsed }\">\r\n <ng-content select=\"[leftAsideSlot]\"></ng-content>\r\n </div>\r\n <div class=\"right-aside\">\r\n <rs-multi-tab [singleReuseUrls]=\"singleReuseUrls\"></rs-multi-tab>\r\n <div class=\"router-content\">\r\n <ng-content select=\"[routerSlot]\"></ng-content>\r\n </div>\r\n <rs-footer></rs-footer>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".app-main-container{display:flex;flex-direction:column;height:100vh}.app-main-container .main-page{flex:1;height:0;display:flex;background-color:var(--rs-container-bg)}.app-main-container .left-aside{width:240px;height:100%;padding-right:16px;will-change:width;transition:width .3s}.app-main-container .left-aside.isCollapsed{width:64px;padding-right:0}.app-main-container .right-aside{width:0;flex:1;display:flex;flex-direction:column;padding-right:12px}.app-main-container .right-aside .router-content{flex:1;overflow:auto}\n"] }]
|
|
744
1069
|
}], propDecorators: { isCollapsed: [{
|
|
745
1070
|
type: Input
|
|
1071
|
+
}], singleReuseUrls: [{
|
|
1072
|
+
type: Input
|
|
746
1073
|
}] } });
|
|
747
1074
|
|
|
748
1075
|
// 组件类
|
|
@@ -777,11 +1104,11 @@ class RSHeaderComponent {
|
|
|
777
1104
|
this.currentLang = this.langOptions.find((item) => item.text === event.item.text);
|
|
778
1105
|
}
|
|
779
1106
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RSHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
780
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: RSHeaderComponent, selector: "rs-header", inputs: { lastLoginTime: "lastLoginTime" }, outputs: { toggleMenu: "toggleMenu" }, ngImport: i0, template: "<div class=\"rs-header\">\r\n <div class=\"logo-wrap\">\r\n <div class=\"toggle-menu-wrap\">\r\n <img\r\n class=\"toggle-menu\"\r\n src=\"../../../assets/img/toggle-menu-icon.svg\"\r\n (click)=\"onToggleMenu()\"\r\n />\r\n </div>\r\n <img\r\n class=\"logo\"\r\n src=\"../../../assets/img/raise_logo_main.svg\"\r\n alt=\"logo\"\r\n />\r\n </div>\r\n <div class=\"bread-crumbs-wrap\">\r\n <ng-content select=\"[breadCrumbs]\"></ng-content>\r\n </div>\r\n <div class=\"rs-toolbar-wrap\">\r\n <div class=\"group\">\r\n <ng-content select=\"[toolbar]\"></ng-content>\r\n </div>\r\n <div class=\"line\"></div>\r\n <div class=\"langulage-wrap\">\r\n <button\r\n class=\"e-btn text\"\r\n ejs-dropdownbutton\r\n [items]=\"langOptions\"\r\n (select)=\"selectLanguage($event)\"\r\n >\r\n {{currentLang.text}}\r\n </button>\r\n </div>\r\n <div class=\"line\"></div>\r\n <div class=\"last-login-wrap\">\r\n {{ translation?.LAST_LOGIN || \"Last Login\" }}:\r\n {{ lastLoginTime | date : \"dd MMM yy h:mm a\" }}\r\n </div>\r\n <div class=\"line\"></div>\r\n <div class=\"user-info-wrap\">\r\n <ng-content select=\"[userInfo]\"></ng-content>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".rs-header{height:50px;background-color:var(--rs-container-bg);display:flex;justify-content:space-between}.rs-header .logo-wrap{width:240px;display:flex;padding:12px 0 0 20px}.rs-header .logo-wrap .toggle-menu-wrap{cursor:pointer;margin-right:8px}.rs-header .logo-wrap .logo{width:77px;height:32px}.rs-header .rs-toolbar-wrap{display:flex;align-items:center}.rs-header .rs-toolbar-wrap .line{width:1px;height:24px;background-color:var(--rs-border-color)}.rs-header .rs-toolbar-wrap .langulage-wrap{padding:0 16px}.rs-header .rs-toolbar-wrap .last-login-wrap{padding:0 16px;color:var(--rs-labels-color);font-size:11px;font-weight:400;line-height:1}.rs-header .rs-toolbar-wrap .user-info-wrap{padding:0 20px 0 16px}\n"], dependencies: [{ kind: "component", type: i1$
|
|
1107
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: RSHeaderComponent, selector: "rs-header", inputs: { lastLoginTime: "lastLoginTime" }, outputs: { toggleMenu: "toggleMenu" }, ngImport: i0, template: "<div class=\"rs-header\">\r\n <div class=\"logo-wrap\">\r\n <div class=\"toggle-menu-wrap\">\r\n <img\r\n class=\"toggle-menu\"\r\n src=\"../../../assets/img/toggle-menu-icon.svg\"\r\n (click)=\"onToggleMenu()\"\r\n />\r\n </div>\r\n <img\r\n class=\"logo\"\r\n src=\"../../../assets/img/raise_logo_main.svg\"\r\n alt=\"logo\"\r\n />\r\n </div>\r\n <div class=\"bread-crumbs-wrap\">\r\n <ng-content select=\"[breadCrumbs]\"></ng-content>\r\n </div>\r\n <div class=\"rs-toolbar-wrap\">\r\n <div class=\"quick-icon-group\">\r\n <ng-content select=\"[toolbar]\"></ng-content>\r\n </div>\r\n <div class=\"line\"></div>\r\n <div class=\"langulage-wrap\">\r\n <button\r\n class=\"e-btn text\"\r\n ejs-dropdownbutton\r\n [items]=\"langOptions\"\r\n (select)=\"selectLanguage($event)\"\r\n >\r\n {{currentLang.text}}\r\n </button>\r\n </div>\r\n <div class=\"line\"></div>\r\n <div class=\"last-login-wrap\">\r\n {{ translation?.LAST_LOGIN || \"Last Login\" }}:\r\n {{ lastLoginTime | date : \"dd MMM yy h:mm a\" }}\r\n </div>\r\n <div class=\"line\"></div>\r\n <div class=\"user-info-wrap\">\r\n <ng-content select=\"[userInfo]\"></ng-content>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".rs-header{height:50px;background-color:var(--rs-container-bg);display:flex;justify-content:space-between}.rs-header .logo-wrap{width:240px;display:flex;padding:12px 0 0 20px}.rs-header .logo-wrap .toggle-menu-wrap{cursor:pointer;margin-right:8px}.rs-header .logo-wrap .logo{width:77px;height:32px}.rs-header .rs-toolbar-wrap,.rs-header .rs-toolbar-wrap .quick-icon-group{display:flex;align-items:center}.rs-header .rs-toolbar-wrap .quick-icon-group ::ng-deep .header-icon{width:24px;height:24px;display:flex;justify-content:center;align-items:center;margin-right:24px;cursor:pointer}.rs-header .rs-toolbar-wrap .quick-icon-group ::ng-deep .header-icon svg{width:16px;height:16px;color:#6c7c90;stroke:#6c7c90}.rs-header .rs-toolbar-wrap .quick-icon-group ::ng-deep .header-icon:hover{border-radius:4px;background:#1f7bff0a}.rs-header .rs-toolbar-wrap .quick-icon-group ::ng-deep .header-icon:hover svg{color:#1f7bff;stroke:#1f7bff}.rs-header .rs-toolbar-wrap .line{width:1px;height:24px;background-color:var(--rs-border-color)}.rs-header .rs-toolbar-wrap .langulage-wrap{padding:0 16px}.rs-header .rs-toolbar-wrap .last-login-wrap{padding:0 16px;color:var(--rs-labels-color);font-size:11px;font-weight:400;line-height:1}.rs-header .rs-toolbar-wrap .user-info-wrap{padding:0 20px 0 16px}\n"], dependencies: [{ kind: "component", type: i1$2.DropDownButtonComponent, selector: "[ejs-dropdownbutton]", inputs: ["closeActionEvents", "content", "createPopupOnClick", "cssClass", "disabled", "enableHtmlSanitizer", "enablePersistence", "enableRtl", "iconCss", "iconPosition", "items", "locale", "target"], outputs: ["beforeClose", "beforeItemRender", "beforeOpen", "close", "created", "open", "select"] }, { kind: "pipe", type: i1.DatePipe, name: "date" }] });
|
|
781
1108
|
}
|
|
782
1109
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RSHeaderComponent, decorators: [{
|
|
783
1110
|
type: Component,
|
|
784
|
-
args: [{ selector: "rs-header", template: "<div class=\"rs-header\">\r\n <div class=\"logo-wrap\">\r\n <div class=\"toggle-menu-wrap\">\r\n <img\r\n class=\"toggle-menu\"\r\n src=\"../../../assets/img/toggle-menu-icon.svg\"\r\n (click)=\"onToggleMenu()\"\r\n />\r\n </div>\r\n <img\r\n class=\"logo\"\r\n src=\"../../../assets/img/raise_logo_main.svg\"\r\n alt=\"logo\"\r\n />\r\n </div>\r\n <div class=\"bread-crumbs-wrap\">\r\n <ng-content select=\"[breadCrumbs]\"></ng-content>\r\n </div>\r\n <div class=\"rs-toolbar-wrap\">\r\n <div class=\"group\">\r\n <ng-content select=\"[toolbar]\"></ng-content>\r\n </div>\r\n <div class=\"line\"></div>\r\n <div class=\"langulage-wrap\">\r\n <button\r\n class=\"e-btn text\"\r\n ejs-dropdownbutton\r\n [items]=\"langOptions\"\r\n (select)=\"selectLanguage($event)\"\r\n >\r\n {{currentLang.text}}\r\n </button>\r\n </div>\r\n <div class=\"line\"></div>\r\n <div class=\"last-login-wrap\">\r\n {{ translation?.LAST_LOGIN || \"Last Login\" }}:\r\n {{ lastLoginTime | date : \"dd MMM yy h:mm a\" }}\r\n </div>\r\n <div class=\"line\"></div>\r\n <div class=\"user-info-wrap\">\r\n <ng-content select=\"[userInfo]\"></ng-content>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".rs-header{height:50px;background-color:var(--rs-container-bg);display:flex;justify-content:space-between}.rs-header .logo-wrap{width:240px;display:flex;padding:12px 0 0 20px}.rs-header .logo-wrap .toggle-menu-wrap{cursor:pointer;margin-right:8px}.rs-header .logo-wrap .logo{width:77px;height:32px}.rs-header .rs-toolbar-wrap{display:flex;align-items:center}.rs-header .rs-toolbar-wrap .line{width:1px;height:24px;background-color:var(--rs-border-color)}.rs-header .rs-toolbar-wrap .langulage-wrap{padding:0 16px}.rs-header .rs-toolbar-wrap .last-login-wrap{padding:0 16px;color:var(--rs-labels-color);font-size:11px;font-weight:400;line-height:1}.rs-header .rs-toolbar-wrap .user-info-wrap{padding:0 20px 0 16px}\n"] }]
|
|
1111
|
+
args: [{ selector: "rs-header", template: "<div class=\"rs-header\">\r\n <div class=\"logo-wrap\">\r\n <div class=\"toggle-menu-wrap\">\r\n <img\r\n class=\"toggle-menu\"\r\n src=\"../../../assets/img/toggle-menu-icon.svg\"\r\n (click)=\"onToggleMenu()\"\r\n />\r\n </div>\r\n <img\r\n class=\"logo\"\r\n src=\"../../../assets/img/raise_logo_main.svg\"\r\n alt=\"logo\"\r\n />\r\n </div>\r\n <div class=\"bread-crumbs-wrap\">\r\n <ng-content select=\"[breadCrumbs]\"></ng-content>\r\n </div>\r\n <div class=\"rs-toolbar-wrap\">\r\n <div class=\"quick-icon-group\">\r\n <ng-content select=\"[toolbar]\"></ng-content>\r\n </div>\r\n <div class=\"line\"></div>\r\n <div class=\"langulage-wrap\">\r\n <button\r\n class=\"e-btn text\"\r\n ejs-dropdownbutton\r\n [items]=\"langOptions\"\r\n (select)=\"selectLanguage($event)\"\r\n >\r\n {{currentLang.text}}\r\n </button>\r\n </div>\r\n <div class=\"line\"></div>\r\n <div class=\"last-login-wrap\">\r\n {{ translation?.LAST_LOGIN || \"Last Login\" }}:\r\n {{ lastLoginTime | date : \"dd MMM yy h:mm a\" }}\r\n </div>\r\n <div class=\"line\"></div>\r\n <div class=\"user-info-wrap\">\r\n <ng-content select=\"[userInfo]\"></ng-content>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".rs-header{height:50px;background-color:var(--rs-container-bg);display:flex;justify-content:space-between}.rs-header .logo-wrap{width:240px;display:flex;padding:12px 0 0 20px}.rs-header .logo-wrap .toggle-menu-wrap{cursor:pointer;margin-right:8px}.rs-header .logo-wrap .logo{width:77px;height:32px}.rs-header .rs-toolbar-wrap,.rs-header .rs-toolbar-wrap .quick-icon-group{display:flex;align-items:center}.rs-header .rs-toolbar-wrap .quick-icon-group ::ng-deep .header-icon{width:24px;height:24px;display:flex;justify-content:center;align-items:center;margin-right:24px;cursor:pointer}.rs-header .rs-toolbar-wrap .quick-icon-group ::ng-deep .header-icon svg{width:16px;height:16px;color:#6c7c90;stroke:#6c7c90}.rs-header .rs-toolbar-wrap .quick-icon-group ::ng-deep .header-icon:hover{border-radius:4px;background:#1f7bff0a}.rs-header .rs-toolbar-wrap .quick-icon-group ::ng-deep .header-icon:hover svg{color:#1f7bff;stroke:#1f7bff}.rs-header .rs-toolbar-wrap .line{width:1px;height:24px;background-color:var(--rs-border-color)}.rs-header .rs-toolbar-wrap .langulage-wrap{padding:0 16px}.rs-header .rs-toolbar-wrap .last-login-wrap{padding:0 16px;color:var(--rs-labels-color);font-size:11px;font-weight:400;line-height:1}.rs-header .rs-toolbar-wrap .user-info-wrap{padding:0 20px 0 16px}\n"] }]
|
|
785
1112
|
}], propDecorators: { toggleMenu: [{
|
|
786
1113
|
type: Output
|
|
787
1114
|
}], lastLoginTime: [{
|
|
@@ -800,15 +1127,15 @@ class RSAsideComponent {
|
|
|
800
1127
|
currentNav = null;
|
|
801
1128
|
onNavClick(item) {
|
|
802
1129
|
this.currentNav = item.title;
|
|
803
|
-
this.router.navigate([item.url]);
|
|
1130
|
+
this.router.navigate([item.url], { state: { title: item.title } });
|
|
804
1131
|
}
|
|
805
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RSAsideComponent, deps: [{ token: i1$
|
|
806
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: RSAsideComponent, selector: "rs-aside", inputs: { isCollapsed: "isCollapsed", navList: "navList" }, ngImport: i0, template: "<div class=\"rs-aside\">\r\n <div class=\"nav-list\">\r\n <div\r\n class=\"nav-item\"\r\n [ngClass]=\"{ isCurrent: currentNav === nav.title }\"\r\n *ngFor=\"let nav of navList\"\r\n (click)=\"onNavClick(nav)\"\r\n >\r\n <div class=\"nav-item-inner\">\r\n <
|
|
1132
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RSAsideComponent, deps: [{ token: i1$1.Router }], target: i0.ɵɵFactoryTarget.Component });
|
|
1133
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: RSAsideComponent, selector: "rs-aside", inputs: { isCollapsed: "isCollapsed", navList: "navList" }, ngImport: i0, template: "<div class=\"rs-aside\">\r\n <div class=\"nav-list\">\r\n <div\r\n class=\"nav-item\"\r\n [ngClass]=\"{ isCurrent: currentNav === nav.title }\"\r\n *ngFor=\"let nav of navList\"\r\n (click)=\"onNavClick(nav)\"\r\n >\r\n <div class=\"nav-item-inner\">\r\n <mat-icon class=\"menu-icon\" [svgIcon]=\"nav.icon\"></mat-icon>\r\n <span class=\"nav-text\" [ngClass]=\"{ isCollapsed: isCollapsed }\">{{\r\n nav.title\r\n }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"bottom-iconbox\" [ngClass]=\"{ isCollapsed: isCollapsed }\">\r\n <ng-content select=\"[bottomIconBox]\"></ng-content>\r\n </div>\r\n</div>\r\n", styles: [".rs-aside{display:flex;flex-direction:column;height:100%}.rs-aside .nav-list{padding-top:12px;flex:1;overflow:auto;height:0}.rs-aside .nav-list .nav-item{height:32px;cursor:pointer;padding-left:11px}.rs-aside .nav-list .nav-item .nav-item-inner{display:flex;align-items:center;padding:8px 8px 8px 12px}.rs-aside .nav-list .nav-item .nav-item-inner ::ng-deep .menu-icon{width:33px;height:16px}.rs-aside .nav-list .nav-item .nav-item-inner ::ng-deep .menu-icon svg{width:16px;height:16px;color:#6c7c90;stroke:#6c7c90}.rs-aside .nav-list .nav-item:hover .nav-item-inner{border-radius:6px;background:#1f7bff0a}.rs-aside .nav-list .nav-item:hover .nav-item-inner ::ng-deep .menu-icon svg{color:#44566c;stroke:#44566c}.rs-aside .nav-list .nav-item .nav-text{color:#5f6f81;font-family:Arial;font-size:12px;font-weight:400;line-height:16px;transition:all .3s;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;position:relative;top:1px}.rs-aside .nav-list .nav-item .nav-text.isCollapsed{opacity:0;width:0}.rs-aside .nav-list .nav-item.isCurrent{position:relative}.rs-aside .nav-list .nav-item.isCurrent .nav-text{color:#44566c;font-weight:700}.rs-aside .nav-list .nav-item.isCurrent:before{content:\"\";position:absolute;left:4px;top:8px;width:3px;height:16px;background-color:#1364b3;border-radius:2px}.rs-aside .bottom-iconbox{padding:12px 20px;height:48px;display:flex;gap:12px}.rs-aside .bottom-iconbox ::ng-deep .menu-bottom-icon{width:24px;height:24px;display:flex;justify-content:center;align-items:center;border:1px solid #eaedf0;border-radius:24px;cursor:pointer}.rs-aside .bottom-iconbox ::ng-deep .menu-bottom-icon svg{width:16px;height:16px;color:#6c7c90;stroke:#6c7c90}.rs-aside .bottom-iconbox ::ng-deep .menu-bottom-icon.disabled{cursor:default;opacity:.5}.rs-aside .bottom-iconbox ::ng-deep .menu-bottom-icon:not(.disabled):hover{background-color:#fff}.rs-aside .bottom-iconbox ::ng-deep .menu-bottom-icon:not(.disabled):hover svg{color:#1f7bff;stroke:#1f7bff}.rs-aside .bottom-iconbox.isCollapsed{flex-direction:column;height:auto}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i1$3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] });
|
|
807
1134
|
}
|
|
808
1135
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RSAsideComponent, decorators: [{
|
|
809
1136
|
type: Component,
|
|
810
|
-
args: [{ selector: "rs-aside", template: "<div class=\"rs-aside\">\r\n <div class=\"nav-list\">\r\n <div\r\n class=\"nav-item\"\r\n [ngClass]=\"{ isCurrent: currentNav === nav.title }\"\r\n *ngFor=\"let nav of navList\"\r\n (click)=\"onNavClick(nav)\"\r\n >\r\n <div class=\"nav-item-inner\">\r\n <
|
|
811
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
1137
|
+
args: [{ selector: "rs-aside", template: "<div class=\"rs-aside\">\r\n <div class=\"nav-list\">\r\n <div\r\n class=\"nav-item\"\r\n [ngClass]=\"{ isCurrent: currentNav === nav.title }\"\r\n *ngFor=\"let nav of navList\"\r\n (click)=\"onNavClick(nav)\"\r\n >\r\n <div class=\"nav-item-inner\">\r\n <mat-icon class=\"menu-icon\" [svgIcon]=\"nav.icon\"></mat-icon>\r\n <span class=\"nav-text\" [ngClass]=\"{ isCollapsed: isCollapsed }\">{{\r\n nav.title\r\n }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"bottom-iconbox\" [ngClass]=\"{ isCollapsed: isCollapsed }\">\r\n <ng-content select=\"[bottomIconBox]\"></ng-content>\r\n </div>\r\n</div>\r\n", styles: [".rs-aside{display:flex;flex-direction:column;height:100%}.rs-aside .nav-list{padding-top:12px;flex:1;overflow:auto;height:0}.rs-aside .nav-list .nav-item{height:32px;cursor:pointer;padding-left:11px}.rs-aside .nav-list .nav-item .nav-item-inner{display:flex;align-items:center;padding:8px 8px 8px 12px}.rs-aside .nav-list .nav-item .nav-item-inner ::ng-deep .menu-icon{width:33px;height:16px}.rs-aside .nav-list .nav-item .nav-item-inner ::ng-deep .menu-icon svg{width:16px;height:16px;color:#6c7c90;stroke:#6c7c90}.rs-aside .nav-list .nav-item:hover .nav-item-inner{border-radius:6px;background:#1f7bff0a}.rs-aside .nav-list .nav-item:hover .nav-item-inner ::ng-deep .menu-icon svg{color:#44566c;stroke:#44566c}.rs-aside .nav-list .nav-item .nav-text{color:#5f6f81;font-family:Arial;font-size:12px;font-weight:400;line-height:16px;transition:all .3s;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;position:relative;top:1px}.rs-aside .nav-list .nav-item .nav-text.isCollapsed{opacity:0;width:0}.rs-aside .nav-list .nav-item.isCurrent{position:relative}.rs-aside .nav-list .nav-item.isCurrent .nav-text{color:#44566c;font-weight:700}.rs-aside .nav-list .nav-item.isCurrent:before{content:\"\";position:absolute;left:4px;top:8px;width:3px;height:16px;background-color:#1364b3;border-radius:2px}.rs-aside .bottom-iconbox{padding:12px 20px;height:48px;display:flex;gap:12px}.rs-aside .bottom-iconbox ::ng-deep .menu-bottom-icon{width:24px;height:24px;display:flex;justify-content:center;align-items:center;border:1px solid #eaedf0;border-radius:24px;cursor:pointer}.rs-aside .bottom-iconbox ::ng-deep .menu-bottom-icon svg{width:16px;height:16px;color:#6c7c90;stroke:#6c7c90}.rs-aside .bottom-iconbox ::ng-deep .menu-bottom-icon.disabled{cursor:default;opacity:.5}.rs-aside .bottom-iconbox ::ng-deep .menu-bottom-icon:not(.disabled):hover{background-color:#fff}.rs-aside .bottom-iconbox ::ng-deep .menu-bottom-icon:not(.disabled):hover svg{color:#1f7bff;stroke:#1f7bff}.rs-aside .bottom-iconbox.isCollapsed{flex-direction:column;height:auto}\n"] }]
|
|
1138
|
+
}], ctorParameters: function () { return [{ type: i1$1.Router }]; }, propDecorators: { isCollapsed: [{
|
|
812
1139
|
type: Input
|
|
813
1140
|
}], navList: [{
|
|
814
1141
|
type: Input
|
|
@@ -1000,37 +1327,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
1000
1327
|
type: Output
|
|
1001
1328
|
}] } });
|
|
1002
1329
|
|
|
1003
|
-
class CommonFunctionService {
|
|
1004
|
-
constructor() { }
|
|
1005
|
-
testMethod() {
|
|
1006
|
-
return "test1111";
|
|
1007
|
-
}
|
|
1008
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CommonFunctionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1009
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CommonFunctionService, providedIn: "root" });
|
|
1010
|
-
}
|
|
1011
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CommonFunctionService, decorators: [{
|
|
1012
|
-
type: Injectable,
|
|
1013
|
-
args: [{
|
|
1014
|
-
providedIn: "root",
|
|
1015
|
-
}]
|
|
1016
|
-
}], ctorParameters: function () { return []; } });
|
|
1017
|
-
|
|
1018
1330
|
class IconLoaderService {
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
1331
|
+
registry;
|
|
1332
|
+
domSanitizer;
|
|
1333
|
+
constructor(registry, domSanitizer) {
|
|
1334
|
+
this.registry = registry;
|
|
1335
|
+
this.domSanitizer = domSanitizer;
|
|
1022
1336
|
}
|
|
1023
1337
|
registerIcons(list) {
|
|
1024
|
-
list.forEach((
|
|
1025
|
-
this.
|
|
1338
|
+
list.forEach(({ name, path }) => {
|
|
1339
|
+
this.registry.addSvgIcon(name, this.domSanitizer.bypassSecurityTrustResourceUrl(path));
|
|
1026
1340
|
});
|
|
1027
1341
|
}
|
|
1028
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: IconLoaderService, deps: [{ token: i1$3.
|
|
1342
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: IconLoaderService, deps: [{ token: i1$3.MatIconRegistry }, { token: i2$3.DomSanitizer }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1029
1343
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: IconLoaderService });
|
|
1030
1344
|
}
|
|
1031
1345
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: IconLoaderService, decorators: [{
|
|
1032
1346
|
type: Injectable
|
|
1033
|
-
}], ctorParameters: function () { return [{ type: i1$3.
|
|
1347
|
+
}], ctorParameters: function () { return [{ type: i1$3.MatIconRegistry }, { type: i2$3.DomSanitizer }]; } });
|
|
1034
1348
|
|
|
1035
1349
|
;
|
|
1036
1350
|
class NewActionNotificationComponent {
|
|
@@ -1331,10 +1645,13 @@ class RaiseCommonLibModule {
|
|
|
1331
1645
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RaiseCommonLibModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
1332
1646
|
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: RaiseCommonLibModule, declarations: [CommonGridComponent,
|
|
1333
1647
|
FloatBoxComponent,
|
|
1334
|
-
|
|
1648
|
+
RsPageListComponent,
|
|
1649
|
+
RsPageTabComponent,
|
|
1650
|
+
GridBoxComponent,
|
|
1335
1651
|
RSHeaderComponent,
|
|
1336
1652
|
RSFooterComponent,
|
|
1337
1653
|
RSAsideComponent,
|
|
1654
|
+
MultiTabComponent,
|
|
1338
1655
|
MainContainerComponent,
|
|
1339
1656
|
TagInputComponent,
|
|
1340
1657
|
RadioGroupComponent,
|
|
@@ -1348,6 +1665,7 @@ class RaiseCommonLibModule {
|
|
|
1348
1665
|
FormsModule,
|
|
1349
1666
|
MatSnackBarModule,
|
|
1350
1667
|
MatDialogModule,
|
|
1668
|
+
MatIconModule,
|
|
1351
1669
|
GridModule,
|
|
1352
1670
|
PagerModule,
|
|
1353
1671
|
GridAllModule,
|
|
@@ -1379,9 +1697,11 @@ class RaiseCommonLibModule {
|
|
|
1379
1697
|
DashboardLayoutModule,
|
|
1380
1698
|
CarouselAllModule,
|
|
1381
1699
|
ToolbarModule,
|
|
1700
|
+
TabModule,
|
|
1382
1701
|
PdfViewerModule,
|
|
1383
1702
|
DropDownButtonModule,
|
|
1384
|
-
|
|
1703
|
+
SplitButtonModule,
|
|
1704
|
+
RichTextEditorAllModule], exports: [CommonModule,
|
|
1385
1705
|
HttpClientModule,
|
|
1386
1706
|
ReactiveFormsModule,
|
|
1387
1707
|
FormsModule,
|
|
@@ -1418,15 +1738,20 @@ class RaiseCommonLibModule {
|
|
|
1418
1738
|
DashboardLayoutModule,
|
|
1419
1739
|
CarouselAllModule,
|
|
1420
1740
|
ToolbarModule,
|
|
1741
|
+
TabModule,
|
|
1421
1742
|
PdfViewerModule,
|
|
1422
1743
|
DropDownButtonModule,
|
|
1744
|
+
SplitButtonModule,
|
|
1423
1745
|
RichTextEditorAllModule,
|
|
1424
1746
|
CommonGridComponent,
|
|
1425
1747
|
FloatBoxComponent,
|
|
1426
|
-
|
|
1748
|
+
RsPageListComponent,
|
|
1749
|
+
RsPageTabComponent,
|
|
1750
|
+
GridBoxComponent,
|
|
1427
1751
|
RSHeaderComponent,
|
|
1428
1752
|
RSFooterComponent,
|
|
1429
1753
|
RSAsideComponent,
|
|
1754
|
+
MultiTabComponent,
|
|
1430
1755
|
MainContainerComponent,
|
|
1431
1756
|
TagInputComponent,
|
|
1432
1757
|
RadioGroupComponent,
|
|
@@ -1465,12 +1790,14 @@ class RaiseCommonLibModule {
|
|
|
1465
1790
|
CommonFunctionService,
|
|
1466
1791
|
IconLoaderService,
|
|
1467
1792
|
DialogService,
|
|
1793
|
+
KeepAliveService,
|
|
1468
1794
|
], imports: [CommonModule,
|
|
1469
1795
|
HttpClientModule,
|
|
1470
1796
|
ReactiveFormsModule,
|
|
1471
1797
|
FormsModule,
|
|
1472
1798
|
MatSnackBarModule,
|
|
1473
1799
|
MatDialogModule,
|
|
1800
|
+
MatIconModule,
|
|
1474
1801
|
GridModule,
|
|
1475
1802
|
PagerModule,
|
|
1476
1803
|
GridAllModule,
|
|
@@ -1502,10 +1829,11 @@ class RaiseCommonLibModule {
|
|
|
1502
1829
|
DashboardLayoutModule,
|
|
1503
1830
|
CarouselAllModule,
|
|
1504
1831
|
ToolbarModule,
|
|
1832
|
+
TabModule,
|
|
1505
1833
|
PdfViewerModule,
|
|
1506
1834
|
DropDownButtonModule,
|
|
1507
|
-
|
|
1508
|
-
|
|
1835
|
+
SplitButtonModule,
|
|
1836
|
+
RichTextEditorAllModule, CommonModule,
|
|
1509
1837
|
HttpClientModule,
|
|
1510
1838
|
ReactiveFormsModule,
|
|
1511
1839
|
FormsModule,
|
|
@@ -1542,8 +1870,10 @@ class RaiseCommonLibModule {
|
|
|
1542
1870
|
DashboardLayoutModule,
|
|
1543
1871
|
CarouselAllModule,
|
|
1544
1872
|
ToolbarModule,
|
|
1873
|
+
TabModule,
|
|
1545
1874
|
PdfViewerModule,
|
|
1546
1875
|
DropDownButtonModule,
|
|
1876
|
+
SplitButtonModule,
|
|
1547
1877
|
RichTextEditorAllModule] });
|
|
1548
1878
|
}
|
|
1549
1879
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RaiseCommonLibModule, decorators: [{
|
|
@@ -1552,10 +1882,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
1552
1882
|
declarations: [
|
|
1553
1883
|
CommonGridComponent,
|
|
1554
1884
|
FloatBoxComponent,
|
|
1555
|
-
|
|
1885
|
+
RsPageListComponent,
|
|
1886
|
+
RsPageTabComponent,
|
|
1887
|
+
GridBoxComponent,
|
|
1556
1888
|
RSHeaderComponent,
|
|
1557
1889
|
RSFooterComponent,
|
|
1558
1890
|
RSAsideComponent,
|
|
1891
|
+
MultiTabComponent,
|
|
1559
1892
|
MainContainerComponent,
|
|
1560
1893
|
TagInputComponent,
|
|
1561
1894
|
RadioGroupComponent,
|
|
@@ -1572,6 +1905,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
1572
1905
|
FormsModule,
|
|
1573
1906
|
MatSnackBarModule,
|
|
1574
1907
|
MatDialogModule,
|
|
1908
|
+
MatIconModule,
|
|
1575
1909
|
GridModule,
|
|
1576
1910
|
PagerModule,
|
|
1577
1911
|
GridAllModule,
|
|
@@ -1603,10 +1937,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
1603
1937
|
DashboardLayoutModule,
|
|
1604
1938
|
CarouselAllModule,
|
|
1605
1939
|
ToolbarModule,
|
|
1940
|
+
TabModule,
|
|
1606
1941
|
PdfViewerModule,
|
|
1607
1942
|
DropDownButtonModule,
|
|
1943
|
+
SplitButtonModule,
|
|
1608
1944
|
RichTextEditorAllModule,
|
|
1609
|
-
AngularSvgIconModule.forRoot(),
|
|
1610
1945
|
],
|
|
1611
1946
|
providers: [
|
|
1612
1947
|
PageService,
|
|
@@ -1641,6 +1976,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
1641
1976
|
CommonFunctionService,
|
|
1642
1977
|
IconLoaderService,
|
|
1643
1978
|
DialogService,
|
|
1979
|
+
KeepAliveService,
|
|
1644
1980
|
],
|
|
1645
1981
|
exports: [
|
|
1646
1982
|
CommonModule,
|
|
@@ -1680,15 +2016,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
1680
2016
|
DashboardLayoutModule,
|
|
1681
2017
|
CarouselAllModule,
|
|
1682
2018
|
ToolbarModule,
|
|
2019
|
+
TabModule,
|
|
1683
2020
|
PdfViewerModule,
|
|
1684
2021
|
DropDownButtonModule,
|
|
2022
|
+
SplitButtonModule,
|
|
1685
2023
|
RichTextEditorAllModule,
|
|
1686
2024
|
CommonGridComponent,
|
|
1687
2025
|
FloatBoxComponent,
|
|
1688
|
-
|
|
2026
|
+
RsPageListComponent,
|
|
2027
|
+
RsPageTabComponent,
|
|
2028
|
+
GridBoxComponent,
|
|
1689
2029
|
RSHeaderComponent,
|
|
1690
2030
|
RSFooterComponent,
|
|
1691
2031
|
RSAsideComponent,
|
|
2032
|
+
MultiTabComponent,
|
|
1692
2033
|
MainContainerComponent,
|
|
1693
2034
|
TagInputComponent,
|
|
1694
2035
|
RadioGroupComponent,
|
|
@@ -1706,5 +2047,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
1706
2047
|
* Generated bundle index. Do not edit.
|
|
1707
2048
|
*/
|
|
1708
2049
|
|
|
1709
|
-
export { CheckboxGroupComponent, CommonFunctionService, CommonGridComponent,
|
|
2050
|
+
export { CheckboxGroupComponent, CommonFunctionService, CommonGridComponent, DialogService, FloatBoxComponent, GridBoxComponent, IconLoaderService, KeepAliveService, MainContainerComponent, MessageType, MultiTabComponent, RSAsideComponent, RSFooterComponent, RSHeaderComponent, RadioGroupComponent, RaiseCommonLibModule, RsPageListComponent, RsPageTabComponent, SwitchInputComponent, TagInputComponent };
|
|
1710
2051
|
//# sourceMappingURL=raise-common-lib-new.mjs.map
|