@progressio_resources/gravity-design-system 3.9.3 → 4.0.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 (274) hide show
  1. package/README.md +1 -1
  2. package/fesm2022/progressio_resources-gravity-design-system.mjs +1289 -1169
  3. package/fesm2022/progressio_resources-gravity-design-system.mjs.map +1 -1
  4. package/package.json +10 -12
  5. package/src/lib/styles/_functions.scss +4 -2
  6. package/src/lib/styles/_responsive.scss +12 -11
  7. package/src/lib/styles/components/_card_highlight.scss +5 -5
  8. package/src/lib/styles/components/_datepicker-v2.scss +2 -2
  9. package/src/lib/styles/components/_datepicker.scss +16 -15
  10. package/src/lib/styles/components/_offcanvas.scss +4 -4
  11. package/src/lib/styles/components/_tables.scss +9 -9
  12. package/src/lib/styles/foundations/colors/themes/_hero.theme.scss +1 -1
  13. package/src/lib/styles/foundations/colors/tokens/_hero.tokens.scss +3 -3
  14. package/src/lib/styles/foundations/spacing/_spacing.scss +3 -1
  15. package/src/lib/styles/gravity-design-system.scss +17 -17
  16. package/src/lib/styles/overwrite/bootstrap/_bootstrap-export.scss +2 -2
  17. package/src/lib/styles/overwrite/bootstrap/_modal.scss +5 -5
  18. package/src/lib/styles/themes/_hero.scss +4 -4
  19. package/src/lib/vendor/gravity-tooltip/gravity-tooltip.component.html +10 -7
  20. package/src/lib/vendor/gravity-tooltip/gravity-tooltip.component.sass +92 -52
  21. package/src/lib/vendor/gravity-tooltip/gravity-tooltip.component.ts +7 -3
  22. package/src/lib/vendor/gravity-tooltip/gravity-tooltip.directive.ts +46 -17
  23. package/src/lib/vendor/gravity-tooltip/gravity-tooltip.module.ts +7 -12
  24. package/types/progressio_resources-gravity-design-system.d.ts +2671 -0
  25. package/esm2022/lib/components/gravity-attach-file/gravity-attach-file.component.mjs +0 -82
  26. package/esm2022/lib/components/gravity-avatar-stack/gravity-avatar-stack.component.mjs +0 -86
  27. package/esm2022/lib/components/gravity-backdrop/gravity-backdrop.component.mjs +0 -17
  28. package/esm2022/lib/components/gravity-badge/gravity-badge.component.mjs +0 -36
  29. package/esm2022/lib/components/gravity-button/gravity-button.component.mjs +0 -58
  30. package/esm2022/lib/components/gravity-calendar-v2/datepicker/base/bs-datepicker-container.mjs +0 -77
  31. package/esm2022/lib/components/gravity-calendar-v2/datepicker/bs-datepicker-inline.component.mjs +0 -129
  32. package/esm2022/lib/components/gravity-calendar-v2/datepicker/bs-datepicker-inline.config.mjs +0 -14
  33. package/esm2022/lib/components/gravity-calendar-v2/datepicker/bs-datepicker.callbacks.mjs +0 -13
  34. package/esm2022/lib/components/gravity-calendar-v2/datepicker/bs-datepicker.component.mjs +0 -211
  35. package/esm2022/lib/components/gravity-calendar-v2/datepicker/bs-datepicker.config.mjs +0 -46
  36. package/esm2022/lib/components/gravity-calendar-v2/datepicker/bs-daterangepicker-inline.component.mjs +0 -130
  37. package/esm2022/lib/components/gravity-calendar-v2/datepicker/bs-daterangepicker-inline.config.mjs +0 -18
  38. package/esm2022/lib/components/gravity-calendar-v2/datepicker/bs-daterangepicker.component.mjs +0 -218
  39. package/esm2022/lib/components/gravity-calendar-v2/datepicker/bs-daterangepicker.config.mjs +0 -18
  40. package/esm2022/lib/components/gravity-calendar-v2/datepicker/components/bs-datepicker-container.component.mjs +0 -137
  41. package/esm2022/lib/components/gravity-calendar-v2/datepicker/components/bs-datepicker-inline-container.component.mjs +0 -35
  42. package/esm2022/lib/components/gravity-calendar-v2/datepicker/components/bs-datepicker-navigation-view/bs-datepicker-navigation-view.component.mjs +0 -69
  43. package/esm2022/lib/components/gravity-calendar-v2/datepicker/components/bs-daterangepicker-container.component.mjs +0 -193
  44. package/esm2022/lib/components/gravity-calendar-v2/datepicker/components/bs-daterangepicker-inline-container.component.mjs +0 -35
  45. package/esm2022/lib/components/gravity-calendar-v2/datepicker/components/bs-days-calendar-view/bs-datepicker-day-decorator.directive.mjs +0 -30
  46. package/esm2022/lib/components/gravity-calendar-v2/datepicker/components/bs-days-calendar-view/bs-days-calendar-view.component.mjs +0 -57
  47. package/esm2022/lib/components/gravity-calendar-v2/datepicker/components/bs-months-calendar-view/bs-months-calendar-view.component.mjs +0 -57
  48. package/esm2022/lib/components/gravity-calendar-v2/datepicker/components/bs-years-calendar-view/bs-years-calendar-view.component.mjs +0 -57
  49. package/esm2022/lib/components/gravity-calendar-v2/datepicker/datepicker-animations.mjs +0 -16
  50. package/esm2022/lib/components/gravity-calendar-v2/datepicker/engine/calc-days-calendar.mjs +0 -16
  51. package/esm2022/lib/components/gravity-calendar-v2/datepicker/engine/flag-days-calendar.mjs +0 -53
  52. package/esm2022/lib/components/gravity-calendar-v2/datepicker/engine/flag-months-calendar.mjs +0 -39
  53. package/esm2022/lib/components/gravity-calendar-v2/datepicker/engine/flag-years-calendar.mjs +0 -36
  54. package/esm2022/lib/components/gravity-calendar-v2/datepicker/engine/format-days-calendar.mjs +0 -23
  55. package/esm2022/lib/components/gravity-calendar-v2/datepicker/engine/format-months-calendar.mjs +0 -23
  56. package/esm2022/lib/components/gravity-calendar-v2/datepicker/engine/format-years-calendar.mjs +0 -43
  57. package/esm2022/lib/components/gravity-calendar-v2/datepicker/engine/view-mode.mjs +0 -4
  58. package/esm2022/lib/components/gravity-calendar-v2/datepicker/models/index.mjs +0 -7
  59. package/esm2022/lib/components/gravity-calendar-v2/datepicker/reducer/_defaults.mjs +0 -6
  60. package/esm2022/lib/components/gravity-calendar-v2/datepicker/reducer/bs-datepicker.actions.mjs +0 -64
  61. package/esm2022/lib/components/gravity-calendar-v2/datepicker/reducer/bs-datepicker.effects.mjs +0 -128
  62. package/esm2022/lib/components/gravity-calendar-v2/datepicker/reducer/bs-datepicker.reducer.mjs +0 -301
  63. package/esm2022/lib/components/gravity-calendar-v2/datepicker/reducer/bs-datepicker.state.mjs +0 -16
  64. package/esm2022/lib/components/gravity-calendar-v2/datepicker/reducer/bs-datepicker.store.mjs +0 -20
  65. package/esm2022/lib/components/gravity-calendar-v2/datepicker/services/header-type.service.mjs +0 -28
  66. package/esm2022/lib/components/gravity-calendar-v2/datepicker/utils/bs-calendar-utils.mjs +0 -74
  67. package/esm2022/lib/components/gravity-calendar-v2/datepicker/utils/date-abbreviation.pipe.mjs +0 -74
  68. package/esm2022/lib/components/gravity-calendar-v2/datepicker/utils/matrix-utils.mjs +0 -14
  69. package/esm2022/lib/components/gravity-calendar-v2/gravity-calendar-v2.component.mjs +0 -259
  70. package/esm2022/lib/components/gravity-card-button/gravity-card-button.component.mjs +0 -41
  71. package/esm2022/lib/components/gravity-checkbox/gravity-checkbox.component.mjs +0 -52
  72. package/esm2022/lib/components/gravity-chip-group/gravity-chip-group.component.mjs +0 -45
  73. package/esm2022/lib/components/gravity-currency/gravity-currency.component.mjs +0 -26
  74. package/esm2022/lib/components/gravity-currency-display-v2/gravity-currency-display-v2.component.mjs +0 -26
  75. package/esm2022/lib/components/gravity-currency-dropdown-short/gravity-currency-dropdown-short.component.mjs +0 -79
  76. package/esm2022/lib/components/gravity-data-views-v2/gravity-data-views-v2.component.mjs +0 -48
  77. package/esm2022/lib/components/gravity-date-picker/components/day-calendar/day-calendar.component.mjs +0 -273
  78. package/esm2022/lib/components/gravity-date-picker/components/day-calendar/range-days-calendar.utils.mjs +0 -241
  79. package/esm2022/lib/components/gravity-date-picker/components/month-calendar/month-calendar.component.mjs +0 -109
  80. package/esm2022/lib/components/gravity-date-picker/components/year-calendar/year-calendar.component.mjs +0 -105
  81. package/esm2022/lib/components/gravity-date-picker/gravity-date-picker.component.mjs +0 -84
  82. package/esm2022/lib/components/gravity-date-picker/shared/date-picker.constants.mjs +0 -61
  83. package/esm2022/lib/components/gravity-date-picker/shared/date-picker.modal.mjs +0 -2
  84. package/esm2022/lib/components/gravity-date-picker/shared/date-picker.utils.mjs +0 -110
  85. package/esm2022/lib/components/gravity-detail-container/gravity-detail-container.component.mjs +0 -93
  86. package/esm2022/lib/components/gravity-dialog/gravity-dialog.component.mjs +0 -26
  87. package/esm2022/lib/components/gravity-dropdown-label/gravity-dropdown-label.component.mjs +0 -65
  88. package/esm2022/lib/components/gravity-dropdown-list/filter-by.pipe.mjs +0 -44
  89. package/esm2022/lib/components/gravity-dropdown-list/gravity-dropdown-list.component.mjs +0 -542
  90. package/esm2022/lib/components/gravity-dropdown-list-display/display-currency-items.mjs +0 -2
  91. package/esm2022/lib/components/gravity-dropdown-list-display/gravity-dropdown-list-display.component.mjs +0 -203
  92. package/esm2022/lib/components/gravity-editable-input/gravity-editable-input.component.mjs +0 -52
  93. package/esm2022/lib/components/gravity-generic-avatar/gravity-generic-avatar.component.mjs +0 -33
  94. package/esm2022/lib/components/gravity-generic-avatar-secondary/gravity-generic-avatar-secondary.component.mjs +0 -28
  95. package/esm2022/lib/components/gravity-icon/gravity-icon.component.mjs +0 -120
  96. package/esm2022/lib/components/gravity-icon-button/gravity-icon-button.component.mjs +0 -54
  97. package/esm2022/lib/components/gravity-link/gravity-link.component.mjs +0 -39
  98. package/esm2022/lib/components/gravity-modal/gravity-modal.component.mjs +0 -44
  99. package/esm2022/lib/components/gravity-modal/gravity-modal.model.mjs +0 -2
  100. package/esm2022/lib/components/gravity-multi-language/gravity-multi-language.component.mjs +0 -31
  101. package/esm2022/lib/components/gravity-navigation-card/gravity-navigation-card.component.mjs +0 -54
  102. package/esm2022/lib/components/gravity-network-pill/gravity-network-pill.component.mjs +0 -33
  103. package/esm2022/lib/components/gravity-notification/gravity-notification-content.interface.mjs +0 -2
  104. package/esm2022/lib/components/gravity-notification/gravity-notification.component.mjs +0 -33
  105. package/esm2022/lib/components/gravity-notification-instant/gravity-notification-instant-container.component.mjs +0 -32
  106. package/esm2022/lib/components/gravity-pagination/gravity-pagination.component.mjs +0 -113
  107. package/esm2022/lib/components/gravity-push-notifications/gravity-push-notifications.component.mjs +0 -55
  108. package/esm2022/lib/components/gravity-radio-button/gravity-radio-button.component.mjs +0 -34
  109. package/esm2022/lib/components/gravity-segmented-button/gravity-segmented-button.component.mjs +0 -85
  110. package/esm2022/lib/components/gravity-status-indicator/gravity-status-indicator.component.mjs +0 -38
  111. package/esm2022/lib/components/gravity-stepper/gravity-stepper.component.mjs +0 -37
  112. package/esm2022/lib/components/gravity-switch/gravity-switch.component.mjs +0 -56
  113. package/esm2022/lib/components/gravity-tab-primary/gravity-tab-primary.component.mjs +0 -34
  114. package/esm2022/lib/components/gravity-tab-secondary/gravity-tab-secondary.component.mjs +0 -36
  115. package/esm2022/lib/components/gravity-table/gravity-table.component.mjs +0 -212
  116. package/esm2022/lib/components/gravity-tables-v2/gravity-tables-v2.component.mjs +0 -18
  117. package/esm2022/lib/components/gravity-text-field/gravity-text-field.component.mjs +0 -294
  118. package/esm2022/lib/components/gravity-text-field-amount-only/gravity-text-field-amount-only.component.mjs +0 -160
  119. package/esm2022/lib/components/gravity-text-field-number-only/gravity-text-field-number-only.component.mjs +0 -126
  120. package/esm2022/lib/components/gravity-tooltip-container/gravity-tooltip-container.component.mjs +0 -44
  121. package/esm2022/lib/components/gravity-tree-view/gravity-tree-view.component.mjs +0 -69
  122. package/esm2022/lib/components/gravity-tree-view/models/node-item.mjs +0 -2
  123. package/esm2022/lib/components/gravity-tree-view/models/node-selected-state.mjs +0 -7
  124. package/esm2022/lib/components/gravity-tree-view/models/node-state.mjs +0 -2
  125. package/esm2022/lib/components/gravity-tree-view/models/tree-callbacks.mjs +0 -2
  126. package/esm2022/lib/components/gravity-tree-view/node/node-checkbox/node-checkbox.component.mjs +0 -26
  127. package/esm2022/lib/components/gravity-tree-view/node/node-name/node-name.component.mjs +0 -13
  128. package/esm2022/lib/components/gravity-tree-view/node/node-toggle/node-toggle.component.mjs +0 -15
  129. package/esm2022/lib/components/gravity-tree-view/node/node.component.mjs +0 -17
  130. package/esm2022/lib/components/gravity-tree-view/service/tree-service.mjs +0 -242
  131. package/esm2022/lib/gravity-design-system.module.mjs +0 -370
  132. package/esm2022/lib/layout/gravity-header/gravity-header.component.mjs +0 -72
  133. package/esm2022/lib/layout/gravity-menu/gravity-menu.component.mjs +0 -232
  134. package/esm2022/lib/model/gravity-menu-items.model.mjs +0 -5
  135. package/esm2022/lib/model/gravity-push-notifications.model.mjs +0 -2
  136. package/esm2022/lib/services/gravity-dialog-manager.service.mjs +0 -48
  137. package/esm2022/lib/services/gravity-dropdown-manager.service.mjs +0 -21
  138. package/esm2022/lib/services/gravity-instant-notifications.service.mjs +0 -23
  139. package/esm2022/lib/services/gravity-push-notifications-service.service.mjs +0 -70
  140. package/esm2022/lib/services/gravity-responsive.service.mjs +0 -47
  141. package/esm2022/lib/vendor/gravity-tooltip/gravity-tooltip.component.mjs +0 -249
  142. package/esm2022/lib/vendor/gravity-tooltip/gravity-tooltip.directive.mjs +0 -494
  143. package/esm2022/lib/vendor/gravity-tooltip/gravity-tooltip.module.mjs +0 -41
  144. package/esm2022/lib/vendor/gravity-tooltip/index.mjs +0 -4
  145. package/esm2022/lib/vendor/gravity-tooltip/options.interface.mjs +0 -2
  146. package/esm2022/lib/vendor/gravity-tooltip/options.mjs +0 -38
  147. package/esm2022/lib/vendor/gravity-tooltip/options.service.mjs +0 -7
  148. package/esm2022/progressio_resources-gravity-design-system.mjs +0 -5
  149. package/esm2022/public-api.mjs +0 -62
  150. package/index.d.ts +0 -5
  151. package/lib/components/gravity-attach-file/gravity-attach-file.component.d.ts +0 -22
  152. package/lib/components/gravity-avatar-stack/gravity-avatar-stack.component.d.ts +0 -22
  153. package/lib/components/gravity-backdrop/gravity-backdrop.component.d.ts +0 -6
  154. package/lib/components/gravity-badge/gravity-badge.component.d.ts +0 -12
  155. package/lib/components/gravity-button/gravity-button.component.d.ts +0 -17
  156. package/lib/components/gravity-calendar-v2/datepicker/base/bs-datepicker-container.d.ts +0 -42
  157. package/lib/components/gravity-calendar-v2/datepicker/bs-datepicker-inline.component.d.ts +0 -40
  158. package/lib/components/gravity-calendar-v2/datepicker/bs-datepicker-inline.config.d.ts +0 -6
  159. package/lib/components/gravity-calendar-v2/datepicker/bs-datepicker.callbacks.d.ts +0 -6
  160. package/lib/components/gravity-calendar-v2/datepicker/bs-datepicker.component.d.ts +0 -66
  161. package/lib/components/gravity-calendar-v2/datepicker/bs-datepicker.config.d.ts +0 -53
  162. package/lib/components/gravity-calendar-v2/datepicker/bs-daterangepicker-inline.component.d.ts +0 -37
  163. package/lib/components/gravity-calendar-v2/datepicker/bs-daterangepicker-inline.config.d.ts +0 -7
  164. package/lib/components/gravity-calendar-v2/datepicker/bs-daterangepicker.component.d.ts +0 -61
  165. package/lib/components/gravity-calendar-v2/datepicker/bs-daterangepicker.config.d.ts +0 -7
  166. package/lib/components/gravity-calendar-v2/datepicker/components/bs-datepicker-container.component.d.ts +0 -36
  167. package/lib/components/gravity-calendar-v2/datepicker/components/bs-datepicker-inline-container.component.d.ts +0 -15
  168. package/lib/components/gravity-calendar-v2/datepicker/components/bs-datepicker-navigation-view/bs-datepicker-navigation-view.component.d.ts +0 -26
  169. package/lib/components/gravity-calendar-v2/datepicker/components/bs-daterangepicker-container.component.d.ts +0 -42
  170. package/lib/components/gravity-calendar-v2/datepicker/components/bs-daterangepicker-inline-container.component.d.ts +0 -15
  171. package/lib/components/gravity-calendar-v2/datepicker/components/bs-days-calendar-view/bs-datepicker-day-decorator.directive.d.ts +0 -7
  172. package/lib/components/gravity-calendar-v2/datepicker/components/bs-days-calendar-view/bs-days-calendar-view.component.d.ts +0 -25
  173. package/lib/components/gravity-calendar-v2/datepicker/components/bs-months-calendar-view/bs-months-calendar-view.component.d.ts +0 -23
  174. package/lib/components/gravity-calendar-v2/datepicker/components/bs-years-calendar-view/bs-years-calendar-view.component.d.ts +0 -22
  175. package/lib/components/gravity-calendar-v2/datepicker/datepicker-animations.d.ts +0 -3
  176. package/lib/components/gravity-calendar-v2/datepicker/engine/calc-days-calendar.d.ts +0 -2
  177. package/lib/components/gravity-calendar-v2/datepicker/engine/flag-days-calendar.d.ts +0 -12
  178. package/lib/components/gravity-calendar-v2/datepicker/engine/flag-months-calendar.d.ts +0 -12
  179. package/lib/components/gravity-calendar-v2/datepicker/engine/flag-years-calendar.d.ts +0 -13
  180. package/lib/components/gravity-calendar-v2/datepicker/engine/format-days-calendar.d.ts +0 -2
  181. package/lib/components/gravity-calendar-v2/datepicker/engine/format-months-calendar.d.ts +0 -2
  182. package/lib/components/gravity-calendar-v2/datepicker/engine/format-years-calendar.d.ts +0 -4
  183. package/lib/components/gravity-calendar-v2/datepicker/engine/view-mode.d.ts +0 -2
  184. package/lib/components/gravity-calendar-v2/datepicker/models/index.d.ts +0 -86
  185. package/lib/components/gravity-calendar-v2/datepicker/reducer/_defaults.d.ts +0 -3
  186. package/lib/components/gravity-calendar-v2/datepicker/reducer/bs-datepicker.actions.d.ts +0 -34
  187. package/lib/components/gravity-calendar-v2/datepicker/reducer/bs-datepicker.effects.d.ts +0 -34
  188. package/lib/components/gravity-calendar-v2/datepicker/reducer/bs-datepicker.reducer.d.ts +0 -3
  189. package/lib/components/gravity-calendar-v2/datepicker/reducer/bs-datepicker.state.d.ts +0 -34
  190. package/lib/components/gravity-calendar-v2/datepicker/reducer/bs-datepicker.store.d.ts +0 -8
  191. package/lib/components/gravity-calendar-v2/datepicker/services/header-type.service.d.ts +0 -17
  192. package/lib/components/gravity-calendar-v2/datepicker/utils/bs-calendar-utils.d.ts +0 -13
  193. package/lib/components/gravity-calendar-v2/datepicker/utils/date-abbreviation.pipe.d.ts +0 -13
  194. package/lib/components/gravity-calendar-v2/datepicker/utils/matrix-utils.d.ts +0 -9
  195. package/lib/components/gravity-calendar-v2/gravity-calendar-v2.component.d.ts +0 -57
  196. package/lib/components/gravity-card-button/gravity-card-button.component.d.ts +0 -15
  197. package/lib/components/gravity-checkbox/gravity-checkbox.component.d.ts +0 -21
  198. package/lib/components/gravity-chip-group/gravity-chip-group.component.d.ts +0 -19
  199. package/lib/components/gravity-currency/gravity-currency.component.d.ts +0 -13
  200. package/lib/components/gravity-currency-display-v2/gravity-currency-display-v2.component.d.ts +0 -16
  201. package/lib/components/gravity-currency-dropdown-short/gravity-currency-dropdown-short.component.d.ts +0 -32
  202. package/lib/components/gravity-data-views-v2/gravity-data-views-v2.component.d.ts +0 -22
  203. package/lib/components/gravity-date-picker/components/day-calendar/day-calendar.component.d.ts +0 -105
  204. package/lib/components/gravity-date-picker/components/day-calendar/range-days-calendar.utils.d.ts +0 -12
  205. package/lib/components/gravity-date-picker/components/month-calendar/month-calendar.component.d.ts +0 -71
  206. package/lib/components/gravity-date-picker/components/year-calendar/year-calendar.component.d.ts +0 -70
  207. package/lib/components/gravity-date-picker/gravity-date-picker.component.d.ts +0 -64
  208. package/lib/components/gravity-date-picker/shared/date-picker.constants.d.ts +0 -52
  209. package/lib/components/gravity-date-picker/shared/date-picker.modal.d.ts +0 -25
  210. package/lib/components/gravity-date-picker/shared/date-picker.utils.d.ts +0 -10
  211. package/lib/components/gravity-detail-container/gravity-detail-container.component.d.ts +0 -28
  212. package/lib/components/gravity-dialog/gravity-dialog.component.d.ts +0 -22
  213. package/lib/components/gravity-dropdown-label/gravity-dropdown-label.component.d.ts +0 -19
  214. package/lib/components/gravity-dropdown-list/filter-by.pipe.d.ts +0 -10
  215. package/lib/components/gravity-dropdown-list/gravity-dropdown-list.component.d.ts +0 -84
  216. package/lib/components/gravity-dropdown-list-display/display-currency-items.d.ts +0 -12
  217. package/lib/components/gravity-dropdown-list-display/gravity-dropdown-list-display.component.d.ts +0 -52
  218. package/lib/components/gravity-editable-input/gravity-editable-input.component.d.ts +0 -19
  219. package/lib/components/gravity-generic-avatar/gravity-generic-avatar.component.d.ts +0 -11
  220. package/lib/components/gravity-generic-avatar-secondary/gravity-generic-avatar-secondary.component.d.ts +0 -11
  221. package/lib/components/gravity-icon/gravity-icon.component.d.ts +0 -85
  222. package/lib/components/gravity-icon-button/gravity-icon-button.component.d.ts +0 -22
  223. package/lib/components/gravity-link/gravity-link.component.d.ts +0 -14
  224. package/lib/components/gravity-modal/gravity-modal.component.d.ts +0 -19
  225. package/lib/components/gravity-modal/gravity-modal.model.d.ts +0 -17
  226. package/lib/components/gravity-multi-language/gravity-multi-language.component.d.ts +0 -12
  227. package/lib/components/gravity-navigation-card/gravity-navigation-card.component.d.ts +0 -24
  228. package/lib/components/gravity-network-pill/gravity-network-pill.component.d.ts +0 -14
  229. package/lib/components/gravity-notification/gravity-notification-content.interface.d.ts +0 -7
  230. package/lib/components/gravity-notification/gravity-notification.component.d.ts +0 -12
  231. package/lib/components/gravity-notification-instant/gravity-notification-instant-container.component.d.ts +0 -10
  232. package/lib/components/gravity-pagination/gravity-pagination.component.d.ts +0 -24
  233. package/lib/components/gravity-push-notifications/gravity-push-notifications.component.d.ts +0 -21
  234. package/lib/components/gravity-radio-button/gravity-radio-button.component.d.ts +0 -14
  235. package/lib/components/gravity-segmented-button/gravity-segmented-button.component.d.ts +0 -33
  236. package/lib/components/gravity-status-indicator/gravity-status-indicator.component.d.ts +0 -14
  237. package/lib/components/gravity-stepper/gravity-stepper.component.d.ts +0 -13
  238. package/lib/components/gravity-switch/gravity-switch.component.d.ts +0 -24
  239. package/lib/components/gravity-tab-primary/gravity-tab-primary.component.d.ts +0 -16
  240. package/lib/components/gravity-tab-secondary/gravity-tab-secondary.component.d.ts +0 -17
  241. package/lib/components/gravity-table/gravity-table.component.d.ts +0 -25
  242. package/lib/components/gravity-tables-v2/gravity-tables-v2.component.d.ts +0 -7
  243. package/lib/components/gravity-text-field/gravity-text-field.component.d.ts +0 -62
  244. package/lib/components/gravity-text-field-amount-only/gravity-text-field-amount-only.component.d.ts +0 -43
  245. package/lib/components/gravity-text-field-number-only/gravity-text-field-number-only.component.d.ts +0 -30
  246. package/lib/components/gravity-tooltip-container/gravity-tooltip-container.component.d.ts +0 -40
  247. package/lib/components/gravity-tree-view/gravity-tree-view.component.d.ts +0 -21
  248. package/lib/components/gravity-tree-view/models/node-item.d.ts +0 -10
  249. package/lib/components/gravity-tree-view/models/node-selected-state.d.ts +0 -5
  250. package/lib/components/gravity-tree-view/models/node-state.d.ts +0 -14
  251. package/lib/components/gravity-tree-view/models/tree-callbacks.d.ts +0 -9
  252. package/lib/components/gravity-tree-view/node/node-checkbox/node-checkbox.component.d.ts +0 -11
  253. package/lib/components/gravity-tree-view/node/node-name/node-name.component.d.ts +0 -7
  254. package/lib/components/gravity-tree-view/node/node-toggle/node-toggle.component.d.ts +0 -7
  255. package/lib/components/gravity-tree-view/node/node.component.d.ts +0 -7
  256. package/lib/components/gravity-tree-view/service/tree-service.d.ts +0 -42
  257. package/lib/gravity-design-system.module.d.ts +0 -85
  258. package/lib/layout/gravity-header/gravity-header.component.d.ts +0 -36
  259. package/lib/layout/gravity-menu/gravity-menu.component.d.ts +0 -53
  260. package/lib/model/gravity-menu-items.model.d.ts +0 -31
  261. package/lib/model/gravity-push-notifications.model.d.ts +0 -22
  262. package/lib/services/gravity-dialog-manager.service.d.ts +0 -17
  263. package/lib/services/gravity-dropdown-manager.service.d.ts +0 -12
  264. package/lib/services/gravity-instant-notifications.service.d.ts +0 -10
  265. package/lib/services/gravity-push-notifications-service.service.d.ts +0 -14
  266. package/lib/services/gravity-responsive.service.d.ts +0 -11
  267. package/lib/vendor/gravity-tooltip/gravity-tooltip.component.d.ts +0 -44
  268. package/lib/vendor/gravity-tooltip/gravity-tooltip.directive.d.ts +0 -113
  269. package/lib/vendor/gravity-tooltip/gravity-tooltip.module.d.ts +0 -12
  270. package/lib/vendor/gravity-tooltip/index.d.ts +0 -3
  271. package/lib/vendor/gravity-tooltip/options.d.ts +0 -24
  272. package/lib/vendor/gravity-tooltip/options.interface.d.ts +0 -42
  273. package/lib/vendor/gravity-tooltip/options.service.d.ts +0 -7
  274. package/public-api.d.ts +0 -53
@@ -1,241 +0,0 @@
1
- import { calendarDateToDate, dateToString, getStartDate, stringToCalendarDate, stringToDate, dateToCalendarDay } from "../../shared/date-picker.utils";
2
- export function isPreview(component, day) {
3
- const current = calendarDateToDate(day);
4
- if (component.selectedRangeStart && !component.selectedRangeEnd && component.hoveredDay) {
5
- const start = calendarDateToDate(component.selectedRangeStart);
6
- const hover = calendarDateToDate(component.hoveredDay);
7
- if (hover <= start)
8
- return false;
9
- return current > start && current <= hover;
10
- }
11
- if (!component.selectedRangeStart && component.selectedRangeEnd && component.hoveredDay) {
12
- const end = calendarDateToDate(component.selectedRangeEnd);
13
- const hover = calendarDateToDate(component.hoveredDay);
14
- if (hover >= end)
15
- return false;
16
- return current < end && current >= hover;
17
- }
18
- return false;
19
- }
20
- export function processPreselectedRangeDate(component) {
21
- let end = null;
22
- let start = null;
23
- setTimeout(() => { if (!component.appearance.isMobile) {
24
- component.startDateField.focus();
25
- } }, 0);
26
- if (Array.isArray(component.config.initDate)) {
27
- [start, end] = component.config.initDate;
28
- }
29
- if (start instanceof Date) {
30
- component.selectedRangeStart = dateToCalendarDay(start);
31
- setTimeout(() => {
32
- if (!component.appearance.isMobile) {
33
- component.endDateField.focus();
34
- }
35
- component.startDateField.inputValue = dateToString(start, component.appearance.language);
36
- }, 0);
37
- }
38
- if (end instanceof Date) {
39
- component.currentDate = getStartDate(end);
40
- component.selectedRangeEnd = dateToCalendarDay(end);
41
- setTimeout(() => {
42
- if (!component.appearance.isMobile) {
43
- component.endDateField.focus();
44
- }
45
- component.endDateField.inputValue = dateToString(end, component.appearance.language);
46
- }, 0);
47
- }
48
- else if (start instanceof Date) {
49
- component.currentDate = getStartDate(start);
50
- }
51
- }
52
- export function getRangeSelectionClass(component, day) {
53
- const current = calendarDateToDate(day);
54
- const start = component.selectedRangeStart ? calendarDateToDate(component.selectedRangeStart) : null;
55
- const end = component.selectedRangeEnd ? calendarDateToDate(component.selectedRangeEnd) : null;
56
- if (!start && !end) {
57
- return component.focused === 'start' ? 'nsl-start' : 'nsl-end';
58
- }
59
- if (start && !end) {
60
- if (current.getTime() === start.getTime())
61
- return 'sl start';
62
- if (current.getTime() < start.getTime())
63
- return 'nsl-start';
64
- return 'in-slt nsl-end';
65
- }
66
- if (!start && end) {
67
- if (current.getTime() === end.getTime())
68
- return 'sl end';
69
- if (current.getTime() > end.getTime())
70
- return 'nsl-end';
71
- return 'in-slt nsl-start';
72
- }
73
- if (start && end) {
74
- if (current.getTime() === start.getTime() &&
75
- start.getTime() === end.getTime())
76
- return 'start sl same-sln';
77
- if (current.getTime() === start.getTime())
78
- return 'sl start';
79
- if (current.getTime() < start.getTime())
80
- return 'nsl-start';
81
- if (current.getTime() === end.getTime())
82
- return 'sl end';
83
- if (current.getTime() > end.getTime())
84
- return 'nsl-end';
85
- if (current > start && current < end)
86
- return 'sl range';
87
- return 'default';
88
- }
89
- }
90
- export function onSelectDaysRange(component, day) {
91
- const selected = calendarDateToDate(day);
92
- const hasEnd = !!component.selectedRangeEnd;
93
- const hasStart = !!component.selectedRangeStart;
94
- const language = component.appearance.language;
95
- const endDate = hasEnd ? calendarDateToDate(component.selectedRangeEnd) : null;
96
- const startDate = hasStart ? calendarDateToDate(component.selectedRangeStart) : null;
97
- Object.assign(component, {
98
- notification: null,
99
- endDateError: '', startDateError: '',
100
- endFieldDisabled: false, startFieldDisabled: false,
101
- });
102
- const updateField = (field) => {
103
- component[`selectedRange${field === 'start' ? 'Start' : 'End'}`] = day;
104
- component[`${field}DateField`].inputValue = dateToString(selected, language);
105
- setTimeout(() => {
106
- const focusField = field === 'start' ?
107
- (component.selectedRangeEnd ? 'start' : 'end') :
108
- (component.selectedRangeStart ? 'end' : 'start');
109
- if (!component.appearance.isMobile) {
110
- component[`${focusField}DateField`].focus();
111
- }
112
- component[`${focusField}DateField`].inputElement.nativeElement.setSelectionRange(10, 10);
113
- }, 100);
114
- };
115
- if (!hasStart && !hasEnd) {
116
- updateField(component.focused);
117
- return;
118
- }
119
- if (hasStart && !hasEnd) {
120
- selected >= startDate ? updateField('end') : updateField('start');
121
- return;
122
- }
123
- if (!hasStart && hasEnd) {
124
- selected < endDate ? updateField('start') : updateField('end');
125
- return;
126
- }
127
- if (hasStart && hasEnd) {
128
- selected < startDate ? updateField('start') : updateField('end');
129
- return;
130
- }
131
- }
132
- export function onApplyRageDate(component) {
133
- const start = calendarDateToDate(component.selectedRangeStart);
134
- const end = calendarDateToDate(component.selectedRangeEnd);
135
- component.calendarResponse.emit([start, end]);
136
- }
137
- export function onHoverDay(component, day) {
138
- const startSelected = !!component.selectedRangeStart && !component.selectedRangeEnd;
139
- const endSelected = !!component.selectedRangeEnd && !component.selectedRangeStart;
140
- if (startSelected || endSelected) {
141
- component.hoveredDay = day;
142
- }
143
- }
144
- export function onClearHover(component) {
145
- component.hoveredDay = null;
146
- }
147
- export function searchDate(component, dateStr, target) {
148
- const i18n = component.i18n;
149
- const date = stringToDate(dateStr, component.appearance.language);
150
- const calendarDate = stringToCalendarDate(dateStr, component.appearance.language);
151
- const errorProp = target === 'start' ? 'startDateError' : 'endDateError';
152
- const field = target === 'start' ? component.startDateField : component.endDateField;
153
- const oppositeDisabled = target === 'start' ? 'endFieldDisabled' : 'startFieldDisabled';
154
- if (!dateStr) {
155
- component[oppositeDisabled] = false;
156
- return;
157
- }
158
- if (!calendarDate) {
159
- component[oppositeDisabled] = true;
160
- component[errorProp] = i18n.invalid_date;
161
- if (!component.appearance.isMobile) {
162
- field.focus();
163
- }
164
- component.notification = { text: i18n.select_valid_date, error: true };
165
- return;
166
- }
167
- if (!validateDateLimits(component, date, target)) {
168
- component[oppositeDisabled] = true;
169
- return;
170
- }
171
- const otherCalendarDate = target === 'start' ? component.selectedRangeEnd : component.selectedRangeStart;
172
- const otherDate = otherCalendarDate ? calendarDateToDate(otherCalendarDate) : null;
173
- if ((target === 'start' && otherDate && date > otherDate) ||
174
- (target === 'end' && otherDate && date < otherDate)) {
175
- component[oppositeDisabled] = true;
176
- component[errorProp] = i18n.invalid_date;
177
- if (!component.appearance.isMobile) {
178
- field.focus();
179
- }
180
- component.notification = { text: target === 'start' ? i18n.start_before_end : i18n.end_after_start, error: true };
181
- return;
182
- }
183
- if (target === 'start') {
184
- component.selectedRangeStart = calendarDate;
185
- if (!component.selectedRangeEnd && !component.appearance.isMobile)
186
- setTimeout(() => component.endDateField.focus(), 100);
187
- }
188
- else {
189
- component.selectedRangeEnd = calendarDate;
190
- if (!component.selectedRangeStart && !component.appearance.isMobile)
191
- setTimeout(() => component.startDateField.focus(), 100);
192
- }
193
- component[errorProp] = null;
194
- component.currentDate = date;
195
- component.notification = null;
196
- component[oppositeDisabled] = false;
197
- }
198
- export function validateDateLimits(component, date, target) {
199
- if (component.config.minDate && date < component.config.minDate) {
200
- component.notification = { text: component.i18n.date_unavailable, error: true };
201
- target === 'start' ? component.startDateError = component.i18n.invalid_date : component.endDateError = component.i18n.invalid_date;
202
- return false;
203
- }
204
- if (component.config.maxDate && date > component.config.maxDate) {
205
- component.notification = { text: component.i18n.date_unavailable, error: true };
206
- target === 'start' ? component.startDateError = component.i18n.invalid_date : component.endDateError = component.i18n.invalid_date;
207
- return false;
208
- }
209
- return true;
210
- }
211
- export function onDateKeyup(component, event, target) {
212
- const ignoredKeys = ['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight', 'Enter', ' ', 'Spacebar'];
213
- if (ignoredKeys.includes(event.key)) {
214
- return;
215
- }
216
- const errorProp = target === 'start' ? 'startDateError' : 'endDateError';
217
- const disabled = target === 'start' ? 'endFieldDisabled' : 'startFieldDisabled';
218
- const dateInput = target === 'start' ? component.startDateField : component.endDateField;
219
- const selectedRangeProp = target === 'start' ? 'selectedRangeStart' : 'selectedRangeEnd';
220
- const value = dateInput?.inputValue ?? '';
221
- if (value.length < 10) {
222
- component[selectedRangeProp] = null;
223
- if (!component.notification?.error) {
224
- component.notification = null;
225
- }
226
- if (value.length < 1) {
227
- component[errorProp] = '';
228
- component[disabled] = false;
229
- component.notification = null;
230
- }
231
- }
232
- if (value.length > 9) {
233
- searchDate(this, value, target);
234
- if (this.appearance.isMobile) {
235
- if (document.activeElement instanceof HTMLElement) {
236
- document.activeElement.blur();
237
- }
238
- }
239
- }
240
- }
241
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFuZ2UtZGF5cy1jYWxlbmRhci51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dyYXZpdHktZGVzaWduLXN5c3RlbS9zcmMvbGliL2NvbXBvbmVudHMvZ3Jhdml0eS1kYXRlLXBpY2tlci9jb21wb25lbnRzL2RheS1jYWxlbmRhci9yYW5nZS1kYXlzLWNhbGVuZGFyLnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBQyxrQkFBa0IsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBRXJKLE1BQU0sVUFBVSxTQUFTLENBQUMsU0FBK0IsRUFBRSxHQUFpQjtJQUMzRSxNQUFNLE9BQU8sR0FBRyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUV4QyxJQUFJLFNBQVMsQ0FBQyxrQkFBa0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsSUFBSSxTQUFTLENBQUMsVUFBVSxFQUFFO1FBQ3hGLE1BQU0sS0FBSyxHQUFHLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQy9ELE1BQU0sS0FBSyxHQUFHLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN2RCxJQUFJLEtBQUssSUFBSSxLQUFLO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFDakMsT0FBTyxPQUFPLEdBQUcsS0FBSyxJQUFJLE9BQU8sSUFBSSxLQUFLLENBQUM7S0FDM0M7SUFFRCxJQUFJLENBQUMsU0FBUyxDQUFDLGtCQUFrQixJQUFJLFNBQVMsQ0FBQyxnQkFBZ0IsSUFBSSxTQUFTLENBQUMsVUFBVSxFQUFFO1FBQ3hGLE1BQU0sR0FBRyxHQUFHLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzNELE1BQU0sS0FBSyxHQUFH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O1FBQ3RCLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLElBQUksQ0FBQztRQUVwQyxJQUFHLENBQUMsU0FBUyxDQUFDLFlBQVksRUFBRSxLQUFLLEVBQUU7WUFDbEMsU0FBUyxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7U0FDOUI7UUFFRCxJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3JCLFNBQVMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDMUIsU0FBUyxDQUFDLFFBQVEsQ0FBQyxHQUFHLEtBQUssQ0FBQztZQUM1QixTQUFTLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztTQUM5QjtLQUNEO0lBRUQsSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtRQUNyQixVQUFVLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNoQyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFO1lBQzdCLElBQUksUUFBUSxDQUFDLGFBQWEsWUFBWSxXQUFXLEVBQUU7Z0JBQ2xELFFBQVEsQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7YUFDOUI7U0FDRDtLQUNEO0FBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2FsZW5kYXJEYXRlfSBmcm9tIFwiLi4vLi4vc2hhcmVkL2RhdGUtcGlja2VyLm1vZGFsXCI7XG5pbXBvcnQge0RheUNhbGVuZGFyQ29tcG9uZW50fSBmcm9tIFwiLi9kYXktY2FsZW5kYXIuY29tcG9uZW50XCI7XG5pbXBvcnQge2NhbGVuZGFyRGF0ZVRvRGF0ZSwgZGF0ZVRvU3RyaW5nLCBnZXRTdGFydERhdGUsIHN0cmluZ1RvQ2FsZW5kYXJEYXRlLCBzdHJpbmdUb0RhdGUsIGRhdGVUb0NhbGVuZGFyRGF5fSBmcm9tIFwiLi4vLi4vc2hhcmVkL2RhdGUtcGlja2VyLnV0aWxzXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1ByZXZpZXcoY29tcG9uZW50OiBEYXlDYWxlbmRhckNvbXBvbmVudCwgZGF5OiBDYWxlbmRhckRhdGUpOiBib29sZWFuIHtcblx0Y29uc3QgY3VycmVudCA9IGNhbGVuZGFyRGF0ZVRvRGF0ZShkYXkpO1xuXG5cdGlmIChjb21wb25lbnQuc2VsZWN0ZWRSYW5nZVN0YXJ0ICYmICFjb21wb25lbnQuc2VsZWN0ZWRSYW5nZUVuZCAmJiBjb21wb25lbnQuaG92ZXJlZERheSkge1xuXHRcdGNvbnN0IHN0YXJ0ID0gY2FsZW5kYXJEYXRlVG9EYXRlKGNvbXBvbmVudC5zZWxlY3RlZFJhbmdlU3RhcnQpO1xuXHRcdGNvbnN0IGhvdmVyID0gY2FsZW5kYXJEYXRlVG9EYXRlKGNvbXBvbmVudC5ob3ZlcmVkRGF5KTtcblx0XHRpZiAoaG92ZXIgPD0gc3RhcnQpIHJldHVybiBmYWxzZTtcblx0XHRyZXR1cm4gY3VycmVudCA+IHN0YXJ0ICYmIGN1cnJlbnQgPD0gaG92ZXI7XG5cdH1cblxuXHRpZiAoIWNvbXBvbmVudC5zZWxlY3RlZFJhbmdlU3RhcnQgJiYgY29tcG9uZW50LnNlbGVjdGVkUmFuZ2VFbmQgJiYgY29tcG9uZW50LmhvdmVyZWREYXkpIHtcblx0XHRjb25zdCBlbmQgPSBjYWxlbmRhckRhdGVUb0RhdGUoY29tcG9uZW50LnNlbGVjdGVkUmFuZ2VFbmQpO1xuXHRcdGNvbnN0IGhvdmVyID0gY2FsZW5kYXJEYXRlVG9EYXRlKGNvbXBvbmVudC5ob3ZlcmVkRGF5KTtcblx0XHRpZiAoaG92ZXIgPj0gZW5kKSByZXR1cm4gZmFsc2U7XG5cdFx0cmV0dXJuIGN1cnJlbnQgPCBlbmQgJiYgY3VycmVudCA+PSBob3Zlcjtcblx0fVxuXG5cdHJldHVybiBmYWxzZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByb2Nlc3NQcmVzZWxlY3RlZFJhbmdlRGF0ZShjb21wb25lbnQ6IERheUNhbGVuZGFyQ29tcG9uZW50KSB7XG5cdGxldCBlbmQ6IERhdGUgfCBudWxsID0gbnVsbDtcblx0bGV0IHN0YXJ0OiBEYXRlIHwgbnVsbCA9IG51bGw7XG5cblx0c2V0VGltZW91dCgoKSA9PiB7IGlmKCFjb21wb25lbnQuYXBwZWFyYW5jZS5pc01vYmlsZSkgeyBjb21wb25lbnQuc3RhcnREYXRlRmllbGQuZm9jdXMoKTsgfSB9LCAwKVxuXG5cdGlmIChBcnJheS5pc0FycmF5KGNvbXBvbmVudC5jb25maWcuaW5pdERhdGUpKSB7W3N0YXJ0LCBlbmRdID0gY29tcG9uZW50LmNvbmZpZy5pbml0RGF0ZTt9XG5cbiAgaWYgKHN0YXJ0IGluc3RhbmNlb2YgRGF0ZSkge1xuICAgIGNvbXBvbmVudC5zZWxlY3RlZFJhbmdlU3RhcnQgPSBkYXRlVG9DYWxlbmRhckRheShzdGFydCk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG5cdCAgICBpZighY29tcG9uZW50LmFwcGVhcmFuY2UuaXNNb2JpbGUpIHsgY29tcG9uZW50LmVuZERhdGVGaWVsZC5mb2N1cygpOyB9XG5cdFx0XHRjb21wb25lbnQuc3RhcnREYXRlRmllbGQuaW5wdXRWYWx1ZSA9IGRhdGVUb1N0cmluZyhzdGFydCwgY29tcG9uZW50LmFwcGVhcmFuY2UubGFuZ3VhZ2UpO1xuXHRcdH0sIDApO1xuICB9XG5cbiAgaWYgKGVuZCBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICBjb21wb25lbnQuY3VycmVudERhdGUgPSBnZXRTdGFydERhdGUoZW5kKTtcbiAgICBjb21wb25lbnQuc2VsZWN0ZWRSYW5nZUVuZCA9IGRhdGVUb0NhbGVuZGFyRGF5KGVuZCk7XG5cdFx0c2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHRpZighY29tcG9uZW50LmFwcGVhcmFuY2UuaXNNb2JpbGUpIHsgY29tcG9uZW50LmVuZERhdGVGaWVsZC5mb2N1cygpOyB9XG5cdFx0XHRjb21wb25lbnQuZW5kRGF0ZUZpZWxkLmlucHV0VmFsdWUgPSBkYXRlVG9TdHJpbmcoZW5kLCBjb21wb25lbnQuYXBwZWFyYW5jZS5sYW5ndWFnZSk7XG5cdFx0fSwgMCk7XG5cbiAgfSBlbHNlIGlmIChzdGFydCBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICBjb21wb25lbnQuY3VycmVudERhdGUgPSBnZXRTdGFydERhdGUoc3RhcnQpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRSYW5nZVNlbGVjdGlvbkNsYXNzKGNvbXBvbmVudDogRGF5Q2FsZW5kYXJDb21wb25lbnQsIGRheTogQ2FsZW5kYXJEYXRlKTogc3RyaW5nIHtcblx0Y29uc3QgY3VycmVudCA9IGNhbGVuZGFyRGF0ZVRvRGF0ZShkYXkpO1xuXHRjb25zdCBzdGFydCA9IGNvbXBvbmVudC5zZWxlY3RlZFJhbmdlU3RhcnQgPyBjYWxlbmRhckRhdGVUb0RhdGUoY29tcG9uZW50LnNlbGVjdGVkUmFuZ2VTdGFydCkgOiBudWxsO1xuXHRjb25zdCBlbmQgPSBjb21wb25lbnQuc2VsZWN0ZWRSYW5nZUVuZCA/IGNhbGVuZGFyRGF0ZVRvRGF0ZShjb21wb25lbnQuc2VsZWN0ZWRSYW5nZUVuZCkgOiBudWxsO1xuXG5cdGlmICghc3RhcnQgJiYgIWVuZCkge1xuXHRcdHJldHVybiBjb21wb25lbnQuZm9jdXNlZCA9PT0gJ3N0YXJ0JyA/ICduc2wtc3RhcnQnIDogJ25zbC1lbmQnO1xuXHR9XG5cblx0aWYgKHN0YXJ0ICYmICFlbmQpIHtcblx0XHRpZiAoY3VycmVudC5nZXRUaW1lKCkgPT09IHN0YXJ0LmdldFRpbWUoKSkgcmV0dXJuICdzbCBzdGFydCc7XG5cdFx0aWYgKGN1cnJlbnQuZ2V0VGltZSgpIDwgc3RhcnQuZ2V0VGltZSgpKSByZXR1cm4gJ25zbC1zdGFydCc7XG5cdFx0cmV0dXJuICdpbi1zbHQgbnNsLWVuZCc7XG5cdH1cblxuXHRpZiAoIXN0YXJ0ICYmIGVuZCkge1xuXHRcdGlmIChjdXJyZW50LmdldFRpbWUoKSA9PT0gZW5kLmdldFRpbWUoKSkgcmV0dXJuICdzbCBlbmQnO1xuXHRcdGlmIChjdXJyZW50LmdldFRpbWUoKSA+IGVuZC5nZXRUaW1lKCkpIHJldHVybiAnbnNsLWVuZCc7XG5cdFx0cmV0dXJuICdpbi1zbHQgbnNsLXN0YXJ0Jztcblx0fVxuXG5cdGlmIChzdGFydCAmJiBlbmQpIHtcblx0XHRpZihjdXJyZW50LmdldFRpbWUoKSA9PT0gc3RhcnQuZ2V0VGltZSgpICYmXG5cdFx0XHQgc3RhcnQuZ2V0VGltZSgpID09PSBlbmQuZ2V0VGltZSgpKVxuXHRcdFx0XHRyZXR1cm4gJ3N0YXJ0IHNsIHNhbWUtc2xuJztcblxuXHRcdGlmIChjdXJyZW50LmdldFRpbWUoKSA9PT0gc3RhcnQuZ2V0VGltZSgpKSByZXR1cm4gJ3NsIHN0YXJ0Jztcblx0XHRpZiAoY3VycmVudC5nZXRUaW1lKCkgPCBzdGFydC5nZXRUaW1lKCkpIHJldHVybiAnbnNsLXN0YXJ0Jztcblx0XHRpZiAoY3VycmVudC5nZXRUaW1lKCkgPT09IGVuZC5nZXRUaW1lKCkpIHJldHVybiAnc2wgZW5kJztcblx0XHRpZiAoY3VycmVudC5nZXRUaW1lKCkgPiBlbmQuZ2V0VGltZSgpKSByZXR1cm4gJ25zbC1lbmQnO1xuXHRcdGlmIChjdXJyZW50ID4gc3RhcnQgJiYgY3VycmVudCA8IGVuZCkgcmV0dXJuICdzbCByYW5nZSc7XG5cdFx0cmV0dXJuICdkZWZhdWx0Jztcblx0fVxufVxuXG5leHBvcnQgZnVuY3Rpb24gb25TZWxlY3REYXlzUmFuZ2UoY29tcG9uZW50OiBEYXlDYWxlbmRhckNvbXBvbmVudCwgZGF5OiBDYWxlbmRhckRhdGUpOiB2b2lkIHtcblx0Y29uc3Qgc2VsZWN0ZWQgPSBjYWxlbmRhckRhdGVUb0RhdGUoZGF5KTtcblx0Y29uc3QgaGFzRW5kID0gISFjb21wb25lbnQuc2VsZWN0ZWRSYW5nZUVuZDtcblx0Y29uc3QgaGFzU3RhcnQgPSAhIWNvbXBvbmVudC5zZWxlY3RlZFJhbmdlU3RhcnQ7XG5cdGNvbnN0IGxhbmd1YWdlID0gY29tcG9uZW50LmFwcGVhcmFuY2UubGFuZ3VhZ2U7XG5cdGNvbnN0IGVuZERhdGUgPSBoYXNFbmQgPyBjYWxlbmRhckRhdGVUb0RhdGUoY29tcG9uZW50LnNlbGVjdGVkUmFuZ2VFbmQpIDogbnVsbDtcblx0Y29uc3Qgc3RhcnREYXRlID0gaGFzU3RhcnQgPyBjYWxlbmRhckRhdGVUb0RhdGUoY29tcG9uZW50LnNlbGVjdGVkUmFuZ2VTdGFydCkgOiBudWxsO1xuXG5cdE9iamVjdC5hc3NpZ24oY29tcG9uZW50LCB7XG5cdFx0bm90aWZpY2F0aW9uOiBudWxsLFxuXHRcdGVuZERhdGVFcnJvcjogJycsIHN0YXJ0RGF0ZUVycm9yOiAnJyxcblx0XHRlbmRGaWVsZERpc2FibGVkOiBmYWxzZSwgc3RhcnRGaWVsZERpc2FibGVkOiBmYWxzZSxcblx0fSk7XG5cblx0Y29uc3QgdXBkYXRlRmllbGQgPSAoZmllbGQ6ICdzdGFydCcgfCAnZW5kJykgPT4ge1xuXHRcdGNvbXBvbmVudFtgc2VsZWN0ZWRSYW5nZSR7ZmllbGQgPT09ICdzdGFydCcgPyAnU3RhcnQnIDogJ0VuZCd9YF0gPSBkYXk7XG5cdFx0Y29tcG9uZW50W2Ake2ZpZWxkfURhdGVGaWVsZGBdLmlucHV0VmFsdWUgPSBkYXRlVG9TdHJpbmcoc2VsZWN0ZWQsIGxhbmd1YWdlKTtcblxuXHRcdHNldFRpbWVvdXQoKCkgPT4ge1xuXHRcdFx0Y29uc3QgZm9jdXNGaWVsZCA9IGZpZWxkID09PSAnc3RhcnQnID9cblx0XHRcdFx0KGNvbXBvbmVudC5zZWxlY3RlZFJhbmdlRW5kID8gJ3N0YXJ0JyA6ICdlbmQnKSA6XG5cdFx0XHRcdChjb21wb25lbnQuc2VsZWN0ZWRSYW5nZVN0YXJ0ID8gJ2VuZCcgOiAnc3RhcnQnKTtcblxuXHRcdFx0aWYoIWNvbXBvbmVudC5hcHBlYXJhbmNlLmlzTW9iaWxlKSB7IGNvbXBvbmVudFtgJHtmb2N1c0ZpZWxkfURhdGVGaWVsZGBdLmZvY3VzKCk7IH1cblx0XHRcdGNvbXBvbmVudFtgJHtmb2N1c0ZpZWxkfURhdGVGaWVsZGBdLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LnNldFNlbGVjdGlvblJhbmdlKDEwLCAxMCk7XG5cdFx0fSwgMTAwKTtcblx0fTtcblxuXHRpZiAoIWhhc1N0YXJ0ICYmICFoYXNFbmQpIHtcblx0XHR1cGRhdGVGaWVsZChjb21wb25lbnQuZm9jdXNlZCk7XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0aWYgKGhhc1N0YXJ0ICYmICFoYXNFbmQpIHtcblx0XHRzZWxlY3RlZCA+PSBzdGFydERhdGUhID8gdXBkYXRlRmllbGQoJ2VuZCcpIDogdXBkYXRlRmllbGQoJ3N0YXJ0Jyk7XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0aWYgKCFoYXNTdGFydCAmJiBoYXNFbmQpIHtcblx0XHRzZWxlY3RlZCA8IGVuZERhdGUhID8gdXBkYXRlRmllbGQoJ3N0YXJ0JykgOiB1cGRhdGVGaWVsZCgnZW5kJyk7XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0aWYgKGhhc1N0YXJ0ICYmIGhhc0VuZCkge1xuXHRcdHNlbGVjdGVkIDwgc3RhcnREYXRlISA/IHVwZGF0ZUZpZWxkKCdzdGFydCcpIDogdXBkYXRlRmllbGQoJ2VuZCcpO1xuXHRcdHJldHVybjtcblx0fVxufVxuXG5leHBvcnQgZnVuY3Rpb24gb25BcHBseVJhZ2VEYXRlKGNvbXBvbmVudDogRGF5Q2FsZW5kYXJDb21wb25lbnQpe1xuICAgIGNvbnN0IHN0YXJ0ID0gY2FsZW5kYXJEYXRlVG9EYXRlKGNvbXBvbmVudC5zZWxlY3RlZFJhbmdlU3RhcnQpO1xuICAgIGNvbnN0IGVuZCA9IGNhbGVuZGFyRGF0ZVRvRGF0ZShjb21wb25lbnQuc2VsZWN0ZWRSYW5nZUVuZCk7XG4gICAgY29tcG9uZW50LmNhbGVuZGFyUmVzcG9uc2UuZW1pdChbc3RhcnQsIGVuZF0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gb25Ib3ZlckRheShjb21wb25lbnQ6IERheUNhbGVuZGFyQ29tcG9uZW50LCBkYXk6IENhbGVuZGFyRGF0ZSk6IHZvaWQge1xuXHRjb25zdCBzdGFydFNlbGVjdGVkID0gISFjb21wb25lbnQuc2VsZWN0ZWRSYW5nZVN0YXJ0ICYmICFjb21wb25lbnQuc2VsZWN0ZWRSYW5nZUVuZDtcblx0Y29uc3QgZW5kU2VsZWN0ZWQgPSAhIWNvbXBvbmVudC5zZWxlY3RlZFJhbmdlRW5kICYmICFjb21wb25lbnQuc2VsZWN0ZWRSYW5nZVN0YXJ0O1xuXHRpZiAoc3RhcnRTZWxlY3RlZCB8fCBlbmRTZWxlY3RlZCkgeyBjb21wb25lbnQuaG92ZXJlZERheSA9IGRheTsgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gb25DbGVhckhvdmVyKGNvbXBvbmVudDogRGF5Q2FsZW5kYXJDb21wb25lbnQpOiB2b2lkIHtcblx0Y29tcG9uZW50LmhvdmVyZWREYXkgPSBudWxsO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2VhcmNoRGF0ZShjb21wb25lbnQ6IERheUNhbGVuZGFyQ29tcG9uZW50LCBkYXRlU3RyOiBzdHJpbmcsIHRhcmdldDogJ3N0YXJ0JyB8ICdlbmQnKTogdm9pZCB7XG5cdGNvbnN0IGkxOG4gPSBjb21wb25lbnQuaTE4bjtcblx0Y29uc3QgZGF0ZSA9IHN0cmluZ1RvRGF0ZShkYXRlU3RyLCBjb21wb25lbnQuYXBwZWFyYW5jZS5sYW5ndWFnZSk7XG5cdGNvbnN0IGNhbGVuZGFyRGF0ZSA9IHN0cmluZ1RvQ2FsZW5kYXJEYXRlKGRhdGVTdHIsIGNvbXBvbmVudC5hcHBlYXJhbmNlLmxhbmd1YWdlKTtcblx0Y29uc3QgZXJyb3JQcm9wID0gdGFyZ2V0ID09PSAnc3RhcnQnID8gJ3N0YXJ0RGF0ZUVycm9yJyA6ICdlbmREYXRlRXJyb3InO1xuXHRjb25zdCBmaWVsZCA9IHRhcmdldCA9PT0gJ3N0YXJ0JyA/IGNvbXBvbmVudC5zdGFydERhdGVGaWVsZCA6IGNvbXBvbmVudC5lbmREYXRlRmllbGQ7XG5cdGNvbnN0IG9wcG9zaXRlRGlzYWJsZWQgPSB0YXJnZXQgPT09ICdzdGFydCcgPyAnZW5kRmllbGREaXNhYmxlZCcgOiAnc3RhcnRGaWVsZERpc2FibGVkJztcblxuXHRpZiAoIWRhdGVTdHIpIHsgY29tcG9uZW50W29wcG9zaXRlRGlzYWJsZWRdID0gZmFsc2U7IHJldHVybjsgfVxuXG5cdGlmICghY2FsZW5kYXJEYXRlKSB7XG5cdFx0Y29tcG9uZW50W29wcG9zaXRlRGlzYWJsZWRdID0gdHJ1ZTtcblx0XHRjb21wb25lbnRbZXJyb3JQcm9wXSA9IGkxOG4uaW52YWxpZF9kYXRlO1xuXHRcdGlmKCFjb21wb25lbnQuYXBwZWFyYW5jZS5pc01vYmlsZSkgeyBmaWVsZC5mb2N1cygpOyB9XG5cdFx0Y29tcG9uZW50Lm5vdGlmaWNhdGlvbiA9IHsgdGV4dDogaTE4bi5zZWxlY3RfdmFsaWRfZGF0ZSwgZXJyb3I6IHRydWUgfTtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRpZiAoIXZhbGlkYXRlRGF0ZUxpbWl0cyhjb21wb25lbnQsIGRhdGUsIHRhcmdldCkpIHtcblx0XHRjb21wb25lbnRbb3Bwb3NpdGVEaXNhYmxlZF0gPSB0cnVlO1xuXHRcdHJldHVybjtcblx0fVxuXG5cdGNvbnN0IG90aGVyQ2FsZW5kYXJEYXRlID0gdGFyZ2V0ID09PSAnc3RhcnQnID8gY29tcG9uZW50LnNlbGVjdGVkUmFuZ2VFbmQgOiBjb21wb25lbnQuc2VsZWN0ZWRSYW5nZVN0YXJ0O1xuXHRjb25zdCBvdGhlckRhdGUgPSBvdGhlckNhbGVuZGFyRGF0ZSA/IGNhbGVuZGFyRGF0ZVRvRGF0ZShvdGhlckNhbGVuZGFyRGF0ZSkgOiBudWxsO1xuXG5cdGlmICgodGFyZ2V0ID09PSAnc3RhcnQnICYmIG90aGVyRGF0ZSAmJiBkYXRlID4gb3RoZXJEYXRlKSB8fFxuXHRcdCh0YXJnZXQgPT09ICdlbmQnICYmIG90aGVyRGF0ZSAmJiBkYXRlIDwgb3RoZXJEYXRlKSkge1xuXHRcdGNvbXBvbmVudFtvcHBvc2l0ZURpc2FibGVkXSA9IHRydWU7XG5cdFx0Y29tcG9uZW50W2Vycm9yUHJvcF0gPSBpMThuLmludmFsaWRfZGF0ZTtcblx0XHRpZighY29tcG9uZW50LmFwcGVhcmFuY2UuaXNNb2JpbGUpIHsgZmllbGQuZm9jdXMoKTsgfVxuXHRcdGNvbXBvbmVudC5ub3RpZmljYXRpb24gPSB7IHRleHQ6IHRhcmdldCA9PT0gJ3N0YXJ0JyA/IGkxOG4uc3RhcnRfYmVmb3JlX2VuZCA6IGkxOG4uZW5kX2FmdGVyX3N0YXJ0LCBlcnJvcjogdHJ1ZSB9O1xuXHRcdHJldHVybjtcblx0fVxuXG5cdGlmICh0YXJnZXQgPT09ICdzdGFydCcpIHtcblx0XHRjb21wb25lbnQuc2VsZWN0ZWRSYW5nZVN0YXJ0ID0gY2FsZW5kYXJEYXRlO1xuXHRcdGlmICghY29tcG9uZW50LnNlbGVjdGVkUmFuZ2VFbmQgJiYgIWNvbXBvbmVudC5hcHBlYXJhbmNlLmlzTW9iaWxlKSBzZXRUaW1lb3V0KCgpID0+IGNvbXBvbmVudC5lbmREYXRlRmllbGQuZm9jdXMoKSwgMTAwKTtcblx0fSBlbHNlIHtcblx0XHRjb21wb25lbnQuc2VsZWN0ZWRSYW5nZUVuZCA9IGNhbGVuZGFyRGF0ZTtcblx0XHRpZiAoIWNvbXBvbmVudC5zZWxlY3RlZFJhbmdlU3RhcnQgJiYgIWNvbXBvbmVudC5hcHBlYXJhbmNlLmlzTW9iaWxlKSBzZXRUaW1lb3V0KCgpID0+IGNvbXBvbmVudC5zdGFydERhdGVGaWVsZC5mb2N1cygpLCAxMDApO1xuXHR9XG5cblx0Y29tcG9uZW50W2Vycm9yUHJvcF0gPSBudWxsO1xuXHRjb21wb25lbnQuY3VycmVudERhdGUgPSBkYXRlO1xuXHRjb21wb25lbnQubm90aWZpY2F0aW9uID0gbnVsbDtcblx0Y29tcG9uZW50W29wcG9zaXRlRGlzYWJsZWRdID0gZmFsc2U7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZURhdGVMaW1pdHMoY29tcG9uZW50OiBEYXlDYWxlbmRhckNvbXBvbmVudCwgZGF0ZTogRGF0ZSwgdGFyZ2V0OiAnc3RhcnQnIHwgJ2VuZCcpIDogYm9vbGVhbiB7XG5cdGlmIChjb21wb25lbnQuY29uZmlnLm1pbkRhdGUgJiYgZGF0ZSA8IGNvbXBvbmVudC5jb25maWcubWluRGF0ZSkge1xuXHRcdGNvbXBvbmVudC5ub3RpZmljYXRpb24gPSB7IHRleHQ6IGNvbXBvbmVudC5pMThuLmRhdGVfdW5hdmFpbGFibGUsIGVycm9yOiB0cnVlIH07XG5cdFx0dGFyZ2V0ID09PSAnc3RhcnQnID8gY29tcG9uZW50LnN0YXJ0RGF0ZUVycm9yID0gY29tcG9uZW50LmkxOG4uaW52YWxpZF9kYXRlIDogY29tcG9uZW50LmVuZERhdGVFcnJvciA9IGNvbXBvbmVudC5pMThuLmludmFsaWRfZGF0ZTtcblx0XHRyZXR1cm4gZmFsc2U7XG5cdH1cblxuXHRpZiAoY29tcG9uZW50LmNvbmZpZy5tYXhEYXRlICYmIGRhdGUgPiBjb21wb25lbnQuY29uZmlnLm1heERhdGUpIHtcblx0XHRjb21wb25lbnQubm90aWZpY2F0aW9uID0geyB0ZXh0OiBjb21wb25lbnQuaTE4bi5kYXRlX3VuYXZhaWxhYmxlLCBlcnJvcjogdHJ1ZSB9O1xuXHRcdHRhcmdldCA9PT0gJ3N0YXJ0JyA/IGNvbXBvbmVudC5zdGFydERhdGVFcnJvciA9IGNvbXBvbmVudC5pMThuLmludmFsaWRfZGF0ZSA6IGNvbXBvbmVudC5lbmREYXRlRXJyb3IgPSBjb21wb25lbnQuaTE4bi5pbnZhbGlkX2RhdGU7XG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9XG5cblx0cmV0dXJuIHRydWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBvbkRhdGVLZXl1cChjb21wb25lbnQ6IERheUNhbGVuZGFyQ29tcG9uZW50LCBldmVudDogS2V5Ym9hcmRFdmVudCwgdGFyZ2V0OiAnc3RhcnQnIHwgJ2VuZCcpOiB2b2lkIHtcblx0Y29uc3QgaWdub3JlZEtleXMgPSBbJ0Fycm93VXAnLCAnQXJyb3dEb3duJywgJ0Fycm93TGVmdCcsICdBcnJvd1JpZ2h0JywgJ0VudGVyJywgJyAnLCAnU3BhY2ViYXInXTtcblx0aWYgKGlnbm9yZWRLZXlzLmluY2x1ZGVzKGV2ZW50LmtleSkpIHsgcmV0dXJuOyB9XG5cblx0Y29uc3QgZXJyb3JQcm9wID0gdGFyZ2V0ID09PSAnc3RhcnQnID8gJ3N0YXJ0RGF0ZUVycm9yJyA6ICdlbmREYXRlRXJyb3InO1xuXHRjb25zdCBkaXNhYmxlZCA9IHRhcmdldCA9PT0gJ3N0YXJ0JyA/ICdlbmRGaWVsZERpc2FibGVkJyA6ICdzdGFydEZpZWxkRGlzYWJsZWQnO1xuXHRjb25zdCBkYXRlSW5wdXQgPSB0YXJnZXQgPT09ICdzdGFydCcgPyBjb21wb25lbnQuc3RhcnREYXRlRmllbGQgOiBjb21wb25lbnQuZW5kRGF0ZUZpZWxkO1xuXHRjb25zdCBzZWxlY3RlZFJhbmdlUHJvcCA9IHRhcmdldCA9PT0gJ3N0YXJ0JyA/ICdzZWxlY3RlZFJhbmdlU3RhcnQnIDogJ3NlbGVjdGVkUmFuZ2VFbmQnO1xuXG5cdGNvbnN0IHZhbHVlID0gZGF0ZUlucHV0Py5pbnB1dFZhbHVlID8/ICcnO1xuXG5cdGlmICh2YWx1ZS5sZW5ndGggPCAxMCkge1xuXHRcdGNvbXBvbmVudFtzZWxlY3RlZFJhbmdlUHJvcF0gPSBudWxsO1xuXG5cdFx0aWYoIWNvbXBvbmVudC5ub3RpZmljYXRpb24/LmVycm9yKSB7XG5cdFx0XHRjb21wb25lbnQubm90aWZpY2F0aW9uID0gbnVsbDtcblx0XHR9XG5cblx0XHRpZiAodmFsdWUubGVuZ3RoIDwgMSkge1xuXHRcdFx0Y29tcG9uZW50W2Vycm9yUHJvcF0gPSAnJztcblx0XHRcdGNvbXBvbmVudFtkaXNhYmxlZF0gPSBmYWxzZTtcblx0XHRcdGNvbXBvbmVudC5ub3RpZmljYXRpb24gPSBudWxsO1xuXHRcdH1cblx0fVxuXG5cdGlmICh2YWx1ZS5sZW5ndGggPiA5KSB7XG5cdFx0c2VhcmNoRGF0ZSh0aGlzLCB2YWx1ZSwgdGFyZ2V0KTtcblx0XHRpZiAodGhpcy5hcHBlYXJhbmNlLmlzTW9iaWxlKSB7XG5cdFx0XHRpZiAoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSB7XG5cdFx0XHRcdGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuYmx1cigpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufSJdfQ==
@@ -1,109 +0,0 @@
1
- import { changeDate, getStartDate, isPeriodAvailable } from "../../shared/date-picker.utils";
2
- import { Component, EventEmitter, Input, Output, } from '@angular/core';
3
- import { CALENDAR_I18N, MONTHS_EN, MONTHS_SHORT_EN, MONTHS_ES, MONTHS_SHORT_ES } from "../../shared/date-picker.constants";
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@angular/common";
6
- import * as i2 from "../../../gravity-icon-button/gravity-icon-button.component";
7
- import * as i3 from "../../../gravity-link/gravity-link.component";
8
- import * as i4 from "../../../gravity-dropdown-label/gravity-dropdown-label.component";
9
- export class MonthCalendarComponent {
10
- constructor() {
11
- this.restart = false;
12
- this.integratedMode = false;
13
- this.clearSelection = new EventEmitter();
14
- this.response = new EventEmitter();
15
- this.currentDate = new Date();
16
- this.changeDate = changeDate;
17
- this.isPeriodAvailable = isPeriodAvailable;
18
- }
19
- get i18n() { return CALENDAR_I18N[this.appearance.language]; }
20
- get monthsList() { return this.appearance.language === 'en' ? MONTHS_EN : MONTHS_ES; }
21
- get monthsShortList() { return this.appearance.language === 'en' ? MONTHS_SHORT_EN : MONTHS_SHORT_ES; }
22
- ngOnChanges(changes) {
23
- const shouldRestart = changes['restart'] && this.restart;
24
- const shouldProcessPreSelected = changes['preSelectedDate'] && this.initDate;
25
- if (shouldRestart || shouldProcessPreSelected) {
26
- this.processInitDate();
27
- }
28
- }
29
- trackByMonth(_, month) {
30
- return `${month.year}-${month.month}`;
31
- }
32
- processInitDate() {
33
- if (this.initDate instanceof Date) {
34
- this.currentDate = getStartDate(this.initDate);
35
- this.selectedMonth = {
36
- month: this.initDate.getMonth(),
37
- year: this.initDate.getFullYear()
38
- };
39
- }
40
- }
41
- onSelectMonth(month) {
42
- this.selectedMonth = month;
43
- this.currentDate = new Date(month.year, month.month, 1);
44
- this.response.emit(this.currentDate);
45
- return;
46
- }
47
- getMonthSelectionClass(month) {
48
- const classes = [];
49
- const { minDate, maxDate } = this.config ?? {};
50
- const firstDay = new Date(month.year, month.month, 1);
51
- const lastDay = new Date(month.year, month.month + 1, 0);
52
- let isDisabled = false;
53
- if (minDate && lastDay < minDate) {
54
- isDisabled = true;
55
- }
56
- if (maxDate && firstDay > maxDate) {
57
- isDisabled = true;
58
- }
59
- if (isDisabled) {
60
- classes.push('disabled');
61
- }
62
- if (this.selectedMonth && this.selectedMonth.month === month.month && this.selectedMonth.year === month.year) {
63
- classes.push('selected');
64
- }
65
- return classes.join(' ');
66
- }
67
- isCurrentMonth(month) {
68
- if (new Date().getMonth() === month.month &&
69
- new Date().getFullYear() === month.year) {
70
- return true;
71
- }
72
- }
73
- clearSelectedMonth() {
74
- this.selectedMonth = null;
75
- this.clearSelection.emit();
76
- }
77
- applySelectedMonth() {
78
- const date = new Date(this.selectedMonth.year, this.selectedMonth.month);
79
- this.response.emit(date);
80
- }
81
- getYearMonthsList() {
82
- const months = [];
83
- for (let i = 0; i < 12; i++) {
84
- months.push({ month: i, year: this.currentDate.getFullYear() });
85
- }
86
- return months;
87
- }
88
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MonthCalendarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
89
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MonthCalendarComponent, selector: "month-calendar", inputs: { config: "config", initDate: "initDate", restart: "restart", appearance: "appearance", integratedMode: "integratedMode" }, outputs: { clearSelection: "clearSelection", response: "response" }, usesOnChanges: true, ngImport: i0, template: "<section class=\"gravity-date-picker-header\" [class.mobile]=\"appearance.isMobile\">\n <div class=\"header-container\">\n <gravity-icon-button *ngIf=\"!integratedMode\"\n [size]=\"'sm'\"\n [type]=\"'primary'\"\n [icon]=\"'arrow-left'\"\n [supportText]=\"i18n.preview_year\"\n (clickOnIcon)=\"currentDate = changeDate(-1, currentDate, false)\"\n [state]=\"(appearance.state !== 'disabled') && isPeriodAvailable(currentDate, config.minDate, 'month', 'prev') ? 'active' : 'disabled'\"/>\n\n <div class=\"year-label\">\n <gravity-dropdown-label\n [size]=\"'sm'\" [attr.data-cy]=\"'datePicker_yearLabel'\"\n [fontClass]=\"'hr-title sm-bold'\"\n [state]=\"integratedMode && appearance.state !== 'disabled' ? 'active' : 'inactive'\"\n [label]=\"integratedMode ? monthsList[currentDate.getMonth()] : currentDate.getFullYear().toString()\"\n [isOpen]=\"integratedMode\" (onClickLabel)=\"response.emit(currentDate)\" > </gravity-dropdown-label>\n </div>\n\n <gravity-icon-button *ngIf=\"!integratedMode\"\n [size]=\"'sm'\"\n [type]=\"'primary'\"\n [icon]=\"'arrow-right'\"\n [supportText]=\"i18n.next_year\"\n (clickOnIcon)=\"currentDate = changeDate(1, currentDate, false)\"\n [state]=\"(appearance.state !== 'disabled') && isPeriodAvailable(currentDate, config.maxDate, 'month', 'next') ? 'active' : 'disabled'\"/>\n </div>\n\n <div class=\"separator-line\"></div>\n</section>\n\n<section class=\"gravity-date-picker-body\" [class.mobile]=\"appearance.isMobile\">\n <div class=\"items-table\" [attr.data-cy]=\"'datePicker_monthSelector'\">\n <span class=\"hr-body sm-regular item\" *ngFor=\"let month of getYearMonthsList(), trackBy: trackByMonth\"\n [ngClass]=\"appearance.state === 'disabled' ? 'disabled' : getMonthSelectionClass(month)\" (click)=\"onSelectMonth(month)\"\n [class.current]=\"isCurrentMonth(month)\"> {{ monthsShortList[month.month] }}\n </span>\n </div>\n\n <div *ngIf=\"!integratedMode && selectedMonth\" class=\"action-section\" >\n <gravity-link [linkText]=\"i18n.clear\" [state]=\"!selectedMonth ? 'disabled' : 'active'\"\n [fontClass]=\"appearance.isMobile ? 'hr-body md-regular' : 'hr-body sm-regular'\" (click)=\"clearSelectedMonth()\"/>\n </div>\n</section>", styles: [":root{--gravity-spacing-none: 0;--gravity-spacing-xxxs: .125rem;--gravity-spacing-xxs: .25rem;--gravity-spacing-xs: .5rem;--gravity-spacing-sm: 1rem;--gravity-spacing-md: 1.5rem;--gravity-spacing-lg: 2rem;--gravity-spacing-xl: 2.5rem;--gravity-spacing-xxl: 3rem;--gravity-spacing-xxxl: 4rem;--gravity-spacing-xxxxl: 6rem;--gravity-spacing-xxxxxl: 12rem}.gravity-padding-none{padding:0!important}.gravity-padding-top-none{padding-top:0!important}.gravity-padding-bottom-none{padding-bottom:0!important}.gravity-padding-left-none{padding-left:0!important}.gravity-padding-right-none{padding-right:0!important}.gravity-padding-block-none{padding-block:0!important}.gravity-padding-inline-none{padding-inline:0!important}.gravity-padding-xxs{padding:.25rem!important}.gravity-padding-top-xxs{padding-top:.25rem!important}.gravity-padding-bottom-xxs{padding-bottom:.25rem!important}.gravity-padding-left-xxs{padding-left:.25rem!important}.gravity-padding-right-xxs{padding-right:.25rem!important}.gravity-padding-block-xxs{padding-block:.25rem!important}.gravity-padding-inline-xxs{padding-inline:.25rem!important}.gravity-padding-xs{padding:.5rem!important}.gravity-padding-top-xs{padding-top:.5rem!important}.gravity-padding-bottom-xs{padding-bottom:.5rem!important}.gravity-padding-left-xs{padding-left:.5rem!important}.gravity-padding-right-xs{padding-right:.5rem!important}.gravity-padding-block-xs{padding-block:.5rem!important}.gravity-padding-inline-xs{padding-inline:.5rem!important}.gravity-padding-sm{padding:1rem!important}.gravity-padding-top-sm{padding-top:1rem!important}.gravity-padding-bottom-sm{padding-bottom:1rem!important}.gravity-padding-left-sm{padding-left:1rem!important}.gravity-padding-right-sm{padding-right:1rem!important}.gravity-padding-block-sm{padding-block:1rem!important}.gravity-padding-inline-sm{padding-inline:1rem!important}.gravity-padding-md{padding:1.5rem!important}.gravity-padding-top-md{padding-top:1.5rem!important}.gravity-padding-bottom-md{padding-bottom:1.5rem!important}.gravity-padding-left-md{padding-left:1.5rem!important}.gravity-padding-right-md{padding-right:1.5rem!important}.gravity-padding-block-md{padding-block:1.5rem!important}.gravity-padding-inline-md{padding-inline:1.5rem!important}.gravity-padding-lg{padding:2rem!important}.gravity-padding-top-lg{padding-top:2rem!important}.gravity-padding-bottom-lg{padding-bottom:2rem!important}.gravity-padding-left-lg{padding-left:2rem!important}.gravity-padding-right-lg{padding-right:2rem!important}.gravity-padding-block-lg{padding-block:2rem!important}.gravity-padding-inline-lg{padding-inline:2rem!important}.gravity-padding-xl{padding:2.5rem!important}.gravity-padding-top-xl{padding-top:2.5rem!important}.gravity-padding-bottom-xl{padding-bottom:2.5rem!important}.gravity-padding-left-xl{padding-left:2.5rem!important}.gravity-padding-right-xl{padding-right:2.5rem!important}.gravity-padding-block-xl{padding-block:2.5rem!important}.gravity-padding-inline-xl{padding-inline:2.5rem!important}.gravity-padding-xxl{padding:3rem!important}.gravity-padding-top-xxl{padding-top:3rem!important}.gravity-padding-bottom-xxl{padding-bottom:3rem!important}.gravity-padding-left-xxl{padding-left:3rem!important}.gravity-padding-right-xxl{padding-right:3rem!important}.gravity-padding-block-xxl{padding-block:3rem!important}.gravity-padding-inline-xxl{padding-inline:3rem!important}.gravity-padding-xxxl{padding:4rem!important}.gravity-padding-top-xxxl{padding-top:4rem!important}.gravity-padding-bottom-xxxl{padding-bottom:4rem!important}.gravity-padding-left-xxxl{padding-left:4rem!important}.gravity-padding-right-xxxl{padding-right:4rem!important}.gravity-padding-block-xxxl{padding-block:4rem!important}.gravity-padding-inline-xxxl{padding-inline:4rem!important}.gravity-padding-xxxxl{padding:6rem!important}.gravity-padding-top-xxxxl{padding-top:6rem!important}.gravity-padding-bottom-xxxxl{padding-bottom:6rem!important}.gravity-padding-left-xxxxl{padding-left:6rem!important}.gravity-padding-right-xxxxl{padding-right:6rem!important}.gravity-padding-block-xxxxl{padding-block:6rem!important}.gravity-padding-inline-xxxxl{padding-inline:6rem!important}.gravity-padding-xxxxxl{padding:12rem!important}.gravity-padding-top-xxxxxl{padding-top:12rem!important}.gravity-padding-bottom-xxxxxl{padding-bottom:12rem!important}.gravity-padding-left-xxxxxl{padding-left:12rem!important}.gravity-padding-right-xxxxxl{padding-right:12rem!important}.gravity-padding-block-xxxxxl{padding-block:12rem!important}.gravity-padding-inline-xxxxxl{padding-inline:12rem!important}.gravity-margin-none{margin:0!important}.gravity-margin-top-none{margin-top:0!important}.gravity-margin-bottom-none{margin-bottom:0!important}.gravity-margin-left-none{margin-left:0!important}.gravity-margin-right-none{margin-right:0!important}.gravity-margin-block-none{margin-block:0!important}.gravity-margin-inline-none{margin-inline:0!important}.gravity-margin-xxs{margin:.25rem!important}.gravity-margin-top-xxs{margin-top:.25rem!important}.gravity-margin-bottom-xxs{margin-bottom:.25rem!important}.gravity-margin-left-xxs{margin-left:.25rem!important}.gravity-margin-right-xxs{margin-right:.25rem!important}.gravity-margin-block-xxs{margin-block:.25rem!important}.gravity-margin-inline-xxs{margin-inline:.25rem!important}.gravity-margin-xs{margin:.5rem!important}.gravity-margin-top-xs{margin-top:.5rem!important}.gravity-margin-bottom-xs{margin-bottom:.5rem!important}.gravity-margin-left-xs{margin-left:.5rem!important}.gravity-margin-right-xs{margin-right:.5rem!important}.gravity-margin-block-xs{margin-block:.5rem!important}.gravity-margin-inline-xs{margin-inline:.5rem!important}.gravity-margin-sm{margin:1rem!important}.gravity-margin-top-sm{margin-top:1rem!important}.gravity-margin-bottom-sm{margin-bottom:1rem!important}.gravity-margin-left-sm{margin-left:1rem!important}.gravity-margin-right-sm{margin-right:1rem!important}.gravity-margin-block-sm{margin-block:1rem!important}.gravity-margin-inline-sm{margin-inline:1rem!important}.gravity-margin-md{margin:1.5rem!important}.gravity-margin-top-md{margin-top:1.5rem!important}.gravity-margin-bottom-md{margin-bottom:1.5rem!important}.gravity-margin-left-md{margin-left:1.5rem!important}.gravity-margin-right-md{margin-right:1.5rem!important}.gravity-margin-block-md{margin-block:1.5rem!important}.gravity-margin-inline-md{margin-inline:1.5rem!important}.gravity-margin-lg{margin:2rem!important}.gravity-margin-top-lg{margin-top:2rem!important}.gravity-margin-bottom-lg{margin-bottom:2rem!important}.gravity-margin-left-lg{margin-left:2rem!important}.gravity-margin-right-lg{margin-right:2rem!important}.gravity-margin-block-lg{margin-block:2rem!important}.gravity-margin-inline-lg{margin-inline:2rem!important}.gravity-margin-xl{margin:2.5rem!important}.gravity-margin-top-xl{margin-top:2.5rem!important}.gravity-margin-bottom-xl{margin-bottom:2.5rem!important}.gravity-margin-left-xl{margin-left:2.5rem!important}.gravity-margin-right-xl{margin-right:2.5rem!important}.gravity-margin-block-xl{margin-block:2.5rem!important}.gravity-margin-inline-xl{margin-inline:2.5rem!important}.gravity-margin-xxl{margin:3rem!important}.gravity-margin-top-xxl{margin-top:3rem!important}.gravity-margin-bottom-xxl{margin-bottom:3rem!important}.gravity-margin-left-xxl{margin-left:3rem!important}.gravity-margin-right-xxl{margin-right:3rem!important}.gravity-margin-block-xxl{margin-block:3rem!important}.gravity-margin-inline-xxl{margin-inline:3rem!important}.gravity-margin-xxxl{margin:4rem!important}.gravity-margin-top-xxxl{margin-top:4rem!important}.gravity-margin-bottom-xxxl{margin-bottom:4rem!important}.gravity-margin-left-xxxl{margin-left:4rem!important}.gravity-margin-right-xxxl{margin-right:4rem!important}.gravity-margin-block-xxxl{margin-block:4rem!important}.gravity-margin-inline-xxxl{margin-inline:4rem!important}.gravity-margin-xxxxl{margin:6rem!important}.gravity-margin-top-xxxxl{margin-top:6rem!important}.gravity-margin-bottom-xxxxl{margin-bottom:6rem!important}.gravity-margin-left-xxxxl{margin-left:6rem!important}.gravity-margin-right-xxxxl{margin-right:6rem!important}.gravity-margin-block-xxxxl{margin-block:6rem!important}.gravity-margin-inline-xxxxl{margin-inline:6rem!important}.gravity-margin-xxxxxl{margin:12rem!important}.gravity-margin-top-xxxxxl{margin-top:12rem!important}.gravity-margin-bottom-xxxxxl{margin-bottom:12rem!important}.gravity-margin-left-xxxxxl{margin-left:12rem!important}.gravity-margin-right-xxxxxl{margin-right:12rem!important}.gravity-margin-block-xxxxxl{margin-block:12rem!important}.gravity-margin-inline-xxxxxl{margin-inline:12rem!important}.border-radius-none{border-radius:0}.border-radius-xs{border-radius:.0625rem}.border-radius-sm{border-radius:.3125rem}.border-radius-md{border-radius:.625rem}.border-radius-lg{border-radius:.9375rem}.border-radius-xl{border-radius:1.25rem}.border-radius-xxl{border-radius:2rem}.border-radius-rounded{border-radius:6.25rem}.next-button,.previous-button{cursor:pointer;padding:var(--gravity-spacing-xs);border-radius:var(--gravity-spacing-xs)}.next-button:not(.disabled):hover,.previous-button:not(.disabled):hover{background:var(--bg-button-active-tertiary)}.next-button.disabled,.previous-button.disabled{cursor:default;pointer-events:none;--icon-color: var(--on-bg-disabled)}.separator-line{border-bottom:2px solid var(--divider-menu-active-primary)}.action-section{height:25px;display:flex;align-self:stretch;align-items:center;justify-content:space-between}.gravity-date-picker-header{width:215px;height:40px;display:flex;align-self:stretch;align-items:center;flex-direction:column;justify-content:center;gap:var(--gravity-spacing-sm);padding-top:var(--gravity-spacing-xs)}.gravity-date-picker-header .header-container{display:flex;align-items:center;align-self:stretch;justify-content:space-between}.gravity-date-picker-header .separator-line{width:215px}.gravity-date-picker-header.mobile,.gravity-date-picker-header.mobile .separator-line{width:100%}.gravity-date-picker-body{width:215px;display:flex;align-items:center;align-self:stretch;flex-direction:column;justify-content:center;gap:var(--gravity-spacing-sm);margin-top:var(--gravity-spacing-sm)}.gravity-date-picker-body .items-table{display:flex;flex-wrap:wrap;justify-content:space-between;gap:0 var(--gravity-spacing-sm)}.gravity-date-picker-body .items-table .item{width:37px;height:25px;display:flex;cursor:pointer;align-items:center;justify-content:center;border-radius:var(--gravity-spacing-xs);color:var(--on-bg-button-pressed-tertiary);border:2px solid var(--bg-calender-primary)}.gravity-date-picker-body .items-table .item.current{border-color:var(--bg-number-calendar-hover-primary)}.gravity-date-picker-body .items-table .item:not(.disabled):not(.selected):hover{color:var(--on-bg-button-pressed-tertiary);background:var(--bg-button-active-tertiary);border-color:var(--bg-button-active-tertiary)}.gravity-date-picker-body .items-table .item.selected{color:var(--on-bg-button-pressed-primary);background:var(--bg-button-pressed-primary);border-color:var(--bg-button-pressed-primary)}.gravity-date-picker-body .items-table .item.disabled{cursor:default;pointer-events:none;color:var(--on-bg-disabled)}.gravity-date-picker-body.mobile{width:100%}.gravity-date-picker-body.mobile .items-table{gap:var(--gravity-spacing-md) var(--gravity-spacing-sm)}.gravity-date-picker-body.mobile .items-table .item{width:70px;height:43px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.GravityIconButtonComponent, selector: "gravity-icon-button", inputs: ["cypressTag", "icon", "supportText", "variant", "size", "type", "state", "badge"], outputs: ["clickOnIcon"] }, { kind: "component", type: i3.GravityLinkComponent, selector: "gravity-link", inputs: ["linkText", "fontClass", "link", "cypressTag", "iconName", "target", "iconPosition", "iconSize", "state"] }, { kind: "component", type: i4.GravityDropdownLabelComponent, selector: "gravity-dropdown-label", inputs: ["label", "fontClass", "isOpen", "stopPropagation", "size", "state"], outputs: ["onClickLabel"] }] }); }
90
- }
91
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MonthCalendarComponent, decorators: [{
92
- type: Component,
93
- args: [{ selector: 'month-calendar', template: "<section class=\"gravity-date-picker-header\" [class.mobile]=\"appearance.isMobile\">\n <div class=\"header-container\">\n <gravity-icon-button *ngIf=\"!integratedMode\"\n [size]=\"'sm'\"\n [type]=\"'primary'\"\n [icon]=\"'arrow-left'\"\n [supportText]=\"i18n.preview_year\"\n (clickOnIcon)=\"currentDate = changeDate(-1, currentDate, false)\"\n [state]=\"(appearance.state !== 'disabled') && isPeriodAvailable(currentDate, config.minDate, 'month', 'prev') ? 'active' : 'disabled'\"/>\n\n <div class=\"year-label\">\n <gravity-dropdown-label\n [size]=\"'sm'\" [attr.data-cy]=\"'datePicker_yearLabel'\"\n [fontClass]=\"'hr-title sm-bold'\"\n [state]=\"integratedMode && appearance.state !== 'disabled' ? 'active' : 'inactive'\"\n [label]=\"integratedMode ? monthsList[currentDate.getMonth()] : currentDate.getFullYear().toString()\"\n [isOpen]=\"integratedMode\" (onClickLabel)=\"response.emit(currentDate)\" > </gravity-dropdown-label>\n </div>\n\n <gravity-icon-button *ngIf=\"!integratedMode\"\n [size]=\"'sm'\"\n [type]=\"'primary'\"\n [icon]=\"'arrow-right'\"\n [supportText]=\"i18n.next_year\"\n (clickOnIcon)=\"currentDate = changeDate(1, currentDate, false)\"\n [state]=\"(appearance.state !== 'disabled') && isPeriodAvailable(currentDate, config.maxDate, 'month', 'next') ? 'active' : 'disabled'\"/>\n </div>\n\n <div class=\"separator-line\"></div>\n</section>\n\n<section class=\"gravity-date-picker-body\" [class.mobile]=\"appearance.isMobile\">\n <div class=\"items-table\" [attr.data-cy]=\"'datePicker_monthSelector'\">\n <span class=\"hr-body sm-regular item\" *ngFor=\"let month of getYearMonthsList(), trackBy: trackByMonth\"\n [ngClass]=\"appearance.state === 'disabled' ? 'disabled' : getMonthSelectionClass(month)\" (click)=\"onSelectMonth(month)\"\n [class.current]=\"isCurrentMonth(month)\"> {{ monthsShortList[month.month] }}\n </span>\n </div>\n\n <div *ngIf=\"!integratedMode && selectedMonth\" class=\"action-section\" >\n <gravity-link [linkText]=\"i18n.clear\" [state]=\"!selectedMonth ? 'disabled' : 'active'\"\n [fontClass]=\"appearance.isMobile ? 'hr-body md-regular' : 'hr-body sm-regular'\" (click)=\"clearSelectedMonth()\"/>\n </div>\n</section>", styles: [":root{--gravity-spacing-none: 0;--gravity-spacing-xxxs: .125rem;--gravity-spacing-xxs: .25rem;--gravity-spacing-xs: .5rem;--gravity-spacing-sm: 1rem;--gravity-spacing-md: 1.5rem;--gravity-spacing-lg: 2rem;--gravity-spacing-xl: 2.5rem;--gravity-spacing-xxl: 3rem;--gravity-spacing-xxxl: 4rem;--gravity-spacing-xxxxl: 6rem;--gravity-spacing-xxxxxl: 12rem}.gravity-padding-none{padding:0!important}.gravity-padding-top-none{padding-top:0!important}.gravity-padding-bottom-none{padding-bottom:0!important}.gravity-padding-left-none{padding-left:0!important}.gravity-padding-right-none{padding-right:0!important}.gravity-padding-block-none{padding-block:0!important}.gravity-padding-inline-none{padding-inline:0!important}.gravity-padding-xxs{padding:.25rem!important}.gravity-padding-top-xxs{padding-top:.25rem!important}.gravity-padding-bottom-xxs{padding-bottom:.25rem!important}.gravity-padding-left-xxs{padding-left:.25rem!important}.gravity-padding-right-xxs{padding-right:.25rem!important}.gravity-padding-block-xxs{padding-block:.25rem!important}.gravity-padding-inline-xxs{padding-inline:.25rem!important}.gravity-padding-xs{padding:.5rem!important}.gravity-padding-top-xs{padding-top:.5rem!important}.gravity-padding-bottom-xs{padding-bottom:.5rem!important}.gravity-padding-left-xs{padding-left:.5rem!important}.gravity-padding-right-xs{padding-right:.5rem!important}.gravity-padding-block-xs{padding-block:.5rem!important}.gravity-padding-inline-xs{padding-inline:.5rem!important}.gravity-padding-sm{padding:1rem!important}.gravity-padding-top-sm{padding-top:1rem!important}.gravity-padding-bottom-sm{padding-bottom:1rem!important}.gravity-padding-left-sm{padding-left:1rem!important}.gravity-padding-right-sm{padding-right:1rem!important}.gravity-padding-block-sm{padding-block:1rem!important}.gravity-padding-inline-sm{padding-inline:1rem!important}.gravity-padding-md{padding:1.5rem!important}.gravity-padding-top-md{padding-top:1.5rem!important}.gravity-padding-bottom-md{padding-bottom:1.5rem!important}.gravity-padding-left-md{padding-left:1.5rem!important}.gravity-padding-right-md{padding-right:1.5rem!important}.gravity-padding-block-md{padding-block:1.5rem!important}.gravity-padding-inline-md{padding-inline:1.5rem!important}.gravity-padding-lg{padding:2rem!important}.gravity-padding-top-lg{padding-top:2rem!important}.gravity-padding-bottom-lg{padding-bottom:2rem!important}.gravity-padding-left-lg{padding-left:2rem!important}.gravity-padding-right-lg{padding-right:2rem!important}.gravity-padding-block-lg{padding-block:2rem!important}.gravity-padding-inline-lg{padding-inline:2rem!important}.gravity-padding-xl{padding:2.5rem!important}.gravity-padding-top-xl{padding-top:2.5rem!important}.gravity-padding-bottom-xl{padding-bottom:2.5rem!important}.gravity-padding-left-xl{padding-left:2.5rem!important}.gravity-padding-right-xl{padding-right:2.5rem!important}.gravity-padding-block-xl{padding-block:2.5rem!important}.gravity-padding-inline-xl{padding-inline:2.5rem!important}.gravity-padding-xxl{padding:3rem!important}.gravity-padding-top-xxl{padding-top:3rem!important}.gravity-padding-bottom-xxl{padding-bottom:3rem!important}.gravity-padding-left-xxl{padding-left:3rem!important}.gravity-padding-right-xxl{padding-right:3rem!important}.gravity-padding-block-xxl{padding-block:3rem!important}.gravity-padding-inline-xxl{padding-inline:3rem!important}.gravity-padding-xxxl{padding:4rem!important}.gravity-padding-top-xxxl{padding-top:4rem!important}.gravity-padding-bottom-xxxl{padding-bottom:4rem!important}.gravity-padding-left-xxxl{padding-left:4rem!important}.gravity-padding-right-xxxl{padding-right:4rem!important}.gravity-padding-block-xxxl{padding-block:4rem!important}.gravity-padding-inline-xxxl{padding-inline:4rem!important}.gravity-padding-xxxxl{padding:6rem!important}.gravity-padding-top-xxxxl{padding-top:6rem!important}.gravity-padding-bottom-xxxxl{padding-bottom:6rem!important}.gravity-padding-left-xxxxl{padding-left:6rem!important}.gravity-padding-right-xxxxl{padding-right:6rem!important}.gravity-padding-block-xxxxl{padding-block:6rem!important}.gravity-padding-inline-xxxxl{padding-inline:6rem!important}.gravity-padding-xxxxxl{padding:12rem!important}.gravity-padding-top-xxxxxl{padding-top:12rem!important}.gravity-padding-bottom-xxxxxl{padding-bottom:12rem!important}.gravity-padding-left-xxxxxl{padding-left:12rem!important}.gravity-padding-right-xxxxxl{padding-right:12rem!important}.gravity-padding-block-xxxxxl{padding-block:12rem!important}.gravity-padding-inline-xxxxxl{padding-inline:12rem!important}.gravity-margin-none{margin:0!important}.gravity-margin-top-none{margin-top:0!important}.gravity-margin-bottom-none{margin-bottom:0!important}.gravity-margin-left-none{margin-left:0!important}.gravity-margin-right-none{margin-right:0!important}.gravity-margin-block-none{margin-block:0!important}.gravity-margin-inline-none{margin-inline:0!important}.gravity-margin-xxs{margin:.25rem!important}.gravity-margin-top-xxs{margin-top:.25rem!important}.gravity-margin-bottom-xxs{margin-bottom:.25rem!important}.gravity-margin-left-xxs{margin-left:.25rem!important}.gravity-margin-right-xxs{margin-right:.25rem!important}.gravity-margin-block-xxs{margin-block:.25rem!important}.gravity-margin-inline-xxs{margin-inline:.25rem!important}.gravity-margin-xs{margin:.5rem!important}.gravity-margin-top-xs{margin-top:.5rem!important}.gravity-margin-bottom-xs{margin-bottom:.5rem!important}.gravity-margin-left-xs{margin-left:.5rem!important}.gravity-margin-right-xs{margin-right:.5rem!important}.gravity-margin-block-xs{margin-block:.5rem!important}.gravity-margin-inline-xs{margin-inline:.5rem!important}.gravity-margin-sm{margin:1rem!important}.gravity-margin-top-sm{margin-top:1rem!important}.gravity-margin-bottom-sm{margin-bottom:1rem!important}.gravity-margin-left-sm{margin-left:1rem!important}.gravity-margin-right-sm{margin-right:1rem!important}.gravity-margin-block-sm{margin-block:1rem!important}.gravity-margin-inline-sm{margin-inline:1rem!important}.gravity-margin-md{margin:1.5rem!important}.gravity-margin-top-md{margin-top:1.5rem!important}.gravity-margin-bottom-md{margin-bottom:1.5rem!important}.gravity-margin-left-md{margin-left:1.5rem!important}.gravity-margin-right-md{margin-right:1.5rem!important}.gravity-margin-block-md{margin-block:1.5rem!important}.gravity-margin-inline-md{margin-inline:1.5rem!important}.gravity-margin-lg{margin:2rem!important}.gravity-margin-top-lg{margin-top:2rem!important}.gravity-margin-bottom-lg{margin-bottom:2rem!important}.gravity-margin-left-lg{margin-left:2rem!important}.gravity-margin-right-lg{margin-right:2rem!important}.gravity-margin-block-lg{margin-block:2rem!important}.gravity-margin-inline-lg{margin-inline:2rem!important}.gravity-margin-xl{margin:2.5rem!important}.gravity-margin-top-xl{margin-top:2.5rem!important}.gravity-margin-bottom-xl{margin-bottom:2.5rem!important}.gravity-margin-left-xl{margin-left:2.5rem!important}.gravity-margin-right-xl{margin-right:2.5rem!important}.gravity-margin-block-xl{margin-block:2.5rem!important}.gravity-margin-inline-xl{margin-inline:2.5rem!important}.gravity-margin-xxl{margin:3rem!important}.gravity-margin-top-xxl{margin-top:3rem!important}.gravity-margin-bottom-xxl{margin-bottom:3rem!important}.gravity-margin-left-xxl{margin-left:3rem!important}.gravity-margin-right-xxl{margin-right:3rem!important}.gravity-margin-block-xxl{margin-block:3rem!important}.gravity-margin-inline-xxl{margin-inline:3rem!important}.gravity-margin-xxxl{margin:4rem!important}.gravity-margin-top-xxxl{margin-top:4rem!important}.gravity-margin-bottom-xxxl{margin-bottom:4rem!important}.gravity-margin-left-xxxl{margin-left:4rem!important}.gravity-margin-right-xxxl{margin-right:4rem!important}.gravity-margin-block-xxxl{margin-block:4rem!important}.gravity-margin-inline-xxxl{margin-inline:4rem!important}.gravity-margin-xxxxl{margin:6rem!important}.gravity-margin-top-xxxxl{margin-top:6rem!important}.gravity-margin-bottom-xxxxl{margin-bottom:6rem!important}.gravity-margin-left-xxxxl{margin-left:6rem!important}.gravity-margin-right-xxxxl{margin-right:6rem!important}.gravity-margin-block-xxxxl{margin-block:6rem!important}.gravity-margin-inline-xxxxl{margin-inline:6rem!important}.gravity-margin-xxxxxl{margin:12rem!important}.gravity-margin-top-xxxxxl{margin-top:12rem!important}.gravity-margin-bottom-xxxxxl{margin-bottom:12rem!important}.gravity-margin-left-xxxxxl{margin-left:12rem!important}.gravity-margin-right-xxxxxl{margin-right:12rem!important}.gravity-margin-block-xxxxxl{margin-block:12rem!important}.gravity-margin-inline-xxxxxl{margin-inline:12rem!important}.border-radius-none{border-radius:0}.border-radius-xs{border-radius:.0625rem}.border-radius-sm{border-radius:.3125rem}.border-radius-md{border-radius:.625rem}.border-radius-lg{border-radius:.9375rem}.border-radius-xl{border-radius:1.25rem}.border-radius-xxl{border-radius:2rem}.border-radius-rounded{border-radius:6.25rem}.next-button,.previous-button{cursor:pointer;padding:var(--gravity-spacing-xs);border-radius:var(--gravity-spacing-xs)}.next-button:not(.disabled):hover,.previous-button:not(.disabled):hover{background:var(--bg-button-active-tertiary)}.next-button.disabled,.previous-button.disabled{cursor:default;pointer-events:none;--icon-color: var(--on-bg-disabled)}.separator-line{border-bottom:2px solid var(--divider-menu-active-primary)}.action-section{height:25px;display:flex;align-self:stretch;align-items:center;justify-content:space-between}.gravity-date-picker-header{width:215px;height:40px;display:flex;align-self:stretch;align-items:center;flex-direction:column;justify-content:center;gap:var(--gravity-spacing-sm);padding-top:var(--gravity-spacing-xs)}.gravity-date-picker-header .header-container{display:flex;align-items:center;align-self:stretch;justify-content:space-between}.gravity-date-picker-header .separator-line{width:215px}.gravity-date-picker-header.mobile,.gravity-date-picker-header.mobile .separator-line{width:100%}.gravity-date-picker-body{width:215px;display:flex;align-items:center;align-self:stretch;flex-direction:column;justify-content:center;gap:var(--gravity-spacing-sm);margin-top:var(--gravity-spacing-sm)}.gravity-date-picker-body .items-table{display:flex;flex-wrap:wrap;justify-content:space-between;gap:0 var(--gravity-spacing-sm)}.gravity-date-picker-body .items-table .item{width:37px;height:25px;display:flex;cursor:pointer;align-items:center;justify-content:center;border-radius:var(--gravity-spacing-xs);color:var(--on-bg-button-pressed-tertiary);border:2px solid var(--bg-calender-primary)}.gravity-date-picker-body .items-table .item.current{border-color:var(--bg-number-calendar-hover-primary)}.gravity-date-picker-body .items-table .item:not(.disabled):not(.selected):hover{color:var(--on-bg-button-pressed-tertiary);background:var(--bg-button-active-tertiary);border-color:var(--bg-button-active-tertiary)}.gravity-date-picker-body .items-table .item.selected{color:var(--on-bg-button-pressed-primary);background:var(--bg-button-pressed-primary);border-color:var(--bg-button-pressed-primary)}.gravity-date-picker-body .items-table .item.disabled{cursor:default;pointer-events:none;color:var(--on-bg-disabled)}.gravity-date-picker-body.mobile{width:100%}.gravity-date-picker-body.mobile .items-table{gap:var(--gravity-spacing-md) var(--gravity-spacing-sm)}.gravity-date-picker-body.mobile .items-table .item{width:70px;height:43px}\n"] }]
94
- }], propDecorators: { config: [{
95
- type: Input
96
- }], initDate: [{
97
- type: Input
98
- }], restart: [{
99
- type: Input
100
- }], appearance: [{
101
- type: Input
102
- }], integratedMode: [{
103
- type: Input
104
- }], clearSelection: [{
105
- type: Output
106
- }], response: [{
107
- type: Output
108
- }] } });
109
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9udGgtY2FsZW5kYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ3Jhdml0eS1kZXNpZ24tc3lzdGVtL3NyYy9saWIvY29tcG9uZW50cy9ncmF2aXR5LWRhdGUtcGlja2VyL2NvbXBvbmVudHMvbW9udGgtY2FsZW5kYXIvbW9udGgtY2FsZW5kYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ3Jhdml0eS1kZXNpZ24tc3lzdGVtL3NyYy9saWIvY29tcG9uZW50cy9ncmF2aXR5LWRhdGUtcGlja2VyL2NvbXBvbmVudHMvbW9udGgtY2FsZW5kYXIvbW9udGgtY2FsZW5kYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFDLFVBQVUsRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMzRixPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQWEsTUFBTSxHQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNoRyxPQUFPLEVBQUMsYUFBYSxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBQyxNQUFNLG9DQUFvQyxDQUFDOzs7Ozs7QUFPekgsTUFBTSxPQUFPLHNCQUFzQjtJQUxuQztRQVFrQixZQUFPLEdBQVksS0FBSyxDQUFDO1FBRXpCLG1CQUFjLEdBQVksS0FBSyxDQUFDO1FBRS9CLG1CQUFjLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7UUFDOUQsYUFBUSxHQUFnQyxJQUFJLFlBQVksRUFBaUIsQ0FBQztRQUVwRixnQkFBVyxHQUFTLElBQUksSUFBSSxFQUFFLENBQUM7UUErRW5CLGVBQVUsR0FBRyxVQUFVLENBQUM7UUFDekIsc0JBQWlCLEdBQUcsaUJBQWlCLENBQUM7S0FDekQ7SUE5RUMsSUFBVyxJQUFJ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QVM7K0JBQ0UsZ0JBQWdCOzhCQUtYLE1BQU07c0JBQXJCLEtBQUs7Z0JBQ1csUUFBUTtzQkFBdkIsS0FBSztnQkFDVSxPQUFPO3NCQUF0QixLQUFLO2dCQUNVLFVBQVU7c0JBQXpCLEtBQUs7Z0JBQ1UsY0FBYztzQkFBN0IsS0FBSztnQkFFVyxjQUFjO3NCQUE5QixNQUFNO2dCQUNVLFFBQVE7c0JBQXhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RhdGVQaWNrZXJBcHBlYXJhbmNlLCBEYXRlUGlja2VyQ29uZmlnLCBDYWxlbmRhclBlcmlvZH0gZnJvbSBcIi4uLy4uL3NoYXJlZC9kYXRlLXBpY2tlci5tb2RhbFwiO1xuaW1wb3J0IHtjaGFuZ2VEYXRlLCBnZXRTdGFydERhdGUsIGlzUGVyaW9kQXZhaWxhYmxlfSBmcm9tIFwiLi4vLi4vc2hhcmVkL2RhdGUtcGlja2VyLnV0aWxzXCI7XG5pbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMsfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q0FMRU5EQVJfSTE4TiwgTU9OVEhTX0VOLCBNT05USFNfU0hPUlRfRU4sIE1PTlRIU19FUywgTU9OVEhTX1NIT1JUX0VTfSBmcm9tIFwiLi4vLi4vc2hhcmVkL2RhdGUtcGlja2VyLmNvbnN0YW50c1wiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtb250aC1jYWxlbmRhcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9tb250aC1jYWxlbmRhci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL21vbnRoLWNhbGVuZGFyLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgTW9udGhDYWxlbmRhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG5cdEBJbnB1dCgpIHB1YmxpYyBjb25maWc6IERhdGVQaWNrZXJDb25maWc7XG4gIEBJbnB1dCgpIHB1YmxpYyBpbml0RGF0ZTogRGF0ZSB8IERhdGVbXTtcbiAgQElucHV0KCkgcHVibGljIHJlc3RhcnQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgcHVibGljIGFwcGVhcmFuY2U6IERhdGVQaWNrZXJBcHBlYXJhbmNlO1xuICBASW5wdXQoKSBwdWJsaWMgaW50ZWdyYXRlZE1vZGU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBAT3V0cHV0KCkgcHVibGljIGNsZWFyU2VsZWN0aW9uOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgcmVzcG9uc2U6IEV2ZW50RW1pdHRlcjxEYXRlW10gfCBEYXRlPiA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZVtdIHwgRGF0ZT4oKTtcblxuICBwdWJsaWMgY3VycmVudERhdGU6IERhdGUgPSBuZXcgRGF0ZSgpO1xuICBwdWJsaWMgc2VsZWN0ZWRNb250aDogQ2FsZW5kYXJQZXJpb2Q7XG5cbiAgcHVibGljIGdldCBpMThuKCkgeyByZXR1cm4gQ0FMRU5EQVJfSTE4Tlt0aGlzLmFwcGVhcmFuY2UubGFuZ3VhZ2VdOyB9XG4gIHB1YmxpYyBnZXQgbW9udGhzTGlzdCgpIHsgcmV0dXJuIHRoaXMuYXBwZWFyYW5jZS5sYW5ndWFnZSA9PT0gJ2VuJyA/IE1PTlRIU19FTiA6IE1PTlRIU19FUzsgfVxuICBwdWJsaWMgZ2V0IG1vbnRoc1Nob3J0TGlzdCgpIHsgcmV0dXJuIHRoaXMuYXBwZWFyYW5jZS5sYW5ndWFnZSA9PT0gJ2VuJyA/IE1PTlRIU19TSE9SVF9FTiA6IE1PTlRIU19TSE9SVF9FUzsgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBjb25zdCBzaG91bGRSZXN0YXJ0ID0gY2hhbmdlc1sncmVzdGFydCddICYmIHRoaXMucmVzdGFydDtcbiAgICBjb25zdCBzaG91bGRQcm9jZXNzUHJlU2VsZWN0ZWQgPSBjaGFuZ2VzWydwcmVTZWxlY3RlZERhdGUnXSAmJiB0aGlzLmluaXREYXRlO1xuICAgIGlmIChzaG91bGRSZXN0YXJ0IHx8IHNob3VsZFByb2Nlc3NQcmVTZWxlY3RlZCkgeyB0aGlzLnByb2Nlc3NJbml0RGF0ZSgpOyB9XG4gIH1cblxuICBwdWJsaWMgdHJhY2tCeU1vbnRoKF86IG51bWJlciwgbW9udGg6IENhbGVuZGFyUGVyaW9kKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCR7bW9udGgueWVhcn0tJHttb250aC5tb250aH1gO1xuICB9XG5cbiAgcHJpdmF0ZSBwcm9jZXNzSW5pdERhdGUoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaW5pdERhdGUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICB0aGlzLmN1cnJlbnREYXRlID0gZ2V0U3RhcnREYXRlKHRoaXMuaW5pdERhdGUpO1xuICAgICAgdGhpcy5zZWxlY3RlZE1vbnRoID0ge1xuICAgICAgICBtb250aDogdGhpcy5pbml0RGF0ZS5nZXRNb250aCgpLFxuICAgICAgICB5ZWFyOiB0aGlzLmluaXREYXRlLmdldEZ1bGxZZWFyKClcbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uU2VsZWN0TW9udGgobW9udGg6IENhbGVuZGFyUGVyaW9kKSB7XG4gICAgdGhpcy5zZWxlY3RlZE1vbnRoID0gbW9udGg7XG4gICAgdGhpcy5jdXJyZW50RGF0ZSA9IG5ldyBEYXRlKG1vbnRoLnllYXIsIG1vbnRoLm1vbnRoLCAxKTtcbiAgICB0aGlzLnJlc3BvbnNlLmVtaXQodGhpcy5jdXJyZW50RGF0ZSk7XG4gICAgcmV0dXJuO1xuICB9XG5cblx0cHVibGljIGdldE1vbnRoU2VsZWN0aW9uQ2xhc3MobW9udGg6IENhbGVuZGFyUGVyaW9kKTogc3RyaW5nIHtcblx0XHRjb25zdCBjbGFzc2VzOiBzdHJpbmdbXSA9IFtdO1xuXHRcdGNvbnN0IHsgbWluRGF0ZSwgbWF4RGF0ZSB9ID0gdGhpcy5jb25maWcgPz8ge307XG5cdFx0Y29uc3QgZmlyc3REYXkgPSBuZXcgRGF0ZShtb250aC55ZWFyLCBtb250aC5tb250aCwgMSk7XG5cdFx0Y29uc3QgbGFzdERheSA9IG5ldyBEYXRlKG1vbnRoLnllYXIsIG1vbnRoLm1vbnRoICsgMSwgMCk7XG5cblx0XHRsZXQgaXNEaXNhYmxlZCA9IGZhbHNlO1xuXHRcdGlmIChtaW5EYXRlICYmIGxhc3REYXkgPCBtaW5EYXRlKSB7IGlzRGlzYWJsZWQgPSB0cnVlOyB9XG5cdFx0aWYgKG1heERhdGUgJiYgZmlyc3REYXkgPiBtYXhEYXRlKSB7IGlzRGlzYWJsZWQgPSB0cnVlOyB9XG5cdFx0aWYgKGlzRGlzYWJsZWQpIHsgY2xhc3Nlcy5wdXNoKCdkaXNhYmxlZCcpOyB9XG5cblx0XHRpZiAodGhpcy5zZWxlY3RlZE1vbnRoICYmIHRoaXMuc2VsZWN0ZWRNb250aC5tb250aCA9PT0gbW9udGgubW9udGggJiYgdGhpcy5zZWxlY3RlZE1vbnRoLnllYXIgPT09IG1vbnRoLnllYXIpIHtcblx0XHRcdGNsYXNzZXMucHVzaCgnc2VsZWN0ZWQnKTtcblx0XHR9XG5cblx0XHRyZXR1cm4gY2xhc3Nlcy5qb2luKCcgJyk7XG5cdH1cblxuXHRwdWJsaWMgaXNDdXJyZW50TW9udGgobW9udGg6IENhbGVuZGFyUGVyaW9kKSB7XG4gICAgaWYobmV3IERhdGUoKS5nZXRNb250aCgpID09PSBtb250aC5tb250aCAmJlxuICAgICAgbmV3IERhdGUoKS5nZXRGdWxsWWVhcigpID09PSBtb250aC55ZWFyKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgY2xlYXJTZWxlY3RlZE1vbnRoKCkge1xuICAgIHRoaXMuc2VsZWN0ZWRNb250aCA9IG51bGw7XG4gICAgdGhpcy5jbGVhclNlbGVjdGlvbi5lbWl0KCk7XG4gIH1cblxuICBwdWJsaWMgYXBwbHlTZWxlY3RlZE1vbnRoKCkge1xuICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSh0aGlzLnNlbGVjdGVkTW9udGgueWVhciwgdGhpcy5zZWxlY3RlZE1vbnRoLm1vbnRoKVxuICAgIHRoaXMucmVzcG9uc2UuZW1pdChkYXRlKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRZZWFyTW9udGhzTGlzdCgpOiBDYWxlbmRhclBlcmlvZFtdIHtcbiAgICBjb25zdCBtb250aHM6IENhbGVuZGFyUGVyaW9kW10gPSBbXTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgMTI7IGkrKykge1xuICAgICAgbW9udGhzLnB1c2goe21vbnRoOiBpLCB5ZWFyOiB0aGlzLmN1cnJlbnREYXRlLmdldEZ1bGxZZWFyKCl9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gbW9udGhzO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGNoYW5nZURhdGUgPSBjaGFuZ2VEYXRlO1xuXHRwcm90ZWN0ZWQgcmVhZG9ubHkgaXNQZXJpb2RBdmFpbGFibGUgPSBpc1BlcmlvZEF2YWlsYWJsZTtcbn1cbiIsIjxzZWN0aW9uIGNsYXNzPVwiZ3Jhdml0eS1kYXRlLXBpY2tlci1oZWFkZXJcIiBbY2xhc3MubW9iaWxlXT1cImFwcGVhcmFuY2UuaXNNb2JpbGVcIj5cbiAgPGRpdiBjbGFzcz1cImhlYWRlci1jb250YWluZXJcIj5cbiAgICA8Z3Jhdml0eS1pY29uLWJ1dHRvbiAqbmdJZj1cIiFpbnRlZ3JhdGVkTW9kZVwiXG4gICAgIFtzaXplXT1cIidzbSdcIlxuICAgICBbdHlwZV09XCIncHJpbWFyeSdcIlxuICAgICBbaWNvbl09XCInYXJyb3ctbGVmdCdcIlxuICAgICBbc3VwcG9ydFRleHRdPVwiaTE4bi5wcmV2aWV3X3llYXJcIlxuICAgICAoY2xpY2tPbkljb24pPVwiY3VycmVudERhdGUgPSBjaGFuZ2VEYXRlKC0xLCBjdXJyZW50RGF0ZSwgZmFsc2UpXCJcbiAgICAgW3N0YXRlXT1cIihhcHBlYXJhbmNlLnN0YXRlICE9PSAnZGlzYWJsZWQnKSAmJiBpc1BlcmlvZEF2YWlsYWJsZShjdXJyZW50RGF0ZSwgY29uZmlnLm1pbkRhdGUsICdtb250aCcsICdwcmV2JykgPyAnYWN0aXZlJyA6ICdkaXNhYmxlZCdcIi8+XG5cbiAgICA8ZGl2IGNsYXNzPVwieWVhci1sYWJlbFwiPlxuICAgICAgPGdyYXZpdHktZHJvcGRvd24tbGFiZWxcbiAgICAgICAgW3NpemVdPVwiJ3NtJ1wiIFthdHRyLmRhdGEtY3ldPVwiJ2RhdGVQaWNrZXJfeWVhckxhYmVsJ1wiXG4gICAgICAgIFtmb250Q2xhc3NdPVwiJ2hyLXRpdGxlIHNtLWJvbGQnXCJcbiAgICAgICAgW3N0YXRlXT1cImludGVncmF0ZWRNb2RlICYmIGFwcGVhcmFuY2Uuc3RhdGUgIT09ICdkaXNhYmxlZCcgPyAnYWN0aXZlJyA6ICdpbmFjdGl2ZSdcIlxuICAgICAgICBbbGFiZWxdPVwiaW50ZWdyYXRlZE1vZGUgPyBtb250aHNMaXN0W2N1cnJlbnREYXRlLmdldE1vbnRoKCldIDogY3VycmVudERhdGUuZ2V0RnVsbFllYXIoKS50b1N0cmluZygpXCJcbiAgICAgICAgW2lzT3Blbl09XCJpbnRlZ3JhdGVkTW9kZVwiIChvbkNsaWNrTGFiZWwpPVwicmVzcG9uc2UuZW1pdChjdXJyZW50RGF0ZSlcIiA+IDwvZ3Jhdml0eS1kcm9wZG93bi1sYWJlbD5cbiAgICA8L2Rpdj5cblxuICAgIDxncmF2aXR5LWljb24tYnV0dG9uICpuZ0lmPVwiIWludGVncmF0ZWRNb2RlXCJcbiAgICAgW3NpemVdPVwiJ3NtJ1wiXG4gICAgIFt0eXBlXT1cIidwcmltYXJ5J1wiXG4gICAgIFtpY29uXT1cIidhcnJvdy1yaWdodCdcIlxuICAgICBbc3VwcG9ydFRleHRdPVwiaTE4bi5uZXh0X3llYXJcIlxuICAgICAoY2xpY2tPbkljb24pPVwiY3VycmVudERhdGUgPSBjaGFuZ2VEYXRlKDEsIGN1cnJlbnREYXRlLCBmYWxzZSlcIlxuICAgICBbc3RhdGVdPVwiKGFwcGVhcmFuY2Uuc3RhdGUgIT09ICdkaXNhYmxlZCcpICYmIGlzUGVyaW9kQXZhaWxhYmxlKGN1cnJlbnREYXRlLCBjb25maWcubWF4RGF0ZSwgJ21vbnRoJywgJ25leHQnKSA/ICdhY3RpdmUnIDogJ2Rpc2FibGVkJ1wiLz5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cInNlcGFyYXRvci1saW5lXCI+PC9kaXY+XG48L3NlY3Rpb24+XG5cbjxzZWN0aW9uIGNsYXNzPVwiZ3Jhdml0eS1kYXRlLXBpY2tlci1ib2R5XCIgW2NsYXNzLm1vYmlsZV09XCJhcHBlYXJhbmNlLmlzTW9iaWxlXCI+XG4gICAgPGRpdiBjbGFzcz1cIml0ZW1zLXRhYmxlXCIgW2F0dHIuZGF0YS1jeV09XCInZGF0ZVBpY2tlcl9tb250aFNlbGVjdG9yJ1wiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJoci1ib2R5IHNtLXJlZ3VsYXIgaXRlbVwiICpuZ0Zvcj1cImxldCBtb250aCBvZiBnZXRZZWFyTW9udGhzTGlzdCgpLCB0cmFja0J5OiB0cmFja0J5TW9udGhcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwiYXBwZWFyYW5jZS5zdGF0ZSA9PT0gJ2Rpc2FibGVkJyA/ICdkaXNhYmxlZCcgOiBnZXRNb250aFNlbGVjdGlvbkNsYXNzKG1vbnRoKVwiIChjbGljayk9XCJvblNlbGVjdE1vbnRoKG1vbnRoKVwiXG4gICAgICAgICAgICBbY2xhc3MuY3VycmVudF09XCJpc0N1cnJlbnRNb250aChtb250aClcIj4ge3sgbW9udGhzU2hvcnRMaXN0W21vbnRoLm1vbnRoXSB9fVxuICAgICAgPC9zcGFuPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiAqbmdJZj1cIiFpbnRlZ3JhdGVkTW9kZSAmJiBzZWxlY3RlZE1vbnRoXCIgY2xhc3M9XCJhY3Rpb24tc2VjdGlvblwiID5cbiAgICAgICAgPGdyYXZpdHktbGluayBbbGlua1RleHRdPVwiaTE4bi5jbGVhclwiIFtzdGF0ZV09XCIhc2VsZWN0ZWRNb250aCA/ICdkaXNhYmxlZCcgOiAnYWN0aXZlJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgW2ZvbnRDbGFzc109XCJhcHBlYXJhbmNlLmlzTW9iaWxlID8gJ2hyLWJvZHkgbWQtcmVndWxhcicgOiAnaHItYm9keSBzbS1yZWd1bGFyJ1wiIChjbGljayk9XCJjbGVhclNlbGVjdGVkTW9udGgoKVwiLz5cbiAgICA8L2Rpdj5cbjwvc2VjdGlvbj4iXX0=