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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (307) hide show
  1. package/anchor/anchor.directive.d.ts +2 -2
  2. package/button/button.types.d.ts +3 -0
  3. package/date-picker/calendar/panel/picker-panel.d.ts +1 -1
  4. package/date-picker/calendar/range-picker-panel/component.d.ts +1 -1
  5. package/dialog/dialog-container.component.d.ts +7 -0
  6. package/dialog/dialog-ref.d.ts +2 -4
  7. package/dialog/dialog.service.d.ts +3 -5
  8. package/fesm2022/alauda-ui.mjs +1091 -737
  9. package/fesm2022/alauda-ui.mjs.map +1 -1
  10. package/form/common-form.d.ts +5 -1
  11. package/input/autosize.directive.d.ts +4 -1
  12. package/internal/types/index.d.ts +3 -0
  13. package/message/message.config.d.ts +20 -0
  14. package/notification/notification.component.d.ts +4 -0
  15. package/package.json +2 -9
  16. package/paginator/paginator-intl.d.ts +9 -0
  17. package/radio/base-radio.d.ts +1 -1
  18. package/select/base-select.d.ts +3 -0
  19. package/select/validators.d.ts +1 -1
  20. package/sort/sort-errors.d.ts +4 -0
  21. package/table/table-cell-def.directive.d.ts +4 -0
  22. package/table/table-cell.directive.d.ts +1 -0
  23. package/table/table-column-def.directive.d.ts +4 -0
  24. package/table/table-header-cell-def.directive.d.ts +4 -0
  25. package/table/table-header-cell.directive.d.ts +1 -0
  26. package/table/table-header-row-def.directive.d.ts +4 -0
  27. package/table/table-header-row.component.d.ts +1 -0
  28. package/table/table-row-def.directive.d.ts +5 -0
  29. package/table/table-row.component.d.ts +1 -0
  30. package/table/table-scroll.directive.d.ts +1 -1
  31. package/tabs/tab-body.component.d.ts +16 -0
  32. package/tabs/tab-context.service.d.ts +3 -0
  33. package/tabs/tab-group.component.d.ts +28 -0
  34. package/tabs/tab-header-active-indicator.component.d.ts +9 -0
  35. package/tabs/tab-header.component.d.ts +79 -0
  36. package/tabs/tab.component.d.ts +18 -0
  37. package/tabs/tabs.types.d.ts +3 -0
  38. package/theme/style.css +10 -9
  39. package/tooltip/tooltip-intl.d.ts +3 -0
  40. package/tsconfig.lib.tsbuildinfo +1 -1
  41. package/esm2022/accordion/accordion-item/accordion-item.component.mjs +0 -73
  42. package/esm2022/accordion/accordion.component.mjs +0 -27
  43. package/esm2022/accordion/accordion.module.mjs +0 -54
  44. package/esm2022/accordion/index.mjs +0 -4
  45. package/esm2022/alauda-ui.mjs +0 -2
  46. package/esm2022/anchor/anchor.component.mjs +0 -137
  47. package/esm2022/anchor/anchor.directive.mjs +0 -184
  48. package/esm2022/anchor/anchor.module.mjs +0 -42
  49. package/esm2022/anchor/index.mjs +0 -6
  50. package/esm2022/anchor/types.mjs +0 -2
  51. package/esm2022/anchor/utils.mjs +0 -26
  52. package/esm2022/autocomplete/autocomplete-placeholder.component.mjs +0 -18
  53. package/esm2022/autocomplete/autocomplete.component.mjs +0 -52
  54. package/esm2022/autocomplete/autocomplete.directive.mjs +0 -282
  55. package/esm2022/autocomplete/autocomplete.module.mjs +0 -69
  56. package/esm2022/autocomplete/autocomplete.types.mjs +0 -2
  57. package/esm2022/autocomplete/helper-directives.mjs +0 -18
  58. package/esm2022/autocomplete/index.mjs +0 -9
  59. package/esm2022/autocomplete/suggestion/suggestion.component.mjs +0 -74
  60. package/esm2022/autocomplete/suggestion-group/suggestion-group.component.mjs +0 -23
  61. package/esm2022/back-top/back-top.component.mjs +0 -84
  62. package/esm2022/back-top/back-top.module.mjs +0 -19
  63. package/esm2022/back-top/index.mjs +0 -3
  64. package/esm2022/breadcrumb/breadcrumb-item.component.mjs +0 -32
  65. package/esm2022/breadcrumb/breadcrumb.component.mjs +0 -57
  66. package/esm2022/breadcrumb/breadcrumb.module.mjs +0 -32
  67. package/esm2022/breadcrumb/index.mjs +0 -4
  68. package/esm2022/button/button-group/button-group.component.mjs +0 -11
  69. package/esm2022/button/button.component.mjs +0 -121
  70. package/esm2022/button/button.module.mjs +0 -19
  71. package/esm2022/button/button.types.mjs +0 -11
  72. package/esm2022/button/index.mjs +0 -5
  73. package/esm2022/card/card.component.mjs +0 -16
  74. package/esm2022/card/card.module.mjs +0 -48
  75. package/esm2022/card/helper-directives.mjs +0 -45
  76. package/esm2022/card/index.mjs +0 -5
  77. package/esm2022/card/section.component.mjs +0 -11
  78. package/esm2022/checkbox/checkbox-group/checkbox-group.component.mjs +0 -61
  79. package/esm2022/checkbox/checkbox.component.mjs +0 -112
  80. package/esm2022/checkbox/checkbox.module.mjs +0 -32
  81. package/esm2022/checkbox/index.mjs +0 -4
  82. package/esm2022/color-picker/color-picker.component.mjs +0 -28
  83. package/esm2022/color-picker/color-picker.module.mjs +0 -18
  84. package/esm2022/color-picker/index.mjs +0 -3
  85. package/esm2022/core/animation/animation-consts.mjs +0 -12
  86. package/esm2022/date-picker/calendar/constant.mjs +0 -31
  87. package/esm2022/date-picker/calendar/date-picker-panel/component.mjs +0 -173
  88. package/esm2022/date-picker/calendar/footer/component.mjs +0 -29
  89. package/esm2022/date-picker/calendar/header/component.mjs +0 -136
  90. package/esm2022/date-picker/calendar/panel/picker-panel.mjs +0 -154
  91. package/esm2022/date-picker/calendar/range-picker-panel/component.mjs +0 -218
  92. package/esm2022/date-picker/calendar/util.mjs +0 -145
  93. package/esm2022/date-picker/date-picker/date-picker.component.mjs +0 -100
  94. package/esm2022/date-picker/date-picker.module.mjs +0 -85
  95. package/esm2022/date-picker/date-picker.type.mjs +0 -12
  96. package/esm2022/date-picker/index.mjs +0 -12
  97. package/esm2022/date-picker/range-picker/range-picker.component.mjs +0 -90
  98. package/esm2022/date-picker/trigger/trigger.component.mjs +0 -122
  99. package/esm2022/dialog/confirm-dialog/confirm-dialog-config.mjs +0 -12
  100. package/esm2022/dialog/confirm-dialog/confirm-dialog.component.mjs +0 -95
  101. package/esm2022/dialog/dialog-animations.mjs +0 -57
  102. package/esm2022/dialog/dialog-config.mjs +0 -15
  103. package/esm2022/dialog/dialog-content/dialog-close.directive.mjs +0 -39
  104. package/esm2022/dialog/dialog-content/dialog-content.component.mjs +0 -19
  105. package/esm2022/dialog/dialog-content/dialog-footer.component.mjs +0 -15
  106. package/esm2022/dialog/dialog-content/dialog-header.component.mjs +0 -39
  107. package/esm2022/dialog/dialog-ref.mjs +0 -48
  108. package/esm2022/dialog/dialog.component.mjs +0 -154
  109. package/esm2022/dialog/dialog.module.mjs +0 -72
  110. package/esm2022/dialog/dialog.service.mjs +0 -120
  111. package/esm2022/dialog/dialog.types.mjs +0 -17
  112. package/esm2022/dialog/index.mjs +0 -12
  113. package/esm2022/dialog/utils/errors.mjs +0 -4
  114. package/esm2022/dialog/utils/index.mjs +0 -11
  115. package/esm2022/drawer/component/drawer.component.mjs +0 -88
  116. package/esm2022/drawer/component/internal/internal.component.mjs +0 -184
  117. package/esm2022/drawer/drawer-ref.mjs +0 -28
  118. package/esm2022/drawer/drawer.module.mjs +0 -41
  119. package/esm2022/drawer/drawer.service.mjs +0 -114
  120. package/esm2022/drawer/helper-directives.mjs +0 -36
  121. package/esm2022/drawer/index.mjs +0 -7
  122. package/esm2022/drawer/types.mjs +0 -6
  123. package/esm2022/dropdown/dropdown-active.directive.mjs +0 -22
  124. package/esm2022/dropdown/dropdown-button/dropdown-button.component.mjs +0 -47
  125. package/esm2022/dropdown/dropdown.directive.mjs +0 -53
  126. package/esm2022/dropdown/dropdown.module.mjs +0 -80
  127. package/esm2022/dropdown/dropdown.types.mjs +0 -8
  128. package/esm2022/dropdown/helper-directives.mjs +0 -18
  129. package/esm2022/dropdown/index.mjs +0 -11
  130. package/esm2022/dropdown/menu/menu.component.mjs +0 -19
  131. package/esm2022/dropdown/menu-group/menu-group.component.mjs +0 -11
  132. package/esm2022/dropdown/menu-item/menu-item.component.mjs +0 -37
  133. package/esm2022/dropdown/submenu/submenu.component.mjs +0 -45
  134. package/esm2022/form/common-form.mjs +0 -87
  135. package/esm2022/form/form-item/form-item.component.mjs +0 -108
  136. package/esm2022/form/form.directive.mjs +0 -70
  137. package/esm2022/form/form.module.mjs +0 -58
  138. package/esm2022/form/form.types.mjs +0 -11
  139. package/esm2022/form/helper-directives.mjs +0 -77
  140. package/esm2022/form/index.mjs +0 -7
  141. package/esm2022/i18n/i18n.module.mjs +0 -16
  142. package/esm2022/i18n/i18n.pipe.mjs +0 -22
  143. package/esm2022/i18n/i18n.service.mjs +0 -40
  144. package/esm2022/i18n/i18n.type.mjs +0 -6
  145. package/esm2022/i18n/index.mjs +0 -7
  146. package/esm2022/i18n/language/en.mjs +0 -25
  147. package/esm2022/i18n/language/zh.mjs +0 -25
  148. package/esm2022/icon/icon-register.service.mjs +0 -63
  149. package/esm2022/icon/icon.component.mjs +0 -65
  150. package/esm2022/icon/icon.module.mjs +0 -18
  151. package/esm2022/icon/icons.mjs +0 -2
  152. package/esm2022/icon/index.mjs +0 -4
  153. package/esm2022/icon/utils.mjs +0 -7
  154. package/esm2022/index.mjs +0 -39
  155. package/esm2022/inline-alert/helper-directives.mjs +0 -15
  156. package/esm2022/inline-alert/index.mjs +0 -5
  157. package/esm2022/inline-alert/inline-alert.component.mjs +0 -57
  158. package/esm2022/inline-alert/inline-alert.module.mjs +0 -32
  159. package/esm2022/inline-alert/inline-alert.types.mjs +0 -9
  160. package/esm2022/input/autosize.directive.mjs +0 -55
  161. package/esm2022/input/helper-directives.mjs +0 -47
  162. package/esm2022/input/index.mjs +0 -9
  163. package/esm2022/input/input-group/input-group.component.mjs +0 -46
  164. package/esm2022/input/input.component.mjs +0 -57
  165. package/esm2022/input/input.module.mjs +0 -85
  166. package/esm2022/input/number-input/number-input.component.mjs +0 -130
  167. package/esm2022/input/search/search.component.mjs +0 -89
  168. package/esm2022/input/tags-input/tags-input.component.mjs +0 -255
  169. package/esm2022/input/tags-input/with-max-row-count.mjs +0 -50
  170. package/esm2022/input/utils/index.mjs +0 -67
  171. package/esm2022/internal/types/index.mjs +0 -8
  172. package/esm2022/internal/utils/animations.mjs +0 -2
  173. package/esm2022/internal/utils/async.mjs +0 -6
  174. package/esm2022/internal/utils/bem.mjs +0 -43
  175. package/esm2022/internal/utils/coercion.mjs +0 -5
  176. package/esm2022/internal/utils/fn.mjs +0 -16
  177. package/esm2022/internal/utils/index.mjs +0 -10
  178. package/esm2022/internal/utils/observe-dom.mjs +0 -23
  179. package/esm2022/internal/utils/operators.mjs +0 -15
  180. package/esm2022/internal/utils/scroll-into-view.mjs +0 -17
  181. package/esm2022/internal/utils/styles-renderer.mjs +0 -40
  182. package/esm2022/internal/utils/watch-content-exist.mjs +0 -6
  183. package/esm2022/message/base-message.mjs +0 -90
  184. package/esm2022/message/index.mjs +0 -4
  185. package/esm2022/message/message-animations.mjs +0 -32
  186. package/esm2022/message/message-wrapper.component.mjs +0 -14
  187. package/esm2022/message/message.component.mjs +0 -70
  188. package/esm2022/message/message.config.mjs +0 -16
  189. package/esm2022/message/message.module.mjs +0 -31
  190. package/esm2022/message/message.service.mjs +0 -29
  191. package/esm2022/notification/index.mjs +0 -5
  192. package/esm2022/notification/notification-wrapper.component.mjs +0 -16
  193. package/esm2022/notification/notification.component.mjs +0 -103
  194. package/esm2022/notification/notification.config.mjs +0 -7
  195. package/esm2022/notification/notification.module.mjs +0 -36
  196. package/esm2022/notification/notification.service.mjs +0 -29
  197. package/esm2022/paginator/index.mjs +0 -4
  198. package/esm2022/paginator/paginator-intl.mjs +0 -21
  199. package/esm2022/paginator/paginator.component.mjs +0 -134
  200. package/esm2022/paginator/paginator.module.mjs +0 -37
  201. package/esm2022/radio/base-radio.mjs +0 -67
  202. package/esm2022/radio/index.mjs +0 -6
  203. package/esm2022/radio/radio-button/radio-button.component.mjs +0 -41
  204. package/esm2022/radio/radio-group/radio-group.component.mjs +0 -68
  205. package/esm2022/radio/radio.component.mjs +0 -23
  206. package/esm2022/radio/radio.module.mjs +0 -36
  207. package/esm2022/radio/radio.types.mjs +0 -6
  208. package/esm2022/scrolling/fixed-size-table-virtual-scroll-strategy.mjs +0 -81
  209. package/esm2022/scrolling/fixed-size-table-virtual-scroll.directive.mjs +0 -120
  210. package/esm2022/scrolling/fixed-size-virtual-scroll.directive.mjs +0 -28
  211. package/esm2022/scrolling/index.mjs +0 -7
  212. package/esm2022/scrolling/scrolling.module.mjs +0 -30
  213. package/esm2022/scrolling/virtual-for-of.directive.mjs +0 -35
  214. package/esm2022/scrolling/virtual-scroll-viewport.component.mjs +0 -26
  215. package/esm2022/select/base-select.mjs +0 -327
  216. package/esm2022/select/helper-directives.mjs +0 -67
  217. package/esm2022/select/index.mjs +0 -10
  218. package/esm2022/select/multi-select/multi-select.component.mjs +0 -313
  219. package/esm2022/select/option/option.component.mjs +0 -113
  220. package/esm2022/select/option-group/option-group.component.mjs +0 -23
  221. package/esm2022/select/option-placeholder.component.mjs +0 -18
  222. package/esm2022/select/select.component.mjs +0 -116
  223. package/esm2022/select/select.module.mjs +0 -87
  224. package/esm2022/select/select.types.mjs +0 -7
  225. package/esm2022/select/validators.mjs +0 -79
  226. package/esm2022/shared/click-outside.directive.mjs +0 -29
  227. package/esm2022/shared/shared.module.mjs +0 -16
  228. package/esm2022/sort/index.mjs +0 -6
  229. package/esm2022/sort/sort-errors.mjs +0 -13
  230. package/esm2022/sort/sort-header.component.mjs +0 -68
  231. package/esm2022/sort/sort.directive.mjs +0 -75
  232. package/esm2022/sort/sort.module.mjs +0 -19
  233. package/esm2022/sort/sort.types.mjs +0 -2
  234. package/esm2022/status-bar/index.mjs +0 -4
  235. package/esm2022/status-bar/status-bar.component.mjs +0 -29
  236. package/esm2022/status-bar/status-bar.module.mjs +0 -18
  237. package/esm2022/status-bar/status-bar.types.mjs +0 -13
  238. package/esm2022/steps/index.mjs +0 -4
  239. package/esm2022/steps/steps.component.mjs +0 -173
  240. package/esm2022/steps/steps.module.mjs +0 -18
  241. package/esm2022/steps/types.mjs +0 -7
  242. package/esm2022/switch/index.mjs +0 -3
  243. package/esm2022/switch/switch.component.mjs +0 -46
  244. package/esm2022/switch/switch.module.mjs +0 -17
  245. package/esm2022/table/index.mjs +0 -16
  246. package/esm2022/table/table-cell-def.directive.mjs +0 -26
  247. package/esm2022/table/table-cell.component.mjs +0 -125
  248. package/esm2022/table/table-cell.directive.mjs +0 -29
  249. package/esm2022/table/table-column-def.directive.mjs +0 -32
  250. package/esm2022/table/table-column-resizable.directive.mjs +0 -150
  251. package/esm2022/table/table-header-cell-def.directive.mjs +0 -26
  252. package/esm2022/table/table-header-cell.directive.mjs +0 -25
  253. package/esm2022/table/table-header-row-def.directive.mjs +0 -42
  254. package/esm2022/table/table-header-row.component.mjs +0 -26
  255. package/esm2022/table/table-placeholder.directive.mjs +0 -32
  256. package/esm2022/table/table-row-def.directive.mjs +0 -38
  257. package/esm2022/table/table-row.component.mjs +0 -44
  258. package/esm2022/table/table-scroll.directive.mjs +0 -131
  259. package/esm2022/table/table.component.mjs +0 -83
  260. package/esm2022/table/table.module.mjs +0 -82
  261. package/esm2022/table-of-contents/index.mjs +0 -5
  262. package/esm2022/table-of-contents/table-of-contents.module.mjs +0 -32
  263. package/esm2022/table-of-contents/toc-container.directive.mjs +0 -110
  264. package/esm2022/table-of-contents/toc-content.directive.mjs +0 -36
  265. package/esm2022/table-of-contents/toc-link.directive.mjs +0 -45
  266. package/esm2022/tabs/index.mjs +0 -9
  267. package/esm2022/tabs/tab-body.component.mjs +0 -148
  268. package/esm2022/tabs/tab-context.service.mjs +0 -28
  269. package/esm2022/tabs/tab-group.component.mjs +0 -258
  270. package/esm2022/tabs/tab-header-active-indicator.component.mjs +0 -39
  271. package/esm2022/tabs/tab-header.component.mjs +0 -264
  272. package/esm2022/tabs/tab.component.mjs +0 -65
  273. package/esm2022/tabs/tabs.module.mjs +0 -97
  274. package/esm2022/tabs/tabs.types.mjs +0 -10
  275. package/esm2022/tag/check-tag/check-tag.component.mjs +0 -33
  276. package/esm2022/tag/index.mjs +0 -5
  277. package/esm2022/tag/tag.component.mjs +0 -65
  278. package/esm2022/tag/tag.module.mjs +0 -19
  279. package/esm2022/tag/tag.types.mjs +0 -8
  280. package/esm2022/theme/index.mjs +0 -6
  281. package/esm2022/theme/theme.module.mjs +0 -27
  282. package/esm2022/theme/theme.pipe.mjs +0 -85
  283. package/esm2022/theme/theme.service.mjs +0 -56
  284. package/esm2022/theme/theme.types.mjs +0 -2
  285. package/esm2022/theme/utils.mjs +0 -10
  286. package/esm2022/time-picker/component.mjs +0 -190
  287. package/esm2022/time-picker/constant.mjs +0 -5
  288. package/esm2022/time-picker/index.mjs +0 -6
  289. package/esm2022/time-picker/panel/panel.component.mjs +0 -236
  290. package/esm2022/time-picker/time-picker.module.mjs +0 -64
  291. package/esm2022/time-picker/time-picker.type.mjs +0 -13
  292. package/esm2022/tooltip/animations.mjs +0 -57
  293. package/esm2022/tooltip/base-tooltip.mjs +0 -325
  294. package/esm2022/tooltip/index.mjs +0 -9
  295. package/esm2022/tooltip/tooltip-active.directive.mjs +0 -50
  296. package/esm2022/tooltip/tooltip-copy.directive.mjs +0 -79
  297. package/esm2022/tooltip/tooltip-intl.mjs +0 -18
  298. package/esm2022/tooltip/tooltip.component.mjs +0 -75
  299. package/esm2022/tooltip/tooltip.directive.mjs +0 -48
  300. package/esm2022/tooltip/tooltip.module.mjs +0 -39
  301. package/esm2022/tooltip/tooltip.types.mjs +0 -19
  302. package/esm2022/tooltip/utils/index.mjs +0 -58
  303. package/esm2022/tree-select/index.mjs +0 -5
  304. package/esm2022/tree-select/tree-node-placeholder.component.mjs +0 -18
  305. package/esm2022/tree-select/tree-select.component.mjs +0 -324
  306. package/esm2022/tree-select/tree-select.module.mjs +0 -44
  307. package/esm2022/tree-select/tree-select.types.mjs +0 -2
@@ -1,136 +0,0 @@
1
- import { NgIf, NgTemplateOutlet } from '@angular/common';
2
- import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewEncapsulation, computed, signal, } from '@angular/core';
3
- import dayjs from 'dayjs';
4
- import { ButtonComponent } from '../../../button/button.component';
5
- import { I18nPipe } from '../../../i18n';
6
- import { IconComponent } from '../../../icon/icon.component';
7
- import { buildBem } from '../../../internal/utils';
8
- import { DateNavRange, Side } from '../../date-picker.type';
9
- import { MONTH, YEAR } from '../constant';
10
- import { calcRangeValue } from '../util';
11
- import * as i0 from "@angular/core";
12
- import * as i1 from "../../../i18n";
13
- const bem = buildBem('aui-calendar-header');
14
- export class CalendarHeaderComponent {
15
- get dateNavRange() {
16
- return this.$$dateNavRange();
17
- }
18
- set dateNavRange(val) {
19
- if (!val || this.$$dateNavRange() === val) {
20
- return;
21
- }
22
- this.$$dateNavRange.set(val);
23
- }
24
- get anchor() {
25
- return this.$$anchor();
26
- }
27
- set anchor(val) {
28
- if (!val || this.$$anchor() === val) {
29
- return;
30
- }
31
- this.$$anchor.set(val);
32
- }
33
- get _maxAvail() {
34
- return this.maxAvail ? dayjs(this.maxAvail) : null;
35
- }
36
- get _minAvail() {
37
- return this.minAvail ? dayjs(this.minAvail) : null;
38
- }
39
- constructor(i18nService) {
40
- this.i18nService = i18nService;
41
- this.navRangeChange = new EventEmitter();
42
- this.anchorChange = new EventEmitter();
43
- this.$$dateNavRange = signal(DateNavRange.Month);
44
- this.$$anchor = signal(dayjs());
45
- this.bem = bem;
46
- this.DateNavRange = DateNavRange;
47
- this.$monthBeforeYear = this.i18nService.$monthBeforeYear;
48
- this.$headerRange = computed(() => {
49
- const locale = this.i18nService.$locale();
50
- const [start, end] = Object.values(calcRangeValue(this.$$dateNavRange(), this.$$anchor())).map(date => date.toDate());
51
- return {
52
- start: {
53
- year: start.toLocaleDateString(locale, { year: 'numeric' }),
54
- month: start.toLocaleDateString(locale, { month: 'short' }),
55
- },
56
- end: {
57
- year: end?.toLocaleDateString(locale, { year: 'numeric' }),
58
- month: end?.toLocaleDateString(locale, { month: 'short' }),
59
- },
60
- };
61
- });
62
- this.clickNav = (range) => {
63
- if (![DateNavRange.Month, DateNavRange.Year].includes(range)) {
64
- return;
65
- }
66
- this.navRangeChange.next(range === DateNavRange.Month ? DateNavRange.Year : DateNavRange.Decade);
67
- };
68
- }
69
- shouldShowNav(type, side) {
70
- const availValue = (side === Side.Left ? this._minAvail : this._maxAvail)?.clone();
71
- if (side === Side.Left) {
72
- return type === DateNavRange.Month
73
- ? !this.anchor.subtract(1, 'month').isBefore(availValue, 'month')
74
- : type === DateNavRange.Year
75
- ? !this.anchor.subtract(1, 'year').isBefore(availValue, 'year')
76
- : false;
77
- }
78
- return type === DateNavRange.Month
79
- ? !this.anchor.add(1, 'month').isAfter(availValue, 'month')
80
- : type === DateNavRange.Year
81
- ? !this.anchor.add(1, 'year').isAfter(availValue, 'year')
82
- : false;
83
- }
84
- compareNavValue(type, constrain, anchor) {
85
- const range = calcRangeValue(type, anchor);
86
- const constrainValue = constrain;
87
- if (type === DateNavRange.Decade) {
88
- if (constrainValue.isBetween(range.start, range.end, YEAR)) {
89
- return 0;
90
- }
91
- return constrainValue.isBefore(range.start) ? -1 : 1;
92
- }
93
- return constrainValue.isSame(range.start, MONTH)
94
- ? 0
95
- : constrainValue.isBefore(range.start, MONTH)
96
- ? -1
97
- : 1;
98
- }
99
- navHead(range, value) {
100
- let anchor;
101
- switch (range) {
102
- case DateNavRange.Month: {
103
- anchor = this.anchor.add(value, MONTH);
104
- break;
105
- }
106
- case DateNavRange.Year: {
107
- anchor = this.anchor.add(value, YEAR);
108
- break;
109
- }
110
- case DateNavRange.Decade: {
111
- anchor = this.anchor.add(value, YEAR);
112
- break;
113
- }
114
- }
115
- this.anchorChange.next(anchor);
116
- }
117
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: CalendarHeaderComponent, deps: [{ token: i1.I18nService }], target: i0.ɵɵFactoryTarget.Component }); }
118
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.6", type: CalendarHeaderComponent, isStandalone: true, selector: "aui-calendar-header", inputs: { dateNavRange: "dateNavRange", anchor: "anchor", maxAvail: "maxAvail", minAvail: "minAvail" }, outputs: { navRangeChange: "navRangeChange", anchorChange: "anchorChange" }, ngImport: i0, template: "<div [class]=\"bem.element('container')\">\n <div>\n <ng-container\n *ngIf=\"dateNavRange !== DateNavRange.Decade\"\n [ngTemplateOutlet]=\"yearControl\"\n [ngTemplateOutletContext]=\"{ side: 'left' }\"\n ></ng-container>\n\n <ng-container\n *ngIf=\"dateNavRange === DateNavRange.Decade\"\n [ngTemplateOutlet]=\"decadeControl\"\n [ngTemplateOutletContext]=\"{ side: 'left' }\"\n ></ng-container>\n </div>\n <!-- \u5185\u5BB9\u533A -->\n <span\n *ngIf=\"dateNavRange === DateNavRange.Month\"\n [class]=\"bem.element('nav-content')\"\n >\n <ng-container\n [ngTemplateOutlet]=\"$monthBeforeYear() ? monthTemplate : yearTemplate\"\n ></ng-container>\n <div class=\"separator\"></div>\n <ng-container\n [ngTemplateOutlet]=\"$monthBeforeYear() ? yearTemplate : monthTemplate\"\n ></ng-container>\n </span>\n\n <span\n *ngIf=\"dateNavRange === DateNavRange.Year\"\n [class]=\"bem.element('nav-content')\"\n >\n <button\n aui-button=\"text\"\n (click)=\"clickNav(DateNavRange.Year)\"\n >\n {{ $headerRange().start.year }}\n </button>\n </span>\n\n <span\n *ngIf=\"dateNavRange === DateNavRange.Decade\"\n [class]=\"bem.element('nav-content')\"\n >\n {{ $headerRange().start.year }} - {{ $headerRange().end.year }}\n </span>\n\n <div [class]=\"bem.element('nav-action')\">\n <ng-container\n *ngIf=\"dateNavRange !== DateNavRange.Decade\"\n [ngTemplateOutlet]=\"yearControl\"\n [ngTemplateOutletContext]=\"{ side: 'right' }\"\n ></ng-container>\n\n <ng-container\n *ngIf=\"dateNavRange === DateNavRange.Decade\"\n [ngTemplateOutlet]=\"decadeControl\"\n [ngTemplateOutletContext]=\"{ side: 'right' }\"\n ></ng-container>\n </div>\n</div>\n\n<ng-template\n #yearControl\n let-side=\"side\"\n>\n <span class=\"action-bar\">\n <button\n aui-button=\"text\"\n size=\"mini\"\n [square]=\"true\"\n *ngIf=\"side === 'right'\"\n [class.hidden]=\"\n !shouldShowNav(DateNavRange.Month, side) ||\n dateNavRange !== DateNavRange.Month\n \"\n (click)=\"navHead(DateNavRange.Month, 1)\"\n >\n <aui-icon icon=\"angle_right\"></aui-icon>\n </button>\n <button\n aui-button=\"text\"\n size=\"mini\"\n [square]=\"true\"\n (click)=\"navHead(DateNavRange.Year, side === 'left' ? -1 : 1)\"\n [class.hidden]=\"!shouldShowNav(DateNavRange.Year, side)\"\n >\n <aui-icon\n [icon]=\"side === 'left' ? 'angles_left' : 'angles_right'\"\n ></aui-icon>\n </button>\n <button\n aui-button=\"text\"\n size=\"mini\"\n [square]=\"true\"\n *ngIf=\"side === 'left'\"\n [class.hidden]=\"\n !shouldShowNav(DateNavRange.Month, side) ||\n dateNavRange !== DateNavRange.Month\n \"\n (click)=\"navHead(DateNavRange.Month, -1)\"\n >\n <aui-icon icon=\"angle_left\"></aui-icon>\n </button>\n </span>\n</ng-template>\n\n<ng-template\n #decadeControl\n let-side=\"side\"\n>\n <button\n aui-button=\"text\"\n size=\"mini\"\n [square]=\"true\"\n (click)=\"navHead(DateNavRange.Decade, side === 'left' ? -10 : 10)\"\n [class.hidden]=\"!shouldShowNav(DateNavRange.Decade, side)\"\n >\n <aui-icon\n [icon]=\"side === 'left' ? 'angles_left' : 'angles_right'\"\n ></aui-icon>\n </button>\n</ng-template>\n\n<ng-template #yearTemplate>\n <button\n aui-button=\"text\"\n class=\"header-range\"\n (click)=\"clickNav(DateNavRange.Year)\"\n >\n {{ $headerRange().start.year }}\n </button>\n</ng-template>\n<ng-template #monthTemplate>\n <button\n aui-button=\"text\"\n class=\"header-range\"\n (click)=\"clickNav(DateNavRange.Month)\"\n >\n {{ $headerRange().start.month }}\n </button>\n</ng-template>\n", styles: [".aui-calendar-header__container{height:24px;display:flex;align-items:center;justify-content:space-between}.aui-calendar-header__nav-content{flex:1;max-width:calc(100% - var(--aui-inline-height-xs) * 4 - var(--aui-spacing-s) * 2);display:flex;flex-wrap:wrap;justify-content:center;align-items:center;font-size:var(--aui-font-size-l);color:rgb(var(--aui-color-main-text));font-weight:var(--aui-font-weight-bolder)}.aui-calendar-header__nav-content .separator{margin:0 var(--aui-spacing-s)}.aui-calendar-header__nav-content .aui-button--text{color:rgb(var(--aui-color-main-text))}.aui-calendar-header__nav-content .aui-button--text .aui-button__content{font-size:var(--aui-font-size-l);font-weight:var(--aui-font-weight-bolder);padding:0}.aui-calendar-header__nav-content .aui-button--text:hover{background-color:transparent;color:rgb(var(--aui-color-primary));text-decoration:none!important}.aui-calendar-header__nav-content .aui-button--text+.aui-button--text{margin-left:0}.aui-calendar-header__nav-content .aui-button--text.header-range{max-width:100%}.action-bar{width:52px;display:flex}.action-bar .hidden{opacity:0;pointer-events:none}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ButtonComponent, selector: "button[aui-button]", inputs: ["aui-button", "size", "plain", "loading", "round", "square"] }, { kind: "component", type: IconComponent, selector: "aui-icon", inputs: ["icon", "light", "dark", "link", "margin", "size", "color", "background", "backgroundColor"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
119
- }
120
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: CalendarHeaderComponent, decorators: [{
121
- type: Component,
122
- args: [{ selector: 'aui-calendar-header', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgIf, NgTemplateOutlet, ButtonComponent, IconComponent, I18nPipe], template: "<div [class]=\"bem.element('container')\">\n <div>\n <ng-container\n *ngIf=\"dateNavRange !== DateNavRange.Decade\"\n [ngTemplateOutlet]=\"yearControl\"\n [ngTemplateOutletContext]=\"{ side: 'left' }\"\n ></ng-container>\n\n <ng-container\n *ngIf=\"dateNavRange === DateNavRange.Decade\"\n [ngTemplateOutlet]=\"decadeControl\"\n [ngTemplateOutletContext]=\"{ side: 'left' }\"\n ></ng-container>\n </div>\n <!-- \u5185\u5BB9\u533A -->\n <span\n *ngIf=\"dateNavRange === DateNavRange.Month\"\n [class]=\"bem.element('nav-content')\"\n >\n <ng-container\n [ngTemplateOutlet]=\"$monthBeforeYear() ? monthTemplate : yearTemplate\"\n ></ng-container>\n <div class=\"separator\"></div>\n <ng-container\n [ngTemplateOutlet]=\"$monthBeforeYear() ? yearTemplate : monthTemplate\"\n ></ng-container>\n </span>\n\n <span\n *ngIf=\"dateNavRange === DateNavRange.Year\"\n [class]=\"bem.element('nav-content')\"\n >\n <button\n aui-button=\"text\"\n (click)=\"clickNav(DateNavRange.Year)\"\n >\n {{ $headerRange().start.year }}\n </button>\n </span>\n\n <span\n *ngIf=\"dateNavRange === DateNavRange.Decade\"\n [class]=\"bem.element('nav-content')\"\n >\n {{ $headerRange().start.year }} - {{ $headerRange().end.year }}\n </span>\n\n <div [class]=\"bem.element('nav-action')\">\n <ng-container\n *ngIf=\"dateNavRange !== DateNavRange.Decade\"\n [ngTemplateOutlet]=\"yearControl\"\n [ngTemplateOutletContext]=\"{ side: 'right' }\"\n ></ng-container>\n\n <ng-container\n *ngIf=\"dateNavRange === DateNavRange.Decade\"\n [ngTemplateOutlet]=\"decadeControl\"\n [ngTemplateOutletContext]=\"{ side: 'right' }\"\n ></ng-container>\n </div>\n</div>\n\n<ng-template\n #yearControl\n let-side=\"side\"\n>\n <span class=\"action-bar\">\n <button\n aui-button=\"text\"\n size=\"mini\"\n [square]=\"true\"\n *ngIf=\"side === 'right'\"\n [class.hidden]=\"\n !shouldShowNav(DateNavRange.Month, side) ||\n dateNavRange !== DateNavRange.Month\n \"\n (click)=\"navHead(DateNavRange.Month, 1)\"\n >\n <aui-icon icon=\"angle_right\"></aui-icon>\n </button>\n <button\n aui-button=\"text\"\n size=\"mini\"\n [square]=\"true\"\n (click)=\"navHead(DateNavRange.Year, side === 'left' ? -1 : 1)\"\n [class.hidden]=\"!shouldShowNav(DateNavRange.Year, side)\"\n >\n <aui-icon\n [icon]=\"side === 'left' ? 'angles_left' : 'angles_right'\"\n ></aui-icon>\n </button>\n <button\n aui-button=\"text\"\n size=\"mini\"\n [square]=\"true\"\n *ngIf=\"side === 'left'\"\n [class.hidden]=\"\n !shouldShowNav(DateNavRange.Month, side) ||\n dateNavRange !== DateNavRange.Month\n \"\n (click)=\"navHead(DateNavRange.Month, -1)\"\n >\n <aui-icon icon=\"angle_left\"></aui-icon>\n </button>\n </span>\n</ng-template>\n\n<ng-template\n #decadeControl\n let-side=\"side\"\n>\n <button\n aui-button=\"text\"\n size=\"mini\"\n [square]=\"true\"\n (click)=\"navHead(DateNavRange.Decade, side === 'left' ? -10 : 10)\"\n [class.hidden]=\"!shouldShowNav(DateNavRange.Decade, side)\"\n >\n <aui-icon\n [icon]=\"side === 'left' ? 'angles_left' : 'angles_right'\"\n ></aui-icon>\n </button>\n</ng-template>\n\n<ng-template #yearTemplate>\n <button\n aui-button=\"text\"\n class=\"header-range\"\n (click)=\"clickNav(DateNavRange.Year)\"\n >\n {{ $headerRange().start.year }}\n </button>\n</ng-template>\n<ng-template #monthTemplate>\n <button\n aui-button=\"text\"\n class=\"header-range\"\n (click)=\"clickNav(DateNavRange.Month)\"\n >\n {{ $headerRange().start.month }}\n </button>\n</ng-template>\n", styles: [".aui-calendar-header__container{height:24px;display:flex;align-items:center;justify-content:space-between}.aui-calendar-header__nav-content{flex:1;max-width:calc(100% - var(--aui-inline-height-xs) * 4 - var(--aui-spacing-s) * 2);display:flex;flex-wrap:wrap;justify-content:center;align-items:center;font-size:var(--aui-font-size-l);color:rgb(var(--aui-color-main-text));font-weight:var(--aui-font-weight-bolder)}.aui-calendar-header__nav-content .separator{margin:0 var(--aui-spacing-s)}.aui-calendar-header__nav-content .aui-button--text{color:rgb(var(--aui-color-main-text))}.aui-calendar-header__nav-content .aui-button--text .aui-button__content{font-size:var(--aui-font-size-l);font-weight:var(--aui-font-weight-bolder);padding:0}.aui-calendar-header__nav-content .aui-button--text:hover{background-color:transparent;color:rgb(var(--aui-color-primary));text-decoration:none!important}.aui-calendar-header__nav-content .aui-button--text+.aui-button--text{margin-left:0}.aui-calendar-header__nav-content .aui-button--text.header-range{max-width:100%}.action-bar{width:52px;display:flex}.action-bar .hidden{opacity:0;pointer-events:none}\n"] }]
123
- }], ctorParameters: () => [{ type: i1.I18nService }], propDecorators: { dateNavRange: [{
124
- type: Input
125
- }], anchor: [{
126
- type: Input
127
- }], maxAvail: [{
128
- type: Input
129
- }], minAvail: [{
130
- type: Input
131
- }], navRangeChange: [{
132
- type: Output
133
- }], anchorChange: [{
134
- type: Output
135
- }] } });
136
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2RhdGUtcGlja2VyL2NhbGVuZGFyL2hlYWRlci9jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvZGF0ZS1waWNrZXIvY2FsZW5kYXIvaGVhZGVyL3RlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLGlCQUFpQixFQUNqQixRQUFRLEVBQ1IsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sS0FBNEIsTUFBTSxPQUFPLENBQUM7QUFFakQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxRQUFRLEVBQWUsTUFBTSxlQUFlLENBQUM7QUFDdEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzdELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVELE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxTQUFTLENBQUM7OztBQUV6QyxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMscUJBQXFCLENBQUMsQ0FBQztBQVc1QyxNQUFNLE9BQU8sdUJBQXVCO0lBQ2xDLElBQ0ksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFRCxJQUFJLFlBQVksQ0FBQyxHQUFHO1FBQ2xCLElBQUks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QUFLLENBQUMsQ0FBQztnQkFDdkMsTUFBTTtZQUNSLENBQUM7WUFDRCxLQUFLLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO2dCQUN2QixNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUN0QyxNQUFNO1lBQ1IsQ0FBQztZQUNELEtBQUssWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7Z0JBQ3pCLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQ3RDLE1BQU07WUFDUixDQUFDO1FBQ0gsQ0FBQztRQUNELElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2pDLENBQUM7OEdBcklVLHVCQUF1QjtrR0FBdkIsdUJBQXVCLG9RQ2hDcEMscXdIQThJQSwrcUNEaEhZLElBQUksNkZBQUUsZ0JBQWdCLG9KQUFFLGVBQWUsc0lBQUUsYUFBYTs7MkZBRXJELHVCQUF1QjtrQkFUbkMsU0FBUzsrQkFDRSxxQkFBcUIsaUJBR2hCLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQLENBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsUUFBUSxDQUFDO2dGQUl2RSxZQUFZO3NCQURmLEtBQUs7Z0JBYUYsTUFBTTtzQkFEVCxLQUFLO2dCQWFOLFFBQVE7c0JBRFAsS0FBSztnQkFRTixRQUFRO3NCQURQLEtBQUs7Z0JBUU4sY0FBYztzQkFEYixNQUFNO2dCQUlQLFlBQVk7c0JBRFgsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nSWYsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgY29tcHV0ZWQsXG4gIHNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgZGF5anMsIHsgQ29uZmlnVHlwZSwgRGF5anMgfSBmcm9tICdkYXlqcyc7XG5cbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IEkxOG5QaXBlLCBJMThuU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2kxOG4nO1xuaW1wb3J0IHsgSWNvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2ljb24vaWNvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgYnVpbGRCZW0gfSBmcm9tICcuLi8uLi8uLi9pbnRlcm5hbC91dGlscyc7XG5pbXBvcnQgeyBEYXRlTmF2UmFuZ2UsIFNpZGUgfSBmcm9tICcuLi8uLi9kYXRlLXBpY2tlci50eXBlJztcbmltcG9ydCB7IE1PTlRILCBZRUFSIH0gZnJvbSAnLi4vY29uc3RhbnQnO1xuaW1wb3J0IHsgY2FsY1JhbmdlVmFsdWUgfSBmcm9tICcuLi91dGlsJztcblxuY29uc3QgYmVtID0gYnVpbGRCZW0oJ2F1aS1jYWxlbmRhci1oZWFkZXInKTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXVpLWNhbGVuZGFyLWhlYWRlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi90ZW1wbGF0ZS5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc3R5bGUuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW05nSWYsIE5nVGVtcGxhdGVPdXRsZXQsIEJ1dHRvbkNvbXBvbmVudCwgSWNvbkNvbXBvbmVudCwgSTE4blBpcGVdLFxufSlcbmV4cG9ydCBjbGFzcyBDYWxlbmRhckhlYWRlckNvbXBvbmVudCB7XG4gIEBJbnB1dCgpXG4gIGdldCBkYXRlTmF2UmFuZ2UoKSB7XG4gICAgcmV0dXJuIHRoaXMuJCRkYXRlTmF2UmFuZ2UoKTtcbiAgfVxuXG4gIHNldCBkYXRlTmF2UmFuZ2UodmFsKSB7XG4gICAgaWYgKCF2YWwgfHwgdGhpcy4kJGRhdGVOYXZSYW5nZSgpID09PSB2YWwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy4kJGRhdGVOYXZSYW5nZS5zZXQodmFsKTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIGdldCBhbmNob3IoKSB7XG4gICAgcmV0dXJuIHRoaXMuJCRhbmNob3IoKTtcbiAgfVxuXG4gIHNldCBhbmNob3IodmFsKSB7XG4gICAgaWYgKCF2YWwgfHwgdGhpcy4kJGFuY2hvcigpID09PSB2YWwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy4kJGFuY2hvci5zZXQodmFsKTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIG1heEF2YWlsPzogQ29uZmlnVHlwZTtcblxuICBwcml2YXRlIGdldCBfbWF4QXZhaWwoKSB7XG4gICAgcmV0dXJuIHRoaXMubWF4QXZhaWwgPyBkYXlqcyh0aGlzLm1heEF2YWlsKSA6IG51bGw7XG4gIH1cblxuICBASW5wdXQoKVxuICBtaW5BdmFpbD86IENvbmZpZ1R5cGU7XG5cbiAgcHJpdmF0ZSBnZXQgX21pbkF2YWlsKCkge1xuICAgIHJldHVybiB0aGlzLm1pbkF2YWlsID8gZGF5anModGhpcy5taW5BdmFpbCkgOiBudWxsO1xuICB9XG5cbiAgQE91dHB1dCgpXG4gIG5hdlJhbmdlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlTmF2UmFuZ2U+KCk7XG5cbiAgQE91dHB1dCgpXG4gIGFuY2hvckNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8RGF5anM+KCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSAkJGRhdGVOYXZSYW5nZSA9IHNpZ25hbChEYXRlTmF2UmFuZ2UuTW9udGgpO1xuICBwcml2YXRlIHJlYWRvbmx5ICQkYW5jaG9yID0gc2lnbmFsKGRheWpzKCkpO1xuXG4gIGJlbSA9IGJlbTtcblxuICBEYXRlTmF2UmFuZ2UgPSBEYXRlTmF2UmFuZ2U7XG5cbiAgJG1vbnRoQmVmb3JlWWVhciA9IHRoaXMuaTE4blNlcnZpY2UuJG1vbnRoQmVmb3JlWWVhcjtcblxuICAkaGVhZGVyUmFuZ2UgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgbG9jYWxlID0gdGhpcy5pMThuU2VydmljZS4kbG9jYWxlKCk7XG4gICAgY29uc3QgW3N0YXJ0LCBlbmRdID0gT2JqZWN0LnZhbHVlcyhcbiAgICAgIGNhbGNSYW5nZVZhbHVlKHRoaXMuJCRkYXRlTmF2UmFuZ2UoKSwgdGhpcy4kJGFuY2hvcigpKSxcbiAgICApLm1hcChkYXRlID0+IGRhdGUudG9EYXRlKCkpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHN0YXJ0OiB7XG4gICAgICAgIHllYXI6IHN0YXJ0LnRvTG9jYWxlRGF0ZVN0cmluZyhsb2NhbGUsIHsgeWVhcjogJ251bWVyaWMnIH0pLFxuICAgICAgICBtb250aDogc3RhcnQudG9Mb2NhbGVEYXRlU3RyaW5nKGxvY2FsZSwgeyBtb250aDogJ3Nob3J0JyB9KSxcbiAgICAgIH0sXG4gICAgICBlbmQ6IHtcbiAgICAgICAgeWVhcjogZW5kPy50b0xvY2FsZURhdGVTdHJpbmcobG9jYWxlLCB7IHllYXI6ICdudW1lcmljJyB9KSxcbiAgICAgICAgbW9udGg6IGVuZD8udG9Mb2NhbGVEYXRlU3RyaW5nKGxvY2FsZSwgeyBtb250aDogJ3Nob3J0JyB9KSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfSk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBpMThuU2VydmljZTogSTE4blNlcnZpY2UpIHt9XG5cbiAgLy8gbWF4QXZhaWwgPiBjdXJyZW50IGRhdGUg77yacmlnaHQgYnRuIGhpZGVcbiAgLy8gbWluQXZhaWwgPiBjdXJyZW50IGRhdGUg77yabGVmdCBidG4gaGlkZVxuICBzaG91bGRTaG93TmF2KHR5cGU6IERhdGVOYXZSYW5nZSwgc2lkZTogU2lkZSkge1xuICAgIGNvbnN0IGF2YWlsVmFsdWUgPSAoXG4gICAgICBzaWRlID09PSBTaWRlLkxlZnQgPyB0aGlzLl9taW5BdmFpbCA6IHRoaXMuX21heEF2YWlsXG4gICAgKT8uY2xvbmUoKTtcbiAgICAvKipcbiAgICAgKiDlr7nkuo4gcmFuZ2UtcGlja2VyXG4gICAgICog5bem5L6n6YOo5YiGIG1pbkF2YWlsID0gbWluRGF0ZSwgbWF4QXZhaWwgPSBtaW4obWF4RGF0YSwgcmlnaHRBbmNob3Ip77yM5LuO6ICM5bem5L6n6YOo5YiG55qE5oyJ6ZKu77yM5LuF5Zyo5bCP5LqO5Y+z5L6n6YOo5YiG5pe25pi+56S6XG4gICAgICog5Y+z5L6n6YOo5YiGIG1heEF2YWlsID0gbWF4RGF0ZSwgbWluQXZhaWwgPSBtYXgobWluRGF0YSwgbGVmdEFuY2hvcinvvIzku47ogIzlt6bkvqfpg6jliIbnmoTmjInpkq7vvIzku4XlnKjlsI/kuo7lj7Pkvqfpg6jliIbml7bmmL7npLpcbiAgICAgKi9cbiAgICBpZiAoc2lkZSA9PT0gU2lkZS5MZWZ0KSB7XG4gICAgICByZXR1cm4gdHlwZSA9PT0gRGF0ZU5hdlJhbmdlLk1vbnRoXG4gICAgICAgID8gIXRoaXMuYW5jaG9yLnN1YnRyYWN0KDEsICdtb250aCcpLmlzQmVmb3JlKGF2YWlsVmFsdWUsICdtb250aCcpXG4gICAgICAgIDogdHlwZSA9PT0gRGF0ZU5hdlJhbmdlLlllYXJcbiAgICAgICAgPyAhdGhpcy5hbmNob3Iuc3VidHJhY3QoMSwgJ3llYXInKS5pc0JlZm9yZShhdmFpbFZhbHVlLCAneWVhcicpXG4gICAgICAgIDogZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0eXBlID09PSBEYXRlTmF2UmFuZ2UuTW9udGhcbiAgICAgID8gIXRoaXMuYW5jaG9yLmFkZCgxLCAnbW9udGgnKS5pc0FmdGVyKGF2YWlsVmFsdWUsICdtb250aCcpXG4gICAgICA6IHR5cGUgPT09IERhdGVOYXZSYW5nZS5ZZWFyXG4gICAgICA/ICF0aGlzLmFuY2hvci5hZGQoMSwgJ3llYXInKS5pc0FmdGVyKGF2YWlsVmFsdWUsICd5ZWFyJylcbiAgICAgIDogZmFsc2U7XG4gIH1cblxuICAvLyBAcmV0dXJuIGlzQmV0d2Vlbnxpc0VxdWFsOjAsIGlzQmVmb3JlOi0xLGlzQWZ0ZXI6MVxuICBjb21wYXJlTmF2VmFsdWUodHlwZTogRGF0ZU5hdlJhbmdlLCBjb25zdHJhaW46IERheWpzLCBhbmNob3I6IERheWpzKSB7XG4gICAgY29uc3QgcmFuZ2UgPSBjYWxjUmFuZ2VWYWx1ZSh0eXBlLCBhbmNob3IpO1xuICAgIGNvbnN0IGNvbnN0cmFpblZhbHVlID0gY29uc3RyYWluO1xuICAgIGlmICh0eXBlID09PSBEYXRlTmF2UmFuZ2UuRGVjYWRlKSB7XG4gICAgICBpZiAoY29uc3RyYWluVmFsdWUuaXNCZXR3ZWVuKHJhbmdlLnN0YXJ0LCByYW5nZS5lbmQsIFlFQVIpKSB7XG4gICAgICAgIHJldHVybiAwO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGNvbnN0cmFpblZhbHVlLmlzQmVmb3JlKHJhbmdlLnN0YXJ0KSA/IC0xIDogMTtcbiAgICB9XG4gICAgcmV0dXJuIGNvbnN0cmFpblZhbHVlLmlzU2FtZShyYW5nZS5zdGFydCwgTU9OVEgpXG4gICAgICA/IDBcbiAgICAgIDogY29uc3RyYWluVmFsdWUuaXNCZWZvcmUocmFuZ2Uuc3RhcnQsIE1PTlRIKVxuICAgICAgICA/IC0xXG4gICAgICAgIDogMTtcbiAgfVxuXG4gIG5hdkhlYWQocmFuZ2U6IERhdGVOYXZSYW5nZSwgdmFsdWU6IG51bWJlcikge1xuICAgIGxldCBhbmNob3I6IERheWpzO1xuICAgIHN3aXRjaCAocmFuZ2UpIHtcbiAgICAgIGNhc2UgRGF0ZU5hdlJhbmdlLk1vbnRoOiB7XG4gICAgICAgIGFuY2hvciA9IHRoaXMuYW5jaG9yLmFkZCh2YWx1ZSwgTU9OVEgpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgRGF0ZU5hdlJhbmdlLlllYXI6IHtcbiAgICAgICAgYW5jaG9yID0gdGhpcy5hbmNob3IuYWRkKHZhbHVlLCBZRUFSKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlIERhdGVOYXZSYW5nZS5EZWNhZGU6IHtcbiAgICAgICAgYW5jaG9yID0gdGhpcy5hbmNob3IuYWRkKHZhbHVlLCBZRUFSKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuYW5jaG9yQ2hhbmdlLm5leHQoYW5jaG9yKTtcbiAgfVxuXG4gIGNsaWNrTmF2ID0gKHJhbmdlOiBEYXRlTmF2UmFuZ2UpID0+IHtcbiAgICBpZiAoIVtEYXRlTmF2UmFuZ2UuTW9udGgsIERhdGVOYXZSYW5nZS5ZZWFyXS5pbmNsdWRlcyhyYW5nZSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5uYXZSYW5nZUNoYW5nZS5uZXh0KFxuICAgICAgcmFuZ2UgPT09IERhdGVOYXZSYW5nZS5Nb250aCA/IERhdGVOYXZSYW5nZS5ZZWFyIDogRGF0ZU5hdlJhbmdlLkRlY2FkZSxcbiAgICApO1xuICB9O1xufVxuIiwiPGRpdiBbY2xhc3NdPVwiYmVtLmVsZW1lbnQoJ2NvbnRhaW5lcicpXCI+XG4gIDxkaXY+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgKm5nSWY9XCJkYXRlTmF2UmFuZ2UgIT09IERhdGVOYXZSYW5nZS5EZWNhZGVcIlxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwieWVhckNvbnRyb2xcIlxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgc2lkZTogJ2xlZnQnIH1cIlxuICAgID48L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICpuZ0lmPVwiZGF0ZU5hdlJhbmdlID09PSBEYXRlTmF2UmFuZ2UuRGVjYWRlXCJcbiAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImRlY2FkZUNvbnRyb2xcIlxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgc2lkZTogJ2xlZnQnIH1cIlxuICAgID48L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG4gIDwhLS0g5YaF5a655Yy6IC0tPlxuICA8c3BhblxuICAgICpuZ0lmPVwiZGF0ZU5hdlJhbmdlID09PSBEYXRlTmF2UmFuZ2UuTW9udGhcIlxuICAgIFtjbGFzc109XCJiZW0uZWxlbWVudCgnbmF2LWNvbnRlbnQnKVwiXG4gID5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCIkbW9udGhCZWZvcmVZZWFyKCkgPyBtb250aFRlbXBsYXRlIDogeWVhclRlbXBsYXRlXCJcbiAgICA+PC9uZy1jb250YWluZXI+XG4gICAgPGRpdiBjbGFzcz1cInNlcGFyYXRvclwiPjwvZGl2PlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIiRtb250aEJlZm9yZVllYXIoKSA/IHllYXJUZW1wbGF0ZSA6IG1vbnRoVGVtcGxhdGVcIlxuICAgID48L25nLWNvbnRhaW5lcj5cbiAgPC9zcGFuPlxuXG4gIDxzcGFuXG4gICAgKm5nSWY9XCJkYXRlTmF2UmFuZ2UgPT09IERhdGVOYXZSYW5nZS5ZZWFyXCJcbiAgICBbY2xhc3NdPVwiYmVtLmVsZW1lbnQoJ25hdi1jb250ZW50JylcIlxuICA+XG4gICAgPGJ1dHRvblxuICAgICAgYXVpLWJ1dHRvbj1cInRleHRcIlxuICAgICAgKGNsaWNrKT1cImNsaWNrTmF2KERhdGVOYXZSYW5nZS5ZZWFyKVwiXG4gICAgPlxuICAgICAge3sgJGhlYWRlclJhbmdlKCkuc3RhcnQueWVhciB9fVxuICAgIDwvYnV0dG9uPlxuICA8L3NwYW4+XG5cbiAgPHNwYW5cbiAgICAqbmdJZj1cImRhdGVOYXZSYW5nZSA9PT0gRGF0ZU5hdlJhbmdlLkRlY2FkZVwiXG4gICAgW2NsYXNzXT1cImJlbS5lbGVtZW50KCduYXYtY29udGVudCcpXCJcbiAgPlxuICAgIHt7ICRoZWFkZXJSYW5nZSgpLnN0YXJ0LnllYXIgfX0gLSB7eyAkaGVhZGVyUmFuZ2UoKS5lbmQueWVhciB9fVxuICA8L3NwYW4+XG5cbiAgPGRpdiBbY2xhc3NdPVwiYmVtLmVsZW1lbnQoJ25hdi1hY3Rpb24nKVwiPlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICpuZ0lmPVwiZGF0ZU5hdlJhbmdlICE9PSBEYXRlTmF2UmFuZ2UuRGVjYWRlXCJcbiAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInllYXJDb250cm9sXCJcbiAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IHNpZGU6ICdyaWdodCcgfVwiXG4gICAgPjwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgKm5nSWY9XCJkYXRlTmF2UmFuZ2UgPT09IERhdGVOYXZSYW5nZS5EZWNhZGVcIlxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiZGVjYWRlQ29udHJvbFwiXG4gICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBzaWRlOiAncmlnaHQnIH1cIlxuICAgID48L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlXG4gICN5ZWFyQ29udHJvbFxuICBsZXQtc2lkZT1cInNpZGVcIlxuPlxuICA8c3BhbiBjbGFzcz1cImFjdGlvbi1iYXJcIj5cbiAgICA8YnV0dG9uXG4gICAgICBhdWktYnV0dG9uPVwidGV4dFwiXG4gICAgICBzaXplPVwibWluaVwiXG4gICAgICBbc3F1YXJlXT1cInRydWVcIlxuICAgICAgKm5nSWY9XCJzaWRlID09PSAncmlnaHQnXCJcbiAgICAgIFtjbGFzcy5oaWRkZW5dPVwiXG4gICAgICAgICFzaG91bGRTaG93TmF2KERhdGVOYXZSYW5nZS5Nb250aCwgc2lkZSkgfHxcbiAgICAgICAgZGF0ZU5hdlJhbmdlICE9PSBEYXRlTmF2UmFuZ2UuTW9udGhcbiAgICAgIFwiXG4gICAgICAoY2xpY2spPVwibmF2SGVhZChEYXRlTmF2UmFuZ2UuTW9udGgsIDEpXCJcbiAgICA+XG4gICAgICA8YXVpLWljb24gaWNvbj1cImFuZ2xlX3JpZ2h0XCI+PC9hdWktaWNvbj5cbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uXG4gICAgICBhdWktYnV0dG9uPVwidGV4dFwiXG4gICAgICBzaXplPVwibWluaVwiXG4gICAgICBbc3F1YXJlXT1cInRydWVcIlxuICAgICAgKGNsaWNrKT1cIm5hdkhlYWQoRGF0ZU5hdlJhbmdlLlllYXIsIHNpZGUgPT09ICdsZWZ0JyA/IC0xIDogMSlcIlxuICAgICAgW2NsYXNzLmhpZGRlbl09XCIhc2hvdWxkU2hvd05hdihEYXRlTmF2UmFuZ2UuWWVhciwgc2lkZSlcIlxuICAgID5cbiAgICAgIDxhdWktaWNvblxuICAgICAgICBbaWNvbl09XCJzaWRlID09PSAnbGVmdCcgPyAnYW5nbGVzX2xlZnQnIDogJ2FuZ2xlc19yaWdodCdcIlxuICAgICAgPjwvYXVpLWljb24+XG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvblxuICAgICAgYXVpLWJ1dHRvbj1cInRleHRcIlxuICAgICAgc2l6ZT1cIm1pbmlcIlxuICAgICAgW3NxdWFyZV09XCJ0cnVlXCJcbiAgICAgICpuZ0lmPVwic2lkZSA9PT0gJ2xlZnQnXCJcbiAgICAgIFtjbGFzcy5oaWRkZW5dPVwiXG4gICAgICAgICFzaG91bGRTaG93TmF2KERhdGVOYXZSYW5nZS5Nb250aCwgc2lkZSkgfHxcbiAgICAgICAgZGF0ZU5hdlJhbmdlICE9PSBEYXRlTmF2UmFuZ2UuTW9udGhcbiAgICAgIFwiXG4gICAgICAoY2xpY2spPVwibmF2SGVhZChEYXRlTmF2UmFuZ2UuTW9udGgsIC0xKVwiXG4gICAgPlxuICAgICAgPGF1aS1pY29uIGljb249XCJhbmdsZV9sZWZ0XCI+PC9hdWktaWNvbj5cbiAgICA8L2J1dHRvbj5cbiAgPC9zcGFuPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlXG4gICNkZWNhZGVDb250cm9sXG4gIGxldC1zaWRlPVwic2lkZVwiXG4+XG4gIDxidXR0b25cbiAgICBhdWktYnV0dG9uPVwidGV4dFwiXG4gICAgc2l6ZT1cIm1pbmlcIlxuICAgIFtzcXVhcmVdPVwidHJ1ZVwiXG4gICAgKGNsaWNrKT1cIm5hdkhlYWQoRGF0ZU5hdlJhbmdlLkRlY2FkZSwgc2lkZSA9PT0gJ2xlZnQnID8gLTEwIDogMTApXCJcbiAgICBbY2xhc3MuaGlkZGVuXT1cIiFzaG91bGRTaG93TmF2KERhdGVOYXZSYW5nZS5EZWNhZGUsIHNpZGUpXCJcbiAgPlxuICAgIDxhdWktaWNvblxuICAgICAgW2ljb25dPVwic2lkZSA9PT0gJ2xlZnQnID8gJ2FuZ2xlc19sZWZ0JyA6ICdhbmdsZXNfcmlnaHQnXCJcbiAgICA+PC9hdWktaWNvbj5cbiAgPC9idXR0b24+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3llYXJUZW1wbGF0ZT5cbiAgPGJ1dHRvblxuICAgIGF1aS1idXR0b249XCJ0ZXh0XCJcbiAgICBjbGFzcz1cImhlYWRlci1yYW5nZVwiXG4gICAgKGNsaWNrKT1cImNsaWNrTmF2KERhdGVOYXZSYW5nZS5ZZWFyKVwiXG4gID5cbiAgICB7eyAkaGVhZGVyUmFuZ2UoKS5zdGFydC55ZWFyIH19XG4gIDwvYnV0dG9uPlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjbW9udGhUZW1wbGF0ZT5cbiAgPGJ1dHRvblxuICAgIGF1aS1idXR0b249XCJ0ZXh0XCJcbiAgICBjbGFzcz1cImhlYWRlci1yYW5nZVwiXG4gICAgKGNsaWNrKT1cImNsaWNrTmF2KERhdGVOYXZSYW5nZS5Nb250aClcIlxuICA+XG4gICAge3sgJGhlYWRlclJhbmdlKCkuc3RhcnQubW9udGggfX1cbiAgPC9idXR0b24+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -1,154 +0,0 @@
1
- import { NgClass, NgIf, NgFor } from '@angular/common';
2
- import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewEncapsulation, } from '@angular/core';
3
- import dayjs from 'dayjs';
4
- import isBetween from 'dayjs/plugin/isBetween';
5
- import { ButtonComponent } from '../../../button/button.component';
6
- import { I18nPipe } from '../../../i18n/i18n.pipe';
7
- import { buildBem } from '../../../internal/utils';
8
- import { DateNavRange } from '../../date-picker.type';
9
- import { DAY, DAY_PANEL_COLUMN_COUNT, DAY_PANEL_ROW_COUNT, MONTH, MONTH_PANEL_COLUMN_COUNT, MONTH_PANEL_ROW_COUNT, YEAR, YEAR_PANEL_COLUMN_COUNT, YEAR_PANEL_ROW_COUNT, } from '../constant';
10
- import { calcRangeValue, composeDisabledDateFn, formatDate, getDatePanelIterable, getNavRangeByType, getTypeByNavRange, sortDates, } from '../util';
11
- import * as i0 from "@angular/core";
12
- dayjs.extend(isBetween);
13
- const bem = buildBem('aui-picker-panel');
14
- export class PickerPanelComponent {
15
- set weekStartDay(day) {
16
- const normalized = Math.max(Math.min(Math.round(day), 6), 0);
17
- this.weekDefs = [
18
- ...this.weekDefs.slice(normalized),
19
- ...this.weekDefs.slice(0, normalized),
20
- ];
21
- this._weekStartDay = normalized;
22
- }
23
- get weekStartDay() {
24
- return this._weekStartDay;
25
- }
26
- get disabledDateFn() {
27
- return composeDisabledDateFn(date => this.minDate && date.isBefore(this.minDate, 'date'), (date, navRange) => this.maxDate &&
28
- (navRange === DateNavRange.Decade
29
- ? date.isAfter(this.maxDate, 'year')
30
- : date.isAfter(this.maxDate, 'date')), this.disabledDate);
31
- }
32
- constructor(cdr) {
33
- this.cdr = cdr;
34
- this.anchor = dayjs();
35
- this.disabledDate = () => false;
36
- this._weekStartDay = 0;
37
- this.select = new EventEmitter();
38
- this.hovered = new EventEmitter();
39
- this.bem = bem;
40
- this.DateNavRange = DateNavRange;
41
- this.weekDefs = [
42
- 'sunday',
43
- 'monday',
44
- 'tuesday',
45
- 'wednesday',
46
- 'thursday',
47
- 'friday',
48
- 'saturday',
49
- ];
50
- }
51
- ngOnChanges() {
52
- const headerRange = calcRangeValue(this.navRange, this.anchor);
53
- this.renderPanelData(headerRange.start, this.navRange);
54
- }
55
- renderPanelData(date, navRange) {
56
- const value = [];
57
- let colCounts = 0;
58
- let rowCounts = 0;
59
- if (!this.panelData) {
60
- this.panelData = [[]];
61
- }
62
- const [...values] = getDatePanelIterable(date, navRange, this.weekStartDay);
63
- switch (navRange) {
64
- case DateNavRange.Month: {
65
- colCounts = DAY_PANEL_COLUMN_COUNT;
66
- rowCounts = DAY_PANEL_ROW_COUNT;
67
- break;
68
- }
69
- case DateNavRange.Decade: {
70
- colCounts = YEAR_PANEL_COLUMN_COUNT;
71
- rowCounts = YEAR_PANEL_ROW_COUNT;
72
- break;
73
- }
74
- case DateNavRange.Year: {
75
- colCounts = MONTH_PANEL_COLUMN_COUNT;
76
- rowCounts = MONTH_PANEL_ROW_COUNT;
77
- break;
78
- }
79
- }
80
- for (let k = 0; k < rowCounts; k++) {
81
- const row = [];
82
- for (let i = 0; i < colCounts; i++) {
83
- const cell = formatDate(navRange, values[k * colCounts + i], date);
84
- cell.isDisabled = this.disabledDateFn(cell.value, navRange);
85
- const sortedDates = sortDates(this.matchDates);
86
- if (sortedDates?.length === 2 && navRange === DateNavRange.Month) {
87
- if (cell.value.isBetween(sortedDates[0], sortedDates[1]) &&
88
- !cell.isBackground) {
89
- cell.inRange = true;
90
- }
91
- cell.isRangeStart =
92
- cell.value.isSame(sortedDates[0], DAY) && !cell.isBackground;
93
- cell.isRangeEnd =
94
- cell.value.isSame(sortedDates[1], DAY) && !cell.isBackground;
95
- if (cell.isRangeStart && cell.isRangeEnd) {
96
- cell.isRangeStart = false;
97
- cell.isRangeEnd = false;
98
- }
99
- }
100
- row.push(cell);
101
- }
102
- value.push(row);
103
- }
104
- this.panelData = value.slice();
105
- this.cdr.markForCheck();
106
- }
107
- match(value) {
108
- if (!this.matchDates?.filter(v => !!v)?.length ||
109
- getNavRangeByType(this.type) !== this.navRange) {
110
- return false;
111
- }
112
- return this.matchDates?.some(dateValue => this.navRange === DateNavRange.Decade
113
- ? value.isSame(dateValue, YEAR)
114
- : this.navRange === DateNavRange.Year
115
- ? value.isSame(dateValue, MONTH)
116
- : value.isSame(dateValue, DAY));
117
- }
118
- matchToday(value) {
119
- return value.isSame(dayjs(), getTypeByNavRange(this.navRange));
120
- }
121
- selectValue(value) {
122
- this.select.next(value);
123
- }
124
- trackByFn() {
125
- return this.navRange;
126
- }
127
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: PickerPanelComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
128
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.6", type: PickerPanelComponent, isStandalone: true, selector: "aui-picker-panel", inputs: { navRange: "navRange", type: "type", anchor: "anchor", matchDates: "matchDates", disabledDate: "disabledDate", weekStartDay: "weekStartDay", minDate: "minDate", maxDate: "maxDate" }, outputs: { select: "select", hovered: "hovered" }, usesOnChanges: true, ngImport: i0, template: "<div\n [class]=\"bem.element('container')\"\n [ngClass]=\"{\n 'day-panel-container': navRange === DateNavRange.Month,\n 'month-panel-container': navRange === DateNavRange.Year,\n 'year-panel-container': navRange === DateNavRange.Decade,\n }\"\n>\n <div\n [class]=\"[bem.element('row'), 'week-header'].join(' ')\"\n *ngIf=\"navRange === DateNavRange.Month\"\n >\n <span\n *ngFor=\"let item of weekDefs\"\n [class]=\"bem.element('cell')\"\n >\n {{ item | auiI18n }}\n </span>\n </div>\n <div\n [class]=\"bem.element('row')\"\n *ngFor=\"let row of panelData; trackBy: trackByFn\"\n >\n <span\n *ngFor=\"let item of row; trackBy: trackByFn\"\n [class]=\"bem.element('cell')\"\n [ngClass]=\"{\n inRange: item.inRange && !item.isDisabled,\n isActive: match(item.value),\n isBackground: item.isBackground && !item.isDisabled,\n isRangeStart: item.isRangeStart,\n isRangeEnd: item.isRangeEnd,\n isToday: matchToday(item.value) && !item.isBackground,\n isDisabled: item.isDisabled,\n }\"\n ><button\n aui-button=\"text\"\n [plain]=\"true\"\n [size]=\"navRange === DateNavRange.Month ? 'mini' : 'small'\"\n [disabled]=\"item.isDisabled\"\n (click)=\"selectValue(item.value)\"\n (mouseenter)=\"hovered.next(item.value)\"\n >\n {{ item.label\n }}<ng-container *ngIf=\"navRange === DateNavRange.Year\">{{\n 'month_suffix' | auiI18n\n }}</ng-container>\n </button>\n </span>\n </div>\n</div>\n", styles: [".aui-picker-panel__container{height:min-content;box-sizing:border-box;justify-content:stretch;display:flex;flex-direction:column;margin:12px 9px;align-items:center}.aui-picker-panel__container .aui-button{box-sizing:border-box}.aui-picker-panel__container .aui-button__content{padding:0!important}.aui-picker-panel__container.month-panel-container button,.aui-picker-panel__container.year-panel-container button{width:56px;height:28px!important}.aui-picker-panel__container.day-panel-container{height:min-content;padding:0;margin:0}.aui-picker-panel__container.day-panel-container button{height:24px!important;width:24px!important}.aui-picker-panel__container.day-panel-container .aui-picker-panel__row+.aui-picker-panel__row{margin-top:8px}.aui-picker-panel__row+.aui-picker-panel__row{margin-top:20px}.aui-picker-panel__row{flex:1;display:flex;align-items:center;justify-content:space-between;font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);font-weight:var(--aui-font-weight-normal);width:100%}.aui-picker-panel__row.week-header{color:rgb(var(--aui-color-help-text));margin-bottom:8px}.aui-picker-panel__row.week-header span{display:inline-block;margin:0;width:36px;text-align:center}.aui-picker-panel__cell{display:inline-flex;position:relative;align-items:center;justify-content:center;margin-inline:6px}.aui-picker-panel__cell button{box-sizing:content-box;transition:color .3s ease,background-color .3s ease}.aui-picker-panel__cell.inRange{background-color:rgb(var(--aui-color-p-6));box-shadow:-6px 0 rgb(var(--aui-color-p-6)),6px 0 rgb(var(--aui-color-p-6))}.aui-picker-panel__cell.isRangeEnd{box-shadow:-6px 0 rgb(var(--aui-color-p-6))}.aui-picker-panel__cell.isRangeStart{box-shadow:6px 0 rgb(var(--aui-color-p-6))}.aui-picker-panel__cell.isDisabled{background-color:rgb(var(--aui-color-n-8));box-shadow:-6px 0 rgb(var(--aui-color-n-8)),6px 0 rgb(var(--aui-color-n-8))}.aui-picker-panel__cell.isDisabled button{color:rgb(var(--aui-color-disabled-text))!important;border-color:rgb(var(--aui-color-disabled-text))!important}.aui-picker-panel__cell.isDisabled.isActive button,.aui-picker-panel__cell.isDisabled.isToday button{color:#fff!important;border-color:rgb(var(--aui-color-p-4))!important;background-color:rgb(var(--aui-color-p-4))!important}.aui-picker-panel__cell.isDisabled+.aui-picker-panel__cell:not(.isDisabled,.isRangeStart){box-shadow:-12px 0 rgb(var(--aui-color-popper-bg))}.aui-picker-panel__cell.isDisabled+.aui-picker-panel__cell:not(.isDisabled).isRangeStart{box-shadow:-12px 0 rgb(var(--aui-color-popper-bg)),6px 0 rgb(var(--aui-color-p-6))}.aui-picker-panel__cell:not(.isDisabled)+.aui-picker-panel__cell.isDisabled{box-shadow:6px 0 rgb(var(--aui-color-n-8))}.aui-picker-panel__cell.isToday button{border:rgb(var(--aui-color-primary)) 1px solid;color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-p-7))}.aui-picker-panel__cell.isActive button{color:#fff;background-color:rgb(var(--aui-color-primary))}.aui-picker-panel__cell.isBackground button{background-color:initial!important;color:rgb(var(--aui-color-disabled-text))}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: ButtonComponent, selector: "button[aui-button]", inputs: ["aui-button", "size", "plain", "loading", "round", "square"] }, { kind: "pipe", type: I18nPipe, name: "auiI18n" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
129
- }
130
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: PickerPanelComponent, decorators: [{
131
- type: Component,
132
- args: [{ selector: 'aui-picker-panel', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgClass, NgIf, NgFor, ButtonComponent, I18nPipe], template: "<div\n [class]=\"bem.element('container')\"\n [ngClass]=\"{\n 'day-panel-container': navRange === DateNavRange.Month,\n 'month-panel-container': navRange === DateNavRange.Year,\n 'year-panel-container': navRange === DateNavRange.Decade,\n }\"\n>\n <div\n [class]=\"[bem.element('row'), 'week-header'].join(' ')\"\n *ngIf=\"navRange === DateNavRange.Month\"\n >\n <span\n *ngFor=\"let item of weekDefs\"\n [class]=\"bem.element('cell')\"\n >\n {{ item | auiI18n }}\n </span>\n </div>\n <div\n [class]=\"bem.element('row')\"\n *ngFor=\"let row of panelData; trackBy: trackByFn\"\n >\n <span\n *ngFor=\"let item of row; trackBy: trackByFn\"\n [class]=\"bem.element('cell')\"\n [ngClass]=\"{\n inRange: item.inRange && !item.isDisabled,\n isActive: match(item.value),\n isBackground: item.isBackground && !item.isDisabled,\n isRangeStart: item.isRangeStart,\n isRangeEnd: item.isRangeEnd,\n isToday: matchToday(item.value) && !item.isBackground,\n isDisabled: item.isDisabled,\n }\"\n ><button\n aui-button=\"text\"\n [plain]=\"true\"\n [size]=\"navRange === DateNavRange.Month ? 'mini' : 'small'\"\n [disabled]=\"item.isDisabled\"\n (click)=\"selectValue(item.value)\"\n (mouseenter)=\"hovered.next(item.value)\"\n >\n {{ item.label\n }}<ng-container *ngIf=\"navRange === DateNavRange.Year\">{{\n 'month_suffix' | auiI18n\n }}</ng-container>\n </button>\n </span>\n </div>\n</div>\n", styles: [".aui-picker-panel__container{height:min-content;box-sizing:border-box;justify-content:stretch;display:flex;flex-direction:column;margin:12px 9px;align-items:center}.aui-picker-panel__container .aui-button{box-sizing:border-box}.aui-picker-panel__container .aui-button__content{padding:0!important}.aui-picker-panel__container.month-panel-container button,.aui-picker-panel__container.year-panel-container button{width:56px;height:28px!important}.aui-picker-panel__container.day-panel-container{height:min-content;padding:0;margin:0}.aui-picker-panel__container.day-panel-container button{height:24px!important;width:24px!important}.aui-picker-panel__container.day-panel-container .aui-picker-panel__row+.aui-picker-panel__row{margin-top:8px}.aui-picker-panel__row+.aui-picker-panel__row{margin-top:20px}.aui-picker-panel__row{flex:1;display:flex;align-items:center;justify-content:space-between;font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);font-weight:var(--aui-font-weight-normal);width:100%}.aui-picker-panel__row.week-header{color:rgb(var(--aui-color-help-text));margin-bottom:8px}.aui-picker-panel__row.week-header span{display:inline-block;margin:0;width:36px;text-align:center}.aui-picker-panel__cell{display:inline-flex;position:relative;align-items:center;justify-content:center;margin-inline:6px}.aui-picker-panel__cell button{box-sizing:content-box;transition:color .3s ease,background-color .3s ease}.aui-picker-panel__cell.inRange{background-color:rgb(var(--aui-color-p-6));box-shadow:-6px 0 rgb(var(--aui-color-p-6)),6px 0 rgb(var(--aui-color-p-6))}.aui-picker-panel__cell.isRangeEnd{box-shadow:-6px 0 rgb(var(--aui-color-p-6))}.aui-picker-panel__cell.isRangeStart{box-shadow:6px 0 rgb(var(--aui-color-p-6))}.aui-picker-panel__cell.isDisabled{background-color:rgb(var(--aui-color-n-8));box-shadow:-6px 0 rgb(var(--aui-color-n-8)),6px 0 rgb(var(--aui-color-n-8))}.aui-picker-panel__cell.isDisabled button{color:rgb(var(--aui-color-disabled-text))!important;border-color:rgb(var(--aui-color-disabled-text))!important}.aui-picker-panel__cell.isDisabled.isActive button,.aui-picker-panel__cell.isDisabled.isToday button{color:#fff!important;border-color:rgb(var(--aui-color-p-4))!important;background-color:rgb(var(--aui-color-p-4))!important}.aui-picker-panel__cell.isDisabled+.aui-picker-panel__cell:not(.isDisabled,.isRangeStart){box-shadow:-12px 0 rgb(var(--aui-color-popper-bg))}.aui-picker-panel__cell.isDisabled+.aui-picker-panel__cell:not(.isDisabled).isRangeStart{box-shadow:-12px 0 rgb(var(--aui-color-popper-bg)),6px 0 rgb(var(--aui-color-p-6))}.aui-picker-panel__cell:not(.isDisabled)+.aui-picker-panel__cell.isDisabled{box-shadow:6px 0 rgb(var(--aui-color-n-8))}.aui-picker-panel__cell.isToday button{border:rgb(var(--aui-color-primary)) 1px solid;color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-p-7))}.aui-picker-panel__cell.isActive button{color:#fff;background-color:rgb(var(--aui-color-primary))}.aui-picker-panel__cell.isBackground button{background-color:initial!important;color:rgb(var(--aui-color-disabled-text))}\n"] }]
133
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { navRange: [{
134
- type: Input
135
- }], type: [{
136
- type: Input
137
- }], anchor: [{
138
- type: Input
139
- }], matchDates: [{
140
- type: Input
141
- }], disabledDate: [{
142
- type: Input
143
- }], weekStartDay: [{
144
- type: Input
145
- }], minDate: [{
146
- type: Input
147
- }], maxDate: [{
148
- type: Input
149
- }], select: [{
150
- type: Output
151
- }], hovered: [{
152
- type: Output
153
- }] } });
154
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlja2VyLXBhbmVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2RhdGUtcGlja2VyL2NhbGVuZGFyL3BhbmVsL3BpY2tlci1wYW5lbC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9kYXRlLXBpY2tlci9jYWxlbmRhci9wYW5lbC9waWNrZXItcGFuZWwudGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQ0wsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxLQUFnQixNQUFNLE9BQU8sQ0FBQztBQUNyQyxPQUFPLFNBQVMsTUFBTSx3QkFBd0IsQ0FBQztBQUUvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbkUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ25ELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdEQsT0FBTyxFQUNMLEdBQUcsRUFDSCxzQkFBc0IsRUFDdEIsbUJBQW1CLEVBRW5CLEtBQUssRUFDTCx3QkFBd0IsRUFDeEIscUJBQXFCLEVBQ3JCLElBQUksRUFDSix1QkFBdUIsRUFDdkIsb0JBQW9CLEdBQ3JCLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFFTCxjQUFjLEVBQ2QscUJBQXFCLEVBQ3JCLFVBQVUsRUFDVixvQkFBb0IsRUFDcEIsaUJBQWlCLEVBQ2pCLGlCQUFpQixFQUNqQixTQUFTLEdBQ1YsTUFBTSxTQUFTLENBQUM7O0FBRWpCLEtBQUssQ0FBQyxNQUFNLENB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MUQsUUFBUTtzQkFEUCxLQUFLO2dCQUlOLElBQUk7c0JBREgsS0FBSztnQkFJTixNQUFNO3NCQURMLEtBQUs7Z0JBSU4sVUFBVTtzQkFEVCxLQUFLO2dCQUlOLFlBQVk7c0JBRFgsS0FBSztnQkFJRixZQUFZO3NCQURmLEtBQUs7Z0JBZU4sT0FBTztzQkFETixLQUFLO2dCQUlOLE9BQU87c0JBRE4sS0FBSztnQkFvQk4sTUFBTTtzQkFETCxNQUFNO2dCQUlQLE9BQU87c0JBRE4sTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nQ2xhc3MsIE5nSWYsIE5nRm9yIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE91dHB1dCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IGRheWpzLCB7IERheWpzIH0gZnJvbSAnZGF5anMnO1xuaW1wb3J0IGlzQmV0d2VlbiBmcm9tICdkYXlqcy9wbHVnaW4vaXNCZXR3ZWVuJztcblxuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vYnV0dG9uL2J1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgSTE4blBpcGUgfSBmcm9tICcuLi8uLi8uLi9pMThuL2kxOG4ucGlwZSc7XG5pbXBvcnQgeyBidWlsZEJlbSB9IGZyb20gJy4uLy4uLy4uL2ludGVybmFsL3V0aWxzJztcbmltcG9ydCB7IERhdGVOYXZSYW5nZSB9IGZyb20gJy4uLy4uL2RhdGUtcGlja2VyLnR5cGUnO1xuaW1wb3J0IHtcbiAgREFZLFxuICBEQVlfUEFORUxfQ09MVU1OX0NPVU5ULFxuICBEQVlfUEFORUxfUk9XX0NPVU5ULFxuICBEYXRlUGlja2VyVHlwZSxcbiAgTU9OVEgsXG4gIE1PTlRIX1BBTkVMX0NPTFVNTl9DT1VOVCxcbiAgTU9OVEhfUEFORUxfUk9XX0NPVU5ULFxuICBZRUFSLFxuICBZRUFSX1BBTkVMX0NPTFVNTl9DT1VOVCxcbiAgWUVBUl9QQU5FTF9ST1dfQ09VTlQsXG59IGZyb20gJy4uL2NvbnN0YW50JztcbmltcG9ydCB7XG4gIERhdGVDZWxsLFxuICBjYWxjUmFuZ2VWYWx1ZSxcbiAgY29tcG9zZURpc2FibGVkRGF0ZUZuLFxuICBmb3JtYXREYXRlLFxuICBnZXREYXRlUGFuZWxJdGVyYWJsZSxcbiAgZ2V0TmF2UmFuZ2VCeVR5cGUsXG4gIGdldFR5cGVCeU5hdlJhbmdlLFxuICBzb3J0RGF0ZXMsXG59IGZyb20gJy4uL3V0aWwnO1xuXG5kYXlqcy5leHRlbmQoaXNCZXR3ZWVuKTtcblxuY29uc3QgYmVtID0gYnVpbGRCZW0oJ2F1aS1waWNrZXItcGFuZWwnKTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXVpLXBpY2tlci1wYW5lbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9waWNrZXItcGFuZWwudGVtcGxhdGUuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3BpY2tlci1wYW5lbC5zdHlsZS5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbTmdDbGFzcywgTmdJZiwgTmdGb3IsIEJ1dHRvbkNvbXBvbmVudCwgSTE4blBpcGVdLFxufSlcbmV4cG9ydCBjbGFzcyBQaWNrZXJQYW5lbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpXG4gIG5hdlJhbmdlOiBEYXRlTmF2UmFuZ2U7XG5cbiAgQElucHV0KClcbiAgdHlwZTogRGF0ZVBpY2tlclR5cGU7XG5cbiAgQElucHV0KClcbiAgYW5jaG9yID0gZGF5anMoKTtcblxuICBASW5wdXQoKVxuICBtYXRjaERhdGVzOiBEYXlqc1tdO1xuXG4gIEBJbnB1dCgpXG4gIGRpc2FibGVkRGF0ZTogKGRhdGU6IERheWpzLCBuYXZSYW5nZTogRGF0ZU5hdlJhbmdlKSA9PiBib29sZWFuID0gKCkgPT4gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgc2V0IHdlZWtTdGFydERheShkYXk6IG51bWJlcikge1xuICAgIGNvbnN0IG5vcm1hbGl6ZWQgPSBNYXRoLm1heChNYXRoLm1pbihNYXRoLnJvdW5kKGRheSksIDYpLCAwKTtcbiAgICB0aGlzLndlZWtEZWZzID0gW1xuICAgICAgLi4udGhpcy53ZWVrRGVmcy5zbGljZShub3JtYWxpemVkKSxcbiAgICAgIC4uLnRoaXMud2Vla0RlZnMuc2xpY2UoMCwgbm9ybWFsaXplZCksXG4gICAgXTtcbiAgICB0aGlzLl93ZWVrU3RhcnREYXkgPSBub3JtYWxpemVkO1xuICB9XG5cbiAgZ2V0IHdlZWtTdGFydERheSgpIHtcbiAgICByZXR1cm4gdGhpcy5fd2Vla1N0YXJ0RGF5O1xuICB9XG5cbiAgQElucHV0KClcbiAgbWluRGF0ZTogRGF5anM7XG5cbiAgQElucHV0KClcbiAgbWF4RGF0ZTogRGF5anM7XG5cbiAgZ2V0IGRpc2FibGVkRGF0ZUZuKCkge1xuICAgIHJldHVybiBjb21wb3NlRGlzYWJsZWREYXRlRm4oXG4gICAgICBkYXRlID0+IHRoaXMubWluRGF0ZSAmJiBkYXRlLmlzQmVmb3JlKHRoaXMubWluRGF0ZSwgJ2RhdGUnKSxcbiAgICAgIChkYXRlLCBuYXZSYW5nZSkgPT5cbiAgICAgICAgdGhpcy5tYXhEYXRlICYmXG4gICAgICAgIChuYXZSYW5nZSA9PT0gRGF0ZU5hdlJhbmdlLkRlY2FkZVxuICAgICAgICAgID8gZGF0ZS5pc0FmdGVyKHRoaXMubWF4RGF0ZSwgJ3llYXInKVxuICAgICAgICAgIDogZGF0ZS5pc0FmdGVyKHRoaXMubWF4RGF0ZSwgJ2RhdGUnKSksXG4gICAgICB0aGlzLmRpc2FibGVkRGF0ZSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBfd2Vla1N0YXJ0RGF5ID0gMDtcblxuICBwYW5lbERhdGE6IERhdGVDZWxsW11bXTtcblxuICBAT3V0cHV0KClcbiAgc2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxEYXlqcz4oKTtcblxuICBAT3V0cHV0KClcbiAgaG92ZXJlZCA9IG5ldyBFdmVudEVtaXR0ZXI8RGF5anM+KCk7XG5cbiAgYmVtID0gYmVtO1xuICBEYXRlTmF2UmFuZ2UgPSBEYXRlTmF2UmFuZ2U7XG5cbiAgd2Vla0RlZnMgPSBbXG4gICAgJ3N1bmRheScsXG4gICAgJ21vbmRheScsXG4gICAgJ3R1ZXNkYXknLFxuICAgICd3ZWRuZXNkYXknLFxuICAgICd0aHVyc2RheScsXG4gICAgJ2ZyaWRheScsXG4gICAgJ3NhdHVyZGF5JyxcbiAgXTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgbmdPbkNoYW5nZXMoKSB7XG4gICAgLy8g5aaC5p6cIGRhdGVWYWx1ZSDmmK/kuIDkuKrmlbDnu4TvvIzlv4XnhLbmmK/lkIzkuIDkuKrpnaLmnb/kuIrvvIzlkKbliJnlupTlvZPnu5nkuI7kuI3lkIznmoTpnaLmnb/kuI3lkIznmoRkYXRlVmFsdWXlgLxcbiAgICBjb25zdCBoZWFkZXJSYW5nZSA9IGNhbGNSYW5nZVZhbHVlKHRoaXMubmF2UmFuZ2UsIHRoaXMuYW5jaG9yKTtcbiAgICB0aGlzLnJlbmRlclBhbmVsRGF0YShoZWFkZXJSYW5nZS5zdGFydCwgdGhpcy5uYXZSYW5nZSk7XG4gIH1cblxuICAvLyDmoLnmja7lvZPliY3mlbDmja7vvIzorqHnrpfmuLLmn5PooajmoLxcbiAgIFxuICByZW5kZXJQYW5lbERhdGEoZGF0ZTogRGF5anMsIG5hdlJhbmdlOiBEYXRlTmF2UmFuZ2UpIHtcbiAgICBjb25zdCB2YWx1ZSA9IFtdO1xuICAgIGxldCBjb2xDb3VudHMgPSAwO1xuICAgIGxldCByb3dDb3VudHMgPSAwO1xuICAgIGlmICghdGhpcy5wYW5lbERhdGEpIHtcbiAgICAgIHRoaXMucGFuZWxEYXRhID0gW1tdXTtcbiAgICB9XG4gICAgY29uc3QgWy4uLnZhbHVlc10gPSBnZXREYXRlUGFuZWxJdGVyYWJsZShkYXRlLCBuYXZSYW5nZSwgdGhpcy53ZWVrU3RhcnREYXkpO1xuICAgIHN3aXRjaCAobmF2UmFuZ2UpIHtcbiAgICAgIGNhc2UgRGF0ZU5hdlJhbmdlLk1vbnRoOiB7XG4gICAgICAgIGNvbENvdW50cyA9IERBWV9QQU5FTF9DT0xVTU5fQ09VTlQ7XG4gICAgICAgIHJvd0NvdW50cyA9IERBWV9QQU5FTF9ST1dfQ09VTlQ7XG5cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlIERhdGVOYXZSYW5nZS5EZWNhZGU6IHtcbiAgICAgICAgY29sQ291bnRzID0gWUVBUl9QQU5FTF9DT0xVTU5fQ09VTlQ7XG4gICAgICAgIHJvd0NvdW50cyA9IFlFQVJfUEFORUxfUk9XX0NPVU5UO1xuXG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSBEYXRlTmF2UmFuZ2UuWWVhcjoge1xuICAgICAgICBjb2xDb3VudHMgPSBNT05USF9QQU5FTF9DT0xVTU5fQ09VTlQ7XG4gICAgICAgIHJvd0NvdW50cyA9IE1PTlRIX1BBTkVMX1JPV19DT1VOVDtcblxuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIC8vIE5vIGRlZmF1bHRcbiAgICB9XG4gICAgZm9yIChsZXQgayA9IDA7IGsgPCByb3dDb3VudHM7IGsrKykge1xuICAgICAgY29uc3Qgcm93ID0gW107XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvbENvdW50czsgaSsrKSB7XG4gICAgICAgIGNvbnN0IGNlbGwgPSBmb3JtYXREYXRlKG5hdlJhbmdlLCB2YWx1ZXNbayAqIGNvbENvdW50cyArIGldLCBkYXRlKTtcbiAgICAgICAgY2VsbC5pc0Rpc2FibGVkID0gdGhpcy5kaXNhYmxlZERhdGVGbihjZWxsLnZhbHVlLCBuYXZSYW5nZSk7XG4gICAgICAgIGNvbnN0IHNvcnRlZERhdGVzID0gc29ydERhdGVzKHRoaXMubWF0Y2hEYXRlcyk7XG4gICAgICAgIGlmIChzb3J0ZWREYXRlcz8ubGVuZ3RoID09PSAyICYmIG5hdlJhbmdlID09PSBEYXRlTmF2UmFuZ2UuTW9udGgpIHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBjZWxsLnZhbHVlLmlzQmV0d2Vlbihzb3J0ZWREYXRlc1swXSwgc29ydGVkRGF0ZXNbMV0pICYmXG4gICAgICAgICAgICAhY2VsbC5pc0JhY2tncm91bmRcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGNlbGwuaW5SYW5nZSA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNlbGwuaXNSYW5nZVN0YXJ0ID1cbiAgICAgICAgICAgIGNlbGwudmFsdWUuaXNTYW1lKHNvcnRlZERhdGVzWzBdLCBEQVkpICYmICFjZWxsLmlzQmFja2dyb3VuZDtcbiAgICAgICAgICBjZWxsLmlzUmFuZ2VFbmQgPVxuICAgICAgICAgICAgY2VsbC52YWx1ZS5pc1NhbWUoc29ydGVkRGF0ZXNbMV0sIERBWSkgJiYgIWNlbGwuaXNCYWNrZ3JvdW5kO1xuICAgICAgICAgIGlmIChjZWxsLmlzUmFuZ2VTdGFydCAmJiBjZWxsLmlzUmFuZ2VFbmQpIHtcbiAgICAgICAgICAgIGNlbGwuaXNSYW5nZVN0YXJ0ID0gZmFsc2U7XG4gICAgICAgICAgICBjZWxsLmlzUmFuZ2VFbmQgPSBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcm93LnB1c2goY2VsbCk7XG4gICAgICB9XG4gICAgICB2YWx1ZS5wdXNoKHJvdyk7XG4gICAgfVxuICAgIHRoaXMucGFuZWxEYXRhID0gdmFsdWUuc2xpY2UoKTtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIG1hdGNoKHZhbHVlOiBEYXlqcykge1xuICAgIGlmIChcbiAgICAgICF0aGlzLm1hdGNoRGF0ZXM/LmZpbHRlcih2ID0+ICEhdik/Lmxlbmd0aCB8fFxuICAgICAgZ2V0TmF2UmFuZ2VCeVR5cGUodGhpcy50eXBlKSAhPT0gdGhpcy5uYXZSYW5nZVxuICAgICkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5tYXRjaERhdGVzPy5zb21lKGRhdGVWYWx1ZSA9PlxuICAgICAgdGhpcy5uYXZSYW5nZSA9PT0gRGF0ZU5hdlJhbmdlLkRlY2FkZVxuICAgICAgICA/IHZhbHVlLmlzU2FtZShkYXRlVmFsdWUsIFlFQVIpXG4gICAgICAgIDogdGhpcy5uYXZSYW5nZSA9PT0gRGF0ZU5hdlJhbmdlLlllYXJcbiAgICAgICAgPyB2YWx1ZS5pc1NhbWUoZGF0ZVZhbHVlLCBNT05USClcbiAgICAgICAgOiB2YWx1ZS5pc1NhbWUoZGF0ZVZhbHVlLCBEQVkpLFxuICAgICk7XG4gIH1cblxuICBtYXRjaFRvZGF5KHZhbHVlOiBEYXlqcykge1xuICAgIHJldHVybiB2YWx1ZS5pc1NhbWUoZGF5anMoKSwgZ2V0VHlwZUJ5TmF2UmFuZ2UodGhpcy5uYXZSYW5nZSkpO1xuICB9XG5cbiAgc2VsZWN0VmFsdWUodmFsdWU6IERheWpzKSB7XG4gICAgdGhpcy5zZWxlY3QubmV4dCh2YWx1ZSk7XG4gIH1cblxuICB0cmFja0J5Rm4oKSB7XG4gICAgcmV0dXJuIHRoaXMubmF2UmFuZ2U7XG4gIH1cbn1cbiIsIjxkaXZcbiAgW2NsYXNzXT1cImJlbS5lbGVtZW50KCdjb250YWluZXInKVwiXG4gIFtuZ0NsYXNzXT1cIntcbiAgICAnZGF5LXBhbmVsLWNvbnRhaW5lcic6IG5hdlJhbmdlID09PSBEYXRlTmF2UmFuZ2UuTW9udGgsXG4gICAgJ21vbnRoLXBhbmVsLWNvbnRhaW5lcic6IG5hdlJhbmdlID09PSBEYXRlTmF2UmFuZ2UuWWVhcixcbiAgICAneWVhci1wYW5lbC1jb250YWluZXInOiBuYXZSYW5nZSA9PT0gRGF0ZU5hdlJhbmdlLkRlY2FkZSxcbiAgfVwiXG4+XG4gIDxkaXZcbiAgICBbY2xhc3NdPVwiW2JlbS5lbGVtZW50KCdyb3cnKSwgJ3dlZWstaGVhZGVyJ10uam9pbignICcpXCJcbiAgICAqbmdJZj1cIm5hdlJhbmdlID09PSBEYXRlTmF2UmFuZ2UuTW9udGhcIlxuICA+XG4gICAgPHNwYW5cbiAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIHdlZWtEZWZzXCJcbiAgICAgIFtjbGFzc109XCJiZW0uZWxlbWVudCgnY2VsbCcpXCJcbiAgICA+XG4gICAgICB7eyBpdGVtIHwgYXVpSTE4biB9fVxuICAgIDwvc3Bhbj5cbiAgPC9kaXY+XG4gIDxkaXZcbiAgICBbY2xhc3NdPVwiYmVtLmVsZW1lbnQoJ3JvdycpXCJcbiAgICAqbmdGb3I9XCJsZXQgcm93IG9mIHBhbmVsRGF0YTsgdHJhY2tCeTogdHJhY2tCeUZuXCJcbiAgPlxuICAgIDxzcGFuXG4gICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiByb3c7IHRyYWNrQnk6IHRyYWNrQnlGblwiXG4gICAgICBbY2xhc3NdPVwiYmVtLmVsZW1lbnQoJ2NlbGwnKVwiXG4gICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgIGluUmFuZ2U6IGl0ZW0uaW5SYW5nZSAmJiAhaXRlbS5pc0Rpc2FibGVkLFxuICAgICAgICBpc0FjdGl2ZTogbWF0Y2goaXRlbS52YWx1ZSksXG4gICAgICAgIGlzQmFja2dyb3VuZDogaXRlbS5pc0JhY2tncm91bmQgJiYgIWl0ZW0uaXNEaXNhYmxlZCxcbiAgICAgICAgaXNSYW5nZVN0YXJ0OiBpdGVtLmlzUmFuZ2VTdGFydCxcbiAgICAgICAgaXNSYW5nZUVuZDogaXRlbS5pc1JhbmdlRW5kLFxuICAgICAgICBpc1RvZGF5OiBtYXRjaFRvZGF5KGl0ZW0udmFsdWUpICYmICFpdGVtLmlzQmFja2dyb3VuZCxcbiAgICAgICAgaXNEaXNhYmxlZDogaXRlbS5pc0Rpc2FibGVkLFxuICAgICAgfVwiXG4gICAgICA+PGJ1dHRvblxuICAgICAgICBhdWktYnV0dG9uPVwidGV4dFwiXG4gICAgICAgIFtwbGFpbl09XCJ0cnVlXCJcbiAgICAgICAgW3NpemVdPVwibmF2UmFuZ2UgPT09IERhdGVOYXZSYW5nZS5Nb250aCA/ICdtaW5pJyA6ICdzbWFsbCdcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiaXRlbS5pc0Rpc2FibGVkXCJcbiAgICAgICAgKGNsaWNrKT1cInNlbGVjdFZhbHVlKGl0ZW0udmFsdWUpXCJcbiAgICAgICAgKG1vdXNlZW50ZXIpPVwiaG92ZXJlZC5uZXh0KGl0ZW0udmFsdWUpXCJcbiAgICAgID5cbiAgICAgICAge3sgaXRlbS5sYWJlbFxuICAgICAgICB9fTxuZy1jb250YWluZXIgKm5nSWY9XCJuYXZSYW5nZSA9PT0gRGF0ZU5hdlJhbmdlLlllYXJcIj57e1xuICAgICAgICAgICdtb250aF9zdWZmaXgnIHwgYXVpSTE4blxuICAgICAgICB9fTwvbmctY29udGFpbmVyPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9zcGFuPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19