@radix-ng/primitives 0.42.0 → 0.44.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (453) hide show
  1. package/accordion/index.d.ts +160 -15
  2. package/alert-dialog/index.d.ts +54 -14
  3. package/arrow/README.md +1 -0
  4. package/arrow/index.d.ts +11 -0
  5. package/aspect-ratio/index.d.ts +35 -1
  6. package/avatar/index.d.ts +81 -11
  7. package/calendar/index.d.ts +310 -29
  8. package/checkbox/index.d.ts +163 -15
  9. package/collapsible/index.d.ts +82 -11
  10. package/config/index.d.ts +35 -2
  11. package/context-menu/index.d.ts +126 -23
  12. package/core/index.d.ts +898 -27
  13. package/cropper/index.d.ts +134 -14
  14. package/date-field/index.d.ts +209 -10
  15. package/dialog/index.d.ts +202 -20
  16. package/dismissable-layer/README.md +1 -0
  17. package/dismissable-layer/index.d.ts +126 -0
  18. package/dropdown-menu/index.d.ts +168 -23
  19. package/editable/index.d.ts +70 -1
  20. package/fesm2022/radix-ng-primitives-accordion.mjs +36 -36
  21. package/fesm2022/radix-ng-primitives-accordion.mjs.map +1 -1
  22. package/fesm2022/radix-ng-primitives-alert-dialog.mjs +28 -28
  23. package/fesm2022/radix-ng-primitives-alert-dialog.mjs.map +1 -1
  24. package/fesm2022/radix-ng-primitives-arrow.mjs +38 -0
  25. package/fesm2022/radix-ng-primitives-arrow.mjs.map +1 -0
  26. package/fesm2022/radix-ng-primitives-aspect-ratio.mjs +5 -5
  27. package/fesm2022/radix-ng-primitives-aspect-ratio.mjs.map +1 -1
  28. package/fesm2022/radix-ng-primitives-avatar.mjs +20 -20
  29. package/fesm2022/radix-ng-primitives-avatar.mjs.map +1 -1
  30. package/fesm2022/radix-ng-primitives-calendar.mjs +110 -95
  31. package/fesm2022/radix-ng-primitives-calendar.mjs.map +1 -1
  32. package/fesm2022/radix-ng-primitives-checkbox.mjs +219 -209
  33. package/fesm2022/radix-ng-primitives-checkbox.mjs.map +1 -1
  34. package/fesm2022/radix-ng-primitives-collapsible.mjs +27 -27
  35. package/fesm2022/radix-ng-primitives-collapsible.mjs.map +1 -1
  36. package/fesm2022/radix-ng-primitives-config.mjs +5 -5
  37. package/fesm2022/radix-ng-primitives-config.mjs.map +1 -1
  38. package/fesm2022/radix-ng-primitives-context-menu.mjs +34 -34
  39. package/fesm2022/radix-ng-primitives-context-menu.mjs.map +1 -1
  40. package/fesm2022/radix-ng-primitives-core.mjs +72 -24
  41. package/fesm2022/radix-ng-primitives-core.mjs.map +1 -1
  42. package/fesm2022/radix-ng-primitives-cropper.mjs +51 -51
  43. package/fesm2022/radix-ng-primitives-cropper.mjs.map +1 -1
  44. package/fesm2022/radix-ng-primitives-date-field.mjs +48 -48
  45. package/fesm2022/radix-ng-primitives-date-field.mjs.map +1 -1
  46. package/fesm2022/radix-ng-primitives-dialog.mjs +33 -33
  47. package/fesm2022/radix-ng-primitives-dialog.mjs.map +1 -1
  48. package/fesm2022/radix-ng-primitives-dismissable-layer.mjs +418 -0
  49. package/fesm2022/radix-ng-primitives-dismissable-layer.mjs.map +1 -0
  50. package/fesm2022/radix-ng-primitives-dropdown-menu.mjs +37 -37
  51. package/fesm2022/radix-ng-primitives-dropdown-menu.mjs.map +1 -1
  52. package/fesm2022/radix-ng-primitives-editable.mjs +21 -21
  53. package/fesm2022/radix-ng-primitives-editable.mjs.map +1 -1
  54. package/fesm2022/radix-ng-primitives-focus-guards.mjs +53 -0
  55. package/fesm2022/radix-ng-primitives-focus-guards.mjs.map +1 -0
  56. package/fesm2022/radix-ng-primitives-focus-scope.mjs +17 -9
  57. package/fesm2022/radix-ng-primitives-focus-scope.mjs.map +1 -1
  58. package/fesm2022/radix-ng-primitives-hover-card.mjs +74 -74
  59. package/fesm2022/radix-ng-primitives-hover-card.mjs.map +1 -1
  60. package/fesm2022/radix-ng-primitives-label.mjs +8 -8
  61. package/fesm2022/radix-ng-primitives-label.mjs.map +1 -1
  62. package/fesm2022/radix-ng-primitives-menu.mjs +65 -65
  63. package/fesm2022/radix-ng-primitives-menu.mjs.map +1 -1
  64. package/fesm2022/radix-ng-primitives-menubar.mjs +31 -31
  65. package/fesm2022/radix-ng-primitives-menubar.mjs.map +1 -1
  66. package/fesm2022/radix-ng-primitives-navigation-menu.mjs +91 -88
  67. package/fesm2022/radix-ng-primitives-navigation-menu.mjs.map +1 -1
  68. package/fesm2022/radix-ng-primitives-number-field.mjs +56 -43
  69. package/fesm2022/radix-ng-primitives-number-field.mjs.map +1 -1
  70. package/fesm2022/radix-ng-primitives-pagination.mjs +45 -45
  71. package/fesm2022/radix-ng-primitives-pagination.mjs.map +1 -1
  72. package/fesm2022/radix-ng-primitives-popover.mjs +68 -68
  73. package/fesm2022/radix-ng-primitives-popover.mjs.map +1 -1
  74. package/fesm2022/radix-ng-primitives-popper.mjs +418 -0
  75. package/fesm2022/radix-ng-primitives-popper.mjs.map +1 -0
  76. package/fesm2022/radix-ng-primitives-portal.mjs +51 -0
  77. package/fesm2022/radix-ng-primitives-portal.mjs.map +1 -0
  78. package/fesm2022/radix-ng-primitives-presence.mjs +4 -4
  79. package/fesm2022/radix-ng-primitives-presence.mjs.map +1 -1
  80. package/fesm2022/radix-ng-primitives-progress.mjs +15 -15
  81. package/fesm2022/radix-ng-primitives-progress.mjs.map +1 -1
  82. package/fesm2022/radix-ng-primitives-radio.mjs +30 -30
  83. package/fesm2022/radix-ng-primitives-radio.mjs.map +1 -1
  84. package/fesm2022/radix-ng-primitives-roving-focus.mjs +179 -163
  85. package/fesm2022/radix-ng-primitives-roving-focus.mjs.map +1 -1
  86. package/fesm2022/radix-ng-primitives-select.mjs +37 -37
  87. package/fesm2022/radix-ng-primitives-select.mjs.map +1 -1
  88. package/fesm2022/radix-ng-primitives-separator.mjs +16 -14
  89. package/fesm2022/radix-ng-primitives-separator.mjs.map +1 -1
  90. package/fesm2022/radix-ng-primitives-slider.mjs +75 -75
  91. package/fesm2022/radix-ng-primitives-slider.mjs.map +1 -1
  92. package/fesm2022/radix-ng-primitives-stepper.mjs +45 -45
  93. package/fesm2022/radix-ng-primitives-stepper.mjs.map +1 -1
  94. package/fesm2022/radix-ng-primitives-switch.mjs +28 -28
  95. package/fesm2022/radix-ng-primitives-switch.mjs.map +1 -1
  96. package/fesm2022/radix-ng-primitives-tabs.mjs +33 -33
  97. package/fesm2022/radix-ng-primitives-tabs.mjs.map +1 -1
  98. package/fesm2022/radix-ng-primitives-time-field.mjs +78 -66
  99. package/fesm2022/radix-ng-primitives-time-field.mjs.map +1 -1
  100. package/fesm2022/radix-ng-primitives-toggle-group.mjs +22 -22
  101. package/fesm2022/radix-ng-primitives-toggle-group.mjs.map +1 -1
  102. package/fesm2022/radix-ng-primitives-toggle.mjs +9 -9
  103. package/fesm2022/radix-ng-primitives-toggle.mjs.map +1 -1
  104. package/fesm2022/radix-ng-primitives-toolbar.mjs +28 -28
  105. package/fesm2022/radix-ng-primitives-toolbar.mjs.map +1 -1
  106. package/fesm2022/radix-ng-primitives-tooltip.mjs +74 -74
  107. package/fesm2022/radix-ng-primitives-tooltip.mjs.map +1 -1
  108. package/fesm2022/radix-ng-primitives-tooltip2.mjs +740 -0
  109. package/fesm2022/radix-ng-primitives-tooltip2.mjs.map +1 -0
  110. package/fesm2022/radix-ng-primitives-visually-hidden.mjs +93 -98
  111. package/fesm2022/radix-ng-primitives-visually-hidden.mjs.map +1 -1
  112. package/fesm2022/radix-ng-primitives.mjs.map +1 -1
  113. package/focus-guards/README.md +1 -0
  114. package/focus-guards/index.d.ts +15 -0
  115. package/focus-scope/index.d.ts +65 -1
  116. package/hover-card/index.d.ts +471 -19
  117. package/index.d.ts +2 -1
  118. package/label/index.d.ts +27 -1
  119. package/menu/index.d.ts +136 -26
  120. package/menubar/index.d.ts +53 -21
  121. package/navigation-menu/index.d.ts +402 -25
  122. package/number-field/index.d.ts +202 -16
  123. package/package.json +26 -5
  124. package/pagination/index.d.ts +96 -20
  125. package/popover/index.d.ts +402 -19
  126. package/popper/README.md +3 -0
  127. package/popper/index.d.ts +206 -0
  128. package/portal/README.md +1 -0
  129. package/portal/index.d.ts +22 -0
  130. package/presence/index.d.ts +103 -5
  131. package/progress/index.d.ts +76 -8
  132. package/radio/index.d.ts +118 -4
  133. package/roving-focus/index.d.ts +174 -3
  134. package/select/index.d.ts +211 -23
  135. package/separator/index.d.ts +63 -1
  136. package/slider/index.d.ts +262 -17
  137. package/stepper/index.d.ts +122 -21
  138. package/switch/index.d.ts +102 -9
  139. package/tabs/index.d.ts +111 -13
  140. package/time-field/index.d.ts +211 -10
  141. package/toggle/index.d.ts +75 -3
  142. package/toggle-group/index.d.ts +194 -5
  143. package/toolbar/index.d.ts +52 -16
  144. package/tooltip/index.d.ts +432 -19
  145. package/tooltip2/README.md +3 -0
  146. package/tooltip2/index.d.ts +325 -0
  147. package/visually-hidden/index.d.ts +65 -3
  148. package/accordion/src/accordion-content-presence.directive.d.ts +0 -6
  149. package/accordion/src/accordion-content.directive.d.ts +0 -8
  150. package/accordion/src/accordion-header.directive.d.ts +0 -7
  151. package/accordion/src/accordion-item.directive.d.ts +0 -43
  152. package/accordion/src/accordion-root.directive.d.ts +0 -83
  153. package/accordion/src/accordion-trigger.directive.d.ts +0 -10
  154. package/alert-dialog/src/alert-dialog-cancel.directive.d.ts +0 -7
  155. package/alert-dialog/src/alert-dialog-content.directive.d.ts +0 -9
  156. package/alert-dialog/src/alert-dialog-root.directive.d.ts +0 -9
  157. package/alert-dialog/src/alert-dialog-title.directive.d.ts +0 -5
  158. package/alert-dialog/src/alert-dialog-trigger.directive.d.ts +0 -7
  159. package/alert-dialog/src/alert-dialog.service.d.ts +0 -14
  160. package/aspect-ratio/src/aspect-ratio.directive.d.ts +0 -32
  161. package/avatar/src/avatar-context.token.d.ts +0 -7
  162. package/avatar/src/avatar-fallback.directive.d.ts +0 -20
  163. package/avatar/src/avatar-image.directive.d.ts +0 -29
  164. package/avatar/src/avatar-root.directive.d.ts +0 -8
  165. package/avatar/src/avatar.config.d.ts +0 -13
  166. package/avatar/src/types.d.ts +0 -2
  167. package/calendar/src/calendar-cell-trigger.directive.d.ts +0 -54
  168. package/calendar/src/calendar-cell.directive.d.ts +0 -11
  169. package/calendar/src/calendar-grid-body.directive.d.ts +0 -5
  170. package/calendar/src/calendar-grid-head.directive.d.ts +0 -5
  171. package/calendar/src/calendar-grid-row.directive.d.ts +0 -5
  172. package/calendar/src/calendar-grid.directive.d.ts +0 -8
  173. package/calendar/src/calendar-head-cell.directive.d.ts +0 -5
  174. package/calendar/src/calendar-header.directive.d.ts +0 -5
  175. package/calendar/src/calendar-heading.directive.d.ts +0 -7
  176. package/calendar/src/calendar-next.directive.d.ts +0 -16
  177. package/calendar/src/calendar-prev.directive.d.ts +0 -16
  178. package/calendar/src/calendar-root.directive.d.ts +0 -148
  179. package/calendar/src/calendar.d.ts +0 -44
  180. package/calendar/src//321/201alendar-/321/201ontext.token.d.ts +0 -24
  181. package/checkbox/src/checkbox-button.directive.d.ts +0 -8
  182. package/checkbox/src/checkbox-indicator.directive.d.ts +0 -6
  183. package/checkbox/src/checkbox-input.directive.d.ts +0 -10
  184. package/checkbox/src/checkbox.directive.d.ts +0 -86
  185. package/checkbox/src/checkbox.token.d.ts +0 -4
  186. package/collapsible/src/collapsible-content-presence.directive.d.ts +0 -6
  187. package/collapsible/src/collapsible-content.directive.d.ts +0 -18
  188. package/collapsible/src/collapsible-root.directive.d.ts +0 -44
  189. package/collapsible/src/collapsible-trigger.directive.d.ts +0 -6
  190. package/config/src/config.d.ts +0 -21
  191. package/config/src/config.provider.d.ts +0 -10
  192. package/context-menu/src/context-menu-content.directive.d.ts +0 -15
  193. package/context-menu/src/context-menu-item-checkbox.directive.d.ts +0 -9
  194. package/context-menu/src/context-menu-item-indicator.directive.d.ts +0 -7
  195. package/context-menu/src/context-menu-item-radio-group.directive.d.ts +0 -12
  196. package/context-menu/src/context-menu-item-radio.directive.d.ts +0 -19
  197. package/context-menu/src/context-menu-item-selectable.d.ts +0 -12
  198. package/context-menu/src/context-menu-item.directive.d.ts +0 -17
  199. package/context-menu/src/context-menu-label.directive.d.ts +0 -5
  200. package/context-menu/src/context-menu-separator.directive.d.ts +0 -6
  201. package/context-menu/src/context-menu-trigger.directive.d.ts +0 -31
  202. package/core/src/accessor/control-value-accessor.d.ts +0 -67
  203. package/core/src/accessor/provide-value-accessor.d.ts +0 -12
  204. package/core/src/auto-focus.directive.d.ts +0 -14
  205. package/core/src/chunk.d.ts +0 -12
  206. package/core/src/clamp.d.ts +0 -38
  207. package/core/src/create-context.d.ts +0 -10
  208. package/core/src/date-time/calendar.d.ts +0 -33
  209. package/core/src/date-time/comparators.d.ts +0 -98
  210. package/core/src/date-time/formatter.d.ts +0 -30
  211. package/core/src/date-time/index.d.ts +0 -9
  212. package/core/src/date-time/parser.d.ts +0 -37
  213. package/core/src/date-time/parts.d.ts +0 -12
  214. package/core/src/date-time/placeholders.d.ts +0 -8
  215. package/core/src/date-time/segment.d.ts +0 -4
  216. package/core/src/date-time/types.d.ts +0 -58
  217. package/core/src/date-time/useDateField.d.ts +0 -142
  218. package/core/src/date-time/utils.d.ts +0 -7
  219. package/core/src/document.d.ts +0 -1
  220. package/core/src/focus-initial.directive.d.ts +0 -9
  221. package/core/src/getActiveElement.d.ts +0 -1
  222. package/core/src/id-generator.d.ts +0 -12
  223. package/core/src/inject-ng-control.d.ts +0 -8
  224. package/core/src/is-client.d.ts +0 -1
  225. package/core/src/is-equal.d.ts +0 -7
  226. package/core/src/is-inside-form.d.ts +0 -2
  227. package/core/src/is-nullish.d.ts +0 -1
  228. package/core/src/is-number.d.ts +0 -1
  229. package/core/src/isValueEqualOrExist.d.ts +0 -10
  230. package/core/src/kbd-constants.d.ts +0 -41
  231. package/core/src/positioning/constants.d.ts +0 -3
  232. package/core/src/positioning/types.d.ts +0 -42
  233. package/core/src/positioning/utils.d.ts +0 -12
  234. package/core/src/provide-token.d.ts +0 -22
  235. package/core/src/serialize.d.ts +0 -11
  236. package/core/src/types.d.ts +0 -25
  237. package/core/src/useArrowNavigation.d.ts +0 -65
  238. package/core/src/useResizeObserver.d.ts +0 -15
  239. package/core/src/watch.d.ts +0 -41
  240. package/core/src/window.d.ts +0 -3
  241. package/cropper/src/cropper-context.token.d.ts +0 -12
  242. package/cropper/src/cropper-crop-area.directive.d.ts +0 -6
  243. package/cropper/src/cropper-description.directive.d.ts +0 -6
  244. package/cropper/src/cropper-image.component.d.ts +0 -10
  245. package/cropper/src/cropper-root.directive.d.ts +0 -91
  246. package/date-field/src/date-field-context.token.d.ts +0 -19
  247. package/date-field/src/date-field-input.directive.d.ts +0 -53
  248. package/date-field/src/date-field-root.directive.d.ts +0 -131
  249. package/dialog/src/dialog-close.directive.d.ts +0 -7
  250. package/dialog/src/dialog-content.directive.d.ts +0 -21
  251. package/dialog/src/dialog-description.directive.d.ts +0 -5
  252. package/dialog/src/dialog-dismiss.directive.d.ts +0 -7
  253. package/dialog/src/dialog-ref.d.ts +0 -40
  254. package/dialog/src/dialog-title.directive.d.ts +0 -5
  255. package/dialog/src/dialog-trigger.directive.d.ts +0 -28
  256. package/dialog/src/dialog.config.d.ts +0 -41
  257. package/dialog/src/dialog.injectors.d.ts +0 -4
  258. package/dialog/src/dialog.providers.d.ts +0 -19
  259. package/dialog/src/dialog.service.d.ts +0 -26
  260. package/dismissible-layer/README.md +0 -1
  261. package/dismissible-layer/index.d.ts +0 -1
  262. package/dismissible-layer/src/utils.d.ts +0 -38
  263. package/dropdown-menu/src/dropdown-menu-content.directive.d.ts +0 -15
  264. package/dropdown-menu/src/dropdown-menu-item-checkbox.directive.d.ts +0 -9
  265. package/dropdown-menu/src/dropdown-menu-item-indicator.directive.d.ts +0 -7
  266. package/dropdown-menu/src/dropdown-menu-item-radio-group.directive.d.ts +0 -12
  267. package/dropdown-menu/src/dropdown-menu-item-radio.directive.d.ts +0 -19
  268. package/dropdown-menu/src/dropdown-menu-item-selectable.d.ts +0 -12
  269. package/dropdown-menu/src/dropdown-menu-item.directive.d.ts +0 -17
  270. package/dropdown-menu/src/dropdown-menu-label.directive.d.ts +0 -6
  271. package/dropdown-menu/src/dropdown-menu-separator.directive.d.ts +0 -6
  272. package/dropdown-menu/src/dropdown-menu-trigger.directive.d.ts +0 -73
  273. package/editable/src/editable-root.d.ts +0 -67
  274. package/fesm2022/radix-ng-primitives-dismissible-layer.mjs +0 -211
  275. package/fesm2022/radix-ng-primitives-dismissible-layer.mjs.map +0 -1
  276. package/focus-scope/src/focus-scope.d.ts +0 -53
  277. package/focus-scope/src/stack.d.ts +0 -13
  278. package/focus-scope/src/utils.d.ts +0 -46
  279. package/hover-card/src/hover-card-anchor.directive.d.ts +0 -28
  280. package/hover-card/src/hover-card-anchor.token.d.ts +0 -3
  281. package/hover-card/src/hover-card-arrow.directive.d.ts +0 -45
  282. package/hover-card/src/hover-card-arrow.token.d.ts +0 -3
  283. package/hover-card/src/hover-card-close.directive.d.ts +0 -18
  284. package/hover-card/src/hover-card-close.token.d.ts +0 -3
  285. package/hover-card/src/hover-card-content-attributes.component.d.ts +0 -25
  286. package/hover-card/src/hover-card-content-attributes.token.d.ts +0 -3
  287. package/hover-card/src/hover-card-content.directive.d.ts +0 -124
  288. package/hover-card/src/hover-card-root.directive.d.ts +0 -182
  289. package/hover-card/src/hover-card-root.inject.d.ts +0 -3
  290. package/hover-card/src/hover-card-trigger.directive.d.ts +0 -26
  291. package/hover-card/src/hover-card.types.d.ts +0 -18
  292. package/hover-card/src/utils/cdk-event.service.d.ts +0 -30
  293. package/hover-card/src/utils/constants.d.ts +0 -1
  294. package/hover-card/src/utils/types.d.ts +0 -7
  295. package/label/src/label.directive.d.ts +0 -24
  296. package/menu/src/menu-content.directive.d.ts +0 -6
  297. package/menu/src/menu-directive.d.ts +0 -6
  298. package/menu/src/menu-group.directive.d.ts +0 -6
  299. package/menu/src/menu-item-checkbox.directive.d.ts +0 -21
  300. package/menu/src/menu-item-indicator.directive.d.ts +0 -10
  301. package/menu/src/menu-item-radio.directive.d.ts +0 -20
  302. package/menu/src/menu-item.directive.d.ts +0 -18
  303. package/menu/src/menu-label.directive.d.ts +0 -5
  304. package/menu/src/menu-radio-group.directive.d.ts +0 -6
  305. package/menu/src/menu-separator.directive.d.ts +0 -5
  306. package/menu/src/menu-trigger.directive.d.ts +0 -35
  307. package/menu/src/utils.d.ts +0 -3
  308. package/menubar/src/menubar-content.directive.d.ts +0 -6
  309. package/menubar/src/menubar-item-checkbox.directive.d.ts +0 -6
  310. package/menubar/src/menubar-item-indicator.directive.d.ts +0 -6
  311. package/menubar/src/menubar-item-radio.directive.d.ts +0 -6
  312. package/menubar/src/menubar-item.directive.d.ts +0 -6
  313. package/menubar/src/menubar-radio-group.directive.d.ts +0 -6
  314. package/menubar/src/menubar-root.directive.d.ts +0 -6
  315. package/menubar/src/menubar-separator.directive.d.ts +0 -6
  316. package/menubar/src/menubar-trigger.directive.d.ts +0 -6
  317. package/navigation-menu/src/navigation-menu-a11y.component.d.ts +0 -15
  318. package/navigation-menu/src/navigation-menu-content.directive.d.ts +0 -31
  319. package/navigation-menu/src/navigation-menu-indicator.directive.d.ts +0 -29
  320. package/navigation-menu/src/navigation-menu-item.directive.d.ts +0 -44
  321. package/navigation-menu/src/navigation-menu-link.directive.d.ts +0 -17
  322. package/navigation-menu/src/navigation-menu-list.directive.d.ts +0 -38
  323. package/navigation-menu/src/navigation-menu-sub.directive.d.ts +0 -19
  324. package/navigation-menu/src/navigation-menu-trigger.directive.d.ts +0 -33
  325. package/navigation-menu/src/navigation-menu-viewport.directive.d.ts +0 -61
  326. package/navigation-menu/src/navigation-menu.directive.d.ts +0 -76
  327. package/navigation-menu/src/navigation-menu.token.d.ts +0 -36
  328. package/navigation-menu/src/navigation-menu.types.d.ts +0 -13
  329. package/navigation-menu/src/utils.d.ts +0 -44
  330. package/number-field/src/number-field-context.token.d.ts +0 -24
  331. package/number-field/src/number-field-decrement.directive.d.ts +0 -23
  332. package/number-field/src/number-field-increment.directive.d.ts +0 -23
  333. package/number-field/src/number-field-input.directive.d.ts +0 -22
  334. package/number-field/src/number-field-root.directive.d.ts +0 -86
  335. package/number-field/src/types.d.ts +0 -1
  336. package/number-field/src/utils.d.ts +0 -18
  337. package/pagination/src/pagination-context.token.d.ts +0 -11
  338. package/pagination/src/pagination-ellipsis.directive.d.ts +0 -5
  339. package/pagination/src/pagination-first.directive.d.ts +0 -8
  340. package/pagination/src/pagination-last.directive.d.ts +0 -8
  341. package/pagination/src/pagination-list-item.directive.d.ts +0 -10
  342. package/pagination/src/pagination-list.directive.d.ts +0 -12
  343. package/pagination/src/pagination-next.directive.d.ts +0 -8
  344. package/pagination/src/pagination-prev.directive.d.ts +0 -8
  345. package/pagination/src/pagination-root.directive.d.ts +0 -18
  346. package/pagination/src/utils.d.ts +0 -9
  347. package/popover/src/popover-anchor.directive.d.ts +0 -28
  348. package/popover/src/popover-anchor.token.d.ts +0 -3
  349. package/popover/src/popover-arrow.directive.d.ts +0 -40
  350. package/popover/src/popover-arrow.token.d.ts +0 -3
  351. package/popover/src/popover-close.directive.d.ts +0 -15
  352. package/popover/src/popover-close.token.d.ts +0 -3
  353. package/popover/src/popover-content-attributes.component.d.ts +0 -23
  354. package/popover/src/popover-content-attributes.token.d.ts +0 -3
  355. package/popover/src/popover-content.directive.d.ts +0 -104
  356. package/popover/src/popover-root.directive.d.ts +0 -155
  357. package/popover/src/popover-root.inject.d.ts +0 -3
  358. package/popover/src/popover-trigger.directive.d.ts +0 -18
  359. package/popover/src/popover.types.d.ts +0 -14
  360. package/popover/src/utils/cdk-event.service.d.ts +0 -30
  361. package/popover/src/utils/constants.d.ts +0 -1
  362. package/popover/src/utils/types.d.ts +0 -7
  363. package/presence/src/presence.d.ts +0 -42
  364. package/presence/src/presence.directive.d.ts +0 -27
  365. package/presence/src/transitions/transition.collapse.d.ts +0 -15
  366. package/presence/src/transitions/transition.toast.d.ts +0 -3
  367. package/presence/src/types.d.ts +0 -15
  368. package/presence/src/utils.d.ts +0 -42
  369. package/progress/src/progress-indicator.directive.d.ts +0 -15
  370. package/progress/src/progress-root.directive.d.ts +0 -54
  371. package/radio/src/radio-indicator.directive.d.ts +0 -9
  372. package/radio/src/radio-item-input.directive.d.ts +0 -12
  373. package/radio/src/radio-item.directive.d.ts +0 -30
  374. package/radio/src/radio-root.directive.d.ts +0 -57
  375. package/radio/src/radio-tokens.d.ts +0 -14
  376. package/roving-focus/src/roving-focus-group.directive.d.ts +0 -50
  377. package/roving-focus/src/roving-focus-item.directive.d.ts +0 -50
  378. package/roving-focus/src/utils.d.ts +0 -19
  379. package/select/src/select-content.directive.d.ts +0 -20
  380. package/select/src/select-group.directive.d.ts +0 -5
  381. package/select/src/select-icon.directive.d.ts +0 -5
  382. package/select/src/select-item-indicator.directive.d.ts +0 -7
  383. package/select/src/select-item.directive.d.ts +0 -53
  384. package/select/src/select-label.directive.d.ts +0 -5
  385. package/select/src/select-separator.directive.d.ts +0 -5
  386. package/select/src/select-trigger.directive.d.ts +0 -17
  387. package/select/src/select-value.directive.d.ts +0 -8
  388. package/select/src/select.component.d.ts +0 -98
  389. package/separator/src/separator.directive.d.ts +0 -60
  390. package/slider/src/slider-horizontal.component.d.ts +0 -28
  391. package/slider/src/slider-impl.directive.d.ts +0 -17
  392. package/slider/src/slider-orientation-context.service.d.ts +0 -14
  393. package/slider/src/slider-range.component.d.ts +0 -13
  394. package/slider/src/slider-root.component.d.ts +0 -123
  395. package/slider/src/slider-thumb-impl.directive.d.ts +0 -27
  396. package/slider/src/slider-thumb.component.d.ts +0 -6
  397. package/slider/src/slider-track.component.d.ts +0 -7
  398. package/slider/src/slider-vertical.component.d.ts +0 -28
  399. package/slider/src/utils.d.ts +0 -52
  400. package/stepper/src/stepper-description.directive.d.ts +0 -6
  401. package/stepper/src/stepper-indicator.directive.d.ts +0 -6
  402. package/stepper/src/stepper-item-context.token.d.ts +0 -13
  403. package/stepper/src/stepper-item.directive.d.ts +0 -21
  404. package/stepper/src/stepper-root-context.token.d.ts +0 -12
  405. package/stepper/src/stepper-root.directive.d.ts +0 -33
  406. package/stepper/src/stepper-separator.directive.d.ts +0 -10
  407. package/stepper/src/stepper-title.directive.d.ts +0 -6
  408. package/stepper/src/stepper-trigger.directive.d.ts +0 -14
  409. package/stepper/src/types.d.ts +0 -1
  410. package/switch/src/switch-input.directive.d.ts +0 -11
  411. package/switch/src/switch-root.directive.d.ts +0 -74
  412. package/switch/src/switch-thumb.directive.d.ts +0 -9
  413. package/tabs/src/tabs-content.directive.d.ts +0 -13
  414. package/tabs/src/tabs-list.directive.d.ts +0 -10
  415. package/tabs/src/tabs-root.directive.d.ts +0 -53
  416. package/tabs/src/tabs-trigger.directive.d.ts +0 -29
  417. package/tabs/src/utils.d.ts +0 -2
  418. package/time-field/src/time-field-context.token.d.ts +0 -20
  419. package/time-field/src/time-field-input.directive.d.ts +0 -53
  420. package/time-field/src/time-field-root.directive.d.ts +0 -130
  421. package/toggle/src/toggle-visually-hidden-input.directive.d.ts +0 -6
  422. package/toggle/src/toggle.directive.d.ts +0 -65
  423. package/toggle-group/src/toggle-group-item.directive.d.ts +0 -37
  424. package/toggle-group/src/toggle-group-item.token.d.ts +0 -4
  425. package/toggle-group/src/toggle-group-without-focus.directive.d.ts +0 -69
  426. package/toggle-group/src/toggle-group.directive.d.ts +0 -74
  427. package/toggle-group/src/toggle-group.token.d.ts +0 -10
  428. package/toolbar/src/toolbar-button.directive.d.ts +0 -11
  429. package/toolbar/src/toolbar-link.directive.d.ts +0 -7
  430. package/toolbar/src/toolbar-root.directive.d.ts +0 -8
  431. package/toolbar/src/toolbar-root.token.d.ts +0 -5
  432. package/toolbar/src/toolbar-separator.directive.d.ts +0 -6
  433. package/toolbar/src/toolbar-toggle-group.directive.d.ts +0 -6
  434. package/toolbar/src/toolbar-toggle-item.directive.d.ts +0 -6
  435. package/tooltip/src/tooltip-anchor.directive.d.ts +0 -28
  436. package/tooltip/src/tooltip-anchor.token.d.ts +0 -3
  437. package/tooltip/src/tooltip-arrow.directive.d.ts +0 -40
  438. package/tooltip/src/tooltip-arrow.token.d.ts +0 -3
  439. package/tooltip/src/tooltip-close.directive.d.ts +0 -18
  440. package/tooltip/src/tooltip-close.token.d.ts +0 -3
  441. package/tooltip/src/tooltip-content-attributes.component.d.ts +0 -25
  442. package/tooltip/src/tooltip-content-attributes.token.d.ts +0 -3
  443. package/tooltip/src/tooltip-content.directive.d.ts +0 -104
  444. package/tooltip/src/tooltip-root.directive.d.ts +0 -168
  445. package/tooltip/src/tooltip-root.inject.d.ts +0 -3
  446. package/tooltip/src/tooltip-trigger.directive.d.ts +0 -26
  447. package/tooltip/src/tooltip.types.d.ts +0 -18
  448. package/tooltip/src/utils/cdk-event.service.d.ts +0 -30
  449. package/tooltip/src/utils/constants.d.ts +0 -1
  450. package/tooltip/src/utils/types.d.ts +0 -7
  451. package/visually-hidden/src/visually-hidden-input-bubble.directive.d.ts +0 -23
  452. package/visually-hidden/src/visually-hidden-input.directive.d.ts +0 -19
  453. package/visually-hidden/src/visually-hidden.directive.d.ts +0 -17
@@ -1 +1 @@
1
- {"version":3,"file":"radix-ng-primitives-calendar.mjs","sources":["../../../packages/primitives/calendar/src/сalendar-сontext.token.ts","../../../packages/primitives/calendar/src/calendar-cell-trigger.directive.ts","../../../packages/primitives/calendar/src/calendar-cell.directive.ts","../../../packages/primitives/calendar/src/calendar-grid-body.directive.ts","../../../packages/primitives/calendar/src/calendar-grid-head.directive.ts","../../../packages/primitives/calendar/src/calendar-grid-row.directive.ts","../../../packages/primitives/calendar/src/calendar-grid.directive.ts","../../../packages/primitives/calendar/src/calendar-head-cell.directive.ts","../../../packages/primitives/calendar/src/calendar-header.directive.ts","../../../packages/primitives/calendar/src/calendar-heading.directive.ts","../../../packages/primitives/calendar/src/calendar-next.directive.ts","../../../packages/primitives/calendar/src/calendar-prev.directive.ts","../../../packages/primitives/calendar/src/calendar.ts","../../../packages/primitives/calendar/src/calendar-root.directive.ts","../../../packages/primitives/calendar/index.ts","../../../packages/primitives/calendar/radix-ng-primitives-calendar.ts"],"sourcesContent":["import { inject, InjectionToken, InputSignal, ModelSignal, WritableSignal } from '@angular/core';\nimport { DateValue } from '@internationalized/date';\nimport { DateMatcher, Formatter } from '@radix-ng/primitives/core';\n\nexport interface CalendarRootContextToken {\n nextPage?: (nextPageFunc?: (date: DateValue) => DateValue) => void;\n prevPage?: (nextPageFunc?: (date: DateValue) => DateValue) => void;\n isNextButtonDisabled: (nextPageFunc?: (date: DateValue) => DateValue) => boolean;\n isPrevButtonDisabled: (nextPageFunc?: (date: DateValue) => DateValue) => boolean;\n headingValue: WritableSignal<string>;\n dir: InputSignal<'ltr' | 'rtl'>;\n readonly: boolean;\n numberOfMonths: InputSignal<number>;\n placeholder: ModelSignal<DateValue>;\n pagedNavigation: boolean;\n disabled: InputSignal<boolean>;\n isDateSelected?: DateMatcher;\n isDateDisabled?: DateMatcher;\n isDateUnavailable: DateMatcher;\n formatter: Formatter;\n onDateChange: (date: DateValue) => void;\n currentElement: HTMLElement;\n}\n\nexport const CALENDAR_ROOT_CONTEXT = new InjectionToken<CalendarRootContextToken>('CalendarRootContext');\n\nexport function injectCalendarRootContext(): CalendarRootContextToken {\n return inject(CALENDAR_ROOT_CONTEXT);\n}\n","import { AfterViewInit, computed, Directive, ElementRef, inject, input } from '@angular/core';\nimport { DateValue, getLocalTimeZone, isSameDay, isSameMonth, isToday } from '@internationalized/date';\nimport * as kbd from '@radix-ng/primitives/core';\nimport { getDaysInMonth, toDate } from '@radix-ng/primitives/core';\nimport { injectCalendarRootContext } from './сalendar-сontext.token';\n\n@Directive({\n selector: '[rdxCalendarCellTrigger]',\n exportAs: 'rdxCalendarCellTrigger',\n host: {\n role: 'button',\n '[attr.aria-label]': 'labelText()',\n '[attr.aria-disabled]': 'isDisabled() || isUnavailable() ? true : undefined',\n '[attr.data-rdx-calendar-cell-trigger]': '\"\"',\n '[attr.tabindex]': 'isFocusedDate() ? 0 : isOutsideView() || isDisabled() ? undefined : -1',\n '[attr.data-value]': 'day()?.toString()',\n '[attr.data-disabled]': 'isDisabled() ? \"\" : undefined',\n '[attr.data-today]': 'isDateToday() ? \"\" : undefined',\n '[attr.data-outside-view]': 'isOutsideView() ? \"\" : undefined',\n '[attr.data-selected]': 'isSelectedDate() ? \"\" : undefined',\n '[attr.data-unavailable]': 'isUnavailable() ? \"\" : undefined',\n '[attr.data-focus]': 'isFocusedDate() ? \"\" : undefined',\n\n '(click)': 'onClick()',\n\n '(keydown)': 'onArrowKey($event)'\n }\n})\nexport class RdxCalendarCellTriggerDirective implements AfterViewInit {\n private readonly rootContext = injectCalendarRootContext();\n private readonly elementRef = inject(ElementRef<HTMLElement>);\n\n /**\n * The date value provided to the cell trigger\n */\n readonly day = input<DateValue>();\n\n /**\n * The month in which the cell is rendered\n */\n readonly month = input<DateValue>();\n\n /**\n * Current day\n */\n readonly dayValue = computed(() => this.day()?.day.toLocaleString());\n\n /**\n * Current today state\n */\n readonly isDateToday = computed(() => {\n return isToday(<DateValue>this.day(), getLocalTimeZone());\n });\n\n /**\n * Current selected state\n */\n readonly isSelectedDate = computed(() => this.rootContext.isDateSelected!(<DateValue>this.day()));\n\n readonly isDisabled = computed(() => this.rootContext.isDateDisabled!(<DateValue>this.day()));\n\n readonly isOutsideView = computed(() => {\n return !isSameMonth(<DateValue>this.day(), <DateValue>this.month());\n });\n\n readonly isFocusedDate = computed(() => {\n return !this.rootContext.disabled() && isSameDay(<DateValue>this.day(), this.rootContext.placeholder());\n });\n\n readonly isUnavailable = computed(() => this.rootContext.isDateUnavailable?.(<DateValue>this.day()) ?? false);\n\n readonly labelText = computed(() => {\n return this.rootContext.formatter.custom(toDate(<DateValue>this.day()), {\n weekday: 'long',\n month: 'long',\n day: 'numeric',\n year: 'numeric'\n });\n });\n\n /**\n * @ignore\n */\n currentElement!: HTMLElement;\n\n ngAfterViewInit() {\n this.currentElement = this.elementRef.nativeElement;\n }\n\n protected onClick() {\n this.changeDate(this.day()!);\n }\n\n protected onArrowKey(event: KeyboardEvent) {\n const code = event.code;\n if (\n ![kbd.ARROW_RIGHT, kbd.ARROW_LEFT, kbd.ARROW_UP, kbd.ARROW_DOWN, kbd.ENTER, kbd.SPACE_CODE].includes(code)\n ) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n\n const indexIncrementation = 7;\n const sign = this.rootContext.dir() === 'rtl' ? -1 : 1;\n\n switch (code) {\n case kbd.ARROW_RIGHT:\n this.shiftFocus(this.currentElement, sign);\n break;\n case kbd.ARROW_LEFT:\n this.shiftFocus(this.currentElement, -sign);\n break;\n case kbd.ARROW_UP:\n this.shiftFocus(this.currentElement, -indexIncrementation);\n break;\n case kbd.ARROW_DOWN:\n this.shiftFocus(this.currentElement, indexIncrementation);\n break;\n case kbd.ENTER:\n case kbd.SPACE_CODE:\n this.changeDate(<DateValue>this.day());\n }\n }\n\n private shiftFocus(node: HTMLElement, add: number) {\n const parentElement = this.rootContext.currentElement;\n\n const allCollectionItems: HTMLElement[] = this.getSelectableCells(parentElement);\n if (!allCollectionItems.length) return;\n\n const index = allCollectionItems.indexOf(node);\n const newIndex = index + add;\n\n if (newIndex >= 0 && newIndex < allCollectionItems.length) {\n if (allCollectionItems[newIndex].hasAttribute('data-disabled')) {\n this.shiftFocus(allCollectionItems[newIndex], add);\n }\n allCollectionItems[newIndex].focus();\n return;\n }\n\n if (newIndex < 0) {\n if (!this.rootContext.prevPage) return;\n\n this.rootContext.prevPage();\n\n setTimeout(() => {\n const newCollectionItems = this.getSelectableCells(parentElement);\n if (!newCollectionItems.length) return;\n\n if (!this.rootContext.pagedNavigation && this.rootContext.numberOfMonths() > 1) {\n // Placeholder is set to the first month of the new page\n const numberOfDays = getDaysInMonth(this.rootContext.placeholder());\n const computedIndex = numberOfDays - Math.abs(newIndex);\n if (newCollectionItems[computedIndex].hasAttribute('data-disabled')) {\n this.shiftFocus(newCollectionItems[computedIndex], add);\n }\n newCollectionItems[computedIndex].focus();\n return;\n }\n\n const computedIndex = newCollectionItems.length - Math.abs(newIndex);\n if (newCollectionItems[computedIndex].hasAttribute('data-disabled')) {\n this.shiftFocus(newCollectionItems[computedIndex], add);\n }\n newCollectionItems[computedIndex].focus();\n });\n }\n\n if (newIndex >= allCollectionItems.length) {\n if (!this.rootContext.nextPage) return;\n\n this.rootContext.nextPage();\n\n setTimeout(() => {\n const newCollectionItems = this.getSelectableCells(parentElement);\n if (!newCollectionItems.length) return;\n\n if (!this.rootContext.pagedNavigation && this.rootContext.numberOfMonths() > 1) {\n const numberOfDays = getDaysInMonth(\n this.rootContext.placeholder().add({ months: this.rootContext.numberOfMonths() - 1 })\n );\n\n const computedIndex =\n newIndex - allCollectionItems.length + (newCollectionItems.length - numberOfDays);\n\n if (newCollectionItems[computedIndex].hasAttribute('data-disabled')) {\n this.shiftFocus(newCollectionItems[computedIndex], add);\n }\n newCollectionItems[computedIndex].focus();\n return;\n }\n\n const computedIndex = newIndex - allCollectionItems.length;\n if (newCollectionItems[computedIndex].hasAttribute('data-disabled')) {\n this.shiftFocus(newCollectionItems[computedIndex], add);\n }\n\n newCollectionItems[computedIndex].focus();\n });\n }\n }\n\n /**\n * @ignore\n */\n SELECTOR = '[data-rdx-calendar-cell-trigger]:not([data-outside-view]):not([data-outside-visible-view])';\n\n /**\n * @ignore\n */\n getSelectableCells(calendar: HTMLElement): HTMLElement[] {\n return Array.from(calendar.querySelectorAll(this.SELECTOR)) ?? [];\n }\n\n /**\n * @ignore\n */\n changeDate(date: DateValue) {\n this.rootContext.onDateChange(date);\n }\n}\n","import { Directive, input } from '@angular/core';\nimport { DateValue } from '@internationalized/date';\nimport { injectCalendarRootContext } from './сalendar-сontext.token';\n\n@Directive({\n selector: 'td[rdxCalendarCell]',\n host: {\n role: 'gridcell',\n '[attr.aria-selected]': 'rootContext.isDateSelected?.(date()!) ? true : undefined',\n '[attr.aria-disabled]': 'rootContext.isDateSelected?.(date()!) || rootContext.isDateUnavailable?.(date()!)',\n '[attr.data-disabled]': 'rootContext.isDateSelected?.(date()!) ? \"\" : undefined'\n }\n})\nexport class RdxCalendarCellDirective {\n protected readonly rootContext = injectCalendarRootContext();\n\n /**\n * The date of the cell\n */\n readonly date = input<DateValue>();\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: 'tbody[rdxCalendarGridBody]'\n})\nexport class RdxCalendarGridBodyDirective {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: 'thead[rdxCalendarGridHead]',\n host: {\n '[attr.aria-hidden]': 'true'\n }\n})\nexport class RdxCalendarGridHeadDirective {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: 'tr[rdxCalendarGridRow]'\n})\nexport class RdxCalendarGridRowDirective {}\n","import { computed, Directive } from '@angular/core';\nimport { injectCalendarRootContext } from './сalendar-сontext.token';\n\n@Directive({\n selector: 'table[rdxCalendarGrid]',\n host: {\n tabindex: '-1',\n role: 'grid',\n '[attr.aria-readonly]': 'readonly()',\n '[attr.aria-disabled]': 'disabled()',\n '[attr.data-readonly]': 'readonly() && \"\"',\n '[attr.data-disabled]': 'disabled() && \"\"'\n }\n})\nexport class RdxCalendarGridDirective {\n private readonly rootContext = injectCalendarRootContext();\n\n readonly disabled = computed(() => (this.rootContext.disabled() ? true : undefined));\n readonly readonly = computed(() => (this.rootContext.readonly ? true : undefined));\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: 'th[rdxCalendarHeadCell]'\n})\nexport class RdxCalendarHeadCellDirective {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: 'div[rdxCalendarHeader]'\n})\nexport class RdxCalendarHeaderDirective {}\n","import { computed, Directive } from '@angular/core';\nimport { injectCalendarRootContext } from './сalendar-сontext.token';\n\n@Directive({\n selector: 'div[rdxCalendarHeading]',\n exportAs: 'rdxCalendarHeading',\n host: {\n '[attr.data-disabled]': 'rootContext.disabled() ? \"\" : undefined'\n }\n})\nexport class RdxCalendarHeadingDirective {\n protected readonly rootContext = injectCalendarRootContext();\n\n readonly headingValue = computed(() => this.rootContext.headingValue());\n}\n","import { computed, Directive, input } from '@angular/core';\nimport { DateValue } from '@internationalized/date';\nimport { injectCalendarRootContext } from './сalendar-сontext.token';\n\n@Directive({\n selector: 'button[rdxCalendarNext]',\n exportAs: 'rdxCalendarNext',\n host: {\n '(click)': 'onClick()',\n '[disabled]': 'disabled()',\n '[attr.data-disabled]': 'disabled() ? \"\" : undefined',\n '[attr.aria-disabled]': 'disabled() ? \"\" : undefined',\n 'aria-label': 'Next page'\n }\n})\nexport class RdxCalendarNextDirective {\n protected readonly rootContext = injectCalendarRootContext();\n\n /**\n * The function to be used for the `next page`. Overwrites the nextPage function set on the `CalendarRoot`.\n */\n readonly nextPage = input<(placeholder: DateValue) => DateValue>();\n\n /**\n * @ignore\n */\n readonly disabled = computed(\n () => this.rootContext.disabled() || this.rootContext.isNextButtonDisabled(this.nextPage())\n );\n\n protected onClick() {\n this.rootContext.nextPage!(this.nextPage());\n }\n}\n","import { computed, Directive, input } from '@angular/core';\nimport { DateValue } from '@internationalized/date';\nimport { injectCalendarRootContext } from './сalendar-сontext.token';\n\n@Directive({\n selector: 'button[rdxCalendarPrev]',\n exportAs: 'rdxCalendarPrev',\n host: {\n '(click)': 'onClick()',\n '[disabled]': 'disabled()',\n '[attr.data-disabled]': 'disabled() ? \"\" : undefined',\n '[attr.aria-disabled]': 'disabled() ? \"\" : undefined',\n 'aria-label': 'Previous page'\n }\n})\nexport class RdxCalendarPrevDirective {\n protected readonly rootContext = injectCalendarRootContext();\n\n /**\n * The function to be used for the `prev page`. Overwrites the prevPage function set on the `CalendarRoot`.\n */\n readonly prevPage = input<(placeholder: DateValue) => DateValue>();\n\n /**\n * @ignore\n */\n readonly disabled = computed(\n () => this.rootContext.disabled() || this.rootContext.isNextButtonDisabled(this.prevPage())\n );\n\n protected onClick() {\n this.rootContext.prevPage!(this.prevPage());\n }\n}\n","import { computed, InputSignal, ModelSignal, signal, WritableSignal } from '@angular/core';\nimport { DateFields, DateValue, isEqualMonth, isSameDay } from '@internationalized/date';\nimport {\n createFormatter,\n createMonths,\n DateFormatterOptions,\n DateMatcher,\n getDaysInMonth,\n isAfter,\n isBefore,\n Month,\n toDate,\n watch\n} from '@radix-ng/primitives/core';\n\nexport type CalendarProps = {\n locale: InputSignal<string>;\n placeholder: WritableSignal<DateValue>;\n weekStartsOn: InputSignal<0 | 1 | 2 | 3 | 4 | 5 | 6>;\n fixedWeeks: WritableSignal<boolean>;\n numberOfMonths: InputSignal<number>;\n minValue: InputSignal<DateValue | undefined>;\n maxValue: InputSignal<DateValue | undefined>;\n disabled: WritableSignal<boolean>;\n weekdayFormat: InputSignal<Intl.DateTimeFormatOptions['weekday']>;\n pagedNavigation: WritableSignal<boolean>;\n isDateDisabled?: InputSignal<DateMatcher | undefined>;\n isDateUnavailable?: InputSignal<DateMatcher | undefined>;\n calendarLabel: InputSignal<string | undefined>;\n nextPage: InputSignal<((placeholder: DateValue) => DateValue) | undefined>;\n prevPage: InputSignal<((placeholder: DateValue) => DateValue) | undefined>;\n};\n\nexport type CalendarStateProps = {\n date: ModelSignal<DateValue | DateValue[] | undefined>;\n isDateDisabled?: DateMatcher;\n isDateUnavailable?: DateMatcher;\n};\n\nexport function calendarState(props: CalendarStateProps) {\n function isDateSelected(dateObj: DateValue): boolean {\n const currentValue = props.date(); // signal read\n\n if (Array.isArray(currentValue)) {\n return currentValue.some((d) => isSameDay(d, dateObj));\n } else if (!currentValue) {\n return false;\n } else {\n return isSameDay(currentValue, dateObj);\n }\n }\n\n const isInvalid = computed(() => {\n const currentValue = props.date();\n\n if (Array.isArray(currentValue)) {\n if (!currentValue.length) {\n return false;\n }\n for (const dateObj of currentValue) {\n if (props.isDateDisabled?.(dateObj)) return true;\n if (props.isDateUnavailable?.(dateObj)) return true;\n }\n } else {\n if (!currentValue) {\n return false;\n }\n if (props.isDateDisabled?.(currentValue)) return true;\n if (props.isDateUnavailable?.(currentValue)) return true;\n }\n return false;\n });\n\n return {\n isDateSelected,\n isInvalid\n };\n}\n\nfunction handleNextDisabled(lastPeriodInView: DateValue, nextPageFunc: (date: DateValue) => DateValue): DateValue {\n const firstPeriodOfNextPage = nextPageFunc(lastPeriodInView);\n const diff = firstPeriodOfNextPage.compare(lastPeriodInView);\n const duration: DateFields = {};\n if (diff >= 7) duration.day = 1;\n if (diff >= getDaysInMonth(lastPeriodInView)) duration.month = 1;\n return firstPeriodOfNextPage.set({ ...duration });\n}\n\nfunction handlePrevDisabled(firstPeriodInView: DateValue, prevPageFunc: (date: DateValue) => DateValue): DateValue {\n const lastPeriodOfPrevPage = prevPageFunc(firstPeriodInView);\n const diff = firstPeriodInView.compare(lastPeriodOfPrevPage);\n const duration: DateFields = {};\n if (diff >= 7) duration.day = 35;\n if (diff >= getDaysInMonth(firstPeriodInView)) duration.month = 13;\n return lastPeriodOfPrevPage.set({ ...duration });\n}\n\nfunction handleNextPage(date: DateValue, nextPageFunc: (date: DateValue) => DateValue): DateValue {\n return nextPageFunc(date);\n}\n\nfunction handlePrevPage(date: DateValue, prevPageFunc: (date: DateValue) => DateValue): DateValue {\n return prevPageFunc(date);\n}\n\nexport function calendar(props: CalendarProps) {\n const formatter = createFormatter(props.locale());\n\n const headingFormatOptions = computed(() => {\n const options: DateFormatterOptions = {\n calendar: props.placeholder().calendar.identifier\n };\n\n if (props.placeholder().calendar.identifier === 'gregory' && props.placeholder().era === 'BC') {\n options.era = 'short';\n }\n\n return options;\n });\n\n const month = signal<Month<DateValue>[]>(\n createMonths({\n dateObj: props.placeholder(),\n weekStartsOn: props.weekStartsOn(),\n locale: props.locale(),\n fixedWeeks: props.fixedWeeks(),\n numberOfMonths: props.numberOfMonths()\n })\n );\n\n const visibleView = computed(() => {\n return month().map((month) => month.value);\n });\n\n function isOutsideVisibleView(date: DateValue) {\n return !visibleView().some((month) => isEqualMonth(date, month));\n }\n\n const isNextButtonDisabled = (nextPageFunc?: (date: DateValue) => DateValue) => {\n if (!props.maxValue() || !month().length) return false;\n if (props.disabled()) return true;\n\n const lastPeriodInView = month()[month().length - 1].value;\n\n if (!nextPageFunc && !props.nextPage()) {\n const firstPeriodOfNextPage = lastPeriodInView.add({ months: 1 }).set({ day: 1 });\n return isAfter(firstPeriodOfNextPage, <DateValue>props.maxValue());\n }\n\n const firstPeriodOfNextPage = handleNextDisabled(lastPeriodInView, nextPageFunc || props.nextPage()!);\n return isAfter(firstPeriodOfNextPage, <DateValue>props.maxValue());\n };\n\n const isPrevButtonDisabled = (prevPageFunc?: (date: DateValue) => DateValue) => {\n if (!props.minValue() || !month().length) return false;\n if (props.disabled()) return true;\n const firstPeriodInView = month()[0].value;\n\n if (!prevPageFunc && !props.prevPage()) {\n const lastPeriodOfPrevPage = firstPeriodInView.subtract({ months: 1 }).set({ day: 35 });\n return isBefore(lastPeriodOfPrevPage, <DateValue>props.minValue());\n }\n\n const lastPeriodOfPrevPage = handlePrevDisabled(firstPeriodInView, prevPageFunc || props.prevPage()!);\n return isBefore(lastPeriodOfPrevPage, <DateValue>props.minValue());\n };\n\n const nextPage = (nextPageFunc?: (date: DateValue) => DateValue) => {\n const firstDate = month()[0].value;\n\n if (!nextPageFunc && !props.nextPage()) {\n const newDate = firstDate.add({ months: props.pagedNavigation() ? props.numberOfMonths() : 1 });\n\n const newMonth = createMonths({\n dateObj: newDate,\n weekStartsOn: props.weekStartsOn(),\n locale: props.locale(),\n fixedWeeks: props.fixedWeeks(),\n numberOfMonths: props.numberOfMonths()\n });\n\n month.set(newMonth);\n props.placeholder.set(newMonth[0].value.set({ day: 1 }));\n\n return;\n }\n\n const newDate = handleNextPage(firstDate, nextPageFunc || props.nextPage()!);\n const newMonth = createMonths({\n dateObj: newDate,\n weekStartsOn: props.weekStartsOn(),\n locale: props.locale(),\n fixedWeeks: props.fixedWeeks(),\n numberOfMonths: props.numberOfMonths()\n });\n\n month.set(newMonth);\n\n const duration: DateFields = {};\n\n if (!nextPageFunc) {\n const diff = newMonth[0].value.compare(firstDate);\n if (diff >= getDaysInMonth(firstDate)) {\n duration.day = 1;\n }\n\n if (diff >= 365) {\n duration.month = 1;\n }\n }\n\n props.placeholder.set(newMonth[0].value.set({ ...duration }));\n };\n\n const prevPage = (prevPageFunc?: (date: DateValue) => DateValue) => {\n const firstDate = month()[0].value;\n\n if (!prevPageFunc && !props.prevPage()) {\n const newDate = firstDate.subtract({ months: props.pagedNavigation() ? props.numberOfMonths() : 1 });\n\n const newMonth = createMonths({\n dateObj: newDate,\n weekStartsOn: props.weekStartsOn(),\n locale: props.locale(),\n fixedWeeks: props.fixedWeeks(),\n numberOfMonths: props.numberOfMonths()\n });\n\n month.set(newMonth);\n\n props.placeholder.set(newMonth[0].value.set({ day: 1 }));\n return;\n }\n\n const newDate = handlePrevPage(firstDate, prevPageFunc || props.prevPage()!);\n const newMonth = createMonths({\n dateObj: newDate,\n weekStartsOn: props.weekStartsOn(),\n locale: props.locale(),\n fixedWeeks: props.fixedWeeks(),\n numberOfMonths: props.numberOfMonths()\n });\n\n month.set(newMonth);\n\n const duration: DateFields = {};\n\n // Do not adjust the placeholder if the prevPageFunc is defined (overwrite)\n if (!prevPageFunc) {\n const diff = firstDate.compare(newMonth[0].value);\n if (diff >= getDaysInMonth(firstDate)) duration.day = 1;\n\n if (diff >= 365) duration.month = 1;\n }\n\n props.placeholder.set(newMonth[0].value.set({ ...duration }));\n };\n\n function isDateDisabled(dateObj: DateValue) {\n if (props.isDateDisabled?.()?.(dateObj) || props.disabled()) return true;\n if (props.maxValue() && isAfter(dateObj, <DateValue>props.maxValue())) return true;\n if (props.minValue() && isBefore(dateObj, <DateValue>props.minValue())) return true;\n return false;\n }\n\n const isDateUnavailable = (date: DateValue) => {\n return !!props.isDateUnavailable?.()?.(date);\n };\n\n const weekdays = computed(() => {\n if (!month().length) return [];\n return month()[0].weeks[0].map((date) => {\n return formatter.dayOfWeek(toDate(date), props.weekdayFormat());\n });\n });\n\n watch([props.placeholder], ([placeholder]) => {\n if (visibleView().some((month) => isEqualMonth(month, placeholder))) {\n return;\n }\n\n month.set(\n createMonths({\n dateObj: placeholder,\n weekStartsOn: props.weekStartsOn(),\n locale: props.locale(),\n fixedWeeks: props.fixedWeeks(),\n numberOfMonths: props.numberOfMonths()\n })\n );\n });\n\n watch(\n [props.locale, props.weekStartsOn, props.fixedWeeks, props.numberOfMonths],\n ([locale, weekStartsOn, fixedWeeks, numberOfMonths]) => {\n month.set(\n createMonths({\n dateObj: props.placeholder(),\n weekStartsOn: weekStartsOn,\n locale: locale,\n fixedWeeks: fixedWeeks,\n numberOfMonths: numberOfMonths\n })\n );\n }\n );\n\n const headingValue = computed(() => {\n if (!month().length) {\n return '';\n }\n\n if (props.locale() !== formatter.getLocale()) formatter.setLocale(props.locale());\n\n if (month().length === 1) {\n const _month = month()[0].value;\n return `${formatter.fullMonthAndYear(toDate(_month), headingFormatOptions())}`;\n }\n\n const startMonth = toDate(month()[0].value);\n const endMonth = toDate(month()[month().length - 1].value);\n\n const startMonthName = formatter.fullMonth(startMonth, headingFormatOptions());\n const endMonthName = formatter.fullMonth(endMonth, headingFormatOptions());\n const startMonthYear = formatter.fullYear(startMonth, headingFormatOptions());\n const endMonthYear = formatter.fullYear(endMonth, headingFormatOptions());\n\n return startMonthYear === endMonthYear\n ? `${startMonthName} - ${endMonthName} ${endMonthYear}`\n : `${startMonthName} ${startMonthYear} - ${endMonthName} ${endMonthYear}`;\n });\n\n const fullCalendarLabel = computed(() => `${props.calendarLabel() ?? 'Event Date'}, ${headingValue()}`);\n\n return {\n isDateDisabled,\n isDateUnavailable,\n isNextButtonDisabled,\n isPrevButtonDisabled,\n month,\n weekdays,\n visibleView,\n isOutsideVisibleView,\n formatter,\n nextPage,\n prevPage,\n headingValue,\n fullCalendarLabel\n };\n}\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport {\n AfterViewInit,\n booleanAttribute,\n Directive,\n effect,\n ElementRef,\n forwardRef,\n inject,\n input,\n linkedSignal,\n model,\n signal\n} from '@angular/core';\nimport { DateValue, isEqualDay, isSameDay } from '@internationalized/date';\nimport { DateMatcher, Formatter, getDefaultDate, Month, watch } from '@radix-ng/primitives/core';\nimport { calendar, calendarState } from './calendar';\nimport { CALENDAR_ROOT_CONTEXT } from './сalendar-сontext.token';\n\n@Directive({\n selector: '[rdxCalendarRoot]',\n exportAs: 'rdxCalendarRoot',\n providers: [{ provide: CALENDAR_ROOT_CONTEXT, useExisting: forwardRef(() => RdxCalendarRootDirective) }],\n host: {\n role: 'application',\n '[attr.aria-label]': 'fullCalendarLabel()',\n '[attr.data-disabled]': 'disabled() ? \"\" : undefined',\n '[attr.data-readonly]': 'readonly() ? \"\" : undefined',\n '[attr.data-invalid]': 'isInvalid ? \"\" : undefined',\n '[attr.dir]': 'dir()'\n }\n})\nexport class RdxCalendarRootDirective implements AfterViewInit {\n private readonly elementRef = inject(ElementRef<HTMLElement>);\n\n /**\n * The controlled checked state of the calendar\n */\n readonly value = model<DateValue | DateValue[] | undefined>();\n\n /**\n * The default placeholder date\n */\n readonly defaultPlaceholder = model<DateValue>();\n\n readonly locale = input<string>('en');\n\n readonly defaultDate = getDefaultDate({\n defaultPlaceholder: this.defaultPlaceholder(),\n defaultValue: this.value(),\n locale: this.locale()\n });\n\n /**\n * The placeholder date, which is used to determine what month to display when no date is selected.\n * This updates as the user navigates the calendar and can be used to programmatically control the calendar view\n */\n readonly placeholder = model<DateValue>(this.defaultPlaceholder() ?? this.defaultDate.copy());\n\n readonly multiple = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /**\n * Whether to always display 6 weeks in the calendar\n */\n readonly fixedWeeks = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /**\n * Whether the calendar is disabled\n */\n readonly disabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /**\n * Whether to prevent the user from deselecting a date without selecting another date first\n */\n readonly preventDeselect = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /**\n * The day of the week to start the calendar on\n */\n readonly weekStartsOn = input<0 | 1 | 2 | 3 | 4 | 5 | 6>(1);\n\n /**\n * The number of months to display at once\n */\n readonly numberOfMonths = input<number>(1);\n\n /**\n * The reading direction of the calendar when applicable.\n */\n readonly dir = input<'ltr' | 'rtl'>('ltr');\n\n /**\n * The minimum date that can be selected\n */\n readonly minValue = input<DateValue>();\n\n /**\n * The maximum date that can be selected\n */\n readonly maxValue = input<DateValue>();\n\n /**\n * The format to use for the weekday strings provided via the weekdays slot prop\n */\n readonly weekdayFormat = input<Intl.DateTimeFormatOptions['weekday']>('narrow');\n\n /**\n * The accessible label for the calendar\n */\n readonly calendarLabel = input<string>();\n\n /**\n * Whether the calendar is readonly\n */\n readonly readonly = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /**\n * This property causes the previous and next buttons to navigate by the number of months displayed at once, rather than one month\n */\n readonly pagedNavigation = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n readonly propsNextPage = input<(placeholder: DateValue) => DateValue>();\n\n readonly propsPrevPage = input<(placeholder: DateValue) => DateValue>();\n\n /**\n * A function that returns whether a date is disabled\n */\n readonly isDateDisabled = input<DateMatcher>();\n\n /**\n * A function that returns whether a date is unavailable\n */\n readonly isDateUnavailable = input<DateMatcher>();\n\n readonly initialFocus = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n readonly months = model<Month<DateValue>[]>();\n\n /**\n * The days of the week\n */\n readonly weekDays = model<string[]>();\n\n protected readonly _fixedWeeks = linkedSignal(this.fixedWeeks);\n\n protected readonly _disabled = linkedSignal(this.disabled);\n\n protected readonly _pagedNavigation = linkedSignal(this.pagedNavigation);\n\n /**\n * @ignore\n */\n readonly headingValue = signal<string>('');\n\n /**\n * @ignore\n */\n readonly fullCalendarLabel = signal<string>('');\n\n /**\n * @ignore\n */\n nextPage: (nextPageFunc?: (date: DateValue) => DateValue) => void;\n\n /**\n * @ignore\n */\n prevPage: (nextPageFunc?: (date: DateValue) => DateValue) => void;\n\n /**\n * @ignore\n */\n isNextButtonDisabled: (nextPageFunc?: (date: DateValue) => DateValue) => boolean;\n\n /**\n * @ignore\n */\n isPrevButtonDisabled: (nextPageFunc?: (date: DateValue) => DateValue) => boolean;\n\n /**\n * @ignore\n */\n isDateSelected: DateMatcher;\n\n /**\n * @ignore\n */\n isInvalid: boolean;\n\n /**\n * @ignore\n */\n isOutsideVisibleView: (date: DateValue) => boolean;\n\n /**\n * @ignore\n */\n formatter: Formatter;\n\n /**\n * @ignore\n */\n currentElement!: HTMLElement;\n\n private readonly calendar = calendar({\n locale: this.locale,\n placeholder: this.placeholder,\n weekStartsOn: this.weekStartsOn,\n fixedWeeks: this._fixedWeeks,\n numberOfMonths: this.numberOfMonths,\n minValue: this.minValue,\n maxValue: this.maxValue,\n disabled: this._disabled,\n weekdayFormat: this.weekdayFormat,\n pagedNavigation: this._pagedNavigation,\n isDateDisabled: this.isDateDisabled,\n isDateUnavailable: this.isDateUnavailable,\n calendarLabel: this.calendarLabel,\n nextPage: this.propsNextPage,\n prevPage: this.propsPrevPage\n });\n\n constructor() {\n this.nextPage = this.calendar.nextPage;\n this.prevPage = this.calendar.prevPage;\n this.isOutsideVisibleView = this.calendar.isOutsideVisibleView;\n this.isNextButtonDisabled = this.calendar.isNextButtonDisabled;\n this.isPrevButtonDisabled = this.calendar.isPrevButtonDisabled;\n this.formatter = this.calendar.formatter;\n\n effect(() => {\n this.months.set(this.calendar.month());\n\n this.weekDays.set(this.calendar.weekdays());\n\n this.fullCalendarLabel.set(this.calendar.fullCalendarLabel());\n\n this.headingValue.set(this.calendar.headingValue());\n\n const { isInvalid, isDateSelected } = calendarState({\n date: this.value,\n isDateDisabled: this.isDateDisabled(),\n isDateUnavailable: this.isDateUnavailable()\n });\n\n this.isDateSelected = isDateSelected;\n this.isInvalid = isInvalid();\n });\n\n watch([this.value], ([_modelValue]) => {\n if (Array.isArray(_modelValue) && _modelValue.length) {\n const lastValue = _modelValue[_modelValue.length - 1];\n if (lastValue && !isEqualDay(this.placeholder(), <DateValue>lastValue)) {\n this.onPlaceholderChange(<DateValue>lastValue);\n }\n } else if (!Array.isArray(_modelValue) && _modelValue && !isEqualDay(this.placeholder(), _modelValue)) {\n this.onPlaceholderChange(_modelValue);\n }\n });\n }\n\n ngAfterViewInit() {\n this.currentElement = this.elementRef.nativeElement;\n }\n\n /**\n * @ignore\n */\n onPlaceholderChange(value: DateValue) {\n this.placeholder.set(value.copy());\n }\n\n /**\n * @ignore\n */\n onDateChange(date: DateValue) {\n const currentValue = this.value();\n\n if (!this.multiple()) {\n // for single selection\n if (!this.value()) {\n this.value.set(date.copy());\n return;\n }\n\n if (!this.preventDeselect() && isEqualDay(this.value() as DateValue, date)) {\n this.placeholder.set(date.copy());\n this.value.set(undefined);\n } else {\n this.value.set(date.copy());\n }\n } else if (!this.value()) {\n // for multiple selection\n this.value.set([date.copy()]);\n } else if (Array.isArray(currentValue)) {\n const index = currentValue.findIndex((d: DateValue) => isSameDay(d, date));\n if (index === -1) {\n this.value.set([...currentValue, date.copy()]);\n } else if (!this.preventDeselect()) {\n const next = currentValue.filter((d: DateValue) => !isSameDay(d, date));\n if (next.length === 0) {\n this.placeholder.set(date.copy());\n this.value.set(undefined);\n return;\n }\n this.value.set(next.map((d) => d.copy()));\n }\n }\n }\n}\n","import { NgModule } from '@angular/core';\n\nexport { RdxCalendarCellTriggerDirective } from './src/calendar-cell-trigger.directive';\nexport { RdxCalendarCellDirective } from './src/calendar-cell.directive';\nexport { RdxCalendarGridBodyDirective } from './src/calendar-grid-body.directive';\nexport { RdxCalendarGridHeadDirective } from './src/calendar-grid-head.directive';\nexport { RdxCalendarGridRowDirective } from './src/calendar-grid-row.directive';\nexport { RdxCalendarGridDirective } from './src/calendar-grid.directive';\nexport { RdxCalendarHeadCellDirective } from './src/calendar-head-cell.directive';\nexport { RdxCalendarHeaderDirective } from './src/calendar-header.directive';\nexport { RdxCalendarHeadingDirective } from './src/calendar-heading.directive';\nexport { RdxCalendarNextDirective } from './src/calendar-next.directive';\nexport { RdxCalendarPrevDirective } from './src/calendar-prev.directive';\nexport { RdxCalendarRootDirective } from './src/calendar-root.directive';\n\nimport { RdxCalendarCellTriggerDirective } from './src/calendar-cell-trigger.directive';\nimport { RdxCalendarCellDirective } from './src/calendar-cell.directive';\nimport { RdxCalendarGridBodyDirective } from './src/calendar-grid-body.directive';\nimport { RdxCalendarGridHeadDirective } from './src/calendar-grid-head.directive';\nimport { RdxCalendarGridRowDirective } from './src/calendar-grid-row.directive';\nimport { RdxCalendarGridDirective } from './src/calendar-grid.directive';\nimport { RdxCalendarHeadCellDirective } from './src/calendar-head-cell.directive';\nimport { RdxCalendarHeaderDirective } from './src/calendar-header.directive';\nimport { RdxCalendarHeadingDirective } from './src/calendar-heading.directive';\nimport { RdxCalendarNextDirective } from './src/calendar-next.directive';\nimport { RdxCalendarPrevDirective } from './src/calendar-prev.directive';\nimport { RdxCalendarRootDirective } from './src/calendar-root.directive';\n\nconst _imports = [\n RdxCalendarCellTriggerDirective,\n RdxCalendarCellDirective,\n RdxCalendarGridBodyDirective,\n RdxCalendarGridHeadDirective,\n RdxCalendarGridRowDirective,\n RdxCalendarGridDirective,\n RdxCalendarHeadCellDirective,\n RdxCalendarHeaderDirective,\n RdxCalendarPrevDirective,\n RdxCalendarRootDirective,\n RdxCalendarHeadingDirective,\n RdxCalendarNextDirective\n];\n\n@NgModule({\n imports: [..._imports],\n exports: [..._imports]\n})\nexport class RdxCalendarModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"radix-ng-primitives-calendar.mjs","sources":["../tmp-esm2022/calendar/src/сalendar-сontext.token.js","../tmp-esm2022/calendar/src/calendar-cell-trigger.directive.js","../tmp-esm2022/calendar/src/calendar-cell.directive.js","../tmp-esm2022/calendar/src/calendar-grid-body.directive.js","../tmp-esm2022/calendar/src/calendar-grid-head.directive.js","../tmp-esm2022/calendar/src/calendar-grid-row.directive.js","../tmp-esm2022/calendar/src/calendar-grid.directive.js","../tmp-esm2022/calendar/src/calendar-head-cell.directive.js","../tmp-esm2022/calendar/src/calendar-header.directive.js","../tmp-esm2022/calendar/src/calendar-heading.directive.js","../tmp-esm2022/calendar/src/calendar-next.directive.js","../tmp-esm2022/calendar/src/calendar-prev.directive.js","../tmp-esm2022/calendar/src/calendar.js","../tmp-esm2022/calendar/src/calendar-root.directive.js","../tmp-esm2022/calendar/index.js","../tmp-esm2022/calendar/radix-ng-primitives-calendar.js"],"sourcesContent":["import { inject, InjectionToken } from '@angular/core';\nexport const CALENDAR_ROOT_CONTEXT = new InjectionToken('CalendarRootContext');\nexport function injectCalendarRootContext() {\n return inject(CALENDAR_ROOT_CONTEXT);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoi0YFhbGVuZGFyLdGBb250ZXh0LnRva2VuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcHJpbWl0aXZlcy9jYWxlbmRhci9zcmMv0YFhbGVuZGFyLdGBb250ZXh0LnRva2VuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFvRCxNQUFNLGVBQWUsQ0FBQztBQXlCekcsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxjQUFjLENBQTJCLHFCQUFxQixDQUFDLENBQUM7QUFFekcsTUFBTSxVQUFVLHlCQUF5QjtJQUNyQyxPQUFPLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0FBQ3pDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGlvblRva2VuLCBJbnB1dFNpZ25hbCwgTW9kZWxTaWduYWwsIFNpZ25hbCwgV3JpdGFibGVTaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERhdGVWYWx1ZSB9IGZyb20gJ0BpbnRlcm5hdGlvbmFsaXplZC9kYXRlJztcbmltcG9ydCB7IERhdGVNYXRjaGVyLCBGb3JtYXR0ZXIgfSBmcm9tICdAcmFkaXgtbmcvcHJpbWl0aXZlcy9jb3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBDYWxlbmRhclJvb3RDb250ZXh0VG9rZW4ge1xuICAgIG5leHRQYWdlPzogKG5leHRQYWdlRnVuYz86IChkYXRlOiBEYXRlVmFsdWUpID0+IERhdGVWYWx1ZSkgPT4gdm9pZDtcbiAgICBwcmV2UGFnZT86IChuZXh0UGFnZUZ1bmM/OiAoZGF0ZTogRGF0ZVZhbHVlKSA9PiBEYXRlVmFsdWUpID0+IHZvaWQ7XG4gICAgaXNOZXh0QnV0dG9uRGlzYWJsZWQ6IChuZXh0UGFnZUZ1bmM/OiAoZGF0ZTogRGF0ZVZhbHVlKSA9PiBEYXRlVmFsdWUpID0+IGJvb2xlYW47XG4gICAgaXNQcmV2QnV0dG9uRGlzYWJsZWQ6IChuZXh0UGFnZUZ1bmM/OiAoZGF0ZTogRGF0ZVZhbHVlKSA9PiBEYXRlVmFsdWUpID0+IGJvb2xlYW47XG4gICAgaGVhZGluZ1ZhbHVlOiBXcml0YWJsZVNpZ25hbDxzdHJpbmc+O1xuICAgIGRpcjogSW5wdXRTaWduYWw8J2x0cicgfCAncnRsJz47XG4gICAgcmVhZG9ubHk6IGJvb2xlYW47XG4gICAgbnVtYmVyT2ZNb250aHM6IElucHV0U2lnbmFsPG51bWJlcj47XG4gICAgcGxhY2Vob2xkZXI6IE1vZGVsU2lnbmFsPERhdGVWYWx1ZT47XG4gICAgcGFnZWROYXZpZ2F0aW9uOiBib29sZWFuO1xuICAgIGRpc2FibGVkOiBJbnB1dFNpZ25hbDxib29sZWFuPjtcbiAgICBpc0RhdGVTZWxlY3RlZD86IERhdGVNYXRjaGVyO1xuICAgIGlzRGF0ZURpc2FibGVkPzogRGF0ZU1hdGNoZXI7XG4gICAgaXNEYXRlVW5hdmFpbGFibGU6IERhdGVNYXRjaGVyO1xuICAgIGZvcm1hdHRlcjogRm9ybWF0dGVyO1xuICAgIG9uRGF0ZUNoYW5nZTogKGRhdGU6IERhdGVWYWx1ZSkgPT4gdm9pZDtcbiAgICBjdXJyZW50RWxlbWVudDogSFRNTEVsZW1lbnQ7XG4gICAgc3RhcnRpbmdXZWVrTnVtYmVyOiBTaWduYWw8bnVtYmVyW10+O1xufVxuXG5leHBvcnQgY29uc3QgQ0FMRU5EQVJfUk9PVF9DT05URVhUID0gbmV3IEluamVjdGlvblRva2VuPENhbGVuZGFyUm9vdENvbnRleHRUb2tlbj4oJ0NhbGVuZGFyUm9vdENvbnRleHQnKTtcblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdENhbGVuZGFyUm9vdENvbnRleHQoKTogQ2FsZW5kYXJSb290Q29udGV4dFRva2VuIHtcbiAgICByZXR1cm4gaW5qZWN0KENBTEVOREFSX1JPT1RfQ09OVEVYVCk7XG59XG4iXX0=","import { computed, Directive, ElementRef, inject, input } from '@angular/core';\nimport { getLocalTimeZone, isSameDay, isSameMonth, isToday } from '@internationalized/date';\nimport * as kbd from '@radix-ng/primitives/core';\nimport { getDaysInMonth, toDate } from '@radix-ng/primitives/core';\nimport { injectCalendarRootContext } from './сalendar-сontext.token';\nimport * as i0 from \"@angular/core\";\nexport class RdxCalendarCellTriggerDirective {\n constructor() {\n this.rootContext = injectCalendarRootContext();\n this.elementRef = inject((ElementRef));\n /**\n * The date value provided to the cell trigger\n */\n this.day = input(...(ngDevMode ? [undefined, { debugName: \"day\" }] : []));\n /**\n * The month in which the cell is rendered\n */\n this.month = input(...(ngDevMode ? [undefined, { debugName: \"month\" }] : []));\n /**\n * Current day\n */\n this.dayValue = computed(() => this.day()?.day.toLocaleString(), ...(ngDevMode ? [{ debugName: \"dayValue\" }] : []));\n /**\n * Current today state\n */\n this.isDateToday = computed(() => {\n return isToday(this.day(), getLocalTimeZone());\n }, ...(ngDevMode ? [{ debugName: \"isDateToday\" }] : []));\n /**\n * Current selected state\n */\n this.isSelectedDate = computed(() => this.rootContext.isDateSelected(this.day()), ...(ngDevMode ? [{ debugName: \"isSelectedDate\" }] : []));\n this.isDisabled = computed(() => this.rootContext.isDateDisabled(this.day()), ...(ngDevMode ? [{ debugName: \"isDisabled\" }] : []));\n this.isOutsideView = computed(() => {\n return !isSameMonth(this.day(), this.month());\n }, ...(ngDevMode ? [{ debugName: \"isOutsideView\" }] : []));\n this.isFocusedDate = computed(() => {\n return !this.rootContext.disabled() && isSameDay(this.day(), this.rootContext.placeholder());\n }, ...(ngDevMode ? [{ debugName: \"isFocusedDate\" }] : []));\n this.isUnavailable = computed(() => this.rootContext.isDateUnavailable?.(this.day()) ?? false, ...(ngDevMode ? [{ debugName: \"isUnavailable\" }] : []));\n this.labelText = computed(() => {\n return this.rootContext.formatter.custom(toDate(this.day()), {\n weekday: 'long',\n month: 'long',\n day: 'numeric',\n year: 'numeric'\n });\n }, ...(ngDevMode ? [{ debugName: \"labelText\" }] : []));\n /**\n * @ignore\n */\n this.SELECTOR = '[data-rdx-calendar-cell-trigger]:not([data-outside-view]):not([data-outside-visible-view])';\n }\n ngAfterViewInit() {\n this.currentElement = this.elementRef.nativeElement;\n }\n onClick() {\n this.changeDate(this.day());\n }\n onArrowKey(event) {\n const code = event.code;\n if (![kbd.ARROW_RIGHT, kbd.ARROW_LEFT, kbd.ARROW_UP, kbd.ARROW_DOWN, kbd.ENTER, kbd.SPACE_CODE].includes(code)) {\n return;\n }\n event.preventDefault();\n event.stopPropagation();\n const indexIncrementation = 7;\n const sign = this.rootContext.dir() === 'rtl' ? -1 : 1;\n switch (code) {\n case kbd.ARROW_RIGHT:\n this.shiftFocus(this.currentElement, sign);\n break;\n case kbd.ARROW_LEFT:\n this.shiftFocus(this.currentElement, -sign);\n break;\n case kbd.ARROW_UP:\n this.shiftFocus(this.currentElement, -indexIncrementation);\n break;\n case kbd.ARROW_DOWN:\n this.shiftFocus(this.currentElement, indexIncrementation);\n break;\n case kbd.ENTER:\n case kbd.SPACE_CODE:\n this.changeDate(this.day());\n }\n }\n shiftFocus(node, add) {\n const parentElement = this.rootContext.currentElement;\n const allCollectionItems = this.getSelectableCells(parentElement);\n if (!allCollectionItems.length)\n return;\n const index = allCollectionItems.indexOf(node);\n const newIndex = index + add;\n if (newIndex >= 0 && newIndex < allCollectionItems.length) {\n if (allCollectionItems[newIndex].hasAttribute('data-disabled')) {\n this.shiftFocus(allCollectionItems[newIndex], add);\n }\n allCollectionItems[newIndex].focus();\n return;\n }\n if (newIndex < 0) {\n if (!this.rootContext.prevPage)\n return;\n this.rootContext.prevPage();\n setTimeout(() => {\n const newCollectionItems = this.getSelectableCells(parentElement);\n if (!newCollectionItems.length)\n return;\n if (!this.rootContext.pagedNavigation && this.rootContext.numberOfMonths() > 1) {\n // Placeholder is set to the first month of the new page\n const numberOfDays = getDaysInMonth(this.rootContext.placeholder());\n const computedIndex = numberOfDays - Math.abs(newIndex);\n if (newCollectionItems[computedIndex].hasAttribute('data-disabled')) {\n this.shiftFocus(newCollectionItems[computedIndex], add);\n }\n newCollectionItems[computedIndex].focus();\n return;\n }\n const computedIndex = newCollectionItems.length - Math.abs(newIndex);\n if (newCollectionItems[computedIndex].hasAttribute('data-disabled')) {\n this.shiftFocus(newCollectionItems[computedIndex], add);\n }\n newCollectionItems[computedIndex].focus();\n });\n }\n if (newIndex >= allCollectionItems.length) {\n if (!this.rootContext.nextPage)\n return;\n this.rootContext.nextPage();\n setTimeout(() => {\n const newCollectionItems = this.getSelectableCells(parentElement);\n if (!newCollectionItems.length)\n return;\n if (!this.rootContext.pagedNavigation && this.rootContext.numberOfMonths() > 1) {\n const numberOfDays = getDaysInMonth(this.rootContext.placeholder().add({ months: this.rootContext.numberOfMonths() - 1 }));\n const computedIndex = newIndex - allCollectionItems.length + (newCollectionItems.length - numberOfDays);\n if (newCollectionItems[computedIndex].hasAttribute('data-disabled')) {\n this.shiftFocus(newCollectionItems[computedIndex], add);\n }\n newCollectionItems[computedIndex].focus();\n return;\n }\n const computedIndex = newIndex - allCollectionItems.length;\n if (newCollectionItems[computedIndex].hasAttribute('data-disabled')) {\n this.shiftFocus(newCollectionItems[computedIndex], add);\n }\n newCollectionItems[computedIndex].focus();\n });\n }\n }\n /**\n * @ignore\n */\n getSelectableCells(calendar) {\n return Array.from(calendar.querySelectorAll(this.SELECTOR)) ?? [];\n }\n /**\n * @ignore\n */\n changeDate(date) {\n this.rootContext.onDateChange(date);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: RdxCalendarCellTriggerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.3.3\", type: RdxCalendarCellTriggerDirective, isStandalone: true, selector: \"[rdxCalendarCellTrigger]\", inputs: { day: { classPropertyName: \"day\", publicName: \"day\", isSignal: true, isRequired: false, transformFunction: null }, month: { classPropertyName: \"month\", publicName: \"month\", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { \"role\": \"button\" }, listeners: { \"click\": \"onClick()\", \"keydown\": \"onArrowKey($event)\" }, properties: { \"attr.aria-label\": \"labelText()\", \"attr.aria-disabled\": \"isDisabled() || isUnavailable() ? true : undefined\", \"attr.data-rdx-calendar-cell-trigger\": \"\\\"\\\"\", \"attr.tabindex\": \"isFocusedDate() ? 0 : isOutsideView() || isDisabled() ? undefined : -1\", \"attr.data-value\": \"day()?.toString()\", \"attr.data-disabled\": \"isDisabled() ? \\\"\\\" : undefined\", \"attr.data-today\": \"isDateToday() ? \\\"\\\" : undefined\", \"attr.data-outside-view\": \"isOutsideView() ? \\\"\\\" : undefined\", \"attr.data-selected\": \"isSelectedDate() ? \\\"\\\" : undefined\", \"attr.data-unavailable\": \"isUnavailable() ? \\\"\\\" : undefined\", \"attr.data-focus\": \"isFocusedDate() ? \\\"\\\" : undefined\" } }, exportAs: [\"rdxCalendarCellTrigger\"], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: RdxCalendarCellTriggerDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[rdxCalendarCellTrigger]',\n exportAs: 'rdxCalendarCellTrigger',\n host: {\n role: 'button',\n '[attr.aria-label]': 'labelText()',\n '[attr.aria-disabled]': 'isDisabled() || isUnavailable() ? true : undefined',\n '[attr.data-rdx-calendar-cell-trigger]': '\"\"',\n '[attr.tabindex]': 'isFocusedDate() ? 0 : isOutsideView() || isDisabled() ? undefined : -1',\n '[attr.data-value]': 'day()?.toString()',\n '[attr.data-disabled]': 'isDisabled() ? \"\" : undefined',\n '[attr.data-today]': 'isDateToday() ? \"\" : undefined',\n '[attr.data-outside-view]': 'isOutsideView() ? \"\" : undefined',\n '[attr.data-selected]': 'isSelectedDate() ? \"\" : undefined',\n '[attr.data-unavailable]': 'isUnavailable() ? \"\" : undefined',\n '[attr.data-focus]': 'isFocusedDate() ? \"\" : undefined',\n '(click)': 'onClick()',\n '(keydown)': 'onArrowKey($event)'\n }\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItY2VsbC10cmlnZ2VyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3ByaW1pdGl2ZXMvY2FsZW5kYXIvc3JjL2NhbGVuZGFyLWNlbGwtdHJpZ2dlci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixRQUFRLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlGLE9BQU8sRUFBYSxnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZHLE9BQU8sS0FBSyxHQUFHLE1BQU0sMkJBQTJCLENBQUM7QUFDakQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNuRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7QUF3QnJFLE1BQU0sT0FBTywrQkFBK0I7SUF0QjVDO1FBdUJxQixnQkFBVyxHQUFHLHlCQUF5QixFQUFFLENBQUM7UUFDMUMsZUFBVSxHQUFHLE1BQU0sQ0FBQyxDQUFBLFVBQXVCLENBQUEsQ0FBQyxDQUFDO1FBRTlEOztXQUVHO1FBQ00sUUFBRyxHQUFHLEtBQUsseURBQWEsQ0FBQztRQUVsQzs7V0FFRztRQUNNLFVBQUssR0FBRyxLQUFLLDJEQUFhLENBQUM7UUFFcEM7O1dBRUc7UUFDTSxhQUFRLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsRUFBRSxHQUFHLENBQUMsY0FBYyxFQUFFLG9EQUFDLENBQUM7UUFFckU7O1dBRUc7UUFDTSxnQkFBVyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDakMsT0FBTyxPQUFPLENBQVksSUFBSSxDQUFDLEdBQUcsRUFBRSxFQUFFLGdCQUFnQixF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QzNGLG1CQUFtQixFQUFFLG1CQUFtQjt3QkFDeEMsc0JBQXNCLEVBQUUsK0JBQStCO3dCQUN2RCxtQkFBbUIsRUFBRSxnQ0FBZ0M7d0JBQ3JELDBCQUEwQixFQUFFLGtDQUFrQzt3QkFDOUQsc0JBQXNCLEVBQUUsbUNBQW1DO3dCQUMzRCx5QkFBeUIsRUFBRSxrQ0FBa0M7d0JBQzdELG1CQUFtQixFQUFFLGtDQUFrQzt3QkFFdkQsU0FBUyxFQUFFLFdBQVc7d0JBRXRCLFdBQVcsRUFBRSxvQkFBb0I7cUJBQ3BDO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgY29tcHV0ZWQsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgaW5qZWN0LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGF0ZVZhbHVlLCBnZXRMb2NhbFRpbWVab25lLCBpc1NhbWVEYXksIGlzU2FtZU1vbnRoLCBpc1RvZGF5IH0gZnJvbSAnQGludGVybmF0aW9uYWxpemVkL2RhdGUnO1xuaW1wb3J0ICogYXMga2JkIGZyb20gJ0ByYWRpeC1uZy9wcmltaXRpdmVzL2NvcmUnO1xuaW1wb3J0IHsgZ2V0RGF5c0luTW9udGgsIHRvRGF0ZSB9IGZyb20gJ0ByYWRpeC1uZy9wcmltaXRpdmVzL2NvcmUnO1xuaW1wb3J0IHsgaW5qZWN0Q2FsZW5kYXJSb290Q29udGV4dCB9IGZyb20gJy4v0YFhbGVuZGFyLdGBb250ZXh0LnRva2VuJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbcmR4Q2FsZW5kYXJDZWxsVHJpZ2dlcl0nLFxuICAgIGV4cG9ydEFzOiAncmR4Q2FsZW5kYXJDZWxsVHJpZ2dlcicsXG4gICAgaG9zdDoge1xuICAgICAgICByb2xlOiAnYnV0dG9uJyxcbiAgICAgICAgJ1thdHRyLmFyaWEtbGFiZWxdJzogJ2xhYmVsVGV4dCgpJyxcbiAgICAgICAgJ1thdHRyLmFyaWEtZGlzYWJsZWRdJzogJ2lzRGlzYWJsZWQoKSB8fCBpc1VuYXZhaWxhYmxlKCkgPyB0cnVlIDogdW5kZWZpbmVkJyxcbiAgICAgICAgJ1thdHRyLmRhdGEtcmR4LWNhbGVuZGFyLWNlbGwtdHJpZ2dlcl0nOiAnXCJcIicsXG4gICAgICAgICdbYXR0ci50YWJpbmRleF0nOiAnaXNGb2N1c2VkRGF0ZSgpID8gMCA6IGlzT3V0c2lkZVZpZXcoKSB8fCBpc0Rpc2FibGVkKCkgPyB1bmRlZmluZWQgOiAtMScsXG4gICAgICAgICdbYXR0ci5kYXRhLXZhbHVlXSc6ICdkYXkoKT8udG9TdHJpbmcoKScsXG4gICAgICAgICdbYXR0ci5kYXRhLWRpc2FibGVkXSc6ICdpc0Rpc2FibGVkKCkgPyBcIlwiIDogdW5kZWZpbmVkJyxcbiAgICAgICAgJ1thdHRyLmRhdGEtdG9kYXldJzogJ2lzRGF0ZVRvZGF5KCkgPyBcIlwiIDogdW5kZWZpbmVkJyxcbiAgICAgICAgJ1thdHRyLmRhdGEtb3V0c2lkZS12aWV3XSc6ICdpc091dHNpZGVWaWV3KCkgPyBcIlwiIDogdW5kZWZpbmVkJyxcbiAgICAgICAgJ1thdHRyLmRhdGEtc2VsZWN0ZWRdJzogJ2lzU2VsZWN0ZWREYXRlKCkgPyBcIlwiIDogdW5kZWZpbmVkJyxcbiAgICAgICAgJ1thdHRyLmRhdGEtdW5hdmFpbGFibGVdJzogJ2lzVW5hdmFpbGFibGUoKSA/IFwiXCIgOiB1bmRlZmluZWQnLFxuICAgICAgICAnW2F0dHIuZGF0YS1mb2N1c10nOiAnaXNGb2N1c2VkRGF0ZSgpID8gXCJcIiA6IHVuZGVmaW5lZCcsXG5cbiAgICAgICAgJyhjbGljayknOiAnb25DbGljaygpJyxcblxuICAgICAgICAnKGtleWRvd24pJzogJ29uQXJyb3dLZXkoJGV2ZW50KSdcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIFJkeENhbGVuZGFyQ2VsbFRyaWdnZXJEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvb3RDb250ZXh0ID0gaW5qZWN0Q2FsZW5kYXJSb290Q29udGV4dCgpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFJlZiA9IGluamVjdChFbGVtZW50UmVmPEhUTUxFbGVtZW50Pik7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgZGF0ZSB2YWx1ZSBwcm92aWRlZCB0byB0aGUgY2VsbCB0cmlnZ2VyXG4gICAgICovXG4gICAgcmVhZG9ubHkgZGF5ID0gaW5wdXQ8RGF0ZVZhbHVlPigpO1xuXG4gICAgLyoqXG4gICAgICogVGhlIG1vbnRoIGluIHdoaWNoIHRoZSBjZWxsIGlzIHJlbmRlcmVkXG4gICAgICovXG4gICAgcmVhZG9ubHkgbW9udGggPSBpbnB1dDxEYXRlVmFsdWU+KCk7XG5cbiAgICAvKipcbiAgICAgKiBDdXJyZW50IGRheVxuICAgICAqL1xuICAgIHJlYWRvbmx5IGRheVZhbHVlID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5kYXkoKT8uZGF5LnRvTG9jYWxlU3RyaW5nKCkpO1xuXG4gICAgLyoqXG4gICAgICogQ3VycmVudCB0b2RheSBzdGF0ZVxuICAgICAqL1xuICAgIHJlYWRvbmx5IGlzRGF0ZVRvZGF5ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICByZXR1cm4gaXNUb2RheSg8RGF0ZVZhbHVlPnRoaXMuZGF5KCksIGdldExvY2FsVGltZVpvbmUoKSk7XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBDdXJyZW50IHNlbGVjdGVkIHN0YXRlXG4gICAgICovXG4gICAgcmVhZG9ubHkgaXNTZWxlY3RlZERhdGUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnJvb3RDb250ZXh0LmlzRGF0ZVNlbGVjdGVkISg8RGF0ZVZhbHVlPnRoaXMuZGF5KCkpKTtcblxuICAgIHJlYWRvbmx5IGlzRGlzYWJsZWQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnJvb3RDb250ZXh0LmlzRGF0ZURpc2FibGVkISg8RGF0ZVZhbHVlPnRoaXMuZGF5KCkpKTtcblxuICAgIHJlYWRvbmx5IGlzT3V0c2lkZVZpZXcgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIHJldHVybiAhaXNTYW1lTW9udGgoPERhdGVWYWx1ZT50aGlzLmRheSgpLCA8RGF0ZVZhbHVlPnRoaXMubW9udGgoKSk7XG4gICAgfSk7XG5cbiAgICByZWFkb25seSBpc0ZvY3VzZWREYXRlID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICByZXR1cm4gIXRoaXMucm9vdENvbnRleHQuZGlzYWJsZWQoKSAmJiBpc1NhbWVEYXkoPERhdGVWYWx1ZT50aGlzLmRheSgpLCB0aGlzLnJvb3RDb250ZXh0LnBsYWNlaG9sZGVyKCkpO1xuICAgIH0pO1xuXG4gICAgcmVhZG9ubHkgaXNVbmF2YWlsYWJsZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMucm9vdENvbnRleHQuaXNEYXRlVW5hdmFpbGFibGU/Lig8RGF0ZVZhbHVlPnRoaXMuZGF5KCkpID8/IGZhbHNlKTtcblxuICAgIHJlYWRvbmx5IGxhYmVsVGV4dCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMucm9vdENvbnRleHQuZm9ybWF0dGVyLmN1c3RvbSh0b0RhdGUoPERhdGVWYWx1ZT50aGlzLmRheSgpKSwge1xuICAgICAgICAgICAgd2Vla2RheTogJ2xvbmcnLFxuICAgICAgICAgICAgbW9udGg6ICdsb25nJyxcbiAgICAgICAgICAgIGRheTogJ251bWVyaWMnLFxuICAgICAgICAgICAgeWVhcjogJ251bWVyaWMnXG4gICAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogQGlnbm9yZVxuICAgICAqL1xuICAgIGN1cnJlbnRFbGVtZW50ITogSFRNTEVsZW1lbnQ7XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIHRoaXMuY3VycmVudEVsZW1lbnQgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25DbGljaygpIHtcbiAgICAgICAgdGhpcy5jaGFuZ2VEYXRlKHRoaXMuZGF5KCkhKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25BcnJvd0tleShldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICBjb25zdCBjb2RlID0gZXZlbnQuY29kZTtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgIVtrYmQuQVJST1dfUklHSFQsIGtiZC5BUlJPV19MRUZULCBrYmQuQVJST1dfVVAsIGtiZC5BUlJPV19ET1dOLCBrYmQuRU5URVIsIGtiZC5TUEFDRV9DT0RFXS5pbmNsdWRlcyhjb2RlKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgICAgIGNvbnN0IGluZGV4SW5jcmVtZW50YXRpb24gPSA3O1xuICAgICAgICBjb25zdCBzaWduID0gdGhpcy5yb290Q29udGV4dC5kaXIoKSA9PT0gJ3J0bCcgPyAtMSA6IDE7XG5cbiAgICAgICAgc3dpdGNoIChjb2RlKSB7XG4gICAgICAgICAgICBjYXNlIGtiZC5BUlJPV19SSUdIVDpcbiAgICAgICAgICAgICAgICB0aGlzLnNoaWZ0Rm9jdXModGhpcy5jdXJyZW50RWxlbWVudCwgc2lnbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIGtiZC5BUlJPV19MRUZUOlxuICAgICAgICAgICAgICAgIHRoaXMuc2hpZnRGb2N1cyh0aGlzLmN1cnJlbnRFbGVtZW50LCAtc2lnbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIGtiZC5BUlJPV19VUDpcbiAgICAgICAgICAgICAgICB0aGlzLnNoaWZ0Rm9jdXModGhpcy5jdXJyZW50RWxlbWVudCwgLWluZGV4SW5jcmVtZW50YXRpb24pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBrYmQuQVJST1dfRE9XTjpcbiAgICAgICAgICAgICAgICB0aGlzLnNoaWZ0Rm9jdXModGhpcy5jdXJyZW50RWxlbWVudCwgaW5kZXhJbmNyZW1lbnRhdGlvbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIGtiZC5FTlRFUjpcbiAgICAgICAgICAgIGNhc2Uga2JkLlNQQUNFX0NPREU6XG4gICAgICAgICAgICAgICAgdGhpcy5jaGFuZ2VEYXRlKDxEYXRlVmFsdWU+dGhpcy5kYXkoKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHNoaWZ0Rm9jdXMobm9kZTogSFRNTEVsZW1lbnQsIGFkZDogbnVtYmVyKSB7XG4gICAgICAgIGNvbnN0IHBhcmVudEVsZW1lbnQgPSB0aGlzLnJvb3RDb250ZXh0LmN1cnJlbnRFbGVtZW50O1xuXG4gICAgICAgIGNvbnN0IGFsbENvbGxlY3Rpb25JdGVtczogSFRNTEVsZW1lbnRbXSA9IHRoaXMuZ2V0U2VsZWN0YWJsZUNlbGxzKHBhcmVudEVsZW1lbnQpO1xuICAgICAgICBpZiAoIWFsbENvbGxlY3Rpb25JdGVtcy5sZW5ndGgpIHJldHVybjtcblxuICAgICAgICBjb25zdCBpbmRleCA9IGFsbENvbGxlY3Rpb25JdGVtcy5pbmRleE9mKG5vZGUpO1xuICAgICAgICBjb25zdCBuZXdJbmRleCA9IGluZGV4ICsgYWRkO1xuXG4gICAgICAgIGlmIChuZXdJbmRleCA+PSAwICYmIG5ld0luZGV4IDwgYWxsQ29sbGVjdGlvbkl0ZW1zLmxlbmd0aCkge1xuICAgICAgICAgICAgaWYgKGFsbENvbGxlY3Rpb25JdGVtc1tuZXdJbmRleF0uaGFzQXR0cmlidXRlKCdkYXRhLWRpc2FibGVkJykpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNoaWZ0Rm9jdXMoYWxsQ29sbGVjdGlvbkl0ZW1zW25ld0luZGV4XSwgYWRkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGFsbENvbGxlY3Rpb25JdGVtc1tuZXdJbmRleF0uZm9jdXMoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChuZXdJbmRleCA8IDApIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5yb290Q29udGV4dC5wcmV2UGFnZSkgcmV0dXJuO1xuXG4gICAgICAgICAgICB0aGlzLnJvb3RDb250ZXh0LnByZXZQYWdlKCk7XG5cbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IG5ld0NvbGxlY3Rpb25JdGVtcyA9IHRoaXMuZ2V0U2VsZWN0YWJsZUNlbGxzKHBhcmVudEVsZW1lbnQpO1xuICAgICAgICAgICAgICAgIGlmICghbmV3Q29sbGVjdGlvbkl0ZW1zLmxlbmd0aCkgcmV0dXJuO1xuXG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLnJvb3RDb250ZXh0LnBhZ2VkTmF2aWdhdGlvbiAmJiB0aGlzLnJvb3RDb250ZXh0Lm51bWJlck9mTW9udGhzKCkgPiAxKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFBsYWNlaG9sZGVyIGlzIHNldCB0byB0aGUgZmlyc3QgbW9udGggb2YgdGhlIG5ldyBwYWdlXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG51bWJlck9mRGF5cyA9IGdldERheXNJbk1vbnRoKHRoaXMucm9vdENvbnRleHQucGxhY2Vob2xkZXIoKSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbXB1dGVkSW5kZXggPSBudW1iZXJPZkRheXMgLSBNYXRoLmFicyhuZXdJbmRleCk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChuZXdDb2xsZWN0aW9uSXRlbXNbY29tcHV0ZWRJbmRleF0uaGFzQXR0cmlidXRlKCdkYXRhLWRpc2FibGVkJykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2hpZnRGb2N1cyhuZXdDb2xsZWN0aW9uSXRlbXNbY29tcHV0ZWRJbmRleF0sIGFkZCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgbmV3Q29sbGVjdGlvbkl0ZW1zW2NvbXB1dGVkSW5kZXhdLmZvY3VzKCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjb25zdCBjb21wdXRlZEluZGV4ID0gbmV3Q29sbGVjdGlvbkl0ZW1zLmxlbmd0aCAtIE1hdGguYWJzKG5ld0luZGV4KTtcbiAgICAgICAgICAgICAgICBpZiAobmV3Q29sbGVjdGlvbkl0ZW1zW2NvbXB1dGVkSW5kZXhdLmhhc0F0dHJpYnV0ZSgnZGF0YS1kaXNhYmxlZCcpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2hpZnRGb2N1cyhuZXdDb2xsZWN0aW9uSXRlbXNbY29tcHV0ZWRJbmRleF0sIGFkZCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIG5ld0NvbGxlY3Rpb25JdGVtc1tjb21wdXRlZEluZGV4XS5mb2N1cygpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobmV3SW5kZXggPj0gYWxsQ29sbGVjdGlvbkl0ZW1zLmxlbmd0aCkge1xuICAgICAgICAgICAgaWYgKCF0aGlzLnJvb3RDb250ZXh0Lm5leHRQYWdlKSByZXR1cm47XG5cbiAgICAgICAgICAgIHRoaXMucm9vdENvbnRleHQubmV4dFBhZ2UoKTtcblxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgbmV3Q29sbGVjdGlvbkl0ZW1zID0gdGhpcy5nZXRTZWxlY3RhYmxlQ2VsbHMocGFyZW50RWxlbWVudCk7XG4gICAgICAgICAgICAgICAgaWYgKCFuZXdDb2xsZWN0aW9uSXRlbXMubGVuZ3RoKSByZXR1cm47XG5cbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMucm9vdENvbnRleHQucGFnZWROYXZpZ2F0aW9uICYmIHRoaXMucm9vdENvbnRleHQubnVtYmVyT2ZNb250aHMoKSA+IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbnVtYmVyT2ZEYXlzID0gZ2V0RGF5c0luTW9udGgoXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJvb3RDb250ZXh0LnBsYWNlaG9sZGVyKCkuYWRkKHsgbW9udGhzOiB0aGlzLnJvb3RDb250ZXh0Lm51bWJlck9mTW9udGhzKCkgLSAxIH0pXG4gICAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY29tcHV0ZWRJbmRleCA9XG4gICAgICAgICAgICAgICAgICAgICAgICBuZXdJbmRleCAtIGFsbENvbGxlY3Rpb25JdGVtcy5sZW5ndGggKyAobmV3Q29sbGVjdGlvbkl0ZW1zLmxlbmd0aCAtIG51bWJlck9mRGF5cyk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKG5ld0NvbGxlY3Rpb25JdGVtc1tjb21wdXRlZEluZGV4XS5oYXNBdHRyaWJ1dGUoJ2RhdGEtZGlzYWJsZWQnKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zaGlmdEZvY3VzKG5ld0NvbGxlY3Rpb25JdGVtc1tjb21wdXRlZEluZGV4XSwgYWRkKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBuZXdDb2xsZWN0aW9uSXRlbXNbY29tcHV0ZWRJbmRleF0uZm9jdXMoKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGNvbnN0IGNvbXB1dGVkSW5kZXggPSBuZXdJbmRleCAtIGFsbENvbGxlY3Rpb25JdGVtcy5sZW5ndGg7XG4gICAgICAgICAgICAgICAgaWYgKG5ld0NvbGxlY3Rpb25JdGVtc1tjb21wdXRlZEluZGV4XS5oYXNBdHRyaWJ1dGUoJ2RhdGEtZGlzYWJsZWQnKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNoaWZ0Rm9jdXMobmV3Q29sbGVjdGlvbkl0ZW1zW2NvbXB1dGVkSW5kZXhdLCBhZGQpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIG5ld0NvbGxlY3Rpb25JdGVtc1tjb21wdXRlZEluZGV4XS5mb2N1cygpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaWdub3JlXG4gICAgICovXG4gICAgU0VMRUNUT1IgPSAnW2RhdGEtcmR4LWNhbGVuZGFyLWNlbGwtdHJpZ2dlcl06bm90KFtkYXRhLW91dHNpZGUtdmlld10pOm5vdChbZGF0YS1vdXRzaWRlLXZpc2libGUtdmlld10pJztcblxuICAgIC8qKlxuICAgICAqIEBpZ25vcmVcbiAgICAgKi9cbiAgICBnZXRTZWxlY3RhYmxlQ2VsbHMoY2FsZW5kYXI6IEhUTUxFbGVtZW50KTogSFRNTEVsZW1lbnRbXSB7XG4gICAgICAgIHJldHVybiBBcnJheS5mcm9tKGNhbGVuZGFyLnF1ZXJ5U2VsZWN0b3JBbGwodGhpcy5TRUxFQ1RPUikpID8/IFtdO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBpZ25vcmVcbiAgICAgKi9cbiAgICBjaGFuZ2VEYXRlKGRhdGU6IERhdGVWYWx1ZSkge1xuICAgICAgICB0aGlzLnJvb3RDb250ZXh0Lm9uRGF0ZUNoYW5nZShkYXRlKTtcbiAgICB9XG59XG4iXX0=","import { Directive, input } from '@angular/core';\nimport { injectCalendarRootContext } from './сalendar-сontext.token';\nimport * as i0 from \"@angular/core\";\nexport class RdxCalendarCellDirective {\n constructor() {\n this.rootContext = injectCalendarRootContext();\n /**\n * The date of the cell\n */\n this.date = input(...(ngDevMode ? [undefined, { debugName: \"date\" }] : []));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: RdxCalendarCellDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.3.3\", type: RdxCalendarCellDirective, isStandalone: true, selector: \"td[rdxCalendarCell]\", inputs: { date: { classPropertyName: \"date\", publicName: \"date\", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { \"role\": \"gridcell\" }, properties: { \"attr.aria-selected\": \"rootContext.isDateSelected?.(date()!) ? true : undefined\", \"attr.aria-disabled\": \"rootContext.isDateSelected?.(date()!) || rootContext.isDateUnavailable?.(date()!)\", \"attr.data-disabled\": \"rootContext.isDateSelected?.(date()!) ? \\\"\\\" : undefined\" } }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: RdxCalendarCellDirective, decorators: [{\n type: Directive,\n args: [{\n selector: 'td[rdxCalendarCell]',\n host: {\n role: 'gridcell',\n '[attr.aria-selected]': 'rootContext.isDateSelected?.(date()!) ? true : undefined',\n '[attr.aria-disabled]': 'rootContext.isDateSelected?.(date()!) || rootContext.isDateUnavailable?.(date()!)',\n '[attr.data-disabled]': 'rootContext.isDateSelected?.(date()!) ? \"\" : undefined'\n }\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItY2VsbC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wcmltaXRpdmVzL2NhbGVuZGFyL3NyYy9jYWxlbmRhci1jZWxsLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7QUFXckUsTUFBTSxPQUFPLHdCQUF3QjtJQVRyQztRQVV1QixnQkFBVyxHQUFHLHlCQUF5QixFQUFFLENBQUM7UUFFN0Q7O1dBRUc7UUFDTSxTQUFJLEdBQUcsS0FBSywwREFBYSxDQUFDO0tBQ3RDOzhHQVBZLHdCQUF3QjtrR0FBeEIsd0JBQXdCOzsyRkFBeEIsd0JBQXdCO2tCQVRwQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxxQkFBcUI7b0JBQy9CLElBQUksRUFBRTt3QkFDRixJQUFJLEVBQUUsVUFBVTt3QkFDaEIsc0JBQXNCLEVBQUUsMERBQTBEO3dCQUNsRixzQkFBc0IsRUFBRSxvRkFBb0Y7d0JBQzVHLHNCQUFzQixFQUFFLHdEQUF3RDtxQkFDbkY7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYXRlVmFsdWUgfSBmcm9tICdAaW50ZXJuYXRpb25hbGl6ZWQvZGF0ZSc7XG5pbXBvcnQgeyBpbmplY3RDYWxlbmRhclJvb3RDb250ZXh0IH0gZnJvbSAnLi/RgWFsZW5kYXIt0YFvbnRleHQudG9rZW4nO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ3RkW3JkeENhbGVuZGFyQ2VsbF0nLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgcm9sZTogJ2dyaWRjZWxsJyxcbiAgICAgICAgJ1thdHRyLmFyaWEtc2VsZWN0ZWRdJzogJ3Jvb3RDb250ZXh0LmlzRGF0ZVNlbGVjdGVkPy4oZGF0ZSgpISkgPyB0cnVlIDogdW5kZWZpbmVkJyxcbiAgICAgICAgJ1thdHRyLmFyaWEtZGlzYWJsZWRdJzogJ3Jvb3RDb250ZXh0LmlzRGF0ZVNlbGVjdGVkPy4oZGF0ZSgpISkgfHwgIHJvb3RDb250ZXh0LmlzRGF0ZVVuYXZhaWxhYmxlPy4oZGF0ZSgpISknLFxuICAgICAgICAnW2F0dHIuZGF0YS1kaXNhYmxlZF0nOiAncm9vdENvbnRleHQuaXNEYXRlU2VsZWN0ZWQ/LihkYXRlKCkhKSA/IFwiXCIgOiB1bmRlZmluZWQnXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBSZHhDYWxlbmRhckNlbGxEaXJlY3RpdmUge1xuICAgIHByb3RlY3RlZCByZWFkb25seSByb290Q29udGV4dCA9IGluamVjdENhbGVuZGFyUm9vdENvbnRleHQoKTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBkYXRlIG9mIHRoZSBjZWxsXG4gICAgICovXG4gICAgcmVhZG9ubHkgZGF0ZSA9IGlucHV0PERhdGVWYWx1ZT4oKTtcbn1cbiJdfQ==","import { Directive } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class RdxCalendarGridBodyDirective {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: RdxCalendarGridBodyDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.3.3\", type: RdxCalendarGridBodyDirective, isStandalone: true, selector: \"tbody[rdxCalendarGridBody]\", ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: RdxCalendarGridBodyDirective, decorators: [{\n type: Directive,\n args: [{\n selector: 'tbody[rdxCalendarGridBody]'\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItZ3JpZC1ib2R5LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3ByaW1pdGl2ZXMvY2FsZW5kYXIvc3JjL2NhbGVuZGFyLWdyaWQtYm9keS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLMUMsTUFBTSxPQUFPLDRCQUE0Qjs4R0FBNUIsNEJBQTRCO2tHQUE1Qiw0QkFBNEI7OzJGQUE1Qiw0QkFBNEI7a0JBSHhDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLDRCQUE0QjtpQkFDekMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICd0Ym9keVtyZHhDYWxlbmRhckdyaWRCb2R5XSdcbn0pXG5leHBvcnQgY2xhc3MgUmR4Q2FsZW5kYXJHcmlkQm9keURpcmVjdGl2ZSB7fVxuIl19","import { Directive } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class RdxCalendarGridHeadDirective {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: RdxCalendarGridHeadDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.3.3\", type: RdxCalendarGridHeadDirective, isStandalone: true, selector: \"thead[rdxCalendarGridHead]\", host: { properties: { \"attr.aria-hidden\": \"true\" } }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: RdxCalendarGridHeadDirective, decorators: [{\n type: Directive,\n args: [{\n selector: 'thead[rdxCalendarGridHead]',\n host: {\n '[attr.aria-hidden]': 'true'\n }\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItZ3JpZC1oZWFkLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3ByaW1pdGl2ZXMvY2FsZW5kYXIvc3JjL2NhbGVuZGFyLWdyaWQtaGVhZC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFRMUMsTUFBTSxPQUFPLDRCQUE0Qjs4R0FBNUIsNEJBQTRCO2tHQUE1Qiw0QkFBNEI7OzJGQUE1Qiw0QkFBNEI7a0JBTnhDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLDRCQUE0QjtvQkFDdEMsSUFBSSxFQUFFO3dCQUNGLG9CQUFvQixFQUFFLE1BQU07cUJBQy9CO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAndGhlYWRbcmR4Q2FsZW5kYXJHcmlkSGVhZF0nLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1thdHRyLmFyaWEtaGlkZGVuXSc6ICd0cnVlJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgUmR4Q2FsZW5kYXJHcmlkSGVhZERpcmVjdGl2ZSB7fVxuIl19","import { Directive } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class RdxCalendarGridRowDirective {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: RdxCalendarGridRowDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.3.3\", type: RdxCalendarGridRowDirective, isStandalone: true, selector: \"tr[rdxCalendarGridRow]\", ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: RdxCalendarGridRowDirective, decorators: [{\n type: Directive,\n args: [{\n selector: 'tr[rdxCalendarGridRow]'\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItZ3JpZC1yb3cuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcHJpbWl0aXZlcy9jYWxlbmRhci9zcmMvY2FsZW5kYXItZ3JpZC1yb3cuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBSzFDLE1BQU0sT0FBTywyQkFBMkI7OEdBQTNCLDJCQUEyQjtrR0FBM0IsMkJBQTJCOzsyRkFBM0IsMkJBQTJCO2tCQUh2QyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSx3QkFBd0I7aUJBQ3JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAndHJbcmR4Q2FsZW5kYXJHcmlkUm93XSdcbn0pXG5leHBvcnQgY2xhc3MgUmR4Q2FsZW5kYXJHcmlkUm93RGlyZWN0aXZlIHt9XG4iXX0=","import { computed, Directive } from '@angular/core';\nimport { injectCalendarRootContext } from './сalendar-сontext.token';\nimport * as i0 from \"@angular/core\";\nexport class RdxCalendarGridDirective {\n constructor() {\n this.rootContext = injectCalendarRootContext();\n this.disabled = computed(() => (this.rootContext.disabled() ? true : undefined), ...(ngDevMode ? [{ debugName: \"disabled\" }] : []));\n this.readonly = computed(() => (this.rootContext.readonly ? true : undefined), ...(ngDevMode ? [{ debugName: \"readonly\" }] : []));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: RdxCalendarGridDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.3.3\", type: RdxCalendarGridDirective, isStandalone: true, selector: \"table[rdxCalendarGrid]\", host: { attributes: { \"tabindex\": \"-1\", \"role\": \"grid\" }, properties: { \"attr.aria-readonly\": \"readonly()\", \"attr.aria-disabled\": \"disabled()\", \"attr.data-readonly\": \"readonly() && \\\"\\\"\", \"attr.data-disabled\": \"disabled() && \\\"\\\"\" } }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: RdxCalendarGridDirective, decorators: [{\n type: Directive,\n args: [{\n selector: 'table[rdxCalendarGrid]',\n host: {\n tabindex: '-1',\n role: 'grid',\n '[attr.aria-readonly]': 'readonly()',\n '[attr.aria-disabled]': 'disabled()',\n '[attr.data-readonly]': 'readonly() && \"\"',\n '[attr.data-disabled]': 'disabled() && \"\"'\n }\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItZ3JpZC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wcmltaXRpdmVzL2NhbGVuZGFyL3NyYy9jYWxlbmRhci1ncmlkLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7QUFhckUsTUFBTSxPQUFPLHdCQUF3QjtJQVhyQztRQVlxQixnQkFBVyxHQUFHLHlCQUF5QixFQUFFLENBQUM7UUFFbEQsYUFBUSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLG9EQUFDLENBQUM7UUFDNUUsYUFBUSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxvREFBQyxDQUFDO0tBQ3RGOzhHQUxZLHdCQUF3QjtrR0FBeEIsd0JBQXdCOzsyRkFBeEIsd0JBQXdCO2tCQVhwQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSx3QkFBd0I7b0JBQ2xDLElBQUksRUFBRTt3QkFDRixRQUFRLEVBQUUsSUFBSTt3QkFDZCxJQUFJLEVBQUUsTUFBTTt3QkFDWixzQkFBc0IsRUFBRSxZQUFZO3dCQUNwQyxzQkFBc0IsRUFBRSxZQUFZO3dCQUNwQyxzQkFBc0IsRUFBRSxrQkFBa0I7d0JBQzFDLHNCQUFzQixFQUFFLGtCQUFrQjtxQkFDN0M7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb21wdXRlZCwgRGlyZWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBpbmplY3RDYWxlbmRhclJvb3RDb250ZXh0IH0gZnJvbSAnLi/RgWFsZW5kYXIt0YFvbnRleHQudG9rZW4nO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ3RhYmxlW3JkeENhbGVuZGFyR3JpZF0nLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgdGFiaW5kZXg6ICctMScsXG4gICAgICAgIHJvbGU6ICdncmlkJyxcbiAgICAgICAgJ1thdHRyLmFyaWEtcmVhZG9ubHldJzogJ3JlYWRvbmx5KCknLFxuICAgICAgICAnW2F0dHIuYXJpYS1kaXNhYmxlZF0nOiAnZGlzYWJsZWQoKScsXG4gICAgICAgICdbYXR0ci5kYXRhLXJlYWRvbmx5XSc6ICdyZWFkb25seSgpICYmIFwiXCInLFxuICAgICAgICAnW2F0dHIuZGF0YS1kaXNhYmxlZF0nOiAnZGlzYWJsZWQoKSAmJiBcIlwiJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgUmR4Q2FsZW5kYXJHcmlkRGlyZWN0aXZlIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvb3RDb250ZXh0ID0gaW5qZWN0Q2FsZW5kYXJSb290Q29udGV4dCgpO1xuXG4gICAgcmVhZG9ubHkgZGlzYWJsZWQgPSBjb21wdXRlZCgoKSA9PiAodGhpcy5yb290Q29udGV4dC5kaXNhYmxlZCgpID8gdHJ1ZSA6IHVuZGVmaW5lZCkpO1xuICAgIHJlYWRvbmx5IHJlYWRvbmx5ID0gY29tcHV0ZWQoKCkgPT4gKHRoaXMucm9vdENvbnRleHQucmVhZG9ubHkgPyB0cnVlIDogdW5kZWZpbmVkKSk7XG59XG4iXX0=","import { Directive } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class RdxCalendarHeadCellDirective {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: RdxCalendarHeadCellDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.3.3\", type: RdxCalendarHeadCellDirective, isStandalone: true, selector: \"th[rdxCalendarHeadCell]\", ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: RdxCalendarHeadCellDirective, decorators: [{\n type: Directive,\n args: [{\n selector: 'th[rdxCalendarHeadCell]'\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItaGVhZC1jZWxsLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3ByaW1pdGl2ZXMvY2FsZW5kYXIvc3JjL2NhbGVuZGFyLWhlYWQtY2VsbC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLMUMsTUFBTSxPQUFPLDRCQUE0Qjs4R0FBNUIsNEJBQTRCO2tHQUE1Qiw0QkFBNEI7OzJGQUE1Qiw0QkFBNEI7a0JBSHhDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHlCQUF5QjtpQkFDdEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICd0aFtyZHhDYWxlbmRhckhlYWRDZWxsXSdcbn0pXG5leHBvcnQgY2xhc3MgUmR4Q2FsZW5kYXJIZWFkQ2VsbERpcmVjdGl2ZSB7fVxuIl19","import { Directive } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class RdxCalendarHeaderDirective {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: RdxCalendarHeaderDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.3.3\", type: RdxCalendarHeaderDirective, isStandalone: true, selector: \"div[rdxCalendarHeader]\", ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: RdxCalendarHeaderDirective, decorators: [{\n type: Directive,\n args: [{\n selector: 'div[rdxCalendarHeader]'\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItaGVhZGVyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3ByaW1pdGl2ZXMvY2FsZW5kYXIvc3JjL2NhbGVuZGFyLWhlYWRlci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLMUMsTUFBTSxPQUFPLDBCQUEwQjs4R0FBMUIsMEJBQTBCO2tHQUExQiwwQkFBMEI7OzJGQUExQiwwQkFBMEI7a0JBSHRDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHdCQUF3QjtpQkFDckMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdkaXZbcmR4Q2FsZW5kYXJIZWFkZXJdJ1xufSlcbmV4cG9ydCBjbGFzcyBSZHhDYWxlbmRhckhlYWRlckRpcmVjdGl2ZSB7fVxuIl19","import { computed, Directive } from '@angular/core';\nimport { injectCalendarRootContext } from './сalendar-сontext.token';\nimport * as i0 from \"@angular/core\";\nexport class RdxCalendarHeadingDirective {\n constructor() {\n this.rootContext = injectCalendarRootContext();\n this.headingValue = computed(() => this.rootContext.headingValue(), ...(ngDevMode ? [{ debugName: \"headingValue\" }] : []));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: RdxCalendarHeadingDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.3.3\", type: RdxCalendarHeadingDirective, isStandalone: true, selector: \"div[rdxCalendarHeading]\", host: { properties: { \"attr.data-disabled\": \"rootContext.disabled() ? \\\"\\\" : undefined\" } }, exportAs: [\"rdxCalendarHeading\"], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: RdxCalendarHeadingDirective, decorators: [{\n type: Directive,\n args: [{\n selector: 'div[rdxCalendarHeading]',\n exportAs: 'rdxCalendarHeading',\n host: {\n '[attr.data-disabled]': 'rootContext.disabled() ? \"\" : undefined'\n }\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItaGVhZGluZy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wcmltaXRpdmVzL2NhbGVuZGFyL3NyYy9jYWxlbmRhci1oZWFkaW5nLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7QUFTckUsTUFBTSxPQUFPLDJCQUEyQjtJQVB4QztRQVF1QixnQkFBVyxHQUFHLHlCQUF5QixFQUFFLENBQUM7UUFFcEQsaUJBQVksR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsd0RBQUMsQ0FBQztLQUMzRTs4R0FKWSwyQkFBMkI7a0dBQTNCLDJCQUEyQjs7MkZBQTNCLDJCQUEyQjtrQkFQdkMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUseUJBQXlCO29CQUNuQyxRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixJQUFJLEVBQUU7d0JBQ0Ysc0JBQXNCLEVBQUUseUNBQXlDO3FCQUNwRTtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbXB1dGVkLCBEaXJlY3RpdmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGluamVjdENhbGVuZGFyUm9vdENvbnRleHQgfSBmcm9tICcuL9GBYWxlbmRhci3RgW9udGV4dC50b2tlbic7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnZGl2W3JkeENhbGVuZGFySGVhZGluZ10nLFxuICAgIGV4cG9ydEFzOiAncmR4Q2FsZW5kYXJIZWFkaW5nJyxcbiAgICBob3N0OiB7XG4gICAgICAgICdbYXR0ci5kYXRhLWRpc2FibGVkXSc6ICdyb290Q29udGV4dC5kaXNhYmxlZCgpID8gXCJcIiA6IHVuZGVmaW5lZCdcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIFJkeENhbGVuZGFySGVhZGluZ0RpcmVjdGl2ZSB7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHJvb3RDb250ZXh0ID0gaW5qZWN0Q2FsZW5kYXJSb290Q29udGV4dCgpO1xuXG4gICAgcmVhZG9ubHkgaGVhZGluZ1ZhbHVlID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5yb290Q29udGV4dC5oZWFkaW5nVmFsdWUoKSk7XG59XG4iXX0=","import { computed, Directive, input } from '@angular/core';\nimport { injectCalendarRootContext } from './сalendar-сontext.token';\nimport * as i0 from \"@angular/core\";\nexport class RdxCalendarNextDirective {\n constructor() {\n this.rootContext = injectCalendarRootContext();\n /**\n * The function to be used for the `next page`. Overwrites the nextPage function set on the `CalendarRoot`.\n */\n this.nextPage = input(...(ngDevMode ? [undefined, { debugName: \"nextPage\" }] : []));\n /**\n * @ignore\n */\n this.disabled = computed(() => this.rootContext.disabled() || this.rootContext.isNextButtonDisabled(this.nextPage()), ...(ngDevMode ? [{ debugName: \"disabled\" }] : []));\n }\n onClick() {\n this.rootContext.nextPage(this.nextPage());\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: RdxCalendarNextDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.3.3\", type: RdxCalendarNextDirective, isStandalone: true, selector: \"button[rdxCalendarNext]\", inputs: { nextPage: { classPropertyName: \"nextPage\", publicName: \"nextPage\", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { \"aria-label\": \"Next page\" }, listeners: { \"click\": \"onClick()\" }, properties: { \"disabled\": \"disabled()\", \"attr.data-disabled\": \"disabled() ? \\\"\\\" : undefined\", \"attr.aria-disabled\": \"disabled() ? \\\"\\\" : undefined\" } }, exportAs: [\"rdxCalendarNext\"], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: RdxCalendarNextDirective, decorators: [{\n type: Directive,\n args: [{\n selector: 'button[rdxCalendarNext]',\n exportAs: 'rdxCalendarNext',\n host: {\n '(click)': 'onClick()',\n '[disabled]': 'disabled()',\n '[attr.data-disabled]': 'disabled() ? \"\" : undefined',\n '[attr.aria-disabled]': 'disabled() ? \"\" : undefined',\n 'aria-label': 'Next page'\n }\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItbmV4dC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wcmltaXRpdmVzL2NhbGVuZGFyL3NyYy9jYWxlbmRhci1uZXh0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0QsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sMEJBQTBCLENBQUM7O0FBYXJFLE1BQU0sT0FBTyx3QkFBd0I7SUFYckM7UUFZdUIsZ0JBQVcsR0FBRyx5QkFBeUIsRUFBRSxDQUFDO1FBRTdEOztXQUVHO1FBQ00sYUFBUSxHQUFHLEtBQUssOERBQXlDLENBQUM7UUFFbkU7O1dBRUc7UUFDTSxhQUFRLEdBQUcsUUFBUSxDQUN4QixHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLG9EQUM5RixDQUFDO0tBS0w7SUFIYSxPQUFPO1FBQ2IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDaEQsQ0FBQzs4R0FqQlEsd0JBQXdCO2tHQUF4Qix3QkFBd0I7OzJGQUF4Qix3QkFBd0I7a0JBWHBDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHlCQUF5QjtvQkFDbkMsUUFBUSxFQUFFLGlCQUFpQjtvQkFDM0IsSUFBSSxFQUFFO3dCQUNGLFNBQVMsRUFBRSxXQUFXO3dCQUN0QixZQUFZLEVBQUUsWUFBWTt3QkFDMUIsc0JBQXNCLEVBQUUsNkJBQTZCO3dCQUNyRCxzQkFBc0IsRUFBRSw2QkFBNkI7d0JBQ3JELFlBQVksRUFBRSxXQUFXO3FCQUM1QjtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbXB1dGVkLCBEaXJlY3RpdmUsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYXRlVmFsdWUgfSBmcm9tICdAaW50ZXJuYXRpb25hbGl6ZWQvZGF0ZSc7XG5pbXBvcnQgeyBpbmplY3RDYWxlbmRhclJvb3RDb250ZXh0IH0gZnJvbSAnLi/RgWFsZW5kYXIt0YFvbnRleHQudG9rZW4nO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ2J1dHRvbltyZHhDYWxlbmRhck5leHRdJyxcbiAgICBleHBvcnRBczogJ3JkeENhbGVuZGFyTmV4dCcsXG4gICAgaG9zdDoge1xuICAgICAgICAnKGNsaWNrKSc6ICdvbkNsaWNrKCknLFxuICAgICAgICAnW2Rpc2FibGVkXSc6ICdkaXNhYmxlZCgpJyxcbiAgICAgICAgJ1thdHRyLmRhdGEtZGlzYWJsZWRdJzogJ2Rpc2FibGVkKCkgPyBcIlwiIDogdW5kZWZpbmVkJyxcbiAgICAgICAgJ1thdHRyLmFyaWEtZGlzYWJsZWRdJzogJ2Rpc2FibGVkKCkgPyBcIlwiIDogdW5kZWZpbmVkJyxcbiAgICAgICAgJ2FyaWEtbGFiZWwnOiAnTmV4dCBwYWdlJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgUmR4Q2FsZW5kYXJOZXh0RGlyZWN0aXZlIHtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgcm9vdENvbnRleHQgPSBpbmplY3RDYWxlbmRhclJvb3RDb250ZXh0KCk7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgZnVuY3Rpb24gdG8gYmUgdXNlZCBmb3IgdGhlIGBuZXh0IHBhZ2VgLiBPdmVyd3JpdGVzIHRoZSBuZXh0UGFnZSBmdW5jdGlvbiBzZXQgb24gdGhlIGBDYWxlbmRhclJvb3RgLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IG5leHRQYWdlID0gaW5wdXQ8KHBsYWNlaG9sZGVyOiBEYXRlVmFsdWUpID0+IERhdGVWYWx1ZT4oKTtcblxuICAgIC8qKlxuICAgICAqIEBpZ25vcmVcbiAgICAgKi9cbiAgICByZWFkb25seSBkaXNhYmxlZCA9IGNvbXB1dGVkKFxuICAgICAgICAoKSA9PiB0aGlzLnJvb3RDb250ZXh0LmRpc2FibGVkKCkgfHwgdGhpcy5yb290Q29udGV4dC5pc05leHRCdXR0b25EaXNhYmxlZCh0aGlzLm5leHRQYWdlKCkpXG4gICAgKTtcblxuICAgIHByb3RlY3RlZCBvbkNsaWNrKCkge1xuICAgICAgICB0aGlzLnJvb3RDb250ZXh0Lm5leHRQYWdlISh0aGlzLm5leHRQYWdlKCkpO1xuICAgIH1cbn1cbiJdfQ==","import { computed, Directive, input } from '@angular/core';\nimport { injectCalendarRootContext } from './сalendar-сontext.token';\nimport * as i0 from \"@angular/core\";\nexport class RdxCalendarPrevDirective {\n constructor() {\n this.rootContext = injectCalendarRootContext();\n /**\n * The function to be used for the `prev page`. Overwrites the prevPage function set on the `CalendarRoot`.\n */\n this.prevPage = input(...(ngDevMode ? [undefined, { debugName: \"prevPage\" }] : []));\n /**\n * @ignore\n */\n this.disabled = computed(() => this.rootContext.disabled() || this.rootContext.isNextButtonDisabled(this.prevPage()), ...(ngDevMode ? [{ debugName: \"disabled\" }] : []));\n }\n onClick() {\n this.rootContext.prevPage(this.prevPage());\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: RdxCalendarPrevDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.3.3\", type: RdxCalendarPrevDirective, isStandalone: true, selector: \"button[rdxCalendarPrev]\", inputs: { prevPage: { classPropertyName: \"prevPage\", publicName: \"prevPage\", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { \"aria-label\": \"Previous page\" }, listeners: { \"click\": \"onClick()\" }, properties: { \"disabled\": \"disabled()\", \"attr.data-disabled\": \"disabled() ? \\\"\\\" : undefined\", \"attr.aria-disabled\": \"disabled() ? \\\"\\\" : undefined\" } }, exportAs: [\"rdxCalendarPrev\"], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: RdxCalendarPrevDirective, decorators: [{\n type: Directive,\n args: [{\n selector: 'button[rdxCalendarPrev]',\n exportAs: 'rdxCalendarPrev',\n host: {\n '(click)': 'onClick()',\n '[disabled]': 'disabled()',\n '[attr.data-disabled]': 'disabled() ? \"\" : undefined',\n '[attr.aria-disabled]': 'disabled() ? \"\" : undefined',\n 'aria-label': 'Previous page'\n }\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItcHJldi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wcmltaXRpdmVzL2NhbGVuZGFyL3NyYy9jYWxlbmRhci1wcmV2LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0QsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sMEJBQTBCLENBQUM7O0FBYXJFLE1BQU0sT0FBTyx3QkFBd0I7SUFYckM7UUFZdUIsZ0JBQVcsR0FBRyx5QkFBeUIsRUFBRSxDQUFDO1FBRTdEOztXQUVHO1FBQ00sYUFBUSxHQUFHLEtBQUssOERBQXlDLENBQUM7UUFFbkU7O1dBRUc7UUFDTSxhQUFRLEdBQUcsUUFBUSxDQUN4QixHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLG9EQUM5RixDQUFDO0tBS0w7SUFIYSxPQUFPO1FBQ2IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDaEQsQ0FBQzs4R0FqQlEsd0JBQXdCO2tHQUF4Qix3QkFBd0I7OzJGQUF4Qix3QkFBd0I7a0JBWHBDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHlCQUF5QjtvQkFDbkMsUUFBUSxFQUFFLGlCQUFpQjtvQkFDM0IsSUFBSSxFQUFFO3dCQUNGLFNBQVMsRUFBRSxXQUFXO3dCQUN0QixZQUFZLEVBQUUsWUFBWTt3QkFDMUIsc0JBQXNCLEVBQUUsNkJBQTZCO3dCQUNyRCxzQkFBc0IsRUFBRSw2QkFBNkI7d0JBQ3JELFlBQVksRUFBRSxlQUFlO3FCQUNoQztpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbXB1dGVkLCBEaXJlY3RpdmUsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYXRlVmFsdWUgfSBmcm9tICdAaW50ZXJuYXRpb25hbGl6ZWQvZGF0ZSc7XG5pbXBvcnQgeyBpbmplY3RDYWxlbmRhclJvb3RDb250ZXh0IH0gZnJvbSAnLi/RgWFsZW5kYXIt0YFvbnRleHQudG9rZW4nO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ2J1dHRvbltyZHhDYWxlbmRhclByZXZdJyxcbiAgICBleHBvcnRBczogJ3JkeENhbGVuZGFyUHJldicsXG4gICAgaG9zdDoge1xuICAgICAgICAnKGNsaWNrKSc6ICdvbkNsaWNrKCknLFxuICAgICAgICAnW2Rpc2FibGVkXSc6ICdkaXNhYmxlZCgpJyxcbiAgICAgICAgJ1thdHRyLmRhdGEtZGlzYWJsZWRdJzogJ2Rpc2FibGVkKCkgPyBcIlwiIDogdW5kZWZpbmVkJyxcbiAgICAgICAgJ1thdHRyLmFyaWEtZGlzYWJsZWRdJzogJ2Rpc2FibGVkKCkgPyBcIlwiIDogdW5kZWZpbmVkJyxcbiAgICAgICAgJ2FyaWEtbGFiZWwnOiAnUHJldmlvdXMgcGFnZSdcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIFJkeENhbGVuZGFyUHJldkRpcmVjdGl2ZSB7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHJvb3RDb250ZXh0ID0gaW5qZWN0Q2FsZW5kYXJSb290Q29udGV4dCgpO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGZ1bmN0aW9uIHRvIGJlIHVzZWQgZm9yIHRoZSBgcHJldiBwYWdlYC4gT3ZlcndyaXRlcyB0aGUgcHJldlBhZ2UgZnVuY3Rpb24gc2V0IG9uIHRoZSBgQ2FsZW5kYXJSb290YC5cbiAgICAgKi9cbiAgICByZWFkb25seSBwcmV2UGFnZSA9IGlucHV0PChwbGFjZWhvbGRlcjogRGF0ZVZhbHVlKSA9PiBEYXRlVmFsdWU+KCk7XG5cbiAgICAvKipcbiAgICAgKiBAaWdub3JlXG4gICAgICovXG4gICAgcmVhZG9ubHkgZGlzYWJsZWQgPSBjb21wdXRlZChcbiAgICAgICAgKCkgPT4gdGhpcy5yb290Q29udGV4dC5kaXNhYmxlZCgpIHx8IHRoaXMucm9vdENvbnRleHQuaXNOZXh0QnV0dG9uRGlzYWJsZWQodGhpcy5wcmV2UGFnZSgpKVxuICAgICk7XG5cbiAgICBwcm90ZWN0ZWQgb25DbGljaygpIHtcbiAgICAgICAgdGhpcy5yb290Q29udGV4dC5wcmV2UGFnZSEodGhpcy5wcmV2UGFnZSgpKTtcbiAgICB9XG59XG4iXX0=","import { computed, signal } from '@angular/core';\nimport { isEqualMonth, isSameDay } from '@internationalized/date';\nimport { createFormatter, createMonths, getDaysInMonth, isAfter, isBefore, toDate, watch } from '@radix-ng/primitives/core';\nexport function calendarState(props) {\n function isDateSelected(dateObj) {\n const currentValue = props.date(); // signal read\n if (Array.isArray(currentValue)) {\n return currentValue.some((d) => isSameDay(d, dateObj));\n }\n else if (!currentValue) {\n return false;\n }\n else {\n return isSameDay(currentValue, dateObj);\n }\n }\n const isInvalid = computed(() => {\n const currentValue = props.date();\n if (Array.isArray(currentValue)) {\n if (!currentValue.length) {\n return false;\n }\n for (const dateObj of currentValue) {\n if (props.isDateDisabled?.(dateObj))\n return true;\n if (props.isDateUnavailable?.(dateObj))\n return true;\n }\n }\n else {\n if (!currentValue) {\n return false;\n }\n if (props.isDateDisabled?.(currentValue))\n return true;\n if (props.isDateUnavailable?.(currentValue))\n return true;\n }\n return false;\n }, ...(ngDevMode ? [{ debugName: \"isInvalid\" }] : []));\n return {\n isDateSelected,\n isInvalid\n };\n}\nfunction handleNextDisabled(lastPeriodInView, nextPageFunc) {\n const firstPeriodOfNextPage = nextPageFunc(lastPeriodInView);\n const diff = firstPeriodOfNextPage.compare(lastPeriodInView);\n const duration = {};\n if (diff >= 7)\n duration.day = 1;\n if (diff >= getDaysInMonth(lastPeriodInView))\n duration.month = 1;\n return firstPeriodOfNextPage.set({ ...duration });\n}\nfunction handlePrevDisabled(firstPeriodInView, prevPageFunc) {\n const lastPeriodOfPrevPage = prevPageFunc(firstPeriodInView);\n const diff = firstPeriodInView.compare(lastPeriodOfPrevPage);\n const duration = {};\n if (diff >= 7)\n duration.day = 35;\n if (diff >= getDaysInMonth(firstPeriodInView))\n duration.month = 13;\n return lastPeriodOfPrevPage.set({ ...duration });\n}\nfunction handleNextPage(date, nextPageFunc) {\n return nextPageFunc(date);\n}\nfunction handlePrevPage(date, prevPageFunc) {\n return prevPageFunc(date);\n}\nexport function calendar(props) {\n const formatter = createFormatter(props.locale());\n const headingFormatOptions = computed(() => {\n const options = {\n calendar: props.placeholder().calendar.identifier\n };\n if (props.placeholder().calendar.identifier === 'gregory' && props.placeholder().era === 'BC') {\n options.era = 'short';\n }\n return options;\n }, ...(ngDevMode ? [{ debugName: \"headingFormatOptions\" }] : []));\n const month = signal(createMonths({\n dateObj: props.placeholder(),\n weekStartsOn: props.weekStartsOn(),\n locale: props.locale(),\n fixedWeeks: props.fixedWeeks(),\n numberOfMonths: props.numberOfMonths()\n }), ...(ngDevMode ? [{ debugName: \"month\" }] : []));\n const visibleView = computed(() => {\n return month().map((month) => month.value);\n }, ...(ngDevMode ? [{ debugName: \"visibleView\" }] : []));\n function isOutsideVisibleView(date) {\n return !visibleView().some((month) => isEqualMonth(date, month));\n }\n const isNextButtonDisabled = (nextPageFunc) => {\n if (!props.maxValue() || !month().length)\n return false;\n if (props.disabled())\n return true;\n const lastPeriodInView = month()[month().length - 1].value;\n if (!nextPageFunc && !props.nextPage()) {\n const firstPeriodOfNextPage = lastPeriodInView.add({ months: 1 }).set({ day: 1 });\n return isAfter(firstPeriodOfNextPage, props.maxValue());\n }\n const firstPeriodOfNextPage = handleNextDisabled(lastPeriodInView, nextPageFunc || props.nextPage());\n return isAfter(firstPeriodOfNextPage, props.maxValue());\n };\n const isPrevButtonDisabled = (prevPageFunc) => {\n if (!props.minValue() || !month().length)\n return false;\n if (props.disabled())\n return true;\n const firstPeriodInView = month()[0].value;\n if (!prevPageFunc && !props.prevPage()) {\n const lastPeriodOfPrevPage = firstPeriodInView.subtract({ months: 1 }).set({ day: 35 });\n return isBefore(lastPeriodOfPrevPage, props.minValue());\n }\n const lastPeriodOfPrevPage = handlePrevDisabled(firstPeriodInView, prevPageFunc || props.prevPage());\n return isBefore(lastPeriodOfPrevPage, props.minValue());\n };\n const nextPage = (nextPageFunc) => {\n const firstDate = month()[0].value;\n if (!nextPageFunc && !props.nextPage()) {\n const newDate = firstDate.add({ months: props.pagedNavigation() ? props.numberOfMonths() : 1 });\n const newMonth = createMonths({\n dateObj: newDate,\n weekStartsOn: props.weekStartsOn(),\n locale: props.locale(),\n fixedWeeks: props.fixedWeeks(),\n numberOfMonths: props.numberOfMonths()\n });\n month.set(newMonth);\n props.placeholder.set(newMonth[0].value.set({ day: 1 }));\n return;\n }\n const newDate = handleNextPage(firstDate, nextPageFunc || props.nextPage());\n const newMonth = createMonths({\n dateObj: newDate,\n weekStartsOn: props.weekStartsOn(),\n locale: props.locale(),\n fixedWeeks: props.fixedWeeks(),\n numberOfMonths: props.numberOfMonths()\n });\n month.set(newMonth);\n const duration = {};\n if (!nextPageFunc) {\n const diff = newMonth[0].value.compare(firstDate);\n if (diff >= getDaysInMonth(firstDate)) {\n duration.day = 1;\n }\n if (diff >= 365) {\n duration.month = 1;\n }\n }\n props.placeholder.set(newMonth[0].value.set({ ...duration }));\n };\n const prevPage = (prevPageFunc) => {\n const firstDate = month()[0].value;\n if (!prevPageFunc && !props.prevPage()) {\n const newDate = firstDate.subtract({ months: props.pagedNavigation() ? props.numberOfMonths() : 1 });\n const newMonth = createMonths({\n dateObj: newDate,\n weekStartsOn: props.weekStartsOn(),\n locale: props.locale(),\n fixedWeeks: props.fixedWeeks(),\n numberOfMonths: props.numberOfMonths()\n });\n month.set(newMonth);\n props.placeholder.set(newMonth[0].value.set({ day: 1 }));\n return;\n }\n const newDate = handlePrevPage(firstDate, prevPageFunc || props.prevPage());\n const newMonth = createMonths({\n dateObj: newDate,\n weekStartsOn: props.weekStartsOn(),\n locale: props.locale(),\n fixedWeeks: props.fixedWeeks(),\n numberOfMonths: props.numberOfMonths()\n });\n month.set(newMonth);\n const duration = {};\n // Do not adjust the placeholder if the prevPageFunc is defined (overwrite)\n if (!prevPageFunc) {\n const diff = firstDate.compare(newMonth[0].value);\n if (diff >= getDaysInMonth(firstDate))\n duration.day = 1;\n if (diff >= 365)\n duration.month = 1;\n }\n props.placeholder.set(newMonth[0].value.set({ ...duration }));\n };\n function isDateDisabled(dateObj) {\n if (props.isDateDisabled?.()?.(dateObj) || props.disabled())\n return true;\n if (props.maxValue() && isAfter(dateObj, props.maxValue()))\n return true;\n if (props.minValue() && isBefore(dateObj, props.minValue()))\n return true;\n return false;\n }\n const isDateUnavailable = (date) => {\n return !!props.isDateUnavailable?.()?.(date);\n };\n const weekdays = computed(() => {\n if (!month().length)\n return [];\n return month()[0].weeks[0].map((date) => {\n return formatter.dayOfWeek(toDate(date), props.weekdayFormat());\n });\n }, ...(ngDevMode ? [{ debugName: \"weekdays\" }] : []));\n watch([props.placeholder], ([placeholder]) => {\n if (visibleView().some((month) => isEqualMonth(month, placeholder))) {\n return;\n }\n month.set(createMonths({\n dateObj: placeholder,\n weekStartsOn: props.weekStartsOn(),\n locale: props.locale(),\n fixedWeeks: props.fixedWeeks(),\n numberOfMonths: props.numberOfMonths()\n }));\n });\n watch([props.locale, props.weekStartsOn, props.fixedWeeks, props.numberOfMonths], ([locale, weekStartsOn, fixedWeeks, numberOfMonths]) => {\n month.set(createMonths({\n dateObj: props.placeholder(),\n weekStartsOn: weekStartsOn,\n locale: locale,\n fixedWeeks: fixedWeeks,\n numberOfMonths: numberOfMonths\n }));\n });\n const headingValue = computed(() => {\n if (!month().length) {\n return '';\n }\n if (props.locale() !== formatter.getLocale())\n formatter.setLocale(props.locale());\n if (month().length === 1) {\n const _month = month()[0].value;\n return `${formatter.fullMonthAndYear(toDate(_month), headingFormatOptions())}`;\n }\n const startMonth = toDate(month()[0].value);\n const endMonth = toDate(month()[month().length - 1].value);\n const startMonthName = formatter.fullMonth(startMonth, headingFormatOptions());\n const endMonthName = formatter.fullMonth(endMonth, headingFormatOptions());\n const startMonthYear = formatter.fullYear(startMonth, headingFormatOptions());\n const endMonthYear = formatter.fullYear(endMonth, headingFormatOptions());\n return startMonthYear === endMonthYear\n ? `${startMonthName} - ${endMonthName} ${endMonthYear}`\n : `${startMonthName} ${startMonthYear} - ${endMonthName} ${endMonthYear}`;\n }, ...(ngDevMode ? [{ debugName: \"headingValue\" }] : []));\n const fullCalendarLabel = computed(() => `${props.calendarLabel() ?? 'Event Date'}, ${headingValue()}`, ...(ngDevMode ? [{ debugName: \"fullCalendarLabel\" }] : []));\n return {\n isDateDisabled,\n isDateUnavailable,\n isNextButtonDisabled,\n isPrevButtonDisabled,\n month,\n weekdays,\n visibleView,\n isOutsideVisibleView,\n formatter,\n nextPage,\n prevPage,\n headingValue,\n fullCalendarLabel\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wcmltaXRpdmVzL2NhbGVuZGFyL3NyYy9jYWxlbmRhci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUE0QixNQUFNLEVBQWtCLE1BQU0sZUFBZSxDQUFDO0FBQzNGLE9BQU8sRUFBeUIsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pGLE9BQU8sRUFDSCxlQUFlLEVBQ2YsWUFBWSxFQUdaLGNBQWMsRUFDZCxPQUFPLEVBQ1AsUUFBUSxFQUVSLE1BQU0sRUFDTixLQUFLLEVBQ1IsTUFBTSwyQkFBMkIsQ0FBQztBQTBCbkMsTUFBTSxVQUFVLGFBQWEsQ0FBQyxLQUF5QjtJQUNuRCxTQUFTLGNBQWMsQ0FBQyxPQUFrQjtRQUN0QyxNQUFNLFlBQVksR0FBRyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxjQUFjO1FBRWpELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDO1lBQzlCLE9BQU8sWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQzNELENBQUM7YUFBTSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDdkIsT0FBTyxLQUFLLENBQUM7UUFDakIsQ0FBQzthQUFNLENBQUM7WUFDSixPQUFPLFNBQVMsQ0FBQyxZQUFZLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDNUMsQ0FBQztJQUNMLENBQUM7SUFFRCxNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1FBQzVCLE1BQU0sWUFBWSxHQUFHLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUVsQyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEVBQUUs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QUFNLENBQUMsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTNELE1BQU0sY0FBYyxHQUFHLFNBQVMsQ0FBQyxTQUFTLENBQUMsVUFBVSxFQUFFLG9CQUFvQixFQUFFLENBQUMsQ0FBQztRQUMvRSxNQUFNLFlBQVksR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxvQkFBb0IsRUFBRSxDQUFDLENBQUM7UUFDM0UsTUFBTSxjQUFjLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDO1FBQzlFLE1BQU0sWUFBWSxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLG9CQUFvQixFQUFFLENBQUMsQ0FBQztRQUUxRSxPQUFPLGNBQWMsS0FBSyxZQUFZO1lBQ2xDLENBQUMsQ0FBQyxHQUFHLGNBQWMsTUFBTSxZQUFZLElBQUksWUFBWSxFQUFFO1lBQ3ZELENBQUMsQ0FBQyxHQUFHLGNBQWMsSUFBSSxjQUFjLE1BQU0sWUFBWSxJQUFJLFlBQVksRUFBRSxDQUFDO0lBQ2xGLENBQUMsd0RBQUMsQ0FBQztJQUVILE1BQU0saUJBQWlCLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLGFBQWEsRUFBRSxJQUFJLFlBQVksS0FBSyxZQUFZLEVBQUUsRUFBRSw2REFBQyxDQUFDO0lBRXhHLE9BQU87UUFDSCxjQUFjO1FBQ2QsaUJBQWlCO1FBQ2pCLG9CQUFvQjtRQUNwQixvQkFBb0I7UUFDcEIsS0FBSztRQUNMLFFBQVE7UUFDUixXQUFXO1FBQ1gsb0JBQW9CO1FBQ3BCLFNBQVM7UUFDVCxRQUFRO1FBQ1IsUUFBUTtRQUNSLFlBQVk7UUFDWixpQkFBaUI7S0FDcEIsQ0FBQztBQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb21wdXRlZCwgSW5wdXRTaWduYWwsIE1vZGVsU2lnbmFsLCBzaWduYWwsIFdyaXRhYmxlU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYXRlRmllbGRzLCBEYXRlVmFsdWUsIGlzRXF1YWxNb250aCwgaXNTYW1lRGF5IH0gZnJvbSAnQGludGVybmF0aW9uYWxpemVkL2RhdGUnO1xuaW1wb3J0IHtcbiAgICBjcmVhdGVGb3JtYXR0ZXIsXG4gICAgY3JlYXRlTW9udGhzLFxuICAgIERhdGVGb3JtYXR0ZXJPcHRpb25zLFxuICAgIERhdGVNYXRjaGVyLFxuICAgIGdldERheXNJbk1vbnRoLFxuICAgIGlzQWZ0ZXIsXG4gICAgaXNCZWZvcmUsXG4gICAgTW9udGgsXG4gICAgdG9EYXRlLFxuICAgIHdhdGNoXG59IGZyb20gJ0ByYWRpeC1uZy9wcmltaXRpdmVzL2NvcmUnO1xuXG5leHBvcnQgdHlwZSBDYWxlbmRhclByb3BzID0ge1xuICAgIGxvY2FsZTogSW5wdXRTaWduYWw8c3RyaW5nPjtcbiAgICBwbGFjZWhvbGRlcjogV3JpdGFibGVTaWduYWw8RGF0ZVZhbHVlPjtcbiAgICB3ZWVrU3RhcnRzT246IElucHV0U2lnbmFsPDAgfCAxIHwgMiB8IDMgfCA0IHwgNSB8IDY+O1xuICAgIGZpeGVkV2Vla3M6IFdyaXRhYmxlU2lnbmFsPGJvb2xlYW4+O1xuICAgIG51bWJlck9mTW9udGhzOiBJbnB1dFNpZ25hbDxudW1iZXI+O1xuICAgIG1pblZhbHVlOiBJbnB1dFNpZ25hbDxEYXRlVmFsdWUgfCB1bmRlZmluZWQ+O1xuICAgIG1heFZhbHVlOiBJbnB1dFNpZ25hbDxEYXRlVmFsdWUgfCB1bmRlZmluZWQ+O1xuICAgIGRpc2FibGVkOiBXcml0YWJsZVNpZ25hbDxib29sZWFuPjtcbiAgICB3ZWVrZGF5Rm9ybWF0OiBJbnB1dFNpZ25hbDxJbnRsLkRhdGVUaW1lRm9ybWF0T3B0aW9uc1snd2Vla2RheSddPjtcbiAgICBwYWdlZE5hdmlnYXRpb246IFdyaXRhYmxlU2lnbmFsPGJvb2xlYW4+O1xuICAgIGlzRGF0ZURpc2FibGVkPzogSW5wdXRTaWduYWw8RGF0ZU1hdGNoZXIgfCB1bmRlZmluZWQ+O1xuICAgIGlzRGF0ZVVuYXZhaWxhYmxlPzogSW5wdXRTaWduYWw8RGF0ZU1hdGNoZXIgfCB1bmRlZmluZWQ+O1xuICAgIGNhbGVuZGFyTGFiZWw6IElucHV0U2lnbmFsPHN0cmluZyB8IHVuZGVmaW5lZD47XG4gICAgbmV4dFBhZ2U6IElucHV0U2lnbmFsPCgocGxhY2Vob2xkZXI6IERhdGVWYWx1ZSkgPT4gRGF0ZVZhbHVlKSB8IHVuZGVmaW5lZD47XG4gICAgcHJldlBhZ2U6IElucHV0U2lnbmFsPCgocGxhY2Vob2xkZXI6IERhdGVWYWx1ZSkgPT4gRGF0ZVZhbHVlKSB8IHVuZGVmaW5lZD47XG59O1xuXG5leHBvcnQgdHlwZSBDYWxlbmRhclN0YXRlUHJvcHMgPSB7XG4gICAgZGF0ZTogTW9kZWxTaWduYWw8RGF0ZVZhbHVlIHwgRGF0ZVZhbHVlW10gfCB1bmRlZmluZWQ+O1xuICAgIGlzRGF0ZURpc2FibGVkPzogRGF0ZU1hdGNoZXI7XG4gICAgaXNEYXRlVW5hdmFpbGFibGU/OiBEYXRlTWF0Y2hlcjtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBjYWxlbmRhclN0YXRlKHByb3BzOiBDYWxlbmRhclN0YXRlUHJvcHMpIHtcbiAgICBmdW5jdGlvbiBpc0RhdGVTZWxlY3RlZChkYXRlT2JqOiBEYXRlVmFsdWUpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgY3VycmVudFZhbHVlID0gcHJvcHMuZGF0ZSgpOyAvLyBzaWduYWwgcmVhZFxuXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGN1cnJlbnRWYWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybiBjdXJyZW50VmFsdWUuc29tZSgoZCkgPT4gaXNTYW1lRGF5KGQsIGRhdGVPYmopKTtcbiAgICAgICAgfSBlbHNlIGlmICghY3VycmVudFZhbHVlKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gaXNTYW1lRGF5KGN1cnJlbnRWYWx1ZSwgZGF0ZU9iaik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBpc0ludmFsaWQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRWYWx1ZSA9IHByb3BzLmRhdGUoKTtcblxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShjdXJyZW50VmFsdWUpKSB7XG4gICAgICAgICAgICBpZiAoIWN1cnJlbnRWYWx1ZS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGRhdGVPYmogb2YgY3VycmVudFZhbHVlKSB7XG4gICAgICAgICAgICAgICAgaWYgKHByb3BzLmlzRGF0ZURpc2FibGVkPy4oZGF0ZU9iaikpIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgIGlmIChwcm9wcy5pc0RhdGVVbmF2YWlsYWJsZT8uKGRhdGVPYmopKSByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICghY3VycmVudFZhbHVlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHByb3BzLmlzRGF0ZURpc2FibGVkPy4oY3VycmVudFZhbHVlKSkgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICBpZiAocHJvcHMuaXNEYXRlVW5hdmFpbGFibGU/LihjdXJyZW50VmFsdWUpKSByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgICBpc0RhdGVTZWxlY3RlZCxcbiAgICAgICAgaXNJbnZhbGlkXG4gICAgfTtcbn1cblxuZnVuY3Rpb24gaGFuZGxlTmV4dERpc2FibGVkKGxhc3RQZXJpb2RJblZpZXc6IERhdGVWYWx1ZSwgbmV4dFBhZ2VGdW5jOiAoZGF0ZTogRGF0ZVZhbHVlKSA9PiBEYXRlVmFsdWUpOiBEYXRlVmFsdWUge1xuICAgIGNvbnN0IGZpcnN0UGVyaW9kT2ZOZXh0UGFnZSA9IG5leHRQYWdlRnVuYyhsYXN0UGVyaW9kSW5WaWV3KTtcbiAgICBjb25zdCBkaWZmID0gZmlyc3RQZXJpb2RPZk5leHRQYWdlLmNvbXBhcmUobGFzdFBlcmlvZEluVmlldyk7XG4gICAgY29uc3QgZHVyYXRpb246IERhdGVGaWVsZHMgPSB7fTtcbiAgICBpZiAoZGlmZiA+PSA3KSBkdXJhdGlvbi5kYXkgPSAxO1xuICAgIGlmIChkaWZmID49IGdldERheXNJbk1vbnRoKGxhc3RQZXJpb2RJblZpZXcpKSBkdXJhdGlvbi5tb250aCA9IDE7XG4gICAgcmV0dXJuIGZpcnN0UGVyaW9kT2ZOZXh0UGFnZS5zZXQoeyAuLi5kdXJhdGlvbiB9KTtcbn1cblxuZnVuY3Rpb24gaGFuZGxlUHJldkRpc2FibGVkKGZpcnN0UGVyaW9kSW5WaWV3OiBEYXRlVmFsdWUsIHByZXZQYWdlRnVuYzogKGRhdGU6IERhdGVWYWx1ZSkgPT4gRGF0ZVZhbHVlKTogRGF0ZVZhbHVlIHtcbiAgICBjb25zdCBsYXN0UGVyaW9kT2ZQcmV2UGFnZSA9IHByZXZQYWdlRnVuYyhmaXJzdFBlcmlvZEluVmlldyk7XG4gICAgY29uc3QgZGlmZiA9IGZpcnN0UGVyaW9kSW5WaWV3LmNvbXBhcmUobGFzdFBlcmlvZE9mUHJldlBhZ2UpO1xuICAgIGNvbnN0IGR1cmF0aW9uOiBEYXRlRmllbGRzID0ge307XG4gICAgaWYgKGRpZmYgPj0gNykgZHVyYXRpb24uZGF5ID0gMzU7XG4gICAgaWYgKGRpZmYgPj0gZ2V0RGF5c0luTW9udGgoZmlyc3RQZXJpb2RJblZpZXcpKSBkdXJhdGlvbi5tb250aCA9IDEzO1xuICAgIHJldHVybiBsYXN0UGVyaW9kT2ZQcmV2UGFnZS5zZXQoeyAuLi5kdXJhdGlvbiB9KTtcbn1cblxuZnVuY3Rpb24gaGFuZGxlTmV4dFBhZ2UoZGF0ZTogRGF0ZVZhbHVlLCBuZXh0UGFnZUZ1bmM6IChkYXRlOiBEYXRlVmFsdWUpID0+IERhdGVWYWx1ZSk6IERhdGVWYWx1ZSB7XG4gICAgcmV0dXJuIG5leHRQYWdlRnVuYyhkYXRlKTtcbn1cblxuZnVuY3Rpb24gaGFuZGxlUHJldlBhZ2UoZGF0ZTogRGF0ZVZhbHVlLCBwcmV2UGFnZUZ1bmM6IChkYXRlOiBEYXRlVmFsdWUpID0+IERhdGVWYWx1ZSk6IERhdGVWYWx1ZSB7XG4gICAgcmV0dXJuIHByZXZQYWdlRnVuYyhkYXRlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNhbGVuZGFyKHByb3BzOiBDYWxlbmRhclByb3BzKSB7XG4gICAgY29uc3QgZm9ybWF0dGVyID0gY3JlYXRlRm9ybWF0dGVyKHByb3BzLmxvY2FsZSgpKTtcblxuICAgIGNvbnN0IGhlYWRpbmdGb3JtYXRPcHRpb25zID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICBjb25zdCBvcHRpb25zOiBEYXRlRm9ybWF0dGVyT3B0aW9ucyA9IHtcbiAgICAgICAgICAgIGNhbGVuZGFyOiBwcm9wcy5wbGFjZWhvbGRlcigpLmNhbGVuZGFyLmlkZW50aWZpZXJcbiAgICAgICAgfTtcblxuICAgICAgICBpZiAocHJvcHMucGxhY2Vob2xkZXIoKS5jYWxlbmRhci5pZGVudGlmaWVyID09PSAnZ3JlZ29yeScgJiYgcHJvcHMucGxhY2Vob2xkZXIoKS5lcmEgPT09ICdCQycpIHtcbiAgICAgICAgICAgIG9wdGlvbnMuZXJhID0gJ3Nob3J0JztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBvcHRpb25zO1xuICAgIH0pO1xuXG4gICAgY29uc3QgbW9udGggPSBzaWduYWw8TW9udGg8RGF0ZVZhbHVlPltdPihcbiAgICAgICAgY3JlYXRlTW9udGhzKHtcbiAgICAgICAgICAgIGRhdGVPYmo6IHByb3BzLnBsYWNlaG9sZGVyKCksXG4gICAgICAgICAgICB3ZWVrU3RhcnRzT246IHByb3BzLndlZWtTdGFydHNPbigpLFxuICAgICAgICAgICAgbG9jYWxlOiBwcm9wcy5sb2NhbGUoKSxcbiAgICAgICAgICAgIGZpeGVkV2Vla3M6IHByb3BzLmZpeGVkV2Vla3MoKSxcbiAgICAgICAgICAgIG51bWJlck9mTW9udGhzOiBwcm9wcy5udW1iZXJPZk1vbnRocygpXG4gICAgICAgIH0pXG4gICAgKTtcblxuICAgIGNvbnN0IHZpc2libGVWaWV3ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICByZXR1cm4gbW9udGgoKS5tYXAoKG1vbnRoKSA9PiBtb250aC52YWx1ZSk7XG4gICAgfSk7XG5cbiAgICBmdW5jdGlvbiBpc091dHNpZGVWaXNpYmxlVmlldyhkYXRlOiBEYXRlVmFsdWUpIHtcbiAgICAgICAgcmV0dXJuICF2aXNpYmxlVmlldygpLnNvbWUoKG1vbnRoKSA9PiBpc0VxdWFsTW9udGgoZGF0ZSwgbW9udGgpKTtcbiAgICB9XG5cbiAgICBjb25zdCBpc05leHRCdXR0b25EaXNhYmxlZCA9IChuZXh0UGFnZUZ1bmM/OiAoZGF0ZTogRGF0ZVZhbHVlKSA9PiBEYXRlVmFsdWUpID0+IHtcbiAgICAgICAgaWYgKCFwcm9wcy5tYXhWYWx1ZSgpIHx8ICFtb250aCgpLmxlbmd0aCkgcmV0dXJuIGZhbHNlO1xuICAgICAgICBpZiAocHJvcHMuZGlzYWJsZWQoKSkgcmV0dXJuIHRydWU7XG5cbiAgICAgICAgY29uc3QgbGFzdFBlcmlvZEluVmlldyA9IG1vbnRoKClbbW9udGgoKS5sZW5ndGggLSAxXS52YWx1ZTtcblxuICAgICAgICBpZiAoIW5leHRQYWdlRnVuYyAmJiAhcHJvcHMubmV4dFBhZ2UoKSkge1xuICAgICAgICAgICAgY29uc3QgZmlyc3RQZXJpb2RPZk5leHRQYWdlID0gbGFzdFBlcmlvZEluVmlldy5hZGQoeyBtb250aHM6IDEgfSkuc2V0KHsgZGF5OiAxIH0pO1xuICAgICAgICAgICAgcmV0dXJuIGlzQWZ0ZXIoZmlyc3RQZXJpb2RPZk5leHRQYWdlLCA8RGF0ZVZhbHVlPnByb3BzLm1heFZhbHVlKCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZmlyc3RQZXJpb2RPZk5leHRQYWdlID0gaGFuZGxlTmV4dERpc2FibGVkKGxhc3RQZXJpb2RJblZpZXcsIG5leHRQYWdlRnVuYyB8fCBwcm9wcy5uZXh0UGFnZSgpISk7XG4gICAgICAgIHJldHVybiBpc0FmdGVyKGZpcnN0UGVyaW9kT2ZOZXh0UGFnZSwgPERhdGVWYWx1ZT5wcm9wcy5tYXhWYWx1ZSgpKTtcbiAgICB9O1xuXG4gICAgY29uc3QgaXNQcmV2QnV0dG9uRGlzYWJsZWQgPSAocHJldlBhZ2VGdW5jPzogKGRhdGU6IERhdGVWYWx1ZSkgPT4gRGF0ZVZhbHVlKSA9PiB7XG4gICAgICAgIGlmICghcHJvcHMubWluVmFsdWUoKSB8fCAhbW9udGgoKS5sZW5ndGgpIHJldHVybiBmYWxzZTtcbiAgICAgICAgaWYgKHByb3BzLmRpc2FibGVkKCkpIHJldHVybiB0cnVlO1xuICAgICAgICBjb25zdCBmaXJzdFBlcmlvZEluVmlldyA9IG1vbnRoKClbMF0udmFsdWU7XG5cbiAgICAgICAgaWYgKCFwcmV2UGFnZUZ1bmMgJiYgIXByb3BzLnByZXZQYWdlKCkpIHtcbiAgICAgICAgICAgIGNvbnN0IGxhc3RQZXJpb2RPZlByZXZQYWdlID0gZmlyc3RQZXJpb2RJblZpZXcuc3VidHJhY3QoeyBtb250aHM6IDEgfSkuc2V0KHsgZGF5OiAzNSB9KTtcbiAgICAgICAgICAgIHJldHVybiBpc0JlZm9yZShsYXN0UGVyaW9kT2ZQcmV2UGFnZSwgPERhdGVWYWx1ZT5wcm9wcy5taW5WYWx1ZSgpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGxhc3RQZXJpb2RPZlByZXZQYWdlID0gaGFuZGxlUHJldkRpc2FibGVkKGZpcnN0UGVyaW9kSW5WaWV3LCBwcmV2UGFnZUZ1bmMgfHwgcHJvcHMucHJldlBhZ2UoKSEpO1xuICAgICAgICByZXR1cm4gaXNCZWZvcmUobGFzdFBlcmlvZE9mUHJldlBhZ2UsIDxEYXRlVmFsdWU+cHJvcHMubWluVmFsdWUoKSk7XG4gICAgfTtcblxuICAgIGNvbnN0IG5leHRQYWdlID0gKG5leHRQYWdlRnVuYz86IChkYXRlOiBEYXRlVmFsdWUpID0+IERhdGVWYWx1ZSkgPT4ge1xuICAgICAgICBjb25zdCBmaXJzdERhdGUgPSBtb250aCgpWzBdLnZhbHVlO1xuXG4gICAgICAgIGlmICghbmV4dFBhZ2VGdW5jICYmICFwcm9wcy5uZXh0UGFnZSgpKSB7XG4gICAgICAgICAgICBjb25zdCBuZXdEYXRlID0gZmlyc3REYXRlLmFkZCh7IG1vbnRoczogcHJvcHMucGFnZWROYXZpZ2F0aW9uKCkgPyBwcm9wcy5udW1iZXJPZk1vbnRocygpIDogMSB9KTtcblxuICAgICAgICAgICAgY29uc3QgbmV3TW9udGggPSBjcmVhdGVNb250aHMoe1xuICAgICAgICAgICAgICAgIGRhdGVPYmo6IG5ld0RhdGUsXG4gICAgICAgICAgICAgICAgd2Vla1N0YXJ0c09uOiBwcm9wcy53ZWVrU3RhcnRzT24oKSxcbiAgICAgICAgICAgICAgICBsb2NhbGU6IHByb3BzLmxvY2FsZSgpLFxuICAgICAgICAgICAgICAgIGZpeGVkV2Vla3M6IHByb3BzLmZpeGVkV2Vla3MoKSxcbiAgICAgICAgICAgICAgICBudW1iZXJPZk1vbnRoczogcHJvcHMubnVtYmVyT2ZNb250aHMoKVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIG1vbnRoLnNldChuZXdNb250aCk7XG4gICAgICAgICAgICBwcm9wcy5wbGFjZWhvbGRlci5zZXQobmV3TW9udGhbMF0udmFsdWUuc2V0KHsgZGF5OiAxIH0pKTtcblxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgbmV3RGF0ZSA9IGhhbmRsZU5leHRQYWdlKGZpcnN0RGF0ZSwgbmV4dFBhZ2VGdW5jIHx8IHByb3BzLm5leHRQYWdlKCkhKTtcbiAgICAgICAgY29uc3QgbmV3TW9udGggPSBjcmVhdGVNb250aHMoe1xuICAgICAgICAgICAgZGF0ZU9iajogbmV3RGF0ZSxcbiAgICAgICAgICAgIHdlZWtTdGFydHNPbjogcHJvcHMud2Vla1N0YXJ0c09uKCksXG4gICAgICAgICAgICBsb2NhbGU6IHByb3BzLmxvY2FsZSgpLFxuICAgICAgICAgICAgZml4ZWRXZWVrczogcHJvcHMuZml4ZWRXZWVrcygpLFxuICAgICAgICAgICAgbnVtYmVyT2ZNb250aHM6IHByb3BzLm51bWJlck9mTW9udGhzKClcbiAgICAgICAgfSk7XG5cbiAgICAgICAgbW9udGguc2V0KG5ld01vbnRoKTtcblxuICAgICAgICBjb25zdCBkdXJhdGlvbjogRGF0ZUZpZWxkcyA9IHt9O1xuXG4gICAgICAgIGlmICghbmV4dFBhZ2VGdW5jKSB7XG4gICAgICAgICAgICBjb25zdCBkaWZmID0gbmV3TW9udGhbMF0udmFsdWUuY29tcGFyZShmaXJzdERhdGUpO1xuICAgICAgICAgICAgaWYgKGRpZmYgPj0gZ2V0RGF5c0luTW9udGgoZmlyc3REYXRlKSkge1xuICAgICAgICAgICAgICAgIGR1cmF0aW9uLmRheSA9IDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChkaWZmID49IDM2NSkge1xuICAgICAgICAgICAgICAgIGR1cmF0aW9uLm1vbnRoID0gMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHByb3BzLnBsYWNlaG9sZGVyLnNldChuZXdNb250aFswXS52YWx1ZS5zZXQoeyAuLi5kdXJhdGlvbiB9KSk7XG4gICAgfTtcblxuICAgIGNvbnN0IHByZXZQYWdlID0gKHByZXZQYWdlRnVuYz86IChkYXRlOiBEYXRlVmFsdWUpID0+IERhdGVWYWx1ZSkgPT4ge1xuICAgICAgICBjb25zdCBmaXJzdERhdGUgPSBtb250aCgpWzBdLnZhbHVlO1xuXG4gICAgICAgIGlmICghcHJldlBhZ2VGdW5jICYmICFwcm9wcy5wcmV2UGFnZSgpKSB7XG4gICAgICAgICAgICBjb25zdCBuZXdEYXRlID0gZmlyc3REYXRlLnN1YnRyYWN0KHsgbW9udGhzOiBwcm9wcy5wYWdlZE5hdmlnYXRpb24oKSA/IHByb3BzLm51bWJlck9mTW9udGhzKCkgOiAxIH0pO1xuXG4gICAgICAgICAgICBjb25zdCBuZXdNb250aCA9IGNyZWF0ZU1vbnRocyh7XG4gICAgICAgICAgICAgICAgZGF0ZU9iajogbmV3RGF0ZSxcbiAgICAgICAgICAgICAgICB3ZWVrU3RhcnRzT246IHByb3BzLndlZWtTdGFydHNPbigpLFxuICAgICAgICAgICAgICAgIGxvY2FsZTogcHJvcHMubG9jYWxlKCksXG4gICAgICAgICAgICAgICAgZml4ZWRXZWVrczogcHJvcHMuZml4ZWRXZWVrcygpLFxuICAgICAgICAgICAgICAgIG51bWJlck9mTW9udGhzOiBwcm9wcy5udW1iZXJPZk1vbnRocygpXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgbW9udGguc2V0KG5ld01vbnRoKTtcblxuICAgICAgICAgICAgcHJvcHMucGxhY2Vob2xkZXIuc2V0KG5ld01vbnRoWzBdLnZhbHVlLnNldCh7IGRheTogMSB9KSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBuZXdEYXRlID0gaGFuZGxlUHJldlBhZ2UoZmlyc3REYXRlLCBwcmV2UGFnZUZ1bmMgfHwgcHJvcHMucHJldlBhZ2UoKSEpO1xuICAgICAgICBjb25zdCBuZXdNb250aCA9IGNyZWF0ZU1vbnRocyh7XG4gICAgICAgICAgICBkYXRlT2JqOiBuZXdEYXRlLFxuICAgICAgICAgICAgd2Vla1N0YXJ0c09uOiBwcm9wcy53ZWVrU3RhcnRzT24oKSxcbiAgICAgICAgICAgIGxvY2FsZTogcHJvcHMubG9jYWxlKCksXG4gICAgICAgICAgICBmaXhlZFdlZWtzOiBwcm9wcy5maXhlZFdlZWtzKCksXG4gICAgICAgICAgICBudW1iZXJPZk1vbnRoczogcHJvcHMubnVtYmVyT2ZNb250aHMoKVxuICAgICAgICB9KTtcblxuICAgICAgICBtb250aC5zZXQobmV3TW9udGgpO1xuXG4gICAgICAgIGNvbnN0IGR1cmF0aW9uOiBEYXRlRmllbGRzID0ge307XG5cbiAgICAgICAgLy8gRG8gbm90IGFkanVzdCB0aGUgcGxhY2Vob2xkZXIgaWYgdGhlIHByZXZQYWdlRnVuYyBpcyBkZWZpbmVkIChvdmVyd3JpdGUpXG4gICAgICAgIGlmICghcHJldlBhZ2VGdW5jKSB7XG4gICAgICAgICAgICBjb25zdCBkaWZmID0gZmlyc3REYXRlLmNvbXBhcmUobmV3TW9udGhbMF0udmFsdWUpO1xuICAgICAgICAgICAgaWYgKGRpZmYgPj0gZ2V0RGF5c0luTW9udGgoZmlyc3REYXRlKSkgZHVyYXRpb24uZGF5ID0gMTtcblxuICAgICAgICAgICAgaWYgKGRpZmYgPj0gMzY1KSBkdXJhdGlvbi5tb250aCA9IDE7XG4gICAgICAgIH1cblxuICAgICAgICBwcm9wcy5wbGFjZWhvbGRlci5zZXQobmV3TW9udGhbMF0udmFsdWUuc2V0KHsgLi4uZHVyYXRpb24gfSkpO1xuICAgIH07XG5cbiAgICBmdW5jdGlvbiBpc0RhdGVEaXNhYmxlZChkYXRlT2JqOiBEYXRlVmFsdWUpIHtcbiAgICAgICAgaWYgKHByb3BzLmlzRGF0ZURpc2FibGVkPy4oKT8uKGRhdGVPYmopIHx8IHByb3BzLmRpc2FibGVkKCkpIHJldHVybiB0cnVlO1xuICAgICAgICBpZiAocHJvcHMubWF4VmFsdWUoKSAmJiBpc0FmdGVyKGRhdGVPYmosIDxEYXRlVmFsdWU+cHJvcHMubWF4VmFsdWUoKSkpIHJldHVybiB0cnVlO1xuICAgICAgICBpZiAocHJvcHMubWluVmFsdWUoKSAmJiBpc0JlZm9yZShkYXRlT2JqLCA8RGF0ZVZhbHVlPnByb3BzLm1pblZhbHVlKCkpKSByZXR1cm4gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IGlzRGF0ZVVuYXZhaWxhYmxlID0gKGRhdGU6IERhdGVWYWx1ZSkgPT4ge1xuICAgICAgICByZXR1cm4gISFwcm9wcy5pc0RhdGVVbmF2YWlsYWJsZT8uKCk/LihkYXRlKTtcbiAgICB9O1xuXG4gICAgY29uc3Qgd2Vla2RheXMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGlmICghbW9udGgoKS5sZW5ndGgpIHJldHVybiBbXTtcbiAgICAgICAgcmV0dXJuIG1vbnRoKClbMF0ud2Vla3NbMF0ubWFwKChkYXRlKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gZm9ybWF0dGVyLmRheU9mV2Vlayh0b0RhdGUoZGF0ZSksIHByb3BzLndlZWtkYXlGb3JtYXQoKSk7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgd2F0Y2goW3Byb3BzLnBsYWNlaG9sZGVyXSwgKFtwbGFjZWhvbGRlcl0pID0+IHtcbiAgICAgICAgaWYgKHZpc2libGVWaWV3KCkuc29tZSgobW9udGgpID0+IGlzRXF1YWxNb250aChtb250aCwgcGxhY2Vob2xkZXIpKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgbW9udGguc2V0KFxuICAgICAgICAgICAgY3JlYXRlTW9udGhzKHtcbiAgICAgICAgICAgICAgICBkYXRlT2JqOiBwbGFjZWhvbGRlcixcbiAgICAgICAgICAgICAgICB3ZWVrU3RhcnRzT246IHByb3BzLndlZWtTdGFydHNPbigpLFxuICAgICAgICAgICAgICAgIGxvY2FsZTogcHJvcHMubG9jYWxlKCksXG4gICAgICAgICAgICAgICAgZml4ZWRXZWVrczogcHJvcHMuZml4ZWRXZWVrcygpLFxuICAgICAgICAgICAgICAgIG51bWJlck9mTW9udGhzOiBwcm9wcy5udW1iZXJPZk1vbnRocygpXG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH0pO1xuXG4gICAgd2F0Y2goXG4gICAgICAgIFtwcm9wcy5sb2NhbGUsIHByb3BzLndlZWtTdGFydHNPbiwgcHJvcHMuZml4ZWRXZWVrcywgcHJvcHMubnVtYmVyT2ZNb250aHNdLFxuICAgICAgICAoW2xvY2FsZSwgd2Vla1N0YXJ0c09uLCBmaXhlZFdlZWtzLCBudW1iZXJPZk1vbnRoc10pID0+IHtcbiAgICAgICAgICAgIG1vbnRoLnNldChcbiAgICAgICAgICAgICAgICBjcmVhdGVNb250aHMoe1xuICAgICAgICAgICAgICAgICAgICBkYXRlT2JqOiBwcm9wcy5wbGFjZWhvbGRlcigpLFxuICAgICAgICAgICAgICAgICAgICB3ZWVrU3RhcnRzT246IHdlZWtTdGFydHNPbixcbiAgICAgICAgICAgICAgICAgICAgbG9jYWxlOiBsb2NhbGUsXG4gICAgICAgICAgICAgICAgICAgIGZpeGVkV2Vla3M6IGZpeGVkV2Vla3MsXG4gICAgICAgICAgICAgICAgICAgIG51bWJlck9mTW9udGhzOiBudW1iZXJPZk1vbnRoc1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgKTtcblxuICAgIGNvbnN0IGhlYWRpbmdWYWx1ZSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgaWYgKCFtb250aCgpLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHByb3BzLmxvY2FsZSgpICE9PSBmb3JtYXR0ZXIuZ2V0TG9jYWxlKCkpIGZvcm1hdHRlci5zZXRMb2NhbGUocHJvcHMubG9jYWxlKCkpO1xuXG4gICAgICAgIGlmIChtb250aCgpLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgY29uc3QgX21vbnRoID0gbW9udGgoKVswXS52YWx1ZTtcbiAgICAgICAgICAgIHJldHVybiBgJHtmb3JtYXR0ZXIuZnVsbE1vbnRoQW5kWWVhcih0b0RhdGUoX21vbnRoKSwgaGVhZGluZ0Zvcm1hdE9wdGlvbnMoKSl9YDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHN0YXJ0TW9udGggPSB0b0RhdGUobW9udGgoKVswXS52YWx1ZSk7XG4gICAgICAgIGNvbnN0IGVuZE1vbnRoID0gdG9EYXRlKG1vbnRoKClbbW9udGgoKS5sZW5ndGggLSAxXS52YWx1ZSk7XG5cbiAgICAgICAgY29uc3Qgc3RhcnRNb250aE5hbWUgPSBmb3JtYXR0ZXIuZnVsbE1vbnRoKHN0YXJ0TW9udGgsIGhlYWRpbmdGb3JtYXRPcHRpb25zKCkpO1xuICAgICAgICBjb25zdCBlbmRNb250aE5hbWUgPSBmb3JtYXR0ZXIuZnVsbE1vbnRoKGVuZE1vbnRoLCBoZWFkaW5nRm9ybWF0T3B0aW9ucygpKTtcbiAgICAgICAgY29uc3Qgc3RhcnRNb250aFllYXIgPSBmb3JtYXR0ZXIuZnVsbFllYXIoc3RhcnRNb250aCwgaGVhZGluZ0Zvcm1hdE9wdGlvbnMoKSk7XG4gICAgICAgIGNvbnN0IGVuZE1vbnRoWWVhciA9IGZvcm1hdHRlci5mdWxsWWVhcihlbmRNb250aCwgaGVhZGluZ0Zvcm1hdE9wdGlvbnMoKSk7XG5cbiAgICAgICAgcmV0dXJuIHN0YXJ0TW9udGhZZWFyID09PSBlbmRNb250aFllYXJcbiAgICAgICAgICAgID8gYCR7c3RhcnRNb250aE5hbWV9IC0gJHtlbmRNb250aE5hbWV9ICR7ZW5kTW9udGhZZWFyfWBcbiAgICAgICAgICAgIDogYCR7c3RhcnRNb250aE5hbWV9ICR7c3RhcnRNb250aFllYXJ9IC0gJHtlbmRNb250aE5hbWV9ICR7ZW5kTW9udGhZZWFyfWA7XG4gICAgfSk7XG5cbiAgICBjb25zdCBmdWxsQ2FsZW5kYXJMYWJlbCA9IGNvbXB1dGVkKCgpID0+IGAke3Byb3BzLmNhbGVuZGFyTGFiZWwoKSA/PyAnRXZlbnQgRGF0ZSd9LCAke2hlYWRpbmdWYWx1ZSgpfWApO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgICAgaXNEYXRlRGlzYWJsZWQsXG4gICAgICAgIGlzRGF0ZVVuYXZhaWxhYmxlLFxuICAgICAgICBpc05leHRCdXR0b25EaXNhYmxlZCxcbiAgICAgICAgaXNQcmV2QnV0dG9uRGlzYWJsZWQsXG4gICAgICAgIG1vbnRoLFxuICAgICAgICB3ZWVrZGF5cyxcbiAgICAgICAgdmlzaWJsZVZpZXcsXG4gICAgICAgIGlzT3V0c2lkZVZpc2libGVWaWV3LFxuICAgICAgICBmb3JtYXR0ZXIsXG4gICAgICAgIG5leHRQYWdlLFxuICAgICAgICBwcmV2UGFnZSxcbiAgICAgICAgaGVhZGluZ1ZhbHVlLFxuICAgICAgICBmdWxsQ2FsZW5kYXJMYWJlbFxuICAgIH07XG59XG4iXX0=","import { booleanAttribute, computed, Directive, effect, ElementRef, forwardRef, inject, input, linkedSignal, model, signal } from '@angular/core';\nimport { isEqualDay, isSameDay, startOfWeek, startOfYear } from '@internationalized/date';\nimport { getDefaultDate, watch } from '@radix-ng/primitives/core';\nimport { calendar, calendarState } from './calendar';\nimport { CALENDAR_ROOT_CONTEXT } from './сalendar-сontext.token';\nimport * as i0 from \"@angular/core\";\nexport class RdxCalendarRootDirective {\n constructor() {\n this.elementRef = inject((ElementRef));\n /**\n * The controlled checked state of the calendar\n */\n this.value = model(...(ngDevMode ? [undefined, { debugName: \"value\" }] : []));\n /**\n * The default placeholder date\n */\n this.defaultPlaceholder = model(...(ngDevMode ? [undefined, { debugName: \"defaultPlaceholder\" }] : []));\n this.locale = input('en', ...(ngDevMode ? [{ debugName: \"locale\" }] : []));\n this.defaultDate = getDefaultDate({\n defaultPlaceholder: this.defaultPlaceholder(),\n defaultValue: this.value(),\n locale: this.locale()\n });\n /**\n * The placeholder date, which is used to determine what month to display when no date is selected.\n * This updates as the user navigates the calendar and can be used to programmatically control the calendar view\n */\n this.placeholder = model(this.defaultPlaceholder() ?? this.defaultDate.copy(), ...(ngDevMode ? [{ debugName: \"placeholder\" }] : []));\n this.multiple = input(false, ...(ngDevMode ? [{ debugName: \"multiple\", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));\n /**\n * Whether to always display 6 weeks in the calendar\n */\n this.fixedWeeks = input(false, ...(ngDevMode ? [{ debugName: \"fixedWeeks\", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));\n /**\n * Whether the calendar is disabled\n */\n this.disabled = input(false, ...(ngDevMode ? [{ debugName: \"disabled\", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));\n /**\n * Whether to prevent the user from deselecting a date without selecting another date first\n */\n this.preventDeselect = input(false, ...(ngDevMode ? [{ debugName: \"preventDeselect\", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));\n /**\n * The day of the week to start the calendar on\n */\n this.weekStartsOn = input(1, ...(ngDevMode ? [{ debugName: \"weekStartsOn\" }] : []));\n /**\n * The number of months to display at once\n */\n this.numberOfMonths = input(1, ...(ngDevMode ? [{ debugName: \"numberOfMonths\" }] : []));\n /**\n * The reading direction of the calendar when applicable.\n */\n this.dir = input('ltr', ...(ngDevMode ? [{ debugName: \"dir\" }] : []));\n /**\n * The minimum date that can be selected\n */\n this.minValue = input(...(ngDevMode ? [undefined, { debugName: \"minValue\" }] : []));\n /**\n * The maximum date that can be selected\n */\n this.maxValue = input(...(ngDevMode ? [undefined, { debugName: \"maxValue\" }] : []));\n /**\n * The format to use for the weekday strings provided via the weekdays slot prop\n */\n this.weekdayFormat = input('narrow', ...(ngDevMode ? [{ debugName: \"weekdayFormat\" }] : []));\n /**\n * The accessible label for the calendar\n */\n this.calendarLabel = input(...(ngDevMode ? [undefined, { debugName: \"calendarLabel\" }] : []));\n /**\n * Whether the calendar is readonly\n */\n this.readonly = input(false, ...(ngDevMode ? [{ debugName: \"readonly\", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));\n /**\n * This property causes the previous and next buttons to navigate by the number of months displayed at once, rather than one month\n */\n this.pagedNavigation = input(false, ...(ngDevMode ? [{ debugName: \"pagedNavigation\", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));\n this.propsNextPage = input(...(ngDevMode ? [undefined, { debugName: \"propsNextPage\" }] : []));\n this.propsPrevPage = input(...(ngDevMode ? [undefined, { debugName: \"propsPrevPage\" }] : []));\n /**\n * A function that returns whether a date is disabled\n */\n this.isDateDisabled = input(...(ngDevMode ? [undefined, { debugName: \"isDateDisabled\" }] : []));\n /**\n * A function that returns whether a date is unavailable\n */\n this.isDateUnavailable = input(...(ngDevMode ? [undefined, { debugName: \"isDateUnavailable\" }] : []));\n this.initialFocus = input(false, ...(ngDevMode ? [{ debugName: \"initialFocus\", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));\n this.months = model(...(ngDevMode ? [undefined, { debugName: \"months\" }] : []));\n /**\n * The days of the week\n */\n this.weekDays = model(...(ngDevMode ? [undefined, { debugName: \"weekDays\" }] : []));\n this._fixedWeeks = linkedSignal(this.fixedWeeks, ...(ngDevMode ? [{ debugName: \"_fixedWeeks\" }] : []));\n this._disabled = linkedSignal(this.disabled, ...(ngDevMode ? [{ debugName: \"_disabled\" }] : []));\n this._pagedNavigation = linkedSignal(this.pagedNavigation, ...(ngDevMode ? [{ debugName: \"_pagedNavigation\" }] : []));\n this.startingWeekNumber = computed(() => {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-expect-error\n const firstDayOfGrid = startOfWeek(this.months()[0].weeks[0][0], this.locale());\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-expect-error\n return Array.from({ length: this.months()[0].weeks.length })\n .fill(null)\n .map((_, idx) => {\n const firstDayOfWeek = firstDayOfGrid.add({ weeks: idx });\n const thursday = firstDayOfWeek.add({ days: 3 });\n const firstDayOfYear = startOfYear(thursday);\n return ((thursday.compare(firstDayOfYear) / 7) | 0) + 1;\n });\n }, ...(ngDevMode ? [{ debugName: \"startingWeekNumber\" }] : []));\n /**\n * @ignore\n */\n this.headingValue = signal('', ...(ngDevMode ? [{ debugName: \"headingValue\" }] : []));\n /**\n * @ignore\n */\n this.fullCalendarLabel = signal('', ...(ngDevMode ? [{ debugName: \"fullCalendarLabel\" }] : []));\n this.calendar = calendar({\n locale: this.locale,\n placeholder: this.placeholder,\n weekStartsOn: this.weekStartsOn,\n fixedWeeks: this._fixedWeeks,\n numberOfMonths: this.numberOfMonths,\n minValue: this.minValue,\n maxValue: this.maxValue,\n disabled: this._disabled,\n weekdayFormat: this.weekdayFormat,\n pagedNavigation: this._pagedNavigation,\n isDateDisabled: this.isDateDisabled,\n isDateUnavailable: this.isDateUnavailable,\n calendarLabel: this.calendarLabel,\n nextPage: this.propsNextPage,\n prevPage: this.propsPrevPage\n });\n this.nextPage = this.calendar.nextPage;\n this.prevPage = this.calendar.prevPage;\n this.isOutsideVisibleView = this.calendar.isOutsideVisibleView;\n this.isNextButtonDisabled = this.calendar.isNextButtonDisabled;\n this.isPrevButtonDisabled = this.calendar.isPrevButtonDisabled;\n this.formatter = this.calendar.formatter;\n effect(() => {\n this.months.set(this.calendar.month());\n this.weekDays.set(this.calendar.weekdays());\n this.fullCalendarLabel.set(this.calendar.fullCalendarLabel());\n this.headingValue.set(this.calendar.headingValue());\n const { isInvalid, isDateSelected } = calendarState({\n date: this.value,\n isDateDisabled: this.isDateDisabled(),\n isDateUnavailable: this.isDateUnavailable()\n });\n this.isDateSelected = isDateSelected;\n this.isInvalid = isInvalid();\n });\n watch([this.value], ([_modelValue]) => {\n if (Array.isArray(_modelValue) && _modelValue.length) {\n const lastValue = _modelValue[_modelValue.length - 1];\n if (lastValue && !isEqualDay(this.placeholder(), lastValue)) {\n this.onPlaceholderChange(lastValue);\n }\n }\n else if (!Array.isArray(_modelValue) && _modelValue && !isEqualDay(this.placeholder(), _modelValue)) {\n this.onPlaceholderChange(_modelValue);\n }\n });\n }\n ngAfterViewInit() {\n this.currentElement = this.elementRef.nativeElement;\n }\n /**\n * @ignore\n */\n onPlaceholderChange(value) {\n this.placeholder.set(value.copy());\n }\n /**\n * @ignore\n */\n onDateChange(date) {\n const currentValue = this.value();\n if (!this.multiple()) {\n // for single selection\n if (!this.value()) {\n this.value.set(date.copy());\n return;\n }\n if (!this.preventDeselect() && isEqualDay(this.value(), date)) {\n this.placeholder.set(date.copy());\n this.value.set(undefined);\n }\n else {\n this.value.set(date.copy());\n }\n }\n else if (!this.value()) {\n // for multiple selection\n this.value.set([date.copy()]);\n }\n else if (Array.isArray(currentValue)) {\n const index = currentValue.findIndex((d) => isSameDay(d, date));\n if (index === -1) {\n this.value.set([...currentValue, date.copy()]);\n }\n else if (!this.preventDeselect()) {\n const next = currentValue.filter((d) => !isSameDay(d, date));\n if (next.length === 0) {\n this.placeholder.set(date.copy());\n this.value.set(undefined);\n return;\n }\n this.value.set(next.map((d) => d.copy()));\n }\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: RdxCalendarRootDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.3.3\", type: RdxCalendarRootDirective, isStandalone: true, selector: \"[rdxCalendarRoot]\", inputs: { value: { classPropertyName: \"value\", publicName: \"value\", isSignal: true, isRequired: false, transformFunction: null }, defaultPlaceholder: { classPropertyName: \"defaultPlaceholder\", publicName: \"defaultPlaceholder\", isSignal: true, isRequired: false, transformFunction: null }, locale: { classPropertyName: \"locale\", publicName: \"locale\", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: \"placeholder\", publicName: \"placeholder\", isSignal: true, isRequired: false, transformFunction: null }, multiple: { classPropertyName: \"multiple\", publicName: \"multiple\", isSignal: true, isRequired: false, transformFunction: null }, fixedWeeks: { classPropertyName: \"fixedWeeks\", publicName: \"fixedWeeks\", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: \"disabled\", publicName: \"disabled\", isSignal: true, isRequired: false, transformFunction: null }, preventDeselect: { classPropertyName: \"preventDeselect\", publicName: \"preventDeselect\", isSignal: true, isRequired: false, transformFunction: null }, weekStartsOn: { classPropertyName: \"weekStartsOn\", publicName: \"weekStartsOn\", isSignal: true, isRequired: false, transformFunction: null }, numberOfMonths: { classPropertyName: \"numberOfMonths\", publicName: \"numberOfMonths\", isSignal: true, isRequired: false, transformFunction: null }, dir: { classPropertyName: \"dir\", publicName: \"dir\", isSignal: true, isRequired: false, transformFunction: null }, minValue: { classPropertyName: \"minValue\", publicName: \"minValue\", isSignal: true, isRequired: false, transformFunction: null }, maxValue: { classPropertyName: \"maxValue\", publicName: \"maxValue\", isSignal: true, isRequired: false, transformFunction: null }, weekdayFormat: { classPropertyName: \"weekdayFormat\", publicName: \"weekdayFormat\", isSignal: true, isRequired: false, transformFunction: null }, calendarLabel: { classPropertyName: \"calendarLabel\", publicName: \"calendarLabel\", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: \"readonly\", publicName: \"readonly\", isSignal: true, isRequired: false, transformFunction: null }, pagedNavigation: { classPropertyName: \"pagedNavigation\", publicName: \"pagedNavigation\", isSignal: true, isRequired: false, transformFunction: null }, propsNextPage: { classPropertyName: \"propsNextPage\", publicName: \"propsNextPage\", isSignal: true, isRequired: false, transformFunction: null }, propsPrevPage: { classPropertyName: \"propsPrevPage\", publicName: \"propsPrevPage\", isSignal: true, isRequired: false, transformFunction: null }, isDateDisabled: { classPropertyName: \"isDateDisabled\", publicName: \"isDateDisabled\", isSignal: true, isRequired: false, transformFunction: null }, isDateUnavailable: { classPropertyName: \"isDateUnavailable\", publicName: \"isDateUnavailable\", isSignal: true, isRequired: false, transformFunction: null }, initialFocus: { classPropertyName: \"initialFocus\", publicName: \"initialFocus\", isSignal: true, isRequired: false, transformFunction: null }, months: { classPropertyName: \"months\", publicName: \"months\", isSignal: true, isRequired: false, transformFunction: null }, weekDays: { classPropertyName: \"weekDays\", publicName: \"weekDays\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: \"valueChange\", defaultPlaceholder: \"defaultPlaceholderChange\", placeholder: \"placeholderChange\", months: \"monthsChange\", weekDays: \"weekDaysChange\" }, host: { attributes: { \"role\": \"application\" }, properties: { \"attr.aria-label\": \"fullCalendarLabel()\", \"attr.data-disabled\": \"disabled() ? \\\"\\\" : undefined\", \"attr.data-readonly\": \"readonly() ? \\\"\\\" : undefined\", \"attr.data-invalid\": \"isInvalid ? \\\"\\\" : undefined\", \"attr.dir\": \"dir()\" } }, providers: [{ provide: CALENDAR_ROOT_CONTEXT, useExisting: forwardRef(() => RdxCalendarRootDirective) }], exportAs: [\"rdxCalendarRoot\"], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: RdxCalendarRootDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[rdxCalendarRoot]',\n exportAs: 'rdxCalendarRoot',\n providers: [{ provide: CALENDAR_ROOT_CONTEXT, useExisting: forwardRef(() => RdxCalendarRootDirective) }],\n host: {\n role: 'application',\n '[attr.aria-label]': 'fullCalendarLabel()',\n '[attr.data-disabled]': 'disabled() ? \"\" : undefined',\n '[attr.data-readonly]': 'readonly() ? \"\" : undefined',\n '[attr.data-invalid]': 'isInvalid ? \"\" : undefined',\n '[attr.dir]': 'dir()'\n }\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItcm9vdC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wcmltaXRpdmVzL2NhbGVuZGFyL3NyYy9jYWxlbmRhci1yb290LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBRUgsZ0JBQWdCLEVBQ2hCLFFBQVEsRUFDUixTQUFTLEVBQ1QsTUFBTSxFQUNOLFVBQVUsRUFDVixVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssRUFDTCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQWEsVUFBVSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDckcsT0FBTyxFQUEwQixjQUFjLEVBQVMsS0FBSyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDakcsT0FBTyxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDckQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7O0FBZWpFLE1BQU0sT0FBTyx3QkFBd0I7SUFtTmpDO1FBbE5pQixlQUFVLEdBQUcsTUFBTSxDQUFDLENBQUEsVUFBdUIsQ0FBQSxDQUFDLENBQUM7UUFFOUQ7O1dBRUc7UUFDTSxVQUFLLEdBQUcsS0FBSywyREFBdUMsQ0FBQztRQUU5RDs7V0FFRztRQUNNLHVCQUFrQixHQUFHLEtBQUssd0VBQWEsQ0FBQztRQUV4QyxXQUFNLEdBQUcsS0FBSyxDQUFTLElBQUksa0RBQUMsQ0FBQztRQUU3QixnQkFBVyxHQUFHLGNBQWMsQ0FBQztZQUNsQyxrQkFBa0IsRUFBRSxJQUFJLENBQUMsa0JBQWtCLEVBQUU7WUFDN0MsWUFBWSxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDMUIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUU7U0FD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VSxDQUFDLEdBQUcsRUFBRSxDQUFDLHdCQUF3QixDQUFDLEVBQUUsQ0FBQzs7MkZBVS9GLHdCQUF3QjtrQkFicEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsbUJBQW1CO29CQUM3QixRQUFRLEVBQUUsaUJBQWlCO29CQUMzQixTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSx5QkFBeUIsQ0FBQyxFQUFFLENBQUM7b0JBQ3hHLElBQUksRUFBRTt3QkFDRixJQUFJLEVBQUUsYUFBYTt3QkFDbkIsbUJBQW1CLEVBQUUscUJBQXFCO3dCQUMxQyxzQkFBc0IsRUFBRSw2QkFBNkI7d0JBQ3JELHNCQUFzQixFQUFFLDZCQUE2Qjt3QkFDckQscUJBQXFCLEVBQUUsNEJBQTRCO3dCQUNuRCxZQUFZLEVBQUUsT0FBTztxQkFDeEI7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCb29sZWFuSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIGJvb2xlYW5BdHRyaWJ1dGUsXG4gICAgY29tcHV0ZWQsXG4gICAgRGlyZWN0aXZlLFxuICAgIGVmZmVjdCxcbiAgICBFbGVtZW50UmVmLFxuICAgIGZvcndhcmRSZWYsXG4gICAgaW5qZWN0LFxuICAgIGlucHV0LFxuICAgIGxpbmtlZFNpZ25hbCxcbiAgICBtb2RlbCxcbiAgICBzaWduYWxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYXRlVmFsdWUsIGlzRXF1YWxEYXksIGlzU2FtZURheSwgc3RhcnRPZldlZWssIHN0YXJ0T2ZZZWFyIH0gZnJvbSAnQGludGVybmF0aW9uYWxpemVkL2RhdGUnO1xuaW1wb3J0IHsgRGF0ZU1hdGNoZXIsIEZvcm1hdHRlciwgZ2V0RGVmYXVsdERhdGUsIE1vbnRoLCB3YXRjaCB9IGZyb20gJ0ByYWRpeC1uZy9wcmltaXRpdmVzL2NvcmUnO1xuaW1wb3J0IHsgY2FsZW5kYXIsIGNhbGVuZGFyU3RhdGUgfSBmcm9tICcuL2NhbGVuZGFyJztcbmltcG9ydCB7IENBTEVOREFSX1JPT1RfQ09OVEVYVCB9IGZyb20gJy4v0YFhbGVuZGFyLdGBb250ZXh0LnRva2VuJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbcmR4Q2FsZW5kYXJSb290XScsXG4gICAgZXhwb3J0QXM6ICdyZHhDYWxlbmRhclJvb3QnLFxuICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogQ0FMRU5EQVJfUk9PVF9DT05URVhULCB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBSZHhDYWxlbmRhclJvb3REaXJlY3RpdmUpIH1dLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgcm9sZTogJ2FwcGxpY2F0aW9uJyxcbiAgICAgICAgJ1thdHRyLmFyaWEtbGFiZWxdJzogJ2Z1bGxDYWxlbmRhckxhYmVsKCknLFxuICAgICAgICAnW2F0dHIuZGF0YS1kaXNhYmxlZF0nOiAnZGlzYWJsZWQoKSA/IFwiXCIgOiB1bmRlZmluZWQnLFxuICAgICAgICAnW2F0dHIuZGF0YS1yZWFkb25seV0nOiAncmVhZG9ubHkoKSA/IFwiXCIgOiB1bmRlZmluZWQnLFxuICAgICAgICAnW2F0dHIuZGF0YS1pbnZhbGlkXSc6ICdpc0ludmFsaWQgPyBcIlwiIDogdW5kZWZpbmVkJyxcbiAgICAgICAgJ1thdHRyLmRpcl0nOiAnZGlyKCknXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBSZHhDYWxlbmRhclJvb3REaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGNvbnRyb2xsZWQgY2hlY2tlZCBzdGF0ZSBvZiB0aGUgY2FsZW5kYXJcbiAgICAgKi9cbiAgICByZWFkb25seSB2YWx1ZSA9IG1vZGVsPERhdGVWYWx1ZSB8IERhdGVWYWx1ZVtdIHwgdW5kZWZpbmVkPigpO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGRlZmF1bHQgcGxhY2Vob2xkZXIgZGF0ZVxuICAgICAqL1xuICAgIHJlYWRvbmx5IGRlZmF1bHRQbGFjZWhvbGRlciA9IG1vZGVsPERhdGVWYWx1ZT4oKTtcblxuICAgIHJlYWRvbmx5IGxvY2FsZSA9IGlucHV0PHN0cmluZz4oJ2VuJyk7XG5cbiAgICByZWFkb25seSBkZWZhdWx0RGF0ZSA9IGdldERlZmF1bHREYXRlKHtcbiAgICAgICAgZGVmYXVsdFBsYWNlaG9sZGVyOiB0aGlzLmRlZmF1bHRQbGFjZWhvbGRlcigpLFxuICAgICAgICBkZWZhdWx0VmFsdWU6IHRoaXMudmFsdWUoKSxcbiAgICAgICAgbG9jYWxlOiB0aGlzLmxvY2FsZSgpXG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgcGxhY2Vob2xkZXIgZGF0ZSwgd2hpY2ggaXMgdXNlZCB0byBkZXRlcm1pbmUgd2hhdCBtb250aCB0byBkaXNwbGF5IHdoZW4gbm8gZGF0ZSBpcyBzZWxlY3RlZC5cbiAgICAgKiBUaGlzIHVwZGF0ZXMgYXMgdGhlIHVzZXIgbmF2aWdhdGVzIHRoZSBjYWxlbmRhciBhbmQgY2FuIGJlIHVzZWQgdG8gcHJvZ3JhbW1hdGljYWxseSBjb250cm9sIHRoZSBjYWxlbmRhciB2aWV3XG4gICAgICovXG4gICAgcmVhZG9ubHkgcGxhY2Vob2xkZXIgPSBtb2RlbDxEYXRlVmFsdWU+KHRoaXMuZGVmYXVsdFBsYWNlaG9sZGVyKCkgPz8gdGhpcy5kZWZhdWx0RGF0ZS5jb3B5KCkpO1xuXG4gICAgcmVhZG9ubHkgbXVsdGlwbGUgPSBpbnB1dDxib29sZWFuLCBCb29sZWFuSW5wdXQ+KGZhbHNlLCB7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KTtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdG8gYWx3YXlzIGRpc3BsYXkgNiB3ZWVrcyBpbiB0aGUgY2FsZW5kYXJcbiAgICAgKi9cbiAgICByZWFkb25seSBmaXhlZFdlZWtzID0gaW5wdXQ8Ym9vbGVhbiwgQm9vbGVhbklucHV0PihmYWxzZSwgeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSk7XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSBjYWxlbmRhciBpcyBkaXNhYmxlZFxuICAgICAqL1xuICAgIHJlYWRvbmx5IGRpc2FibGVkID0gaW5wdXQ8Ym9vbGVhbiwgQm9vbGVhbklucHV0PihmYWxzZSwgeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSk7XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRvIHByZXZlbnQgdGhlIHVzZXIgZnJvbSBkZXNlbGVjdGluZyBhIGRhdGUgd2l0aG91dCBzZWxlY3RpbmcgYW5vdGhlciBkYXRlIGZpcnN0XG4gICAgICovXG4gICAgcmVhZG9ubHkgcHJldmVudERlc2VsZWN0ID0gaW5wdXQ8Ym9vbGVhbiwgQm9vbGVhbklucHV0PihmYWxzZSwgeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSk7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgZGF5IG9mIHRoZSB3ZWVrIHRvIHN0YXJ0IHRoZSBjYWxlbmRhciBvblxuICAgICAqL1xuICAgIHJlYWRvbmx5IHdlZWtTdGFydHNPbiA9IGlucHV0PDAgfCAxIHwgMiB8IDMgfCA0IHwgNSB8IDY+KDEpO1xuXG4gICAgLyoqXG4gICAgICogVGhlIG51bWJlciBvZiBtb250aHMgdG8gZGlzcGxheSBhdCBvbmNlXG4gICAgICovXG4gICAgcmVhZG9ubHkgbnVtYmVyT2ZNb250aHMgPSBpbnB1dDxudW1iZXI+KDEpO1xuXG4gICAgLyoqXG4gICAgICogVGhlIHJlYWRpbmcgZGlyZWN0aW9uIG9mIHRoZSBjYWxlbmRhciB3aGVuIGFwcGxpY2FibGUuXG4gICAgICovXG4gICAgcmVhZG9ubHkgZGlyID0gaW5wdXQ8J2x0cicgfCAncnRsJz4oJ2x0cicpO1xuXG4gICAgLyoqXG4gICAgICogVGhlIG1pbmltdW0gZGF0ZSB0aGF0IGNhbiBiZSBzZWxlY3RlZFxuICAgICAqL1xuICAgIHJlYWRvbmx5IG1pblZhbHVlID0gaW5wdXQ8RGF0ZVZhbHVlPigpO1xuXG4gICAgLyoqXG4gICAgICogVGhlIG1heGltdW0gZGF0ZSB0aGF0IGNhbiBiZSBzZWxlY3RlZFxuICAgICAqL1xuICAgIHJlYWRvbmx5IG1heFZhbHVlID0gaW5wdXQ8RGF0ZVZhbHVlPigpO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGZvcm1hdCB0byB1c2UgZm9yIHRoZSB3ZWVrZGF5IHN0cmluZ3MgcHJvdmlkZWQgdmlhIHRoZSB3ZWVrZGF5cyBzbG90IHByb3BcbiAgICAgKi9cbiAgICByZWFkb25seSB3ZWVrZGF5Rm9ybWF0ID0gaW5wdXQ8SW50bC5EYXRlVGltZUZvcm1hdE9wdGlvbnNbJ3dlZWtkYXknXT4oJ25hcnJvdycpO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGFjY2Vzc2libGUgbGFiZWwgZm9yIHRoZSBjYWxlbmRhclxuICAgICAqL1xuICAgIHJlYWRvbmx5IGNhbGVuZGFyTGFiZWwgPSBpbnB1dDxzdHJpbmc+KCk7XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSBjYWxlbmRhciBpcyByZWFkb25seVxuICAgICAqL1xuICAgIHJlYWRvbmx5IHJlYWRvbmx5ID0gaW5wdXQ8Ym9vbGVhbiwgQm9vbGVhbklucHV0PihmYWxzZSwgeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSk7XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIHByb3BlcnR5IGNhdXNlcyB0aGUgcHJldmlvdXMgYW5kIG5leHQgYnV0dG9ucyB0byBuYXZpZ2F0ZSBieSB0aGUgbnVtYmVyIG9mIG1vbnRocyBkaXNwbGF5ZWQgYXQgb25jZSwgcmF0aGVyIHRoYW4gb25lIG1vbnRoXG4gICAgICovXG4gICAgcmVhZG9ubHkgcGFnZWROYXZpZ2F0aW9uID0gaW5wdXQ8Ym9vbGVhbiwgQm9vbGVhbklucHV0PihmYWxzZSwgeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSk7XG5cbiAgICByZWFkb25seSBwcm9wc05leHRQYWdlID0gaW5wdXQ8KHBsYWNlaG9sZGVyOiBEYXRlVmFsdWUpID0+IERhdGVWYWx1ZT4oKTtcblxuICAgIHJlYWRvbmx5IHByb3BzUHJldlBhZ2UgPSBpbnB1dDwocGxhY2Vob2xkZXI6IERhdGVWYWx1ZSkgPT4gRGF0ZVZhbHVlPigpO1xuXG4gICAgLyoqXG4gICAgICogQSBmdW5jdGlvbiB0aGF0IHJldHVybnMgd2hldGhlciBhIGRhdGUgaXMgZGlzYWJsZWRcbiAgICAgKi9cbiAgICByZWFkb25seSBpc0RhdGVEaXNhYmxlZCA9IGlucHV0PERhdGVNYXRjaGVyPigpO1xuXG4gICAgLyoqXG4gICAgICogQSBmdW5jdGlvbiB0aGF0IHJldHVybnMgd2hldGhlciBhIGRhdGUgaXMgdW5hdmFpbGFibGVcbiAgICAgKi9cbiAgICByZWFkb25seSBpc0RhdGVVbmF2YWlsYWJsZSA9IGlucHV0PERhdGVNYXRjaGVyPigpO1xuXG4gICAgcmVhZG9ubHkgaW5pdGlhbEZvY3VzID0gaW5wdXQ8Ym9vbGVhbiwgQm9vbGVhbklucHV0PihmYWxzZSwgeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSk7XG5cbiAgICByZWFkb25seSBtb250aHMgPSBtb2RlbDxNb250aDxEYXRlVmFsdWU+W10+KCk7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgZGF5cyBvZiB0aGUgd2Vla1xuICAgICAqL1xuICAgIHJlYWRvbmx5IHdlZWtEYXlzID0gbW9kZWw8c3RyaW5nW10+KCk7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgX2ZpeGVkV2Vla3MgPSBsaW5rZWRTaWduYWwodGhpcy5maXhlZFdlZWtzKTtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSBfZGlzYWJsZWQgPSBsaW5rZWRTaWduYWwodGhpcy5kaXNhYmxlZCk7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgX3BhZ2VkTmF2aWdhdGlvbiA9IGxpbmtlZFNpZ25hbCh0aGlzLnBhZ2VkTmF2aWdhdGlvbik7XG5cbiAgICByZWFkb25seSBzdGFydGluZ1dlZWtOdW1iZXIgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXRzLWNvbW1lbnRcbiAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICAgICAgICBjb25zdCBmaXJzdERheU9mR3JpZCA9IHN0YXJ0T2ZXZWVrKHRoaXMubW9udGhzKClbMF0ud2Vla3NbMF1bMF0sIHRoaXMubG9jYWxlKCkpO1xuXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXRzLWNvbW1lbnRcbiAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICAgICAgICByZXR1cm4gQXJyYXkuZnJvbSh7IGxlbmd0aDogdGhpcy5tb250aHMoKVswXS53ZWVrcy5sZW5ndGggfSlcbiAgICAgICAgICAgIC5maWxsKG51bGwpXG4gICAgICAgICAgICAubWFwKChfLCBpZHgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBmaXJzdERheU9mV2VlayA9IGZpcnN0RGF5T2ZHcmlkLmFkZCh7IHdlZWtzOiBpZHggfSk7XG5cbiAgICAgICAgICAgICAgICBjb25zdCB0aHVyc2RheSA9IGZpcnN0RGF5T2ZXZWVrLmFkZCh7IGRheXM6IDMgfSk7XG5cbiAgICAgICAgICAgICAgICBjb25zdCBmaXJzdERheU9mWWVhciA9IHN0YXJ0T2ZZZWFyKHRodXJzZGF5KTtcblxuICAgICAgICAgICAgICAgIHJldHVybiAoKHRodXJzZGF5LmNvbXBhcmUoZmlyc3REYXlPZlllYXIpIC8gNykgfCAwKSArIDE7XG4gICAgICAgICAgICB9KTtcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIEBpZ25vcmVcbiAgICAgKi9cbiAgICByZWFkb25seSBoZWFkaW5nVmFsdWUgPSBzaWduYWw8c3RyaW5nPignJyk7XG5cbiAgICAvKipcbiAgICAgKiBAaWdub3JlXG4gICAgICovXG4gICAgcmVhZG9ubHkgZnVsbENhbGVuZGFyTGFiZWwgPSBzaWduYWw8c3RyaW5nPignJyk7XG5cbiAgICAvKipcbiAgICAgKiBAaWdub3JlXG4gICAgICovXG4gICAgbmV4dFBhZ2U6IChuZXh0UGFnZUZ1bmM/OiAoZGF0ZTogRGF0ZVZhbHVlKSA9PiBEYXRlVmFsdWUpID0+IHZvaWQ7XG5cbiAgICAvKipcbiAgICAgKiBAaWdub3JlXG4gICAgICovXG4gICAgcHJldlBhZ2U6IChuZXh0UGFnZUZ1bmM/OiAoZGF0ZTogRGF0ZVZhbHVlKSA9PiBEYXRlVmFsdWUpID0+IHZvaWQ7XG5cbiAgICAvKipcbiAgICAgKiBAaWdub3JlXG4gICAgICovXG4gICAgaXNOZXh0QnV0dG9uRGlzYWJsZWQ6IChuZXh0UGFnZUZ1bmM/OiAoZGF0ZTogRGF0ZVZhbHVlKSA9PiBEYXRlVmFsdWUpID0+IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBAaWdub3JlXG4gICAgICovXG4gICAgaXNQcmV2QnV0dG9uRGlzYWJsZWQ6IChuZXh0UGFnZUZ1bmM/OiAoZGF0ZTogRGF0ZVZhbHVlKSA9PiBEYXRlVmFsdWUpID0+IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBAaWdub3JlXG4gICAgICovXG4gICAgaXNEYXRlU2VsZWN0ZWQ6IERhdGVNYXRjaGVyO1xuXG4gICAgLyoqXG4gICAgICogQGlnbm9yZVxuICAgICAqL1xuICAgIGlzSW52YWxpZDogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIEBpZ25vcmVcbiAgICAgKi9cbiAgICBpc091dHNpZGVWaXNpYmxlVmlldzogKGRhdGU6IERhdGVWYWx1ZSkgPT4gYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIEBpZ25vcmVcbiAgICAgKi9cbiAgICBmb3JtYXR0ZXI6IEZvcm1hdHRlcjtcblxuICAgIC8qKlxuICAgICAqIEBpZ25vcmVcbiAgICAgKi9cbiAgICBjdXJyZW50RWxlbWVudCE6IEhUTUxFbGVtZW50O1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBjYWxlbmRhciA9IGNhbGVuZGFyKHtcbiAgICAgICAgbG9jYWxlOiB0aGlzLmxvY2FsZSxcbiAgICAgICAgcGxhY2Vob2xkZXI6IHRoaXMucGxhY2Vob2xkZXIsXG4gICAgICAgIHdlZWtTdGFydHNPbjogdGhpcy53ZWVrU3RhcnRzT24sXG4gICAgICAgIGZpeGVkV2Vla3M6IHRoaXMuX2ZpeGVkV2Vla3MsXG4gICAgICAgIG51bWJlck9mTW9udGhzOiB0aGlzLm51bWJlck9mTW9udGhzLFxuICAgICAgICBtaW5WYWx1ZTogdGhpcy5taW5WYWx1ZSxcbiAgICAgICAgbWF4VmFsdWU6IHRoaXMubWF4VmFsdWUsXG4gICAgICAgIGRpc2FibGVkOiB0aGlzLl9kaXNhYmxlZCxcbiAgICAgICAgd2Vla2RheUZvcm1hdDogdGhpcy53ZWVrZGF5Rm9ybWF0LFxuICAgICAgICBwYWdlZE5hdmlnYXRpb246IHRoaXMuX3BhZ2VkTmF2aWdhdGlvbixcbiAgICAgICAgaXNEYXRlRGlzYWJsZWQ6IHRoaXMuaXNEYXRlRGlzYWJsZWQsXG4gICAgICAgIGlzRGF0ZVVuYXZhaWxhYmxlOiB0aGlzLmlzRGF0ZVVuYXZhaWxhYmxlLFxuICAgICAgICBjYWxlbmRhckxhYmVsOiB0aGlzLmNhbGVuZGFyTGFiZWwsXG4gICAgICAgIG5leHRQYWdlOiB0aGlzLnByb3BzTmV4dFBhZ2UsXG4gICAgICAgIHByZXZQYWdlOiB0aGlzLnByb3BzUHJldlBhZ2VcbiAgICB9KTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLm5leHRQYWdlID0gdGhpcy5jYWxlbmRhci5uZXh0UGFnZTtcbiAgICAgICAgdGhpcy5wcmV2UGFnZSA9IHRoaXMuY2FsZW5kYXIucHJldlBhZ2U7XG4gICAgICAgIHRoaXMuaXNPdXRzaWRlVmlzaWJsZVZpZXcgPSB0aGlzLmNhbGVuZGFyLmlzT3V0c2lkZVZpc2libGVWaWV3O1xuICAgICAgICB0aGlzLmlzTmV4dEJ1dHRvbkRpc2FibGVkID0gdGhpcy5jYWxlbmRhci5pc05leHRCdXR0b25EaXNhYmxlZDtcbiAgICAgICAgdGhpcy5pc1ByZXZCdXR0b25EaXNhYmxlZCA9IHRoaXMuY2FsZW5kYXIuaXNQcmV2QnV0dG9uRGlzYWJsZWQ7XG4gICAgICAgIHRoaXMuZm9ybWF0dGVyID0gdGhpcy5jYWxlbmRhci5mb3JtYXR0ZXI7XG5cbiAgICAgICAgZWZmZWN0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMubW9udGhzLnNldCh0aGlzLmNhbGVuZGFyLm1vbnRoKCkpO1xuXG4gICAgICAgICAgICB0aGlzLndlZWtEYXlzLnNldCh0aGlzLmNhbGVuZGFyLndlZWtkYXlzKCkpO1xuXG4gICAgICAgICAgICB0aGlzLmZ1bGxDYWxlbmRhckxhYmVsLnNldCh0aGlzLmNhbGVuZGFyLmZ1bGxDYWxlbmRhckxhYmVsKCkpO1xuXG4gICAgICAgICAgICB0aGlzLmhlYWRpbmdWYWx1ZS5zZXQodGhpcy5jYWxlbmRhci5oZWFkaW5nVmFsdWUoKSk7XG5cbiAgICAgICAgICAgIGNvbnN0IHsgaXNJbnZhbGlkLCBpc0RhdGVTZWxlY3RlZCB9ID0gY2FsZW5kYXJTdGF0ZSh7XG4gICAgICAgICAgICAgICAgZGF0ZTogdGhpcy52YWx1ZSxcbiAgICAgICAgICAgICAgICBpc0RhdGVEaXNhYmxlZDogdGhpcy5pc0RhdGVEaXNhYmxlZCgpLFxuICAgICAgICAgICAgICAgIGlzRGF0ZVVuYXZhaWxhYmxlOiB0aGlzLmlzRGF0ZVVuYXZhaWxhYmxlKClcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICB0aGlzLmlzRGF0ZVNlbGVjdGVkID0gaXNEYXRlU2VsZWN0ZWQ7XG4gICAgICAgICAgICB0aGlzLmlzSW52YWxpZCA9IGlzSW52YWxpZCgpO1xuICAgICAgICB9KTtcblxuICAgICAgICB3YXRjaChbdGhpcy52YWx1ZV0sIChbX21vZGVsVmFsdWVdKSA9PiB7XG4gICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShfbW9kZWxWYWx1ZSkgJiYgX21vZGVsVmFsdWUubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbGFzdFZhbHVlID0gX21vZGVsVmFsdWVbX21vZGVsVmFsdWUubGVuZ3RoIC0gMV07XG4gICAgICAgICAgICAgICAgaWYgKGxhc3RWYWx1ZSAmJiAhaXNFcXVhbERheSh0aGlzLnBsYWNlaG9sZGVyKCksIDxEYXRlVmFsdWU+bGFzdFZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm9uUGxhY2Vob2xkZXJDaGFuZ2UoPERhdGVWYWx1ZT5sYXN0VmFsdWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAoIUFycmF5LmlzQXJyYXkoX21vZGVsVmFsdWUpICYmIF9tb2RlbFZhbHVlICYmICFpc0VxdWFsRGF5KHRoaXMucGxhY2Vob2xkZXIoKSwgX21vZGVsVmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vblBsYWNlaG9sZGVyQ2hhbmdlKF9tb2RlbFZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICB0aGlzLmN1cnJlbnRFbGVtZW50ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGlnbm9yZVxuICAgICAqL1xuICAgIG9uUGxhY2Vob2xkZXJDaGFuZ2UodmFsdWU6IERhdGVWYWx1ZSkge1xuICAgICAgICB0aGlzLnBsYWNlaG9sZGVyLnNldCh2YWx1ZS5jb3B5KCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBpZ25vcmVcbiAgICAgKi9cbiAgICBvbkRhdGVDaGFuZ2UoZGF0ZTogRGF0ZVZhbHVlKSB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRWYWx1ZSA9IHRoaXMudmFsdWUoKTtcblxuICAgICAgICBpZiAoIXRoaXMubXVsdGlwbGUoKSkge1xuICAgICAgICAgICAgLy8gZm9yIHNpbmdsZSBzZWxlY3Rpb25cbiAgICAgICAgICAgIGlmICghdGhpcy52YWx1ZSgpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy52YWx1ZS5zZXQoZGF0ZS5jb3B5KCkpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCF0aGlzLnByZXZlbnREZXNlbGVjdCgpICYmIGlzRXF1YWxEYXkodGhpcy52YWx1ZSgpIGFzIERhdGVWYWx1ZSwgZGF0ZSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnBsYWNlaG9sZGVyLnNldChkYXRlLmNvcHkoKSk7XG4gICAgICAgICAgICAgICAgdGhpcy52YWx1ZS5zZXQodW5kZWZpbmVkKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy52YWx1ZS5zZXQoZGF0ZS5jb3B5KCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKCF0aGlzLnZhbHVlKCkpIHtcbiAgICAgICAgICAgIC8vIGZvciBtdWx0aXBsZSBzZWxlY3Rpb25cbiAgICAgICAgICAgIHRoaXMudmFsdWUuc2V0KFtkYXRlLmNvcHkoKV0pO1xuICAgICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoY3VycmVudFZhbHVlKSkge1xuICAgICAgICAgICAgY29uc3QgaW5kZXggPSBjdXJyZW50VmFsdWUuZmluZEluZGV4KChkOiBEYXRlVmFsdWUpID0+IGlzU2FtZURheShkLCBkYXRlKSk7XG4gICAgICAgICAgICBpZiAoaW5kZXggPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgdGhpcy52YWx1ZS5zZXQoWy4uLmN1cnJlbnRWYWx1ZSwgZGF0ZS5jb3B5KCldKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoIXRoaXMucHJldmVudERlc2VsZWN0KCkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBuZXh0ID0gY3VycmVudFZhbHVlLmZpbHRlcigoZDogRGF0ZVZhbHVlKSA9PiAhaXNTYW1lRGF5KGQsIGRhdGUpKTtcbiAgICAgICAgICAgICAgICBpZiAobmV4dC5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wbGFjZWhvbGRlci5zZXQoZGF0ZS5jb3B5KCkpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnZhbHVlLnNldCh1bmRlZmluZWQpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMudmFsdWUuc2V0KG5leHQubWFwKChkKSA9PiBkLmNvcHkoKSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIl19","import { NgModule } from '@angular/core';\nimport { RdxCalendarCellTriggerDirective } from './src/calendar-cell-trigger.directive';\nimport { RdxCalendarCellDirective } from './src/calendar-cell.directive';\nimport { RdxCalendarGridBodyDirective } from './src/calendar-grid-body.directive';\nimport { RdxCalendarGridHeadDirective } from './src/calendar-grid-head.directive';\nimport { RdxCalendarGridRowDirective } from './src/calendar-grid-row.directive';\nimport { RdxCalendarGridDirective } from './src/calendar-grid.directive';\nimport { RdxCalendarHeadCellDirective } from './src/calendar-head-cell.directive';\nimport { RdxCalendarHeaderDirective } from './src/calendar-header.directive';\nimport { RdxCalendarHeadingDirective } from './src/calendar-heading.directive';\nimport { RdxCalendarNextDirective } from './src/calendar-next.directive';\nimport { RdxCalendarPrevDirective } from './src/calendar-prev.directive';\nimport { RdxCalendarRootDirective } from './src/calendar-root.directive';\nimport * as i0 from \"@angular/core\";\nexport { RdxCalendarCellTriggerDirective } from './src/calendar-cell-trigger.directive';\nexport { RdxCalendarCellDirective } from './src/calendar-cell.directive';\nexport { RdxCalendarGridBodyDirective } from './src/calendar-grid-body.directive';\nexport { RdxCalendarGridHeadDirective } from './src/calendar-grid-head.directive';\nexport { RdxCalendarGridRowDirective } from './src/calendar-grid-row.directive';\nexport { RdxCalendarGridDirective } from './src/calendar-grid.directive';\nexport { RdxCalendarHeadCellDirective } from './src/calendar-head-cell.directive';\nexport { RdxCalendarHeaderDirective } from './src/calendar-header.directive';\nexport { RdxCalendarHeadingDirective } from './src/calendar-heading.directive';\nexport { RdxCalendarNextDirective } from './src/calendar-next.directive';\nexport { RdxCalendarPrevDirective } from './src/calendar-prev.directive';\nexport { RdxCalendarRootDirective } from './src/calendar-root.directive';\nconst _imports = [\n RdxCalendarCellTriggerDirective,\n RdxCalendarCellDirective,\n RdxCalendarGridBodyDirective,\n RdxCalendarGridHeadDirective,\n RdxCalendarGridRowDirective,\n RdxCalendarGridDirective,\n RdxCalendarHeadCellDirective,\n RdxCalendarHeaderDirective,\n RdxCalendarPrevDirective,\n RdxCalendarRootDirective,\n RdxCalendarHeadingDirective,\n RdxCalendarNextDirective\n];\nexport class RdxCalendarModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: RdxCalendarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.3\", ngImport: i0, type: RdxCalendarModule, imports: [RdxCalendarCellTriggerDirective,\n RdxCalendarCellDirective,\n RdxCalendarGridBodyDirective,\n RdxCalendarGridHeadDirective,\n RdxCalendarGridRowDirective,\n RdxCalendarGridDirective,\n RdxCalendarHeadCellDirective,\n RdxCalendarHeaderDirective,\n RdxCalendarPrevDirective,\n RdxCalendarRootDirective,\n RdxCalendarHeadingDirective,\n RdxCalendarNextDirective], exports: [RdxCalendarCellTriggerDirective,\n RdxCalendarCellDirective,\n RdxCalendarGridBodyDirective,\n RdxCalendarGridHeadDirective,\n RdxCalendarGridRowDirective,\n RdxCalendarGridDirective,\n RdxCalendarHeadCellDirective,\n RdxCalendarHeaderDirective,\n RdxCalendarPrevDirective,\n RdxCalendarRootDirective,\n RdxCalendarHeadingDirective,\n RdxCalendarNextDirective] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: RdxCalendarModule }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: RdxCalendarModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [..._imports],\n exports: [..._imports]\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9wcmltaXRpdmVzL2NhbGVuZGFyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFlekMsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDeEYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDekUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDbEYsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDbEYsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDaEYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDekUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDbEYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDN0UsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDL0UsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDekUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDekUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0JBQStCLENBQUM7O0FBeEJ6RSxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN4RixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNsRixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNsRixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNoRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNsRixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMvRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQWV6RSxNQUFNLFFBQVEsR0FBRztJQUNiLCtCQUErQjtJQUMvQix3QkFBd0I7SUFDeEIsNEJBQTRCO0lBQzVCLDRCQUE0QjtJQUM1QiwyQkFBMkI7SUFDM0Isd0JBQXdCO0lBQ3hCLDRCQUE0QjtJQUM1QiwwQkFBMEI7SUFDMUIsd0JBQXdCO0lBQ3hCLHdCQUF3QjtJQUN4QiwyQkFBMkI7SUFDM0Isd0JBQXdCO0NBQzNCLENBQUM7QUFNRixNQUFNLE9BQU8saUJBQWlCOzhHQUFqQixpQkFBaUI7K0dBQWpCLGlCQUFpQixZQWxCMUIsK0JBQStCO1lBQy9CLHdCQUF3QjtZQUN4Qiw0QkFBNEI7WUFDNUIsNEJBQTRCO1lBQzVCLDJCQUEyQjtZQUMzQix3QkFBd0I7WUFDeEIsNEJBQTRCO1lBQzVCLDBCQUEwQjtZQUMxQix3QkFBd0I7WUFDeEIsd0JBQXdCO1lBQ3hCLDJCQUEyQjtZQUMzQix3QkFBd0IsYUFYeEIsK0JBQStCO1lBQy9CLHdCQUF3QjtZQUN4Qiw0QkFBNEI7WUFDNUIsNEJBQTRCO1lBQzVCLDJCQUEyQjtZQUMzQix3QkFBd0I7WUFDeEIsNEJBQTRCO1lBQzVCLDBCQUEwQjtZQUMxQix3QkFBd0I7WUFDeEIsd0JBQXdCO1lBQ3hCLDJCQUEyQjtZQUMzQix3QkFBd0I7K0dBT2YsaUJBQWlCOzsyRkFBakIsaUJBQWlCO2tCQUo3QixRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRSxDQUFDLEdBQUcsUUFBUSxDQUFDO29CQUN0QixPQUFPLEVBQUUsQ0FBQyxHQUFHLFFBQVEsQ0FBQztpQkFDekIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgeyBSZHhDYWxlbmRhckNlbGxUcmlnZ2VyRGlyZWN0aXZlIH0gZnJvbSAnLi9zcmMvY2FsZW5kYXItY2VsbC10cmlnZ2VyLmRpcmVjdGl2ZSc7XG5leHBvcnQgeyBSZHhDYWxlbmRhckNlbGxEaXJlY3RpdmUgfSBmcm9tICcuL3NyYy9jYWxlbmRhci1jZWxsLmRpcmVjdGl2ZSc7XG5leHBvcnQgeyBSZHhDYWxlbmRhckdyaWRCb2R5RGlyZWN0aXZlIH0gZnJvbSAnLi9zcmMvY2FsZW5kYXItZ3JpZC1ib2R5LmRpcmVjdGl2ZSc7XG5leHBvcnQgeyBSZHhDYWxlbmRhckdyaWRIZWFkRGlyZWN0aXZlIH0gZnJvbSAnLi9zcmMvY2FsZW5kYXItZ3JpZC1oZWFkLmRpcmVjdGl2ZSc7XG5leHBvcnQgeyBSZHhDYWxlbmRhckdyaWRSb3dEaXJlY3RpdmUgfSBmcm9tICcuL3NyYy9jYWxlbmRhci1ncmlkLXJvdy5kaXJlY3RpdmUnO1xuZXhwb3J0IHsgUmR4Q2FsZW5kYXJHcmlkRGlyZWN0aXZlIH0gZnJvbSAnLi9zcmMvY2FsZW5kYXItZ3JpZC5kaXJlY3RpdmUnO1xuZXhwb3J0IHsgUmR4Q2FsZW5kYXJIZWFkQ2VsbERpcmVjdGl2ZSB9IGZyb20gJy4vc3JjL2NhbGVuZGFyLWhlYWQtY2VsbC5kaXJlY3RpdmUnO1xuZXhwb3J0IHsgUmR4Q2FsZW5kYXJIZWFkZXJEaXJlY3RpdmUgfSBmcm9tICcuL3NyYy9jYWxlbmRhci1oZWFkZXIuZGlyZWN0aXZlJztcbmV4cG9ydCB7IFJkeENhbGVuZGFySGVhZGluZ0RpcmVjdGl2ZSB9IGZyb20gJy4vc3JjL2NhbGVuZGFyLWhlYWRpbmcuZGlyZWN0aXZlJztcbmV4cG9ydCB7IFJkeENhbGVuZGFyTmV4dERpcmVjdGl2ZSB9IGZyb20gJy4vc3JjL2NhbGVuZGFyLW5leHQuZGlyZWN0aXZlJztcbmV4cG9ydCB7IFJkeENhbGVuZGFyUHJldkRpcmVjdGl2ZSB9IGZyb20gJy4vc3JjL2NhbGVuZGFyLXByZXYuZGlyZWN0aXZlJztcbmV4cG9ydCB7IFJkeENhbGVuZGFyUm9vdERpcmVjdGl2ZSB9IGZyb20gJy4vc3JjL2NhbGVuZGFyLXJvb3QuZGlyZWN0aXZlJztcblxuaW1wb3J0IHsgUmR4Q2FsZW5kYXJDZWxsVHJpZ2dlckRpcmVjdGl2ZSB9IGZyb20gJy4vc3JjL2NhbGVuZGFyLWNlbGwtdHJpZ2dlci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgUmR4Q2FsZW5kYXJDZWxsRGlyZWN0aXZlIH0gZnJvbSAnLi9zcmMvY2FsZW5kYXItY2VsbC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgUmR4Q2FsZW5kYXJHcmlkQm9keURpcmVjdGl2ZSB9IGZyb20gJy4vc3JjL2NhbGVuZGFyLWdyaWQtYm9keS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgUmR4Q2FsZW5kYXJHcmlkSGVhZERpcmVjdGl2ZSB9IGZyb20gJy4vc3JjL2NhbGVuZGFyLWdyaWQtaGVhZC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgUmR4Q2FsZW5kYXJHcmlkUm93RGlyZWN0aXZlIH0gZnJvbSAnLi9zcmMvY2FsZW5kYXItZ3JpZC1yb3cuZGlyZWN0aXZlJztcbmltcG9ydCB7IFJkeENhbGVuZGFyR3JpZERpcmVjdGl2ZSB9IGZyb20gJy4vc3JjL2NhbGVuZGFyLWdyaWQuZGlyZWN0aXZlJztcbmltcG9ydCB7IFJkeENhbGVuZGFySGVhZENlbGxEaXJlY3RpdmUgfSBmcm9tICcuL3NyYy9jYWxlbmRhci1oZWFkLWNlbGwuZGlyZWN0aXZlJztcbmltcG9ydCB7IFJkeENhbGVuZGFySGVhZGVyRGlyZWN0aXZlIH0gZnJvbSAnLi9zcmMvY2FsZW5kYXItaGVhZGVyLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBSZHhDYWxlbmRhckhlYWRpbmdEaXJlY3RpdmUgfSBmcm9tICcuL3NyYy9jYWxlbmRhci1oZWFkaW5nLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBSZHhDYWxlbmRhck5leHREaXJlY3RpdmUgfSBmcm9tICcuL3NyYy9jYWxlbmRhci1uZXh0LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBSZHhDYWxlbmRhclByZXZEaXJlY3RpdmUgfSBmcm9tICcuL3NyYy9jYWxlbmRhci1wcmV2LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBSZHhDYWxlbmRhclJvb3REaXJlY3RpdmUgfSBmcm9tICcuL3NyYy9jYWxlbmRhci1yb290LmRpcmVjdGl2ZSc7XG5cbmNvbnN0IF9pbXBvcnRzID0gW1xuICAgIFJkeENhbGVuZGFyQ2VsbFRyaWdnZXJEaXJlY3RpdmUsXG4gICAgUmR4Q2FsZW5kYXJDZWxsRGlyZWN0aXZlLFxuICAgIFJkeENhbGVuZGFyR3JpZEJvZHlEaXJlY3RpdmUsXG4gICAgUmR4Q2FsZW5kYXJHcmlkSGVhZERpcmVjdGl2ZSxcbiAgICBSZHhDYWxlbmRhckdyaWRSb3dEaXJlY3RpdmUsXG4gICAgUmR4Q2FsZW5kYXJHcmlkRGlyZWN0aXZlLFxuICAgIFJkeENhbGVuZGFySGVhZENlbGxEaXJlY3RpdmUsXG4gICAgUmR4Q2FsZW5kYXJIZWFkZXJEaXJlY3RpdmUsXG4gICAgUmR4Q2FsZW5kYXJQcmV2RGlyZWN0aXZlLFxuICAgIFJkeENhbGVuZGFyUm9vdERpcmVjdGl2ZSxcbiAgICBSZHhDYWxlbmRhckhlYWRpbmdEaXJlY3RpdmUsXG4gICAgUmR4Q2FsZW5kYXJOZXh0RGlyZWN0aXZlXG5dO1xuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFsuLi5faW1wb3J0c10sXG4gICAgZXhwb3J0czogWy4uLl9pbXBvcnRzXVxufSlcbmV4cG9ydCBjbGFzcyBSZHhDYWxlbmRhck1vZHVsZSB7fVxuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaXgtbmctcHJpbWl0aXZlcy1jYWxlbmRhci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3ByaW1pdGl2ZXMvY2FsZW5kYXIvcmFkaXgtbmctcHJpbWl0aXZlcy1jYWxlbmRhci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"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"}