@bravobit/bb-foundation 0.21.4 → 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 (268) 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/directives/form-submitter.directive.d.ts +9 -0
  44. package/elements/lib/elements.module.d.ts +25 -24
  45. package/elements/lib/form-error/form-error.component.d.ts +9 -5
  46. package/elements/lib/pipes/file-image.pipe.d.ts +2 -1
  47. package/elements/public_api.d.ts +1 -0
  48. package/esm2020/auth/lib/auth.interceptor.mjs +9 -12
  49. package/esm2020/auth/lib/auth.module.mjs +7 -17
  50. package/esm2020/auth/lib/auth.service.mjs +29 -55
  51. package/esm2020/auth/lib/directives/abstract.directive.mjs +40 -0
  52. package/esm2020/auth/lib/directives/authenticated.directive.mjs +25 -14
  53. package/esm2020/auth/lib/directives/permission.directive.mjs +24 -46
  54. package/esm2020/auth/lib/guards/anonymous.guard.mjs +28 -19
  55. package/esm2020/auth/lib/guards/authenticated.guard.mjs +31 -20
  56. package/esm2020/auth/lib/guards/permission.guard.mjs +53 -0
  57. package/esm2020/auth/lib/helpers/jwt.helper.mjs +7 -7
  58. package/esm2020/auth/lib/interfaces/config.interface.mjs +1 -1
  59. package/esm2020/auth/lib/interfaces/permission.interface.mjs +2 -0
  60. package/esm2020/auth/lib/interfaces/provider.interface.mjs +1 -1
  61. package/esm2020/auth/lib/permissions/permissions.handler.mjs +33 -0
  62. package/esm2020/auth/lib/permissions/permissions.service.mjs +64 -0
  63. package/esm2020/auth/lib/providers/email.provider.mjs +8 -9
  64. package/esm2020/auth/lib/providers/verify.provider.mjs +8 -5
  65. package/esm2020/auth/public_api.mjs +5 -5
  66. package/esm2020/collections/lib/collections.module.mjs +4 -4
  67. package/esm2020/collections/lib/components/collections-pager/collections-pager.component.mjs +3 -3
  68. package/esm2020/collections/lib/components/collections-viewer/collections-viewer.component.mjs +3 -3
  69. package/esm2020/collections/lib/components/collections.directive.mjs +12 -12
  70. package/esm2020/controls/lib/checkbox/checkbox/checkbox.component.mjs +19 -6
  71. package/esm2020/controls/lib/checkbox/checkbox-group/checkbox-group.component.mjs +4 -4
  72. package/esm2020/controls/lib/checkbox/checkbox.module.mjs +4 -4
  73. package/esm2020/controls/lib/control-error/control-error/control-error.animation.mjs +14 -0
  74. package/esm2020/controls/lib/control-error/control-error/control-error.component.mjs +63 -0
  75. package/esm2020/controls/lib/control-error/control-error-submit.directive.mjs +47 -0
  76. package/esm2020/controls/lib/control-error/control-error.defaults.mjs +26 -0
  77. package/esm2020/controls/lib/control-error/control-error.interface.mjs +3 -0
  78. package/esm2020/controls/lib/control-error/control-error.module.mjs +19 -0
  79. package/esm2020/controls/lib/controls.interfaces.mjs +2 -0
  80. package/esm2020/controls/lib/controls.module.mjs +45 -8
  81. package/esm2020/controls/lib/form-control/form-control/form-control.component.mjs +94 -0
  82. package/esm2020/controls/lib/form-control/form-control-addon/form-control-addon.component.mjs +22 -0
  83. package/esm2020/controls/lib/form-control/form-control-input.directive.mjs +124 -0
  84. package/esm2020/controls/lib/form-control/form-control.module.mjs +33 -0
  85. package/esm2020/controls/public_api.mjs +10 -1
  86. package/esm2020/dashboard/lib/dashboard/dashboard.component.mjs +7 -6
  87. package/esm2020/dashboard/lib/dashboard-header/dashboard-header.component.mjs +3 -3
  88. package/esm2020/dashboard/lib/dashboard-menu/dashboard-menu.component.mjs +3 -3
  89. package/esm2020/dashboard/lib/dashboard-menu-item/dashboard-menu-item.component.mjs +3 -3
  90. package/esm2020/dashboard/lib/dashboard-sidebar/dashboard-sidebar.component.mjs +3 -3
  91. package/esm2020/dashboard/lib/dashboard-sidebar-group/dashboard-sidebar-group.component.mjs +3 -3
  92. package/esm2020/dashboard/lib/dashboard-sidebar-item/dashboard-sidebar-item.component.mjs +3 -3
  93. package/esm2020/dashboard/lib/dashboard.module.mjs +4 -4
  94. package/esm2020/dialog/lib/dialog-actions/dialog-actions.component.mjs +3 -3
  95. package/esm2020/dialog/lib/dialog-confirm/dialog-confirm.component.mjs +17 -11
  96. package/esm2020/dialog/lib/dialog-container/dialog-container.animations.mjs +29 -0
  97. package/esm2020/dialog/lib/dialog-container/dialog-container.component.mjs +28 -104
  98. package/esm2020/dialog/lib/dialog-header/dialog-header.component.mjs +7 -14
  99. package/esm2020/dialog/lib/dialog-link/dialog-link.component.mjs +4 -4
  100. package/esm2020/dialog/lib/dialog-modal/dialog-modal.component.mjs +29 -8
  101. package/esm2020/dialog/lib/dialog-overlay/dialog-overlay.animations.mjs +26 -0
  102. package/esm2020/dialog/lib/dialog-overlay/dialog-overlay.component.mjs +29 -84
  103. package/esm2020/dialog/lib/dialog.insertion.mjs +3 -3
  104. package/esm2020/dialog/lib/dialog.module.mjs +4 -4
  105. package/esm2020/dialog/lib/dialog.service.mjs +8 -7
  106. package/esm2020/elements/lib/avatar/avatar.component.mjs +8 -6
  107. package/esm2020/elements/lib/button/button.component.mjs +6 -6
  108. package/esm2020/elements/lib/checkbox/checkbox.component.mjs +3 -3
  109. package/esm2020/elements/lib/date-picker/date-picker.component.mjs +3 -3
  110. package/esm2020/elements/lib/directives/addon.directive.mjs +6 -6
  111. package/esm2020/elements/lib/directives/autosize.directive.mjs +3 -3
  112. package/esm2020/elements/lib/directives/focus-trap.directive.mjs +5 -5
  113. package/esm2020/elements/lib/directives/focus.directive.mjs +7 -9
  114. package/esm2020/elements/lib/directives/form-submit.directive.mjs +3 -3
  115. package/esm2020/elements/lib/directives/form-submitter.directive.mjs +25 -0
  116. package/esm2020/elements/lib/directives/input.directive.mjs +6 -6
  117. package/esm2020/elements/lib/directives/template.directive.mjs +3 -3
  118. package/esm2020/elements/lib/dropdown/dropdown.component.mjs +6 -6
  119. package/esm2020/elements/lib/elements.module.mjs +9 -5
  120. package/esm2020/elements/lib/file-picker/file-picker.component.mjs +3 -3
  121. package/esm2020/elements/lib/form-control/form-control.component.mjs +3 -3
  122. package/esm2020/elements/lib/form-error/form-error.component.mjs +22 -7
  123. package/esm2020/elements/lib/form-group/form-group.component.mjs +3 -3
  124. package/esm2020/elements/lib/icon/icon.component.mjs +3 -3
  125. package/esm2020/elements/lib/image-picker/image-picker.component.mjs +3 -3
  126. package/esm2020/elements/lib/pipes/file-image.pipe.mjs +8 -7
  127. package/esm2020/elements/lib/pipes/file-size.pipe.mjs +3 -3
  128. package/esm2020/elements/lib/pipes/relative-time.pipe.mjs +3 -3
  129. package/esm2020/elements/lib/spinner/spinner.component.mjs +3 -3
  130. package/esm2020/elements/lib/tag/tag.component.mjs +3 -3
  131. package/esm2020/elements/public_api.mjs +2 -1
  132. package/esm2020/http/lib/http.module.mjs +4 -4
  133. package/esm2020/http/lib/interceptors/base-url.interceptor.mjs +3 -3
  134. package/esm2020/http/lib/interceptors/error.interceptor.mjs +3 -3
  135. package/esm2020/lib/core/services/clipboard.service.mjs +5 -5
  136. package/esm2020/lib/core/services/exif.service.mjs +5 -5
  137. package/esm2020/lib/core/services/file-loader.service.mjs +3 -3
  138. package/esm2020/lib/core/services/image-converter.service.mjs +5 -5
  139. package/esm2020/lib/core/services/languages.service.mjs +3 -3
  140. package/esm2020/lib/core/services/network.service.mjs +7 -7
  141. package/esm2020/lib/core/services/patch.service.mjs +7 -7
  142. package/esm2020/localize/lib/localize.module.mjs +4 -4
  143. package/esm2020/localize/lib/localize.pipe.mjs +3 -3
  144. package/esm2020/localize/lib/localize.service.mjs +5 -5
  145. package/esm2020/localize/lib/views/localize-string/localize-string.component.mjs +3 -3
  146. package/esm2020/localize/lib/views/localize-template-or-string.directive.mjs +3 -3
  147. package/esm2020/localize/lib/views/localize-template.directive.mjs +3 -3
  148. package/esm2020/masking/lib/directives/currency-mask.directive.mjs +3 -3
  149. package/esm2020/masking/lib/directives/date-mask.directive.mjs +3 -3
  150. package/esm2020/masking/lib/directives/input-mask.directive.mjs +7 -7
  151. package/esm2020/masking/lib/masking.module.mjs +4 -4
  152. package/esm2020/masking/lib/masking.service.mjs +3 -3
  153. package/esm2020/notifications/lib/notifications-item/notifications-item.component.mjs +5 -5
  154. package/esm2020/notifications/lib/notifications-list/notifications-list.component.mjs +7 -7
  155. package/esm2020/notifications/lib/notifications.module.mjs +4 -4
  156. package/esm2020/notifications/lib/notifications.service.mjs +5 -5
  157. package/esm2020/public_api.mjs +1 -2
  158. package/esm2020/recaptcha/lib/recaptcha/recaptcha.component.mjs +3 -3
  159. package/esm2020/recaptcha/lib/recaptcha-loader.service.mjs +10 -10
  160. package/esm2020/recaptcha/lib/recaptcha.module.mjs +4 -4
  161. package/esm2020/storage/lib/storage.service.mjs +5 -5
  162. package/esm2020/table/lib/components/table/table.component.mjs +9 -9
  163. package/esm2020/table/lib/components/table-cell/table-cell.component.mjs +3 -3
  164. package/esm2020/table/lib/components/table-header-cell/table-header-cell.component.mjs +3 -3
  165. package/esm2020/table/lib/components/table-pager/table-pager.component.mjs +3 -3
  166. package/esm2020/table/lib/table.module.mjs +4 -4
  167. package/esm2020/theming/lib/themes/checkbox-group.theme.mjs +17 -2
  168. package/esm2020/theming/lib/themes/checkbox.theme.mjs +35 -2
  169. package/esm2020/theming/lib/themes/control-error.theme.mjs +11 -0
  170. package/esm2020/theming/lib/themes/form-control-addon.theme.mjs +6 -0
  171. package/esm2020/theming/lib/themes/form-control.theme.mjs +45 -0
  172. package/esm2020/theming/lib/theming.data.mjs +82 -0
  173. package/esm2020/theming/lib/theming.directive.mjs +38 -0
  174. package/esm2020/theming/lib/theming.interface.mjs +2 -3
  175. package/esm2020/theming/lib/theming.module.mjs +12 -34
  176. package/esm2020/theming/lib/utils/theming.variable.mjs +41 -0
  177. package/esm2020/theming/public_api.mjs +6 -3
  178. package/fesm2015/bravobit-bb-foundation-auth.mjs +326 -284
  179. package/fesm2015/bravobit-bb-foundation-auth.mjs.map +1 -1
  180. package/fesm2015/bravobit-bb-foundation-collections.mjs +22 -22
  181. package/fesm2015/bravobit-bb-foundation-controls.mjs +493 -24
  182. package/fesm2015/bravobit-bb-foundation-controls.mjs.map +1 -1
  183. package/fesm2015/bravobit-bb-foundation-dashboard.mjs +29 -28
  184. package/fesm2015/bravobit-bb-foundation-dashboard.mjs.map +1 -1
  185. package/fesm2015/bravobit-bb-foundation-dialog.mjs +185 -233
  186. package/fesm2015/bravobit-bb-foundation-dialog.mjs.map +1 -1
  187. package/fesm2015/bravobit-bb-foundation-elements.mjs +140 -99
  188. package/fesm2015/bravobit-bb-foundation-elements.mjs.map +1 -1
  189. package/fesm2015/bravobit-bb-foundation-http.mjs +10 -10
  190. package/fesm2015/bravobit-bb-foundation-localize.mjs +20 -20
  191. package/fesm2015/bravobit-bb-foundation-localize.mjs.map +1 -1
  192. package/fesm2015/bravobit-bb-foundation-masking.mjs +20 -19
  193. package/fesm2015/bravobit-bb-foundation-masking.mjs.map +1 -1
  194. package/fesm2015/bravobit-bb-foundation-notifications.mjs +18 -17
  195. package/fesm2015/bravobit-bb-foundation-notifications.mjs.map +1 -1
  196. package/fesm2015/bravobit-bb-foundation-recaptcha.mjs +16 -16
  197. package/fesm2015/bravobit-bb-foundation-recaptcha.mjs.map +1 -1
  198. package/fesm2015/bravobit-bb-foundation-storage.mjs +4 -4
  199. package/fesm2015/bravobit-bb-foundation-storage.mjs.map +1 -1
  200. package/fesm2015/bravobit-bb-foundation-table.mjs +22 -22
  201. package/fesm2015/bravobit-bb-foundation-theming.mjs +251 -128
  202. package/fesm2015/bravobit-bb-foundation-theming.mjs.map +1 -1
  203. package/fesm2015/bravobit-bb-foundation.mjs +33 -73
  204. package/fesm2015/bravobit-bb-foundation.mjs.map +1 -1
  205. package/fesm2020/bravobit-bb-foundation-auth.mjs +306 -277
  206. package/fesm2020/bravobit-bb-foundation-auth.mjs.map +1 -1
  207. package/fesm2020/bravobit-bb-foundation-collections.mjs +22 -22
  208. package/fesm2020/bravobit-bb-foundation-controls.mjs +477 -24
  209. package/fesm2020/bravobit-bb-foundation-controls.mjs.map +1 -1
  210. package/fesm2020/bravobit-bb-foundation-dashboard.mjs +29 -28
  211. package/fesm2020/bravobit-bb-foundation-dashboard.mjs.map +1 -1
  212. package/fesm2020/bravobit-bb-foundation-dialog.mjs +175 -233
  213. package/fesm2020/bravobit-bb-foundation-dialog.mjs.map +1 -1
  214. package/fesm2020/bravobit-bb-foundation-elements.mjs +140 -99
  215. package/fesm2020/bravobit-bb-foundation-elements.mjs.map +1 -1
  216. package/fesm2020/bravobit-bb-foundation-http.mjs +10 -10
  217. package/fesm2020/bravobit-bb-foundation-localize.mjs +20 -20
  218. package/fesm2020/bravobit-bb-foundation-localize.mjs.map +1 -1
  219. package/fesm2020/bravobit-bb-foundation-masking.mjs +19 -19
  220. package/fesm2020/bravobit-bb-foundation-masking.mjs.map +1 -1
  221. package/fesm2020/bravobit-bb-foundation-notifications.mjs +17 -17
  222. package/fesm2020/bravobit-bb-foundation-notifications.mjs.map +1 -1
  223. package/fesm2020/bravobit-bb-foundation-recaptcha.mjs +16 -16
  224. package/fesm2020/bravobit-bb-foundation-recaptcha.mjs.map +1 -1
  225. package/fesm2020/bravobit-bb-foundation-storage.mjs +4 -4
  226. package/fesm2020/bravobit-bb-foundation-storage.mjs.map +1 -1
  227. package/fesm2020/bravobit-bb-foundation-table.mjs +22 -22
  228. package/fesm2020/bravobit-bb-foundation-theming.mjs +252 -120
  229. package/fesm2020/bravobit-bb-foundation-theming.mjs.map +1 -1
  230. package/fesm2020/bravobit-bb-foundation.mjs +32 -70
  231. package/fesm2020/bravobit-bb-foundation.mjs.map +1 -1
  232. package/lib/core/services/clipboard.service.d.ts +2 -2
  233. package/lib/core/services/exif.service.d.ts +1 -1
  234. package/lib/core/services/image-converter.service.d.ts +1 -1
  235. package/lib/core/services/network.service.d.ts +4 -4
  236. package/lib/core/services/patch.service.d.ts +4 -4
  237. package/localize/lib/localize.service.d.ts +1 -1
  238. package/notifications/lib/notifications-item/notifications-item.component.d.ts +1 -1
  239. package/notifications/lib/notifications.service.d.ts +1 -1
  240. package/package.json +4 -4
  241. package/public_api.d.ts +0 -1
  242. package/recaptcha/lib/recaptcha-loader.service.d.ts +3 -3
  243. package/storage/lib/storage.service.d.ts +1 -1
  244. package/theming/lib/themes/checkbox-group.theme.d.ts +14 -3
  245. package/theming/lib/themes/checkbox.theme.d.ts +30 -17
  246. package/theming/lib/themes/control-error.theme.d.ts +9 -0
  247. package/theming/lib/themes/form-control-addon.theme.d.ts +5 -0
  248. package/theming/lib/themes/form-control.theme.d.ts +32 -0
  249. package/theming/lib/theming.data.d.ts +17 -0
  250. package/theming/lib/theming.directive.d.ts +13 -0
  251. package/theming/lib/theming.interface.d.ts +19 -8
  252. package/theming/lib/theming.module.d.ts +3 -9
  253. package/theming/lib/utils/theming.variable.d.ts +16 -0
  254. package/theming/public_api.d.ts +5 -2
  255. package/auth/lib/directives/role.directive.d.ts +0 -16
  256. package/auth/lib/helpers/mapper.helper.d.ts +0 -23
  257. package/auth/lib/interfaces/mapper.interface.d.ts +0 -19
  258. package/auth/lib/permissions.service.d.ts +0 -14
  259. package/esm2020/auth/lib/directives/role.directive.mjs +0 -37
  260. package/esm2020/auth/lib/helpers/mapper.helper.mjs +0 -35
  261. package/esm2020/auth/lib/interfaces/mapper.interface.mjs +0 -2
  262. package/esm2020/auth/lib/permissions.service.mjs +0 -56
  263. package/esm2020/lib/core/services/platform.service.mjs +0 -42
  264. package/esm2020/theming/lib/themes/theme.mjs +0 -34
  265. package/esm2020/theming/lib/theming.service.mjs +0 -77
  266. package/lib/core/services/platform.service.d.ts +0 -18
  267. package/theming/lib/themes/theme.d.ts +0 -12
  268. package/theming/lib/theming.service.d.ts +0 -22
@@ -2,9 +2,9 @@ import { Directive } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  export class BbSuffix {
4
4
  }
5
- BbSuffix.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: BbSuffix, deps: [], target: i0.ɵɵFactoryTarget.Directive });
6
- BbSuffix.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.0.4", type: BbSuffix, selector: "[bbSuffix]", host: { classAttribute: "bb-suffix" }, ngImport: i0 });
7
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: BbSuffix, decorators: [{
5
+ BbSuffix.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: BbSuffix, deps: [], target: i0.ɵɵFactoryTarget.Directive });
6
+ BbSuffix.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.1.1", type: BbSuffix, selector: "[bbSuffix]", host: { classAttribute: "bb-suffix" }, ngImport: i0 });
7
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: BbSuffix, decorators: [{
8
8
  type: Directive,
9
9
  args: [{
10
10
  selector: '[bbSuffix]',
@@ -15,9 +15,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.4", ngImpor
15
15
  }] });
16
16
  export class BbPrefix {
17
17
  }
18
- BbPrefix.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: BbPrefix, deps: [], target: i0.ɵɵFactoryTarget.Directive });
19
- BbPrefix.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.0.4", type: BbPrefix, selector: "[bbPrefix]", host: { classAttribute: "bb-prefix" }, ngImport: i0 });
20
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: BbPrefix, decorators: [{
18
+ BbPrefix.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: BbPrefix, deps: [], target: i0.ɵɵFactoryTarget.Directive });
19
+ BbPrefix.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.1.1", type: BbPrefix, selector: "[bbPrefix]", host: { classAttribute: "bb-prefix" }, ngImport: i0 });
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: BbPrefix, decorators: [{
21
21
  type: Directive,
22
22
  args: [{
23
23
  selector: '[bbPrefix]',
@@ -40,9 +40,9 @@ export class BbAutosize {
40
40
  this._renderer.setStyle(this.element, 'height', value);
41
41
  }
42
42
  }
43
- BbAutosize.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: BbAutosize, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
44
- BbAutosize.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.0.4", type: BbAutosize, selector: "textarea[bbAutosize]", inputs: { minHeight: "minHeight", maxHeight: "maxHeight", rows: "rows" }, host: { listeners: { "window:resize": "onWindowResize()", "input": "onInputReceived()" }, properties: { "style.min-height": "this.minHeight", "style.max-height": "this.maxHeight", "rows": "this.rows" } }, ngImport: i0 });
45
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: BbAutosize, decorators: [{
43
+ BbAutosize.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: BbAutosize, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
44
+ BbAutosize.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.1.1", type: BbAutosize, selector: "textarea[bbAutosize]", inputs: { minHeight: "minHeight", maxHeight: "maxHeight", rows: "rows" }, host: { listeners: { "window:resize": "onWindowResize()", "input": "onInputReceived()" }, properties: { "style.min-height": "this.minHeight", "style.max-height": "this.maxHeight", "rows": "this.rows" } }, ngImport: i0 });
45
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: BbAutosize, decorators: [{
46
46
  type: Directive,
47
47
  args: [{
48
48
  selector: 'textarea[bbAutosize]'
@@ -1,6 +1,6 @@
1
1
  import { Directive, HostListener } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
- import * as i1 from "@bravobit/bb-foundation";
3
+ import * as i1 from "@angular/cdk/platform";
4
4
  export class BbFocusTrap {
5
5
  constructor(_platform, _elementRef) {
6
6
  this._platform = _platform;
@@ -63,9 +63,9 @@ export class BbFocusTrap {
63
63
  return Array(...nodes);
64
64
  }
65
65
  }
66
- BbFocusTrap.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: BbFocusTrap, deps: [{ token: i1.Platform }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
67
- BbFocusTrap.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.0.4", type: BbFocusTrap, selector: "[bbFocusTrap]", host: { listeners: { "keydown": "onKeydown($event)" } }, ngImport: i0 });
68
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: BbFocusTrap, decorators: [{
66
+ BbFocusTrap.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: BbFocusTrap, deps: [{ token: i1.Platform }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
67
+ BbFocusTrap.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.1.1", type: BbFocusTrap, selector: "[bbFocusTrap]", host: { listeners: { "keydown": "onKeydown($event)" } }, ngImport: i0 });
68
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: BbFocusTrap, decorators: [{
69
69
  type: Directive,
70
70
  args: [{
71
71
  selector: '[bbFocusTrap]'
@@ -74,4 +74,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.4", ngImpor
74
74
  type: HostListener,
75
75
  args: ['keydown', ['$event']]
76
76
  }] } });
77
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXMtdHJhcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYi1mb3VuZGF0aW9uL2VsZW1lbnRzL3NyYy9saWIvZGlyZWN0aXZlcy9mb2N1cy10cmFwLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFjLFlBQVksRUFBQyxNQUFNLGVBQWUsQ0FBQzs7O0FBTWxFLE1BQU0sT0FBTyxXQUFXO0lBZ0JwQixZQUFvQixTQUFtQixFQUNuQixXQUF1QjtRQUR2QixjQUFTLEdBQVQsU0FBUyxDQUFVO1FBQ25CLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBZjFCLHVCQUFrQixHQUFHO1lBQ2xDLFNBQVM7WUFDVCxZQUFZO1lBQ1osK0RBQStEO1lBQy9ELDJDQUEyQztZQUMzQyw2Q0FBNkM7WUFDN0MsMkNBQTJDO1lBQzNDLFFBQVE7WUFDUixRQUFRO1lBQ1IsT0FBTztZQUNQLG1CQUFtQjtZQUNuQixpQ0FBaUM7U0FDcEMsQ0FBQztRQXNETSxVQUFLLEdBQUcsQ0FBQyxPQUFvQixFQUFFLEVBQUU7WUFDckMsT0FBTyxPQUFPLElBQUksT0FBTyxDQUFDLEtBQUssSUFBSSxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDdkQsQ0FBQyxDQUFDO1FBRU0sZUFBVSxHQUFHLENBQUMsS0FBb0IsRUFBRSxFQUFFO1lBQzFDLE9BQU8sS0FBSyxDQUFDLEdBQUcsS0FBSyxLQUFLLElBQUksS0FBSyxDQUFDLE9BQU8sS0FBSyxDQUFDLENBQUM7UUFDdEQsQ0FBQyxDQUFDO0lBeERGLENBQUM7SUFHRCxTQUFTLENBQUMsS0FBb0I7UUFDMUIsOEJBQThCO1FBQzlCLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3pCLE9BQU87U0FDVjtRQUVELHFDQUFxQztRQUNyQyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELFNBQVMsQ0FBQyxLQUFvQjtRQUMxQixzQ0FBc0M7UUFDdEMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxFQUFFO1lBQzNCLE9BQU87U0FDVjtRQUVELDJCQUEyQjtRQUMzQixNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUVoRCxpREFBaUQ7UUFDakQsdUJBQXVCO1FBQ3ZCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEVBQUU7WUFDaEQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3hDO1FBRUQsTUFBTSxnQkFBZ0IsR0FBRyxjQUFjLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUV4RSxJQUFJLEtBQUssQ0FBQyxRQUFRLElBQUksZ0JBQWdCLEtBQUssQ0FBQyxFQUFFO1lBQzFDLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLGNBQWMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN0RCxPQUFPLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztTQUNqQztRQUVELElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxJQUFJLGdCQUFnQixLQUFLLGNBQWMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ25FLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDOUIsT0FBTyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7U0FDakM7SUFDTCxDQUFDO0lBRUQsSUFBWSxPQUFPO1FBQ2YsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQztJQUMxQyxDQUFDO0lBRU8saUJBQWlCO1FBQ3JCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDckUsT0FBTyxLQUFLLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQztJQUMzQixDQUFDOzt3R0FsRVEsV0FBVzs0RkFBWCxXQUFXOzJGQUFYLFdBQVc7a0JBSHZCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGVBQWU7aUJBQzVCO3dIQXNCRyxTQUFTO3NCQURSLFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lcn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1BsYXRmb3JtfSBmcm9tICdAYnJhdm9iaXQvYmItZm91bmRhdGlvbic7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2JiRm9jdXNUcmFwXSdcbn0pXG5leHBvcnQgY2xhc3MgQmJGb2N1c1RyYXAge1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZm9jdXNhYmxlRWxlbWVudHMgPSBbXG4gICAgICAgICdhW2hyZWZdJyxcbiAgICAgICAgJ2FyZWFbaHJlZl0nLFxuICAgICAgICAnaW5wdXQ6bm90KFtkaXNhYmxlZF0pOm5vdChbdHlwZT1cImhpZGRlblwiXSk6bm90KFthcmlhLWhpZGRlbl0pJyxcbiAgICAgICAgJ3NlbGVjdDpub3QoW2Rpc2FibGVkXSk6bm90KFthcmlhLWhpZGRlbl0pJyxcbiAgICAgICAgJ3RleHRhcmVhOm5vdChbZGlzYWJsZWRdKTpub3QoW2FyaWEtaGlkZGVuXSknLFxuICAgICAgICAnYnV0dG9uOm5vdChbZGlzYWJsZWRdKTpub3QoW2FyaWEtaGlkZGVuXSknLFxuICAgICAgICAnaWZyYW1lJyxcbiAgICAgICAgJ29iamVjdCcsXG4gICAgICAgICdlbWJlZCcsXG4gICAgICAgICdbY29udGVudGVkaXRhYmxlXScsXG4gICAgICAgICdbdGFiaW5kZXhdOm5vdChbdGFiaW5kZXhePVwiLVwiXSknXG4gICAgXTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX3BsYXRmb3JtOiBQbGF0Zm9ybSxcbiAgICAgICAgICAgICAgICBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bicsIFsnJGV2ZW50J10pXG4gICAgb25LZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIC8vIFZhbGlkYXRlIGl0IGlzIGEgdGFiIGV2ZW50LlxuICAgICAgICBpZiAoIXRoaXMuaXNUYWJFdmVudChldmVudCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFRyYXAgdGhlIGZvY3VzIGluc2lkZSB0aGUgZWxlbWVudC5cbiAgICAgICAgcmV0dXJuIHRoaXMudHJhcEZvY3VzKGV2ZW50KTtcbiAgICB9XG5cbiAgICB0cmFwRm9jdXMoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgLy8gVmFsaWRhdGUgdGhhdCB0aGUgRE9NIGlzIGF2YWlsYWJsZS5cbiAgICAgICAgaWYgKCF0aGlzLl9wbGF0Zm9ybS5pc0Jyb3dzZXIpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEdldCBhbGwgZm9jdXNhYmxlIG5vZGVzLlxuICAgICAgICBjb25zdCBmb2N1c2FibGVOb2RlcyA9IHRoaXMuZ2V0Rm9jdXNhYmxlTm9kZXMoKTtcblxuICAgICAgICAvLyBGb2N1cyB0aGUgZmlyc3QgYXZhaWxhYmxlIGVsZW1lbnQgaWYgdGhlIGZvY3VzXG4gICAgICAgIC8vIGlzIG5vdCBpbiB0aGUgbW9kYWwuXG4gICAgICAgIGlmICghdGhpcy5lbGVtZW50LmNvbnRhaW5zKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5mb2N1cyhmb2N1c2FibGVOb2Rlc1swXSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBmb2N1c2VkSXRlbUluZGV4ID0gZm9jdXNhYmxlTm9kZXMuaW5kZXhPZihkb2N1bWVudC5hY3RpdmVFbGVtZW50KTtcblxuICAgICAgICBpZiAoZXZlbnQuc2hpZnRLZXkgJiYgZm9jdXNlZEl0ZW1JbmRleCA9PT0gMCkge1xuICAgICAgICAgICAgdGhpcy5mb2N1cyhmb2N1c2FibGVOb2Rlc1tmb2N1c2FibGVOb2Rlcy5sZW5ndGggLSAxXSk7XG4gICAgICAgICAgICByZXR1cm4gZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghZXZlbnQuc2hpZnRLZXkgJiYgZm9jdXNlZEl0ZW1JbmRleCA9PT0gZm9jdXNhYmxlTm9kZXMubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgdGhpcy5mb2N1cyhmb2N1c2FibGVOb2Rlc1swXSk7XG4gICAgICAgICAgICByZXR1cm4gZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IGVsZW1lbnQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRGb2N1c2FibGVOb2RlcygpIHtcbiAgICAgICAgY29uc3Qgbm9kZXMgPSB0aGlzLmVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCh0aGlzLl9mb2N1c2FibGVFbGVtZW50cyk7XG4gICAgICAgIHJldHVybiBBcnJheSguLi5ub2Rlcyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmb2N1cyA9IChlbGVtZW50OiBIVE1MRWxlbWVudCkgPT4ge1xuICAgICAgICByZXR1cm4gZWxlbWVudCAmJiBlbGVtZW50LmZvY3VzICYmIGVsZW1lbnQuZm9jdXMoKTtcbiAgICB9O1xuXG4gICAgcHJpdmF0ZSBpc1RhYkV2ZW50ID0gKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICAgIHJldHVybiBldmVudC5rZXkgPT09ICdUYWInIHx8IGV2ZW50LmtleUNvZGUgPT09IDk7XG4gICAgfTtcblxufVxuIl19
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXMtdHJhcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYi1mb3VuZGF0aW9uL2VsZW1lbnRzL3NyYy9saWIvZGlyZWN0aXZlcy9mb2N1cy10cmFwLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFjLFlBQVksRUFBQyxNQUFNLGVBQWUsQ0FBQzs7O0FBTWxFLE1BQU0sT0FBTyxXQUFXO0lBZ0JwQixZQUFvQixTQUFtQixFQUNuQixXQUF1QjtRQUR2QixjQUFTLEdBQVQsU0FBUyxDQUFVO1FBQ25CLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBZjFCLHVCQUFrQixHQUFHO1lBQ2xDLFNBQVM7WUFDVCxZQUFZO1lBQ1osK0RBQStEO1lBQy9ELDJDQUEyQztZQUMzQyw2Q0FBNkM7WUFDN0MsMkNBQTJDO1lBQzNDLFFBQVE7WUFDUixRQUFRO1lBQ1IsT0FBTztZQUNQLG1CQUFtQjtZQUNuQixpQ0FBaUM7U0FDcEMsQ0FBQztRQXNETSxVQUFLLEdBQUcsQ0FBQyxPQUFvQixFQUFFLEVBQUU7WUFDckMsT0FBTyxPQUFPLElBQUksT0FBTyxDQUFDLEtBQUssSUFBSSxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDdkQsQ0FBQyxDQUFDO1FBRU0sZUFBVSxHQUFHLENBQUMsS0FBb0IsRUFBRSxFQUFFO1lBQzFDLE9BQU8sS0FBSyxDQUFDLEdBQUcsS0FBSyxLQUFLLElBQUksS0FBSyxDQUFDLE9BQU8sS0FBSyxDQUFDLENBQUM7UUFDdEQsQ0FBQyxDQUFDO0lBeERGLENBQUM7SUFHRCxTQUFTLENBQUMsS0FBb0I7UUFDMUIsOEJBQThCO1FBQzlCLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3pCLE9BQU87U0FDVjtRQUVELHFDQUFxQztRQUNyQyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELFNBQVMsQ0FBQyxLQUFvQjtRQUMxQixzQ0FBc0M7UUFDdEMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxFQUFFO1lBQzNCLE9BQU87U0FDVjtRQUVELDJCQUEyQjtRQUMzQixNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUVoRCxpREFBaUQ7UUFDakQsdUJBQXVCO1FBQ3ZCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEVBQUU7WUFDaEQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3hDO1FBRUQsTUFBTSxnQkFBZ0IsR0FBRyxjQUFjLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUV4RSxJQUFJLEtBQUssQ0FBQyxRQUFRLElBQUksZ0JBQWdCLEtBQUssQ0FBQyxFQUFFO1lBQzFDLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLGNBQWMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN0RCxPQUFPLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztTQUNqQztRQUVELElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxJQUFJLGdCQUFnQixLQUFLLGNBQWMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ25FLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDOUIsT0FBTyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7U0FDakM7SUFDTCxDQUFDO0lBRUQsSUFBWSxPQUFPO1FBQ2YsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQztJQUMxQyxDQUFDO0lBRU8saUJBQWlCO1FBQ3JCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDckUsT0FBTyxLQUFLLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQztJQUMzQixDQUFDOzt3R0FsRVEsV0FBVzs0RkFBWCxXQUFXOzJGQUFYLFdBQVc7a0JBSHZCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGVBQWU7aUJBQzVCO3dIQXNCRyxTQUFTO3NCQURSLFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lcn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1BsYXRmb3JtfSBmcm9tICdAYW5ndWxhci9jZGsvcGxhdGZvcm0nO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tiYkZvY3VzVHJhcF0nXG59KVxuZXhwb3J0IGNsYXNzIEJiRm9jdXNUcmFwIHtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2ZvY3VzYWJsZUVsZW1lbnRzID0gW1xuICAgICAgICAnYVtocmVmXScsXG4gICAgICAgICdhcmVhW2hyZWZdJyxcbiAgICAgICAgJ2lucHV0Om5vdChbZGlzYWJsZWRdKTpub3QoW3R5cGU9XCJoaWRkZW5cIl0pOm5vdChbYXJpYS1oaWRkZW5dKScsXG4gICAgICAgICdzZWxlY3Q6bm90KFtkaXNhYmxlZF0pOm5vdChbYXJpYS1oaWRkZW5dKScsXG4gICAgICAgICd0ZXh0YXJlYTpub3QoW2Rpc2FibGVkXSk6bm90KFthcmlhLWhpZGRlbl0pJyxcbiAgICAgICAgJ2J1dHRvbjpub3QoW2Rpc2FibGVkXSk6bm90KFthcmlhLWhpZGRlbl0pJyxcbiAgICAgICAgJ2lmcmFtZScsXG4gICAgICAgICdvYmplY3QnLFxuICAgICAgICAnZW1iZWQnLFxuICAgICAgICAnW2NvbnRlbnRlZGl0YWJsZV0nLFxuICAgICAgICAnW3RhYmluZGV4XTpub3QoW3RhYmluZGV4Xj1cIi1cIl0pJ1xuICAgIF07XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9wbGF0Zm9ybTogUGxhdGZvcm0sXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZikge1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxuICAgIG9uS2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICAvLyBWYWxpZGF0ZSBpdCBpcyBhIHRhYiBldmVudC5cbiAgICAgICAgaWYgKCF0aGlzLmlzVGFiRXZlbnQoZXZlbnQpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBUcmFwIHRoZSBmb2N1cyBpbnNpZGUgdGhlIGVsZW1lbnQuXG4gICAgICAgIHJldHVybiB0aGlzLnRyYXBGb2N1cyhldmVudCk7XG4gICAgfVxuXG4gICAgdHJhcEZvY3VzKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIC8vIFZhbGlkYXRlIHRoYXQgdGhlIERPTSBpcyBhdmFpbGFibGUuXG4gICAgICAgIGlmICghdGhpcy5fcGxhdGZvcm0uaXNCcm93c2VyKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBHZXQgYWxsIGZvY3VzYWJsZSBub2Rlcy5cbiAgICAgICAgY29uc3QgZm9jdXNhYmxlTm9kZXMgPSB0aGlzLmdldEZvY3VzYWJsZU5vZGVzKCk7XG5cbiAgICAgICAgLy8gRm9jdXMgdGhlIGZpcnN0IGF2YWlsYWJsZSBlbGVtZW50IGlmIHRoZSBmb2N1c1xuICAgICAgICAvLyBpcyBub3QgaW4gdGhlIG1vZGFsLlxuICAgICAgICBpZiAoIXRoaXMuZWxlbWVudC5jb250YWlucyhkb2N1bWVudC5hY3RpdmVFbGVtZW50KSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZm9jdXMoZm9jdXNhYmxlTm9kZXNbMF0pO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZm9jdXNlZEl0ZW1JbmRleCA9IGZvY3VzYWJsZU5vZGVzLmluZGV4T2YoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCk7XG5cbiAgICAgICAgaWYgKGV2ZW50LnNoaWZ0S2V5ICYmIGZvY3VzZWRJdGVtSW5kZXggPT09IDApIHtcbiAgICAgICAgICAgIHRoaXMuZm9jdXMoZm9jdXNhYmxlTm9kZXNbZm9jdXNhYmxlTm9kZXMubGVuZ3RoIC0gMV0pO1xuICAgICAgICAgICAgcmV0dXJuIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWV2ZW50LnNoaWZ0S2V5ICYmIGZvY3VzZWRJdGVtSW5kZXggPT09IGZvY3VzYWJsZU5vZGVzLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgIHRoaXMuZm9jdXMoZm9jdXNhYmxlTm9kZXNbMF0pO1xuICAgICAgICAgICAgcmV0dXJuIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBlbGVtZW50KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0Rm9jdXNhYmxlTm9kZXMoKSB7XG4gICAgICAgIGNvbnN0IG5vZGVzID0gdGhpcy5lbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwodGhpcy5fZm9jdXNhYmxlRWxlbWVudHMpO1xuICAgICAgICByZXR1cm4gQXJyYXkoLi4ubm9kZXMpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZm9jdXMgPSAoZWxlbWVudDogSFRNTEVsZW1lbnQpID0+IHtcbiAgICAgICAgcmV0dXJuIGVsZW1lbnQgJiYgZWxlbWVudC5mb2N1cyAmJiBlbGVtZW50LmZvY3VzKCk7XG4gICAgfTtcblxuICAgIHByaXZhdGUgaXNUYWJFdmVudCA9IChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgICByZXR1cm4gZXZlbnQua2V5ID09PSAnVGFiJyB8fCBldmVudC5rZXlDb2RlID09PSA5O1xuICAgIH07XG5cbn1cbiJdfQ==
@@ -1,10 +1,8 @@
1
1
  import { Directive } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
- import * as i1 from "@bravobit/bb-foundation";
4
3
  export class BbFocus {
5
- constructor(_zone, _platform, _elementRef) {
4
+ constructor(_zone, _elementRef) {
6
5
  this._zone = _zone;
7
- this._platform = _platform;
8
6
  this._elementRef = _elementRef;
9
7
  }
10
8
  get nativeElement() {
@@ -17,7 +15,7 @@ export class BbFocus {
17
15
  focus() {
18
16
  // Check if set timeout exists and the user is
19
17
  // using the site on desktop devices.
20
- if (!this._platform.isDesktop || !setTimeout) {
18
+ if (!setTimeout) {
21
19
  return;
22
20
  }
23
21
  // Check if the element and the focus method exist, if so focus the element.
@@ -28,12 +26,12 @@ export class BbFocus {
28
26
  setTimeout(() => this.nativeElement.focus(), 0);
29
27
  }
30
28
  }
31
- BbFocus.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: BbFocus, deps: [{ token: i0.NgZone }, { token: i1.Platform }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
32
- BbFocus.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.0.4", type: BbFocus, selector: "[bbFocus]", ngImport: i0 });
33
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: BbFocus, decorators: [{
29
+ BbFocus.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: BbFocus, deps: [{ token: i0.NgZone }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
30
+ BbFocus.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.1.1", type: BbFocus, selector: "[bbFocus]", ngImport: i0 });
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: BbFocus, decorators: [{
34
32
  type: Directive,
35
33
  args: [{
36
34
  selector: '[bbFocus]'
37
35
  }]
38
- }], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i1.Platform }, { type: i0.ElementRef }]; } });
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXMuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9lbGVtZW50cy9zcmMvbGliL2RpcmVjdGl2ZXMvZm9jdXMuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IsU0FBUyxFQUFxQixNQUFNLGVBQWUsQ0FBQzs7O0FBTTNFLE1BQU0sT0FBTyxPQUFPO0lBRWhCLFlBQW9CLEtBQWEsRUFDYixTQUFtQixFQUNuQixXQUF1QjtRQUZ2QixVQUFLLEdBQUwsS0FBSyxDQUFRO1FBQ2IsY0FBUyxHQUFULFNBQVMsQ0FBVTtRQUNuQixnQkFBVyxHQUFYLFdBQVcsQ0FBWTtJQUMzQyxDQUFDO0lBRUQsSUFBWSxhQUFhO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUM7SUFDMUMsQ0FBQztJQUVELGVBQWU7UUFDWCwyQ0FBMkM7UUFDM0MsSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRU8sS0FBSztRQUNULDhDQUE4QztRQUM5QyxxQ0FBcUM7UUFDckMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQzFDLE9BQU87U0FDVjtRQUVELDRFQUE0RTtRQUM1RSxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFO1lBQ2xELE9BQU87U0FDVjtRQUVELHlDQUF5QztRQUN6QyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNwRCxDQUFDOztvR0E5QlEsT0FBTzt3RkFBUCxPQUFPOzJGQUFQLE9BQU87a0JBSG5CLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLFdBQVc7aUJBQ3hCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBZnRlclZpZXdJbml0LCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIE5nWm9uZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1BsYXRmb3JtfSBmcm9tICdAYnJhdm9iaXQvYmItZm91bmRhdGlvbic7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2JiRm9jdXNdJ1xufSlcbmV4cG9ydCBjbGFzcyBCYkZvY3VzIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF96b25lOiBOZ1pvbmUsXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBfcGxhdGZvcm06IFBsYXRmb3JtLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBuYXRpdmVFbGVtZW50KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgLy8gUnVuIHRoZSBtZXRob2Qgb3V0c2lkZSB0aGUgQW5ndWxhciB6b25lLlxuICAgICAgICB0aGlzLl96b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHRoaXMuZm9jdXMoKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmb2N1cygpIHtcbiAgICAgICAgLy8gQ2hlY2sgaWYgc2V0IHRpbWVvdXQgZXhpc3RzIGFuZCB0aGUgdXNlciBpc1xuICAgICAgICAvLyB1c2luZyB0aGUgc2l0ZSBvbiBkZXNrdG9wIGRldmljZXMuXG4gICAgICAgIGlmICghdGhpcy5fcGxhdGZvcm0uaXNEZXNrdG9wIHx8ICFzZXRUaW1lb3V0KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBDaGVjayBpZiB0aGUgZWxlbWVudCBhbmQgdGhlIGZvY3VzIG1ldGhvZCBleGlzdCwgaWYgc28gZm9jdXMgdGhlIGVsZW1lbnQuXG4gICAgICAgIGlmICghdGhpcy5uYXRpdmVFbGVtZW50IHx8ICF0aGlzLm5hdGl2ZUVsZW1lbnQuZm9jdXMpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEV4ZWN1dGUgdGhlIGZvY3VzIG1ldGhvZCBpbiBhIHRpbWVvdXQuXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5uYXRpdmVFbGVtZW50LmZvY3VzKCksIDApO1xuICAgIH1cblxufVxuIl19
36
+ }], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i0.ElementRef }]; } });
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXMuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9lbGVtZW50cy9zcmMvbGliL2RpcmVjdGl2ZXMvZm9jdXMuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IsU0FBUyxFQUFxQixNQUFNLGVBQWUsQ0FBQzs7QUFLM0UsTUFBTSxPQUFPLE9BQU87SUFFaEIsWUFBb0IsS0FBYSxFQUNiLFdBQXVCO1FBRHZCLFVBQUssR0FBTCxLQUFLLENBQVE7UUFDYixnQkFBVyxHQUFYLFdBQVcsQ0FBWTtJQUMzQyxDQUFDO0lBRUQsSUFBWSxhQUFhO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUM7SUFDMUMsQ0FBQztJQUVELGVBQWU7UUFDWCwyQ0FBMkM7UUFDM0MsSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRU8sS0FBSztRQUNULDhDQUE4QztRQUM5QyxxQ0FBcUM7UUFDckMsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNiLE9BQU87U0FDVjtRQUVELDRFQUE0RTtRQUM1RSxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFO1lBQ2xELE9BQU87U0FDVjtRQUVELHlDQUF5QztRQUN6QyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNwRCxDQUFDOztvR0E3QlEsT0FBTzt3RkFBUCxPQUFPOzJGQUFQLE9BQU87a0JBSG5CLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLFdBQVc7aUJBQ3hCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBZnRlclZpZXdJbml0LCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIE5nWm9uZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2JiRm9jdXNdJ1xufSlcbmV4cG9ydCBjbGFzcyBCYkZvY3VzIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF96b25lOiBOZ1pvbmUsXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZikge1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IG5hdGl2ZUVsZW1lbnQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICAvLyBSdW4gdGhlIG1ldGhvZCBvdXRzaWRlIHRoZSBBbmd1bGFyIHpvbmUuXG4gICAgICAgIHRoaXMuX3pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4gdGhpcy5mb2N1cygpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGZvY3VzKCkge1xuICAgICAgICAvLyBDaGVjayBpZiBzZXQgdGltZW91dCBleGlzdHMgYW5kIHRoZSB1c2VyIGlzXG4gICAgICAgIC8vIHVzaW5nIHRoZSBzaXRlIG9uIGRlc2t0b3AgZGV2aWNlcy5cbiAgICAgICAgaWYgKCFzZXRUaW1lb3V0KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBDaGVjayBpZiB0aGUgZWxlbWVudCBhbmQgdGhlIGZvY3VzIG1ldGhvZCBleGlzdCwgaWYgc28gZm9jdXMgdGhlIGVsZW1lbnQuXG4gICAgICAgIGlmICghdGhpcy5uYXRpdmVFbGVtZW50IHx8ICF0aGlzLm5hdGl2ZUVsZW1lbnQuZm9jdXMpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEV4ZWN1dGUgdGhlIGZvY3VzIG1ldGhvZCBpbiBhIHRpbWVvdXQuXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5uYXRpdmVFbGVtZW50LmZvY3VzKCksIDApO1xuICAgIH1cblxufVxuIl19
@@ -34,9 +34,9 @@ export class BbFormSubmit {
34
34
  return this._formDirective.ngSubmit.pipe(map(() => true));
35
35
  }
36
36
  }
37
- BbFormSubmit.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: BbFormSubmit, deps: [{ token: i0.ElementRef }, { token: i1.FormGroupDirective, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Directive });
38
- BbFormSubmit.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.0.4", type: BbFormSubmit, selector: "form", exportAs: ["bbForm"], ngImport: i0 });
39
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: BbFormSubmit, decorators: [{
37
+ BbFormSubmit.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: BbFormSubmit, deps: [{ token: i0.ElementRef }, { token: i1.FormGroupDirective, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Directive });
38
+ BbFormSubmit.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.1.1", type: BbFormSubmit, selector: "form", exportAs: ["bbForm"], ngImport: i0 });
39
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: BbFormSubmit, decorators: [{
40
40
  type: Directive,
41
41
  args: [{
42
42
  selector: 'form',
@@ -0,0 +1,25 @@
1
+ import { Directive } from '@angular/core';
2
+ import { BehaviorSubject } from 'rxjs';
3
+ import * as i0 from "@angular/core";
4
+ export class BbFormSubmitter {
5
+ constructor() {
6
+ // State.
7
+ this.submitted$ = new BehaviorSubject(false);
8
+ }
9
+ submit() {
10
+ this.submitted$.next(true);
11
+ }
12
+ reset() {
13
+ this.submitted$.next(false);
14
+ }
15
+ }
16
+ BbFormSubmitter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: BbFormSubmitter, deps: [], target: i0.ɵɵFactoryTarget.Directive });
17
+ BbFormSubmitter.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.1.1", type: BbFormSubmitter, selector: "[bbFormSubmitter]", exportAs: ["bbFormSubmitter"], ngImport: i0 });
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: BbFormSubmitter, decorators: [{
19
+ type: Directive,
20
+ args: [{
21
+ selector: '[bbFormSubmitter]',
22
+ exportAs: 'bbFormSubmitter'
23
+ }]
24
+ }] });
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1zdWJtaXR0ZXIuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9lbGVtZW50cy9zcmMvbGliL2RpcmVjdGl2ZXMvZm9ybS1zdWJtaXR0ZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDeEMsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLE1BQU0sQ0FBQzs7QUFNckMsTUFBTSxPQUFPLGVBQWU7SUFKNUI7UUFNSSxTQUFTO1FBQ1QsZUFBVSxHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO0tBVXBEO0lBUkcsTUFBTTtRQUNGLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxLQUFLO1FBQ0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEMsQ0FBQzs7NEdBWFEsZUFBZTtnR0FBZixlQUFlOzJGQUFmLGVBQWU7a0JBSjNCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLG1CQUFtQjtvQkFDN0IsUUFBUSxFQUFFLGlCQUFpQjtpQkFDOUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RpcmVjdGl2ZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdH0gZnJvbSAncnhqcyc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2JiRm9ybVN1Ym1pdHRlcl0nLFxuICAgIGV4cG9ydEFzOiAnYmJGb3JtU3VibWl0dGVyJ1xufSlcbmV4cG9ydCBjbGFzcyBCYkZvcm1TdWJtaXR0ZXIge1xuXG4gICAgLy8gU3RhdGUuXG4gICAgc3VibWl0dGVkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gICAgc3VibWl0KCkge1xuICAgICAgICB0aGlzLnN1Ym1pdHRlZCQubmV4dCh0cnVlKTtcbiAgICB9XG5cbiAgICByZXNldCgpIHtcbiAgICAgICAgdGhpcy5zdWJtaXR0ZWQkLm5leHQoZmFsc2UpO1xuICAgIH1cblxufVxuIl19
@@ -61,9 +61,9 @@ export class BbSelect {
61
61
  this._formControl.required = this._required;
62
62
  }
63
63
  }
64
- BbSelect.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: BbSelect, deps: [{ token: i0.ElementRef }, { token: i1.NgControl, optional: true, self: true }, { token: i2.BbFormControl, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
65
- BbSelect.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.0.4", type: BbSelect, selector: "select[bbInput]", inputs: { disabled: "disabled", required: "required" }, host: { listeners: { "focus": "setFocus(true)", "blur": "setFocus(false)" }, properties: { "disabled": "disabled", "attr.id": "this.id" } }, ngImport: i0 });
66
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: BbSelect, decorators: [{
64
+ BbSelect.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: BbSelect, deps: [{ token: i0.ElementRef }, { token: i1.NgControl, optional: true, self: true }, { token: i2.BbFormControl, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
65
+ BbSelect.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.1.1", type: BbSelect, selector: "select[bbInput]", inputs: { disabled: "disabled", required: "required" }, host: { listeners: { "focus": "setFocus(true)", "blur": "setFocus(false)" }, properties: { "disabled": "disabled", "attr.id": "this.id" } }, ngImport: i0 });
66
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: BbSelect, decorators: [{
67
67
  type: Directive,
68
68
  args: [{
69
69
  selector: 'select[bbInput]',
@@ -109,9 +109,9 @@ export class BbInput extends BbSelect {
109
109
  this._formControl.readonly = this._readonly;
110
110
  }
111
111
  }
112
- BbInput.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: BbInput, deps: [{ token: i0.ElementRef }, { token: i1.NgControl, optional: true, self: true }, { token: i2.BbFormControl, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
113
- BbInput.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.0.4", type: BbInput, selector: "input[bbInput], textarea[bbInput]", inputs: { readonly: "readonly" }, host: { listeners: { "focus": "setFocus(true)", "blur": "setFocus(false)" }, properties: { "disabled": "disabled", "readonly": "readonly" } }, usesInheritance: true, ngImport: i0 });
114
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: BbInput, decorators: [{
112
+ BbInput.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: BbInput, deps: [{ token: i0.ElementRef }, { token: i1.NgControl, optional: true, self: true }, { token: i2.BbFormControl, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
113
+ BbInput.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.1.1", type: BbInput, selector: "input[bbInput], textarea[bbInput]", inputs: { readonly: "readonly" }, host: { listeners: { "focus": "setFocus(true)", "blur": "setFocus(false)" }, properties: { "disabled": "disabled", "readonly": "readonly" } }, usesInheritance: true, ngImport: i0 });
114
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: BbInput, decorators: [{
115
115
  type: Directive,
116
116
  args: [{
117
117
  selector: 'input[bbInput], textarea[bbInput]',
@@ -15,9 +15,9 @@ export class BbTemplate {
15
15
  this._viewContainerRef.createEmbeddedView(template);
16
16
  }
17
17
  }
18
- BbTemplate.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: BbTemplate, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
19
- BbTemplate.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.0.4", type: BbTemplate, selector: "[bbTemplate]", inputs: { bbTemplate: "bbTemplate" }, ngImport: i0 });
20
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: BbTemplate, decorators: [{
18
+ BbTemplate.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: BbTemplate, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
19
+ BbTemplate.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.1.1", type: BbTemplate, selector: "[bbTemplate]", inputs: { bbTemplate: "bbTemplate" }, ngImport: i0 });
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: BbTemplate, decorators: [{
21
21
  type: Directive,
22
22
  args: [{
23
23
  selector: '[bbTemplate]'
@@ -25,8 +25,8 @@ export class BbDropdown {
25
25
  return this.close();
26
26
  }
27
27
  }
28
- BbDropdown.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: BbDropdown, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
29
- BbDropdown.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.4", type: BbDropdown, selector: "bb-dropdown", host: { listeners: { "document:click": "onDocumentClick($event.target)" }, classAttribute: "bb-dropdown" }, ngImport: i0, template: "<button (click)=\"toggle()\"\n [class.opened]=\"visible$ | async\"\n type=\"button\">\n <ng-content></ng-content>\n</button>\n\n<div *ngIf=\"visible$ | async\"\n [@dropdownMenuAnimation]=\"true\"\n class=\"bb-dropdown-menu\"\n role=\"list\">\n <ng-content select=\"[bbDropdownItem], hr\"></ng-content>\n</div>\n", styles: [".bb-dropdown{position:relative;display:inline-block}.bb-dropdown.right>.bb-dropdown-menu{right:0;left:auto;transform-origin:top right}.bb-dropdown-menu{left:0;top:100%;padding:0;z-index:10;display:block;margin:10px 0 0;border-radius:4px;position:absolute;list-style-type:none;background-color:#fff;border:1px solid #cccccc;transform-origin:top left;box-shadow:0 0 6px #0000001a}.bb-dropdown-menu:after{width:0;top:-5px;height:0;right:5px;content:\"\";position:absolute;border-style:solid;border-width:0 10px 5px 10px;border-color:transparent transparent #d9d9d9 transparent}.bb-dropdown-menu>hr{margin:0;height:1px;border:none;background-color:#ccc}.bb-dropdown-item{width:100%;border:none;line-height:1;display:block;cursor:pointer;text-align:left;font-weight:500;-webkit-user-select:none;user-select:none;padding:12px 20px;white-space:nowrap;text-decoration:none;color:#676767!important;background-color:transparent;transition:background-color .25s cubic-bezier(0,0,.2,1)}.bb-dropdown-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.bb-dropdown-item:hover{background-color:#f6f6f6}.bb-dropdown-item:focus{box-shadow:0 0 0 3px #dce0e980}.bb-dropdown-item:active{background-color:#f0f0f0}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], animations: [
28
+ BbDropdown.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: BbDropdown, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
29
+ BbDropdown.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.1", type: BbDropdown, selector: "bb-dropdown", host: { listeners: { "document:click": "onDocumentClick($event.target)" }, classAttribute: "bb-dropdown" }, ngImport: i0, template: "<button (click)=\"toggle()\"\n [class.opened]=\"visible$ | async\"\n type=\"button\">\n <ng-content></ng-content>\n</button>\n\n<div *ngIf=\"visible$ | async\"\n [@dropdownMenuAnimation]=\"true\"\n class=\"bb-dropdown-menu\"\n role=\"list\">\n <ng-content select=\"[bbDropdownItem], hr\"></ng-content>\n</div>\n", styles: [".bb-dropdown{position:relative;display:inline-block}.bb-dropdown.right>.bb-dropdown-menu{right:0;left:auto;transform-origin:top right}.bb-dropdown-menu{left:0;top:100%;padding:0;z-index:10;display:block;margin:10px 0 0;border-radius:4px;position:absolute;list-style-type:none;background-color:#fff;border:1px solid #cccccc;transform-origin:top left;box-shadow:0 0 6px #0000001a}.bb-dropdown-menu:after{width:0;top:-5px;height:0;right:5px;content:\"\";position:absolute;border-style:solid;border-width:0 10px 5px 10px;border-color:transparent transparent #d9d9d9 transparent}.bb-dropdown-menu>hr{margin:0;height:1px;border:none;background-color:#ccc}.bb-dropdown-item{width:100%;border:none;line-height:1;display:block;cursor:pointer;text-align:left;font-weight:500;-webkit-user-select:none;user-select:none;padding:12px 20px;white-space:nowrap;text-decoration:none;color:#676767!important;background-color:transparent;transition:background-color .25s cubic-bezier(0,0,.2,1)}.bb-dropdown-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.bb-dropdown-item:hover{background-color:#f6f6f6}.bb-dropdown-item:focus{box-shadow:0 0 0 3px #dce0e980}.bb-dropdown-item:active{background-color:#f0f0f0}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], animations: [
30
30
  trigger('dropdownMenuAnimation', [
31
31
  transition(':enter', [
32
32
  // 1. Set the initial state.
@@ -42,7 +42,7 @@ BbDropdown.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "1
42
42
  ])
43
43
  ])
44
44
  ], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
45
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: BbDropdown, decorators: [{
45
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: BbDropdown, decorators: [{
46
46
  type: Component,
47
47
  args: [{ selector: 'bb-dropdown', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: { 'class': 'bb-dropdown' }, preserveWhitespaces: false, animations: [
48
48
  trigger('dropdownMenuAnimation', [
@@ -77,9 +77,9 @@ export class BbDropdownItem {
77
77
  this._parent?.close();
78
78
  }
79
79
  }
80
- BbDropdownItem.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: BbDropdownItem, deps: [{ token: BbDropdown, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
81
- BbDropdownItem.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.0.4", type: BbDropdownItem, selector: "[bbDropdownItem]", inputs: { closeOnClick: "closeOnClick" }, host: { listeners: { "click": "onClick()" }, classAttribute: "bb-dropdown-item" }, ngImport: i0 });
82
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: BbDropdownItem, decorators: [{
80
+ BbDropdownItem.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: BbDropdownItem, deps: [{ token: BbDropdown, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
81
+ BbDropdownItem.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.1.1", type: BbDropdownItem, selector: "[bbDropdownItem]", inputs: { closeOnClick: "closeOnClick" }, host: { listeners: { "click": "onClick()" }, classAttribute: "bb-dropdown-item" }, ngImport: i0 });
82
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: BbDropdownItem, decorators: [{
83
83
  type: Directive,
84
84
  args: [{
85
85
  selector: '[bbDropdownItem]',
@@ -1,5 +1,6 @@
1
1
  import { BbDropdown, BbDropdownItem } from './dropdown/dropdown.component';
2
2
  import { ELEMENTS_ERRORS, ELEMENTS_ICONS } from './elements.interfaces';
3
+ import { BbFormSubmitter } from './directives/form-submitter.directive';
3
4
  import { BbImagePicker } from './image-picker/image-picker.component';
4
5
  import { BbFormControl } from './form-control/form-control.component';
5
6
  import { BbFilePicker } from './file-picker/file-picker.component';
@@ -32,6 +33,7 @@ const DECLARATIONS_EXPORTS = [
32
33
  BbTemplate,
33
34
  BbFormError,
34
35
  BbFormSubmit,
36
+ BbFormSubmitter,
35
37
  BbInput,
36
38
  BbSelect,
37
39
  BbFocus,
@@ -70,12 +72,13 @@ export class ElementsModule {
70
72
  };
71
73
  }
72
74
  }
73
- ElementsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: ElementsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
74
- ElementsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.4", ngImport: i0, type: ElementsModule, declarations: [
75
+ ElementsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: ElementsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
76
+ ElementsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.1.1", ngImport: i0, type: ElementsModule, declarations: [
75
77
  // Directives.
76
78
  BbTemplate,
77
79
  BbFormError,
78
80
  BbFormSubmit,
81
+ BbFormSubmitter,
79
82
  BbInput,
80
83
  BbSelect,
81
84
  BbFocus,
@@ -106,6 +109,7 @@ ElementsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version:
106
109
  BbTemplate,
107
110
  BbFormError,
108
111
  BbFormSubmit,
112
+ BbFormSubmitter,
109
113
  BbInput,
110
114
  BbSelect,
111
115
  BbFocus,
@@ -132,8 +136,8 @@ ElementsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version:
132
136
  BbFilePicker,
133
137
  BbImagePicker,
134
138
  BbDatePicker] });
135
- ElementsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: ElementsModule, imports: [CommonModule, ReactiveFormsModule, LocalizeModule] });
136
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: ElementsModule, decorators: [{
139
+ ElementsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: ElementsModule, imports: [CommonModule, ReactiveFormsModule, LocalizeModule] });
140
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: ElementsModule, decorators: [{
137
141
  type: NgModule,
138
142
  args: [{
139
143
  imports: [CommonModule, ReactiveFormsModule, LocalizeModule],
@@ -174,4 +178,4 @@ export function getErrors() {
174
178
  };
175
179
  return data;
176
180
  }
177
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudHMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9lbGVtZW50cy9zcmMvbGliL2VsZW1lbnRzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFFLGNBQWMsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQ3pFLE9BQU8sRUFBQyxlQUFlLEVBQUUsY0FBYyxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDdEUsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBQ3BFLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQztBQUNwRSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDakUsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQ2pFLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUNoRSxPQUFPLEVBQUMsUUFBUSxFQUFFLFFBQVEsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ2hFLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUNoRSxPQUFPLEVBQUMsT0FBTyxFQUFFLFFBQVEsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQy9ELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUM5RCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDOUQsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQzlELE9BQU8sRUFBQyxRQUFRLEVBQUUsUUFBUSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFzQixRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGlDQUFpQyxD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QUFXLEVBQUUsQ0FBQyxFQUFDLE9BQU8sRUFBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUMsS0FBSyxFQUFFLGlDQUFpQyxFQUFFLElBQUksRUFBRSxFQUFDLE9BQU8sRUFBQyxFQUFDLENBQUM7UUFDekYsT0FBTyxFQUFFLENBQUMsRUFBQyxJQUFJLEVBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFDLEtBQUssRUFBRSw2QkFBNkIsRUFBRSxJQUFJLEVBQUUsRUFBQyxJQUFJLEVBQUMsRUFBQyxDQUFDO1FBQzNFLE9BQU8sRUFBRSxDQUFDLEVBQUMsSUFBSSxFQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBQyxLQUFLLEVBQUUsNkJBQTZCLEVBQUUsSUFBSSxFQUFFLEVBQUMsSUFBSSxFQUFDLEVBQUMsQ0FBQztRQUMzRSxXQUFXLEVBQUUsR0FBRyxFQUFFLENBQUMsaUNBQWlDO1FBQ3BELGVBQWUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxxQ0FBcUM7UUFDNUQsU0FBUyxFQUFFLENBQUMsRUFBQyxjQUFjLEVBQUUsWUFBWSxFQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDNUMsS0FBSyxFQUFFLCtCQUErQjtZQUN0QyxJQUFJLEVBQUUsRUFBQyxjQUFjLEVBQUUsWUFBWSxFQUFDO1NBQ3ZDLENBQUM7UUFDRixTQUFTLEVBQUUsQ0FBQyxFQUFDLGNBQWMsRUFBRSxZQUFZLEVBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUM1QyxLQUFLLEVBQUUsK0JBQStCO1lBQ3RDLElBQUksRUFBRSxFQUFDLGNBQWMsRUFBRSxZQUFZLEVBQUM7U0FDdkMsQ0FBQztLQUNMLENBQUM7SUFFRixPQUFPLElBQUksQ0FBQztBQUNoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtCYkRyb3Bkb3duLCBCYkRyb3Bkb3duSXRlbX0gZnJvbSAnLi9kcm9wZG93bi9kcm9wZG93bi5jb21wb25lbnQnO1xuaW1wb3J0IHtFTEVNRU5UU19FUlJPUlMsIEVMRU1FTlRTX0lDT05TfSBmcm9tICcuL2VsZW1lbnRzLmludGVyZmFjZXMnO1xuaW1wb3J0IHtCYkltYWdlUGlja2VyfSBmcm9tICcuL2ltYWdlLXBpY2tlci9pbWFnZS1waWNrZXIuY29tcG9uZW50JztcbmltcG9ydCB7QmJGb3JtQ29udHJvbH0gZnJvbSAnLi9mb3JtLWNvbnRyb2wvZm9ybS1jb250cm9sLmNvbXBvbmVudCc7XG5pbXBvcnQge0JiRmlsZVBpY2tlcn0gZnJvbSAnLi9maWxlLXBpY2tlci9maWxlLXBpY2tlci5jb21wb25lbnQnO1xuaW1wb3J0IHtCYkRhdGVQaWNrZXJ9IGZyb20gJy4vZGF0ZS1waWNrZXIvZGF0ZS1waWNrZXIuY29tcG9uZW50JztcbmltcG9ydCB7TG9jYWxpemVNb2R1bGV9IGZyb20gJ0BicmF2b2JpdC9iYi1mb3VuZGF0aW9uL2xvY2FsaXplJztcbmltcG9ydCB7QmJQcmVmaXgsIEJiU3VmZml4fSBmcm9tICcuL2RpcmVjdGl2ZXMvYWRkb24uZGlyZWN0aXZlJztcbmltcG9ydCB7QmJGb3JtU3VibWl0fSBmcm9tICcuL2RpcmVjdGl2ZXMvZm9ybS1zdWJtaXQuZGlyZWN0aXZlJztcbmltcG9ydCB7QmJJbnB1dCwgQmJTZWxlY3R9IGZyb20gJy4vZGlyZWN0aXZlcy9pbnB1dC5kaXJlY3RpdmUnO1xuaW1wb3J0IHtCYkZvcm1Hcm91cH0gZnJvbSAnLi9mb3JtLWdyb3VwL2Zvcm0tZ3JvdXAuY29tcG9uZW50JztcbmltcG9ydCB7QmJGb3JtRXJyb3J9IGZyb20gJy4vZm9ybS1lcnJvci9mb3JtLWVycm9yLmNvbXBvbmVudCc7XG5pbXBvcnQge0JiRm9jdXNUcmFwfSBmcm9tICcuL2RpcmVjdGl2ZXMvZm9jdXMtdHJhcC5kaXJlY3RpdmUnO1xuaW1wb3J0IHtCYkFuY2hvciwgQmJCdXR0b259IGZyb20gJy4vYnV0dG9uL2J1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHtNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0JiVGVtcGxhdGV9IGZyb20gJy4vZGlyZWN0aXZlcy90ZW1wbGF0ZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHtCYkF1dG9zaXplfSBmcm9tICcuL2RpcmVjdGl2ZXMvYXV0b3NpemUuZGlyZWN0aXZlJztcbmltcG9ydCB7QmJSZWxhdGl2ZVRpbWV9IGZyb20gJy4vcGlwZXMvcmVsYXRpdmUtdGltZS5waXBlJztcbmltcG9ydCB7QmJDaGVja2JveH0gZnJvbSAnLi9jaGVja2JveC9jaGVja2JveC5jb21wb25lbnQnO1xuaW1wb3J0IHtCYlNwaW5uZXJ9IGZyb20gJy4vc3Bpbm5lci9zcGlubmVyLmNvbXBvbmVudCc7XG5pbXBvcnQge0JiRm9jdXN9IGZyb20gJy4vZGlyZWN0aXZlcy9mb2N1cy5kaXJlY3RpdmUnO1xuaW1wb3J0IHtCYkZpbGVJbWFnZX0gZnJvbSAnLi9waXBlcy9maWxlLWltYWdlLnBpcGUnO1xuaW1wb3J0IHtSZWFjdGl2ZUZvcm1zTW9kdWxlfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge0JiQXZhdGFyfSBmcm9tICcuL2F2YXRhci9hdmF0YXIuY29tcG9uZW50JztcbmltcG9ydCB7QmJGaWxlU2l6ZX0gZnJvbSAnLi9waXBlcy9maWxlLXNpemUucGlwZSc7XG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7QmJJY29ufSBmcm9tICcuL2ljb24vaWNvbi5jb21wb25lbnQnO1xuaW1wb3J0IHtCYlRhZ30gZnJvbSAnLi90YWcvdGFnLmNvbXBvbmVudCc7XG5cbmNvbnN0IERFQ0xBUkFUSU9OU19FWFBPUlRTID0gW1xuICAgIC8vIERpcmVjdGl2ZXMuXG4gICAgQmJUZW1wbGF0ZSxcbiAgICBCYkZvcm1FcnJvcixcbiAgICBCYkZvcm1TdWJtaXQsXG4gICAgQmJJbnB1dCxcbiAgICBCYlNlbGVjdCxcbiAgICBCYkZvY3VzLFxuICAgIEJiRm9jdXNUcmFwLFxuICAgIEJiQXV0b3NpemUsXG4gICAgQmJQcmVmaXgsXG4gICAgQmJTdWZmaXgsXG4gICAgLy8gUGlwZXMuXG4gICAgQmJGaWxlU2l6ZSxcbiAgICBCYkZpbGVJbWFnZSxcbiAgICBCYlJlbGF0aXZlVGltZSxcbiAgICAvLyBDb21wb25lbnRzLlxuICAgIEJiQnV0dG9uLFxuICAgIEJiQW5jaG9yLFxuICAgIEJiU3Bpbm5lcixcbiAgICBCYkljb24sXG4gICAgQmJGb3JtQ29udHJvbCxcbiAgICBCYkZvcm1Hcm91cCxcbiAgICBCYkNoZWNrYm94LFxuICAgIEJiRHJvcGRvd24sXG4gICAgQmJEcm9wZG93bkl0ZW0sXG4gICAgQmJUYWcsXG4gICAgQmJBdmF0YXIsXG4gICAgQmJGaWxlUGlja2VyLFxuICAgIEJiSW1hZ2VQaWNrZXIsXG4gICAgQmJEYXRlUGlja2VyXG5dO1xuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIExvY2FsaXplTW9kdWxlXSxcbiAgICBkZWNsYXJhdGlvbnM6IFsuLi5ERUNMQVJBVElPTlNfRVhQT1JUU10sXG4gICAgZXhwb3J0czogWy4uLkRFQ0xBUkFUSU9OU19FWFBPUlRTXVxufSlcbmV4cG9ydCBjbGFzcyBFbGVtZW50c01vZHVsZSB7XG5cbiAgICBzdGF0aWMgZm9yUm9vdCgpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPEVsZW1lbnRzTW9kdWxlPiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBuZ01vZHVsZTogRWxlbWVudHNNb2R1bGUsXG4gICAgICAgICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgICAgICAgICB7cHJvdmlkZTogRUxFTUVOVFNfRVJST1JTLCB1c2VGYWN0b3J5OiBnZXRFcnJvcnMsIG11bHRpOiB0cnVlfSxcbiAgICAgICAgICAgICAgICBFTEVNRU5UU19NQVRFUklBTF9JQ09OXG4gICAgICAgICAgICBdXG4gICAgICAgIH07XG4gICAgfVxuXG59XG5cbmV4cG9ydCBjb25zdCBFTEVNRU5UU19NQVRFUklBTF9JQ09OID0ge1xuICAgIHByb3ZpZGU6IEVMRU1FTlRTX0lDT05TLFxuICAgIHVzZVZhbHVlOiB7bmFtZXNwYWNlOiAnbWF0ZXJpYWwnLCBjbGFzc05hbWU6ICdtYXRlcmlhbC1pY29ucycsIHVzZXM6ICdjb250ZW50JywgdHlwZTogJ2ZvbnQnfSxcbiAgICBtdWx0aTogdHJ1ZVxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldEVycm9ycygpIHtcbiAgICBjb25zdCBkYXRhID0ge1xuICAgICAgICB1bmtub3duOiAoKSA9PiAnZm9ybS1jb250cm9sLWVycm9ycy51bmtub3duJyxcbiAgICAgICAgcmVxdWlyZWQ6ICgpID0+ICdmb3JtLWNvbnRyb2wtZXJyb3JzLnJlcXVpcmVkJyxcbiAgICAgICAgcGF0dGVybjogKCkgPT4gJ2Zvcm0tY29udHJvbC1lcnJvcnMucGF0dGVybicsXG4gICAgICAgIGVtYWlsOiAoKSA9PiAnZm9ybS1jb250cm9sLWVycm9ycy5lbWFpbCcsXG4gICAgICAgIGVtYWlsVGFrZW46ICgpID0+ICdmb3JtLWNvbnRyb2wtZXJyb3JzLmVtYWlsVGFrZW4nLFxuICAgICAgICBwYXNzd29yZE1hdGNoOiAoKSA9PiAnZm9ybS1jb250cm9sLWVycm9ycy5wYXNzd29yZE1hdGNoJyxcbiAgICAgICAgY29uZmlybTogKCkgPT4gJ2Zvcm0tY29udHJvbC1lcnJvcnMuY29uZmlybScsXG4gICAgICAgIGZ1bGxOdW1iZXI6ICgpID0+ICdmb3JtLWNvbnRyb2wtZXJyb3JzLmZ1bGxOdW1iZXInLFxuICAgICAgICBtaW46ICh7bWlufSkgPT4gKHt0b2tlbjogJ2Zvcm0tY29udHJvbC1lcnJvcnMubWluJywgZGF0YToge21pbn19KSxcbiAgICAgICAgbWF4OiAoe21heH0pID0+ICh7dG9rZW46ICdmb3JtLWNvbnRyb2wtZXJyb3JzLm1heCcsIGRhdGE6IHttYXh9fSksXG4gICAgICAgIG1heEZpbGVTaXplOiAoe21heFNpemV9KSA9PiAoe3Rva2VuOiAnZm9ybS1jb250cm9sLWVycm9ycy5tYXhGaWxlU2l6ZScsIGRhdGE6IHttYXhTaXplfX0pLFxuICAgICAgICBtaW5EYXRlOiAoe2RhdGV9KSA9PiAoe3Rva2VuOiAnZm9ybS1jb250cm9sLWVycm9ycy5taW5EYXRlJywgZGF0YToge2RhdGV9fSksXG4gICAgICAgIG1heERhdGU6ICh7ZGF0ZX0pID0+ICh7dG9rZW46ICdmb3JtLWNvbnRyb2wtZXJyb3JzLm1heERhdGUnLCBkYXRhOiB7ZGF0ZX19KSxcbiAgICAgICAgaW52YWxpZERhdGU6ICgpID0+ICdmb3JtLWNvbnRyb2wtZXJyb3JzLmludmFsaWREYXRlJyxcbiAgICAgICAgaW52YWxpZEZpbGVUeXBlOiAoKSA9PiAnZm9ybS1jb250cm9sLWVycm9ycy5pbnZhbGlkRmlsZVR5cGUnLFxuICAgICAgICBtaW5sZW5ndGg6ICh7cmVxdWlyZWRMZW5ndGgsIGFjdHVhbExlbmd0aH0pID0+ICh7XG4gICAgICAgICAgICB0b2tlbjogJ2Zvcm0tY29udHJvbC1lcnJvcnMubWlubGVuZ3RoJyxcbiAgICAgICAgICAgIGRhdGE6IHtyZXF1aXJlZExlbmd0aCwgYWN0dWFsTGVuZ3RofVxuICAgICAgICB9KSxcbiAgICAgICAgbWF4bGVuZ3RoOiAoe3JlcXVpcmVkTGVuZ3RoLCBhY3R1YWxMZW5ndGh9KSA9PiAoe1xuICAgICAgICAgICAgdG9rZW46ICdmb3JtLWNvbnRyb2wtZXJyb3JzLm1heGxlbmd0aCcsXG4gICAgICAgICAgICBkYXRhOiB7cmVxdWlyZWRMZW5ndGgsIGFjdHVhbExlbmd0aH1cbiAgICAgICAgfSlcbiAgICB9O1xuXG4gICAgcmV0dXJuIGRhdGE7XG59XG4iXX0=
181
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudHMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9lbGVtZW50cy9zcmMvbGliL2VsZW1lbnRzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFFLGNBQWMsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQ3pFLE9BQU8sRUFBQyxlQUFlLEVBQUUsY0FBYyxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDdEUsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBQ3RFLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQztBQUNwRSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDcEUsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQ2pFLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUNqRSxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDaEUsT0FBTyxFQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFDaEUsT0FBTyxFQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUMvRCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDOUQsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQzlELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUM5RCxPQUFPLEVBQUMsUUFBUSxFQUFFLFFBQVEsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBc0IsUUFBUSxFQUFDLE1BQU0sZUFBZSxD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QUFDLEVBQUMsS0FBSyxFQUFFLHlCQUF5QixFQUFFLElBQUksRUFBRSxFQUFDLEdBQUcsRUFBQyxFQUFDLENBQUM7UUFDakUsV0FBVyxFQUFFLENBQUMsRUFBQyxPQUFPLEVBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFDLEtBQUssRUFBRSxpQ0FBaUMsRUFBRSxJQUFJLEVBQUUsRUFBQyxPQUFPLEVBQUMsRUFBQyxDQUFDO1FBQ3pGLE9BQU8sRUFBRSxDQUFDLEVBQUMsSUFBSSxFQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBQyxLQUFLLEVBQUUsNkJBQTZCLEVBQUUsSUFBSSxFQUFFLEVBQUMsSUFBSSxFQUFDLEVBQUMsQ0FBQztRQUMzRSxPQUFPLEVBQUUsQ0FBQyxFQUFDLElBQUksRUFBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUMsS0FBSyxFQUFFLDZCQUE2QixFQUFFLElBQUksRUFBRSxFQUFDLElBQUksRUFBQyxFQUFDLENBQUM7UUFDM0UsV0FBVyxFQUFFLEdBQUcsRUFBRSxDQUFDLGlDQUFpQztRQUNwRCxlQUFlLEVBQUUsR0FBRyxFQUFFLENBQUMscUNBQXFDO1FBQzVELFNBQVMsRUFBRSxDQUFDLEVBQUMsY0FBYyxFQUFFLFlBQVksRUFBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQzVDLEtBQUssRUFBRSwrQkFBK0I7WUFDdEMsSUFBSSxFQUFFLEVBQUMsY0FBYyxFQUFFLFlBQVksRUFBQztTQUN2QyxDQUFDO1FBQ0YsU0FBUyxFQUFFLENBQUMsRUFBQyxjQUFjLEVBQUUsWUFBWSxFQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDNUMsS0FBSyxFQUFFLCtCQUErQjtZQUN0QyxJQUFJLEVBQUUsRUFBQyxjQUFjLEVBQUUsWUFBWSxFQUFDO1NBQ3ZDLENBQUM7S0FDTCxDQUFDO0lBRUYsT0FBTyxJQUFJLENBQUM7QUFDaEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QmJEcm9wZG93biwgQmJEcm9wZG93bkl0ZW19IGZyb20gJy4vZHJvcGRvd24vZHJvcGRvd24uY29tcG9uZW50JztcbmltcG9ydCB7RUxFTUVOVFNfRVJST1JTLCBFTEVNRU5UU19JQ09OU30gZnJvbSAnLi9lbGVtZW50cy5pbnRlcmZhY2VzJztcbmltcG9ydCB7QmJGb3JtU3VibWl0dGVyfSBmcm9tICcuL2RpcmVjdGl2ZXMvZm9ybS1zdWJtaXR0ZXIuZGlyZWN0aXZlJztcbmltcG9ydCB7QmJJbWFnZVBpY2tlcn0gZnJvbSAnLi9pbWFnZS1waWNrZXIvaW1hZ2UtcGlja2VyLmNvbXBvbmVudCc7XG5pbXBvcnQge0JiRm9ybUNvbnRyb2x9IGZyb20gJy4vZm9ybS1jb250cm9sL2Zvcm0tY29udHJvbC5jb21wb25lbnQnO1xuaW1wb3J0IHtCYkZpbGVQaWNrZXJ9IGZyb20gJy4vZmlsZS1waWNrZXIvZmlsZS1waWNrZXIuY29tcG9uZW50JztcbmltcG9ydCB7QmJEYXRlUGlja2VyfSBmcm9tICcuL2RhdGUtcGlja2VyL2RhdGUtcGlja2VyLmNvbXBvbmVudCc7XG5pbXBvcnQge0xvY2FsaXplTW9kdWxlfSBmcm9tICdAYnJhdm9iaXQvYmItZm91bmRhdGlvbi9sb2NhbGl6ZSc7XG5pbXBvcnQge0JiUHJlZml4LCBCYlN1ZmZpeH0gZnJvbSAnLi9kaXJlY3RpdmVzL2FkZG9uLmRpcmVjdGl2ZSc7XG5pbXBvcnQge0JiRm9ybVN1Ym1pdH0gZnJvbSAnLi9kaXJlY3RpdmVzL2Zvcm0tc3VibWl0LmRpcmVjdGl2ZSc7XG5pbXBvcnQge0JiSW5wdXQsIEJiU2VsZWN0fSBmcm9tICcuL2RpcmVjdGl2ZXMvaW5wdXQuZGlyZWN0aXZlJztcbmltcG9ydCB7QmJGb3JtR3JvdXB9IGZyb20gJy4vZm9ybS1ncm91cC9mb3JtLWdyb3VwLmNvbXBvbmVudCc7XG5pbXBvcnQge0JiRm9ybUVycm9yfSBmcm9tICcuL2Zvcm0tZXJyb3IvZm9ybS1lcnJvci5jb21wb25lbnQnO1xuaW1wb3J0IHtCYkZvY3VzVHJhcH0gZnJvbSAnLi9kaXJlY3RpdmVzL2ZvY3VzLXRyYXAuZGlyZWN0aXZlJztcbmltcG9ydCB7QmJBbmNob3IsIEJiQnV0dG9ufSBmcm9tICcuL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7TW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtCYlRlbXBsYXRlfSBmcm9tICcuL2RpcmVjdGl2ZXMvdGVtcGxhdGUuZGlyZWN0aXZlJztcbmltcG9ydCB7QmJBdXRvc2l6ZX0gZnJvbSAnLi9kaXJlY3RpdmVzL2F1dG9zaXplLmRpcmVjdGl2ZSc7XG5pbXBvcnQge0JiUmVsYXRpdmVUaW1lfSBmcm9tICcuL3BpcGVzL3JlbGF0aXZlLXRpbWUucGlwZSc7XG5pbXBvcnQge0JiQ2hlY2tib3h9IGZyb20gJy4vY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50JztcbmltcG9ydCB7QmJTcGlubmVyfSBmcm9tICcuL3NwaW5uZXIvc3Bpbm5lci5jb21wb25lbnQnO1xuaW1wb3J0IHtCYkZvY3VzfSBmcm9tICcuL2RpcmVjdGl2ZXMvZm9jdXMuZGlyZWN0aXZlJztcbmltcG9ydCB7QmJGaWxlSW1hZ2V9IGZyb20gJy4vcGlwZXMvZmlsZS1pbWFnZS5waXBlJztcbmltcG9ydCB7UmVhY3RpdmVGb3Jtc01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtCYkF2YXRhcn0gZnJvbSAnLi9hdmF0YXIvYXZhdGFyLmNvbXBvbmVudCc7XG5pbXBvcnQge0JiRmlsZVNpemV9IGZyb20gJy4vcGlwZXMvZmlsZS1zaXplLnBpcGUnO1xuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0JiSWNvbn0gZnJvbSAnLi9pY29uL2ljb24uY29tcG9uZW50JztcbmltcG9ydCB7QmJUYWd9IGZyb20gJy4vdGFnL3RhZy5jb21wb25lbnQnO1xuXG5jb25zdCBERUNMQVJBVElPTlNfRVhQT1JUUyA9IFtcbiAgICAvLyBEaXJlY3RpdmVzLlxuICAgIEJiVGVtcGxhdGUsXG4gICAgQmJGb3JtRXJyb3IsXG4gICAgQmJGb3JtU3VibWl0LFxuICAgIEJiRm9ybVN1Ym1pdHRlcixcbiAgICBCYklucHV0LFxuICAgIEJiU2VsZWN0LFxuICAgIEJiRm9jdXMsXG4gICAgQmJGb2N1c1RyYXAsXG4gICAgQmJBdXRvc2l6ZSxcbiAgICBCYlByZWZpeCxcbiAgICBCYlN1ZmZpeCxcbiAgICAvLyBQaXBlcy5cbiAgICBCYkZpbGVTaXplLFxuICAgIEJiRmlsZUltYWdlLFxuICAgIEJiUmVsYXRpdmVUaW1lLFxuICAgIC8vIENvbXBvbmVudHMuXG4gICAgQmJCdXR0b24sXG4gICAgQmJBbmNob3IsXG4gICAgQmJTcGlubmVyLFxuICAgIEJiSWNvbixcbiAgICBCYkZvcm1Db250cm9sLFxuICAgIEJiRm9ybUdyb3VwLFxuICAgIEJiQ2hlY2tib3gsXG4gICAgQmJEcm9wZG93bixcbiAgICBCYkRyb3Bkb3duSXRlbSxcbiAgICBCYlRhZyxcbiAgICBCYkF2YXRhcixcbiAgICBCYkZpbGVQaWNrZXIsXG4gICAgQmJJbWFnZVBpY2tlcixcbiAgICBCYkRhdGVQaWNrZXJcbl07XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgTG9jYWxpemVNb2R1bGVdLFxuICAgIGRlY2xhcmF0aW9uczogWy4uLkRFQ0xBUkFUSU9OU19FWFBPUlRTXSxcbiAgICBleHBvcnRzOiBbLi4uREVDTEFSQVRJT05TX0VYUE9SVFNdXG59KVxuZXhwb3J0IGNsYXNzIEVsZW1lbnRzTW9kdWxlIHtcblxuICAgIHN0YXRpYyBmb3JSb290KCk6IE1vZHVsZVdpdGhQcm92aWRlcnM8RWxlbWVudHNNb2R1bGU+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG5nTW9kdWxlOiBFbGVtZW50c01vZHVsZSxcbiAgICAgICAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICAgICAgICAgIHtwcm92aWRlOiBFTEVNRU5UU19FUlJPUlMsIHVzZUZhY3Rvcnk6IGdldEVycm9ycywgbXVsdGk6IHRydWV9LFxuICAgICAgICAgICAgICAgIEVMRU1FTlRTX01BVEVSSUFMX0lDT05cbiAgICAgICAgICAgIF1cbiAgICAgICAgfTtcbiAgICB9XG5cbn1cblxuZXhwb3J0IGNvbnN0IEVMRU1FTlRTX01BVEVSSUFMX0lDT04gPSB7XG4gICAgcHJvdmlkZTogRUxFTUVOVFNfSUNPTlMsXG4gICAgdXNlVmFsdWU6IHtuYW1lc3BhY2U6ICdtYXRlcmlhbCcsIGNsYXNzTmFtZTogJ21hdGVyaWFsLWljb25zJywgdXNlczogJ2NvbnRlbnQnLCB0eXBlOiAnZm9udCd9LFxuICAgIG11bHRpOiB0cnVlXG59O1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RXJyb3JzKCkge1xuICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICAgIHVua25vd246ICgpID0+ICdmb3JtLWNvbnRyb2wtZXJyb3JzLnVua25vd24nLFxuICAgICAgICByZXF1aXJlZDogKCkgPT4gJ2Zvcm0tY29udHJvbC1lcnJvcnMucmVxdWlyZWQnLFxuICAgICAgICBwYXR0ZXJuOiAoKSA9PiAnZm9ybS1jb250cm9sLWVycm9ycy5wYXR0ZXJuJyxcbiAgICAgICAgZW1haWw6ICgpID0+ICdmb3JtLWNvbnRyb2wtZXJyb3JzLmVtYWlsJyxcbiAgICAgICAgZW1haWxUYWtlbjogKCkgPT4gJ2Zvcm0tY29udHJvbC1lcnJvcnMuZW1haWxUYWtlbicsXG4gICAgICAgIHBhc3N3b3JkTWF0Y2g6ICgpID0+ICdmb3JtLWNvbnRyb2wtZXJyb3JzLnBhc3N3b3JkTWF0Y2gnLFxuICAgICAgICBjb25maXJtOiAoKSA9PiAnZm9ybS1jb250cm9sLWVycm9ycy5jb25maXJtJyxcbiAgICAgICAgZnVsbE51bWJlcjogKCkgPT4gJ2Zvcm0tY29udHJvbC1lcnJvcnMuZnVsbE51bWJlcicsXG4gICAgICAgIG1pbjogKHttaW59KSA9PiAoe3Rva2VuOiAnZm9ybS1jb250cm9sLWVycm9ycy5taW4nLCBkYXRhOiB7bWlufX0pLFxuICAgICAgICBtYXg6ICh7bWF4fSkgPT4gKHt0b2tlbjogJ2Zvcm0tY29udHJvbC1lcnJvcnMubWF4JywgZGF0YToge21heH19KSxcbiAgICAgICAgbWF4RmlsZVNpemU6ICh7bWF4U2l6ZX0pID0+ICh7dG9rZW46ICdmb3JtLWNvbnRyb2wtZXJyb3JzLm1heEZpbGVTaXplJywgZGF0YToge21heFNpemV9fSksXG4gICAgICAgIG1pbkRhdGU6ICh7ZGF0ZX0pID0+ICh7dG9rZW46ICdmb3JtLWNvbnRyb2wtZXJyb3JzLm1pbkRhdGUnLCBkYXRhOiB7ZGF0ZX19KSxcbiAgICAgICAgbWF4RGF0ZTogKHtkYXRlfSkgPT4gKHt0b2tlbjogJ2Zvcm0tY29udHJvbC1lcnJvcnMubWF4RGF0ZScsIGRhdGE6IHtkYXRlfX0pLFxuICAgICAgICBpbnZhbGlkRGF0ZTogKCkgPT4gJ2Zvcm0tY29udHJvbC1lcnJvcnMuaW52YWxpZERhdGUnLFxuICAgICAgICBpbnZhbGlkRmlsZVR5cGU6ICgpID0+ICdmb3JtLWNvbnRyb2wtZXJyb3JzLmludmFsaWRGaWxlVHlwZScsXG4gICAgICAgIG1pbmxlbmd0aDogKHtyZXF1aXJlZExlbmd0aCwgYWN0dWFsTGVuZ3RofSkgPT4gKHtcbiAgICAgICAgICAgIHRva2VuOiAnZm9ybS1jb250cm9sLWVycm9ycy5taW5sZW5ndGgnLFxuICAgICAgICAgICAgZGF0YToge3JlcXVpcmVkTGVuZ3RoLCBhY3R1YWxMZW5ndGh9XG4gICAgICAgIH0pLFxuICAgICAgICBtYXhsZW5ndGg6ICh7cmVxdWlyZWRMZW5ndGgsIGFjdHVhbExlbmd0aH0pID0+ICh7XG4gICAgICAgICAgICB0b2tlbjogJ2Zvcm0tY29udHJvbC1lcnJvcnMubWF4bGVuZ3RoJyxcbiAgICAgICAgICAgIGRhdGE6IHtyZXF1aXJlZExlbmd0aCwgYWN0dWFsTGVuZ3RofVxuICAgICAgICB9KVxuICAgIH07XG5cbiAgICByZXR1cm4gZGF0YTtcbn1cbiJdfQ==
@@ -149,8 +149,8 @@ export class BbFilePicker extends BbFilePickerMixinBase {
149
149
  };
150
150
  }
151
151
  }
152
- BbFilePicker.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: BbFilePicker, deps: null, target: i0.ɵɵFactoryTarget.Component });
153
- BbFilePicker.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.4", type: BbFilePicker, selector: "bb-file-picker", inputs: { disabled: "disabled", hideErrors: "hideErrors", grouped: "grouped", required: "required", label: "label", hint: "hint", accept: "accept", showImages: "showImages", allowDragging: "allowDragging", value: "value" }, outputs: { valueChange: "valueChange" }, host: { listeners: { "dragover": "onDrag($event,true)", "dragleave": "onDrag($event,false)", "drop": "onDrop($event)" }, properties: { "class.required": "required", "class.disabled": "disabled", "class.grouped": "grouped", "class.hovered": "hovered", "class.error": "error" }, classAttribute: "bb-file-picker" }, providers: [
152
+ BbFilePicker.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: BbFilePicker, deps: null, target: i0.ɵɵFactoryTarget.Component });
153
+ BbFilePicker.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.1", type: BbFilePicker, selector: "bb-file-picker", inputs: { disabled: "disabled", hideErrors: "hideErrors", grouped: "grouped", required: "required", label: "label", hint: "hint", accept: "accept", showImages: "showImages", allowDragging: "allowDragging", value: "value" }, outputs: { valueChange: "valueChange" }, host: { listeners: { "dragover": "onDrag($event,true)", "dragleave": "onDrag($event,false)", "drop": "onDrop($event)" }, properties: { "class.required": "required", "class.disabled": "disabled", "class.grouped": "grouped", "class.hovered": "hovered", "class.error": "error" }, classAttribute: "bb-file-picker" }, providers: [
154
154
  {
155
155
  provide: NG_VALUE_ACCESSOR,
156
156
  useExisting: forwardRef(() => BbFilePicker),
@@ -172,7 +172,7 @@ BbFilePicker.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version:
172
172
  ])
173
173
  ])
174
174
  ], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
175
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: BbFilePicker, decorators: [{
175
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: BbFilePicker, decorators: [{
176
176
  type: Component,
177
177
  args: [{ selector: 'bb-file-picker', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [
178
178
  {
@@ -24,9 +24,9 @@ export class BbFormControl extends BbFormControlMixinBase {
24
24
  this.error = !!error;
25
25
  }
26
26
  }
27
- BbFormControl.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: BbFormControl, deps: null, target: i0.ɵɵFactoryTarget.Component });
28
- BbFormControl.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.4", type: BbFormControl, selector: "bb-form-control", inputs: { grouped: "grouped", hideErrors: "hideErrors", label: "label", hint: "hint" }, host: { properties: { "class.readonly": "readonly", "class.required": "required", "class.disabled": "disabled", "class.focused": "focused", "class.grouped": "grouped", "class.arrow": "arrow", "class.error": "error" }, classAttribute: "bb-form-control" }, queries: [{ propertyName: "ngControl", first: true, predicate: NgControl, descendants: true }], usesInheritance: true, ngImport: i0, template: "<!-- Label of the form control. -->\n<label *ngIf=\"label as labelContent\"\n [attr.for]=\"labelId\"\n class=\"bb-form-control-label\">\n <ng-template [bbTemplate]=\"labelContent\">\n {{ labelContent }}\n </ng-template>\n</label>\n\n<!-- The input with the addons. -->\n<div class=\"bb-form-control-container\">\n <ng-content select=\"[bbPrefix]\"></ng-content>\n <ng-content select=\"[bbInput]\"></ng-content>\n <ng-content select=\"[bbSuffix]\"></ng-content>\n</div>\n\n<!-- The error component. -->\n<bb-form-error *ngIf=\"!hideErrors\"\n [control]=\"ngControl\"\n (errorChange)=\"onErrorChange($event)\">\n</bb-form-error>\n\n<!-- The form control hint. -->\n<p *ngIf=\"hint as hintContent\"\n class=\"bb-form-control-hint\">\n <ng-template [bbTemplate]=\"hintContent\">\n {{ hintContent }}\n </ng-template>\n</p>\n", styles: [".bb-form-control{color:#2d3c4d;display:block}.bb-form-control>.bb-form-control-container>*.bb-prefix,.bb-form-control>.bb-form-control-container>*.bb-suffix{margin:0 8px;color:#b4b4b4;transition:color .3s cubic-bezier(0,0,.2,1)}.bb-form-control.grouped{margin-bottom:20px}.bb-form-control.small{max-width:240px}.bb-form-control.medium{max-width:480px}.bb-form-control.large{max-width:720px}.bb-form-control.required>.bb-form-control-label:after{content:\"*\";color:#c23934;font-size:12px;line-height:1.5}.bb-form-control.disabled>.bb-form-control-container{cursor:default;pointer-events:none;background-color:#cccccca3}.bb-form-control.disabled>.bb-form-control-container>input,.bb-form-control.disabled>.bb-form-control-container>textarea,.bb-form-control.disabled>.bb-form-control-container>select{color:#aaa}.bb-form-control.readonly>.bb-form-control-container{cursor:default;border:1px dotted #bdc4c9}.bb-form-control:not(.disabled):not(.readonly).focused>.bb-form-control-container{background-color:#fff;box-shadow:inset 0 3px #b7bcc233,0 6px 6px -6px #0000001a,0 0 0 3px #007bff33}.bb-form-control:not(.disabled):not(.readonly).focused>.bb-form-control-container>input::placeholder,.bb-form-control:not(.disabled):not(.readonly).focused>.bb-form-control-container>textarea::placeholder{color:#b4b4b4;transition:color .3s cubic-bezier(0,0,.2,1)}.bb-form-control.error>.bb-form-control-label{color:#c23934}.bb-form-control.error>.bb-form-control-hint{display:none}.bb-form-control.error>.bb-form-control-container{border:1px solid #962b26;background-color:#c2393440!important;box-shadow:inset 0 3px #b7bcc233,0 6px 6px -6px #0000001a,0 0 0 3px #c2393466!important}.bb-form-control.error>.bb-form-control-container>*.bb-prefix,.bb-form-control.error>.bb-form-control-container>.bb-suffix{color:#c23934}.bb-form-control.error>.bb-form-control-container>input::placeholder,.bb-form-control.error>.bb-form-control-container>textarea::placeholder{color:#c2393466!important}.bb-form-control.arrow>.bb-form-control-container:after{top:0;right:0;bottom:0;width:20px;content:\"\";height:36px;display:flex;min-width:20px;position:absolute;pointer-events:none;background-repeat:no-repeat;background-position:calc(100% - 8px) center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA0AAAAGCAYAAAAYLBS/AAAACXBIWXMAAAsSAAALEgHS3X78AAAAWUlEQVQYlY3QsQ2DMAAEwMMTsAkrZInvWY3WXiIjJJtkA1OBRCIRf/nSffFTrXXGE4uxbCXJBw+8R0CStcAg3JKsUI7mDzzBBd3AC4Cp9/4z21o7znl9A9gBAf4fpjLTwkUAAAAASUVORK5CYII=)}.bb-form-control-container{width:100%;display:flex;overflow:hidden;position:relative;border-radius:3px;align-items:center;border:1px solid #b6bbc1;background-color:#fff8ff;transition-duration:.25s;transition-property:background-color,box-shadow;transition-timing-function:cubic-bezier(0,0,.2,1);box-shadow:inset 0 3px #b7bcc233,0 6px 6px -6px #0000001a}.bb-form-control-container>input::placeholder,.bb-form-control-container>textarea::placeholder{color:#d2d2d2;transition:color .3s cubic-bezier(0,0,.2,1)}.bb-form-control-container>input,.bb-form-control-container>textarea,.bb-form-control-container>select{margin:0;width:100%;border:none;color:#3d464d;font-size:16px;-webkit-appearance:none;appearance:none;background-color:transparent}.bb-form-control-container>input,.bb-form-control-container>select{height:36px;padding:0 8px}.bb-form-control-container>select{padding-right:28px}.bb-form-control-container>select>::-ms-expand{display:none}.bb-form-control-container>input::-ms-clear,.bb-form-control-container>input::-ms-reveal{width:0;height:0;display:none}.bb-form-control-container>input::-webkit-search-decoration,.bb-form-control-container>input::-webkit-search-cancel-button,.bb-form-control-container>input::-webkit-search-results-button,.bb-form-control-container>input::-webkit-search-results-decoration{display:none}.bb-form-control-container>textarea{resize:none;padding:8px}.bb-form-control-label{color:#000;display:block;position:relative;margin-bottom:4px;transition:color 30ms cubic-bezier(0,0,.2,1)}.bb-form-control-error,.bb-form-control-hint{display:block;font-size:13px;margin-top:4px}.bb-form-control-error{color:#c23934}.bb-form-control-hint{color:#738694}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.BbTemplate, selector: "[bbTemplate]", inputs: ["bbTemplate"] }, { kind: "component", type: i3.BbFormError, selector: "bb-form-error", inputs: ["control"], outputs: ["errorChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
29
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: BbFormControl, decorators: [{
27
+ BbFormControl.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: BbFormControl, deps: null, target: i0.ɵɵFactoryTarget.Component });
28
+ BbFormControl.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.1", type: BbFormControl, selector: "bb-form-control", inputs: { grouped: "grouped", hideErrors: "hideErrors", label: "label", hint: "hint" }, host: { properties: { "class.readonly": "readonly", "class.required": "required", "class.disabled": "disabled", "class.focused": "focused", "class.grouped": "grouped", "class.arrow": "arrow", "class.error": "error" }, classAttribute: "bb-form-control" }, queries: [{ propertyName: "ngControl", first: true, predicate: NgControl, descendants: true }], usesInheritance: true, ngImport: i0, template: "<!-- Label of the form control. -->\n<label *ngIf=\"label as labelContent\"\n [attr.for]=\"labelId\"\n class=\"bb-form-control-label\">\n <ng-template [bbTemplate]=\"labelContent\">\n {{ labelContent }}\n </ng-template>\n</label>\n\n<!-- The input with the addons. -->\n<div class=\"bb-form-control-container\">\n <ng-content select=\"[bbPrefix]\"></ng-content>\n <ng-content select=\"[bbInput]\"></ng-content>\n <ng-content select=\"[bbSuffix]\"></ng-content>\n</div>\n\n<!-- The error component. -->\n<bb-form-error *ngIf=\"!hideErrors\"\n [control]=\"ngControl\"\n (errorChange)=\"onErrorChange($event)\">\n</bb-form-error>\n\n<!-- The form control hint. -->\n<p *ngIf=\"hint as hintContent\"\n class=\"bb-form-control-hint\">\n <ng-template [bbTemplate]=\"hintContent\">\n {{ hintContent }}\n </ng-template>\n</p>\n", styles: [".bb-form-control{color:#2d3c4d;display:block}.bb-form-control>.bb-form-control-container>*.bb-prefix,.bb-form-control>.bb-form-control-container>*.bb-suffix{margin:0 8px;color:#b4b4b4;transition:color .3s cubic-bezier(0,0,.2,1)}.bb-form-control.grouped{margin-bottom:20px}.bb-form-control.small{max-width:240px}.bb-form-control.medium{max-width:480px}.bb-form-control.large{max-width:720px}.bb-form-control.required>.bb-form-control-label:after{content:\"*\";color:#c23934;font-size:12px;line-height:1.5}.bb-form-control.disabled>.bb-form-control-container{cursor:default;pointer-events:none;background-color:#cccccca3}.bb-form-control.disabled>.bb-form-control-container>input,.bb-form-control.disabled>.bb-form-control-container>textarea,.bb-form-control.disabled>.bb-form-control-container>select{color:#aaa}.bb-form-control.readonly>.bb-form-control-container{cursor:default;border:1px dotted #bdc4c9}.bb-form-control:not(.disabled):not(.readonly).focused>.bb-form-control-container{background-color:#fff;box-shadow:inset 0 3px #b7bcc233,0 6px 6px -6px #0000001a,0 0 0 3px #007bff33}.bb-form-control:not(.disabled):not(.readonly).focused>.bb-form-control-container>input::placeholder,.bb-form-control:not(.disabled):not(.readonly).focused>.bb-form-control-container>textarea::placeholder{color:#b4b4b4;transition:color .3s cubic-bezier(0,0,.2,1)}.bb-form-control.error>.bb-form-control-label{color:#c23934}.bb-form-control.error>.bb-form-control-hint{display:none}.bb-form-control.error>.bb-form-control-container{border:1px solid #962b26;background-color:#c2393440!important;box-shadow:inset 0 3px #b7bcc233,0 6px 6px -6px #0000001a,0 0 0 3px #c2393466!important}.bb-form-control.error>.bb-form-control-container>*.bb-prefix,.bb-form-control.error>.bb-form-control-container>.bb-suffix{color:#c23934}.bb-form-control.error>.bb-form-control-container>input::placeholder,.bb-form-control.error>.bb-form-control-container>textarea::placeholder{color:#c2393466!important}.bb-form-control.arrow>.bb-form-control-container:after{top:0;right:0;bottom:0;width:20px;content:\"\";height:36px;display:flex;min-width:20px;position:absolute;pointer-events:none;background-repeat:no-repeat;background-position:calc(100% - 8px) center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA0AAAAGCAYAAAAYLBS/AAAACXBIWXMAAAsSAAALEgHS3X78AAAAWUlEQVQYlY3QsQ2DMAAEwMMTsAkrZInvWY3WXiIjJJtkA1OBRCIRf/nSffFTrXXGE4uxbCXJBw+8R0CStcAg3JKsUI7mDzzBBd3AC4Cp9/4z21o7znl9A9gBAf4fpjLTwkUAAAAASUVORK5CYII=)}.bb-form-control-container{width:100%;display:flex;overflow:hidden;position:relative;border-radius:3px;align-items:center;border:1px solid #b6bbc1;background-color:#fff8ff;transition-duration:.25s;transition-property:background-color,box-shadow;transition-timing-function:cubic-bezier(0,0,.2,1);box-shadow:inset 0 3px #b7bcc233,0 6px 6px -6px #0000001a}.bb-form-control-container>input::placeholder,.bb-form-control-container>textarea::placeholder{color:#d2d2d2;transition:color .3s cubic-bezier(0,0,.2,1)}.bb-form-control-container>input,.bb-form-control-container>textarea,.bb-form-control-container>select{margin:0;width:100%;border:none;color:#3d464d;font-size:16px;-webkit-appearance:none;appearance:none;background-color:transparent}.bb-form-control-container>input,.bb-form-control-container>select{height:36px;padding:0 8px}.bb-form-control-container>select{padding-right:28px}.bb-form-control-container>select>::-ms-expand{display:none}.bb-form-control-container>input::-ms-clear,.bb-form-control-container>input::-ms-reveal{width:0;height:0;display:none}.bb-form-control-container>input::-webkit-search-decoration,.bb-form-control-container>input::-webkit-search-cancel-button,.bb-form-control-container>input::-webkit-search-results-button,.bb-form-control-container>input::-webkit-search-results-decoration{display:none}.bb-form-control-container>textarea{resize:none;padding:8px}.bb-form-control-label{color:#000;display:block;position:relative;margin-bottom:4px;transition:color 30ms cubic-bezier(0,0,.2,1)}.bb-form-control-error,.bb-form-control-hint{display:block;font-size:13px;margin-top:4px}.bb-form-control-error{color:#c23934}.bb-form-control-hint{color:#738694}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.BbTemplate, selector: "[bbTemplate]", inputs: ["bbTemplate"] }, { kind: "component", type: i3.BbFormError, selector: "bb-form-error", inputs: ["control"], outputs: ["errorChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: BbFormControl, decorators: [{
30
30
  type: Component,
31
31
  args: [{ selector: 'bb-form-control', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
32
32
  'class': 'bb-form-control',
@@ -5,12 +5,14 @@ import { combineLatest, EMPTY, of } from 'rxjs';
5
5
  import * as i0 from "@angular/core";
6
6
  import * as i1 from "../directives/form-submit.directive";
7
7
  import * as i2 from "@angular/forms";
8
- import * as i3 from "@angular/common";
9
- import * as i4 from "@bravobit/bb-foundation/localize";
8
+ import * as i3 from "../directives/form-submitter.directive";
9
+ import * as i4 from "@angular/common";
10
+ import * as i5 from "@bravobit/bb-foundation/localize";
10
11
  export class BbFormError {
11
- constructor(_form, _control, _errors) {
12
+ constructor(_form, _control, _formSubmitter, _errors) {
12
13
  this._form = _form;
13
14
  this._control = _control;
15
+ this._formSubmitter = _formSubmitter;
14
16
  this._errors = _errors;
15
17
  // Outputs.
16
18
  this.errorChange = new EventEmitter();
@@ -69,11 +71,22 @@ export class BbFormError {
69
71
  return errorFunction(error);
70
72
  }
71
73
  submitStatusChanges() {
74
+ const native$ = this.getNativeFormSubmit();
75
+ const manual$ = this.getManualFormSubmit();
76
+ return combineLatest([native$, manual$]).pipe(map(([native, manual]) => native || manual), distinctUntilChanged());
77
+ }
78
+ getNativeFormSubmit() {
72
79
  if (!this._form) {
73
80
  return of(true);
74
81
  }
75
82
  return this._form.submitStatus$;
76
83
  }
84
+ getManualFormSubmit() {
85
+ if (!this._formSubmitter) {
86
+ return of(false);
87
+ }
88
+ return this._formSubmitter.submitted$.pipe(distinctUntilChanged());
89
+ }
77
90
  statusChanges() {
78
91
  if (!this.control) {
79
92
  return EMPTY;
@@ -84,9 +97,9 @@ export class BbFormError {
84
97
  return this.control.statusChanges.pipe(startWith(this.control.status), delay(0));
85
98
  }
86
99
  }
87
- BbFormError.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: BbFormError, deps: [{ token: i1.BbFormSubmit, optional: true }, { token: i2.NgControl, optional: true }, { token: ELEMENTS_ERRORS, optional: true }], target: i0.ɵɵFactoryTarget.Component });
88
- BbFormError.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.4", type: BbFormError, selector: "bb-form-error", inputs: { control: "control" }, outputs: { errorChange: "errorChange" }, host: { classAttribute: "bb-form-error" }, ngImport: i0, template: "<ng-container *ngIf=\"error$ | async as error\">\n <p *ngIf=\"error?.token | bbLocalize:{optional: true, data: error?.data} as message\"\n class=\"bb-form-error-message\">\n {{ message }}\n </p>\n</ng-container>", styles: [".bb-form-error{display:block}.bb-form-error-message{color:#c23934;display:block;font-size:13px;margin-top:4px}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.BbLocalize, name: "bbLocalize" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
89
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: BbFormError, decorators: [{
100
+ BbFormError.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: BbFormError, deps: [{ token: i1.BbFormSubmit, optional: true }, { token: i2.NgControl, optional: true }, { token: i3.BbFormSubmitter, optional: true }, { token: ELEMENTS_ERRORS, optional: true }], target: i0.ɵɵFactoryTarget.Component });
101
+ BbFormError.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.1", type: BbFormError, selector: "bb-form-error", inputs: { control: "control" }, outputs: { errorChange: "errorChange" }, host: { classAttribute: "bb-form-error" }, ngImport: i0, template: "<ng-container *ngIf=\"error$ | async as error\">\n <p *ngIf=\"error?.token | bbLocalize:{optional: true, data: error?.data} as message\"\n class=\"bb-form-error-message\">\n {{ message }}\n </p>\n</ng-container>", styles: [".bb-form-error{display:block}.bb-form-error-message{color:#c23934;display:block;font-size:13px;margin-top:4px}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.BbLocalize, name: "bbLocalize" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
102
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: BbFormError, decorators: [{
90
103
  type: Component,
91
104
  args: [{ selector: 'bb-form-error', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
92
105
  'class': 'bb-form-error'
@@ -95,6 +108,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.4", ngImpor
95
108
  type: Optional
96
109
  }] }, { type: i2.NgControl, decorators: [{
97
110
  type: Optional
111
+ }] }, { type: i3.BbFormSubmitter, decorators: [{
112
+ type: Optional
98
113
  }] }, { type: undefined, decorators: [{
99
114
  type: Optional
100
115
  }, {
@@ -105,4 +120,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.4", ngImpor
105
120
  }], errorChange: [{
106
121
  type: Output
107
122
  }] } });
108
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1lcnJvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYi1mb3VuZGF0aW9uL2VsZW1lbnRzL3NyYy9saWIvZm9ybS1lcnJvci9mb3JtLWVycm9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vZWxlbWVudHMvc3JjL2xpYi9mb3JtLWVycm9yL2Zvcm0tZXJyb3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBRUwsUUFBUSxFQUNSLE1BQU0sRUFDTixpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLEtBQUssRUFBRSxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2hGLE9BQU8sRUFBQyxlQUFlLEVBQWdCLE1BQU0sd0JBQXdCLENBQUM7QUFHdEUsT0FBTyxFQUFDLGFBQWEsRUFBRSxLQUFLLEVBQWMsRUFBRSxFQUFDLE1BQU0sTUFBTSxDQUFDOzs7Ozs7QUFhMUQsTUFBTSxPQUFPLFdBQVc7SUFxQnBCLFlBQWdDLEtBQW1CLEVBQ25CLFFBQW1CLEVBQ00sT0FBd0I7UUFGakQsVUFBSyxHQUFMLEtBQUssQ0FBYztRQUNuQixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ00sWUFBTyxHQUFQLE9BQU8sQ0FBaUI7UUFYakYsV0FBVztRQUNELGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQXdDLENBQUM7UUFLakYsaUJBQWlCO1FBQ1QsZUFBVSxHQUFxQixJQUFJLENBQUM7SUFLNUMsQ0FBQztJQXRCRCxVQUFVO0lBQ1YsSUFDSSxPQUFPLENBQUMsS0FBZ0I7UUFDeEIsSUFBSSxDQUFDLFVBQVUsR0FB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Q0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRTtZQUM3QixPQUFPLEtBQUssQ0FBQztTQUNoQjtRQUVELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUNsQyxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFpQixDQUFDLEVBQ3pDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FDWCxDQUFDO0lBQ04sQ0FBQzs7d0dBOUdRLFdBQVcsdUdBdUJZLGVBQWU7NEZBdkJ0QyxXQUFXLHlLQzVCeEIsd09BS2U7MkZEdUJGLFdBQVc7a0JBWHZCLFNBQVM7K0JBQ0ksZUFBZSxtQkFHUix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLFFBQy9CO3dCQUNGLE9BQU8sRUFBRSxlQUFlO3FCQUMzQix1QkFDb0IsS0FBSzs7MEJBdUJiLFFBQVE7OzBCQUNSLFFBQVE7OzBCQUNSLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsZUFBZTs0Q0FuQjNDLE9BQU87c0JBRFYsS0FBSztnQkFVSSxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPbkluaXQsXG4gICAgT3B0aW9uYWwsXG4gICAgT3V0cHV0LFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtkZWxheSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCwgc3RhcnRXaXRoLCB0YXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7RUxFTUVOVFNfRVJST1JTLCBFbGVtZW50c0Vycm9yfSBmcm9tICcuLi9lbGVtZW50cy5pbnRlcmZhY2VzJztcbmltcG9ydCB7QmJGb3JtU3VibWl0fSBmcm9tICcuLi9kaXJlY3RpdmVzL2Zvcm0tc3VibWl0LmRpcmVjdGl2ZSc7XG5pbXBvcnQge05nQ29udHJvbCwgVmFsaWRhdGlvbkVycm9yc30gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtjb21iaW5lTGF0ZXN0LCBFTVBUWSwgT2JzZXJ2YWJsZSwgb2Z9IGZyb20gJ3J4anMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2JiLWZvcm0tZXJyb3InLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9mb3JtLWVycm9yLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9mb3JtLWVycm9yLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBob3N0OiB7XG4gICAgICAgICdjbGFzcyc6ICdiYi1mb3JtLWVycm9yJ1xuICAgIH0sXG4gICAgcHJlc2VydmVXaGl0ZXNwYWNlczogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgQmJGb3JtRXJyb3IgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gICAgLy8gSW5wdXRzLlxuICAgIEBJbnB1dCgpXG4gICAgc2V0IGNvbnRyb2wodmFsdWU6IE5nQ29udHJvbCkge1xuICAgICAgICB0aGlzLl9uZ0NvbnRyb2wgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBnZXQgY29udHJvbCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX25nQ29udHJvbDtcbiAgICB9XG5cbiAgICAvLyBPdXRwdXRzLlxuICAgIEBPdXRwdXQoKSBlcnJvckNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8eyB0b2tlbjogc3RyaW5nLCBkYXRhPzogYW55IH0gfCBudWxsPigpO1xuXG4gICAgLy8gU3RhdGUuXG4gICAgZXJyb3IkOiBPYnNlcnZhYmxlPHsgdG9rZW46IHN0cmluZywgZGF0YT86IGFueSB9IHwgbnVsbD47XG5cbiAgICAvLyBTdWJzY3JpcHRpb25zLlxuICAgIHByaXZhdGUgX25nQ29udHJvbDogTmdDb250cm9sIHwgbnVsbCA9IG51bGw7XG5cbiAgICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBwcml2YXRlIF9mb3JtOiBCYkZvcm1TdWJtaXQsXG4gICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBfY29udHJvbDogTmdDb250cm9sLFxuICAgICAgICAgICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoRUxFTUVOVFNfRVJST1JTKSBwcml2YXRlIF9lcnJvcnM6IEVsZW1lbnRzRXJyb3JbXSkge1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICAvLyBTZXQgdGhlIGNvbnRyb2wgaWYgaXQgd2FzIG5vdCBzZXQgYmVmb3JlLlxuICAgICAgICBpZiAoIXRoaXMuY29udHJvbCkge1xuICAgICAgICAgICAgdGhpcy5jb250cm9sID0gdGhpcy5fY29udHJvbDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIExpc3RlbiBmb3IgdGhlIHN1Ym1pdCBjaGFuZ2VzXG4gICAgICAgIGNvbnN0IHN1Ym1pdFN0YXR1cyQgPSB0aGlzLnN1Ym1pdFN0YXR1c0NoYW5nZXMoKTtcblxuICAgICAgICAvLyBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgZXJyb3IgY2hhbmdlcy5cbiAgICAgICAgY29uc3QgZXJyb3JDaGFuZ2VzJCA9IHRoaXMuc3RhdHVzQ2hhbmdlcygpLnBpcGUoXG4gICAgICAgICAgICBtYXAoKCkgPT4gdGhpcy5nZXRFcnJvcih0aGlzLmNvbnRyb2wuZXJyb3JzKSksXG4gICAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgICAgICAgbWFwKGVycm9yID0+IHR5cGVvZiBlcnJvciA9PT0gJ3N0cmluZycgPyB7dG9rZW46IGVycm9yfSA6IGVycm9yKVxuICAgICAgICApO1xuXG4gICAgICAgIC8vIFdoZW5ldmVyIHRoZSB1c2VyIHN1Ym1pdHRlZCB0aGUgZm9ybSB3ZSB3YW50IHRvXG4gICAgICAgIC8vIGxpc3RlbiBmb3IgYW55IGVycm9yIGNoYW5nZXMuXG4gICAgICAgIHRoaXMuZXJyb3IkID0gY29tYmluZUxhdGVzdChbc3VibWl0U3RhdHVzJCwgZXJyb3JDaGFuZ2VzJF0pLnBpcGUoXG4gICAgICAgICAgICBtYXAoKFtzdWJtaXR0ZWQsIGVycm9yXSkgPT4ge1xuICAgICAgICAgICAgICAgIC8vIElmIG5vdCBzdWJtaXR0ZWQgcmV0dXJuIG51bGwuXG4gICAgICAgICAgICAgICAgaWYgKCFzdWJtaXR0ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLy8gUmV0dXJuIHRoZSBlcnJvciBpZiBzdWJtaXR0ZWQuXG4gICAgICAgICAgICAgICAgcmV0dXJuIGVycm9yO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICB0YXAodmFsdWUgPT4gdGhpcy5lcnJvckNoYW5nZS5lbWl0KHZhbHVlKSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEVycm9yKGVycm9ycz86IFZhbGlkYXRpb25FcnJvcnMpIHtcbiAgICAgICAgLy8gVmFsaWRhdGUgdGhlIGVycm9ycyBleGlzdC5cbiAgICAgICAgaWYgKCFlcnJvcnMpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gR2V0IHRoZSBmaXJzdCBlcnJvciBpbiB0aGUgZXJyb3JzLlxuICAgICAgICBjb25zdCBbZXJyb3JOYW1lXSA9IE9iamVjdC5rZXlzKGVycm9ycyk7XG4gICAgICAgIGNvbnN0IGVycm9yID0gZXJyb3JzW2Vycm9yTmFtZV07XG5cbiAgICAgICAgLy8gVmFsaWRhdGUgdGhlIGVycm9yIGV4aXN0cy5cbiAgICAgICAgaWYgKCFlcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBNYXAgdGhlIGFycmF5cyBpbnRvIGEgb2JqZWN0IHNvIHdlIGNhblxuICAgICAgICAvLyBhY2Nlc3MgdGhlIGZ1bmN0aW9ucyBieSBhIGtleS1sb29rdXAuXG4gICAgICAgIGNvbnN0IGVycm9yRnVuY3Rpb25zID0gdGhpcy5fZXJyb3JzLnJlZHVjZSgocHJldmlvdXMsIGN1cnJlbnQpID0+ICh7Li4ucHJldmlvdXMsIC4uLmN1cnJlbnR9KSwge30pO1xuXG4gICAgICAgIC8vIEdldCB0aGUgZXJyb3IgZnVuY3Rpb24uXG4gICAgICAgIGNvbnN0IGVycm9yRnVuY3Rpb24gPSBlcnJvckZ1bmN0aW9uc1tlcnJvck5hbWVdIHx8IGVycm9yRnVuY3Rpb25zWyd1bmtub3duJ107XG5cbiAgICAgICAgLy8gVmFsaWRhdGUgdGhlIGVycm9yIGZ1bmN0aW9uIGV4aXN0cy5cbiAgICAgICAgaWYgKCFlcnJvckZ1bmN0aW9uKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFJldHVybiB0aGUgcGFyc2VkIGVycm9yLlxuICAgICAgICByZXR1cm4gZXJyb3JGdW5jdGlvbihlcnJvcik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdWJtaXRTdGF0dXNDaGFuZ2VzKCkge1xuICAgICAgICBpZiAoIXRoaXMuX2Zvcm0pIHtcbiAgICAgICAgICAgIHJldHVybiBvZih0cnVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLl9mb3JtLnN1Ym1pdFN0YXR1cyQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0dXNDaGFuZ2VzKCkge1xuICAgICAgICBpZiAoIXRoaXMuY29udHJvbCkge1xuICAgICAgICAgICAgcmV0dXJuIEVNUFRZO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF0aGlzLmNvbnRyb2wuc3RhdHVzQ2hhbmdlcykge1xuICAgICAgICAgICAgcmV0dXJuIEVNUFRZO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuY29udHJvbC5zdGF0dXNDaGFuZ2VzLnBpcGUoXG4gICAgICAgICAgICBzdGFydFdpdGgodGhpcy5jb250cm9sLnN0YXR1cyBhcyB1bmtub3duKSxcbiAgICAgICAgICAgIGRlbGF5KDApXG4gICAgICAgICk7XG4gICAgfVxuXG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiZXJyb3IkIHwgYXN5bmMgYXMgZXJyb3JcIj5cbiAgICA8cCAqbmdJZj1cImVycm9yPy50b2tlbiB8IGJiTG9jYWxpemU6e29wdGlvbmFsOiB0cnVlLCBkYXRhOiBlcnJvcj8uZGF0YX0gYXMgbWVzc2FnZVwiXG4gICAgICAgY2xhc3M9XCJiYi1mb3JtLWVycm9yLW1lc3NhZ2VcIj5cbiAgICAgICAge3sgbWVzc2FnZSB9fVxuICAgIDwvcD5cbjwvbmctY29udGFpbmVyPiJdfQ==
123
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1lcnJvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYi1mb3VuZGF0aW9uL2VsZW1lbnRzL3NyYy9saWIvZm9ybS1lcnJvci9mb3JtLWVycm9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vZWxlbWVudHMvc3JjL2xpYi9mb3JtLWVycm9yL2Zvcm0tZXJyb3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBRUwsUUFBUSxFQUNSLE1BQU0sRUFDTixpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLEtBQUssRUFBRSxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRWhGLE9BQU8sRUFBQyxlQUFlLEVBQWdCLE1BQU0sd0JBQXdCLENBQUM7QUFHdEUsT0FBTyxFQUFDLGFBQWEsRUFBRSxLQUFLLEVBQWMsRUFBRSxFQUFDLE1BQU0sTUFBTSxDQUFDOzs7Ozs7O0FBYTFELE1BQU0sT0FBTyxXQUFXO0lBcUJwQixZQUFnQyxLQUFvQixFQUNwQixRQUFvQixFQUNwQixjQUFnQyxFQUNQLE9BQXlCO1FBSGxELFVBQUssR0FBTCxLQUFLLENBQWU7UUFDcEIsYUFBUSxHQUFSLFFBQVEsQ0FBWTtRQUNwQixtQkFBYyxHQUFkLGNBQWMsQ0FBa0I7UUFDUCxZQUFPLEdBQVAsT0FBTyxDQUFrQjtRQVpsRixXQUFXO1FBQ0QsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBd0MsQ0FBQztRQUtqRixpQkFBaUI7UUFDVCxlQUFVLEdBQXFCLElBQUksQ0FBQztJQU01QyxDQUFDO0lBdkJELFVBQVU7SUFDVixJQUNJ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QUNSLFFBQVE7OzBCQUNSLFFBQVE7OzBCQUNSLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsZUFBZTs0Q0FwQjNDLE9BQU87c0JBRFYsS0FBSztnQkFVSSxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPbkluaXQsXG4gICAgT3B0aW9uYWwsXG4gICAgT3V0cHV0LFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtkZWxheSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCwgc3RhcnRXaXRoLCB0YXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7QmJGb3JtU3VibWl0dGVyfSBmcm9tICcuLi9kaXJlY3RpdmVzL2Zvcm0tc3VibWl0dGVyLmRpcmVjdGl2ZSc7XG5pbXBvcnQge0VMRU1FTlRTX0VSUk9SUywgRWxlbWVudHNFcnJvcn0gZnJvbSAnLi4vZWxlbWVudHMuaW50ZXJmYWNlcyc7XG5pbXBvcnQge0JiRm9ybVN1Ym1pdH0gZnJvbSAnLi4vZGlyZWN0aXZlcy9mb3JtLXN1Ym1pdC5kaXJlY3RpdmUnO1xuaW1wb3J0IHtOZ0NvbnRyb2wsIFZhbGlkYXRpb25FcnJvcnN9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7Y29tYmluZUxhdGVzdCwgRU1QVFksIE9ic2VydmFibGUsIG9mfSBmcm9tICdyeGpzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdiYi1mb3JtLWVycm9yJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZm9ybS1lcnJvci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZm9ybS1lcnJvci5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgaG9zdDoge1xuICAgICAgICAnY2xhc3MnOiAnYmItZm9ybS1lcnJvcidcbiAgICB9LFxuICAgIHByZXNlcnZlV2hpdGVzcGFjZXM6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIEJiRm9ybUVycm9yIGltcGxlbWVudHMgT25Jbml0IHtcblxuICAgIC8vIElucHV0cy5cbiAgICBASW5wdXQoKVxuICAgIHNldCBjb250cm9sKHZhbHVlOiBOZ0NvbnRyb2wpIHtcbiAgICAgICAgdGhpcy5fbmdDb250cm9sID0gdmFsdWU7XG4gICAgfVxuXG4gICAgZ2V0IGNvbnRyb2woKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9uZ0NvbnRyb2w7XG4gICAgfVxuXG4gICAgLy8gT3V0cHV0cy5cbiAgICBAT3V0cHV0KCkgZXJyb3JDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHsgdG9rZW46IHN0cmluZywgZGF0YT86IGFueSB9IHwgbnVsbD4oKTtcblxuICAgIC8vIFN0YXRlLlxuICAgIGVycm9yJDogT2JzZXJ2YWJsZTx7IHRva2VuOiBzdHJpbmcsIGRhdGE/OiBhbnkgfSB8IG51bGw+O1xuXG4gICAgLy8gU3Vic2NyaXB0aW9ucy5cbiAgICBwcml2YXRlIF9uZ0NvbnRyb2w6IE5nQ29udHJvbCB8IG51bGwgPSBudWxsO1xuXG4gICAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgcHJpdmF0ZSBfZm9ybT86IEJiRm9ybVN1Ym1pdCxcbiAgICAgICAgICAgICAgICBAT3B0aW9uYWwoKSBwcml2YXRlIF9jb250cm9sPzogTmdDb250cm9sLFxuICAgICAgICAgICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgX2Zvcm1TdWJtaXR0ZXI/OiBCYkZvcm1TdWJtaXR0ZXIsXG4gICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChFTEVNRU5UU19FUlJPUlMpIHByaXZhdGUgX2Vycm9ycz86IEVsZW1lbnRzRXJyb3JbXSkge1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICAvLyBTZXQgdGhlIGNvbnRyb2wgaWYgaXQgd2FzIG5vdCBzZXQgYmVmb3JlLlxuICAgICAgICBpZiAoIXRoaXMuY29udHJvbCkge1xuICAgICAgICAgICAgdGhpcy5jb250cm9sID0gdGhpcy5fY29udHJvbDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIExpc3RlbiBmb3IgdGhlIHN1Ym1pdCBjaGFuZ2VzXG4gICAgICAgIGNvbnN0IHN1Ym1pdFN0YXR1cyQgPSB0aGlzLnN1Ym1pdFN0YXR1c0NoYW5nZXMoKTtcblxuICAgICAgICAvLyBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgZXJyb3IgY2hhbmdlcy5cbiAgICAgICAgY29uc3QgZXJyb3JDaGFuZ2VzJCA9IHRoaXMuc3RhdHVzQ2hhbmdlcygpLnBpcGUoXG4gICAgICAgICAgICBtYXAoKCkgPT4gdGhpcy5nZXRFcnJvcih0aGlzLmNvbnRyb2wuZXJyb3JzKSksXG4gICAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgICAgICAgbWFwKGVycm9yID0+IHR5cGVvZiBlcnJvciA9PT0gJ3N0cmluZycgPyB7dG9rZW46IGVycm9yfSA6IGVycm9yKVxuICAgICAgICApO1xuXG4gICAgICAgIC8vIFdoZW5ldmVyIHRoZSB1c2VyIHN1Ym1pdHRlZCB0aGUgZm9ybSB3ZSB3YW50IHRvXG4gICAgICAgIC8vIGxpc3RlbiBmb3IgYW55IGVycm9yIGNoYW5nZXMuXG4gICAgICAgIHRoaXMuZXJyb3IkID0gY29tYmluZUxhdGVzdChbc3VibWl0U3RhdHVzJCwgZXJyb3JDaGFuZ2VzJF0pLnBpcGUoXG4gICAgICAgICAgICBtYXAoKFtzdWJtaXR0ZWQsIGVycm9yXSkgPT4ge1xuICAgICAgICAgICAgICAgIC8vIElmIG5vdCBzdWJtaXR0ZWQgcmV0dXJuIG51bGwuXG4gICAgICAgICAgICAgICAgaWYgKCFzdWJtaXR0ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLy8gUmV0dXJuIHRoZSBlcnJvciBpZiBzdWJtaXR0ZWQuXG4gICAgICAgICAgICAgICAgcmV0dXJuIGVycm9yO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICB0YXAodmFsdWUgPT4gdGhpcy5lcnJvckNoYW5nZS5lbWl0KHZhbHVlKSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEVycm9yKGVycm9ycz86IFZhbGlkYXRpb25FcnJvcnMpIHtcbiAgICAgICAgLy8gVmFsaWRhdGUgdGhlIGVycm9ycyBleGlzdC5cbiAgICAgICAgaWYgKCFlcnJvcnMpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gR2V0IHRoZSBmaXJzdCBlcnJvciBpbiB0aGUgZXJyb3JzLlxuICAgICAgICBjb25zdCBbZXJyb3JOYW1lXSA9IE9iamVjdC5rZXlzKGVycm9ycyk7XG4gICAgICAgIGNvbnN0IGVycm9yID0gZXJyb3JzW2Vycm9yTmFtZV07XG5cbiAgICAgICAgLy8gVmFsaWRhdGUgdGhlIGVycm9yIGV4aXN0cy5cbiAgICAgICAgaWYgKCFlcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBNYXAgdGhlIGFycmF5cyBpbnRvIGEgb2JqZWN0IHNvIHdlIGNhblxuICAgICAgICAvLyBhY2Nlc3MgdGhlIGZ1bmN0aW9ucyBieSBhIGtleS1sb29rdXAuXG4gICAgICAgIGNvbnN0IGVycm9yRnVuY3Rpb25zID0gdGhpcy5fZXJyb3JzLnJlZHVjZSgocHJldmlvdXMsIGN1cnJlbnQpID0+ICh7Li4ucHJldmlvdXMsIC4uLmN1cnJlbnR9KSwge30pO1xuXG4gICAgICAgIC8vIEdldCB0aGUgZXJyb3IgZnVuY3Rpb24uXG4gICAgICAgIGNvbnN0IGVycm9yRnVuY3Rpb24gPSBlcnJvckZ1bmN0aW9uc1tlcnJvck5hbWVdIHx8IGVycm9yRnVuY3Rpb25zWyd1bmtub3duJ107XG5cbiAgICAgICAgLy8gVmFsaWRhdGUgdGhlIGVycm9yIGZ1bmN0aW9uIGV4aXN0cy5cbiAgICAgICAgaWYgKCFlcnJvckZ1bmN0aW9uKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFJldHVybiB0aGUgcGFyc2VkIGVycm9yLlxuICAgICAgICByZXR1cm4gZXJyb3JGdW5jdGlvbihlcnJvcik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdWJtaXRTdGF0dXNDaGFuZ2VzKCkge1xuICAgICAgICBjb25zdCBuYXRpdmUkID0gdGhpcy5nZXROYXRpdmVGb3JtU3VibWl0KCk7XG4gICAgICAgIGNvbnN0IG1hbnVhbCQgPSB0aGlzLmdldE1hbnVhbEZvcm1TdWJtaXQoKTtcbiAgICAgICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoW25hdGl2ZSQsIG1hbnVhbCRdKS5waXBlKFxuICAgICAgICAgICAgbWFwKChbbmF0aXZlLCBtYW51YWxdKSA9PiBuYXRpdmUgfHwgbWFudWFsKSxcbiAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldE5hdGl2ZUZvcm1TdWJtaXQoKSB7XG4gICAgICAgIGlmICghdGhpcy5fZm9ybSkge1xuICAgICAgICAgICAgcmV0dXJuIG9mKHRydWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuX2Zvcm0uc3VibWl0U3RhdHVzJDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldE1hbnVhbEZvcm1TdWJtaXQoKSB7XG4gICAgICAgIGlmICghdGhpcy5fZm9ybVN1Ym1pdHRlcikge1xuICAgICAgICAgICAgcmV0dXJuIG9mKGZhbHNlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLl9mb3JtU3VibWl0dGVyLnN1Ym1pdHRlZCQucGlwZShcbiAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXR1c0NoYW5nZXMoKSB7XG4gICAgICAgIGlmICghdGhpcy5jb250cm9sKSB7XG4gICAgICAgICAgICByZXR1cm4gRU1QVFk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXRoaXMuY29udHJvbC5zdGF0dXNDaGFuZ2VzKSB7XG4gICAgICAgICAgICByZXR1cm4gRU1QVFk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5jb250cm9sLnN0YXR1c0NoYW5nZXMucGlwZShcbiAgICAgICAgICAgIHN0YXJ0V2l0aCh0aGlzLmNvbnRyb2wuc3RhdHVzIGFzIHVua25vd24pLFxuICAgICAgICAgICAgZGVsYXkoMClcbiAgICAgICAgKTtcbiAgICB9XG5cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJlcnJvciQgfCBhc3luYyBhcyBlcnJvclwiPlxuICAgIDxwICpuZ0lmPVwiZXJyb3I/LnRva2VuIHwgYmJMb2NhbGl6ZTp7b3B0aW9uYWw6IHRydWUsIGRhdGE6IGVycm9yPy5kYXRhfSBhcyBtZXNzYWdlXCJcbiAgICAgICBjbGFzcz1cImJiLWZvcm0tZXJyb3ItbWVzc2FnZVwiPlxuICAgICAgICB7eyBtZXNzYWdlIH19XG4gICAgPC9wPlxuPC9uZy1jb250YWluZXI+Il19