raise-common-lib 0.0.22 → 0.0.24

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 (36) hide show
  1. package/bundles/raise-common-lib.umd.js +82 -42
  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/dialog/common-delete-dialog/index.component.js +2 -2
  6. package/esm2015/lib/dialog/common-dialog/index.component.js +2 -2
  7. package/esm2015/lib/form/checkbox-group/index.component.js +1 -1
  8. package/esm2015/lib/form/radio-group/index.component.js +1 -1
  9. package/esm2015/lib/form/switch-input/index.component.js +1 -1
  10. package/esm2015/lib/layout/multi-tab/index.component.js +1 -1
  11. package/esm2015/lib/layout/rs-aside/index.component.js +25 -9
  12. package/esm2015/lib/layout/rs-header/index.component.js +41 -26
  13. package/esm2015/lib/service/dialog.service.js +2 -2
  14. package/esm2015/lib/service/keep-alive.service.js +11 -6
  15. package/esm5/lib/dialog/common-delete-dialog/index.component.js +2 -2
  16. package/esm5/lib/dialog/common-dialog/index.component.js +2 -2
  17. package/esm5/lib/form/checkbox-group/index.component.js +1 -1
  18. package/esm5/lib/form/radio-group/index.component.js +1 -1
  19. package/esm5/lib/form/switch-input/index.component.js +1 -1
  20. package/esm5/lib/layout/multi-tab/index.component.js +1 -1
  21. package/esm5/lib/layout/rs-aside/index.component.js +26 -9
  22. package/esm5/lib/layout/rs-header/index.component.js +45 -26
  23. package/esm5/lib/service/dialog.service.js +2 -2
  24. package/esm5/lib/service/keep-alive.service.js +11 -6
  25. package/fesm2015/raise-common-lib.js +77 -42
  26. package/fesm2015/raise-common-lib.js.map +1 -1
  27. package/fesm5/raise-common-lib.js +82 -42
  28. package/fesm5/raise-common-lib.js.map +1 -1
  29. package/lib/layout/rs-aside/index.component.d.ts +1 -1
  30. package/lib/layout/rs-header/index.component.d.ts +5 -9
  31. package/package.json +1 -1
  32. package/raise-common-lib.metadata.json +1 -1
  33. package/src/assets/style/reset/checkbox.scss +33 -0
  34. package/src/assets/style/reset/radio.scss +37 -0
  35. package/src/assets/style/reset/switch.scss +32 -0
  36. package/src/assets/style/style.scss +4 -0
@@ -1360,11 +1360,16 @@ class KeepAliveService {
1360
1360
  * @return {?}
1361
1361
  */
1362
1362
  shouldReuseRoute(future, curr) {
1363
- console.log("shouldReuseRoute");
1364
- // return this.getRoutePath(future) === this.getRoutePath(curr); // 复用相同的路由
1365
- return (future.routeConfig === curr.routeConfig &&
1366
- JSON.stringify(future.params) === JSON.stringify(curr.params) &&
1367
- JSON.stringify(future.queryParams) === JSON.stringify(curr.queryParams));
1363
+ if (future.routeConfig === curr.routeConfig) {
1364
+ if (future.children.length === 0 && curr.children.length === 0) {
1365
+ // 无子路由时, 通过params和queryParams判断是否复用路由
1366
+ return (JSON.stringify(future.params) === JSON.stringify(curr.params) &&
1367
+ JSON.stringify(future.queryParams) ===
1368
+ JSON.stringify(curr.queryParams));
1369
+ }
1370
+ return true;
1371
+ }
1372
+ return false;
1368
1373
  }
1369
1374
  /**
1370
1375
  * @param {?} route
@@ -1712,31 +1717,38 @@ if (false) {
1712
1717
  */
1713
1718
  class RSHeaderComponent {
1714
1719
  constructor() {
1715
- this.toggleMenu = new EventEmitter();
1716
1720
  this.isCollapsed = false; // 接收输入属性
1717
1721
  // 接收输入属性
1718
1722
  this.lastLoginTime = new Date();
1719
- this.langOptions = [
1720
- {
1721
- value: 1,
1722
- text: "English",
1723
- },
1724
- {
1725
- value: 2,
1726
- text: "繁體中文",
1727
- },
1728
- {
1729
- value: 3,
1730
- text: "简体中文",
1731
- },
1732
- ];
1733
- this.currentLang = this.langOptions[0];
1723
+ this.toggleMenu = new EventEmitter();
1724
+ this.changeLanguage = new EventEmitter();
1725
+ this._langOptions = [];
1726
+ }
1727
+ /**
1728
+ * @param {?} options
1729
+ * @return {?}
1730
+ */
1731
+ set langOptions(options) {
1732
+ this._langOptions = options;
1733
+ if (options && options.length > 0) {
1734
+ this.currentLang = options.find((/**
1735
+ * @param {?} e
1736
+ * @return {?}
1737
+ */
1738
+ (e) => e.defaultLang));
1739
+ }
1740
+ }
1741
+ /**
1742
+ * @return {?}
1743
+ */
1744
+ get langOptions() {
1745
+ return this._langOptions;
1734
1746
  }
1735
1747
  /**
1736
1748
  * @return {?}
1737
1749
  */
1738
1750
  ngOnInit() {
1739
- this.translation = JSON.parse(localStorage.getItem("translation"));
1751
+ this.translation = JSON.parse(localStorage.getItem("translation")) || {};
1740
1752
  }
1741
1753
  /**
1742
1754
  * @return {?}
@@ -1754,33 +1766,41 @@ class RSHeaderComponent {
1754
1766
  * @return {?}
1755
1767
  */
1756
1768
  (item) => item.text === event.item.text));
1769
+ this.changeLanguage.emit(this.currentLang.languageCode);
1757
1770
  }
1758
1771
  }
1759
1772
  RSHeaderComponent.decorators = [
1760
1773
  { type: Component, args: [{
1761
1774
  selector: "rs-header",
1762
- 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",
1763
- 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}"]
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=\"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",
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 .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}"]
1764
1777
  }] }
1765
1778
  ];
1766
1779
  RSHeaderComponent.propDecorators = {
1767
- toggleMenu: [{ type: Output }],
1768
1780
  isCollapsed: [{ type: Input }],
1769
- lastLoginTime: [{ type: Input }]
1781
+ lastLoginTime: [{ type: Input }],
1782
+ langOptions: [{ type: Input }],
1783
+ toggleMenu: [{ type: Output }],
1784
+ changeLanguage: [{ type: Output }]
1770
1785
  };
1771
1786
  if (false) {
1772
- /** @type {?} */
1773
- RSHeaderComponent.prototype.toggleMenu;
1774
1787
  /** @type {?} */
1775
1788
  RSHeaderComponent.prototype.isCollapsed;
1776
1789
  /** @type {?} */
1777
1790
  RSHeaderComponent.prototype.lastLoginTime;
1778
1791
  /** @type {?} */
1779
- RSHeaderComponent.prototype.translation;
1792
+ RSHeaderComponent.prototype.toggleMenu;
1780
1793
  /** @type {?} */
1781
- RSHeaderComponent.prototype.langOptions;
1794
+ RSHeaderComponent.prototype.changeLanguage;
1795
+ /**
1796
+ * @type {?}
1797
+ * @private
1798
+ */
1799
+ RSHeaderComponent.prototype._langOptions;
1782
1800
  /** @type {?} */
1783
1801
  RSHeaderComponent.prototype.currentLang;
1802
+ /** @type {?} */
1803
+ RSHeaderComponent.prototype.translation;
1784
1804
  }
1785
1805
 
1786
1806
  /**
@@ -1873,19 +1893,34 @@ class RSAsideComponent {
1873
1893
  this.isCollapsed = false; // 接收输入属性
1874
1894
  // 接收输入属性
1875
1895
  this.navList = [];
1876
- this.currentNav = null;
1896
+ this.currentNav = "";
1877
1897
  }
1878
1898
  /**
1879
1899
  * @return {?}
1880
1900
  */
1881
- ngOnInit() { }
1901
+ ngOnInit() {
1902
+ this.currentNav = this.router.url;
1903
+ // 监听路由变化
1904
+ this.router.events
1905
+ .pipe(filter((/**
1906
+ * @param {?} event
1907
+ * @return {?}
1908
+ */
1909
+ (event) => event instanceof NavigationEnd)))
1910
+ .subscribe((/**
1911
+ * @return {?}
1912
+ */
1913
+ () => {
1914
+ this.currentNav = this.router.url;
1915
+ }));
1916
+ }
1882
1917
  /**
1883
1918
  * @param {?} item
1884
1919
  * @return {?}
1885
1920
  */
1886
1921
  onNavClick(item) {
1887
- this.currentNav = item.title;
1888
- this.router.navigate([item.url], { state: { title: item.title } });
1922
+ this.currentNav = item.url;
1923
+ this.router.navigate([item.url], { state: { title: item.label } });
1889
1924
  /** @type {?} */
1890
1925
  const screenWidth = window.innerWidth;
1891
1926
  if (screenWidth <= 992 && this.isCollapsed) {
@@ -1896,8 +1931,8 @@ class RSAsideComponent {
1896
1931
  RSAsideComponent.decorators = [
1897
1932
  { type: Component, args: [{
1898
1933
  selector: "rs-aside",
1899
- 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.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",
1900
- 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}}"]
1934
+ 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",
1935
+ 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}}"]
1901
1936
  }] }
1902
1937
  ];
1903
1938
  /** @nocollapse */
@@ -2058,7 +2093,7 @@ RadioGroupComponent.decorators = [
2058
2093
  { type: Component, args: [{
2059
2094
  selector: "rs-radio-group",
2060
2095
  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",
2061
- 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}"]
2096
+ styles: [".radio-group{display:flex;padding-left:4px}.radio-group.horizontal{flex-direction:row;gap:35px}.radio-group.vertical{flex-direction:column;gap:14px}"]
2062
2097
  }] }
2063
2098
  ];
2064
2099
  RadioGroupComponent.propDecorators = {
@@ -2141,7 +2176,7 @@ CheckboxGroupComponent.decorators = [
2141
2176
  { type: Component, args: [{
2142
2177
  selector: "rs-checkbox-group",
2143
2178
  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",
2144
- 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}"]
2179
+ styles: [".checkbox-group{display:flex;padding-left:4px}.checkbox-group.horizontal{flex-direction:row;gap:35px}.checkbox-group.vertical{flex-direction:column;gap:14px}"]
2145
2180
  }] }
2146
2181
  ];
2147
2182
  /** @nocollapse */
@@ -2220,7 +2255,7 @@ SwitchInputComponent.decorators = [
2220
2255
  { type: Component, args: [{
2221
2256
  selector: "rs-switch-input",
2222
2257
  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",
2223
- 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}"]
2258
+ 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}"]
2224
2259
  }] }
2225
2260
  ];
2226
2261
  SwitchInputComponent.propDecorators = {
@@ -2434,7 +2469,7 @@ class CommonDeleteComponent {
2434
2469
  * @return {?}
2435
2470
  */
2436
2471
  ngOnInit() {
2437
- this.translation = JSON.parse(localStorage.getItem("translation"));
2472
+ this.translation = JSON.parse(localStorage.getItem("translation")) || {};
2438
2473
  this.title =
2439
2474
  this.data.title || this.translation["DELETE_RECORD"] || ".DELETE_RECORD";
2440
2475
  this.saveBtnLabel =
@@ -2517,7 +2552,7 @@ class DialogService {
2517
2552
  * @param dialog: MatDialog
2518
2553
  */
2519
2554
  this.translation = null;
2520
- this.translation = JSON.parse(localStorage.getItem("translation"));
2555
+ this.translation = JSON.parse(localStorage.getItem("translation")) || {};
2521
2556
  }
2522
2557
  /**
2523
2558
  * @param {?} config
@@ -2741,7 +2776,7 @@ class CommonDialogComponent {
2741
2776
  * @return {?}
2742
2777
  */
2743
2778
  getInfo() {
2744
- this.translation = JSON.parse(localStorage.getItem("translation"));
2779
+ this.translation = JSON.parse(localStorage.getItem("translation")) || {};
2745
2780
  this.saveBtnLabel =
2746
2781
  this.saveBtnLabel || this.translation.SAVE || ".SAVE";
2747
2782
  this.cancelBtnLabel =