raise-common-lib 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.
Files changed (54) hide show
  1. package/bundles/raise-common-lib.umd.js +772 -71
  2. package/bundles/raise-common-lib.umd.js.map +1 -1
  3. package/bundles/raise-common-lib.umd.min.js +2 -2
  4. package/bundles/raise-common-lib.umd.min.js.map +1 -1
  5. package/esm2015/lib/layout/grid-box/index.component.js +68 -0
  6. package/esm2015/lib/layout/main-container/index.component.js +10 -5
  7. package/esm2015/lib/layout/multi-tab/index.component.js +298 -0
  8. package/esm2015/lib/layout/page-list/index.component.js +69 -0
  9. package/esm2015/lib/layout/page-tab/index.component.js +58 -0
  10. package/esm2015/lib/layout/rs-aside/index.component.js +4 -4
  11. package/esm2015/lib/layout/rs-header/index.component.js +3 -3
  12. package/esm2015/lib/raise-common-lib.module.js +23 -8
  13. package/esm2015/lib/service/common-function.service.js +55 -1
  14. package/esm2015/lib/service/icon-loader.service.js +19 -10
  15. package/esm2015/lib/service/keep-alive.service.js +88 -0
  16. package/esm2015/public-api.js +6 -2
  17. package/esm2015/raise-common-lib.js +2 -2
  18. package/esm5/lib/layout/grid-box/index.component.js +80 -0
  19. package/esm5/lib/layout/main-container/index.component.js +11 -6
  20. package/esm5/lib/layout/multi-tab/index.component.js +347 -0
  21. package/esm5/lib/layout/page-list/index.component.js +81 -0
  22. package/esm5/lib/layout/page-tab/index.component.js +67 -0
  23. package/esm5/lib/layout/rs-aside/index.component.js +4 -4
  24. package/esm5/lib/layout/rs-header/index.component.js +3 -3
  25. package/esm5/lib/raise-common-lib.module.js +23 -8
  26. package/esm5/lib/service/common-function.service.js +67 -1
  27. package/esm5/lib/service/icon-loader.service.js +18 -9
  28. package/esm5/lib/service/keep-alive.service.js +129 -0
  29. package/esm5/public-api.js +6 -2
  30. package/esm5/raise-common-lib.js +2 -2
  31. package/fesm2015/raise-common-lib.js +643 -62
  32. package/fesm2015/raise-common-lib.js.map +1 -1
  33. package/fesm5/raise-common-lib.js +771 -72
  34. package/fesm5/raise-common-lib.js.map +1 -1
  35. package/lib/layout/{common-list → grid-box}/index.component.d.ts +1 -1
  36. package/lib/layout/main-container/index.component.d.ts +1 -0
  37. package/lib/layout/multi-tab/index.component.d.ts +37 -0
  38. package/lib/layout/page-list/index.component.d.ts +12 -0
  39. package/lib/layout/page-tab/index.component.d.ts +11 -0
  40. package/lib/service/common-function.service.d.ts +2 -0
  41. package/lib/service/icon-loader.service.d.ts +5 -3
  42. package/lib/service/keep-alive.service.d.ts +11 -0
  43. package/package.json +1 -1
  44. package/public-api.d.ts +5 -1
  45. package/raise-common-lib.metadata.json +1 -1
  46. package/src/assets/img/close-url.svg +10 -0
  47. package/src/assets/img/desktop-refresh-btn.svg +6 -0
  48. package/src/assets/img/icon-more-active.svg +7 -0
  49. package/src/assets/img/icon-more.svg +7 -0
  50. package/src/assets/img/split-button-arrow copy.svg +3 -0
  51. package/src/assets/img/split-button-arrow.svg +3 -0
  52. package/src/assets/style/reset/button.scss +38 -3
  53. package/esm2015/lib/layout/common-list/index.component.js +0 -69
  54. package/esm5/lib/layout/common-list/index.component.js +0 -81
@@ -1,8 +1,8 @@
1
1
  (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@syncfusion/ej2-angular-grids'), require('lodash'), require('@angular/router'), require('angular-svg-icon'), require('@angular/material/snack-bar'), require('@angular/material/dialog'), require('@angular/forms'), require('@angular/common/http'), require('@angular/common'), require('@syncfusion/ej2-angular-buttons'), require('@syncfusion/ej2-angular-diagrams'), require('@syncfusion/ej2-angular-popups'), require('@syncfusion/ej2-angular-calendars'), require('@syncfusion/ej2-angular-inputs'), require('@syncfusion/ej2-angular-dropdowns'), require('@syncfusion/ej2-angular-pivotview'), require('@syncfusion/ej2-angular-charts'), require('@syncfusion/ej2-angular-layouts'), require('@syncfusion/ej2-angular-navigations'), require('@syncfusion/ej2-angular-pdfviewer'), require('@syncfusion/ej2-angular-splitbuttons'), require('@syncfusion/ej2-angular-richtexteditor')) :
3
- typeof define === 'function' && define.amd ? define('raise-common-lib', ['exports', '@angular/core', '@syncfusion/ej2-angular-grids', 'lodash', '@angular/router', 'angular-svg-icon', '@angular/material/snack-bar', '@angular/material/dialog', '@angular/forms', '@angular/common/http', '@angular/common', '@syncfusion/ej2-angular-buttons', '@syncfusion/ej2-angular-diagrams', '@syncfusion/ej2-angular-popups', '@syncfusion/ej2-angular-calendars', '@syncfusion/ej2-angular-inputs', '@syncfusion/ej2-angular-dropdowns', '@syncfusion/ej2-angular-pivotview', '@syncfusion/ej2-angular-charts', '@syncfusion/ej2-angular-layouts', '@syncfusion/ej2-angular-navigations', '@syncfusion/ej2-angular-pdfviewer', '@syncfusion/ej2-angular-splitbuttons', '@syncfusion/ej2-angular-richtexteditor'], factory) :
4
- (global = global || self, factory(global['raise-common-lib'] = {}, global.ng.core, global.ej2AngularGrids, global.lodash, global.ng.router, global.angularSvgIcon, global.ng.material['snack-bar'], global.ng.material.dialog, global.ng.forms, global.ng.common.http, global.ng.common, global.ej2AngularButtons, global.ej2AngularDiagrams, global.ej2AngularPopups, global.ej2AngularCalendars, global.ej2AngularInputs, global.ej2AngularDropdowns, global.ej2AngularPivotview, global.ej2AngularCharts, global.ej2AngularLayouts, global.ej2AngularNavigations, global.ej2AngularPdfviewer, global.ej2AngularSplitbuttons, global.ej2AngularRichtexteditor));
5
- }(this, (function (exports, core, ej2AngularGrids, lodash, router, angularSvgIcon, snackBar, dialog, forms, http, common, ej2AngularButtons, ej2AngularDiagrams, ej2AngularPopups, ej2AngularCalendars, ej2AngularInputs, ej2AngularDropdowns, ej2AngularPivotview, ej2AngularCharts, ej2AngularLayouts, ej2AngularNavigations, ej2AngularPdfviewer, ej2AngularSplitbuttons, ej2AngularRichtexteditor) { 'use strict';
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@syncfusion/ej2-angular-grids'), require('lodash'), require('@angular/router'), require('rxjs/operators'), require('@angular/material/icon'), require('@angular/platform-browser'), require('@angular/material/snack-bar'), require('@angular/material/dialog'), require('@angular/forms'), require('@angular/common/http'), require('@angular/common'), require('@syncfusion/ej2-angular-buttons'), require('@syncfusion/ej2-angular-diagrams'), require('@syncfusion/ej2-angular-popups'), require('@syncfusion/ej2-angular-calendars'), require('@syncfusion/ej2-angular-inputs'), require('@syncfusion/ej2-angular-dropdowns'), require('@syncfusion/ej2-angular-pivotview'), require('@syncfusion/ej2-angular-charts'), require('@syncfusion/ej2-angular-layouts'), require('@syncfusion/ej2-angular-navigations'), require('@syncfusion/ej2-angular-pdfviewer'), require('@syncfusion/ej2-angular-splitbuttons'), require('@syncfusion/ej2-angular-richtexteditor')) :
3
+ typeof define === 'function' && define.amd ? define('raise-common-lib', ['exports', '@angular/core', '@syncfusion/ej2-angular-grids', 'lodash', '@angular/router', 'rxjs/operators', '@angular/material/icon', '@angular/platform-browser', '@angular/material/snack-bar', '@angular/material/dialog', '@angular/forms', '@angular/common/http', '@angular/common', '@syncfusion/ej2-angular-buttons', '@syncfusion/ej2-angular-diagrams', '@syncfusion/ej2-angular-popups', '@syncfusion/ej2-angular-calendars', '@syncfusion/ej2-angular-inputs', '@syncfusion/ej2-angular-dropdowns', '@syncfusion/ej2-angular-pivotview', '@syncfusion/ej2-angular-charts', '@syncfusion/ej2-angular-layouts', '@syncfusion/ej2-angular-navigations', '@syncfusion/ej2-angular-pdfviewer', '@syncfusion/ej2-angular-splitbuttons', '@syncfusion/ej2-angular-richtexteditor'], factory) :
4
+ (global = global || self, factory(global['raise-common-lib'] = {}, global.ng.core, global.ej2AngularGrids, global.lodash, global.ng.router, global.rxjs.operators, global.ng.material.icon, global.ng.platformBrowser, global.ng.material['snack-bar'], global.ng.material.dialog, global.ng.forms, global.ng.common.http, global.ng.common, global.ej2AngularButtons, global.ej2AngularDiagrams, global.ej2AngularPopups, global.ej2AngularCalendars, global.ej2AngularInputs, global.ej2AngularDropdowns, global.ej2AngularPivotview, global.ej2AngularCharts, global.ej2AngularLayouts, global.ej2AngularNavigations, global.ej2AngularPdfviewer, global.ej2AngularSplitbuttons, global.ej2AngularRichtexteditor));
5
+ }(this, (function (exports, core, ej2AngularGrids, lodash, router, operators, icon, platformBrowser, snackBar, dialog, forms, http, common, ej2AngularButtons, ej2AngularDiagrams, ej2AngularPopups, ej2AngularCalendars, ej2AngularInputs, ej2AngularDropdowns, ej2AngularPivotview, ej2AngularCharts, ej2AngularLayouts, ej2AngularNavigations, ej2AngularPdfviewer, ej2AngularSplitbuttons, ej2AngularRichtexteditor) { 'use strict';
6
6
 
7
7
  /*! *****************************************************************************
8
8
  Copyright (c) Microsoft Corporation.
@@ -1420,18 +1420,18 @@
1420
1420
 
1421
1421
  /**
1422
1422
  * @fileoverview added by tsickle
1423
- * Generated from: lib/layout/common-list/index.component.ts
1423
+ * Generated from: lib/layout/page-list/index.component.ts
1424
1424
  * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
1425
1425
  */
1426
- var CommonListComponent = /** @class */ (function () {
1427
- function CommonListComponent() {
1426
+ var RsPageListComponent = /** @class */ (function () {
1427
+ function RsPageListComponent() {
1428
1428
  this.customPageTitle = false;
1429
1429
  this.isInner = false;
1430
1430
  }
1431
1431
  /**
1432
1432
  * @return {?}
1433
1433
  */
1434
- CommonListComponent.prototype.ngOnInit = /**
1434
+ RsPageListComponent.prototype.ngOnInit = /**
1435
1435
  * @return {?}
1436
1436
  */
1437
1437
  function () {
@@ -1446,7 +1446,7 @@
1446
1446
  /**
1447
1447
  * @return {?}
1448
1448
  */
1449
- CommonListComponent.prototype.onSeach = /**
1449
+ RsPageListComponent.prototype.onSeach = /**
1450
1450
  * @return {?}
1451
1451
  */
1452
1452
  function () {
@@ -1455,43 +1455,744 @@
1455
1455
  /**
1456
1456
  * @return {?}
1457
1457
  */
1458
- CommonListComponent.prototype.onInput = /**
1458
+ RsPageListComponent.prototype.onInput = /**
1459
1459
  * @return {?}
1460
1460
  */
1461
1461
  function () {
1462
1462
  this.debouncedInput();
1463
1463
  };
1464
- CommonListComponent.decorators = [
1464
+ RsPageListComponent.decorators = [
1465
1465
  { type: core.Component, args: [{
1466
- selector: 'rs-common-list',
1467
- 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 <ng-content select=\"[tabSlot]\"></ng-content>\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",
1468
- 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 0 rgba(0,0,0,.1)}.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 0 rgba(31,123,255,.4)!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::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}"]
1466
+ selector: 'rs-page-list',
1467
+ 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",
1468
+ 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 0 rgba(0,0,0,.1)}.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 0 rgba(31,123,255,.4)!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}"]
1469
1469
  }] }
1470
1470
  ];
1471
- CommonListComponent.propDecorators = {
1471
+ RsPageListComponent.propDecorators = {
1472
1472
  gridContent: [{ type: core.ContentChild, args: [CommonGridComponent, { static: true },] }],
1473
1473
  pageTitle: [{ type: core.Input }],
1474
1474
  customPageTitle: [{ type: core.Input }],
1475
1475
  isInner: [{ type: core.Input }]
1476
1476
  };
1477
- return CommonListComponent;
1477
+ return RsPageListComponent;
1478
1478
  }());
1479
1479
  if (false) {
1480
1480
  /** @type {?} */
1481
- CommonListComponent.prototype.gridContent;
1481
+ RsPageListComponent.prototype.gridContent;
1482
1482
  /** @type {?} */
1483
- CommonListComponent.prototype.pageTitle;
1483
+ RsPageListComponent.prototype.pageTitle;
1484
1484
  /** @type {?} */
1485
- CommonListComponent.prototype.customPageTitle;
1485
+ RsPageListComponent.prototype.customPageTitle;
1486
1486
  /** @type {?} */
1487
- CommonListComponent.prototype.isInner;
1487
+ RsPageListComponent.prototype.isInner;
1488
1488
  /**
1489
1489
  * @type {?}
1490
1490
  * @private
1491
1491
  */
1492
- CommonListComponent.prototype.debouncedInput;
1492
+ RsPageListComponent.prototype.debouncedInput;
1493
1493
  /** @type {?} */
1494
- CommonListComponent.prototype.searchValue;
1494
+ RsPageListComponent.prototype.searchValue;
1495
+ }
1496
+
1497
+ /**
1498
+ * @fileoverview added by tsickle
1499
+ * Generated from: lib/layout/page-tab/index.component.ts
1500
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
1501
+ */
1502
+ var RsPageTabComponent = /** @class */ (function () {
1503
+ function RsPageTabComponent() {
1504
+ this.customPageTitle = false;
1505
+ this.tabList = [];
1506
+ this.tabChange = new core.EventEmitter();
1507
+ this.animation = {
1508
+ previous: { effect: "", duration: 0, easing: "" },
1509
+ next: { effect: "", duration: 0, easing: "" },
1510
+ };
1511
+ }
1512
+ /**
1513
+ * @return {?}
1514
+ */
1515
+ RsPageTabComponent.prototype.ngOnInit = /**
1516
+ * @return {?}
1517
+ */
1518
+ function () { };
1519
+ /**
1520
+ * @param {?} e
1521
+ * @return {?}
1522
+ */
1523
+ RsPageTabComponent.prototype.onTabClick = /**
1524
+ * @param {?} e
1525
+ * @return {?}
1526
+ */
1527
+ function (e) {
1528
+ this.tabChange.emit(this.tabList[e.selectedIndex]);
1529
+ };
1530
+ RsPageTabComponent.decorators = [
1531
+ { type: core.Component, args: [{
1532
+ selector: "rs-page-tab",
1533
+ 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",
1534
+ 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(../../assets/img/icon-more.svg);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(../../assets/img/icon-more-active.svg)}.rs-page-list-wrap .rs-tab .e-toolbar-pop{min-width:160px;border-radius:10px;background:#fff;box-shadow:0 0 8px 0 rgba(0,0,0,.25);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:rgba(31,123,255,.05)}.rs-page-list-wrap .rs-grid-wrap{flex:1;height:0}"]
1535
+ }] }
1536
+ ];
1537
+ RsPageTabComponent.propDecorators = {
1538
+ pageTitle: [{ type: core.Input }],
1539
+ customPageTitle: [{ type: core.Input }],
1540
+ tabList: [{ type: core.Input }],
1541
+ currentTab: [{ type: core.Input }],
1542
+ tabChange: [{ type: core.Output }]
1543
+ };
1544
+ return RsPageTabComponent;
1545
+ }());
1546
+ if (false) {
1547
+ /** @type {?} */
1548
+ RsPageTabComponent.prototype.pageTitle;
1549
+ /** @type {?} */
1550
+ RsPageTabComponent.prototype.customPageTitle;
1551
+ /** @type {?} */
1552
+ RsPageTabComponent.prototype.tabList;
1553
+ /** @type {?} */
1554
+ RsPageTabComponent.prototype.currentTab;
1555
+ /** @type {?} */
1556
+ RsPageTabComponent.prototype.tabChange;
1557
+ /** @type {?} */
1558
+ RsPageTabComponent.prototype.animation;
1559
+ }
1560
+
1561
+ /**
1562
+ * @fileoverview added by tsickle
1563
+ * Generated from: lib/layout/grid-box/index.component.ts
1564
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
1565
+ */
1566
+ var GridBoxComponent = /** @class */ (function () {
1567
+ function GridBoxComponent() {
1568
+ this.customPageTitle = false;
1569
+ this.isInner = false;
1570
+ }
1571
+ /**
1572
+ * @return {?}
1573
+ */
1574
+ GridBoxComponent.prototype.ngOnInit = /**
1575
+ * @return {?}
1576
+ */
1577
+ function () {
1578
+ var _this = this;
1579
+ this.debouncedInput = lodash.debounce((/**
1580
+ * @return {?}
1581
+ */
1582
+ function () {
1583
+ _this.onSeach();
1584
+ }), 300);
1585
+ };
1586
+ /**
1587
+ * @return {?}
1588
+ */
1589
+ GridBoxComponent.prototype.onSeach = /**
1590
+ * @return {?}
1591
+ */
1592
+ function () {
1593
+ this.gridContent.grid.search(this.searchValue);
1594
+ };
1595
+ /**
1596
+ * @return {?}
1597
+ */
1598
+ GridBoxComponent.prototype.onInput = /**
1599
+ * @return {?}
1600
+ */
1601
+ function () {
1602
+ this.debouncedInput();
1603
+ };
1604
+ GridBoxComponent.decorators = [
1605
+ { type: core.Component, args: [{
1606
+ selector: 'rs-grid-box',
1607
+ 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",
1608
+ 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 0 rgba(0,0,0,.1)}.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 0 rgba(31,123,255,.4)!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}"]
1609
+ }] }
1610
+ ];
1611
+ GridBoxComponent.propDecorators = {
1612
+ gridContent: [{ type: core.ContentChild, args: [core.TemplateRef, { static: true },] }],
1613
+ pageTitle: [{ type: core.Input }],
1614
+ customPageTitle: [{ type: core.Input }],
1615
+ isInner: [{ type: core.Input }]
1616
+ };
1617
+ return GridBoxComponent;
1618
+ }());
1619
+ if (false) {
1620
+ /** @type {?} */
1621
+ GridBoxComponent.prototype.gridContent;
1622
+ /** @type {?} */
1623
+ GridBoxComponent.prototype.pageTitle;
1624
+ /** @type {?} */
1625
+ GridBoxComponent.prototype.customPageTitle;
1626
+ /** @type {?} */
1627
+ GridBoxComponent.prototype.isInner;
1628
+ /**
1629
+ * @type {?}
1630
+ * @private
1631
+ */
1632
+ GridBoxComponent.prototype.debouncedInput;
1633
+ /** @type {?} */
1634
+ GridBoxComponent.prototype.searchValue;
1635
+ }
1636
+
1637
+ /**
1638
+ * @fileoverview added by tsickle
1639
+ * Generated from: lib/service/common-function.service.ts
1640
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
1641
+ */
1642
+ var CommonFunctionService = /** @class */ (function () {
1643
+ function CommonFunctionService() {
1644
+ }
1645
+ /**
1646
+ * @return {?}
1647
+ */
1648
+ CommonFunctionService.prototype.testMethod = /**
1649
+ * @return {?}
1650
+ */
1651
+ function () {
1652
+ return "test1111";
1653
+ };
1654
+ /**
1655
+ * @param {?} text
1656
+ * @param {?=} maxWidth
1657
+ * @param {?=} fontSize
1658
+ * @return {?}
1659
+ */
1660
+ CommonFunctionService.prototype.setMiddleEllipsis = /**
1661
+ * @param {?} text
1662
+ * @param {?=} maxWidth
1663
+ * @param {?=} fontSize
1664
+ * @return {?}
1665
+ */
1666
+ function (text, maxWidth, fontSize) {
1667
+ if (maxWidth === void 0) { maxWidth = 150; }
1668
+ if (fontSize === void 0) { fontSize = 13; }
1669
+ /** @type {?} */
1670
+ var canvas = document.createElement("canvas");
1671
+ /** @type {?} */
1672
+ var context = canvas.getContext("2d");
1673
+ context.font = fontSize + "px Arial";
1674
+ /** @type {?} */
1675
+ var width = context.measureText(text).width;
1676
+ if (width <= maxWidth) {
1677
+ return text;
1678
+ }
1679
+ maxWidth = Math.floor(maxWidth - context.measureText("...").width);
1680
+ /** @type {?} */
1681
+ var firstPart = "";
1682
+ /** @type {?} */
1683
+ var secondPart = "";
1684
+ /** @type {?} */
1685
+ var half = Math.floor(maxWidth / 2);
1686
+ for (var i = 0; i < text.length; i++) {
1687
+ firstPart += text[i];
1688
+ width = context.measureText(firstPart).width;
1689
+ if (width > half) {
1690
+ break;
1691
+ }
1692
+ }
1693
+ for (var i = text.length - 1; i >= 0; i--) {
1694
+ secondPart = text[i] + secondPart;
1695
+ width = context.measureText(secondPart).width;
1696
+ if (width > half) {
1697
+ break;
1698
+ }
1699
+ }
1700
+ return firstPart + "..." + secondPart;
1701
+ };
1702
+ /**
1703
+ * @param {?} url
1704
+ * @return {?}
1705
+ */
1706
+ CommonFunctionService.prototype.getPureUrl = /**
1707
+ * @param {?} url
1708
+ * @return {?}
1709
+ */
1710
+ function (url) {
1711
+ if (url) {
1712
+ // 如果params的value 携带查询参数, 则截取前面部分
1713
+ url = decodeURIComponent(url);
1714
+ if (url.includes("?")) {
1715
+ url = url.split("?")[0];
1716
+ }
1717
+ }
1718
+ return url;
1719
+ };
1720
+ CommonFunctionService.decorators = [
1721
+ { type: core.Injectable, args: [{
1722
+ providedIn: "root",
1723
+ },] }
1724
+ ];
1725
+ /** @nocollapse */
1726
+ CommonFunctionService.ctorParameters = function () { return []; };
1727
+ /** @nocollapse */ CommonFunctionService.ngInjectableDef = core.ɵɵdefineInjectable({ factory: function CommonFunctionService_Factory() { return new CommonFunctionService(); }, token: CommonFunctionService, providedIn: "root" });
1728
+ return CommonFunctionService;
1729
+ }());
1730
+
1731
+ /**
1732
+ * @fileoverview added by tsickle
1733
+ * Generated from: lib/service/keep-alive.service.ts
1734
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
1735
+ */
1736
+ /** @type {?} */
1737
+ var storedRoutes = {};
1738
+ /** @type {?} */
1739
+ var toBeDeleteUrl;
1740
+ /** @type {?} */
1741
+ var excludeRoutes = [];
1742
+ // 不需要缓存的url
1743
+ var
1744
+ // 不需要缓存的url
1745
+ KeepAliveService = /** @class */ (function () {
1746
+ function KeepAliveService() {
1747
+ }
1748
+ /**
1749
+ * @param {?} routes
1750
+ * @return {?}
1751
+ */
1752
+ KeepAliveService.prototype.setExcludeRoutes = /**
1753
+ * @param {?} routes
1754
+ * @return {?}
1755
+ */
1756
+ function (routes) {
1757
+ excludeRoutes = routes; // 设置不缓存的路由
1758
+ };
1759
+ /**
1760
+ * @param {?} route
1761
+ * @return {?}
1762
+ */
1763
+ KeepAliveService.prototype.shouldDetach = /**
1764
+ * @param {?} route
1765
+ * @return {?}
1766
+ */
1767
+ function (route) {
1768
+ if (toBeDeleteUrl === this.getRoutePath(route)) {
1769
+ // 对于新开的又即将关闭的tab,不缓存
1770
+ toBeDeleteUrl = "";
1771
+ return false;
1772
+ }
1773
+ return !excludeRoutes.includes(route.routeConfig.path);
1774
+ };
1775
+ /**
1776
+ * @param {?} route
1777
+ * @param {?} handle
1778
+ * @return {?}
1779
+ */
1780
+ KeepAliveService.prototype.store = /**
1781
+ * @param {?} route
1782
+ * @param {?} handle
1783
+ * @return {?}
1784
+ */
1785
+ function (route, handle) {
1786
+ // console.log("store", this.getRoutePath(route));
1787
+ // console.log("store", storedRoutes);
1788
+ storedRoutes[this.getRoutePath(route)] = handle;
1789
+ };
1790
+ /**
1791
+ * @param {?} route
1792
+ * @return {?}
1793
+ */
1794
+ KeepAliveService.prototype.shouldAttach = /**
1795
+ * @param {?} route
1796
+ * @return {?}
1797
+ */
1798
+ function (route) {
1799
+ return !!storedRoutes[this.getRoutePath(route)];
1800
+ };
1801
+ /**
1802
+ * @param {?} route
1803
+ * @return {?}
1804
+ */
1805
+ KeepAliveService.prototype.retrieve = /**
1806
+ * @param {?} route
1807
+ * @return {?}
1808
+ */
1809
+ function (route) {
1810
+ return storedRoutes[this.getRoutePath(route)];
1811
+ };
1812
+ /**
1813
+ * @param {?} future
1814
+ * @param {?} curr
1815
+ * @return {?}
1816
+ */
1817
+ KeepAliveService.prototype.shouldReuseRoute = /**
1818
+ * @param {?} future
1819
+ * @param {?} curr
1820
+ * @return {?}
1821
+ */
1822
+ function (future, curr) {
1823
+ // console.log("shouldReuseRoute");
1824
+ return this.getRoutePath(future) === this.getRoutePath(curr); // 复用相同的路由
1825
+ };
1826
+ /**
1827
+ * @param {?} route
1828
+ * @return {?}
1829
+ */
1830
+ KeepAliveService.prototype.getRoutePath = /**
1831
+ * @param {?} route
1832
+ * @return {?}
1833
+ */
1834
+ function (route) {
1835
+ if (route.routeConfig) {
1836
+ // const pathParams = JSON.stringify(route.params);
1837
+ /** @type {?} */
1838
+ var queryParams = new URLSearchParams(route.queryParams).toString();
1839
+ return route._routerState.url + (queryParams ? "?" + queryParams : "");
1840
+ }
1841
+ return "";
1842
+ };
1843
+ /**
1844
+ * @param {?} path
1845
+ * @return {?}
1846
+ */
1847
+ KeepAliveService.prototype.clearCache = /**
1848
+ * @param {?} path
1849
+ * @return {?}
1850
+ */
1851
+ function (path) {
1852
+ toBeDeleteUrl = path;
1853
+ delete storedRoutes[path]; // 清除指定路径的缓存
1854
+ };
1855
+ return KeepAliveService;
1856
+ }());
1857
+
1858
+ /**
1859
+ * @fileoverview added by tsickle
1860
+ * Generated from: lib/layout/multi-tab/index.component.ts
1861
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
1862
+ */
1863
+ var MultiTabComponent = /** @class */ (function () {
1864
+ function MultiTabComponent(router, cf, activatedRoute, keepAlive) {
1865
+ this.router = router;
1866
+ this.cf = cf;
1867
+ this.activatedRoute = activatedRoute;
1868
+ this.keepAlive = keepAlive;
1869
+ this.singleReuseUrls = []; //只能单个缓存的url
1870
+ //只能单个缓存的url
1871
+ this.TAB_WIDTH = 164;
1872
+ this.GAP_NORMAL = 54;
1873
+ this.GAP_SMALL = 30;
1874
+ this.tabList = [];
1875
+ this.selectedTab = 0;
1876
+ this.maxTabs = 10;
1877
+ this.screenWidth = window.innerWidth; // 初始化屏幕宽度
1878
+ }
1879
+ // 初始化屏幕宽度
1880
+ /**
1881
+ * @param {?} event
1882
+ * @return {?}
1883
+ */
1884
+ MultiTabComponent.prototype.onResize =
1885
+ // 初始化屏幕宽度
1886
+ /**
1887
+ * @param {?} event
1888
+ * @return {?}
1889
+ */
1890
+ function (event) {
1891
+ this.screenWidth = window.innerWidth; // 更新屏幕宽度
1892
+ this.setEllipsisTitle();
1893
+ };
1894
+ /**
1895
+ * @return {?}
1896
+ */
1897
+ MultiTabComponent.prototype.ngOnInit = /**
1898
+ * @return {?}
1899
+ */
1900
+ function () {
1901
+ var _this = this;
1902
+ this.initTab();
1903
+ this.router.events
1904
+ .pipe(operators.filter((/**
1905
+ * @param {?} event
1906
+ * @return {?}
1907
+ */
1908
+ function (event) { return event instanceof router.NavigationEnd; })))
1909
+ .subscribe((/**
1910
+ * @return {?}
1911
+ */
1912
+ function () {
1913
+ /** @type {?} */
1914
+ var navigation = _this.router.getCurrentNavigation();
1915
+ if (navigation) {
1916
+ /** @type {?} */
1917
+ var state = navigation.extras.state;
1918
+ // 获取传递的 state
1919
+ /** @type {?} */
1920
+ var currentRoute = _this.router.routerState.root.firstChild;
1921
+ if (currentRoute) {
1922
+ _this.setTab(_this.router.url, currentRoute.snapshot.routeConfig.path, state && state.title);
1923
+ }
1924
+ }
1925
+ }));
1926
+ this.setEllipsisTitle();
1927
+ };
1928
+ /**
1929
+ * @param {?=} title
1930
+ * @return {?}
1931
+ */
1932
+ MultiTabComponent.prototype.setEllipsisTitle = /**
1933
+ * @param {?=} title
1934
+ * @return {?}
1935
+ */
1936
+ function (title) {
1937
+ var _this = this;
1938
+ this.textGap = this.GAP_NORMAL;
1939
+ if (this.screenWidth <= 1100) {
1940
+ this.textGap = this.GAP_SMALL;
1941
+ }
1942
+ var _a = this.calcTabWidth(), allWidth = _a.allWidth, leftWidth = _a.leftWidth, rightWidth = _a.rightWidth;
1943
+ /** @type {?} */
1944
+ var width = Math.floor((allWidth - rightWidth) / (this.tabList && this.tabList.length));
1945
+ if (title) {
1946
+ return this.cf.setMiddleEllipsis(title, width > this.TAB_WIDTH
1947
+ ? this.TAB_WIDTH - this.textGap
1948
+ : width - this.textGap, 12);
1949
+ }
1950
+ else {
1951
+ this.tabList.forEach((/**
1952
+ * @param {?} ele
1953
+ * @param {?} idx
1954
+ * @return {?}
1955
+ */
1956
+ function (ele, idx) {
1957
+ ele.displayTitle = _this.cf.setMiddleEllipsis(ele.title, width > _this.TAB_WIDTH
1958
+ ? _this.TAB_WIDTH - _this.textGap
1959
+ : width - _this.textGap, 12);
1960
+ }));
1961
+ }
1962
+ };
1963
+ /**
1964
+ * @return {?}
1965
+ */
1966
+ MultiTabComponent.prototype.calcTabWidth = /**
1967
+ * @return {?}
1968
+ */
1969
+ function () {
1970
+ /** @type {?} */
1971
+ var wrap = document.querySelector(".rs-multi-tab");
1972
+ /** @type {?} */
1973
+ var ulElement = document.querySelector(".rs-multi-tab > ul");
1974
+ /** @type {?} */
1975
+ var refreshTabDiv = document.querySelector(".rs-multi-tab .refresh-tab");
1976
+ /** @type {?} */
1977
+ var allWidth;
1978
+ /** @type {?} */
1979
+ var leftWidth;
1980
+ /** @type {?} */
1981
+ var rightWidth;
1982
+ if (wrap && ulElement && refreshTabDiv) {
1983
+ // 获取元素的位置信息
1984
+ /** @type {?} */
1985
+ var wrapRect = wrap.getBoundingClientRect();
1986
+ /** @type {?} */
1987
+ var ulRect = ulElement.getBoundingClientRect();
1988
+ /** @type {?} */
1989
+ var refreshTabRect = refreshTabDiv.getBoundingClientRect();
1990
+ allWidth = wrapRect.width;
1991
+ leftWidth = ulRect.width;
1992
+ rightWidth = refreshTabRect.width;
1993
+ }
1994
+ return {
1995
+ allWidth: allWidth,
1996
+ leftWidth: leftWidth,
1997
+ rightWidth: rightWidth,
1998
+ };
1999
+ };
2000
+ /**
2001
+ * @return {?}
2002
+ */
2003
+ MultiTabComponent.prototype.initTab = /**
2004
+ * @return {?}
2005
+ */
2006
+ function () {
2007
+ /** @type {?} */
2008
+ var TabCache = JSON.parse(sessionStorage.getItem("TabCache"));
2009
+ this.tabList = TabCache || [];
2010
+ };
2011
+ /**
2012
+ * @param {?} tab
2013
+ * @param {?} idx
2014
+ * @return {?}
2015
+ */
2016
+ MultiTabComponent.prototype.closeTab = /**
2017
+ * @param {?} tab
2018
+ * @param {?} idx
2019
+ * @return {?}
2020
+ */
2021
+ function (tab, idx) {
2022
+ this.tabList = this.tabList.filter((/**
2023
+ * @param {?} ele
2024
+ * @return {?}
2025
+ */
2026
+ function (ele) { return ele.url !== tab.url; }));
2027
+ this.clearCache(tab.url);
2028
+ if (this.selectedTab === idx) {
2029
+ /** @type {?} */
2030
+ var targetIdx = Math.max(0, idx - 1);
2031
+ this.changeTab(this.tabList[targetIdx], targetIdx);
2032
+ }
2033
+ this.setEllipsisTitle();
2034
+ sessionStorage.setItem("TabCache", JSON.stringify(this.tabList));
2035
+ };
2036
+ /**
2037
+ * @param {?} tab
2038
+ * @param {?} idx
2039
+ * @return {?}
2040
+ */
2041
+ MultiTabComponent.prototype.changeTab = /**
2042
+ * @param {?} tab
2043
+ * @param {?} idx
2044
+ * @return {?}
2045
+ */
2046
+ function (tab, idx) {
2047
+ this.router.navigateByUrl(tab.url);
2048
+ this.selectedTab = idx;
2049
+ };
2050
+ /**
2051
+ * @param {?} url
2052
+ * @param {?} title
2053
+ * @return {?}
2054
+ */
2055
+ MultiTabComponent.prototype.addTab = /**
2056
+ * @param {?} url
2057
+ * @param {?} title
2058
+ * @return {?}
2059
+ */
2060
+ function (url, title) {
2061
+ if (this.tabList.length >= this.maxTabs) {
2062
+ this.closeTab(this.tabList[0], 0); // 删除第一个
2063
+ }
2064
+ this.tabList.push({
2065
+ url: url,
2066
+ title: title || "default",
2067
+ displayTitle: this.setEllipsisTitle(title || "default"),
2068
+ });
2069
+ this.selectedTab = this.tabList.length - 1;
2070
+ this.setEllipsisTitle();
2071
+ sessionStorage.setItem("TabCache", JSON.stringify(this.tabList));
2072
+ };
2073
+ /**
2074
+ * @param {?} url
2075
+ * @param {?} pureUrl
2076
+ * @param {?} title
2077
+ * @return {?}
2078
+ */
2079
+ MultiTabComponent.prototype.setTab = /**
2080
+ * @param {?} url
2081
+ * @param {?} pureUrl
2082
+ * @param {?} title
2083
+ * @return {?}
2084
+ */
2085
+ function (url, pureUrl, title) {
2086
+ var _this = this;
2087
+ /** @type {?} */
2088
+ var isExistIdx = this.tabList.findIndex((/**
2089
+ * @param {?} ele
2090
+ * @return {?}
2091
+ */
2092
+ function (ele) { return ele.url === url; }));
2093
+ if (isExistIdx === -1) {
2094
+ /** @type {?} */
2095
+ var singleIdx_1 = this.singleReuseUrls.findIndex((/**
2096
+ * @param {?} ele
2097
+ * @return {?}
2098
+ */
2099
+ function (ele) { return ele === pureUrl; }));
2100
+ if (singleIdx_1 !== -1) {
2101
+ this.tabList = this.tabList.filter((/**
2102
+ * @param {?} ele
2103
+ * @return {?}
2104
+ */
2105
+ function (ele) {
2106
+ return !ele.url.includes(_this.singleReuseUrls[singleIdx_1]);
2107
+ }));
2108
+ this.keepAlive.clearCache(url);
2109
+ }
2110
+ this.addTab(url, title);
2111
+ }
2112
+ else {
2113
+ this.selectedTab = isExistIdx;
2114
+ }
2115
+ };
2116
+ /**
2117
+ * @return {?}
2118
+ */
2119
+ MultiTabComponent.prototype.refreshTab = /**
2120
+ * @return {?}
2121
+ */
2122
+ function () {
2123
+ var _this = this;
2124
+ this.keepAlive.clearCache(this.tabList[this.selectedTab].url);
2125
+ /** @type {?} */
2126
+ var currentUrl = this.router.url;
2127
+ this.router.navigateByUrl("/", { skipLocationChange: true }).then((/**
2128
+ * @return {?}
2129
+ */
2130
+ function () {
2131
+ _this.router.navigateByUrl(currentUrl); // 重新导航到当前 URL
2132
+ }));
2133
+ };
2134
+ /**
2135
+ * @param {?} url
2136
+ * @return {?}
2137
+ */
2138
+ MultiTabComponent.prototype.clearCache = /**
2139
+ * @param {?} url
2140
+ * @return {?}
2141
+ */
2142
+ function (url) {
2143
+ this.keepAlive.clearCache(url); // 调用自定义策略的清除缓存方法
2144
+ };
2145
+ MultiTabComponent.decorators = [
2146
+ { type: core.Component, args: [{
2147
+ selector: "rs-multi-tab",
2148
+ 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",
2149
+ 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}.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:rgba(31,123,255,.04)}.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{-webkit-animation:1s linear infinite spin;animation:1s linear infinite spin}@-webkit-keyframes spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@keyframes spin{0%{transform:rotate(0)}100%{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:0!important}}"]
2150
+ }] }
2151
+ ];
2152
+ /** @nocollapse */
2153
+ MultiTabComponent.ctorParameters = function () { return [
2154
+ { type: router.Router },
2155
+ { type: CommonFunctionService },
2156
+ { type: router.ActivatedRoute },
2157
+ { type: KeepAliveService }
2158
+ ]; };
2159
+ MultiTabComponent.propDecorators = {
2160
+ singleReuseUrls: [{ type: core.Input }],
2161
+ onResize: [{ type: core.HostListener, args: ["window:resize", ["$event"],] }]
2162
+ };
2163
+ return MultiTabComponent;
2164
+ }());
2165
+ if (false) {
2166
+ /** @type {?} */
2167
+ MultiTabComponent.prototype.singleReuseUrls;
2168
+ /** @type {?} */
2169
+ MultiTabComponent.prototype.TAB_WIDTH;
2170
+ /** @type {?} */
2171
+ MultiTabComponent.prototype.GAP_NORMAL;
2172
+ /** @type {?} */
2173
+ MultiTabComponent.prototype.GAP_SMALL;
2174
+ /** @type {?} */
2175
+ MultiTabComponent.prototype.textGap;
2176
+ /** @type {?} */
2177
+ MultiTabComponent.prototype.foo;
2178
+ /** @type {?} */
2179
+ MultiTabComponent.prototype.comRef;
2180
+ /** @type {?} */
2181
+ MultiTabComponent.prototype.tabList;
2182
+ /** @type {?} */
2183
+ MultiTabComponent.prototype.selectedTab;
2184
+ /** @type {?} */
2185
+ MultiTabComponent.prototype.maxTabs;
2186
+ /** @type {?} */
2187
+ MultiTabComponent.prototype.screenWidth;
2188
+ /** @type {?} */
2189
+ MultiTabComponent.prototype.router;
2190
+ /** @type {?} */
2191
+ MultiTabComponent.prototype.cf;
2192
+ /** @type {?} */
2193
+ MultiTabComponent.prototype.activatedRoute;
2194
+ /** @type {?} */
2195
+ MultiTabComponent.prototype.keepAlive;
1495
2196
  }
1496
2197
 
1497
2198
  /**
@@ -1502,13 +2203,15 @@
1502
2203
  var MainContainerComponent = /** @class */ (function () {
1503
2204
  function MainContainerComponent() {
1504
2205
  this.isCollapsed = false; // 接收输入属性
2206
+ // 接收输入属性
2207
+ this.singleReuseUrls = []; //只能单个缓存的url
1505
2208
  }
1506
- // 接收输入属性
2209
+ //只能单个缓存的url
1507
2210
  /**
1508
2211
  * @return {?}
1509
2212
  */
1510
2213
  MainContainerComponent.prototype.ngOnInit =
1511
- // 接收输入属性
2214
+ //只能单个缓存的url
1512
2215
  /**
1513
2216
  * @return {?}
1514
2217
  */
@@ -1516,18 +2219,21 @@
1516
2219
  MainContainerComponent.decorators = [
1517
2220
  { type: core.Component, args: [{
1518
2221
  selector: "rs-main-container",
1519
- 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 <!-- <div class=\"multi-tab\"></div> -->\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",
1520
- 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 .multi-tab{height:40px;background-color:#efefef}.app-main-container .right-aside .router-content{flex:1;overflow:auto}"]
2222
+ 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",
2223
+ 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}"]
1521
2224
  }] }
1522
2225
  ];
1523
2226
  MainContainerComponent.propDecorators = {
1524
- isCollapsed: [{ type: core.Input }]
2227
+ isCollapsed: [{ type: core.Input }],
2228
+ singleReuseUrls: [{ type: core.Input }]
1525
2229
  };
1526
2230
  return MainContainerComponent;
1527
2231
  }());
1528
2232
  if (false) {
1529
2233
  /** @type {?} */
1530
2234
  MainContainerComponent.prototype.isCollapsed;
2235
+ /** @type {?} */
2236
+ MainContainerComponent.prototype.singleReuseUrls;
1531
2237
  }
1532
2238
 
1533
2239
  /**
@@ -1593,8 +2299,8 @@
1593
2299
  RSHeaderComponent.decorators = [
1594
2300
  { type: core.Component, args: [{
1595
2301
  selector: "rs-header",
1596
- 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",
1597
- 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}"]
2302
+ 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",
2303
+ 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:rgba(31,123,255,.04)}.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}"]
1598
2304
  }] }
1599
2305
  ];
1600
2306
  RSHeaderComponent.propDecorators = {
@@ -1679,13 +2385,13 @@
1679
2385
  */
1680
2386
  function (item) {
1681
2387
  this.currentNav = item.title;
1682
- this.router.navigate([item.url]);
2388
+ this.router.navigate([item.url], { state: { title: item.title } });
1683
2389
  };
1684
2390
  RSAsideComponent.decorators = [
1685
2391
  { type: core.Component, args: [{
1686
2392
  selector: "rs-aside",
1687
- 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 <div\r\n class=\"icon-wrap\"\r\n [ngStyle]=\"{\r\n stroke: currentNav === nav.title ? '#44566c' : '#6c7c90',\r\n fill: currentNav === nav.title ? '#44566c' : '#6c7c90'\r\n }\"\r\n >\r\n <svg-icon\r\n [name]=\"nav.icon\"\r\n [svgStyle]=\"{\r\n 'width.px': 16,\r\n 'height.px': 16\r\n }\"\r\n ></svg-icon>\r\n </div>\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",
1688
- 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:hover .nav-item-inner{border-radius:6px;background:rgba(31,123,255,.04)}.rs-aside .nav-list .nav-item .icon-wrap{width:33px;height:16px}.rs-aside .nav-list .nav-item .nav-text{color:#5f6f81;font-family:Arial;font-size:12px;font-weight:400;line-height:16px;transition:.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 .icon-wrap{width:24px;height:24px;border-radius:12px;border:1px solid #eaedf0;display:flex;justify-content:center;align-items:center;background-color:#fff;stroke:#6c7c90;fill:#6c7c90}.rs-aside .bottom-iconbox ::ng-deep .icon-wrap:not(.disabled){cursor:pointer}.rs-aside .bottom-iconbox ::ng-deep .icon-wrap:not(.disabled):hover{stroke:var(--rs-active-color);fill:var(--rs-active-color)}.rs-aside .bottom-iconbox.isCollapsed{flex-direction:column;height:auto}"]
2393
+ 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",
2394
+ 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:rgba(31,123,255,.04)}.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:.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}"]
1689
2395
  }] }
1690
2396
  ];
1691
2397
  /** @nocollapse */
@@ -2078,42 +2784,15 @@
2078
2784
  SwitchInputComponent.prototype.valueChange;
2079
2785
  }
2080
2786
 
2081
- /**
2082
- * @fileoverview added by tsickle
2083
- * Generated from: lib/service/common-function.service.ts
2084
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
2085
- */
2086
- var CommonFunctionService = /** @class */ (function () {
2087
- function CommonFunctionService() {
2088
- }
2089
- /**
2090
- * @return {?}
2091
- */
2092
- CommonFunctionService.prototype.testMethod = /**
2093
- * @return {?}
2094
- */
2095
- function () {
2096
- return "test1111";
2097
- };
2098
- CommonFunctionService.decorators = [
2099
- { type: core.Injectable, args: [{
2100
- providedIn: "root",
2101
- },] }
2102
- ];
2103
- /** @nocollapse */
2104
- CommonFunctionService.ctorParameters = function () { return []; };
2105
- /** @nocollapse */ CommonFunctionService.ngInjectableDef = core.ɵɵdefineInjectable({ factory: function CommonFunctionService_Factory() { return new CommonFunctionService(); }, token: CommonFunctionService, providedIn: "root" });
2106
- return CommonFunctionService;
2107
- }());
2108
-
2109
2787
  /**
2110
2788
  * @fileoverview added by tsickle
2111
2789
  * Generated from: lib/service/icon-loader.service.ts
2112
2790
  * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
2113
2791
  */
2114
2792
  var IconLoaderService = /** @class */ (function () {
2115
- function IconLoaderService(iconReg) {
2116
- this.iconReg = iconReg;
2793
+ function IconLoaderService(registry, domSanitizer) {
2794
+ this.registry = registry;
2795
+ this.domSanitizer = domSanitizer;
2117
2796
  }
2118
2797
  /**
2119
2798
  * @param {?} list
@@ -2126,11 +2805,12 @@
2126
2805
  function (list) {
2127
2806
  var _this = this;
2128
2807
  list.forEach((/**
2129
- * @param {?} item
2808
+ * @param {?} __0
2130
2809
  * @return {?}
2131
2810
  */
2132
- function (item) {
2133
- _this.iconReg.loadSvg(item.url, item.name).subscribe();
2811
+ function (_a) {
2812
+ var name = _a.name, path = _a.path;
2813
+ _this.registry.addSvgIcon(name, _this.domSanitizer.bypassSecurityTrustResourceUrl(path));
2134
2814
  }));
2135
2815
  };
2136
2816
  IconLoaderService.decorators = [
@@ -2138,7 +2818,8 @@
2138
2818
  ];
2139
2819
  /** @nocollapse */
2140
2820
  IconLoaderService.ctorParameters = function () { return [
2141
- { type: angularSvgIcon.SvgIconRegistryService }
2821
+ { type: icon.MatIconRegistry },
2822
+ { type: platformBrowser.DomSanitizer }
2142
2823
  ]; };
2143
2824
  return IconLoaderService;
2144
2825
  }());
@@ -2147,7 +2828,12 @@
2147
2828
  * @type {?}
2148
2829
  * @private
2149
2830
  */
2150
- IconLoaderService.prototype.iconReg;
2831
+ IconLoaderService.prototype.registry;
2832
+ /**
2833
+ * @type {?}
2834
+ * @private
2835
+ */
2836
+ IconLoaderService.prototype.domSanitizer;
2151
2837
  }
2152
2838
 
2153
2839
  /**
@@ -2766,10 +3452,13 @@
2766
3452
  declarations: [
2767
3453
  CommonGridComponent,
2768
3454
  FloatBoxComponent,
2769
- CommonListComponent,
3455
+ RsPageListComponent,
3456
+ RsPageTabComponent,
3457
+ GridBoxComponent,
2770
3458
  RSHeaderComponent,
2771
3459
  RSFooterComponent,
2772
3460
  RSAsideComponent,
3461
+ MultiTabComponent,
2773
3462
  MainContainerComponent,
2774
3463
  TagInputComponent,
2775
3464
  RadioGroupComponent,
@@ -2786,6 +3475,7 @@
2786
3475
  forms.FormsModule,
2787
3476
  snackBar.MatSnackBarModule,
2788
3477
  dialog.MatDialogModule,
3478
+ icon.MatIconModule,
2789
3479
  ej2AngularGrids.GridModule,
2790
3480
  ej2AngularGrids.PagerModule,
2791
3481
  ej2AngularGrids.GridAllModule,
@@ -2817,10 +3507,11 @@
2817
3507
  ej2AngularLayouts.DashboardLayoutModule,
2818
3508
  ej2AngularNavigations.CarouselAllModule,
2819
3509
  ej2AngularNavigations.ToolbarModule,
3510
+ ej2AngularNavigations.TabModule,
2820
3511
  ej2AngularPdfviewer.PdfViewerModule,
2821
3512
  ej2AngularSplitbuttons.DropDownButtonModule,
3513
+ ej2AngularSplitbuttons.SplitButtonModule,
2822
3514
  ej2AngularRichtexteditor.RichTextEditorAllModule,
2823
- angularSvgIcon.AngularSvgIconModule.forRoot(),
2824
3515
  ],
2825
3516
  providers: [
2826
3517
  ej2AngularGrids.PageService,
@@ -2855,6 +3546,7 @@
2855
3546
  CommonFunctionService,
2856
3547
  IconLoaderService,
2857
3548
  DialogService,
3549
+ KeepAliveService,
2858
3550
  ],
2859
3551
  exports: [
2860
3552
  common.CommonModule,
@@ -2894,15 +3586,20 @@
2894
3586
  ej2AngularLayouts.DashboardLayoutModule,
2895
3587
  ej2AngularNavigations.CarouselAllModule,
2896
3588
  ej2AngularNavigations.ToolbarModule,
3589
+ ej2AngularNavigations.TabModule,
2897
3590
  ej2AngularPdfviewer.PdfViewerModule,
2898
3591
  ej2AngularSplitbuttons.DropDownButtonModule,
3592
+ ej2AngularSplitbuttons.SplitButtonModule,
2899
3593
  ej2AngularRichtexteditor.RichTextEditorAllModule,
2900
3594
  CommonGridComponent,
2901
3595
  FloatBoxComponent,
2902
- CommonListComponent,
3596
+ RsPageListComponent,
3597
+ RsPageTabComponent,
3598
+ GridBoxComponent,
2903
3599
  RSHeaderComponent,
2904
3600
  RSFooterComponent,
2905
3601
  RSAsideComponent,
3602
+ MultiTabComponent,
2906
3603
  MainContainerComponent,
2907
3604
  TagInputComponent,
2908
3605
  RadioGroupComponent,
@@ -2922,17 +3619,21 @@
2922
3619
  exports.CheckboxGroupComponent = CheckboxGroupComponent;
2923
3620
  exports.CommonFunctionService = CommonFunctionService;
2924
3621
  exports.CommonGridComponent = CommonGridComponent;
2925
- exports.CommonListComponent = CommonListComponent;
2926
3622
  exports.DialogService = DialogService;
2927
3623
  exports.FloatBoxComponent = FloatBoxComponent;
3624
+ exports.GridBoxComponent = GridBoxComponent;
2928
3625
  exports.IconLoaderService = IconLoaderService;
3626
+ exports.KeepAliveService = KeepAliveService;
2929
3627
  exports.MainContainerComponent = MainContainerComponent;
2930
3628
  exports.MessageType = MessageType;
3629
+ exports.MultiTabComponent = MultiTabComponent;
2931
3630
  exports.RSAsideComponent = RSAsideComponent;
2932
3631
  exports.RSFooterComponent = RSFooterComponent;
2933
3632
  exports.RSHeaderComponent = RSHeaderComponent;
2934
3633
  exports.RadioGroupComponent = RadioGroupComponent;
2935
3634
  exports.RaiseCommonLibModule = RaiseCommonLibModule;
3635
+ exports.RsPageListComponent = RsPageListComponent;
3636
+ exports.RsPageTabComponent = RsPageTabComponent;
2936
3637
  exports.SwitchInputComponent = SwitchInputComponent;
2937
3638
  exports.TagInputComponent = TagInputComponent;
2938
3639
  exports.ɵa = NewActionNotificationComponent;