@bravobit/bb-foundation 0.14.2 → 0.15.1

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 (413) hide show
  1. package/README.md +47 -47
  2. package/auth/bravobit-bb-foundation-auth.d.ts +5 -5
  3. package/auth/lib/auth.interceptor.d.ts +21 -21
  4. package/auth/lib/auth.module.d.ts +15 -15
  5. package/auth/lib/auth.service.d.ts +59 -59
  6. package/auth/lib/auth.session.d.ts +34 -34
  7. package/auth/lib/directives/authenticated.directive.d.ts +14 -14
  8. package/auth/lib/directives/permission.directive.d.ts +24 -24
  9. package/auth/lib/directives/role.directive.d.ts +16 -16
  10. package/auth/lib/guards/anonymous.guard.d.ts +11 -11
  11. package/auth/lib/guards/authenticated.guard.d.ts +11 -11
  12. package/auth/lib/helpers/jwt.helper.d.ts +8 -8
  13. package/auth/lib/helpers/mapper.helper.d.ts +23 -23
  14. package/auth/lib/interfaces/config.interface.d.ts +12 -12
  15. package/auth/lib/interfaces/mapper.interface.d.ts +19 -19
  16. package/auth/lib/interfaces/provider.interface.d.ts +16 -16
  17. package/auth/lib/interfaces/token.interface.d.ts +11 -11
  18. package/auth/lib/permissions.service.d.ts +14 -14
  19. package/auth/lib/providers/email.provider.d.ts +15 -15
  20. package/auth/lib/providers/verify.provider.d.ts +13 -13
  21. package/auth/lib/tokens/use-authorization.token.d.ts +2 -2
  22. package/auth/public_api.d.ts +18 -18
  23. package/bravobit-bb-foundation.d.ts +5 -5
  24. package/bundles/bravobit-bb-foundation-auth.umd.js +1400 -1402
  25. package/bundles/bravobit-bb-foundation-auth.umd.js.map +1 -1
  26. package/bundles/bravobit-bb-foundation-collections.umd.js +851 -0
  27. package/bundles/bravobit-bb-foundation-collections.umd.js.map +1 -0
  28. package/bundles/bravobit-bb-foundation-dashboard.umd.js +817 -819
  29. package/bundles/bravobit-bb-foundation-dashboard.umd.js.map +1 -1
  30. package/bundles/bravobit-bb-foundation-dialog.umd.js +649 -651
  31. package/bundles/bravobit-bb-foundation-dialog.umd.js.map +1 -1
  32. package/bundles/bravobit-bb-foundation-elements.umd.js +2651 -2653
  33. package/bundles/bravobit-bb-foundation-elements.umd.js.map +1 -1
  34. package/bundles/bravobit-bb-foundation-http.umd.js +488 -490
  35. package/bundles/bravobit-bb-foundation-http.umd.js.map +1 -1
  36. package/bundles/bravobit-bb-foundation-localize.umd.js +1208 -1210
  37. package/bundles/bravobit-bb-foundation-localize.umd.js.map +1 -1
  38. package/bundles/bravobit-bb-foundation-notifications.umd.js +743 -745
  39. package/bundles/bravobit-bb-foundation-notifications.umd.js.map +1 -1
  40. package/bundles/bravobit-bb-foundation-recaptcha.umd.js +640 -642
  41. package/bundles/bravobit-bb-foundation-recaptcha.umd.js.map +1 -1
  42. package/bundles/bravobit-bb-foundation-rxjs.umd.js +13 -13
  43. package/bundles/bravobit-bb-foundation-rxjs.umd.js.map +1 -1
  44. package/bundles/bravobit-bb-foundation-storage.umd.js +756 -758
  45. package/bundles/bravobit-bb-foundation-storage.umd.js.map +1 -1
  46. package/bundles/bravobit-bb-foundation-table.umd.js +993 -995
  47. package/bundles/bravobit-bb-foundation-table.umd.js.map +1 -1
  48. package/bundles/bravobit-bb-foundation.umd.js +1336 -1263
  49. package/bundles/bravobit-bb-foundation.umd.js.map +1 -1
  50. package/collections/bravobit-bb-foundation-collections.d.ts +5 -0
  51. package/collections/lib/collection.d.ts +40 -0
  52. package/collections/lib/collections.module.d.ts +10 -0
  53. package/collections/lib/components/collections-pager/collections-pager.component.d.ts +34 -0
  54. package/collections/lib/components/collections-viewer/collections-viewer.component.d.ts +12 -0
  55. package/collections/lib/components/collections.directive.d.ts +17 -0
  56. package/collections/lib/interfaces/collection.interface.d.ts +26 -0
  57. package/collections/lib/providers/api-collection.provider.d.ts +15 -0
  58. package/collections/lib/providers/collection.provider.d.ts +6 -0
  59. package/collections/lib/providers/local-collection.provider.d.ts +8 -0
  60. package/collections/package.json +10 -0
  61. package/collections/public_api.d.ts +9 -0
  62. package/dashboard/bravobit-bb-foundation-dashboard.d.ts +5 -5
  63. package/dashboard/lib/dashboard/dashboard.component.d.ts +19 -19
  64. package/dashboard/lib/dashboard-header/dashboard-header.component.d.ts +11 -11
  65. package/dashboard/lib/dashboard-menu/dashboard-menu.component.d.ts +9 -9
  66. package/dashboard/lib/dashboard-menu-item/dashboard-menu-item.component.d.ts +11 -11
  67. package/dashboard/lib/dashboard-sidebar/dashboard-sidebar.component.d.ts +21 -21
  68. package/dashboard/lib/dashboard-sidebar-group/dashboard-sidebar-group.component.d.ts +27 -27
  69. package/dashboard/lib/dashboard-sidebar-item/dashboard-sidebar-item.component.d.ts +16 -16
  70. package/dashboard/lib/dashboard.module.d.ts +16 -16
  71. package/dashboard/public_api.d.ts +8 -8
  72. package/dialog/bravobit-bb-foundation-dialog.d.ts +5 -5
  73. package/dialog/lib/dialog-actions/dialog-actions.component.d.ts +5 -5
  74. package/dialog/lib/dialog-confirm/dialog-confirm.component.d.ts +16 -16
  75. package/dialog/lib/dialog-container/dialog-container.component.d.ts +24 -24
  76. package/dialog/lib/dialog-header/dialog-header.component.d.ts +9 -9
  77. package/dialog/lib/dialog-link/dialog-link.component.d.ts +5 -5
  78. package/dialog/lib/dialog-modal/dialog-modal.component.d.ts +12 -12
  79. package/dialog/lib/dialog-overlay/dialog-overlay.component.d.ts +22 -22
  80. package/dialog/lib/dialog.injector.d.ts +8 -8
  81. package/dialog/lib/dialog.insertion.d.ts +8 -8
  82. package/dialog/lib/dialog.interfaces.d.ts +3 -3
  83. package/dialog/lib/dialog.module.d.ts +19 -19
  84. package/dialog/lib/dialog.ref.d.ts +8 -8
  85. package/dialog/lib/dialog.service.d.ts +19 -19
  86. package/dialog/public_api.d.ts +9 -9
  87. package/elements/bravobit-bb-foundation-elements.d.ts +5 -5
  88. package/elements/lib/avatar/avatar.component.d.ts +25 -25
  89. package/elements/lib/button/button.component.d.ts +23 -23
  90. package/elements/lib/checkbox/checkbox.component.d.ts +27 -27
  91. package/elements/lib/date-picker/date-picker.component.d.ts +69 -69
  92. package/elements/lib/directives/addon.directive.d.ts +9 -9
  93. package/elements/lib/directives/autosize.directive.d.ts +18 -18
  94. package/elements/lib/directives/focus-trap.directive.d.ts +17 -17
  95. package/elements/lib/directives/focus.directive.d.ts +14 -14
  96. package/elements/lib/directives/form-submit.directive.d.ts +17 -17
  97. package/elements/lib/directives/input.directive.d.ts +38 -38
  98. package/elements/lib/directives/template.directive.d.ts +10 -10
  99. package/elements/lib/dropdown/dropdown.component.d.ts +21 -21
  100. package/elements/lib/elements.interfaces.d.ts +25 -25
  101. package/elements/lib/elements.module.d.ts +116 -116
  102. package/elements/lib/file-picker/file-picker.component.d.ts +49 -49
  103. package/elements/lib/form-control/form-control.component.d.ts +21 -21
  104. package/elements/lib/form-error/form-error.component.d.ts +29 -29
  105. package/elements/lib/form-group/form-group.component.d.ts +10 -10
  106. package/elements/lib/icon/icon.component.d.ts +22 -22
  107. package/elements/lib/image-picker/image-picker.component.d.ts +38 -38
  108. package/elements/lib/pipes/file-image.pipe.d.ts +13 -13
  109. package/elements/lib/pipes/file-size.pipe.d.ts +8 -8
  110. package/elements/lib/pipes/relative-time.pipe.d.ts +19 -19
  111. package/elements/lib/spinner/spinner.component.d.ts +12 -12
  112. package/elements/lib/tag/tag.component.d.ts +7 -7
  113. package/elements/public_api.d.ts +25 -25
  114. package/esm2015/auth/bravobit-bb-foundation-auth.js +4 -4
  115. package/esm2015/auth/lib/auth.interceptor.js +95 -95
  116. package/esm2015/auth/lib/auth.module.js +54 -54
  117. package/esm2015/auth/lib/auth.service.js +299 -299
  118. package/esm2015/auth/lib/auth.session.js +136 -136
  119. package/esm2015/auth/lib/directives/authenticated.directive.js +32 -32
  120. package/esm2015/auth/lib/directives/permission.directive.js +81 -81
  121. package/esm2015/auth/lib/directives/role.directive.js +38 -38
  122. package/esm2015/auth/lib/guards/anonymous.guard.js +35 -35
  123. package/esm2015/auth/lib/guards/authenticated.guard.js +36 -36
  124. package/esm2015/auth/lib/helpers/jwt.helper.js +69 -69
  125. package/esm2015/auth/lib/helpers/mapper.helper.js +35 -35
  126. package/esm2015/auth/lib/interfaces/config.interface.js +3 -3
  127. package/esm2015/auth/lib/interfaces/mapper.interface.js +2 -2
  128. package/esm2015/auth/lib/interfaces/provider.interface.js +2 -2
  129. package/esm2015/auth/lib/interfaces/token.interface.js +2 -2
  130. package/esm2015/auth/lib/permissions.service.js +58 -58
  131. package/esm2015/auth/lib/providers/email.provider.js +26 -26
  132. package/esm2015/auth/lib/providers/verify.provider.js +20 -20
  133. package/esm2015/auth/lib/tokens/use-authorization.token.js +3 -3
  134. package/esm2015/auth/public_api.js +19 -19
  135. package/esm2015/bravobit-bb-foundation.js +4 -4
  136. package/esm2015/collections/bravobit-bb-foundation-collections.js +5 -0
  137. package/esm2015/collections/lib/collection.js +88 -0
  138. package/esm2015/collections/lib/collections.module.js +54 -0
  139. package/esm2015/collections/lib/components/collections-pager/collections-pager.component.js +136 -0
  140. package/esm2015/collections/lib/components/collections-viewer/collections-viewer.component.js +39 -0
  141. package/esm2015/collections/lib/components/collections.directive.js +43 -0
  142. package/esm2015/collections/lib/interfaces/collection.interface.js +2 -0
  143. package/esm2015/collections/lib/providers/api-collection.provider.js +69 -0
  144. package/esm2015/collections/lib/providers/collection.provider.js +14 -0
  145. package/esm2015/collections/lib/providers/local-collection.provider.js +16 -0
  146. package/esm2015/collections/public_api.js +10 -0
  147. package/esm2015/dashboard/bravobit-bb-foundation-dashboard.js +4 -4
  148. package/esm2015/dashboard/lib/dashboard/dashboard.component.js +64 -64
  149. package/esm2015/dashboard/lib/dashboard-header/dashboard-header.component.js +41 -41
  150. package/esm2015/dashboard/lib/dashboard-menu/dashboard-menu.component.js +39 -39
  151. package/esm2015/dashboard/lib/dashboard-menu-item/dashboard-menu-item.component.js +38 -38
  152. package/esm2015/dashboard/lib/dashboard-sidebar/dashboard-sidebar.component.js +83 -83
  153. package/esm2015/dashboard/lib/dashboard-sidebar-group/dashboard-sidebar-group.component.js +110 -110
  154. package/esm2015/dashboard/lib/dashboard-sidebar-item/dashboard-sidebar-item.component.js +71 -71
  155. package/esm2015/dashboard/lib/dashboard.module.js +47 -47
  156. package/esm2015/dashboard/public_api.js +9 -9
  157. package/esm2015/dialog/bravobit-bb-foundation-dialog.js +4 -4
  158. package/esm2015/dialog/lib/dialog-actions/dialog-actions.component.js +20 -20
  159. package/esm2015/dialog/lib/dialog-confirm/dialog-confirm.component.js +45 -45
  160. package/esm2015/dialog/lib/dialog-container/dialog-container.component.js +162 -162
  161. package/esm2015/dialog/lib/dialog-header/dialog-header.component.js +33 -33
  162. package/esm2015/dialog/lib/dialog-link/dialog-link.component.js +19 -19
  163. package/esm2015/dialog/lib/dialog-modal/dialog-modal.component.js +54 -54
  164. package/esm2015/dialog/lib/dialog-overlay/dialog-overlay.component.js +143 -143
  165. package/esm2015/dialog/lib/dialog.injector.js +18 -18
  166. package/esm2015/dialog/lib/dialog.insertion.js +16 -16
  167. package/esm2015/dialog/lib/dialog.interfaces.js +3 -3
  168. package/esm2015/dialog/lib/dialog.module.js +74 -74
  169. package/esm2015/dialog/lib/dialog.ref.js +22 -22
  170. package/esm2015/dialog/lib/dialog.service.js +77 -77
  171. package/esm2015/dialog/public_api.js +10 -10
  172. package/esm2015/elements/bravobit-bb-foundation-elements.js +4 -4
  173. package/esm2015/elements/lib/avatar/avatar.component.js +151 -151
  174. package/esm2015/elements/lib/button/button.component.js +79 -79
  175. package/esm2015/elements/lib/checkbox/checkbox.component.js +83 -83
  176. package/esm2015/elements/lib/date-picker/date-picker.component.js +322 -322
  177. package/esm2015/elements/lib/directives/addon.directive.js +29 -29
  178. package/esm2015/elements/lib/directives/autosize.directive.js +74 -74
  179. package/esm2015/elements/lib/directives/focus-trap.directive.js +77 -77
  180. package/esm2015/elements/lib/directives/focus.directive.js +39 -39
  181. package/esm2015/elements/lib/directives/form-submit.directive.js +53 -53
  182. package/esm2015/elements/lib/directives/input.directive.js +139 -139
  183. package/esm2015/elements/lib/directives/template.directive.js +28 -28
  184. package/esm2015/elements/lib/dropdown/dropdown.component.js +111 -111
  185. package/esm2015/elements/lib/elements.interfaces.js +4 -4
  186. package/esm2015/elements/lib/elements.module.js +177 -177
  187. package/esm2015/elements/lib/file-picker/file-picker.component.js +247 -247
  188. package/esm2015/elements/lib/form-control/form-control.component.js +58 -58
  189. package/esm2015/elements/lib/form-error/form-error.component.js +116 -116
  190. package/esm2015/elements/lib/form-group/form-group.component.js +27 -27
  191. package/esm2015/elements/lib/icon/icon.component.js +110 -110
  192. package/esm2015/elements/lib/image-picker/image-picker.component.js +119 -119
  193. package/esm2015/elements/lib/pipes/file-image.pipe.js +45 -45
  194. package/esm2015/elements/lib/pipes/file-size.pipe.js +28 -28
  195. package/esm2015/elements/lib/pipes/relative-time.pipe.js +96 -96
  196. package/esm2015/elements/lib/spinner/spinner.component.js +34 -34
  197. package/esm2015/elements/lib/tag/tag.component.js +26 -26
  198. package/esm2015/elements/public_api.js +26 -26
  199. package/esm2015/http/bravobit-bb-foundation-http.js +4 -4
  200. package/esm2015/http/lib/classes/http.config.js +31 -31
  201. package/esm2015/http/lib/classes/http.error.js +21 -21
  202. package/esm2015/http/lib/http.interfaces.js +2 -2
  203. package/esm2015/http/lib/http.module.js +43 -43
  204. package/esm2015/http/lib/interceptors/base-url.interceptor.js +52 -52
  205. package/esm2015/http/lib/interceptors/error.interceptor.js +33 -33
  206. package/esm2015/http/public_api.js +7 -7
  207. package/esm2015/lib/core/coercions/boolean-coercion.js +4 -4
  208. package/esm2015/lib/core/miscellaneous/regex.js +5 -5
  209. package/esm2015/lib/core/miscellaneous/validator.js +86 -86
  210. package/esm2015/lib/core/mixins/can-disable.js +16 -16
  211. package/esm2015/lib/core/mixins/can-hide-errors.js +16 -16
  212. package/esm2015/lib/core/mixins/can-load.js +16 -16
  213. package/esm2015/lib/core/mixins/constructor.js +2 -2
  214. package/esm2015/lib/core/mixins/has-error.js +16 -16
  215. package/esm2015/lib/core/mixins/is-focused.js +16 -16
  216. package/esm2015/lib/core/mixins/is-grouped.js +16 -16
  217. package/esm2015/lib/core/mixins/is-readonly.js +16 -16
  218. package/esm2015/lib/core/mixins/is-required.js +16 -16
  219. package/esm2015/lib/core/services/clipboard.service.js +72 -0
  220. package/esm2015/lib/core/services/exif.service.js +168 -168
  221. package/esm2015/lib/core/services/file-loader.service.js +90 -90
  222. package/esm2015/lib/core/services/image-converter.service.js +130 -130
  223. package/esm2015/lib/core/services/languages.service.js +74 -74
  224. package/esm2015/lib/core/services/network.service.js +56 -56
  225. package/esm2015/lib/core/services/patch.service.js +65 -65
  226. package/esm2015/lib/core/services/platform.service.js +42 -42
  227. package/esm2015/lib/core/tokens/accept-language.token.js +3 -3
  228. package/esm2015/lib/core/tokens/base-url.token.js +3 -3
  229. package/esm2015/lib/core/tokens/cookie.token.js +3 -3
  230. package/esm2015/lib/core/tokens/location.token.js +6 -6
  231. package/esm2015/lib/core/tokens/navigator.token.js +6 -6
  232. package/esm2015/lib/core/tokens/window.token.js +12 -12
  233. package/esm2015/localize/bravobit-bb-foundation-localize.js +4 -4
  234. package/esm2015/localize/lib/functions/date.function.js +18 -18
  235. package/esm2015/localize/lib/functions/lowercase.function.js +13 -13
  236. package/esm2015/localize/lib/functions/uppercase.function.js +13 -13
  237. package/esm2015/localize/lib/handlers/missing.handler.js +17 -17
  238. package/esm2015/localize/lib/interfaces/config.interfaces.js +10 -10
  239. package/esm2015/localize/lib/interfaces/dictionary.interfaces.js +8 -8
  240. package/esm2015/localize/lib/interfaces/functions.interfaces.js +8 -8
  241. package/esm2015/localize/lib/interfaces/handlers.interfaces.js +2 -2
  242. package/esm2015/localize/lib/interfaces/options.interfaces.js +6 -6
  243. package/esm2015/localize/lib/localizations/dutch.localization.js +53 -53
  244. package/esm2015/localize/lib/localizations/english.localization.js +53 -53
  245. package/esm2015/localize/lib/localize.dictionary.js +137 -137
  246. package/esm2015/localize/lib/localize.module.js +69 -69
  247. package/esm2015/localize/lib/localize.pipe.js +49 -49
  248. package/esm2015/localize/lib/localize.service.js +282 -282
  249. package/esm2015/localize/lib/views/localize-string/localize-string.component.js +99 -99
  250. package/esm2015/localize/lib/views/localize-template-or-string.directive.js +28 -28
  251. package/esm2015/localize/lib/views/localize-template.directive.js +21 -21
  252. package/esm2015/localize/public_api.js +18 -18
  253. package/esm2015/notifications/bravobit-bb-foundation-notifications.js +4 -4
  254. package/esm2015/notifications/lib/notifications-item/notifications-item.component.js +108 -108
  255. package/esm2015/notifications/lib/notifications-list/notifications-list.component.js +56 -56
  256. package/esm2015/notifications/lib/notifications.animations.js +28 -28
  257. package/esm2015/notifications/lib/notifications.injector.js +18 -18
  258. package/esm2015/notifications/lib/notifications.interfaces.js +20 -20
  259. package/esm2015/notifications/lib/notifications.module.js +31 -31
  260. package/esm2015/notifications/lib/notifications.service.js +145 -145
  261. package/esm2015/notifications/public_api.js +4 -4
  262. package/esm2015/public_api.js +30 -29
  263. package/esm2015/recaptcha/bravobit-bb-foundation-recaptcha.js +4 -4
  264. package/esm2015/recaptcha/lib/recaptcha/recaptcha.component.js +199 -199
  265. package/esm2015/recaptcha/lib/recaptcha-loader.service.js +93 -93
  266. package/esm2015/recaptcha/lib/recaptcha.interface.js +3 -3
  267. package/esm2015/recaptcha/lib/recaptcha.module.js +27 -27
  268. package/esm2015/recaptcha/public_api.js +5 -5
  269. package/esm2015/rxjs/bravobit-bb-foundation-rxjs.js +4 -4
  270. package/esm2015/rxjs/lib/operators/combine-latest-map.operator.js +7 -7
  271. package/esm2015/rxjs/lib/operators/filter-nil.operator.js +5 -5
  272. package/esm2015/rxjs/public_api.js +3 -3
  273. package/esm2015/storage/bravobit-bb-foundation-storage.js +4 -4
  274. package/esm2015/storage/lib/interfaces/attributes.interface.js +2 -2
  275. package/esm2015/storage/lib/interfaces/memory.interface.js +2 -2
  276. package/esm2015/storage/lib/interfaces/strategy.interface.js +2 -2
  277. package/esm2015/storage/lib/storage.service.js +111 -111
  278. package/esm2015/storage/lib/strategies/cookie-storage.strategy.js +143 -143
  279. package/esm2015/storage/lib/strategies/memory-storage.strategy.js +56 -56
  280. package/esm2015/storage/lib/strategies/polyfill-storage.strategy.js +102 -102
  281. package/esm2015/storage/public_api.js +8 -8
  282. package/esm2015/table/bravobit-bb-foundation-table.js +4 -4
  283. package/esm2015/table/lib/components/table/table.component.js +183 -183
  284. package/esm2015/table/lib/components/table-cell/table-cell.component.js +19 -19
  285. package/esm2015/table/lib/components/table-header-cell/table-header-cell.component.js +141 -141
  286. package/esm2015/table/lib/components/table-pager/table-pager.component.js +146 -146
  287. package/esm2015/table/lib/data/datasource.data.js +32 -32
  288. package/esm2015/table/lib/data/generic.data.js +73 -73
  289. package/esm2015/table/lib/interfaces/datasource.interface.js +2 -2
  290. package/esm2015/table/lib/interfaces/table.interfaces.js +2 -2
  291. package/esm2015/table/lib/table.module.js +39 -39
  292. package/esm2015/table/public_api.js +10 -10
  293. package/fesm2015/bravobit-bb-foundation-auth.js +915 -915
  294. package/fesm2015/bravobit-bb-foundation-auth.js.map +1 -1
  295. package/fesm2015/bravobit-bb-foundation-collections.js +447 -0
  296. package/fesm2015/bravobit-bb-foundation-collections.js.map +1 -0
  297. package/fesm2015/bravobit-bb-foundation-dashboard.js +434 -434
  298. package/fesm2015/bravobit-bb-foundation-dashboard.js.map +1 -1
  299. package/fesm2015/bravobit-bb-foundation-dialog.js +603 -603
  300. package/fesm2015/bravobit-bb-foundation-dialog.js.map +1 -1
  301. package/fesm2015/bravobit-bb-foundation-elements.js +2076 -2076
  302. package/fesm2015/bravobit-bb-foundation-elements.js.map +1 -1
  303. package/fesm2015/bravobit-bb-foundation-http.js +154 -154
  304. package/fesm2015/bravobit-bb-foundation-http.js.map +1 -1
  305. package/fesm2015/bravobit-bb-foundation-localize.js +796 -796
  306. package/fesm2015/bravobit-bb-foundation-localize.js.map +1 -1
  307. package/fesm2015/bravobit-bb-foundation-notifications.js +364 -364
  308. package/fesm2015/bravobit-bb-foundation-notifications.js.map +1 -1
  309. package/fesm2015/bravobit-bb-foundation-recaptcha.js +297 -297
  310. package/fesm2015/bravobit-bb-foundation-recaptcha.js.map +1 -1
  311. package/fesm2015/bravobit-bb-foundation-rxjs.js +7 -7
  312. package/fesm2015/bravobit-bb-foundation-rxjs.js.map +1 -1
  313. package/fesm2015/bravobit-bb-foundation-storage.js +399 -399
  314. package/fesm2015/bravobit-bb-foundation-storage.js.map +1 -1
  315. package/fesm2015/bravobit-bb-foundation-table.js +578 -578
  316. package/fesm2015/bravobit-bb-foundation-table.js.map +1 -1
  317. package/fesm2015/bravobit-bb-foundation.js +854 -785
  318. package/fesm2015/bravobit-bb-foundation.js.map +1 -1
  319. package/http/bravobit-bb-foundation-http.d.ts +5 -5
  320. package/http/lib/classes/http.config.d.ts +9 -9
  321. package/http/lib/classes/http.error.d.ts +7 -7
  322. package/http/lib/http.interfaces.d.ts +12 -12
  323. package/http/lib/http.module.d.ts +15 -15
  324. package/http/lib/interceptors/base-url.interceptor.d.ts +15 -15
  325. package/http/lib/interceptors/error.interceptor.d.ts +11 -11
  326. package/http/public_api.d.ts +6 -6
  327. package/lib/core/coercions/boolean-coercion.d.ts +1 -1
  328. package/lib/core/miscellaneous/regex.d.ts +4 -4
  329. package/lib/core/miscellaneous/validator.d.ts +13 -13
  330. package/lib/core/mixins/can-disable.d.ts +6 -6
  331. package/lib/core/mixins/can-hide-errors.d.ts +6 -6
  332. package/lib/core/mixins/can-load.d.ts +6 -6
  333. package/lib/core/mixins/constructor.d.ts +1 -1
  334. package/lib/core/mixins/has-error.d.ts +6 -6
  335. package/lib/core/mixins/is-focused.d.ts +6 -6
  336. package/lib/core/mixins/is-grouped.d.ts +6 -6
  337. package/lib/core/mixins/is-readonly.d.ts +6 -6
  338. package/lib/core/mixins/is-required.d.ts +6 -6
  339. package/lib/core/services/clipboard.service.d.ts +18 -0
  340. package/lib/core/services/exif.service.d.ts +15 -15
  341. package/lib/core/services/file-loader.service.d.ts +13 -13
  342. package/lib/core/services/image-converter.service.d.ts +21 -21
  343. package/lib/core/services/languages.service.d.ts +16 -16
  344. package/lib/core/services/network.service.d.ts +14 -14
  345. package/lib/core/services/patch.service.d.ts +16 -16
  346. package/lib/core/services/platform.service.d.ts +18 -18
  347. package/lib/core/tokens/accept-language.token.d.ts +2 -2
  348. package/lib/core/tokens/base-url.token.d.ts +2 -2
  349. package/lib/core/tokens/cookie.token.d.ts +2 -2
  350. package/lib/core/tokens/location.token.d.ts +2 -2
  351. package/lib/core/tokens/navigator.token.d.ts +2 -2
  352. package/lib/core/tokens/window.token.d.ts +2 -2
  353. package/localize/bravobit-bb-foundation-localize.d.ts +5 -5
  354. package/localize/lib/functions/date.function.d.ts +5 -5
  355. package/localize/lib/functions/lowercase.function.d.ts +5 -5
  356. package/localize/lib/functions/uppercase.function.d.ts +5 -5
  357. package/localize/lib/handlers/missing.handler.d.ts +6 -6
  358. package/localize/lib/interfaces/config.interfaces.d.ts +8 -8
  359. package/localize/lib/interfaces/dictionary.interfaces.d.ts +12 -12
  360. package/localize/lib/interfaces/functions.interfaces.d.ts +9 -9
  361. package/localize/lib/interfaces/handlers.interfaces.d.ts +6 -6
  362. package/localize/lib/interfaces/options.interfaces.d.ts +10 -10
  363. package/localize/lib/localizations/dutch.localization.d.ts +51 -51
  364. package/localize/lib/localizations/english.localization.d.ts +51 -51
  365. package/localize/lib/localize.dictionary.d.ts +24 -24
  366. package/localize/lib/localize.module.d.ts +18 -18
  367. package/localize/lib/localize.pipe.d.ts +12 -12
  368. package/localize/lib/localize.service.d.ts +51 -51
  369. package/localize/lib/views/localize-string/localize-string.component.d.ts +23 -23
  370. package/localize/lib/views/localize-template-or-string.directive.d.ts +10 -10
  371. package/localize/lib/views/localize-template.directive.d.ts +9 -9
  372. package/localize/public_api.d.ts +17 -17
  373. package/notifications/bravobit-bb-foundation-notifications.d.ts +5 -5
  374. package/notifications/lib/notifications-item/notifications-item.component.d.ts +34 -34
  375. package/notifications/lib/notifications-list/notifications-list.component.d.ts +16 -16
  376. package/notifications/lib/notifications.animations.d.ts +1 -1
  377. package/notifications/lib/notifications.injector.d.ts +8 -8
  378. package/notifications/lib/notifications.interfaces.d.ts +49 -49
  379. package/notifications/lib/notifications.module.d.ts +13 -13
  380. package/notifications/lib/notifications.service.d.ts +34 -34
  381. package/notifications/public_api.d.ts +3 -3
  382. package/package.json +5 -5
  383. package/public_api.d.ts +26 -25
  384. package/recaptcha/bravobit-bb-foundation-recaptcha.d.ts +5 -5
  385. package/recaptcha/lib/recaptcha/recaptcha.component.d.ts +47 -47
  386. package/recaptcha/lib/recaptcha-loader.service.d.ts +22 -22
  387. package/recaptcha/lib/recaptcha.interface.d.ts +14 -14
  388. package/recaptcha/lib/recaptcha.module.d.ts +10 -10
  389. package/recaptcha/public_api.d.ts +4 -4
  390. package/rxjs/bravobit-bb-foundation-rxjs.d.ts +5 -5
  391. package/rxjs/lib/operators/combine-latest-map.operator.d.ts +8 -8
  392. package/rxjs/lib/operators/filter-nil.operator.d.ts +1 -1
  393. package/rxjs/public_api.d.ts +2 -2
  394. package/storage/bravobit-bb-foundation-storage.d.ts +5 -5
  395. package/storage/lib/interfaces/attributes.interface.d.ts +13 -13
  396. package/storage/lib/interfaces/memory.interface.d.ts +7 -7
  397. package/storage/lib/interfaces/strategy.interface.d.ts +17 -17
  398. package/storage/lib/storage.service.d.ts +26 -26
  399. package/storage/lib/strategies/cookie-storage.strategy.d.ts +20 -20
  400. package/storage/lib/strategies/memory-storage.strategy.d.ts +11 -11
  401. package/storage/lib/strategies/polyfill-storage.strategy.d.ts +15 -15
  402. package/storage/public_api.d.ts +7 -7
  403. package/table/bravobit-bb-foundation-table.d.ts +5 -5
  404. package/table/lib/components/table/table.component.d.ts +48 -48
  405. package/table/lib/components/table-cell/table-cell.component.d.ts +5 -5
  406. package/table/lib/components/table-header-cell/table-header-cell.component.d.ts +29 -29
  407. package/table/lib/components/table-pager/table-pager.component.d.ts +41 -41
  408. package/table/lib/data/datasource.data.d.ts +14 -14
  409. package/table/lib/data/generic.data.d.ts +23 -23
  410. package/table/lib/interfaces/datasource.interface.d.ts +17 -17
  411. package/table/lib/interfaces/table.interfaces.d.ts +1 -1
  412. package/table/lib/table.module.d.ts +14 -14
  413. package/table/public_api.d.ts +9 -9
@@ -1,151 +1,151 @@
1
- import { ChangeDetectionStrategy, Component, HostBinding, Input, ViewEncapsulation } from '@angular/core';
2
- import { BehaviorSubject } from 'rxjs';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/common";
5
- export class BbAvatar {
6
- constructor() {
7
- // Inputs.
8
- this.size = 40;
9
- // State.
10
- this.state$ = new BehaviorSubject('initials');
11
- // Data.
12
- this._src = null;
13
- this._title = null;
14
- this._initials = '!';
15
- this._color = 'rgb(255, 255, 255)';
16
- this._backgroundColor = 'rgb(66, 66, 66)';
17
- this.toRGb = (value) => {
18
- const baseRed = 128;
19
- const baseGreen = 128;
20
- const baseBlue = 128;
21
- let seed = value.charCodeAt(0) ^ value.charCodeAt(1);
22
- const rand_1 = Math.abs((Math.sin(seed++) * 10000)) % 256;
23
- const rand_2 = Math.abs((Math.sin(seed++) * 10000)) % 256;
24
- const rand_3 = Math.abs((Math.sin(seed++) * 10000)) % 256;
25
- const r = Math.round((rand_1 + baseRed) / 2);
26
- const g = Math.round((rand_2 + baseGreen) / 2);
27
- const b = Math.round((rand_3 + baseBlue) / 2);
28
- return { r, g, b };
29
- };
30
- this.getInitials = (name) => {
31
- // Get all the initials.
32
- const names = (name || '').split(' ');
33
- const initials = names.map(name => name.charAt(0).toUpperCase());
34
- // Check if there are any initials.
35
- if (initials.length <= 0) {
36
- return null;
37
- }
38
- // Get the first and last initials.
39
- if (initials.length > 1) {
40
- return `${initials[0]}${initials[initials.length - 1]}`;
41
- }
42
- // Get only the first initial.
43
- return initials[0];
44
- };
45
- this.parseColorFormat = (value) => {
46
- var _a;
47
- // Hex 3 values.
48
- let match = value.match(/^#([0-9a-f]{3})$/i);
49
- if (match && match[1]) {
50
- const r = parseInt(match[1].charAt(0), 16) * 0x11;
51
- const g = parseInt(match[1].charAt(1), 16) * 0x11;
52
- const b = parseInt(match[1].charAt(2), 16) * 0x11;
53
- return { r, g, b };
54
- }
55
- // Hex 6 values.
56
- match = value.match(/^#([0-9a-f]{6})$/i);
57
- if (match && match[1]) {
58
- const r = parseInt(match[1].substr(0, 2), 16);
59
- const g = parseInt(match[1].substr(2, 2), 16);
60
- const b = parseInt(match[1].substr(4, 2), 16);
61
- return { r, g, b };
62
- }
63
- // Rgb values.
64
- match = value.match(/^rgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)$/i);
65
- if (match) {
66
- const r = parseInt(match[1], 10);
67
- const g = parseInt(match[2], 10);
68
- const b = parseInt(match[3], 10);
69
- return { r, g, b };
70
- }
71
- // Not a supported color format.
72
- (_a = console === null || console === void 0 ? void 0 : console.warn) === null || _a === void 0 ? void 0 : _a.call(console, `BbAvatar: Unsupported tintColor "${value}" was used.`);
73
- return null;
74
- };
75
- }
76
- set src(value) {
77
- this._src = value;
78
- if (this._src) {
79
- this.state$.next('image');
80
- }
81
- }
82
- set title(value) {
83
- // Set the title and the initials.
84
- this._title = value || '!';
85
- this._initials = this.getInitials(this._title);
86
- // Generate the colors based on the name.
87
- const { r, g, b } = this.toRGb(this._title);
88
- this.setColors(r, g, b);
89
- }
90
- set tintColor(value) {
91
- const result = this.parseColorFormat(value);
92
- if (!result) {
93
- return;
94
- }
95
- const { r, g, b } = result;
96
- this.setColors(r, g, b);
97
- }
98
- get src() {
99
- return this._src;
100
- }
101
- get color() {
102
- return this._color;
103
- }
104
- get backgroundColor() {
105
- return this._backgroundColor;
106
- }
107
- get title() {
108
- return this._title;
109
- }
110
- get initials() {
111
- return this._initials;
112
- }
113
- setColors(red, green, blue) {
114
- this._color = `rgb(${red},${green},${blue})`;
115
- this._backgroundColor = `rgba(${red},${green},${blue}, 0.25)`;
116
- }
117
- }
118
- BbAvatar.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.4", ngImport: i0, type: BbAvatar, deps: [], target: i0.ɵɵFactoryTarget.Component });
119
- BbAvatar.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.4", type: BbAvatar, selector: "bb-avatar", inputs: { size: "size", src: "src", title: "title", tintColor: "tintColor" }, host: { attributes: { "role": "img" }, properties: { "style.width.px": "size", "style.height.px": "size", "style.font-size.px": "size / 2", "style.color": "color", "style.background-color": "backgroundColor", "attr.title": "this.title" }, classAttribute: "bb-avatar" }, ngImport: i0, template: "<ng-container [ngSwitch]=\"state$ | async\">\r\n <!-- Image. -->\r\n <ng-container *ngSwitchCase=\"'image'\">\r\n <img [src]=\"src\"\r\n [alt]=\"initials\"\r\n (error)=\"state$?.next('initials')\"\r\n class=\"bb-avatar-image\">\r\n </ng-container>\r\n\r\n <!-- Default initials fallback. -->\r\n <ng-container *ngSwitchDefault>\r\n {{ initials }}\r\n </ng-container>\r\n</ng-container>\r\n", styles: [".bb-avatar{line-height:1;font-size:18px;overflow:hidden;font-weight:500;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:relative;border-radius:50%;align-items:center;display:inline-flex;justify-content:center}.bb-avatar.rounded{border-radius:4px}.bb-avatar.square{border-radius:0}.bb-avatar-image{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;position:absolute}"], directives: [{ type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }], pipes: { "async": i1.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
120
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.4", ngImport: i0, type: BbAvatar, decorators: [{
121
- type: Component,
122
- args: [{
123
- selector: 'bb-avatar',
124
- templateUrl: './avatar.component.html',
125
- styleUrls: ['./avatar.component.scss'],
126
- changeDetection: ChangeDetectionStrategy.OnPush,
127
- encapsulation: ViewEncapsulation.None,
128
- preserveWhitespaces: false,
129
- host: {
130
- 'class': 'bb-avatar',
131
- 'role': 'img',
132
- '[style.width.px]': 'size',
133
- '[style.height.px]': 'size',
134
- '[style.font-size.px]': 'size / 2',
135
- '[style.color]': 'color',
136
- '[style.background-color]': 'backgroundColor'
137
- }
138
- }]
139
- }], propDecorators: { size: [{
140
- type: Input
141
- }], src: [{
142
- type: Input
143
- }], title: [{
144
- type: Input
145
- }, {
146
- type: HostBinding,
147
- args: ['attr.title']
148
- }], tintColor: [{
149
- type: Input
150
- }] } });
151
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vZWxlbWVudHMvc3JjL2xpYi9hdmF0YXIvYXZhdGFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vZWxlbWVudHMvc3JjL2xpYi9hdmF0YXIvYXZhdGFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN4RyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sTUFBTSxDQUFDOzs7QUFtQnJDLE1BQU0sT0FBTyxRQUFRO0lBakJyQjtRQW1CSSxVQUFVO1FBQ0QsU0FBSSxHQUFXLEVBQUUsQ0FBQztRQUUzQixTQUFTO1FBQ1QsV0FBTSxHQUFHLElBQUksZUFBZSxDQUFTLFVBQVUsQ0FBQyxDQUFDO1FBRWpELFFBQVE7UUFDQSxTQUFJLEdBQWtCLElBQUksQ0FBQztRQUMzQixXQUFNLEdBQWtCLElBQUksQ0FBQztRQUM3QixjQUFTLEdBQVcsR0FBRyxDQUFDO1FBQ3hCLFdBQU0sR0FBVyxvQkFBb0IsQ0FBQztRQUN0QyxxQkFBZ0IsR0FBVyxpQkFBaUIsQ0FBQztRQTREN0MsVUFBSyxHQUFHLENBQUMsS0FBYSxFQUFFLEVBQUU7WUFDOUIsTUFBTSxPQUFPLEdBQUcsR0FBRyxDQUFDO1lBQ3BCLE1BQU0sU0FBUyxHQUFHLEdBQUcsQ0FBQztZQUN0QixNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUM7WUFFckIsSUFBSSxJQUFJLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3JELE1BQU0sTUFB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ImltcG9ydCB7Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIElucHV0LCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0fSBmcm9tICdyeGpzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdiYi1hdmF0YXInLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2F2YXRhci5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9hdmF0YXIuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICAgIHByZXNlcnZlV2hpdGVzcGFjZXM6IGZhbHNlLFxyXG4gICAgaG9zdDoge1xyXG4gICAgICAgICdjbGFzcyc6ICdiYi1hdmF0YXInLFxyXG4gICAgICAgICdyb2xlJzogJ2ltZycsXHJcbiAgICAgICAgJ1tzdHlsZS53aWR0aC5weF0nOiAnc2l6ZScsXHJcbiAgICAgICAgJ1tzdHlsZS5oZWlnaHQucHhdJzogJ3NpemUnLFxyXG4gICAgICAgICdbc3R5bGUuZm9udC1zaXplLnB4XSc6ICdzaXplIC8gMicsXHJcbiAgICAgICAgJ1tzdHlsZS5jb2xvcl0nOiAnY29sb3InLFxyXG4gICAgICAgICdbc3R5bGUuYmFja2dyb3VuZC1jb2xvcl0nOiAnYmFja2dyb3VuZENvbG9yJ1xyXG4gICAgfVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQmJBdmF0YXIge1xyXG5cclxuICAgIC8vIElucHV0cy5cclxuICAgIEBJbnB1dCgpIHNpemU6IG51bWJlciA9IDQwO1xyXG5cclxuICAgIC8vIFN0YXRlLlxyXG4gICAgc3RhdGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KCdpbml0aWFscycpO1xyXG5cclxuICAgIC8vIERhdGEuXHJcbiAgICBwcml2YXRlIF9zcmM6IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG4gICAgcHJpdmF0ZSBfdGl0bGU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG4gICAgcHJpdmF0ZSBfaW5pdGlhbHM6IHN0cmluZyA9ICchJztcclxuICAgIHByaXZhdGUgX2NvbG9yOiBzdHJpbmcgPSAncmdiKDI1NSwgMjU1LCAyNTUpJztcclxuICAgIHByaXZhdGUgX2JhY2tncm91bmRDb2xvcjogc3RyaW5nID0gJ3JnYig2NiwgNjYsIDY2KSc7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHNldCBzcmModmFsdWU6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMuX3NyYyA9IHZhbHVlO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5fc3JjKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3RhdGUkLm5leHQoJ2ltYWdlJyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIudGl0bGUnKVxyXG4gICAgc2V0IHRpdGxlKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgICAgICAvLyBTZXQgdGhlIHRpdGxlIGFuZCB0aGUgaW5pdGlhbHMuXHJcbiAgICAgICAgdGhpcy5fdGl0bGUgPSB2YWx1ZSB8fCAnISc7XHJcbiAgICAgICAgdGhpcy5faW5pdGlhbHMgPSB0aGlzLmdldEluaXRpYWxzKHRoaXMuX3RpdGxlKTtcclxuXHJcbiAgICAgICAgLy8gR2VuZXJhdGUgdGhlIGNvbG9ycyBiYXNlZCBvbiB0aGUgbmFtZS5cclxuICAgICAgICBjb25zdCB7ciwgZywgYn0gPSB0aGlzLnRvUkdiKHRoaXMuX3RpdGxlKTtcclxuICAgICAgICB0aGlzLnNldENvbG9ycyhyLCBnLCBiKTtcclxuICAgIH1cclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgc2V0IHRpbnRDb2xvcih2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy5wYXJzZUNvbG9yRm9ybWF0KHZhbHVlKTtcclxuXHJcbiAgICAgICAgaWYgKCFyZXN1bHQpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3Qge3IsIGcsIGJ9ID0gcmVzdWx0O1xyXG4gICAgICAgIHRoaXMuc2V0Q29sb3JzKHIsIGcsIGIpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBzcmMoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NyYztcclxuICAgIH1cclxuXHJcbiAgICBnZXQgY29sb3IoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbG9yO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBiYWNrZ3JvdW5kQ29sb3IoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2JhY2tncm91bmRDb2xvcjtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgdGl0bGUoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RpdGxlO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBpbml0aWFscygpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5faW5pdGlhbHM7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzZXRDb2xvcnMocmVkOiBudW1iZXIsIGdyZWVuOiBudW1iZXIsIGJsdWU6IG51bWJlcikge1xyXG4gICAgICAgIHRoaXMuX2NvbG9yID0gYHJnYigke3JlZH0sJHtncmVlbn0sJHtibHVlfSlgO1xyXG4gICAgICAgIHRoaXMuX2JhY2tncm91bmRDb2xvciA9IGByZ2JhKCR7cmVkfSwke2dyZWVufSwke2JsdWV9LCAwLjI1KWA7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSB0b1JHYiA9ICh2YWx1ZTogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgY29uc3QgYmFzZVJlZCA9IDEyODtcclxuICAgICAgICBjb25zdCBiYXNlR3JlZW4gPSAxMjg7XHJcbiAgICAgICAgY29uc3QgYmFzZUJsdWUgPSAxMjg7XHJcblxyXG4gICAgICAgIGxldCBzZWVkID0gdmFsdWUuY2hhckNvZGVBdCgwKSBeIHZhbHVlLmNoYXJDb2RlQXQoMSk7XHJcbiAgICAgICAgY29uc3QgcmFuZF8xID0gTWF0aC5hYnMoKE1hdGguc2luKHNlZWQrKykgKiAxMDAwMCkpICUgMjU2O1xyXG4gICAgICAgIGNvbnN0IHJhbmRfMiA9IE1hdGguYWJzKChNYXRoLnNpbihzZWVkKyspICogMTAwMDApKSAlIDI1NjtcclxuICAgICAgICBjb25zdCByYW5kXzMgPSBNYXRoLmFicygoTWF0aC5zaW4oc2VlZCsrKSAqIDEwMDAwKSkgJSAyNTY7XHJcblxyXG4gICAgICAgIGNvbnN0IHIgPSBNYXRoLnJvdW5kKChyYW5kXzEgKyBiYXNlUmVkKSAvIDIpO1xyXG4gICAgICAgIGNvbnN0IGcgPSBNYXRoLnJvdW5kKChyYW5kXzIgKyBiYXNlR3JlZW4pIC8gMik7XHJcbiAgICAgICAgY29uc3QgYiA9IE1hdGgucm91bmQoKHJhbmRfMyArIGJhc2VCbHVlKSAvIDIpO1xyXG5cclxuICAgICAgICByZXR1cm4ge3IsIGcsIGJ9O1xyXG4gICAgfTtcclxuXHJcbiAgICBwcml2YXRlIGdldEluaXRpYWxzID0gKG5hbWU6IHN0cmluZykgPT4ge1xyXG4gICAgICAgIC8vIEdldCBhbGwgdGhlIGluaXRpYWxzLlxyXG4gICAgICAgIGNvbnN0IG5hbWVzID0gKG5hbWUgfHwgJycpLnNwbGl0KCcgJyk7XHJcbiAgICAgICAgY29uc3QgaW5pdGlhbHMgPSBuYW1lcy5tYXAobmFtZSA9PiBuYW1lLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpKTtcclxuXHJcbiAgICAgICAgLy8gQ2hlY2sgaWYgdGhlcmUgYXJlIGFueSBpbml0aWFscy5cclxuICAgICAgICBpZiAoaW5pdGlhbHMubGVuZ3RoIDw9IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBHZXQgdGhlIGZpcnN0IGFuZCBsYXN0IGluaXRpYWxzLlxyXG4gICAgICAgIGlmIChpbml0aWFscy5sZW5ndGggPiAxKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBgJHtpbml0aWFsc1swXX0ke2luaXRpYWxzW2luaXRpYWxzLmxlbmd0aCAtIDFdfWA7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBHZXQgb25seSB0aGUgZmlyc3QgaW5pdGlhbC5cclxuICAgICAgICByZXR1cm4gaW5pdGlhbHNbMF07XHJcbiAgICB9O1xyXG5cclxuICAgIHByaXZhdGUgcGFyc2VDb2xvckZvcm1hdCA9ICh2YWx1ZTogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgLy8gSGV4IDMgdmFsdWVzLlxyXG4gICAgICAgIGxldCBtYXRjaCA9IHZhbHVlLm1hdGNoKC9eIyhbMC05YS1mXXszfSkkL2kpO1xyXG4gICAgICAgIGlmIChtYXRjaCAmJiBtYXRjaFsxXSkge1xyXG4gICAgICAgICAgICBjb25zdCByID0gcGFyc2VJbnQobWF0Y2hbMV0uY2hhckF0KDApLCAxNikgKiAweDExO1xyXG4gICAgICAgICAgICBjb25zdCBnID0gcGFyc2VJbnQobWF0Y2hbMV0uY2hhckF0KDEpLCAxNikgKiAweDExO1xyXG4gICAgICAgICAgICBjb25zdCBiID0gcGFyc2VJbnQobWF0Y2hbMV0uY2hhckF0KDIpLCAxNikgKiAweDExO1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuIHtyLCBnLCBifTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIEhleCA2IHZhbHVlcy5cclxuICAgICAgICBtYXRjaCA9IHZhbHVlLm1hdGNoKC9eIyhbMC05YS1mXXs2fSkkL2kpO1xyXG4gICAgICAgIGlmIChtYXRjaCAmJiBtYXRjaFsxXSkge1xyXG4gICAgICAgICAgICBjb25zdCByID0gcGFyc2VJbnQobWF0Y2hbMV0uc3Vic3RyKDAsIDIpLCAxNik7XHJcbiAgICAgICAgICAgIGNvbnN0IGcgPSBwYXJzZUludChtYXRjaFsxXS5zdWJzdHIoMiwgMiksIDE2KTtcclxuICAgICAgICAgICAgY29uc3QgYiA9IHBhcnNlSW50KG1hdGNoWzFdLnN1YnN0cig0LCAyKSwgMTYpO1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuIHtyLCBnLCBifTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIFJnYiB2YWx1ZXMuXHJcbiAgICAgICAgbWF0Y2ggPSB2YWx1ZS5tYXRjaCgvXnJnYlxccypcXChcXHMqKFxcZCspXFxzKixcXHMqKFxcZCspXFxzKixcXHMqKFxcZCspXFxzKlxcKSQvaSk7XHJcbiAgICAgICAgaWYgKG1hdGNoKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHIgPSBwYXJzZUludChtYXRjaFsxXSwgMTApO1xyXG4gICAgICAgICAgICBjb25zdCBnID0gcGFyc2VJbnQobWF0Y2hbMl0sIDEwKTtcclxuICAgICAgICAgICAgY29uc3QgYiA9IHBhcnNlSW50KG1hdGNoWzNdLCAxMCk7XHJcblxyXG4gICAgICAgICAgICByZXR1cm4ge3IsIGcsIGJ9O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gTm90IGEgc3VwcG9ydGVkIGNvbG9yIGZvcm1hdC5cclxuICAgICAgICBjb25zb2xlPy53YXJuPy4oYEJiQXZhdGFyOiBVbnN1cHBvcnRlZCB0aW50Q29sb3IgXCIke3ZhbHVlfVwiIHdhcyB1c2VkLmApO1xyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfTtcclxuXHJcbn1cclxuIiwiPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwic3RhdGUkIHwgYXN5bmNcIj5cclxuICAgIDwhLS0gSW1hZ2UuIC0tPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2ltYWdlJ1wiPlxyXG4gICAgICAgIDxpbWcgW3NyY109XCJzcmNcIlxyXG4gICAgICAgICAgICAgW2FsdF09XCJpbml0aWFsc1wiXHJcbiAgICAgICAgICAgICAoZXJyb3IpPVwic3RhdGUkPy5uZXh0KCdpbml0aWFscycpXCJcclxuICAgICAgICAgICAgIGNsYXNzPVwiYmItYXZhdGFyLWltYWdlXCI+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8IS0tIERlZmF1bHQgaW5pdGlhbHMgZmFsbGJhY2suIC0tPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hEZWZhdWx0PlxyXG4gICAgICAgIHt7IGluaXRpYWxzIH19XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuPC9uZy1jb250YWluZXI+XHJcbiJdfQ==
1
+ import { ChangeDetectionStrategy, Component, HostBinding, Input, ViewEncapsulation } from '@angular/core';
2
+ import { BehaviorSubject } from 'rxjs';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common";
5
+ export class BbAvatar {
6
+ constructor() {
7
+ // Inputs.
8
+ this.size = 40;
9
+ // State.
10
+ this.state$ = new BehaviorSubject('initials');
11
+ // Data.
12
+ this._src = null;
13
+ this._title = null;
14
+ this._initials = '!';
15
+ this._color = 'rgb(255, 255, 255)';
16
+ this._backgroundColor = 'rgb(66, 66, 66)';
17
+ this.toRGb = (value) => {
18
+ const baseRed = 128;
19
+ const baseGreen = 128;
20
+ const baseBlue = 128;
21
+ let seed = value.charCodeAt(0) ^ value.charCodeAt(1);
22
+ const rand_1 = Math.abs((Math.sin(seed++) * 10000)) % 256;
23
+ const rand_2 = Math.abs((Math.sin(seed++) * 10000)) % 256;
24
+ const rand_3 = Math.abs((Math.sin(seed++) * 10000)) % 256;
25
+ const r = Math.round((rand_1 + baseRed) / 2);
26
+ const g = Math.round((rand_2 + baseGreen) / 2);
27
+ const b = Math.round((rand_3 + baseBlue) / 2);
28
+ return { r, g, b };
29
+ };
30
+ this.getInitials = (name) => {
31
+ // Get all the initials.
32
+ const names = (name || '').split(' ');
33
+ const initials = names.map(name => name.charAt(0).toUpperCase());
34
+ // Check if there are any initials.
35
+ if (initials.length <= 0) {
36
+ return null;
37
+ }
38
+ // Get the first and last initials.
39
+ if (initials.length > 1) {
40
+ return `${initials[0]}${initials[initials.length - 1]}`;
41
+ }
42
+ // Get only the first initial.
43
+ return initials[0];
44
+ };
45
+ this.parseColorFormat = (value) => {
46
+ var _a;
47
+ // Hex 3 values.
48
+ let match = value.match(/^#([0-9a-f]{3})$/i);
49
+ if (match && match[1]) {
50
+ const r = parseInt(match[1].charAt(0), 16) * 0x11;
51
+ const g = parseInt(match[1].charAt(1), 16) * 0x11;
52
+ const b = parseInt(match[1].charAt(2), 16) * 0x11;
53
+ return { r, g, b };
54
+ }
55
+ // Hex 6 values.
56
+ match = value.match(/^#([0-9a-f]{6})$/i);
57
+ if (match && match[1]) {
58
+ const r = parseInt(match[1].substr(0, 2), 16);
59
+ const g = parseInt(match[1].substr(2, 2), 16);
60
+ const b = parseInt(match[1].substr(4, 2), 16);
61
+ return { r, g, b };
62
+ }
63
+ // Rgb values.
64
+ match = value.match(/^rgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)$/i);
65
+ if (match) {
66
+ const r = parseInt(match[1], 10);
67
+ const g = parseInt(match[2], 10);
68
+ const b = parseInt(match[3], 10);
69
+ return { r, g, b };
70
+ }
71
+ // Not a supported color format.
72
+ (_a = console === null || console === void 0 ? void 0 : console.warn) === null || _a === void 0 ? void 0 : _a.call(console, `BbAvatar: Unsupported tintColor "${value}" was used.`);
73
+ return null;
74
+ };
75
+ }
76
+ set src(value) {
77
+ this._src = value;
78
+ if (this._src) {
79
+ this.state$.next('image');
80
+ }
81
+ }
82
+ set title(value) {
83
+ // Set the title and the initials.
84
+ this._title = value || '!';
85
+ this._initials = this.getInitials(this._title);
86
+ // Generate the colors based on the name.
87
+ const { r, g, b } = this.toRGb(this._title);
88
+ this.setColors(r, g, b);
89
+ }
90
+ set tintColor(value) {
91
+ const result = this.parseColorFormat(value);
92
+ if (!result) {
93
+ return;
94
+ }
95
+ const { r, g, b } = result;
96
+ this.setColors(r, g, b);
97
+ }
98
+ get src() {
99
+ return this._src;
100
+ }
101
+ get color() {
102
+ return this._color;
103
+ }
104
+ get backgroundColor() {
105
+ return this._backgroundColor;
106
+ }
107
+ get title() {
108
+ return this._title;
109
+ }
110
+ get initials() {
111
+ return this._initials;
112
+ }
113
+ setColors(red, green, blue) {
114
+ this._color = `rgb(${red},${green},${blue})`;
115
+ this._backgroundColor = `rgba(${red},${green},${blue}, 0.25)`;
116
+ }
117
+ }
118
+ BbAvatar.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0, type: BbAvatar, deps: [], target: i0.ɵɵFactoryTarget.Component });
119
+ BbAvatar.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.10", type: BbAvatar, selector: "bb-avatar", inputs: { size: "size", src: "src", title: "title", tintColor: "tintColor" }, host: { attributes: { "role": "img" }, properties: { "style.width.px": "size", "style.height.px": "size", "style.font-size.px": "size / 2", "style.color": "color", "style.background-color": "backgroundColor", "attr.title": "this.title" }, classAttribute: "bb-avatar" }, ngImport: i0, template: "<ng-container [ngSwitch]=\"state$ | async\">\n <!-- Image. -->\n <ng-container *ngSwitchCase=\"'image'\">\n <img [src]=\"src\"\n [alt]=\"initials\"\n (error)=\"state$?.next('initials')\"\n class=\"bb-avatar-image\">\n </ng-container>\n\n <!-- Default initials fallback. -->\n <ng-container *ngSwitchDefault>\n {{ initials }}\n </ng-container>\n</ng-container>\n", styles: [".bb-avatar{line-height:1;font-size:18px;overflow:hidden;font-weight:500;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:relative;border-radius:50%;align-items:center;display:inline-flex;justify-content:center}.bb-avatar.rounded{border-radius:4px}.bb-avatar.square{border-radius:0}.bb-avatar-image{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;position:absolute}\n"], directives: [{ type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }], pipes: { "async": i1.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
120
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0, type: BbAvatar, decorators: [{
121
+ type: Component,
122
+ args: [{
123
+ selector: 'bb-avatar',
124
+ templateUrl: './avatar.component.html',
125
+ styleUrls: ['./avatar.component.scss'],
126
+ changeDetection: ChangeDetectionStrategy.OnPush,
127
+ encapsulation: ViewEncapsulation.None,
128
+ preserveWhitespaces: false,
129
+ host: {
130
+ 'class': 'bb-avatar',
131
+ 'role': 'img',
132
+ '[style.width.px]': 'size',
133
+ '[style.height.px]': 'size',
134
+ '[style.font-size.px]': 'size / 2',
135
+ '[style.color]': 'color',
136
+ '[style.background-color]': 'backgroundColor'
137
+ }
138
+ }]
139
+ }], propDecorators: { size: [{
140
+ type: Input
141
+ }], src: [{
142
+ type: Input
143
+ }], title: [{
144
+ type: Input
145
+ }, {
146
+ type: HostBinding,
147
+ args: ['attr.title']
148
+ }], tintColor: [{
149
+ type: Input
150
+ }] } });
151
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vZWxlbWVudHMvc3JjL2xpYi9hdmF0YXIvYXZhdGFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vZWxlbWVudHMvc3JjL2xpYi9hdmF0YXIvYXZhdGFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN4RyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sTUFBTSxDQUFDOzs7QUFtQnJDLE1BQU0sT0FBTyxRQUFRO0lBakJyQjtRQW1CSSxVQUFVO1FBQ0QsU0FBSSxHQUFXLEVBQUUsQ0FBQztRQUUzQixTQUFTO1FBQ1QsV0FBTSxHQUFHLElBQUksZUFBZSxDQUFTLFVBQVUsQ0FBQyxDQUFDO1FBRWpELFFBQVE7UUFDQSxTQUFJLEdBQWtCLElBQUksQ0FBQztRQUMzQixXQUFNLEdBQWtCLElBQUksQ0FBQztRQUM3QixjQUFTLEdBQVcsR0FBRyxDQUFDO1FBQ3hCLFdBQU0sR0FBVyxvQkFBb0IsQ0FBQztRQUN0QyxxQkFBZ0IsR0FBVyxpQkFBaUIsQ0FBQztRQTREN0MsVUFBSyxHQUFHLENBQUMsS0FBYSxFQUFFLEVBQUU7WUFDOUIsTUFBTSxPQUFPLEdBQUcsR0FBRyxDQUFDO1lBQ3BCLE1BQU0sU0FBUyxHQUFHLEdBQUcsQ0FBQztZQUN0QixNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUM7WUFFckIsSUFBSSxJQUFJLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3JELE1BQU0sTUFB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ImltcG9ydCB7Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIElucHV0LCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdH0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYmItYXZhdGFyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYXZhdGFyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9hdmF0YXIuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIHByZXNlcnZlV2hpdGVzcGFjZXM6IGZhbHNlLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ2NsYXNzJzogJ2JiLWF2YXRhcicsXG4gICAgICAgICdyb2xlJzogJ2ltZycsXG4gICAgICAgICdbc3R5bGUud2lkdGgucHhdJzogJ3NpemUnLFxuICAgICAgICAnW3N0eWxlLmhlaWdodC5weF0nOiAnc2l6ZScsXG4gICAgICAgICdbc3R5bGUuZm9udC1zaXplLnB4XSc6ICdzaXplIC8gMicsXG4gICAgICAgICdbc3R5bGUuY29sb3JdJzogJ2NvbG9yJyxcbiAgICAgICAgJ1tzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXSc6ICdiYWNrZ3JvdW5kQ29sb3InXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBCYkF2YXRhciB7XG5cbiAgICAvLyBJbnB1dHMuXG4gICAgQElucHV0KCkgc2l6ZTogbnVtYmVyID0gNDA7XG5cbiAgICAvLyBTdGF0ZS5cbiAgICBzdGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oJ2luaXRpYWxzJyk7XG5cbiAgICAvLyBEYXRhLlxuICAgIHByaXZhdGUgX3NyYzogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gICAgcHJpdmF0ZSBfdGl0bGU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICAgIHByaXZhdGUgX2luaXRpYWxzOiBzdHJpbmcgPSAnISc7XG4gICAgcHJpdmF0ZSBfY29sb3I6IHN0cmluZyA9ICdyZ2IoMjU1LCAyNTUsIDI1NSknO1xuICAgIHByaXZhdGUgX2JhY2tncm91bmRDb2xvcjogc3RyaW5nID0gJ3JnYig2NiwgNjYsIDY2KSc7XG5cbiAgICBASW5wdXQoKVxuICAgIHNldCBzcmModmFsdWU6IHN0cmluZykge1xuICAgICAgICB0aGlzLl9zcmMgPSB2YWx1ZTtcblxuICAgICAgICBpZiAodGhpcy5fc3JjKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlJC5uZXh0KCdpbWFnZScpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIudGl0bGUnKVxuICAgIHNldCB0aXRsZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIC8vIFNldCB0aGUgdGl0bGUgYW5kIHRoZSBpbml0aWFscy5cbiAgICAgICAgdGhpcy5fdGl0bGUgPSB2YWx1ZSB8fCAnISc7XG4gICAgICAgIHRoaXMuX2luaXRpYWxzID0gdGhpcy5nZXRJbml0aWFscyh0aGlzLl90aXRsZSk7XG5cbiAgICAgICAgLy8gR2VuZXJhdGUgdGhlIGNvbG9ycyBiYXNlZCBvbiB0aGUgbmFtZS5cbiAgICAgICAgY29uc3Qge3IsIGcsIGJ9ID0gdGhpcy50b1JHYih0aGlzLl90aXRsZSk7XG4gICAgICAgIHRoaXMuc2V0Q29sb3JzKHIsIGcsIGIpO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IHRpbnRDb2xvcih2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMucGFyc2VDb2xvckZvcm1hdCh2YWx1ZSk7XG5cbiAgICAgICAgaWYgKCFyZXN1bHQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHtyLCBnLCBifSA9IHJlc3VsdDtcbiAgICAgICAgdGhpcy5zZXRDb2xvcnMociwgZywgYik7XG4gICAgfVxuXG4gICAgZ2V0IHNyYygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NyYztcbiAgICB9XG5cbiAgICBnZXQgY29sb3IoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb2xvcjtcbiAgICB9XG5cbiAgICBnZXQgYmFja2dyb3VuZENvbG9yKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYmFja2dyb3VuZENvbG9yO1xuICAgIH1cblxuICAgIGdldCB0aXRsZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RpdGxlO1xuICAgIH1cblxuICAgIGdldCBpbml0aWFscygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2luaXRpYWxzO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0Q29sb3JzKHJlZDogbnVtYmVyLCBncmVlbjogbnVtYmVyLCBibHVlOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5fY29sb3IgPSBgcmdiKCR7cmVkfSwke2dyZWVufSwke2JsdWV9KWA7XG4gICAgICAgIHRoaXMuX2JhY2tncm91bmRDb2xvciA9IGByZ2JhKCR7cmVkfSwke2dyZWVufSwke2JsdWV9LCAwLjI1KWA7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB0b1JHYiA9ICh2YWx1ZTogc3RyaW5nKSA9PiB7XG4gICAgICAgIGNvbnN0IGJhc2VSZWQgPSAxMjg7XG4gICAgICAgIGNvbnN0IGJhc2VHcmVlbiA9IDEyODtcbiAgICAgICAgY29uc3QgYmFzZUJsdWUgPSAxMjg7XG5cbiAgICAgICAgbGV0IHNlZWQgPSB2YWx1ZS5jaGFyQ29kZUF0KDApIF4gdmFsdWUuY2hhckNvZGVBdCgxKTtcbiAgICAgICAgY29uc3QgcmFuZF8xID0gTWF0aC5hYnMoKE1hdGguc2luKHNlZWQrKykgKiAxMDAwMCkpICUgMjU2O1xuICAgICAgICBjb25zdCByYW5kXzIgPSBNYXRoLmFicygoTWF0aC5zaW4oc2VlZCsrKSAqIDEwMDAwKSkgJSAyNTY7XG4gICAgICAgIGNvbnN0IHJhbmRfMyA9IE1hdGguYWJzKChNYXRoLnNpbihzZWVkKyspICogMTAwMDApKSAlIDI1NjtcblxuICAgICAgICBjb25zdCByID0gTWF0aC5yb3VuZCgocmFuZF8xICsgYmFzZVJlZCkgLyAyKTtcbiAgICAgICAgY29uc3QgZyA9IE1hdGgucm91bmQoKHJhbmRfMiArIGJhc2VHcmVlbikgLyAyKTtcbiAgICAgICAgY29uc3QgYiA9IE1hdGgucm91bmQoKHJhbmRfMyArIGJhc2VCbHVlKSAvIDIpO1xuXG4gICAgICAgIHJldHVybiB7ciwgZywgYn07XG4gICAgfTtcblxuICAgIHByaXZhdGUgZ2V0SW5pdGlhbHMgPSAobmFtZTogc3RyaW5nKSA9PiB7XG4gICAgICAgIC8vIEdldCBhbGwgdGhlIGluaXRpYWxzLlxuICAgICAgICBjb25zdCBuYW1lcyA9IChuYW1lIHx8ICcnKS5zcGxpdCgnICcpO1xuICAgICAgICBjb25zdCBpbml0aWFscyA9IG5hbWVzLm1hcChuYW1lID0+IG5hbWUuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkpO1xuXG4gICAgICAgIC8vIENoZWNrIGlmIHRoZXJlIGFyZSBhbnkgaW5pdGlhbHMuXG4gICAgICAgIGlmIChpbml0aWFscy5sZW5ndGggPD0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBHZXQgdGhlIGZpcnN0IGFuZCBsYXN0IGluaXRpYWxzLlxuICAgICAgICBpZiAoaW5pdGlhbHMubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgcmV0dXJuIGAke2luaXRpYWxzWzBdfSR7aW5pdGlhbHNbaW5pdGlhbHMubGVuZ3RoIC0gMV19YDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEdldCBvbmx5IHRoZSBmaXJzdCBpbml0aWFsLlxuICAgICAgICByZXR1cm4gaW5pdGlhbHNbMF07XG4gICAgfTtcblxuICAgIHByaXZhdGUgcGFyc2VDb2xvckZvcm1hdCA9ICh2YWx1ZTogc3RyaW5nKSA9PiB7XG4gICAgICAgIC8vIEhleCAzIHZhbHVlcy5cbiAgICAgICAgbGV0IG1hdGNoID0gdmFsdWUubWF0Y2goL14jKFswLTlhLWZdezN9KSQvaSk7XG4gICAgICAgIGlmIChtYXRjaCAmJiBtYXRjaFsxXSkge1xuICAgICAgICAgICAgY29uc3QgciA9IHBhcnNlSW50KG1hdGNoWzFdLmNoYXJBdCgwKSwgMTYpICogMHgxMTtcbiAgICAgICAgICAgIGNvbnN0IGcgPSBwYXJzZUludChtYXRjaFsxXS5jaGFyQXQoMSksIDE2KSAqIDB4MTE7XG4gICAgICAgICAgICBjb25zdCBiID0gcGFyc2VJbnQobWF0Y2hbMV0uY2hhckF0KDIpLCAxNikgKiAweDExO1xuXG4gICAgICAgICAgICByZXR1cm4ge3IsIGcsIGJ9O1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gSGV4IDYgdmFsdWVzLlxuICAgICAgICBtYXRjaCA9IHZhbHVlLm1hdGNoKC9eIyhbMC05YS1mXXs2fSkkL2kpO1xuICAgICAgICBpZiAobWF0Y2ggJiYgbWF0Y2hbMV0pIHtcbiAgICAgICAgICAgIGNvbnN0IHIgPSBwYXJzZUludChtYXRjaFsxXS5zdWJzdHIoMCwgMiksIDE2KTtcbiAgICAgICAgICAgIGNvbnN0IGcgPSBwYXJzZUludChtYXRjaFsxXS5zdWJzdHIoMiwgMiksIDE2KTtcbiAgICAgICAgICAgIGNvbnN0IGIgPSBwYXJzZUludChtYXRjaFsxXS5zdWJzdHIoNCwgMiksIDE2KTtcblxuICAgICAgICAgICAgcmV0dXJuIHtyLCBnLCBifTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFJnYiB2YWx1ZXMuXG4gICAgICAgIG1hdGNoID0gdmFsdWUubWF0Y2goL15yZ2JcXHMqXFwoXFxzKihcXGQrKVxccyosXFxzKihcXGQrKVxccyosXFxzKihcXGQrKVxccypcXCkkL2kpO1xuICAgICAgICBpZiAobWF0Y2gpIHtcbiAgICAgICAgICAgIGNvbnN0IHIgPSBwYXJzZUludChtYXRjaFsxXSwgMTApO1xuICAgICAgICAgICAgY29uc3QgZyA9IHBhcnNlSW50KG1hdGNoWzJdLCAxMCk7XG4gICAgICAgICAgICBjb25zdCBiID0gcGFyc2VJbnQobWF0Y2hbM10sIDEwKTtcblxuICAgICAgICAgICAgcmV0dXJuIHtyLCBnLCBifTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE5vdCBhIHN1cHBvcnRlZCBjb2xvciBmb3JtYXQuXG4gICAgICAgIGNvbnNvbGU/Lndhcm4/LihgQmJBdmF0YXI6IFVuc3VwcG9ydGVkIHRpbnRDb2xvciBcIiR7dmFsdWV9XCIgd2FzIHVzZWQuYCk7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH07XG5cbn1cbiIsIjxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cInN0YXRlJCB8IGFzeW5jXCI+XG4gICAgPCEtLSBJbWFnZS4gLS0+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2ltYWdlJ1wiPlxuICAgICAgICA8aW1nIFtzcmNdPVwic3JjXCJcbiAgICAgICAgICAgICBbYWx0XT1cImluaXRpYWxzXCJcbiAgICAgICAgICAgICAoZXJyb3IpPVwic3RhdGUkPy5uZXh0KCdpbml0aWFscycpXCJcbiAgICAgICAgICAgICBjbGFzcz1cImJiLWF2YXRhci1pbWFnZVwiPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPCEtLSBEZWZhdWx0IGluaXRpYWxzIGZhbGxiYWNrLiAtLT5cbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaERlZmF1bHQ+XG4gICAgICAgIHt7IGluaXRpYWxzIH19XG4gICAgPC9uZy1jb250YWluZXI+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
@@ -1,79 +1,79 @@
1
- import { mixinLoad, mixinDisabled } from '@bravobit/bb-foundation';
2
- import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation } from '@angular/core';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "../spinner/spinner.component";
5
- class BbButtonBase {
6
- constructor(_elementRef) {
7
- this._elementRef = _elementRef;
8
- }
9
- }
10
- const BbButtonMixinBase = mixinDisabled(mixinLoad(BbButtonBase));
11
- export class BbButton extends BbButtonMixinBase {
12
- constructor(_elementRef) {
13
- super(_elementRef);
14
- }
15
- get nativeElement() {
16
- return this._elementRef.nativeElement;
17
- }
18
- focus() {
19
- this.nativeElement && this.nativeElement.focus();
20
- }
21
- }
22
- BbButton.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.4", ngImport: i0, type: BbButton, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
23
- BbButton.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.4", type: BbButton, selector: "button[bb-button]", inputs: { disabled: "disabled", loading: "loading" }, host: { properties: { "class.loading": "loading", "attr.disabled": "disabled || loading || null" }, classAttribute: "bb-button" }, exportAs: ["bbButton"], usesInheritance: true, ngImport: i0, template: "<bb-spinner [class.visible]=\"loading\"\r\n class=\"bb-button-spinner small\">\r\n</bb-spinner>\r\n\r\n<ng-content></ng-content>\r\n", styles: [".bb-button{height:38px;padding:0 8px;cursor:pointer;font-size:16px;font-weight:500;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:relative;font-style:normal;border-radius:4px;text-align:center;align-items:center;display:inline-flex;text-decoration:none;justify-content:center;background-color:#fff;color:#2d3c4d!important;border:1px solid #d4d8e1;transition-duration:.2s;box-shadow:0 6px 6px -6px rgba(0,0,0,.1);transition-timing-function:cubic-bezier(0,0,.2,1);transition-property:padding-left,background-color,box-shadow}.bb-button:hover{background-color:#fcfcfb}.bb-button:active,.bb-button:focus{box-shadow:0 6px 6px -6px rgba(0,0,0,.1),0 0 0 3px rgba(220,224,233,.5)}.bb-button.full{width:100%}.bb-button.full.loading{padding-left:42px}.bb-button.primary{border-color:#2f2b85;color:#fff!important;background-color:#5b53ff}.bb-button.primary:hover{background-color:#564ee6}.bb-button.primary:active,.bb-button.primary:focus{box-shadow:0 6px 6px -6px rgba(0,0,0,.1),0 0 0 3px rgba(91,83,255,.5)}.bb-button.destructive{border-color:#8f2020;color:#fff!important;background-color:#d32f2f}.bb-button.destructive:hover{background-color:#c32929}.bb-button.destructive:active,.bb-button.destructive:focus{box-shadow:0 6px 6px -6px rgba(0,0,0,.1),0 0 0 3px rgba(211,47,47,.5)}.bb-button.loading,.bb-button.loading:active,.bb-button.loading:focus,.bb-button.loading:hover,.bb-button:disabled,.bb-button:disabled:active,.bb-button:disabled:focus,.bb-button:disabled:hover,.bb-button[disabled],.bb-button[disabled]:active,.bb-button[disabled]:focus,.bb-button[disabled]:hover{opacity:.4;cursor:default;box-shadow:none}.bb-button-spinner{width:0;opacity:0;overflow:hidden;visibility:hidden;padding:0!important;transition:width .2s cubic-bezier(0,0,.2,1),opacity .1s cubic-bezier(0,0,.2,1)}.bb-button-spinner.visible{opacity:1;width:20px;margin-right:8px;visibility:visible}.bb-button.loading.full>.bb-button-spinner{left:8px;margin-right:0;position:absolute}"], components: [{ type: i1.BbSpinner, selector: "bb-spinner", inputs: ["color", "alt", "disabled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
24
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.4", ngImport: i0, type: BbButton, decorators: [{
25
- type: Component,
26
- args: [{
27
- selector: 'button[bb-button]',
28
- templateUrl: './button.component.html',
29
- styleUrls: ['./button.component.scss'],
30
- exportAs: 'bbButton',
31
- host: {
32
- 'class': 'bb-button',
33
- '[class.loading]': 'loading',
34
- '[attr.disabled]': 'disabled || loading || null'
35
- },
36
- inputs: ['disabled', 'loading'],
37
- encapsulation: ViewEncapsulation.None,
38
- changeDetection: ChangeDetectionStrategy.OnPush
39
- }]
40
- }], ctorParameters: function () { return [{ type: i0.ElementRef }]; } });
41
- export class BbAnchor extends BbButton {
42
- constructor(_elementRef) {
43
- super(_elementRef);
44
- }
45
- stopDisabledEvents(event) {
46
- // If the button is not disabled (and not loading) let all events pass.
47
- if (!this.disabled && !this.loading) {
48
- return;
49
- }
50
- // If the button is disabled and/or loading stop
51
- // the event from bubbling up.
52
- event.preventDefault();
53
- event.stopImmediatePropagation();
54
- }
55
- }
56
- BbAnchor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.4", ngImport: i0, type: BbAnchor, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
57
- BbAnchor.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.4", type: BbAnchor, selector: "a[bb-button]", inputs: { disabled: "disabled", loading: "loading", tabIndex: "tabIndex" }, host: { listeners: { "click": "stopDisabledEvents($event)" }, properties: { "attr.tabindex": "(disabled || loading) ? -1 : (tabIndex || 0)", "attr.disabled": "disabled || loading || null", "attr.aria-disabled": "(disabled || loading).toString()" }, classAttribute: "bb-button" }, exportAs: ["bbButton", "bbAnchor"], usesInheritance: true, ngImport: i0, template: "<bb-spinner [class.visible]=\"loading\"\r\n class=\"bb-button-spinner small\">\r\n</bb-spinner>\r\n\r\n<ng-content></ng-content>\r\n", styles: [".bb-button{height:38px;padding:0 8px;cursor:pointer;font-size:16px;font-weight:500;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:relative;font-style:normal;border-radius:4px;text-align:center;align-items:center;display:inline-flex;text-decoration:none;justify-content:center;background-color:#fff;color:#2d3c4d!important;border:1px solid #d4d8e1;transition-duration:.2s;box-shadow:0 6px 6px -6px rgba(0,0,0,.1);transition-timing-function:cubic-bezier(0,0,.2,1);transition-property:padding-left,background-color,box-shadow}.bb-button:hover{background-color:#fcfcfb}.bb-button:active,.bb-button:focus{box-shadow:0 6px 6px -6px rgba(0,0,0,.1),0 0 0 3px rgba(220,224,233,.5)}.bb-button.full{width:100%}.bb-button.full.loading{padding-left:42px}.bb-button.primary{border-color:#2f2b85;color:#fff!important;background-color:#5b53ff}.bb-button.primary:hover{background-color:#564ee6}.bb-button.primary:active,.bb-button.primary:focus{box-shadow:0 6px 6px -6px rgba(0,0,0,.1),0 0 0 3px rgba(91,83,255,.5)}.bb-button.destructive{border-color:#8f2020;color:#fff!important;background-color:#d32f2f}.bb-button.destructive:hover{background-color:#c32929}.bb-button.destructive:active,.bb-button.destructive:focus{box-shadow:0 6px 6px -6px rgba(0,0,0,.1),0 0 0 3px rgba(211,47,47,.5)}.bb-button.loading,.bb-button.loading:active,.bb-button.loading:focus,.bb-button.loading:hover,.bb-button:disabled,.bb-button:disabled:active,.bb-button:disabled:focus,.bb-button:disabled:hover,.bb-button[disabled],.bb-button[disabled]:active,.bb-button[disabled]:focus,.bb-button[disabled]:hover{opacity:.4;cursor:default;box-shadow:none}.bb-button-spinner{width:0;opacity:0;overflow:hidden;visibility:hidden;padding:0!important;transition:width .2s cubic-bezier(0,0,.2,1),opacity .1s cubic-bezier(0,0,.2,1)}.bb-button-spinner.visible{opacity:1;width:20px;margin-right:8px;visibility:visible}.bb-button.loading.full>.bb-button-spinner{left:8px;margin-right:0;position:absolute}"], components: [{ type: i1.BbSpinner, selector: "bb-spinner", inputs: ["color", "alt", "disabled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
58
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.4", ngImport: i0, type: BbAnchor, decorators: [{
59
- type: Component,
60
- args: [{
61
- selector: 'a[bb-button]',
62
- templateUrl: './button.component.html',
63
- styleUrls: ['./button.component.scss'],
64
- exportAs: 'bbButton, bbAnchor',
65
- host: {
66
- 'class': 'bb-button',
67
- '[attr.tabindex]': '(disabled || loading) ? -1 : (tabIndex || 0)',
68
- '[attr.disabled]': 'disabled || loading || null',
69
- '[attr.aria-disabled]': '(disabled || loading).toString()',
70
- '(click)': 'stopDisabledEvents($event)'
71
- },
72
- inputs: ['disabled', 'loading'],
73
- encapsulation: ViewEncapsulation.None,
74
- changeDetection: ChangeDetectionStrategy.OnPush
75
- }]
76
- }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { tabIndex: [{
77
- type: Input
78
- }] } });
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vZWxlbWVudHMvc3JjL2xpYi9idXR0b24vYnV0dG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vZWxlbWVudHMvc3JjL2xpYi9idXR0b24vYnV0dG9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHSCxTQUFTLEVBR1QsYUFBYSxFQUNoQixNQUFNLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxTQUFTLEVBQWMsS0FBSyxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDOzs7QUFFdkcsTUFBTSxZQUFZO0lBQ2QsWUFBbUIsV0FBdUI7UUFBdkIsZ0JBQVcsR0FBWCxXQUFXLENBQVk7SUFDMUMsQ0FBQztDQUNKO0FBRUQsTUFBTSxpQkFBaUIsR0FDSyxhQUFhLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7QUFnQm5FLE1BQU0sT0FBTyxRQUFTLFNBQVEsaUJBQWlCO0lBTTNDLFlBQVksV0FBMEM7UUFDbEQsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7SUFORCxJQUFJLGFBQWE7UUFDYixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDO0lBQzFDLENBQUM7SUFNRCxLQUFLO1FBQ0QsSUFBSSxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3JELENBQUM7O3FHQVpRLFFBQVE7eUZBQVIsUUFBUSxpU0NoQ3JCLGlKQUtBOzJGRDJCYSxRQUFRO2tCQWRwQixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxtQkFBbUI7b0JBQzdCLFdBQVcsRUFBRSx5QkFBeUI7b0JBQ3RDLFNBQVMsRUFBRSxDQUFDLHlCQUF5QixDQUFDO29CQUN0QyxRQUFRLEVBQUUsVUFBVTtvQkFDcEIsSUFBSSxFQUFFO3dCQUNGLE9BQU8sRUFBRSxXQUFXO3dCQUNwQixpQkFBaUIsRUFBRSxTQUFTO3dCQUM1QixpQkFBaUIsRUFBRSw2QkFBNkI7cUJBQ25EO29CQUNELE1BQU0sRUFBRSxDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUM7b0JBQy9CLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO29CQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDbEQ7O0FBaUNELE1BQU0sT0FBTyxRQUFTLFNBQVEsUUFBUTtJQUtsQyxZQUFZLFdBQXVCO1FBQy9CLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN2QixDQUFDO0lBRUQsa0JBQWtCLENBQUMsS0FBWTtRQUMzQix1RUFBdUU7UUFDdkUsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2pDLE9BQU87U0FDVjtRQUVELGdEQUFnRDtRQUNoRCw4QkFBOEI7UUFDOUIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLEtBQUssQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO0lBQ3JDLENBQUM7O3FHQW5CUSxRQUFRO3lGQUFSLFFBQVEsbWRDaEVyQixpSkFLQTsyRkQyRGEsUUFBUTtrQkFoQnBCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGNBQWM7b0JBQ3hCLFdBQVcsRUFBRSx5QkFBeUI7b0JBQ3RDLFNBQVMsRUFBRSxDQUFDLHlCQUF5QixDQUFDO29CQUN0QyxRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixJQUFJLEVBQUU7d0JBQ0YsT0FBTyxFQUFFLFdBQVc7d0JBQ3BCLGlCQUFpQixFQUFFLDhDQUE4Qzt3QkFDakUsaUJBQWlCLEVBQUUsNkJBQTZCO3dCQUNoRCxzQkFBc0IsRUFBRSxrQ0FBa0M7d0JBQzFELFNBQVMsRUFBRSw0QkFBNEI7cUJBQzFDO29CQUNELE1BQU0sRUFBRSxDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUM7b0JBQy9CLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO29CQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDbEQ7aUdBSVksUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBDYW5Mb2FkLFxyXG4gICAgQ2FuTG9hZENvbnN0cnVjdG9yLFxyXG4gICAgbWl4aW5Mb2FkLFxyXG4gICAgQ2FuRGlzYWJsZSxcclxuICAgIENhbkRpc2FibGVDb25zdHJ1Y3RvcixcclxuICAgIG1peGluRGlzYWJsZWRcclxufSBmcm9tICdAYnJhdm9iaXQvYmItZm91bmRhdGlvbic7XHJcbmltcG9ydCB7Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIFZpZXdFbmNhcHN1bGF0aW9ufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmNsYXNzIEJiQnV0dG9uQmFzZSB7XHJcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHtcclxuICAgIH1cclxufVxyXG5cclxuY29uc3QgQmJCdXR0b25NaXhpbkJhc2U6IENhbkRpc2FibGVDb25zdHJ1Y3RvciAmIENhbkxvYWRDb25zdHJ1Y3RvclxyXG4gICAgJiB0eXBlb2YgQmJCdXR0b25CYXNlID0gbWl4aW5EaXNhYmxlZChtaXhpbkxvYWQoQmJCdXR0b25CYXNlKSk7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYnV0dG9uW2JiLWJ1dHRvbl0nLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2J1dHRvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9idXR0b24uY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGV4cG9ydEFzOiAnYmJCdXR0b24nLFxyXG4gICAgaG9zdDoge1xyXG4gICAgICAgICdjbGFzcyc6ICdiYi1idXR0b24nLFxyXG4gICAgICAgICdbY2xhc3MubG9hZGluZ10nOiAnbG9hZGluZycsXHJcbiAgICAgICAgJ1thdHRyLmRpc2FibGVkXSc6ICdkaXNhYmxlZCB8fCBsb2FkaW5nIHx8IG51bGwnXHJcbiAgICB9LFxyXG4gICAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ2xvYWRpbmcnXSxcclxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQmJCdXR0b24gZXh0ZW5kcyBCYkJ1dHRvbk1peGluQmFzZSBpbXBsZW1lbnRzIENhbkRpc2FibGUsIENhbkxvYWQge1xyXG5cclxuICAgIGdldCBuYXRpdmVFbGVtZW50KCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3RydWN0b3IoX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEJ1dHRvbkVsZW1lbnQ+KSB7XHJcbiAgICAgICAgc3VwZXIoX2VsZW1lbnRSZWYpO1xyXG4gICAgfVxyXG5cclxuICAgIGZvY3VzKCkge1xyXG4gICAgICAgIHRoaXMubmF0aXZlRWxlbWVudCAmJiB0aGlzLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcclxuICAgIH1cclxuXHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdhW2JiLWJ1dHRvbl0nLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2J1dHRvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9idXR0b24uY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGV4cG9ydEFzOiAnYmJCdXR0b24sIGJiQW5jaG9yJyxcclxuICAgIGhvc3Q6IHtcclxuICAgICAgICAnY2xhc3MnOiAnYmItYnV0dG9uJyxcclxuICAgICAgICAnW2F0dHIudGFiaW5kZXhdJzogJyhkaXNhYmxlZCB8fCBsb2FkaW5nKSA/IC0xIDogKHRhYkluZGV4IHx8IDApJyxcclxuICAgICAgICAnW2F0dHIuZGlzYWJsZWRdJzogJ2Rpc2FibGVkIHx8IGxvYWRpbmcgfHwgbnVsbCcsXHJcbiAgICAgICAgJ1thdHRyLmFyaWEtZGlzYWJsZWRdJzogJyhkaXNhYmxlZCB8fCBsb2FkaW5nKS50b1N0cmluZygpJyxcclxuICAgICAgICAnKGNsaWNrKSc6ICdzdG9wRGlzYWJsZWRFdmVudHMoJGV2ZW50KSdcclxuICAgIH0sXHJcbiAgICBpbnB1dHM6IFsnZGlzYWJsZWQnLCAnbG9hZGluZyddLFxyXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCYkFuY2hvciBleHRlbmRzIEJiQnV0dG9uIHtcclxuXHJcbiAgICAvLyBJbnB1dHMuXHJcbiAgICBASW5wdXQoKSB0YWJJbmRleDogbnVtYmVyO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKF9lbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7XHJcbiAgICAgICAgc3VwZXIoX2VsZW1lbnRSZWYpO1xyXG4gICAgfVxyXG5cclxuICAgIHN0b3BEaXNhYmxlZEV2ZW50cyhldmVudDogRXZlbnQpIHtcclxuICAgICAgICAvLyBJZiB0aGUgYnV0dG9uIGlzIG5vdCBkaXNhYmxlZCAoYW5kIG5vdCBsb2FkaW5nKSBsZXQgYWxsIGV2ZW50cyBwYXNzLlxyXG4gICAgICAgIGlmICghdGhpcy5kaXNhYmxlZCAmJiAhdGhpcy5sb2FkaW5nKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIElmIHRoZSBidXR0b24gaXMgZGlzYWJsZWQgYW5kL29yIGxvYWRpbmcgc3RvcFxyXG4gICAgICAgIC8vIHRoZSBldmVudCBmcm9tIGJ1YmJsaW5nIHVwLlxyXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XHJcbiAgICB9XHJcblxyXG59XHJcbiIsIjxiYi1zcGlubmVyIFtjbGFzcy52aXNpYmxlXT1cImxvYWRpbmdcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImJiLWJ1dHRvbi1zcGlubmVyIHNtYWxsXCI+XHJcbjwvYmItc3Bpbm5lcj5cclxuXHJcbjxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuIl19
1
+ import { mixinLoad, mixinDisabled } from '@bravobit/bb-foundation';
2
+ import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation } from '@angular/core';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../spinner/spinner.component";
5
+ class BbButtonBase {
6
+ constructor(_elementRef) {
7
+ this._elementRef = _elementRef;
8
+ }
9
+ }
10
+ const BbButtonMixinBase = mixinDisabled(mixinLoad(BbButtonBase));
11
+ export class BbButton extends BbButtonMixinBase {
12
+ constructor(_elementRef) {
13
+ super(_elementRef);
14
+ }
15
+ get nativeElement() {
16
+ return this._elementRef.nativeElement;
17
+ }
18
+ focus() {
19
+ this.nativeElement && this.nativeElement.focus();
20
+ }
21
+ }
22
+ BbButton.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0, type: BbButton, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
23
+ BbButton.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.10", type: BbButton, selector: "button[bb-button]", inputs: { disabled: "disabled", loading: "loading" }, host: { properties: { "class.loading": "loading", "attr.disabled": "disabled || loading || null" }, classAttribute: "bb-button" }, exportAs: ["bbButton"], usesInheritance: true, ngImport: i0, template: "<bb-spinner [class.visible]=\"loading\"\n class=\"bb-button-spinner small\">\n</bb-spinner>\n\n<ng-content></ng-content>\n", styles: [".bb-button{height:38px;padding:0 8px;cursor:pointer;font-size:16px;font-weight:500;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:relative;font-style:normal;border-radius:4px;text-align:center;align-items:center;display:inline-flex;text-decoration:none;justify-content:center;background-color:#fff;color:#2d3c4d!important;border:1px solid #d4d8e1;transition-duration:.2s;box-shadow:0 6px 6px -6px #0000001a;transition-timing-function:cubic-bezier(0,0,.2,1);transition-property:padding-left,background-color,box-shadow}.bb-button:hover{background-color:#fcfcfb}.bb-button:focus,.bb-button:active{box-shadow:0 6px 6px -6px #0000001a,0 0 0 3px #dce0e980}.bb-button.full{width:100%}.bb-button.full.loading{padding-left:42px}.bb-button.primary{border-color:#2f2b85;color:#fff!important;background-color:#5b53ff}.bb-button.primary:hover{background-color:#564ee6}.bb-button.primary:focus,.bb-button.primary:active{box-shadow:0 6px 6px -6px #0000001a,0 0 0 3px #5b53ff80}.bb-button.destructive{border-color:#8f2020;color:#fff!important;background-color:#d32f2f}.bb-button.destructive:hover{background-color:#c32929}.bb-button.destructive:focus,.bb-button.destructive:active{box-shadow:0 6px 6px -6px #0000001a,0 0 0 3px #d32f2f80}.bb-button:disabled,.bb-button:disabled:focus,.bb-button:disabled:hover,.bb-button:disabled:active,.bb-button[disabled],.bb-button[disabled]:focus,.bb-button[disabled]:hover,.bb-button[disabled]:active,.bb-button.loading,.bb-button.loading:focus,.bb-button.loading:hover,.bb-button.loading:active{opacity:.4;cursor:default;box-shadow:none}.bb-button-spinner{width:0;opacity:0;overflow:hidden;visibility:hidden;padding:0!important;transition:width .2s cubic-bezier(0,0,.2,1),opacity .1s cubic-bezier(0,0,.2,1)}.bb-button-spinner.visible{opacity:1;width:20px;margin-right:8px;visibility:visible}.bb-button.loading.full>.bb-button-spinner{left:8px;margin-right:0;position:absolute}\n"], components: [{ type: i1.BbSpinner, selector: "bb-spinner", inputs: ["color", "alt", "disabled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0, type: BbButton, decorators: [{
25
+ type: Component,
26
+ args: [{
27
+ selector: 'button[bb-button]',
28
+ templateUrl: './button.component.html',
29
+ styleUrls: ['./button.component.scss'],
30
+ exportAs: 'bbButton',
31
+ host: {
32
+ 'class': 'bb-button',
33
+ '[class.loading]': 'loading',
34
+ '[attr.disabled]': 'disabled || loading || null'
35
+ },
36
+ inputs: ['disabled', 'loading'],
37
+ encapsulation: ViewEncapsulation.None,
38
+ changeDetection: ChangeDetectionStrategy.OnPush
39
+ }]
40
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }]; } });
41
+ export class BbAnchor extends BbButton {
42
+ constructor(_elementRef) {
43
+ super(_elementRef);
44
+ }
45
+ stopDisabledEvents(event) {
46
+ // If the button is not disabled (and not loading) let all events pass.
47
+ if (!this.disabled && !this.loading) {
48
+ return;
49
+ }
50
+ // If the button is disabled and/or loading stop
51
+ // the event from bubbling up.
52
+ event.preventDefault();
53
+ event.stopImmediatePropagation();
54
+ }
55
+ }
56
+ BbAnchor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0, type: BbAnchor, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
57
+ BbAnchor.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.10", type: BbAnchor, selector: "a[bb-button]", inputs: { disabled: "disabled", loading: "loading", tabIndex: "tabIndex" }, host: { listeners: { "click": "stopDisabledEvents($event)" }, properties: { "attr.tabindex": "(disabled || loading) ? -1 : (tabIndex || 0)", "attr.disabled": "disabled || loading || null", "attr.aria-disabled": "(disabled || loading).toString()" }, classAttribute: "bb-button" }, exportAs: ["bbButton", "bbAnchor"], usesInheritance: true, ngImport: i0, template: "<bb-spinner [class.visible]=\"loading\"\n class=\"bb-button-spinner small\">\n</bb-spinner>\n\n<ng-content></ng-content>\n", styles: [".bb-button{height:38px;padding:0 8px;cursor:pointer;font-size:16px;font-weight:500;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:relative;font-style:normal;border-radius:4px;text-align:center;align-items:center;display:inline-flex;text-decoration:none;justify-content:center;background-color:#fff;color:#2d3c4d!important;border:1px solid #d4d8e1;transition-duration:.2s;box-shadow:0 6px 6px -6px #0000001a;transition-timing-function:cubic-bezier(0,0,.2,1);transition-property:padding-left,background-color,box-shadow}.bb-button:hover{background-color:#fcfcfb}.bb-button:focus,.bb-button:active{box-shadow:0 6px 6px -6px #0000001a,0 0 0 3px #dce0e980}.bb-button.full{width:100%}.bb-button.full.loading{padding-left:42px}.bb-button.primary{border-color:#2f2b85;color:#fff!important;background-color:#5b53ff}.bb-button.primary:hover{background-color:#564ee6}.bb-button.primary:focus,.bb-button.primary:active{box-shadow:0 6px 6px -6px #0000001a,0 0 0 3px #5b53ff80}.bb-button.destructive{border-color:#8f2020;color:#fff!important;background-color:#d32f2f}.bb-button.destructive:hover{background-color:#c32929}.bb-button.destructive:focus,.bb-button.destructive:active{box-shadow:0 6px 6px -6px #0000001a,0 0 0 3px #d32f2f80}.bb-button:disabled,.bb-button:disabled:focus,.bb-button:disabled:hover,.bb-button:disabled:active,.bb-button[disabled],.bb-button[disabled]:focus,.bb-button[disabled]:hover,.bb-button[disabled]:active,.bb-button.loading,.bb-button.loading:focus,.bb-button.loading:hover,.bb-button.loading:active{opacity:.4;cursor:default;box-shadow:none}.bb-button-spinner{width:0;opacity:0;overflow:hidden;visibility:hidden;padding:0!important;transition:width .2s cubic-bezier(0,0,.2,1),opacity .1s cubic-bezier(0,0,.2,1)}.bb-button-spinner.visible{opacity:1;width:20px;margin-right:8px;visibility:visible}.bb-button.loading.full>.bb-button-spinner{left:8px;margin-right:0;position:absolute}\n"], components: [{ type: i1.BbSpinner, selector: "bb-spinner", inputs: ["color", "alt", "disabled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
58
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0, type: BbAnchor, decorators: [{
59
+ type: Component,
60
+ args: [{
61
+ selector: 'a[bb-button]',
62
+ templateUrl: './button.component.html',
63
+ styleUrls: ['./button.component.scss'],
64
+ exportAs: 'bbButton, bbAnchor',
65
+ host: {
66
+ 'class': 'bb-button',
67
+ '[attr.tabindex]': '(disabled || loading) ? -1 : (tabIndex || 0)',
68
+ '[attr.disabled]': 'disabled || loading || null',
69
+ '[attr.aria-disabled]': '(disabled || loading).toString()',
70
+ '(click)': 'stopDisabledEvents($event)'
71
+ },
72
+ inputs: ['disabled', 'loading'],
73
+ encapsulation: ViewEncapsulation.None,
74
+ changeDetection: ChangeDetectionStrategy.OnPush
75
+ }]
76
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { tabIndex: [{
77
+ type: Input
78
+ }] } });
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vZWxlbWVudHMvc3JjL2xpYi9idXR0b24vYnV0dG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vZWxlbWVudHMvc3JjL2xpYi9idXR0b24vYnV0dG9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHSCxTQUFTLEVBR1QsYUFBYSxFQUNoQixNQUFNLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxTQUFTLEVBQWMsS0FBSyxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDOzs7QUFFdkcsTUFBTSxZQUFZO0lBQ2QsWUFBbUIsV0FBdUI7UUFBdkIsZ0JBQVcsR0FBWCxXQUFXLENBQVk7SUFDMUMsQ0FBQztDQUNKO0FBRUQsTUFBTSxpQkFBaUIsR0FDSyxhQUFhLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7QUFnQm5FLE1BQU0sT0FBTyxRQUFTLFNBQVEsaUJBQWlCO0lBTTNDLFlBQVksV0FBMEM7UUFDbEQsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7SUFORCxJQUFJLGFBQWE7UUFDYixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDO0lBQzFDLENBQUM7SUFNRCxLQUFLO1FBQ0QsSUFBSSxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3JELENBQUM7O3NHQVpRLFFBQVE7MEZBQVIsUUFBUSxpU0NoQ3JCLHVJQUtBOzRGRDJCYSxRQUFRO2tCQWRwQixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxtQkFBbUI7b0JBQzdCLFdBQVcsRUFBRSx5QkFBeUI7b0JBQ3RDLFNBQVMsRUFBRSxDQUFDLHlCQUF5QixDQUFDO29CQUN0QyxRQUFRLEVBQUUsVUFBVTtvQkFDcEIsSUFBSSxFQUFFO3dCQUNGLE9BQU8sRUFBRSxXQUFXO3dCQUNwQixpQkFBaUIsRUFBRSxTQUFTO3dCQUM1QixpQkFBaUIsRUFBRSw2QkFBNkI7cUJBQ25EO29CQUNELE1BQU0sRUFBRSxDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUM7b0JBQy9CLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO29CQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDbEQ7O0FBaUNELE1BQU0sT0FBTyxRQUFTLFNBQVEsUUFBUTtJQUtsQyxZQUFZLFdBQXVCO1FBQy9CLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN2QixDQUFDO0lBRUQsa0JBQWtCLENBQUMsS0FBWTtRQUMzQix1RUFBdUU7UUFDdkUsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2pDLE9BQU87U0FDVjtRQUVELGdEQUFnRDtRQUNoRCw4QkFBOEI7UUFDOUIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLEtBQUssQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO0lBQ3JDLENBQUM7O3NHQW5CUSxRQUFROzBGQUFSLFFBQVEsbWRDaEVyQix1SUFLQTs0RkQyRGEsUUFBUTtrQkFoQnBCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGNBQWM7b0JBQ3hCLFdBQVcsRUFBRSx5QkFBeUI7b0JBQ3RDLFNBQVMsRUFBRSxDQUFDLHlCQUF5QixDQUFDO29CQUN0QyxRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixJQUFJLEVBQUU7d0JBQ0YsT0FBTyxFQUFFLFdBQVc7d0JBQ3BCLGlCQUFpQixFQUFFLDhDQUE4Qzt3QkFDakUsaUJBQWlCLEVBQUUsNkJBQTZCO3dCQUNoRCxzQkFBc0IsRUFBRSxrQ0FBa0M7d0JBQzFELFNBQVMsRUFBRSw0QkFBNEI7cUJBQzFDO29CQUNELE1BQU0sRUFBRSxDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUM7b0JBQy9CLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO29CQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDbEQ7aUdBSVksUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2FuTG9hZCxcbiAgICBDYW5Mb2FkQ29uc3RydWN0b3IsXG4gICAgbWl4aW5Mb2FkLFxuICAgIENhbkRpc2FibGUsXG4gICAgQ2FuRGlzYWJsZUNvbnN0cnVjdG9yLFxuICAgIG1peGluRGlzYWJsZWRcbn0gZnJvbSAnQGJyYXZvYml0L2JiLWZvdW5kYXRpb24nO1xuaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCwgVmlld0VuY2Fwc3VsYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5jbGFzcyBCYkJ1dHRvbkJhc2Uge1xuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBfZWxlbWVudFJlZjogRWxlbWVudFJlZikge1xuICAgIH1cbn1cblxuY29uc3QgQmJCdXR0b25NaXhpbkJhc2U6IENhbkRpc2FibGVDb25zdHJ1Y3RvciAmIENhbkxvYWRDb25zdHJ1Y3RvclxuICAgICYgdHlwZW9mIEJiQnV0dG9uQmFzZSA9IG1peGluRGlzYWJsZWQobWl4aW5Mb2FkKEJiQnV0dG9uQmFzZSkpO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2J1dHRvbltiYi1idXR0b25dJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYnV0dG9uLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9idXR0b24uY29tcG9uZW50LnNjc3MnXSxcbiAgICBleHBvcnRBczogJ2JiQnV0dG9uJyxcbiAgICBob3N0OiB7XG4gICAgICAgICdjbGFzcyc6ICdiYi1idXR0b24nLFxuICAgICAgICAnW2NsYXNzLmxvYWRpbmddJzogJ2xvYWRpbmcnLFxuICAgICAgICAnW2F0dHIuZGlzYWJsZWRdJzogJ2Rpc2FibGVkIHx8IGxvYWRpbmcgfHwgbnVsbCdcbiAgICB9LFxuICAgIGlucHV0czogWydkaXNhYmxlZCcsICdsb2FkaW5nJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBCYkJ1dHRvbiBleHRlbmRzIEJiQnV0dG9uTWl4aW5CYXNlIGltcGxlbWVudHMgQ2FuRGlzYWJsZSwgQ2FuTG9hZCB7XG5cbiAgICBnZXQgbmF0aXZlRWxlbWVudCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihfZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MQnV0dG9uRWxlbWVudD4pIHtcbiAgICAgICAgc3VwZXIoX2VsZW1lbnRSZWYpO1xuICAgIH1cblxuICAgIGZvY3VzKCkge1xuICAgICAgICB0aGlzLm5hdGl2ZUVsZW1lbnQgJiYgdGhpcy5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuXG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYVtiYi1idXR0b25dJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYnV0dG9uLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9idXR0b24uY29tcG9uZW50LnNjc3MnXSxcbiAgICBleHBvcnRBczogJ2JiQnV0dG9uLCBiYkFuY2hvcicsXG4gICAgaG9zdDoge1xuICAgICAgICAnY2xhc3MnOiAnYmItYnV0dG9uJyxcbiAgICAgICAgJ1thdHRyLnRhYmluZGV4XSc6ICcoZGlzYWJsZWQgfHwgbG9hZGluZykgPyAtMSA6ICh0YWJJbmRleCB8fCAwKScsXG4gICAgICAgICdbYXR0ci5kaXNhYmxlZF0nOiAnZGlzYWJsZWQgfHwgbG9hZGluZyB8fCBudWxsJyxcbiAgICAgICAgJ1thdHRyLmFyaWEtZGlzYWJsZWRdJzogJyhkaXNhYmxlZCB8fCBsb2FkaW5nKS50b1N0cmluZygpJyxcbiAgICAgICAgJyhjbGljayknOiAnc3RvcERpc2FibGVkRXZlbnRzKCRldmVudCknXG4gICAgfSxcbiAgICBpbnB1dHM6IFsnZGlzYWJsZWQnLCAnbG9hZGluZyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQmJBbmNob3IgZXh0ZW5kcyBCYkJ1dHRvbiB7XG5cbiAgICAvLyBJbnB1dHMuXG4gICAgQElucHV0KCkgdGFiSW5kZXg6IG51bWJlcjtcblxuICAgIGNvbnN0cnVjdG9yKF9lbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7XG4gICAgICAgIHN1cGVyKF9lbGVtZW50UmVmKTtcbiAgICB9XG5cbiAgICBzdG9wRGlzYWJsZWRFdmVudHMoZXZlbnQ6IEV2ZW50KSB7XG4gICAgICAgIC8vIElmIHRoZSBidXR0b24gaXMgbm90IGRpc2FibGVkIChhbmQgbm90IGxvYWRpbmcpIGxldCBhbGwgZXZlbnRzIHBhc3MuXG4gICAgICAgIGlmICghdGhpcy5kaXNhYmxlZCAmJiAhdGhpcy5sb2FkaW5nKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBJZiB0aGUgYnV0dG9uIGlzIGRpc2FibGVkIGFuZC9vciBsb2FkaW5nIHN0b3BcbiAgICAgICAgLy8gdGhlIGV2ZW50IGZyb20gYnViYmxpbmcgdXAuXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICAgIH1cblxufVxuIiwiPGJiLXNwaW5uZXIgW2NsYXNzLnZpc2libGVdPVwibG9hZGluZ1wiXG4gICAgICAgICAgICBjbGFzcz1cImJiLWJ1dHRvbi1zcGlubmVyIHNtYWxsXCI+XG48L2JiLXNwaW5uZXI+XG5cbjxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiJdfQ==