@ti-tecnologico-de-monterrey-oficial/ds-ng 1.5.1218 → 1.5.1219

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 (214) hide show
  1. package/assets/styles/main.min.css +1 -1
  2. package/fesm2022/ti-tecnologico-de-monterrey-oficial-ds-ng.mjs +550 -550
  3. package/fesm2022/ti-tecnologico-de-monterrey-oficial-ds-ng.mjs.map +1 -1
  4. package/lib/ds-ng.component.d.ts +1 -1
  5. package/package.json +1 -3
  6. package/esm2022/lib/components/bmb-academic-progress/bmb-academic-progress.component.mjs +0 -87
  7. package/esm2022/lib/components/bmb-accordion/bmb-accordion.component.mjs +0 -159
  8. package/esm2022/lib/components/bmb-account-statement/bmb-account-statement.component.mjs +0 -172
  9. package/esm2022/lib/components/bmb-action-icon/bmb-action-icon.component.mjs +0 -49
  10. package/esm2022/lib/components/bmb-action-menu/bmb-action-menu.component.mjs +0 -31
  11. package/esm2022/lib/components/bmb-advertisement-card/bmb-advertisement-card.component.mjs +0 -35
  12. package/esm2022/lib/components/bmb-advertisement-card/types.mjs +0 -2
  13. package/esm2022/lib/components/bmb-alert-center/bmb-alert-center-ads/bmb-alert-center-ads.component.mjs +0 -40
  14. package/esm2022/lib/components/bmb-alert-center/bmb-alert-center-empty/bmb-alert-center-empty.component.mjs +0 -18
  15. package/esm2022/lib/components/bmb-alert-center/bmb-alert-center-form/bmb-alert-center-form.component.mjs +0 -148
  16. package/esm2022/lib/components/bmb-alert-center/bmb-alert-center-list/bmb-alert-center-list.component.mjs +0 -52
  17. package/esm2022/lib/components/bmb-alert-center/bmb-alert-center.component.mjs +0 -203
  18. package/esm2022/lib/components/bmb-alert-center/bmb-alert-center.service.mjs +0 -62
  19. package/esm2022/lib/components/bmb-alert-center/types.mjs +0 -2
  20. package/esm2022/lib/components/bmb-badge/bmb-badge.component.mjs +0 -26
  21. package/esm2022/lib/components/bmb-balance-overview/bmb-balance-overview.component.mjs +0 -26
  22. package/esm2022/lib/components/bmb-bookmark/bmb-bookmark.component.mjs +0 -27
  23. package/esm2022/lib/components/bmb-bottom-navigation-bar/bmb-bottom-navigation-bar.component.mjs +0 -42
  24. package/esm2022/lib/components/bmb-breadcrumb/bmb-breadcrumb.component.mjs +0 -55
  25. package/esm2022/lib/components/bmb-button-icon/bmb-button-icon.component.mjs +0 -30
  26. package/esm2022/lib/components/bmb-calendar/bmb-calendar.component.mjs +0 -285
  27. package/esm2022/lib/components/bmb-calendar/common/bmb-calendar-header/bmb-calendar-header.component.mjs +0 -95
  28. package/esm2022/lib/components/bmb-calendar/common/bmb-calendar-hour-view/bmb-calendar-hour-view.component.mjs +0 -40
  29. package/esm2022/lib/components/bmb-calendar/common/bmb-calendar-schedule-cards/bmb-calendar-schedule-cards.component.mjs +0 -68
  30. package/esm2022/lib/components/bmb-calendar/common/bmb-calendar-template-day/bmb-calendar-template-day.component.mjs +0 -41
  31. package/esm2022/lib/components/bmb-calendar/common/bmb-calendar-template-mobile/bmb-calendar-template-mobile.component.mjs +0 -95
  32. package/esm2022/lib/components/bmb-calendar/common/bmb-calendar-template-month/bmb-calendar-template-month.component.mjs +0 -45
  33. package/esm2022/lib/components/bmb-calendar/common/bmb-calendar-template-week/bmb-calendar-template-week.component.mjs +0 -54
  34. package/esm2022/lib/components/bmb-calendar/common/bmb-calendar-time-indicator/bmb-calendar-time-indicator.component.mjs +0 -24
  35. package/esm2022/lib/components/bmb-calendar/types.mjs +0 -2
  36. package/esm2022/lib/components/bmb-calendar/utils.mjs +0 -96
  37. package/esm2022/lib/components/bmb-card/bmb-card.component.mjs +0 -159
  38. package/esm2022/lib/components/bmb-card-button/bmb-card-button.component.mjs +0 -76
  39. package/esm2022/lib/components/bmb-carousel/bmb-carousel.component.mjs +0 -80
  40. package/esm2022/lib/components/bmb-chat-bar/bmb-chat-bar.component.mjs +0 -199
  41. package/esm2022/lib/components/bmb-chat-bar/bot_list.mjs +0 -57
  42. package/esm2022/lib/components/bmb-chat-bar/types.mjs +0 -2
  43. package/esm2022/lib/components/bmb-chat-bubbles/bmb-chat-bubbles.component.mjs +0 -56
  44. package/esm2022/lib/components/bmb-chat-bubbles/types.mjs +0 -2
  45. package/esm2022/lib/components/bmb-check-external-link-button/bmb-check-external-link-button.component.mjs +0 -46
  46. package/esm2022/lib/components/bmb-checkbox/bmb-checkbox.component.mjs +0 -80
  47. package/esm2022/lib/components/bmb-chevron-title-selector/bmb-chevron-title-selector.component.mjs +0 -36
  48. package/esm2022/lib/components/bmb-container/bmb-container.component.mjs +0 -27
  49. package/esm2022/lib/components/bmb-container-button/bmb-container-button.component.mjs +0 -96
  50. package/esm2022/lib/components/bmb-date-range/bmb-date-range.component.mjs +0 -69
  51. package/esm2022/lib/components/bmb-datepicker/bmb-datepicker-modal/bmb-datepicker-modal.component.mjs +0 -206
  52. package/esm2022/lib/components/bmb-datepicker/bmb-datepicker.component.mjs +0 -144
  53. package/esm2022/lib/components/bmb-digital-id/bmb-digital-id.component.mjs +0 -54
  54. package/esm2022/lib/components/bmb-divider/bmb-divider.component.mjs +0 -25
  55. package/esm2022/lib/components/bmb-dot-paginator/bmb-dot-paginator.component.mjs +0 -34
  56. package/esm2022/lib/components/bmb-drawer-overlay/bmb-drawer-overlay.component.mjs +0 -65
  57. package/esm2022/lib/components/bmb-dropdown/bmb-dropdown.component.mjs +0 -177
  58. package/esm2022/lib/components/bmb-dropdown-menu/bmb-dropdown-menu.component.mjs +0 -31
  59. package/esm2022/lib/components/bmb-dropzone/bmb-dropzone.component.mjs +0 -175
  60. package/esm2022/lib/components/bmb-evaluation-rubric/bmb-evaluation-rubric.component.mjs +0 -76
  61. package/esm2022/lib/components/bmb-external-link/bmb-external-link.component.mjs +0 -80
  62. package/esm2022/lib/components/bmb-fab/bmb-fab-.interface.mjs +0 -9
  63. package/esm2022/lib/components/bmb-fab/bmb-fab.component.mjs +0 -37
  64. package/esm2022/lib/components/bmb-filter-card/bmb-filter-card.component.mjs +0 -166
  65. package/esm2022/lib/components/bmb-filter-card/bmb-filter-card.interface.mjs +0 -2
  66. package/esm2022/lib/components/bmb-focus-element/bmb-focus-element.component.mjs +0 -36
  67. package/esm2022/lib/components/bmb-form-validator/bmb-form-validator.component.mjs +0 -159
  68. package/esm2022/lib/components/bmb-frequent-apps-selector/bmb-frequent-apps-selector.component.mjs +0 -29
  69. package/esm2022/lib/components/bmb-grade-value/bmb-grade-value.component.mjs +0 -22
  70. package/esm2022/lib/components/bmb-grades/bmb-grades.component.mjs +0 -178
  71. package/esm2022/lib/components/bmb-grades/types.mjs +0 -2
  72. package/esm2022/lib/components/bmb-header-mitec/bmb-header-mitec.component.mjs +0 -55
  73. package/esm2022/lib/components/bmb-header-mobile/bmb-header-mobile.component.mjs +0 -49
  74. package/esm2022/lib/components/bmb-hito-card/bmb-hito-card.component.mjs +0 -86
  75. package/esm2022/lib/components/bmb-hito-list/bmb-hito-list.component.mjs +0 -59
  76. package/esm2022/lib/components/bmb-home-card/bmb-home-card-header/bmb-home-card-header.component.mjs +0 -76
  77. package/esm2022/lib/components/bmb-home-card/bmb-home-card.component.mjs +0 -41
  78. package/esm2022/lib/components/bmb-home-card-chat/bmb-home-card-chat.component.mjs +0 -39
  79. package/esm2022/lib/components/bmb-home-section/bmb-home-section.component.mjs +0 -20
  80. package/esm2022/lib/components/bmb-icon/bmb-icon.component.mjs +0 -50
  81. package/esm2022/lib/components/bmb-icon/types.mjs +0 -2
  82. package/esm2022/lib/components/bmb-icon-item/bmb-icon-item.component.mjs +0 -23
  83. package/esm2022/lib/components/bmb-icon-status/bmb-icon-status.component.mjs +0 -24
  84. package/esm2022/lib/components/bmb-iframe/bmb-iframe.component.mjs +0 -19
  85. package/esm2022/lib/components/bmb-iframe/bmb-iframe.pipe.mjs +0 -21
  86. package/esm2022/lib/components/bmb-image/bmb-image.component.mjs +0 -33
  87. package/esm2022/lib/components/bmb-inner-header/bmb-inner-header.component.mjs +0 -77
  88. package/esm2022/lib/components/bmb-input/bmb-input-content/bmb-input-content.component.mjs +0 -146
  89. package/esm2022/lib/components/bmb-input/bmb-input-validator/bmb-input-validator.component.mjs +0 -178
  90. package/esm2022/lib/components/bmb-input/bmb-input.component.mjs +0 -85
  91. package/esm2022/lib/components/bmb-input-phone-number/bmb-input-phone-number.component.mjs +0 -219
  92. package/esm2022/lib/components/bmb-input-tags/bmb-input-tags.component.mjs +0 -191
  93. package/esm2022/lib/components/bmb-interactive-icon/bmb-interactive-icon.component.mjs +0 -54
  94. package/esm2022/lib/components/bmb-invoice/bmb-invoice.component.mjs +0 -34
  95. package/esm2022/lib/components/bmb-item/bmb-item.component.mjs +0 -28
  96. package/esm2022/lib/components/bmb-legend/bmb-legend.component.mjs +0 -23
  97. package/esm2022/lib/components/bmb-list-group/bmb-list-group-item/bmb-list-group-item.component.mjs +0 -83
  98. package/esm2022/lib/components/bmb-list-group/bmb-list-group.component.mjs +0 -60
  99. package/esm2022/lib/components/bmb-list-group/bmb-list-group.service.mjs +0 -55
  100. package/esm2022/lib/components/bmb-list-group/types.mjs +0 -2
  101. package/esm2022/lib/components/bmb-list-items/bmb-list-items.component.mjs +0 -83
  102. package/esm2022/lib/components/bmb-loader/bmb-loader.component.mjs +0 -77
  103. package/esm2022/lib/components/bmb-login/bmb-login-content/bmb-login-content.component.mjs +0 -55
  104. package/esm2022/lib/components/bmb-login/bmb-login.component.mjs +0 -66
  105. package/esm2022/lib/components/bmb-login-onboarding/bmb-login-onboarding-logged/bmb-login-onboarding-logged.component.mjs +0 -40
  106. package/esm2022/lib/components/bmb-login-onboarding/bmb-login-onboarding-login/bmb-login-onboarding-login.component.mjs +0 -20
  107. package/esm2022/lib/components/bmb-login-onboarding/bmb-login-onboarding-logout/bmb-login-onboarding-logout.component.mjs +0 -33
  108. package/esm2022/lib/components/bmb-login-onboarding/bmb-login-onboarding-stepper/bmb-login-onboarding-stepper-steps/bmb-login-onboarding-stepper-step-four.component.mjs +0 -91
  109. package/esm2022/lib/components/bmb-login-onboarding/bmb-login-onboarding-stepper/bmb-login-onboarding-stepper-steps/bmb-login-onboarding-stepper-step-one.component.mjs +0 -88
  110. package/esm2022/lib/components/bmb-login-onboarding/bmb-login-onboarding-stepper/bmb-login-onboarding-stepper-steps/bmb-login-onboarding-stepper-step-three.component.mjs +0 -57
  111. package/esm2022/lib/components/bmb-login-onboarding/bmb-login-onboarding-stepper/bmb-login-onboarding-stepper-steps/bmb-login-onboarding-stepper-step-two.component.mjs +0 -99
  112. package/esm2022/lib/components/bmb-login-onboarding/bmb-login-onboarding-stepper/bmb-login-onboarding-stepper-steps/bmb-login-onboarding-stepper-step.component.mjs +0 -39
  113. package/esm2022/lib/components/bmb-login-onboarding/bmb-login-onboarding-stepper/bmb-login-onboarding-stepper.component.mjs +0 -44
  114. package/esm2022/lib/components/bmb-login-onboarding/bmb-login-onboarding.component.mjs +0 -52
  115. package/esm2022/lib/components/bmb-login-onboarding/bmb-login-onboarding.service.mjs +0 -70
  116. package/esm2022/lib/components/bmb-login-onboarding/types.mjs +0 -2
  117. package/esm2022/lib/components/bmb-logo/bmb-logo.component.mjs +0 -43
  118. package/esm2022/lib/components/bmb-media-card/bmb-media-card.component.mjs +0 -64
  119. package/esm2022/lib/components/bmb-mitec-logo-animation/bmb-mitec-logo-animation.component.mjs +0 -14
  120. package/esm2022/lib/components/bmb-mobile-templates/bmb-mobile-templates.component.mjs +0 -88
  121. package/esm2022/lib/components/bmb-modal/bmb-modal.component.mjs +0 -139
  122. package/esm2022/lib/components/bmb-modal/bmb-modal.interface.mjs +0 -2
  123. package/esm2022/lib/components/bmb-modal/bmb-native-modal.component.mjs +0 -121
  124. package/esm2022/lib/components/bmb-multi-dot-paginator/bmb-multi-dot-paginator-item/bmb-multi-dot-paginator-item.component.mjs +0 -15
  125. package/esm2022/lib/components/bmb-multi-dot-paginator/bmb-multi-dot-paginator.component.mjs +0 -59
  126. package/esm2022/lib/components/bmb-navigation-bar/bmb-navigation-bar.component.mjs +0 -30
  127. package/esm2022/lib/components/bmb-notice-card/bmb-notice-card.component.mjs +0 -43
  128. package/esm2022/lib/components/bmb-notification-card/bmb-notification-card.component.mjs +0 -86
  129. package/esm2022/lib/components/bmb-notification-counter/bmb-notification-counter.component.mjs +0 -23
  130. package/esm2022/lib/components/bmb-overlay/bmb-overlay.component.mjs +0 -22
  131. package/esm2022/lib/components/bmb-paginator/bmb-paginator.component.mjs +0 -52
  132. package/esm2022/lib/components/bmb-portal/bmb-portal.component.mjs +0 -58
  133. package/esm2022/lib/components/bmb-portal/bmb-projected-content/bmb-projected-content.component.mjs +0 -120
  134. package/esm2022/lib/components/bmb-profile/bmb-profile.component.mjs +0 -153
  135. package/esm2022/lib/components/bmb-progress-bar/bmb-progress-bar.component.mjs +0 -39
  136. package/esm2022/lib/components/bmb-progress-cirlce/bmb-progress-circle.component.mjs +0 -196
  137. package/esm2022/lib/components/bmb-progress-cirlce/bmb-progress-circle.interface.mjs +0 -2
  138. package/esm2022/lib/components/bmb-pull-wedge/bmb-pull-wedge.component.mjs +0 -88
  139. package/esm2022/lib/components/bmb-push-notification/bmb-push-notification-item/bmb-push-notification-item.component.mjs +0 -75
  140. package/esm2022/lib/components/bmb-push-notification/bmb-push-notification.component.mjs +0 -24
  141. package/esm2022/lib/components/bmb-push-notification/types.mjs +0 -2
  142. package/esm2022/lib/components/bmb-radial/bmb-radial.component.mjs +0 -78
  143. package/esm2022/lib/components/bmb-search-input/bmb-search-input.component.mjs +0 -122
  144. package/esm2022/lib/components/bmb-server-table/bmb-server-table.component.mjs +0 -82
  145. package/esm2022/lib/components/bmb-sidebar/bmb-sidebar.component.mjs +0 -97
  146. package/esm2022/lib/components/bmb-sidebar/bmb-sidebar.interface.mjs +0 -2
  147. package/esm2022/lib/components/bmb-simple-header/bmb-simple-header.component.mjs +0 -64
  148. package/esm2022/lib/components/bmb-skeleton/bmb-skeleton.component.mjs +0 -16
  149. package/esm2022/lib/components/bmb-sounds-card/bmb-sounds-card.component.mjs +0 -64
  150. package/esm2022/lib/components/bmb-stat-counter/bmb-stat-counter.component.mjs +0 -32
  151. package/esm2022/lib/components/bmb-step-progress-bar/bmb-step-progress-bar.component.mjs +0 -55
  152. package/esm2022/lib/components/bmb-student-activity-card/bmb-student-activity-card.component.mjs +0 -53
  153. package/esm2022/lib/components/bmb-student-activity-selector/bmb-student-activity-tab/bmb-student-activity-tab.component.mjs +0 -27
  154. package/esm2022/lib/components/bmb-switch/bmb-switch.component.mjs +0 -88
  155. package/esm2022/lib/components/bmb-tables/bmb-tables.component.mjs +0 -541
  156. package/esm2022/lib/components/bmb-tables/bmb-tables.interface.mjs +0 -2
  157. package/esm2022/lib/components/bmb-tabs/bmb-tabs.component.mjs +0 -132
  158. package/esm2022/lib/components/bmb-tags/bmb-tags.component.mjs +0 -65
  159. package/esm2022/lib/components/bmb-text-editor/bmb-text-editor.component.mjs +0 -135
  160. package/esm2022/lib/components/bmb-text-link/bmb-text-link.component.mjs +0 -43
  161. package/esm2022/lib/components/bmb-theme/bmb-theme.component.mjs +0 -65
  162. package/esm2022/lib/components/bmb-three-cols/bmb-three-cols.component.mjs +0 -30
  163. package/esm2022/lib/components/bmb-timestream/bmb-timestream-detail/bmb-timestream-detail.component.mjs +0 -74
  164. package/esm2022/lib/components/bmb-timestream/bmb-timestream-error/bmb-timestream-error.component.mjs +0 -13
  165. package/esm2022/lib/components/bmb-timestream/bmb-timestream.component.mjs +0 -236
  166. package/esm2022/lib/components/bmb-timestream/types.mjs +0 -2
  167. package/esm2022/lib/components/bmb-timestream-card/bmb-timestream-card.component.mjs +0 -139
  168. package/esm2022/lib/components/bmb-title-content/bmb-title-content.component.mjs +0 -61
  169. package/esm2022/lib/components/bmb-toast/bmb-toast.component.mjs +0 -47
  170. package/esm2022/lib/components/bmb-tooltip/bmb-tooltip.component.mjs +0 -26
  171. package/esm2022/lib/components/bmb-top-bar/bmb-top-bar-item/bmb-top-bar-item.component.mjs +0 -31
  172. package/esm2022/lib/components/bmb-top-bar/bmb-top-bar-user-section/bmb-top-bar-user-section.component.mjs +0 -94
  173. package/esm2022/lib/components/bmb-top-bar/bmb-top-bar.component.mjs +0 -86
  174. package/esm2022/lib/components/bmb-top-bar/types.mjs +0 -2
  175. package/esm2022/lib/components/bmb-totp/bmb-totp.component.mjs +0 -139
  176. package/esm2022/lib/components/bmb-user-image/bmb-user-image.component.mjs +0 -44
  177. package/esm2022/lib/components/bmb-user-profile/bmb-user-profile-content/bmb-user-profile-content.component.mjs +0 -19
  178. package/esm2022/lib/components/bmb-user-profile/bmb-user-profile.component.mjs +0 -71
  179. package/esm2022/lib/components/bmb-user-summary/bmb-user-summary-content/bmb-user-summary-content.component.mjs +0 -61
  180. package/esm2022/lib/components/bmb-user-summary/bmb-user-summary.component.mjs +0 -28
  181. package/esm2022/lib/components/bmb-value-counter/bmb-value-counter.component.mjs +0 -23
  182. package/esm2022/lib/components/bmb-web-templates/bmb-web-templates.component.mjs +0 -85
  183. package/esm2022/lib/components/bmb-wheel-menu/bmb-wheel-menu.component.mjs +0 -128
  184. package/esm2022/lib/components/utils/bmb-dropdown-content/bmb-dropdown-content.component.mjs +0 -51
  185. package/esm2022/lib/directives/bmb-accordion/bmb-accordion-control.directive.mjs +0 -88
  186. package/esm2022/lib/directives/bmb-button/button.directive.mjs +0 -84
  187. package/esm2022/lib/directives/bmb-button-group/bmb-button-group.directive.mjs +0 -29
  188. package/esm2022/lib/directives/bmb-layout/bmb-layout-item.directive.mjs +0 -51
  189. package/esm2022/lib/directives/bmb-layout/bmb-layout.directive.mjs +0 -36
  190. package/esm2022/lib/directives/bmb-layout/bmb-vertical-layout/bmb-vertical-layout-item.directive.mjs +0 -34
  191. package/esm2022/lib/directives/bmb-layout/bmb-vertical-layout/bmb-vertical-layout.directive.mjs +0 -37
  192. package/esm2022/lib/directives/bmb-layout-grid/bmb-layout-grid.directive.mjs +0 -89
  193. package/esm2022/lib/directives/utils/clickoutside.directive.mjs +0 -41
  194. package/esm2022/lib/ds-ng.component.mjs +0 -11
  195. package/esm2022/lib/ds-ng.service.mjs +0 -14
  196. package/esm2022/lib/services/calendar.service.mjs +0 -51
  197. package/esm2022/lib/services/index.mjs +0 -3
  198. package/esm2022/lib/services/native-modal.service.mjs +0 -60
  199. package/esm2022/lib/services/notification.service.mjs +0 -84
  200. package/esm2022/lib/services/projection.service.mjs +0 -49
  201. package/esm2022/lib/services/tabs.service.mjs +0 -30
  202. package/esm2022/lib/services/theme.service.mjs +0 -30
  203. package/esm2022/lib/services/toast.service.mjs +0 -24
  204. package/esm2022/lib/services/user/profile.service.mjs +0 -26
  205. package/esm2022/lib/types/colors.mjs +0 -2
  206. package/esm2022/lib/types/index.mjs +0 -11
  207. package/esm2022/lib/utils/countryCodes.mjs +0 -1089
  208. package/esm2022/lib/utils/currencyFormat.mjs +0 -7
  209. package/esm2022/lib/utils/dropdown.mjs +0 -85
  210. package/esm2022/lib/utils/formControl.mjs +0 -25
  211. package/esm2022/lib/utils/timestreamFilters.mjs +0 -32
  212. package/esm2022/lib/utils/utils.mjs +0 -71
  213. package/esm2022/public-api.mjs +0 -152
  214. package/esm2022/ti-tecnologico-de-monterrey-oficial-ds-ng.mjs +0 -5
@@ -1,219 +0,0 @@
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: "18.2.14", ngImport: i0, type: BmbInputPhoneNumberComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
206
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", 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\n [name]=\"name()\"\n [label]=\"label()\"\n [value]=\"!!defaultCountryCode() ? value() : ''\"\n [errorMessage]=\"getErrorMessage()\"\n [helperMessage]=\"helperMessage()\"\n [isRequired]=\"isRequired()\"\n [isDisabled]=\"disabled()\"\n [control]=\"control()\"\n [showError]=\"shouldShowError\"\n [tooltip]=\"tooltip()\"\n [tooltipPosition]=\"tooltipPosition()\"\n [customValidation]=\"handleCustomValidator()\"\n [inputId]=\"inputId()\"\n>\n <section class=\"bmb_input-phone\">\n <section\n class=\"bmb_input-phone-container\"\n [ngClass]=\"{\n 'bmb_input-phone-container-error': shouldShowError,\n 'bmb_input-phone-container-focus': isFocused()\n }\"\n >\n <bmb-dropdown\n class=\"bmb_input-phone-lada\"\n [name]=\"getUUID('lada')\"\n [value]=\"ladaControl.value\"\n [required]=\"true\"\n [disabled]=\"disabled()\"\n [showIcon]=\"false\"\n [options]=\"countryFiltering\"\n [preferredOptions]=\"preferredCountries()\"\n [control]=\"ladaControl\"\n (onValueChange)=\"onValueChange($event)\"\n (onFocus)=\"handleFocus($event)\"\n />\n <bmb-input-content\n class=\"bmb_input-phone-number\"\n [name]=\"getUUID('phone')\"\n pattern=\"^\\d+$\"\n [control]=\"phoneControl\"\n [inputId]=\"inputId()\"\n [placeholder]=\"placeholder()\"\n [maxLength]=\"getSelectedCountryLength(ladaControl.value)\"\n [minLength]=\"getSelectedCountryLength(ladaControl.value)\"\n [isRequired]=\"isRequired()\"\n (onFocus)=\"handleFocus($event)\"\n (onBlur)=\"handleValidity()\"\n />\n </section>\n <input\n hidden\n type=\"text\"\n [name]=\"name()\"\n [required]=\"isRequired()\"\n [formControl]=\"control()\"\n [tabindex]=\"-1\"\n />\n </section>\n</bmb-input-validator>\n", styles: ["@font-face{font-family:Poppins-Light;font-style:normal;font-weight:300;src:url(/assets/fonts/Poppins/Poppins-ExtraLight.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Regular;font-style:normal;font-weight:400;src:url(/assets/fonts/Poppins/Poppins-Regular.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Bold;font-style:normal;font-weight:700;src:url(/assets/fonts/Poppins/Poppins-Bold.ttf) format(\"truetype\")}:root,:host{--font-display: \"Poppins-Regular\", sans-serif}.font-thin-1{font-family:Poppins-Thin,sans-serif;font-size:.625rem}.font-light-1{font-family:Poppins-Light,sans-serif;font-size:.625rem}.font-regular-1{font-family:Poppins-Regular,sans-serif;font-size:.625rem}.font-medium-1{font-family:Poppins-Medium,sans-serif;font-size:.625rem}.font-semibold-1{font-family:Poppins-Semibold,sans-serif;font-size:.625rem}.font-bold-1{font-family:Poppins-Bold,sans-serif;font-size:.625rem}.font-thin-2{font-family:Poppins-Thin,sans-serif;font-size:.6875rem}.font-light-2{font-family:Poppins-Light,sans-serif;font-size:.6875rem}.font-regular-2{font-family:Poppins-Regular,sans-serif;font-size:.6875rem}.font-medium-2{font-family:Poppins-Medium,sans-serif;font-size:.6875rem}.font-semibold-2{font-family:Poppins-Semibold,sans-serif;font-size:.6875rem}.font-bold-2{font-family:Poppins-Bold,sans-serif;font-size:.6875rem}.font-thin-3{font-family:Poppins-Thin,sans-serif;font-size:.75rem}.font-light-3{font-family:Poppins-Light,sans-serif;font-size:.75rem}.font-regular-3{font-family:Poppins-Regular,sans-serif;font-size:.75rem}.font-medium-3{font-family:Poppins-Medium,sans-serif;font-size:.75rem}.font-semibold-3{font-family:Poppins-Semibold,sans-serif;font-size:.75rem}.font-bold-3{font-family:Poppins-Bold,sans-serif;font-size:.75rem}.font-thin-4{font-family:Poppins-Thin,sans-serif;font-size:.875rem}.font-light-4{font-family:Poppins-Light,sans-serif;font-size:.875rem}.font-regular-4{font-family:Poppins-Regular,sans-serif;font-size:.875rem}.font-medium-4{font-family:Poppins-Medium,sans-serif;font-size:.875rem}.font-semibold-4{font-family:Poppins-Semibold,sans-serif;font-size:.875rem}.font-bold-4{font-family:Poppins-Bold,sans-serif;font-size:.875rem}.font-thin-4_5{font-family:Poppins-Thin,sans-serif;font-size:.9375rem}.font-light-4_5{font-family:Poppins-Light,sans-serif;font-size:.9375rem}.font-regular-4_5{font-family:Poppins-Regular,sans-serif;font-size:.9375rem}.font-medium-4_5{font-family:Poppins-Medium,sans-serif;font-size:.9375rem}.font-semibold-4_5{font-family:Poppins-Semibold,sans-serif;font-size:.9375rem}.font-bold-4_5{font-family:Poppins-Bold,sans-serif;font-size:.9375rem}.font-thin-5{font-family:Poppins-Thin,sans-serif;font-size:1rem}.font-light-5{font-family:Poppins-Light,sans-serif;font-size:1rem}.font-regular-5{font-family:Poppins-Regular,sans-serif;font-size:1rem}.font-medium-5{font-family:Poppins-Medium,sans-serif;font-size:1rem}.font-semibold-5{font-family:Poppins-Semibold,sans-serif;font-size:1rem}.font-bold-5{font-family:Poppins-Bold,sans-serif;font-size:1rem}.font-thin-6{font-family:Poppins-Thin,sans-serif;font-size:1.125rem}.font-light-6{font-family:Poppins-Light,sans-serif;font-size:1.125rem}.font-regular-6{font-family:Poppins-Regular,sans-serif;font-size:1.125rem}.font-medium-6{font-family:Poppins-Medium,sans-serif;font-size:1.125rem}.font-semibold-6{font-family:Poppins-Semibold,sans-serif;font-size:1.125rem}.font-bold-6{font-family:Poppins-Bold,sans-serif;font-size:1.125rem}.font-thin-7{font-family:Poppins-Thin,sans-serif;font-size:1.25rem}.font-light-7{font-family:Poppins-Light,sans-serif;font-size:1.25rem}.font-regular-7{font-family:Poppins-Regular,sans-serif;font-size:1.25rem}.font-medium-7{font-family:Poppins-Medium,sans-serif;font-size:1.25rem}.font-semibold-7{font-family:Poppins-Semibold,sans-serif;font-size:1.25rem}.font-bold-7{font-family:Poppins-Bold,sans-serif;font-size:1.25rem}.font-thin-8{font-family:Poppins-Thin,sans-serif;font-size:1.375rem}.font-light-8{font-family:Poppins-Light,sans-serif;font-size:1.375rem}.font-regular-8{font-family:Poppins-Regular,sans-serif;font-size:1.375rem}.font-medium-8{font-family:Poppins-Medium,sans-serif;font-size:1.375rem}.font-semibold-8{font-family:Poppins-Semibold,sans-serif;font-size:1.375rem}.font-bold-8{font-family:Poppins-Bold,sans-serif;font-size:1.375rem}.font-thin-9{font-family:Poppins-Thin,sans-serif;font-size:1.5rem}.font-light-9{font-family:Poppins-Light,sans-serif;font-size:1.5rem}.font-regular-9{font-family:Poppins-Regular,sans-serif;font-size:1.5rem}.font-medium-9{font-family:Poppins-Medium,sans-serif;font-size:1.5rem}.font-semibold-9{font-family:Poppins-Semibold,sans-serif;font-size:1.5rem}.font-bold-9{font-family:Poppins-Bold,sans-serif;font-size:1.5rem}.font-thin-10{font-family:Poppins-Thin,sans-serif;font-size:1.625rem}.font-light-10{font-family:Poppins-Light,sans-serif;font-size:1.625rem}.font-regular-10{font-family:Poppins-Regular,sans-serif;font-size:1.625rem}.font-medium-10{font-family:Poppins-Medium,sans-serif;font-size:1.625rem}.font-semibold-10{font-family:Poppins-Semibold,sans-serif;font-size:1.625rem}.font-bold-10{font-family:Poppins-Bold,sans-serif;font-size:1.625rem}.font-thin-11{font-family:Poppins-Thin,sans-serif;font-size:2.25rem}.font-light-11{font-family:Poppins-Light,sans-serif;font-size:2.25rem}.font-regular-11{font-family:Poppins-Regular,sans-serif;font-size:2.25rem}.font-medium-11{font-family:Poppins-Medium,sans-serif;font-size:2.25rem}.font-semibold-11{font-family:Poppins-Semibold,sans-serif;font-size:2.25rem}.font-bold-11{font-family:Poppins-Bold,sans-serif;font-size:2.25rem}.font-thin-12{font-family:Poppins-Thin,sans-serif;font-size:3rem}.font-light-12{font-family:Poppins-Light,sans-serif;font-size:3rem}.font-regular-12{font-family:Poppins-Regular,sans-serif;font-size:3rem}.font-medium-12{font-family:Poppins-Medium,sans-serif;font-size:3rem}.font-semibold-12{font-family:Poppins-Semibold,sans-serif;font-size:3rem}.font-bold-12{font-family:Poppins-Bold,sans-serif;font-size:3rem}.bmb_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", "isModalOpen"], outputs: ["controlChange", "onValueChange", "onFocus", "isModalOpenChange"] }, { kind: "component", type: BmbInputContentComponent, selector: "bmb-input-content", inputs: ["type", "placeholder", "icon", "appearance", "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: "18.2.14", 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\n [name]=\"name()\"\n [label]=\"label()\"\n [value]=\"!!defaultCountryCode() ? value() : ''\"\n [errorMessage]=\"getErrorMessage()\"\n [helperMessage]=\"helperMessage()\"\n [isRequired]=\"isRequired()\"\n [isDisabled]=\"disabled()\"\n [control]=\"control()\"\n [showError]=\"shouldShowError\"\n [tooltip]=\"tooltip()\"\n [tooltipPosition]=\"tooltipPosition()\"\n [customValidation]=\"handleCustomValidator()\"\n [inputId]=\"inputId()\"\n>\n <section class=\"bmb_input-phone\">\n <section\n class=\"bmb_input-phone-container\"\n [ngClass]=\"{\n 'bmb_input-phone-container-error': shouldShowError,\n 'bmb_input-phone-container-focus': isFocused()\n }\"\n >\n <bmb-dropdown\n class=\"bmb_input-phone-lada\"\n [name]=\"getUUID('lada')\"\n [value]=\"ladaControl.value\"\n [required]=\"true\"\n [disabled]=\"disabled()\"\n [showIcon]=\"false\"\n [options]=\"countryFiltering\"\n [preferredOptions]=\"preferredCountries()\"\n [control]=\"ladaControl\"\n (onValueChange)=\"onValueChange($event)\"\n (onFocus)=\"handleFocus($event)\"\n />\n <bmb-input-content\n class=\"bmb_input-phone-number\"\n [name]=\"getUUID('phone')\"\n pattern=\"^\\d+$\"\n [control]=\"phoneControl\"\n [inputId]=\"inputId()\"\n [placeholder]=\"placeholder()\"\n [maxLength]=\"getSelectedCountryLength(ladaControl.value)\"\n [minLength]=\"getSelectedCountryLength(ladaControl.value)\"\n [isRequired]=\"isRequired()\"\n (onFocus)=\"handleFocus($event)\"\n (onBlur)=\"handleValidity()\"\n />\n </section>\n <input\n hidden\n type=\"text\"\n [name]=\"name()\"\n [required]=\"isRequired()\"\n [formControl]=\"control()\"\n [tabindex]=\"-1\"\n />\n </section>\n</bmb-input-validator>\n", styles: ["@font-face{font-family:Poppins-Light;font-style:normal;font-weight:300;src:url(/assets/fonts/Poppins/Poppins-ExtraLight.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Regular;font-style:normal;font-weight:400;src:url(/assets/fonts/Poppins/Poppins-Regular.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Bold;font-style:normal;font-weight:700;src:url(/assets/fonts/Poppins/Poppins-Bold.ttf) format(\"truetype\")}:root,:host{--font-display: \"Poppins-Regular\", sans-serif}.font-thin-1{font-family:Poppins-Thin,sans-serif;font-size:.625rem}.font-light-1{font-family:Poppins-Light,sans-serif;font-size:.625rem}.font-regular-1{font-family:Poppins-Regular,sans-serif;font-size:.625rem}.font-medium-1{font-family:Poppins-Medium,sans-serif;font-size:.625rem}.font-semibold-1{font-family:Poppins-Semibold,sans-serif;font-size:.625rem}.font-bold-1{font-family:Poppins-Bold,sans-serif;font-size:.625rem}.font-thin-2{font-family:Poppins-Thin,sans-serif;font-size:.6875rem}.font-light-2{font-family:Poppins-Light,sans-serif;font-size:.6875rem}.font-regular-2{font-family:Poppins-Regular,sans-serif;font-size:.6875rem}.font-medium-2{font-family:Poppins-Medium,sans-serif;font-size:.6875rem}.font-semibold-2{font-family:Poppins-Semibold,sans-serif;font-size:.6875rem}.font-bold-2{font-family:Poppins-Bold,sans-serif;font-size:.6875rem}.font-thin-3{font-family:Poppins-Thin,sans-serif;font-size:.75rem}.font-light-3{font-family:Poppins-Light,sans-serif;font-size:.75rem}.font-regular-3{font-family:Poppins-Regular,sans-serif;font-size:.75rem}.font-medium-3{font-family:Poppins-Medium,sans-serif;font-size:.75rem}.font-semibold-3{font-family:Poppins-Semibold,sans-serif;font-size:.75rem}.font-bold-3{font-family:Poppins-Bold,sans-serif;font-size:.75rem}.font-thin-4{font-family:Poppins-Thin,sans-serif;font-size:.875rem}.font-light-4{font-family:Poppins-Light,sans-serif;font-size:.875rem}.font-regular-4{font-family:Poppins-Regular,sans-serif;font-size:.875rem}.font-medium-4{font-family:Poppins-Medium,sans-serif;font-size:.875rem}.font-semibold-4{font-family:Poppins-Semibold,sans-serif;font-size:.875rem}.font-bold-4{font-family:Poppins-Bold,sans-serif;font-size:.875rem}.font-thin-4_5{font-family:Poppins-Thin,sans-serif;font-size:.9375rem}.font-light-4_5{font-family:Poppins-Light,sans-serif;font-size:.9375rem}.font-regular-4_5{font-family:Poppins-Regular,sans-serif;font-size:.9375rem}.font-medium-4_5{font-family:Poppins-Medium,sans-serif;font-size:.9375rem}.font-semibold-4_5{font-family:Poppins-Semibold,sans-serif;font-size:.9375rem}.font-bold-4_5{font-family:Poppins-Bold,sans-serif;font-size:.9375rem}.font-thin-5{font-family:Poppins-Thin,sans-serif;font-size:1rem}.font-light-5{font-family:Poppins-Light,sans-serif;font-size:1rem}.font-regular-5{font-family:Poppins-Regular,sans-serif;font-size:1rem}.font-medium-5{font-family:Poppins-Medium,sans-serif;font-size:1rem}.font-semibold-5{font-family:Poppins-Semibold,sans-serif;font-size:1rem}.font-bold-5{font-family:Poppins-Bold,sans-serif;font-size:1rem}.font-thin-6{font-family:Poppins-Thin,sans-serif;font-size:1.125rem}.font-light-6{font-family:Poppins-Light,sans-serif;font-size:1.125rem}.font-regular-6{font-family:Poppins-Regular,sans-serif;font-size:1.125rem}.font-medium-6{font-family:Poppins-Medium,sans-serif;font-size:1.125rem}.font-semibold-6{font-family:Poppins-Semibold,sans-serif;font-size:1.125rem}.font-bold-6{font-family:Poppins-Bold,sans-serif;font-size:1.125rem}.font-thin-7{font-family:Poppins-Thin,sans-serif;font-size:1.25rem}.font-light-7{font-family:Poppins-Light,sans-serif;font-size:1.25rem}.font-regular-7{font-family:Poppins-Regular,sans-serif;font-size:1.25rem}.font-medium-7{font-family:Poppins-Medium,sans-serif;font-size:1.25rem}.font-semibold-7{font-family:Poppins-Semibold,sans-serif;font-size:1.25rem}.font-bold-7{font-family:Poppins-Bold,sans-serif;font-size:1.25rem}.font-thin-8{font-family:Poppins-Thin,sans-serif;font-size:1.375rem}.font-light-8{font-family:Poppins-Light,sans-serif;font-size:1.375rem}.font-regular-8{font-family:Poppins-Regular,sans-serif;font-size:1.375rem}.font-medium-8{font-family:Poppins-Medium,sans-serif;font-size:1.375rem}.font-semibold-8{font-family:Poppins-Semibold,sans-serif;font-size:1.375rem}.font-bold-8{font-family:Poppins-Bold,sans-serif;font-size:1.375rem}.font-thin-9{font-family:Poppins-Thin,sans-serif;font-size:1.5rem}.font-light-9{font-family:Poppins-Light,sans-serif;font-size:1.5rem}.font-regular-9{font-family:Poppins-Regular,sans-serif;font-size:1.5rem}.font-medium-9{font-family:Poppins-Medium,sans-serif;font-size:1.5rem}.font-semibold-9{font-family:Poppins-Semibold,sans-serif;font-size:1.5rem}.font-bold-9{font-family:Poppins-Bold,sans-serif;font-size:1.5rem}.font-thin-10{font-family:Poppins-Thin,sans-serif;font-size:1.625rem}.font-light-10{font-family:Poppins-Light,sans-serif;font-size:1.625rem}.font-regular-10{font-family:Poppins-Regular,sans-serif;font-size:1.625rem}.font-medium-10{font-family:Poppins-Medium,sans-serif;font-size:1.625rem}.font-semibold-10{font-family:Poppins-Semibold,sans-serif;font-size:1.625rem}.font-bold-10{font-family:Poppins-Bold,sans-serif;font-size:1.625rem}.font-thin-11{font-family:Poppins-Thin,sans-serif;font-size:2.25rem}.font-light-11{font-family:Poppins-Light,sans-serif;font-size:2.25rem}.font-regular-11{font-family:Poppins-Regular,sans-serif;font-size:2.25rem}.font-medium-11{font-family:Poppins-Medium,sans-serif;font-size:2.25rem}.font-semibold-11{font-family:Poppins-Semibold,sans-serif;font-size:2.25rem}.font-bold-11{font-family:Poppins-Bold,sans-serif;font-size:2.25rem}.font-thin-12{font-family:Poppins-Thin,sans-serif;font-size:3rem}.font-light-12{font-family:Poppins-Light,sans-serif;font-size:3rem}.font-regular-12{font-family:Poppins-Regular,sans-serif;font-size:3rem}.font-medium-12{font-family:Poppins-Medium,sans-serif;font-size:3rem}.font-semibold-12{font-family:Poppins-Semibold,sans-serif;font-size:3rem}.font-bold-12{font-family:Poppins-Bold,sans-serif;font-size:3rem}.bmb_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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dUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBPbkluaXQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgaW5wdXQsXG4gIG1vZGVsLFxuICBzaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQWJzdHJhY3RDb250cm9sLFxuICBGb3JtQ29udHJvbCxcbiAgRm9ybXNNb2R1bGUsXG4gIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gIFZhbGlkYXRpb25FcnJvcnMsXG4gIFZhbGlkYXRvckZuLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQm1iRHJvcGRvd25Db21wb25lbnQsXG4gIElCbWJEcm9wZG93bkl0ZW0sXG59IGZyb20gJy4uL2JtYi1kcm9wZG93bi9ibWItZHJvcGRvd24uY29tcG9uZW50JztcbmltcG9ydCB7IElCbWJDb3VudHJ5Q29kZSwgSUJtYkNvdW50cnlDb2RlcyB9IGZyb20gJy4uLy4uL3V0aWxzL2NvdW50cnlDb2Rlcyc7XG5pbXBvcnQge1xuICBJQm1iSW5wdXRBcHBlYXJhbmNlLFxuICBJQm1iSW5wdXRFcnJvcixcbiAgSUJtYklucHV0VG9vbHRpcFBvc2l0aW9uLFxufSBmcm9tICcuLi9ibWItaW5wdXQvYm1iLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCbWJJbnB1dFZhbGlkYXRvckNvbXBvbmVudCB9IGZyb20gJy4uL2JtYi1pbnB1dC9ibWItaW5wdXQtdmFsaWRhdG9yL2JtYi1pbnB1dC12YWxpZGF0b3IuY29tcG9uZW50JztcbmltcG9ydCB7XG4gIGJ1aWxkRXJyb3JNZXNzYWdlLFxuICBnZXRDdXN0b21WYWxpZGF0aW9uLFxuICBnZXRDdXN0b21WYWxpZGF0aW9uTWVzc2FnZSxcbiAgZ2V0VVVJRCxcbiAgaXNFcnJvck1lc3NhZ2VTZXQsXG59IGZyb20gJy4uLy4uL3V0aWxzL3V0aWxzJztcbmltcG9ydCB7IEJtYklucHV0Q29udGVudENvbXBvbmVudCB9IGZyb20gJy4uL2JtYi1pbnB1dC9ibWItaW5wdXQtY29udGVudC9ibWItaW5wdXQtY29udGVudC5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgYXNzaWduTmV3Rm9ybUNvbnRyb2wsXG4gIGhhbmRsZVZhbGlkaXR5LFxuICBzaG93RXJyb3IsXG59IGZyb20gJy4uLy4uL3V0aWxzL2Zvcm1Db250cm9sJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYm1iLWlucHV0LXBob25lLW51bWJlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9ibWItaW5wdXQtcGhvbmUtbnVtYmVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2JtYi1pbnB1dC1waG9uZS1udW1iZXIuY29tcG9uZW50LnNjc3MnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgQm1iRHJvcGRvd25Db21wb25lbnQsXG4gICAgQm1iSW5wdXRDb250ZW50Q29tcG9uZW50LFxuICAgIEJtYklucHV0VmFsaWRhdG9yQ29tcG9uZW50LFxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgQm1iSW5wdXRQaG9uZU51bWJlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGxhYmVsID0gaW5wdXQ8c3RyaW5nPignJyk7XG4gIG5hbWUgPSBpbnB1dDxzdHJpbmc+KGdldFVVSUQoKSk7XG4gIHZhbHVlID0gaW5wdXQ8c3RyaW5nPignJyk7XG4gIGlzUmVxdWlyZWQgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIHRvb2x0aXAgPSBpbnB1dDxzdHJpbmc+KCcnKTtcbiAgdG9vbHRpcFBvc2l0aW9uID0gaW5wdXQ8SUJtYklucHV0VG9vbHRpcFBvc2l0aW9uPih7XG4gICAgYWxpZ246ICdhYm92ZScsXG4gICAganVzdGlmeTogJ2JlZm9yZScsXG4gIH0pO1xuICBkZWZhdWx0TGFkYSA9IGlucHV0PHN0cmluZz4oJys1MicpOyAvL0RlcHJlY2F0ZWRcbiAgZGVmYXVsdENvdW50cnlDb2RlID0gaW5wdXQ8c3RyaW5nPignbXgnKTsgLy9NdXN0IG1hdGNoIHRoZSBhcmVhIGxhZGEgb2YgdGhlIGluaXRpYWwgdmFsdWVcbiAgcGxhY2Vob2xkZXIgPSBpbnB1dDxzdHJpbmc+KCcnKTtcbiAgYXBwZWFyYW5jZSA9IGlucHV0PElCbWJJbnB1dEFwcGVhcmFuY2U+KCdub3JtYWwnKTsgLy9EZXByZWNhdGVkXG4gIGVycm9yTWVzc2FnZSA9IGlucHV0PHN0cmluZyB8IElCbWJJbnB1dEVycm9yPignJyk7XG4gIGRpc2FibGVkID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICBpbnB1dElkID0gaW5wdXQ8c3RyaW5nPih0aGlzLm5hbWUoKSk7XG4gIGhlbHBlck1lc3NhZ2UgPSBpbnB1dDxzdHJpbmc+KCcnKTtcbiAgcHJlZmVycmVkQ291bnRyaWVzID0gaW5wdXQ8c3RyaW5nW10+KFsnbXgnXSk7XG4gIG9ubHlDb3VudHJpZXMgPSBpbnB1dDxzdHJpbmdbXT4oW10pO1xuICBjdXN0b21WYWxpZGF0aW9uID0gaW5wdXQ8VmFsaWRhdG9yRm4+KCk7XG5cbiAgY29udHJvbCA9IG1vZGVsPEZvcm1Db250cm9sPihuZXcgRm9ybUNvbnRyb2woKSk7XG4gIHNob3dFcnJvciA9IG1vZGVsPGJvb2xlYW4+KGZhbHNlKTsgLy8gZGVwcmVjYXRlZFxuXG4gIHV1aWQ6IHN0cmluZyA9IGdldFVVSUQoKTtcbiAgaXNGb2N1c2VkID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcbiAgYWxsQ291bnRyeUNvZGVzOiBJQm1iQ291bnRyeUNvZGVbXSA9IElCbWJDb3VudHJ5Q29kZXM7XG4gIGxhZGFDb250cm9sOiBGb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgpO1xuICBwaG9uZUNvbnRyb2w6IEZvcm1Db250cm9sID0gbmV3IEZvcm1Db250cm9sKHtcbiAgICB2YWx1ZTogJycsXG4gICAgZGlzYWJsZWQ6IHRoaXMuZGlzYWJsZWQoKSxcbiAgfSk7XG4gIGNvdW50cnlGaWx0ZXJpbmc6IElCbWJEcm9wZG93bkl0ZW1bXSA9IFtdO1xuICBpc0NvbnRyb2xOdWxsOiBib29sZWFuID0gZmFsc2U7XG4gIGN1c3RvbVZhbGlkYXRpb25NZXNzYWdlOiBzdHJpbmcgPSAnJztcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuY29udHJvbCgpKSB7XG4gICAgICB0aGlzLmNvbnRyb2wuc2V0KGFzc2lnbk5ld0Zvcm1Db250cm9sKHRoaXMubmFtZSgpLCB0aGlzLmNvbnRyb2woKSkhKTtcbiAgICAgIHRoaXMuaXNDb250cm9sTnVsbCA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKCEhdGhpcy52YWx1ZSgpIHx8ICEhdGhpcy5jb250cm9sKCkudmFsdWUpIHtcbiAgICAgIGxldCBpbnB1dHM6IHN0cmluZ1tdID0gW107XG5cbiAgICAgIGlmICghdGhpcy5kZWZhdWx0Q291bnRyeUNvZGUoKSkge1xuICAgICAgICBpbnB1dHMucHVzaCgnZGVmYXVsdENvdW50cnknKTtcbiAgICAgIH0gZWxzZSBpZiAoIXRoaXMuZ2V0U2VsZWN0ZWRDb3VudHJ5KHRoaXMuZGVmYXVsdENvdW50cnlDb2RlKCkpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgXG4gICAgICAgICAgWyR7dGhpcy5uYW1lKCl9XSAtIFRoZSB2YWx1ZSAke3RoaXMuZGVmYXVsdENvdW50cnlDb2RlKCl9IGZvciBcImRlZmF1bHRDb3VudHJ5Q29kZVwiIGRvZXMgbm90IGV4aXN0IGluIHRoZSBjb3VudHJ5IExpc3QuXG4gICAgICAgICAgYCxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGlmIChpbnB1dHMubGVuZ3RoKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgXG4gICAgICAgICAgWyR7dGhpcy5uYW1lKCl9XSAtIFRoZSAke2J1aWxkRXJyb3JNZXNzYWdlKGlucHV0cyl9IHJlcXVpcmVkIHdoZW4gdGhlcmUgaXMgYW4gaW5pdGlhbCBcInZhbHVlXCIgaW4gXCJibWItaW5wdXQtcGhvbmUuXCIuXG4gICAgICAgICAgYCxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLmxhZGFDb250cm9sLnNldFZhbHVlKFxuICAgICAgdGhpcy5nZXRTZWxlY3RlZENvdW50cnlDb2RlKFxuICAgICAgICB0aGlzLmRlZmF1bHRDb3VudHJ5Q29kZSgpLnRvTG9jYWxlTG93ZXJDYXNlKCksXG4gICAgICApLFxuICAgICk7XG4gICAgdGhpcy5waG9uZUNvbnRyb2wuc2V0VmFsdWUodGhpcy5nZXROdW1iZXJWYWx1ZSgpKTtcbiAgICB0aGlzLmNvdW50cnlGaWx0ZXJpbmcgPSB0aGlzLmdldE9wdGlvbnMoKTtcblxuICAgIHRoaXMucGhvbmVDb250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICBpZiAoISF2YWx1ZSkge1xuICAgICAgICB0aGlzLnNldENvbnRyb2xWYWx1ZShcbiAgICAgICAgICB0aGlzLmdldFNlbGVjdGVkQ291bnRyeUxhZGEodGhpcy5sYWRhQ29udHJvbC52YWx1ZSksXG4gICAgICAgICAgdmFsdWUsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLmNvbnRyb2woKS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgaWYgKHZhbHVlID09PSBudWxsKSB7XG4gICAgICAgIHRoaXMucGhvbmVDb250cm9sLnJlc2V0KCcnKTtcbiAgICAgICAgdGhpcy5sYWRhQ29udHJvbC5yZXNldChcbiAgICAgICAgICB0aGlzLmdldFNlbGVjdGVkQ291bnRyeUNvZGUoXG4gICAgICAgICAgICB0aGlzLmRlZmF1bHRDb3VudHJ5Q29kZSgpLnRvTG9jYWxlTG93ZXJDYXNlKCksXG4gICAgICAgICAgKSxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGhhbmRsZUZvY3VzKHZhbHVlOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5pc0ZvY3VzZWQuc2V0KHZhbHVlKTtcbiAgfVxuXG4gIGhhbmRsZUN1c3RvbVZhbGlkYXRvcigpOiBWYWxpZGF0b3JGbiB7XG4gICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XG4gICAgICBjb25zdCB7IHZhbHVlIH0gPSBjb250cm9sO1xuXG4gICAgICBpZiAoIXZhbHVlKSByZXR1cm4gbnVsbDtcbiAgICAgIGlmICh0aGlzLnBob25lQ29udHJvbC5oYXNFcnJvcigncGF0dGVybicpKSByZXR1cm4geyBwYXR0ZXJuOiB0cnVlIH07XG4gICAgICBpZiAoXG4gICAgICAgIHRoaXMucGhvbmVDb250cm9sLmhhc0Vycm9yKCdtYXhsZW5ndGgnKSB8fFxuICAgICAgICB0aGlzLnBob25lQ29udHJvbC5oYXNFcnJvcignbWlubGVuZ3RoJylcbiAgICAgICkge1xuICAgICAgICByZXR1cm4geyBtaW5sZW5ndGg6IHRydWUgfTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgcmVnRXhwID0gbmV3IFJlZ0V4cChcbiAgICAgICAgYF5cXFxcJHt0aGlzLmdldFNlbGVjdGVkQ291bnRyeUxhZGEoXG4gICAgICAgICAgdGhpcy5sYWRhQ29udHJvbC52YWx1ZSxcbiAgICAgICAgKX1cXFxcZHske3RoaXMuZ2V0U2VsZWN0ZWRDb3VudHJ5TGVuZ3RoKHRoaXMubGFkYUNvbnRyb2wudmFsdWUpfX0kYCxcbiAgICAgICk7XG5cbiAgICAgIGlmICghcmVnRXhwLnRlc3QoY29udHJvbC52YWx1ZSkpIHtcbiAgICAgICAgdGhpcy5jdXN0b21WYWxpZGF0aW9uTWVzc2FnZSA9XG4gICAgICAgICAgJ1BvciBmYXZvciBpbmdyZXNhIHVuIG7Dum1lcm8gZGUgdGVsw6lmb25vIHbDoWxpZG8sIHZlcmlmaWNhIHNpIGxhIGxhZGEgZXMgY29ycmVjdGEuJztcbiAgICAgICAgcmV0dXJuIHsgY3VzdG9tVmFsaWRhdGlvbjogdHJ1ZSB9O1xuICAgICAgfVxuXG4gICAgICBjb25zdCByZXN1bHQgPSBnZXRDdXN0b21WYWxpZGF0aW9uKFxuICAgICAgICB0aGlzLmN1c3RvbVZhbGlkYXRpb24oKSEsXG4gICAgICAgIHRoaXMuY29udHJvbCgpLFxuICAgICAgKTtcbiAgICAgIHRoaXMuY3VzdG9tVmFsaWRhdGlvbk1lc3NhZ2UgPSBnZXRDdXN0b21WYWxpZGF0aW9uTWVzc2FnZShcbiAgICAgICAgcmVzdWx0LFxuICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSgpLFxuICAgICAgKTtcblxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9O1xuICB9XG5cbiAgZ2V0VVVJRChuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHtuYW1lfV8ke3RoaXMubmFtZSgpfV8ke3RoaXMudXVpZH1gO1xuICB9XG5cbiAgc2V0Q29udHJvbFZhbHVlKGxhZGE6IHN0cmluZywgcGhvbmVOdW1iZXI6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICghIWxhZGEgJiYgISFwaG9uZU51bWJlcikge1xuICAgICAgdGhpcy5jb250cm9sKCkuc2V0VmFsdWUobGFkYSArIHBob25lTnVtYmVyKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jb250cm9sKCkucmVzZXQoJycpO1xuICAgIH1cblxuICAgIHRoaXMuaGFuZGxlVmFsaWRpdHkoKTtcbiAgfVxuXG4gIGdldE51bWJlclZhbHVlKCk6IHN0cmluZyB7XG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLmNvbnRyb2woKS52YWx1ZSB8fCB0aGlzLnZhbHVlKCk7XG4gICAgcmV0dXJuIHZhbHVlLnJlcGxhY2UoXG4gICAgICB0aGlzLmdldFNlbGVjdGVkQ291bnRyeUxhZGEodGhpcy5sYWRhQ29udHJvbC52YWx1ZSksXG4gICAgICAnJyxcbiAgICApITtcbiAgfVxuXG4gIGdldFNlbGVjdGVkQ291bnRyeSh2YWx1ZTogc3RyaW5nKTogSUJtYkNvdW50cnlDb2RlIHtcbiAgICByZXR1cm4gdGhpcy5hbGxDb3VudHJ5Q29kZXMuZmluZChcbiAgICAgICh7IGNvdW50cnlfY29kZSB9KSA9PiBjb3VudHJ5X2NvZGUudG9Mb2NhbGVMb3dlckNhc2UoKSA9PT0gdmFsdWUsXG4gICAgKSE7XG4gIH1cblxuICBnZXRTZWxlY3RlZENvdW50cnlDb2RlKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IHNlbGVjdGVkQ291bnRyeSA9IHRoaXMuZ2V0U2VsZWN0ZWRDb3VudHJ5KHZhbHVlKTtcblxuICAgIGlmICghIXNlbGVjdGVkQ291bnRyeSkge1xuICAgICAgcmV0dXJuIHNlbGVjdGVkQ291bnRyeS5jb3VudHJ5X2NvZGUudG9Mb2NhbGVMb3dlckNhc2UoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBnZXRTZWxlY3RlZENvdW50cnlMYWRhKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IHNlbGVjdGVkQ291bnRyeSA9IHRoaXMuZ2V0U2VsZWN0ZWRDb3VudHJ5KHZhbHVlKTtcblxuICAgIGlmICghIXNlbGVjdGVkQ291bnRyeSkge1xuICAgICAgcmV0dXJuIHNlbGVjdGVkQ291bnRyeS5sYWRhO1xuICAgIH1cblxuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIGdldFNlbGVjdGVkQ291bnRyeUxlbmd0aCh2YWx1ZTogc3RyaW5nKTogbnVtYmVyIHtcbiAgICBjb25zdCBzZWxlY3RlZENvdW50cnkgPSB0aGlzLmdldFNlbGVjdGVkQ291bnRyeSh2YWx1ZSk7XG5cbiAgICBpZiAoISFzZWxlY3RlZENvdW50cnkpIHtcbiAgICAgIHJldHVybiBzZWxlY3RlZENvdW50cnkubGVuZ3RoO1xuICAgIH1cblxuICAgIHJldHVybiAwO1xuICB9XG5cbiAgb25WYWx1ZUNoYW5nZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgaWYgKCEhdGhpcy5waG9uZUNvbnRyb2wudmFsdWUpIHtcbiAgICAgIHRoaXMuc2V0Q29udHJvbFZhbHVlKFxuICAgICAgICB0aGlzLmdldFNlbGVjdGVkQ291bnRyeUxhZGEodmFsdWUpLFxuICAgICAgICB0aGlzLnBob25lQ29udHJvbC52YWx1ZSxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgZ2V0T3B0aW9ucygpOiBJQm1iRHJvcGRvd25JdGVtW10ge1xuICAgIGlmICh0aGlzLm9ubHlDb3VudHJpZXMoKS5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IGxvd2VyQ2FzZUNvdW50cmllcyA9IHRoaXMub25seUNvdW50cmllcygpLm1hcCgoY291bnRyeSkgPT5cbiAgICAgICAgY291bnRyeS50b0xvY2FsZUxvd2VyQ2FzZSgpLFxuICAgICAgKTtcblxuICAgICAgY29uc3QgZmlsdGVyZWRPcHRpb25zID0gdGhpcy5hbGxDb3VudHJ5Q29kZXMuZmlsdGVyKFxuICAgICAgICAoeyBjb3VudHJ5X2NvZGUgfSkgPT4ge1xuICAgICAgICAgIHJldHVybiBsb3dlckNhc2VDb3VudHJpZXMuaW5jbHVkZXMoY291bnRyeV9jb2RlLnRvTG9jYWxlTG93ZXJDYXNlKCkpO1xuICAgICAgICB9LFxuICAgICAgKTtcblxuICAgICAgcmV0dXJuIGZpbHRlcmVkT3B0aW9ucy5tYXAoKHsgY291bnRyeSwgbGFkYSwgY291bnRyeV9jb2RlIH0pID0+ICh7XG4gICAgICAgIG5hbWU6IGAke2NvdW50cnl9ICgke2xhZGF9KWAsXG4gICAgICAgIHZhbHVlOiBjb3VudHJ5X2NvZGUudG9Mb2NhbGVMb3dlckNhc2UoKSxcbiAgICAgICAgc2VsZWN0ZWRUZXh0OiBsYWRhLFxuICAgICAgICBpY29uOiAnZmxhZycsXG4gICAgICB9KSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuYWxsQ291bnRyeUNvZGVzLm1hcCgoeyBjb3VudHJ5LCBsYWRhLCBjb3VudHJ5X2NvZGUgfSkgPT4gKHtcbiAgICAgIG5hbWU6IGAke2NvdW50cnl9ICgke2xhZGF9KWAsXG4gICAgICB2YWx1ZTogY291bnRyeV9jb2RlLnRvTG9jYWxlTG93ZXJDYXNlKCksXG4gICAgICBzZWxlY3RlZFRleHQ6IGxhZGEsXG4gICAgICBpY29uOiAnZmxhZycsXG4gICAgfSkpO1xuICB9XG5cbiAgZ2V0RXJyb3JNZXNzYWdlKCk6IElCbWJJbnB1dEVycm9yIHtcbiAgICBjb25zdCBwYXR0ZXJuID0gJ1BvciBmYXZvciBpbmdyZXNhIHPDs2xvIGNhcmFjdGVyZXMgbnVtw6lyaWNvcyc7XG4gICAgY29uc3QgbWluTGVuZ3RoID0gYFBvciBmYXZvciBpbmdyZXNhICR7dGhpcy5nZXRTZWxlY3RlZENvdW50cnlMZW5ndGgoXG4gICAgICB0aGlzLmxhZGFDb250cm9sLnZhbHVlLFxuICAgICl9IGNhcmFjdGVyZXMgbnVtw6lyaWNvc2A7XG4gICAgaWYgKCEhdGhpcy5lcnJvck1lc3NhZ2UoKSkge1xuICAgICAgaWYgKHR5cGVvZiB0aGlzLmVycm9yTWVzc2FnZSgpID09PSAnc3RyaW5nJylcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICByZXF1aXJlZDogdGhpcy5lcnJvck1lc3NhZ2UoKS50b1N0cmluZygpLFxuICAgICAgICAgIHBhdHRlcm4sXG4gICAgICAgICAgbWluTGVuZ3RoLFxuICAgICAgICAgIGN1c3RvbVZhbGlkYXRpb246IHRoaXMuY3VzdG9tVmFsaWRhdGlvbk1lc3NhZ2UsXG4gICAgICAgIH07XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIHBhdHRlcm4sXG4gICAgICAgIG1pbkxlbmd0aCxcbiAgICAgICAgLi4uKHRoaXMuZXJyb3JNZXNzYWdlKCkgYXMgSUJtYklucHV0RXJyb3IpLFxuICAgICAgICBjdXN0b21WYWxpZGF0aW9uOiB0aGlzLmN1c3RvbVZhbGlkYXRpb25NZXNzYWdlLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgcGF0dGVybixcbiAgICAgIG1pbkxlbmd0aCxcbiAgICAgIGN1c3RvbVZhbGlkYXRpb246IHRoaXMuY3VzdG9tVmFsaWRhdGlvbk1lc3NhZ2UsXG4gICAgfTtcbiAgfVxuXG4gIGhhbmRsZVZhbGlkaXR5KCk6IHZvaWQge1xuICAgIGhhbmRsZVZhbGlkaXR5KHRoaXMuY29udHJvbCgpKTtcbiAgfVxuXG4gIGdldCBzaG91bGRTaG93RXJyb3IoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHNob3dFcnJvcih0aGlzLmNvbnRyb2woKSkgfHwgc2hvd0Vycm9yKHRoaXMucGhvbmVDb250cm9sKTtcbiAgfVxufVxuIiwiPGJtYi1pbnB1dC12YWxpZGF0b3JcbiAgW25hbWVdPVwibmFtZSgpXCJcbiAgW2xhYmVsXT1cImxhYmVsKClcIlxuICBbdmFsdWVdPVwiISFkZWZhdWx0Q291bnRyeUNvZGUoKSA/IHZhbHVlKCkgOiAnJ1wiXG4gIFtlcnJvck1lc3NhZ2VdPVwiZ2V0RXJyb3JNZXNzYWdlKClcIlxuICBbaGVscGVyTWVzc2FnZV09XCJoZWxwZXJNZXNzYWdlKClcIlxuICBbaXNSZXF1aXJlZF09XCJpc1JlcXVpcmVkKClcIlxuICBbaXNEaXNhYmxlZF09XCJkaXNhYmxlZCgpXCJcbiAgW2NvbnRyb2xdPVwiY29udHJvbCgpXCJcbiAgW3Nob3dFcnJvcl09XCJzaG91bGRTaG93RXJyb3JcIlxuICBbdG9vbHRpcF09XCJ0b29sdGlwKClcIlxuICBbdG9vbHRpcFBvc2l0aW9uXT1cInRvb2x0aXBQb3NpdGlvbigpXCJcbiAgW2N1c3RvbVZhbGlkYXRpb25dPVwiaGFuZGxlQ3VzdG9tVmFsaWRhdG9yKClcIlxuICBbaW5wdXRJZF09XCJpbnB1dElkKClcIlxuPlxuICA8c2VjdGlvbiBjbGFzcz1cImJtYl9pbnB1dC1waG9uZVwiPlxuICAgIDxzZWN0aW9uXG4gICAgICBjbGFzcz1cImJtYl9pbnB1dC1waG9uZS1jb250YWluZXJcIlxuICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAnYm1iX2lucHV0LXBob25lLWNvbnRhaW5lci1lcnJvcic6IHNob3VsZFNob3dFcnJvcixcbiAgICAgICAgJ2JtYl9pbnB1dC1waG9uZS1jb250YWluZXItZm9jdXMnOiBpc0ZvY3VzZWQoKVxuICAgICAgfVwiXG4gICAgPlxuICAgICAgPGJtYi1kcm9wZG93blxuICAgICAgICBjbGFzcz1cImJtYl9pbnB1dC1waG9uZS1sYWRhXCJcbiAgICAgICAgW25hbWVdPVwiZ2V0VVVJRCgnbGFkYScpXCJcbiAgICAgICAgW3ZhbHVlXT1cImxhZGFDb250cm9sLnZhbHVlXCJcbiAgICAgICAgW3JlcXVpcmVkXT1cInRydWVcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQoKVwiXG4gICAgICAgIFtzaG93SWNvbl09XCJmYWxzZVwiXG4gICAgICAgIFtvcHRpb25zXT1cImNvdW50cnlGaWx0ZXJpbmdcIlxuICAgICAgICBbcHJlZmVycmVkT3B0aW9uc109XCJwcmVmZXJyZWRDb3VudHJpZXMoKVwiXG4gICAgICAgIFtjb250cm9sXT1cImxhZGFDb250cm9sXCJcbiAgICAgICAgKG9uVmFsdWVDaGFuZ2UpPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgKG9uRm9jdXMpPVwiaGFuZGxlRm9jdXMoJGV2ZW50KVwiXG4gICAgICAvPlxuICAgICAgPGJtYi1pbnB1dC1jb250ZW50XG4gICAgICAgIGNsYXNzPVwiYm1iX2lucHV0LXBob25lLW51bWJlclwiXG4gICAgICAgIFtuYW1lXT1cImdldFVVSUQoJ3Bob25lJylcIlxuICAgICAgICBwYXR0ZXJuPVwiXlxcZCskXCJcbiAgICAgICAgW2NvbnRyb2xdPVwicGhvbmVDb250cm9sXCJcbiAgICAgICAgW2lucHV0SWRdPVwiaW5wdXRJZCgpXCJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyKClcIlxuICAgICAgICBbbWF4TGVuZ3RoXT1cImdldFNlbGVjdGVkQ291bnRyeUxlbmd0aChsYWRhQ29udHJvbC52YWx1ZSlcIlxuICAgICAgICBbbWluTGVuZ3RoXT1cImdldFNlbGVjdGVkQ291bnRyeUxlbmd0aChsYWRhQ29udHJvbC52YWx1ZSlcIlxuICAgICAgICBbaXNSZXF1aXJlZF09XCJpc1JlcXVpcmVkKClcIlxuICAgICAgICAob25Gb2N1cyk9XCJoYW5kbGVGb2N1cygkZXZlbnQpXCJcbiAgICAgICAgKG9uQmx1cik9XCJoYW5kbGVWYWxpZGl0eSgpXCJcbiAgICAgIC8+XG4gICAgPC9zZWN0aW9uPlxuICAgIDxpbnB1dFxuICAgICAgaGlkZGVuXG4gICAgICB0eXBlPVwidGV4dFwiXG4gICAgICBbbmFtZV09XCJuYW1lKClcIlxuICAgICAgW3JlcXVpcmVkXT1cImlzUmVxdWlyZWQoKVwiXG4gICAgICBbZm9ybUNvbnRyb2xdPVwiY29udHJvbCgpXCJcbiAgICAgIFt0YWJpbmRleF09XCItMVwiXG4gICAgLz5cbiAgPC9zZWN0aW9uPlxuPC9ibWItaW5wdXQtdmFsaWRhdG9yPlxuIl19
@@ -1,191 +0,0 @@
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: "18.2.14", ngImport: i0, type: BmbInputTagsComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
177
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", 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\n class=\"bmb_input-tags\"\n [name]=\"name()\"\n [value]=\"getValidInitialValues()\"\n [label]=\"label()!\"\n [errorMessage]=\"errorMessage()\"\n [helperMessage]=\"helperMessage()\"\n [isRequired]=\"isRequired()\"\n [isDisabled]=\"disabled()\"\n [control]=\"control()\"\n [showError]=\"shouldShowError\"\n [tooltip]=\"tooltip()\"\n [tooltipPosition]=\"tooltipPosition()\"\n [customValidation]=\"customValidation()\"\n clickOutside\n (clickOutside)=\"closeList()\"\n [inputId]=\"inputId()\"\n>\n <section\n class=\"bmb_input-tags-container\"\n [ngClass]=\"{\n 'bmb_input-tags-container-error': shouldShowError,\n 'bmb_input-tags-container-focus': isFocused()\n }\"\n >\n <bmb-input-content\n class=\"bmb_input-tags-filter\"\n type=\"text\"\n [inputId]=\"inputId()\"\n [name]=\"getUUID('filter')\"\n [control]=\"filterControl\"\n [placeholder]=\"placeholder()\"\n (click)=\"openList()\"\n (onBlur)=\"handleValidity()\"\n (keydown)=\"handleKeyDown($event)\"\n (onFocus)=\"handleFocus($event)\"\n />\n @if (!!selectedTags && !!selectedTags.length) {\n <div class=\"bmb_input-tags-selected-list\" [tabIndex]=\"-1\">\n @for (item of selectedTags; track $index) {\n <bmb-tag\n [text]=\"item.selectedText!\"\n [dismissible]=\"true\"\n [isDisabled]=\"disabled()\"\n (clickedTag)=\"removeTag(item)\"\n (closedTag)=\"removeTag(item)\"\n />\n }\n </div>\n }\n </section>\n <input\n hidden\n type=\"text\"\n [id]=\"name()\"\n [name]=\"name()\"\n [formControl]=\"control()\"\n />\n <dialog [open]=\"showDropdown\" class=\"bmb_generic-dialog\">\n <bmb-dropdown-content\n class=\"bmb_input-tags-dialog\"\n name=\"list\"\n [selectedOption]=\"control().value\"\n [isKeyboardEvent]=\"isKeyboardEvent\"\n [(items)]=\"filteredOptions\"\n [(isOpen)]=\"showDropdown\"\n />\n </dialog>\n</bmb-input-validator>\n", styles: ["@font-face{font-family:Poppins-Light;font-style:normal;font-weight:300;src:url(/assets/fonts/Poppins/Poppins-ExtraLight.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Regular;font-style:normal;font-weight:400;src:url(/assets/fonts/Poppins/Poppins-Regular.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Bold;font-style:normal;font-weight:700;src:url(/assets/fonts/Poppins/Poppins-Bold.ttf) format(\"truetype\")}:root,:host{--font-display: \"Poppins-Regular\", sans-serif}.font-thin-1{font-family:Poppins-Thin,sans-serif;font-size:.625rem}.font-light-1{font-family:Poppins-Light,sans-serif;font-size:.625rem}.font-regular-1{font-family:Poppins-Regular,sans-serif;font-size:.625rem}.font-medium-1{font-family:Poppins-Medium,sans-serif;font-size:.625rem}.font-semibold-1{font-family:Poppins-Semibold,sans-serif;font-size:.625rem}.font-bold-1{font-family:Poppins-Bold,sans-serif;font-size:.625rem}.font-thin-2{font-family:Poppins-Thin,sans-serif;font-size:.6875rem}.font-light-2{font-family:Poppins-Light,sans-serif;font-size:.6875rem}.font-regular-2{font-family:Poppins-Regular,sans-serif;font-size:.6875rem}.font-medium-2{font-family:Poppins-Medium,sans-serif;font-size:.6875rem}.font-semibold-2{font-family:Poppins-Semibold,sans-serif;font-size:.6875rem}.font-bold-2{font-family:Poppins-Bold,sans-serif;font-size:.6875rem}.font-thin-3{font-family:Poppins-Thin,sans-serif;font-size:.75rem}.font-light-3{font-family:Poppins-Light,sans-serif;font-size:.75rem}.font-regular-3{font-family:Poppins-Regular,sans-serif;font-size:.75rem}.font-medium-3{font-family:Poppins-Medium,sans-serif;font-size:.75rem}.font-semibold-3{font-family:Poppins-Semibold,sans-serif;font-size:.75rem}.font-bold-3{font-family:Poppins-Bold,sans-serif;font-size:.75rem}.font-thin-4{font-family:Poppins-Thin,sans-serif;font-size:.875rem}.font-light-4{font-family:Poppins-Light,sans-serif;font-size:.875rem}.font-regular-4{font-family:Poppins-Regular,sans-serif;font-size:.875rem}.font-medium-4{font-family:Poppins-Medium,sans-serif;font-size:.875rem}.font-semibold-4{font-family:Poppins-Semibold,sans-serif;font-size:.875rem}.font-bold-4{font-family:Poppins-Bold,sans-serif;font-size:.875rem}.font-thin-4_5{font-family:Poppins-Thin,sans-serif;font-size:.9375rem}.font-light-4_5{font-family:Poppins-Light,sans-serif;font-size:.9375rem}.font-regular-4_5{font-family:Poppins-Regular,sans-serif;font-size:.9375rem}.font-medium-4_5{font-family:Poppins-Medium,sans-serif;font-size:.9375rem}.font-semibold-4_5{font-family:Poppins-Semibold,sans-serif;font-size:.9375rem}.font-bold-4_5{font-family:Poppins-Bold,sans-serif;font-size:.9375rem}.font-thin-5{font-family:Poppins-Thin,sans-serif;font-size:1rem}.font-light-5{font-family:Poppins-Light,sans-serif;font-size:1rem}.font-regular-5{font-family:Poppins-Regular,sans-serif;font-size:1rem}.font-medium-5{font-family:Poppins-Medium,sans-serif;font-size:1rem}.font-semibold-5{font-family:Poppins-Semibold,sans-serif;font-size:1rem}.font-bold-5{font-family:Poppins-Bold,sans-serif;font-size:1rem}.font-thin-6{font-family:Poppins-Thin,sans-serif;font-size:1.125rem}.font-light-6{font-family:Poppins-Light,sans-serif;font-size:1.125rem}.font-regular-6{font-family:Poppins-Regular,sans-serif;font-size:1.125rem}.font-medium-6{font-family:Poppins-Medium,sans-serif;font-size:1.125rem}.font-semibold-6{font-family:Poppins-Semibold,sans-serif;font-size:1.125rem}.font-bold-6{font-family:Poppins-Bold,sans-serif;font-size:1.125rem}.font-thin-7{font-family:Poppins-Thin,sans-serif;font-size:1.25rem}.font-light-7{font-family:Poppins-Light,sans-serif;font-size:1.25rem}.font-regular-7{font-family:Poppins-Regular,sans-serif;font-size:1.25rem}.font-medium-7{font-family:Poppins-Medium,sans-serif;font-size:1.25rem}.font-semibold-7{font-family:Poppins-Semibold,sans-serif;font-size:1.25rem}.font-bold-7{font-family:Poppins-Bold,sans-serif;font-size:1.25rem}.font-thin-8{font-family:Poppins-Thin,sans-serif;font-size:1.375rem}.font-light-8{font-family:Poppins-Light,sans-serif;font-size:1.375rem}.font-regular-8{font-family:Poppins-Regular,sans-serif;font-size:1.375rem}.font-medium-8{font-family:Poppins-Medium,sans-serif;font-size:1.375rem}.font-semibold-8{font-family:Poppins-Semibold,sans-serif;font-size:1.375rem}.font-bold-8{font-family:Poppins-Bold,sans-serif;font-size:1.375rem}.font-thin-9{font-family:Poppins-Thin,sans-serif;font-size:1.5rem}.font-light-9{font-family:Poppins-Light,sans-serif;font-size:1.5rem}.font-regular-9{font-family:Poppins-Regular,sans-serif;font-size:1.5rem}.font-medium-9{font-family:Poppins-Medium,sans-serif;font-size:1.5rem}.font-semibold-9{font-family:Poppins-Semibold,sans-serif;font-size:1.5rem}.font-bold-9{font-family:Poppins-Bold,sans-serif;font-size:1.5rem}.font-thin-10{font-family:Poppins-Thin,sans-serif;font-size:1.625rem}.font-light-10{font-family:Poppins-Light,sans-serif;font-size:1.625rem}.font-regular-10{font-family:Poppins-Regular,sans-serif;font-size:1.625rem}.font-medium-10{font-family:Poppins-Medium,sans-serif;font-size:1.625rem}.font-semibold-10{font-family:Poppins-Semibold,sans-serif;font-size:1.625rem}.font-bold-10{font-family:Poppins-Bold,sans-serif;font-size:1.625rem}.font-thin-11{font-family:Poppins-Thin,sans-serif;font-size:2.25rem}.font-light-11{font-family:Poppins-Light,sans-serif;font-size:2.25rem}.font-regular-11{font-family:Poppins-Regular,sans-serif;font-size:2.25rem}.font-medium-11{font-family:Poppins-Medium,sans-serif;font-size:2.25rem}.font-semibold-11{font-family:Poppins-Semibold,sans-serif;font-size:2.25rem}.font-bold-11{font-family:Poppins-Bold,sans-serif;font-size:2.25rem}.font-thin-12{font-family:Poppins-Thin,sans-serif;font-size:3rem}.font-light-12{font-family:Poppins-Light,sans-serif;font-size:3rem}.font-regular-12{font-family:Poppins-Regular,sans-serif;font-size:3rem}.font-medium-12{font-family:Poppins-Medium,sans-serif;font-size:3rem}.font-semibold-12{font-family:Poppins-Semibold,sans-serif;font-size:3rem}.font-bold-12{font-family:Poppins-Bold,sans-serif;font-size:3rem}.bmb_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", "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", "isKeyboardEvent", "enableFilter", "isOpen"], outputs: ["itemsChange", "isKeyboardEventChange", "isOpenChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
178
- }
179
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", 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\n class=\"bmb_input-tags\"\n [name]=\"name()\"\n [value]=\"getValidInitialValues()\"\n [label]=\"label()!\"\n [errorMessage]=\"errorMessage()\"\n [helperMessage]=\"helperMessage()\"\n [isRequired]=\"isRequired()\"\n [isDisabled]=\"disabled()\"\n [control]=\"control()\"\n [showError]=\"shouldShowError\"\n [tooltip]=\"tooltip()\"\n [tooltipPosition]=\"tooltipPosition()\"\n [customValidation]=\"customValidation()\"\n clickOutside\n (clickOutside)=\"closeList()\"\n [inputId]=\"inputId()\"\n>\n <section\n class=\"bmb_input-tags-container\"\n [ngClass]=\"{\n 'bmb_input-tags-container-error': shouldShowError,\n 'bmb_input-tags-container-focus': isFocused()\n }\"\n >\n <bmb-input-content\n class=\"bmb_input-tags-filter\"\n type=\"text\"\n [inputId]=\"inputId()\"\n [name]=\"getUUID('filter')\"\n [control]=\"filterControl\"\n [placeholder]=\"placeholder()\"\n (click)=\"openList()\"\n (onBlur)=\"handleValidity()\"\n (keydown)=\"handleKeyDown($event)\"\n (onFocus)=\"handleFocus($event)\"\n />\n @if (!!selectedTags && !!selectedTags.length) {\n <div class=\"bmb_input-tags-selected-list\" [tabIndex]=\"-1\">\n @for (item of selectedTags; track $index) {\n <bmb-tag\n [text]=\"item.selectedText!\"\n [dismissible]=\"true\"\n [isDisabled]=\"disabled()\"\n (clickedTag)=\"removeTag(item)\"\n (closedTag)=\"removeTag(item)\"\n />\n }\n </div>\n }\n </section>\n <input\n hidden\n type=\"text\"\n [id]=\"name()\"\n [name]=\"name()\"\n [formControl]=\"control()\"\n />\n <dialog [open]=\"showDropdown\" class=\"bmb_generic-dialog\">\n <bmb-dropdown-content\n class=\"bmb_input-tags-dialog\"\n name=\"list\"\n [selectedOption]=\"control().value\"\n [isKeyboardEvent]=\"isKeyboardEvent\"\n [(items)]=\"filteredOptions\"\n [(isOpen)]=\"showDropdown\"\n />\n </dialog>\n</bmb-input-validator>\n", styles: ["@font-face{font-family:Poppins-Light;font-style:normal;font-weight:300;src:url(/assets/fonts/Poppins/Poppins-ExtraLight.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Regular;font-style:normal;font-weight:400;src:url(/assets/fonts/Poppins/Poppins-Regular.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Bold;font-style:normal;font-weight:700;src:url(/assets/fonts/Poppins/Poppins-Bold.ttf) format(\"truetype\")}:root,:host{--font-display: \"Poppins-Regular\", sans-serif}.font-thin-1{font-family:Poppins-Thin,sans-serif;font-size:.625rem}.font-light-1{font-family:Poppins-Light,sans-serif;font-size:.625rem}.font-regular-1{font-family:Poppins-Regular,sans-serif;font-size:.625rem}.font-medium-1{font-family:Poppins-Medium,sans-serif;font-size:.625rem}.font-semibold-1{font-family:Poppins-Semibold,sans-serif;font-size:.625rem}.font-bold-1{font-family:Poppins-Bold,sans-serif;font-size:.625rem}.font-thin-2{font-family:Poppins-Thin,sans-serif;font-size:.6875rem}.font-light-2{font-family:Poppins-Light,sans-serif;font-size:.6875rem}.font-regular-2{font-family:Poppins-Regular,sans-serif;font-size:.6875rem}.font-medium-2{font-family:Poppins-Medium,sans-serif;font-size:.6875rem}.font-semibold-2{font-family:Poppins-Semibold,sans-serif;font-size:.6875rem}.font-bold-2{font-family:Poppins-Bold,sans-serif;font-size:.6875rem}.font-thin-3{font-family:Poppins-Thin,sans-serif;font-size:.75rem}.font-light-3{font-family:Poppins-Light,sans-serif;font-size:.75rem}.font-regular-3{font-family:Poppins-Regular,sans-serif;font-size:.75rem}.font-medium-3{font-family:Poppins-Medium,sans-serif;font-size:.75rem}.font-semibold-3{font-family:Poppins-Semibold,sans-serif;font-size:.75rem}.font-bold-3{font-family:Poppins-Bold,sans-serif;font-size:.75rem}.font-thin-4{font-family:Poppins-Thin,sans-serif;font-size:.875rem}.font-light-4{font-family:Poppins-Light,sans-serif;font-size:.875rem}.font-regular-4{font-family:Poppins-Regular,sans-serif;font-size:.875rem}.font-medium-4{font-family:Poppins-Medium,sans-serif;font-size:.875rem}.font-semibold-4{font-family:Poppins-Semibold,sans-serif;font-size:.875rem}.font-bold-4{font-family:Poppins-Bold,sans-serif;font-size:.875rem}.font-thin-4_5{font-family:Poppins-Thin,sans-serif;font-size:.9375rem}.font-light-4_5{font-family:Poppins-Light,sans-serif;font-size:.9375rem}.font-regular-4_5{font-family:Poppins-Regular,sans-serif;font-size:.9375rem}.font-medium-4_5{font-family:Poppins-Medium,sans-serif;font-size:.9375rem}.font-semibold-4_5{font-family:Poppins-Semibold,sans-serif;font-size:.9375rem}.font-bold-4_5{font-family:Poppins-Bold,sans-serif;font-size:.9375rem}.font-thin-5{font-family:Poppins-Thin,sans-serif;font-size:1rem}.font-light-5{font-family:Poppins-Light,sans-serif;font-size:1rem}.font-regular-5{font-family:Poppins-Regular,sans-serif;font-size:1rem}.font-medium-5{font-family:Poppins-Medium,sans-serif;font-size:1rem}.font-semibold-5{font-family:Poppins-Semibold,sans-serif;font-size:1rem}.font-bold-5{font-family:Poppins-Bold,sans-serif;font-size:1rem}.font-thin-6{font-family:Poppins-Thin,sans-serif;font-size:1.125rem}.font-light-6{font-family:Poppins-Light,sans-serif;font-size:1.125rem}.font-regular-6{font-family:Poppins-Regular,sans-serif;font-size:1.125rem}.font-medium-6{font-family:Poppins-Medium,sans-serif;font-size:1.125rem}.font-semibold-6{font-family:Poppins-Semibold,sans-serif;font-size:1.125rem}.font-bold-6{font-family:Poppins-Bold,sans-serif;font-size:1.125rem}.font-thin-7{font-family:Poppins-Thin,sans-serif;font-size:1.25rem}.font-light-7{font-family:Poppins-Light,sans-serif;font-size:1.25rem}.font-regular-7{font-family:Poppins-Regular,sans-serif;font-size:1.25rem}.font-medium-7{font-family:Poppins-Medium,sans-serif;font-size:1.25rem}.font-semibold-7{font-family:Poppins-Semibold,sans-serif;font-size:1.25rem}.font-bold-7{font-family:Poppins-Bold,sans-serif;font-size:1.25rem}.font-thin-8{font-family:Poppins-Thin,sans-serif;font-size:1.375rem}.font-light-8{font-family:Poppins-Light,sans-serif;font-size:1.375rem}.font-regular-8{font-family:Poppins-Regular,sans-serif;font-size:1.375rem}.font-medium-8{font-family:Poppins-Medium,sans-serif;font-size:1.375rem}.font-semibold-8{font-family:Poppins-Semibold,sans-serif;font-size:1.375rem}.font-bold-8{font-family:Poppins-Bold,sans-serif;font-size:1.375rem}.font-thin-9{font-family:Poppins-Thin,sans-serif;font-size:1.5rem}.font-light-9{font-family:Poppins-Light,sans-serif;font-size:1.5rem}.font-regular-9{font-family:Poppins-Regular,sans-serif;font-size:1.5rem}.font-medium-9{font-family:Poppins-Medium,sans-serif;font-size:1.5rem}.font-semibold-9{font-family:Poppins-Semibold,sans-serif;font-size:1.5rem}.font-bold-9{font-family:Poppins-Bold,sans-serif;font-size:1.5rem}.font-thin-10{font-family:Poppins-Thin,sans-serif;font-size:1.625rem}.font-light-10{font-family:Poppins-Light,sans-serif;font-size:1.625rem}.font-regular-10{font-family:Poppins-Regular,sans-serif;font-size:1.625rem}.font-medium-10{font-family:Poppins-Medium,sans-serif;font-size:1.625rem}.font-semibold-10{font-family:Poppins-Semibold,sans-serif;font-size:1.625rem}.font-bold-10{font-family:Poppins-Bold,sans-serif;font-size:1.625rem}.font-thin-11{font-family:Poppins-Thin,sans-serif;font-size:2.25rem}.font-light-11{font-family:Poppins-Light,sans-serif;font-size:2.25rem}.font-regular-11{font-family:Poppins-Regular,sans-serif;font-size:2.25rem}.font-medium-11{font-family:Poppins-Medium,sans-serif;font-size:2.25rem}.font-semibold-11{font-family:Poppins-Semibold,sans-serif;font-size:2.25rem}.font-bold-11{font-family:Poppins-Bold,sans-serif;font-size:2.25rem}.font-thin-12{font-family:Poppins-Thin,sans-serif;font-size:3rem}.font-light-12{font-family:Poppins-Light,sans-serif;font-size:3rem}.font-regular-12{font-family:Poppins-Regular,sans-serif;font-size:3rem}.font-medium-12{font-family:Poppins-Medium,sans-serif;font-size:3rem}.font-semibold-12{font-family:Poppins-Semibold,sans-serif;font-size:3rem}.font-bold-12{font-family:Poppins-Bold,sans-serif;font-size:3rem}.bmb_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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ZUFBZTtRQUNqQixPQUFPLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUNuQyxDQUFDOytHQW5NVSxxQkFBcUI7bUdBQXJCLHFCQUFxQiwreEVBRnJCLEVBQUUsK0NDekRmLDhnRUFxRUEsa3dQRHhCSSxZQUFZLDRIQUNaLG1CQUFtQiwwa0JBQ25CLHFCQUFxQixzRkFDckIsZUFBZSx3TUFDZiwwQkFBMEIscWJBQzFCLHdCQUF3Qix1YkFDeEIsMkJBQTJCOzs0RkFRbEIscUJBQXFCO2tCQWxCakMsU0FBUzsrQkFDRSxnQkFBZ0IsY0FDZCxJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixtQkFBbUI7d0JBQ25CLHFCQUFxQjt3QkFDckIsZUFBZTt3QkFDZiwwQkFBMEI7d0JBQzFCLHdCQUF3Qjt3QkFDeEIsMkJBQTJCO3FCQUM1QixpQkFHYyxpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCbWJUYWdDb21wb25lbnQgfSBmcm9tICcuLy4uL2JtYi10YWdzL2JtYi10YWdzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIGlucHV0LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgT25Jbml0LFxuICBvdXRwdXQsXG4gIG1vZGVsLFxuICBzaWduYWwsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIE9uQ2hhbmdlcyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgVmFsaWRhdG9yRm4gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBJQm1iRHJvcGRvd25JdGVtIH0gZnJvbSAnLi4vYm1iLWRyb3Bkb3duL2JtYi1kcm9wZG93bi5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgSUJtYklucHV0RXJyb3IsXG4gIElCbWJJbnB1dFRvb2x0aXBQb3NpdGlvbixcbn0gZnJvbSAnLi4vYm1iLWlucHV0L2JtYi1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2xpY2tPdXRzaWRlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy91dGlscy9jbGlja291dHNpZGUuZGlyZWN0aXZlJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgY29udmVydExpc3RUb1NlbGVjdExpc3QsXG4gIGZpbHRlcmVkVmFsdWUsXG4gIGdldFNlbGVjdGVkVmFsdWVzLFxuICBnZXRWYWxpZEluaXRpYWxWYWx1ZXMsXG59IGZyb20gJy4uLy4uL3V0aWxzL2Ryb3Bkb3duJztcbmltcG9ydCB7IEJtYklucHV0VmFsaWRhdG9yQ29tcG9uZW50IH0gZnJvbSAnLi4vYm1iLWlucHV0L2JtYi1pbnB1dC12YWxpZGF0b3IvYm1iLWlucHV0LXZhbGlkYXRvci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQm1iRHJvcGRvd25Db250ZW50Q29tcG9uZW50IH0gZnJvbSAnLi4vdXRpbHMvYm1iLWRyb3Bkb3duLWNvbnRlbnQvYm1iLWRyb3Bkb3duLWNvbnRlbnQuY29tcG9uZW50JztcbmltcG9ydCB7IElEcm9wZG93bkl0ZW0gfSBmcm9tICcuLi8uLi90eXBlcyc7XG5pbXBvcnQgeyBCbWJJbnB1dENvbnRlbnRDb21wb25lbnQgfSBmcm9tICcuLi9ibWItaW5wdXQvYm1iLWlucHV0LWNvbnRlbnQvYm1iLWlucHV0LWNvbnRlbnQuY29tcG9uZW50JztcbmltcG9ydCB7IGdldFVVSUQgfSBmcm9tICcuLi8uLi91dGlscy91dGlscyc7XG5pbXBvcnQge1xuICBhc3NpZ25OZXdGb3JtQ29udHJvbCxcbiAgaGFuZGxlVmFsaWRpdHksXG4gIG5ld0Zvcm1Db250cm9sQnlUeXBlLFxuICBzaG93RXJyb3IsXG59IGZyb20gJy4uLy4uL3V0aWxzL2Zvcm1Db250cm9sJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYm1iLWlucHV0LXRhZ3MnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgQ2xpY2tPdXRzaWRlRGlyZWN0aXZlLFxuICAgIEJtYlRhZ0NvbXBvbmVudCxcbiAgICBCbWJJbnB1dFZhbGlkYXRvckNvbXBvbmVudCxcbiAgICBCbWJJbnB1dENvbnRlbnRDb21wb25lbnQsXG4gICAgQm1iRHJvcGRvd25Db250ZW50Q29tcG9uZW50LFxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vYm1iLWlucHV0LXRhZ3MuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vYm1iLWlucHV0LXRhZ3MuY29tcG9uZW50LnNjc3MnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgQm1iSW5wdXRUYWdzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICBlcnJvck1lc3NhZ2UgPSBpbnB1dDxzdHJpbmcgfCBJQm1iSW5wdXRFcnJvcj4oJycpO1xuICB0b29sdGlwID0gaW5wdXQ8c3RyaW5nPignJyk7XG4gIHRvb2x0aXBQb3NpdGlvbiA9IGlucHV0PElCbWJJbnB1dFRvb2x0aXBQb3NpdGlvbj4oe1xuICAgIGFsaWduOiAnYWJvdmUnLFxuICAgIGp1c3RpZnk6ICdiZWZvcmUnLFxuICB9KTtcbiAgbGFiZWwgPSBpbnB1dDxzdHJpbmc+KCcnKTtcbiAgcGxhY2Vob2xkZXIgPSBpbnB1dDxzdHJpbmc+KCcnKTtcbiAgaXNSZXF1aXJlZCA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgaGVscGVyTWVzc2FnZSA9IGlucHV0PHN0cmluZz4oJycpO1xuICBkaXNhYmxlZCA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgbWF4U2VsZWN0ZWRJdGVtcyA9IGlucHV0PG51bWJlcj4oKTsgLy9EZXByZWNhdGVkXG4gIG5hbWUgPSBpbnB1dDxzdHJpbmc+KGdldFVVSUQoKSk7XG4gIHZhbHVlID0gaW5wdXQ8c3RyaW5nIHwgc3RyaW5nW10+KCcnKTtcbiAgc2hvd0Vycm9yID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICBpbnB1dElkID0gaW5wdXQ8c3RyaW5nPih0aGlzLm5hbWUoKSk7XG4gIGN1c3RvbVZhbGlkYXRpb24gPSBpbnB1dDxWYWxpZGF0b3JGbj4oKTtcblxuICB0YWdPcHRpb25zID0gbW9kZWw8c3RyaW5nW10gfCBJQm1iRHJvcGRvd25JdGVtW10+KFtdKTtcbiAgY29udHJvbCA9IG1vZGVsPEZvcm1Db250cm9sPihuZXdGb3JtQ29udHJvbEJ5VHlwZSgpKTtcblxuICBvbktleURvd24gPSBvdXRwdXQ8S2V5Ym9hcmRFdmVudD4oKTtcbiAgb25DaGFuZ2UgPSBvdXRwdXQ8c3RyaW5nW10+KCk7XG5cbiAgdXVpZDogc3RyaW5nID0gZ2V0VVVJRCgpO1xuICBzaG93RHJvcGRvd246IGJvb2xlYW4gPSBmYWxzZTtcbiAgc2VsZWN0ZWRUYWdzOiBJRHJvcGRvd25JdGVtW10gPSBbXTtcbiAgZmlsdGVyZWRPcHRpb25zOiBJRHJvcGRvd25JdGVtW10gPSBbXTtcbiAgZmlsdGVyQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgpO1xuICBpdGVtczogSURyb3Bkb3duSXRlbVtdID0gW107XG4gIGlzRm9jdXNlZCA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XG4gIGlzS2V5Ym9hcmRFdmVudDogYm9vbGVhbiA9IGZhbHNlO1xuICBpc0NvbnRyb2xOdWxsOiBib29sZWFuID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKCkpIHRoaXMuZmlsdGVyQ29udHJvbC5kaXNhYmxlKCk7XG4gICAgZWxzZSB0aGlzLmZpbHRlckNvbnRyb2wuZW5hYmxlKCk7XG5cbiAgICB0aGlzLmZpbHRlckNvbnRyb2wudmFsdWVDaGFuZ2VzXG4gICAgICAucGlwZShkZWJvdW5jZVRpbWUoMzAwKSlcbiAgICAgIC5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zID0gZmlsdGVyZWRWYWx1ZSh2YWx1ZSwgdGhpcy5pdGVtcyk7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH0pO1xuXG4gICAgdGhpcy5jb250cm9sKCkudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgodmFsdWUpID0+IHtcbiAgICAgIHRoaXMuc2V0U2VsZWN0ZWRUYWdzKHZhbHVlIHx8IFtdKTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuY29udHJvbCgpKSB7XG4gICAgICB0aGlzLmNvbnRyb2wuc2V0KGFzc2lnbk5ld0Zvcm1Db250cm9sKHRoaXMubmFtZSgpLCB0aGlzLmNvbnRyb2woKSkhKTtcbiAgICAgIHRoaXMuaXNDb250cm9sTnVsbCA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZXNbJ3RhZ09wdGlvbnMnXSkge1xuICAgICAgdGhpcy5pbml0T3B0aW9ucyhjaGFuZ2VzWyd0YWdPcHRpb25zJ10uY3VycmVudFZhbHVlKTtcbiAgICAgIHRoaXMuY29udHJvbCgpPy5zZXRWYWx1ZSh0aGlzLmdldFZhbGlkSW5pdGlhbFZhbHVlcygpKTtcbiAgICB9XG4gIH1cblxuICBpbml0T3B0aW9ucyhsaXN0OiBzdHJpbmdbXSB8IElCbWJEcm9wZG93bkl0ZW1bXSk6IHZvaWQge1xuICAgIHRoaXMuaXRlbXMgPSBjb252ZXJ0TGlzdFRvU2VsZWN0TGlzdChsaXN0KTtcbiAgICB0aGlzLml0ZW1zID0gdGhpcy5pdGVtcy5tYXAoKGVsZW1lbnQ6IElEcm9wZG93bkl0ZW0pID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLmVsZW1lbnQsXG4gICAgICAgIGFjdGlvbjogKCkgPT4ge1xuICAgICAgICAgIHRoaXMuc2V0U2VsZWN0ZWRWYWx1ZShlbGVtZW50KTtcbiAgICAgICAgfSxcbiAgICAgIH0gYXMgSURyb3Bkb3duSXRlbTtcbiAgICB9KTtcblxuICAgIHRoaXMuc2V0U2VsZWN0ZWRUYWdzKHRoaXMuZ2V0VmFsaWRJbml0aWFsVmFsdWVzKCkpO1xuXG4gICAgdGhpcy5maWx0ZXJlZE9wdGlvbnMgPSBbLi4udGhpcy5pdGVtc107XG4gIH1cblxuICBnZXRVVUlEKG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke25hbWV9XyR7dGhpcy5uYW1lKCl9XyR7dGhpcy51dWlkfWA7XG4gIH1cblxuICBnZXRWYWxpZEluaXRpYWxWYWx1ZXMoKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IGluaXRpYWxWYWx1ZTogc3RyaW5nW10gfCBzdHJpbmcgPSBnZXRWYWxpZEluaXRpYWxWYWx1ZXMoXG4gICAgICB0aGlzLmNvbnRyb2woKS52YWx1ZSxcbiAgICAgIHRoaXMudmFsdWUoKSxcbiAgICAgIHRoaXMudGFnT3B0aW9ucygpLFxuICAgICAgdHJ1ZSxcbiAgICApO1xuXG4gICAgcmV0dXJuIEFycmF5LmlzQXJyYXkoaW5pdGlhbFZhbHVlKSA/IGluaXRpYWxWYWx1ZSA6IFtdO1xuICB9XG5cbiAgc2V0U2VsZWN0ZWRWYWx1ZShlbGVtZW50OiBJRHJvcGRvd25JdGVtKTogdm9pZCB7XG4gICAgdGhpcy5jb250cm9sKCkuc2V0VmFsdWUoXG4gICAgICBnZXRTZWxlY3RlZFZhbHVlcyh0aGlzLmNvbnRyb2woKS52YWx1ZSwgZWxlbWVudC52YWx1ZSEpLFxuICAgICk7XG4gICAgdGhpcy5maWx0ZXJDb250cm9sLnNldFZhbHVlKCcnKTtcbiAgICB0aGlzLm9uQ2hhbmdlLmVtaXQodGhpcy5jb250cm9sKCkudmFsdWUpO1xuICB9XG5cbiAgc2V0U2VsZWN0ZWRUYWdzKGNvbnRyb2xWYWx1ZTogc3RyaW5nW10pOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkVGFncyA9IHRoaXMuaXRlbXMuZmlsdGVyKCh7IHZhbHVlIH0pID0+XG4gICAgICBjb250cm9sVmFsdWUuaW5jbHVkZXModmFsdWUhKSxcbiAgICApO1xuICB9XG5cbiAgcmVtb3ZlVGFnKHRhZzogSURyb3Bkb3duSXRlbSkge1xuICAgIHRoaXMuc2V0U2VsZWN0ZWRWYWx1ZSh0YWcpO1xuICB9XG5cbiAgb3Blbkxpc3QoKSB7XG4gICAgdGhpcy5zaG93RHJvcGRvd24gPSB0cnVlO1xuICB9XG5cbiAgY2xvc2VMaXN0KCkge1xuICAgIHRoaXMuc2hvd0Ryb3Bkb3duID0gZmFsc2U7XG4gICAgdGhpcy5pc0tleWJvYXJkRXZlbnQgPSBmYWxzZTtcbiAgfVxuXG4gIHNlbGVjdE9wdGlvbldpdGhLZXkodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICghIXZhbHVlKSB7XG4gICAgICBjb25zdCBzZWxlY3RlZExlbmd0aDogbnVtYmVyID0gdGhpcy5maWx0ZXJlZE9wdGlvbnMubGVuZ3RoO1xuXG4gICAgICBpZiAoISFzZWxlY3RlZExlbmd0aCkge1xuICAgICAgICB0aGlzLnNldFNlbGVjdGVkVmFsdWUodGhpcy5maWx0ZXJlZE9wdGlvbnNbMF0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5hZGRPcHRpb24odmFsdWUpO1xuICAgICAgICB0aGlzLnNldFNlbGVjdGVkVmFsdWUoXG4gICAgICAgICAgdGhpcy5maWx0ZXJlZE9wdGlvbnNbdGhpcy5maWx0ZXJlZE9wdGlvbnMubGVuZ3RoIC0gMV0sXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgYWRkT3B0aW9uKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAodHlwZW9mIHRoaXMudGFnT3B0aW9ucygpWzBdID09PSAnc3RyaW5nJykge1xuICAgICAgY29uc3QgbmV3VGFnT3B0aW9uczogc3RyaW5nW10gPSBbXG4gICAgICAgIC4uLih0aGlzLnRhZ09wdGlvbnMoKSBhcyBzdHJpbmdbXSksXG4gICAgICAgIHZhbHVlLFxuICAgICAgXTtcbiAgICAgIHRoaXMudGFnT3B0aW9ucy5zZXQoWy4uLm5ldyBTZXQobmV3VGFnT3B0aW9ucyldKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgbmV3T3B0aW9uOiBJQm1iRHJvcGRvd25JdGVtID0ge1xuICAgICAgICBuYW1lOiB2YWx1ZSxcbiAgICAgICAgdmFsdWUsXG4gICAgICAgIHNlbGVjdGVkVGV4dDogdmFsdWUsXG4gICAgICAgIGlkOiBnZXRVVUlEKCksXG4gICAgICB9O1xuICAgICAgY29uc3QgbmV3TGlzdDogSUJtYkRyb3Bkb3duSXRlbVtdID0gW1xuICAgICAgICAuLi4odGhpcy50YWdPcHRpb25zKCkgYXMgSUJtYkRyb3Bkb3duSXRlbVtdKSxcbiAgICAgICAgbmV3T3B0aW9uLFxuICAgICAgXTtcbiAgICAgIHRoaXMudGFnT3B0aW9ucy5zZXQoWy4uLm5ldyBTZXQobmV3TGlzdCldKTtcbiAgICB9XG5cbiAgICB0aGlzLmluaXRPcHRpb25zKHRoaXMudGFnT3B0aW9ucygpKTtcbiAgfVxuXG4gIGhhbmRsZUtleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBjb25zdCBrZXlib2FyZFZhbHVlc1RvT3BlbkRpYWxvZyA9IFsnICcsICdBcnJvd0Rvd24nLCAnRG93biddO1xuICAgIGNvbnN0IGtleWJvYXJkVmFsdWVzVG9BZGRPcHRpb24gPSBbJywnLCAnRW50ZXInXTtcblxuICAgIGlmIChrZXlib2FyZFZhbHVlc1RvT3BlbkRpYWxvZy5pbmNsdWRlcyhldmVudC5rZXkpKSB7XG4gICAgICBpZiAoIXRoaXMuc2hvd0Ryb3Bkb3duKSB7XG4gICAgICAgIHRoaXMuaXNLZXlib2FyZEV2ZW50ID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5vcGVuTGlzdCgpO1xuICAgICAgfVxuXG4gICAgICBpZiAoIXRoaXMuZmlsdGVyZWRPcHRpb25zLmxlbmd0aCkge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGtleWJvYXJkVmFsdWVzVG9BZGRPcHRpb24uaW5jbHVkZXMoZXZlbnQua2V5KSkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHRoaXMuc2VsZWN0T3B0aW9uV2l0aEtleSh0aGlzLmZpbHRlckNvbnRyb2wudmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIGhhbmRsZUZvY3VzKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5pc0ZvY3VzZWQuc2V0KHZhbHVlKTtcbiAgfVxuXG4gIGhhbmRsZVZhbGlkaXR5KCk6IHZvaWQge1xuICAgIGhhbmRsZVZhbGlkaXR5KHRoaXMuY29udHJvbCgpKTtcbiAgfVxuXG4gIGdldCBzaG91bGRTaG93RXJyb3IoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHNob3dFcnJvcih0aGlzLmNvbnRyb2woKSk7XG4gIH1cbn1cbiIsIjxibWItaW5wdXQtdmFsaWRhdG9yXG4gIGNsYXNzPVwiYm1iX2lucHV0LXRhZ3NcIlxuICBbbmFtZV09XCJuYW1lKClcIlxuICBbdmFsdWVdPVwiZ2V0VmFsaWRJbml0aWFsVmFsdWVzKClcIlxuICBbbGFiZWxdPVwibGFiZWwoKSFcIlxuICBbZXJyb3JNZXNzYWdlXT1cImVycm9yTWVzc2FnZSgpXCJcbiAgW2hlbHBlck1lc3NhZ2VdPVwiaGVscGVyTWVzc2FnZSgpXCJcbiAgW2lzUmVxdWlyZWRdPVwiaXNSZXF1aXJlZCgpXCJcbiAgW2lzRGlzYWJsZWRdPVwiZGlzYWJsZWQoKVwiXG4gIFtjb250cm9sXT1cImNvbnRyb2woKVwiXG4gIFtzaG93RXJyb3JdPVwic2hvdWxkU2hvd0Vycm9yXCJcbiAgW3Rvb2x0aXBdPVwidG9vbHRpcCgpXCJcbiAgW3Rvb2x0aXBQb3NpdGlvbl09XCJ0b29sdGlwUG9zaXRpb24oKVwiXG4gIFtjdXN0b21WYWxpZGF0aW9uXT1cImN1c3RvbVZhbGlkYXRpb24oKVwiXG4gIGNsaWNrT3V0c2lkZVxuICAoY2xpY2tPdXRzaWRlKT1cImNsb3NlTGlzdCgpXCJcbiAgW2lucHV0SWRdPVwiaW5wdXRJZCgpXCJcbj5cbiAgPHNlY3Rpb25cbiAgICBjbGFzcz1cImJtYl9pbnB1dC10YWdzLWNvbnRhaW5lclwiXG4gICAgW25nQ2xhc3NdPVwie1xuICAgICAgJ2JtYl9pbnB1dC10YWdzLWNvbnRhaW5lci1lcnJvcic6IHNob3VsZFNob3dFcnJvcixcbiAgICAgICdibWJfaW5wdXQtdGFncy1jb250YWluZXItZm9jdXMnOiBpc0ZvY3VzZWQoKVxuICAgIH1cIlxuICA+XG4gICAgPGJtYi1pbnB1dC1jb250ZW50XG4gICAgICBjbGFzcz1cImJtYl9pbnB1dC10YWdzLWZpbHRlclwiXG4gICAgICB0eXBlPVwidGV4dFwiXG4gICAgICBbaW5wdXRJZF09XCJpbnB1dElkKClcIlxuICAgICAgW25hbWVdPVwiZ2V0VVVJRCgnZmlsdGVyJylcIlxuICAgICAgW2NvbnRyb2xdPVwiZmlsdGVyQ29udHJvbFwiXG4gICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXIoKVwiXG4gICAgICAoY2xpY2spPVwib3Blbkxpc3QoKVwiXG4gICAgICAob25CbHVyKT1cImhhbmRsZVZhbGlkaXR5KClcIlxuICAgICAgKGtleWRvd24pPVwiaGFuZGxlS2V5RG93bigkZXZlbnQpXCJcbiAgICAgIChvbkZvY3VzKT1cImhhbmRsZUZvY3VzKCRldmVudClcIlxuICAgIC8+XG4gICAgQGlmICghIXNlbGVjdGVkVGFncyAmJiAhIXNlbGVjdGVkVGFncy5sZW5ndGgpIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJibWJfaW5wdXQtdGFncy1zZWxlY3RlZC1saXN0XCIgW3RhYkluZGV4XT1cIi0xXCI+XG4gICAgICAgIEBmb3IgKGl0ZW0gb2Ygc2VsZWN0ZWRUYWdzOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICA8Ym1iLXRhZ1xuICAgICAgICAgICAgW3RleHRdPVwiaXRlbS5zZWxlY3RlZFRleHQhXCJcbiAgICAgICAgICAgIFtkaXNtaXNzaWJsZV09XCJ0cnVlXCJcbiAgICAgICAgICAgIFtpc0Rpc2FibGVkXT1cImRpc2FibGVkKClcIlxuICAgICAgICAgICAgKGNsaWNrZWRUYWcpPVwicmVtb3ZlVGFnKGl0ZW0pXCJcbiAgICAgICAgICAgIChjbG9zZWRUYWcpPVwicmVtb3ZlVGFnKGl0ZW0pXCJcbiAgICAgICAgICAvPlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICB9XG4gIDwvc2VjdGlvbj5cbiAgPGlucHV0XG4gICAgaGlkZGVuXG4gICAgdHlwZT1cInRleHRcIlxuICAgIFtpZF09XCJuYW1lKClcIlxuICAgIFtuYW1lXT1cIm5hbWUoKVwiXG4gICAgW2Zvcm1Db250cm9sXT1cImNvbnRyb2woKVwiXG4gIC8+XG4gIDxkaWFsb2cgW29wZW5dPVwic2hvd0Ryb3Bkb3duXCIgY2xhc3M9XCJibWJfZ2VuZXJpYy1kaWFsb2dcIj5cbiAgICA8Ym1iLWRyb3Bkb3duLWNvbnRlbnRcbiAgICAgIGNsYXNzPVwiYm1iX2lucHV0LXRhZ3MtZGlhbG9nXCJcbiAgICAgIG5hbWU9XCJsaXN0XCJcbiAgICAgIFtzZWxlY3RlZE9wdGlvbl09XCJjb250cm9sKCkudmFsdWVcIlxuICAgICAgW2lzS2V5Ym9hcmRFdmVudF09XCJpc0tleWJvYXJkRXZlbnRcIlxuICAgICAgWyhpdGVtcyldPVwiZmlsdGVyZWRPcHRpb25zXCJcbiAgICAgIFsoaXNPcGVuKV09XCJzaG93RHJvcGRvd25cIlxuICAgIC8+XG4gIDwvZGlhbG9nPlxuPC9ibWItaW5wdXQtdmFsaWRhdG9yPlxuIl19