@fundamental-ngx/core 0.45.1 → 0.46.0-rc.1

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 (418) hide show
  1. package/busy-indicator/busy-indicator-extended/busy-indicator-extended.directive.d.ts +1 -1
  2. package/busy-indicator/busy-indicator.component.d.ts +2 -2
  3. package/busy-indicator/busy-indicator.module.d.ts +4 -4
  4. package/calendar/calendar-directives.d.ts +1 -1
  5. package/calendar/calendar-header/calendar-header.component.d.ts +2 -6
  6. package/calendar/calendar-views/calendar-aggregated-year-view/calendar-aggregated-year-view.component.d.ts +1 -1
  7. package/calendar/calendar-views/calendar-day-view/calendar-day-view.component.d.ts +27 -32
  8. package/calendar/calendar-views/calendar-month-view/calendar-month-view.component.d.ts +1 -1
  9. package/calendar/calendar-views/calendar-year-view/calendar-year-view.component.d.ts +1 -1
  10. package/calendar/calendar.component.d.ts +7 -8
  11. package/calendar/calendar.module.d.ts +2 -5
  12. package/carousel/carousel-item/carousel-item.component.d.ts +1 -1
  13. package/carousel/carousel-item.directive.d.ts +1 -1
  14. package/carousel/carousel.component.d.ts +8 -1
  15. package/carousel/carousel.directive.d.ts +1 -1
  16. package/carousel/carousel.module.d.ts +1 -5
  17. package/checkbox/checkbox/checkbox.component.d.ts +19 -6
  18. package/checkbox/checkbox.module.d.ts +3 -5
  19. package/combobox/combobox-mobile/combobox-mobile.component.d.ts +2 -1
  20. package/date-picker/date-picker-mobile/date-picker-mobile.component.d.ts +31 -0
  21. package/date-picker/date-picker.component.d.ts +46 -16
  22. package/date-picker/date-picker.model.d.ts +11 -0
  23. package/date-picker/date-picker.module.d.ts +2 -12
  24. package/date-picker/index.d.ts +2 -0
  25. package/date-picker/tokens.d.ts +5 -0
  26. package/datetime-picker/datetime-picker-mobile/datetime-picker-mobile.component.d.ts +29 -0
  27. package/datetime-picker/datetime-picker.component.d.ts +34 -12
  28. package/datetime-picker/datetime-picker.model.d.ts +9 -0
  29. package/datetime-picker/datetime-picker.module.d.ts +2 -14
  30. package/datetime-picker/index.d.ts +2 -0
  31. package/datetime-picker/tokens.d.ts +5 -0
  32. package/dialog/dialog.module.d.ts +1 -1
  33. package/dialog/utils/dialog-ref.class.d.ts +15 -5
  34. package/esm2022/action-bar/action-bar.component.mjs +2 -2
  35. package/esm2022/action-sheet/action-sheet.component.mjs +2 -2
  36. package/esm2022/avatar/avatar.component.mjs +2 -2
  37. package/esm2022/avatar-group/avatar-group.component.mjs +2 -2
  38. package/esm2022/bar/bar.component.mjs +2 -2
  39. package/esm2022/breadcrumb/breadcrumb.component.mjs +2 -2
  40. package/esm2022/busy-indicator/busy-indicator-extended/busy-indicator-extended.directive.mjs +4 -3
  41. package/esm2022/busy-indicator/busy-indicator.component.mjs +5 -5
  42. package/esm2022/busy-indicator/busy-indicator.module.mjs +3 -4
  43. package/esm2022/button/button.component.mjs +2 -2
  44. package/esm2022/calendar/calendar-directives.mjs +4 -3
  45. package/esm2022/calendar/calendar-header/calendar-header.component.mjs +7 -15
  46. package/esm2022/calendar/calendar-views/calendar-aggregated-year-view/calendar-aggregated-year-view.component.mjs +6 -5
  47. package/esm2022/calendar/calendar-views/calendar-day-view/calendar-day-view.component.mjs +21 -30
  48. package/esm2022/calendar/calendar-views/calendar-month-view/calendar-month-view.component.mjs +6 -5
  49. package/esm2022/calendar/calendar-views/calendar-year-view/calendar-year-view.component.mjs +6 -5
  50. package/esm2022/calendar/calendar.component.mjs +17 -13
  51. package/esm2022/calendar/calendar.module.mjs +9 -9
  52. package/esm2022/card/card-footer.component.mjs +3 -3
  53. package/esm2022/card/card.component.mjs +2 -2
  54. package/esm2022/carousel/carousel-item/carousel-item.component.mjs +4 -4
  55. package/esm2022/carousel/carousel-item.directive.mjs +4 -3
  56. package/esm2022/carousel/carousel.component.mjs +19 -6
  57. package/esm2022/carousel/carousel.directive.mjs +4 -3
  58. package/esm2022/carousel/carousel.module.mjs +4 -9
  59. package/esm2022/checkbox/checkbox/checkbox.component.mjs +42 -17
  60. package/esm2022/checkbox/checkbox.module.mjs +4 -7
  61. package/esm2022/combobox/combobox-mobile/combobox-mobile.component.mjs +3 -2
  62. package/esm2022/date-picker/date-picker-mobile/date-picker-mobile.component.mjs +96 -0
  63. package/esm2022/date-picker/date-picker.component.mjs +142 -40
  64. package/esm2022/date-picker/date-picker.model.mjs +2 -0
  65. package/esm2022/date-picker/date-picker.module.mjs +6 -49
  66. package/esm2022/date-picker/index.mjs +3 -1
  67. package/esm2022/date-picker/tokens.mjs +4 -0
  68. package/esm2022/datetime-picker/datetime-picker-mobile/datetime-picker-mobile.component.mjs +96 -0
  69. package/esm2022/datetime-picker/datetime-picker.component.mjs +120 -36
  70. package/esm2022/datetime-picker/datetime-picker.model.mjs +2 -0
  71. package/esm2022/datetime-picker/datetime-picker.module.mjs +6 -57
  72. package/esm2022/datetime-picker/index.mjs +3 -1
  73. package/esm2022/datetime-picker/tokens.mjs +4 -0
  74. package/esm2022/dialog/dialog-body/dialog-body.component.mjs +4 -3
  75. package/esm2022/dialog/dialog.component.mjs +2 -2
  76. package/esm2022/dialog/dialog.module.mjs +8 -5
  77. package/esm2022/dialog/utils/dialog-ref.class.mjs +13 -8
  78. package/esm2022/dynamic-page/dynamic-page-header/actions/dynamic-page-title-content.component.mjs +1 -1
  79. package/esm2022/dynamic-page/dynamic-page.component.mjs +2 -2
  80. package/esm2022/dynamic-side-content/dynamic-side-content.component.mjs +2 -2
  81. package/esm2022/facets/facet/facet.component.mjs +2 -2
  82. package/esm2022/feed-input/feed-input.component.mjs +2 -2
  83. package/esm2022/feed-list-item/components/list/feed-list.component.mjs +2 -2
  84. package/esm2022/file-uploader/file-uploader.component.mjs +2 -2
  85. package/esm2022/fixed-card-layout/fixed-card-layout.component.mjs +2 -2
  86. package/esm2022/flexible-column-layout/flexible-column-layout.component.mjs +2 -2
  87. package/esm2022/form/fieldset/fieldset.component.mjs +2 -2
  88. package/esm2022/form/form-control/form-control.component.mjs +2 -2
  89. package/esm2022/form/form-group/form-group.component.mjs +2 -2
  90. package/esm2022/form/form-header/form-header.component.mjs +2 -2
  91. package/esm2022/form/form-item/form-item.component.mjs +2 -2
  92. package/esm2022/form/form-label/form-label.component.mjs +2 -2
  93. package/esm2022/form/form-message/form-message.component.mjs +2 -2
  94. package/esm2022/grid-list/components/grid-list/grid-list.component.mjs +2 -2
  95. package/esm2022/grid-list/components/grid-list-filter-bar/grid-list-filter-bar.component.mjs +1 -1
  96. package/esm2022/grid-list/components/grid-list-title-bar/grid-list-title-bar.component.mjs +1 -1
  97. package/esm2022/icon/icon.component.mjs +2 -2
  98. package/esm2022/illustrated-message/illustrated-message.component.mjs +2 -2
  99. package/esm2022/info-label/info-label.component.mjs +2 -2
  100. package/esm2022/input-group/input-group.component.mjs +2 -2
  101. package/esm2022/layout-grid/layout-grid.component.mjs +2 -2
  102. package/esm2022/layout-panel/layout-panel.component.mjs +2 -2
  103. package/esm2022/link/link.component.mjs +9 -9
  104. package/esm2022/link/link.module.mjs +4 -7
  105. package/esm2022/list/directives/list-secondary.directive.mjs +21 -8
  106. package/esm2022/list/list-navigation-item/list-navigation-item.component.mjs +2 -2
  107. package/esm2022/list/list.component.mjs +2 -2
  108. package/esm2022/list/list.module.mjs +3 -5
  109. package/esm2022/menu/menu.component.mjs +2 -2
  110. package/esm2022/message-box/message-box.component.mjs +2 -2
  111. package/esm2022/message-page/message-page.component.mjs +2 -2
  112. package/esm2022/message-strip/alert/message-strip-alert/message-strip-alert.component.mjs +2 -2
  113. package/esm2022/message-strip/alert/message-strip-configuration-type.mjs +1 -1
  114. package/esm2022/message-strip/index.mjs +3 -1
  115. package/esm2022/message-strip/message-strip-icon.directive.mjs +18 -0
  116. package/esm2022/message-strip/message-strip-indication-color.mjs +7 -0
  117. package/esm2022/message-strip/message-strip.component.mjs +36 -5
  118. package/esm2022/message-strip/message-strip.module.mjs +5 -4
  119. package/esm2022/message-toast/message-toast.component.mjs +3 -3
  120. package/esm2022/micro-process-flow/components/micro-process-flow/micro-process-flow.component.mjs +2 -2
  121. package/esm2022/mobile-mode/mobile-mode.class.mjs +3 -1
  122. package/esm2022/multi-combobox/multi-combobox.component.mjs +2 -2
  123. package/esm2022/multi-combobox/select-all-toggler/select-all-toggler.component.mjs +1 -1
  124. package/esm2022/multi-input/multi-input.component.mjs +1 -1
  125. package/esm2022/notification/notification/notification.component.mjs +2 -2
  126. package/esm2022/object-identifier/object-identifier.component.mjs +2 -2
  127. package/esm2022/object-marker/object-marker.component.mjs +2 -2
  128. package/esm2022/object-number/object-number.component.mjs +2 -2
  129. package/esm2022/object-status/object-status.component.mjs +2 -2
  130. package/esm2022/pagination/pagination.component.mjs +2 -2
  131. package/esm2022/panel/panel.component.mjs +2 -2
  132. package/esm2022/popover/popover-body/popover-body-directives/popover-body-footer.directive.mjs +4 -3
  133. package/esm2022/popover/popover-body/popover-body-directives/popover-body-header.directive.mjs +4 -3
  134. package/esm2022/popover/popover-body/popover-body.component.mjs +8 -11
  135. package/esm2022/popover/popover-container/popover-container.directive.mjs +4 -3
  136. package/esm2022/popover/popover-control/popover-control.component.mjs +3 -3
  137. package/esm2022/popover/popover-mobile/popover-mobile.component.mjs +10 -7
  138. package/esm2022/popover/popover-mobile/popover-mobile.module.mjs +4 -5
  139. package/esm2022/popover/popover-trigger.directive.mjs +4 -3
  140. package/esm2022/popover/popover.component.mjs +5 -6
  141. package/esm2022/popover/popover.module.mjs +5 -10
  142. package/esm2022/product-switch/product-switch-body/product-switch-body.component.mjs +2 -2
  143. package/esm2022/progress-indicator/progress-indicator.component.mjs +2 -2
  144. package/esm2022/quick-view/quick-view/quick-view.component.mjs +2 -2
  145. package/esm2022/radio/radio-button/radio-button.component.mjs +3 -3
  146. package/esm2022/rating-indicator/components/rating-indicator.component.mjs +2 -2
  147. package/esm2022/resizable-card-layout/resizable-card-layout/resizable-card-item/resizable-card-item.component.mjs +2 -2
  148. package/esm2022/resizable-card-layout/resizable-card-layout/resizable-card-layout.component.mjs +2 -2
  149. package/esm2022/segmented-button/segmented-button.component.mjs +2 -2
  150. package/esm2022/select/select.component.mjs +2 -2
  151. package/esm2022/shared/interfaces/search-component.interface.mjs +1 -1
  152. package/esm2022/shared/interfaces/special-day-rule.mjs +1 -1
  153. package/esm2022/shellbar/product-menu/product-menu.component.mjs +12 -8
  154. package/esm2022/shellbar/shellbar-action/shellbar-action.component.mjs +8 -6
  155. package/esm2022/shellbar/shellbar-actions/shellbar-actions.component.mjs +8 -9
  156. package/esm2022/shellbar/shellbar-actions-mobile/shellbar-actions-mobile.component.mjs +9 -7
  157. package/esm2022/shellbar/shellbar-logo/shellbar-logo.component.mjs +3 -3
  158. package/esm2022/shellbar/shellbar-sidenav.directive.mjs +4 -3
  159. package/esm2022/shellbar/shellbar-subtitle/shellbar-subtitle.component.mjs +3 -3
  160. package/esm2022/shellbar/shellbar-title/shellbar-title.component.mjs +3 -3
  161. package/esm2022/shellbar/shellbar.component.mjs +10 -9
  162. package/esm2022/shellbar/shellbar.module.mjs +10 -59
  163. package/esm2022/shellbar/user-menu/shellbar-user-menu.component.mjs +9 -6
  164. package/esm2022/side-navigation/side-navigation.component.mjs +2 -2
  165. package/esm2022/skeleton/components/skeleton.component.mjs +2 -2
  166. package/esm2022/slider/slider-position.directive.mjs +19 -11
  167. package/esm2022/slider/slider.component.mjs +136 -79
  168. package/esm2022/slider/slider.model.mjs +2 -1
  169. package/esm2022/slider/slider.module.mjs +6 -6
  170. package/esm2022/split-button/split-button.component.mjs +2 -2
  171. package/esm2022/splitter/splitter.component.mjs +2 -2
  172. package/esm2022/status-indicator/status-indicator.component.mjs +2 -2
  173. package/esm2022/step-input/step-input.component.mjs +2 -2
  174. package/esm2022/switch/switch.component.mjs +2 -2
  175. package/esm2022/table/table-wrapper.component.mjs +2 -2
  176. package/esm2022/table/table.component.mjs +2 -2
  177. package/esm2022/tabs/tab-list.component.mjs +2 -2
  178. package/esm2022/tabs/tab-nav/tab-nav.component.mjs +2 -2
  179. package/esm2022/text/text.component.mjs +7 -7
  180. package/esm2022/text/text.module.mjs +4 -9
  181. package/esm2022/tile/tile.component.mjs +2 -2
  182. package/esm2022/time/time.component.mjs +2 -2
  183. package/esm2022/title/title.component.mjs +3 -3
  184. package/esm2022/title/title.module.mjs +4 -6
  185. package/esm2022/token/token.component.mjs +2 -2
  186. package/esm2022/token/tokenizer.component.mjs +2 -2
  187. package/esm2022/toolbar/deprecated-toolbar-size.directive.mjs +4 -3
  188. package/esm2022/toolbar/toolbar-form-label.directive.mjs +4 -3
  189. package/esm2022/toolbar/toolbar-item.directive.mjs +4 -3
  190. package/esm2022/toolbar/toolbar-label.directive.mjs +4 -3
  191. package/esm2022/toolbar/toolbar-overflow-button-menu.directive.mjs +4 -3
  192. package/esm2022/toolbar/toolbar-overflow-button.directive.mjs +4 -3
  193. package/esm2022/toolbar/toolbar-separator.component.mjs +4 -3
  194. package/esm2022/toolbar/toolbar-spacer.directive.mjs +4 -3
  195. package/esm2022/toolbar/toolbar.component.mjs +39 -18
  196. package/esm2022/toolbar/toolbar.module.mjs +5 -10
  197. package/esm2022/tree/components/tree-item/tree-item.component.mjs +1 -1
  198. package/esm2022/tree/tree.component.mjs +2 -2
  199. package/esm2022/upload-collection/upload-collection.component.mjs +3 -3
  200. package/esm2022/vertical-navigation/vertical-navigation-main-navigation.component.mjs +2 -2
  201. package/esm2022/vertical-navigation/vertical-navigation.component.mjs +2 -2
  202. package/esm2022/wizard/wizard.component.mjs +2 -2
  203. package/fesm2022/fundamental-ngx-core-action-bar.mjs +2 -2
  204. package/fesm2022/fundamental-ngx-core-action-bar.mjs.map +1 -1
  205. package/fesm2022/fundamental-ngx-core-action-sheet.mjs +2 -2
  206. package/fesm2022/fundamental-ngx-core-action-sheet.mjs.map +1 -1
  207. package/fesm2022/fundamental-ngx-core-avatar-group.mjs +2 -2
  208. package/fesm2022/fundamental-ngx-core-avatar-group.mjs.map +1 -1
  209. package/fesm2022/fundamental-ngx-core-avatar.mjs +2 -2
  210. package/fesm2022/fundamental-ngx-core-avatar.mjs.map +1 -1
  211. package/fesm2022/fundamental-ngx-core-bar.mjs +2 -2
  212. package/fesm2022/fundamental-ngx-core-bar.mjs.map +1 -1
  213. package/fesm2022/fundamental-ngx-core-breadcrumb.mjs +2 -2
  214. package/fesm2022/fundamental-ngx-core-breadcrumb.mjs.map +1 -1
  215. package/fesm2022/fundamental-ngx-core-busy-indicator.mjs +9 -10
  216. package/fesm2022/fundamental-ngx-core-busy-indicator.mjs.map +1 -1
  217. package/fesm2022/fundamental-ngx-core-button.mjs +2 -2
  218. package/fesm2022/fundamental-ngx-core-button.mjs.map +1 -1
  219. package/fesm2022/fundamental-ngx-core-calendar.mjs +91 -95
  220. package/fesm2022/fundamental-ngx-core-calendar.mjs.map +1 -1
  221. package/fesm2022/fundamental-ngx-core-card.mjs +4 -4
  222. package/fesm2022/fundamental-ngx-core-card.mjs.map +1 -1
  223. package/fesm2022/fundamental-ngx-core-carousel.mjs +29 -19
  224. package/fesm2022/fundamental-ngx-core-carousel.mjs.map +1 -1
  225. package/fesm2022/fundamental-ngx-core-checkbox.mjs +43 -20
  226. package/fesm2022/fundamental-ngx-core-checkbox.mjs.map +1 -1
  227. package/fesm2022/fundamental-ngx-core-combobox.mjs +2 -1
  228. package/fesm2022/fundamental-ngx-core-combobox.mjs.map +1 -1
  229. package/fesm2022/fundamental-ngx-core-date-picker.mjs +235 -86
  230. package/fesm2022/fundamental-ngx-core-date-picker.mjs.map +1 -1
  231. package/fesm2022/fundamental-ngx-core-datetime-picker.mjs +211 -88
  232. package/fesm2022/fundamental-ngx-core-datetime-picker.mjs.map +1 -1
  233. package/fesm2022/fundamental-ngx-core-dialog.mjs +23 -15
  234. package/fesm2022/fundamental-ngx-core-dialog.mjs.map +1 -1
  235. package/fesm2022/fundamental-ngx-core-dynamic-page.mjs +3 -3
  236. package/fesm2022/fundamental-ngx-core-dynamic-page.mjs.map +1 -1
  237. package/fesm2022/fundamental-ngx-core-dynamic-side-content.mjs +2 -2
  238. package/fesm2022/fundamental-ngx-core-dynamic-side-content.mjs.map +1 -1
  239. package/fesm2022/fundamental-ngx-core-facets.mjs +2 -2
  240. package/fesm2022/fundamental-ngx-core-facets.mjs.map +1 -1
  241. package/fesm2022/fundamental-ngx-core-feed-input.mjs +2 -2
  242. package/fesm2022/fundamental-ngx-core-feed-input.mjs.map +1 -1
  243. package/fesm2022/fundamental-ngx-core-feed-list-item.mjs +2 -2
  244. package/fesm2022/fundamental-ngx-core-feed-list-item.mjs.map +1 -1
  245. package/fesm2022/fundamental-ngx-core-file-uploader.mjs +2 -2
  246. package/fesm2022/fundamental-ngx-core-file-uploader.mjs.map +1 -1
  247. package/fesm2022/fundamental-ngx-core-fixed-card-layout.mjs +2 -2
  248. package/fesm2022/fundamental-ngx-core-fixed-card-layout.mjs.map +1 -1
  249. package/fesm2022/fundamental-ngx-core-flexible-column-layout.mjs +2 -2
  250. package/fesm2022/fundamental-ngx-core-flexible-column-layout.mjs.map +1 -1
  251. package/fesm2022/fundamental-ngx-core-form.mjs +14 -14
  252. package/fesm2022/fundamental-ngx-core-form.mjs.map +1 -1
  253. package/fesm2022/fundamental-ngx-core-grid-list.mjs +4 -4
  254. package/fesm2022/fundamental-ngx-core-grid-list.mjs.map +1 -1
  255. package/fesm2022/fundamental-ngx-core-icon.mjs +2 -2
  256. package/fesm2022/fundamental-ngx-core-icon.mjs.map +1 -1
  257. package/fesm2022/fundamental-ngx-core-illustrated-message.mjs +2 -2
  258. package/fesm2022/fundamental-ngx-core-illustrated-message.mjs.map +1 -1
  259. package/fesm2022/fundamental-ngx-core-info-label.mjs +2 -2
  260. package/fesm2022/fundamental-ngx-core-info-label.mjs.map +1 -1
  261. package/fesm2022/fundamental-ngx-core-input-group.mjs +2 -2
  262. package/fesm2022/fundamental-ngx-core-input-group.mjs.map +1 -1
  263. package/fesm2022/fundamental-ngx-core-layout-grid.mjs +2 -2
  264. package/fesm2022/fundamental-ngx-core-layout-grid.mjs.map +1 -1
  265. package/fesm2022/fundamental-ngx-core-layout-panel.mjs +2 -2
  266. package/fesm2022/fundamental-ngx-core-layout-panel.mjs.map +1 -1
  267. package/fesm2022/fundamental-ngx-core-link.mjs +10 -12
  268. package/fesm2022/fundamental-ngx-core-link.mjs.map +1 -1
  269. package/fesm2022/fundamental-ngx-core-list.mjs +26 -17
  270. package/fesm2022/fundamental-ngx-core-list.mjs.map +1 -1
  271. package/fesm2022/fundamental-ngx-core-menu.mjs +2 -2
  272. package/fesm2022/fundamental-ngx-core-menu.mjs.map +1 -1
  273. package/fesm2022/fundamental-ngx-core-message-box.mjs +2 -2
  274. package/fesm2022/fundamental-ngx-core-message-box.mjs.map +1 -1
  275. package/fesm2022/fundamental-ngx-core-message-page.mjs +2 -2
  276. package/fesm2022/fundamental-ngx-core-message-page.mjs.map +1 -1
  277. package/fesm2022/fundamental-ngx-core-message-strip.mjs +62 -9
  278. package/fesm2022/fundamental-ngx-core-message-strip.mjs.map +1 -1
  279. package/fesm2022/fundamental-ngx-core-message-toast.mjs +2 -2
  280. package/fesm2022/fundamental-ngx-core-message-toast.mjs.map +1 -1
  281. package/fesm2022/fundamental-ngx-core-micro-process-flow.mjs +2 -2
  282. package/fesm2022/fundamental-ngx-core-micro-process-flow.mjs.map +1 -1
  283. package/fesm2022/fundamental-ngx-core-mobile-mode.mjs +2 -0
  284. package/fesm2022/fundamental-ngx-core-mobile-mode.mjs.map +1 -1
  285. package/fesm2022/fundamental-ngx-core-multi-combobox.mjs +3 -3
  286. package/fesm2022/fundamental-ngx-core-multi-combobox.mjs.map +1 -1
  287. package/fesm2022/fundamental-ngx-core-multi-input.mjs +1 -1
  288. package/fesm2022/fundamental-ngx-core-multi-input.mjs.map +1 -1
  289. package/fesm2022/fundamental-ngx-core-notification.mjs +2 -2
  290. package/fesm2022/fundamental-ngx-core-notification.mjs.map +1 -1
  291. package/fesm2022/fundamental-ngx-core-object-identifier.mjs +2 -2
  292. package/fesm2022/fundamental-ngx-core-object-identifier.mjs.map +1 -1
  293. package/fesm2022/fundamental-ngx-core-object-marker.mjs +2 -2
  294. package/fesm2022/fundamental-ngx-core-object-marker.mjs.map +1 -1
  295. package/fesm2022/fundamental-ngx-core-object-number.mjs +2 -2
  296. package/fesm2022/fundamental-ngx-core-object-number.mjs.map +1 -1
  297. package/fesm2022/fundamental-ngx-core-object-status.mjs +2 -2
  298. package/fesm2022/fundamental-ngx-core-object-status.mjs.map +1 -1
  299. package/fesm2022/fundamental-ngx-core-pagination.mjs +2 -2
  300. package/fesm2022/fundamental-ngx-core-pagination.mjs.map +1 -1
  301. package/fesm2022/fundamental-ngx-core-panel.mjs +2 -2
  302. package/fesm2022/fundamental-ngx-core-panel.mjs.map +1 -1
  303. package/fesm2022/fundamental-ngx-core-popover.mjs +36 -38
  304. package/fesm2022/fundamental-ngx-core-popover.mjs.map +1 -1
  305. package/fesm2022/fundamental-ngx-core-product-switch.mjs +2 -2
  306. package/fesm2022/fundamental-ngx-core-product-switch.mjs.map +1 -1
  307. package/fesm2022/fundamental-ngx-core-progress-indicator.mjs +2 -2
  308. package/fesm2022/fundamental-ngx-core-progress-indicator.mjs.map +1 -1
  309. package/fesm2022/fundamental-ngx-core-quick-view.mjs +2 -2
  310. package/fesm2022/fundamental-ngx-core-quick-view.mjs.map +1 -1
  311. package/fesm2022/fundamental-ngx-core-radio.mjs +2 -2
  312. package/fesm2022/fundamental-ngx-core-radio.mjs.map +1 -1
  313. package/fesm2022/fundamental-ngx-core-rating-indicator.mjs +2 -2
  314. package/fesm2022/fundamental-ngx-core-rating-indicator.mjs.map +1 -1
  315. package/fesm2022/fundamental-ngx-core-resizable-card-layout.mjs +4 -4
  316. package/fesm2022/fundamental-ngx-core-resizable-card-layout.mjs.map +1 -1
  317. package/fesm2022/fundamental-ngx-core-segmented-button.mjs +2 -2
  318. package/fesm2022/fundamental-ngx-core-segmented-button.mjs.map +1 -1
  319. package/fesm2022/fundamental-ngx-core-select.mjs +2 -2
  320. package/fesm2022/fundamental-ngx-core-select.mjs.map +1 -1
  321. package/fesm2022/fundamental-ngx-core-shellbar.mjs +93 -132
  322. package/fesm2022/fundamental-ngx-core-shellbar.mjs.map +1 -1
  323. package/fesm2022/fundamental-ngx-core-side-navigation.mjs +2 -2
  324. package/fesm2022/fundamental-ngx-core-side-navigation.mjs.map +1 -1
  325. package/fesm2022/fundamental-ngx-core-skeleton.mjs +2 -2
  326. package/fesm2022/fundamental-ngx-core-skeleton.mjs.map +1 -1
  327. package/fesm2022/fundamental-ngx-core-slider.mjs +158 -96
  328. package/fesm2022/fundamental-ngx-core-slider.mjs.map +1 -1
  329. package/fesm2022/fundamental-ngx-core-split-button.mjs +2 -2
  330. package/fesm2022/fundamental-ngx-core-split-button.mjs.map +1 -1
  331. package/fesm2022/fundamental-ngx-core-splitter.mjs +2 -2
  332. package/fesm2022/fundamental-ngx-core-splitter.mjs.map +1 -1
  333. package/fesm2022/fundamental-ngx-core-status-indicator.mjs +2 -2
  334. package/fesm2022/fundamental-ngx-core-status-indicator.mjs.map +1 -1
  335. package/fesm2022/fundamental-ngx-core-step-input.mjs +2 -2
  336. package/fesm2022/fundamental-ngx-core-step-input.mjs.map +1 -1
  337. package/fesm2022/fundamental-ngx-core-switch.mjs +2 -2
  338. package/fesm2022/fundamental-ngx-core-switch.mjs.map +1 -1
  339. package/fesm2022/fundamental-ngx-core-table.mjs +4 -4
  340. package/fesm2022/fundamental-ngx-core-table.mjs.map +1 -1
  341. package/fesm2022/fundamental-ngx-core-tabs.mjs +4 -4
  342. package/fesm2022/fundamental-ngx-core-tabs.mjs.map +1 -1
  343. package/fesm2022/fundamental-ngx-core-text.mjs +9 -14
  344. package/fesm2022/fundamental-ngx-core-text.mjs.map +1 -1
  345. package/fesm2022/fundamental-ngx-core-tile.mjs +2 -2
  346. package/fesm2022/fundamental-ngx-core-tile.mjs.map +1 -1
  347. package/fesm2022/fundamental-ngx-core-time.mjs +2 -2
  348. package/fesm2022/fundamental-ngx-core-time.mjs.map +1 -1
  349. package/fesm2022/fundamental-ngx-core-title.mjs +5 -7
  350. package/fesm2022/fundamental-ngx-core-title.mjs.map +1 -1
  351. package/fesm2022/fundamental-ngx-core-token.mjs +4 -4
  352. package/fesm2022/fundamental-ngx-core-token.mjs.map +1 -1
  353. package/fesm2022/fundamental-ngx-core-toolbar.mjs +80 -56
  354. package/fesm2022/fundamental-ngx-core-toolbar.mjs.map +1 -1
  355. package/fesm2022/fundamental-ngx-core-tree.mjs +3 -3
  356. package/fesm2022/fundamental-ngx-core-tree.mjs.map +1 -1
  357. package/fesm2022/fundamental-ngx-core-upload-collection.mjs +2 -2
  358. package/fesm2022/fundamental-ngx-core-upload-collection.mjs.map +1 -1
  359. package/fesm2022/fundamental-ngx-core-vertical-navigation.mjs +4 -4
  360. package/fesm2022/fundamental-ngx-core-vertical-navigation.mjs.map +1 -1
  361. package/fesm2022/fundamental-ngx-core-wizard.mjs +2 -2
  362. package/fesm2022/fundamental-ngx-core-wizard.mjs.map +1 -1
  363. package/fundamental-ngx-core-v0.46.0-rc.1.tgz +0 -0
  364. package/link/link.component.d.ts +1 -1
  365. package/link/link.module.d.ts +1 -3
  366. package/list/directives/list-secondary.directive.d.ts +16 -3
  367. package/list/list.module.d.ts +20 -20
  368. package/message-strip/alert/message-strip-configuration-type.d.ts +2 -0
  369. package/message-strip/index.d.ts +2 -0
  370. package/message-strip/message-strip-icon.directive.d.ts +9 -0
  371. package/message-strip/message-strip-indication-color.d.ts +4 -0
  372. package/message-strip/message-strip.component.d.ts +11 -1
  373. package/message-strip/message-strip.module.d.ts +2 -1
  374. package/mobile-mode/mobile-mode.class.d.ts +3 -1
  375. package/package.json +4 -4
  376. package/popover/popover-body/popover-body-directives/popover-body-footer.directive.d.ts +1 -1
  377. package/popover/popover-body/popover-body-directives/popover-body-header.directive.d.ts +1 -1
  378. package/popover/popover-body/popover-body.component.d.ts +1 -1
  379. package/popover/popover-container/popover-container.directive.d.ts +1 -1
  380. package/popover/popover-control/popover-control.component.d.ts +1 -1
  381. package/popover/popover-mobile/popover-mobile.component.d.ts +3 -3
  382. package/popover/popover-mobile/popover-mobile.module.d.ts +5 -5
  383. package/popover/popover-trigger.directive.d.ts +1 -1
  384. package/popover/popover.component.d.ts +1 -1
  385. package/popover/popover.module.d.ts +1 -5
  386. package/schematics/add-dependencies/index.js +6 -6
  387. package/shared/interfaces/search-component.interface.d.ts +1 -0
  388. package/shared/interfaces/special-day-rule.d.ts +1 -1
  389. package/shellbar/product-menu/product-menu.component.d.ts +1 -1
  390. package/shellbar/shellbar-action/shellbar-action.component.d.ts +1 -1
  391. package/shellbar/shellbar-actions/shellbar-actions.component.d.ts +1 -1
  392. package/shellbar/shellbar-actions-mobile/shellbar-actions-mobile.component.d.ts +1 -1
  393. package/shellbar/shellbar-logo/shellbar-logo.component.d.ts +1 -1
  394. package/shellbar/shellbar-sidenav.directive.d.ts +1 -1
  395. package/shellbar/shellbar-subtitle/shellbar-subtitle.component.d.ts +1 -1
  396. package/shellbar/shellbar-title/shellbar-title.component.d.ts +1 -1
  397. package/shellbar/shellbar.component.d.ts +1 -1
  398. package/shellbar/shellbar.module.d.ts +2 -14
  399. package/shellbar/user-menu/shellbar-user-menu.component.d.ts +1 -1
  400. package/slider/slider-position.directive.d.ts +6 -4
  401. package/slider/slider.component.d.ts +21 -13
  402. package/slider/slider.model.d.ts +2 -1
  403. package/slider/slider.module.d.ts +9 -9
  404. package/text/text.component.d.ts +1 -1
  405. package/text/text.module.d.ts +1 -5
  406. package/title/title.component.d.ts +1 -1
  407. package/title/title.module.d.ts +1 -2
  408. package/toolbar/deprecated-toolbar-size.directive.d.ts +1 -1
  409. package/toolbar/toolbar-form-label.directive.d.ts +1 -1
  410. package/toolbar/toolbar-item.directive.d.ts +1 -1
  411. package/toolbar/toolbar-label.directive.d.ts +1 -1
  412. package/toolbar/toolbar-overflow-button-menu.directive.d.ts +1 -1
  413. package/toolbar/toolbar-overflow-button.directive.d.ts +1 -1
  414. package/toolbar/toolbar-separator.component.d.ts +1 -1
  415. package/toolbar/toolbar-spacer.directive.d.ts +1 -1
  416. package/toolbar/toolbar.component.d.ts +9 -5
  417. package/toolbar/toolbar.module.d.ts +11 -15
  418. package/fundamental-ngx-core-v0.45.1.tgz +0 -0
@@ -10,16 +10,11 @@ import { CalendarHeaderComponent } from './calendar-header/calendar-header.compo
10
10
  import { CalendarService } from './calendar.service';
11
11
  import { createMissingDateImplementationError } from './calendar-errors';
12
12
  import { CalendarAggregatedYearViewComponent } from './calendar-views/calendar-aggregated-year-view/calendar-aggregated-year-view.component';
13
- import { ContentDensityObserver, contentDensityObserverProviders } from '@fundamental-ngx/core/content-density';
13
+ import { ContentDensityModule, ContentDensityObserver, contentDensityObserverProviders } from '@fundamental-ngx/core/content-density';
14
+ import { NgIf, NgSwitch, NgSwitchCase } from '@angular/common';
14
15
  import * as i0 from "@angular/core";
15
16
  import * as i1 from "@fundamental-ngx/core/content-density";
16
17
  import * as i2 from "@fundamental-ngx/core/datetime";
17
- import * as i3 from "@angular/common";
18
- import * as i4 from "./calendar-header/calendar-header.component";
19
- import * as i5 from "./calendar-views/calendar-day-view/calendar-day-view.component";
20
- import * as i6 from "./calendar-views/calendar-month-view/calendar-month-view.component";
21
- import * as i7 from "./calendar-views/calendar-year-view/calendar-year-view.component";
22
- import * as i8 from "./calendar-views/calendar-aggregated-year-view/calendar-aggregated-year-view.component";
23
18
  let calendarUniqueId = 0;
24
19
  /**
25
20
  * Months: 1 = January, 12 = december.
@@ -39,7 +34,6 @@ export class CalendarComponent {
39
34
  _dateTimeAdapter, _dateTimeFormats) {
40
35
  this._elementRef = _elementRef;
41
36
  this._changeDetectorRef = _changeDetectorRef;
42
- this._contentDensityObserver = _contentDensityObserver;
43
37
  this._dateTimeAdapter = _dateTimeAdapter;
44
38
  this._dateTimeFormats = _dateTimeFormats;
45
39
  /**
@@ -62,7 +56,7 @@ export class CalendarComponent {
62
56
  this.id = 'fd-calendar-' + calendarUniqueId++;
63
57
  /**
64
58
  * Special days mark, it can be used by passing array of object with
65
- * Special day number, list 1-20 [class:`fd-calendar__special-day--{{number}}`] is available there:
59
+ * Special day number, list 1-20 [class:`fd-calendar__item--legend-{{number}}`] is available there:
66
60
  * https://sap.github.io/fundamental-styles/components/calendar.html calendar special days section
67
61
  * Rule accepts method with D object as a parameter. ex:
68
62
  * `rule: (fdDate: D) => fdDate.getDay() === 1`, which will mark all sundays as special day.
@@ -491,7 +485,7 @@ export class CalendarComponent {
491
485
  }
492
486
  }
493
487
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: CalendarComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.ContentDensityObserver }, { token: i2.DatetimeAdapter, optional: true }, { token: DATE_TIME_FORMATS, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
494
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.0", type: CalendarComponent, selector: "fd-calendar", inputs: { selectedDate: "selectedDate", markWeekends: "markWeekends", showWeekNumbers: "showWeekNumbers", mobileLandscape: "mobileLandscape", mobilePortrait: "mobilePortrait", selectedRangeDate: "selectedRangeDate", activeView: "activeView", startingDayOfWeek: "startingDayOfWeek", calType: "calType", id: "id", specialDaysRules: "specialDaysRules", yearGrid: "yearGrid", aggregatedYearGrid: "aggregatedYearGrid", rangeHoverEffect: "rangeHoverEffect", previousButtonDisableFunction: "previousButtonDisableFunction", nextButtonDisableFunction: "nextButtonDisableFunction", escapeFocusFunction: "escapeFocusFunction", disableFunction: "disableFunction", disableRangeStartFunction: "disableRangeStartFunction", disableRangeEndFunction: "disableRangeEndFunction" }, outputs: { activeViewChange: "activeViewChange", selectedDateChange: "selectedDateChange", selectedRangeDateChange: "selectedRangeDateChange", isValidDateChange: "isValidDateChange", closeCalendar: "closeCalendar", closeClicked: "closeClicked" }, host: { listeners: { "focusout": "_focusOut($event)" }, properties: { "attr.id": "id", "class.fd-calendar--mobile-landscape": "this.mobileLandscape", "class.fd-calendar--mobile-portrait": "this.mobilePortrait" }, classAttribute: "fd-calendar fd-has-display-block" }, providers: [
488
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.0", type: CalendarComponent, isStandalone: true, selector: "fd-calendar", inputs: { selectedDate: "selectedDate", markWeekends: "markWeekends", showWeekNumbers: "showWeekNumbers", mobileLandscape: "mobileLandscape", mobilePortrait: "mobilePortrait", selectedRangeDate: "selectedRangeDate", activeView: "activeView", startingDayOfWeek: "startingDayOfWeek", calType: "calType", id: "id", specialDaysRules: "specialDaysRules", yearGrid: "yearGrid", aggregatedYearGrid: "aggregatedYearGrid", rangeHoverEffect: "rangeHoverEffect", previousButtonDisableFunction: "previousButtonDisableFunction", nextButtonDisableFunction: "nextButtonDisableFunction", escapeFocusFunction: "escapeFocusFunction", disableFunction: "disableFunction", disableRangeStartFunction: "disableRangeStartFunction", disableRangeEndFunction: "disableRangeEndFunction" }, outputs: { activeViewChange: "activeViewChange", selectedDateChange: "selectedDateChange", selectedRangeDateChange: "selectedRangeDateChange", isValidDateChange: "isValidDateChange", closeCalendar: "closeCalendar", closeClicked: "closeClicked" }, host: { listeners: { "focusout": "_focusOut($event)" }, properties: { "attr.id": "id", "class.fd-calendar--mobile-landscape": "this.mobileLandscape", "class.fd-calendar--mobile-portrait": "this.mobilePortrait" }, classAttribute: "fd-calendar fd-has-display-block" }, providers: [
495
489
  {
496
490
  provide: NG_VALUE_ACCESSOR,
497
491
  useExisting: forwardRef(() => CalendarComponent),
@@ -504,7 +498,7 @@ export class CalendarComponent {
504
498
  },
505
499
  CalendarService,
506
500
  contentDensityObserverProviders()
507
- ], viewQueries: [{ propertyName: "_dayViewComponent", first: true, predicate: CalendarDayViewComponent, descendants: true }, { propertyName: "_monthViewComponent", first: true, predicate: CalendarMonthViewComponent, descendants: true }, { propertyName: "_yearViewComponent", first: true, predicate: CalendarYearViewComponent, descendants: true }, { propertyName: "_aggregatedYearViewComponent", first: true, predicate: CalendarAggregatedYearViewComponent, descendants: true }, { propertyName: "_calendarHeaderComponent", first: true, predicate: CalendarHeaderComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<fd-calendar-header\n [currentlyDisplayed]=\"_currentlyDisplayed\"\n [activeView]=\"activeView\"\n [id]=\"id\"\n [calendarYearGrid]=\"yearGrid\"\n [mobileLandscape]=\"mobileLandscape\"\n (closeClicked)=\"closeClicked.emit()\"\n (nextClicked)=\"handleNextArrowClick()\"\n (previousClicked)=\"handlePreviousArrowClick()\"\n [previousButtonDisabled]=\"previousButtonDisabled\"\n [nextButtonDisabled]=\"nextButtonDisabled\"\n (activeViewChange)=\"handleActiveViewChange($event)\"\n></fd-calendar-header>\n<ng-container [ngSwitch]=\"activeView\" *ngIf=\"_currentlyDisplayed\">\n <div\n class=\"fd-calendar__content\"\n [class.fd-calendar__content--dates]=\"activeView === 'day'\"\n [class.fd-calendar__content--months]=\"activeView === 'month'\"\n [class.fd-calendar__content--years]=\"activeView === 'year' || activeView === 'aggregatedYear'\"\n >\n <fd-calendar-day-view\n *ngSwitchCase=\"'day'\"\n [selectedDate]=\"selectedDate\"\n [showWeekNumbers]=\"showWeekNumbers\"\n [markWeekends]=\"markWeekends\"\n (selectedDateChange)=\"selectedDateChanged($event)\"\n [selectedRangeDate]=\"selectedRangeDate\"\n (selectedRangeDateChange)=\"selectedRangeDateChanged($event)\"\n [currentlyDisplayed]=\"_currentlyDisplayed\"\n [startingDayOfWeek]=\"getWeekStartDay()\"\n [disableFunction]=\"disableFunction\"\n [disableRangeEndFunction]=\"disableRangeEndFunction\"\n [disableRangeStartFunction]=\"disableRangeStartFunction\"\n [calType]=\"calType\"\n [id]=\"id\"\n [rangeHoverEffect]=\"rangeHoverEffect\"\n [specialDaysRules]=\"specialDaysRules\"\n [focusEscapeFunction]=\"escapeFocusFunction\"\n (nextMonthSelect)=\"displayNextMonth()\"\n (previousMonthSelect)=\"displayPreviousMonth()\"\n ></fd-calendar-day-view>\n <fd-calendar-month-view\n *ngSwitchCase=\"'month'\"\n [monthSelected]=\"_currentlyDisplayed.month\"\n [year]=\"_currentlyDisplayed.year\"\n [id]=\"id\"\n [focusEscapeFunction]=\"escapeFocusFunction\"\n (monthClicked)=\"handleMonthViewChange($event)\"\n ></fd-calendar-month-view>\n <fd-calendar-year-view\n *ngSwitchCase=\"'year'\"\n [yearSelected]=\"_currentlyDisplayed.year\"\n [yearViewGrid]=\"yearGrid\"\n [id]=\"id\"\n [focusEscapeFunction]=\"escapeFocusFunction\"\n (yearClicked)=\"selectedYear($event)\"\n >\n </fd-calendar-year-view>\n <fd-calendar-aggregated-year-view\n *ngSwitchCase=\"'aggregatedYear'\"\n (yearsClicked)=\"selectedYears($event)\"\n [yearSelected]=\"_currentlyDisplayed.year\"\n [yearViewGrid]=\"yearGrid\"\n [aggregatedYearsViewGrid]=\"aggregatedYearGrid\"\n [id]=\"id\"\n [focusEscapeFunction]=\"escapeFocusFunction\"\n >\n </fd-calendar-aggregated-year-view>\n </div>\n</ng-container>\n", styles: ["/*!\n * Fundamental Library Styles v0.28.3\n * Copyright (c) 2023 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n *//*!\n.fd-calendar+(--compact, --mobile-landscape, --mobile-portrait)\n .fd-calendar__header\n .fd-calendar__navigation(--main-navigation)\n .fd-calendar__action(+[--arrow-left, --arrow-right])\n .fd-calendar__close-button--navigation\n .fd-calendar__content(+[--months, --years])\n .fd-calendar__table\n .fd-calendar__group\n .fd-calendar__row\n .fd-calendar__item(+[--other-month, --current, --side-helper, --weekend, --range],\n +[(.is-disabled | [aria-disabled=true]), (.is-focus | [aria-focus=true]), (.is-active | [aria-active=true])])\n .fd-calendar__special-day(+[--1, --2, ..., --19, --20])\n .fd-calendar__text\n*/:root{--fdCalendar_Padding:1rem;--fdCalendar_Item_Width:2.125rem;--fdCalendar_Item_Height:2.75rem;--fdCalendar_Action_Padding:.5rem;--fdCalendar_Item_Spacing:.0625rem;--fdCalendar_Button_Horizontal_Space:.25rem;--fdCalendar_Width:20rem;--fdCalendar_Item_Inner_Border_Size:calc(100% - .125rem);--fdCalendar_Action_Width:auto}.fd-calendar .fd-calendar__item{-webkit-box-sizing:border-box;-webkit-box-flex:1;-ms-flex:1 1 .375rem;background-color:var(--sapLegend_WorkingBackground);border:0;border-radius:var(--fdCalendar_Border_Radius);box-sizing:border-box;color:var(--sapTextColor);cursor:pointer;flex:1 1 .375rem;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:var(--fdCalendar_Item_Height);line-height:var(--sapContent_LineHeight);margin:.0625rem;min-width:var(--fdCalendar_Item_Width);overflow:hidden;padding:0;position:relative}.fd-calendar .fd-calendar__item:after,.fd-calendar .fd-calendar__item:before{box-sizing:inherit;font-size:inherit}.fd-calendar .fd-calendar__item:hover,.fd-calendar .is-hover.fd-calendar__item{background-color:var(--sapList_Hover_Background)}.fd-calendar__content--dates .fd-calendar__item--side-helper{align-self:center;background-color:var(--sapList_Background);height:var(--fdCalendar_Item_Side_Helper, 1.875rem);pointer-events:none}.fd-calendar__content--dates .fd-calendar__item--other-month{background-color:var(--sapList_Background)}.fd-calendar__content--dates .fd-calendar__item--other-month:hover,.fd-calendar__content--dates .is-hover.fd-calendar__item--other-month{background-color:var(--sapList_Hover_Background)}.fd-calendar__content--dates .fd-calendar__item--weekend{background-color:var(--sapLegend_NonWorkingBackground)}.fd-calendar__content--dates .fd-calendar__item--weekend:hover,.fd-calendar__content--dates .is-hover.fd-calendar__item--weekend{background-color:var(--sapList_Hover_Background)}.fd-calendar .fd-calendar__item--current,.fd-calendar__content--dates .fd-calendar__item--range.fd-calendar__item--current{border:solid var(--sapLegend_CurrentDateTime)!important}.fd-calendar .fd-calendar__item--current:active:after,.fd-calendar .is-active.fd-calendar__item--current:after,.fd-calendar__content--dates .fd-calendar__item--range.fd-calendar__item--current:active:after,.fd-calendar__content--dates .is-active.fd-calendar__item--range.fd-calendar__item--current:after{border:var(--fdCalendar_Active_Item_Border);border-radius:calc(var(--fdCalendar_Border_Radius) / 2);bottom:.0625rem;content:\" \";height:var(--fdCalendar_Item_Inner_Border_Size);left:.0625rem;position:absolute;right:auto;width:var(--fdCalendar_Item_Inner_Border_Size)}.fd-calendar .fd-calendar__item--current:active:after[dir=rtl],.fd-calendar .is-active.fd-calendar__item--current:after[dir=rtl],.fd-calendar [dir=rtl] .fd-calendar__item--current:active:after,.fd-calendar [dir=rtl] .is-active.fd-calendar__item--current:after,.fd-calendar__content--dates .fd-calendar__item--range.fd-calendar__item--current:active:after[dir=rtl],.fd-calendar__content--dates .is-active.fd-calendar__item--range.fd-calendar__item--current:after[dir=rtl],.fd-calendar__content--dates [dir=rtl] .fd-calendar__item--range.fd-calendar__item--current:active:after,.fd-calendar__content--dates [dir=rtl] .is-active.fd-calendar__item--range.fd-calendar__item--current:after,[dir=rtl] .fd-calendar .fd-calendar__item--current:active:after,[dir=rtl] .fd-calendar .is-active.fd-calendar__item--current:after,[dir=rtl] .fd-calendar__content--dates .fd-calendar__item--range.fd-calendar__item--current:active:after,[dir=rtl] .fd-calendar__content--dates .is-active.fd-calendar__item--range.fd-calendar__item--current:after{left:auto;right:.0625rem}.fd-calendar__content--dates .fd-calendar__item.is-active,.fd-calendar__content--dates .fd-calendar__item:active{background-color:var(--sapContent_Selected_Background);border:var(--fdCalendar_Active_Item_Border);font-weight:var(--fdCalendar_Active_Item_Font_Weight)}.fd-calendar__content--dates .fd-calendar__item.is-active:hover,.fd-calendar__content--dates .fd-calendar__item:hover:active,.fd-calendar__content--dates .is-hover.fd-calendar__item.is-active,.fd-calendar__content--dates .is-hover.fd-calendar__item:active{background-color:var(--fdCalendar_Item_Active_Background_Hover)}.fd-calendar__content--dates .fd-calendar__item.is-active:focus,.fd-calendar__content--dates .fd-calendar__item:focus:active,.fd-calendar__content--dates .is-focus.fd-calendar__item.is-active,.fd-calendar__content--dates .is-focus.fd-calendar__item:active{box-shadow:none;outline-color:var(--fdCalendar_Active_Focus_Item_Outline_Color);z-index:5}.fd-calendar__content--dates .fd-calendar__item--range{background-color:var(--sapList_SelectionBackgroundColor);border:.0625rem solid var(--sapList_SelectionBorderColor)}.fd-calendar__content--dates .fd-calendar__item--range:hover,.fd-calendar__content--dates .is-hover.fd-calendar__item--range{background-color:var(--sapList_Hover_SelectionBackground)}.fd-calendar__content--dates .fd-calendar__item.is-disabled,.fd-calendar__content--dates .fd-calendar__item:disabled,.fd-calendar__content--dates .fd-calendar__item[aria-disabled=true]{opacity:.4;pointer-events:none}.fd-calendar__content--dates .fd-calendar__item.is-disabled:hover,.fd-calendar__content--dates .fd-calendar__item:hover:disabled,.fd-calendar__content--dates .fd-calendar__item[aria-disabled=true]:hover{cursor:not-allowed}.fd-calendar__content--dates .fd-calendar__item.is-focus,.fd-calendar__content--dates .fd-calendar__item:focus{box-shadow:none;outline:var(--sapContent_FocusColor) var(--sapContent_FocusStyle) var(--sapContent_FocusWidth);outline-offset:-.1875rem}.fd-calendar__text{-webkit-box-sizing:border-box;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;border:0;box-sizing:border-box;color:var(--sapTextColor);display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:100%;justify-content:center;line-height:var(--sapContent_LineHeight);margin:0;padding:0;text-shadow:var(--fdCalendar_Text_Shadow)}.fd-calendar__text:after,.fd-calendar__text:before{box-sizing:inherit;font-size:inherit}.fd-calendar{-webkit-box-sizing:border-box;background-color:var(--sapList_Background);border:0;border-radius:var(--fdCalendar_Border_Radius);box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0;padding:var(--fdCalendar_Padding);width:var(--fdCalendar_Width)}.fd-calendar:after,.fd-calendar:before{box-sizing:inherit;font-size:inherit}.fd-calendar__header{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);display:flex;flex-direction:column;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0;position:relative}.fd-calendar__header:after,.fd-calendar__header:before{box-sizing:inherit;font-size:inherit}.fd-calendar__navigation{-webkit-box-sizing:border-box;-webkit-box-pack:center;-ms-flex-pack:center;border:0;box-sizing:border-box;color:var(--sapTextColor);display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;justify-content:center;line-height:var(--sapContent_LineHeight);margin:0;padding:0;padding-bottom:var(--fdCalendar_Button_Horizontal_Space);padding-top:var(--fdCalendar_Button_Horizontal_Space);width:100%}.fd-calendar__navigation:after,.fd-calendar__navigation:before{box-sizing:inherit;font-size:inherit}.fd-calendar__action{-webkit-box-sizing:border-box;-webkit-box-flex:1;-ms-flex-positive:1;border:0;box-sizing:border-box;color:var(--sapTextColor);flex-grow:1;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-calendar__action:after,.fd-calendar__action:before{box-sizing:inherit;font-size:inherit}.fd-calendar__action:not(:last-child):not(:first-child){margin-left:.25rem;margin-right:.25rem}.fd-calendar__action:first-child{margin-right:.25rem}.fd-calendar__action:last-child{margin-left:.25rem}.fd-calendar__action>[type=button]{width:100%}.fd-calendar__action--arrow-left,.fd-calendar__action--arrow-right{flex-grow:0;width:var(--fdCalendar_Action_Width)}.fd-calendar__action--arrow-left+.fd-calendar__action--arrow-right{margin-left:auto}.fd-calendar__action--arrow-left+.fd-calendar__action--arrow-right[dir=rtl],[dir=rtl] .fd-calendar__action--arrow-left+.fd-calendar__action--arrow-right{margin-left:0;margin-right:auto}.fd-calendar__action [class*=sap-icon][dir=rtl],[dir=rtl] .fd-calendar__action [class*=sap-icon]{transform:scaleX(-1)}.fd-calendar__content{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-calendar__content:after,.fd-calendar__content:before{box-sizing:inherit;font-size:inherit}.fd-calendar__content--months,.fd-calendar__content--years{padding-top:1.875rem}.fd-calendar__content--months .fd-calendar__item,.fd-calendar__content--years .fd-calendar__item{background-color:transparent;max-height:var(--fdCalendar_Item_Height)}.fd-calendar__content--months .fd-calendar__item-button,.fd-calendar__content--years .fd-calendar__item-button{min-height:100%;min-width:100%;padding:0}.fd-calendar__content--months .fd-calendar__item--current .fd-calendar__item-button,.fd-calendar__content--years .fd-calendar__item--current .fd-calendar__item-button{-webkit-box-shadow:none;border:none;border-radius:var(--fdCalendar_Month_Year_Item_Border_Radius);box-shadow:none}.fd-calendar__content--months .fd-calendar__item .fd-calendar__text,.fd-calendar__content--years .fd-calendar__item .fd-calendar__text{color:inherit}.fd-calendar__content--dates .fd-calendar__item.is-focus,.fd-calendar__content--dates .fd-calendar__item:focus{z-index:5}.fd-calendar__content--dates .fd-calendar__item.is-active .fd-calendar__text,.fd-calendar__content--dates .fd-calendar__item:active .fd-calendar__text{color:var(--sapContent_Selected_TextColor)}.fd-calendar__content--dates .fd-calendar__item--side-helper .fd-calendar__text{color:var(--sapContent_LabelColor);font-size:var(--sapFontSmallSize)}.fd-calendar__content--dates .fd-calendar__item--other-month .fd-calendar__text{color:var(--sapContent_LabelColor)}.fd-calendar__content--screen-reader-only{clip:rect(0 0 0 0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.fd-calendar__table{-webkit-box-sizing:border-box;border:0;border-spacing:0;box-sizing:border-box;color:var(--sapTextColor);display:table;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0;width:100%}.fd-calendar__table:after,.fd-calendar__table:before{box-sizing:inherit;font-size:inherit}.fd-calendar__group{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);display:table-row-group;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-calendar__group:after,.fd-calendar__group:before{box-sizing:inherit;font-size:inherit}.fd-calendar__row{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-calendar__row:after,.fd-calendar__row:before{box-sizing:inherit;font-size:inherit}.fd-calendar .fd-calendar__item{display:inline-block}.fd-calendar .fd-calendar__item--current .fd-calendar__text:before{border:var(--fdCalendar_Item_Current_Border);border-radius:calc(var(--sapElement_BorderCornerRadius) / 2);content:\"\";inset:0;position:absolute;z-index:1}.fd-calendar__special-day--1 .fd-calendar__text:after{-webkit-box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor1);bottom:0;box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor1);content:\"\";height:var(--fdCalendar_Special_Day_Marker_Height);left:0;position:absolute;right:0}.fd-calendar__special-day--1.is-active .fd-calendar__text:after,.fd-calendar__special-day--1:active .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor1),inset 0 -.33rem 0 var(--fdCalendar_Item_Current_Inner_Border_Color);height:calc(var(--fdCalendar_Special_Day_Marker_Height) + .0625rem)}.fd-calendar__special-day--1.fd-calendar__item--current.is-active .fd-calendar__text:after,.fd-calendar__special-day--1.fd-calendar__item--current:active .fd-calendar__text:after{bottom:var(--fdCalendar_Item_Current_Active_Special_Day_Bottom);height:var(--fdCalendar_Item_Current_Active_Special_Day_Height);left:var(--fdCalendar_Item_Current_Active_Special_Day_Left);right:var(--fdCalendar_Item_Current_Active_Special_Day_Right);width:var(--fdCalendar_Item_Current_Active_Special_Day_Width)}.fd-calendar__special-day--2 .fd-calendar__text:after{-webkit-box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor2);bottom:0;box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor2);content:\"\";height:var(--fdCalendar_Special_Day_Marker_Height);left:0;position:absolute;right:0}.fd-calendar__special-day--2.is-active .fd-calendar__text:after,.fd-calendar__special-day--2:active .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor2),inset 0 -.33rem 0 var(--fdCalendar_Item_Current_Inner_Border_Color);height:calc(var(--fdCalendar_Special_Day_Marker_Height) + .0625rem)}.fd-calendar__special-day--2.fd-calendar__item--current.is-active .fd-calendar__text:after,.fd-calendar__special-day--2.fd-calendar__item--current:active .fd-calendar__text:after{bottom:var(--fdCalendar_Item_Current_Active_Special_Day_Bottom);height:var(--fdCalendar_Item_Current_Active_Special_Day_Height);left:var(--fdCalendar_Item_Current_Active_Special_Day_Left);right:var(--fdCalendar_Item_Current_Active_Special_Day_Right);width:var(--fdCalendar_Item_Current_Active_Special_Day_Width)}.fd-calendar__special-day--3 .fd-calendar__text:after{-webkit-box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor3);bottom:0;box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor3);content:\"\";height:var(--fdCalendar_Special_Day_Marker_Height);left:0;position:absolute;right:0}.fd-calendar__special-day--3.is-active .fd-calendar__text:after,.fd-calendar__special-day--3:active .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor3),inset 0 -.33rem 0 var(--fdCalendar_Item_Current_Inner_Border_Color);height:calc(var(--fdCalendar_Special_Day_Marker_Height) + .0625rem)}.fd-calendar__special-day--3.fd-calendar__item--current.is-active .fd-calendar__text:after,.fd-calendar__special-day--3.fd-calendar__item--current:active .fd-calendar__text:after{bottom:var(--fdCalendar_Item_Current_Active_Special_Day_Bottom);height:var(--fdCalendar_Item_Current_Active_Special_Day_Height);left:var(--fdCalendar_Item_Current_Active_Special_Day_Left);right:var(--fdCalendar_Item_Current_Active_Special_Day_Right);width:var(--fdCalendar_Item_Current_Active_Special_Day_Width)}.fd-calendar__special-day--4 .fd-calendar__text:after{-webkit-box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor4);bottom:0;box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor4);content:\"\";height:var(--fdCalendar_Special_Day_Marker_Height);left:0;position:absolute;right:0}.fd-calendar__special-day--4.is-active .fd-calendar__text:after,.fd-calendar__special-day--4:active .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor4),inset 0 -.33rem 0 var(--fdCalendar_Item_Current_Inner_Border_Color);height:calc(var(--fdCalendar_Special_Day_Marker_Height) + .0625rem)}.fd-calendar__special-day--4.fd-calendar__item--current.is-active .fd-calendar__text:after,.fd-calendar__special-day--4.fd-calendar__item--current:active .fd-calendar__text:after{bottom:var(--fdCalendar_Item_Current_Active_Special_Day_Bottom);height:var(--fdCalendar_Item_Current_Active_Special_Day_Height);left:var(--fdCalendar_Item_Current_Active_Special_Day_Left);right:var(--fdCalendar_Item_Current_Active_Special_Day_Right);width:var(--fdCalendar_Item_Current_Active_Special_Day_Width)}.fd-calendar__special-day--5 .fd-calendar__text:after{-webkit-box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor5);bottom:0;box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor5);content:\"\";height:var(--fdCalendar_Special_Day_Marker_Height);left:0;position:absolute;right:0}.fd-calendar__special-day--5.is-active .fd-calendar__text:after,.fd-calendar__special-day--5:active .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor5),inset 0 -.33rem 0 var(--fdCalendar_Item_Current_Inner_Border_Color);height:calc(var(--fdCalendar_Special_Day_Marker_Height) + .0625rem)}.fd-calendar__special-day--5.fd-calendar__item--current.is-active .fd-calendar__text:after,.fd-calendar__special-day--5.fd-calendar__item--current:active .fd-calendar__text:after{bottom:var(--fdCalendar_Item_Current_Active_Special_Day_Bottom);height:var(--fdCalendar_Item_Current_Active_Special_Day_Height);left:var(--fdCalendar_Item_Current_Active_Special_Day_Left);right:var(--fdCalendar_Item_Current_Active_Special_Day_Right);width:var(--fdCalendar_Item_Current_Active_Special_Day_Width)}.fd-calendar__special-day--6 .fd-calendar__text:after{-webkit-box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor6);bottom:0;box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor6);content:\"\";height:var(--fdCalendar_Special_Day_Marker_Height);left:0;position:absolute;right:0}.fd-calendar__special-day--6.is-active .fd-calendar__text:after,.fd-calendar__special-day--6:active .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor6),inset 0 -.33rem 0 var(--fdCalendar_Item_Current_Inner_Border_Color);height:calc(var(--fdCalendar_Special_Day_Marker_Height) + .0625rem)}.fd-calendar__special-day--6.fd-calendar__item--current.is-active .fd-calendar__text:after,.fd-calendar__special-day--6.fd-calendar__item--current:active .fd-calendar__text:after{bottom:var(--fdCalendar_Item_Current_Active_Special_Day_Bottom);height:var(--fdCalendar_Item_Current_Active_Special_Day_Height);left:var(--fdCalendar_Item_Current_Active_Special_Day_Left);right:var(--fdCalendar_Item_Current_Active_Special_Day_Right);width:var(--fdCalendar_Item_Current_Active_Special_Day_Width)}.fd-calendar__special-day--7 .fd-calendar__text:after{-webkit-box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor7);bottom:0;box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor7);content:\"\";height:var(--fdCalendar_Special_Day_Marker_Height);left:0;position:absolute;right:0}.fd-calendar__special-day--7.is-active .fd-calendar__text:after,.fd-calendar__special-day--7:active .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor7),inset 0 -.33rem 0 var(--fdCalendar_Item_Current_Inner_Border_Color);height:calc(var(--fdCalendar_Special_Day_Marker_Height) + .0625rem)}.fd-calendar__special-day--7.fd-calendar__item--current.is-active .fd-calendar__text:after,.fd-calendar__special-day--7.fd-calendar__item--current:active .fd-calendar__text:after{bottom:var(--fdCalendar_Item_Current_Active_Special_Day_Bottom);height:var(--fdCalendar_Item_Current_Active_Special_Day_Height);left:var(--fdCalendar_Item_Current_Active_Special_Day_Left);right:var(--fdCalendar_Item_Current_Active_Special_Day_Right);width:var(--fdCalendar_Item_Current_Active_Special_Day_Width)}.fd-calendar__special-day--8 .fd-calendar__text:after{-webkit-box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor8);bottom:0;box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor8);content:\"\";height:var(--fdCalendar_Special_Day_Marker_Height);left:0;position:absolute;right:0}.fd-calendar__special-day--8.is-active .fd-calendar__text:after,.fd-calendar__special-day--8:active .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor8),inset 0 -.33rem 0 var(--fdCalendar_Item_Current_Inner_Border_Color);height:calc(var(--fdCalendar_Special_Day_Marker_Height) + .0625rem)}.fd-calendar__special-day--8.fd-calendar__item--current.is-active .fd-calendar__text:after,.fd-calendar__special-day--8.fd-calendar__item--current:active .fd-calendar__text:after{bottom:var(--fdCalendar_Item_Current_Active_Special_Day_Bottom);height:var(--fdCalendar_Item_Current_Active_Special_Day_Height);left:var(--fdCalendar_Item_Current_Active_Special_Day_Left);right:var(--fdCalendar_Item_Current_Active_Special_Day_Right);width:var(--fdCalendar_Item_Current_Active_Special_Day_Width)}.fd-calendar__special-day--9 .fd-calendar__text:after{-webkit-box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor9);bottom:0;box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor9);content:\"\";height:var(--fdCalendar_Special_Day_Marker_Height);left:0;position:absolute;right:0}.fd-calendar__special-day--9.is-active .fd-calendar__text:after,.fd-calendar__special-day--9:active .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor9),inset 0 -.33rem 0 var(--fdCalendar_Item_Current_Inner_Border_Color);height:calc(var(--fdCalendar_Special_Day_Marker_Height) + .0625rem)}.fd-calendar__special-day--9.fd-calendar__item--current.is-active .fd-calendar__text:after,.fd-calendar__special-day--9.fd-calendar__item--current:active .fd-calendar__text:after{bottom:var(--fdCalendar_Item_Current_Active_Special_Day_Bottom);height:var(--fdCalendar_Item_Current_Active_Special_Day_Height);left:var(--fdCalendar_Item_Current_Active_Special_Day_Left);right:var(--fdCalendar_Item_Current_Active_Special_Day_Right);width:var(--fdCalendar_Item_Current_Active_Special_Day_Width)}.fd-calendar__special-day--10 .fd-calendar__text:after{-webkit-box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor10);bottom:0;box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor10);content:\"\";height:var(--fdCalendar_Special_Day_Marker_Height);left:0;position:absolute;right:0}.fd-calendar__special-day--10.is-active .fd-calendar__text:after,.fd-calendar__special-day--10:active .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor10),inset 0 -.33rem 0 var(--fdCalendar_Item_Current_Inner_Border_Color);height:calc(var(--fdCalendar_Special_Day_Marker_Height) + .0625rem)}.fd-calendar__special-day--10.fd-calendar__item--current.is-active .fd-calendar__text:after,.fd-calendar__special-day--10.fd-calendar__item--current:active .fd-calendar__text:after{bottom:var(--fdCalendar_Item_Current_Active_Special_Day_Bottom);height:var(--fdCalendar_Item_Current_Active_Special_Day_Height);left:var(--fdCalendar_Item_Current_Active_Special_Day_Left);right:var(--fdCalendar_Item_Current_Active_Special_Day_Right);width:var(--fdCalendar_Item_Current_Active_Special_Day_Width)}.fd-calendar__special-day--11 .fd-calendar__text:after{-webkit-box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor11);bottom:0;box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor11);content:\"\";height:var(--fdCalendar_Special_Day_Marker_Height);left:0;position:absolute;right:0}.fd-calendar__special-day--11.is-active .fd-calendar__text:after,.fd-calendar__special-day--11:active .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor11),inset 0 -.33rem 0 var(--fdCalendar_Item_Current_Inner_Border_Color);height:calc(var(--fdCalendar_Special_Day_Marker_Height) + .0625rem)}.fd-calendar__special-day--11.fd-calendar__item--current.is-active .fd-calendar__text:after,.fd-calendar__special-day--11.fd-calendar__item--current:active .fd-calendar__text:after{bottom:var(--fdCalendar_Item_Current_Active_Special_Day_Bottom);height:var(--fdCalendar_Item_Current_Active_Special_Day_Height);left:var(--fdCalendar_Item_Current_Active_Special_Day_Left);right:var(--fdCalendar_Item_Current_Active_Special_Day_Right);width:var(--fdCalendar_Item_Current_Active_Special_Day_Width)}.fd-calendar__special-day--12 .fd-calendar__text:after{-webkit-box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor12);bottom:0;box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor12);content:\"\";height:var(--fdCalendar_Special_Day_Marker_Height);left:0;position:absolute;right:0}.fd-calendar__special-day--12.is-active .fd-calendar__text:after,.fd-calendar__special-day--12:active .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor12),inset 0 -.33rem 0 var(--fdCalendar_Item_Current_Inner_Border_Color);height:calc(var(--fdCalendar_Special_Day_Marker_Height) + .0625rem)}.fd-calendar__special-day--12.fd-calendar__item--current.is-active .fd-calendar__text:after,.fd-calendar__special-day--12.fd-calendar__item--current:active .fd-calendar__text:after{bottom:var(--fdCalendar_Item_Current_Active_Special_Day_Bottom);height:var(--fdCalendar_Item_Current_Active_Special_Day_Height);left:var(--fdCalendar_Item_Current_Active_Special_Day_Left);right:var(--fdCalendar_Item_Current_Active_Special_Day_Right);width:var(--fdCalendar_Item_Current_Active_Special_Day_Width)}.fd-calendar__special-day--13 .fd-calendar__text:after{-webkit-box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor13);bottom:0;box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor13);content:\"\";height:var(--fdCalendar_Special_Day_Marker_Height);left:0;position:absolute;right:0}.fd-calendar__special-day--13.is-active .fd-calendar__text:after,.fd-calendar__special-day--13:active .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor13),inset 0 -.33rem 0 var(--fdCalendar_Item_Current_Inner_Border_Color);height:calc(var(--fdCalendar_Special_Day_Marker_Height) + .0625rem)}.fd-calendar__special-day--13.fd-calendar__item--current.is-active .fd-calendar__text:after,.fd-calendar__special-day--13.fd-calendar__item--current:active .fd-calendar__text:after{bottom:var(--fdCalendar_Item_Current_Active_Special_Day_Bottom);height:var(--fdCalendar_Item_Current_Active_Special_Day_Height);left:var(--fdCalendar_Item_Current_Active_Special_Day_Left);right:var(--fdCalendar_Item_Current_Active_Special_Day_Right);width:var(--fdCalendar_Item_Current_Active_Special_Day_Width)}.fd-calendar__special-day--14 .fd-calendar__text:after{-webkit-box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor14);bottom:0;box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor14);content:\"\";height:var(--fdCalendar_Special_Day_Marker_Height);left:0;position:absolute;right:0}.fd-calendar__special-day--14.is-active .fd-calendar__text:after,.fd-calendar__special-day--14:active .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor14),inset 0 -.33rem 0 var(--fdCalendar_Item_Current_Inner_Border_Color);height:calc(var(--fdCalendar_Special_Day_Marker_Height) + .0625rem)}.fd-calendar__special-day--14.fd-calendar__item--current.is-active .fd-calendar__text:after,.fd-calendar__special-day--14.fd-calendar__item--current:active .fd-calendar__text:after{bottom:var(--fdCalendar_Item_Current_Active_Special_Day_Bottom);height:var(--fdCalendar_Item_Current_Active_Special_Day_Height);left:var(--fdCalendar_Item_Current_Active_Special_Day_Left);right:var(--fdCalendar_Item_Current_Active_Special_Day_Right);width:var(--fdCalendar_Item_Current_Active_Special_Day_Width)}.fd-calendar__special-day--15 .fd-calendar__text:after{-webkit-box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor15);bottom:0;box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor15);content:\"\";height:var(--fdCalendar_Special_Day_Marker_Height);left:0;position:absolute;right:0}.fd-calendar__special-day--15.is-active .fd-calendar__text:after,.fd-calendar__special-day--15:active .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor15),inset 0 -.33rem 0 var(--fdCalendar_Item_Current_Inner_Border_Color);height:calc(var(--fdCalendar_Special_Day_Marker_Height) + .0625rem)}.fd-calendar__special-day--15.fd-calendar__item--current.is-active .fd-calendar__text:after,.fd-calendar__special-day--15.fd-calendar__item--current:active .fd-calendar__text:after{bottom:var(--fdCalendar_Item_Current_Active_Special_Day_Bottom);height:var(--fdCalendar_Item_Current_Active_Special_Day_Height);left:var(--fdCalendar_Item_Current_Active_Special_Day_Left);right:var(--fdCalendar_Item_Current_Active_Special_Day_Right);width:var(--fdCalendar_Item_Current_Active_Special_Day_Width)}.fd-calendar__special-day--16 .fd-calendar__text:after{-webkit-box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor16);bottom:0;box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor16);content:\"\";height:var(--fdCalendar_Special_Day_Marker_Height);left:0;position:absolute;right:0}.fd-calendar__special-day--16.is-active .fd-calendar__text:after,.fd-calendar__special-day--16:active .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor16),inset 0 -.33rem 0 var(--fdCalendar_Item_Current_Inner_Border_Color);height:calc(var(--fdCalendar_Special_Day_Marker_Height) + .0625rem)}.fd-calendar__special-day--16.fd-calendar__item--current.is-active .fd-calendar__text:after,.fd-calendar__special-day--16.fd-calendar__item--current:active .fd-calendar__text:after{bottom:var(--fdCalendar_Item_Current_Active_Special_Day_Bottom);height:var(--fdCalendar_Item_Current_Active_Special_Day_Height);left:var(--fdCalendar_Item_Current_Active_Special_Day_Left);right:var(--fdCalendar_Item_Current_Active_Special_Day_Right);width:var(--fdCalendar_Item_Current_Active_Special_Day_Width)}.fd-calendar__special-day--17 .fd-calendar__text:after{-webkit-box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor17);bottom:0;box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor17);content:\"\";height:var(--fdCalendar_Special_Day_Marker_Height);left:0;position:absolute;right:0}.fd-calendar__special-day--17.is-active .fd-calendar__text:after,.fd-calendar__special-day--17:active .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor17),inset 0 -.33rem 0 var(--fdCalendar_Item_Current_Inner_Border_Color);height:calc(var(--fdCalendar_Special_Day_Marker_Height) + .0625rem)}.fd-calendar__special-day--17.fd-calendar__item--current.is-active .fd-calendar__text:after,.fd-calendar__special-day--17.fd-calendar__item--current:active .fd-calendar__text:after{bottom:var(--fdCalendar_Item_Current_Active_Special_Day_Bottom);height:var(--fdCalendar_Item_Current_Active_Special_Day_Height);left:var(--fdCalendar_Item_Current_Active_Special_Day_Left);right:var(--fdCalendar_Item_Current_Active_Special_Day_Right);width:var(--fdCalendar_Item_Current_Active_Special_Day_Width)}.fd-calendar__special-day--18 .fd-calendar__text:after{-webkit-box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor18);bottom:0;box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor18);content:\"\";height:var(--fdCalendar_Special_Day_Marker_Height);left:0;position:absolute;right:0}.fd-calendar__special-day--18.is-active .fd-calendar__text:after,.fd-calendar__special-day--18:active .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor18),inset 0 -.33rem 0 var(--fdCalendar_Item_Current_Inner_Border_Color);height:calc(var(--fdCalendar_Special_Day_Marker_Height) + .0625rem)}.fd-calendar__special-day--18.fd-calendar__item--current.is-active .fd-calendar__text:after,.fd-calendar__special-day--18.fd-calendar__item--current:active .fd-calendar__text:after{bottom:var(--fdCalendar_Item_Current_Active_Special_Day_Bottom);height:var(--fdCalendar_Item_Current_Active_Special_Day_Height);left:var(--fdCalendar_Item_Current_Active_Special_Day_Left);right:var(--fdCalendar_Item_Current_Active_Special_Day_Right);width:var(--fdCalendar_Item_Current_Active_Special_Day_Width)}.fd-calendar__special-day--19 .fd-calendar__text:after{-webkit-box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor19);bottom:0;box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor19);content:\"\";height:var(--fdCalendar_Special_Day_Marker_Height);left:0;position:absolute;right:0}.fd-calendar__special-day--19.is-active .fd-calendar__text:after,.fd-calendar__special-day--19:active .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor19),inset 0 -.33rem 0 var(--fdCalendar_Item_Current_Inner_Border_Color);height:calc(var(--fdCalendar_Special_Day_Marker_Height) + .0625rem)}.fd-calendar__special-day--19.fd-calendar__item--current.is-active .fd-calendar__text:after,.fd-calendar__special-day--19.fd-calendar__item--current:active .fd-calendar__text:after{bottom:var(--fdCalendar_Item_Current_Active_Special_Day_Bottom);height:var(--fdCalendar_Item_Current_Active_Special_Day_Height);left:var(--fdCalendar_Item_Current_Active_Special_Day_Left);right:var(--fdCalendar_Item_Current_Active_Special_Day_Right);width:var(--fdCalendar_Item_Current_Active_Special_Day_Width)}.fd-calendar__special-day--20 .fd-calendar__text:after{-webkit-box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor20);bottom:0;box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor20);content:\"\";height:var(--fdCalendar_Special_Day_Marker_Height);left:0;position:absolute;right:0}.fd-calendar__special-day--20.is-active .fd-calendar__text:after,.fd-calendar__special-day--20:active .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor20),inset 0 -.33rem 0 var(--fdCalendar_Item_Current_Inner_Border_Color);height:calc(var(--fdCalendar_Special_Day_Marker_Height) + .0625rem)}.fd-calendar__special-day--20.fd-calendar__item--current.is-active .fd-calendar__text:after,.fd-calendar__special-day--20.fd-calendar__item--current:active .fd-calendar__text:after{bottom:var(--fdCalendar_Item_Current_Active_Special_Day_Bottom);height:var(--fdCalendar_Item_Current_Active_Special_Day_Height);left:var(--fdCalendar_Item_Current_Active_Special_Day_Left);right:var(--fdCalendar_Item_Current_Active_Special_Day_Right);width:var(--fdCalendar_Item_Current_Active_Special_Day_Width)}.fd-calendar .fd-calendar__close-button--navigation{-webkit-transform:translateY(-50%);position:absolute;right:0;top:50%;transform:translateY(-50%)}.fd-calendar .fd-calendar__close-button--navigation[dir=rtl],[dir=rtl] .fd-calendar .fd-calendar__close-button--navigation{left:0;right:auto}.fd-calendar[class*=-compact],.fd-calendar[class*=-condensed],[class*=-compact] .fd-calendar:not([class*=-cozy]),[class*=-condensed] .fd-calendar:not([class*=-cozy]){--fdCalendar_Width:17rem;--fdCalendar_Padding:.5rem;--fdCalendar_Item_Height:1.875rem;--fdCalendar_Button_Horizontal_Space:.1875rem;--fdCalendar_Action_Width:1.875rem;--fdCalendar_Item_Width:1.875rem;--fdCalendar_Item_Inner_Border_Size:calc(100% - .125rem)}.fd-calendar--mobile-landscape,.fd-calendar--mobile-portrait{height:100%;width:100%}.fd-calendar--mobile-landscape{--fdCalendar_Padding:0;--fdCalendar_Item_Side_Helper:1.625rem}.fd-calendar--mobile-landscape .fd-calendar__navigation--main{max-width:20rem}.fd-calendar--mobile-portrait{--fdCalendar_Padding:1rem 0 0 0}.fd-has-display-block{display:block}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i4.CalendarHeaderComponent, selector: "fd-calendar-header", inputs: ["activeView", "currentlyDisplayed", "previousButtonDisabled", "nextButtonDisabled", "calendarYearGrid", "id", "mobileLandscape"], outputs: ["activeViewChange", "previousClicked", "nextClicked", "closeClicked"] }, { kind: "component", type: i5.CalendarDayViewComponent, selector: "fd-calendar-day-view", inputs: ["currentlyDisplayed", "selectedDate", "selectedRangeDate", "startingDayOfWeek", "calType", "id", "rangeHoverEffect", "markWeekends", "showWeekNumbers", "focusEscapeFunction", "specialDaysRules", "disableFunction", "disableRangeStartFunction", "disableRangeEndFunction"], outputs: ["selectedRangeDateChange", "nextMonthSelect", "previousMonthSelect", "selectedDateChange"] }, { kind: "component", type: i6.CalendarMonthViewComponent, selector: "fd-calendar-month-view", inputs: ["id", "monthSelected", "focusEscapeFunction", "year"], outputs: ["monthClicked"] }, { kind: "component", type: i7.CalendarYearViewComponent, selector: "fd-calendar-year-view", inputs: ["id", "focusEscapeFunction", "yearSelected", "yearViewGrid"], outputs: ["yearClicked"] }, { kind: "component", type: i8.CalendarAggregatedYearViewComponent, selector: "fd-calendar-aggregated-year-view", inputs: ["id", "focusEscapeFunction", "yearSelected", "aggregatedYearsViewGrid", "yearViewGrid"], outputs: ["yearsClicked"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
501
+ ], viewQueries: [{ propertyName: "_dayViewComponent", first: true, predicate: CalendarDayViewComponent, descendants: true }, { propertyName: "_monthViewComponent", first: true, predicate: CalendarMonthViewComponent, descendants: true }, { propertyName: "_yearViewComponent", first: true, predicate: CalendarYearViewComponent, descendants: true }, { propertyName: "_aggregatedYearViewComponent", first: true, predicate: CalendarAggregatedYearViewComponent, descendants: true }, { propertyName: "_calendarHeaderComponent", first: true, predicate: CalendarHeaderComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<fd-calendar-header\n [currentlyDisplayed]=\"_currentlyDisplayed\"\n [activeView]=\"activeView\"\n [id]=\"id\"\n [calendarYearGrid]=\"yearGrid\"\n (closeClicked)=\"closeClicked.emit()\"\n (nextClicked)=\"handleNextArrowClick()\"\n (previousClicked)=\"handlePreviousArrowClick()\"\n [previousButtonDisabled]=\"previousButtonDisabled\"\n [nextButtonDisabled]=\"nextButtonDisabled\"\n (activeViewChange)=\"handleActiveViewChange($event)\"\n></fd-calendar-header>\n<ng-container [ngSwitch]=\"activeView\" *ngIf=\"_currentlyDisplayed\">\n <fd-calendar-day-view\n *ngSwitchCase=\"'day'\"\n [selectedDate]=\"selectedDate\"\n [showWeekNumbers]=\"showWeekNumbers\"\n [markWeekends]=\"markWeekends\"\n (selectedDateChange)=\"selectedDateChanged($event)\"\n [selectedRangeDate]=\"selectedRangeDate\"\n (selectedRangeDateChange)=\"selectedRangeDateChanged($event)\"\n [currentlyDisplayed]=\"_currentlyDisplayed\"\n [startingDayOfWeek]=\"getWeekStartDay()\"\n [disableFunction]=\"disableFunction\"\n [disableRangeEndFunction]=\"disableRangeEndFunction\"\n [disableRangeStartFunction]=\"disableRangeStartFunction\"\n [calType]=\"calType\"\n [id]=\"id\"\n [rangeHoverEffect]=\"rangeHoverEffect\"\n [specialDaysRules]=\"specialDaysRules\"\n [focusEscapeFunction]=\"escapeFocusFunction\"\n (nextMonthSelect)=\"displayNextMonth()\"\n (previousMonthSelect)=\"displayPreviousMonth()\"\n ></fd-calendar-day-view>\n <fd-calendar-month-view\n *ngSwitchCase=\"'month'\"\n [monthSelected]=\"_currentlyDisplayed.month\"\n [year]=\"_currentlyDisplayed.year\"\n [id]=\"id\"\n [focusEscapeFunction]=\"escapeFocusFunction\"\n (monthClicked)=\"handleMonthViewChange($event)\"\n ></fd-calendar-month-view>\n <fd-calendar-year-view\n *ngSwitchCase=\"'year'\"\n [yearSelected]=\"_currentlyDisplayed.year\"\n [yearViewGrid]=\"yearGrid\"\n [id]=\"id\"\n [focusEscapeFunction]=\"escapeFocusFunction\"\n (yearClicked)=\"selectedYear($event)\"\n >\n </fd-calendar-year-view>\n <fd-calendar-aggregated-year-view\n *ngSwitchCase=\"'aggregatedYear'\"\n (yearsClicked)=\"selectedYears($event)\"\n [yearSelected]=\"_currentlyDisplayed.year\"\n [yearViewGrid]=\"yearGrid\"\n [aggregatedYearsViewGrid]=\"aggregatedYearGrid\"\n [id]=\"id\"\n [focusEscapeFunction]=\"escapeFocusFunction\"\n >\n </fd-calendar-aggregated-year-view>\n</ng-container>\n", styles: ["/*!\n * Fundamental Library Styles v0.30.2-rc.6\n * Copyright (c) 2023 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n */.fd-calendar .fd-calendar__my-item,.fd-calendar__item{-webkit-box-sizing:border-box;-webkit-box-flex:1;-ms-flex:1 1 calc(var(--fdCalendar_Item_Current_Border_Width) * 2 + var(--fdCalendar_Item_Spacing) * 2);background-color:var(--fdCalendar_Item_Background);border:0;border:var(--fdCalendar_Item_Border);border-radius:var(--fdCalendar_Border_Radius);box-sizing:border-box;color:var(--sapTextColor);cursor:pointer;display:inline-block;flex:1 1 calc(var(--fdCalendar_Item_Current_Border_Width) * 2 + var(--fdCalendar_Item_Spacing) * 2);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:var(--fdCalendar_Item_Height);line-height:var(--sapContent_LineHeight);margin:0;margin:var(--fdCalendar_Item_Spacing);min-width:var(--fdCalendar_Item_Width);overflow:hidden;padding:0;position:relative}.fd-calendar .fd-calendar__my-item:after,.fd-calendar .fd-calendar__my-item:before,.fd-calendar__item:after,.fd-calendar__item:before{box-sizing:inherit;font-size:inherit}[class*=fd-calendar__item--legend-]:not(.fd-calendar__item--today) .fd-calendar__text-wrapper:after{border-bottom:none;border-top:var(--fdCalendar_Item_Legend_Top_Border);bottom:0;content:\"\";height:.3125rem;left:0;position:absolute;right:0;width:100%}[class*=fd-calendar__item--legend-]:not(.fd-calendar__item--today).is-focus,[class*=fd-calendar__item--legend-]:not(.fd-calendar__item--today):focus{z-index:5}[class*=fd-calendar__item--legend-]:not(.fd-calendar__item--today).is-focus .fd-calendar__text-wrapper:after,[class*=fd-calendar__item--legend-]:not(.fd-calendar__item--today):focus .fd-calendar__text-wrapper:after{z-index:var(--fdCalendar_Text_Wrapper_After_Z)}.fd-calendar__item--today[class*=fd-calendar__item--legend-].is-focus,.fd-calendar__item--today[class*=fd-calendar__item--legend-]:focus{z-index:5}.fd-calendar__item--today[class*=fd-calendar__item--legend-].is-focus .fd-calendar__text-wrapper:after,.fd-calendar__item--today[class*=fd-calendar__item--legend-]:focus .fd-calendar__text-wrapper:after{border-bottom:none}.fd-calendar__item--today[class*=fd-calendar__item--legend-].is-focus .fd-calendar__text:after,.fd-calendar__item--today[class*=fd-calendar__item--legend-]:focus .fd-calendar__text:after{bottom:0;content:\"\";height:.1875rem;left:0;position:absolute;right:0;width:100%}.fd-calendar__item--today[class*=fd-calendar__item--legend-] .fd-calendar__text-wrapper:after{border-radius:.3125rem;bottom:.0625rem;content:\"\";height:.5rem;left:.0625rem;position:absolute;right:0;width:calc(100% - .125rem)}.fd-calendar__item--today[class*=fd-calendar__item--legend-][dir=rtl] .fd-calendar__text-wrapper:after,[dir=rtl] .fd-calendar__item--today[class*=fd-calendar__item--legend-] .fd-calendar__text-wrapper:after{left:0;right:.0625rem}.fd-calendar__item--legend-1:not(.fd-calendar__item--today) .fd-calendar__text-wrapper:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor1)}.fd-calendar__item--legend-1:not(.fd-calendar__item--today).fd-calendar__item--range .fd-calendar__text-wrapper:after,.fd-calendar__item--legend-1:not(.fd-calendar__item--today).fd-calendar__item--selected .fd-calendar__text-wrapper:after{height:var(--fdCalendar_Item_Selected_Legend_Height)}.fd-calendar__item--today.fd-calendar__item--legend-1.is-focus,.fd-calendar__item--today.fd-calendar__item--legend-1:focus{z-index:5}.fd-calendar__item--today.fd-calendar__item--legend-1.is-focus .fd-calendar__text:after,.fd-calendar__item--today.fd-calendar__item--legend-1:focus .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor1)}.fd-calendar__item--today.fd-calendar__item--legend-1 .fd-calendar__text-wrapper:after{border-bottom:.25rem solid var(--sapLegendColor1);border-bottom-left-radius:var(--fdCalendar_Item_Legend_Bottom_Border_Radius);border-bottom-right-radius:var(--fdCalendar_Item_Legend_Bottom_Border_Radius);border-top:var(--fdCalendar_Item_Legend_Top_Border);border-top-left-radius:0;border-top-right-radius:0;bottom:.0625rem;content:\"\";height:var(--fdCalendar_Item_Text_Wrapper_Height);left:.0625rem;position:absolute;right:0;width:calc(100% - .125rem)}.fd-calendar__item--today.fd-calendar__item--legend-1[dir=rtl] .fd-calendar__text-wrapper:after,[dir=rtl] .fd-calendar__item--today.fd-calendar__item--legend-1 .fd-calendar__text-wrapper:after{left:0;right:.0625rem}.fd-calendar__item--legend-2:not(.fd-calendar__item--today) .fd-calendar__text-wrapper:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor2)}.fd-calendar__item--legend-2:not(.fd-calendar__item--today).fd-calendar__item--range .fd-calendar__text-wrapper:after,.fd-calendar__item--legend-2:not(.fd-calendar__item--today).fd-calendar__item--selected .fd-calendar__text-wrapper:after{height:var(--fdCalendar_Item_Selected_Legend_Height)}.fd-calendar__item--today.fd-calendar__item--legend-2.is-focus,.fd-calendar__item--today.fd-calendar__item--legend-2:focus{z-index:5}.fd-calendar__item--today.fd-calendar__item--legend-2.is-focus .fd-calendar__text:after,.fd-calendar__item--today.fd-calendar__item--legend-2:focus .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor2)}.fd-calendar__item--today.fd-calendar__item--legend-2 .fd-calendar__text-wrapper:after{border-bottom:.25rem solid var(--sapLegendColor2);border-bottom-left-radius:var(--fdCalendar_Item_Legend_Bottom_Border_Radius);border-bottom-right-radius:var(--fdCalendar_Item_Legend_Bottom_Border_Radius);border-top:var(--fdCalendar_Item_Legend_Top_Border);border-top-left-radius:0;border-top-right-radius:0;bottom:.0625rem;content:\"\";height:var(--fdCalendar_Item_Text_Wrapper_Height);left:.0625rem;position:absolute;right:0;width:calc(100% - .125rem)}.fd-calendar__item--today.fd-calendar__item--legend-2[dir=rtl] .fd-calendar__text-wrapper:after,[dir=rtl] .fd-calendar__item--today.fd-calendar__item--legend-2 .fd-calendar__text-wrapper:after{left:0;right:.0625rem}.fd-calendar__item--legend-3:not(.fd-calendar__item--today) .fd-calendar__text-wrapper:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor3)}.fd-calendar__item--legend-3:not(.fd-calendar__item--today).fd-calendar__item--range .fd-calendar__text-wrapper:after,.fd-calendar__item--legend-3:not(.fd-calendar__item--today).fd-calendar__item--selected .fd-calendar__text-wrapper:after{height:var(--fdCalendar_Item_Selected_Legend_Height)}.fd-calendar__item--today.fd-calendar__item--legend-3.is-focus,.fd-calendar__item--today.fd-calendar__item--legend-3:focus{z-index:5}.fd-calendar__item--today.fd-calendar__item--legend-3.is-focus .fd-calendar__text:after,.fd-calendar__item--today.fd-calendar__item--legend-3:focus .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor3)}.fd-calendar__item--today.fd-calendar__item--legend-3 .fd-calendar__text-wrapper:after{border-bottom:.25rem solid var(--sapLegendColor3);border-bottom-left-radius:var(--fdCalendar_Item_Legend_Bottom_Border_Radius);border-bottom-right-radius:var(--fdCalendar_Item_Legend_Bottom_Border_Radius);border-top:var(--fdCalendar_Item_Legend_Top_Border);border-top-left-radius:0;border-top-right-radius:0;bottom:.0625rem;content:\"\";height:var(--fdCalendar_Item_Text_Wrapper_Height);left:.0625rem;position:absolute;right:0;width:calc(100% - .125rem)}.fd-calendar__item--today.fd-calendar__item--legend-3[dir=rtl] .fd-calendar__text-wrapper:after,[dir=rtl] .fd-calendar__item--today.fd-calendar__item--legend-3 .fd-calendar__text-wrapper:after{left:0;right:.0625rem}.fd-calendar__item--legend-4:not(.fd-calendar__item--today) .fd-calendar__text-wrapper:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor4)}.fd-calendar__item--legend-4:not(.fd-calendar__item--today).fd-calendar__item--range .fd-calendar__text-wrapper:after,.fd-calendar__item--legend-4:not(.fd-calendar__item--today).fd-calendar__item--selected .fd-calendar__text-wrapper:after{height:var(--fdCalendar_Item_Selected_Legend_Height)}.fd-calendar__item--today.fd-calendar__item--legend-4.is-focus,.fd-calendar__item--today.fd-calendar__item--legend-4:focus{z-index:5}.fd-calendar__item--today.fd-calendar__item--legend-4.is-focus .fd-calendar__text:after,.fd-calendar__item--today.fd-calendar__item--legend-4:focus .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor4)}.fd-calendar__item--today.fd-calendar__item--legend-4 .fd-calendar__text-wrapper:after{border-bottom:.25rem solid var(--sapLegendColor4);border-bottom-left-radius:var(--fdCalendar_Item_Legend_Bottom_Border_Radius);border-bottom-right-radius:var(--fdCalendar_Item_Legend_Bottom_Border_Radius);border-top:var(--fdCalendar_Item_Legend_Top_Border);border-top-left-radius:0;border-top-right-radius:0;bottom:.0625rem;content:\"\";height:var(--fdCalendar_Item_Text_Wrapper_Height);left:.0625rem;position:absolute;right:0;width:calc(100% - .125rem)}.fd-calendar__item--today.fd-calendar__item--legend-4[dir=rtl] .fd-calendar__text-wrapper:after,[dir=rtl] .fd-calendar__item--today.fd-calendar__item--legend-4 .fd-calendar__text-wrapper:after{left:0;right:.0625rem}.fd-calendar__item--legend-5:not(.fd-calendar__item--today) .fd-calendar__text-wrapper:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor5)}.fd-calendar__item--legend-5:not(.fd-calendar__item--today).fd-calendar__item--range .fd-calendar__text-wrapper:after,.fd-calendar__item--legend-5:not(.fd-calendar__item--today).fd-calendar__item--selected .fd-calendar__text-wrapper:after{height:var(--fdCalendar_Item_Selected_Legend_Height)}.fd-calendar__item--today.fd-calendar__item--legend-5.is-focus,.fd-calendar__item--today.fd-calendar__item--legend-5:focus{z-index:5}.fd-calendar__item--today.fd-calendar__item--legend-5.is-focus .fd-calendar__text:after,.fd-calendar__item--today.fd-calendar__item--legend-5:focus .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor5)}.fd-calendar__item--today.fd-calendar__item--legend-5 .fd-calendar__text-wrapper:after{border-bottom:.25rem solid var(--sapLegendColor5);border-bottom-left-radius:var(--fdCalendar_Item_Legend_Bottom_Border_Radius);border-bottom-right-radius:var(--fdCalendar_Item_Legend_Bottom_Border_Radius);border-top:var(--fdCalendar_Item_Legend_Top_Border);border-top-left-radius:0;border-top-right-radius:0;bottom:.0625rem;content:\"\";height:var(--fdCalendar_Item_Text_Wrapper_Height);left:.0625rem;position:absolute;right:0;width:calc(100% - .125rem)}.fd-calendar__item--today.fd-calendar__item--legend-5[dir=rtl] .fd-calendar__text-wrapper:after,[dir=rtl] .fd-calendar__item--today.fd-calendar__item--legend-5 .fd-calendar__text-wrapper:after{left:0;right:.0625rem}.fd-calendar__item--legend-6:not(.fd-calendar__item--today) .fd-calendar__text-wrapper:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor6)}.fd-calendar__item--legend-6:not(.fd-calendar__item--today).fd-calendar__item--range .fd-calendar__text-wrapper:after,.fd-calendar__item--legend-6:not(.fd-calendar__item--today).fd-calendar__item--selected .fd-calendar__text-wrapper:after{height:var(--fdCalendar_Item_Selected_Legend_Height)}.fd-calendar__item--today.fd-calendar__item--legend-6.is-focus,.fd-calendar__item--today.fd-calendar__item--legend-6:focus{z-index:5}.fd-calendar__item--today.fd-calendar__item--legend-6.is-focus .fd-calendar__text:after,.fd-calendar__item--today.fd-calendar__item--legend-6:focus .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor6)}.fd-calendar__item--today.fd-calendar__item--legend-6 .fd-calendar__text-wrapper:after{border-bottom:.25rem solid var(--sapLegendColor6);border-bottom-left-radius:var(--fdCalendar_Item_Legend_Bottom_Border_Radius);border-bottom-right-radius:var(--fdCalendar_Item_Legend_Bottom_Border_Radius);border-top:var(--fdCalendar_Item_Legend_Top_Border);border-top-left-radius:0;border-top-right-radius:0;bottom:.0625rem;content:\"\";height:var(--fdCalendar_Item_Text_Wrapper_Height);left:.0625rem;position:absolute;right:0;width:calc(100% - .125rem)}.fd-calendar__item--today.fd-calendar__item--legend-6[dir=rtl] .fd-calendar__text-wrapper:after,[dir=rtl] .fd-calendar__item--today.fd-calendar__item--legend-6 .fd-calendar__text-wrapper:after{left:0;right:.0625rem}.fd-calendar__item--legend-7:not(.fd-calendar__item--today) .fd-calendar__text-wrapper:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor7)}.fd-calendar__item--legend-7:not(.fd-calendar__item--today).fd-calendar__item--range .fd-calendar__text-wrapper:after,.fd-calendar__item--legend-7:not(.fd-calendar__item--today).fd-calendar__item--selected .fd-calendar__text-wrapper:after{height:var(--fdCalendar_Item_Selected_Legend_Height)}.fd-calendar__item--today.fd-calendar__item--legend-7.is-focus,.fd-calendar__item--today.fd-calendar__item--legend-7:focus{z-index:5}.fd-calendar__item--today.fd-calendar__item--legend-7.is-focus .fd-calendar__text:after,.fd-calendar__item--today.fd-calendar__item--legend-7:focus .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor7)}.fd-calendar__item--today.fd-calendar__item--legend-7 .fd-calendar__text-wrapper:after{border-bottom:.25rem solid var(--sapLegendColor7);border-bottom-left-radius:var(--fdCalendar_Item_Legend_Bottom_Border_Radius);border-bottom-right-radius:var(--fdCalendar_Item_Legend_Bottom_Border_Radius);border-top:var(--fdCalendar_Item_Legend_Top_Border);border-top-left-radius:0;border-top-right-radius:0;bottom:.0625rem;content:\"\";height:var(--fdCalendar_Item_Text_Wrapper_Height);left:.0625rem;position:absolute;right:0;width:calc(100% - .125rem)}.fd-calendar__item--today.fd-calendar__item--legend-7[dir=rtl] .fd-calendar__text-wrapper:after,[dir=rtl] .fd-calendar__item--today.fd-calendar__item--legend-7 .fd-calendar__text-wrapper:after{left:0;right:.0625rem}.fd-calendar__item--legend-8:not(.fd-calendar__item--today) .fd-calendar__text-wrapper:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor8)}.fd-calendar__item--legend-8:not(.fd-calendar__item--today).fd-calendar__item--range .fd-calendar__text-wrapper:after,.fd-calendar__item--legend-8:not(.fd-calendar__item--today).fd-calendar__item--selected .fd-calendar__text-wrapper:after{height:var(--fdCalendar_Item_Selected_Legend_Height)}.fd-calendar__item--today.fd-calendar__item--legend-8.is-focus,.fd-calendar__item--today.fd-calendar__item--legend-8:focus{z-index:5}.fd-calendar__item--today.fd-calendar__item--legend-8.is-focus .fd-calendar__text:after,.fd-calendar__item--today.fd-calendar__item--legend-8:focus .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor8)}.fd-calendar__item--today.fd-calendar__item--legend-8 .fd-calendar__text-wrapper:after{border-bottom:.25rem solid var(--sapLegendColor8);border-bottom-left-radius:var(--fdCalendar_Item_Legend_Bottom_Border_Radius);border-bottom-right-radius:var(--fdCalendar_Item_Legend_Bottom_Border_Radius);border-top:var(--fdCalendar_Item_Legend_Top_Border);border-top-left-radius:0;border-top-right-radius:0;bottom:.0625rem;content:\"\";height:var(--fdCalendar_Item_Text_Wrapper_Height);left:.0625rem;position:absolute;right:0;width:calc(100% - .125rem)}.fd-calendar__item--today.fd-calendar__item--legend-8[dir=rtl] .fd-calendar__text-wrapper:after,[dir=rtl] .fd-calendar__item--today.fd-calendar__item--legend-8 .fd-calendar__text-wrapper:after{left:0;right:.0625rem}.fd-calendar__item--legend-9:not(.fd-calendar__item--today) .fd-calendar__text-wrapper:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor9)}.fd-calendar__item--legend-9:not(.fd-calendar__item--today).fd-calendar__item--range .fd-calendar__text-wrapper:after,.fd-calendar__item--legend-9:not(.fd-calendar__item--today).fd-calendar__item--selected .fd-calendar__text-wrapper:after{height:var(--fdCalendar_Item_Selected_Legend_Height)}.fd-calendar__item--today.fd-calendar__item--legend-9.is-focus,.fd-calendar__item--today.fd-calendar__item--legend-9:focus{z-index:5}.fd-calendar__item--today.fd-calendar__item--legend-9.is-focus .fd-calendar__text:after,.fd-calendar__item--today.fd-calendar__item--legend-9:focus .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor9)}.fd-calendar__item--today.fd-calendar__item--legend-9 .fd-calendar__text-wrapper:after{border-bottom:.25rem solid var(--sapLegendColor9);border-bottom-left-radius:var(--fdCalendar_Item_Legend_Bottom_Border_Radius);border-bottom-right-radius:var(--fdCalendar_Item_Legend_Bottom_Border_Radius);border-top:var(--fdCalendar_Item_Legend_Top_Border);border-top-left-radius:0;border-top-right-radius:0;bottom:.0625rem;content:\"\";height:var(--fdCalendar_Item_Text_Wrapper_Height);left:.0625rem;position:absolute;right:0;width:calc(100% - .125rem)}.fd-calendar__item--today.fd-calendar__item--legend-9[dir=rtl] .fd-calendar__text-wrapper:after,[dir=rtl] .fd-calendar__item--today.fd-calendar__item--legend-9 .fd-calendar__text-wrapper:after{left:0;right:.0625rem}.fd-calendar__item--legend-10:not(.fd-calendar__item--today) .fd-calendar__text-wrapper:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor10)}.fd-calendar__item--legend-10:not(.fd-calendar__item--today).fd-calendar__item--range .fd-calendar__text-wrapper:after,.fd-calendar__item--legend-10:not(.fd-calendar__item--today).fd-calendar__item--selected .fd-calendar__text-wrapper:after{height:var(--fdCalendar_Item_Selected_Legend_Height)}.fd-calendar__item--today.fd-calendar__item--legend-10.is-focus,.fd-calendar__item--today.fd-calendar__item--legend-10:focus{z-index:5}.fd-calendar__item--today.fd-calendar__item--legend-10.is-focus .fd-calendar__text:after,.fd-calendar__item--today.fd-calendar__item--legend-10:focus .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor10)}.fd-calendar__item--today.fd-calendar__item--legend-10 .fd-calendar__text-wrapper:after{border-bottom:.25rem solid var(--sapLegendColor10);border-bottom-left-radius:var(--fdCalendar_Item_Legend_Bottom_Border_Radius);border-bottom-right-radius:var(--fdCalendar_Item_Legend_Bottom_Border_Radius);border-top:var(--fdCalendar_Item_Legend_Top_Border);border-top-left-radius:0;border-top-right-radius:0;bottom:.0625rem;content:\"\";height:var(--fdCalendar_Item_Text_Wrapper_Height);left:.0625rem;position:absolute;right:0;width:calc(100% - .125rem)}.fd-calendar__item--today.fd-calendar__item--legend-10[dir=rtl] .fd-calendar__text-wrapper:after,[dir=rtl] .fd-calendar__item--today.fd-calendar__item--legend-10 .fd-calendar__text-wrapper:after{left:0;right:.0625rem}.fd-calendar__item--legend-11:not(.fd-calendar__item--today) .fd-calendar__text-wrapper:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor11)}.fd-calendar__item--legend-11:not(.fd-calendar__item--today).fd-calendar__item--range .fd-calendar__text-wrapper:after,.fd-calendar__item--legend-11:not(.fd-calendar__item--today).fd-calendar__item--selected .fd-calendar__text-wrapper:after{height:var(--fdCalendar_Item_Selected_Legend_Height)}.fd-calendar__item--today.fd-calendar__item--legend-11.is-focus,.fd-calendar__item--today.fd-calendar__item--legend-11:focus{z-index:5}.fd-calendar__item--today.fd-calendar__item--legend-11.is-focus .fd-calendar__text:after,.fd-calendar__item--today.fd-calendar__item--legend-11:focus .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor11)}.fd-calendar__item--today.fd-calendar__item--legend-11 .fd-calendar__text-wrapper:after{border-bottom:.25rem solid var(--sapLegendColor11);border-bottom-left-radius:var(--fdCalendar_Item_Legend_Bottom_Border_Radius);border-bottom-right-radius:var(--fdCalendar_Item_Legend_Bottom_Border_Radius);border-top:var(--fdCalendar_Item_Legend_Top_Border);border-top-left-radius:0;border-top-right-radius:0;bottom:.0625rem;content:\"\";height:var(--fdCalendar_Item_Text_Wrapper_Height);left:.0625rem;position:absolute;right:0;width:calc(100% - .125rem)}.fd-calendar__item--today.fd-calendar__item--legend-11[dir=rtl] .fd-calendar__text-wrapper:after,[dir=rtl] .fd-calendar__item--today.fd-calendar__item--legend-11 .fd-calendar__text-wrapper:after{left:0;right:.0625rem}.fd-calendar__item--legend-12:not(.fd-calendar__item--today) .fd-calendar__text-wrapper:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor12)}.fd-calendar__item--legend-12:not(.fd-calendar__item--today).fd-calendar__item--range .fd-calendar__text-wrapper:after,.fd-calendar__item--legend-12:not(.fd-calendar__item--today).fd-calendar__item--selected .fd-calendar__text-wrapper:after{height:var(--fdCalendar_Item_Selected_Legend_Height)}.fd-calendar__item--today.fd-calendar__item--legend-12.is-focus,.fd-calendar__item--today.fd-calendar__item--legend-12:focus{z-index:5}.fd-calendar__item--today.fd-calendar__item--legend-12.is-focus .fd-calendar__text:after,.fd-calendar__item--today.fd-calendar__item--legend-12:focus .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor12)}.fd-calendar__item--today.fd-calendar__item--legend-12 .fd-calendar__text-wrapper:after{border-bottom:.25rem solid var(--sapLegendColor12);border-bottom-left-radius:var(--fdCalendar_Item_Legend_Bottom_Border_Radius);border-bottom-right-radius:var(--fdCalendar_Item_Legend_Bottom_Border_Radius);border-top:var(--fdCalendar_Item_Legend_Top_Border);border-top-left-radius:0;border-top-right-radius:0;bottom:.0625rem;content:\"\";height:var(--fdCalendar_Item_Text_Wrapper_Height);left:.0625rem;position:absolute;right:0;width:calc(100% - .125rem)}.fd-calendar__item--today.fd-calendar__item--legend-12[dir=rtl] .fd-calendar__text-wrapper:after,[dir=rtl] .fd-calendar__item--today.fd-calendar__item--legend-12 .fd-calendar__text-wrapper:after{left:0;right:.0625rem}.fd-calendar__item--legend-13:not(.fd-calendar__item--today) .fd-calendar__text-wrapper:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor13)}.fd-calendar__item--legend-13:not(.fd-calendar__item--today).fd-calendar__item--range .fd-calendar__text-wrapper:after,.fd-calendar__item--legend-13:not(.fd-calendar__item--today).fd-calendar__item--selected .fd-calendar__text-wrapper:after{height:var(--fdCalendar_Item_Selected_Legend_Height)}.fd-calendar__item--today.fd-calendar__item--legend-13.is-focus,.fd-calendar__item--today.fd-calendar__item--legend-13:focus{z-index:5}.fd-calendar__item--today.fd-calendar__item--legend-13.is-focus .fd-calendar__text:after,.fd-calendar__item--today.fd-calendar__item--legend-13:focus .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor13)}.fd-calendar__item--today.fd-calendar__item--legend-13 .fd-calendar__text-wrapper:after{border-bottom:.25rem solid var(--sapLegendColor13);border-bottom-left-radius:var(--fdCalendar_Item_Legend_Bottom_Border_Radius);border-bottom-right-radius:var(--fdCalendar_Item_Legend_Bottom_Border_Radius);border-top:var(--fdCalendar_Item_Legend_Top_Border);border-top-left-radius:0;border-top-right-radius:0;bottom:.0625rem;content:\"\";height:var(--fdCalendar_Item_Text_Wrapper_Height);left:.0625rem;position:absolute;right:0;width:calc(100% - .125rem)}.fd-calendar__item--today.fd-calendar__item--legend-13[dir=rtl] .fd-calendar__text-wrapper:after,[dir=rtl] .fd-calendar__item--today.fd-calendar__item--legend-13 .fd-calendar__text-wrapper:after{left:0;right:.0625rem}.fd-calendar__item--legend-14:not(.fd-calendar__item--today) .fd-calendar__text-wrapper:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor14)}.fd-calendar__item--legend-14:not(.fd-calendar__item--today).fd-calendar__item--range .fd-calendar__text-wrapper:after,.fd-calendar__item--legend-14:not(.fd-calendar__item--today).fd-calendar__item--selected .fd-calendar__text-wrapper:after{height:var(--fdCalendar_Item_Selected_Legend_Height)}.fd-calendar__item--today.fd-calendar__item--legend-14.is-focus,.fd-calendar__item--today.fd-calendar__item--legend-14:focus{z-index:5}.fd-calendar__item--today.fd-calendar__item--legend-14.is-focus .fd-calendar__text:after,.fd-calendar__item--today.fd-calendar__item--legend-14:focus .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor14)}.fd-calendar__item--today.fd-calendar__item--legend-14 .fd-calendar__text-wrapper:after{border-bottom:.25rem solid var(--sapLegendColor14);border-bottom-left-radius:var(--fdCalendar_Item_Legend_Bottom_Border_Radius);border-bottom-right-radius:var(--fdCalendar_Item_Legend_Bottom_Border_Radius);border-top:var(--fdCalendar_Item_Legend_Top_Border);border-top-left-radius:0;border-top-right-radius:0;bottom:.0625rem;content:\"\";height:var(--fdCalendar_Item_Text_Wrapper_Height);left:.0625rem;position:absolute;right:0;width:calc(100% - .125rem)}.fd-calendar__item--today.fd-calendar__item--legend-14[dir=rtl] .fd-calendar__text-wrapper:after,[dir=rtl] .fd-calendar__item--today.fd-calendar__item--legend-14 .fd-calendar__text-wrapper:after{left:0;right:.0625rem}.fd-calendar__item--legend-15:not(.fd-calendar__item--today) .fd-calendar__text-wrapper:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor15)}.fd-calendar__item--legend-15:not(.fd-calendar__item--today).fd-calendar__item--range .fd-calendar__text-wrapper:after,.fd-calendar__item--legend-15:not(.fd-calendar__item--today).fd-calendar__item--selected .fd-calendar__text-wrapper:after{height:var(--fdCalendar_Item_Selected_Legend_Height)}.fd-calendar__item--today.fd-calendar__item--legend-15.is-focus,.fd-calendar__item--today.fd-calendar__item--legend-15:focus{z-index:5}.fd-calendar__item--today.fd-calendar__item--legend-15.is-focus .fd-calendar__text:after,.fd-calendar__item--today.fd-calendar__item--legend-15:focus .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor15)}.fd-calendar__item--today.fd-calendar__item--legend-15 .fd-calendar__text-wrapper:after{border-bottom:.25rem solid var(--sapLegendColor15);border-bottom-left-radius:var(--fdCalendar_Item_Legend_Bottom_Border_Radius);border-bottom-right-radius:var(--fdCalendar_Item_Legend_Bottom_Border_Radius);border-top:var(--fdCalendar_Item_Legend_Top_Border);border-top-left-radius:0;border-top-right-radius:0;bottom:.0625rem;content:\"\";height:var(--fdCalendar_Item_Text_Wrapper_Height);left:.0625rem;position:absolute;right:0;width:calc(100% - .125rem)}.fd-calendar__item--today.fd-calendar__item--legend-15[dir=rtl] .fd-calendar__text-wrapper:after,[dir=rtl] .fd-calendar__item--today.fd-calendar__item--legend-15 .fd-calendar__text-wrapper:after{left:0;right:.0625rem}.fd-calendar__item--legend-16:not(.fd-calendar__item--today) .fd-calendar__text-wrapper:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor16)}.fd-calendar__item--legend-16:not(.fd-calendar__item--today).fd-calendar__item--range .fd-calendar__text-wrapper:after,.fd-calendar__item--legend-16:not(.fd-calendar__item--today).fd-calendar__item--selected .fd-calendar__text-wrapper:after{height:var(--fdCalendar_Item_Selected_Legend_Height)}.fd-calendar__item--today.fd-calendar__item--legend-16.is-focus,.fd-calendar__item--today.fd-calendar__item--legend-16:focus{z-index:5}.fd-calendar__item--today.fd-calendar__item--legend-16.is-focus .fd-calendar__text:after,.fd-calendar__item--today.fd-calendar__item--legend-16:focus .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor16)}.fd-calendar__item--today.fd-calendar__item--legend-16 .fd-calendar__text-wrapper:after{border-bottom:.25rem solid var(--sapLegendColor16);border-bottom-left-radius:var(--fdCalendar_Item_Legend_Bottom_Border_Radius);border-bottom-right-radius:var(--fdCalendar_Item_Legend_Bottom_Border_Radius);border-top:var(--fdCalendar_Item_Legend_Top_Border);border-top-left-radius:0;border-top-right-radius:0;bottom:.0625rem;content:\"\";height:var(--fdCalendar_Item_Text_Wrapper_Height);left:.0625rem;position:absolute;right:0;width:calc(100% - .125rem)}.fd-calendar__item--today.fd-calendar__item--legend-16[dir=rtl] .fd-calendar__text-wrapper:after,[dir=rtl] .fd-calendar__item--today.fd-calendar__item--legend-16 .fd-calendar__text-wrapper:after{left:0;right:.0625rem}.fd-calendar__item--legend-17:not(.fd-calendar__item--today) .fd-calendar__text-wrapper:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor17)}.fd-calendar__item--legend-17:not(.fd-calendar__item--today).fd-calendar__item--range .fd-calendar__text-wrapper:after,.fd-calendar__item--legend-17:not(.fd-calendar__item--today).fd-calendar__item--selected .fd-calendar__text-wrapper:after{height:var(--fdCalendar_Item_Selected_Legend_Height)}.fd-calendar__item--today.fd-calendar__item--legend-17.is-focus,.fd-calendar__item--today.fd-calendar__item--legend-17:focus{z-index:5}.fd-calendar__item--today.fd-calendar__item--legend-17.is-focus .fd-calendar__text:after,.fd-calendar__item--today.fd-calendar__item--legend-17:focus .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor17)}.fd-calendar__item--today.fd-calendar__item--legend-17 .fd-calendar__text-wrapper:after{border-bottom:.25rem solid var(--sapLegendColor17);border-bottom-left-radius:var(--fdCalendar_Item_Legend_Bottom_Border_Radius);border-bottom-right-radius:var(--fdCalendar_Item_Legend_Bottom_Border_Radius);border-top:var(--fdCalendar_Item_Legend_Top_Border);border-top-left-radius:0;border-top-right-radius:0;bottom:.0625rem;content:\"\";height:var(--fdCalendar_Item_Text_Wrapper_Height);left:.0625rem;position:absolute;right:0;width:calc(100% - .125rem)}.fd-calendar__item--today.fd-calendar__item--legend-17[dir=rtl] .fd-calendar__text-wrapper:after,[dir=rtl] .fd-calendar__item--today.fd-calendar__item--legend-17 .fd-calendar__text-wrapper:after{left:0;right:.0625rem}.fd-calendar__item--legend-18:not(.fd-calendar__item--today) .fd-calendar__text-wrapper:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor18)}.fd-calendar__item--legend-18:not(.fd-calendar__item--today).fd-calendar__item--range .fd-calendar__text-wrapper:after,.fd-calendar__item--legend-18:not(.fd-calendar__item--today).fd-calendar__item--selected .fd-calendar__text-wrapper:after{height:var(--fdCalendar_Item_Selected_Legend_Height)}.fd-calendar__item--today.fd-calendar__item--legend-18.is-focus,.fd-calendar__item--today.fd-calendar__item--legend-18:focus{z-index:5}.fd-calendar__item--today.fd-calendar__item--legend-18.is-focus .fd-calendar__text:after,.fd-calendar__item--today.fd-calendar__item--legend-18:focus .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor18)}.fd-calendar__item--today.fd-calendar__item--legend-18 .fd-calendar__text-wrapper:after{border-bottom:.25rem solid var(--sapLegendColor18);border-bottom-left-radius:var(--fdCalendar_Item_Legend_Bottom_Border_Radius);border-bottom-right-radius:var(--fdCalendar_Item_Legend_Bottom_Border_Radius);border-top:var(--fdCalendar_Item_Legend_Top_Border);border-top-left-radius:0;border-top-right-radius:0;bottom:.0625rem;content:\"\";height:var(--fdCalendar_Item_Text_Wrapper_Height);left:.0625rem;position:absolute;right:0;width:calc(100% - .125rem)}.fd-calendar__item--today.fd-calendar__item--legend-18[dir=rtl] .fd-calendar__text-wrapper:after,[dir=rtl] .fd-calendar__item--today.fd-calendar__item--legend-18 .fd-calendar__text-wrapper:after{left:0;right:.0625rem}.fd-calendar__item--legend-19:not(.fd-calendar__item--today) .fd-calendar__text-wrapper:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor19)}.fd-calendar__item--legend-19:not(.fd-calendar__item--today).fd-calendar__item--range .fd-calendar__text-wrapper:after,.fd-calendar__item--legend-19:not(.fd-calendar__item--today).fd-calendar__item--selected .fd-calendar__text-wrapper:after{height:var(--fdCalendar_Item_Selected_Legend_Height)}.fd-calendar__item--today.fd-calendar__item--legend-19.is-focus,.fd-calendar__item--today.fd-calendar__item--legend-19:focus{z-index:5}.fd-calendar__item--today.fd-calendar__item--legend-19.is-focus .fd-calendar__text:after,.fd-calendar__item--today.fd-calendar__item--legend-19:focus .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor19)}.fd-calendar__item--today.fd-calendar__item--legend-19 .fd-calendar__text-wrapper:after{border-bottom:.25rem solid var(--sapLegendColor19);border-bottom-left-radius:var(--fdCalendar_Item_Legend_Bottom_Border_Radius);border-bottom-right-radius:var(--fdCalendar_Item_Legend_Bottom_Border_Radius);border-top:var(--fdCalendar_Item_Legend_Top_Border);border-top-left-radius:0;border-top-right-radius:0;bottom:.0625rem;content:\"\";height:var(--fdCalendar_Item_Text_Wrapper_Height);left:.0625rem;position:absolute;right:0;width:calc(100% - .125rem)}.fd-calendar__item--today.fd-calendar__item--legend-19[dir=rtl] .fd-calendar__text-wrapper:after,[dir=rtl] .fd-calendar__item--today.fd-calendar__item--legend-19 .fd-calendar__text-wrapper:after{left:0;right:.0625rem}.fd-calendar__item--legend-20:not(.fd-calendar__item--today) .fd-calendar__text-wrapper:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor20)}.fd-calendar__item--legend-20:not(.fd-calendar__item--today).fd-calendar__item--range .fd-calendar__text-wrapper:after,.fd-calendar__item--legend-20:not(.fd-calendar__item--today).fd-calendar__item--selected .fd-calendar__text-wrapper:after{height:var(--fdCalendar_Item_Selected_Legend_Height)}.fd-calendar__item--today.fd-calendar__item--legend-20.is-focus,.fd-calendar__item--today.fd-calendar__item--legend-20:focus{z-index:5}.fd-calendar__item--today.fd-calendar__item--legend-20.is-focus .fd-calendar__text:after,.fd-calendar__item--today.fd-calendar__item--legend-20:focus .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor20)}.fd-calendar__item--today.fd-calendar__item--legend-20 .fd-calendar__text-wrapper:after{border-bottom:.25rem solid var(--sapLegendColor20);border-bottom-left-radius:var(--fdCalendar_Item_Legend_Bottom_Border_Radius);border-bottom-right-radius:var(--fdCalendar_Item_Legend_Bottom_Border_Radius);border-top:var(--fdCalendar_Item_Legend_Top_Border);border-top-left-radius:0;border-top-right-radius:0;bottom:.0625rem;content:\"\";height:var(--fdCalendar_Item_Text_Wrapper_Height);left:.0625rem;position:absolute;right:0;width:calc(100% - .125rem)}.fd-calendar__item--today.fd-calendar__item--legend-20[dir=rtl] .fd-calendar__text-wrapper:after,[dir=rtl] .fd-calendar__item--today.fd-calendar__item--legend-20 .fd-calendar__text-wrapper:after{left:0;right:.0625rem}.fd-calendar{--fdCalendar_Item_Width:2rem;--fdCalendar_Item_Height:2.75rem;--fdCalendar_Padding:.5rem;--fdCalendar_Background:var(--sapList_Background);--fdCalendar_Width:calc(var(--fdCalendar_Item_Width)*8 + var(--fdCalendar_Padding)*2 + var(--fdCalendar_Item_Spacing)*16);--fdCalendar_Action_Padding:.25rem;--fdCalendar_Action_Width:auto;--fdCalendar_Button_Horizontal_Space:.25rem;--fdCalendar_Item_Spacing:.0625rem;--fdCalendar_Item_Background:var(--sapLegend_WorkingBackground);--fdCalendar_Item_Helper_Height:1.875rem;--fdCalendar_Item_Font_Size:var(--sapFontSize);--fdCalendar_Item_Border:0;--fdCalendar_Item_Current_Border_Width:.125rem;--fdCalendar_Item_Text_Color:var(--sapTextColor);--fdCalendar_Item_Text_Height:2.125rem;-webkit-box-sizing:border-box;background-color:var(--fdCalendar_Background);border:0;border-radius:var(--fdCalendar_Border_Radius);box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0;padding:var(--fdCalendar_Padding);width:var(--fdCalendar_Width)}.fd-calendar:after,.fd-calendar:before{box-sizing:inherit;font-size:inherit}.fd-calendar__navigation{-webkit-box-sizing:border-box;-webkit-box-pack:center;-ms-flex-pack:center;border:0;box-sizing:border-box;color:var(--sapTextColor);display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;justify-content:center;line-height:var(--sapContent_LineHeight);margin:0;padding:0;padding-bottom:var(--fdCalendar_Button_Horizontal_Space);padding-top:var(--fdCalendar_Button_Horizontal_Space);position:relative;width:100%}.fd-calendar__navigation:after,.fd-calendar__navigation:before{box-sizing:inherit;font-size:inherit}.fd-calendar__action{-webkit-box-sizing:border-box;-webkit-box-flex:1;-ms-flex-positive:1;border:0;box-sizing:border-box;color:var(--sapTextColor);flex-grow:1;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-calendar__action:after,.fd-calendar__action:before{box-sizing:inherit;font-size:inherit}.fd-calendar__action:not(:last-child):not(:first-child){margin-left:var(--fdCalendar_Action_Padding);margin-right:var(--fdCalendar_Action_Padding)}.fd-calendar__action:first-child{margin-right:var(--fdCalendar_Action_Padding)}.fd-calendar__action:last-child{margin-left:var(--fdCalendar_Action_Padding)}.fd-calendar__action>[type=button]{width:100%}.fd-calendar__action--arrow-left,.fd-calendar__action--arrow-right{flex-grow:0;width:var(--fdCalendar_Action_Width)}.fd-calendar__action--arrow-left+.fd-calendar__action--arrow-right{margin-left:auto}.fd-calendar__action--arrow-left+.fd-calendar__action--arrow-right[dir=rtl],[dir=rtl] .fd-calendar__action--arrow-left+.fd-calendar__action--arrow-right{margin-left:0;margin-right:auto}.fd-calendar__action [class*=sap-icon][dir=rtl],[dir=rtl] .fd-calendar__action [class*=sap-icon]{transform:scaleX(-1)}.fd-calendar__text-wrapper{-webkit-box-sizing:border-box;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;border:0;box-sizing:border-box;color:var(--sapTextColor);display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:100%;justify-content:center;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-calendar__text-wrapper:after,.fd-calendar__text-wrapper:before{box-sizing:inherit;font-size:inherit}.fd-calendar__item.is-hover,.fd-calendar__item:hover{--fdCalendar_Item_Background:var(--sapList_Hover_Background)}.fd-calendar__item.is-disabled,.fd-calendar__item:disabled,.fd-calendar__item[aria-disabled=true]{opacity:.4;pointer-events:none}.fd-calendar__item--weekend{--fdCalendar_Item_Background:var(--sapLegend_NonWorkingBackground)}.fd-calendar__item--weekend.is-hover,.fd-calendar__item--weekend:hover{--fdCalendar_Item_Background:var(--sapList_Hover_Background);filter:brightness(1.05)}.fd-calendar__item--other{--fdCalendar_Item_Background:var(--fdCalendar_Background)}.fd-calendar__item--other.is-hover,.fd-calendar__item--other:hover{--fdCalendar_Item_Background:var(--sapList_Hover_Background)}.fd-calendar__item--other .fd-calendar__text{--fdCalendar_Item_Text_Color:var(--sapContent_LabelColor)}.fd-calendar__item--selected{--fdCalendar_Item_Background:var(--sapContent_Selected_Background);--fdCalendar_Item_Border:var(--fdCalendar_Active_Item_Border)}.fd-calendar__item--selected.is-hover,.fd-calendar__item--selected:hover{--fdCalendar_Item_Background:var(--fdCalendar_Item_Active_Background_Hover)}.fd-calendar__item--selected .fd-calendar__text{--fdCalendar_Item_Text_Color:var(--sapContent_Selected_TextColor);font-family:var(--fdCalendar_Active_Item_Font_Weight)}.fd-calendar__item--range{--fdCalendar_Item_Border:var(--fdCalendar_Active_Item_Border);--fdCalendar_Item_Background:var(--sapList_SelectionBackgroundColor)}.fd-calendar__item--range.is-hover,.fd-calendar__item--range:hover{--fdCalendar_Item_Background:var(--sapList_Hover_SelectionBackground)}.fd-calendar__item--today.fd-calendar__item--range:after,.fd-calendar__item--today.fd-calendar__item--selected:after{border:.0625rem solid var(--sapList_SelectionBorderColor);border-radius:var(--fdCalendar_Item_Today_Selected_Bottom_Radius);bottom:.0625rem;content:\"\";height:calc(100% - .125rem);left:.0625rem;position:absolute;top:.0625rem;width:calc(100% - .125rem)}.fd-calendar__item--today{--fdCalendar_Item_Border:solid .125rem var(--sapLegend_CurrentDateTime);box-shadow:0 0 0 .0625rem var(--sapList_Background) inset;position:relative}.fd-calendar__item--today:after{border-radius:.3125rem;bottom:.0625rem;content:\"\";height:calc(100% - .125rem);left:.0625rem;position:absolute;top:.0625rem;width:calc(100% - .125rem)}.fd-calendar__item.fd-calendar__item--selected.is-focus,.fd-calendar__item.fd-calendar__item--selected:focus{z-index:5}.fd-calendar__item.fd-calendar__item--selected.is-focus .fd-calendar__text-wrapper,.fd-calendar__item.fd-calendar__item--selected:focus .fd-calendar__text-wrapper{border:var(--fdCalendar_Item_Text_Active_Focus)}.fd-calendar__item:focus-visible{outline:none}.fd-calendar__item.is-focus,.fd-calendar__item:focus{z-index:5}.fd-calendar__item.is-focus .fd-calendar__text-wrapper,.fd-calendar__item:focus .fd-calendar__text-wrapper{-webkit-box-sizing:var(--fdCalendar_Text_Wrapper_Box_Sizing);border:var(--fdCalendar_Text_Wrapper_Border);box-sizing:var(--fdCalendar_Text_Wrapper_Box_Sizing);height:var(--fdCalendar_Text_Wrapper_Height);margin:var(--fdCalendar_Text_Wrapper_Margin)}.fd-calendar__item.is-focus .fd-calendar__text,.fd-calendar__item:focus .fd-calendar__text{border:var(--fdCalendar_Text_Border_Focus)}.fd-calendar__item--side-helper{-ms-flex-item-align:center;--fdCalendar_Item_Height:var(--fdCalendar_Item_Side_Helper,var(--fdCalendar_Item_Helper_Height));--fdCalendar_Item_Background:var(--sapList_Background);align-self:center;pointer-events:none}.fd-calendar__item--side-helper .fd-calendar__text{--fdCalendar_Item_Text_Color:var(--sapContent_LabelColor);--fdCalendar_Item_Font_Size:var(--sapFontSmallSize)}.fd-calendar .fd-calendar__my-item{max-height:var(--fdCalendar_Item_Height)}.fd-calendar .fd-calendar__my-item-button{min-height:100%;min-width:100%;padding:0}.fd-calendar .fd-calendar__my-item .fd-calendar__text{color:inherit}.fd-calendar__content{-webkit-box-sizing:border-box;border:0;border-spacing:0;box-sizing:border-box;color:var(--sapTextColor);display:table;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0;width:100%}.fd-calendar__content:after,.fd-calendar__content:before{box-sizing:inherit;font-size:inherit}.fd-calendar__content--months,.fd-calendar__content--years{--fdCalendar_Item_Background:transparent;padding-top:var(--fdCalendar_Item_Helper_Height)}.fd-calendar__content--screen-reader-only{clip:rect(0 0 0 0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.fd-calendar__group{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);display:table-row-group;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-calendar__group:after,.fd-calendar__group:before{box-sizing:inherit;font-size:inherit}.fd-calendar__row{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-calendar__row:after,.fd-calendar__row:before{box-sizing:inherit;font-size:inherit}.fd-calendar__text{-webkit-box-sizing:border-box;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-box-align:center;-ms-flex-align:center;-webkit-box-flex:1;-ms-flex-positive:1;align-items:center;border:0;border-radius:.1875rem;box-sizing:border-box;color:var(--sapTextColor);color:var(--fdCalendar_Item_Text_Color);display:flex;flex-grow:1;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-size:var(--fdCalendar_Item_Font_Size);font-weight:400;forced-color-adjust:none;height:var(--fdCalendar_Item_Text_Height);justify-content:center;line-height:var(--sapContent_LineHeight);margin:0;max-width:calc(100% - .7rem);min-width:1.375rem;padding:0;position:relative;text-shadow:var(--fdCalendar_Text_Shadow)}.fd-calendar__text:after,.fd-calendar__text:before{box-sizing:inherit;font-size:inherit}.fd-calendar__text.is-focus,.fd-calendar__text:focus{border:var(--sapContent_FocusColor) var(--sapContent_FocusStyle) var(--sapContent_FocusWidth);z-index:5}.fd-calendar[class*=-compact],.fd-calendar[class*=-condensed],[class*=-compact] .fd-calendar:not([class*=-cozy]),[class*=-condensed] .fd-calendar:not([class*=-cozy]){--fdCalendar_Width:calc(var(--fdCalendar_Action_Width)*8 + var(--fdCalendar_Padding)*2 + var(--fdCalendar_Item_Spacing)*16);--fdCalendar_Padding:.5rem;--fdCalendar_Item_Text_Height:1.375rem;--fdCalendar_Item_Height:2rem;--fdCalendar_Button_Horizontal_Space:.1875rem;--fdCalendar_Action_Width:2rem;--fdCalendar_Item_Width:var(--fdCalendar_Action_Width)}.fd-calendar--mobile-landscape,.fd-calendar--mobile-portrait{height:100%;width:100%}.fd-calendar--mobile-landscape{--fdCalendar_Padding:0;--fdCalendar_Item_Side_Helper:1.625rem}.fd-calendar--mobile-landscape .fd-calendar__navigation--main{max-width:20rem}.fd-calendar--mobile-portrait{--fdCalendar_Padding:1rem 0 0 0}.fd-has-display-block{display:block}.fd-calendar__text{max-width:calc(100% - .375rem)}\n"], dependencies: [{ kind: "ngmodule", type: ContentDensityModule }, { kind: "component", type: CalendarHeaderComponent, selector: "fd-calendar-header", inputs: ["activeView", "currentlyDisplayed", "previousButtonDisabled", "nextButtonDisabled", "calendarYearGrid", "id", "mobileLandscape"], outputs: ["activeViewChange", "previousClicked", "nextClicked"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: CalendarDayViewComponent, selector: "fd-calendar-day-view", inputs: ["disableFunction", "disableRangeStartFunction", "disableRangeEndFunction", "currentlyDisplayed", "selectedDate", "selectedRangeDate", "startingDayOfWeek", "calType", "id", "rangeHoverEffect", "markWeekends", "showWeekNumbers", "focusEscapeFunction", "specialDaysRules"], outputs: ["selectedRangeDateChange", "nextMonthSelect", "previousMonthSelect", "selectedDateChange"] }, { kind: "component", type: CalendarMonthViewComponent, selector: "fd-calendar-month-view", inputs: ["id", "monthSelected", "focusEscapeFunction", "year"], outputs: ["monthClicked"] }, { kind: "component", type: CalendarYearViewComponent, selector: "fd-calendar-year-view", inputs: ["id", "focusEscapeFunction", "yearSelected", "yearViewGrid"], outputs: ["yearClicked"] }, { kind: "component", type: CalendarAggregatedYearViewComponent, selector: "fd-calendar-aggregated-year-view", inputs: ["id", "focusEscapeFunction", "yearSelected", "aggregatedYearsViewGrid", "yearViewGrid"], outputs: ["yearsClicked"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
508
502
  }
509
503
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: CalendarComponent, decorators: [{
510
504
  type: Component,
@@ -525,7 +519,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImpor
525
519
  '(focusout)': '_focusOut($event)',
526
520
  '[attr.id]': 'id',
527
521
  class: 'fd-calendar fd-has-display-block'
528
- }, changeDetection: ChangeDetectionStrategy.OnPush, template: "<fd-calendar-header\n [currentlyDisplayed]=\"_currentlyDisplayed\"\n [activeView]=\"activeView\"\n [id]=\"id\"\n [calendarYearGrid]=\"yearGrid\"\n [mobileLandscape]=\"mobileLandscape\"\n (closeClicked)=\"closeClicked.emit()\"\n (nextClicked)=\"handleNextArrowClick()\"\n (previousClicked)=\"handlePreviousArrowClick()\"\n [previousButtonDisabled]=\"previousButtonDisabled\"\n [nextButtonDisabled]=\"nextButtonDisabled\"\n (activeViewChange)=\"handleActiveViewChange($event)\"\n></fd-calendar-header>\n<ng-container [ngSwitch]=\"activeView\" *ngIf=\"_currentlyDisplayed\">\n <div\n class=\"fd-calendar__content\"\n [class.fd-calendar__content--dates]=\"activeView === 'day'\"\n [class.fd-calendar__content--months]=\"activeView === 'month'\"\n [class.fd-calendar__content--years]=\"activeView === 'year' || activeView === 'aggregatedYear'\"\n >\n <fd-calendar-day-view\n *ngSwitchCase=\"'day'\"\n [selectedDate]=\"selectedDate\"\n [showWeekNumbers]=\"showWeekNumbers\"\n [markWeekends]=\"markWeekends\"\n (selectedDateChange)=\"selectedDateChanged($event)\"\n [selectedRangeDate]=\"selectedRangeDate\"\n (selectedRangeDateChange)=\"selectedRangeDateChanged($event)\"\n [currentlyDisplayed]=\"_currentlyDisplayed\"\n [startingDayOfWeek]=\"getWeekStartDay()\"\n [disableFunction]=\"disableFunction\"\n [disableRangeEndFunction]=\"disableRangeEndFunction\"\n [disableRangeStartFunction]=\"disableRangeStartFunction\"\n [calType]=\"calType\"\n [id]=\"id\"\n [rangeHoverEffect]=\"rangeHoverEffect\"\n [specialDaysRules]=\"specialDaysRules\"\n [focusEscapeFunction]=\"escapeFocusFunction\"\n (nextMonthSelect)=\"displayNextMonth()\"\n (previousMonthSelect)=\"displayPreviousMonth()\"\n ></fd-calendar-day-view>\n <fd-calendar-month-view\n *ngSwitchCase=\"'month'\"\n [monthSelected]=\"_currentlyDisplayed.month\"\n [year]=\"_currentlyDisplayed.year\"\n [id]=\"id\"\n [focusEscapeFunction]=\"escapeFocusFunction\"\n (monthClicked)=\"handleMonthViewChange($event)\"\n ></fd-calendar-month-view>\n <fd-calendar-year-view\n *ngSwitchCase=\"'year'\"\n [yearSelected]=\"_currentlyDisplayed.year\"\n [yearViewGrid]=\"yearGrid\"\n [id]=\"id\"\n [focusEscapeFunction]=\"escapeFocusFunction\"\n (yearClicked)=\"selectedYear($event)\"\n >\n </fd-calendar-year-view>\n <fd-calendar-aggregated-year-view\n *ngSwitchCase=\"'aggregatedYear'\"\n (yearsClicked)=\"selectedYears($event)\"\n [yearSelected]=\"_currentlyDisplayed.year\"\n [yearViewGrid]=\"yearGrid\"\n [aggregatedYearsViewGrid]=\"aggregatedYearGrid\"\n [id]=\"id\"\n [focusEscapeFunction]=\"escapeFocusFunction\"\n >\n </fd-calendar-aggregated-year-view>\n </div>\n</ng-container>\n", styles: ["/*!\n * Fundamental Library Styles v0.28.3\n * Copyright (c) 2023 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n *//*!\n.fd-calendar+(--compact, --mobile-landscape, --mobile-portrait)\n .fd-calendar__header\n .fd-calendar__navigation(--main-navigation)\n .fd-calendar__action(+[--arrow-left, --arrow-right])\n .fd-calendar__close-button--navigation\n .fd-calendar__content(+[--months, --years])\n .fd-calendar__table\n .fd-calendar__group\n .fd-calendar__row\n .fd-calendar__item(+[--other-month, --current, --side-helper, --weekend, --range],\n +[(.is-disabled | [aria-disabled=true]), (.is-focus | [aria-focus=true]), (.is-active | [aria-active=true])])\n .fd-calendar__special-day(+[--1, --2, ..., --19, --20])\n .fd-calendar__text\n*/:root{--fdCalendar_Padding:1rem;--fdCalendar_Item_Width:2.125rem;--fdCalendar_Item_Height:2.75rem;--fdCalendar_Action_Padding:.5rem;--fdCalendar_Item_Spacing:.0625rem;--fdCalendar_Button_Horizontal_Space:.25rem;--fdCalendar_Width:20rem;--fdCalendar_Item_Inner_Border_Size:calc(100% - .125rem);--fdCalendar_Action_Width:auto}.fd-calendar .fd-calendar__item{-webkit-box-sizing:border-box;-webkit-box-flex:1;-ms-flex:1 1 .375rem;background-color:var(--sapLegend_WorkingBackground);border:0;border-radius:var(--fdCalendar_Border_Radius);box-sizing:border-box;color:var(--sapTextColor);cursor:pointer;flex:1 1 .375rem;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:var(--fdCalendar_Item_Height);line-height:var(--sapContent_LineHeight);margin:.0625rem;min-width:var(--fdCalendar_Item_Width);overflow:hidden;padding:0;position:relative}.fd-calendar .fd-calendar__item:after,.fd-calendar .fd-calendar__item:before{box-sizing:inherit;font-size:inherit}.fd-calendar .fd-calendar__item:hover,.fd-calendar .is-hover.fd-calendar__item{background-color:var(--sapList_Hover_Background)}.fd-calendar__content--dates .fd-calendar__item--side-helper{align-self:center;background-color:var(--sapList_Background);height:var(--fdCalendar_Item_Side_Helper, 1.875rem);pointer-events:none}.fd-calendar__content--dates .fd-calendar__item--other-month{background-color:var(--sapList_Background)}.fd-calendar__content--dates .fd-calendar__item--other-month:hover,.fd-calendar__content--dates .is-hover.fd-calendar__item--other-month{background-color:var(--sapList_Hover_Background)}.fd-calendar__content--dates .fd-calendar__item--weekend{background-color:var(--sapLegend_NonWorkingBackground)}.fd-calendar__content--dates .fd-calendar__item--weekend:hover,.fd-calendar__content--dates .is-hover.fd-calendar__item--weekend{background-color:var(--sapList_Hover_Background)}.fd-calendar .fd-calendar__item--current,.fd-calendar__content--dates .fd-calendar__item--range.fd-calendar__item--current{border:solid var(--sapLegend_CurrentDateTime)!important}.fd-calendar .fd-calendar__item--current:active:after,.fd-calendar .is-active.fd-calendar__item--current:after,.fd-calendar__content--dates .fd-calendar__item--range.fd-calendar__item--current:active:after,.fd-calendar__content--dates .is-active.fd-calendar__item--range.fd-calendar__item--current:after{border:var(--fdCalendar_Active_Item_Border);border-radius:calc(var(--fdCalendar_Border_Radius) / 2);bottom:.0625rem;content:\" \";height:var(--fdCalendar_Item_Inner_Border_Size);left:.0625rem;position:absolute;right:auto;width:var(--fdCalendar_Item_Inner_Border_Size)}.fd-calendar .fd-calendar__item--current:active:after[dir=rtl],.fd-calendar .is-active.fd-calendar__item--current:after[dir=rtl],.fd-calendar [dir=rtl] .fd-calendar__item--current:active:after,.fd-calendar [dir=rtl] .is-active.fd-calendar__item--current:after,.fd-calendar__content--dates .fd-calendar__item--range.fd-calendar__item--current:active:after[dir=rtl],.fd-calendar__content--dates .is-active.fd-calendar__item--range.fd-calendar__item--current:after[dir=rtl],.fd-calendar__content--dates [dir=rtl] .fd-calendar__item--range.fd-calendar__item--current:active:after,.fd-calendar__content--dates [dir=rtl] .is-active.fd-calendar__item--range.fd-calendar__item--current:after,[dir=rtl] .fd-calendar .fd-calendar__item--current:active:after,[dir=rtl] .fd-calendar .is-active.fd-calendar__item--current:after,[dir=rtl] .fd-calendar__content--dates .fd-calendar__item--range.fd-calendar__item--current:active:after,[dir=rtl] .fd-calendar__content--dates .is-active.fd-calendar__item--range.fd-calendar__item--current:after{left:auto;right:.0625rem}.fd-calendar__content--dates .fd-calendar__item.is-active,.fd-calendar__content--dates .fd-calendar__item:active{background-color:var(--sapContent_Selected_Background);border:var(--fdCalendar_Active_Item_Border);font-weight:var(--fdCalendar_Active_Item_Font_Weight)}.fd-calendar__content--dates .fd-calendar__item.is-active:hover,.fd-calendar__content--dates .fd-calendar__item:hover:active,.fd-calendar__content--dates .is-hover.fd-calendar__item.is-active,.fd-calendar__content--dates .is-hover.fd-calendar__item:active{background-color:var(--fdCalendar_Item_Active_Background_Hover)}.fd-calendar__content--dates .fd-calendar__item.is-active:focus,.fd-calendar__content--dates .fd-calendar__item:focus:active,.fd-calendar__content--dates .is-focus.fd-calendar__item.is-active,.fd-calendar__content--dates .is-focus.fd-calendar__item:active{box-shadow:none;outline-color:var(--fdCalendar_Active_Focus_Item_Outline_Color);z-index:5}.fd-calendar__content--dates .fd-calendar__item--range{background-color:var(--sapList_SelectionBackgroundColor);border:.0625rem solid var(--sapList_SelectionBorderColor)}.fd-calendar__content--dates .fd-calendar__item--range:hover,.fd-calendar__content--dates .is-hover.fd-calendar__item--range{background-color:var(--sapList_Hover_SelectionBackground)}.fd-calendar__content--dates .fd-calendar__item.is-disabled,.fd-calendar__content--dates .fd-calendar__item:disabled,.fd-calendar__content--dates .fd-calendar__item[aria-disabled=true]{opacity:.4;pointer-events:none}.fd-calendar__content--dates .fd-calendar__item.is-disabled:hover,.fd-calendar__content--dates .fd-calendar__item:hover:disabled,.fd-calendar__content--dates .fd-calendar__item[aria-disabled=true]:hover{cursor:not-allowed}.fd-calendar__content--dates .fd-calendar__item.is-focus,.fd-calendar__content--dates .fd-calendar__item:focus{box-shadow:none;outline:var(--sapContent_FocusColor) var(--sapContent_FocusStyle) var(--sapContent_FocusWidth);outline-offset:-.1875rem}.fd-calendar__text{-webkit-box-sizing:border-box;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;border:0;box-sizing:border-box;color:var(--sapTextColor);display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:100%;justify-content:center;line-height:var(--sapContent_LineHeight);margin:0;padding:0;text-shadow:var(--fdCalendar_Text_Shadow)}.fd-calendar__text:after,.fd-calendar__text:before{box-sizing:inherit;font-size:inherit}.fd-calendar{-webkit-box-sizing:border-box;background-color:var(--sapList_Background);border:0;border-radius:var(--fdCalendar_Border_Radius);box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0;padding:var(--fdCalendar_Padding);width:var(--fdCalendar_Width)}.fd-calendar:after,.fd-calendar:before{box-sizing:inherit;font-size:inherit}.fd-calendar__header{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);display:flex;flex-direction:column;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0;position:relative}.fd-calendar__header:after,.fd-calendar__header:before{box-sizing:inherit;font-size:inherit}.fd-calendar__navigation{-webkit-box-sizing:border-box;-webkit-box-pack:center;-ms-flex-pack:center;border:0;box-sizing:border-box;color:var(--sapTextColor);display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;justify-content:center;line-height:var(--sapContent_LineHeight);margin:0;padding:0;padding-bottom:var(--fdCalendar_Button_Horizontal_Space);padding-top:var(--fdCalendar_Button_Horizontal_Space);width:100%}.fd-calendar__navigation:after,.fd-calendar__navigation:before{box-sizing:inherit;font-size:inherit}.fd-calendar__action{-webkit-box-sizing:border-box;-webkit-box-flex:1;-ms-flex-positive:1;border:0;box-sizing:border-box;color:var(--sapTextColor);flex-grow:1;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-calendar__action:after,.fd-calendar__action:before{box-sizing:inherit;font-size:inherit}.fd-calendar__action:not(:last-child):not(:first-child){margin-left:.25rem;margin-right:.25rem}.fd-calendar__action:first-child{margin-right:.25rem}.fd-calendar__action:last-child{margin-left:.25rem}.fd-calendar__action>[type=button]{width:100%}.fd-calendar__action--arrow-left,.fd-calendar__action--arrow-right{flex-grow:0;width:var(--fdCalendar_Action_Width)}.fd-calendar__action--arrow-left+.fd-calendar__action--arrow-right{margin-left:auto}.fd-calendar__action--arrow-left+.fd-calendar__action--arrow-right[dir=rtl],[dir=rtl] .fd-calendar__action--arrow-left+.fd-calendar__action--arrow-right{margin-left:0;margin-right:auto}.fd-calendar__action [class*=sap-icon][dir=rtl],[dir=rtl] .fd-calendar__action [class*=sap-icon]{transform:scaleX(-1)}.fd-calendar__content{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-calendar__content:after,.fd-calendar__content:before{box-sizing:inherit;font-size:inherit}.fd-calendar__content--months,.fd-calendar__content--years{padding-top:1.875rem}.fd-calendar__content--months .fd-calendar__item,.fd-calendar__content--years .fd-calendar__item{background-color:transparent;max-height:var(--fdCalendar_Item_Height)}.fd-calendar__content--months .fd-calendar__item-button,.fd-calendar__content--years .fd-calendar__item-button{min-height:100%;min-width:100%;padding:0}.fd-calendar__content--months .fd-calendar__item--current .fd-calendar__item-button,.fd-calendar__content--years .fd-calendar__item--current .fd-calendar__item-button{-webkit-box-shadow:none;border:none;border-radius:var(--fdCalendar_Month_Year_Item_Border_Radius);box-shadow:none}.fd-calendar__content--months .fd-calendar__item .fd-calendar__text,.fd-calendar__content--years .fd-calendar__item .fd-calendar__text{color:inherit}.fd-calendar__content--dates .fd-calendar__item.is-focus,.fd-calendar__content--dates .fd-calendar__item:focus{z-index:5}.fd-calendar__content--dates .fd-calendar__item.is-active .fd-calendar__text,.fd-calendar__content--dates .fd-calendar__item:active .fd-calendar__text{color:var(--sapContent_Selected_TextColor)}.fd-calendar__content--dates .fd-calendar__item--side-helper .fd-calendar__text{color:var(--sapContent_LabelColor);font-size:var(--sapFontSmallSize)}.fd-calendar__content--dates .fd-calendar__item--other-month .fd-calendar__text{color:var(--sapContent_LabelColor)}.fd-calendar__content--screen-reader-only{clip:rect(0 0 0 0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.fd-calendar__table{-webkit-box-sizing:border-box;border:0;border-spacing:0;box-sizing:border-box;color:var(--sapTextColor);display:table;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0;width:100%}.fd-calendar__table:after,.fd-calendar__table:before{box-sizing:inherit;font-size:inherit}.fd-calendar__group{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);display:table-row-group;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-calendar__group:after,.fd-calendar__group:before{box-sizing:inherit;font-size:inherit}.fd-calendar__row{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-calendar__row:after,.fd-calendar__row:before{box-sizing:inherit;font-size:inherit}.fd-calendar .fd-calendar__item{display:inline-block}.fd-calendar .fd-calendar__item--current .fd-calendar__text:before{border:var(--fdCalendar_Item_Current_Border);border-radius:calc(var(--sapElement_BorderCornerRadius) / 2);content:\"\";inset:0;position:absolute;z-index:1}.fd-calendar__special-day--1 .fd-calendar__text:after{-webkit-box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor1);bottom:0;box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor1);content:\"\";height:var(--fdCalendar_Special_Day_Marker_Height);left:0;position:absolute;right:0}.fd-calendar__special-day--1.is-active .fd-calendar__text:after,.fd-calendar__special-day--1:active .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor1),inset 0 -.33rem 0 var(--fdCalendar_Item_Current_Inner_Border_Color);height:calc(var(--fdCalendar_Special_Day_Marker_Height) + .0625rem)}.fd-calendar__special-day--1.fd-calendar__item--current.is-active .fd-calendar__text:after,.fd-calendar__special-day--1.fd-calendar__item--current:active .fd-calendar__text:after{bottom:var(--fdCalendar_Item_Current_Active_Special_Day_Bottom);height:var(--fdCalendar_Item_Current_Active_Special_Day_Height);left:var(--fdCalendar_Item_Current_Active_Special_Day_Left);right:var(--fdCalendar_Item_Current_Active_Special_Day_Right);width:var(--fdCalendar_Item_Current_Active_Special_Day_Width)}.fd-calendar__special-day--2 .fd-calendar__text:after{-webkit-box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor2);bottom:0;box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor2);content:\"\";height:var(--fdCalendar_Special_Day_Marker_Height);left:0;position:absolute;right:0}.fd-calendar__special-day--2.is-active .fd-calendar__text:after,.fd-calendar__special-day--2:active .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor2),inset 0 -.33rem 0 var(--fdCalendar_Item_Current_Inner_Border_Color);height:calc(var(--fdCalendar_Special_Day_Marker_Height) + .0625rem)}.fd-calendar__special-day--2.fd-calendar__item--current.is-active .fd-calendar__text:after,.fd-calendar__special-day--2.fd-calendar__item--current:active .fd-calendar__text:after{bottom:var(--fdCalendar_Item_Current_Active_Special_Day_Bottom);height:var(--fdCalendar_Item_Current_Active_Special_Day_Height);left:var(--fdCalendar_Item_Current_Active_Special_Day_Left);right:var(--fdCalendar_Item_Current_Active_Special_Day_Right);width:var(--fdCalendar_Item_Current_Active_Special_Day_Width)}.fd-calendar__special-day--3 .fd-calendar__text:after{-webkit-box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor3);bottom:0;box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor3);content:\"\";height:var(--fdCalendar_Special_Day_Marker_Height);left:0;position:absolute;right:0}.fd-calendar__special-day--3.is-active .fd-calendar__text:after,.fd-calendar__special-day--3:active .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor3),inset 0 -.33rem 0 var(--fdCalendar_Item_Current_Inner_Border_Color);height:calc(var(--fdCalendar_Special_Day_Marker_Height) + .0625rem)}.fd-calendar__special-day--3.fd-calendar__item--current.is-active .fd-calendar__text:after,.fd-calendar__special-day--3.fd-calendar__item--current:active .fd-calendar__text:after{bottom:var(--fdCalendar_Item_Current_Active_Special_Day_Bottom);height:var(--fdCalendar_Item_Current_Active_Special_Day_Height);left:var(--fdCalendar_Item_Current_Active_Special_Day_Left);right:var(--fdCalendar_Item_Current_Active_Special_Day_Right);width:var(--fdCalendar_Item_Current_Active_Special_Day_Width)}.fd-calendar__special-day--4 .fd-calendar__text:after{-webkit-box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor4);bottom:0;box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor4);content:\"\";height:var(--fdCalendar_Special_Day_Marker_Height);left:0;position:absolute;right:0}.fd-calendar__special-day--4.is-active .fd-calendar__text:after,.fd-calendar__special-day--4:active .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor4),inset 0 -.33rem 0 var(--fdCalendar_Item_Current_Inner_Border_Color);height:calc(var(--fdCalendar_Special_Day_Marker_Height) + .0625rem)}.fd-calendar__special-day--4.fd-calendar__item--current.is-active .fd-calendar__text:after,.fd-calendar__special-day--4.fd-calendar__item--current:active .fd-calendar__text:after{bottom:var(--fdCalendar_Item_Current_Active_Special_Day_Bottom);height:var(--fdCalendar_Item_Current_Active_Special_Day_Height);left:var(--fdCalendar_Item_Current_Active_Special_Day_Left);right:var(--fdCalendar_Item_Current_Active_Special_Day_Right);width:var(--fdCalendar_Item_Current_Active_Special_Day_Width)}.fd-calendar__special-day--5 .fd-calendar__text:after{-webkit-box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor5);bottom:0;box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor5);content:\"\";height:var(--fdCalendar_Special_Day_Marker_Height);left:0;position:absolute;right:0}.fd-calendar__special-day--5.is-active .fd-calendar__text:after,.fd-calendar__special-day--5:active .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor5),inset 0 -.33rem 0 var(--fdCalendar_Item_Current_Inner_Border_Color);height:calc(var(--fdCalendar_Special_Day_Marker_Height) + .0625rem)}.fd-calendar__special-day--5.fd-calendar__item--current.is-active .fd-calendar__text:after,.fd-calendar__special-day--5.fd-calendar__item--current:active .fd-calendar__text:after{bottom:var(--fdCalendar_Item_Current_Active_Special_Day_Bottom);height:var(--fdCalendar_Item_Current_Active_Special_Day_Height);left:var(--fdCalendar_Item_Current_Active_Special_Day_Left);right:var(--fdCalendar_Item_Current_Active_Special_Day_Right);width:var(--fdCalendar_Item_Current_Active_Special_Day_Width)}.fd-calendar__special-day--6 .fd-calendar__text:after{-webkit-box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor6);bottom:0;box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor6);content:\"\";height:var(--fdCalendar_Special_Day_Marker_Height);left:0;position:absolute;right:0}.fd-calendar__special-day--6.is-active .fd-calendar__text:after,.fd-calendar__special-day--6:active .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor6),inset 0 -.33rem 0 var(--fdCalendar_Item_Current_Inner_Border_Color);height:calc(var(--fdCalendar_Special_Day_Marker_Height) + .0625rem)}.fd-calendar__special-day--6.fd-calendar__item--current.is-active .fd-calendar__text:after,.fd-calendar__special-day--6.fd-calendar__item--current:active .fd-calendar__text:after{bottom:var(--fdCalendar_Item_Current_Active_Special_Day_Bottom);height:var(--fdCalendar_Item_Current_Active_Special_Day_Height);left:var(--fdCalendar_Item_Current_Active_Special_Day_Left);right:var(--fdCalendar_Item_Current_Active_Special_Day_Right);width:var(--fdCalendar_Item_Current_Active_Special_Day_Width)}.fd-calendar__special-day--7 .fd-calendar__text:after{-webkit-box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor7);bottom:0;box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor7);content:\"\";height:var(--fdCalendar_Special_Day_Marker_Height);left:0;position:absolute;right:0}.fd-calendar__special-day--7.is-active .fd-calendar__text:after,.fd-calendar__special-day--7:active .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor7),inset 0 -.33rem 0 var(--fdCalendar_Item_Current_Inner_Border_Color);height:calc(var(--fdCalendar_Special_Day_Marker_Height) + .0625rem)}.fd-calendar__special-day--7.fd-calendar__item--current.is-active .fd-calendar__text:after,.fd-calendar__special-day--7.fd-calendar__item--current:active .fd-calendar__text:after{bottom:var(--fdCalendar_Item_Current_Active_Special_Day_Bottom);height:var(--fdCalendar_Item_Current_Active_Special_Day_Height);left:var(--fdCalendar_Item_Current_Active_Special_Day_Left);right:var(--fdCalendar_Item_Current_Active_Special_Day_Right);width:var(--fdCalendar_Item_Current_Active_Special_Day_Width)}.fd-calendar__special-day--8 .fd-calendar__text:after{-webkit-box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor8);bottom:0;box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor8);content:\"\";height:var(--fdCalendar_Special_Day_Marker_Height);left:0;position:absolute;right:0}.fd-calendar__special-day--8.is-active .fd-calendar__text:after,.fd-calendar__special-day--8:active .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor8),inset 0 -.33rem 0 var(--fdCalendar_Item_Current_Inner_Border_Color);height:calc(var(--fdCalendar_Special_Day_Marker_Height) + .0625rem)}.fd-calendar__special-day--8.fd-calendar__item--current.is-active .fd-calendar__text:after,.fd-calendar__special-day--8.fd-calendar__item--current:active .fd-calendar__text:after{bottom:var(--fdCalendar_Item_Current_Active_Special_Day_Bottom);height:var(--fdCalendar_Item_Current_Active_Special_Day_Height);left:var(--fdCalendar_Item_Current_Active_Special_Day_Left);right:var(--fdCalendar_Item_Current_Active_Special_Day_Right);width:var(--fdCalendar_Item_Current_Active_Special_Day_Width)}.fd-calendar__special-day--9 .fd-calendar__text:after{-webkit-box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor9);bottom:0;box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor9);content:\"\";height:var(--fdCalendar_Special_Day_Marker_Height);left:0;position:absolute;right:0}.fd-calendar__special-day--9.is-active .fd-calendar__text:after,.fd-calendar__special-day--9:active .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor9),inset 0 -.33rem 0 var(--fdCalendar_Item_Current_Inner_Border_Color);height:calc(var(--fdCalendar_Special_Day_Marker_Height) + .0625rem)}.fd-calendar__special-day--9.fd-calendar__item--current.is-active .fd-calendar__text:after,.fd-calendar__special-day--9.fd-calendar__item--current:active .fd-calendar__text:after{bottom:var(--fdCalendar_Item_Current_Active_Special_Day_Bottom);height:var(--fdCalendar_Item_Current_Active_Special_Day_Height);left:var(--fdCalendar_Item_Current_Active_Special_Day_Left);right:var(--fdCalendar_Item_Current_Active_Special_Day_Right);width:var(--fdCalendar_Item_Current_Active_Special_Day_Width)}.fd-calendar__special-day--10 .fd-calendar__text:after{-webkit-box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor10);bottom:0;box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor10);content:\"\";height:var(--fdCalendar_Special_Day_Marker_Height);left:0;position:absolute;right:0}.fd-calendar__special-day--10.is-active .fd-calendar__text:after,.fd-calendar__special-day--10:active .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor10),inset 0 -.33rem 0 var(--fdCalendar_Item_Current_Inner_Border_Color);height:calc(var(--fdCalendar_Special_Day_Marker_Height) + .0625rem)}.fd-calendar__special-day--10.fd-calendar__item--current.is-active .fd-calendar__text:after,.fd-calendar__special-day--10.fd-calendar__item--current:active .fd-calendar__text:after{bottom:var(--fdCalendar_Item_Current_Active_Special_Day_Bottom);height:var(--fdCalendar_Item_Current_Active_Special_Day_Height);left:var(--fdCalendar_Item_Current_Active_Special_Day_Left);right:var(--fdCalendar_Item_Current_Active_Special_Day_Right);width:var(--fdCalendar_Item_Current_Active_Special_Day_Width)}.fd-calendar__special-day--11 .fd-calendar__text:after{-webkit-box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor11);bottom:0;box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor11);content:\"\";height:var(--fdCalendar_Special_Day_Marker_Height);left:0;position:absolute;right:0}.fd-calendar__special-day--11.is-active .fd-calendar__text:after,.fd-calendar__special-day--11:active .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor11),inset 0 -.33rem 0 var(--fdCalendar_Item_Current_Inner_Border_Color);height:calc(var(--fdCalendar_Special_Day_Marker_Height) + .0625rem)}.fd-calendar__special-day--11.fd-calendar__item--current.is-active .fd-calendar__text:after,.fd-calendar__special-day--11.fd-calendar__item--current:active .fd-calendar__text:after{bottom:var(--fdCalendar_Item_Current_Active_Special_Day_Bottom);height:var(--fdCalendar_Item_Current_Active_Special_Day_Height);left:var(--fdCalendar_Item_Current_Active_Special_Day_Left);right:var(--fdCalendar_Item_Current_Active_Special_Day_Right);width:var(--fdCalendar_Item_Current_Active_Special_Day_Width)}.fd-calendar__special-day--12 .fd-calendar__text:after{-webkit-box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor12);bottom:0;box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor12);content:\"\";height:var(--fdCalendar_Special_Day_Marker_Height);left:0;position:absolute;right:0}.fd-calendar__special-day--12.is-active .fd-calendar__text:after,.fd-calendar__special-day--12:active .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor12),inset 0 -.33rem 0 var(--fdCalendar_Item_Current_Inner_Border_Color);height:calc(var(--fdCalendar_Special_Day_Marker_Height) + .0625rem)}.fd-calendar__special-day--12.fd-calendar__item--current.is-active .fd-calendar__text:after,.fd-calendar__special-day--12.fd-calendar__item--current:active .fd-calendar__text:after{bottom:var(--fdCalendar_Item_Current_Active_Special_Day_Bottom);height:var(--fdCalendar_Item_Current_Active_Special_Day_Height);left:var(--fdCalendar_Item_Current_Active_Special_Day_Left);right:var(--fdCalendar_Item_Current_Active_Special_Day_Right);width:var(--fdCalendar_Item_Current_Active_Special_Day_Width)}.fd-calendar__special-day--13 .fd-calendar__text:after{-webkit-box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor13);bottom:0;box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor13);content:\"\";height:var(--fdCalendar_Special_Day_Marker_Height);left:0;position:absolute;right:0}.fd-calendar__special-day--13.is-active .fd-calendar__text:after,.fd-calendar__special-day--13:active .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor13),inset 0 -.33rem 0 var(--fdCalendar_Item_Current_Inner_Border_Color);height:calc(var(--fdCalendar_Special_Day_Marker_Height) + .0625rem)}.fd-calendar__special-day--13.fd-calendar__item--current.is-active .fd-calendar__text:after,.fd-calendar__special-day--13.fd-calendar__item--current:active .fd-calendar__text:after{bottom:var(--fdCalendar_Item_Current_Active_Special_Day_Bottom);height:var(--fdCalendar_Item_Current_Active_Special_Day_Height);left:var(--fdCalendar_Item_Current_Active_Special_Day_Left);right:var(--fdCalendar_Item_Current_Active_Special_Day_Right);width:var(--fdCalendar_Item_Current_Active_Special_Day_Width)}.fd-calendar__special-day--14 .fd-calendar__text:after{-webkit-box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor14);bottom:0;box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor14);content:\"\";height:var(--fdCalendar_Special_Day_Marker_Height);left:0;position:absolute;right:0}.fd-calendar__special-day--14.is-active .fd-calendar__text:after,.fd-calendar__special-day--14:active .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor14),inset 0 -.33rem 0 var(--fdCalendar_Item_Current_Inner_Border_Color);height:calc(var(--fdCalendar_Special_Day_Marker_Height) + .0625rem)}.fd-calendar__special-day--14.fd-calendar__item--current.is-active .fd-calendar__text:after,.fd-calendar__special-day--14.fd-calendar__item--current:active .fd-calendar__text:after{bottom:var(--fdCalendar_Item_Current_Active_Special_Day_Bottom);height:var(--fdCalendar_Item_Current_Active_Special_Day_Height);left:var(--fdCalendar_Item_Current_Active_Special_Day_Left);right:var(--fdCalendar_Item_Current_Active_Special_Day_Right);width:var(--fdCalendar_Item_Current_Active_Special_Day_Width)}.fd-calendar__special-day--15 .fd-calendar__text:after{-webkit-box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor15);bottom:0;box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor15);content:\"\";height:var(--fdCalendar_Special_Day_Marker_Height);left:0;position:absolute;right:0}.fd-calendar__special-day--15.is-active .fd-calendar__text:after,.fd-calendar__special-day--15:active .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor15),inset 0 -.33rem 0 var(--fdCalendar_Item_Current_Inner_Border_Color);height:calc(var(--fdCalendar_Special_Day_Marker_Height) + .0625rem)}.fd-calendar__special-day--15.fd-calendar__item--current.is-active .fd-calendar__text:after,.fd-calendar__special-day--15.fd-calendar__item--current:active .fd-calendar__text:after{bottom:var(--fdCalendar_Item_Current_Active_Special_Day_Bottom);height:var(--fdCalendar_Item_Current_Active_Special_Day_Height);left:var(--fdCalendar_Item_Current_Active_Special_Day_Left);right:var(--fdCalendar_Item_Current_Active_Special_Day_Right);width:var(--fdCalendar_Item_Current_Active_Special_Day_Width)}.fd-calendar__special-day--16 .fd-calendar__text:after{-webkit-box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor16);bottom:0;box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor16);content:\"\";height:var(--fdCalendar_Special_Day_Marker_Height);left:0;position:absolute;right:0}.fd-calendar__special-day--16.is-active .fd-calendar__text:after,.fd-calendar__special-day--16:active .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor16),inset 0 -.33rem 0 var(--fdCalendar_Item_Current_Inner_Border_Color);height:calc(var(--fdCalendar_Special_Day_Marker_Height) + .0625rem)}.fd-calendar__special-day--16.fd-calendar__item--current.is-active .fd-calendar__text:after,.fd-calendar__special-day--16.fd-calendar__item--current:active .fd-calendar__text:after{bottom:var(--fdCalendar_Item_Current_Active_Special_Day_Bottom);height:var(--fdCalendar_Item_Current_Active_Special_Day_Height);left:var(--fdCalendar_Item_Current_Active_Special_Day_Left);right:var(--fdCalendar_Item_Current_Active_Special_Day_Right);width:var(--fdCalendar_Item_Current_Active_Special_Day_Width)}.fd-calendar__special-day--17 .fd-calendar__text:after{-webkit-box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor17);bottom:0;box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor17);content:\"\";height:var(--fdCalendar_Special_Day_Marker_Height);left:0;position:absolute;right:0}.fd-calendar__special-day--17.is-active .fd-calendar__text:after,.fd-calendar__special-day--17:active .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor17),inset 0 -.33rem 0 var(--fdCalendar_Item_Current_Inner_Border_Color);height:calc(var(--fdCalendar_Special_Day_Marker_Height) + .0625rem)}.fd-calendar__special-day--17.fd-calendar__item--current.is-active .fd-calendar__text:after,.fd-calendar__special-day--17.fd-calendar__item--current:active .fd-calendar__text:after{bottom:var(--fdCalendar_Item_Current_Active_Special_Day_Bottom);height:var(--fdCalendar_Item_Current_Active_Special_Day_Height);left:var(--fdCalendar_Item_Current_Active_Special_Day_Left);right:var(--fdCalendar_Item_Current_Active_Special_Day_Right);width:var(--fdCalendar_Item_Current_Active_Special_Day_Width)}.fd-calendar__special-day--18 .fd-calendar__text:after{-webkit-box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor18);bottom:0;box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor18);content:\"\";height:var(--fdCalendar_Special_Day_Marker_Height);left:0;position:absolute;right:0}.fd-calendar__special-day--18.is-active .fd-calendar__text:after,.fd-calendar__special-day--18:active .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor18),inset 0 -.33rem 0 var(--fdCalendar_Item_Current_Inner_Border_Color);height:calc(var(--fdCalendar_Special_Day_Marker_Height) + .0625rem)}.fd-calendar__special-day--18.fd-calendar__item--current.is-active .fd-calendar__text:after,.fd-calendar__special-day--18.fd-calendar__item--current:active .fd-calendar__text:after{bottom:var(--fdCalendar_Item_Current_Active_Special_Day_Bottom);height:var(--fdCalendar_Item_Current_Active_Special_Day_Height);left:var(--fdCalendar_Item_Current_Active_Special_Day_Left);right:var(--fdCalendar_Item_Current_Active_Special_Day_Right);width:var(--fdCalendar_Item_Current_Active_Special_Day_Width)}.fd-calendar__special-day--19 .fd-calendar__text:after{-webkit-box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor19);bottom:0;box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor19);content:\"\";height:var(--fdCalendar_Special_Day_Marker_Height);left:0;position:absolute;right:0}.fd-calendar__special-day--19.is-active .fd-calendar__text:after,.fd-calendar__special-day--19:active .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor19),inset 0 -.33rem 0 var(--fdCalendar_Item_Current_Inner_Border_Color);height:calc(var(--fdCalendar_Special_Day_Marker_Height) + .0625rem)}.fd-calendar__special-day--19.fd-calendar__item--current.is-active .fd-calendar__text:after,.fd-calendar__special-day--19.fd-calendar__item--current:active .fd-calendar__text:after{bottom:var(--fdCalendar_Item_Current_Active_Special_Day_Bottom);height:var(--fdCalendar_Item_Current_Active_Special_Day_Height);left:var(--fdCalendar_Item_Current_Active_Special_Day_Left);right:var(--fdCalendar_Item_Current_Active_Special_Day_Right);width:var(--fdCalendar_Item_Current_Active_Special_Day_Width)}.fd-calendar__special-day--20 .fd-calendar__text:after{-webkit-box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor20);bottom:0;box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor20);content:\"\";height:var(--fdCalendar_Special_Day_Marker_Height);left:0;position:absolute;right:0}.fd-calendar__special-day--20.is-active .fd-calendar__text:after,.fd-calendar__special-day--20:active .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor20),inset 0 -.33rem 0 var(--fdCalendar_Item_Current_Inner_Border_Color);height:calc(var(--fdCalendar_Special_Day_Marker_Height) + .0625rem)}.fd-calendar__special-day--20.fd-calendar__item--current.is-active .fd-calendar__text:after,.fd-calendar__special-day--20.fd-calendar__item--current:active .fd-calendar__text:after{bottom:var(--fdCalendar_Item_Current_Active_Special_Day_Bottom);height:var(--fdCalendar_Item_Current_Active_Special_Day_Height);left:var(--fdCalendar_Item_Current_Active_Special_Day_Left);right:var(--fdCalendar_Item_Current_Active_Special_Day_Right);width:var(--fdCalendar_Item_Current_Active_Special_Day_Width)}.fd-calendar .fd-calendar__close-button--navigation{-webkit-transform:translateY(-50%);position:absolute;right:0;top:50%;transform:translateY(-50%)}.fd-calendar .fd-calendar__close-button--navigation[dir=rtl],[dir=rtl] .fd-calendar .fd-calendar__close-button--navigation{left:0;right:auto}.fd-calendar[class*=-compact],.fd-calendar[class*=-condensed],[class*=-compact] .fd-calendar:not([class*=-cozy]),[class*=-condensed] .fd-calendar:not([class*=-cozy]){--fdCalendar_Width:17rem;--fdCalendar_Padding:.5rem;--fdCalendar_Item_Height:1.875rem;--fdCalendar_Button_Horizontal_Space:.1875rem;--fdCalendar_Action_Width:1.875rem;--fdCalendar_Item_Width:1.875rem;--fdCalendar_Item_Inner_Border_Size:calc(100% - .125rem)}.fd-calendar--mobile-landscape,.fd-calendar--mobile-portrait{height:100%;width:100%}.fd-calendar--mobile-landscape{--fdCalendar_Padding:0;--fdCalendar_Item_Side_Helper:1.625rem}.fd-calendar--mobile-landscape .fd-calendar__navigation--main{max-width:20rem}.fd-calendar--mobile-portrait{--fdCalendar_Padding:1rem 0 0 0}.fd-has-display-block{display:block}\n"] }]
522
+ }, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
523
+ ContentDensityModule,
524
+ CalendarHeaderComponent,
525
+ NgIf,
526
+ NgSwitch,
527
+ NgSwitchCase,
528
+ CalendarDayViewComponent,
529
+ CalendarMonthViewComponent,
530
+ CalendarYearViewComponent,
531
+ CalendarAggregatedYearViewComponent
532
+ ], template: "<fd-calendar-header\n [currentlyDisplayed]=\"_currentlyDisplayed\"\n [activeView]=\"activeView\"\n [id]=\"id\"\n [calendarYearGrid]=\"yearGrid\"\n (closeClicked)=\"closeClicked.emit()\"\n (nextClicked)=\"handleNextArrowClick()\"\n (previousClicked)=\"handlePreviousArrowClick()\"\n [previousButtonDisabled]=\"previousButtonDisabled\"\n [nextButtonDisabled]=\"nextButtonDisabled\"\n (activeViewChange)=\"handleActiveViewChange($event)\"\n></fd-calendar-header>\n<ng-container [ngSwitch]=\"activeView\" *ngIf=\"_currentlyDisplayed\">\n <fd-calendar-day-view\n *ngSwitchCase=\"'day'\"\n [selectedDate]=\"selectedDate\"\n [showWeekNumbers]=\"showWeekNumbers\"\n [markWeekends]=\"markWeekends\"\n (selectedDateChange)=\"selectedDateChanged($event)\"\n [selectedRangeDate]=\"selectedRangeDate\"\n (selectedRangeDateChange)=\"selectedRangeDateChanged($event)\"\n [currentlyDisplayed]=\"_currentlyDisplayed\"\n [startingDayOfWeek]=\"getWeekStartDay()\"\n [disableFunction]=\"disableFunction\"\n [disableRangeEndFunction]=\"disableRangeEndFunction\"\n [disableRangeStartFunction]=\"disableRangeStartFunction\"\n [calType]=\"calType\"\n [id]=\"id\"\n [rangeHoverEffect]=\"rangeHoverEffect\"\n [specialDaysRules]=\"specialDaysRules\"\n [focusEscapeFunction]=\"escapeFocusFunction\"\n (nextMonthSelect)=\"displayNextMonth()\"\n (previousMonthSelect)=\"displayPreviousMonth()\"\n ></fd-calendar-day-view>\n <fd-calendar-month-view\n *ngSwitchCase=\"'month'\"\n [monthSelected]=\"_currentlyDisplayed.month\"\n [year]=\"_currentlyDisplayed.year\"\n [id]=\"id\"\n [focusEscapeFunction]=\"escapeFocusFunction\"\n (monthClicked)=\"handleMonthViewChange($event)\"\n ></fd-calendar-month-view>\n <fd-calendar-year-view\n *ngSwitchCase=\"'year'\"\n [yearSelected]=\"_currentlyDisplayed.year\"\n [yearViewGrid]=\"yearGrid\"\n [id]=\"id\"\n [focusEscapeFunction]=\"escapeFocusFunction\"\n (yearClicked)=\"selectedYear($event)\"\n >\n </fd-calendar-year-view>\n <fd-calendar-aggregated-year-view\n *ngSwitchCase=\"'aggregatedYear'\"\n (yearsClicked)=\"selectedYears($event)\"\n [yearSelected]=\"_currentlyDisplayed.year\"\n [yearViewGrid]=\"yearGrid\"\n [aggregatedYearsViewGrid]=\"aggregatedYearGrid\"\n [id]=\"id\"\n [focusEscapeFunction]=\"escapeFocusFunction\"\n >\n </fd-calendar-aggregated-year-view>\n</ng-container>\n", styles: ["/*!\n * Fundamental Library Styles v0.30.2-rc.6\n * Copyright (c) 2023 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n */.fd-calendar .fd-calendar__my-item,.fd-calendar__item{-webkit-box-sizing:border-box;-webkit-box-flex:1;-ms-flex:1 1 calc(var(--fdCalendar_Item_Current_Border_Width) * 2 + var(--fdCalendar_Item_Spacing) * 2);background-color:var(--fdCalendar_Item_Background);border:0;border:var(--fdCalendar_Item_Border);border-radius:var(--fdCalendar_Border_Radius);box-sizing:border-box;color:var(--sapTextColor);cursor:pointer;display:inline-block;flex:1 1 calc(var(--fdCalendar_Item_Current_Border_Width) * 2 + var(--fdCalendar_Item_Spacing) * 2);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:var(--fdCalendar_Item_Height);line-height:var(--sapContent_LineHeight);margin:0;margin:var(--fdCalendar_Item_Spacing);min-width:var(--fdCalendar_Item_Width);overflow:hidden;padding:0;position:relative}.fd-calendar .fd-calendar__my-item:after,.fd-calendar .fd-calendar__my-item:before,.fd-calendar__item:after,.fd-calendar__item:before{box-sizing:inherit;font-size:inherit}[class*=fd-calendar__item--legend-]:not(.fd-calendar__item--today) .fd-calendar__text-wrapper:after{border-bottom:none;border-top:var(--fdCalendar_Item_Legend_Top_Border);bottom:0;content:\"\";height:.3125rem;left:0;position:absolute;right:0;width:100%}[class*=fd-calendar__item--legend-]:not(.fd-calendar__item--today).is-focus,[class*=fd-calendar__item--legend-]:not(.fd-calendar__item--today):focus{z-index:5}[class*=fd-calendar__item--legend-]:not(.fd-calendar__item--today).is-focus .fd-calendar__text-wrapper:after,[class*=fd-calendar__item--legend-]:not(.fd-calendar__item--today):focus .fd-calendar__text-wrapper:after{z-index:var(--fdCalendar_Text_Wrapper_After_Z)}.fd-calendar__item--today[class*=fd-calendar__item--legend-].is-focus,.fd-calendar__item--today[class*=fd-calendar__item--legend-]:focus{z-index:5}.fd-calendar__item--today[class*=fd-calendar__item--legend-].is-focus .fd-calendar__text-wrapper:after,.fd-calendar__item--today[class*=fd-calendar__item--legend-]:focus .fd-calendar__text-wrapper:after{border-bottom:none}.fd-calendar__item--today[class*=fd-calendar__item--legend-].is-focus .fd-calendar__text:after,.fd-calendar__item--today[class*=fd-calendar__item--legend-]:focus .fd-calendar__text:after{bottom:0;content:\"\";height:.1875rem;left:0;position:absolute;right:0;width:100%}.fd-calendar__item--today[class*=fd-calendar__item--legend-] .fd-calendar__text-wrapper:after{border-radius:.3125rem;bottom:.0625rem;content:\"\";height:.5rem;left:.0625rem;position:absolute;right:0;width:calc(100% - .125rem)}.fd-calendar__item--today[class*=fd-calendar__item--legend-][dir=rtl] .fd-calendar__text-wrapper:after,[dir=rtl] .fd-calendar__item--today[class*=fd-calendar__item--legend-] .fd-calendar__text-wrapper:after{left:0;right:.0625rem}.fd-calendar__item--legend-1:not(.fd-calendar__item--today) .fd-calendar__text-wrapper:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor1)}.fd-calendar__item--legend-1:not(.fd-calendar__item--today).fd-calendar__item--range .fd-calendar__text-wrapper:after,.fd-calendar__item--legend-1:not(.fd-calendar__item--today).fd-calendar__item--selected .fd-calendar__text-wrapper:after{height:var(--fdCalendar_Item_Selected_Legend_Height)}.fd-calendar__item--today.fd-calendar__item--legend-1.is-focus,.fd-calendar__item--today.fd-calendar__item--legend-1:focus{z-index:5}.fd-calendar__item--today.fd-calendar__item--legend-1.is-focus .fd-calendar__text:after,.fd-calendar__item--today.fd-calendar__item--legend-1:focus .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor1)}.fd-calendar__item--today.fd-calendar__item--legend-1 .fd-calendar__text-wrapper:after{border-bottom:.25rem solid var(--sapLegendColor1);border-bottom-left-radius:var(--fdCalendar_Item_Legend_Bottom_Border_Radius);border-bottom-right-radius:var(--fdCalendar_Item_Legend_Bottom_Border_Radius);border-top:var(--fdCalendar_Item_Legend_Top_Border);border-top-left-radius:0;border-top-right-radius:0;bottom:.0625rem;content:\"\";height:var(--fdCalendar_Item_Text_Wrapper_Height);left:.0625rem;position:absolute;right:0;width:calc(100% - .125rem)}.fd-calendar__item--today.fd-calendar__item--legend-1[dir=rtl] .fd-calendar__text-wrapper:after,[dir=rtl] .fd-calendar__item--today.fd-calendar__item--legend-1 .fd-calendar__text-wrapper:after{left:0;right:.0625rem}.fd-calendar__item--legend-2:not(.fd-calendar__item--today) .fd-calendar__text-wrapper:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor2)}.fd-calendar__item--legend-2:not(.fd-calendar__item--today).fd-calendar__item--range .fd-calendar__text-wrapper:after,.fd-calendar__item--legend-2:not(.fd-calendar__item--today).fd-calendar__item--selected .fd-calendar__text-wrapper:after{height:var(--fdCalendar_Item_Selected_Legend_Height)}.fd-calendar__item--today.fd-calendar__item--legend-2.is-focus,.fd-calendar__item--today.fd-calendar__item--legend-2:focus{z-index:5}.fd-calendar__item--today.fd-calendar__item--legend-2.is-focus .fd-calendar__text:after,.fd-calendar__item--today.fd-calendar__item--legend-2:focus .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor2)}.fd-calendar__item--today.fd-calendar__item--legend-2 .fd-calendar__text-wrapper:after{border-bottom:.25rem solid var(--sapLegendColor2);border-bottom-left-radius:var(--fdCalendar_Item_Legend_Bottom_Border_Radius);border-bottom-right-radius:var(--fdCalendar_Item_Legend_Bottom_Border_Radius);border-top:var(--fdCalendar_Item_Legend_Top_Border);border-top-left-radius:0;border-top-right-radius:0;bottom:.0625rem;content:\"\";height:var(--fdCalendar_Item_Text_Wrapper_Height);left:.0625rem;position:absolute;right:0;width:calc(100% - .125rem)}.fd-calendar__item--today.fd-calendar__item--legend-2[dir=rtl] .fd-calendar__text-wrapper:after,[dir=rtl] .fd-calendar__item--today.fd-calendar__item--legend-2 .fd-calendar__text-wrapper:after{left:0;right:.0625rem}.fd-calendar__item--legend-3:not(.fd-calendar__item--today) .fd-calendar__text-wrapper:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor3)}.fd-calendar__item--legend-3:not(.fd-calendar__item--today).fd-calendar__item--range .fd-calendar__text-wrapper:after,.fd-calendar__item--legend-3:not(.fd-calendar__item--today).fd-calendar__item--selected .fd-calendar__text-wrapper:after{height:var(--fdCalendar_Item_Selected_Legend_Height)}.fd-calendar__item--today.fd-calendar__item--legend-3.is-focus,.fd-calendar__item--today.fd-calendar__item--legend-3:focus{z-index:5}.fd-calendar__item--today.fd-calendar__item--legend-3.is-focus .fd-calendar__text:after,.fd-calendar__item--today.fd-calendar__item--legend-3:focus .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor3)}.fd-calendar__item--today.fd-calendar__item--legend-3 .fd-calendar__text-wrapper:after{border-bottom:.25rem solid var(--sapLegendColor3);border-bottom-left-radius:var(--fdCalendar_Item_Legend_Bottom_Border_Radius);border-bottom-right-radius:var(--fdCalendar_Item_Legend_Bottom_Border_Radius);border-top:var(--fdCalendar_Item_Legend_Top_Border);border-top-left-radius:0;border-top-right-radius:0;bottom:.0625rem;content:\"\";height:var(--fdCalendar_Item_Text_Wrapper_Height);left:.0625rem;position:absolute;right:0;width:calc(100% - .125rem)}.fd-calendar__item--today.fd-calendar__item--legend-3[dir=rtl] .fd-calendar__text-wrapper:after,[dir=rtl] .fd-calendar__item--today.fd-calendar__item--legend-3 .fd-calendar__text-wrapper:after{left:0;right:.0625rem}.fd-calendar__item--legend-4:not(.fd-calendar__item--today) .fd-calendar__text-wrapper:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor4)}.fd-calendar__item--legend-4:not(.fd-calendar__item--today).fd-calendar__item--range .fd-calendar__text-wrapper:after,.fd-calendar__item--legend-4:not(.fd-calendar__item--today).fd-calendar__item--selected .fd-calendar__text-wrapper:after{height:var(--fdCalendar_Item_Selected_Legend_Height)}.fd-calendar__item--today.fd-calendar__item--legend-4.is-focus,.fd-calendar__item--today.fd-calendar__item--legend-4:focus{z-index:5}.fd-calendar__item--today.fd-calendar__item--legend-4.is-focus .fd-calendar__text:after,.fd-calendar__item--today.fd-calendar__item--legend-4:focus .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor4)}.fd-calendar__item--today.fd-calendar__item--legend-4 .fd-calendar__text-wrapper:after{border-bottom:.25rem solid var(--sapLegendColor4);border-bottom-left-radius:var(--fdCalendar_Item_Legend_Bottom_Border_Radius);border-bottom-right-radius:var(--fdCalendar_Item_Legend_Bottom_Border_Radius);border-top:var(--fdCalendar_Item_Legend_Top_Border);border-top-left-radius:0;border-top-right-radius:0;bottom:.0625rem;content:\"\";height:var(--fdCalendar_Item_Text_Wrapper_Height);left:.0625rem;position:absolute;right:0;width:calc(100% - .125rem)}.fd-calendar__item--today.fd-calendar__item--legend-4[dir=rtl] .fd-calendar__text-wrapper:after,[dir=rtl] .fd-calendar__item--today.fd-calendar__item--legend-4 .fd-calendar__text-wrapper:after{left:0;right:.0625rem}.fd-calendar__item--legend-5:not(.fd-calendar__item--today) .fd-calendar__text-wrapper:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor5)}.fd-calendar__item--legend-5:not(.fd-calendar__item--today).fd-calendar__item--range .fd-calendar__text-wrapper:after,.fd-calendar__item--legend-5:not(.fd-calendar__item--today).fd-calendar__item--selected .fd-calendar__text-wrapper:after{height:var(--fdCalendar_Item_Selected_Legend_Height)}.fd-calendar__item--today.fd-calendar__item--legend-5.is-focus,.fd-calendar__item--today.fd-calendar__item--legend-5:focus{z-index:5}.fd-calendar__item--today.fd-calendar__item--legend-5.is-focus .fd-calendar__text:after,.fd-calendar__item--today.fd-calendar__item--legend-5:focus .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor5)}.fd-calendar__item--today.fd-calendar__item--legend-5 .fd-calendar__text-wrapper:after{border-bottom:.25rem solid var(--sapLegendColor5);border-bottom-left-radius:var(--fdCalendar_Item_Legend_Bottom_Border_Radius);border-bottom-right-radius:var(--fdCalendar_Item_Legend_Bottom_Border_Radius);border-top:var(--fdCalendar_Item_Legend_Top_Border);border-top-left-radius:0;border-top-right-radius:0;bottom:.0625rem;content:\"\";height:var(--fdCalendar_Item_Text_Wrapper_Height);left:.0625rem;position:absolute;right:0;width:calc(100% - .125rem)}.fd-calendar__item--today.fd-calendar__item--legend-5[dir=rtl] .fd-calendar__text-wrapper:after,[dir=rtl] .fd-calendar__item--today.fd-calendar__item--legend-5 .fd-calendar__text-wrapper:after{left:0;right:.0625rem}.fd-calendar__item--legend-6:not(.fd-calendar__item--today) .fd-calendar__text-wrapper:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor6)}.fd-calendar__item--legend-6:not(.fd-calendar__item--today).fd-calendar__item--range .fd-calendar__text-wrapper:after,.fd-calendar__item--legend-6:not(.fd-calendar__item--today).fd-calendar__item--selected .fd-calendar__text-wrapper:after{height:var(--fdCalendar_Item_Selected_Legend_Height)}.fd-calendar__item--today.fd-calendar__item--legend-6.is-focus,.fd-calendar__item--today.fd-calendar__item--legend-6:focus{z-index:5}.fd-calendar__item--today.fd-calendar__item--legend-6.is-focus .fd-calendar__text:after,.fd-calendar__item--today.fd-calendar__item--legend-6:focus .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor6)}.fd-calendar__item--today.fd-calendar__item--legend-6 .fd-calendar__text-wrapper:after{border-bottom:.25rem solid var(--sapLegendColor6);border-bottom-left-radius:var(--fdCalendar_Item_Legend_Bottom_Border_Radius);border-bottom-right-radius:var(--fdCalendar_Item_Legend_Bottom_Border_Radius);border-top:var(--fdCalendar_Item_Legend_Top_Border);border-top-left-radius:0;border-top-right-radius:0;bottom:.0625rem;content:\"\";height:var(--fdCalendar_Item_Text_Wrapper_Height);left:.0625rem;position:absolute;right:0;width:calc(100% - .125rem)}.fd-calendar__item--today.fd-calendar__item--legend-6[dir=rtl] .fd-calendar__text-wrapper:after,[dir=rtl] .fd-calendar__item--today.fd-calendar__item--legend-6 .fd-calendar__text-wrapper:after{left:0;right:.0625rem}.fd-calendar__item--legend-7:not(.fd-calendar__item--today) .fd-calendar__text-wrapper:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor7)}.fd-calendar__item--legend-7:not(.fd-calendar__item--today).fd-calendar__item--range .fd-calendar__text-wrapper:after,.fd-calendar__item--legend-7:not(.fd-calendar__item--today).fd-calendar__item--selected .fd-calendar__text-wrapper:after{height:var(--fdCalendar_Item_Selected_Legend_Height)}.fd-calendar__item--today.fd-calendar__item--legend-7.is-focus,.fd-calendar__item--today.fd-calendar__item--legend-7:focus{z-index:5}.fd-calendar__item--today.fd-calendar__item--legend-7.is-focus .fd-calendar__text:after,.fd-calendar__item--today.fd-calendar__item--legend-7:focus .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor7)}.fd-calendar__item--today.fd-calendar__item--legend-7 .fd-calendar__text-wrapper:after{border-bottom:.25rem solid var(--sapLegendColor7);border-bottom-left-radius:var(--fdCalendar_Item_Legend_Bottom_Border_Radius);border-bottom-right-radius:var(--fdCalendar_Item_Legend_Bottom_Border_Radius);border-top:var(--fdCalendar_Item_Legend_Top_Border);border-top-left-radius:0;border-top-right-radius:0;bottom:.0625rem;content:\"\";height:var(--fdCalendar_Item_Text_Wrapper_Height);left:.0625rem;position:absolute;right:0;width:calc(100% - .125rem)}.fd-calendar__item--today.fd-calendar__item--legend-7[dir=rtl] .fd-calendar__text-wrapper:after,[dir=rtl] .fd-calendar__item--today.fd-calendar__item--legend-7 .fd-calendar__text-wrapper:after{left:0;right:.0625rem}.fd-calendar__item--legend-8:not(.fd-calendar__item--today) .fd-calendar__text-wrapper:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor8)}.fd-calendar__item--legend-8:not(.fd-calendar__item--today).fd-calendar__item--range .fd-calendar__text-wrapper:after,.fd-calendar__item--legend-8:not(.fd-calendar__item--today).fd-calendar__item--selected .fd-calendar__text-wrapper:after{height:var(--fdCalendar_Item_Selected_Legend_Height)}.fd-calendar__item--today.fd-calendar__item--legend-8.is-focus,.fd-calendar__item--today.fd-calendar__item--legend-8:focus{z-index:5}.fd-calendar__item--today.fd-calendar__item--legend-8.is-focus .fd-calendar__text:after,.fd-calendar__item--today.fd-calendar__item--legend-8:focus .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor8)}.fd-calendar__item--today.fd-calendar__item--legend-8 .fd-calendar__text-wrapper:after{border-bottom:.25rem solid var(--sapLegendColor8);border-bottom-left-radius:var(--fdCalendar_Item_Legend_Bottom_Border_Radius);border-bottom-right-radius:var(--fdCalendar_Item_Legend_Bottom_Border_Radius);border-top:var(--fdCalendar_Item_Legend_Top_Border);border-top-left-radius:0;border-top-right-radius:0;bottom:.0625rem;content:\"\";height:var(--fdCalendar_Item_Text_Wrapper_Height);left:.0625rem;position:absolute;right:0;width:calc(100% - .125rem)}.fd-calendar__item--today.fd-calendar__item--legend-8[dir=rtl] .fd-calendar__text-wrapper:after,[dir=rtl] .fd-calendar__item--today.fd-calendar__item--legend-8 .fd-calendar__text-wrapper:after{left:0;right:.0625rem}.fd-calendar__item--legend-9:not(.fd-calendar__item--today) .fd-calendar__text-wrapper:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor9)}.fd-calendar__item--legend-9:not(.fd-calendar__item--today).fd-calendar__item--range .fd-calendar__text-wrapper:after,.fd-calendar__item--legend-9:not(.fd-calendar__item--today).fd-calendar__item--selected .fd-calendar__text-wrapper:after{height:var(--fdCalendar_Item_Selected_Legend_Height)}.fd-calendar__item--today.fd-calendar__item--legend-9.is-focus,.fd-calendar__item--today.fd-calendar__item--legend-9:focus{z-index:5}.fd-calendar__item--today.fd-calendar__item--legend-9.is-focus .fd-calendar__text:after,.fd-calendar__item--today.fd-calendar__item--legend-9:focus .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor9)}.fd-calendar__item--today.fd-calendar__item--legend-9 .fd-calendar__text-wrapper:after{border-bottom:.25rem solid var(--sapLegendColor9);border-bottom-left-radius:var(--fdCalendar_Item_Legend_Bottom_Border_Radius);border-bottom-right-radius:var(--fdCalendar_Item_Legend_Bottom_Border_Radius);border-top:var(--fdCalendar_Item_Legend_Top_Border);border-top-left-radius:0;border-top-right-radius:0;bottom:.0625rem;content:\"\";height:var(--fdCalendar_Item_Text_Wrapper_Height);left:.0625rem;position:absolute;right:0;width:calc(100% - .125rem)}.fd-calendar__item--today.fd-calendar__item--legend-9[dir=rtl] .fd-calendar__text-wrapper:after,[dir=rtl] .fd-calendar__item--today.fd-calendar__item--legend-9 .fd-calendar__text-wrapper:after{left:0;right:.0625rem}.fd-calendar__item--legend-10:not(.fd-calendar__item--today) .fd-calendar__text-wrapper:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor10)}.fd-calendar__item--legend-10:not(.fd-calendar__item--today).fd-calendar__item--range .fd-calendar__text-wrapper:after,.fd-calendar__item--legend-10:not(.fd-calendar__item--today).fd-calendar__item--selected .fd-calendar__text-wrapper:after{height:var(--fdCalendar_Item_Selected_Legend_Height)}.fd-calendar__item--today.fd-calendar__item--legend-10.is-focus,.fd-calendar__item--today.fd-calendar__item--legend-10:focus{z-index:5}.fd-calendar__item--today.fd-calendar__item--legend-10.is-focus .fd-calendar__text:after,.fd-calendar__item--today.fd-calendar__item--legend-10:focus .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor10)}.fd-calendar__item--today.fd-calendar__item--legend-10 .fd-calendar__text-wrapper:after{border-bottom:.25rem solid var(--sapLegendColor10);border-bottom-left-radius:var(--fdCalendar_Item_Legend_Bottom_Border_Radius);border-bottom-right-radius:var(--fdCalendar_Item_Legend_Bottom_Border_Radius);border-top:var(--fdCalendar_Item_Legend_Top_Border);border-top-left-radius:0;border-top-right-radius:0;bottom:.0625rem;content:\"\";height:var(--fdCalendar_Item_Text_Wrapper_Height);left:.0625rem;position:absolute;right:0;width:calc(100% - .125rem)}.fd-calendar__item--today.fd-calendar__item--legend-10[dir=rtl] .fd-calendar__text-wrapper:after,[dir=rtl] .fd-calendar__item--today.fd-calendar__item--legend-10 .fd-calendar__text-wrapper:after{left:0;right:.0625rem}.fd-calendar__item--legend-11:not(.fd-calendar__item--today) .fd-calendar__text-wrapper:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor11)}.fd-calendar__item--legend-11:not(.fd-calendar__item--today).fd-calendar__item--range .fd-calendar__text-wrapper:after,.fd-calendar__item--legend-11:not(.fd-calendar__item--today).fd-calendar__item--selected .fd-calendar__text-wrapper:after{height:var(--fdCalendar_Item_Selected_Legend_Height)}.fd-calendar__item--today.fd-calendar__item--legend-11.is-focus,.fd-calendar__item--today.fd-calendar__item--legend-11:focus{z-index:5}.fd-calendar__item--today.fd-calendar__item--legend-11.is-focus .fd-calendar__text:after,.fd-calendar__item--today.fd-calendar__item--legend-11:focus .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor11)}.fd-calendar__item--today.fd-calendar__item--legend-11 .fd-calendar__text-wrapper:after{border-bottom:.25rem solid var(--sapLegendColor11);border-bottom-left-radius:var(--fdCalendar_Item_Legend_Bottom_Border_Radius);border-bottom-right-radius:var(--fdCalendar_Item_Legend_Bottom_Border_Radius);border-top:var(--fdCalendar_Item_Legend_Top_Border);border-top-left-radius:0;border-top-right-radius:0;bottom:.0625rem;content:\"\";height:var(--fdCalendar_Item_Text_Wrapper_Height);left:.0625rem;position:absolute;right:0;width:calc(100% - .125rem)}.fd-calendar__item--today.fd-calendar__item--legend-11[dir=rtl] .fd-calendar__text-wrapper:after,[dir=rtl] .fd-calendar__item--today.fd-calendar__item--legend-11 .fd-calendar__text-wrapper:after{left:0;right:.0625rem}.fd-calendar__item--legend-12:not(.fd-calendar__item--today) .fd-calendar__text-wrapper:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor12)}.fd-calendar__item--legend-12:not(.fd-calendar__item--today).fd-calendar__item--range .fd-calendar__text-wrapper:after,.fd-calendar__item--legend-12:not(.fd-calendar__item--today).fd-calendar__item--selected .fd-calendar__text-wrapper:after{height:var(--fdCalendar_Item_Selected_Legend_Height)}.fd-calendar__item--today.fd-calendar__item--legend-12.is-focus,.fd-calendar__item--today.fd-calendar__item--legend-12:focus{z-index:5}.fd-calendar__item--today.fd-calendar__item--legend-12.is-focus .fd-calendar__text:after,.fd-calendar__item--today.fd-calendar__item--legend-12:focus .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor12)}.fd-calendar__item--today.fd-calendar__item--legend-12 .fd-calendar__text-wrapper:after{border-bottom:.25rem solid var(--sapLegendColor12);border-bottom-left-radius:var(--fdCalendar_Item_Legend_Bottom_Border_Radius);border-bottom-right-radius:var(--fdCalendar_Item_Legend_Bottom_Border_Radius);border-top:var(--fdCalendar_Item_Legend_Top_Border);border-top-left-radius:0;border-top-right-radius:0;bottom:.0625rem;content:\"\";height:var(--fdCalendar_Item_Text_Wrapper_Height);left:.0625rem;position:absolute;right:0;width:calc(100% - .125rem)}.fd-calendar__item--today.fd-calendar__item--legend-12[dir=rtl] .fd-calendar__text-wrapper:after,[dir=rtl] .fd-calendar__item--today.fd-calendar__item--legend-12 .fd-calendar__text-wrapper:after{left:0;right:.0625rem}.fd-calendar__item--legend-13:not(.fd-calendar__item--today) .fd-calendar__text-wrapper:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor13)}.fd-calendar__item--legend-13:not(.fd-calendar__item--today).fd-calendar__item--range .fd-calendar__text-wrapper:after,.fd-calendar__item--legend-13:not(.fd-calendar__item--today).fd-calendar__item--selected .fd-calendar__text-wrapper:after{height:var(--fdCalendar_Item_Selected_Legend_Height)}.fd-calendar__item--today.fd-calendar__item--legend-13.is-focus,.fd-calendar__item--today.fd-calendar__item--legend-13:focus{z-index:5}.fd-calendar__item--today.fd-calendar__item--legend-13.is-focus .fd-calendar__text:after,.fd-calendar__item--today.fd-calendar__item--legend-13:focus .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor13)}.fd-calendar__item--today.fd-calendar__item--legend-13 .fd-calendar__text-wrapper:after{border-bottom:.25rem solid var(--sapLegendColor13);border-bottom-left-radius:var(--fdCalendar_Item_Legend_Bottom_Border_Radius);border-bottom-right-radius:var(--fdCalendar_Item_Legend_Bottom_Border_Radius);border-top:var(--fdCalendar_Item_Legend_Top_Border);border-top-left-radius:0;border-top-right-radius:0;bottom:.0625rem;content:\"\";height:var(--fdCalendar_Item_Text_Wrapper_Height);left:.0625rem;position:absolute;right:0;width:calc(100% - .125rem)}.fd-calendar__item--today.fd-calendar__item--legend-13[dir=rtl] .fd-calendar__text-wrapper:after,[dir=rtl] .fd-calendar__item--today.fd-calendar__item--legend-13 .fd-calendar__text-wrapper:after{left:0;right:.0625rem}.fd-calendar__item--legend-14:not(.fd-calendar__item--today) .fd-calendar__text-wrapper:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor14)}.fd-calendar__item--legend-14:not(.fd-calendar__item--today).fd-calendar__item--range .fd-calendar__text-wrapper:after,.fd-calendar__item--legend-14:not(.fd-calendar__item--today).fd-calendar__item--selected .fd-calendar__text-wrapper:after{height:var(--fdCalendar_Item_Selected_Legend_Height)}.fd-calendar__item--today.fd-calendar__item--legend-14.is-focus,.fd-calendar__item--today.fd-calendar__item--legend-14:focus{z-index:5}.fd-calendar__item--today.fd-calendar__item--legend-14.is-focus .fd-calendar__text:after,.fd-calendar__item--today.fd-calendar__item--legend-14:focus .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor14)}.fd-calendar__item--today.fd-calendar__item--legend-14 .fd-calendar__text-wrapper:after{border-bottom:.25rem solid var(--sapLegendColor14);border-bottom-left-radius:var(--fdCalendar_Item_Legend_Bottom_Border_Radius);border-bottom-right-radius:var(--fdCalendar_Item_Legend_Bottom_Border_Radius);border-top:var(--fdCalendar_Item_Legend_Top_Border);border-top-left-radius:0;border-top-right-radius:0;bottom:.0625rem;content:\"\";height:var(--fdCalendar_Item_Text_Wrapper_Height);left:.0625rem;position:absolute;right:0;width:calc(100% - .125rem)}.fd-calendar__item--today.fd-calendar__item--legend-14[dir=rtl] .fd-calendar__text-wrapper:after,[dir=rtl] .fd-calendar__item--today.fd-calendar__item--legend-14 .fd-calendar__text-wrapper:after{left:0;right:.0625rem}.fd-calendar__item--legend-15:not(.fd-calendar__item--today) .fd-calendar__text-wrapper:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor15)}.fd-calendar__item--legend-15:not(.fd-calendar__item--today).fd-calendar__item--range .fd-calendar__text-wrapper:after,.fd-calendar__item--legend-15:not(.fd-calendar__item--today).fd-calendar__item--selected .fd-calendar__text-wrapper:after{height:var(--fdCalendar_Item_Selected_Legend_Height)}.fd-calendar__item--today.fd-calendar__item--legend-15.is-focus,.fd-calendar__item--today.fd-calendar__item--legend-15:focus{z-index:5}.fd-calendar__item--today.fd-calendar__item--legend-15.is-focus .fd-calendar__text:after,.fd-calendar__item--today.fd-calendar__item--legend-15:focus .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor15)}.fd-calendar__item--today.fd-calendar__item--legend-15 .fd-calendar__text-wrapper:after{border-bottom:.25rem solid var(--sapLegendColor15);border-bottom-left-radius:var(--fdCalendar_Item_Legend_Bottom_Border_Radius);border-bottom-right-radius:var(--fdCalendar_Item_Legend_Bottom_Border_Radius);border-top:var(--fdCalendar_Item_Legend_Top_Border);border-top-left-radius:0;border-top-right-radius:0;bottom:.0625rem;content:\"\";height:var(--fdCalendar_Item_Text_Wrapper_Height);left:.0625rem;position:absolute;right:0;width:calc(100% - .125rem)}.fd-calendar__item--today.fd-calendar__item--legend-15[dir=rtl] .fd-calendar__text-wrapper:after,[dir=rtl] .fd-calendar__item--today.fd-calendar__item--legend-15 .fd-calendar__text-wrapper:after{left:0;right:.0625rem}.fd-calendar__item--legend-16:not(.fd-calendar__item--today) .fd-calendar__text-wrapper:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor16)}.fd-calendar__item--legend-16:not(.fd-calendar__item--today).fd-calendar__item--range .fd-calendar__text-wrapper:after,.fd-calendar__item--legend-16:not(.fd-calendar__item--today).fd-calendar__item--selected .fd-calendar__text-wrapper:after{height:var(--fdCalendar_Item_Selected_Legend_Height)}.fd-calendar__item--today.fd-calendar__item--legend-16.is-focus,.fd-calendar__item--today.fd-calendar__item--legend-16:focus{z-index:5}.fd-calendar__item--today.fd-calendar__item--legend-16.is-focus .fd-calendar__text:after,.fd-calendar__item--today.fd-calendar__item--legend-16:focus .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor16)}.fd-calendar__item--today.fd-calendar__item--legend-16 .fd-calendar__text-wrapper:after{border-bottom:.25rem solid var(--sapLegendColor16);border-bottom-left-radius:var(--fdCalendar_Item_Legend_Bottom_Border_Radius);border-bottom-right-radius:var(--fdCalendar_Item_Legend_Bottom_Border_Radius);border-top:var(--fdCalendar_Item_Legend_Top_Border);border-top-left-radius:0;border-top-right-radius:0;bottom:.0625rem;content:\"\";height:var(--fdCalendar_Item_Text_Wrapper_Height);left:.0625rem;position:absolute;right:0;width:calc(100% - .125rem)}.fd-calendar__item--today.fd-calendar__item--legend-16[dir=rtl] .fd-calendar__text-wrapper:after,[dir=rtl] .fd-calendar__item--today.fd-calendar__item--legend-16 .fd-calendar__text-wrapper:after{left:0;right:.0625rem}.fd-calendar__item--legend-17:not(.fd-calendar__item--today) .fd-calendar__text-wrapper:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor17)}.fd-calendar__item--legend-17:not(.fd-calendar__item--today).fd-calendar__item--range .fd-calendar__text-wrapper:after,.fd-calendar__item--legend-17:not(.fd-calendar__item--today).fd-calendar__item--selected .fd-calendar__text-wrapper:after{height:var(--fdCalendar_Item_Selected_Legend_Height)}.fd-calendar__item--today.fd-calendar__item--legend-17.is-focus,.fd-calendar__item--today.fd-calendar__item--legend-17:focus{z-index:5}.fd-calendar__item--today.fd-calendar__item--legend-17.is-focus .fd-calendar__text:after,.fd-calendar__item--today.fd-calendar__item--legend-17:focus .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor17)}.fd-calendar__item--today.fd-calendar__item--legend-17 .fd-calendar__text-wrapper:after{border-bottom:.25rem solid var(--sapLegendColor17);border-bottom-left-radius:var(--fdCalendar_Item_Legend_Bottom_Border_Radius);border-bottom-right-radius:var(--fdCalendar_Item_Legend_Bottom_Border_Radius);border-top:var(--fdCalendar_Item_Legend_Top_Border);border-top-left-radius:0;border-top-right-radius:0;bottom:.0625rem;content:\"\";height:var(--fdCalendar_Item_Text_Wrapper_Height);left:.0625rem;position:absolute;right:0;width:calc(100% - .125rem)}.fd-calendar__item--today.fd-calendar__item--legend-17[dir=rtl] .fd-calendar__text-wrapper:after,[dir=rtl] .fd-calendar__item--today.fd-calendar__item--legend-17 .fd-calendar__text-wrapper:after{left:0;right:.0625rem}.fd-calendar__item--legend-18:not(.fd-calendar__item--today) .fd-calendar__text-wrapper:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor18)}.fd-calendar__item--legend-18:not(.fd-calendar__item--today).fd-calendar__item--range .fd-calendar__text-wrapper:after,.fd-calendar__item--legend-18:not(.fd-calendar__item--today).fd-calendar__item--selected .fd-calendar__text-wrapper:after{height:var(--fdCalendar_Item_Selected_Legend_Height)}.fd-calendar__item--today.fd-calendar__item--legend-18.is-focus,.fd-calendar__item--today.fd-calendar__item--legend-18:focus{z-index:5}.fd-calendar__item--today.fd-calendar__item--legend-18.is-focus .fd-calendar__text:after,.fd-calendar__item--today.fd-calendar__item--legend-18:focus .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor18)}.fd-calendar__item--today.fd-calendar__item--legend-18 .fd-calendar__text-wrapper:after{border-bottom:.25rem solid var(--sapLegendColor18);border-bottom-left-radius:var(--fdCalendar_Item_Legend_Bottom_Border_Radius);border-bottom-right-radius:var(--fdCalendar_Item_Legend_Bottom_Border_Radius);border-top:var(--fdCalendar_Item_Legend_Top_Border);border-top-left-radius:0;border-top-right-radius:0;bottom:.0625rem;content:\"\";height:var(--fdCalendar_Item_Text_Wrapper_Height);left:.0625rem;position:absolute;right:0;width:calc(100% - .125rem)}.fd-calendar__item--today.fd-calendar__item--legend-18[dir=rtl] .fd-calendar__text-wrapper:after,[dir=rtl] .fd-calendar__item--today.fd-calendar__item--legend-18 .fd-calendar__text-wrapper:after{left:0;right:.0625rem}.fd-calendar__item--legend-19:not(.fd-calendar__item--today) .fd-calendar__text-wrapper:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor19)}.fd-calendar__item--legend-19:not(.fd-calendar__item--today).fd-calendar__item--range .fd-calendar__text-wrapper:after,.fd-calendar__item--legend-19:not(.fd-calendar__item--today).fd-calendar__item--selected .fd-calendar__text-wrapper:after{height:var(--fdCalendar_Item_Selected_Legend_Height)}.fd-calendar__item--today.fd-calendar__item--legend-19.is-focus,.fd-calendar__item--today.fd-calendar__item--legend-19:focus{z-index:5}.fd-calendar__item--today.fd-calendar__item--legend-19.is-focus .fd-calendar__text:after,.fd-calendar__item--today.fd-calendar__item--legend-19:focus .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor19)}.fd-calendar__item--today.fd-calendar__item--legend-19 .fd-calendar__text-wrapper:after{border-bottom:.25rem solid var(--sapLegendColor19);border-bottom-left-radius:var(--fdCalendar_Item_Legend_Bottom_Border_Radius);border-bottom-right-radius:var(--fdCalendar_Item_Legend_Bottom_Border_Radius);border-top:var(--fdCalendar_Item_Legend_Top_Border);border-top-left-radius:0;border-top-right-radius:0;bottom:.0625rem;content:\"\";height:var(--fdCalendar_Item_Text_Wrapper_Height);left:.0625rem;position:absolute;right:0;width:calc(100% - .125rem)}.fd-calendar__item--today.fd-calendar__item--legend-19[dir=rtl] .fd-calendar__text-wrapper:after,[dir=rtl] .fd-calendar__item--today.fd-calendar__item--legend-19 .fd-calendar__text-wrapper:after{left:0;right:.0625rem}.fd-calendar__item--legend-20:not(.fd-calendar__item--today) .fd-calendar__text-wrapper:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor20)}.fd-calendar__item--legend-20:not(.fd-calendar__item--today).fd-calendar__item--range .fd-calendar__text-wrapper:after,.fd-calendar__item--legend-20:not(.fd-calendar__item--today).fd-calendar__item--selected .fd-calendar__text-wrapper:after{height:var(--fdCalendar_Item_Selected_Legend_Height)}.fd-calendar__item--today.fd-calendar__item--legend-20.is-focus,.fd-calendar__item--today.fd-calendar__item--legend-20:focus{z-index:5}.fd-calendar__item--today.fd-calendar__item--legend-20.is-focus .fd-calendar__text:after,.fd-calendar__item--today.fd-calendar__item--legend-20:focus .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor20)}.fd-calendar__item--today.fd-calendar__item--legend-20 .fd-calendar__text-wrapper:after{border-bottom:.25rem solid var(--sapLegendColor20);border-bottom-left-radius:var(--fdCalendar_Item_Legend_Bottom_Border_Radius);border-bottom-right-radius:var(--fdCalendar_Item_Legend_Bottom_Border_Radius);border-top:var(--fdCalendar_Item_Legend_Top_Border);border-top-left-radius:0;border-top-right-radius:0;bottom:.0625rem;content:\"\";height:var(--fdCalendar_Item_Text_Wrapper_Height);left:.0625rem;position:absolute;right:0;width:calc(100% - .125rem)}.fd-calendar__item--today.fd-calendar__item--legend-20[dir=rtl] .fd-calendar__text-wrapper:after,[dir=rtl] .fd-calendar__item--today.fd-calendar__item--legend-20 .fd-calendar__text-wrapper:after{left:0;right:.0625rem}.fd-calendar{--fdCalendar_Item_Width:2rem;--fdCalendar_Item_Height:2.75rem;--fdCalendar_Padding:.5rem;--fdCalendar_Background:var(--sapList_Background);--fdCalendar_Width:calc(var(--fdCalendar_Item_Width)*8 + var(--fdCalendar_Padding)*2 + var(--fdCalendar_Item_Spacing)*16);--fdCalendar_Action_Padding:.25rem;--fdCalendar_Action_Width:auto;--fdCalendar_Button_Horizontal_Space:.25rem;--fdCalendar_Item_Spacing:.0625rem;--fdCalendar_Item_Background:var(--sapLegend_WorkingBackground);--fdCalendar_Item_Helper_Height:1.875rem;--fdCalendar_Item_Font_Size:var(--sapFontSize);--fdCalendar_Item_Border:0;--fdCalendar_Item_Current_Border_Width:.125rem;--fdCalendar_Item_Text_Color:var(--sapTextColor);--fdCalendar_Item_Text_Height:2.125rem;-webkit-box-sizing:border-box;background-color:var(--fdCalendar_Background);border:0;border-radius:var(--fdCalendar_Border_Radius);box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0;padding:var(--fdCalendar_Padding);width:var(--fdCalendar_Width)}.fd-calendar:after,.fd-calendar:before{box-sizing:inherit;font-size:inherit}.fd-calendar__navigation{-webkit-box-sizing:border-box;-webkit-box-pack:center;-ms-flex-pack:center;border:0;box-sizing:border-box;color:var(--sapTextColor);display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;justify-content:center;line-height:var(--sapContent_LineHeight);margin:0;padding:0;padding-bottom:var(--fdCalendar_Button_Horizontal_Space);padding-top:var(--fdCalendar_Button_Horizontal_Space);position:relative;width:100%}.fd-calendar__navigation:after,.fd-calendar__navigation:before{box-sizing:inherit;font-size:inherit}.fd-calendar__action{-webkit-box-sizing:border-box;-webkit-box-flex:1;-ms-flex-positive:1;border:0;box-sizing:border-box;color:var(--sapTextColor);flex-grow:1;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-calendar__action:after,.fd-calendar__action:before{box-sizing:inherit;font-size:inherit}.fd-calendar__action:not(:last-child):not(:first-child){margin-left:var(--fdCalendar_Action_Padding);margin-right:var(--fdCalendar_Action_Padding)}.fd-calendar__action:first-child{margin-right:var(--fdCalendar_Action_Padding)}.fd-calendar__action:last-child{margin-left:var(--fdCalendar_Action_Padding)}.fd-calendar__action>[type=button]{width:100%}.fd-calendar__action--arrow-left,.fd-calendar__action--arrow-right{flex-grow:0;width:var(--fdCalendar_Action_Width)}.fd-calendar__action--arrow-left+.fd-calendar__action--arrow-right{margin-left:auto}.fd-calendar__action--arrow-left+.fd-calendar__action--arrow-right[dir=rtl],[dir=rtl] .fd-calendar__action--arrow-left+.fd-calendar__action--arrow-right{margin-left:0;margin-right:auto}.fd-calendar__action [class*=sap-icon][dir=rtl],[dir=rtl] .fd-calendar__action [class*=sap-icon]{transform:scaleX(-1)}.fd-calendar__text-wrapper{-webkit-box-sizing:border-box;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;border:0;box-sizing:border-box;color:var(--sapTextColor);display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:100%;justify-content:center;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-calendar__text-wrapper:after,.fd-calendar__text-wrapper:before{box-sizing:inherit;font-size:inherit}.fd-calendar__item.is-hover,.fd-calendar__item:hover{--fdCalendar_Item_Background:var(--sapList_Hover_Background)}.fd-calendar__item.is-disabled,.fd-calendar__item:disabled,.fd-calendar__item[aria-disabled=true]{opacity:.4;pointer-events:none}.fd-calendar__item--weekend{--fdCalendar_Item_Background:var(--sapLegend_NonWorkingBackground)}.fd-calendar__item--weekend.is-hover,.fd-calendar__item--weekend:hover{--fdCalendar_Item_Background:var(--sapList_Hover_Background);filter:brightness(1.05)}.fd-calendar__item--other{--fdCalendar_Item_Background:var(--fdCalendar_Background)}.fd-calendar__item--other.is-hover,.fd-calendar__item--other:hover{--fdCalendar_Item_Background:var(--sapList_Hover_Background)}.fd-calendar__item--other .fd-calendar__text{--fdCalendar_Item_Text_Color:var(--sapContent_LabelColor)}.fd-calendar__item--selected{--fdCalendar_Item_Background:var(--sapContent_Selected_Background);--fdCalendar_Item_Border:var(--fdCalendar_Active_Item_Border)}.fd-calendar__item--selected.is-hover,.fd-calendar__item--selected:hover{--fdCalendar_Item_Background:var(--fdCalendar_Item_Active_Background_Hover)}.fd-calendar__item--selected .fd-calendar__text{--fdCalendar_Item_Text_Color:var(--sapContent_Selected_TextColor);font-family:var(--fdCalendar_Active_Item_Font_Weight)}.fd-calendar__item--range{--fdCalendar_Item_Border:var(--fdCalendar_Active_Item_Border);--fdCalendar_Item_Background:var(--sapList_SelectionBackgroundColor)}.fd-calendar__item--range.is-hover,.fd-calendar__item--range:hover{--fdCalendar_Item_Background:var(--sapList_Hover_SelectionBackground)}.fd-calendar__item--today.fd-calendar__item--range:after,.fd-calendar__item--today.fd-calendar__item--selected:after{border:.0625rem solid var(--sapList_SelectionBorderColor);border-radius:var(--fdCalendar_Item_Today_Selected_Bottom_Radius);bottom:.0625rem;content:\"\";height:calc(100% - .125rem);left:.0625rem;position:absolute;top:.0625rem;width:calc(100% - .125rem)}.fd-calendar__item--today{--fdCalendar_Item_Border:solid .125rem var(--sapLegend_CurrentDateTime);box-shadow:0 0 0 .0625rem var(--sapList_Background) inset;position:relative}.fd-calendar__item--today:after{border-radius:.3125rem;bottom:.0625rem;content:\"\";height:calc(100% - .125rem);left:.0625rem;position:absolute;top:.0625rem;width:calc(100% - .125rem)}.fd-calendar__item.fd-calendar__item--selected.is-focus,.fd-calendar__item.fd-calendar__item--selected:focus{z-index:5}.fd-calendar__item.fd-calendar__item--selected.is-focus .fd-calendar__text-wrapper,.fd-calendar__item.fd-calendar__item--selected:focus .fd-calendar__text-wrapper{border:var(--fdCalendar_Item_Text_Active_Focus)}.fd-calendar__item:focus-visible{outline:none}.fd-calendar__item.is-focus,.fd-calendar__item:focus{z-index:5}.fd-calendar__item.is-focus .fd-calendar__text-wrapper,.fd-calendar__item:focus .fd-calendar__text-wrapper{-webkit-box-sizing:var(--fdCalendar_Text_Wrapper_Box_Sizing);border:var(--fdCalendar_Text_Wrapper_Border);box-sizing:var(--fdCalendar_Text_Wrapper_Box_Sizing);height:var(--fdCalendar_Text_Wrapper_Height);margin:var(--fdCalendar_Text_Wrapper_Margin)}.fd-calendar__item.is-focus .fd-calendar__text,.fd-calendar__item:focus .fd-calendar__text{border:var(--fdCalendar_Text_Border_Focus)}.fd-calendar__item--side-helper{-ms-flex-item-align:center;--fdCalendar_Item_Height:var(--fdCalendar_Item_Side_Helper,var(--fdCalendar_Item_Helper_Height));--fdCalendar_Item_Background:var(--sapList_Background);align-self:center;pointer-events:none}.fd-calendar__item--side-helper .fd-calendar__text{--fdCalendar_Item_Text_Color:var(--sapContent_LabelColor);--fdCalendar_Item_Font_Size:var(--sapFontSmallSize)}.fd-calendar .fd-calendar__my-item{max-height:var(--fdCalendar_Item_Height)}.fd-calendar .fd-calendar__my-item-button{min-height:100%;min-width:100%;padding:0}.fd-calendar .fd-calendar__my-item .fd-calendar__text{color:inherit}.fd-calendar__content{-webkit-box-sizing:border-box;border:0;border-spacing:0;box-sizing:border-box;color:var(--sapTextColor);display:table;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0;width:100%}.fd-calendar__content:after,.fd-calendar__content:before{box-sizing:inherit;font-size:inherit}.fd-calendar__content--months,.fd-calendar__content--years{--fdCalendar_Item_Background:transparent;padding-top:var(--fdCalendar_Item_Helper_Height)}.fd-calendar__content--screen-reader-only{clip:rect(0 0 0 0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.fd-calendar__group{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);display:table-row-group;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-calendar__group:after,.fd-calendar__group:before{box-sizing:inherit;font-size:inherit}.fd-calendar__row{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-calendar__row:after,.fd-calendar__row:before{box-sizing:inherit;font-size:inherit}.fd-calendar__text{-webkit-box-sizing:border-box;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-box-align:center;-ms-flex-align:center;-webkit-box-flex:1;-ms-flex-positive:1;align-items:center;border:0;border-radius:.1875rem;box-sizing:border-box;color:var(--sapTextColor);color:var(--fdCalendar_Item_Text_Color);display:flex;flex-grow:1;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-size:var(--fdCalendar_Item_Font_Size);font-weight:400;forced-color-adjust:none;height:var(--fdCalendar_Item_Text_Height);justify-content:center;line-height:var(--sapContent_LineHeight);margin:0;max-width:calc(100% - .7rem);min-width:1.375rem;padding:0;position:relative;text-shadow:var(--fdCalendar_Text_Shadow)}.fd-calendar__text:after,.fd-calendar__text:before{box-sizing:inherit;font-size:inherit}.fd-calendar__text.is-focus,.fd-calendar__text:focus{border:var(--sapContent_FocusColor) var(--sapContent_FocusStyle) var(--sapContent_FocusWidth);z-index:5}.fd-calendar[class*=-compact],.fd-calendar[class*=-condensed],[class*=-compact] .fd-calendar:not([class*=-cozy]),[class*=-condensed] .fd-calendar:not([class*=-cozy]){--fdCalendar_Width:calc(var(--fdCalendar_Action_Width)*8 + var(--fdCalendar_Padding)*2 + var(--fdCalendar_Item_Spacing)*16);--fdCalendar_Padding:.5rem;--fdCalendar_Item_Text_Height:1.375rem;--fdCalendar_Item_Height:2rem;--fdCalendar_Button_Horizontal_Space:.1875rem;--fdCalendar_Action_Width:2rem;--fdCalendar_Item_Width:var(--fdCalendar_Action_Width)}.fd-calendar--mobile-landscape,.fd-calendar--mobile-portrait{height:100%;width:100%}.fd-calendar--mobile-landscape{--fdCalendar_Padding:0;--fdCalendar_Item_Side_Helper:1.625rem}.fd-calendar--mobile-landscape .fd-calendar__navigation--main{max-width:20rem}.fd-calendar--mobile-portrait{--fdCalendar_Padding:1rem 0 0 0}.fd-has-display-block{display:block}.fd-calendar__text{max-width:calc(100% - .375rem)}\n"] }]
529
533
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.ContentDensityObserver }, { type: i2.DatetimeAdapter, decorators: [{
530
534
  type: Optional
531
535
  }] }, { type: undefined, decorators: [{
@@ -607,4 +611,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImpor
607
611
  }], disableRangeEndFunction: [{
608
612
  type: Input
609
613
  }] } });
610
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvY2FsZW5kYXIvY2FsZW5kYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvY2FsZW5kYXIvY2FsZW5kYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osVUFBVSxFQUNWLFdBQVcsRUFDWCxNQUFNLEVBQ04sS0FBSyxFQUlMLFFBQVEsRUFDUixNQUFNLEVBRU4sU0FBUyxFQUNULGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGFBQWEsRUFBRSxpQkFBaUIsRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBQ25HLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFcEMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGVBQWUsRUFBbUIsTUFBTSxnQ0FBZ0MsQ0FBQztBQUdyRyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFJaEQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sZ0VBQWdFLENBQUM7QUFDMUcsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sa0VBQWtFLENBQUM7QUFDN0csT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sb0VBQW9FLENBQUM7QUFDaEgsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDdEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxtQ0FBbUMsRUFBRSxNQUFNLHdGQUF3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NUIsS0FBSztnQkFVTix5QkFBeUI7c0JBRHhCLEtBQUs7Z0JBdUJOLG1CQUFtQjtzQkFEbEIsS0FBSztnQkFXTixlQUFlO3NCQURkLEtBQUs7Z0JBUU4seUJBQXlCO3NCQUR4QixLQUFLO2dCQVFOLHVCQUF1QjtzQkFEdEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGZvcndhcmRSZWYsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE9wdGlvbmFsLFxuICAgIE91dHB1dCxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxJREFUT1JTLCBOR19WQUxVRV9BQ0NFU1NPUiwgVmFsaWRhdG9yIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IERBVEVfVElNRV9GT1JNQVRTLCBEYXRldGltZUFkYXB0ZXIsIERhdGVUaW1lRm9ybWF0cyB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9kYXRldGltZSc7XG5pbXBvcnQgeyBTcGVjaWFsRGF5UnVsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9zaGFyZWQnO1xuXG5pbXBvcnQgeyBEYXRlUmFuZ2UgfSBmcm9tICcuL21vZGVscy9kYXRlLXJhbmdlJztcbmltcG9ydCB7IENhbGVuZGFyQ3VycmVudCB9IGZyb20gJy4vbW9kZWxzL2NhbGVuZGFyLWN1cnJlbnQnO1xuaW1wb3J0IHsgQ2FsZW5kYXJZZWFyR3JpZCB9IGZyb20gJy4vbW9kZWxzL2NhbGVuZGFyLXllYXItZ3JpZCc7XG5pbXBvcnQgeyBBZ2dyZWdhdGVkWWVhciB9IGZyb20gJy4vbW9kZWxzL2FnZ3JlZ2F0ZWQteWVhcic7XG5pbXBvcnQgeyBDYWxlbmRhckRheVZpZXdDb21wb25lbnQgfSBmcm9tICcuL2NhbGVuZGFyLXZpZXdzL2NhbGVuZGFyLWRheS12aWV3L2NhbGVuZGFyLWRheS12aWV3LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYWxlbmRhclllYXJWaWV3Q29tcG9uZW50IH0gZnJvbSAnLi9jYWxlbmRhci12aWV3cy9jYWxlbmRhci15ZWFyLXZpZXcvY2FsZW5kYXIteWVhci12aWV3LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYWxlbmRhck1vbnRoVmlld0NvbXBvbmVudCB9IGZyb20gJy4vY2FsZW5kYXItdmlld3MvY2FsZW5kYXItbW9udGgtdmlldy9jYWxlbmRhci1tb250aC12aWV3LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYWxlbmRhckhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4vY2FsZW5kYXItaGVhZGVyL2NhbGVuZGFyLWhlYWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FsZW5kYXJTZXJ2aWNlIH0gZnJvbSAnLi9jYWxlbmRhci5zZXJ2aWNlJztcbmltcG9ydCB7IGNyZWF0ZU1pc3NpbmdEYXRlSW1wbGVtZW50YXRpb25FcnJvciB9IGZyb20gJy4vY2FsZW5kYXItZXJyb3JzJztcbmltcG9ydCB7IENhbGVuZGFyQWdncmVnYXRlZFllYXJWaWV3Q29tcG9uZW50IH0gZnJvbSAnLi9jYWxlbmRhci12aWV3cy9jYWxlbmRhci1hZ2dyZWdhdGVkLXllYXItdmlldy9jYWxlbmRhci1hZ2dyZWdhdGVkLXllYXItdmlldy5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGlzYWJsZURhdGVGdW5jdGlvbiwgRXNjYXBlRm9jdXNGdW5jdGlvbiwgRm9jdXNhYmxlQ2FsZW5kYXJWaWV3IH0gZnJvbSAnLi9tb2RlbHMvY29tbW9uJztcbmltcG9ydCB7IENhbGVuZGFyVHlwZSwgRGF5c09mV2VlaywgRmRDYWxlbmRhclZpZXcsIE5hdmlnYXRpb25CdXR0b25EaXNhYmxlRnVuY3Rpb24gfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IENvbnRlbnREZW5zaXR5T2JzZXJ2ZXIsIGNvbnRlbnREZW5zaXR5T2JzZXJ2ZXJQcm92aWRlcnMgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvY29udGVudC1kZW5zaXR5JztcbmltcG9ydCB7IE51bGxhYmxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuXG5sZXQgY2FsZW5kYXJVbmlxdWVJZCA9IDA7XG5cbi8qKlxuICogTW9udGhzOiAxID0gSmFudWFyeSwgMTIgPSBkZWNlbWJlci5cbiAqIERheXM6IDEgPSBTdW5kYXksIDcgPSBTYXR1cmRheVxuICpcbiAqIENhbGVuZGFyIGNvbXBvbmVudCB1c2VkIGZvciBzZWxlY3RpbmcgZGF0ZXMsIHR5cGljYWxseSB1c2VkIGJ5IHRoZSBEYXRlUGlja2VyIGFuZCBEYXRlVGltZVBpY2tlciBjb21wb25lbnRzLlxuICogU3VwcG9ydHMgdGhlIEFuZ3VsYXIgZm9ybXMgbW9kdWxlLCBlbmFibGluZyBmb3JtIHZhbGlkaXR5LCBuZ01vZGVsLCBldGMuXG4gKiBgYGBodG1sXG4gKiA8ZmQtY2FsZW5kYXI+PC9mZC1jYWxlbmRhcj5cbiAqIGBgYFxuICpcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZC1jYWxlbmRhcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NhbGVuZGFyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9jYWxlbmRhci5jb21wb25lbnQuc2NzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQ2FsZW5kYXJDb21wb25lbnQpLFxuICAgICAgICAgICAgbXVsdGk6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IENhbGVuZGFyQ29tcG9uZW50KSxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIENhbGVuZGFyU2VydmljZSxcbiAgICAgICAgY29udGVudERlbnNpdHlPYnNlcnZlclByb3ZpZGVycygpXG4gICAgXSxcbiAgICBob3N0OiB7XG4gICAgICAgICcoZm9jdXNvdXQpJzogJ19mb2N1c091dCgkZXZlbnQpJyxcbiAgICAgICAgJ1thdHRyLmlkXSc6ICdpZCcsXG4gICAgICAgIGNsYXNzOiAnZmQtY2FsZW5kYXIgZmQtaGFzLWRpc3BsYXktYmxvY2snXG4gICAgfSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBDYWxlbmRhckNvbXBvbmVudDxEPiBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yLCBPbkRlc3Ryb3kge1xuICAgIC8qKiBUaGUgY3VycmVudGx5IHNlbGVjdGVkIGRhdGUgbW9kZWwgaW4gc2luZ2xlIG1vZGUuICovXG4gICAgQElucHV0KClcbiAgICBzZWxlY3RlZERhdGU6IE51bGxhYmxlPEQ+O1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB1c2VyIHdhbnRzIHRvIG1hcmsgc3VuZGF5L3NhdHVyZGF5IHdpdGggYGZkLWNhbGVuZGFyX19pdGVtLS13ZWVrZW5kYCBjbGFzc1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgbWFya1dlZWtlbmRzID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdXNlciB3YW50cyB0byBzaG93IHdlZWsgbnVtYmVycyBuZXh0IHRvIGRheXNcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNob3dXZWVrTnVtYmVycyA9IGZhbHNlO1xuXG4gICAgLyoqIFdoZXRoZXIgY2FsZW5kYXIgaXMgdXNlZCBpbnNpZGUgbW9iaWxlIGluIGxhbmRzY2FwZSBtb2RlLCBpdCBhbHNvIGFkZHMgY2xvc2UgYnV0dG9uIG9uIHJpZ2h0IHNpZGUgKi9cbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZmQtY2FsZW5kYXItLW1vYmlsZS1sYW5kc2NhcGUnKVxuICAgIG1vYmlsZUxhbmRzY2FwZSA9IGZhbHNlO1xuXG4gICAgLyoqIFdoZXRoZXIgY2FsZW5kYXIgaXMgdXNlZCBpbnNpZGUgbW9iaWxlIGluIHBvcnRyYWl0IG1vZGUgKi9cbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZmQtY2FsZW5kYXItLW1vYmlsZS1wb3J0cmFpdCcpXG4gICAgbW9iaWxlUG9ydHJhaXQgPSBmYWxzZTtcblxuICAgIC8qKiBUaGUgY3VycmVudGx5IHNlbGVjdGVkIEZkRGF0ZXMgbW9kZWwgc3RhcnQgYW5kIGVuZCBpbiByYW5nZSBtb2RlLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2VsZWN0ZWRSYW5nZURhdGU6IERhdGVSYW5nZTxEPjtcblxuICAgIC8qKiBBY3R1YWxseSBzaG93biBhY3RpdmUgdmlldyBvbmUgb2YgJ2RheScgfCAnbW9udGgnIHwgJ3llYXInICovXG4gICAgQElucHV0KClcbiAgICBhY3RpdmVWaWV3OiBGZENhbGVuZGFyVmlldyA9ICdkYXknO1xuXG4gICAgLyoqIFRoZSBkYXkgb2YgdGhlIHdlZWsgdGhlIGNhbGVuZGFyIHNob3VsZCBzdGFydCBvbi4gMSByZXByZXNlbnRzIFN1bmRheSwgMiBpcyBNb25kYXksIDMgaXMgVHVlc2RheSwgYW5kIHNvIG9uLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgc3RhcnRpbmdEYXlPZldlZWs6IERheXNPZldlZWs7XG5cbiAgICAvKiogVGhlIHR5cGUgb2YgY2FsZW5kYXIsICdzaW5nbGUnIGZvciBzaW5nbGUgZGF0ZSBzZWxlY3Rpb24gb3IgJ3JhbmdlJyBmb3IgYSByYW5nZSBvZiBkYXRlcy4gKi9cbiAgICBASW5wdXQoKVxuICAgIGNhbFR5cGU6IENhbGVuZGFyVHlwZSA9ICdzaW5nbGUnO1xuXG4gICAgLyoqIElkIG9mIHRoZSBjYWxlbmRhci4gSWYgbm9uZSBpcyBwcm92aWRlZCwgb25lIHdpbGwgYmUgZ2VuZXJhdGVkLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgaWQgPSAnZmQtY2FsZW5kYXItJyArIGNhbGVuZGFyVW5pcXVlSWQrKztcblxuICAgIC8qKlxuICAgICAqIFNwZWNpYWwgZGF5cyBtYXJrLCBpdCBjYW4gYmUgdXNlZCBieSBwYXNzaW5nIGFycmF5IG9mIG9iamVjdCB3aXRoXG4gICAgICogU3BlY2lhbCBkYXkgbnVtYmVyLCBsaXN0IDEtMjAgW2NsYXNzOmBmZC1jYWxlbmRhcl9fc3BlY2lhbC1kYXktLXt7bnVtYmVyfX1gXSBpcyBhdmFpbGFibGUgdGhlcmU6XG4gICAgICogaHR0cHM6Ly9zYXAuZ2l0aHViLmlvL2Z1bmRhbWVudGFsLXN0eWxlcy9jb21wb25lbnRzL2NhbGVuZGFyLmh0bWwgY2FsZW5kYXIgc3BlY2lhbCBkYXlzIHNlY3Rpb25cbiAgICAgKiBSdWxlIGFjY2VwdHMgbWV0aG9kIHdpdGggRCBvYmplY3QgYXMgYSBwYXJhbWV0ZXIuIGV4OlxuICAgICAqIGBydWxlOiAoZmREYXRlOiBEKSA9PiBmZERhdGUuZ2V0RGF5KCkgPT09IDFgLCB3aGljaCB3aWxsIG1hcmsgYWxsIHN1bmRheXMgYXMgc3BlY2lhbCBkYXkuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzcGVjaWFsRGF5c1J1bGVzOiBTcGVjaWFsRGF5UnVsZTxEPltdID0gW107XG5cbiAgICAvKipcbiAgICAgKiBPYmplY3QgdG8gY3VzdG9taXplIHllYXIgZ3JpZCxcbiAgICAgKiBSb3csIENvbHVtbnMgYW5kIG1ldGhvZCB0byBkaXNwbGF5IHllYXIgY2FuIGJlIG1vZGlmaWVkXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICB5ZWFyR3JpZDogQ2FsZW5kYXJZZWFyR3JpZCA9IHtcbiAgICAgICAgcm93czogNCxcbiAgICAgICAgY29sczogNVxuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBPYmplY3QgdG8gY3VzdG9taXplIGFnZ3JlZ2F0ZWQgeWVhciBncmlkLFxuICAgICAqIFJvdywgQ29sdW1ucyBhbmQgbWV0aG9kIHRvIGRpc3BsYXkgeWVhciBjYW4gYmUgbW9kaWZpZWRcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGFnZ3JlZ2F0ZWRZZWFyR3JpZDogQ2FsZW5kYXJZZWFyR3JpZCA9IHtcbiAgICAgICAgcm93czogNCxcbiAgICAgICAgY29sczogM1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHVzZXIgd2FudHMgdG8gbWFyayBkYXkgY2VsbHMgb24gaG92ZXIuXG4gICAgICogV29ya3Mgb25seSBvbiByYW5nZSBtb2RlLCB3aGVuIHN0YXJ0IGRhdGUgaXMgc2VsZWN0ZWQgb24gRGF5IFZpZXcuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICByYW5nZUhvdmVyRWZmZWN0ID0gZmFsc2U7XG5cbiAgICAvKiogRXZlbnQgdGhyb3duIGV2ZXJ5IHRpbWUgYWN0aXZlIHZpZXcgaXMgY2hhbmdlZCAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHJlYWRvbmx5IGFjdGl2ZVZpZXdDaGFuZ2U6IEV2ZW50RW1pdHRlcjxGZENhbGVuZGFyVmlldz4gPSBuZXcgRXZlbnRFbWl0dGVyPEZkQ2FsZW5kYXJWaWV3PigpO1xuXG4gICAgLyoqIEV2ZW50IHRocm93biBldmVyeSB0aW1lIHNlbGVjdGVkIGRhdGUgaW4gc2luZ2xlIG1vZGUgaXMgY2hhbmdlZCAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHJlYWRvbmx5IHNlbGVjdGVkRGF0ZUNoYW5nZTogRXZlbnRFbWl0dGVyPEQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxEPigpO1xuXG4gICAgLyoqIEV2ZW50IHRocm93biBldmVyeSB0aW1lIHNlbGVjdGVkIGZpcnN0IG9yIGxhc3QgZGF0ZSBpbiByYW5nZSBtb2RlIGlzIGNoYW5nZWQgKi9cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSBzZWxlY3RlZFJhbmdlRGF0ZUNoYW5nZTogRXZlbnRFbWl0dGVyPERhdGVSYW5nZTxEPj4gPSBuZXcgRXZlbnRFbWl0dGVyPERhdGVSYW5nZTxEPj4oKTtcblxuICAgIC8qKiBFdmVudCB0aHJvd24gZXZlcnkgdGltZSB3aGVuIHZhbHVlIGlzIG92ZXJ3cml0dGVuIGZyb20gb3V0c2lkZSBhbmQgdGhyb3cgYmFjayBpc1ZhbGlkICovXG4gICAgQE91dHB1dCgpXG4gICAgcmVhZG9ubHkgaXNWYWxpZERhdGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAgIC8qKiBFdmVudCB0aHJvd24gZXZlcnkgdGltZSB3aGVuIGNhbGVuZGFyIHNob3VsZCBiZSBjbG9zZWQgKi9cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSBjbG9zZUNhbGVuZGFyOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICAvKiogRXZlbnQgdGhyb3duLCB3aGVuIGNsb3NlIGJ1dHRvbiBpcyBjbGlja2VkICovXG4gICAgQE91dHB1dCgpXG4gICAgcmVhZG9ubHkgY2xvc2VDbGlja2VkOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoQ2FsZW5kYXJEYXlWaWV3Q29tcG9uZW50KVxuICAgIF9kYXlWaWV3Q29tcG9uZW50OiBDYWxlbmRhckRheVZpZXdDb21wb25lbnQ8RD47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoQ2FsZW5kYXJNb250aFZpZXdDb21wb25lbnQpXG4gICAgX21vbnRoVmlld0NvbXBvbmVudDogQ2FsZW5kYXJNb250aFZpZXdDb21wb25lbnQ8RD47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoQ2FsZW5kYXJZZWFyVmlld0NvbXBvbmVudClcbiAgICBfeWVhclZpZXdDb21wb25lbnQ6IENhbGVuZGFyWWVhclZpZXdDb21wb25lbnQ8RD47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoQ2FsZW5kYXJBZ2dyZWdhdGVkWWVhclZpZXdDb21wb25lbnQpXG4gICAgX2FnZ3JlZ2F0ZWRZZWFyVmlld0NvbXBvbmVudDogQ2FsZW5kYXJBZ2dyZWdhdGVkWWVhclZpZXdDb21wb25lbnQ8RD47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoQ2FsZW5kYXJIZWFkZXJDb21wb25lbnQpXG4gICAgX2NhbGVuZGFySGVhZGVyQ29tcG9uZW50OiBDYWxlbmRhckhlYWRlckNvbXBvbmVudDxEPjtcblxuICAgIC8qKlxuICAgICAqIEZ1bmN0aW9uIHVzZWQgdG8gZGlzYWJsZSBwcmV2aW91cyBidXR0b24gaW4gdGhlIGNhbGVuZGFyIGhlYWRlci5cbiAgICAgKiBAcGFyYW0gZGF0ZSBzZWxlY3RlZCBkYXRlXG4gICAgICogQHBhcmFtIGN1cnJlbnRseURpc3BsYXllZERhdGUgY3VycmVudGx5IGRpc3BsYXllZCBkYXRlXG4gICAgICogQHBhcmFtIGFjdGl2ZVZpZXcgY3VycmVudCB2aWV3IG9mIGNhbGVuZGFyXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwcmV2aW91c0J1dHRvbkRpc2FibGVGdW5jdGlvbjogTmF2aWdhdGlvbkJ1dHRvbkRpc2FibGVGdW5jdGlvbjxEPjtcblxuICAgIC8qKlxuICAgICAqIEZ1bmN0aW9uIHVzZWQgdG8gZGlzYWJsZSBuZXh0IGJ1dHRvbiBpbiB0aGUgY2FsZW5kYXIgaGVhZGVyLlxuICAgICAqIEBwYXJhbSBkYXRlIHNlbGVjdGVkIGRhdGVcbiAgICAgKiBAcGFyYW0gY3VycmVudGx5RGlzcGxheWVkRGF0ZSBjdXJyZW50bHkgZGlzcGxheWVkIGRhdGVcbiAgICAgKiBAcGFyYW0gYWN0aXZlVmlldyBjdXJyZW50IHZpZXcgb2YgY2FsZW5kYXJcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIG5leHRCdXR0b25EaXNhYmxlRnVuY3Rpb246IE5hdmlnYXRpb25CdXR0b25EaXNhYmxlRnVuY3Rpb248RD47XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQ3VycmVudGx5IGRpc3BsYXllZCBkYXlzIGRlcGVuZGluZyBvbiBtb250aCBhbmQgeWVhclxuICAgICAqL1xuICAgIF9jdXJyZW50bHlEaXNwbGF5ZWQ6IENhbGVuZGFyQ3VycmVudDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfc3Vic2NyaXB0aW9ucyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfYWRhcHRlclN0YXJ0aW5nRGF5T2ZXZWVrOiBEYXlzT2ZXZWVrO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcmV2aW91c0J1dHRvbkRpc2FibGVkOiBib29sZWFuO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZXh0QnV0dG9uRGlzYWJsZWQ6IGJvb2xlYW47XG5cbiAgICAvKiogVGhhdCBhbGxvd3MgdG8gZGVmaW5lIGZ1bmN0aW9uIHRoYXQgc2hvdWxkIGhhcHBlbiwgd2hlbiBmb2N1cyBzaG91bGQgbm9ybWFsbHkgZXNjYXBlIG9mIGNvbXBvbmVudCAqL1xuICAgIEBJbnB1dCgpXG4gICAgZXNjYXBlRm9jdXNGdW5jdGlvbjogRXNjYXBlRm9jdXNGdW5jdGlvbiA9IChldmVudD86IEtleWJvYXJkRXZlbnQpOiB2b2lkID0+IHtcbiAgICAgICAgZXZlbnQ/LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHRoaXMuX2NhbGVuZGFySGVhZGVyQ29tcG9uZW50Py5mb2N1cygpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBGdW5jdGlvbiB1c2VkIHRvIGRpc2FibGUgY2VydGFpbiBkYXRlcyBpbiB0aGUgY2FsZW5kYXIuXG4gICAgICogQHBhcmFtIGRhdGUgZGF0ZVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZGlzYWJsZUZ1bmN0aW9uOiBEaXNhYmxlRGF0ZUZ1bmN0aW9uPEQ+ID0gKCkgPT4gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBGdW5jdGlvbiB1c2VkIHRvIGRpc2FibGUgY2VydGFpbiBkYXRlcyBpbiB0aGUgY2FsZW5kYXIgZm9yIHRoZSByYW5nZSBzdGFydCBzZWxlY3Rpb24uXG4gICAgICogQHBhcmFtIGRhdGUgZGF0ZVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZGlzYWJsZVJhbmdlU3RhcnRGdW5jdGlvbjogRGlzYWJsZURhdGVGdW5jdGlvbjxEPiA9ICgpID0+IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogRnVuY3Rpb24gdXNlZCB0byBkaXNhYmxlIGNlcnRhaW4gZGF0ZXMgaW4gdGhlIGNhbGVuZGFyIGZvciB0aGUgcmFuZ2UgZW5kIHNlbGVjdGlvbi5cbiAgICAgKiBAcGFyYW0gZGF0ZSBkYXRlXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBkaXNhYmxlUmFuZ2VFbmRGdW5jdGlvbjogRGlzYWJsZURhdGVGdW5jdGlvbjxEPiA9ICgpID0+IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBvbkNoYW5nZTogKF86IEQgfCBEYXRlUmFuZ2U8RD4pID0+IHZvaWQgPSAoKSA9PiB7fTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgb25Ub3VjaGVkOiAoKSA9PiB2b2lkID0gKCkgPT4ge307XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBwcml2YXRlIF9jaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByaXZhdGUgX2NvbnRlbnREZW5zaXR5T2JzZXJ2ZXI6IENvbnRlbnREZW5zaXR5T2JzZXJ2ZXIsXG4gICAgICAgIC8vIFVzZSBAT3B0aW9uYWwgdG8gYXZvaWQgYW5ndWxhciBpbmplY3Rpb24gZXJyb3IgbWVzc2FnZSBhbmQgdGhyb3cgb3VyIG93biB3aGljaCBpcyBtb3JlIHByZWNpc2Ugb25lXG4gICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgX2RhdGVUaW1lQWRhcHRlcjogRGF0ZXRpbWVBZGFwdGVyPEQ+LFxuICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KERBVEVfVElNRV9GT1JNQVRTKSBwcml2YXRlIF9kYXRlVGltZUZvcm1hdHM6IERhdGVUaW1lRm9ybWF0c1xuICAgICkge1xuICAgICAgICBpZiAoIXRoaXMuX2RhdGVUaW1lQWRhcHRlcikge1xuICAgICAgICAgICAgdGhyb3cgY3JlYXRlTWlzc2luZ0RhdGVJbXBsZW1lbnRhdGlvbkVycm9yKCdEYXRlVGltZUFkYXB0ZXInKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMuX2RhdGVUaW1lRm9ybWF0cykge1xuICAgICAgICAgICAgdGhyb3cgY3JlYXRlTWlzc2luZ0RhdGVJbXBsZW1lbnRhdGlvbkVycm9yKCdEQVRFX1RJTUVfRk9STUFUUycpO1xuICAgICAgICB9XG4gICAgICAgIF9jb250ZW50RGVuc2l0eU9ic2VydmVyLnN1YnNjcmliZSgpO1xuICAgICAgICAvLyBzZXQgZGVmYXVsdCB2YWx1ZVxuICAgICAgICB0aGlzLl9hZGFwdGVyU3RhcnRpbmdEYXlPZldlZWsgPSAodGhpcy5fZGF0ZVRpbWVBZGFwdGVyLmdldEZpcnN0RGF5T2ZXZWVrKCkgKyAxKSBhcyBEYXlzT2ZXZWVrO1xuICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZSA9IHRoaXMuX2RhdGVUaW1lQWRhcHRlci50b2RheSgpO1xuICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgdGhpcy5fbGlzdGVuVG9Mb2NhbGVDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fcHJlcGFyZURpc3BsYXllZFZpZXcoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgJ25leHRCdXR0b25EaXNhYmxlRnVuY3Rpb24nIGluIGNoYW5nZXMgfHxcbiAgICAgICAgICAgICdwcmV2aW91c0J1dHRvbkRpc2FibGVGdW5jdGlvbicgaW4gY2hhbmdlcyB8fFxuICAgICAgICAgICAgJ19jdXJyZW50bHlEaXNwbGF5ZWQnIGluIGNoYW5nZXNcbiAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLl9zZXROYXZpZ2F0aW9uQnV0dG9uc1N0YXRlcygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBnZXRXZWVrU3RhcnREYXkoKTogRGF5c09mV2VlayB7XG4gICAgICAgIHJldHVybiB0aGlzLnN0YXJ0aW5nRGF5T2ZXZWVrID09PSB1bmRlZmluZWQgPyB0aGlzLl9hZGFwdGVyU3RhcnRpbmdEYXlPZldlZWsgOiB0aGlzLnN0YXJ0aW5nRGF5T2ZXZWVrO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogRnVuY3Rpb24gdGhhdCBwcm92aWRlcyBzdXBwb3J0IGZvciBDb250cm9sVmFsdWVBY2Nlc3NvciB0aGF0IGFsbG93cyB0byB1c2UgWyhuZ01vZGVsKV0gb3IgZm9ybXMuXG4gICAgICovXG4gICAgd3JpdGVWYWx1ZShzZWxlY3RlZDogRGF0ZVJhbmdlPEQ+IHwgRCk6IHZvaWQge1xuICAgICAgICBsZXQgdmFsaWQgPSB0cnVlO1xuXG4gICAgICAgIGlmICh0aGlzLmNhbFR5cGUgPT09ICdzaW5nbGUnKSB7XG4gICAgICAgICAgICBzZWxlY3RlZCA9IDxEPnNlbGVjdGVkO1xuXG4gICAgICAgICAgICB2YWxpZCA9IHRoaXMuX2RhdGVUaW1lQWRhcHRlci5pc1ZhbGlkKHNlbGVjdGVkKTtcblxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERhdGUgPSBzZWxlY3RlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmNhbFR5cGUgPT09ICdyYW5nZScgJiYgc2VsZWN0ZWQpIHtcbiAgICAgICAgICAgIHNlbGVjdGVkID0gPERhdGVSYW5nZTxEPj5zZWxlY3RlZDtcblxuICAgICAgICAgICAgaWYgKCF0aGlzLl9kYXRlVGltZUFkYXB0ZXIuaXNWYWxpZChzZWxlY3RlZC5zdGFydCkgfHwgIXRoaXMuX2RhdGVUaW1lQWRhcHRlci5pc1ZhbGlkKHNlbGVjdGVkLmVuZCkpIHtcbiAgICAgICAgICAgICAgICB2YWxpZCA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkUmFuZ2VEYXRlID0ge1xuICAgICAgICAgICAgICAgIHN0YXJ0OiBzZWxlY3RlZC5zdGFydCxcbiAgICAgICAgICAgICAgICBlbmQ6IHNlbGVjdGVkLmVuZFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh2YWxpZCkge1xuICAgICAgICAgICAgdGhpcy5fcHJlcGFyZURpc3BsYXllZFZpZXcoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcblxuICAgICAgICB0aGlzLmlzVmFsaWREYXRlQ2hhbmdlLmVtaXQodmFsaWQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBGdW5jdGlvbiB0aGF0IGltcGxlbWVudHMgVmFsaWRhdG9yIEludGVyZmFjZSwgYWRkcyB2YWxpZGF0aW9uIHN1cHBvcnQgZm9yIGZvcm1zXG4gICAgICovXG4gICAgdmFsaWRhdGUoKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5pc01vZGVsVmFsaWQoKVxuICAgICAgICAgICAgPyBudWxsXG4gICAgICAgICAgICA6IHtcbiAgICAgICAgICAgICAgICAgIGRhdGVWYWxpZGF0aW9uOiB7XG4gICAgICAgICAgICAgICAgICAgICAgdmFsaWQ6IGZhbHNlXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1ldGhvZCB0aGF0IGhhbmRsZSBhY3RpdmUgdmlldyBjaGFuZ2UgYW5kIHRocm93cyBldmVudC5cbiAgICAgKlxuICAgICAqIEZpcmVkIGJ5IGNhbGVuZGFyIGhlYWRlciBjb21wb25lbnQuXG4gICAgICovXG4gICAgaGFuZGxlQWN0aXZlVmlld0NoYW5nZShhY3RpdmVWaWV3OiBGZENhbGVuZGFyVmlldyk6IHZvaWQge1xuICAgICAgICBpZiAoYWN0aXZlVmlldyA9PT0gdGhpcy5hY3RpdmVWaWV3KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmFjdGl2ZVZpZXcgPSBhY3RpdmVWaWV3O1xuXG4gICAgICAgIHRoaXMuYWN0aXZlVmlld0NoYW5nZS5lbWl0KGFjdGl2ZVZpZXcpO1xuXG4gICAgICAgIGlmIChhY3RpdmVWaWV3ID09PSAnbW9udGgnKSB7XG4gICAgICAgICAgICB0aGlzLm9uTW9udGhWaWV3U2VsZWN0ZWQoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYWN0aXZlVmlldyA9PT0gJ3llYXInKSB7XG4gICAgICAgICAgICB0aGlzLm9uWWVhclZpZXdTZWxlY3RlZCgpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChhY3RpdmVWaWV3ID09PSAnYWdncmVnYXRlZFllYXInKSB7XG4gICAgICAgICAgICB0aGlzLm9uWWVhcnNSYW5nZVZpZXdTZWxlY3RlZCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fc2V0TmF2aWdhdGlvbkJ1dHRvbnNTdGF0ZXMoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogTWV0aG9kIHRoYXQgaXMgdHJpZ2dlcmVkIGJ5IGV2ZW50cyBmcm9tIGRheSB2aWV3IGNvbXBvbmVudCwgd2hlbiB0aGVyZSBpcyBzZWxlY3RlZCBzaW5nbGUgZGF0ZSBjaGFuZ2VkXG4gICAgICovXG4gICAgc2VsZWN0ZWREYXRlQ2hhbmdlZChkYXRlOiBEKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlID0gZGF0ZTtcbiAgICAgICAgdGhpcy5fc2V0TmF2aWdhdGlvbkJ1dHRvbnNTdGF0ZXMoKTtcbiAgICAgICAgdGhpcy5vbkNoYW5nZShkYXRlKTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZERhdGVDaGFuZ2UuZW1pdChkYXRlKTtcbiAgICAgICAgdGhpcy5jbG9zZUNhbGVuZGFyLmVtaXQoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogTWV0aG9kIHRoYXQgaXMgdHJpZ2dlcmVkIGJ5IGV2ZW50cyBmcm9tIGRheSB2aWV3IGNvbXBvbmVudCwgd2hlbiB0aGVyZSBpcyBzZWxlY3RlZCByYW5nZSBkYXRlIGNoYW5nZWRcbiAgICAgKi9cbiAgICBzZWxlY3RlZFJhbmdlRGF0ZUNoYW5nZWQoZGF0ZXM6IERhdGVSYW5nZTxEPik6IHZvaWQge1xuICAgICAgICBpZiAoZGF0ZXMpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRSYW5nZURhdGUgPSB7IHN0YXJ0OiBkYXRlcy5zdGFydCwgZW5kOiBkYXRlcy5lbmQgfTtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRSYW5nZURhdGVDaGFuZ2UuZW1pdCh0aGlzLnNlbGVjdGVkUmFuZ2VEYXRlKTtcbiAgICAgICAgICAgIHRoaXMub25DaGFuZ2UodGhpcy5zZWxlY3RlZFJhbmdlRGF0ZSk7XG4gICAgICAgICAgICB0aGlzLmNsb3NlQ2FsZW5kYXIuZW1pdCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEZ1bmN0aW9uIHRoYXQgaGFuZGxlcyBuZXh0IGFycm93IGljb24gY2xpY2ssIGRlcGVuZGluZyBvbiBjdXJyZW50IHZpZXcgaXQgY2hhbmdlcyBtb250aCwgeWVhciBvciBsaXN0IG9mIHllYXJzICovXG4gICAgaGFuZGxlTmV4dEFycm93Q2xpY2soKTogdm9pZCB7XG4gICAgICAgIHN3aXRjaCAodGhpcy5hY3RpdmVWaWV3KSB7XG4gICAgICAgICAgICBjYXNlICdkYXknOlxuICAgICAgICAgICAgICAgIHRoaXMuZGlzcGxheU5leHRNb250aCgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnbW9udGgnOlxuICAgICAgICAgICAgICAgIHRoaXMuZGlzcGxheU5leHRZZWFyKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICd5ZWFyJzpcbiAgICAgICAgICAgICAgICB0aGlzLmRpc3BsYXlOZXh0WWVhckxpc3QoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2FnZ3JlZ2F0ZWRZZWFyJzpcbiAgICAgICAgICAgICAgICB0aGlzLmRpc3BsYXlOZXh0WWVhcnNMaXN0KCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fc2V0TmF2aWdhdGlvbkJ1dHRvbnNTdGF0ZXMoKTtcbiAgICB9XG5cbiAgICAvKiogRnVuY3Rpb24gdGhhdCBoYW5kbGVzIHByZXZpb3VzIGFycm93IGljb24gY2xpY2ssIGRlcGVuZGluZyBvbiBjdXJyZW50IHZpZXcgaXQgY2hhbmdlcyBtb250aCwgeWVhciBvciBsaXN0IG9mIHllYXJzICovXG4gICAgaGFuZGxlUHJldmlvdXNBcnJvd0NsaWNrKCk6IHZvaWQge1xuICAgICAgICBzd2l0Y2ggKHRoaXMuYWN0aXZlVmlldykge1xuICAgICAgICAgICAgY2FzZSAnZGF5JzpcbiAgICAgICAgICAgICAgICB0aGlzLmRpc3BsYXlQcmV2aW91c01vbnRoKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdtb250aCc6XG4gICAgICAgICAgICAgICAgdGhpcy5kaXNwbGF5UHJldmlvdXNZZWFyKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICd5ZWFyJzpcbiAgICAgICAgICAgICAgICB0aGlzLmRpc3BsYXlQcmV2aW91c1llYXJMaXN0KCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdhZ2dyZWdhdGVkWWVhcic6XG4gICAgICAgICAgICAgICAgdGhpcy5kaXNwbGF5UHJldmlvdXNZZWFyc0xpc3QoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9zZXROYXZpZ2F0aW9uQnV0dG9uc1N0YXRlcygpO1xuICAgIH1cblxuICAgIC8qKiBGdW5jdGlvbiB0aGF0IGFsbG93cyB0byBzd2l0Y2ggYWN0dWFsIHZpZXcgdG8gbmV4dCBtb250aCAqL1xuICAgIGRpc3BsYXlOZXh0TW9udGgoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9jdXJyZW50bHlEaXNwbGF5ZWQubW9udGggPT09IDEyKSB7XG4gICAgICAgICAgICB0aGlzLl9jdXJyZW50bHlEaXNwbGF5ZWQgPSB7IHllYXI6IHRoaXMuX2N1cnJlbnRseURpc3BsYXllZC55ZWFyICsgMSwgbW9udGg6IDEgfTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRseURpc3BsYXllZCA9IHtcbiAgICAgICAgICAgICAgICB5ZWFyOiB0aGlzLl9jdXJyZW50bHlEaXNwbGF5ZWQueWVhcixcbiAgICAgICAgICAgICAgICBtb250aDogdGhpcy5fY3VycmVudGx5RGlzcGxheWVkLm1vbnRoICsgMVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBGdW5jdGlvbiB0aGF0IGFsbG93cyB0byBzd2l0Y2ggYWN0dWFsIHZpZXcgdG8gcHJldmlvdXMgbW9udGggKi9cbiAgICBkaXNwbGF5UHJldmlvdXNNb250aCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX2N1cnJlbnRseURpc3BsYXllZC5tb250aCA8PSAxKSB7XG4gICAgICAgICAgICB0aGlzLl9jdXJyZW50bHlEaXNwbGF5ZWQgPSB7IHllYXI6IHRoaXMuX2N1cnJlbnRseURpc3BsYXllZC55ZWFyIC0gMSwgbW9udGg6IDEyIH07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9jdXJyZW50bHlEaXNwbGF5ZWQgPSB7XG4gICAgICAgICAgICAgICAgeWVhcjogdGhpcy5fY3VycmVudGx5RGlzcGxheWVkLnllYXIsXG4gICAgICAgICAgICAgICAgbW9udGg6IHRoaXMuX2N1cnJlbnRseURpc3BsYXllZC5tb250aCAtIDFcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogRnVuY3Rpb24gdGhhdCBhbGxvd3MgdG8gc3dpdGNoIGFjdHVhbCB2aWV3IHRvIG5leHQgeWVhciAqL1xuICAgIGRpc3BsYXlOZXh0WWVhcigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY3VycmVudGx5RGlzcGxheWVkID0geyBtb250aDogdGhpcy5fY3VycmVudGx5RGlzcGxheWVkLm1vbnRoLCB5ZWFyOiB0aGlzLl9jdXJyZW50bHlEaXNwbGF5ZWQueWVhciArIDEgfTtcbiAgICB9XG5cbiAgICAvKiogRnVuY3Rpb24gdGhhdCBhbGxvd3MgdG8gc3dpdGNoIGFjdHVhbCB2aWV3IHRvIHByZXZpb3VzIHllYXIgKi9cbiAgICBkaXNwbGF5UHJldmlvdXNZZWFyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jdXJyZW50bHlEaXNwbGF5ZWQgPSB7IG1vbnRoOiB0aGlzLl9jdXJyZW50bHlEaXNwbGF5ZWQubW9udGgsIHllYXI6IHRoaXMuX2N1cnJlbnRseURpc3BsYXllZC55ZWFyIC0gMSB9O1xuICAgIH1cblxuICAgIC8qKiBGdW5jdGlvbiB0aGF0IGFsbG93cyB0byBzd2l0Y2ggYWN0dWFsbHkgZGlzcGxheWVkIGxpc3Qgb2YgeWVhciB0byBuZXh0IHllYXIgbGlzdCovXG4gICAgZGlzcGxheU5leHRZZWFyTGlzdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5feWVhclZpZXdDb21wb25lbnQubG9hZE5leHRZZWFyTGlzdCgpO1xuICAgICAgICB0aGlzLl9jdXJyZW50bHlEaXNwbGF5ZWQgPSB7XG4gICAgICAgICAgICBtb250aDogdGhpcy5fY3VycmVudGx5RGlzcGxheWVkLm1vbnRoLFxuICAgICAgICAgICAgeWVhcjogdGhpcy5feWVhclZpZXdDb21wb25lbnQuX2ZpcnN0WWVhckluTGlzdFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8qKiBGdW5jdGlvbiB0aGF0IGFsbG93cyB0byBzd2l0Y2ggYWN0dWFsbHkgZGlzcGxheWVkIGxpc3Qgb2YgeWVhciB0byBwcmV2aW91cyB5ZWFyIGxpc3QqL1xuICAgIGRpc3BsYXlQcmV2aW91c1llYXJMaXN0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl95ZWFyVmlld0NvbXBvbmVudC5sb2FkUHJldmlvdXNZZWFyTGlzdCgpO1xuICAgICAgICB0aGlzLl9jdXJyZW50bHlEaXNwbGF5ZWQgPSB7XG4gICAgICAgICAgICBtb250aDogdGhpcy5fY3VycmVudGx5RGlzcGxheWVkLm1vbnRoLFxuICAgICAgICAgICAgeWVhcjogdGhpcy5feWVhclZpZXdDb21wb25lbnQuX2ZpcnN0WWVhckluTGlzdFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8qKiBGdW5jdGlvbiB0aGF0IGFsbG93cyB0byBzd2l0Y2ggYWN0dWFsbHkgZGlzcGxheWVkIGxpc3Qgb2YgeWVhciB0byBuZXh0IHllYXIgbGlzdCovXG4gICAgZGlzcGxheU5leHRZZWFyc0xpc3QoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2FnZ3JlZ2F0ZWRZZWFyVmlld0NvbXBvbmVudC5sb2FkTmV4dFllYXJzTGlzdCgpO1xuICAgIH1cblxuICAgIC8qKiBGdW5jdGlvbiB0aGF0IGFsbG93cyB0byBzd2l0Y2ggYWN0dWFsbHkgZGlzcGxheWVkIGxpc3Qgb2YgeWVhciB0byBwcmV2aW91cyB5ZWFyIGxpc3QqL1xuICAgIGRpc3BsYXlQcmV2aW91c1llYXJzTGlzdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fYWdncmVnYXRlZFllYXJWaWV3Q29tcG9uZW50LmxvYWRQcmV2aW91c1llYXJzTGlzdCgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEZ1bmN0aW9uIHRoYXQgYWxsb3dzIHRvIGNoYW5nZSBjdXJyZW50bHkgZGlzcGxheWVkIG1vbnRoL3llYXIgY29uZmlndXJhdGlvbixcbiAgICAgKiB3aGljaCBhcmUgY29ubmVjdGVkIHRvIGRheXMgZGlzcGxheWVkXG4gICAgICovXG4gICAgc2V0Q3VycmVudGx5RGlzcGxheWVkKGRhdGU6IE51bGxhYmxlPEQ+KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9kYXRlVGltZUFkYXB0ZXIuaXNWYWxpZChkYXRlKSkge1xuICAgICAgICAgICAgdGhpcy5fY3VycmVudGx5RGlzcGxheWVkID0ge1xuICAgICAgICAgICAgICAgIG1vbnRoOiB0aGlzLl9kYXRlVGltZUFkYXB0ZXIuZ2V0TW9udGgoZGF0ZSEpLFxuICAgICAgICAgICAgICAgIHllYXI6IHRoaXMuX2RhdGVUaW1lQWRhcHRlci5nZXRZZWFyKGRhdGUhKVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldCBpbml0aWFsIGZvY3VzIG9uIG9uZSBvZiB0aGUgY2FsZW5kYXIncyBlbGVtZW50XG4gICAgICovXG4gICAgaW5pdGlhbEZvY3VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9nZXRBY3RpdmVGb2N1c2FibGVWaWV3KCk/LnNldEZvY3VzT25DZWxsKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEZ1bmN0aW9uIHRoYXQgaGFuZGxlcyBjaGFuZ2VzIGZyb20gbW9udGggdmlldyBjaGlsZCBjb21wb25lbnQsIGNoYW5nZXMgYWN0dWFsIHZpZXcgYW5kIGNoYW5nZXMgY3VycmVudGx5IGRpc3BsYXllZCBtb250aFxuICAgICAqL1xuICAgIGhhbmRsZU1vbnRoVmlld0NoYW5nZShtb250aDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2N1cnJlbnRseURpc3BsYXllZCA9IHsgbW9udGgsIHllYXI6IHRoaXMuX2N1cnJlbnRseURpc3BsYXllZC55ZWFyIH07XG4gICAgICAgIHRoaXMuYWN0aXZlVmlldyA9ICdkYXknO1xuICAgICAgICB0aGlzLm9uRGF5c1ZpZXdTZWxlY3RlZCgpO1xuICAgICAgICB0aGlzLmFjdGl2ZVZpZXdDaGFuZ2UuZW1pdCh0aGlzLmFjdGl2ZVZpZXcpO1xuICAgIH1cblxuICAgIC8qKiBTZWxlY3QgeWVhciAqL1xuICAgIHNlbGVjdGVkWWVhcih5ZWFyU2VsZWN0ZWQ6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLmFjdGl2ZVZpZXcgPSAnZGF5JztcbiAgICAgICAgdGhpcy5fY3VycmVudGx5RGlzcGxheWVkLnllYXIgPSB5ZWFyU2VsZWN0ZWQ7XG4gICAgICAgIHRoaXMub25EYXlzVmlld1NlbGVjdGVkKCk7XG4gICAgfVxuXG4gICAgLyoqIFNlbGVjdCB5ZWFyIHJhbmdlICovXG4gICAgc2VsZWN0ZWRZZWFycyh5ZWFyc1NlbGVjdGVkOiBBZ2dyZWdhdGVkWWVhcik6IHZvaWQge1xuICAgICAgICB0aGlzLmFjdGl2ZVZpZXcgPSAneWVhcic7XG4gICAgICAgIHRoaXMuX2N1cnJlbnRseURpc3BsYXllZCA9IHtcbiAgICAgICAgICAgIC4uLnRoaXMuX2N1cnJlbnRseURpc3BsYXllZCxcbiAgICAgICAgICAgIHllYXI6IHllYXJzU2VsZWN0ZWQuc3RhcnRZZWFyXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMub25ZZWFyVmlld1NlbGVjdGVkKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBvbkRheXNWaWV3U2VsZWN0ZWQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgdGhpcy5fZGF5Vmlld0NvbXBvbmVudD8uc2V0Rm9jdXNPbkNlbGwoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG9uTW9udGhWaWV3U2VsZWN0ZWQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgdGhpcy5fbW9udGhWaWV3Q29tcG9uZW50Py5zZXRGb2N1c09uQ2VsbCgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgb25ZZWFyVmlld1NlbGVjdGVkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIHRoaXMuX3llYXJWaWV3Q29tcG9uZW50Py5zZXRGb2N1c09uQ2VsbCgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgb25ZZWFyc1JhbmdlVmlld1NlbGVjdGVkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIHRoaXMuX2FnZ3JlZ2F0ZWRZZWFyVmlld0NvbXBvbmVudD8uc2V0Rm9jdXNPbkNlbGwoKTtcbiAgICB9XG5cbiAgICAvKiogTWV0aG9kIHRoYXQgcHJvdmlkZXMgaW5mb3JtYXRpb24gaWYgbW9kZWwgc2VsZWN0ZWQgZGF0ZS9kYXRlcyBoYXZlIHByb3Blcmx5IHR5cGVzIGFuZCBhcmUgdmFsaWQgKi9cbiAgICBpc01vZGVsVmFsaWQoKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICh0aGlzLmNhbFR5cGUgPT09ICdzaW5nbGUnKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fZGF0ZVRpbWVBZGFwdGVyLmlzVmFsaWQodGhpcy5zZWxlY3RlZERhdGUpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmNhbFR5cGUgPT09ICdyYW5nZScpIHtcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFJhbmdlRGF0ZSAmJlxuICAgICAgICAgICAgICAgIHRoaXMuX2RhdGVUaW1lQWRhcHRlci5pc1ZhbGlkKHRoaXMuc2VsZWN0ZWRSYW5nZURhdGUuc3RhcnQpICYmXG4gICAgICAgICAgICAgICAgdGhpcy5fZGF0ZVRpbWVBZGFwdGVyLmlzVmFsaWQodGhpcy5zZWxlY3RlZFJhbmdlRGF0ZS5lbmQpXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2xpc3RlblRvTG9jYWxlQ2hhbmdlcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICAgICAgICB0aGlzLl9kYXRlVGltZUFkYXB0ZXIubG9jYWxlQ2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX2FkYXB0ZXJTdGFydGluZ0RheU9mV2VlayA9ICh0aGlzLl9kYXRlVGltZUFkYXB0ZXIuZ2V0Rmlyc3REYXlPZldlZWsoKSArIDEpIGFzIERheXNPZldlZWs7XG4gICAgICAgICAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBNZXRob2QgdGhhdCBzZXRzIHVwIHRoZSBjdXJyZW50bHkgZGlzcGxheWVkIHZhcmlhYmxlcywgbGlrZSBzaG93biBtb250aCBhbmQgeWVhci5cbiAgICAgKiBEYXkgZ3JpZCBpcyBiYXNlZCBvbiBjdXJyZW50bHkgZGlzcGxheWVkIG1vbnRoIGFuZCB5ZWFyXG4gICAgICovXG4gICAgcHJpdmF0ZSBfcHJlcGFyZURpc3BsYXllZFZpZXcoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmNhbFR5cGUgPT09ICdzaW5nbGUnICYmIHRoaXMuX2RhdGVUaW1lQWRhcHRlci5pc1ZhbGlkKHRoaXMuc2VsZWN0ZWREYXRlKSkge1xuICAgICAgICAgICAgdGhpcy5fY3VycmVudGx5RGlzcGxheWVkID0ge1xuICAgICAgICAgICAgICAgIHllYXI6IHRoaXMuX2RhdGVUaW1lQWRhcHRlci5nZXRZZWFyKHRoaXMuc2VsZWN0ZWREYXRlKSxcbiAgICAgICAgICAgICAgICBtb250aDogdGhpcy5fZGF0ZVRpbWVBZGFwdGVyLmdldE1vbnRoKHRoaXMuc2VsZWN0ZWREYXRlKVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnNlbGVjdGVkUmFuZ2VEYXRlICYmIHRoaXMuc2VsZWN0ZWRSYW5nZURhdGUuc3RhcnQpIHtcbiAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRseURpc3BsYXllZCA9IHtcbiAgICAgICAgICAgICAgICB5ZWFyOiB0aGlzLl9kYXRlVGltZUFkYXB0ZXIuZ2V0WWVhcih0aGlzLnNlbGVjdGVkUmFuZ2VEYXRlLnN0YXJ0KSxcbiAgICAgICAgICAgICAgICBtb250aDogdGhpcy5fZGF0ZVRpbWVBZGFwdGVyLmdldE1vbnRoKHRoaXMuc2VsZWN0ZWRSYW5nZURhdGUuc3RhcnQpXG4gICAgICAgICAgICB9O1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuc2VsZWN0ZWRSYW5nZURhdGUgJiYgdGhpcy5zZWxlY3RlZFJhbmdlRGF0ZS5lbmQpIHtcbiAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRseURpc3BsYXllZCA9IHtcbiAgICAgICAgICAgICAgICB5ZWFyOiB0aGlzLl9kYXRlVGltZUFkYXB0ZXIuZ2V0WWVhcih0aGlzLnNlbGVjdGVkUmFuZ2VEYXRlLmVuZCksXG4gICAgICAgICAgICAgICAgbW9udGg6IHRoaXMuX2RhdGVUaW1lQWRhcHRlci5nZXRNb250aCh0aGlzLnNlbGVjdGVkUmFuZ2VEYXRlLmVuZClcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCB0b2RheSA9IHRoaXMuX2RhdGVUaW1lQWRhcHRlci50b2RheSgpO1xuICAgICAgICAgICAgdGhpcy5fY3VycmVudGx5RGlzcGxheWVkID0ge1xuICAgICAgICAgICAgICAgIHllYXI6IHRoaXMuX2RhdGVUaW1lQWRhcHRlci5nZXRZZWFyKHRvZGF5KSxcbiAgICAgICAgICAgICAgICBtb250aDogdGhpcy5fZGF0ZVRpbWVBZGFwdGVyLmdldE1vbnRoKHRvZGF5KVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZ2V0QWN0aXZlRm9jdXNhYmxlVmlldygpOiBGb2N1c2FibGVDYWxlbmRhclZpZXcgfCBudWxsIHtcbiAgICAgICAgc3dpdGNoICh0aGlzLmFjdGl2ZVZpZXcpIHtcbiAgICAgICAgICAgIGNhc2UgJ2RheSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2RheVZpZXdDb21wb25lbnQ7XG4gICAgICAgICAgICBjYXNlICdtb250aCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX21vbnRoVmlld0NvbXBvbmVudDtcbiAgICAgICAgICAgIGNhc2UgJ3llYXInOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl95ZWFyVmlld0NvbXBvbmVudDtcbiAgICAgICAgICAgIGNhc2UgJ2FnZ3JlZ2F0ZWRZZWFyJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fYWdncmVnYXRlZFllYXJWaWV3Q29tcG9uZW50O1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfc2V0TmF2aWdhdGlvbkJ1dHRvbnNTdGF0ZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucHJldmlvdXNCdXR0b25EaXNhYmxlZCA9XG4gICAgICAgICAgICB0eXBlb2YgdGhpcy5wcmV2aW91c0J1dHRvbkRpc2FibGVGdW5jdGlvbiA9PT0gJ2Z1bmN0aW9uJyAmJlxuICAgICAgICAgICAgdGhpcy5wcmV2aW91c0J1dHRvbkRpc2FibGVGdW5jdGlvbih0aGlzLnNlbGVjdGVkRGF0ZSwgdGhpcy5fY3VycmVudGx5RGlzcGxheWVkLCB0aGlzLmFjdGl2ZVZpZXcpO1xuICAgICAgICB0aGlzLm5leHRCdXR0b25EaXNhYmxlZCA9XG4gICAgICAgICAgICB0eXBlb2YgdGhpcy5uZXh0QnV0dG9uRGlzYWJsZUZ1bmN0aW9uID09PSAnZnVuY3Rpb24nICYmXG4gICAgICAgICAgICB0aGlzLm5leHRCdXR0b25EaXNhYmxlRnVuY3Rpb24odGhpcy5zZWxlY3RlZERhdGUsIHRoaXMuX2N1cnJlbnRseURpc3BsYXllZCwgdGhpcy5hY3RpdmVWaWV3KTtcbiAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9mb2N1c091dChldmVudDogRm9jdXNFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC5yZWxhdGVkVGFyZ2V0KSkge1xuICAgICAgICAgICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxmZC1jYWxlbmRhci1oZWFkZXJcbiAgICBbY3VycmVudGx5RGlzcGxheWVkXT1cIl9jdXJyZW50bHlEaXNwbGF5ZWRcIlxuICAgIFthY3RpdmVWaWV3XT1cImFjdGl2ZVZpZXdcIlxuICAgIFtpZF09XCJpZFwiXG4gICAgW2NhbGVuZGFyWWVhckdyaWRdPVwieWVhckdyaWRcIlxuICAgIFttb2JpbGVMYW5kc2NhcGVdPVwibW9iaWxlTGFuZHNjYXBlXCJcbiAgICAoY2xvc2VDbGlja2VkKT1cImNsb3NlQ2xpY2tlZC5lbWl0KClcIlxuICAgIChuZXh0Q2xpY2tlZCk9XCJoYW5kbGVOZXh0QXJyb3dDbGljaygpXCJcbiAgICAocHJldmlvdXNDbGlja2VkKT1cImhhbmRsZVByZXZpb3VzQXJyb3dDbGljaygpXCJcbiAgICBbcHJldmlvdXNCdXR0b25EaXNhYmxlZF09XCJwcmV2aW91c0J1dHRvbkRpc2FibGVkXCJcbiAgICBbbmV4dEJ1dHRvbkRpc2FibGVkXT1cIm5leHRCdXR0b25EaXNhYmxlZFwiXG4gICAgKGFjdGl2ZVZpZXdDaGFuZ2UpPVwiaGFuZGxlQWN0aXZlVmlld0NoYW5nZSgkZXZlbnQpXCJcbj48L2ZkLWNhbGVuZGFyLWhlYWRlcj5cbjxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImFjdGl2ZVZpZXdcIiAqbmdJZj1cIl9jdXJyZW50bHlEaXNwbGF5ZWRcIj5cbiAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiZmQtY2FsZW5kYXJfX2NvbnRlbnRcIlxuICAgICAgICBbY2xhc3MuZmQtY2FsZW5kYXJfX2NvbnRlbnQtLWRhdGVzXT1cImFjdGl2ZVZpZXcgPT09ICdkYXknXCJcbiAgICAgICAgW2NsYXNzLmZkLWNhbGVuZGFyX19jb250ZW50LS1tb250aHNdPVwiYWN0aXZlVmlldyA9PT0gJ21vbnRoJ1wiXG4gICAgICAgIFtjbGFzcy5mZC1jYWxlbmRhcl9fY29udGVudC0teWVhcnNdPVwiYWN0aXZlVmlldyA9PT0gJ3llYXInIHx8IGFjdGl2ZVZpZXcgPT09ICdhZ2dyZWdhdGVkWWVhcidcIlxuICAgID5cbiAgICAgICAgPGZkLWNhbGVuZGFyLWRheS12aWV3XG4gICAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ2RheSdcIlxuICAgICAgICAgICAgW3NlbGVjdGVkRGF0ZV09XCJzZWxlY3RlZERhdGVcIlxuICAgICAgICAgICAgW3Nob3dXZWVrTnVtYmVyc109XCJzaG93V2Vla051bWJlcnNcIlxuICAgICAgICAgICAgW21hcmtXZWVrZW5kc109XCJtYXJrV2Vla2VuZHNcIlxuICAgICAgICAgICAgKHNlbGVjdGVkRGF0ZUNoYW5nZSk9XCJzZWxlY3RlZERhdGVDaGFuZ2VkKCRldmVudClcIlxuICAgICAgICAgICAgW3NlbGVjdGVkUmFuZ2VEYXRlXT1cInNlbGVjdGVkUmFuZ2VEYXRlXCJcbiAgICAgICAgICAgIChzZWxlY3RlZFJhbmdlRGF0ZUNoYW5nZSk9XCJzZWxlY3RlZFJhbmdlRGF0ZUNoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICBbY3VycmVudGx5RGlzcGxheWVkXT1cIl9jdXJyZW50bHlEaXNwbGF5ZWRcIlxuICAgICAgICAgICAgW3N0YXJ0aW5nRGF5T2ZXZWVrXT1cImdldFdlZWtTdGFydERheSgpXCJcbiAgICAgICAgICAgIFtkaXNhYmxlRnVuY3Rpb25dPVwiZGlzYWJsZUZ1bmN0aW9uXCJcbiAgICAgICAgICAgIFtkaXNhYmxlUmFuZ2VFbmRGdW5jdGlvbl09XCJkaXNhYmxlUmFuZ2VFbmRGdW5jdGlvblwiXG4gICAgICAgICAgICBbZGlzYWJsZVJhbmdlU3RhcnRGdW5jdGlvbl09XCJkaXNhYmxlUmFuZ2VTdGFydEZ1bmN0aW9uXCJcbiAgICAgICAgICAgIFtjYWxUeXBlXT1cImNhbFR5cGVcIlxuICAgICAgICAgICAgW2lkXT1cImlkXCJcbiAgICAgICAgICAgIFtyYW5nZUhvdmVyRWZmZWN0XT1cInJhbmdlSG92ZXJFZmZlY3RcIlxuICAgICAgICAgICAgW3NwZWNpYWxEYXlzUnVsZXNdPVwic3BlY2lhbERheXNSdWxlc1wiXG4gICAgICAgICAgICBbZm9jdXNFc2NhcGVGdW5jdGlvbl09XCJlc2NhcGVGb2N1c0Z1bmN0aW9uXCJcbiAgICAgICAgICAgIChuZXh0TW9udGhTZWxlY3QpPVwiZGlzcGxheU5leHRNb250aCgpXCJcbiAgICAgICAgICAgIChwcmV2aW91c01vbnRoU2VsZWN0KT1cImRpc3BsYXlQcmV2aW91c01vbnRoKClcIlxuICAgICAgICA+PC9mZC1jYWxlbmRhci1kYXktdmlldz5cbiAgICAgICAgPGZkLWNhbGVuZGFyLW1vbnRoLXZpZXdcbiAgICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCInbW9udGgnXCJcbiAgICAgICAgICAgIFttb250aFNlbGVjdGVkXT1cIl9jdXJyZW50bHlEaXNwbGF5ZWQubW9udGhcIlxuICAgICAgICAgICAgW3llYXJdPVwiX2N1cnJlbnRseURpc3BsYXllZC55ZWFyXCJcbiAgICAgICAgICAgIFtpZF09XCJpZFwiXG4gICAgICAgICAgICBbZm9jdXNFc2NhcGVGdW5jdGlvbl09XCJlc2NhcGVGb2N1c0Z1bmN0aW9uXCJcbiAgICAgICAgICAgIChtb250aENsaWNrZWQpPVwiaGFuZGxlTW9udGhWaWV3Q2hhbmdlKCRldmVudClcIlxuICAgICAgICA+PC9mZC1jYWxlbmRhci1tb250aC12aWV3PlxuICAgICAgICA8ZmQtY2FsZW5kYXIteWVhci12aWV3XG4gICAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ3llYXInXCJcbiAgICAgICAgICAgIFt5ZWFyU2VsZWN0ZWRdPVwiX2N1cnJlbnRseURpc3BsYXllZC55ZWFyXCJcbiAgICAgICAgICAgIFt5ZWFyVmlld0dyaWRdPVwieWVhckdyaWRcIlxuICAgICAgICAgICAgW2lkXT1cImlkXCJcbiAgICAgICAgICAgIFtmb2N1c0VzY2FwZUZ1bmN0aW9uXT1cImVzY2FwZUZvY3VzRnVuY3Rpb25cIlxuICAgICAgICAgICAgKHllYXJDbGlja2VkKT1cInNlbGVjdGVkWWVhcigkZXZlbnQpXCJcbiAgICAgICAgPlxuICAgICAgICA8L2ZkLWNhbGVuZGFyLXllYXItdmlldz5cbiAgICAgICAgPGZkLWNhbGVuZGFyLWFnZ3JlZ2F0ZWQteWVhci12aWV3XG4gICAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ2FnZ3JlZ2F0ZWRZZWFyJ1wiXG4gICAgICAgICAgICAoeWVhcnNDbGlja2VkKT1cInNlbGVjdGVkWWVhcnMoJGV2ZW50KVwiXG4gICAgICAgICAgICBbeWVhclNlbGVjdGVkXT1cIl9jdXJyZW50bHlEaXNwbGF5ZWQueWVhclwiXG4gICAgICAgICAgICBbeWVhclZpZXdHcmlkXT1cInllYXJHcmlkXCJcbiAgICAgICAgICAgIFthZ2dyZWdhdGVkWWVhcnNWaWV3R3JpZF09XCJhZ2dyZWdhdGVkWWVhckdyaWRcIlxuICAgICAgICAgICAgW2lkXT1cImlkXCJcbiAgICAgICAgICAgIFtmb2N1c0VzY2FwZUZ1bmN0aW9uXT1cImVzY2FwZUZvY3VzRnVuY3Rpb25cIlxuICAgICAgICA+XG4gICAgICAgIDwvZmQtY2FsZW5kYXItYWdncmVnYXRlZC15ZWFyLXZpZXc+XG4gICAgPC9kaXY+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
614
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvY2FsZW5kYXIvY2FsZW5kYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvY2FsZW5kYXIvY2FsZW5kYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osVUFBVSxFQUNWLFdBQVcsRUFDWCxNQUFNLEVBQ04sS0FBSyxFQUlMLFFBQVEsRUFDUixNQUFNLEVBRU4sU0FBUyxFQUNULGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGFBQWEsRUFBRSxpQkFBaUIsRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBQ25HLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFcEMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGVBQWUsRUFBbUIsTUFBTSxnQ0FBZ0MsQ0FBQztBQUdyRyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFJaEQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sZ0VBQWdFLENBQUM7QUFDMUcsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sa0VBQWtFLENBQUM7QUFDN0csT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sb0VBQW9FLENBQUM7QUFDaEgsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDdEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxtQ0FBbUMsRUFBRSxNQUFNLHdGQUF3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QkFBdUI7c0JBRC9CLE1BQU07Z0JBS0UsaUJBQWlCO3NCQUR6QixNQUFNO2dCQUtFLGFBQWE7c0JBRHJCLE1BQU07Z0JBS0UsWUFBWTtzQkFEcEIsTUFBTTtnQkFLUCxpQkFBaUI7c0JBRGhCLFNBQVM7dUJBQUMsd0JBQXdCO2dCQUtuQyxtQkFBbUI7c0JBRGxCLFNBQVM7dUJBQUMsMEJBQTBCO2dCQUtyQyxrQkFBa0I7c0JBRGpCLFNBQVM7dUJBQUMseUJBQXlCO2dCQUtwQyw0QkFBNEI7c0JBRDNCLFNBQVM7dUJBQUMsbUNBQW1DO2dCQUs5Qyx3QkFBd0I7c0JBRHZCLFNBQVM7dUJBQUMsdUJBQXVCO2dCQVVsQyw2QkFBNkI7c0JBRDVCLEtBQUs7Z0JBVU4seUJBQXlCO3NCQUR4QixLQUFLO2dCQThDTixtQkFBbUI7c0JBRGxCLEtBQUs7Z0JBV04sZUFBZTtzQkFEZCxLQUFLO2dCQVFOLHlCQUF5QjtzQkFEeEIsS0FBSztnQkFRTix1QkFBdUI7c0JBRHRCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBmb3J3YXJkUmVmLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPcHRpb25hbCxcbiAgICBPdXRwdXQsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMSURBVE9SUywgTkdfVkFMVUVfQUNDRVNTT1IsIFZhbGlkYXRvciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBEQVRFX1RJTUVfRk9STUFUUywgRGF0ZXRpbWVBZGFwdGVyLCBEYXRlVGltZUZvcm1hdHMgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvZGF0ZXRpbWUnO1xuaW1wb3J0IHsgU3BlY2lhbERheVJ1bGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvc2hhcmVkJztcblxuaW1wb3J0IHsgRGF0ZVJhbmdlIH0gZnJvbSAnLi9tb2RlbHMvZGF0ZS1yYW5nZSc7XG5pbXBvcnQgeyBDYWxlbmRhckN1cnJlbnQgfSBmcm9tICcuL21vZGVscy9jYWxlbmRhci1jdXJyZW50JztcbmltcG9ydCB7IENhbGVuZGFyWWVhckdyaWQgfSBmcm9tICcuL21vZGVscy9jYWxlbmRhci15ZWFyLWdyaWQnO1xuaW1wb3J0IHsgQWdncmVnYXRlZFllYXIgfSBmcm9tICcuL21vZGVscy9hZ2dyZWdhdGVkLXllYXInO1xuaW1wb3J0IHsgQ2FsZW5kYXJEYXlWaWV3Q29tcG9uZW50IH0gZnJvbSAnLi9jYWxlbmRhci12aWV3cy9jYWxlbmRhci1kYXktdmlldy9jYWxlbmRhci1kYXktdmlldy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FsZW5kYXJZZWFyVmlld0NvbXBvbmVudCB9IGZyb20gJy4vY2FsZW5kYXItdmlld3MvY2FsZW5kYXIteWVhci12aWV3L2NhbGVuZGFyLXllYXItdmlldy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FsZW5kYXJNb250aFZpZXdDb21wb25lbnQgfSBmcm9tICcuL2NhbGVuZGFyLXZpZXdzL2NhbGVuZGFyLW1vbnRoLXZpZXcvY2FsZW5kYXItbW9udGgtdmlldy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FsZW5kYXJIZWFkZXJDb21wb25lbnQgfSBmcm9tICcuL2NhbGVuZGFyLWhlYWRlci9jYWxlbmRhci1oZWFkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IENhbGVuZGFyU2VydmljZSB9IGZyb20gJy4vY2FsZW5kYXIuc2VydmljZSc7XG5pbXBvcnQgeyBjcmVhdGVNaXNzaW5nRGF0ZUltcGxlbWVudGF0aW9uRXJyb3IgfSBmcm9tICcuL2NhbGVuZGFyLWVycm9ycyc7XG5pbXBvcnQgeyBDYWxlbmRhckFnZ3JlZ2F0ZWRZZWFyVmlld0NvbXBvbmVudCB9IGZyb20gJy4vY2FsZW5kYXItdmlld3MvY2FsZW5kYXItYWdncmVnYXRlZC15ZWFyLXZpZXcvY2FsZW5kYXItYWdncmVnYXRlZC15ZWFyLXZpZXcuY29tcG9uZW50JztcbmltcG9ydCB7IERpc2FibGVEYXRlRnVuY3Rpb24sIEVzY2FwZUZvY3VzRnVuY3Rpb24sIEZvY3VzYWJsZUNhbGVuZGFyVmlldyB9IGZyb20gJy4vbW9kZWxzL2NvbW1vbic7XG5pbXBvcnQgeyBDYWxlbmRhclR5cGUsIERheXNPZldlZWssIEZkQ2FsZW5kYXJWaWV3LCBOYXZpZ2F0aW9uQnV0dG9uRGlzYWJsZUZ1bmN0aW9uIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQge1xuICAgIENvbnRlbnREZW5zaXR5TW9kdWxlLFxuICAgIENvbnRlbnREZW5zaXR5T2JzZXJ2ZXIsXG4gICAgY29udGVudERlbnNpdHlPYnNlcnZlclByb3ZpZGVyc1xufSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvY29udGVudC1kZW5zaXR5JztcbmltcG9ydCB7IE51bGxhYmxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgTmdJZiwgTmdTd2l0Y2gsIE5nU3dpdGNoQ2FzZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbmxldCBjYWxlbmRhclVuaXF1ZUlkID0gMDtcblxuLyoqXG4gKiBNb250aHM6IDEgPSBKYW51YXJ5LCAxMiA9IGRlY2VtYmVyLlxuICogRGF5czogMSA9IFN1bmRheSwgNyA9IFNhdHVyZGF5XG4gKlxuICogQ2FsZW5kYXIgY29tcG9uZW50IHVzZWQgZm9yIHNlbGVjdGluZyBkYXRlcywgdHlwaWNhbGx5IHVzZWQgYnkgdGhlIERhdGVQaWNrZXIgYW5kIERhdGVUaW1lUGlja2VyIGNvbXBvbmVudHMuXG4gKiBTdXBwb3J0cyB0aGUgQW5ndWxhciBmb3JtcyBtb2R1bGUsIGVuYWJsaW5nIGZvcm0gdmFsaWRpdHksIG5nTW9kZWwsIGV0Yy5cbiAqIGBgYGh0bWxcbiAqIDxmZC1jYWxlbmRhcj48L2ZkLWNhbGVuZGFyPlxuICogYGBgXG4gKlxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkLWNhbGVuZGFyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY2FsZW5kYXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2NhbGVuZGFyLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBDYWxlbmRhckNvbXBvbmVudCksXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQ2FsZW5kYXJDb21wb25lbnQpLFxuICAgICAgICAgICAgbXVsdGk6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgQ2FsZW5kYXJTZXJ2aWNlLFxuICAgICAgICBjb250ZW50RGVuc2l0eU9ic2VydmVyUHJvdmlkZXJzKClcbiAgICBdLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJyhmb2N1c291dCknOiAnX2ZvY3VzT3V0KCRldmVudCknLFxuICAgICAgICAnW2F0dHIuaWRdJzogJ2lkJyxcbiAgICAgICAgY2xhc3M6ICdmZC1jYWxlbmRhciBmZC1oYXMtZGlzcGxheS1ibG9jaydcbiAgICB9LFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb250ZW50RGVuc2l0eU1vZHVsZSxcbiAgICAgICAgQ2FsZW5kYXJIZWFkZXJDb21wb25lbnQsXG4gICAgICAgIE5nSWYsXG4gICAgICAgIE5nU3dpdGNoLFxuICAgICAgICBOZ1N3aXRjaENhc2UsXG4gICAgICAgIENhbGVuZGFyRGF5Vmlld0NvbXBvbmVudCxcbiAgICAgICAgQ2FsZW5kYXJNb250aFZpZXdDb21wb25lbnQsXG4gICAgICAgIENhbGVuZGFyWWVhclZpZXdDb21wb25lbnQsXG4gICAgICAgIENhbGVuZGFyQWdncmVnYXRlZFllYXJWaWV3Q29tcG9uZW50XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBDYWxlbmRhckNvbXBvbmVudDxEPiBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yLCBPbkRlc3Ryb3kge1xuICAgIC8qKiBUaGUgY3VycmVudGx5IHNlbGVjdGVkIGRhdGUgbW9kZWwgaW4gc2luZ2xlIG1vZGUuICovXG4gICAgQElucHV0KClcbiAgICBzZWxlY3RlZERhdGU6IE51bGxhYmxlPEQ+O1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB1c2VyIHdhbnRzIHRvIG1hcmsgc3VuZGF5L3NhdHVyZGF5IHdpdGggYGZkLWNhbGVuZGFyX19pdGVtLS13ZWVrZW5kYCBjbGFzc1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgbWFya1dlZWtlbmRzID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdXNlciB3YW50cyB0byBzaG93IHdlZWsgbnVtYmVycyBuZXh0IHRvIGRheXNcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNob3dXZWVrTnVtYmVycyA9IGZhbHNlO1xuXG4gICAgLyoqIFdoZXRoZXIgY2FsZW5kYXIgaXMgdXNlZCBpbnNpZGUgbW9iaWxlIGluIGxhbmRzY2FwZSBtb2RlLCBpdCBhbHNvIGFkZHMgY2xvc2UgYnV0dG9uIG9uIHJpZ2h0IHNpZGUgKi9cbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZmQtY2FsZW5kYXItLW1vYmlsZS1sYW5kc2NhcGUnKVxuICAgIG1vYmlsZUxhbmRzY2FwZSA9IGZhbHNlO1xuXG4gICAgLyoqIFdoZXRoZXIgY2FsZW5kYXIgaXMgdXNlZCBpbnNpZGUgbW9iaWxlIGluIHBvcnRyYWl0IG1vZGUgKi9cbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZmQtY2FsZW5kYXItLW1vYmlsZS1wb3J0cmFpdCcpXG4gICAgbW9iaWxlUG9ydHJhaXQgPSBmYWxzZTtcblxuICAgIC8qKiBUaGUgY3VycmVudGx5IHNlbGVjdGVkIEZkRGF0ZXMgbW9kZWwgc3RhcnQgYW5kIGVuZCBpbiByYW5nZSBtb2RlLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2VsZWN0ZWRSYW5nZURhdGU6IERhdGVSYW5nZTxEPjtcblxuICAgIC8qKiBBY3R1YWxseSBzaG93biBhY3RpdmUgdmlldyBvbmUgb2YgJ2RheScgfCAnbW9udGgnIHwgJ3llYXInICovXG4gICAgQElucHV0KClcbiAgICBhY3RpdmVWaWV3OiBGZENhbGVuZGFyVmlldyA9ICdkYXknO1xuXG4gICAgLyoqIFRoZSBkYXkgb2YgdGhlIHdlZWsgdGhlIGNhbGVuZGFyIHNob3VsZCBzdGFydCBvbi4gMSByZXByZXNlbnRzIFN1bmRheSwgMiBpcyBNb25kYXksIDMgaXMgVHVlc2RheSwgYW5kIHNvIG9uLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgc3RhcnRpbmdEYXlPZldlZWs6IERheXNPZldlZWs7XG5cbiAgICAvKiogVGhlIHR5cGUgb2YgY2FsZW5kYXIsICdzaW5nbGUnIGZvciBzaW5nbGUgZGF0ZSBzZWxlY3Rpb24gb3IgJ3JhbmdlJyBmb3IgYSByYW5nZSBvZiBkYXRlcy4gKi9cbiAgICBASW5wdXQoKVxuICAgIGNhbFR5cGU6IENhbGVuZGFyVHlwZSA9ICdzaW5nbGUnO1xuXG4gICAgLyoqIElkIG9mIHRoZSBjYWxlbmRhci4gSWYgbm9uZSBpcyBwcm92aWRlZCwgb25lIHdpbGwgYmUgZ2VuZXJhdGVkLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgaWQgPSAnZmQtY2FsZW5kYXItJyArIGNhbGVuZGFyVW5pcXVlSWQrKztcblxuICAgIC8qKlxuICAgICAqIFNwZWNpYWwgZGF5cyBtYXJrLCBpdCBjYW4gYmUgdXNlZCBieSBwYXNzaW5nIGFycmF5IG9mIG9iamVjdCB3aXRoXG4gICAgICogU3BlY2lhbCBkYXkgbnVtYmVyLCBsaXN0IDEtMjAgW2NsYXNzOmBmZC1jYWxlbmRhcl9faXRlbS0tbGVnZW5kLXt7bnVtYmVyfX1gXSBpcyBhdmFpbGFibGUgdGhlcmU6XG4gICAgICogaHR0cHM6Ly9zYXAuZ2l0aHViLmlvL2Z1bmRhbWVudGFsLXN0eWxlcy9jb21wb25lbnRzL2NhbGVuZGFyLmh0bWwgY2FsZW5kYXIgc3BlY2lhbCBkYXlzIHNlY3Rpb25cbiAgICAgKiBSdWxlIGFjY2VwdHMgbWV0aG9kIHdpdGggRCBvYmplY3QgYXMgYSBwYXJhbWV0ZXIuIGV4OlxuICAgICAqIGBydWxlOiAoZmREYXRlOiBEKSA9PiBmZERhdGUuZ2V0RGF5KCkgPT09IDFgLCB3aGljaCB3aWxsIG1hcmsgYWxsIHN1bmRheXMgYXMgc3BlY2lhbCBkYXkuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzcGVjaWFsRGF5c1J1bGVzOiBTcGVjaWFsRGF5UnVsZTxEPltdID0gW107XG5cbiAgICAvKipcbiAgICAgKiBPYmplY3QgdG8gY3VzdG9taXplIHllYXIgZ3JpZCxcbiAgICAgKiBSb3csIENvbHVtbnMgYW5kIG1ldGhvZCB0byBkaXNwbGF5IHllYXIgY2FuIGJlIG1vZGlmaWVkXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICB5ZWFyR3JpZDogQ2FsZW5kYXJZZWFyR3JpZCA9IHtcbiAgICAgICAgcm93czogNCxcbiAgICAgICAgY29sczogNVxuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBPYmplY3QgdG8gY3VzdG9taXplIGFnZ3JlZ2F0ZWQgeWVhciBncmlkLFxuICAgICAqIFJvdywgQ29sdW1ucyBhbmQgbWV0aG9kIHRvIGRpc3BsYXkgeWVhciBjYW4gYmUgbW9kaWZpZWRcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGFnZ3JlZ2F0ZWRZZWFyR3JpZDogQ2FsZW5kYXJZZWFyR3JpZCA9IHtcbiAgICAgICAgcm93czogNCxcbiAgICAgICAgY29sczogM1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHVzZXIgd2FudHMgdG8gbWFyayBkYXkgY2VsbHMgb24gaG92ZXIuXG4gICAgICogV29ya3Mgb25seSBvbiByYW5nZSBtb2RlLCB3aGVuIHN0YXJ0IGRhdGUgaXMgc2VsZWN0ZWQgb24gRGF5IFZpZXcuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICByYW5nZUhvdmVyRWZmZWN0ID0gZmFsc2U7XG5cbiAgICAvKiogRXZlbnQgdGhyb3duIGV2ZXJ5IHRpbWUgYWN0aXZlIHZpZXcgaXMgY2hhbmdlZCAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHJlYWRvbmx5IGFjdGl2ZVZpZXdDaGFuZ2U6IEV2ZW50RW1pdHRlcjxGZENhbGVuZGFyVmlldz4gPSBuZXcgRXZlbnRFbWl0dGVyPEZkQ2FsZW5kYXJWaWV3PigpO1xuXG4gICAgLyoqIEV2ZW50IHRocm93biBldmVyeSB0aW1lIHNlbGVjdGVkIGRhdGUgaW4gc2luZ2xlIG1vZGUgaXMgY2hhbmdlZCAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHJlYWRvbmx5IHNlbGVjdGVkRGF0ZUNoYW5nZTogRXZlbnRFbWl0dGVyPEQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxEPigpO1xuXG4gICAgLyoqIEV2ZW50IHRocm93biBldmVyeSB0aW1lIHNlbGVjdGVkIGZpcnN0IG9yIGxhc3QgZGF0ZSBpbiByYW5nZSBtb2RlIGlzIGNoYW5nZWQgKi9cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSBzZWxlY3RlZFJhbmdlRGF0ZUNoYW5nZTogRXZlbnRFbWl0dGVyPERhdGVSYW5nZTxEPj4gPSBuZXcgRXZlbnRFbWl0dGVyPERhdGVSYW5nZTxEPj4oKTtcblxuICAgIC8qKiBFdmVudCB0aHJvd24gZXZlcnkgdGltZSB3aGVuIHZhbHVlIGlzIG92ZXJ3cml0dGVuIGZyb20gb3V0c2lkZSBhbmQgdGhyb3cgYmFjayBpc1ZhbGlkICovXG4gICAgQE91dHB1dCgpXG4gICAgcmVhZG9ubHkgaXNWYWxpZERhdGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAgIC8qKiBFdmVudCB0aHJvd24gZXZlcnkgdGltZSB3aGVuIGNhbGVuZGFyIHNob3VsZCBiZSBjbG9zZWQgKi9cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSBjbG9zZUNhbGVuZGFyOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICAvKiogRXZlbnQgdGhyb3duLCB3aGVuIGNsb3NlIGJ1dHRvbiBpcyBjbGlja2VkICovXG4gICAgQE91dHB1dCgpXG4gICAgcmVhZG9ubHkgY2xvc2VDbGlja2VkOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoQ2FsZW5kYXJEYXlWaWV3Q29tcG9uZW50KVxuICAgIF9kYXlWaWV3Q29tcG9uZW50OiBDYWxlbmRhckRheVZpZXdDb21wb25lbnQ8RD47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoQ2FsZW5kYXJNb250aFZpZXdDb21wb25lbnQpXG4gICAgX21vbnRoVmlld0NvbXBvbmVudDogQ2FsZW5kYXJNb250aFZpZXdDb21wb25lbnQ8RD47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoQ2FsZW5kYXJZZWFyVmlld0NvbXBvbmVudClcbiAgICBfeWVhclZpZXdDb21wb25lbnQ6IENhbGVuZGFyWWVhclZpZXdDb21wb25lbnQ8RD47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoQ2FsZW5kYXJBZ2dyZWdhdGVkWWVhclZpZXdDb21wb25lbnQpXG4gICAgX2FnZ3JlZ2F0ZWRZZWFyVmlld0NvbXBvbmVudDogQ2FsZW5kYXJBZ2dyZWdhdGVkWWVhclZpZXdDb21wb25lbnQ8RD47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoQ2FsZW5kYXJIZWFkZXJDb21wb25lbnQpXG4gICAgX2NhbGVuZGFySGVhZGVyQ29tcG9uZW50OiBDYWxlbmRhckhlYWRlckNvbXBvbmVudDxEPjtcblxuICAgIC8qKlxuICAgICAqIEZ1bmN0aW9uIHVzZWQgdG8gZGlzYWJsZSBwcmV2aW91cyBidXR0b24gaW4gdGhlIGNhbGVuZGFyIGhlYWRlci5cbiAgICAgKiBAcGFyYW0gZGF0ZSBzZWxlY3RlZCBkYXRlXG4gICAgICogQHBhcmFtIGN1cnJlbnRseURpc3BsYXllZERhdGUgY3VycmVudGx5IGRpc3BsYXllZCBkYXRlXG4gICAgICogQHBhcmFtIGFjdGl2ZVZpZXcgY3VycmVudCB2aWV3IG9mIGNhbGVuZGFyXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwcmV2aW91c0J1dHRvbkRpc2FibGVGdW5jdGlvbjogTmF2aWdhdGlvbkJ1dHRvbkRpc2FibGVGdW5jdGlvbjxEPjtcblxuICAgIC8qKlxuICAgICAqIEZ1bmN0aW9uIHVzZWQgdG8gZGlzYWJsZSBuZXh0IGJ1dHRvbiBpbiB0aGUgY2FsZW5kYXIgaGVhZGVyLlxuICAgICAqIEBwYXJhbSBkYXRlIHNlbGVjdGVkIGRhdGVcbiAgICAgKiBAcGFyYW0gY3VycmVudGx5RGlzcGxheWVkRGF0ZSBjdXJyZW50bHkgZGlzcGxheWVkIGRhdGVcbiAgICAgKiBAcGFyYW0gYWN0aXZlVmlldyBjdXJyZW50IHZpZXcgb2YgY2FsZW5kYXJcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIG5leHRCdXR0b25EaXNhYmxlRnVuY3Rpb246IE5hdmlnYXRpb25CdXR0b25EaXNhYmxlRnVuY3Rpb248RD47XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQ3VycmVudGx5IGRpc3BsYXllZCBkYXlzIGRlcGVuZGluZyBvbiBtb250aCBhbmQgeWVhclxuICAgICAqL1xuICAgIF9jdXJyZW50bHlEaXNwbGF5ZWQ6IENhbGVuZGFyQ3VycmVudDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJldmlvdXNCdXR0b25EaXNhYmxlZDogYm9vbGVhbjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmV4dEJ1dHRvbkRpc2FibGVkOiBib29sZWFuO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zdWJzY3JpcHRpb25zID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9hZGFwdGVyU3RhcnRpbmdEYXlPZldlZWs6IERheXNPZldlZWs7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBwcml2YXRlIF9jaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIF9jb250ZW50RGVuc2l0eU9ic2VydmVyOiBDb250ZW50RGVuc2l0eU9ic2VydmVyLFxuICAgICAgICAvLyBVc2UgQE9wdGlvbmFsIHRvIGF2b2lkIGFuZ3VsYXIgaW5qZWN0aW9uIGVycm9yIG1lc3NhZ2UgYW5kIHRocm93IG91ciBvd24gd2hpY2ggaXMgbW9yZSBwcmVjaXNlIG9uZVxuICAgICAgICBAT3B0aW9uYWwoKSBwcml2YXRlIF9kYXRlVGltZUFkYXB0ZXI6IERhdGV0aW1lQWRhcHRlcjxEPixcbiAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChEQVRFX1RJTUVfRk9STUFUUykgcHJpdmF0ZSBfZGF0ZVRpbWVGb3JtYXRzOiBEYXRlVGltZUZvcm1hdHNcbiAgICApIHtcbiAgICAgICAgaWYgKCF0aGlzLl9kYXRlVGltZUFkYXB0ZXIpIHtcbiAgICAgICAgICAgIHRocm93IGNyZWF0ZU1pc3NpbmdEYXRlSW1wbGVtZW50YXRpb25FcnJvcignRGF0ZVRpbWVBZGFwdGVyJyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLl9kYXRlVGltZUZvcm1hdHMpIHtcbiAgICAgICAgICAgIHRocm93IGNyZWF0ZU1pc3NpbmdEYXRlSW1wbGVtZW50YXRpb25FcnJvcignREFURV9USU1FX0ZPUk1BVFMnKTtcbiAgICAgICAgfVxuICAgICAgICBfY29udGVudERlbnNpdHlPYnNlcnZlci5zdWJzY3JpYmUoKTtcbiAgICAgICAgLy8gc2V0IGRlZmF1bHQgdmFsdWVcbiAgICAgICAgdGhpcy5fYWRhcHRlclN0YXJ0aW5nRGF5T2ZXZWVrID0gKHRoaXMuX2RhdGVUaW1lQWRhcHRlci5nZXRGaXJzdERheU9mV2VlaygpICsgMSkgYXMgRGF5c09mV2VlaztcbiAgICAgICAgdGhpcy5zZWxlY3RlZERhdGUgPSB0aGlzLl9kYXRlVGltZUFkYXB0ZXIudG9kYXkoKTtcbiAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIHRoaXMuX2xpc3RlblRvTG9jYWxlQ2hhbmdlcygpO1xuICAgIH1cblxuICAgIC8qKiBUaGF0IGFsbG93cyB0byBkZWZpbmUgZnVuY3Rpb24gdGhhdCBzaG91bGQgaGFwcGVuLCB3aGVuIGZvY3VzIHNob3VsZCBub3JtYWxseSBlc2NhcGUgb2YgY29tcG9uZW50ICovXG4gICAgQElucHV0KClcbiAgICBlc2NhcGVGb2N1c0Z1bmN0aW9uOiBFc2NhcGVGb2N1c0Z1bmN0aW9uID0gKGV2ZW50PzogS2V5Ym9hcmRFdmVudCk6IHZvaWQgPT4ge1xuICAgICAgICBldmVudD8ucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgdGhpcy5fY2FsZW5kYXJIZWFkZXJDb21wb25lbnQ/LmZvY3VzKCk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIEZ1bmN0aW9uIHVzZWQgdG8gZGlzYWJsZSBjZXJ0YWluIGRhdGVzIGluIHRoZSBjYWxlbmRhci5cbiAgICAgKiBAcGFyYW0gZGF0ZSBkYXRlXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBkaXNhYmxlRnVuY3Rpb246IERpc2FibGVEYXRlRnVuY3Rpb248RD4gPSAoKSA9PiBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEZ1bmN0aW9uIHVzZWQgdG8gZGlzYWJsZSBjZXJ0YWluIGRhdGVzIGluIHRoZSBjYWxlbmRhciBmb3IgdGhlIHJhbmdlIHN0YXJ0IHNlbGVjdGlvbi5cbiAgICAgKiBAcGFyYW0gZGF0ZSBkYXRlXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBkaXNhYmxlUmFuZ2VTdGFydEZ1bmN0aW9uOiBEaXNhYmxlRGF0ZUZ1bmN0aW9uPEQ+ID0gKCkgPT4gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBGdW5jdGlvbiB1c2VkIHRvIGRpc2FibGUgY2VydGFpbiBkYXRlcyBpbiB0aGUgY2FsZW5kYXIgZm9yIHRoZSByYW5nZSBlbmQgc2VsZWN0aW9uLlxuICAgICAqIEBwYXJhbSBkYXRlIGRhdGVcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGRpc2FibGVSYW5nZUVuZEZ1bmN0aW9uOiBEaXNhYmxlRGF0ZUZ1bmN0aW9uPEQ+ID0gKCkgPT4gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG9uQ2hhbmdlOiAoXzogRCB8IERhdGVSYW5nZTxEPikgPT4gdm9pZCA9ICgpID0+IHt9O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBvblRvdWNoZWQ6ICgpID0+IHZvaWQgPSAoKSA9PiB7fTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3ByZXBhcmVEaXNwbGF5ZWRWaWV3KCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgICduZXh0QnV0dG9uRGlzYWJsZUZ1bmN0aW9uJyBpbiBjaGFuZ2VzIHx8XG4gICAgICAgICAgICAncHJldmlvdXNCdXR0b25EaXNhYmxlRnVuY3Rpb24nIGluIGNoYW5nZXMgfHxcbiAgICAgICAgICAgICdfY3VycmVudGx5RGlzcGxheWVkJyBpbiBjaGFuZ2VzXG4gICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy5fc2V0TmF2aWdhdGlvbkJ1dHRvbnNTdGF0ZXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZ2V0V2Vla1N0YXJ0RGF5KCk6IERheXNPZldlZWsge1xuICAgICAgICByZXR1cm4gdGhpcy5zdGFydGluZ0RheU9mV2VlayA9PT0gdW5kZWZpbmVkID8gdGhpcy5fYWRhcHRlclN0YXJ0aW5nRGF5T2ZXZWVrIDogdGhpcy5zdGFydGluZ0RheU9mV2VlaztcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEZ1bmN0aW9uIHRoYXQgcHJvdmlkZXMgc3VwcG9ydCBmb3IgQ29udHJvbFZhbHVlQWNjZXNzb3IgdGhhdCBhbGxvd3MgdG8gdXNlIFsobmdNb2RlbCldIG9yIGZvcm1zLlxuICAgICAqL1xuICAgIHdyaXRlVmFsdWUoc2VsZWN0ZWQ6IERhdGVSYW5nZTxEPiB8IEQpOiB2b2lkIHtcbiAgICAgICAgbGV0IHZhbGlkID0gdHJ1ZTtcblxuICAgICAgICBpZiAodGhpcy5jYWxUeXBlID09PSAnc2luZ2xlJykge1xuICAgICAgICAgICAgc2VsZWN0ZWQgPSA8RD5zZWxlY3RlZDtcblxuICAgICAgICAgICAgdmFsaWQgPSB0aGlzLl9kYXRlVGltZUFkYXB0ZXIuaXNWYWxpZChzZWxlY3RlZCk7XG5cbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlID0gc2VsZWN0ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5jYWxUeXBlID09PSAncmFuZ2UnICYmIHNlbGVjdGVkKSB7XG4gICAgICAgICAgICBzZWxlY3RlZCA9IDxEYXRlUmFuZ2U8RD4+c2VsZWN0ZWQ7XG5cbiAgICAgICAgICAgIGlmICghdGhpcy5fZGF0ZVRpbWVBZGFwdGVyLmlzVmFsaWQoc2VsZWN0ZWQuc3RhcnQpIHx8ICF0aGlzLl9kYXRlVGltZUFkYXB0ZXIuaXNWYWxpZChzZWxlY3RlZC5lbmQpKSB7XG4gICAgICAgICAgICAgICAgdmFsaWQgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFJhbmdlRGF0ZSA9IHtcbiAgICAgICAgICAgICAgICBzdGFydDogc2VsZWN0ZWQuc3RhcnQsXG4gICAgICAgICAgICAgICAgZW5kOiBzZWxlY3RlZC5lbmRcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodmFsaWQpIHtcbiAgICAgICAgICAgIHRoaXMuX3ByZXBhcmVEaXNwbGF5ZWRWaWV3KCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG5cbiAgICAgICAgdGhpcy5pc1ZhbGlkRGF0ZUNoYW5nZS5lbWl0KHZhbGlkKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogRnVuY3Rpb24gdGhhdCBpbXBsZW1lbnRzIFZhbGlkYXRvciBJbnRlcmZhY2UsIGFkZHMgdmFsaWRhdGlvbiBzdXBwb3J0IGZvciBmb3Jtc1xuICAgICAqL1xuICAgIHZhbGlkYXRlKCk6IHsgW2tleTogc3RyaW5nXTogYW55IH0gfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNNb2RlbFZhbGlkKClcbiAgICAgICAgICAgID8gbnVsbFxuICAgICAgICAgICAgOiB7XG4gICAgICAgICAgICAgICAgICBkYXRlVmFsaWRhdGlvbjoge1xuICAgICAgICAgICAgICAgICAgICAgIHZhbGlkOiBmYWxzZVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9O1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNZXRob2QgdGhhdCBoYW5kbGUgYWN0aXZlIHZpZXcgY2hhbmdlIGFuZCB0aHJvd3MgZXZlbnQuXG4gICAgICpcbiAgICAgKiBGaXJlZCBieSBjYWxlbmRhciBoZWFkZXIgY29tcG9uZW50LlxuICAgICAqL1xuICAgIGhhbmRsZUFjdGl2ZVZpZXdDaGFuZ2UoYWN0aXZlVmlldzogRmRDYWxlbmRhclZpZXcpOiB2b2lkIHtcbiAgICAgICAgaWYgKGFjdGl2ZVZpZXcgPT09IHRoaXMuYWN0aXZlVmlldykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5hY3RpdmVWaWV3ID0gYWN0aXZlVmlldztcblxuICAgICAgICB0aGlzLmFjdGl2ZVZpZXdDaGFuZ2UuZW1pdChhY3RpdmVWaWV3KTtcblxuICAgICAgICBpZiAoYWN0aXZlVmlldyA9PT0gJ21vbnRoJykge1xuICAgICAgICAgICAgdGhpcy5vbk1vbnRoVmlld1NlbGVjdGVkKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGFjdGl2ZVZpZXcgPT09ICd5ZWFyJykge1xuICAgICAgICAgICAgdGhpcy5vblllYXJWaWV3U2VsZWN0ZWQoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYWN0aXZlVmlldyA9PT0gJ2FnZ3JlZ2F0ZWRZZWFyJykge1xuICAgICAgICAgICAgdGhpcy5vblllYXJzUmFuZ2VWaWV3U2VsZWN0ZWQoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX3NldE5hdmlnYXRpb25CdXR0b25zU3RhdGVzKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIE1ldGhvZCB0aGF0IGlzIHRyaWdnZXJlZCBieSBldmVudHMgZnJvbSBkYXkgdmlldyBjb21wb25lbnQsIHdoZW4gdGhlcmUgaXMgc2VsZWN0ZWQgc2luZ2xlIGRhdGUgY2hhbmdlZFxuICAgICAqL1xuICAgIHNlbGVjdGVkRGF0ZUNoYW5nZWQoZGF0ZTogRCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZSA9IGRhdGU7XG4gICAgICAgIHRoaXMuX3NldE5hdmlnYXRpb25CdXR0b25zU3RhdGVzKCk7XG4gICAgICAgIHRoaXMub25DaGFuZ2UoZGF0ZSk7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlQ2hhbmdlLmVtaXQoZGF0ZSk7XG4gICAgICAgIHRoaXMuY2xvc2VDYWxlbmRhci5lbWl0KCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIE1ldGhvZCB0aGF0IGlzIHRyaWdnZXJlZCBieSBldmVudHMgZnJvbSBkYXkgdmlldyBjb21wb25lbnQsIHdoZW4gdGhlcmUgaXMgc2VsZWN0ZWQgcmFuZ2UgZGF0ZSBjaGFuZ2VkXG4gICAgICovXG4gICAgc2VsZWN0ZWRSYW5nZURhdGVDaGFuZ2VkKGRhdGVzOiBEYXRlUmFuZ2U8RD4pOiB2b2lkIHtcbiAgICAgICAgaWYgKGRhdGVzKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkUmFuZ2VEYXRlID0geyBzdGFydDogZGF0ZXMuc3RhcnQsIGVuZDogZGF0ZXMuZW5kIH07XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkUmFuZ2VEYXRlQ2hhbmdlLmVtaXQodGhpcy5zZWxlY3RlZFJhbmdlRGF0ZSk7XG4gICAgICAgICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuc2VsZWN0ZWRSYW5nZURhdGUpO1xuICAgICAgICAgICAgdGhpcy5jbG9zZUNhbGVuZGFyLmVtaXQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBGdW5jdGlvbiB0aGF0IGhhbmRsZXMgbmV4dCBhcnJvdyBpY29uIGNsaWNrLCBkZXBlbmRpbmcgb24gY3VycmVudCB2aWV3IGl0IGNoYW5nZXMgbW9udGgsIHllYXIgb3IgbGlzdCBvZiB5ZWFycyAqL1xuICAgIGhhbmRsZU5leHRBcnJvd0NsaWNrKCk6IHZvaWQge1xuICAgICAgICBzd2l0Y2ggKHRoaXMuYWN0aXZlVmlldykge1xuICAgICAgICAgICAgY2FzZSAnZGF5JzpcbiAgICAgICAgICAgICAgICB0aGlzLmRpc3BsYXlOZXh0TW9udGgoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ21vbnRoJzpcbiAgICAgICAgICAgICAgICB0aGlzLmRpc3BsYXlOZXh0WWVhcigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAneWVhcic6XG4gICAgICAgICAgICAgICAgdGhpcy5kaXNwbGF5TmV4dFllYXJMaXN0KCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdhZ2dyZWdhdGVkWWVhcic6XG4gICAgICAgICAgICAgICAgdGhpcy5kaXNwbGF5TmV4dFllYXJzTGlzdCgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3NldE5hdmlnYXRpb25CdXR0b25zU3RhdGVzKCk7XG4gICAgfVxuXG4gICAgLyoqIEZ1bmN0aW9uIHRoYXQgaGFuZGxlcyBwcmV2aW91cyBhcnJvdyBpY29uIGNsaWNrLCBkZXBlbmRpbmcgb24gY3VycmVudCB2aWV3IGl0IGNoYW5nZXMgbW9udGgsIHllYXIgb3IgbGlzdCBvZiB5ZWFycyAqL1xuICAgIGhhbmRsZVByZXZpb3VzQXJyb3dDbGljaygpOiB2b2lkIHtcbiAgICAgICAgc3dpdGNoICh0aGlzLmFjdGl2ZVZpZXcpIHtcbiAgICAgICAgICAgIGNhc2UgJ2RheSc6XG4gICAgICAgICAgICAgICAgdGhpcy5kaXNwbGF5UHJldmlvdXNNb250aCgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnbW9udGgnOlxuICAgICAgICAgICAgICAgIHRoaXMuZGlzcGxheVByZXZpb3VzWWVhcigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAneWVhcic6XG4gICAgICAgICAgICAgICAgdGhpcy5kaXNwbGF5UHJldmlvdXNZZWFyTGlzdCgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnYWdncmVnYXRlZFllYXInOlxuICAgICAgICAgICAgICAgIHRoaXMuZGlzcGxheVByZXZpb3VzWWVhcnNMaXN0KCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fc2V0TmF2aWdhdGlvbkJ1dHRvbnNTdGF0ZXMoKTtcbiAgICB9XG5cbiAgICAvKiogRnVuY3Rpb24gdGhhdCBhbGxvd3MgdG8gc3dpdGNoIGFjdHVhbCB2aWV3IHRvIG5leHQgbW9udGggKi9cbiAgICBkaXNwbGF5TmV4dE1vbnRoKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5fY3VycmVudGx5RGlzcGxheWVkLm1vbnRoID09PSAxMikge1xuICAgICAgICAgICAgdGhpcy5fY3VycmVudGx5RGlzcGxheWVkID0geyB5ZWFyOiB0aGlzLl9jdXJyZW50bHlEaXNwbGF5ZWQueWVhciArIDEsIG1vbnRoOiAxIH07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9jdXJyZW50bHlEaXNwbGF5ZWQgPSB7XG4gICAgICAgICAgICAgICAgeWVhcjogdGhpcy5fY3VycmVudGx5RGlzcGxheWVkLnllYXIsXG4gICAgICAgICAgICAgICAgbW9udGg6IHRoaXMuX2N1cnJlbnRseURpc3BsYXllZC5tb250aCArIDFcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogRnVuY3Rpb24gdGhhdCBhbGxvd3MgdG8gc3dpdGNoIGFjdHVhbCB2aWV3IHRvIHByZXZpb3VzIG1vbnRoICovXG4gICAgZGlzcGxheVByZXZpb3VzTW9udGgoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9jdXJyZW50bHlEaXNwbGF5ZWQubW9udGggPD0gMSkge1xuICAgICAgICAgICAgdGhpcy5fY3VycmVudGx5RGlzcGxheWVkID0geyB5ZWFyOiB0aGlzLl9jdXJyZW50bHlEaXNwbGF5ZWQueWVhciAtIDEsIG1vbnRoOiAxMiB9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fY3VycmVudGx5RGlzcGxheWVkID0ge1xuICAgICAgICAgICAgICAgIHllYXI6IHRoaXMuX2N1cnJlbnRseURpc3BsYXllZC55ZWFyLFxuICAgICAgICAgICAgICAgIG1vbnRoOiB0aGlzLl9jdXJyZW50bHlEaXNwbGF5ZWQubW9udGggLSAxXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEZ1bmN0aW9uIHRoYXQgYWxsb3dzIHRvIHN3aXRjaCBhY3R1YWwgdmlldyB0byBuZXh0IHllYXIgKi9cbiAgICBkaXNwbGF5TmV4dFllYXIoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2N1cnJlbnRseURpc3BsYXllZCA9IHsgbW9udGg6IHRoaXMuX2N1cnJlbnRseURpc3BsYXllZC5tb250aCwgeWVhcjogdGhpcy5fY3VycmVudGx5RGlzcGxheWVkLnllYXIgKyAxIH07XG4gICAgfVxuXG4gICAgLyoqIEZ1bmN0aW9uIHRoYXQgYWxsb3dzIHRvIHN3aXRjaCBhY3R1YWwgdmlldyB0byBwcmV2aW91cyB5ZWFyICovXG4gICAgZGlzcGxheVByZXZpb3VzWWVhcigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY3VycmVudGx5RGlzcGxheWVkID0geyBtb250aDogdGhpcy5fY3VycmVudGx5RGlzcGxheWVkLm1vbnRoLCB5ZWFyOiB0aGlzLl9jdXJyZW50bHlEaXNwbGF5ZWQueWVhciAtIDEgfTtcbiAgICB9XG5cbiAgICAvKiogRnVuY3Rpb24gdGhhdCBhbGxvd3MgdG8gc3dpdGNoIGFjdHVhbGx5IGRpc3BsYXllZCBsaXN0IG9mIHllYXIgdG8gbmV4dCB5ZWFyIGxpc3QqL1xuICAgIGRpc3BsYXlOZXh0WWVhckxpc3QoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3llYXJWaWV3Q29tcG9uZW50LmxvYWROZXh0WWVhckxpc3QoKTtcbiAgICAgICAgdGhpcy5fY3VycmVudGx5RGlzcGxheWVkID0ge1xuICAgICAgICAgICAgbW9udGg6IHRoaXMuX2N1cnJlbnRseURpc3BsYXllZC5tb250aCxcbiAgICAgICAgICAgIHllYXI6IHRoaXMuX3llYXJWaWV3Q29tcG9uZW50Ll9maXJzdFllYXJJbkxpc3RcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICAvKiogRnVuY3Rpb24gdGhhdCBhbGxvd3MgdG8gc3dpdGNoIGFjdHVhbGx5IGRpc3BsYXllZCBsaXN0IG9mIHllYXIgdG8gcHJldmlvdXMgeWVhciBsaXN0Ki9cbiAgICBkaXNwbGF5UHJldmlvdXNZZWFyTGlzdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5feWVhclZpZXdDb21wb25lbnQubG9hZFByZXZpb3VzWWVhckxpc3QoKTtcbiAgICAgICAgdGhpcy5fY3VycmVudGx5RGlzcGxheWVkID0ge1xuICAgICAgICAgICAgbW9udGg6IHRoaXMuX2N1cnJlbnRseURpc3BsYXllZC5tb250aCxcbiAgICAgICAgICAgIHllYXI6IHRoaXMuX3llYXJWaWV3Q29tcG9uZW50Ll9maXJzdFllYXJJbkxpc3RcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICAvKiogRnVuY3Rpb24gdGhhdCBhbGxvd3MgdG8gc3dpdGNoIGFjdHVhbGx5IGRpc3BsYXllZCBsaXN0IG9mIHllYXIgdG8gbmV4dCB5ZWFyIGxpc3QqL1xuICAgIGRpc3BsYXlOZXh0WWVhcnNMaXN0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9hZ2dyZWdhdGVkWWVhclZpZXdDb21wb25lbnQubG9hZE5leHRZZWFyc0xpc3QoKTtcbiAgICB9XG5cbiAgICAvKiogRnVuY3Rpb24gdGhhdCBhbGxvd3MgdG8gc3dpdGNoIGFjdHVhbGx5IGRpc3BsYXllZCBsaXN0IG9mIHllYXIgdG8gcHJldmlvdXMgeWVhciBsaXN0Ki9cbiAgICBkaXNwbGF5UHJldmlvdXNZZWFyc0xpc3QoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2FnZ3JlZ2F0ZWRZZWFyVmlld0NvbXBvbmVudC5sb2FkUHJldmlvdXNZZWFyc0xpc3QoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBGdW5jdGlvbiB0aGF0IGFsbG93cyB0byBjaGFuZ2UgY3VycmVudGx5IGRpc3BsYXllZCBtb250aC95ZWFyIGNvbmZpZ3VyYXRpb24sXG4gICAgICogd2hpY2ggYXJlIGNvbm5lY3RlZCB0byBkYXlzIGRpc3BsYXllZFxuICAgICAqL1xuICAgIHNldEN1cnJlbnRseURpc3BsYXllZChkYXRlOiBOdWxsYWJsZTxEPik6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5fZGF0ZVRpbWVBZGFwdGVyLmlzVmFsaWQoZGF0ZSkpIHtcbiAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRseURpc3BsYXllZCA9IHtcbiAgICAgICAgICAgICAgICBtb250aDogdGhpcy5fZGF0ZVRpbWVBZGFwdGVyLmdldE1vbnRoKGRhdGUhKSxcbiAgICAgICAgICAgICAgICB5ZWFyOiB0aGlzLl9kYXRlVGltZUFkYXB0ZXIuZ2V0WWVhcihkYXRlISlcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXQgaW5pdGlhbCBmb2N1cyBvbiBvbmUgb2YgdGhlIGNhbGVuZGFyJ3MgZWxlbWVudFxuICAgICAqL1xuICAgIGluaXRpYWxGb2N1cygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZ2V0QWN0aXZlRm9jdXNhYmxlVmlldygpPy5zZXRGb2N1c09uQ2VsbCgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBGdW5jdGlvbiB0aGF0IGhhbmRsZXMgY2hhbmdlcyBmcm9tIG1vbnRoIHZpZXcgY2hpbGQgY29tcG9uZW50LCBjaGFuZ2VzIGFjdHVhbCB2aWV3IGFuZCBjaGFuZ2VzIGN1cnJlbnRseSBkaXNwbGF5ZWQgbW9udGhcbiAgICAgKi9cbiAgICBoYW5kbGVNb250aFZpZXdDaGFuZ2UobW9udGg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLl9jdXJyZW50bHlEaXNwbGF5ZWQgPSB7IG1vbnRoLCB5ZWFyOiB0aGlzLl9jdXJyZW50bHlEaXNwbGF5ZWQueWVhciB9O1xuICAgICAgICB0aGlzLmFjdGl2ZVZpZXcgPSAnZGF5JztcbiAgICAgICAgdGhpcy5vbkRheXNWaWV3U2VsZWN0ZWQoKTtcbiAgICAgICAgdGhpcy5hY3RpdmVWaWV3Q2hhbmdlLmVtaXQodGhpcy5hY3RpdmVWaWV3KTtcbiAgICB9XG5cbiAgICAvKiogU2VsZWN0IHllYXIgKi9cbiAgICBzZWxlY3RlZFllYXIoeWVhclNlbGVjdGVkOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hY3RpdmVWaWV3ID0gJ2RheSc7XG4gICAgICAgIHRoaXMuX2N1cnJlbnRseURpc3BsYXllZC55ZWFyID0geWVhclNlbGVjdGVkO1xuICAgICAgICB0aGlzLm9uRGF5c1ZpZXdTZWxlY3RlZCgpO1xuICAgIH1cblxuICAgIC8qKiBTZWxlY3QgeWVhciByYW5nZSAqL1xuICAgIHNlbGVjdGVkWWVhcnMoeWVhcnNTZWxlY3RlZDogQWdncmVnYXRlZFllYXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hY3RpdmVWaWV3ID0gJ3llYXInO1xuICAgICAgICB0aGlzLl9jdXJyZW50bHlEaXNwbGF5ZWQgPSB7XG4gICAgICAgICAgICAuLi50aGlzLl9jdXJyZW50bHlEaXNwbGF5ZWQsXG4gICAgICAgICAgICB5ZWFyOiB5ZWFyc1NlbGVjdGVkLnN0YXJ0WWVhclxuICAgICAgICB9O1xuICAgICAgICB0aGlzLm9uWWVhclZpZXdTZWxlY3RlZCgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgb25EYXlzVmlld1NlbGVjdGVkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIHRoaXMuX2RheVZpZXdDb21wb25lbnQ/LnNldEZvY3VzT25DZWxsKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBvbk1vbnRoVmlld1NlbGVjdGVkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIHRoaXMuX21vbnRoVmlld0NvbXBvbmVudD8uc2V0Rm9jdXNPbkNlbGwoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG9uWWVhclZpZXdTZWxlY3RlZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB0aGlzLl95ZWFyVmlld0NvbXBvbmVudD8uc2V0Rm9jdXNPbkNlbGwoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG9uWWVhcnNSYW5nZVZpZXdTZWxlY3RlZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB0aGlzLl9hZ2dyZWdhdGVkWWVhclZpZXdDb21wb25lbnQ/LnNldEZvY3VzT25DZWxsKCk7XG4gICAgfVxuXG4gICAgLyoqIE1ldGhvZCB0aGF0IHByb3ZpZGVzIGluZm9ybWF0aW9uIGlmIG1vZGVsIHNlbGVjdGVkIGRhdGUvZGF0ZXMgaGF2ZSBwcm9wZXJseSB0eXBlcyBhbmQgYXJlIHZhbGlkICovXG4gICAgaXNNb2RlbFZhbGlkKCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodGhpcy5jYWxUeXBlID09PSAnc2luZ2xlJykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2RhdGVUaW1lQWRhcHRlci5pc1ZhbGlkKHRoaXMuc2VsZWN0ZWREYXRlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5jYWxUeXBlID09PSAncmFuZ2UnKSB7XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRSYW5nZURhdGUgJiZcbiAgICAgICAgICAgICAgICB0aGlzLl9kYXRlVGltZUFkYXB0ZXIuaXNWYWxpZCh0aGlzLnNlbGVjdGVkUmFuZ2VEYXRlLnN0YXJ0KSAmJlxuICAgICAgICAgICAgICAgIHRoaXMuX2RhdGVUaW1lQWRhcHRlci5pc1ZhbGlkKHRoaXMuc2VsZWN0ZWRSYW5nZURhdGUuZW5kKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9saXN0ZW5Ub0xvY2FsZUNoYW5nZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgICAgICAgdGhpcy5fZGF0ZVRpbWVBZGFwdGVyLmxvY2FsZUNoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9hZGFwdGVyU3RhcnRpbmdEYXlPZldlZWsgPSAodGhpcy5fZGF0ZVRpbWVBZGFwdGVyLmdldEZpcnN0RGF5T2ZXZWVrKCkgKyAxKSBhcyBEYXlzT2ZXZWVrO1xuICAgICAgICAgICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogTWV0aG9kIHRoYXQgc2V0cyB1cCB0aGUgY3VycmVudGx5IGRpc3BsYXllZCB2YXJpYWJsZXMsIGxpa2Ugc2hvd24gbW9udGggYW5kIHllYXIuXG4gICAgICogRGF5IGdyaWQgaXMgYmFzZWQgb24gY3VycmVudGx5IGRpc3BsYXllZCBtb250aCBhbmQgeWVhclxuICAgICAqL1xuICAgIHByaXZhdGUgX3ByZXBhcmVEaXNwbGF5ZWRWaWV3KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5jYWxUeXBlID09PSAnc2luZ2xlJyAmJiB0aGlzLl9kYXRlVGltZUFkYXB0ZXIuaXNWYWxpZCh0aGlzLnNlbGVjdGVkRGF0ZSkpIHtcbiAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRseURpc3BsYXllZCA9IHtcbiAgICAgICAgICAgICAgICB5ZWFyOiB0aGlzLl9kYXRlVGltZUFkYXB0ZXIuZ2V0WWVhcih0aGlzLnNlbGVjdGVkRGF0ZSksXG4gICAgICAgICAgICAgICAgbW9udGg6IHRoaXMuX2RhdGVUaW1lQWRhcHRlci5nZXRNb250aCh0aGlzLnNlbGVjdGVkRGF0ZSlcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5zZWxlY3RlZFJhbmdlRGF0ZSAmJiB0aGlzLnNlbGVjdGVkUmFuZ2VEYXRlLnN0YXJ0KSB7XG4gICAgICAgICAgICB0aGlzLl9jdXJyZW50bHlEaXNwbGF5ZWQgPSB7XG4gICAgICAgICAgICAgICAgeWVhcjogdGhpcy5fZGF0ZVRpbWVBZGFwdGVyLmdldFllYXIodGhpcy5zZWxlY3RlZFJhbmdlRGF0ZS5zdGFydCksXG4gICAgICAgICAgICAgICAgbW9udGg6IHRoaXMuX2RhdGVUaW1lQWRhcHRlci5nZXRNb250aCh0aGlzLnNlbGVjdGVkUmFuZ2VEYXRlLnN0YXJ0KVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnNlbGVjdGVkUmFuZ2VEYXRlICYmIHRoaXMuc2VsZWN0ZWRSYW5nZURhdGUuZW5kKSB7XG4gICAgICAgICAgICB0aGlzLl9jdXJyZW50bHlEaXNwbGF5ZWQgPSB7XG4gICAgICAgICAgICAgICAgeWVhcjogdGhpcy5fZGF0ZVRpbWVBZGFwdGVyLmdldFllYXIodGhpcy5zZWxlY3RlZFJhbmdlRGF0ZS5lbmQpLFxuICAgICAgICAgICAgICAgIG1vbnRoOiB0aGlzLl9kYXRlVGltZUFkYXB0ZXIuZ2V0TW9udGgodGhpcy5zZWxlY3RlZFJhbmdlRGF0ZS5lbmQpXG4gICAgICAgICAgICB9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgdG9kYXkgPSB0aGlzLl9kYXRlVGltZUFkYXB0ZXIudG9kYXkoKTtcbiAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRseURpc3BsYXllZCA9IHtcbiAgICAgICAgICAgICAgICB5ZWFyOiB0aGlzLl9kYXRlVGltZUFkYXB0ZXIuZ2V0WWVhcih0b2RheSksXG4gICAgICAgICAgICAgICAgbW9udGg6IHRoaXMuX2RhdGVUaW1lQWRhcHRlci5nZXRNb250aCh0b2RheSlcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dldEFjdGl2ZUZvY3VzYWJsZVZpZXcoKTogRm9jdXNhYmxlQ2FsZW5kYXJWaWV3IHwgbnVsbCB7XG4gICAgICAgIHN3aXRjaCAodGhpcy5hY3RpdmVWaWV3KSB7XG4gICAgICAgICAgICBjYXNlICdkYXknOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9kYXlWaWV3Q29tcG9uZW50O1xuICAgICAgICAgICAgY2FzZSAnbW9udGgnOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9tb250aFZpZXdDb21wb25lbnQ7XG4gICAgICAgICAgICBjYXNlICd5ZWFyJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5feWVhclZpZXdDb21wb25lbnQ7XG4gICAgICAgICAgICBjYXNlICdhZ2dyZWdhdGVkWWVhcic6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2FnZ3JlZ2F0ZWRZZWFyVmlld0NvbXBvbmVudDtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3NldE5hdmlnYXRpb25CdXR0b25zU3RhdGVzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnByZXZpb3VzQnV0dG9uRGlzYWJsZWQgPVxuICAgICAgICAgICAgdHlwZW9mIHRoaXMucHJldmlvdXNCdXR0b25EaXNhYmxlRnVuY3Rpb24gPT09ICdmdW5jdGlvbicgJiZcbiAgICAgICAgICAgIHRoaXMucHJldmlvdXNCdXR0b25EaXNhYmxlRnVuY3Rpb24odGhpcy5zZWxlY3RlZERhdGUsIHRoaXMuX2N1cnJlbnRseURpc3BsYXllZCwgdGhpcy5hY3RpdmVWaWV3KTtcbiAgICAgICAgdGhpcy5uZXh0QnV0dG9uRGlzYWJsZWQgPVxuICAgICAgICAgICAgdHlwZW9mIHRoaXMubmV4dEJ1dHRvbkRpc2FibGVGdW5jdGlvbiA9PT0gJ2Z1bmN0aW9uJyAmJlxuICAgICAgICAgICAgdGhpcy5uZXh0QnV0dG9uRGlzYWJsZUZ1bmN0aW9uKHRoaXMuc2VsZWN0ZWREYXRlLCB0aGlzLl9jdXJyZW50bHlEaXNwbGF5ZWQsIHRoaXMuYWN0aXZlVmlldyk7XG4gICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZm9jdXNPdXQoZXZlbnQ6IEZvY3VzRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQucmVsYXRlZFRhcmdldCkpIHtcbiAgICAgICAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8ZmQtY2FsZW5kYXItaGVhZGVyXG4gICAgW2N1cnJlbnRseURpc3BsYXllZF09XCJfY3VycmVudGx5RGlzcGxheWVkXCJcbiAgICBbYWN0aXZlVmlld109XCJhY3RpdmVWaWV3XCJcbiAgICBbaWRdPVwiaWRcIlxuICAgIFtjYWxlbmRhclllYXJHcmlkXT1cInllYXJHcmlkXCJcbiAgICAoY2xvc2VDbGlja2VkKT1cImNsb3NlQ2xpY2tlZC5lbWl0KClcIlxuICAgIChuZXh0Q2xpY2tlZCk9XCJoYW5kbGVOZXh0QXJyb3dDbGljaygpXCJcbiAgICAocHJldmlvdXNDbGlja2VkKT1cImhhbmRsZVByZXZpb3VzQXJyb3dDbGljaygpXCJcbiAgICBbcHJldmlvdXNCdXR0b25EaXNhYmxlZF09XCJwcmV2aW91c0J1dHRvbkRpc2FibGVkXCJcbiAgICBbbmV4dEJ1dHRvbkRpc2FibGVkXT1cIm5leHRCdXR0b25EaXNhYmxlZFwiXG4gICAgKGFjdGl2ZVZpZXdDaGFuZ2UpPVwiaGFuZGxlQWN0aXZlVmlld0NoYW5nZSgkZXZlbnQpXCJcbj48L2ZkLWNhbGVuZGFyLWhlYWRlcj5cbjxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImFjdGl2ZVZpZXdcIiAqbmdJZj1cIl9jdXJyZW50bHlEaXNwbGF5ZWRcIj5cbiAgICA8ZmQtY2FsZW5kYXItZGF5LXZpZXdcbiAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidkYXknXCJcbiAgICAgICAgW3NlbGVjdGVkRGF0ZV09XCJzZWxlY3RlZERhdGVcIlxuICAgICAgICBbc2hvd1dlZWtOdW1iZXJzXT1cInNob3dXZWVrTnVtYmVyc1wiXG4gICAgICAgIFttYXJrV2Vla2VuZHNdPVwibWFya1dlZWtlbmRzXCJcbiAgICAgICAgKHNlbGVjdGVkRGF0ZUNoYW5nZSk9XCJzZWxlY3RlZERhdGVDaGFuZ2VkKCRldmVudClcIlxuICAgICAgICBbc2VsZWN0ZWRSYW5nZURhdGVdPVwic2VsZWN0ZWRSYW5nZURhdGVcIlxuICAgICAgICAoc2VsZWN0ZWRSYW5nZURhdGVDaGFuZ2UpPVwic2VsZWN0ZWRSYW5nZURhdGVDaGFuZ2VkKCRldmVudClcIlxuICAgICAgICBbY3VycmVudGx5RGlzcGxheWVkXT1cIl9jdXJyZW50bHlEaXNwbGF5ZWRcIlxuICAgICAgICBbc3RhcnRpbmdEYXlPZldlZWtdPVwiZ2V0V2Vla1N0YXJ0RGF5KClcIlxuICAgICAgICBbZGlzYWJsZUZ1bmN0aW9uXT1cImRpc2FibGVGdW5jdGlvblwiXG4gICAgICAgIFtkaXNhYmxlUmFuZ2VFbmRGdW5jdGlvbl09XCJkaXNhYmxlUmFuZ2VFbmRGdW5jdGlvblwiXG4gICAgICAgIFtkaXNhYmxlUmFuZ2VTdGFydEZ1bmN0aW9uXT1cImRpc2FibGVSYW5nZVN0YXJ0RnVuY3Rpb25cIlxuICAgICAgICBbY2FsVHlwZV09XCJjYWxUeXBlXCJcbiAgICAgICAgW2lkXT1cImlkXCJcbiAgICAgICAgW3JhbmdlSG92ZXJFZmZlY3RdPVwicmFuZ2VIb3ZlckVmZmVjdFwiXG4gICAgICAgIFtzcGVjaWFsRGF5c1J1bGVzXT1cInNwZWNpYWxEYXlzUnVsZXNcIlxuICAgICAgICBbZm9jdXNFc2NhcGVGdW5jdGlvbl09XCJlc2NhcGVGb2N1c0Z1bmN0aW9uXCJcbiAgICAgICAgKG5leHRNb250aFNlbGVjdCk9XCJkaXNwbGF5TmV4dE1vbnRoKClcIlxuICAgICAgICAocHJldmlvdXNNb250aFNlbGVjdCk9XCJkaXNwbGF5UHJldmlvdXNNb250aCgpXCJcbiAgICA+PC9mZC1jYWxlbmRhci1kYXktdmlldz5cbiAgICA8ZmQtY2FsZW5kYXItbW9udGgtdmlld1xuICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ21vbnRoJ1wiXG4gICAgICAgIFttb250aFNlbGVjdGVkXT1cIl9jdXJyZW50bHlEaXNwbGF5ZWQubW9udGhcIlxuICAgICAgICBbeWVhcl09XCJfY3VycmVudGx5RGlzcGxheWVkLnllYXJcIlxuICAgICAgICBbaWRdPVwiaWRcIlxuICAgICAgICBbZm9jdXNFc2NhcGVGdW5jdGlvbl09XCJlc2NhcGVGb2N1c0Z1bmN0aW9uXCJcbiAgICAgICAgKG1vbnRoQ2xpY2tlZCk9XCJoYW5kbGVNb250aFZpZXdDaGFuZ2UoJGV2ZW50KVwiXG4gICAgPjwvZmQtY2FsZW5kYXItbW9udGgtdmlldz5cbiAgICA8ZmQtY2FsZW5kYXIteWVhci12aWV3XG4gICAgICAgICpuZ1N3aXRjaENhc2U9XCIneWVhcidcIlxuICAgICAgICBbeWVhclNlbGVjdGVkXT1cIl9jdXJyZW50bHlEaXNwbGF5ZWQueWVhclwiXG4gICAgICAgIFt5ZWFyVmlld0dyaWRdPVwieWVhckdyaWRcIlxuICAgICAgICBbaWRdPVwiaWRcIlxuICAgICAgICBbZm9jdXNFc2NhcGVGdW5jdGlvbl09XCJlc2NhcGVGb2N1c0Z1bmN0aW9uXCJcbiAgICAgICAgKHllYXJDbGlja2VkKT1cInNlbGVjdGVkWWVhcigkZXZlbnQpXCJcbiAgICA+XG4gICAgPC9mZC1jYWxlbmRhci15ZWFyLXZpZXc+XG4gICAgPGZkLWNhbGVuZGFyLWFnZ3JlZ2F0ZWQteWVhci12aWV3XG4gICAgICAgICpuZ1N3aXRjaENhc2U9XCInYWdncmVnYXRlZFllYXInXCJcbiAgICAgICAgKHllYXJzQ2xpY2tlZCk9XCJzZWxlY3RlZFllYXJzKCRldmVudClcIlxuICAgICAgICBbeWVhclNlbGVjdGVkXT1cIl9jdXJyZW50bHlEaXNwbGF5ZWQueWVhclwiXG4gICAgICAgIFt5ZWFyVmlld0dyaWRdPVwieWVhckdyaWRcIlxuICAgICAgICBbYWdncmVnYXRlZFllYXJzVmlld0dyaWRdPVwiYWdncmVnYXRlZFllYXJHcmlkXCJcbiAgICAgICAgW2lkXT1cImlkXCJcbiAgICAgICAgW2ZvY3VzRXNjYXBlRnVuY3Rpb25dPVwiZXNjYXBlRm9jdXNGdW5jdGlvblwiXG4gICAgPlxuICAgIDwvZmQtY2FsZW5kYXItYWdncmVnYXRlZC15ZWFyLXZpZXc+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==