@acorex/components 7.1.10 → 7.1.12

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 (248) hide show
  1. package/breadcrumbs/src/breadcrumbs-item.component.d.ts +6 -6
  2. package/button/src/button-group.component.d.ts +6 -6
  3. package/button/src/button-item.component.d.ts +6 -6
  4. package/calendar/src/calendar.class.d.ts +19 -38
  5. package/calendar/src/calendar.component.d.ts +9 -7
  6. package/chips/src/chips.component.d.ts +6 -6
  7. package/color-picker/src/color-picker.component.d.ts +16 -16
  8. package/esm2022/action-sheet/src/action-sheet.component.mjs +3 -3
  9. package/esm2022/action-sheet/src/action-sheet.module.mjs +4 -4
  10. package/esm2022/action-sheet/src/action-sheet.service.mjs +3 -3
  11. package/esm2022/alert/src/alert.component.mjs +3 -3
  12. package/esm2022/alert/src/alert.module.mjs +4 -4
  13. package/esm2022/avatar/src/avatar-group.component.mjs +3 -3
  14. package/esm2022/avatar/src/avatar.component.mjs +3 -3
  15. package/esm2022/avatar/src/avatar.module.mjs +4 -4
  16. package/esm2022/badge/src/badge.component.mjs +3 -3
  17. package/esm2022/badge/src/badge.module.mjs +4 -4
  18. package/esm2022/breadcrumbs/src/breadcrumbs-item.component.mjs +3 -3
  19. package/esm2022/breadcrumbs/src/breadcrumbs.component.mjs +3 -3
  20. package/esm2022/breadcrumbs/src/breadcrumbs.module.mjs +4 -4
  21. package/esm2022/button/src/button-group.component.mjs +3 -3
  22. package/esm2022/button/src/button-item.component.mjs +3 -3
  23. package/esm2022/button/src/button.component.mjs +3 -3
  24. package/esm2022/button/src/button.module.mjs +4 -4
  25. package/esm2022/calendar/src/calendar-range.component.mjs +16 -16
  26. package/esm2022/calendar/src/calendar.class.mjs +66 -117
  27. package/esm2022/calendar/src/calendar.component.mjs +209 -160
  28. package/esm2022/calendar/src/calendar.module.mjs +4 -4
  29. package/esm2022/card/src/card.component.mjs +3 -3
  30. package/esm2022/card/src/card.module.mjs +4 -4
  31. package/esm2022/checkbox/src/checkbox.component.mjs +3 -3
  32. package/esm2022/checkbox/src/checkbox.module.mjs +4 -4
  33. package/esm2022/chips/src/chips.component.mjs +3 -3
  34. package/esm2022/chips/src/chips.module.mjs +4 -4
  35. package/esm2022/collapse/src/collapse-group.component.mjs +3 -3
  36. package/esm2022/collapse/src/collapse.component.mjs +3 -3
  37. package/esm2022/collapse/src/collapse.module.mjs +4 -4
  38. package/esm2022/color-palette/src/color-palette-input.component.mjs +3 -3
  39. package/esm2022/color-palette/src/color-palette-picker.component.mjs +3 -3
  40. package/esm2022/color-palette/src/color-palette-preview.component.mjs +3 -3
  41. package/esm2022/color-palette/src/color-palette-swatches.component.mjs +3 -3
  42. package/esm2022/color-palette/src/color-palette.class.mjs +6 -6
  43. package/esm2022/color-palette/src/color-palette.component.mjs +3 -3
  44. package/esm2022/color-palette/src/color-palette.module.mjs +4 -4
  45. package/esm2022/color-picker/src/color-picker.component.mjs +3 -3
  46. package/esm2022/color-picker/src/color-picker.module.mjs +4 -4
  47. package/esm2022/common/src/classes/components.class.mjs +18 -18
  48. package/esm2022/common/src/common.module.mjs +4 -4
  49. package/esm2022/common/src/components/base-component.class.mjs +3 -3
  50. package/esm2022/common/src/components/value-component.class.mjs +5 -4
  51. package/esm2022/common/src/directives/auto-focus.directive.mjs +3 -3
  52. package/esm2022/common/src/directives/debounce-time.directive.mjs +3 -3
  53. package/esm2022/common/src/directives/hotkey.directive.mjs +3 -3
  54. package/esm2022/common/src/directives/infinite-scroll.directive.mjs +3 -3
  55. package/esm2022/common/src/directives/responsive.directive.mjs +3 -3
  56. package/esm2022/common/src/services/custom-cdk-overlay.service.mjs +6 -6
  57. package/esm2022/common/src/services/hotkey.service.mjs +3 -3
  58. package/esm2022/common/src/services/overlay.service.mjs +3 -3
  59. package/esm2022/context-menu/src/context-menu.component.mjs +3 -3
  60. package/esm2022/context-menu/src/context-menu.module.mjs +4 -4
  61. package/esm2022/data-pager/src/data-pager-base.component.mjs +6 -6
  62. package/esm2022/data-pager/src/data-pager-info.component.mjs +3 -3
  63. package/esm2022/data-pager/src/data-pager-input-selector.component.mjs +3 -3
  64. package/esm2022/data-pager/src/data-pager-next-buttons.components.mjs +3 -3
  65. package/esm2022/data-pager/src/data-pager-numeric-selector.component.mjs +3 -3
  66. package/esm2022/data-pager/src/data-pager-pagesize-dropdown.component.mjs +3 -3
  67. package/esm2022/data-pager/src/data-pager-prev-buttons.component.mjs +3 -3
  68. package/esm2022/data-pager/src/data-pager.component.mjs +3 -3
  69. package/esm2022/data-pager/src/data-pager.module.mjs +4 -4
  70. package/esm2022/data-table/src/data-column-cell-template.directive.mjs +3 -3
  71. package/esm2022/data-table/src/data-column.directive.mjs +3 -3
  72. package/esm2022/data-table/src/data-table.component.mjs +3 -3
  73. package/esm2022/data-table/src/data-table.module.mjs +4 -4
  74. package/esm2022/date-picker/src/datepicker.component.mjs +3 -3
  75. package/esm2022/date-picker/src/datepicker.module.mjs +4 -4
  76. package/esm2022/decorators/src/close-button.component.mjs +3 -3
  77. package/esm2022/decorators/src/content.component.mjs +3 -3
  78. package/esm2022/decorators/src/decorators.module.mjs +4 -4
  79. package/esm2022/decorators/src/footer.component.mjs +3 -3
  80. package/esm2022/decorators/src/form-hint.component.mjs +3 -3
  81. package/esm2022/decorators/src/header.component.mjs +3 -3
  82. package/esm2022/decorators/src/icon.component.mjs +3 -3
  83. package/esm2022/decorators/src/overlay.component.mjs +3 -3
  84. package/esm2022/decorators/src/placeholder.component.mjs +3 -3
  85. package/esm2022/decorators/src/prefix.component.mjs +3 -3
  86. package/esm2022/decorators/src/sub-title.component.mjs +3 -3
  87. package/esm2022/decorators/src/suffix.component.mjs +3 -3
  88. package/esm2022/decorators/src/text.component.mjs +3 -3
  89. package/esm2022/decorators/src/title.component.mjs +3 -3
  90. package/esm2022/dialog/src/dialog.component.mjs +3 -3
  91. package/esm2022/dialog/src/dialog.module.mjs +4 -4
  92. package/esm2022/dialog/src/dialog.service.mjs +3 -3
  93. package/esm2022/drawer/src/drawer-container.component.mjs +3 -3
  94. package/esm2022/drawer/src/drawer.component.mjs +3 -3
  95. package/esm2022/drawer/src/drawer.module.mjs +4 -4
  96. package/esm2022/dropdown/src/dropdown-panel.component.mjs +3 -3
  97. package/esm2022/dropdown/src/dropdown.module.mjs +4 -4
  98. package/esm2022/form/src/form-field.component.mjs +3 -3
  99. package/esm2022/form/src/form.component.mjs +3 -3
  100. package/esm2022/form/src/form.module.mjs +4 -4
  101. package/esm2022/form/src/validation-rule.widget.mjs +3 -3
  102. package/esm2022/form/src/validation-summary.component.mjs +3 -3
  103. package/esm2022/image/src/image.component.mjs +3 -3
  104. package/esm2022/image/src/image.module.mjs +4 -4
  105. package/esm2022/label/src/label.component.mjs +3 -3
  106. package/esm2022/label/src/label.module.mjs +4 -4
  107. package/esm2022/loading/src/loading-spinner.component.mjs +3 -3
  108. package/esm2022/loading/src/loading.component.mjs +3 -3
  109. package/esm2022/loading/src/loading.directive.mjs +3 -3
  110. package/esm2022/loading/src/loading.module.mjs +4 -4
  111. package/esm2022/loading/src/loading.service.mjs +3 -3
  112. package/esm2022/menu/src/menu.component.mjs +3 -3
  113. package/esm2022/menu/src/menu.module.mjs +4 -4
  114. package/esm2022/mixin/src/base-components.class.mjs +3 -3
  115. package/esm2022/notification/src/notification.component.mjs +3 -3
  116. package/esm2022/notification/src/notification.module.mjs +4 -4
  117. package/esm2022/notification/src/notification.service.mjs +3 -3
  118. package/esm2022/number-box/src/number-box.component.mjs +3 -3
  119. package/esm2022/number-box/src/number-box.module.mjs +4 -4
  120. package/esm2022/page/src/base-page.class.mjs +3 -3
  121. package/esm2022/page/src/page.component.mjs +3 -3
  122. package/esm2022/page/src/page.module.mjs +4 -4
  123. package/esm2022/password-box/src/password-box.component.mjs +3 -3
  124. package/esm2022/password-box/src/password-box.module.mjs +4 -4
  125. package/esm2022/picker/src/picker-column.component.mjs +3 -3
  126. package/esm2022/picker/src/picker.component.mjs +3 -3
  127. package/esm2022/picker/src/picker.module.mjs +4 -4
  128. package/esm2022/popover/src/dropdown-component.class.mjs +3 -3
  129. package/esm2022/popover/src/popover.component.mjs +3 -3
  130. package/esm2022/popover/src/popover.module.mjs +4 -4
  131. package/esm2022/popup/src/popup.component.mjs +3 -3
  132. package/esm2022/popup/src/popup.module.mjs +4 -4
  133. package/esm2022/popup/src/popup.service.mjs +3 -3
  134. package/esm2022/progress-bar/src/progress-bar.component.mjs +3 -3
  135. package/esm2022/progress-bar/src/progress-bar.module.mjs +4 -4
  136. package/esm2022/radio/src/radio.component.mjs +3 -3
  137. package/esm2022/radio/src/radio.module.mjs +4 -4
  138. package/esm2022/range-slider/src/range-slider.component.mjs +3 -3
  139. package/esm2022/range-slider/src/range-slider.module.mjs +4 -4
  140. package/esm2022/rating/src/rating.component.mjs +3 -3
  141. package/esm2022/rating/src/rating.component.module.mjs +4 -4
  142. package/esm2022/result/src/result.component.mjs +3 -3
  143. package/esm2022/result/src/result.module.mjs +4 -4
  144. package/esm2022/search-box/src/search-box.component.mjs +3 -3
  145. package/esm2022/search-box/src/search-box.module.mjs +4 -4
  146. package/esm2022/select-box/src/selectbox.component.mjs +3 -3
  147. package/esm2022/select-box/src/selectbox.module.mjs +4 -4
  148. package/esm2022/selection-list/src/selection-list.component.mjs +3 -3
  149. package/esm2022/selection-list/src/selection-list.module.mjs +4 -4
  150. package/esm2022/switch/src/switch-content.component.mjs +3 -3
  151. package/esm2022/switch/src/switch.component.mjs +3 -3
  152. package/esm2022/switch/src/switch.module.mjs +4 -4
  153. package/esm2022/tabs/src/tab-content.directive.mjs +3 -3
  154. package/esm2022/tabs/src/tab-item.component.mjs +3 -3
  155. package/esm2022/tabs/src/tabs.component.mjs +3 -3
  156. package/esm2022/tabs/src/tabs.module.mjs +4 -4
  157. package/esm2022/tag/src/tag.component.mjs +3 -3
  158. package/esm2022/tag/src/tag.module.mjs +4 -4
  159. package/esm2022/textarea/src/textarea.component.mjs +3 -3
  160. package/esm2022/textarea/src/textarea.module.mjs +4 -4
  161. package/esm2022/textbox/src/mask-options.directive.mjs +3 -3
  162. package/esm2022/textbox/src/textbox.component.mjs +3 -3
  163. package/esm2022/textbox/src/textbox.module.mjs +4 -4
  164. package/esm2022/time-box/src/time-box.component.mjs +3 -3
  165. package/esm2022/time-box/src/time-box.module.mjs +4 -4
  166. package/esm2022/toast/src/toast.component.mjs +3 -3
  167. package/esm2022/toast/src/toast.module.mjs +4 -4
  168. package/esm2022/toast/src/toast.service.mjs +3 -3
  169. package/esm2022/tooltip/src/tooltip.component.mjs +3 -3
  170. package/esm2022/tooltip/src/tooltip.directive.mjs +3 -3
  171. package/esm2022/tooltip/src/tooltip.module.mjs +4 -4
  172. package/esm2022/tree-view/src/tree-view.component.mjs +3 -3
  173. package/esm2022/tree-view/src/tree-view.module.mjs +4 -4
  174. package/esm2022/uploader/src/uploader.component.mjs +3 -3
  175. package/esm2022/uploader/src/uploader.module.mjs +4 -4
  176. package/fesm2022/acorex-components-action-sheet.mjs +10 -10
  177. package/fesm2022/acorex-components-alert.mjs +7 -7
  178. package/fesm2022/acorex-components-avatar.mjs +10 -10
  179. package/fesm2022/acorex-components-badge.mjs +7 -7
  180. package/fesm2022/acorex-components-breadcrumbs.mjs +10 -10
  181. package/fesm2022/acorex-components-button.mjs +13 -13
  182. package/fesm2022/acorex-components-calendar.mjs +292 -293
  183. package/fesm2022/acorex-components-calendar.mjs.map +1 -1
  184. package/fesm2022/acorex-components-card.mjs +7 -7
  185. package/fesm2022/acorex-components-checkbox.mjs +7 -7
  186. package/fesm2022/acorex-components-chips.mjs +7 -7
  187. package/fesm2022/acorex-components-collapse.mjs +10 -10
  188. package/fesm2022/acorex-components-color-palette.mjs +25 -25
  189. package/fesm2022/acorex-components-color-picker.mjs +7 -7
  190. package/fesm2022/acorex-components-common.mjs +56 -55
  191. package/fesm2022/acorex-components-common.mjs.map +1 -1
  192. package/fesm2022/acorex-components-context-menu.mjs +7 -7
  193. package/fesm2022/acorex-components-data-pager.mjs +31 -31
  194. package/fesm2022/acorex-components-data-table.mjs +13 -13
  195. package/fesm2022/acorex-components-date-picker.mjs +7 -7
  196. package/fesm2022/acorex-components-date-picker.mjs.map +1 -1
  197. package/fesm2022/acorex-components-decorators.mjs +43 -43
  198. package/fesm2022/acorex-components-dialog.mjs +10 -10
  199. package/fesm2022/acorex-components-drawer.mjs +10 -10
  200. package/fesm2022/acorex-components-dropdown.mjs +7 -7
  201. package/fesm2022/acorex-components-form.mjs +16 -16
  202. package/fesm2022/acorex-components-image.mjs +7 -7
  203. package/fesm2022/acorex-components-label.mjs +7 -7
  204. package/fesm2022/acorex-components-loading.mjs +16 -16
  205. package/fesm2022/acorex-components-menu.mjs +7 -7
  206. package/fesm2022/acorex-components-mixin.mjs +3 -3
  207. package/fesm2022/acorex-components-notification.mjs +10 -10
  208. package/fesm2022/acorex-components-number-box.mjs +7 -7
  209. package/fesm2022/acorex-components-page.mjs +10 -10
  210. package/fesm2022/acorex-components-password-box.mjs +7 -7
  211. package/fesm2022/acorex-components-picker.mjs +10 -10
  212. package/fesm2022/acorex-components-popover.mjs +10 -10
  213. package/fesm2022/acorex-components-popup.mjs +10 -10
  214. package/fesm2022/acorex-components-progress-bar.mjs +7 -7
  215. package/fesm2022/acorex-components-radio.mjs +7 -7
  216. package/fesm2022/acorex-components-range-slider.mjs +7 -7
  217. package/fesm2022/acorex-components-rating.mjs +7 -7
  218. package/fesm2022/acorex-components-result.mjs +7 -7
  219. package/fesm2022/acorex-components-search-box.mjs +7 -7
  220. package/fesm2022/acorex-components-select-box.mjs +7 -7
  221. package/fesm2022/acorex-components-selection-list.mjs +7 -7
  222. package/fesm2022/acorex-components-switch.mjs +10 -10
  223. package/fesm2022/acorex-components-tabs.mjs +13 -13
  224. package/fesm2022/acorex-components-tag.mjs +7 -7
  225. package/fesm2022/acorex-components-textarea.mjs +7 -7
  226. package/fesm2022/acorex-components-textbox.mjs +10 -10
  227. package/fesm2022/acorex-components-time-box.mjs +7 -7
  228. package/fesm2022/acorex-components-toast.mjs +10 -10
  229. package/fesm2022/acorex-components-tooltip.mjs +10 -10
  230. package/fesm2022/acorex-components-tree-view.mjs +7 -7
  231. package/fesm2022/acorex-components-uploader.mjs +7 -7
  232. package/mixin/src/base-components.class.d.ts +2 -2
  233. package/mixin/src/base-menu-mixin.class.d.ts +5 -5
  234. package/mixin/src/button-mixin.class.d.ts +2 -2
  235. package/mixin/src/clickable-mixin.class.d.ts +2 -2
  236. package/mixin/src/color-look-mixing.class.d.ts +2 -2
  237. package/mixin/src/datalist-component.class.d.ts +10 -10
  238. package/mixin/src/dropdown-mixin.class.d.ts +2 -2
  239. package/mixin/src/interactive-mixin.class.d.ts +4 -4
  240. package/mixin/src/loading-mixin.class.d.ts +2 -2
  241. package/mixin/src/mixin.class.d.ts +61 -61
  242. package/mixin/src/page-component.class.d.ts +2 -2
  243. package/mixin/src/selection-component.class.d.ts +2 -2
  244. package/mixin/src/sizable-mixin.class.d.ts +2 -2
  245. package/mixin/src/textbox-mixin.class.d.ts +2 -2
  246. package/mixin/src/value-mixin.class.d.ts +8 -8
  247. package/package.json +4 -4
  248. package/tabs/src/tab-item.component.d.ts +2 -2
@@ -1,7 +1,6 @@
1
1
  import { AXConfig } from "@acorex/core/config";
2
2
  import { EventEmitter, Injectable, Input, Output } from "@angular/core";
3
3
  import { AXItemClickEvent, AXRangeChangedEvent, MXBaseComponent } from "@acorex/components/common";
4
- import { AXBaseComponent } from "@acorex/components/mixin";
5
4
  import { classes } from "polytype";
6
5
  import * as i0 from "@angular/core";
7
6
  /**
@@ -16,15 +15,73 @@ export class AXCalendarNavigateEvent extends AXRangeChangedEvent {
16
15
  */
17
16
  export class AXCalendarSlotClick extends AXItemClickEvent {
18
17
  }
18
+ // export class AXCalendarView {
19
+ // private _range: AXDateTimeRange;
20
+ // private _slots: AXCalendarViewSlot[] = [];
21
+ // get range(): AXDateTimeRange {
22
+ // return this.range;
23
+ // }
24
+ // get slots(): AXCalendarViewSlot[] {
25
+ // return this._slots;
26
+ // }
27
+ // constructor(
28
+ // private readonly startDate: AXDateTime,
29
+ // private readonly view: AXCalendarViewType
30
+ // ) {
31
+ // const current = this.startDate;
32
+ // let textFormat = 'YYYY';
33
+ // let tooltipFormat = 'YYYY';
34
+ // switch (this.view) {
35
+ // case 'year':
36
+ // let y = current.startOf('year').year;
37
+ // let min = y - (y % 10);
38
+ // let max = min + 9;
39
+ // this._range = new AXDateTimeRange(
40
+ // AXDateTime.from({
41
+ // year: min,
42
+ // month: 1,
43
+ // date: 1,
44
+ // calendar: this.startDate.calendar.name(),
45
+ // }),
46
+ // AXDateTime.from({
47
+ // year: max,
48
+ // month: 12,
49
+ // date: 28,
50
+ // calendar: this.startDate.calendar.name(),
51
+ // })
52
+ // );
53
+ // break;
54
+ // case 'month':
55
+ // textFormat = 'MMM';
56
+ // tooltipFormat = 'MMMM YYYY';
57
+ // this._range = new AXDateTimeRange(
58
+ // current.startOf('year'),
59
+ // current.endOf('year').add('day', -1)
60
+ // );
61
+ // break;
62
+ // default:
63
+ // this._range = new AXDateTimeRange(
64
+ // current.startOf('month'),
65
+ // current.endOf('month')
66
+ // );
67
+ // }
68
+ // //
69
+ // this._slots = this.range.enumurate(view).map(r => ({
70
+ // date: r.date,
71
+ // tooltip: r.format()
72
+ // }));
73
+ // }
74
+ // }
19
75
  class MXCalendarBaseComponent extends classes(MXBaseComponent) {
20
76
  interface = 'calendar';
21
77
  cellTemplate;
22
78
  cellClass;
23
79
  showNavigation = true;
80
+ count = 1;
24
81
  onSlotClick = new EventEmitter();
25
82
  onNavigate = new EventEmitter();
26
83
  activeViewChange = new EventEmitter();
27
- _activeView = 'days';
84
+ _activeView = 'day';
28
85
  get activeView() {
29
86
  return this._activeView;
30
87
  }
@@ -52,7 +109,7 @@ class MXCalendarBaseComponent extends classes(MXBaseComponent) {
52
109
  });
53
110
  }
54
111
  depthChange = new EventEmitter();
55
- _depth = 'days';
112
+ _depth = 'day';
56
113
  get depth() {
57
114
  return this._depth;
58
115
  }
@@ -112,11 +169,11 @@ class MXCalendarBaseComponent extends classes(MXBaseComponent) {
112
169
  set holidayDates(v) {
113
170
  this.setOption({ name: 'holidayDates', value: v });
114
171
  }
115
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: MXCalendarBaseComponent, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
116
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: MXCalendarBaseComponent });
172
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: MXCalendarBaseComponent, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
173
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: MXCalendarBaseComponent });
117
174
  }
118
175
  export { MXCalendarBaseComponent };
119
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: MXCalendarBaseComponent, decorators: [{
176
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: MXCalendarBaseComponent, decorators: [{
120
177
  type: Injectable
121
178
  }], propDecorators: { interface: [{
122
179
  type: Input
@@ -126,117 +183,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImpor
126
183
  type: Input
127
184
  }], showNavigation: [{
128
185
  type: Input
129
- }], onSlotClick: [{
130
- type: Output
131
- }], onNavigate: [{
132
- type: Output
133
- }], activeViewChange: [{
134
- type: Output
135
- }], activeView: [{
136
- type: Input
137
- }], typeChange: [{
138
- type: Output
139
- }], type: [{
140
- type: Input
141
- }], depthChange: [{
142
- type: Output
143
- }], depth: [{
144
- type: Input
145
- }], minChange: [{
146
- type: Output
147
- }], min: [{
148
- type: Input
149
- }], maxChange: [{
150
- type: Output
151
- }], max: [{
186
+ }], count: [{
152
187
  type: Input
153
- }], disabledDatesChange: [{
154
- type: Output
155
- }], disabledDates: [{
156
- type: Input
157
- }], holidayDatesChange: [{
158
- type: Output
159
- }], holidayDates: [{
160
- type: Input
161
- }] } });
162
- class AXCalendarBaseComponent extends AXBaseComponent {
163
- constructor(elementRef, cdr) {
164
- super(elementRef, cdr);
165
- }
166
- onSlotClick = new EventEmitter();
167
- onNavigate = new EventEmitter();
168
- activeViewChange = new EventEmitter();
169
- _activeView = 'days';
170
- get activeView() {
171
- return this._activeView;
172
- }
173
- set activeView(v) {
174
- this._setOption({ name: 'activeView', value: v });
175
- }
176
- typeChange = new EventEmitter();
177
- _type = AXConfig.get(`dateTime.calendar`);
178
- get type() {
179
- return this._type || AXConfig.get(`dateTime.calendar`);
180
- }
181
- set type(v) {
182
- this._setOption({
183
- name: 'type',
184
- value: v
185
- });
186
- }
187
- depthChange = new EventEmitter();
188
- _depth = 'days';
189
- get depth() {
190
- return this._depth;
191
- }
192
- set depth(v) {
193
- this._setOption({
194
- name: 'depth',
195
- value: v,
196
- beforeCallback: () => {
197
- this._activeView = v;
198
- }
199
- });
200
- }
201
- minChange = new EventEmitter();
202
- _min;
203
- get min() {
204
- return this._min;
205
- }
206
- set min(v) {
207
- this._setOption({ name: 'min', value: v });
208
- }
209
- maxChange = new EventEmitter();
210
- _max;
211
- get max() {
212
- return this._max;
213
- }
214
- set max(v) {
215
- this._setOption({ name: 'max', value: v });
216
- }
217
- disabledDatesChange = new EventEmitter();
218
- _disabledDates;
219
- get disabledDates() {
220
- return this._disabledDates;
221
- }
222
- set disabledDates(v) {
223
- this._setOption({ name: 'disabledDates', value: v });
224
- }
225
- holidayDatesChange = new EventEmitter();
226
- _holidayDates;
227
- get holidayDates() {
228
- return this._holidayDates;
229
- }
230
- set holidayDates(v) {
231
- this._setOption({ name: 'holidayDates', value: v });
232
- }
233
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: AXCalendarBaseComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Injectable });
234
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: AXCalendarBaseComponent });
235
- }
236
- export { AXCalendarBaseComponent };
237
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: AXCalendarBaseComponent, decorators: [{
238
- type: Injectable
239
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { onSlotClick: [{
188
+ }], onSlotClick: [{
240
189
  type: Output
241
190
  }], onNavigate: [{
242
191
  type: Output
@@ -279,4 +228,4 @@ export const CALENDAR_INPUTS = [
279
228
  'holidayDates',
280
229
  ];
281
230
  export const CALENDAR_OUTPUTS = ['depthChange', 'typeChange', 'disabledDatesChange', 'holidayDatesChange', 'onNavigate'];
282
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29tcG9uZW50cy9jYWxlbmRhci9zcmMvY2FsZW5kYXIuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQy9DLE9BQU8sRUFBaUMsWUFBWSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBQ3BILE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxtQkFBbUIsRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNuRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFVBQVUsQ0FBQzs7QUFTbkM7OztFQUdFO0FBQ0YsTUFBTSxPQUFPLHVCQUF3QixTQUFRLG1CQUF5QjtDQUVyRTtBQUVEOzs7RUFHRTtBQUNGLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxnQkFBc0I7Q0FFOUQ7QUFFRCxNQUNhLHVCQUF3QixTQUFRLE9BQU8sQ0FBQyxlQUFlLENBQUM7SUFHakUsU0FBUyxHQUEwQixVQUFVLENBQUM7SUFHOUMsWUFBWSxDQUFvQjtJQUdoQyxTQUFTLENBQTBCO0lBR25DLGNBQWMsR0FBWSxJQUFJLENBQUM7SUFJL0IsV0FBVyxHQUFzQyxJQUFJLFlBQVksRUFBdUIsQ0FBQztJQUd6RixVQUFVLEdBQTBDLElBQUksWUFBWSxFQUEyQixDQUFDO0lBR2hHLGdCQUFnQixHQUFxQyxJQUFJLFlBQVksRUFBc0IsQ0FBQztJQUVwRixXQUFXLEdBQXVCLE1BQU0sQ0FBQztJQUNqRCxJQUNXLFVBQVU7UUFDakIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzVCLENBQUM7SUFDRCxJQUFXLFVBQVUsQ0FBQyxDQUFxQjtRQUN2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QkFBdUI7O1NBQXZCLHVCQUF1QjsyRkFBdkIsdUJBQXVCO2tCQURuQyxVQUFVO2lJQVNQLFdBQVc7c0JBRFYsTUFBTTtnQkFJUCxVQUFVO3NCQURULE1BQU07Z0JBSVAsZ0JBQWdCO3NCQURmLE1BQU07Z0JBS0ksVUFBVTtzQkFEcEIsS0FBSztnQkFVQyxVQUFVO3NCQURoQixNQUFNO2dCQU1JLElBQUk7c0JBRGQsS0FBSztnQkFhTixXQUFXO3NCQURWLE1BQU07Z0JBS0ksS0FBSztzQkFEZixLQUFLO2dCQWVOLFNBQVM7c0JBRFIsTUFBTTtnQkFLSSxHQUFHO3NCQURiLEtBQUs7Z0JBVU4sU0FBUztzQkFEUixNQUFNO2dCQUtJLEdBQUc7c0JBRGIsS0FBSztnQkFTTixtQkFBbUI7c0JBRGxCLE1BQU07Z0JBS0ksYUFBYTtzQkFEdkIsS0FBSztnQkFTTixrQkFBa0I7c0JBRGpCLE1BQU07Z0JBS0ksWUFBWTtzQkFEdEIsS0FBSzs7QUFXVixNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUc7SUFDM0IsT0FBTztJQUNQLFlBQVk7SUFDWixLQUFLO0lBQ0wsS0FBSztJQUNMLGVBQWU7SUFDZixNQUFNO0lBQ04sY0FBYztDQUNqQixDQUFDO0FBQ0YsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxhQUFhLEVBQUUsWUFBWSxFQUFFLHFCQUFxQixFQUFFLG9CQUFvQixFQUFFLFlBQVksQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhDb25maWcgfSBmcm9tIFwiQGFjb3JleC9jb3JlL2NvbmZpZ1wiO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5qZWN0YWJsZSwgSW5wdXQsIE91dHB1dCwgVGVtcGxhdGVSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQVhJdGVtQ2xpY2tFdmVudCwgQVhSYW5nZUNoYW5nZWRFdmVudCwgTVhCYXNlQ29tcG9uZW50IH0gZnJvbSBcIkBhY29yZXgvY29tcG9uZW50cy9jb21tb25cIjtcbmltcG9ydCB7IEFYQmFzZUNvbXBvbmVudCB9IGZyb20gXCJAYWNvcmV4L2NvbXBvbmVudHMvbWl4aW5cIjtcbmltcG9ydCB7IGNsYXNzZXMgfSBmcm9tIFwicG9seXR5cGVcIjtcblxuZXhwb3J0IHR5cGUgQVhDYWxlbmRhclZpZXdUeXBlID0gJ3llYXJzJyB8ICdtb250aHMnIHwgJ2RheXMnO1xuZXhwb3J0IHR5cGUgQVhDYWxlbmRhclZpZXdEZXB0aCA9IEFYQ2FsZW5kYXJWaWV3VHlwZTtcbmV4cG9ydCB0eXBlIEFYQ2FsZW5kYXJEaXNhYmxlZERhdGVzID0gRGF0ZVtdIHwgKChkYXRlOiBEYXRlKSA9PiBib29sZWFuKTtcbmV4cG9ydCB0eXBlIEFYQ2FsZW5kYXJIb2xpZGF5RGF0ZXMgPSBEYXRlW10gfCAoKGRhdGU6IERhdGUpID0+IGJvb2xlYW4pO1xuZXhwb3J0IHR5cGUgQVhDYWxlbmRhckNlbGxDc3NDbGFzcyA9IHN0cmluZyB8IHsgW2tleTogc3RyaW5nXTogYm9vbGVhbiB9IHwgKChkYXRlOiBEYXRlKSA9PiBzdHJpbmcpO1xuXG5cbi8qKlxuKiAgQ29udGFpbnMgbmF0aXZlIGV2ZW50XG4qIEBjYXRlZ29yeSBFdmVudHNcbiovXG5leHBvcnQgY2xhc3MgQVhDYWxlbmRhck5hdmlnYXRlRXZlbnQgZXh0ZW5kcyBBWFJhbmdlQ2hhbmdlZEV2ZW50PERhdGU+IHtcblxufVxuXG4vKipcbiogIENvbnRhaW5zIG5hdGl2ZSBldmVudFxuKiBAY2F0ZWdvcnkgRXZlbnRzXG4qL1xuZXhwb3J0IGNsYXNzIEFYQ2FsZW5kYXJTbG90Q2xpY2sgZXh0ZW5kcyBBWEl0ZW1DbGlja0V2ZW50PERhdGU+IHtcblxufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTVhDYWxlbmRhckJhc2VDb21wb25lbnQgZXh0ZW5kcyBjbGFzc2VzKE1YQmFzZUNvbXBvbmVudCkge1xuXG4gICAgQElucHV0KClcbiAgICBpbnRlcmZhY2U6ICdjYWxlbmRhcicgfCAncGlja2VyJyA9ICdjYWxlbmRhcic7XG5cbiAgICBASW5wdXQoKVxuICAgIGNlbGxUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBASW5wdXQoKVxuICAgIGNlbGxDbGFzcz86IEFYQ2FsZW5kYXJDZWxsQ3NzQ2xhc3M7XG5cbiAgICBASW5wdXQoKVxuICAgIHNob3dOYXZpZ2F0aW9uOiBib29sZWFuID0gdHJ1ZTtcblxuXG4gICAgQE91dHB1dCgpXG4gICAgb25TbG90Q2xpY2s6IEV2ZW50RW1pdHRlcjxBWENhbGVuZGFyU2xvdENsaWNrPiA9IG5ldyBFdmVudEVtaXR0ZXI8QVhDYWxlbmRhclNsb3RDbGljaz4oKTtcblxuICAgIEBPdXRwdXQoKVxuICAgIG9uTmF2aWdhdGU6IEV2ZW50RW1pdHRlcjxBWENhbGVuZGFyTmF2aWdhdGVFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEFYQ2FsZW5kYXJOYXZpZ2F0ZUV2ZW50PigpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgYWN0aXZlVmlld0NoYW5nZTogRXZlbnRFbWl0dGVyPEFYQ2FsZW5kYXJWaWV3VHlwZT4gPSBuZXcgRXZlbnRFbWl0dGVyPEFYQ2FsZW5kYXJWaWV3VHlwZT4oKTtcblxuICAgIHByaXZhdGUgX2FjdGl2ZVZpZXc6IEFYQ2FsZW5kYXJWaWV3VHlwZSA9ICdkYXlzJztcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBnZXQgYWN0aXZlVmlldygpOiBBWENhbGVuZGFyVmlld1R5cGUge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWN0aXZlVmlldztcbiAgICB9XG4gICAgcHVibGljIHNldCBhY3RpdmVWaWV3KHY6IEFYQ2FsZW5kYXJWaWV3VHlwZSkge1xuICAgICAgICB0aGlzLnNldE9wdGlvbih7XG4gICAgICAgICAgICBuYW1lOiAnYWN0aXZlVmlldycsXG4gICAgICAgICAgICB2YWx1ZTogdixcbiAgICAgICAgICAgIGFmdGVyQ2FsbGJhY2s6ICgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgdHlwZUNoYW5nZTogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICAgIHByaXZhdGUgX3R5cGU6IHN0cmluZyA9IEFYQ29uZmlnLmdldChgZGF0ZVRpbWUuY2FsZW5kYXJgKTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGdldCB0eXBlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl90eXBlIHx8IEFYQ29uZmlnLmdldChgZGF0ZVRpbWUuY2FsZW5kYXJgKTtcbiAgICB9XG4gICAgcHVibGljIHNldCB0eXBlKHY6IHN0cmluZykge1xuICAgICAgICB0aGlzLnNldE9wdGlvbih7XG4gICAgICAgICAgICBuYW1lOiAndHlwZScsXG4gICAgICAgICAgICB2YWx1ZTogdixcbiAgICAgICAgICAgIGFmdGVyQ2FsbGJhY2s6ICgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG5cbiAgICBAT3V0cHV0KClcbiAgICBkZXB0aENoYW5nZTogRXZlbnRFbWl0dGVyPEFYQ2FsZW5kYXJWaWV3RGVwdGg+ID0gbmV3IEV2ZW50RW1pdHRlcjxBWENhbGVuZGFyVmlld0RlcHRoPigpO1xuXG4gICAgcHJpdmF0ZSBfZGVwdGg6IEFYQ2FsZW5kYXJWaWV3RGVwdGggPSAnZGF5cyc7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZ2V0IGRlcHRoKCk6IEFYQ2FsZW5kYXJWaWV3RGVwdGgge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGVwdGg7XG4gICAgfVxuICAgIHB1YmxpYyBzZXQgZGVwdGgodjogQVhDYWxlbmRhclZpZXdEZXB0aCkge1xuICAgICAgICB0aGlzLnNldE9wdGlvbih7XG4gICAgICAgICAgICBuYW1lOiAnZGVwdGgnLFxuICAgICAgICAgICAgdmFsdWU6IHYsXG4gICAgICAgICAgICBiZWZvcmVDYWxsYmFjazogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlVmlldyA9IHY7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgYWZ0ZXJDYWxsYmFjazogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBAT3V0cHV0KClcbiAgICBtaW5DaGFuZ2U6IEV2ZW50RW1pdHRlcjxEYXRlPiA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZT4oKTtcblxuICAgIHByaXZhdGUgX21pbjogRGF0ZTtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBnZXQgbWluKCk6IERhdGUge1xuICAgICAgICByZXR1cm4gdGhpcy5fbWluO1xuICAgIH1cbiAgICBwdWJsaWMgc2V0IG1pbih2OiBEYXRlKSB7XG4gICAgICAgIHRoaXMuc2V0T3B0aW9uKHtcbiAgICAgICAgICAgIG5hbWU6ICdtaW4nLFxuICAgICAgICAgICAgdmFsdWU6IHYsXG4gICAgICAgICAgICBhZnRlckNhbGxiYWNrOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuXG4gICAgQE91dHB1dCgpXG4gICAgbWF4Q2hhbmdlOiBFdmVudEVtaXR0ZXI8RGF0ZT4gPSBuZXcgRXZlbnRFbWl0dGVyPERhdGU+KCk7XG5cbiAgICBwcml2YXRlIF9tYXg6IERhdGU7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZ2V0IG1heCgpOiBEYXRlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX21heDtcbiAgICB9XG4gICAgcHVibGljIHNldCBtYXgodjogRGF0ZSkge1xuICAgICAgICB0aGlzLnNldE9wdGlvbih7XG4gICAgICAgICAgICBuYW1lOiAnbWF4JyxcbiAgICAgICAgICAgIHZhbHVlOiB2LFxuICAgICAgICAgICAgYWZ0ZXJDYWxsYmFjazogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBAT3V0cHV0KClcbiAgICBkaXNhYmxlZERhdGVzQ2hhbmdlOiBFdmVudEVtaXR0ZXI8QVhDYWxlbmRhckRpc2FibGVkRGF0ZXM+ID0gbmV3IEV2ZW50RW1pdHRlcjxBWENhbGVuZGFyRGlzYWJsZWREYXRlcz4oKTtcblxuICAgIHByaXZhdGUgX2Rpc2FibGVkRGF0ZXM6IEFYQ2FsZW5kYXJEaXNhYmxlZERhdGVzO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGdldCBkaXNhYmxlZERhdGVzKCk6IEFYQ2FsZW5kYXJEaXNhYmxlZERhdGVzIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkRGF0ZXM7XG4gICAgfVxuICAgIHB1YmxpYyBzZXQgZGlzYWJsZWREYXRlcyh2OiBBWENhbGVuZGFyRGlzYWJsZWREYXRlcykge1xuICAgICAgICB0aGlzLnNldE9wdGlvbih7IG5hbWU6ICdkaXNhYmxlZERhdGVzJywgdmFsdWU6IHYgfSk7XG4gICAgfVxuXG4gICAgQE91dHB1dCgpXG4gICAgaG9saWRheURhdGVzQ2hhbmdlOiBFdmVudEVtaXR0ZXI8QVhDYWxlbmRhckhvbGlkYXlEYXRlcz4gPSBuZXcgRXZlbnRFbWl0dGVyPEFYQ2FsZW5kYXJIb2xpZGF5RGF0ZXM+KCk7XG5cbiAgICBwcml2YXRlIF9ob2xpZGF5RGF0ZXM6IEFYQ2FsZW5kYXJIb2xpZGF5RGF0ZXM7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZ2V0IGhvbGlkYXlEYXRlcygpOiBBWENhbGVuZGFySG9saWRheURhdGVzIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2hvbGlkYXlEYXRlcztcbiAgICB9XG4gICAgcHVibGljIHNldCBob2xpZGF5RGF0ZXModjogQVhDYWxlbmRhckhvbGlkYXlEYXRlcykge1xuICAgICAgICB0aGlzLnNldE9wdGlvbih7IG5hbWU6ICdob2xpZGF5RGF0ZXMnLCB2YWx1ZTogdiB9KTtcbiAgICB9XG59XG5cblxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQVhDYWxlbmRhckJhc2VDb21wb25lbnQgZXh0ZW5kcyBBWEJhc2VDb21wb25lbnQge1xuXG5cbiAgICBjb25zdHJ1Y3RvcihlbGVtZW50UmVmOiBFbGVtZW50UmVmLCBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gICAgICAgIHN1cGVyKGVsZW1lbnRSZWYsIGNkcik7XG4gICAgfVxuXG4gICAgQE91dHB1dCgpXG4gICAgb25TbG90Q2xpY2s6IEV2ZW50RW1pdHRlcjxBWEl0ZW1DbGlja0V2ZW50PERhdGU+PiA9IG5ldyBFdmVudEVtaXR0ZXI8QVhJdGVtQ2xpY2tFdmVudDxEYXRlPj4oKTtcblxuICAgIEBPdXRwdXQoKVxuICAgIG9uTmF2aWdhdGU6IEV2ZW50RW1pdHRlcjxBWENhbGVuZGFyTmF2aWdhdGVFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEFYQ2FsZW5kYXJOYXZpZ2F0ZUV2ZW50PigpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgYWN0aXZlVmlld0NoYW5nZTogRXZlbnRFbWl0dGVyPEFYQ2FsZW5kYXJWaWV3VHlwZT4gPSBuZXcgRXZlbnRFbWl0dGVyPEFYQ2FsZW5kYXJWaWV3VHlwZT4oKTtcblxuICAgIHByaXZhdGUgX2FjdGl2ZVZpZXc6IEFYQ2FsZW5kYXJWaWV3VHlwZSA9ICdkYXlzJztcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBnZXQgYWN0aXZlVmlldygpOiBBWENhbGVuZGFyVmlld1R5cGUge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWN0aXZlVmlldztcbiAgICB9XG4gICAgcHVibGljIHNldCBhY3RpdmVWaWV3KHY6IEFYQ2FsZW5kYXJWaWV3VHlwZSkge1xuICAgICAgICB0aGlzLl9zZXRPcHRpb24oeyBuYW1lOiAnYWN0aXZlVmlldycsIHZhbHVlOiB2IH0pO1xuICAgIH1cblxuXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIHR5cGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgICBwcml2YXRlIF90eXBlOiBzdHJpbmcgPSBBWENvbmZpZy5nZXQoYGRhdGVUaW1lLmNhbGVuZGFyYCk7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBnZXQgdHlwZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5fdHlwZSB8fCBBWENvbmZpZy5nZXQoYGRhdGVUaW1lLmNhbGVuZGFyYCk7XG4gICAgfVxuICAgIHB1YmxpYyBzZXQgdHlwZSh2OiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fc2V0T3B0aW9uKHtcbiAgICAgICAgICAgIG5hbWU6ICd0eXBlJyxcbiAgICAgICAgICAgIHZhbHVlOiB2XG4gICAgICAgIH0pXG4gICAgfVxuXG5cbiAgICBAT3V0cHV0KClcbiAgICBkZXB0aENoYW5nZTogRXZlbnRFbWl0dGVyPEFYQ2FsZW5kYXJWaWV3RGVwdGg+ID0gbmV3IEV2ZW50RW1pdHRlcjxBWENhbGVuZGFyVmlld0RlcHRoPigpO1xuXG4gICAgcHJpdmF0ZSBfZGVwdGg6IEFYQ2FsZW5kYXJWaWV3RGVwdGggPSAnZGF5cyc7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZ2V0IGRlcHRoKCk6IEFYQ2FsZW5kYXJWaWV3RGVwdGgge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGVwdGg7XG4gICAgfVxuICAgIHB1YmxpYyBzZXQgZGVwdGgodjogQVhDYWxlbmRhclZpZXdEZXB0aCkge1xuICAgICAgICB0aGlzLl9zZXRPcHRpb24oe1xuICAgICAgICAgICAgbmFtZTogJ2RlcHRoJyxcbiAgICAgICAgICAgIHZhbHVlOiB2LFxuICAgICAgICAgICAgYmVmb3JlQ2FsbGJhY2s6ICgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9hY3RpdmVWaWV3ID0gdjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgQE91dHB1dCgpXG4gICAgbWluQ2hhbmdlOiBFdmVudEVtaXR0ZXI8RGF0ZT4gPSBuZXcgRXZlbnRFbWl0dGVyPERhdGU+KCk7XG5cbiAgICBwcml2YXRlIF9taW46IERhdGU7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZ2V0IG1pbigpOiBEYXRlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX21pbjtcbiAgICB9XG4gICAgcHVibGljIHNldCBtaW4odjogRGF0ZSkge1xuICAgICAgICB0aGlzLl9zZXRPcHRpb24oeyBuYW1lOiAnbWluJywgdmFsdWU6IHYgfSk7XG4gICAgfVxuXG5cbiAgICBAT3V0cHV0KClcbiAgICBtYXhDaGFuZ2U6IEV2ZW50RW1pdHRlcjxEYXRlPiA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZT4oKTtcblxuICAgIHByaXZhdGUgX21heDogRGF0ZTtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBnZXQgbWF4KCk6IERhdGUge1xuICAgICAgICByZXR1cm4gdGhpcy5fbWF4O1xuICAgIH1cbiAgICBwdWJsaWMgc2V0IG1heCh2OiBEYXRlKSB7XG4gICAgICAgIHRoaXMuX3NldE9wdGlvbih7IG5hbWU6ICdtYXgnLCB2YWx1ZTogdiB9KTtcbiAgICB9XG5cbiAgICBAT3V0cHV0KClcbiAgICBkaXNhYmxlZERhdGVzQ2hhbmdlOiBFdmVudEVtaXR0ZXI8QVhDYWxlbmRhckRpc2FibGVkRGF0ZXM+ID0gbmV3IEV2ZW50RW1pdHRlcjxBWENhbGVuZGFyRGlzYWJsZWREYXRlcz4oKTtcblxuICAgIHByaXZhdGUgX2Rpc2FibGVkRGF0ZXM6IEFYQ2FsZW5kYXJEaXNhYmxlZERhdGVzO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGdldCBkaXNhYmxlZERhdGVzKCk6IEFYQ2FsZW5kYXJEaXNhYmxlZERhdGVzIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkRGF0ZXM7XG4gICAgfVxuICAgIHB1YmxpYyBzZXQgZGlzYWJsZWREYXRlcyh2OiBBWENhbGVuZGFyRGlzYWJsZWREYXRlcykge1xuICAgICAgICB0aGlzLl9zZXRPcHRpb24oeyBuYW1lOiAnZGlzYWJsZWREYXRlcycsIHZhbHVlOiB2IH0pO1xuICAgIH1cblxuICAgIEBPdXRwdXQoKVxuICAgIGhvbGlkYXlEYXRlc0NoYW5nZTogRXZlbnRFbWl0dGVyPEFYQ2FsZW5kYXJIb2xpZGF5RGF0ZXM+ID0gbmV3IEV2ZW50RW1pdHRlcjxBWENhbGVuZGFySG9saWRheURhdGVzPigpO1xuXG4gICAgcHJpdmF0ZSBfaG9saWRheURhdGVzOiBBWENhbGVuZGFySG9saWRheURhdGVzO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGdldCBob2xpZGF5RGF0ZXMoKTogQVhDYWxlbmRhckhvbGlkYXlEYXRlcyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9ob2xpZGF5RGF0ZXM7XG4gICAgfVxuICAgIHB1YmxpYyBzZXQgaG9saWRheURhdGVzKHY6IEFYQ2FsZW5kYXJIb2xpZGF5RGF0ZXMpIHtcbiAgICAgICAgdGhpcy5fc2V0T3B0aW9uKHsgbmFtZTogJ2hvbGlkYXlEYXRlcycsIHZhbHVlOiB2IH0pO1xuICAgIH1cbn1cblxuXG5cbmV4cG9ydCBjb25zdCBDQUxFTkRBUl9JTlBVVFMgPSBbXG4gICAgJ2RlcHRoJyxcbiAgICAnYWN0aXZlVmlldycsXG4gICAgJ21pbicsXG4gICAgJ21heCcsXG4gICAgJ2Rpc2FibGVkRGF0ZXMnLFxuICAgICd0eXBlJyxcbiAgICAnaG9saWRheURhdGVzJyxcbl07XG5leHBvcnQgY29uc3QgQ0FMRU5EQVJfT1VUUFVUUyA9IFsnZGVwdGhDaGFuZ2UnLCAndHlwZUNoYW5nZScsICdkaXNhYmxlZERhdGVzQ2hhbmdlJywgJ2hvbGlkYXlEYXRlc0NoYW5nZScsICdvbk5hdmlnYXRlJ107XG4iXX0=
231
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29tcG9uZW50cy9jYWxlbmRhci9zcmMvY2FsZW5kYXIuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQWUsTUFBTSxlQUFlLENBQUM7QUFDckYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLG1CQUFtQixFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ25HLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxVQUFVLENBQUM7O0FBVW5DOzs7RUFHRTtBQUNGLE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxtQkFBeUI7Q0FFckU7QUFFRDs7O0VBR0U7QUFDRixNQUFNLE9BQU8sbUJBQW9CLFNBQVEsZ0JBQXNCO0NBRTlEO0FBZUQsZ0NBQWdDO0FBQ2hDLHVDQUF1QztBQUN2QyxpREFBaUQ7QUFFakQscUNBQXFDO0FBQ3JDLDZCQUE2QjtBQUM3QixRQUFRO0FBRVIsMENBQTBDO0FBQzFDLDhCQUE4QjtBQUM5QixRQUFRO0FBRVIsbUJBQW1CO0FBQ25CLGtEQUFrRDtBQUNsRCxvREFBb0Q7QUFDcEQsVUFBVTtBQUNWLDBDQUEwQztBQUMxQyxtQ0FBbUM7QUFDbkMsc0NBQXNDO0FBQ3RDLCtCQUErQjtBQUMvQiwyQkFBMkI7QUFDM0Isd0RBQXdEO0FBQ3hELDBDQUEwQztBQUMxQyxxQ0FBcUM7QUFDckMscURBQXFEO0FBQ3JELHdDQUF3QztBQUN4QyxxQ0FBcUM7QUFDckMsb0NBQW9DO0FBQ3BDLG1DQUFtQztBQUNuQyxvRUFBb0U7QUFDcEUsMEJBQTBCO0FBQzFCLHdDQUF3QztBQUN4QyxxQ0FBcUM7QUFDckMscUNBQXFDO0FBQ3JDLG9DQUFvQztBQUNwQyxvRUFBb0U7QUFDcEUseUJBQXlCO0FBQ3pCLHFCQUFxQjtBQUNyQix5QkFBeUI7QUFDekIsNEJBQTRCO0FBQzVCLHNDQUFzQztBQUN0QywrQ0FBK0M7QUFDL0MscURBQXFEO0FBQ3JELCtDQUErQztBQUMvQywyREFBMkQ7QUFDM0QscUJBQXFCO0FBQ3JCLHlCQUF5QjtBQUN6Qix1QkFBdUI7QUFDdkIscURBQXFEO0FBQ3JELGdEQUFnRDtBQUNoRCw2Q0FBNkM7QUFDN0MscUJBQXFCO0FBQ3JCLFlBQVk7QUFDWixhQUFhO0FBQ2IsK0RBQStEO0FBQy9ELDRCQUE0QjtBQUM1QixrQ0FBa0M7QUFFbEMsZUFBZTtBQUNmLFFBQVE7QUFDUixJQUFJO0FBRUosTUFDYSx1QkFBd0IsU0FBUSxPQUFPLENBQUMsZUFBZSxDQUFDO0lBR2pFLFNBQVMsR0FBMEIsVUFBVSxDQUFDO0lBRzlDLFlBQVksQ0FBb0I7SUFHaEMsU0FBUyxDQUEwQjtJQUduQyxjQUFjLEdBQVksSUFBSSxDQUFDO0lBRy9CLEtBQUssR0FBVyxDQUFDLENBQUM7SUFJbEIsV0FBVyxHQUFzQyxJQUFJLFlBQVksRUFBdUIsQ0FBQztJQUd6RixVQUFVLEdBQTBDLElBQUksWUFBWSxFQUEyQixDQUFDO0lBR2hHLGdCQUFnQixHQUFxQyxJQUFJLFlBQVksRUFBc0IsQ0FBQztJQUVwRixXQUFXLEdBQXVCLEtBQUssQ0FBQztJQUNoRCxJQUNXLFVBQVU7UUFDakIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzVCLENBQUM7SUFDRCxJQUFXLFVBQVUsQ0FBQyxDQUFxQjtRQUN2QyxJQUFJLENBQUMsU0FBUyxDQUFDO1lBQ1gsSUFBSSxFQUFFLFlBQVk7WUFDbEIsS0FBSyxFQUFFLENBQUM7WUFDUixhQUFhLEVBQUUsR0FBRyxFQUFFO2dCQUNoQixJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQzVCLENBQUM7U0FDSixDQUFDLENBQUM7SUFDUCxDQUFDO0lBSU0sVUFBVSxHQUF5QixJQUFJLFlBQVksRUFBVSxDQUFDO0lBRTdELEtBQUssR0FBVyxRQUFRLENBQUMsR0FBRyxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFFMUQsSUFDVyxJQUFJO1FBQ1gsT0FBTyxJQUFJLENBQUMsS0FBSyxJQUFJLFFBQVEsQ0FBQyxHQUFHLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBQ0QsSUFBVyxJQUFJLENBQUMsQ0FBUztRQUNyQixJQUFJLENBQUMsU0FBUyxDQUFDO1lBQ1gsSUFBSSxFQUFFLE1BQU07WUFDWixLQUFLLEVBQUUsQ0FBQztZQUNSLGFBQWEsRUFBRSxHQUFHLEVBQUU7Z0JBQ2hCLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDNUIsQ0FBQztTQUNKLENBQUMsQ0FBQztJQUNQLENBQUM7SUFJRCxXQUFXLEdBQXNDLElBQUksWUFBWSxFQUF1QixDQUFDO0lBRWpGLE1BQU0sR0FBd0IsS0FBSyxDQUFDO0lBQzVDLElBQ1csS0FBSztRQUNaLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBQ0QsSUFBVyxLQUFLLENBQUMsQ0FBc0I7UUFDbkMsSUFBSSxDQUFDLFNBQVMsQ0FBQztZQUNYLElBQUksRUFBRSxPQUFPO1lBQ2IsS0FBSyxFQUFFLENBQUM7WUFDUixjQUFjLEVBQUUsR0FBRyxFQUFFO2dCQUNqQixJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQztZQUN4QixDQUFDO1lBQ0QsYUFBYSxFQUFFLEdBQUcsRUFBRTtnQkFDaEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUM1QixDQUFDO1NBQ0osQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUdELFNBQVMsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztJQUVqRCxJQUFJLENBQU87SUFDbkIsSUFDVyxHQUFHO1FBQ1YsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ3JCLENBQUM7SUFDRCxJQUFXLEdBQUcsQ0FBQyxDQUFPO1FBQ2xCLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDWCxJQUFJLEVBQUUsS0FBSztZQUNYLEtBQUssRUFBRSxDQUFDO1lBQ1IsYUFBYSxFQUFFLEdBQUcsRUFBRTtnQkFDaEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUM1QixDQUFDO1NBQ0osQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUlELFNBQVMsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztJQUVqRCxJQUFJLENBQU87SUFDbkIsSUFDVyxHQUFHO1FBQ1YsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ3JCLENBQUM7SUFDRCxJQUFXLEdBQUcsQ0FBQyxDQUFPO1FBQ2xCLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDWCxJQUFJLEVBQUUsS0FBSztZQUNYLEtBQUssRUFBRSxDQUFDO1lBQ1IsYUFBYSxFQUFFLEdBQUcsRUFBRTtnQkFDaEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUM1QixDQUFDO1NBQ0osQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUdELG1CQUFtQixHQUEwQyxJQUFJLFlBQVksRUFBMkIsQ0FBQztJQUVqRyxjQUFjLENBQTBCO0lBQ2hELElBQ1csYUFBYTtRQUNwQixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDL0IsQ0FBQztJQUNELElBQVcsYUFBYSxDQUFDLENBQTBCO1FBQy9DLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxJQUFJLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFHRCxrQkFBa0IsR0FBeUMsSUFBSSxZQUFZLEVBQTBCLENBQUM7SUFFOUYsYUFBYSxDQUF5QjtJQUM5QyxJQUNXLFlBQVk7UUFDbkIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzlCLENBQUM7SUFDRCxJQUFXLFlBQVksQ0FBQyxDQUF5QjtRQUM3QyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsSUFBSSxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN2RCxDQUFDO3VHQS9JUSx1QkFBdUI7MkdBQXZCLHVCQUF1Qjs7U0FBdkIsdUJBQXVCOzJGQUF2Qix1QkFBdUI7a0JBRG5DLFVBQVU7OEJBSVAsU0FBUztzQkFEUixLQUFLO2dCQUlOLFlBQVk7c0JBRFgsS0FBSztnQkFJTixTQUFTO3NCQURSLEtBQUs7Z0JBSU4sY0FBYztzQkFEYixLQUFLO2dCQUlOLEtBQUs7c0JBREosS0FBSztnQkFLTixXQUFXO3NCQURWLE1BQU07Z0JBSVAsVUFBVTtzQkFEVCxNQUFNO2dCQUlQLGdCQUFnQjtzQkFEZixNQUFNO2dCQUtJLFVBQVU7c0JBRHBCLEtBQUs7Z0JBZ0JDLFVBQVU7c0JBRGhCLE1BQU07Z0JBTUksSUFBSTtzQkFEZCxLQUFLO2dCQWdCTixXQUFXO3NCQURWLE1BQU07Z0JBS0ksS0FBSztzQkFEZixLQUFLO2dCQWtCTixTQUFTO3NCQURSLE1BQU07Z0JBS0ksR0FBRztzQkFEYixLQUFLO2dCQWdCTixTQUFTO3NCQURSLE1BQU07Z0JBS0ksR0FBRztzQkFEYixLQUFLO2dCQWVOLG1CQUFtQjtzQkFEbEIsTUFBTTtnQkFLSSxhQUFhO3NCQUR2QixLQUFLO2dCQVNOLGtCQUFrQjtzQkFEakIsTUFBTTtnQkFLSSxZQUFZO3NCQUR0QixLQUFLOztBQWFWLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRztJQUMzQixPQUFPO0lBQ1AsWUFBWTtJQUNaLEtBQUs7SUFDTCxLQUFLO0lBQ0wsZUFBZTtJQUNmLE1BQU07SUFDTixjQUFjO0NBQ2pCLENBQUM7QUFDRixNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLGFBQWEsRUFBRSxZQUFZLEVBQUUscUJBQXFCLEVBQUUsb0JBQW9CLEVBQUUsWUFBWSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWENvbmZpZyB9IGZyb20gXCJAYWNvcmV4L2NvcmUvY29uZmlnXCI7XG5pbXBvcnQgeyBFdmVudEVtaXR0ZXIsIEluamVjdGFibGUsIElucHV0LCBPdXRwdXQsIFRlbXBsYXRlUmVmIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEFYSXRlbUNsaWNrRXZlbnQsIEFYUmFuZ2VDaGFuZ2VkRXZlbnQsIE1YQmFzZUNvbXBvbmVudCB9IGZyb20gXCJAYWNvcmV4L2NvbXBvbmVudHMvY29tbW9uXCI7XG5pbXBvcnQgeyBjbGFzc2VzIH0gZnJvbSBcInBvbHl0eXBlXCI7XG5pbXBvcnQgeyBBWERhdGVUaW1lLCBBWERhdGVUaW1lUmFuZ2UgfSBmcm9tIFwiQGFjb3JleC9jb3JlL2RhdGVUaW1lXCI7XG5cbmV4cG9ydCB0eXBlIEFYQ2FsZW5kYXJWaWV3VHlwZSA9ICd5ZWFyJyB8ICdtb250aCcgfCAnZGF5JztcbmV4cG9ydCB0eXBlIEFYQ2FsZW5kYXJWaWV3RGVwdGggPSBBWENhbGVuZGFyVmlld1R5cGU7XG5leHBvcnQgdHlwZSBBWENhbGVuZGFyRGlzYWJsZWREYXRlcyA9IERhdGVbXSB8ICgoZGF0ZTogRGF0ZSkgPT4gYm9vbGVhbik7XG5leHBvcnQgdHlwZSBBWENhbGVuZGFySG9saWRheURhdGVzID0gRGF0ZVtdIHwgKChkYXRlOiBEYXRlKSA9PiBib29sZWFuKTtcbmV4cG9ydCB0eXBlIEFYQ2FsZW5kYXJDZWxsQ3NzQ2xhc3MgPSBzdHJpbmcgfCB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfSB8ICgoZGF0ZTogRGF0ZSkgPT4gc3RyaW5nKTtcblxuXG4vKipcbiogIENvbnRhaW5zIG5hdGl2ZSBldmVudFxuKiBAY2F0ZWdvcnkgRXZlbnRzXG4qL1xuZXhwb3J0IGNsYXNzIEFYQ2FsZW5kYXJOYXZpZ2F0ZUV2ZW50IGV4dGVuZHMgQVhSYW5nZUNoYW5nZWRFdmVudDxEYXRlPiB7XG5cbn1cblxuLyoqXG4qICBDb250YWlucyBuYXRpdmUgZXZlbnRcbiogQGNhdGVnb3J5IEV2ZW50c1xuKi9cbmV4cG9ydCBjbGFzcyBBWENhbGVuZGFyU2xvdENsaWNrIGV4dGVuZHMgQVhJdGVtQ2xpY2tFdmVudDxEYXRlPiB7XG5cbn1cblxuZXhwb3J0IGludGVyZmFjZSBBWENhbGVuZGFyVmlld1Nsb3Qge1xuICAgIGRhdGU6IERhdGU7XG4gICAgdGV4dDogc3RyaW5nO1xuICAgIHRvb2x0aXA6IHN0cmluZztcbiAgICB0b2RheTogYm9vbGVhbjtcbiAgICBzZWxlY3RlZDogYm9vbGVhbjtcbiAgICBkaXNhYmxlZDogYm9vbGVhbjtcbiAgICBjc3NDbGFzczogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH07XG59XG5leHBvcnQgaW50ZXJmYWNlIEFYQ2FsZW5kYXJWaWV3IHtcbiAgICByYW5nZTogQVhEYXRlVGltZVJhbmdlO1xuICAgIHNsb3RzOiBBWENhbGVuZGFyVmlld1Nsb3RbXTtcbn1cbi8vIGV4cG9ydCBjbGFzcyBBWENhbGVuZGFyVmlldyB7XG4vLyAgICAgcHJpdmF0ZSBfcmFuZ2U6IEFYRGF0ZVRpbWVSYW5nZTtcbi8vICAgICBwcml2YXRlIF9zbG90czogQVhDYWxlbmRhclZpZXdTbG90W10gPSBbXTtcblxuLy8gICAgIGdldCByYW5nZSgpOiBBWERhdGVUaW1lUmFuZ2Uge1xuLy8gICAgICAgICByZXR1cm4gdGhpcy5yYW5nZTtcbi8vICAgICB9XG5cbi8vICAgICBnZXQgc2xvdHMoKTogQVhDYWxlbmRhclZpZXdTbG90W10ge1xuLy8gICAgICAgICByZXR1cm4gdGhpcy5fc2xvdHM7XG4vLyAgICAgfVxuXG4vLyAgICAgY29uc3RydWN0b3IoXG4vLyAgICAgICAgIHByaXZhdGUgcmVhZG9ubHkgc3RhcnREYXRlOiBBWERhdGVUaW1lLFxuLy8gICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHZpZXc6IEFYQ2FsZW5kYXJWaWV3VHlwZVxuLy8gICAgICkge1xuLy8gICAgICAgICBjb25zdCBjdXJyZW50ID0gdGhpcy5zdGFydERhdGU7XG4vLyAgICAgICAgIGxldCB0ZXh0Rm9ybWF0ID0gJ1lZWVknO1xuLy8gICAgICAgICBsZXQgdG9vbHRpcEZvcm1hdCA9ICdZWVlZJztcbi8vICAgICAgICAgc3dpdGNoICh0aGlzLnZpZXcpIHtcbi8vICAgICAgICAgICAgIGNhc2UgJ3llYXInOlxuLy8gICAgICAgICAgICAgICAgIGxldCB5ID0gY3VycmVudC5zdGFydE9mKCd5ZWFyJykueWVhcjtcbi8vICAgICAgICAgICAgICAgICBsZXQgbWluID0geSAtICh5ICUgMTApO1xuLy8gICAgICAgICAgICAgICAgIGxldCBtYXggPSBtaW4gKyA5O1xuLy8gICAgICAgICAgICAgICAgIHRoaXMuX3JhbmdlID0gbmV3IEFYRGF0ZVRpbWVSYW5nZShcbi8vICAgICAgICAgICAgICAgICAgICAgQVhEYXRlVGltZS5mcm9tKHtcbi8vICAgICAgICAgICAgICAgICAgICAgICAgIHllYXI6IG1pbixcbi8vICAgICAgICAgICAgICAgICAgICAgICAgIG1vbnRoOiAxLFxuLy8gICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZTogMSxcbi8vICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGVuZGFyOiB0aGlzLnN0YXJ0RGF0ZS5jYWxlbmRhci5uYW1lKCksXG4vLyAgICAgICAgICAgICAgICAgICAgIH0pLFxuLy8gICAgICAgICAgICAgICAgICAgICBBWERhdGVUaW1lLmZyb20oe1xuLy8gICAgICAgICAgICAgICAgICAgICAgICAgeWVhcjogbWF4LFxuLy8gICAgICAgICAgICAgICAgICAgICAgICAgbW9udGg6IDEyLFxuLy8gICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZTogMjgsXG4vLyAgICAgICAgICAgICAgICAgICAgICAgICBjYWxlbmRhcjogdGhpcy5zdGFydERhdGUuY2FsZW5kYXIubmFtZSgpLFxuLy8gICAgICAgICAgICAgICAgICAgICB9KVxuLy8gICAgICAgICAgICAgICAgICk7XG4vLyAgICAgICAgICAgICAgICAgYnJlYWs7XG4vLyAgICAgICAgICAgICBjYXNlICdtb250aCc6XG4vLyAgICAgICAgICAgICAgICAgdGV4dEZvcm1hdCA9ICdNTU0nO1xuLy8gICAgICAgICAgICAgICAgIHRvb2x0aXBGb3JtYXQgPSAnTU1NTSBZWVlZJztcbi8vICAgICAgICAgICAgICAgICB0aGlzLl9yYW5nZSA9IG5ldyBBWERhdGVUaW1lUmFuZ2UoXG4vLyAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnQuc3RhcnRPZigneWVhcicpLFxuLy8gICAgICAgICAgICAgICAgICAgICBjdXJyZW50LmVuZE9mKCd5ZWFyJykuYWRkKCdkYXknLCAtMSlcbi8vICAgICAgICAgICAgICAgICApO1xuLy8gICAgICAgICAgICAgICAgIGJyZWFrO1xuLy8gICAgICAgICAgICAgZGVmYXVsdDpcbi8vICAgICAgICAgICAgICAgICB0aGlzLl9yYW5nZSA9IG5ldyBBWERhdGVUaW1lUmFuZ2UoXG4vLyAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnQuc3RhcnRPZignbW9udGgnKSxcbi8vICAgICAgICAgICAgICAgICAgICAgY3VycmVudC5lbmRPZignbW9udGgnKVxuLy8gICAgICAgICAgICAgICAgICk7XG4vLyAgICAgICAgIH1cbi8vICAgICAgICAgLy9cbi8vICAgICAgICAgdGhpcy5fc2xvdHMgPSB0aGlzLnJhbmdlLmVudW11cmF0ZSh2aWV3KS5tYXAociA9PiAoe1xuLy8gICAgICAgICAgICAgZGF0ZTogci5kYXRlLFxuLy8gICAgICAgICAgICAgdG9vbHRpcDogci5mb3JtYXQoKVxuXG4vLyAgICAgICAgIH0pKTtcbi8vICAgICB9XG4vLyB9XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBNWENhbGVuZGFyQmFzZUNvbXBvbmVudCBleHRlbmRzIGNsYXNzZXMoTVhCYXNlQ29tcG9uZW50KSB7XG5cbiAgICBASW5wdXQoKVxuICAgIGludGVyZmFjZTogJ2NhbGVuZGFyJyB8ICdwaWNrZXInID0gJ2NhbGVuZGFyJztcblxuICAgIEBJbnB1dCgpXG4gICAgY2VsbFRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIEBJbnB1dCgpXG4gICAgY2VsbENsYXNzPzogQVhDYWxlbmRhckNlbGxDc3NDbGFzcztcblxuICAgIEBJbnB1dCgpXG4gICAgc2hvd05hdmlnYXRpb246IGJvb2xlYW4gPSB0cnVlO1xuXG4gICAgQElucHV0KClcbiAgICBjb3VudDogbnVtYmVyID0gMTtcblxuXG4gICAgQE91dHB1dCgpXG4gICAgb25TbG90Q2xpY2s6IEV2ZW50RW1pdHRlcjxBWENhbGVuZGFyU2xvdENsaWNrPiA9IG5ldyBFdmVudEVtaXR0ZXI8QVhDYWxlbmRhclNsb3RDbGljaz4oKTtcblxuICAgIEBPdXRwdXQoKVxuICAgIG9uTmF2aWdhdGU6IEV2ZW50RW1pdHRlcjxBWENhbGVuZGFyTmF2aWdhdGVFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEFYQ2FsZW5kYXJOYXZpZ2F0ZUV2ZW50PigpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgYWN0aXZlVmlld0NoYW5nZTogRXZlbnRFbWl0dGVyPEFYQ2FsZW5kYXJWaWV3VHlwZT4gPSBuZXcgRXZlbnRFbWl0dGVyPEFYQ2FsZW5kYXJWaWV3VHlwZT4oKTtcblxuICAgIHByaXZhdGUgX2FjdGl2ZVZpZXc6IEFYQ2FsZW5kYXJWaWV3VHlwZSA9ICdkYXknO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGdldCBhY3RpdmVWaWV3KCk6IEFYQ2FsZW5kYXJWaWV3VHlwZSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hY3RpdmVWaWV3O1xuICAgIH1cbiAgICBwdWJsaWMgc2V0IGFjdGl2ZVZpZXcodjogQVhDYWxlbmRhclZpZXdUeXBlKSB7XG4gICAgICAgIHRoaXMuc2V0T3B0aW9uKHtcbiAgICAgICAgICAgIG5hbWU6ICdhY3RpdmVWaWV3JyxcbiAgICAgICAgICAgIHZhbHVlOiB2LFxuICAgICAgICAgICAgYWZ0ZXJDYWxsYmFjazogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyB0eXBlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gICAgcHJpdmF0ZSBfdHlwZTogc3RyaW5nID0gQVhDb25maWcuZ2V0KGBkYXRlVGltZS5jYWxlbmRhcmApO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZ2V0IHR5cGUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3R5cGUgfHwgQVhDb25maWcuZ2V0KGBkYXRlVGltZS5jYWxlbmRhcmApO1xuICAgIH1cbiAgICBwdWJsaWMgc2V0IHR5cGUodjogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuc2V0T3B0aW9uKHtcbiAgICAgICAgICAgIG5hbWU6ICd0eXBlJyxcbiAgICAgICAgICAgIHZhbHVlOiB2LFxuICAgICAgICAgICAgYWZ0ZXJDYWxsYmFjazogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cblxuICAgIEBPdXRwdXQoKVxuICAgIGRlcHRoQ2hhbmdlOiBFdmVudEVtaXR0ZXI8QVhDYWxlbmRhclZpZXdEZXB0aD4gPSBuZXcgRXZlbnRFbWl0dGVyPEFYQ2FsZW5kYXJWaWV3RGVwdGg+KCk7XG5cbiAgICBwcml2YXRlIF9kZXB0aDogQVhDYWxlbmRhclZpZXdEZXB0aCA9ICdkYXknO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGdldCBkZXB0aCgpOiBBWENhbGVuZGFyVmlld0RlcHRoIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RlcHRoO1xuICAgIH1cbiAgICBwdWJsaWMgc2V0IGRlcHRoKHY6IEFYQ2FsZW5kYXJWaWV3RGVwdGgpIHtcbiAgICAgICAgdGhpcy5zZXRPcHRpb24oe1xuICAgICAgICAgICAgbmFtZTogJ2RlcHRoJyxcbiAgICAgICAgICAgIHZhbHVlOiB2LFxuICAgICAgICAgICAgYmVmb3JlQ2FsbGJhY2s6ICgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZVZpZXcgPSB2O1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGFmdGVyQ2FsbGJhY2s6ICgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgQE91dHB1dCgpXG4gICAgbWluQ2hhbmdlOiBFdmVudEVtaXR0ZXI8RGF0ZT4gPSBuZXcgRXZlbnRFbWl0dGVyPERhdGU+KCk7XG5cbiAgICBwcml2YXRlIF9taW46IERhdGU7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZ2V0IG1pbigpOiBEYXRlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX21pbjtcbiAgICB9XG4gICAgcHVibGljIHNldCBtaW4odjogRGF0ZSkge1xuICAgICAgICB0aGlzLnNldE9wdGlvbih7XG4gICAgICAgICAgICBuYW1lOiAnbWluJyxcbiAgICAgICAgICAgIHZhbHVlOiB2LFxuICAgICAgICAgICAgYWZ0ZXJDYWxsYmFjazogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cblxuICAgIEBPdXRwdXQoKVxuICAgIG1heENoYW5nZTogRXZlbnRFbWl0dGVyPERhdGU+ID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlPigpO1xuXG4gICAgcHJpdmF0ZSBfbWF4OiBEYXRlO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGdldCBtYXgoKTogRGF0ZSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9tYXg7XG4gICAgfVxuICAgIHB1YmxpYyBzZXQgbWF4KHY6IERhdGUpIHtcbiAgICAgICAgdGhpcy5zZXRPcHRpb24oe1xuICAgICAgICAgICAgbmFtZTogJ21heCcsXG4gICAgICAgICAgICB2YWx1ZTogdixcbiAgICAgICAgICAgIGFmdGVyQ2FsbGJhY2s6ICgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgQE91dHB1dCgpXG4gICAgZGlzYWJsZWREYXRlc0NoYW5nZTogRXZlbnRFbWl0dGVyPEFYQ2FsZW5kYXJEaXNhYmxlZERhdGVzPiA9IG5ldyBFdmVudEVtaXR0ZXI8QVhDYWxlbmRhckRpc2FibGVkRGF0ZXM+KCk7XG5cbiAgICBwcml2YXRlIF9kaXNhYmxlZERhdGVzOiBBWENhbGVuZGFyRGlzYWJsZWREYXRlcztcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBnZXQgZGlzYWJsZWREYXRlcygpOiBBWENhbGVuZGFyRGlzYWJsZWREYXRlcyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZERhdGVzO1xuICAgIH1cbiAgICBwdWJsaWMgc2V0IGRpc2FibGVkRGF0ZXModjogQVhDYWxlbmRhckRpc2FibGVkRGF0ZXMpIHtcbiAgICAgICAgdGhpcy5zZXRPcHRpb24oeyBuYW1lOiAnZGlzYWJsZWREYXRlcycsIHZhbHVlOiB2IH0pO1xuICAgIH1cblxuICAgIEBPdXRwdXQoKVxuICAgIGhvbGlkYXlEYXRlc0NoYW5nZTogRXZlbnRFbWl0dGVyPEFYQ2FsZW5kYXJIb2xpZGF5RGF0ZXM+ID0gbmV3IEV2ZW50RW1pdHRlcjxBWENhbGVuZGFySG9saWRheURhdGVzPigpO1xuXG4gICAgcHJpdmF0ZSBfaG9saWRheURhdGVzOiBBWENhbGVuZGFySG9saWRheURhdGVzO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGdldCBob2xpZGF5RGF0ZXMoKTogQVhDYWxlbmRhckhvbGlkYXlEYXRlcyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9ob2xpZGF5RGF0ZXM7XG4gICAgfVxuICAgIHB1YmxpYyBzZXQgaG9saWRheURhdGVzKHY6IEFYQ2FsZW5kYXJIb2xpZGF5RGF0ZXMpIHtcbiAgICAgICAgdGhpcy5zZXRPcHRpb24oeyBuYW1lOiAnaG9saWRheURhdGVzJywgdmFsdWU6IHYgfSk7XG4gICAgfVxufVxuXG5cblxuXG5cbmV4cG9ydCBjb25zdCBDQUxFTkRBUl9JTlBVVFMgPSBbXG4gICAgJ2RlcHRoJyxcbiAgICAnYWN0aXZlVmlldycsXG4gICAgJ21pbicsXG4gICAgJ21heCcsXG4gICAgJ2Rpc2FibGVkRGF0ZXMnLFxuICAgICd0eXBlJyxcbiAgICAnaG9saWRheURhdGVzJyxcbl07XG5leHBvcnQgY29uc3QgQ0FMRU5EQVJfT1VUUFVUUyA9IFsnZGVwdGhDaGFuZ2UnLCAndHlwZUNoYW5nZScsICdkaXNhYmxlZERhdGVzQ2hhbmdlJywgJ2hvbGlkYXlEYXRlc0NoYW5nZScsICdvbk5hdmlnYXRlJ107XG4iXX0=