raise-common-lib-new 0.0.2

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 (171) hide show
  1. package/README.md +24 -0
  2. package/assets/language/fr.d.ts +3377 -0
  3. package/assets/language/ja.d.ts +3351 -0
  4. package/assets/language/ko.d.ts +3351 -0
  5. package/assets/language/zh-CN.d.ts +3064 -0
  6. package/assets/language/zh-TW.d.ts +3354 -0
  7. package/esm2022/assets/language/fr.mjs +3378 -0
  8. package/esm2022/assets/language/ja.mjs +3352 -0
  9. package/esm2022/assets/language/ko.mjs +3352 -0
  10. package/esm2022/assets/language/zh-CN.mjs +3065 -0
  11. package/esm2022/assets/language/zh-TW.mjs +3355 -0
  12. package/esm2022/lib/commentary/constants.mjs +2 -0
  13. package/esm2022/lib/commentary/index.component.mjs +146 -0
  14. package/esm2022/lib/common-grid/grid-action/grid-action-item/grid-action-item.component.mjs +44 -0
  15. package/esm2022/lib/common-grid/grid-action/grid-action.component.mjs +18 -0
  16. package/esm2022/lib/common-grid/index.component.mjs +461 -0
  17. package/esm2022/lib/constant/index.mjs +11 -0
  18. package/esm2022/lib/dialog/common-delete-dialog/index.component.mjs +46 -0
  19. package/esm2022/lib/dialog/common-dialog/index.component.mjs +85 -0
  20. package/esm2022/lib/dialog/new-action-notification/new-action-notification.component.mjs +51 -0
  21. package/esm2022/lib/float-box/index.component.mjs +217 -0
  22. package/esm2022/lib/form/checkbox-group/index.component.mjs +57 -0
  23. package/esm2022/lib/form/drawer-form/constants.mjs +10 -0
  24. package/esm2022/lib/form/drawer-form/drawer-form.component.mjs +336 -0
  25. package/esm2022/lib/form/encrypted-input/index.component.mjs +35 -0
  26. package/esm2022/lib/form/radio-group/index.component.mjs +42 -0
  27. package/esm2022/lib/form/switch-input/index.component.mjs +42 -0
  28. package/esm2022/lib/form/tag-input/index.component.mjs +82 -0
  29. package/esm2022/lib/form/toolbar-item/index.component.mjs +56 -0
  30. package/esm2022/lib/layout/drawer/index.component.mjs +165 -0
  31. package/esm2022/lib/layout/grid-box/index.component.mjs +67 -0
  32. package/esm2022/lib/layout/main-container/index.component.mjs +60 -0
  33. package/esm2022/lib/layout/multi-tab/index.component.mjs +263 -0
  34. package/esm2022/lib/layout/nav-card-group/constants.mjs +2 -0
  35. package/esm2022/lib/layout/nav-card-group/index.component.mjs +37 -0
  36. package/esm2022/lib/layout/page-list/index.component.mjs +73 -0
  37. package/esm2022/lib/layout/page-tab/index.component.mjs +56 -0
  38. package/esm2022/lib/layout/rs-aside/index.component.mjs +76 -0
  39. package/esm2022/lib/layout/rs-footer/index.component.mjs +16 -0
  40. package/esm2022/lib/layout/rs-header/index.component.mjs +56 -0
  41. package/esm2022/lib/layout/toolbar/constants.mjs +2 -0
  42. package/esm2022/lib/layout/toolbar/index.component.mjs +79 -0
  43. package/esm2022/lib/raise-common-lib.module.mjs +505 -0
  44. package/esm2022/lib/service/common-function.service.mjs +141 -0
  45. package/esm2022/lib/service/dialog.service.mjs +132 -0
  46. package/esm2022/lib/service/drawer.service.mjs +111 -0
  47. package/esm2022/lib/service/icon-loader.service.mjs +23 -0
  48. package/esm2022/lib/service/keep-alive.service.mjs +83 -0
  49. package/esm2022/lib/service/translation.service.mjs +98 -0
  50. package/esm2022/lib/utils/decorator.mjs +14 -0
  51. package/esm2022/public-api.mjs +35 -0
  52. package/esm2022/raise-common-lib-new.mjs +5 -0
  53. package/fesm2022/raise-common-lib-new.mjs +20114 -0
  54. package/fesm2022/raise-common-lib-new.mjs.map +1 -0
  55. package/index.d.ts +5 -0
  56. package/lib/commentary/constants.d.ts +15 -0
  57. package/lib/commentary/index.component.d.ts +38 -0
  58. package/lib/common-grid/grid-action/grid-action-item/grid-action-item.component.d.ts +10 -0
  59. package/lib/common-grid/grid-action/grid-action.component.d.ts +14 -0
  60. package/lib/common-grid/index.component.d.ts +122 -0
  61. package/lib/constant/index.d.ts +54 -0
  62. package/lib/dialog/common-delete-dialog/index.component.d.ts +29 -0
  63. package/lib/dialog/common-dialog/index.component.d.ts +29 -0
  64. package/lib/dialog/new-action-notification/new-action-notification.component.d.ts +33 -0
  65. package/lib/float-box/index.component.d.ts +33 -0
  66. package/lib/form/checkbox-group/index.component.d.ts +22 -0
  67. package/lib/form/drawer-form/constants.d.ts +34 -0
  68. package/lib/form/drawer-form/drawer-form.component.d.ts +67 -0
  69. package/lib/form/encrypted-input/index.component.d.ts +14 -0
  70. package/lib/form/radio-group/index.component.d.ts +19 -0
  71. package/lib/form/switch-input/index.component.d.ts +15 -0
  72. package/lib/form/tag-input/index.component.d.ts +25 -0
  73. package/lib/form/toolbar-item/index.component.d.ts +17 -0
  74. package/lib/layout/drawer/index.component.d.ts +45 -0
  75. package/lib/layout/grid-box/index.component.d.ts +19 -0
  76. package/lib/layout/main-container/index.component.d.ts +18 -0
  77. package/lib/layout/multi-tab/index.component.d.ts +52 -0
  78. package/lib/layout/nav-card-group/constants.d.ts +14 -0
  79. package/lib/layout/nav-card-group/index.component.d.ts +16 -0
  80. package/lib/layout/page-list/index.component.d.ts +21 -0
  81. package/lib/layout/page-tab/index.component.d.ts +18 -0
  82. package/lib/layout/rs-aside/index.component.d.ts +19 -0
  83. package/lib/layout/rs-footer/index.component.d.ts +8 -0
  84. package/lib/layout/rs-header/index.component.d.ts +21 -0
  85. package/lib/layout/toolbar/constants.d.ts +8 -0
  86. package/lib/layout/toolbar/index.component.d.ts +22 -0
  87. package/lib/raise-common-lib.module.d.ts +54 -0
  88. package/lib/service/common-function.service.d.ts +18 -0
  89. package/lib/service/dialog.service.d.ts +55 -0
  90. package/lib/service/drawer.service.d.ts +46 -0
  91. package/lib/service/icon-loader.service.d.ts +11 -0
  92. package/lib/service/keep-alive.service.d.ts +15 -0
  93. package/lib/service/translation.service.d.ts +12 -0
  94. package/lib/utils/decorator.d.ts +1 -0
  95. package/package.json +25 -0
  96. package/public-api.d.ts +31 -0
  97. package/src/assets/img/arrow_right.svg +4 -0
  98. package/src/assets/img/calendar-disabled.svg +6 -0
  99. package/src/assets/img/calendar.svg +6 -0
  100. package/src/assets/img/calendar_arrow_left.svg +3 -0
  101. package/src/assets/img/calendar_arrow_right.svg +3 -0
  102. package/src/assets/img/checked-vector.svg +3 -0
  103. package/src/assets/img/close-url.svg +10 -0
  104. package/src/assets/img/close.svg +10 -0
  105. package/src/assets/img/comment-cancel.svg +4 -0
  106. package/src/assets/img/comment-check.svg +5 -0
  107. package/src/assets/img/delete.svg +14 -0
  108. package/src/assets/img/desktop-refresh-btn.svg +6 -0
  109. package/src/assets/img/down-arrow.svg +3 -0
  110. package/src/assets/img/drawer-back.svg +4 -0
  111. package/src/assets/img/dropdown-arrow-disabled.svg +3 -0
  112. package/src/assets/img/dropdown-arrow.svg +3 -0
  113. package/src/assets/img/export.svg +5 -0
  114. package/src/assets/img/eye-close.svg +4 -0
  115. package/src/assets/img/eye-open.svg +4 -0
  116. package/src/assets/img/grid-action-copy.svg +6 -0
  117. package/src/assets/img/grid-action-delete.svg +14 -0
  118. package/src/assets/img/grid-action-detail.svg +7 -0
  119. package/src/assets/img/grid-action-download.svg +7 -0
  120. package/src/assets/img/grid-action-edit.svg +4 -0
  121. package/src/assets/img/grid-action-export.svg +12 -0
  122. package/src/assets/img/grid-action-move.svg +8 -0
  123. package/src/assets/img/grid-action-note.svg +10 -0
  124. package/src/assets/img/grid-action-send.svg +5 -0
  125. package/src/assets/img/grid-action-settle.svg +13 -0
  126. package/src/assets/img/grid-menu-arrow-right.svg +3 -0
  127. package/src/assets/img/grid-pager-arrow-left.svg +3 -0
  128. package/src/assets/img/grid-pager-arrows-left.svg +4 -0
  129. package/src/assets/img/icon-more-active.svg +7 -0
  130. package/src/assets/img/icon-more.svg +7 -0
  131. package/src/assets/img/more.svg +5 -0
  132. package/src/assets/img/notification-close.svg +4 -0
  133. package/src/assets/img/notification-collapse.svg +14 -0
  134. package/src/assets/img/notification-status-error.svg +5 -0
  135. package/src/assets/img/notification-status-loading.svg +9 -0
  136. package/src/assets/img/notification-status-success.svg +4 -0
  137. package/src/assets/img/notification-status-warning.svg +5 -0
  138. package/src/assets/img/plus.svg +4 -0
  139. package/src/assets/img/raise_loading.gif +0 -0
  140. package/src/assets/img/raise_logo_main.svg +13 -0
  141. package/src/assets/img/search.svg +4 -0
  142. package/src/assets/img/split-button-arrow.svg +3 -0
  143. package/src/assets/img/table-column-menu.svg +5 -0
  144. package/src/assets/img/table-sort-arrow.svg +6 -0
  145. package/src/assets/img/tag-remove.svg +4 -0
  146. package/src/assets/img/toggle-menu-icon.svg +3 -0
  147. package/src/assets/img/toolbar-action-add.svg +4 -0
  148. package/src/assets/img/toolbar-action-delete.svg +14 -0
  149. package/src/assets/img/toolbar-action-download.svg +5 -0
  150. package/src/assets/img/toolbar-action-duplicate.svg +6 -0
  151. package/src/assets/img/toolbar-action-export.svg +5 -0
  152. package/src/assets/img/toolbar-action-import.svg +5 -0
  153. package/src/assets/img/toolbar-action-refresh.svg +14 -0
  154. package/src/assets/img/toolbar-action-upload.svg +5 -0
  155. package/src/assets/img/tooltip-icon.svg +4 -0
  156. package/src/assets/language/fr.ts +3603 -0
  157. package/src/assets/language/ja.ts +3501 -0
  158. package/src/assets/language/ko.ts +3478 -0
  159. package/src/assets/language/zh-CN.ts +3115 -0
  160. package/src/assets/language/zh-TW.ts +3411 -0
  161. package/src/assets/style/reset/button.scss +187 -0
  162. package/src/assets/style/reset/checkbox.scss +33 -0
  163. package/src/assets/style/reset/dropdown.scss +564 -0
  164. package/src/assets/style/reset/grid.scss +845 -0
  165. package/src/assets/style/reset/input.scss +97 -0
  166. package/src/assets/style/reset/mat-dialog.scss +7 -0
  167. package/src/assets/style/reset/radio.scss +37 -0
  168. package/src/assets/style/reset/switch.scss +32 -0
  169. package/src/assets/style/style.scss +63 -0
  170. package/src/assets/style/syncfusion.min.css +1 -0
  171. package/src/assets/style/variables.scss +60 -0
@@ -0,0 +1,56 @@
1
+ // 组件类
2
+ import { Component, EventEmitter, Input, Output, ViewChild, } from "@angular/core";
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common";
5
+ import * as i2 from "@syncfusion/ej2-angular-navigations";
6
+ export class RsPageTabComponent {
7
+ tabObj;
8
+ pageTitle;
9
+ customPageTitle = false;
10
+ tabList = [];
11
+ currentTab;
12
+ tabChange = new EventEmitter();
13
+ animation = {
14
+ previous: { effect: "", duration: 0, easing: "" },
15
+ next: { effect: "", duration: 0, easing: "" },
16
+ };
17
+ ngOnInit() { }
18
+ ngAfterViewInit() {
19
+ if (this.currentTab !== undefined) {
20
+ const idx = this.tabList.findIndex((ele) => ele.value === this.currentTab);
21
+ setTimeout(() => {
22
+ this.tabObj.select(idx);
23
+ }, 30);
24
+ }
25
+ }
26
+ onTabClick(e) {
27
+ const index = e.selectedItem.dataset.id.split('_')[1]; // sy的bug只能这么取了
28
+ if (e.isInteracted) {
29
+ this.tabChange.emit(this.tabList[index]);
30
+ }
31
+ }
32
+ // 切换tab,传入下标
33
+ changeTab(idx) {
34
+ this.tabObj.select(idx);
35
+ }
36
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RsPageTabComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
37
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: RsPageTabComponent, selector: "rs-page-tab", inputs: { pageTitle: "pageTitle", customPageTitle: "customPageTitle", tabList: "tabList", currentTab: "currentTab" }, outputs: { tabChange: "tabChange" }, viewQueries: [{ propertyName: "tabObj", first: true, predicate: ["tabObj"], descendants: true }], ngImport: i0, template: "<div class=\"rs-page-list-wrap\">\r\n <ng-container *ngIf=\"customPageTitle; else defaultTitle\">\r\n <ng-content select=\"[titleSlot]\"></ng-content>\r\n </ng-container>\r\n <ng-template #defaultTitle>\r\n <div class=\"rs-page-title\" *ngIf=\"pageTitle\">{{ pageTitle }}</div>\r\n </ng-template>\r\n <ejs-tab\r\n class=\"rs-tab\"\r\n #tabObj\r\n (selected)=\"onTabClick($event)\"\r\n [animation]=\"animation\"\r\n\t overflowMode=\"Popup\"\r\n heightAdjustMode=\"None\"\r\n >\r\n <e-tabitems>\r\n <e-tabitem *ngFor=\"let item of tabList\">\r\n <ng-template #headerText>\r\n <div>{{ item.title }}</div>\r\n </ng-template>\r\n </e-tabitem>\r\n </e-tabitems>\r\n </ejs-tab>\r\n <div class=\"rs-grid-wrap\">\r\n <ng-content select=\"[tabContentSlot]\"></ng-content>\r\n </div>\r\n</div>\r\n", styles: [".rs-page-list-wrap{height:100%;display:flex;flex-direction:column;position:relative;margin:0 auto;max-width:1885px}.rs-page-list-wrap .rs-page-title{font-family:var(--rs-font-family);font-size:var(--rs-page-title-font-size);font-weight:700;text-align:left;color:var(--rs-page-title-color);display:flex;align-items:center;padding:16px 8px 12px 20px}.rs-page-list-wrap .rs-tab{padding:0 20px}.rs-page-list-wrap .rs-tab .e-tab-header:before{display:none}.rs-page-list-wrap .rs-tab .e-toolbar-items{gap:32px;min-height:36px}.rs-page-list-wrap .rs-tab .e-toolbar-items .e-toolbar-item{border:0}.rs-page-list-wrap .rs-tab .e-toolbar-items .e-toolbar-item .e-tab-wrap{padding:0;border:0;position:relative;height:36px}.rs-page-list-wrap .rs-tab .e-toolbar-items .e-toolbar-item .e-tab-wrap:before{content:\" \";position:absolute;left:0;bottom:0;width:100%;height:2px;background-color:transparent}.rs-page-list-wrap .rs-tab .e-toolbar-items .e-toolbar-item .e-tab-text{color:#5f6f81;font-family:Arial;font-size:13px;font-style:normal;font-weight:400;line-height:16px}.rs-page-list-wrap .rs-tab .e-toolbar-items .e-toolbar-item.e-active .e-tab-wrap:before{background-color:#1f7bff}.rs-page-list-wrap .rs-tab .e-toolbar-items .e-toolbar-item.e-active .e-tab-text{color:#44566c}.rs-page-list-wrap .rs-tab .e-hor-nav{width:24px;height:24px;min-height:24px;top:3px;border-radius:4px;background-color:transparent!important;border:1px solid #eaedf0!important}.rs-page-list-wrap .rs-tab .e-hor-nav .e-icons{box-shadow:none;background-color:transparent!important;border-color:transparent!important;background-image:url(\"data:image/svg+xml,%3Csvg width%3D%2214%22 height%3D%223%22 viewBox%3D%220 0 14 3%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0D%3Cg id%3D%22Drag bar%22%3E%0D%3Ccircle id%3D%22Ellipse 30%22 cx%3D%221.5%22 cy%3D%221.5%22 r%3D%221.5%22 transform%3D%22rotate(-90 1.5 1.5)%22 fill%3D%22%236B6B6B%22%2F%3E%0D%3Ccircle id%3D%22Ellipse 31%22 cx%3D%227%22 cy%3D%221.5%22 r%3D%221.5%22 transform%3D%22rotate(-90 7 1.5)%22 fill%3D%22%236B6B6B%22%2F%3E%0D%3Ccircle id%3D%22Ellipse 32%22 cx%3D%2212.5%22 cy%3D%221.5%22 r%3D%221.5%22 transform%3D%22rotate(-90 12.5 1.5)%22 fill%3D%22%236B6B6B%22%2F%3E%0D%3C%2Fg%3E%0D%3C%2Fsvg%3E%0D\");background-size:14px 3px;background-repeat:no-repeat;background-position:4px 14px}.rs-page-list-wrap .rs-tab .e-hor-nav .e-icons:before{display:none}.rs-page-list-wrap .rs-tab .e-hor-nav .e-icons:hover{background-color:#eff5fb!important;border-color:#b1d0fc!important;background-image:url(\"data:image/svg+xml,%3Csvg width%3D%2214%22 height%3D%223%22 viewBox%3D%220 0 14 3%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0D%3Cg id%3D%22Drag bar%22%3E%0D%3Ccircle id%3D%22Ellipse 30%22 cx%3D%221.5%22 cy%3D%221.5%22 r%3D%221.5%22 transform%3D%22rotate(-90 1.5 1.5)%22 fill%3D%22%231F7BFF%22%2F%3E%0D%3Ccircle id%3D%22Ellipse 31%22 cx%3D%227%22 cy%3D%221.5%22 r%3D%221.5%22 transform%3D%22rotate(-90 7 1.5)%22 fill%3D%22%231F7BFF%22%2F%3E%0D%3Ccircle id%3D%22Ellipse 32%22 cx%3D%2212.5%22 cy%3D%221.5%22 r%3D%221.5%22 transform%3D%22rotate(-90 12.5 1.5)%22 fill%3D%22%231F7BFF%22%2F%3E%0D%3C%2Fg%3E%0D%3C%2Fsvg%3E%0D\")}.rs-page-list-wrap .rs-tab .e-toolbar-pop{min-width:160px;border-radius:10px;background:#fff;box-shadow:0 0 8px #00000040;padding:8px}.rs-page-list-wrap .rs-tab .e-toolbar-pop .e-toolbar-item .e-tab-wrap{padding:0 8px}.rs-page-list-wrap .rs-tab .e-toolbar-pop .e-toolbar-item .e-tab-wrap .e-tab-text{color:#44566c;font-family:Arial;font-size:13px;font-weight:400;line-height:16px}.rs-page-list-wrap .rs-tab .e-toolbar-pop .e-toolbar-item .e-tab-wrap:hover{border-radius:6px;background:#1f7bff0d}.rs-page-list-wrap .rs-grid-wrap{flex:1;height:0}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.TabComponent, selector: "ejs-tab", inputs: ["allowDragAndDrop", "animation", "clearTemplates", "cssClass", "dragArea", "enableHtmlSanitizer", "enablePersistence", "enableRtl", "headerPlacement", "height", "heightAdjustMode", "items", "loadOn", "locale", "overflowMode", "reorderActiveTab", "scrollStep", "selectedItem", "showCloseButton", "width"], outputs: ["added", "adding", "created", "destroyed", "dragged", "dragging", "onDragStart", "removed", "removing", "selected", "selecting"] }, { kind: "directive", type: i2.TabItemDirective, selector: "e-tabitems>e-tabitem", inputs: ["content", "cssClass", "disabled", "header", "headerTemplate", "id", "tabIndex", "visible"] }, { kind: "directive", type: i2.TabItemsDirective, selector: "ejs-tab>e-tabitems" }] });
38
+ }
39
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RsPageTabComponent, decorators: [{
40
+ type: Component,
41
+ args: [{ selector: "rs-page-tab", template: "<div class=\"rs-page-list-wrap\">\r\n <ng-container *ngIf=\"customPageTitle; else defaultTitle\">\r\n <ng-content select=\"[titleSlot]\"></ng-content>\r\n </ng-container>\r\n <ng-template #defaultTitle>\r\n <div class=\"rs-page-title\" *ngIf=\"pageTitle\">{{ pageTitle }}</div>\r\n </ng-template>\r\n <ejs-tab\r\n class=\"rs-tab\"\r\n #tabObj\r\n (selected)=\"onTabClick($event)\"\r\n [animation]=\"animation\"\r\n\t overflowMode=\"Popup\"\r\n heightAdjustMode=\"None\"\r\n >\r\n <e-tabitems>\r\n <e-tabitem *ngFor=\"let item of tabList\">\r\n <ng-template #headerText>\r\n <div>{{ item.title }}</div>\r\n </ng-template>\r\n </e-tabitem>\r\n </e-tabitems>\r\n </ejs-tab>\r\n <div class=\"rs-grid-wrap\">\r\n <ng-content select=\"[tabContentSlot]\"></ng-content>\r\n </div>\r\n</div>\r\n", styles: [".rs-page-list-wrap{height:100%;display:flex;flex-direction:column;position:relative;margin:0 auto;max-width:1885px}.rs-page-list-wrap .rs-page-title{font-family:var(--rs-font-family);font-size:var(--rs-page-title-font-size);font-weight:700;text-align:left;color:var(--rs-page-title-color);display:flex;align-items:center;padding:16px 8px 12px 20px}.rs-page-list-wrap .rs-tab{padding:0 20px}.rs-page-list-wrap .rs-tab .e-tab-header:before{display:none}.rs-page-list-wrap .rs-tab .e-toolbar-items{gap:32px;min-height:36px}.rs-page-list-wrap .rs-tab .e-toolbar-items .e-toolbar-item{border:0}.rs-page-list-wrap .rs-tab .e-toolbar-items .e-toolbar-item .e-tab-wrap{padding:0;border:0;position:relative;height:36px}.rs-page-list-wrap .rs-tab .e-toolbar-items .e-toolbar-item .e-tab-wrap:before{content:\" \";position:absolute;left:0;bottom:0;width:100%;height:2px;background-color:transparent}.rs-page-list-wrap .rs-tab .e-toolbar-items .e-toolbar-item .e-tab-text{color:#5f6f81;font-family:Arial;font-size:13px;font-style:normal;font-weight:400;line-height:16px}.rs-page-list-wrap .rs-tab .e-toolbar-items .e-toolbar-item.e-active .e-tab-wrap:before{background-color:#1f7bff}.rs-page-list-wrap .rs-tab .e-toolbar-items .e-toolbar-item.e-active .e-tab-text{color:#44566c}.rs-page-list-wrap .rs-tab .e-hor-nav{width:24px;height:24px;min-height:24px;top:3px;border-radius:4px;background-color:transparent!important;border:1px solid #eaedf0!important}.rs-page-list-wrap .rs-tab .e-hor-nav .e-icons{box-shadow:none;background-color:transparent!important;border-color:transparent!important;background-image:url(\"data:image/svg+xml,%3Csvg width%3D%2214%22 height%3D%223%22 viewBox%3D%220 0 14 3%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0D%3Cg id%3D%22Drag bar%22%3E%0D%3Ccircle id%3D%22Ellipse 30%22 cx%3D%221.5%22 cy%3D%221.5%22 r%3D%221.5%22 transform%3D%22rotate(-90 1.5 1.5)%22 fill%3D%22%236B6B6B%22%2F%3E%0D%3Ccircle id%3D%22Ellipse 31%22 cx%3D%227%22 cy%3D%221.5%22 r%3D%221.5%22 transform%3D%22rotate(-90 7 1.5)%22 fill%3D%22%236B6B6B%22%2F%3E%0D%3Ccircle id%3D%22Ellipse 32%22 cx%3D%2212.5%22 cy%3D%221.5%22 r%3D%221.5%22 transform%3D%22rotate(-90 12.5 1.5)%22 fill%3D%22%236B6B6B%22%2F%3E%0D%3C%2Fg%3E%0D%3C%2Fsvg%3E%0D\");background-size:14px 3px;background-repeat:no-repeat;background-position:4px 14px}.rs-page-list-wrap .rs-tab .e-hor-nav .e-icons:before{display:none}.rs-page-list-wrap .rs-tab .e-hor-nav .e-icons:hover{background-color:#eff5fb!important;border-color:#b1d0fc!important;background-image:url(\"data:image/svg+xml,%3Csvg width%3D%2214%22 height%3D%223%22 viewBox%3D%220 0 14 3%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0D%3Cg id%3D%22Drag bar%22%3E%0D%3Ccircle id%3D%22Ellipse 30%22 cx%3D%221.5%22 cy%3D%221.5%22 r%3D%221.5%22 transform%3D%22rotate(-90 1.5 1.5)%22 fill%3D%22%231F7BFF%22%2F%3E%0D%3Ccircle id%3D%22Ellipse 31%22 cx%3D%227%22 cy%3D%221.5%22 r%3D%221.5%22 transform%3D%22rotate(-90 7 1.5)%22 fill%3D%22%231F7BFF%22%2F%3E%0D%3Ccircle id%3D%22Ellipse 32%22 cx%3D%2212.5%22 cy%3D%221.5%22 r%3D%221.5%22 transform%3D%22rotate(-90 12.5 1.5)%22 fill%3D%22%231F7BFF%22%2F%3E%0D%3C%2Fg%3E%0D%3C%2Fsvg%3E%0D\")}.rs-page-list-wrap .rs-tab .e-toolbar-pop{min-width:160px;border-radius:10px;background:#fff;box-shadow:0 0 8px #00000040;padding:8px}.rs-page-list-wrap .rs-tab .e-toolbar-pop .e-toolbar-item .e-tab-wrap{padding:0 8px}.rs-page-list-wrap .rs-tab .e-toolbar-pop .e-toolbar-item .e-tab-wrap .e-tab-text{color:#44566c;font-family:Arial;font-size:13px;font-weight:400;line-height:16px}.rs-page-list-wrap .rs-tab .e-toolbar-pop .e-toolbar-item .e-tab-wrap:hover{border-radius:6px;background:#1f7bff0d}.rs-page-list-wrap .rs-grid-wrap{flex:1;height:0}\n"] }]
42
+ }], propDecorators: { tabObj: [{
43
+ type: ViewChild,
44
+ args: ["tabObj", { static: false }]
45
+ }], pageTitle: [{
46
+ type: Input
47
+ }], customPageTitle: [{
48
+ type: Input
49
+ }], tabList: [{
50
+ type: Input
51
+ }], currentTab: [{
52
+ type: Input
53
+ }], tabChange: [{
54
+ type: Output
55
+ }] } });
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcmFpc2UtY29tbW9uLWxpYi9zcmMvbGliL2xheW91dC9wYWdlLXRhYi9pbmRleC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yYWlzZS1jb21tb24tbGliL3NyYy9saWIvbGF5b3V0L3BhZ2UtdGFiL2luZGV4LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU07QUFDTixPQUFPLEVBRUwsU0FBUyxFQUVULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQzs7OztBQVF2QixNQUFNLE9BQU8sa0JBQWtCO0lBRXRCLE1BQU0sQ0FBZTtJQUNuQixTQUFTLENBQUM7SUFDVixlQUFlLEdBQUcsS0FBSyxDQUFDO0lBQ3hCLE9BQU8sR0FBRyxFQUFFLENBQUM7SUFDYixVQUFVLENBQUM7SUFHcEIsU0FBUyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFFeEIsU0FBUyxHQUFXO1FBQ3pCLFFBQVEsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFO1FBQ2pELElBQUksRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFO0tBQzlDLENBQUM7SUFDRixRQUFRLEtBQUksQ0FBQztJQUViLGVBQWU7UUFDYixJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssU0FBUyxFQUFFO1lBQ2pDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUNoQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsVUFBVSxDQUN2QyxDQUFDO1lBQ0YsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDZCxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUMxQixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7U0FDUjtJQUNILENBQUM7SUFDRCxVQUFVLENBQUMsQ0FBQztRQUNWLE1BQU0sS0FBSyxHQUFHLENBQUMsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxlQUFlO1FBQ3JFLElBQUksQ0FBQyxDQUFDLFlBQVksRUFBRTtZQUNsQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7U0FDMUM7SUFDSCxDQUFDO0lBQ0QsYUFBYTtJQUNiLFNBQVMsQ0FBQyxHQUFXO1FBQ25CLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzFCLENBQUM7d0dBcENVLGtCQUFrQjs0RkFBbEIsa0JBQWtCLGdUQ2xCL0IsNjFCQTJCQTs7NEZEVGEsa0JBQWtCO2tCQUw5QixTQUFTOytCQUNFLGFBQWE7OEJBTWhCLE1BQU07c0JBRFosU0FBUzt1QkFBQyxRQUFRLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUU3QixTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBR04sU0FBUztzQkFEUixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLy8g57uE5Lu257G7XHJcbmltcG9ydCB7XHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBDb21wb25lbnQsXHJcbiAgQ29udGVudENoaWxkLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFZpZXdDaGlsZCxcclxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBUYWJDb21wb25lbnQgfSBmcm9tIFwiQHN5bmNmdXNpb24vZWoyLWFuZ3VsYXItbmF2aWdhdGlvbnNcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcInJzLXBhZ2UtdGFiXCIsXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi9pbmRleC5jb21wb25lbnQuaHRtbFwiLFxyXG4gIHN0eWxlVXJsczogW1wiLi9pbmRleC5jb21wb25lbnQuc2Nzc1wiXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFJzUGFnZVRhYkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgQFZpZXdDaGlsZChcInRhYk9ialwiLCB7IHN0YXRpYzogZmFsc2UgfSlcclxuICBwdWJsaWMgdGFiT2JqOiBUYWJDb21wb25lbnQ7XHJcbiAgQElucHV0KCkgcGFnZVRpdGxlO1xyXG4gIEBJbnB1dCgpIGN1c3RvbVBhZ2VUaXRsZSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHRhYkxpc3QgPSBbXTtcclxuICBASW5wdXQoKSBjdXJyZW50VGFiO1xyXG5cclxuICBAT3V0cHV0KClcclxuICB0YWJDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIHB1YmxpYyBhbmltYXRpb246IG9iamVjdCA9IHtcclxuICAgIHByZXZpb3VzOiB7IGVmZmVjdDogXCJcIiwgZHVyYXRpb246IDAsIGVhc2luZzogXCJcIiB9LFxyXG4gICAgbmV4dDogeyBlZmZlY3Q6IFwiXCIsIGR1cmF0aW9uOiAwLCBlYXNpbmc6IFwiXCIgfSxcclxuICB9O1xyXG4gIG5nT25Jbml0KCkge31cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuY3VycmVudFRhYiAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIGNvbnN0IGlkeCA9IHRoaXMudGFiTGlzdC5maW5kSW5kZXgoXHJcbiAgICAgICAgKGVsZSkgPT4gZWxlLnZhbHVlID09PSB0aGlzLmN1cnJlbnRUYWJcclxuICAgICAgKTtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy50YWJPYmouc2VsZWN0KGlkeCk7XHJcbiAgICAgIH0sIDMwKTtcclxuICAgIH1cclxuICB9XHJcbiAgb25UYWJDbGljayhlKSB7XHJcbiAgICBjb25zdCBpbmRleCA9IGUuc2VsZWN0ZWRJdGVtLmRhdGFzZXQuaWQuc3BsaXQoJ18nKVsxXSAvLyBzeeeahGJ1Z+WPquiDvei/meS5iOWPluS6hlxyXG4gICAgaWYgKGUuaXNJbnRlcmFjdGVkKSB7XHJcbiAgICAgIHRoaXMudGFiQ2hhbmdlLmVtaXQodGhpcy50YWJMaXN0W2luZGV4XSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8vIOWIh+aNonRhYizkvKDlhaXkuIvmoIdcclxuICBjaGFuZ2VUYWIoaWR4OiBudW1iZXIpIHtcclxuICAgIHRoaXMudGFiT2JqLnNlbGVjdChpZHgpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwicnMtcGFnZS1saXN0LXdyYXBcIj5cclxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiY3VzdG9tUGFnZVRpdGxlOyBlbHNlIGRlZmF1bHRUaXRsZVwiPlxyXG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3RpdGxlU2xvdF1cIj48L25nLWNvbnRlbnQ+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbiAgPG5nLXRlbXBsYXRlICNkZWZhdWx0VGl0bGU+XHJcbiAgICA8ZGl2IGNsYXNzPVwicnMtcGFnZS10aXRsZVwiICpuZ0lmPVwicGFnZVRpdGxlXCI+e3sgcGFnZVRpdGxlIH19PC9kaXY+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuICA8ZWpzLXRhYlxyXG4gICAgY2xhc3M9XCJycy10YWJcIlxyXG4gICAgI3RhYk9ialxyXG4gICAgKHNlbGVjdGVkKT1cIm9uVGFiQ2xpY2soJGV2ZW50KVwiXHJcbiAgICBbYW5pbWF0aW9uXT1cImFuaW1hdGlvblwiXHJcblx0ICBvdmVyZmxvd01vZGU9XCJQb3B1cFwiXHJcbiAgICBoZWlnaHRBZGp1c3RNb2RlPVwiTm9uZVwiXHJcbiAgPlxyXG4gICAgPGUtdGFiaXRlbXM+XHJcbiAgICAgIDxlLXRhYml0ZW0gKm5nRm9yPVwibGV0IGl0ZW0gb2YgdGFiTGlzdFwiPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjaGVhZGVyVGV4dD5cclxuICAgICAgICAgIDxkaXY+e3sgaXRlbS50aXRsZSB9fTwvZGl2PlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgIDwvZS10YWJpdGVtPlxyXG4gICAgPC9lLXRhYml0ZW1zPlxyXG4gIDwvZWpzLXRhYj5cclxuICA8ZGl2IGNsYXNzPVwicnMtZ3JpZC13cmFwXCI+XHJcbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbdGFiQ29udGVudFNsb3RdXCI+PC9uZy1jb250ZW50PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
@@ -0,0 +1,76 @@
1
+ // 组件类
2
+ import { Component, EventEmitter, Input, Output } from "@angular/core";
3
+ import { NavigationEnd } from "@angular/router";
4
+ import { filter } from "rxjs/operators";
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/router";
7
+ import * as i2 from "@angular/common";
8
+ import * as i3 from "@angular/material/icon";
9
+ export class RSAsideComponent {
10
+ router;
11
+ constructor(router) {
12
+ this.router = router;
13
+ }
14
+ toggleMenu = new EventEmitter();
15
+ navClick = new EventEmitter();
16
+ isCollapsed = false; // 接收输入属性
17
+ customNavClick = false; // 接收输入属性
18
+ navList = [];
19
+ relationStart = [];
20
+ currentNav = "";
21
+ ngOnInit() {
22
+ this.initCurrentNav();
23
+ // 监听路由变化
24
+ this.router.events
25
+ .pipe(filter((event) => event instanceof NavigationEnd))
26
+ .subscribe(() => {
27
+ // console.log('this.router.url', this.router.url)
28
+ const idx = this.relationStart.findIndex((item) => this.router.url.startsWith(item.url));
29
+ if (idx !== -1) {
30
+ this.currentNav = this.relationStart[idx].target;
31
+ }
32
+ else {
33
+ this.currentNav = this.router.url;
34
+ }
35
+ });
36
+ }
37
+ initCurrentNav() {
38
+ const idx = this.relationStart.findIndex((item) => this.router.url.startsWith(item.url));
39
+ if (idx !== -1) {
40
+ this.currentNav = this.relationStart[idx].target;
41
+ }
42
+ else {
43
+ this.currentNav = this.router.url;
44
+ }
45
+ }
46
+ onNavClick(item) {
47
+ if (!this.customNavClick) {
48
+ this.currentNav = item.url;
49
+ this.router.navigate([item.url], { state: { title: item.label } });
50
+ const screenWidth = window.innerWidth;
51
+ if (screenWidth <= 992 && this.isCollapsed) {
52
+ this.toggleMenu.emit(false);
53
+ }
54
+ }
55
+ this.navClick.emit(item);
56
+ }
57
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RSAsideComponent, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Component });
58
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: RSAsideComponent, selector: "rs-aside", inputs: { isCollapsed: "isCollapsed", customNavClick: "customNavClick", navList: "navList", relationStart: "relationStart" }, outputs: { toggleMenu: "toggleMenu", navClick: "navClick" }, ngImport: i0, template: "<div class=\"rs-aside\" [ngClass]=\"{ isCollapsed: isCollapsed }\">\r\n <div class=\"nav-list\">\r\n <div class=\"nav-group\" [ngClass]=\"group.class\" *ngFor=\"let group of navList\">\r\n <div\r\n class=\"nav-item\"\r\n [ngClass]=\"{ isCurrent: currentNav === nav.url }\"\r\n *ngFor=\"let nav of group.navItems\"\r\n (click)=\"onNavClick(nav)\"\r\n >\r\n <div class=\"nav-item-inner\" *ngIf=\"nav.menuType === 'MENU'\">\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 class=\"dividing-line\" *ngIf=\"nav.menuType === 'LABEL'\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"bottom-iconbox\" [ngClass]=\"{ isCollapsed: isCollapsed }\">\r\n <ng-content select=\"[bottomIconBox]\"></ng-content>\r\n </div>\r\n</div>\r\n", styles: [".rs-aside{display:flex;flex-direction:column;height:100%;width:240px;will-change:width;transition:width .3s;padding-right:20px}.rs-aside.isCollapsed{width:64px;padding-right:0}.rs-aside.isCollapsed .nav-list .nav-item .nav-item-inner{margin-right:12px}.rs-aside.isCollapsed .nav-list .nav-item .dividing-line{margin:8px 20px 8px 10px}.rs-aside .nav-list{padding-top:12px;flex:1;overflow:auto;height:0}.rs-aside .nav-list .nav-item{cursor:pointer;padding-left:11px}.rs-aside .nav-list .nav-item .nav-item-inner{height:32px;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}.rs-aside .nav-list .nav-item .dividing-line{margin:8px 0 8px 10px;height:1px;background-color:#dbe1e780}.rs-aside .nav-list .nav-item:hover .nav-item-inner{border-radius:6px;background:#1f7bff0a}.rs-aside .nav-list .nav-item .nav-text{color:#5f6f81;font-family:Arial;font-size:12px;font-weight:400;line-height:16px;transition:all .3s;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;position:relative;top:1px}@media (min-width: 993px){.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: 993px){.rs-aside .bottom-iconbox.isCollapsed{flex-direction:column;height:auto}}@media (max-width: 992px){.rs-aside{width:0;position:absolute;height:calc(100% - 50px);z-index:10;background-color:var(--rs-container-bg);padding-right:0}.rs-aside .bottom-iconbox{display:none}.rs-aside.isCollapsed{width:240px;padding-right:16px}.rs-aside.isCollapsed .bottom-iconbox{display:flex}}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] });
59
+ }
60
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RSAsideComponent, decorators: [{
61
+ type: Component,
62
+ args: [{ selector: "rs-aside", template: "<div class=\"rs-aside\" [ngClass]=\"{ isCollapsed: isCollapsed }\">\r\n <div class=\"nav-list\">\r\n <div class=\"nav-group\" [ngClass]=\"group.class\" *ngFor=\"let group of navList\">\r\n <div\r\n class=\"nav-item\"\r\n [ngClass]=\"{ isCurrent: currentNav === nav.url }\"\r\n *ngFor=\"let nav of group.navItems\"\r\n (click)=\"onNavClick(nav)\"\r\n >\r\n <div class=\"nav-item-inner\" *ngIf=\"nav.menuType === 'MENU'\">\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 class=\"dividing-line\" *ngIf=\"nav.menuType === 'LABEL'\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"bottom-iconbox\" [ngClass]=\"{ isCollapsed: isCollapsed }\">\r\n <ng-content select=\"[bottomIconBox]\"></ng-content>\r\n </div>\r\n</div>\r\n", styles: [".rs-aside{display:flex;flex-direction:column;height:100%;width:240px;will-change:width;transition:width .3s;padding-right:20px}.rs-aside.isCollapsed{width:64px;padding-right:0}.rs-aside.isCollapsed .nav-list .nav-item .nav-item-inner{margin-right:12px}.rs-aside.isCollapsed .nav-list .nav-item .dividing-line{margin:8px 20px 8px 10px}.rs-aside .nav-list{padding-top:12px;flex:1;overflow:auto;height:0}.rs-aside .nav-list .nav-item{cursor:pointer;padding-left:11px}.rs-aside .nav-list .nav-item .nav-item-inner{height:32px;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}.rs-aside .nav-list .nav-item .dividing-line{margin:8px 0 8px 10px;height:1px;background-color:#dbe1e780}.rs-aside .nav-list .nav-item:hover .nav-item-inner{border-radius:6px;background:#1f7bff0a}.rs-aside .nav-list .nav-item .nav-text{color:#5f6f81;font-family:Arial;font-size:12px;font-weight:400;line-height:16px;transition:all .3s;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;position:relative;top:1px}@media (min-width: 993px){.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: 993px){.rs-aside .bottom-iconbox.isCollapsed{flex-direction:column;height:auto}}@media (max-width: 992px){.rs-aside{width:0;position:absolute;height:calc(100% - 50px);z-index:10;background-color:var(--rs-container-bg);padding-right:0}.rs-aside .bottom-iconbox{display:none}.rs-aside.isCollapsed{width:240px;padding-right:16px}.rs-aside.isCollapsed .bottom-iconbox{display:flex}}\n"] }]
63
+ }], ctorParameters: function () { return [{ type: i1.Router }]; }, propDecorators: { toggleMenu: [{
64
+ type: Output
65
+ }], navClick: [{
66
+ type: Output
67
+ }], isCollapsed: [{
68
+ type: Input
69
+ }], customNavClick: [{
70
+ type: Input
71
+ }], navList: [{
72
+ type: Input
73
+ }], relationStart: [{
74
+ type: Input
75
+ }] } });
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcmFpc2UtY29tbW9uLWxpYi9zcmMvbGliL2xheW91dC9ycy1hc2lkZS9pbmRleC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yYWlzZS1jb21tb24tbGliL3NyYy9saWIvbGF5b3V0L3JzLWFzaWRlL2luZGV4LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU07QUFDTixPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBVSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7O0FBT3hDLE1BQU0sT0FBTyxnQkFBZ0I7SUFDUjtJQUFuQixZQUFtQixNQUFjO1FBQWQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtJQUFHLENBQUM7SUFFckMsVUFBVSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFFaEMsUUFBUSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7SUFFMUIsV0FBVyxHQUFZLEtBQUssQ0FBQyxDQUFDLFNBQVM7SUFDdkMsY0FBYyxHQUFZLEtBQUssQ0FBQyxDQUFDLFNBQVM7SUFDMUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztJQUNiLGFBQWEsR0FBRyxFQUFFLENBQUM7SUFFNUIsVUFBVSxHQUFHLEVBQUUsQ0FBQztJQUNoQixRQUFRO1FBQ04sSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3RCLFNBQVM7UUFDVCxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU07YUFDZixJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLFlBQVksYUFBYSxDQUFDLENBQUM7YUFDdkQsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNkLGtEQUFrRDtZQUNsRCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQ2hELElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQ3JDLENBQUM7WUFDRixJQUFJLEdBQUcsS0FBSyxDQUFDLENBQUMsRUFBRTtnQkFDZCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO2FBQ2xEO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUM7YUFDbkM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFDRCxjQUFjO1FBQ1osTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUNoRCxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUNyQyxDQUFDO1FBQ0YsSUFBSSxHQUFHLEtBQUssQ0FBQyxDQUFDLEVBQUU7WUFDZCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO1NBQ2xEO2FBQU07WUFDTCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDO1NBQ25DO0lBQ0gsQ0FBQztJQUNELFVBQVUsQ0FBQyxJQUFJO1FBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDeEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDO1lBQzNCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDbkUsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQztZQUN0QyxJQUFJLFdBQVcsSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtnQkFDMUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDN0I7U0FDRjtRQUNELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNCLENBQUM7d0dBbERVLGdCQUFnQjs0RkFBaEIsZ0JBQWdCLDJPQ1Y3QixnK0JBdUJBOzs0RkRiYSxnQkFBZ0I7a0JBTDVCLFNBQVM7K0JBQ0UsVUFBVTs2RkFPcEIsVUFBVTtzQkFEVCxNQUFNO2dCQUdQLFFBQVE7c0JBRFAsTUFBTTtnQkFHRSxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvLyDnu4Tku7bnsbtcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFJvdXRlciwgTmF2aWdhdGlvbkVuZCB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJycy1hc2lkZVwiLFxyXG4gIHRlbXBsYXRlVXJsOiBcIi4vaW5kZXguY29tcG9uZW50Lmh0bWxcIixcclxuICBzdHlsZVVybHM6IFtcIi4vaW5kZXguY29tcG9uZW50LnNjc3NcIl0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSU0FzaWRlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcm91dGVyOiBSb3V0ZXIpIHt9XHJcbiAgQE91dHB1dCgpXHJcbiAgdG9nZ2xlTWVudSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KClcclxuICBuYXZDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICBASW5wdXQoKSBpc0NvbGxhcHNlZDogYm9vbGVhbiA9IGZhbHNlOyAvLyDmjqXmlLbovpPlhaXlsZ7mgKdcclxuICBASW5wdXQoKSBjdXN0b21OYXZDbGljazogYm9vbGVhbiA9IGZhbHNlOyAvLyDmjqXmlLbovpPlhaXlsZ7mgKdcclxuICBASW5wdXQoKSBuYXZMaXN0ID0gW107XHJcbiAgQElucHV0KCkgcmVsYXRpb25TdGFydCA9IFtdO1xyXG5cclxuICBjdXJyZW50TmF2ID0gXCJcIjtcclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuaW5pdEN1cnJlbnROYXYoKTtcclxuICAgIC8vIOebkeWQrOi3r+eUseWPmOWMllxyXG4gICAgdGhpcy5yb3V0ZXIuZXZlbnRzXHJcbiAgICAgIC5waXBlKGZpbHRlcigoZXZlbnQpID0+IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKCd0aGlzLnJvdXRlci51cmwnLCB0aGlzLnJvdXRlci51cmwpXHJcbiAgICAgICAgY29uc3QgaWR4ID0gdGhpcy5yZWxhdGlvblN0YXJ0LmZpbmRJbmRleCgoaXRlbSkgPT5cclxuICAgICAgICAgIHRoaXMucm91dGVyLnVybC5zdGFydHNXaXRoKGl0ZW0udXJsKVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgaWYgKGlkeCAhPT0gLTEpIHtcclxuICAgICAgICAgIHRoaXMuY3VycmVudE5hdiA9IHRoaXMucmVsYXRpb25TdGFydFtpZHhdLnRhcmdldDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5jdXJyZW50TmF2ID0gdGhpcy5yb3V0ZXIudXJsO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG4gIGluaXRDdXJyZW50TmF2KCkge1xyXG4gICAgY29uc3QgaWR4ID0gdGhpcy5yZWxhdGlvblN0YXJ0LmZpbmRJbmRleCgoaXRlbSkgPT5cclxuICAgICAgdGhpcy5yb3V0ZXIudXJsLnN0YXJ0c1dpdGgoaXRlbS51cmwpXHJcbiAgICApO1xyXG4gICAgaWYgKGlkeCAhPT0gLTEpIHtcclxuICAgICAgdGhpcy5jdXJyZW50TmF2ID0gdGhpcy5yZWxhdGlvblN0YXJ0W2lkeF0udGFyZ2V0O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5jdXJyZW50TmF2ID0gdGhpcy5yb3V0ZXIudXJsO1xyXG4gICAgfVxyXG4gIH1cclxuICBvbk5hdkNsaWNrKGl0ZW0pIHtcclxuICAgIGlmICghdGhpcy5jdXN0b21OYXZDbGljaykge1xyXG4gICAgICB0aGlzLmN1cnJlbnROYXYgPSBpdGVtLnVybDtcclxuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW2l0ZW0udXJsXSwgeyBzdGF0ZTogeyB0aXRsZTogaXRlbS5sYWJlbCB9IH0pO1xyXG4gICAgICBjb25zdCBzY3JlZW5XaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoO1xyXG4gICAgICBpZiAoc2NyZWVuV2lkdGggPD0gOTkyICYmIHRoaXMuaXNDb2xsYXBzZWQpIHtcclxuICAgICAgICB0aGlzLnRvZ2dsZU1lbnUuZW1pdChmYWxzZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMubmF2Q2xpY2suZW1pdChpdGVtKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInJzLWFzaWRlXCIgW25nQ2xhc3NdPVwieyBpc0NvbGxhcHNlZDogaXNDb2xsYXBzZWQgfVwiPlxyXG4gIDxkaXYgY2xhc3M9XCJuYXYtbGlzdFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cIm5hdi1ncm91cFwiIFtuZ0NsYXNzXT1cImdyb3VwLmNsYXNzXCIgKm5nRm9yPVwibGV0IGdyb3VwIG9mIG5hdkxpc3RcIj5cclxuICAgICAgPGRpdlxyXG4gICAgICAgIGNsYXNzPVwibmF2LWl0ZW1cIlxyXG4gICAgICAgIFtuZ0NsYXNzXT1cInsgaXNDdXJyZW50OiBjdXJyZW50TmF2ID09PSBuYXYudXJsIH1cIlxyXG4gICAgICAgICpuZ0Zvcj1cImxldCBuYXYgb2YgZ3JvdXAubmF2SXRlbXNcIlxyXG4gICAgICAgIChjbGljayk9XCJvbk5hdkNsaWNrKG5hdilcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm5hdi1pdGVtLWlubmVyXCIgKm5nSWY9XCJuYXYubWVudVR5cGUgPT09ICdNRU5VJ1wiPlxyXG4gICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwibWVudS1pY29uXCIgW3N2Z0ljb25dPVwibmF2Lmljb25Db2RlXCI+PC9tYXQtaWNvbj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwibmF2LXRleHRcIiBbbmdDbGFzc109XCJ7IGlzQ29sbGFwc2VkOiBpc0NvbGxhcHNlZCB9XCI+e3tcclxuICAgICAgICAgICAgbmF2LmxhYmVsXHJcbiAgICAgICAgICB9fTwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGl2aWRpbmctbGluZVwiICpuZ0lmPVwibmF2Lm1lbnVUeXBlID09PSAnTEFCRUwnXCI+PC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cImJvdHRvbS1pY29uYm94XCIgW25nQ2xhc3NdPVwieyBpc0NvbGxhcHNlZDogaXNDb2xsYXBzZWQgfVwiPlxyXG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2JvdHRvbUljb25Cb3hdXCI+PC9uZy1jb250ZW50PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
@@ -0,0 +1,16 @@
1
+ // 组件类
2
+ import { Component, } from '@angular/core';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common";
5
+ export class RSFooterComponent {
6
+ today = new Date();
7
+ ngOnInit() {
8
+ }
9
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RSFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
10
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: RSFooterComponent, selector: "rs-footer", ngImport: i0, template: "<div class=\"rs-footer\">\r\n <span>\r\n RAISE<sup>&reg;</sup>\u00A0\u00A9\u00A0\r\n {{ today | date : \"yyyy\" }}\r\n Linnovate Partners</span\r\n >\r\n</div>\r\n", styles: [".rs-footer{height:40px;padding:0 24px;display:flex;align-items:center;background-color:var(--rs-container-bg);color:var(--rs-labels-color);font-family:var(--rs-font-family);font-size:11px;max-width:1886px;margin:0 auto}\n"], dependencies: [{ kind: "pipe", type: i1.DatePipe, name: "date" }] });
11
+ }
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RSFooterComponent, decorators: [{
13
+ type: Component,
14
+ args: [{ selector: 'rs-footer', template: "<div class=\"rs-footer\">\r\n <span>\r\n RAISE<sup>&reg;</sup>\u00A0\u00A9\u00A0\r\n {{ today | date : \"yyyy\" }}\r\n Linnovate Partners</span\r\n >\r\n</div>\r\n", styles: [".rs-footer{height:40px;padding:0 24px;display:flex;align-items:center;background-color:var(--rs-container-bg);color:var(--rs-labels-color);font-family:var(--rs-font-family);font-size:11px;max-width:1886px;margin:0 auto}\n"] }]
15
+ }] });
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcmFpc2UtY29tbW9uLWxpYi9zcmMvbGliL2xheW91dC9ycy1mb290ZXIvaW5kZXguY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcmFpc2UtY29tbW9uLWxpYi9zcmMvbGliL2xheW91dC9ycy1mb290ZXIvaW5kZXguY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTTtBQUNOLE9BQU8sRUFDTCxTQUFTLEdBRVYsTUFBTSxlQUFlLENBQUM7OztBQU92QixNQUFNLE9BQU8saUJBQWlCO0lBQzVCLEtBQUssR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO0lBQ25CLFFBQVE7SUFDUixDQUFDO3dHQUhVLGlCQUFpQjs0RkFBakIsaUJBQWlCLGlEQ1g5QixnTEFPQTs7NEZESWEsaUJBQWlCO2tCQUw3QixTQUFTOytCQUNFLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyIvLyDnu4Tku7bnsbtcclxuaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgT25Jbml0LFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdycy1mb290ZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9pbmRleC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vaW5kZXguY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFJTRm9vdGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICB0b2RheSA9IG5ldyBEYXRlKCk7XHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJycy1mb290ZXJcIj5cclxuICA8c3Bhbj5cclxuICAgIFJBSVNFPHN1cD4mcmVnOzwvc3VwPsKgwqnCoFxyXG4gICAge3sgdG9kYXkgfCBkYXRlIDogXCJ5eXl5XCIgfX1cclxuICAgIExpbm5vdmF0ZSBQYXJ0bmVyczwvc3BhblxyXG4gID5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -0,0 +1,56 @@
1
+ // 组件类
2
+ import { Component, EventEmitter, Input, Output, } from "@angular/core";
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../../service/translation.service";
5
+ import * as i2 from "@syncfusion/ej2-angular-splitbuttons";
6
+ export class RSHeaderComponent {
7
+ translationService;
8
+ constructor(translationService) {
9
+ this.translationService = translationService;
10
+ }
11
+ isCollapsed = false; // 接收输入属性
12
+ lastLoginTime = new Date();
13
+ set langOptions(options) {
14
+ this._langOptions = options;
15
+ if (options && options.length > 0) {
16
+ const languageCode = localStorage.getItem("language") || "en";
17
+ this.currentLang = options.find((e) => e.languageCode === languageCode);
18
+ }
19
+ }
20
+ get langOptions() {
21
+ return this._langOptions;
22
+ }
23
+ toggleMenu = new EventEmitter();
24
+ changeLanguage = new EventEmitter();
25
+ _langOptions = [];
26
+ currentLang;
27
+ translation;
28
+ ngOnInit() {
29
+ this.translation = JSON.parse(localStorage.getItem("translation")) || {};
30
+ }
31
+ onToggleMenu(isCollapsed) {
32
+ const collapseState = isCollapsed !== undefined ? isCollapsed : !this.isCollapsed;
33
+ this.toggleMenu.emit(collapseState);
34
+ }
35
+ selectLanguage(event) {
36
+ this.currentLang = this.langOptions.find((item) => item.text === event.item.text);
37
+ this.changeLanguage.emit(this.currentLang.languageCode);
38
+ }
39
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RSHeaderComponent, deps: [{ token: i1.TranslationService }], target: i0.ɵɵFactoryTarget.Component });
40
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: RSHeaderComponent, selector: "rs-header", inputs: { isCollapsed: "isCollapsed", lastLoginTime: "lastLoginTime", langOptions: "langOptions" }, outputs: { toggleMenu: "toggleMenu", changeLanguage: "changeLanguage" }, ngImport: i0, template: "<div class=\"rs-header\">\r\n <div class=\"logo-wrap\">\r\n <div class=\"toggle-menu-wrap\">\r\n <img\r\n class=\"toggle-menu\"\r\n src=\"../../../assets/img/toggle-menu-icon.svg\"\r\n (click)=\"onToggleMenu()\"\r\n />\r\n </div>\r\n <img\r\n class=\"logo\"\r\n src=\"../../../assets/img/raise_logo_main.svg\"\r\n alt=\"logo\"\r\n />\r\n </div>\r\n <div class=\"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-header-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", 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;margin-top:2px;width:24px;height:24px}.rs-header .logo-wrap .toggle-menu-wrap:hover{background:#1364b30d;border-radius:6px}.rs-header .logo-wrap .logo{width:77px;height:32px}@media (max-width: 1200px){.rs-header .logo-wrap{width:auto}}.rs-header .content-header-wrap{display:flex;justify-content:space-between;align-items:center;flex:1;max-width:1886px;margin:0 auto}.rs-header .bread-crumbs-wrap{padding-left:16px}.rs-header .rs-header-toolbar-wrap,.rs-header .rs-header-toolbar-wrap .quick-icon-group{display:flex;align-items:center}.rs-header .rs-header-toolbar-wrap .quick-icon-group ::ng-deep .header-icon{width:32px;height:32px;display:flex;justify-content:center;align-items:center;margin-right:8px;cursor:pointer}.rs-header .rs-header-toolbar-wrap .quick-icon-group ::ng-deep .header-icon:last-child{margin-right:16px}.rs-header .rs-header-toolbar-wrap .quick-icon-group ::ng-deep .header-icon svg{width:24px;height:24px;color:#6c7c90;stroke:#6c7c90}.rs-header .rs-header-toolbar-wrap .quick-icon-group ::ng-deep .header-icon:hover{border-radius:4px;background:#1f7bff0a}.rs-header .rs-header-toolbar-wrap .quick-icon-group ::ng-deep .header-icon:hover svg{color:#1f7bff;stroke:#1f7bff}.rs-header .rs-header-toolbar-wrap .line{width:1px;height:24px;background-color:var(--rs-border-color)}.rs-header .rs-header-toolbar-wrap .langulage-wrap{padding:0 16px}.rs-header .rs-header-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-header-toolbar-wrap .user-info-wrap{padding:0 20px 0 16px}\n"], dependencies: [{ kind: "component", type: i2.DropDownButtonComponent, selector: "[ejs-dropdownbutton]", inputs: ["closeActionEvents", "content", "createPopupOnClick", "cssClass", "disabled", "enableHtmlSanitizer", "enablePersistence", "enableRtl", "iconCss", "iconPosition", "items", "locale", "target"], outputs: ["beforeClose", "beforeItemRender", "beforeOpen", "close", "created", "open", "select"] }] });
41
+ }
42
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RSHeaderComponent, decorators: [{
43
+ type: Component,
44
+ args: [{ selector: "rs-header", template: "<div class=\"rs-header\">\r\n <div class=\"logo-wrap\">\r\n <div class=\"toggle-menu-wrap\">\r\n <img\r\n class=\"toggle-menu\"\r\n src=\"../../../assets/img/toggle-menu-icon.svg\"\r\n (click)=\"onToggleMenu()\"\r\n />\r\n </div>\r\n <img\r\n class=\"logo\"\r\n src=\"../../../assets/img/raise_logo_main.svg\"\r\n alt=\"logo\"\r\n />\r\n </div>\r\n <div class=\"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-header-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", 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;margin-top:2px;width:24px;height:24px}.rs-header .logo-wrap .toggle-menu-wrap:hover{background:#1364b30d;border-radius:6px}.rs-header .logo-wrap .logo{width:77px;height:32px}@media (max-width: 1200px){.rs-header .logo-wrap{width:auto}}.rs-header .content-header-wrap{display:flex;justify-content:space-between;align-items:center;flex:1;max-width:1886px;margin:0 auto}.rs-header .bread-crumbs-wrap{padding-left:16px}.rs-header .rs-header-toolbar-wrap,.rs-header .rs-header-toolbar-wrap .quick-icon-group{display:flex;align-items:center}.rs-header .rs-header-toolbar-wrap .quick-icon-group ::ng-deep .header-icon{width:32px;height:32px;display:flex;justify-content:center;align-items:center;margin-right:8px;cursor:pointer}.rs-header .rs-header-toolbar-wrap .quick-icon-group ::ng-deep .header-icon:last-child{margin-right:16px}.rs-header .rs-header-toolbar-wrap .quick-icon-group ::ng-deep .header-icon svg{width:24px;height:24px;color:#6c7c90;stroke:#6c7c90}.rs-header .rs-header-toolbar-wrap .quick-icon-group ::ng-deep .header-icon:hover{border-radius:4px;background:#1f7bff0a}.rs-header .rs-header-toolbar-wrap .quick-icon-group ::ng-deep .header-icon:hover svg{color:#1f7bff;stroke:#1f7bff}.rs-header .rs-header-toolbar-wrap .line{width:1px;height:24px;background-color:var(--rs-border-color)}.rs-header .rs-header-toolbar-wrap .langulage-wrap{padding:0 16px}.rs-header .rs-header-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-header-toolbar-wrap .user-info-wrap{padding:0 20px 0 16px}\n"] }]
45
+ }], ctorParameters: function () { return [{ type: i1.TranslationService }]; }, propDecorators: { isCollapsed: [{
46
+ type: Input
47
+ }], lastLoginTime: [{
48
+ type: Input
49
+ }], langOptions: [{
50
+ type: Input
51
+ }], toggleMenu: [{
52
+ type: Output
53
+ }], changeLanguage: [{
54
+ type: Output
55
+ }] } });
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcmFpc2UtY29tbW9uLWxpYi9zcmMvbGliL2xheW91dC9ycy1oZWFkZXIvaW5kZXguY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcmFpc2UtY29tbW9uLWxpYi9zcmMvbGliL2xheW91dC9ycy1oZWFkZXIvaW5kZXguY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTTtBQUNOLE9BQU8sRUFDTCxTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7Ozs7QUFPdkIsTUFBTSxPQUFPLGlCQUFpQjtJQUNUO0lBQW5CLFlBQW1CLGtCQUFzQztRQUF0Qyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO0lBQUcsQ0FBQztJQUVwRCxXQUFXLEdBQVksS0FBSyxDQUFDLENBQUMsU0FBUztJQUV2QyxhQUFhLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztJQUVwQyxJQUNJLFdBQVcsQ0FBQyxPQUFjO1FBQzVCLElBQUksQ0FBQyxZQUFZLEdBQUcsT0FBTyxDQUFDO1FBQzVCLElBQUksT0FBTyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ2pDLE1BQU0sWUFBWSxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksSUFBSSxDQUFDO1lBQzlELElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFlBQVksS0FBSyxZQUFZLENBQUMsQ0FBQztTQUN6RTtJQUNILENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0IsQ0FBQztJQUdELFVBQVUsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBR2hDLGNBQWMsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBRTVCLFlBQVksR0FBRyxFQUFFLENBQUM7SUFFMUIsV0FBVyxDQUFNO0lBQ1YsV0FBVyxDQUFDO0lBRW5CLFFBQVE7UUFDTixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMzRSxDQUFDO0lBRUQsWUFBWSxDQUFDLFdBQXFCO1FBQ2hDLE1BQU0sYUFBYSxHQUFHLFdBQVcsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQ2xGLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxjQUFjLENBQUMsS0FBSztRQUNsQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUN0QyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FDeEMsQ0FBQztRQUNGLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDMUQsQ0FBQzt3R0E3Q1UsaUJBQWlCOzRGQUFqQixpQkFBaUIsOE5DZjlCLCs3Q0E4Q0E7OzRGRC9CYSxpQkFBaUI7a0JBTDdCLFNBQVM7K0JBQ0UsV0FBVzt5R0FPWixXQUFXO3NCQUFuQixLQUFLO2dCQUVHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBR0YsV0FBVztzQkFEZCxLQUFLO2dCQWNOLFVBQVU7c0JBRFQsTUFBTTtnQkFJUCxjQUFjO3NCQURiLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvLyDnu4Tku7bnsbtcclxuaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgQ29udGVudENoaWxkLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFRyYW5zbGF0aW9uU2VydmljZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL3RyYW5zbGF0aW9uLnNlcnZpY2VcIjtcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwicnMtaGVhZGVyXCIsXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi9pbmRleC5jb21wb25lbnQuaHRtbFwiLFxyXG4gIHN0eWxlVXJsczogW1wiLi9pbmRleC5jb21wb25lbnQuc2Nzc1wiXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFJTSGVhZGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdHJhbnNsYXRpb25TZXJ2aWNlOiBUcmFuc2xhdGlvblNlcnZpY2UpIHt9XHJcblxyXG4gIEBJbnB1dCgpIGlzQ29sbGFwc2VkOiBib29sZWFuID0gZmFsc2U7IC8vIOaOpeaUtui+k+WFpeWxnuaAp1xyXG5cclxuICBASW5wdXQoKSBsYXN0TG9naW5UaW1lID0gbmV3IERhdGUoKTtcclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgbGFuZ09wdGlvbnMob3B0aW9uczogYW55W10pIHtcclxuICAgIHRoaXMuX2xhbmdPcHRpb25zID0gb3B0aW9ucztcclxuICAgIGlmIChvcHRpb25zICYmIG9wdGlvbnMubGVuZ3RoID4gMCkge1xyXG4gICAgICBjb25zdCBsYW5ndWFnZUNvZGUgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImxhbmd1YWdlXCIpIHx8IFwiZW5cIjtcclxuICAgICAgdGhpcy5jdXJyZW50TGFuZyA9IG9wdGlvbnMuZmluZCgoZSkgPT4gZS5sYW5ndWFnZUNvZGUgPT09IGxhbmd1YWdlQ29kZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXQgbGFuZ09wdGlvbnMoKTogYW55W10ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2xhbmdPcHRpb25zO1xyXG4gIH1cclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgdG9nZ2xlTWVudSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgY2hhbmdlTGFuZ3VhZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIHByaXZhdGUgX2xhbmdPcHRpb25zID0gW107XHJcblxyXG4gIGN1cnJlbnRMYW5nOiBhbnk7XHJcbiAgcHVibGljIHRyYW5zbGF0aW9uO1xyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMudHJhbnNsYXRpb24gPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwidHJhbnNsYXRpb25cIikpIHx8IHt9O1xyXG4gIH1cclxuXHJcbiAgb25Ub2dnbGVNZW51KGlzQ29sbGFwc2VkPzogYm9vbGVhbikge1xyXG4gICAgY29uc3QgY29sbGFwc2VTdGF0ZSA9IGlzQ29sbGFwc2VkICE9PSB1bmRlZmluZWQgPyBpc0NvbGxhcHNlZCA6ICF0aGlzLmlzQ29sbGFwc2VkO1xyXG4gICAgdGhpcy50b2dnbGVNZW51LmVtaXQoY29sbGFwc2VTdGF0ZSk7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RMYW5ndWFnZShldmVudCkge1xyXG4gICAgdGhpcy5jdXJyZW50TGFuZyA9IHRoaXMubGFuZ09wdGlvbnMuZmluZChcclxuICAgICAgKGl0ZW0pID0+IGl0ZW0udGV4dCA9PT0gZXZlbnQuaXRlbS50ZXh0XHJcbiAgICApO1xyXG4gICAgdGhpcy5jaGFuZ2VMYW5ndWFnZS5lbWl0KHRoaXMuY3VycmVudExhbmcubGFuZ3VhZ2VDb2RlKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInJzLWhlYWRlclwiPlxyXG4gIDxkaXYgY2xhc3M9XCJsb2dvLXdyYXBcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJ0b2dnbGUtbWVudS13cmFwXCI+XHJcbiAgICAgIDxpbWdcclxuICAgICAgICBjbGFzcz1cInRvZ2dsZS1tZW51XCJcclxuICAgICAgICBzcmM9XCIuLi8uLi8uLi9hc3NldHMvaW1nL3RvZ2dsZS1tZW51LWljb24uc3ZnXCJcclxuICAgICAgICAoY2xpY2spPVwib25Ub2dnbGVNZW51KClcIlxyXG4gICAgICAvPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8aW1nXHJcbiAgICAgIGNsYXNzPVwibG9nb1wiXHJcbiAgICAgIHNyYz1cIi4uLy4uLy4uL2Fzc2V0cy9pbWcvcmFpc2VfbG9nb19tYWluLnN2Z1wiXHJcbiAgICAgIGFsdD1cImxvZ29cIlxyXG4gICAgLz5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwiY29udGVudC1oZWFkZXItd3JhcFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImJyZWFkLWNydW1icy13cmFwXCI+XHJcbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIlticmVhZENydW1ic11cIj48L25nLWNvbnRlbnQ+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJycy1oZWFkZXItdG9vbGJhci13cmFwXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJxdWljay1pY29uLWdyb3VwXCI+XHJcbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3Rvb2xiYXJdXCI+PC9uZy1jb250ZW50PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImxpbmVcIj48L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImxhbmd1bGFnZS13cmFwXCI+XHJcbiAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgY2xhc3M9XCJlLWJ0biB0ZXh0XCJcclxuICAgICAgICAgIGVqcy1kcm9wZG93bmJ1dHRvblxyXG4gICAgICAgICAgW2l0ZW1zXT1cImxhbmdPcHRpb25zXCJcclxuICAgICAgICAgIChzZWxlY3QpPVwic2VsZWN0TGFuZ3VhZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAge3sgY3VycmVudExhbmcudGV4dCB9fVxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwibGluZVwiPjwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibGFzdC1sb2dpbi13cmFwXCI+XHJcbiAgICAgICAge3sgdHJhbnNsYXRpb24/LkxBU1RfTE9HSU4gfHwgXCJMYXN0IExvZ2luXCIgfX06XHJcbiAgICAgICAge3sgbGFzdExvZ2luVGltZSB8IGRhdGUgOiBcImRkIE1NTSB5eSBoOm1tIGFcIiB9fVxyXG4gICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJsaW5lXCI+PC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ1c2VyLWluZm8td3JhcFwiPlxyXG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIlt1c2VySW5mb11cIj48L25nLWNvbnRlbnQ+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcmFpc2UtY29tbW9uLWxpYi9zcmMvbGliL2xheW91dC90b29sYmFyL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBUb29sYmFyQnV0dG9uIHtcclxuICB0ZXh0OiBzdHJpbmc7XHJcbiAgaW1hZ2U/OiBzdHJpbmc7XHJcbiAgYWN0aW9uOiAoKSA9PiB2b2lkO1xyXG4gIGRpc2FibGVkPzogYm9vbGVhbjtcclxuICBrZXk/OiBzdHJpbmc7XHJcbiAgY2hpbGRyZW4/OiBUb29sYmFyQnV0dG9uW107XHJcbn1cclxuIl19
@@ -0,0 +1,79 @@
1
+ // 组件类
2
+ import { Component, HostListener, Input, ViewChild, ViewChildren, } from "@angular/core";
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/router";
5
+ import * as i2 from "@angular/common";
6
+ import * as i3 from "@angular/material/menu";
7
+ import * as i4 from "@angular/material/icon";
8
+ import * as i5 from "../../form/toolbar-item/index.component";
9
+ export class RSToolbarComponent {
10
+ router;
11
+ ref;
12
+ buttons = [];
13
+ disabledOptions = {};
14
+ toolbarContainer;
15
+ buttonElements;
16
+ constructor(router, ref) {
17
+ this.router = router;
18
+ this.ref = ref;
19
+ }
20
+ ngAfterViewInit() {
21
+ this.updateButtonVisibility();
22
+ }
23
+ visibleButtons = [];
24
+ hiddenButtons = [];
25
+ updateButtonVisibility() {
26
+ if (!this.toolbarContainer || !this.buttonElements)
27
+ return;
28
+ const buttonRefs = this.buttonElements.toArray();
29
+ const containerWidth = this.toolbarContainer.nativeElement.offsetWidth - 50;
30
+ // console.log("containerWidth", containerWidth);
31
+ let totalWidth = 0;
32
+ const menuButtonWidth = 60;
33
+ this.visibleButtons = [];
34
+ this.hiddenButtons = [];
35
+ for (let i = 0; i < buttonRefs.length; i++) {
36
+ const buttonWidth = buttonRefs[i].nativeElement.getBoundingClientRect().width;
37
+ // console.log("buttonWidth", buttonWidth);
38
+ if (totalWidth +
39
+ 4 + // 4px margin between buttons
40
+ buttonWidth +
41
+ (i < buttonRefs.length - 1 ? menuButtonWidth : 0) <=
42
+ containerWidth) {
43
+ this.visibleButtons.push(this.buttons[i]);
44
+ buttonRefs[i].nativeElement.classList.remove("temp-hidden");
45
+ totalWidth += buttonWidth;
46
+ }
47
+ else {
48
+ buttonRefs[i].nativeElement.classList.add("temp-hidden");
49
+ this.hiddenButtons.push(this.buttons[i]);
50
+ }
51
+ }
52
+ // console.log("visibleButtons", this.visibleButtons);
53
+ // console.log("hiddenButtons", this.hiddenButtons);
54
+ this.ref.detectChanges();
55
+ }
56
+ onWindowResize() {
57
+ this.updateButtonVisibility();
58
+ }
59
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RSToolbarComponent, deps: [{ token: i1.Router }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
60
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: RSToolbarComponent, selector: "rs-toolbar", inputs: { buttons: "buttons", disabledOptions: "disabledOptions" }, host: { listeners: { "window:resize": "onWindowResize()" } }, viewQueries: [{ propertyName: "toolbarContainer", first: true, predicate: ["toolbarContainer"], descendants: true }, { propertyName: "buttonElements", predicate: ["toolbarItem"], descendants: true }], ngImport: i0, template: "<div #toolbarContainer class=\"rs-toolbar-container\">\r\n <!-- \u53EF\u89C1\u6309\u94AE -->\r\n <ng-container *ngFor=\"let button of buttons\">\r\n <div class=\"temp-hidden\" #toolbarItem>\r\n <rs-toolbar-item\r\n [image]=\"button.image\"\r\n [text]=\"button.text\"\r\n [disabled]=\"(button.key && disabledOptions[button.key]) || false\"\r\n (click)=\"button.action && button.action()\"\r\n [children]=\"button.children || []\"\r\n [disabledOptions]=\"disabledOptions\"\r\n >\r\n </rs-toolbar-item>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- \u4E0B\u62C9\u83DC\u5355\uFF08\u5982\u679C\u6709\u9690\u85CF\u6309\u94AE\uFF09 -->\r\n <button\r\n *ngIf=\"hiddenButtons.length > 0\"\r\n mat-button\r\n [matMenuTriggerFor]=\"menu\"\r\n #menuTrigger=\"matMenuTrigger\"\r\n class=\"action-toggle\"\r\n >\r\n <mat-icon svgIcon=\"more\"></mat-icon>\r\n </button>\r\n\r\n <mat-menu #menu=\"matMenu\">\r\n <ng-container *ngFor=\"let button of hiddenButtons\">\r\n <rs-toolbar-item\r\n [image]=\"button.image\"\r\n [text]=\"button.text\"\r\n (click)=\"button.action && button.action()\"\r\n [disabled]=\"disabledOptions[button.key] || false\"\r\n [children]=\"button.children || []\"\r\n [disabledOptions]=\"disabledOptions\"\r\n >\r\n </rs-toolbar-item>\r\n </ng-container>\r\n </mat-menu>\r\n</div>\r\n", styles: [":host{display:block;width:100%}.rs-toolbar-container{width:100%;display:flex;align-items:center}.rs-toolbar-container .temp-hidden{visibility:hidden;position:absolute}.rs-toolbar-container .action-toggle{width:24px;height:24px;min-width:24px;max-width:24px;padding:0;border-radius:4px;display:flex;flex-flow:row nowrap;justify-content:center;align-items:center;background:transparent}.rs-toolbar-container .action-toggle:hover{background:#d6e3f533}.rs-toolbar-container .action-toggle .mat-button-wrapper{max-height:24px;height:24px}.rs-toolbar-container .action-toggle ::ng-deep .mat-icon{width:16px;height:16px;display:flex;flex-flow:row nowrap;justify-content:center;align-items:center}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "directive", type: i3.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5.ToolbarItemComponent, selector: "rs-toolbar-item", inputs: ["image", "text", "disabled", "children", "disabledOptions"] }] });
61
+ }
62
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RSToolbarComponent, decorators: [{
63
+ type: Component,
64
+ args: [{ selector: "rs-toolbar", template: "<div #toolbarContainer class=\"rs-toolbar-container\">\r\n <!-- \u53EF\u89C1\u6309\u94AE -->\r\n <ng-container *ngFor=\"let button of buttons\">\r\n <div class=\"temp-hidden\" #toolbarItem>\r\n <rs-toolbar-item\r\n [image]=\"button.image\"\r\n [text]=\"button.text\"\r\n [disabled]=\"(button.key && disabledOptions[button.key]) || false\"\r\n (click)=\"button.action && button.action()\"\r\n [children]=\"button.children || []\"\r\n [disabledOptions]=\"disabledOptions\"\r\n >\r\n </rs-toolbar-item>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- \u4E0B\u62C9\u83DC\u5355\uFF08\u5982\u679C\u6709\u9690\u85CF\u6309\u94AE\uFF09 -->\r\n <button\r\n *ngIf=\"hiddenButtons.length > 0\"\r\n mat-button\r\n [matMenuTriggerFor]=\"menu\"\r\n #menuTrigger=\"matMenuTrigger\"\r\n class=\"action-toggle\"\r\n >\r\n <mat-icon svgIcon=\"more\"></mat-icon>\r\n </button>\r\n\r\n <mat-menu #menu=\"matMenu\">\r\n <ng-container *ngFor=\"let button of hiddenButtons\">\r\n <rs-toolbar-item\r\n [image]=\"button.image\"\r\n [text]=\"button.text\"\r\n (click)=\"button.action && button.action()\"\r\n [disabled]=\"disabledOptions[button.key] || false\"\r\n [children]=\"button.children || []\"\r\n [disabledOptions]=\"disabledOptions\"\r\n >\r\n </rs-toolbar-item>\r\n </ng-container>\r\n </mat-menu>\r\n</div>\r\n", styles: [":host{display:block;width:100%}.rs-toolbar-container{width:100%;display:flex;align-items:center}.rs-toolbar-container .temp-hidden{visibility:hidden;position:absolute}.rs-toolbar-container .action-toggle{width:24px;height:24px;min-width:24px;max-width:24px;padding:0;border-radius:4px;display:flex;flex-flow:row nowrap;justify-content:center;align-items:center;background:transparent}.rs-toolbar-container .action-toggle:hover{background:#d6e3f533}.rs-toolbar-container .action-toggle .mat-button-wrapper{max-height:24px;height:24px}.rs-toolbar-container .action-toggle ::ng-deep .mat-icon{width:16px;height:16px;display:flex;flex-flow:row nowrap;justify-content:center;align-items:center}\n"] }]
65
+ }], ctorParameters: function () { return [{ type: i1.Router }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { buttons: [{
66
+ type: Input
67
+ }], disabledOptions: [{
68
+ type: Input
69
+ }], toolbarContainer: [{
70
+ type: ViewChild,
71
+ args: ["toolbarContainer", { static: false }]
72
+ }], buttonElements: [{
73
+ type: ViewChildren,
74
+ args: ["toolbarItem"]
75
+ }], onWindowResize: [{
76
+ type: HostListener,
77
+ args: ["window:resize"]
78
+ }] } });
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcmFpc2UtY29tbW9uLWxpYi9zcmMvbGliL2xheW91dC90b29sYmFyL2luZGV4LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3JhaXNlLWNvbW1vbi1saWIvc3JjL2xpYi9sYXlvdXQvdG9vbGJhci9pbmRleC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNO0FBQ04sT0FBTyxFQUdMLFNBQVMsRUFHVCxZQUFZLEVBQ1osS0FBSyxFQUlMLFNBQVMsRUFDVCxZQUFZLEdBQ2IsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7QUFTdkIsTUFBTSxPQUFPLGtCQUFrQjtJQVNWO0lBQXdCO0lBUmxDLE9BQU8sR0FBb0IsRUFBRSxDQUFDO0lBQzlCLGVBQWUsR0FBMkIsRUFBRSxDQUFDO0lBR3RELGdCQUFnQixDQUFjO0lBRUQsY0FBYyxDQUF5QjtJQUVwRSxZQUFtQixNQUFjLEVBQVUsR0FBc0I7UUFBOUMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUFVLFFBQUcsR0FBSCxHQUFHLENBQW1CO0lBQUcsQ0FBQztJQUNyRSxlQUFlO1FBQ2IsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVELGNBQWMsR0FBb0IsRUFBRSxDQUFDO0lBQ3JDLGFBQWEsR0FBb0IsRUFBRSxDQUFDO0lBRTdCLHNCQUFzQjtRQUMzQixJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWM7WUFBRSxPQUFPO1FBRTNELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDakQsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBQzVFLGlEQUFpRDtRQUNqRCxJQUFJLFVBQVUsR0FBRyxDQUFDLENBQUM7UUFDbkIsTUFBTSxlQUFlLEdBQUcsRUFBRSxDQUFDO1FBRTNCLElBQUksQ0FBQyxjQUFjLEdBQUcsRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO1FBRXhCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQzFDLE1BQU0sV0FBVyxHQUNmLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxLQUFLLENBQUM7WUFDNUQsMkNBQTJDO1lBQzNDLElBQ0UsVUFBVTtnQkFDUixDQUFDLEdBQUcsNkJBQTZCO2dCQUNqQyxXQUFXO2dCQUNYLENBQUMsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDbkQsY0FBYyxFQUNkO2dCQUNBLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDMUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO2dCQUM1RCxVQUFVLElBQUksV0FBVyxDQUFDO2FBQzNCO2lCQUFNO2dCQUNMLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQztnQkFDekQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQzFDO1NBQ0Y7UUFDRCxzREFBc0Q7UUFDdEQsb0RBQW9EO1FBQ3BELElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUdELGNBQWM7UUFDWixJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztJQUNoQyxDQUFDO3dHQXhEVSxrQkFBa0I7NEZBQWxCLGtCQUFrQiw2WEN2Qi9CLHM2Q0F5Q0E7OzRGRGxCYSxrQkFBa0I7a0JBTDlCLFNBQVM7K0JBQ0UsWUFBWTs2SEFLYixPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFHTixnQkFBZ0I7c0JBRGYsU0FBUzt1QkFBQyxrQkFBa0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBR25CLGNBQWM7c0JBQTFDLFlBQVk7dUJBQUMsYUFBYTtnQkErQzNCLGNBQWM7c0JBRGIsWUFBWTt1QkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiLy8g57uE5Lu257G7XHJcbmltcG9ydCB7XHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgRWxlbWVudFJlZixcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSG9zdExpc3RlbmVyLFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgUXVlcnlMaXN0LFxyXG4gIFZpZXdDaGlsZCxcclxuICBWaWV3Q2hpbGRyZW4sXHJcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5pbXBvcnQgeyBUb29sYmFyQnV0dG9uIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJycy10b29sYmFyXCIsXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi9pbmRleC5jb21wb25lbnQuaHRtbFwiLFxyXG4gIHN0eWxlVXJsczogW1wiLi9pbmRleC5jb21wb25lbnQuc2Nzc1wiXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFJTVG9vbGJhckNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xyXG4gIEBJbnB1dCgpIGJ1dHRvbnM6IFRvb2xiYXJCdXR0b25bXSA9IFtdO1xyXG4gIEBJbnB1dCgpIGRpc2FibGVkT3B0aW9uczogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9IHt9O1xyXG5cclxuICBAVmlld0NoaWxkKFwidG9vbGJhckNvbnRhaW5lclwiLCB7IHN0YXRpYzogZmFsc2UgfSlcclxuICB0b29sYmFyQ29udGFpbmVyITogRWxlbWVudFJlZjtcclxuXHJcbiAgQFZpZXdDaGlsZHJlbihcInRvb2xiYXJJdGVtXCIpIGJ1dHRvbkVsZW1lbnRzITogUXVlcnlMaXN0PEVsZW1lbnRSZWY+O1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcm91dGVyOiBSb3V0ZXIsIHByaXZhdGUgcmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge31cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnVwZGF0ZUJ1dHRvblZpc2liaWxpdHkoKTtcclxuICB9XHJcblxyXG4gIHZpc2libGVCdXR0b25zOiBUb29sYmFyQnV0dG9uW10gPSBbXTtcclxuICBoaWRkZW5CdXR0b25zOiBUb29sYmFyQnV0dG9uW10gPSBbXTtcclxuXHJcbiAgcHVibGljIHVwZGF0ZUJ1dHRvblZpc2liaWxpdHkoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMudG9vbGJhckNvbnRhaW5lciB8fCAhdGhpcy5idXR0b25FbGVtZW50cykgcmV0dXJuO1xyXG5cclxuICAgIGNvbnN0IGJ1dHRvblJlZnMgPSB0aGlzLmJ1dHRvbkVsZW1lbnRzLnRvQXJyYXkoKTtcclxuICAgIGNvbnN0IGNvbnRhaW5lcldpZHRoID0gdGhpcy50b29sYmFyQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGggLSA1MDtcclxuICAgIC8vIGNvbnNvbGUubG9nKFwiY29udGFpbmVyV2lkdGhcIiwgY29udGFpbmVyV2lkdGgpO1xyXG4gICAgbGV0IHRvdGFsV2lkdGggPSAwO1xyXG4gICAgY29uc3QgbWVudUJ1dHRvbldpZHRoID0gNjA7XHJcblxyXG4gICAgdGhpcy52aXNpYmxlQnV0dG9ucyA9IFtdO1xyXG4gICAgdGhpcy5oaWRkZW5CdXR0b25zID0gW107XHJcblxyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBidXR0b25SZWZzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGNvbnN0IGJ1dHRvbldpZHRoID1cclxuICAgICAgICBidXR0b25SZWZzW2ldLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg7XHJcbiAgICAgIC8vIGNvbnNvbGUubG9nKFwiYnV0dG9uV2lkdGhcIiwgYnV0dG9uV2lkdGgpO1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgdG90YWxXaWR0aCArXHJcbiAgICAgICAgICA0ICsgLy8gNHB4IG1hcmdpbiBiZXR3ZWVuIGJ1dHRvbnNcclxuICAgICAgICAgIGJ1dHRvbldpZHRoICtcclxuICAgICAgICAgIChpIDwgYnV0dG9uUmVmcy5sZW5ndGggLSAxID8gbWVudUJ1dHRvbldpZHRoIDogMCkgPD1cclxuICAgICAgICBjb250YWluZXJXaWR0aFxyXG4gICAgICApIHtcclxuICAgICAgICB0aGlzLnZpc2libGVCdXR0b25zLnB1c2godGhpcy5idXR0b25zW2ldKTtcclxuICAgICAgICBidXR0b25SZWZzW2ldLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShcInRlbXAtaGlkZGVuXCIpO1xyXG4gICAgICAgIHRvdGFsV2lkdGggKz0gYnV0dG9uV2lkdGg7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgYnV0dG9uUmVmc1tpXS5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoXCJ0ZW1wLWhpZGRlblwiKTtcclxuICAgICAgICB0aGlzLmhpZGRlbkJ1dHRvbnMucHVzaCh0aGlzLmJ1dHRvbnNbaV0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAvLyBjb25zb2xlLmxvZyhcInZpc2libGVCdXR0b25zXCIsIHRoaXMudmlzaWJsZUJ1dHRvbnMpO1xyXG4gICAgLy8gY29uc29sZS5sb2coXCJoaWRkZW5CdXR0b25zXCIsIHRoaXMuaGlkZGVuQnV0dG9ucyk7XHJcbiAgICB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKFwid2luZG93OnJlc2l6ZVwiKVxyXG4gIG9uV2luZG93UmVzaXplKCkge1xyXG4gICAgdGhpcy51cGRhdGVCdXR0b25WaXNpYmlsaXR5KCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgI3Rvb2xiYXJDb250YWluZXIgY2xhc3M9XCJycy10b29sYmFyLWNvbnRhaW5lclwiPlxyXG4gIDwhLS0g5Y+v6KeB5oyJ6ZKuIC0tPlxyXG4gIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGJ1dHRvbiBvZiBidXR0b25zXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwidGVtcC1oaWRkZW5cIiAjdG9vbGJhckl0ZW0+XHJcbiAgICAgIDxycy10b29sYmFyLWl0ZW1cclxuICAgICAgICBbaW1hZ2VdPVwiYnV0dG9uLmltYWdlXCJcclxuICAgICAgICBbdGV4dF09XCJidXR0b24udGV4dFwiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cIihidXR0b24ua2V5ICYmIGRpc2FibGVkT3B0aW9uc1tidXR0b24ua2V5XSkgfHwgZmFsc2VcIlxyXG4gICAgICAgIChjbGljayk9XCJidXR0b24uYWN0aW9uICYmIGJ1dHRvbi5hY3Rpb24oKVwiXHJcbiAgICAgICAgW2NoaWxkcmVuXT1cImJ1dHRvbi5jaGlsZHJlbiB8fCBbXVwiXHJcbiAgICAgICAgW2Rpc2FibGVkT3B0aW9uc109XCJkaXNhYmxlZE9wdGlvbnNcIlxyXG4gICAgICA+XHJcbiAgICAgIDwvcnMtdG9vbGJhci1pdGVtPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gIDwhLS0g5LiL5ouJ6I+c5Y2V77yI5aaC5p6c5pyJ6ZqQ6JeP5oyJ6ZKu77yJIC0tPlxyXG4gIDxidXR0b25cclxuICAgICpuZ0lmPVwiaGlkZGVuQnV0dG9ucy5sZW5ndGggPiAwXCJcclxuICAgIG1hdC1idXR0b25cclxuICAgIFttYXRNZW51VHJpZ2dlckZvcl09XCJtZW51XCJcclxuICAgICNtZW51VHJpZ2dlcj1cIm1hdE1lbnVUcmlnZ2VyXCJcclxuICAgIGNsYXNzPVwiYWN0aW9uLXRvZ2dsZVwiXHJcbiAgPlxyXG4gICAgPG1hdC1pY29uIHN2Z0ljb249XCJtb3JlXCI+PC9tYXQtaWNvbj5cclxuICA8L2J1dHRvbj5cclxuXHJcbiAgPG1hdC1tZW51ICNtZW51PVwibWF0TWVudVwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYnV0dG9uIG9mIGhpZGRlbkJ1dHRvbnNcIj5cclxuICAgICAgPHJzLXRvb2xiYXItaXRlbVxyXG4gICAgICAgIFtpbWFnZV09XCJidXR0b24uaW1hZ2VcIlxyXG4gICAgICAgIFt0ZXh0XT1cImJ1dHRvbi50ZXh0XCJcclxuICAgICAgICAoY2xpY2spPVwiYnV0dG9uLmFjdGlvbiAmJiBidXR0b24uYWN0aW9uKClcIlxyXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZE9wdGlvbnNbYnV0dG9uLmtleV0gfHwgZmFsc2VcIlxyXG4gICAgICAgIFtjaGlsZHJlbl09XCJidXR0b24uY2hpbGRyZW4gfHwgW11cIlxyXG4gICAgICAgIFtkaXNhYmxlZE9wdGlvbnNdPVwiZGlzYWJsZWRPcHRpb25zXCJcclxuICAgICAgPlxyXG4gICAgICA8L3JzLXRvb2xiYXItaXRlbT5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gIDwvbWF0LW1lbnU+XHJcbjwvZGl2PlxyXG4iXX0=