@coreui/angular-pro 5.2.11 → 5.2.14

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 (335) hide show
  1. package/README.md +1 -1
  2. package/esm2022/lib/accordion/accordion/accordion.component.mjs +3 -3
  3. package/esm2022/lib/accordion/accordion-button/accordion-button.directive.mjs +3 -3
  4. package/esm2022/lib/accordion/accordion-item/accordion-item.component.mjs +5 -13
  5. package/esm2022/lib/accordion/accordion.module.mjs +4 -4
  6. package/esm2022/lib/accordion/accordion.service.mjs +5 -5
  7. package/esm2022/lib/alert/alert-heading.directive.mjs +8 -16
  8. package/esm2022/lib/alert/alert-link.directive.mjs +8 -16
  9. package/esm2022/lib/alert/alert.component.mjs +3 -3
  10. package/esm2022/lib/alert/alert.module.mjs +4 -4
  11. package/esm2022/lib/avatar/avatar.component.mjs +3 -3
  12. package/esm2022/lib/avatar/avatar.module.mjs +4 -4
  13. package/esm2022/lib/backdrop/backdrop.service.mjs +3 -3
  14. package/esm2022/lib/badge/badge.component.mjs +3 -3
  15. package/esm2022/lib/badge/badge.module.mjs +4 -4
  16. package/esm2022/lib/breadcrumb/breadcrumb/breadcrumb.component.mjs +6 -13
  17. package/esm2022/lib/breadcrumb/breadcrumb-item/breadcrumb-item.component.mjs +3 -3
  18. package/esm2022/lib/breadcrumb/breadcrumb-router/breadcrumb-router.component.mjs +3 -3
  19. package/esm2022/lib/breadcrumb/breadcrumb-router/breadcrumb-router.service.mjs +3 -3
  20. package/esm2022/lib/breadcrumb/breadcrumb.module.mjs +4 -4
  21. package/esm2022/lib/button/button-close.directive.mjs +27 -26
  22. package/esm2022/lib/button/button.directive.mjs +62 -76
  23. package/esm2022/lib/button/button.module.mjs +4 -4
  24. package/esm2022/lib/button-group/button-group/button-group.component.mjs +27 -28
  25. package/esm2022/lib/button-group/button-group.module.mjs +4 -4
  26. package/esm2022/lib/button-group/button-toolbar/button-toolbar.component.mjs +10 -22
  27. package/esm2022/lib/calendar/calendar/calendar-class-view.pipe.mjs +3 -3
  28. package/esm2022/lib/calendar/calendar/calendar.component.mjs +5 -5
  29. package/esm2022/lib/calendar/calendar-month/calendar-class-day.pipe.mjs +3 -3
  30. package/esm2022/lib/calendar/calendar-month/calendar-class-month.pipe.mjs +3 -3
  31. package/esm2022/lib/calendar/calendar-month/calendar-class-row.pipe.mjs +3 -3
  32. package/esm2022/lib/calendar/calendar-month/calendar-class-year.pipe.mjs +3 -3
  33. package/esm2022/lib/calendar/calendar-month/calendar-day-title.pipe.mjs +3 -3
  34. package/esm2022/lib/calendar/calendar-month/calendar-day.directive.mjs +24 -12
  35. package/esm2022/lib/calendar/calendar-month/calendar-day.pipe.mjs +3 -3
  36. package/esm2022/lib/calendar/calendar-month/calendar-month.component.mjs +3 -3
  37. package/esm2022/lib/calendar/calendar-month/calendar-row.directive.mjs +3 -3
  38. package/esm2022/lib/calendar/calendar-month/calendar-weekday.pipe.mjs +3 -3
  39. package/esm2022/lib/calendar/calendar-navigation/calendar-navigation.component.mjs +3 -3
  40. package/esm2022/lib/calendar/calendar.module.mjs +4 -4
  41. package/esm2022/lib/calendar/calendar.service.mjs +3 -3
  42. package/esm2022/lib/callout/callout.component.mjs +5 -5
  43. package/esm2022/lib/callout/callout.module.mjs +4 -4
  44. package/esm2022/lib/card/card-body.component.mjs +8 -15
  45. package/esm2022/lib/card/card-footer.component.mjs +8 -15
  46. package/esm2022/lib/card/card-group.component.mjs +8 -15
  47. package/esm2022/lib/card/card-header-actions.component.mjs +3 -3
  48. package/esm2022/lib/card/card-header.component.mjs +8 -15
  49. package/esm2022/lib/card/card-img-overlay/card-img-overlay.component.mjs +7 -15
  50. package/esm2022/lib/card/card-img.directive.mjs +3 -3
  51. package/esm2022/lib/card/card-link.directive.mjs +8 -15
  52. package/esm2022/lib/card/card-subtitle.directive.mjs +8 -15
  53. package/esm2022/lib/card/card-text.directive.mjs +8 -15
  54. package/esm2022/lib/card/card-title.directive.mjs +8 -15
  55. package/esm2022/lib/card/card.component.mjs +5 -7
  56. package/esm2022/lib/card/card.module.mjs +4 -4
  57. package/esm2022/lib/carousel/carousel/carousel.component.mjs +14 -15
  58. package/esm2022/lib/carousel/carousel-caption/carousel-caption.component.mjs +3 -3
  59. package/esm2022/lib/carousel/carousel-control/carousel-control.component.mjs +3 -3
  60. package/esm2022/lib/carousel/carousel-indicators/carousel-indicators.component.mjs +3 -3
  61. package/esm2022/lib/carousel/carousel-inner/carousel-inner.component.mjs +3 -3
  62. package/esm2022/lib/carousel/carousel-item/carousel-item.component.mjs +5 -5
  63. package/esm2022/lib/carousel/carousel-state.mjs +3 -3
  64. package/esm2022/lib/carousel/carousel.config.mjs +3 -3
  65. package/esm2022/lib/carousel/carousel.module.mjs +4 -4
  66. package/esm2022/lib/carousel/carousel.service.mjs +5 -5
  67. package/esm2022/lib/collapse/collapse.directive.mjs +4 -5
  68. package/esm2022/lib/collapse/collapse.module.mjs +4 -4
  69. package/esm2022/lib/date-picker/date-picker.component.mjs +3 -3
  70. package/esm2022/lib/date-picker/date-picker.module.mjs +4 -4
  71. package/esm2022/lib/date-range-picker/date-range-picker/custom-range-key.pipe.mjs +3 -3
  72. package/esm2022/lib/date-range-picker/date-range-picker/date-range-picker.component.mjs +12 -8
  73. package/esm2022/lib/date-range-picker/date-range-picker.module.mjs +5 -5
  74. package/esm2022/lib/dropdown/dropdown/dropdown.component.mjs +6 -6
  75. package/esm2022/lib/dropdown/dropdown-close/dropdown-close.directive.mjs +3 -3
  76. package/esm2022/lib/dropdown/dropdown-divider/dropdown-divider.directive.mjs +8 -15
  77. package/esm2022/lib/dropdown/dropdown-header/dropdown-header.directive.mjs +7 -14
  78. package/esm2022/lib/dropdown/dropdown-item/dropdown-item-plain.directive.mjs +8 -15
  79. package/esm2022/lib/dropdown/dropdown-item/dropdown-item.directive.mjs +6 -5
  80. package/esm2022/lib/dropdown/dropdown-menu/dropdown-menu.directive.mjs +16 -10
  81. package/esm2022/lib/dropdown/dropdown.module.mjs +4 -4
  82. package/esm2022/lib/dropdown/dropdown.service.mjs +3 -3
  83. package/esm2022/lib/element-cover/element-cover.component.mjs +3 -3
  84. package/esm2022/lib/element-cover/element-cover.module.mjs +4 -4
  85. package/esm2022/lib/footer/footer.component.mjs +6 -5
  86. package/esm2022/lib/footer/footer.module.mjs +4 -4
  87. package/esm2022/lib/form/form/form.directive.mjs +3 -3
  88. package/esm2022/lib/form/form-check/form-check-input.directive.mjs +6 -6
  89. package/esm2022/lib/form/form-check/form-check-label.directive.mjs +8 -15
  90. package/esm2022/lib/form/form-check/form-check.component.mjs +3 -3
  91. package/esm2022/lib/form/form-control/form-control.directive.mjs +3 -3
  92. package/esm2022/lib/form/form-feedback/form-feedback.component.mjs +3 -3
  93. package/esm2022/lib/form/form-floating/form-floating.directive.mjs +4 -4
  94. package/esm2022/lib/form/form-label/form-label.directive.mjs +14 -13
  95. package/esm2022/lib/form/form-select/form-select.directive.mjs +14 -13
  96. package/esm2022/lib/form/form-text/form-text.directive.mjs +8 -15
  97. package/esm2022/lib/form/form.module.mjs +4 -4
  98. package/esm2022/lib/form/input-group/input-group.component.mjs +6 -5
  99. package/esm2022/lib/form/input-group-text/input-group-text.directive.mjs +8 -16
  100. package/esm2022/lib/grid/col.component.mjs +3 -3
  101. package/esm2022/lib/grid/col.directive.mjs +3 -3
  102. package/esm2022/lib/grid/container.component.mjs +3 -3
  103. package/esm2022/lib/grid/grid.module.mjs +4 -4
  104. package/esm2022/lib/grid/gutter.directive.mjs +6 -6
  105. package/esm2022/lib/grid/row.component.mjs +3 -3
  106. package/esm2022/lib/grid/row.directive.mjs +8 -7
  107. package/esm2022/lib/header/header/header.component.mjs +3 -3
  108. package/esm2022/lib/header/header-brand/header-brand.component.mjs +3 -3
  109. package/esm2022/lib/header/header-divider/header-divider.component.mjs +3 -3
  110. package/esm2022/lib/header/header-nav/header-nav.component.mjs +3 -3
  111. package/esm2022/lib/header/header-text/header-text.component.mjs +3 -3
  112. package/esm2022/lib/header/header-toggler/header-toggler.directive.mjs +3 -3
  113. package/esm2022/lib/header/header.module.mjs +4 -4
  114. package/esm2022/lib/image/img.directive.mjs +3 -3
  115. package/esm2022/lib/image/img.module.mjs +4 -4
  116. package/esm2022/lib/list-group/list-group-item.directive.mjs +3 -3
  117. package/esm2022/lib/list-group/list-group.directive.mjs +6 -5
  118. package/esm2022/lib/list-group/list-group.module.mjs +4 -4
  119. package/esm2022/lib/loading-button/loading-button.component.mjs +44 -59
  120. package/esm2022/lib/loading-button/loading-button.module.mjs +4 -4
  121. package/esm2022/lib/modal/modal/modal.component.mjs +5 -5
  122. package/esm2022/lib/modal/modal-body/modal-body.component.mjs +7 -15
  123. package/esm2022/lib/modal/modal-content/modal-content.component.mjs +8 -15
  124. package/esm2022/lib/modal/modal-dialog/modal-dialog.component.mjs +5 -5
  125. package/esm2022/lib/modal/modal-dismiss/modal-toggle.directive.mjs +3 -3
  126. package/esm2022/lib/modal/modal-footer/modal-footer.component.mjs +8 -15
  127. package/esm2022/lib/modal/modal-header/modal-header.component.mjs +8 -15
  128. package/esm2022/lib/modal/modal-title/modal-title.directive.mjs +8 -15
  129. package/esm2022/lib/modal/modal.module.mjs +4 -4
  130. package/esm2022/lib/modal/modal.service.mjs +5 -5
  131. package/esm2022/lib/multi-select/multi-select/multi-select-search.directive.mjs +3 -3
  132. package/esm2022/lib/multi-select/multi-select/multi-select.component.mjs +17 -8
  133. package/esm2022/lib/multi-select/multi-select-native-select/multi-select-native-select.component.mjs +3 -3
  134. package/esm2022/lib/multi-select/multi-select-optgroup/multi-select-optgroup-label.component.mjs +7 -16
  135. package/esm2022/lib/multi-select/multi-select-optgroup/multi-select-optgroup.component.mjs +3 -3
  136. package/esm2022/lib/multi-select/multi-select-option/multi-select-option.component.mjs +3 -3
  137. package/esm2022/lib/multi-select/multi-select-tag/multi-select-tag.component.mjs +3 -3
  138. package/esm2022/lib/multi-select/multi-select.module.mjs +4 -4
  139. package/esm2022/lib/multi-select/multi-select.service.mjs +3 -3
  140. package/esm2022/lib/nav/nav-item.component.mjs +7 -15
  141. package/esm2022/lib/nav/nav-link.directive.mjs +3 -3
  142. package/esm2022/lib/nav/nav.component.mjs +5 -5
  143. package/esm2022/lib/nav/nav.module.mjs +4 -4
  144. package/esm2022/lib/navbar/navbar-brand/navbar-brand.directive.mjs +3 -3
  145. package/esm2022/lib/navbar/navbar-nav/navbar-nav.component.mjs +6 -5
  146. package/esm2022/lib/navbar/navbar-text/navbar-text.component.mjs +3 -3
  147. package/esm2022/lib/navbar/navbar-toggler/navbar-toggler.directive.mjs +3 -3
  148. package/esm2022/lib/navbar/navbar.component.mjs +7 -9
  149. package/esm2022/lib/navbar/navbar.module.mjs +4 -4
  150. package/esm2022/lib/offcanvas/offcanvas/offcanvas.component.mjs +17 -26
  151. package/esm2022/lib/offcanvas/offcanvas-body/offcanvas-body.component.mjs +7 -15
  152. package/esm2022/lib/offcanvas/offcanvas-header/offcanvas-header.component.mjs +8 -15
  153. package/esm2022/lib/offcanvas/offcanvas-title/offcanvas-title.directive.mjs +8 -15
  154. package/esm2022/lib/offcanvas/offcanvas-toggle/offcanvas-toggle.directive.mjs +3 -3
  155. package/esm2022/lib/offcanvas/offcanvas.module.mjs +4 -4
  156. package/esm2022/lib/offcanvas/offcanvas.service.mjs +5 -5
  157. package/esm2022/lib/pagination/page-item/page-item.component.mjs +3 -3
  158. package/esm2022/lib/pagination/page-item/page-item.directive.mjs +7 -6
  159. package/esm2022/lib/pagination/page-link/page-link.directive.mjs +8 -15
  160. package/esm2022/lib/pagination/pagination/pagination.component.mjs +3 -3
  161. package/esm2022/lib/pagination/pagination.module.mjs +4 -4
  162. package/esm2022/lib/placeholder/placeholder-animation.directive.mjs +3 -3
  163. package/esm2022/lib/placeholder/placeholder.directive.mjs +3 -3
  164. package/esm2022/lib/placeholder/placeholder.module.mjs +4 -4
  165. package/esm2022/lib/popover/popover/popover.component.mjs +5 -5
  166. package/esm2022/lib/popover/popover.directive.mjs +3 -3
  167. package/esm2022/lib/popover/popover.module.mjs +4 -4
  168. package/esm2022/lib/progress/progress-bar.component.mjs +10 -7
  169. package/esm2022/lib/progress/progress-bar.directive.mjs +6 -6
  170. package/esm2022/lib/progress/progress-stacked.component.mjs +3 -3
  171. package/esm2022/lib/progress/progress.component.mjs +9 -7
  172. package/esm2022/lib/progress/progress.module.mjs +4 -4
  173. package/esm2022/lib/rating/rating-item-label/rating-item-label.component.mjs +3 -3
  174. package/esm2022/lib/rating/rating.component.mjs +23 -21
  175. package/esm2022/lib/rating/rating.module.mjs +4 -4
  176. package/esm2022/lib/services/class-toggle.service.mjs +3 -3
  177. package/esm2022/lib/services/color-mode.service.mjs +3 -3
  178. package/esm2022/lib/services/in-memory-storage.service.mjs +5 -6
  179. package/esm2022/lib/services/intersection.service.mjs +3 -3
  180. package/esm2022/lib/services/listeners.service.mjs +3 -3
  181. package/esm2022/lib/services/local-storage.service.mjs +9 -15
  182. package/esm2022/lib/shared/element-ref.directive.mjs +3 -3
  183. package/esm2022/lib/shared/html-attr.directive.mjs +12 -10
  184. package/esm2022/lib/shared/shared.module.mjs +4 -4
  185. package/esm2022/lib/shared/template-id.directive.mjs +3 -3
  186. package/esm2022/lib/shared/theme.directive.mjs +3 -3
  187. package/esm2022/lib/sidebar/sidebar/sidebar.component.mjs +15 -13
  188. package/esm2022/lib/sidebar/sidebar-backdrop/sidebar-backdrop.service.mjs +7 -5
  189. package/esm2022/lib/sidebar/sidebar-brand/sidebar-brand.component.mjs +3 -3
  190. package/esm2022/lib/sidebar/sidebar-footer/sidebar-footer.component.mjs +8 -16
  191. package/esm2022/lib/sidebar/sidebar-header/sidebar-header.component.mjs +8 -15
  192. package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-badge.pipe.mjs +3 -3
  193. package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-divider.component.mjs +3 -3
  194. package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-group.service.mjs +5 -5
  195. package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-icon.pipe.mjs +3 -3
  196. package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-item-class.pipe.mjs +3 -3
  197. package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-label.component.mjs +3 -3
  198. package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-link.component.mjs +14 -13
  199. package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-link.pipe.mjs +3 -3
  200. package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-title.component.mjs +9 -7
  201. package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav.component.mjs +6 -6
  202. package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav.service.mjs +6 -6
  203. package/esm2022/lib/sidebar/sidebar-toggle/sidebar-toggle.directive.mjs +3 -3
  204. package/esm2022/lib/sidebar/sidebar-toggler/sidebar-toggler.directive.mjs +3 -3
  205. package/esm2022/lib/sidebar/sidebar.module.mjs +4 -4
  206. package/esm2022/lib/sidebar/sidebar.service.mjs +5 -5
  207. package/esm2022/lib/smart-pagination/smart-pagination.component.mjs +3 -3
  208. package/esm2022/lib/smart-pagination/smart-pagination.module.mjs +4 -4
  209. package/esm2022/lib/smart-table/smart-table/smart-table.component.mjs +20 -20
  210. package/esm2022/lib/smart-table/smart-table-column-filter/smart-table-column-filter.component.mjs +5 -6
  211. package/esm2022/lib/smart-table/smart-table-filter/filter-input.directive.mjs +3 -3
  212. package/esm2022/lib/smart-table/smart-table-filter/smart-table-filter.component.mjs +5 -6
  213. package/esm2022/lib/smart-table/smart-table-head/smart-table-column-label.pipe.mjs +3 -3
  214. package/esm2022/lib/smart-table/smart-table-head/smart-table-head.component.mjs +7 -15
  215. package/esm2022/lib/smart-table/smart-table-items-per-page-selector/smart-table-items-per-page-selector.component.mjs +6 -10
  216. package/esm2022/lib/smart-table/smart-table.module.mjs +4 -4
  217. package/esm2022/lib/spinner/spinner.component.mjs +3 -3
  218. package/esm2022/lib/spinner/spinner.module.mjs +4 -4
  219. package/esm2022/lib/table/table-active.directive.mjs +3 -3
  220. package/esm2022/lib/table/table-color.directive.mjs +3 -3
  221. package/esm2022/lib/table/table.directive.mjs +6 -5
  222. package/esm2022/lib/table/table.module.mjs +4 -4
  223. package/esm2022/lib/tabs/tab-content/tab-content.component.mjs +6 -15
  224. package/esm2022/lib/tabs/tab-content-ref.directive.mjs +3 -3
  225. package/esm2022/lib/tabs/tab-pane/tab-pane.component.mjs +5 -5
  226. package/esm2022/lib/tabs/tab.service.mjs +5 -5
  227. package/esm2022/lib/tabs/tabs.module.mjs +4 -4
  228. package/esm2022/lib/tabs-2/tab/tab.directive.mjs +3 -3
  229. package/esm2022/lib/tabs-2/tab-panel/tab-panel.component.mjs +3 -3
  230. package/esm2022/lib/tabs-2/tabs-content/tabs-content.component.mjs +3 -3
  231. package/esm2022/lib/tabs-2/tabs-list/tabs-list.component.mjs +3 -3
  232. package/esm2022/lib/tabs-2/tabs.component.mjs +3 -3
  233. package/esm2022/lib/tabs-2/tabs.service.mjs +3 -3
  234. package/esm2022/lib/tabs-2/tabs2.module.mjs +4 -4
  235. package/esm2022/lib/time-picker/time-picker-roll-col/time-picker-roll-am-pm.component.mjs +6 -6
  236. package/esm2022/lib/time-picker/time-picker-roll-col/time-picker-roll-col.component.mjs +6 -6
  237. package/esm2022/lib/time-picker/time-picker.component.mjs +30 -26
  238. package/esm2022/lib/time-picker/time-picker.module.mjs +4 -4
  239. package/esm2022/lib/toast/toast/toast.component.mjs +7 -11
  240. package/esm2022/lib/toast/toast-body/toast-body.component.mjs +3 -3
  241. package/esm2022/lib/toast/toast-close.directive.mjs +3 -3
  242. package/esm2022/lib/toast/toast-header/toast-header.component.mjs +3 -3
  243. package/esm2022/lib/toast/toast.module.mjs +4 -4
  244. package/esm2022/lib/toast/toaster/toaster-host.directive.mjs +3 -3
  245. package/esm2022/lib/toast/toaster/toaster.component.mjs +11 -12
  246. package/esm2022/lib/toast/toaster/toaster.service.mjs +5 -5
  247. package/esm2022/lib/tooltip/tooltip/tooltip.component.mjs +5 -5
  248. package/esm2022/lib/tooltip/tooltip.directive.mjs +3 -3
  249. package/esm2022/lib/tooltip/tooltip.module.mjs +4 -4
  250. package/esm2022/lib/utilities/align.directive.mjs +3 -3
  251. package/esm2022/lib/utilities/bg-color.directive.mjs +11 -11
  252. package/esm2022/lib/utilities/border.directive.mjs +3 -3
  253. package/esm2022/lib/utilities/rounded.directive.mjs +3 -3
  254. package/esm2022/lib/utilities/shadow-on-scroll.directive.mjs +3 -3
  255. package/esm2022/lib/utilities/text-bg-color.directive.mjs +3 -3
  256. package/esm2022/lib/utilities/text-color.directive.mjs +3 -3
  257. package/esm2022/lib/utilities/utilities.module.mjs +4 -4
  258. package/esm2022/lib/widget/widget-stat-a/widget-stat-a.component.mjs +6 -6
  259. package/esm2022/lib/widget/widget-stat-b/widget-stat-b.component.mjs +5 -5
  260. package/esm2022/lib/widget/widget-stat-c/widget-stat-c.component.mjs +3 -3
  261. package/esm2022/lib/widget/widget-stat-d/widget-stat-d.component.mjs +7 -8
  262. package/esm2022/lib/widget/widget-stat-e/widget-stat-e.component.mjs +3 -3
  263. package/esm2022/lib/widget/widget-stat-f/widget-stat-f.component.mjs +6 -6
  264. package/esm2022/lib/widget/widget.module.mjs +4 -4
  265. package/fesm2022/coreui-angular-pro.mjs +1375 -1641
  266. package/fesm2022/coreui-angular-pro.mjs.map +1 -1
  267. package/lib/accordion/accordion-item/accordion-item.component.d.ts +0 -1
  268. package/lib/accordion/accordion.service.d.ts +0 -1
  269. package/lib/alert/alert-heading.directive.d.ts +0 -2
  270. package/lib/alert/alert-link.directive.d.ts +0 -2
  271. package/lib/breadcrumb/breadcrumb/breadcrumb.component.d.ts +0 -3
  272. package/lib/button/button-close.directive.d.ts +4 -4
  273. package/lib/button/button.directive.d.ts +23 -21
  274. package/lib/button-group/button-group/button-group.component.d.ts +11 -6
  275. package/lib/button-group/button-toolbar/button-toolbar.component.d.ts +4 -4
  276. package/lib/calendar/calendar-month/calendar-month.component.d.ts +1 -1
  277. package/lib/calendar/calendar.utils.d.ts +1 -1
  278. package/lib/card/card-body.component.d.ts +0 -1
  279. package/lib/card/card-footer.component.d.ts +0 -1
  280. package/lib/card/card-group.component.d.ts +0 -1
  281. package/lib/card/card-header.component.d.ts +0 -1
  282. package/lib/card/card-img-overlay/card-img-overlay.component.d.ts +0 -1
  283. package/lib/card/card-link.directive.d.ts +0 -1
  284. package/lib/card/card-subtitle.directive.d.ts +0 -1
  285. package/lib/card/card-text.directive.d.ts +0 -1
  286. package/lib/card/card-title.directive.d.ts +0 -1
  287. package/lib/carousel/carousel/carousel.component.d.ts +1 -2
  288. package/lib/carousel/carousel.service.d.ts +0 -1
  289. package/lib/date-range-picker/date-range-picker/date-range-picker.component.d.ts +1 -1
  290. package/lib/dropdown/dropdown-divider/dropdown-divider.directive.d.ts +0 -1
  291. package/lib/dropdown/dropdown-header/dropdown-header.directive.d.ts +0 -1
  292. package/lib/dropdown/dropdown-item/dropdown-item-plain.directive.d.ts +0 -1
  293. package/lib/form/form-check/form-check-input.directive.d.ts +1 -1
  294. package/lib/form/form-check/form-check-label.directive.d.ts +0 -1
  295. package/lib/form/form-label/form-label.directive.d.ts +0 -1
  296. package/lib/form/form-select/form-select.directive.d.ts +0 -1
  297. package/lib/form/form-text/form-text.directive.d.ts +0 -1
  298. package/lib/form/input-group-text/input-group-text.directive.d.ts +0 -2
  299. package/lib/grid/gutter.directive.d.ts +1 -2
  300. package/lib/loading-button/loading-button.component.d.ts +14 -24
  301. package/lib/modal/modal-body/modal-body.component.d.ts +0 -1
  302. package/lib/modal/modal-content/modal-content.component.d.ts +0 -1
  303. package/lib/modal/modal-footer/modal-footer.component.d.ts +0 -1
  304. package/lib/modal/modal-header/modal-header.component.d.ts +0 -1
  305. package/lib/modal/modal-title/modal-title.directive.d.ts +0 -1
  306. package/lib/modal/modal.service.d.ts +0 -1
  307. package/lib/multi-select/multi-select-optgroup/multi-select-optgroup-label.component.d.ts +0 -4
  308. package/lib/nav/nav-item.component.d.ts +0 -1
  309. package/lib/offcanvas/offcanvas-body/offcanvas-body.component.d.ts +0 -1
  310. package/lib/offcanvas/offcanvas-header/offcanvas-header.component.d.ts +0 -1
  311. package/lib/offcanvas/offcanvas-title/offcanvas-title.directive.d.ts +0 -1
  312. package/lib/offcanvas/offcanvas.service.d.ts +0 -1
  313. package/lib/pagination/page-link/page-link.directive.d.ts +0 -1
  314. package/lib/progress/progress-bar.directive.d.ts +0 -1
  315. package/lib/services/in-memory-storage.service.d.ts +0 -1
  316. package/lib/services/local-storage.service.d.ts +1 -1
  317. package/lib/sidebar/sidebar-footer/sidebar-footer.component.d.ts +0 -2
  318. package/lib/sidebar/sidebar-header/sidebar-header.component.d.ts +0 -1
  319. package/lib/sidebar/sidebar-nav/sidebar-nav-group.service.d.ts +0 -1
  320. package/lib/sidebar/sidebar.service.d.ts +0 -1
  321. package/lib/smart-table/smart-table/smart-table.component.d.ts +4 -4
  322. package/lib/smart-table/smart-table-column-filter/smart-table-column-filter.component.d.ts +0 -1
  323. package/lib/smart-table/smart-table-filter/smart-table-filter.component.d.ts +0 -1
  324. package/lib/smart-table/smart-table-head/smart-table-head.component.d.ts +2 -3
  325. package/lib/smart-table/smart-table-items-per-page-selector/smart-table-items-per-page-selector.component.d.ts +0 -1
  326. package/lib/tabs/tab-content/tab-content.component.d.ts +0 -3
  327. package/lib/tabs/tab.service.d.ts +0 -1
  328. package/lib/time-picker/time-picker.component.d.ts +2 -3
  329. package/lib/time-picker/time.utils.d.ts +1 -1
  330. package/lib/toast/toast/toast.component.d.ts +1 -1
  331. package/lib/toast/toaster/toaster.component.d.ts +1 -1
  332. package/lib/toast/toaster/toaster.service.d.ts +0 -1
  333. package/lib/utilities/bg-color.directive.d.ts +0 -1
  334. package/lib/widget/widget-stat-d/widget-stat-d.component.d.ts +0 -1
  335. package/package.json +9 -9
@@ -48,7 +48,7 @@ export class CalendarComponent {
48
48
  */
49
49
  set calendarDate(value) {
50
50
  // const _value = new Date(tryDate((value ?? this.startDate ?? new Date()), 'calendarDate'));
51
- let _value = new Date(tryDate(value ?? this.startDate, 'calendarDate'));
51
+ const _value = new Date(tryDate(value ?? this.startDate, 'calendarDate'));
52
52
  // if (!isDateBetweenMinMax(_value, this.minDate, this.maxDate)) {
53
53
  // // _value = _value < (this.minDate ?? 0) ? this.minDate ?? this.maxDate ?? _value : this.maxDate ?? this.minDate ?? _value;
54
54
  // // return;
@@ -402,10 +402,10 @@ export class CalendarComponent {
402
402
  this.calendarService.update({ hoverDate: null });
403
403
  }
404
404
  }
405
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: CalendarComponent, deps: [{ token: i1.CalendarService }], target: i0.ɵɵFactoryTarget.Component }); }
406
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.2", type: CalendarComponent, isStandalone: true, selector: "c-calendar", inputs: { calendarDate: "calendarDate", calendars: ["calendars", "calendars", numberAttribute], dayFormat: "dayFormat", disabledDates: "disabledDates", startDate: "startDate", endDate: "endDate", firstDayOfWeek: ["firstDayOfWeek", "firstDayOfWeek", numberAttribute], locale: "locale", maxDate: "maxDate", minDate: "minDate", navigation: ["navigation", "navigation", booleanAttribute], navYearFirst: ["navYearFirst", "navYearFirst", booleanAttribute], range: ["range", "range", booleanAttribute], view: "view", weekdayFormat: "weekdayFormat", dateFilter: "dateFilter", selectAdjacentDays: ["selectAdjacentDays", "selectAdjacentDays", booleanAttribute], showAdjacentDays: ["showAdjacentDays", "showAdjacentDays", booleanAttribute], selectionType: "selectionType", showWeekNumber: ["showWeekNumber", "showWeekNumber", booleanAttribute], weekNumbersLabel: "weekNumbersLabel" }, outputs: { calendarCellHover: "calendarCellHover", calendarDateChange: "calendarDateChange", endDateChange: "endDateChange", startDateChange: "startDateChange", viewChange: "viewChange" }, host: { properties: { "class": "this.hostClasses" } }, providers: [CalendarService], viewQueries: [{ propertyName: "calendarMonths", predicate: CalendarMonthComponent, descendants: true }], exportAs: ["cCalendar"], ngImport: i0, template: "@for (calendar of calendarsArray; track calendar; let i = $index) {\n <div [ngClass]=\"view | calendarClassView\">\n <c-calendar-navigation\n (navigationClick)=\"handleNavigationClick($event.direction, $event.years)\"\n [addMonths]=\"i\"\n [navigation]=\"navigation\"\n />\n\n <c-calendar-month\n [addMonths]=\"i\"\n [firstDayOfWeek]=\"firstDayOfWeek\"\n [weekdayFormat]=\"weekdayFormat\"\n cdkMonitorSubtreeFocus\n (cdkFocusChange)=\"handleFocusChange($event)\"\n />\n </div>\n}\n", styles: [".btn-transparent:focus-visible{outline:-webkit-focus-ring-color auto 1px}\n"], dependencies: [{ kind: "component", type: CalendarNavigationComponent, selector: "c-calendar-navigation", inputs: ["addMonths", "calendarDate", "navigation", "navYearFirst"], outputs: ["navigationClick"] }, { kind: "pipe", type: CalendarClassViewPipe, name: "calendarClassView" }, { kind: "component", type: CalendarMonthComponent, selector: "c-calendar-month", inputs: ["addMonths", "startDate", "endDate", "disabledDates", "firstDayOfWeek", "locale", "range", "weekdayFormat", "view", "maxDate", "minDate", "calendarDate"], exportAs: ["cCalendarMonth"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: A11yModule }, { kind: "directive", type: i2.CdkMonitorFocus, selector: "[cdkMonitorElementFocus], [cdkMonitorSubtreeFocus]", outputs: ["cdkFocusChange"], exportAs: ["cdkMonitorFocus"] }] }); }
405
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: CalendarComponent, deps: [{ token: i1.CalendarService }], target: i0.ɵɵFactoryTarget.Component }); }
406
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: CalendarComponent, isStandalone: true, selector: "c-calendar", inputs: { calendarDate: "calendarDate", calendars: ["calendars", "calendars", numberAttribute], dayFormat: "dayFormat", disabledDates: "disabledDates", startDate: "startDate", endDate: "endDate", firstDayOfWeek: ["firstDayOfWeek", "firstDayOfWeek", numberAttribute], locale: "locale", maxDate: "maxDate", minDate: "minDate", navigation: ["navigation", "navigation", booleanAttribute], navYearFirst: ["navYearFirst", "navYearFirst", booleanAttribute], range: ["range", "range", booleanAttribute], view: "view", weekdayFormat: "weekdayFormat", dateFilter: "dateFilter", selectAdjacentDays: ["selectAdjacentDays", "selectAdjacentDays", booleanAttribute], showAdjacentDays: ["showAdjacentDays", "showAdjacentDays", booleanAttribute], selectionType: "selectionType", showWeekNumber: ["showWeekNumber", "showWeekNumber", booleanAttribute], weekNumbersLabel: "weekNumbersLabel" }, outputs: { calendarCellHover: "calendarCellHover", calendarDateChange: "calendarDateChange", endDateChange: "endDateChange", startDateChange: "startDateChange", viewChange: "viewChange" }, host: { properties: { "class": "this.hostClasses" } }, providers: [CalendarService], viewQueries: [{ propertyName: "calendarMonths", predicate: CalendarMonthComponent, descendants: true }], exportAs: ["cCalendar"], ngImport: i0, template: "@for (calendar of calendarsArray; track calendar; let i = $index) {\n <div [ngClass]=\"view | calendarClassView\">\n <c-calendar-navigation\n (navigationClick)=\"handleNavigationClick($event.direction, $event.years)\"\n [addMonths]=\"i\"\n [navigation]=\"navigation\"\n />\n\n <c-calendar-month\n [addMonths]=\"i\"\n [firstDayOfWeek]=\"firstDayOfWeek\"\n [weekdayFormat]=\"weekdayFormat\"\n cdkMonitorSubtreeFocus\n (cdkFocusChange)=\"handleFocusChange($event)\"\n />\n </div>\n}\n", styles: [".btn-transparent:focus-visible{outline:-webkit-focus-ring-color auto 1px}\n"], dependencies: [{ kind: "component", type: CalendarNavigationComponent, selector: "c-calendar-navigation", inputs: ["addMonths", "calendarDate", "navigation", "navYearFirst"], outputs: ["navigationClick"] }, { kind: "pipe", type: CalendarClassViewPipe, name: "calendarClassView" }, { kind: "component", type: CalendarMonthComponent, selector: "c-calendar-month", inputs: ["addMonths", "startDate", "endDate", "disabledDates", "firstDayOfWeek", "locale", "range", "weekdayFormat", "view", "maxDate", "minDate", "calendarDate"], exportAs: ["cCalendarMonth"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: A11yModule }, { kind: "directive", type: i2.CdkMonitorFocus, selector: "[cdkMonitorElementFocus], [cdkMonitorSubtreeFocus]", outputs: ["cdkFocusChange"], exportAs: ["cdkMonitorFocus"] }] }); }
407
407
  }
408
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: CalendarComponent, decorators: [{
408
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: CalendarComponent, decorators: [{
409
409
  type: Component,
410
410
  args: [{ selector: 'c-calendar', exportAs: 'cCalendar', providers: [CalendarService], standalone: true, imports: [CalendarNavigationComponent, CalendarClassViewPipe, CalendarMonthComponent, NgClass, A11yModule], template: "@for (calendar of calendarsArray; track calendar; let i = $index) {\n <div [ngClass]=\"view | calendarClassView\">\n <c-calendar-navigation\n (navigationClick)=\"handleNavigationClick($event.direction, $event.years)\"\n [addMonths]=\"i\"\n [navigation]=\"navigation\"\n />\n\n <c-calendar-month\n [addMonths]=\"i\"\n [firstDayOfWeek]=\"firstDayOfWeek\"\n [weekdayFormat]=\"weekdayFormat\"\n cdkMonitorSubtreeFocus\n (cdkFocusChange)=\"handleFocusChange($event)\"\n />\n </div>\n}\n", styles: [".btn-transparent:focus-visible{outline:-webkit-focus-ring-color auto 1px}\n"] }]
411
411
  }], ctorParameters: () => [{ type: i1.CalendarService }], propDecorators: { calendarDate: [{
@@ -475,4 +475,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImpor
475
475
  type: ViewChildren,
476
476
  args: [CalendarMonthComponent]
477
477
  }] } });
478
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi9jYWxlbmRhci9jYWxlbmRhci9jYWxlbmRhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JldWktYW5ndWxhci9zcmMvbGliL2NhbGVuZGFyL2NhbGVuZGFyL2NhbGVuZGFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osV0FBVyxFQUNYLE1BQU0sRUFDTixLQUFLLEVBQ0wsZUFBZSxFQUVmLE1BQU0sRUFFTixNQUFNLEVBQ04sWUFBWSxFQUNiLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQUUsVUFBVSxFQUFlLE1BQU0sbUJBQW1CLENBQUM7QUFFNUQsT0FBTyxFQUFFLGVBQWUsRUFBbUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2SCxPQUFPLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzdELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQ25HLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7O0FBV25FLE1BQU0sT0FBTyxpQkFBaUI7SUFDNUIsV0FBVyxDQUFzQjtJQUVqQyxZQUFvQixlQUFnQztRQUFoQyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFGcEQsZ0JBQVcsR0FBRyxNQUFNLENB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QUUsZ0JBQWdCLEVBQUU7Z0JBY3pCLGdCQUFnQjtzQkFBNUIsS0FBSztnQkFJSSxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBQ0csa0JBQWtCO3NCQUEzQixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csZUFBZTtzQkFBeEIsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNO2dCQWVILFdBQVc7c0JBRGQsV0FBVzt1QkFBQyxPQUFPO2dCQVdrQixjQUFjO3NCQUFuRCxZQUFZO3VCQUFDLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGJvb2xlYW5BdHRyaWJ1dGUsXG4gIENvbXBvbmVudCxcbiAgRGVzdHJveVJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0QmluZGluZyxcbiAgaW5qZWN0LFxuICBJbnB1dCxcbiAgbnVtYmVyQXR0cmlidXRlLFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBzaWduYWwsXG4gIFZpZXdDaGlsZHJlblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IE5nQ2xhc3MgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQTExeU1vZHVsZSwgRm9jdXNPcmlnaW4gfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5cbmltcG9ydCB7IENhbGVuZGFyU2VydmljZSwgRGF0ZUZpbHRlclR5cGUsIERheUZvcm1hdFR5cGUsIFNlbGVjdGlvblR5cGUsIFdlZWtkYXlGb3JtYXRUeXBlIH0gZnJvbSAnLi4vY2FsZW5kYXIuc2VydmljZSc7XG5pbXBvcnQgeyBnZXRDYWxlbmRhckRhdGUsIHRyeURhdGUgfSBmcm9tICcuLi9jYWxlbmRhci51dGlscyc7XG5pbXBvcnQgeyBDYWxlbmRhck1vbnRoQ29tcG9uZW50IH0gZnJvbSAnLi4vY2FsZW5kYXItbW9udGgvY2FsZW5kYXItbW9udGguY29tcG9uZW50JztcbmltcG9ydCB7IENhbGVuZGFyTmF2aWdhdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uL2NhbGVuZGFyLW5hdmlnYXRpb24vY2FsZW5kYXItbmF2aWdhdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FsZW5kYXJDbGFzc1ZpZXdQaXBlIH0gZnJvbSAnLi9jYWxlbmRhci1jbGFzcy12aWV3LnBpcGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjLWNhbGVuZGFyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NhbGVuZGFyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2FsZW5kYXIuY29tcG9uZW50LnNjc3MnXSxcbiAgZXhwb3J0QXM6ICdjQ2FsZW5kYXInLFxuICBwcm92aWRlcnM6IFtDYWxlbmRhclNlcnZpY2VdLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ2FsZW5kYXJOYXZpZ2F0aW9uQ29tcG9uZW50LCBDYWxlbmRhckNsYXNzVmlld1BpcGUsIENhbGVuZGFyTW9udGhDb21wb25lbnQsIE5nQ2xhc3MsIEExMXlNb2R1bGVdXG59KVxuZXhwb3J0IGNsYXNzIENhbGVuZGFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgI2Rlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjYWxlbmRhclNlcnZpY2U6IENhbGVuZGFyU2VydmljZSkge1xuICAgIHRoaXMuY2FsZW5kYXJTdGF0ZVN1YnNjcmliZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIERlZmF1bHQgZGF0ZSBvZiB0aGUgY29tcG9uZW50XG4gICAqIEB0eXBlICBEYXRlIHwgc3RyaW5nXG4gICAqL1xuICBASW5wdXQoKVxuICBzZXQgY2FsZW5kYXJEYXRlKHZhbHVlOiBEYXRlIHwgc3RyaW5nIHwgbnVtYmVyKSB7XG4gICAgLy8gY29uc3QgX3ZhbHVlID0gbmV3IERhdGUodHJ5RGF0ZSgodmFsdWUgPz8gdGhpcy5zdGFydERhdGUgPz8gbmV3IERhdGUoKSksICdjYWxlbmRhckRhdGUnKSk7XG4gICAgbGV0IF92YWx1ZSA9IG5ldyBEYXRlKHRyeURhdGUodmFsdWUgPz8gdGhpcy5zdGFydERhdGUsICdjYWxlbmRhckRhdGUnKSk7XG4gICAgLy8gaWYgKCFpc0RhdGVCZXR3ZWVuTWluTWF4KF92YWx1ZSwgdGhpcy5taW5EYXRlLCB0aGlzLm1heERhdGUpKSB7XG4gICAgLy8gICAvLyBfdmFsdWUgPSBfdmFsdWUgPCAodGhpcy5taW5EYXRlID8/IDApID8gdGhpcy5taW5EYXRlID8/IHRoaXMubWF4RGF0ZSA/PyBfdmFsdWUgOiB0aGlzLm1heERhdGUgPz8gdGhpcy5taW5EYXRlID8/IF92YWx1ZTtcbiAgICAvLyAgIC8vIHJldHVybjtcbiAgICAvLyAgIF92YWx1ZSA9IHRoaXMuX2NhbGVuZGFyRGF0ZTtcbiAgICAvLyB9XG4gICAgaWYgKCEhX3ZhbHVlICYmIHRoaXMuX2NhbGVuZGFyRGF0ZS5nZXRUaW1lKCkgIT09IF92YWx1ZS5nZXRUaW1lKCkpIHtcbiAgICAgIGNvbnN0IF9jYWxlbmRhckRhdGUgPSBuZXcgRGF0ZShuZXcgRGF0ZShfdmFsdWUuc2V0RGF0ZSgxKSkuc2V0SG91cnMoMCwgMCwgMCwgMCkpO1xuICAgICAgdGhpcy5fY2FsZW5kYXJEYXRlID0gX2NhbGVuZGFyRGF0ZTtcbiAgICAgIHRoaXMuY2FsZW5kYXJEYXRlQ2hhbmdlLmVtaXQoX2NhbGVuZGFyRGF0ZSk7XG4gICAgICB0aGlzLmNhbGVuZGFyU2VydmljZS51cGRhdGUoeyBjYWxlbmRhckRhdGU6IF9jYWxlbmRhckRhdGUgfSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IGNhbGVuZGFyRGF0ZSgpOiBEYXRlIHtcbiAgICByZXR1cm4gdGhpcy5fY2FsZW5kYXJEYXRlO1xuICB9XG5cbiAgcHJpdmF0ZSBfY2FsZW5kYXJEYXRlOiBEYXRlID0gdHJ5RGF0ZShuZXcgRGF0ZSgpKTtcblxuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBjYWxlbmRhcnMgdGhhdCByZW5kZXIgb24gZGVza3RvcCBkZXZpY2VzLlxuICAgKiBAdHlwZSBudW1iZXJcbiAgICogZGVmYXVsdCAxXG4gICAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KVxuICBzZXQgY2FsZW5kYXJzKHZhbHVlOiBudW1iZXIpIHtcbiAgICB0aGlzLl9jYWxlbmRhcnMgPSB2YWx1ZTtcbiAgfVxuXG4gIGdldCBjYWxlbmRhcnMoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fY2FsZW5kYXJzO1xuICB9XG5cbiAgcHJpdmF0ZSBfY2FsZW5kYXJzOiBudW1iZXIgPSAxO1xuXG4gIGdldCBjYWxlbmRhcnNBcnJheSgpIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh7IGxlbmd0aDogdGhpcy5jYWxlbmRhcnMgfSwgKHYsIGkpID0+IGkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgZm9ybWF0IG9mIGRheSBuYW1lLlxuICAgKiBAZGVmYXVsdCAnbnVtZXJpYydcbiAgICogQHR5cGUgRGF5Rm9ybWF0VHlwZVxuICAgKi9cbiAgQElucHV0KClcbiAgc2V0IGRheUZvcm1hdCh2YWx1ZTogRGF5Rm9ybWF0VHlwZSkge1xuICAgIHRoaXMuX2RheUZvcm1hdCA9IHZhbHVlO1xuICAgIHRoaXMuY2FsZW5kYXJTZXJ2aWNlLnVwZGF0ZSh7IGRheUZvcm1hdDogdGhpcy5fZGF5Rm9ybWF0IH0pO1xuICB9XG5cbiAgZ2V0IGRheUZvcm1hdCgpIHtcbiAgICByZXR1cm4gdGhpcy5fZGF5Rm9ybWF0O1xuICB9XG5cbiAgcHJpdmF0ZSBfZGF5Rm9ybWF0OiBEYXlGb3JtYXRUeXBlID0gJ251bWVyaWMnO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZ5IHRoZSBsaXN0IG9mIGRhdGVzIHRoYXQgY2Fubm90IGJlIHNlbGVjdGVkLlxuICAgKiBAdHlwZSAgRGF0ZVtdIHwgRGF0ZVtdW11cbiAgICovXG4gIEBJbnB1dCgpXG4gIHNldCBkaXNhYmxlZERhdGVzKHZhbHVlOiBEYXRlW10gfCBEYXRlW11bXSkge1xuICAgIHRoaXMuX2Rpc2FibGVkRGF0ZXMgPSB2YWx1ZTtcbiAgICB0aGlzLmNhbGVuZGFyU2VydmljZS51cGRhdGUoeyBkaXNhYmxlZERhdGVzOiB0aGlzLl9kaXNhYmxlZERhdGVzIH0pO1xuICB9XG5cbiAgZ2V0IGRpc2FibGVkRGF0ZXMoKTogRGF0ZVtdIHwgRGF0ZVtdW10ge1xuICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZERhdGVzO1xuICB9XG5cbiAgcHJpdmF0ZSBfZGlzYWJsZWREYXRlczogRGF0ZVtdIHwgRGF0ZVtdW10gPSBbXTtcblxuICAvKipcbiAgICogSW5pdGlhbCBzZWxlY3RlZCBkYXRlLlxuICAgKiBAdHlwZSAgKERhdGUgfCBudWxsKVxuICAgKi9cbiAgQElucHV0KClcbiAgc2V0IHN0YXJ0RGF0ZSh2YWx1ZTogRGF0ZSB8IG51bWJlciB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQpIHtcbiAgICBjb25zdCBkYXRlID0gISF2YWx1ZSA/IHRyeURhdGUodmFsdWUsICdzdGFydERhdGUnKSA6IG51bGw7XG4gICAgaWYgKHRoaXMuX3N0YXJ0RGF0ZT8uZ2V0VGltZSgpICE9PSBkYXRlPy5nZXRUaW1lKCkpIHtcbiAgICAgIHRoaXMuX3N0YXJ0RGF0ZSA9IGRhdGU7XG4gICAgICB0aGlzLmNhbGVuZGFyU2VydmljZS51cGRhdGUoeyBzdGFydERhdGU6IHRoaXMuX3N0YXJ0RGF0ZSB9KTtcbiAgICAgIGlmICghdGhpcy5yYW5nZSB8fCAhdGhpcy5fc3RhcnREYXRlIHx8ICh0aGlzLmVuZERhdGUgJiYgdGhpcy5fc3RhcnREYXRlID4gdGhpcy5lbmREYXRlKSkge1xuICAgICAgICB0aGlzLmVuZERhdGUgPSBudWxsO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGdldCBzdGFydERhdGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3N0YXJ0RGF0ZTtcbiAgfVxuXG4gIF9zdGFydERhdGU6IERhdGUgfCBudWxsID0gbnVsbDtcblxuICAvKipcbiAgICogSW5pdGlhbCBzZWxlY3RlZCB0byBkYXRlIChyYW5nZSkuXG4gICAqIEB0eXBlIERhdGUgfCBudWxsXG4gICAqL1xuICBASW5wdXQoKVxuICBzZXQgZW5kRGF0ZSh2YWx1ZTogRGF0ZSB8IG51bWJlciB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQpIHtcbiAgICBjb25zdCBkYXRlID0gISF2YWx1ZSA/IHRyeURhdGUodmFsdWUsICdlbmREYXRlJykgOiBudWxsO1xuICAgIGlmICh0aGlzLl9lbmREYXRlPy5nZXRUaW1lKCkgIT09IGRhdGU/LmdldFRpbWUoKSkge1xuICAgICAgdGhpcy5fZW5kRGF0ZSA9IGRhdGU7XG4gICAgICAvLyB0aGlzLl9lbmREYXRlID0gdGhpcy5yYW5nZSA/IHRoaXMuX2VuZERhdGUgOiBudWxsO1xuICAgICAgdGhpcy5jYWxlbmRhclNlcnZpY2UudXBkYXRlKHsgZW5kRGF0ZTogdGhpcy5fZW5kRGF0ZSB9KTtcbiAgICB9XG4gIH1cblxuICBnZXQgZW5kRGF0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5yYW5nZSA/IHRoaXMuX2VuZERhdGUgOiBudWxsO1xuICB9XG5cbiAgX2VuZERhdGU6IERhdGUgfCBudWxsID0gbnVsbDtcblxuICAvKipcbiAgICogU2V0cyB0aGUgZGF5IG9mIHN0YXJ0IHdlZWsuXG4gICAqIC0gMCAtIFN1bmRheSxcbiAgICogLSAxIC0gTW9uZGF5LFxuICAgKiAtIDIgLSBUdWVzZGF5LFxuICAgKiAtIDMgLSBXZWRuZXNkYXksXG4gICAqIC0gNCAtIFRodXJzZGF5LFxuICAgKiAtIDUgLSBGcmlkYXksXG4gICAqIC0gNiAtIFNhdHVyZGF5LFxuICAgKlxuICAgKiBAdHlwZSBudW1iZXJcbiAgICogQGRlZmF1bHQgMVxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSlcbiAgc2V0IGZpcnN0RGF5T2ZXZWVrKHZhbHVlOiBudW1iZXIpIHtcbiAgICB0aGlzLl9maXJzdERheU9mV2VlayA9IHZhbHVlO1xuICB9XG5cbiAgZ2V0IGZpcnN0RGF5T2ZXZWVrKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX2ZpcnN0RGF5T2ZXZWVrO1xuICB9XG5cbiAgcHJpdmF0ZSBfZmlyc3REYXlPZldlZWs6IG51bWJlciA9IDE7XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGRlZmF1bHQgbG9jYWxlIGZvciBjb21wb25lbnRzLiBJZiBub3Qgc2V0LCBpdCBpcyBpbmhlcml0ZWQgZnJvbSB0aGUgYnJvd3Nlci5cbiAgICogQGRlZmF1bHQgJ2RlZmF1bHQnXG4gICAqL1xuICBASW5wdXQoKVxuICBzZXQgbG9jYWxlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9sb2NhbGUgPSB2YWx1ZTtcbiAgICB0aGlzLmNhbGVuZGFyU2VydmljZS51cGRhdGUoeyBsb2NhbGU6IHZhbHVlIH0pO1xuICB9XG5cbiAgZ2V0IGxvY2FsZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fbG9jYWxlO1xuICB9XG5cbiAgcHJpdmF0ZSBfbG9jYWxlOiBzdHJpbmcgPSAnZGVmYXVsdCc7XG5cbiAgLyoqXG4gICAqIE1heCBzZWxlY3RhYmxlIGRhdGUuXG4gICAqL1xuICBASW5wdXQoKVxuICBzZXQgbWF4RGF0ZSh2YWx1ZTogRGF0ZSB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9tYXhEYXRlID0gISF2YWx1ZSA/IHRyeURhdGUodmFsdWUsICdtYXhEYXRlJykgOiBudWxsO1xuICAgIHRoaXMuY2FsZW5kYXJTZXJ2aWNlLnVwZGF0ZSh7IG1heERhdGU6IHRoaXMuX21heERhdGUgfSk7XG4gIH1cblxuICBnZXQgbWF4RGF0ZSgpOiBEYXRlIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX21heERhdGU7XG4gIH1cblxuICBwcml2YXRlIF9tYXhEYXRlOiBEYXRlIHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqXG4gICAqIE1pbiBzZWxlY3RhYmxlIGRhdGUuXG4gICAqL1xuICBASW5wdXQoKVxuICBzZXQgbWluRGF0ZSh2YWx1ZTogRGF0ZSB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9taW5EYXRlID0gdmFsdWUgPyB0cnlEYXRlKHZhbHVlLCAnbWluRGF0ZScpIDogbnVsbDtcbiAgICB0aGlzLmNhbGVuZGFyU2VydmljZS51cGRhdGUoeyBtaW5EYXRlOiB0aGlzLl9taW5EYXRlIH0pO1xuICB9XG5cbiAgZ2V0IG1pbkRhdGUoKTogRGF0ZSB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl9taW5EYXRlO1xuICB9XG5cbiAgcHJpdmF0ZSBfbWluRGF0ZTogRGF0ZSB8IG51bGwgPSBudWxsO1xuXG4gIC8qKlxuICAgKiBTaG93IG5hdmlnYXRpb24uXG4gICAqIEB0eXBlIGJvb2xlYW5cbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICBzZXQgbmF2aWdhdGlvbih2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX25hdmlnYXRpb24gPSB2YWx1ZTtcbiAgfVxuXG4gIGdldCBuYXZpZ2F0aW9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9uYXZpZ2F0aW9uO1xuICB9XG5cbiAgcHJpdmF0ZSBfbmF2aWdhdGlvbjogYm9vbGVhbiA9IHRydWU7XG5cbiAgLyoqXG4gICAqIFJlb3JkZXIgeWVhci1tb250aCBuYXZpZ2F0aW9uLCBhbmQgcmVuZGVyIHllYXIgZmlyc3QuXG4gICAqIEB0eXBlIGJvb2xlYW5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICBzZXQgbmF2WWVhckZpcnN0KHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fbmF2WWVhckZpcnN0ID0gdmFsdWU7XG4gICAgdGhpcy5jYWxlbmRhclNlcnZpY2UudXBkYXRlKHsgbmF2WWVhckZpcnN0OiB0aGlzLl9uYXZZZWFyRmlyc3QgfSk7XG4gIH1cblxuICBnZXQgbmF2WWVhckZpcnN0KCkge1xuICAgIHJldHVybiB0aGlzLl9uYXZZZWFyRmlyc3Q7XG4gIH1cblxuICBwcml2YXRlIF9uYXZZZWFyRmlyc3Q6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogQWxsb3cgcmFuZ2Ugc2VsZWN0aW9uLlxuICAgKiBAdHlwZSBib29sZWFuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgc2V0IHJhbmdlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fcmFuZ2UgPSB2YWx1ZTtcbiAgICB0aGlzLmNhbGVuZGFyU2VydmljZS51cGRhdGUoeyByYW5nZTogdGhpcy5fcmFuZ2UgfSk7XG4gIH1cblxuICBnZXQgcmFuZ2UoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3JhbmdlO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmFuZ2U6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogU2V0IGNhbGVuZGFyIHZpZXcuXG4gICAqIEB0eXBlICdkYXlzJyB8ICdtb250aHMnIHwgJ3llYXJzJ1xuICAgKiBAZGVmYXVsdCAnZGF5cydcbiAgICovXG4gIEBJbnB1dCgpXG4gIHNldCB2aWV3KHZhbHVlKSB7XG4gICAgLy8gaWYgKCFbJ2RheXMnLCAnd2Vla3MnXS5pbmNsdWRlcyh0aGlzLnNlbGVjdGlvblR5cGUpKSB7XG4gICAgLy8gICB2YWx1ZSA9IHRoaXMuc2VsZWN0aW9uVHlwZSA9PT0gJ21vbnRoJyA/ICdtb250aHMnIDogJ3llYXJzJztcbiAgICAvLyB9XG4gICAgdGhpcy5fdmlldyA9IHZhbHVlO1xuICAgIHRoaXMuY2FsZW5kYXJTZXJ2aWNlLnVwZGF0ZSh7IHZpZXc6IHZhbHVlIH0pO1xuICB9XG5cbiAgZ2V0IHZpZXcoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3ZpZXc7XG4gIH1cblxuICBwcml2YXRlIF92aWV3OiAnZGF5cycgfCAnbW9udGhzJyB8ICd5ZWFycycgPSAnZGF5cyc7XG5cbiAgLyoqXG4gICAqIFNldCBsZW5ndGggb3IgZm9ybWF0IG9mIGRheSBuYW1lLlxuICAgKiBAdHlwZSBudW1iZXIgfCAnbG9uZycgfCAnbmFycm93JyB8ICdzaG9ydCdcbiAgICogQGRlZmF1bHQgJ3Nob3J0J1xuICAgKi9cbiAgQElucHV0KClcbiAgc2V0IHdlZWtkYXlGb3JtYXQodmFsdWU6IFdlZWtkYXlGb3JtYXRUeXBlKSB7XG4gICAgdGhpcy5fd2Vla2RheUZvcm1hdCA9IHZhbHVlO1xuICAgIHRoaXMuY2FsZW5kYXJTZXJ2aWNlLnVwZGF0ZSh7IHdlZWtkYXlGb3JtYXQ6IHRoaXMuX3dlZWtkYXlGb3JtYXQgfSk7XG4gIH1cblxuICBnZXQgd2Vla2RheUZvcm1hdCgpIHtcbiAgICByZXR1cm4gdGhpcy5fd2Vla2RheUZvcm1hdDtcbiAgfVxuXG4gIHByaXZhdGUgX3dlZWtkYXlGb3JtYXQ6IFdlZWtkYXlGb3JtYXRUeXBlID0gJ3Nob3J0JztcblxuICBASW5wdXQoKVxuICBzZXQgZGF0ZUZpbHRlcih2YWx1ZTogRGF0ZUZpbHRlclR5cGUgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLmNhbGVuZGFyU2VydmljZS51cGRhdGUoeyBkYXRlRmlsdGVyOiB2YWx1ZSB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgd2hldGhlciBkYXlzIGluIGFkamFjZW50IG1vbnRocyBzaG93biBiZWZvcmUgb3IgYWZ0ZXIgdGhlIGN1cnJlbnQgbW9udGggYXJlIHNlbGVjdGFibGUuIFRoaXMgb25seSBhcHBsaWVzIGlmIHRoZSBgc2hvd0FkamFjZW50RGF5c2Agb3B0aW9uIGlzIHNldCB0byB0cnVlLlxuICAgKiBAdHlwZSBib29sZWFuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqIEBzaW5jZSA0LjQuMTBcbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICBzZXQgc2VsZWN0QWRqYWNlbnREYXlzKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5jYWxlbmRhclNlcnZpY2UudXBkYXRlKHsgc2VsZWN0QWRqYWNlbnREYXlzOiB2YWx1ZSB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgd2hldGhlciB0byBkaXNwbGF5IGRhdGVzIGluIGFkamFjZW50IG1vbnRocyAobm9uLXNlbGVjdGFibGUpIGF0IHRoZSBzdGFydCBhbmQgZW5kIG9mIHRoZSBjdXJyZW50IG1vbnRoLlxuICAgKiBAdHlwZSBib29sZWFuXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICogQHNpbmNlIDQuNC4xMFxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gIHNldCBzaG93QWRqYWNlbnREYXlzKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5jYWxlbmRhclNlcnZpY2UudXBkYXRlKHsgc2hvd0FkamFjZW50RGF5czogdmFsdWUgPz8gdHJ1ZSB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTcGVjaWZ5IHRoZSB0eXBlIG9mIGRhdGUgc2VsZWN0aW9uIGFzIGRheSwgd2VlaywgbW9udGgsIG9yIHllYXIuXG4gICAqIEB0eXBlICdkYXknIHwgJ3dlZWsnIHwgJ21vbnRoJyB8ICd5ZWFyJ1xuICAgKiBAZGVmYXVsdCAnZGF5J1xuICAgKiBAc2luY2UgNS4wLjBcbiAgICovXG4gIEBJbnB1dCgpXG4gIHNldCBzZWxlY3Rpb25UeXBlKHZhbHVlOiBTZWxlY3Rpb25UeXBlKSB7XG4gICAgdGhpcy5jYWxlbmRhcnMgPSBbJ21vbnRoJywgJ3llYXInXS5pbmNsdWRlcyh2YWx1ZSkgPyAxIDogdGhpcy5jYWxlbmRhcnM7XG4gICAgdGhpcy4jc2VsZWN0aW9uVHlwZSA9IHZhbHVlO1xuICAgIHRoaXMudmlldyA9IFsnZGF5JywgJ3dlZWsnXS5pbmNsdWRlcyh2YWx1ZSkgPyAnZGF5cycgOiB2YWx1ZSA9PT0gJ21vbnRoJyA/ICdtb250aHMnIDogJ3llYXJzJztcbiAgICB0aGlzLmNhbGVuZGFyU2VydmljZS51cGRhdGUoeyBzZWxlY3Rpb25UeXBlOiB2YWx1ZSwgdmlldzogdGhpcy52aWV3IH0pO1xuICB9XG5cbiAgZ2V0IHNlbGVjdGlvblR5cGUoKTogU2VsZWN0aW9uVHlwZSB7XG4gICAgcmV0dXJuIHRoaXMuI3NlbGVjdGlvblR5cGU7XG4gIH1cblxuICAvLyAjc2VsZWN0aW9uVHlwZSA9IHNpZ25hbDxTZWxlY3Rpb25UeXBlPignbW9udGgnKTtcbiAgI3NlbGVjdGlvblR5cGUgPSAnZGF5JyBhcyBTZWxlY3Rpb25UeXBlO1xuXG4gIC8qKlxuICAgKiBTZXQgd2hldGhlciB0byBkaXNwbGF5IHdlZWsgbnVtYmVycyBpbiB0aGUgY2FsZW5kYXIuXG4gICAqIEB0eXBlIGJvb2xlYW5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICogQHNpbmNlIDUuMC4wXG4gICAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgc2V0IHNob3dXZWVrTnVtYmVyKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy4jc2hvd1dlZWtOdW1iZXIuc2V0KHZhbHVlKTtcbiAgICB0aGlzLmNhbGVuZGFyU2VydmljZS51cGRhdGUoeyBzaG93V2Vla051bWJlcjogdmFsdWUgfSk7XG4gIH1cblxuICAjc2hvd1dlZWtOdW1iZXIgPSBzaWduYWwoZmFsc2UpO1xuXG4gIC8qKlxuICAgKiBMYWJlbCBkaXNwbGF5ZWQgb3ZlciB3ZWVrIG51bWJlcnMgaW4gdGhlIGNhbGVuZGFyLlxuICAgKiBAdHlwZSBzdHJpbmdcbiAgICogQGRlZmF1bHQgdW5kZWZpbmVkXG4gICAqIEBzaW5jZSA1LjAuMFxuICAgKi9cbiAgQElucHV0KCkgc2V0IHdlZWtOdW1iZXJzTGFiZWwodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuY2FsZW5kYXJTZXJ2aWNlLnVwZGF0ZSh7IHdlZWtOdW1iZXJzTGFiZWw6IHZhbHVlIH0pO1xuICB9XG5cbiAgQE91dHB1dCgpIGNhbGVuZGFyQ2VsbEhvdmVyOiBFdmVudEVtaXR0ZXI8RGF0ZSB8IG51bGw+ID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlIHwgbnVsbD4oKTtcbiAgQE91dHB1dCgpIGNhbGVuZGFyRGF0ZUNoYW5nZTogRXZlbnRFbWl0dGVyPERhdGU+ID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlPigpO1xuICBAT3V0cHV0KCkgZW5kRGF0ZUNoYW5nZTogRXZlbnRFbWl0dGVyPERhdGUgfCBudWxsPiA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZSB8IG51bGw+KCk7XG4gIEBPdXRwdXQoKSBzdGFydERhdGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxEYXRlIHwgbnVsbD4gPSBuZXcgRXZlbnRFbWl0dGVyPERhdGUgfCBudWxsPigpO1xuICBAT3V0cHV0KCkgdmlld0NoYW5nZTogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICAvLyB1c2VkIHdpdGggY2FsZW5kYXJTZXJ2aWNlXG4gIHNldCBob3ZlckRhdGUodmFsdWU6IERhdGUgfCBudWxsKSB7XG4gICAgdGhpcy5faG92ZXJEYXRlID0gdmFsdWU7XG4gICAgdGhpcy5jYWxlbmRhckNlbGxIb3Zlci5lbWl0KHZhbHVlKTtcbiAgfVxuXG4gIGdldCBob3ZlckRhdGUoKTogRGF0ZSB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl9ob3ZlckRhdGU7XG4gIH1cblxuICBwcml2YXRlIF9ob3ZlckRhdGU6IERhdGUgfCBudWxsID0gbnVsbDtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgZ2V0IGhvc3RDbGFzc2VzKCk6IGFueSB7XG4gICAgY29uc3Qgc2VsZWN0aW9uVHlwZSA9IHRoaXMuI3NlbGVjdGlvblR5cGU7XG4gICAgY29uc3QgdmlldyA9IHRoaXMudmlldztcbiAgICByZXR1cm4ge1xuICAgICAgY2FsZW5kYXJzOiB0cnVlLFxuICAgICAgW2BzZWxlY3QtJHtzZWxlY3Rpb25UeXBlfWBdOiBzZWxlY3Rpb25UeXBlICYmIHZpZXcgPT09ICdkYXlzJyxcbiAgICAgICdzaG93LXdlZWstbnVtYmVycyc6IHRoaXMuI3Nob3dXZWVrTnVtYmVyKClcbiAgICB9O1xuICB9XG5cbiAgQFZpZXdDaGlsZHJlbihDYWxlbmRhck1vbnRoQ29tcG9uZW50KSBjYWxlbmRhck1vbnRocyE6IFF1ZXJ5TGlzdDxDYWxlbmRhck1vbnRoQ29tcG9uZW50PjtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmNhbGVuZGFyU2VydmljZS51cGRhdGUoe1xuICAgICAgbG9jYWxlOiB0aGlzLmxvY2FsZSA/PyAnZGVmYXVsdCcsXG4gICAgICB2aWV3OiB0aGlzLnZpZXcsXG4gICAgICByYW5nZTogdGhpcy5yYW5nZSxcbiAgICAgIHNlbGVjdGlvblR5cGU6IHRoaXMuc2VsZWN0aW9uVHlwZVxuICAgICAgLy8gc2hvd0FkamFjZW50RGF5czogdGhpcy5zaG93QWRqYWNlbnREYXlzLFxuICAgICAgLy8gc2VsZWN0QWRqYWNlbnREYXlzOiB0aGlzLnNlbGVjdEFkamFjZW50RGF5c1xuICAgIH0pO1xuICB9XG5cbiAgY2FsZW5kYXJTdGF0ZVN1YnNjcmliZSgpOiB2b2lkIHtcbiAgICB0aGlzLmNhbGVuZGFyU2VydmljZS5jYWxlbmRhclN0YXRlJC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLiNkZXN0cm95UmVmKSkuc3Vic2NyaWJlKChzdGF0ZSkgPT4ge1xuICAgICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKHN0YXRlKTtcbiAgICAgIGZvciAoY29uc3Qga2V5IG9mIGtleXMpIHtcbiAgICAgICAgaWYgKGtleSBpbiB0aGlzKSB7XG4gICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgIGlmICh0aGlzW2tleV0gIT09IHN0YXRlW2tleV0pIHtcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IHN0YXRlW2tleV07XG4gICAgICAgICAgICBpZiAoa2V5ID09PSAnc3RhcnREYXRlJykge1xuICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXJ0RGF0ZUNoYW5nZS5lbWl0KHRoaXMuX3N0YXJ0RGF0ZSk7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChrZXkgPT09ICdlbmREYXRlJykge1xuICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmVuZERhdGVDaGFuZ2UuZW1pdCh0aGlzLl9lbmREYXRlKTtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBzZXRDYWxlbmRhclBhZ2UoeWVhcnM6IG51bWJlciwgbW9udGhzID0gMCwgc2V0TW9udGg/OiBudW1iZXIpIHtcbiAgICBjb25zdCB5ZWFyID0gdGhpcy5jYWxlbmRhckRhdGUuZ2V0RnVsbFllYXIoKTtcbiAgICBjb25zdCBtb250aCA9IHRoaXMuY2FsZW5kYXJEYXRlLmdldE1vbnRoKCk7XG4gICAgY29uc3QgZCA9IG5ldyBEYXRlKHllYXIsIG1vbnRoLCAxKTtcblxuICAgIHllYXJzICYmIGQuc2V0RnVsbFllYXIoZC5nZXRGdWxsWWVhcigpICsgeWVhcnMpO1xuICAgIG1vbnRocyAmJiBkLnNldE1vbnRoKGQuZ2V0TW9udGgoKSArIG1vbnRocyk7XG4gICAgdHlwZW9mIHNldE1vbnRoID09PSAnbnVtYmVyJyAmJiBkLnNldE1vbnRoKHNldE1vbnRoKTtcblxuICAgIHRoaXMuY2FsZW5kYXJEYXRlID0gZDtcbiAgfVxuXG4gIGhhbmRsZU5hdmlnYXRpb25DbGljayhkaXJlY3Rpb246ICdwcmV2JyB8ICduZXh0JywgeWVhcnMgPSBmYWxzZSkge1xuICAgIGlmIChkaXJlY3Rpb24gPT09ICdwcmV2Jykge1xuICAgICAgaWYgKHllYXJzKSB7XG4gICAgICAgIHRoaXMuc2V0Q2FsZW5kYXJQYWdlKHRoaXMudmlldyA9PT0gJ3llYXJzJyA/IC0xMCA6IC0xKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy52aWV3ICE9PSAnZGF5cycpIHtcbiAgICAgICAgdGhpcy5zZXRDYWxlbmRhclBhZ2UoLTEpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHRoaXMuc2V0Q2FsZW5kYXJQYWdlKDAsIC0xKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKGRpcmVjdGlvbiA9PT0gJ25leHQnKSB7XG4gICAgICBpZiAoeWVhcnMpIHtcbiAgICAgICAgdGhpcy5zZXRDYWxlbmRhclBhZ2UodGhpcy52aWV3ID09PSAneWVhcnMnID8gMTAgOiAxKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy52aWV3ICE9PSAnZGF5cycpIHtcbiAgICAgICAgdGhpcy5zZXRDYWxlbmRhclBhZ2UoMSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgdGhpcy5zZXRDYWxlbmRhclBhZ2UoMCwgMSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENsZWFyIHN0YXJ0RGF0ZSBhbmQgZW5kRGF0ZVxuICAgKiBAdHlwZSB2b2lkXG4gICAqL1xuICBwdWJsaWMgY2xlYXJEYXRlcygpIHtcbiAgICB0aGlzLmNhbGVuZGFyU2VydmljZS51cGRhdGUoeyBlbmREYXRlOiBudWxsIH0pO1xuICAgIHRoaXMuY2FsZW5kYXJTZXJ2aWNlLnVwZGF0ZSh7IHN0YXJ0RGF0ZTogbnVsbCB9KTtcbiAgfVxuXG4gIGhhbmRsZUZvY3VzQ2hhbmdlKCRldmVudDogRm9jdXNPcmlnaW4pIHtcbiAgICBpZiAoJGV2ZW50ID09PSBudWxsKSB7XG4gICAgICB0aGlzLmNhbGVuZGFyU2VydmljZS51cGRhdGUoeyBob3ZlckRhdGU6IG51bGwgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGdldENhbGVuZGFyRGF0ZSA9IGdldENhbGVuZGFyRGF0ZTtcbn1cbiIsIkBmb3IgKGNhbGVuZGFyIG9mIGNhbGVuZGFyc0FycmF5OyB0cmFjayBjYWxlbmRhcjsgbGV0IGkgPSAkaW5kZXgpIHtcbiAgPGRpdiBbbmdDbGFzc109XCJ2aWV3IHwgY2FsZW5kYXJDbGFzc1ZpZXdcIj5cbiAgICA8Yy1jYWxlbmRhci1uYXZpZ2F0aW9uXG4gICAgICAobmF2aWdhdGlvbkNsaWNrKT1cImhhbmRsZU5hdmlnYXRpb25DbGljaygkZXZlbnQuZGlyZWN0aW9uLCAkZXZlbnQueWVhcnMpXCJcbiAgICAgIFthZGRNb250aHNdPVwiaVwiXG4gICAgICBbbmF2aWdhdGlvbl09XCJuYXZpZ2F0aW9uXCJcbiAgICAvPlxuXG4gICAgPGMtY2FsZW5kYXItbW9udGhcbiAgICAgIFthZGRNb250aHNdPVwiaVwiXG4gICAgICBbZmlyc3REYXlPZldlZWtdPVwiZmlyc3REYXlPZldlZWtcIlxuICAgICAgW3dlZWtkYXlGb3JtYXRdPVwid2Vla2RheUZvcm1hdFwiXG4gICAgICBjZGtNb25pdG9yU3VidHJlZUZvY3VzXG4gICAgICAoY2RrRm9jdXNDaGFuZ2UpPVwiaGFuZGxlRm9jdXNDaGFuZ2UoJGV2ZW50KVwiXG4gICAgLz5cbiAgPC9kaXY+XG59XG4iXX0=
478
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi9jYWxlbmRhci9jYWxlbmRhci9jYWxlbmRhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JldWktYW5ndWxhci9zcmMvbGliL2NhbGVuZGFyL2NhbGVuZGFyL2NhbGVuZGFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osV0FBVyxFQUNYLE1BQU0sRUFDTixLQUFLLEVBQ0wsZUFBZSxFQUVmLE1BQU0sRUFFTixNQUFNLEVBQ04sWUFBWSxFQUNiLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQUUsVUFBVSxFQUFlLE1BQU0sbUJBQW1CLENBQUM7QUFFNUQsT0FBTyxFQUFFLGVBQWUsRUFBbUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2SCxPQUFPLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzdELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQ25HLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7O0FBV25FLE1BQU0sT0FBTyxpQkFBaUI7SUFDNUIsV0FBVyxDQUFzQjtJQUVqQyxZQUFvQixlQUFnQztRQUFoQyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFGcEQsZ0JBQVcsR0FBRyxNQUFNLENB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QUUsZ0JBQWdCLEVBQUU7Z0JBY3pCLGdCQUFnQjtzQkFBNUIsS0FBSztnQkFJSSxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBQ0csa0JBQWtCO3NCQUEzQixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csZUFBZTtzQkFBeEIsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNO2dCQWVILFdBQVc7c0JBRGQsV0FBVzt1QkFBQyxPQUFPO2dCQVdrQixjQUFjO3NCQUFuRCxZQUFZO3VCQUFDLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGJvb2xlYW5BdHRyaWJ1dGUsXG4gIENvbXBvbmVudCxcbiAgRGVzdHJveVJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0QmluZGluZyxcbiAgaW5qZWN0LFxuICBJbnB1dCxcbiAgbnVtYmVyQXR0cmlidXRlLFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBzaWduYWwsXG4gIFZpZXdDaGlsZHJlblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IE5nQ2xhc3MgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQTExeU1vZHVsZSwgRm9jdXNPcmlnaW4gfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5cbmltcG9ydCB7IENhbGVuZGFyU2VydmljZSwgRGF0ZUZpbHRlclR5cGUsIERheUZvcm1hdFR5cGUsIFNlbGVjdGlvblR5cGUsIFdlZWtkYXlGb3JtYXRUeXBlIH0gZnJvbSAnLi4vY2FsZW5kYXIuc2VydmljZSc7XG5pbXBvcnQgeyBnZXRDYWxlbmRhckRhdGUsIHRyeURhdGUgfSBmcm9tICcuLi9jYWxlbmRhci51dGlscyc7XG5pbXBvcnQgeyBDYWxlbmRhck1vbnRoQ29tcG9uZW50IH0gZnJvbSAnLi4vY2FsZW5kYXItbW9udGgvY2FsZW5kYXItbW9udGguY29tcG9uZW50JztcbmltcG9ydCB7IENhbGVuZGFyTmF2aWdhdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uL2NhbGVuZGFyLW5hdmlnYXRpb24vY2FsZW5kYXItbmF2aWdhdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FsZW5kYXJDbGFzc1ZpZXdQaXBlIH0gZnJvbSAnLi9jYWxlbmRhci1jbGFzcy12aWV3LnBpcGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjLWNhbGVuZGFyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NhbGVuZGFyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2FsZW5kYXIuY29tcG9uZW50LnNjc3MnXSxcbiAgZXhwb3J0QXM6ICdjQ2FsZW5kYXInLFxuICBwcm92aWRlcnM6IFtDYWxlbmRhclNlcnZpY2VdLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ2FsZW5kYXJOYXZpZ2F0aW9uQ29tcG9uZW50LCBDYWxlbmRhckNsYXNzVmlld1BpcGUsIENhbGVuZGFyTW9udGhDb21wb25lbnQsIE5nQ2xhc3MsIEExMXlNb2R1bGVdXG59KVxuZXhwb3J0IGNsYXNzIENhbGVuZGFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgI2Rlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjYWxlbmRhclNlcnZpY2U6IENhbGVuZGFyU2VydmljZSkge1xuICAgIHRoaXMuY2FsZW5kYXJTdGF0ZVN1YnNjcmliZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIERlZmF1bHQgZGF0ZSBvZiB0aGUgY29tcG9uZW50XG4gICAqIEB0eXBlICBEYXRlIHwgc3RyaW5nXG4gICAqL1xuICBASW5wdXQoKVxuICBzZXQgY2FsZW5kYXJEYXRlKHZhbHVlOiBEYXRlIHwgc3RyaW5nIHwgbnVtYmVyKSB7XG4gICAgLy8gY29uc3QgX3ZhbHVlID0gbmV3IERhdGUodHJ5RGF0ZSgodmFsdWUgPz8gdGhpcy5zdGFydERhdGUgPz8gbmV3IERhdGUoKSksICdjYWxlbmRhckRhdGUnKSk7XG4gICAgY29uc3QgX3ZhbHVlID0gbmV3IERhdGUodHJ5RGF0ZSh2YWx1ZSA/PyB0aGlzLnN0YXJ0RGF0ZSwgJ2NhbGVuZGFyRGF0ZScpKTtcbiAgICAvLyBpZiAoIWlzRGF0ZUJldHdlZW5NaW5NYXgoX3ZhbHVlLCB0aGlzLm1pbkRhdGUsIHRoaXMubWF4RGF0ZSkpIHtcbiAgICAvLyAgIC8vIF92YWx1ZSA9IF92YWx1ZSA8ICh0aGlzLm1pbkRhdGUgPz8gMCkgPyB0aGlzLm1pbkRhdGUgPz8gdGhpcy5tYXhEYXRlID8/IF92YWx1ZSA6IHRoaXMubWF4RGF0ZSA/PyB0aGlzLm1pbkRhdGUgPz8gX3ZhbHVlO1xuICAgIC8vICAgLy8gcmV0dXJuO1xuICAgIC8vICAgX3ZhbHVlID0gdGhpcy5fY2FsZW5kYXJEYXRlO1xuICAgIC8vIH1cbiAgICBpZiAoISFfdmFsdWUgJiYgdGhpcy5fY2FsZW5kYXJEYXRlLmdldFRpbWUoKSAhPT0gX3ZhbHVlLmdldFRpbWUoKSkge1xuICAgICAgY29uc3QgX2NhbGVuZGFyRGF0ZSA9IG5ldyBEYXRlKG5ldyBEYXRlKF92YWx1ZS5zZXREYXRlKDEpKS5zZXRIb3VycygwLCAwLCAwLCAwKSk7XG4gICAgICB0aGlzLl9jYWxlbmRhckRhdGUgPSBfY2FsZW5kYXJEYXRlO1xuICAgICAgdGhpcy5jYWxlbmRhckRhdGVDaGFuZ2UuZW1pdChfY2FsZW5kYXJEYXRlKTtcbiAgICAgIHRoaXMuY2FsZW5kYXJTZXJ2aWNlLnVwZGF0ZSh7IGNhbGVuZGFyRGF0ZTogX2NhbGVuZGFyRGF0ZSB9KTtcbiAgICB9XG4gIH1cblxuICBnZXQgY2FsZW5kYXJEYXRlKCk6IERhdGUge1xuICAgIHJldHVybiB0aGlzLl9jYWxlbmRhckRhdGU7XG4gIH1cblxuICBwcml2YXRlIF9jYWxlbmRhckRhdGU6IERhdGUgPSB0cnlEYXRlKG5ldyBEYXRlKCkpO1xuXG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIGNhbGVuZGFycyB0aGF0IHJlbmRlciBvbiBkZXNrdG9wIGRldmljZXMuXG4gICAqIEB0eXBlIG51bWJlclxuICAgKiBkZWZhdWx0IDFcbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pXG4gIHNldCBjYWxlbmRhcnModmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMuX2NhbGVuZGFycyA9IHZhbHVlO1xuICB9XG5cbiAgZ2V0IGNhbGVuZGFycygpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9jYWxlbmRhcnM7XG4gIH1cblxuICBwcml2YXRlIF9jYWxlbmRhcnM6IG51bWJlciA9IDE7XG5cbiAgZ2V0IGNhbGVuZGFyc0FycmF5KCkge1xuICAgIHJldHVybiBBcnJheS5mcm9tKHsgbGVuZ3RoOiB0aGlzLmNhbGVuZGFycyB9LCAodiwgaSkgPT4gaSk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBmb3JtYXQgb2YgZGF5IG5hbWUuXG4gICAqIEBkZWZhdWx0ICdudW1lcmljJ1xuICAgKiBAdHlwZSBEYXlGb3JtYXRUeXBlXG4gICAqL1xuICBASW5wdXQoKVxuICBzZXQgZGF5Rm9ybWF0KHZhbHVlOiBEYXlGb3JtYXRUeXBlKSB7XG4gICAgdGhpcy5fZGF5Rm9ybWF0ID0gdmFsdWU7XG4gICAgdGhpcy5jYWxlbmRhclNlcnZpY2UudXBkYXRlKHsgZGF5Rm9ybWF0OiB0aGlzLl9kYXlGb3JtYXQgfSk7XG4gIH1cblxuICBnZXQgZGF5Rm9ybWF0KCkge1xuICAgIHJldHVybiB0aGlzLl9kYXlGb3JtYXQ7XG4gIH1cblxuICBwcml2YXRlIF9kYXlGb3JtYXQ6IERheUZvcm1hdFR5cGUgPSAnbnVtZXJpYyc7XG5cbiAgLyoqXG4gICAqIFNwZWNpZnkgdGhlIGxpc3Qgb2YgZGF0ZXMgdGhhdCBjYW5ub3QgYmUgc2VsZWN0ZWQuXG4gICAqIEB0eXBlICBEYXRlW10gfCBEYXRlW11bXVxuICAgKi9cbiAgQElucHV0KClcbiAgc2V0IGRpc2FibGVkRGF0ZXModmFsdWU6IERhdGVbXSB8IERhdGVbXVtdKSB7XG4gICAgdGhpcy5fZGlzYWJsZWREYXRlcyA9IHZhbHVlO1xuICAgIHRoaXMuY2FsZW5kYXJTZXJ2aWNlLnVwZGF0ZSh7IGRpc2FibGVkRGF0ZXM6IHRoaXMuX2Rpc2FibGVkRGF0ZXMgfSk7XG4gIH1cblxuICBnZXQgZGlzYWJsZWREYXRlcygpOiBEYXRlW10gfCBEYXRlW11bXSB7XG4gICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkRGF0ZXM7XG4gIH1cblxuICBwcml2YXRlIF9kaXNhYmxlZERhdGVzOiBEYXRlW10gfCBEYXRlW11bXSA9IFtdO1xuXG4gIC8qKlxuICAgKiBJbml0aWFsIHNlbGVjdGVkIGRhdGUuXG4gICAqIEB0eXBlICAoRGF0ZSB8IG51bGwpXG4gICAqL1xuICBASW5wdXQoKVxuICBzZXQgc3RhcnREYXRlKHZhbHVlOiBEYXRlIHwgbnVtYmVyIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCkge1xuICAgIGNvbnN0IGRhdGUgPSAhIXZhbHVlID8gdHJ5RGF0ZSh2YWx1ZSwgJ3N0YXJ0RGF0ZScpIDogbnVsbDtcbiAgICBpZiAodGhpcy5fc3RhcnREYXRlPy5nZXRUaW1lKCkgIT09IGRhdGU/LmdldFRpbWUoKSkge1xuICAgICAgdGhpcy5fc3RhcnREYXRlID0gZGF0ZTtcbiAgICAgIHRoaXMuY2FsZW5kYXJTZXJ2aWNlLnVwZGF0ZSh7IHN0YXJ0RGF0ZTogdGhpcy5fc3RhcnREYXRlIH0pO1xuICAgICAgaWYgKCF0aGlzLnJhbmdlIHx8ICF0aGlzLl9zdGFydERhdGUgfHwgKHRoaXMuZW5kRGF0ZSAmJiB0aGlzLl9zdGFydERhdGUgPiB0aGlzLmVuZERhdGUpKSB7XG4gICAgICAgIHRoaXMuZW5kRGF0ZSA9IG51bGw7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZ2V0IHN0YXJ0RGF0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fc3RhcnREYXRlO1xuICB9XG5cbiAgX3N0YXJ0RGF0ZTogRGF0ZSB8IG51bGwgPSBudWxsO1xuXG4gIC8qKlxuICAgKiBJbml0aWFsIHNlbGVjdGVkIHRvIGRhdGUgKHJhbmdlKS5cbiAgICogQHR5cGUgRGF0ZSB8IG51bGxcbiAgICovXG4gIEBJbnB1dCgpXG4gIHNldCBlbmREYXRlKHZhbHVlOiBEYXRlIHwgbnVtYmVyIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCkge1xuICAgIGNvbnN0IGRhdGUgPSAhIXZhbHVlID8gdHJ5RGF0ZSh2YWx1ZSwgJ2VuZERhdGUnKSA6IG51bGw7XG4gICAgaWYgKHRoaXMuX2VuZERhdGU/LmdldFRpbWUoKSAhPT0gZGF0ZT8uZ2V0VGltZSgpKSB7XG4gICAgICB0aGlzLl9lbmREYXRlID0gZGF0ZTtcbiAgICAgIC8vIHRoaXMuX2VuZERhdGUgPSB0aGlzLnJhbmdlID8gdGhpcy5fZW5kRGF0ZSA6IG51bGw7XG4gICAgICB0aGlzLmNhbGVuZGFyU2VydmljZS51cGRhdGUoeyBlbmREYXRlOiB0aGlzLl9lbmREYXRlIH0pO1xuICAgIH1cbiAgfVxuXG4gIGdldCBlbmREYXRlKCkge1xuICAgIHJldHVybiB0aGlzLnJhbmdlID8gdGhpcy5fZW5kRGF0ZSA6IG51bGw7XG4gIH1cblxuICBfZW5kRGF0ZTogRGF0ZSB8IG51bGwgPSBudWxsO1xuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBkYXkgb2Ygc3RhcnQgd2Vlay5cbiAgICogLSAwIC0gU3VuZGF5LFxuICAgKiAtIDEgLSBNb25kYXksXG4gICAqIC0gMiAtIFR1ZXNkYXksXG4gICAqIC0gMyAtIFdlZG5lc2RheSxcbiAgICogLSA0IC0gVGh1cnNkYXksXG4gICAqIC0gNSAtIEZyaWRheSxcbiAgICogLSA2IC0gU2F0dXJkYXksXG4gICAqXG4gICAqIEB0eXBlIG51bWJlclxuICAgKiBAZGVmYXVsdCAxXG4gICAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KVxuICBzZXQgZmlyc3REYXlPZldlZWsodmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMuX2ZpcnN0RGF5T2ZXZWVrID0gdmFsdWU7XG4gIH1cblxuICBnZXQgZmlyc3REYXlPZldlZWsoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fZmlyc3REYXlPZldlZWs7XG4gIH1cblxuICBwcml2YXRlIF9maXJzdERheU9mV2VlazogbnVtYmVyID0gMTtcblxuICAvKipcbiAgICogU2V0cyB0aGUgZGVmYXVsdCBsb2NhbGUgZm9yIGNvbXBvbmVudHMuIElmIG5vdCBzZXQsIGl0IGlzIGluaGVyaXRlZCBmcm9tIHRoZSBicm93c2VyLlxuICAgKiBAZGVmYXVsdCAnZGVmYXVsdCdcbiAgICovXG4gIEBJbnB1dCgpXG4gIHNldCBsb2NhbGUodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX2xvY2FsZSA9IHZhbHVlO1xuICAgIHRoaXMuY2FsZW5kYXJTZXJ2aWNlLnVwZGF0ZSh7IGxvY2FsZTogdmFsdWUgfSk7XG4gIH1cblxuICBnZXQgbG9jYWxlKCkge1xuICAgIHJldHVybiB0aGlzLl9sb2NhbGU7XG4gIH1cblxuICBwcml2YXRlIF9sb2NhbGU6IHN0cmluZyA9ICdkZWZhdWx0JztcblxuICAvKipcbiAgICogTWF4IHNlbGVjdGFibGUgZGF0ZS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHNldCBtYXhEYXRlKHZhbHVlOiBEYXRlIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX21heERhdGUgPSAhIXZhbHVlID8gdHJ5RGF0ZSh2YWx1ZSwgJ21heERhdGUnKSA6IG51bGw7XG4gICAgdGhpcy5jYWxlbmRhclNlcnZpY2UudXBkYXRlKHsgbWF4RGF0ZTogdGhpcy5fbWF4RGF0ZSB9KTtcbiAgfVxuXG4gIGdldCBtYXhEYXRlKCk6IERhdGUgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fbWF4RGF0ZTtcbiAgfVxuXG4gIHByaXZhdGUgX21heERhdGU6IERhdGUgfCBudWxsID0gbnVsbDtcblxuICAvKipcbiAgICogTWluIHNlbGVjdGFibGUgZGF0ZS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHNldCBtaW5EYXRlKHZhbHVlOiBEYXRlIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX21pbkRhdGUgPSB2YWx1ZSA/IHRyeURhdGUodmFsdWUsICdtaW5EYXRlJykgOiBudWxsO1xuICAgIHRoaXMuY2FsZW5kYXJTZXJ2aWNlLnVwZGF0ZSh7IG1pbkRhdGU6IHRoaXMuX21pbkRhdGUgfSk7XG4gIH1cblxuICBnZXQgbWluRGF0ZSgpOiBEYXRlIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX21pbkRhdGU7XG4gIH1cblxuICBwcml2YXRlIF9taW5EYXRlOiBEYXRlIHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqXG4gICAqIFNob3cgbmF2aWdhdGlvbi5cbiAgICogQHR5cGUgYm9vbGVhblxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gIHNldCBuYXZpZ2F0aW9uKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fbmF2aWdhdGlvbiA9IHZhbHVlO1xuICB9XG5cbiAgZ2V0IG5hdmlnYXRpb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX25hdmlnYXRpb247XG4gIH1cblxuICBwcml2YXRlIF9uYXZpZ2F0aW9uOiBib29sZWFuID0gdHJ1ZTtcblxuICAvKipcbiAgICogUmVvcmRlciB5ZWFyLW1vbnRoIG5hdmlnYXRpb24sIGFuZCByZW5kZXIgeWVhciBmaXJzdC5cbiAgICogQHR5cGUgYm9vbGVhblxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gIHNldCBuYXZZZWFyRmlyc3QodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9uYXZZZWFyRmlyc3QgPSB2YWx1ZTtcbiAgICB0aGlzLmNhbGVuZGFyU2VydmljZS51cGRhdGUoeyBuYXZZZWFyRmlyc3Q6IHRoaXMuX25hdlllYXJGaXJzdCB9KTtcbiAgfVxuXG4gIGdldCBuYXZZZWFyRmlyc3QoKSB7XG4gICAgcmV0dXJuIHRoaXMuX25hdlllYXJGaXJzdDtcbiAgfVxuXG4gIHByaXZhdGUgX25hdlllYXJGaXJzdDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBBbGxvdyByYW5nZSBzZWxlY3Rpb24uXG4gICAqIEB0eXBlIGJvb2xlYW5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICBzZXQgcmFuZ2UodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9yYW5nZSA9IHZhbHVlO1xuICAgIHRoaXMuY2FsZW5kYXJTZXJ2aWNlLnVwZGF0ZSh7IHJhbmdlOiB0aGlzLl9yYW5nZSB9KTtcbiAgfVxuXG4gIGdldCByYW5nZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fcmFuZ2U7XG4gIH1cblxuICBwcml2YXRlIF9yYW5nZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBTZXQgY2FsZW5kYXIgdmlldy5cbiAgICogQHR5cGUgJ2RheXMnIHwgJ21vbnRocycgfCAneWVhcnMnXG4gICAqIEBkZWZhdWx0ICdkYXlzJ1xuICAgKi9cbiAgQElucHV0KClcbiAgc2V0IHZpZXcodmFsdWUpIHtcbiAgICAvLyBpZiAoIVsnZGF5cycsICd3ZWVrcyddLmluY2x1ZGVzKHRoaXMuc2VsZWN0aW9uVHlwZSkpIHtcbiAgICAvLyAgIHZhbHVlID0gdGhpcy5zZWxlY3Rpb25UeXBlID09PSAnbW9udGgnID8gJ21vbnRocycgOiAneWVhcnMnO1xuICAgIC8vIH1cbiAgICB0aGlzLl92aWV3ID0gdmFsdWU7XG4gICAgdGhpcy5jYWxlbmRhclNlcnZpY2UudXBkYXRlKHsgdmlldzogdmFsdWUgfSk7XG4gIH1cblxuICBnZXQgdmlldygpIHtcbiAgICByZXR1cm4gdGhpcy5fdmlldztcbiAgfVxuXG4gIHByaXZhdGUgX3ZpZXc6ICdkYXlzJyB8ICdtb250aHMnIHwgJ3llYXJzJyA9ICdkYXlzJztcblxuICAvKipcbiAgICogU2V0IGxlbmd0aCBvciBmb3JtYXQgb2YgZGF5IG5hbWUuXG4gICAqIEB0eXBlIG51bWJlciB8ICdsb25nJyB8ICduYXJyb3cnIHwgJ3Nob3J0J1xuICAgKiBAZGVmYXVsdCAnc2hvcnQnXG4gICAqL1xuICBASW5wdXQoKVxuICBzZXQgd2Vla2RheUZvcm1hdCh2YWx1ZTogV2Vla2RheUZvcm1hdFR5cGUpIHtcbiAgICB0aGlzLl93ZWVrZGF5Rm9ybWF0ID0gdmFsdWU7XG4gICAgdGhpcy5jYWxlbmRhclNlcnZpY2UudXBkYXRlKHsgd2Vla2RheUZvcm1hdDogdGhpcy5fd2Vla2RheUZvcm1hdCB9KTtcbiAgfVxuXG4gIGdldCB3ZWVrZGF5Rm9ybWF0KCkge1xuICAgIHJldHVybiB0aGlzLl93ZWVrZGF5Rm9ybWF0O1xuICB9XG5cbiAgcHJpdmF0ZSBfd2Vla2RheUZvcm1hdDogV2Vla2RheUZvcm1hdFR5cGUgPSAnc2hvcnQnO1xuXG4gIEBJbnB1dCgpXG4gIHNldCBkYXRlRmlsdGVyKHZhbHVlOiBEYXRlRmlsdGVyVHlwZSB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuY2FsZW5kYXJTZXJ2aWNlLnVwZGF0ZSh7IGRhdGVGaWx0ZXI6IHZhbHVlIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB3aGV0aGVyIGRheXMgaW4gYWRqYWNlbnQgbW9udGhzIHNob3duIGJlZm9yZSBvciBhZnRlciB0aGUgY3VycmVudCBtb250aCBhcmUgc2VsZWN0YWJsZS4gVGhpcyBvbmx5IGFwcGxpZXMgaWYgdGhlIGBzaG93QWRqYWNlbnREYXlzYCBvcHRpb24gaXMgc2V0IHRvIHRydWUuXG4gICAqIEB0eXBlIGJvb2xlYW5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICogQHNpbmNlIDQuNC4xMFxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gIHNldCBzZWxlY3RBZGphY2VudERheXModmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmNhbGVuZGFyU2VydmljZS51cGRhdGUoeyBzZWxlY3RBZGphY2VudERheXM6IHZhbHVlIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB3aGV0aGVyIHRvIGRpc3BsYXkgZGF0ZXMgaW4gYWRqYWNlbnQgbW9udGhzIChub24tc2VsZWN0YWJsZSkgYXQgdGhlIHN0YXJ0IGFuZCBlbmQgb2YgdGhlIGN1cnJlbnQgbW9udGguXG4gICAqIEB0eXBlIGJvb2xlYW5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKiBAc2luY2UgNC40LjEwXG4gICAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgc2V0IHNob3dBZGphY2VudERheXModmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmNhbGVuZGFyU2VydmljZS51cGRhdGUoeyBzaG93QWRqYWNlbnREYXlzOiB2YWx1ZSA/PyB0cnVlIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFNwZWNpZnkgdGhlIHR5cGUgb2YgZGF0ZSBzZWxlY3Rpb24gYXMgZGF5LCB3ZWVrLCBtb250aCwgb3IgeWVhci5cbiAgICogQHR5cGUgJ2RheScgfCAnd2VlaycgfCAnbW9udGgnIHwgJ3llYXInXG4gICAqIEBkZWZhdWx0ICdkYXknXG4gICAqIEBzaW5jZSA1LjAuMFxuICAgKi9cbiAgQElucHV0KClcbiAgc2V0IHNlbGVjdGlvblR5cGUodmFsdWU6IFNlbGVjdGlvblR5cGUpIHtcbiAgICB0aGlzLmNhbGVuZGFycyA9IFsnbW9udGgnLCAneWVhciddLmluY2x1ZGVzKHZhbHVlKSA/IDEgOiB0aGlzLmNhbGVuZGFycztcbiAgICB0aGlzLiNzZWxlY3Rpb25UeXBlID0gdmFsdWU7XG4gICAgdGhpcy52aWV3ID0gWydkYXknLCAnd2VlayddLmluY2x1ZGVzKHZhbHVlKSA/ICdkYXlzJyA6IHZhbHVlID09PSAnbW9udGgnID8gJ21vbnRocycgOiAneWVhcnMnO1xuICAgIHRoaXMuY2FsZW5kYXJTZXJ2aWNlLnVwZGF0ZSh7IHNlbGVjdGlvblR5cGU6IHZhbHVlLCB2aWV3OiB0aGlzLnZpZXcgfSk7XG4gIH1cblxuICBnZXQgc2VsZWN0aW9uVHlwZSgpOiBTZWxlY3Rpb25UeXBlIHtcbiAgICByZXR1cm4gdGhpcy4jc2VsZWN0aW9uVHlwZTtcbiAgfVxuXG4gIC8vICNzZWxlY3Rpb25UeXBlID0gc2lnbmFsPFNlbGVjdGlvblR5cGU+KCdtb250aCcpO1xuICAjc2VsZWN0aW9uVHlwZSA9ICdkYXknIGFzIFNlbGVjdGlvblR5cGU7XG5cbiAgLyoqXG4gICAqIFNldCB3aGV0aGVyIHRvIGRpc3BsYXkgd2VlayBudW1iZXJzIGluIHRoZSBjYWxlbmRhci5cbiAgICogQHR5cGUgYm9vbGVhblxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKiBAc2luY2UgNS4wLjBcbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICBzZXQgc2hvd1dlZWtOdW1iZXIodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLiNzaG93V2Vla051bWJlci5zZXQodmFsdWUpO1xuICAgIHRoaXMuY2FsZW5kYXJTZXJ2aWNlLnVwZGF0ZSh7IHNob3dXZWVrTnVtYmVyOiB2YWx1ZSB9KTtcbiAgfVxuXG4gICNzaG93V2Vla051bWJlciA9IHNpZ25hbChmYWxzZSk7XG5cbiAgLyoqXG4gICAqIExhYmVsIGRpc3BsYXllZCBvdmVyIHdlZWsgbnVtYmVycyBpbiB0aGUgY2FsZW5kYXIuXG4gICAqIEB0eXBlIHN0cmluZ1xuICAgKiBAZGVmYXVsdCB1bmRlZmluZWRcbiAgICogQHNpbmNlIDUuMC4wXG4gICAqL1xuICBASW5wdXQoKSBzZXQgd2Vla051bWJlcnNMYWJlbCh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5jYWxlbmRhclNlcnZpY2UudXBkYXRlKHsgd2Vla051bWJlcnNMYWJlbDogdmFsdWUgfSk7XG4gIH1cblxuICBAT3V0cHV0KCkgY2FsZW5kYXJDZWxsSG92ZXI6IEV2ZW50RW1pdHRlcjxEYXRlIHwgbnVsbD4gPSBuZXcgRXZlbnRFbWl0dGVyPERhdGUgfCBudWxsPigpO1xuICBAT3V0cHV0KCkgY2FsZW5kYXJEYXRlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8RGF0ZT4gPSBuZXcgRXZlbnRFbWl0dGVyPERhdGU+KCk7XG4gIEBPdXRwdXQoKSBlbmREYXRlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8RGF0ZSB8IG51bGw+ID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlIHwgbnVsbD4oKTtcbiAgQE91dHB1dCgpIHN0YXJ0RGF0ZUNoYW5nZTogRXZlbnRFbWl0dGVyPERhdGUgfCBudWxsPiA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZSB8IG51bGw+KCk7XG4gIEBPdXRwdXQoKSB2aWV3Q2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIC8vIHVzZWQgd2l0aCBjYWxlbmRhclNlcnZpY2VcbiAgc2V0IGhvdmVyRGF0ZSh2YWx1ZTogRGF0ZSB8IG51bGwpIHtcbiAgICB0aGlzLl9ob3ZlckRhdGUgPSB2YWx1ZTtcbiAgICB0aGlzLmNhbGVuZGFyQ2VsbEhvdmVyLmVtaXQodmFsdWUpO1xuICB9XG5cbiAgZ2V0IGhvdmVyRGF0ZSgpOiBEYXRlIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX2hvdmVyRGF0ZTtcbiAgfVxuXG4gIHByaXZhdGUgX2hvdmVyRGF0ZTogRGF0ZSB8IG51bGwgPSBudWxsO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICBnZXQgaG9zdENsYXNzZXMoKTogYW55IHtcbiAgICBjb25zdCBzZWxlY3Rpb25UeXBlID0gdGhpcy4jc2VsZWN0aW9uVHlwZTtcbiAgICBjb25zdCB2aWV3ID0gdGhpcy52aWV3O1xuICAgIHJldHVybiB7XG4gICAgICBjYWxlbmRhcnM6IHRydWUsXG4gICAgICBbYHNlbGVjdC0ke3NlbGVjdGlvblR5cGV9YF06IHNlbGVjdGlvblR5cGUgJiYgdmlldyA9PT0gJ2RheXMnLFxuICAgICAgJ3Nob3ctd2Vlay1udW1iZXJzJzogdGhpcy4jc2hvd1dlZWtOdW1iZXIoKVxuICAgIH07XG4gIH1cblxuICBAVmlld0NoaWxkcmVuKENhbGVuZGFyTW9udGhDb21wb25lbnQpIGNhbGVuZGFyTW9udGhzITogUXVlcnlMaXN0PENhbGVuZGFyTW9udGhDb21wb25lbnQ+O1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuY2FsZW5kYXJTZXJ2aWNlLnVwZGF0ZSh7XG4gICAgICBsb2NhbGU6IHRoaXMubG9jYWxlID8/ICdkZWZhdWx0JyxcbiAgICAgIHZpZXc6IHRoaXMudmlldyxcbiAgICAgIHJhbmdlOiB0aGlzLnJhbmdlLFxuICAgICAgc2VsZWN0aW9uVHlwZTogdGhpcy5zZWxlY3Rpb25UeXBlXG4gICAgICAvLyBzaG93QWRqYWNlbnREYXlzOiB0aGlzLnNob3dBZGphY2VudERheXMsXG4gICAgICAvLyBzZWxlY3RBZGphY2VudERheXM6IHRoaXMuc2VsZWN0QWRqYWNlbnREYXlzXG4gICAgfSk7XG4gIH1cblxuICBjYWxlbmRhclN0YXRlU3Vic2NyaWJlKCk6IHZvaWQge1xuICAgIHRoaXMuY2FsZW5kYXJTZXJ2aWNlLmNhbGVuZGFyU3RhdGUkLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuI2Rlc3Ryb3lSZWYpKS5zdWJzY3JpYmUoKHN0YXRlKSA9PiB7XG4gICAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMoc3RhdGUpO1xuICAgICAgZm9yIChjb25zdCBrZXkgb2Yga2V5cykge1xuICAgICAgICBpZiAoa2V5IGluIHRoaXMpIHtcbiAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgaWYgKHRoaXNba2V5XSAhPT0gc3RhdGVba2V5XSkge1xuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgdGhpc1trZXldID0gc3RhdGVba2V5XTtcbiAgICAgICAgICAgIGlmIChrZXkgPT09ICdzdGFydERhdGUnKSB7XG4gICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhcnREYXRlQ2hhbmdlLmVtaXQodGhpcy5fc3RhcnREYXRlKTtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGtleSA9PT0gJ2VuZERhdGUnKSB7XG4gICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZW5kRGF0ZUNoYW5nZS5lbWl0KHRoaXMuX2VuZERhdGUpO1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHNldENhbGVuZGFyUGFnZSh5ZWFyczogbnVtYmVyLCBtb250aHMgPSAwLCBzZXRNb250aD86IG51bWJlcikge1xuICAgIGNvbnN0IHllYXIgPSB0aGlzLmNhbGVuZGFyRGF0ZS5nZXRGdWxsWWVhcigpO1xuICAgIGNvbnN0IG1vbnRoID0gdGhpcy5jYWxlbmRhckRhdGUuZ2V0TW9udGgoKTtcbiAgICBjb25zdCBkID0gbmV3IERhdGUoeWVhciwgbW9udGgsIDEpO1xuXG4gICAgeWVhcnMgJiYgZC5zZXRGdWxsWWVhcihkLmdldEZ1bGxZZWFyKCkgKyB5ZWFycyk7XG4gICAgbW9udGhzICYmIGQuc2V0TW9udGgoZC5nZXRNb250aCgpICsgbW9udGhzKTtcbiAgICB0eXBlb2Ygc2V0TW9udGggPT09ICdudW1iZXInICYmIGQuc2V0TW9udGgoc2V0TW9udGgpO1xuXG4gICAgdGhpcy5jYWxlbmRhckRhdGUgPSBkO1xuICB9XG5cbiAgaGFuZGxlTmF2aWdhdGlvbkNsaWNrKGRpcmVjdGlvbjogJ3ByZXYnIHwgJ25leHQnLCB5ZWFycyA9IGZhbHNlKSB7XG4gICAgaWYgKGRpcmVjdGlvbiA9PT0gJ3ByZXYnKSB7XG4gICAgICBpZiAoeWVhcnMpIHtcbiAgICAgICAgdGhpcy5zZXRDYWxlbmRhclBhZ2UodGhpcy52aWV3ID09PSAneWVhcnMnID8gLTEwIDogLTEpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLnZpZXcgIT09ICdkYXlzJykge1xuICAgICAgICB0aGlzLnNldENhbGVuZGFyUGFnZSgtMSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgdGhpcy5zZXRDYWxlbmRhclBhZ2UoMCwgLTEpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoZGlyZWN0aW9uID09PSAnbmV4dCcpIHtcbiAgICAgIGlmICh5ZWFycykge1xuICAgICAgICB0aGlzLnNldENhbGVuZGFyUGFnZSh0aGlzLnZpZXcgPT09ICd5ZWFycycgPyAxMCA6IDEpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLnZpZXcgIT09ICdkYXlzJykge1xuICAgICAgICB0aGlzLnNldENhbGVuZGFyUGFnZSgxKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnNldENhbGVuZGFyUGFnZSgwLCAxKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ2xlYXIgc3RhcnREYXRlIGFuZCBlbmREYXRlXG4gICAqIEB0eXBlIHZvaWRcbiAgICovXG4gIHB1YmxpYyBjbGVhckRhdGVzKCkge1xuICAgIHRoaXMuY2FsZW5kYXJTZXJ2aWNlLnVwZGF0ZSh7IGVuZERhdGU6IG51bGwgfSk7XG4gICAgdGhpcy5jYWxlbmRhclNlcnZpY2UudXBkYXRlKHsgc3RhcnREYXRlOiBudWxsIH0pO1xuICB9XG5cbiAgaGFuZGxlRm9jdXNDaGFuZ2UoJGV2ZW50OiBGb2N1c09yaWdpbikge1xuICAgIGlmICgkZXZlbnQgPT09IG51bGwpIHtcbiAgICAgIHRoaXMuY2FsZW5kYXJTZXJ2aWNlLnVwZGF0ZSh7IGhvdmVyRGF0ZTogbnVsbCB9KTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZ2V0Q2FsZW5kYXJEYXRlID0gZ2V0Q2FsZW5kYXJEYXRlO1xufVxuIiwiQGZvciAoY2FsZW5kYXIgb2YgY2FsZW5kYXJzQXJyYXk7IHRyYWNrIGNhbGVuZGFyOyBsZXQgaSA9ICRpbmRleCkge1xuICA8ZGl2IFtuZ0NsYXNzXT1cInZpZXcgfCBjYWxlbmRhckNsYXNzVmlld1wiPlxuICAgIDxjLWNhbGVuZGFyLW5hdmlnYXRpb25cbiAgICAgIChuYXZpZ2F0aW9uQ2xpY2spPVwiaGFuZGxlTmF2aWdhdGlvbkNsaWNrKCRldmVudC5kaXJlY3Rpb24sICRldmVudC55ZWFycylcIlxuICAgICAgW2FkZE1vbnRoc109XCJpXCJcbiAgICAgIFtuYXZpZ2F0aW9uXT1cIm5hdmlnYXRpb25cIlxuICAgIC8+XG5cbiAgICA8Yy1jYWxlbmRhci1tb250aFxuICAgICAgW2FkZE1vbnRoc109XCJpXCJcbiAgICAgIFtmaXJzdERheU9mV2Vla109XCJmaXJzdERheU9mV2Vla1wiXG4gICAgICBbd2Vla2RheUZvcm1hdF09XCJ3ZWVrZGF5Rm9ybWF0XCJcbiAgICAgIGNka01vbml0b3JTdWJ0cmVlRm9jdXNcbiAgICAgIChjZGtGb2N1c0NoYW5nZSk9XCJoYW5kbGVGb2N1c0NoYW5nZSgkZXZlbnQpXCJcbiAgICAvPlxuICA8L2Rpdj5cbn1cbiJdfQ==
@@ -17,10 +17,10 @@ export class CalendarClassDayPipe {
17
17
  last: isLastDayOfMonth(date)
18
18
  };
19
19
  }
20
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: CalendarClassDayPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
21
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.1.2", ngImport: i0, type: CalendarClassDayPipe, isStandalone: true, name: "calendarClassDay" }); }
20
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: CalendarClassDayPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
21
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.0", ngImport: i0, type: CalendarClassDayPipe, isStandalone: true, name: "calendarClassDay" }); }
22
22
  }
23
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: CalendarClassDayPipe, decorators: [{
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: CalendarClassDayPipe, decorators: [{
24
24
  type: Pipe,
25
25
  args: [{
26
26
  name: 'calendarClassDay',
@@ -10,10 +10,10 @@ export class CalendarClassMonthPipe {
10
10
  today: isThisMonth(date, monthIndex)
11
11
  };
12
12
  }
13
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: CalendarClassMonthPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
14
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.1.2", ngImport: i0, type: CalendarClassMonthPipe, isStandalone: true, name: "calendarClassMonth" }); }
13
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: CalendarClassMonthPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
14
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.0", ngImport: i0, type: CalendarClassMonthPipe, isStandalone: true, name: "calendarClassMonth" }); }
15
15
  }
16
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: CalendarClassMonthPipe, decorators: [{
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: CalendarClassMonthPipe, decorators: [{
17
17
  type: Pipe,
18
18
  args: [{
19
19
  name: 'calendarClassMonth',
@@ -13,10 +13,10 @@ export class CalendarClassRowPipe {
13
13
  disabled: isDisabled
14
14
  };
15
15
  }
16
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: CalendarClassRowPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
17
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.1.2", ngImport: i0, type: CalendarClassRowPipe, isStandalone: true, name: "calendarClassRow" }); }
16
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: CalendarClassRowPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
17
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.0", ngImport: i0, type: CalendarClassRowPipe, isStandalone: true, name: "calendarClassRow" }); }
18
18
  }
19
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: CalendarClassRowPipe, decorators: [{
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: CalendarClassRowPipe, decorators: [{
20
20
  type: Pipe,
21
21
  args: [{
22
22
  name: 'calendarClassRow',
@@ -9,10 +9,10 @@ export class CalendarClassYearPipe {
9
9
  today: isThisYear(year)
10
10
  };
11
11
  }
12
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: CalendarClassYearPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
13
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.1.2", ngImport: i0, type: CalendarClassYearPipe, isStandalone: true, name: "calendarClassYear" }); }
12
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: CalendarClassYearPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
13
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.0", ngImport: i0, type: CalendarClassYearPipe, isStandalone: true, name: "calendarClassYear" }); }
14
14
  }
15
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: CalendarClassYearPipe, decorators: [{
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: CalendarClassYearPipe, decorators: [{
16
16
  type: Pipe,
17
17
  args: [{
18
18
  name: 'calendarClassYear',
@@ -4,10 +4,10 @@ export class CalendarDayTitlePipe {
4
4
  transform(date, locale = 'default') {
5
5
  return date.toLocaleDateString(locale);
6
6
  }
7
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: CalendarDayTitlePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
8
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.1.2", ngImport: i0, type: CalendarDayTitlePipe, isStandalone: true, name: "calendarDayTitle" }); }
7
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: CalendarDayTitlePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
8
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.0", ngImport: i0, type: CalendarDayTitlePipe, isStandalone: true, name: "calendarDayTitle" }); }
9
9
  }
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: CalendarDayTitlePipe, decorators: [{
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: CalendarDayTitlePipe, decorators: [{
11
11
  type: Pipe,
12
12
  args: [{
13
13
  name: 'calendarDayTitle',
@@ -26,23 +26,27 @@ export class CalendarDayDirective {
26
26
  const state = { ...this.#calendarState() };
27
27
  const dateYear = this.date.getFullYear();
28
28
  switch (state.view) {
29
- case 'months':
29
+ case 'months': {
30
30
  const dateMonth = dateYear * 100 + this.date.getMonth();
31
31
  const minDate = state.minDate ? state.minDate.getFullYear() * 100 + state.minDate?.getMonth() : undefined;
32
32
  const maxDate = state.maxDate ? state.maxDate.getFullYear() * 100 + state.maxDate?.getMonth() : undefined;
33
- this.disabled = (minDate ? (dateMonth < minDate) : false) || (maxDate ? (dateMonth > maxDate) : false);
33
+ this.disabled = (minDate ? dateMonth < minDate : false) || (maxDate ? dateMonth > maxDate : false);
34
34
  break;
35
- case 'years':
35
+ }
36
+ case 'years': {
36
37
  const minYear = state.minDate?.getFullYear();
37
38
  const maxYear = state.maxDate?.getFullYear();
38
39
  this.disabled = (minYear ? dateYear < minYear : false) || (maxYear ? dateYear > maxYear : false);
39
40
  break;
41
+ }
40
42
  }
41
43
  return this.disabled;
42
44
  });
43
- this.#calendarService.calendarState$.pipe(tap(state => {
45
+ this.#calendarService.calendarState$
46
+ .pipe(tap((state) => {
44
47
  this.#calendarState.set(state);
45
- }), takeUntilDestroyed(this.#destroyRef)).subscribe();
48
+ }), takeUntilDestroyed(this.#destroyRef))
49
+ .subscribe();
46
50
  }
47
51
  #selectEndDate;
48
52
  get hostClasses() {
@@ -80,11 +84,19 @@ export class CalendarDayDirective {
80
84
  default:
81
85
  selected = state.selectionType === 'day' && !!isDateSelected(this.date, state.startDate, state.endDate);
82
86
  clickable = this.month !== 'current' && !!state.selectAdjacentDays;
83
- rangeHover = state.selectionType === 'day' && this.month === 'current' && this.#selectEndDate() && !!isDateInRange(this.date, state.startDate, state.hoverDate);
84
- inRange = this.month === 'current' && (isDateInRange(this.date, state.startDate, state.endDate) || !!start || !!end);
87
+ rangeHover =
88
+ state.selectionType === 'day' &&
89
+ this.month === 'current' &&
90
+ this.#selectEndDate() &&
91
+ !!isDateInRange(this.date, state.startDate, state.hoverDate);
92
+ inRange =
93
+ this.month === 'current' && (isDateInRange(this.date, state.startDate, state.endDate) || !!start || !!end);
85
94
  disabledRange = isDateInRangeDisabled(state.startDate, this.date, state.disabledDates);
86
95
  disabledDate = isDateDisabled(this.date, state.minDate, state.maxDate, state.disabledDates);
87
- disabledByFilter = (state.dateFilter && Object.prototype.toString.call(state.dateFilter) === '[object Function]' && this.date) ? !state.dateFilter(this.date) : false;
96
+ disabledByFilter =
97
+ state.dateFilter && Object.prototype.toString.call(state.dateFilter) === '[object Function]' && this.date
98
+ ? !state.dateFilter(this.date)
99
+ : false;
88
100
  this.disabled = disabledDate || disabledByFilter;
89
101
  }
90
102
  return {
@@ -103,10 +115,10 @@ export class CalendarDayDirective {
103
115
  getLabel() {
104
116
  return this.date?.toLocaleDateString(this.#calendarState().locale) ?? '';
105
117
  }
106
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: CalendarDayDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
107
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.1.2", type: CalendarDayDirective, isStandalone: true, selector: "[cCalendarDay]", inputs: { date: "date", disabled: ["disabled", "disabled", booleanAttribute], month: "month", calendarDate: "calendarDate" }, host: { properties: { "class": "this.hostClasses" } }, exportAs: ["cCalendarDay"], ngImport: i0 }); }
118
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: CalendarDayDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
119
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.2.0", type: CalendarDayDirective, isStandalone: true, selector: "[cCalendarDay]", inputs: { date: "date", disabled: ["disabled", "disabled", booleanAttribute], month: "month", calendarDate: "calendarDate" }, host: { properties: { "class": "this.hostClasses" } }, exportAs: ["cCalendarDay"], ngImport: i0 }); }
108
120
  }
109
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: CalendarDayDirective, decorators: [{
121
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: CalendarDayDirective, decorators: [{
110
122
  type: Directive,
111
123
  args: [{
112
124
  selector: '[cCalendarDay]',
@@ -126,4 +138,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImpor
126
138
  type: HostBinding,
127
139
  args: ['class']
128
140
  }] } });
129
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItZGF5LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmV1aS1hbmd1bGFyL3NyYy9saWIvY2FsZW5kYXIvY2FsZW5kYXItbW9udGgvY2FsZW5kYXItZGF5LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLFFBQVEsRUFDUixVQUFVLEVBQ1YsU0FBUyxFQUNULFVBQVUsRUFDVixXQUFXLEVBQ1gsTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFtQixZQUFZLEVBQWUsTUFBTSxtQkFBbUIsQ0FBQztBQUMvRSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUNMLGNBQWMsRUFDZCxhQUFhLEVBQ2IscUJBQXFCLEVBQ3JCLGNBQWMsRUFDZCxTQUFTLEVBQ1QsZUFBZSxFQUNmLFdBQVcsRUFDWCxhQUFhLEVBQ2IsY0FBYyxFQUNmLE1BQU0sbUJBQW1CLENBQUM7QUFDM0IsT0FBTyxFQUFFLGVBQWUsRUFBa0IsTUFBTSxxQkFBcUIsQ0FBQzs7QUFPdEUsTUFBTSxPQUFPLG9CQUFvQjtJQUUvQixXQUFXLENBQXNCO0lBQ2pDLGdCQUFnQixDQUEyQjtJQUkzQyxjQUFjLENBQTRFO0lBRTFGO1FBUEEsZ0JBQVcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDakMscUJBQWdCLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQzNDLGVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDaEMsaUJBQVksR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFcEMsbUJBQWMsR0FBRyxNQUFNLENB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QyxLQUFLO1lBQ2QsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHO1lBQ1YsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLFNBQVMsRUFBRSxTQUFTO1NBQ3JCLENBQUM7SUFDSixDQUFDO0lBRUQsS0FBSyxDQUFDLE1BQW9CO1FBQ3hCLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLE1BQU0sSUFBSSxVQUFVLENBQUMsQ0FBQztJQUNsRixDQUFDO0lBRUQsUUFBUTtRQUNOLE9BQU8sSUFBSSxDQUFDLElBQUksRUFBRSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzNFLENBQUM7OEdBcEhVLG9CQUFvQjtrR0FBcEIsb0JBQW9CLDZHQW1CWCxnQkFBZ0I7OzJGQW5CekIsb0JBQW9CO2tCQUxoQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsY0FBYztpQkFDekI7d0RBbUJVLElBQUk7c0JBQVosS0FBSztnQkFDa0MsUUFBUTtzQkFBL0MsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFDN0IsS0FBSztzQkFBYixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBOEJGLFdBQVc7c0JBRGQsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgY29tcHV0ZWQsXG4gIERlc3Ryb3lSZWYsXG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgSG9zdEJpbmRpbmcsXG4gIGluamVjdCxcbiAgSW5wdXQsXG4gIHNpZ25hbFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IEZvY3VzYWJsZU9wdGlvbiwgRm9jdXNNb25pdG9yLCBGb2N1c09yaWdpbiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7XG4gIGlzRGF0ZURpc2FibGVkLFxuICBpc0RhdGVJblJhbmdlLFxuICBpc0RhdGVJblJhbmdlRGlzYWJsZWQsXG4gIGlzRGF0ZVNlbGVjdGVkLFxuICBpc0VuZERhdGUsXG4gIGlzTW9udGhTZWxlY3RlZCxcbiAgaXNTdGFydERhdGUsXG4gIGlzWWVhckluUmFuZ2UsXG4gIGlzWWVhclNlbGVjdGVkXG59IGZyb20gJy4uL2NhbGVuZGFyLnV0aWxzJztcbmltcG9ydCB7IENhbGVuZGFyU2VydmljZSwgSUNhbGVuZGFyU3RhdGUgfSBmcm9tICcuLi9jYWxlbmRhci5zZXJ2aWNlJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2NDYWxlbmRhckRheV0nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBleHBvcnRBczogJ2NDYWxlbmRhckRheSdcbn0pXG5leHBvcnQgY2xhc3MgQ2FsZW5kYXJEYXlEaXJlY3RpdmUgaW1wbGVtZW50cyBGb2N1c2FibGVPcHRpb24ge1xuXG4gICNkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuICAjY2FsZW5kYXJTZXJ2aWNlID0gaW5qZWN0KENhbGVuZGFyU2VydmljZSk7XG4gIGVsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XG4gIGZvY3VzTW9uaXRvciA9IGluamVjdChGb2N1c01vbml0b3IpO1xuXG4gICNjYWxlbmRhclN0YXRlID0gc2lnbmFsPElDYWxlbmRhclN0YXRlPih7IC4uLnRoaXMuI2NhbGVuZGFyU2VydmljZS5jYWxlbmRhclN0YXRlT2JqZWN0IH0pO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuI2NhbGVuZGFyU2VydmljZS5jYWxlbmRhclN0YXRlJC5waXBlKFxuICAgICAgdGFwKHN0YXRlID0+IHtcbiAgICAgICAgdGhpcy4jY2FsZW5kYXJTdGF0ZS5zZXQoc3RhdGUpO1xuICAgICAgfSksXG4gICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy4jZGVzdHJveVJlZilcbiAgICApLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgQElucHV0KCkgZGF0ZSE6IERhdGU7XG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBkaXNhYmxlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBtb250aCA9ICdjdXJyZW50JztcbiAgQElucHV0KCkgY2FsZW5kYXJEYXRlID0gbmV3IERhdGUoKTtcblxuICAjc2VsZWN0RW5kRGF0ZSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBzdGF0ZSA9IHRoaXMuI2NhbGVuZGFyU3RhdGUoKTtcbiAgICByZXR1cm4gPGJvb2xlYW4+KHN0YXRlLnJhbmdlICYmICEhc3RhdGUuc3RhcnREYXRlICYmICFzdGF0ZS5lbmREYXRlKTtcbiAgfSk7XG5cbiAgZGlzYWJsZWQkID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IHN0YXRlID0geyAuLi50aGlzLiNjYWxlbmRhclN0YXRlKCkgfTtcblxuICAgIGNvbnN0IGRhdGVZZWFyID0gdGhpcy5kYXRlLmdldEZ1bGxZZWFyKCk7XG5cbiAgICBzd2l0Y2ggKHN0YXRlLnZpZXcpIHtcbiAgICAgIGNhc2UgJ21vbnRocyc6XG4gICAgICAgIGNvbnN0IGRhdGVNb250aCA9IGRhdGVZZWFyICogMTAwICsgdGhpcy5kYXRlLmdldE1vbnRoKCk7XG4gICAgICAgIGNvbnN0IG1pbkRhdGUgPSBzdGF0ZS5taW5EYXRlID8gc3RhdGUubWluRGF0ZS5nZXRGdWxsWWVhcigpICogMTAwICsgc3RhdGUubWluRGF0ZT8uZ2V0TW9udGgoKSA6IHVuZGVmaW5lZDtcbiAgICAgICAgY29uc3QgbWF4RGF0ZSA9IHN0YXRlLm1heERhdGUgPyBzdGF0ZS5tYXhEYXRlLmdldEZ1bGxZZWFyKCkgKiAxMDAgKyBzdGF0ZS5tYXhEYXRlPy5nZXRNb250aCgpIDogdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLmRpc2FibGVkID0gKG1pbkRhdGUgPyAoZGF0ZU1vbnRoIDwgbWluRGF0ZSkgOiBmYWxzZSkgfHwgKG1heERhdGUgPyAoZGF0ZU1vbnRoID4gbWF4RGF0ZSkgOiBmYWxzZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAneWVhcnMnOlxuICAgICAgICBjb25zdCBtaW5ZZWFyID0gc3RhdGUubWluRGF0ZT8uZ2V0RnVsbFllYXIoKTtcbiAgICAgICAgY29uc3QgbWF4WWVhciA9IHN0YXRlLm1heERhdGU/LmdldEZ1bGxZZWFyKCk7XG4gICAgICAgIHRoaXMuZGlzYWJsZWQgPSAobWluWWVhciA/IGRhdGVZZWFyIDwgbWluWWVhciA6IGZhbHNlKSB8fCAobWF4WWVhciA/IGRhdGVZZWFyID4gbWF4WWVhciA6IGZhbHNlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmRpc2FibGVkO1xuXG4gIH0pO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICBnZXQgaG9zdENsYXNzZXMoKTogYW55IHtcblxuICAgIGlmICghdGhpcy5kYXRlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgc3RhdGUgPSB0aGlzLiNjYWxlbmRhclN0YXRlKCk7XG4gICAgc3RhdGUuc3RhcnREYXRlID0gc3RhdGUuc3RhcnREYXRlID8/IG51bGw7XG4gICAgc3RhdGUuaG92ZXJEYXRlID0gc3RhdGUuaG92ZXJEYXRlID8/IG51bGw7XG4gICAgc3RhdGUuZW5kRGF0ZSA9IHN0YXRlLmVuZERhdGUgPz8gbnVsbDtcblxuICAgIGNvbnN0IHN0YXJ0ID0gaXNTdGFydERhdGUodGhpcy5kYXRlLCBzdGF0ZS5zdGFydERhdGUsIHN0YXRlLmVuZERhdGUpO1xuICAgIGNvbnN0IGVuZCA9IGlzRW5kRGF0ZSh0aGlzLmRhdGUsIHN0YXRlLnN0YXJ0RGF0ZSwgc3RhdGUuZW5kRGF0ZSk7XG5cbiAgICBsZXQgc2VsZWN0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBsZXQgY2xpY2thYmxlOiBib29sZWFuID0gZmFsc2U7XG4gICAgbGV0IHJhbmdlSG92ZXI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBsZXQgaW5SYW5nZTogYm9vbGVhbiA9IGZhbHNlO1xuICAgIGxldCBkaXNhYmxlZFJhbmdlOiBib29sZWFuID0gZmFsc2U7XG4gICAgbGV0IGRpc2FibGVkRGF0ZTogYm9vbGVhbiA9IGZhbHNlO1xuICAgIGxldCBkaXNhYmxlZEJ5RmlsdGVyOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBzd2l0Y2ggKHN0YXRlLnZpZXcpIHtcbiAgICAgIGNhc2UgJ21vbnRocyc6XG4gICAgICAgIGlmIChzdGF0ZS5zZWxlY3Rpb25UeXBlID09PSAnbW9udGgnKSB7XG4gICAgICAgICAgc2VsZWN0ZWQgPSAhIWlzTW9udGhTZWxlY3RlZCh0aGlzLmRhdGUsIHN0YXRlLnN0YXJ0RGF0ZSwgc3RhdGUuZW5kRGF0ZSk7XG4gICAgICAgICAgaW5SYW5nZSA9ICEhaXNEYXRlSW5SYW5nZSh0aGlzLmRhdGUsIHN0YXRlLnN0YXJ0RGF0ZSwgc3RhdGUuZW5kRGF0ZSk7XG4gICAgICAgICAgcmFuZ2VIb3ZlciA9IHRoaXMuI3NlbGVjdEVuZERhdGUoKSAmJiAhIWlzRGF0ZUluUmFuZ2UodGhpcy5kYXRlLCBzdGF0ZS5zdGFydERhdGUsIHN0YXRlLmhvdmVyRGF0ZSk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICd5ZWFycyc6XG4gICAgICAgIGlmIChzdGF0ZS5zZWxlY3Rpb25UeXBlID09PSAneWVhcicpIHtcbiAgICAgICAgICBzZWxlY3RlZCA9ICEhaXNZZWFyU2VsZWN0ZWQodGhpcy5kYXRlLCBzdGF0ZS5zdGFydERhdGUsIHN0YXRlLmVuZERhdGUpO1xuICAgICAgICAgIGluUmFuZ2UgPSAhIWlzRGF0ZUluUmFuZ2UodGhpcy5kYXRlLCBzdGF0ZS5zdGFydERhdGUsIHN0YXRlLmVuZERhdGUpO1xuICAgICAgICAgIHJhbmdlSG92ZXIgPSB0aGlzLiNzZWxlY3RFbmREYXRlKCkgJiYgISFpc1llYXJJblJhbmdlKHRoaXMuZGF0ZSwgc3RhdGUuc3RhcnREYXRlLCBzdGF0ZS5ob3ZlckRhdGUpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgc2VsZWN0ZWQgPSBzdGF0ZS5zZWxlY3Rpb25UeXBlID09PSAnZGF5JyAmJiAhIWlzRGF0ZVNlbGVjdGVkKHRoaXMuZGF0ZSwgc3RhdGUuc3RhcnREYXRlLCBzdGF0ZS5lbmREYXRlKTtcbiAgICAgICAgY2xpY2thYmxlID0gdGhpcy5tb250aCAhPT0gJ2N1cnJlbnQnICYmICEhc3RhdGUuc2VsZWN0QWRqYWNlbnREYXlzO1xuICAgICAgICByYW5nZUhvdmVyID0gc3RhdGUuc2VsZWN0aW9uVHlwZSA9PT0gJ2RheScgJiYgdGhpcy5tb250aCA9PT0gJ2N1cnJlbnQnICYmIHRoaXMuI3NlbGVjdEVuZERhdGUoKSAmJiAhIWlzRGF0ZUluUmFuZ2UodGhpcy5kYXRlLCBzdGF0ZS5zdGFydERhdGUsIHN0YXRlLmhvdmVyRGF0ZSk7XG4gICAgICAgIGluUmFuZ2UgPSB0aGlzLm1vbnRoID09PSAnY3VycmVudCcgJiYgKGlzRGF0ZUluUmFuZ2UodGhpcy5kYXRlLCBzdGF0ZS5zdGFydERhdGUsIHN0YXRlLmVuZERhdGUpIHx8ICEhc3RhcnQgfHwgISFlbmQpO1xuICAgICAgICBkaXNhYmxlZFJhbmdlID0gaXNEYXRlSW5SYW5nZURpc2FibGVkKHN0YXRlLnN0YXJ0RGF0ZSwgdGhpcy5kYXRlLCBzdGF0ZS5kaXNhYmxlZERhdGVzKTtcbiAgICAgICAgZGlzYWJsZWREYXRlID0gaXNEYXRlRGlzYWJsZWQodGhpcy5kYXRlLCBzdGF0ZS5taW5EYXRlLCBzdGF0ZS5tYXhEYXRlLCBzdGF0ZS5kaXNhYmxlZERhdGVzKTtcbiAgICAgICAgZGlzYWJsZWRCeUZpbHRlciA9IChzdGF0ZS5kYXRlRmlsdGVyICYmIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChzdGF0ZS5kYXRlRmlsdGVyKSA9PT0gJ1tvYmplY3QgRnVuY3Rpb25dJyAmJiB0aGlzLmRhdGUpID8gIXN0YXRlLmRhdGVGaWx0ZXIodGhpcy5kYXRlKSA6IGZhbHNlO1xuICAgICAgICB0aGlzLmRpc2FibGVkID0gZGlzYWJsZWREYXRlIHx8IGRpc2FibGVkQnlGaWx0ZXI7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgICdyYW5nZS1ob3Zlcic6IHJhbmdlSG92ZXIgJiYgKCFkaXNhYmxlZFJhbmdlIHx8ICFkaXNhYmxlZEJ5RmlsdGVyKSxcbiAgICAgIHNlbGVjdGVkOiBzZWxlY3RlZCxcbiAgICAgIHJhbmdlOiBpblJhbmdlLFxuICAgICAgc3RhcnQ6ICEhc3RhcnQsXG4gICAgICBlbmQ6ICEhZW5kLFxuICAgICAgZGlzYWJsZWQ6IHRoaXMuZGlzYWJsZWQsXG4gICAgICBjbGlja2FibGU6IGNsaWNrYWJsZVxuICAgIH07XG4gIH1cblxuICBmb2N1cyhvcmlnaW4/OiBGb2N1c09yaWdpbik6IHZvaWQge1xuICAgIHRoaXMuZm9jdXNNb25pdG9yLmZvY3VzVmlhKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBvcmlnaW4gPz8gJ2tleWJvYXJkJyk7XG4gIH1cblxuICBnZXRMYWJlbCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmRhdGU/LnRvTG9jYWxlRGF0ZVN0cmluZyh0aGlzLiNjYWxlbmRhclN0YXRlKCkubG9jYWxlKSA/PyAnJztcbiAgfVxuXG59XG4iXX0=
141
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItZGF5LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmV1aS1hbmd1bGFyL3NyYy9saWIvY2FsZW5kYXIvY2FsZW5kYXItbW9udGgvY2FsZW5kYXItZGF5LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLFFBQVEsRUFDUixVQUFVLEVBQ1YsU0FBUyxFQUNULFVBQVUsRUFDVixXQUFXLEVBQ1gsTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFtQixZQUFZLEVBQWUsTUFBTSxtQkFBbUIsQ0FBQztBQUMvRSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUNMLGNBQWMsRUFDZCxhQUFhLEVBQ2IscUJBQXFCLEVBQ3JCLGNBQWMsRUFDZCxTQUFTLEVBQ1QsZUFBZSxFQUNmLFdBQVcsRUFDWCxhQUFhLEVBQ2IsY0FBYyxFQUNmLE1BQU0sbUJBQW1CLENBQUM7QUFDM0IsT0FBTyxFQUFFLGVBQWUsRUFBa0IsTUFBTSxxQkFBcUIsQ0FBQzs7QUFPdEUsTUFBTSxPQUFPLG9CQUFvQjtJQUMvQixXQUFXLENBQXNCO0lBQ2pDLGdCQUFnQixDQUEyQjtJQUkzQyxjQUFjLENBQTRFO0lBRTFGO1FBUEEsZ0JBQVcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDakMscUJBQWdCLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQzNDLGVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDaEMsaUJBQVksR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFcEMsbUJBQWMsR0FBRyxNQUFNLENB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LEtBQUssRUFBRSxPQUFPO1lBQ2QsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLO1lBQ2QsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHO1lBQ1YsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLFNBQVMsRUFBRSxTQUFTO1NBQ3JCLENBQUM7SUFDSixDQUFDO0lBRUQsS0FBSyxDQUFDLE1BQW9CO1FBQ3hCLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLE1BQU0sSUFBSSxVQUFVLENBQUMsQ0FBQztJQUNsRixDQUFDO0lBRUQsUUFBUTtRQUNOLE9BQU8sSUFBSSxDQUFDLElBQUksRUFBRSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzNFLENBQUM7OEdBN0hVLG9CQUFvQjtrR0FBcEIsb0JBQW9CLDZHQW9CWCxnQkFBZ0I7OzJGQXBCekIsb0JBQW9CO2tCQUxoQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsY0FBYztpQkFDekI7d0RBb0JVLElBQUk7c0JBQVosS0FBSztnQkFDa0MsUUFBUTtzQkFBL0MsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFDN0IsS0FBSztzQkFBYixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBK0JGLFdBQVc7c0JBRGQsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgY29tcHV0ZWQsXG4gIERlc3Ryb3lSZWYsXG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgSG9zdEJpbmRpbmcsXG4gIGluamVjdCxcbiAgSW5wdXQsXG4gIHNpZ25hbFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IEZvY3VzYWJsZU9wdGlvbiwgRm9jdXNNb25pdG9yLCBGb2N1c09yaWdpbiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7XG4gIGlzRGF0ZURpc2FibGVkLFxuICBpc0RhdGVJblJhbmdlLFxuICBpc0RhdGVJblJhbmdlRGlzYWJsZWQsXG4gIGlzRGF0ZVNlbGVjdGVkLFxuICBpc0VuZERhdGUsXG4gIGlzTW9udGhTZWxlY3RlZCxcbiAgaXNTdGFydERhdGUsXG4gIGlzWWVhckluUmFuZ2UsXG4gIGlzWWVhclNlbGVjdGVkXG59IGZyb20gJy4uL2NhbGVuZGFyLnV0aWxzJztcbmltcG9ydCB7IENhbGVuZGFyU2VydmljZSwgSUNhbGVuZGFyU3RhdGUgfSBmcm9tICcuLi9jYWxlbmRhci5zZXJ2aWNlJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2NDYWxlbmRhckRheV0nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBleHBvcnRBczogJ2NDYWxlbmRhckRheSdcbn0pXG5leHBvcnQgY2xhc3MgQ2FsZW5kYXJEYXlEaXJlY3RpdmUgaW1wbGVtZW50cyBGb2N1c2FibGVPcHRpb24ge1xuICAjZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcbiAgI2NhbGVuZGFyU2VydmljZSA9IGluamVjdChDYWxlbmRhclNlcnZpY2UpO1xuICBlbGVtZW50UmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuICBmb2N1c01vbml0b3IgPSBpbmplY3QoRm9jdXNNb25pdG9yKTtcblxuICAjY2FsZW5kYXJTdGF0ZSA9IHNpZ25hbDxJQ2FsZW5kYXJTdGF0ZT4oeyAuLi50aGlzLiNjYWxlbmRhclNlcnZpY2UuY2FsZW5kYXJTdGF0ZU9iamVjdCB9KTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLiNjYWxlbmRhclNlcnZpY2UuY2FsZW5kYXJTdGF0ZSRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAoKHN0YXRlKSA9PiB7XG4gICAgICAgICAgdGhpcy4jY2FsZW5kYXJTdGF0ZS5zZXQoc3RhdGUpO1xuICAgICAgICB9KSxcbiAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuI2Rlc3Ryb3lSZWYpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBASW5wdXQoKSBkYXRlITogRGF0ZTtcbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGRpc2FibGVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIG1vbnRoID0gJ2N1cnJlbnQnO1xuICBASW5wdXQoKSBjYWxlbmRhckRhdGUgPSBuZXcgRGF0ZSgpO1xuXG4gICNzZWxlY3RFbmREYXRlID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IHN0YXRlID0gdGhpcy4jY2FsZW5kYXJTdGF0ZSgpO1xuICAgIHJldHVybiA8Ym9vbGVhbj4oc3RhdGUucmFuZ2UgJiYgISFzdGF0ZS5zdGFydERhdGUgJiYgIXN0YXRlLmVuZERhdGUpO1xuICB9KTtcblxuICBkaXNhYmxlZCQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3Qgc3RhdGUgPSB7IC4uLnRoaXMuI2NhbGVuZGFyU3RhdGUoKSB9O1xuXG4gICAgY29uc3QgZGF0ZVllYXIgPSB0aGlzLmRhdGUuZ2V0RnVsbFllYXIoKTtcblxuICAgIHN3aXRjaCAoc3RhdGUudmlldykge1xuICAgICAgY2FzZSAnbW9udGhzJzoge1xuICAgICAgICBjb25zdCBkYXRlTW9udGggPSBkYXRlWWVhciAqIDEwMCArIHRoaXMuZGF0ZS5nZXRNb250aCgpO1xuICAgICAgICBjb25zdCBtaW5EYXRlID0gc3RhdGUubWluRGF0ZSA/IHN0YXRlLm1pbkRhdGUuZ2V0RnVsbFllYXIoKSAqIDEwMCArIHN0YXRlLm1pbkRhdGU/LmdldE1vbnRoKCkgOiB1bmRlZmluZWQ7XG4gICAgICAgIGNvbnN0IG1heERhdGUgPSBzdGF0ZS5tYXhEYXRlID8gc3RhdGUubWF4RGF0ZS5nZXRGdWxsWWVhcigpICogMTAwICsgc3RhdGUubWF4RGF0ZT8uZ2V0TW9udGgoKSA6IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5kaXNhYmxlZCA9IChtaW5EYXRlID8gZGF0ZU1vbnRoIDwgbWluRGF0ZSA6IGZhbHNlKSB8fCAobWF4RGF0ZSA/IGRhdGVNb250aCA+IG1heERhdGUgOiBmYWxzZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAneWVhcnMnOiB7XG4gICAgICAgIGNvbnN0IG1pblllYXIgPSBzdGF0ZS5taW5EYXRlPy5nZXRGdWxsWWVhcigpO1xuICAgICAgICBjb25zdCBtYXhZZWFyID0gc3RhdGUubWF4RGF0ZT8uZ2V0RnVsbFllYXIoKTtcbiAgICAgICAgdGhpcy5kaXNhYmxlZCA9IChtaW5ZZWFyID8gZGF0ZVllYXIgPCBtaW5ZZWFyIDogZmFsc2UpIHx8IChtYXhZZWFyID8gZGF0ZVllYXIgPiBtYXhZZWFyIDogZmFsc2UpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZGlzYWJsZWQ7XG4gIH0pO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICBnZXQgaG9zdENsYXNzZXMoKTogYW55IHtcbiAgICBpZiAoIXRoaXMuZGF0ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHN0YXRlID0gdGhpcy4jY2FsZW5kYXJTdGF0ZSgpO1xuICAgIHN0YXRlLnN0YXJ0RGF0ZSA9IHN0YXRlLnN0YXJ0RGF0ZSA/PyBudWxsO1xuICAgIHN0YXRlLmhvdmVyRGF0ZSA9IHN0YXRlLmhvdmVyRGF0ZSA/PyBudWxsO1xuICAgIHN0YXRlLmVuZERhdGUgPSBzdGF0ZS5lbmREYXRlID8/IG51bGw7XG5cbiAgICBjb25zdCBzdGFydCA9IGlzU3RhcnREYXRlKHRoaXMuZGF0ZSwgc3RhdGUuc3RhcnREYXRlLCBzdGF0ZS5lbmREYXRlKTtcbiAgICBjb25zdCBlbmQgPSBpc0VuZERhdGUodGhpcy5kYXRlLCBzdGF0ZS5zdGFydERhdGUsIHN0YXRlLmVuZERhdGUpO1xuXG4gICAgbGV0IHNlbGVjdGVkOiBib29sZWFuID0gZmFsc2U7XG4gICAgbGV0IGNsaWNrYWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuICAgIGxldCByYW5nZUhvdmVyOiBib29sZWFuID0gZmFsc2U7XG4gICAgbGV0IGluUmFuZ2U6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBsZXQgZGlzYWJsZWRSYW5nZTogYm9vbGVhbiA9IGZhbHNlO1xuICAgIGxldCBkaXNhYmxlZERhdGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBsZXQgZGlzYWJsZWRCeUZpbHRlcjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgc3dpdGNoIChzdGF0ZS52aWV3KSB7XG4gICAgICBjYXNlICdtb250aHMnOlxuICAgICAgICBpZiAoc3RhdGUuc2VsZWN0aW9uVHlwZSA9PT0gJ21vbnRoJykge1xuICAgICAgICAgIHNlbGVjdGVkID0gISFpc01vbnRoU2VsZWN0ZWQodGhpcy5kYXRlLCBzdGF0ZS5zdGFydERhdGUsIHN0YXRlLmVuZERhdGUpO1xuICAgICAgICAgIGluUmFuZ2UgPSAhIWlzRGF0ZUluUmFuZ2UodGhpcy5kYXRlLCBzdGF0ZS5zdGFydERhdGUsIHN0YXRlLmVuZERhdGUpO1xuICAgICAgICAgIHJhbmdlSG92ZXIgPSB0aGlzLiNzZWxlY3RFbmREYXRlKCkgJiYgISFpc0RhdGVJblJhbmdlKHRoaXMuZGF0ZSwgc3RhdGUuc3RhcnREYXRlLCBzdGF0ZS5ob3ZlckRhdGUpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAneWVhcnMnOlxuICAgICAgICBpZiAoc3RhdGUuc2VsZWN0aW9uVHlwZSA9PT0gJ3llYXInKSB7XG4gICAgICAgICAgc2VsZWN0ZWQgPSAhIWlzWWVhclNlbGVjdGVkKHRoaXMuZGF0ZSwgc3RhdGUuc3RhcnREYXRlLCBzdGF0ZS5lbmREYXRlKTtcbiAgICAgICAgICBpblJhbmdlID0gISFpc0RhdGVJblJhbmdlKHRoaXMuZGF0ZSwgc3RhdGUuc3RhcnREYXRlLCBzdGF0ZS5lbmREYXRlKTtcbiAgICAgICAgICByYW5nZUhvdmVyID0gdGhpcy4jc2VsZWN0RW5kRGF0ZSgpICYmICEhaXNZZWFySW5SYW5nZSh0aGlzLmRhdGUsIHN0YXRlLnN0YXJ0RGF0ZSwgc3RhdGUuaG92ZXJEYXRlKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHNlbGVjdGVkID0gc3RhdGUuc2VsZWN0aW9uVHlwZSA9PT0gJ2RheScgJiYgISFpc0RhdGVTZWxlY3RlZCh0aGlzLmRhdGUsIHN0YXRlLnN0YXJ0RGF0ZSwgc3RhdGUuZW5kRGF0ZSk7XG4gICAgICAgIGNsaWNrYWJsZSA9IHRoaXMubW9udGggIT09ICdjdXJyZW50JyAmJiAhIXN0YXRlLnNlbGVjdEFkamFjZW50RGF5cztcbiAgICAgICAgcmFuZ2VIb3ZlciA9XG4gICAgICAgICAgc3RhdGUuc2VsZWN0aW9uVHlwZSA9PT0gJ2RheScgJiZcbiAgICAgICAgICB0aGlzLm1vbnRoID09PSAnY3VycmVudCcgJiZcbiAgICAgICAgICB0aGlzLiNzZWxlY3RFbmREYXRlKCkgJiZcbiAgICAgICAgICAhIWlzRGF0ZUluUmFuZ2UodGhpcy5kYXRlLCBzdGF0ZS5zdGFydERhdGUsIHN0YXRlLmhvdmVyRGF0ZSk7XG4gICAgICAgIGluUmFuZ2UgPVxuICAgICAgICAgIHRoaXMubW9udGggPT09ICdjdXJyZW50JyAmJiAoaXNEYXRlSW5SYW5nZSh0aGlzLmRhdGUsIHN0YXRlLnN0YXJ0RGF0ZSwgc3RhdGUuZW5kRGF0ZSkgfHwgISFzdGFydCB8fCAhIWVuZCk7XG4gICAgICAgIGRpc2FibGVkUmFuZ2UgPSBpc0RhdGVJblJhbmdlRGlzYWJsZWQoc3RhdGUuc3RhcnREYXRlLCB0aGlzLmRhdGUsIHN0YXRlLmRpc2FibGVkRGF0ZXMpO1xuICAgICAgICBkaXNhYmxlZERhdGUgPSBpc0RhdGVEaXNhYmxlZCh0aGlzLmRhdGUsIHN0YXRlLm1pbkRhdGUsIHN0YXRlLm1heERhdGUsIHN0YXRlLmRpc2FibGVkRGF0ZXMpO1xuICAgICAgICBkaXNhYmxlZEJ5RmlsdGVyID1cbiAgICAgICAgICBzdGF0ZS5kYXRlRmlsdGVyICYmIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChzdGF0ZS5kYXRlRmlsdGVyKSA9PT0gJ1tvYmplY3QgRnVuY3Rpb25dJyAmJiB0aGlzLmRhdGVcbiAgICAgICAgICAgID8gIXN0YXRlLmRhdGVGaWx0ZXIodGhpcy5kYXRlKVxuICAgICAgICAgICAgOiBmYWxzZTtcbiAgICAgICAgdGhpcy5kaXNhYmxlZCA9IGRpc2FibGVkRGF0ZSB8fCBkaXNhYmxlZEJ5RmlsdGVyO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICAncmFuZ2UtaG92ZXInOiByYW5nZUhvdmVyICYmICghZGlzYWJsZWRSYW5nZSB8fCAhZGlzYWJsZWRCeUZpbHRlciksXG4gICAgICBzZWxlY3RlZDogc2VsZWN0ZWQsXG4gICAgICByYW5nZTogaW5SYW5nZSxcbiAgICAgIHN0YXJ0OiAhIXN0YXJ0LFxuICAgICAgZW5kOiAhIWVuZCxcbiAgICAgIGRpc2FibGVkOiB0aGlzLmRpc2FibGVkLFxuICAgICAgY2xpY2thYmxlOiBjbGlja2FibGVcbiAgICB9O1xuICB9XG5cbiAgZm9jdXMob3JpZ2luPzogRm9jdXNPcmlnaW4pOiB2b2lkIHtcbiAgICB0aGlzLmZvY3VzTW9uaXRvci5mb2N1c1ZpYSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgb3JpZ2luID8/ICdrZXlib2FyZCcpO1xuICB9XG5cbiAgZ2V0TGFiZWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5kYXRlPy50b0xvY2FsZURhdGVTdHJpbmcodGhpcy4jY2FsZW5kYXJTdGF0ZSgpLmxvY2FsZSkgPz8gJyc7XG4gIH1cbn1cbiJdfQ==
@@ -6,10 +6,10 @@ export class CalendarDayPipe {
6
6
  dayFormat(date) :
7
7
  date.toLocaleDateString(locale, { day: dayFormat });
8
8
  }
9
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: CalendarDayPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
10
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.1.2", ngImport: i0, type: CalendarDayPipe, isStandalone: true, name: "calendarDay" }); }
9
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: CalendarDayPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
10
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.0", ngImport: i0, type: CalendarDayPipe, isStandalone: true, name: "calendarDay" }); }
11
11
  }
12
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: CalendarDayPipe, decorators: [{
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: CalendarDayPipe, decorators: [{
13
13
  type: Pipe,
14
14
  args: [{
15
15
  name: 'calendarDay',
@@ -447,10 +447,10 @@ export class CalendarMonthComponent {
447
447
  getYearEnd(year) {
448
448
  return new Date(year, 11, 1, 0, 0, -1, 0);
449
449
  }
450
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: CalendarMonthComponent, deps: [{ token: i1.CalendarService }], target: i0.ɵɵFactoryTarget.Component }); }
451
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.2", type: CalendarMonthComponent, isStandalone: true, selector: "c-calendar-month", inputs: { addMonths: "addMonths", startDate: "startDate", endDate: "endDate", disabledDates: "disabledDates", firstDayOfWeek: ["firstDayOfWeek", "firstDayOfWeek", numberAttribute], locale: "locale", range: ["range", "range", booleanAttribute], weekdayFormat: "weekdayFormat", view: "view", maxDate: "maxDate", minDate: "minDate", calendarDate: "calendarDate" }, viewQueries: [{ propertyName: "calendarDays", predicate: CalendarDayDirective, descendants: true }, { propertyName: "calendarRows", predicate: CalendarRowDirective, descendants: true }], exportAs: ["cCalendarMonth"], ngImport: i0, template: "<table>\n @if (view === 'days') {\n <thead>\n <tr>\n @if (showWeekNumber) {\n <th class=\"calendar-cell\">\n <div class=\"calendar-header-cell-inner\">{{ weekNumbersLabel }}</div>\n </th>\n }\n @for (weekDay of weekDays; track weekDay.date; let i = $index) {\n <th class=\"calendar-cell\">\n <div class=\"calendar-header-cell-inner\">\n {{ weekDay.date | calendarWeekday:weekdayFormat:locale }}\n </div>\n </th>\n }\n </tr>\n </thead>\n }\n <tbody (mouseleave)=\"handleCellMouseLeave()\">\n @switch (view) {\n @case ('years') {\n @for (yearsRow of listOfYears(); track yearsRow; let rowIdx = $index) {\n <tr>\n @for (year of yearsRow; track year; let idx = $index) {\n <td\n #calendarYear=\"cCalendarDay\"\n (click)=\"!calendarYear.disabled$() && handleYearCellClick(year)\"\n (keydown)=\"calendarYear.date && handleDayCellKeyDown($event, calendarYear.date)\"\n (keyup)=\"handleYearCellKeyUp($event, calendarYear.date)\"\n (mouseenter)=\"calendarYear.date && handleCellMouseEnter(calendarYear.date)\"\n [attr.aria-label]=\"calendarYear.date.getFullYear()\"\n [date]=\"getYearStart(year)\"\n [ngClass]=\"year | calendarClassYear\"\n [tabindex]=\"calendarYear.disabled$() ? -1 : 0\"\n cCalendarDay\n >\n <div class=\"calendar-cell-inner\">\n {{ yearNumber(year) }}\n </div>\n </td>\n }\n </tr>\n }\n }\n @case ('months') {\n @for (monthsRow of listOfMonths(); track monthsRow; let rowIdx = $index) {\n <tr>\n @for (month of monthsRow; track month; let idx = $index) {\n <td\n #calendarMonth=\"cCalendarDay\"\n (click)=\"!calendarMonth.disabled$() && handleMonthCellClick(calendarMonth.date)\"\n (keydown)=\"calendarMonth.date && handleDayCellKeyDown($event, calendarMonth.date)\"\n (keyup)=\"handleMonthCellKeyUp($event, calendarMonth.date)\"\n (mouseenter)=\"calendarMonth.date && handleCellMouseEnter(calendarMonth.date)\"\n [attr.aria-label]=\"calendarMonth.date.getFullYear()+' '+month.month\"\n [date]=\"getMonthStart(rowIdx*3+idx)\"\n [ngClass]=\"calendarDate | calendarClassMonth:(rowIdx*3+idx)\"\n [tabindex]=\"calendarMonth.disabled$() ? -1 : 0\"\n cCalendarDay\n >\n <div class=\"calendar-cell-inner\">\n {{ month.month }}\n </div>\n </td>\n }\n </tr>\n }\n\n }\n @default {\n @for (week of monthDetails; track week; let i = $index) {\n <tr #calendarRow=\"cCalendarRow\"\n (click)=\"selectionType === 'week' && (calendarRow.current) && calendarRow.date && handleDayCellClick(calendarRow.date)\"\n (keydown)=\"selectionType === 'week' && (calendarRow.current) && calendarRow.date && handleDayCellKeyDown($event, calendarRow.date)\"\n (keyup)=\"selectionType === 'week' && (calendarRow.current) && calendarRow.date && handleDayCellKeyUp($event, calendarRow.date)\"\n (mouseenter)=\"selectionType === 'week' && calendarRow.date && handleCellMouseEnter(calendarRow.date)\"\n [cCalendarRow]=\"week\"\n >\n @if (showWeekNumber) {\n <th class=\"calendar-cell-week-number\">\n {{ week.weekNumber === 0 ? 53 : week.weekNumber }}\n </th>\n }\n @for (dateObj of week.days; track dateObj.date; let idx = $index) {\n @if (dateObj.month === 'current' || showAdjacentDays) {\n <td #calendarCell=\"cCalendarDay\"\n (click)=\"selectionType === 'day' && (dateObj.month === 'current' || selectAdjacentDays) && handleDayCellClick(dateObj.date)\"\n (keydown)=\"selectionType === 'day' && (dateObj.month === 'current' || selectAdjacentDays) && handleDayCellKeyDown($event, dateObj.date)\"\n (keyup)=\"selectionType === 'day' && (dateObj.month === 'current' || selectAdjacentDays) && handleDayCellKeyUp($event, dateObj.date)\"\n (mouseenter)=\"selectionType === 'day' && (dateObj.month === 'current' || selectAdjacentDays) && handleCellMouseEnter(dateObj.date)\"\n [attr.aria-label]=\"dateObj.date | calendarDayTitle:locale\"\n [date]=\"dateObj.date\"\n [month]=\"dateObj.month\"\n [ngClass]=\"dateObj | calendarClassDay:{minDate, maxDate, disabledDates, dateFilter}\"\n [tabindex]=\"selectionType === 'day' && (dateObj.month === 'current' || selectAdjacentDays) && !isDateDisabled(dateObj.date) ? 0 : -1\"\n cCalendarDay\n >\n <div class=\"calendar-cell-inner\">\n {{ dateObj.date | calendarDay:dayFormat:locale }}\n </div>\n </td>\n } @else {\n <td class=\"calendar-cell\"></td>\n }\n }\n </tr>\n }\n\n }\n }\n\n </tbody>\n</table>\n\n", styles: [".btn-transparent:focus-visible{outline:-webkit-focus-ring-color auto 1px}.calendar-row:focus-visible{box-shadow:var(--cui-calendar-cell-focus-box-shadow);border-radius:.375rem}.calendar-row:focus-within:not([tabindex=\"-1\"]){outline:0;box-shadow:var(--cui-calendar-cell-focus-box-shadow);border-radius:.375rem;outline-style:auto!important}.calendar-row:focus:not([tabindex=\"-1\"]){outline:0;box-shadow:var(--cui-calendar-cell-focus-box-shadow);border-radius:.375rem;outline-style:auto!important}.calendar-cell:focus:not(:focus-visible):not([tabindex=\"-1\"]){box-shadow:var(--cui-calendar-cell-focus-box-shadow);border-radius:.375rem}\n"], dependencies: [{ kind: "directive", type: CalendarDayDirective, selector: "[cCalendarDay]", inputs: ["date", "disabled", "month", "calendarDate"], exportAs: ["cCalendarDay"] }, { kind: "pipe", type: CalendarDayPipe, name: "calendarDay" }, { kind: "pipe", type: CalendarDayTitlePipe, name: "calendarDayTitle" }, { kind: "directive", type: CalendarRowDirective, selector: "[cCalendarRow]", inputs: ["cCalendarRow"], exportAs: ["cCalendarRow"] }, { kind: "pipe", type: CalendarClassDayPipe, name: "calendarClassDay" }, { kind: "pipe", type: CalendarClassMonthPipe, name: "calendarClassMonth" }, { kind: "pipe", type: CalendarClassYearPipe, name: "calendarClassYear" }, { kind: "pipe", type: CalendarWeekdayPipe, name: "calendarWeekday" }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
450
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: CalendarMonthComponent, deps: [{ token: i1.CalendarService }], target: i0.ɵɵFactoryTarget.Component }); }
451
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: CalendarMonthComponent, isStandalone: true, selector: "c-calendar-month", inputs: { addMonths: "addMonths", startDate: "startDate", endDate: "endDate", disabledDates: "disabledDates", firstDayOfWeek: ["firstDayOfWeek", "firstDayOfWeek", numberAttribute], locale: "locale", range: ["range", "range", booleanAttribute], weekdayFormat: "weekdayFormat", view: "view", maxDate: "maxDate", minDate: "minDate", calendarDate: "calendarDate" }, viewQueries: [{ propertyName: "calendarDays", predicate: CalendarDayDirective, descendants: true }, { propertyName: "calendarRows", predicate: CalendarRowDirective, descendants: true }], exportAs: ["cCalendarMonth"], ngImport: i0, template: "<table>\n @if (view === 'days') {\n <thead>\n <tr>\n @if (showWeekNumber) {\n <th class=\"calendar-cell\">\n <div class=\"calendar-header-cell-inner\">{{ weekNumbersLabel }}</div>\n </th>\n }\n @for (weekDay of weekDays; track weekDay.date; let i = $index) {\n <th class=\"calendar-cell\">\n <div class=\"calendar-header-cell-inner\">\n {{ weekDay.date | calendarWeekday:weekdayFormat:locale }}\n </div>\n </th>\n }\n </tr>\n </thead>\n }\n <tbody (mouseleave)=\"handleCellMouseLeave()\">\n @switch (view) {\n @case ('years') {\n @for (yearsRow of listOfYears(); track yearsRow; let rowIdx = $index) {\n <tr>\n @for (year of yearsRow; track year; let idx = $index) {\n <td\n #calendarYear=\"cCalendarDay\"\n (click)=\"!calendarYear.disabled$() && handleYearCellClick(year)\"\n (keydown)=\"calendarYear.date && handleDayCellKeyDown($event, calendarYear.date)\"\n (keyup)=\"handleYearCellKeyUp($event, calendarYear.date)\"\n (mouseenter)=\"calendarYear.date && handleCellMouseEnter(calendarYear.date)\"\n [attr.aria-label]=\"calendarYear.date.getFullYear()\"\n [date]=\"getYearStart(year)\"\n [ngClass]=\"year | calendarClassYear\"\n [tabindex]=\"calendarYear.disabled$() ? -1 : 0\"\n cCalendarDay\n >\n <div class=\"calendar-cell-inner\">\n {{ yearNumber(year) }}\n </div>\n </td>\n }\n </tr>\n }\n }\n @case ('months') {\n @for (monthsRow of listOfMonths(); track monthsRow; let rowIdx = $index) {\n <tr>\n @for (month of monthsRow; track month; let idx = $index) {\n <td\n #calendarMonth=\"cCalendarDay\"\n (click)=\"!calendarMonth.disabled$() && handleMonthCellClick(calendarMonth.date)\"\n (keydown)=\"calendarMonth.date && handleDayCellKeyDown($event, calendarMonth.date)\"\n (keyup)=\"handleMonthCellKeyUp($event, calendarMonth.date)\"\n (mouseenter)=\"calendarMonth.date && handleCellMouseEnter(calendarMonth.date)\"\n [attr.aria-label]=\"calendarMonth.date.getFullYear()+' '+month.month\"\n [date]=\"getMonthStart(rowIdx*3+idx)\"\n [ngClass]=\"calendarDate | calendarClassMonth:(rowIdx*3+idx)\"\n [tabindex]=\"calendarMonth.disabled$() ? -1 : 0\"\n cCalendarDay\n >\n <div class=\"calendar-cell-inner\">\n {{ month.month }}\n </div>\n </td>\n }\n </tr>\n }\n\n }\n @default {\n @for (week of monthDetails; track week; let i = $index) {\n <tr #calendarRow=\"cCalendarRow\"\n (click)=\"selectionType === 'week' && (calendarRow.current) && calendarRow.date && handleDayCellClick(calendarRow.date)\"\n (keydown)=\"selectionType === 'week' && (calendarRow.current) && calendarRow.date && handleDayCellKeyDown($event, calendarRow.date)\"\n (keyup)=\"selectionType === 'week' && (calendarRow.current) && calendarRow.date && handleDayCellKeyUp($event, calendarRow.date)\"\n (mouseenter)=\"selectionType === 'week' && calendarRow.date && handleCellMouseEnter(calendarRow.date)\"\n [cCalendarRow]=\"week\"\n >\n @if (showWeekNumber) {\n <th class=\"calendar-cell-week-number\">\n {{ week.weekNumber === 0 ? 53 : week.weekNumber }}\n </th>\n }\n @for (dateObj of week.days; track dateObj.date; let idx = $index) {\n @if (dateObj.month === 'current' || showAdjacentDays) {\n <td #calendarCell=\"cCalendarDay\"\n (click)=\"selectionType === 'day' && (dateObj.month === 'current' || selectAdjacentDays) && handleDayCellClick(dateObj.date)\"\n (keydown)=\"selectionType === 'day' && (dateObj.month === 'current' || selectAdjacentDays) && handleDayCellKeyDown($event, dateObj.date)\"\n (keyup)=\"selectionType === 'day' && (dateObj.month === 'current' || selectAdjacentDays) && handleDayCellKeyUp($event, dateObj.date)\"\n (mouseenter)=\"selectionType === 'day' && (dateObj.month === 'current' || selectAdjacentDays) && handleCellMouseEnter(dateObj.date)\"\n [attr.aria-label]=\"dateObj.date | calendarDayTitle:locale\"\n [date]=\"dateObj.date\"\n [month]=\"dateObj.month\"\n [ngClass]=\"dateObj | calendarClassDay:{minDate, maxDate, disabledDates, dateFilter}\"\n [tabindex]=\"selectionType === 'day' && (dateObj.month === 'current' || selectAdjacentDays) && !isDateDisabled(dateObj.date) ? 0 : -1\"\n cCalendarDay\n >\n <div class=\"calendar-cell-inner\">\n {{ dateObj.date | calendarDay:dayFormat:locale }}\n </div>\n </td>\n } @else {\n <td class=\"calendar-cell\"></td>\n }\n }\n </tr>\n }\n\n }\n }\n\n </tbody>\n</table>\n\n", styles: [".btn-transparent:focus-visible{outline:-webkit-focus-ring-color auto 1px}.calendar-row:focus-visible{box-shadow:var(--cui-calendar-cell-focus-box-shadow);border-radius:.375rem}.calendar-row:focus-within:not([tabindex=\"-1\"]){outline:0;box-shadow:var(--cui-calendar-cell-focus-box-shadow);border-radius:.375rem;outline-style:auto!important}.calendar-row:focus:not([tabindex=\"-1\"]){outline:0;box-shadow:var(--cui-calendar-cell-focus-box-shadow);border-radius:.375rem;outline-style:auto!important}.calendar-cell:focus:not(:focus-visible):not([tabindex=\"-1\"]){box-shadow:var(--cui-calendar-cell-focus-box-shadow);border-radius:.375rem}\n"], dependencies: [{ kind: "directive", type: CalendarDayDirective, selector: "[cCalendarDay]", inputs: ["date", "disabled", "month", "calendarDate"], exportAs: ["cCalendarDay"] }, { kind: "pipe", type: CalendarDayPipe, name: "calendarDay" }, { kind: "pipe", type: CalendarDayTitlePipe, name: "calendarDayTitle" }, { kind: "directive", type: CalendarRowDirective, selector: "[cCalendarRow]", inputs: ["cCalendarRow"], exportAs: ["cCalendarRow"] }, { kind: "pipe", type: CalendarClassDayPipe, name: "calendarClassDay" }, { kind: "pipe", type: CalendarClassMonthPipe, name: "calendarClassMonth" }, { kind: "pipe", type: CalendarClassYearPipe, name: "calendarClassYear" }, { kind: "pipe", type: CalendarWeekdayPipe, name: "calendarWeekday" }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
452
452
  }
453
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: CalendarMonthComponent, decorators: [{
453
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: CalendarMonthComponent, decorators: [{
454
454
  type: Component,
455
455
  args: [{ selector: 'c-calendar-month', exportAs: 'cCalendarMonth', standalone: true, imports: [
456
456
  CalendarDayDirective,
@@ -94,10 +94,10 @@ export class CalendarRowDirective {
94
94
  getLabel() {
95
95
  return this.date?.toLocaleDateString(this.locale) ?? '';
96
96
  }
97
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: CalendarRowDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
98
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.2", type: CalendarRowDirective, isStandalone: true, selector: "[cCalendarRow]", inputs: { week: ["cCalendarRow", "week"] }, host: { properties: { "attr.tabindex": "this.tabindex", "class": "this.hostClasses" } }, exportAs: ["cCalendarRow"], ngImport: i0 }); }
97
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: CalendarRowDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
98
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.0", type: CalendarRowDirective, isStandalone: true, selector: "[cCalendarRow]", inputs: { week: ["cCalendarRow", "week"] }, host: { properties: { "attr.tabindex": "this.tabindex", "class": "this.hostClasses" } }, exportAs: ["cCalendarRow"], ngImport: i0 }); }
99
99
  }
100
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: CalendarRowDirective, decorators: [{
100
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: CalendarRowDirective, decorators: [{
101
101
  type: Directive,
102
102
  args: [{
103
103
  selector: '[cCalendarRow]',
@@ -8,10 +8,10 @@ export class CalendarWeekdayPipe {
8
8
  ? date.toLocaleDateString(locale, { weekday: weekdayFormat })
9
9
  : date.toLocaleDateString(locale, { weekday: 'long' }).slice(0, weekdayFormat);
10
10
  }
11
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: CalendarWeekdayPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
12
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.1.2", ngImport: i0, type: CalendarWeekdayPipe, isStandalone: true, name: "calendarWeekday" }); }
11
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: CalendarWeekdayPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
12
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.0", ngImport: i0, type: CalendarWeekdayPipe, isStandalone: true, name: "calendarWeekday" }); }
13
13
  }
14
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: CalendarWeekdayPipe, decorators: [{
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: CalendarWeekdayPipe, decorators: [{
15
15
  type: Pipe,
16
16
  args: [{
17
17
  name: 'calendarWeekday',
@@ -60,10 +60,10 @@ export class CalendarNavigationComponent {
60
60
  this.handleNavigationClick(direction, years);
61
61
  }
62
62
  }
63
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: CalendarNavigationComponent, deps: [{ token: i1.CalendarService }], target: i0.ɵɵFactoryTarget.Component }); }
64
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.2", type: CalendarNavigationComponent, isStandalone: true, selector: "c-calendar-navigation", inputs: { addMonths: "addMonths", calendarDate: "calendarDate", navigation: "navigation", navYearFirst: "navYearFirst" }, outputs: { navigationClick: "navigationClick" }, host: { properties: { "class": "this.hostClasses" } }, ngImport: i0, template: "@if (navigation) {\n <div class=\"calendar-nav-prev\">\n <button\n (click)=\"handleNavigationClick('prev', true)\"\n (keyup)=\"handleNavigationKeyUp($event, 'prev', true)\"\n cButton\n color=\"transparent\"\n size=\"sm\"\n tabindex=\"0\"\n >\n <span class=\"calendar-nav-icon calendar-nav-icon-double-prev\"></span>\n </button>\n @if (view === 'days') {\n <button\n (click)=\"handleNavigationClick('prev')\"\n (keyup)=\"handleNavigationKeyUp($event, 'prev')\"\n cButton\n color=\"transparent\"\n size=\"sm\"\n tabindex=\"0\"\n >\n <span class=\"calendar-nav-icon calendar-nav-icon-prev\"></span>\n </button>\n }\n </div>\n}\n<div class=\"calendar-nav-date\" [ngStyle]=\"navYearFirst ? { display: 'flex', justifyContent: 'center' } : {}\">\n @if (view === 'days') {\n <button\n (click)=\"setView('months')\"\n cButton\n color=\"transparent\"\n size=\"sm\"\n tabindex=\"0\"\n >\n {{ date.toLocaleDateString(locale, { month: 'long' }) }}\n </button>\n }\n <button\n (click)=\"setView('years')\"\n cButton\n color=\"transparent\"\n size=\"sm\"\n tabindex=\"0\"\n [ngStyle]=\"navYearFirst ? { order: '-1' } : {}\"\n >\n {{ date.toLocaleDateString(locale, { year: 'numeric' }) }}\n </button>\n</div>\n@if (navigation) {\n <div class=\"calendar-nav-next\">\n @if (view === 'days') {\n <button\n (click)=\"handleNavigationClick('next')\"\n (keyup)=\"handleNavigationKeyUp($event, 'next')\"\n cButton\n color=\"transparent\"\n size=\"sm\"\n tabindex=\"0\"\n >\n <span class=\"calendar-nav-icon calendar-nav-icon-next\"></span>\n </button>\n }\n <button\n (click)=\"handleNavigationClick('next', true)\"\n (keyup)=\"handleNavigationKeyUp($event, 'next', true)\"\n cButton\n color=\"transparent\"\n size=\"sm\"\n tabindex=\"0\"\n >\n <span class=\"calendar-nav-icon calendar-nav-icon-double-next\"></span>\n </button>\n </div>\n}\n", styles: [""], dependencies: [{ kind: "directive", type: ButtonDirective, selector: "[cButton]", inputs: ["active", "color", "disabled", "shape", "size", "type", "variant"], exportAs: ["cButton"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] }); }
63
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: CalendarNavigationComponent, deps: [{ token: i1.CalendarService }], target: i0.ɵɵFactoryTarget.Component }); }
64
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: CalendarNavigationComponent, isStandalone: true, selector: "c-calendar-navigation", inputs: { addMonths: "addMonths", calendarDate: "calendarDate", navigation: "navigation", navYearFirst: "navYearFirst" }, outputs: { navigationClick: "navigationClick" }, host: { properties: { "class": "this.hostClasses" } }, ngImport: i0, template: "@if (navigation) {\n <div class=\"calendar-nav-prev\">\n <button\n (click)=\"handleNavigationClick('prev', true)\"\n (keyup)=\"handleNavigationKeyUp($event, 'prev', true)\"\n cButton\n color=\"transparent\"\n size=\"sm\"\n tabindex=\"0\"\n >\n <span class=\"calendar-nav-icon calendar-nav-icon-double-prev\"></span>\n </button>\n @if (view === 'days') {\n <button\n (click)=\"handleNavigationClick('prev')\"\n (keyup)=\"handleNavigationKeyUp($event, 'prev')\"\n cButton\n color=\"transparent\"\n size=\"sm\"\n tabindex=\"0\"\n >\n <span class=\"calendar-nav-icon calendar-nav-icon-prev\"></span>\n </button>\n }\n </div>\n}\n<div class=\"calendar-nav-date\" [ngStyle]=\"navYearFirst ? { display: 'flex', justifyContent: 'center' } : {}\">\n @if (view === 'days') {\n <button\n (click)=\"setView('months')\"\n cButton\n color=\"transparent\"\n size=\"sm\"\n tabindex=\"0\"\n >\n {{ date.toLocaleDateString(locale, { month: 'long' }) }}\n </button>\n }\n <button\n (click)=\"setView('years')\"\n cButton\n color=\"transparent\"\n size=\"sm\"\n tabindex=\"0\"\n [ngStyle]=\"navYearFirst ? { order: '-1' } : {}\"\n >\n {{ date.toLocaleDateString(locale, { year: 'numeric' }) }}\n </button>\n</div>\n@if (navigation) {\n <div class=\"calendar-nav-next\">\n @if (view === 'days') {\n <button\n (click)=\"handleNavigationClick('next')\"\n (keyup)=\"handleNavigationKeyUp($event, 'next')\"\n cButton\n color=\"transparent\"\n size=\"sm\"\n tabindex=\"0\"\n >\n <span class=\"calendar-nav-icon calendar-nav-icon-next\"></span>\n </button>\n }\n <button\n (click)=\"handleNavigationClick('next', true)\"\n (keyup)=\"handleNavigationKeyUp($event, 'next', true)\"\n cButton\n color=\"transparent\"\n size=\"sm\"\n tabindex=\"0\"\n >\n <span class=\"calendar-nav-icon calendar-nav-icon-double-next\"></span>\n </button>\n </div>\n}\n", styles: [""], dependencies: [{ kind: "directive", type: ButtonDirective, selector: "[cButton]", inputs: ["active", "color", "disabled", "shape", "size", "type", "variant"], exportAs: ["cButton"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] }); }
65
65
  }
66
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: CalendarNavigationComponent, decorators: [{
66
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: CalendarNavigationComponent, decorators: [{
67
67
  type: Component,
68
68
  args: [{ selector: 'c-calendar-navigation', standalone: true, imports: [ButtonDirective, NgStyle], template: "@if (navigation) {\n <div class=\"calendar-nav-prev\">\n <button\n (click)=\"handleNavigationClick('prev', true)\"\n (keyup)=\"handleNavigationKeyUp($event, 'prev', true)\"\n cButton\n color=\"transparent\"\n size=\"sm\"\n tabindex=\"0\"\n >\n <span class=\"calendar-nav-icon calendar-nav-icon-double-prev\"></span>\n </button>\n @if (view === 'days') {\n <button\n (click)=\"handleNavigationClick('prev')\"\n (keyup)=\"handleNavigationKeyUp($event, 'prev')\"\n cButton\n color=\"transparent\"\n size=\"sm\"\n tabindex=\"0\"\n >\n <span class=\"calendar-nav-icon calendar-nav-icon-prev\"></span>\n </button>\n }\n </div>\n}\n<div class=\"calendar-nav-date\" [ngStyle]=\"navYearFirst ? { display: 'flex', justifyContent: 'center' } : {}\">\n @if (view === 'days') {\n <button\n (click)=\"setView('months')\"\n cButton\n color=\"transparent\"\n size=\"sm\"\n tabindex=\"0\"\n >\n {{ date.toLocaleDateString(locale, { month: 'long' }) }}\n </button>\n }\n <button\n (click)=\"setView('years')\"\n cButton\n color=\"transparent\"\n size=\"sm\"\n tabindex=\"0\"\n [ngStyle]=\"navYearFirst ? { order: '-1' } : {}\"\n >\n {{ date.toLocaleDateString(locale, { year: 'numeric' }) }}\n </button>\n</div>\n@if (navigation) {\n <div class=\"calendar-nav-next\">\n @if (view === 'days') {\n <button\n (click)=\"handleNavigationClick('next')\"\n (keyup)=\"handleNavigationKeyUp($event, 'next')\"\n cButton\n color=\"transparent\"\n size=\"sm\"\n tabindex=\"0\"\n >\n <span class=\"calendar-nav-icon calendar-nav-icon-next\"></span>\n </button>\n }\n <button\n (click)=\"handleNavigationClick('next', true)\"\n (keyup)=\"handleNavigationKeyUp($event, 'next', true)\"\n cButton\n color=\"transparent\"\n size=\"sm\"\n tabindex=\"0\"\n >\n <span class=\"calendar-nav-icon calendar-nav-icon-double-next\"></span>\n </button>\n </div>\n}\n" }]
69
69
  }], ctorParameters: () => [{ type: i1.CalendarService }], propDecorators: { addMonths: [{