raise-common-lib 0.0.23 → 0.0.25

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 (29) hide show
  1. package/bundles/raise-common-lib.umd.js +51 -18
  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/form/checkbox-group/index.component.js +1 -1
  6. package/esm2015/lib/form/radio-group/index.component.js +1 -1
  7. package/esm2015/lib/form/switch-input/index.component.js +1 -1
  8. package/esm2015/lib/layout/multi-tab/index.component.js +5 -2
  9. package/esm2015/lib/layout/rs-aside/index.component.js +3 -2
  10. package/esm2015/lib/layout/rs-header/index.component.js +3 -3
  11. package/esm2015/lib/service/keep-alive.service.js +38 -12
  12. package/esm5/lib/form/checkbox-group/index.component.js +1 -1
  13. package/esm5/lib/form/radio-group/index.component.js +1 -1
  14. package/esm5/lib/form/switch-input/index.component.js +1 -1
  15. package/esm5/lib/layout/multi-tab/index.component.js +5 -2
  16. package/esm5/lib/layout/rs-aside/index.component.js +3 -2
  17. package/esm5/lib/layout/rs-header/index.component.js +3 -3
  18. package/esm5/lib/service/keep-alive.service.js +41 -12
  19. package/fesm2015/raise-common-lib.js +48 -18
  20. package/fesm2015/raise-common-lib.js.map +1 -1
  21. package/fesm5/raise-common-lib.js +51 -18
  22. package/fesm5/raise-common-lib.js.map +1 -1
  23. package/lib/service/keep-alive.service.d.ts +1 -0
  24. package/package.json +1 -1
  25. package/raise-common-lib.metadata.json +1 -1
  26. package/src/assets/style/reset/checkbox.scss +33 -0
  27. package/src/assets/style/reset/radio.scss +37 -0
  28. package/src/assets/style/reset/switch.scss +32 -0
  29. package/src/assets/style/style.scss +4 -0
@@ -6,7 +6,7 @@
6
6
  import { Injectable } from "@angular/core";
7
7
  import * as i0 from "@angular/core";
8
8
  /** @type {?} */
9
- var storedRoutes = {};
9
+ var storedRoutes = new Map();
10
10
  /** @type {?} */
11
11
  var toBeDeleteUrl;
12
12
  /** @type {?} */
@@ -35,12 +35,21 @@ var KeepAliveService = /** @class */ (function () {
35
35
  * @return {?}
36
36
  */
37
37
  function (route) {
38
+ /** @type {?} */
39
+ var config = route.routeConfig;
40
+ // console.log("shouldDetach", toBeDeleteUrl, this.getRoutePath(route));
38
41
  if (toBeDeleteUrl === this.getRoutePath(route)) {
39
42
  // 对于新开的又即将关闭的tab,不缓存
40
- toBeDeleteUrl = "";
43
+ if (route.children.length === 0) {
44
+ toBeDeleteUrl = "";
45
+ }
46
+ return false;
47
+ }
48
+ if (config && excludeRoutes.includes(this.getRoutePath(route))) {
41
49
  return false;
42
50
  }
43
- return !excludeRoutes.includes(route.routeConfig.path);
51
+ //Don't store lazy loaded routes
52
+ return config && !config.loadChildren;
44
53
  };
45
54
  /**
46
55
  * @param {?} route
@@ -55,7 +64,9 @@ var KeepAliveService = /** @class */ (function () {
55
64
  function (route, handle) {
56
65
  // console.log("store", this.getRoutePath(route));
57
66
  // console.log("store", storedRoutes);
58
- storedRoutes[this.getRoutePath(route)] = handle;
67
+ /** @type {?} */
68
+ var key = this.getRoutePath(route);
69
+ storedRoutes.set(key, handle);
59
70
  };
60
71
  /**
61
72
  * @param {?} route
@@ -66,7 +77,9 @@ var KeepAliveService = /** @class */ (function () {
66
77
  * @return {?}
67
78
  */
68
79
  function (route) {
69
- return !!storedRoutes[this.getRoutePath(route)];
80
+ /** @type {?} */
81
+ var key = this.getRoutePath(route);
82
+ return !!route.routeConfig && storedRoutes.has(key);
70
83
  };
71
84
  /**
72
85
  * @param {?} route
@@ -77,11 +90,15 @@ var KeepAliveService = /** @class */ (function () {
77
90
  * @return {?}
78
91
  */
79
92
  function (route) {
80
- if (!route.routeConfig)
81
- return null;
82
- if (route.routeConfig.loadChildren)
83
- return null;
84
- return storedRoutes[this.getRoutePath(route)];
93
+ /** @type {?} */
94
+ var config = route.routeConfig;
95
+ /** @type {?} */
96
+ var key = this.getRoutePath(route);
97
+ //We don't store lazy loaded routes, so don't even bother trying to retrieve them
98
+ if (!config || config.loadChildren) {
99
+ return false;
100
+ }
101
+ return storedRoutes.get(key) || null;
85
102
  };
86
103
  /**
87
104
  * @param {?} future
@@ -94,6 +111,8 @@ var KeepAliveService = /** @class */ (function () {
94
111
  * @return {?}
95
112
  */
96
113
  function (future, curr) {
114
+ // console.log("shouldReuseRoute", future, curr);
115
+ // return future.routeConfig === curr.routeConfig;
97
116
  if (future.routeConfig === curr.routeConfig) {
98
117
  if (future.children.length === 0 && curr.children.length === 0) {
99
118
  // 无子路由时, 通过params和queryParams判断是否复用路由
@@ -115,6 +134,7 @@ var KeepAliveService = /** @class */ (function () {
115
134
  */
116
135
  function (route) {
117
136
  if (route.routeConfig) {
137
+ // const pathParams = JSON.stringify(route.params);
118
138
  /** @type {?} */
119
139
  var queryParams = new URLSearchParams(route.queryParams).toString();
120
140
  /** @type {?} */
@@ -138,7 +158,16 @@ var KeepAliveService = /** @class */ (function () {
138
158
  function (path) {
139
159
  // console.log("clearCache", storedRoutes, path);
140
160
  toBeDeleteUrl = path;
141
- delete storedRoutes[path]; // 清除指定路径的缓存
161
+ storedRoutes.delete(path);
162
+ };
163
+ /**
164
+ * @return {?}
165
+ */
166
+ KeepAliveService.prototype.clearAllCache = /**
167
+ * @return {?}
168
+ */
169
+ function () {
170
+ storedRoutes.clear();
142
171
  };
143
172
  KeepAliveService.decorators = [
144
173
  { type: Injectable, args: [{
@@ -149,4 +178,4 @@ var KeepAliveService = /** @class */ (function () {
149
178
  return KeepAliveService;
150
179
  }());
151
180
  export { KeepAliveService };
152
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2VlcC1hbGl2ZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vcmFpc2UtY29tbW9uLWxpYi8iLCJzb3VyY2VzIjpbImxpYi9zZXJ2aWNlL2tlZXAtYWxpdmUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7OztJQU9yQyxZQUFZLEdBQTJDLEVBQUU7O0lBQzNELGFBQXFCOztJQUNyQixhQUFhLEdBQWEsRUFBRTs7QUFDaEM7SUFBQTtLQWdFQzs7Ozs7SUE1REMsMkNBQWdCOzs7O0lBQWhCLFVBQWlCLE1BQWdCO1FBQy9CLGFBQWEsR0FBRyxNQUFNLENBQUMsQ0FBQyxXQUFXO0lBQ3JDLENBQUM7Ozs7O0lBQ0QsdUNBQVk7Ozs7SUFBWixVQUFhLEtBQTZCO1FBQ3hDLElBQUksYUFBYSxLQUFLLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDOUMscUJBQXFCO1lBQ3JCLGFBQWEsR0FBRyxFQUFFLENBQUM7WUFDbkIsT0FBTyxLQUFLLENBQUM7U0FDZDtRQUNELE9BQU8sQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekQsQ0FBQzs7Ozs7O0lBRUQsZ0NBQUs7Ozs7O0lBQUwsVUFBTSxLQUE2QixFQUFFLE1BQTJCO1FBQzlELGtEQUFrRDtRQUNsRCxzQ0FBc0M7UUFDdEMsWUFBWSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUM7SUFDbEQsQ0FBQzs7Ozs7SUFFRCx1Q0FBWTs7OztJQUFaLFVBQWEsS0FBNkI7UUFDeEMsT0FBTyxDQUFDLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsRCxDQUFDOzs7OztJQUVELG1DQUFROzs7O0lBQVIsVUFBUyxLQUE2QjtRQUNwQyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVc7WUFBRSxPQUFPLElBQUksQ0FBQztRQUNwQyxJQUFJLEtBQUssQ0FBQyxXQUFXLENBQUMsWUFBWTtZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQ2hELE9BQU8sWUFBWSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNoRCxDQUFDOzs7Ozs7SUFFRCwyQ0FBZ0I7Ozs7O0lBQWhCLFVBQ0UsTUFBOEIsRUFDOUIsSUFBNEI7UUFFNUIsSUFBSSxNQUFNLENBQUMsV0FBVyxLQUFLLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDM0MsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO2dCQUM5RCxzQ0FBc0M7Z0JBQ3RDLE9BQU8sQ0FDTCxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7b0JBQzdELElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQzt3QkFDaEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQ25DLENBQUM7YUFDSDtZQUNELE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7Ozs7O0lBRUQsdUNBQVk7Ozs7SUFBWixVQUFhLEtBQUs7UUFDaEIsSUFBSSxLQUFLLENBQUMsV0FBVyxFQUFFOztnQkFDZixXQUFXLEdBQUcsSUFBSSxlQUFlLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDLFFBQVEsRUFBRTs7Z0JBQy9ELEdBQUcsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxHQUFHOzs7O1lBQUMsVUFBQyxDQUFDLElBQUssT0FBQSxDQUFDLENBQUMsSUFBSSxFQUFOLENBQU0sRUFBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7WUFDbkUsT0FBTyxHQUFHLEdBQUcsR0FBRyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUMzRDtRQUNELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQzs7Ozs7SUFFRCxxQ0FBVTs7OztJQUFWLFVBQVcsSUFBWTtRQUNyQixpREFBaUQ7UUFDakQsYUFBYSxHQUFHLElBQUksQ0FBQztRQUNyQixPQUFPLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFlBQVk7SUFDekMsQ0FBQzs7Z0JBL0RGLFVBQVUsU0FBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzsyQkFaRDtDQTBFQyxBQWhFRCxJQWdFQztTQTdEWSxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtcclxuICBSb3V0ZVJldXNlU3RyYXRlZ3ksXHJcbiAgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCxcclxuICBEZXRhY2hlZFJvdXRlSGFuZGxlLFxyXG59IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuXHJcbmNvbnN0IHN0b3JlZFJvdXRlczogeyBba2V5OiBzdHJpbmddOiBEZXRhY2hlZFJvdXRlSGFuZGxlIH0gPSB7fTtcclxubGV0IHRvQmVEZWxldGVVcmw6IHN0cmluZztcclxubGV0IGV4Y2x1ZGVSb3V0ZXM6IHN0cmluZ1tdID0gW107IC8vIOS4jemcgOimgee8k+WtmOeahHVybFxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogXCJyb290XCIsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBLZWVwQWxpdmVTZXJ2aWNlIGltcGxlbWVudHMgUm91dGVSZXVzZVN0cmF0ZWd5IHtcclxuICBzZXRFeGNsdWRlUm91dGVzKHJvdXRlczogc3RyaW5nW10pIHtcclxuICAgIGV4Y2x1ZGVSb3V0ZXMgPSByb3V0ZXM7IC8vIOiuvue9ruS4jee8k+WtmOeahOi3r+eUsVxyXG4gIH1cclxuICBzaG91bGREZXRhY2gocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QpOiBib29sZWFuIHtcclxuICAgIGlmICh0b0JlRGVsZXRlVXJsID09PSB0aGlzLmdldFJvdXRlUGF0aChyb3V0ZSkpIHtcclxuICAgICAgLy8g5a+55LqO5paw5byA55qE5Y+I5Y2z5bCG5YWz6Zet55qEdGFi77yM5LiN57yT5a2YXHJcbiAgICAgIHRvQmVEZWxldGVVcmwgPSBcIlwiO1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gIWV4Y2x1ZGVSb3V0ZXMuaW5jbHVkZXMocm91dGUucm91dGVDb25maWcucGF0aCk7XHJcbiAgfVxyXG5cclxuICBzdG9yZShyb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgaGFuZGxlOiBEZXRhY2hlZFJvdXRlSGFuZGxlKTogdm9pZCB7XHJcbiAgICAvLyBjb25zb2xlLmxvZyhcInN0b3JlXCIsIHRoaXMuZ2V0Um91dGVQYXRoKHJvdXRlKSk7XHJcbiAgICAvLyBjb25zb2xlLmxvZyhcInN0b3JlXCIsIHN0b3JlZFJvdXRlcyk7XHJcbiAgICBzdG9yZWRSb3V0ZXNbdGhpcy5nZXRSb3V0ZVBhdGgocm91dGUpXSA9IGhhbmRsZTtcclxuICB9XHJcblxyXG4gIHNob3VsZEF0dGFjaChyb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICEhc3RvcmVkUm91dGVzW3RoaXMuZ2V0Um91dGVQYXRoKHJvdXRlKV07XHJcbiAgfVxyXG5cclxuICByZXRyaWV2ZShyb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCk6IERldGFjaGVkUm91dGVIYW5kbGUge1xyXG4gICAgaWYgKCFyb3V0ZS5yb3V0ZUNvbmZpZykgcmV0dXJuIG51bGw7XHJcbiAgICBpZiAocm91dGUucm91dGVDb25maWcubG9hZENoaWxkcmVuKSByZXR1cm4gbnVsbDtcclxuICAgIHJldHVybiBzdG9yZWRSb3V0ZXNbdGhpcy5nZXRSb3V0ZVBhdGgocm91dGUpXTtcclxuICB9XHJcblxyXG4gIHNob3VsZFJldXNlUm91dGUoXHJcbiAgICBmdXR1cmU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsXHJcbiAgICBjdXJyOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90XHJcbiAgKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoZnV0dXJlLnJvdXRlQ29uZmlnID09PSBjdXJyLnJvdXRlQ29uZmlnKSB7XHJcbiAgICAgIGlmIChmdXR1cmUuY2hpbGRyZW4ubGVuZ3RoID09PSAwICYmIGN1cnIuY2hpbGRyZW4ubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgLy8g5peg5a2Q6Lev55Sx5pe2LCDpgJrov4dwYXJhbXPlkoxxdWVyeVBhcmFtc+WIpOaWreaYr+WQpuWkjeeUqOi3r+eUsVxyXG4gICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICBKU09OLnN0cmluZ2lmeShmdXR1cmUucGFyYW1zKSA9PT0gSlNPTi5zdHJpbmdpZnkoY3Vyci5wYXJhbXMpICYmXHJcbiAgICAgICAgICBKU09OLnN0cmluZ2lmeShmdXR1cmUucXVlcnlQYXJhbXMpID09PVxyXG4gICAgICAgICAgICBKU09OLnN0cmluZ2lmeShjdXJyLnF1ZXJ5UGFyYW1zKVxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBnZXRSb3V0ZVBhdGgocm91dGUpOiBzdHJpbmcge1xyXG4gICAgaWYgKHJvdXRlLnJvdXRlQ29uZmlnKSB7XHJcbiAgICAgIGNvbnN0IHF1ZXJ5UGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyhyb3V0ZS5xdWVyeVBhcmFtcykudG9TdHJpbmcoKTtcclxuICAgICAgY29uc3QgdXJsID0gcm91dGUuX3VybFNlZ21lbnQuc2VnbWVudHMubWFwKCh2KSA9PiB2LnBhdGgpLmpvaW4oXCIvXCIpO1xyXG4gICAgICByZXR1cm4gXCIvXCIgKyB1cmwgKyAocXVlcnlQYXJhbXMgPyBcIj9cIiArIHF1ZXJ5UGFyYW1zIDogXCJcIik7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gXCJcIjtcclxuICB9XHJcblxyXG4gIGNsZWFyQ2FjaGUocGF0aDogc3RyaW5nKSB7XHJcbiAgICAvLyBjb25zb2xlLmxvZyhcImNsZWFyQ2FjaGVcIiwgc3RvcmVkUm91dGVzLCBwYXRoKTtcclxuICAgIHRvQmVEZWxldGVVcmwgPSBwYXRoO1xyXG4gICAgZGVsZXRlIHN0b3JlZFJvdXRlc1twYXRoXTsgLy8g5riF6Zmk5oyH5a6a6Lev5b6E55qE57yT5a2YXHJcbiAgfVxyXG59XHJcbiJdfQ==
181
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2VlcC1hbGl2ZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vcmFpc2UtY29tbW9uLWxpYi8iLCJzb3VyY2VzIjpbImxpYi9zZXJ2aWNlL2tlZXAtYWxpdmUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7OztJQU9yQyxZQUFZLEdBQUcsSUFBSSxHQUFHLEVBQStCOztJQUN2RCxhQUFxQjs7SUFDckIsYUFBYSxHQUFhLEVBQUU7O0FBQ2hDO0lBQUE7S0FxRkM7Ozs7O0lBakZDLDJDQUFnQjs7OztJQUFoQixVQUFpQixNQUFnQjtRQUMvQixhQUFhLEdBQUcsTUFBTSxDQUFDLENBQUMsV0FBVztJQUNyQyxDQUFDOzs7OztJQUNELHVDQUFZOzs7O0lBQVosVUFBYSxLQUE2Qjs7WUFDcEMsTUFBTSxHQUFHLEtBQUssQ0FBQyxXQUFXO1FBQzlCLHdFQUF3RTtRQUN4RSxJQUFJLGFBQWEsS0FBSyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQzlDLHFCQUFxQjtZQUNyQixJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtnQkFDL0IsYUFBYSxHQUFHLEVBQUUsQ0FBQzthQUNwQjtZQUNELE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFDRCxJQUFJLE1BQU0sSUFBSSxhQUFhLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtZQUM5RCxPQUFPLEtBQUssQ0FBQztTQUNkO1FBQ0QsZ0NBQWdDO1FBQ2hDLE9BQU8sTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQztJQUN4QyxDQUFDOzs7Ozs7SUFFRCxnQ0FBSzs7Ozs7SUFBTCxVQUFNLEtBQTZCLEVBQUUsTUFBMkI7Ozs7WUFHeEQsR0FBRyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDO1FBQ3BDLFlBQVksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7Ozs7O0lBRUQsdUNBQVk7Ozs7SUFBWixVQUFhLEtBQTZCOztZQUNsQyxHQUFHLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUM7UUFDcEMsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLFdBQVcsSUFBSSxZQUFZLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3RELENBQUM7Ozs7O0lBRUQsbUNBQVE7Ozs7SUFBUixVQUFTLEtBQTZCOztZQUNoQyxNQUFNLEdBQUcsS0FBSyxDQUFDLFdBQVc7O1lBQ3hCLEdBQUcsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQztRQUNwQyxpRkFBaUY7UUFDakYsSUFBSSxDQUFDLE1BQU0sSUFBSSxNQUFNLENBQUMsWUFBWSxFQUFFO1lBQ2xDLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFDRCxPQUFPLFlBQVksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDO0lBQ3ZDLENBQUM7Ozs7OztJQUVELDJDQUFnQjs7Ozs7SUFBaEIsVUFDRSxNQUE4QixFQUM5QixJQUE0QjtRQUU1QixpREFBaUQ7UUFDakQsa0RBQWtEO1FBQ2xELElBQUksTUFBTSxDQUFDLFdBQVcsS0FBSyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQzNDLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtnQkFDOUQsc0NBQXNDO2dCQUN0QyxPQUFPLENBQ0wsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO29CQUM3RCxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUM7d0JBQ2hDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUNuQyxDQUFDO2FBQ0g7WUFDRCxPQUFPLElBQUksQ0FBQztTQUNiO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOzs7OztJQUVELHVDQUFZOzs7O0lBQVosVUFBYSxLQUFLO1FBQ2hCLElBQUksS0FBSyxDQUFDLFdBQVcsRUFBRTs7O2dCQUVmLFdBQVcsR0FBRyxJQUFJLGVBQWUsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUMsUUFBUSxFQUFFOztnQkFDL0QsR0FBRyxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLEdBQUc7Ozs7WUFBQyxVQUFDLENBQUMsSUFBSyxPQUFBLENBQUMsQ0FBQyxJQUFJLEVBQU4sQ0FBTSxFQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztZQUNuRSxPQUFPLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQzNEO1FBQ0QsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDOzs7OztJQUVELHFDQUFVOzs7O0lBQVYsVUFBVyxJQUFZO1FBQ3JCLGlEQUFpRDtRQUNqRCxhQUFhLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLFlBQVksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDNUIsQ0FBQzs7OztJQUVELHdDQUFhOzs7SUFBYjtRQUNFLFlBQVksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN2QixDQUFDOztnQkFwRkYsVUFBVSxTQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7OzJCQVpEO0NBK0ZDLEFBckZELElBcUZDO1NBbEZZLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge1xyXG4gIFJvdXRlUmV1c2VTdHJhdGVneSxcclxuICBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LFxyXG4gIERldGFjaGVkUm91dGVIYW5kbGUsXHJcbn0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5cclxuY29uc3Qgc3RvcmVkUm91dGVzID0gbmV3IE1hcDxzdHJpbmcsIERldGFjaGVkUm91dGVIYW5kbGU+KCk7XHJcbmxldCB0b0JlRGVsZXRlVXJsOiBzdHJpbmc7XHJcbmxldCBleGNsdWRlUm91dGVzOiBzdHJpbmdbXSA9IFtdOyAvLyDkuI3pnIDopoHnvJPlrZjnmoR1cmxcclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46IFwicm9vdFwiLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgS2VlcEFsaXZlU2VydmljZSBpbXBsZW1lbnRzIFJvdXRlUmV1c2VTdHJhdGVneSB7XHJcbiAgc2V0RXhjbHVkZVJvdXRlcyhyb3V0ZXM6IHN0cmluZ1tdKSB7XHJcbiAgICBleGNsdWRlUm91dGVzID0gcm91dGVzOyAvLyDorr7nva7kuI3nvJPlrZjnmoTot6/nlLFcclxuICB9XHJcbiAgc2hvdWxkRGV0YWNoKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90KTogYm9vbGVhbiB7XHJcbiAgICBsZXQgY29uZmlnID0gcm91dGUucm91dGVDb25maWc7XHJcbiAgICAvLyBjb25zb2xlLmxvZyhcInNob3VsZERldGFjaFwiLCB0b0JlRGVsZXRlVXJsLCB0aGlzLmdldFJvdXRlUGF0aChyb3V0ZSkpO1xyXG4gICAgaWYgKHRvQmVEZWxldGVVcmwgPT09IHRoaXMuZ2V0Um91dGVQYXRoKHJvdXRlKSkge1xyXG4gICAgICAvLyDlr7nkuo7mlrDlvIDnmoTlj4jljbPlsIblhbPpl63nmoR0YWLvvIzkuI3nvJPlrZhcclxuICAgICAgaWYgKHJvdXRlLmNoaWxkcmVuLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgIHRvQmVEZWxldGVVcmwgPSBcIlwiO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIGlmIChjb25maWcgJiYgZXhjbHVkZVJvdXRlcy5pbmNsdWRlcyh0aGlzLmdldFJvdXRlUGF0aChyb3V0ZSkpKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIC8vRG9uJ3Qgc3RvcmUgbGF6eSBsb2FkZWQgcm91dGVzXHJcbiAgICByZXR1cm4gY29uZmlnICYmICFjb25maWcubG9hZENoaWxkcmVuO1xyXG4gIH1cclxuXHJcbiAgc3RvcmUocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIGhhbmRsZTogRGV0YWNoZWRSb3V0ZUhhbmRsZSk6IHZvaWQge1xyXG4gICAgLy8gY29uc29sZS5sb2coXCJzdG9yZVwiLCB0aGlzLmdldFJvdXRlUGF0aChyb3V0ZSkpO1xyXG4gICAgLy8gY29uc29sZS5sb2coXCJzdG9yZVwiLCBzdG9yZWRSb3V0ZXMpO1xyXG4gICAgY29uc3Qga2V5ID0gdGhpcy5nZXRSb3V0ZVBhdGgocm91dGUpO1xyXG4gICAgc3RvcmVkUm91dGVzLnNldChrZXksIGhhbmRsZSk7XHJcbiAgfVxyXG5cclxuICBzaG91bGRBdHRhY2gocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IGtleSA9IHRoaXMuZ2V0Um91dGVQYXRoKHJvdXRlKTtcclxuICAgIHJldHVybiAhIXJvdXRlLnJvdXRlQ29uZmlnICYmIHN0b3JlZFJvdXRlcy5oYXMoa2V5KTtcclxuICB9XHJcblxyXG4gIHJldHJpZXZlKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90KTogRGV0YWNoZWRSb3V0ZUhhbmRsZSB7XHJcbiAgICBsZXQgY29uZmlnID0gcm91dGUucm91dGVDb25maWc7XHJcbiAgICBjb25zdCBrZXkgPSB0aGlzLmdldFJvdXRlUGF0aChyb3V0ZSk7XHJcbiAgICAvL1dlIGRvbid0IHN0b3JlIGxhenkgbG9hZGVkIHJvdXRlcywgc28gZG9uJ3QgZXZlbiBib3RoZXIgdHJ5aW5nIHRvIHJldHJpZXZlIHRoZW1cclxuICAgIGlmICghY29uZmlnIHx8IGNvbmZpZy5sb2FkQ2hpbGRyZW4pIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHN0b3JlZFJvdXRlcy5nZXQoa2V5KSB8fCBudWxsO1xyXG4gIH1cclxuXHJcbiAgc2hvdWxkUmV1c2VSb3V0ZShcclxuICAgIGZ1dHVyZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCxcclxuICAgIGN1cnI6IEFjdGl2YXRlZFJvdXRlU25hcHNob3RcclxuICApOiBib29sZWFuIHtcclxuICAgIC8vIGNvbnNvbGUubG9nKFwic2hvdWxkUmV1c2VSb3V0ZVwiLCBmdXR1cmUsIGN1cnIpO1xyXG4gICAgLy8gcmV0dXJuIGZ1dHVyZS5yb3V0ZUNvbmZpZyA9PT0gY3Vyci5yb3V0ZUNvbmZpZztcclxuICAgIGlmIChmdXR1cmUucm91dGVDb25maWcgPT09IGN1cnIucm91dGVDb25maWcpIHtcclxuICAgICAgaWYgKGZ1dHVyZS5jaGlsZHJlbi5sZW5ndGggPT09IDAgJiYgY3Vyci5jaGlsZHJlbi5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAvLyDml6DlrZDot6/nlLHml7YsIOmAmui/h3BhcmFtc+WSjHF1ZXJ5UGFyYW1z5Yik5pat5piv5ZCm5aSN55So6Lev55SxXHJcbiAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgIEpTT04uc3RyaW5naWZ5KGZ1dHVyZS5wYXJhbXMpID09PSBKU09OLnN0cmluZ2lmeShjdXJyLnBhcmFtcykgJiZcclxuICAgICAgICAgIEpTT04uc3RyaW5naWZ5KGZ1dHVyZS5xdWVyeVBhcmFtcykgPT09XHJcbiAgICAgICAgICAgIEpTT04uc3RyaW5naWZ5KGN1cnIucXVlcnlQYXJhbXMpXHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIGdldFJvdXRlUGF0aChyb3V0ZSk6IHN0cmluZyB7XHJcbiAgICBpZiAocm91dGUucm91dGVDb25maWcpIHtcclxuICAgICAgLy8gY29uc3QgcGF0aFBhcmFtcyA9IEpTT04uc3RyaW5naWZ5KHJvdXRlLnBhcmFtcyk7XHJcbiAgICAgIGNvbnN0IHF1ZXJ5UGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyhyb3V0ZS5xdWVyeVBhcmFtcykudG9TdHJpbmcoKTtcclxuICAgICAgY29uc3QgdXJsID0gcm91dGUuX3VybFNlZ21lbnQuc2VnbWVudHMubWFwKCh2KSA9PiB2LnBhdGgpLmpvaW4oXCIvXCIpO1xyXG4gICAgICByZXR1cm4gXCIvXCIgKyB1cmwgKyAocXVlcnlQYXJhbXMgPyBcIj9cIiArIHF1ZXJ5UGFyYW1zIDogXCJcIik7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gXCJcIjtcclxuICB9XHJcblxyXG4gIGNsZWFyQ2FjaGUocGF0aDogc3RyaW5nKSB7XHJcbiAgICAvLyBjb25zb2xlLmxvZyhcImNsZWFyQ2FjaGVcIiwgc3RvcmVkUm91dGVzLCBwYXRoKTtcclxuICAgIHRvQmVEZWxldGVVcmwgPSBwYXRoO1xyXG4gICAgc3RvcmVkUm91dGVzLmRlbGV0ZShwYXRoKTtcclxuICB9XHJcblxyXG4gIGNsZWFyQWxsQ2FjaGUoKSB7XHJcbiAgICBzdG9yZWRSb3V0ZXMuY2xlYXIoKTtcclxuICB9XHJcbn1cclxuIl19
@@ -1300,7 +1300,7 @@ CommonFunctionService.ctorParameters = () => [];
1300
1300
  * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
1301
1301
  */
1302
1302
  /** @type {?} */
1303
- const storedRoutes = {};
1303
+ const storedRoutes = new Map();
1304
1304
  /** @type {?} */
1305
1305
  let toBeDeleteUrl;
1306
1306
  /** @type {?} */
@@ -1319,12 +1319,21 @@ class KeepAliveService {
1319
1319
  * @return {?}
1320
1320
  */
1321
1321
  shouldDetach(route) {
1322
+ /** @type {?} */
1323
+ let config = route.routeConfig;
1324
+ // console.log("shouldDetach", toBeDeleteUrl, this.getRoutePath(route));
1322
1325
  if (toBeDeleteUrl === this.getRoutePath(route)) {
1323
1326
  // 对于新开的又即将关闭的tab,不缓存
1324
- toBeDeleteUrl = "";
1327
+ if (route.children.length === 0) {
1328
+ toBeDeleteUrl = "";
1329
+ }
1330
+ return false;
1331
+ }
1332
+ if (config && excludeRoutes.includes(this.getRoutePath(route))) {
1325
1333
  return false;
1326
1334
  }
1327
- return !excludeRoutes.includes(route.routeConfig.path);
1335
+ //Don't store lazy loaded routes
1336
+ return config && !config.loadChildren;
1328
1337
  }
1329
1338
  /**
1330
1339
  * @param {?} route
@@ -1334,25 +1343,33 @@ class KeepAliveService {
1334
1343
  store(route, handle) {
1335
1344
  // console.log("store", this.getRoutePath(route));
1336
1345
  // console.log("store", storedRoutes);
1337
- storedRoutes[this.getRoutePath(route)] = handle;
1346
+ /** @type {?} */
1347
+ const key = this.getRoutePath(route);
1348
+ storedRoutes.set(key, handle);
1338
1349
  }
1339
1350
  /**
1340
1351
  * @param {?} route
1341
1352
  * @return {?}
1342
1353
  */
1343
1354
  shouldAttach(route) {
1344
- return !!storedRoutes[this.getRoutePath(route)];
1355
+ /** @type {?} */
1356
+ const key = this.getRoutePath(route);
1357
+ return !!route.routeConfig && storedRoutes.has(key);
1345
1358
  }
1346
1359
  /**
1347
1360
  * @param {?} route
1348
1361
  * @return {?}
1349
1362
  */
1350
1363
  retrieve(route) {
1351
- if (!route.routeConfig)
1352
- return null;
1353
- if (route.routeConfig.loadChildren)
1354
- return null;
1355
- return storedRoutes[this.getRoutePath(route)];
1364
+ /** @type {?} */
1365
+ let config = route.routeConfig;
1366
+ /** @type {?} */
1367
+ const key = this.getRoutePath(route);
1368
+ //We don't store lazy loaded routes, so don't even bother trying to retrieve them
1369
+ if (!config || config.loadChildren) {
1370
+ return false;
1371
+ }
1372
+ return storedRoutes.get(key) || null;
1356
1373
  }
1357
1374
  /**
1358
1375
  * @param {?} future
@@ -1360,6 +1377,8 @@ class KeepAliveService {
1360
1377
  * @return {?}
1361
1378
  */
1362
1379
  shouldReuseRoute(future, curr) {
1380
+ // console.log("shouldReuseRoute", future, curr);
1381
+ // return future.routeConfig === curr.routeConfig;
1363
1382
  if (future.routeConfig === curr.routeConfig) {
1364
1383
  if (future.children.length === 0 && curr.children.length === 0) {
1365
1384
  // 无子路由时, 通过params和queryParams判断是否复用路由
@@ -1377,6 +1396,7 @@ class KeepAliveService {
1377
1396
  */
1378
1397
  getRoutePath(route) {
1379
1398
  if (route.routeConfig) {
1399
+ // const pathParams = JSON.stringify(route.params);
1380
1400
  /** @type {?} */
1381
1401
  const queryParams = new URLSearchParams(route.queryParams).toString();
1382
1402
  /** @type {?} */
@@ -1396,7 +1416,13 @@ class KeepAliveService {
1396
1416
  clearCache(path) {
1397
1417
  // console.log("clearCache", storedRoutes, path);
1398
1418
  toBeDeleteUrl = path;
1399
- delete storedRoutes[path]; // 清除指定路径的缓存
1419
+ storedRoutes.delete(path);
1420
+ }
1421
+ /**
1422
+ * @return {?}
1423
+ */
1424
+ clearAllCache() {
1425
+ storedRoutes.clear();
1400
1426
  }
1401
1427
  }
1402
1428
  KeepAliveService.decorators = [
@@ -1466,8 +1492,11 @@ class MultiTabComponent {
1466
1492
  const state = navigation.extras.state;
1467
1493
  // 获取传递的 state
1468
1494
  /** @type {?} */
1495
+ const skipLocationChange = navigation.extras.skipLocationChange;
1496
+ // 获取是否跳过 location change
1497
+ /** @type {?} */
1469
1498
  const currentRoute = this.router.routerState.root.firstChild;
1470
- if (currentRoute) {
1499
+ if (currentRoute && !skipLocationChange) {
1471
1500
  this.setTab(this.router.url, currentRoute.snapshot.routeConfig.path, state && state.title);
1472
1501
  }
1473
1502
  }
@@ -1772,8 +1801,8 @@ class RSHeaderComponent {
1772
1801
  RSHeaderComponent.decorators = [
1773
1802
  { type: Component, args: [{
1774
1803
  selector: "rs-header",
1775
- 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",
1776
- 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}"]
1804
+ 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=\"content-header-wrap\">\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</div>\r\n",
1805
+ 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 .content-header-wrap{display:flex;justify-content:space-between;align-items:center;flex:1}.rs-header .bread-crumbs-wrap{padding-left:16px}.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}"]
1777
1806
  }] }
1778
1807
  ];
1779
1808
  RSHeaderComponent.propDecorators = {
@@ -1899,6 +1928,7 @@ class RSAsideComponent {
1899
1928
  * @return {?}
1900
1929
  */
1901
1930
  ngOnInit() {
1931
+ this.currentNav = this.router.url;
1902
1932
  // 监听路由变化
1903
1933
  this.router.events
1904
1934
  .pipe(filter((/**
@@ -1931,7 +1961,7 @@ RSAsideComponent.decorators = [
1931
1961
  { type: Component, args: [{
1932
1962
  selector: "rs-aside",
1933
1963
  template: "<div class=\"rs-aside\" [ngClass]=\"{ isCollapsed: isCollapsed }\">\r\n <div class=\"nav-list\">\r\n <div\r\n class=\"nav-item\"\r\n [ngClass]=\"{ isCurrent: currentNav === nav.url }\"\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.iconCode\"></mat-icon>\r\n <span class=\"nav-text\" [ngClass]=\"{ isCollapsed: isCollapsed }\">{{\r\n nav.label\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",
1934
- styles: [".rs-aside{display:flex;flex-direction:column;height:100%;width:240px;will-change:width;transition:width .3s;padding-right:16px}.rs-aside.isCollapsed{width:64px;padding-right:0}.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}@media (min-width:992px){.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}@media (min-width:992px){.rs-aside .bottom-iconbox.isCollapsed{flex-direction:column;height:auto}}@media (max-width:992px){.rs-aside{width:0;overflow:hidden;position:absolute;height:calc(100% - 50px);z-index:10;background-color:var(--rs-container-bg);padding-right:0}.rs-aside.isCollapsed{width:240px;padding-right:16px}}"]
1964
+ styles: [".rs-aside{display:flex;flex-direction:column;height:100%;width:240px;will-change:width;transition:width .3s;padding-right:16px}.rs-aside.isCollapsed{width:64px;padding-right:0}.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;display:flex;align-items:center}.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}@media (min-width:992px){.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}@media (min-width:992px){.rs-aside .bottom-iconbox.isCollapsed{flex-direction:column;height:auto}}@media (max-width:992px){.rs-aside{width:0;overflow:hidden;position:absolute;height:calc(100% - 50px);z-index:10;background-color:var(--rs-container-bg);padding-right:0}.rs-aside.isCollapsed{width:240px;padding-right:16px}}"]
1935
1965
  }] }
1936
1966
  ];
1937
1967
  /** @nocollapse */
@@ -2092,7 +2122,7 @@ RadioGroupComponent.decorators = [
2092
2122
  { type: Component, args: [{
2093
2123
  selector: "rs-radio-group",
2094
2124
  template: "<div class=\"radio-group\" [ngClass]=\"[orientation, error ? 'error' : '']\">\r\n <div class=\"radio-item\" *ngFor=\"let option of dataSource\">\r\n <ejs-radiobutton\r\n [label]=\"option[fields.text]\"\r\n [(ngModel)]=\"value\"\r\n [value]=\"option[fields.value]\"\r\n [disabled]=\"option[fields.disabled] || disabled\"\r\n (change)=\"onChange($event)\"\r\n ></ejs-radiobutton>\r\n </div>\r\n</div>\r\n",
2095
- styles: [".radio-group{display:flex;padding-left:4px}.radio-group.horizontal{flex-direction:row;gap:35px}.radio-group.vertical{flex-direction:column;gap:14px}.radio-group .radio-item .e-radio:disabled+label::before{border-color:rgba(209,209,209,.5);background-color:rgba(234,237,240,.35)}.radio-group .radio-item .e-radio:checked+label::before{background-color:var(--rs-active-color);border-color:var(--rs-active-color);box-shadow:none}.radio-group .radio-item .e-radio:checked+label::after{content:\"\"!important;display:block;width:11px;height:8px;background-image:url(/assets/img/checked-vector.svg);background-size:cover;background-position:center;background-color:transparent;transform:scale(1);left:2px;top:3px;border:0;border-radius:0}.radio-group .radio-item .e-label{color:var(--rs-label-color);font-family:var(--rs-font-family);font-size:var(--rs-font-size);font-weight:400;line-height:14px}"]
2125
+ styles: [".radio-group{display:flex;padding-left:4px}.radio-group.horizontal{flex-direction:row;gap:35px}.radio-group.vertical{flex-direction:column;gap:14px}"]
2096
2126
  }] }
2097
2127
  ];
2098
2128
  RadioGroupComponent.propDecorators = {
@@ -2175,7 +2205,7 @@ CheckboxGroupComponent.decorators = [
2175
2205
  { type: Component, args: [{
2176
2206
  selector: "rs-checkbox-group",
2177
2207
  template: "<div class=\"checkbox-group\" [ngClass]=\"[orientation, error ? 'error' : '']\">\r\n <div class=\"checkbox-item\" *ngFor=\"let option of dataSource\">\r\n <ejs-checkbox\r\n [name]=\"name\"\r\n [label]=\"option[fields.text]\"\r\n [value]=\"option[fields.value]\"\r\n [disabled]=\"option[fields.disabled] || disabled\"\r\n [checked]=\"value.includes(option[fields.value])\"\r\n (change)=\"onChange($event, option)\"\r\n ></ejs-checkbox>\r\n </div>\r\n</div>\r\n",
2178
- styles: [".checkbox-group{display:flex;padding-left:4px}.checkbox-group.horizontal{flex-direction:row;gap:35px}.checkbox-group.vertical{flex-direction:column;gap:14px}.checkbox-group .checkbox-item .e-label{color:var(--rs-label-color);font-family:var(--rs-font-family);font-size:var(--rs-font-size);font-weight:400;line-height:14px}.checkbox-group .checkbox-item .e-checkbox-wrapper.e-checkbox-disabled .e-icons{border-color:rgba(209,209,209,.5);background-color:rgba(234,237,240,.35)}.checkbox-group .checkbox-item .e-icons{box-shadow:none!important}.checkbox-group .checkbox-item .e-icons.e-check{background-color:var(--rs-active-color);border-color:var(--rs-active-color)}.checkbox-group .checkbox-item .e-icons.e-check::before{content:\"\"!important;display:block;width:11px;height:8px;background-image:url(/assets/img/checked-vector.svg);background-size:cover;background-position:center;background-color:transparent;margin:2px auto}"]
2208
+ styles: [".checkbox-group{display:flex;padding-left:4px}.checkbox-group.horizontal{flex-direction:row;gap:35px}.checkbox-group.vertical{flex-direction:column;gap:14px}"]
2179
2209
  }] }
2180
2210
  ];
2181
2211
  /** @nocollapse */
@@ -2254,7 +2284,7 @@ SwitchInputComponent.decorators = [
2254
2284
  { type: Component, args: [{
2255
2285
  selector: "rs-switch-input",
2256
2286
  template: "<div class=\"rs-switch\" [ngClass]=\"[orientation, error ? 'error' : '', disabled ? 'disabled' : '']\">\r\n <label class=\"switch-label\" (click)=\"onClick()\"> {{ text }} </label>\r\n <ejs-switch\r\n [(ngModel)]=\"value\"\r\n [disabled]=\"disabled\"\r\n (change)=\"onChange($event)\"\r\n ></ejs-switch>\r\n</div>\r\n",
2257
- styles: [".rs-switch{display:flex;align-items:center;gap:8px}.rs-switch.behind{flex-direction:row-reverse;justify-content:flex-end}.rs-switch .switch-label{color:var(--rs-label-color);font-family:var(--rs-font-family);font-size:var(--rs-font-size);cursor:pointer}.rs-switch.disabled .switch-label{cursor:default;pointer-events:none}.rs-switch .e-switch-wrapper{width:28px}.rs-switch .e-switch-wrapper .e-switch-inner{border:1px solid #adb5bd}.rs-switch .e-switch-wrapper .e-switch-inner.e-switch-active{background-color:var(--rs-active-color);border-color:var(--rs-active-color)}.rs-switch .e-switch-wrapper .e-switch-handle{background-color:#fff;border:1px solid #adb5bd;left:2px}.rs-switch .e-switch-wrapper .e-switch-handle.e-switch-active{background-color:#fff;border-color:var(--rs-active-color);left:100%}.rs-switch .e-switch-wrapper.e-switch-disabled .e-switch-handle{background-color:#e9ecef;opacity:.5}.rs-switch .e-switch-wrapper.e-switch-disabled .e-switch-handle.e-switch-active{border-color:rgba(0,129,255,.5)}.rs-switch .e-switch-wrapper .e-switch-on{background-color:var(--rs-active-color);color:#fff}"]
2287
+ styles: [".rs-switch{display:flex;align-items:center;gap:8px}.rs-switch.behind{flex-direction:row-reverse;justify-content:flex-end}.rs-switch .switch-label{color:var(--rs-label-color);font-family:var(--rs-font-family);font-size:var(--rs-font-size);cursor:pointer}.rs-switch.disabled .switch-label{cursor:default;pointer-events:none}"]
2258
2288
  }] }
2259
2289
  ];
2260
2290
  SwitchInputComponent.propDecorators = {