@ti-tecnologico-de-monterrey-oficial/ds-ng 1.5.1118-a → 1.5.1118-c

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 (232) hide show
  1. package/assets/images/placeholders/credential.svg +69 -69
  2. package/assets/images/placeholders/user-icon-test.svg +9 -9
  3. package/assets/styles/main.min.css +1 -1
  4. package/assets/styles/main.min.css.map +1 -1
  5. package/esm2022/lib/components/bmb-academic-progress/bmb-academic-progress.component.mjs +5 -5
  6. package/esm2022/lib/components/bmb-accordion/bmb-accordion.component.mjs +5 -5
  7. package/esm2022/lib/components/bmb-account-statement/bmb-account-statement.component.mjs +37 -15
  8. package/esm2022/lib/components/bmb-action-icon/bmb-action-icon.component.mjs +5 -5
  9. package/esm2022/lib/components/bmb-action-menu/bmb-action-menu.component.mjs +5 -5
  10. package/esm2022/lib/components/bmb-advertisement-card/bmb-advertisement-card.component.mjs +5 -5
  11. package/esm2022/lib/components/bmb-alert-center/bmb-alert-center-ads/bmb-alert-center-ads.component.mjs +5 -5
  12. package/esm2022/lib/components/bmb-alert-center/bmb-alert-center-empty/bmb-alert-center-empty.component.mjs +5 -5
  13. package/esm2022/lib/components/bmb-alert-center/bmb-alert-center-form/bmb-alert-center-form.component.mjs +5 -5
  14. package/esm2022/lib/components/bmb-alert-center/bmb-alert-center-list/bmb-alert-center-list.component.mjs +5 -5
  15. package/esm2022/lib/components/bmb-alert-center/bmb-alert-center.component.mjs +20 -13
  16. package/esm2022/lib/components/bmb-alert-center/bmb-alert-center.service.mjs +3 -3
  17. package/esm2022/lib/components/bmb-badge/bmb-badge.component.mjs +5 -5
  18. package/esm2022/lib/components/bmb-balance-overview/bmb-balance-overview.component.mjs +5 -5
  19. package/esm2022/lib/components/bmb-bookmark/bmb-bookmark.component.mjs +3 -3
  20. package/esm2022/lib/components/bmb-bottom-navigation-bar/bmb-bottom-navigation-bar.component.mjs +3 -3
  21. package/esm2022/lib/components/bmb-breadcrumb/bmb-breadcrumb.component.mjs +5 -5
  22. package/esm2022/lib/components/bmb-button-icon/bmb-button-icon.component.mjs +5 -5
  23. package/esm2022/lib/components/bmb-calendar/bmb-calendar.component.mjs +28 -5
  24. package/esm2022/lib/components/bmb-calendar/common/bmb-calendar-header/bmb-calendar-header.component.mjs +5 -6
  25. package/esm2022/lib/components/bmb-calendar/common/bmb-calendar-hour-view/bmb-calendar-hour-view.component.mjs +4 -4
  26. package/esm2022/lib/components/bmb-calendar/common/bmb-calendar-schedule-cards/bmb-calendar-schedule-cards.component.mjs +5 -5
  27. package/esm2022/lib/components/bmb-calendar/common/bmb-calendar-template-day/bmb-calendar-template-day.component.mjs +3 -3
  28. package/esm2022/lib/components/bmb-calendar/common/bmb-calendar-template-mobile/bmb-calendar-template-mobile.component.mjs +5 -5
  29. package/esm2022/lib/components/bmb-calendar/common/bmb-calendar-template-month/bmb-calendar-template-month.component.mjs +5 -5
  30. package/esm2022/lib/components/bmb-calendar/common/bmb-calendar-template-week/bmb-calendar-template-week.component.mjs +3 -3
  31. package/esm2022/lib/components/bmb-calendar/common/bmb-calendar-time-indicator/bmb-calendar-time-indicator.component.mjs +5 -5
  32. package/esm2022/lib/components/bmb-card/bmb-card.component.mjs +19 -14
  33. package/esm2022/lib/components/bmb-card-button/bmb-card-button.component.mjs +5 -5
  34. package/esm2022/lib/components/bmb-carousel/bmb-carousel.component.mjs +5 -5
  35. package/esm2022/lib/components/bmb-chat-bar/bmb-chat-bar.component.mjs +69 -45
  36. package/esm2022/lib/components/bmb-chat-bubbles/bmb-chat-bubbles.component.mjs +5 -5
  37. package/esm2022/lib/components/bmb-check-external-link-button/bmb-check-external-link-button.component.mjs +5 -5
  38. package/esm2022/lib/components/bmb-checkbox/bmb-checkbox.component.mjs +5 -5
  39. package/esm2022/lib/components/bmb-chevron-title-selector/bmb-chevron-title-selector.component.mjs +3 -3
  40. package/esm2022/lib/components/bmb-container/bmb-container.component.mjs +3 -3
  41. package/esm2022/lib/components/bmb-container-button/bmb-container-button.component.mjs +5 -5
  42. package/esm2022/lib/components/bmb-date-range/bmb-date-range.component.mjs +5 -5
  43. package/esm2022/lib/components/bmb-datepicker/bmb-datepicker-modal/bmb-datepicker-modal.component.mjs +5 -5
  44. package/esm2022/lib/components/bmb-datepicker/bmb-datepicker.component.mjs +5 -5
  45. package/esm2022/lib/components/bmb-digital-id/bmb-digital-id.component.mjs +5 -5
  46. package/esm2022/lib/components/bmb-divider/bmb-divider.component.mjs +3 -3
  47. package/esm2022/lib/components/bmb-dot-paginator/bmb-dot-paginator.component.mjs +3 -3
  48. package/esm2022/lib/components/bmb-drawer-overlay/bmb-drawer-overlay.component.mjs +18 -7
  49. package/esm2022/lib/components/bmb-dropdown/bmb-dropdown.component.mjs +14 -13
  50. package/esm2022/lib/components/bmb-dropdown-menu/bmb-dropdown-menu.component.mjs +5 -5
  51. package/esm2022/lib/components/bmb-dropzone/bmb-dropzone.component.mjs +5 -5
  52. package/esm2022/lib/components/bmb-evaluation-rubric/bmb-evaluation-rubric.component.mjs +5 -5
  53. package/esm2022/lib/components/bmb-external-link/bmb-external-link.component.mjs +5 -5
  54. package/esm2022/lib/components/bmb-fab/bmb-fab.component.mjs +5 -5
  55. package/esm2022/lib/components/bmb-filter-card/bmb-filter-card.component.mjs +29 -17
  56. package/esm2022/lib/components/bmb-filter-card/bmb-filter-card.interface.mjs +1 -1
  57. package/esm2022/lib/components/bmb-focus-element/bmb-focus-element.component.mjs +5 -5
  58. package/esm2022/lib/components/bmb-form-validator/bmb-form-validator.component.mjs +3 -3
  59. package/esm2022/lib/components/bmb-frequent-apps-selector/bmb-frequent-apps-selector.component.mjs +5 -5
  60. package/esm2022/lib/components/bmb-grade-value/bmb-grade-value.component.mjs +5 -5
  61. package/esm2022/lib/components/bmb-grades/bmb-grades.component.mjs +10 -13
  62. package/esm2022/lib/components/bmb-header-mitec/bmb-header-mitec.component.mjs +5 -5
  63. package/esm2022/lib/components/bmb-header-mobile/bmb-header-mobile.component.mjs +5 -5
  64. package/esm2022/lib/components/bmb-hito-card/bmb-hito-card.component.mjs +16 -7
  65. package/esm2022/lib/components/bmb-hito-list/bmb-hito-list.component.mjs +5 -5
  66. package/esm2022/lib/components/bmb-home-card/bmb-home-card-header/bmb-home-card-header.component.mjs +5 -5
  67. package/esm2022/lib/components/bmb-home-card/bmb-home-card.component.mjs +5 -5
  68. package/esm2022/lib/components/bmb-home-card-chat/bmb-home-card-chat.component.mjs +8 -8
  69. package/esm2022/lib/components/bmb-home-section/bmb-home-section.component.mjs +5 -5
  70. package/esm2022/lib/components/bmb-icon/bmb-icon.component.mjs +5 -5
  71. package/esm2022/lib/components/bmb-icon-item/bmb-icon-item.component.mjs +5 -5
  72. package/esm2022/lib/components/bmb-icon-status/bmb-icon-status.component.mjs +3 -3
  73. package/esm2022/lib/components/bmb-iframe/bmb-iframe.component.mjs +3 -3
  74. package/esm2022/lib/components/bmb-iframe/bmb-iframe.pipe.mjs +3 -3
  75. package/esm2022/lib/components/bmb-image/bmb-image.component.mjs +5 -5
  76. package/esm2022/lib/components/bmb-inner-header/bmb-inner-header.component.mjs +5 -5
  77. package/esm2022/lib/components/bmb-input/bmb-input-content/bmb-input-content.component.mjs +5 -6
  78. package/esm2022/lib/components/bmb-input/bmb-input-validator/bmb-input-validator.component.mjs +5 -5
  79. package/esm2022/lib/components/bmb-input/bmb-input.component.mjs +5 -5
  80. package/esm2022/lib/components/bmb-input-phone-number/bmb-input-phone-number.component.mjs +5 -5
  81. package/esm2022/lib/components/bmb-input-tags/bmb-input-tags.component.mjs +5 -5
  82. package/esm2022/lib/components/bmb-interactive-icon/bmb-interactive-icon.component.mjs +5 -5
  83. package/esm2022/lib/components/bmb-invoice/bmb-invoice.component.mjs +5 -5
  84. package/esm2022/lib/components/bmb-item/bmb-item.component.mjs +5 -5
  85. package/esm2022/lib/components/bmb-legend/bmb-legend.component.mjs +5 -5
  86. package/esm2022/lib/components/bmb-list-group/bmb-list-group-item/bmb-list-group-item.component.mjs +5 -5
  87. package/esm2022/lib/components/bmb-list-group/bmb-list-group.component.mjs +5 -5
  88. package/esm2022/lib/components/bmb-list-group/bmb-list-group.service.mjs +3 -3
  89. package/esm2022/lib/components/bmb-list-items/bmb-list-items.component.mjs +5 -5
  90. package/esm2022/lib/components/bmb-loader/bmb-loader.component.mjs +5 -5
  91. package/esm2022/lib/components/bmb-login/bmb-login-content/bmb-login-content.component.mjs +5 -5
  92. package/esm2022/lib/components/bmb-login/bmb-login.component.mjs +3 -3
  93. package/esm2022/lib/components/bmb-login-onboarding/bmb-login-onboarding-logged/bmb-login-onboarding-logged.component.mjs +5 -5
  94. package/esm2022/lib/components/bmb-login-onboarding/bmb-login-onboarding-login/bmb-login-onboarding-login.component.mjs +5 -5
  95. package/esm2022/lib/components/bmb-login-onboarding/bmb-login-onboarding-logout/bmb-login-onboarding-logout.component.mjs +5 -5
  96. package/esm2022/lib/components/bmb-login-onboarding/bmb-login-onboarding-stepper/bmb-login-onboarding-stepper-steps/bmb-login-onboarding-stepper-step-four.component.mjs +3 -3
  97. package/esm2022/lib/components/bmb-login-onboarding/bmb-login-onboarding-stepper/bmb-login-onboarding-stepper-steps/bmb-login-onboarding-stepper-step-one.component.mjs +3 -3
  98. package/esm2022/lib/components/bmb-login-onboarding/bmb-login-onboarding-stepper/bmb-login-onboarding-stepper-steps/bmb-login-onboarding-stepper-step-three.component.mjs +3 -3
  99. package/esm2022/lib/components/bmb-login-onboarding/bmb-login-onboarding-stepper/bmb-login-onboarding-stepper-steps/bmb-login-onboarding-stepper-step-two.component.mjs +3 -3
  100. package/esm2022/lib/components/bmb-login-onboarding/bmb-login-onboarding-stepper/bmb-login-onboarding-stepper-steps/bmb-login-onboarding-stepper-step.component.mjs +5 -5
  101. package/esm2022/lib/components/bmb-login-onboarding/bmb-login-onboarding-stepper/bmb-login-onboarding-stepper.component.mjs +5 -5
  102. package/esm2022/lib/components/bmb-login-onboarding/bmb-login-onboarding.component.mjs +5 -5
  103. package/esm2022/lib/components/bmb-login-onboarding/bmb-login-onboarding.service.mjs +3 -3
  104. package/esm2022/lib/components/bmb-logo/bmb-logo.component.mjs +3 -3
  105. package/esm2022/lib/components/bmb-media-card/bmb-media-card.component.mjs +5 -5
  106. package/esm2022/lib/components/bmb-mitec-logo-animation/bmb-mitec-logo-animation.component.mjs +4 -4
  107. package/esm2022/lib/components/bmb-mobile-templates/bmb-mobile-templates.component.mjs +5 -5
  108. package/esm2022/lib/components/bmb-modal/bmb-modal.component.mjs +5 -5
  109. package/esm2022/lib/components/bmb-modal/bmb-modal.interface.mjs +1 -1
  110. package/esm2022/lib/components/bmb-modal/bmb-native-modal.component.mjs +21 -13
  111. package/esm2022/lib/components/bmb-multi-dot-paginator/bmb-multi-dot-paginator-item/bmb-multi-dot-paginator-item.component.mjs +5 -5
  112. package/esm2022/lib/components/bmb-multi-dot-paginator/bmb-multi-dot-paginator.component.mjs +5 -5
  113. package/esm2022/lib/components/bmb-navigation-bar/bmb-navigation-bar.component.mjs +3 -3
  114. package/esm2022/lib/components/bmb-notice-card/bmb-notice-card.component.mjs +5 -5
  115. package/esm2022/lib/components/bmb-notification-card/bmb-notification-card.component.mjs +5 -5
  116. package/esm2022/lib/components/bmb-overlay/bmb-overlay.component.mjs +3 -3
  117. package/esm2022/lib/components/bmb-paginator/bmb-paginator.component.mjs +5 -5
  118. package/esm2022/lib/components/bmb-portal/bmb-portal.component.mjs +8 -5
  119. package/esm2022/lib/components/bmb-portal/bmb-projected-content/bmb-projected-content.component.mjs +6 -16
  120. package/esm2022/lib/components/bmb-profile/bmb-profile.component.mjs +5 -5
  121. package/esm2022/lib/components/bmb-progress-bar/bmb-progress-bar.component.mjs +5 -5
  122. package/esm2022/lib/components/bmb-progress-cirlce/bmb-progress-circle.component.mjs +6 -6
  123. package/esm2022/lib/components/bmb-pull-wedge/bmb-pull-wedge.component.mjs +5 -5
  124. package/esm2022/lib/components/bmb-push-notification/bmb-push-notification-item/bmb-push-notification-item.component.mjs +5 -5
  125. package/esm2022/lib/components/bmb-push-notification/bmb-push-notification.component.mjs +3 -3
  126. package/esm2022/lib/components/bmb-radial/bmb-radial.component.mjs +5 -5
  127. package/esm2022/lib/components/bmb-search-input/bmb-search-input.component.mjs +10 -5
  128. package/esm2022/lib/components/bmb-server-table/bmb-server-table.component.mjs +3 -3
  129. package/esm2022/lib/components/bmb-sidebar/bmb-sidebar.component.mjs +19 -25
  130. package/esm2022/lib/components/bmb-simple-header/bmb-simple-header.component.mjs +3 -3
  131. package/esm2022/lib/components/bmb-skeleton/bmb-skeleton.component.mjs +5 -5
  132. package/esm2022/lib/components/bmb-sounds-card/bmb-sounds-card.component.mjs +5 -5
  133. package/esm2022/lib/components/bmb-stat-counter/bmb-stat-counter.component.mjs +5 -5
  134. package/esm2022/lib/components/bmb-step-progress-bar/bmb-step-progress-bar.component.mjs +21 -7
  135. package/esm2022/lib/components/bmb-student-activity-card/bmb-student-activity-card.component.mjs +5 -5
  136. package/esm2022/lib/components/bmb-student-activity-selector/bmb-student-activity-tab/bmb-student-activity-tab.component.mjs +3 -3
  137. package/esm2022/lib/components/bmb-switch/bmb-switch.component.mjs +5 -5
  138. package/esm2022/lib/components/bmb-tables/bmb-tables.component.mjs +11 -11
  139. package/esm2022/lib/components/bmb-tabs/bmb-tabs.component.mjs +5 -5
  140. package/esm2022/lib/components/bmb-tags/bmb-tags.component.mjs +5 -5
  141. package/esm2022/lib/components/bmb-text-editor/bmb-text-editor.component.mjs +5 -5
  142. package/esm2022/lib/components/bmb-text-link/bmb-text-link.component.mjs +5 -5
  143. package/esm2022/lib/components/bmb-theme/bmb-theme.component.mjs +3 -3
  144. package/esm2022/lib/components/bmb-three-cols/bmb-three-cols.component.mjs +3 -3
  145. package/esm2022/lib/components/bmb-timestream/bmb-timestream-detail/bmb-timestream-detail.component.mjs +5 -5
  146. package/esm2022/lib/components/bmb-timestream/bmb-timestream-error/bmb-timestream-error.component.mjs +5 -5
  147. package/esm2022/lib/components/bmb-timestream/bmb-timestream.component.mjs +5 -5
  148. package/esm2022/lib/components/bmb-timestream-card/bmb-timestream-card.component.mjs +4 -4
  149. package/esm2022/lib/components/bmb-title-content/bmb-title-content.component.mjs +5 -5
  150. package/esm2022/lib/components/bmb-toast/bmb-toast.component.mjs +5 -5
  151. package/esm2022/lib/components/bmb-tooltip/bmb-tooltip.component.mjs +5 -5
  152. package/esm2022/lib/components/bmb-top-bar/bmb-top-bar-item/bmb-top-bar-item.component.mjs +6 -6
  153. package/esm2022/lib/components/bmb-top-bar/bmb-top-bar-user-section/bmb-top-bar-user-section.component.mjs +45 -7
  154. package/esm2022/lib/components/bmb-top-bar/bmb-top-bar.component.mjs +11 -5
  155. package/esm2022/lib/components/bmb-totp/bmb-totp.component.mjs +5 -5
  156. package/esm2022/lib/components/bmb-user-image/bmb-user-image.component.mjs +3 -3
  157. package/esm2022/lib/components/bmb-user-profile/bmb-user-profile-content/bmb-user-profile-content.component.mjs +5 -5
  158. package/esm2022/lib/components/bmb-user-profile/bmb-user-profile.component.mjs +3 -3
  159. package/esm2022/lib/components/bmb-user-summary/bmb-user-summary-content/bmb-user-summary-content.component.mjs +19 -9
  160. package/esm2022/lib/components/bmb-user-summary/bmb-user-summary.component.mjs +5 -5
  161. package/esm2022/lib/components/bmb-value-counter/bmb-value-counter.component.mjs +5 -5
  162. package/esm2022/lib/components/bmb-web-templates/bmb-web-templates.component.mjs +5 -5
  163. package/esm2022/lib/components/bmb-wheel-menu/bmb-wheel-menu.component.mjs +5 -5
  164. package/esm2022/lib/components/utils/bmb-dropdown-content/bmb-dropdown-content.component.mjs +5 -5
  165. package/esm2022/lib/directives/bmb-accordion/bmb-accordion-control.directive.mjs +3 -3
  166. package/esm2022/lib/directives/bmb-button/button.directive.mjs +3 -3
  167. package/esm2022/lib/directives/bmb-button-group/bmb-button-group.directive.mjs +3 -3
  168. package/esm2022/lib/directives/bmb-layout/bmb-layout-item.directive.mjs +3 -3
  169. package/esm2022/lib/directives/bmb-layout/bmb-layout.directive.mjs +3 -3
  170. package/esm2022/lib/directives/bmb-layout/bmb-vertical-layout/bmb-vertical-layout-item.directive.mjs +3 -3
  171. package/esm2022/lib/directives/bmb-layout/bmb-vertical-layout/bmb-vertical-layout.directive.mjs +3 -3
  172. package/esm2022/lib/directives/bmb-layout-grid/bmb-layout-grid.directive.mjs +6 -6
  173. package/esm2022/lib/directives/utils/clickoutside.directive.mjs +3 -3
  174. package/esm2022/lib/ds-ng.component.mjs +3 -3
  175. package/esm2022/lib/ds-ng.service.mjs +3 -3
  176. package/esm2022/lib/services/calendar.service.mjs +3 -3
  177. package/esm2022/lib/services/native-modal.service.mjs +3 -3
  178. package/esm2022/lib/services/notification.service.mjs +18 -11
  179. package/esm2022/lib/services/projection.service.mjs +3 -3
  180. package/esm2022/lib/services/tabs.service.mjs +3 -3
  181. package/esm2022/lib/services/theme.service.mjs +3 -3
  182. package/esm2022/lib/services/toast.service.mjs +3 -3
  183. package/esm2022/lib/services/user/profile.service.mjs +3 -3
  184. package/esm2022/lib/types/index.mjs +1 -1
  185. package/esm2022/lib/utils/utils.mjs +6 -1
  186. package/fesm2022/ti-tecnologico-de-monterrey-oficial-ds-ng.mjs +1164 -983
  187. package/fesm2022/ti-tecnologico-de-monterrey-oficial-ds-ng.mjs.map +1 -1
  188. package/lib/components/bmb-account-statement/bmb-account-statement.component.d.ts +6 -4
  189. package/lib/components/bmb-alert-center/bmb-alert-center.component.d.ts +3 -3
  190. package/lib/components/bmb-calendar/bmb-calendar.component.d.ts +2 -0
  191. package/lib/components/bmb-card/bmb-card.component.d.ts +2 -1
  192. package/lib/components/bmb-chat-bar/bmb-chat-bar.component.d.ts +19 -18
  193. package/lib/components/bmb-container-button/bmb-container-button.component.d.ts +1 -1
  194. package/lib/components/bmb-drawer-overlay/bmb-drawer-overlay.component.d.ts +2 -0
  195. package/lib/components/bmb-filter-card/bmb-filter-card.component.d.ts +6 -5
  196. package/lib/components/bmb-filter-card/bmb-filter-card.interface.d.ts +2 -0
  197. package/lib/components/bmb-grades/bmb-grades.component.d.ts +3 -3
  198. package/lib/components/bmb-hito-card/bmb-hito-card.component.d.ts +7 -0
  199. package/lib/components/bmb-home-card-chat/bmb-home-card-chat.component.d.ts +3 -3
  200. package/lib/components/bmb-input/bmb-input-content/bmb-input-content.component.d.ts +1 -2
  201. package/lib/components/bmb-item/bmb-item.component.d.ts +1 -1
  202. package/lib/components/bmb-modal/bmb-modal.interface.d.ts +4 -1
  203. package/lib/components/bmb-modal/bmb-native-modal.component.d.ts +6 -5
  204. package/lib/components/bmb-portal/bmb-portal.component.d.ts +1 -0
  205. package/lib/components/bmb-portal/bmb-projected-content/bmb-projected-content.component.d.ts +1 -10
  206. package/lib/components/bmb-sidebar/bmb-sidebar.component.d.ts +4 -4
  207. package/lib/components/bmb-step-progress-bar/bmb-step-progress-bar.component.d.ts +10 -0
  208. package/lib/components/bmb-top-bar/bmb-top-bar-user-section/bmb-top-bar-user-section.component.d.ts +2 -0
  209. package/lib/components/bmb-top-bar/bmb-top-bar.component.d.ts +4 -1
  210. package/lib/components/bmb-user-summary/bmb-user-summary-content/bmb-user-summary-content.component.d.ts +4 -2
  211. package/lib/services/notification.service.d.ts +1 -1
  212. package/lib/types/index.d.ts +2 -1
  213. package/lib/utils/utils.d.ts +1 -0
  214. package/package.json +2 -2
  215. package/assets/images/gif/mitecLogoIntroMobile.gif +0 -0
  216. package/assets/images/gif/mitecLogoIntroWeb.gif +0 -0
  217. package/assets/images/lang-flags/mx.svg +0 -392
  218. package/assets/images/lang-flags/us.svg +0 -13
  219. package/assets/svg/info_fill.svg +0 -1
  220. package/assets/svg/info_fill_primary.svg +0 -1
  221. package/esm2022/lib/components/bmb-calendar/common/bmb-calendar-template-event-list/bmb-calendar-template-event-list.component.mjs +0 -63
  222. package/esm2022/lib/components/bmb-form-validation/bmb-form-validation.component.mjs +0 -159
  223. package/esm2022/lib/components/bmb-input/bmb-input-validation/bmb-input-validation.component.mjs +0 -162
  224. package/esm2022/lib/components/bmb-input/bmb-input-validation/bmb-input-validation.service.mjs +0 -116
  225. package/esm2022/lib/components/bmb-select/bmb-select-item/bmb-select-item.component.mjs +0 -16
  226. package/esm2022/lib/components/bmb-select/bmb-select.component.mjs +0 -55
  227. package/lib/components/bmb-calendar/common/bmb-calendar-template-event-list/bmb-calendar-template-event-list.component.d.ts +0 -17
  228. package/lib/components/bmb-form-validation/bmb-form-validation.component.d.ts +0 -34
  229. package/lib/components/bmb-input/bmb-input-validation/bmb-input-validation.component.d.ts +0 -46
  230. package/lib/components/bmb-input/bmb-input-validation/bmb-input-validation.service.d.ts +0 -16
  231. package/lib/components/bmb-select/bmb-select-item/bmb-select-item.component.d.ts +0 -6
  232. package/lib/components/bmb-select/bmb-select.component.d.ts +0 -17
@@ -1,11 +1,10 @@
1
- import { ChangeDetectionStrategy, Component, input, output, TemplateRef, ViewChild, ViewEncapsulation, } from '@angular/core';
1
+ import { ChangeDetectionStrategy, Component, input, output, signal, TemplateRef, ViewChild, ViewEncapsulation, } from '@angular/core';
2
2
  import { BmbBalanceOverviewComponent } from '../bmb-balance-overview/bmb-balance-overview.component';
3
3
  import { BmbCardComponent, BmbCardContentComponent, } from '../bmb-card/bmb-card.component';
4
4
  import { BmbProgressBarComponent } from '../bmb-progress-bar/bmb-progress-bar.component';
5
5
  import { DateTime } from 'luxon';
6
6
  import { BmbDividerComponent } from '../bmb-divider/bmb-divider.component';
7
7
  import { BmbButtonDirective } from '../../directives/bmb-button/button.directive';
8
- import { BmbModalComponent } from '../bmb-modal/bmb-modal.component';
9
8
  import { BmbRadialComponent } from '../bmb-radial/bmb-radial.component';
10
9
  import { currencyFormat } from '../../utils/currencyFormat';
11
10
  import { BmbLayoutDirective } from '../../directives/bmb-layout/bmb-layout.directive';
@@ -13,12 +12,13 @@ import { BmbLayoutItemDirective } from '../../directives/bmb-layout/bmb-layout-i
13
12
  import { BmbInputComponent } from '../bmb-input/bmb-input.component';
14
13
  import { BmbInnerHeaderComponent } from '../bmb-inner-header/bmb-inner-header.component';
15
14
  import { FormControl, FormGroup, Validators, ReactiveFormsModule, } from '@angular/forms';
15
+ import { CommonModule } from '@angular/common';
16
16
  import * as i0 from "@angular/core";
17
- import * as i1 from "@angular/material/dialog";
17
+ import * as i1 from "../../services/native-modal.service";
18
18
  import * as i2 from "@angular/forms";
19
19
  export class BmbAccountStatementComponent {
20
- constructor(matDialog) {
21
- this.matDialog = matDialog;
20
+ constructor(modalService) {
21
+ this.modalService = modalService;
22
22
  this.title = input('Estado de cuenta');
23
23
  this.progressCircleTitle = input(['Total a pagar', 'este mes']);
24
24
  this.labelPrimary = input('Cuota Mensual');
@@ -46,6 +46,7 @@ export class BmbAccountStatementComponent {
46
46
  this.customAmount = 0;
47
47
  this.isEnableCustomAmount = false;
48
48
  this.maxAmount = 0;
49
+ this.modalID = signal(null);
49
50
  this.amountForm = new FormGroup({
50
51
  amount: new FormControl(0, [Validators.required]),
51
52
  });
@@ -71,10 +72,8 @@ export class BmbAccountStatementComponent {
71
72
  subtitle: this.modalSubtitle(),
72
73
  content: this.newModal,
73
74
  size: 'large',
74
- hidePrimaryButton: true,
75
- hideSecondaryButton: true,
76
75
  };
77
- this.matDialog.open(BmbModalComponent, { data });
76
+ this.modalID.set(this.modalService.openModal(data));
78
77
  }
79
78
  getFormattedDate(date) {
80
79
  if (!date)
@@ -92,14 +91,18 @@ export class BmbAccountStatementComponent {
92
91
  handleActiveCustomAmount(event) {
93
92
  this.isEnableCustomAmount = event.value === 'modalOtherAmountInput';
94
93
  }
95
- onSubmit() {
94
+ handleSubmit() {
96
95
  if (!this.isEnableCustomAmount) {
97
96
  this.payEvent.emit(this.totalCount() - this.counter());
97
+ this.modalService.closeModal(this.modalID());
98
+ this.modalID.set(null);
98
99
  }
99
100
  else if (this.amountForm.valid) {
100
101
  const amount = Number(this.amountForm.controls['amount'].value);
101
102
  if (amount > 0 && amount <= this.maxAmount) {
102
103
  this.payEvent.emit(amount);
104
+ this.modalService.closeModal(this.modalID());
105
+ this.modalID.set(null);
103
106
  }
104
107
  else {
105
108
  this.showErrors['amount'] = true;
@@ -124,10 +127,28 @@ export class BmbAccountStatementComponent {
124
127
  getProgressPercent() {
125
128
  return (100 * this.counter()) / this.totalCount();
126
129
  }
127
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BmbAccountStatementComponent, deps: [{ token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Component }); }
128
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: BmbAccountStatementComponent, isStandalone: true, selector: "bmb-account-statement", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, progressCircleTitle: { classPropertyName: "progressCircleTitle", publicName: "progressCircleTitle", isSignal: true, isRequired: false, transformFunction: null }, labelPrimary: { classPropertyName: "labelPrimary", publicName: "labelPrimary", isSignal: true, isRequired: false, transformFunction: null }, labelSecondary: { classPropertyName: "labelSecondary", publicName: "labelSecondary", isSignal: true, isRequired: false, transformFunction: null }, totalCount: { classPropertyName: "totalCount", publicName: "totalCount", isSignal: true, isRequired: false, transformFunction: null }, counter: { classPropertyName: "counter", publicName: "counter", isSignal: true, isRequired: false, transformFunction: null }, progressTitle: { classPropertyName: "progressTitle", publicName: "progressTitle", isSignal: true, isRequired: false, transformFunction: null }, formatDates: { classPropertyName: "formatDates", publicName: "formatDates", isSignal: true, isRequired: false, transformFunction: null }, paymentDeadline: { classPropertyName: "paymentDeadline", publicName: "paymentDeadline", isSignal: true, isRequired: false, transformFunction: null }, cutOffDate: { classPropertyName: "cutOffDate", publicName: "cutOffDate", isSignal: true, isRequired: false, transformFunction: null }, paymentDeadlineLabel: { classPropertyName: "paymentDeadlineLabel", publicName: "paymentDeadlineLabel", isSignal: true, isRequired: false, transformFunction: null }, cutOffDateLabel: { classPropertyName: "cutOffDateLabel", publicName: "cutOffDateLabel", isSignal: true, isRequired: false, transformFunction: null }, payButtonLabel: { classPropertyName: "payButtonLabel", publicName: "payButtonLabel", isSignal: true, isRequired: false, transformFunction: null }, backButtonLabel: { classPropertyName: "backButtonLabel", publicName: "backButtonLabel", isSignal: true, isRequired: false, transformFunction: null }, modalTitle: { classPropertyName: "modalTitle", publicName: "modalTitle", isSignal: true, isRequired: false, transformFunction: null }, modalSubtitle: { classPropertyName: "modalSubtitle", publicName: "modalSubtitle", isSignal: true, isRequired: false, transformFunction: null }, modalRestLabel: { classPropertyName: "modalRestLabel", publicName: "modalRestLabel", isSignal: true, isRequired: false, transformFunction: null }, modalOtherAmountLabel: { classPropertyName: "modalOtherAmountLabel", publicName: "modalOtherAmountLabel", isSignal: true, isRequired: false, transformFunction: null }, modalPrimaryButtonLabel: { classPropertyName: "modalPrimaryButtonLabel", publicName: "modalPrimaryButtonLabel", isSignal: true, isRequired: false, transformFunction: null }, errorMessage: { classPropertyName: "errorMessage", publicName: "errorMessage", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { closeEvent: "closeEvent", backEvent: "backEvent", payEvent: "payEvent" }, viewQueries: [{ propertyName: "modalTemplate", first: true, predicate: ["modalTemplate"], descendants: true, read: TemplateRef }], ngImport: i0, template: "<div class=\"bmb_account-statement\">\n <bmb-inner-header\n (onHandleClose)=\"handleClose($event)\"\n [title]=\"title()\"\n [showSearch]=\"false\"\n [showClose]=\"true\"\n />\n <main class=\"bmb_account-statement-content\">\n <div class=\"bmb_account-statement-content-balance\">\n <bmb-balance-overview\n [progressCircleTitle]=\"progressCircleTitle()\"\n [labelPrimary]=\"labelPrimary()\"\n [labelSecondary]=\"labelSecondary()\"\n [progressCircleValue]=\"getFormattedAmount(totalCount() - counter())\"\n [valuePrimary]=\"getFormattedAmount(totalCount())\"\n [valueSecondary]=\"getFormattedAmount(counter())\"\n [progressCirclePercent]=\"getProgressPercent()\"\n />\n </div>\n <bmb-card>\n <bmb-card-content padding=\"none\">\n <bmb-progress-bar\n appearance=\"info\"\n type=\"container\"\n [counter]=\"counter()\"\n [totalCount]=\"totalCount()\"\n [title]=\"progressTitle()\"\n />\n </bmb-card-content>\n </bmb-card>\n <bmb-card>\n <bmb-card-content>\n <p class=\"bmb_account-statement-content-date\">\n <span>{{ cutOffDateLabel() }}</span>\n <span>{{ getFormattedDate(cutOffDate()) }}</span>\n </p>\n <bmb-divider />\n <p class=\"bmb_account-statement-content-date\">\n <span>{{ paymentDeadlineLabel() }}</span>\n <span>{{ getFormattedDate(paymentDeadline()) }}</span>\n </p>\n </bmb-card-content>\n </bmb-card>\n </main>\n <footer class=\"bmb_account-statement-footer\">\n <button\n bmbButton\n size=\"large\"\n appearance=\"secondary-outlined\"\n (click)=\"handleBack($event)\"\n type=\"button\"\n >\n {{ backButtonLabel() }}\n </button>\n <button (click)=\"handlePay()\" bmbButton size=\"large\" type=\"button\">\n {{ payButtonLabel() }}\n </button>\n </footer>\n</div>\n\n<ng-template #modalTemplate>\n <section class=\"bmb_account-statement-modal\">\n <form [formGroup]=\"amountForm\" (ngSubmit)=\"onSubmit()\">\n <bmb-progress-bar\n appearance=\"info\"\n type=\"container\"\n [counter]=\"counter()\"\n [totalCount]=\"totalCount()\"\n [title]=\"progressTitle()\"\n />\n <bmb-divider />\n <label\n class=\"bmb_account-statement-modal-label\"\n bmbLayout\n alignItems=\"center\"\n [dynamicCols]=\"true\"\n >\n <bmb-radial\n id=\"modalRestInput\"\n name=\"modalAmount\"\n [checked]=\"true\"\n (change)=\"handleActiveCustomAmount($event)\"\n value=\"modalRestInput\"\n />\n <span bmbLayoutItem [colGrow]=\"1\">\n {{ modalRestLabel() }}\n <br />\n {{ getFormattedAmount(totalCount() - counter()) }}\n </span>\n </label>\n <bmb-divider />\n <label\n class=\"bmb_account-statement-modal-label\"\n bmbLayout\n alignItems=\"center\"\n [dynamicCols]=\"true\"\n >\n <bmb-radial\n id=\"modalOtherAmountInput\"\n name=\"modalAmount\"\n (change)=\"handleActiveCustomAmount($event)\"\n value=\"modalOtherAmountInput\"\n />\n <span bmbLayoutItem [colGrow]=\"1\">\n {{ modalOtherAmountLabel() }}\n </span>\n </label>\n @if (isEnableCustomAmount) {\n <bmb-input\n type=\"number\"\n [max]=\"totalCount() - counter()\"\n [min]=\"0\"\n pattern=\"\\d*\"\n [errorMessage]=\"errorMessage()\"\n [isRequired]=\"true\"\n [control]=\"getFormControl('amount')\"\n [showError]=\"showErrors['amount']\"\n />\n }\n <footer class=\"bmb_account-statement-footer\">\n <button type=\"submit\" bmbButton size=\"large\">\n {{ modalPrimaryButtonLabel() }}\n </button>\n </footer>\n </form>\n </section>\n</ng-template>\n", styles: ["@font-face{font-family:Poppins-Thin;font-style:normal;font-weight:100;src:url(/assets/fonts/Poppins/Poppins-Thin.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Light;font-style:normal;font-weight:300;src:url(/assets/fonts/Poppins/Poppins-ExtraLight.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Regular;font-style:normal;font-weight:400;src:url(/assets/fonts/Poppins/Poppins-Regular.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Medium;font-style:normal;font-weight:500;src:url(/assets/fonts/Poppins/Poppins-Medium.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Semibold;font-style:normal;font-weight:600;src:url(/assets/fonts/Poppins/Poppins-SemiBold.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Bold;font-style:normal;font-weight:700;src:url(/assets/fonts/Poppins/Poppins-Bold.ttf) format(\"truetype\")}:root,:host{--font-display: \"Poppins-Regular\", sans-serif}.font-thin-1{font-family:Poppins-Thin,sans-serif;font-size:.625rem}.font-light-1{font-family:Poppins-Light,sans-serif;font-size:.625rem}.font-regular-1{font-family:Poppins-Regular,sans-serif;font-size:.625rem}.font-medium-1{font-family:Poppins-Medium,sans-serif;font-size:.625rem}.font-semibold-1{font-family:Poppins-Semibold,sans-serif;font-size:.625rem}.font-bold-1{font-family:Poppins-Bold,sans-serif;font-size:.625rem}.font-thin-2{font-family:Poppins-Thin,sans-serif;font-size:.6875rem}.font-light-2{font-family:Poppins-Light,sans-serif;font-size:.6875rem}.font-regular-2{font-family:Poppins-Regular,sans-serif;font-size:.6875rem}.font-medium-2{font-family:Poppins-Medium,sans-serif;font-size:.6875rem}.font-semibold-2{font-family:Poppins-Semibold,sans-serif;font-size:.6875rem}.font-bold-2{font-family:Poppins-Bold,sans-serif;font-size:.6875rem}.font-thin-3{font-family:Poppins-Thin,sans-serif;font-size:.75rem}.font-light-3{font-family:Poppins-Light,sans-serif;font-size:.75rem}.font-regular-3{font-family:Poppins-Regular,sans-serif;font-size:.75rem}.font-medium-3{font-family:Poppins-Medium,sans-serif;font-size:.75rem}.font-semibold-3{font-family:Poppins-Semibold,sans-serif;font-size:.75rem}.font-bold-3{font-family:Poppins-Bold,sans-serif;font-size:.75rem}.font-thin-4{font-family:Poppins-Thin,sans-serif;font-size:.875rem}.font-light-4{font-family:Poppins-Light,sans-serif;font-size:.875rem}.font-regular-4{font-family:Poppins-Regular,sans-serif;font-size:.875rem}.font-medium-4{font-family:Poppins-Medium,sans-serif;font-size:.875rem}.font-semibold-4{font-family:Poppins-Semibold,sans-serif;font-size:.875rem}.font-bold-4{font-family:Poppins-Bold,sans-serif;font-size:.875rem}.font-thin-4_5{font-family:Poppins-Thin,sans-serif;font-size:.9375rem}.font-light-4_5{font-family:Poppins-Light,sans-serif;font-size:.9375rem}.font-regular-4_5{font-family:Poppins-Regular,sans-serif;font-size:.9375rem}.font-medium-4_5{font-family:Poppins-Medium,sans-serif;font-size:.9375rem}.font-semibold-4_5{font-family:Poppins-Semibold,sans-serif;font-size:.9375rem}.font-bold-4_5{font-family:Poppins-Bold,sans-serif;font-size:.9375rem}.font-thin-5{font-family:Poppins-Thin,sans-serif;font-size:1rem}.font-light-5{font-family:Poppins-Light,sans-serif;font-size:1rem}.font-regular-5{font-family:Poppins-Regular,sans-serif;font-size:1rem}.font-medium-5{font-family:Poppins-Medium,sans-serif;font-size:1rem}.font-semibold-5{font-family:Poppins-Semibold,sans-serif;font-size:1rem}.font-bold-5{font-family:Poppins-Bold,sans-serif;font-size:1rem}.font-thin-6{font-family:Poppins-Thin,sans-serif;font-size:1.125rem}.font-light-6{font-family:Poppins-Light,sans-serif;font-size:1.125rem}.font-regular-6{font-family:Poppins-Regular,sans-serif;font-size:1.125rem}.font-medium-6{font-family:Poppins-Medium,sans-serif;font-size:1.125rem}.font-semibold-6{font-family:Poppins-Semibold,sans-serif;font-size:1.125rem}.font-bold-6{font-family:Poppins-Bold,sans-serif;font-size:1.125rem}.font-thin-7{font-family:Poppins-Thin,sans-serif;font-size:1.25rem}.font-light-7{font-family:Poppins-Light,sans-serif;font-size:1.25rem}.font-regular-7{font-family:Poppins-Regular,sans-serif;font-size:1.25rem}.font-medium-7{font-family:Poppins-Medium,sans-serif;font-size:1.25rem}.font-semibold-7{font-family:Poppins-Semibold,sans-serif;font-size:1.25rem}.font-bold-7{font-family:Poppins-Bold,sans-serif;font-size:1.25rem}.font-thin-8{font-family:Poppins-Thin,sans-serif;font-size:1.375rem}.font-light-8{font-family:Poppins-Light,sans-serif;font-size:1.375rem}.font-regular-8{font-family:Poppins-Regular,sans-serif;font-size:1.375rem}.font-medium-8{font-family:Poppins-Medium,sans-serif;font-size:1.375rem}.font-semibold-8{font-family:Poppins-Semibold,sans-serif;font-size:1.375rem}.font-bold-8{font-family:Poppins-Bold,sans-serif;font-size:1.375rem}.font-thin-9{font-family:Poppins-Thin,sans-serif;font-size:1.5rem}.font-light-9{font-family:Poppins-Light,sans-serif;font-size:1.5rem}.font-regular-9{font-family:Poppins-Regular,sans-serif;font-size:1.5rem}.font-medium-9{font-family:Poppins-Medium,sans-serif;font-size:1.5rem}.font-semibold-9{font-family:Poppins-Semibold,sans-serif;font-size:1.5rem}.font-bold-9{font-family:Poppins-Bold,sans-serif;font-size:1.5rem}.font-thin-10{font-family:Poppins-Thin,sans-serif;font-size:1.625rem}.font-light-10{font-family:Poppins-Light,sans-serif;font-size:1.625rem}.font-regular-10{font-family:Poppins-Regular,sans-serif;font-size:1.625rem}.font-medium-10{font-family:Poppins-Medium,sans-serif;font-size:1.625rem}.font-semibold-10{font-family:Poppins-Semibold,sans-serif;font-size:1.625rem}.font-bold-10{font-family:Poppins-Bold,sans-serif;font-size:1.625rem}.font-thin-11{font-family:Poppins-Thin,sans-serif;font-size:2.25rem}.font-light-11{font-family:Poppins-Light,sans-serif;font-size:2.25rem}.font-regular-11{font-family:Poppins-Regular,sans-serif;font-size:2.25rem}.font-medium-11{font-family:Poppins-Medium,sans-serif;font-size:2.25rem}.font-semibold-11{font-family:Poppins-Semibold,sans-serif;font-size:2.25rem}.font-bold-11{font-family:Poppins-Bold,sans-serif;font-size:2.25rem}.font-thin-12{font-family:Poppins-Thin,sans-serif;font-size:3rem}.font-light-12{font-family:Poppins-Light,sans-serif;font-size:3rem}.font-regular-12{font-family:Poppins-Regular,sans-serif;font-size:3rem}.font-medium-12{font-family:Poppins-Medium,sans-serif;font-size:3rem}.font-semibold-12{font-family:Poppins-Semibold,sans-serif;font-size:3rem}.font-bold-12{font-family:Poppins-Bold,sans-serif;font-size:3rem}.bmb_account-statement{height:100dvh;display:flex;flex-flow:column}.bmb_account-statement-content{flex:1;overflow:auto}.bmb_account-statement-content-balance{max-width:18.75rem;margin:var(--bmb-spacing-xl) auto}.bmb_account-statement-content-date{text-transform:capitalize;display:flex;justify-content:space-between;margin:0}.bmb_account-statement-footer{display:flex;gap:var(--bmb-spacing-m);padding:var(--bmb-spacing-m)}.bmb_account-statement-modal{font-family:Poppins-Medium,sans-serif;font-size:.75rem}.bmb_account-statement-modal .bmb_progress-bar-container-main{padding:0}[data-theme=dark] .bmb_account-statement-modal,.storybook-dark-theme .bmb_account-statement-modal{color:RGBA(var(--color-charade-50))}\n"], dependencies: [{ kind: "component", type: BmbBalanceOverviewComponent, selector: "bmb-balance-overview", inputs: ["progressCirclePercent", "progressCircleValue", "showProgressCircleValue", "progressCircleTitle", "showProgressCircleTitle", "showProgressCircleBackground", "labelPrimary", "valuePrimary", "labelSecondary", "valueSecondary"] }, { kind: "component", type: BmbCardComponent, selector: "bmb-card", inputs: ["borderRadius", "margin", "type", "state", "boxShadowStyle", "borderColor", "alternative"] }, { kind: "component", type: BmbCardContentComponent, selector: "bmb-card-content", inputs: ["padding", "colorBackground"] }, { kind: "component", type: BmbProgressBarComponent, selector: "bmb-progress-bar", inputs: ["type", "totalCount", "counter", "title", "appearance", "textLink", "href", "target", "textFormat"] }, { kind: "component", type: BmbDividerComponent, selector: "bmb-divider", inputs: ["type"] }, { kind: "directive", type: BmbButtonDirective, selector: "[bmbButton]", inputs: ["icon", "iconSize", "position", "case", "appearance", "size", "isToggleActive", "enableButtonToggle", "isRounded", "isMobile", "iconAlt"] }, { kind: "component", type: BmbRadialComponent, selector: "bmb-radial", inputs: ["id", "checked", "disabled", "value", "name", "label", "labelPosition", "ariaDescribedby", "ariaLabel", "ariaLabelledby", "required", "errorMessage", "helperMessage", "showError", "control", "inputId"], outputs: ["showErrorChange", "controlChange", "inputIdChange", "change", "onKeyDown"] }, { kind: "directive", type: BmbLayoutDirective, selector: "[bmbLayout]", inputs: ["gapSize", "margin", "dynamicCols", "justify", "alignItems"] }, { kind: "directive", type: BmbLayoutItemDirective, selector: "[bmbLayoutItem]", inputs: ["colSm", "colLg", "marginLeft", "marginRight", "colGrow", "isDynamicItem"] }, { kind: "component", type: BmbInputComponent, selector: "bmb-input", inputs: ["label", "type", "placeholder", "icon", "appearance", "errorMessage", "helperMessage", "disabled", "isRequired", "name", "spellcheck", "jsonFormat", "heightTextArea", "maxlength", "minlength", "pattern", "size", "max", "min", "id", "value", "autocomplete", "tooltip", "rows", "showMaxTextLength", "additionalAction", "tooltipPosition", "isClearable", "customValidation", "showError", "control"], outputs: ["showErrorChange", "controlChange", "isFocus", "isBlur", "onChange", "onKeyDown"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: BmbInnerHeaderComponent, selector: "bmb-inner-header", inputs: ["title", "placeholderSearch", "subTitle", "trailingIconPrimary", "trailingIconSecondary", "showClose", "showReturn", "showSearch"], outputs: ["onHandleTrailingPrimary", "onHandleTrailingSecondary", "onHandleBack", "onHandleClose", "searchData"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
130
+ customHandleClick() {
131
+ console.log('customHandleClick');
132
+ if (!this.isEnableCustomAmount) {
133
+ this.payEvent.emit(this.totalCount() - this.counter());
134
+ }
135
+ else if (this.amountForm.valid) {
136
+ const amount = Number(this.amountForm.controls['amount'].value);
137
+ if (amount > 0 && amount <= this.maxAmount) {
138
+ this.payEvent.emit(amount);
139
+ }
140
+ else {
141
+ this.showErrors['amount'] = true;
142
+ }
143
+ }
144
+ else {
145
+ this.showErrors['amount'] = true;
146
+ }
147
+ }
148
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BmbAccountStatementComponent, deps: [{ token: i1.BmbNativeModalService }], target: i0.ɵɵFactoryTarget.Component }); }
149
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: BmbAccountStatementComponent, isStandalone: true, selector: "bmb-account-statement", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, progressCircleTitle: { classPropertyName: "progressCircleTitle", publicName: "progressCircleTitle", isSignal: true, isRequired: false, transformFunction: null }, labelPrimary: { classPropertyName: "labelPrimary", publicName: "labelPrimary", isSignal: true, isRequired: false, transformFunction: null }, labelSecondary: { classPropertyName: "labelSecondary", publicName: "labelSecondary", isSignal: true, isRequired: false, transformFunction: null }, totalCount: { classPropertyName: "totalCount", publicName: "totalCount", isSignal: true, isRequired: false, transformFunction: null }, counter: { classPropertyName: "counter", publicName: "counter", isSignal: true, isRequired: false, transformFunction: null }, progressTitle: { classPropertyName: "progressTitle", publicName: "progressTitle", isSignal: true, isRequired: false, transformFunction: null }, formatDates: { classPropertyName: "formatDates", publicName: "formatDates", isSignal: true, isRequired: false, transformFunction: null }, paymentDeadline: { classPropertyName: "paymentDeadline", publicName: "paymentDeadline", isSignal: true, isRequired: false, transformFunction: null }, cutOffDate: { classPropertyName: "cutOffDate", publicName: "cutOffDate", isSignal: true, isRequired: false, transformFunction: null }, paymentDeadlineLabel: { classPropertyName: "paymentDeadlineLabel", publicName: "paymentDeadlineLabel", isSignal: true, isRequired: false, transformFunction: null }, cutOffDateLabel: { classPropertyName: "cutOffDateLabel", publicName: "cutOffDateLabel", isSignal: true, isRequired: false, transformFunction: null }, payButtonLabel: { classPropertyName: "payButtonLabel", publicName: "payButtonLabel", isSignal: true, isRequired: false, transformFunction: null }, backButtonLabel: { classPropertyName: "backButtonLabel", publicName: "backButtonLabel", isSignal: true, isRequired: false, transformFunction: null }, modalTitle: { classPropertyName: "modalTitle", publicName: "modalTitle", isSignal: true, isRequired: false, transformFunction: null }, modalSubtitle: { classPropertyName: "modalSubtitle", publicName: "modalSubtitle", isSignal: true, isRequired: false, transformFunction: null }, modalRestLabel: { classPropertyName: "modalRestLabel", publicName: "modalRestLabel", isSignal: true, isRequired: false, transformFunction: null }, modalOtherAmountLabel: { classPropertyName: "modalOtherAmountLabel", publicName: "modalOtherAmountLabel", isSignal: true, isRequired: false, transformFunction: null }, modalPrimaryButtonLabel: { classPropertyName: "modalPrimaryButtonLabel", publicName: "modalPrimaryButtonLabel", isSignal: true, isRequired: false, transformFunction: null }, errorMessage: { classPropertyName: "errorMessage", publicName: "errorMessage", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { closeEvent: "closeEvent", backEvent: "backEvent", payEvent: "payEvent" }, viewQueries: [{ propertyName: "modalTemplate", first: true, predicate: ["modalTemplate"], descendants: true, read: TemplateRef }], ngImport: i0, template: "<div class=\"bmb_account-statement\">\n <bmb-inner-header\n (onHandleClose)=\"handleClose($event)\"\n [title]=\"title()\"\n [showSearch]=\"false\"\n [showClose]=\"true\"\n />\n <main class=\"bmb_account-statement-content\">\n <div class=\"bmb_account-statement-content-balance\">\n <bmb-balance-overview\n [progressCircleTitle]=\"progressCircleTitle()\"\n [labelPrimary]=\"labelPrimary()\"\n [labelSecondary]=\"labelSecondary()\"\n [progressCircleValue]=\"getFormattedAmount(totalCount() - counter())\"\n [valuePrimary]=\"getFormattedAmount(totalCount())\"\n [valueSecondary]=\"getFormattedAmount(counter())\"\n [progressCirclePercent]=\"getProgressPercent()\"\n />\n </div>\n <bmb-card>\n <bmb-card-content padding=\"none\">\n <bmb-progress-bar\n appearance=\"info\"\n type=\"container\"\n [counter]=\"counter()\"\n [totalCount]=\"totalCount()\"\n [title]=\"progressTitle()\"\n />\n </bmb-card-content>\n </bmb-card>\n <bmb-card>\n <bmb-card-content>\n <p class=\"bmb_account-statement-content-date\">\n <span>{{ cutOffDateLabel() }}</span>\n <span>{{ getFormattedDate(cutOffDate()) }}</span>\n </p>\n <bmb-divider />\n <p class=\"bmb_account-statement-content-date\">\n <span>{{ paymentDeadlineLabel() }}</span>\n <span>{{ getFormattedDate(paymentDeadline()) }}</span>\n </p>\n </bmb-card-content>\n </bmb-card>\n </main>\n <footer class=\"bmb_account-statement-footer\">\n <button\n bmbButton\n size=\"large\"\n appearance=\"secondary-outlined\"\n (click)=\"handleBack($event)\"\n type=\"button\"\n >\n {{ backButtonLabel() }}\n </button>\n <button (click)=\"handlePay()\" bmbButton size=\"large\" type=\"button\">\n {{ payButtonLabel() }}\n </button>\n </footer>\n</div>\n\n<ng-template #modalTemplate>\n <section class=\"bmb_account-statement-modal\">\n <form [formGroup]=\"amountForm\" (ngSubmit)=\"handleSubmit()\">\n <bmb-progress-bar\n appearance=\"info\"\n type=\"container\"\n [counter]=\"counter()\"\n [totalCount]=\"totalCount()\"\n [title]=\"progressTitle()\"\n />\n <bmb-divider />\n <label\n class=\"bmb_account-statement-modal-label\"\n bmbLayout\n alignItems=\"center\"\n [dynamicCols]=\"true\"\n >\n <bmb-radial\n id=\"modalRestInput\"\n name=\"modalAmount\"\n [checked]=\"true\"\n (change)=\"handleActiveCustomAmount($event)\"\n value=\"modalRestInput\"\n />\n <span bmbLayoutItem [colGrow]=\"1\">\n {{ modalRestLabel() }}\n <br />\n {{ getFormattedAmount(totalCount() - counter()) }}\n </span>\n </label>\n <bmb-divider />\n <label\n class=\"bmb_account-statement-modal-label\"\n bmbLayout\n alignItems=\"center\"\n [dynamicCols]=\"true\"\n >\n <bmb-radial\n id=\"modalOtherAmountInput\"\n name=\"modalAmount\"\n (change)=\"handleActiveCustomAmount($event)\"\n value=\"modalOtherAmountInput\"\n />\n <span bmbLayoutItem [colGrow]=\"1\">\n {{ modalOtherAmountLabel() }}\n </span>\n </label>\n @if (isEnableCustomAmount) {\n <bmb-input\n type=\"number\"\n [max]=\"totalCount() - counter()\"\n [min]=\"1\"\n pattern=\"\\d*\"\n [errorMessage]=\"errorMessage()\"\n [isRequired]=\"true\"\n [control]=\"getFormControl('amount')\"\n [showError]=\"showErrors['amount']\"\n />\n }\n <footer class=\"bmb_account-statement-footer\">\n <button type=\"submit\" bmbButton size=\"large\">\n {{ modalPrimaryButtonLabel() }}\n </button>\n </footer>\n </form>\n </section>\n</ng-template>\n", styles: ["@font-face{font-family:Poppins-Light;font-style:normal;font-weight:300;src:url(/assets/fonts/Poppins/Poppins-ExtraLight.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Regular;font-style:normal;font-weight:400;src:url(/assets/fonts/Poppins/Poppins-Regular.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Bold;font-style:normal;font-weight:700;src:url(/assets/fonts/Poppins/Poppins-Bold.ttf) format(\"truetype\")}:root,:host{--font-display: \"Poppins-Regular\", sans-serif}.font-thin-1{font-family:Poppins-Thin,sans-serif;font-size:.625rem}.font-light-1{font-family:Poppins-Light,sans-serif;font-size:.625rem}.font-regular-1{font-family:Poppins-Regular,sans-serif;font-size:.625rem}.font-medium-1{font-family:Poppins-Medium,sans-serif;font-size:.625rem}.font-semibold-1{font-family:Poppins-Semibold,sans-serif;font-size:.625rem}.font-bold-1{font-family:Poppins-Bold,sans-serif;font-size:.625rem}.font-thin-2{font-family:Poppins-Thin,sans-serif;font-size:.6875rem}.font-light-2{font-family:Poppins-Light,sans-serif;font-size:.6875rem}.font-regular-2{font-family:Poppins-Regular,sans-serif;font-size:.6875rem}.font-medium-2{font-family:Poppins-Medium,sans-serif;font-size:.6875rem}.font-semibold-2{font-family:Poppins-Semibold,sans-serif;font-size:.6875rem}.font-bold-2{font-family:Poppins-Bold,sans-serif;font-size:.6875rem}.font-thin-3{font-family:Poppins-Thin,sans-serif;font-size:.75rem}.font-light-3{font-family:Poppins-Light,sans-serif;font-size:.75rem}.font-regular-3{font-family:Poppins-Regular,sans-serif;font-size:.75rem}.font-medium-3{font-family:Poppins-Medium,sans-serif;font-size:.75rem}.font-semibold-3{font-family:Poppins-Semibold,sans-serif;font-size:.75rem}.font-bold-3{font-family:Poppins-Bold,sans-serif;font-size:.75rem}.font-thin-4{font-family:Poppins-Thin,sans-serif;font-size:.875rem}.font-light-4{font-family:Poppins-Light,sans-serif;font-size:.875rem}.font-regular-4{font-family:Poppins-Regular,sans-serif;font-size:.875rem}.font-medium-4{font-family:Poppins-Medium,sans-serif;font-size:.875rem}.font-semibold-4{font-family:Poppins-Semibold,sans-serif;font-size:.875rem}.font-bold-4{font-family:Poppins-Bold,sans-serif;font-size:.875rem}.font-thin-4_5{font-family:Poppins-Thin,sans-serif;font-size:.9375rem}.font-light-4_5{font-family:Poppins-Light,sans-serif;font-size:.9375rem}.font-regular-4_5{font-family:Poppins-Regular,sans-serif;font-size:.9375rem}.font-medium-4_5{font-family:Poppins-Medium,sans-serif;font-size:.9375rem}.font-semibold-4_5{font-family:Poppins-Semibold,sans-serif;font-size:.9375rem}.font-bold-4_5{font-family:Poppins-Bold,sans-serif;font-size:.9375rem}.font-thin-5{font-family:Poppins-Thin,sans-serif;font-size:1rem}.font-light-5{font-family:Poppins-Light,sans-serif;font-size:1rem}.font-regular-5{font-family:Poppins-Regular,sans-serif;font-size:1rem}.font-medium-5{font-family:Poppins-Medium,sans-serif;font-size:1rem}.font-semibold-5{font-family:Poppins-Semibold,sans-serif;font-size:1rem}.font-bold-5{font-family:Poppins-Bold,sans-serif;font-size:1rem}.font-thin-6{font-family:Poppins-Thin,sans-serif;font-size:1.125rem}.font-light-6{font-family:Poppins-Light,sans-serif;font-size:1.125rem}.font-regular-6{font-family:Poppins-Regular,sans-serif;font-size:1.125rem}.font-medium-6{font-family:Poppins-Medium,sans-serif;font-size:1.125rem}.font-semibold-6{font-family:Poppins-Semibold,sans-serif;font-size:1.125rem}.font-bold-6{font-family:Poppins-Bold,sans-serif;font-size:1.125rem}.font-thin-7{font-family:Poppins-Thin,sans-serif;font-size:1.25rem}.font-light-7{font-family:Poppins-Light,sans-serif;font-size:1.25rem}.font-regular-7{font-family:Poppins-Regular,sans-serif;font-size:1.25rem}.font-medium-7{font-family:Poppins-Medium,sans-serif;font-size:1.25rem}.font-semibold-7{font-family:Poppins-Semibold,sans-serif;font-size:1.25rem}.font-bold-7{font-family:Poppins-Bold,sans-serif;font-size:1.25rem}.font-thin-8{font-family:Poppins-Thin,sans-serif;font-size:1.375rem}.font-light-8{font-family:Poppins-Light,sans-serif;font-size:1.375rem}.font-regular-8{font-family:Poppins-Regular,sans-serif;font-size:1.375rem}.font-medium-8{font-family:Poppins-Medium,sans-serif;font-size:1.375rem}.font-semibold-8{font-family:Poppins-Semibold,sans-serif;font-size:1.375rem}.font-bold-8{font-family:Poppins-Bold,sans-serif;font-size:1.375rem}.font-thin-9{font-family:Poppins-Thin,sans-serif;font-size:1.5rem}.font-light-9{font-family:Poppins-Light,sans-serif;font-size:1.5rem}.font-regular-9{font-family:Poppins-Regular,sans-serif;font-size:1.5rem}.font-medium-9{font-family:Poppins-Medium,sans-serif;font-size:1.5rem}.font-semibold-9{font-family:Poppins-Semibold,sans-serif;font-size:1.5rem}.font-bold-9{font-family:Poppins-Bold,sans-serif;font-size:1.5rem}.font-thin-10{font-family:Poppins-Thin,sans-serif;font-size:1.625rem}.font-light-10{font-family:Poppins-Light,sans-serif;font-size:1.625rem}.font-regular-10{font-family:Poppins-Regular,sans-serif;font-size:1.625rem}.font-medium-10{font-family:Poppins-Medium,sans-serif;font-size:1.625rem}.font-semibold-10{font-family:Poppins-Semibold,sans-serif;font-size:1.625rem}.font-bold-10{font-family:Poppins-Bold,sans-serif;font-size:1.625rem}.font-thin-11{font-family:Poppins-Thin,sans-serif;font-size:2.25rem}.font-light-11{font-family:Poppins-Light,sans-serif;font-size:2.25rem}.font-regular-11{font-family:Poppins-Regular,sans-serif;font-size:2.25rem}.font-medium-11{font-family:Poppins-Medium,sans-serif;font-size:2.25rem}.font-semibold-11{font-family:Poppins-Semibold,sans-serif;font-size:2.25rem}.font-bold-11{font-family:Poppins-Bold,sans-serif;font-size:2.25rem}.font-thin-12{font-family:Poppins-Thin,sans-serif;font-size:3rem}.font-light-12{font-family:Poppins-Light,sans-serif;font-size:3rem}.font-regular-12{font-family:Poppins-Regular,sans-serif;font-size:3rem}.font-medium-12{font-family:Poppins-Medium,sans-serif;font-size:3rem}.font-semibold-12{font-family:Poppins-Semibold,sans-serif;font-size:3rem}.font-bold-12{font-family:Poppins-Bold,sans-serif;font-size:3rem}.bmb_account-statement{height:100dvh;display:flex;flex-flow:column}.bmb_account-statement-content{flex:1;overflow:auto}.bmb_account-statement-content-balance{max-width:18.75rem;margin:var(--bmb-spacing-xl) auto}.bmb_account-statement-content-date{text-transform:capitalize;display:flex;justify-content:space-between;margin:0}.bmb_account-statement-footer{display:flex;gap:var(--bmb-spacing-m);padding:var(--bmb-spacing-m)}.bmb_account-statement-modal{font-family:Poppins-Medium,sans-serif;font-size:.75rem}.bmb_account-statement-modal .bmb_progress-bar-container-main{padding:0}[data-theme=dark] .bmb_account-statement-modal,.storybook-dark-theme .bmb_account-statement-modal{color:RGBA(var(--color-charade-50))}\n"], dependencies: [{ kind: "component", type: BmbBalanceOverviewComponent, selector: "bmb-balance-overview", inputs: ["progressCirclePercent", "progressCircleValue", "showProgressCircleValue", "progressCircleTitle", "showProgressCircleTitle", "showProgressCircleBackground", "labelPrimary", "valuePrimary", "labelSecondary", "valueSecondary"] }, { kind: "component", type: BmbCardComponent, selector: "bmb-card", inputs: ["borderRadius", "margin", "type", "state", "boxShadowStyle", "borderColor", "alternative"] }, { kind: "component", type: BmbCardContentComponent, selector: "bmb-card-content", inputs: ["padding", "colorBackground", "setBorderRadius"] }, { kind: "component", type: BmbProgressBarComponent, selector: "bmb-progress-bar", inputs: ["type", "totalCount", "counter", "title", "appearance", "textLink", "href", "target", "textFormat"] }, { kind: "component", type: BmbDividerComponent, selector: "bmb-divider", inputs: ["type"] }, { kind: "directive", type: BmbButtonDirective, selector: "[bmbButton]", inputs: ["icon", "iconSize", "position", "case", "appearance", "size", "isToggleActive", "enableButtonToggle", "isRounded", "isMobile", "iconAlt"] }, { kind: "component", type: BmbRadialComponent, selector: "bmb-radial", inputs: ["id", "checked", "disabled", "value", "name", "label", "labelPosition", "ariaDescribedby", "ariaLabel", "ariaLabelledby", "required", "errorMessage", "helperMessage", "showError", "control", "inputId"], outputs: ["showErrorChange", "controlChange", "inputIdChange", "change", "onKeyDown"] }, { kind: "directive", type: BmbLayoutDirective, selector: "[bmbLayout]", inputs: ["gapSize", "margin", "dynamicCols", "justify", "alignItems"] }, { kind: "directive", type: BmbLayoutItemDirective, selector: "[bmbLayoutItem]", inputs: ["colSm", "colLg", "marginLeft", "marginRight", "colGrow", "isDynamicItem"] }, { kind: "component", type: BmbInputComponent, selector: "bmb-input", inputs: ["label", "type", "placeholder", "icon", "appearance", "errorMessage", "helperMessage", "disabled", "isRequired", "name", "spellcheck", "jsonFormat", "heightTextArea", "maxlength", "minlength", "pattern", "size", "max", "min", "id", "value", "autocomplete", "tooltip", "rows", "showMaxTextLength", "additionalAction", "tooltipPosition", "isClearable", "customValidation", "showError", "control"], outputs: ["showErrorChange", "controlChange", "isFocus", "isBlur", "onChange", "onKeyDown"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: BmbInnerHeaderComponent, selector: "bmb-inner-header", inputs: ["title", "placeholderSearch", "subTitle", "trailingIconPrimary", "trailingIconSecondary", "showClose", "showReturn", "showSearch"], outputs: ["onHandleTrailingPrimary", "onHandleTrailingSecondary", "onHandleBack", "onHandleClose", "searchData"] }, { kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
129
150
  }
130
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BmbAccountStatementComponent, decorators: [{
151
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BmbAccountStatementComponent, decorators: [{
131
152
  type: Component,
132
153
  args: [{ selector: 'bmb-account-statement', standalone: true, imports: [
133
154
  BmbBalanceOverviewComponent,
@@ -142,9 +163,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
142
163
  BmbInputComponent,
143
164
  ReactiveFormsModule,
144
165
  BmbInnerHeaderComponent,
145
- ], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"bmb_account-statement\">\n <bmb-inner-header\n (onHandleClose)=\"handleClose($event)\"\n [title]=\"title()\"\n [showSearch]=\"false\"\n [showClose]=\"true\"\n />\n <main class=\"bmb_account-statement-content\">\n <div class=\"bmb_account-statement-content-balance\">\n <bmb-balance-overview\n [progressCircleTitle]=\"progressCircleTitle()\"\n [labelPrimary]=\"labelPrimary()\"\n [labelSecondary]=\"labelSecondary()\"\n [progressCircleValue]=\"getFormattedAmount(totalCount() - counter())\"\n [valuePrimary]=\"getFormattedAmount(totalCount())\"\n [valueSecondary]=\"getFormattedAmount(counter())\"\n [progressCirclePercent]=\"getProgressPercent()\"\n />\n </div>\n <bmb-card>\n <bmb-card-content padding=\"none\">\n <bmb-progress-bar\n appearance=\"info\"\n type=\"container\"\n [counter]=\"counter()\"\n [totalCount]=\"totalCount()\"\n [title]=\"progressTitle()\"\n />\n </bmb-card-content>\n </bmb-card>\n <bmb-card>\n <bmb-card-content>\n <p class=\"bmb_account-statement-content-date\">\n <span>{{ cutOffDateLabel() }}</span>\n <span>{{ getFormattedDate(cutOffDate()) }}</span>\n </p>\n <bmb-divider />\n <p class=\"bmb_account-statement-content-date\">\n <span>{{ paymentDeadlineLabel() }}</span>\n <span>{{ getFormattedDate(paymentDeadline()) }}</span>\n </p>\n </bmb-card-content>\n </bmb-card>\n </main>\n <footer class=\"bmb_account-statement-footer\">\n <button\n bmbButton\n size=\"large\"\n appearance=\"secondary-outlined\"\n (click)=\"handleBack($event)\"\n type=\"button\"\n >\n {{ backButtonLabel() }}\n </button>\n <button (click)=\"handlePay()\" bmbButton size=\"large\" type=\"button\">\n {{ payButtonLabel() }}\n </button>\n </footer>\n</div>\n\n<ng-template #modalTemplate>\n <section class=\"bmb_account-statement-modal\">\n <form [formGroup]=\"amountForm\" (ngSubmit)=\"onSubmit()\">\n <bmb-progress-bar\n appearance=\"info\"\n type=\"container\"\n [counter]=\"counter()\"\n [totalCount]=\"totalCount()\"\n [title]=\"progressTitle()\"\n />\n <bmb-divider />\n <label\n class=\"bmb_account-statement-modal-label\"\n bmbLayout\n alignItems=\"center\"\n [dynamicCols]=\"true\"\n >\n <bmb-radial\n id=\"modalRestInput\"\n name=\"modalAmount\"\n [checked]=\"true\"\n (change)=\"handleActiveCustomAmount($event)\"\n value=\"modalRestInput\"\n />\n <span bmbLayoutItem [colGrow]=\"1\">\n {{ modalRestLabel() }}\n <br />\n {{ getFormattedAmount(totalCount() - counter()) }}\n </span>\n </label>\n <bmb-divider />\n <label\n class=\"bmb_account-statement-modal-label\"\n bmbLayout\n alignItems=\"center\"\n [dynamicCols]=\"true\"\n >\n <bmb-radial\n id=\"modalOtherAmountInput\"\n name=\"modalAmount\"\n (change)=\"handleActiveCustomAmount($event)\"\n value=\"modalOtherAmountInput\"\n />\n <span bmbLayoutItem [colGrow]=\"1\">\n {{ modalOtherAmountLabel() }}\n </span>\n </label>\n @if (isEnableCustomAmount) {\n <bmb-input\n type=\"number\"\n [max]=\"totalCount() - counter()\"\n [min]=\"0\"\n pattern=\"\\d*\"\n [errorMessage]=\"errorMessage()\"\n [isRequired]=\"true\"\n [control]=\"getFormControl('amount')\"\n [showError]=\"showErrors['amount']\"\n />\n }\n <footer class=\"bmb_account-statement-footer\">\n <button type=\"submit\" bmbButton size=\"large\">\n {{ modalPrimaryButtonLabel() }}\n </button>\n </footer>\n </form>\n </section>\n</ng-template>\n", styles: ["@font-face{font-family:Poppins-Thin;font-style:normal;font-weight:100;src:url(/assets/fonts/Poppins/Poppins-Thin.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Light;font-style:normal;font-weight:300;src:url(/assets/fonts/Poppins/Poppins-ExtraLight.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Regular;font-style:normal;font-weight:400;src:url(/assets/fonts/Poppins/Poppins-Regular.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Medium;font-style:normal;font-weight:500;src:url(/assets/fonts/Poppins/Poppins-Medium.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Semibold;font-style:normal;font-weight:600;src:url(/assets/fonts/Poppins/Poppins-SemiBold.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Bold;font-style:normal;font-weight:700;src:url(/assets/fonts/Poppins/Poppins-Bold.ttf) format(\"truetype\")}:root,:host{--font-display: \"Poppins-Regular\", sans-serif}.font-thin-1{font-family:Poppins-Thin,sans-serif;font-size:.625rem}.font-light-1{font-family:Poppins-Light,sans-serif;font-size:.625rem}.font-regular-1{font-family:Poppins-Regular,sans-serif;font-size:.625rem}.font-medium-1{font-family:Poppins-Medium,sans-serif;font-size:.625rem}.font-semibold-1{font-family:Poppins-Semibold,sans-serif;font-size:.625rem}.font-bold-1{font-family:Poppins-Bold,sans-serif;font-size:.625rem}.font-thin-2{font-family:Poppins-Thin,sans-serif;font-size:.6875rem}.font-light-2{font-family:Poppins-Light,sans-serif;font-size:.6875rem}.font-regular-2{font-family:Poppins-Regular,sans-serif;font-size:.6875rem}.font-medium-2{font-family:Poppins-Medium,sans-serif;font-size:.6875rem}.font-semibold-2{font-family:Poppins-Semibold,sans-serif;font-size:.6875rem}.font-bold-2{font-family:Poppins-Bold,sans-serif;font-size:.6875rem}.font-thin-3{font-family:Poppins-Thin,sans-serif;font-size:.75rem}.font-light-3{font-family:Poppins-Light,sans-serif;font-size:.75rem}.font-regular-3{font-family:Poppins-Regular,sans-serif;font-size:.75rem}.font-medium-3{font-family:Poppins-Medium,sans-serif;font-size:.75rem}.font-semibold-3{font-family:Poppins-Semibold,sans-serif;font-size:.75rem}.font-bold-3{font-family:Poppins-Bold,sans-serif;font-size:.75rem}.font-thin-4{font-family:Poppins-Thin,sans-serif;font-size:.875rem}.font-light-4{font-family:Poppins-Light,sans-serif;font-size:.875rem}.font-regular-4{font-family:Poppins-Regular,sans-serif;font-size:.875rem}.font-medium-4{font-family:Poppins-Medium,sans-serif;font-size:.875rem}.font-semibold-4{font-family:Poppins-Semibold,sans-serif;font-size:.875rem}.font-bold-4{font-family:Poppins-Bold,sans-serif;font-size:.875rem}.font-thin-4_5{font-family:Poppins-Thin,sans-serif;font-size:.9375rem}.font-light-4_5{font-family:Poppins-Light,sans-serif;font-size:.9375rem}.font-regular-4_5{font-family:Poppins-Regular,sans-serif;font-size:.9375rem}.font-medium-4_5{font-family:Poppins-Medium,sans-serif;font-size:.9375rem}.font-semibold-4_5{font-family:Poppins-Semibold,sans-serif;font-size:.9375rem}.font-bold-4_5{font-family:Poppins-Bold,sans-serif;font-size:.9375rem}.font-thin-5{font-family:Poppins-Thin,sans-serif;font-size:1rem}.font-light-5{font-family:Poppins-Light,sans-serif;font-size:1rem}.font-regular-5{font-family:Poppins-Regular,sans-serif;font-size:1rem}.font-medium-5{font-family:Poppins-Medium,sans-serif;font-size:1rem}.font-semibold-5{font-family:Poppins-Semibold,sans-serif;font-size:1rem}.font-bold-5{font-family:Poppins-Bold,sans-serif;font-size:1rem}.font-thin-6{font-family:Poppins-Thin,sans-serif;font-size:1.125rem}.font-light-6{font-family:Poppins-Light,sans-serif;font-size:1.125rem}.font-regular-6{font-family:Poppins-Regular,sans-serif;font-size:1.125rem}.font-medium-6{font-family:Poppins-Medium,sans-serif;font-size:1.125rem}.font-semibold-6{font-family:Poppins-Semibold,sans-serif;font-size:1.125rem}.font-bold-6{font-family:Poppins-Bold,sans-serif;font-size:1.125rem}.font-thin-7{font-family:Poppins-Thin,sans-serif;font-size:1.25rem}.font-light-7{font-family:Poppins-Light,sans-serif;font-size:1.25rem}.font-regular-7{font-family:Poppins-Regular,sans-serif;font-size:1.25rem}.font-medium-7{font-family:Poppins-Medium,sans-serif;font-size:1.25rem}.font-semibold-7{font-family:Poppins-Semibold,sans-serif;font-size:1.25rem}.font-bold-7{font-family:Poppins-Bold,sans-serif;font-size:1.25rem}.font-thin-8{font-family:Poppins-Thin,sans-serif;font-size:1.375rem}.font-light-8{font-family:Poppins-Light,sans-serif;font-size:1.375rem}.font-regular-8{font-family:Poppins-Regular,sans-serif;font-size:1.375rem}.font-medium-8{font-family:Poppins-Medium,sans-serif;font-size:1.375rem}.font-semibold-8{font-family:Poppins-Semibold,sans-serif;font-size:1.375rem}.font-bold-8{font-family:Poppins-Bold,sans-serif;font-size:1.375rem}.font-thin-9{font-family:Poppins-Thin,sans-serif;font-size:1.5rem}.font-light-9{font-family:Poppins-Light,sans-serif;font-size:1.5rem}.font-regular-9{font-family:Poppins-Regular,sans-serif;font-size:1.5rem}.font-medium-9{font-family:Poppins-Medium,sans-serif;font-size:1.5rem}.font-semibold-9{font-family:Poppins-Semibold,sans-serif;font-size:1.5rem}.font-bold-9{font-family:Poppins-Bold,sans-serif;font-size:1.5rem}.font-thin-10{font-family:Poppins-Thin,sans-serif;font-size:1.625rem}.font-light-10{font-family:Poppins-Light,sans-serif;font-size:1.625rem}.font-regular-10{font-family:Poppins-Regular,sans-serif;font-size:1.625rem}.font-medium-10{font-family:Poppins-Medium,sans-serif;font-size:1.625rem}.font-semibold-10{font-family:Poppins-Semibold,sans-serif;font-size:1.625rem}.font-bold-10{font-family:Poppins-Bold,sans-serif;font-size:1.625rem}.font-thin-11{font-family:Poppins-Thin,sans-serif;font-size:2.25rem}.font-light-11{font-family:Poppins-Light,sans-serif;font-size:2.25rem}.font-regular-11{font-family:Poppins-Regular,sans-serif;font-size:2.25rem}.font-medium-11{font-family:Poppins-Medium,sans-serif;font-size:2.25rem}.font-semibold-11{font-family:Poppins-Semibold,sans-serif;font-size:2.25rem}.font-bold-11{font-family:Poppins-Bold,sans-serif;font-size:2.25rem}.font-thin-12{font-family:Poppins-Thin,sans-serif;font-size:3rem}.font-light-12{font-family:Poppins-Light,sans-serif;font-size:3rem}.font-regular-12{font-family:Poppins-Regular,sans-serif;font-size:3rem}.font-medium-12{font-family:Poppins-Medium,sans-serif;font-size:3rem}.font-semibold-12{font-family:Poppins-Semibold,sans-serif;font-size:3rem}.font-bold-12{font-family:Poppins-Bold,sans-serif;font-size:3rem}.bmb_account-statement{height:100dvh;display:flex;flex-flow:column}.bmb_account-statement-content{flex:1;overflow:auto}.bmb_account-statement-content-balance{max-width:18.75rem;margin:var(--bmb-spacing-xl) auto}.bmb_account-statement-content-date{text-transform:capitalize;display:flex;justify-content:space-between;margin:0}.bmb_account-statement-footer{display:flex;gap:var(--bmb-spacing-m);padding:var(--bmb-spacing-m)}.bmb_account-statement-modal{font-family:Poppins-Medium,sans-serif;font-size:.75rem}.bmb_account-statement-modal .bmb_progress-bar-container-main{padding:0}[data-theme=dark] .bmb_account-statement-modal,.storybook-dark-theme .bmb_account-statement-modal{color:RGBA(var(--color-charade-50))}\n"] }]
146
- }], ctorParameters: () => [{ type: i1.MatDialog }], propDecorators: { modalTemplate: [{
166
+ CommonModule,
167
+ ], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"bmb_account-statement\">\n <bmb-inner-header\n (onHandleClose)=\"handleClose($event)\"\n [title]=\"title()\"\n [showSearch]=\"false\"\n [showClose]=\"true\"\n />\n <main class=\"bmb_account-statement-content\">\n <div class=\"bmb_account-statement-content-balance\">\n <bmb-balance-overview\n [progressCircleTitle]=\"progressCircleTitle()\"\n [labelPrimary]=\"labelPrimary()\"\n [labelSecondary]=\"labelSecondary()\"\n [progressCircleValue]=\"getFormattedAmount(totalCount() - counter())\"\n [valuePrimary]=\"getFormattedAmount(totalCount())\"\n [valueSecondary]=\"getFormattedAmount(counter())\"\n [progressCirclePercent]=\"getProgressPercent()\"\n />\n </div>\n <bmb-card>\n <bmb-card-content padding=\"none\">\n <bmb-progress-bar\n appearance=\"info\"\n type=\"container\"\n [counter]=\"counter()\"\n [totalCount]=\"totalCount()\"\n [title]=\"progressTitle()\"\n />\n </bmb-card-content>\n </bmb-card>\n <bmb-card>\n <bmb-card-content>\n <p class=\"bmb_account-statement-content-date\">\n <span>{{ cutOffDateLabel() }}</span>\n <span>{{ getFormattedDate(cutOffDate()) }}</span>\n </p>\n <bmb-divider />\n <p class=\"bmb_account-statement-content-date\">\n <span>{{ paymentDeadlineLabel() }}</span>\n <span>{{ getFormattedDate(paymentDeadline()) }}</span>\n </p>\n </bmb-card-content>\n </bmb-card>\n </main>\n <footer class=\"bmb_account-statement-footer\">\n <button\n bmbButton\n size=\"large\"\n appearance=\"secondary-outlined\"\n (click)=\"handleBack($event)\"\n type=\"button\"\n >\n {{ backButtonLabel() }}\n </button>\n <button (click)=\"handlePay()\" bmbButton size=\"large\" type=\"button\">\n {{ payButtonLabel() }}\n </button>\n </footer>\n</div>\n\n<ng-template #modalTemplate>\n <section class=\"bmb_account-statement-modal\">\n <form [formGroup]=\"amountForm\" (ngSubmit)=\"handleSubmit()\">\n <bmb-progress-bar\n appearance=\"info\"\n type=\"container\"\n [counter]=\"counter()\"\n [totalCount]=\"totalCount()\"\n [title]=\"progressTitle()\"\n />\n <bmb-divider />\n <label\n class=\"bmb_account-statement-modal-label\"\n bmbLayout\n alignItems=\"center\"\n [dynamicCols]=\"true\"\n >\n <bmb-radial\n id=\"modalRestInput\"\n name=\"modalAmount\"\n [checked]=\"true\"\n (change)=\"handleActiveCustomAmount($event)\"\n value=\"modalRestInput\"\n />\n <span bmbLayoutItem [colGrow]=\"1\">\n {{ modalRestLabel() }}\n <br />\n {{ getFormattedAmount(totalCount() - counter()) }}\n </span>\n </label>\n <bmb-divider />\n <label\n class=\"bmb_account-statement-modal-label\"\n bmbLayout\n alignItems=\"center\"\n [dynamicCols]=\"true\"\n >\n <bmb-radial\n id=\"modalOtherAmountInput\"\n name=\"modalAmount\"\n (change)=\"handleActiveCustomAmount($event)\"\n value=\"modalOtherAmountInput\"\n />\n <span bmbLayoutItem [colGrow]=\"1\">\n {{ modalOtherAmountLabel() }}\n </span>\n </label>\n @if (isEnableCustomAmount) {\n <bmb-input\n type=\"number\"\n [max]=\"totalCount() - counter()\"\n [min]=\"1\"\n pattern=\"\\d*\"\n [errorMessage]=\"errorMessage()\"\n [isRequired]=\"true\"\n [control]=\"getFormControl('amount')\"\n [showError]=\"showErrors['amount']\"\n />\n }\n <footer class=\"bmb_account-statement-footer\">\n <button type=\"submit\" bmbButton size=\"large\">\n {{ modalPrimaryButtonLabel() }}\n </button>\n </footer>\n </form>\n </section>\n</ng-template>\n", styles: ["@font-face{font-family:Poppins-Light;font-style:normal;font-weight:300;src:url(/assets/fonts/Poppins/Poppins-ExtraLight.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Regular;font-style:normal;font-weight:400;src:url(/assets/fonts/Poppins/Poppins-Regular.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Bold;font-style:normal;font-weight:700;src:url(/assets/fonts/Poppins/Poppins-Bold.ttf) format(\"truetype\")}:root,:host{--font-display: \"Poppins-Regular\", sans-serif}.font-thin-1{font-family:Poppins-Thin,sans-serif;font-size:.625rem}.font-light-1{font-family:Poppins-Light,sans-serif;font-size:.625rem}.font-regular-1{font-family:Poppins-Regular,sans-serif;font-size:.625rem}.font-medium-1{font-family:Poppins-Medium,sans-serif;font-size:.625rem}.font-semibold-1{font-family:Poppins-Semibold,sans-serif;font-size:.625rem}.font-bold-1{font-family:Poppins-Bold,sans-serif;font-size:.625rem}.font-thin-2{font-family:Poppins-Thin,sans-serif;font-size:.6875rem}.font-light-2{font-family:Poppins-Light,sans-serif;font-size:.6875rem}.font-regular-2{font-family:Poppins-Regular,sans-serif;font-size:.6875rem}.font-medium-2{font-family:Poppins-Medium,sans-serif;font-size:.6875rem}.font-semibold-2{font-family:Poppins-Semibold,sans-serif;font-size:.6875rem}.font-bold-2{font-family:Poppins-Bold,sans-serif;font-size:.6875rem}.font-thin-3{font-family:Poppins-Thin,sans-serif;font-size:.75rem}.font-light-3{font-family:Poppins-Light,sans-serif;font-size:.75rem}.font-regular-3{font-family:Poppins-Regular,sans-serif;font-size:.75rem}.font-medium-3{font-family:Poppins-Medium,sans-serif;font-size:.75rem}.font-semibold-3{font-family:Poppins-Semibold,sans-serif;font-size:.75rem}.font-bold-3{font-family:Poppins-Bold,sans-serif;font-size:.75rem}.font-thin-4{font-family:Poppins-Thin,sans-serif;font-size:.875rem}.font-light-4{font-family:Poppins-Light,sans-serif;font-size:.875rem}.font-regular-4{font-family:Poppins-Regular,sans-serif;font-size:.875rem}.font-medium-4{font-family:Poppins-Medium,sans-serif;font-size:.875rem}.font-semibold-4{font-family:Poppins-Semibold,sans-serif;font-size:.875rem}.font-bold-4{font-family:Poppins-Bold,sans-serif;font-size:.875rem}.font-thin-4_5{font-family:Poppins-Thin,sans-serif;font-size:.9375rem}.font-light-4_5{font-family:Poppins-Light,sans-serif;font-size:.9375rem}.font-regular-4_5{font-family:Poppins-Regular,sans-serif;font-size:.9375rem}.font-medium-4_5{font-family:Poppins-Medium,sans-serif;font-size:.9375rem}.font-semibold-4_5{font-family:Poppins-Semibold,sans-serif;font-size:.9375rem}.font-bold-4_5{font-family:Poppins-Bold,sans-serif;font-size:.9375rem}.font-thin-5{font-family:Poppins-Thin,sans-serif;font-size:1rem}.font-light-5{font-family:Poppins-Light,sans-serif;font-size:1rem}.font-regular-5{font-family:Poppins-Regular,sans-serif;font-size:1rem}.font-medium-5{font-family:Poppins-Medium,sans-serif;font-size:1rem}.font-semibold-5{font-family:Poppins-Semibold,sans-serif;font-size:1rem}.font-bold-5{font-family:Poppins-Bold,sans-serif;font-size:1rem}.font-thin-6{font-family:Poppins-Thin,sans-serif;font-size:1.125rem}.font-light-6{font-family:Poppins-Light,sans-serif;font-size:1.125rem}.font-regular-6{font-family:Poppins-Regular,sans-serif;font-size:1.125rem}.font-medium-6{font-family:Poppins-Medium,sans-serif;font-size:1.125rem}.font-semibold-6{font-family:Poppins-Semibold,sans-serif;font-size:1.125rem}.font-bold-6{font-family:Poppins-Bold,sans-serif;font-size:1.125rem}.font-thin-7{font-family:Poppins-Thin,sans-serif;font-size:1.25rem}.font-light-7{font-family:Poppins-Light,sans-serif;font-size:1.25rem}.font-regular-7{font-family:Poppins-Regular,sans-serif;font-size:1.25rem}.font-medium-7{font-family:Poppins-Medium,sans-serif;font-size:1.25rem}.font-semibold-7{font-family:Poppins-Semibold,sans-serif;font-size:1.25rem}.font-bold-7{font-family:Poppins-Bold,sans-serif;font-size:1.25rem}.font-thin-8{font-family:Poppins-Thin,sans-serif;font-size:1.375rem}.font-light-8{font-family:Poppins-Light,sans-serif;font-size:1.375rem}.font-regular-8{font-family:Poppins-Regular,sans-serif;font-size:1.375rem}.font-medium-8{font-family:Poppins-Medium,sans-serif;font-size:1.375rem}.font-semibold-8{font-family:Poppins-Semibold,sans-serif;font-size:1.375rem}.font-bold-8{font-family:Poppins-Bold,sans-serif;font-size:1.375rem}.font-thin-9{font-family:Poppins-Thin,sans-serif;font-size:1.5rem}.font-light-9{font-family:Poppins-Light,sans-serif;font-size:1.5rem}.font-regular-9{font-family:Poppins-Regular,sans-serif;font-size:1.5rem}.font-medium-9{font-family:Poppins-Medium,sans-serif;font-size:1.5rem}.font-semibold-9{font-family:Poppins-Semibold,sans-serif;font-size:1.5rem}.font-bold-9{font-family:Poppins-Bold,sans-serif;font-size:1.5rem}.font-thin-10{font-family:Poppins-Thin,sans-serif;font-size:1.625rem}.font-light-10{font-family:Poppins-Light,sans-serif;font-size:1.625rem}.font-regular-10{font-family:Poppins-Regular,sans-serif;font-size:1.625rem}.font-medium-10{font-family:Poppins-Medium,sans-serif;font-size:1.625rem}.font-semibold-10{font-family:Poppins-Semibold,sans-serif;font-size:1.625rem}.font-bold-10{font-family:Poppins-Bold,sans-serif;font-size:1.625rem}.font-thin-11{font-family:Poppins-Thin,sans-serif;font-size:2.25rem}.font-light-11{font-family:Poppins-Light,sans-serif;font-size:2.25rem}.font-regular-11{font-family:Poppins-Regular,sans-serif;font-size:2.25rem}.font-medium-11{font-family:Poppins-Medium,sans-serif;font-size:2.25rem}.font-semibold-11{font-family:Poppins-Semibold,sans-serif;font-size:2.25rem}.font-bold-11{font-family:Poppins-Bold,sans-serif;font-size:2.25rem}.font-thin-12{font-family:Poppins-Thin,sans-serif;font-size:3rem}.font-light-12{font-family:Poppins-Light,sans-serif;font-size:3rem}.font-regular-12{font-family:Poppins-Regular,sans-serif;font-size:3rem}.font-medium-12{font-family:Poppins-Medium,sans-serif;font-size:3rem}.font-semibold-12{font-family:Poppins-Semibold,sans-serif;font-size:3rem}.font-bold-12{font-family:Poppins-Bold,sans-serif;font-size:3rem}.bmb_account-statement{height:100dvh;display:flex;flex-flow:column}.bmb_account-statement-content{flex:1;overflow:auto}.bmb_account-statement-content-balance{max-width:18.75rem;margin:var(--bmb-spacing-xl) auto}.bmb_account-statement-content-date{text-transform:capitalize;display:flex;justify-content:space-between;margin:0}.bmb_account-statement-footer{display:flex;gap:var(--bmb-spacing-m);padding:var(--bmb-spacing-m)}.bmb_account-statement-modal{font-family:Poppins-Medium,sans-serif;font-size:.75rem}.bmb_account-statement-modal .bmb_progress-bar-container-main{padding:0}[data-theme=dark] .bmb_account-statement-modal,.storybook-dark-theme .bmb_account-statement-modal{color:RGBA(var(--color-charade-50))}\n"] }]
168
+ }], ctorParameters: () => [{ type: i1.BmbNativeModalService }], propDecorators: { modalTemplate: [{
147
169
  type: ViewChild,
148
170
  args: ['modalTemplate', { read: TemplateRef }]
149
171
  }] } });
150
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm1iLWFjY291bnQtc3RhdGVtZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RzLW5nL3NyYy9saWIvY29tcG9uZW50cy9ibWItYWNjb3VudC1zdGF0ZW1lbnQvYm1iLWFjY291bnQtc3RhdGVtZW50LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RzLW5nL3NyYy9saWIvY29tcG9uZW50cy9ibWItYWNjb3VudC1zdGF0ZW1lbnQvYm1iLWFjY291bnQtc3RhdGVtZW50LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULEtBQUssRUFFTCxNQUFNLEVBQ04sV0FBVyxFQUNYLFNBQVMsRUFDVCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFDckcsT0FBTyxFQUNMLGdCQUFnQixFQUNoQix1QkFBdUIsR0FDeEIsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUN6RixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBRWxGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRXJFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUN0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SSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDMUQsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixPQUFPLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNwRCxDQUFDOytHQTNIVSw0QkFBNEI7bUdBQTVCLDRCQUE0QixvbkdBNEJILFdBQVcsNkJDdEZqRCxvOEhBK0hBLHFoT0R2RkksMkJBQTJCLDRTQUMzQixnQkFBZ0IsMEpBQ2hCLHVCQUF1QixxR0FDdkIsdUJBQXVCLDJLQUN2QixtQkFBbUIsMEVBQ25CLGtCQUFrQiw0TUFDbEIsa0JBQWtCLGtXQUNsQixrQkFBa0IsK0hBQ2xCLHNCQUFzQixpSkFDdEIsaUJBQWlCLHVpQkFDakIsbUJBQW1CLHFiQUNuQix1QkFBdUI7OzRGQU9kLDRCQUE0QjtrQkF0QnhDLFNBQVM7K0JBQ0UsdUJBQXVCLGNBQ3JCLElBQUksV0FDUDt3QkFDUCwyQkFBMkI7d0JBQzNCLGdCQUFnQjt3QkFDaEIsdUJBQXVCO3dCQUN2Qix1QkFBdUI7d0JBQ3ZCLG1CQUFtQjt3QkFDbkIsa0JBQWtCO3dCQUNsQixrQkFBa0I7d0JBQ2xCLGtCQUFrQjt3QkFDbEIsc0JBQXNCO3dCQUN0QixpQkFBaUI7d0JBQ2pCLG1CQUFtQjt3QkFDbkIsdUJBQXVCO3FCQUN4QixpQkFHYyxpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNOzhFQStCL0MsYUFBYTtzQkFEWixTQUFTO3VCQUFDLGVBQWUsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBpbnB1dCxcbiAgT25Jbml0LFxuICBvdXRwdXQsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJtYkJhbGFuY2VPdmVydmlld0NvbXBvbmVudCB9IGZyb20gJy4uL2JtYi1iYWxhbmNlLW92ZXJ2aWV3L2JtYi1iYWxhbmNlLW92ZXJ2aWV3LmNvbXBvbmVudCc7XG5pbXBvcnQge1xuICBCbWJDYXJkQ29tcG9uZW50LFxuICBCbWJDYXJkQ29udGVudENvbXBvbmVudCxcbn0gZnJvbSAnLi4vYm1iLWNhcmQvYm1iLWNhcmQuY29tcG9uZW50JztcbmltcG9ydCB7IEJtYlByb2dyZXNzQmFyQ29tcG9uZW50IH0gZnJvbSAnLi4vYm1iLXByb2dyZXNzLWJhci9ibWItcHJvZ3Jlc3MtYmFyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYXRlVGltZSB9IGZyb20gJ2x1eG9uJztcbmltcG9ydCB7IEJtYkRpdmlkZXJDb21wb25lbnQgfSBmcm9tICcuLi9ibWItZGl2aWRlci9ibWItZGl2aWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQm1iQnV0dG9uRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9ibWItYnV0dG9uL2J1dHRvbi5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IEJtYk1vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi4vYm1iLW1vZGFsL2JtYi1tb2RhbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTW9kYWxEYXRhQ29uZmlnIH0gZnJvbSAnLi4vYm1iLW1vZGFsL2JtYi1tb2RhbC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQm1iUmFkaWFsQ29tcG9uZW50IH0gZnJvbSAnLi4vYm1iLXJhZGlhbC9ibWItcmFkaWFsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBjdXJyZW5jeUZvcm1hdCB9IGZyb20gJy4uLy4uL3V0aWxzL2N1cnJlbmN5Rm9ybWF0JztcbmltcG9ydCB7IEJtYkxheW91dERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvYm1iLWxheW91dC9ibWItbGF5b3V0LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBCbWJMYXlvdXRJdGVtRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9ibWItbGF5b3V0L2JtYi1sYXlvdXQtaXRlbS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQm1iSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi9ibWItaW5wdXQvYm1iLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCbWJJbm5lckhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4uL2JtYi1pbm5lci1oZWFkZXIvYm1iLWlubmVyLWhlYWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgRm9ybUNvbnRyb2wsXG4gIEZvcm1Hcm91cCxcbiAgVmFsaWRhdG9ycyxcbiAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdibWItYWNjb3VudC1zdGF0ZW1lbnQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQm1iQmFsYW5jZU92ZXJ2aWV3Q29tcG9uZW50LFxuICAgIEJtYkNhcmRDb21wb25lbnQsXG4gICAgQm1iQ2FyZENvbnRlbnRDb21wb25lbnQsXG4gICAgQm1iUHJvZ3Jlc3NCYXJDb21wb25lbnQsXG4gICAgQm1iRGl2aWRlckNvbXBvbmVudCxcbiAgICBCbWJCdXR0b25EaXJlY3RpdmUsXG4gICAgQm1iUmFkaWFsQ29tcG9uZW50LFxuICAgIEJtYkxheW91dERpcmVjdGl2ZSxcbiAgICBCbWJMYXlvdXRJdGVtRGlyZWN0aXZlLFxuICAgIEJtYklucHV0Q29tcG9uZW50LFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgQm1iSW5uZXJIZWFkZXJDb21wb25lbnQsXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9ibWItYWNjb3VudC1zdGF0ZW1lbnQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vYm1iLWFjY291bnQtc3RhdGVtZW50LmNvbXBvbmVudC5zY3NzJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEJtYkFjY291bnRTdGF0ZW1lbnRDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkluaXQge1xuICB0aXRsZSA9IGlucHV0PHN0cmluZz4oJ0VzdGFkbyBkZSBjdWVudGEnKTtcbiAgcHJvZ3Jlc3NDaXJjbGVUaXRsZSA9IGlucHV0PHN0cmluZ1tdPihbJ1RvdGFsIGEgcGFnYXInLCAnZXN0ZSBtZXMnXSk7XG4gIGxhYmVsUHJpbWFyeSA9IGlucHV0PHN0cmluZz4oJ0N1b3RhIE1lbnN1YWwnKTtcbiAgbGFiZWxTZWNvbmRhcnkgPSBpbnB1dDxzdHJpbmc+KCdQZW5kaWVudGUnKTtcbiAgdG90YWxDb3VudCA9IGlucHV0PG51bWJlcj4oMCk7XG4gIGNvdW50ZXIgPSBpbnB1dDxudW1iZXI+KDApO1xuICBwcm9ncmVzc1RpdGxlID0gaW5wdXQ8c3RyaW5nPignVG90YWwgcGFnYWRvJyk7XG4gIGZvcm1hdERhdGVzID0gaW5wdXQ8c3RyaW5nPigneXl5eS1NTS1kZCcpO1xuICBwYXltZW50RGVhZGxpbmUgPSBpbnB1dDxzdHJpbmc+KCk7XG4gIGN1dE9mZkRhdGUgPSBpbnB1dDxzdHJpbmc+KCk7XG4gIHBheW1lbnREZWFkbGluZUxhYmVsID0gaW5wdXQ8c3RyaW5nPignRmVjaGEgbMOtbWl0ZSBkZSBwYWdvOicpO1xuICBjdXRPZmZEYXRlTGFiZWwgPSBpbnB1dDxzdHJpbmc+KCdGZWNoYSBkZSBjb3J0ZTonKTtcbiAgcGF5QnV0dG9uTGFiZWwgPSBpbnB1dDxzdHJpbmc+KCdQYWdhcicpO1xuICBiYWNrQnV0dG9uTGFiZWwgPSBpbnB1dDxzdHJpbmc+KCdSZWdyZXNhcicpO1xuICBtb2RhbFRpdGxlID0gaW5wdXQ8c3RyaW5nPignJyk7XG4gIG1vZGFsU3VidGl0bGUgPSBpbnB1dDxzdHJpbmc+KCcnKTtcbiAgbW9kYWxSZXN0TGFiZWwgPSBpbnB1dDxzdHJpbmc+KCdQYWdhciByZXN0YW50ZScpO1xuICBtb2RhbE90aGVyQW1vdW50TGFiZWwgPSBpbnB1dDxzdHJpbmc+KCdPdHJhIGNhbnRpZGFkJyk7XG4gIG1vZGFsUHJpbWFyeUJ1dHRvbkxhYmVsID0gaW5wdXQ8c3RyaW5nPignUGFnYXInKTtcbiAgZXJyb3JNZXNzYWdlID0gaW5wdXQ8c3RyaW5nPihcbiAgICAnRXJyb3IsIEVzdGUgY2FtcG8gZXMgcmVxdWVyaWRvIHkgZGViZSBzZXIgdW5hIGNhbnRpZGFkIGVudHJlIDEgeSAnLFxuICApO1xuXG4gIGNsb3NlRXZlbnQgPSBvdXRwdXQ8TW91c2VFdmVudD4oKTtcbiAgYmFja0V2ZW50ID0gb3V0cHV0PE1vdXNlRXZlbnQ+KCk7XG4gIHBheUV2ZW50ID0gb3V0cHV0PG51bWJlcj4oKTtcblxuICBAVmlld0NoaWxkKCdtb2RhbFRlbXBsYXRlJywgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KVxuICBtb2RhbFRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PjtcblxuICBuZXdNb2RhbDogVGVtcGxhdGVSZWY8YW55PiB8IG51bGwgPSBudWxsO1xuICBjdXN0b21BbW91bnQ6IG51bWJlciA9IDA7XG4gIGlzRW5hYmxlQ3VzdG9tQW1vdW50OiBib29sZWFuID0gZmFsc2U7XG4gIG1heEFtb3VudDogbnVtYmVyID0gMDtcblxuICBhbW91bnRGb3JtOiBGb3JtR3JvdXAgPSBuZXcgRm9ybUdyb3VwKHtcbiAgICBhbW91bnQ6IG5ldyBGb3JtQ29udHJvbDxudW1iZXI+KDAsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXG4gIH0pO1xuICBzaG93RXJyb3JzOiB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfSA9IHt9O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbWF0RGlhbG9nOiBNYXREaWFsb2cpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5tYXhBbW91bnQgPSB0aGlzLnRvdGFsQ291bnQoKSAtIHRoaXMuY291bnRlcigpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLm1vZGFsVGVtcGxhdGUpIHtcbiAgICAgIHRoaXMubmV3TW9kYWwgPSB0aGlzLm1vZGFsVGVtcGxhdGU7XG4gICAgfVxuICB9XG5cbiAgaGFuZGxlQ2xvc2UoZXZlbnQ/OiBNb3VzZUV2ZW50KSB7XG4gICAgdGhpcy5jbG9zZUV2ZW50LmVtaXQoZXZlbnQgfHwgbmV3IE1vdXNlRXZlbnQoJ2NsaWNrJykpO1xuICB9XG5cbiAgaGFuZGxlQmFjayhldmVudD86IE1vdXNlRXZlbnQpIHtcbiAgICB0aGlzLmJhY2tFdmVudC5lbWl0KGV2ZW50IHx8IG5ldyBNb3VzZUV2ZW50KCdjbGljaycpKTtcbiAgfVxuXG4gIGhhbmRsZVBheSgpIHtcbiAgICBjb25zdCBkYXRhOiBNb2RhbERhdGFDb25maWcgPSB7XG4gICAgICB0aXRsZTogdGhpcy5tb2RhbFRpdGxlKCksXG4gICAgICBzdWJ0aXRsZTogdGhpcy5tb2RhbFN1YnRpdGxlKCksXG4gICAgICBjb250ZW50OiB0aGlzLm5ld01vZGFsLFxuICAgICAgc2l6ZTogJ2xhcmdlJyxcbiAgICAgIGhpZGVQcmltYXJ5QnV0dG9uOiB0cnVlLFxuICAgICAgaGlkZVNlY29uZGFyeUJ1dHRvbjogdHJ1ZSxcbiAgICB9O1xuXG4gICAgdGhpcy5tYXREaWFsb2cub3BlbihCbWJNb2RhbENvbXBvbmVudCwgeyBkYXRhIH0pO1xuICB9XG5cbiAgZ2V0Rm9ybWF0dGVkRGF0ZShkYXRlPzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAoIWRhdGUpIHJldHVybiAnJztcbiAgICBjb25zdCBmb3JtYXREYXRlID0gRGF0ZVRpbWUuZnJvbUZvcm1hdChkYXRlLCB0aGlzLmZvcm1hdERhdGVzKCkpO1xuICAgIHJldHVybiBmb3JtYXREYXRlLnRvTG9jYWxlU3RyaW5nKHtcbiAgICAgIGRheTogJzItZGlnaXQnLFxuICAgICAgbW9udGg6ICdzaG9ydCcsXG4gICAgICB5ZWFyOiAnbnVtZXJpYycsXG4gICAgfSk7XG4gIH1cblxuICBnZXRGb3JtYXR0ZWRBbW91bnQoYW1vdW50OiBudW1iZXIpOiBzdHJpbmcge1xuICAgIHJldHVybiBjdXJyZW5jeUZvcm1hdChhbW91bnQpO1xuICB9XG5cbiAgaGFuZGxlQWN0aXZlQ3VzdG9tQW1vdW50KGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLmlzRW5hYmxlQ3VzdG9tQW1vdW50ID0gZXZlbnQudmFsdWUgPT09ICdtb2RhbE90aGVyQW1vdW50SW5wdXQnO1xuICB9XG5cbiAgb25TdWJtaXQoKSB7XG4gICAgaWYgKCF0aGlzLmlzRW5hYmxlQ3VzdG9tQW1vdW50KSB7XG4gICAgICB0aGlzLnBheUV2ZW50LmVtaXQodGhpcy50b3RhbENvdW50KCkgLSB0aGlzLmNvdW50ZXIoKSk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmFtb3VudEZvcm0udmFsaWQpIHtcbiAgICAgIGNvbnN0IGFtb3VudCA9IE51bWJlcih0aGlzLmFtb3VudEZvcm0uY29udHJvbHNbJ2Ftb3VudCddLnZhbHVlKTtcbiAgICAgIGlmIChhbW91bnQgPiAwICYmIGFtb3VudCA8PSB0aGlzLm1heEFtb3VudCkge1xuICAgICAgICB0aGlzLnBheUV2ZW50LmVtaXQoYW1vdW50KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc2hvd0Vycm9yc1snYW1vdW50J10gPSB0cnVlO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNob3dFcnJvcnNbJ2Ftb3VudCddID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBnZXRGb3JtQ29udHJvbChuYW1lOiBzdHJpbmcpOiBGb3JtQ29udHJvbCB7XG4gICAgcmV0dXJuIHRoaXMuYW1vdW50Rm9ybS5nZXQobmFtZSkgYXMgRm9ybUNvbnRyb2w7XG4gIH1cblxuICB1cGRhdGVFcnJvclN0YXRlKCkge1xuICAgIE9iamVjdC5rZXlzKHRoaXMuYW1vdW50Rm9ybS5jb250cm9scykuZm9yRWFjaCgoZmllbGQpID0+IHtcbiAgICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmFtb3VudEZvcm0uZ2V0KGZpZWxkKTtcbiAgICAgIGlmIChjb250cm9sIGluc3RhbmNlb2YgRm9ybUNvbnRyb2wpIHtcbiAgICAgICAgdGhpcy5zaG93RXJyb3JzW2ZpZWxkXSA9XG4gICAgICAgICAgY29udHJvbC5pbnZhbGlkICYmIChjb250cm9sLnRvdWNoZWQgfHwgY29udHJvbC5kaXJ0eSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBnZXRQcm9ncmVzc1BlcmNlbnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gKDEwMCAqIHRoaXMuY291bnRlcigpKSAvIHRoaXMudG90YWxDb3VudCgpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiYm1iX2FjY291bnQtc3RhdGVtZW50XCI+XG4gIDxibWItaW5uZXItaGVhZGVyXG4gICAgKG9uSGFuZGxlQ2xvc2UpPVwiaGFuZGxlQ2xvc2UoJGV2ZW50KVwiXG4gICAgW3RpdGxlXT1cInRpdGxlKClcIlxuICAgIFtzaG93U2VhcmNoXT1cImZhbHNlXCJcbiAgICBbc2hvd0Nsb3NlXT1cInRydWVcIlxuICAvPlxuICA8bWFpbiBjbGFzcz1cImJtYl9hY2NvdW50LXN0YXRlbWVudC1jb250ZW50XCI+XG4gICAgPGRpdiBjbGFzcz1cImJtYl9hY2NvdW50LXN0YXRlbWVudC1jb250ZW50LWJhbGFuY2VcIj5cbiAgICAgIDxibWItYmFsYW5jZS1vdmVydmlld1xuICAgICAgICBbcHJvZ3Jlc3NDaXJjbGVUaXRsZV09XCJwcm9ncmVzc0NpcmNsZVRpdGxlKClcIlxuICAgICAgICBbbGFiZWxQcmltYXJ5XT1cImxhYmVsUHJpbWFyeSgpXCJcbiAgICAgICAgW2xhYmVsU2Vjb25kYXJ5XT1cImxhYmVsU2Vjb25kYXJ5KClcIlxuICAgICAgICBbcHJvZ3Jlc3NDaXJjbGVWYWx1ZV09XCJnZXRGb3JtYXR0ZWRBbW91bnQodG90YWxDb3VudCgpIC0gY291bnRlcigpKVwiXG4gICAgICAgIFt2YWx1ZVByaW1hcnldPVwiZ2V0Rm9ybWF0dGVkQW1vdW50KHRvdGFsQ291bnQoKSlcIlxuICAgICAgICBbdmFsdWVTZWNvbmRhcnldPVwiZ2V0Rm9ybWF0dGVkQW1vdW50KGNvdW50ZXIoKSlcIlxuICAgICAgICBbcHJvZ3Jlc3NDaXJjbGVQZXJjZW50XT1cImdldFByb2dyZXNzUGVyY2VudCgpXCJcbiAgICAgIC8+XG4gICAgPC9kaXY+XG4gICAgPGJtYi1jYXJkPlxuICAgICAgPGJtYi1jYXJkLWNvbnRlbnQgcGFkZGluZz1cIm5vbmVcIj5cbiAgICAgICAgPGJtYi1wcm9ncmVzcy1iYXJcbiAgICAgICAgICBhcHBlYXJhbmNlPVwiaW5mb1wiXG4gICAgICAgICAgdHlwZT1cImNvbnRhaW5lclwiXG4gICAgICAgICAgW2NvdW50ZXJdPVwiY291bnRlcigpXCJcbiAgICAgICAgICBbdG90YWxDb3VudF09XCJ0b3RhbENvdW50KClcIlxuICAgICAgICAgIFt0aXRsZV09XCJwcm9ncmVzc1RpdGxlKClcIlxuICAgICAgICAvPlxuICAgICAgPC9ibWItY2FyZC1jb250ZW50PlxuICAgIDwvYm1iLWNhcmQ+XG4gICAgPGJtYi1jYXJkPlxuICAgICAgPGJtYi1jYXJkLWNvbnRlbnQ+XG4gICAgICAgIDxwIGNsYXNzPVwiYm1iX2FjY291bnQtc3RhdGVtZW50LWNvbnRlbnQtZGF0ZVwiPlxuICAgICAgICAgIDxzcGFuPnt7IGN1dE9mZkRhdGVMYWJlbCgpIH19PC9zcGFuPlxuICAgICAgICAgIDxzcGFuPnt7IGdldEZvcm1hdHRlZERhdGUoY3V0T2ZmRGF0ZSgpKSB9fTwvc3Bhbj5cbiAgICAgICAgPC9wPlxuICAgICAgICA8Ym1iLWRpdmlkZXIgLz5cbiAgICAgICAgPHAgY2xhc3M9XCJibWJfYWNjb3VudC1zdGF0ZW1lbnQtY29udGVudC1kYXRlXCI+XG4gICAgICAgICAgPHNwYW4+e3sgcGF5bWVudERlYWRsaW5lTGFiZWwoKSB9fTwvc3Bhbj5cbiAgICAgICAgICA8c3Bhbj57eyBnZXRGb3JtYXR0ZWREYXRlKHBheW1lbnREZWFkbGluZSgpKSB9fTwvc3Bhbj5cbiAgICAgICAgPC9wPlxuICAgICAgPC9ibWItY2FyZC1jb250ZW50PlxuICAgIDwvYm1iLWNhcmQ+XG4gIDwvbWFpbj5cbiAgPGZvb3RlciBjbGFzcz1cImJtYl9hY2NvdW50LXN0YXRlbWVudC1mb290ZXJcIj5cbiAgICA8YnV0dG9uXG4gICAgICBibWJCdXR0b25cbiAgICAgIHNpemU9XCJsYXJnZVwiXG4gICAgICBhcHBlYXJhbmNlPVwic2Vjb25kYXJ5LW91dGxpbmVkXCJcbiAgICAgIChjbGljayk9XCJoYW5kbGVCYWNrKCRldmVudClcIlxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgPlxuICAgICAge3sgYmFja0J1dHRvbkxhYmVsKCkgfX1cbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uIChjbGljayk9XCJoYW5kbGVQYXkoKVwiIGJtYkJ1dHRvbiBzaXplPVwibGFyZ2VcIiB0eXBlPVwiYnV0dG9uXCI+XG4gICAgICB7eyBwYXlCdXR0b25MYWJlbCgpIH19XG4gICAgPC9idXR0b24+XG4gIDwvZm9vdGVyPlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjbW9kYWxUZW1wbGF0ZT5cbiAgPHNlY3Rpb24gY2xhc3M9XCJibWJfYWNjb3VudC1zdGF0ZW1lbnQtbW9kYWxcIj5cbiAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImFtb3VudEZvcm1cIiAobmdTdWJtaXQpPVwib25TdWJtaXQoKVwiPlxuICAgICAgPGJtYi1wcm9ncmVzcy1iYXJcbiAgICAgICAgYXBwZWFyYW5jZT1cImluZm9cIlxuICAgICAgICB0eXBlPVwiY29udGFpbmVyXCJcbiAgICAgICAgW2NvdW50ZXJdPVwiY291bnRlcigpXCJcbiAgICAgICAgW3RvdGFsQ291bnRdPVwidG90YWxDb3VudCgpXCJcbiAgICAgICAgW3RpdGxlXT1cInByb2dyZXNzVGl0bGUoKVwiXG4gICAgICAvPlxuICAgICAgPGJtYi1kaXZpZGVyIC8+XG4gICAgICA8bGFiZWxcbiAgICAgICAgY2xhc3M9XCJibWJfYWNjb3VudC1zdGF0ZW1lbnQtbW9kYWwtbGFiZWxcIlxuICAgICAgICBibWJMYXlvdXRcbiAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgIFtkeW5hbWljQ29sc109XCJ0cnVlXCJcbiAgICAgID5cbiAgICAgICAgPGJtYi1yYWRpYWxcbiAgICAgICAgICBpZD1cIm1vZGFsUmVzdElucHV0XCJcbiAgICAgICAgICBuYW1lPVwibW9kYWxBbW91bnRcIlxuICAgICAgICAgIFtjaGVja2VkXT1cInRydWVcIlxuICAgICAgICAgIChjaGFuZ2UpPVwiaGFuZGxlQWN0aXZlQ3VzdG9tQW1vdW50KCRldmVudClcIlxuICAgICAgICAgIHZhbHVlPVwibW9kYWxSZXN0SW5wdXRcIlxuICAgICAgICAvPlxuICAgICAgICA8c3BhbiBibWJMYXlvdXRJdGVtIFtjb2xHcm93XT1cIjFcIj5cbiAgICAgICAgICB7eyBtb2RhbFJlc3RMYWJlbCgpIH19XG4gICAgICAgICAgPGJyIC8+XG4gICAgICAgICAge3sgZ2V0Rm9ybWF0dGVkQW1vdW50KHRvdGFsQ291bnQoKSAtIGNvdW50ZXIoKSkgfX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9sYWJlbD5cbiAgICAgIDxibWItZGl2aWRlciAvPlxuICAgICAgPGxhYmVsXG4gICAgICAgIGNsYXNzPVwiYm1iX2FjY291bnQtc3RhdGVtZW50LW1vZGFsLWxhYmVsXCJcbiAgICAgICAgYm1iTGF5b3V0XG4gICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICBbZHluYW1pY0NvbHNdPVwidHJ1ZVwiXG4gICAgICA+XG4gICAgICAgIDxibWItcmFkaWFsXG4gICAgICAgICAgaWQ9XCJtb2RhbE90aGVyQW1vdW50SW5wdXRcIlxuICAgICAgICAgIG5hbWU9XCJtb2RhbEFtb3VudFwiXG4gICAgICAgICAgKGNoYW5nZSk9XCJoYW5kbGVBY3RpdmVDdXN0b21BbW91bnQoJGV2ZW50KVwiXG4gICAgICAgICAgdmFsdWU9XCJtb2RhbE90aGVyQW1vdW50SW5wdXRcIlxuICAgICAgICAvPlxuICAgICAgICA8c3BhbiBibWJMYXlvdXRJdGVtIFtjb2xHcm93XT1cIjFcIj5cbiAgICAgICAgICB7eyBtb2RhbE90aGVyQW1vdW50TGFiZWwoKSB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L2xhYmVsPlxuICAgICAgQGlmIChpc0VuYWJsZUN1c3RvbUFtb3VudCkge1xuICAgICAgICA8Ym1iLWlucHV0XG4gICAgICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICAgW21heF09XCJ0b3RhbENvdW50KCkgLSBjb3VudGVyKClcIlxuICAgICAgICAgIFttaW5dPVwiMFwiXG4gICAgICAgICAgcGF0dGVybj1cIlxcZCpcIlxuICAgICAgICAgIFtlcnJvck1lc3NhZ2VdPVwiZXJyb3JNZXNzYWdlKClcIlxuICAgICAgICAgIFtpc1JlcXVpcmVkXT1cInRydWVcIlxuICAgICAgICAgIFtjb250cm9sXT1cImdldEZvcm1Db250cm9sKCdhbW91bnQnKVwiXG4gICAgICAgICAgW3Nob3dFcnJvcl09XCJzaG93RXJyb3JzWydhbW91bnQnXVwiXG4gICAgICAgIC8+XG4gICAgICB9XG4gICAgICA8Zm9vdGVyIGNsYXNzPVwiYm1iX2FjY291bnQtc3RhdGVtZW50LWZvb3RlclwiPlxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBibWJCdXR0b24gc2l6ZT1cImxhcmdlXCI+XG4gICAgICAgICAge3sgbW9kYWxQcmltYXJ5QnV0dG9uTGFiZWwoKSB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZm9vdGVyPlxuICAgIDwvZm9ybT5cbiAgPC9zZWN0aW9uPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
172
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm1iLWFjY291bnQtc3RhdGVtZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RzLW5nL3NyYy9saWIvY29tcG9uZW50cy9ibWItYWNjb3VudC1zdGF0ZW1lbnQvYm1iLWFjY291bnQtc3RhdGVtZW50LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RzLW5nL3NyYy9saWIvY29tcG9uZW50cy9ibWItYWNjb3VudC1zdGF0ZW1lbnQvYm1iLWFjY291bnQtc3RhdGVtZW50LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULEtBQUssRUFFTCxNQUFNLEVBQ04sTUFBTSxFQUNOLFdBQVcsRUFDWCxTQUFTLEVBQ1QsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQ3JHLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsdUJBQXVCLEdBQ3hCLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDekYsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUNqQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUNsRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN4RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDdEYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDL0YsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDckUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFFekYsT0FBTyxFQUNMLFdBQVcsRUFDWCxTQUFTLEVBQ1QsVUFBVSxFQUNWLG1CQUFtQixHQUNwQixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7OztBQXlCL0MsTUFBTSxPQUFPLDRCQUE0QjtJQTBDdkMsWUFBb0IsWUFBbUM7UUFBbkMsaUJBQVksR0FBWixZQUFZLENBQXVCO1FBekN2RCxVQUFLLEdBQUcsS0FBSyxDQUFTLGtCQUFrQixDQUFDLENBQUM7UUFDMUMsd0JBQW1CLEdBQUcsS0FBSyxDQUFXLENBQUMsZUFBZSxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFDckUsaUJBQVksR0FBRyxLQUFLLENBQVMsZUFBZSxDQUFDLENBQUM7UUFDOUMsbUJBQWMsR0FBRyxLQUFLLENBQVMsV0FBVyxDQUFDLENBQUM7UUFDNUMsZUFBVSxHQUFHLEtBQUssQ0FBUyxDQUFDLENBQUMsQ0FBQztRQUM5QixZQUFPLEdBQUcsS0FBSyxDQUFTLENBQUMsQ0FBQyxDQUFDO1FBQzNCLGtCQUFhLEdBQUcsS0FBSyxDQUFTLGNBQWMsQ0FBQyxDQUFDO1FBQzlDLGdCQUFXLEdBQUcsS0FBSyxDQUFTLFlBQVksQ0FBQyxDQUFDO1FBQzFDLG9CQUFlLEdBQUcsS0FBSyxFQUFVLENBQUM7UUFDbEMsZUFBVSxHQUFHLEtBQUssRUFBVSxDQUFDO1FBQzdCLHlCQUFvQixHQUFHLEtBQUssQ0FBUyx1QkFBdUIsQ0FBQyxDQUFDO1FBQzlELG9CQUFlLEdBQUcsS0FBSyxDQUFTLGlCQUFpQixDQUFDLENBQUM7UUFDbkQsbUJBQWMsR0FBRyxLQUFLLENBQVMsT0FBTyxDQUFDLENBQUM7UUFDeEMsb0JBQWUsR0FBRyxLQUFLLENBQVMsVUFBVSxDQUFDLENBQUM7UUFDNUMsZUFBVSxHQUFHLEtBQUssQ0FBUyxFQUFFLENBQUMsQ0FBQztRQUMvQixrQkFBYSxHQUFHLEtBQUssQ0FBUyxFQUFFLENBQUMsQ0FBQztRQUNsQyxtQkFBYyxHQUFHLEtBQUssQ0FBUyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ2pELDBCQUFxQixHQUFHLEtBQUssQ0FBUyxlQUFlLENBQUMsQ0FBQztRQUN2RCw0QkFBdUIsR0FBRyxLQUFLLENBQVMsT0FBTyxDQUFDLENBQUM7UUFDakQsaUJBQVksR0FBRyxLQUFLLENBQ2xCLG1FQUFtRSxDQUNwRSxDQUFDO1FBRUYsZUFBVSxHQUFHLE1BQU0sRUFBYyxDQUFDO1FBQ2xDLGNBQVMsR0FBRyxNQUFNLEVBQWMsQ0FBQztRQUNqQyxhQUFRLEdBQUcsTUFBTSxFQUFVLENBQUM7UUFLNUIsYUFBUSxHQUE0QixJQUFJLENBQUM7UUFDekMsaUJBQVksR0FBVyxDQUFDLENBQUM7UUFDekIseUJBQW9CLEdBQVksS0FBSyxDQUFDO1FBQ3RDLGNBQVMsR0FBVyxDQUFDLENBQUM7UUFDdEIsWUFBTyxHQUFHLE1BQU0sQ0FBZ0IsSUFBSSxDQUFDLENBQUM7UUFFdEMsZUFBVSxHQUFjLElBQUksU0FBUyxDQUFDO1lBQ3BDLE1BQU0sRUFBRSxJQUFJLFdBQVcsQ0FBUyxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDMUQsQ0FBQyxDQUFDO1FBQ0gsZUFBVSxHQUErQixFQUFFLENBQUM7SUFFYyxDQUFDO0lBRTNELFFBQVE7UUFDTixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDdEQsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7UUFDckMsQ0FBQztJQUNILENBQUM7SUFFRCxXQUFXLENBQUMsS0FBa0I7UUFDNUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFrQjtRQUMzQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQsU0FBUztRQUNQLE1BQU0sSUFBSSxHQUFvQjtZQUM1QixLQUFLLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUN4QixRQUFRLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUM5QixPQUFPLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDdEIsSUFBSSxFQUFFLE9BQU87U0FDZCxDQUFDO1FBRUYsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsSUFBYTtRQUM1QixJQUFJLENBQUMsSUFBSTtZQUFFLE9BQU8sRUFBRSxDQUFDO1FBQ3JCLE1BQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQ2pFLE9BQU8sVUFBVSxDQUFDLGNBQWMsQ0FBQztZQUMvQixHQUFHLEVBQUUsU0FBUztZQUNkLEtBQUssRUFBRSxPQUFPO1lBQ2QsSUFBSSxFQUFFLFNBQVM7U0FDaEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGtCQUFrQixDQUFDLE1BQWM7UUFDL0IsT0FBTyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELHdCQUF3QixDQUFDLEtBQVU7UUFDakMsSUFBSSxDQUFDLG9CQUFvQixHQUFHLEtBQUssQ0FBQyxLQUFLLEtBQUssdUJBQXVCLENBQUM7SUFDdEUsQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7WUFDL0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZELElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQVksQ0FBQyxDQUFDO1lBQ3ZELElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pCLENBQUM7YUFBTSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDakMsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2hFLElBQUksTUFBTSxHQUFHLENBQUMsSUFBSSxNQUFNLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUMzQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDM0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBWSxDQUFDLENBQUM7Z0JBQ3ZELElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3pCLENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxHQUFHLElBQUksQ0FBQztZQUNuQyxDQUFDO1FBQ0gsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxHQUFHLElBQUksQ0FBQztRQUNuQyxDQUFDO0lBQ0gsQ0FBQztJQUVELGNBQWMsQ0FBQyxJQUFZO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFnQixDQUFDO0lBQ2xELENBQUM7SUFFRCxnQkFBZ0I7UUFDZCxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDdEQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDM0MsSUFBSSxPQUFPLFlBQVksV0FBVyxFQUFFLENBQUM7Z0JBQ25DLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDO29CQUNwQixPQUFPLENBQUMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sSUFBSSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDMUQsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixPQUFPLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNwRCxDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsT0FBTyxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBRWpDLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztZQUMvQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDekQsQ0FBQzthQUFNLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNqQyxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDaEUsSUFBSSxNQUFNLEdBQUcsQ0FBQyxJQUFJLE1BQU0sSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQzNDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzdCLENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxHQUFHLElBQUksQ0FBQztZQUNuQyxDQUFDO1FBQ0gsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxHQUFHLElBQUksQ0FBQztRQUNuQyxDQUFDO0lBQ0gsQ0FBQzsrR0EvSVUsNEJBQTRCO21HQUE1Qiw0QkFBNEIsb25HQTRCSCxXQUFXLDZCQ3hGakQsdzhIQStIQSx3bU5EdEZJLDJCQUEyQiw0U0FDM0IsZ0JBQWdCLDBKQUNoQix1QkFBdUIsd0hBQ3ZCLHVCQUF1QiwyS0FDdkIsbUJBQW1CLDBFQUNuQixrQkFBa0IsNE1BQ2xCLGtCQUFrQixrV0FDbEIsa0JBQWtCLCtIQUNsQixzQkFBc0IsaUpBQ3RCLGlCQUFpQix1aUJBQ2pCLG1CQUFtQixxYkFDbkIsdUJBQXVCLDJUQUN2QixZQUFZOzs0RkFPSCw0QkFBNEI7a0JBdkJ4QyxTQUFTOytCQUNFLHVCQUF1QixjQUNyQixJQUFJLFdBQ1A7d0JBQ1AsMkJBQTJCO3dCQUMzQixnQkFBZ0I7d0JBQ2hCLHVCQUF1Qjt3QkFDdkIsdUJBQXVCO3dCQUN2QixtQkFBbUI7d0JBQ25CLGtCQUFrQjt3QkFDbEIsa0JBQWtCO3dCQUNsQixrQkFBa0I7d0JBQ2xCLHNCQUFzQjt3QkFDdEIsaUJBQWlCO3dCQUNqQixtQkFBbUI7d0JBQ25CLHVCQUF1Qjt3QkFDdkIsWUFBWTtxQkFDYixpQkFHYyxpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNOzBGQStCL0MsYUFBYTtzQkFEWixTQUFTO3VCQUFDLGVBQWUsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBpbnB1dCxcbiAgT25Jbml0LFxuICBvdXRwdXQsXG4gIHNpZ25hbCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQm1iQmFsYW5jZU92ZXJ2aWV3Q29tcG9uZW50IH0gZnJvbSAnLi4vYm1iLWJhbGFuY2Utb3ZlcnZpZXcvYm1iLWJhbGFuY2Utb3ZlcnZpZXcuY29tcG9uZW50JztcbmltcG9ydCB7XG4gIEJtYkNhcmRDb21wb25lbnQsXG4gIEJtYkNhcmRDb250ZW50Q29tcG9uZW50LFxufSBmcm9tICcuLi9ibWItY2FyZC9ibWItY2FyZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQm1iUHJvZ3Jlc3NCYXJDb21wb25lbnQgfSBmcm9tICcuLi9ibWItcHJvZ3Jlc3MtYmFyL2JtYi1wcm9ncmVzcy1iYXIuY29tcG9uZW50JztcbmltcG9ydCB7IERhdGVUaW1lIH0gZnJvbSAnbHV4b24nO1xuaW1wb3J0IHsgQm1iRGl2aWRlckNvbXBvbmVudCB9IGZyb20gJy4uL2JtYi1kaXZpZGVyL2JtYi1kaXZpZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCbWJCdXR0b25EaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL2JtYi1idXR0b24vYnV0dG9uLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBCbWJSYWRpYWxDb21wb25lbnQgfSBmcm9tICcuLi9ibWItcmFkaWFsL2JtYi1yYWRpYWwuY29tcG9uZW50JztcbmltcG9ydCB7IGN1cnJlbmN5Rm9ybWF0IH0gZnJvbSAnLi4vLi4vdXRpbHMvY3VycmVuY3lGb3JtYXQnO1xuaW1wb3J0IHsgQm1iTGF5b3V0RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9ibWItbGF5b3V0L2JtYi1sYXlvdXQuZGlyZWN0aXZlJztcbmltcG9ydCB7IEJtYkxheW91dEl0ZW1EaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL2JtYi1sYXlvdXQvYm1iLWxheW91dC1pdGVtLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBCbWJJbnB1dENvbXBvbmVudCB9IGZyb20gJy4uL2JtYi1pbnB1dC9ibWItaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IEJtYklubmVySGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vYm1iLWlubmVyLWhlYWRlci9ibWItaW5uZXItaGVhZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCbWJOYXRpdmVNb2RhbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9uYXRpdmUtbW9kYWwuc2VydmljZSc7XG5pbXBvcnQge1xuICBGb3JtQ29udHJvbCxcbiAgRm9ybUdyb3VwLFxuICBWYWxpZGF0b3JzLFxuICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBJQm1iTmF0aXZlTW9kYWwgfSBmcm9tICcuLi9ibWItbW9kYWwvYm1iLW1vZGFsLmludGVyZmFjZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdibWItYWNjb3VudC1zdGF0ZW1lbnQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQm1iQmFsYW5jZU92ZXJ2aWV3Q29tcG9uZW50LFxuICAgIEJtYkNhcmRDb21wb25lbnQsXG4gICAgQm1iQ2FyZENvbnRlbnRDb21wb25lbnQsXG4gICAgQm1iUHJvZ3Jlc3NCYXJDb21wb25lbnQsXG4gICAgQm1iRGl2aWRlckNvbXBvbmVudCxcbiAgICBCbWJCdXR0b25EaXJlY3RpdmUsXG4gICAgQm1iUmFkaWFsQ29tcG9uZW50LFxuICAgIEJtYkxheW91dERpcmVjdGl2ZSxcbiAgICBCbWJMYXlvdXRJdGVtRGlyZWN0aXZlLFxuICAgIEJtYklucHV0Q29tcG9uZW50LFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgQm1iSW5uZXJIZWFkZXJDb21wb25lbnQsXG4gICAgQ29tbW9uTW9kdWxlLFxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vYm1iLWFjY291bnQtc3RhdGVtZW50LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2JtYi1hY2NvdW50LXN0YXRlbWVudC5jb21wb25lbnQuc2NzcycsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBCbWJBY2NvdW50U3RhdGVtZW50Q29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25Jbml0IHtcbiAgdGl0bGUgPSBpbnB1dDxzdHJpbmc+KCdFc3RhZG8gZGUgY3VlbnRhJyk7XG4gIHByb2dyZXNzQ2lyY2xlVGl0bGUgPSBpbnB1dDxzdHJpbmdbXT4oWydUb3RhbCBhIHBhZ2FyJywgJ2VzdGUgbWVzJ10pO1xuICBsYWJlbFByaW1hcnkgPSBpbnB1dDxzdHJpbmc+KCdDdW90YSBNZW5zdWFsJyk7XG4gIGxhYmVsU2Vjb25kYXJ5ID0gaW5wdXQ8c3RyaW5nPignUGVuZGllbnRlJyk7XG4gIHRvdGFsQ291bnQgPSBpbnB1dDxudW1iZXI+KDApO1xuICBjb3VudGVyID0gaW5wdXQ8bnVtYmVyPigwKTtcbiAgcHJvZ3Jlc3NUaXRsZSA9IGlucHV0PHN0cmluZz4oJ1RvdGFsIHBhZ2FkbycpO1xuICBmb3JtYXREYXRlcyA9IGlucHV0PHN0cmluZz4oJ3l5eXktTU0tZGQnKTtcbiAgcGF5bWVudERlYWRsaW5lID0gaW5wdXQ8c3RyaW5nPigpO1xuICBjdXRPZmZEYXRlID0gaW5wdXQ8c3RyaW5nPigpO1xuICBwYXltZW50RGVhZGxpbmVMYWJlbCA9IGlucHV0PHN0cmluZz4oJ0ZlY2hhIGzDrW1pdGUgZGUgcGFnbzonKTtcbiAgY3V0T2ZmRGF0ZUxhYmVsID0gaW5wdXQ8c3RyaW5nPignRmVjaGEgZGUgY29ydGU6Jyk7XG4gIHBheUJ1dHRvbkxhYmVsID0gaW5wdXQ8c3RyaW5nPignUGFnYXInKTtcbiAgYmFja0J1dHRvbkxhYmVsID0gaW5wdXQ8c3RyaW5nPignUmVncmVzYXInKTtcbiAgbW9kYWxUaXRsZSA9IGlucHV0PHN0cmluZz4oJycpO1xuICBtb2RhbFN1YnRpdGxlID0gaW5wdXQ8c3RyaW5nPignJyk7XG4gIG1vZGFsUmVzdExhYmVsID0gaW5wdXQ8c3RyaW5nPignUGFnYXIgcmVzdGFudGUnKTtcbiAgbW9kYWxPdGhlckFtb3VudExhYmVsID0gaW5wdXQ8c3RyaW5nPignT3RyYSBjYW50aWRhZCcpO1xuICBtb2RhbFByaW1hcnlCdXR0b25MYWJlbCA9IGlucHV0PHN0cmluZz4oJ1BhZ2FyJyk7XG4gIGVycm9yTWVzc2FnZSA9IGlucHV0PHN0cmluZz4oXG4gICAgJ0Vycm9yLCBFc3RlIGNhbXBvIGVzIHJlcXVlcmlkbyB5IGRlYmUgc2VyIHVuYSBjYW50aWRhZCBlbnRyZSAxIHkgJyxcbiAgKTtcblxuICBjbG9zZUV2ZW50ID0gb3V0cHV0PE1vdXNlRXZlbnQ+KCk7XG4gIGJhY2tFdmVudCA9IG91dHB1dDxNb3VzZUV2ZW50PigpO1xuICBwYXlFdmVudCA9IG91dHB1dDxudW1iZXI+KCk7XG5cbiAgQFZpZXdDaGlsZCgnbW9kYWxUZW1wbGF0ZScsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSlcbiAgbW9kYWxUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgbmV3TW9kYWw6IFRlbXBsYXRlUmVmPGFueT4gfCBudWxsID0gbnVsbDtcbiAgY3VzdG9tQW1vdW50OiBudW1iZXIgPSAwO1xuICBpc0VuYWJsZUN1c3RvbUFtb3VudDogYm9vbGVhbiA9IGZhbHNlO1xuICBtYXhBbW91bnQ6IG51bWJlciA9IDA7XG4gIG1vZGFsSUQgPSBzaWduYWw8c3RyaW5nIHwgbnVsbD4obnVsbCk7XG5cbiAgYW1vdW50Rm9ybTogRm9ybUdyb3VwID0gbmV3IEZvcm1Hcm91cCh7XG4gICAgYW1vdW50OiBuZXcgRm9ybUNvbnRyb2w8bnVtYmVyPigwLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxuICB9KTtcbiAgc2hvd0Vycm9yczogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0gPSB7fTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG1vZGFsU2VydmljZTogQm1iTmF0aXZlTW9kYWxTZXJ2aWNlKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMubWF4QW1vdW50ID0gdGhpcy50b3RhbENvdW50KCkgLSB0aGlzLmNvdW50ZXIoKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5tb2RhbFRlbXBsYXRlKSB7XG4gICAgICB0aGlzLm5ld01vZGFsID0gdGhpcy5tb2RhbFRlbXBsYXRlO1xuICAgIH1cbiAgfVxuXG4gIGhhbmRsZUNsb3NlKGV2ZW50PzogTW91c2VFdmVudCkge1xuICAgIHRoaXMuY2xvc2VFdmVudC5lbWl0KGV2ZW50IHx8IG5ldyBNb3VzZUV2ZW50KCdjbGljaycpKTtcbiAgfVxuXG4gIGhhbmRsZUJhY2soZXZlbnQ/OiBNb3VzZUV2ZW50KSB7XG4gICAgdGhpcy5iYWNrRXZlbnQuZW1pdChldmVudCB8fCBuZXcgTW91c2VFdmVudCgnY2xpY2snKSk7XG4gIH1cblxuICBoYW5kbGVQYXkoKSB7XG4gICAgY29uc3QgZGF0YTogSUJtYk5hdGl2ZU1vZGFsID0ge1xuICAgICAgdGl0bGU6IHRoaXMubW9kYWxUaXRsZSgpLFxuICAgICAgc3VidGl0bGU6IHRoaXMubW9kYWxTdWJ0aXRsZSgpLFxuICAgICAgY29udGVudDogdGhpcy5uZXdNb2RhbCxcbiAgICAgIHNpemU6ICdsYXJnZScsXG4gICAgfTtcblxuICAgIHRoaXMubW9kYWxJRC5zZXQodGhpcy5tb2RhbFNlcnZpY2Uub3Blbk1vZGFsKGRhdGEpKTtcbiAgfVxuXG4gIGdldEZvcm1hdHRlZERhdGUoZGF0ZT86IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKCFkYXRlKSByZXR1cm4gJyc7XG4gICAgY29uc3QgZm9ybWF0RGF0ZSA9IERhdGVUaW1lLmZyb21Gb3JtYXQoZGF0ZSwgdGhpcy5mb3JtYXREYXRlcygpKTtcbiAgICByZXR1cm4gZm9ybWF0RGF0ZS50b0xvY2FsZVN0cmluZyh7XG4gICAgICBkYXk6ICcyLWRpZ2l0JyxcbiAgICAgIG1vbnRoOiAnc2hvcnQnLFxuICAgICAgeWVhcjogJ251bWVyaWMnLFxuICAgIH0pO1xuICB9XG5cbiAgZ2V0Rm9ybWF0dGVkQW1vdW50KGFtb3VudDogbnVtYmVyKTogc3RyaW5nIHtcbiAgICByZXR1cm4gY3VycmVuY3lGb3JtYXQoYW1vdW50KTtcbiAgfVxuXG4gIGhhbmRsZUFjdGl2ZUN1c3RvbUFtb3VudChldmVudDogYW55KSB7XG4gICAgdGhpcy5pc0VuYWJsZUN1c3RvbUFtb3VudCA9IGV2ZW50LnZhbHVlID09PSAnbW9kYWxPdGhlckFtb3VudElucHV0JztcbiAgfVxuXG4gIGhhbmRsZVN1Ym1pdCgpIHtcbiAgICBpZiAoIXRoaXMuaXNFbmFibGVDdXN0b21BbW91bnQpIHtcbiAgICAgIHRoaXMucGF5RXZlbnQuZW1pdCh0aGlzLnRvdGFsQ291bnQoKSAtIHRoaXMuY291bnRlcigpKTtcbiAgICAgIHRoaXMubW9kYWxTZXJ2aWNlLmNsb3NlTW9kYWwodGhpcy5tb2RhbElEKCkgYXMgc3RyaW5nKTtcbiAgICAgIHRoaXMubW9kYWxJRC5zZXQobnVsbCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmFtb3VudEZvcm0udmFsaWQpIHtcbiAgICAgIGNvbnN0IGFtb3VudCA9IE51bWJlcih0aGlzLmFtb3VudEZvcm0uY29udHJvbHNbJ2Ftb3VudCddLnZhbHVlKTtcbiAgICAgIGlmIChhbW91bnQgPiAwICYmIGFtb3VudCA8PSB0aGlzLm1heEFtb3VudCkge1xuICAgICAgICB0aGlzLnBheUV2ZW50LmVtaXQoYW1vdW50KTtcbiAgICAgICAgdGhpcy5tb2RhbFNlcnZpY2UuY2xvc2VNb2RhbCh0aGlzLm1vZGFsSUQoKSBhcyBzdHJpbmcpO1xuICAgICAgICB0aGlzLm1vZGFsSUQuc2V0KG51bGwpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zaG93RXJyb3JzWydhbW91bnQnXSA9IHRydWU7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2hvd0Vycm9yc1snYW1vdW50J10gPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIGdldEZvcm1Db250cm9sKG5hbWU6IHN0cmluZyk6IEZvcm1Db250cm9sIHtcbiAgICByZXR1cm4gdGhpcy5hbW91bnRGb3JtLmdldChuYW1lKSBhcyBGb3JtQ29udHJvbDtcbiAgfVxuXG4gIHVwZGF0ZUVycm9yU3RhdGUoKSB7XG4gICAgT2JqZWN0LmtleXModGhpcy5hbW91bnRGb3JtLmNvbnRyb2xzKS5mb3JFYWNoKChmaWVsZCkgPT4ge1xuICAgICAgY29uc3QgY29udHJvbCA9IHRoaXMuYW1vdW50Rm9ybS5nZXQoZmllbGQpO1xuICAgICAgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtQ29udHJvbCkge1xuICAgICAgICB0aGlzLnNob3dFcnJvcnNbZmllbGRdID1cbiAgICAgICAgICBjb250cm9sLmludmFsaWQgJiYgKGNvbnRyb2wudG91Y2hlZCB8fCBjb250cm9sLmRpcnR5KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGdldFByb2dyZXNzUGVyY2VudCgpOiBudW1iZXIge1xuICAgIHJldHVybiAoMTAwICogdGhpcy5jb3VudGVyKCkpIC8gdGhpcy50b3RhbENvdW50KCk7XG4gIH1cblxuICBjdXN0b21IYW5kbGVDbGljaygpIHtcbiAgICBjb25zb2xlLmxvZygnY3VzdG9tSGFuZGxlQ2xpY2snKTtcblxuICAgIGlmICghdGhpcy5pc0VuYWJsZUN1c3RvbUFtb3VudCkge1xuICAgICAgdGhpcy5wYXlFdmVudC5lbWl0KHRoaXMudG90YWxDb3VudCgpIC0gdGhpcy5jb3VudGVyKCkpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5hbW91bnRGb3JtLnZhbGlkKSB7XG4gICAgICBjb25zdCBhbW91bnQgPSBOdW1iZXIodGhpcy5hbW91bnRGb3JtLmNvbnRyb2xzWydhbW91bnQnXS52YWx1ZSk7XG4gICAgICBpZiAoYW1vdW50ID4gMCAmJiBhbW91bnQgPD0gdGhpcy5tYXhBbW91bnQpIHtcbiAgICAgICAgdGhpcy5wYXlFdmVudC5lbWl0KGFtb3VudCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNob3dFcnJvcnNbJ2Ftb3VudCddID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zaG93RXJyb3JzWydhbW91bnQnXSA9IHRydWU7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiYm1iX2FjY291bnQtc3RhdGVtZW50XCI+XG4gIDxibWItaW5uZXItaGVhZGVyXG4gICAgKG9uSGFuZGxlQ2xvc2UpPVwiaGFuZGxlQ2xvc2UoJGV2ZW50KVwiXG4gICAgW3RpdGxlXT1cInRpdGxlKClcIlxuICAgIFtzaG93U2VhcmNoXT1cImZhbHNlXCJcbiAgICBbc2hvd0Nsb3NlXT1cInRydWVcIlxuICAvPlxuICA8bWFpbiBjbGFzcz1cImJtYl9hY2NvdW50LXN0YXRlbWVudC1jb250ZW50XCI+XG4gICAgPGRpdiBjbGFzcz1cImJtYl9hY2NvdW50LXN0YXRlbWVudC1jb250ZW50LWJhbGFuY2VcIj5cbiAgICAgIDxibWItYmFsYW5jZS1vdmVydmlld1xuICAgICAgICBbcHJvZ3Jlc3NDaXJjbGVUaXRsZV09XCJwcm9ncmVzc0NpcmNsZVRpdGxlKClcIlxuICAgICAgICBbbGFiZWxQcmltYXJ5XT1cImxhYmVsUHJpbWFyeSgpXCJcbiAgICAgICAgW2xhYmVsU2Vjb25kYXJ5XT1cImxhYmVsU2Vjb25kYXJ5KClcIlxuICAgICAgICBbcHJvZ3Jlc3NDaXJjbGVWYWx1ZV09XCJnZXRGb3JtYXR0ZWRBbW91bnQodG90YWxDb3VudCgpIC0gY291bnRlcigpKVwiXG4gICAgICAgIFt2YWx1ZVByaW1hcnldPVwiZ2V0Rm9ybWF0dGVkQW1vdW50KHRvdGFsQ291bnQoKSlcIlxuICAgICAgICBbdmFsdWVTZWNvbmRhcnldPVwiZ2V0Rm9ybWF0dGVkQW1vdW50KGNvdW50ZXIoKSlcIlxuICAgICAgICBbcHJvZ3Jlc3NDaXJjbGVQZXJjZW50XT1cImdldFByb2dyZXNzUGVyY2VudCgpXCJcbiAgICAgIC8+XG4gICAgPC9kaXY+XG4gICAgPGJtYi1jYXJkPlxuICAgICAgPGJtYi1jYXJkLWNvbnRlbnQgcGFkZGluZz1cIm5vbmVcIj5cbiAgICAgICAgPGJtYi1wcm9ncmVzcy1iYXJcbiAgICAgICAgICBhcHBlYXJhbmNlPVwiaW5mb1wiXG4gICAgICAgICAgdHlwZT1cImNvbnRhaW5lclwiXG4gICAgICAgICAgW2NvdW50ZXJdPVwiY291bnRlcigpXCJcbiAgICAgICAgICBbdG90YWxDb3VudF09XCJ0b3RhbENvdW50KClcIlxuICAgICAgICAgIFt0aXRsZV09XCJwcm9ncmVzc1RpdGxlKClcIlxuICAgICAgICAvPlxuICAgICAgPC9ibWItY2FyZC1jb250ZW50PlxuICAgIDwvYm1iLWNhcmQ+XG4gICAgPGJtYi1jYXJkPlxuICAgICAgPGJtYi1jYXJkLWNvbnRlbnQ+XG4gICAgICAgIDxwIGNsYXNzPVwiYm1iX2FjY291bnQtc3RhdGVtZW50LWNvbnRlbnQtZGF0ZVwiPlxuICAgICAgICAgIDxzcGFuPnt7IGN1dE9mZkRhdGVMYWJlbCgpIH19PC9zcGFuPlxuICAgICAgICAgIDxzcGFuPnt7IGdldEZvcm1hdHRlZERhdGUoY3V0T2ZmRGF0ZSgpKSB9fTwvc3Bhbj5cbiAgICAgICAgPC9wPlxuICAgICAgICA8Ym1iLWRpdmlkZXIgLz5cbiAgICAgICAgPHAgY2xhc3M9XCJibWJfYWNjb3VudC1zdGF0ZW1lbnQtY29udGVudC1kYXRlXCI+XG4gICAgICAgICAgPHNwYW4+e3sgcGF5bWVudERlYWRsaW5lTGFiZWwoKSB9fTwvc3Bhbj5cbiAgICAgICAgICA8c3Bhbj57eyBnZXRGb3JtYXR0ZWREYXRlKHBheW1lbnREZWFkbGluZSgpKSB9fTwvc3Bhbj5cbiAgICAgICAgPC9wPlxuICAgICAgPC9ibWItY2FyZC1jb250ZW50PlxuICAgIDwvYm1iLWNhcmQ+XG4gIDwvbWFpbj5cbiAgPGZvb3RlciBjbGFzcz1cImJtYl9hY2NvdW50LXN0YXRlbWVudC1mb290ZXJcIj5cbiAgICA8YnV0dG9uXG4gICAgICBibWJCdXR0b25cbiAgICAgIHNpemU9XCJsYXJnZVwiXG4gICAgICBhcHBlYXJhbmNlPVwic2Vjb25kYXJ5LW91dGxpbmVkXCJcbiAgICAgIChjbGljayk9XCJoYW5kbGVCYWNrKCRldmVudClcIlxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgPlxuICAgICAge3sgYmFja0J1dHRvbkxhYmVsKCkgfX1cbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uIChjbGljayk9XCJoYW5kbGVQYXkoKVwiIGJtYkJ1dHRvbiBzaXplPVwibGFyZ2VcIiB0eXBlPVwiYnV0dG9uXCI+XG4gICAgICB7eyBwYXlCdXR0b25MYWJlbCgpIH19XG4gICAgPC9idXR0b24+XG4gIDwvZm9vdGVyPlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjbW9kYWxUZW1wbGF0ZT5cbiAgPHNlY3Rpb24gY2xhc3M9XCJibWJfYWNjb3VudC1zdGF0ZW1lbnQtbW9kYWxcIj5cbiAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImFtb3VudEZvcm1cIiAobmdTdWJtaXQpPVwiaGFuZGxlU3VibWl0KClcIj5cbiAgICAgIDxibWItcHJvZ3Jlc3MtYmFyXG4gICAgICAgIGFwcGVhcmFuY2U9XCJpbmZvXCJcbiAgICAgICAgdHlwZT1cImNvbnRhaW5lclwiXG4gICAgICAgIFtjb3VudGVyXT1cImNvdW50ZXIoKVwiXG4gICAgICAgIFt0b3RhbENvdW50XT1cInRvdGFsQ291bnQoKVwiXG4gICAgICAgIFt0aXRsZV09XCJwcm9ncmVzc1RpdGxlKClcIlxuICAgICAgLz5cbiAgICAgIDxibWItZGl2aWRlciAvPlxuICAgICAgPGxhYmVsXG4gICAgICAgIGNsYXNzPVwiYm1iX2FjY291bnQtc3RhdGVtZW50LW1vZGFsLWxhYmVsXCJcbiAgICAgICAgYm1iTGF5b3V0XG4gICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICBbZHluYW1pY0NvbHNdPVwidHJ1ZVwiXG4gICAgICA+XG4gICAgICAgIDxibWItcmFkaWFsXG4gICAgICAgICAgaWQ9XCJtb2RhbFJlc3RJbnB1dFwiXG4gICAgICAgICAgbmFtZT1cIm1vZGFsQW1vdW50XCJcbiAgICAgICAgICBbY2hlY2tlZF09XCJ0cnVlXCJcbiAgICAgICAgICAoY2hhbmdlKT1cImhhbmRsZUFjdGl2ZUN1c3RvbUFtb3VudCgkZXZlbnQpXCJcbiAgICAgICAgICB2YWx1ZT1cIm1vZGFsUmVzdElucHV0XCJcbiAgICAgICAgLz5cbiAgICAgICAgPHNwYW4gYm1iTGF5b3V0SXRlbSBbY29sR3Jvd109XCIxXCI+XG4gICAgICAgICAge3sgbW9kYWxSZXN0TGFiZWwoKSB9fVxuICAgICAgICAgIDxiciAvPlxuICAgICAgICAgIHt7IGdldEZvcm1hdHRlZEFtb3VudCh0b3RhbENvdW50KCkgLSBjb3VudGVyKCkpIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvbGFiZWw+XG4gICAgICA8Ym1iLWRpdmlkZXIgLz5cbiAgICAgIDxsYWJlbFxuICAgICAgICBjbGFzcz1cImJtYl9hY2NvdW50LXN0YXRlbWVudC1tb2RhbC1sYWJlbFwiXG4gICAgICAgIGJtYkxheW91dFxuICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgW2R5bmFtaWNDb2xzXT1cInRydWVcIlxuICAgICAgPlxuICAgICAgICA8Ym1iLXJhZGlhbFxuICAgICAgICAgIGlkPVwibW9kYWxPdGhlckFtb3VudElucHV0XCJcbiAgICAgICAgICBuYW1lPVwibW9kYWxBbW91bnRcIlxuICAgICAgICAgIChjaGFuZ2UpPVwiaGFuZGxlQWN0aXZlQ3VzdG9tQW1vdW50KCRldmVudClcIlxuICAgICAgICAgIHZhbHVlPVwibW9kYWxPdGhlckFtb3VudElucHV0XCJcbiAgICAgICAgLz5cbiAgICAgICAgPHNwYW4gYm1iTGF5b3V0SXRlbSBbY29sR3Jvd109XCIxXCI+XG4gICAgICAgICAge3sgbW9kYWxPdGhlckFtb3VudExhYmVsKCkgfX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9sYWJlbD5cbiAgICAgIEBpZiAoaXNFbmFibGVDdXN0b21BbW91bnQpIHtcbiAgICAgICAgPGJtYi1pbnB1dFxuICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxuICAgICAgICAgIFttYXhdPVwidG90YWxDb3VudCgpIC0gY291bnRlcigpXCJcbiAgICAgICAgICBbbWluXT1cIjFcIlxuICAgICAgICAgIHBhdHRlcm49XCJcXGQqXCJcbiAgICAgICAgICBbZXJyb3JNZXNzYWdlXT1cImVycm9yTWVzc2FnZSgpXCJcbiAgICAgICAgICBbaXNSZXF1aXJlZF09XCJ0cnVlXCJcbiAgICAgICAgICBbY29udHJvbF09XCJnZXRGb3JtQ29udHJvbCgnYW1vdW50JylcIlxuICAgICAgICAgIFtzaG93RXJyb3JdPVwic2hvd0Vycm9yc1snYW1vdW50J11cIlxuICAgICAgICAvPlxuICAgICAgfVxuICAgICAgPGZvb3RlciBjbGFzcz1cImJtYl9hY2NvdW50LXN0YXRlbWVudC1mb290ZXJcIj5cbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgYm1iQnV0dG9uIHNpemU9XCJsYXJnZVwiPlxuICAgICAgICAgIHt7IG1vZGFsUHJpbWFyeUJ1dHRvbkxhYmVsKCkgfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Zvb3Rlcj5cbiAgICA8L2Zvcm0+XG4gIDwvc2VjdGlvbj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=