@alauda/ui 7.4.2-beta.2 → 7.4.2-beta.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (192) hide show
  1. package/autocomplete/autocomplete.directive.d.ts +1 -1
  2. package/date-picker/calendar/header/component.d.ts +18 -5
  3. package/date-picker/date-picker/date-picker.component.d.ts +2 -4
  4. package/date-picker/trigger/trigger.component.d.ts +12 -4
  5. package/esm2022/accordion/accordion-item/accordion-item.component.mjs +11 -11
  6. package/esm2022/accordion/accordion.component.mjs +6 -6
  7. package/esm2022/accordion/accordion.module.mjs +4 -4
  8. package/esm2022/anchor/anchor.component.mjs +8 -8
  9. package/esm2022/anchor/anchor.directive.mjs +14 -14
  10. package/esm2022/anchor/anchor.module.mjs +4 -4
  11. package/esm2022/anchor/utils.mjs +1 -1
  12. package/esm2022/autocomplete/autocomplete-placeholder.component.mjs +3 -3
  13. package/esm2022/autocomplete/autocomplete.component.mjs +5 -5
  14. package/esm2022/autocomplete/autocomplete.directive.mjs +9 -9
  15. package/esm2022/autocomplete/autocomplete.module.mjs +4 -4
  16. package/esm2022/autocomplete/helper-directives.mjs +3 -3
  17. package/esm2022/autocomplete/suggestion/suggestion.component.mjs +6 -6
  18. package/esm2022/autocomplete/suggestion-group/suggestion-group.component.mjs +4 -4
  19. package/esm2022/back-top/back-top.component.mjs +7 -7
  20. package/esm2022/back-top/back-top.module.mjs +4 -4
  21. package/esm2022/breadcrumb/breadcrumb-item.component.mjs +4 -4
  22. package/esm2022/breadcrumb/breadcrumb.component.mjs +4 -4
  23. package/esm2022/breadcrumb/breadcrumb.module.mjs +4 -4
  24. package/esm2022/button/button-group/button-group.component.mjs +3 -3
  25. package/esm2022/button/button.component.mjs +5 -5
  26. package/esm2022/button/button.module.mjs +4 -4
  27. package/esm2022/card/card.component.mjs +4 -4
  28. package/esm2022/card/card.module.mjs +4 -4
  29. package/esm2022/card/helper-directives.mjs +9 -9
  30. package/esm2022/card/section.component.mjs +3 -3
  31. package/esm2022/checkbox/checkbox-group/checkbox-group.component.mjs +5 -5
  32. package/esm2022/checkbox/checkbox.component.mjs +8 -8
  33. package/esm2022/checkbox/checkbox.module.mjs +4 -4
  34. package/esm2022/color-picker/color-picker.component.mjs +3 -3
  35. package/esm2022/color-picker/color-picker.module.mjs +4 -4
  36. package/esm2022/date-picker/calendar/date-picker-panel/component.mjs +4 -4
  37. package/esm2022/date-picker/calendar/footer/component.mjs +3 -3
  38. package/esm2022/date-picker/calendar/header/component.mjs +46 -29
  39. package/esm2022/date-picker/calendar/panel/picker-panel.mjs +6 -6
  40. package/esm2022/date-picker/calendar/range-picker-panel/component.mjs +6 -6
  41. package/esm2022/date-picker/calendar/util.mjs +1 -1
  42. package/esm2022/date-picker/date-picker/date-picker.component.mjs +5 -20
  43. package/esm2022/date-picker/date-picker.module.mjs +4 -4
  44. package/esm2022/date-picker/range-picker/range-picker.component.mjs +5 -6
  45. package/esm2022/date-picker/trigger/trigger.component.mjs +64 -11
  46. package/esm2022/dialog/confirm-dialog/confirm-dialog.component.mjs +5 -5
  47. package/esm2022/dialog/dialog-content/dialog-close.directive.mjs +6 -6
  48. package/esm2022/dialog/dialog-content/dialog-content.component.mjs +4 -4
  49. package/esm2022/dialog/dialog-content/dialog-footer.component.mjs +3 -3
  50. package/esm2022/dialog/dialog-content/dialog-header.component.mjs +6 -6
  51. package/esm2022/dialog/dialog.component.mjs +6 -6
  52. package/esm2022/dialog/dialog.module.mjs +4 -4
  53. package/esm2022/dialog/dialog.service.mjs +7 -7
  54. package/esm2022/dialog/utils/index.mjs +1 -1
  55. package/esm2022/drawer/component/drawer.component.mjs +5 -5
  56. package/esm2022/drawer/component/internal/internal.component.mjs +6 -6
  57. package/esm2022/drawer/drawer.module.mjs +4 -4
  58. package/esm2022/drawer/drawer.service.mjs +5 -5
  59. package/esm2022/drawer/helper-directives.mjs +9 -9
  60. package/esm2022/dropdown/dropdown-active.directive.mjs +3 -3
  61. package/esm2022/dropdown/dropdown-button/dropdown-button.component.mjs +3 -3
  62. package/esm2022/dropdown/dropdown.directive.mjs +5 -5
  63. package/esm2022/dropdown/dropdown.module.mjs +4 -4
  64. package/esm2022/dropdown/helper-directives.mjs +3 -3
  65. package/esm2022/dropdown/menu/menu.component.mjs +3 -3
  66. package/esm2022/dropdown/menu-group/menu-group.component.mjs +3 -3
  67. package/esm2022/dropdown/menu-item/menu-item.component.mjs +3 -3
  68. package/esm2022/dropdown/submenu/submenu.component.mjs +3 -3
  69. package/esm2022/form/common-form.mjs +5 -5
  70. package/esm2022/form/form-item/form-item.component.mjs +6 -6
  71. package/esm2022/form/form.directive.mjs +6 -6
  72. package/esm2022/form/form.module.mjs +4 -4
  73. package/esm2022/form/helper-directives.mjs +15 -15
  74. package/esm2022/i18n/i18n.module.mjs +4 -4
  75. package/esm2022/i18n/i18n.pipe.mjs +7 -17
  76. package/esm2022/i18n/i18n.service.mjs +17 -22
  77. package/esm2022/icon/icon-register.service.mjs +6 -6
  78. package/esm2022/icon/icon.component.mjs +5 -5
  79. package/esm2022/icon/icon.module.mjs +4 -4
  80. package/esm2022/inline-alert/helper-directives.mjs +3 -3
  81. package/esm2022/inline-alert/inline-alert.component.mjs +4 -4
  82. package/esm2022/inline-alert/inline-alert.module.mjs +4 -4
  83. package/esm2022/input/autosize.directive.mjs +5 -5
  84. package/esm2022/input/helper-directives.mjs +12 -12
  85. package/esm2022/input/input-group/input-group.component.mjs +3 -3
  86. package/esm2022/input/input.component.mjs +6 -6
  87. package/esm2022/input/input.module.mjs +4 -4
  88. package/esm2022/input/number-input/number-input.component.mjs +4 -4
  89. package/esm2022/input/search/search.component.mjs +5 -5
  90. package/esm2022/input/tags-input/tags-input.component.mjs +7 -7
  91. package/esm2022/input/tags-input/with-max-row-count.mjs +1 -1
  92. package/esm2022/input/utils/index.mjs +1 -1
  93. package/esm2022/internal/utils/bem.mjs +1 -1
  94. package/esm2022/internal/utils/fn.mjs +1 -1
  95. package/esm2022/internal/utils/observe-dom.mjs +1 -1
  96. package/esm2022/internal/utils/scroll-into-view.mjs +1 -1
  97. package/esm2022/internal/utils/styles-renderer.mjs +1 -1
  98. package/esm2022/message/base-message.mjs +1 -1
  99. package/esm2022/message/message-wrapper.component.mjs +4 -4
  100. package/esm2022/message/message.component.mjs +6 -6
  101. package/esm2022/message/message.module.mjs +4 -4
  102. package/esm2022/message/message.service.mjs +5 -5
  103. package/esm2022/notification/notification-wrapper.component.mjs +4 -4
  104. package/esm2022/notification/notification.component.mjs +5 -5
  105. package/esm2022/notification/notification.module.mjs +4 -4
  106. package/esm2022/notification/notification.service.mjs +5 -5
  107. package/esm2022/paginator/paginator-intl.mjs +3 -3
  108. package/esm2022/paginator/paginator.component.mjs +5 -5
  109. package/esm2022/paginator/paginator.module.mjs +4 -4
  110. package/esm2022/radio/base-radio.mjs +5 -5
  111. package/esm2022/radio/radio-button/radio-button.component.mjs +4 -4
  112. package/esm2022/radio/radio-group/radio-group.component.mjs +4 -4
  113. package/esm2022/radio/radio.component.mjs +4 -4
  114. package/esm2022/radio/radio.module.mjs +4 -4
  115. package/esm2022/scrolling/fixed-size-table-virtual-scroll-strategy.mjs +4 -4
  116. package/esm2022/scrolling/fixed-size-table-virtual-scroll.directive.mjs +4 -4
  117. package/esm2022/scrolling/fixed-size-virtual-scroll.directive.mjs +3 -3
  118. package/esm2022/scrolling/scrolling.module.mjs +4 -4
  119. package/esm2022/scrolling/virtual-for-of.directive.mjs +3 -3
  120. package/esm2022/scrolling/virtual-scroll-viewport.component.mjs +3 -3
  121. package/esm2022/select/base-select.mjs +4 -4
  122. package/esm2022/select/helper-directives.mjs +9 -9
  123. package/esm2022/select/multi-select/multi-select.component.mjs +7 -7
  124. package/esm2022/select/option/option.component.mjs +6 -6
  125. package/esm2022/select/option-group/option-group.component.mjs +4 -4
  126. package/esm2022/select/option-placeholder.component.mjs +3 -3
  127. package/esm2022/select/select.component.mjs +4 -4
  128. package/esm2022/select/select.module.mjs +4 -4
  129. package/esm2022/select/validators.mjs +5 -5
  130. package/esm2022/shared/click-outside.directive.mjs +5 -5
  131. package/esm2022/shared/shared.module.mjs +4 -4
  132. package/esm2022/sort/sort-header.component.mjs +6 -6
  133. package/esm2022/sort/sort.directive.mjs +4 -4
  134. package/esm2022/sort/sort.module.mjs +4 -4
  135. package/esm2022/status-bar/status-bar.component.mjs +3 -3
  136. package/esm2022/status-bar/status-bar.module.mjs +4 -4
  137. package/esm2022/steps/steps.component.mjs +4 -4
  138. package/esm2022/steps/steps.module.mjs +4 -4
  139. package/esm2022/switch/switch.component.mjs +4 -4
  140. package/esm2022/switch/switch.module.mjs +4 -4
  141. package/esm2022/table/table-cell-def.directive.mjs +3 -3
  142. package/esm2022/table/table-cell.component.mjs +6 -6
  143. package/esm2022/table/table-cell.directive.mjs +5 -5
  144. package/esm2022/table/table-column-def.directive.mjs +3 -3
  145. package/esm2022/table/table-column-resizable.directive.mjs +4 -4
  146. package/esm2022/table/table-header-cell-def.directive.mjs +3 -3
  147. package/esm2022/table/table-header-cell.directive.mjs +4 -4
  148. package/esm2022/table/table-header-row-def.directive.mjs +3 -3
  149. package/esm2022/table/table-header-row.component.mjs +3 -3
  150. package/esm2022/table/table-placeholder.directive.mjs +8 -8
  151. package/esm2022/table/table-row-def.directive.mjs +3 -3
  152. package/esm2022/table/table-row.component.mjs +5 -5
  153. package/esm2022/table/table-scroll.directive.mjs +9 -9
  154. package/esm2022/table/table.component.mjs +4 -4
  155. package/esm2022/table/table.module.mjs +4 -4
  156. package/esm2022/table-of-contents/table-of-contents.module.mjs +4 -4
  157. package/esm2022/table-of-contents/toc-container.directive.mjs +5 -5
  158. package/esm2022/table-of-contents/toc-content.directive.mjs +6 -6
  159. package/esm2022/table-of-contents/toc-link.directive.mjs +5 -5
  160. package/esm2022/tabs/tab-body.component.mjs +28 -28
  161. package/esm2022/tabs/tab-context.service.mjs +5 -5
  162. package/esm2022/tabs/tab-group.component.mjs +5 -5
  163. package/esm2022/tabs/tab-header-active-indicator.component.mjs +5 -5
  164. package/esm2022/tabs/tab-header.component.mjs +5 -5
  165. package/esm2022/tabs/tab.component.mjs +5 -5
  166. package/esm2022/tabs/tabs.module.mjs +4 -4
  167. package/esm2022/tag/check-tag/check-tag.component.mjs +3 -3
  168. package/esm2022/tag/tag.component.mjs +3 -3
  169. package/esm2022/tag/tag.module.mjs +4 -4
  170. package/esm2022/theme/theme.module.mjs +4 -4
  171. package/esm2022/theme/theme.pipe.mjs +14 -14
  172. package/esm2022/theme/theme.service.mjs +5 -5
  173. package/esm2022/time-picker/component.mjs +4 -4
  174. package/esm2022/time-picker/panel/panel.component.mjs +5 -5
  175. package/esm2022/time-picker/time-picker.module.mjs +4 -4
  176. package/esm2022/tooltip/base-tooltip.mjs +5 -5
  177. package/esm2022/tooltip/tooltip-active.directive.mjs +5 -5
  178. package/esm2022/tooltip/tooltip-copy.directive.mjs +5 -5
  179. package/esm2022/tooltip/tooltip-intl.mjs +3 -3
  180. package/esm2022/tooltip/tooltip.component.mjs +6 -6
  181. package/esm2022/tooltip/tooltip.directive.mjs +3 -3
  182. package/esm2022/tooltip/tooltip.module.mjs +4 -4
  183. package/esm2022/tooltip/utils/index.mjs +1 -1
  184. package/esm2022/tree-select/tree-node-placeholder.component.mjs +3 -3
  185. package/esm2022/tree-select/tree-select.component.mjs +9 -9
  186. package/esm2022/tree-select/tree-select.module.mjs +4 -4
  187. package/fesm2022/alauda-ui.mjs +867 -826
  188. package/fesm2022/alauda-ui.mjs.map +1 -1
  189. package/i18n/i18n.pipe.d.ts +3 -6
  190. package/i18n/i18n.service.d.ts +3 -6
  191. package/package.json +1 -6
  192. package/tsconfig.lib.tsbuildinfo +1 -0
@@ -1,40 +1,64 @@
1
- import { AsyncPipe, NgIf, NgTemplateOutlet } from '@angular/common';
2
- import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewEncapsulation, } from '@angular/core';
1
+ import { NgIf, NgTemplateOutlet } from '@angular/common';
2
+ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewEncapsulation, computed, signal, } from '@angular/core';
3
3
  import dayjs from 'dayjs';
4
- import { map, startWith } from 'rxjs';
5
4
  import { ButtonComponent } from '../../../button/button.component';
6
5
  import { I18nPipe } from '../../../i18n';
7
6
  import { IconComponent } from '../../../icon/icon.component';
8
- import { buildBem, publishRef } from '../../../internal/utils';
9
- import { DateNavRange, Side, } from '../../date-picker.type';
10
- import { DatePickerType, MONTH, YEAR } from '../constant';
7
+ import { buildBem } from '../../../internal/utils';
8
+ import { DateNavRange, Side } from '../../date-picker.type';
9
+ import { MONTH, YEAR } from '../constant';
11
10
  import { calcRangeValue } from '../util';
12
11
  import * as i0 from "@angular/core";
13
12
  import * as i1 from "../../../i18n";
14
13
  const bem = buildBem('aui-calendar-header');
15
14
  export class CalendarHeaderComponent {
15
+ get dateNavRange() {
16
+ return this.$$dateNavRange();
17
+ }
18
+ set dateNavRange(val) {
19
+ if (!val || this.$$dateNavRange() === val) {
20
+ return;
21
+ }
22
+ this.$$dateNavRange.set(val);
23
+ }
24
+ get anchor() {
25
+ return this.$$anchor();
26
+ }
27
+ set anchor(val) {
28
+ if (!val || this.$$anchor() === val) {
29
+ return;
30
+ }
31
+ this.$$anchor.set(val);
32
+ }
16
33
  get _maxAvail() {
17
34
  return this.maxAvail ? dayjs(this.maxAvail) : null;
18
35
  }
19
36
  get _minAvail() {
20
37
  return this.minAvail ? dayjs(this.minAvail) : null;
21
38
  }
22
- get headerRange() {
23
- return calcRangeValue(this.dateNavRange, this.anchor);
24
- }
25
39
  constructor(i18nService) {
26
40
  this.i18nService = i18nService;
27
- this.dateNavRange = DateNavRange.Month;
28
- this.anchor = dayjs();
29
41
  this.navRangeChange = new EventEmitter();
30
42
  this.anchorChange = new EventEmitter();
43
+ this.$$dateNavRange = signal(DateNavRange.Month);
44
+ this.$$anchor = signal(dayjs());
31
45
  this.bem = bem;
32
46
  this.DateNavRange = DateNavRange;
33
- this.monthBeforeYear$ = this.i18nService.localeChange$.pipe(map(locale => {
34
- const parts = new Intl.DateTimeFormat(locale).formatToParts(new Date());
35
- return (parts.findIndex(part => part.type === DatePickerType.Month) <
36
- parts.findIndex(part => part.type === DatePickerType.Year));
37
- }), startWith(false), publishRef());
47
+ this.$monthBeforeYear = this.i18nService.$monthBeforeYear;
48
+ this.$headerRange = computed(() => {
49
+ const locale = this.i18nService.$locale();
50
+ const [start, end] = Object.values(calcRangeValue(this.$$dateNavRange(), this.$$anchor())).map(date => date.toDate());
51
+ return {
52
+ start: {
53
+ year: start.toLocaleDateString(locale, { year: 'numeric' }),
54
+ month: start.toLocaleDateString(locale, { month: 'short' }),
55
+ },
56
+ end: {
57
+ year: end?.toLocaleDateString(locale, { year: 'numeric' }),
58
+ month: end?.toLocaleDateString(locale, { month: 'short' }),
59
+ },
60
+ };
61
+ });
38
62
  this.clickNav = (range) => {
39
63
  if (![DateNavRange.Month, DateNavRange.Year].includes(range)) {
40
64
  return;
@@ -86,20 +110,13 @@ export class CalendarHeaderComponent {
86
110
  }
87
111
  this.anchorChange.next(anchor);
88
112
  }
89
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: CalendarHeaderComponent, deps: [{ token: i1.I18nService }], target: i0.ɵɵFactoryTarget.Component }); }
90
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", type: CalendarHeaderComponent, isStandalone: true, selector: "aui-calendar-header", inputs: { dateNavRange: "dateNavRange", anchor: "anchor", maxAvail: "maxAvail", minAvail: "minAvail" }, outputs: { navRangeChange: "navRangeChange", anchorChange: "anchorChange" }, ngImport: i0, template: "<div [class]=\"bem.element('container')\">\n <div>\n <ng-container\n *ngIf=\"dateNavRange !== DateNavRange.Decade\"\n [ngTemplateOutlet]=\"yearControl\"\n [ngTemplateOutletContext]=\"{ side: 'left' }\"\n ></ng-container>\n\n <ng-container\n *ngIf=\"dateNavRange === DateNavRange.Decade\"\n [ngTemplateOutlet]=\"decadeControl\"\n [ngTemplateOutletContext]=\"{ side: 'left' }\"\n ></ng-container>\n </div>\n <!-- \u5185\u5BB9\u533A -->\n <span\n *ngIf=\"dateNavRange === DateNavRange.Month\"\n [class]=\"bem.element('nav-content')\"\n >\n <ng-container\n [ngTemplateOutlet]=\"\n (monthBeforeYear$ | async) ? monthTemplate : yearTemplate\n \"\n ></ng-container>\n <div class=\"separator\">\n <span *ngIf=\"!('year_suffix' | auiI18n) && !('month_suffix' | auiI18n)\">\n /\n </span>\n </div>\n <ng-container\n [ngTemplateOutlet]=\"\n (monthBeforeYear$ | async) ? yearTemplate : monthTemplate\n \"\n ></ng-container>\n </span>\n\n <span\n *ngIf=\"dateNavRange === DateNavRange.Year\"\n [class]=\"bem.element('nav-content')\"\n >\n <button\n aui-button=\"text\"\n (click)=\"clickNav(DateNavRange.Year)\"\n >\n {{ headerRange?.start?.year() }}{{ 'year_suffix' | auiI18n }}\n </button>\n </span>\n\n <span\n *ngIf=\"dateNavRange === DateNavRange.Decade\"\n [class]=\"bem.element('nav-content')\"\n >\n {{ headerRange?.start.year() }} - {{ headerRange?.end?.year() }}\n </span>\n\n <div [class]=\"bem.element('nav-action')\">\n <ng-container\n *ngIf=\"dateNavRange !== DateNavRange.Decade\"\n [ngTemplateOutlet]=\"yearControl\"\n [ngTemplateOutletContext]=\"{ side: 'right' }\"\n ></ng-container>\n\n <ng-container\n *ngIf=\"dateNavRange === DateNavRange.Decade\"\n [ngTemplateOutlet]=\"decadeControl\"\n [ngTemplateOutletContext]=\"{ side: 'right' }\"\n ></ng-container>\n </div>\n</div>\n\n<ng-template\n #yearControl\n let-side=\"side\"\n>\n <span class=\"action-bar\">\n <button\n aui-button=\"text\"\n *ngIf=\"side === 'right'\"\n [class.hidden]=\"\n !shouldShowNav(DateNavRange.Month, side) ||\n dateNavRange !== DateNavRange.Month\n \"\n (click)=\"navHead(DateNavRange.Month, 1)\"\n >\n <aui-icon icon=\"angle_right\"></aui-icon>\n </button>\n <button\n aui-button=\"text\"\n (click)=\"navHead(DateNavRange.Year, side === 'left' ? -1 : 1)\"\n [class.hidden]=\"!shouldShowNav(DateNavRange.Year, side)\"\n >\n <aui-icon\n [icon]=\"side === 'left' ? 'angles_left' : 'angles_right'\"\n ></aui-icon>\n </button>\n <button\n aui-button=\"text\"\n *ngIf=\"side === 'left'\"\n [class.hidden]=\"\n !shouldShowNav(DateNavRange.Month, side) ||\n dateNavRange !== DateNavRange.Month\n \"\n (click)=\"navHead(DateNavRange.Month, -1)\"\n >\n <aui-icon icon=\"angle_left\"></aui-icon>\n </button>\n </span>\n</ng-template>\n\n<ng-template\n #decadeControl\n let-side=\"side\"\n>\n <button\n aui-button=\"text\"\n (click)=\"navHead(DateNavRange.Decade, side === 'left' ? -10 : 10)\"\n [class.hidden]=\"!shouldShowNav(DateNavRange.Decade, side)\"\n >\n <aui-icon\n [icon]=\"side === 'left' ? 'angles_left' : 'angles_right'\"\n ></aui-icon>\n </button>\n</ng-template>\n\n<ng-template #yearTemplate>\n <button\n aui-button=\"text\"\n class=\"header-range\"\n (click)=\"clickNav(DateNavRange.Year)\"\n >\n {{ headerRange?.start?.year() }}{{ 'year_suffix' | auiI18n }}\n </button>\n</ng-template>\n<ng-template #monthTemplate>\n <button\n aui-button=\"text\"\n class=\"header-range\"\n (click)=\"clickNav(DateNavRange.Month)\"\n >\n {{ headerRange?.start?.month() + 1 }}{{ 'month_suffix' | auiI18n }}\n </button>\n</ng-template>\n", styles: [".aui-calendar-header__container{height:24px;display:flex;align-items:center;justify-content:space-between}.aui-calendar-header__nav-content{flex:1;max-width:calc(100% - 96px);display:flex;flex-wrap:wrap;justify-content:center;align-items:center;font-size:var(--aui-font-size-l);color:rgb(var(--aui-color-main-text));font-weight:var(--aui-font-weight-bolder)}.aui-calendar-header__nav-content .separator{margin:0 var(--aui-spacing-s)}.aui-calendar-header__nav-content .aui-button--text{color:rgb(var(--aui-color-main-text))}.aui-calendar-header__nav-content .aui-button--text .aui-button__content{font-size:var(--aui-font-size-l);font-weight:var(--aui-font-weight-bolder);padding:0}.aui-calendar-header__nav-content .aui-button--text:hover{background-color:transparent;color:rgb(var(--aui-color-primary));text-decoration:none!important}.aui-calendar-header__nav-content .aui-button--text+.aui-button--text{margin-left:0}.aui-calendar-header__nav-content .aui-button--text.header-range{max-width:100%}.action-bar{width:52px;display:flex}.action-bar .hidden{opacity:0;pointer-events:none}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ButtonComponent, selector: "button[aui-button]", inputs: ["aui-button", "size", "plain", "loading", "round", "square"] }, { kind: "component", type: IconComponent, selector: "aui-icon", inputs: ["icon", "light", "dark", "link", "margin", "size", "color", "background", "backgroundColor"] }, { kind: "pipe", type: I18nPipe, name: "auiI18n" }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
113
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: CalendarHeaderComponent, deps: [{ token: i1.I18nService }], target: i0.ɵɵFactoryTarget.Component }); }
114
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.6", type: CalendarHeaderComponent, isStandalone: true, selector: "aui-calendar-header", inputs: { dateNavRange: "dateNavRange", anchor: "anchor", maxAvail: "maxAvail", minAvail: "minAvail" }, outputs: { navRangeChange: "navRangeChange", anchorChange: "anchorChange" }, ngImport: i0, template: "<div [class]=\"bem.element('container')\">\n <div>\n <ng-container\n *ngIf=\"dateNavRange !== DateNavRange.Decade\"\n [ngTemplateOutlet]=\"yearControl\"\n [ngTemplateOutletContext]=\"{ side: 'left' }\"\n ></ng-container>\n\n <ng-container\n *ngIf=\"dateNavRange === DateNavRange.Decade\"\n [ngTemplateOutlet]=\"decadeControl\"\n [ngTemplateOutletContext]=\"{ side: 'left' }\"\n ></ng-container>\n </div>\n <!-- \u5185\u5BB9\u533A -->\n <span\n *ngIf=\"dateNavRange === DateNavRange.Month\"\n [class]=\"bem.element('nav-content')\"\n >\n <ng-container\n [ngTemplateOutlet]=\"$monthBeforeYear() ? monthTemplate : yearTemplate\"\n ></ng-container>\n <div class=\"separator\"></div>\n <ng-container\n [ngTemplateOutlet]=\"$monthBeforeYear() ? yearTemplate : monthTemplate\"\n ></ng-container>\n </span>\n\n <span\n *ngIf=\"dateNavRange === DateNavRange.Year\"\n [class]=\"bem.element('nav-content')\"\n >\n <button\n aui-button=\"text\"\n (click)=\"clickNav(DateNavRange.Year)\"\n >\n {{ $headerRange().start.year }}\n </button>\n </span>\n\n <span\n *ngIf=\"dateNavRange === DateNavRange.Decade\"\n [class]=\"bem.element('nav-content')\"\n >\n {{ $headerRange().start.year }} - {{ $headerRange().end.year }}\n </span>\n\n <div [class]=\"bem.element('nav-action')\">\n <ng-container\n *ngIf=\"dateNavRange !== DateNavRange.Decade\"\n [ngTemplateOutlet]=\"yearControl\"\n [ngTemplateOutletContext]=\"{ side: 'right' }\"\n ></ng-container>\n\n <ng-container\n *ngIf=\"dateNavRange === DateNavRange.Decade\"\n [ngTemplateOutlet]=\"decadeControl\"\n [ngTemplateOutletContext]=\"{ side: 'right' }\"\n ></ng-container>\n </div>\n</div>\n\n<ng-template\n #yearControl\n let-side=\"side\"\n>\n <span class=\"action-bar\">\n <button\n aui-button=\"text\"\n size=\"mini\"\n [square]=\"true\"\n *ngIf=\"side === 'right'\"\n [class.hidden]=\"\n !shouldShowNav(DateNavRange.Month, side) ||\n dateNavRange !== DateNavRange.Month\n \"\n (click)=\"navHead(DateNavRange.Month, 1)\"\n >\n <aui-icon icon=\"angle_right\"></aui-icon>\n </button>\n <button\n aui-button=\"text\"\n size=\"mini\"\n [square]=\"true\"\n (click)=\"navHead(DateNavRange.Year, side === 'left' ? -1 : 1)\"\n [class.hidden]=\"!shouldShowNav(DateNavRange.Year, side)\"\n >\n <aui-icon\n [icon]=\"side === 'left' ? 'angles_left' : 'angles_right'\"\n ></aui-icon>\n </button>\n <button\n aui-button=\"text\"\n size=\"mini\"\n [square]=\"true\"\n *ngIf=\"side === 'left'\"\n [class.hidden]=\"\n !shouldShowNav(DateNavRange.Month, side) ||\n dateNavRange !== DateNavRange.Month\n \"\n (click)=\"navHead(DateNavRange.Month, -1)\"\n >\n <aui-icon icon=\"angle_left\"></aui-icon>\n </button>\n </span>\n</ng-template>\n\n<ng-template\n #decadeControl\n let-side=\"side\"\n>\n <button\n aui-button=\"text\"\n size=\"mini\"\n [square]=\"true\"\n (click)=\"navHead(DateNavRange.Decade, side === 'left' ? -10 : 10)\"\n [class.hidden]=\"!shouldShowNav(DateNavRange.Decade, side)\"\n >\n <aui-icon\n [icon]=\"side === 'left' ? 'angles_left' : 'angles_right'\"\n ></aui-icon>\n </button>\n</ng-template>\n\n<ng-template #yearTemplate>\n <button\n aui-button=\"text\"\n class=\"header-range\"\n (click)=\"clickNav(DateNavRange.Year)\"\n >\n {{ $headerRange().start.year }}\n </button>\n</ng-template>\n<ng-template #monthTemplate>\n <button\n aui-button=\"text\"\n class=\"header-range\"\n (click)=\"clickNav(DateNavRange.Month)\"\n >\n {{ $headerRange().start.month }}\n </button>\n</ng-template>\n", styles: [".aui-calendar-header__container{height:24px;display:flex;align-items:center;justify-content:space-between}.aui-calendar-header__nav-content{flex:1;max-width:calc(100% - var(--aui-inline-height-xs) * 4 - var(--aui-spacing-s) * 2);display:flex;flex-wrap:wrap;justify-content:center;align-items:center;font-size:var(--aui-font-size-l);color:rgb(var(--aui-color-main-text));font-weight:var(--aui-font-weight-bolder)}.aui-calendar-header__nav-content .separator{margin:0 var(--aui-spacing-s)}.aui-calendar-header__nav-content .aui-button--text{color:rgb(var(--aui-color-main-text))}.aui-calendar-header__nav-content .aui-button--text .aui-button__content{font-size:var(--aui-font-size-l);font-weight:var(--aui-font-weight-bolder);padding:0}.aui-calendar-header__nav-content .aui-button--text:hover{background-color:transparent;color:rgb(var(--aui-color-primary));text-decoration:none!important}.aui-calendar-header__nav-content .aui-button--text+.aui-button--text{margin-left:0}.aui-calendar-header__nav-content .aui-button--text.header-range{max-width:100%}.action-bar{width:52px;display:flex}.action-bar .hidden{opacity:0;pointer-events:none}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ButtonComponent, selector: "button[aui-button]", inputs: ["aui-button", "size", "plain", "loading", "round", "square"] }, { kind: "component", type: IconComponent, selector: "aui-icon", inputs: ["icon", "light", "dark", "link", "margin", "size", "color", "background", "backgroundColor"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
91
115
  }
92
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: CalendarHeaderComponent, decorators: [{
116
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: CalendarHeaderComponent, decorators: [{
93
117
  type: Component,
94
- args: [{ selector: 'aui-calendar-header', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
95
- NgIf,
96
- NgTemplateOutlet,
97
- ButtonComponent,
98
- IconComponent,
99
- I18nPipe,
100
- AsyncPipe,
101
- ], template: "<div [class]=\"bem.element('container')\">\n <div>\n <ng-container\n *ngIf=\"dateNavRange !== DateNavRange.Decade\"\n [ngTemplateOutlet]=\"yearControl\"\n [ngTemplateOutletContext]=\"{ side: 'left' }\"\n ></ng-container>\n\n <ng-container\n *ngIf=\"dateNavRange === DateNavRange.Decade\"\n [ngTemplateOutlet]=\"decadeControl\"\n [ngTemplateOutletContext]=\"{ side: 'left' }\"\n ></ng-container>\n </div>\n <!-- \u5185\u5BB9\u533A -->\n <span\n *ngIf=\"dateNavRange === DateNavRange.Month\"\n [class]=\"bem.element('nav-content')\"\n >\n <ng-container\n [ngTemplateOutlet]=\"\n (monthBeforeYear$ | async) ? monthTemplate : yearTemplate\n \"\n ></ng-container>\n <div class=\"separator\">\n <span *ngIf=\"!('year_suffix' | auiI18n) && !('month_suffix' | auiI18n)\">\n /\n </span>\n </div>\n <ng-container\n [ngTemplateOutlet]=\"\n (monthBeforeYear$ | async) ? yearTemplate : monthTemplate\n \"\n ></ng-container>\n </span>\n\n <span\n *ngIf=\"dateNavRange === DateNavRange.Year\"\n [class]=\"bem.element('nav-content')\"\n >\n <button\n aui-button=\"text\"\n (click)=\"clickNav(DateNavRange.Year)\"\n >\n {{ headerRange?.start?.year() }}{{ 'year_suffix' | auiI18n }}\n </button>\n </span>\n\n <span\n *ngIf=\"dateNavRange === DateNavRange.Decade\"\n [class]=\"bem.element('nav-content')\"\n >\n {{ headerRange?.start.year() }} - {{ headerRange?.end?.year() }}\n </span>\n\n <div [class]=\"bem.element('nav-action')\">\n <ng-container\n *ngIf=\"dateNavRange !== DateNavRange.Decade\"\n [ngTemplateOutlet]=\"yearControl\"\n [ngTemplateOutletContext]=\"{ side: 'right' }\"\n ></ng-container>\n\n <ng-container\n *ngIf=\"dateNavRange === DateNavRange.Decade\"\n [ngTemplateOutlet]=\"decadeControl\"\n [ngTemplateOutletContext]=\"{ side: 'right' }\"\n ></ng-container>\n </div>\n</div>\n\n<ng-template\n #yearControl\n let-side=\"side\"\n>\n <span class=\"action-bar\">\n <button\n aui-button=\"text\"\n *ngIf=\"side === 'right'\"\n [class.hidden]=\"\n !shouldShowNav(DateNavRange.Month, side) ||\n dateNavRange !== DateNavRange.Month\n \"\n (click)=\"navHead(DateNavRange.Month, 1)\"\n >\n <aui-icon icon=\"angle_right\"></aui-icon>\n </button>\n <button\n aui-button=\"text\"\n (click)=\"navHead(DateNavRange.Year, side === 'left' ? -1 : 1)\"\n [class.hidden]=\"!shouldShowNav(DateNavRange.Year, side)\"\n >\n <aui-icon\n [icon]=\"side === 'left' ? 'angles_left' : 'angles_right'\"\n ></aui-icon>\n </button>\n <button\n aui-button=\"text\"\n *ngIf=\"side === 'left'\"\n [class.hidden]=\"\n !shouldShowNav(DateNavRange.Month, side) ||\n dateNavRange !== DateNavRange.Month\n \"\n (click)=\"navHead(DateNavRange.Month, -1)\"\n >\n <aui-icon icon=\"angle_left\"></aui-icon>\n </button>\n </span>\n</ng-template>\n\n<ng-template\n #decadeControl\n let-side=\"side\"\n>\n <button\n aui-button=\"text\"\n (click)=\"navHead(DateNavRange.Decade, side === 'left' ? -10 : 10)\"\n [class.hidden]=\"!shouldShowNav(DateNavRange.Decade, side)\"\n >\n <aui-icon\n [icon]=\"side === 'left' ? 'angles_left' : 'angles_right'\"\n ></aui-icon>\n </button>\n</ng-template>\n\n<ng-template #yearTemplate>\n <button\n aui-button=\"text\"\n class=\"header-range\"\n (click)=\"clickNav(DateNavRange.Year)\"\n >\n {{ headerRange?.start?.year() }}{{ 'year_suffix' | auiI18n }}\n </button>\n</ng-template>\n<ng-template #monthTemplate>\n <button\n aui-button=\"text\"\n class=\"header-range\"\n (click)=\"clickNav(DateNavRange.Month)\"\n >\n {{ headerRange?.start?.month() + 1 }}{{ 'month_suffix' | auiI18n }}\n </button>\n</ng-template>\n", styles: [".aui-calendar-header__container{height:24px;display:flex;align-items:center;justify-content:space-between}.aui-calendar-header__nav-content{flex:1;max-width:calc(100% - 96px);display:flex;flex-wrap:wrap;justify-content:center;align-items:center;font-size:var(--aui-font-size-l);color:rgb(var(--aui-color-main-text));font-weight:var(--aui-font-weight-bolder)}.aui-calendar-header__nav-content .separator{margin:0 var(--aui-spacing-s)}.aui-calendar-header__nav-content .aui-button--text{color:rgb(var(--aui-color-main-text))}.aui-calendar-header__nav-content .aui-button--text .aui-button__content{font-size:var(--aui-font-size-l);font-weight:var(--aui-font-weight-bolder);padding:0}.aui-calendar-header__nav-content .aui-button--text:hover{background-color:transparent;color:rgb(var(--aui-color-primary));text-decoration:none!important}.aui-calendar-header__nav-content .aui-button--text+.aui-button--text{margin-left:0}.aui-calendar-header__nav-content .aui-button--text.header-range{max-width:100%}.action-bar{width:52px;display:flex}.action-bar .hidden{opacity:0;pointer-events:none}\n"] }]
102
- }], ctorParameters: function () { return [{ type: i1.I18nService }]; }, propDecorators: { dateNavRange: [{
118
+ args: [{ selector: 'aui-calendar-header', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgIf, NgTemplateOutlet, ButtonComponent, IconComponent, I18nPipe], template: "<div [class]=\"bem.element('container')\">\n <div>\n <ng-container\n *ngIf=\"dateNavRange !== DateNavRange.Decade\"\n [ngTemplateOutlet]=\"yearControl\"\n [ngTemplateOutletContext]=\"{ side: 'left' }\"\n ></ng-container>\n\n <ng-container\n *ngIf=\"dateNavRange === DateNavRange.Decade\"\n [ngTemplateOutlet]=\"decadeControl\"\n [ngTemplateOutletContext]=\"{ side: 'left' }\"\n ></ng-container>\n </div>\n <!-- \u5185\u5BB9\u533A -->\n <span\n *ngIf=\"dateNavRange === DateNavRange.Month\"\n [class]=\"bem.element('nav-content')\"\n >\n <ng-container\n [ngTemplateOutlet]=\"$monthBeforeYear() ? monthTemplate : yearTemplate\"\n ></ng-container>\n <div class=\"separator\"></div>\n <ng-container\n [ngTemplateOutlet]=\"$monthBeforeYear() ? yearTemplate : monthTemplate\"\n ></ng-container>\n </span>\n\n <span\n *ngIf=\"dateNavRange === DateNavRange.Year\"\n [class]=\"bem.element('nav-content')\"\n >\n <button\n aui-button=\"text\"\n (click)=\"clickNav(DateNavRange.Year)\"\n >\n {{ $headerRange().start.year }}\n </button>\n </span>\n\n <span\n *ngIf=\"dateNavRange === DateNavRange.Decade\"\n [class]=\"bem.element('nav-content')\"\n >\n {{ $headerRange().start.year }} - {{ $headerRange().end.year }}\n </span>\n\n <div [class]=\"bem.element('nav-action')\">\n <ng-container\n *ngIf=\"dateNavRange !== DateNavRange.Decade\"\n [ngTemplateOutlet]=\"yearControl\"\n [ngTemplateOutletContext]=\"{ side: 'right' }\"\n ></ng-container>\n\n <ng-container\n *ngIf=\"dateNavRange === DateNavRange.Decade\"\n [ngTemplateOutlet]=\"decadeControl\"\n [ngTemplateOutletContext]=\"{ side: 'right' }\"\n ></ng-container>\n </div>\n</div>\n\n<ng-template\n #yearControl\n let-side=\"side\"\n>\n <span class=\"action-bar\">\n <button\n aui-button=\"text\"\n size=\"mini\"\n [square]=\"true\"\n *ngIf=\"side === 'right'\"\n [class.hidden]=\"\n !shouldShowNav(DateNavRange.Month, side) ||\n dateNavRange !== DateNavRange.Month\n \"\n (click)=\"navHead(DateNavRange.Month, 1)\"\n >\n <aui-icon icon=\"angle_right\"></aui-icon>\n </button>\n <button\n aui-button=\"text\"\n size=\"mini\"\n [square]=\"true\"\n (click)=\"navHead(DateNavRange.Year, side === 'left' ? -1 : 1)\"\n [class.hidden]=\"!shouldShowNav(DateNavRange.Year, side)\"\n >\n <aui-icon\n [icon]=\"side === 'left' ? 'angles_left' : 'angles_right'\"\n ></aui-icon>\n </button>\n <button\n aui-button=\"text\"\n size=\"mini\"\n [square]=\"true\"\n *ngIf=\"side === 'left'\"\n [class.hidden]=\"\n !shouldShowNav(DateNavRange.Month, side) ||\n dateNavRange !== DateNavRange.Month\n \"\n (click)=\"navHead(DateNavRange.Month, -1)\"\n >\n <aui-icon icon=\"angle_left\"></aui-icon>\n </button>\n </span>\n</ng-template>\n\n<ng-template\n #decadeControl\n let-side=\"side\"\n>\n <button\n aui-button=\"text\"\n size=\"mini\"\n [square]=\"true\"\n (click)=\"navHead(DateNavRange.Decade, side === 'left' ? -10 : 10)\"\n [class.hidden]=\"!shouldShowNav(DateNavRange.Decade, side)\"\n >\n <aui-icon\n [icon]=\"side === 'left' ? 'angles_left' : 'angles_right'\"\n ></aui-icon>\n </button>\n</ng-template>\n\n<ng-template #yearTemplate>\n <button\n aui-button=\"text\"\n class=\"header-range\"\n (click)=\"clickNav(DateNavRange.Year)\"\n >\n {{ $headerRange().start.year }}\n </button>\n</ng-template>\n<ng-template #monthTemplate>\n <button\n aui-button=\"text\"\n class=\"header-range\"\n (click)=\"clickNav(DateNavRange.Month)\"\n >\n {{ $headerRange().start.month }}\n </button>\n</ng-template>\n", styles: [".aui-calendar-header__container{height:24px;display:flex;align-items:center;justify-content:space-between}.aui-calendar-header__nav-content{flex:1;max-width:calc(100% - var(--aui-inline-height-xs) * 4 - var(--aui-spacing-s) * 2);display:flex;flex-wrap:wrap;justify-content:center;align-items:center;font-size:var(--aui-font-size-l);color:rgb(var(--aui-color-main-text));font-weight:var(--aui-font-weight-bolder)}.aui-calendar-header__nav-content .separator{margin:0 var(--aui-spacing-s)}.aui-calendar-header__nav-content .aui-button--text{color:rgb(var(--aui-color-main-text))}.aui-calendar-header__nav-content .aui-button--text .aui-button__content{font-size:var(--aui-font-size-l);font-weight:var(--aui-font-weight-bolder);padding:0}.aui-calendar-header__nav-content .aui-button--text:hover{background-color:transparent;color:rgb(var(--aui-color-primary));text-decoration:none!important}.aui-calendar-header__nav-content .aui-button--text+.aui-button--text{margin-left:0}.aui-calendar-header__nav-content .aui-button--text.header-range{max-width:100%}.action-bar{width:52px;display:flex}.action-bar .hidden{opacity:0;pointer-events:none}\n"] }]
119
+ }], ctorParameters: () => [{ type: i1.I18nService }], propDecorators: { dateNavRange: [{
103
120
  type: Input
104
121
  }], anchor: [{
105
122
  type: Input
@@ -112,4 +129,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImpor
112
129
  }], anchorChange: [{
113
130
  type: Output
114
131
  }] } });
115
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2RhdGUtcGlja2VyL2NhbGVuZGFyL2hlYWRlci9jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvZGF0ZS1waWNrZXIvY2FsZW5kYXIvaGVhZGVyL3RlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxLQUE0QixNQUFNLE9BQU8sQ0FBQztBQUNqRCxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV0QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbkUsT0FBTyxFQUFFLFFBQVEsRUFBZSxNQUFNLGVBQWUsQ0FBQztBQUN0RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMvRCxPQUFPLEVBRUwsWUFBWSxFQUNaLElBQUksR0FDTCxNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMxRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sU0FBUyxDQUFDOzs7QUFFekMsTUFBTSxHQUFHLEdBQUcsUUFBUSxDQUFDLHFCQUFxQixDQUFDLENBQUM7QUFrQjVDLE1BQU0sT0FBTyx1QkFBdUI7SUFVbEMsSUFBWSxTQUFTO1FBQ25CLE9BQU8sSUFBSSxDQUFD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QUM7Z0JBQ3ZDLE1BQU07YUFDUDtZQUNELEtBQUssWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUN0QixNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUN0QyxNQUFNO2FBQ1A7WUFDRCxLQUFLLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDeEIsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDdEMsTUFBTTthQUNQO1NBQ0Y7UUFDRCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNqQyxDQUFDOzhHQXRHVSx1QkFBdUI7a0dBQXZCLHVCQUF1QixvUUMxQ3BDLHUxSEE4SUEseW5DRDVHSSxJQUFJLDZGQUNKLGdCQUFnQixvSkFDaEIsZUFBZSxzSUFDZixhQUFhLHVKQUNiLFFBQVEsMkNBQ1IsU0FBUzs7MkZBR0EsdUJBQXVCO2tCQWhCbkMsU0FBUzsrQkFDRSxxQkFBcUIsaUJBR2hCLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQO3dCQUNQLElBQUk7d0JBQ0osZ0JBQWdCO3dCQUNoQixlQUFlO3dCQUNmLGFBQWE7d0JBQ2IsUUFBUTt3QkFDUixTQUFTO3FCQUNWO2tHQUlELFlBQVk7c0JBRFgsS0FBSztnQkFJTixNQUFNO3NCQURMLEtBQUs7Z0JBSU4sUUFBUTtzQkFEUCxLQUFLO2dCQVFOLFFBQVE7c0JBRFAsS0FBSztnQkFRTixjQUFjO3NCQURiLE1BQU07Z0JBSVAsWUFBWTtzQkFEWCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXN5bmNQaXBlLCBOZ0lmLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IGRheWpzLCB7IENvbmZpZ1R5cGUsIERheWpzIH0gZnJvbSAnZGF5anMnO1xuaW1wb3J0IHsgbWFwLCBzdGFydFdpdGggfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vYnV0dG9uL2J1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgSTE4blBpcGUsIEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vaTE4bic7XG5pbXBvcnQgeyBJY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vaWNvbi9pY29uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBidWlsZEJlbSwgcHVibGlzaFJlZiB9IGZyb20gJy4uLy4uLy4uL2ludGVybmFsL3V0aWxzJztcbmltcG9ydCB7XG4gIENhbGVuZGFySGVhZGVyUmFuZ2UsXG4gIERhdGVOYXZSYW5nZSxcbiAgU2lkZSxcbn0gZnJvbSAnLi4vLi4vZGF0ZS1waWNrZXIudHlwZSc7XG5pbXBvcnQgeyBEYXRlUGlja2VyVHlwZSwgTU9OVEgsIFlFQVIgfSBmcm9tICcuLi9jb25zdGFudCc7XG5pbXBvcnQgeyBjYWxjUmFuZ2VWYWx1ZSB9IGZyb20gJy4uL3V0aWwnO1xuXG5jb25zdCBiZW0gPSBidWlsZEJlbSgnYXVpLWNhbGVuZGFyLWhlYWRlcicpO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhdWktY2FsZW5kYXItaGVhZGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RlbXBsYXRlLmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zdHlsZS5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgTmdJZixcbiAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgIEJ1dHRvbkNvbXBvbmVudCxcbiAgICBJY29uQ29tcG9uZW50LFxuICAgIEkxOG5QaXBlLFxuICAgIEFzeW5jUGlwZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2FsZW5kYXJIZWFkZXJDb21wb25lbnQge1xuICBASW5wdXQoKVxuICBkYXRlTmF2UmFuZ2UgPSBEYXRlTmF2UmFuZ2UuTW9udGg7XG5cbiAgQElucHV0KClcbiAgYW5jaG9yID0gZGF5anMoKTtcblxuICBASW5wdXQoKVxuICBtYXhBdmFpbD86IENvbmZpZ1R5cGU7XG5cbiAgcHJpdmF0ZSBnZXQgX21heEF2YWlsKCkge1xuICAgIHJldHVybiB0aGlzLm1heEF2YWlsID8gZGF5anModGhpcy5tYXhBdmFpbCkgOiBudWxsO1xuICB9XG5cbiAgQElucHV0KClcbiAgbWluQXZhaWw/OiBDb25maWdUeXBlO1xuXG4gIHByaXZhdGUgZ2V0IF9taW5BdmFpbCgpIHtcbiAgICByZXR1cm4gdGhpcy5taW5BdmFpbCA/IGRheWpzKHRoaXMubWluQXZhaWwpIDogbnVsbDtcbiAgfVxuXG4gIEBPdXRwdXQoKVxuICBuYXZSYW5nZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZU5hdlJhbmdlPigpO1xuXG4gIEBPdXRwdXQoKVxuICBhbmNob3JDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPERheWpzPigpO1xuXG4gIGdldCBoZWFkZXJSYW5nZSgpOiBDYWxlbmRhckhlYWRlclJhbmdlIHtcbiAgICByZXR1cm4gY2FsY1JhbmdlVmFsdWUodGhpcy5kYXRlTmF2UmFuZ2UsIHRoaXMuYW5jaG9yKTtcbiAgfVxuXG4gIGJlbSA9IGJlbTtcblxuICBEYXRlTmF2UmFuZ2UgPSBEYXRlTmF2UmFuZ2U7XG5cbiAgbW9udGhCZWZvcmVZZWFyJCA9IHRoaXMuaTE4blNlcnZpY2UubG9jYWxlQ2hhbmdlJC5waXBlKFxuICAgIG1hcChsb2NhbGUgPT4ge1xuICAgICAgY29uc3QgcGFydHMgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChsb2NhbGUpLmZvcm1hdFRvUGFydHMobmV3IERhdGUoKSk7XG4gICAgICByZXR1cm4gKFxuICAgICAgICBwYXJ0cy5maW5kSW5kZXgocGFydCA9PiBwYXJ0LnR5cGUgPT09IERhdGVQaWNrZXJUeXBlLk1vbnRoKSA8XG4gICAgICAgIHBhcnRzLmZpbmRJbmRleChwYXJ0ID0+IHBhcnQudHlwZSA9PT0gRGF0ZVBpY2tlclR5cGUuWWVhcilcbiAgICAgICk7XG4gICAgfSksXG4gICAgc3RhcnRXaXRoKGZhbHNlKSxcbiAgICBwdWJsaXNoUmVmKCksXG4gICk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBpMThuU2VydmljZTogSTE4blNlcnZpY2UpIHt9XG5cbiAgLy8gbWF4QXZhaWwgPiBjdXJyZW50IGRhdGUg77yacmlnaHQgYnRuIGhpZGVcbiAgLy8gbWluQXZhaWwgPiBjdXJyZW50IGRhdGUg77yabGVmdCBidG4gaGlkZVxuICBzaG91bGRTaG93TmF2KHR5cGU6IERhdGVOYXZSYW5nZSwgc2lkZTogU2lkZSkge1xuICAgIGNvbnN0IGF2YWlsVmFsdWUgPSAoXG4gICAgICBzaWRlID09PSBTaWRlLkxlZnQgPyB0aGlzLl9taW5BdmFpbCA6IHRoaXMuX21heEF2YWlsXG4gICAgKT8uY2xvbmUoKTtcbiAgICBpZiAoIWF2YWlsVmFsdWUpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICAvLyDlr7nkuo7lubTnmoTliKTliKvvvIwyMDE0LTUtMeiHszIwMTUtNi0x5pel77yM5LuN5b2T5bGV56S65oyJ6ZKuXG4gICAgY29uc3QgY29uc3RyYWluRGF0ZSA9IFtEYXRlTmF2UmFuZ2UuTW9udGgsIERhdGVOYXZSYW5nZS5ZZWFyXS5pbmNsdWRlcyh0eXBlKVxuICAgICAgPyBhdmFpbFZhbHVlLmFkZChzaWRlID09PSBTaWRlLkxlZnQgPyAxIDogLTEsIHR5cGUgYXMgJ21vbnRoJyB8ICd5ZWFyJylcbiAgICAgIDogYXZhaWxWYWx1ZTtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5jb21wYXJlTmF2VmFsdWUodHlwZSwgY29uc3RyYWluRGF0ZSwgdGhpcy5hbmNob3IpID09PVxuICAgICAgKHNpZGUgPT09IFNpZGUuTGVmdCA/IC0xIDogMSlcbiAgICApO1xuICB9XG5cbiAgLy8gQHJldHVybiBpc0JldHdlZW58aXNFcXVhbDowLCBpc0JlZm9yZTotMSxpc0FmdGVyOjFcbiAgY29tcGFyZU5hdlZhbHVlKHR5cGU6IERhdGVOYXZSYW5nZSwgY29uc3RyYWluOiBEYXlqcywgYW5jaG9yOiBEYXlqcykge1xuICAgIGNvbnN0IHJhbmdlID0gY2FsY1JhbmdlVmFsdWUodHlwZSwgYW5jaG9yKTtcbiAgICBjb25zdCBjb25zdHJhaW5WYWx1ZSA9IGNvbnN0cmFpbjtcbiAgICBpZiAodHlwZSA9PT0gRGF0ZU5hdlJhbmdlLkRlY2FkZSkge1xuICAgICAgaWYgKGNvbnN0cmFpblZhbHVlLmlzQmV0d2VlbihyYW5nZS5zdGFydCwgcmFuZ2UuZW5kLCBZRUFSKSkge1xuICAgICAgICByZXR1cm4gMDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBjb25zdHJhaW5WYWx1ZS5pc0JlZm9yZShyYW5nZS5zdGFydCkgPyAtMSA6IDE7XG4gICAgfVxuICAgIHJldHVybiBjb25zdHJhaW5WYWx1ZS5pc1NhbWUocmFuZ2Uuc3RhcnQsIE1PTlRIKVxuICAgICAgPyAwXG4gICAgICA6IGNvbnN0cmFpblZhbHVlLmlzQmVmb3JlKHJhbmdlLnN0YXJ0LCBNT05USClcbiAgICAgID8gLTFcbiAgICAgIDogMTtcbiAgfVxuXG4gIG5hdkhlYWQocmFuZ2U6IERhdGVOYXZSYW5nZSwgdmFsdWU6IG51bWJlcikge1xuICAgIGxldCBhbmNob3I6IERheWpzO1xuICAgIHN3aXRjaCAocmFuZ2UpIHtcbiAgICAgIGNhc2UgRGF0ZU5hdlJhbmdlLk1vbnRoOiB7XG4gICAgICAgIGFuY2hvciA9IHRoaXMuYW5jaG9yLmFkZCh2YWx1ZSwgTU9OVEgpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgRGF0ZU5hdlJhbmdlLlllYXI6IHtcbiAgICAgICAgYW5jaG9yID0gdGhpcy5hbmNob3IuYWRkKHZhbHVlLCBZRUFSKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlIERhdGVOYXZSYW5nZS5EZWNhZGU6IHtcbiAgICAgICAgYW5jaG9yID0gdGhpcy5hbmNob3IuYWRkKHZhbHVlLCBZRUFSKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuYW5jaG9yQ2hhbmdlLm5leHQoYW5jaG9yKTtcbiAgfVxuXG4gIGNsaWNrTmF2ID0gKHJhbmdlOiBEYXRlTmF2UmFuZ2UpID0+IHtcbiAgICBpZiAoIVtEYXRlTmF2UmFuZ2UuTW9udGgsIERhdGVOYXZSYW5nZS5ZZWFyXS5pbmNsdWRlcyhyYW5nZSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5uYXZSYW5nZUNoYW5nZS5uZXh0KFxuICAgICAgcmFuZ2UgPT09IERhdGVOYXZSYW5nZS5Nb250aCA/IERhdGVOYXZSYW5nZS5ZZWFyIDogRGF0ZU5hdlJhbmdlLkRlY2FkZSxcbiAgICApO1xuICB9O1xufVxuIiwiPGRpdiBbY2xhc3NdPVwiYmVtLmVsZW1lbnQoJ2NvbnRhaW5lcicpXCI+XG4gIDxkaXY+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgKm5nSWY9XCJkYXRlTmF2UmFuZ2UgIT09IERhdGVOYXZSYW5nZS5EZWNhZGVcIlxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwieWVhckNvbnRyb2xcIlxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgc2lkZTogJ2xlZnQnIH1cIlxuICAgID48L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICpuZ0lmPVwiZGF0ZU5hdlJhbmdlID09PSBEYXRlTmF2UmFuZ2UuRGVjYWRlXCJcbiAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImRlY2FkZUNvbnRyb2xcIlxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgc2lkZTogJ2xlZnQnIH1cIlxuICAgID48L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG4gIDwhLS0g5YaF5a655Yy6IC0tPlxuICA8c3BhblxuICAgICpuZ0lmPVwiZGF0ZU5hdlJhbmdlID09PSBEYXRlTmF2UmFuZ2UuTW9udGhcIlxuICAgIFtjbGFzc109XCJiZW0uZWxlbWVudCgnbmF2LWNvbnRlbnQnKVwiXG4gID5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJcbiAgICAgICAgKG1vbnRoQmVmb3JlWWVhciQgfCBhc3luYykgPyBtb250aFRlbXBsYXRlIDogeWVhclRlbXBsYXRlXG4gICAgICBcIlxuICAgID48L25nLWNvbnRhaW5lcj5cbiAgICA8ZGl2IGNsYXNzPVwic2VwYXJhdG9yXCI+XG4gICAgICA8c3BhbiAqbmdJZj1cIiEoJ3llYXJfc3VmZml4JyB8IGF1aUkxOG4pICYmICEoJ21vbnRoX3N1ZmZpeCcgfCBhdWlJMThuKVwiPlxuICAgICAgICAvXG4gICAgICA8L3NwYW4+XG4gICAgPC9kaXY+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiXG4gICAgICAgIChtb250aEJlZm9yZVllYXIkIHwgYXN5bmMpID8geWVhclRlbXBsYXRlIDogbW9udGhUZW1wbGF0ZVxuICAgICAgXCJcbiAgICA+PC9uZy1jb250YWluZXI+XG4gIDwvc3Bhbj5cblxuICA8c3BhblxuICAgICpuZ0lmPVwiZGF0ZU5hdlJhbmdlID09PSBEYXRlTmF2UmFuZ2UuWWVhclwiXG4gICAgW2NsYXNzXT1cImJlbS5lbGVtZW50KCduYXYtY29udGVudCcpXCJcbiAgPlxuICAgIDxidXR0b25cbiAgICAgIGF1aS1idXR0b249XCJ0ZXh0XCJcbiAgICAgIChjbGljayk9XCJjbGlja05hdihEYXRlTmF2UmFuZ2UuWWVhcilcIlxuICAgID5cbiAgICAgIHt7IGhlYWRlclJhbmdlPy5zdGFydD8ueWVhcigpIH19e3sgJ3llYXJfc3VmZml4JyB8IGF1aUkxOG4gfX1cbiAgICA8L2J1dHRvbj5cbiAgPC9zcGFuPlxuXG4gIDxzcGFuXG4gICAgKm5nSWY9XCJkYXRlTmF2UmFuZ2UgPT09IERhdGVOYXZSYW5nZS5EZWNhZGVcIlxuICAgIFtjbGFzc109XCJiZW0uZWxlbWVudCgnbmF2LWNvbnRlbnQnKVwiXG4gID5cbiAgICB7eyBoZWFkZXJSYW5nZT8uc3RhcnQueWVhcigpIH19IC0ge3sgaGVhZGVyUmFuZ2U/LmVuZD8ueWVhcigpIH19XG4gIDwvc3Bhbj5cblxuICA8ZGl2IFtjbGFzc109XCJiZW0uZWxlbWVudCgnbmF2LWFjdGlvbicpXCI+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgKm5nSWY9XCJkYXRlTmF2UmFuZ2UgIT09IERhdGVOYXZSYW5nZS5EZWNhZGVcIlxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwieWVhckNvbnRyb2xcIlxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgc2lkZTogJ3JpZ2h0JyB9XCJcbiAgICA+PC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAqbmdJZj1cImRhdGVOYXZSYW5nZSA9PT0gRGF0ZU5hdlJhbmdlLkRlY2FkZVwiXG4gICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJkZWNhZGVDb250cm9sXCJcbiAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IHNpZGU6ICdyaWdodCcgfVwiXG4gICAgPjwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGVcbiAgI3llYXJDb250cm9sXG4gIGxldC1zaWRlPVwic2lkZVwiXG4+XG4gIDxzcGFuIGNsYXNzPVwiYWN0aW9uLWJhclwiPlxuICAgIDxidXR0b25cbiAgICAgIGF1aS1idXR0b249XCJ0ZXh0XCJcbiAgICAgICpuZ0lmPVwic2lkZSA9PT0gJ3JpZ2h0J1wiXG4gICAgICBbY2xhc3MuaGlkZGVuXT1cIlxuICAgICAgICAhc2hvdWxkU2hvd05hdihEYXRlTmF2UmFuZ2UuTW9udGgsIHNpZGUpIHx8XG4gICAgICAgIGRhdGVOYXZSYW5nZSAhPT0gRGF0ZU5hdlJhbmdlLk1vbnRoXG4gICAgICBcIlxuICAgICAgKGNsaWNrKT1cIm5hdkhlYWQoRGF0ZU5hdlJhbmdlLk1vbnRoLCAxKVwiXG4gICAgPlxuICAgICAgPGF1aS1pY29uIGljb249XCJhbmdsZV9yaWdodFwiPjwvYXVpLWljb24+XG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvblxuICAgICAgYXVpLWJ1dHRvbj1cInRleHRcIlxuICAgICAgKGNsaWNrKT1cIm5hdkhlYWQoRGF0ZU5hdlJhbmdlLlllYXIsIHNpZGUgPT09ICdsZWZ0JyA/IC0xIDogMSlcIlxuICAgICAgW2NsYXNzLmhpZGRlbl09XCIhc2hvdWxkU2hvd05hdihEYXRlTmF2UmFuZ2UuWWVhciwgc2lkZSlcIlxuICAgID5cbiAgICAgIDxhdWktaWNvblxuICAgICAgICBbaWNvbl09XCJzaWRlID09PSAnbGVmdCcgPyAnYW5nbGVzX2xlZnQnIDogJ2FuZ2xlc19yaWdodCdcIlxuICAgICAgPjwvYXVpLWljb24+XG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvblxuICAgICAgYXVpLWJ1dHRvbj1cInRleHRcIlxuICAgICAgKm5nSWY9XCJzaWRlID09PSAnbGVmdCdcIlxuICAgICAgW2NsYXNzLmhpZGRlbl09XCJcbiAgICAgICAgIXNob3VsZFNob3dOYXYoRGF0ZU5hdlJhbmdlLk1vbnRoLCBzaWRlKSB8fFxuICAgICAgICBkYXRlTmF2UmFuZ2UgIT09IERhdGVOYXZSYW5nZS5Nb250aFxuICAgICAgXCJcbiAgICAgIChjbGljayk9XCJuYXZIZWFkKERhdGVOYXZSYW5nZS5Nb250aCwgLTEpXCJcbiAgICA+XG4gICAgICA8YXVpLWljb24gaWNvbj1cImFuZ2xlX2xlZnRcIj48L2F1aS1pY29uPlxuICAgIDwvYnV0dG9uPlxuICA8L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGVcbiAgI2RlY2FkZUNvbnRyb2xcbiAgbGV0LXNpZGU9XCJzaWRlXCJcbj5cbiAgPGJ1dHRvblxuICAgIGF1aS1idXR0b249XCJ0ZXh0XCJcbiAgICAoY2xpY2spPVwibmF2SGVhZChEYXRlTmF2UmFuZ2UuRGVjYWRlLCBzaWRlID09PSAnbGVmdCcgPyAtMTAgOiAxMClcIlxuICAgIFtjbGFzcy5oaWRkZW5dPVwiIXNob3VsZFNob3dOYXYoRGF0ZU5hdlJhbmdlLkRlY2FkZSwgc2lkZSlcIlxuICA+XG4gICAgPGF1aS1pY29uXG4gICAgICBbaWNvbl09XCJzaWRlID09PSAnbGVmdCcgPyAnYW5nbGVzX2xlZnQnIDogJ2FuZ2xlc19yaWdodCdcIlxuICAgID48L2F1aS1pY29uPlxuICA8L2J1dHRvbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjeWVhclRlbXBsYXRlPlxuICA8YnV0dG9uXG4gICAgYXVpLWJ1dHRvbj1cInRleHRcIlxuICAgIGNsYXNzPVwiaGVhZGVyLXJhbmdlXCJcbiAgICAoY2xpY2spPVwiY2xpY2tOYXYoRGF0ZU5hdlJhbmdlLlllYXIpXCJcbiAgPlxuICAgIHt7IGhlYWRlclJhbmdlPy5zdGFydD8ueWVhcigpIH19e3sgJ3llYXJfc3VmZml4JyB8IGF1aUkxOG4gfX1cbiAgPC9idXR0b24+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNtb250aFRlbXBsYXRlPlxuICA8YnV0dG9uXG4gICAgYXVpLWJ1dHRvbj1cInRleHRcIlxuICAgIGNsYXNzPVwiaGVhZGVyLXJhbmdlXCJcbiAgICAoY2xpY2spPVwiY2xpY2tOYXYoRGF0ZU5hdlJhbmdlLk1vbnRoKVwiXG4gID5cbiAgICB7eyBoZWFkZXJSYW5nZT8uc3RhcnQ/Lm1vbnRoKCkgKyAxIH19e3sgJ21vbnRoX3N1ZmZpeCcgfCBhdWlJMThuIH19XG4gIDwvYnV0dG9uPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
132
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2RhdGUtcGlja2VyL2NhbGVuZGFyL2hlYWRlci9jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvZGF0ZS1waWNrZXIvY2FsZW5kYXIvaGVhZGVyL3RlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLGlCQUFpQixFQUNqQixRQUFRLEVBQ1IsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sS0FBNEIsTUFBTSxPQUFPLENBQUM7QUFFakQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxRQUFRLEVBQWUsTUFBTSxlQUFlLENBQUM7QUFDdEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzdELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVELE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxTQUFTLENBQUM7OztBQUV6QyxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMscUJBQXFCLENBQUMsQ0FBQztBQVc1QyxNQUFNLE9BQU8sdUJBQXVCO0lBQ2xDLElBQ0ksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFRCxJQUFJLFlBQVksQ0FBQyxHQUFHO1FBQ2xCLElBQUks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QU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQ3RDLE1BQU07WUFDUixDQUFDO1FBQ0gsQ0FBQztRQUNELElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2pDLENBQUM7OEdBL0hVLHVCQUF1QjtrR0FBdkIsdUJBQXVCLG9RQ2hDcEMscXdIQThJQSwrcUNEaEhZLElBQUksNkZBQUUsZ0JBQWdCLG9KQUFFLGVBQWUsc0lBQUUsYUFBYTs7MkZBRXJELHVCQUF1QjtrQkFUbkMsU0FBUzsrQkFDRSxxQkFBcUIsaUJBR2hCLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQLENBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsUUFBUSxDQUFDO2dGQUl2RSxZQUFZO3NCQURmLEtBQUs7Z0JBYUYsTUFBTTtzQkFEVCxLQUFLO2dCQWFOLFFBQVE7c0JBRFAsS0FBSztnQkFRTixRQUFRO3NCQURQLEtBQUs7Z0JBUU4sY0FBYztzQkFEYixNQUFNO2dCQUlQLFlBQVk7c0JBRFgsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nSWYsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgY29tcHV0ZWQsXG4gIHNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgZGF5anMsIHsgQ29uZmlnVHlwZSwgRGF5anMgfSBmcm9tICdkYXlqcyc7XG5cbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IEkxOG5QaXBlLCBJMThuU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2kxOG4nO1xuaW1wb3J0IHsgSWNvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2ljb24vaWNvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgYnVpbGRCZW0gfSBmcm9tICcuLi8uLi8uLi9pbnRlcm5hbC91dGlscyc7XG5pbXBvcnQgeyBEYXRlTmF2UmFuZ2UsIFNpZGUgfSBmcm9tICcuLi8uLi9kYXRlLXBpY2tlci50eXBlJztcbmltcG9ydCB7IE1PTlRILCBZRUFSIH0gZnJvbSAnLi4vY29uc3RhbnQnO1xuaW1wb3J0IHsgY2FsY1JhbmdlVmFsdWUgfSBmcm9tICcuLi91dGlsJztcblxuY29uc3QgYmVtID0gYnVpbGRCZW0oJ2F1aS1jYWxlbmRhci1oZWFkZXInKTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXVpLWNhbGVuZGFyLWhlYWRlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi90ZW1wbGF0ZS5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc3R5bGUuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW05nSWYsIE5nVGVtcGxhdGVPdXRsZXQsIEJ1dHRvbkNvbXBvbmVudCwgSWNvbkNvbXBvbmVudCwgSTE4blBpcGVdLFxufSlcbmV4cG9ydCBjbGFzcyBDYWxlbmRhckhlYWRlckNvbXBvbmVudCB7XG4gIEBJbnB1dCgpXG4gIGdldCBkYXRlTmF2UmFuZ2UoKSB7XG4gICAgcmV0dXJuIHRoaXMuJCRkYXRlTmF2UmFuZ2UoKTtcbiAgfVxuXG4gIHNldCBkYXRlTmF2UmFuZ2UodmFsKSB7XG4gICAgaWYgKCF2YWwgfHwgdGhpcy4kJGRhdGVOYXZSYW5nZSgpID09PSB2YWwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy4kJGRhdGVOYXZSYW5nZS5zZXQodmFsKTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIGdldCBhbmNob3IoKSB7XG4gICAgcmV0dXJuIHRoaXMuJCRhbmNob3IoKTtcbiAgfVxuXG4gIHNldCBhbmNob3IodmFsKSB7XG4gICAgaWYgKCF2YWwgfHwgdGhpcy4kJGFuY2hvcigpID09PSB2YWwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy4kJGFuY2hvci5zZXQodmFsKTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIG1heEF2YWlsPzogQ29uZmlnVHlwZTtcblxuICBwcml2YXRlIGdldCBfbWF4QXZhaWwoKSB7XG4gICAgcmV0dXJuIHRoaXMubWF4QXZhaWwgPyBkYXlqcyh0aGlzLm1heEF2YWlsKSA6IG51bGw7XG4gIH1cblxuICBASW5wdXQoKVxuICBtaW5BdmFpbD86IENvbmZpZ1R5cGU7XG5cbiAgcHJpdmF0ZSBnZXQgX21pbkF2YWlsKCkge1xuICAgIHJldHVybiB0aGlzLm1pbkF2YWlsID8gZGF5anModGhpcy5taW5BdmFpbCkgOiBudWxsO1xuICB9XG5cbiAgQE91dHB1dCgpXG4gIG5hdlJhbmdlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlTmF2UmFuZ2U+KCk7XG5cbiAgQE91dHB1dCgpXG4gIGFuY2hvckNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8RGF5anM+KCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSAkJGRhdGVOYXZSYW5nZSA9IHNpZ25hbChEYXRlTmF2UmFuZ2UuTW9udGgpO1xuICBwcml2YXRlIHJlYWRvbmx5ICQkYW5jaG9yID0gc2lnbmFsKGRheWpzKCkpO1xuXG4gIGJlbSA9IGJlbTtcblxuICBEYXRlTmF2UmFuZ2UgPSBEYXRlTmF2UmFuZ2U7XG5cbiAgJG1vbnRoQmVmb3JlWWVhciA9IHRoaXMuaTE4blNlcnZpY2UuJG1vbnRoQmVmb3JlWWVhcjtcblxuICAkaGVhZGVyUmFuZ2UgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgbG9jYWxlID0gdGhpcy5pMThuU2VydmljZS4kbG9jYWxlKCk7XG4gICAgY29uc3QgW3N0YXJ0LCBlbmRdID0gT2JqZWN0LnZhbHVlcyhcbiAgICAgIGNhbGNSYW5nZVZhbHVlKHRoaXMuJCRkYXRlTmF2UmFuZ2UoKSwgdGhpcy4kJGFuY2hvcigpKSxcbiAgICApLm1hcChkYXRlID0+IGRhdGUudG9EYXRlKCkpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHN0YXJ0OiB7XG4gICAgICAgIHllYXI6IHN0YXJ0LnRvTG9jYWxlRGF0ZVN0cmluZyhsb2NhbGUsIHsgeWVhcjogJ251bWVyaWMnIH0pLFxuICAgICAgICBtb250aDogc3RhcnQudG9Mb2NhbGVEYXRlU3RyaW5nKGxvY2FsZSwgeyBtb250aDogJ3Nob3J0JyB9KSxcbiAgICAgIH0sXG4gICAgICBlbmQ6IHtcbiAgICAgICAgeWVhcjogZW5kPy50b0xvY2FsZURhdGVTdHJpbmcobG9jYWxlLCB7IHllYXI6ICdudW1lcmljJyB9KSxcbiAgICAgICAgbW9udGg6IGVuZD8udG9Mb2NhbGVEYXRlU3RyaW5nKGxvY2FsZSwgeyBtb250aDogJ3Nob3J0JyB9KSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfSk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBpMThuU2VydmljZTogSTE4blNlcnZpY2UpIHt9XG5cbiAgLy8gbWF4QXZhaWwgPiBjdXJyZW50IGRhdGUg77yacmlnaHQgYnRuIGhpZGVcbiAgLy8gbWluQXZhaWwgPiBjdXJyZW50IGRhdGUg77yabGVmdCBidG4gaGlkZVxuICBzaG91bGRTaG93TmF2KHR5cGU6IERhdGVOYXZSYW5nZSwgc2lkZTogU2lkZSkge1xuICAgIGNvbnN0IGF2YWlsVmFsdWUgPSAoXG4gICAgICBzaWRlID09PSBTaWRlLkxlZnQgPyB0aGlzLl9taW5BdmFpbCA6IHRoaXMuX21heEF2YWlsXG4gICAgKT8uY2xvbmUoKTtcbiAgICBpZiAoIWF2YWlsVmFsdWUpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICAvLyDlr7nkuo7lubTnmoTliKTliKvvvIwyMDE0LTUtMeiHszIwMTUtNi0x5pel77yM5LuN5b2T5bGV56S65oyJ6ZKuXG4gICAgY29uc3QgY29uc3RyYWluRGF0ZSA9IFtEYXRlTmF2UmFuZ2UuTW9udGgsIERhdGVOYXZSYW5nZS5ZZWFyXS5pbmNsdWRlcyh0eXBlKVxuICAgICAgPyBhdmFpbFZhbHVlLmFkZChzaWRlID09PSBTaWRlLkxlZnQgPyAxIDogLTEsIHR5cGUgYXMgJ21vbnRoJyB8ICd5ZWFyJylcbiAgICAgIDogYXZhaWxWYWx1ZTtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5jb21wYXJlTmF2VmFsdWUodHlwZSwgY29uc3RyYWluRGF0ZSwgdGhpcy5hbmNob3IpID09PVxuICAgICAgKHNpZGUgPT09IFNpZGUuTGVmdCA/IC0xIDogMSlcbiAgICApO1xuICB9XG5cbiAgLy8gQHJldHVybiBpc0JldHdlZW58aXNFcXVhbDowLCBpc0JlZm9yZTotMSxpc0FmdGVyOjFcbiAgY29tcGFyZU5hdlZhbHVlKHR5cGU6IERhdGVOYXZSYW5nZSwgY29uc3RyYWluOiBEYXlqcywgYW5jaG9yOiBEYXlqcykge1xuICAgIGNvbnN0IHJhbmdlID0gY2FsY1JhbmdlVmFsdWUodHlwZSwgYW5jaG9yKTtcbiAgICBjb25zdCBjb25zdHJhaW5WYWx1ZSA9IGNvbnN0cmFpbjtcbiAgICBpZiAodHlwZSA9PT0gRGF0ZU5hdlJhbmdlLkRlY2FkZSkge1xuICAgICAgaWYgKGNvbnN0cmFpblZhbHVlLmlzQmV0d2VlbihyYW5nZS5zdGFydCwgcmFuZ2UuZW5kLCBZRUFSKSkge1xuICAgICAgICByZXR1cm4gMDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBjb25zdHJhaW5WYWx1ZS5pc0JlZm9yZShyYW5nZS5zdGFydCkgPyAtMSA6IDE7XG4gICAgfVxuICAgIHJldHVybiBjb25zdHJhaW5WYWx1ZS5pc1NhbWUocmFuZ2Uuc3RhcnQsIE1PTlRIKVxuICAgICAgPyAwXG4gICAgICA6IGNvbnN0cmFpblZhbHVlLmlzQmVmb3JlKHJhbmdlLnN0YXJ0LCBNT05USClcbiAgICAgID8gLTFcbiAgICAgIDogMTtcbiAgfVxuXG4gIG5hdkhlYWQocmFuZ2U6IERhdGVOYXZSYW5nZSwgdmFsdWU6IG51bWJlcikge1xuICAgIGxldCBhbmNob3I6IERheWpzO1xuICAgIHN3aXRjaCAocmFuZ2UpIHtcbiAgICAgIGNhc2UgRGF0ZU5hdlJhbmdlLk1vbnRoOiB7XG4gICAgICAgIGFuY2hvciA9IHRoaXMuYW5jaG9yLmFkZCh2YWx1ZSwgTU9OVEgpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgRGF0ZU5hdlJhbmdlLlllYXI6IHtcbiAgICAgICAgYW5jaG9yID0gdGhpcy5hbmNob3IuYWRkKHZhbHVlLCBZRUFSKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlIERhdGVOYXZSYW5nZS5EZWNhZGU6IHtcbiAgICAgICAgYW5jaG9yID0gdGhpcy5hbmNob3IuYWRkKHZhbHVlLCBZRUFSKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuYW5jaG9yQ2hhbmdlLm5leHQoYW5jaG9yKTtcbiAgfVxuXG4gIGNsaWNrTmF2ID0gKHJhbmdlOiBEYXRlTmF2UmFuZ2UpID0+IHtcbiAgICBpZiAoIVtEYXRlTmF2UmFuZ2UuTW9udGgsIERhdGVOYXZSYW5nZS5ZZWFyXS5pbmNsdWRlcyhyYW5nZSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5uYXZSYW5nZUNoYW5nZS5uZXh0KFxuICAgICAgcmFuZ2UgPT09IERhdGVOYXZSYW5nZS5Nb250aCA/IERhdGVOYXZSYW5nZS5ZZWFyIDogRGF0ZU5hdlJhbmdlLkRlY2FkZSxcbiAgICApO1xuICB9O1xufVxuIiwiPGRpdiBbY2xhc3NdPVwiYmVtLmVsZW1lbnQoJ2NvbnRhaW5lcicpXCI+XG4gIDxkaXY+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgKm5nSWY9XCJkYXRlTmF2UmFuZ2UgIT09IERhdGVOYXZSYW5nZS5EZWNhZGVcIlxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwieWVhckNvbnRyb2xcIlxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgc2lkZTogJ2xlZnQnIH1cIlxuICAgID48L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICpuZ0lmPVwiZGF0ZU5hdlJhbmdlID09PSBEYXRlTmF2UmFuZ2UuRGVjYWRlXCJcbiAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImRlY2FkZUNvbnRyb2xcIlxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgc2lkZTogJ2xlZnQnIH1cIlxuICAgID48L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG4gIDwhLS0g5YaF5a655Yy6IC0tPlxuICA8c3BhblxuICAgICpuZ0lmPVwiZGF0ZU5hdlJhbmdlID09PSBEYXRlTmF2UmFuZ2UuTW9udGhcIlxuICAgIFtjbGFzc109XCJiZW0uZWxlbWVudCgnbmF2LWNvbnRlbnQnKVwiXG4gID5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCIkbW9udGhCZWZvcmVZZWFyKCkgPyBtb250aFRlbXBsYXRlIDogeWVhclRlbXBsYXRlXCJcbiAgICA+PC9uZy1jb250YWluZXI+XG4gICAgPGRpdiBjbGFzcz1cInNlcGFyYXRvclwiPjwvZGl2PlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIiRtb250aEJlZm9yZVllYXIoKSA/IHllYXJUZW1wbGF0ZSA6IG1vbnRoVGVtcGxhdGVcIlxuICAgID48L25nLWNvbnRhaW5lcj5cbiAgPC9zcGFuPlxuXG4gIDxzcGFuXG4gICAgKm5nSWY9XCJkYXRlTmF2UmFuZ2UgPT09IERhdGVOYXZSYW5nZS5ZZWFyXCJcbiAgICBbY2xhc3NdPVwiYmVtLmVsZW1lbnQoJ25hdi1jb250ZW50JylcIlxuICA+XG4gICAgPGJ1dHRvblxuICAgICAgYXVpLWJ1dHRvbj1cInRleHRcIlxuICAgICAgKGNsaWNrKT1cImNsaWNrTmF2KERhdGVOYXZSYW5nZS5ZZWFyKVwiXG4gICAgPlxuICAgICAge3sgJGhlYWRlclJhbmdlKCkuc3RhcnQueWVhciB9fVxuICAgIDwvYnV0dG9uPlxuICA8L3NwYW4+XG5cbiAgPHNwYW5cbiAgICAqbmdJZj1cImRhdGVOYXZSYW5nZSA9PT0gRGF0ZU5hdlJhbmdlLkRlY2FkZVwiXG4gICAgW2NsYXNzXT1cImJlbS5lbGVtZW50KCduYXYtY29udGVudCcpXCJcbiAgPlxuICAgIHt7ICRoZWFkZXJSYW5nZSgpLnN0YXJ0LnllYXIgfX0gLSB7eyAkaGVhZGVyUmFuZ2UoKS5lbmQueWVhciB9fVxuICA8L3NwYW4+XG5cbiAgPGRpdiBbY2xhc3NdPVwiYmVtLmVsZW1lbnQoJ25hdi1hY3Rpb24nKVwiPlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICpuZ0lmPVwiZGF0ZU5hdlJhbmdlICE9PSBEYXRlTmF2UmFuZ2UuRGVjYWRlXCJcbiAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInllYXJDb250cm9sXCJcbiAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IHNpZGU6ICdyaWdodCcgfVwiXG4gICAgPjwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgKm5nSWY9XCJkYXRlTmF2UmFuZ2UgPT09IERhdGVOYXZSYW5nZS5EZWNhZGVcIlxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiZGVjYWRlQ29udHJvbFwiXG4gICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBzaWRlOiAncmlnaHQnIH1cIlxuICAgID48L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlXG4gICN5ZWFyQ29udHJvbFxuICBsZXQtc2lkZT1cInNpZGVcIlxuPlxuICA8c3BhbiBjbGFzcz1cImFjdGlvbi1iYXJcIj5cbiAgICA8YnV0dG9uXG4gICAgICBhdWktYnV0dG9uPVwidGV4dFwiXG4gICAgICBzaXplPVwibWluaVwiXG4gICAgICBbc3F1YXJlXT1cInRydWVcIlxuICAgICAgKm5nSWY9XCJzaWRlID09PSAncmlnaHQnXCJcbiAgICAgIFtjbGFzcy5oaWRkZW5dPVwiXG4gICAgICAgICFzaG91bGRTaG93TmF2KERhdGVOYXZSYW5nZS5Nb250aCwgc2lkZSkgfHxcbiAgICAgICAgZGF0ZU5hdlJhbmdlICE9PSBEYXRlTmF2UmFuZ2UuTW9udGhcbiAgICAgIFwiXG4gICAgICAoY2xpY2spPVwibmF2SGVhZChEYXRlTmF2UmFuZ2UuTW9udGgsIDEpXCJcbiAgICA+XG4gICAgICA8YXVpLWljb24gaWNvbj1cImFuZ2xlX3JpZ2h0XCI+PC9hdWktaWNvbj5cbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uXG4gICAgICBhdWktYnV0dG9uPVwidGV4dFwiXG4gICAgICBzaXplPVwibWluaVwiXG4gICAgICBbc3F1YXJlXT1cInRydWVcIlxuICAgICAgKGNsaWNrKT1cIm5hdkhlYWQoRGF0ZU5hdlJhbmdlLlllYXIsIHNpZGUgPT09ICdsZWZ0JyA/IC0xIDogMSlcIlxuICAgICAgW2NsYXNzLmhpZGRlbl09XCIhc2hvdWxkU2hvd05hdihEYXRlTmF2UmFuZ2UuWWVhciwgc2lkZSlcIlxuICAgID5cbiAgICAgIDxhdWktaWNvblxuICAgICAgICBbaWNvbl09XCJzaWRlID09PSAnbGVmdCcgPyAnYW5nbGVzX2xlZnQnIDogJ2FuZ2xlc19yaWdodCdcIlxuICAgICAgPjwvYXVpLWljb24+XG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvblxuICAgICAgYXVpLWJ1dHRvbj1cInRleHRcIlxuICAgICAgc2l6ZT1cIm1pbmlcIlxuICAgICAgW3NxdWFyZV09XCJ0cnVlXCJcbiAgICAgICpuZ0lmPVwic2lkZSA9PT0gJ2xlZnQnXCJcbiAgICAgIFtjbGFzcy5oaWRkZW5dPVwiXG4gICAgICAgICFzaG91bGRTaG93TmF2KERhdGVOYXZSYW5nZS5Nb250aCwgc2lkZSkgfHxcbiAgICAgICAgZGF0ZU5hdlJhbmdlICE9PSBEYXRlTmF2UmFuZ2UuTW9udGhcbiAgICAgIFwiXG4gICAgICAoY2xpY2spPVwibmF2SGVhZChEYXRlTmF2UmFuZ2UuTW9udGgsIC0xKVwiXG4gICAgPlxuICAgICAgPGF1aS1pY29uIGljb249XCJhbmdsZV9sZWZ0XCI+PC9hdWktaWNvbj5cbiAgICA8L2J1dHRvbj5cbiAgPC9zcGFuPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlXG4gICNkZWNhZGVDb250cm9sXG4gIGxldC1zaWRlPVwic2lkZVwiXG4+XG4gIDxidXR0b25cbiAgICBhdWktYnV0dG9uPVwidGV4dFwiXG4gICAgc2l6ZT1cIm1pbmlcIlxuICAgIFtzcXVhcmVdPVwidHJ1ZVwiXG4gICAgKGNsaWNrKT1cIm5hdkhlYWQoRGF0ZU5hdlJhbmdlLkRlY2FkZSwgc2lkZSA9PT0gJ2xlZnQnID8gLTEwIDogMTApXCJcbiAgICBbY2xhc3MuaGlkZGVuXT1cIiFzaG91bGRTaG93TmF2KERhdGVOYXZSYW5nZS5EZWNhZGUsIHNpZGUpXCJcbiAgPlxuICAgIDxhdWktaWNvblxuICAgICAgW2ljb25dPVwic2lkZSA9PT0gJ2xlZnQnID8gJ2FuZ2xlc19sZWZ0JyA6ICdhbmdsZXNfcmlnaHQnXCJcbiAgICA+PC9hdWktaWNvbj5cbiAgPC9idXR0b24+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3llYXJUZW1wbGF0ZT5cbiAgPGJ1dHRvblxuICAgIGF1aS1idXR0b249XCJ0ZXh0XCJcbiAgICBjbGFzcz1cImhlYWRlci1yYW5nZVwiXG4gICAgKGNsaWNrKT1cImNsaWNrTmF2KERhdGVOYXZSYW5nZS5ZZWFyKVwiXG4gID5cbiAgICB7eyAkaGVhZGVyUmFuZ2UoKS5zdGFydC55ZWFyIH19XG4gIDwvYnV0dG9uPlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjbW9udGhUZW1wbGF0ZT5cbiAgPGJ1dHRvblxuICAgIGF1aS1idXR0b249XCJ0ZXh0XCJcbiAgICBjbGFzcz1cImhlYWRlci1yYW5nZVwiXG4gICAgKGNsaWNrKT1cImNsaWNrTmF2KERhdGVOYXZSYW5nZS5Nb250aClcIlxuICA+XG4gICAge3sgJGhlYWRlclJhbmdlKCkuc3RhcnQubW9udGggfX1cbiAgPC9idXR0b24+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -121,13 +121,13 @@ export class PickerPanelComponent {
121
121
  trackByFn() {
122
122
  return this.navRange;
123
123
  }
124
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: PickerPanelComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
125
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", type: PickerPanelComponent, isStandalone: true, selector: "aui-picker-panel", inputs: { navRange: "navRange", type: "type", anchor: "anchor", matchDates: "matchDates", disabledDate: "disabledDate", weekStartDay: "weekStartDay", minDate: "minDate", maxDate: "maxDate" }, outputs: { select: "select", hovered: "hovered" }, usesOnChanges: true, ngImport: i0, template: "<div\n [class]=\"bem.element('container')\"\n [ngClass]=\"{\n 'day-panel-container': navRange === DateNavRange.Month,\n 'month-panel-container': navRange === DateNavRange.Year,\n 'year-panel-container': navRange === DateNavRange.Decade\n }\"\n>\n <div\n [class]=\"[bem.element('row'), 'week-header'].join(' ')\"\n *ngIf=\"navRange === DateNavRange.Month\"\n >\n <span\n *ngFor=\"let item of weekDefs\"\n [class]=\"bem.element('cell')\"\n >\n {{ item | auiI18n }}\n </span>\n </div>\n <div\n [class]=\"bem.element('row')\"\n *ngFor=\"let row of panelData; trackBy: trackByFn\"\n >\n <span\n *ngFor=\"let item of row; trackBy: trackByFn\"\n [class]=\"bem.element('cell')\"\n [ngClass]=\"{\n inRange: item.inRange && !item.isDisabled,\n isActive: match(item.value),\n isBackground: item.isBackground && !item.isDisabled,\n isRangeStart: item.isRangeStart,\n isRangeEnd: item.isRangeEnd,\n isToday: matchToday(item.value) && !item.isBackground,\n isDisabled: item.isDisabled\n }\"\n ><button\n aui-button=\"text\"\n [plain]=\"true\"\n [size]=\"navRange === DateNavRange.Month ? 'mini' : 'small'\"\n [disabled]=\"item.isDisabled\"\n (click)=\"selectValue(item.value)\"\n (mouseenter)=\"hovered.next(item.value)\"\n >\n {{ item.label\n }}<ng-container *ngIf=\"navRange === DateNavRange.Year\">{{\n 'month_suffix' | auiI18n\n }}</ng-container>\n </button>\n </span>\n </div>\n</div>\n", styles: [".aui-picker-panel__container{height:min-content;box-sizing:border-box;justify-content:stretch;display:flex;flex-direction:column;margin:12px 9px;align-items:center}.aui-picker-panel__container .aui-button{box-sizing:border-box}.aui-picker-panel__container .aui-button__content{padding:0!important}.aui-picker-panel__container.month-panel-container button,.aui-picker-panel__container.year-panel-container button{width:56px;height:28px!important}.aui-picker-panel__container.day-panel-container{height:min-content;padding:0;margin:0}.aui-picker-panel__container.day-panel-container button{height:24px!important;width:24px!important}.aui-picker-panel__container.day-panel-container .aui-picker-panel__row+.aui-picker-panel__row{margin-top:8px}.aui-picker-panel__row+.aui-picker-panel__row{margin-top:20px}.aui-picker-panel__row{flex:1;display:flex;align-items:center;justify-content:space-between;font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);font-weight:var(--aui-font-weight-normal);width:100%}.aui-picker-panel__row.week-header{color:rgb(var(--aui-color-help-text));margin-bottom:8px}.aui-picker-panel__row.week-header span{display:inline-block;margin:0;width:36px;text-align:center}.aui-picker-panel__cell{display:inline-flex;position:relative;align-items:center;justify-content:center;margin-inline:6px}.aui-picker-panel__cell button{box-sizing:content-box;transition:color .3s ease,background-color .3s ease}.aui-picker-panel__cell.inRange{background-color:rgb(var(--aui-color-p-6));box-shadow:-6px 0 0 0 rgb(var(--aui-color-p-6)),6px 0 0 0 rgb(var(--aui-color-p-6))}.aui-picker-panel__cell.isRangeEnd{box-shadow:-6px 0 0 0 rgb(var(--aui-color-p-6))}.aui-picker-panel__cell.isRangeStart{box-shadow:6px 0 0 0 rgb(var(--aui-color-p-6))}.aui-picker-panel__cell.isDisabled{background-color:rgb(var(--aui-color-n-8));box-shadow:-6px 0 0 0 rgb(var(--aui-color-n-8)),6px 0 0 0 rgb(var(--aui-color-n-8))}.aui-picker-panel__cell.isDisabled button{color:rgb(var(--aui-color-disabled-text))!important;border-color:rgb(var(--aui-color-disabled-text))!important}.aui-picker-panel__cell.isDisabled.isActive button,.aui-picker-panel__cell.isDisabled.isToday button{color:#fff!important;border-color:rgb(var(--aui-color-p-4))!important;background-color:rgb(var(--aui-color-p-4))!important}.aui-picker-panel__cell.isDisabled+.aui-picker-panel__cell:not(.isDisabled,.isRangeStart){box-shadow:-12px 0 0 0 rgb(var(--aui-color-popper-bg))}.aui-picker-panel__cell.isDisabled+.aui-picker-panel__cell:not(.isDisabled).isRangeStart{box-shadow:-12px 0 0 0 rgb(var(--aui-color-popper-bg)),6px 0 0 0 rgb(var(--aui-color-p-6))}.aui-picker-panel__cell:not(.isDisabled)+.aui-picker-panel__cell.isDisabled{box-shadow:6px 0 0 0 rgb(var(--aui-color-n-8))}.aui-picker-panel__cell.isToday button{border:rgb(var(--aui-color-primary)) 1px solid;color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-p-7))}.aui-picker-panel__cell.isActive button{color:#fff;background-color:rgb(var(--aui-color-primary))}.aui-picker-panel__cell.isBackground button{background-color:initial!important;color:rgb(var(--aui-color-disabled-text))}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: ButtonComponent, selector: "button[aui-button]", inputs: ["aui-button", "size", "plain", "loading", "round", "square"] }, { kind: "pipe", type: I18nPipe, name: "auiI18n" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
124
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: PickerPanelComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
125
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.6", type: PickerPanelComponent, isStandalone: true, selector: "aui-picker-panel", inputs: { navRange: "navRange", type: "type", anchor: "anchor", matchDates: "matchDates", disabledDate: "disabledDate", weekStartDay: "weekStartDay", minDate: "minDate", maxDate: "maxDate" }, outputs: { select: "select", hovered: "hovered" }, usesOnChanges: true, ngImport: i0, template: "<div\n [class]=\"bem.element('container')\"\n [ngClass]=\"{\n 'day-panel-container': navRange === DateNavRange.Month,\n 'month-panel-container': navRange === DateNavRange.Year,\n 'year-panel-container': navRange === DateNavRange.Decade\n }\"\n>\n <div\n [class]=\"[bem.element('row'), 'week-header'].join(' ')\"\n *ngIf=\"navRange === DateNavRange.Month\"\n >\n <span\n *ngFor=\"let item of weekDefs\"\n [class]=\"bem.element('cell')\"\n >\n {{ item | auiI18n }}\n </span>\n </div>\n <div\n [class]=\"bem.element('row')\"\n *ngFor=\"let row of panelData; trackBy: trackByFn\"\n >\n <span\n *ngFor=\"let item of row; trackBy: trackByFn\"\n [class]=\"bem.element('cell')\"\n [ngClass]=\"{\n inRange: item.inRange && !item.isDisabled,\n isActive: match(item.value),\n isBackground: item.isBackground && !item.isDisabled,\n isRangeStart: item.isRangeStart,\n isRangeEnd: item.isRangeEnd,\n isToday: matchToday(item.value) && !item.isBackground,\n isDisabled: item.isDisabled\n }\"\n ><button\n aui-button=\"text\"\n [plain]=\"true\"\n [size]=\"navRange === DateNavRange.Month ? 'mini' : 'small'\"\n [disabled]=\"item.isDisabled\"\n (click)=\"selectValue(item.value)\"\n (mouseenter)=\"hovered.next(item.value)\"\n >\n {{ item.label\n }}<ng-container *ngIf=\"navRange === DateNavRange.Year\">{{\n 'month_suffix' | auiI18n\n }}</ng-container>\n </button>\n </span>\n </div>\n</div>\n", styles: [".aui-picker-panel__container{height:min-content;box-sizing:border-box;justify-content:stretch;display:flex;flex-direction:column;margin:12px 9px;align-items:center}.aui-picker-panel__container .aui-button{box-sizing:border-box}.aui-picker-panel__container .aui-button__content{padding:0!important}.aui-picker-panel__container.month-panel-container button,.aui-picker-panel__container.year-panel-container button{width:56px;height:28px!important}.aui-picker-panel__container.day-panel-container{height:min-content;padding:0;margin:0}.aui-picker-panel__container.day-panel-container button{height:24px!important;width:24px!important}.aui-picker-panel__container.day-panel-container .aui-picker-panel__row+.aui-picker-panel__row{margin-top:8px}.aui-picker-panel__row+.aui-picker-panel__row{margin-top:20px}.aui-picker-panel__row{flex:1;display:flex;align-items:center;justify-content:space-between;font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);font-weight:var(--aui-font-weight-normal);width:100%}.aui-picker-panel__row.week-header{color:rgb(var(--aui-color-help-text));margin-bottom:8px}.aui-picker-panel__row.week-header span{display:inline-block;margin:0;width:36px;text-align:center}.aui-picker-panel__cell{display:inline-flex;position:relative;align-items:center;justify-content:center;margin-inline:6px}.aui-picker-panel__cell button{box-sizing:content-box;transition:color .3s ease,background-color .3s ease}.aui-picker-panel__cell.inRange{background-color:rgb(var(--aui-color-p-6));box-shadow:-6px 0 rgb(var(--aui-color-p-6)),6px 0 rgb(var(--aui-color-p-6))}.aui-picker-panel__cell.isRangeEnd{box-shadow:-6px 0 rgb(var(--aui-color-p-6))}.aui-picker-panel__cell.isRangeStart{box-shadow:6px 0 rgb(var(--aui-color-p-6))}.aui-picker-panel__cell.isDisabled{background-color:rgb(var(--aui-color-n-8));box-shadow:-6px 0 rgb(var(--aui-color-n-8)),6px 0 rgb(var(--aui-color-n-8))}.aui-picker-panel__cell.isDisabled button{color:rgb(var(--aui-color-disabled-text))!important;border-color:rgb(var(--aui-color-disabled-text))!important}.aui-picker-panel__cell.isDisabled.isActive button,.aui-picker-panel__cell.isDisabled.isToday button{color:#fff!important;border-color:rgb(var(--aui-color-p-4))!important;background-color:rgb(var(--aui-color-p-4))!important}.aui-picker-panel__cell.isDisabled+.aui-picker-panel__cell:not(.isDisabled,.isRangeStart){box-shadow:-12px 0 rgb(var(--aui-color-popper-bg))}.aui-picker-panel__cell.isDisabled+.aui-picker-panel__cell:not(.isDisabled).isRangeStart{box-shadow:-12px 0 rgb(var(--aui-color-popper-bg)),6px 0 rgb(var(--aui-color-p-6))}.aui-picker-panel__cell:not(.isDisabled)+.aui-picker-panel__cell.isDisabled{box-shadow:6px 0 rgb(var(--aui-color-n-8))}.aui-picker-panel__cell.isToday button{border:rgb(var(--aui-color-primary)) 1px solid;color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-p-7))}.aui-picker-panel__cell.isActive button{color:#fff;background-color:rgb(var(--aui-color-primary))}.aui-picker-panel__cell.isBackground button{background-color:initial!important;color:rgb(var(--aui-color-disabled-text))}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: ButtonComponent, selector: "button[aui-button]", inputs: ["aui-button", "size", "plain", "loading", "round", "square"] }, { kind: "pipe", type: I18nPipe, name: "auiI18n" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
126
126
  }
127
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: PickerPanelComponent, decorators: [{
127
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: PickerPanelComponent, decorators: [{
128
128
  type: Component,
129
- args: [{ selector: 'aui-picker-panel', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgClass, NgIf, NgFor, ButtonComponent, I18nPipe], template: "<div\n [class]=\"bem.element('container')\"\n [ngClass]=\"{\n 'day-panel-container': navRange === DateNavRange.Month,\n 'month-panel-container': navRange === DateNavRange.Year,\n 'year-panel-container': navRange === DateNavRange.Decade\n }\"\n>\n <div\n [class]=\"[bem.element('row'), 'week-header'].join(' ')\"\n *ngIf=\"navRange === DateNavRange.Month\"\n >\n <span\n *ngFor=\"let item of weekDefs\"\n [class]=\"bem.element('cell')\"\n >\n {{ item | auiI18n }}\n </span>\n </div>\n <div\n [class]=\"bem.element('row')\"\n *ngFor=\"let row of panelData; trackBy: trackByFn\"\n >\n <span\n *ngFor=\"let item of row; trackBy: trackByFn\"\n [class]=\"bem.element('cell')\"\n [ngClass]=\"{\n inRange: item.inRange && !item.isDisabled,\n isActive: match(item.value),\n isBackground: item.isBackground && !item.isDisabled,\n isRangeStart: item.isRangeStart,\n isRangeEnd: item.isRangeEnd,\n isToday: matchToday(item.value) && !item.isBackground,\n isDisabled: item.isDisabled\n }\"\n ><button\n aui-button=\"text\"\n [plain]=\"true\"\n [size]=\"navRange === DateNavRange.Month ? 'mini' : 'small'\"\n [disabled]=\"item.isDisabled\"\n (click)=\"selectValue(item.value)\"\n (mouseenter)=\"hovered.next(item.value)\"\n >\n {{ item.label\n }}<ng-container *ngIf=\"navRange === DateNavRange.Year\">{{\n 'month_suffix' | auiI18n\n }}</ng-container>\n </button>\n </span>\n </div>\n</div>\n", styles: [".aui-picker-panel__container{height:min-content;box-sizing:border-box;justify-content:stretch;display:flex;flex-direction:column;margin:12px 9px;align-items:center}.aui-picker-panel__container .aui-button{box-sizing:border-box}.aui-picker-panel__container .aui-button__content{padding:0!important}.aui-picker-panel__container.month-panel-container button,.aui-picker-panel__container.year-panel-container button{width:56px;height:28px!important}.aui-picker-panel__container.day-panel-container{height:min-content;padding:0;margin:0}.aui-picker-panel__container.day-panel-container button{height:24px!important;width:24px!important}.aui-picker-panel__container.day-panel-container .aui-picker-panel__row+.aui-picker-panel__row{margin-top:8px}.aui-picker-panel__row+.aui-picker-panel__row{margin-top:20px}.aui-picker-panel__row{flex:1;display:flex;align-items:center;justify-content:space-between;font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);font-weight:var(--aui-font-weight-normal);width:100%}.aui-picker-panel__row.week-header{color:rgb(var(--aui-color-help-text));margin-bottom:8px}.aui-picker-panel__row.week-header span{display:inline-block;margin:0;width:36px;text-align:center}.aui-picker-panel__cell{display:inline-flex;position:relative;align-items:center;justify-content:center;margin-inline:6px}.aui-picker-panel__cell button{box-sizing:content-box;transition:color .3s ease,background-color .3s ease}.aui-picker-panel__cell.inRange{background-color:rgb(var(--aui-color-p-6));box-shadow:-6px 0 0 0 rgb(var(--aui-color-p-6)),6px 0 0 0 rgb(var(--aui-color-p-6))}.aui-picker-panel__cell.isRangeEnd{box-shadow:-6px 0 0 0 rgb(var(--aui-color-p-6))}.aui-picker-panel__cell.isRangeStart{box-shadow:6px 0 0 0 rgb(var(--aui-color-p-6))}.aui-picker-panel__cell.isDisabled{background-color:rgb(var(--aui-color-n-8));box-shadow:-6px 0 0 0 rgb(var(--aui-color-n-8)),6px 0 0 0 rgb(var(--aui-color-n-8))}.aui-picker-panel__cell.isDisabled button{color:rgb(var(--aui-color-disabled-text))!important;border-color:rgb(var(--aui-color-disabled-text))!important}.aui-picker-panel__cell.isDisabled.isActive button,.aui-picker-panel__cell.isDisabled.isToday button{color:#fff!important;border-color:rgb(var(--aui-color-p-4))!important;background-color:rgb(var(--aui-color-p-4))!important}.aui-picker-panel__cell.isDisabled+.aui-picker-panel__cell:not(.isDisabled,.isRangeStart){box-shadow:-12px 0 0 0 rgb(var(--aui-color-popper-bg))}.aui-picker-panel__cell.isDisabled+.aui-picker-panel__cell:not(.isDisabled).isRangeStart{box-shadow:-12px 0 0 0 rgb(var(--aui-color-popper-bg)),6px 0 0 0 rgb(var(--aui-color-p-6))}.aui-picker-panel__cell:not(.isDisabled)+.aui-picker-panel__cell.isDisabled{box-shadow:6px 0 0 0 rgb(var(--aui-color-n-8))}.aui-picker-panel__cell.isToday button{border:rgb(var(--aui-color-primary)) 1px solid;color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-p-7))}.aui-picker-panel__cell.isActive button{color:#fff;background-color:rgb(var(--aui-color-primary))}.aui-picker-panel__cell.isBackground button{background-color:initial!important;color:rgb(var(--aui-color-disabled-text))}\n"] }]
130
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { navRange: [{
129
+ args: [{ selector: 'aui-picker-panel', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgClass, NgIf, NgFor, ButtonComponent, I18nPipe], template: "<div\n [class]=\"bem.element('container')\"\n [ngClass]=\"{\n 'day-panel-container': navRange === DateNavRange.Month,\n 'month-panel-container': navRange === DateNavRange.Year,\n 'year-panel-container': navRange === DateNavRange.Decade\n }\"\n>\n <div\n [class]=\"[bem.element('row'), 'week-header'].join(' ')\"\n *ngIf=\"navRange === DateNavRange.Month\"\n >\n <span\n *ngFor=\"let item of weekDefs\"\n [class]=\"bem.element('cell')\"\n >\n {{ item | auiI18n }}\n </span>\n </div>\n <div\n [class]=\"bem.element('row')\"\n *ngFor=\"let row of panelData; trackBy: trackByFn\"\n >\n <span\n *ngFor=\"let item of row; trackBy: trackByFn\"\n [class]=\"bem.element('cell')\"\n [ngClass]=\"{\n inRange: item.inRange && !item.isDisabled,\n isActive: match(item.value),\n isBackground: item.isBackground && !item.isDisabled,\n isRangeStart: item.isRangeStart,\n isRangeEnd: item.isRangeEnd,\n isToday: matchToday(item.value) && !item.isBackground,\n isDisabled: item.isDisabled\n }\"\n ><button\n aui-button=\"text\"\n [plain]=\"true\"\n [size]=\"navRange === DateNavRange.Month ? 'mini' : 'small'\"\n [disabled]=\"item.isDisabled\"\n (click)=\"selectValue(item.value)\"\n (mouseenter)=\"hovered.next(item.value)\"\n >\n {{ item.label\n }}<ng-container *ngIf=\"navRange === DateNavRange.Year\">{{\n 'month_suffix' | auiI18n\n }}</ng-container>\n </button>\n </span>\n </div>\n</div>\n", styles: [".aui-picker-panel__container{height:min-content;box-sizing:border-box;justify-content:stretch;display:flex;flex-direction:column;margin:12px 9px;align-items:center}.aui-picker-panel__container .aui-button{box-sizing:border-box}.aui-picker-panel__container .aui-button__content{padding:0!important}.aui-picker-panel__container.month-panel-container button,.aui-picker-panel__container.year-panel-container button{width:56px;height:28px!important}.aui-picker-panel__container.day-panel-container{height:min-content;padding:0;margin:0}.aui-picker-panel__container.day-panel-container button{height:24px!important;width:24px!important}.aui-picker-panel__container.day-panel-container .aui-picker-panel__row+.aui-picker-panel__row{margin-top:8px}.aui-picker-panel__row+.aui-picker-panel__row{margin-top:20px}.aui-picker-panel__row{flex:1;display:flex;align-items:center;justify-content:space-between;font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);font-weight:var(--aui-font-weight-normal);width:100%}.aui-picker-panel__row.week-header{color:rgb(var(--aui-color-help-text));margin-bottom:8px}.aui-picker-panel__row.week-header span{display:inline-block;margin:0;width:36px;text-align:center}.aui-picker-panel__cell{display:inline-flex;position:relative;align-items:center;justify-content:center;margin-inline:6px}.aui-picker-panel__cell button{box-sizing:content-box;transition:color .3s ease,background-color .3s ease}.aui-picker-panel__cell.inRange{background-color:rgb(var(--aui-color-p-6));box-shadow:-6px 0 rgb(var(--aui-color-p-6)),6px 0 rgb(var(--aui-color-p-6))}.aui-picker-panel__cell.isRangeEnd{box-shadow:-6px 0 rgb(var(--aui-color-p-6))}.aui-picker-panel__cell.isRangeStart{box-shadow:6px 0 rgb(var(--aui-color-p-6))}.aui-picker-panel__cell.isDisabled{background-color:rgb(var(--aui-color-n-8));box-shadow:-6px 0 rgb(var(--aui-color-n-8)),6px 0 rgb(var(--aui-color-n-8))}.aui-picker-panel__cell.isDisabled button{color:rgb(var(--aui-color-disabled-text))!important;border-color:rgb(var(--aui-color-disabled-text))!important}.aui-picker-panel__cell.isDisabled.isActive button,.aui-picker-panel__cell.isDisabled.isToday button{color:#fff!important;border-color:rgb(var(--aui-color-p-4))!important;background-color:rgb(var(--aui-color-p-4))!important}.aui-picker-panel__cell.isDisabled+.aui-picker-panel__cell:not(.isDisabled,.isRangeStart){box-shadow:-12px 0 rgb(var(--aui-color-popper-bg))}.aui-picker-panel__cell.isDisabled+.aui-picker-panel__cell:not(.isDisabled).isRangeStart{box-shadow:-12px 0 rgb(var(--aui-color-popper-bg)),6px 0 rgb(var(--aui-color-p-6))}.aui-picker-panel__cell:not(.isDisabled)+.aui-picker-panel__cell.isDisabled{box-shadow:6px 0 rgb(var(--aui-color-n-8))}.aui-picker-panel__cell.isToday button{border:rgb(var(--aui-color-primary)) 1px solid;color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-p-7))}.aui-picker-panel__cell.isActive button{color:#fff;background-color:rgb(var(--aui-color-primary))}.aui-picker-panel__cell.isBackground button{background-color:initial!important;color:rgb(var(--aui-color-disabled-text))}\n"] }]
130
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { navRange: [{
131
131
  type: Input
132
132
  }], type: [{
133
133
  type: Input
@@ -148,4 +148,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImpor
148
148
  }], hovered: [{
149
149
  type: Output
150
150
  }] } });
151
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlja2VyLXBhbmVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2RhdGUtcGlja2VyL2NhbGVuZGFyL3BhbmVsL3BpY2tlci1wYW5lbC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9kYXRlLXBpY2tlci9jYWxlbmRhci9wYW5lbC9waWNrZXItcGFuZWwudGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQ0wsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxLQUFnQixNQUFNLE9BQU8sQ0FBQztBQUNyQyxPQUFPLFNBQVMsTUFBTSx3QkFBd0IsQ0FBQztBQUUvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbkUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ25ELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdEQsT0FBTyxFQUNMLEdBQUcsRUFDSCxzQkFBc0IsRUFDdEIsbUJBQW1CLEVBRW5CLEtBQUssRUFDTCx3QkFBd0IsRUFDeEIscUJBQXFCLEVBQ3JCLElBQUksRUFDSix1QkFBdUIsRUFDdkIsb0JBQW9CLEdBQ3JCLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFFTCxjQUFjLEVBQ2QscUJBQXFCLEVBQ3JCLFVBQVUsRUFDVixvQkFBb0IsRUFDcEIsaUJBQWlCLEVBQ2pCLGlCQUFpQixFQUNqQixTQUFTLEdBQ1YsTUFBTSxTQUFTLENBQUM7O0FBRWpCLEtBQUssQ0FBQyxNQUFNLENB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eyBOZ0NsYXNzLCBOZ0lmLCBOZ0ZvciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPdXRwdXQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCBkYXlqcywgeyBEYXlqcyB9IGZyb20gJ2RheWpzJztcbmltcG9ydCBpc0JldHdlZW4gZnJvbSAnZGF5anMvcGx1Z2luL2lzQmV0d2Vlbic7XG5cbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IEkxOG5QaXBlIH0gZnJvbSAnLi4vLi4vLi4vaTE4bi9pMThuLnBpcGUnO1xuaW1wb3J0IHsgYnVpbGRCZW0gfSBmcm9tICcuLi8uLi8uLi9pbnRlcm5hbC91dGlscyc7XG5pbXBvcnQgeyBEYXRlTmF2UmFuZ2UgfSBmcm9tICcuLi8uLi9kYXRlLXBpY2tlci50eXBlJztcbmltcG9ydCB7XG4gIERBWSxcbiAgREFZX1BBTkVMX0NPTFVNTl9DT1VOVCxcbiAgREFZX1BBTkVMX1JPV19DT1VOVCxcbiAgRGF0ZVBpY2tlclR5cGUsXG4gIE1PTlRILFxuICBNT05USF9QQU5FTF9DT0xVTU5fQ09VTlQsXG4gIE1PTlRIX1BBTkVMX1JPV19DT1VOVCxcbiAgWUVBUixcbiAgWUVBUl9QQU5FTF9DT0xVTU5fQ09VTlQsXG4gIFlFQVJfUEFORUxfUk9XX0NPVU5ULFxufSBmcm9tICcuLi9jb25zdGFudCc7XG5pbXBvcnQge1xuICBEYXRlQ2VsbCxcbiAgY2FsY1JhbmdlVmFsdWUsXG4gIGNvbXBvc2VEaXNhYmxlZERhdGVGbixcbiAgZm9ybWF0RGF0ZSxcbiAgZ2V0RGF0ZVBhbmVsSXRlcmFibGUsXG4gIGdldE5hdlJhbmdlQnlUeXBlLFxuICBnZXRUeXBlQnlOYXZSYW5nZSxcbiAgc29ydERhdGVzLFxufSBmcm9tICcuLi91dGlsJztcblxuZGF5anMuZXh0ZW5kKGlzQmV0d2Vlbik7XG5cbmNvbnN0IGJlbSA9IGJ1aWxkQmVtKCdhdWktcGlja2VyLXBhbmVsJyk7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F1aS1waWNrZXItcGFuZWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vcGlja2VyLXBhbmVsLnRlbXBsYXRlLmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9waWNrZXItcGFuZWwuc3R5bGUuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW05nQ2xhc3MsIE5nSWYsIE5nRm9yLCBCdXR0b25Db21wb25lbnQsIEkxOG5QaXBlXSxcbn0pXG5leHBvcnQgY2xhc3MgUGlja2VyUGFuZWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBASW5wdXQoKVxuICBuYXZSYW5nZTogRGF0ZU5hdlJhbmdlO1xuXG4gIEBJbnB1dCgpXG4gIHR5cGU6IERhdGVQaWNrZXJUeXBlO1xuXG4gIEBJbnB1dCgpXG4gIGFuY2hvciA9IGRheWpzKCk7XG5cbiAgQElucHV0KClcbiAgbWF0Y2hEYXRlczogRGF5anNbXTtcblxuICBASW5wdXQoKVxuICBkaXNhYmxlZERhdGU6IChkYXRlOiBEYXlqcywgbmF2UmFuZ2U6IERhdGVOYXZSYW5nZSkgPT4gYm9vbGVhbiA9ICgpID0+IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHNldCB3ZWVrU3RhcnREYXkoZGF5OiBudW1iZXIpIHtcbiAgICBjb25zdCBub3JtYWxpemVkID0gTWF0aC5tYXgoTWF0aC5taW4oTWF0aC5yb3VuZChkYXkpLCA2KSwgMCk7XG4gICAgdGhpcy53ZWVrRGVmcyA9IFtcbiAgICAgIC4uLnRoaXMud2Vla0RlZnMuc2xpY2Uobm9ybWFsaXplZCksXG4gICAgICAuLi50aGlzLndlZWtEZWZzLnNsaWNlKDAsIG5vcm1hbGl6ZWQpLFxuICAgIF07XG4gICAgdGhpcy5fd2Vla1N0YXJ0RGF5ID0gbm9ybWFsaXplZDtcbiAgfVxuXG4gIGdldCB3ZWVrU3RhcnREYXkoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3dlZWtTdGFydERheTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIG1pbkRhdGU6IERheWpzO1xuXG4gIEBJbnB1dCgpXG4gIG1heERhdGU6IERheWpzO1xuXG4gIGdldCBkaXNhYmxlZERhdGVGbigpIHtcbiAgICByZXR1cm4gY29tcG9zZURpc2FibGVkRGF0ZUZuKFxuICAgICAgZGF0ZSA9PiB0aGlzLm1pbkRhdGUgJiYgZGF0ZS5pc0JlZm9yZSh0aGlzLm1pbkRhdGUsICdkYXRlJyksXG4gICAgICBkYXRlID0+IHRoaXMubWF4RGF0ZSAmJiBkYXRlLmlzQWZ0ZXIodGhpcy5tYXhEYXRlLCAnZGF0ZScpLFxuICAgICAgdGhpcy5kaXNhYmxlZERhdGUsXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX3dlZWtTdGFydERheSA9IDA7XG5cbiAgcGFuZWxEYXRhOiBEYXRlQ2VsbFtdW107XG5cbiAgQE91dHB1dCgpXG4gIHNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8RGF5anM+KCk7XG5cbiAgQE91dHB1dCgpXG4gIGhvdmVyZWQgPSBuZXcgRXZlbnRFbWl0dGVyPERheWpzPigpO1xuXG4gIGJlbSA9IGJlbTtcbiAgRGF0ZU5hdlJhbmdlID0gRGF0ZU5hdlJhbmdlO1xuXG4gIHdlZWtEZWZzID0gW1xuICAgICdzdW5kYXknLFxuICAgICdtb25kYXknLFxuICAgICd0dWVzZGF5JyxcbiAgICAnd2VkbmVzZGF5JyxcbiAgICAndGh1cnNkYXknLFxuICAgICdmcmlkYXknLFxuICAgICdzYXR1cmRheScsXG4gIF07XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gIG5nT25DaGFuZ2VzKCkge1xuICAgIC8vIOWmguaenCBkYXRlVmFsdWUg5piv5LiA5Liq5pWw57uE77yM5b+F54S25piv5ZCM5LiA5Liq6Z2i5p2/5LiK77yM5ZCm5YiZ5bqU5b2T57uZ5LiO5LiN5ZCM55qE6Z2i5p2/5LiN5ZCM55qEZGF0ZVZhbHVl5YC8XG4gICAgY29uc3QgaGVhZGVyUmFuZ2UgPSBjYWxjUmFuZ2VWYWx1ZSh0aGlzLm5hdlJhbmdlLCB0aGlzLmFuY2hvcik7XG4gICAgdGhpcy5yZW5kZXJQYW5lbERhdGEoaGVhZGVyUmFuZ2Uuc3RhcnQsIHRoaXMubmF2UmFuZ2UpO1xuICB9XG5cbiAgLy8g5qC55o2u5b2T5YmN5pWw5o2u77yM6K6h566X5riy5p+T6KGo5qC8XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBzb25hcmpzL2NvZ25pdGl2ZS1jb21wbGV4aXR5XG4gIHJlbmRlclBhbmVsRGF0YShkYXRlOiBEYXlqcywgbmF2UmFuZ2U6IERhdGVOYXZSYW5nZSkge1xuICAgIGNvbnN0IHZhbHVlID0gW107XG4gICAgbGV0IGNvbENvdW50cyA9IDA7XG4gICAgbGV0IHJvd0NvdW50cyA9IDA7XG4gICAgaWYgKCF0aGlzLnBhbmVsRGF0YSkge1xuICAgICAgdGhpcy5wYW5lbERhdGEgPSBbW11dO1xuICAgIH1cbiAgICBjb25zdCBbLi4udmFsdWVzXSA9IGdldERhdGVQYW5lbEl0ZXJhYmxlKGRhdGUsIG5hdlJhbmdlLCB0aGlzLndlZWtTdGFydERheSk7XG4gICAgc3dpdGNoIChuYXZSYW5nZSkge1xuICAgICAgY2FzZSBEYXRlTmF2UmFuZ2UuTW9udGg6IHtcbiAgICAgICAgY29sQ291bnRzID0gREFZX1BBTkVMX0NPTFVNTl9DT1VOVDtcbiAgICAgICAgcm93Q291bnRzID0gREFZX1BBTkVMX1JPV19DT1VOVDtcblxuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgRGF0ZU5hdlJhbmdlLkRlY2FkZToge1xuICAgICAgICBjb2xDb3VudHMgPSBZRUFSX1BBTkVMX0NPTFVNTl9DT1VOVDtcbiAgICAgICAgcm93Q291bnRzID0gWUVBUl9QQU5FTF9ST1dfQ09VTlQ7XG5cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlIERhdGVOYXZSYW5nZS5ZZWFyOiB7XG4gICAgICAgIGNvbENvdW50cyA9IE1PTlRIX1BBTkVMX0NPTFVNTl9DT1VOVDtcbiAgICAgICAgcm93Q291bnRzID0gTU9OVEhfUEFORUxfUk9XX0NPVU5UO1xuXG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgLy8gTm8gZGVmYXVsdFxuICAgIH1cbiAgICBmb3IgKGxldCBrID0gMDsgayA8IHJvd0NvdW50czsgaysrKSB7XG4gICAgICBjb25zdCByb3cgPSBbXTtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY29sQ291bnRzOyBpKyspIHtcbiAgICAgICAgY29uc3QgY2VsbCA9IGZvcm1hdERhdGUobmF2UmFuZ2UsIHZhbHVlc1trICogY29sQ291bnRzICsgaV0sIGRhdGUpO1xuICAgICAgICBjZWxsLmlzRGlzYWJsZWQgPSB0aGlzLmRpc2FibGVkRGF0ZUZuKGNlbGwudmFsdWUsIG5hdlJhbmdlKTtcbiAgICAgICAgY29uc3Qgc29ydGVkRGF0ZXMgPSBzb3J0RGF0ZXModGhpcy5tYXRjaERhdGVzKTtcbiAgICAgICAgaWYgKHNvcnRlZERhdGVzPy5sZW5ndGggPT09IDIgJiYgbmF2UmFuZ2UgPT09IERhdGVOYXZSYW5nZS5Nb250aCkge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIGNlbGwudmFsdWUuaXNCZXR3ZWVuKHNvcnRlZERhdGVzWzBdLCBzb3J0ZWREYXRlc1sxXSkgJiZcbiAgICAgICAgICAgICFjZWxsLmlzQmFja2dyb3VuZFxuICAgICAgICAgICkge1xuICAgICAgICAgICAgY2VsbC5pblJhbmdlID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgY2VsbC5pc1JhbmdlU3RhcnQgPVxuICAgICAgICAgICAgY2VsbC52YWx1ZS5pc1NhbWUoc29ydGVkRGF0ZXNbMF0sIERBWSkgJiYgIWNlbGwuaXNCYWNrZ3JvdW5kO1xuICAgICAgICAgIGNlbGwuaXNSYW5nZUVuZCA9XG4gICAgICAgICAgICBjZWxsLnZhbHVlLmlzU2FtZShzb3J0ZWREYXRlc1sxXSwgREFZKSAmJiAhY2VsbC5pc0JhY2tncm91bmQ7XG4gICAgICAgICAgaWYgKGNlbGwuaXNSYW5nZVN0YXJ0ICYmIGNlbGwuaXNSYW5nZUVuZCkge1xuICAgICAgICAgICAgY2VsbC5pc1JhbmdlU3RhcnQgPSBmYWxzZTtcbiAgICAgICAgICAgIGNlbGwuaXNSYW5nZUVuZCA9IGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByb3cucHVzaChjZWxsKTtcbiAgICAgIH1cbiAgICAgIHZhbHVlLnB1c2gocm93KTtcbiAgICB9XG4gICAgdGhpcy5wYW5lbERhdGEgPSB2YWx1ZS5zbGljZSgpO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgbWF0Y2godmFsdWU6IERheWpzKSB7XG4gICAgaWYgKFxuICAgICAgIXRoaXMubWF0Y2hEYXRlcz8uZmlsdGVyKHYgPT4gISF2KT8ubGVuZ3RoIHx8XG4gICAgICBnZXROYXZSYW5nZUJ5VHlwZSh0aGlzLnR5cGUpICE9PSB0aGlzLm5hdlJhbmdlXG4gICAgKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLm1hdGNoRGF0ZXM/LnNvbWUoZGF0ZVZhbHVlID0+XG4gICAgICB0aGlzLm5hdlJhbmdlID09PSBEYXRlTmF2UmFuZ2UuRGVjYWRlXG4gICAgICAgID8gdmFsdWUuaXNTYW1lKGRhdGVWYWx1ZSwgWUVBUilcbiAgICAgICAgOiB0aGlzLm5hdlJhbmdlID09PSBEYXRlTmF2UmFuZ2UuWWVhclxuICAgICAgICA/IHZhbHVlLmlzU2FtZShkYXRlVmFsdWUsIE1PTlRIKVxuICAgICAgICA6IHZhbHVlLmlzU2FtZShkYXRlVmFsdWUsIERBWSksXG4gICAgKTtcbiAgfVxuXG4gIG1hdGNoVG9kYXkodmFsdWU6IERheWpzKSB7XG4gICAgcmV0dXJuIHZhbHVlLmlzU2FtZShkYXlqcygpLCBnZXRUeXBlQnlOYXZSYW5nZSh0aGlzLm5hdlJhbmdlKSk7XG4gIH1cblxuICBzZWxlY3RWYWx1ZSh2YWx1ZTogRGF5anMpIHtcbiAgICB0aGlzLnNlbGVjdC5uZXh0KHZhbHVlKTtcbiAgfVxuXG4gIHRyYWNrQnlGbigpIHtcbiAgICByZXR1cm4gdGhpcy5uYXZSYW5nZTtcbiAgfVxufVxuIiwiPGRpdlxuICBbY2xhc3NdPVwiYmVtLmVsZW1lbnQoJ2NvbnRhaW5lcicpXCJcbiAgW25nQ2xhc3NdPVwie1xuICAgICdkYXktcGFuZWwtY29udGFpbmVyJzogbmF2UmFuZ2UgPT09IERhdGVOYXZSYW5nZS5Nb250aCxcbiAgICAnbW9udGgtcGFuZWwtY29udGFpbmVyJzogbmF2UmFuZ2UgPT09IERhdGVOYXZSYW5nZS5ZZWFyLFxuICAgICd5ZWFyLXBhbmVsLWNvbnRhaW5lcic6IG5hdlJhbmdlID09PSBEYXRlTmF2UmFuZ2UuRGVjYWRlXG4gIH1cIlxuPlxuICA8ZGl2XG4gICAgW2NsYXNzXT1cIltiZW0uZWxlbWVudCgncm93JyksICd3ZWVrLWhlYWRlciddLmpvaW4oJyAnKVwiXG4gICAgKm5nSWY9XCJuYXZSYW5nZSA9PT0gRGF0ZU5hdlJhbmdlLk1vbnRoXCJcbiAgPlxuICAgIDxzcGFuXG4gICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiB3ZWVrRGVmc1wiXG4gICAgICBbY2xhc3NdPVwiYmVtLmVsZW1lbnQoJ2NlbGwnKVwiXG4gICAgPlxuICAgICAge3sgaXRlbSB8IGF1aUkxOG4gfX1cbiAgICA8L3NwYW4+XG4gIDwvZGl2PlxuICA8ZGl2XG4gICAgW2NsYXNzXT1cImJlbS5lbGVtZW50KCdyb3cnKVwiXG4gICAgKm5nRm9yPVwibGV0IHJvdyBvZiBwYW5lbERhdGE7IHRyYWNrQnk6IHRyYWNrQnlGblwiXG4gID5cbiAgICA8c3BhblxuICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2Ygcm93OyB0cmFja0J5OiB0cmFja0J5Rm5cIlxuICAgICAgW2NsYXNzXT1cImJlbS5lbGVtZW50KCdjZWxsJylcIlxuICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICBpblJhbmdlOiBpdGVtLmluUmFuZ2UgJiYgIWl0ZW0uaXNEaXNhYmxlZCxcbiAgICAgICAgaXNBY3RpdmU6IG1hdGNoKGl0ZW0udmFsdWUpLFxuICAgICAgICBpc0JhY2tncm91bmQ6IGl0ZW0uaXNCYWNrZ3JvdW5kICYmICFpdGVtLmlzRGlzYWJsZWQsXG4gICAgICAgIGlzUmFuZ2VTdGFydDogaXRlbS5pc1JhbmdlU3RhcnQsXG4gICAgICAgIGlzUmFuZ2VFbmQ6IGl0ZW0uaXNSYW5nZUVuZCxcbiAgICAgICAgaXNUb2RheTogbWF0Y2hUb2RheShpdGVtLnZhbHVlKSAmJiAhaXRlbS5pc0JhY2tncm91bmQsXG4gICAgICAgIGlzRGlzYWJsZWQ6IGl0ZW0uaXNEaXNhYmxlZFxuICAgICAgfVwiXG4gICAgICA+PGJ1dHRvblxuICAgICAgICBhdWktYnV0dG9uPVwidGV4dFwiXG4gICAgICAgIFtwbGFpbl09XCJ0cnVlXCJcbiAgICAgICAgW3NpemVdPVwibmF2UmFuZ2UgPT09IERhdGVOYXZSYW5nZS5Nb250aCA/ICdtaW5pJyA6ICdzbWFsbCdcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiaXRlbS5pc0Rpc2FibGVkXCJcbiAgICAgICAgKGNsaWNrKT1cInNlbGVjdFZhbHVlKGl0ZW0udmFsdWUpXCJcbiAgICAgICAgKG1vdXNlZW50ZXIpPVwiaG92ZXJlZC5uZXh0KGl0ZW0udmFsdWUpXCJcbiAgICAgID5cbiAgICAgICAge3sgaXRlbS5sYWJlbFxuICAgICAgICB9fTxuZy1jb250YWluZXIgKm5nSWY9XCJuYXZSYW5nZSA9PT0gRGF0ZU5hdlJhbmdlLlllYXJcIj57e1xuICAgICAgICAgICdtb250aF9zdWZmaXgnIHwgYXVpSTE4blxuICAgICAgICB9fTwvbmctY29udGFpbmVyPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9zcGFuPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
151
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlja2VyLXBhbmVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2RhdGUtcGlja2VyL2NhbGVuZGFyL3BhbmVsL3BpY2tlci1wYW5lbC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9kYXRlLXBpY2tlci9jYWxlbmRhci9wYW5lbC9waWNrZXItcGFuZWwudGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQ0wsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxLQUFnQixNQUFNLE9BQU8sQ0FBQztBQUNyQyxPQUFPLFNBQVMsTUFBTSx3QkFBd0IsQ0FBQztBQUUvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbkUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ25ELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdEQsT0FBTyxFQUNMLEdBQUcsRUFDSCxzQkFBc0IsRUFDdEIsbUJBQW1CLEVBRW5CLEtBQUssRUFDTCx3QkFBd0IsRUFDeEIscUJBQXFCLEVBQ3JCLElBQUksRUFDSix1QkFBdUIsRUFDdkIsb0JBQW9CLEdBQ3JCLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFFTCxjQUFjLEVBQ2QscUJBQXFCLEVBQ3JCLFVBQVUsRUFDVixvQkFBb0IsRUFDcEIsaUJBQWlCLEVBQ2pCLGlCQUFpQixFQUNqQixTQUFTLEdBQ1YsTUFBTSxTQUFTLENBQUM7O0FBRWpCLEtBQUssQ0FBQyxNQUFNLENB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T0FBTztzQkFETixLQUFLO2dCQUlOLE9BQU87c0JBRE4sS0FBSztnQkFnQk4sTUFBTTtzQkFETCxNQUFNO2dCQUlQLE9BQU87c0JBRE4sTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nQ2xhc3MsIE5nSWYsIE5nRm9yIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE91dHB1dCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IGRheWpzLCB7IERheWpzIH0gZnJvbSAnZGF5anMnO1xuaW1wb3J0IGlzQmV0d2VlbiBmcm9tICdkYXlqcy9wbHVnaW4vaXNCZXR3ZWVuJztcblxuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vYnV0dG9uL2J1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgSTE4blBpcGUgfSBmcm9tICcuLi8uLi8uLi9pMThuL2kxOG4ucGlwZSc7XG5pbXBvcnQgeyBidWlsZEJlbSB9IGZyb20gJy4uLy4uLy4uL2ludGVybmFsL3V0aWxzJztcbmltcG9ydCB7IERhdGVOYXZSYW5nZSB9IGZyb20gJy4uLy4uL2RhdGUtcGlja2VyLnR5cGUnO1xuaW1wb3J0IHtcbiAgREFZLFxuICBEQVlfUEFORUxfQ09MVU1OX0NPVU5ULFxuICBEQVlfUEFORUxfUk9XX0NPVU5ULFxuICBEYXRlUGlja2VyVHlwZSxcbiAgTU9OVEgsXG4gIE1PTlRIX1BBTkVMX0NPTFVNTl9DT1VOVCxcbiAgTU9OVEhfUEFORUxfUk9XX0NPVU5ULFxuICBZRUFSLFxuICBZRUFSX1BBTkVMX0NPTFVNTl9DT1VOVCxcbiAgWUVBUl9QQU5FTF9ST1dfQ09VTlQsXG59IGZyb20gJy4uL2NvbnN0YW50JztcbmltcG9ydCB7XG4gIERhdGVDZWxsLFxuICBjYWxjUmFuZ2VWYWx1ZSxcbiAgY29tcG9zZURpc2FibGVkRGF0ZUZuLFxuICBmb3JtYXREYXRlLFxuICBnZXREYXRlUGFuZWxJdGVyYWJsZSxcbiAgZ2V0TmF2UmFuZ2VCeVR5cGUsXG4gIGdldFR5cGVCeU5hdlJhbmdlLFxuICBzb3J0RGF0ZXMsXG59IGZyb20gJy4uL3V0aWwnO1xuXG5kYXlqcy5leHRlbmQoaXNCZXR3ZWVuKTtcblxuY29uc3QgYmVtID0gYnVpbGRCZW0oJ2F1aS1waWNrZXItcGFuZWwnKTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXVpLXBpY2tlci1wYW5lbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9waWNrZXItcGFuZWwudGVtcGxhdGUuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3BpY2tlci1wYW5lbC5zdHlsZS5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbTmdDbGFzcywgTmdJZiwgTmdGb3IsIEJ1dHRvbkNvbXBvbmVudCwgSTE4blBpcGVdLFxufSlcbmV4cG9ydCBjbGFzcyBQaWNrZXJQYW5lbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpXG4gIG5hdlJhbmdlOiBEYXRlTmF2UmFuZ2U7XG5cbiAgQElucHV0KClcbiAgdHlwZTogRGF0ZVBpY2tlclR5cGU7XG5cbiAgQElucHV0KClcbiAgYW5jaG9yID0gZGF5anMoKTtcblxuICBASW5wdXQoKVxuICBtYXRjaERhdGVzOiBEYXlqc1tdO1xuXG4gIEBJbnB1dCgpXG4gIGRpc2FibGVkRGF0ZTogKGRhdGU6IERheWpzLCBuYXZSYW5nZTogRGF0ZU5hdlJhbmdlKSA9PiBib29sZWFuID0gKCkgPT4gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgc2V0IHdlZWtTdGFydERheShkYXk6IG51bWJlcikge1xuICAgIGNvbnN0IG5vcm1hbGl6ZWQgPSBNYXRoLm1heChNYXRoLm1pbihNYXRoLnJvdW5kKGRheSksIDYpLCAwKTtcbiAgICB0aGlzLndlZWtEZWZzID0gW1xuICAgICAgLi4udGhpcy53ZWVrRGVmcy5zbGljZShub3JtYWxpemVkKSxcbiAgICAgIC4uLnRoaXMud2Vla0RlZnMuc2xpY2UoMCwgbm9ybWFsaXplZCksXG4gICAgXTtcbiAgICB0aGlzLl93ZWVrU3RhcnREYXkgPSBub3JtYWxpemVkO1xuICB9XG5cbiAgZ2V0IHdlZWtTdGFydERheSgpIHtcbiAgICByZXR1cm4gdGhpcy5fd2Vla1N0YXJ0RGF5O1xuICB9XG5cbiAgQElucHV0KClcbiAgbWluRGF0ZTogRGF5anM7XG5cbiAgQElucHV0KClcbiAgbWF4RGF0ZTogRGF5anM7XG5cbiAgZ2V0IGRpc2FibGVkRGF0ZUZuKCkge1xuICAgIHJldHVybiBjb21wb3NlRGlzYWJsZWREYXRlRm4oXG4gICAgICBkYXRlID0+IHRoaXMubWluRGF0ZSAmJiBkYXRlLmlzQmVmb3JlKHRoaXMubWluRGF0ZSwgJ2RhdGUnKSxcbiAgICAgIGRhdGUgPT4gdGhpcy5tYXhEYXRlICYmIGRhdGUuaXNBZnRlcih0aGlzLm1heERhdGUsICdkYXRlJyksXG4gICAgICB0aGlzLmRpc2FibGVkRGF0ZSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBfd2Vla1N0YXJ0RGF5ID0gMDtcblxuICBwYW5lbERhdGE6IERhdGVDZWxsW11bXTtcblxuICBAT3V0cHV0KClcbiAgc2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxEYXlqcz4oKTtcblxuICBAT3V0cHV0KClcbiAgaG92ZXJlZCA9IG5ldyBFdmVudEVtaXR0ZXI8RGF5anM+KCk7XG5cbiAgYmVtID0gYmVtO1xuICBEYXRlTmF2UmFuZ2UgPSBEYXRlTmF2UmFuZ2U7XG5cbiAgd2Vla0RlZnMgPSBbXG4gICAgJ3N1bmRheScsXG4gICAgJ21vbmRheScsXG4gICAgJ3R1ZXNkYXknLFxuICAgICd3ZWRuZXNkYXknLFxuICAgICd0aHVyc2RheScsXG4gICAgJ2ZyaWRheScsXG4gICAgJ3NhdHVyZGF5JyxcbiAgXTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgbmdPbkNoYW5nZXMoKSB7XG4gICAgLy8g5aaC5p6cIGRhdGVWYWx1ZSDmmK/kuIDkuKrmlbDnu4TvvIzlv4XnhLbmmK/lkIzkuIDkuKrpnaLmnb/kuIrvvIzlkKbliJnlupTlvZPnu5nkuI7kuI3lkIznmoTpnaLmnb/kuI3lkIznmoRkYXRlVmFsdWXlgLxcbiAgICBjb25zdCBoZWFkZXJSYW5nZSA9IGNhbGNSYW5nZVZhbHVlKHRoaXMubmF2UmFuZ2UsIHRoaXMuYW5jaG9yKTtcbiAgICB0aGlzLnJlbmRlclBhbmVsRGF0YShoZWFkZXJSYW5nZS5zdGFydCwgdGhpcy5uYXZSYW5nZSk7XG4gIH1cblxuICAvLyDmoLnmja7lvZPliY3mlbDmja7vvIzorqHnrpfmuLLmn5PooajmoLxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHNvbmFyanMvY29nbml0aXZlLWNvbXBsZXhpdHlcbiAgcmVuZGVyUGFuZWxEYXRhKGRhdGU6IERheWpzLCBuYXZSYW5nZTogRGF0ZU5hdlJhbmdlKSB7XG4gICAgY29uc3QgdmFsdWUgPSBbXTtcbiAgICBsZXQgY29sQ291bnRzID0gMDtcbiAgICBsZXQgcm93Q291bnRzID0gMDtcbiAgICBpZiAoIXRoaXMucGFuZWxEYXRhKSB7XG4gICAgICB0aGlzLnBhbmVsRGF0YSA9IFtbXV07XG4gICAgfVxuICAgIGNvbnN0IFsuLi52YWx1ZXNdID0gZ2V0RGF0ZVBhbmVsSXRlcmFibGUoZGF0ZSwgbmF2UmFuZ2UsIHRoaXMud2Vla1N0YXJ0RGF5KTtcbiAgICBzd2l0Y2ggKG5hdlJhbmdlKSB7XG4gICAgICBjYXNlIERhdGVOYXZSYW5nZS5Nb250aDoge1xuICAgICAgICBjb2xDb3VudHMgPSBEQVlfUEFORUxfQ09MVU1OX0NPVU5UO1xuICAgICAgICByb3dDb3VudHMgPSBEQVlfUEFORUxfUk9XX0NPVU5UO1xuXG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSBEYXRlTmF2UmFuZ2UuRGVjYWRlOiB7XG4gICAgICAgIGNvbENvdW50cyA9IFlFQVJfUEFORUxfQ09MVU1OX0NPVU5UO1xuICAgICAgICByb3dDb3VudHMgPSBZRUFSX1BBTkVMX1JPV19DT1VOVDtcblxuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgRGF0ZU5hdlJhbmdlLlllYXI6IHtcbiAgICAgICAgY29sQ291bnRzID0gTU9OVEhfUEFORUxfQ09MVU1OX0NPVU5UO1xuICAgICAgICByb3dDb3VudHMgPSBNT05USF9QQU5FTF9ST1dfQ09VTlQ7XG5cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICAvLyBObyBkZWZhdWx0XG4gICAgfVxuICAgIGZvciAobGV0IGsgPSAwOyBrIDwgcm93Q291bnRzOyBrKyspIHtcbiAgICAgIGNvbnN0IHJvdyA9IFtdO1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb2xDb3VudHM7IGkrKykge1xuICAgICAgICBjb25zdCBjZWxsID0gZm9ybWF0RGF0ZShuYXZSYW5nZSwgdmFsdWVzW2sgKiBjb2xDb3VudHMgKyBpXSwgZGF0ZSk7XG4gICAgICAgIGNlbGwuaXNEaXNhYmxlZCA9IHRoaXMuZGlzYWJsZWREYXRlRm4oY2VsbC52YWx1ZSwgbmF2UmFuZ2UpO1xuICAgICAgICBjb25zdCBzb3J0ZWREYXRlcyA9IHNvcnREYXRlcyh0aGlzLm1hdGNoRGF0ZXMpO1xuICAgICAgICBpZiAoc29ydGVkRGF0ZXM/Lmxlbmd0aCA9PT0gMiAmJiBuYXZSYW5nZSA9PT0gRGF0ZU5hdlJhbmdlLk1vbnRoKSB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgY2VsbC52YWx1ZS5pc0JldHdlZW4oc29ydGVkRGF0ZXNbMF0sIHNvcnRlZERhdGVzWzFdKSAmJlxuICAgICAgICAgICAgIWNlbGwuaXNCYWNrZ3JvdW5kXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBjZWxsLmluUmFuZ2UgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjZWxsLmlzUmFuZ2VTdGFydCA9XG4gICAgICAgICAgICBjZWxsLnZhbHVlLmlzU2FtZShzb3J0ZWREYXRlc1swXSwgREFZKSAmJiAhY2VsbC5pc0JhY2tncm91bmQ7XG4gICAgICAgICAgY2VsbC5pc1JhbmdlRW5kID1cbiAgICAgICAgICAgIGNlbGwudmFsdWUuaXNTYW1lKHNvcnRlZERhdGVzWzFdLCBEQVkpICYmICFjZWxsLmlzQmFja2dyb3VuZDtcbiAgICAgICAgICBpZiAoY2VsbC5pc1JhbmdlU3RhcnQgJiYgY2VsbC5pc1JhbmdlRW5kKSB7XG4gICAgICAgICAgICBjZWxsLmlzUmFuZ2VTdGFydCA9IGZhbHNlO1xuICAgICAgICAgICAgY2VsbC5pc1JhbmdlRW5kID0gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJvdy5wdXNoKGNlbGwpO1xuICAgICAgfVxuICAgICAgdmFsdWUucHVzaChyb3cpO1xuICAgIH1cbiAgICB0aGlzLnBhbmVsRGF0YSA9IHZhbHVlLnNsaWNlKCk7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBtYXRjaCh2YWx1ZTogRGF5anMpIHtcbiAgICBpZiAoXG4gICAgICAhdGhpcy5tYXRjaERhdGVzPy5maWx0ZXIodiA9PiAhIXYpPy5sZW5ndGggfHxcbiAgICAgIGdldE5hdlJhbmdlQnlUeXBlKHRoaXMudHlwZSkgIT09IHRoaXMubmF2UmFuZ2VcbiAgICApIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMubWF0Y2hEYXRlcz8uc29tZShkYXRlVmFsdWUgPT5cbiAgICAgIHRoaXMubmF2UmFuZ2UgPT09IERhdGVOYXZSYW5nZS5EZWNhZGVcbiAgICAgICAgPyB2YWx1ZS5pc1NhbWUoZGF0ZVZhbHVlLCBZRUFSKVxuICAgICAgICA6IHRoaXMubmF2UmFuZ2UgPT09IERhdGVOYXZSYW5nZS5ZZWFyXG4gICAgICAgID8gdmFsdWUuaXNTYW1lKGRhdGVWYWx1ZSwgTU9OVEgpXG4gICAgICAgIDogdmFsdWUuaXNTYW1lKGRhdGVWYWx1ZSwgREFZKSxcbiAgICApO1xuICB9XG5cbiAgbWF0Y2hUb2RheSh2YWx1ZTogRGF5anMpIHtcbiAgICByZXR1cm4gdmFsdWUuaXNTYW1lKGRheWpzKCksIGdldFR5cGVCeU5hdlJhbmdlKHRoaXMubmF2UmFuZ2UpKTtcbiAgfVxuXG4gIHNlbGVjdFZhbHVlKHZhbHVlOiBEYXlqcykge1xuICAgIHRoaXMuc2VsZWN0Lm5leHQodmFsdWUpO1xuICB9XG5cbiAgdHJhY2tCeUZuKCkge1xuICAgIHJldHVybiB0aGlzLm5hdlJhbmdlO1xuICB9XG59XG4iLCI8ZGl2XG4gIFtjbGFzc109XCJiZW0uZWxlbWVudCgnY29udGFpbmVyJylcIlxuICBbbmdDbGFzc109XCJ7XG4gICAgJ2RheS1wYW5lbC1jb250YWluZXInOiBuYXZSYW5nZSA9PT0gRGF0ZU5hdlJhbmdlLk1vbnRoLFxuICAgICdtb250aC1wYW5lbC1jb250YWluZXInOiBuYXZSYW5nZSA9PT0gRGF0ZU5hdlJhbmdlLlllYXIsXG4gICAgJ3llYXItcGFuZWwtY29udGFpbmVyJzogbmF2UmFuZ2UgPT09IERhdGVOYXZSYW5nZS5EZWNhZGVcbiAgfVwiXG4+XG4gIDxkaXZcbiAgICBbY2xhc3NdPVwiW2JlbS5lbGVtZW50KCdyb3cnKSwgJ3dlZWstaGVhZGVyJ10uam9pbignICcpXCJcbiAgICAqbmdJZj1cIm5hdlJhbmdlID09PSBEYXRlTmF2UmFuZ2UuTW9udGhcIlxuICA+XG4gICAgPHNwYW5cbiAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIHdlZWtEZWZzXCJcbiAgICAgIFtjbGFzc109XCJiZW0uZWxlbWVudCgnY2VsbCcpXCJcbiAgICA+XG4gICAgICB7eyBpdGVtIHwgYXVpSTE4biB9fVxuICAgIDwvc3Bhbj5cbiAgPC9kaXY+XG4gIDxkaXZcbiAgICBbY2xhc3NdPVwiYmVtLmVsZW1lbnQoJ3JvdycpXCJcbiAgICAqbmdGb3I9XCJsZXQgcm93IG9mIHBhbmVsRGF0YTsgdHJhY2tCeTogdHJhY2tCeUZuXCJcbiAgPlxuICAgIDxzcGFuXG4gICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiByb3c7IHRyYWNrQnk6IHRyYWNrQnlGblwiXG4gICAgICBbY2xhc3NdPVwiYmVtLmVsZW1lbnQoJ2NlbGwnKVwiXG4gICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgIGluUmFuZ2U6IGl0ZW0uaW5SYW5nZSAmJiAhaXRlbS5pc0Rpc2FibGVkLFxuICAgICAgICBpc0FjdGl2ZTogbWF0Y2goaXRlbS52YWx1ZSksXG4gICAgICAgIGlzQmFja2dyb3VuZDogaXRlbS5pc0JhY2tncm91bmQgJiYgIWl0ZW0uaXNEaXNhYmxlZCxcbiAgICAgICAgaXNSYW5nZVN0YXJ0OiBpdGVtLmlzUmFuZ2VTdGFydCxcbiAgICAgICAgaXNSYW5nZUVuZDogaXRlbS5pc1JhbmdlRW5kLFxuICAgICAgICBpc1RvZGF5OiBtYXRjaFRvZGF5KGl0ZW0udmFsdWUpICYmICFpdGVtLmlzQmFja2dyb3VuZCxcbiAgICAgICAgaXNEaXNhYmxlZDogaXRlbS5pc0Rpc2FibGVkXG4gICAgICB9XCJcbiAgICAgID48YnV0dG9uXG4gICAgICAgIGF1aS1idXR0b249XCJ0ZXh0XCJcbiAgICAgICAgW3BsYWluXT1cInRydWVcIlxuICAgICAgICBbc2l6ZV09XCJuYXZSYW5nZSA9PT0gRGF0ZU5hdlJhbmdlLk1vbnRoID8gJ21pbmknIDogJ3NtYWxsJ1wiXG4gICAgICAgIFtkaXNhYmxlZF09XCJpdGVtLmlzRGlzYWJsZWRcIlxuICAgICAgICAoY2xpY2spPVwic2VsZWN0VmFsdWUoaXRlbS52YWx1ZSlcIlxuICAgICAgICAobW91c2VlbnRlcik9XCJob3ZlcmVkLm5leHQoaXRlbS52YWx1ZSlcIlxuICAgICAgPlxuICAgICAgICB7eyBpdGVtLmxhYmVsXG4gICAgICAgIH19PG5nLWNvbnRhaW5lciAqbmdJZj1cIm5hdlJhbmdlID09PSBEYXRlTmF2UmFuZ2UuWWVhclwiPnt7XG4gICAgICAgICAgJ21vbnRoX3N1ZmZpeCcgfCBhdWlJMThuXG4gICAgICAgIH19PC9uZy1jb250YWluZXI+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L3NwYW4+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=