@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,232 +0,0 @@
1
- import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "angular-svg-icon";
4
- import * as i2 from "@angular/common";
5
- import * as i3 from "../../vendor/gravity-tooltip/gravity-tooltip.directive";
6
- import * as i4 from "@angular/router";
7
- import * as i5 from "../../components/gravity-badge/gravity-badge.component";
8
- import * as i6 from "../../components/gravity-button/gravity-button.component";
9
- import * as i7 from "../../components/gravity-icon/gravity-icon.component";
10
- import * as i8 from "../../components/gravity-card-button/gravity-card-button.component";
11
- import * as i9 from "../../components/gravity-tooltip-container/gravity-tooltip-container.component";
12
- export class GravityMenuComponent {
13
- constructor(elRef, renderer) {
14
- this.elRef = elRef;
15
- this.renderer = renderer;
16
- this.isOpen = false;
17
- this.collapsable = false;
18
- this.showCloseButton = true;
19
- this.maxCardButtonsPerRow = 3;
20
- this.currentLink = null;
21
- this.size = 'xl';
22
- this.mainFooterAction = null;
23
- this.close = new EventEmitter();
24
- this.selected = new EventEmitter();
25
- this.collapsed = new EventEmitter();
26
- this.closing = false;
27
- this.scrollPosition = 0;
28
- this.collapsedMode = false;
29
- this.visibleSubMenu = false;
30
- this.selectedOption = null;
31
- }
32
- ngOnChanges(changes) {
33
- if (changes['currentLink'] && this.currentLink != null && this.items?.length) {
34
- this.preselectOptionByLink(this.currentLink);
35
- }
36
- if (changes['size']) {
37
- this.handleSizeChange(changes['size'].currentValue);
38
- }
39
- }
40
- ngAfterViewInit() {
41
- const el = this.menuBody.nativeElement;
42
- this.resizeObserver = new ResizeObserver(() => {
43
- this.updateOverflow();
44
- });
45
- if (this.menuBody) {
46
- this.menuBody.nativeElement.addEventListener('scroll', () => {
47
- this.scrollPosition = this.menuBody.nativeElement.scrollTop;
48
- });
49
- }
50
- this.clickOutsideListener = this.renderer.listen('document', 'click', (event) => {
51
- const menuElement = this.elRef.nativeElement;
52
- if (!menuElement.contains(event.target) && this.collapsedMode) {
53
- this.visibleSubMenu = false;
54
- this.toggleAllHeaders(true);
55
- }
56
- });
57
- this.resizeObserver.observe(el);
58
- this.updateOverflow();
59
- }
60
- ngOnDestroy() {
61
- if (this.resizeObserver) {
62
- this.resizeObserver.disconnect();
63
- }
64
- if (this.clickOutsideListener) {
65
- this.clickOutsideListener();
66
- }
67
- }
68
- preselectOptionByLink(link) {
69
- for (const header of this.items ?? []) {
70
- if (header.link === link) {
71
- this.selectedOption = null;
72
- header.collapsed = false;
73
- return;
74
- }
75
- const option = header.headerOptions?.find(o => o.link === link);
76
- if (option) {
77
- this.selectedOption = option;
78
- header.collapsed = false;
79
- return;
80
- }
81
- }
82
- if (this.collapsedMode) {
83
- this.toggleAllHeaders(true);
84
- }
85
- }
86
- handleSizeChange(size) {
87
- if (size === 'sm' || size === 'md') {
88
- if (this.collapsedMode) {
89
- this.collapsedMode = false;
90
- this.visibleSubMenu = false;
91
- this.toggleAllHeaders(true);
92
- }
93
- }
94
- else {
95
- if (!this.collapsedMode) {
96
- this.toggleAllHeaders(false);
97
- }
98
- }
99
- }
100
- selectOption(option, header) {
101
- this.selectedOption = option;
102
- this.selected.emit(option.link);
103
- if (this.collapsedMode && header) {
104
- this.visibleSubMenu = false;
105
- setTimeout(() => { header.collapsed = true; }, 0);
106
- }
107
- }
108
- closeMenu() {
109
- this.close.emit();
110
- this.closing = true;
111
- setTimeout(() => { this.closing = false; }, 100);
112
- }
113
- toggleMenuHeader(header, index) {
114
- if (!header.headerOptions || header.headerOptions.length === 0) {
115
- this.selectedOption = null;
116
- this.selected.emit(header.link);
117
- if (this.collapsedMode) {
118
- this.toggleAllHeaders(true);
119
- }
120
- }
121
- if (!header.headerOptions?.length)
122
- return;
123
- if (this.collapsedMode) {
124
- if (!header.collapsed) {
125
- header.collapsed = true;
126
- this.visibleSubMenu = false;
127
- }
128
- else {
129
- this.toggleAllHeaders(true);
130
- header.collapsed = false;
131
- this.visibleSubMenu = true;
132
- }
133
- this.adjustScrollOnGrow(index);
134
- }
135
- else {
136
- header.collapsed = !header.collapsed;
137
- }
138
- }
139
- isHeaderSelected(header) {
140
- if (!header.headerOptions?.length)
141
- return false;
142
- return header.headerOptions.some(option => option === this.selectedOption);
143
- }
144
- getCardButtonsRows() {
145
- if (!this.cardButtons || !this.maxCardButtonsPerRow)
146
- return [];
147
- const rows = [];
148
- for (let i = 0; i < this.cardButtons.length; i += this.maxCardButtonsPerRow) {
149
- rows.push(this.cardButtons.slice(i, i + this.maxCardButtonsPerRow));
150
- }
151
- return rows;
152
- }
153
- collapseMenu() {
154
- this.collapsedMode = !this.collapsedMode;
155
- this.toggleAllHeaders(this.collapsedMode);
156
- if (this.collapsedMode) {
157
- this.visibleSubMenu = false;
158
- }
159
- this.collapsed.emit(this.collapsedMode);
160
- }
161
- hasOptionBadge(header) {
162
- return !!header.headerOptions?.some(option => typeof option.badge_text === 'string' && option.badge_text.trim().length > 0);
163
- }
164
- clearSelection(clearSelection) {
165
- if (clearSelection) {
166
- this.selectedOption = null;
167
- if (this.collapsedMode) {
168
- this.toggleAllHeaders(true);
169
- }
170
- }
171
- }
172
- updateOverflow() {
173
- const el = this.menuBody.nativeElement;
174
- const hasScroll = el.scrollHeight > el.clientHeight;
175
- el.classList.toggle('has-scroll', hasScroll);
176
- }
177
- toggleAllHeaders(collapsed) {
178
- if (!this.items?.length)
179
- return;
180
- for (const header of this.items) {
181
- if (header.headerOptions?.length) {
182
- header.collapsed = collapsed;
183
- }
184
- }
185
- }
186
- adjustScrollOnGrow(index) {
187
- const el = this.menuBody?.nativeElement;
188
- if (!el)
189
- return;
190
- el.scrollTo({ top: 62 * index, behavior: 'auto' });
191
- }
192
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GravityMenuComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
193
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: GravityMenuComponent, selector: "gravity-menu", inputs: { items: "items", userInfo: "userInfo", logoUrl: "logoUrl", isOpen: "isOpen", collapsable: "collapsable", showCloseButton: "showCloseButton", cardButtons: "cardButtons", maxCardButtonsPerRow: "maxCardButtonsPerRow", currentLink: "currentLink", secondaryActions: "secondaryActions", size: "size", mainFooterAction: "mainFooterAction" }, outputs: { close: "close", selected: "selected", collapsed: "collapsed" }, viewQueries: [{ propertyName: "menuBody", first: true, predicate: ["menuBody"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"gravity-menu {{size}}\" [class.open]=\"isOpen\" [class.closing]=\"closing\"\n [class.collapsed]=\"collapsedMode && (size === 'xl' || size === 'lg')\">\n\n <div class=\"menu-header\">\n <svg-icon *ngIf=\"logoUrl?.main_logo_url\"\n [src]=\"(collapsedMode && logoUrl.collapsed_logo_url) ? logoUrl.collapsed_logo_url : logoUrl.main_logo_url\"/>\n\n <gravity-icon *ngIf=\"(size === 'md' || size === 'sm') && showCloseButton\"\n [iconSize]=\"'lg-24'\" [iconName]=\"'unsuccess'\" (click)=\"closeMenu()\"/>\n\n <div *ngIf=\"collapsable && (size === 'xl' || size === 'lg')\" class=\"collapse-button\" (click)=\"collapseMenu()\">\n <gravity-icon [style.--icon-color]=\"'var(--bg-button-active-primary)'\" [iconSize]=\"'sm-12'\"\n [iconName]=\"collapsedMode ? 'arrow-right' : 'arrow-left'\"/>\n </div>\n </div>\n\n <div class=\"menu-content\">\n <section #menuBody class=\"menu-body\" [class.sub-menu]=\"visibleSubMenu\">\n <div class=\"menu-section\">\n <div class=\"levels\" *ngFor=\"let header of items; let i = index\">\n <section class=\"first-level\" [class.selected]=\"isHeaderSelected(header)\"\n [routerLink]=\"header.link || undefined\" (click)=\"toggleMenuHeader(header, i)\"\n [class.is-open]=\"!header.collapsed\" [class.empty]=\"header.headerOptions?.length < 1\"\n [style.--expanded-margin]=\"header.headerOptions?.length > 0 ? (38 + (34 * header.headerOptions?.length)) + 'px' : '0'\">\n\n <p class=\"hr-label sm-regular\">\n <gravity-icon [style.--icon-color]=\"'var(--option-icon-color)'\" *ngIf=\"header.icon !== ''\" [iconName]=\"header.icon\" [iconSize]=\"'md-16'\"/>\n <gravity-badge class=\"badge\" *ngIf=\"hasOptionBadge(header) && (size === 'xl' || size === 'lg')\"\n [class.collapsed]=\"collapsedMode\" [size]=\"'sm'\" [type]=\"'neutro'\"></gravity-badge>\n {{ header.text }}\n </p>\n\n <div *ngIf=\"!collapsedMode\">\n <gravity-icon *ngIf=\"header.headerOptions?.length > 0\" [iconSize]=\"'sm-12'\" [iconName]=\"header.collapsed ? 'arrow-down' : 'arrow-up'\"/>\n </div>\n </section>\n\n <section *ngIf=\"!header.collapsed && header.headerOptions?.length > 0\" class=\"second-level\"\n [@fadeSlide] [style.--submenu-offset]=\"((156 - scrollPosition) + (78 * i)) + 'px'\"\n [ngClass]=\"collapsedMode ? 'elevation-xs' : ''\">\n\n <div class=\"options-list\" [class.collapsed]=\"collapsedMode\">\n <ng-container *ngFor=\"let option of header.headerOptions\">\n <div class=\"option\" [attr.data-cy]=\"option.cypress_tag\" [class.selected]=\"option === selectedOption\">\n <div class=\"line\"\n [class.selected]=\"(size === 'xl' || size == 'lg') && option === selectedOption\"></div>\n <div class=\"option-text\"\n [ngClass]=\"(size === 'sm' || size === 'md') ? 'hr-label md-regular' : 'hr-label sm-regular'\"\n [class.disabled]=\"option.disabled\" [class.selected]=\"option === selectedOption\"\n [routerLink]=\"option.link || undefined\" (click)=\"selectOption(option, header)\">\n {{ option.text }}\n <gravity-badge *ngIf=\"option.badge_text && (size === 'xl' || size === 'lg')\"\n [text]=\"option.badge_text\" [type]=\"'neutro'\" [size]=\"'sm'\"></gravity-badge>\n </div>\n </div>\n </ng-container>\n </div>\n </section>\n </div>\n </div>\n </section>\n\n <section *ngIf=\"(secondaryActions || userInfo) && (size === 'xl' || size === 'lg')\"\n class=\"menu-footer elevation-xs\">\n <section class=\"footer-content\">\n <div *ngIf=\"secondaryActions\" class=\"secondary-actions\">\n <div class=\"action\" *ngFor=\"let action of secondaryActions\"\n (click)=\"action.callback(); clearSelection(action.clear_selection)\">\n\n <gravity-icon *ngIf=\"action.icon !== ''\" [iconName]=\"action.icon\" [iconSize]=\"'md-16'\"/>\n <span class=\"hr-label sm-regular\">{{ action.text }}</span>\n </div>\n </div>\n\n <hr *ngIf=\"secondaryActions && userInfo\" class=\"separator-line\">\n\n <div *ngIf=\"userInfo\" class=\"user-info-list\">\n <div *ngFor=\"let userInfo of userInfo\" class=\"user-info\">\n <gravity-icon *ngIf=\"userInfo.icon !== ''\" class=\"icon\" [iconName]=\"userInfo.icon\" [iconSize]=\"'sm-12'\"\n [tooltip]=\"collapsedMode ? tooltipUserInfoTemplate : null\" [contentType]=\"'template'\" [placement]=\"'right'\"/>\n\n <span *ngIf=\"!collapsedMode\" class=\"hr-label sm-regular\">{{ userInfo.info }}</span>\n\n <ng-template #tooltipUserInfoTemplate>\n <gravity-tooltip-container [tooltipSimple]=\"{text: userInfo.info}\"/>\n </ng-template>\n </div>\n </div>\n </section>\n </section>\n\n <!-- - - - - - - - - - - Mobile Resolutions - - - - - - - - - - -->\n\n <section *ngIf=\"(cardButtons || userInfo) && (size === 'md' || size === 'sm')\" class=\"menu-footer-mobile\">\n <section class=\"footer-content\">\n <div *ngIf=\"cardButtons\" class=\"secondary-actions\">\n <div class=\"card-buttons\">\n <div class=\"card-buttons-row\" *ngFor=\"let row of getCardButtonsRows()\">\n <gravity-card-button *ngFor=\"let button of row\"\n [type]=\"'secondary'\"\n [orientation]=\"'vrt-center'\"\n [iconName]=\"button.icon\" [label]=\"button.text\"\n (clicked)=\"button.callback(); clearSelection(button.clear_selection); selected.emit()\"/>\n </div>\n </div>\n <gravity-button *ngIf=\"mainFooterAction\" [size]=\"'md'\" [type]=\"'tertiary'\" [iconName]=\"mainFooterAction.icon\"\n [iconPosition]=\"'left'\" (click)=\"mainFooterAction.callback()\"> {{ mainFooterAction.text }}\n </gravity-button>\n </div>\n <div *ngIf=\"userInfo\" class=\"user-info-list\">\n <div *ngFor=\"let userInfo of userInfo\" class=\"user-info\">\n <gravity-icon [iconSize]=\"'sm-12'\" [iconName]=\"userInfo.icon\"/>\n <span class=\"hr-label sm-regular\">{{ userInfo.info }}</span>\n </div>\n </div>\n </section>\n </section>\n </div>\n</div>\n\n", styles: [".scrollbar-sm::-webkit-scrollbar{width:4px;height:4px}.scrollbar-sm::-webkit-scrollbar-track{background-color:var(--surface-primary);border-radius:5px}.scrollbar-sm::-webkit-scrollbar-thumb{background-color:var(--placeholder-empty-enabled-primary);border-radius:5px}.scrollbar-sm::-webkit-scrollbar-thumb:hover{background-color:var(--line-empty-enabled-primary)}.scrollbar-md::-webkit-scrollbar,.gravity-menu .menu-content .menu-body.has-scroll:hover::-webkit-scrollbar{width:8px;height:8px}.scrollbar-md::-webkit-scrollbar-track,.gravity-menu .menu-content .menu-body.has-scroll:hover::-webkit-scrollbar-track{background-color:var(--surface-primary);border-radius:5px}.scrollbar-md::-webkit-scrollbar-thumb,.gravity-menu .menu-content .menu-body.has-scroll:hover::-webkit-scrollbar-thumb{background-color:var(--placeholder-empty-enabled-primary);border-radius:5px}.scrollbar-md::-webkit-scrollbar-thumb:hover,.gravity-menu .menu-content .menu-body.has-scroll::-webkit-scrollbar-thumb:hover{background-color:var(--line-empty-enabled-primary)}.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}.gravity-menu{height:100%;width:266px;-webkit-user-select:none;user-select:none;display:inline-flex;flex-direction:column;align-items:flex-start;gap:var(--gravity-spacing-md);transition:width .28s ease,gap .28s ease}.gravity-menu .menu-header{width:100%;display:flex;position:relative;align-items:center;padding:24px 26px 0 24px;justify-content:space-between}.gravity-menu .menu-header gravity-icon{cursor:pointer}.gravity-menu .menu-header svg{width:60px;height:24px;display:flex}.gravity-menu .menu-header .collapse-button{right:26px;display:flex;position:absolute;background:var(--surface-primary);padding:var(--gravity-spacing-xxs);border-radius:6.25rem}.gravity-menu .menu-content{width:100%;height:100%;display:flex;overflow:hidden;flex-direction:column;justify-content:space-between}.gravity-menu .menu-content .menu-body{display:flex;overflow-y:auto;flex-direction:column;align-items:flex-start;padding:0 18px 12px 24px}.gravity-menu .menu-content .menu-body:not(.has-scroll),.gravity-menu .menu-content .menu-body.has-scroll:not(:hover){margin-right:8px;scrollbar-width:none}.gravity-menu .menu-content .menu-body:not(.has-scroll)::-webkit-scrollbar,.gravity-menu .menu-content .menu-body.has-scroll:not(:hover)::-webkit-scrollbar{width:0;height:0}.gravity-menu .menu-content .menu-body.has-scroll:hover{margin-right:0}.gravity-menu .menu-content .menu-body.sub-menu:hover{margin-right:8px!important}.gravity-menu .menu-content .menu-body .menu-section{width:100%;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:var(--gravity-spacing-xs)}.gravity-menu .menu-content .menu-body .menu-section .levels{width:100%;color:var(--on-bg-menu-button-active-primary)}.gravity-menu .menu-content .menu-body .menu-section .levels .first-level{width:100%;display:flex;cursor:pointer;position:relative;align-items:center;justify-content:space-between;gap:var(--gravity-spacing-xs);height:var(--gravity-spacing-md);border-left:4px solid transparent;padding:0 var(--gravity-spacing-xxs);--option-icon-color: var(--on-bg-menu-button-pressed-primary)}.gravity-menu .menu-content .menu-body .menu-section .levels .first-level.is-open p{text-decoration:underline}.gravity-menu .menu-content .menu-body .menu-section .levels .first-level.selected{border-left:4px solid var(--bg-menu-button-pressed-primary)}.gravity-menu .menu-content .menu-body .menu-section .levels .first-level p{display:flex;align-items:center;gap:var(--gravity-spacing-xs)}.gravity-menu .menu-content .menu-body .menu-section .levels .first-level p .badge{position:absolute;right:20px;top:8px}.gravity-menu .menu-content .menu-body .menu-section .levels .first-level:hover{color:var(--on-bg-menu-button-hover-primary);background-color:var(--bg-menu-button-hover-primary)}.gravity-menu .menu-content .menu-body .menu-section .levels .second-level{display:flex;align-self:stretch;align-items:flex-start;justify-content:center;padding-left:var(--gravity-spacing-xxs);transition:max-height .3s ease-in-out,opacity .3s ease-in-out}.gravity-menu .menu-content .menu-body .menu-section .levels .second-level .options-list{flex:1 0 0;display:flex;flex-direction:column;justify-content:center;align-items:flex-start}.gravity-menu .menu-content .menu-body .menu-section .levels .second-level .options-list .line{height:100%;margin-left:var(--gravity-spacing-xs);border-left:1px solid var(--divider-menu-active-primary)}.gravity-menu .menu-content .menu-body .menu-section .levels .second-level .options-list .line.selected{margin:0 -1px 0 7px;border-left:3px solid var(--bg-menu-button-pressed-primary)}.gravity-menu .menu-content .menu-body .menu-section .levels .second-level .options-list .option{width:100%;height:34px;display:flex;align-items:center;gap:var(--gravity-spacing-sm)}.gravity-menu .menu-content .menu-body .menu-section .levels .second-level .options-list .option .option-text{flex:1 0 0;height:24px;display:flex;cursor:pointer;align-items:center;justify-content:space-between;padding:0 var(--gravity-spacing-xxs)}.gravity-menu .menu-content .menu-body .menu-section .levels .second-level .options-list .option .option-text:not(.disabled):not(.selected):hover{color:var(--on-bg-menu-button-hover-primary);background-color:var(--bg-menu-button-hover-primary)}.gravity-menu .menu-content .menu-body .menu-section .levels .second-level .options-list .option .option-text.disabled{cursor:default;pointer-events:none;color:var(--on-bg-menu-button-disabled-primary)}.gravity-menu .menu-content .menu-body .menu-section .levels .second-level .options-list .option .option-text.selected{color:var(--on-bg-menu-button-pressed-primary);background-color:var(--bg-menu-button-pressed-primary)}.gravity-menu .menu-content .menu-body .menu-section .levels .second-level .options-list .option .option-text .badge{height:14px;display:flex;border-radius:2.5px;align-items:flex-end;gap:var(--gravity-spacing-xs);padding:var(--gravity-spacing-xxs);background:var(--bg-menu-badge-button);color:var(--on-bg-notification-badge-button)}.gravity-menu .menu-content .menu-body .menu-section .levels .second-level .options-list .option .option-text .badge span{line-height:6px}.gravity-menu .menu-content .menu-footer{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;padding:16px 22px 20px 24px;gap:var(--gravity-spacing-md);width:calc(100% - var(--gravity-spacing-xs));box-shadow:-8px 1px 4px 0 rgba(var(--shadow-primary-rgba),var(--shadow-opacity))}.gravity-menu .menu-content .menu-footer .footer-content{width:234px;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;gap:var(--gravity-spacing-sm)}.gravity-menu .menu-content .menu-footer .footer-content .secondary-actions{width:100%;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:var(--gravity-spacing-xxs)}.gravity-menu .menu-content .menu-footer .footer-content .secondary-actions .action{width:100%;height:24px;display:flex;align-items:center;gap:var(--gravity-spacing-xs);padding:0 var(--gravity-spacing-xxs)}.gravity-menu .menu-content .menu-footer .footer-content .secondary-actions .action:hover{cursor:pointer;color:var(--on-bg-menu-button-hover-primary);background-color:var(--bg-menu-button-hover-primary)}.gravity-menu .menu-content .menu-footer .footer-content hr{margin:0;width:100%;border:1px solid var(--divider-menu-active-primary)}.gravity-menu .menu-content .menu-footer .footer-content .user-info-list{display:grid;gap:var(--gravity-spacing-xs)}.gravity-menu .menu-content .menu-footer .footer-content .user-info-list .user-info{display:flex;padding:1px 2px;align-items:center;gap:var(--gravity-spacing-xxs)}.gravity-menu.collapsed{width:100px;position:relative;gap:var(--gravity-spacing-lg)}.gravity-menu.collapsed .menu-header{padding:24px 0 0;justify-content:center}.gravity-menu.collapsed .menu-header .collapse-button{right:-10px}.gravity-menu.collapsed .menu-content .menu-body{padding:0}.gravity-menu.collapsed .menu-content .menu-body.sub-menu{overflow:hidden!important}.gravity-menu.collapsed .menu-content .menu-body .menu-section .levels .first-level{height:70px!important;justify-content:center!important}.gravity-menu.collapsed .menu-content .menu-body .menu-section .levels .first-level:not(.empty).is-open{margin-bottom:var(--expanded-margin);background-color:var(--surface-primary);border-left:4px solid var(--on-bg-menu-button-disabled-primary)}.gravity-menu.collapsed .menu-content .menu-body .menu-section .levels .first-level:not(.empty).is-open.selected{background-color:var(--bg-button-active-tertiary);border-left:4px solid var(--bg-menu-button-pressed-primary)}.gravity-menu.collapsed .menu-content .menu-body .menu-section .levels .first-level p{width:100%;display:flex;text-align:center;position:relative;align-items:center;flex-direction:column;justify-content:center;gap:var(--gravity-spacing-xxs);padding:var(--gravity-spacing-xs) var(--gravity-spacing-xxs)}.gravity-menu.collapsed .menu-content .menu-body .menu-section .levels .first-level p .badge.collapsed{top:3px;right:26px}.gravity-menu.collapsed .menu-content .menu-body .menu-section .levels .second-level{min-width:220px;position:absolute;width:max-content;z-index:1;top:var(--submenu-offset, 0px);border-radius:.3125rem;padding:var(--gravity-spacing-xs);background:var(--surface-secondary);border:1px solid var(--surface-primary);background-color:var(--surface-secondary)}.gravity-menu.collapsed .menu-content .menu-footer{width:100%;padding:16px 8px 20px}.gravity-menu.collapsed .menu-content .menu-footer .footer-content{width:84px}.gravity-menu.collapsed .menu-content .menu-footer .footer-content .secondary-actions{gap:var(--gravity-spacing-sm)}.gravity-menu.collapsed .menu-content .menu-footer .footer-content .secondary-actions .action{height:auto;flex-direction:column;gap:var(--gravity-spacing-xxs);padding:var(--gravity-spacing-xs) var(--gravity-spacing-xxs)}.gravity-menu.collapsed .menu-content .menu-footer .footer-content .user-info-list{width:100%;justify-items:center}.gravity-menu.collapsed .menu-content .menu-footer .footer-content .user-info-list .user-info .icon{cursor:pointer}.gravity-menu.md,.gravity-menu.sm{gap:0;width:100%;max-width:100%;position:fixed;min-width:577px;transition:none;transform:translate(101%);background-color:var(--bg-menu-mobile-primary)}.gravity-menu.md.open,.gravity-menu.sm.open{transform:translate(0);transition:transform .165s ease-in-out}.gravity-menu.md:not(.open),.gravity-menu.sm:not(.open){transform:translate(101%)}.gravity-menu.md.closing,.gravity-menu.sm.closing{transition:transform .165s ease-in-out}.gravity-menu.md .menu-logo svg,.gravity-menu.sm .menu-logo svg{width:70px;height:28px}.gravity-menu.md .menu-content,.gravity-menu.sm .menu-content{margin-top:var(--gravity-spacing-md)}.gravity-menu.md .menu-content .menu-body,.gravity-menu.sm .menu-content .menu-body{padding:0 18px 0 24px}.gravity-menu.md .menu-content .menu-body .menu-section .levels,.gravity-menu.sm .menu-content .menu-body .menu-section .levels{display:flex;flex-direction:column;gap:var(--gravity-spacing-sm);border-radius:.3125rem;padding:var(--gravity-spacing-sm);background-color:var(--bg-menu-mobile-card-primary)}.gravity-menu.md .menu-content .menu-body .menu-section .levels .first-level,.gravity-menu.sm .menu-content .menu-body .menu-section .levels .first-level{height:20px;background-color:var(--bg-menu-mobile-card-primary)}.gravity-menu.md .menu-content .menu-body .menu-section .levels .first-level:hover,.gravity-menu.sm .menu-content .menu-body .menu-section .levels .first-level:hover{background:none!important}.gravity-menu.md .menu-content .menu-body .menu-section .levels .second-level .options-list .option,.gravity-menu.sm .menu-content .menu-body .menu-section .levels .second-level .options-list .option{height:45px}.gravity-menu.md .menu-content .menu-body .menu-section .levels .second-level .options-list .option .option-text:hover,.gravity-menu.md .menu-content .menu-body .menu-section .levels .second-level .options-list .option .option-text.selected,.gravity-menu.sm .menu-content .menu-body .menu-section .levels .second-level .options-list .option .option-text:hover,.gravity-menu.sm .menu-content .menu-body .menu-section .levels .second-level .options-list .option .option-text.selected{background:none!important}.gravity-menu.md .menu-content .menu-body .menu-section .levels .second-level .options-list .option.selected,.gravity-menu.sm .menu-content .menu-body .menu-section .levels .second-level .options-list .option.selected{background-color:var(--bg-menu-mobile-button-pressed-primary)}.gravity-menu.md .menu-content .menu-footer-mobile,.gravity-menu.sm .menu-content .menu-footer-mobile{display:flex;align-items:center;align-self:stretch;flex-direction:column;justify-content:flex-end;gap:var(--gravity-spacing-sm);padding:var(--gravity-spacing-md)}.gravity-menu.md .menu-content .menu-footer-mobile .footer-content,.gravity-menu.sm .menu-content .menu-footer-mobile .footer-content{width:100%;display:flex;flex-direction:column;gap:var(--gravity-spacing-sm)}.gravity-menu.md .menu-content .menu-footer-mobile .footer-content .secondary-actions,.gravity-menu.sm .menu-content .menu-footer-mobile .footer-content .secondary-actions{display:flex;align-self:stretch;flex-direction:column;align-items:flex-start;gap:var(--gravity-spacing-sm);padding:0 var(--gravity-spacing-lg)}.gravity-menu.md .menu-content .menu-footer-mobile .footer-content .secondary-actions .card-buttons,.gravity-menu.sm .menu-content .menu-footer-mobile .footer-content .secondary-actions .card-buttons{display:flex;align-self:stretch;flex-direction:column;align-items:flex-start;gap:var(--gravity-spacing-xs)}.gravity-menu.md .menu-content .menu-footer-mobile .footer-content .secondary-actions .card-buttons .card-buttons-row,.gravity-menu.sm .menu-content .menu-footer-mobile .footer-content .secondary-actions .card-buttons .card-buttons-row{width:100%;display:flex;flex-direction:row;gap:var(--gravity-spacing-xs)}.gravity-menu.md .menu-content .menu-footer-mobile .footer-content .secondary-actions gravity-button,.gravity-menu.sm .menu-content .menu-footer-mobile .footer-content .secondary-actions gravity-button{width:100%}.gravity-menu.md .menu-content .menu-footer-mobile .footer-content .secondary-actions ::ng-deep gravity-card-button,.gravity-menu.sm .menu-content .menu-footer-mobile .footer-content .secondary-actions ::ng-deep gravity-card-button{width:100%}.gravity-menu.md .menu-content .menu-footer-mobile .footer-content .secondary-actions ::ng-deep gravity-card-button .card-button-container,.gravity-menu.sm .menu-content .menu-footer-mobile .footer-content .secondary-actions ::ng-deep gravity-card-button .card-button-container{padding:0;width:100%;min-width:auto}.gravity-menu.md .menu-content .menu-footer-mobile .footer-content .user-info-list,.gravity-menu.sm .menu-content .menu-footer-mobile .footer-content .user-info-list{gap:0;display:grid;border-top:1px solid var(--surface-secondary)}.gravity-menu.md .menu-content .menu-footer-mobile .footer-content .user-info-list .user-info,.gravity-menu.sm .menu-content .menu-footer-mobile .footer-content .user-info-list .user-info{display:flex;flex-direction:row;align-items:center;align-self:stretch;justify-content:center;gap:var(--gravity-spacing-xs);padding-top:var(--gravity-spacing-sm)}.gravity-menu.sm{min-width:320px}.gravity-menu.sm .menu-footer-mobile .footer-content .secondary-actions{padding:0!important}\n"], dependencies: [{ kind: "component", type: i1.SvgIconComponent, selector: "svg-icon", inputs: ["src", "name", "stretch", "applyClass", "applyCss", "svgClass", "class", "viewBox", "svgAriaLabel", "svgStyle"] }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.GravityTooltipDirective, selector: "[tooltip]", inputs: ["options", "tooltip", "placement", "autoPlacement", "content-type", "contentType", "hide-delay-mobile", "hideDelayTouchscreen", "z-index", "zIndex", "animation-duration", "animationDuration", "trigger", "tooltip-class", "tooltipClass", "display", "display-mobile", "displayTouchscreen", "shadow", "theme", "offset", "width", "persistent", "max-width", "maxWidth", "id", "show-delay", "showDelay", "hide-delay", "hideDelay", "hideDelayAfterClick", "pointerEvents", "position"], outputs: ["events"], exportAs: ["tooltip"] }, { kind: "directive", type: i4.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i5.GravityBadgeComponent, selector: "gravity-badge", inputs: ["size", "text", "number", "cypressTag", "type"] }, { kind: "component", type: i6.GravityButtonComponent, selector: "gravity-button", inputs: ["cypressTag", "disabled", "iconName", "isLoading", "showContent", "size", "iconPosition", "customState", "type"] }, { kind: "component", type: i7.GravityIconComponent, selector: "gravity-icon", inputs: ["customIconColorVariable", "iconName", "iconSize", "hoverIcon", "size", "isCoin"] }, { kind: "component", type: i8.GravityCardButtonComponent, selector: "gravity-card-button", inputs: ["cypressTag", "label", "iconName", "fullWidth", "type", "state", "orientation"], outputs: ["clicked"] }, { kind: "component", type: i9.GravityTooltipContainerComponent, selector: "gravity-tooltip-container", inputs: ["cypressTag", "tooltipBanner", "tooltipSimple"], outputs: ["closeBanner", "actionButton"] }] }); }
194
- }
195
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GravityMenuComponent, decorators: [{
196
- type: Component,
197
- args: [{ selector: 'gravity-menu', template: "<div class=\"gravity-menu {{size}}\" [class.open]=\"isOpen\" [class.closing]=\"closing\"\n [class.collapsed]=\"collapsedMode && (size === 'xl' || size === 'lg')\">\n\n <div class=\"menu-header\">\n <svg-icon *ngIf=\"logoUrl?.main_logo_url\"\n [src]=\"(collapsedMode && logoUrl.collapsed_logo_url) ? logoUrl.collapsed_logo_url : logoUrl.main_logo_url\"/>\n\n <gravity-icon *ngIf=\"(size === 'md' || size === 'sm') && showCloseButton\"\n [iconSize]=\"'lg-24'\" [iconName]=\"'unsuccess'\" (click)=\"closeMenu()\"/>\n\n <div *ngIf=\"collapsable && (size === 'xl' || size === 'lg')\" class=\"collapse-button\" (click)=\"collapseMenu()\">\n <gravity-icon [style.--icon-color]=\"'var(--bg-button-active-primary)'\" [iconSize]=\"'sm-12'\"\n [iconName]=\"collapsedMode ? 'arrow-right' : 'arrow-left'\"/>\n </div>\n </div>\n\n <div class=\"menu-content\">\n <section #menuBody class=\"menu-body\" [class.sub-menu]=\"visibleSubMenu\">\n <div class=\"menu-section\">\n <div class=\"levels\" *ngFor=\"let header of items; let i = index\">\n <section class=\"first-level\" [class.selected]=\"isHeaderSelected(header)\"\n [routerLink]=\"header.link || undefined\" (click)=\"toggleMenuHeader(header, i)\"\n [class.is-open]=\"!header.collapsed\" [class.empty]=\"header.headerOptions?.length < 1\"\n [style.--expanded-margin]=\"header.headerOptions?.length > 0 ? (38 + (34 * header.headerOptions?.length)) + 'px' : '0'\">\n\n <p class=\"hr-label sm-regular\">\n <gravity-icon [style.--icon-color]=\"'var(--option-icon-color)'\" *ngIf=\"header.icon !== ''\" [iconName]=\"header.icon\" [iconSize]=\"'md-16'\"/>\n <gravity-badge class=\"badge\" *ngIf=\"hasOptionBadge(header) && (size === 'xl' || size === 'lg')\"\n [class.collapsed]=\"collapsedMode\" [size]=\"'sm'\" [type]=\"'neutro'\"></gravity-badge>\n {{ header.text }}\n </p>\n\n <div *ngIf=\"!collapsedMode\">\n <gravity-icon *ngIf=\"header.headerOptions?.length > 0\" [iconSize]=\"'sm-12'\" [iconName]=\"header.collapsed ? 'arrow-down' : 'arrow-up'\"/>\n </div>\n </section>\n\n <section *ngIf=\"!header.collapsed && header.headerOptions?.length > 0\" class=\"second-level\"\n [@fadeSlide] [style.--submenu-offset]=\"((156 - scrollPosition) + (78 * i)) + 'px'\"\n [ngClass]=\"collapsedMode ? 'elevation-xs' : ''\">\n\n <div class=\"options-list\" [class.collapsed]=\"collapsedMode\">\n <ng-container *ngFor=\"let option of header.headerOptions\">\n <div class=\"option\" [attr.data-cy]=\"option.cypress_tag\" [class.selected]=\"option === selectedOption\">\n <div class=\"line\"\n [class.selected]=\"(size === 'xl' || size == 'lg') && option === selectedOption\"></div>\n <div class=\"option-text\"\n [ngClass]=\"(size === 'sm' || size === 'md') ? 'hr-label md-regular' : 'hr-label sm-regular'\"\n [class.disabled]=\"option.disabled\" [class.selected]=\"option === selectedOption\"\n [routerLink]=\"option.link || undefined\" (click)=\"selectOption(option, header)\">\n {{ option.text }}\n <gravity-badge *ngIf=\"option.badge_text && (size === 'xl' || size === 'lg')\"\n [text]=\"option.badge_text\" [type]=\"'neutro'\" [size]=\"'sm'\"></gravity-badge>\n </div>\n </div>\n </ng-container>\n </div>\n </section>\n </div>\n </div>\n </section>\n\n <section *ngIf=\"(secondaryActions || userInfo) && (size === 'xl' || size === 'lg')\"\n class=\"menu-footer elevation-xs\">\n <section class=\"footer-content\">\n <div *ngIf=\"secondaryActions\" class=\"secondary-actions\">\n <div class=\"action\" *ngFor=\"let action of secondaryActions\"\n (click)=\"action.callback(); clearSelection(action.clear_selection)\">\n\n <gravity-icon *ngIf=\"action.icon !== ''\" [iconName]=\"action.icon\" [iconSize]=\"'md-16'\"/>\n <span class=\"hr-label sm-regular\">{{ action.text }}</span>\n </div>\n </div>\n\n <hr *ngIf=\"secondaryActions && userInfo\" class=\"separator-line\">\n\n <div *ngIf=\"userInfo\" class=\"user-info-list\">\n <div *ngFor=\"let userInfo of userInfo\" class=\"user-info\">\n <gravity-icon *ngIf=\"userInfo.icon !== ''\" class=\"icon\" [iconName]=\"userInfo.icon\" [iconSize]=\"'sm-12'\"\n [tooltip]=\"collapsedMode ? tooltipUserInfoTemplate : null\" [contentType]=\"'template'\" [placement]=\"'right'\"/>\n\n <span *ngIf=\"!collapsedMode\" class=\"hr-label sm-regular\">{{ userInfo.info }}</span>\n\n <ng-template #tooltipUserInfoTemplate>\n <gravity-tooltip-container [tooltipSimple]=\"{text: userInfo.info}\"/>\n </ng-template>\n </div>\n </div>\n </section>\n </section>\n\n <!-- - - - - - - - - - - Mobile Resolutions - - - - - - - - - - -->\n\n <section *ngIf=\"(cardButtons || userInfo) && (size === 'md' || size === 'sm')\" class=\"menu-footer-mobile\">\n <section class=\"footer-content\">\n <div *ngIf=\"cardButtons\" class=\"secondary-actions\">\n <div class=\"card-buttons\">\n <div class=\"card-buttons-row\" *ngFor=\"let row of getCardButtonsRows()\">\n <gravity-card-button *ngFor=\"let button of row\"\n [type]=\"'secondary'\"\n [orientation]=\"'vrt-center'\"\n [iconName]=\"button.icon\" [label]=\"button.text\"\n (clicked)=\"button.callback(); clearSelection(button.clear_selection); selected.emit()\"/>\n </div>\n </div>\n <gravity-button *ngIf=\"mainFooterAction\" [size]=\"'md'\" [type]=\"'tertiary'\" [iconName]=\"mainFooterAction.icon\"\n [iconPosition]=\"'left'\" (click)=\"mainFooterAction.callback()\"> {{ mainFooterAction.text }}\n </gravity-button>\n </div>\n <div *ngIf=\"userInfo\" class=\"user-info-list\">\n <div *ngFor=\"let userInfo of userInfo\" class=\"user-info\">\n <gravity-icon [iconSize]=\"'sm-12'\" [iconName]=\"userInfo.icon\"/>\n <span class=\"hr-label sm-regular\">{{ userInfo.info }}</span>\n </div>\n </div>\n </section>\n </section>\n </div>\n</div>\n\n", styles: [".scrollbar-sm::-webkit-scrollbar{width:4px;height:4px}.scrollbar-sm::-webkit-scrollbar-track{background-color:var(--surface-primary);border-radius:5px}.scrollbar-sm::-webkit-scrollbar-thumb{background-color:var(--placeholder-empty-enabled-primary);border-radius:5px}.scrollbar-sm::-webkit-scrollbar-thumb:hover{background-color:var(--line-empty-enabled-primary)}.scrollbar-md::-webkit-scrollbar,.gravity-menu .menu-content .menu-body.has-scroll:hover::-webkit-scrollbar{width:8px;height:8px}.scrollbar-md::-webkit-scrollbar-track,.gravity-menu .menu-content .menu-body.has-scroll:hover::-webkit-scrollbar-track{background-color:var(--surface-primary);border-radius:5px}.scrollbar-md::-webkit-scrollbar-thumb,.gravity-menu .menu-content .menu-body.has-scroll:hover::-webkit-scrollbar-thumb{background-color:var(--placeholder-empty-enabled-primary);border-radius:5px}.scrollbar-md::-webkit-scrollbar-thumb:hover,.gravity-menu .menu-content .menu-body.has-scroll::-webkit-scrollbar-thumb:hover{background-color:var(--line-empty-enabled-primary)}.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}.gravity-menu{height:100%;width:266px;-webkit-user-select:none;user-select:none;display:inline-flex;flex-direction:column;align-items:flex-start;gap:var(--gravity-spacing-md);transition:width .28s ease,gap .28s ease}.gravity-menu .menu-header{width:100%;display:flex;position:relative;align-items:center;padding:24px 26px 0 24px;justify-content:space-between}.gravity-menu .menu-header gravity-icon{cursor:pointer}.gravity-menu .menu-header svg{width:60px;height:24px;display:flex}.gravity-menu .menu-header .collapse-button{right:26px;display:flex;position:absolute;background:var(--surface-primary);padding:var(--gravity-spacing-xxs);border-radius:6.25rem}.gravity-menu .menu-content{width:100%;height:100%;display:flex;overflow:hidden;flex-direction:column;justify-content:space-between}.gravity-menu .menu-content .menu-body{display:flex;overflow-y:auto;flex-direction:column;align-items:flex-start;padding:0 18px 12px 24px}.gravity-menu .menu-content .menu-body:not(.has-scroll),.gravity-menu .menu-content .menu-body.has-scroll:not(:hover){margin-right:8px;scrollbar-width:none}.gravity-menu .menu-content .menu-body:not(.has-scroll)::-webkit-scrollbar,.gravity-menu .menu-content .menu-body.has-scroll:not(:hover)::-webkit-scrollbar{width:0;height:0}.gravity-menu .menu-content .menu-body.has-scroll:hover{margin-right:0}.gravity-menu .menu-content .menu-body.sub-menu:hover{margin-right:8px!important}.gravity-menu .menu-content .menu-body .menu-section{width:100%;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:var(--gravity-spacing-xs)}.gravity-menu .menu-content .menu-body .menu-section .levels{width:100%;color:var(--on-bg-menu-button-active-primary)}.gravity-menu .menu-content .menu-body .menu-section .levels .first-level{width:100%;display:flex;cursor:pointer;position:relative;align-items:center;justify-content:space-between;gap:var(--gravity-spacing-xs);height:var(--gravity-spacing-md);border-left:4px solid transparent;padding:0 var(--gravity-spacing-xxs);--option-icon-color: var(--on-bg-menu-button-pressed-primary)}.gravity-menu .menu-content .menu-body .menu-section .levels .first-level.is-open p{text-decoration:underline}.gravity-menu .menu-content .menu-body .menu-section .levels .first-level.selected{border-left:4px solid var(--bg-menu-button-pressed-primary)}.gravity-menu .menu-content .menu-body .menu-section .levels .first-level p{display:flex;align-items:center;gap:var(--gravity-spacing-xs)}.gravity-menu .menu-content .menu-body .menu-section .levels .first-level p .badge{position:absolute;right:20px;top:8px}.gravity-menu .menu-content .menu-body .menu-section .levels .first-level:hover{color:var(--on-bg-menu-button-hover-primary);background-color:var(--bg-menu-button-hover-primary)}.gravity-menu .menu-content .menu-body .menu-section .levels .second-level{display:flex;align-self:stretch;align-items:flex-start;justify-content:center;padding-left:var(--gravity-spacing-xxs);transition:max-height .3s ease-in-out,opacity .3s ease-in-out}.gravity-menu .menu-content .menu-body .menu-section .levels .second-level .options-list{flex:1 0 0;display:flex;flex-direction:column;justify-content:center;align-items:flex-start}.gravity-menu .menu-content .menu-body .menu-section .levels .second-level .options-list .line{height:100%;margin-left:var(--gravity-spacing-xs);border-left:1px solid var(--divider-menu-active-primary)}.gravity-menu .menu-content .menu-body .menu-section .levels .second-level .options-list .line.selected{margin:0 -1px 0 7px;border-left:3px solid var(--bg-menu-button-pressed-primary)}.gravity-menu .menu-content .menu-body .menu-section .levels .second-level .options-list .option{width:100%;height:34px;display:flex;align-items:center;gap:var(--gravity-spacing-sm)}.gravity-menu .menu-content .menu-body .menu-section .levels .second-level .options-list .option .option-text{flex:1 0 0;height:24px;display:flex;cursor:pointer;align-items:center;justify-content:space-between;padding:0 var(--gravity-spacing-xxs)}.gravity-menu .menu-content .menu-body .menu-section .levels .second-level .options-list .option .option-text:not(.disabled):not(.selected):hover{color:var(--on-bg-menu-button-hover-primary);background-color:var(--bg-menu-button-hover-primary)}.gravity-menu .menu-content .menu-body .menu-section .levels .second-level .options-list .option .option-text.disabled{cursor:default;pointer-events:none;color:var(--on-bg-menu-button-disabled-primary)}.gravity-menu .menu-content .menu-body .menu-section .levels .second-level .options-list .option .option-text.selected{color:var(--on-bg-menu-button-pressed-primary);background-color:var(--bg-menu-button-pressed-primary)}.gravity-menu .menu-content .menu-body .menu-section .levels .second-level .options-list .option .option-text .badge{height:14px;display:flex;border-radius:2.5px;align-items:flex-end;gap:var(--gravity-spacing-xs);padding:var(--gravity-spacing-xxs);background:var(--bg-menu-badge-button);color:var(--on-bg-notification-badge-button)}.gravity-menu .menu-content .menu-body .menu-section .levels .second-level .options-list .option .option-text .badge span{line-height:6px}.gravity-menu .menu-content .menu-footer{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;padding:16px 22px 20px 24px;gap:var(--gravity-spacing-md);width:calc(100% - var(--gravity-spacing-xs));box-shadow:-8px 1px 4px 0 rgba(var(--shadow-primary-rgba),var(--shadow-opacity))}.gravity-menu .menu-content .menu-footer .footer-content{width:234px;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;gap:var(--gravity-spacing-sm)}.gravity-menu .menu-content .menu-footer .footer-content .secondary-actions{width:100%;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:var(--gravity-spacing-xxs)}.gravity-menu .menu-content .menu-footer .footer-content .secondary-actions .action{width:100%;height:24px;display:flex;align-items:center;gap:var(--gravity-spacing-xs);padding:0 var(--gravity-spacing-xxs)}.gravity-menu .menu-content .menu-footer .footer-content .secondary-actions .action:hover{cursor:pointer;color:var(--on-bg-menu-button-hover-primary);background-color:var(--bg-menu-button-hover-primary)}.gravity-menu .menu-content .menu-footer .footer-content hr{margin:0;width:100%;border:1px solid var(--divider-menu-active-primary)}.gravity-menu .menu-content .menu-footer .footer-content .user-info-list{display:grid;gap:var(--gravity-spacing-xs)}.gravity-menu .menu-content .menu-footer .footer-content .user-info-list .user-info{display:flex;padding:1px 2px;align-items:center;gap:var(--gravity-spacing-xxs)}.gravity-menu.collapsed{width:100px;position:relative;gap:var(--gravity-spacing-lg)}.gravity-menu.collapsed .menu-header{padding:24px 0 0;justify-content:center}.gravity-menu.collapsed .menu-header .collapse-button{right:-10px}.gravity-menu.collapsed .menu-content .menu-body{padding:0}.gravity-menu.collapsed .menu-content .menu-body.sub-menu{overflow:hidden!important}.gravity-menu.collapsed .menu-content .menu-body .menu-section .levels .first-level{height:70px!important;justify-content:center!important}.gravity-menu.collapsed .menu-content .menu-body .menu-section .levels .first-level:not(.empty).is-open{margin-bottom:var(--expanded-margin);background-color:var(--surface-primary);border-left:4px solid var(--on-bg-menu-button-disabled-primary)}.gravity-menu.collapsed .menu-content .menu-body .menu-section .levels .first-level:not(.empty).is-open.selected{background-color:var(--bg-button-active-tertiary);border-left:4px solid var(--bg-menu-button-pressed-primary)}.gravity-menu.collapsed .menu-content .menu-body .menu-section .levels .first-level p{width:100%;display:flex;text-align:center;position:relative;align-items:center;flex-direction:column;justify-content:center;gap:var(--gravity-spacing-xxs);padding:var(--gravity-spacing-xs) var(--gravity-spacing-xxs)}.gravity-menu.collapsed .menu-content .menu-body .menu-section .levels .first-level p .badge.collapsed{top:3px;right:26px}.gravity-menu.collapsed .menu-content .menu-body .menu-section .levels .second-level{min-width:220px;position:absolute;width:max-content;z-index:1;top:var(--submenu-offset, 0px);border-radius:.3125rem;padding:var(--gravity-spacing-xs);background:var(--surface-secondary);border:1px solid var(--surface-primary);background-color:var(--surface-secondary)}.gravity-menu.collapsed .menu-content .menu-footer{width:100%;padding:16px 8px 20px}.gravity-menu.collapsed .menu-content .menu-footer .footer-content{width:84px}.gravity-menu.collapsed .menu-content .menu-footer .footer-content .secondary-actions{gap:var(--gravity-spacing-sm)}.gravity-menu.collapsed .menu-content .menu-footer .footer-content .secondary-actions .action{height:auto;flex-direction:column;gap:var(--gravity-spacing-xxs);padding:var(--gravity-spacing-xs) var(--gravity-spacing-xxs)}.gravity-menu.collapsed .menu-content .menu-footer .footer-content .user-info-list{width:100%;justify-items:center}.gravity-menu.collapsed .menu-content .menu-footer .footer-content .user-info-list .user-info .icon{cursor:pointer}.gravity-menu.md,.gravity-menu.sm{gap:0;width:100%;max-width:100%;position:fixed;min-width:577px;transition:none;transform:translate(101%);background-color:var(--bg-menu-mobile-primary)}.gravity-menu.md.open,.gravity-menu.sm.open{transform:translate(0);transition:transform .165s ease-in-out}.gravity-menu.md:not(.open),.gravity-menu.sm:not(.open){transform:translate(101%)}.gravity-menu.md.closing,.gravity-menu.sm.closing{transition:transform .165s ease-in-out}.gravity-menu.md .menu-logo svg,.gravity-menu.sm .menu-logo svg{width:70px;height:28px}.gravity-menu.md .menu-content,.gravity-menu.sm .menu-content{margin-top:var(--gravity-spacing-md)}.gravity-menu.md .menu-content .menu-body,.gravity-menu.sm .menu-content .menu-body{padding:0 18px 0 24px}.gravity-menu.md .menu-content .menu-body .menu-section .levels,.gravity-menu.sm .menu-content .menu-body .menu-section .levels{display:flex;flex-direction:column;gap:var(--gravity-spacing-sm);border-radius:.3125rem;padding:var(--gravity-spacing-sm);background-color:var(--bg-menu-mobile-card-primary)}.gravity-menu.md .menu-content .menu-body .menu-section .levels .first-level,.gravity-menu.sm .menu-content .menu-body .menu-section .levels .first-level{height:20px;background-color:var(--bg-menu-mobile-card-primary)}.gravity-menu.md .menu-content .menu-body .menu-section .levels .first-level:hover,.gravity-menu.sm .menu-content .menu-body .menu-section .levels .first-level:hover{background:none!important}.gravity-menu.md .menu-content .menu-body .menu-section .levels .second-level .options-list .option,.gravity-menu.sm .menu-content .menu-body .menu-section .levels .second-level .options-list .option{height:45px}.gravity-menu.md .menu-content .menu-body .menu-section .levels .second-level .options-list .option .option-text:hover,.gravity-menu.md .menu-content .menu-body .menu-section .levels .second-level .options-list .option .option-text.selected,.gravity-menu.sm .menu-content .menu-body .menu-section .levels .second-level .options-list .option .option-text:hover,.gravity-menu.sm .menu-content .menu-body .menu-section .levels .second-level .options-list .option .option-text.selected{background:none!important}.gravity-menu.md .menu-content .menu-body .menu-section .levels .second-level .options-list .option.selected,.gravity-menu.sm .menu-content .menu-body .menu-section .levels .second-level .options-list .option.selected{background-color:var(--bg-menu-mobile-button-pressed-primary)}.gravity-menu.md .menu-content .menu-footer-mobile,.gravity-menu.sm .menu-content .menu-footer-mobile{display:flex;align-items:center;align-self:stretch;flex-direction:column;justify-content:flex-end;gap:var(--gravity-spacing-sm);padding:var(--gravity-spacing-md)}.gravity-menu.md .menu-content .menu-footer-mobile .footer-content,.gravity-menu.sm .menu-content .menu-footer-mobile .footer-content{width:100%;display:flex;flex-direction:column;gap:var(--gravity-spacing-sm)}.gravity-menu.md .menu-content .menu-footer-mobile .footer-content .secondary-actions,.gravity-menu.sm .menu-content .menu-footer-mobile .footer-content .secondary-actions{display:flex;align-self:stretch;flex-direction:column;align-items:flex-start;gap:var(--gravity-spacing-sm);padding:0 var(--gravity-spacing-lg)}.gravity-menu.md .menu-content .menu-footer-mobile .footer-content .secondary-actions .card-buttons,.gravity-menu.sm .menu-content .menu-footer-mobile .footer-content .secondary-actions .card-buttons{display:flex;align-self:stretch;flex-direction:column;align-items:flex-start;gap:var(--gravity-spacing-xs)}.gravity-menu.md .menu-content .menu-footer-mobile .footer-content .secondary-actions .card-buttons .card-buttons-row,.gravity-menu.sm .menu-content .menu-footer-mobile .footer-content .secondary-actions .card-buttons .card-buttons-row{width:100%;display:flex;flex-direction:row;gap:var(--gravity-spacing-xs)}.gravity-menu.md .menu-content .menu-footer-mobile .footer-content .secondary-actions gravity-button,.gravity-menu.sm .menu-content .menu-footer-mobile .footer-content .secondary-actions gravity-button{width:100%}.gravity-menu.md .menu-content .menu-footer-mobile .footer-content .secondary-actions ::ng-deep gravity-card-button,.gravity-menu.sm .menu-content .menu-footer-mobile .footer-content .secondary-actions ::ng-deep gravity-card-button{width:100%}.gravity-menu.md .menu-content .menu-footer-mobile .footer-content .secondary-actions ::ng-deep gravity-card-button .card-button-container,.gravity-menu.sm .menu-content .menu-footer-mobile .footer-content .secondary-actions ::ng-deep gravity-card-button .card-button-container{padding:0;width:100%;min-width:auto}.gravity-menu.md .menu-content .menu-footer-mobile .footer-content .user-info-list,.gravity-menu.sm .menu-content .menu-footer-mobile .footer-content .user-info-list{gap:0;display:grid;border-top:1px solid var(--surface-secondary)}.gravity-menu.md .menu-content .menu-footer-mobile .footer-content .user-info-list .user-info,.gravity-menu.sm .menu-content .menu-footer-mobile .footer-content .user-info-list .user-info{display:flex;flex-direction:row;align-items:center;align-self:stretch;justify-content:center;gap:var(--gravity-spacing-xs);padding-top:var(--gravity-spacing-sm)}.gravity-menu.sm{min-width:320px}.gravity-menu.sm .menu-footer-mobile .footer-content .secondary-actions{padding:0!important}\n"] }]
198
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { items: [{
199
- type: Input
200
- }], userInfo: [{
201
- type: Input
202
- }], logoUrl: [{
203
- type: Input
204
- }], isOpen: [{
205
- type: Input
206
- }], collapsable: [{
207
- type: Input
208
- }], showCloseButton: [{
209
- type: Input
210
- }], cardButtons: [{
211
- type: Input
212
- }], maxCardButtonsPerRow: [{
213
- type: Input
214
- }], currentLink: [{
215
- type: Input
216
- }], secondaryActions: [{
217
- type: Input
218
- }], size: [{
219
- type: Input
220
- }], mainFooterAction: [{
221
- type: Input
222
- }], close: [{
223
- type: Output
224
- }], selected: [{
225
- type: Output
226
- }], collapsed: [{
227
- type: Output
228
- }], menuBody: [{
229
- type: ViewChild,
230
- args: ['menuBody', { static: false }]
231
- }] } });
232
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3Jhdml0eS1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dyYXZpdHktZGVzaWduLXN5c3RlbS9zcmMvbGliL2xheW91dC9ncmF2aXR5LW1lbnUvZ3Jhdml0eS1tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dyYXZpdHktZGVzaWduLXN5c3RlbS9zcmMvbGliL2xheW91dC9ncmF2aXR5LW1lbnUvZ3Jhdml0eS1tZW51LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFnRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7Ozs7QUFPM0osTUFBTSxPQUFPLG9CQUFvQjtJQTZCaEMsWUFBb0IsS0FBaUIsRUFBVSxRQUFtQjtRQUE5QyxVQUFLLEdBQUwsS0FBSyxDQUFZO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQXpCbEQsV0FBTSxHQUFZLEtBQUssQ0FBQztRQUN4QixnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUM3QixvQkFBZSxHQUFHLElBQUksQ0FBQztRQUV2Qix5QkFBb0IsR0FBVyxDQUFDLENBQUM7UUFDakMsZ0JBQVcsR0FBa0IsSUFBSSxDQUFDO1FBRWxDLFNBQUksR0FBcUMsSUFBSSxDQUFDO1FBQzlDLHFCQUFnQixHQUErRCxJQUFJLENBQUM7UUFFbkYsVUFBSyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDM0IsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDdEMsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFJbEQsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNoQixtQkFBYyxHQUFXLENBQUMsQ0FBQztRQUMzQixrQkFBYSxHQUFZLEtBQUssQ0FBQztRQUMvQixtQkFBYyxH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SztnQkFDVSxlQUFlO3NCQUE5QixLQUFLO2dCQUNVLFdBQVc7c0JBQTFCLEtBQUs7Z0JBQ1Usb0JBQW9CO3NCQUFuQyxLQUFLO2dCQUNVLFdBQVc7c0JBQTFCLEtBQUs7Z0JBQ1UsZ0JBQWdCO3NCQUEvQixLQUFLO2dCQUNVLElBQUk7c0JBQW5CLEtBQUs7Z0JBQ1UsZ0JBQWdCO3NCQUEvQixLQUFLO2dCQUVXLEtBQUs7c0JBQXJCLE1BQU07Z0JBQ1UsUUFBUTtzQkFBeEIsTUFBTTtnQkFDVSxTQUFTO3NCQUF6QixNQUFNO2dCQUVpQyxRQUFRO3NCQUEvQyxTQUFTO3VCQUFDLFVBQVUsRUFBRSxFQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge01lbnVIZWFkZXIsIE1lbnVMb2dvVXJscywgTWVudU9wdGlvbiwgU2Vjb25kYXJ5QWN0aW9ucywgVXNlckluZm99IGZyb20gXCIuLi8uLi9tb2RlbC9ncmF2aXR5LW1lbnUtaXRlbXMubW9kZWxcIjtcbmltcG9ydCB7Q29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIFZpZXdDaGlsZCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95LCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMsIFJlbmRlcmVyMn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ2dyYXZpdHktbWVudScsXG5cdHRlbXBsYXRlVXJsOiAnLi9ncmF2aXR5LW1lbnUuY29tcG9uZW50Lmh0bWwnLFxuXHRzdHlsZVVybHM6IFsnLi9ncmF2aXR5LW1lbnUuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBHcmF2aXR5TWVudUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcyAsT25EZXN0cm95IHtcblx0QElucHV0KCkgcHVibGljIGl0ZW1zOiBNZW51SGVhZGVyW107XG5cdEBJbnB1dCgpIHB1YmxpYyB1c2VySW5mbzogVXNlckluZm9bXTtcblx0QElucHV0KCkgcHVibGljIGxvZ29Vcmw6IE1lbnVMb2dvVXJscztcblx0QElucHV0KCkgcHVibGljIGlzT3BlbjogYm9vbGVhbiA9IGZhbHNlO1xuXHRASW5wdXQoKSBwdWJsaWMgY29sbGFwc2FibGU6IGJvb2xlYW4gPSBmYWxzZTtcblx0QElucHV0KCkgcHVibGljIHNob3dDbG9zZUJ1dHRvbiA9IHRydWU7XG5cdEBJbnB1dCgpIHB1YmxpYyBjYXJkQnV0dG9uczogU2Vjb25kYXJ5QWN0aW9uc1tdO1xuXHRASW5wdXQoKSBwdWJsaWMgbWF4Q2FyZEJ1dHRvbnNQZXJSb3c6IG51bWJlciA9IDM7XG5cdEBJbnB1dCgpIHB1YmxpYyBjdXJyZW50TGluazogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cdEBJbnB1dCgpIHB1YmxpYyBzZWNvbmRhcnlBY3Rpb25zOiBTZWNvbmRhcnlBY3Rpb25zW107XG5cdEBJbnB1dCgpIHB1YmxpYyBzaXplOiAneHMnIHwgJ3NtJyB8ICdtZCcgfCAnbGcnIHwgJ3hsJyA9ICd4bCc7XG5cdEBJbnB1dCgpIHB1YmxpYyBtYWluRm9vdGVyQWN0aW9uOiB7aWNvbjogc3RyaW5nOyB0ZXh0OiBzdHJpbmc7IGNhbGxiYWNrPzogKCkgPT4gdm9pZH0gfCBudWxsID0gbnVsbDtcblxuXHRAT3V0cHV0KCkgcHVibGljIGNsb3NlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXHRAT3V0cHV0KCkgcHVibGljIHNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cdEBPdXRwdXQoKSBwdWJsaWMgY29sbGFwc2VkID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG5cdEBWaWV3Q2hpbGQoJ21lbnVCb2R5Jywge3N0YXRpYzogZmFsc2V9KSBtZW51Qm9keSE6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuXG5cdHB1YmxpYyBjbG9zaW5nID0gZmFsc2U7XG5cdHB1YmxpYyBzY3JvbGxQb3NpdGlvbjogbnVtYmVyID0gMDtcblx0cHVibGljIGNvbGxhcHNlZE1vZGU6IGJvb2xlYW4gPSBmYWxzZTtcblx0cHVibGljIHZpc2libGVTdWJNZW51OiBib29sZWFuID0gZmFsc2U7XG5cdHB1YmxpYyBzZWxlY3RlZE9wdGlvbjogTWVudU9wdGlvbiB8IG51bGwgPSBudWxsO1xuXG5cdHByaXZhdGUgcmVzaXplT2JzZXJ2ZXIhOiBSZXNpemVPYnNlcnZlcjtcblx0cHJpdmF0ZSBjbGlja091dHNpZGVMaXN0ZW5lciE6ICgpID0+IHZvaWQ7XG5cblx0Y29uc3RydWN0b3IocHJpdmF0ZSBlbFJlZjogRWxlbWVudFJlZiwgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyKSB7fVxuXG5cdG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcblx0XHRpZiAoY2hhbmdlc1snY3VycmVudExpbmsnXSAmJiB0aGlzLmN1cnJlbnRMaW5rICE9IG51bGwgJiYgdGhpcy5pdGVtcz8ubGVuZ3RoKSB7XG5cdFx0XHR0aGlzLnByZXNlbGVjdE9wdGlvbkJ5TGluayh0aGlzLmN1cnJlbnRMaW5rKTtcblx0XHR9XG5cblx0XHRpZiAoY2hhbmdlc1snc2l6ZSddKSB7XG5cdFx0XHR0aGlzLmhhbmRsZVNpemVDaGFuZ2UoY2hhbmdlc1snc2l6ZSddLmN1cnJlbnRWYWx1ZSk7XG5cdFx0fVxuXHR9XG5cblx0bmdBZnRlclZpZXdJbml0KCkge1xuXHRcdGNvbnN0IGVsID0gdGhpcy5tZW51Qm9keS5uYXRpdmVFbGVtZW50O1xuXG5cdFx0dGhpcy5yZXNpemVPYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcigoKSA9PiB7XG5cdFx0XHR0aGlzLnVwZGF0ZU92ZXJmbG93KCk7XG5cdFx0fSk7XG5cblx0XHRpZiAodGhpcy5tZW51Qm9keSkge1xuXHRcdFx0dGhpcy5tZW51Qm9keS5uYXRpdmVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsICgpID0+IHtcblx0XHRcdFx0dGhpcy5zY3JvbGxQb3NpdGlvbiA9IHRoaXMubWVudUJvZHkubmF0aXZlRWxlbWVudC5zY3JvbGxUb3A7XG5cdFx0XHR9KTtcblx0XHR9XG5cblx0XHR0aGlzLmNsaWNrT3V0c2lkZUxpc3RlbmVyID0gdGhpcy5yZW5kZXJlci5saXN0ZW4oJ2RvY3VtZW50JywgJ2NsaWNrJywgKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XG5cdFx0XHRjb25zdCBtZW51RWxlbWVudCA9IHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcblx0XHRcdGlmICghbWVudUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0IGFzIE5vZGUpICYmIHRoaXMuY29sbGFwc2VkTW9kZSkge1xuXHRcdFx0XHR0aGlzLnZpc2libGVTdWJNZW51ID0gZmFsc2U7XG5cdFx0XHRcdHRoaXMudG9nZ2xlQWxsSGVhZGVycyh0cnVlKTtcblx0XHRcdH1cblx0XHR9KTtcblxuXHRcdHRoaXMucmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZShlbCk7XG5cdFx0dGhpcy51cGRhdGVPdmVyZmxvdygpO1xuXHR9XG5cblx0bmdPbkRlc3Ryb3koKSB7XG5cdFx0aWYgKHRoaXMucmVzaXplT2JzZXJ2ZXIpIHsgdGhpcy5yZXNpemVPYnNlcnZlci5kaXNjb25uZWN0KCk7IH1cblx0XHRpZiAodGhpcy5jbGlja091dHNpZGVMaXN0ZW5lcikgeyB0aGlzLmNsaWNrT3V0c2lkZUxpc3RlbmVyKCk7IH1cblx0fVxuXG5cdHByaXZhdGUgcHJlc2VsZWN0T3B0aW9uQnlMaW5rKGxpbms6IHN0cmluZykge1xuXHRcdGZvciAoY29uc3QgaGVhZGVyIG9mIHRoaXMuaXRlbXMgPz8gW10pIHtcblx0XHRcdGlmIChoZWFkZXIubGluayA9PT0gbGluaykgeyB0aGlzLnNlbGVjdGVkT3B0aW9uID0gbnVsbDsgaGVhZGVyLmNvbGxhcHNlZCA9IGZhbHNlOyByZXR1cm47IH1cblxuXHRcdFx0Y29uc3Qgb3B0aW9uID0gaGVhZGVyLmhlYWRlck9wdGlvbnM/LmZpbmQobyA9PiBvLmxpbmsgPT09IGxpbmspO1xuXHRcdFx0aWYgKG9wdGlvbikgeyB0aGlzLnNlbGVjdGVkT3B0aW9uID0gb3B0aW9uOyBoZWFkZXIuY29sbGFwc2VkID0gZmFsc2U7IHJldHVybjsgfVxuXHRcdH1cblxuXHRcdGlmKHRoaXMuY29sbGFwc2VkTW9kZSkgeyB0aGlzLnRvZ2dsZUFsbEhlYWRlcnModHJ1ZSk7IH1cblx0fVxuXG5cdHByaXZhdGUgaGFuZGxlU2l6ZUNoYW5nZShzaXplOiAneHMnIHwgJ3NtJyB8ICdtZCcgfCAnbGcnIHwgJ3hsJyk6IHZvaWQge1xuXHRcdGlmIChzaXplID09PSAnc20nIHx8IHNpemUgPT09ICdtZCcpIHtcblx0XHRcdGlmICh0aGlzLmNvbGxhcHNlZE1vZGUpIHtcblx0XHRcdFx0dGhpcy5jb2xsYXBzZWRNb2RlID0gZmFsc2U7XG5cdFx0XHRcdHRoaXMudmlzaWJsZVN1Yk1lbnUgPSBmYWxzZTtcblx0XHRcdFx0dGhpcy50b2dnbGVBbGxIZWFkZXJzKHRydWUpO1xuXHRcdFx0fVxuXHRcdH0gZWxzZSB7XG5cdFx0XHRpZighdGhpcy5jb2xsYXBzZWRNb2RlKSB7XG5cdFx0XHRcdHRoaXMudG9nZ2xlQWxsSGVhZGVycyhmYWxzZSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0cHVibGljIHNlbGVjdE9wdGlvbihvcHRpb246IE1lbnVPcHRpb24sIGhlYWRlcjogTWVudUhlYWRlcikge1xuXHRcdHRoaXMuc2VsZWN0ZWRPcHRpb24gPSBvcHRpb247XG5cdFx0dGhpcy5zZWxlY3RlZC5lbWl0KG9wdGlvbi5saW5rKTtcblxuXHRcdGlmICh0aGlzLmNvbGxhcHNlZE1vZGUgJiYgaGVhZGVyKSB7XG5cdFx0XHR0aGlzLnZpc2libGVTdWJNZW51ID0gZmFsc2U7XG5cdFx0XHRzZXRUaW1lb3V0KCgpID0+IHtoZWFkZXIuY29sbGFwc2VkID0gdHJ1ZTt9LCAwKTtcblx0XHR9XG5cdH1cblxuXHRwdWJsaWMgY2xvc2VNZW51KCkge1xuXHRcdHRoaXMuY2xvc2UuZW1pdCgpO1xuXHRcdHRoaXMuY2xvc2luZyA9IHRydWU7XG5cdFx0c2V0VGltZW91dCgoKSA9PiB7IHRoaXMuY2xvc2luZyA9IGZhbHNlOyB9LCAxMDApO1xuXHR9XG5cblx0cHVibGljIHRvZ2dsZU1lbnVIZWFkZXIoaGVhZGVyOiBNZW51SGVhZGVyLCBpbmRleDogbnVtYmVyKSB7XG5cdFx0aWYgKCFoZWFkZXIuaGVhZGVyT3B0aW9ucyB8fCBoZWFkZXIuaGVhZGVyT3B0aW9ucy5sZW5ndGggPT09IDApIHtcblx0XHRcdHRoaXMuc2VsZWN0ZWRPcHRpb24gPSBudWxsO1xuXHRcdFx0dGhpcy5zZWxlY3RlZC5lbWl0KGhlYWRlci5saW5rKTtcblxuXHRcdFx0aWYodGhpcy5jb2xsYXBzZWRNb2RlKSB7XG5cdFx0XHRcdHRoaXMudG9nZ2xlQWxsSGVhZGVycyh0cnVlKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRpZiAoIWhlYWRlci5oZWFkZXJPcHRpb25zPy5sZW5ndGgpIHJldHVybjtcblxuXHRcdGlmICh0aGlzLmNvbGxhcHNlZE1vZGUpIHtcblx0XHRcdGlmICghaGVhZGVyLmNvbGxhcHNlZCkge1xuXHRcdFx0XHRoZWFkZXIuY29sbGFwc2VkID0gdHJ1ZTtcblx0XHRcdFx0dGhpcy52aXNpYmxlU3ViTWVudSA9IGZhbHNlO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0dGhpcy50b2dnbGVBbGxIZWFkZXJzKHRydWUpO1xuXHRcdFx0XHRoZWFkZXIuY29sbGFwc2VkID0gZmFsc2U7XG5cdFx0XHRcdHRoaXMudmlzaWJsZVN1Yk1lbnUgPSB0cnVlO1xuXHRcdFx0fVxuXHRcdFx0dGhpcy5hZGp1c3RTY3JvbGxPbkdyb3coaW5kZXgpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRoZWFkZXIuY29sbGFwc2VkID0gIWhlYWRlci5jb2xsYXBzZWQ7XG5cdFx0fVxuXHR9XG5cblx0cHVibGljIGlzSGVhZGVyU2VsZWN0ZWQoaGVhZGVyOiBNZW51SGVhZGVyKTogYm9vbGVhbiB7XG5cdFx0aWYgKCFoZWFkZXIuaGVhZGVyT3B0aW9ucz8ubGVuZ3RoKSByZXR1cm4gZmFsc2U7XG5cdFx0cmV0dXJuIGhlYWRlci5oZWFkZXJPcHRpb25zLnNvbWUob3B0aW9uID0+IG9wdGlvbiA9PT0gdGhpcy5zZWxlY3RlZE9wdGlvbik7XG5cdH1cblxuXHRwdWJsaWMgZ2V0Q2FyZEJ1dHRvbnNSb3dzKCk6IGFueVtdW10ge1xuXHRcdGlmICghdGhpcy5jYXJkQnV0dG9ucyB8fCAhdGhpcy5tYXhDYXJkQnV0dG9uc1BlclJvdykgcmV0dXJuIFtdO1xuXHRcdGNvbnN0IHJvd3MgPSBbXTtcblx0XHRmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuY2FyZEJ1dHRvbnMubGVuZ3RoOyBpICs9IHRoaXMubWF4Q2FyZEJ1dHRvbnNQZXJSb3cpIHtcblx0XHRcdHJvd3MucHVzaCh0aGlzLmNhcmRCdXR0b25zLnNsaWNlKGksIGkgKyB0aGlzLm1heENhcmRCdXR0b25zUGVyUm93KSk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHJvd3M7XG5cdH1cblxuXHRwdWJsaWMgY29sbGFwc2VNZW51KCkge1xuXHRcdHRoaXMuY29sbGFwc2VkTW9kZSA9ICF0aGlzLmNvbGxhcHNlZE1vZGU7XG5cdFx0dGhpcy50b2dnbGVBbGxIZWFkZXJzKHRoaXMuY29sbGFwc2VkTW9kZSk7XG5cdFx0aWYodGhpcy5jb2xsYXBzZWRNb2RlKSB7IHRoaXMudmlzaWJsZVN1Yk1lbnUgPSBmYWxzZTsgfVxuXG5cdFx0dGhpcy5jb2xsYXBzZWQuZW1pdCh0aGlzLmNvbGxhcHNlZE1vZGUpO1xuXHR9XG5cblx0cHVibGljIGhhc09wdGlvbkJhZGdlKGhlYWRlcjogTWVudUhlYWRlcik6IGJvb2xlYW4ge1xuXHRcdHJldHVybiAhIWhlYWRlci5oZWFkZXJPcHRpb25zPy5zb21lKFxuXHRcdFx0b3B0aW9uID0+IHR5cGVvZiBvcHRpb24uYmFkZ2VfdGV4dCA9PT0gJ3N0cmluZycgJiYgb3B0aW9uLmJhZGdlX3RleHQudHJpbSgpLmxlbmd0aCA+IDBcblx0XHQpO1xuXHR9XG5cblx0cHVibGljIGNsZWFyU2VsZWN0aW9uKGNsZWFyU2VsZWN0aW9uOiBib29sZWFuKSB7XG5cdFx0aWYoY2xlYXJTZWxlY3Rpb24pIHtcblx0XHRcdHRoaXMuc2VsZWN0ZWRPcHRpb24gPSBudWxsO1xuXHRcdFx0aWYodGhpcy5jb2xsYXBzZWRNb2RlKSB7XG5cdFx0XHRcdHRoaXMudG9nZ2xlQWxsSGVhZGVycyh0cnVlKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRwcml2YXRlIHVwZGF0ZU92ZXJmbG93KCk6IHZvaWQge1xuXHRcdGNvbnN0IGVsID0gdGhpcy5tZW51Qm9keS5uYXRpdmVFbGVtZW50O1xuXHRcdGNvbnN0IGhhc1Njcm9sbCA9IGVsLnNjcm9sbEhlaWdodCA+IGVsLmNsaWVudEhlaWdodDtcblx0XHRlbC5jbGFzc0xpc3QudG9nZ2xlKCdoYXMtc2Nyb2xsJywgaGFzU2Nyb2xsKTtcblx0fVxuXG5cdHByaXZhdGUgdG9nZ2xlQWxsSGVhZGVycyhjb2xsYXBzZWQ6IGJvb2xlYW4pOiB2b2lkIHtcblx0XHRpZiAoIXRoaXMuaXRlbXM/Lmxlbmd0aCkgcmV0dXJuO1xuXG5cdFx0Zm9yIChjb25zdCBoZWFkZXIgb2YgdGhpcy5pdGVtcykge1xuXHRcdFx0aWYgKGhlYWRlci5oZWFkZXJPcHRpb25zPy5sZW5ndGgpIHtcblx0XHRcdFx0aGVhZGVyLmNvbGxhcHNlZCA9IGNvbGxhcHNlZDtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRwcml2YXRlIGFkanVzdFNjcm9sbE9uR3JvdyhpbmRleDogbnVtYmVyKTogdm9pZCB7XG5cdFx0Y29uc3QgZWwgPSB0aGlzLm1lbnVCb2R5Py5uYXRpdmVFbGVtZW50O1xuXHRcdGlmICghZWwpIHJldHVybjtcblxuXHRcdGVsLnNjcm9sbFRvKHt0b3A6IDYyICogaW5kZXgsIGJlaGF2aW9yOiAnYXV0byd9KTtcblx0fVxuXG59XG4iLCI8ZGl2IGNsYXNzPVwiZ3Jhdml0eS1tZW51IHt7c2l6ZX19XCIgW2NsYXNzLm9wZW5dPVwiaXNPcGVuXCIgW2NsYXNzLmNsb3NpbmddPVwiY2xvc2luZ1wiXG4gICAgIFtjbGFzcy5jb2xsYXBzZWRdPVwiY29sbGFwc2VkTW9kZSAmJiAoc2l6ZSA9PT0gJ3hsJyB8fCBzaXplID09PSAnbGcnKVwiPlxuXG4gIDxkaXYgY2xhc3M9XCJtZW51LWhlYWRlclwiPlxuICAgIDxzdmctaWNvbiAqbmdJZj1cImxvZ29Vcmw/Lm1haW5fbG9nb191cmxcIlxuICAgICAgICAgICAgICBbc3JjXT1cIihjb2xsYXBzZWRNb2RlICYmIGxvZ29VcmwuY29sbGFwc2VkX2xvZ29fdXJsKSA/IGxvZ29VcmwuY29sbGFwc2VkX2xvZ29fdXJsIDogbG9nb1VybC5tYWluX2xvZ29fdXJsXCIvPlxuXG4gICAgPGdyYXZpdHktaWNvbiAqbmdJZj1cIihzaXplID09PSAnbWQnIHx8IHNpemUgPT09ICdzbScpICYmIHNob3dDbG9zZUJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICBbaWNvblNpemVdPVwiJ2xnLTI0J1wiIFtpY29uTmFtZV09XCIndW5zdWNjZXNzJ1wiIChjbGljayk9XCJjbG9zZU1lbnUoKVwiLz5cblxuICAgIDxkaXYgKm5nSWY9XCJjb2xsYXBzYWJsZSAmJiAoc2l6ZSA9PT0gJ3hsJyB8fCBzaXplID09PSAnbGcnKVwiIGNsYXNzPVwiY29sbGFwc2UtYnV0dG9uXCIgKGNsaWNrKT1cImNvbGxhcHNlTWVudSgpXCI+XG4gICAgICA8Z3Jhdml0eS1pY29uIFtzdHlsZS4tLWljb24tY29sb3JdPVwiJ3ZhcigtLWJnLWJ1dHRvbi1hY3RpdmUtcHJpbWFyeSknXCIgW2ljb25TaXplXT1cIidzbS0xMidcIlxuICAgICAgICAgICAgICAgICAgICBbaWNvbk5hbWVdPVwiY29sbGFwc2VkTW9kZSA/ICdhcnJvdy1yaWdodCcgOiAnYXJyb3ctbGVmdCdcIi8+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJtZW51LWNvbnRlbnRcIj5cbiAgICA8c2VjdGlvbiAjbWVudUJvZHkgY2xhc3M9XCJtZW51LWJvZHlcIiBbY2xhc3Muc3ViLW1lbnVdPVwidmlzaWJsZVN1Yk1lbnVcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtZW51LXNlY3Rpb25cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImxldmVsc1wiICpuZ0Zvcj1cImxldCBoZWFkZXIgb2YgaXRlbXM7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgICA8c2VjdGlvbiBjbGFzcz1cImZpcnN0LWxldmVsXCIgW2NsYXNzLnNlbGVjdGVkXT1cImlzSGVhZGVyU2VsZWN0ZWQoaGVhZGVyKVwiXG4gICAgICAgICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwiaGVhZGVyLmxpbmsgfHwgdW5kZWZpbmVkXCIgKGNsaWNrKT1cInRvZ2dsZU1lbnVIZWFkZXIoaGVhZGVyLCBpKVwiXG4gICAgICAgICAgICAgICAgICAgW2NsYXNzLmlzLW9wZW5dPVwiIWhlYWRlci5jb2xsYXBzZWRcIiBbY2xhc3MuZW1wdHldPVwiaGVhZGVyLmhlYWRlck9wdGlvbnM/Lmxlbmd0aCA8IDFcIlxuICAgICAgICAgICAgICAgICAgIFtzdHlsZS4tLWV4cGFuZGVkLW1hcmdpbl09XCJoZWFkZXIuaGVhZGVyT3B0aW9ucz8ubGVuZ3RoID4gMCA/ICgzOCArICgzNCAqIGhlYWRlci5oZWFkZXJPcHRpb25zPy5sZW5ndGgpKSArICdweCcgOiAnMCdcIj5cblxuICAgICAgICAgICAgPHAgY2xhc3M9XCJoci1sYWJlbCBzbS1yZWd1bGFyXCI+XG4gICAgICAgICAgICAgIDxncmF2aXR5LWljb24gW3N0eWxlLi0taWNvbi1jb2xvcl09XCIndmFyKC0tb3B0aW9uLWljb24tY29sb3IpJ1wiICpuZ0lmPVwiaGVhZGVyLmljb24gIT09ICcnXCIgW2ljb25OYW1lXT1cImhlYWRlci5pY29uXCIgW2ljb25TaXplXT1cIidtZC0xNidcIi8+XG4gICAgICAgICAgICAgIDxncmF2aXR5LWJhZGdlIGNsYXNzPVwiYmFkZ2VcIiAqbmdJZj1cImhhc09wdGlvbkJhZGdlKGhlYWRlcikgJiYgKHNpemUgPT09ICd4bCcgfHwgc2l6ZSA9PT0gJ2xnJylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuY29sbGFwc2VkXT1cImNvbGxhcHNlZE1vZGVcIiBbc2l6ZV09XCInc20nXCIgW3R5cGVdPVwiJ25ldXRybydcIj48L2dyYXZpdHktYmFkZ2U+XG4gICAgICAgICAgICAgICAge3sgaGVhZGVyLnRleHQgfX1cbiAgICAgICAgICAgIDwvcD5cblxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFjb2xsYXBzZWRNb2RlXCI+XG4gICAgICAgICAgICAgIDxncmF2aXR5LWljb24gKm5nSWY9XCJoZWFkZXIuaGVhZGVyT3B0aW9ucz8ubGVuZ3RoID4gMFwiIFtpY29uU2l6ZV09XCInc20tMTInXCIgW2ljb25OYW1lXT1cImhlYWRlci5jb2xsYXBzZWQgPyAnYXJyb3ctZG93bicgOiAnYXJyb3ctdXAnXCIvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9zZWN0aW9uPlxuXG4gICAgICAgICAgPHNlY3Rpb24gKm5nSWY9XCIhaGVhZGVyLmNvbGxhcHNlZCAmJiBoZWFkZXIuaGVhZGVyT3B0aW9ucz8ubGVuZ3RoID4gMFwiIGNsYXNzPVwic2Vjb25kLWxldmVsXCJcbiAgICAgICAgICAgICAgICAgICBbQGZhZGVTbGlkZV0gW3N0eWxlLi0tc3VibWVudS1vZmZzZXRdPVwiKCgxNTYgLSBzY3JvbGxQb3NpdGlvbikgKyAoNzggKiBpKSkgKyAncHgnXCJcbiAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJjb2xsYXBzZWRNb2RlID8gJ2VsZXZhdGlvbi14cycgIDogJydcIj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm9wdGlvbnMtbGlzdFwiIFtjbGFzcy5jb2xsYXBzZWRdPVwiY29sbGFwc2VkTW9kZVwiPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgaGVhZGVyLmhlYWRlck9wdGlvbnNcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3B0aW9uXCIgW2F0dHIuZGF0YS1jeV09XCJvcHRpb24uY3lwcmVzc190YWdcIiBbY2xhc3Muc2VsZWN0ZWRdPVwib3B0aW9uID09PSBzZWxlY3RlZE9wdGlvblwiPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxpbmVcIlxuICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3Muc2VsZWN0ZWRdPVwiKHNpemUgPT09ICd4bCcgfHwgc2l6ZSA9PSAnbGcnKSAmJiAgb3B0aW9uID09PSBzZWxlY3RlZE9wdGlvblwiPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm9wdGlvbi10ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiKHNpemUgPT09ICdzbScgfHwgc2l6ZSA9PT0gJ21kJykgPyAnaHItbGFiZWwgbWQtcmVndWxhcicgOiAnaHItbGFiZWwgc20tcmVndWxhcidcIlxuICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwib3B0aW9uLmRpc2FibGVkXCIgW2NsYXNzLnNlbGVjdGVkXT1cIm9wdGlvbiA9PT0gc2VsZWN0ZWRPcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICBbcm91dGVyTGlua109XCJvcHRpb24ubGluayB8fCB1bmRlZmluZWRcIiAoY2xpY2spPVwic2VsZWN0T3B0aW9uKG9wdGlvbiwgaGVhZGVyKVwiPlxuICAgICAgICAgICAgICAgICAgICB7eyBvcHRpb24udGV4dCB9fVxuICAgICAgICAgICAgICAgICAgICA8Z3Jhdml0eS1iYWRnZSAqbmdJZj1cIm9wdGlvbi5iYWRnZV90ZXh0ICYmIChzaXplID09PSAneGwnIHx8IHNpemUgPT09ICdsZycpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RleHRdPVwib3B0aW9uLmJhZGdlX3RleHRcIiBbdHlwZV09XCInbmV1dHJvJ1wiIFtzaXplXT1cIidzbSdcIj48L2dyYXZpdHktYmFkZ2U+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L3NlY3Rpb24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9zZWN0aW9uPlxuXG4gICAgPHNlY3Rpb24gKm5nSWY9XCIoc2Vjb25kYXJ5QWN0aW9ucyB8fCB1c2VySW5mbykgJiYgKHNpemUgPT09ICd4bCcgfHwgc2l6ZSA9PT0gJ2xnJylcIlxuICAgICAgICAgICAgIGNsYXNzPVwibWVudS1mb290ZXIgZWxldmF0aW9uLXhzXCI+XG4gICAgICA8c2VjdGlvbiBjbGFzcz1cImZvb3Rlci1jb250ZW50XCI+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJzZWNvbmRhcnlBY3Rpb25zXCIgY2xhc3M9XCJzZWNvbmRhcnktYWN0aW9uc1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJhY3Rpb25cIiAqbmdGb3I9XCJsZXQgYWN0aW9uIG9mIHNlY29uZGFyeUFjdGlvbnNcIlxuICAgICAgICAgICAgICAgKGNsaWNrKT1cImFjdGlvbi5jYWxsYmFjaygpOyBjbGVhclNlbGVjdGlvbihhY3Rpb24uY2xlYXJfc2VsZWN0aW9uKVwiPlxuXG4gICAgICAgICAgICA8Z3Jhdml0eS1pY29uICpuZ0lmPVwiYWN0aW9uLmljb24gIT09ICcnXCIgW2ljb25OYW1lXT1cImFjdGlvbi5pY29uXCIgW2ljb25TaXplXT1cIidtZC0xNidcIi8+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImhyLWxhYmVsIHNtLXJlZ3VsYXJcIj57eyBhY3Rpb24udGV4dCB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGhyICpuZ0lmPVwic2Vjb25kYXJ5QWN0aW9ucyAmJiB1c2VySW5mb1wiIGNsYXNzPVwic2VwYXJhdG9yLWxpbmVcIj5cblxuICAgICAgICA8ZGl2ICpuZ0lmPVwidXNlckluZm9cIiBjbGFzcz1cInVzZXItaW5mby1saXN0XCI+XG4gICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgdXNlckluZm8gb2YgdXNlckluZm9cIiBjbGFzcz1cInVzZXItaW5mb1wiPlxuICAgICAgICAgICAgPGdyYXZpdHktaWNvbiAqbmdJZj1cInVzZXJJbmZvLmljb24gIT09ICcnXCIgY2xhc3M9XCJpY29uXCIgW2ljb25OYW1lXT1cInVzZXJJbmZvLmljb25cIiBbaWNvblNpemVdPVwiJ3NtLTEyJ1wiXG4gICAgICAgICAgICAgIFt0b29sdGlwXT1cImNvbGxhcHNlZE1vZGUgPyB0b29sdGlwVXNlckluZm9UZW1wbGF0ZSA6IG51bGxcIiBbY29udGVudFR5cGVdPVwiJ3RlbXBsYXRlJ1wiIFtwbGFjZW1lbnRdPVwiJ3JpZ2h0J1wiLz5cblxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCIhY29sbGFwc2VkTW9kZVwiIGNsYXNzPVwiaHItbGFiZWwgc20tcmVndWxhclwiPnt7IHVzZXJJbmZvLmluZm8gfX08L3NwYW4+XG5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjdG9vbHRpcFVzZXJJbmZvVGVtcGxhdGU+XG4gICAgICAgICAgICAgIDxncmF2aXR5LXRvb2x0aXAtY29udGFpbmVyIFt0b29sdGlwU2ltcGxlXT1cInt0ZXh0OiB1c2VySW5mby5pbmZvfVwiLz5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9zZWN0aW9uPlxuICAgIDwvc2VjdGlvbj5cblxuICAgIDwhLS0gLSAtIC0gLSAtIC0gLSAtIC0gLSAgTW9iaWxlIFJlc29sdXRpb25zIC0gLSAtIC0gLSAtIC0gLSAtIC0gLS0+XG5cbiAgICA8c2VjdGlvbiAqbmdJZj1cIihjYXJkQnV0dG9ucyB8fCB1c2VySW5mbykgJiYgKHNpemUgPT09ICdtZCcgfHwgc2l6ZSA9PT0gJ3NtJylcIiBjbGFzcz1cIm1lbnUtZm9vdGVyLW1vYmlsZVwiPlxuICAgICAgPHNlY3Rpb24gY2xhc3M9XCJmb290ZXItY29udGVudFwiPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwiY2FyZEJ1dHRvbnNcIiBjbGFzcz1cInNlY29uZGFyeS1hY3Rpb25zXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYnV0dG9uc1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYnV0dG9ucy1yb3dcIiAqbmdGb3I9XCJsZXQgcm93IG9mIGdldENhcmRCdXR0b25zUm93cygpXCI+XG4gICAgICAgICAgICAgIDxncmF2aXR5LWNhcmQtYnV0dG9uICpuZ0Zvcj1cImxldCBidXR0b24gb2Ygcm93XCJcbiAgICAgICAgICAgICAgIFt0eXBlXT1cIidzZWNvbmRhcnknXCJcbiAgICAgICAgICAgICAgIFtvcmllbnRhdGlvbl09XCIndnJ0LWNlbnRlcidcIlxuICAgICAgICAgICAgICAgW2ljb25OYW1lXT1cImJ1dHRvbi5pY29uXCIgW2xhYmVsXT1cImJ1dHRvbi50ZXh0XCJcbiAgICAgICAgICAgICAgIChjbGlja2VkKT1cImJ1dHRvbi5jYWxsYmFjaygpOyBjbGVhclNlbGVjdGlvbihidXR0b24uY2xlYXJfc2VsZWN0aW9uKTsgc2VsZWN0ZWQuZW1pdCgpXCIvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGdyYXZpdHktYnV0dG9uICpuZ0lmPVwibWFpbkZvb3RlckFjdGlvblwiIFtzaXplXT1cIidtZCdcIiBbdHlwZV09XCIndGVydGlhcnknXCIgW2ljb25OYW1lXT1cIm1haW5Gb290ZXJBY3Rpb24uaWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtpY29uUG9zaXRpb25dPVwiJ2xlZnQnXCIgKGNsaWNrKT1cIm1haW5Gb290ZXJBY3Rpb24uY2FsbGJhY2soKVwiPiB7eyBtYWluRm9vdGVyQWN0aW9uLnRleHQgfX1cbiAgICAgICAgICA8L2dyYXZpdHktYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiAqbmdJZj1cInVzZXJJbmZvXCIgY2xhc3M9XCJ1c2VyLWluZm8tbGlzdFwiPlxuICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHVzZXJJbmZvIG9mIHVzZXJJbmZvXCIgY2xhc3M9XCJ1c2VyLWluZm9cIj5cbiAgICAgICAgICAgIDxncmF2aXR5LWljb24gW2ljb25TaXplXT1cIidzbS0xMidcIiBbaWNvbk5hbWVdPVwidXNlckluZm8uaWNvblwiLz5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaHItbGFiZWwgc20tcmVndWxhclwiPnt7IHVzZXJJbmZvLmluZm8gfX08L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9zZWN0aW9uPlxuICAgIDwvc2VjdGlvbj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuIl19
@@ -1,5 +0,0 @@
1
- export class UserInfo {
2
- }
3
- export class MenuLogoUrls {
4
- }
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3Jhdml0eS1tZW51LWl0ZW1zLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ3Jhdml0eS1kZXNpZ24tc3lzdGVtL3NyYy9saWIvbW9kZWwvZ3Jhdml0eS1tZW51LWl0ZW1zLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTBCQSxNQUFNLE9BQU8sUUFBUTtDQUdwQjtBQUVELE1BQU0sT0FBTyxZQUFZO0NBR3hCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBNZW51SGVhZGVyIHtcblx0aWQ6IHN0cmluZztcblx0dGV4dDogc3RyaW5nO1xuXHRpY29uPzogc3RyaW5nO1xuXHRsaW5rPzogc3RyaW5nO1xuXHRjb2xsYXBzZWQ/OiBib29sZWFuO1xuXHRjeXByZXNzX3RhZz86IHN0cmluZztcblx0cGVybWlzc2lvbl90YWc/OiBzdHJpbmc7XG5cdGhlYWRlck9wdGlvbnM/OiBNZW51T3B0aW9uW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWVudU9wdGlvbiB7XG5cdHRleHQ6IHN0cmluZztcblx0bGluaz86IHN0cmluZztcblx0ZGlzYWJsZWQ/OiBib29sZWFuO1xuXHRiYWRnZV90ZXh0Pzogc3RyaW5nO1xuXHRjeXByZXNzX3RhZz86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZWNvbmRhcnlBY3Rpb25zIHtcblx0aWNvbj86IHN0cmluZztcblx0dGV4dD86IHN0cmluZztcblx0Y2FsbGJhY2s/OiAoKSA9PiB2b2lkO1xuXHRjbGVhcl9zZWxlY3Rpb24/OiBib29sZWFuO1xufVxuXG5leHBvcnQgY2xhc3MgVXNlckluZm8ge1xuXHRpY29uPzogc3RyaW5nO1xuXHRpbmZvPzogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgTWVudUxvZ29VcmxzIHtcblx0bWFpbl9sb2dvX3VybDogc3RyaW5nO1xuXHRjb2xsYXBzZWRfbG9nb191cmw/OiBzdHJpbmc7XG59Il19
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3Jhdml0eS1wdXNoLW5vdGlmaWNhdGlvbnMubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ncmF2aXR5LWRlc2lnbi1zeXN0ZW0vc3JjL2xpYi9tb2RlbC9ncmF2aXR5LXB1c2gtbm90aWZpY2F0aW9ucy5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBVc2VyTm90aWZpY2F0aW9ucyB7XG5cdHVzZXJfaWQ6IG51bWJlcjtcblx0c2Vlbk5vdGlmaWNhdGlvbnM/OiBQdXNoTm90aWZpY2F0aW9uW107XG5cdHBlbmRpbmdOb3RpZmljYXRpb25zPzogUHVzaE5vdGlmaWNhdGlvbltdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFB1c2hOb3RpZmljYXRpb24ge1xuXHRib2R5VGV4dD86IHN0cmluZztcblx0aWNvbk5hbWU/OiBzdHJpbmc7XG5cdHRpdGxlVGV4dD86IHN0cmluZztcblx0bm90aWZpY2F0aW9uX3RhZzogc3RyaW5nO1xuXHRib2R5QWRkaXRpb25hbFRleHQ/OiBzdHJpbmc7XG5cdHRpdGxlQWRkaXRpb25hbFRleHQ/OiBzdHJpbmc7XG5cdG5vdGlmaWNhdGlvbl92aWV3ZWQ6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTm90aWZpY2F0aW9uVmlld2VkU3RhdHVzUmVxdWVzdCB7XG5cdHVzZXJfaWQ6IG51bWJlcjtcblx0cHVzaF9ub3RpZmljYXRpb25zOiBOb3RpZmljYXRpb25TdGF0dXNVcGRhdGVbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBOb3RpZmljYXRpb25TdGF0dXNVcGRhdGUge1xuXHR0YWc6IHN0cmluZztcblx0bmV3X3N0YXR1czogc3RyaW5nO1xufVxuXG4iXX0=
@@ -1,48 +0,0 @@
1
- import { Injectable } from "@angular/core";
2
- import { GravityDialogComponent } from "../components/gravity-dialog/gravity-dialog.component";
3
- import { GravityNotificationComponent } from "../components/gravity-notification/gravity-notification.component";
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@ng-bootstrap/ng-bootstrap";
6
- import * as i2 from "./gravity-instant-notifications.service";
7
- export class GravityDialogManagerService {
8
- constructor(ngbModal, gravityInstantNotificationsService) {
9
- this.ngbModal = ngbModal;
10
- this.gravityInstantNotificationsService = gravityInstantNotificationsService;
11
- }
12
- openModal(gravityDialogContentInterface, scrollableDialog = false, modalSize = 'md', backdrop = true) {
13
- const modalRef = this.ngbModal.open(GravityDialogComponent, {
14
- centered: true,
15
- scrollable: scrollableDialog,
16
- size: modalSize,
17
- backdrop: backdrop
18
- });
19
- modalRef.componentInstance.dialogContent = gravityDialogContentInterface;
20
- return modalRef;
21
- }
22
- throwInformativeNotification(notificationContent) {
23
- const modalRef = this.ngbModal.open(GravityNotificationComponent, {
24
- modalDialogClass: 'informative-notification',
25
- centered: true
26
- });
27
- modalRef.componentInstance.notificationContent = notificationContent;
28
- }
29
- throwInstantNotification(notificationContent) {
30
- this.gravityInstantNotificationsService.showNotification(notificationContent);
31
- }
32
- closeModal(modalToClose, returnValue) {
33
- modalToClose.close(returnValue);
34
- }
35
- closeAllModals() {
36
- if (this.ngbModal.hasOpenModals()) {
37
- this.ngbModal.dismissAll('dismiss all modals');
38
- }
39
- return true;
40
- }
41
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GravityDialogManagerService, deps: [{ token: i1.NgbModal }, { token: i2.GravityInstantNotificationsService }], target: i0.ɵɵFactoryTarget.Injectable }); }
42
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GravityDialogManagerService, providedIn: "root" }); }
43
- }
44
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GravityDialogManagerService, decorators: [{
45
- type: Injectable,
46
- args: [{ providedIn: "root" }]
47
- }], ctorParameters: function () { return [{ type: i1.NgbModal }, { type: i2.GravityInstantNotificationsService }]; } });
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3Jhdml0eS1kaWFsb2ctbWFuYWdlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ3Jhdml0eS1kZXNpZ24tc3lzdGVtL3NyYy9saWIvc2VydmljZXMvZ3Jhdml0eS1kaWFsb2ctbWFuYWdlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTyxFQUNMLHNCQUFzQixFQUV2QixNQUFNLHVEQUF1RCxDQUFDO0FBRS9ELE9BQU8sRUFBQyw0QkFBNEIsRUFBQyxNQUFNLG1FQUFtRSxDQUFDOzs7O0FBSS9HLE1BQU0sT0FBTywyQkFBMkI7SUFDdEMsWUFBNkIsUUFBa0IsRUFBbUIsa0NBQXNFO1FBQTNHLGFBQVEsR0FBUixRQUFRLENBQVU7UUFBbUIsdUNBQWtDLEdBQWxDLGtDQUFrQyxDQUFvQztJQUN4SSxDQUFDO0lBRU0sU0FBUyxDQUFDLDZCQUE0RCxFQUFFLG1CQUE0QixLQUFLLEVBQUUsWUFBK0MsSUFBSSxFQUFFLFdBQStCLElBQUk7UUFDeE0sTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLEVBQUU7WUFDMUQsUUFBUSxFQUFFLElBQUk7WUFDZCxVQUFVLEVBQUUsZ0JBQWdCO1lBQzVCLElBQUksRUFBRSxTQUFTO1lBQ2YsUUFBUSxFQUFFLFFBQVE7U0FDbkIsQ0FBQyxDQUFDO1FBQ0gsUUFBUSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsR0FBRyw2QkFBNkIsQ0FBQztRQUN6RSxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBRU0sNEJBQTRCLENBQUMsbUJBQStDO1FBQ2pGLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLDRCQUE0QixFQUFFO1lBQ2hFLGdCQUFnQixFQUFFLDBCQUEwQjtZQUM1QyxRQUFRLEVBQUUsSUFBSTtTQUNmLENBQUMsQ0FBQztRQUNILFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxtQkFBbUIsR0FBRyxtQkFBbUIsQ0FBQztJQUN2RSxDQUFDO0lBRU0sd0JBQXdCLENBQUMsbUJBQStDO1FBQzdFLElBQUksQ0FBQyxrQ0FBa0MsQ0FBQyxnQkFBZ0IsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQ2hGLENBQUM7SUFFTSxVQUFVLENBQUMsWUFBeUIsRUFBRSxXQUFpQjtRQUM1RCxZQUFZLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFTSxjQUFjO1FBQ25CLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQUUsRUFBRTtZQUNqQyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1NBQ2hEO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDOytHQXJDVSwyQkFBMkI7bUhBQTNCLDJCQUEyQixjQURmLE1BQU07OzRGQUNsQiwyQkFBMkI7a0JBRHZDLFVBQVU7bUJBQUMsRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtOZ2JNb2RhbCwgTmdiTW9kYWxSZWZ9IGZyb20gXCJAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcFwiO1xuaW1wb3J0IHtcbiAgR3Jhdml0eURpYWxvZ0NvbXBvbmVudCxcbiAgR3Jhdml0eURpYWxvZ0NvbnRlbnRJbnRlcmZhY2Vcbn0gZnJvbSBcIi4uL2NvbXBvbmVudHMvZ3Jhdml0eS1kaWFsb2cvZ3Jhdml0eS1kaWFsb2cuY29tcG9uZW50XCI7XG5pbXBvcnQge0dyYXZpdHlJbnN0YW50Tm90aWZpY2F0aW9uc1NlcnZpY2V9IGZyb20gXCIuL2dyYXZpdHktaW5zdGFudC1ub3RpZmljYXRpb25zLnNlcnZpY2VcIjtcbmltcG9ydCB7R3Jhdml0eU5vdGlmaWNhdGlvbkNvbXBvbmVudH0gZnJvbSBcIi4uL2NvbXBvbmVudHMvZ3Jhdml0eS1ub3RpZmljYXRpb24vZ3Jhdml0eS1ub3RpZmljYXRpb24uY29tcG9uZW50XCI7XG5pbXBvcnQge0dyYXZpdHlOb3RpZmljYXRpb25Db250ZW50fSBmcm9tIFwiLi4vY29tcG9uZW50cy9ncmF2aXR5LW5vdGlmaWNhdGlvbi9ncmF2aXR5LW5vdGlmaWNhdGlvbi1jb250ZW50LmludGVyZmFjZVwiO1xuXG5ASW5qZWN0YWJsZSh7cHJvdmlkZWRJbjogXCJyb290XCJ9KVxuZXhwb3J0IGNsYXNzIEdyYXZpdHlEaWFsb2dNYW5hZ2VyU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgbmdiTW9kYWw6IE5nYk1vZGFsLCBwcml2YXRlIHJlYWRvbmx5IGdyYXZpdHlJbnN0YW50Tm90aWZpY2F0aW9uc1NlcnZpY2U6IEdyYXZpdHlJbnN0YW50Tm90aWZpY2F0aW9uc1NlcnZpY2UpIHtcbiAgfVxuXG4gIHB1YmxpYyBvcGVuTW9kYWwoZ3Jhdml0eURpYWxvZ0NvbnRlbnRJbnRlcmZhY2U6IEdyYXZpdHlEaWFsb2dDb250ZW50SW50ZXJmYWNlLCBzY3JvbGxhYmxlRGlhbG9nOiBib29sZWFuID0gZmFsc2UsIG1vZGFsU2l6ZTogJ3NtJyB8ICdtZCcgfCAnbGcnIHwgJ3hsJyB8ICdmaXQnID0gJ21kJywgYmFja2Ryb3A6IGJvb2xlYW4gfCAnc3RhdGljJyA9IHRydWUpOiBOZ2JNb2RhbFJlZiB7XG4gICAgY29uc3QgbW9kYWxSZWYgPSB0aGlzLm5nYk1vZGFsLm9wZW4oR3Jhdml0eURpYWxvZ0NvbXBvbmVudCwge1xuICAgICAgY2VudGVyZWQ6IHRydWUsXG4gICAgICBzY3JvbGxhYmxlOiBzY3JvbGxhYmxlRGlhbG9nLFxuICAgICAgc2l6ZTogbW9kYWxTaXplLFxuICAgICAgYmFja2Ryb3A6IGJhY2tkcm9wXG4gICAgfSk7XG4gICAgbW9kYWxSZWYuY29tcG9uZW50SW5zdGFuY2UuZGlhbG9nQ29udGVudCA9IGdyYXZpdHlEaWFsb2dDb250ZW50SW50ZXJmYWNlO1xuICAgIHJldHVybiBtb2RhbFJlZjtcbiAgfVxuXG4gIHB1YmxpYyB0aHJvd0luZm9ybWF0aXZlTm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbkNvbnRlbnQ6IEdyYXZpdHlOb3RpZmljYXRpb25Db250ZW50KTogdm9pZCB7XG4gICAgY29uc3QgbW9kYWxSZWYgPSB0aGlzLm5nYk1vZGFsLm9wZW4oR3Jhdml0eU5vdGlmaWNhdGlvbkNvbXBvbmVudCwge1xuICAgICAgbW9kYWxEaWFsb2dDbGFzczogJ2luZm9ybWF0aXZlLW5vdGlmaWNhdGlvbicsXG4gICAgICBjZW50ZXJlZDogdHJ1ZVxuICAgIH0pO1xuICAgIG1vZGFsUmVmLmNvbXBvbmVudEluc3RhbmNlLm5vdGlmaWNhdGlvbkNvbnRlbnQgPSBub3RpZmljYXRpb25Db250ZW50O1xuICB9XG5cbiAgcHVibGljIHRocm93SW5zdGFudE5vdGlmaWNhdGlvbihub3RpZmljYXRpb25Db250ZW50OiBHcmF2aXR5Tm90aWZpY2F0aW9uQ29udGVudCk6IHZvaWQge1xuICAgIHRoaXMuZ3Jhdml0eUluc3RhbnROb3RpZmljYXRpb25zU2VydmljZS5zaG93Tm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbkNvbnRlbnQpO1xuICB9XG5cbiAgcHVibGljIGNsb3NlTW9kYWwobW9kYWxUb0Nsb3NlOiBOZ2JNb2RhbFJlZiwgcmV0dXJuVmFsdWU/OiBhbnkpOiBhbnkge1xuICAgIG1vZGFsVG9DbG9zZS5jbG9zZShyZXR1cm5WYWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgY2xvc2VBbGxNb2RhbHMoKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMubmdiTW9kYWwuaGFzT3Blbk1vZGFscygpKSB7XG4gICAgICB0aGlzLm5nYk1vZGFsLmRpc21pc3NBbGwoJ2Rpc21pc3MgYWxsIG1vZGFscycpO1xuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9XG59XG4iXX0=
@@ -1,21 +0,0 @@
1
- import { Subject } from "rxjs";
2
- import { Injectable } from '@angular/core';
3
- import * as i0 from "@angular/core";
4
- export class GravityDropdownManagerService {
5
- constructor() {
6
- this.dropdownOpenedSource = new Subject();
7
- this.dropdownOpened$ = this.dropdownOpenedSource.asObservable();
8
- }
9
- notifyDropdownOpened(dropdown) {
10
- this.dropdownOpenedSource.next(dropdown);
11
- }
12
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GravityDropdownManagerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
13
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GravityDropdownManagerService, providedIn: 'root' }); }
14
- }
15
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GravityDropdownManagerService, decorators: [{
16
- type: Injectable,
17
- args: [{
18
- providedIn: 'root'
19
- }]
20
- }] });
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3Jhdml0eS1kcm9wZG93bi1tYW5hZ2VyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ncmF2aXR5LWRlc2lnbi1zeXN0ZW0vc3JjL2xpYi9zZXJ2aWNlcy9ncmF2aXR5LWRyb3Bkb3duLW1hbmFnZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzdCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBUzNDLE1BQU0sT0FBTyw2QkFBNkI7SUFIMUM7UUFLUyx5QkFBb0IsR0FBRyxJQUFJLE9BQU8sRUFBcUIsQ0FBQztRQUNoRSxvQkFBZSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztLQUszRDtJQUhBLG9CQUFvQixDQUFDLFFBQTJCO1FBQy9DLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDMUMsQ0FBQzsrR0FQVyw2QkFBNkI7bUhBQTdCLDZCQUE2QixjQUY3QixNQUFNOzs0RkFFTiw2QkFBNkI7a0JBSHpDLFVBQVU7bUJBQUM7b0JBQ1gsVUFBVSxFQUFFLE1BQU07aUJBQ2xCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtTdWJqZWN0fSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtHcmF2aXR5RHJvcGRvd25MaXN0Q29tcG9uZW50fSBmcm9tIFwiLi4vY29tcG9uZW50cy9ncmF2aXR5LWRyb3Bkb3duLWxpc3QvZ3Jhdml0eS1kcm9wZG93bi1saXN0LmNvbXBvbmVudFwiO1xuaW1wb3J0IHtHcmF2aXR5RHJvcGRvd25MaXN0RGlzcGxheUNvbXBvbmVudH0gZnJvbSBcIi4uL2NvbXBvbmVudHMvZ3Jhdml0eS1kcm9wZG93bi1saXN0LWRpc3BsYXkvZ3Jhdml0eS1kcm9wZG93bi1saXN0LWRpc3BsYXkuY29tcG9uZW50XCI7IC8vIMKhSW1wb3J0YSBlbCBudWV2byBjb21wb25lbnRlIVxuXG50eXBlIERyb3Bkb3duQ29tcG9uZW50ID0gR3Jhdml0eURyb3Bkb3duTGlzdENvbXBvbmVudCB8IEdyYXZpdHlEcm9wZG93bkxpc3REaXNwbGF5Q29tcG9uZW50O1xuXG5ASW5qZWN0YWJsZSh7XG5cdHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBHcmF2aXR5RHJvcGRvd25NYW5hZ2VyU2VydmljZSB7XG5cblx0cHJpdmF0ZSBkcm9wZG93bk9wZW5lZFNvdXJjZSA9IG5ldyBTdWJqZWN0PERyb3Bkb3duQ29tcG9uZW50PigpO1xuXHRkcm9wZG93bk9wZW5lZCQgPSB0aGlzLmRyb3Bkb3duT3BlbmVkU291cmNlLmFzT2JzZXJ2YWJsZSgpO1xuXG5cdG5vdGlmeURyb3Bkb3duT3BlbmVkKGRyb3Bkb3duOiBEcm9wZG93bkNvbXBvbmVudCkge1xuXHRcdHRoaXMuZHJvcGRvd25PcGVuZWRTb3VyY2UubmV4dChkcm9wZG93bik7XG5cdH1cbn0iXX0=
@@ -1,23 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class GravityInstantNotificationsService {
4
- constructor() {
5
- this.notifications = [];
6
- }
7
- showNotification(content) {
8
- this.notifications.push(content);
9
- }
10
- hideNotification(index) {
11
- this.notifications.splice(index, 1);
12
- }
13
- clearNotifications() {
14
- this.notifications.splice(0, this.notifications.length);
15
- }
16
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GravityInstantNotificationsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
17
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GravityInstantNotificationsService, providedIn: 'root' }); }
18
- }
19
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GravityInstantNotificationsService, decorators: [{
20
- type: Injectable,
21
- args: [{ providedIn: 'root' }]
22
- }] });
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3Jhdml0eS1pbnN0YW50LW5vdGlmaWNhdGlvbnMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dyYXZpdHktZGVzaWduLXN5c3RlbS9zcmMvbGliL3NlcnZpY2VzL2dyYXZpdHktaW5zdGFudC1ub3RpZmljYXRpb25zLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQzs7QUFJekMsTUFBTSxPQUFPLGtDQUFrQztJQUQvQztRQUVrQixrQkFBYSxHQUFpQyxFQUFFLENBQUM7S0FhbEU7SUFYUSxnQkFBZ0IsQ0FBQyxPQUFtQztRQUN6RCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRU0sZ0JBQWdCLENBQUMsS0FBYTtRQUNuQyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVNLGtCQUFrQjtRQUN2QixJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDOytHQWJVLGtDQUFrQzttSEFBbEMsa0NBQWtDLGNBRHRCLE1BQU07OzRGQUNsQixrQ0FBa0M7a0JBRDlDLFVBQVU7bUJBQUMsRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7R3Jhdml0eU5vdGlmaWNhdGlvbkNvbnRlbnR9IGZyb20gXCIuLi9jb21wb25lbnRzL2dyYXZpdHktbm90aWZpY2F0aW9uL2dyYXZpdHktbm90aWZpY2F0aW9uLWNvbnRlbnQuaW50ZXJmYWNlXCI7XG5cbkBJbmplY3RhYmxlKHtwcm92aWRlZEluOiAncm9vdCd9KVxuZXhwb3J0IGNsYXNzIEdyYXZpdHlJbnN0YW50Tm90aWZpY2F0aW9uc1NlcnZpY2Uge1xuICBwdWJsaWMgcmVhZG9ubHkgbm90aWZpY2F0aW9uczogR3Jhdml0eU5vdGlmaWNhdGlvbkNvbnRlbnRbXSA9IFtdO1xuXG4gIHB1YmxpYyBzaG93Tm90aWZpY2F0aW9uKGNvbnRlbnQ6IEdyYXZpdHlOb3RpZmljYXRpb25Db250ZW50KTogdm9pZCB7XG4gICAgdGhpcy5ub3RpZmljYXRpb25zLnB1c2goY29udGVudCk7XG4gIH1cblxuICBwdWJsaWMgaGlkZU5vdGlmaWNhdGlvbihpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5ub3RpZmljYXRpb25zLnNwbGljZShpbmRleCwgMSk7XG4gIH1cblxuICBwdWJsaWMgY2xlYXJOb3RpZmljYXRpb25zKCk6IHZvaWQge1xuICAgIHRoaXMubm90aWZpY2F0aW9ucy5zcGxpY2UoMCwgdGhpcy5ub3RpZmljYXRpb25zLmxlbmd0aCk7XG4gIH1cbn1cbiJdfQ==
@@ -1,70 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class PushNotificationsService {
4
- constructor() {
5
- this.seenNotifications = [];
6
- this.pendingNotifications = [];
7
- }
8
- loadUserNotifications(user) {
9
- if (user) {
10
- this.userId = user.user_id;
11
- this.seenNotifications = user.seenNotifications;
12
- this.pendingNotifications = user.pendingNotifications;
13
- }
14
- }
15
- toggleNotificationsPanel(open) {
16
- if (!open) {
17
- let notificationsArray = [];
18
- const newSeenNotifications = [...this.seenNotifications];
19
- this.pendingNotifications.forEach((notification) => {
20
- if (notification.notification_tag !== 'TAG_WELCOME') {
21
- let pushNotificationUpdateStatusRequestFormatted = {};
22
- pushNotificationUpdateStatusRequestFormatted.tag = notification.notification_tag;
23
- pushNotificationUpdateStatusRequestFormatted.new_status = 'true';
24
- notificationsArray.push(pushNotificationUpdateStatusRequestFormatted);
25
- }
26
- const seenNotification = { ...notification, notification_viewed: true };
27
- newSeenNotifications.unshift(seenNotification);
28
- });
29
- this.pendingNotifications = [];
30
- this.seenNotifications = newSeenNotifications;
31
- if (notificationsArray.length > 0 && this.userId !== null) {
32
- let updatePushNotificationViewedStatusRequest = {};
33
- updatePushNotificationViewedStatusRequest.user_id = this.userId;
34
- updatePushNotificationViewedStatusRequest.push_notifications = notificationsArray;
35
- return updatePushNotificationViewedStatusRequest;
36
- }
37
- }
38
- }
39
- getNotificationContent(text, additionalText) {
40
- if (text.indexOf('{{replace}}') !== -1 && additionalText) {
41
- text = text.replace('{{replace}}', additionalText);
42
- }
43
- return text;
44
- }
45
- removeTextOverflow(elementId) {
46
- let element = document.querySelector(".notification#" + elementId + " .body");
47
- if (element?.classList.contains('white-space-nowrap')) {
48
- element.classList.remove('white-space-nowrap');
49
- }
50
- else if (element) {
51
- element.classList.add('white-space-nowrap');
52
- }
53
- }
54
- clearLoginNotification() {
55
- const welcomeTag = 'TAG_WELCOME';
56
- if (this.pendingNotifications?.length) {
57
- this.pendingNotifications = this.pendingNotifications.filter(notification => notification.notification_tag !== welcomeTag);
58
- }
59
- if (this.seenNotifications?.length) {
60
- this.seenNotifications = this.seenNotifications.filter(notification => notification.notification_tag !== welcomeTag);
61
- }
62
- }
63
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PushNotificationsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
64
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PushNotificationsService, providedIn: 'root' }); }
65
- }
66
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PushNotificationsService, decorators: [{
67
- type: Injectable,
68
- args: [{ providedIn: 'root' }]
69
- }] });
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3Jhdml0eS1wdXNoLW5vdGlmaWNhdGlvbnMtc2VydmljZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ3Jhdml0eS1kZXNpZ24tc3lzdGVtL3NyYy9saWIvc2VydmljZXMvZ3Jhdml0eS1wdXNoLW5vdGlmaWNhdGlvbnMtc2VydmljZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7O0FBSXpDLE1BQU0sT0FBTyx3QkFBd0I7SUFEckM7UUFHUSxzQkFBaUIsR0FBdUIsRUFBRSxDQUFDO1FBQzNDLHlCQUFvQixHQUF1QixFQUFFLENBQUM7S0FxRXJEO0lBbkVPLHFCQUFxQixDQUFDLElBQXVCO1FBQ25ELElBQUksSUFBSSxFQUFFO1lBQ1QsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1lBQzNCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUM7WUFDaEQsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQztTQUN0RDtJQUNGLENBQUM7SUFFTSx3QkFBd0IsQ0FBQyxJQUFhO1FBQzVDLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDVixJQUFJLGtCQUFrQixHQUErQixFQUFFLENBQUM7WUFDeEQsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFFekQsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxDQUFDLFlBQThCLEVBQUUsRUFBRTtnQkFDcEUsSUFBSSxZQUFZLENBQUMsZ0JBQWdCLEtBQUssYUFBYSxFQUFFO29CQUNwRCxJQUFJLDRDQUE0QyxHQUE2QixFQUE4QixDQUFDO29CQUM1Ryw0Q0FBNEMsQ0FBQyxHQUFHLEdBQUcsWUFBWSxDQUFDLGdCQUFnQixDQUFDO29CQUNqRiw0Q0FBNEMsQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDO29CQUNqRSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsNENBQTRDLENBQUMsQ0FBQztpQkFDdEU7Z0JBRUQsTUFBTSxnQkFBZ0IsR0FBcUIsRUFBRSxHQUFHLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxJQUFJLEVBQUUsQ0FBQztnQkFDMUYsb0JBQW9CLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUM7WUFDaEQsQ0FBQyxDQUFDLENBQUM7WUFFSCxJQUFJLENBQUMsb0JBQW9CLEdBQUcsRUFBRSxDQUFDO1lBQy9CLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxvQkFBb0IsQ0FBQztZQUU5QyxJQUFJLGtCQUFrQixDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxJQUFJLEVBQUU7Z0JBQzFELElBQUkseUNBQXlDLEdBQW9DLEVBQXFDLENBQUM7Z0JBQ3ZILHlDQUF5QyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO2dCQUNoRSx5Q0FBeUMsQ0FBQyxrQkFBa0IsR0FBRyxrQkFBa0IsQ0FBQztnQkFFbEYsT0FBTyx5Q0FBeUMsQ0FBQzthQUNqRDtTQUNEO0lBQ0YsQ0FBQztJQUVNLHNCQUFzQixDQUFDLElBQVksRUFBRSxjQUFzQjtRQUNqRSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksY0FBYyxFQUFFO1lBQ3pELElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxjQUFjLENBQUMsQ0FBQztTQUNuRDtRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2IsQ0FBQztJQUVNLGtCQUFrQixDQUFDLFNBQWlCO1FBQzFDLElBQUksT0FBTyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLEdBQUcsU0FBUyxHQUFHLFFBQVEsQ0FBQyxDQUFDO1FBRTlFLElBQUksT0FBTyxFQUFFLFNBQVMsQ0FBQyxRQUFRLENBQUMsb0JBQW9CLENBQUMsRUFBRTtZQUN0RCxPQUFPLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1NBQy9DO2FBQU0sSUFBSSxPQUFPLEVBQUU7WUFDbkIsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsQ0FBQztTQUM1QztJQUNGLENBQUM7SUFFTSxzQkFBc0I7UUFDNUIsTUFBTSxVQUFVLEdBQUcsYUFBYSxDQUFDO1FBRWpDLElBQUksSUFBSSxDQUFDLG9CQUFvQixFQUFFLE1BQU0sRUFBRTtZQUN0QyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsS0FBSyxVQUFVLENBQUMsQ0FBQztTQUMzSDtRQUVELElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFLE1BQU0sRUFBRTtZQUNuQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsS0FBSyxVQUFVLENBQUMsQ0FBQztTQUNySDtJQUNGLENBQUM7K0dBdkVXLHdCQUF3QjttSEFBeEIsd0JBQXdCLGNBRFosTUFBTTs7NEZBQ2xCLHdCQUF3QjtrQkFEcEMsVUFBVTttQkFBQyxFQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtOb3RpZmljYXRpb25TdGF0dXNVcGRhdGUsIE5vdGlmaWNhdGlvblZpZXdlZFN0YXR1c1JlcXVlc3QsIFB1c2hOb3RpZmljYXRpb24sIFVzZXJOb3RpZmljYXRpb25zfSBmcm9tIFwiLi4vbW9kZWwvZ3Jhdml0eS1wdXNoLW5vdGlmaWNhdGlvbnMubW9kZWxcIjtcblxuQEluamVjdGFibGUoe3Byb3ZpZGVkSW46ICdyb290J30pXG5leHBvcnQgY2xhc3MgUHVzaE5vdGlmaWNhdGlvbnNTZXJ2aWNlIHtcblx0cHVibGljIHVzZXJJZDogbnVtYmVyO1xuXHRwdWJsaWMgc2Vlbk5vdGlmaWNhdGlvbnM6IFB1c2hOb3RpZmljYXRpb25bXSA9IFtdO1xuXHRwdWJsaWMgcGVuZGluZ05vdGlmaWNhdGlvbnM6IFB1c2hOb3RpZmljYXRpb25bXSA9IFtdO1xuXG5cdHB1YmxpYyBsb2FkVXNlck5vdGlmaWNhdGlvbnModXNlcjogVXNlck5vdGlmaWNhdGlvbnMpOiB2b2lkIHtcblx0XHRpZiAodXNlcikge1xuXHRcdFx0dGhpcy51c2VySWQgPSB1c2VyLnVzZXJfaWQ7XG5cdFx0XHR0aGlzLnNlZW5Ob3RpZmljYXRpb25zID0gdXNlci5zZWVuTm90aWZpY2F0aW9ucztcblx0XHRcdHRoaXMucGVuZGluZ05vdGlmaWNhdGlvbnMgPSB1c2VyLnBlbmRpbmdOb3RpZmljYXRpb25zO1xuXHRcdH1cblx0fVxuXG5cdHB1YmxpYyB0b2dnbGVOb3RpZmljYXRpb25zUGFuZWwob3BlbjogYm9vbGVhbik6IE5vdGlmaWNhdGlvblZpZXdlZFN0YXR1c1JlcXVlc3Qge1xuXHRcdGlmICghb3Blbikge1xuXHRcdFx0bGV0IG5vdGlmaWNhdGlvbnNBcnJheTogTm90aWZpY2F0aW9uU3RhdHVzVXBkYXRlW10gPSBbXTtcblx0XHRcdGNvbnN0IG5ld1NlZW5Ob3RpZmljYXRpb25zID0gWy4uLnRoaXMuc2Vlbk5vdGlmaWNhdGlvbnNdO1xuXG5cdFx0XHR0aGlzLnBlbmRpbmdOb3RpZmljYXRpb25zLmZvckVhY2goKG5vdGlmaWNhdGlvbjogUHVzaE5vdGlmaWNhdGlvbikgPT4ge1xuXHRcdFx0XHRpZiAobm90aWZpY2F0aW9uLm5vdGlmaWNhdGlvbl90YWcgIT09ICdUQUdfV0VMQ09NRScpIHtcblx0XHRcdFx0XHRsZXQgcHVzaE5vdGlmaWNhdGlvblVwZGF0ZVN0YXR1c1JlcXVlc3RGb3JtYXR0ZWQ6IE5vdGlmaWNhdGlvblN0YXR1c1VwZGF0ZSA9IHt9IGFzIE5vdGlmaWNhdGlvblN0YXR1c1VwZGF0ZTtcblx0XHRcdFx0XHRwdXNoTm90aWZpY2F0aW9uVXBkYXRlU3RhdHVzUmVxdWVzdEZvcm1hdHRlZC50YWcgPSBub3RpZmljYXRpb24ubm90aWZpY2F0aW9uX3RhZztcblx0XHRcdFx0XHRwdXNoTm90aWZpY2F0aW9uVXBkYXRlU3RhdHVzUmVxdWVzdEZvcm1hdHRlZC5uZXdfc3RhdHVzID0gJ3RydWUnO1xuXHRcdFx0XHRcdG5vdGlmaWNhdGlvbnNBcnJheS5wdXNoKHB1c2hOb3RpZmljYXRpb25VcGRhdGVTdGF0dXNSZXF1ZXN0Rm9ybWF0dGVkKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGNvbnN0IHNlZW5Ob3RpZmljYXRpb246IFB1c2hOb3RpZmljYXRpb24gPSB7IC4uLm5vdGlmaWNhdGlvbiwgbm90aWZpY2F0aW9uX3ZpZXdlZDogdHJ1ZSB9O1xuXHRcdFx0XHRuZXdTZWVuTm90aWZpY2F0aW9ucy51bnNoaWZ0KHNlZW5Ob3RpZmljYXRpb24pO1xuXHRcdFx0fSk7XG5cblx0XHRcdHRoaXMucGVuZGluZ05vdGlmaWNhdGlvbnMgPSBbXTtcblx0XHRcdHRoaXMuc2Vlbk5vdGlmaWNhdGlvbnMgPSBuZXdTZWVuTm90aWZpY2F0aW9ucztcblxuXHRcdFx0aWYgKG5vdGlmaWNhdGlvbnNBcnJheS5sZW5ndGggPiAwICYmIHRoaXMudXNlcklkICE9PSBudWxsKSB7XG5cdFx0XHRcdGxldCB1cGRhdGVQdXNoTm90aWZpY2F0aW9uVmlld2VkU3RhdHVzUmVxdWVzdDogTm90aWZpY2F0aW9uVmlld2VkU3RhdHVzUmVxdWVzdCA9IHt9IGFzIE5vdGlmaWNhdGlvblZpZXdlZFN0YXR1c1JlcXVlc3Q7XG5cdFx0XHRcdHVwZGF0ZVB1c2hOb3RpZmljYXRpb25WaWV3ZWRTdGF0dXNSZXF1ZXN0LnVzZXJfaWQgPSB0aGlzLnVzZXJJZDtcblx0XHRcdFx0dXBkYXRlUHVzaE5vdGlmaWNhdGlvblZpZXdlZFN0YXR1c1JlcXVlc3QucHVzaF9ub3RpZmljYXRpb25zID0gbm90aWZpY2F0aW9uc0FycmF5O1xuXG5cdFx0XHRcdHJldHVybiB1cGRhdGVQdXNoTm90aWZpY2F0aW9uVmlld2VkU3RhdHVzUmVxdWVzdDtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRwdWJsaWMgZ2V0Tm90aWZpY2F0aW9uQ29udGVudCh0ZXh0OiBzdHJpbmcsIGFkZGl0aW9uYWxUZXh0OiBzdHJpbmcpOiBzdHJpbmcge1xuXHRcdGlmICh0ZXh0LmluZGV4T2YoJ3t7cmVwbGFjZX19JykgIT09IC0xICYmIGFkZGl0aW9uYWxUZXh0KSB7XG5cdFx0XHR0ZXh0ID0gdGV4dC5yZXBsYWNlKCd7e3JlcGxhY2V9fScsIGFkZGl0aW9uYWxUZXh0KTtcblx0XHR9XG5cblx0XHRyZXR1cm4gdGV4dDtcblx0fVxuXG5cdHB1YmxpYyByZW1vdmVUZXh0T3ZlcmZsb3coZWxlbWVudElkOiBzdHJpbmcpOiB2b2lkIHtcblx0XHRsZXQgZWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCIubm90aWZpY2F0aW9uI1wiICsgZWxlbWVudElkICsgXCIgLmJvZHlcIik7XG5cblx0XHRpZiAoZWxlbWVudD8uY2xhc3NMaXN0LmNvbnRhaW5zKCd3aGl0ZS1zcGFjZS1ub3dyYXAnKSkge1xuXHRcdFx0ZWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCd3aGl0ZS1zcGFjZS1ub3dyYXAnKTtcblx0XHR9IGVsc2UgaWYgKGVsZW1lbnQpIHtcblx0XHRcdGVsZW1lbnQuY2xhc3NMaXN0LmFkZCgnd2hpdGUtc3BhY2Utbm93cmFwJyk7XG5cdFx0fVxuXHR9XG5cblx0cHVibGljIGNsZWFyTG9naW5Ob3RpZmljYXRpb24oKTogdm9pZCB7XG5cdFx0Y29uc3Qgd2VsY29tZVRhZyA9ICdUQUdfV0VMQ09NRSc7XG5cblx0XHRpZiAodGhpcy5wZW5kaW5nTm90aWZpY2F0aW9ucz8ubGVuZ3RoKSB7XG5cdFx0XHR0aGlzLnBlbmRpbmdOb3RpZmljYXRpb25zID0gdGhpcy5wZW5kaW5nTm90aWZpY2F0aW9ucy5maWx0ZXIobm90aWZpY2F0aW9uID0+IG5vdGlmaWNhdGlvbi5ub3RpZmljYXRpb25fdGFnICE9PSB3ZWxjb21lVGFnKTtcblx0XHR9XG5cblx0XHRpZiAodGhpcy5zZWVuTm90aWZpY2F0aW9ucz8ubGVuZ3RoKSB7XG5cdFx0XHR0aGlzLnNlZW5Ob3RpZmljYXRpb25zID0gdGhpcy5zZWVuTm90aWZpY2F0aW9ucy5maWx0ZXIobm90aWZpY2F0aW9uID0+IG5vdGlmaWNhdGlvbi5ub3RpZmljYXRpb25fdGFnICE9PSB3ZWxjb21lVGFnKTtcblx0XHR9XG5cdH1cbn0iXX0=