@alauda/ui 6.5.10-beta.35 → 6.5.10-beta.37

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 (181) hide show
  1. package/date-picker/calendar/date-picker-panel/component.d.ts +2 -6
  2. package/date-picker/calendar/panel/picker-panel.d.ts +1 -3
  3. package/esm2022/accordion/accordion-item/accordion-item.component.mjs +9 -9
  4. package/esm2022/accordion/accordion.component.mjs +3 -3
  5. package/esm2022/accordion/accordion.module.mjs +4 -4
  6. package/esm2022/anchor/anchor.component.mjs +6 -6
  7. package/esm2022/anchor/anchor.directive.mjs +9 -9
  8. package/esm2022/anchor/anchor.module.mjs +4 -4
  9. package/esm2022/autocomplete/autocomplete-placeholder.component.mjs +3 -3
  10. package/esm2022/autocomplete/autocomplete.component.mjs +3 -3
  11. package/esm2022/autocomplete/autocomplete.directive.mjs +15 -11
  12. package/esm2022/autocomplete/autocomplete.module.mjs +6 -6
  13. package/esm2022/autocomplete/helper-directives.mjs +3 -3
  14. package/esm2022/autocomplete/suggestion/suggestion.component.mjs +3 -3
  15. package/esm2022/autocomplete/suggestion-group/suggestion-group.component.mjs +3 -3
  16. package/esm2022/back-top/back-top.component.mjs +3 -3
  17. package/esm2022/back-top/back-top.module.mjs +6 -6
  18. package/esm2022/breadcrumb/breadcrumb-item.component.mjs +3 -3
  19. package/esm2022/breadcrumb/breadcrumb.component.mjs +3 -3
  20. package/esm2022/breadcrumb/breadcrumb.module.mjs +4 -4
  21. package/esm2022/button/button-group/button-group.component.mjs +3 -3
  22. package/esm2022/button/button.component.mjs +3 -3
  23. package/esm2022/button/button.module.mjs +4 -4
  24. package/esm2022/card/card.component.mjs +3 -3
  25. package/esm2022/card/card.module.mjs +4 -4
  26. package/esm2022/card/helper-directives.mjs +9 -9
  27. package/esm2022/card/section.component.mjs +3 -3
  28. package/esm2022/checkbox/checkbox-group/checkbox-group.component.mjs +3 -3
  29. package/esm2022/checkbox/checkbox.component.mjs +3 -3
  30. package/esm2022/checkbox/checkbox.module.mjs +4 -4
  31. package/esm2022/color-picker/color-picker.component.mjs +3 -3
  32. package/esm2022/color-picker/color-picker.module.mjs +4 -4
  33. package/esm2022/date-picker/calendar/date-picker-panel/component.mjs +8 -76
  34. package/esm2022/date-picker/calendar/footer/component.mjs +3 -3
  35. package/esm2022/date-picker/calendar/header/component.mjs +6 -5
  36. package/esm2022/date-picker/calendar/panel/picker-panel.mjs +6 -19
  37. package/esm2022/date-picker/calendar/range-picker-panel/component.mjs +4 -4
  38. package/esm2022/date-picker/calendar/util.mjs +3 -3
  39. package/esm2022/date-picker/date-picker/date-picker.component.mjs +4 -4
  40. package/esm2022/date-picker/date-picker.module.mjs +4 -4
  41. package/esm2022/date-picker/range-picker/range-picker.component.mjs +3 -3
  42. package/esm2022/date-picker/trigger/trigger.component.mjs +7 -7
  43. package/esm2022/dialog/confirm-dialog/confirm-dialog.component.mjs +10 -7
  44. package/esm2022/dialog/dialog-content/dialog-close.directive.mjs +3 -3
  45. package/esm2022/dialog/dialog-content/dialog-content.component.mjs +3 -3
  46. package/esm2022/dialog/dialog-content/dialog-footer.component.mjs +3 -3
  47. package/esm2022/dialog/dialog-content/dialog-header.component.mjs +3 -3
  48. package/esm2022/dialog/dialog.component.mjs +3 -3
  49. package/esm2022/dialog/dialog.module.mjs +4 -4
  50. package/esm2022/dialog/dialog.service.mjs +3 -3
  51. package/esm2022/drawer/component/drawer.component.mjs +5 -5
  52. package/esm2022/drawer/component/helper-directives.mjs +9 -9
  53. package/esm2022/drawer/drawer.module.mjs +4 -4
  54. package/esm2022/drawer/drawer.service.mjs +3 -3
  55. package/esm2022/dropdown/dropdown-active.directive.mjs +3 -3
  56. package/esm2022/dropdown/dropdown-button/dropdown-button.component.mjs +5 -5
  57. package/esm2022/dropdown/dropdown.directive.mjs +3 -3
  58. package/esm2022/dropdown/dropdown.module.mjs +7 -7
  59. package/esm2022/dropdown/helper-directives.mjs +3 -3
  60. package/esm2022/dropdown/menu/menu-content.directive.mjs +3 -3
  61. package/esm2022/dropdown/menu/menu.component.mjs +3 -3
  62. package/esm2022/dropdown/menu-group/menu-group.component.mjs +3 -3
  63. package/esm2022/dropdown/menu-item/menu-item.component.mjs +3 -3
  64. package/esm2022/dropdown/submenu/submenu.component.mjs +3 -3
  65. package/esm2022/form/common-form.mjs +3 -3
  66. package/esm2022/form/form-item/form-item.component.mjs +3 -3
  67. package/esm2022/form/form.directive.mjs +3 -3
  68. package/esm2022/form/form.module.mjs +4 -4
  69. package/esm2022/form/helper-directives.mjs +15 -15
  70. package/esm2022/i18n/i18n.module.mjs +4 -4
  71. package/esm2022/i18n/i18n.pipe.mjs +3 -3
  72. package/esm2022/i18n/i18n.service.mjs +3 -3
  73. package/esm2022/icon/icon-register.service.mjs +3 -3
  74. package/esm2022/icon/icon.component.mjs +3 -3
  75. package/esm2022/icon/icon.module.mjs +4 -4
  76. package/esm2022/inline-alert/helper-directives.mjs +3 -3
  77. package/esm2022/inline-alert/inline-alert.component.mjs +12 -8
  78. package/esm2022/inline-alert/inline-alert.module.mjs +4 -4
  79. package/esm2022/input/autosize.directive.mjs +3 -3
  80. package/esm2022/input/helper-directives.mjs +12 -12
  81. package/esm2022/input/input-group/input-group.component.mjs +3 -3
  82. package/esm2022/input/input.component.mjs +3 -3
  83. package/esm2022/input/input.module.mjs +4 -4
  84. package/esm2022/input/number-input/number-input.component.mjs +3 -3
  85. package/esm2022/input/search/search.component.mjs +3 -3
  86. package/esm2022/input/tags-input/tags-input.component.mjs +7 -7
  87. package/esm2022/input/tags-input/with-max-row-count.mjs +15 -8
  88. package/esm2022/message/message-wrapper.component.mjs +3 -3
  89. package/esm2022/message/message.component.mjs +3 -3
  90. package/esm2022/message/message.module.mjs +4 -4
  91. package/esm2022/message/message.service.mjs +3 -3
  92. package/esm2022/notification/notification-wrapper.component.mjs +3 -3
  93. package/esm2022/notification/notification.component.mjs +3 -3
  94. package/esm2022/notification/notification.module.mjs +4 -4
  95. package/esm2022/notification/notification.service.mjs +3 -3
  96. package/esm2022/paginator/paginator-intl.mjs +3 -3
  97. package/esm2022/paginator/paginator.component.mjs +4 -4
  98. package/esm2022/paginator/paginator.module.mjs +4 -4
  99. package/esm2022/radio/base-radio.mjs +3 -3
  100. package/esm2022/radio/radio-button/radio-button.component.mjs +3 -3
  101. package/esm2022/radio/radio-group/radio-group.component.mjs +3 -3
  102. package/esm2022/radio/radio.component.mjs +3 -3
  103. package/esm2022/radio/radio.module.mjs +4 -4
  104. package/esm2022/scrolling/fixed-size-table-virtual-scroll-strategy.mjs +3 -3
  105. package/esm2022/scrolling/fixed-size-table-virtual-scroll.directive.mjs +3 -3
  106. package/esm2022/scrolling/fixed-size-virtual-scroll.directive.mjs +3 -3
  107. package/esm2022/scrolling/scrolling.module.mjs +4 -4
  108. package/esm2022/scrolling/virtual-for-of.directive.mjs +3 -3
  109. package/esm2022/scrolling/virtual-scroll-viewport.component.mjs +3 -3
  110. package/esm2022/select/base-select.mjs +12 -8
  111. package/esm2022/select/helper-directives.mjs +6 -6
  112. package/esm2022/select/multi-select/multi-select.component.mjs +16 -18
  113. package/esm2022/select/option/option.component.mjs +3 -3
  114. package/esm2022/select/option-group/option-group.component.mjs +3 -3
  115. package/esm2022/select/option-placeholder.component.mjs +3 -3
  116. package/esm2022/select/select.component.mjs +3 -3
  117. package/esm2022/select/select.module.mjs +6 -6
  118. package/esm2022/select/validators.mjs +8 -8
  119. package/esm2022/shared/click-outside.directive.mjs +3 -3
  120. package/esm2022/shared/shared.module.mjs +4 -4
  121. package/esm2022/sort/sort-header.component.mjs +3 -3
  122. package/esm2022/sort/sort.directive.mjs +8 -8
  123. package/esm2022/sort/sort.module.mjs +4 -4
  124. package/esm2022/status-bar/status-bar.component.mjs +3 -3
  125. package/esm2022/status-bar/status-bar.module.mjs +4 -4
  126. package/esm2022/steps/steps.component.mjs +14 -14
  127. package/esm2022/steps/steps.module.mjs +4 -4
  128. package/esm2022/switch/switch.component.mjs +3 -3
  129. package/esm2022/switch/switch.module.mjs +4 -4
  130. package/esm2022/table/table-cell-def.directive.mjs +3 -3
  131. package/esm2022/table/table-cell.component.mjs +6 -6
  132. package/esm2022/table/table-cell.directive.mjs +3 -3
  133. package/esm2022/table/table-column-def.directive.mjs +3 -3
  134. package/esm2022/table/table-header-cell-def.directive.mjs +3 -3
  135. package/esm2022/table/table-header-cell.directive.mjs +3 -3
  136. package/esm2022/table/table-header-row-def.directive.mjs +3 -3
  137. package/esm2022/table/table-header-row.component.mjs +3 -3
  138. package/esm2022/table/table-placeholder.directive.mjs +6 -6
  139. package/esm2022/table/table-row-def.directive.mjs +3 -3
  140. package/esm2022/table/table-row.component.mjs +3 -3
  141. package/esm2022/table/table-scroll.directive.mjs +6 -6
  142. package/esm2022/table/table.component.mjs +3 -3
  143. package/esm2022/table/table.module.mjs +4 -4
  144. package/esm2022/table-of-contents/table-of-contents.module.mjs +4 -4
  145. package/esm2022/table-of-contents/toc-container.directive.mjs +4 -4
  146. package/esm2022/table-of-contents/toc-content.directive.mjs +3 -3
  147. package/esm2022/table-of-contents/toc-link.directive.mjs +3 -3
  148. package/esm2022/tabs/tab-body.component.mjs +21 -21
  149. package/esm2022/tabs/tab-context.service.mjs +3 -3
  150. package/esm2022/tabs/tab-group.component.mjs +3 -3
  151. package/esm2022/tabs/tab-header-active-indicator.component.mjs +8 -8
  152. package/esm2022/tabs/tab-header.component.mjs +15 -11
  153. package/esm2022/tabs/tab.component.mjs +3 -3
  154. package/esm2022/tabs/tabs.module.mjs +4 -4
  155. package/esm2022/tag/check-tag/check-tag.component.mjs +3 -3
  156. package/esm2022/tag/tag.component.mjs +3 -3
  157. package/esm2022/tag/tag.module.mjs +4 -4
  158. package/esm2022/theme/theme.module.mjs +4 -4
  159. package/esm2022/theme/theme.pipe.mjs +12 -12
  160. package/esm2022/theme/theme.service.mjs +12 -8
  161. package/esm2022/time-picker/component.mjs +14 -39
  162. package/esm2022/time-picker/panel/panel.component.mjs +33 -58
  163. package/esm2022/time-picker/time-picker.module.mjs +4 -4
  164. package/esm2022/time-picker/time-picker.type.mjs +1 -1
  165. package/esm2022/tooltip/base-tooltip.mjs +12 -8
  166. package/esm2022/tooltip/tooltip-active.directive.mjs +3 -3
  167. package/esm2022/tooltip/tooltip-copy.directive.mjs +3 -3
  168. package/esm2022/tooltip/tooltip-intl.mjs +3 -3
  169. package/esm2022/tooltip/tooltip.component.mjs +3 -3
  170. package/esm2022/tooltip/tooltip.directive.mjs +3 -3
  171. package/esm2022/tooltip/tooltip.module.mjs +4 -4
  172. package/esm2022/tooltip/utils/index.mjs +4 -4
  173. package/esm2022/tree-select/tree-node-placeholder.component.mjs +3 -3
  174. package/esm2022/tree-select/tree-select.component.mjs +6 -6
  175. package/esm2022/tree-select/tree-select.module.mjs +4 -4
  176. package/fesm2022/alauda-ui.mjs +844 -941
  177. package/fesm2022/alauda-ui.mjs.map +1 -1
  178. package/package.json +1 -1
  179. package/table-of-contents/toc-container.directive.d.ts +1 -1
  180. package/time-picker/component.d.ts +0 -4
  181. package/time-picker/panel/panel.component.d.ts +1 -5
@@ -5,11 +5,11 @@ import { CheckboxGroupComponent } from './checkbox-group/checkbox-group.componen
5
5
  import { CheckboxComponent } from './checkbox.component';
6
6
  import * as i0 from "@angular/core";
7
7
  export class CheckboxModule {
8
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: CheckboxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.7", ngImport: i0, type: CheckboxModule, declarations: [CheckboxComponent, CheckboxGroupComponent], imports: [CommonModule, IconModule], exports: [CheckboxComponent, CheckboxGroupComponent] });
10
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: CheckboxModule, imports: [CommonModule, IconModule] });
8
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: CheckboxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.0", ngImport: i0, type: CheckboxModule, declarations: [CheckboxComponent, CheckboxGroupComponent], imports: [CommonModule, IconModule], exports: [CheckboxComponent, CheckboxGroupComponent] });
10
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: CheckboxModule, imports: [CommonModule, IconModule] });
11
11
  }
12
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: CheckboxModule, decorators: [{
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: CheckboxModule, decorators: [{
13
13
  type: NgModule,
14
14
  args: [{
15
15
  imports: [CommonModule, IconModule],
@@ -6,8 +6,8 @@ export class ColorPickerComponent extends CommonFormControl {
6
6
  onInput(event) {
7
7
  this.emitValue(event.target.value);
8
8
  }
9
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: ColorPickerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
10
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: ColorPickerComponent, selector: "aui-color-picker", providers: [
9
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: ColorPickerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
10
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.0", type: ColorPickerComponent, selector: "aui-color-picker", providers: [
11
11
  {
12
12
  provide: NG_VALUE_ACCESSOR,
13
13
  useExisting: forwardRef(() => ColorPickerComponent),
@@ -15,7 +15,7 @@ export class ColorPickerComponent extends CommonFormControl {
15
15
  },
16
16
  ], usesInheritance: true, ngImport: i0, template: "<input\n class=\"aui-color-picker\"\n type=\"color\"\n [disabled]=\"disabled\"\n [value]=\"model\"\n (input)=\"onInput($event)\"\n/>\n", styles: [".aui-color-picker{display:inline-block;padding:3px;width:var(--aui-inline-height-m);height:var(--aui-inline-height-m);border:1px solid rgb(var(--aui-color-n-7));border-radius:var(--aui-border-radius-m);background-color:rgb(var(--aui-color-main-bg));color:rgb(var(--aui-color-main-text));outline:none;cursor:pointer;font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);font-weight:var(--aui-font-weight-normal)}.aui-color-picker::-webkit-color-swatch-wrapper{padding:0}.aui-color-picker::-moz-color-swatch-wrapper{padding:0}.aui-color-picker::-webkit-color-swatch{border:none;border-radius:var(--aui-border-radius-m)}.aui-color-picker::-moz-color-swatch{border:none;border-radius:var(--aui-border-radius-m)}.aui-color-picker:hover,.aui-color-picker:focus{border-color:rgb(var(--aui-color-primary))}.aui-color-picker[disabled]{background-color:rgb(var(--aui-color-n-8));border-color:rgb(var(--aui-color-n-7))!important;color:rgb(var(--aui-color-disabled-text));cursor:not-allowed}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
17
17
  }
18
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: ColorPickerComponent, decorators: [{
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: ColorPickerComponent, decorators: [{
19
19
  type: Component,
20
20
  args: [{ selector: 'aui-color-picker', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, providers: [
21
21
  {
@@ -4,11 +4,11 @@ import { FormsModule } from '@angular/forms';
4
4
  import { ColorPickerComponent } from './color-picker.component';
5
5
  import * as i0 from "@angular/core";
6
6
  export class ColorPickerModule {
7
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: ColorPickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.7", ngImport: i0, type: ColorPickerModule, declarations: [ColorPickerComponent], imports: [CommonModule, FormsModule], exports: [ColorPickerComponent] });
9
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: ColorPickerModule, imports: [CommonModule, FormsModule] });
7
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: ColorPickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.0", ngImport: i0, type: ColorPickerModule, declarations: [ColorPickerComponent], imports: [CommonModule, FormsModule], exports: [ColorPickerComponent] });
9
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: ColorPickerModule, imports: [CommonModule, FormsModule] });
10
10
  }
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: ColorPickerModule, decorators: [{
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: ColorPickerModule, decorators: [{
12
12
  type: NgModule,
13
13
  args: [{
14
14
  imports: [CommonModule, FormsModule],
@@ -5,7 +5,6 @@ import { CommonFormControl } from '../../../form/common-form';
5
5
  import { DateNavRange } from '../../date-picker.type';
6
6
  import { DatePickerType } from '../constant';
7
7
  import { getNavRangeByType, getTimePickerModel, getTypeByNavRange, nextNavRangeType, updateDate, updateDateByTimeModel, } from '../util';
8
- import { HOUR_ITEMS, MINUTE_ITEMS, SECOND_ITEMS } from 'src/time-picker';
9
8
  import * as i0 from "@angular/core";
10
9
  import * as i1 from "@angular/common";
11
10
  import * as i2 from "../../../button/button.component";
@@ -26,13 +25,6 @@ export class DatePickerPanelComponent extends CommonFormControl {
26
25
  return this._type;
27
26
  }
28
27
  _type;
29
- set selectedTime(time) {
30
- this._selectedTime = time;
31
- }
32
- get selectedTime() {
33
- return this._selectedTime;
34
- }
35
- _selectedTime;
36
28
  showTime = false;
37
29
  disabledDate = () => false;
38
30
  disabledTime = () => null;
@@ -48,7 +40,7 @@ export class DatePickerPanelComponent extends CommonFormControl {
48
40
  _cacheDisabledTimeFn;
49
41
  getDisabledTimeFn(selectedDate, type) {
50
42
  if (selectedDate !== this._cacheSelectedDate) {
51
- this._cacheDisabledTimeFn = combineDisabledTimeFn(this._disabledTimeFn.bind(this), this.disabledTime)(selectedDate);
43
+ this._cacheDisabledTimeFn = this.disabledTime(selectedDate);
52
44
  this._cacheSelectedDate = selectedDate;
53
45
  }
54
46
  return this._cacheDisabledTimeFn?.[type];
@@ -59,6 +51,7 @@ export class DatePickerPanelComponent extends CommonFormControl {
59
51
  }
60
52
  anchor;
61
53
  selectedDate;
54
+ selectedTime;
62
55
  DateNavRange = DateNavRange;
63
56
  DatePickerType = DatePickerType;
64
57
  writeValue(obj) {
@@ -91,65 +84,19 @@ export class DatePickerPanelComponent extends CommonFormControl {
91
84
  this.selectedDate = updateDateByTimeModel(this.selectedDate, time);
92
85
  this.emitValue(this.selectedDate);
93
86
  }
94
- clearValue() {
95
- this.selectedTime = null;
96
- this.clear.next();
97
- }
98
87
  setToday() {
99
88
  this.confirmValue(dayjs(), true);
100
89
  }
101
- _disabledTimeFn(selectedDate) {
102
- const returnFnMap = {
103
- hours: () => [],
104
- minutes: () => [],
105
- seconds: () => [],
106
- };
107
- if (selectedDate &&
108
- this.minDate &&
109
- selectedDate?.isSame(this.minDate, 'day')) {
110
- returnFnMap.hours = () => HOUR_ITEMS.filter(item => item < this.minDate.hour());
111
- returnFnMap.minutes = (hour) => {
112
- if (hour === this.minDate.hour()) {
113
- return MINUTE_ITEMS.filter(item => item < this.minDate.minute());
114
- }
115
- return [];
116
- };
117
- returnFnMap.seconds = (hour, minute) => {
118
- if (hour === this.minDate.hour() && minute === this.minDate.minute()) {
119
- return SECOND_ITEMS.filter(item => item < this.minDate.second());
120
- }
121
- return [];
122
- };
123
- }
124
- if (selectedDate &&
125
- this.maxDate &&
126
- selectedDate?.isSame(this.maxDate, 'day')) {
127
- returnFnMap.hours = () => HOUR_ITEMS.filter(item => item > this.maxDate.hour());
128
- returnFnMap.minutes = (hour) => {
129
- if (hour === this.maxDate.hour()) {
130
- return MINUTE_ITEMS.filter(item => item > this.maxDate.minute());
131
- }
132
- return [];
133
- };
134
- returnFnMap.seconds = (hour, minute) => {
135
- if (hour === this.maxDate.hour() && minute === this.maxDate.minute()) {
136
- return SECOND_ITEMS.filter(item => item > this.maxDate.second());
137
- }
138
- return [];
139
- };
140
- }
141
- return returnFnMap;
142
- }
143
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: DatePickerPanelComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
144
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: DatePickerPanelComponent, selector: "aui-date-picker-panel", inputs: { clearable: "clearable", clearText: "clearText", type: "type", selectedTime: "selectedTime", showTime: "showTime", disabledDate: "disabledDate", disabledTime: "disabledTime", weekStartDay: "weekStartDay", showFooter: "showFooter", footerTemplate: "footerTemplate", extraFooter: "extraFooter", minDate: "minDate", maxDate: "maxDate" }, outputs: { confirm: "confirm", clear: "clear" }, providers: [
90
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: DatePickerPanelComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
91
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.0", type: DatePickerPanelComponent, selector: "aui-date-picker-panel", inputs: { clearable: "clearable", clearText: "clearText", type: "type", showTime: "showTime", disabledDate: "disabledDate", disabledTime: "disabledTime", weekStartDay: "weekStartDay", showFooter: "showFooter", footerTemplate: "footerTemplate", extraFooter: "extraFooter", minDate: "minDate", maxDate: "maxDate" }, outputs: { confirm: "confirm", clear: "clear" }, providers: [
145
92
  {
146
93
  provide: NG_VALUE_ACCESSOR,
147
94
  useExisting: forwardRef(() => DatePickerPanelComponent),
148
95
  multi: true,
149
96
  },
150
- ], usesInheritance: true, ngImport: i0, template: "<div class=\"aui-date-picker-panel__wrapper\">\n <aui-calendar-header\n [dateNavRange]=\"navRange\"\n [anchor]=\"anchor\"\n [minAvail]=\"minDate\"\n [maxAvail]=\"maxDate\"\n [style.margin-inline.px]=\"4\"\n (navRangeChange)=\"navRange = $event\"\n (anchorChange)=\"anchor = $event\"\n ></aui-calendar-header>\n\n <aui-picker-panel\n [style.margin]=\"'16px 0'\"\n [anchor]=\"anchor\"\n [navRange]=\"navRange\"\n [disabledDate]=\"disabledDate\"\n [weekStartDay]=\"weekStartDay\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n [selectedTime]=\"selectedTime\"\n [type]=\"type\"\n [matchDates]=\"[selectedDate]\"\n (select)=\"panelValueChange($event)\"\n ></aui-picker-panel>\n\n <ng-container\n *ngIf=\"extraFooter\"\n [ngTemplateOutlet]=\"extraFooter\"\n [ngTemplateOutletContext]=\"{ context: this }\"\n ></ng-container>\n\n <ng-container *ngIf=\"showFooter\">\n <aui-calendar-footer\n (clear)=\"clearValue()\"\n (confirm)=\"confirmValue()\"\n [clearable]=\"clearable\"\n [clearText]=\"clearText\"\n *ngIf=\"showTime; else today\"\n >\n <ng-container\n *ngIf=\"footerTemplate; else default\"\n [ngTemplateOutlet]=\"footerTemplate\"\n [ngTemplateOutletContext]=\"{ context: this }\"\n ></ng-container>\n\n <ng-template #default>\n <aui-time-picker\n *ngIf=\"currentNavType === DatePickerType.Day && showTime\"\n [showIcon]=\"false\"\n size=\"small\"\n [(ngModel)]=\"selectedTime\"\n [disableHours]=\"getDisabledTimeFn(selectedDate, 'hours')\"\n [disableMinutes]=\"getDisabledTimeFn(selectedDate, 'minutes')\"\n [disableSeconds]=\"getDisabledTimeFn(selectedDate, 'seconds')\"\n tooltipPosition=\"top start\"\n (ngModelChange)=\"timeDateChange($event)\"\n [placeholder]=\"'select_time' | auiI18n\"\n ></aui-time-picker>\n </ng-template>\n </aui-calendar-footer>\n\n <ng-template #today>\n <aui-calendar-footer\n *ngIf=\"type === DatePickerType.Day\"\n [clearable]=\"false\"\n [customAction]=\"todayBtn\"\n >\n </aui-calendar-footer>\n <ng-template #todayBtn>\n <button\n aui-button=\"inline\"\n (click)=\"setToday()\"\n >\n {{ 'today' | auiI18n }}\n </button>\n </ng-template>\n </ng-template>\n </ng-container>\n</div>\n", styles: [".aui-date-picker-panel__wrapper{display:flex;flex-direction:column;font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);font-weight:var(--aui-font-weight-normal)}.aui-date-picker-panel__wrapper .aui-time-picker{width:88px}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.ButtonComponent, selector: "button[aui-button]", inputs: ["aui-button", "size", "plain", "loading", "round", "square"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.TimePickerComponent, selector: "aui-time-picker", inputs: ["format", "size", "placeholder", "clearable", "showIcon", "disableHours", "disableMinutes", "disableSeconds", "hourStep", "minuteStep", "secondStep", "footerTemplate"], outputs: ["open", "close"] }, { kind: "component", type: i5.CalendarHeaderComponent, selector: "aui-calendar-header", inputs: ["dateNavRange", "anchor", "maxAvail", "minAvail"], outputs: ["navRangeChange", "anchorChange"] }, { kind: "component", type: i6.CalendarFooterComponent, selector: "aui-calendar-footer", inputs: ["clearable", "clearText", "customAction"], outputs: ["confirm", "clear"] }, { kind: "component", type: i7.PickerPanelComponent, selector: "aui-picker-panel", inputs: ["navRange", "type", "anchor", "selectedTime", "matchDates", "disabledDate", "weekStartDay", "minDate", "maxDate"], outputs: ["select", "hovered"] }, { kind: "pipe", type: i8.I18nPipe, name: "auiI18n" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
97
+ ], usesInheritance: true, ngImport: i0, template: "<div class=\"aui-date-picker-panel__wrapper\">\n <aui-calendar-header\n [dateNavRange]=\"navRange\"\n [anchor]=\"anchor\"\n [minAvail]=\"minDate\"\n [maxAvail]=\"maxDate\"\n [style.margin-inline.px]=\"4\"\n (navRangeChange)=\"navRange = $event\"\n (anchorChange)=\"anchor = $event\"\n ></aui-calendar-header>\n\n <aui-picker-panel\n [style.margin]=\"'16px 0'\"\n [anchor]=\"anchor\"\n [navRange]=\"navRange\"\n [disabledDate]=\"disabledDate\"\n [weekStartDay]=\"weekStartDay\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n [type]=\"type\"\n [matchDates]=\"[selectedDate]\"\n (select)=\"panelValueChange($event)\"\n ></aui-picker-panel>\n\n <ng-container\n *ngIf=\"extraFooter\"\n [ngTemplateOutlet]=\"extraFooter\"\n [ngTemplateOutletContext]=\"{ context: this }\"\n ></ng-container>\n\n <ng-container *ngIf=\"showFooter\">\n <aui-calendar-footer\n (clear)=\"clear.next()\"\n (confirm)=\"confirmValue()\"\n [clearable]=\"clearable\"\n [clearText]=\"clearText\"\n *ngIf=\"showTime; else today\"\n >\n <ng-container\n *ngIf=\"footerTemplate; else default\"\n [ngTemplateOutlet]=\"footerTemplate\"\n [ngTemplateOutletContext]=\"{ context: this }\"\n ></ng-container>\n\n <ng-template #default>\n <aui-time-picker\n *ngIf=\"currentNavType === DatePickerType.Day && showTime\"\n [showIcon]=\"false\"\n size=\"small\"\n [(ngModel)]=\"selectedTime\"\n [disableHours]=\"getDisabledTimeFn(selectedDate, 'hours')\"\n [disableMinutes]=\"getDisabledTimeFn(selectedDate, 'minutes')\"\n [disableSeconds]=\"getDisabledTimeFn(selectedDate, 'seconds')\"\n tooltipPosition=\"top start\"\n (ngModelChange)=\"timeDateChange($event)\"\n [placeholder]=\"'select_time' | auiI18n\"\n ></aui-time-picker>\n </ng-template>\n </aui-calendar-footer>\n\n <ng-template #today>\n <aui-calendar-footer\n *ngIf=\"type === DatePickerType.Day\"\n [clearable]=\"false\"\n [customAction]=\"todayBtn\"\n >\n </aui-calendar-footer>\n <ng-template #todayBtn>\n <button\n aui-button=\"inline\"\n (click)=\"setToday()\"\n >\n {{ 'today' | auiI18n }}\n </button>\n </ng-template>\n </ng-template>\n </ng-container>\n</div>\n", styles: [".aui-date-picker-panel__wrapper{display:flex;flex-direction:column;font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);font-weight:var(--aui-font-weight-normal)}.aui-date-picker-panel__wrapper .aui-time-picker{width:88px}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.ButtonComponent, selector: "button[aui-button]", inputs: ["aui-button", "size", "plain", "loading", "round", "square"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.TimePickerComponent, selector: "aui-time-picker", inputs: ["format", "size", "placeholder", "clearable", "showIcon", "disableHours", "disableMinutes", "disableSeconds", "hourStep", "minuteStep", "secondStep", "footerTemplate"], outputs: ["open", "close"] }, { kind: "component", type: i5.CalendarHeaderComponent, selector: "aui-calendar-header", inputs: ["dateNavRange", "anchor", "maxAvail", "minAvail"], outputs: ["navRangeChange", "anchorChange"] }, { kind: "component", type: i6.CalendarFooterComponent, selector: "aui-calendar-footer", inputs: ["clearable", "clearText", "customAction"], outputs: ["confirm", "clear"] }, { kind: "component", type: i7.PickerPanelComponent, selector: "aui-picker-panel", inputs: ["navRange", "type", "anchor", "matchDates", "disabledDate", "weekStartDay", "minDate", "maxDate"], outputs: ["select", "hovered"] }, { kind: "pipe", type: i8.I18nPipe, name: "auiI18n" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
151
98
  }
152
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: DatePickerPanelComponent, decorators: [{
99
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: DatePickerPanelComponent, decorators: [{
153
100
  type: Component,
154
101
  args: [{ selector: 'aui-date-picker-panel', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [
155
102
  {
@@ -157,15 +104,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
157
104
  useExisting: forwardRef(() => DatePickerPanelComponent),
158
105
  multi: true,
159
106
  },
160
- ], template: "<div class=\"aui-date-picker-panel__wrapper\">\n <aui-calendar-header\n [dateNavRange]=\"navRange\"\n [anchor]=\"anchor\"\n [minAvail]=\"minDate\"\n [maxAvail]=\"maxDate\"\n [style.margin-inline.px]=\"4\"\n (navRangeChange)=\"navRange = $event\"\n (anchorChange)=\"anchor = $event\"\n ></aui-calendar-header>\n\n <aui-picker-panel\n [style.margin]=\"'16px 0'\"\n [anchor]=\"anchor\"\n [navRange]=\"navRange\"\n [disabledDate]=\"disabledDate\"\n [weekStartDay]=\"weekStartDay\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n [selectedTime]=\"selectedTime\"\n [type]=\"type\"\n [matchDates]=\"[selectedDate]\"\n (select)=\"panelValueChange($event)\"\n ></aui-picker-panel>\n\n <ng-container\n *ngIf=\"extraFooter\"\n [ngTemplateOutlet]=\"extraFooter\"\n [ngTemplateOutletContext]=\"{ context: this }\"\n ></ng-container>\n\n <ng-container *ngIf=\"showFooter\">\n <aui-calendar-footer\n (clear)=\"clearValue()\"\n (confirm)=\"confirmValue()\"\n [clearable]=\"clearable\"\n [clearText]=\"clearText\"\n *ngIf=\"showTime; else today\"\n >\n <ng-container\n *ngIf=\"footerTemplate; else default\"\n [ngTemplateOutlet]=\"footerTemplate\"\n [ngTemplateOutletContext]=\"{ context: this }\"\n ></ng-container>\n\n <ng-template #default>\n <aui-time-picker\n *ngIf=\"currentNavType === DatePickerType.Day && showTime\"\n [showIcon]=\"false\"\n size=\"small\"\n [(ngModel)]=\"selectedTime\"\n [disableHours]=\"getDisabledTimeFn(selectedDate, 'hours')\"\n [disableMinutes]=\"getDisabledTimeFn(selectedDate, 'minutes')\"\n [disableSeconds]=\"getDisabledTimeFn(selectedDate, 'seconds')\"\n tooltipPosition=\"top start\"\n (ngModelChange)=\"timeDateChange($event)\"\n [placeholder]=\"'select_time' | auiI18n\"\n ></aui-time-picker>\n </ng-template>\n </aui-calendar-footer>\n\n <ng-template #today>\n <aui-calendar-footer\n *ngIf=\"type === DatePickerType.Day\"\n [clearable]=\"false\"\n [customAction]=\"todayBtn\"\n >\n </aui-calendar-footer>\n <ng-template #todayBtn>\n <button\n aui-button=\"inline\"\n (click)=\"setToday()\"\n >\n {{ 'today' | auiI18n }}\n </button>\n </ng-template>\n </ng-template>\n </ng-container>\n</div>\n", styles: [".aui-date-picker-panel__wrapper{display:flex;flex-direction:column;font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);font-weight:var(--aui-font-weight-normal)}.aui-date-picker-panel__wrapper .aui-time-picker{width:88px}\n"] }]
107
+ ], template: "<div class=\"aui-date-picker-panel__wrapper\">\n <aui-calendar-header\n [dateNavRange]=\"navRange\"\n [anchor]=\"anchor\"\n [minAvail]=\"minDate\"\n [maxAvail]=\"maxDate\"\n [style.margin-inline.px]=\"4\"\n (navRangeChange)=\"navRange = $event\"\n (anchorChange)=\"anchor = $event\"\n ></aui-calendar-header>\n\n <aui-picker-panel\n [style.margin]=\"'16px 0'\"\n [anchor]=\"anchor\"\n [navRange]=\"navRange\"\n [disabledDate]=\"disabledDate\"\n [weekStartDay]=\"weekStartDay\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n [type]=\"type\"\n [matchDates]=\"[selectedDate]\"\n (select)=\"panelValueChange($event)\"\n ></aui-picker-panel>\n\n <ng-container\n *ngIf=\"extraFooter\"\n [ngTemplateOutlet]=\"extraFooter\"\n [ngTemplateOutletContext]=\"{ context: this }\"\n ></ng-container>\n\n <ng-container *ngIf=\"showFooter\">\n <aui-calendar-footer\n (clear)=\"clear.next()\"\n (confirm)=\"confirmValue()\"\n [clearable]=\"clearable\"\n [clearText]=\"clearText\"\n *ngIf=\"showTime; else today\"\n >\n <ng-container\n *ngIf=\"footerTemplate; else default\"\n [ngTemplateOutlet]=\"footerTemplate\"\n [ngTemplateOutletContext]=\"{ context: this }\"\n ></ng-container>\n\n <ng-template #default>\n <aui-time-picker\n *ngIf=\"currentNavType === DatePickerType.Day && showTime\"\n [showIcon]=\"false\"\n size=\"small\"\n [(ngModel)]=\"selectedTime\"\n [disableHours]=\"getDisabledTimeFn(selectedDate, 'hours')\"\n [disableMinutes]=\"getDisabledTimeFn(selectedDate, 'minutes')\"\n [disableSeconds]=\"getDisabledTimeFn(selectedDate, 'seconds')\"\n tooltipPosition=\"top start\"\n (ngModelChange)=\"timeDateChange($event)\"\n [placeholder]=\"'select_time' | auiI18n\"\n ></aui-time-picker>\n </ng-template>\n </aui-calendar-footer>\n\n <ng-template #today>\n <aui-calendar-footer\n *ngIf=\"type === DatePickerType.Day\"\n [clearable]=\"false\"\n [customAction]=\"todayBtn\"\n >\n </aui-calendar-footer>\n <ng-template #todayBtn>\n <button\n aui-button=\"inline\"\n (click)=\"setToday()\"\n >\n {{ 'today' | auiI18n }}\n </button>\n </ng-template>\n </ng-template>\n </ng-container>\n</div>\n", styles: [".aui-date-picker-panel__wrapper{display:flex;flex-direction:column;font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);font-weight:var(--aui-font-weight-normal)}.aui-date-picker-panel__wrapper .aui-time-picker{width:88px}\n"] }]
161
108
  }], propDecorators: { clearable: [{
162
109
  type: Input
163
110
  }], clearText: [{
164
111
  type: Input
165
112
  }], type: [{
166
113
  type: Input
167
- }], selectedTime: [{
168
- type: Input
169
114
  }], showTime: [{
170
115
  type: Input
171
116
  }], disabledDate: [{
@@ -189,17 +134,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
189
134
  }], clear: [{
190
135
  type: Output
191
136
  }] } });
192
- function combineDisabledTimeFn(...disabledFnList) {
193
- return (date) => ({
194
- hours: () => Array.from(new Set(disabledFnList
195
- .map(fn => fn(date)?.hours?.() || [])
196
- .reduce((prev, cur) => [...prev, ...cur], []))),
197
- minutes: (hour) => Array.from(new Set(disabledFnList
198
- .map(fn => fn(date)?.minutes?.(hour) || [])
199
- .reduce((prev, cur) => [...prev, ...cur], []))),
200
- seconds: (hour, minute) => Array.from(new Set(disabledFnList
201
- .map(fn => fn(date)?.seconds?.(hour, minute) || [])
202
- .reduce((prev, cur) => [...prev, ...cur], []))),
203
- });
204
- }
205
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2RhdGUtcGlja2VyL2NhbGVuZGFyL2RhdGUtcGlja2VyLXBhbmVsL2NvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9kYXRlLXBpY2tlci9jYWxlbmRhci9kYXRlLXBpY2tlci1wYW5lbC90ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUVOLGlCQUFpQixFQUNqQixVQUFVLEdBQ1gsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxLQUE0QixNQUFNLE9BQU8sQ0FBQztBQUVqRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUU5RCxPQUFPLEVBQUUsWUFBWSxFQUFrQixNQUFNLHdCQUF3QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDN0MsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixrQkFBa0IsRUFDbEIsaUJBQWlCLEVBQ2pCLGdCQUFnQixFQUNoQixVQUFVLEVBQ1YscUJBQXFCLEdBQ3RCLE1BQU0sU0FBUyxDQUFDO0FBQ2pCLE9BQU8sRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7Ozs7O0FBZ0J6RSxNQUFNLE9BQU8sd0JBQXlCLFNBQVEsaUJBQXdCO0lBRXBFLFNBQVMsR0FBRyxJQUFJLENBQUM7SUFHakIsU0FBUyxDQUFTO0lBRWxCLElBQ0ksSUFBSSxDQUFDLElBQW9CO1FBQzNCLElBQUksQ0FBQyxRQUFRLEdBQUcsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDeEMsSUFBSSxDQUFDLEtB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R0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQzthQUMxQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsSUFBSSxFQUFFLEdBQUcsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQ2hELENBQ0Y7UUFDSCxPQUFPLEVBQUUsQ0FBQyxJQUFhLEVBQUUsTUFBZSxFQUFFLEVBQUUsQ0FDMUMsS0FBSyxDQUFDLElBQUksQ0FDUixJQUFJLEdBQUcsQ0FDTCxjQUFjO2FBQ1gsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7YUFDbEQsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLElBQUksRUFBRSxHQUFHLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUNoRCxDQUNGO0tBQ0osQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBmb3J3YXJkUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IGRheWpzLCB7IENvbmZpZ1R5cGUsIERheWpzIH0gZnJvbSAnZGF5anMnO1xuXG5pbXBvcnQgeyBDb21tb25Gb3JtQ29udHJvbCB9IGZyb20gJy4uLy4uLy4uL2Zvcm0vY29tbW9uLWZvcm0nO1xuaW1wb3J0IHsgVGltZVBpY2tlck1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vdGltZS1waWNrZXIvdGltZS1waWNrZXIudHlwZSc7XG5pbXBvcnQgeyBEYXRlTmF2UmFuZ2UsIERpc2FibGVkVGltZUZuIH0gZnJvbSAnLi4vLi4vZGF0ZS1waWNrZXIudHlwZSc7XG5pbXBvcnQgeyBEYXRlUGlja2VyVHlwZSB9IGZyb20gJy4uL2NvbnN0YW50JztcbmltcG9ydCB7XG4gIGdldE5hdlJhbmdlQnlUeXBlLFxuICBnZXRUaW1lUGlja2VyTW9kZWwsXG4gIGdldFR5cGVCeU5hdlJhbmdlLFxuICBuZXh0TmF2UmFuZ2VUeXBlLFxuICB1cGRhdGVEYXRlLFxuICB1cGRhdGVEYXRlQnlUaW1lTW9kZWwsXG59IGZyb20gJy4uL3V0aWwnO1xuaW1wb3J0IHsgSE9VUl9JVEVNUywgTUlOVVRFX0lURU1TLCBTRUNPTkRfSVRFTVMgfSBmcm9tICdzcmMvdGltZS1waWNrZXInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhdWktZGF0ZS1waWNrZXItcGFuZWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGVtcGxhdGUuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3N0eWxlLnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRGF0ZVBpY2tlclBhbmVsQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIERhdGVQaWNrZXJQYW5lbENvbXBvbmVudCBleHRlbmRzIENvbW1vbkZvcm1Db250cm9sPERheWpzPiB7XG4gIEBJbnB1dCgpXG4gIGNsZWFyYWJsZSA9IHRydWU7XG5cbiAgQElucHV0KClcbiAgY2xlYXJUZXh0OiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgc2V0IHR5cGUodHlwZTogRGF0ZVBpY2tlclR5cGUpIHtcbiAgICB0aGlzLm5hdlJhbmdlID0gZ2V0TmF2UmFuZ2VCeVR5cGUodHlwZSk7XG4gICAgdGhpcy5fdHlwZSA9IHR5cGU7XG4gIH1cblxuICBnZXQgdHlwZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fdHlwZTtcbiAgfVxuXG4gIHByaXZhdGUgX3R5cGU6IERhdGVQaWNrZXJUeXBlO1xuXG4gIEBJbnB1dCgpXG4gIHNldCBzZWxlY3RlZFRpbWUodGltZTogVGltZVBpY2tlck1vZGVsKSB7XG4gICAgdGhpcy5fc2VsZWN0ZWRUaW1lID0gdGltZTtcbiAgfVxuXG4gIGdldCBzZWxlY3RlZFRpbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkVGltZTtcbiAgfVxuXG4gIHByaXZhdGUgX3NlbGVjdGVkVGltZTogVGltZVBpY2tlck1vZGVsO1xuXG4gIEBJbnB1dCgpXG4gIHNob3dUaW1lID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgZGlzYWJsZWREYXRlOiAoZGF0ZTogRGF5anMsIHR5cGU6IERhdGVOYXZSYW5nZSkgPT4gYm9vbGVhbiA9ICgpID0+IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIGRpc2FibGVkVGltZTogRGlzYWJsZWRUaW1lRm4gPSAoKSA9PiBudWxsO1xuXG4gIEBJbnB1dCgpXG4gIHdlZWtTdGFydERheSA9IDA7XG5cbiAgQElucHV0KClcbiAgc2hvd0Zvb3RlciA9IHRydWU7XG5cbiAgQElucHV0KClcbiAgZm9vdGVyVGVtcGxhdGU6IFRlbXBsYXRlUmVmPHVua25vd24+O1xuXG4gIEBJbnB1dCgpXG4gIGV4dHJhRm9vdGVyOiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcblxuICBASW5wdXQoKVxuICBtaW5EYXRlOiBEYXlqcztcblxuICBASW5wdXQoKVxuICBtYXhEYXRlOiBEYXlqcztcblxuICBAT3V0cHV0KClcbiAgY29uZmlybSA9IG5ldyBFdmVudEVtaXR0ZXI8RGF5anM+KCk7XG5cbiAgQE91dHB1dCgpXG4gIGNsZWFyID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIHByaXZhdGUgX2NhY2hlU2VsZWN0ZWREYXRlOiBEYXlqcztcbiAgcHJpdmF0ZSBfY2FjaGVEaXNhYmxlZFRpbWVGbjogUmV0dXJuVHlwZTxEaXNhYmxlZFRpbWVGbj47XG5cbiAgZ2V0RGlzYWJsZWRUaW1lRm4oXG4gICAgc2VsZWN0ZWREYXRlOiBEYXlqcyxcbiAgICB0eXBlOiBrZXlvZiBSZXR1cm5UeXBlPERpc2FibGVkVGltZUZuPixcbiAgKSB7XG4gICAgaWYgKHNlbGVjdGVkRGF0ZSAhPT0gdGhpcy5fY2FjaGVTZWxlY3RlZERhdGUpIHtcbiAgICAgIHRoaXMuX2NhY2hlRGlzYWJsZWRUaW1lRm4gPSBjb21iaW5lRGlzYWJsZWRUaW1lRm4oXG4gICAgICAgIHRoaXMuX2Rpc2FibGVkVGltZUZuLmJpbmQodGhpcyksXG4gICAgICAgIHRoaXMuZGlzYWJsZWRUaW1lLFxuICAgICAgKShzZWxlY3RlZERhdGUpO1xuICAgICAgdGhpcy5fY2FjaGVTZWxlY3RlZERhdGUgPSBzZWxlY3RlZERhdGU7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9jYWNoZURpc2FibGVkVGltZUZuPy5bdHlwZV07XG4gIH1cblxuICBuYXZSYW5nZTogRGF0ZU5hdlJhbmdlO1xuXG4gIGdldCBjdXJyZW50TmF2VHlwZSgpIHtcbiAgICByZXR1cm4gZ2V0VHlwZUJ5TmF2UmFuZ2UodGhpcy5uYXZSYW5nZSk7XG4gIH1cblxuICBhbmNob3I6IERheWpzO1xuXG4gIHNlbGVjdGVkRGF0ZTogRGF5anM7XG5cbiAgRGF0ZU5hdlJhbmdlID0gRGF0ZU5hdlJhbmdlO1xuICBEYXRlUGlja2VyVHlwZSA9IERhdGVQaWNrZXJUeXBlO1xuXG4gIG92ZXJyaWRlIHdyaXRlVmFsdWUob2JqOiBEYXlqcykge1xuICAgIHN1cGVyLndyaXRlVmFsdWUob2JqKTtcbiAgICB0aGlzLnNlbGVjdGVkRGF0ZSA9IG9iajtcbiAgICB0aGlzLnNlbGVjdGVkVGltZSA9IGdldFRpbWVQaWNrZXJNb2RlbChvYmopO1xuICAgIHRoaXMuYW5jaG9yID0gb2JqIHx8IGRheWpzKCk7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwYW5lbFZhbHVlQ2hhbmdlKHZhbHVlOiBEYXlqcykge1xuICAgIHRoaXMuc2VsZWN0ZWREYXRlID0gdXBkYXRlRGF0ZShcbiAgICAgIHRoaXMuc2VsZWN0ZWREYXRlIHx8IGRheWpzKCksXG4gICAgICB2YWx1ZSxcbiAgICAgIHRoaXMuY3VycmVudE5hdlR5cGUsXG4gICAgKTtcbiAgICB0aGlzLmFuY2hvciA9IHRoaXMuc2VsZWN0ZWREYXRlO1xuICAgIHRoaXMuc2VsZWN0ZWREYXRlID0gdXBkYXRlRGF0ZUJ5VGltZU1vZGVsKFxuICAgICAgdGhpcy5zZWxlY3RlZERhdGUsXG4gICAgICB0aGlzLnNlbGVjdGVkVGltZSxcbiAgICApO1xuICAgIGlmICh0aGlzLnR5cGUgPT09IHRoaXMuY3VycmVudE5hdlR5cGUpIHtcbiAgICAgIHRoaXMuY29uZmlybVZhbHVlKHRoaXMuc2VsZWN0ZWREYXRlLCAhdGhpcy5zaG93VGltZSk7XG4gICAgfVxuICAgIGNvbnN0IG5leHROYXZSYW5nZSA9IG5leHROYXZSYW5nZVR5cGUoXG4gICAgICB0aGlzLm5hdlJhbmdlLFxuICAgICAgZ2V0TmF2UmFuZ2VCeVR5cGUodGhpcy50eXBlKSxcbiAgICApO1xuICAgIGlmICh0aGlzLm5hdlJhbmdlICE9PSBuZXh0TmF2UmFuZ2UpIHtcbiAgICAgIHRoaXMubmF2UmFuZ2UgPSBuZXh0TmF2UmFuZ2U7XG4gICAgfVxuICB9XG5cbiAgY29uZmlybVZhbHVlKHZhbHVlPzogQ29uZmlnVHlwZSwgY2xvc2VBZnRlckNvbmZpcm0gPSB0cnVlKSB7XG4gICAgdGhpcy5lbWl0VmFsdWUodmFsdWUgPyBkYXlqcyh2YWx1ZSkgOiB0aGlzLnNlbGVjdGVkRGF0ZSk7XG4gICAgY2xvc2VBZnRlckNvbmZpcm0gJiYgdGhpcy5jb25maXJtLm5leHQobnVsbCk7XG4gIH1cblxuICB0aW1lRGF0ZUNoYW5nZSh0aW1lOiBUaW1lUGlja2VyTW9kZWwpIHtcbiAgICBpZiAoIXRoaXMuc2VsZWN0ZWREYXRlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zZWxlY3RlZERhdGUgPSB1cGRhdGVEYXRlQnlUaW1lTW9kZWwodGhpcy5zZWxlY3RlZERhdGUsIHRpbWUpO1xuICAgIHRoaXMuZW1pdFZhbHVlKHRoaXMuc2VsZWN0ZWREYXRlKTtcbiAgfVxuXG4gIGNsZWFyVmFsdWUoKSB7XG4gICAgdGhpcy5zZWxlY3RlZFRpbWUgPSBudWxsO1xuICAgIHRoaXMuY2xlYXIubmV4dCgpO1xuICB9XG5cbiAgc2V0VG9kYXkoKSB7XG4gICAgdGhpcy5jb25maXJtVmFsdWUoZGF5anMoKSwgdHJ1ZSk7XG4gIH1cblxuICBwcml2YXRlIF9kaXNhYmxlZFRpbWVGbihzZWxlY3RlZERhdGU6IENvbmZpZ1R5cGUpIHtcbiAgICBjb25zdCByZXR1cm5Gbk1hcDogUmVjb3JkPFxuICAgICAga2V5b2YgUmV0dXJuVHlwZTxEaXNhYmxlZFRpbWVGbj4sXG4gICAgICAoKSA9PiBudW1iZXJbXVxuICAgID4gPSB7XG4gICAgICBob3VyczogKCkgPT4gW10sXG4gICAgICBtaW51dGVzOiAoKSA9PiBbXSxcbiAgICAgIHNlY29uZHM6ICgpID0+IFtdLFxuICAgIH07XG5cbiAgICBpZiAoXG4gICAgICBzZWxlY3RlZERhdGUgJiZcbiAgICAgIHRoaXMubWluRGF0ZSAmJlxuICAgICAgKHNlbGVjdGVkRGF0ZSBhcyBEYXlqcyk/LmlzU2FtZSh0aGlzLm1pbkRhdGUsICdkYXknKVxuICAgICkge1xuICAgICAgcmV0dXJuRm5NYXAuaG91cnMgPSAoKSA9PlxuICAgICAgICBIT1VSX0lURU1TLmZpbHRlcihpdGVtID0+IGl0ZW0gPCB0aGlzLm1pbkRhdGUuaG91cigpKTtcbiAgICAgIHJldHVybkZuTWFwLm1pbnV0ZXMgPSAoaG91cj86IG51bWJlcikgPT4ge1xuICAgICAgICBpZiAoaG91ciA9PT0gdGhpcy5taW5EYXRlLmhvdXIoKSkge1xuICAgICAgICAgIHJldHVybiBNSU5VVEVfSVRFTVMuZmlsdGVyKGl0ZW0gPT4gaXRlbSA8IHRoaXMubWluRGF0ZS5taW51dGUoKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgfTtcbiAgICAgIHJldHVybkZuTWFwLnNlY29uZHMgPSAoaG91cj86IG51bWJlciwgbWludXRlPzogbnVtYmVyKSA9PiB7XG4gICAgICAgIGlmIChob3VyID09PSB0aGlzLm1pbkRhdGUuaG91cigpICYmIG1pbnV0ZSA9PT0gdGhpcy5taW5EYXRlLm1pbnV0ZSgpKSB7XG4gICAgICAgICAgcmV0dXJuIFNFQ09ORF9JVEVNUy5maWx0ZXIoaXRlbSA9PiBpdGVtIDwgdGhpcy5taW5EYXRlLnNlY29uZCgpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gW107XG4gICAgICB9O1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgIHNlbGVjdGVkRGF0ZSAmJlxuICAgICAgdGhpcy5tYXhEYXRlICYmXG4gICAgICAoc2VsZWN0ZWREYXRlIGFzIERheWpzKT8uaXNTYW1lKHRoaXMubWF4RGF0ZSwgJ2RheScpXG4gICAgKSB7XG4gICAgICByZXR1cm5Gbk1hcC5ob3VycyA9ICgpID0+XG4gICAgICAgIEhPVVJfSVRFTVMuZmlsdGVyKGl0ZW0gPT4gaXRlbSA+IHRoaXMubWF4RGF0ZS5ob3VyKCkpO1xuICAgICAgcmV0dXJuRm5NYXAubWludXRlcyA9IChob3VyPzogbnVtYmVyKSA9PiB7XG4gICAgICAgIGlmIChob3VyID09PSB0aGlzLm1heERhdGUuaG91cigpKSB7XG4gICAgICAgICAgcmV0dXJuIE1JTlVURV9JVEVNUy5maWx0ZXIoaXRlbSA9PiBpdGVtID4gdGhpcy5tYXhEYXRlLm1pbnV0ZSgpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gW107XG4gICAgICB9O1xuICAgICAgcmV0dXJuRm5NYXAuc2Vjb25kcyA9IChob3VyPzogbnVtYmVyLCBtaW51dGU/OiBudW1iZXIpID0+IHtcbiAgICAgICAgaWYgKGhvdXIgPT09IHRoaXMubWF4RGF0ZS5ob3VyKCkgJiYgbWludXRlID09PSB0aGlzLm1heERhdGUubWludXRlKCkpIHtcbiAgICAgICAgICByZXR1cm4gU0VDT05EX0lURU1TLmZpbHRlcihpdGVtID0+IGl0ZW0gPiB0aGlzLm1heERhdGUuc2Vjb25kKCkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBbXTtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIHJldHVybkZuTWFwO1xuICB9XG59XG5cbmZ1bmN0aW9uIGNvbWJpbmVEaXNhYmxlZFRpbWVGbihcbiAgLi4uZGlzYWJsZWRGbkxpc3Q6IERpc2FibGVkVGltZUZuW11cbik6IERpc2FibGVkVGltZUZuIHtcbiAgcmV0dXJuIChkYXRlPzogQ29uZmlnVHlwZSkgPT4gKHtcbiAgICBob3VyczogKCkgPT5cbiAgICAgIEFycmF5LmZyb20oXG4gICAgICAgIG5ldyBTZXQoXG4gICAgICAgICAgZGlzYWJsZWRGbkxpc3RcbiAgICAgICAgICAgIC5tYXAoZm4gPT4gZm4oZGF0ZSk/LmhvdXJzPy4oKSB8fCBbXSlcbiAgICAgICAgICAgIC5yZWR1Y2UoKHByZXYsIGN1cikgPT4gWy4uLnByZXYsIC4uLmN1cl0sIFtdKSxcbiAgICAgICAgKSxcbiAgICAgICksXG4gICAgbWludXRlczogKGhvdXI/OiBudW1iZXIpID0+XG4gICAgICBBcnJheS5mcm9tKFxuICAgICAgICBuZXcgU2V0KFxuICAgICAgICAgIGRpc2FibGVkRm5MaXN0XG4gICAgICAgICAgICAubWFwKGZuID0+IGZuKGRhdGUpPy5taW51dGVzPy4oaG91cikgfHwgW10pXG4gICAgICAgICAgICAucmVkdWNlKChwcmV2LCBjdXIpID0+IFsuLi5wcmV2LCAuLi5jdXJdLCBbXSksXG4gICAgICAgICksXG4gICAgICApLFxuICAgIHNlY29uZHM6IChob3VyPzogbnVtYmVyLCBtaW51dGU/OiBudW1iZXIpID0+XG4gICAgICBBcnJheS5mcm9tKFxuICAgICAgICBuZXcgU2V0KFxuICAgICAgICAgIGRpc2FibGVkRm5MaXN0XG4gICAgICAgICAgICAubWFwKGZuID0+IGZuKGRhdGUpPy5zZWNvbmRzPy4oaG91ciwgbWludXRlKSB8fCBbXSlcbiAgICAgICAgICAgIC5yZWR1Y2UoKHByZXYsIGN1cikgPT4gWy4uLnByZXYsIC4uLmN1cl0sIFtdKSxcbiAgICAgICAgKSxcbiAgICAgICksXG4gIH0pO1xufVxuIiwiPGRpdiBjbGFzcz1cImF1aS1kYXRlLXBpY2tlci1wYW5lbF9fd3JhcHBlclwiPlxuICA8YXVpLWNhbGVuZGFyLWhlYWRlclxuICAgIFtkYXRlTmF2UmFuZ2VdPVwibmF2UmFuZ2VcIlxuICAgIFthbmNob3JdPVwiYW5jaG9yXCJcbiAgICBbbWluQXZhaWxdPVwibWluRGF0ZVwiXG4gICAgW21heEF2YWlsXT1cIm1heERhdGVcIlxuICAgIFtzdHlsZS5tYXJnaW4taW5saW5lLnB4XT1cIjRcIlxuICAgIChuYXZSYW5nZUNoYW5nZSk9XCJuYXZSYW5nZSA9ICRldmVudFwiXG4gICAgKGFuY2hvckNoYW5nZSk9XCJhbmNob3IgPSAkZXZlbnRcIlxuICA+PC9hdWktY2FsZW5kYXItaGVhZGVyPlxuXG4gIDxhdWktcGlja2VyLXBhbmVsXG4gICAgW3N0eWxlLm1hcmdpbl09XCInMTZweCAwJ1wiXG4gICAgW2FuY2hvcl09XCJhbmNob3JcIlxuICAgIFtuYXZSYW5nZV09XCJuYXZSYW5nZVwiXG4gICAgW2Rpc2FibGVkRGF0ZV09XCJkaXNhYmxlZERhdGVcIlxuICAgIFt3ZWVrU3RhcnREYXldPVwid2Vla1N0YXJ0RGF5XCJcbiAgICBbbWluRGF0ZV09XCJtaW5EYXRlXCJcbiAgICBbbWF4RGF0ZV09XCJtYXhEYXRlXCJcbiAgICBbc2VsZWN0ZWRUaW1lXT1cInNlbGVjdGVkVGltZVwiXG4gICAgW3R5cGVdPVwidHlwZVwiXG4gICAgW21hdGNoRGF0ZXNdPVwiW3NlbGVjdGVkRGF0ZV1cIlxuICAgIChzZWxlY3QpPVwicGFuZWxWYWx1ZUNoYW5nZSgkZXZlbnQpXCJcbiAgPjwvYXVpLXBpY2tlci1wYW5lbD5cblxuICA8bmctY29udGFpbmVyXG4gICAgKm5nSWY9XCJleHRyYUZvb3RlclwiXG4gICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiZXh0cmFGb290ZXJcIlxuICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IGNvbnRleHQ6IHRoaXMgfVwiXG4gID48L25nLWNvbnRhaW5lcj5cblxuICA8bmctY29udGFpbmVyICpuZ0lmPVwic2hvd0Zvb3RlclwiPlxuICAgIDxhdWktY2FsZW5kYXItZm9vdGVyXG4gICAgICAoY2xlYXIpPVwiY2xlYXJWYWx1ZSgpXCJcbiAgICAgIChjb25maXJtKT1cImNvbmZpcm1WYWx1ZSgpXCJcbiAgICAgIFtjbGVhcmFibGVdPVwiY2xlYXJhYmxlXCJcbiAgICAgIFtjbGVhclRleHRdPVwiY2xlYXJUZXh0XCJcbiAgICAgICpuZ0lmPVwic2hvd1RpbWU7IGVsc2UgdG9kYXlcIlxuICAgID5cbiAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgKm5nSWY9XCJmb290ZXJUZW1wbGF0ZTsgZWxzZSBkZWZhdWx0XCJcbiAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiZm9vdGVyVGVtcGxhdGVcIlxuICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBjb250ZXh0OiB0aGlzIH1cIlxuICAgICAgPjwvbmctY29udGFpbmVyPlxuXG4gICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHQ+XG4gICAgICAgIDxhdWktdGltZS1waWNrZXJcbiAgICAgICAgICAqbmdJZj1cImN1cnJlbnROYXZUeXBlID09PSBEYXRlUGlja2VyVHlwZS5EYXkgJiYgc2hvd1RpbWVcIlxuICAgICAgICAgIFtzaG93SWNvbl09XCJmYWxzZVwiXG4gICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cInNlbGVjdGVkVGltZVwiXG4gICAgICAgICAgW2Rpc2FibGVIb3Vyc109XCJnZXREaXNhYmxlZFRpbWVGbihzZWxlY3RlZERhdGUsICdob3VycycpXCJcbiAgICAgICAgICBbZGlzYWJsZU1pbnV0ZXNdPVwiZ2V0RGlzYWJsZWRUaW1lRm4oc2VsZWN0ZWREYXRlLCAnbWludXRlcycpXCJcbiAgICAgICAgICBbZGlzYWJsZVNlY29uZHNdPVwiZ2V0RGlzYWJsZWRUaW1lRm4oc2VsZWN0ZWREYXRlLCAnc2Vjb25kcycpXCJcbiAgICAgICAgICB0b29sdGlwUG9zaXRpb249XCJ0b3Agc3RhcnRcIlxuICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInRpbWVEYXRlQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInc2VsZWN0X3RpbWUnIHwgYXVpSTE4blwiXG4gICAgICAgID48L2F1aS10aW1lLXBpY2tlcj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9hdWktY2FsZW5kYXItZm9vdGVyPlxuXG4gICAgPG5nLXRlbXBsYXRlICN0b2RheT5cbiAgICAgIDxhdWktY2FsZW5kYXItZm9vdGVyXG4gICAgICAgICpuZ0lmPVwidHlwZSA9PT0gRGF0ZVBpY2tlclR5cGUuRGF5XCJcbiAgICAgICAgW2NsZWFyYWJsZV09XCJmYWxzZVwiXG4gICAgICAgIFtjdXN0b21BY3Rpb25dPVwidG9kYXlCdG5cIlxuICAgICAgPlxuICAgICAgPC9hdWktY2FsZW5kYXItZm9vdGVyPlxuICAgICAgPG5nLXRlbXBsYXRlICN0b2RheUJ0bj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGF1aS1idXR0b249XCJpbmxpbmVcIlxuICAgICAgICAgIChjbGljayk9XCJzZXRUb2RheSgpXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7ICd0b2RheScgfCBhdWlJMThuIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuIl19
137
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2RhdGUtcGlja2VyL2NhbGVuZGFyL2RhdGUtcGlja2VyLXBhbmVsL2NvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9kYXRlLXBpY2tlci9jYWxlbmRhci9kYXRlLXBpY2tlci1wYW5lbC90ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUVOLGlCQUFpQixFQUNqQixVQUFVLEdBQ1gsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxLQUE0QixNQUFNLE9BQU8sQ0FBQztBQUVqRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUU5RCxPQUFPLEVBQUUsWUFBWSxFQUFrQixNQUFNLHdCQUF3QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDN0MsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixrQkFBa0IsRUFDbEIsaUJBQWlCLEVBQ2pCLGdCQUFnQixFQUNoQixVQUFVLEVBQ1YscUJBQXFCLEdBQ3RCLE1BQU0sU0FBUyxDQUFDOzs7Ozs7Ozs7O0FBZ0JqQixNQUFNLE9BQU8sd0JBQXlCLFNBQVEsaUJBQXdCO0lBRXBFLFNBQVMsR0FBRyxJQUFJLENBQUM7SUFHakIsU0FBUyxDQUFTO0lBRWxCLElBQ0ksSUFBSSxDQUFDLElBQW9CO1FBQzNCLElBQUksQ0FBQyxRQUFRLEdBQUcsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDeEMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7SUFDcEIsQ0FBQztJQUVELElBQUksSUFBSTtRQUNOLE9BQU8sSUFBSSxDQUFD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QkFJTixjQUFjO3NCQURiLEtBQUs7Z0JBSU4sV0FBVztzQkFEVixLQUFLO2dCQUlOLE9BQU87c0JBRE4sS0FBSztnQkFJTixPQUFPO3NCQUROLEtBQUs7Z0JBSU4sT0FBTztzQkFETixNQUFNO2dCQUlQLEtBQUs7c0JBREosTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBmb3J3YXJkUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IGRheWpzLCB7IENvbmZpZ1R5cGUsIERheWpzIH0gZnJvbSAnZGF5anMnO1xuXG5pbXBvcnQgeyBDb21tb25Gb3JtQ29udHJvbCB9IGZyb20gJy4uLy4uLy4uL2Zvcm0vY29tbW9uLWZvcm0nO1xuaW1wb3J0IHsgVGltZVBpY2tlck1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vdGltZS1waWNrZXIvdGltZS1waWNrZXIudHlwZSc7XG5pbXBvcnQgeyBEYXRlTmF2UmFuZ2UsIERpc2FibGVkVGltZUZuIH0gZnJvbSAnLi4vLi4vZGF0ZS1waWNrZXIudHlwZSc7XG5pbXBvcnQgeyBEYXRlUGlja2VyVHlwZSB9IGZyb20gJy4uL2NvbnN0YW50JztcbmltcG9ydCB7XG4gIGdldE5hdlJhbmdlQnlUeXBlLFxuICBnZXRUaW1lUGlja2VyTW9kZWwsXG4gIGdldFR5cGVCeU5hdlJhbmdlLFxuICBuZXh0TmF2UmFuZ2VUeXBlLFxuICB1cGRhdGVEYXRlLFxuICB1cGRhdGVEYXRlQnlUaW1lTW9kZWwsXG59IGZyb20gJy4uL3V0aWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhdWktZGF0ZS1waWNrZXItcGFuZWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGVtcGxhdGUuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3N0eWxlLnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRGF0ZVBpY2tlclBhbmVsQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIERhdGVQaWNrZXJQYW5lbENvbXBvbmVudCBleHRlbmRzIENvbW1vbkZvcm1Db250cm9sPERheWpzPiB7XG4gIEBJbnB1dCgpXG4gIGNsZWFyYWJsZSA9IHRydWU7XG5cbiAgQElucHV0KClcbiAgY2xlYXJUZXh0OiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgc2V0IHR5cGUodHlwZTogRGF0ZVBpY2tlclR5cGUpIHtcbiAgICB0aGlzLm5hdlJhbmdlID0gZ2V0TmF2UmFuZ2VCeVR5cGUodHlwZSk7XG4gICAgdGhpcy5fdHlwZSA9IHR5cGU7XG4gIH1cblxuICBnZXQgdHlwZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fdHlwZTtcbiAgfVxuXG4gIHByaXZhdGUgX3R5cGU6IERhdGVQaWNrZXJUeXBlO1xuXG4gIEBJbnB1dCgpXG4gIHNob3dUaW1lID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgZGlzYWJsZWREYXRlOiAoZGF0ZTogRGF5anMsIHR5cGU6IERhdGVOYXZSYW5nZSkgPT4gYm9vbGVhbiA9ICgpID0+IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIGRpc2FibGVkVGltZTogRGlzYWJsZWRUaW1lRm4gPSAoKSA9PiBudWxsO1xuXG4gIEBJbnB1dCgpXG4gIHdlZWtTdGFydERheSA9IDA7XG5cbiAgQElucHV0KClcbiAgc2hvd0Zvb3RlciA9IHRydWU7XG5cbiAgQElucHV0KClcbiAgZm9vdGVyVGVtcGxhdGU6IFRlbXBsYXRlUmVmPHVua25vd24+O1xuXG4gIEBJbnB1dCgpXG4gIGV4dHJhRm9vdGVyOiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcblxuICBASW5wdXQoKVxuICBtaW5EYXRlOiBEYXlqcztcblxuICBASW5wdXQoKVxuICBtYXhEYXRlOiBEYXlqcztcblxuICBAT3V0cHV0KClcbiAgY29uZmlybSA9IG5ldyBFdmVudEVtaXR0ZXI8RGF5anM+KCk7XG5cbiAgQE91dHB1dCgpXG4gIGNsZWFyID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIHByaXZhdGUgX2NhY2hlU2VsZWN0ZWREYXRlOiBEYXlqcztcbiAgcHJpdmF0ZSBfY2FjaGVEaXNhYmxlZFRpbWVGbjogUmV0dXJuVHlwZTxEaXNhYmxlZFRpbWVGbj47XG5cbiAgZ2V0RGlzYWJsZWRUaW1lRm4oXG4gICAgc2VsZWN0ZWREYXRlOiBEYXlqcyxcbiAgICB0eXBlOiBrZXlvZiBSZXR1cm5UeXBlPERpc2FibGVkVGltZUZuPixcbiAgKSB7XG4gICAgaWYgKHNlbGVjdGVkRGF0ZSAhPT0gdGhpcy5fY2FjaGVTZWxlY3RlZERhdGUpIHtcbiAgICAgIHRoaXMuX2NhY2hlRGlzYWJsZWRUaW1lRm4gPSB0aGlzLmRpc2FibGVkVGltZShzZWxlY3RlZERhdGUpO1xuICAgICAgdGhpcy5fY2FjaGVTZWxlY3RlZERhdGUgPSBzZWxlY3RlZERhdGU7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9jYWNoZURpc2FibGVkVGltZUZuPy5bdHlwZV07XG4gIH1cblxuICBuYXZSYW5nZTogRGF0ZU5hdlJhbmdlO1xuXG4gIGdldCBjdXJyZW50TmF2VHlwZSgpIHtcbiAgICByZXR1cm4gZ2V0VHlwZUJ5TmF2UmFuZ2UodGhpcy5uYXZSYW5nZSk7XG4gIH1cblxuICBhbmNob3I6IERheWpzO1xuXG4gIHNlbGVjdGVkRGF0ZTogRGF5anM7XG5cbiAgc2VsZWN0ZWRUaW1lOiBUaW1lUGlja2VyTW9kZWw7XG5cbiAgRGF0ZU5hdlJhbmdlID0gRGF0ZU5hdlJhbmdlO1xuICBEYXRlUGlja2VyVHlwZSA9IERhdGVQaWNrZXJUeXBlO1xuXG4gIG92ZXJyaWRlIHdyaXRlVmFsdWUob2JqOiBEYXlqcykge1xuICAgIHN1cGVyLndyaXRlVmFsdWUob2JqKTtcbiAgICB0aGlzLnNlbGVjdGVkRGF0ZSA9IG9iajtcbiAgICB0aGlzLnNlbGVjdGVkVGltZSA9IGdldFRpbWVQaWNrZXJNb2RlbChvYmopO1xuICAgIHRoaXMuYW5jaG9yID0gb2JqIHx8IGRheWpzKCk7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwYW5lbFZhbHVlQ2hhbmdlKHZhbHVlOiBEYXlqcykge1xuICAgIHRoaXMuc2VsZWN0ZWREYXRlID0gdXBkYXRlRGF0ZShcbiAgICAgIHRoaXMuc2VsZWN0ZWREYXRlIHx8IGRheWpzKCksXG4gICAgICB2YWx1ZSxcbiAgICAgIHRoaXMuY3VycmVudE5hdlR5cGUsXG4gICAgKTtcbiAgICB0aGlzLmFuY2hvciA9IHRoaXMuc2VsZWN0ZWREYXRlO1xuICAgIHRoaXMuc2VsZWN0ZWREYXRlID0gdXBkYXRlRGF0ZUJ5VGltZU1vZGVsKFxuICAgICAgdGhpcy5zZWxlY3RlZERhdGUsXG4gICAgICB0aGlzLnNlbGVjdGVkVGltZSxcbiAgICApO1xuICAgIGlmICh0aGlzLnR5cGUgPT09IHRoaXMuY3VycmVudE5hdlR5cGUpIHtcbiAgICAgIHRoaXMuY29uZmlybVZhbHVlKHRoaXMuc2VsZWN0ZWREYXRlLCAhdGhpcy5zaG93VGltZSk7XG4gICAgfVxuICAgIGNvbnN0IG5leHROYXZSYW5nZSA9IG5leHROYXZSYW5nZVR5cGUoXG4gICAgICB0aGlzLm5hdlJhbmdlLFxuICAgICAgZ2V0TmF2UmFuZ2VCeVR5cGUodGhpcy50eXBlKSxcbiAgICApO1xuICAgIGlmICh0aGlzLm5hdlJhbmdlICE9PSBuZXh0TmF2UmFuZ2UpIHtcbiAgICAgIHRoaXMubmF2UmFuZ2UgPSBuZXh0TmF2UmFuZ2U7XG4gICAgfVxuICB9XG5cbiAgY29uZmlybVZhbHVlKHZhbHVlPzogQ29uZmlnVHlwZSwgY2xvc2VBZnRlckNvbmZpcm0gPSB0cnVlKSB7XG4gICAgdGhpcy5lbWl0VmFsdWUodmFsdWUgPyBkYXlqcyh2YWx1ZSkgOiB0aGlzLnNlbGVjdGVkRGF0ZSk7XG4gICAgY2xvc2VBZnRlckNvbmZpcm0gJiYgdGhpcy5jb25maXJtLm5leHQobnVsbCk7XG4gIH1cblxuICB0aW1lRGF0ZUNoYW5nZSh0aW1lOiBUaW1lUGlja2VyTW9kZWwpIHtcbiAgICBpZiAoIXRoaXMuc2VsZWN0ZWREYXRlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuc2VsZWN0ZWREYXRlID0gdXBkYXRlRGF0ZUJ5VGltZU1vZGVsKHRoaXMuc2VsZWN0ZWREYXRlLCB0aW1lKTtcbiAgICB0aGlzLmVtaXRWYWx1ZSh0aGlzLnNlbGVjdGVkRGF0ZSk7XG4gIH1cblxuICBzZXRUb2RheSgpIHtcbiAgICB0aGlzLmNvbmZpcm1WYWx1ZShkYXlqcygpLCB0cnVlKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImF1aS1kYXRlLXBpY2tlci1wYW5lbF9fd3JhcHBlclwiPlxuICA8YXVpLWNhbGVuZGFyLWhlYWRlclxuICAgIFtkYXRlTmF2UmFuZ2VdPVwibmF2UmFuZ2VcIlxuICAgIFthbmNob3JdPVwiYW5jaG9yXCJcbiAgICBbbWluQXZhaWxdPVwibWluRGF0ZVwiXG4gICAgW21heEF2YWlsXT1cIm1heERhdGVcIlxuICAgIFtzdHlsZS5tYXJnaW4taW5saW5lLnB4XT1cIjRcIlxuICAgIChuYXZSYW5nZUNoYW5nZSk9XCJuYXZSYW5nZSA9ICRldmVudFwiXG4gICAgKGFuY2hvckNoYW5nZSk9XCJhbmNob3IgPSAkZXZlbnRcIlxuICA+PC9hdWktY2FsZW5kYXItaGVhZGVyPlxuXG4gIDxhdWktcGlja2VyLXBhbmVsXG4gICAgW3N0eWxlLm1hcmdpbl09XCInMTZweCAwJ1wiXG4gICAgW2FuY2hvcl09XCJhbmNob3JcIlxuICAgIFtuYXZSYW5nZV09XCJuYXZSYW5nZVwiXG4gICAgW2Rpc2FibGVkRGF0ZV09XCJkaXNhYmxlZERhdGVcIlxuICAgIFt3ZWVrU3RhcnREYXldPVwid2Vla1N0YXJ0RGF5XCJcbiAgICBbbWluRGF0ZV09XCJtaW5EYXRlXCJcbiAgICBbbWF4RGF0ZV09XCJtYXhEYXRlXCJcbiAgICBbdHlwZV09XCJ0eXBlXCJcbiAgICBbbWF0Y2hEYXRlc109XCJbc2VsZWN0ZWREYXRlXVwiXG4gICAgKHNlbGVjdCk9XCJwYW5lbFZhbHVlQ2hhbmdlKCRldmVudClcIlxuICA+PC9hdWktcGlja2VyLXBhbmVsPlxuXG4gIDxuZy1jb250YWluZXJcbiAgICAqbmdJZj1cImV4dHJhRm9vdGVyXCJcbiAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJleHRyYUZvb3RlclwiXG4gICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgY29udGV4dDogdGhpcyB9XCJcbiAgPjwvbmctY29udGFpbmVyPlxuXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJzaG93Rm9vdGVyXCI+XG4gICAgPGF1aS1jYWxlbmRhci1mb290ZXJcbiAgICAgIChjbGVhcik9XCJjbGVhci5uZXh0KClcIlxuICAgICAgKGNvbmZpcm0pPVwiY29uZmlybVZhbHVlKClcIlxuICAgICAgW2NsZWFyYWJsZV09XCJjbGVhcmFibGVcIlxuICAgICAgW2NsZWFyVGV4dF09XCJjbGVhclRleHRcIlxuICAgICAgKm5nSWY9XCJzaG93VGltZTsgZWxzZSB0b2RheVwiXG4gICAgPlxuICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAqbmdJZj1cImZvb3RlclRlbXBsYXRlOyBlbHNlIGRlZmF1bHRcIlxuICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJmb290ZXJUZW1wbGF0ZVwiXG4gICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IGNvbnRleHQ6IHRoaXMgfVwiXG4gICAgICA+PC9uZy1jb250YWluZXI+XG5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdD5cbiAgICAgICAgPGF1aS10aW1lLXBpY2tlclxuICAgICAgICAgICpuZ0lmPVwiY3VycmVudE5hdlR5cGUgPT09IERhdGVQaWNrZXJUeXBlLkRheSAmJiBzaG93VGltZVwiXG4gICAgICAgICAgW3Nob3dJY29uXT1cImZhbHNlXCJcbiAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgIFsobmdNb2RlbCldPVwic2VsZWN0ZWRUaW1lXCJcbiAgICAgICAgICBbZGlzYWJsZUhvdXJzXT1cImdldERpc2FibGVkVGltZUZuKHNlbGVjdGVkRGF0ZSwgJ2hvdXJzJylcIlxuICAgICAgICAgIFtkaXNhYmxlTWludXRlc109XCJnZXREaXNhYmxlZFRpbWVGbihzZWxlY3RlZERhdGUsICdtaW51dGVzJylcIlxuICAgICAgICAgIFtkaXNhYmxlU2Vjb25kc109XCJnZXREaXNhYmxlZFRpbWVGbihzZWxlY3RlZERhdGUsICdzZWNvbmRzJylcIlxuICAgICAgICAgIHRvb2x0aXBQb3NpdGlvbj1cInRvcCBzdGFydFwiXG4gICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidGltZURhdGVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidzZWxlY3RfdGltZScgfCBhdWlJMThuXCJcbiAgICAgICAgPjwvYXVpLXRpbWUtcGlja2VyPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L2F1aS1jYWxlbmRhci1mb290ZXI+XG5cbiAgICA8bmctdGVtcGxhdGUgI3RvZGF5PlxuICAgICAgPGF1aS1jYWxlbmRhci1mb290ZXJcbiAgICAgICAgKm5nSWY9XCJ0eXBlID09PSBEYXRlUGlja2VyVHlwZS5EYXlcIlxuICAgICAgICBbY2xlYXJhYmxlXT1cImZhbHNlXCJcbiAgICAgICAgW2N1c3RvbUFjdGlvbl09XCJ0b2RheUJ0blwiXG4gICAgICA+XG4gICAgICA8L2F1aS1jYWxlbmRhci1mb290ZXI+XG4gICAgICA8bmctdGVtcGxhdGUgI3RvZGF5QnRuPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgYXVpLWJ1dHRvbj1cImlubGluZVwiXG4gICAgICAgICAgKGNsaWNrKT1cInNldFRvZGF5KClcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgJ3RvZGF5JyB8IGF1aUkxOG4gfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvbmctY29udGFpbmVyPlxuPC9kaXY+XG4iXX0=
@@ -9,10 +9,10 @@ export class CalendarFooterComponent {
9
9
  customAction;
10
10
  confirm = new EventEmitter();
11
11
  clear = new EventEmitter();
12
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: CalendarFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
13
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: CalendarFooterComponent, selector: "aui-calendar-footer", inputs: { clearable: "clearable", clearText: "clearText", customAction: "customAction" }, outputs: { confirm: "confirm", clear: "clear" }, ngImport: i0, template: "<div class=\"aui-calendar-footer__wrapper\">\n <div style=\"flex: 1\">\n <ng-content></ng-content>\n </div>\n <div>\n <ng-container\n *ngIf=\"customAction; else default\"\n [ngTemplateOutlet]=\"customAction\"\n >\n </ng-container>\n <ng-template #default>\n <button\n aui-button=\"text\"\n *ngIf=\"clearable\"\n (click)=\"clear.emit()\"\n size=\"small\"\n >\n {{ clearText || ('clear' | auiI18n) }}\n </button>\n <button\n aui-button=\"primary\"\n (click)=\"confirm.emit()\"\n size=\"small\"\n >\n {{ 'confirm' | auiI18n }}\n </button>\n </ng-template>\n </div>\n</div>\n", styles: [".aui-calendar-footer__wrapper{display:flex;flex-direction:row;justify-content:space-between;border-top:1px solid rgb(var(--aui-color-n-8));padding:8px 0 0}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.ButtonComponent, selector: "button[aui-button]", inputs: ["aui-button", "size", "plain", "loading", "round", "square"] }, { kind: "pipe", type: i3.I18nPipe, name: "auiI18n" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
12
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: CalendarFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
13
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.0", type: CalendarFooterComponent, selector: "aui-calendar-footer", inputs: { clearable: "clearable", clearText: "clearText", customAction: "customAction" }, outputs: { confirm: "confirm", clear: "clear" }, ngImport: i0, template: "<div class=\"aui-calendar-footer__wrapper\">\n <div style=\"flex: 1\">\n <ng-content></ng-content>\n </div>\n <div>\n <ng-container\n *ngIf=\"customAction; else default\"\n [ngTemplateOutlet]=\"customAction\"\n >\n </ng-container>\n <ng-template #default>\n <button\n aui-button=\"text\"\n *ngIf=\"clearable\"\n (click)=\"clear.emit()\"\n size=\"small\"\n >\n {{ clearText || ('clear' | auiI18n) }}\n </button>\n <button\n aui-button=\"primary\"\n (click)=\"confirm.emit()\"\n size=\"small\"\n >\n {{ 'confirm' | auiI18n }}\n </button>\n </ng-template>\n </div>\n</div>\n", styles: [".aui-calendar-footer__wrapper{display:flex;flex-direction:row;justify-content:space-between;border-top:1px solid rgb(var(--aui-color-n-8));padding:8px 0 0}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.ButtonComponent, selector: "button[aui-button]", inputs: ["aui-button", "size", "plain", "loading", "round", "square"] }, { kind: "pipe", type: i3.I18nPipe, name: "auiI18n" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
14
14
  }
15
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: CalendarFooterComponent, decorators: [{
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: CalendarFooterComponent, decorators: [{
16
16
  type: Component,
17
17
  args: [{ selector: 'aui-calendar-footer', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"aui-calendar-footer__wrapper\">\n <div style=\"flex: 1\">\n <ng-content></ng-content>\n </div>\n <div>\n <ng-container\n *ngIf=\"customAction; else default\"\n [ngTemplateOutlet]=\"customAction\"\n >\n </ng-container>\n <ng-template #default>\n <button\n aui-button=\"text\"\n *ngIf=\"clearable\"\n (click)=\"clear.emit()\"\n size=\"small\"\n >\n {{ clearText || ('clear' | auiI18n) }}\n </button>\n <button\n aui-button=\"primary\"\n (click)=\"confirm.emit()\"\n size=\"small\"\n >\n {{ 'confirm' | auiI18n }}\n </button>\n </ng-template>\n </div>\n</div>\n", styles: [".aui-calendar-footer__wrapper{display:flex;flex-direction:row;justify-content:space-between;border-top:1px solid rgb(var(--aui-color-n-8));padding:8px 0 0}\n"] }]
18
18
  }], propDecorators: { clearable: [{
@@ -65,9 +65,10 @@ export class CalendarHeaderComponent {
65
65
  anchor = this.anchor.add(value, YEAR);
66
66
  break;
67
67
  }
68
- case DateNavRange.Decade:
68
+ case DateNavRange.Decade: {
69
69
  anchor = this.anchor.add(value, YEAR);
70
70
  break;
71
+ }
71
72
  }
72
73
  this.anchorChange.next(anchor);
73
74
  }
@@ -77,10 +78,10 @@ export class CalendarHeaderComponent {
77
78
  }
78
79
  this.navRangeChange.next(range === DateNavRange.Month ? DateNavRange.Year : DateNavRange.Decade);
79
80
  };
80
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: CalendarHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
81
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: CalendarHeaderComponent, 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 <a\n href=\"javascript:;\"\n (click)=\"clickNav(DateNavRange.Year)\"\n >\n {{ headerRange?.start?.year() }}{{ 'year_suffix' | auiI18n }}\n </a>\n <a\n href=\"javascript:;\"\n (click)=\"clickNav(DateNavRange.Month)\"\n >\n {{ headerRange?.start?.month() + 1 }}{{ 'month_suffix' | auiI18n }}\n </a>\n </span>\n\n <span\n *ngIf=\"dateNavRange === DateNavRange.Year\"\n [class]=\"bem.element('nav-content')\"\n >\n <a\n href=\"javascript:;\"\n (click)=\"clickNav(DateNavRange.Year)\"\n >\n {{ headerRange?.start?.year() }}{{ 'year_suffix' | auiI18n }}\n </a>\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", styles: [".aui-calendar-header__container{height:24px;display:flex;align-items:center;justify-content:space-between}.aui-calendar-header__nav-content{flex:1;display:flex;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 a{color:rgb(var(--aui-color-main-text))}.aui-calendar-header__nav-content a:hover{color:rgb(var(--aui-color-primary));text-decoration:none!important}.aui-calendar-header__nav-content a+a{margin-left:5px}.action-bar{width:52px;display:flex}.action-bar .hidden{opacity:0;pointer-events:none}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.ButtonComponent, selector: "button[aui-button]", inputs: ["aui-button", "size", "plain", "loading", "round", "square"] }, { kind: "component", type: i3.IconComponent, selector: "aui-icon", inputs: ["icon", "light", "dark", "link", "margin", "size", "color", "background", "backgroundColor"] }, { kind: "pipe", type: i4.I18nPipe, name: "auiI18n" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
81
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: CalendarHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
82
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.0", type: CalendarHeaderComponent, 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 <a\n href=\"javascript:;\"\n (click)=\"clickNav(DateNavRange.Year)\"\n >\n {{ headerRange?.start?.year() }}{{ 'year_suffix' | auiI18n }}\n </a>\n <a\n href=\"javascript:;\"\n (click)=\"clickNav(DateNavRange.Month)\"\n >\n {{ headerRange?.start?.month() + 1 }}{{ 'month_suffix' | auiI18n }}\n </a>\n </span>\n\n <span\n *ngIf=\"dateNavRange === DateNavRange.Year\"\n [class]=\"bem.element('nav-content')\"\n >\n <a\n href=\"javascript:;\"\n (click)=\"clickNav(DateNavRange.Year)\"\n >\n {{ headerRange?.start?.year() }}{{ 'year_suffix' | auiI18n }}\n </a>\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", styles: [".aui-calendar-header__container{height:24px;display:flex;align-items:center;justify-content:space-between}.aui-calendar-header__nav-content{flex:1;display:flex;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 a{color:rgb(var(--aui-color-main-text))}.aui-calendar-header__nav-content a:hover{color:rgb(var(--aui-color-primary));text-decoration:none!important}.aui-calendar-header__nav-content a+a{margin-left:5px}.action-bar{width:52px;display:flex}.action-bar .hidden{opacity:0;pointer-events:none}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.ButtonComponent, selector: "button[aui-button]", inputs: ["aui-button", "size", "plain", "loading", "round", "square"] }, { kind: "component", type: i3.IconComponent, selector: "aui-icon", inputs: ["icon", "light", "dark", "link", "margin", "size", "color", "background", "backgroundColor"] }, { kind: "pipe", type: i4.I18nPipe, name: "auiI18n" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
82
83
  }
83
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: CalendarHeaderComponent, decorators: [{
84
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: CalendarHeaderComponent, decorators: [{
84
85
  type: Component,
85
86
  args: [{ selector: 'aui-calendar-header', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, 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 <a\n href=\"javascript:;\"\n (click)=\"clickNav(DateNavRange.Year)\"\n >\n {{ headerRange?.start?.year() }}{{ 'year_suffix' | auiI18n }}\n </a>\n <a\n href=\"javascript:;\"\n (click)=\"clickNav(DateNavRange.Month)\"\n >\n {{ headerRange?.start?.month() + 1 }}{{ 'month_suffix' | auiI18n }}\n </a>\n </span>\n\n <span\n *ngIf=\"dateNavRange === DateNavRange.Year\"\n [class]=\"bem.element('nav-content')\"\n >\n <a\n href=\"javascript:;\"\n (click)=\"clickNav(DateNavRange.Year)\"\n >\n {{ headerRange?.start?.year() }}{{ 'year_suffix' | auiI18n }}\n </a>\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", styles: [".aui-calendar-header__container{height:24px;display:flex;align-items:center;justify-content:space-between}.aui-calendar-header__nav-content{flex:1;display:flex;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 a{color:rgb(var(--aui-color-main-text))}.aui-calendar-header__nav-content a:hover{color:rgb(var(--aui-color-primary));text-decoration:none!important}.aui-calendar-header__nav-content a+a{margin-left:5px}.action-bar{width:52px;display:flex}.action-bar .hidden{opacity:0;pointer-events:none}\n"] }]
86
87
  }], propDecorators: { dateNavRange: [{
@@ -96,4 +97,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
96
97
  }], anchorChange: [{
97
98
  type: Output
98
99
  }] } });
99
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2RhdGUtcGlja2VyL2NhbGVuZGFyL2hlYWRlci9jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvZGF0ZS1waWNrZXIvY2FsZW5kYXIvaGVhZGVyL3RlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04saUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sS0FBNEIsTUFBTSxPQUFPLENBQUM7QUFFakQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzFDLE9BQU8sRUFFTCxZQUFZLEVBQ1osSUFBSSxHQUNMLE1BQU0sd0JBQXdCLENBQUM7QUFDaEMsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDMUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFNBQVMsQ0FBQzs7Ozs7O0FBRXpDLE1BQU0sR0FBRyxHQUFHLFFBQVEsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0FBUzVDLE1BQU0sT0FBTyx1QkFBdUI7SUFFbEMsWUFBWSxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUM7SUFHbEMsTUFBTSxHQUFHLEtBQUssRUFBRSxDQUFDO0lBR2pCLFFBQVEsQ0FBYztJQUV0QixJQUFZLFNBQVM7UUFDbkIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDckQsQ0FBQztJQUdELFFBQVEsQ0FBYztJQUV0QixJQUFZLFNBQVM7UUFDbkIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFD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QUM7Z0JBQ3RDLE1BQU07YUFDUDtZQUNELEtBQUssWUFBWSxDQUFDLE1BQU07Z0JBQ3RCLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQ3RDLE1BQU07U0FDVDtRQUNELElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxRQUFRLEdBQUcsQ0FBQyxLQUFtQixFQUFFLEVBQUU7UUFDakMsSUFBSSxDQUFDLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQzVELE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUN0QixLQUFLLEtBQUssWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FDdkUsQ0FBQztJQUNKLENBQUMsQ0FBQzt1R0FoR1MsdUJBQXVCOzJGQUF2Qix1QkFBdUIsZ1BDNUJwQyxxd0dBd0hBOzsyRkQ1RmEsdUJBQXVCO2tCQVBuQyxTQUFTOytCQUNFLHFCQUFxQixpQkFHaEIsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTTs4QkFJL0MsWUFBWTtzQkFEWCxLQUFLO2dCQUlOLE1BQU07c0JBREwsS0FBSztnQkFJTixRQUFRO3NCQURQLEtBQUs7Z0JBUU4sUUFBUTtzQkFEUCxLQUFLO2dCQVFOLGNBQWM7c0JBRGIsTUFBTTtnQkFJUCxZQUFZO3NCQURYLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCBkYXlqcywgeyBDb25maWdUeXBlLCBEYXlqcyB9IGZyb20gJ2RheWpzJztcblxuaW1wb3J0IHsgYnVpbGRCZW0gfSBmcm9tICcuLi8uLi8uLi91dGlscyc7XG5pbXBvcnQge1xuICBDYWxlbmRhckhlYWRlclJhbmdlLFxuICBEYXRlTmF2UmFuZ2UsXG4gIFNpZGUsXG59IGZyb20gJy4uLy4uL2RhdGUtcGlja2VyLnR5cGUnO1xuaW1wb3J0IHsgTU9OVEgsIFlFQVIgfSBmcm9tICcuLi9jb25zdGFudCc7XG5pbXBvcnQgeyBjYWxjUmFuZ2VWYWx1ZSB9IGZyb20gJy4uL3V0aWwnO1xuXG5jb25zdCBiZW0gPSBidWlsZEJlbSgnYXVpLWNhbGVuZGFyLWhlYWRlcicpO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhdWktY2FsZW5kYXItaGVhZGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RlbXBsYXRlLmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zdHlsZS5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBDYWxlbmRhckhlYWRlckNvbXBvbmVudCB7XG4gIEBJbnB1dCgpXG4gIGRhdGVOYXZSYW5nZSA9IERhdGVOYXZSYW5nZS5Nb250aDtcblxuICBASW5wdXQoKVxuICBhbmNob3IgPSBkYXlqcygpO1xuXG4gIEBJbnB1dCgpXG4gIG1heEF2YWlsPzogQ29uZmlnVHlwZTtcblxuICBwcml2YXRlIGdldCBfbWF4QXZhaWwoKSB7XG4gICAgcmV0dXJuIHRoaXMubWF4QXZhaWwgPyBkYXlqcyh0aGlzLm1heEF2YWlsKSA6IG51bGw7XG4gIH1cblxuICBASW5wdXQoKVxuICBtaW5BdmFpbD86IENvbmZpZ1R5cGU7XG5cbiAgcHJpdmF0ZSBnZXQgX21pbkF2YWlsKCkge1xuICAgIHJldHVybiB0aGlzLm1pbkF2YWlsID8gZGF5anModGhpcy5taW5BdmFpbCkgOiBudWxsO1xuICB9XG5cbiAgQE91dHB1dCgpXG4gIG5hdlJhbmdlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlTmF2UmFuZ2U+KCk7XG5cbiAgQE91dHB1dCgpXG4gIGFuY2hvckNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8RGF5anM+KCk7XG5cbiAgZ2V0IGhlYWRlclJhbmdlKCk6IENhbGVuZGFySGVhZGVyUmFuZ2Uge1xuICAgIHJldHVybiBjYWxjUmFuZ2VWYWx1ZSh0aGlzLmRhdGVOYXZSYW5nZSwgdGhpcy5hbmNob3IpO1xuICB9XG5cbiAgYmVtID0gYmVtO1xuXG4gIERhdGVOYXZSYW5nZSA9IERhdGVOYXZSYW5nZTtcblxuICAvLyBtYXhBdmFpbCA+IGN1cnJlbnQgZGF0ZSDvvJpyaWdodCBidG4gaGlkZVxuICAvLyBtaW5BdmFpbCA+IGN1cnJlbnQgZGF0ZSDvvJpsZWZ0IGJ0biBoaWRlXG4gIHNob3VsZFNob3dOYXYodHlwZTogRGF0ZU5hdlJhbmdlLCBzaWRlOiBTaWRlKSB7XG4gICAgY29uc3QgYXZhaWxWYWx1ZSA9IChcbiAgICAgIHNpZGUgPT09IFNpZGUuTGVmdCA/IHRoaXMuX21pbkF2YWlsIDogdGhpcy5fbWF4QXZhaWxcbiAgICApPy5jbG9uZSgpO1xuICAgIGlmICghYXZhaWxWYWx1ZSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIC8vIOWvueS6juW5tOeahOWIpOWIq++8jDIwMTQtNS0x6IezMjAxNS02LTHml6XvvIzku43lvZPlsZXnpLrmjInpkq5cbiAgICBjb25zdCBjb25zdHJhaW5EYXRlID0gW0RhdGVOYXZSYW5nZS5Nb250aCwgRGF0ZU5hdlJhbmdlLlllYXJdLmluY2x1ZGVzKHR5cGUpXG4gICAgICA/IGF2YWlsVmFsdWUuYWRkKHNpZGUgPT09IFNpZGUuTGVmdCA/IDEgOiAtMSwgdHlwZSBhcyAnbW9udGgnIHwgJ3llYXInKVxuICAgICAgOiBhdmFpbFZhbHVlO1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLmNvbXBhcmVOYXZWYWx1ZSh0eXBlLCBjb25zdHJhaW5EYXRlLCB0aGlzLmFuY2hvcikgPT09XG4gICAgICAoc2lkZSA9PT0gU2lkZS5MZWZ0ID8gLTEgOiAxKVxuICAgICk7XG4gIH1cblxuICAvLyBAcmV0dXJuIGlzQmV0d2Vlbnxpc0VxdWFsOjAsIGlzQmVmb3JlOi0xLGlzQWZ0ZXI6MVxuICBjb21wYXJlTmF2VmFsdWUodHlwZTogRGF0ZU5hdlJhbmdlLCBjb25zdHJhaW46IERheWpzLCBhbmNob3I6IERheWpzKSB7XG4gICAgY29uc3QgcmFuZ2UgPSBjYWxjUmFuZ2VWYWx1ZSh0eXBlLCBhbmNob3IpO1xuICAgIGNvbnN0IGNvbnN0cmFpblZhbHVlID0gY29uc3RyYWluO1xuICAgIGlmICh0eXBlID09PSBEYXRlTmF2UmFuZ2UuRGVjYWRlKSB7XG4gICAgICBpZiAoY29uc3RyYWluVmFsdWUuaXNCZXR3ZWVuKHJhbmdlLnN0YXJ0LCByYW5nZS5lbmQsIFlFQVIpKSB7XG4gICAgICAgIHJldHVybiAwO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGNvbnN0cmFpblZhbHVlLmlzQmVmb3JlKHJhbmdlLnN0YXJ0KSA/IC0xIDogMTtcbiAgICB9XG4gICAgcmV0dXJuIGNvbnN0cmFpblZhbHVlLmlzU2FtZShyYW5nZS5zdGFydCwgTU9OVEgpXG4gICAgICA/IDBcbiAgICAgIDogY29uc3RyYWluVmFsdWUuaXNCZWZvcmUocmFuZ2Uuc3RhcnQsIE1PTlRIKVxuICAgICAgPyAtMVxuICAgICAgOiAxO1xuICB9XG5cbiAgbmF2SGVhZChyYW5nZTogRGF0ZU5hdlJhbmdlLCB2YWx1ZTogbnVtYmVyKSB7XG4gICAgbGV0IGFuY2hvcjogRGF5anM7XG4gICAgc3dpdGNoIChyYW5nZSkge1xuICAgICAgY2FzZSBEYXRlTmF2UmFuZ2UuTW9udGg6IHtcbiAgICAgICAgYW5jaG9yID0gdGhpcy5hbmNob3IuYWRkKHZhbHVlLCBNT05USCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSBEYXRlTmF2UmFuZ2UuWWVhcjoge1xuICAgICAgICBhbmNob3IgPSB0aGlzLmFuY2hvci5hZGQodmFsdWUsIFlFQVIpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgRGF0ZU5hdlJhbmdlLkRlY2FkZTpcbiAgICAgICAgYW5jaG9yID0gdGhpcy5hbmNob3IuYWRkKHZhbHVlLCBZRUFSKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHRoaXMuYW5jaG9yQ2hhbmdlLm5leHQoYW5jaG9yKTtcbiAgfVxuXG4gIGNsaWNrTmF2ID0gKHJhbmdlOiBEYXRlTmF2UmFuZ2UpID0+IHtcbiAgICBpZiAoIVtEYXRlTmF2UmFuZ2UuTW9udGgsIERhdGVOYXZSYW5nZS5ZZWFyXS5pbmNsdWRlcyhyYW5nZSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5uYXZSYW5nZUNoYW5nZS5uZXh0KFxuICAgICAgcmFuZ2UgPT09IERhdGVOYXZSYW5nZS5Nb250aCA/IERhdGVOYXZSYW5nZS5ZZWFyIDogRGF0ZU5hdlJhbmdlLkRlY2FkZSxcbiAgICApO1xuICB9O1xufVxuIiwiPGRpdiBbY2xhc3NdPVwiYmVtLmVsZW1lbnQoJ2NvbnRhaW5lcicpXCI+XG4gIDxkaXY+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgKm5nSWY9XCJkYXRlTmF2UmFuZ2UgIT09IERhdGVOYXZSYW5nZS5EZWNhZGVcIlxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwieWVhckNvbnRyb2xcIlxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgc2lkZTogJ2xlZnQnIH1cIlxuICAgID48L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICpuZ0lmPVwiZGF0ZU5hdlJhbmdlID09PSBEYXRlTmF2UmFuZ2UuRGVjYWRlXCJcbiAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImRlY2FkZUNvbnRyb2xcIlxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgc2lkZTogJ2xlZnQnIH1cIlxuICAgID48L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG4gIDwhLS0g5YaF5a655Yy6IC0tPlxuICA8c3BhblxuICAgICpuZ0lmPVwiZGF0ZU5hdlJhbmdlID09PSBEYXRlTmF2UmFuZ2UuTW9udGhcIlxuICAgIFtjbGFzc109XCJiZW0uZWxlbWVudCgnbmF2LWNvbnRlbnQnKVwiXG4gID5cbiAgICA8YVxuICAgICAgaHJlZj1cImphdmFzY3JpcHQ6O1wiXG4gICAgICAoY2xpY2spPVwiY2xpY2tOYXYoRGF0ZU5hdlJhbmdlLlllYXIpXCJcbiAgICA+XG4gICAgICB7eyBoZWFkZXJSYW5nZT8uc3RhcnQ/LnllYXIoKSB9fXt7ICd5ZWFyX3N1ZmZpeCcgfCBhdWlJMThuIH19XG4gICAgPC9hPlxuICAgIDxhXG4gICAgICBocmVmPVwiamF2YXNjcmlwdDo7XCJcbiAgICAgIChjbGljayk9XCJjbGlja05hdihEYXRlTmF2UmFuZ2UuTW9udGgpXCJcbiAgICA+XG4gICAgICB7eyBoZWFkZXJSYW5nZT8uc3RhcnQ/Lm1vbnRoKCkgKyAxIH19e3sgJ21vbnRoX3N1ZmZpeCcgfCBhdWlJMThuIH19XG4gICAgPC9hPlxuICA8L3NwYW4+XG5cbiAgPHNwYW5cbiAgICAqbmdJZj1cImRhdGVOYXZSYW5nZSA9PT0gRGF0ZU5hdlJhbmdlLlllYXJcIlxuICAgIFtjbGFzc109XCJiZW0uZWxlbWVudCgnbmF2LWNvbnRlbnQnKVwiXG4gID5cbiAgICA8YVxuICAgICAgaHJlZj1cImphdmFzY3JpcHQ6O1wiXG4gICAgICAoY2xpY2spPVwiY2xpY2tOYXYoRGF0ZU5hdlJhbmdlLlllYXIpXCJcbiAgICA+XG4gICAgICB7eyBoZWFkZXJSYW5nZT8uc3RhcnQ/LnllYXIoKSB9fXt7ICd5ZWFyX3N1ZmZpeCcgfCBhdWlJMThuIH19XG4gICAgPC9hPlxuICA8L3NwYW4+XG5cbiAgPHNwYW5cbiAgICAqbmdJZj1cImRhdGVOYXZSYW5nZSA9PT0gRGF0ZU5hdlJhbmdlLkRlY2FkZVwiXG4gICAgW2NsYXNzXT1cImJlbS5lbGVtZW50KCduYXYtY29udGVudCcpXCJcbiAgPlxuICAgIHt7IGhlYWRlclJhbmdlPy5zdGFydC55ZWFyKCkgfX0gLSB7eyBoZWFkZXJSYW5nZT8uZW5kPy55ZWFyKCkgfX1cbiAgPC9zcGFuPlxuXG4gIDxkaXYgW2NsYXNzXT1cImJlbS5lbGVtZW50KCduYXYtYWN0aW9uJylcIj5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAqbmdJZj1cImRhdGVOYXZSYW5nZSAhPT0gRGF0ZU5hdlJhbmdlLkRlY2FkZVwiXG4gICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJ5ZWFyQ29udHJvbFwiXG4gICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBzaWRlOiAncmlnaHQnIH1cIlxuICAgID48L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICpuZ0lmPVwiZGF0ZU5hdlJhbmdlID09PSBEYXRlTmF2UmFuZ2UuRGVjYWRlXCJcbiAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImRlY2FkZUNvbnRyb2xcIlxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgc2lkZTogJ3JpZ2h0JyB9XCJcbiAgICA+PC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZVxuICAjeWVhckNvbnRyb2xcbiAgbGV0LXNpZGU9XCJzaWRlXCJcbj5cbiAgPHNwYW4gY2xhc3M9XCJhY3Rpb24tYmFyXCI+XG4gICAgPGJ1dHRvblxuICAgICAgYXVpLWJ1dHRvbj1cInRleHRcIlxuICAgICAgKm5nSWY9XCJzaWRlID09PSAncmlnaHQnXCJcbiAgICAgIFtjbGFzcy5oaWRkZW5dPVwiXG4gICAgICAgICFzaG91bGRTaG93TmF2KERhdGVOYXZSYW5nZS5Nb250aCwgc2lkZSkgfHxcbiAgICAgICAgZGF0ZU5hdlJhbmdlICE9PSBEYXRlTmF2UmFuZ2UuTW9udGhcbiAgICAgIFwiXG4gICAgICAoY2xpY2spPVwibmF2SGVhZChEYXRlTmF2UmFuZ2UuTW9udGgsIDEpXCJcbiAgICA+XG4gICAgICA8YXVpLWljb24gaWNvbj1cImFuZ2xlX3JpZ2h0XCI+PC9hdWktaWNvbj5cbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uXG4gICAgICBhdWktYnV0dG9uPVwidGV4dFwiXG4gICAgICAoY2xpY2spPVwibmF2SGVhZChEYXRlTmF2UmFuZ2UuWWVhciwgc2lkZSA9PT0gJ2xlZnQnID8gLTEgOiAxKVwiXG4gICAgICBbY2xhc3MuaGlkZGVuXT1cIiFzaG91bGRTaG93TmF2KERhdGVOYXZSYW5nZS5ZZWFyLCBzaWRlKVwiXG4gICAgPlxuICAgICAgPGF1aS1pY29uXG4gICAgICAgIFtpY29uXT1cInNpZGUgPT09ICdsZWZ0JyA/ICdhbmdsZXNfbGVmdCcgOiAnYW5nbGVzX3JpZ2h0J1wiXG4gICAgICA+PC9hdWktaWNvbj5cbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uXG4gICAgICBhdWktYnV0dG9uPVwidGV4dFwiXG4gICAgICAqbmdJZj1cInNpZGUgPT09ICdsZWZ0J1wiXG4gICAgICBbY2xhc3MuaGlkZGVuXT1cIlxuICAgICAgICAhc2hvdWxkU2hvd05hdihEYXRlTmF2UmFuZ2UuTW9udGgsIHNpZGUpIHx8XG4gICAgICAgIGRhdGVOYXZSYW5nZSAhPT0gRGF0ZU5hdlJhbmdlLk1vbnRoXG4gICAgICBcIlxuICAgICAgKGNsaWNrKT1cIm5hdkhlYWQoRGF0ZU5hdlJhbmdlLk1vbnRoLCAtMSlcIlxuICAgID5cbiAgICAgIDxhdWktaWNvbiBpY29uPVwiYW5nbGVfbGVmdFwiPjwvYXVpLWljb24+XG4gICAgPC9idXR0b24+XG4gIDwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZVxuICAjZGVjYWRlQ29udHJvbFxuICBsZXQtc2lkZT1cInNpZGVcIlxuPlxuICA8YnV0dG9uXG4gICAgYXVpLWJ1dHRvbj1cInRleHRcIlxuICAgIChjbGljayk9XCJuYXZIZWFkKERhdGVOYXZSYW5nZS5EZWNhZGUsIHNpZGUgPT09ICdsZWZ0JyA/IC0xMCA6IDEwKVwiXG4gICAgW2NsYXNzLmhpZGRlbl09XCIhc2hvdWxkU2hvd05hdihEYXRlTmF2UmFuZ2UuRGVjYWRlLCBzaWRlKVwiXG4gID5cbiAgICA8YXVpLWljb25cbiAgICAgIFtpY29uXT1cInNpZGUgPT09ICdsZWZ0JyA/ICdhbmdsZXNfbGVmdCcgOiAnYW5nbGVzX3JpZ2h0J1wiXG4gICAgPjwvYXVpLWljb24+XG4gIDwvYnV0dG9uPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
100
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2RhdGUtcGlja2VyL2NhbGVuZGFyL2hlYWRlci9jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvZGF0ZS1waWNrZXIvY2FsZW5kYXIvaGVhZGVyL3RlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04saUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sS0FBNEIsTUFBTSxPQUFPLENBQUM7QUFFakQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzFDLE9BQU8sRUFFTCxZQUFZLEVBQ1osSUFBSSxHQUNMLE1BQU0sd0JBQXdCLENBQUM7QUFDaEMsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDMUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFNBQVMsQ0FBQzs7Ozs7O0FBRXpDLE1BQU0sR0FBRyxHQUFHLFFBQVEsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0FBUzVDLE1BQU0sT0FBTyx1QkFBdUI7SUFFbEMsWUFBWSxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUM7SUFHbEMsTUFBTSxHQUFHLEtBQUssRUFBRSxDQUFDO0lBR2pCLFFBQVEsQ0FBYztJQUV0QixJQUFZLFNBQVM7UUFDbkIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDckQsQ0FBQztJQUdELFFBQVEsQ0FBYztJQUV0QixJQUFZLFNBQVM7UUFDbkIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFD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QUM7Z0JBQ3RDLE1BQU07YUFDUDtZQUNELEtBQUssWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUN4QixNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUN0QyxNQUFNO2FBQ1A7U0FDRjtRQUNELElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxRQUFRLEdBQUcsQ0FBQyxLQUFtQixFQUFFLEVBQUU7UUFDakMsSUFBSSxDQUFDLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQzVELE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUN0QixLQUFLLEtBQUssWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FDdkUsQ0FBQztJQUNKLENBQUMsQ0FBQzt1R0FqR1MsdUJBQXVCOzJGQUF2Qix1QkFBdUIsZ1BDNUJwQyxxd0dBd0hBOzsyRkQ1RmEsdUJBQXVCO2tCQVBuQyxTQUFTOytCQUNFLHFCQUFxQixpQkFHaEIsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTTs4QkFJL0MsWUFBWTtzQkFEWCxLQUFLO2dCQUlOLE1BQU07c0JBREwsS0FBSztnQkFJTixRQUFRO3NCQURQLEtBQUs7Z0JBUU4sUUFBUTtzQkFEUCxLQUFLO2dCQVFOLGNBQWM7c0JBRGIsTUFBTTtnQkFJUCxZQUFZO3NCQURYLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCBkYXlqcywgeyBDb25maWdUeXBlLCBEYXlqcyB9IGZyb20gJ2RheWpzJztcblxuaW1wb3J0IHsgYnVpbGRCZW0gfSBmcm9tICcuLi8uLi8uLi91dGlscyc7XG5pbXBvcnQge1xuICBDYWxlbmRhckhlYWRlclJhbmdlLFxuICBEYXRlTmF2UmFuZ2UsXG4gIFNpZGUsXG59IGZyb20gJy4uLy4uL2RhdGUtcGlja2VyLnR5cGUnO1xuaW1wb3J0IHsgTU9OVEgsIFlFQVIgfSBmcm9tICcuLi9jb25zdGFudCc7XG5pbXBvcnQgeyBjYWxjUmFuZ2VWYWx1ZSB9IGZyb20gJy4uL3V0aWwnO1xuXG5jb25zdCBiZW0gPSBidWlsZEJlbSgnYXVpLWNhbGVuZGFyLWhlYWRlcicpO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhdWktY2FsZW5kYXItaGVhZGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RlbXBsYXRlLmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zdHlsZS5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBDYWxlbmRhckhlYWRlckNvbXBvbmVudCB7XG4gIEBJbnB1dCgpXG4gIGRhdGVOYXZSYW5nZSA9IERhdGVOYXZSYW5nZS5Nb250aDtcblxuICBASW5wdXQoKVxuICBhbmNob3IgPSBkYXlqcygpO1xuXG4gIEBJbnB1dCgpXG4gIG1heEF2YWlsPzogQ29uZmlnVHlwZTtcblxuICBwcml2YXRlIGdldCBfbWF4QXZhaWwoKSB7XG4gICAgcmV0dXJuIHRoaXMubWF4QXZhaWwgPyBkYXlqcyh0aGlzLm1heEF2YWlsKSA6IG51bGw7XG4gIH1cblxuICBASW5wdXQoKVxuICBtaW5BdmFpbD86IENvbmZpZ1R5cGU7XG5cbiAgcHJpdmF0ZSBnZXQgX21pbkF2YWlsKCkge1xuICAgIHJldHVybiB0aGlzLm1pbkF2YWlsID8gZGF5anModGhpcy5taW5BdmFpbCkgOiBudWxsO1xuICB9XG5cbiAgQE91dHB1dCgpXG4gIG5hdlJhbmdlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlTmF2UmFuZ2U+KCk7XG5cbiAgQE91dHB1dCgpXG4gIGFuY2hvckNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8RGF5anM+KCk7XG5cbiAgZ2V0IGhlYWRlclJhbmdlKCk6IENhbGVuZGFySGVhZGVyUmFuZ2Uge1xuICAgIHJldHVybiBjYWxjUmFuZ2VWYWx1ZSh0aGlzLmRhdGVOYXZSYW5nZSwgdGhpcy5hbmNob3IpO1xuICB9XG5cbiAgYmVtID0gYmVtO1xuXG4gIERhdGVOYXZSYW5nZSA9IERhdGVOYXZSYW5nZTtcblxuICAvLyBtYXhBdmFpbCA+IGN1cnJlbnQgZGF0ZSDvvJpyaWdodCBidG4gaGlkZVxuICAvLyBtaW5BdmFpbCA+IGN1cnJlbnQgZGF0ZSDvvJpsZWZ0IGJ0biBoaWRlXG4gIHNob3VsZFNob3dOYXYodHlwZTogRGF0ZU5hdlJhbmdlLCBzaWRlOiBTaWRlKSB7XG4gICAgY29uc3QgYXZhaWxWYWx1ZSA9IChcbiAgICAgIHNpZGUgPT09IFNpZGUuTGVmdCA/IHRoaXMuX21pbkF2YWlsIDogdGhpcy5fbWF4QXZhaWxcbiAgICApPy5jbG9uZSgpO1xuICAgIGlmICghYXZhaWxWYWx1ZSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIC8vIOWvueS6juW5tOeahOWIpOWIq++8jDIwMTQtNS0x6IezMjAxNS02LTHml6XvvIzku43lvZPlsZXnpLrmjInpkq5cbiAgICBjb25zdCBjb25zdHJhaW5EYXRlID0gW0RhdGVOYXZSYW5nZS5Nb250aCwgRGF0ZU5hdlJhbmdlLlllYXJdLmluY2x1ZGVzKHR5cGUpXG4gICAgICA/IGF2YWlsVmFsdWUuYWRkKHNpZGUgPT09IFNpZGUuTGVmdCA/IDEgOiAtMSwgdHlwZSBhcyAnbW9udGgnIHwgJ3llYXInKVxuICAgICAgOiBhdmFpbFZhbHVlO1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLmNvbXBhcmVOYXZWYWx1ZSh0eXBlLCBjb25zdHJhaW5EYXRlLCB0aGlzLmFuY2hvcikgPT09XG4gICAgICAoc2lkZSA9PT0gU2lkZS5MZWZ0ID8gLTEgOiAxKVxuICAgICk7XG4gIH1cblxuICAvLyBAcmV0dXJuIGlzQmV0d2Vlbnxpc0VxdWFsOjAsIGlzQmVmb3JlOi0xLGlzQWZ0ZXI6MVxuICBjb21wYXJlTmF2VmFsdWUodHlwZTogRGF0ZU5hdlJhbmdlLCBjb25zdHJhaW46IERheWpzLCBhbmNob3I6IERheWpzKSB7XG4gICAgY29uc3QgcmFuZ2UgPSBjYWxjUmFuZ2VWYWx1ZSh0eXBlLCBhbmNob3IpO1xuICAgIGNvbnN0IGNvbnN0cmFpblZhbHVlID0gY29uc3RyYWluO1xuICAgIGlmICh0eXBlID09PSBEYXRlTmF2UmFuZ2UuRGVjYWRlKSB7XG4gICAgICBpZiAoY29uc3RyYWluVmFsdWUuaXNCZXR3ZWVuKHJhbmdlLnN0YXJ0LCByYW5nZS5lbmQsIFlFQVIpKSB7XG4gICAgICAgIHJldHVybiAwO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGNvbnN0cmFpblZhbHVlLmlzQmVmb3JlKHJhbmdlLnN0YXJ0KSA/IC0xIDogMTtcbiAgICB9XG4gICAgcmV0dXJuIGNvbnN0cmFpblZhbHVlLmlzU2FtZShyYW5nZS5zdGFydCwgTU9OVEgpXG4gICAgICA/IDBcbiAgICAgIDogY29uc3RyYWluVmFsdWUuaXNCZWZvcmUocmFuZ2Uuc3RhcnQsIE1PTlRIKVxuICAgICAgPyAtMVxuICAgICAgOiAxO1xuICB9XG5cbiAgbmF2SGVhZChyYW5nZTogRGF0ZU5hdlJhbmdlLCB2YWx1ZTogbnVtYmVyKSB7XG4gICAgbGV0IGFuY2hvcjogRGF5anM7XG4gICAgc3dpdGNoIChyYW5nZSkge1xuICAgICAgY2FzZSBEYXRlTmF2UmFuZ2UuTW9udGg6IHtcbiAgICAgICAgYW5jaG9yID0gdGhpcy5hbmNob3IuYWRkKHZhbHVlLCBNT05USCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSBEYXRlTmF2UmFuZ2UuWWVhcjoge1xuICAgICAgICBhbmNob3IgPSB0aGlzLmFuY2hvci5hZGQodmFsdWUsIFlFQVIpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgRGF0ZU5hdlJhbmdlLkRlY2FkZToge1xuICAgICAgICBhbmNob3IgPSB0aGlzLmFuY2hvci5hZGQodmFsdWUsIFlFQVIpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5hbmNob3JDaGFuZ2UubmV4dChhbmNob3IpO1xuICB9XG5cbiAgY2xpY2tOYXYgPSAocmFuZ2U6IERhdGVOYXZSYW5nZSkgPT4ge1xuICAgIGlmICghW0RhdGVOYXZSYW5nZS5Nb250aCwgRGF0ZU5hdlJhbmdlLlllYXJdLmluY2x1ZGVzKHJhbmdlKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLm5hdlJhbmdlQ2hhbmdlLm5leHQoXG4gICAgICByYW5nZSA9PT0gRGF0ZU5hdlJhbmdlLk1vbnRoID8gRGF0ZU5hdlJhbmdlLlllYXIgOiBEYXRlTmF2UmFuZ2UuRGVjYWRlLFxuICAgICk7XG4gIH07XG59XG4iLCI8ZGl2IFtjbGFzc109XCJiZW0uZWxlbWVudCgnY29udGFpbmVyJylcIj5cbiAgPGRpdj5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAqbmdJZj1cImRhdGVOYXZSYW5nZSAhPT0gRGF0ZU5hdlJhbmdlLkRlY2FkZVwiXG4gICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJ5ZWFyQ29udHJvbFwiXG4gICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBzaWRlOiAnbGVmdCcgfVwiXG4gICAgPjwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgKm5nSWY9XCJkYXRlTmF2UmFuZ2UgPT09IERhdGVOYXZSYW5nZS5EZWNhZGVcIlxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiZGVjYWRlQ29udHJvbFwiXG4gICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBzaWRlOiAnbGVmdCcgfVwiXG4gICAgPjwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbiAgPCEtLSDlhoXlrrnljLogLS0+XG4gIDxzcGFuXG4gICAgKm5nSWY9XCJkYXRlTmF2UmFuZ2UgPT09IERhdGVOYXZSYW5nZS5Nb250aFwiXG4gICAgW2NsYXNzXT1cImJlbS5lbGVtZW50KCduYXYtY29udGVudCcpXCJcbiAgPlxuICAgIDxhXG4gICAgICBocmVmPVwiamF2YXNjcmlwdDo7XCJcbiAgICAgIChjbGljayk9XCJjbGlja05hdihEYXRlTmF2UmFuZ2UuWWVhcilcIlxuICAgID5cbiAgICAgIHt7IGhlYWRlclJhbmdlPy5zdGFydD8ueWVhcigpIH19e3sgJ3llYXJfc3VmZml4JyB8IGF1aUkxOG4gfX1cbiAgICA8L2E+XG4gICAgPGFcbiAgICAgIGhyZWY9XCJqYXZhc2NyaXB0OjtcIlxuICAgICAgKGNsaWNrKT1cImNsaWNrTmF2KERhdGVOYXZSYW5nZS5Nb250aClcIlxuICAgID5cbiAgICAgIHt7IGhlYWRlclJhbmdlPy5zdGFydD8ubW9udGgoKSArIDEgfX17eyAnbW9udGhfc3VmZml4JyB8IGF1aUkxOG4gfX1cbiAgICA8L2E+XG4gIDwvc3Bhbj5cblxuICA8c3BhblxuICAgICpuZ0lmPVwiZGF0ZU5hdlJhbmdlID09PSBEYXRlTmF2UmFuZ2UuWWVhclwiXG4gICAgW2NsYXNzXT1cImJlbS5lbGVtZW50KCduYXYtY29udGVudCcpXCJcbiAgPlxuICAgIDxhXG4gICAgICBocmVmPVwiamF2YXNjcmlwdDo7XCJcbiAgICAgIChjbGljayk9XCJjbGlja05hdihEYXRlTmF2UmFuZ2UuWWVhcilcIlxuICAgID5cbiAgICAgIHt7IGhlYWRlclJhbmdlPy5zdGFydD8ueWVhcigpIH19e3sgJ3llYXJfc3VmZml4JyB8IGF1aUkxOG4gfX1cbiAgICA8L2E+XG4gIDwvc3Bhbj5cblxuICA8c3BhblxuICAgICpuZ0lmPVwiZGF0ZU5hdlJhbmdlID09PSBEYXRlTmF2UmFuZ2UuRGVjYWRlXCJcbiAgICBbY2xhc3NdPVwiYmVtLmVsZW1lbnQoJ25hdi1jb250ZW50JylcIlxuICA+XG4gICAge3sgaGVhZGVyUmFuZ2U/LnN0YXJ0LnllYXIoKSB9fSAtIHt7IGhlYWRlclJhbmdlPy5lbmQ/LnllYXIoKSB9fVxuICA8L3NwYW4+XG5cbiAgPGRpdiBbY2xhc3NdPVwiYmVtLmVsZW1lbnQoJ25hdi1hY3Rpb24nKVwiPlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICpuZ0lmPVwiZGF0ZU5hdlJhbmdlICE9PSBEYXRlTmF2UmFuZ2UuRGVjYWRlXCJcbiAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInllYXJDb250cm9sXCJcbiAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IHNpZGU6ICdyaWdodCcgfVwiXG4gICAgPjwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgKm5nSWY9XCJkYXRlTmF2UmFuZ2UgPT09IERhdGVOYXZSYW5nZS5EZWNhZGVcIlxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiZGVjYWRlQ29udHJvbFwiXG4gICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBzaWRlOiAncmlnaHQnIH1cIlxuICAgID48L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlXG4gICN5ZWFyQ29udHJvbFxuICBsZXQtc2lkZT1cInNpZGVcIlxuPlxuICA8c3BhbiBjbGFzcz1cImFjdGlvbi1iYXJcIj5cbiAgICA8YnV0dG9uXG4gICAgICBhdWktYnV0dG9uPVwidGV4dFwiXG4gICAgICAqbmdJZj1cInNpZGUgPT09ICdyaWdodCdcIlxuICAgICAgW2NsYXNzLmhpZGRlbl09XCJcbiAgICAgICAgIXNob3VsZFNob3dOYXYoRGF0ZU5hdlJhbmdlLk1vbnRoLCBzaWRlKSB8fFxuICAgICAgICBkYXRlTmF2UmFuZ2UgIT09IERhdGVOYXZSYW5nZS5Nb250aFxuICAgICAgXCJcbiAgICAgIChjbGljayk9XCJuYXZIZWFkKERhdGVOYXZSYW5nZS5Nb250aCwgMSlcIlxuICAgID5cbiAgICAgIDxhdWktaWNvbiBpY29uPVwiYW5nbGVfcmlnaHRcIj48L2F1aS1pY29uPlxuICAgIDwvYnV0dG9uPlxuICAgIDxidXR0b25cbiAgICAgIGF1aS1idXR0b249XCJ0ZXh0XCJcbiAgICAgIChjbGljayk9XCJuYXZIZWFkKERhdGVOYXZSYW5nZS5ZZWFyLCBzaWRlID09PSAnbGVmdCcgPyAtMSA6IDEpXCJcbiAgICAgIFtjbGFzcy5oaWRkZW5dPVwiIXNob3VsZFNob3dOYXYoRGF0ZU5hdlJhbmdlLlllYXIsIHNpZGUpXCJcbiAgICA+XG4gICAgICA8YXVpLWljb25cbiAgICAgICAgW2ljb25dPVwic2lkZSA9PT0gJ2xlZnQnID8gJ2FuZ2xlc19sZWZ0JyA6ICdhbmdsZXNfcmlnaHQnXCJcbiAgICAgID48L2F1aS1pY29uPlxuICAgIDwvYnV0dG9uPlxuICAgIDxidXR0b25cbiAgICAgIGF1aS1idXR0b249XCJ0ZXh0XCJcbiAgICAgICpuZ0lmPVwic2lkZSA9PT0gJ2xlZnQnXCJcbiAgICAgIFtjbGFzcy5oaWRkZW5dPVwiXG4gICAgICAgICFzaG91bGRTaG93TmF2KERhdGVOYXZSYW5nZS5Nb250aCwgc2lkZSkgfHxcbiAgICAgICAgZGF0ZU5hdlJhbmdlICE9PSBEYXRlTmF2UmFuZ2UuTW9udGhcbiAgICAgIFwiXG4gICAgICAoY2xpY2spPVwibmF2SGVhZChEYXRlTmF2UmFuZ2UuTW9udGgsIC0xKVwiXG4gICAgPlxuICAgICAgPGF1aS1pY29uIGljb249XCJhbmdsZV9sZWZ0XCI+PC9hdWktaWNvbj5cbiAgICA8L2J1dHRvbj5cbiAgPC9zcGFuPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlXG4gICNkZWNhZGVDb250cm9sXG4gIGxldC1zaWRlPVwic2lkZVwiXG4+XG4gIDxidXR0b25cbiAgICBhdWktYnV0dG9uPVwidGV4dFwiXG4gICAgKGNsaWNrKT1cIm5hdkhlYWQoRGF0ZU5hdlJhbmdlLkRlY2FkZSwgc2lkZSA9PT0gJ2xlZnQnID8gLTEwIDogMTApXCJcbiAgICBbY2xhc3MuaGlkZGVuXT1cIiFzaG91bGRTaG93TmF2KERhdGVOYXZSYW5nZS5EZWNhZGUsIHNpZGUpXCJcbiAgPlxuICAgIDxhdWktaWNvblxuICAgICAgW2ljb25dPVwic2lkZSA9PT0gJ2xlZnQnID8gJ2FuZ2xlc19sZWZ0JyA6ICdhbmdsZXNfcmlnaHQnXCJcbiAgICA+PC9hdWktaWNvbj5cbiAgPC9idXR0b24+XG48L25nLXRlbXBsYXRlPlxuIl19