@progressio_resources/gravity-design-system 3.9.3 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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 +54 -26
  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,273 +0,0 @@
1
- import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
2
- import { CALENDAR_I18N, DAYS_SHORT_EN, DAYS_SHORT_ES, MONTHS_EN, MONTHS_ES } from "../../shared/date-picker.constants";
3
- import { dateToCalendarDay, getStartDate, changeDate, calendarDateToDate, isPeriodAvailable } from '../../shared/date-picker.utils';
4
- import { getRangeSelectionClass, isPreview, onApplyRageDate, onClearHover, onDateKeyup, onHoverDay, onSelectDaysRange, processPreselectedRangeDate, searchDate } from "./range-days-calendar.utils";
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@angular/common";
7
- import * as i2 from "../../../gravity-button/gravity-button.component";
8
- import * as i3 from "../../../gravity-icon-button/gravity-icon-button.component";
9
- import * as i4 from "../../../gravity-icon/gravity-icon.component";
10
- import * as i5 from "../../../gravity-text-field/gravity-text-field.component";
11
- import * as i6 from "../../../gravity-link/gravity-link.component";
12
- import * as i7 from "../../../gravity-dropdown-label/gravity-dropdown-label.component";
13
- import * as i8 from "../month-calendar/month-calendar.component";
14
- import * as i9 from "../year-calendar/year-calendar.component";
15
- export class DayCalendarComponent {
16
- constructor() {
17
- this.range = false;
18
- this.restart = false;
19
- this.appyOnClose = false;
20
- this.currentDate = new Date();
21
- this.navType = 'both';
22
- this.clearHover = new EventEmitter();
23
- this.clearSelection = new EventEmitter();
24
- this.hoverDay = new EventEmitter();
25
- this.selectedRage = new EventEmitter();
26
- this.calendarResponse = new EventEmitter();
27
- this.endDateError = '';
28
- this.startDateError = '';
29
- this.endFieldDisabled = false;
30
- this.startFieldDisabled = false;
31
- this.selectedRangeEnd = null;
32
- this.selectedRangeStart = null;
33
- this.showYearCalendar = false;
34
- this.showMonthCalendar = false;
35
- this.focused = 'start';
36
- this.hoveredDay = null;
37
- this.selectedDay = null;
38
- this.changeDate = changeDate;
39
- this.isPreview = isPreview;
40
- this.searchDate = searchDate;
41
- this.onHoverDay = onHoverDay;
42
- this.onDateKeyup = onDateKeyup;
43
- this.onClearHover = onClearHover;
44
- this.isPeriodAvailable = isPeriodAvailable;
45
- this.calendarDateToDate = calendarDateToDate;
46
- }
47
- get i18n() { return CALENDAR_I18N[this.appearance.language]; }
48
- get monthsList() { return this.appearance.language === 'en' ? MONTHS_EN : MONTHS_ES; }
49
- get daysList() { return this.appearance.language === 'en' ? DAYS_SHORT_EN : DAYS_SHORT_ES; }
50
- trackByWeek(index, _) { return index; }
51
- trackByDay(_, day) {
52
- return `${day.monthYear.year}-${day.monthYear.month}-${day.day}`;
53
- }
54
- ngOnChanges(changes) {
55
- const shouldRestart = changes['restart'] && this.restart;
56
- const shouldAppy = changes['appyOnClose'] && this.appyOnClose;
57
- const shouldProcessPreSelected = changes['preSelectedDate'] && this.config.initDate;
58
- if (shouldAppy) {
59
- this.applySelectedDate();
60
- }
61
- if (shouldRestart || shouldProcessPreSelected) {
62
- this.processInitDate();
63
- }
64
- }
65
- processInitDate() {
66
- if (this.range) {
67
- processPreselectedRangeDate(this);
68
- }
69
- else if (this.config.initDate instanceof Date) {
70
- this.currentDate = getStartDate(this.config.initDate);
71
- this.selectedDay = dateToCalendarDay(this.config.initDate);
72
- }
73
- }
74
- hasDateSelected(requireBothInRange = false) {
75
- if (!this.range) {
76
- return !!this.selectedDay;
77
- }
78
- else {
79
- return requireBothInRange
80
- ? !!this.selectedRangeStart && !!this.selectedRangeEnd
81
- : !!this.selectedRangeStart || !!this.selectedRangeEnd;
82
- }
83
- }
84
- getDaySelectionClass(day) {
85
- if (!day.inCurrentMonth)
86
- return 'disabled';
87
- const dayDate = new Date(day.monthYear.year, day.monthYear.month, day.day);
88
- if (this.config?.minDate) {
89
- if (dayDate < this.config.minDate)
90
- return 'disabled';
91
- }
92
- if (this.config?.maxDate) {
93
- if (dayDate > this.config.maxDate)
94
- return 'disabled';
95
- }
96
- return this.range ? getRangeSelectionClass(this, day) : this.getSingleDaySelectionClass(day);
97
- }
98
- getSingleDaySelectionClass(day) {
99
- if (this.selectedDay && day.day === this.selectedDay.day &&
100
- day.monthYear.month === this.selectedDay.monthYear.month &&
101
- day.monthYear.year === this.selectedDay.monthYear.year) {
102
- return 'sl single';
103
- }
104
- return '';
105
- }
106
- onSelectDay(day) {
107
- if (!day.inCurrentMonth)
108
- return;
109
- if (!this.range) {
110
- this.selectedDay = day;
111
- const currentDate = calendarDateToDate(day);
112
- this.calendarResponse.emit(currentDate);
113
- }
114
- else {
115
- onSelectDaysRange(this, day);
116
- this.selectedRage.emit(day);
117
- }
118
- }
119
- applySelectedDate() {
120
- if (this.range) {
121
- if (this.selectedRangeStart && this.selectedRangeEnd) {
122
- onApplyRageDate(this);
123
- }
124
- else if (this.endDateField && this.startDateField) {
125
- this.clearSelectedDate('all');
126
- }
127
- }
128
- else if (this.selectedDay) {
129
- const date = calendarDateToDate(this.selectedDay);
130
- this.calendarResponse.emit(date);
131
- }
132
- }
133
- clearSelectedDate(clearTarget) {
134
- if (this.range && (clearTarget === 'all' || clearTarget === 'end')) {
135
- this.endDateError = '';
136
- this.selectedRangeEnd = null;
137
- this.startFieldDisabled = false;
138
- this.endDateField.inputValue = '';
139
- if (!this.appearance.isMobile) {
140
- this.endDateField.focus();
141
- }
142
- if (this.selectedRangeStart) {
143
- this.currentDate = calendarDateToDate(this.selectedRangeStart);
144
- }
145
- }
146
- if (this.range && (clearTarget === 'all' || clearTarget === 'start')) {
147
- this.startDateError = '';
148
- this.endFieldDisabled = false;
149
- this.selectedRangeStart = null;
150
- this.startDateField.inputValue = '';
151
- if (!this.appearance.isMobile) {
152
- this.startDateField.focus();
153
- }
154
- if (this.selectedRangeEnd) {
155
- this.currentDate = calendarDateToDate(this.selectedRangeEnd);
156
- }
157
- }
158
- if (this.range && this.selectedRangeStart === null && this.selectedRangeEnd === null) {
159
- this.focused = 'start';
160
- this.currentDate = new Date();
161
- if (!this.appearance.isMobile) {
162
- this.startDateField.focus();
163
- }
164
- }
165
- this.selectedDay = null;
166
- this.notification = null;
167
- if (!this.range) {
168
- this.currentDate = new Date();
169
- }
170
- this.clearSelection.emit();
171
- }
172
- handleCalendarResponse(date, isMonth) {
173
- if (!(date instanceof Date))
174
- return;
175
- const year = isMonth ? this.currentDate.getFullYear() : date.getFullYear();
176
- const month = isMonth ? date.getMonth() : this.currentDate.getMonth();
177
- this.currentDate = new Date(year, month, this.currentDate.getDate());
178
- if (isMonth) {
179
- this.initMonth = this.currentDate;
180
- this.showMonthCalendar = false;
181
- }
182
- else {
183
- this.initYear = this.currentDate;
184
- this.showYearCalendar = false;
185
- }
186
- }
187
- handleOnClickDropdownLabel(isMonth) {
188
- this.initMonth = isMonth ? this.currentDate : this.initMonth;
189
- this.initYear = !isMonth ? this.currentDate : this.initYear;
190
- this.showMonthCalendar = isMonth;
191
- this.showYearCalendar = !isMonth;
192
- }
193
- getMonthGrid() {
194
- let week = [];
195
- const today = new Date();
196
- const grid = [];
197
- const baseDate = this.currentDate;
198
- const month = baseDate.getMonth();
199
- const year = baseDate.getFullYear();
200
- const firstDay = new Date(year, month, 1);
201
- const startWeekday = (firstDay.getDay() + 6) % 7;
202
- const daysInMonth = new Date(year, month + 1, 0).getDate();
203
- const daysInPrevMonth = new Date(year, month, 0).getDate();
204
- // fill days from previous month
205
- for (let i = startWeekday - 1; i >= 0; i--) {
206
- const day = daysInPrevMonth - i;
207
- const weekDay = (startWeekday - 1 - i + 7) % 7;
208
- week.push({ day, monthYear: { month: month - 1, year: year }, isToday: false, inCurrentMonth: false, weekDay });
209
- }
210
- // fill days from current month
211
- for (let d = 1; d <= daysInMonth; d++) {
212
- const isToday = d === today.getDate() && month === today.getMonth() && year === today.getFullYear();
213
- const weekDay = week.length % 7;
214
- week.push({ day: d, monthYear: { month: month, year: year }, isToday, inCurrentMonth: true, weekDay });
215
- if (week.length === 7) {
216
- grid.push(week);
217
- week = [];
218
- }
219
- }
220
- // fill remaining days from next month
221
- let nextDay = 1;
222
- while (week.length < 7) {
223
- const weekDay = week.length;
224
- week.push({ day: nextDay++, monthYear: { month: month + 1, year: year }, isToday: false, inCurrentMonth: false, weekDay });
225
- }
226
- const hasCurrentMonthDay = week.some(day => day.inCurrentMonth);
227
- if (hasCurrentMonthDay) {
228
- grid.push(week);
229
- }
230
- return grid;
231
- }
232
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DayCalendarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
233
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DayCalendarComponent, selector: "day-calendar", inputs: { initYear: "initYear", initMonth: "initMonth", range: "range", config: "config", restart: "restart", appyOnClose: "appyOnClose", currentDate: "currentDate", appearance: "appearance", navType: "navType" }, outputs: { clearHover: "clearHover", clearSelection: "clearSelection", hoverDay: "hoverDay", selectedRage: "selectedRage", calendarResponse: "calendarResponse" }, viewQueries: [{ propertyName: "endDateField", first: true, predicate: ["endDate"], descendants: true }, { propertyName: "startDateField", first: true, predicate: ["startDate"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<section *ngIf=\"showMonthCalendar\">\n <month-calendar\n [config]=\"config\"\n [integratedMode]=\"true\"\n [restart]=\"showMonthCalendar\"\n (response)=\"handleCalendarResponse($event, true)\" [initDate]=\"initMonth\"\n [appearance]=\"{language: appearance.language, isMobile: appearance.isMobile }\">\n </month-calendar>\n</section>\n\n<section *ngIf=\"showYearCalendar\">\n <year-calendar\n [config]=\"config\"\n [integratedMode]=\"true\"\n [restart]=\"showYearCalendar\"\n (response)=\"handleCalendarResponse($event, false)\" [initDate]=\"initYear\"\n [appearance]=\"{language: appearance.language, isMobile: appearance.isMobile}\">\n </year-calendar>\n</section>\n\n<div *ngIf=\"!appearance.isMobile && !showMonthCalendar && !showYearCalendar\" class=\"title\">\n <span class=\"hr-label sm-bold\">{{range ? i18n.select_range : i18n.select_date}}</span>\n</div>\n\n<div class=\"gravity-date-picker-content\" [class.hidden]=\"showYearCalendar || showMonthCalendar\" [class.mobile]=\"appearance.isMobile\">\n\n <div *ngIf=\"range\" class=\"selected-dates\">\n <gravity-text-field #startDate\n [size]=\"'sm'\"\n [width]=\"'short'\"\n [label]=\"i18n.start_date\"\n [inputContentType]=\"'date'\"\n [supportText]=\"startDateError\"\n [placeholder]=\"i18n.date_placeholder\"\n [clickOnRightIcon]=\"!startFieldDisabled\"\n (keyup)=\"onDateKeyup(this, $event, 'start')\"\n (clickIconRight)=\"clearSelectedDate('start')\"\n (focusout)=\"searchDate(this, startDate.inputValue, 'start')\"\n [iconRight]=\"(selectedRangeStart || startDate.inputValue.length > 9) ? 'unsuccess' : ''\"\n (click)=\"focused = 'start'; selectedRangeStart ? currentDate = calendarDateToDate(selectedRangeStart) : null\"\n [customState]=\"startFieldDisabled ? 'disabled' : startDateError ? 'typed-error' : (startDate.inputValue.length < 1 ? 'default' : 'typing')\"\n [attr.data-cy]=\"'datePicker_startDate'\"/>\n\n <gravity-text-field #endDate\n [size]=\"'sm'\"\n [width]=\"'short'\"\n [label]=\"i18n.end_date\"\n [inputContentType]=\"'date'\"\n [supportText]=\"endDateError\"\n [placeholder]=\"i18n.date_placeholder\"\n [clickOnRightIcon]=\"!endFieldDisabled\"\n (keyup)=\"onDateKeyup(this, $event, 'end')\"\n (clickIconRight)=\"clearSelectedDate('end')\"\n (focusout)=\"searchDate(this, endDate.inputValue, 'end')\"\n [iconRight]=\"(selectedRangeEnd || endDate.inputValue.length > 9) ? 'unsuccess' : ''\"\n (click)=\" focused = 'end'; selectedRangeEnd ? currentDate = calendarDateToDate(selectedRangeEnd) : null\"\n [customState]=\"endFieldDisabled ? 'disabled' : endDateError ? 'typed-error' : (endDate.inputValue.length < 1 ? 'default' : 'typing')\" [attr.data-cy]=\"'datePicker_endDate'\"/>\n </div>\n\n <section class=\"gravity-date-picker-header\" [class.mobile]=\"appearance.isMobile\">\n <gravity-icon-button [type]=\"'primary'\" [size]=\"'sm'\" [icon]=\"'arrow-left'\" [supportText]=\"i18n.preview_month\"\n (clickOnIcon)=\"currentDate = changeDate(-1, currentDate, true);\"\n [state]=\"(navType === 'prev' || navType === 'both') && (appearance.state !== 'disabled') &&\n isPeriodAvailable(currentDate, config.minDate, 'month', 'prev') ? 'active' : 'disabled'\"/>\n\n <div class=\"month-year-label\">\n <gravity-dropdown-label [fontClass]=\"'hr-title sm-bold'\" [size]=\"'sm'\" [label]=\"monthsList[currentDate.getMonth()]\"\n [state]=\"appearance.state === 'disabled' ? 'inactive' : 'active'\" (onClickLabel)=\"handleOnClickDropdownLabel(true)\" [attr.data-cy]=\"'datePicker_monthDropdown'\"/>\n\n <gravity-dropdown-label [fontClass]=\"'hr-title sm-bold'\" [size]=\"'sm'\" [label]=\"currentDate.getFullYear().toString()\"\n [state]=\"appearance.state === 'disabled' ? 'inactive' : 'active'\" (onClickLabel)=\"handleOnClickDropdownLabel(false)\" [attr.data-cy]=\"'datePicker_yearDropdown'\"/>\n </div>\n\n <gravity-icon-button [type]=\"'primary'\" [size]=\"'sm'\" [icon]=\"'arrow-right'\" [supportText]=\"i18n.next_month\"\n (clickOnIcon)=\"currentDate = changeDate(1, currentDate, true);\"\n [state]=\"(navType === 'next' || navType === 'both') && (appearance.state !== 'disabled') &&\n isPeriodAvailable(currentDate, config.maxDate, 'month', 'next') ? 'active' : 'disabled'\"/>\n </section>\n\n <section class=\"gravity-date-picker-body\" [class.mobile]=\"appearance.isMobile\">\n <section class=\"days-name-line\">\n <div class=\"days-name\">\n <span class=\"hr-body\" [ngClass]=\"appearance.isMobile ? 'md-regular' : 'sm-regular'\"\n *ngFor=\"let day of daysList\"> {{ day }} </span>\n </div>\n\n <div class=\"separator-line\"></div>\n </section>\n\n <section class=\"days-number-selector\" [attr.data-cy]=\"'datePicker_daysSelector'\">\n <div class=\"days-number-table\">\n <div class=\"week-row\" *ngFor=\"let week of getMonthGrid(); trackBy: trackByWeek\">\n <span class=\"hr-body\" *ngFor=\"let day of week; trackBy: trackByDay\"\n [class.preview]=\"range ? isPreview(this, day) : null\"\n [class.disabled]=\"!day.inCurrentMonth\" [class.today]=\"day.isToday\"\n (mouseenter)=\"range ? onHoverDay(this, day) : null; hoverDay.emit(day)\"\n (mouseleave)=\"range ? onClearHover(this) : null; this.clearHover.emit()\"\n [ngClass]=\"[appearance.isMobile ? 'md-regular' : 'sm-regular',\n appearance.state === 'disabled' ? 'disabled' : getDaySelectionClass(day)]\"\n (click)=\"day.inCurrentMonth ? onSelectDay(day): null\"> {{ day.day }} </span>\n </div>\n </div>\n\n <div *ngIf=\"notification\" class=\"notification\" [class.error]=\"notification.error\">\n <gravity-icon [style.--icon-color]=\"'var(--notification-icon-color)'\" [iconSize]=\"'sm-12'\" [iconName]=\"'information-circle'\"/>\n <span class=\"hr-label sm-regular\">{{notification.text}}</span>\n </div>\n\n <div *ngIf=\"range || selectedDay\" class=\"action-section\" >\n <gravity-link [linkText]=\"i18n.clear\" [state]=\"hasDateSelected() ? 'active' : 'disabled'\"\n [fontClass]=\"appearance.isMobile ? 'hr-body md-regular' : 'hr-body sm-regular'\"\n (click)=\" hasDateSelected() ? clearSelectedDate('all') : null\"/>\n\n <gravity-button *ngIf=\"range\" [size]=\"appearance.isMobile ? 'md' : 'sm'\" [type]=\"'tertiary'\" [disabled]=\"!hasDateSelected(true)\"\n (click)=\"hasDateSelected(true) ? applySelectedDate() : null\"> {{i18n.apply}} </gravity-button>\n </div>\n </section>\n </section>\n</div>\n", 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}.title{width:100%;text-align:center;margin-bottom:var(--gravity-spacing-sm);color:var(--label-text-empty-enabled-primary)}.title span{height:11px;display:block;line-height:11px}.gravity-date-picker-content{display:flex;align-items:center;justify-items:center;flex-direction:column;gap:var(--gravity-spacing-md)}.gravity-date-picker-content .selected-dates{width:50%;display:flex;justify-content:center;gap:var(--gravity-spacing-xs)}.gravity-date-picker-content .selected-dates ::ng-deep gravity-text-field{width:130px}.gravity-date-picker-content .selected-dates ::ng-deep gravity-text-field .gravity-input-field{width:130px}.gravity-date-picker-content .gravity-date-picker-header{gap:0;width:268px;height:auto;display:flex;padding-top:0;align-items:center;justify-content:space-between}.gravity-date-picker-content .gravity-date-picker-header .month-year-label{display:flex;gap:var(--gravity-spacing-sm)}.gravity-date-picker-content .gravity-date-picker-header.mobile,.gravity-date-picker-content .gravity-date-picker-body{width:100%}.gravity-date-picker-content .gravity-date-picker-body .days-name-line{display:flex;flex-direction:column;gap:var(--gravity-spacing-xs);padding-bottom:var(--gravity-spacing-xs)}.gravity-date-picker-content .gravity-date-picker-body .days-name-line .days-name{display:flex;align-self:stretch;justify-content:space-between}.gravity-date-picker-content .gravity-date-picker-body .days-name-line .days-name span{display:flex;cursor:default;align-items:center;justify-content:center;padding:var(--gravity-spacing-xs);color:var(--text-highlight-primary)}.gravity-date-picker-content .gravity-date-picker-body .days-name-line .separator-line{width:100%}.gravity-date-picker-content .gravity-date-picker-body .days-number-selector{display:flex;align-self:stretch;flex-direction:column;gap:var(--gravity-spacing-sm)}.gravity-date-picker-content .gravity-date-picker-body .days-number-selector .days-number-table{display:flex;flex-direction:column}.gravity-date-picker-content .gravity-date-picker-body .days-number-selector .days-number-table .week-row{height:25px;display:flex;align-self:stretch}.gravity-date-picker-content .gravity-date-picker-body .days-number-selector .days-number-table .week-row span{gap:10px;flex:1 0 0;width:31px;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-content .gravity-date-picker-body .days-number-selector .days-number-table .week-row span:not(.sl).today{border-color:var(--bg-number-calendar-hover-primary)}.gravity-date-picker-content .gravity-date-picker-body .days-number-selector .days-number-table .week-row span:not(.disabled):not(.sl):hover{color:var(--on-bg-button-pressed-tertiary);background:var(--bg-button-active-tertiary);border-color:var(--bg-button-active-tertiary)}.gravity-date-picker-content .gravity-date-picker-body .days-number-selector .days-number-table .week-row span.single,.gravity-date-picker-content .gravity-date-picker-body .days-number-selector .days-number-table .week-row span.start,.gravity-date-picker-content .gravity-date-picker-body .days-number-selector .days-number-table .week-row span.end{color:var(--on-bg-button-pressed-primary);background:var(--bg-button-pressed-primary);border-color:var(--bg-button-pressed-primary)}.gravity-date-picker-content .gravity-date-picker-body .days-number-selector .days-number-table .week-row span.range,.gravity-date-picker-content .gravity-date-picker-body .days-number-selector .days-number-table .week-row span:not(.disabled).preview{border-radius:0;background:var(--bg-button-active-tertiary);border-color:var(--bg-button-active-tertiary)}.gravity-date-picker-content .gravity-date-picker-body .days-number-selector .days-number-table .week-row span.start,.gravity-date-picker-content .gravity-date-picker-body .days-number-selector .days-number-table .week-row span.nsl-start:hover{border-radius:var(--gravity-spacing-xs) 0 0 var(--gravity-spacing-xs)}.gravity-date-picker-content .gravity-date-picker-body .days-number-selector .days-number-table .week-row span.end,.gravity-date-picker-content .gravity-date-picker-body .days-number-selector .days-number-table .week-row span.nsl-end:hover{border-radius:0 var(--gravity-spacing-xs) var(--gravity-spacing-xs) 0}.gravity-date-picker-content .gravity-date-picker-body .days-number-selector .days-number-table .week-row span.in-slt:hover{border-color:var(--bg-button-pressed-primary)!important}.gravity-date-picker-content .gravity-date-picker-body .days-number-selector .days-number-table .week-row span.default{border-radius:0!important;border-color:transparent!important}.gravity-date-picker-content .gravity-date-picker-body .days-number-selector .days-number-table .week-row span.same-sln{border-radius:var(--gravity-spacing-xs)!important}.gravity-date-picker-content .gravity-date-picker-body .days-number-selector .days-number-table .week-row span.disabled{cursor:default;pointer-events:none;color:var(--on-bg-disabled)}.gravity-date-picker-content .gravity-date-picker-body .days-number-selector .notification{display:flex;align-items:center;align-self:stretch;gap:var(--gravity-spacing-xxs);border-radius:.3125rem;padding:var(--gravity-spacing-xs);color:var(--on-bg-button-active-tertiary);background:var(--bg-button-active-tertiary);--notification-icon-color: var(--on-bg-button-active-tertiary)}.gravity-date-picker-content .gravity-date-picker-body .days-number-selector .notification.error{color:var(--on-bg-button-active-negative);background:var(--bg-button-active-negative);--notification-icon-color: var(--on-bg-button-active-negative)}.gravity-date-picker-content.mobile{width:100%;height:auto}.gravity-date-picker-content.mobile .selected-dates ::ng-deep gravity-text-field{width:100%}.gravity-date-picker-content.mobile .selected-dates ::ng-deep gravity-text-field .gravity-input-field{min-width:100%}.gravity-date-picker-content.mobile .days-name-line .separator-line{width:100%}.gravity-date-picker-content.mobile .days-number-selector .days-number-table .week-row,.gravity-date-picker-content.mobile .days-number-selector .days-number-table span{height:43px!important}.gravity-date-picker-content.hidden{display:none}\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.GravityButtonComponent, selector: "gravity-button", inputs: ["cypressTag", "disabled", "iconName", "isLoading", "showContent", "size", "iconPosition", "customState", "type"] }, { kind: "component", type: i3.GravityIconButtonComponent, selector: "gravity-icon-button", inputs: ["cypressTag", "icon", "supportText", "variant", "size", "type", "state", "badge"], outputs: ["clickOnIcon"] }, { kind: "component", type: i4.GravityIconComponent, selector: "gravity-icon", inputs: ["customIconColorVariable", "iconName", "iconSize", "hoverIcon", "size", "isCoin"] }, { kind: "component", type: i5.GravityTextFieldComponent, selector: "gravity-text-field", inputs: ["currentLang", "customInputValue", "customState", "cypressTag", "label", "prefix", "required", "supportText", "textFieldType", "clickOnLeftIcon", "clickOnRightIcon", "iconColor", "iconLeft", "iconRight", "autocomplete", "inputContentType", "placeholder", "validations", "size", "width", "labelExtraText", "characterCounter", "passwordRequirements", "supportTextIcon"], outputs: ["clickIconLeft", "clickIconRight", "response"] }, { kind: "component", type: i6.GravityLinkComponent, selector: "gravity-link", inputs: ["linkText", "fontClass", "link", "cypressTag", "iconName", "target", "iconPosition", "iconSize", "state"] }, { kind: "component", type: i7.GravityDropdownLabelComponent, selector: "gravity-dropdown-label", inputs: ["label", "fontClass", "isOpen", "stopPropagation", "size", "state"], outputs: ["onClickLabel"] }, { kind: "component", type: i8.MonthCalendarComponent, selector: "month-calendar", inputs: ["config", "initDate", "restart", "appearance", "integratedMode"], outputs: ["clearSelection", "response"] }, { kind: "component", type: i9.YearCalendarComponent, selector: "year-calendar", inputs: ["config", "initDate", "restart", "appearance", "integratedMode"], outputs: ["clearSelection", "response"] }] }); }
234
- }
235
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DayCalendarComponent, decorators: [{
236
- type: Component,
237
- args: [{ selector: 'day-calendar', template: "<section *ngIf=\"showMonthCalendar\">\n <month-calendar\n [config]=\"config\"\n [integratedMode]=\"true\"\n [restart]=\"showMonthCalendar\"\n (response)=\"handleCalendarResponse($event, true)\" [initDate]=\"initMonth\"\n [appearance]=\"{language: appearance.language, isMobile: appearance.isMobile }\">\n </month-calendar>\n</section>\n\n<section *ngIf=\"showYearCalendar\">\n <year-calendar\n [config]=\"config\"\n [integratedMode]=\"true\"\n [restart]=\"showYearCalendar\"\n (response)=\"handleCalendarResponse($event, false)\" [initDate]=\"initYear\"\n [appearance]=\"{language: appearance.language, isMobile: appearance.isMobile}\">\n </year-calendar>\n</section>\n\n<div *ngIf=\"!appearance.isMobile && !showMonthCalendar && !showYearCalendar\" class=\"title\">\n <span class=\"hr-label sm-bold\">{{range ? i18n.select_range : i18n.select_date}}</span>\n</div>\n\n<div class=\"gravity-date-picker-content\" [class.hidden]=\"showYearCalendar || showMonthCalendar\" [class.mobile]=\"appearance.isMobile\">\n\n <div *ngIf=\"range\" class=\"selected-dates\">\n <gravity-text-field #startDate\n [size]=\"'sm'\"\n [width]=\"'short'\"\n [label]=\"i18n.start_date\"\n [inputContentType]=\"'date'\"\n [supportText]=\"startDateError\"\n [placeholder]=\"i18n.date_placeholder\"\n [clickOnRightIcon]=\"!startFieldDisabled\"\n (keyup)=\"onDateKeyup(this, $event, 'start')\"\n (clickIconRight)=\"clearSelectedDate('start')\"\n (focusout)=\"searchDate(this, startDate.inputValue, 'start')\"\n [iconRight]=\"(selectedRangeStart || startDate.inputValue.length > 9) ? 'unsuccess' : ''\"\n (click)=\"focused = 'start'; selectedRangeStart ? currentDate = calendarDateToDate(selectedRangeStart) : null\"\n [customState]=\"startFieldDisabled ? 'disabled' : startDateError ? 'typed-error' : (startDate.inputValue.length < 1 ? 'default' : 'typing')\"\n [attr.data-cy]=\"'datePicker_startDate'\"/>\n\n <gravity-text-field #endDate\n [size]=\"'sm'\"\n [width]=\"'short'\"\n [label]=\"i18n.end_date\"\n [inputContentType]=\"'date'\"\n [supportText]=\"endDateError\"\n [placeholder]=\"i18n.date_placeholder\"\n [clickOnRightIcon]=\"!endFieldDisabled\"\n (keyup)=\"onDateKeyup(this, $event, 'end')\"\n (clickIconRight)=\"clearSelectedDate('end')\"\n (focusout)=\"searchDate(this, endDate.inputValue, 'end')\"\n [iconRight]=\"(selectedRangeEnd || endDate.inputValue.length > 9) ? 'unsuccess' : ''\"\n (click)=\" focused = 'end'; selectedRangeEnd ? currentDate = calendarDateToDate(selectedRangeEnd) : null\"\n [customState]=\"endFieldDisabled ? 'disabled' : endDateError ? 'typed-error' : (endDate.inputValue.length < 1 ? 'default' : 'typing')\" [attr.data-cy]=\"'datePicker_endDate'\"/>\n </div>\n\n <section class=\"gravity-date-picker-header\" [class.mobile]=\"appearance.isMobile\">\n <gravity-icon-button [type]=\"'primary'\" [size]=\"'sm'\" [icon]=\"'arrow-left'\" [supportText]=\"i18n.preview_month\"\n (clickOnIcon)=\"currentDate = changeDate(-1, currentDate, true);\"\n [state]=\"(navType === 'prev' || navType === 'both') && (appearance.state !== 'disabled') &&\n isPeriodAvailable(currentDate, config.minDate, 'month', 'prev') ? 'active' : 'disabled'\"/>\n\n <div class=\"month-year-label\">\n <gravity-dropdown-label [fontClass]=\"'hr-title sm-bold'\" [size]=\"'sm'\" [label]=\"monthsList[currentDate.getMonth()]\"\n [state]=\"appearance.state === 'disabled' ? 'inactive' : 'active'\" (onClickLabel)=\"handleOnClickDropdownLabel(true)\" [attr.data-cy]=\"'datePicker_monthDropdown'\"/>\n\n <gravity-dropdown-label [fontClass]=\"'hr-title sm-bold'\" [size]=\"'sm'\" [label]=\"currentDate.getFullYear().toString()\"\n [state]=\"appearance.state === 'disabled' ? 'inactive' : 'active'\" (onClickLabel)=\"handleOnClickDropdownLabel(false)\" [attr.data-cy]=\"'datePicker_yearDropdown'\"/>\n </div>\n\n <gravity-icon-button [type]=\"'primary'\" [size]=\"'sm'\" [icon]=\"'arrow-right'\" [supportText]=\"i18n.next_month\"\n (clickOnIcon)=\"currentDate = changeDate(1, currentDate, true);\"\n [state]=\"(navType === 'next' || navType === 'both') && (appearance.state !== 'disabled') &&\n isPeriodAvailable(currentDate, config.maxDate, 'month', 'next') ? 'active' : 'disabled'\"/>\n </section>\n\n <section class=\"gravity-date-picker-body\" [class.mobile]=\"appearance.isMobile\">\n <section class=\"days-name-line\">\n <div class=\"days-name\">\n <span class=\"hr-body\" [ngClass]=\"appearance.isMobile ? 'md-regular' : 'sm-regular'\"\n *ngFor=\"let day of daysList\"> {{ day }} </span>\n </div>\n\n <div class=\"separator-line\"></div>\n </section>\n\n <section class=\"days-number-selector\" [attr.data-cy]=\"'datePicker_daysSelector'\">\n <div class=\"days-number-table\">\n <div class=\"week-row\" *ngFor=\"let week of getMonthGrid(); trackBy: trackByWeek\">\n <span class=\"hr-body\" *ngFor=\"let day of week; trackBy: trackByDay\"\n [class.preview]=\"range ? isPreview(this, day) : null\"\n [class.disabled]=\"!day.inCurrentMonth\" [class.today]=\"day.isToday\"\n (mouseenter)=\"range ? onHoverDay(this, day) : null; hoverDay.emit(day)\"\n (mouseleave)=\"range ? onClearHover(this) : null; this.clearHover.emit()\"\n [ngClass]=\"[appearance.isMobile ? 'md-regular' : 'sm-regular',\n appearance.state === 'disabled' ? 'disabled' : getDaySelectionClass(day)]\"\n (click)=\"day.inCurrentMonth ? onSelectDay(day): null\"> {{ day.day }} </span>\n </div>\n </div>\n\n <div *ngIf=\"notification\" class=\"notification\" [class.error]=\"notification.error\">\n <gravity-icon [style.--icon-color]=\"'var(--notification-icon-color)'\" [iconSize]=\"'sm-12'\" [iconName]=\"'information-circle'\"/>\n <span class=\"hr-label sm-regular\">{{notification.text}}</span>\n </div>\n\n <div *ngIf=\"range || selectedDay\" class=\"action-section\" >\n <gravity-link [linkText]=\"i18n.clear\" [state]=\"hasDateSelected() ? 'active' : 'disabled'\"\n [fontClass]=\"appearance.isMobile ? 'hr-body md-regular' : 'hr-body sm-regular'\"\n (click)=\" hasDateSelected() ? clearSelectedDate('all') : null\"/>\n\n <gravity-button *ngIf=\"range\" [size]=\"appearance.isMobile ? 'md' : 'sm'\" [type]=\"'tertiary'\" [disabled]=\"!hasDateSelected(true)\"\n (click)=\"hasDateSelected(true) ? applySelectedDate() : null\"> {{i18n.apply}} </gravity-button>\n </div>\n </section>\n </section>\n</div>\n", 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}.title{width:100%;text-align:center;margin-bottom:var(--gravity-spacing-sm);color:var(--label-text-empty-enabled-primary)}.title span{height:11px;display:block;line-height:11px}.gravity-date-picker-content{display:flex;align-items:center;justify-items:center;flex-direction:column;gap:var(--gravity-spacing-md)}.gravity-date-picker-content .selected-dates{width:50%;display:flex;justify-content:center;gap:var(--gravity-spacing-xs)}.gravity-date-picker-content .selected-dates ::ng-deep gravity-text-field{width:130px}.gravity-date-picker-content .selected-dates ::ng-deep gravity-text-field .gravity-input-field{width:130px}.gravity-date-picker-content .gravity-date-picker-header{gap:0;width:268px;height:auto;display:flex;padding-top:0;align-items:center;justify-content:space-between}.gravity-date-picker-content .gravity-date-picker-header .month-year-label{display:flex;gap:var(--gravity-spacing-sm)}.gravity-date-picker-content .gravity-date-picker-header.mobile,.gravity-date-picker-content .gravity-date-picker-body{width:100%}.gravity-date-picker-content .gravity-date-picker-body .days-name-line{display:flex;flex-direction:column;gap:var(--gravity-spacing-xs);padding-bottom:var(--gravity-spacing-xs)}.gravity-date-picker-content .gravity-date-picker-body .days-name-line .days-name{display:flex;align-self:stretch;justify-content:space-between}.gravity-date-picker-content .gravity-date-picker-body .days-name-line .days-name span{display:flex;cursor:default;align-items:center;justify-content:center;padding:var(--gravity-spacing-xs);color:var(--text-highlight-primary)}.gravity-date-picker-content .gravity-date-picker-body .days-name-line .separator-line{width:100%}.gravity-date-picker-content .gravity-date-picker-body .days-number-selector{display:flex;align-self:stretch;flex-direction:column;gap:var(--gravity-spacing-sm)}.gravity-date-picker-content .gravity-date-picker-body .days-number-selector .days-number-table{display:flex;flex-direction:column}.gravity-date-picker-content .gravity-date-picker-body .days-number-selector .days-number-table .week-row{height:25px;display:flex;align-self:stretch}.gravity-date-picker-content .gravity-date-picker-body .days-number-selector .days-number-table .week-row span{gap:10px;flex:1 0 0;width:31px;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-content .gravity-date-picker-body .days-number-selector .days-number-table .week-row span:not(.sl).today{border-color:var(--bg-number-calendar-hover-primary)}.gravity-date-picker-content .gravity-date-picker-body .days-number-selector .days-number-table .week-row span:not(.disabled):not(.sl):hover{color:var(--on-bg-button-pressed-tertiary);background:var(--bg-button-active-tertiary);border-color:var(--bg-button-active-tertiary)}.gravity-date-picker-content .gravity-date-picker-body .days-number-selector .days-number-table .week-row span.single,.gravity-date-picker-content .gravity-date-picker-body .days-number-selector .days-number-table .week-row span.start,.gravity-date-picker-content .gravity-date-picker-body .days-number-selector .days-number-table .week-row span.end{color:var(--on-bg-button-pressed-primary);background:var(--bg-button-pressed-primary);border-color:var(--bg-button-pressed-primary)}.gravity-date-picker-content .gravity-date-picker-body .days-number-selector .days-number-table .week-row span.range,.gravity-date-picker-content .gravity-date-picker-body .days-number-selector .days-number-table .week-row span:not(.disabled).preview{border-radius:0;background:var(--bg-button-active-tertiary);border-color:var(--bg-button-active-tertiary)}.gravity-date-picker-content .gravity-date-picker-body .days-number-selector .days-number-table .week-row span.start,.gravity-date-picker-content .gravity-date-picker-body .days-number-selector .days-number-table .week-row span.nsl-start:hover{border-radius:var(--gravity-spacing-xs) 0 0 var(--gravity-spacing-xs)}.gravity-date-picker-content .gravity-date-picker-body .days-number-selector .days-number-table .week-row span.end,.gravity-date-picker-content .gravity-date-picker-body .days-number-selector .days-number-table .week-row span.nsl-end:hover{border-radius:0 var(--gravity-spacing-xs) var(--gravity-spacing-xs) 0}.gravity-date-picker-content .gravity-date-picker-body .days-number-selector .days-number-table .week-row span.in-slt:hover{border-color:var(--bg-button-pressed-primary)!important}.gravity-date-picker-content .gravity-date-picker-body .days-number-selector .days-number-table .week-row span.default{border-radius:0!important;border-color:transparent!important}.gravity-date-picker-content .gravity-date-picker-body .days-number-selector .days-number-table .week-row span.same-sln{border-radius:var(--gravity-spacing-xs)!important}.gravity-date-picker-content .gravity-date-picker-body .days-number-selector .days-number-table .week-row span.disabled{cursor:default;pointer-events:none;color:var(--on-bg-disabled)}.gravity-date-picker-content .gravity-date-picker-body .days-number-selector .notification{display:flex;align-items:center;align-self:stretch;gap:var(--gravity-spacing-xxs);border-radius:.3125rem;padding:var(--gravity-spacing-xs);color:var(--on-bg-button-active-tertiary);background:var(--bg-button-active-tertiary);--notification-icon-color: var(--on-bg-button-active-tertiary)}.gravity-date-picker-content .gravity-date-picker-body .days-number-selector .notification.error{color:var(--on-bg-button-active-negative);background:var(--bg-button-active-negative);--notification-icon-color: var(--on-bg-button-active-negative)}.gravity-date-picker-content.mobile{width:100%;height:auto}.gravity-date-picker-content.mobile .selected-dates ::ng-deep gravity-text-field{width:100%}.gravity-date-picker-content.mobile .selected-dates ::ng-deep gravity-text-field .gravity-input-field{min-width:100%}.gravity-date-picker-content.mobile .days-name-line .separator-line{width:100%}.gravity-date-picker-content.mobile .days-number-selector .days-number-table .week-row,.gravity-date-picker-content.mobile .days-number-selector .days-number-table span{height:43px!important}.gravity-date-picker-content.hidden{display:none}\n"] }]
238
- }], propDecorators: { initYear: [{
239
- type: Input
240
- }], initMonth: [{
241
- type: Input
242
- }], range: [{
243
- type: Input
244
- }], config: [{
245
- type: Input
246
- }], restart: [{
247
- type: Input
248
- }], appyOnClose: [{
249
- type: Input
250
- }], currentDate: [{
251
- type: Input
252
- }], appearance: [{
253
- type: Input
254
- }], navType: [{
255
- type: Input
256
- }], clearHover: [{
257
- type: Output
258
- }], clearSelection: [{
259
- type: Output
260
- }], hoverDay: [{
261
- type: Output
262
- }], selectedRage: [{
263
- type: Output
264
- }], calendarResponse: [{
265
- type: Output
266
- }], endDateField: [{
267
- type: ViewChild,
268
- args: ['endDate']
269
- }], startDateField: [{
270
- type: ViewChild,
271
- args: ['startDate']
272
- }] } });
273
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF5LWNhbGVuZGFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dyYXZpdHktZGVzaWduLXN5c3RlbS9zcmMvbGliL2NvbXBvbmVudHMvZ3Jhdml0eS1kYXRlLXBpY2tlci9jb21wb25lbnRzL2RheS1jYWxlbmRhci9kYXktY2FsZW5kYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ3Jhdml0eS1kZXNpZ24tc3lzdGVtL3NyYy9saWIvY29tcG9uZW50cy9ncmF2aXR5LWRhdGUtcGlja2VyL2NvbXBvbmVudHMvZGF5LWNhbGVuZGFyL2RheS1jYWxlbmRhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQWEsTUFBTSxFQUFpQixTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDMUcsT0FBTyxFQUFDLGFBQWEsRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUNySCxPQUFPLEVBQUMsaUJBQWlCLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxrQkFBa0IsRUFBRSxpQkFBaUIsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQ2xJLE9BQU8sRUFBQyxzQkFBc0IsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLGlCQUFpQixFQUFFLDJCQUEyQixFQUFFLFVBQVUsRUFBQyxNQUFNLDZCQUE2QixDQUFDOzs7Ozs7Ozs7OztBQU9sTSxNQUFNLE9BQU8sb0JBQW9CO0lBTGpDO1FBUWtCLFVBQUssR0FBWSxLQUFLLENBQUM7UUFFdkIsWUFBTyxHQUFZLEtBQUssQ0FBQztRQUMxQixnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUM1Qixn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QUFDLENBQUM7UUFDaEUsSUFBSSxrQkFBa0IsRUFBRTtZQUNwQixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ25CO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDOytHQXpOVSxvQkFBb0I7bUdBQXBCLG9CQUFvQix5b0JDWmpDLHN4TkF1SEE7OzRGRDNHYSxvQkFBb0I7a0JBTGhDLFNBQVM7K0JBQ0ksY0FBYzs4QkFLVixRQUFRO3NCQUF2QixLQUFLO2dCQUNVLFNBQVM7c0JBQXhCLEtBQUs7Z0JBQ1UsS0FBSztzQkFBcEIsS0FBSztnQkFDVSxNQUFNO3NCQUFyQixLQUFLO2dCQUNVLE9BQU87c0JBQXRCLEtBQUs7Z0JBQ1MsV0FBVztzQkFBMUIsS0FBSztnQkFDVyxXQUFXO3NCQUExQixLQUFLO2dCQUNVLFVBQVU7c0JBQXpCLEtBQUs7Z0JBQ1UsT0FBTztzQkFBdEIsS0FBSztnQkFFVyxVQUFVO3NCQUExQixNQUFNO2dCQUNVLGNBQWM7c0JBQTlCLE1BQU07Z0JBQ1UsUUFBUTtzQkFBeEIsTUFBTTtnQkFDVSxZQUFZO3NCQUE1QixNQUFNO2dCQUNVLGdCQUFnQjtzQkFBaEMsTUFBTTtnQkFFZSxZQUFZO3NCQUFqQyxTQUFTO3VCQUFDLFNBQVM7Z0JBQ0ksY0FBYztzQkFBckMsU0FBUzt1QkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEYXRlUGlja2VyQXBwZWFyYW5jZSwgRGF0ZVBpY2tlckNvbmZpZywgQ2FsZW5kYXJEYXRlfSBmcm9tIFwiLi4vLi4vc2hhcmVkL2RhdGUtcGlja2VyLm1vZGFsXCI7XG5pbXBvcnQge0dyYXZpdHlUZXh0RmllbGRDb21wb25lbnR9IGZyb20gXCIuLi8uLi8uLi9ncmF2aXR5LXRleHQtZmllbGQvZ3Jhdml0eS10ZXh0LWZpZWxkLmNvbXBvbmVudFwiO1xuaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzLCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDQUxFTkRBUl9JMThOLCBEQVlTX1NIT1JUX0VOLCBEQVlTX1NIT1JUX0VTLCBNT05USFNfRU4sIE1PTlRIU19FU30gZnJvbSBcIi4uLy4uL3NoYXJlZC9kYXRlLXBpY2tlci5jb25zdGFudHNcIjtcbmltcG9ydCB7ZGF0ZVRvQ2FsZW5kYXJEYXksIGdldFN0YXJ0RGF0ZSwgY2hhbmdlRGF0ZSwgY2FsZW5kYXJEYXRlVG9EYXRlLCBpc1BlcmlvZEF2YWlsYWJsZX0gZnJvbSAnLi4vLi4vc2hhcmVkL2RhdGUtcGlja2VyLnV0aWxzJztcbmltcG9ydCB7Z2V0UmFuZ2VTZWxlY3Rpb25DbGFzcywgaXNQcmV2aWV3LCBvbkFwcGx5UmFnZURhdGUsIG9uQ2xlYXJIb3Zlciwgb25EYXRlS2V5dXAsIG9uSG92ZXJEYXksIG9uU2VsZWN0RGF5c1JhbmdlLCBwcm9jZXNzUHJlc2VsZWN0ZWRSYW5nZURhdGUsIHNlYXJjaERhdGV9IGZyb20gXCIuL3JhbmdlLWRheXMtY2FsZW5kYXIudXRpbHNcIjtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdkYXktY2FsZW5kYXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kYXktY2FsZW5kYXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2RheS1jYWxlbmRhci5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIERheUNhbGVuZGFyQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgcHVibGljIGluaXRZZWFyOiBEYXRlO1xuICBASW5wdXQoKSBwdWJsaWMgaW5pdE1vbnRoOiBEYXRlO1xuICBASW5wdXQoKSBwdWJsaWMgcmFuZ2U6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgcHVibGljIGNvbmZpZzogRGF0ZVBpY2tlckNvbmZpZztcbiAgQElucHV0KCkgcHVibGljIHJlc3RhcnQ6IGJvb2xlYW4gPSBmYWxzZTtcblx0QElucHV0KCkgcHVibGljIGFwcHlPbkNsb3NlOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHB1YmxpYyBjdXJyZW50RGF0ZTogRGF0ZSA9IG5ldyBEYXRlKCk7XG4gIEBJbnB1dCgpIHB1YmxpYyBhcHBlYXJhbmNlOiBEYXRlUGlja2VyQXBwZWFyYW5jZTtcbiAgQElucHV0KCkgcHVibGljIG5hdlR5cGU6ICdwcmV2JyB8ICduZXh0JyB8ICdib3RoJyB8ICdub25lJz0gJ2JvdGgnXG5cbiAgQE91dHB1dCgpIHB1YmxpYyBjbGVhckhvdmVyOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgY2xlYXJTZWxlY3Rpb246IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQE91dHB1dCgpIHB1YmxpYyBob3ZlckRheTogRXZlbnRFbWl0dGVyPENhbGVuZGFyRGF0ZT4gPSBuZXcgRXZlbnRFbWl0dGVyPENhbGVuZGFyRGF0ZT4oKTtcbiAgQE91dHB1dCgpIHB1YmxpYyBzZWxlY3RlZFJhZ2U6IEV2ZW50RW1pdHRlcjxDYWxlbmRhckRhdGU+ID0gbmV3IEV2ZW50RW1pdHRlcjxDYWxlbmRhckRhdGU+KCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgY2FsZW5kYXJSZXNwb25zZTogRXZlbnRFbWl0dGVyPERhdGVbXSB8IERhdGU+ID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlW10gfCBEYXRlPigpO1xuXG4gIEBWaWV3Q2hpbGQoJ2VuZERhdGUnKSBlbmREYXRlRmllbGQhOiBHcmF2aXR5VGV4dEZpZWxkQ29tcG9uZW50O1xuICBAVmlld0NoaWxkKCdzdGFydERhdGUnKSBzdGFydERhdGVGaWVsZCE6IEdyYXZpdHlUZXh0RmllbGRDb21wb25lbnQ7XG5cbiAgcHVibGljIGVuZERhdGVFcnJvcjogc3RyaW5nID0gJyc7XG4gIHB1YmxpYyBzdGFydERhdGVFcnJvcjogc3RyaW5nID0gJyc7XG5cdHB1YmxpYyBlbmRGaWVsZERpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG5cdHB1YmxpYyBzdGFydEZpZWxkRGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblx0cHVibGljIHNlbGVjdGVkUmFuZ2VFbmQ6IENhbGVuZGFyRGF0ZSB8IG51bGwgPSBudWxsO1xuXHRwdWJsaWMgc2VsZWN0ZWRSYW5nZVN0YXJ0OiBDYWxlbmRhckRhdGUgfCBudWxsID0gbnVsbDtcblxuICBwdWJsaWMgc2hvd1llYXJDYWxlbmRhcjogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgc2hvd01vbnRoQ2FsZW5kYXI6IGJvb2xlYW4gPSBmYWxzZTtcblx0cHVibGljIGZvY3VzZWQ6ICdzdGFydCcgfCAnZW5kJyA9ICdzdGFydCc7XG5cdHB1YmxpYyBob3ZlcmVkRGF5OiBDYWxlbmRhckRhdGUgfCBudWxsID0gbnVsbDtcblx0cHVibGljIHNlbGVjdGVkRGF5OiBDYWxlbmRhckRhdGUgfCBudWxsID0gbnVsbDtcblx0cHVibGljIG5vdGlmaWNhdGlvbjoge3RleHQ6IHN0cmluZywgZXJyb3I6IGJvb2xlYW59O1xuXG4gIHB1YmxpYyBnZXQgaTE4bigpIHsgcmV0dXJuIENBTEVOREFSX0kxOE5bdGhpcy5hcHBlYXJhbmNlLmxhbmd1YWdlXTsgfVxuICBwdWJsaWMgZ2V0IG1vbnRoc0xpc3QoKSB7IHJldHVybiB0aGlzLmFwcGVhcmFuY2UubGFuZ3VhZ2UgPT09ICdlbicgPyBNT05USFNfRU4gOiBNT05USFNfRVM7IH1cbiAgcHVibGljIGdldCBkYXlzTGlzdCgpIHsgcmV0dXJuIHRoaXMuYXBwZWFyYW5jZS5sYW5ndWFnZSA9PT0gJ2VuJyA/IERBWVNfU0hPUlRfRU4gOiBEQVlTX1NIT1JUX0VTOyB9XG5cbiAgcHVibGljIHRyYWNrQnlXZWVrKGluZGV4OiBudW1iZXIsIF86IGFueSk6IG51bWJlciB7IHJldHVybiBpbmRleDsgfVxuICBwdWJsaWMgdHJhY2tCeURheShfOiBudW1iZXIsIGRheTogQ2FsZW5kYXJEYXRlKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCR7ZGF5Lm1vbnRoWWVhci55ZWFyfS0ke2RheS5tb250aFllYXIubW9udGh9LSR7ZGF5LmRheX1gO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGNvbnN0IHNob3VsZFJlc3RhcnQgPSBjaGFuZ2VzWydyZXN0YXJ0J10gJiYgdGhpcy5yZXN0YXJ0O1xuXHRcdGNvbnN0IHNob3VsZEFwcHkgPSBjaGFuZ2VzWydhcHB5T25DbG9zZSddICYmIHRoaXMuYXBweU9uQ2xvc2U7XG4gICAgY29uc3Qgc2hvdWxkUHJvY2Vzc1ByZVNlbGVjdGVkID0gY2hhbmdlc1sncHJlU2VsZWN0ZWREYXRlJ10gJiYgdGhpcy5jb25maWcuaW5pdERhdGU7XG5cblx0XHRpZiAoc2hvdWxkQXBweSkgeyB0aGlzLmFwcGx5U2VsZWN0ZWREYXRlKCk7IH1cbiAgICBpZiAoc2hvdWxkUmVzdGFydCB8fCBzaG91bGRQcm9jZXNzUHJlU2VsZWN0ZWQpIHsgdGhpcy5wcm9jZXNzSW5pdERhdGUoKTsgfVxuICB9XG5cbiAgcHJpdmF0ZSBwcm9jZXNzSW5pdERhdGUoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucmFuZ2UpIHtcbiAgICAgIHByb2Nlc3NQcmVzZWxlY3RlZFJhbmdlRGF0ZSh0aGlzKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuY29uZmlnLmluaXREYXRlIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgICAgdGhpcy5jdXJyZW50RGF0ZSA9IGdldFN0YXJ0RGF0ZSh0aGlzLmNvbmZpZy5pbml0RGF0ZSk7XG4gICAgICB0aGlzLnNlbGVjdGVkRGF5ID0gZGF0ZVRvQ2FsZW5kYXJEYXkodGhpcy5jb25maWcuaW5pdERhdGUpO1xuICAgIH1cbiAgfVxuXG5cdHB1YmxpYyBoYXNEYXRlU2VsZWN0ZWQocmVxdWlyZUJvdGhJblJhbmdlID0gZmFsc2UpOiBib29sZWFuIHtcblx0XHRpZiAoIXRoaXMucmFuZ2UpIHtcblx0XHRcdHJldHVybiAhIXRoaXMuc2VsZWN0ZWREYXk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHJldHVybiByZXF1aXJlQm90aEluUmFuZ2Vcblx0XHRcdFx0PyAhIXRoaXMuc2VsZWN0ZWRSYW5nZVN0YXJ0ICYmICEhdGhpcy5zZWxlY3RlZFJhbmdlRW5kXG5cdFx0XHRcdDogISF0aGlzLnNlbGVjdGVkUmFuZ2VTdGFydCB8fCAhIXRoaXMuc2VsZWN0ZWRSYW5nZUVuZDtcblx0XHR9XG5cdH1cblxuXG5cdHB1YmxpYyBnZXREYXlTZWxlY3Rpb25DbGFzcyhkYXk6IENhbGVuZGFyRGF0ZSk6IHN0cmluZyB7XG4gICAgaWYgKCFkYXkuaW5DdXJyZW50TW9udGgpIHJldHVybiAnZGlzYWJsZWQnO1xuXG4gICAgY29uc3QgZGF5RGF0ZSA9IG5ldyBEYXRlKGRheS5tb250aFllYXIueWVhciwgZGF5Lm1vbnRoWWVhci5tb250aCwgZGF5LmRheSk7XG5cbiAgICBpZiAodGhpcy5jb25maWc/Lm1pbkRhdGUpIHsgaWYgKGRheURhdGUgPCB0aGlzLmNvbmZpZy5taW5EYXRlKSByZXR1cm4gJ2Rpc2FibGVkJzsgfVxuICAgIGlmICh0aGlzLmNvbmZpZz8ubWF4RGF0ZSkgeyBpZiAoZGF5RGF0ZSA+IHRoaXMuY29uZmlnLm1heERhdGUpIHJldHVybiAnZGlzYWJsZWQnOyB9XG5cbiAgICByZXR1cm4gdGhpcy5yYW5nZSA/IGdldFJhbmdlU2VsZWN0aW9uQ2xhc3ModGhpcywgZGF5KSA6IHRoaXMuZ2V0U2luZ2xlRGF5U2VsZWN0aW9uQ2xhc3MoZGF5KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0U2luZ2xlRGF5U2VsZWN0aW9uQ2xhc3MoZGF5OiBDYWxlbmRhckRhdGUpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLnNlbGVjdGVkRGF5ICYmIGRheS5kYXkgPT09IHRoaXMuc2VsZWN0ZWREYXkuZGF5ICYmXG4gICAgICBkYXkubW9udGhZZWFyLm1vbnRoID09PSB0aGlzLnNlbGVjdGVkRGF5Lm1vbnRoWWVhci5tb250aCAmJlxuICAgICAgZGF5Lm1vbnRoWWVhci55ZWFyID09PSB0aGlzLnNlbGVjdGVkRGF5Lm1vbnRoWWVhci55ZWFyKSB7XG4gICAgICByZXR1cm4gJ3NsIHNpbmdsZSc7XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIHB1YmxpYyBvblNlbGVjdERheShkYXk6IENhbGVuZGFyRGF0ZSk6IHZvaWQge1xuICAgIGlmICghZGF5LmluQ3VycmVudE1vbnRoKSByZXR1cm47XG5cbiAgICBpZiAoIXRoaXMucmFuZ2UpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWREYXkgPSBkYXk7XG4gICAgICBjb25zdCBjdXJyZW50RGF0ZSA9IGNhbGVuZGFyRGF0ZVRvRGF0ZShkYXkpO1xuICAgICAgdGhpcy5jYWxlbmRhclJlc3BvbnNlLmVtaXQoY3VycmVudERhdGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBvblNlbGVjdERheXNSYW5nZSh0aGlzLCBkYXkpO1xuICAgICAgdGhpcy5zZWxlY3RlZFJhZ2UuZW1pdChkYXkpO1xuICAgIH1cbiAgfVxuXG5cdHB1YmxpYyBhcHBseVNlbGVjdGVkRGF0ZSgpOiB2b2lkIHtcblx0XHRpZiAodGhpcy5yYW5nZSkge1xuXHRcdFx0aWYgKHRoaXMuc2VsZWN0ZWRSYW5nZVN0YXJ0ICYmIHRoaXMuc2VsZWN0ZWRSYW5nZUVuZCkge1xuXHRcdFx0XHRvbkFwcGx5UmFnZURhdGUodGhpcyk7XG5cdFx0XHR9IGVsc2UgaWYgKHRoaXMuZW5kRGF0ZUZpZWxkICYmIHRoaXMuc3RhcnREYXRlRmllbGQpIHtcblx0XHRcdFx0dGhpcy5jbGVhclNlbGVjdGVkRGF0ZSgnYWxsJyk7XG5cdFx0XHR9XG5cdFx0fSBlbHNlIGlmICh0aGlzLnNlbGVjdGVkRGF5KSB7XG5cdFx0XHRjb25zdCBkYXRlID0gY2FsZW5kYXJEYXRlVG9EYXRlKHRoaXMuc2VsZWN0ZWREYXkpO1xuXHRcdFx0dGhpcy5jYWxlbmRhclJlc3BvbnNlLmVtaXQoZGF0ZSk7XG5cdFx0fVxuXHR9XG5cbiAgcHVibGljIGNsZWFyU2VsZWN0ZWREYXRlKGNsZWFyVGFyZ2V0OiAnYWxsJyB8ICdzdGFydCcgfCAnZW5kJyk6IHZvaWQge1xuICAgIGlmICh0aGlzLnJhbmdlICYmIChjbGVhclRhcmdldCA9PT0gJ2FsbCcgfHwgY2xlYXJUYXJnZXQgPT09ICdlbmQnKSkge1xuXHRcdFx0dGhpcy5lbmREYXRlRXJyb3IgPSAnJztcbiAgICAgIHRoaXMuc2VsZWN0ZWRSYW5nZUVuZCA9IG51bGw7XG5cdFx0XHR0aGlzLnN0YXJ0RmllbGREaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgdGhpcy5lbmREYXRlRmllbGQuaW5wdXRWYWx1ZSA9ICcnO1xuXHQgICAgaWYoIXRoaXMuYXBwZWFyYW5jZS5pc01vYmlsZSkgeyB0aGlzLmVuZERhdGVGaWVsZC5mb2N1cygpOyB9XG5cdFx0XHRpZih0aGlzLnNlbGVjdGVkUmFuZ2VTdGFydCkgeyB0aGlzLmN1cnJlbnREYXRlID0gY2FsZW5kYXJEYXRlVG9EYXRlKHRoaXMuc2VsZWN0ZWRSYW5nZVN0YXJ0KSB9XG4gICAgfVxuXG5cdCAgaWYgKHRoaXMucmFuZ2UgJiYgKGNsZWFyVGFyZ2V0ID09PSAnYWxsJyB8fCBjbGVhclRhcmdldCA9PT0gJ3N0YXJ0JykpIHtcblx0XHQgIHRoaXMuc3RhcnREYXRlRXJyb3IgPSAnJztcblx0XHRcdHRoaXMuZW5kRmllbGREaXNhYmxlZCA9IGZhbHNlO1xuXHRcdCAgdGhpcy5zZWxlY3RlZFJhbmdlU3RhcnQgPSBudWxsO1xuXHRcdCAgdGhpcy5zdGFydERhdGVGaWVsZC5pbnB1dFZhbHVlID0gJyc7XG5cdFx0ICBpZighdGhpcy5hcHBlYXJhbmNlLmlzTW9iaWxlKSB7IHRoaXMuc3RhcnREYXRlRmllbGQuZm9jdXMoKTsgfVxuXHRcdCAgaWYodGhpcy5zZWxlY3RlZFJhbmdlRW5kKSB7IHRoaXMuY3VycmVudERhdGUgPSBjYWxlbmRhckRhdGVUb0RhdGUodGhpcy5zZWxlY3RlZFJhbmdlRW5kKSB9XG5cdCAgfVxuXG5cdFx0aWYgKHRoaXMucmFuZ2UgJiYgdGhpcy5zZWxlY3RlZFJhbmdlU3RhcnQgPT09IG51bGwgJiYgdGhpcy5zZWxlY3RlZFJhbmdlRW5kID09PSBudWxsKSB7XG5cdFx0XHR0aGlzLmZvY3VzZWQgPSAnc3RhcnQnO1xuXHRcdFx0dGhpcy5jdXJyZW50RGF0ZSA9IG5ldyBEYXRlKCk7XG5cdFx0XHRpZighdGhpcy5hcHBlYXJhbmNlLmlzTW9iaWxlKSB7IHRoaXMuc3RhcnREYXRlRmllbGQuZm9jdXMoKTsgfVxuXHRcdH1cblxuICAgIHRoaXMuc2VsZWN0ZWREYXkgPSBudWxsO1xuXHRcdHRoaXMubm90aWZpY2F0aW9uID0gbnVsbDtcblx0XHRpZiAoIXRoaXMucmFuZ2UpIHsgdGhpcy5jdXJyZW50RGF0ZSA9IG5ldyBEYXRlKCk7IH1cblxuICAgIHRoaXMuY2xlYXJTZWxlY3Rpb24uZW1pdCgpO1xuICB9XG5cbiAgcHVibGljIGhhbmRsZUNhbGVuZGFyUmVzcG9uc2UoZGF0ZTogRGF0ZSB8IERhdGVbXSwgaXNNb250aDogYm9vbGVhbik6IHZvaWQge1xuICAgIGlmICghKGRhdGUgaW5zdGFuY2VvZiBEYXRlKSkgcmV0dXJuO1xuXG4gICAgY29uc3QgeWVhciA9IGlzTW9udGggPyB0aGlzLmN1cnJlbnREYXRlLmdldEZ1bGxZZWFyKCkgOiBkYXRlLmdldEZ1bGxZZWFyKCk7XG4gICAgY29uc3QgbW9udGggPSBpc01vbnRoID8gZGF0ZS5nZXRNb250aCgpIDogdGhpcy5jdXJyZW50RGF0ZS5nZXRNb250aCgpO1xuXG4gICAgdGhpcy5jdXJyZW50RGF0ZSA9IG5ldyBEYXRlKHllYXIsIG1vbnRoLCB0aGlzLmN1cnJlbnREYXRlLmdldERhdGUoKSk7XG5cbiAgICBpZiAoaXNNb250aCkgeyB0aGlzLmluaXRNb250aCA9IHRoaXMuY3VycmVudERhdGU7IHRoaXMuc2hvd01vbnRoQ2FsZW5kYXIgPSBmYWxzZTsgfVxuICAgIGVsc2UgeyB0aGlzLmluaXRZZWFyID0gdGhpcy5jdXJyZW50RGF0ZTsgdGhpcy5zaG93WWVhckNhbGVuZGFyID0gZmFsc2U7IH1cbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGVPbkNsaWNrRHJvcGRvd25MYWJlbChpc01vbnRoOiBib29sZWFuKTogdm9pZCB7XG4gICAgICB0aGlzLmluaXRNb250aCA9IGlzTW9udGggPyB0aGlzLmN1cnJlbnREYXRlIDogdGhpcy5pbml0TW9udGg7XG4gICAgICB0aGlzLmluaXRZZWFyID0gIWlzTW9udGggPyB0aGlzLmN1cnJlbnREYXRlIDogdGhpcy5pbml0WWVhcjtcblxuICAgICAgdGhpcy5zaG93TW9udGhDYWxlbmRhciA9IGlzTW9udGg7XG4gICAgICB0aGlzLnNob3dZZWFyQ2FsZW5kYXIgPSAhaXNNb250aDtcbiAgfVxuXG4gIHB1YmxpYyBnZXRNb250aEdyaWQoKTogQ2FsZW5kYXJEYXRlW11bXSB7XG4gICAgbGV0IHdlZWs6IENhbGVuZGFyRGF0ZVtdID0gW107XG5cbiAgICBjb25zdCB0b2RheSA9IG5ldyBEYXRlKCk7XG4gICAgY29uc3QgZ3JpZDogQ2FsZW5kYXJEYXRlW11bXSA9IFtdO1xuICAgIGNvbnN0IGJhc2VEYXRlID0gdGhpcy5jdXJyZW50RGF0ZTtcbiAgICBjb25zdCBtb250aCA9IGJhc2VEYXRlLmdldE1vbnRoKCk7XG4gICAgY29uc3QgeWVhciA9IGJhc2VEYXRlLmdldEZ1bGxZZWFyKCk7XG5cbiAgICBjb25zdCBmaXJzdERheSA9IG5ldyBEYXRlKHllYXIsIG1vbnRoLCAxKTtcbiAgICBjb25zdCBzdGFydFdlZWtkYXkgPSAoZmlyc3REYXkuZ2V0RGF5KCkgKyA2KSAlIDc7XG5cbiAgICBjb25zdCBkYXlzSW5Nb250aCA9IG5ldyBEYXRlKHllYXIsIG1vbnRoICsgMSwgMCkuZ2V0RGF0ZSgpO1xuICAgIGNvbnN0IGRheXNJblByZXZNb250aCA9IG5ldyBEYXRlKHllYXIsIG1vbnRoLCAwKS5nZXREYXRlKCk7XG5cbiAgICAvLyBmaWxsIGRheXMgZnJvbSBwcmV2aW91cyBtb250aFxuICAgIGZvciAobGV0IGkgPSBzdGFydFdlZWtkYXkgLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgICBjb25zdCBkYXkgPSBkYXlzSW5QcmV2TW9udGggLSBpO1xuICAgICAgICBjb25zdCB3ZWVrRGF5ID0gKHN0YXJ0V2Vla2RheSAtIDEgLSBpICsgNykgJSA3O1xuICAgICAgICB3ZWVrLnB1c2goeyBkYXksIG1vbnRoWWVhcjoge21vbnRoOiBtb250aCAtIDEsIHllYXI6IHllYXJ9LCBpc1RvZGF5OiBmYWxzZSwgaW5DdXJyZW50TW9udGg6IGZhbHNlLCB3ZWVrRGF5IH0pO1xuICAgIH1cblxuICAgIC8vIGZpbGwgZGF5cyBmcm9tIGN1cnJlbnQgbW9udGhcbiAgICBmb3IgKGxldCBkID0gMTsgZCA8PSBkYXlzSW5Nb250aDsgZCsrKSB7XG4gICAgICAgIGNvbnN0IGlzVG9kYXkgPSBkID09PSB0b2RheS5nZXREYXRlKCkgJiYgbW9udGggPT09IHRvZGF5LmdldE1vbnRoKCkgJiYgeWVhciA9PT0gdG9kYXkuZ2V0RnVsbFllYXIoKTtcbiAgICAgICAgY29uc3Qgd2Vla0RheSA9IHdlZWsubGVuZ3RoICUgNztcbiAgICAgICAgd2Vlay5wdXNoKHsgZGF5OiBkLCBtb250aFllYXI6IHttb250aDogbW9udGgsIHllYXI6IHllYXJ9LCBpc1RvZGF5LCBpbkN1cnJlbnRNb250aDogdHJ1ZSwgd2Vla0RheSB9KTtcblxuICAgICAgICBpZiAod2Vlay5sZW5ndGggPT09IDcpIHtcbiAgICAgICAgICAgIGdyaWQucHVzaCh3ZWVrKTtcbiAgICAgICAgICAgIHdlZWsgPSBbXTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIGZpbGwgcmVtYWluaW5nIGRheXMgZnJvbSBuZXh0IG1vbnRoXG4gICAgbGV0IG5leHREYXkgPSAxO1xuICAgIHdoaWxlICh3ZWVrLmxlbmd0aCA8IDcpIHtcbiAgICAgICAgY29uc3Qgd2Vla0RheSA9IHdlZWsubGVuZ3RoO1xuICAgICAgICB3ZWVrLnB1c2goeyBkYXk6IG5leHREYXkrKywgbW9udGhZZWFyOiB7bW9udGg6IG1vbnRoICsgMSwgeWVhcjogeWVhcn0sIGlzVG9kYXk6IGZhbHNlLCBpbkN1cnJlbnRNb250aDogZmFsc2UsIHdlZWtEYXkgfSk7XG4gICAgfVxuXG4gICAgY29uc3QgaGFzQ3VycmVudE1vbnRoRGF5ID0gd2Vlay5zb21lKGRheSA9PiBkYXkuaW5DdXJyZW50TW9udGgpO1xuICAgIGlmIChoYXNDdXJyZW50TW9udGhEYXkpIHtcbiAgICAgICAgZ3JpZC5wdXNoKHdlZWspO1xuICAgIH1cblxuICAgIHJldHVybiBncmlkO1xuICB9XG5cblx0cHJvdGVjdGVkIHJlYWRvbmx5IGNoYW5nZURhdGUgPSBjaGFuZ2VEYXRlO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgaXNQcmV2aWV3ID0gaXNQcmV2aWV3O1xuXHRwcm90ZWN0ZWQgcmVhZG9ubHkgc2VhcmNoRGF0ZSA9IHNlYXJjaERhdGU7XG4gIHByb3RlY3RlZCByZWFkb25seSBvbkhvdmVyRGF5ID0gb25Ib3ZlckRheTtcblx0cHJvdGVjdGVkIHJlYWRvbmx5IG9uRGF0ZUtleXVwID0gb25EYXRlS2V5dXA7XG4gIHByb3RlY3RlZCByZWFkb25seSBvbkNsZWFySG92ZXIgPSBvbkNsZWFySG92ZXI7XG5cdHByb3RlY3RlZCByZWFkb25seSBpc1BlcmlvZEF2YWlsYWJsZSA9IGlzUGVyaW9kQXZhaWxhYmxlO1xuXHRwcm90ZWN0ZWQgcmVhZG9ubHkgY2FsZW5kYXJEYXRlVG9EYXRlID0gY2FsZW5kYXJEYXRlVG9EYXRlO1xufSIsIjxzZWN0aW9uICpuZ0lmPVwic2hvd01vbnRoQ2FsZW5kYXJcIj5cbiAgPG1vbnRoLWNhbGVuZGFyXG4gICAgW2NvbmZpZ109XCJjb25maWdcIlxuICAgIFtpbnRlZ3JhdGVkTW9kZV09XCJ0cnVlXCJcbiAgICBbcmVzdGFydF09XCJzaG93TW9udGhDYWxlbmRhclwiXG4gICAgKHJlc3BvbnNlKT1cImhhbmRsZUNhbGVuZGFyUmVzcG9uc2UoJGV2ZW50LCB0cnVlKVwiIFtpbml0RGF0ZV09XCJpbml0TW9udGhcIlxuICAgIFthcHBlYXJhbmNlXT1cIntsYW5ndWFnZTogYXBwZWFyYW5jZS5sYW5ndWFnZSwgaXNNb2JpbGU6IGFwcGVhcmFuY2UuaXNNb2JpbGUgfVwiPlxuICA8L21vbnRoLWNhbGVuZGFyPlxuPC9zZWN0aW9uPlxuXG48c2VjdGlvbiAqbmdJZj1cInNob3dZZWFyQ2FsZW5kYXJcIj5cbiAgPHllYXItY2FsZW5kYXJcbiAgICBbY29uZmlnXT1cImNvbmZpZ1wiXG4gICAgW2ludGVncmF0ZWRNb2RlXT1cInRydWVcIlxuICAgIFtyZXN0YXJ0XT1cInNob3dZZWFyQ2FsZW5kYXJcIlxuICAgIChyZXNwb25zZSk9XCJoYW5kbGVDYWxlbmRhclJlc3BvbnNlKCRldmVudCwgZmFsc2UpXCIgW2luaXREYXRlXT1cImluaXRZZWFyXCJcbiAgICBbYXBwZWFyYW5jZV09XCJ7bGFuZ3VhZ2U6IGFwcGVhcmFuY2UubGFuZ3VhZ2UsIGlzTW9iaWxlOiBhcHBlYXJhbmNlLmlzTW9iaWxlfVwiPlxuICA8L3llYXItY2FsZW5kYXI+XG48L3NlY3Rpb24+XG5cbjxkaXYgKm5nSWY9XCIhYXBwZWFyYW5jZS5pc01vYmlsZSAmJiAhc2hvd01vbnRoQ2FsZW5kYXIgJiYgIXNob3dZZWFyQ2FsZW5kYXJcIiBjbGFzcz1cInRpdGxlXCI+XG4gIDxzcGFuIGNsYXNzPVwiaHItbGFiZWwgc20tYm9sZFwiPnt7cmFuZ2UgPyBpMThuLnNlbGVjdF9yYW5nZSA6IGkxOG4uc2VsZWN0X2RhdGV9fTwvc3Bhbj5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwiZ3Jhdml0eS1kYXRlLXBpY2tlci1jb250ZW50XCIgW2NsYXNzLmhpZGRlbl09XCJzaG93WWVhckNhbGVuZGFyIHx8IHNob3dNb250aENhbGVuZGFyXCIgIFtjbGFzcy5tb2JpbGVdPVwiYXBwZWFyYW5jZS5pc01vYmlsZVwiPlxuXG4gIDxkaXYgKm5nSWY9XCJyYW5nZVwiIGNsYXNzPVwic2VsZWN0ZWQtZGF0ZXNcIj5cbiAgICA8Z3Jhdml0eS10ZXh0LWZpZWxkICNzdGFydERhdGVcbiAgICAgIFtzaXplXT1cIidzbSdcIlxuICAgICAgW3dpZHRoXT1cIidzaG9ydCdcIlxuICAgICAgW2xhYmVsXT1cImkxOG4uc3RhcnRfZGF0ZVwiXG4gICAgICBbaW5wdXRDb250ZW50VHlwZV09XCInZGF0ZSdcIlxuICAgICAgW3N1cHBvcnRUZXh0XT1cInN0YXJ0RGF0ZUVycm9yXCJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJpMThuLmRhdGVfcGxhY2Vob2xkZXJcIlxuICAgICAgW2NsaWNrT25SaWdodEljb25dPVwiIXN0YXJ0RmllbGREaXNhYmxlZFwiXG4gICAgICAoa2V5dXApPVwib25EYXRlS2V5dXAodGhpcywgJGV2ZW50LCAnc3RhcnQnKVwiXG4gICAgICAoY2xpY2tJY29uUmlnaHQpPVwiY2xlYXJTZWxlY3RlZERhdGUoJ3N0YXJ0JylcIlxuICAgICAgKGZvY3Vzb3V0KT1cInNlYXJjaERhdGUodGhpcywgc3RhcnREYXRlLmlucHV0VmFsdWUsICdzdGFydCcpXCJcbiAgICAgIFtpY29uUmlnaHRdPVwiKHNlbGVjdGVkUmFuZ2VTdGFydCB8fCBzdGFydERhdGUuaW5wdXRWYWx1ZS5sZW5ndGggPiA5KSA/ICd1bnN1Y2Nlc3MnIDogICcnXCJcbiAgICAgIChjbGljayk9XCJmb2N1c2VkID0gJ3N0YXJ0Jzsgc2VsZWN0ZWRSYW5nZVN0YXJ0ID8gY3VycmVudERhdGUgPSBjYWxlbmRhckRhdGVUb0RhdGUoc2VsZWN0ZWRSYW5nZVN0YXJ0KSA6IG51bGxcIlxuICAgICAgW2N1c3RvbVN0YXRlXT1cInN0YXJ0RmllbGREaXNhYmxlZCA/ICdkaXNhYmxlZCcgOiBzdGFydERhdGVFcnJvciA/ICd0eXBlZC1lcnJvcicgOiAoc3RhcnREYXRlLmlucHV0VmFsdWUubGVuZ3RoIDwgMSA/ICdkZWZhdWx0JyA6ICd0eXBpbmcnKVwiXG4gICAgICBbYXR0ci5kYXRhLWN5XT1cIidkYXRlUGlja2VyX3N0YXJ0RGF0ZSdcIi8+XG5cbiAgICA8Z3Jhdml0eS10ZXh0LWZpZWxkICNlbmREYXRlXG4gICAgICBbc2l6ZV09XCInc20nXCJcbiAgICAgIFt3aWR0aF09XCInc2hvcnQnXCJcbiAgICAgIFtsYWJlbF09XCJpMThuLmVuZF9kYXRlXCJcbiAgICAgIFtpbnB1dENvbnRlbnRUeXBlXT1cIidkYXRlJ1wiXG4gICAgICBbc3VwcG9ydFRleHRdPVwiZW5kRGF0ZUVycm9yXCJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJpMThuLmRhdGVfcGxhY2Vob2xkZXJcIlxuICAgICAgW2NsaWNrT25SaWdodEljb25dPVwiIWVuZEZpZWxkRGlzYWJsZWRcIlxuICAgICAgKGtleXVwKT1cIm9uRGF0ZUtleXVwKHRoaXMsICRldmVudCwgJ2VuZCcpXCJcbiAgICAgIChjbGlja0ljb25SaWdodCk9XCJjbGVhclNlbGVjdGVkRGF0ZSgnZW5kJylcIlxuICAgICAgKGZvY3Vzb3V0KT1cInNlYXJjaERhdGUodGhpcywgZW5kRGF0ZS5pbnB1dFZhbHVlLCAnZW5kJylcIlxuICAgICAgW2ljb25SaWdodF09XCIoc2VsZWN0ZWRSYW5nZUVuZCB8fCBlbmREYXRlLmlucHV0VmFsdWUubGVuZ3RoID4gOSkgPyAndW5zdWNjZXNzJyA6ICcnXCJcbiAgICAgIChjbGljayk9XCIgZm9jdXNlZCA9ICdlbmQnOyBzZWxlY3RlZFJhbmdlRW5kID8gY3VycmVudERhdGUgPSBjYWxlbmRhckRhdGVUb0RhdGUoc2VsZWN0ZWRSYW5nZUVuZCkgOiBudWxsXCJcbiAgICAgIFtjdXN0b21TdGF0ZV09XCJlbmRGaWVsZERpc2FibGVkID8gJ2Rpc2FibGVkJyA6IGVuZERhdGVFcnJvciA/ICd0eXBlZC1lcnJvcicgOiAoZW5kRGF0ZS5pbnB1dFZhbHVlLmxlbmd0aCA8IDEgPyAnZGVmYXVsdCcgOiAndHlwaW5nJylcIiBbYXR0ci5kYXRhLWN5XT1cIidkYXRlUGlja2VyX2VuZERhdGUnXCIvPlxuICA8L2Rpdj5cblxuICA8c2VjdGlvbiBjbGFzcz1cImdyYXZpdHktZGF0ZS1waWNrZXItaGVhZGVyXCIgW2NsYXNzLm1vYmlsZV09XCJhcHBlYXJhbmNlLmlzTW9iaWxlXCI+XG4gICAgPGdyYXZpdHktaWNvbi1idXR0b24gW3R5cGVdPVwiJ3ByaW1hcnknXCIgW3NpemVdPVwiJ3NtJ1wiIFtpY29uXT1cIidhcnJvdy1sZWZ0J1wiIFtzdXBwb3J0VGV4dF09XCJpMThuLnByZXZpZXdfbW9udGhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIChjbGlja09uSWNvbik9XCJjdXJyZW50RGF0ZSA9IGNoYW5nZURhdGUoLTEsIGN1cnJlbnREYXRlLCB0cnVlKTtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFtzdGF0ZV09XCIobmF2VHlwZSA9PT0gJ3ByZXYnIHx8IG5hdlR5cGUgPT09ICdib3RoJykgJiYgKGFwcGVhcmFuY2Uuc3RhdGUgIT09ICdkaXNhYmxlZCcpICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlzUGVyaW9kQXZhaWxhYmxlKGN1cnJlbnREYXRlLCBjb25maWcubWluRGF0ZSwgJ21vbnRoJywgJ3ByZXYnKSA/ICdhY3RpdmUnIDogJ2Rpc2FibGVkJ1wiLz5cblxuICAgIDxkaXYgY2xhc3M9XCJtb250aC15ZWFyLWxhYmVsXCI+XG4gICAgICA8Z3Jhdml0eS1kcm9wZG93bi1sYWJlbCBbZm9udENsYXNzXT1cIidoci10aXRsZSBzbS1ib2xkJ1wiIFtzaXplXT1cIidzbSdcIiBbbGFiZWxdPVwibW9udGhzTGlzdFtjdXJyZW50RGF0ZS5nZXRNb250aCgpXVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3RhdGVdPVwiYXBwZWFyYW5jZS5zdGF0ZSA9PT0gJ2Rpc2FibGVkJyA/ICdpbmFjdGl2ZScgOiAnYWN0aXZlJ1wiIChvbkNsaWNrTGFiZWwpPVwiaGFuZGxlT25DbGlja0Ryb3Bkb3duTGFiZWwodHJ1ZSlcIiAgW2F0dHIuZGF0YS1jeV09XCInZGF0ZVBpY2tlcl9tb250aERyb3Bkb3duJ1wiLz5cblxuICAgICAgPGdyYXZpdHktZHJvcGRvd24tbGFiZWwgW2ZvbnRDbGFzc109XCInaHItdGl0bGUgc20tYm9sZCdcIiBbc2l6ZV09XCInc20nXCIgW2xhYmVsXT1cImN1cnJlbnREYXRlLmdldEZ1bGxZZWFyKCkudG9TdHJpbmcoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3RhdGVdPVwiYXBwZWFyYW5jZS5zdGF0ZSA9PT0gJ2Rpc2FibGVkJyA/ICdpbmFjdGl2ZScgOiAnYWN0aXZlJ1wiIChvbkNsaWNrTGFiZWwpPVwiaGFuZGxlT25DbGlja0Ryb3Bkb3duTGFiZWwoZmFsc2UpXCIgW2F0dHIuZGF0YS1jeV09XCInZGF0ZVBpY2tlcl95ZWFyRHJvcGRvd24nXCIvPlxuICAgIDwvZGl2PlxuXG4gICAgICA8Z3Jhdml0eS1pY29uLWJ1dHRvbiBbdHlwZV09XCIncHJpbWFyeSdcIiBbc2l6ZV09XCInc20nXCIgW2ljb25dPVwiJ2Fycm93LXJpZ2h0J1wiIFtzdXBwb3J0VGV4dF09XCJpMThuLm5leHRfbW9udGhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrT25JY29uKT1cImN1cnJlbnREYXRlID0gY2hhbmdlRGF0ZSgxLCBjdXJyZW50RGF0ZSwgdHJ1ZSk7XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdGF0ZV09XCIobmF2VHlwZSA9PT0gJ25leHQnIHx8IG5hdlR5cGUgPT09ICdib3RoJykgJiYgKGFwcGVhcmFuY2Uuc3RhdGUgIT09ICdkaXNhYmxlZCcpICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNQZXJpb2RBdmFpbGFibGUoY3VycmVudERhdGUsIGNvbmZpZy5tYXhEYXRlLCAnbW9udGgnLCAnbmV4dCcpID8gJ2FjdGl2ZScgOiAnZGlzYWJsZWQnXCIvPlxuICA8L3NlY3Rpb24+XG5cbiAgPHNlY3Rpb24gY2xhc3M9XCJncmF2aXR5LWRhdGUtcGlja2VyLWJvZHlcIiBbY2xhc3MubW9iaWxlXT1cImFwcGVhcmFuY2UuaXNNb2JpbGVcIj5cbiAgICA8c2VjdGlvbiBjbGFzcz1cImRheXMtbmFtZS1saW5lXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZGF5cy1uYW1lXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiaHItYm9keVwiIFtuZ0NsYXNzXT1cImFwcGVhcmFuY2UuaXNNb2JpbGUgPyAnbWQtcmVndWxhcicgOiAnc20tcmVndWxhcidcIlxuICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgZGF5IG9mIGRheXNMaXN0XCI+IHt7IGRheSB9fSA8L3NwYW4+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cInNlcGFyYXRvci1saW5lXCI+PC9kaXY+XG4gICAgPC9zZWN0aW9uPlxuXG4gICAgPHNlY3Rpb24gY2xhc3M9XCJkYXlzLW51bWJlci1zZWxlY3RvclwiIFthdHRyLmRhdGEtY3ldPVwiJ2RhdGVQaWNrZXJfZGF5c1NlbGVjdG9yJ1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImRheXMtbnVtYmVyLXRhYmxlXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ3ZWVrLXJvd1wiICpuZ0Zvcj1cImxldCB3ZWVrIG9mIGdldE1vbnRoR3JpZCgpOyB0cmFja0J5OiB0cmFja0J5V2Vla1wiPlxuICAgICAgICAgPHNwYW4gY2xhc3M9XCJoci1ib2R5XCIgKm5nRm9yPVwibGV0IGRheSBvZiB3ZWVrOyB0cmFja0J5OiB0cmFja0J5RGF5XCJcbiAgICAgICAgICBbY2xhc3MucHJldmlld109XCJyYW5nZSA/IGlzUHJldmlldyh0aGlzLCBkYXkpIDogbnVsbFwiXG4gICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cIiFkYXkuaW5DdXJyZW50TW9udGhcIiBbY2xhc3MudG9kYXldPVwiZGF5LmlzVG9kYXlcIlxuICAgICAgICAgIChtb3VzZWVudGVyKT1cInJhbmdlID8gb25Ib3ZlckRheSh0aGlzLCBkYXkpIDogbnVsbDsgaG92ZXJEYXkuZW1pdChkYXkpXCJcbiAgICAgICAgICAobW91c2VsZWF2ZSk9XCJyYW5nZSA/IG9uQ2xlYXJIb3Zlcih0aGlzKSA6IG51bGw7IHRoaXMuY2xlYXJIb3Zlci5lbWl0KClcIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cIlthcHBlYXJhbmNlLmlzTW9iaWxlID8gJ21kLXJlZ3VsYXInIDogJ3NtLXJlZ3VsYXInLFxuICAgICAgICAgICAgICAgICAgICAgIGFwcGVhcmFuY2Uuc3RhdGUgPT09ICdkaXNhYmxlZCcgPyAnZGlzYWJsZWQnIDogZ2V0RGF5U2VsZWN0aW9uQ2xhc3MoZGF5KV1cIlxuICAgICAgICAgIChjbGljayk9XCJkYXkuaW5DdXJyZW50TW9udGggPyBvblNlbGVjdERheShkYXkpOiBudWxsXCI+IHt7IGRheS5kYXkgfX0gPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2ICpuZ0lmPVwibm90aWZpY2F0aW9uXCIgY2xhc3M9XCJub3RpZmljYXRpb25cIiBbY2xhc3MuZXJyb3JdPVwibm90aWZpY2F0aW9uLmVycm9yXCI+XG4gICAgICAgIDxncmF2aXR5LWljb24gW3N0eWxlLi0taWNvbi1jb2xvcl09XCIndmFyKC0tbm90aWZpY2F0aW9uLWljb24tY29sb3IpJ1wiIFtpY29uU2l6ZV09XCInc20tMTInXCIgW2ljb25OYW1lXT1cIidpbmZvcm1hdGlvbi1jaXJjbGUnXCIvPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImhyLWxhYmVsIHNtLXJlZ3VsYXJcIj57e25vdGlmaWNhdGlvbi50ZXh0fX08L3NwYW4+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiAqbmdJZj1cInJhbmdlIHx8IHNlbGVjdGVkRGF5XCIgY2xhc3M9XCJhY3Rpb24tc2VjdGlvblwiID5cbiAgICAgICAgPGdyYXZpdHktbGluayBbbGlua1RleHRdPVwiaTE4bi5jbGVhclwiIFtzdGF0ZV09XCJoYXNEYXRlU2VsZWN0ZWQoKSA/ICdhY3RpdmUnIDogJ2Rpc2FibGVkJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgW2ZvbnRDbGFzc109XCJhcHBlYXJhbmNlLmlzTW9iaWxlID8gJ2hyLWJvZHkgbWQtcmVndWxhcicgOiAnaHItYm9keSBzbS1yZWd1bGFyJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIiBoYXNEYXRlU2VsZWN0ZWQoKSA/IGNsZWFyU2VsZWN0ZWREYXRlKCdhbGwnKSA6IG51bGxcIi8+XG5cbiAgICAgICAgPGdyYXZpdHktYnV0dG9uICpuZ0lmPVwicmFuZ2VcIiBbc2l6ZV09XCJhcHBlYXJhbmNlLmlzTW9iaWxlID8gJ21kJyA6ICdzbSdcIiBbdHlwZV09XCIndGVydGlhcnknXCIgW2Rpc2FibGVkXT1cIiFoYXNEYXRlU2VsZWN0ZWQodHJ1ZSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImhhc0RhdGVTZWxlY3RlZCh0cnVlKSA/IGFwcGx5U2VsZWN0ZWREYXRlKCkgOiBudWxsXCI+IHt7aTE4bi5hcHBseX19IDwvZ3Jhdml0eS1idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L3NlY3Rpb24+XG4gIDwvc2VjdGlvbj5cbjwvZGl2PlxuIl19