raise-common-lib 0.0.14 → 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 (58) hide show
  1. package/bundles/raise-common-lib.umd.js +772 -161
  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 -16
  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 -3
  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 -16
  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 -3
  31. package/fesm2015/raise-common-lib.js +643 -141
  32. package/fesm2015/raise-common-lib.js.map +1 -1
  33. package/fesm5/raise-common-lib.js +771 -162
  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.d.ts +0 -1
  46. package/raise-common-lib.metadata.json +1 -1
  47. package/src/assets/img/close-url.svg +10 -0
  48. package/src/assets/img/desktop-refresh-btn.svg +6 -0
  49. package/src/assets/img/icon-more-active.svg +7 -0
  50. package/src/assets/img/icon-more.svg +7 -0
  51. package/src/assets/img/split-button-arrow copy.svg +3 -0
  52. package/src/assets/img/split-button-arrow.svg +3 -0
  53. package/src/assets/style/reset/button.scss +38 -3
  54. package/esm2015/lib/demo/map/index.component.js +0 -73
  55. package/esm2015/lib/layout/common-list/index.component.js +0 -69
  56. package/esm5/lib/demo/map/index.component.js +0 -85
  57. package/esm5/lib/layout/common-list/index.component.js +0 -81
  58. package/lib/demo/map/index.component.d.ts +0 -12
@@ -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'), require('@agm/core')) :
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', '@agm/core'], 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, global.core$1));
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, core$1) { '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
  /**
@@ -2753,89 +3439,6 @@
2753
3439
  CommonDialogComponent.prototype.dialogRef;
2754
3440
  }
2755
3441
 
2756
- /**
2757
- * @fileoverview added by tsickle
2758
- * Generated from: lib/demo/map/index.component.ts
2759
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
2760
- */
2761
- var DemoMapComponent = /** @class */ (function () {
2762
- function DemoMapComponent() {
2763
- this.lat = 0;
2764
- this.lng = 0;
2765
- this.zoom = 2;
2766
- this.markers = [];
2767
- }
2768
- /**
2769
- * @return {?}
2770
- */
2771
- DemoMapComponent.prototype.ngAfterContentInit = /**
2772
- * @return {?}
2773
- */
2774
- function () { };
2775
- /**
2776
- * @private
2777
- * @return {?}
2778
- */
2779
- DemoMapComponent.prototype.getInfo = /**
2780
- * @private
2781
- * @return {?}
2782
- */
2783
- function () {
2784
- this.translation = JSON.parse(localStorage.getItem("translation"));
2785
- };
2786
- /**
2787
- * @return {?}
2788
- */
2789
- DemoMapComponent.prototype.ngOnInit = /**
2790
- * @return {?}
2791
- */
2792
- function () {
2793
- this.getInfo();
2794
- this.markers.push({
2795
- position: {
2796
- lat: 40.4381311,
2797
- lng: -3.8196233,
2798
- },
2799
- label: {
2800
- color: "black",
2801
- text: "Madrid",
2802
- },
2803
- });
2804
- this.markers.push({
2805
- position: {
2806
- lat: 48.8615515,
2807
- lng: 2.3112233,
2808
- },
2809
- label: {
2810
- color: "black",
2811
- text: "Paris",
2812
- },
2813
- });
2814
- };
2815
- DemoMapComponent.decorators = [
2816
- { type: core.Component, args: [{
2817
- selector: "kt-map",
2818
- template: "<div class=\"map-container\">\r\n <agm-map [latitude]=\"lat\" [longitude]=\"lng\" [zoom]=\"zoom\">\r\n <agm-marker\r\n *ngFor=\"let marker of markers\"\r\n [latitude]=\"marker.position.lat\"\r\n [longitude]=\"marker.position.lng\"\r\n [label]=\"marker.label\"\r\n >\r\n </agm-marker>\r\n </agm-map>\r\n</div>\r\n",
2819
- styles: [":host::ng-deep .map-container{max-width:450px;height:450px}:host::ng-deep .map-container agm-map{width:100%;height:450px}"]
2820
- }] }
2821
- ];
2822
- /** @nocollapse */
2823
- DemoMapComponent.ctorParameters = function () { return []; };
2824
- return DemoMapComponent;
2825
- }());
2826
- if (false) {
2827
- /** @type {?} */
2828
- DemoMapComponent.prototype.translation;
2829
- /** @type {?} */
2830
- DemoMapComponent.prototype.markers;
2831
- /** @type {?} */
2832
- DemoMapComponent.prototype.lat;
2833
- /** @type {?} */
2834
- DemoMapComponent.prototype.lng;
2835
- /** @type {?} */
2836
- DemoMapComponent.prototype.zoom;
2837
- }
2838
-
2839
3442
  /**
2840
3443
  * @fileoverview added by tsickle
2841
3444
  * Generated from: lib/raise-common-lib.module.ts
@@ -2849,10 +3452,13 @@
2849
3452
  declarations: [
2850
3453
  CommonGridComponent,
2851
3454
  FloatBoxComponent,
2852
- CommonListComponent,
3455
+ RsPageListComponent,
3456
+ RsPageTabComponent,
3457
+ GridBoxComponent,
2853
3458
  RSHeaderComponent,
2854
3459
  RSFooterComponent,
2855
3460
  RSAsideComponent,
3461
+ MultiTabComponent,
2856
3462
  MainContainerComponent,
2857
3463
  TagInputComponent,
2858
3464
  RadioGroupComponent,
@@ -2861,19 +3467,15 @@
2861
3467
  NewActionNotificationComponent,
2862
3468
  CommonDialogComponent,
2863
3469
  CommonDeleteComponent,
2864
- DemoMapComponent,
2865
3470
  ],
2866
3471
  imports: [
2867
- // Samson provide google map api key
2868
- core$1.AgmCoreModule.forRoot({
2869
- apiKey: "AIzaSyDs0Fy2m93CBJ39-zS6BkYN_IDqyexqlAU",
2870
- }),
2871
3472
  common.CommonModule,
2872
3473
  http.HttpClientModule,
2873
3474
  forms.ReactiveFormsModule,
2874
3475
  forms.FormsModule,
2875
3476
  snackBar.MatSnackBarModule,
2876
3477
  dialog.MatDialogModule,
3478
+ icon.MatIconModule,
2877
3479
  ej2AngularGrids.GridModule,
2878
3480
  ej2AngularGrids.PagerModule,
2879
3481
  ej2AngularGrids.GridAllModule,
@@ -2905,10 +3507,11 @@
2905
3507
  ej2AngularLayouts.DashboardLayoutModule,
2906
3508
  ej2AngularNavigations.CarouselAllModule,
2907
3509
  ej2AngularNavigations.ToolbarModule,
3510
+ ej2AngularNavigations.TabModule,
2908
3511
  ej2AngularPdfviewer.PdfViewerModule,
2909
3512
  ej2AngularSplitbuttons.DropDownButtonModule,
3513
+ ej2AngularSplitbuttons.SplitButtonModule,
2910
3514
  ej2AngularRichtexteditor.RichTextEditorAllModule,
2911
- angularSvgIcon.AngularSvgIconModule.forRoot(),
2912
3515
  ],
2913
3516
  providers: [
2914
3517
  ej2AngularGrids.PageService,
@@ -2943,6 +3546,7 @@
2943
3546
  CommonFunctionService,
2944
3547
  IconLoaderService,
2945
3548
  DialogService,
3549
+ KeepAliveService,
2946
3550
  ],
2947
3551
  exports: [
2948
3552
  common.CommonModule,
@@ -2982,21 +3586,25 @@
2982
3586
  ej2AngularLayouts.DashboardLayoutModule,
2983
3587
  ej2AngularNavigations.CarouselAllModule,
2984
3588
  ej2AngularNavigations.ToolbarModule,
3589
+ ej2AngularNavigations.TabModule,
2985
3590
  ej2AngularPdfviewer.PdfViewerModule,
2986
3591
  ej2AngularSplitbuttons.DropDownButtonModule,
3592
+ ej2AngularSplitbuttons.SplitButtonModule,
2987
3593
  ej2AngularRichtexteditor.RichTextEditorAllModule,
2988
3594
  CommonGridComponent,
2989
3595
  FloatBoxComponent,
2990
- CommonListComponent,
3596
+ RsPageListComponent,
3597
+ RsPageTabComponent,
3598
+ GridBoxComponent,
2991
3599
  RSHeaderComponent,
2992
3600
  RSFooterComponent,
2993
3601
  RSAsideComponent,
3602
+ MultiTabComponent,
2994
3603
  MainContainerComponent,
2995
3604
  TagInputComponent,
2996
3605
  RadioGroupComponent,
2997
3606
  CheckboxGroupComponent,
2998
3607
  SwitchInputComponent,
2999
- DemoMapComponent,
3000
3608
  ],
3001
3609
  entryComponents: [
3002
3610
  NewActionNotificationComponent,
@@ -3011,23 +3619,26 @@
3011
3619
  exports.CheckboxGroupComponent = CheckboxGroupComponent;
3012
3620
  exports.CommonFunctionService = CommonFunctionService;
3013
3621
  exports.CommonGridComponent = CommonGridComponent;
3014
- exports.CommonListComponent = CommonListComponent;
3015
3622
  exports.DialogService = DialogService;
3016
3623
  exports.FloatBoxComponent = FloatBoxComponent;
3624
+ exports.GridBoxComponent = GridBoxComponent;
3017
3625
  exports.IconLoaderService = IconLoaderService;
3626
+ exports.KeepAliveService = KeepAliveService;
3018
3627
  exports.MainContainerComponent = MainContainerComponent;
3019
3628
  exports.MessageType = MessageType;
3629
+ exports.MultiTabComponent = MultiTabComponent;
3020
3630
  exports.RSAsideComponent = RSAsideComponent;
3021
3631
  exports.RSFooterComponent = RSFooterComponent;
3022
3632
  exports.RSHeaderComponent = RSHeaderComponent;
3023
3633
  exports.RadioGroupComponent = RadioGroupComponent;
3024
3634
  exports.RaiseCommonLibModule = RaiseCommonLibModule;
3635
+ exports.RsPageListComponent = RsPageListComponent;
3636
+ exports.RsPageTabComponent = RsPageTabComponent;
3025
3637
  exports.SwitchInputComponent = SwitchInputComponent;
3026
3638
  exports.TagInputComponent = TagInputComponent;
3027
3639
  exports.ɵa = NewActionNotificationComponent;
3028
3640
  exports.ɵb = CommonDialogComponent;
3029
3641
  exports.ɵc = CommonDeleteComponent;
3030
- exports.ɵd = DemoMapComponent;
3031
3642
 
3032
3643
  Object.defineProperty(exports, '__esModule', { value: true });
3033
3644