@skyux/datetime 5.1.4 → 5.5.0-alpha.0

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 (198) hide show
  1. package/README.md +6 -4
  2. package/bundles/skyux-datetime.umd.js +80 -80
  3. package/documentation.json +379 -22
  4. package/esm2015/index.js +28 -0
  5. package/esm2015/index.js.map +1 -0
  6. package/esm2015/lib/modules/date-pipe/date-format-utility.js +48 -0
  7. package/esm2015/lib/modules/date-pipe/date-format-utility.js.map +1 -0
  8. package/esm2015/lib/modules/date-pipe/date-pipe.module.js +21 -0
  9. package/esm2015/lib/modules/date-pipe/date-pipe.module.js.map +1 -0
  10. package/esm2015/lib/modules/date-pipe/date.pipe.js +65 -0
  11. package/esm2015/lib/modules/date-pipe/date.pipe.js.map +1 -0
  12. package/esm2015/lib/modules/date-pipe/fuzzy-date.pipe.js +47 -0
  13. package/esm2015/lib/modules/date-pipe/fuzzy-date.pipe.js.map +1 -0
  14. package/esm2015/lib/modules/date-range-picker/date-range-picker.component.js +464 -0
  15. package/esm2015/lib/modules/date-range-picker/date-range-picker.component.js.map +1 -0
  16. package/esm2015/lib/modules/date-range-picker/date-range-picker.module.js +47 -0
  17. package/esm2015/lib/modules/date-range-picker/date-range-picker.module.js.map +1 -0
  18. package/esm2015/lib/modules/date-range-picker/date-range.service.js +97 -0
  19. package/esm2015/lib/modules/date-range-picker/date-range.service.js.map +1 -0
  20. package/esm2015/lib/modules/date-range-picker/types/date-range-calculation.js +2 -0
  21. package/esm2015/lib/modules/date-range-picker/types/date-range-calculation.js.map +1 -0
  22. package/esm2015/lib/modules/date-range-picker/types/date-range-calculator-config.js +2 -0
  23. package/esm2015/lib/modules/date-range-picker/types/date-range-calculator-config.js.map +1 -0
  24. package/esm2015/lib/modules/date-range-picker/types/date-range-calculator-date-range-function.js +2 -0
  25. package/esm2015/lib/modules/date-range-picker/types/date-range-calculator-date-range-function.js.map +1 -0
  26. package/esm2015/lib/modules/date-range-picker/types/date-range-calculator-id.js +118 -0
  27. package/esm2015/lib/modules/date-range-picker/types/date-range-calculator-id.js.map +1 -0
  28. package/esm2015/lib/modules/date-range-picker/types/date-range-calculator-type.js +23 -0
  29. package/esm2015/lib/modules/date-range-picker/types/date-range-calculator-type.js.map +1 -0
  30. package/esm2015/lib/modules/date-range-picker/types/date-range-calculator-validate-function.js +2 -0
  31. package/esm2015/lib/modules/date-range-picker/types/date-range-calculator-validate-function.js.map +1 -0
  32. package/esm2015/lib/modules/date-range-picker/types/date-range-calculator.js +56 -0
  33. package/esm2015/lib/modules/date-range-picker/types/date-range-calculator.js.map +1 -0
  34. package/esm2015/lib/modules/date-range-picker/types/date-range-default-calculator-config.js +2 -0
  35. package/esm2015/lib/modules/date-range-picker/types/date-range-default-calculator-config.js.map +1 -0
  36. package/esm2015/lib/modules/date-range-picker/types/date-range-default-calculator-configs.js +147 -0
  37. package/esm2015/lib/modules/date-range-picker/types/date-range-default-calculator-configs.js.map +1 -0
  38. package/esm2015/lib/modules/date-range-picker/types/date-range-relative-value.js +252 -0
  39. package/esm2015/lib/modules/date-range-picker/types/date-range-relative-value.js.map +1 -0
  40. package/esm2015/lib/modules/date-range-picker/types/date-range.js +2 -0
  41. package/esm2015/lib/modules/date-range-picker/types/date-range.js.map +1 -0
  42. package/esm2015/lib/modules/datepicker/date-formatter.js +38 -0
  43. package/esm2015/lib/modules/datepicker/date-formatter.js.map +1 -0
  44. package/esm2015/lib/modules/datepicker/datepicker-adapter.service.js +33 -0
  45. package/esm2015/lib/modules/datepicker/datepicker-adapter.service.js.map +1 -0
  46. package/esm2015/lib/modules/datepicker/datepicker-calendar-change.js +2 -0
  47. package/esm2015/lib/modules/datepicker/datepicker-calendar-change.js.map +1 -0
  48. package/esm2015/lib/modules/datepicker/datepicker-calendar-inner.component.js +315 -0
  49. package/esm2015/lib/modules/datepicker/datepicker-calendar-inner.component.js.map +1 -0
  50. package/esm2015/lib/modules/datepicker/datepicker-calendar.component.js +109 -0
  51. package/esm2015/lib/modules/datepicker/datepicker-calendar.component.js.map +1 -0
  52. package/esm2015/lib/modules/datepicker/datepicker-config.service.js +21 -0
  53. package/esm2015/lib/modules/datepicker/datepicker-config.service.js.map +1 -0
  54. package/esm2015/lib/modules/datepicker/datepicker-custom-date.js +2 -0
  55. package/esm2015/lib/modules/datepicker/datepicker-custom-date.js.map +1 -0
  56. package/esm2015/lib/modules/datepicker/datepicker-date.js +2 -0
  57. package/esm2015/lib/modules/datepicker/datepicker-date.js.map +1 -0
  58. package/esm2015/lib/modules/datepicker/datepicker-input-fuzzy.directive.js +457 -0
  59. package/esm2015/lib/modules/datepicker/datepicker-input-fuzzy.directive.js.map +1 -0
  60. package/esm2015/lib/modules/datepicker/datepicker-input.directive.js +435 -0
  61. package/esm2015/lib/modules/datepicker/datepicker-input.directive.js.map +1 -0
  62. package/esm2015/lib/modules/datepicker/datepicker.component.js +333 -0
  63. package/esm2015/lib/modules/datepicker/datepicker.component.js.map +1 -0
  64. package/esm2015/lib/modules/datepicker/datepicker.module.js +95 -0
  65. package/esm2015/lib/modules/datepicker/datepicker.module.js.map +1 -0
  66. package/esm2015/lib/modules/datepicker/datepicker.service.js +21 -0
  67. package/esm2015/lib/modules/datepicker/datepicker.service.js.map +1 -0
  68. package/esm2015/lib/modules/datepicker/daypicker-button.component.js +26 -0
  69. package/esm2015/lib/modules/datepicker/daypicker-button.component.js.map +1 -0
  70. package/esm2015/lib/modules/datepicker/daypicker-cell.component.js +130 -0
  71. package/esm2015/lib/modules/datepicker/daypicker-cell.component.js.map +1 -0
  72. package/esm2015/lib/modules/datepicker/daypicker.component.js +215 -0
  73. package/esm2015/lib/modules/datepicker/daypicker.component.js.map +1 -0
  74. package/esm2015/lib/modules/datepicker/fuzzy-date.js +2 -0
  75. package/esm2015/lib/modules/datepicker/fuzzy-date.js.map +1 -0
  76. package/esm2015/lib/modules/datepicker/fuzzy-date.service.js +403 -0
  77. package/esm2015/lib/modules/datepicker/fuzzy-date.service.js.map +1 -0
  78. package/esm2015/lib/modules/datepicker/monthpicker.component.js +84 -0
  79. package/esm2015/lib/modules/datepicker/monthpicker.component.js.map +1 -0
  80. package/esm2015/lib/modules/datepicker/yearpicker.component.js +90 -0
  81. package/esm2015/lib/modules/datepicker/yearpicker.component.js.map +1 -0
  82. package/esm2015/lib/modules/shared/sky-datetime-resources.module.js +131 -0
  83. package/esm2015/lib/modules/shared/sky-datetime-resources.module.js.map +1 -0
  84. package/esm2015/lib/modules/timepicker/timepicker.component.js +367 -0
  85. package/esm2015/lib/modules/timepicker/timepicker.component.js.map +1 -0
  86. package/esm2015/lib/modules/timepicker/timepicker.directive.js +229 -0
  87. package/esm2015/lib/modules/timepicker/timepicker.directive.js.map +1 -0
  88. package/esm2015/lib/modules/timepicker/timepicker.interface.js +2 -0
  89. package/esm2015/lib/modules/timepicker/timepicker.interface.js.map +1 -0
  90. package/esm2015/lib/modules/timepicker/timepicker.module.js +46 -0
  91. package/esm2015/lib/modules/timepicker/timepicker.module.js.map +1 -0
  92. package/esm2015/skyux-datetime.js +2 -2
  93. package/esm2015/skyux-datetime.js.map +1 -0
  94. package/esm2015/testing/datepicker-fixture.js +1 -1
  95. package/esm2015/testing/datepicker-fixture.js.map +1 -0
  96. package/esm2015/testing/public-api.js +1 -1
  97. package/esm2015/testing/public-api.js.map +1 -0
  98. package/esm2015/testing/skyux-datetime-testing.js +1 -1
  99. package/esm2015/testing/skyux-datetime-testing.js.map +1 -0
  100. package/esm2015/testing/timepicker-fixture.js +1 -1
  101. package/esm2015/testing/timepicker-fixture.js.map +1 -0
  102. package/fesm2015/skyux-datetime-testing.js.map +1 -1
  103. package/fesm2015/skyux-datetime.js +301 -301
  104. package/fesm2015/skyux-datetime.js.map +1 -1
  105. package/index.d.ts +25 -0
  106. package/{modules → lib/modules}/date-pipe/date-format-utility.d.ts +0 -0
  107. package/{modules → lib/modules}/date-pipe/date-pipe.module.d.ts +0 -0
  108. package/{modules → lib/modules}/date-pipe/date.pipe.d.ts +0 -0
  109. package/{modules → lib/modules}/date-pipe/fuzzy-date.pipe.d.ts +0 -0
  110. package/{modules → lib/modules}/date-range-picker/date-range-picker.component.d.ts +0 -0
  111. package/{modules → lib/modules}/date-range-picker/date-range-picker.module.d.ts +0 -0
  112. package/{modules → lib/modules}/date-range-picker/date-range.service.d.ts +0 -0
  113. package/{modules → lib/modules}/date-range-picker/types/date-range-calculation.d.ts +0 -0
  114. package/{modules → lib/modules}/date-range-picker/types/date-range-calculator-config.d.ts +0 -0
  115. package/{modules → lib/modules}/date-range-picker/types/date-range-calculator-date-range-function.d.ts +0 -0
  116. package/{modules → lib/modules}/date-range-picker/types/date-range-calculator-id.d.ts +0 -0
  117. package/{modules → lib/modules}/date-range-picker/types/date-range-calculator-type.d.ts +0 -0
  118. package/{modules → lib/modules}/date-range-picker/types/date-range-calculator-validate-function.d.ts +0 -0
  119. package/{modules → lib/modules}/date-range-picker/types/date-range-calculator.d.ts +0 -0
  120. package/{modules → lib/modules}/date-range-picker/types/date-range-default-calculator-config.d.ts +0 -0
  121. package/{modules → lib/modules}/date-range-picker/types/date-range-default-calculator-configs.d.ts +0 -0
  122. package/{modules → lib/modules}/date-range-picker/types/date-range-relative-value.d.ts +0 -0
  123. package/{modules → lib/modules}/date-range-picker/types/date-range.d.ts +0 -0
  124. package/{modules → lib/modules}/datepicker/date-formatter.d.ts +0 -0
  125. package/{modules → lib/modules}/datepicker/datepicker-adapter.service.d.ts +0 -0
  126. package/{modules → lib/modules}/datepicker/datepicker-calendar-change.d.ts +0 -0
  127. package/{modules → lib/modules}/datepicker/datepicker-calendar-inner.component.d.ts +0 -0
  128. package/{modules → lib/modules}/datepicker/datepicker-calendar.component.d.ts +0 -0
  129. package/{modules → lib/modules}/datepicker/datepicker-config.service.d.ts +0 -0
  130. package/{modules → lib/modules}/datepicker/datepicker-custom-date.d.ts +0 -0
  131. package/{modules → lib/modules}/datepicker/datepicker-date.d.ts +0 -0
  132. package/{modules → lib/modules}/datepicker/datepicker-input-fuzzy.directive.d.ts +0 -0
  133. package/{modules → lib/modules}/datepicker/datepicker-input.directive.d.ts +0 -0
  134. package/{modules → lib/modules}/datepicker/datepicker.component.d.ts +0 -0
  135. package/{modules → lib/modules}/datepicker/datepicker.module.d.ts +0 -0
  136. package/{modules → lib/modules}/datepicker/datepicker.service.d.ts +0 -0
  137. package/{modules → lib/modules}/datepicker/daypicker-button.component.d.ts +0 -0
  138. package/{modules → lib/modules}/datepicker/daypicker-cell.component.d.ts +0 -0
  139. package/{modules → lib/modules}/datepicker/daypicker.component.d.ts +0 -0
  140. package/{modules → lib/modules}/datepicker/fuzzy-date.d.ts +0 -0
  141. package/{modules → lib/modules}/datepicker/fuzzy-date.service.d.ts +0 -0
  142. package/{modules → lib/modules}/datepicker/monthpicker.component.d.ts +0 -0
  143. package/{modules → lib/modules}/datepicker/yearpicker.component.d.ts +0 -0
  144. package/{modules → lib/modules}/shared/sky-datetime-resources.module.d.ts +0 -0
  145. package/{modules → lib/modules}/timepicker/timepicker.component.d.ts +0 -0
  146. package/{modules → lib/modules}/timepicker/timepicker.directive.d.ts +0 -0
  147. package/{modules → lib/modules}/timepicker/timepicker.interface.d.ts +0 -0
  148. package/{modules → lib/modules}/timepicker/timepicker.module.d.ts +0 -0
  149. package/package.json +10 -10
  150. package/skyux-datetime.d.ts +1 -1
  151. package/LICENSE +0 -21
  152. package/bundles/skyux-datetime-testing.umd.js.map +0 -1
  153. package/bundles/skyux-datetime.umd.js.map +0 -1
  154. package/esm2015/modules/date-pipe/date-format-utility.js +0 -48
  155. package/esm2015/modules/date-pipe/date-pipe.module.js +0 -21
  156. package/esm2015/modules/date-pipe/date.pipe.js +0 -64
  157. package/esm2015/modules/date-pipe/fuzzy-date.pipe.js +0 -46
  158. package/esm2015/modules/date-range-picker/date-range-picker.component.js +0 -460
  159. package/esm2015/modules/date-range-picker/date-range-picker.module.js +0 -47
  160. package/esm2015/modules/date-range-picker/date-range.service.js +0 -96
  161. package/esm2015/modules/date-range-picker/types/date-range-calculation.js +0 -2
  162. package/esm2015/modules/date-range-picker/types/date-range-calculator-config.js +0 -2
  163. package/esm2015/modules/date-range-picker/types/date-range-calculator-date-range-function.js +0 -2
  164. package/esm2015/modules/date-range-picker/types/date-range-calculator-id.js +0 -118
  165. package/esm2015/modules/date-range-picker/types/date-range-calculator-type.js +0 -23
  166. package/esm2015/modules/date-range-picker/types/date-range-calculator-validate-function.js +0 -2
  167. package/esm2015/modules/date-range-picker/types/date-range-calculator.js +0 -56
  168. package/esm2015/modules/date-range-picker/types/date-range-default-calculator-config.js +0 -2
  169. package/esm2015/modules/date-range-picker/types/date-range-default-calculator-configs.js +0 -147
  170. package/esm2015/modules/date-range-picker/types/date-range-relative-value.js +0 -252
  171. package/esm2015/modules/date-range-picker/types/date-range.js +0 -2
  172. package/esm2015/modules/datepicker/date-formatter.js +0 -38
  173. package/esm2015/modules/datepicker/datepicker-adapter.service.js +0 -33
  174. package/esm2015/modules/datepicker/datepicker-calendar-change.js +0 -2
  175. package/esm2015/modules/datepicker/datepicker-calendar-inner.component.js +0 -315
  176. package/esm2015/modules/datepicker/datepicker-calendar.component.js +0 -108
  177. package/esm2015/modules/datepicker/datepicker-config.service.js +0 -21
  178. package/esm2015/modules/datepicker/datepicker-custom-date.js +0 -2
  179. package/esm2015/modules/datepicker/datepicker-date.js +0 -2
  180. package/esm2015/modules/datepicker/datepicker-input-fuzzy.directive.js +0 -453
  181. package/esm2015/modules/datepicker/datepicker-input.directive.js +0 -432
  182. package/esm2015/modules/datepicker/datepicker.component.js +0 -331
  183. package/esm2015/modules/datepicker/datepicker.module.js +0 -95
  184. package/esm2015/modules/datepicker/datepicker.service.js +0 -21
  185. package/esm2015/modules/datepicker/daypicker-button.component.js +0 -25
  186. package/esm2015/modules/datepicker/daypicker-cell.component.js +0 -128
  187. package/esm2015/modules/datepicker/daypicker.component.js +0 -214
  188. package/esm2015/modules/datepicker/fuzzy-date.js +0 -2
  189. package/esm2015/modules/datepicker/fuzzy-date.service.js +0 -402
  190. package/esm2015/modules/datepicker/monthpicker.component.js +0 -83
  191. package/esm2015/modules/datepicker/yearpicker.component.js +0 -89
  192. package/esm2015/modules/shared/sky-datetime-resources.module.js +0 -131
  193. package/esm2015/modules/timepicker/timepicker.component.js +0 -365
  194. package/esm2015/modules/timepicker/timepicker.directive.js +0 -227
  195. package/esm2015/modules/timepicker/timepicker.interface.js +0 -2
  196. package/esm2015/modules/timepicker/timepicker.module.js +0 -46
  197. package/esm2015/public-api.js +0 -28
  198. package/public-api.d.ts +0 -25
@@ -1,128 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, Input, } from '@angular/core';
2
- import { SkyPopoverMessageType } from '@skyux/popovers';
3
- import { takeUntil } from 'rxjs/operators';
4
- import { Subject } from 'rxjs';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "./datepicker-calendar-inner.component";
7
- import * as i2 from "./datepicker.service";
8
- import * as i3 from "@skyux/popovers";
9
- import * as i4 from "./daypicker-button.component";
10
- import * as i5 from "@angular/common";
11
- /**
12
- * @internal
13
- */
14
- export class SkyDayPickerCellComponent {
15
- constructor(datepicker, datepickerService) {
16
- this.datepicker = datepicker;
17
- this.datepickerService = datepickerService;
18
- this.hasTooltip = false;
19
- this.popoverController = new Subject();
20
- this.activeUid = '';
21
- this.cancelPopover = false;
22
- this.popoverOpen = false;
23
- this.ngUnsubscribe = new Subject();
24
- }
25
- ngOnInit() {
26
- this.hasTooltip =
27
- this.date.keyDate &&
28
- this.date.keyDateText &&
29
- this.date.keyDateText.length > 0 &&
30
- this.date.keyDateText[0].length > 0;
31
- // show the tooltip if this is the active date and is not the
32
- // initial active date (activeDateHasChanged)
33
- if (this.datepicker.isActive(this.date) &&
34
- this.activeDateHasChanged &&
35
- this.hasTooltip) {
36
- this.activeUid = this.date.uid;
37
- this.showTooltip();
38
- }
39
- if (this.hasTooltip) {
40
- this.datepickerService.keyDatePopoverStream
41
- .pipe(takeUntil(this.ngUnsubscribe))
42
- .subscribe((date) => {
43
- if (date) {
44
- this.activeUid = date.uid;
45
- }
46
- else {
47
- this.activeUid = '';
48
- }
49
- // If this day has an open popover and they have moved off of the day close the popover.
50
- if (this.date.uid !== this.activeUid) {
51
- this.hideTooltip();
52
- }
53
- });
54
- }
55
- }
56
- ngOnDestroy() {
57
- this.ngUnsubscribe.next();
58
- this.ngUnsubscribe.complete();
59
- }
60
- onDayMouseenter() {
61
- this.cancelPopover = false;
62
- if (this.hasTooltip) {
63
- this.showTooltip();
64
- this.datepickerService.keyDatePopoverStream.next(this.date);
65
- }
66
- }
67
- onDayMouseleave() {
68
- this.cancelPopover = true;
69
- if (this.hasTooltip) {
70
- this.hideTooltip();
71
- }
72
- this.datepickerService.keyDatePopoverStream.next(undefined);
73
- }
74
- onPopoverClosed() {
75
- this.popoverOpen = false;
76
- }
77
- onPopoverOpened() {
78
- this.popoverOpen = true;
79
- /* istanbul ignore else */
80
- if (this.cancelPopover) {
81
- // If the popover gets opened just as a mouseout event happens, close it.
82
- this.hideTooltip();
83
- this.cancelPopover = false;
84
- }
85
- }
86
- getKeyDateLabel() {
87
- if (this.hasTooltip) {
88
- return this.date.keyDateText.join(', ');
89
- }
90
- else {
91
- return '';
92
- }
93
- }
94
- hideTooltip() {
95
- /* istanbul ignore else */
96
- if (this.popoverOpen) {
97
- this.popoverController.next({ type: SkyPopoverMessageType.Close });
98
- }
99
- }
100
- showTooltip() {
101
- /* istanbul ignore else */
102
- if (this.hasTooltip && !this.popoverOpen) {
103
- /**
104
- * Delay 1/2 second before opening the popover as long as mouse hasn't moved off the date.
105
- */
106
- setTimeout(() => {
107
- if (!this.cancelPopover && this.activeUid === this.date.uid) {
108
- this.popoverController.next({ type: SkyPopoverMessageType.Open });
109
- }
110
- }, 500);
111
- }
112
- }
113
- }
114
- SkyDayPickerCellComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyDayPickerCellComponent, deps: [{ token: i1.SkyDatepickerCalendarInnerComponent }, { token: i2.SkyDatepickerService }], target: i0.ɵɵFactoryTarget.Component });
115
- SkyDayPickerCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.14", type: SkyDayPickerCellComponent, selector: "sky-daypicker-cell", inputs: { activeDateHasChanged: "activeDateHasChanged", date: "date" }, ngImport: i0, template: "<div\n *ngIf=\"hasTooltip\"\n class=\"sky-daypicker-cell\"\n [attr.aria-label]=\"getKeyDateLabel()\"\n [skyPopover]=\"dayInfoPopover\"\n skyPopoverPlacement=\"left\"\n [skyPopoverMessageStream]=\"popoverController\"\n (mouseenter)=\"onDayMouseenter()\"\n (mouseleave)=\"onDayMouseleave()\"\n>\n <ng-container *ngTemplateOutlet=\"daypickerButtonTemplateRef\"></ng-container>\n <sky-popover\n (popoverClosed)=\"onPopoverClosed()\"\n (popoverOpened)=\"onPopoverOpened()\"\n #dayInfoPopover\n >\n <div *ngFor=\"let text of date.keyDateText\">\n {{ text }}\n </div>\n </sky-popover>\n</div>\n<div\n *ngIf=\"!hasTooltip\"\n class=\"sky-daypicker-cell\"\n (mouseenter)=\"onDayMouseenter()\"\n (mouseleave)=\"onDayMouseleave()\"\n>\n <ng-container *ngTemplateOutlet=\"daypickerButtonTemplateRef\"></ng-container>\n</div>\n\n<ng-template #daypickerButtonTemplateRef>\n <sky-daypicker-button [date]=\"date\"> </sky-daypicker-button>\n</ng-template>\n", components: [{ type: i3.λ6, selector: "sky-popover", inputs: ["alignment", "dismissOnBlur", "placement", "popoverTitle", "popoverType"], outputs: ["popoverClosed", "popoverOpened"] }, { type: i4.SkyDayPickerButtonComponent, selector: "sky-daypicker-button", inputs: ["date"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.λ7, selector: "[skyPopover]", inputs: ["skyPopover", "skyPopoverAlignment", "skyPopoverMessageStream", "skyPopoverPlacement", "skyPopoverTrigger"] }, { type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
116
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyDayPickerCellComponent, decorators: [{
117
- type: Component,
118
- args: [{
119
- selector: 'sky-daypicker-cell',
120
- templateUrl: 'daypicker-cell.component.html',
121
- changeDetection: ChangeDetectionStrategy.OnPush,
122
- }]
123
- }], ctorParameters: function () { return [{ type: i1.SkyDatepickerCalendarInnerComponent }, { type: i2.SkyDatepickerService }]; }, propDecorators: { activeDateHasChanged: [{
124
- type: Input
125
- }], date: [{
126
- type: Input
127
- }] } });
128
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF5cGlja2VyLWNlbGwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0ZXRpbWUvc3JjL21vZHVsZXMvZGF0ZXBpY2tlci9kYXlwaWNrZXItY2VsbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRldGltZS9zcmMvbW9kdWxlcy9kYXRlcGlja2VyL2RheXBpY2tlci1jZWxsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULEtBQUssR0FHTixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQXFCLHFCQUFxQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFM0UsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7QUFRL0I7O0dBRUc7QUFNSCxNQUFNLE9BQU8seUJBQXlCO0lBeUJwQyxZQUNVLFVBQStDLEVBQy9DLGlCQUF1QztRQUR2QyxlQUFVLEdBQVYsVUFBVSxDQUFxQztRQUMvQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQXNCO1FBZDFDLGVBQVUsR0FBWSxLQUFLLENBQUM7UUFFNUIsc0JBQWlCLEdBQUcsSUFBSSxPQUFPLEVBQXFCLENBQUM7UUFFcEQsY0FBUyxHQUFXLEVBQUUsQ0FBQztRQUV2QixrQkFBYSxHQUFZLEtBQUssQ0FBQztRQUUvQixnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUU3QixrQkFBYSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFLekMsQ0FBQztJQUVHLFFBQVE7UUFDYixJQUFJLENBQUMsVUFBVTtZQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTztnQkFDakIsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXO2dCQUNyQixJQUFJLENBQUMs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QUFDO0lBRU8sV0FBVztRQUNqQiwwQkFBMEI7UUFDMUIsSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUN4Qzs7ZUFFRztZQUNILFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtvQkFDM0QsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxxQkFBcUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO2lCQUNuRTtZQUNILENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztTQUNUO0lBQ0gsQ0FBQzs7dUhBL0hVLHlCQUF5QjsyR0FBekIseUJBQXlCLGtJQzVCdEMsbzlCQWlDQTs0RkRMYSx5QkFBeUI7a0JBTHJDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG9CQUFvQjtvQkFDOUIsV0FBVyxFQUFFLCtCQUErQjtvQkFDNUMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2hEOzZKQU1RLG9CQUFvQjtzQkFEMUIsS0FBSztnQkFPQyxJQUFJO3NCQURWLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTa3lQb3BvdmVyTWVzc2FnZSwgU2t5UG9wb3Zlck1lc3NhZ2VUeXBlIH0gZnJvbSAnQHNreXV4L3BvcG92ZXJzJztcblxuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFNreURhdGVwaWNrZXJDYWxlbmRhcklubmVyQ29tcG9uZW50IH0gZnJvbSAnLi9kYXRlcGlja2VyLWNhbGVuZGFyLWlubmVyLmNvbXBvbmVudCc7XG5cbmltcG9ydCB7IFNreURhdGVwaWNrZXJEYXRlIH0gZnJvbSAnLi9kYXRlcGlja2VyLWRhdGUnO1xuXG5pbXBvcnQgeyBTa3lEYXRlcGlja2VyU2VydmljZSB9IGZyb20gJy4vZGF0ZXBpY2tlci5zZXJ2aWNlJztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LWRheXBpY2tlci1jZWxsJyxcbiAgdGVtcGxhdGVVcmw6ICdkYXlwaWNrZXItY2VsbC5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lEYXlQaWNrZXJDZWxsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAvKipcbiAgICogU3BlY2lmaWVzIGlmIHRoZSBhY3RpdmUgZGF0ZSBoYXMgYmVlbiBjaGFuZ2VkLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGFjdGl2ZURhdGVIYXNDaGFuZ2VkOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIGRhdGUgdGhpcyBwaWNrZXIgY2VsbCB3aWxsIHJlcHJlc2VudCBvbiB0aGUgY2FsZW5kYXIuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgZGF0ZTogU2t5RGF0ZXBpY2tlckRhdGU7XG5cbiAgcHVibGljIGhhc1Rvb2x0aXA6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBwdWJsaWMgcG9wb3ZlckNvbnRyb2xsZXIgPSBuZXcgU3ViamVjdDxTa3lQb3BvdmVyTWVzc2FnZT4oKTtcblxuICBwcml2YXRlIGFjdGl2ZVVpZDogc3RyaW5nID0gJyc7XG5cbiAgcHJpdmF0ZSBjYW5jZWxQb3BvdmVyOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBwb3BvdmVyT3BlbjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHByaXZhdGUgbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZGF0ZXBpY2tlcjogU2t5RGF0ZXBpY2tlckNhbGVuZGFySW5uZXJDb21wb25lbnQsXG4gICAgcHJpdmF0ZSBkYXRlcGlja2VyU2VydmljZTogU2t5RGF0ZXBpY2tlclNlcnZpY2VcbiAgKSB7fVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmhhc1Rvb2x0aXAgPVxuICAgICAgdGhpcy5kYXRlLmtleURhdGUgJiZcbiAgICAgIHRoaXMuZGF0ZS5rZXlEYXRlVGV4dCAmJlxuICAgICAgdGhpcy5kYXRlLmtleURhdGVUZXh0Lmxlbmd0aCA+IDAgJiZcbiAgICAgIHRoaXMuZGF0ZS5rZXlEYXRlVGV4dFswXS5sZW5ndGggPiAwO1xuXG4gICAgLy8gc2hvdyB0aGUgdG9vbHRpcCBpZiB0aGlzIGlzIHRoZSBhY3RpdmUgZGF0ZSBhbmQgaXMgbm90IHRoZVxuICAgIC8vIGluaXRpYWwgYWN0aXZlIGRhdGUgKGFjdGl2ZURhdGVIYXNDaGFuZ2VkKVxuICAgIGlmIChcbiAgICAgIHRoaXMuZGF0ZXBpY2tlci5pc0FjdGl2ZSh0aGlzLmRhdGUpICYmXG4gICAgICB0aGlzLmFjdGl2ZURhdGVIYXNDaGFuZ2VkICYmXG4gICAgICB0aGlzLmhhc1Rvb2x0aXBcbiAgICApIHtcbiAgICAgIHRoaXMuYWN0aXZlVWlkID0gdGhpcy5kYXRlLnVpZDtcbiAgICAgIHRoaXMuc2hvd1Rvb2x0aXAoKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5oYXNUb29sdGlwKSB7XG4gICAgICB0aGlzLmRhdGVwaWNrZXJTZXJ2aWNlLmtleURhdGVQb3BvdmVyU3RyZWFtXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKVxuICAgICAgICAuc3Vic2NyaWJlKChkYXRlKSA9PiB7XG4gICAgICAgICAgaWYgKGRhdGUpIHtcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlVWlkID0gZGF0ZS51aWQ7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlVWlkID0gJyc7XG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIElmIHRoaXMgZGF5IGhhcyBhbiBvcGVuIHBvcG92ZXIgYW5kIHRoZXkgaGF2ZSBtb3ZlZCBvZmYgb2YgdGhlIGRheSBjbG9zZSB0aGUgcG9wb3Zlci5cbiAgICAgICAgICBpZiAodGhpcy5kYXRlLnVpZCAhPT0gdGhpcy5hY3RpdmVVaWQpIHtcbiAgICAgICAgICAgIHRoaXMuaGlkZVRvb2x0aXAoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLm5nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgIHRoaXMubmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHVibGljIG9uRGF5TW91c2VlbnRlcigpOiB2b2lkIHtcbiAgICB0aGlzLmNhbmNlbFBvcG92ZXIgPSBmYWxzZTtcbiAgICBpZiAodGhpcy5oYXNUb29sdGlwKSB7XG4gICAgICB0aGlzLnNob3dUb29sdGlwKCk7XG4gICAgICB0aGlzLmRhdGVwaWNrZXJTZXJ2aWNlLmtleURhdGVQb3BvdmVyU3RyZWFtLm5leHQodGhpcy5kYXRlKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25EYXlNb3VzZWxlYXZlKCk6IHZvaWQge1xuICAgIHRoaXMuY2FuY2VsUG9wb3ZlciA9IHRydWU7XG4gICAgaWYgKHRoaXMuaGFzVG9vbHRpcCkge1xuICAgICAgdGhpcy5oaWRlVG9vbHRpcCgpO1xuICAgIH1cbiAgICB0aGlzLmRhdGVwaWNrZXJTZXJ2aWNlLmtleURhdGVQb3BvdmVyU3RyZWFtLm5leHQodW5kZWZpbmVkKTtcbiAgfVxuXG4gIHB1YmxpYyBvblBvcG92ZXJDbG9zZWQoKTogdm9pZCB7XG4gICAgdGhpcy5wb3BvdmVyT3BlbiA9IGZhbHNlO1xuICB9XG5cbiAgcHVibGljIG9uUG9wb3Zlck9wZW5lZCgpOiB2b2lkIHtcbiAgICB0aGlzLnBvcG92ZXJPcGVuID0gdHJ1ZTtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmICh0aGlzLmNhbmNlbFBvcG92ZXIpIHtcbiAgICAgIC8vIElmIHRoZSBwb3BvdmVyIGdldHMgb3BlbmVkIGp1c3QgYXMgYSBtb3VzZW91dCBldmVudCBoYXBwZW5zLCBjbG9zZSBpdC5cbiAgICAgIHRoaXMuaGlkZVRvb2x0aXAoKTtcbiAgICAgIHRoaXMuY2FuY2VsUG9wb3ZlciA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXRLZXlEYXRlTGFiZWwoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5oYXNUb29sdGlwKSB7XG4gICAgICByZXR1cm4gdGhpcy5kYXRlLmtleURhdGVUZXh0LmpvaW4oJywgJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGhpZGVUb29sdGlwKCk6IHZvaWQge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKHRoaXMucG9wb3Zlck9wZW4pIHtcbiAgICAgIHRoaXMucG9wb3ZlckNvbnRyb2xsZXIubmV4dCh7IHR5cGU6IFNreVBvcG92ZXJNZXNzYWdlVHlwZS5DbG9zZSB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNob3dUb29sdGlwKCk6IHZvaWQge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKHRoaXMuaGFzVG9vbHRpcCAmJiAhdGhpcy5wb3BvdmVyT3Blbikge1xuICAgICAgLyoqXG4gICAgICAgKiBEZWxheSAxLzIgc2Vjb25kIGJlZm9yZSBvcGVuaW5nIHRoZSBwb3BvdmVyIGFzIGxvbmcgYXMgbW91c2UgaGFzbid0IG1vdmVkIG9mZiB0aGUgZGF0ZS5cbiAgICAgICAqL1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGlmICghdGhpcy5jYW5jZWxQb3BvdmVyICYmIHRoaXMuYWN0aXZlVWlkID09PSB0aGlzLmRhdGUudWlkKSB7XG4gICAgICAgICAgdGhpcy5wb3BvdmVyQ29udHJvbGxlci5uZXh0KHsgdHlwZTogU2t5UG9wb3Zlck1lc3NhZ2VUeXBlLk9wZW4gfSk7XG4gICAgICAgIH1cbiAgICAgIH0sIDUwMCk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2XG4gICpuZ0lmPVwiaGFzVG9vbHRpcFwiXG4gIGNsYXNzPVwic2t5LWRheXBpY2tlci1jZWxsXCJcbiAgW2F0dHIuYXJpYS1sYWJlbF09XCJnZXRLZXlEYXRlTGFiZWwoKVwiXG4gIFtza3lQb3BvdmVyXT1cImRheUluZm9Qb3BvdmVyXCJcbiAgc2t5UG9wb3ZlclBsYWNlbWVudD1cImxlZnRcIlxuICBbc2t5UG9wb3Zlck1lc3NhZ2VTdHJlYW1dPVwicG9wb3ZlckNvbnRyb2xsZXJcIlxuICAobW91c2VlbnRlcik9XCJvbkRheU1vdXNlZW50ZXIoKVwiXG4gIChtb3VzZWxlYXZlKT1cIm9uRGF5TW91c2VsZWF2ZSgpXCJcbj5cbiAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImRheXBpY2tlckJ1dHRvblRlbXBsYXRlUmVmXCI+PC9uZy1jb250YWluZXI+XG4gIDxza3ktcG9wb3ZlclxuICAgIChwb3BvdmVyQ2xvc2VkKT1cIm9uUG9wb3ZlckNsb3NlZCgpXCJcbiAgICAocG9wb3Zlck9wZW5lZCk9XCJvblBvcG92ZXJPcGVuZWQoKVwiXG4gICAgI2RheUluZm9Qb3BvdmVyXG4gID5cbiAgICA8ZGl2ICpuZ0Zvcj1cImxldCB0ZXh0IG9mIGRhdGUua2V5RGF0ZVRleHRcIj5cbiAgICAgIHt7IHRleHQgfX1cbiAgICA8L2Rpdj5cbiAgPC9za3ktcG9wb3Zlcj5cbjwvZGl2PlxuPGRpdlxuICAqbmdJZj1cIiFoYXNUb29sdGlwXCJcbiAgY2xhc3M9XCJza3ktZGF5cGlja2VyLWNlbGxcIlxuICAobW91c2VlbnRlcik9XCJvbkRheU1vdXNlZW50ZXIoKVwiXG4gIChtb3VzZWxlYXZlKT1cIm9uRGF5TW91c2VsZWF2ZSgpXCJcbj5cbiAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImRheXBpY2tlckJ1dHRvblRlbXBsYXRlUmVmXCI+PC9uZy1jb250YWluZXI+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNkYXlwaWNrZXJCdXR0b25UZW1wbGF0ZVJlZj5cbiAgPHNreS1kYXlwaWNrZXItYnV0dG9uIFtkYXRlXT1cImRhdGVcIj4gPC9za3ktZGF5cGlja2VyLWJ1dHRvbj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -1,214 +0,0 @@
1
- import { Component, EventEmitter, Input, Output, } from '@angular/core';
2
- import { Subject } from 'rxjs';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "./datepicker-calendar-inner.component";
5
- import * as i2 from "@skyux/indicators";
6
- import * as i3 from "./daypicker-cell.component";
7
- import * as i4 from "@angular/common";
8
- /**
9
- * @internal
10
- */
11
- export class SkyDayPickerComponent {
12
- constructor(datepicker) {
13
- this.calendarDateRangeChange = new EventEmitter();
14
- this.isWaiting = false;
15
- this.activeDateHasChanged = false;
16
- this.labels = [];
17
- this.rows = [];
18
- this.weekNumbers = [];
19
- this.daysInMonth = [
20
- 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31,
21
- ];
22
- this.ngUnsubscribe = new Subject();
23
- this.datepicker = datepicker;
24
- }
25
- set customDates(value) {
26
- /* istanbul ignore else */
27
- if (value) {
28
- this.applyCustomDates(value, this.rows);
29
- }
30
- }
31
- ngOnInit() {
32
- this.datepicker.stepDay = { months: 1 };
33
- this.initialDate = this.datepicker.activeDate.getDate();
34
- this.datepicker.setRefreshViewHandler(() => {
35
- this.refreshDayView();
36
- }, 'day');
37
- this.datepicker.setCompareHandler(this.compareDays, 'day');
38
- this.datepicker.setKeydownHandler((key, event) => {
39
- this.keydownDays(key, event);
40
- }, 'day');
41
- this.datepicker.refreshView();
42
- }
43
- ngOnDestroy() {
44
- this.ngUnsubscribe.next();
45
- this.ngUnsubscribe.complete();
46
- }
47
- getDates(startDate, n) {
48
- let dates = new Array(n);
49
- let current = new Date(startDate.getTime());
50
- let i = 0;
51
- let date;
52
- while (i < n) {
53
- date = new Date(current.getTime());
54
- date = this.datepicker.fixTimeZone(date);
55
- dates[i++] = date;
56
- current = new Date(current.getFullYear(), current.getMonth(), current.getDate() + 1);
57
- }
58
- return dates;
59
- }
60
- compareDays(date1, date2) {
61
- let d1 = new Date(date1.getFullYear(), date1.getMonth(), date1.getDate());
62
- let d2 = new Date(date2.getFullYear(), date2.getMonth(), date2.getDate());
63
- return d1.getTime() - d2.getTime();
64
- }
65
- refreshDayView() {
66
- let year = this.datepicker.activeDate.getFullYear();
67
- let month = this.datepicker.activeDate.getMonth();
68
- let firstDayOfMonth = new Date(year, month, 1);
69
- let difference = this.datepicker.startingDay - firstDayOfMonth.getDay();
70
- let numDisplayedFromPreviousMonth = difference > 0 ? 7 - difference : -difference;
71
- let firstDate = new Date(firstDayOfMonth.getTime());
72
- if (this.datepicker.activeDate.getDate() !== this.initialDate) {
73
- this.activeDateHasChanged = true;
74
- }
75
- /* istanbul ignore else */
76
- /* sanity check */
77
- if (numDisplayedFromPreviousMonth > 0) {
78
- firstDate.setDate(-numDisplayedFromPreviousMonth + 1);
79
- }
80
- // 42 is the number of days on a six-week calendar
81
- let days = this.getDates(firstDate, 42);
82
- let pickerDates = [];
83
- for (let i = 0; i < 42; i++) {
84
- let _dateObject = this.datepicker.createDateObject(days[i], this.datepicker.formatDay, days[i].getMonth() !== month, this.datepicker.datepickerId + '-' + i);
85
- pickerDates[i] = _dateObject;
86
- }
87
- this.labels = [];
88
- for (let j = 0; j < 7; j++) {
89
- this.labels[j] = {};
90
- this.labels[j].abbr = this.datepicker.dateFilter(pickerDates[j].date, this.datepicker.formatDayHeader);
91
- this.labels[j].full = this.datepicker.dateFilter(pickerDates[j].date, 'EEEE');
92
- }
93
- this.title = this.datepicker.dateFilter(this.datepicker.activeDate, this.datepicker.formatDayTitle);
94
- const oldDateRange = this.getDateRange(this.rows);
95
- this.rows = this.datepicker.createCalendarRows(pickerDates, 7);
96
- const newDateRange = this.getDateRange(this.rows);
97
- if (!this.dateRangeRowsAreEqual(oldDateRange, newDateRange)) {
98
- this.calendarDateRangeChange.next({
99
- startDate: newDateRange.startDate,
100
- endDate: newDateRange.endDate,
101
- });
102
- }
103
- }
104
- keydownDays(key, event) {
105
- let date = this.datepicker.activeDate.getDate();
106
- /* istanbul ignore else */
107
- /* sanity check */
108
- if (key === 'left') {
109
- date = date - 1;
110
- }
111
- else if (key === 'up') {
112
- date = date - 7;
113
- }
114
- else if (key === 'right') {
115
- date = date + 1;
116
- }
117
- else if (key === 'down') {
118
- date = date + 7;
119
- }
120
- else if (key === 'pageup' || key === 'pagedown') {
121
- let month = this.datepicker.activeDate.getMonth() + (key === 'pageup' ? -1 : 1);
122
- this.datepicker.activeDate.setMonth(month, 1);
123
- date = Math.min(this.getDaysInMonth(this.datepicker.activeDate.getFullYear(), this.datepicker.activeDate.getMonth()), date);
124
- }
125
- else if (key === 'home') {
126
- date = 1;
127
- }
128
- else if (key === 'end') {
129
- date = this.getDaysInMonth(this.datepicker.activeDate.getFullYear(), this.datepicker.activeDate.getMonth());
130
- }
131
- this.datepicker.activeDate.setDate(date);
132
- }
133
- getDaysInMonth(year, month) {
134
- return month === 1 &&
135
- year % 4 === 0 &&
136
- (year % 400 === 0 || year % 100 !== 0)
137
- ? 29
138
- : this.daysInMonth[month];
139
- }
140
- /**
141
- * Applies custom date properties to the existing dates displayed in the calendar.
142
- */
143
- applyCustomDates(customDates, dateRows) {
144
- let date;
145
- let newDate;
146
- let dateIndex;
147
- /* istanbul ignore else */
148
- if (customDates && dateRows) {
149
- customDates.forEach((customDate) => {
150
- dateIndex = -1;
151
- dateRows.forEach((row) => {
152
- if (dateIndex === -1) {
153
- dateIndex = row.findIndex((d) => {
154
- return d.date.getTime() === customDate.date.getTime();
155
- });
156
- if (dateIndex > -1) {
157
- date = row[dateIndex];
158
- // Replace the date with a new instance so the display gets updated.
159
- newDate = {
160
- current: date.current,
161
- date: date.date,
162
- disabled: !!date.disabled || !!customDate.disabled,
163
- keyDate: !!customDate.keyDate || !!date.keyDate,
164
- keyDateText: customDate.keyDateText || date.keyDateText,
165
- label: date.label,
166
- secondary: date.secondary,
167
- selected: date.selected,
168
- uid: date.uid,
169
- };
170
- row[dateIndex] = newDate;
171
- }
172
- }
173
- });
174
- });
175
- }
176
- }
177
- dateRangeRowsAreEqual(rangeA, rangeB) {
178
- /* istanbul ignore if */
179
- if (!rangeA && !rangeB) {
180
- return true;
181
- }
182
- else if ((rangeA && !rangeB) || (!rangeA && rangeB)) {
183
- return false;
184
- }
185
- return (this.compareDays(rangeA.startDate, rangeB.startDate) === 0 &&
186
- this.compareDays(rangeA.endDate, rangeB.endDate) === 0);
187
- }
188
- getDateRange(rows) {
189
- /* istanbul ignore else */
190
- if (rows && rows.length > 0) {
191
- return {
192
- startDate: rows[0][0].date,
193
- endDate: rows[rows.length - 1][rows[rows.length - 1].length - 1].date,
194
- };
195
- }
196
- }
197
- }
198
- SkyDayPickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyDayPickerComponent, deps: [{ token: i1.SkyDatepickerCalendarInnerComponent }], target: i0.ɵɵFactoryTarget.Component });
199
- SkyDayPickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.14", type: SkyDayPickerComponent, selector: "sky-daypicker", inputs: { customDates: "customDates", isWaiting: "isWaiting" }, outputs: { calendarDateRangeChange: "calendarDateRangeChange" }, ngImport: i0, template: "<div *ngIf=\"datepicker.datepickerMode === 'day'\" class=\"sky-daypicker-wrapper\">\n <table\n class=\"sky-daypicker-table\"\n role=\"grid\"\n [attr.aria-labelledby]=\"datepicker.datepickerId + '-title'\"\n >\n <thead>\n <tr>\n <th class=\"sky-datepicker-header-left\" scope=\"col\">\n <button\n type=\"button\"\n class=\"\n sky-btn sky-btn-default sky-btn-sm sky-datepicker-btn-previous\n \"\n (click)=\"datepicker.moveCalendar($event, -1)\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n >\n <sky-icon\n class=\"sky-datepicker-chevron-default\"\n icon=\"chevron-left\"\n ></sky-icon>\n <sky-icon\n class=\"sky-datepicker-chevron-modern\"\n icon=\"chevron-left\"\n iconType=\"skyux\"\n ></sky-icon>\n </button>\n </th>\n <th scope=\"col\" [attr.colspan]=\"5\">\n <button\n [id]=\"datepicker.datepickerId + '-title'\"\n type=\"button\"\n class=\"\n sky-btn sky-btn-default sky-btn-sm sky-datepicker-calendar-title\n \"\n (click)=\"datepicker.toggleModeCalendar($event)\"\n [disabled]=\"datepicker.datepickerMode === datepicker.maxMode\"\n [ngClass]=\"{\n 'sky-btn-disabled':\n datepicker.datepickerMode === datepicker.maxMode\n }\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n >\n <strong>{{ title }}</strong>\n </button>\n </th>\n <th class=\"sky-datepicker-header-right\" scope=\"col\">\n <button\n type=\"button\"\n class=\"sky-btn sky-btn-default sky-btn-sm sky-datepicker-btn-next\"\n (click)=\"datepicker.moveCalendar($event, 1)\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n >\n <sky-icon\n class=\"sky-datepicker-chevron-default\"\n icon=\"chevron-right\"\n ></sky-icon>\n <sky-icon\n class=\"sky-datepicker-chevron-modern\"\n icon=\"chevron-right\"\n iconType=\"skyux\"\n ></sky-icon>\n </button>\n </th>\n </tr>\n <tr>\n <th\n scope=\"col\"\n *ngFor=\"let label of labels\"\n class=\"sky-datepicker-center sky-datepicker-weekdays\"\n >\n <small [attr.aria-label]=\"label.full\">\n <b>{{ label.abbr }}</b>\n </small>\n </th>\n </tr>\n </thead>\n <tbody>\n <!-- Wait indicator for async custom date stream -->\n <sky-wait [isWaiting]=\"isWaiting\"> </sky-wait>\n <ng-template ngFor [ngForOf]=\"rows\" let-row=\"$implicit\" let-index=\"index\">\n <tr role=\"row\">\n <td\n *ngFor=\"let date of row\"\n class=\"sky-datepicker-center\"\n role=\"gridcell\"\n [id]=\"date.uid\"\n >\n <sky-daypicker-cell\n [activeDateHasChanged]=\"activeDateHasChanged\"\n [date]=\"date\"\n >\n </sky-daypicker-cell>\n </td>\n </tr>\n </ng-template>\n </tbody>\n </table>\n</div>\n", styles: [":host-context(.sky-theme-modern) :host:focus{outline:none}.sky-theme-modern :host:focus{outline:none}\n"], components: [{ type: i2.λ4, selector: "sky-icon", inputs: ["icon", "iconType", "size", "fixedWidth", "variant"] }, { type: i2.λ14, selector: "sky-wait", inputs: ["ariaLabel", "isWaiting", "isFullPage", "isNonBlocking"] }, { type: i3.SkyDayPickerCellComponent, selector: "sky-daypicker-cell", inputs: ["activeDateHasChanged", "date"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
200
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyDayPickerComponent, decorators: [{
201
- type: Component,
202
- args: [{
203
- selector: 'sky-daypicker',
204
- templateUrl: 'daypicker.component.html',
205
- styleUrls: ['./daypicker.component.scss'],
206
- }]
207
- }], ctorParameters: function () { return [{ type: i1.SkyDatepickerCalendarInnerComponent }]; }, propDecorators: { customDates: [{
208
- type: Input
209
- }], calendarDateRangeChange: [{
210
- type: Output
211
- }], isWaiting: [{
212
- type: Input
213
- }] } });
214
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF5cGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGV0aW1lL3NyYy9tb2R1bGVzL2RhdGVwaWNrZXIvZGF5cGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGV0aW1lL3NyYy9tb2R1bGVzL2RhdGVwaWNrZXIvZGF5cGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7O0FBZS9COztHQUVHO0FBTUgsTUFBTSxPQUFPLHFCQUFxQjtJQTZCaEMsWUFBbUIsVUFBK0M7UUFuQjNELDRCQUF1QixHQUE4QyxJQUFJLFlBQVksRUFBK0IsQ0FBQztRQUdySCxjQUFTLEdBQVksS0FBSyxDQUFDO1FBRTNCLHlCQUFvQixHQUFZLEtBQUssQ0FBQztRQUN0QyxXQUFNLEdBQVUsRUFBRSxDQUFDO1FBRW5CLFNBQUksR0FBb0MsRUFBRSxDQUFDO1FBQzNDLGdCQUFXLEdBQWEsRUFBRSxDQUFDO1FBSTFCLGdCQUFXLEdBQWtCO1lBQ25DLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRTtTQUMvQyxDQUFDO1FBRU0sa0JBQWEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBRzFDLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO0lBQy9CLENBQUM7SUE5QkQsSUFDVyxXQUFXLENBQUMsS0FBZ0M7UUFDckQsMEJBQTBCO1FBQzFCLElBQUksS0FBSyxFQUFFO1lB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bnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2t5RGF0ZXBpY2tlckN1c3RvbURhdGUgfSBmcm9tICcuL2RhdGVwaWNrZXItY3VzdG9tLWRhdGUnO1xuaW1wb3J0IHsgU2t5RGF0ZXBpY2tlckNhbGVuZGFyQ2hhbmdlIH0gZnJvbSAnLi9kYXRlcGlja2VyLWNhbGVuZGFyLWNoYW5nZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBTa3lEYXRlcGlja2VyQ2FsZW5kYXJJbm5lckNvbXBvbmVudCB9IGZyb20gJy4vZGF0ZXBpY2tlci1jYWxlbmRhci1pbm5lci5jb21wb25lbnQnO1xuXG5pbXBvcnQgeyBTa3lEYXRlcGlja2VyRGF0ZSB9IGZyb20gJy4vZGF0ZXBpY2tlci1kYXRlJztcblxuLyoqXG4gKiBIZWxwZXIgaW50ZXJmYWNlIHRvIGNvbXBhcmUgZGF0ZSByYW5nZXMuXG4gKiBAaW50ZXJuYWxcbiAqL1xuaW50ZXJmYWNlIFNreURhdGVSYW5nZSB7XG4gIGVuZERhdGU6IERhdGU7XG5cbiAgc3RhcnREYXRlOiBEYXRlO1xufVxuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktZGF5cGlja2VyJyxcbiAgdGVtcGxhdGVVcmw6ICdkYXlwaWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kYXlwaWNrZXIuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5RGF5UGlja2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95LCBPbkluaXQge1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGN1c3RvbURhdGVzKHZhbHVlOiBTa3lEYXRlcGlja2VyQ3VzdG9tRGF0ZVtdKSB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuYXBwbHlDdXN0b21EYXRlcyh2YWx1ZSwgdGhpcy5yb3dzKTtcbiAgICB9XG4gIH1cblxuICBAT3V0cHV0KClcbiAgcHVibGljIGNhbGVuZGFyRGF0ZVJhbmdlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8U2t5RGF0ZXBpY2tlckNhbGVuZGFyQ2hhbmdlPiA9IG5ldyBFdmVudEVtaXR0ZXI8U2t5RGF0ZXBpY2tlckNhbGVuZGFyQ2hhbmdlPigpO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBpc1dhaXRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBwdWJsaWMgYWN0aXZlRGF0ZUhhc0NoYW5nZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHVibGljIGxhYmVsczogYW55W10gPSBbXTtcbiAgcHVibGljIHRpdGxlOiBzdHJpbmc7XG4gIHB1YmxpYyByb3dzOiBBcnJheTxBcnJheTxTa3lEYXRlcGlja2VyRGF0ZT4+ID0gW107XG4gIHB1YmxpYyB3ZWVrTnVtYmVyczogbnVtYmVyW10gPSBbXTtcbiAgcHVibGljIGRhdGVwaWNrZXI6IFNreURhdGVwaWNrZXJDYWxlbmRhcklubmVyQ29tcG9uZW50O1xuICBwdWJsaWMgQ1VSUkVOVF9USEVNRV9URU1QTEFURTogYW55O1xuXG4gIHByaXZhdGUgZGF5c0luTW9udGg6IEFycmF5PG51bWJlcj4gPSBbXG4gICAgMzEsIDI4LCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMxLCAzMCwgMzEsIDMwLCAzMSxcbiAgXTtcbiAgcHJpdmF0ZSBpbml0aWFsRGF0ZTogbnVtYmVyO1xuICBwcml2YXRlIG5nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihkYXRlcGlja2VyOiBTa3lEYXRlcGlja2VyQ2FsZW5kYXJJbm5lckNvbXBvbmVudCkge1xuICAgIHRoaXMuZGF0ZXBpY2tlciA9IGRhdGVwaWNrZXI7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5kYXRlcGlja2VyLnN0ZXBEYXkgPSB7IG1vbnRoczogMSB9O1xuICAgIHRoaXMuaW5pdGlhbERhdGUgPSB0aGlzLmRhdGVwaWNrZXIuYWN0aXZlRGF0ZS5nZXREYXRlKCk7XG5cbiAgICB0aGlzLmRhdGVwaWNrZXIuc2V0UmVmcmVzaFZpZXdIYW5kbGVyKCgpID0+IHtcbiAgICAgIHRoaXMucmVmcmVzaERheVZpZXcoKTtcbiAgICB9LCAnZGF5Jyk7XG5cbiAgICB0aGlzLmRhdGVwaWNrZXIuc2V0Q29tcGFyZUhhbmRsZXIodGhpcy5jb21wYXJlRGF5cywgJ2RheScpO1xuXG4gICAgdGhpcy5kYXRlcGlja2VyLnNldEtleWRvd25IYW5kbGVyKChrZXk6IHN0cmluZywgZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgIHRoaXMua2V5ZG93bkRheXMoa2V5LCBldmVudCk7XG4gICAgfSwgJ2RheScpO1xuXG4gICAgdGhpcy5kYXRlcGlja2VyLnJlZnJlc2hWaWV3KCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLm5nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXREYXRlcyhzdGFydERhdGU6IERhdGUsIG46IG51bWJlcik6IERhdGVbXSB7XG4gICAgbGV0IGRhdGVzOiBEYXRlW10gPSBuZXcgQXJyYXkobik7XG4gICAgbGV0IGN1cnJlbnQgPSBuZXcgRGF0ZShzdGFydERhdGUuZ2V0VGltZSgpKTtcbiAgICBsZXQgaSA9IDA7XG4gICAgbGV0IGRhdGU6IERhdGU7XG4gICAgd2hpbGUgKGkgPCBuKSB7XG4gICAgICBkYXRlID0gbmV3IERhdGUoY3VycmVudC5nZXRUaW1lKCkpO1xuICAgICAgZGF0ZSA9IHRoaXMuZGF0ZXBpY2tlci5maXhUaW1lWm9uZShkYXRlKTtcbiAgICAgIGRhdGVzW2krK10gPSBkYXRlO1xuICAgICAgY3VycmVudCA9IG5ldyBEYXRlKFxuICAgICAgICBjdXJyZW50LmdldEZ1bGxZZWFyKCksXG4gICAgICAgIGN1cnJlbnQuZ2V0TW9udGgoKSxcbiAgICAgICAgY3VycmVudC5nZXREYXRlKCkgKyAxXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gZGF0ZXM7XG4gIH1cblxuICBwcml2YXRlIGNvbXBhcmVEYXlzKGRhdGUxOiBEYXRlLCBkYXRlMjogRGF0ZSk6IG51bWJlciB7XG4gICAgbGV0IGQxID0gbmV3IERhdGUoZGF0ZTEuZ2V0RnVsbFllYXIoKSwgZGF0ZTEuZ2V0TW9udGgoKSwgZGF0ZTEuZ2V0RGF0ZSgpKTtcbiAgICBsZXQgZDIgPSBuZXcgRGF0ZShkYXRlMi5nZXRGdWxsWWVhcigpLCBkYXRlMi5nZXRNb250aCgpLCBkYXRlMi5nZXREYXRlKCkpO1xuICAgIHJldHVybiBkMS5nZXRUaW1lKCkgLSBkMi5nZXRUaW1lKCk7XG4gIH1cblxuICBwcml2YXRlIHJlZnJlc2hEYXlWaWV3KCkge1xuICAgIGxldCB5ZWFyID0gdGhpcy5kYXRlcGlja2VyLmFjdGl2ZURhdGUuZ2V0RnVsbFllYXIoKTtcbiAgICBsZXQgbW9udGggPSB0aGlzLmRhdGVwaWNrZXIuYWN0aXZlRGF0ZS5nZXRNb250aCgpO1xuICAgIGxldCBmaXJzdERheU9mTW9udGggPSBuZXcgRGF0ZSh5ZWFyLCBtb250aCwgMSk7XG4gICAgbGV0IGRpZmZlcmVuY2UgPSB0aGlzLmRhdGVwaWNrZXIuc3RhcnRpbmdEYXkgLSBmaXJzdERheU9mTW9udGguZ2V0RGF5KCk7XG4gICAgbGV0IG51bURpc3BsYXllZEZyb21QcmV2aW91c01vbnRoID1cbiAgICAgIGRpZmZlcmVuY2UgPiAwID8gNyAtIGRpZmZlcmVuY2UgOiAtZGlmZmVyZW5jZTtcbiAgICBsZXQgZmlyc3REYXRlID0gbmV3IERhdGUoZmlyc3REYXlPZk1vbnRoLmdldFRpbWUoKSk7XG5cbiAgICBpZiAodGhpcy5kYXRlcGlja2VyLmFjdGl2ZURhdGUuZ2V0RGF0ZSgpICE9PSB0aGlzLmluaXRpYWxEYXRlKSB7XG4gICAgICB0aGlzLmFjdGl2ZURhdGVIYXNDaGFuZ2VkID0gdHJ1ZTtcbiAgICB9XG5cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIC8qIHNhbml0eSBjaGVjayAqL1xuICAgIGlmIChudW1EaXNwbGF5ZWRGcm9tUHJldmlvdXNNb250aCA+IDApIHtcbiAgICAgIGZpcnN0RGF0ZS5zZXREYXRlKC1udW1EaXNwbGF5ZWRGcm9tUHJldmlvdXNNb250aCArIDEpO1xuICAgIH1cblxuICAgIC8vIDQyIGlzIHRoZSBudW1iZXIgb2YgZGF5cyBvbiBhIHNpeC13ZWVrIGNhbGVuZGFyXG4gICAgbGV0IGRheXM6IERhdGVbXSA9IHRoaXMuZ2V0RGF0ZXMoZmlyc3REYXRlLCA0Mik7XG4gICAgbGV0IHBpY2tlckRhdGVzOiBBcnJheTxTa3lEYXRlcGlja2VyRGF0ZT4gPSBbXTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IDQyOyBpKyspIHtcbiAgICAgIGxldCBfZGF0ZU9iamVjdCA9IHRoaXMuZGF0ZXBpY2tlci5jcmVhdGVEYXRlT2JqZWN0KFxuICAgICAgICBkYXlzW2ldLFxuICAgICAgICB0aGlzLmRhdGVwaWNrZXIuZm9ybWF0RGF5LFxuICAgICAgICBkYXlzW2ldLmdldE1vbnRoKCkgIT09IG1vbnRoLFxuICAgICAgICB0aGlzLmRhdGVwaWNrZXIuZGF0ZXBpY2tlcklkICsgJy0nICsgaVxuICAgICAgKTtcbiAgICAgIHBpY2tlckRhdGVzW2ldID0gX2RhdGVPYmplY3Q7XG4gICAgfVxuXG4gICAgdGhpcy5sYWJlbHMgPSBbXTtcbiAgICBmb3IgKGxldCBqID0gMDsgaiA8IDc7IGorKykge1xuICAgICAgdGhpcy5sYWJlbHNbal0gPSB7fTtcbiAgICAgIHRoaXMubGFiZWxzW2pdLmFiYnIgPSB0aGlzLmRhdGVwaWNrZXIuZGF0ZUZpbHRlcihcbiAgICAgICAgcGlja2VyRGF0ZXNbal0uZGF0ZSxcbiAgICAgICAgdGhpcy5kYXRlcGlja2VyLmZvcm1hdERheUhlYWRlclxuICAgICAgKTtcbiAgICAgIHRoaXMubGFiZWxzW2pdLmZ1bGwgPSB0aGlzLmRhdGVwaWNrZXIuZGF0ZUZpbHRlcihcbiAgICAgICAgcGlja2VyRGF0ZXNbal0uZGF0ZSxcbiAgICAgICAgJ0VFRUUnXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMudGl0bGUgPSB0aGlzLmRhdGVwaWNrZXIuZGF0ZUZpbHRlcihcbiAgICAgIHRoaXMuZGF0ZXBpY2tlci5hY3RpdmVEYXRlLFxuICAgICAgdGhpcy5kYXRlcGlja2VyLmZvcm1hdERheVRpdGxlXG4gICAgKTtcblxuICAgIGNvbnN0IG9sZERhdGVSYW5nZSA9IHRoaXMuZ2V0RGF0ZVJhbmdlKHRoaXMucm93cyk7XG4gICAgdGhpcy5yb3dzID0gdGhpcy5kYXRlcGlja2VyLmNyZWF0ZUNhbGVuZGFyUm93cyhwaWNrZXJEYXRlcywgNyk7XG4gICAgY29uc3QgbmV3RGF0ZVJhbmdlID0gdGhpcy5nZXREYXRlUmFuZ2UodGhpcy5yb3dzKTtcblxuICAgIGlmICghdGhpcy5kYXRlUmFuZ2VSb3dzQXJlRXF1YWwob2xkRGF0ZVJhbmdlLCBuZXdEYXRlUmFuZ2UpKSB7XG4gICAgICB0aGlzLmNhbGVuZGFyRGF0ZVJhbmdlQ2hhbmdlLm5leHQoe1xuICAgICAgICBzdGFydERhdGU6IG5ld0RhdGVSYW5nZS5zdGFydERhdGUsXG4gICAgICAgIGVuZERhdGU6IG5ld0RhdGVSYW5nZS5lbmREYXRlLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBrZXlkb3duRGF5cyhrZXk6IHN0cmluZywgZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBsZXQgZGF0ZSA9IHRoaXMuZGF0ZXBpY2tlci5hY3RpdmVEYXRlLmdldERhdGUoKTtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIC8qIHNhbml0eSBjaGVjayAqL1xuICAgIGlmIChrZXkgPT09ICdsZWZ0Jykge1xuICAgICAgZGF0ZSA9IGRhdGUgLSAxO1xuICAgIH0gZWxzZSBpZiAoa2V5ID09PSAndXAnKSB7XG4gICAgICBkYXRlID0gZGF0ZSAtIDc7XG4gICAgfSBlbHNlIGlmIChrZXkgPT09ICdyaWdodCcpIHtcbiAgICAgIGRhdGUgPSBkYXRlICsgMTtcbiAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ2Rvd24nKSB7XG4gICAgICBkYXRlID0gZGF0ZSArIDc7XG4gICAgfSBlbHNlIGlmIChrZXkgPT09ICdwYWdldXAnIHx8IGtleSA9PT0gJ3BhZ2Vkb3duJykge1xuICAgICAgbGV0IG1vbnRoID1cbiAgICAgICAgdGhpcy5kYXRlcGlja2VyLmFjdGl2ZURhdGUuZ2V0TW9udGgoKSArIChrZXkgPT09ICdwYWdldXAnID8gLTEgOiAxKTtcbiAgICAgIHRoaXMuZGF0ZXBpY2tlci5hY3RpdmVEYXRlLnNldE1vbnRoKG1vbnRoLCAxKTtcbiAgICAgIGRhdGUgPSBNYXRoLm1pbihcbiAgICAgICAgdGhpcy5nZXREYXlzSW5Nb250aChcbiAgICAgICAgICB0aGlzLmRhdGVwaWNrZXIuYWN0aXZlRGF0ZS5nZXRGdWxsWWVhcigpLFxuICAgICAgICAgIHRoaXMuZGF0ZXBpY2tlci5hY3RpdmVEYXRlLmdldE1vbnRoKClcbiAgICAgICAgKSxcbiAgICAgICAgZGF0ZVxuICAgICAgKTtcbiAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ2hvbWUnKSB7XG4gICAgICBkYXRlID0gMTtcbiAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ2VuZCcpIHtcbiAgICAgIGRhdGUgPSB0aGlzLmdldERheXNJbk1vbnRoKFxuICAgICAgICB0aGlzLmRhdGVwaWNrZXIuYWN0aXZlRGF0ZS5nZXRGdWxsWWVhcigpLFxuICAgICAgICB0aGlzLmRhdGVwaWNrZXIuYWN0aXZlRGF0ZS5nZXRNb250aCgpXG4gICAgICApO1xuICAgIH1cbiAgICB0aGlzLmRhdGVwaWNrZXIuYWN0aXZlRGF0ZS5zZXREYXRlKGRhdGUpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXREYXlzSW5Nb250aCh5ZWFyOiBudW1iZXIsIG1vbnRoOiBudW1iZXIpIHtcbiAgICByZXR1cm4gbW9udGggPT09IDEgJiZcbiAgICAgIHllYXIgJSA0ID09PSAwICYmXG4gICAgICAoeWVhciAlIDQwMCA9PT0gMCB8fCB5ZWFyICUgMTAwICE9PSAwKVxuICAgICAgPyAyOVxuICAgICAgOiB0aGlzLmRheXNJbk1vbnRoW21vbnRoXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBcHBsaWVzIGN1c3RvbSBkYXRlIHByb3BlcnRpZXMgdG8gdGhlIGV4aXN0aW5nIGRhdGVzIGRpc3BsYXllZCBpbiB0aGUgY2FsZW5kYXIuXG4gICAqL1xuICBwcml2YXRlIGFwcGx5Q3VzdG9tRGF0ZXMoXG4gICAgY3VzdG9tRGF0ZXM6IFNreURhdGVwaWNrZXJDdXN0b21EYXRlW10sXG4gICAgZGF0ZVJvd3M6IFNreURhdGVwaWNrZXJEYXRlW11bXVxuICApOiB2b2lkIHtcbiAgICBsZXQgZGF0ZTogU2t5RGF0ZXBpY2tlckRhdGU7XG4gICAgbGV0IG5ld0RhdGU6IFNreURhdGVwaWNrZXJEYXRlO1xuICAgIGxldCBkYXRlSW5kZXg6IG51bWJlcjtcblxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKGN1c3RvbURhdGVzICYmIGRhdGVSb3dzKSB7XG4gICAgICBjdXN0b21EYXRlcy5mb3JFYWNoKChjdXN0b21EYXRlKSA9PiB7XG4gICAgICAgIGRhdGVJbmRleCA9IC0xO1xuICAgICAgICBkYXRlUm93cy5mb3JFYWNoKChyb3cpID0+IHtcbiAgICAgICAgICBpZiAoZGF0ZUluZGV4ID09PSAtMSkge1xuICAgICAgICAgICAgZGF0ZUluZGV4ID0gcm93LmZpbmRJbmRleCgoZCkgPT4ge1xuICAgICAgICAgICAgICByZXR1cm4gZC5kYXRlLmdldFRpbWUoKSA9PT0gY3VzdG9tRGF0ZS5kYXRlLmdldFRpbWUoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgaWYgKGRhdGVJbmRleCA+IC0xKSB7XG4gICAgICAgICAgICAgIGRhdGUgPSByb3dbZGF0ZUluZGV4XTtcbiAgICAgICAgICAgICAgLy8gUmVwbGFjZSB0aGUgZGF0ZSB3aXRoIGEgbmV3IGluc3RhbmNlIHNvIHRoZSBkaXNwbGF5IGdldHMgdXBkYXRlZC5cbiAgICAgICAgICAgICAgbmV3RGF0ZSA9IHtcbiAgICAgICAgICAgICAgICBjdXJyZW50OiBkYXRlLmN1cnJlbnQsXG4gICAgICAgICAgICAgICAgZGF0ZTogZGF0ZS5kYXRlLFxuICAgICAgICAgICAgICAgIGRpc2FibGVkOiAhIWRhdGUuZGlzYWJsZWQgfHwgISFjdXN0b21EYXRlLmRpc2FibGVkLFxuICAgICAgICAgICAgICAgIGtleURhdGU6ICEhY3VzdG9tRGF0ZS5rZXlEYXRlIHx8ICEhZGF0ZS5rZXlEYXRlLFxuICAgICAgICAgICAgICAgIGtleURhdGVUZXh0OiBjdXN0b21EYXRlLmtleURhdGVUZXh0IHx8IGRhdGUua2V5RGF0ZVRleHQsXG4gICAgICAgICAgICAgICAgbGFiZWw6IGRhdGUubGFiZWwsXG4gICAgICAgICAgICAgICAgc2Vjb25kYXJ5OiBkYXRlLnNlY29uZGFyeSxcbiAgICAgICAgICAgICAgICBzZWxlY3RlZDogZGF0ZS5zZWxlY3RlZCxcbiAgICAgICAgICAgICAgICB1aWQ6IGRhdGUudWlkLFxuICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICByb3dbZGF0ZUluZGV4XSA9IG5ld0RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZGF0ZVJhbmdlUm93c0FyZUVxdWFsKFxuICAgIHJhbmdlQTogU2t5RGF0ZVJhbmdlLFxuICAgIHJhbmdlQjogU2t5RGF0ZVJhbmdlXG4gICk6IGJvb2xlYW4gfCB1bmRlZmluZWQge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICAgIGlmICghcmFuZ2VBICYmICFyYW5nZUIpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gZWxzZSBpZiAoKHJhbmdlQSAmJiAhcmFuZ2VCKSB8fCAoIXJhbmdlQSAmJiByYW5nZUIpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuY29tcGFyZURheXMocmFuZ2VBLnN0YXJ0RGF0ZSwgcmFuZ2VCLnN0YXJ0RGF0ZSkgPT09IDAgJiZcbiAgICAgIHRoaXMuY29tcGFyZURheXMocmFuZ2VBLmVuZERhdGUsIHJhbmdlQi5lbmREYXRlKSA9PT0gMFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGdldERhdGVSYW5nZShcbiAgICByb3dzOiBBcnJheTxBcnJheTxTa3lEYXRlcGlja2VyRGF0ZT4+XG4gICk6IFNreURhdGVSYW5nZSB8IHVuZGVmaW5lZCB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAocm93cyAmJiByb3dzLmxlbmd0aCA+IDApIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHN0YXJ0RGF0ZTogcm93c1swXVswXS5kYXRlLFxuICAgICAgICBlbmREYXRlOiByb3dzW3Jvd3MubGVuZ3RoIC0gMV1bcm93c1tyb3dzLmxlbmd0aCAtIDFdLmxlbmd0aCAtIDFdLmRhdGUsXG4gICAgICB9O1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiAqbmdJZj1cImRhdGVwaWNrZXIuZGF0ZXBpY2tlck1vZGUgPT09ICdkYXknXCIgY2xhc3M9XCJza3ktZGF5cGlja2VyLXdyYXBwZXJcIj5cbiAgPHRhYmxlXG4gICAgY2xhc3M9XCJza3ktZGF5cGlja2VyLXRhYmxlXCJcbiAgICByb2xlPVwiZ3JpZFwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cImRhdGVwaWNrZXIuZGF0ZXBpY2tlcklkICsgJy10aXRsZSdcIlxuICA+XG4gICAgPHRoZWFkPlxuICAgICAgPHRyPlxuICAgICAgICA8dGggY2xhc3M9XCJza3ktZGF0ZXBpY2tlci1oZWFkZXItbGVmdFwiIHNjb3BlPVwiY29sXCI+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBjbGFzcz1cIlxuICAgICAgICAgICAgICBza3ktYnRuIHNreS1idG4tZGVmYXVsdCBza3ktYnRuLXNtIHNreS1kYXRlcGlja2VyLWJ0bi1wcmV2aW91c1xuICAgICAgICAgICAgXCJcbiAgICAgICAgICAgIChjbGljayk9XCJkYXRlcGlja2VyLm1vdmVDYWxlbmRhcigkZXZlbnQsIC0xKVwiXG4gICAgICAgICAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHNreS1pY29uXG4gICAgICAgICAgICAgIGNsYXNzPVwic2t5LWRhdGVwaWNrZXItY2hldnJvbi1kZWZhdWx0XCJcbiAgICAgICAgICAgICAgaWNvbj1cImNoZXZyb24tbGVmdFwiXG4gICAgICAgICAgICA+PC9za3ktaWNvbj5cbiAgICAgICAgICAgIDxza3ktaWNvblxuICAgICAgICAgICAgICBjbGFzcz1cInNreS1kYXRlcGlja2VyLWNoZXZyb24tbW9kZXJuXCJcbiAgICAgICAgICAgICAgaWNvbj1cImNoZXZyb24tbGVmdFwiXG4gICAgICAgICAgICAgIGljb25UeXBlPVwic2t5dXhcIlxuICAgICAgICAgICAgPjwvc2t5LWljb24+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvdGg+XG4gICAgICAgIDx0aCBzY29wZT1cImNvbFwiIFthdHRyLmNvbHNwYW5dPVwiNVwiPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIFtpZF09XCJkYXRlcGlja2VyLmRhdGVwaWNrZXJJZCArICctdGl0bGUnXCJcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgY2xhc3M9XCJcbiAgICAgICAgICAgICAgc2t5LWJ0biBza3ktYnRuLWRlZmF1bHQgc2t5LWJ0bi1zbSBza3ktZGF0ZXBpY2tlci1jYWxlbmRhci10aXRsZVxuICAgICAgICAgICAgXCJcbiAgICAgICAgICAgIChjbGljayk9XCJkYXRlcGlja2VyLnRvZ2dsZU1vZGVDYWxlbmRhcigkZXZlbnQpXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkYXRlcGlja2VyLmRhdGVwaWNrZXJNb2RlID09PSBkYXRlcGlja2VyLm1heE1vZGVcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAnc2t5LWJ0bi1kaXNhYmxlZCc6XG4gICAgICAgICAgICAgICAgZGF0ZXBpY2tlci5kYXRlcGlja2VyTW9kZSA9PT0gZGF0ZXBpY2tlci5tYXhNb2RlXG4gICAgICAgICAgICB9XCJcbiAgICAgICAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8c3Ryb25nPnt7IHRpdGxlIH19PC9zdHJvbmc+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvdGg+XG4gICAgICAgIDx0aCBjbGFzcz1cInNreS1kYXRlcGlja2VyLWhlYWRlci1yaWdodFwiIHNjb3BlPVwiY29sXCI+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBjbGFzcz1cInNreS1idG4gc2t5LWJ0bi1kZWZhdWx0IHNreS1idG4tc20gc2t5LWRhdGVwaWNrZXItYnRuLW5leHRcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImRhdGVwaWNrZXIubW92ZUNhbGVuZGFyKCRldmVudCwgMSlcIlxuICAgICAgICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxza3ktaWNvblxuICAgICAgICAgICAgICBjbGFzcz1cInNreS1kYXRlcGlja2VyLWNoZXZyb24tZGVmYXVsdFwiXG4gICAgICAgICAgICAgIGljb249XCJjaGV2cm9uLXJpZ2h0XCJcbiAgICAgICAgICAgID48L3NreS1pY29uPlxuICAgICAgICAgICAgPHNreS1pY29uXG4gICAgICAgICAgICAgIGNsYXNzPVwic2t5LWRhdGVwaWNrZXItY2hldnJvbi1tb2Rlcm5cIlxuICAgICAgICAgICAgICBpY29uPVwiY2hldnJvbi1yaWdodFwiXG4gICAgICAgICAgICAgIGljb25UeXBlPVwic2t5dXhcIlxuICAgICAgICAgICAgPjwvc2t5LWljb24+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvdGg+XG4gICAgICA8L3RyPlxuICAgICAgPHRyPlxuICAgICAgICA8dGhcbiAgICAgICAgICBzY29wZT1cImNvbFwiXG4gICAgICAgICAgKm5nRm9yPVwibGV0IGxhYmVsIG9mIGxhYmVsc1wiXG4gICAgICAgICAgY2xhc3M9XCJza3ktZGF0ZXBpY2tlci1jZW50ZXIgc2t5LWRhdGVwaWNrZXItd2Vla2RheXNcIlxuICAgICAgICA+XG4gICAgICAgICAgPHNtYWxsIFthdHRyLmFyaWEtbGFiZWxdPVwibGFiZWwuZnVsbFwiPlxuICAgICAgICAgICAgPGI+e3sgbGFiZWwuYWJiciB9fTwvYj5cbiAgICAgICAgICA8L3NtYWxsPlxuICAgICAgICA8L3RoPlxuICAgICAgPC90cj5cbiAgICA8L3RoZWFkPlxuICAgIDx0Ym9keT5cbiAgICAgIDwhLS0gV2FpdCBpbmRpY2F0b3IgZm9yIGFzeW5jIGN1c3RvbSBkYXRlIHN0cmVhbSAtLT5cbiAgICAgIDxza3ktd2FpdCBbaXNXYWl0aW5nXT1cImlzV2FpdGluZ1wiPiA8L3NreS13YWl0PlxuICAgICAgPG5nLXRlbXBsYXRlIG5nRm9yIFtuZ0Zvck9mXT1cInJvd3NcIiBsZXQtcm93PVwiJGltcGxpY2l0XCIgbGV0LWluZGV4PVwiaW5kZXhcIj5cbiAgICAgICAgPHRyIHJvbGU9XCJyb3dcIj5cbiAgICAgICAgICA8dGRcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBkYXRlIG9mIHJvd1wiXG4gICAgICAgICAgICBjbGFzcz1cInNreS1kYXRlcGlja2VyLWNlbnRlclwiXG4gICAgICAgICAgICByb2xlPVwiZ3JpZGNlbGxcIlxuICAgICAgICAgICAgW2lkXT1cImRhdGUudWlkXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8c2t5LWRheXBpY2tlci1jZWxsXG4gICAgICAgICAgICAgIFthY3RpdmVEYXRlSGFzQ2hhbmdlZF09XCJhY3RpdmVEYXRlSGFzQ2hhbmdlZFwiXG4gICAgICAgICAgICAgIFtkYXRlXT1cImRhdGVcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9za3ktZGF5cGlja2VyLWNlbGw+XG4gICAgICAgICAgPC90ZD5cbiAgICAgICAgPC90cj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC90Ym9keT5cbiAgPC90YWJsZT5cbjwvZGl2PlxuIl19
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnV6enktZGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGV0aW1lL3NyYy9tb2R1bGVzL2RhdGVwaWNrZXIvZnV6enktZGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBTa3lGdXp6eURhdGUge1xuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSBkYXkgaW4gYSBmdXp6eSBkYXRlLCB3aGVyZSBgMWAgc2V0cyB0aGUgZGF5XG4gICAqIHRvIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHNwZWNpZmllZCBtb250aC5cbiAgICovXG4gIGRheT86IG51bWJlcjtcblxuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSBtb250aCBpbiBhIGZ1enp5IGRhdGUsIHdoZXJlIGAxYCBzZXRzIHRoZSBtb250aCB0byBKYW51YXJ5LlxuICAgKi9cbiAgbW9udGg/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgeWVhciBpbiBhIGZ1enp5IGRhdGUuXG4gICAqL1xuICB5ZWFyPzogbnVtYmVyO1xufVxuIl19