@ti-tecnologico-de-monterrey-oficial/ds-ng 1.5.1020 → 1.5.1117

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 (435) hide show
  1. package/assets/images/gif/mitecLogoIntroMobile.gif +0 -0
  2. package/assets/images/gif/mitecLogoIntroWeb.gif +0 -0
  3. package/assets/images/lang-flags/mx.svg +392 -0
  4. package/assets/images/lang-flags/us.svg +13 -0
  5. package/assets/styles/main.min.css +1 -1
  6. package/assets/styles/main.min.css.map +1 -1
  7. package/assets/svg/neutral_fill.svg +1 -0
  8. package/assets/svg/primary_fill.svg +1 -0
  9. package/esm2022/lib/components/bmb-academic-progress/bmb-academic-progress.component.mjs +87 -0
  10. package/esm2022/lib/components/bmb-accordion/bmb-accordion.component.mjs +159 -0
  11. package/esm2022/lib/components/bmb-account-statement/bmb-account-statement.component.mjs +150 -0
  12. package/esm2022/lib/components/bmb-action-icon/bmb-action-icon.component.mjs +49 -0
  13. package/esm2022/lib/components/bmb-action-menu/bmb-action-menu.component.mjs +31 -0
  14. package/esm2022/lib/components/bmb-advertisement-card/bmb-advertisement-card.component.mjs +35 -0
  15. package/esm2022/lib/components/bmb-advertisement-card/types.mjs +2 -0
  16. package/esm2022/lib/components/bmb-alert-center/bmb-alert-center-ads/bmb-alert-center-ads.component.mjs +40 -0
  17. package/esm2022/lib/components/bmb-alert-center/bmb-alert-center-empty/bmb-alert-center-empty.component.mjs +18 -0
  18. package/esm2022/lib/components/bmb-alert-center/bmb-alert-center-form/bmb-alert-center-form.component.mjs +148 -0
  19. package/esm2022/lib/components/bmb-alert-center/bmb-alert-center-list/bmb-alert-center-list.component.mjs +52 -0
  20. package/esm2022/lib/components/bmb-alert-center/bmb-alert-center.component.mjs +196 -0
  21. package/esm2022/lib/components/bmb-alert-center/bmb-alert-center.service.mjs +62 -0
  22. package/esm2022/lib/components/bmb-alert-center/types.mjs +2 -0
  23. package/esm2022/lib/components/bmb-badge/bmb-badge.component.mjs +26 -0
  24. package/esm2022/lib/components/bmb-balance-overview/bmb-balance-overview.component.mjs +26 -0
  25. package/esm2022/lib/components/bmb-bookmark/bmb-bookmark.component.mjs +27 -0
  26. package/esm2022/lib/components/bmb-bottom-navigation-bar/bmb-bottom-navigation-bar.component.mjs +42 -0
  27. package/esm2022/lib/components/bmb-breadcrumb/bmb-breadcrumb.component.mjs +55 -0
  28. package/esm2022/lib/components/bmb-button-icon/bmb-button-icon.component.mjs +30 -0
  29. package/esm2022/lib/components/bmb-calendar/bmb-calendar.component.mjs +262 -0
  30. package/esm2022/lib/components/bmb-calendar/common/bmb-calendar-header/bmb-calendar-header.component.mjs +95 -0
  31. package/esm2022/lib/components/bmb-calendar/common/bmb-calendar-hour-view/bmb-calendar-hour-view.component.mjs +40 -0
  32. package/esm2022/lib/components/bmb-calendar/common/bmb-calendar-schedule-cards/bmb-calendar-schedule-cards.component.mjs +68 -0
  33. package/esm2022/lib/components/bmb-calendar/common/bmb-calendar-template-day/bmb-calendar-template-day.component.mjs +41 -0
  34. package/esm2022/lib/components/bmb-calendar/common/bmb-calendar-template-event-list/bmb-calendar-template-event-list.component.mjs +63 -0
  35. package/esm2022/lib/components/bmb-calendar/common/bmb-calendar-template-mobile/bmb-calendar-template-mobile.component.mjs +95 -0
  36. package/esm2022/lib/components/bmb-calendar/common/bmb-calendar-template-month/bmb-calendar-template-month.component.mjs +45 -0
  37. package/esm2022/lib/components/bmb-calendar/common/bmb-calendar-template-week/bmb-calendar-template-week.component.mjs +54 -0
  38. package/esm2022/lib/components/bmb-calendar/common/bmb-calendar-time-indicator/bmb-calendar-time-indicator.component.mjs +24 -0
  39. package/esm2022/lib/components/bmb-calendar/types.mjs +2 -0
  40. package/esm2022/lib/components/bmb-calendar/utils.mjs +96 -0
  41. package/esm2022/lib/components/bmb-card/bmb-card.component.mjs +154 -0
  42. package/esm2022/lib/components/bmb-card-button/bmb-card-button.component.mjs +76 -0
  43. package/esm2022/lib/components/bmb-carousel/bmb-carousel.component.mjs +80 -0
  44. package/esm2022/lib/components/bmb-chat-bar/bmb-chat-bar.component.mjs +175 -0
  45. package/esm2022/lib/components/bmb-chat-bar/bot_list.mjs +57 -0
  46. package/esm2022/lib/components/bmb-chat-bar/types.mjs +2 -0
  47. package/esm2022/lib/components/bmb-chat-bubbles/bmb-chat-bubbles.component.mjs +56 -0
  48. package/esm2022/lib/components/bmb-chat-bubbles/types.mjs +2 -0
  49. package/esm2022/lib/components/bmb-check-external-link-button/bmb-check-external-link-button.component.mjs +46 -0
  50. package/esm2022/lib/components/bmb-checkbox/bmb-checkbox.component.mjs +80 -0
  51. package/esm2022/lib/components/bmb-chevron-title-selector/bmb-chevron-title-selector.component.mjs +36 -0
  52. package/esm2022/lib/components/bmb-container/bmb-container.component.mjs +27 -0
  53. package/esm2022/lib/components/bmb-container-button/bmb-container-button.component.mjs +83 -0
  54. package/esm2022/lib/components/bmb-date-range/bmb-date-range.component.mjs +69 -0
  55. package/esm2022/lib/components/bmb-datepicker/bmb-datepicker-modal/bmb-datepicker-modal.component.mjs +211 -0
  56. package/esm2022/lib/components/bmb-datepicker/bmb-datepicker.component.mjs +123 -0
  57. package/esm2022/lib/components/bmb-digital-id/bmb-digital-id.component.mjs +54 -0
  58. package/esm2022/lib/components/bmb-divider/bmb-divider.component.mjs +25 -0
  59. package/esm2022/lib/components/bmb-dot-paginator/bmb-dot-paginator.component.mjs +34 -0
  60. package/esm2022/lib/components/bmb-drawer-overlay/bmb-drawer-overlay.component.mjs +54 -0
  61. package/esm2022/lib/components/bmb-dropdown/bmb-dropdown.component.mjs +200 -0
  62. package/esm2022/lib/components/bmb-dropdown-menu/bmb-dropdown-menu.component.mjs +28 -0
  63. package/esm2022/lib/components/bmb-dropzone/bmb-dropzone.component.mjs +175 -0
  64. package/esm2022/lib/components/bmb-evaluation-rubric/bmb-evaluation-rubric.component.mjs +76 -0
  65. package/esm2022/lib/components/bmb-external-link/bmb-external-link.component.mjs +78 -0
  66. package/esm2022/lib/components/bmb-fab/bmb-fab-.interface.mjs +9 -0
  67. package/esm2022/lib/components/bmb-fab/bmb-fab.component.mjs +37 -0
  68. package/esm2022/lib/components/bmb-filter-card/bmb-filter-card.component.mjs +154 -0
  69. package/esm2022/lib/components/bmb-filter-card/bmb-filter-card.interface.mjs +2 -0
  70. package/esm2022/lib/components/bmb-focus-element/bmb-focus-element.component.mjs +36 -0
  71. package/esm2022/lib/components/bmb-form-validation/bmb-form-validation.component.mjs +159 -0
  72. package/esm2022/lib/components/bmb-form-validator/bmb-form-validator.component.mjs +159 -0
  73. package/esm2022/lib/components/bmb-frequent-apps-selector/bmb-frequent-apps-selector.component.mjs +29 -0
  74. package/esm2022/lib/components/bmb-grade-value/bmb-grade-value.component.mjs +22 -0
  75. package/esm2022/lib/components/bmb-grades/bmb-grades.component.mjs +181 -0
  76. package/esm2022/lib/components/bmb-grades/types.mjs +2 -0
  77. package/esm2022/lib/components/bmb-header-mitec/bmb-header-mitec.component.mjs +55 -0
  78. package/esm2022/lib/components/bmb-header-mobile/bmb-header-mobile.component.mjs +49 -0
  79. package/esm2022/lib/components/bmb-hito-card/bmb-hito-card.component.mjs +77 -0
  80. package/esm2022/lib/components/bmb-hito-list/bmb-hito-list.component.mjs +59 -0
  81. package/esm2022/lib/components/bmb-home-card/bmb-home-card-header/bmb-home-card-header.component.mjs +76 -0
  82. package/esm2022/lib/components/bmb-home-card/bmb-home-card.component.mjs +41 -0
  83. package/esm2022/lib/components/bmb-home-card-chat/bmb-home-card-chat.component.mjs +39 -0
  84. package/esm2022/lib/components/bmb-home-section/bmb-home-section.component.mjs +20 -0
  85. package/esm2022/lib/components/bmb-icon/bmb-icon.component.mjs +49 -0
  86. package/esm2022/lib/components/bmb-icon/types.mjs +2 -0
  87. package/esm2022/lib/components/bmb-icon-item/bmb-icon-item.component.mjs +23 -0
  88. package/esm2022/lib/components/bmb-icon-status/bmb-icon-status.component.mjs +24 -0
  89. package/esm2022/lib/components/bmb-iframe/bmb-iframe.component.mjs +19 -0
  90. package/esm2022/lib/components/bmb-iframe/bmb-iframe.pipe.mjs +21 -0
  91. package/esm2022/lib/components/bmb-image/bmb-image.component.mjs +33 -0
  92. package/esm2022/lib/components/bmb-inner-header/bmb-inner-header.component.mjs +77 -0
  93. package/esm2022/lib/components/bmb-input/bmb-input-content/bmb-input-content.component.mjs +147 -0
  94. package/esm2022/lib/components/bmb-input/bmb-input-validation/bmb-input-validation.component.mjs +162 -0
  95. package/esm2022/lib/components/bmb-input/bmb-input-validation/bmb-input-validation.service.mjs +116 -0
  96. package/esm2022/lib/components/bmb-input/bmb-input-validator/bmb-input-validator.component.mjs +178 -0
  97. package/esm2022/lib/components/bmb-input/bmb-input.component.mjs +85 -0
  98. package/esm2022/lib/components/bmb-input-phone-number/bmb-input-phone-number.component.mjs +219 -0
  99. package/esm2022/lib/components/bmb-input-tags/bmb-input-tags.component.mjs +191 -0
  100. package/esm2022/lib/components/bmb-interactive-icon/bmb-interactive-icon.component.mjs +54 -0
  101. package/esm2022/lib/components/bmb-invoice/bmb-invoice.component.mjs +34 -0
  102. package/esm2022/lib/components/bmb-item/bmb-item.component.mjs +28 -0
  103. package/esm2022/lib/components/bmb-legend/bmb-legend.component.mjs +23 -0
  104. package/esm2022/lib/components/bmb-list-group/bmb-list-group-item/bmb-list-group-item.component.mjs +83 -0
  105. package/esm2022/lib/components/bmb-list-group/bmb-list-group.component.mjs +60 -0
  106. package/esm2022/lib/components/bmb-list-group/bmb-list-group.service.mjs +55 -0
  107. package/esm2022/lib/components/bmb-list-group/types.mjs +2 -0
  108. package/esm2022/lib/components/bmb-list-items/bmb-list-items.component.mjs +83 -0
  109. package/esm2022/lib/components/bmb-loader/bmb-loader.component.mjs +77 -0
  110. package/esm2022/lib/components/bmb-login/bmb-login-content/bmb-login-content.component.mjs +55 -0
  111. package/esm2022/lib/components/bmb-login/bmb-login.component.mjs +66 -0
  112. package/esm2022/lib/components/bmb-login-onboarding/bmb-login-onboarding-logged/bmb-login-onboarding-logged.component.mjs +40 -0
  113. package/esm2022/lib/components/bmb-login-onboarding/bmb-login-onboarding-login/bmb-login-onboarding-login.component.mjs +20 -0
  114. package/esm2022/lib/components/bmb-login-onboarding/bmb-login-onboarding-logout/bmb-login-onboarding-logout.component.mjs +33 -0
  115. package/esm2022/lib/components/bmb-login-onboarding/bmb-login-onboarding-stepper/bmb-login-onboarding-stepper-steps/bmb-login-onboarding-stepper-step-four.component.mjs +87 -0
  116. package/esm2022/lib/components/bmb-login-onboarding/bmb-login-onboarding-stepper/bmb-login-onboarding-stepper-steps/bmb-login-onboarding-stepper-step-one.component.mjs +88 -0
  117. package/esm2022/lib/components/bmb-login-onboarding/bmb-login-onboarding-stepper/bmb-login-onboarding-stepper-steps/bmb-login-onboarding-stepper-step-three.component.mjs +57 -0
  118. package/esm2022/lib/components/bmb-login-onboarding/bmb-login-onboarding-stepper/bmb-login-onboarding-stepper-steps/bmb-login-onboarding-stepper-step-two.component.mjs +99 -0
  119. package/esm2022/lib/components/bmb-login-onboarding/bmb-login-onboarding-stepper/bmb-login-onboarding-stepper-steps/bmb-login-onboarding-stepper-step.component.mjs +39 -0
  120. package/esm2022/lib/components/bmb-login-onboarding/bmb-login-onboarding-stepper/bmb-login-onboarding-stepper.component.mjs +44 -0
  121. package/esm2022/lib/components/bmb-login-onboarding/bmb-login-onboarding.component.mjs +52 -0
  122. package/esm2022/lib/components/bmb-login-onboarding/bmb-login-onboarding.service.mjs +70 -0
  123. package/esm2022/lib/components/bmb-login-onboarding/types.mjs +2 -0
  124. package/esm2022/lib/components/bmb-logo/bmb-logo.component.mjs +43 -0
  125. package/esm2022/lib/components/bmb-media-card/bmb-media-card.component.mjs +64 -0
  126. package/esm2022/lib/components/bmb-mitec-logo-animation/bmb-mitec-logo-animation.component.mjs +14 -0
  127. package/esm2022/lib/components/bmb-mobile-templates/bmb-mobile-templates.component.mjs +88 -0
  128. package/esm2022/lib/components/bmb-modal/bmb-modal.component.mjs +139 -0
  129. package/esm2022/lib/components/bmb-modal/bmb-modal.interface.mjs +2 -0
  130. package/esm2022/lib/components/bmb-modal/bmb-native-modal.component.mjs +84 -0
  131. package/esm2022/lib/components/bmb-multi-dot-paginator/bmb-multi-dot-paginator-item/bmb-multi-dot-paginator-item.component.mjs +15 -0
  132. package/esm2022/lib/components/bmb-multi-dot-paginator/bmb-multi-dot-paginator.component.mjs +59 -0
  133. package/esm2022/lib/components/bmb-navigation-bar/bmb-navigation-bar.component.mjs +30 -0
  134. package/esm2022/lib/components/bmb-notice-card/bmb-notice-card.component.mjs +43 -0
  135. package/esm2022/lib/components/bmb-notification-card/bmb-notification-card.component.mjs +86 -0
  136. package/esm2022/lib/components/bmb-overlay/bmb-overlay.component.mjs +22 -0
  137. package/esm2022/lib/components/bmb-paginator/bmb-paginator.component.mjs +52 -0
  138. package/esm2022/lib/components/bmb-portal/bmb-portal.component.mjs +52 -0
  139. package/esm2022/lib/components/bmb-profile/bmb-profile.component.mjs +153 -0
  140. package/esm2022/lib/components/bmb-progress-bar/bmb-progress-bar.component.mjs +39 -0
  141. package/esm2022/lib/components/bmb-progress-cirlce/bmb-progress-circle.component.mjs +196 -0
  142. package/esm2022/lib/components/bmb-progress-cirlce/bmb-progress-circle.interface.mjs +2 -0
  143. package/esm2022/lib/components/bmb-pull-wedge/bmb-pull-wedge.component.mjs +88 -0
  144. package/esm2022/lib/components/bmb-push-notification/bmb-push-notification-item/bmb-push-notification-item.component.mjs +75 -0
  145. package/esm2022/lib/components/bmb-push-notification/bmb-push-notification.component.mjs +24 -0
  146. package/esm2022/lib/components/bmb-push-notification/types.mjs +2 -0
  147. package/esm2022/lib/components/bmb-radial/bmb-radial.component.mjs +78 -0
  148. package/esm2022/lib/components/bmb-search-input/bmb-search-input.component.mjs +117 -0
  149. package/esm2022/lib/components/bmb-select/bmb-select-item/bmb-select-item.component.mjs +16 -0
  150. package/esm2022/lib/components/bmb-select/bmb-select.component.mjs +55 -0
  151. package/esm2022/lib/components/bmb-server-table/bmb-server-table.component.mjs +82 -0
  152. package/esm2022/lib/components/bmb-sidebar/bmb-sidebar.component.mjs +103 -0
  153. package/esm2022/lib/components/bmb-sidebar/bmb-sidebar.interface.mjs +2 -0
  154. package/esm2022/lib/components/bmb-simple-header/bmb-simple-header.component.mjs +64 -0
  155. package/esm2022/lib/components/bmb-skeleton/bmb-skeleton.component.mjs +16 -0
  156. package/esm2022/lib/components/bmb-sounds-card/bmb-sounds-card.component.mjs +64 -0
  157. package/esm2022/lib/components/bmb-stat-counter/bmb-stat-counter.component.mjs +32 -0
  158. package/esm2022/lib/components/bmb-step-progress-bar/bmb-step-progress-bar.component.mjs +53 -0
  159. package/esm2022/lib/components/bmb-student-activity-card/bmb-student-activity-card.component.mjs +53 -0
  160. package/esm2022/lib/components/bmb-student-activity-selector/bmb-student-activity-tab/bmb-student-activity-tab.component.mjs +27 -0
  161. package/esm2022/lib/components/bmb-switch/bmb-switch.component.mjs +88 -0
  162. package/esm2022/lib/components/bmb-tables/bmb-tables.component.mjs +545 -0
  163. package/esm2022/lib/components/bmb-tables/bmb-tables.interface.mjs +2 -0
  164. package/esm2022/lib/components/bmb-tabs/bmb-tabs.component.mjs +127 -0
  165. package/esm2022/lib/components/bmb-tags/bmb-tags.component.mjs +65 -0
  166. package/esm2022/lib/components/bmb-text-editor/bmb-text-editor.component.mjs +135 -0
  167. package/esm2022/lib/components/bmb-text-link/bmb-text-link.component.mjs +43 -0
  168. package/esm2022/lib/components/bmb-theme/bmb-theme.component.mjs +65 -0
  169. package/esm2022/lib/components/bmb-three-cols/bmb-three-cols.component.mjs +30 -0
  170. package/esm2022/lib/components/bmb-timestream/bmb-timestream-detail/bmb-timestream-detail.component.mjs +74 -0
  171. package/esm2022/lib/components/bmb-timestream/bmb-timestream-error/bmb-timestream-error.component.mjs +13 -0
  172. package/esm2022/lib/components/bmb-timestream/bmb-timestream.component.mjs +238 -0
  173. package/esm2022/lib/components/bmb-timestream/types.mjs +2 -0
  174. package/esm2022/lib/components/bmb-timestream-card/bmb-timestream-card.component.mjs +139 -0
  175. package/esm2022/lib/components/bmb-title-content/bmb-title-content.component.mjs +61 -0
  176. package/esm2022/lib/components/bmb-toast/bmb-toast.component.mjs +47 -0
  177. package/esm2022/lib/components/bmb-tooltip/bmb-tooltip.component.mjs +26 -0
  178. package/esm2022/lib/components/bmb-top-bar/bmb-top-bar-item/bmb-top-bar-item.component.mjs +31 -0
  179. package/esm2022/lib/components/bmb-top-bar/bmb-top-bar-user-section/bmb-top-bar-user-section.component.mjs +70 -0
  180. package/esm2022/lib/components/bmb-top-bar/bmb-top-bar.component.mjs +122 -0
  181. package/esm2022/lib/components/bmb-top-bar/types.mjs +2 -0
  182. package/esm2022/lib/components/bmb-totp/bmb-totp.component.mjs +138 -0
  183. package/esm2022/lib/components/bmb-user-image/bmb-user-image.component.mjs +44 -0
  184. package/esm2022/lib/components/bmb-user-profile/bmb-user-profile-content/bmb-user-profile-content.component.mjs +19 -0
  185. package/esm2022/lib/components/bmb-user-profile/bmb-user-profile.component.mjs +71 -0
  186. package/esm2022/lib/components/bmb-user-summary/bmb-user-summary-content/bmb-user-summary-content.component.mjs +51 -0
  187. package/esm2022/lib/components/bmb-user-summary/bmb-user-summary.component.mjs +28 -0
  188. package/esm2022/lib/components/bmb-value-counter/bmb-value-counter.component.mjs +23 -0
  189. package/esm2022/lib/components/bmb-web-templates/bmb-web-templates.component.mjs +85 -0
  190. package/esm2022/lib/components/bmb-wheel-menu/bmb-wheel-menu.component.mjs +128 -0
  191. package/esm2022/lib/components/utils/bmb-dropdown-content/bmb-dropdown-content.component.mjs +55 -0
  192. package/esm2022/lib/directives/bmb-accordion/bmb-accordion-control.directive.mjs +88 -0
  193. package/esm2022/lib/directives/bmb-button/button.directive.mjs +84 -0
  194. package/esm2022/lib/directives/bmb-button-group/bmb-button-group.directive.mjs +29 -0
  195. package/esm2022/lib/directives/bmb-layout/bmb-layout-item.directive.mjs +51 -0
  196. package/esm2022/lib/directives/bmb-layout/bmb-layout.directive.mjs +36 -0
  197. package/esm2022/lib/directives/bmb-layout/bmb-vertical-layout/bmb-vertical-layout-item.directive.mjs +34 -0
  198. package/esm2022/lib/directives/bmb-layout/bmb-vertical-layout/bmb-vertical-layout.directive.mjs +37 -0
  199. package/esm2022/lib/directives/bmb-layout-grid/bmb-layout-grid.directive.mjs +89 -0
  200. package/esm2022/lib/directives/utils/clickoutside.directive.mjs +41 -0
  201. package/esm2022/lib/ds-ng.component.mjs +11 -0
  202. package/esm2022/lib/ds-ng.service.mjs +14 -0
  203. package/esm2022/lib/services/calendar.service.mjs +51 -0
  204. package/esm2022/lib/services/index.mjs +3 -0
  205. package/esm2022/lib/services/native-modal.service.mjs +69 -0
  206. package/esm2022/lib/services/notification.service.mjs +77 -0
  207. package/esm2022/lib/services/tabs.service.mjs +30 -0
  208. package/esm2022/lib/services/theme.service.mjs +30 -0
  209. package/esm2022/lib/services/toast.service.mjs +24 -0
  210. package/esm2022/lib/services/user/profile.service.mjs +26 -0
  211. package/esm2022/lib/types/colors.mjs +2 -0
  212. package/esm2022/lib/types/index.mjs +11 -0
  213. package/esm2022/lib/utils/countryCodes.mjs +1089 -0
  214. package/esm2022/lib/utils/currencyFormat.mjs +7 -0
  215. package/esm2022/lib/utils/dropdown.mjs +85 -0
  216. package/esm2022/lib/utils/formControl.mjs +25 -0
  217. package/esm2022/lib/utils/timestreamFilters.mjs +32 -0
  218. package/esm2022/lib/utils/utils.mjs +66 -0
  219. package/esm2022/public-api.mjs +151 -0
  220. package/esm2022/ti-tecnologico-de-monterrey-oficial-ds-ng.mjs +5 -0
  221. package/fesm2022/ti-tecnologico-de-monterrey-oficial-ds-ng.mjs +3710 -3143
  222. package/fesm2022/ti-tecnologico-de-monterrey-oficial-ds-ng.mjs.map +1 -1
  223. package/index.d.ts +5 -3573
  224. package/lib/components/bmb-academic-progress/bmb-academic-progress.component.d.ts +21 -0
  225. package/lib/components/bmb-accordion/bmb-accordion.component.d.ts +37 -0
  226. package/lib/components/bmb-account-statement/bmb-account-statement.component.d.ts +54 -0
  227. package/lib/components/bmb-action-icon/bmb-action-icon.component.d.ts +23 -0
  228. package/lib/components/bmb-action-menu/bmb-action-menu.component.d.ts +17 -0
  229. package/lib/components/bmb-advertisement-card/bmb-advertisement-card.component.d.ts +13 -0
  230. package/lib/components/bmb-advertisement-card/types.d.ts +21 -0
  231. package/lib/components/bmb-alert-center/bmb-alert-center-ads/bmb-alert-center-ads.component.d.ts +10 -0
  232. package/lib/components/bmb-alert-center/bmb-alert-center-empty/bmb-alert-center-empty.component.d.ts +7 -0
  233. package/lib/components/bmb-alert-center/bmb-alert-center-form/bmb-alert-center-form.component.d.ts +31 -0
  234. package/lib/components/bmb-alert-center/bmb-alert-center-list/bmb-alert-center-list.component.d.ts +20 -0
  235. package/lib/components/bmb-alert-center/bmb-alert-center.component.d.ts +46 -0
  236. package/lib/components/bmb-alert-center/bmb-alert-center.service.d.ts +20 -0
  237. package/lib/components/bmb-alert-center/types.d.ts +64 -0
  238. package/lib/components/bmb-badge/bmb-badge.component.d.ts +11 -0
  239. package/lib/components/bmb-balance-overview/bmb-balance-overview.component.d.ts +15 -0
  240. package/lib/components/bmb-bookmark/bmb-bookmark.component.d.ts +8 -0
  241. package/lib/components/bmb-bottom-navigation-bar/bmb-bottom-navigation-bar.component.d.ts +25 -0
  242. package/lib/components/bmb-breadcrumb/bmb-breadcrumb.component.d.ts +27 -0
  243. package/lib/components/bmb-button-icon/bmb-button-icon.component.d.ts +16 -0
  244. package/lib/components/bmb-calendar/bmb-calendar.component.d.ts +65 -0
  245. package/lib/components/bmb-calendar/common/bmb-calendar-header/bmb-calendar-header.component.d.ts +20 -0
  246. package/lib/components/bmb-calendar/common/bmb-calendar-hour-view/bmb-calendar-hour-view.component.d.ts +13 -0
  247. package/lib/components/bmb-calendar/common/bmb-calendar-schedule-cards/bmb-calendar-schedule-cards.component.d.ts +16 -0
  248. package/lib/components/bmb-calendar/common/bmb-calendar-template-day/bmb-calendar-template-day.component.d.ts +18 -0
  249. package/lib/components/bmb-calendar/common/bmb-calendar-template-event-list/bmb-calendar-template-event-list.component.d.ts +17 -0
  250. package/lib/components/bmb-calendar/common/bmb-calendar-template-mobile/bmb-calendar-template-mobile.component.d.ts +31 -0
  251. package/lib/components/bmb-calendar/common/bmb-calendar-template-month/bmb-calendar-template-month.component.d.ts +18 -0
  252. package/lib/components/bmb-calendar/common/bmb-calendar-template-week/bmb-calendar-template-week.component.d.ts +23 -0
  253. package/lib/components/bmb-calendar/common/bmb-calendar-time-indicator/bmb-calendar-time-indicator.component.d.ts +9 -0
  254. package/lib/components/bmb-calendar/types.d.ts +43 -0
  255. package/lib/components/bmb-calendar/utils.d.ts +12 -0
  256. package/lib/components/bmb-card/bmb-card.component.d.ts +42 -0
  257. package/lib/components/bmb-card-button/bmb-card-button.component.d.ts +50 -0
  258. package/lib/components/bmb-carousel/bmb-carousel.component.d.ts +20 -0
  259. package/lib/components/bmb-chat-bar/bmb-chat-bar.component.d.ts +62 -0
  260. package/lib/components/bmb-chat-bar/bot_list.d.ts +6 -0
  261. package/lib/components/bmb-chat-bar/types.d.ts +9 -0
  262. package/lib/components/bmb-chat-bubbles/bmb-chat-bubbles.component.d.ts +23 -0
  263. package/lib/components/bmb-chat-bubbles/types.d.ts +23 -0
  264. package/lib/components/bmb-check-external-link-button/bmb-check-external-link-button.component.d.ts +21 -0
  265. package/lib/components/bmb-checkbox/bmb-checkbox.component.d.ts +33 -0
  266. package/lib/components/bmb-chevron-title-selector/bmb-chevron-title-selector.component.d.ts +17 -0
  267. package/lib/components/bmb-container/bmb-container.component.d.ts +9 -0
  268. package/lib/components/bmb-container-button/bmb-container-button.component.d.ts +30 -0
  269. package/lib/components/bmb-date-range/bmb-date-range.component.d.ts +35 -0
  270. package/lib/components/bmb-datepicker/bmb-datepicker-modal/bmb-datepicker-modal.component.d.ts +40 -0
  271. package/lib/components/bmb-datepicker/bmb-datepicker.component.d.ts +44 -0
  272. package/lib/components/bmb-digital-id/bmb-digital-id.component.d.ts +26 -0
  273. package/lib/components/bmb-divider/bmb-divider.component.d.ts +8 -0
  274. package/lib/components/bmb-dot-paginator/bmb-dot-paginator.component.d.ts +17 -0
  275. package/lib/components/bmb-drawer-overlay/bmb-drawer-overlay.component.d.ts +24 -0
  276. package/lib/components/bmb-dropdown/bmb-dropdown.component.d.ts +61 -0
  277. package/lib/components/bmb-dropdown-menu/bmb-dropdown-menu.component.d.ts +10 -0
  278. package/lib/components/bmb-dropzone/bmb-dropzone.component.d.ts +49 -0
  279. package/lib/components/bmb-evaluation-rubric/bmb-evaluation-rubric.component.d.ts +45 -0
  280. package/lib/components/bmb-external-link/bmb-external-link.component.d.ts +22 -0
  281. package/lib/components/bmb-fab/bmb-fab-.interface.d.ts +10 -0
  282. package/lib/components/bmb-fab/bmb-fab.component.d.ts +15 -0
  283. package/lib/components/bmb-filter-card/bmb-filter-card.component.d.ts +33 -0
  284. package/lib/components/bmb-filter-card/bmb-filter-card.interface.d.ts +10 -0
  285. package/lib/components/bmb-focus-element/bmb-focus-element.component.d.ts +14 -0
  286. package/lib/components/bmb-form-validation/bmb-form-validation.component.d.ts +34 -0
  287. package/lib/components/bmb-form-validator/bmb-form-validator.component.d.ts +34 -0
  288. package/lib/components/bmb-frequent-apps-selector/bmb-frequent-apps-selector.component.d.ts +13 -0
  289. package/lib/components/bmb-grade-value/bmb-grade-value.component.d.ts +11 -0
  290. package/lib/components/bmb-grades/bmb-grades.component.d.ts +43 -0
  291. package/lib/components/bmb-grades/types.d.ts +25 -0
  292. package/lib/components/bmb-header-mitec/bmb-header-mitec.component.d.ts +17 -0
  293. package/lib/components/bmb-header-mobile/bmb-header-mobile.component.d.ts +23 -0
  294. package/lib/components/bmb-hito-card/bmb-hito-card.component.d.ts +23 -0
  295. package/lib/components/bmb-hito-list/bmb-hito-list.component.d.ts +24 -0
  296. package/lib/components/bmb-home-card/bmb-home-card-header/bmb-home-card-header.component.d.ts +28 -0
  297. package/lib/components/bmb-home-card/bmb-home-card.component.d.ts +27 -0
  298. package/lib/components/bmb-home-card-chat/bmb-home-card-chat.component.d.ts +25 -0
  299. package/lib/components/bmb-home-section/bmb-home-section.component.d.ts +9 -0
  300. package/lib/components/bmb-icon/bmb-icon.component.d.ts +23 -0
  301. package/lib/components/bmb-icon/types.d.ts +1 -0
  302. package/lib/components/bmb-icon-item/bmb-icon-item.component.d.ts +13 -0
  303. package/lib/components/bmb-icon-status/bmb-icon-status.component.d.ts +10 -0
  304. package/lib/components/bmb-iframe/bmb-iframe.component.d.ts +11 -0
  305. package/lib/components/bmb-iframe/bmb-iframe.pipe.d.ts +10 -0
  306. package/lib/components/bmb-image/bmb-image.component.d.ts +19 -0
  307. package/lib/components/bmb-inner-header/bmb-inner-header.component.d.ts +29 -0
  308. package/lib/components/bmb-input/bmb-input-content/bmb-input-content.component.d.ts +53 -0
  309. package/lib/components/bmb-input/bmb-input-validation/bmb-input-validation.component.d.ts +46 -0
  310. package/lib/components/bmb-input/bmb-input-validation/bmb-input-validation.service.d.ts +16 -0
  311. package/lib/components/bmb-input/bmb-input-validator/bmb-input-validator.component.d.ts +45 -0
  312. package/lib/components/bmb-input/bmb-input.component.d.ts +68 -0
  313. package/lib/components/bmb-input-phone-number/bmb-input-phone-number.component.d.ts +52 -0
  314. package/lib/components/bmb-input-tags/bmb-input-tags.component.d.ts +55 -0
  315. package/lib/components/bmb-interactive-icon/bmb-interactive-icon.component.d.ts +23 -0
  316. package/lib/components/bmb-invoice/bmb-invoice.component.d.ts +31 -0
  317. package/lib/components/bmb-item/bmb-item.component.d.ts +16 -0
  318. package/lib/components/bmb-legend/bmb-legend.component.d.ts +9 -0
  319. package/lib/components/bmb-list-group/bmb-list-group-item/bmb-list-group-item.component.d.ts +33 -0
  320. package/lib/components/bmb-list-group/bmb-list-group.component.d.ts +27 -0
  321. package/lib/components/bmb-list-group/bmb-list-group.service.d.ts +18 -0
  322. package/lib/components/bmb-list-group/types.d.ts +1 -0
  323. package/lib/components/bmb-list-items/bmb-list-items.component.d.ts +33 -0
  324. package/lib/components/bmb-loader/bmb-loader.component.d.ts +31 -0
  325. package/lib/components/bmb-login/bmb-login-content/bmb-login-content.component.d.ts +27 -0
  326. package/lib/components/bmb-login/bmb-login.component.d.ts +33 -0
  327. package/lib/components/bmb-login-onboarding/bmb-login-onboarding-logged/bmb-login-onboarding-logged.component.d.ts +14 -0
  328. package/lib/components/bmb-login-onboarding/bmb-login-onboarding-login/bmb-login-onboarding-login.component.d.ts +8 -0
  329. package/lib/components/bmb-login-onboarding/bmb-login-onboarding-logout/bmb-login-onboarding-logout.component.d.ts +12 -0
  330. package/lib/components/bmb-login-onboarding/bmb-login-onboarding-stepper/bmb-login-onboarding-stepper-steps/bmb-login-onboarding-stepper-step-four.component.d.ts +18 -0
  331. package/lib/components/bmb-login-onboarding/bmb-login-onboarding-stepper/bmb-login-onboarding-stepper-steps/bmb-login-onboarding-stepper-step-one.component.d.ts +17 -0
  332. package/lib/components/bmb-login-onboarding/bmb-login-onboarding-stepper/bmb-login-onboarding-stepper-steps/bmb-login-onboarding-stepper-step-three.component.d.ts +11 -0
  333. package/lib/components/bmb-login-onboarding/bmb-login-onboarding-stepper/bmb-login-onboarding-stepper-steps/bmb-login-onboarding-stepper-step-two.component.d.ts +19 -0
  334. package/lib/components/bmb-login-onboarding/bmb-login-onboarding-stepper/bmb-login-onboarding-stepper-steps/bmb-login-onboarding-stepper-step.component.d.ts +19 -0
  335. package/lib/components/bmb-login-onboarding/bmb-login-onboarding-stepper/bmb-login-onboarding-stepper.component.d.ts +15 -0
  336. package/lib/components/bmb-login-onboarding/bmb-login-onboarding.component.d.ts +20 -0
  337. package/lib/components/bmb-login-onboarding/bmb-login-onboarding.service.d.ts +25 -0
  338. package/lib/components/bmb-login-onboarding/types.d.ts +15 -0
  339. package/lib/components/bmb-logo/bmb-logo.component.d.ts +19 -0
  340. package/lib/components/bmb-media-card/bmb-media-card.component.d.ts +34 -0
  341. package/lib/components/bmb-mitec-logo-animation/bmb-mitec-logo-animation.component.d.ts +6 -0
  342. package/lib/components/bmb-mobile-templates/bmb-mobile-templates.component.d.ts +47 -0
  343. package/lib/components/bmb-modal/bmb-modal.component.d.ts +31 -0
  344. package/lib/components/bmb-modal/bmb-modal.interface.d.ts +37 -0
  345. package/lib/components/bmb-modal/bmb-native-modal.component.d.ts +37 -0
  346. package/lib/components/bmb-multi-dot-paginator/bmb-multi-dot-paginator-item/bmb-multi-dot-paginator-item.component.d.ts +7 -0
  347. package/lib/components/bmb-multi-dot-paginator/bmb-multi-dot-paginator.component.d.ts +15 -0
  348. package/lib/components/bmb-navigation-bar/bmb-navigation-bar.component.d.ts +13 -0
  349. package/lib/components/bmb-notice-card/bmb-notice-card.component.d.ts +21 -0
  350. package/lib/components/bmb-notification-card/bmb-notification-card.component.d.ts +27 -0
  351. package/lib/components/bmb-overlay/bmb-overlay.component.d.ts +9 -0
  352. package/lib/components/bmb-paginator/bmb-paginator.component.d.ts +14 -0
  353. package/lib/components/bmb-portal/bmb-portal.component.d.ts +18 -0
  354. package/lib/components/bmb-profile/bmb-profile.component.d.ts +34 -0
  355. package/lib/components/bmb-progress-bar/bmb-progress-bar.component.d.ts +19 -0
  356. package/lib/components/bmb-progress-cirlce/bmb-progress-circle.component.d.ts +51 -0
  357. package/lib/components/bmb-progress-cirlce/bmb-progress-circle.interface.d.ts +12 -0
  358. package/lib/components/bmb-pull-wedge/bmb-pull-wedge.component.d.ts +23 -0
  359. package/lib/components/bmb-push-notification/bmb-push-notification-item/bmb-push-notification-item.component.d.ts +18 -0
  360. package/lib/components/bmb-push-notification/bmb-push-notification.component.d.ts +11 -0
  361. package/lib/components/bmb-push-notification/types.d.ts +46 -0
  362. package/lib/components/bmb-radial/bmb-radial.component.d.ts +33 -0
  363. package/lib/components/bmb-search-input/bmb-search-input.component.d.ts +33 -0
  364. package/lib/components/bmb-select/bmb-select-item/bmb-select-item.component.d.ts +6 -0
  365. package/lib/components/bmb-select/bmb-select.component.d.ts +17 -0
  366. package/lib/components/bmb-server-table/bmb-server-table.component.d.ts +26 -0
  367. package/lib/components/bmb-sidebar/bmb-sidebar.component.d.ts +27 -0
  368. package/lib/components/bmb-sidebar/bmb-sidebar.interface.d.ts +10 -0
  369. package/lib/components/bmb-simple-header/bmb-simple-header.component.d.ts +10 -0
  370. package/lib/components/bmb-skeleton/bmb-skeleton.component.d.ts +7 -0
  371. package/lib/components/bmb-sounds-card/bmb-sounds-card.component.d.ts +24 -0
  372. package/lib/components/bmb-stat-counter/bmb-stat-counter.component.d.ts +11 -0
  373. package/lib/components/bmb-step-progress-bar/bmb-step-progress-bar.component.d.ts +26 -0
  374. package/lib/components/bmb-student-activity-card/bmb-student-activity-card.component.d.ts +23 -0
  375. package/lib/components/bmb-student-activity-selector/bmb-student-activity-tab/bmb-student-activity-tab.component.d.ts +10 -0
  376. package/lib/components/bmb-switch/bmb-switch.component.d.ts +25 -0
  377. package/lib/components/bmb-tables/bmb-tables.component.d.ts +104 -0
  378. package/lib/components/bmb-tables/bmb-tables.interface.d.ts +21 -0
  379. package/lib/components/bmb-tabs/bmb-tabs.component.d.ts +41 -0
  380. package/lib/components/bmb-tags/bmb-tags.component.d.ts +25 -0
  381. package/lib/components/bmb-text-editor/bmb-text-editor.component.d.ts +34 -0
  382. package/lib/components/bmb-text-link/bmb-text-link.component.d.ts +17 -0
  383. package/lib/components/bmb-theme/bmb-theme.component.d.ts +19 -0
  384. package/lib/components/bmb-three-cols/bmb-three-cols.component.d.ts +15 -0
  385. package/lib/components/bmb-timestream/bmb-timestream-detail/bmb-timestream-detail.component.d.ts +25 -0
  386. package/lib/components/bmb-timestream/bmb-timestream-error/bmb-timestream-error.component.d.ts +5 -0
  387. package/lib/components/bmb-timestream/bmb-timestream.component.d.ts +67 -0
  388. package/lib/components/bmb-timestream/types.d.ts +54 -0
  389. package/lib/components/bmb-timestream-card/bmb-timestream-card.component.d.ts +29 -0
  390. package/lib/components/bmb-title-content/bmb-title-content.component.d.ts +26 -0
  391. package/lib/components/bmb-toast/bmb-toast.component.d.ts +16 -0
  392. package/lib/components/bmb-tooltip/bmb-tooltip.component.d.ts +15 -0
  393. package/lib/components/bmb-top-bar/bmb-top-bar-item/bmb-top-bar-item.component.d.ts +7 -0
  394. package/lib/components/bmb-top-bar/bmb-top-bar-user-section/bmb-top-bar-user-section.component.d.ts +30 -0
  395. package/lib/components/bmb-top-bar/bmb-top-bar.component.d.ts +45 -0
  396. package/lib/components/bmb-top-bar/types.d.ts +6 -0
  397. package/lib/components/bmb-totp/bmb-totp.component.d.ts +30 -0
  398. package/lib/components/bmb-user-image/bmb-user-image.component.d.ts +19 -0
  399. package/lib/components/bmb-user-profile/bmb-user-profile-content/bmb-user-profile-content.component.d.ts +10 -0
  400. package/lib/components/bmb-user-profile/bmb-user-profile.component.d.ts +19 -0
  401. package/lib/components/bmb-user-summary/bmb-user-summary-content/bmb-user-summary-content.component.d.ts +24 -0
  402. package/lib/components/bmb-user-summary/bmb-user-summary.component.d.ts +14 -0
  403. package/lib/components/bmb-value-counter/bmb-value-counter.component.d.ts +8 -0
  404. package/lib/components/bmb-web-templates/bmb-web-templates.component.d.ts +42 -0
  405. package/lib/components/bmb-wheel-menu/bmb-wheel-menu.component.d.ts +40 -0
  406. package/lib/components/utils/bmb-dropdown-content/bmb-dropdown-content.component.d.ts +16 -0
  407. package/lib/directives/bmb-accordion/bmb-accordion-control.directive.d.ts +22 -0
  408. package/lib/directives/bmb-button/button.directive.d.ts +29 -0
  409. package/lib/directives/bmb-button-group/bmb-button-group.directive.d.ts +10 -0
  410. package/lib/directives/bmb-layout/bmb-layout-item.directive.d.ts +20 -0
  411. package/lib/directives/bmb-layout/bmb-layout.directive.d.ts +15 -0
  412. package/lib/directives/bmb-layout/bmb-vertical-layout/bmb-vertical-layout-item.directive.d.ts +9 -0
  413. package/lib/directives/bmb-layout/bmb-vertical-layout/bmb-vertical-layout.directive.d.ts +14 -0
  414. package/lib/directives/bmb-layout-grid/bmb-layout-grid.directive.d.ts +29 -0
  415. package/lib/directives/utils/clickoutside.directive.d.ts +15 -0
  416. package/lib/ds-ng.component.d.ts +5 -0
  417. package/lib/ds-ng.service.d.ts +6 -0
  418. package/lib/services/calendar.service.d.ts +15 -0
  419. package/lib/services/index.d.ts +2 -0
  420. package/lib/services/native-modal.service.d.ts +18 -0
  421. package/lib/services/notification.service.d.ts +20 -0
  422. package/lib/services/tabs.service.d.ts +13 -0
  423. package/lib/services/theme.service.d.ts +11 -0
  424. package/lib/services/toast.service.d.ts +9 -0
  425. package/lib/services/user/profile.service.d.ts +9 -0
  426. package/lib/types/colors.d.ts +2 -0
  427. package/lib/types/index.d.ts +127 -0
  428. package/lib/utils/countryCodes.d.ts +7 -0
  429. package/lib/utils/currencyFormat.d.ts +1 -0
  430. package/lib/utils/dropdown.d.ts +6 -0
  431. package/lib/utils/formControl.d.ts +7 -0
  432. package/lib/utils/timestreamFilters.d.ts +2 -0
  433. package/lib/utils/utils.d.ts +12 -0
  434. package/package.json +4 -2
  435. package/public-api.d.ts +142 -0
@@ -0,0 +1,219 @@
1
+ import { Component, ViewEncapsulation, ChangeDetectionStrategy, input, model, signal, } from '@angular/core';
2
+ import { FormControl, FormsModule, ReactiveFormsModule, } from '@angular/forms';
3
+ import { CommonModule } from '@angular/common';
4
+ import { BmbDropdownComponent, } from '../bmb-dropdown/bmb-dropdown.component';
5
+ import { IBmbCountryCodes } from '../../utils/countryCodes';
6
+ import { BmbInputValidatorComponent } from '../bmb-input/bmb-input-validator/bmb-input-validator.component';
7
+ import { buildErrorMessage, getCustomValidation, getCustomValidationMessage, getUUID, } from '../../utils/utils';
8
+ import { BmbInputContentComponent } from '../bmb-input/bmb-input-content/bmb-input-content.component';
9
+ import { assignNewFormControl, handleValidity, showError, } from '../../utils/formControl';
10
+ import * as i0 from "@angular/core";
11
+ import * as i1 from "@angular/common";
12
+ import * as i2 from "@angular/forms";
13
+ export class BmbInputPhoneNumberComponent {
14
+ constructor() {
15
+ this.label = input('');
16
+ this.name = input(getUUID());
17
+ this.value = input('');
18
+ this.isRequired = input(false);
19
+ this.tooltip = input('');
20
+ this.tooltipPosition = input({
21
+ align: 'above',
22
+ justify: 'before',
23
+ });
24
+ this.defaultLada = input('+52'); //Deprecated
25
+ this.defaultCountryCode = input('mx'); //Must match the area lada of the initial value
26
+ this.placeholder = input('');
27
+ this.appearance = input('normal'); //Deprecated
28
+ this.errorMessage = input('');
29
+ this.disabled = input(false);
30
+ this.inputId = input(this.name());
31
+ this.helperMessage = input('');
32
+ this.preferredCountries = input(['mx']);
33
+ this.onlyCountries = input([]);
34
+ this.customValidation = input();
35
+ this.control = model(new FormControl());
36
+ this.showError = model(false); // deprecated
37
+ this.uuid = getUUID();
38
+ this.isFocused = signal(false);
39
+ this.allCountryCodes = IBmbCountryCodes;
40
+ this.ladaControl = new FormControl();
41
+ this.phoneControl = new FormControl({
42
+ value: '',
43
+ disabled: this.disabled(),
44
+ });
45
+ this.countryFiltering = [];
46
+ this.isControlNull = false;
47
+ this.customValidationMessage = '';
48
+ }
49
+ ngOnInit() {
50
+ if (!this.control()) {
51
+ this.control.set(assignNewFormControl(this.name(), this.control()));
52
+ this.isControlNull = true;
53
+ }
54
+ if (!!this.value() || !!this.control().value) {
55
+ let inputs = [];
56
+ if (!this.defaultCountryCode()) {
57
+ inputs.push('defaultCountry');
58
+ }
59
+ else if (!this.getSelectedCountry(this.defaultCountryCode())) {
60
+ throw new Error(`
61
+ [${this.name()}] - The value ${this.defaultCountryCode()} for "defaultCountryCode" does not exist in the country List.
62
+ `);
63
+ }
64
+ if (inputs.length) {
65
+ throw new Error(`
66
+ [${this.name()}] - The ${buildErrorMessage(inputs)} required when there is an initial "value" in "bmb-input-phone.".
67
+ `);
68
+ }
69
+ }
70
+ this.ladaControl.setValue(this.getSelectedCountryCode(this.defaultCountryCode().toLocaleLowerCase()));
71
+ this.phoneControl.setValue(this.getNumberValue());
72
+ this.countryFiltering = this.getOptions();
73
+ this.phoneControl.valueChanges.subscribe((value) => {
74
+ if (!!value) {
75
+ this.setControlValue(this.getSelectedCountryLada(this.ladaControl.value), value);
76
+ }
77
+ });
78
+ this.control().valueChanges.subscribe((value) => {
79
+ if (value === null) {
80
+ this.phoneControl.reset('');
81
+ this.ladaControl.reset(this.getSelectedCountryCode(this.defaultCountryCode().toLocaleLowerCase()));
82
+ }
83
+ });
84
+ }
85
+ handleFocus(value) {
86
+ this.isFocused.set(value);
87
+ }
88
+ handleCustomValidator() {
89
+ return (control) => {
90
+ const { value } = control;
91
+ if (!value)
92
+ return null;
93
+ if (this.phoneControl.hasError('pattern'))
94
+ return { pattern: true };
95
+ if (this.phoneControl.hasError('maxlength') ||
96
+ this.phoneControl.hasError('minlength')) {
97
+ return { minlength: true };
98
+ }
99
+ const regExp = new RegExp(`^\\${this.getSelectedCountryLada(this.ladaControl.value)}\\d{${this.getSelectedCountryLength(this.ladaControl.value)}}$`);
100
+ if (!regExp.test(control.value)) {
101
+ this.customValidationMessage =
102
+ 'Por favor ingresa un número de teléfono válido, verifica si la lada es correcta.';
103
+ return { customValidation: true };
104
+ }
105
+ const result = getCustomValidation(this.customValidation(), this.control());
106
+ this.customValidationMessage = getCustomValidationMessage(result, this.errorMessage());
107
+ return result;
108
+ };
109
+ }
110
+ getUUID(name) {
111
+ return `${name}_${this.name()}_${this.uuid}`;
112
+ }
113
+ setControlValue(lada, phoneNumber) {
114
+ if (!!lada && !!phoneNumber) {
115
+ this.control().setValue(lada + phoneNumber);
116
+ }
117
+ else {
118
+ this.control().reset('');
119
+ }
120
+ this.handleValidity();
121
+ }
122
+ getNumberValue() {
123
+ const value = this.control().value || this.value();
124
+ return value.replace(this.getSelectedCountryLada(this.ladaControl.value), '');
125
+ }
126
+ getSelectedCountry(value) {
127
+ return this.allCountryCodes.find(({ country_code }) => country_code.toLocaleLowerCase() === value);
128
+ }
129
+ getSelectedCountryCode(value) {
130
+ const selectedCountry = this.getSelectedCountry(value);
131
+ if (!!selectedCountry) {
132
+ return selectedCountry.country_code.toLocaleLowerCase();
133
+ }
134
+ return '';
135
+ }
136
+ getSelectedCountryLada(value) {
137
+ const selectedCountry = this.getSelectedCountry(value);
138
+ if (!!selectedCountry) {
139
+ return selectedCountry.lada;
140
+ }
141
+ return '';
142
+ }
143
+ getSelectedCountryLength(value) {
144
+ const selectedCountry = this.getSelectedCountry(value);
145
+ if (!!selectedCountry) {
146
+ return selectedCountry.length;
147
+ }
148
+ return 0;
149
+ }
150
+ onValueChange(value) {
151
+ if (!!this.phoneControl.value) {
152
+ this.setControlValue(this.getSelectedCountryLada(value), this.phoneControl.value);
153
+ }
154
+ }
155
+ getOptions() {
156
+ if (this.onlyCountries().length) {
157
+ const lowerCaseCountries = this.onlyCountries().map((country) => country.toLocaleLowerCase());
158
+ const filteredOptions = this.allCountryCodes.filter(({ country_code }) => {
159
+ return lowerCaseCountries.includes(country_code.toLocaleLowerCase());
160
+ });
161
+ return filteredOptions.map(({ country, lada, country_code }) => ({
162
+ name: `${country} (${lada})`,
163
+ value: country_code.toLocaleLowerCase(),
164
+ selectedText: lada,
165
+ icon: 'flag',
166
+ }));
167
+ }
168
+ return this.allCountryCodes.map(({ country, lada, country_code }) => ({
169
+ name: `${country} (${lada})`,
170
+ value: country_code.toLocaleLowerCase(),
171
+ selectedText: lada,
172
+ icon: 'flag',
173
+ }));
174
+ }
175
+ getErrorMessage() {
176
+ const pattern = 'Por favor ingresa sólo caracteres numéricos';
177
+ const minLength = `Por favor ingresa ${this.getSelectedCountryLength(this.ladaControl.value)} caracteres numéricos`;
178
+ if (!!this.errorMessage()) {
179
+ if (typeof this.errorMessage() === 'string')
180
+ return {
181
+ required: this.errorMessage().toString(),
182
+ pattern,
183
+ minLength,
184
+ customValidation: this.customValidationMessage,
185
+ };
186
+ return {
187
+ pattern,
188
+ minLength,
189
+ ...this.errorMessage(),
190
+ customValidation: this.customValidationMessage,
191
+ };
192
+ }
193
+ return {
194
+ pattern,
195
+ minLength,
196
+ customValidation: this.customValidationMessage,
197
+ };
198
+ }
199
+ handleValidity() {
200
+ handleValidity(this.control());
201
+ }
202
+ get shouldShowError() {
203
+ return showError(this.control()) || showError(this.phoneControl);
204
+ }
205
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BmbInputPhoneNumberComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
206
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.3.12", type: BmbInputPhoneNumberComponent, isStandalone: true, selector: "bmb-input-phone-number", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, isRequired: { classPropertyName: "isRequired", publicName: "isRequired", isSignal: true, isRequired: false, transformFunction: null }, tooltip: { classPropertyName: "tooltip", publicName: "tooltip", isSignal: true, isRequired: false, transformFunction: null }, tooltipPosition: { classPropertyName: "tooltipPosition", publicName: "tooltipPosition", isSignal: true, isRequired: false, transformFunction: null }, defaultLada: { classPropertyName: "defaultLada", publicName: "defaultLada", isSignal: true, isRequired: false, transformFunction: null }, defaultCountryCode: { classPropertyName: "defaultCountryCode", publicName: "defaultCountryCode", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, appearance: { classPropertyName: "appearance", publicName: "appearance", isSignal: true, isRequired: false, transformFunction: null }, errorMessage: { classPropertyName: "errorMessage", publicName: "errorMessage", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, inputId: { classPropertyName: "inputId", publicName: "inputId", isSignal: true, isRequired: false, transformFunction: null }, helperMessage: { classPropertyName: "helperMessage", publicName: "helperMessage", isSignal: true, isRequired: false, transformFunction: null }, preferredCountries: { classPropertyName: "preferredCountries", publicName: "preferredCountries", isSignal: true, isRequired: false, transformFunction: null }, onlyCountries: { classPropertyName: "onlyCountries", publicName: "onlyCountries", isSignal: true, isRequired: false, transformFunction: null }, customValidation: { classPropertyName: "customValidation", publicName: "customValidation", isSignal: true, isRequired: false, transformFunction: null }, control: { classPropertyName: "control", publicName: "control", isSignal: true, isRequired: false, transformFunction: null }, showError: { classPropertyName: "showError", publicName: "showError", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { control: "controlChange", showError: "showErrorChange" }, ngImport: i0, template: "<bmb-input-validator\r\n [name]=\"name()\"\r\n [label]=\"label()\"\r\n [value]=\"!!defaultCountryCode() ? value() : ''\"\r\n [errorMessage]=\"getErrorMessage()\"\r\n [helperMessage]=\"helperMessage()\"\r\n [isRequired]=\"isRequired()\"\r\n [isDisabled]=\"disabled()\"\r\n [control]=\"control()\"\r\n [showError]=\"shouldShowError\"\r\n [tooltip]=\"tooltip()\"\r\n [tooltipPosition]=\"tooltipPosition()\"\r\n [customValidation]=\"handleCustomValidator()\"\r\n [inputId]=\"inputId()\"\r\n>\r\n <section class=\"bmb_input-phone\">\r\n <section\r\n class=\"bmb_input-phone-container\"\r\n [ngClass]=\"{\r\n 'bmb_input-phone-container-error': shouldShowError,\r\n 'bmb_input-phone-container-focus': isFocused(),\r\n }\"\r\n >\r\n <bmb-dropdown\r\n class=\"bmb_input-phone-lada\"\r\n [name]=\"getUUID('lada')\"\r\n [value]=\"ladaControl.value\"\r\n [required]=\"true\"\r\n [disabled]=\"disabled()\"\r\n [showIcon]=\"false\"\r\n [options]=\"countryFiltering\"\r\n [preferredOptions]=\"preferredCountries()\"\r\n [control]=\"ladaControl\"\r\n (onValueChange)=\"onValueChange($event)\"\r\n (onFocus)=\"handleFocus($event)\"\r\n />\r\n <bmb-input-content\r\n class=\"bmb_input-phone-number\"\r\n [name]=\"getUUID('phone')\"\r\n pattern=\"^\\d+$\"\r\n [isDisabled]=\"disabled()\"\r\n [control]=\"phoneControl\"\r\n [inputId]=\"inputId()\"\r\n [placeholder]=\"placeholder()\"\r\n [maxLength]=\"getSelectedCountryLength(ladaControl.value)\"\r\n [minLength]=\"getSelectedCountryLength(ladaControl.value)\"\r\n [isRequired]=\"isRequired()\"\r\n (onFocus)=\"handleFocus($event)\"\r\n (onBlur)=\"handleValidity()\"\r\n />\r\n </section>\r\n <input\r\n hidden\r\n type=\"text\"\r\n [name]=\"name()\"\r\n [required]=\"isRequired()\"\r\n [formControl]=\"control()\"\r\n [tabindex]=\"-1\"\r\n />\r\n </section>\r\n</bmb-input-validator>\r\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_input-phone{display:block;position:relative}.bmb_input-phone-container{display:flex;box-sizing:border-box;border:.0625rem solid var(--general_contrasts-50);border-radius:.5rem;width:100%;background-color:var(--general_contrasts-input-background);height:3rem;transition:all .3s ease}.bmb_input-phone-container-error{border-color:var(--input-error)}.bmb_input-phone-container:focus,.bmb_input-phone-container:focus-visible,.bmb_input-phone-container-focus{box-sizing:inherit;border-color:var(--general_contrasts-input-outline);caret-color:var(--general_contrasts-input-outline);outline:.0625rem solid;outline-color:var(--general_contrasts-input-outline)}.bmb_input-phone-container:hover{box-sizing:inherit;border-color:var(--general_contrasts-50);outline:.0625rem solid;outline-color:var(--general_contrasts-50)}.bmb_input-phone-container .bmb_input-validator-label{display:none}.bmb_input-phone-container .bmb_input-validator{padding:0}.bmb_input-phone-lada .bmb_dropdown{width:5rem}.bmb_input-phone-lada .bmb_dropdown .bmb_field-input-normal{border-top-right-radius:0;border-bottom-right-radius:0;border-width:0 .0625rem 0 0;height:2.75rem}.bmb_input-phone-lada .bmb_dropdown .bmb_field-input-normal:focus,.bmb_input-phone-lada .bmb_dropdown .bmb_field-input-normal:focus-visible,.bmb_input-phone-lada .bmb_dropdown .bmb_field-input-normal:hover{border-width:0 .0625rem 0 0;outline:0 none}.bmb_input-phone-lada .bmb_dropdown .bmb_dropdown-content-modal{min-width:max-content}.bmb_input-phone-number{flex:1}.bmb_input-phone-number .bmb_field-input-normal{border-top-left-radius:0;border-bottom-left-radius:0;border:0;height:2.75rem}.bmb_input-phone-number .bmb_field-input-normal:focus,.bmb_input-phone-number .bmb_field-input-normal:focus-visible,.bmb_input-phone-number .bmb_field-input-normal:hover{border:0;outline:0 none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: BmbDropdownComponent, selector: "bmb-dropdown", inputs: ["required", "showIcon", "placeholder", "icon", "options", "helperText", "errorMessage", "label", "name", "preferredOptions", "isMultiSelect", "tooltip", "tooltipPosition", "disabled", "value", "isFilterable", "inputId", "customValidation", "control"], outputs: ["controlChange", "onValueChange", "onFocus"] }, { kind: "component", type: BmbInputContentComponent, selector: "bmb-input-content", inputs: ["type", "placeholder", "icon", "appearance", "isDisabled", "isRequired", "name", "spellcheck", "heightTextArea", "maxLength", "minLength", "pattern", "max", "min", "inputId", "autoComplete", "rows", "isReadOnly", "additionalAction", "isClearable", "isError", "isHidden", "showStates", "control"], outputs: ["controlChange", "onFocus", "onBlur", "onChange", "onKeyDown", "onKeyUp"] }, { kind: "component", type: BmbInputValidatorComponent, selector: "bmb-input-validator", inputs: ["inputId", "type", "appearance", "label", "labelPosition", "name", "value", "checked", "isRequired", "isDisabled", "max", "min", "maxLength", "minLength", "pattern", "jsonFormat", "tooltip", "rows", "tooltipPosition", "showMaxTextLength", "helperMessage", "errorMessage", "customValidation", "showError", "control"], outputs: ["showErrorChange", "controlChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
207
+ }
208
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BmbInputPhoneNumberComponent, decorators: [{
209
+ type: Component,
210
+ args: [{ selector: 'bmb-input-phone-number', standalone: true, imports: [
211
+ CommonModule,
212
+ FormsModule,
213
+ ReactiveFormsModule,
214
+ BmbDropdownComponent,
215
+ BmbInputContentComponent,
216
+ BmbInputValidatorComponent,
217
+ ], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<bmb-input-validator\r\n [name]=\"name()\"\r\n [label]=\"label()\"\r\n [value]=\"!!defaultCountryCode() ? value() : ''\"\r\n [errorMessage]=\"getErrorMessage()\"\r\n [helperMessage]=\"helperMessage()\"\r\n [isRequired]=\"isRequired()\"\r\n [isDisabled]=\"disabled()\"\r\n [control]=\"control()\"\r\n [showError]=\"shouldShowError\"\r\n [tooltip]=\"tooltip()\"\r\n [tooltipPosition]=\"tooltipPosition()\"\r\n [customValidation]=\"handleCustomValidator()\"\r\n [inputId]=\"inputId()\"\r\n>\r\n <section class=\"bmb_input-phone\">\r\n <section\r\n class=\"bmb_input-phone-container\"\r\n [ngClass]=\"{\r\n 'bmb_input-phone-container-error': shouldShowError,\r\n 'bmb_input-phone-container-focus': isFocused(),\r\n }\"\r\n >\r\n <bmb-dropdown\r\n class=\"bmb_input-phone-lada\"\r\n [name]=\"getUUID('lada')\"\r\n [value]=\"ladaControl.value\"\r\n [required]=\"true\"\r\n [disabled]=\"disabled()\"\r\n [showIcon]=\"false\"\r\n [options]=\"countryFiltering\"\r\n [preferredOptions]=\"preferredCountries()\"\r\n [control]=\"ladaControl\"\r\n (onValueChange)=\"onValueChange($event)\"\r\n (onFocus)=\"handleFocus($event)\"\r\n />\r\n <bmb-input-content\r\n class=\"bmb_input-phone-number\"\r\n [name]=\"getUUID('phone')\"\r\n pattern=\"^\\d+$\"\r\n [isDisabled]=\"disabled()\"\r\n [control]=\"phoneControl\"\r\n [inputId]=\"inputId()\"\r\n [placeholder]=\"placeholder()\"\r\n [maxLength]=\"getSelectedCountryLength(ladaControl.value)\"\r\n [minLength]=\"getSelectedCountryLength(ladaControl.value)\"\r\n [isRequired]=\"isRequired()\"\r\n (onFocus)=\"handleFocus($event)\"\r\n (onBlur)=\"handleValidity()\"\r\n />\r\n </section>\r\n <input\r\n hidden\r\n type=\"text\"\r\n [name]=\"name()\"\r\n [required]=\"isRequired()\"\r\n [formControl]=\"control()\"\r\n [tabindex]=\"-1\"\r\n />\r\n </section>\r\n</bmb-input-validator>\r\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_input-phone{display:block;position:relative}.bmb_input-phone-container{display:flex;box-sizing:border-box;border:.0625rem solid var(--general_contrasts-50);border-radius:.5rem;width:100%;background-color:var(--general_contrasts-input-background);height:3rem;transition:all .3s ease}.bmb_input-phone-container-error{border-color:var(--input-error)}.bmb_input-phone-container:focus,.bmb_input-phone-container:focus-visible,.bmb_input-phone-container-focus{box-sizing:inherit;border-color:var(--general_contrasts-input-outline);caret-color:var(--general_contrasts-input-outline);outline:.0625rem solid;outline-color:var(--general_contrasts-input-outline)}.bmb_input-phone-container:hover{box-sizing:inherit;border-color:var(--general_contrasts-50);outline:.0625rem solid;outline-color:var(--general_contrasts-50)}.bmb_input-phone-container .bmb_input-validator-label{display:none}.bmb_input-phone-container .bmb_input-validator{padding:0}.bmb_input-phone-lada .bmb_dropdown{width:5rem}.bmb_input-phone-lada .bmb_dropdown .bmb_field-input-normal{border-top-right-radius:0;border-bottom-right-radius:0;border-width:0 .0625rem 0 0;height:2.75rem}.bmb_input-phone-lada .bmb_dropdown .bmb_field-input-normal:focus,.bmb_input-phone-lada .bmb_dropdown .bmb_field-input-normal:focus-visible,.bmb_input-phone-lada .bmb_dropdown .bmb_field-input-normal:hover{border-width:0 .0625rem 0 0;outline:0 none}.bmb_input-phone-lada .bmb_dropdown .bmb_dropdown-content-modal{min-width:max-content}.bmb_input-phone-number{flex:1}.bmb_input-phone-number .bmb_field-input-normal{border-top-left-radius:0;border-bottom-left-radius:0;border:0;height:2.75rem}.bmb_input-phone-number .bmb_field-input-normal:focus,.bmb_input-phone-number .bmb_field-input-normal:focus-visible,.bmb_input-phone-number .bmb_field-input-normal:hover{border:0;outline:0 none}\n"] }]
218
+ }] });
219
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm1iLWlucHV0LXBob25lLW51bWJlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kcy1uZy9zcmMvbGliL2NvbXBvbmVudHMvYm1iLWlucHV0LXBob25lLW51bWJlci9ibWItaW5wdXQtcGhvbmUtbnVtYmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RzLW5nL3NyYy9saWIvY29tcG9uZW50cy9ibWItaW5wdXQtcGhvbmUtbnVtYmVyL2JtYi1pbnB1dC1waG9uZS1udW1iZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxpQkFBaUIsRUFDakIsdUJBQXVCLEVBQ3ZCLEtBQUssRUFDTCxLQUFLLEVBQ0wsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFFTCxXQUFXLEVBQ1gsV0FBVyxFQUNYLG1CQUFtQixHQUdwQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsb0JBQW9CLEdBRXJCLE1BQU0sd0NBQXdDLENBQUM7QUFDaEQsT0FBTyxFQUFtQixnQkFBZ0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBTTdFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGdFQUFnRSxDQUFDO0FBQzVHLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsbUJBQW1CLEVBQ25CLDBCQUEwQixFQUMxQixPQUFPLEdBRVIsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw0REFBNEQsQ0FBQztBQUN0RyxPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLGNBQWMsRUFDZCxTQUFTLEdBQ1YsTUFBTSx5QkFBeUIsQ0FBQzs7OztBQWtCakMsTUFBTSxPQUFPLDRCQUE0QjtJ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RUFBRTtvQkFDeEMsT0FBTztvQkFDUCxTQUFTO29CQUNULGdCQUFnQixFQUFFLElBQUksQ0FBQyx1QkFBdUI7aUJBQy9DLENBQUM7WUFFSixPQUFPO2dCQUNMLE9BQU87Z0JBQ1AsU0FBUztnQkFDVCxHQUFJLElBQUksQ0FBQyxZQUFZLEVBQXFCO2dCQUMxQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsdUJBQXVCO2FBQy9DLENBQUM7U0FDSDtRQUVELE9BQU87WUFDTCxPQUFPO1lBQ1AsU0FBUztZQUNULGdCQUFnQixFQUFFLElBQUksQ0FBQyx1QkFBdUI7U0FDL0MsQ0FBQztJQUNKLENBQUM7SUFFRCxjQUFjO1FBQ1osY0FBYyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxJQUFJLGVBQWU7UUFDakIsT0FBTyxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNuRSxDQUFDOytHQXpRVSw0QkFBNEI7bUdBQTVCLDRCQUE0Qixtc0ZDM0R6QywyaUVBNkRBLGtuUURaSSxZQUFZLDRIQUNaLFdBQVcsbW5CQUNYLG1CQUFtQixrTkFDbkIsb0JBQW9CLHNYQUNwQix3QkFBd0IscWNBQ3hCLDBCQUEwQjs7NEZBS2pCLDRCQUE0QjtrQkFoQnhDLFNBQVM7K0JBQ0Usd0JBQXdCLGNBR3RCLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixvQkFBb0I7d0JBQ3BCLHdCQUF3Qjt3QkFDeEIsMEJBQTBCO3FCQUMzQixtQkFDZ0IsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIE9uSW5pdCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBpbnB1dCxcclxuICBtb2RlbCxcclxuICBzaWduYWwsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgQWJzdHJhY3RDb250cm9sLFxyXG4gIEZvcm1Db250cm9sLFxyXG4gIEZvcm1zTW9kdWxlLFxyXG4gIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgVmFsaWRhdGlvbkVycm9ycyxcclxuICBWYWxpZGF0b3JGbixcclxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7XHJcbiAgQm1iRHJvcGRvd25Db21wb25lbnQsXHJcbiAgSUJtYkRyb3Bkb3duSXRlbSxcclxufSBmcm9tICcuLi9ibWItZHJvcGRvd24vYm1iLWRyb3Bkb3duLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IElCbWJDb3VudHJ5Q29kZSwgSUJtYkNvdW50cnlDb2RlcyB9IGZyb20gJy4uLy4uL3V0aWxzL2NvdW50cnlDb2Rlcyc7XHJcbmltcG9ydCB7XHJcbiAgSUJtYklucHV0QXBwZWFyYW5jZSxcclxuICBJQm1iSW5wdXRFcnJvcixcclxuICBJQm1iSW5wdXRUb29sdGlwUG9zaXRpb24sXHJcbn0gZnJvbSAnLi4vYm1iLWlucHV0L2JtYi1pbnB1dC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBCbWJJbnB1dFZhbGlkYXRvckNvbXBvbmVudCB9IGZyb20gJy4uL2JtYi1pbnB1dC9ibWItaW5wdXQtdmFsaWRhdG9yL2JtYi1pbnB1dC12YWxpZGF0b3IuY29tcG9uZW50JztcclxuaW1wb3J0IHtcclxuICBidWlsZEVycm9yTWVzc2FnZSxcclxuICBnZXRDdXN0b21WYWxpZGF0aW9uLFxyXG4gIGdldEN1c3RvbVZhbGlkYXRpb25NZXNzYWdlLFxyXG4gIGdldFVVSUQsXHJcbiAgaXNFcnJvck1lc3NhZ2VTZXQsXHJcbn0gZnJvbSAnLi4vLi4vdXRpbHMvdXRpbHMnO1xyXG5pbXBvcnQgeyBCbWJJbnB1dENvbnRlbnRDb21wb25lbnQgfSBmcm9tICcuLi9ibWItaW5wdXQvYm1iLWlucHV0LWNvbnRlbnQvYm1iLWlucHV0LWNvbnRlbnQuY29tcG9uZW50JztcclxuaW1wb3J0IHtcclxuICBhc3NpZ25OZXdGb3JtQ29udHJvbCxcclxuICBoYW5kbGVWYWxpZGl0eSxcclxuICBzaG93RXJyb3IsXHJcbn0gZnJvbSAnLi4vLi4vdXRpbHMvZm9ybUNvbnRyb2wnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdibWItaW5wdXQtcGhvbmUtbnVtYmVyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vYm1iLWlucHV0LXBob25lLW51bWJlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2JtYi1pbnB1dC1waG9uZS1udW1iZXIuY29tcG9uZW50LnNjc3MnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgQm1iRHJvcGRvd25Db21wb25lbnQsXHJcbiAgICBCbWJJbnB1dENvbnRlbnRDb21wb25lbnQsXHJcbiAgICBCbWJJbnB1dFZhbGlkYXRvckNvbXBvbmVudCxcclxuICBdLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCbWJJbnB1dFBob25lTnVtYmVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBsYWJlbCA9IGlucHV0PHN0cmluZz4oJycpO1xyXG4gIG5hbWUgPSBpbnB1dDxzdHJpbmc+KGdldFVVSUQoKSk7XHJcbiAgdmFsdWUgPSBpbnB1dDxzdHJpbmc+KCcnKTtcclxuICBpc1JlcXVpcmVkID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gIHRvb2x0aXAgPSBpbnB1dDxzdHJpbmc+KCcnKTtcclxuICB0b29sdGlwUG9zaXRpb24gPSBpbnB1dDxJQm1iSW5wdXRUb29sdGlwUG9zaXRpb24+KHtcclxuICAgIGFsaWduOiAnYWJvdmUnLFxyXG4gICAganVzdGlmeTogJ2JlZm9yZScsXHJcbiAgfSk7XHJcbiAgZGVmYXVsdExhZGEgPSBpbnB1dDxzdHJpbmc+KCcrNTInKTsgLy9EZXByZWNhdGVkXHJcbiAgZGVmYXVsdENvdW50cnlDb2RlID0gaW5wdXQ8c3RyaW5nPignbXgnKTsgLy9NdXN0IG1hdGNoIHRoZSBhcmVhIGxhZGEgb2YgdGhlIGluaXRpYWwgdmFsdWVcclxuICBwbGFjZWhvbGRlciA9IGlucHV0PHN0cmluZz4oJycpO1xyXG4gIGFwcGVhcmFuY2UgPSBpbnB1dDxJQm1iSW5wdXRBcHBlYXJhbmNlPignbm9ybWFsJyk7IC8vRGVwcmVjYXRlZFxyXG4gIGVycm9yTWVzc2FnZSA9IGlucHV0PHN0cmluZyB8IElCbWJJbnB1dEVycm9yPignJyk7XHJcbiAgZGlzYWJsZWQgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcbiAgaW5wdXRJZCA9IGlucHV0PHN0cmluZz4odGhpcy5uYW1lKCkpO1xyXG4gIGhlbHBlck1lc3NhZ2UgPSBpbnB1dDxzdHJpbmc+KCcnKTtcclxuICBwcmVmZXJyZWRDb3VudHJpZXMgPSBpbnB1dDxzdHJpbmdbXT4oWydteCddKTtcclxuICBvbmx5Q291bnRyaWVzID0gaW5wdXQ8c3RyaW5nW10+KFtdKTtcclxuICBjdXN0b21WYWxpZGF0aW9uID0gaW5wdXQ8VmFsaWRhdG9yRm4+KCk7XHJcblxyXG4gIGNvbnRyb2wgPSBtb2RlbDxGb3JtQ29udHJvbD4obmV3IEZvcm1Db250cm9sKCkpO1xyXG4gIHNob3dFcnJvciA9IG1vZGVsPGJvb2xlYW4+KGZhbHNlKTsgLy8gZGVwcmVjYXRlZFxyXG5cclxuICB1dWlkOiBzdHJpbmcgPSBnZXRVVUlEKCk7XHJcbiAgaXNGb2N1c2VkID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcclxuICBhbGxDb3VudHJ5Q29kZXM6IElCbWJDb3VudHJ5Q29kZVtdID0gSUJtYkNvdW50cnlDb2RlcztcclxuICBsYWRhQ29udHJvbDogRm9ybUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woKTtcclxuICBwaG9uZUNvbnRyb2w6IEZvcm1Db250cm9sID0gbmV3IEZvcm1Db250cm9sKHtcclxuICAgIHZhbHVlOiAnJyxcclxuICAgIGRpc2FibGVkOiB0aGlzLmRpc2FibGVkKCksXHJcbiAgfSk7XHJcbiAgY291bnRyeUZpbHRlcmluZzogSUJtYkRyb3Bkb3duSXRlbVtdID0gW107XHJcbiAgaXNDb250cm9sTnVsbDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGN1c3RvbVZhbGlkYXRpb25NZXNzYWdlOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuY29udHJvbCgpKSB7XHJcbiAgICAgIHRoaXMuY29udHJvbC5zZXQoYXNzaWduTmV3Rm9ybUNvbnRyb2wodGhpcy5uYW1lKCksIHRoaXMuY29udHJvbCgpKSEpO1xyXG4gICAgICB0aGlzLmlzQ29udHJvbE51bGwgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICghIXRoaXMudmFsdWUoKSB8fCAhIXRoaXMuY29udHJvbCgpLnZhbHVlKSB7XHJcbiAgICAgIGxldCBpbnB1dHM6IHN0cmluZ1tdID0gW107XHJcblxyXG4gICAgICBpZiAoIXRoaXMuZGVmYXVsdENvdW50cnlDb2RlKCkpIHtcclxuICAgICAgICBpbnB1dHMucHVzaCgnZGVmYXVsdENvdW50cnknKTtcclxuICAgICAgfSBlbHNlIGlmICghdGhpcy5nZXRTZWxlY3RlZENvdW50cnkodGhpcy5kZWZhdWx0Q291bnRyeUNvZGUoKSkpIHtcclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXHJcbiAgICAgICAgICBgXHJcbiAgICAgICAgICBbJHt0aGlzLm5hbWUoKX1dIC0gVGhlIHZhbHVlICR7dGhpcy5kZWZhdWx0Q291bnRyeUNvZGUoKX0gZm9yIFwiZGVmYXVsdENvdW50cnlDb2RlXCIgZG9lcyBub3QgZXhpc3QgaW4gdGhlIGNvdW50cnkgTGlzdC5cclxuICAgICAgICAgIGAsXHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoaW5wdXRzLmxlbmd0aCkge1xyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcclxuICAgICAgICAgIGBcclxuICAgICAgICAgIFske3RoaXMubmFtZSgpfV0gLSBUaGUgJHtidWlsZEVycm9yTWVzc2FnZShpbnB1dHMpfSByZXF1aXJlZCB3aGVuIHRoZXJlIGlzIGFuIGluaXRpYWwgXCJ2YWx1ZVwiIGluIFwiYm1iLWlucHV0LXBob25lLlwiLlxyXG4gICAgICAgICAgYCxcclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5sYWRhQ29udHJvbC5zZXRWYWx1ZShcclxuICAgICAgdGhpcy5nZXRTZWxlY3RlZENvdW50cnlDb2RlKFxyXG4gICAgICAgIHRoaXMuZGVmYXVsdENvdW50cnlDb2RlKCkudG9Mb2NhbGVMb3dlckNhc2UoKSxcclxuICAgICAgKSxcclxuICAgICk7XHJcbiAgICB0aGlzLnBob25lQ29udHJvbC5zZXRWYWx1ZSh0aGlzLmdldE51bWJlclZhbHVlKCkpO1xyXG4gICAgdGhpcy5jb3VudHJ5RmlsdGVyaW5nID0gdGhpcy5nZXRPcHRpb25zKCk7XHJcblxyXG4gICAgdGhpcy5waG9uZUNvbnRyb2wudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgodmFsdWUpID0+IHtcclxuICAgICAgaWYgKCEhdmFsdWUpIHtcclxuICAgICAgICB0aGlzLnNldENvbnRyb2xWYWx1ZShcclxuICAgICAgICAgIHRoaXMuZ2V0U2VsZWN0ZWRDb3VudHJ5TGFkYSh0aGlzLmxhZGFDb250cm9sLnZhbHVlKSxcclxuICAgICAgICAgIHZhbHVlLFxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuY29udHJvbCgpLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XHJcbiAgICAgIGlmICh2YWx1ZSA9PT0gbnVsbCkge1xyXG4gICAgICAgIHRoaXMucGhvbmVDb250cm9sLnJlc2V0KCcnKTtcclxuICAgICAgICB0aGlzLmxhZGFDb250cm9sLnJlc2V0KFxyXG4gICAgICAgICAgdGhpcy5nZXRTZWxlY3RlZENvdW50cnlDb2RlKFxyXG4gICAgICAgICAgICB0aGlzLmRlZmF1bHRDb3VudHJ5Q29kZSgpLnRvTG9jYWxlTG93ZXJDYXNlKCksXHJcbiAgICAgICAgICApLFxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlRm9jdXModmFsdWU6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuaXNGb2N1c2VkLnNldCh2YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVDdXN0b21WYWxpZGF0b3IoKTogVmFsaWRhdG9yRm4ge1xyXG4gICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XHJcbiAgICAgIGNvbnN0IHsgdmFsdWUgfSA9IGNvbnRyb2w7XHJcblxyXG4gICAgICBpZiAoIXZhbHVlKSByZXR1cm4gbnVsbDtcclxuICAgICAgaWYgKHRoaXMucGhvbmVDb250cm9sLmhhc0Vycm9yKCdwYXR0ZXJuJykpIHJldHVybiB7IHBhdHRlcm46IHRydWUgfTtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIHRoaXMucGhvbmVDb250cm9sLmhhc0Vycm9yKCdtYXhsZW5ndGgnKSB8fFxyXG4gICAgICAgIHRoaXMucGhvbmVDb250cm9sLmhhc0Vycm9yKCdtaW5sZW5ndGgnKVxyXG4gICAgICApIHtcclxuICAgICAgICByZXR1cm4geyBtaW5sZW5ndGg6IHRydWUgfTtcclxuICAgICAgfVxyXG5cclxuICAgICAgY29uc3QgcmVnRXhwID0gbmV3IFJlZ0V4cChcclxuICAgICAgICBgXlxcXFwke3RoaXMuZ2V0U2VsZWN0ZWRDb3VudHJ5TGFkYShcclxuICAgICAgICAgIHRoaXMubGFkYUNvbnRyb2wudmFsdWUsXHJcbiAgICAgICAgKX1cXFxcZHske3RoaXMuZ2V0U2VsZWN0ZWRDb3VudHJ5TGVuZ3RoKHRoaXMubGFkYUNvbnRyb2wudmFsdWUpfX0kYCxcclxuICAgICAgKTtcclxuXHJcbiAgICAgIGlmICghcmVnRXhwLnRlc3QoY29udHJvbC52YWx1ZSkpIHtcclxuICAgICAgICB0aGlzLmN1c3RvbVZhbGlkYXRpb25NZXNzYWdlID1cclxuICAgICAgICAgICdQb3IgZmF2b3IgaW5ncmVzYSB1biBuw7ptZXJvIGRlIHRlbMOpZm9ubyB2w6FsaWRvLCB2ZXJpZmljYSBzaSBsYSBsYWRhIGVzIGNvcnJlY3RhLic7XHJcbiAgICAgICAgcmV0dXJuIHsgY3VzdG9tVmFsaWRhdGlvbjogdHJ1ZSB9O1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjb25zdCByZXN1bHQgPSBnZXRDdXN0b21WYWxpZGF0aW9uKFxyXG4gICAgICAgIHRoaXMuY3VzdG9tVmFsaWRhdGlvbigpISxcclxuICAgICAgICB0aGlzLmNvbnRyb2woKSxcclxuICAgICAgKTtcclxuICAgICAgdGhpcy5jdXN0b21WYWxpZGF0aW9uTWVzc2FnZSA9IGdldEN1c3RvbVZhbGlkYXRpb25NZXNzYWdlKFxyXG4gICAgICAgIHJlc3VsdCxcclxuICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSgpLFxyXG4gICAgICApO1xyXG5cclxuICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBnZXRVVUlEKG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gYCR7bmFtZX1fJHt0aGlzLm5hbWUoKX1fJHt0aGlzLnV1aWR9YDtcclxuICB9XHJcblxyXG4gIHNldENvbnRyb2xWYWx1ZShsYWRhOiBzdHJpbmcsIHBob25lTnVtYmVyOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGlmICghIWxhZGEgJiYgISFwaG9uZU51bWJlcikge1xyXG4gICAgICB0aGlzLmNvbnRyb2woKS5zZXRWYWx1ZShsYWRhICsgcGhvbmVOdW1iZXIpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5jb250cm9sKCkucmVzZXQoJycpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuaGFuZGxlVmFsaWRpdHkoKTtcclxuICB9XHJcblxyXG4gIGdldE51bWJlclZhbHVlKCk6IHN0cmluZyB7XHJcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMuY29udHJvbCgpLnZhbHVlIHx8IHRoaXMudmFsdWUoKTtcclxuICAgIHJldHVybiB2YWx1ZS5yZXBsYWNlKFxyXG4gICAgICB0aGlzLmdldFNlbGVjdGVkQ291bnRyeUxhZGEodGhpcy5sYWRhQ29udHJvbC52YWx1ZSksXHJcbiAgICAgICcnLFxyXG4gICAgKSE7XHJcbiAgfVxyXG5cclxuICBnZXRTZWxlY3RlZENvdW50cnkodmFsdWU6IHN0cmluZyk6IElCbWJDb3VudHJ5Q29kZSB7XHJcbiAgICByZXR1cm4gdGhpcy5hbGxDb3VudHJ5Q29kZXMuZmluZChcclxuICAgICAgKHsgY291bnRyeV9jb2RlIH0pID0+IGNvdW50cnlfY29kZS50b0xvY2FsZUxvd2VyQ2FzZSgpID09PSB2YWx1ZSxcclxuICAgICkhO1xyXG4gIH1cclxuXHJcbiAgZ2V0U2VsZWN0ZWRDb3VudHJ5Q29kZSh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IHNlbGVjdGVkQ291bnRyeSA9IHRoaXMuZ2V0U2VsZWN0ZWRDb3VudHJ5KHZhbHVlKTtcclxuXHJcbiAgICBpZiAoISFzZWxlY3RlZENvdW50cnkpIHtcclxuICAgICAgcmV0dXJuIHNlbGVjdGVkQ291bnRyeS5jb3VudHJ5X2NvZGUudG9Mb2NhbGVMb3dlckNhc2UoKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gJyc7XHJcbiAgfVxyXG5cclxuICBnZXRTZWxlY3RlZENvdW50cnlMYWRhKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgY29uc3Qgc2VsZWN0ZWRDb3VudHJ5ID0gdGhpcy5nZXRTZWxlY3RlZENvdW50cnkodmFsdWUpO1xyXG5cclxuICAgIGlmICghIXNlbGVjdGVkQ291bnRyeSkge1xyXG4gICAgICByZXR1cm4gc2VsZWN0ZWRDb3VudHJ5LmxhZGE7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuICcnO1xyXG4gIH1cclxuXHJcbiAgZ2V0U2VsZWN0ZWRDb3VudHJ5TGVuZ3RoKHZhbHVlOiBzdHJpbmcpOiBudW1iZXIge1xyXG4gICAgY29uc3Qgc2VsZWN0ZWRDb3VudHJ5ID0gdGhpcy5nZXRTZWxlY3RlZENvdW50cnkodmFsdWUpO1xyXG5cclxuICAgIGlmICghIXNlbGVjdGVkQ291bnRyeSkge1xyXG4gICAgICByZXR1cm4gc2VsZWN0ZWRDb3VudHJ5Lmxlbmd0aDtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gMDtcclxuICB9XHJcblxyXG4gIG9uVmFsdWVDaGFuZ2UodmFsdWU6IHN0cmluZykge1xyXG4gICAgaWYgKCEhdGhpcy5waG9uZUNvbnRyb2wudmFsdWUpIHtcclxuICAgICAgdGhpcy5zZXRDb250cm9sVmFsdWUoXHJcbiAgICAgICAgdGhpcy5nZXRTZWxlY3RlZENvdW50cnlMYWRhKHZhbHVlKSxcclxuICAgICAgICB0aGlzLnBob25lQ29udHJvbC52YWx1ZSxcclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldE9wdGlvbnMoKTogSUJtYkRyb3Bkb3duSXRlbVtdIHtcclxuICAgIGlmICh0aGlzLm9ubHlDb3VudHJpZXMoKS5sZW5ndGgpIHtcclxuICAgICAgY29uc3QgbG93ZXJDYXNlQ291bnRyaWVzID0gdGhpcy5vbmx5Q291bnRyaWVzKCkubWFwKChjb3VudHJ5KSA9PlxyXG4gICAgICAgIGNvdW50cnkudG9Mb2NhbGVMb3dlckNhc2UoKSxcclxuICAgICAgKTtcclxuXHJcbiAgICAgIGNvbnN0IGZpbHRlcmVkT3B0aW9ucyA9IHRoaXMuYWxsQ291bnRyeUNvZGVzLmZpbHRlcihcclxuICAgICAgICAoeyBjb3VudHJ5X2NvZGUgfSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIGxvd2VyQ2FzZUNvdW50cmllcy5pbmNsdWRlcyhjb3VudHJ5X2NvZGUudG9Mb2NhbGVMb3dlckNhc2UoKSk7XHJcbiAgICAgICAgfSxcclxuICAgICAgKTtcclxuXHJcbiAgICAgIHJldHVybiBmaWx0ZXJlZE9wdGlvbnMubWFwKCh7IGNvdW50cnksIGxhZGEsIGNvdW50cnlfY29kZSB9KSA9PiAoe1xyXG4gICAgICAgIG5hbWU6IGAke2NvdW50cnl9ICgke2xhZGF9KWAsXHJcbiAgICAgICAgdmFsdWU6IGNvdW50cnlfY29kZS50b0xvY2FsZUxvd2VyQ2FzZSgpLFxyXG4gICAgICAgIHNlbGVjdGVkVGV4dDogbGFkYSxcclxuICAgICAgICBpY29uOiAnZmxhZycsXHJcbiAgICAgIH0pKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5hbGxDb3VudHJ5Q29kZXMubWFwKCh7IGNvdW50cnksIGxhZGEsIGNvdW50cnlfY29kZSB9KSA9PiAoe1xyXG4gICAgICBuYW1lOiBgJHtjb3VudHJ5fSAoJHtsYWRhfSlgLFxyXG4gICAgICB2YWx1ZTogY291bnRyeV9jb2RlLnRvTG9jYWxlTG93ZXJDYXNlKCksXHJcbiAgICAgIHNlbGVjdGVkVGV4dDogbGFkYSxcclxuICAgICAgaWNvbjogJ2ZsYWcnLFxyXG4gICAgfSkpO1xyXG4gIH1cclxuXHJcbiAgZ2V0RXJyb3JNZXNzYWdlKCk6IElCbWJJbnB1dEVycm9yIHtcclxuICAgIGNvbnN0IHBhdHRlcm4gPSAnUG9yIGZhdm9yIGluZ3Jlc2Egc8OzbG8gY2FyYWN0ZXJlcyBudW3DqXJpY29zJztcclxuICAgIGNvbnN0IG1pbkxlbmd0aCA9IGBQb3IgZmF2b3IgaW5ncmVzYSAke3RoaXMuZ2V0U2VsZWN0ZWRDb3VudHJ5TGVuZ3RoKFxyXG4gICAgICB0aGlzLmxhZGFDb250cm9sLnZhbHVlLFxyXG4gICAgKX0gY2FyYWN0ZXJlcyBudW3DqXJpY29zYDtcclxuICAgIGlmICghIXRoaXMuZXJyb3JNZXNzYWdlKCkpIHtcclxuICAgICAgaWYgKHR5cGVvZiB0aGlzLmVycm9yTWVzc2FnZSgpID09PSAnc3RyaW5nJylcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgcmVxdWlyZWQ6IHRoaXMuZXJyb3JNZXNzYWdlKCkudG9TdHJpbmcoKSxcclxuICAgICAgICAgIHBhdHRlcm4sXHJcbiAgICAgICAgICBtaW5MZW5ndGgsXHJcbiAgICAgICAgICBjdXN0b21WYWxpZGF0aW9uOiB0aGlzLmN1c3RvbVZhbGlkYXRpb25NZXNzYWdlLFxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIHBhdHRlcm4sXHJcbiAgICAgICAgbWluTGVuZ3RoLFxyXG4gICAgICAgIC4uLih0aGlzLmVycm9yTWVzc2FnZSgpIGFzIElCbWJJbnB1dEVycm9yKSxcclxuICAgICAgICBjdXN0b21WYWxpZGF0aW9uOiB0aGlzLmN1c3RvbVZhbGlkYXRpb25NZXNzYWdlLFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB7XHJcbiAgICAgIHBhdHRlcm4sXHJcbiAgICAgIG1pbkxlbmd0aCxcclxuICAgICAgY3VzdG9tVmFsaWRhdGlvbjogdGhpcy5jdXN0b21WYWxpZGF0aW9uTWVzc2FnZSxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBoYW5kbGVWYWxpZGl0eSgpOiB2b2lkIHtcclxuICAgIGhhbmRsZVZhbGlkaXR5KHRoaXMuY29udHJvbCgpKTtcclxuICB9XHJcblxyXG4gIGdldCBzaG91bGRTaG93RXJyb3IoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gc2hvd0Vycm9yKHRoaXMuY29udHJvbCgpKSB8fCBzaG93RXJyb3IodGhpcy5waG9uZUNvbnRyb2wpO1xyXG4gIH1cclxufVxyXG4iLCI8Ym1iLWlucHV0LXZhbGlkYXRvclxyXG4gIFtuYW1lXT1cIm5hbWUoKVwiXHJcbiAgW2xhYmVsXT1cImxhYmVsKClcIlxyXG4gIFt2YWx1ZV09XCIhIWRlZmF1bHRDb3VudHJ5Q29kZSgpID8gdmFsdWUoKSA6ICcnXCJcclxuICBbZXJyb3JNZXNzYWdlXT1cImdldEVycm9yTWVzc2FnZSgpXCJcclxuICBbaGVscGVyTWVzc2FnZV09XCJoZWxwZXJNZXNzYWdlKClcIlxyXG4gIFtpc1JlcXVpcmVkXT1cImlzUmVxdWlyZWQoKVwiXHJcbiAgW2lzRGlzYWJsZWRdPVwiZGlzYWJsZWQoKVwiXHJcbiAgW2NvbnRyb2xdPVwiY29udHJvbCgpXCJcclxuICBbc2hvd0Vycm9yXT1cInNob3VsZFNob3dFcnJvclwiXHJcbiAgW3Rvb2x0aXBdPVwidG9vbHRpcCgpXCJcclxuICBbdG9vbHRpcFBvc2l0aW9uXT1cInRvb2x0aXBQb3NpdGlvbigpXCJcclxuICBbY3VzdG9tVmFsaWRhdGlvbl09XCJoYW5kbGVDdXN0b21WYWxpZGF0b3IoKVwiXHJcbiAgW2lucHV0SWRdPVwiaW5wdXRJZCgpXCJcclxuPlxyXG4gIDxzZWN0aW9uIGNsYXNzPVwiYm1iX2lucHV0LXBob25lXCI+XHJcbiAgICA8c2VjdGlvblxyXG4gICAgICBjbGFzcz1cImJtYl9pbnB1dC1waG9uZS1jb250YWluZXJcIlxyXG4gICAgICBbbmdDbGFzc109XCJ7XHJcbiAgICAgICAgJ2JtYl9pbnB1dC1waG9uZS1jb250YWluZXItZXJyb3InOiBzaG91bGRTaG93RXJyb3IsXHJcbiAgICAgICAgJ2JtYl9pbnB1dC1waG9uZS1jb250YWluZXItZm9jdXMnOiBpc0ZvY3VzZWQoKSxcclxuICAgICAgfVwiXHJcbiAgICA+XHJcbiAgICAgIDxibWItZHJvcGRvd25cclxuICAgICAgICBjbGFzcz1cImJtYl9pbnB1dC1waG9uZS1sYWRhXCJcclxuICAgICAgICBbbmFtZV09XCJnZXRVVUlEKCdsYWRhJylcIlxyXG4gICAgICAgIFt2YWx1ZV09XCJsYWRhQ29udHJvbC52YWx1ZVwiXHJcbiAgICAgICAgW3JlcXVpcmVkXT1cInRydWVcIlxyXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCgpXCJcclxuICAgICAgICBbc2hvd0ljb25dPVwiZmFsc2VcIlxyXG4gICAgICAgIFtvcHRpb25zXT1cImNvdW50cnlGaWx0ZXJpbmdcIlxyXG4gICAgICAgIFtwcmVmZXJyZWRPcHRpb25zXT1cInByZWZlcnJlZENvdW50cmllcygpXCJcclxuICAgICAgICBbY29udHJvbF09XCJsYWRhQ29udHJvbFwiXHJcbiAgICAgICAgKG9uVmFsdWVDaGFuZ2UpPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAob25Gb2N1cyk9XCJoYW5kbGVGb2N1cygkZXZlbnQpXCJcclxuICAgICAgLz5cclxuICAgICAgPGJtYi1pbnB1dC1jb250ZW50XHJcbiAgICAgICAgY2xhc3M9XCJibWJfaW5wdXQtcGhvbmUtbnVtYmVyXCJcclxuICAgICAgICBbbmFtZV09XCJnZXRVVUlEKCdwaG9uZScpXCJcclxuICAgICAgICBwYXR0ZXJuPVwiXlxcZCskXCJcclxuICAgICAgICBbaXNEaXNhYmxlZF09XCJkaXNhYmxlZCgpXCJcclxuICAgICAgICBbY29udHJvbF09XCJwaG9uZUNvbnRyb2xcIlxyXG4gICAgICAgIFtpbnB1dElkXT1cImlucHV0SWQoKVwiXHJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyKClcIlxyXG4gICAgICAgIFttYXhMZW5ndGhdPVwiZ2V0U2VsZWN0ZWRDb3VudHJ5TGVuZ3RoKGxhZGFDb250cm9sLnZhbHVlKVwiXHJcbiAgICAgICAgW21pbkxlbmd0aF09XCJnZXRTZWxlY3RlZENvdW50cnlMZW5ndGgobGFkYUNvbnRyb2wudmFsdWUpXCJcclxuICAgICAgICBbaXNSZXF1aXJlZF09XCJpc1JlcXVpcmVkKClcIlxyXG4gICAgICAgIChvbkZvY3VzKT1cImhhbmRsZUZvY3VzKCRldmVudClcIlxyXG4gICAgICAgIChvbkJsdXIpPVwiaGFuZGxlVmFsaWRpdHkoKVwiXHJcbiAgICAgIC8+XHJcbiAgICA8L3NlY3Rpb24+XHJcbiAgICA8aW5wdXRcclxuICAgICAgaGlkZGVuXHJcbiAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgW25hbWVdPVwibmFtZSgpXCJcclxuICAgICAgW3JlcXVpcmVkXT1cImlzUmVxdWlyZWQoKVwiXHJcbiAgICAgIFtmb3JtQ29udHJvbF09XCJjb250cm9sKClcIlxyXG4gICAgICBbdGFiaW5kZXhdPVwiLTFcIlxyXG4gICAgLz5cclxuICA8L3NlY3Rpb24+XHJcbjwvYm1iLWlucHV0LXZhbGlkYXRvcj5cclxuIl19
@@ -0,0 +1,191 @@
1
+ import { BmbTagComponent } from './../bmb-tags/bmb-tags.component';
2
+ import { CommonModule } from '@angular/common';
3
+ import { ChangeDetectionStrategy, Component, input, ViewEncapsulation, output, model, signal, } from '@angular/core';
4
+ import { FormControl, ReactiveFormsModule } from '@angular/forms';
5
+ import { ClickOutsideDirective } from '../../directives/utils/clickoutside.directive';
6
+ import { debounceTime } from 'rxjs';
7
+ import { convertListToSelectList, filteredValue, getSelectedValues, getValidInitialValues, } from '../../utils/dropdown';
8
+ import { BmbInputValidatorComponent } from '../bmb-input/bmb-input-validator/bmb-input-validator.component';
9
+ import { BmbDropdownContentComponent } from '../utils/bmb-dropdown-content/bmb-dropdown-content.component';
10
+ import { BmbInputContentComponent } from '../bmb-input/bmb-input-content/bmb-input-content.component';
11
+ import { getUUID } from '../../utils/utils';
12
+ import { assignNewFormControl, handleValidity, newFormControlByType, showError, } from '../../utils/formControl';
13
+ import * as i0 from "@angular/core";
14
+ import * as i1 from "@angular/common";
15
+ import * as i2 from "@angular/forms";
16
+ export class BmbInputTagsComponent {
17
+ constructor(cdr) {
18
+ this.cdr = cdr;
19
+ this.errorMessage = input('');
20
+ this.tooltip = input('');
21
+ this.tooltipPosition = input({
22
+ align: 'above',
23
+ justify: 'before',
24
+ });
25
+ this.label = input('');
26
+ this.placeholder = input('');
27
+ this.isRequired = input(false);
28
+ this.helperMessage = input('');
29
+ this.disabled = input(false);
30
+ this.maxSelectedItems = input(); //Deprecated
31
+ this.name = input(getUUID());
32
+ this.value = input('');
33
+ this.showError = input(false);
34
+ this.inputId = input(this.name());
35
+ this.customValidation = input();
36
+ this.tagOptions = model([]);
37
+ this.control = model(newFormControlByType());
38
+ this.onKeyDown = output();
39
+ this.onChange = output();
40
+ this.uuid = getUUID();
41
+ this.showDropdown = false;
42
+ this.selectedTags = [];
43
+ this.filteredOptions = [];
44
+ this.filterControl = new FormControl();
45
+ this.items = [];
46
+ this.isFocused = signal(false);
47
+ this.isKeyboardEvent = false;
48
+ this.isControlNull = false;
49
+ }
50
+ ngOnInit() {
51
+ if (this.disabled())
52
+ this.filterControl.disable();
53
+ else
54
+ this.filterControl.enable();
55
+ this.filterControl.valueChanges
56
+ .pipe(debounceTime(300))
57
+ .subscribe((value) => {
58
+ this.filteredOptions = filteredValue(value, this.items);
59
+ this.cdr.detectChanges();
60
+ });
61
+ this.control().valueChanges.subscribe((value) => {
62
+ this.setSelectedTags(value || []);
63
+ });
64
+ }
65
+ ngOnChanges(changes) {
66
+ if (!this.control()) {
67
+ this.control.set(assignNewFormControl(this.name(), this.control()));
68
+ this.isControlNull = true;
69
+ }
70
+ if (changes['tagOptions']) {
71
+ this.initOptions(changes['tagOptions'].currentValue);
72
+ this.control()?.setValue(this.getValidInitialValues());
73
+ }
74
+ }
75
+ initOptions(list) {
76
+ this.items = convertListToSelectList(list);
77
+ this.items = this.items.map((element) => {
78
+ return {
79
+ ...element,
80
+ action: () => {
81
+ this.setSelectedValue(element);
82
+ },
83
+ };
84
+ });
85
+ this.setSelectedTags(this.getValidInitialValues());
86
+ this.filteredOptions = [...this.items];
87
+ }
88
+ getUUID(name) {
89
+ return `${name}_${this.name()}_${this.uuid}`;
90
+ }
91
+ getValidInitialValues() {
92
+ const initialValue = getValidInitialValues(this.control().value, this.value(), this.tagOptions(), true);
93
+ return Array.isArray(initialValue) ? initialValue : [];
94
+ }
95
+ setSelectedValue(element) {
96
+ this.control().setValue(getSelectedValues(this.control().value, element.value));
97
+ this.filterControl.setValue('');
98
+ this.onChange.emit(this.control().value);
99
+ }
100
+ setSelectedTags(controlValue) {
101
+ this.selectedTags = this.items.filter(({ value }) => controlValue.includes(value));
102
+ }
103
+ removeTag(tag) {
104
+ this.setSelectedValue(tag);
105
+ }
106
+ openList() {
107
+ this.showDropdown = true;
108
+ }
109
+ closeList() {
110
+ this.showDropdown = false;
111
+ this.isKeyboardEvent = false;
112
+ }
113
+ selectOptionWithKey(value) {
114
+ if (!!value) {
115
+ const selectedLength = this.filteredOptions.length;
116
+ if (!!selectedLength) {
117
+ this.setSelectedValue(this.filteredOptions[0]);
118
+ }
119
+ else {
120
+ this.addOption(value);
121
+ this.setSelectedValue(this.filteredOptions[this.filteredOptions.length - 1]);
122
+ }
123
+ }
124
+ }
125
+ addOption(value) {
126
+ if (typeof this.tagOptions()[0] === 'string') {
127
+ const newTagOptions = [
128
+ ...this.tagOptions(),
129
+ value,
130
+ ];
131
+ this.tagOptions.set([...new Set(newTagOptions)]);
132
+ }
133
+ else {
134
+ const newOption = {
135
+ name: value,
136
+ value,
137
+ selectedText: value,
138
+ id: getUUID(),
139
+ };
140
+ const newList = [
141
+ ...this.tagOptions(),
142
+ newOption,
143
+ ];
144
+ this.tagOptions.set([...new Set(newList)]);
145
+ }
146
+ this.initOptions(this.tagOptions());
147
+ }
148
+ handleKeyDown(event) {
149
+ const keyboardValuesToOpenDialog = [' ', 'ArrowDown', 'Down'];
150
+ const keyboardValuesToAddOption = [',', 'Enter'];
151
+ if (keyboardValuesToOpenDialog.includes(event.key)) {
152
+ if (!this.showDropdown) {
153
+ this.isKeyboardEvent = true;
154
+ this.openList();
155
+ }
156
+ if (!this.filteredOptions.length) {
157
+ event.preventDefault();
158
+ return;
159
+ }
160
+ return;
161
+ }
162
+ if (keyboardValuesToAddOption.includes(event.key)) {
163
+ event.preventDefault();
164
+ this.selectOptionWithKey(this.filterControl.value);
165
+ }
166
+ }
167
+ handleFocus(value) {
168
+ this.isFocused.set(value);
169
+ }
170
+ handleValidity() {
171
+ handleValidity(this.control());
172
+ }
173
+ get shouldShowError() {
174
+ return showError(this.control());
175
+ }
176
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BmbInputTagsComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
177
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: BmbInputTagsComponent, isStandalone: true, selector: "bmb-input-tags", inputs: { errorMessage: { classPropertyName: "errorMessage", publicName: "errorMessage", isSignal: true, isRequired: false, transformFunction: null }, tooltip: { classPropertyName: "tooltip", publicName: "tooltip", isSignal: true, isRequired: false, transformFunction: null }, tooltipPosition: { classPropertyName: "tooltipPosition", publicName: "tooltipPosition", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, isRequired: { classPropertyName: "isRequired", publicName: "isRequired", isSignal: true, isRequired: false, transformFunction: null }, helperMessage: { classPropertyName: "helperMessage", publicName: "helperMessage", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, maxSelectedItems: { classPropertyName: "maxSelectedItems", publicName: "maxSelectedItems", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, showError: { classPropertyName: "showError", publicName: "showError", isSignal: true, isRequired: false, transformFunction: null }, inputId: { classPropertyName: "inputId", publicName: "inputId", isSignal: true, isRequired: false, transformFunction: null }, customValidation: { classPropertyName: "customValidation", publicName: "customValidation", isSignal: true, isRequired: false, transformFunction: null }, tagOptions: { classPropertyName: "tagOptions", publicName: "tagOptions", isSignal: true, isRequired: false, transformFunction: null }, control: { classPropertyName: "control", publicName: "control", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { tagOptions: "tagOptionsChange", control: "controlChange", onKeyDown: "onKeyDown", onChange: "onChange" }, providers: [], usesOnChanges: true, ngImport: i0, template: "<bmb-input-validator\r\n class=\"bmb_input-tags\"\r\n [name]=\"name()\"\r\n [value]=\"getValidInitialValues()\"\r\n [label]=\"label()!\"\r\n [errorMessage]=\"errorMessage()\"\r\n [helperMessage]=\"helperMessage()\"\r\n [isRequired]=\"isRequired()\"\r\n [isDisabled]=\"disabled()\"\r\n [control]=\"control()\"\r\n [showError]=\"shouldShowError\"\r\n [tooltip]=\"tooltip()\"\r\n [tooltipPosition]=\"tooltipPosition()\"\r\n [customValidation]=\"customValidation()\"\r\n clickOutside\r\n (clickOutside)=\"closeList()\"\r\n [inputId]=\"inputId()\"\r\n>\r\n <section\r\n class=\"bmb_input-tags-container\"\r\n [ngClass]=\"{\r\n 'bmb_input-tags-container-error': shouldShowError,\r\n 'bmb_input-tags-container-focus': isFocused(),\r\n }\"\r\n >\r\n <bmb-input-content\r\n class=\"bmb_input-tags-filter\"\r\n type=\"text\"\r\n [inputId]=\"inputId()\"\r\n [name]=\"getUUID('filter')\"\r\n [control]=\"filterControl\"\r\n [placeholder]=\"placeholder()\"\r\n [isDisabled]=\"disabled()\"\r\n (click)=\"openList()\"\r\n (onBlur)=\"handleValidity()\"\r\n (keydown)=\"handleKeyDown($event)\"\r\n (onFocus)=\"handleFocus($event)\"\r\n />\r\n @if (!!selectedTags && !!selectedTags.length) {\r\n <div class=\"bmb_input-tags-selected-list\" [tabIndex]=\"-1\">\r\n @for (item of selectedTags; track $index) {\r\n <bmb-tag\r\n [text]=\"item.selectedText!\"\r\n [dismissible]=\"true\"\r\n [isDisabled]=\"disabled()\"\r\n (clickedTag)=\"removeTag(item)\"\r\n (closedTag)=\"removeTag(item)\"\r\n />\r\n }\r\n </div>\r\n }\r\n </section>\r\n <input\r\n hidden\r\n type=\"text\"\r\n [id]=\"name()\"\r\n [name]=\"name()\"\r\n [formControl]=\"control()\"\r\n />\r\n <bmb-dropdown-content\r\n class=\"bmb_input-tags-dialog\"\r\n name=\"list\"\r\n [selectedOption]=\"control().value\"\r\n [isKeyboardEvent]=\"isKeyboardEvent\"\r\n [(items)]=\"filteredOptions\"\r\n [(isOpen)]=\"showDropdown\"\r\n />\r\n</bmb-input-validator>\r\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_input-tags-container{display:flex;flex-direction:column;box-sizing:border-box;border:.0625rem solid var(--general_contrasts-50);border-radius:.5rem;width:100%;background-color:var(--general_contrasts-input-background);height:3rem;transition:all .3s ease;min-height:3rem;height:auto}.bmb_input-tags-container-error{border-color:var(--input-error)}.bmb_input-tags-container:focus,.bmb_input-tags-container:focus-visible,.bmb_input-tags-container-focus{box-sizing:inherit;border-color:var(--general_contrasts-input-outline);caret-color:var(--general_contrasts-input-outline);outline:.0625rem solid;outline-color:var(--general_contrasts-input-outline)}.bmb_input-tags-container:hover{box-sizing:inherit;border-color:var(--general_contrasts-50);outline:.0625rem solid;outline-color:var(--general_contrasts-50)}.bmb_input-tags-dialog .bmb_dropdown-content-item .bmb_check-external-link-button{display:block;padding:.6875rem 1rem}.bmb_input-tags-dialog .bmb_dropdown-content-item .bmb_check-external-link-button-element{width:auto;border-radius:var(--bmb-spacing-m);padding:var(--bmb-spacing-s);height:1.625rem;border:.0625rem solid transparent}.bmb_input-tags-dialog .bmb_dropdown-content-item .bmb_check-external-link-button-element:hover,.bmb_input-tags-dialog .bmb_dropdown-content-item .bmb_check-external-link-button-element:focus,.bmb_input-tags-dialog .bmb_dropdown-content-item .bmb_check-external-link-button-element:focus-visible{border-color:var(--menu_select-on-surface-hovered-border)}.bmb_input-tags-filter .bmb_field-input-normal{border:0;height:2.75rem}.bmb_input-tags-filter .bmb_field-input-normal:focus,.bmb_input-tags-filter .bmb_field-input-normal:focus-visible,.bmb_input-tags-filter .bmb_field-input-normal:hover{border:0;outline:0 none}.bmb_input-tags-selected-list{display:flex;flex-wrap:wrap;gap:.5rem;padding:var(--bmb-spacing-s);max-height:6.9375rem;overflow:auto}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: ClickOutsideDirective, selector: "[clickOutside]", outputs: ["clickOutside"] }, { kind: "component", type: BmbTagComponent, selector: "bmb-tag", inputs: ["appearance", "text", "grouped", "dismissible", "rounded", "activityTag", "isDisabled", "isActive"], outputs: ["closedTag", "clickedTag"] }, { kind: "component", type: BmbInputValidatorComponent, selector: "bmb-input-validator", inputs: ["inputId", "type", "appearance", "label", "labelPosition", "name", "value", "checked", "isRequired", "isDisabled", "max", "min", "maxLength", "minLength", "pattern", "jsonFormat", "tooltip", "rows", "tooltipPosition", "showMaxTextLength", "helperMessage", "errorMessage", "customValidation", "showError", "control"], outputs: ["showErrorChange", "controlChange"] }, { kind: "component", type: BmbInputContentComponent, selector: "bmb-input-content", inputs: ["type", "placeholder", "icon", "appearance", "isDisabled", "isRequired", "name", "spellcheck", "heightTextArea", "maxLength", "minLength", "pattern", "max", "min", "inputId", "autoComplete", "rows", "isReadOnly", "additionalAction", "isClearable", "isError", "isHidden", "showStates", "control"], outputs: ["controlChange", "onFocus", "onBlur", "onChange", "onKeyDown", "onKeyUp"] }, { kind: "component", type: BmbDropdownContentComponent, selector: "bmb-dropdown-content", inputs: ["selectedOption", "items", "isOpen", "isKeyboardEvent"], outputs: ["itemsChange", "isOpenChange", "isKeyboardEventChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
178
+ }
179
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BmbInputTagsComponent, decorators: [{
180
+ type: Component,
181
+ args: [{ selector: 'bmb-input-tags', standalone: true, imports: [
182
+ CommonModule,
183
+ ReactiveFormsModule,
184
+ ClickOutsideDirective,
185
+ BmbTagComponent,
186
+ BmbInputValidatorComponent,
187
+ BmbInputContentComponent,
188
+ BmbDropdownContentComponent,
189
+ ], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [], template: "<bmb-input-validator\r\n class=\"bmb_input-tags\"\r\n [name]=\"name()\"\r\n [value]=\"getValidInitialValues()\"\r\n [label]=\"label()!\"\r\n [errorMessage]=\"errorMessage()\"\r\n [helperMessage]=\"helperMessage()\"\r\n [isRequired]=\"isRequired()\"\r\n [isDisabled]=\"disabled()\"\r\n [control]=\"control()\"\r\n [showError]=\"shouldShowError\"\r\n [tooltip]=\"tooltip()\"\r\n [tooltipPosition]=\"tooltipPosition()\"\r\n [customValidation]=\"customValidation()\"\r\n clickOutside\r\n (clickOutside)=\"closeList()\"\r\n [inputId]=\"inputId()\"\r\n>\r\n <section\r\n class=\"bmb_input-tags-container\"\r\n [ngClass]=\"{\r\n 'bmb_input-tags-container-error': shouldShowError,\r\n 'bmb_input-tags-container-focus': isFocused(),\r\n }\"\r\n >\r\n <bmb-input-content\r\n class=\"bmb_input-tags-filter\"\r\n type=\"text\"\r\n [inputId]=\"inputId()\"\r\n [name]=\"getUUID('filter')\"\r\n [control]=\"filterControl\"\r\n [placeholder]=\"placeholder()\"\r\n [isDisabled]=\"disabled()\"\r\n (click)=\"openList()\"\r\n (onBlur)=\"handleValidity()\"\r\n (keydown)=\"handleKeyDown($event)\"\r\n (onFocus)=\"handleFocus($event)\"\r\n />\r\n @if (!!selectedTags && !!selectedTags.length) {\r\n <div class=\"bmb_input-tags-selected-list\" [tabIndex]=\"-1\">\r\n @for (item of selectedTags; track $index) {\r\n <bmb-tag\r\n [text]=\"item.selectedText!\"\r\n [dismissible]=\"true\"\r\n [isDisabled]=\"disabled()\"\r\n (clickedTag)=\"removeTag(item)\"\r\n (closedTag)=\"removeTag(item)\"\r\n />\r\n }\r\n </div>\r\n }\r\n </section>\r\n <input\r\n hidden\r\n type=\"text\"\r\n [id]=\"name()\"\r\n [name]=\"name()\"\r\n [formControl]=\"control()\"\r\n />\r\n <bmb-dropdown-content\r\n class=\"bmb_input-tags-dialog\"\r\n name=\"list\"\r\n [selectedOption]=\"control().value\"\r\n [isKeyboardEvent]=\"isKeyboardEvent\"\r\n [(items)]=\"filteredOptions\"\r\n [(isOpen)]=\"showDropdown\"\r\n />\r\n</bmb-input-validator>\r\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_input-tags-container{display:flex;flex-direction:column;box-sizing:border-box;border:.0625rem solid var(--general_contrasts-50);border-radius:.5rem;width:100%;background-color:var(--general_contrasts-input-background);height:3rem;transition:all .3s ease;min-height:3rem;height:auto}.bmb_input-tags-container-error{border-color:var(--input-error)}.bmb_input-tags-container:focus,.bmb_input-tags-container:focus-visible,.bmb_input-tags-container-focus{box-sizing:inherit;border-color:var(--general_contrasts-input-outline);caret-color:var(--general_contrasts-input-outline);outline:.0625rem solid;outline-color:var(--general_contrasts-input-outline)}.bmb_input-tags-container:hover{box-sizing:inherit;border-color:var(--general_contrasts-50);outline:.0625rem solid;outline-color:var(--general_contrasts-50)}.bmb_input-tags-dialog .bmb_dropdown-content-item .bmb_check-external-link-button{display:block;padding:.6875rem 1rem}.bmb_input-tags-dialog .bmb_dropdown-content-item .bmb_check-external-link-button-element{width:auto;border-radius:var(--bmb-spacing-m);padding:var(--bmb-spacing-s);height:1.625rem;border:.0625rem solid transparent}.bmb_input-tags-dialog .bmb_dropdown-content-item .bmb_check-external-link-button-element:hover,.bmb_input-tags-dialog .bmb_dropdown-content-item .bmb_check-external-link-button-element:focus,.bmb_input-tags-dialog .bmb_dropdown-content-item .bmb_check-external-link-button-element:focus-visible{border-color:var(--menu_select-on-surface-hovered-border)}.bmb_input-tags-filter .bmb_field-input-normal{border:0;height:2.75rem}.bmb_input-tags-filter .bmb_field-input-normal:focus,.bmb_input-tags-filter .bmb_field-input-normal:focus-visible,.bmb_input-tags-filter .bmb_field-input-normal:hover{border:0;outline:0 none}.bmb_input-tags-selected-list{display:flex;flex-wrap:wrap;gap:.5rem;padding:var(--bmb-spacing-s);max-height:6.9375rem;overflow:auto}\n"] }]
190
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }] });
191
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm1iLWlucHV0LXRhZ3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZHMtbmcvc3JjL2xpYi9jb21wb25lbnRzL2JtYi1pbnB1dC10YWdzL2JtYi1pbnB1dC10YWdzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RzLW5nL3NyYy9saWIvY29tcG9uZW50cy9ibWItaW5wdXQtdGFncy9ibWItaW5wdXQtdGFncy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULEtBQUssRUFDTCxpQkFBaUIsRUFFakIsTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEdBR1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBZSxNQUFNLGdCQUFnQixDQUFDO0FBTS9FLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixhQUFhLEVBQ2IsaUJBQWlCLEVBQ2pCLHFCQUFxQixHQUN0QixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGdFQUFnRSxDQUFDO0FBQzVHLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBRTNHLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDREQUE0RCxDQUFDO0FBQ3RHLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM1QyxPQUFP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Q3pEZiw0bEVBb0VBLCtxUUR2QkksWUFBWSw0SEFDWixtQkFBbUIsMGtCQUNuQixxQkFBcUIsc0ZBQ3JCLGVBQWUsd01BQ2YsMEJBQTBCLHFiQUMxQix3QkFBd0IscWNBQ3hCLDJCQUEyQjs7NEZBUWxCLHFCQUFxQjtrQkFsQmpDLFNBQVM7K0JBQ0UsZ0JBQWdCLGNBQ2QsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osbUJBQW1CO3dCQUNuQixxQkFBcUI7d0JBQ3JCLGVBQWU7d0JBQ2YsMEJBQTBCO3dCQUMxQix3QkFBd0I7d0JBQ3hCLDJCQUEyQjtxQkFDNUIsaUJBR2MsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxhQUNwQyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQm1iVGFnQ29tcG9uZW50IH0gZnJvbSAnLi8uLi9ibWItdGFncy9ibWItdGFncy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQge1xyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBpbnB1dCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxuICBPbkluaXQsXHJcbiAgb3V0cHV0LFxyXG4gIG1vZGVsLFxyXG4gIHNpZ25hbCxcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG4gIE9uQ2hhbmdlcyxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIFZhbGlkYXRvckZuIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBJQm1iRHJvcGRvd25JdGVtIH0gZnJvbSAnLi4vYm1iLWRyb3Bkb3duL2JtYi1kcm9wZG93bi5jb21wb25lbnQnO1xyXG5pbXBvcnQge1xyXG4gIElCbWJJbnB1dEVycm9yLFxyXG4gIElCbWJJbnB1dFRvb2x0aXBQb3NpdGlvbixcclxufSBmcm9tICcuLi9ibWItaW5wdXQvYm1iLWlucHV0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENsaWNrT3V0c2lkZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvdXRpbHMvY2xpY2tvdXRzaWRlLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge1xyXG4gIGNvbnZlcnRMaXN0VG9TZWxlY3RMaXN0LFxyXG4gIGZpbHRlcmVkVmFsdWUsXHJcbiAgZ2V0U2VsZWN0ZWRWYWx1ZXMsXHJcbiAgZ2V0VmFsaWRJbml0aWFsVmFsdWVzLFxyXG59IGZyb20gJy4uLy4uL3V0aWxzL2Ryb3Bkb3duJztcclxuaW1wb3J0IHsgQm1iSW5wdXRWYWxpZGF0b3JDb21wb25lbnQgfSBmcm9tICcuLi9ibWItaW5wdXQvYm1iLWlucHV0LXZhbGlkYXRvci9ibWItaW5wdXQtdmFsaWRhdG9yLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJtYkRyb3Bkb3duQ29udGVudENvbXBvbmVudCB9IGZyb20gJy4uL3V0aWxzL2JtYi1kcm9wZG93bi1jb250ZW50L2JtYi1kcm9wZG93bi1jb250ZW50LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IElEcm9wZG93bkl0ZW0gfSBmcm9tICcuLi8uLi90eXBlcyc7XHJcbmltcG9ydCB7IEJtYklucHV0Q29udGVudENvbXBvbmVudCB9IGZyb20gJy4uL2JtYi1pbnB1dC9ibWItaW5wdXQtY29udGVudC9ibWItaW5wdXQtY29udGVudC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBnZXRVVUlEIH0gZnJvbSAnLi4vLi4vdXRpbHMvdXRpbHMnO1xyXG5pbXBvcnQge1xyXG4gIGFzc2lnbk5ld0Zvcm1Db250cm9sLFxyXG4gIGhhbmRsZVZhbGlkaXR5LFxyXG4gIG5ld0Zvcm1Db250cm9sQnlUeXBlLFxyXG4gIHNob3dFcnJvcixcclxufSBmcm9tICcuLi8uLi91dGlscy9mb3JtQ29udHJvbCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2JtYi1pbnB1dC10YWdzJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBDbGlja091dHNpZGVEaXJlY3RpdmUsXHJcbiAgICBCbWJUYWdDb21wb25lbnQsXHJcbiAgICBCbWJJbnB1dFZhbGlkYXRvckNvbXBvbmVudCxcclxuICAgIEJtYklucHV0Q29udGVudENvbXBvbmVudCxcclxuICAgIEJtYkRyb3Bkb3duQ29udGVudENvbXBvbmVudCxcclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9ibWItaW5wdXQtdGFncy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2JtYi1pbnB1dC10YWdzLmNvbXBvbmVudC5zY3NzJyxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIHByb3ZpZGVyczogW10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCbWJJbnB1dFRhZ3NDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XHJcbiAgZXJyb3JNZXNzYWdlID0gaW5wdXQ8c3RyaW5nIHwgSUJtYklucHV0RXJyb3I+KCcnKTtcclxuICB0b29sdGlwID0gaW5wdXQ8c3RyaW5nPignJyk7XHJcbiAgdG9vbHRpcFBvc2l0aW9uID0gaW5wdXQ8SUJtYklucHV0VG9vbHRpcFBvc2l0aW9uPih7XHJcbiAgICBhbGlnbjogJ2Fib3ZlJyxcclxuICAgIGp1c3RpZnk6ICdiZWZvcmUnLFxyXG4gIH0pO1xyXG4gIGxhYmVsID0gaW5wdXQ8c3RyaW5nPignJyk7XHJcbiAgcGxhY2Vob2xkZXIgPSBpbnB1dDxzdHJpbmc+KCcnKTtcclxuICBpc1JlcXVpcmVkID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gIGhlbHBlck1lc3NhZ2UgPSBpbnB1dDxzdHJpbmc+KCcnKTtcclxuICBkaXNhYmxlZCA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuICBtYXhTZWxlY3RlZEl0ZW1zID0gaW5wdXQ8bnVtYmVyPigpOyAvL0RlcHJlY2F0ZWRcclxuICBuYW1lID0gaW5wdXQ8c3RyaW5nPihnZXRVVUlEKCkpO1xyXG4gIHZhbHVlID0gaW5wdXQ8c3RyaW5nIHwgc3RyaW5nW10+KCcnKTtcclxuICBzaG93RXJyb3IgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcbiAgaW5wdXRJZCA9IGlucHV0PHN0cmluZz4odGhpcy5uYW1lKCkpO1xyXG4gIGN1c3RvbVZhbGlkYXRpb24gPSBpbnB1dDxWYWxpZGF0b3JGbj4oKTtcclxuXHJcbiAgdGFnT3B0aW9ucyA9IG1vZGVsPHN0cmluZ1tdIHwgSUJtYkRyb3Bkb3duSXRlbVtdPihbXSk7XHJcbiAgY29udHJvbCA9IG1vZGVsPEZvcm1Db250cm9sPihuZXdGb3JtQ29udHJvbEJ5VHlwZSgpKTtcclxuXHJcbiAgb25LZXlEb3duID0gb3V0cHV0PEtleWJvYXJkRXZlbnQ+KCk7XHJcbiAgb25DaGFuZ2UgPSBvdXRwdXQ8c3RyaW5nW10+KCk7XHJcblxyXG4gIHV1aWQ6IHN0cmluZyA9IGdldFVVSUQoKTtcclxuICBzaG93RHJvcGRvd246IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzZWxlY3RlZFRhZ3M6IElEcm9wZG93bkl0ZW1bXSA9IFtdO1xyXG4gIGZpbHRlcmVkT3B0aW9uczogSURyb3Bkb3duSXRlbVtdID0gW107XHJcbiAgZmlsdGVyQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgpO1xyXG4gIGl0ZW1zOiBJRHJvcGRvd25JdGVtW10gPSBbXTtcclxuICBpc0ZvY3VzZWQgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gIGlzS2V5Ym9hcmRFdmVudDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGlzQ29udHJvbE51bGw6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmRpc2FibGVkKCkpIHRoaXMuZmlsdGVyQ29udHJvbC5kaXNhYmxlKCk7XHJcbiAgICBlbHNlIHRoaXMuZmlsdGVyQ29udHJvbC5lbmFibGUoKTtcclxuXHJcbiAgICB0aGlzLmZpbHRlckNvbnRyb2wudmFsdWVDaGFuZ2VzXHJcbiAgICAgIC5waXBlKGRlYm91bmNlVGltZSgzMDApKVxyXG4gICAgICAuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xyXG4gICAgICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zID0gZmlsdGVyZWRWYWx1ZSh2YWx1ZSwgdGhpcy5pdGVtcyk7XHJcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICB0aGlzLmNvbnRyb2woKS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xyXG4gICAgICB0aGlzLnNldFNlbGVjdGVkVGFncyh2YWx1ZSB8fCBbXSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5jb250cm9sKCkpIHtcclxuICAgICAgdGhpcy5jb250cm9sLnNldChhc3NpZ25OZXdGb3JtQ29udHJvbCh0aGlzLm5hbWUoKSwgdGhpcy5jb250cm9sKCkpISk7XHJcbiAgICAgIHRoaXMuaXNDb250cm9sTnVsbCA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGNoYW5nZXNbJ3RhZ09wdGlvbnMnXSkge1xyXG4gICAgICB0aGlzLmluaXRPcHRpb25zKGNoYW5nZXNbJ3RhZ09wdGlvbnMnXS5jdXJyZW50VmFsdWUpO1xyXG4gICAgICB0aGlzLmNvbnRyb2woKT8uc2V0VmFsdWUodGhpcy5nZXRWYWxpZEluaXRpYWxWYWx1ZXMoKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpbml0T3B0aW9ucyhsaXN0OiBzdHJpbmdbXSB8IElCbWJEcm9wZG93bkl0ZW1bXSk6IHZvaWQge1xyXG4gICAgdGhpcy5pdGVtcyA9IGNvbnZlcnRMaXN0VG9TZWxlY3RMaXN0KGxpc3QpO1xyXG4gICAgdGhpcy5pdGVtcyA9IHRoaXMuaXRlbXMubWFwKChlbGVtZW50OiBJRHJvcGRvd25JdGVtKSA9PiB7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgLi4uZWxlbWVudCxcclxuICAgICAgICBhY3Rpb246ICgpID0+IHtcclxuICAgICAgICAgIHRoaXMuc2V0U2VsZWN0ZWRWYWx1ZShlbGVtZW50KTtcclxuICAgICAgICB9LFxyXG4gICAgICB9IGFzIElEcm9wZG93bkl0ZW07XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLnNldFNlbGVjdGVkVGFncyh0aGlzLmdldFZhbGlkSW5pdGlhbFZhbHVlcygpKTtcclxuXHJcbiAgICB0aGlzLmZpbHRlcmVkT3B0aW9ucyA9IFsuLi50aGlzLml0ZW1zXTtcclxuICB9XHJcblxyXG4gIGdldFVVSUQobmFtZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBgJHtuYW1lfV8ke3RoaXMubmFtZSgpfV8ke3RoaXMudXVpZH1gO1xyXG4gIH1cclxuXHJcbiAgZ2V0VmFsaWRJbml0aWFsVmFsdWVzKCk6IHN0cmluZ1tdIHtcclxuICAgIGNvbnN0IGluaXRpYWxWYWx1ZTogc3RyaW5nW10gfCBzdHJpbmcgPSBnZXRWYWxpZEluaXRpYWxWYWx1ZXMoXHJcbiAgICAgIHRoaXMuY29udHJvbCgpLnZhbHVlLFxyXG4gICAgICB0aGlzLnZhbHVlKCksXHJcbiAgICAgIHRoaXMudGFnT3B0aW9ucygpLFxyXG4gICAgICB0cnVlLFxyXG4gICAgKTtcclxuXHJcbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheShpbml0aWFsVmFsdWUpID8gaW5pdGlhbFZhbHVlIDogW107XHJcbiAgfVxyXG5cclxuICBzZXRTZWxlY3RlZFZhbHVlKGVsZW1lbnQ6IElEcm9wZG93bkl0ZW0pOiB2b2lkIHtcclxuICAgIHRoaXMuY29udHJvbCgpLnNldFZhbHVlKFxyXG4gICAgICBnZXRTZWxlY3RlZFZhbHVlcyh0aGlzLmNvbnRyb2woKS52YWx1ZSwgZWxlbWVudC52YWx1ZSEpLFxyXG4gICAgKTtcclxuICAgIHRoaXMuZmlsdGVyQ29udHJvbC5zZXRWYWx1ZSgnJyk7XHJcbiAgICB0aGlzLm9uQ2hhbmdlLmVtaXQodGhpcy5jb250cm9sKCkudmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgc2V0U2VsZWN0ZWRUYWdzKGNvbnRyb2xWYWx1ZTogc3RyaW5nW10pOiB2b2lkIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRUYWdzID0gdGhpcy5pdGVtcy5maWx0ZXIoKHsgdmFsdWUgfSkgPT5cclxuICAgICAgY29udHJvbFZhbHVlLmluY2x1ZGVzKHZhbHVlISksXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcmVtb3ZlVGFnKHRhZzogSURyb3Bkb3duSXRlbSkge1xyXG4gICAgdGhpcy5zZXRTZWxlY3RlZFZhbHVlKHRhZyk7XHJcbiAgfVxyXG5cclxuICBvcGVuTGlzdCgpIHtcclxuICAgIHRoaXMuc2hvd0Ryb3Bkb3duID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGNsb3NlTGlzdCgpIHtcclxuICAgIHRoaXMuc2hvd0Ryb3Bkb3duID0gZmFsc2U7XHJcbiAgICB0aGlzLmlzS2V5Ym9hcmRFdmVudCA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0T3B0aW9uV2l0aEtleSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBpZiAoISF2YWx1ZSkge1xyXG4gICAgICBjb25zdCBzZWxlY3RlZExlbmd0aDogbnVtYmVyID0gdGhpcy5maWx0ZXJlZE9wdGlvbnMubGVuZ3RoO1xyXG5cclxuICAgICAgaWYgKCEhc2VsZWN0ZWRMZW5ndGgpIHtcclxuICAgICAgICB0aGlzLnNldFNlbGVjdGVkVmFsdWUodGhpcy5maWx0ZXJlZE9wdGlvbnNbMF0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuYWRkT3B0aW9uKHZhbHVlKTtcclxuICAgICAgICB0aGlzLnNldFNlbGVjdGVkVmFsdWUoXHJcbiAgICAgICAgICB0aGlzLmZpbHRlcmVkT3B0aW9uc1t0aGlzLmZpbHRlcmVkT3B0aW9ucy5sZW5ndGggLSAxXSxcclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBhZGRPcHRpb24odmFsdWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgaWYgKHR5cGVvZiB0aGlzLnRhZ09wdGlvbnMoKVswXSA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgY29uc3QgbmV3VGFnT3B0aW9uczogc3RyaW5nW10gPSBbXHJcbiAgICAgICAgLi4uKHRoaXMudGFnT3B0aW9ucygpIGFzIHN0cmluZ1tdKSxcclxuICAgICAgICB2YWx1ZSxcclxuICAgICAgXTtcclxuICAgICAgdGhpcy50YWdPcHRpb25zLnNldChbLi4ubmV3IFNldChuZXdUYWdPcHRpb25zKV0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgbmV3T3B0aW9uOiBJQm1iRHJvcGRvd25JdGVtID0ge1xyXG4gICAgICAgIG5hbWU6IHZhbHVlLFxyXG4gICAgICAgIHZhbHVlLFxyXG4gICAgICAgIHNlbGVjdGVkVGV4dDogdmFsdWUsXHJcbiAgICAgICAgaWQ6IGdldFVVSUQoKSxcclxuICAgICAgfTtcclxuICAgICAgY29uc3QgbmV3TGlzdDogSUJtYkRyb3Bkb3duSXRlbVtdID0gW1xyXG4gICAgICAgIC4uLih0aGlzLnRhZ09wdGlvbnMoKSBhcyBJQm1iRHJvcGRvd25JdGVtW10pLFxyXG4gICAgICAgIG5ld09wdGlvbixcclxuICAgICAgXTtcclxuICAgICAgdGhpcy50YWdPcHRpb25zLnNldChbLi4ubmV3IFNldChuZXdMaXN0KV0pO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuaW5pdE9wdGlvbnModGhpcy50YWdPcHRpb25zKCkpO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCkge1xyXG4gICAgY29uc3Qga2V5Ym9hcmRWYWx1ZXNUb09wZW5EaWFsb2cgPSBbJyAnLCAnQXJyb3dEb3duJywgJ0Rvd24nXTtcclxuICAgIGNvbnN0IGtleWJvYXJkVmFsdWVzVG9BZGRPcHRpb24gPSBbJywnLCAnRW50ZXInXTtcclxuXHJcbiAgICBpZiAoa2V5Ym9hcmRWYWx1ZXNUb09wZW5EaWFsb2cuaW5jbHVkZXMoZXZlbnQua2V5KSkge1xyXG4gICAgICBpZiAoIXRoaXMuc2hvd0Ryb3Bkb3duKSB7XHJcbiAgICAgICAgdGhpcy5pc0tleWJvYXJkRXZlbnQgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMub3Blbkxpc3QoKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKCF0aGlzLmZpbHRlcmVkT3B0aW9ucy5sZW5ndGgpIHtcclxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGtleWJvYXJkVmFsdWVzVG9BZGRPcHRpb24uaW5jbHVkZXMoZXZlbnQua2V5KSkge1xyXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICB0aGlzLnNlbGVjdE9wdGlvbldpdGhLZXkodGhpcy5maWx0ZXJDb250cm9sLnZhbHVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGhhbmRsZUZvY3VzKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLmlzRm9jdXNlZC5zZXQodmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlVmFsaWRpdHkoKTogdm9pZCB7XHJcbiAgICBoYW5kbGVWYWxpZGl0eSh0aGlzLmNvbnRyb2woKSk7XHJcbiAgfVxyXG5cclxuICBnZXQgc2hvdWxkU2hvd0Vycm9yKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHNob3dFcnJvcih0aGlzLmNvbnRyb2woKSk7XHJcbiAgfVxyXG59XHJcbiIsIjxibWItaW5wdXQtdmFsaWRhdG9yXHJcbiAgY2xhc3M9XCJibWJfaW5wdXQtdGFnc1wiXHJcbiAgW25hbWVdPVwibmFtZSgpXCJcclxuICBbdmFsdWVdPVwiZ2V0VmFsaWRJbml0aWFsVmFsdWVzKClcIlxyXG4gIFtsYWJlbF09XCJsYWJlbCgpIVwiXHJcbiAgW2Vycm9yTWVzc2FnZV09XCJlcnJvck1lc3NhZ2UoKVwiXHJcbiAgW2hlbHBlck1lc3NhZ2VdPVwiaGVscGVyTWVzc2FnZSgpXCJcclxuICBbaXNSZXF1aXJlZF09XCJpc1JlcXVpcmVkKClcIlxyXG4gIFtpc0Rpc2FibGVkXT1cImRpc2FibGVkKClcIlxyXG4gIFtjb250cm9sXT1cImNvbnRyb2woKVwiXHJcbiAgW3Nob3dFcnJvcl09XCJzaG91bGRTaG93RXJyb3JcIlxyXG4gIFt0b29sdGlwXT1cInRvb2x0aXAoKVwiXHJcbiAgW3Rvb2x0aXBQb3NpdGlvbl09XCJ0b29sdGlwUG9zaXRpb24oKVwiXHJcbiAgW2N1c3RvbVZhbGlkYXRpb25dPVwiY3VzdG9tVmFsaWRhdGlvbigpXCJcclxuICBjbGlja091dHNpZGVcclxuICAoY2xpY2tPdXRzaWRlKT1cImNsb3NlTGlzdCgpXCJcclxuICBbaW5wdXRJZF09XCJpbnB1dElkKClcIlxyXG4+XHJcbiAgPHNlY3Rpb25cclxuICAgIGNsYXNzPVwiYm1iX2lucHV0LXRhZ3MtY29udGFpbmVyXCJcclxuICAgIFtuZ0NsYXNzXT1cIntcclxuICAgICAgJ2JtYl9pbnB1dC10YWdzLWNvbnRhaW5lci1lcnJvcic6IHNob3VsZFNob3dFcnJvcixcclxuICAgICAgJ2JtYl9pbnB1dC10YWdzLWNvbnRhaW5lci1mb2N1cyc6IGlzRm9jdXNlZCgpLFxyXG4gICAgfVwiXHJcbiAgPlxyXG4gICAgPGJtYi1pbnB1dC1jb250ZW50XHJcbiAgICAgIGNsYXNzPVwiYm1iX2lucHV0LXRhZ3MtZmlsdGVyXCJcclxuICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICBbaW5wdXRJZF09XCJpbnB1dElkKClcIlxyXG4gICAgICBbbmFtZV09XCJnZXRVVUlEKCdmaWx0ZXInKVwiXHJcbiAgICAgIFtjb250cm9sXT1cImZpbHRlckNvbnRyb2xcIlxyXG4gICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXIoKVwiXHJcbiAgICAgIFtpc0Rpc2FibGVkXT1cImRpc2FibGVkKClcIlxyXG4gICAgICAoY2xpY2spPVwib3Blbkxpc3QoKVwiXHJcbiAgICAgIChvbkJsdXIpPVwiaGFuZGxlVmFsaWRpdHkoKVwiXHJcbiAgICAgIChrZXlkb3duKT1cImhhbmRsZUtleURvd24oJGV2ZW50KVwiXHJcbiAgICAgIChvbkZvY3VzKT1cImhhbmRsZUZvY3VzKCRldmVudClcIlxyXG4gICAgLz5cclxuICAgIEBpZiAoISFzZWxlY3RlZFRhZ3MgJiYgISFzZWxlY3RlZFRhZ3MubGVuZ3RoKSB7XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJibWJfaW5wdXQtdGFncy1zZWxlY3RlZC1saXN0XCIgW3RhYkluZGV4XT1cIi0xXCI+XHJcbiAgICAgICAgQGZvciAoaXRlbSBvZiBzZWxlY3RlZFRhZ3M7IHRyYWNrICRpbmRleCkge1xyXG4gICAgICAgICAgPGJtYi10YWdcclxuICAgICAgICAgICAgW3RleHRdPVwiaXRlbS5zZWxlY3RlZFRleHQhXCJcclxuICAgICAgICAgICAgW2Rpc21pc3NpYmxlXT1cInRydWVcIlxyXG4gICAgICAgICAgICBbaXNEaXNhYmxlZF09XCJkaXNhYmxlZCgpXCJcclxuICAgICAgICAgICAgKGNsaWNrZWRUYWcpPVwicmVtb3ZlVGFnKGl0ZW0pXCJcclxuICAgICAgICAgICAgKGNsb3NlZFRhZyk9XCJyZW1vdmVUYWcoaXRlbSlcIlxyXG4gICAgICAgICAgLz5cclxuICAgICAgICB9XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgfVxyXG4gIDwvc2VjdGlvbj5cclxuICA8aW5wdXRcclxuICAgIGhpZGRlblxyXG4gICAgdHlwZT1cInRleHRcIlxyXG4gICAgW2lkXT1cIm5hbWUoKVwiXHJcbiAgICBbbmFtZV09XCJuYW1lKClcIlxyXG4gICAgW2Zvcm1Db250cm9sXT1cImNvbnRyb2woKVwiXHJcbiAgLz5cclxuICA8Ym1iLWRyb3Bkb3duLWNvbnRlbnRcclxuICAgIGNsYXNzPVwiYm1iX2lucHV0LXRhZ3MtZGlhbG9nXCJcclxuICAgIG5hbWU9XCJsaXN0XCJcclxuICAgIFtzZWxlY3RlZE9wdGlvbl09XCJjb250cm9sKCkudmFsdWVcIlxyXG4gICAgW2lzS2V5Ym9hcmRFdmVudF09XCJpc0tleWJvYXJkRXZlbnRcIlxyXG4gICAgWyhpdGVtcyldPVwiZmlsdGVyZWRPcHRpb25zXCJcclxuICAgIFsoaXNPcGVuKV09XCJzaG93RHJvcGRvd25cIlxyXG4gIC8+XHJcbjwvYm1iLWlucHV0LXZhbGlkYXRvcj5cclxuIl19