raise-common-lib-new 0.0.28 → 0.0.30

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.
@@ -3,8 +3,8 @@ export function filterShowSection(sections) {
3
3
  .filter((section) => !section.show || section.show())
4
4
  .map((section) => ({
5
5
  ...section,
6
- fields: section.fields.filter((field) => field.show || section.show()),
6
+ fields: section.fields.filter((field) => !field.show || field.show()),
7
7
  }));
8
8
  }
9
9
  export const EmailPattern = /^(?=.{1,254}$)(?=.{1,64}@)[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcmFpc2UtY29tbW9uLWxpYi9zcmMvbGliL2Zvcm0vZHJhd2VyLWZvcm0vY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTBDQSxNQUFNLFVBQVUsaUJBQWlCLENBQUMsUUFBdUI7SUFDdkQsT0FBTyxRQUFRO1NBQ1osTUFBTSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO1NBQ3BELEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNqQixHQUFHLE9BQU87UUFDVixNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO0tBQ3ZFLENBQUMsQ0FBQyxDQUFDO0FBQ1IsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FDdkIsb01BQW9NLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBGaWVsZEl0ZW0gPSB7XHJcbiAgc2hvdz86ICguLi5hcmdzOiBhbnlbXSkgPT4gYm9vbGVhbjtcclxuICBsYWJlbDogc3RyaW5nO1xyXG4gIGZvcm1LZXk6IHN0cmluZztcclxuICBmaWVsZEZvcm1UeXBlOlxyXG4gICAgfCBcIlJhZGlvXCJcclxuICAgIHwgXCJDaGVja2JveFwiXHJcbiAgICB8IFwiU3dpdGNoXCJcclxuICAgIHwgXCJUZXh0XCJcclxuICAgIHwgXCJFbWFpbFwiXHJcbiAgICB8IFwiVGV4dGFyZWFcIlxyXG4gICAgfCBcIk51bWJlclwiXHJcbiAgICB8IFwiVGFnc1wiXHJcbiAgICB8IFwiQXV0b0NvbXBsZXRlXCJcclxuICAgIHwgXCJEcm9wZG93blwiXHJcbiAgICB8IFwiTXVsdGlTZWxlY3RcIlxyXG4gICAgfCBcIkRhdGVwaWNrZXJcIlxyXG4gICAgfCBcIkN1c3RvbVwiO1xyXG4gIG9wdGlvbktleT86IHN0cmluZztcclxuICBncm91cEtleT86IHN0cmluZztcclxuICByZXF1aXJlZD86IGJvb2xlYW47XHJcbiAgZGlzYWJsZWQ/OiBib29sZWFuIHwgKCguLi5hcmdzOiBhbnlbXSkgPT4gYm9vbGVhbik7XHJcbiAgbWF4bGVuZ3RoPzogbnVtYmVyO1xyXG4gIG1pbmxlbmd0aD86IG51bWJlcjtcclxuICBtYXg/OiBudW1iZXI7XHJcbiAgbWluPzogbnVtYmVyO1xyXG4gIGZvcm1hdD86IHN0cmluZyB8IGZhbHNlO1xyXG4gIHRvb2x0aXA/OiBzdHJpbmc7XHJcbiAgdmFsaWRhdG9yPzogKHZhbHVlOiBhbnksIGZpZWxkOiBGaWVsZEl0ZW0pID0+IGJvb2xlYW47XHJcbiAgb25JbnB1dD86ICh2YWx1ZTogYW55LCBmaWVsZDogRmllbGRJdGVtLCAuLi5hcmdzOiBhbnlbXSkgPT4gdm9pZDtcclxuICBvbkNoYW5nZT86ICh2YWx1ZTogYW55LCBmaWVsZDogRmllbGRJdGVtLCAuLi5hcmdzOiBhbnlbXSkgPT4gdm9pZDtcclxuICBvbkZvY3VzPzogKGZpZWxkOiBGaWVsZEl0ZW0sIC4uLmFyZ3M6IGFueVtdKSA9PiB2b2lkO1xyXG4gIG9uQmx1cj86IChmaWVsZDogRmllbGRJdGVtLCAuLi5hcmdzOiBhbnlbXSkgPT4gdm9pZDtcclxufTtcclxuXHJcbmV4cG9ydCB0eXBlIFNlY3Rpb25JdGVtID0ge1xyXG4gIHNob3c/OiAoLi4uYXJnczogYW55W10pID0+IGJvb2xlYW47XHJcbiAgY3VzdG9tS2V5Pzogc3RyaW5nO1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgZmllbGRzOiBGaWVsZEl0ZW1bXTtcclxufTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBmaWx0ZXJTaG93U2VjdGlvbihzZWN0aW9uczogU2VjdGlvbkl0ZW1bXSkge1xyXG4gIHJldHVybiBzZWN0aW9uc1xyXG4gICAgLmZpbHRlcigoc2VjdGlvbikgPT4gIXNlY3Rpb24uc2hvdyB8fCBzZWN0aW9uLnNob3coKSlcclxuICAgIC5tYXAoKHNlY3Rpb24pID0+ICh7XHJcbiAgICAgIC4uLnNlY3Rpb24sXHJcbiAgICAgIGZpZWxkczogc2VjdGlvbi5maWVsZHMuZmlsdGVyKChmaWVsZCkgPT4gZmllbGQuc2hvdyB8fCBzZWN0aW9uLnNob3coKSksXHJcbiAgICB9KSk7XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBFbWFpbFBhdHRlcm4gPVxyXG4gIC9eKD89LnsxLDI1NH0kKSg/PS57MSw2NH1AKVthLXpBLVowLTkhIyQlJicqKy89P15fYHt8fX4tXSsoPzpcXC5bYS16QS1aMC05ISMkJSYnKisvPT9eX2B7fH1+LV0rKSpAW2EtekEtWjAtOV0oPzpbYS16QS1aMC05LV17MCw2MX1bYS16QS1aMC05XSk/KD86XFwuW2EtekEtWjAtOV0oPzpbYS16QS1aMC05LV17MCw2MX1bYS16QS1aMC05XSk/KSokLztcclxuIl19
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcmFpc2UtY29tbW9uLWxpYi9zcmMvbGliL2Zvcm0vZHJhd2VyLWZvcm0vY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTBDQSxNQUFNLFVBQVUsaUJBQWlCLENBQUMsUUFBdUI7SUFDdkQsT0FBTyxRQUFRO1NBQ1osTUFBTSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO1NBQ3BELEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNqQixHQUFHLE9BQU87UUFDVixNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7S0FDdEUsQ0FBQyxDQUFDLENBQUM7QUFDUixDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUN2QixvTUFBb00sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIEZpZWxkSXRlbSA9IHtcclxuICBzaG93PzogKC4uLmFyZ3M6IGFueVtdKSA9PiBib29sZWFuO1xyXG4gIGxhYmVsOiBzdHJpbmc7XHJcbiAgZm9ybUtleTogc3RyaW5nO1xyXG4gIGZpZWxkRm9ybVR5cGU6XHJcbiAgICB8IFwiUmFkaW9cIlxyXG4gICAgfCBcIkNoZWNrYm94XCJcclxuICAgIHwgXCJTd2l0Y2hcIlxyXG4gICAgfCBcIlRleHRcIlxyXG4gICAgfCBcIkVtYWlsXCJcclxuICAgIHwgXCJUZXh0YXJlYVwiXHJcbiAgICB8IFwiTnVtYmVyXCJcclxuICAgIHwgXCJUYWdzXCJcclxuICAgIHwgXCJBdXRvQ29tcGxldGVcIlxyXG4gICAgfCBcIkRyb3Bkb3duXCJcclxuICAgIHwgXCJNdWx0aVNlbGVjdFwiXHJcbiAgICB8IFwiRGF0ZXBpY2tlclwiXHJcbiAgICB8IFwiQ3VzdG9tXCI7XHJcbiAgb3B0aW9uS2V5Pzogc3RyaW5nO1xyXG4gIGdyb3VwS2V5Pzogc3RyaW5nO1xyXG4gIHJlcXVpcmVkPzogYm9vbGVhbjtcclxuICBkaXNhYmxlZD86IGJvb2xlYW4gfCAoKC4uLmFyZ3M6IGFueVtdKSA9PiBib29sZWFuKTtcclxuICBtYXhsZW5ndGg/OiBudW1iZXI7XHJcbiAgbWlubGVuZ3RoPzogbnVtYmVyO1xyXG4gIG1heD86IG51bWJlcjtcclxuICBtaW4/OiBudW1iZXI7XHJcbiAgZm9ybWF0Pzogc3RyaW5nIHwgZmFsc2U7XHJcbiAgdG9vbHRpcD86IHN0cmluZztcclxuICB2YWxpZGF0b3I/OiAodmFsdWU6IGFueSwgZmllbGQ6IEZpZWxkSXRlbSkgPT4gYm9vbGVhbjtcclxuICBvbklucHV0PzogKHZhbHVlOiBhbnksIGZpZWxkOiBGaWVsZEl0ZW0sIC4uLmFyZ3M6IGFueVtdKSA9PiB2b2lkO1xyXG4gIG9uQ2hhbmdlPzogKHZhbHVlOiBhbnksIGZpZWxkOiBGaWVsZEl0ZW0sIC4uLmFyZ3M6IGFueVtdKSA9PiB2b2lkO1xyXG4gIG9uRm9jdXM/OiAoZmllbGQ6IEZpZWxkSXRlbSwgLi4uYXJnczogYW55W10pID0+IHZvaWQ7XHJcbiAgb25CbHVyPzogKGZpZWxkOiBGaWVsZEl0ZW0sIC4uLmFyZ3M6IGFueVtdKSA9PiB2b2lkO1xyXG59O1xyXG5cclxuZXhwb3J0IHR5cGUgU2VjdGlvbkl0ZW0gPSB7XHJcbiAgc2hvdz86ICguLi5hcmdzOiBhbnlbXSkgPT4gYm9vbGVhbjtcclxuICBjdXN0b21LZXk/OiBzdHJpbmc7XHJcbiAgdGl0bGU6IHN0cmluZztcclxuICBmaWVsZHM6IEZpZWxkSXRlbVtdO1xyXG59O1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGZpbHRlclNob3dTZWN0aW9uKHNlY3Rpb25zOiBTZWN0aW9uSXRlbVtdKTogU2VjdGlvbkl0ZW1bXSB7XHJcbiAgcmV0dXJuIHNlY3Rpb25zXHJcbiAgICAuZmlsdGVyKChzZWN0aW9uKSA9PiAhc2VjdGlvbi5zaG93IHx8IHNlY3Rpb24uc2hvdygpKVxyXG4gICAgLm1hcCgoc2VjdGlvbikgPT4gKHtcclxuICAgICAgLi4uc2VjdGlvbixcclxuICAgICAgZmllbGRzOiBzZWN0aW9uLmZpZWxkcy5maWx0ZXIoKGZpZWxkKSA9PiAhZmllbGQuc2hvdyB8fCBmaWVsZC5zaG93KCkpLFxyXG4gICAgfSkpO1xyXG59XHJcblxyXG5leHBvcnQgY29uc3QgRW1haWxQYXR0ZXJuID1cclxuICAvXig/PS57MSwyNTR9JCkoPz0uezEsNjR9QClbYS16QS1aMC05ISMkJSYnKisvPT9eX2B7fH1+LV0rKD86XFwuW2EtekEtWjAtOSEjJCUmJyorLz0/Xl9ge3x9fi1dKykqQFthLXpBLVowLTldKD86W2EtekEtWjAtOS1dezAsNjF9W2EtekEtWjAtOV0pPyg/OlxcLlthLXpBLVowLTldKD86W2EtekEtWjAtOS1dezAsNjF9W2EtekEtWjAtOV0pPykqJC87XHJcbiJdfQ==
@@ -143,11 +143,11 @@ export class MultiTabComponent {
143
143
  }
144
144
  }
145
145
  }
146
- closeTab(idx, isExternal) {
146
+ closeTab(idx, noChange) {
147
147
  const tab = this.tabList[idx];
148
148
  this.tabList = this.tabList.filter((ele) => ele.url !== tab.url);
149
149
  this.clearCache(this.urlWithoutQuery(tab.url));
150
- if (!isExternal && this.selectedTab === idx) {
150
+ if (!noChange && this.selectedTab === idx) {
151
151
  const targetIdx = Math.max(0, idx - 1);
152
152
  this.changeTab(this.tabList[targetIdx], targetIdx);
153
153
  }
@@ -163,8 +163,8 @@ export class MultiTabComponent {
163
163
  if (tab.navigationInfo) {
164
164
  sessionStorage.setItem("navigationInfo", JSON.stringify(tab.navigationInfo));
165
165
  }
166
- if (tab.fromUrl) {
167
- sessionStorage.setItem("fromUrl", tab.fromUrl);
166
+ if (tab.fromInfo) {
167
+ sessionStorage.setItem("fromInfo", JSON.stringify(tab.fromInfo));
168
168
  }
169
169
  if (tab.permissions) {
170
170
  sessionStorage.setItem("permissions", JSON.stringify(tab.permissions));
@@ -179,7 +179,7 @@ export class MultiTabComponent {
179
179
  const localPermissions = sessionStorage.getItem("permissions") ||
180
180
  localStorage.getItem("permissions");
181
181
  const navigationInfo = JSON.parse(sessionStorage.getItem("navigationInfo"));
182
- const fromUrl = sessionStorage.getItem("fromUrl");
182
+ const fromInfo = JSON.parse(sessionStorage.getItem("fromInfo"));
183
183
  const permissions = JSON.parse(localPermissions);
184
184
  this.tabList.push({
185
185
  url: url,
@@ -187,7 +187,7 @@ export class MultiTabComponent {
187
187
  displayTitle: title,
188
188
  navigationInfo: navigationInfo,
189
189
  permissions: permissions,
190
- fromUrl: fromUrl,
190
+ fromInfo: fromInfo,
191
191
  });
192
192
  this.selectedTab = this.tabList.length - 1;
193
193
  this.setEllipsisTitle();
@@ -210,7 +210,9 @@ export class MultiTabComponent {
210
210
  if (targetTabUrl !== url || noReused) {
211
211
  // 当缓存一致时候,但是url不一致,重新按照新的url生成tab
212
212
  this.closeTab(isExistIdx, true);
213
- this.addTab(url, title);
213
+ setTimeout(() => {
214
+ this.addTab(url, title);
215
+ }, 30);
214
216
  }
215
217
  else {
216
218
  this.changeTab(this.tabList[isExistIdx], isExistIdx);
@@ -267,4 +269,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
267
269
  type: HostListener,
268
270
  args: ["window:resize", ["$event"]]
269
271
  }] } });
270
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcmFpc2UtY29tbW9uLWxpYi9zcmMvbGliL2xheW91dC9tdWx0aS10YWIvaW5kZXguY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcmFpc2UtY29tbW9uLWxpYi9zcmMvbGliL2xheW91dC9tdWx0aS10YWIvaW5kZXguY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTTtBQUNOLE9BQU8sRUFHTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFFTCxhQUFhLEdBR2QsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7QUFZeEMsTUFBTSxPQUFPLGlCQUFpQjtJQUVuQjtJQUNBO0lBQ0E7SUFDQztJQUNBO0lBQ0E7SUFOVixZQUNTLE1BQWMsRUFDZCxFQUF5QixFQUN6QixjQUE4QixFQUM3QixHQUFzQixFQUN0QixNQUFxQixFQUNyQixrQkFBc0M7UUFMdkMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLE9BQUUsR0FBRixFQUFFLENBQXVCO1FBQ3pCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM3QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ3JCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFFOUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsa0JBQXNDLENBQUM7SUFDL0QsQ0FBQztJQUNELFNBQVMsQ0FBbUI7SUFDbkIsZUFBZSxHQUFhLEVBQUUsQ0FBQyxDQUFDLFlBQVk7SUFDNUMsaUJBQWlCLEdBQWEsRUFBRSxDQUFDLENBQUMsWUFBWTtJ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Q0FBQyxDQUFDLFdBQVc7UUFDL0MsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDbkMsNEVBQTRFO1FBQzVFLDBEQUEwRDtRQUMxRCxNQUFNO0lBQ1IsQ0FBQztJQUVELFVBQVUsQ0FBQyxHQUFHO1FBQ1osSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxpQkFBaUI7UUFDakQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVELGFBQWE7UUFDWCxjQUFjLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsT0FBTztRQUM5QyxJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQyxDQUFDLFlBQVk7UUFDL0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUMsQ0FBQyxlQUFlO1FBQ3JDLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxpQkFBaUI7SUFDbkQsQ0FBQztJQUVPLGVBQWUsQ0FBQyxHQUFHO1FBQ3pCLE9BQU8sR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMzQixDQUFDO3dHQS9SVSxpQkFBaUI7NEZBQWpCLGlCQUFpQixxUEM5QjlCLHczREEwREE7OzRGRDVCYSxpQkFBaUI7a0JBTDdCLFNBQVM7K0JBQ0UsY0FBYzsyUEFnQmYsZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0ksWUFBWTtzQkFBckIsTUFBTTtnQkFjUCxRQUFRO3NCQURQLFlBQVk7dUJBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8g57uE5Lu257G7XHJcbmltcG9ydCB7XHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEhvc3RMaXN0ZW5lcixcclxuICBJbnB1dCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge1xyXG4gIEFjdGl2YXRlZFJvdXRlLFxyXG4gIE5hdmlnYXRpb25FbmQsXHJcbiAgUm91dGVyLFxyXG4gIFJvdXRlck91dGxldCxcclxufSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XHJcbmltcG9ydCB7IGZpbHRlciB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBSb3V0ZVJldXNlU3RyYXRlZ3kgfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XHJcbmltcG9ydCB7IENvbW1vbkZ1bmN0aW9uU2VydmljZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL2NvbW1vbi1mdW5jdGlvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IERyYXdlclNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZS9kcmF3ZXIuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBLZWVwQWxpdmVTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2Uva2VlcC1hbGl2ZS5zZXJ2aWNlXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJycy1tdWx0aS10YWJcIixcclxuICB0ZW1wbGF0ZVVybDogXCIuL2luZGV4LmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmxzOiBbXCIuL2luZGV4LmNvbXBvbmVudC5zY3NzXCJdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTXVsdGlUYWJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwdWJsaWMgY2Y6IENvbW1vbkZ1bmN0aW9uU2VydmljZSxcclxuICAgIHB1YmxpYyBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcbiAgICBwcml2YXRlIHJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIGRyYXdlcjogRHJhd2VyU2VydmljZSxcclxuICAgIHByaXZhdGUgcm91dGVSZXVzZVN0cmF0ZWd5OiBSb3V0ZVJldXNlU3RyYXRlZ3lcclxuICApIHtcclxuICAgIHRoaXMua2VlcEFsaXZlID0gdGhpcy5yb3V0ZVJldXNlU3RyYXRlZ3kgYXMgS2VlcEFsaXZlU2VydmljZTtcclxuICB9XHJcbiAga2VlcEFsaXZlOiBLZWVwQWxpdmVTZXJ2aWNlO1xyXG4gIEBJbnB1dCgpIHNpbmdsZVJldXNlVXJsczogc3RyaW5nW10gPSBbXTsgLy/lj6rog73ljZXkuKrnvJPlrZjnmoR1cmxcclxuICBASW5wdXQoKSBub0dlbmVyYXRlVGFiVXJsczogc3RyaW5nW10gPSBbXTsgLy/kuI3nlJ/miJB0YWLnmoR1cmxcclxuICBAT3V0cHV0KCkgb25SZWZyZXNoVGFiID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBwcml2YXRlIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XHJcbiAgVEFCX1dJRFRIID0gMTY0O1xyXG4gIEdBUF9OT1JNQUwgPSA1NDtcclxuICBHQVBfU01BTEwgPSAzMDtcclxuICB0ZXh0R2FwOyAvLyDmlofmnKzkuI7ovrnmoYbnmoTmgLvpl7Tot51cclxuICBmb286IFJvdXRlck91dGxldDtcclxuICBjb21SZWY6IGFueTtcclxuICB0YWJMaXN0ID0gW107XHJcbiAgc2VsZWN0ZWRUYWI6IG51bWJlciA9IDA7XHJcbiAgbWF4VGFiczogbnVtYmVyID0gMTA7XHJcbiAgc2NyZWVuV2lkdGg6IG51bWJlciA9IHdpbmRvdy5pbm5lcldpZHRoOyAvLyDliJ3lp4vljJblsY/luZXlrr3luqZcclxuICBASG9zdExpc3RlbmVyKFwid2luZG93OnJlc2l6ZVwiLCBbXCIkZXZlbnRcIl0pXHJcbiAgb25SZXNpemUoZXZlbnQpIHtcclxuICAgIHRoaXMuc2NyZWVuV2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aDsgLy8g5pu05paw5bGP5bmV5a695bqmXHJcbiAgICB0aGlzLnNldEVsbGlwc2lzVGl0bGUoKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5pbml0VGFiKCk7XHJcbiAgICAvLyDop6PlhrPliLfmlrDpobXpnaLlkI7vvIzpgInkuK3nmoQgdGFiIOS4ouWksemXrumimFxyXG4gICAgY29uc3QgaXNFeGlzdElkeCA9IHRoaXMudGFiTGlzdC5maW5kSW5kZXgoXHJcbiAgICAgIChlbGUpID0+XHJcbiAgICAgICAgdGhpcy51cmxXaXRob3V0UXVlcnkoZWxlLnVybCkgPT09IHRoaXMudXJsV2l0aG91dFF1ZXJ5KHRoaXMucm91dGVyLnVybClcclxuICAgICk7XHJcbiAgICBpZiAoaXNFeGlzdElkeCAhPT0gLTEpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZFRhYiA9IGlzRXhpc3RJZHg7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgIHRoaXMucm91dGVyLmV2ZW50c1xyXG4gICAgICAgIC5waXBlKGZpbHRlcigoZXZlbnQpID0+IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCkpXHJcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBuYXZpZ2F0aW9uID0gdGhpcy5yb3V0ZXIuZ2V0Q3VycmVudE5hdmlnYXRpb24oKTsgLy8g6I635Y+W5b2T5YmN5a+86IiqXHJcbiAgICAgICAgICBpZiAobmF2aWdhdGlvbikge1xyXG4gICAgICAgICAgICBjb25zdCB0b29sdGlwRWxlbWVudHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiLmUtcG9wdXAtb3BlblwiKTtcclxuICAgICAgICAgICAgLy8g5Yig6ZmkdG9vbHRpcHNcclxuICAgICAgICAgICAgdG9vbHRpcEVsZW1lbnRzLmZvckVhY2goKGVsZW1lbnQpID0+IHtcclxuICAgICAgICAgICAgICBjb25zdCBodG1sRWxlbWVudCA9IGVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICAgICAgICAgICAgaHRtbEVsZW1lbnQuc3R5bGUuZGlzcGxheSA9IFwibm9uZVwiO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgY29uc3Qgc3RhdGUgPSBuYXZpZ2F0aW9uLmV4dHJhcy5zdGF0ZTsgLy8g6I635Y+W5Lyg6YCS55qEIHN0YXRlXHJcbiAgICAgICAgICAgIGNvbnN0IHNraXBMb2NhdGlvbkNoYW5nZSA9IG5hdmlnYXRpb24uZXh0cmFzLnNraXBMb2NhdGlvbkNoYW5nZTsgLy8g6I635Y+W5piv5ZCm6Lez6L+HIGxvY2F0aW9uIGNoYW5nZVxyXG4gICAgICAgICAgICBjb25zdCBjdXJyZW50Um91dGUgPSB0aGlzLnJvdXRlci5yb3V0ZXJTdGF0ZS5yb290LmZpcnN0Q2hpbGQ7XHJcbiAgICAgICAgICAgIGNvbnN0IG5hdmlnYXRpb25JbmZvID0gSlNPTi5wYXJzZShcclxuICAgICAgICAgICAgICBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFwibmF2aWdhdGlvbkluZm9cIikgfHwgXCJ7fVwiXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIGxldCB0aXRsZSA9XHJcbiAgICAgICAgICAgICAgKHN0YXRlICYmIHN0YXRlLnRpdGxlKSB8fFxyXG4gICAgICAgICAgICAgIG5hdmlnYXRpb25JbmZvLnRpdGxlIHx8XHJcbiAgICAgICAgICAgICAgbmF2aWdhdGlvbkluZm8uc3ViVGl0bGUgfHxcclxuICAgICAgICAgICAgICBuYXZpZ2F0aW9uSW5mby5uYW1lO1xyXG5cclxuICAgICAgICAgICAgbGV0IG5vUmV1c2VkID0gKHN0YXRlICYmIHN0YXRlLm5vUmV1c2VkKSB8fCBmYWxzZTsgLy8g5b2T5YmNdGFi5LiN5aSN55So77yM5paw5byA5LiA5LiqdGFiLOW9k+acieW3sue7j+WtmOWcqOeahHRhYuaXtuWAmeS5n+aYr+aWsOW8gFxyXG4gICAgICAgICAgICBpZiAoY3VycmVudFJvdXRlICYmICFza2lwTG9jYXRpb25DaGFuZ2UpIHtcclxuICAgICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vR2VuZXJhdGVUYWJVcmxzLmluY2x1ZGVzKFxyXG4gICAgICAgICAgICAgICAgICB0aGlzLnVybFdpdGhvdXRRdWVyeSh0aGlzLnJvdXRlci51cmwpXHJcbiAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47IC8vIOaOkumZpOS4jeeUn+aIkHRhYueahHVybFxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB0aGlzLnNldFRhYihcclxuICAgICAgICAgICAgICAgIHRoaXMucm91dGVyLnVybCxcclxuICAgICAgICAgICAgICAgIGN1cnJlbnRSb3V0ZS5zbmFwc2hvdC5yb3V0ZUNvbmZpZy5wYXRoLFxyXG4gICAgICAgICAgICAgICAgdGl0bGUsXHJcbiAgICAgICAgICAgICAgICBub1JldXNlZFxyXG4gICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuc2V0RWxsaXBzaXNUaXRsZSgpO1xyXG4gICAgfSwgNTApO1xyXG4gIH1cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMudGFiTGlzdCA9IFtdOyAvLyDmuIXnqbogdGFiIOWIl+ihqFxyXG4gICAgdGhpcy5zZWxlY3RlZFRhYiA9IDA7IC8vIOmHjee9rumAieS4reeahCB0YWIg57Si5byVXHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaCgoc3ViKSA9PiBzdWIudW5zdWJzY3JpYmUoKSk7XHJcbiAgfVxyXG5cclxuICBzZXRFbGxpcHNpc1RpdGxlKHRpdGxlPykge1xyXG4gICAgdGhpcy50ZXh0R2FwID0gdGhpcy5HQVBfTk9STUFMO1xyXG4gICAgaWYgKHRoaXMuc2NyZWVuV2lkdGggPD0gMTEwMCkge1xyXG4gICAgICB0aGlzLnRleHRHYXAgPSB0aGlzLkdBUF9TTUFMTDtcclxuICAgIH1cclxuICAgIGxldCB7IGFsbFdpZHRoLCBsZWZ0V2lkdGgsIHJpZ2h0V2lkdGggfSA9IHRoaXMuY2FsY1RhYldpZHRoKCk7XHJcbiAgICBsZXQgd2lkdGggPSBNYXRoLmZsb29yKFxyXG4gICAgICAoYWxsV2lkdGggLSByaWdodFdpZHRoKSAvICh0aGlzLnRhYkxpc3QgJiYgdGhpcy50YWJMaXN0Lmxlbmd0aClcclxuICAgICk7XHJcbiAgICBpZiAodGl0bGUpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuY2Yuc2V0TWlkZGxlRWxsaXBzaXMoXHJcbiAgICAgICAgdGl0bGUsXHJcbiAgICAgICAgd2lkdGggPiB0aGlzLlRBQl9XSURUSFxyXG4gICAgICAgICAgPyB0aGlzLlRBQl9XSURUSCAtIHRoaXMudGV4dEdhcFxyXG4gICAgICAgICAgOiB3aWR0aCAtIHRoaXMudGV4dEdhcCxcclxuICAgICAgICAxMlxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy50YWJMaXN0LmZvckVhY2goKGVsZSwgaWR4KSA9PiB7XHJcbiAgICAgICAgZWxlLmRpc3BsYXlUaXRsZSA9IHRoaXMuY2Yuc2V0TWlkZGxlRWxsaXBzaXMoXHJcbiAgICAgICAgICBlbGUudGl0bGUsXHJcbiAgICAgICAgICB3aWR0aCA+IHRoaXMuVEFCX1dJRFRIXHJcbiAgICAgICAgICAgID8gdGhpcy5UQUJfV0lEVEggLSB0aGlzLnRleHRHYXBcclxuICAgICAgICAgICAgOiB3aWR0aCAtIHRoaXMudGV4dEdhcCxcclxuICAgICAgICAgIDEyXHJcbiAgICAgICAgKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjYWxjVGFiV2lkdGgoKSB7XHJcbiAgICBjb25zdCB3cmFwID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIi5ycy1tdWx0aS10YWJcIik7XHJcbiAgICBjb25zdCB1bEVsZW1lbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiLnJzLW11bHRpLXRhYiA+IHVsXCIpO1xyXG4gICAgY29uc3QgcmVmcmVzaFRhYkRpdiA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCIucnMtbXVsdGktdGFiIC5yZWZyZXNoLXRhYlwiKTtcclxuICAgIGxldCBhbGxXaWR0aDtcclxuICAgIGxldCBsZWZ0V2lkdGg7XHJcbiAgICBsZXQgcmlnaHRXaWR0aDtcclxuICAgIGlmICh3cmFwICYmIHVsRWxlbWVudCkge1xyXG4gICAgICAvLyDojrflj5blhYPntKDnmoTkvY3nva7kv6Hmga9cclxuICAgICAgY29uc3Qgd3JhcFJlY3QgPSB3cmFwLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgICBjb25zdCB1bFJlY3QgPSB1bEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICAgIGNvbnN0IHJlZnJlc2hUYWJSZWN0ID1cclxuICAgICAgICByZWZyZXNoVGFiRGl2ICYmIHJlZnJlc2hUYWJEaXYuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICAgIGFsbFdpZHRoID0gd3JhcFJlY3Qud2lkdGg7XHJcbiAgICAgIGxlZnRXaWR0aCA9IHVsUmVjdC53aWR0aDtcclxuICAgICAgcmlnaHRXaWR0aCA9IChyZWZyZXNoVGFiUmVjdCAmJiByZWZyZXNoVGFiUmVjdC53aWR0aCkgfHwgMTAwO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgYWxsV2lkdGgsXHJcbiAgICAgIGxlZnRXaWR0aCxcclxuICAgICAgcmlnaHRXaWR0aCxcclxuICAgIH07XHJcbiAgfVxyXG4gIGluaXRUYWIoKSB7XHJcbiAgICBsZXQgVGFiQ2FjaGUgPSBKU09OLnBhcnNlKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oXCJUYWJDYWNoZVwiKSk7XHJcbiAgICB0aGlzLnRhYkxpc3QgPSBUYWJDYWNoZSB8fCBbXTtcclxuICAgIGlmICh0aGlzLnRhYkxpc3QubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIGNvbnN0IHRpdGxlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShcImZpcnN0VGFiVGl0bGVcIik7XHJcbiAgICAgIGlmICh0aXRsZSkge1xyXG4gICAgICAgIHNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oXCJmaXJzdFRhYlRpdGxlXCIpO1xyXG4gICAgICAgIGNvbnN0IHVybCA9IHRoaXMucm91dGVyLnVybDtcclxuICAgICAgICB0aGlzLmFkZFRhYih1cmwsIHRpdGxlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2xvc2VUYWIoaWR4LCBpc0V4dGVybmFsPykge1xyXG4gICAgY29uc3QgdGFiID0gdGhpcy50YWJMaXN0W2lkeF07XHJcbiAgICB0aGlzLnRhYkxpc3QgPSB0aGlzLnRhYkxpc3QuZmlsdGVyKChlbGUpID0+IGVsZS51cmwgIT09IHRhYi51cmwpO1xyXG4gICAgdGhpcy5jbGVhckNhY2hlKHRoaXMudXJsV2l0aG91dFF1ZXJ5KHRhYi51cmwpKTtcclxuICAgIGlmICghaXNFeHRlcm5hbCAmJiB0aGlzLnNlbGVjdGVkVGFiID09PSBpZHgpIHtcclxuICAgICAgY29uc3QgdGFyZ2V0SWR4ID0gTWF0aC5tYXgoMCwgaWR4IC0gMSk7XHJcbiAgICAgIHRoaXMuY2hhbmdlVGFiKHRoaXMudGFiTGlzdFt0YXJnZXRJZHhdLCB0YXJnZXRJZHgpO1xyXG4gICAgfVxyXG4gICAgaWYgKGlkeCA8IHRoaXMuc2VsZWN0ZWRUYWIpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZFRhYiA9IHRoaXMuc2VsZWN0ZWRUYWIgLSAxOyAvLyDlpoLmnpzlhbPpl63nmoR0YWLlnKjlvZPliY3pgInkuK3nmoR0YWLkuYvliY3vvIzpgInkuK10YWLntKLlvJXlh48xXHJcbiAgICB9XHJcbiAgICB0aGlzLnNldEVsbGlwc2lzVGl0bGUoKTtcclxuICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oXCJUYWJDYWNoZVwiLCBKU09OLnN0cmluZ2lmeSh0aGlzLnRhYkxpc3QpKTtcclxuICAgIHRoaXMucmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gIH1cclxuXHJcbiAgY2hhbmdlVGFiKHRhYiwgaWR4KSB7XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKHRhYi51cmwpO1xyXG4gICAgaWYgKHRhYi5uYXZpZ2F0aW9uSW5mbykge1xyXG4gICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKFxyXG4gICAgICAgIFwibmF2aWdhdGlvbkluZm9cIixcclxuICAgICAgICBKU09OLnN0cmluZ2lmeSh0YWIubmF2aWdhdGlvbkluZm8pXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICBpZiAodGFiLmZyb21VcmwpIHtcclxuICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShcImZyb21VcmxcIiwgdGFiLmZyb21VcmwpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRhYi5wZXJtaXNzaW9ucykge1xyXG4gICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKFwicGVybWlzc2lvbnNcIiwgSlNPTi5zdHJpbmdpZnkodGFiLnBlcm1pc3Npb25zKSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNlbGVjdGVkVGFiID0gaWR4O1xyXG4gICAgdGhpcy5yZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgfVxyXG5cclxuICBhZGRUYWIodXJsLCB0aXRsZSkge1xyXG4gICAgaWYgKHRoaXMudGFiTGlzdC5sZW5ndGggPj0gdGhpcy5tYXhUYWJzKSB7XHJcbiAgICAgIHRoaXMuY2xvc2VUYWIoMSk7IC8vIOWIoOmZpOesrOS6jOS4qu+8jOesrOS4gOS4quWbuuWumlxyXG4gICAgfVxyXG4gICAgY29uc3QgbG9jYWxQZXJtaXNzaW9ucyA9XHJcbiAgICAgIHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oXCJwZXJtaXNzaW9uc1wiKSB8fFxyXG4gICAgICBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcInBlcm1pc3Npb25zXCIpO1xyXG4gICAgY29uc3QgbmF2aWdhdGlvbkluZm8gPSBKU09OLnBhcnNlKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oXCJuYXZpZ2F0aW9uSW5mb1wiKSk7XHJcbiAgICBjb25zdCBmcm9tVXJsID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShcImZyb21VcmxcIik7XHJcbiAgICBjb25zdCBwZXJtaXNzaW9ucyA9IEpTT04ucGFyc2UobG9jYWxQZXJtaXNzaW9ucyk7XHJcblxyXG4gICAgdGhpcy50YWJMaXN0LnB1c2goe1xyXG4gICAgICB1cmw6IHVybCxcclxuICAgICAgdGl0bGU6IHRpdGxlIHx8IFwiZGVmYXVsdFwiLFxyXG4gICAgICBkaXNwbGF5VGl0bGU6IHRpdGxlLFxyXG4gICAgICBuYXZpZ2F0aW9uSW5mbzogbmF2aWdhdGlvbkluZm8sXHJcbiAgICAgIHBlcm1pc3Npb25zOiBwZXJtaXNzaW9ucyxcclxuICAgICAgZnJvbVVybDogZnJvbVVybCxcclxuICAgIH0pO1xyXG4gICAgdGhpcy5zZWxlY3RlZFRhYiA9IHRoaXMudGFiTGlzdC5sZW5ndGggLSAxO1xyXG4gICAgdGhpcy5zZXRFbGxpcHNpc1RpdGxlKCk7XHJcbiAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKFwiVGFiQ2FjaGVcIiwgSlNPTi5zdHJpbmdpZnkodGhpcy50YWJMaXN0KSk7XHJcbiAgICB0aGlzLnJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRUYWIodXJsLCBwdXJlVXJsLCB0aXRsZSwgbm9SZXVzZWQpIHtcclxuICAgIGNvbnN0IGlzRXhpc3RJZHggPSB0aGlzLnRhYkxpc3QuZmluZEluZGV4KFxyXG4gICAgICAoZWxlKSA9PiB0aGlzLnVybFdpdGhvdXRRdWVyeShlbGUudXJsKSA9PT0gdGhpcy51cmxXaXRob3V0UXVlcnkodXJsKVxyXG4gICAgKTtcclxuICAgIGlmIChpc0V4aXN0SWR4ID09PSAtMSkge1xyXG4gICAgICBjb25zdCBzaW5nbGVJZHggPSB0aGlzLnNpbmdsZVJldXNlVXJscy5maW5kSW5kZXgoXHJcbiAgICAgICAgKGVsZSkgPT4gZWxlID09PSBwdXJlVXJsXHJcbiAgICAgICk7XHJcbiAgICAgIGlmIChzaW5nbGVJZHggIT09IC0xKSB7XHJcbiAgICAgICAgdGhpcy50YWJMaXN0ID0gdGhpcy50YWJMaXN0LmZpbHRlcihcclxuICAgICAgICAgIChlbGUpID0+ICFlbGUudXJsLmluY2x1ZGVzKHRoaXMuc2luZ2xlUmV1c2VVcmxzW3NpbmdsZUlkeF0pXHJcbiAgICAgICAgKTtcclxuICAgICAgICB0aGlzLmtlZXBBbGl2ZS5jbGVhckNhY2hlKHVybCk7XHJcbiAgICAgICAgdGhpcy5kcmF3ZXIuZGVsZXRlQ2FjaGUodXJsKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmFkZFRhYih1cmwsIHRpdGxlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IHRhcmdldFRhYlVybCA9IHRoaXMudGFiTGlzdFtpc0V4aXN0SWR4XS51cmw7XHJcbiAgICAgIGlmICh0YXJnZXRUYWJVcmwgIT09IHVybCB8fCBub1JldXNlZCkge1xyXG4gICAgICAgIC8vIOW9k+e8k+WtmOS4gOiHtOaXtuWAme+8jOS9huaYr3VybOS4jeS4gOiHtO+8jOmHjeaWsOaMieeFp+aWsOeahHVybOeUn+aIkHRhYlxyXG4gICAgICAgIHRoaXMuY2xvc2VUYWIoaXNFeGlzdElkeCwgdHJ1ZSk7XHJcbiAgICAgICAgdGhpcy5hZGRUYWIodXJsLCB0aXRsZSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5jaGFuZ2VUYWIodGhpcy50YWJMaXN0W2lzRXhpc3RJZHhdLCBpc0V4aXN0SWR4KTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICAgIH1cclxuICB9XHJcbiAgdGltZXIgPSBudWxsO1xyXG4gIHJlZnJlc2hUYWIoKSB7XHJcbiAgICBjb25zdCBsb2FkaW5nSWNvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwibG9hZGluZ0ljb25cIik7XHJcbiAgICBsb2FkaW5nSWNvbi5jbGFzc0xpc3QuYWRkKFwicmVmcmVzaC10YWItbG9hZGluZ1wiKTtcclxuICAgIGlmICh0aGlzLnRpbWVyKSB7XHJcbiAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy50aW1lcik7XHJcbiAgICB9XHJcbiAgICAvLyDmqKHmi5/liqDovb3ov4fnqIvvvIwx56eS5ZCO56e76Zmk5Yqo55S7XHJcbiAgICB0aGlzLnRpbWVyID0gc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIGxvYWRpbmdJY29uLmNsYXNzTGlzdC5yZW1vdmUoXCJyZWZyZXNoLXRhYi1sb2FkaW5nXCIpO1xyXG4gICAgICB0aGlzLnRpbWVyID0gbnVsbDtcclxuICAgIH0sIDE1MDApO1xyXG4gICAgLy8gdGhpcy5rZWVwQWxpdmUuY2xlYXJDYWNoZSh0aGlzLnRhYkxpc3RbdGhpcy5zZWxlY3RlZFRhYl0udXJsKTtcclxuICAgIC8vIHRoaXMuZHJhd2VyLmRlbGV0ZUNhY2hlKHRoaXMudGFiTGlzdFt0aGlzLnNlbGVjdGVkVGFiXS51cmwpO1xyXG4gICAgY29uc3QgY3VycmVudFVybCA9IHRoaXMucm91dGVyLnVybDsgLy8g6I635Y+W5b2T5YmNIFVSTFxyXG4gICAgdGhpcy5vblJlZnJlc2hUYWIuZW1pdChjdXJyZW50VXJsKTtcclxuICAgIC8vIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoXCIvXCIsIHsgc2tpcExvY2F0aW9uQ2hhbmdlOiB0cnVlIH0pLnRoZW4oKCkgPT4ge1xyXG4gICAgLy8gICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKGN1cnJlbnRVcmwpOyAvLyDph43mlrDlr7zoiKrliLDlvZPliY0gVVJMXHJcbiAgICAvLyB9KTtcclxuICB9XHJcblxyXG4gIGNsZWFyQ2FjaGUodXJsKSB7XHJcbiAgICB0aGlzLmtlZXBBbGl2ZS5jbGVhckNhY2hlKHVybCk7IC8vIOiwg+eUqOiHquWumuS5ieetlueVpeeahOa4hemZpOe8k+WtmOaWueazlVxyXG4gICAgdGhpcy5kcmF3ZXIuZGVsZXRlQ2FjaGUodXJsKTtcclxuICB9XHJcblxyXG4gIGNsZWFuQWxsQ2FjaGUoKSB7XHJcbiAgICBzZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKFwiVGFiQ2FjaGVcIik7IC8vIOa4hemZpOe8k+WtmFxyXG4gICAgdGhpcy50YWJMaXN0ID0gW107IC8vIOa4heepuiB0YWIg5YiX6KGoXHJcbiAgICB0aGlzLnNlbGVjdGVkVGFiID0gMDsgLy8g6YeN572u6YCJ5Lit55qEIHRhYiDntKLlvJVcclxuICAgIHRoaXMua2VlcEFsaXZlLmNsZWFyQWxsQ2FjaGUoKTsgLy8g6LCD55So6Ieq5a6a5LmJ562W55Wl55qE5riF6Zmk57yT5a2Y5pa55rOVXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHVybFdpdGhvdXRRdWVyeSh1cmwpIHtcclxuICAgIHJldHVybiB1cmwuc3BsaXQoXCI/XCIpWzBdO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwicnMtbXVsdGktdGFiXCIgW25nQ2xhc3NdPVwieyAnYi1saW5lJzogdGFiTGlzdC5sZW5ndGggPiAwIH1cIj5cclxuXHQ8dWw+XHJcblx0XHQ8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCB0YWIgb2YgdGFiTGlzdDsgbGV0IGkgPSBpbmRleFwiPlxyXG5cdFx0XHQ8bGlcclxuXHRcdFx0XHRbbmdDbGFzc109XCJzZWxlY3RlZFRhYiA9PT0gaSA/ICdpc1NlbGVjdCcgOiAnbm90U2VsZWN0J1wiXHJcblx0XHRcdFx0KGNsaWNrKT1cImNoYW5nZVRhYih0YWIsIGkpXCJcclxuXHRcdFx0PlxyXG5cdFx0XHRcdDxlanMtdG9vbHRpcFxyXG5cdFx0XHRcdFx0aWQ9XCJub3RTZWxlY3RUb29sdGlwXCJcclxuXHRcdFx0XHRcdFtzaG93VGlwUG9pbnRlcl09XCJmYWxzZVwiXHJcblx0XHRcdFx0XHRbb3BlbkRlbGF5XT1cIjUwMFwiXHJcblx0XHRcdFx0XHQqbmdJZj1cInRhYi5kaXNwbGF5VGl0bGUgIT09IHRhYi50aXRsZTsgZWxzZSBvcmlnaW5UZXh0XCJcclxuXHRcdFx0XHRcdHN0eWxlPVwiaGVpZ2h0OiAyN3B4XCJcclxuXHRcdFx0XHQ+XHJcblx0XHRcdFx0XHQ8bmctdGVtcGxhdGUgI2NvbnRlbnQ+XHJcblx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJ0b29sdGlwLWNvbnRlbnRcIj5cclxuXHRcdFx0XHRcdFx0XHR7eyB0YWIudGl0bGUgfX1cclxuXHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHQ8L25nLXRlbXBsYXRlPlxyXG5cdFx0XHRcdFx0PHNwYW4gY2xhc3M9XCJ0YWJUaXRsZVwiPnt7IHRhYi5kaXNwbGF5VGl0bGUgfX08L3NwYW4+XHJcblx0XHRcdFx0PC9lanMtdG9vbHRpcD5cclxuXHRcdFx0XHQ8bmctdGVtcGxhdGUgI29yaWdpblRleHQ+XHJcblx0XHRcdFx0XHQ8c3BhbiBjbGFzcz1cInRhYlRpdGxlXCI+XHJcblx0XHRcdFx0XHRcdHt7IHRhYi5kaXNwbGF5VGl0bGUgfX1cclxuXHRcdFx0XHRcdDwvc3Bhbj5cclxuXHRcdFx0XHQ8L25nLXRlbXBsYXRlPlxyXG5cdFx0XHRcdDxzcGFuXHJcblx0XHRcdFx0XHRjbGFzcz1cImltZy1ibG9ja1wiXHJcblx0XHRcdFx0XHQqbmdJZj1cInNlbGVjdGVkVGFiICE9PSBpICYmIGkgIT09IDBcIlxyXG5cdFx0XHRcdD48L3NwYW4+XHJcblx0XHRcdFx0PGltZ1xyXG5cdFx0XHRcdFx0Km5nSWY9XCJpICE9PSAwXCJcclxuXHRcdFx0XHRcdHNyYz1cIi4uLy4uLy4uL2Fzc2V0cy9pbWcvY2xvc2UtdXJsLnN2Z1wiXHJcblx0XHRcdFx0XHQoY2xpY2spPVwiY2xvc2VUYWIoaSlcIlxyXG5cdFx0XHRcdC8+XHJcblx0XHRcdDwvbGk+XHJcblx0XHQ8L25nLWNvbnRhaW5lcj5cclxuXHQ8L3VsPlxyXG5cdDxkaXYgY2xhc3M9XCJyZWZyZXNoLXRhYlwiIChjbGljayk9XCJyZWZyZXNoVGFiKClcIiAqbmdJZj1cInRhYkxpc3QubGVuZ3RoID4gMFwiPlxyXG5cdFx0PGVqcy10b29sdGlwXHJcblx0XHRcdGlkPVwibm90U2VsZWN0VG9vbHRpcFwiXHJcblx0XHRcdGNzc0NsYXNzPVwibm90U2VsZWN0VG9vbHRpcFwiXHJcblx0XHRcdFtzaG93VGlwUG9pbnRlcl09XCJmYWxzZVwiXHJcblx0XHRcdFtvcGVuRGVsYXldPVwiNTAwXCJcclxuXHRcdFx0c3R5bGU9XCJoZWlnaHQ6IDI3cHhcIlxyXG5cdFx0PlxyXG5cdFx0XHQ8bmctdGVtcGxhdGUgI2NvbnRlbnQ+XHJcblx0XHRcdFx0PGRpdiBjbGFzcz1cInRvb2x0aXAtY29udGVudFwiPlJlZnJlc2ggQ3VycmVudCBUYWI8L2Rpdj5cclxuXHRcdFx0PC9uZy10ZW1wbGF0ZT5cclxuXHRcdFx0PGltZ1xyXG5cdFx0XHRcdGlkPVwibG9hZGluZ0ljb25cIlxyXG5cdFx0XHRcdGFsdFxyXG5cdFx0XHRcdGNsYXNzPVwicmVmcmVzaC1idG5cIlxyXG5cdFx0XHRcdHNyYz1cIi4uLy4uLy4uL2Fzc2V0cy9pbWcvZGVza3RvcC1yZWZyZXNoLWJ0bi5zdmdcIlxyXG5cdFx0XHQvPlxyXG5cdFx0PC9lanMtdG9vbHRpcD5cclxuXHQ8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
272
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcmFpc2UtY29tbW9uLWxpYi9zcmMvbGliL2xheW91dC9tdWx0aS10YWIvaW5kZXguY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcmFpc2UtY29tbW9uLWxpYi9zcmMvbGliL2xheW91dC9tdWx0aS10YWIvaW5kZXguY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTTtBQUNOLE9BQU8sRUFHTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFFTCxhQUFhLEdBR2QsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7QUFZeEMsTUFBTSxPQUFPLGlCQUFpQjtJQUVuQjtJQUNBO0lBQ0E7SUFDQztJQUNBO0lBQ0E7SUFOVixZQUNTLE1BQWMsRUFDZCxFQUF5QixFQUN6QixjQUE4QixFQUM3QixHQUFzQixFQUN0QixNQUFxQixFQUNyQixrQkFBc0M7UUFMdkMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLE9BQUUsR0FBRixFQUFFLENBQXVCO1FBQ3pCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM3QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ3JCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFFOUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsa0JBQXNDLENBQUM7SUFDL0QsQ0FBQztJQUNELFNBQVMsQ0FBbUI7SUFDbkIsZUFBZSxHQUFhLEVBQUUsQ0FBQyxDQUFDLFlBQVk7SUFDNUMsaUJBQWlCLEdBQWEsRUFBRSxDQUFDLENBQUMsWUFBWTtJ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Ly8g57uE5Lu257G7XHJcbmltcG9ydCB7XHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEhvc3RMaXN0ZW5lcixcclxuICBJbnB1dCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge1xyXG4gIEFjdGl2YXRlZFJvdXRlLFxyXG4gIE5hdmlnYXRpb25FbmQsXHJcbiAgUm91dGVyLFxyXG4gIFJvdXRlck91dGxldCxcclxufSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XHJcbmltcG9ydCB7IGZpbHRlciB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBSb3V0ZVJldXNlU3RyYXRlZ3kgfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XHJcbmltcG9ydCB7IENvbW1vbkZ1bmN0aW9uU2VydmljZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL2NvbW1vbi1mdW5jdGlvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IERyYXdlclNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZS9kcmF3ZXIuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBLZWVwQWxpdmVTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2Uva2VlcC1hbGl2ZS5zZXJ2aWNlXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJycy1tdWx0aS10YWJcIixcclxuICB0ZW1wbGF0ZVVybDogXCIuL2luZGV4LmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmxzOiBbXCIuL2luZGV4LmNvbXBvbmVudC5zY3NzXCJdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTXVsdGlUYWJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwdWJsaWMgY2Y6IENvbW1vbkZ1bmN0aW9uU2VydmljZSxcclxuICAgIHB1YmxpYyBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcbiAgICBwcml2YXRlIHJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIGRyYXdlcjogRHJhd2VyU2VydmljZSxcclxuICAgIHByaXZhdGUgcm91dGVSZXVzZVN0cmF0ZWd5OiBSb3V0ZVJldXNlU3RyYXRlZ3lcclxuICApIHtcclxuICAgIHRoaXMua2VlcEFsaXZlID0gdGhpcy5yb3V0ZVJldXNlU3RyYXRlZ3kgYXMgS2VlcEFsaXZlU2VydmljZTtcclxuICB9XHJcbiAga2VlcEFsaXZlOiBLZWVwQWxpdmVTZXJ2aWNlO1xyXG4gIEBJbnB1dCgpIHNpbmdsZVJldXNlVXJsczogc3RyaW5nW10gPSBbXTsgLy/lj6rog73ljZXkuKrnvJPlrZjnmoR1cmxcclxuICBASW5wdXQoKSBub0dlbmVyYXRlVGFiVXJsczogc3RyaW5nW10gPSBbXTsgLy/kuI3nlJ/miJB0YWLnmoR1cmxcclxuICBAT3V0cHV0KCkgb25SZWZyZXNoVGFiID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBwcml2YXRlIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XHJcbiAgVEFCX1dJRFRIID0gMTY0O1xyXG4gIEdBUF9OT1JNQUwgPSA1NDtcclxuICBHQVBfU01BTEwgPSAzMDtcclxuICB0ZXh0R2FwOyAvLyDmlofmnKzkuI7ovrnmoYbnmoTmgLvpl7Tot51cclxuICBmb286IFJvdXRlck91dGxldDtcclxuICBjb21SZWY6IGFueTtcclxuICB0YWJMaXN0ID0gW107XHJcbiAgc2VsZWN0ZWRUYWI6IG51bWJlciA9IDA7XHJcbiAgbWF4VGFiczogbnVtYmVyID0gMTA7XHJcbiAgc2NyZWVuV2lkdGg6IG51bWJlciA9IHdpbmRvdy5pbm5lcldpZHRoOyAvLyDliJ3lp4vljJblsY/luZXlrr3luqZcclxuICBASG9zdExpc3RlbmVyKFwid2luZG93OnJlc2l6ZVwiLCBbXCIkZXZlbnRcIl0pXHJcbiAgb25SZXNpemUoZXZlbnQpIHtcclxuICAgIHRoaXMuc2NyZWVuV2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aDsgLy8g5pu05paw5bGP5bmV5a695bqmXHJcbiAgICB0aGlzLnNldEVsbGlwc2lzVGl0bGUoKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5pbml0VGFiKCk7XHJcbiAgICAvLyDop6PlhrPliLfmlrDpobXpnaLlkI7vvIzpgInkuK3nmoQgdGFiIOS4ouWksemXrumimFxyXG4gICAgY29uc3QgaXNFeGlzdElkeCA9IHRoaXMudGFiTGlzdC5maW5kSW5kZXgoXHJcbiAgICAgIChlbGUpID0+XHJcbiAgICAgICAgdGhpcy51cmxXaXRob3V0UXVlcnkoZWxlLnVybCkgPT09IHRoaXMudXJsV2l0aG91dFF1ZXJ5KHRoaXMucm91dGVyLnVybClcclxuICAgICk7XHJcbiAgICBpZiAoaXNFeGlzdElkeCAhPT0gLTEpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZFRhYiA9IGlzRXhpc3RJZHg7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgIHRoaXMucm91dGVyLmV2ZW50c1xyXG4gICAgICAgIC5waXBlKGZpbHRlcigoZXZlbnQpID0+IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCkpXHJcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBuYXZpZ2F0aW9uID0gdGhpcy5yb3V0ZXIuZ2V0Q3VycmVudE5hdmlnYXRpb24oKTsgLy8g6I635Y+W5b2T5YmN5a+86IiqXHJcbiAgICAgICAgICBpZiAobmF2aWdhdGlvbikge1xyXG4gICAgICAgICAgICBjb25zdCB0b29sdGlwRWxlbWVudHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiLmUtcG9wdXAtb3BlblwiKTtcclxuICAgICAgICAgICAgLy8g5Yig6ZmkdG9vbHRpcHNcclxuICAgICAgICAgICAgdG9vbHRpcEVsZW1lbnRzLmZvckVhY2goKGVsZW1lbnQpID0+IHtcclxuICAgICAgICAgICAgICBjb25zdCBodG1sRWxlbWVudCA9IGVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICAgICAgICAgICAgaHRtbEVsZW1lbnQuc3R5bGUuZGlzcGxheSA9IFwibm9uZVwiO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgY29uc3Qgc3RhdGUgPSBuYXZpZ2F0aW9uLmV4dHJhcy5zdGF0ZTsgLy8g6I635Y+W5Lyg6YCS55qEIHN0YXRlXHJcbiAgICAgICAgICAgIGNvbnN0IHNraXBMb2NhdGlvbkNoYW5nZSA9IG5hdmlnYXRpb24uZXh0cmFzLnNraXBMb2NhdGlvbkNoYW5nZTsgLy8g6I635Y+W5piv5ZCm6Lez6L+HIGxvY2F0aW9uIGNoYW5nZVxyXG4gICAgICAgICAgICBjb25zdCBjdXJyZW50Um91dGUgPSB0aGlzLnJvdXRlci5yb3V0ZXJTdGF0ZS5yb290LmZpcnN0Q2hpbGQ7XHJcbiAgICAgICAgICAgIGNvbnN0IG5hdmlnYXRpb25JbmZvID0gSlNPTi5wYXJzZShcclxuICAgICAgICAgICAgICBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFwibmF2aWdhdGlvbkluZm9cIikgfHwgXCJ7fVwiXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIGxldCB0aXRsZSA9XHJcbiAgICAgICAgICAgICAgKHN0YXRlICYmIHN0YXRlLnRpdGxlKSB8fFxyXG4gICAgICAgICAgICAgIG5hdmlnYXRpb25JbmZvLnRpdGxlIHx8XHJcbiAgICAgICAgICAgICAgbmF2aWdhdGlvbkluZm8uc3ViVGl0bGUgfHxcclxuICAgICAgICAgICAgICBuYXZpZ2F0aW9uSW5mby5uYW1lO1xyXG5cclxuICAgICAgICAgICAgbGV0IG5vUmV1c2VkID0gKHN0YXRlICYmIHN0YXRlLm5vUmV1c2VkKSB8fCBmYWxzZTsgLy8g5b2T5YmNdGFi5LiN5aSN55So77yM5paw5byA5LiA5LiqdGFiLOW9k+acieW3sue7j+WtmOWcqOeahHRhYuaXtuWAmeS5n+aYr+aWsOW8gFxyXG4gICAgICAgICAgICBpZiAoY3VycmVudFJvdXRlICYmICFza2lwTG9jYXRpb25DaGFuZ2UpIHtcclxuICAgICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vR2VuZXJhdGVUYWJVcmxzLmluY2x1ZGVzKFxyXG4gICAgICAgICAgICAgICAgICB0aGlzLnVybFdpdGhvdXRRdWVyeSh0aGlzLnJvdXRlci51cmwpXHJcbiAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47IC8vIOaOkumZpOS4jeeUn+aIkHRhYueahHVybFxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB0aGlzLnNldFRhYihcclxuICAgICAgICAgICAgICAgIHRoaXMucm91dGVyLnVybCxcclxuICAgICAgICAgICAgICAgIGN1cnJlbnRSb3V0ZS5zbmFwc2hvdC5yb3V0ZUNvbmZpZy5wYXRoLFxyXG4gICAgICAgICAgICAgICAgdGl0bGUsXHJcbiAgICAgICAgICAgICAgICBub1JldXNlZFxyXG4gICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuc2V0RWxsaXBzaXNUaXRsZSgpO1xyXG4gICAgfSwgNTApO1xyXG4gIH1cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMudGFiTGlzdCA9IFtdOyAvLyDmuIXnqbogdGFiIOWIl+ihqFxyXG4gICAgdGhpcy5zZWxlY3RlZFRhYiA9IDA7IC8vIOmHjee9rumAieS4reeahCB0YWIg57Si5byVXHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaCgoc3ViKSA9PiBzdWIudW5zdWJzY3JpYmUoKSk7XHJcbiAgfVxyXG5cclxuICBzZXRFbGxpcHNpc1RpdGxlKHRpdGxlPykge1xyXG4gICAgdGhpcy50ZXh0R2FwID0gdGhpcy5HQVBfTk9STUFMO1xyXG4gICAgaWYgKHRoaXMuc2NyZWVuV2lkdGggPD0gMTEwMCkge1xyXG4gICAgICB0aGlzLnRleHRHYXAgPSB0aGlzLkdBUF9TTUFMTDtcclxuICAgIH1cclxuICAgIGxldCB7IGFsbFdpZHRoLCBsZWZ0V2lkdGgsIHJpZ2h0V2lkdGggfSA9IHRoaXMuY2FsY1RhYldpZHRoKCk7XHJcbiAgICBsZXQgd2lkdGggPSBNYXRoLmZsb29yKFxyXG4gICAgICAoYWxsV2lkdGggLSByaWdodFdpZHRoKSAvICh0aGlzLnRhYkxpc3QgJiYgdGhpcy50YWJMaXN0Lmxlbmd0aClcclxuICAgICk7XHJcbiAgICBpZiAodGl0bGUpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuY2Yuc2V0TWlkZGxlRWxsaXBzaXMoXHJcbiAgICAgICAgdGl0bGUsXHJcbiAgICAgICAgd2lkdGggPiB0aGlzLlRBQl9XSURUSFxyXG4gICAgICAgICAgPyB0aGlzLlRBQl9XSURUSCAtIHRoaXMudGV4dEdhcFxyXG4gICAgICAgICAgOiB3aWR0aCAtIHRoaXMudGV4dEdhcCxcclxuICAgICAgICAxMlxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy50YWJMaXN0LmZvckVhY2goKGVsZSwgaWR4KSA9PiB7XHJcbiAgICAgICAgZWxlLmRpc3BsYXlUaXRsZSA9IHRoaXMuY2Yuc2V0TWlkZGxlRWxsaXBzaXMoXHJcbiAgICAgICAgICBlbGUudGl0bGUsXHJcbiAgICAgICAgICB3aWR0aCA+IHRoaXMuVEFCX1dJRFRIXHJcbiAgICAgICAgICAgID8gdGhpcy5UQUJfV0lEVEggLSB0aGlzLnRleHRHYXBcclxuICAgICAgICAgICAgOiB3aWR0aCAtIHRoaXMudGV4dEdhcCxcclxuICAgICAgICAgIDEyXHJcbiAgICAgICAgKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjYWxjVGFiV2lkdGgoKSB7XHJcbiAgICBjb25zdCB3cmFwID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIi5ycy1tdWx0aS10YWJcIik7XHJcbiAgICBjb25zdCB1bEVsZW1lbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiLnJzLW11bHRpLXRhYiA+IHVsXCIpO1xyXG4gICAgY29uc3QgcmVmcmVzaFRhYkRpdiA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCIucnMtbXVsdGktdGFiIC5yZWZyZXNoLXRhYlwiKTtcclxuICAgIGxldCBhbGxXaWR0aDtcclxuICAgIGxldCBsZWZ0V2lkdGg7XHJcbiAgICBsZXQgcmlnaHRXaWR0aDtcclxuICAgIGlmICh3cmFwICYmIHVsRWxlbWVudCkge1xyXG4gICAgICAvLyDojrflj5blhYPntKDnmoTkvY3nva7kv6Hmga9cclxuICAgICAgY29uc3Qgd3JhcFJlY3QgPSB3cmFwLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgICBjb25zdCB1bFJlY3QgPSB1bEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICAgIGNvbnN0IHJlZnJlc2hUYWJSZWN0ID1cclxuICAgICAgICByZWZyZXNoVGFiRGl2ICYmIHJlZnJlc2hUYWJEaXYuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICAgIGFsbFdpZHRoID0gd3JhcFJlY3Qud2lkdGg7XHJcbiAgICAgIGxlZnRXaWR0aCA9IHVsUmVjdC53aWR0aDtcclxuICAgICAgcmlnaHRXaWR0aCA9IChyZWZyZXNoVGFiUmVjdCAmJiByZWZyZXNoVGFiUmVjdC53aWR0aCkgfHwgMTAwO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgYWxsV2lkdGgsXHJcbiAgICAgIGxlZnRXaWR0aCxcclxuICAgICAgcmlnaHRXaWR0aCxcclxuICAgIH07XHJcbiAgfVxyXG4gIGluaXRUYWIoKSB7XHJcbiAgICBsZXQgVGFiQ2FjaGUgPSBKU09OLnBhcnNlKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oXCJUYWJDYWNoZVwiKSk7XHJcbiAgICB0aGlzLnRhYkxpc3QgPSBUYWJDYWNoZSB8fCBbXTtcclxuICAgIGlmICh0aGlzLnRhYkxpc3QubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIGNvbnN0IHRpdGxlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShcImZpcnN0VGFiVGl0bGVcIik7XHJcbiAgICAgIGlmICh0aXRsZSkge1xyXG4gICAgICAgIHNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oXCJmaXJzdFRhYlRpdGxlXCIpO1xyXG4gICAgICAgIGNvbnN0IHVybCA9IHRoaXMucm91dGVyLnVybDtcclxuICAgICAgICB0aGlzLmFkZFRhYih1cmwsIHRpdGxlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2xvc2VUYWIoaWR4LCBub0NoYW5nZT8pIHtcclxuICAgIGNvbnN0IHRhYiA9IHRoaXMudGFiTGlzdFtpZHhdO1xyXG4gICAgdGhpcy50YWJMaXN0ID0gdGhpcy50YWJMaXN0LmZpbHRlcigoZWxlKSA9PiBlbGUudXJsICE9PSB0YWIudXJsKTtcclxuICAgIHRoaXMuY2xlYXJDYWNoZSh0aGlzLnVybFdpdGhvdXRRdWVyeSh0YWIudXJsKSk7XHJcbiAgICBpZiAoIW5vQ2hhbmdlICYmIHRoaXMuc2VsZWN0ZWRUYWIgPT09IGlkeCkge1xyXG4gICAgICBjb25zdCB0YXJnZXRJZHggPSBNYXRoLm1heCgwLCBpZHggLSAxKTtcclxuICAgICAgdGhpcy5jaGFuZ2VUYWIodGhpcy50YWJMaXN0W3RhcmdldElkeF0sIHRhcmdldElkeCk7XHJcbiAgICB9XHJcbiAgICBpZiAoaWR4IDwgdGhpcy5zZWxlY3RlZFRhYikge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkVGFiID0gdGhpcy5zZWxlY3RlZFRhYiAtIDE7IC8vIOWmguaenOWFs+mXreeahHRhYuWcqOW9k+WJjemAieS4reeahHRhYuS5i+WJje+8jOmAieS4rXRhYue0ouW8leWHjzFcclxuICAgIH1cclxuICAgIHRoaXMuc2V0RWxsaXBzaXNUaXRsZSgpO1xyXG4gICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShcIlRhYkNhY2hlXCIsIEpTT04uc3RyaW5naWZ5KHRoaXMudGFiTGlzdCkpO1xyXG4gICAgdGhpcy5yZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgfVxyXG5cclxuICBjaGFuZ2VUYWIodGFiLCBpZHgpIHtcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwodGFiLnVybCk7XHJcbiAgICBpZiAodGFiLm5hdmlnYXRpb25JbmZvKSB7XHJcbiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oXHJcbiAgICAgICAgXCJuYXZpZ2F0aW9uSW5mb1wiLFxyXG4gICAgICAgIEpTT04uc3RyaW5naWZ5KHRhYi5uYXZpZ2F0aW9uSW5mbylcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIGlmICh0YWIuZnJvbUluZm8pIHtcclxuICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShcImZyb21JbmZvXCIsIEpTT04uc3RyaW5naWZ5KHRhYi5mcm9tSW5mbykpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRhYi5wZXJtaXNzaW9ucykge1xyXG4gICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKFwicGVybWlzc2lvbnNcIiwgSlNPTi5zdHJpbmdpZnkodGFiLnBlcm1pc3Npb25zKSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNlbGVjdGVkVGFiID0gaWR4O1xyXG4gICAgdGhpcy5yZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgfVxyXG5cclxuICBhZGRUYWIodXJsLCB0aXRsZSkge1xyXG4gICAgaWYgKHRoaXMudGFiTGlzdC5sZW5ndGggPj0gdGhpcy5tYXhUYWJzKSB7XHJcbiAgICAgIHRoaXMuY2xvc2VUYWIoMSk7IC8vIOWIoOmZpOesrOS6jOS4qu+8jOesrOS4gOS4quWbuuWumlxyXG4gICAgfVxyXG4gICAgY29uc3QgbG9jYWxQZXJtaXNzaW9ucyA9XHJcbiAgICAgIHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oXCJwZXJtaXNzaW9uc1wiKSB8fFxyXG4gICAgICBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcInBlcm1pc3Npb25zXCIpO1xyXG4gICAgY29uc3QgbmF2aWdhdGlvbkluZm8gPSBKU09OLnBhcnNlKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oXCJuYXZpZ2F0aW9uSW5mb1wiKSk7XHJcbiAgICBjb25zdCBmcm9tSW5mbyA9IEpTT04ucGFyc2Uoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShcImZyb21JbmZvXCIpKTtcclxuICAgIGNvbnN0IHBlcm1pc3Npb25zID0gSlNPTi5wYXJzZShsb2NhbFBlcm1pc3Npb25zKTtcclxuXHJcbiAgICB0aGlzLnRhYkxpc3QucHVzaCh7XHJcbiAgICAgIHVybDogdXJsLFxyXG4gICAgICB0aXRsZTogdGl0bGUgfHwgXCJkZWZhdWx0XCIsXHJcbiAgICAgIGRpc3BsYXlUaXRsZTogdGl0bGUsXHJcbiAgICAgIG5hdmlnYXRpb25JbmZvOiBuYXZpZ2F0aW9uSW5mbyxcclxuICAgICAgcGVybWlzc2lvbnM6IHBlcm1pc3Npb25zLFxyXG4gICAgICBmcm9tSW5mbzogZnJvbUluZm8sXHJcbiAgICB9KTtcclxuICAgIHRoaXMuc2VsZWN0ZWRUYWIgPSB0aGlzLnRhYkxpc3QubGVuZ3RoIC0gMTtcclxuICAgIHRoaXMuc2V0RWxsaXBzaXNUaXRsZSgpO1xyXG4gICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShcIlRhYkNhY2hlXCIsIEpTT04uc3RyaW5naWZ5KHRoaXMudGFiTGlzdCkpO1xyXG4gICAgdGhpcy5yZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0VGFiKHVybCwgcHVyZVVybCwgdGl0bGUsIG5vUmV1c2VkKSB7XHJcbiAgICBjb25zdCBpc0V4aXN0SWR4ID0gdGhpcy50YWJMaXN0LmZpbmRJbmRleChcclxuICAgICAgKGVsZSkgPT4gdGhpcy51cmxXaXRob3V0UXVlcnkoZWxlLnVybCkgPT09IHRoaXMudXJsV2l0aG91dFF1ZXJ5KHVybClcclxuICAgICk7XHJcbiAgICBpZiAoaXNFeGlzdElkeCA9PT0gLTEpIHtcclxuICAgICAgY29uc3Qgc2luZ2xlSWR4ID0gdGhpcy5zaW5nbGVSZXVzZVVybHMuZmluZEluZGV4KFxyXG4gICAgICAgIChlbGUpID0+IGVsZSA9PT0gcHVyZVVybFxyXG4gICAgICApO1xyXG4gICAgICBpZiAoc2luZ2xlSWR4ICE9PSAtMSkge1xyXG4gICAgICAgIHRoaXMudGFiTGlzdCA9IHRoaXMudGFiTGlzdC5maWx0ZXIoXHJcbiAgICAgICAgICAoZWxlKSA9PiAhZWxlLnVybC5pbmNsdWRlcyh0aGlzLnNpbmdsZVJldXNlVXJsc1tzaW5nbGVJZHhdKVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgdGhpcy5rZWVwQWxpdmUuY2xlYXJDYWNoZSh1cmwpO1xyXG4gICAgICAgIHRoaXMuZHJhd2VyLmRlbGV0ZUNhY2hlKHVybCk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5hZGRUYWIodXJsLCB0aXRsZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCB0YXJnZXRUYWJVcmwgPSB0aGlzLnRhYkxpc3RbaXNFeGlzdElkeF0udXJsO1xyXG4gICAgICBpZiAodGFyZ2V0VGFiVXJsICE9PSB1cmwgfHwgbm9SZXVzZWQpIHtcclxuICAgICAgICAvLyDlvZPnvJPlrZjkuIDoh7Tml7blgJnvvIzkvYbmmK91cmzkuI3kuIDoh7TvvIzph43mlrDmjInnhafmlrDnmoR1cmznlJ/miJB0YWJcclxuICAgICAgICB0aGlzLmNsb3NlVGFiKGlzRXhpc3RJZHgsIHRydWUpO1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5hZGRUYWIodXJsLCB0aXRsZSk7XHJcbiAgICAgICAgfSwgMzApO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuY2hhbmdlVGFiKHRoaXMudGFiTGlzdFtpc0V4aXN0SWR4XSwgaXNFeGlzdElkeCk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5yZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHRpbWVyID0gbnVsbDtcclxuICByZWZyZXNoVGFiKCkge1xyXG4gICAgY29uc3QgbG9hZGluZ0ljb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcImxvYWRpbmdJY29uXCIpO1xyXG4gICAgbG9hZGluZ0ljb24uY2xhc3NMaXN0LmFkZChcInJlZnJlc2gtdGFiLWxvYWRpbmdcIik7XHJcbiAgICBpZiAodGhpcy50aW1lcikge1xyXG4gICAgICBjbGVhckludGVydmFsKHRoaXMudGltZXIpO1xyXG4gICAgfVxyXG4gICAgLy8g5qih5ouf5Yqg6L296L+H56iL77yMMeenkuWQjuenu+mZpOWKqOeUu1xyXG4gICAgdGhpcy50aW1lciA9IHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBsb2FkaW5nSWNvbi5jbGFzc0xpc3QucmVtb3ZlKFwicmVmcmVzaC10YWItbG9hZGluZ1wiKTtcclxuICAgICAgdGhpcy50aW1lciA9IG51bGw7XHJcbiAgICB9LCAxNTAwKTtcclxuICAgIC8vIHRoaXMua2VlcEFsaXZlLmNsZWFyQ2FjaGUodGhpcy50YWJMaXN0W3RoaXMuc2VsZWN0ZWRUYWJdLnVybCk7XHJcbiAgICAvLyB0aGlzLmRyYXdlci5kZWxldGVDYWNoZSh0aGlzLnRhYkxpc3RbdGhpcy5zZWxlY3RlZFRhYl0udXJsKTtcclxuICAgIGNvbnN0IGN1cnJlbnRVcmwgPSB0aGlzLnJvdXRlci51cmw7IC8vIOiOt+WPluW9k+WJjSBVUkxcclxuICAgIHRoaXMub25SZWZyZXNoVGFiLmVtaXQoY3VycmVudFVybCk7XHJcbiAgICAvLyB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKFwiL1wiLCB7IHNraXBMb2NhdGlvbkNoYW5nZTogdHJ1ZSB9KS50aGVuKCgpID0+IHtcclxuICAgIC8vICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChjdXJyZW50VXJsKTsgLy8g6YeN5paw5a+86Iiq5Yiw5b2T5YmNIFVSTFxyXG4gICAgLy8gfSk7XHJcbiAgfVxyXG5cclxuICBjbGVhckNhY2hlKHVybCkge1xyXG4gICAgdGhpcy5rZWVwQWxpdmUuY2xlYXJDYWNoZSh1cmwpOyAvLyDosIPnlKjoh6rlrprkuYnnrZbnlaXnmoTmuIXpmaTnvJPlrZjmlrnms5VcclxuICAgIHRoaXMuZHJhd2VyLmRlbGV0ZUNhY2hlKHVybCk7XHJcbiAgfVxyXG4gIGNsZWFuQWxsQ2FjaGUoKSB7XHJcbiAgICBzZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKFwiVGFiQ2FjaGVcIik7IC8vIOa4hemZpOe8k+WtmFxyXG4gICAgdGhpcy50YWJMaXN0ID0gW107IC8vIOa4heepuiB0YWIg5YiX6KGoXHJcbiAgICB0aGlzLnNlbGVjdGVkVGFiID0gMDsgLy8g6YeN572u6YCJ5Lit55qEIHRhYiDntKLlvJVcclxuICAgIHRoaXMua2VlcEFsaXZlLmNsZWFyQWxsQ2FjaGUoKTsgLy8g6LCD55So6Ieq5a6a5LmJ562W55Wl55qE5riF6Zmk57yT5a2Y5pa55rOVXHJcbiAgfVxyXG4gIHByaXZhdGUgdXJsV2l0aG91dFF1ZXJ5KHVybCkge1xyXG4gICAgcmV0dXJuIHVybC5zcGxpdChcIj9cIilbMF07XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJycy1tdWx0aS10YWJcIiBbbmdDbGFzc109XCJ7ICdiLWxpbmUnOiB0YWJMaXN0Lmxlbmd0aCA+IDAgfVwiPlxyXG5cdDx1bD5cclxuXHRcdDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHRhYiBvZiB0YWJMaXN0OyBsZXQgaSA9IGluZGV4XCI+XHJcblx0XHRcdDxsaVxyXG5cdFx0XHRcdFtuZ0NsYXNzXT1cInNlbGVjdGVkVGFiID09PSBpID8gJ2lzU2VsZWN0JyA6ICdub3RTZWxlY3QnXCJcclxuXHRcdFx0XHQoY2xpY2spPVwiY2hhbmdlVGFiKHRhYiwgaSlcIlxyXG5cdFx0XHQ+XHJcblx0XHRcdFx0PGVqcy10b29sdGlwXHJcblx0XHRcdFx0XHRpZD1cIm5vdFNlbGVjdFRvb2x0aXBcIlxyXG5cdFx0XHRcdFx0W3Nob3dUaXBQb2ludGVyXT1cImZhbHNlXCJcclxuXHRcdFx0XHRcdFtvcGVuRGVsYXldPVwiNTAwXCJcclxuXHRcdFx0XHRcdCpuZ0lmPVwidGFiLmRpc3BsYXlUaXRsZSAhPT0gdGFiLnRpdGxlOyBlbHNlIG9yaWdpblRleHRcIlxyXG5cdFx0XHRcdFx0c3R5bGU9XCJoZWlnaHQ6IDI3cHhcIlxyXG5cdFx0XHRcdD5cclxuXHRcdFx0XHRcdDxuZy10ZW1wbGF0ZSAjY29udGVudD5cclxuXHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cInRvb2x0aXAtY29udGVudFwiPlxyXG5cdFx0XHRcdFx0XHRcdHt7IHRhYi50aXRsZSB9fVxyXG5cdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdDwvbmctdGVtcGxhdGU+XHJcblx0XHRcdFx0XHQ8c3BhbiBjbGFzcz1cInRhYlRpdGxlXCI+e3sgdGFiLmRpc3BsYXlUaXRsZSB9fTwvc3Bhbj5cclxuXHRcdFx0XHQ8L2Vqcy10b29sdGlwPlxyXG5cdFx0XHRcdDxuZy10ZW1wbGF0ZSAjb3JpZ2luVGV4dD5cclxuXHRcdFx0XHRcdDxzcGFuIGNsYXNzPVwidGFiVGl0bGVcIj5cclxuXHRcdFx0XHRcdFx0e3sgdGFiLmRpc3BsYXlUaXRsZSB9fVxyXG5cdFx0XHRcdFx0PC9zcGFuPlxyXG5cdFx0XHRcdDwvbmctdGVtcGxhdGU+XHJcblx0XHRcdFx0PHNwYW5cclxuXHRcdFx0XHRcdGNsYXNzPVwiaW1nLWJsb2NrXCJcclxuXHRcdFx0XHRcdCpuZ0lmPVwic2VsZWN0ZWRUYWIgIT09IGkgJiYgaSAhPT0gMFwiXHJcblx0XHRcdFx0Pjwvc3Bhbj5cclxuXHRcdFx0XHQ8aW1nXHJcblx0XHRcdFx0XHQqbmdJZj1cImkgIT09IDBcIlxyXG5cdFx0XHRcdFx0c3JjPVwiLi4vLi4vLi4vYXNzZXRzL2ltZy9jbG9zZS11cmwuc3ZnXCJcclxuXHRcdFx0XHRcdChjbGljayk9XCJjbG9zZVRhYihpKVwiXHJcblx0XHRcdFx0Lz5cclxuXHRcdFx0PC9saT5cclxuXHRcdDwvbmctY29udGFpbmVyPlxyXG5cdDwvdWw+XHJcblx0PGRpdiBjbGFzcz1cInJlZnJlc2gtdGFiXCIgKGNsaWNrKT1cInJlZnJlc2hUYWIoKVwiICpuZ0lmPVwidGFiTGlzdC5sZW5ndGggPiAwXCI+XHJcblx0XHQ8ZWpzLXRvb2x0aXBcclxuXHRcdFx0aWQ9XCJub3RTZWxlY3RUb29sdGlwXCJcclxuXHRcdFx0Y3NzQ2xhc3M9XCJub3RTZWxlY3RUb29sdGlwXCJcclxuXHRcdFx0W3Nob3dUaXBQb2ludGVyXT1cImZhbHNlXCJcclxuXHRcdFx0W29wZW5EZWxheV09XCI1MDBcIlxyXG5cdFx0XHRzdHlsZT1cImhlaWdodDogMjdweFwiXHJcblx0XHQ+XHJcblx0XHRcdDxuZy10ZW1wbGF0ZSAjY29udGVudD5cclxuXHRcdFx0XHQ8ZGl2IGNsYXNzPVwidG9vbHRpcC1jb250ZW50XCI+UmVmcmVzaCBDdXJyZW50IFRhYjwvZGl2PlxyXG5cdFx0XHQ8L25nLXRlbXBsYXRlPlxyXG5cdFx0XHQ8aW1nXHJcblx0XHRcdFx0aWQ9XCJsb2FkaW5nSWNvblwiXHJcblx0XHRcdFx0YWx0XHJcblx0XHRcdFx0Y2xhc3M9XCJyZWZyZXNoLWJ0blwiXHJcblx0XHRcdFx0c3JjPVwiLi4vLi4vLi4vYXNzZXRzL2ltZy9kZXNrdG9wLXJlZnJlc2gtYnRuLnN2Z1wiXHJcblx0XHRcdC8+XHJcblx0XHQ8L2Vqcy10b29sdGlwPlxyXG5cdDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
@@ -6,6 +6,7 @@ import * as i0 from "@angular/core";
6
6
  import * as i1 from "@angular/router";
7
7
  import * as i2 from "@angular/common";
8
8
  import * as i3 from "@angular/material/icon";
9
+ import * as i4 from "@syncfusion/ej2-angular-popups";
9
10
  export class RSAsideComponent {
10
11
  router;
11
12
  constructor(router) {
@@ -55,11 +56,11 @@ export class RSAsideComponent {
55
56
  this.navClick.emit(item);
56
57
  }
57
58
  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
+ 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\r\n class=\"nav-group\"\r\n [ngClass]=\"group.class\"\r\n *ngFor=\"let group of navList\"\r\n >\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 <ejs-tooltip\r\n [showTipPointer]=\"false\"\r\n *ngIf=\"isCollapsed; else originIcon\"\r\n >\r\n <ng-template #content>\r\n <div class=\"tooltip-content\">\r\n {{ nav.label }}\r\n </div>\r\n </ng-template>\r\n <mat-icon class=\"menu-icon\" [svgIcon]=\"nav.iconCode\"></mat-icon>\r\n </ejs-tooltip>\r\n <ng-template #originIcon>\r\n <mat-icon class=\"menu-icon\" [svgIcon]=\"nav.iconCode\"></mat-icon>\r\n </ng-template>\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"] }, { kind: "component", type: i4.TooltipComponent, selector: "ejs-tooltip", inputs: ["animation", "closeDelay", "container", "content", "cssClass", "enableHtmlParse", "enableHtmlSanitizer", "enablePersistence", "enableRtl", "height", "htmlAttributes", "isSticky", "locale", "mouseTrail", "offsetX", "offsetY", "openDelay", "opensOn", "position", "showTipPointer", "target", "tipPointerPosition", "width", "windowCollision"], outputs: ["afterClose", "afterOpen", "beforeClose", "beforeCollision", "beforeOpen", "beforeRender", "created", "destroyed"] }] });
59
60
  }
60
61
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RSAsideComponent, decorators: [{
61
62
  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
+ args: [{ selector: "rs-aside", template: "<div class=\"rs-aside\" [ngClass]=\"{ isCollapsed: isCollapsed }\">\r\n <div class=\"nav-list\">\r\n <div\r\n class=\"nav-group\"\r\n [ngClass]=\"group.class\"\r\n *ngFor=\"let group of navList\"\r\n >\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 <ejs-tooltip\r\n [showTipPointer]=\"false\"\r\n *ngIf=\"isCollapsed; else originIcon\"\r\n >\r\n <ng-template #content>\r\n <div class=\"tooltip-content\">\r\n {{ nav.label }}\r\n </div>\r\n </ng-template>\r\n <mat-icon class=\"menu-icon\" [svgIcon]=\"nav.iconCode\"></mat-icon>\r\n </ejs-tooltip>\r\n <ng-template #originIcon>\r\n <mat-icon class=\"menu-icon\" [svgIcon]=\"nav.iconCode\"></mat-icon>\r\n </ng-template>\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
64
  }], ctorParameters: function () { return [{ type: i1.Router }]; }, propDecorators: { toggleMenu: [{
64
65
  type: Output
65
66
  }], navClick: [{
@@ -73,4 +74,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
73
74
  }], relationStart: [{
74
75
  type: Input
75
76
  }] } });
76
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcmFpc2UtY29tbW9uLWxpYi9zcmMvbGliL2xheW91dC9ycy1hc2lkZS9pbmRleC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yYWlzZS1jb21tb24tbGliL3NyYy9saWIvbGF5b3V0L3JzLWFzaWRlL2luZGV4LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU07QUFDTixPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBVSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7O0FBT3hDLE1BQU0sT0FBTyxnQkFBZ0I7SUFDUjtJQUFuQixZQUFtQixNQUFjO1FBQWQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtJQUFHLENBQUM7SUFFckMsVUFBVSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFFaEMsUUFBUSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7SUFFMUIsV0FBVyxHQUFZLEtBQUssQ0FBQyxDQUFDLFNBQVM7SUFDdkMsY0FBYyxHQUFZLEtBQUssQ0FBQyxDQUFDLFNBQVM7SUFDMUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztJQUNiLGFBQWEsR0FBRyxFQUFFLENBQUM7SUFFNUIsVUFBVSxHQUFHLEVBQUUsQ0FBQztJQUNoQixRQUFRO1FBQ04sSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3RCLFNBQVM7UUFDVCxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU07YUFDZixJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLFlBQVksYUFBYSxDQUFDLENBQUM7YUFDdkQsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNkLGtEQUFrRDtZQUNsRCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQ2hELElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQ3JDLENBQUM7WUFDRixJQUFJLEdBQUcsS0FBSyxDQUFDLENBQUMsRUFBRTtnQkFDZCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO2FBQ2xEO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUM7YUFDbkM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFDRCxjQUFjO1FBQ1osTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUNoRCxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUNyQyxDQUFDO1FBQ0YsSUFBSSxHQUFHLEtBQUssQ0FBQyxDQUFDLEVBQUU7WUFDZCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO1NBQ2xEO2FBQU07WUFDTCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDO1NBQ25DO0lBQ0gsQ0FBQztJQUNELFVBQVUsQ0FBQyxJQUFJO1FBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDeEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDO1lBQzNCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDbkUsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQztZQUN0QyxJQUFJLFdBQVcsSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtnQkFDMUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDN0I7U0FDRjtRQUNELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNCLENBQUM7d0dBbERVLGdCQUFnQjs0RkFBaEIsZ0JBQWdCLDJPQ1Y3QixnK0JBdUJBOzs0RkRiYSxnQkFBZ0I7a0JBTDVCLFNBQVM7K0JBQ0UsVUFBVTs2RkFPcEIsVUFBVTtzQkFEVCxNQUFNO2dCQUdQLFFBQVE7c0JBRFAsTUFBTTtnQkFHRSxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvLyDnu4Tku7bnsbtcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFJvdXRlciwgTmF2aWdhdGlvbkVuZCB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJycy1hc2lkZVwiLFxyXG4gIHRlbXBsYXRlVXJsOiBcIi4vaW5kZXguY29tcG9uZW50Lmh0bWxcIixcclxuICBzdHlsZVVybHM6IFtcIi4vaW5kZXguY29tcG9uZW50LnNjc3NcIl0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSU0FzaWRlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcm91dGVyOiBSb3V0ZXIpIHt9XHJcbiAgQE91dHB1dCgpXHJcbiAgdG9nZ2xlTWVudSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KClcclxuICBuYXZDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICBASW5wdXQoKSBpc0NvbGxhcHNlZDogYm9vbGVhbiA9IGZhbHNlOyAvLyDmjqXmlLbovpPlhaXlsZ7mgKdcclxuICBASW5wdXQoKSBjdXN0b21OYXZDbGljazogYm9vbGVhbiA9IGZhbHNlOyAvLyDmjqXmlLbovpPlhaXlsZ7mgKdcclxuICBASW5wdXQoKSBuYXZMaXN0ID0gW107XHJcbiAgQElucHV0KCkgcmVsYXRpb25TdGFydCA9IFtdO1xyXG5cclxuICBjdXJyZW50TmF2ID0gXCJcIjtcclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuaW5pdEN1cnJlbnROYXYoKTtcclxuICAgIC8vIOebkeWQrOi3r+eUseWPmOWMllxyXG4gICAgdGhpcy5yb3V0ZXIuZXZlbnRzXHJcbiAgICAgIC5waXBlKGZpbHRlcigoZXZlbnQpID0+IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKCd0aGlzLnJvdXRlci51cmwnLCB0aGlzLnJvdXRlci51cmwpXHJcbiAgICAgICAgY29uc3QgaWR4ID0gdGhpcy5yZWxhdGlvblN0YXJ0LmZpbmRJbmRleCgoaXRlbSkgPT5cclxuICAgICAgICAgIHRoaXMucm91dGVyLnVybC5zdGFydHNXaXRoKGl0ZW0udXJsKVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgaWYgKGlkeCAhPT0gLTEpIHtcclxuICAgICAgICAgIHRoaXMuY3VycmVudE5hdiA9IHRoaXMucmVsYXRpb25TdGFydFtpZHhdLnRhcmdldDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5jdXJyZW50TmF2ID0gdGhpcy5yb3V0ZXIudXJsO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG4gIGluaXRDdXJyZW50TmF2KCkge1xyXG4gICAgY29uc3QgaWR4ID0gdGhpcy5yZWxhdGlvblN0YXJ0LmZpbmRJbmRleCgoaXRlbSkgPT5cclxuICAgICAgdGhpcy5yb3V0ZXIudXJsLnN0YXJ0c1dpdGgoaXRlbS51cmwpXHJcbiAgICApO1xyXG4gICAgaWYgKGlkeCAhPT0gLTEpIHtcclxuICAgICAgdGhpcy5jdXJyZW50TmF2ID0gdGhpcy5yZWxhdGlvblN0YXJ0W2lkeF0udGFyZ2V0O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5jdXJyZW50TmF2ID0gdGhpcy5yb3V0ZXIudXJsO1xyXG4gICAgfVxyXG4gIH1cclxuICBvbk5hdkNsaWNrKGl0ZW0pIHtcclxuICAgIGlmICghdGhpcy5jdXN0b21OYXZDbGljaykge1xyXG4gICAgICB0aGlzLmN1cnJlbnROYXYgPSBpdGVtLnVybDtcclxuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW2l0ZW0udXJsXSwgeyBzdGF0ZTogeyB0aXRsZTogaXRlbS5sYWJlbCB9IH0pO1xyXG4gICAgICBjb25zdCBzY3JlZW5XaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoO1xyXG4gICAgICBpZiAoc2NyZWVuV2lkdGggPD0gOTkyICYmIHRoaXMuaXNDb2xsYXBzZWQpIHtcclxuICAgICAgICB0aGlzLnRvZ2dsZU1lbnUuZW1pdChmYWxzZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMubmF2Q2xpY2suZW1pdChpdGVtKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInJzLWFzaWRlXCIgW25nQ2xhc3NdPVwieyBpc0NvbGxhcHNlZDogaXNDb2xsYXBzZWQgfVwiPlxyXG4gIDxkaXYgY2xhc3M9XCJuYXYtbGlzdFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cIm5hdi1ncm91cFwiIFtuZ0NsYXNzXT1cImdyb3VwLmNsYXNzXCIgKm5nRm9yPVwibGV0IGdyb3VwIG9mIG5hdkxpc3RcIj5cclxuICAgICAgPGRpdlxyXG4gICAgICAgIGNsYXNzPVwibmF2LWl0ZW1cIlxyXG4gICAgICAgIFtuZ0NsYXNzXT1cInsgaXNDdXJyZW50OiBjdXJyZW50TmF2ID09PSBuYXYudXJsIH1cIlxyXG4gICAgICAgICpuZ0Zvcj1cImxldCBuYXYgb2YgZ3JvdXAubmF2SXRlbXNcIlxyXG4gICAgICAgIChjbGljayk9XCJvbk5hdkNsaWNrKG5hdilcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm5hdi1pdGVtLWlubmVyXCIgKm5nSWY9XCJuYXYubWVudVR5cGUgPT09ICdNRU5VJ1wiPlxyXG4gICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwibWVudS1pY29uXCIgW3N2Z0ljb25dPVwibmF2Lmljb25Db2RlXCI+PC9tYXQtaWNvbj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwibmF2LXRleHRcIiBbbmdDbGFzc109XCJ7IGlzQ29sbGFwc2VkOiBpc0NvbGxhcHNlZCB9XCI+e3tcclxuICAgICAgICAgICAgbmF2LmxhYmVsXHJcbiAgICAgICAgICB9fTwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGl2aWRpbmctbGluZVwiICpuZ0lmPVwibmF2Lm1lbnVUeXBlID09PSAnTEFCRUwnXCI+PC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cImJvdHRvbS1pY29uYm94XCIgW25nQ2xhc3NdPVwieyBpc0NvbGxhcHNlZDogaXNDb2xsYXBzZWQgfVwiPlxyXG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2JvdHRvbUljb25Cb3hdXCI+PC9uZy1jb250ZW50PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcmFpc2UtY29tbW9uLWxpYi9zcmMvbGliL2xheW91dC9ycy1hc2lkZS9pbmRleC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yYWlzZS1jb21tb24tbGliL3NyYy9saWIvbGF5b3V0L3JzLWFzaWRlL2luZGV4LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU07QUFDTixPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBVSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7OztBQU94QyxNQUFNLE9BQU8sZ0JBQWdCO0lBQ1I7SUFBbkIsWUFBbUIsTUFBYztRQUFkLFdBQU0sR0FBTixNQUFNLENBQVE7SUFBRyxDQUFDO0lBRXJDLFVBQVUsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBRWhDLFFBQVEsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO0lBRTFCLFdBQVcsR0FBWSxLQUFLLENBQUMsQ0FBQyxTQUFTO0lBQ3ZDLGNBQWMsR0FBWSxLQUFLLENBQUMsQ0FBQyxTQUFTO0lBQzFDLE9BQU8sR0FBRyxFQUFFLENBQUM7SUFDYixhQUFhLEdBQUcsRUFBRSxDQUFDO0lBRTVCLFVBQVUsR0FBRyxFQUFFLENBQUM7SUFDaEIsUUFBUTtRQUNOLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN0QixTQUFTO1FBQ1QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNO2FBQ2YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxZQUFZLGFBQWEsQ0FBQyxDQUFDO2FBQ3ZELFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDZCxrREFBa0Q7WUFDbEQsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUNoRCxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUNyQyxDQUFDO1lBQ0YsSUFBSSxHQUFHLEtBQUssQ0FBQyxDQUFDLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQzthQUNsRDtpQkFBTTtnQkFDTCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDO2FBQ25DO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBQ0QsY0FBYztRQUNaLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FDaEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FDckMsQ0FBQztRQUNGLElBQUksR0FBRyxLQUFLLENBQUMsQ0FBQyxFQUFFO1lBQ2QsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztTQUNsRDthQUFNO1lBQ0wsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQztTQUNuQztJQUNILENBQUM7SUFDRCxVQUFVLENBQUMsSUFBSTtRQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3hCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQztZQUMzQixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ25FLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUM7WUFDdEMsSUFBSSxXQUFXLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7Z0JBQzFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQzdCO1NBQ0Y7UUFDRCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzQixDQUFDO3dHQWxEVSxnQkFBZ0I7NEZBQWhCLGdCQUFnQiwyT0NWN0IsaS9DQXdDQTs7NEZEOUJhLGdCQUFnQjtrQkFMNUIsU0FBUzsrQkFDRSxVQUFVOzZGQU9wQixVQUFVO3NCQURULE1BQU07Z0JBR1AsUUFBUTtzQkFEUCxNQUFNO2dCQUdFLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8vIOe7hOS7tuexu1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgUm91dGVyLCBOYXZpZ2F0aW9uRW5kIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5pbXBvcnQgeyBmaWx0ZXIgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcInJzLWFzaWRlXCIsXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi9pbmRleC5jb21wb25lbnQuaHRtbFwiLFxyXG4gIHN0eWxlVXJsczogW1wiLi9pbmRleC5jb21wb25lbnQuc2Nzc1wiXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFJTQXNpZGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByb3V0ZXI6IFJvdXRlcikge31cclxuICBAT3V0cHV0KClcclxuICB0b2dnbGVNZW51ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKVxyXG4gIG5hdkNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIEBJbnB1dCgpIGlzQ29sbGFwc2VkOiBib29sZWFuID0gZmFsc2U7IC8vIOaOpeaUtui+k+WFpeWxnuaAp1xyXG4gIEBJbnB1dCgpIGN1c3RvbU5hdkNsaWNrOiBib29sZWFuID0gZmFsc2U7IC8vIOaOpeaUtui+k+WFpeWxnuaAp1xyXG4gIEBJbnB1dCgpIG5hdkxpc3QgPSBbXTtcclxuICBASW5wdXQoKSByZWxhdGlvblN0YXJ0ID0gW107XHJcblxyXG4gIGN1cnJlbnROYXYgPSBcIlwiO1xyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5pbml0Q3VycmVudE5hdigpO1xyXG4gICAgLy8g55uR5ZCs6Lev55Sx5Y+Y5YyWXHJcbiAgICB0aGlzLnJvdXRlci5ldmVudHNcclxuICAgICAgLnBpcGUoZmlsdGVyKChldmVudCkgPT4gZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSlcclxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coJ3RoaXMucm91dGVyLnVybCcsIHRoaXMucm91dGVyLnVybClcclxuICAgICAgICBjb25zdCBpZHggPSB0aGlzLnJlbGF0aW9uU3RhcnQuZmluZEluZGV4KChpdGVtKSA9PlxyXG4gICAgICAgICAgdGhpcy5yb3V0ZXIudXJsLnN0YXJ0c1dpdGgoaXRlbS51cmwpXHJcbiAgICAgICAgKTtcclxuICAgICAgICBpZiAoaWR4ICE9PSAtMSkge1xyXG4gICAgICAgICAgdGhpcy5jdXJyZW50TmF2ID0gdGhpcy5yZWxhdGlvblN0YXJ0W2lkeF0udGFyZ2V0O1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLmN1cnJlbnROYXYgPSB0aGlzLnJvdXRlci51cmw7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcbiAgaW5pdEN1cnJlbnROYXYoKSB7XHJcbiAgICBjb25zdCBpZHggPSB0aGlzLnJlbGF0aW9uU3RhcnQuZmluZEluZGV4KChpdGVtKSA9PlxyXG4gICAgICB0aGlzLnJvdXRlci51cmwuc3RhcnRzV2l0aChpdGVtLnVybClcclxuICAgICk7XHJcbiAgICBpZiAoaWR4ICE9PSAtMSkge1xyXG4gICAgICB0aGlzLmN1cnJlbnROYXYgPSB0aGlzLnJlbGF0aW9uU3RhcnRbaWR4XS50YXJnZXQ7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmN1cnJlbnROYXYgPSB0aGlzLnJvdXRlci51cmw7XHJcbiAgICB9XHJcbiAgfVxyXG4gIG9uTmF2Q2xpY2soaXRlbSkge1xyXG4gICAgaWYgKCF0aGlzLmN1c3RvbU5hdkNsaWNrKSB7XHJcbiAgICAgIHRoaXMuY3VycmVudE5hdiA9IGl0ZW0udXJsO1xyXG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbaXRlbS51cmxdLCB7IHN0YXRlOiB7IHRpdGxlOiBpdGVtLmxhYmVsIH0gfSk7XHJcbiAgICAgIGNvbnN0IHNjcmVlbldpZHRoID0gd2luZG93LmlubmVyV2lkdGg7XHJcbiAgICAgIGlmIChzY3JlZW5XaWR0aCA8PSA5OTIgJiYgdGhpcy5pc0NvbGxhcHNlZCkge1xyXG4gICAgICAgIHRoaXMudG9nZ2xlTWVudS5lbWl0KGZhbHNlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5uYXZDbGljay5lbWl0KGl0ZW0pO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwicnMtYXNpZGVcIiBbbmdDbGFzc109XCJ7IGlzQ29sbGFwc2VkOiBpc0NvbGxhcHNlZCB9XCI+XHJcbiAgPGRpdiBjbGFzcz1cIm5hdi1saXN0XCI+XHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzPVwibmF2LWdyb3VwXCJcclxuICAgICAgW25nQ2xhc3NdPVwiZ3JvdXAuY2xhc3NcIlxyXG4gICAgICAqbmdGb3I9XCJsZXQgZ3JvdXAgb2YgbmF2TGlzdFwiXHJcbiAgICA+XHJcbiAgICAgIDxkaXZcclxuICAgICAgICBjbGFzcz1cIm5hdi1pdGVtXCJcclxuICAgICAgICBbbmdDbGFzc109XCJ7IGlzQ3VycmVudDogY3VycmVudE5hdiA9PT0gbmF2LnVybCB9XCJcclxuICAgICAgICAqbmdGb3I9XCJsZXQgbmF2IG9mIGdyb3VwLm5hdkl0ZW1zXCJcclxuICAgICAgICAoY2xpY2spPVwib25OYXZDbGljayhuYXYpXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJuYXYtaXRlbS1pbm5lclwiICpuZ0lmPVwibmF2Lm1lbnVUeXBlID09PSAnTUVOVSdcIj5cclxuICAgICAgICAgIDxlanMtdG9vbHRpcFxyXG4gICAgICAgICAgICBbc2hvd1RpcFBvaW50ZXJdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAqbmdJZj1cImlzQ29sbGFwc2VkOyBlbHNlIG9yaWdpbkljb25cIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI2NvbnRlbnQ+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRvb2x0aXAtY29udGVudFwiPlxyXG4gICAgICAgICAgICAgICAge3sgbmF2LmxhYmVsIH19XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cIm1lbnUtaWNvblwiIFtzdmdJY29uXT1cIm5hdi5pY29uQ29kZVwiPjwvbWF0LWljb24+XHJcbiAgICAgICAgICA8L2Vqcy10b29sdGlwPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNvcmlnaW5JY29uPlxyXG4gICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJtZW51LWljb25cIiBbc3ZnSWNvbl09XCJuYXYuaWNvbkNvZGVcIj48L21hdC1pY29uPlxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwibmF2LXRleHRcIiBbbmdDbGFzc109XCJ7IGlzQ29sbGFwc2VkOiBpc0NvbGxhcHNlZCB9XCI+e3tcclxuICAgICAgICAgICAgbmF2LmxhYmVsXHJcbiAgICAgICAgICB9fTwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGl2aWRpbmctbGluZVwiICpuZ0lmPVwibmF2Lm1lbnVUeXBlID09PSAnTEFCRUwnXCI+PC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cImJvdHRvbS1pY29uYm94XCIgW25nQ2xhc3NdPVwieyBpc0NvbGxhcHNlZDogaXNDb2xsYXBzZWQgfVwiPlxyXG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2JvdHRvbUljb25Cb3hdXCI+PC9uZy1jb250ZW50PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
@@ -1771,11 +1771,11 @@ class MultiTabComponent {
1771
1771
  }
1772
1772
  }
1773
1773
  }
1774
- closeTab(idx, isExternal) {
1774
+ closeTab(idx, noChange) {
1775
1775
  const tab = this.tabList[idx];
1776
1776
  this.tabList = this.tabList.filter((ele) => ele.url !== tab.url);
1777
1777
  this.clearCache(this.urlWithoutQuery(tab.url));
1778
- if (!isExternal && this.selectedTab === idx) {
1778
+ if (!noChange && this.selectedTab === idx) {
1779
1779
  const targetIdx = Math.max(0, idx - 1);
1780
1780
  this.changeTab(this.tabList[targetIdx], targetIdx);
1781
1781
  }
@@ -1791,8 +1791,8 @@ class MultiTabComponent {
1791
1791
  if (tab.navigationInfo) {
1792
1792
  sessionStorage.setItem("navigationInfo", JSON.stringify(tab.navigationInfo));
1793
1793
  }
1794
- if (tab.fromUrl) {
1795
- sessionStorage.setItem("fromUrl", tab.fromUrl);
1794
+ if (tab.fromInfo) {
1795
+ sessionStorage.setItem("fromInfo", JSON.stringify(tab.fromInfo));
1796
1796
  }
1797
1797
  if (tab.permissions) {
1798
1798
  sessionStorage.setItem("permissions", JSON.stringify(tab.permissions));
@@ -1807,7 +1807,7 @@ class MultiTabComponent {
1807
1807
  const localPermissions = sessionStorage.getItem("permissions") ||
1808
1808
  localStorage.getItem("permissions");
1809
1809
  const navigationInfo = JSON.parse(sessionStorage.getItem("navigationInfo"));
1810
- const fromUrl = sessionStorage.getItem("fromUrl");
1810
+ const fromInfo = JSON.parse(sessionStorage.getItem("fromInfo"));
1811
1811
  const permissions = JSON.parse(localPermissions);
1812
1812
  this.tabList.push({
1813
1813
  url: url,
@@ -1815,7 +1815,7 @@ class MultiTabComponent {
1815
1815
  displayTitle: title,
1816
1816
  navigationInfo: navigationInfo,
1817
1817
  permissions: permissions,
1818
- fromUrl: fromUrl,
1818
+ fromInfo: fromInfo,
1819
1819
  });
1820
1820
  this.selectedTab = this.tabList.length - 1;
1821
1821
  this.setEllipsisTitle();
@@ -1838,7 +1838,9 @@ class MultiTabComponent {
1838
1838
  if (targetTabUrl !== url || noReused) {
1839
1839
  // 当缓存一致时候,但是url不一致,重新按照新的url生成tab
1840
1840
  this.closeTab(isExistIdx, true);
1841
- this.addTab(url, title);
1841
+ setTimeout(() => {
1842
+ this.addTab(url, title);
1843
+ }, 30);
1842
1844
  }
1843
1845
  else {
1844
1846
  this.changeTab(this.tabList[isExistIdx], isExistIdx);
@@ -18971,11 +18973,11 @@ class RSAsideComponent {
18971
18973
  this.navClick.emit(item);
18972
18974
  }
18973
18975
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RSAsideComponent, deps: [{ token: i1$3.Router }], target: i0.ɵɵFactoryTarget.Component });
18974
- 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: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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: i3$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] });
18976
+ 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\r\n class=\"nav-group\"\r\n [ngClass]=\"group.class\"\r\n *ngFor=\"let group of navList\"\r\n >\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 <ejs-tooltip\r\n [showTipPointer]=\"false\"\r\n *ngIf=\"isCollapsed; else originIcon\"\r\n >\r\n <ng-template #content>\r\n <div class=\"tooltip-content\">\r\n {{ nav.label }}\r\n </div>\r\n </ng-template>\r\n <mat-icon class=\"menu-icon\" [svgIcon]=\"nav.iconCode\"></mat-icon>\r\n </ejs-tooltip>\r\n <ng-template #originIcon>\r\n <mat-icon class=\"menu-icon\" [svgIcon]=\"nav.iconCode\"></mat-icon>\r\n </ng-template>\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: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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: i3$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5.TooltipComponent, selector: "ejs-tooltip", inputs: ["animation", "closeDelay", "container", "content", "cssClass", "enableHtmlParse", "enableHtmlSanitizer", "enablePersistence", "enableRtl", "height", "htmlAttributes", "isSticky", "locale", "mouseTrail", "offsetX", "offsetY", "openDelay", "opensOn", "position", "showTipPointer", "target", "tipPointerPosition", "width", "windowCollision"], outputs: ["afterClose", "afterOpen", "beforeClose", "beforeCollision", "beforeOpen", "beforeRender", "created", "destroyed"] }] });
18975
18977
  }
18976
18978
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RSAsideComponent, decorators: [{
18977
18979
  type: Component,
18978
- 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"] }]
18980
+ args: [{ selector: "rs-aside", template: "<div class=\"rs-aside\" [ngClass]=\"{ isCollapsed: isCollapsed }\">\r\n <div class=\"nav-list\">\r\n <div\r\n class=\"nav-group\"\r\n [ngClass]=\"group.class\"\r\n *ngFor=\"let group of navList\"\r\n >\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 <ejs-tooltip\r\n [showTipPointer]=\"false\"\r\n *ngIf=\"isCollapsed; else originIcon\"\r\n >\r\n <ng-template #content>\r\n <div class=\"tooltip-content\">\r\n {{ nav.label }}\r\n </div>\r\n </ng-template>\r\n <mat-icon class=\"menu-icon\" [svgIcon]=\"nav.iconCode\"></mat-icon>\r\n </ejs-tooltip>\r\n <ng-template #originIcon>\r\n <mat-icon class=\"menu-icon\" [svgIcon]=\"nav.iconCode\"></mat-icon>\r\n </ng-template>\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"] }]
18979
18981
  }], ctorParameters: function () { return [{ type: i1$3.Router }]; }, propDecorators: { toggleMenu: [{
18980
18982
  type: Output
18981
18983
  }], navClick: [{
@@ -19232,7 +19234,7 @@ function filterShowSection(sections) {
19232
19234
  .filter((section) => !section.show || section.show())
19233
19235
  .map((section) => ({
19234
19236
  ...section,
19235
- fields: section.fields.filter((field) => field.show || section.show()),
19237
+ fields: section.fields.filter((field) => !field.show || field.show()),
19236
19238
  }));
19237
19239
  }
19238
19240
  const EmailPattern = /^(?=.{1,254}$)(?=.{1,64}@)[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;