@bravobit/bb-foundation 0.21.6 → 0.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (261) hide show
  1. package/auth/lib/auth.interceptor.d.ts +1 -1
  2. package/auth/lib/auth.module.d.ts +4 -5
  3. package/auth/lib/auth.service.d.ts +4 -7
  4. package/auth/lib/directives/abstract.directive.d.ts +12 -0
  5. package/auth/lib/directives/authenticated.directive.d.ts +7 -4
  6. package/auth/lib/directives/permission.directive.d.ts +11 -11
  7. package/auth/lib/guards/anonymous.guard.d.ts +8 -5
  8. package/auth/lib/guards/authenticated.guard.d.ts +8 -5
  9. package/auth/lib/guards/permission.guard.d.ts +15 -0
  10. package/auth/lib/interfaces/config.interface.d.ts +14 -8
  11. package/auth/lib/interfaces/permission.interface.d.ts +6 -0
  12. package/auth/lib/interfaces/provider.interface.d.ts +10 -3
  13. package/auth/lib/permissions/permissions.handler.d.ts +9 -0
  14. package/auth/lib/permissions/permissions.service.d.ts +16 -0
  15. package/auth/lib/providers/email.provider.d.ts +2 -8
  16. package/auth/lib/providers/verify.provider.d.ts +2 -6
  17. package/auth/public_api.d.ts +4 -4
  18. package/controls/lib/checkbox/checkbox/checkbox.component.d.ts +5 -1
  19. package/controls/lib/control-error/control-error/control-error.animation.d.ts +1 -0
  20. package/controls/lib/control-error/control-error/control-error.component.d.ts +17 -0
  21. package/controls/lib/control-error/control-error-submit.directive.d.ts +15 -0
  22. package/controls/lib/control-error/control-error.defaults.d.ts +2 -0
  23. package/controls/lib/control-error/control-error.interface.d.ts +12 -0
  24. package/controls/lib/control-error/control-error.module.d.ts +9 -0
  25. package/controls/lib/controls.interfaces.d.ts +4 -0
  26. package/controls/lib/controls.module.d.ts +7 -2
  27. package/controls/lib/form-control/form-control/form-control.component.d.ts +31 -0
  28. package/controls/lib/form-control/form-control-addon/form-control-addon.component.d.ts +6 -0
  29. package/controls/lib/form-control/form-control-input.directive.d.ts +35 -0
  30. package/controls/lib/form-control/form-control.module.d.ts +11 -0
  31. package/controls/public_api.d.ts +9 -0
  32. package/dashboard/lib/dashboard/dashboard.component.d.ts +2 -1
  33. package/dialog/lib/dialog-confirm/dialog-confirm.component.d.ts +10 -5
  34. package/dialog/lib/dialog-container/dialog-container.animations.d.ts +1 -0
  35. package/dialog/lib/dialog-container/dialog-container.component.d.ts +5 -7
  36. package/dialog/lib/dialog-header/dialog-header.component.d.ts +1 -3
  37. package/dialog/lib/dialog-modal/dialog-modal.component.d.ts +7 -3
  38. package/dialog/lib/dialog-overlay/dialog-overlay.animations.d.ts +1 -0
  39. package/dialog/lib/dialog-overlay/dialog-overlay.component.d.ts +5 -7
  40. package/dialog/lib/dialog.service.d.ts +4 -3
  41. package/elements/lib/directives/focus-trap.directive.d.ts +1 -1
  42. package/elements/lib/directives/focus.directive.d.ts +1 -3
  43. package/elements/lib/pipes/file-image.pipe.d.ts +2 -1
  44. package/esm2020/auth/lib/auth.interceptor.mjs +9 -12
  45. package/esm2020/auth/lib/auth.module.mjs +7 -17
  46. package/esm2020/auth/lib/auth.service.mjs +29 -55
  47. package/esm2020/auth/lib/directives/abstract.directive.mjs +40 -0
  48. package/esm2020/auth/lib/directives/authenticated.directive.mjs +25 -14
  49. package/esm2020/auth/lib/directives/permission.directive.mjs +24 -46
  50. package/esm2020/auth/lib/guards/anonymous.guard.mjs +28 -19
  51. package/esm2020/auth/lib/guards/authenticated.guard.mjs +31 -20
  52. package/esm2020/auth/lib/guards/permission.guard.mjs +53 -0
  53. package/esm2020/auth/lib/helpers/jwt.helper.mjs +7 -7
  54. package/esm2020/auth/lib/interfaces/config.interface.mjs +1 -1
  55. package/esm2020/auth/lib/interfaces/permission.interface.mjs +2 -0
  56. package/esm2020/auth/lib/interfaces/provider.interface.mjs +1 -1
  57. package/esm2020/auth/lib/permissions/permissions.handler.mjs +33 -0
  58. package/esm2020/auth/lib/permissions/permissions.service.mjs +64 -0
  59. package/esm2020/auth/lib/providers/email.provider.mjs +8 -9
  60. package/esm2020/auth/lib/providers/verify.provider.mjs +8 -5
  61. package/esm2020/auth/public_api.mjs +5 -5
  62. package/esm2020/collections/lib/collections.module.mjs +4 -4
  63. package/esm2020/collections/lib/components/collections-pager/collections-pager.component.mjs +3 -3
  64. package/esm2020/collections/lib/components/collections-viewer/collections-viewer.component.mjs +3 -3
  65. package/esm2020/collections/lib/components/collections.directive.mjs +12 -12
  66. package/esm2020/controls/lib/checkbox/checkbox/checkbox.component.mjs +19 -6
  67. package/esm2020/controls/lib/checkbox/checkbox-group/checkbox-group.component.mjs +4 -4
  68. package/esm2020/controls/lib/checkbox/checkbox.module.mjs +4 -4
  69. package/esm2020/controls/lib/control-error/control-error/control-error.animation.mjs +14 -0
  70. package/esm2020/controls/lib/control-error/control-error/control-error.component.mjs +63 -0
  71. package/esm2020/controls/lib/control-error/control-error-submit.directive.mjs +47 -0
  72. package/esm2020/controls/lib/control-error/control-error.defaults.mjs +26 -0
  73. package/esm2020/controls/lib/control-error/control-error.interface.mjs +3 -0
  74. package/esm2020/controls/lib/control-error/control-error.module.mjs +19 -0
  75. package/esm2020/controls/lib/controls.interfaces.mjs +2 -0
  76. package/esm2020/controls/lib/controls.module.mjs +45 -8
  77. package/esm2020/controls/lib/form-control/form-control/form-control.component.mjs +94 -0
  78. package/esm2020/controls/lib/form-control/form-control-addon/form-control-addon.component.mjs +22 -0
  79. package/esm2020/controls/lib/form-control/form-control-input.directive.mjs +124 -0
  80. package/esm2020/controls/lib/form-control/form-control.module.mjs +33 -0
  81. package/esm2020/controls/public_api.mjs +10 -1
  82. package/esm2020/dashboard/lib/dashboard/dashboard.component.mjs +7 -6
  83. package/esm2020/dashboard/lib/dashboard-header/dashboard-header.component.mjs +3 -3
  84. package/esm2020/dashboard/lib/dashboard-menu/dashboard-menu.component.mjs +3 -3
  85. package/esm2020/dashboard/lib/dashboard-menu-item/dashboard-menu-item.component.mjs +3 -3
  86. package/esm2020/dashboard/lib/dashboard-sidebar/dashboard-sidebar.component.mjs +3 -3
  87. package/esm2020/dashboard/lib/dashboard-sidebar-group/dashboard-sidebar-group.component.mjs +3 -3
  88. package/esm2020/dashboard/lib/dashboard-sidebar-item/dashboard-sidebar-item.component.mjs +3 -3
  89. package/esm2020/dashboard/lib/dashboard.module.mjs +4 -4
  90. package/esm2020/dialog/lib/dialog-actions/dialog-actions.component.mjs +3 -3
  91. package/esm2020/dialog/lib/dialog-confirm/dialog-confirm.component.mjs +17 -11
  92. package/esm2020/dialog/lib/dialog-container/dialog-container.animations.mjs +29 -0
  93. package/esm2020/dialog/lib/dialog-container/dialog-container.component.mjs +28 -104
  94. package/esm2020/dialog/lib/dialog-header/dialog-header.component.mjs +7 -14
  95. package/esm2020/dialog/lib/dialog-link/dialog-link.component.mjs +4 -4
  96. package/esm2020/dialog/lib/dialog-modal/dialog-modal.component.mjs +29 -8
  97. package/esm2020/dialog/lib/dialog-overlay/dialog-overlay.animations.mjs +26 -0
  98. package/esm2020/dialog/lib/dialog-overlay/dialog-overlay.component.mjs +29 -84
  99. package/esm2020/dialog/lib/dialog.insertion.mjs +3 -3
  100. package/esm2020/dialog/lib/dialog.module.mjs +4 -4
  101. package/esm2020/dialog/lib/dialog.service.mjs +8 -7
  102. package/esm2020/elements/lib/avatar/avatar.component.mjs +8 -6
  103. package/esm2020/elements/lib/button/button.component.mjs +6 -6
  104. package/esm2020/elements/lib/checkbox/checkbox.component.mjs +3 -3
  105. package/esm2020/elements/lib/date-picker/date-picker.component.mjs +3 -3
  106. package/esm2020/elements/lib/directives/addon.directive.mjs +6 -6
  107. package/esm2020/elements/lib/directives/autosize.directive.mjs +3 -3
  108. package/esm2020/elements/lib/directives/focus-trap.directive.mjs +5 -5
  109. package/esm2020/elements/lib/directives/focus.directive.mjs +7 -9
  110. package/esm2020/elements/lib/directives/form-submit.directive.mjs +3 -3
  111. package/esm2020/elements/lib/directives/form-submitter.directive.mjs +3 -3
  112. package/esm2020/elements/lib/directives/input.directive.mjs +6 -6
  113. package/esm2020/elements/lib/directives/template.directive.mjs +3 -3
  114. package/esm2020/elements/lib/dropdown/dropdown.component.mjs +6 -6
  115. package/esm2020/elements/lib/elements.module.mjs +4 -4
  116. package/esm2020/elements/lib/file-picker/file-picker.component.mjs +3 -3
  117. package/esm2020/elements/lib/form-control/form-control.component.mjs +3 -3
  118. package/esm2020/elements/lib/form-error/form-error.component.mjs +3 -3
  119. package/esm2020/elements/lib/form-group/form-group.component.mjs +3 -3
  120. package/esm2020/elements/lib/icon/icon.component.mjs +3 -3
  121. package/esm2020/elements/lib/image-picker/image-picker.component.mjs +3 -3
  122. package/esm2020/elements/lib/pipes/file-image.pipe.mjs +8 -7
  123. package/esm2020/elements/lib/pipes/file-size.pipe.mjs +3 -3
  124. package/esm2020/elements/lib/pipes/relative-time.pipe.mjs +3 -3
  125. package/esm2020/elements/lib/spinner/spinner.component.mjs +3 -3
  126. package/esm2020/elements/lib/tag/tag.component.mjs +3 -3
  127. package/esm2020/http/lib/http.module.mjs +4 -4
  128. package/esm2020/http/lib/interceptors/base-url.interceptor.mjs +3 -3
  129. package/esm2020/http/lib/interceptors/error.interceptor.mjs +3 -3
  130. package/esm2020/lib/core/services/clipboard.service.mjs +5 -5
  131. package/esm2020/lib/core/services/exif.service.mjs +5 -5
  132. package/esm2020/lib/core/services/file-loader.service.mjs +3 -3
  133. package/esm2020/lib/core/services/image-converter.service.mjs +5 -5
  134. package/esm2020/lib/core/services/languages.service.mjs +3 -3
  135. package/esm2020/lib/core/services/network.service.mjs +7 -7
  136. package/esm2020/lib/core/services/patch.service.mjs +7 -7
  137. package/esm2020/localize/lib/localize.module.mjs +4 -4
  138. package/esm2020/localize/lib/localize.pipe.mjs +3 -3
  139. package/esm2020/localize/lib/localize.service.mjs +5 -5
  140. package/esm2020/localize/lib/views/localize-string/localize-string.component.mjs +3 -3
  141. package/esm2020/localize/lib/views/localize-template-or-string.directive.mjs +3 -3
  142. package/esm2020/localize/lib/views/localize-template.directive.mjs +3 -3
  143. package/esm2020/masking/lib/directives/currency-mask.directive.mjs +3 -3
  144. package/esm2020/masking/lib/directives/date-mask.directive.mjs +3 -3
  145. package/esm2020/masking/lib/directives/input-mask.directive.mjs +3 -3
  146. package/esm2020/masking/lib/masking.module.mjs +4 -4
  147. package/esm2020/masking/lib/masking.service.mjs +3 -3
  148. package/esm2020/notifications/lib/notifications-item/notifications-item.component.mjs +5 -5
  149. package/esm2020/notifications/lib/notifications-list/notifications-list.component.mjs +7 -7
  150. package/esm2020/notifications/lib/notifications.module.mjs +4 -4
  151. package/esm2020/notifications/lib/notifications.service.mjs +5 -5
  152. package/esm2020/public_api.mjs +1 -2
  153. package/esm2020/recaptcha/lib/recaptcha/recaptcha.component.mjs +3 -3
  154. package/esm2020/recaptcha/lib/recaptcha-loader.service.mjs +10 -10
  155. package/esm2020/recaptcha/lib/recaptcha.module.mjs +4 -4
  156. package/esm2020/storage/lib/storage.service.mjs +5 -5
  157. package/esm2020/table/lib/components/table/table.component.mjs +9 -9
  158. package/esm2020/table/lib/components/table-cell/table-cell.component.mjs +3 -3
  159. package/esm2020/table/lib/components/table-header-cell/table-header-cell.component.mjs +3 -3
  160. package/esm2020/table/lib/components/table-pager/table-pager.component.mjs +3 -3
  161. package/esm2020/table/lib/table.module.mjs +4 -4
  162. package/esm2020/theming/lib/themes/checkbox-group.theme.mjs +17 -2
  163. package/esm2020/theming/lib/themes/checkbox.theme.mjs +35 -2
  164. package/esm2020/theming/lib/themes/control-error.theme.mjs +11 -0
  165. package/esm2020/theming/lib/themes/form-control-addon.theme.mjs +6 -0
  166. package/esm2020/theming/lib/themes/form-control.theme.mjs +45 -0
  167. package/esm2020/theming/lib/theming.data.mjs +82 -0
  168. package/esm2020/theming/lib/theming.directive.mjs +38 -0
  169. package/esm2020/theming/lib/theming.interface.mjs +2 -3
  170. package/esm2020/theming/lib/theming.module.mjs +12 -34
  171. package/esm2020/theming/lib/utils/theming.variable.mjs +41 -0
  172. package/esm2020/theming/public_api.mjs +6 -3
  173. package/fesm2015/bravobit-bb-foundation-auth.mjs +326 -284
  174. package/fesm2015/bravobit-bb-foundation-auth.mjs.map +1 -1
  175. package/fesm2015/bravobit-bb-foundation-collections.mjs +22 -22
  176. package/fesm2015/bravobit-bb-foundation-controls.mjs +493 -24
  177. package/fesm2015/bravobit-bb-foundation-controls.mjs.map +1 -1
  178. package/fesm2015/bravobit-bb-foundation-dashboard.mjs +29 -28
  179. package/fesm2015/bravobit-bb-foundation-dashboard.mjs.map +1 -1
  180. package/fesm2015/bravobit-bb-foundation-dialog.mjs +185 -233
  181. package/fesm2015/bravobit-bb-foundation-dialog.mjs.map +1 -1
  182. package/fesm2015/bravobit-bb-foundation-elements.mjs +99 -97
  183. package/fesm2015/bravobit-bb-foundation-elements.mjs.map +1 -1
  184. package/fesm2015/bravobit-bb-foundation-http.mjs +10 -10
  185. package/fesm2015/bravobit-bb-foundation-localize.mjs +20 -20
  186. package/fesm2015/bravobit-bb-foundation-localize.mjs.map +1 -1
  187. package/fesm2015/bravobit-bb-foundation-masking.mjs +16 -16
  188. package/fesm2015/bravobit-bb-foundation-notifications.mjs +18 -17
  189. package/fesm2015/bravobit-bb-foundation-notifications.mjs.map +1 -1
  190. package/fesm2015/bravobit-bb-foundation-recaptcha.mjs +16 -16
  191. package/fesm2015/bravobit-bb-foundation-recaptcha.mjs.map +1 -1
  192. package/fesm2015/bravobit-bb-foundation-storage.mjs +4 -4
  193. package/fesm2015/bravobit-bb-foundation-storage.mjs.map +1 -1
  194. package/fesm2015/bravobit-bb-foundation-table.mjs +22 -22
  195. package/fesm2015/bravobit-bb-foundation-theming.mjs +251 -128
  196. package/fesm2015/bravobit-bb-foundation-theming.mjs.map +1 -1
  197. package/fesm2015/bravobit-bb-foundation.mjs +33 -73
  198. package/fesm2015/bravobit-bb-foundation.mjs.map +1 -1
  199. package/fesm2020/bravobit-bb-foundation-auth.mjs +306 -277
  200. package/fesm2020/bravobit-bb-foundation-auth.mjs.map +1 -1
  201. package/fesm2020/bravobit-bb-foundation-collections.mjs +22 -22
  202. package/fesm2020/bravobit-bb-foundation-controls.mjs +477 -24
  203. package/fesm2020/bravobit-bb-foundation-controls.mjs.map +1 -1
  204. package/fesm2020/bravobit-bb-foundation-dashboard.mjs +29 -28
  205. package/fesm2020/bravobit-bb-foundation-dashboard.mjs.map +1 -1
  206. package/fesm2020/bravobit-bb-foundation-dialog.mjs +175 -233
  207. package/fesm2020/bravobit-bb-foundation-dialog.mjs.map +1 -1
  208. package/fesm2020/bravobit-bb-foundation-elements.mjs +99 -97
  209. package/fesm2020/bravobit-bb-foundation-elements.mjs.map +1 -1
  210. package/fesm2020/bravobit-bb-foundation-http.mjs +10 -10
  211. package/fesm2020/bravobit-bb-foundation-localize.mjs +20 -20
  212. package/fesm2020/bravobit-bb-foundation-localize.mjs.map +1 -1
  213. package/fesm2020/bravobit-bb-foundation-masking.mjs +16 -16
  214. package/fesm2020/bravobit-bb-foundation-notifications.mjs +17 -17
  215. package/fesm2020/bravobit-bb-foundation-notifications.mjs.map +1 -1
  216. package/fesm2020/bravobit-bb-foundation-recaptcha.mjs +16 -16
  217. package/fesm2020/bravobit-bb-foundation-recaptcha.mjs.map +1 -1
  218. package/fesm2020/bravobit-bb-foundation-storage.mjs +4 -4
  219. package/fesm2020/bravobit-bb-foundation-storage.mjs.map +1 -1
  220. package/fesm2020/bravobit-bb-foundation-table.mjs +22 -22
  221. package/fesm2020/bravobit-bb-foundation-theming.mjs +252 -120
  222. package/fesm2020/bravobit-bb-foundation-theming.mjs.map +1 -1
  223. package/fesm2020/bravobit-bb-foundation.mjs +32 -70
  224. package/fesm2020/bravobit-bb-foundation.mjs.map +1 -1
  225. package/lib/core/services/clipboard.service.d.ts +2 -2
  226. package/lib/core/services/exif.service.d.ts +1 -1
  227. package/lib/core/services/image-converter.service.d.ts +1 -1
  228. package/lib/core/services/network.service.d.ts +4 -4
  229. package/lib/core/services/patch.service.d.ts +4 -4
  230. package/localize/lib/localize.service.d.ts +1 -1
  231. package/notifications/lib/notifications-item/notifications-item.component.d.ts +1 -1
  232. package/notifications/lib/notifications.service.d.ts +1 -1
  233. package/package.json +4 -4
  234. package/public_api.d.ts +0 -1
  235. package/recaptcha/lib/recaptcha-loader.service.d.ts +3 -3
  236. package/storage/lib/storage.service.d.ts +1 -1
  237. package/theming/lib/themes/checkbox-group.theme.d.ts +14 -3
  238. package/theming/lib/themes/checkbox.theme.d.ts +30 -17
  239. package/theming/lib/themes/control-error.theme.d.ts +9 -0
  240. package/theming/lib/themes/form-control-addon.theme.d.ts +5 -0
  241. package/theming/lib/themes/form-control.theme.d.ts +32 -0
  242. package/theming/lib/theming.data.d.ts +17 -0
  243. package/theming/lib/theming.directive.d.ts +13 -0
  244. package/theming/lib/theming.interface.d.ts +19 -8
  245. package/theming/lib/theming.module.d.ts +3 -9
  246. package/theming/lib/utils/theming.variable.d.ts +16 -0
  247. package/theming/public_api.d.ts +5 -2
  248. package/auth/lib/directives/role.directive.d.ts +0 -16
  249. package/auth/lib/helpers/mapper.helper.d.ts +0 -23
  250. package/auth/lib/interfaces/mapper.interface.d.ts +0 -19
  251. package/auth/lib/permissions.service.d.ts +0 -14
  252. package/esm2020/auth/lib/directives/role.directive.mjs +0 -37
  253. package/esm2020/auth/lib/helpers/mapper.helper.mjs +0 -35
  254. package/esm2020/auth/lib/interfaces/mapper.interface.mjs +0 -2
  255. package/esm2020/auth/lib/permissions.service.mjs +0 -56
  256. package/esm2020/lib/core/services/platform.service.mjs +0 -42
  257. package/esm2020/theming/lib/themes/theme.mjs +0 -34
  258. package/esm2020/theming/lib/theming.service.mjs +0 -77
  259. package/lib/core/services/platform.service.d.ts +0 -18
  260. package/theming/lib/themes/theme.d.ts +0 -12
  261. package/theming/lib/theming.service.d.ts +0 -22
@@ -0,0 +1,63 @@
1
+ import { ChangeDetectionStrategy, Component, HostBinding, Inject, Input, Optional, ViewEncapsulation } from '@angular/core';
2
+ import { BBI_CONTROL_ERRORS } from '../control-error.interface';
3
+ import { controlErrorAnimation } from './control-error.animation';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@bravobit/bb-foundation/localize";
6
+ export class BbiControlError {
7
+ constructor(_localize, _functions) {
8
+ this._localize = _localize;
9
+ this._functions = _functions;
10
+ // Readonly data.
11
+ this.errorFunctions = (this._functions ?? [])
12
+ .reduce((previous, current) => ({ ...previous, ...current }), {});
13
+ // Host bindings.
14
+ this.animation = true;
15
+ // State.
16
+ this.error = null;
17
+ }
18
+ // Inputs.
19
+ set errors(errors) {
20
+ this.error = this.parseError(errors);
21
+ }
22
+ parseError(errors) {
23
+ const errorName = Object.keys(errors ?? {})?.[0] ?? null;
24
+ if (!errorName) {
25
+ return null;
26
+ }
27
+ const errorFunction = this.errorFunctions?.[errorName] ?? this.errorFunctions?.['unknown'] ?? null;
28
+ if (!errorFunction) {
29
+ return null;
30
+ }
31
+ const errorData = errors?.[errorName] ?? {};
32
+ const result = errorFunction(errorData);
33
+ if (!result) {
34
+ return null;
35
+ }
36
+ const resultObject = typeof result === 'string' ? { token: result } : result;
37
+ return this.getErrorSentence(resultObject);
38
+ }
39
+ getErrorSentence(data) {
40
+ return !!this._localize
41
+ ? this._localize.translate(data)
42
+ : data?.token;
43
+ }
44
+ }
45
+ BbiControlError.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: BbiControlError, deps: [{ token: i1.Localize, optional: true }, { token: BBI_CONTROL_ERRORS, optional: true }], target: i0.ɵɵFactoryTarget.Component });
46
+ BbiControlError.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.1", type: BbiControlError, selector: "bbi-control-error", inputs: { errors: "errors" }, host: { properties: { "@errorAnimation": "this.animation" }, classAttribute: "bbi-control-error" }, ngImport: i0, template: "{{ error ?? '...' }}\n", styles: [".bbi-control-error{color:var(--control-error-color, var(--error-color, #bd322a));display:block;margin-top:var(--control-error-spacing, 4px);font-size:var(--control-error-font-size, 13px);font-weight:var(--control-error-font-weight, 400);line-height:var(--control-error-line-height, 1.5)}\n"], animations: [controlErrorAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
47
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: BbiControlError, decorators: [{
48
+ type: Component,
49
+ args: [{ selector: 'bbi-control-error', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: { 'class': 'bbi-control-error' }, preserveWhitespaces: false, animations: [controlErrorAnimation], template: "{{ error ?? '...' }}\n", styles: [".bbi-control-error{color:var(--control-error-color, var(--error-color, #bd322a));display:block;margin-top:var(--control-error-spacing, 4px);font-size:var(--control-error-font-size, 13px);font-weight:var(--control-error-font-weight, 400);line-height:var(--control-error-line-height, 1.5)}\n"] }]
50
+ }], ctorParameters: function () { return [{ type: i1.Localize, decorators: [{
51
+ type: Optional
52
+ }] }, { type: undefined, decorators: [{
53
+ type: Optional
54
+ }, {
55
+ type: Inject,
56
+ args: [BBI_CONTROL_ERRORS]
57
+ }] }]; }, propDecorators: { animation: [{
58
+ type: HostBinding,
59
+ args: ['@errorAnimation']
60
+ }], errors: [{
61
+ type: Input
62
+ }] } });
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbC1lcnJvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYi1mb3VuZGF0aW9uL2NvbnRyb2xzL3NyYy9saWIvY29udHJvbC1lcnJvci9jb250cm9sLWVycm9yL2NvbnRyb2wtZXJyb3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9jb250cm9scy9zcmMvbGliL2NvbnRyb2wtZXJyb3IvY29udHJvbC1lcnJvci9jb250cm9sLWVycm9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzFILE9BQU8sRUFBQyxrQkFBa0IsRUFBZSxNQUFNLDRCQUE0QixDQUFDO0FBQzVFLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLDJCQUEyQixDQUFDOzs7QUFjaEUsTUFBTSxPQUFPLGVBQWU7SUFrQnhCLFlBQWdDLFNBQW9CLEVBQ1EsVUFBMkI7UUFEdkQsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUNRLGVBQVUsR0FBVixVQUFVLENBQWlCO1FBakJ2RixpQkFBaUI7UUFDUixtQkFBYyxHQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLElBQUksRUFBRSxDQUFDO2FBQzFELE1BQU0sQ0FBQyxDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBQyxHQUFHLFFBQVEsRUFBRSxHQUFHLE9BQU8sRUFBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFcEUsaUJBQWlCO1FBQ2UsY0FBUyxHQUFZLElBQUksQ0FBQztRQVExRCxTQUFTO1FBQ1QsVUFBSyxHQUFrQixJQUFJLENBQUM7SUFJNUIsQ0FBQztJQVhELFVBQVU7SUFDVixJQUNJLE1BQU0sQ0FBQyxNQUErQjtRQUN0QyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQVNPLFVBQVUsQ0FBQyxNQUErQjtRQUM5QyxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQztRQUN6RCxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ1osT0FBTyxJQUFJLENBQUM7U0FDZjtRQUVELE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksSUFBSSxDQUFDO1FBQ25HLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDaEIsT0FBTyxJQUFJLENBQUM7U0FDZjtRQUVELE1BQU0sU0FBUyxHQUFHLE1BQU0sRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUM1QyxNQUFNLE1BQU0sR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDeEMsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNULE9BQU8sSUFBSSxDQUFDO1NBQ2Y7UUFFRCxNQUFNLFlBQVksR0FBRyxPQUFPLE1BQU0sS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUMsS0FBSyxFQUFFLE1BQU0sRUFBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDM0UsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVPLGdCQUFnQixDQUFDLElBQXVCO1FBQzVDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTO1lBQ25CLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUM7WUFDaEMsQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUM7SUFDdEIsQ0FBQzs7NEdBL0NRLGVBQWUsMERBbUJRLGtCQUFrQjtnR0FuQnpDLGVBQWUsMkxDaEI1Qix3QkFDQSw2VERhZ0IsQ0FBQyxxQkFBcUIsQ0FBQzsyRkFFMUIsZUFBZTtrQkFWM0IsU0FBUzsrQkFDSSxtQkFBbUIsbUJBR1osdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxRQUMvQixFQUFDLE9BQU8sRUFBRSxtQkFBbUIsRUFBQyx1QkFDZixLQUFLLGNBQ2QsQ0FBQyxxQkFBcUIsQ0FBQzs7MEJBb0J0QixRQUFROzswQkFDUixRQUFROzswQkFBSSxNQUFNOzJCQUFDLGtCQUFrQjs0Q0FabEIsU0FBUztzQkFBeEMsV0FBVzt1QkFBQyxpQkFBaUI7Z0JBSTFCLE1BQU07c0JBRFQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIEluamVjdCwgSW5wdXQsIE9wdGlvbmFsLCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0JCSV9DT05UUk9MX0VSUk9SUywgQ29udHJvbEVycm9yfSBmcm9tICcuLi9jb250cm9sLWVycm9yLmludGVyZmFjZSc7XG5pbXBvcnQge2NvbnRyb2xFcnJvckFuaW1hdGlvbn0gZnJvbSAnLi9jb250cm9sLWVycm9yLmFuaW1hdGlvbic7XG5pbXBvcnQge0xvY2FsaXplfSBmcm9tICdAYnJhdm9iaXQvYmItZm91bmRhdGlvbi9sb2NhbGl6ZSc7XG5pbXBvcnQge1ZhbGlkYXRpb25FcnJvcnN9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdiYmktY29udHJvbC1lcnJvcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NvbnRyb2wtZXJyb3IuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2NvbnRyb2wtZXJyb3IuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGhvc3Q6IHsnY2xhc3MnOiAnYmJpLWNvbnRyb2wtZXJyb3InfSxcbiAgICBwcmVzZXJ2ZVdoaXRlc3BhY2VzOiBmYWxzZSxcbiAgICBhbmltYXRpb25zOiBbY29udHJvbEVycm9yQW5pbWF0aW9uXVxufSlcbmV4cG9ydCBjbGFzcyBCYmlDb250cm9sRXJyb3Ige1xuXG4gICAgLy8gUmVhZG9ubHkgZGF0YS5cbiAgICByZWFkb25seSBlcnJvckZ1bmN0aW9uczogQ29udHJvbEVycm9yID0gKHRoaXMuX2Z1bmN0aW9ucyA/PyBbXSlcbiAgICAgICAgLnJlZHVjZSgocHJldmlvdXMsIGN1cnJlbnQpID0+ICh7Li4ucHJldmlvdXMsIC4uLmN1cnJlbnR9KSwge30pO1xuXG4gICAgLy8gSG9zdCBiaW5kaW5ncy5cbiAgICBASG9zdEJpbmRpbmcoJ0BlcnJvckFuaW1hdGlvbicpIGFuaW1hdGlvbjogYm9vbGVhbiA9IHRydWU7XG5cbiAgICAvLyBJbnB1dHMuXG4gICAgQElucHV0KClcbiAgICBzZXQgZXJyb3JzKGVycm9yczogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwpIHtcbiAgICAgICAgdGhpcy5lcnJvciA9IHRoaXMucGFyc2VFcnJvcihlcnJvcnMpO1xuICAgIH1cblxuICAgIC8vIFN0YXRlLlxuICAgIGVycm9yOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICAgIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIHByaXZhdGUgX2xvY2FsaXplPzogTG9jYWxpemUsXG4gICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChCQklfQ09OVFJPTF9FUlJPUlMpIHByaXZhdGUgX2Z1bmN0aW9ucz86IENvbnRyb2xFcnJvcltdKSB7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBwYXJzZUVycm9yKGVycm9yczogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwpIHtcbiAgICAgICAgY29uc3QgZXJyb3JOYW1lID0gT2JqZWN0LmtleXMoZXJyb3JzID8/IHt9KT8uWzBdID8/IG51bGw7XG4gICAgICAgIGlmICghZXJyb3JOYW1lKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGVycm9yRnVuY3Rpb24gPSB0aGlzLmVycm9yRnVuY3Rpb25zPy5bZXJyb3JOYW1lXSA/PyB0aGlzLmVycm9yRnVuY3Rpb25zPy5bJ3Vua25vd24nXSA/PyBudWxsO1xuICAgICAgICBpZiAoIWVycm9yRnVuY3Rpb24pIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZXJyb3JEYXRhID0gZXJyb3JzPy5bZXJyb3JOYW1lXSA/PyB7fTtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gZXJyb3JGdW5jdGlvbihlcnJvckRhdGEpO1xuICAgICAgICBpZiAoIXJlc3VsdCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCByZXN1bHRPYmplY3QgPSB0eXBlb2YgcmVzdWx0ID09PSAnc3RyaW5nJyA/IHt0b2tlbjogcmVzdWx0fSA6IHJlc3VsdDtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RXJyb3JTZW50ZW5jZShyZXN1bHRPYmplY3QpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0RXJyb3JTZW50ZW5jZShkYXRhOiB7IHRva2VuOiBzdHJpbmcgfSkge1xuICAgICAgICByZXR1cm4gISF0aGlzLl9sb2NhbGl6ZVxuICAgICAgICAgICAgPyB0aGlzLl9sb2NhbGl6ZS50cmFuc2xhdGUoZGF0YSlcbiAgICAgICAgICAgIDogZGF0YT8udG9rZW47XG4gICAgfVxuXG59XG4iLCJ7eyBlcnJvciA/PyAnLi4uJyB9fVxuIl19
@@ -0,0 +1,47 @@
1
+ import { BehaviorSubject, fromEvent, merge, Subscription } from 'rxjs';
2
+ import { Directive } from '@angular/core';
3
+ import { map } from 'rxjs/operators';
4
+ import * as i0 from "@angular/core";
5
+ export class BbiControlErrorSubmit {
6
+ constructor(_elementRef) {
7
+ this._elementRef = _elementRef;
8
+ // State.
9
+ this._submitted$ = new BehaviorSubject(false);
10
+ // Subscriptions.
11
+ this._subscription = new Subscription();
12
+ }
13
+ ngOnInit() {
14
+ this.handleNativeForm();
15
+ }
16
+ get submitted() {
17
+ return this._submitted$.getValue();
18
+ }
19
+ submit() {
20
+ this._submitted$.next(true);
21
+ }
22
+ reset() {
23
+ this._submitted$.next(false);
24
+ }
25
+ handleNativeForm() {
26
+ const element = this._elementRef?.nativeElement;
27
+ if (!element) {
28
+ return;
29
+ }
30
+ const formSubmit$ = fromEvent(element, 'submit').pipe(map(() => true));
31
+ const formReset$ = fromEvent(element, 'reset').pipe(map(() => false));
32
+ const subscription = merge(formSubmit$, formReset$).subscribe(submitted => {
33
+ this._submitted$.next(submitted);
34
+ });
35
+ this._subscription.add(subscription);
36
+ }
37
+ }
38
+ BbiControlErrorSubmit.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: BbiControlErrorSubmit, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
39
+ BbiControlErrorSubmit.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.1.1", type: BbiControlErrorSubmit, selector: "form", exportAs: ["bbiControlErrorSubmit"], ngImport: i0 });
40
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: BbiControlErrorSubmit, decorators: [{
41
+ type: Directive,
42
+ args: [{
43
+ selector: 'form',
44
+ exportAs: 'bbiControlErrorSubmit'
45
+ }]
46
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }]; } });
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbC1lcnJvci1zdWJtaXQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9jb250cm9scy9zcmMvbGliL2NvbnRyb2wtZXJyb3IvY29udHJvbC1lcnJvci1zdWJtaXQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxlQUFlLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDckUsT0FBTyxFQUFDLFNBQVMsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDOztBQU1uQyxNQUFNLE9BQU8scUJBQXFCO0lBUTlCLFlBQW9CLFdBQXdDO1FBQXhDLGdCQUFXLEdBQVgsV0FBVyxDQUE2QjtRQU41RCxTQUFTO1FBQ0QsZ0JBQVcsR0FBRyxJQUFJLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVqRCxpQkFBaUI7UUFDVCxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFHM0MsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBSSxTQUFTO1FBQ1QsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxNQUFNO1FBQ0YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELEtBQUs7UUFDRCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRU8sZ0JBQWdCO1FBQ3BCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsYUFBYSxDQUFDO1FBQ2hELElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDVixPQUFPO1NBQ1Y7UUFFRCxNQUFNLFdBQVcsR0FBRyxTQUFTLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FDakQsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUNsQixDQUFDO1FBRUYsTUFBTSxVQUFVLEdBQUcsU0FBUyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQy9DLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FDbkIsQ0FBQztRQUVGLE1BQU0sWUFBWSxHQUFHLEtBQUssQ0FBQyxXQUFXLEVBQUUsVUFBVSxDQUFDLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQ3RFLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3JDLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDekMsQ0FBQzs7a0hBN0NRLHFCQUFxQjtzR0FBckIscUJBQXFCOzJGQUFyQixxQkFBcUI7a0JBSmpDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLE1BQU07b0JBQ2hCLFFBQVEsRUFBRSx1QkFBdUI7aUJBQ3BDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIGZyb21FdmVudCwgbWVyZ2UsIFN1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0RpcmVjdGl2ZSwgRWxlbWVudFJlZiwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7bWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnZm9ybScsXG4gICAgZXhwb3J0QXM6ICdiYmlDb250cm9sRXJyb3JTdWJtaXQnXG59KVxuZXhwb3J0IGNsYXNzIEJiaUNvbnRyb2xFcnJvclN1Ym1pdCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgICAvLyBTdGF0ZS5cbiAgICBwcml2YXRlIF9zdWJtaXR0ZWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG5cbiAgICAvLyBTdWJzY3JpcHRpb25zLlxuICAgIHByaXZhdGUgX3N1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEZvcm1FbGVtZW50Pikge1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLmhhbmRsZU5hdGl2ZUZvcm0oKTtcbiAgICB9XG5cbiAgICBnZXQgc3VibWl0dGVkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fc3VibWl0dGVkJC5nZXRWYWx1ZSgpO1xuICAgIH1cblxuICAgIHN1Ym1pdCgpIHtcbiAgICAgICAgdGhpcy5fc3VibWl0dGVkJC5uZXh0KHRydWUpO1xuICAgIH1cblxuICAgIHJlc2V0KCkge1xuICAgICAgICB0aGlzLl9zdWJtaXR0ZWQkLm5leHQoZmFsc2UpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaGFuZGxlTmF0aXZlRm9ybSgpIHtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMuX2VsZW1lbnRSZWY/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGlmICghZWxlbWVudCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZm9ybVN1Ym1pdCQgPSBmcm9tRXZlbnQoZWxlbWVudCwgJ3N1Ym1pdCcpLnBpcGUoXG4gICAgICAgICAgICBtYXAoKCkgPT4gdHJ1ZSlcbiAgICAgICAgKTtcblxuICAgICAgICBjb25zdCBmb3JtUmVzZXQkID0gZnJvbUV2ZW50KGVsZW1lbnQsICdyZXNldCcpLnBpcGUoXG4gICAgICAgICAgICBtYXAoKCkgPT4gZmFsc2UpXG4gICAgICAgICk7XG5cbiAgICAgICAgY29uc3Qgc3Vic2NyaXB0aW9uID0gbWVyZ2UoZm9ybVN1Ym1pdCQsIGZvcm1SZXNldCQpLnN1YnNjcmliZShzdWJtaXR0ZWQgPT4ge1xuICAgICAgICAgICAgdGhpcy5fc3VibWl0dGVkJC5uZXh0KHN1Ym1pdHRlZCk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb24uYWRkKHN1YnNjcmlwdGlvbik7XG4gICAgfVxuXG59XG4iXX0=
@@ -0,0 +1,26 @@
1
+ export const controlErrorDefaults = {
2
+ unknown: () => 'form-control-errors.unknown',
3
+ required: () => 'form-control-errors.required',
4
+ pattern: () => 'form-control-errors.pattern',
5
+ email: () => 'form-control-errors.email',
6
+ emailTaken: () => 'form-control-errors.emailTaken',
7
+ passwordMatch: () => 'form-control-errors.passwordMatch',
8
+ confirm: () => 'form-control-errors.confirm',
9
+ fullNumber: () => 'form-control-errors.fullNumber',
10
+ min: ({ min }) => ({ token: 'form-control-errors.min', data: { min } }),
11
+ max: ({ max }) => ({ token: 'form-control-errors.max', data: { max } }),
12
+ maxFileSize: ({ maxSize }) => ({ token: 'form-control-errors.maxFileSize', data: { maxSize } }),
13
+ minDate: ({ date }) => ({ token: 'form-control-errors.minDate', data: { date } }),
14
+ maxDate: ({ date }) => ({ token: 'form-control-errors.maxDate', data: { date } }),
15
+ invalidDate: () => 'form-control-errors.invalidDate',
16
+ invalidFileType: () => 'form-control-errors.invalidFileType',
17
+ minlength: ({ requiredLength, actualLength }) => ({
18
+ token: 'form-control-errors.minlength',
19
+ data: { requiredLength, actualLength }
20
+ }),
21
+ maxlength: ({ requiredLength, actualLength }) => ({
22
+ token: 'form-control-errors.maxlength',
23
+ data: { requiredLength, actualLength }
24
+ })
25
+ };
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbC1lcnJvci5kZWZhdWx0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vY29udHJvbHMvc3JjL2xpYi9jb250cm9sLWVycm9yL2NvbnRyb2wtZXJyb3IuZGVmYXVsdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQWlCO0lBQzlDLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyw2QkFBNkI7SUFDNUMsUUFBUSxFQUFFLEdBQUcsRUFBRSxDQUFDLDhCQUE4QjtJQUM5QyxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsNkJBQTZCO0lBQzVDLEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQywyQkFBMkI7SUFDeEMsVUFBVSxFQUFFLEdBQUcsRUFBRSxDQUFDLGdDQUFnQztJQUNsRCxhQUFhLEVBQUUsR0FBRyxFQUFFLENBQUMsbUNBQW1DO0lBQ3hELE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyw2QkFBNkI7SUFDNUMsVUFBVSxFQUFFLEdBQUcsRUFBRSxDQUFDLGdDQUFnQztJQUNsRCxHQUFHLEVBQUUsQ0FBQyxFQUFDLEdBQUcsRUFBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUMsS0FBSyxFQUFFLHlCQUF5QixFQUFFLElBQUksRUFBRSxFQUFDLEdBQUcsRUFBQyxFQUFDLENBQUM7SUFDakUsR0FBRyxFQUFFLENBQUMsRUFBQyxHQUFHLEVBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFDLEtBQUssRUFBRSx5QkFBeUIsRUFBRSxJQUFJLEVBQUUsRUFBQyxHQUFHLEVBQUMsRUFBQyxDQUFDO0lBQ2pFLFdBQVcsRUFBRSxDQUFDLEVBQUMsT0FBTyxFQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBQyxLQUFLLEVBQUUsaUNBQWlDLEVBQUUsSUFBSSxFQUFFLEVBQUMsT0FBTyxFQUFDLEVBQUMsQ0FBQztJQUN6RixPQUFPLEVBQUUsQ0FBQyxFQUFDLElBQUksRUFBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUMsS0FBSyxFQUFFLDZCQUE2QixFQUFFLElBQUksRUFBRSxFQUFDLElBQUksRUFBQyxFQUFDLENBQUM7SUFDM0UsT0FBTyxFQUFFLENBQUMsRUFBQyxJQUFJLEVBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFDLEtBQUssRUFBRSw2QkFBNkIsRUFBRSxJQUFJLEVBQUUsRUFBQyxJQUFJLEVBQUMsRUFBQyxDQUFDO0lBQzNFLFdBQVcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxpQ0FBaUM7SUFDcEQsZUFBZSxFQUFFLEdBQUcsRUFBRSxDQUFDLHFDQUFxQztJQUM1RCxTQUFTLEVBQUUsQ0FBQyxFQUFDLGNBQWMsRUFBRSxZQUFZLEVBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM1QyxLQUFLLEVBQUUsK0JBQStCO1FBQ3RDLElBQUksRUFBRSxFQUFDLGNBQWMsRUFBRSxZQUFZLEVBQUM7S0FDdkMsQ0FBQztJQUNGLFNBQVMsRUFBRSxDQUFDLEVBQUMsY0FBYyxFQUFFLFlBQVksRUFBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzVDLEtBQUssRUFBRSwrQkFBK0I7UUFDdEMsSUFBSSxFQUFFLEVBQUMsY0FBYyxFQUFFLFlBQVksRUFBQztLQUN2QyxDQUFDO0NBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29udHJvbEVycm9yfSBmcm9tICcuL2NvbnRyb2wtZXJyb3IuaW50ZXJmYWNlJztcblxuZXhwb3J0IGNvbnN0IGNvbnRyb2xFcnJvckRlZmF1bHRzOiBDb250cm9sRXJyb3IgPSB7XG4gICAgdW5rbm93bjogKCkgPT4gJ2Zvcm0tY29udHJvbC1lcnJvcnMudW5rbm93bicsXG4gICAgcmVxdWlyZWQ6ICgpID0+ICdmb3JtLWNvbnRyb2wtZXJyb3JzLnJlcXVpcmVkJyxcbiAgICBwYXR0ZXJuOiAoKSA9PiAnZm9ybS1jb250cm9sLWVycm9ycy5wYXR0ZXJuJyxcbiAgICBlbWFpbDogKCkgPT4gJ2Zvcm0tY29udHJvbC1lcnJvcnMuZW1haWwnLFxuICAgIGVtYWlsVGFrZW46ICgpID0+ICdmb3JtLWNvbnRyb2wtZXJyb3JzLmVtYWlsVGFrZW4nLFxuICAgIHBhc3N3b3JkTWF0Y2g6ICgpID0+ICdmb3JtLWNvbnRyb2wtZXJyb3JzLnBhc3N3b3JkTWF0Y2gnLFxuICAgIGNvbmZpcm06ICgpID0+ICdmb3JtLWNvbnRyb2wtZXJyb3JzLmNvbmZpcm0nLFxuICAgIGZ1bGxOdW1iZXI6ICgpID0+ICdmb3JtLWNvbnRyb2wtZXJyb3JzLmZ1bGxOdW1iZXInLFxuICAgIG1pbjogKHttaW59KSA9PiAoe3Rva2VuOiAnZm9ybS1jb250cm9sLWVycm9ycy5taW4nLCBkYXRhOiB7bWlufX0pLFxuICAgIG1heDogKHttYXh9KSA9PiAoe3Rva2VuOiAnZm9ybS1jb250cm9sLWVycm9ycy5tYXgnLCBkYXRhOiB7bWF4fX0pLFxuICAgIG1heEZpbGVTaXplOiAoe21heFNpemV9KSA9PiAoe3Rva2VuOiAnZm9ybS1jb250cm9sLWVycm9ycy5tYXhGaWxlU2l6ZScsIGRhdGE6IHttYXhTaXplfX0pLFxuICAgIG1pbkRhdGU6ICh7ZGF0ZX0pID0+ICh7dG9rZW46ICdmb3JtLWNvbnRyb2wtZXJyb3JzLm1pbkRhdGUnLCBkYXRhOiB7ZGF0ZX19KSxcbiAgICBtYXhEYXRlOiAoe2RhdGV9KSA9PiAoe3Rva2VuOiAnZm9ybS1jb250cm9sLWVycm9ycy5tYXhEYXRlJywgZGF0YToge2RhdGV9fSksXG4gICAgaW52YWxpZERhdGU6ICgpID0+ICdmb3JtLWNvbnRyb2wtZXJyb3JzLmludmFsaWREYXRlJyxcbiAgICBpbnZhbGlkRmlsZVR5cGU6ICgpID0+ICdmb3JtLWNvbnRyb2wtZXJyb3JzLmludmFsaWRGaWxlVHlwZScsXG4gICAgbWlubGVuZ3RoOiAoe3JlcXVpcmVkTGVuZ3RoLCBhY3R1YWxMZW5ndGh9KSA9PiAoe1xuICAgICAgICB0b2tlbjogJ2Zvcm0tY29udHJvbC1lcnJvcnMubWlubGVuZ3RoJyxcbiAgICAgICAgZGF0YToge3JlcXVpcmVkTGVuZ3RoLCBhY3R1YWxMZW5ndGh9XG4gICAgfSksXG4gICAgbWF4bGVuZ3RoOiAoe3JlcXVpcmVkTGVuZ3RoLCBhY3R1YWxMZW5ndGh9KSA9PiAoe1xuICAgICAgICB0b2tlbjogJ2Zvcm0tY29udHJvbC1lcnJvcnMubWF4bGVuZ3RoJyxcbiAgICAgICAgZGF0YToge3JlcXVpcmVkTGVuZ3RoLCBhY3R1YWxMZW5ndGh9XG4gICAgfSlcbn07XG4iXX0=
@@ -0,0 +1,3 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ export const BBI_CONTROL_ERRORS = new InjectionToken('bbi_control_errors');
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbC1lcnJvci5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYi1mb3VuZGF0aW9uL2NvbnRyb2xzL3NyYy9saWIvY29udHJvbC1lcnJvci9jb250cm9sLWVycm9yLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBUTdDLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFtQyxJQUFJLGNBQWMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3Rpb25Ub2tlbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCB0eXBlIENvbnRyb2xFcnJvckRhdGEgPSB7IFtrZXk6IHN0cmluZ106IGFueSB9O1xuXG5leHBvcnQgdHlwZSBDb250cm9sRXJyb3IgPSB7XG4gICAgW25hbWU6IHN0cmluZ106IChkYXRhOiBDb250cm9sRXJyb3JEYXRhKSA9PiBzdHJpbmcgfCB7IHRva2VuOiBzdHJpbmcsIGRhdGE6IG9iamVjdCB9O1xufVxuXG5leHBvcnQgY29uc3QgQkJJX0NPTlRST0xfRVJST1JTOiBJbmplY3Rpb25Ub2tlbjxDb250cm9sRXJyb3JbXT4gPSBuZXcgSW5qZWN0aW9uVG9rZW4oJ2JiaV9jb250cm9sX2Vycm9ycycpO1xuXG5leHBvcnQgdHlwZSBDb250cm9sRXJyb3JNb2RlID0gJ2JsdXInIHwgJ2NoYW5nZXMnIHwgJ2hpZGRlbic7XG4iXX0=
@@ -0,0 +1,19 @@
1
+ import { BbiControlError } from './control-error/control-error.component';
2
+ import { BbiControlErrorSubmit } from './control-error-submit.directive';
3
+ import { CommonModule } from '@angular/common';
4
+ import { NgModule } from '@angular/core';
5
+ import * as i0 from "@angular/core";
6
+ export class ControlErrorModule {
7
+ }
8
+ ControlErrorModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: ControlErrorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9
+ ControlErrorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.1.1", ngImport: i0, type: ControlErrorModule, declarations: [BbiControlError, BbiControlErrorSubmit], imports: [CommonModule], exports: [BbiControlError, BbiControlErrorSubmit] });
10
+ ControlErrorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: ControlErrorModule, imports: [CommonModule] });
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: ControlErrorModule, decorators: [{
12
+ type: NgModule,
13
+ args: [{
14
+ imports: [CommonModule],
15
+ declarations: [BbiControlError, BbiControlErrorSubmit],
16
+ exports: [BbiControlError, BbiControlErrorSubmit]
17
+ }]
18
+ }] });
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbC1lcnJvci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYi1mb3VuZGF0aW9uL2NvbnRyb2xzL3NyYy9saWIvY29udHJvbC1lcnJvci9jb250cm9sLWVycm9yLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFDeEUsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDdkUsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7O0FBT3ZDLE1BQU0sT0FBTyxrQkFBa0I7OytHQUFsQixrQkFBa0I7Z0hBQWxCLGtCQUFrQixpQkFIWixlQUFlLEVBQUUscUJBQXFCLGFBRDNDLFlBQVksYUFFWixlQUFlLEVBQUUscUJBQXFCO2dIQUV2QyxrQkFBa0IsWUFKakIsWUFBWTsyRkFJYixrQkFBa0I7a0JBTDlCLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO29CQUN2QixZQUFZLEVBQUUsQ0FBQyxlQUFlLEVBQUUscUJBQXFCLENBQUM7b0JBQ3RELE9BQU8sRUFBRSxDQUFDLGVBQWUsRUFBRSxxQkFBcUIsQ0FBQztpQkFDcEQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0JiaUNvbnRyb2xFcnJvcn0gZnJvbSAnLi9jb250cm9sLWVycm9yL2NvbnRyb2wtZXJyb3IuY29tcG9uZW50JztcbmltcG9ydCB7QmJpQ29udHJvbEVycm9yU3VibWl0fSBmcm9tICcuL2NvbnRyb2wtZXJyb3Itc3VibWl0LmRpcmVjdGl2ZSc7XG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICAgIGRlY2xhcmF0aW9uczogW0JiaUNvbnRyb2xFcnJvciwgQmJpQ29udHJvbEVycm9yU3VibWl0XSxcbiAgICBleHBvcnRzOiBbQmJpQ29udHJvbEVycm9yLCBCYmlDb250cm9sRXJyb3JTdWJtaXRdXG59KVxuZXhwb3J0IGNsYXNzIENvbnRyb2xFcnJvck1vZHVsZSB7XG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbHMuaW50ZXJmYWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vY29udHJvbHMvc3JjL2xpYi9jb250cm9scy5pbnRlcmZhY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbnRyb2xFcnJvcn0gZnJvbSAnLi9jb250cm9sLWVycm9yL2NvbnRyb2wtZXJyb3IuaW50ZXJmYWNlJztcblxuZXhwb3J0IGludGVyZmFjZSBDb250cm9sc0NvbmZpZyB7XG4gICAgZXJyb3JzPzogQ29udHJvbEVycm9yO1xufVxuIl19
@@ -1,16 +1,53 @@
1
- import { CheckboxModule } from './checkbox/checkbox.module';
1
+ import { controlErrorDefaults } from './control-error/control-error.defaults';
2
+ import { BBI_CONTROL_ERRORS } from './control-error/control-error.interface';
3
+ import { ControlErrorModule } from './control-error/control-error.module';
4
+ import { FormControlModule } from './form-control/form-control.module';
2
5
  import { NgModule } from '@angular/core';
6
+ import { CheckboxModule } from './checkbox/checkbox.module';
3
7
  import * as i0 from "@angular/core";
4
8
  export class ControlsModule {
9
+ static forRoot(config) {
10
+ return {
11
+ ngModule: ControlsModule,
12
+ providers: [
13
+ {
14
+ provide: BBI_CONTROL_ERRORS,
15
+ useValue: { ...controlErrorDefaults, ...(config?.errors ?? {}) },
16
+ multi: true
17
+ },
18
+ {
19
+ provide: null,
20
+ useFactory: () => '',
21
+ multi: true
22
+ }
23
+ ]
24
+ };
25
+ }
5
26
  }
6
- ControlsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: ControlsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
7
- ControlsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.5", ngImport: i0, type: ControlsModule, imports: [CheckboxModule], exports: [CheckboxModule] });
8
- ControlsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: ControlsModule, imports: [CheckboxModule, CheckboxModule] });
9
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: ControlsModule, decorators: [{
27
+ ControlsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: ControlsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
28
+ ControlsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.1.1", ngImport: i0, type: ControlsModule, imports: [FormControlModule,
29
+ CheckboxModule,
30
+ ControlErrorModule], exports: [FormControlModule,
31
+ CheckboxModule,
32
+ ControlErrorModule] });
33
+ ControlsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: ControlsModule, imports: [FormControlModule,
34
+ CheckboxModule,
35
+ ControlErrorModule, FormControlModule,
36
+ CheckboxModule,
37
+ ControlErrorModule] });
38
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: ControlsModule, decorators: [{
10
39
  type: NgModule,
11
40
  args: [{
12
- imports: [CheckboxModule],
13
- exports: [CheckboxModule]
41
+ imports: [
42
+ FormControlModule,
43
+ CheckboxModule,
44
+ ControlErrorModule
45
+ ],
46
+ exports: [
47
+ FormControlModule,
48
+ CheckboxModule,
49
+ ControlErrorModule
50
+ ]
14
51
  }]
15
52
  }] });
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbHMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9jb250cm9scy9zcmMvbGliL2NvbnRyb2xzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDMUQsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQzs7QUFNdkMsTUFBTSxPQUFPLGNBQWM7OzJHQUFkLGNBQWM7NEdBQWQsY0FBYyxZQUhiLGNBQWMsYUFDZCxjQUFjOzRHQUVmLGNBQWMsWUFIYixjQUFjLEVBQ2QsY0FBYzsyRkFFZixjQUFjO2tCQUoxQixRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRSxDQUFDLGNBQWMsQ0FBQztvQkFDekIsT0FBTyxFQUFFLENBQUMsY0FBYyxDQUFDO2lCQUM1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2hlY2tib3hNb2R1bGV9IGZyb20gJy4vY2hlY2tib3gvY2hlY2tib3gubW9kdWxlJztcbmltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtDaGVja2JveE1vZHVsZV0sXG4gICAgZXhwb3J0czogW0NoZWNrYm94TW9kdWxlXVxufSlcbmV4cG9ydCBjbGFzcyBDb250cm9sc01vZHVsZSB7XG59XG4iXX0=
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbHMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9jb250cm9scy9zcmMvbGliL2NvbnRyb2xzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSx3Q0FBd0MsQ0FBQztBQUM1RSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUMzRSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUN4RSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUNyRSxPQUFPLEVBQXNCLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM1RCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sNEJBQTRCLENBQUM7O0FBZTFELE1BQU0sT0FBTyxjQUFjO0lBRXZCLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBdUI7UUFDbEMsT0FBTztZQUNILFFBQVEsRUFBRSxjQUFjO1lBQ3hCLFNBQVMsRUFBRTtnQkFDUDtvQkFDSSxPQUFPLEVBQUUsa0JBQWtCO29CQUMzQixRQUFRLEVBQUUsRUFBQyxHQUFHLG9CQUFvQixFQUFFLEdBQUcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxJQUFJLEVBQUUsQ0FBQyxFQUFDO29CQUM5RCxLQUFLLEVBQUUsSUFBSTtpQkFDZDtnQkFDRDtvQkFDSSxPQUFPLEVBQUUsSUFBSTtvQkFDYixVQUFVLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtvQkFDcEIsS0FBSyxFQUFFLElBQUk7aUJBQ2Q7YUFDSjtTQUNKLENBQUM7SUFDTixDQUFDOzsyR0FsQlEsY0FBYzs0R0FBZCxjQUFjLFlBVm5CLGlCQUFpQjtRQUNqQixjQUFjO1FBQ2Qsa0JBQWtCLGFBR2xCLGlCQUFpQjtRQUNqQixjQUFjO1FBQ2Qsa0JBQWtCOzRHQUdiLGNBQWMsWUFWbkIsaUJBQWlCO1FBQ2pCLGNBQWM7UUFDZCxrQkFBa0IsRUFHbEIsaUJBQWlCO1FBQ2pCLGNBQWM7UUFDZCxrQkFBa0I7MkZBR2IsY0FBYztrQkFaMUIsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUU7d0JBQ0wsaUJBQWlCO3dCQUNqQixjQUFjO3dCQUNkLGtCQUFrQjtxQkFDckI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNMLGlCQUFpQjt3QkFDakIsY0FBYzt3QkFDZCxrQkFBa0I7cUJBQ3JCO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtjb250cm9sRXJyb3JEZWZhdWx0c30gZnJvbSAnLi9jb250cm9sLWVycm9yL2NvbnRyb2wtZXJyb3IuZGVmYXVsdHMnO1xuaW1wb3J0IHtCQklfQ09OVFJPTF9FUlJPUlN9IGZyb20gJy4vY29udHJvbC1lcnJvci9jb250cm9sLWVycm9yLmludGVyZmFjZSc7XG5pbXBvcnQge0NvbnRyb2xFcnJvck1vZHVsZX0gZnJvbSAnLi9jb250cm9sLWVycm9yL2NvbnRyb2wtZXJyb3IubW9kdWxlJztcbmltcG9ydCB7Rm9ybUNvbnRyb2xNb2R1bGV9IGZyb20gJy4vZm9ybS1jb250cm9sL2Zvcm0tY29udHJvbC5tb2R1bGUnO1xuaW1wb3J0IHtNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NoZWNrYm94TW9kdWxlfSBmcm9tICcuL2NoZWNrYm94L2NoZWNrYm94Lm1vZHVsZSc7XG5pbXBvcnQge0NvbnRyb2xzQ29uZmlnfSBmcm9tICcuL2NvbnRyb2xzLmludGVyZmFjZXMnO1xuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtcbiAgICAgICAgRm9ybUNvbnRyb2xNb2R1bGUsXG4gICAgICAgIENoZWNrYm94TW9kdWxlLFxuICAgICAgICBDb250cm9sRXJyb3JNb2R1bGVcbiAgICBdLFxuICAgIGV4cG9ydHM6IFtcbiAgICAgICAgRm9ybUNvbnRyb2xNb2R1bGUsXG4gICAgICAgIENoZWNrYm94TW9kdWxlLFxuICAgICAgICBDb250cm9sRXJyb3JNb2R1bGVcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIENvbnRyb2xzTW9kdWxlIHtcblxuICAgIHN0YXRpYyBmb3JSb290KGNvbmZpZz86IENvbnRyb2xzQ29uZmlnKTogTW9kdWxlV2l0aFByb3ZpZGVyczxDb250cm9sc01vZHVsZT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbmdNb2R1bGU6IENvbnRyb2xzTW9kdWxlLFxuICAgICAgICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBwcm92aWRlOiBCQklfQ09OVFJPTF9FUlJPUlMsXG4gICAgICAgICAgICAgICAgICAgIHVzZVZhbHVlOiB7Li4uY29udHJvbEVycm9yRGVmYXVsdHMsIC4uLihjb25maWc/LmVycm9ycyA/PyB7fSl9LFxuICAgICAgICAgICAgICAgICAgICBtdWx0aTogdHJ1ZVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBwcm92aWRlOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICB1c2VGYWN0b3J5OiAoKSA9PiAnJyxcbiAgICAgICAgICAgICAgICAgICAgbXVsdGk6IHRydWVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdXG4gICAgICAgIH07XG4gICAgfVxuXG59XG4iXX0=
@@ -0,0 +1,94 @@
1
+ import { ChangeDetectionStrategy, Component, ContentChild, Input, Optional, ViewEncapsulation } from '@angular/core';
2
+ import { coerceBooleanProperty } from '@angular/cdk/coercion';
3
+ import { BbiFormControlInput } from '../form-control-input.directive';
4
+ import { debounceTime, distinctUntilChanged } from 'rxjs/operators';
5
+ import { BehaviorSubject } from 'rxjs';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "../../control-error/control-error-submit.directive";
8
+ import * as i2 from "@angular/common";
9
+ import * as i3 from "../../control-error/control-error/control-error.component";
10
+ let nextUniqueId = 0;
11
+ export class BbiFormControl {
12
+ constructor(_changeDetectorRef, _errorSubmit) {
13
+ this._changeDetectorRef = _changeDetectorRef;
14
+ this._errorSubmit = _errorSubmit;
15
+ // Readonly data.
16
+ this.labelId = `bbi-form-control-${nextUniqueId++}`;
17
+ // Inputs.
18
+ this.label = null;
19
+ this.hint = null;
20
+ this.errorMode = 'blur';
21
+ // State.
22
+ this.validationErrors$ = new BehaviorSubject(null);
23
+ this.errors$ = this.validationErrors$.pipe(debounceTime(5), distinctUntilChanged());
24
+ this._grouped = false;
25
+ }
26
+ // Grouped.
27
+ get grouped() { return this._grouped; }
28
+ set grouped(value) {
29
+ const newValue = coerceBooleanProperty(value);
30
+ if (newValue !== this.grouped) {
31
+ this._grouped = newValue;
32
+ this._changeDetectorRef.markForCheck();
33
+ }
34
+ }
35
+ ngDoCheck() {
36
+ const hasErrors = this.showErrors();
37
+ const errors = this.formControlInput?.errors ?? null;
38
+ const newValue = hasErrors ? errors : null;
39
+ const equal = JSON.stringify(newValue) === JSON.stringify(this.validationErrors$.getValue());
40
+ if (equal) {
41
+ return;
42
+ }
43
+ this.validationErrors$.next(newValue);
44
+ }
45
+ showErrors() {
46
+ // When the error mode is none we don't want to show
47
+ if (this.errorMode === 'hidden' || this.formControlInput?.readonly) {
48
+ return false;
49
+ }
50
+ // When submitted always show the errors.
51
+ const focused = this.formControlInput?.focused;
52
+ if (this._errorSubmit?.submitted && !focused) {
53
+ return true;
54
+ }
55
+ // We want to show changes even when the user is focused.
56
+ if (this.errorMode === 'changes') {
57
+ return this.formControlInput?.control?.dirty ?? false;
58
+ }
59
+ // On blur show the error.
60
+ if (this.errorMode === 'blur' && !focused) {
61
+ return this.formControlInput?.control?.touched ?? false;
62
+ }
63
+ // Must not show the errors.
64
+ return false;
65
+ }
66
+ }
67
+ BbiFormControl.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: BbiFormControl, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.BbiControlErrorSubmit, optional: true }], target: i0.ɵɵFactoryTarget.Component });
68
+ BbiFormControl.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.1", type: BbiFormControl, selector: "bbi-form-control", inputs: { label: "label", hint: "hint", errorMode: "errorMode", grouped: "grouped" }, host: { properties: { "class.grouped": "grouped", "class.disabled": "formControlInput?.disabled", "class.required": "formControlInput?.required", "class.readonly": "formControlInput?.readonly", "class.focused": "formControlInput?.focused", "class.error": "validationErrors$?.getValue()" }, classAttribute: "bbi-form-control" }, queries: [{ propertyName: "formControlInput", first: true, predicate: BbiFormControlInput, descendants: true }], ngImport: i0, template: "<!-- Label of the form control. -->\n<label *ngIf=\"label as labelContent\"\n [attr.for]=\"labelId\"\n class=\"bbi-form-control-label\">\n {{ labelContent }}\n</label>\n\n<div class=\"bbi-form-control-container\">\n <ng-content select=\"[bbi-form-control-addon=prefix]\"></ng-content>\n <ng-content select=\"input[bbiFormControlInput]\"></ng-content>\n <ng-content select=\"[bbi-form-control-addon=suffix]\"></ng-content>\n</div>\n\n<bbi-control-error *ngIf=\"errors$ | async as errors\"\n [errors]=\"errors\">\n</bbi-control-error>\n\n<div *ngIf=\"hint as hintContent\"\n class=\"bbi-form-control-hint\">\n {{ hintContent }}\n</div>\n", styles: [".bbi-form-control{display:block}.bbi-form-control.grouped{margin-bottom:var(--form-control-grouping, 20px)}.bbi-form-control.disabled{pointer-events:none;opacity:var(--form-control-disabled-opacity, .25)}.bbi-form-control.disabled>.bbi-form-control-container{color:var(--form-control-disabled-color, #111111);background:var(--form-control-disabled-background, white);border-radius:var(--form-control-disabled-border-radius, 6px);border:var(--form-control-disabled-border-width, 1px) var(--form-control-disabled-border-style, solid) var(--form-control-disabled-border-color, #212121)}.bbi-form-control.required:not([data-required-visually-hidden])>.bbi-form-control-label:after{content:\"*\";color:#bd322a;font-size:14px;vertical-align:text-top}.bbi-form-control:not(.readonly).focused>.bbi-form-control-container{color:var(--form-control-focused-color, #111111);box-shadow:var(--form-control-focused-shadow, 0 0 0 3px rgba(0, 123, 255, .2));background:var(--form-control-focused-background, white);border-radius:var(--form-control-focused-border-radius, 6px);border:var(--form-control-focused-border-width, 1px) var(--form-control-focused-border-style, solid) var(--form-control-focused-border-color, #212121)}.bbi-form-control:not(.readonly).error>.bbi-form-control-label{color:var(--form-control-error-color, var(--error-color, #bd322a))}.bbi-form-control:not(.readonly).error>.bbi-form-control-container{color:var(--form-control-error-color, var(--error-color, #bd322a));border-color:var(--form-control-error-color, var(--error-color, #bd322a));background:var(--form-control-error-background, rgba(189, 50, 42, .1))}.bbi-form-control:not(.readonly).error>.bbi-form-control-container>input::placeholder{color:var(--form-control-error-placeholder-color, rgba(189, 50, 42, .4))}.bbi-form-control-label{color:#525252;display:block;font-size:14px;font-weight:400;margin-bottom:4px}.bbi-form-control-container{display:flex;align-items:center;color:var(--form-control-color, #111111);border-radius:var(--form-control-border-radius, 6px);background-color:var(--form-control-background, white);border:var(--form-control-border-width, 1px) var(--form-control-border-style, solid) var(--form-control-border-color, rgba(67, 90, 111, .3))}.bbi-form-control-container>input{width:100%;border:none;height:40px;color:inherit;padding:0 10px;background-color:transparent}.bbi-form-control-container>input::placeholder{color:#d2d2d2}.bbi-form-control-hint{display:block;color:#525252;font-size:13px;margin-top:4px}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.BbiControlError, selector: "bbi-control-error", inputs: ["errors"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
69
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: BbiFormControl, decorators: [{
70
+ type: Component,
71
+ args: [{ selector: 'bbi-form-control', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
72
+ 'class': 'bbi-form-control',
73
+ '[class.grouped]': 'grouped',
74
+ '[class.disabled]': 'formControlInput?.disabled',
75
+ '[class.required]': 'formControlInput?.required',
76
+ '[class.readonly]': 'formControlInput?.readonly',
77
+ '[class.focused]': 'formControlInput?.focused',
78
+ '[class.error]': 'validationErrors$?.getValue()'
79
+ }, preserveWhitespaces: false, template: "<!-- Label of the form control. -->\n<label *ngIf=\"label as labelContent\"\n [attr.for]=\"labelId\"\n class=\"bbi-form-control-label\">\n {{ labelContent }}\n</label>\n\n<div class=\"bbi-form-control-container\">\n <ng-content select=\"[bbi-form-control-addon=prefix]\"></ng-content>\n <ng-content select=\"input[bbiFormControlInput]\"></ng-content>\n <ng-content select=\"[bbi-form-control-addon=suffix]\"></ng-content>\n</div>\n\n<bbi-control-error *ngIf=\"errors$ | async as errors\"\n [errors]=\"errors\">\n</bbi-control-error>\n\n<div *ngIf=\"hint as hintContent\"\n class=\"bbi-form-control-hint\">\n {{ hintContent }}\n</div>\n", styles: [".bbi-form-control{display:block}.bbi-form-control.grouped{margin-bottom:var(--form-control-grouping, 20px)}.bbi-form-control.disabled{pointer-events:none;opacity:var(--form-control-disabled-opacity, .25)}.bbi-form-control.disabled>.bbi-form-control-container{color:var(--form-control-disabled-color, #111111);background:var(--form-control-disabled-background, white);border-radius:var(--form-control-disabled-border-radius, 6px);border:var(--form-control-disabled-border-width, 1px) var(--form-control-disabled-border-style, solid) var(--form-control-disabled-border-color, #212121)}.bbi-form-control.required:not([data-required-visually-hidden])>.bbi-form-control-label:after{content:\"*\";color:#bd322a;font-size:14px;vertical-align:text-top}.bbi-form-control:not(.readonly).focused>.bbi-form-control-container{color:var(--form-control-focused-color, #111111);box-shadow:var(--form-control-focused-shadow, 0 0 0 3px rgba(0, 123, 255, .2));background:var(--form-control-focused-background, white);border-radius:var(--form-control-focused-border-radius, 6px);border:var(--form-control-focused-border-width, 1px) var(--form-control-focused-border-style, solid) var(--form-control-focused-border-color, #212121)}.bbi-form-control:not(.readonly).error>.bbi-form-control-label{color:var(--form-control-error-color, var(--error-color, #bd322a))}.bbi-form-control:not(.readonly).error>.bbi-form-control-container{color:var(--form-control-error-color, var(--error-color, #bd322a));border-color:var(--form-control-error-color, var(--error-color, #bd322a));background:var(--form-control-error-background, rgba(189, 50, 42, .1))}.bbi-form-control:not(.readonly).error>.bbi-form-control-container>input::placeholder{color:var(--form-control-error-placeholder-color, rgba(189, 50, 42, .4))}.bbi-form-control-label{color:#525252;display:block;font-size:14px;font-weight:400;margin-bottom:4px}.bbi-form-control-container{display:flex;align-items:center;color:var(--form-control-color, #111111);border-radius:var(--form-control-border-radius, 6px);background-color:var(--form-control-background, white);border:var(--form-control-border-width, 1px) var(--form-control-border-style, solid) var(--form-control-border-color, rgba(67, 90, 111, .3))}.bbi-form-control-container>input{width:100%;border:none;height:40px;color:inherit;padding:0 10px;background-color:transparent}.bbi-form-control-container>input::placeholder{color:#d2d2d2}.bbi-form-control-hint{display:block;color:#525252;font-size:13px;margin-top:4px}\n"] }]
80
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.BbiControlErrorSubmit, decorators: [{
81
+ type: Optional
82
+ }] }]; }, propDecorators: { formControlInput: [{
83
+ type: ContentChild,
84
+ args: [BbiFormControlInput, { static: false }]
85
+ }], label: [{
86
+ type: Input
87
+ }], hint: [{
88
+ type: Input
89
+ }], errorMode: [{
90
+ type: Input
91
+ }], grouped: [{
92
+ type: Input
93
+ }] } });
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1jb250cm9sLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vY29udHJvbHMvc3JjL2xpYi9mb3JtLWNvbnRyb2wvZm9ybS1jb250cm9sL2Zvcm0tY29udHJvbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYi1mb3VuZGF0aW9uL2NvbnRyb2xzL3NyYy9saWIvZm9ybS1jb250cm9sL2Zvcm0tY29udHJvbC9mb3JtLWNvbnRyb2wuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLHVCQUF1QixFQUFxQixTQUFTLEVBQUUsWUFBWSxFQUFXLEtBQUssRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFHL0ksT0FBTyxFQUFlLHFCQUFxQixFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDMUUsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDcEUsT0FBTyxFQUFDLFlBQVksRUFBRSxvQkFBb0IsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRWxFLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxNQUFNLENBQUM7Ozs7O0FBRXJDLElBQUksWUFBWSxHQUFHLENBQUMsQ0FBQztBQW1CckIsTUFBTSxPQUFPLGNBQWM7SUErQnZCLFlBQW9CLGtCQUFxQyxFQUN6QixZQUFvQztRQURoRCx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW1CO1FBQ3pCLGlCQUFZLEdBQVosWUFBWSxDQUF3QjtRQTlCcEUsaUJBQWlCO1FBQ1IsWUFBTyxHQUFXLG9CQUFvQixZQUFZLEVBQUUsRUFBRSxDQUFDO1FBS2hFLFVBQVU7UUFDRCxVQUFLLEdBQWtCLElBQUksQ0FBQztRQUM1QixTQUFJLEdBQWtCLElBQUksQ0FBQztRQUMzQixjQUFTLEdBQXFCLE1B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UUFBUTs0Q0ExQitCLGdCQUFnQjtzQkFBbkUsWUFBWTt1QkFBQyxtQkFBbUIsRUFBRSxFQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUM7Z0JBR3pDLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFRRixPQUFPO3NCQURWLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBDb250ZW50Q2hpbGQsIERvQ2hlY2ssIElucHV0LCBPcHRpb25hbCwgVmlld0VuY2Fwc3VsYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtCYmlDb250cm9sRXJyb3JTdWJtaXR9IGZyb20gJy4uLy4uL2NvbnRyb2wtZXJyb3IvY29udHJvbC1lcnJvci1zdWJtaXQuZGlyZWN0aXZlJztcbmltcG9ydCB7Q29udHJvbEVycm9yTW9kZX0gZnJvbSAnLi4vLi4vY29udHJvbC1lcnJvci9jb250cm9sLWVycm9yLmludGVyZmFjZSc7XG5pbXBvcnQge0Jvb2xlYW5JbnB1dCwgY29lcmNlQm9vbGVhblByb3BlcnR5fSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHtCYmlGb3JtQ29udHJvbElucHV0fSBmcm9tICcuLi9mb3JtLWNvbnRyb2wtaW5wdXQuZGlyZWN0aXZlJztcbmltcG9ydCB7ZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtWYWxpZGF0aW9uRXJyb3JzfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdH0gZnJvbSAncnhqcyc7XG5cbmxldCBuZXh0VW5pcXVlSWQgPSAwO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2JiaS1mb3JtLWNvbnRyb2wnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9mb3JtLWNvbnRyb2wuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2Zvcm0tY29udHJvbC5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgaG9zdDoge1xuICAgICAgICAnY2xhc3MnOiAnYmJpLWZvcm0tY29udHJvbCcsXG4gICAgICAgICdbY2xhc3MuZ3JvdXBlZF0nOiAnZ3JvdXBlZCcsXG4gICAgICAgICdbY2xhc3MuZGlzYWJsZWRdJzogJ2Zvcm1Db250cm9sSW5wdXQ/LmRpc2FibGVkJyxcbiAgICAgICAgJ1tjbGFzcy5yZXF1aXJlZF0nOiAnZm9ybUNvbnRyb2xJbnB1dD8ucmVxdWlyZWQnLFxuICAgICAgICAnW2NsYXNzLnJlYWRvbmx5XSc6ICdmb3JtQ29udHJvbElucHV0Py5yZWFkb25seScsXG4gICAgICAgICdbY2xhc3MuZm9jdXNlZF0nOiAnZm9ybUNvbnRyb2xJbnB1dD8uZm9jdXNlZCcsXG4gICAgICAgICdbY2xhc3MuZXJyb3JdJzogJ3ZhbGlkYXRpb25FcnJvcnMkPy5nZXRWYWx1ZSgpJ1xuICAgIH0sXG4gICAgcHJlc2VydmVXaGl0ZXNwYWNlczogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgQmJpRm9ybUNvbnRyb2wgaW1wbGVtZW50cyBEb0NoZWNrIHtcblxuICAgIC8vIFJlYWRvbmx5IGRhdGEuXG4gICAgcmVhZG9ubHkgbGFiZWxJZDogc3RyaW5nID0gYGJiaS1mb3JtLWNvbnRyb2wtJHtuZXh0VW5pcXVlSWQrK31gO1xuXG4gICAgLy8gVmlld3MuXG4gICAgQENvbnRlbnRDaGlsZChCYmlGb3JtQ29udHJvbElucHV0LCB7c3RhdGljOiBmYWxzZX0pIGZvcm1Db250cm9sSW5wdXQ/OiBCYmlGb3JtQ29udHJvbElucHV0O1xuXG4gICAgLy8gSW5wdXRzLlxuICAgIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgICBASW5wdXQoKSBoaW50OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgICBASW5wdXQoKSBlcnJvck1vZGU6IENvbnRyb2xFcnJvck1vZGUgPSAnYmx1cic7XG5cbiAgICAvLyBTdGF0ZS5cbiAgICB2YWxpZGF0aW9uRXJyb3JzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VmFsaWRhdGlvbkVycm9ycyB8IG51bGw+KG51bGwpO1xuICAgIGVycm9ycyQgPSB0aGlzLnZhbGlkYXRpb25FcnJvcnMkLnBpcGUoZGVib3VuY2VUaW1lKDUpLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKTtcblxuICAgIC8vIEdyb3VwZWQuXG4gICAgQElucHV0KClcbiAgICBnZXQgZ3JvdXBlZCgpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuX2dyb3VwZWQ7IH1cblxuICAgIHNldCBncm91cGVkKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgY29uc3QgbmV3VmFsdWUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgICAgICBpZiAobmV3VmFsdWUgIT09IHRoaXMuZ3JvdXBlZCkge1xuICAgICAgICAgICAgdGhpcy5fZ3JvdXBlZCA9IG5ld1ZhbHVlO1xuICAgICAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF9ncm91cGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9jaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBfZXJyb3JTdWJtaXQ/OiBCYmlDb250cm9sRXJyb3JTdWJtaXQpIHtcbiAgICB9XG5cbiAgICBuZ0RvQ2hlY2soKSB7XG4gICAgICAgIGNvbnN0IGhhc0Vycm9ycyA9IHRoaXMuc2hvd0Vycm9ycygpO1xuICAgICAgICBjb25zdCBlcnJvcnMgPSB0aGlzLmZvcm1Db250cm9sSW5wdXQ/LmVycm9ycyA/PyBudWxsO1xuICAgICAgICBjb25zdCBuZXdWYWx1ZSA9IGhhc0Vycm9ycyA/IGVycm9ycyA6IG51bGw7XG5cbiAgICAgICAgY29uc3QgZXF1YWwgPSBKU09OLnN0cmluZ2lmeShuZXdWYWx1ZSkgPT09IEpTT04uc3RyaW5naWZ5KHRoaXMudmFsaWRhdGlvbkVycm9ycyQuZ2V0VmFsdWUoKSk7XG4gICAgICAgIGlmIChlcXVhbCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy52YWxpZGF0aW9uRXJyb3JzJC5uZXh0KG5ld1ZhbHVlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNob3dFcnJvcnMoKSB7XG4gICAgICAgIC8vIFdoZW4gdGhlIGVycm9yIG1vZGUgaXMgbm9uZSB3ZSBkb24ndCB3YW50IHRvIHNob3dcbiAgICAgICAgaWYgKHRoaXMuZXJyb3JNb2RlID09PSAnaGlkZGVuJyB8fCB0aGlzLmZvcm1Db250cm9sSW5wdXQ/LnJlYWRvbmx5KSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBXaGVuIHN1Ym1pdHRlZCBhbHdheXMgc2hvdyB0aGUgZXJyb3JzLlxuICAgICAgICBjb25zdCBmb2N1c2VkID0gdGhpcy5mb3JtQ29udHJvbElucHV0Py5mb2N1c2VkO1xuICAgICAgICBpZiAodGhpcy5fZXJyb3JTdWJtaXQ/LnN1Ym1pdHRlZCAmJiAhZm9jdXNlZCkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBXZSB3YW50IHRvIHNob3cgY2hhbmdlcyBldmVuIHdoZW4gdGhlIHVzZXIgaXMgZm9jdXNlZC5cbiAgICAgICAgaWYgKHRoaXMuZXJyb3JNb2RlID09PSAnY2hhbmdlcycpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmZvcm1Db250cm9sSW5wdXQ/LmNvbnRyb2w/LmRpcnR5ID8/IGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gT24gYmx1ciBzaG93IHRoZSBlcnJvci5cbiAgICAgICAgaWYgKHRoaXMuZXJyb3JNb2RlID09PSAnYmx1cicgJiYgIWZvY3VzZWQpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmZvcm1Db250cm9sSW5wdXQ/LmNvbnRyb2w/LnRvdWNoZWQgPz8gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBNdXN0IG5vdCBzaG93IHRoZSBlcnJvcnMuXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyBSZXF1aXJlZCBzbyB0aGF0IHRoZSB0ZW1wbGF0ZSB0eXBlIGNoZWNrZXIgY2FuIGluZmVyIHRoZSB0eXBlIG9mIHRoZSBjb2VyY2VkIGlucHV0cy5cbiAgICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfbGFiZWw6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ7XG4gICAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2hpbnQ6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ7XG4gICAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2Vycm9yTW9kZTogQ29udHJvbEVycm9yTW9kZTtcbiAgICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfZ3JvdXBlZDogQm9vbGVhbklucHV0O1xuXG59XG4iLCI8IS0tIExhYmVsIG9mIHRoZSBmb3JtIGNvbnRyb2wuIC0tPlxuPGxhYmVsICpuZ0lmPVwibGFiZWwgYXMgbGFiZWxDb250ZW50XCJcbiAgICAgICBbYXR0ci5mb3JdPVwibGFiZWxJZFwiXG4gICAgICAgY2xhc3M9XCJiYmktZm9ybS1jb250cm9sLWxhYmVsXCI+XG4gICAge3sgbGFiZWxDb250ZW50IH19XG48L2xhYmVsPlxuXG48ZGl2IGNsYXNzPVwiYmJpLWZvcm0tY29udHJvbC1jb250YWluZXJcIj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbYmJpLWZvcm0tY29udHJvbC1hZGRvbj1wcmVmaXhdXCI+PC9uZy1jb250ZW50PlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImlucHV0W2JiaUZvcm1Db250cm9sSW5wdXRdXCI+PC9uZy1jb250ZW50PlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltiYmktZm9ybS1jb250cm9sLWFkZG9uPXN1ZmZpeF1cIj48L25nLWNvbnRlbnQ+XG48L2Rpdj5cblxuPGJiaS1jb250cm9sLWVycm9yICpuZ0lmPVwiZXJyb3JzJCB8IGFzeW5jIGFzIGVycm9yc1wiXG4gICAgICAgICAgICAgICAgICAgW2Vycm9yc109XCJlcnJvcnNcIj5cbjwvYmJpLWNvbnRyb2wtZXJyb3I+XG5cbjxkaXYgKm5nSWY9XCJoaW50IGFzIGhpbnRDb250ZW50XCJcbiAgICAgY2xhc3M9XCJiYmktZm9ybS1jb250cm9sLWhpbnRcIj5cbiAgICB7eyBoaW50Q29udGVudCB9fVxuPC9kaXY+XG4iXX0=
@@ -0,0 +1,22 @@
1
+ import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class BbiFormControlAddon {
4
+ constructor() {
5
+ // Inputs.
6
+ this.type = null;
7
+ }
8
+ }
9
+ BbiFormControlAddon.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: BbiFormControlAddon, deps: [], target: i0.ɵɵFactoryTarget.Component });
10
+ BbiFormControlAddon.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.1", type: BbiFormControlAddon, selector: "[bbi-form-control-addon]", inputs: { type: ["bbi-form-control-addon", "type"] }, host: { properties: { "class.prefix": "type === 'prefix'", "class.suffix": "type === 'suffix'" }, classAttribute: "bbi-form-control-addon" }, ngImport: i0, template: "<ng-content></ng-content>\n", styles: [".bbi-form-control-addon{margin:0 10px;color:inherit;display:block}.bbi-form-control-addon.suffix{margin-left:0}.bbi-form-control-addon.prefix{margin-right:0}a.bbi-form-control-addon,button.bbi-form-control-addon{width:32px;height:32px;border:none;display:flex;-webkit-appearance:none;appearance:none;margin-right:4px;border-radius:6px;align-items:center;text-decoration:none;justify-content:center;background-color:transparent}a.bbi-form-control-addon,a.bbi-form-control-addon:visited,button.bbi-form-control-addon,button.bbi-form-control-addon:visited{color:inherit}a.bbi-form-control-addon:hover,button.bbi-form-control-addon:hover{background-color:#1565c014}a.bbi-form-control-addon:focus,button.bbi-form-control-addon:focus{background-color:#1565c01f}a.bbi-form-control-addon:active,button.bbi-form-control-addon:active{background-color:#1565c029}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: BbiFormControlAddon, decorators: [{
12
+ type: Component,
13
+ args: [{ selector: '[bbi-form-control-addon]', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
14
+ 'class': 'bbi-form-control-addon',
15
+ '[class.prefix]': 'type === \'prefix\'',
16
+ '[class.suffix]': 'type === \'suffix\''
17
+ }, preserveWhitespaces: false, template: "<ng-content></ng-content>\n", styles: [".bbi-form-control-addon{margin:0 10px;color:inherit;display:block}.bbi-form-control-addon.suffix{margin-left:0}.bbi-form-control-addon.prefix{margin-right:0}a.bbi-form-control-addon,button.bbi-form-control-addon{width:32px;height:32px;border:none;display:flex;-webkit-appearance:none;appearance:none;margin-right:4px;border-radius:6px;align-items:center;text-decoration:none;justify-content:center;background-color:transparent}a.bbi-form-control-addon,a.bbi-form-control-addon:visited,button.bbi-form-control-addon,button.bbi-form-control-addon:visited{color:inherit}a.bbi-form-control-addon:hover,button.bbi-form-control-addon:hover{background-color:#1565c014}a.bbi-form-control-addon:focus,button.bbi-form-control-addon:focus{background-color:#1565c01f}a.bbi-form-control-addon:active,button.bbi-form-control-addon:active{background-color:#1565c029}\n"] }]
18
+ }], propDecorators: { type: [{
19
+ type: Input,
20
+ args: ['bbi-form-control-addon']
21
+ }] } });
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1jb250cm9sLWFkZG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vY29udHJvbHMvc3JjL2xpYi9mb3JtLWNvbnRyb2wvZm9ybS1jb250cm9sLWFkZG9uL2Zvcm0tY29udHJvbC1hZGRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYi1mb3VuZGF0aW9uL2NvbnRyb2xzL3NyYy9saWIvZm9ybS1jb250cm9sL2Zvcm0tY29udHJvbC1hZGRvbi9mb3JtLWNvbnRyb2wtYWRkb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7O0FBZTNGLE1BQU0sT0FBTyxtQkFBbUI7SUFiaEM7UUFlSSxVQUFVO1FBQ3VCLFNBQUksR0FBK0IsSUFBSSxDQUFDO0tBRTVFOztnSEFMWSxtQkFBbUI7b0dBQW5CLG1CQUFtQixvUUNmaEMsNkJBQ0E7MkZEY2EsbUJBQW1CO2tCQWIvQixTQUFTOytCQUNJLDBCQUEwQixtQkFHbkIsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxRQUMvQjt3QkFDRixPQUFPLEVBQUUsd0JBQXdCO3dCQUNqQyxnQkFBZ0IsRUFBRSxxQkFBcUI7d0JBQ3ZDLGdCQUFnQixFQUFFLHFCQUFxQjtxQkFDMUMsdUJBQ29CLEtBQUs7OEJBS08sSUFBSTtzQkFBcEMsS0FBSzt1QkFBQyx3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0LCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnW2JiaS1mb3JtLWNvbnRyb2wtYWRkb25dJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZm9ybS1jb250cm9sLWFkZG9uLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9mb3JtLWNvbnRyb2wtYWRkb24uY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ2NsYXNzJzogJ2JiaS1mb3JtLWNvbnRyb2wtYWRkb24nLFxuICAgICAgICAnW2NsYXNzLnByZWZpeF0nOiAndHlwZSA9PT0gXFwncHJlZml4XFwnJyxcbiAgICAgICAgJ1tjbGFzcy5zdWZmaXhdJzogJ3R5cGUgPT09IFxcJ3N1ZmZpeFxcJydcbiAgICB9LFxuICAgIHByZXNlcnZlV2hpdGVzcGFjZXM6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIEJiaUZvcm1Db250cm9sQWRkb24ge1xuXG4gICAgLy8gSW5wdXRzLlxuICAgIEBJbnB1dCgnYmJpLWZvcm0tY29udHJvbC1hZGRvbicpIHR5cGU6ICdwcmVmaXgnIHwgJ3N1ZmZpeCcgfCBudWxsID0gbnVsbDtcblxufVxuIiwiPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuIl19
@@ -0,0 +1,124 @@
1
+ import { Directive, HostBinding, Input, Optional, Self } from '@angular/core';
2
+ import { delay, distinctUntilChanged, map, pairwise, startWith, switchMap } from 'rxjs/operators';
3
+ import { coerceBooleanProperty } from '@angular/cdk/coercion';
4
+ import { Validators } from '@angular/forms';
5
+ import { fromEvent, merge, of, Subscription } from 'rxjs';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "./form-control/form-control.component";
8
+ import * as i2 from "@angular/forms";
9
+ export class BbiFormControlInput {
10
+ constructor(_elementRef, _formControl, _changeDetectorRef, _ngControl) {
11
+ this._elementRef = _elementRef;
12
+ this._formControl = _formControl;
13
+ this._changeDetectorRef = _changeDetectorRef;
14
+ this._ngControl = _ngControl;
15
+ // Readonly data.
16
+ this.labelId = this._formControl?.labelId ?? null;
17
+ // State.
18
+ this.errors = null;
19
+ this.focused = false;
20
+ // Subscriptions.
21
+ this._subscription = new Subscription();
22
+ this._disabled = false;
23
+ this._readonly = false;
24
+ this._required = false;
25
+ }
26
+ ngOnInit() {
27
+ this.handleControlDisabledStatus();
28
+ this.handleControlErrorStatus();
29
+ this.handleFocusedState();
30
+ }
31
+ ngOnDestroy() {
32
+ this._subscription?.unsubscribe();
33
+ }
34
+ get control() {
35
+ return this._ngControl ?? null;
36
+ }
37
+ get disabled() { return this._disabled; }
38
+ set disabled(value) {
39
+ const newValue = coerceBooleanProperty(value);
40
+ if (newValue !== this.disabled) {
41
+ this._disabled = newValue;
42
+ this._changeDetectorRef.markForCheck();
43
+ }
44
+ }
45
+ get readonly() { return this._readonly; }
46
+ set readonly(value) {
47
+ const newValue = coerceBooleanProperty(value);
48
+ if (newValue !== this.readonly) {
49
+ this._readonly = newValue;
50
+ this._changeDetectorRef.markForCheck();
51
+ }
52
+ }
53
+ get required() {
54
+ if (this._ngControl) {
55
+ return this._ngControl?.control?.hasValidator(Validators.required);
56
+ }
57
+ return this._required;
58
+ }
59
+ set required(value) {
60
+ const newValue = coerceBooleanProperty(value);
61
+ if (newValue !== this.required) {
62
+ this._required = newValue;
63
+ this._changeDetectorRef.markForCheck();
64
+ }
65
+ }
66
+ handleControlErrorStatus() {
67
+ if (!this._ngControl) {
68
+ return;
69
+ }
70
+ const errors$ = this._ngControl.statusChanges.pipe(startWith(this._ngControl.status), map(() => this._ngControl?.errors ?? null));
71
+ const subscription = errors$.subscribe(errors => {
72
+ this.errors = errors;
73
+ this._changeDetectorRef.markForCheck();
74
+ });
75
+ this._subscription.add(subscription);
76
+ }
77
+ handleControlDisabledStatus() {
78
+ if (!this._ngControl) {
79
+ return;
80
+ }
81
+ const disabled$ = this._ngControl.statusChanges.pipe(startWith(this._ngControl.status), map(status => status === 'DISABLED'), distinctUntilChanged());
82
+ const subscription = disabled$.subscribe(disabled => {
83
+ this.disabled = disabled;
84
+ });
85
+ this._subscription.add(subscription);
86
+ }
87
+ handleFocusedState() {
88
+ const focus$ = fromEvent(this._elementRef.nativeElement, 'focus').pipe(map(() => true));
89
+ const blur$ = fromEvent(this._elementRef.nativeElement, 'blur').pipe(map(() => false));
90
+ const focused$ = merge(focus$, blur$).pipe(startWith(false), pairwise(), switchMap(([oldValue, currentValue]) => {
91
+ if (oldValue && !currentValue) {
92
+ return of(currentValue).pipe(delay(100));
93
+ }
94
+ return of(currentValue);
95
+ }), distinctUntilChanged());
96
+ const subscription = focused$.subscribe(focused => this.focused = focused);
97
+ this._subscription.add(subscription);
98
+ }
99
+ }
100
+ BbiFormControlInput.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: BbiFormControlInput, deps: [{ token: i0.ElementRef }, { token: i1.BbiFormControl }, { token: i0.ChangeDetectorRef }, { token: i2.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Directive });
101
+ BbiFormControlInput.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.1.1", type: BbiFormControlInput, selector: "input[bbiFormControlInput]", inputs: { disabled: "disabled", readonly: "readonly", required: "required" }, host: { properties: { "attr.id": "this.labelId", "required": "this.required" } }, ngImport: i0 });
102
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: BbiFormControlInput, decorators: [{
103
+ type: Directive,
104
+ args: [{
105
+ selector: 'input[bbiFormControlInput]'
106
+ }]
107
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.BbiFormControl }, { type: i0.ChangeDetectorRef }, { type: i2.NgControl, decorators: [{
108
+ type: Optional
109
+ }, {
110
+ type: Self
111
+ }] }]; }, propDecorators: { labelId: [{
112
+ type: HostBinding,
113
+ args: ['attr.id']
114
+ }], disabled: [{
115
+ type: Input
116
+ }], readonly: [{
117
+ type: Input
118
+ }], required: [{
119
+ type: HostBinding,
120
+ args: ['required']
121
+ }, {
122
+ type: Input
123
+ }] } });
124
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1jb250cm9sLWlucHV0LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vY29udHJvbHMvc3JjL2xpYi9mb3JtLWNvbnRyb2wvZm9ybS1jb250cm9sLWlucHV0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9CLFNBQVMsRUFBYyxXQUFXLEVBQUUsS0FBSyxFQUFxQixRQUFRLEVBQUUsSUFBSSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzlILE9BQU8sRUFBQyxLQUFLLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEcsT0FBTyxFQUFlLHFCQUFxQixFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDMUUsT0FBTyxFQUE4QixVQUFVLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUV2RSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsWUFBWSxFQUFDLE1BQU0sTUFBTSxDQUFDOzs7O0FBS3hELE1BQU0sT0FBTyxtQkFBbUI7SUFZNUIsWUFBb0IsV0FBdUIsRUFDdkIsWUFBNEIsRUFDNUIsa0JBQXFDLEVBQ2pCLFVBQXFCO1FBSHpDLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBQ3ZCLGlCQUFZLEdBQVosWUFBWSxDQUFnQjtRQUM1Qix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW1CO1FBQ2pCLGVBQVUsR0FBVixVQUFVLENBQVc7UUFiN0QsaUJBQWlCO1FBQ2dCLFlBQU8sR0FBVyxJQUFJLENBQUMsWUFBWSxFQUFFLE9BQU8sSUFBSSxJQUFJLENBQUM7UUFFdEYsU0FBUztRQUNULFdBQU0sR0FBNEIsSUFBSSxDQUFDO1FBQ3ZDLFlBQU8sR0FBWSxLQUFLLENBQUM7UUFFekIsaUJBQWlCO1FBQ1Qsa0JBQWEsR0FB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QUM7YUFDNUM7WUFFRCxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUM1QixDQUFDLENBQUMsRUFDRixvQkFBb0IsRUFBRSxDQUN6QixDQUFDO1FBRUYsTUFBTSxZQUFZLEdBQUcsUUFBUSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLENBQUM7UUFDM0UsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDekMsQ0FBQzs7Z0hBdElRLG1CQUFtQjtvR0FBbkIsbUJBQW1COzJGQUFuQixtQkFBbUI7a0JBSC9CLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLDRCQUE0QjtpQkFDekM7OzBCQWdCZ0IsUUFBUTs7MEJBQUksSUFBSTs0Q0FaSSxPQUFPO3NCQUF2QyxXQUFXO3VCQUFDLFNBQVM7Z0JBZ0NsQixRQUFRO3NCQURYLEtBQUs7Z0JBY0YsUUFBUTtzQkFEWCxLQUFLO2dCQW9CRixRQUFRO3NCQUZYLFdBQVc7dUJBQUMsVUFBVTs7c0JBQ3RCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdG9yUmVmLCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE9wdGlvbmFsLCBTZWxmfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7ZGVsYXksIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIHBhaXJ3aXNlLCBzdGFydFdpdGgsIHN3aXRjaE1hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtCb29sZWFuSW5wdXQsIGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eX0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7TmdDb250cm9sLCBWYWxpZGF0aW9uRXJyb3JzLCBWYWxpZGF0b3JzfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge0JiaUZvcm1Db250cm9sfSBmcm9tICcuL2Zvcm0tY29udHJvbC9mb3JtLWNvbnRyb2wuY29tcG9uZW50JztcbmltcG9ydCB7ZnJvbUV2ZW50LCBtZXJnZSwgb2YsIFN1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnaW5wdXRbYmJpRm9ybUNvbnRyb2xJbnB1dF0nXG59KVxuZXhwb3J0IGNsYXNzIEJiaUZvcm1Db250cm9sSW5wdXQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgICAvLyBSZWFkb25seSBkYXRhLlxuICAgIEBIb3N0QmluZGluZygnYXR0ci5pZCcpIHJlYWRvbmx5IGxhYmVsSWQ6IHN0cmluZyA9IHRoaXMuX2Zvcm1Db250cm9sPy5sYWJlbElkID8/IG51bGw7XG5cbiAgICAvLyBTdGF0ZS5cbiAgICBlcnJvcnM6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0gbnVsbDtcbiAgICBmb2N1c2VkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvLyBTdWJzY3JpcHRpb25zLlxuICAgIHByaXZhdGUgX3N1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBfZm9ybUNvbnRyb2w6IEJiaUZvcm1Db250cm9sLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgX2NoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgICAgICAgICBAT3B0aW9uYWwoKSBAU2VsZigpIHByaXZhdGUgX25nQ29udHJvbDogTmdDb250cm9sKSB7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuaGFuZGxlQ29udHJvbERpc2FibGVkU3RhdHVzKCk7XG4gICAgICAgIHRoaXMuaGFuZGxlQ29udHJvbEVycm9yU3RhdHVzKCk7XG4gICAgICAgIHRoaXMuaGFuZGxlRm9jdXNlZFN0YXRlKCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICBnZXQgY29udHJvbCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX25nQ29udHJvbCA/PyBudWxsO1xuICAgIH1cblxuICAgIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuX2Rpc2FibGVkOyB9XG5cbiAgICBASW5wdXQoKVxuICAgIHNldCBkaXNhYmxlZCh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIGNvbnN0IG5ld1ZhbHVlID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICAgICAgaWYgKG5ld1ZhbHVlICE9PSB0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgICAgICB0aGlzLl9kaXNhYmxlZCA9IG5ld1ZhbHVlO1xuICAgICAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF9kaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgZ2V0IHJlYWRvbmx5KCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5fcmVhZG9ubHk7IH1cblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IHJlYWRvbmx5KHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgY29uc3QgbmV3VmFsdWUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgICAgICBpZiAobmV3VmFsdWUgIT09IHRoaXMucmVhZG9ubHkpIHtcbiAgICAgICAgICAgIHRoaXMuX3JlYWRvbmx5ID0gbmV3VmFsdWU7XG4gICAgICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX3JlYWRvbmx5OiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBnZXQgcmVxdWlyZWQoKSB7XG4gICAgICAgIGlmICh0aGlzLl9uZ0NvbnRyb2wpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9uZ0NvbnRyb2w/LmNvbnRyb2w/Lmhhc1ZhbGlkYXRvcihWYWxpZGF0b3JzLnJlcXVpcmVkKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5fcmVxdWlyZWQ7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdyZXF1aXJlZCcpXG4gICAgQElucHV0KClcbiAgICBzZXQgcmVxdWlyZWQodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICBjb25zdCBuZXdWYWx1ZSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgICAgIGlmIChuZXdWYWx1ZSAhPT0gdGhpcy5yZXF1aXJlZCkge1xuICAgICAgICAgICAgdGhpcy5fcmVxdWlyZWQgPSBuZXdWYWx1ZTtcbiAgICAgICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfcmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIHByaXZhdGUgaGFuZGxlQ29udHJvbEVycm9yU3RhdHVzKCkge1xuICAgICAgICBpZiAoIXRoaXMuX25nQ29udHJvbCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZXJyb3JzJCA9IHRoaXMuX25nQ29udHJvbC5zdGF0dXNDaGFuZ2VzLnBpcGUoXG4gICAgICAgICAgICBzdGFydFdpdGgodGhpcy5fbmdDb250cm9sLnN0YXR1cyksXG4gICAgICAgICAgICBtYXAoKCkgPT4gdGhpcy5fbmdDb250cm9sPy5lcnJvcnMgPz8gbnVsbClcbiAgICAgICAgKTtcblxuICAgICAgICBjb25zdCBzdWJzY3JpcHRpb24gPSBlcnJvcnMkLnN1YnNjcmliZShlcnJvcnMgPT4ge1xuICAgICAgICAgICAgdGhpcy5lcnJvcnMgPSBlcnJvcnM7XG4gICAgICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbi5hZGQoc3Vic2NyaXB0aW9uKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGhhbmRsZUNvbnRyb2xEaXNhYmxlZFN0YXR1cygpIHtcbiAgICAgICAgaWYgKCF0aGlzLl9uZ0NvbnRyb2wpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGRpc2FibGVkJCA9IHRoaXMuX25nQ29udHJvbC5zdGF0dXNDaGFuZ2VzLnBpcGUoXG4gICAgICAgICAgICBzdGFydFdpdGgodGhpcy5fbmdDb250cm9sLnN0YXR1cyksXG4gICAgICAgICAgICBtYXAoc3RhdHVzID0+IHN0YXR1cyA9PT0gJ0RJU0FCTEVEJyksXG4gICAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXG4gICAgICAgICk7XG5cbiAgICAgICAgY29uc3Qgc3Vic2NyaXB0aW9uID0gZGlzYWJsZWQkLnN1YnNjcmliZShkaXNhYmxlZCA9PiB7XG4gICAgICAgICAgICB0aGlzLmRpc2FibGVkID0gZGlzYWJsZWQ7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb24uYWRkKHN1YnNjcmlwdGlvbik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYW5kbGVGb2N1c2VkU3RhdGUoKSB7XG4gICAgICAgIGNvbnN0IGZvY3VzJCA9IGZyb21FdmVudCh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdmb2N1cycpLnBpcGUoXG4gICAgICAgICAgICBtYXAoKCkgPT4gdHJ1ZSlcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgYmx1ciQgPSBmcm9tRXZlbnQodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnYmx1cicpLnBpcGUoXG4gICAgICAgICAgICBtYXAoKCkgPT4gZmFsc2UpXG4gICAgICAgICk7XG5cbiAgICAgICAgY29uc3QgZm9jdXNlZCQgPSBtZXJnZShmb2N1cyQsIGJsdXIkKS5waXBlKFxuICAgICAgICAgICAgc3RhcnRXaXRoKGZhbHNlKSxcbiAgICAgICAgICAgIHBhaXJ3aXNlKCksXG4gICAgICAgICAgICBzd2l0Y2hNYXAoKFtvbGRWYWx1ZSwgY3VycmVudFZhbHVlXSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChvbGRWYWx1ZSAmJiAhY3VycmVudFZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBvZihjdXJyZW50VmFsdWUpLnBpcGUoZGVsYXkoMTAwKSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIG9mKGN1cnJlbnRWYWx1ZSk7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKClcbiAgICAgICAgKTtcblxuICAgICAgICBjb25zdCBzdWJzY3JpcHRpb24gPSBmb2N1c2VkJC5zdWJzY3JpYmUoZm9jdXNlZCA9PiB0aGlzLmZvY3VzZWQgPSBmb2N1c2VkKTtcbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9uLmFkZChzdWJzY3JpcHRpb24pO1xuICAgIH1cblxuICAgIC8vIFJlcXVpcmVkIHNvIHRoYXQgdGhlIHRlbXBsYXRlIHR5cGUgY2hlY2tlciBjYW4gaW5mZXIgdGhlIHR5cGUgb2YgdGhlIGNvZXJjZWQgaW5wdXRzLlxuICAgIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9kaXNhYmxlZDogQm9vbGVhbklucHV0O1xuICAgIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9yZXF1aXJlZDogQm9vbGVhbklucHV0O1xuXG59XG4iXX0=
@@ -0,0 +1,33 @@
1
+ import { BbiFormControlAddon } from './form-control-addon/form-control-addon.component';
2
+ import { ControlErrorModule } from '../control-error/control-error.module';
3
+ import { BbiFormControl } from './form-control/form-control.component';
4
+ import { BbiFormControlInput } from './form-control-input.directive';
5
+ import { CommonModule } from '@angular/common';
6
+ import { NgModule } from '@angular/core';
7
+ import * as i0 from "@angular/core";
8
+ export class FormControlModule {
9
+ }
10
+ FormControlModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: FormControlModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
11
+ FormControlModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.1.1", ngImport: i0, type: FormControlModule, declarations: [BbiFormControl,
12
+ BbiFormControlInput,
13
+ BbiFormControlAddon], imports: [CommonModule, ControlErrorModule], exports: [BbiFormControl,
14
+ BbiFormControlInput,
15
+ BbiFormControlAddon] });
16
+ FormControlModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: FormControlModule, imports: [CommonModule, ControlErrorModule] });
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: FormControlModule, decorators: [{
18
+ type: NgModule,
19
+ args: [{
20
+ imports: [CommonModule, ControlErrorModule],
21
+ declarations: [
22
+ BbiFormControl,
23
+ BbiFormControlInput,
24
+ BbiFormControlAddon
25
+ ],
26
+ exports: [
27
+ BbiFormControl,
28
+ BbiFormControlInput,
29
+ BbiFormControlAddon
30
+ ]
31
+ }]
32
+ }] });
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1jb250cm9sLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vY29udHJvbHMvc3JjL2xpYi9mb3JtLWNvbnRyb2wvZm9ybS1jb250cm9sLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxtREFBbUQsQ0FBQztBQUN0RixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQztBQUN6RSxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDckUsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDbkUsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7O0FBZXZDLE1BQU0sT0FBTyxpQkFBaUI7OzhHQUFqQixpQkFBaUI7K0dBQWpCLGlCQUFpQixpQkFWdEIsY0FBYztRQUNkLG1CQUFtQjtRQUNuQixtQkFBbUIsYUFKYixZQUFZLEVBQUUsa0JBQWtCLGFBT3RDLGNBQWM7UUFDZCxtQkFBbUI7UUFDbkIsbUJBQW1COytHQUdkLGlCQUFpQixZQVpoQixZQUFZLEVBQUUsa0JBQWtCOzJGQVlqQyxpQkFBaUI7a0JBYjdCLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLGtCQUFrQixDQUFDO29CQUMzQyxZQUFZLEVBQUU7d0JBQ1YsY0FBYzt3QkFDZCxtQkFBbUI7d0JBQ25CLG1CQUFtQjtxQkFDdEI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNMLGNBQWM7d0JBQ2QsbUJBQW1CO3dCQUNuQixtQkFBbUI7cUJBQ3RCO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtCYmlGb3JtQ29udHJvbEFkZG9ufSBmcm9tICcuL2Zvcm0tY29udHJvbC1hZGRvbi9mb3JtLWNvbnRyb2wtYWRkb24uY29tcG9uZW50JztcbmltcG9ydCB7Q29udHJvbEVycm9yTW9kdWxlfSBmcm9tICcuLi9jb250cm9sLWVycm9yL2NvbnRyb2wtZXJyb3IubW9kdWxlJztcbmltcG9ydCB7QmJpRm9ybUNvbnRyb2x9IGZyb20gJy4vZm9ybS1jb250cm9sL2Zvcm0tY29udHJvbC5jb21wb25lbnQnO1xuaW1wb3J0IHtCYmlGb3JtQ29udHJvbElucHV0fSBmcm9tICcuL2Zvcm0tY29udHJvbC1pbnB1dC5kaXJlY3RpdmUnO1xuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge05nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBDb250cm9sRXJyb3JNb2R1bGVdLFxuICAgIGRlY2xhcmF0aW9uczogW1xuICAgICAgICBCYmlGb3JtQ29udHJvbCxcbiAgICAgICAgQmJpRm9ybUNvbnRyb2xJbnB1dCxcbiAgICAgICAgQmJpRm9ybUNvbnRyb2xBZGRvblxuICAgIF0sXG4gICAgZXhwb3J0czogW1xuICAgICAgICBCYmlGb3JtQ29udHJvbCxcbiAgICAgICAgQmJpRm9ybUNvbnRyb2xJbnB1dCxcbiAgICAgICAgQmJpRm9ybUNvbnRyb2xBZGRvblxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgRm9ybUNvbnRyb2xNb2R1bGUge1xufVxuIl19