@bravobit/bb-foundation 0.15.4 → 0.16.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 (377) hide show
  1. package/auth/lib/auth.interceptor.d.ts +1 -1
  2. package/auth/lib/auth.service.d.ts +1 -1
  3. package/auth/package.json +5 -5
  4. package/collections/package.json +5 -5
  5. package/controls/bravobit-bb-foundation-controls.d.ts +5 -0
  6. package/controls/lib/checkbox/checkbox.component.d.ts +27 -0
  7. package/controls/lib/checkbox/checkbox.module.d.ts +9 -0
  8. package/controls/lib/controls.module.d.ts +7 -0
  9. package/controls/package.json +10 -0
  10. package/controls/public_api.d.ts +3 -0
  11. package/dashboard/package.json +5 -5
  12. package/dialog/package.json +5 -5
  13. package/elements/package.json +5 -5
  14. package/{esm2015/auth/bravobit-bb-foundation-auth.js → esm2020/auth/bravobit-bb-foundation-auth.mjs} +0 -0
  15. package/esm2020/auth/lib/auth.interceptor.mjs +94 -0
  16. package/{esm2015/auth/lib/auth.module.js → esm2020/auth/lib/auth.module.mjs} +5 -5
  17. package/esm2020/auth/lib/auth.service.mjs +276 -0
  18. package/esm2020/auth/lib/auth.session.mjs +131 -0
  19. package/{esm2015/auth/lib/directives/authenticated.directive.js → esm2020/auth/lib/directives/authenticated.directive.mjs} +5 -6
  20. package/esm2020/auth/lib/directives/permission.directive.mjs +80 -0
  21. package/esm2020/auth/lib/directives/role.directive.mjs +37 -0
  22. package/esm2020/auth/lib/guards/anonymous.guard.mjs +34 -0
  23. package/esm2020/auth/lib/guards/authenticated.guard.mjs +35 -0
  24. package/{esm2015/auth/lib/helpers/jwt.helper.js → esm2020/auth/lib/helpers/jwt.helper.mjs} +3 -3
  25. package/{esm2015/auth/lib/helpers/mapper.helper.js → esm2020/auth/lib/helpers/mapper.helper.mjs} +4 -4
  26. package/{esm2015/auth/lib/interfaces/config.interface.js → esm2020/auth/lib/interfaces/config.interface.mjs} +0 -0
  27. package/{esm2015/auth/lib/interfaces/mapper.interface.js → esm2020/auth/lib/interfaces/mapper.interface.mjs} +0 -0
  28. package/{esm2015/auth/lib/interfaces/provider.interface.js → esm2020/auth/lib/interfaces/provider.interface.mjs} +0 -0
  29. package/{esm2015/auth/lib/interfaces/token.interface.js → esm2020/auth/lib/interfaces/token.interface.mjs} +0 -0
  30. package/esm2020/auth/lib/permissions.service.mjs +56 -0
  31. package/esm2020/auth/lib/providers/email.provider.mjs +25 -0
  32. package/esm2020/auth/lib/providers/verify.provider.mjs +19 -0
  33. package/{esm2015/auth/lib/tokens/use-authorization.token.js → esm2020/auth/lib/tokens/use-authorization.token.mjs} +0 -0
  34. package/{esm2015/auth/public_api.js → esm2020/auth/public_api.mjs} +0 -0
  35. package/{esm2015/bravobit-bb-foundation.js → esm2020/bravobit-bb-foundation.mjs} +0 -0
  36. package/{esm2015/collections/bravobit-bb-foundation-collections.js → esm2020/collections/bravobit-bb-foundation-collections.mjs} +0 -0
  37. package/esm2020/collections/lib/collection.mjs +98 -0
  38. package/{esm2015/collections/lib/collections.module.js → esm2020/collections/lib/collections.module.mjs} +5 -5
  39. package/esm2020/collections/lib/components/collections-pager/collections-pager.component.mjs +123 -0
  40. package/esm2020/collections/lib/components/collections-viewer/collections-viewer.component.mjs +31 -0
  41. package/{esm2015/collections/lib/components/collections.directive.js → esm2020/collections/lib/components/collections.directive.mjs} +13 -13
  42. package/{esm2015/collections/lib/interfaces/collection.interface.js → esm2020/collections/lib/interfaces/collection.interface.mjs} +0 -0
  43. package/esm2020/collections/lib/providers/api-collection.provider.mjs +68 -0
  44. package/esm2020/collections/lib/providers/collection.provider.mjs +13 -0
  45. package/{esm2015/collections/lib/providers/local-collection.provider.js → esm2020/collections/lib/providers/local-collection.provider.mjs} +0 -0
  46. package/{esm2015/collections/public_api.js → esm2020/collections/public_api.mjs} +0 -0
  47. package/esm2020/controls/bravobit-bb-foundation-controls.mjs +5 -0
  48. package/esm2020/controls/lib/checkbox/checkbox.component.mjs +86 -0
  49. package/esm2020/controls/lib/checkbox/checkbox.module.mjs +19 -0
  50. package/esm2020/controls/lib/controls.module.mjs +16 -0
  51. package/esm2020/controls/public_api.mjs +4 -0
  52. package/{esm2015/dashboard/bravobit-bb-foundation-dashboard.js → esm2020/dashboard/bravobit-bb-foundation-dashboard.mjs} +0 -0
  53. package/esm2020/dashboard/lib/dashboard/dashboard.component.mjs +56 -0
  54. package/esm2020/dashboard/lib/dashboard-header/dashboard-header.component.mjs +30 -0
  55. package/esm2020/dashboard/lib/dashboard-menu/dashboard-menu.component.mjs +31 -0
  56. package/esm2020/dashboard/lib/dashboard-menu-item/dashboard-menu-item.component.mjs +29 -0
  57. package/esm2020/dashboard/lib/dashboard-sidebar/dashboard-sidebar.component.mjs +75 -0
  58. package/esm2020/dashboard/lib/dashboard-sidebar-group/dashboard-sidebar-group.component.mjs +99 -0
  59. package/esm2020/dashboard/lib/dashboard-sidebar-item/dashboard-sidebar-item.component.mjs +62 -0
  60. package/{esm2015/dashboard/lib/dashboard.module.js → esm2020/dashboard/lib/dashboard.module.mjs} +5 -5
  61. package/{esm2015/dashboard/public_api.js → esm2020/dashboard/public_api.mjs} +0 -0
  62. package/{esm2015/dialog/bravobit-bb-foundation-dialog.js → esm2020/dialog/bravobit-bb-foundation-dialog.mjs} +0 -0
  63. package/esm2020/dialog/lib/dialog-actions/dialog-actions.component.mjs +12 -0
  64. package/esm2020/dialog/lib/dialog-confirm/dialog-confirm.component.mjs +37 -0
  65. package/{esm2015/dialog/lib/dialog-container/dialog-container.component.js → esm2020/dialog/lib/dialog-container/dialog-container.component.mjs} +6 -15
  66. package/esm2020/dialog/lib/dialog-header/dialog-header.component.mjs +25 -0
  67. package/esm2020/dialog/lib/dialog-link/dialog-link.component.mjs +11 -0
  68. package/esm2020/dialog/lib/dialog-modal/dialog-modal.component.mjs +46 -0
  69. package/esm2020/dialog/lib/dialog-overlay/dialog-overlay.component.mjs +134 -0
  70. package/{esm2015/dialog/lib/dialog.injector.js → esm2020/dialog/lib/dialog.injector.mjs} +0 -0
  71. package/{esm2015/dialog/lib/dialog.insertion.js → esm2020/dialog/lib/dialog.insertion.mjs} +4 -4
  72. package/{esm2015/dialog/lib/dialog.interfaces.js → esm2020/dialog/lib/dialog.interfaces.mjs} +0 -0
  73. package/{esm2015/dialog/lib/dialog.module.js → esm2020/dialog/lib/dialog.module.mjs} +5 -9
  74. package/{esm2015/dialog/lib/dialog.ref.js → esm2020/dialog/lib/dialog.ref.mjs} +0 -0
  75. package/{esm2015/dialog/lib/dialog.service.js → esm2020/dialog/lib/dialog.service.mjs} +5 -5
  76. package/{esm2015/dialog/public_api.js → esm2020/dialog/public_api.mjs} +0 -0
  77. package/{esm2015/elements/bravobit-bb-foundation-elements.js → esm2020/elements/bravobit-bb-foundation-elements.mjs} +0 -0
  78. package/esm2020/elements/lib/avatar/avatar.component.mjs +142 -0
  79. package/esm2020/elements/lib/button/button.component.mjs +61 -0
  80. package/esm2020/elements/lib/checkbox/checkbox.component.mjs +73 -0
  81. package/esm2020/elements/lib/date-picker/date-picker.component.mjs +304 -0
  82. package/{esm2015/elements/lib/directives/addon.directive.js → esm2020/elements/lib/directives/addon.directive.mjs} +7 -7
  83. package/esm2020/elements/lib/directives/autosize.directive.mjs +72 -0
  84. package/{esm2015/elements/lib/directives/focus-trap.directive.js → esm2020/elements/lib/directives/focus-trap.directive.mjs} +4 -4
  85. package/{esm2015/elements/lib/directives/focus.directive.js → esm2020/elements/lib/directives/focus.directive.mjs} +4 -4
  86. package/esm2020/elements/lib/directives/form-submit.directive.mjs +50 -0
  87. package/esm2020/elements/lib/directives/input.directive.mjs +136 -0
  88. package/{esm2015/elements/lib/directives/template.directive.js → esm2020/elements/lib/directives/template.directive.mjs} +4 -4
  89. package/esm2020/elements/lib/dropdown/dropdown.component.mjs +100 -0
  90. package/{esm2015/elements/lib/elements.interfaces.js → esm2020/elements/lib/elements.interfaces.mjs} +0 -0
  91. package/{esm2015/elements/lib/elements.module.js → esm2020/elements/lib/elements.module.mjs} +5 -5
  92. package/esm2020/elements/lib/file-picker/file-picker.component.mjs +236 -0
  93. package/esm2020/elements/lib/form-control/form-control.component.mjs +49 -0
  94. package/esm2020/elements/lib/form-error/form-error.component.mjs +108 -0
  95. package/esm2020/elements/lib/form-group/form-group.component.mjs +18 -0
  96. package/esm2020/elements/lib/icon/icon.component.mjs +102 -0
  97. package/esm2020/elements/lib/image-picker/image-picker.component.mjs +106 -0
  98. package/esm2020/elements/lib/pipes/file-image.pipe.mjs +42 -0
  99. package/{esm2015/elements/lib/pipes/file-size.pipe.js → esm2020/elements/lib/pipes/file-size.pipe.mjs} +4 -4
  100. package/esm2020/elements/lib/pipes/relative-time.pipe.mjs +94 -0
  101. package/esm2020/elements/lib/spinner/spinner.component.mjs +25 -0
  102. package/esm2020/elements/lib/tag/tag.component.mjs +18 -0
  103. package/{esm2015/elements/public_api.js → esm2020/elements/public_api.mjs} +0 -0
  104. package/{esm2015/http/bravobit-bb-foundation-http.js → esm2020/http/bravobit-bb-foundation-http.mjs} +0 -0
  105. package/esm2020/http/lib/classes/http.config.mjs +29 -0
  106. package/esm2020/http/lib/classes/http.error.mjs +20 -0
  107. package/{esm2015/http/lib/http.interfaces.js → esm2020/http/lib/http.interfaces.mjs} +0 -0
  108. package/{esm2015/http/lib/http.module.js → esm2020/http/lib/http.module.mjs} +5 -5
  109. package/esm2020/http/lib/interceptors/base-url.interceptor.mjs +50 -0
  110. package/esm2020/http/lib/interceptors/error.interceptor.mjs +32 -0
  111. package/{esm2015/http/public_api.js → esm2020/http/public_api.mjs} +0 -0
  112. package/{esm2015/lib/core/coercions/boolean-coercion.js → esm2020/lib/core/coercions/boolean-coercion.mjs} +0 -0
  113. package/{esm2015/lib/core/miscellaneous/regex.js → esm2020/lib/core/miscellaneous/regex.mjs} +0 -0
  114. package/esm2020/lib/core/miscellaneous/validator.mjs +85 -0
  115. package/{esm2015/lib/core/mixins/can-disable.js → esm2020/lib/core/mixins/can-disable.mjs} +0 -0
  116. package/{esm2015/lib/core/mixins/can-hide-errors.js → esm2020/lib/core/mixins/can-hide-errors.mjs} +0 -0
  117. package/{esm2015/lib/core/mixins/can-load.js → esm2020/lib/core/mixins/can-load.mjs} +0 -0
  118. package/{esm2015/lib/core/mixins/constructor.js → esm2020/lib/core/mixins/constructor.mjs} +0 -0
  119. package/{esm2015/lib/core/mixins/has-error.js → esm2020/lib/core/mixins/has-error.mjs} +0 -0
  120. package/{esm2015/lib/core/mixins/is-focused.js → esm2020/lib/core/mixins/is-focused.mjs} +0 -0
  121. package/{esm2015/lib/core/mixins/is-grouped.js → esm2020/lib/core/mixins/is-grouped.mjs} +0 -0
  122. package/{esm2015/lib/core/mixins/is-readonly.js → esm2020/lib/core/mixins/is-readonly.mjs} +0 -0
  123. package/{esm2015/lib/core/mixins/is-required.js → esm2020/lib/core/mixins/is-required.mjs} +0 -0
  124. package/esm2020/lib/core/services/clipboard.service.mjs +70 -0
  125. package/esm2020/lib/core/services/exif.service.mjs +163 -0
  126. package/esm2020/lib/core/services/file-loader.service.mjs +87 -0
  127. package/esm2020/lib/core/services/image-converter.service.mjs +123 -0
  128. package/{esm2015/lib/core/services/languages.service.js → esm2020/lib/core/services/languages.service.mjs} +4 -4
  129. package/{esm2015/lib/core/services/network.service.js → esm2020/lib/core/services/network.service.mjs} +5 -6
  130. package/esm2020/lib/core/services/patch.service.mjs +63 -0
  131. package/{esm2015/lib/core/services/platform.service.js → esm2020/lib/core/services/platform.service.mjs} +5 -5
  132. package/{esm2015/lib/core/tokens/accept-language.token.js → esm2020/lib/core/tokens/accept-language.token.mjs} +0 -0
  133. package/{esm2015/lib/core/tokens/base-url.token.js → esm2020/lib/core/tokens/base-url.token.mjs} +0 -0
  134. package/{esm2015/lib/core/tokens/cookie.token.js → esm2020/lib/core/tokens/cookie.token.mjs} +0 -0
  135. package/{esm2015/lib/core/tokens/location.token.js → esm2020/lib/core/tokens/location.token.mjs} +0 -0
  136. package/{esm2015/lib/core/tokens/navigator.token.js → esm2020/lib/core/tokens/navigator.token.mjs} +0 -0
  137. package/{esm2015/lib/core/tokens/window.token.js → esm2020/lib/core/tokens/window.token.mjs} +0 -0
  138. package/{esm2015/localize/bravobit-bb-foundation-localize.js → esm2020/localize/bravobit-bb-foundation-localize.mjs} +0 -0
  139. package/{esm2015/localize/lib/functions/date.function.js → esm2020/localize/lib/functions/date.function.mjs} +0 -0
  140. package/{esm2015/localize/lib/functions/lowercase.function.js → esm2020/localize/lib/functions/lowercase.function.mjs} +0 -0
  141. package/{esm2015/localize/lib/functions/uppercase.function.js → esm2020/localize/lib/functions/uppercase.function.mjs} +0 -0
  142. package/{esm2015/localize/lib/handlers/missing.handler.js → esm2020/localize/lib/handlers/missing.handler.mjs} +0 -0
  143. package/{esm2015/localize/lib/interfaces/config.interfaces.js → esm2020/localize/lib/interfaces/config.interfaces.mjs} +0 -0
  144. package/{esm2015/localize/lib/interfaces/dictionary.interfaces.js → esm2020/localize/lib/interfaces/dictionary.interfaces.mjs} +0 -0
  145. package/{esm2015/localize/lib/interfaces/functions.interfaces.js → esm2020/localize/lib/interfaces/functions.interfaces.mjs} +0 -0
  146. package/{esm2015/localize/lib/interfaces/handlers.interfaces.js → esm2020/localize/lib/interfaces/handlers.interfaces.mjs} +0 -0
  147. package/{esm2015/localize/lib/interfaces/options.interfaces.js → esm2020/localize/lib/interfaces/options.interfaces.mjs} +0 -0
  148. package/{esm2015/localize/lib/localizations/dutch.localization.js → esm2020/localize/lib/localizations/dutch.localization.mjs} +0 -0
  149. package/{esm2015/localize/lib/localizations/english.localization.js → esm2020/localize/lib/localizations/english.localization.mjs} +0 -0
  150. package/esm2020/localize/lib/localize.dictionary.mjs +135 -0
  151. package/{esm2015/localize/lib/localize.module.js → esm2020/localize/lib/localize.module.mjs} +5 -5
  152. package/{esm2015/localize/lib/localize.pipe.js → esm2020/localize/lib/localize.pipe.mjs} +5 -5
  153. package/esm2020/localize/lib/localize.service.mjs +277 -0
  154. package/esm2020/localize/lib/views/localize-string/localize-string.component.mjs +88 -0
  155. package/{esm2015/localize/lib/views/localize-template-or-string.directive.js → esm2020/localize/lib/views/localize-template-or-string.directive.mjs} +4 -4
  156. package/{esm2015/localize/lib/views/localize-template.directive.js → esm2020/localize/lib/views/localize-template.directive.mjs} +4 -4
  157. package/{esm2015/localize/public_api.js → esm2020/localize/public_api.mjs} +0 -0
  158. package/{esm2015/notifications/bravobit-bb-foundation-notifications.js → esm2020/notifications/bravobit-bb-foundation-notifications.mjs} +0 -0
  159. package/esm2020/notifications/lib/notifications-item/notifications-item.component.mjs +100 -0
  160. package/esm2020/notifications/lib/notifications-list/notifications-list.component.mjs +47 -0
  161. package/{esm2015/notifications/lib/notifications.animations.js → esm2020/notifications/lib/notifications.animations.mjs} +0 -0
  162. package/{esm2015/notifications/lib/notifications.injector.js → esm2020/notifications/lib/notifications.injector.mjs} +0 -0
  163. package/{esm2015/notifications/lib/notifications.interfaces.js → esm2020/notifications/lib/notifications.interfaces.mjs} +0 -0
  164. package/{esm2015/notifications/lib/notifications.module.js → esm2020/notifications/lib/notifications.module.mjs} +6 -7
  165. package/{esm2015/notifications/lib/notifications.service.js → esm2020/notifications/lib/notifications.service.mjs} +5 -5
  166. package/{esm2015/notifications/public_api.js → esm2020/notifications/public_api.mjs} +0 -0
  167. package/{esm2015/public_api.js → esm2020/public_api.mjs} +0 -0
  168. package/{esm2015/recaptcha/bravobit-bb-foundation-recaptcha.js → esm2020/recaptcha/bravobit-bb-foundation-recaptcha.mjs} +0 -0
  169. package/esm2020/recaptcha/lib/recaptcha/recaptcha.component.mjs +185 -0
  170. package/esm2020/recaptcha/lib/recaptcha-loader.service.mjs +90 -0
  171. package/{esm2015/recaptcha/lib/recaptcha.interface.js → esm2020/recaptcha/lib/recaptcha.interface.mjs} +0 -0
  172. package/{esm2015/recaptcha/lib/recaptcha.module.js → esm2020/recaptcha/lib/recaptcha.module.mjs} +5 -5
  173. package/{esm2015/recaptcha/public_api.js → esm2020/recaptcha/public_api.mjs} +0 -0
  174. package/{esm2015/rxjs/bravobit-bb-foundation-rxjs.js → esm2020/rxjs/bravobit-bb-foundation-rxjs.mjs} +0 -0
  175. package/esm2020/rxjs/lib/operators/combine-latest-map.operator.mjs +10 -0
  176. package/{esm2015/rxjs/lib/operators/filter-nil.operator.js → esm2020/rxjs/lib/operators/filter-nil.operator.mjs} +0 -0
  177. package/{esm2015/rxjs/public_api.js → esm2020/rxjs/public_api.mjs} +0 -0
  178. package/{esm2015/storage/bravobit-bb-foundation-storage.js → esm2020/storage/bravobit-bb-foundation-storage.mjs} +0 -0
  179. package/{esm2015/storage/lib/interfaces/attributes.interface.js → esm2020/storage/lib/interfaces/attributes.interface.mjs} +0 -0
  180. package/{esm2015/storage/lib/interfaces/memory.interface.js → esm2020/storage/lib/interfaces/memory.interface.mjs} +0 -0
  181. package/{esm2015/storage/lib/interfaces/strategy.interface.js → esm2020/storage/lib/interfaces/strategy.interface.mjs} +0 -0
  182. package/esm2020/storage/lib/storage.service.mjs +109 -0
  183. package/esm2020/storage/lib/strategies/cookie-storage.strategy.mjs +142 -0
  184. package/{esm2015/storage/lib/strategies/memory-storage.strategy.js → esm2020/storage/lib/strategies/memory-storage.strategy.mjs} +2 -2
  185. package/esm2020/storage/lib/strategies/polyfill-storage.strategy.mjs +102 -0
  186. package/{esm2015/storage/public_api.js → esm2020/storage/public_api.mjs} +0 -0
  187. package/{esm2015/table/bravobit-bb-foundation-table.js → esm2020/table/bravobit-bb-foundation-table.mjs} +0 -0
  188. package/esm2020/table/lib/components/table/table.component.mjs +191 -0
  189. package/esm2020/table/lib/components/table-cell/table-cell.component.mjs +11 -0
  190. package/esm2020/table/lib/components/table-header-cell/table-header-cell.component.mjs +131 -0
  191. package/esm2020/table/lib/components/table-pager/table-pager.component.mjs +136 -0
  192. package/esm2020/table/lib/data/datasource.data.mjs +32 -0
  193. package/esm2020/table/lib/data/generic.data.mjs +72 -0
  194. package/{esm2015/table/lib/interfaces/datasource.interface.js → esm2020/table/lib/interfaces/datasource.interface.mjs} +0 -0
  195. package/{esm2015/table/lib/interfaces/table.interfaces.js → esm2020/table/lib/interfaces/table.interfaces.mjs} +0 -0
  196. package/{esm2015/table/lib/table.module.js → esm2020/table/lib/table.module.mjs} +5 -5
  197. package/{esm2015/table/public_api.js → esm2020/table/public_api.mjs} +0 -0
  198. package/fesm2015/{bravobit-bb-foundation-auth.js → bravobit-bb-foundation-auth.mjs} +79 -68
  199. package/fesm2015/bravobit-bb-foundation-auth.mjs.map +1 -0
  200. package/fesm2015/{bravobit-bb-foundation-collections.js → bravobit-bb-foundation-collections.mjs} +33 -47
  201. package/fesm2015/bravobit-bb-foundation-collections.mjs.map +1 -0
  202. package/fesm2015/bravobit-bb-foundation-controls.mjs +123 -0
  203. package/fesm2015/bravobit-bb-foundation-controls.mjs.map +1 -0
  204. package/fesm2015/bravobit-bb-foundation-dashboard.mjs +416 -0
  205. package/fesm2015/bravobit-bb-foundation-dashboard.mjs.map +1 -0
  206. package/fesm2015/{bravobit-bb-foundation-dialog.js → bravobit-bb-foundation-dialog.mjs} +45 -106
  207. package/fesm2015/bravobit-bb-foundation-dialog.mjs.map +1 -0
  208. package/fesm2015/{bravobit-bb-foundation-elements.js → bravobit-bb-foundation-elements.mjs} +193 -302
  209. package/fesm2015/bravobit-bb-foundation-elements.mjs.map +1 -0
  210. package/fesm2015/{bravobit-bb-foundation-http.js → bravobit-bb-foundation-http.mjs} +18 -16
  211. package/fesm2015/bravobit-bb-foundation-http.mjs.map +1 -0
  212. package/fesm2015/{bravobit-bb-foundation-localize.js → bravobit-bb-foundation-localize.mjs} +63 -69
  213. package/fesm2015/bravobit-bb-foundation-localize.mjs.map +1 -0
  214. package/fesm2015/bravobit-bb-foundation-notifications.mjs +377 -0
  215. package/fesm2015/bravobit-bb-foundation-notifications.mjs.map +1 -0
  216. package/fesm2015/{bravobit-bb-foundation-recaptcha.js → bravobit-bb-foundation-recaptcha.mjs} +40 -47
  217. package/fesm2015/bravobit-bb-foundation-recaptcha.mjs.map +1 -0
  218. package/fesm2015/{bravobit-bb-foundation-rxjs.js → bravobit-bb-foundation-rxjs.mjs} +1 -1
  219. package/fesm2015/bravobit-bb-foundation-rxjs.mjs.map +1 -0
  220. package/fesm2015/{bravobit-bb-foundation-storage.js → bravobit-bb-foundation-storage.mjs} +12 -10
  221. package/fesm2015/bravobit-bb-foundation-storage.mjs.map +1 -0
  222. package/fesm2015/bravobit-bb-foundation-table.mjs +603 -0
  223. package/fesm2015/bravobit-bb-foundation-table.mjs.map +1 -0
  224. package/fesm2015/{bravobit-bb-foundation.js → bravobit-bb-foundation.mjs} +74 -64
  225. package/fesm2015/bravobit-bb-foundation.mjs.map +1 -0
  226. package/fesm2020/bravobit-bb-foundation-auth.mjs +928 -0
  227. package/fesm2020/bravobit-bb-foundation-auth.mjs.map +1 -0
  228. package/fesm2020/bravobit-bb-foundation-collections.mjs +434 -0
  229. package/fesm2020/bravobit-bb-foundation-collections.mjs.map +1 -0
  230. package/fesm2020/bravobit-bb-foundation-controls.mjs +121 -0
  231. package/fesm2020/bravobit-bb-foundation-controls.mjs.map +1 -0
  232. package/fesm2020/bravobit-bb-foundation-dashboard.mjs +404 -0
  233. package/fesm2020/bravobit-bb-foundation-dashboard.mjs.map +1 -0
  234. package/fesm2020/bravobit-bb-foundation-dialog.mjs +584 -0
  235. package/fesm2020/bravobit-bb-foundation-dialog.mjs.map +1 -0
  236. package/fesm2020/bravobit-bb-foundation-elements.mjs +1993 -0
  237. package/fesm2020/bravobit-bb-foundation-elements.mjs.map +1 -0
  238. package/fesm2020/bravobit-bb-foundation-http.mjs +168 -0
  239. package/fesm2020/bravobit-bb-foundation-http.mjs.map +1 -0
  240. package/fesm2020/bravobit-bb-foundation-localize.mjs +832 -0
  241. package/fesm2020/bravobit-bb-foundation-localize.mjs.map +1 -0
  242. package/fesm2020/bravobit-bb-foundation-notifications.mjs +375 -0
  243. package/fesm2020/bravobit-bb-foundation-notifications.mjs.map +1 -0
  244. package/fesm2020/bravobit-bb-foundation-recaptcha.mjs +300 -0
  245. package/fesm2020/bravobit-bb-foundation-recaptcha.mjs.map +1 -0
  246. package/fesm2020/bravobit-bb-foundation-rxjs.mjs +21 -0
  247. package/fesm2020/bravobit-bb-foundation-rxjs.mjs.map +1 -0
  248. package/fesm2020/bravobit-bb-foundation-storage.mjs +413 -0
  249. package/fesm2020/bravobit-bb-foundation-storage.mjs.map +1 -0
  250. package/fesm2020/bravobit-bb-foundation-table.mjs +592 -0
  251. package/fesm2020/bravobit-bb-foundation-table.mjs.map +1 -0
  252. package/fesm2020/bravobit-bb-foundation.mjs +895 -0
  253. package/fesm2020/bravobit-bb-foundation.mjs.map +1 -0
  254. package/http/package.json +5 -5
  255. package/localize/package.json +5 -5
  256. package/notifications/package.json +5 -5
  257. package/package.json +125 -8
  258. package/recaptcha/package.json +5 -5
  259. package/rxjs/package.json +5 -5
  260. package/storage/package.json +5 -5
  261. package/table/lib/components/table/table.component.d.ts +3 -0
  262. package/table/package.json +5 -5
  263. package/bundles/bravobit-bb-foundation-auth.umd.js +0 -1483
  264. package/bundles/bravobit-bb-foundation-auth.umd.js.map +0 -1
  265. package/bundles/bravobit-bb-foundation-collections.umd.js +0 -868
  266. package/bundles/bravobit-bb-foundation-collections.umd.js.map +0 -1
  267. package/bundles/bravobit-bb-foundation-dashboard.umd.js +0 -876
  268. package/bundles/bravobit-bb-foundation-dashboard.umd.js.map +0 -1
  269. package/bundles/bravobit-bb-foundation-dialog.umd.js +0 -716
  270. package/bundles/bravobit-bb-foundation-dialog.umd.js.map +0 -1
  271. package/bundles/bravobit-bb-foundation-elements.umd.js +0 -2768
  272. package/bundles/bravobit-bb-foundation-elements.umd.js.map +0 -1
  273. package/bundles/bravobit-bb-foundation-http.umd.js +0 -535
  274. package/bundles/bravobit-bb-foundation-http.umd.js.map +0 -1
  275. package/bundles/bravobit-bb-foundation-localize.umd.js +0 -1292
  276. package/bundles/bravobit-bb-foundation-localize.umd.js.map +0 -1
  277. package/bundles/bravobit-bb-foundation-notifications.umd.js +0 -794
  278. package/bundles/bravobit-bb-foundation-notifications.umd.js.map +0 -1
  279. package/bundles/bravobit-bb-foundation-recaptcha.umd.js +0 -683
  280. package/bundles/bravobit-bb-foundation-recaptcha.umd.js.map +0 -1
  281. package/bundles/bravobit-bb-foundation-rxjs.umd.js +0 -29
  282. package/bundles/bravobit-bb-foundation-rxjs.umd.js.map +0 -1
  283. package/bundles/bravobit-bb-foundation-storage.umd.js +0 -799
  284. package/bundles/bravobit-bb-foundation-storage.umd.js.map +0 -1
  285. package/bundles/bravobit-bb-foundation-table.umd.js +0 -1070
  286. package/bundles/bravobit-bb-foundation-table.umd.js.map +0 -1
  287. package/bundles/bravobit-bb-foundation.umd.js +0 -1440
  288. package/bundles/bravobit-bb-foundation.umd.js.map +0 -1
  289. package/esm2015/auth/lib/auth.interceptor.js +0 -95
  290. package/esm2015/auth/lib/auth.service.js +0 -299
  291. package/esm2015/auth/lib/auth.session.js +0 -136
  292. package/esm2015/auth/lib/directives/permission.directive.js +0 -81
  293. package/esm2015/auth/lib/directives/role.directive.js +0 -38
  294. package/esm2015/auth/lib/guards/anonymous.guard.js +0 -35
  295. package/esm2015/auth/lib/guards/authenticated.guard.js +0 -36
  296. package/esm2015/auth/lib/permissions.service.js +0 -58
  297. package/esm2015/auth/lib/providers/email.provider.js +0 -26
  298. package/esm2015/auth/lib/providers/verify.provider.js +0 -20
  299. package/esm2015/collections/lib/collection.js +0 -104
  300. package/esm2015/collections/lib/components/collections-pager/collections-pager.component.js +0 -136
  301. package/esm2015/collections/lib/components/collections-viewer/collections-viewer.component.js +0 -39
  302. package/esm2015/collections/lib/providers/api-collection.provider.js +0 -69
  303. package/esm2015/collections/lib/providers/collection.provider.js +0 -14
  304. package/esm2015/dashboard/lib/dashboard/dashboard.component.js +0 -64
  305. package/esm2015/dashboard/lib/dashboard-header/dashboard-header.component.js +0 -41
  306. package/esm2015/dashboard/lib/dashboard-menu/dashboard-menu.component.js +0 -39
  307. package/esm2015/dashboard/lib/dashboard-menu-item/dashboard-menu-item.component.js +0 -38
  308. package/esm2015/dashboard/lib/dashboard-sidebar/dashboard-sidebar.component.js +0 -83
  309. package/esm2015/dashboard/lib/dashboard-sidebar-group/dashboard-sidebar-group.component.js +0 -110
  310. package/esm2015/dashboard/lib/dashboard-sidebar-item/dashboard-sidebar-item.component.js +0 -71
  311. package/esm2015/dialog/lib/dialog-actions/dialog-actions.component.js +0 -20
  312. package/esm2015/dialog/lib/dialog-confirm/dialog-confirm.component.js +0 -45
  313. package/esm2015/dialog/lib/dialog-header/dialog-header.component.js +0 -33
  314. package/esm2015/dialog/lib/dialog-link/dialog-link.component.js +0 -19
  315. package/esm2015/dialog/lib/dialog-modal/dialog-modal.component.js +0 -54
  316. package/esm2015/dialog/lib/dialog-overlay/dialog-overlay.component.js +0 -143
  317. package/esm2015/elements/lib/avatar/avatar.component.js +0 -151
  318. package/esm2015/elements/lib/button/button.component.js +0 -79
  319. package/esm2015/elements/lib/checkbox/checkbox.component.js +0 -83
  320. package/esm2015/elements/lib/date-picker/date-picker.component.js +0 -322
  321. package/esm2015/elements/lib/directives/autosize.directive.js +0 -74
  322. package/esm2015/elements/lib/directives/form-submit.directive.js +0 -53
  323. package/esm2015/elements/lib/directives/input.directive.js +0 -139
  324. package/esm2015/elements/lib/dropdown/dropdown.component.js +0 -111
  325. package/esm2015/elements/lib/file-picker/file-picker.component.js +0 -247
  326. package/esm2015/elements/lib/form-control/form-control.component.js +0 -58
  327. package/esm2015/elements/lib/form-error/form-error.component.js +0 -116
  328. package/esm2015/elements/lib/form-group/form-group.component.js +0 -27
  329. package/esm2015/elements/lib/icon/icon.component.js +0 -110
  330. package/esm2015/elements/lib/image-picker/image-picker.component.js +0 -119
  331. package/esm2015/elements/lib/pipes/file-image.pipe.js +0 -45
  332. package/esm2015/elements/lib/pipes/relative-time.pipe.js +0 -96
  333. package/esm2015/elements/lib/spinner/spinner.component.js +0 -34
  334. package/esm2015/elements/lib/tag/tag.component.js +0 -26
  335. package/esm2015/http/lib/classes/http.config.js +0 -31
  336. package/esm2015/http/lib/classes/http.error.js +0 -21
  337. package/esm2015/http/lib/interceptors/base-url.interceptor.js +0 -52
  338. package/esm2015/http/lib/interceptors/error.interceptor.js +0 -33
  339. package/esm2015/lib/core/miscellaneous/validator.js +0 -86
  340. package/esm2015/lib/core/services/clipboard.service.js +0 -72
  341. package/esm2015/lib/core/services/exif.service.js +0 -168
  342. package/esm2015/lib/core/services/file-loader.service.js +0 -90
  343. package/esm2015/lib/core/services/image-converter.service.js +0 -130
  344. package/esm2015/lib/core/services/patch.service.js +0 -65
  345. package/esm2015/localize/lib/localize.dictionary.js +0 -137
  346. package/esm2015/localize/lib/localize.service.js +0 -282
  347. package/esm2015/localize/lib/views/localize-string/localize-string.component.js +0 -99
  348. package/esm2015/notifications/lib/notifications-item/notifications-item.component.js +0 -108
  349. package/esm2015/notifications/lib/notifications-list/notifications-list.component.js +0 -56
  350. package/esm2015/recaptcha/lib/recaptcha/recaptcha.component.js +0 -199
  351. package/esm2015/recaptcha/lib/recaptcha-loader.service.js +0 -93
  352. package/esm2015/rxjs/lib/operators/combine-latest-map.operator.js +0 -7
  353. package/esm2015/storage/lib/storage.service.js +0 -111
  354. package/esm2015/storage/lib/strategies/cookie-storage.strategy.js +0 -143
  355. package/esm2015/storage/lib/strategies/polyfill-storage.strategy.js +0 -102
  356. package/esm2015/table/lib/components/table/table.component.js +0 -196
  357. package/esm2015/table/lib/components/table-cell/table-cell.component.js +0 -19
  358. package/esm2015/table/lib/components/table-header-cell/table-header-cell.component.js +0 -141
  359. package/esm2015/table/lib/components/table-pager/table-pager.component.js +0 -146
  360. package/esm2015/table/lib/data/datasource.data.js +0 -32
  361. package/esm2015/table/lib/data/generic.data.js +0 -73
  362. package/fesm2015/bravobit-bb-foundation-auth.js.map +0 -1
  363. package/fesm2015/bravobit-bb-foundation-collections.js.map +0 -1
  364. package/fesm2015/bravobit-bb-foundation-dashboard.js +0 -468
  365. package/fesm2015/bravobit-bb-foundation-dashboard.js.map +0 -1
  366. package/fesm2015/bravobit-bb-foundation-dialog.js.map +0 -1
  367. package/fesm2015/bravobit-bb-foundation-elements.js.map +0 -1
  368. package/fesm2015/bravobit-bb-foundation-http.js.map +0 -1
  369. package/fesm2015/bravobit-bb-foundation-localize.js.map +0 -1
  370. package/fesm2015/bravobit-bb-foundation-notifications.js +0 -393
  371. package/fesm2015/bravobit-bb-foundation-notifications.js.map +0 -1
  372. package/fesm2015/bravobit-bb-foundation-recaptcha.js.map +0 -1
  373. package/fesm2015/bravobit-bb-foundation-rxjs.js.map +0 -1
  374. package/fesm2015/bravobit-bb-foundation-storage.js.map +0 -1
  375. package/fesm2015/bravobit-bb-foundation-table.js +0 -626
  376. package/fesm2015/bravobit-bb-foundation-table.js.map +0 -1
  377. package/fesm2015/bravobit-bb-foundation.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bravobit-bb-foundation.mjs","sources":["../../../projects/bb-foundation/src/lib/core/services/platform.service.ts","../../../projects/bb-foundation/src/lib/core/services/file-loader.service.ts","../../../projects/bb-foundation/src/lib/core/services/exif.service.ts","../../../projects/bb-foundation/src/lib/core/services/image-converter.service.ts","../../../projects/bb-foundation/src/lib/core/tokens/accept-language.token.ts","../../../projects/bb-foundation/src/lib/core/services/languages.service.ts","../../../projects/bb-foundation/src/lib/core/tokens/window.token.ts","../../../projects/bb-foundation/src/lib/core/tokens/navigator.token.ts","../../../projects/bb-foundation/src/lib/core/services/network.service.ts","../../../projects/bb-foundation/src/lib/core/services/patch.service.ts","../../../projects/bb-foundation/src/lib/core/services/clipboard.service.ts","../../../projects/bb-foundation/src/lib/core/coercions/boolean-coercion.ts","../../../projects/bb-foundation/src/lib/core/mixins/can-disable.ts","../../../projects/bb-foundation/src/lib/core/mixins/can-load.ts","../../../projects/bb-foundation/src/lib/core/mixins/has-error.ts","../../../projects/bb-foundation/src/lib/core/mixins/can-hide-errors.ts","../../../projects/bb-foundation/src/lib/core/mixins/is-focused.ts","../../../projects/bb-foundation/src/lib/core/mixins/is-grouped.ts","../../../projects/bb-foundation/src/lib/core/mixins/is-readonly.ts","../../../projects/bb-foundation/src/lib/core/mixins/is-required.ts","../../../projects/bb-foundation/src/lib/core/tokens/base-url.token.ts","../../../projects/bb-foundation/src/lib/core/tokens/cookie.token.ts","../../../projects/bb-foundation/src/lib/core/tokens/location.token.ts","../../../projects/bb-foundation/src/lib/core/miscellaneous/regex.ts","../../../projects/bb-foundation/src/lib/core/miscellaneous/validator.ts","../../../projects/bb-foundation/src/public_api.ts","../../../projects/bb-foundation/src/bravobit-bb-foundation.ts"],"sourcesContent":["import {Inject, Injectable, PLATFORM_ID} from '@angular/core';\nimport {isPlatformBrowser} from '@angular/common';\n\nlet hasV8BreakIterator: boolean;\ntry {\n hasV8BreakIterator = (typeof Intl !== 'undefined' && (Intl as any).v8BreakIterator);\n} catch {\n hasV8BreakIterator = false;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class Platform {\n\n constructor(@Inject(PLATFORM_ID) private _platformId: Object) {\n }\n\n // Browser check.\n isBrowser = this._platformId\n ? isPlatformBrowser(this._platformId)\n : typeof document === 'object' && !!document;\n\n // Is checks.\n isEdge = this.isBrowser && /(edge)/i.test(navigator.userAgent);\n isTrident = this.isBrowser && /(msie|trident)/i.test(navigator.userAgent);\n isBlink = this.isBrowser && (!!((window as any).chrome || hasV8BreakIterator) && typeof CSS !== 'undefined' && !this.isEdge && !this.isTrident);\n isWebkit = this.isBrowser && /AppleWebKit/i.test(navigator.userAgent) && !this.isBlink && !this.isEdge && !this.isTrident;\n isChrome = this.isBrowser && /Google Inc./.test(navigator.vendor);\n isFirefox = this.isBrowser && /(firefox|minefield)/i.test(navigator.userAgent);\n isSafari = this.isBrowser && /safari/i.test(navigator.userAgent) && this.isWebkit;\n isAndroid = this.isBrowser && /android/i.test(navigator.userAgent) && !this.isTrident;\n isIos = this.isBrowser && /iPad|iPhone|iPod/.test(navigator.userAgent) && !('MSStream' in window);\n isDesktop = this.isBrowser && !(/(iPhone|iPod|iPad|Android|BlackBerry|IEMobile)/.test(navigator.userAgent));\n\n}\n","import {Injectable} from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FileLoader {\n\n fromDataUrl(value: string, name: string = 'file') {\n if (!value) {\n return null;\n }\n\n try {\n // Convert base64 to raw binary data held in a string.\n const byteString = window.atob(value.split(',')[1]);\n\n // Separate out the mime component.\n const mimeString = value\n .split(',')[0]\n .split(':')[1]\n .split(';')[0];\n\n // Write the bytes of the string to an ArrayBuffer.\n const arrayBuffer = new ArrayBuffer(byteString.length);\n const uint8Array = new Uint8Array(arrayBuffer);\n for (let index = 0; index < byteString.length; index++) {\n uint8Array[index] = byteString.charCodeAt(index);\n }\n\n const dataView = new DataView(arrayBuffer);\n const blob = new Blob([dataView.buffer], {type: mimeString});\n\n return this.createFile(blob, name);\n } catch {\n return null;\n }\n }\n\n asDataUrl(file: File | Blob) {\n return this.read<string>(file, 'dataurl');\n }\n\n asArrayBuffer(file: File | Blob) {\n return this.read<ArrayBuffer>(file, 'arraybuffer');\n }\n\n private async read<T = string | ArrayBuffer>(file: File | Blob, type: 'dataurl' | 'arraybuffer') {\n return new Promise<T>((resolve, reject) => {\n const isFileLike = this.isFile(file) || this.isBlob(file);\n if (!file || !isFileLike) {\n return reject('Invalid file');\n }\n\n const reader = new FileReader();\n reader.onerror = () => reject('Error file read');\n reader.onabort = () => reject('Abort file read');\n reader.onload = () => {\n const result = reader.result as unknown;\n return resolve(result as T);\n };\n\n if (type === 'dataurl') {\n reader.readAsDataURL(file);\n } else if (type === 'arraybuffer') {\n reader.readAsArrayBuffer(file);\n }\n });\n }\n\n private isFile = (input: unknown) => {\n return 'File' in window && input instanceof File;\n };\n\n private isBlob = (input: unknown) => {\n return 'Blob' in window && input instanceof Blob;\n };\n\n private createFile(blob: Blob, name: string) {\n if (!navigator['msSaveBlob']) {\n return new File([blob], name, {lastModified: Date.now(), type: blob?.type});\n }\n\n const blobFile = new Blob([blob], {type: blob?.type});\n return this.blobToFile(blobFile, name);\n }\n\n private blobToFile = (blob: Blob, fileName: string) => {\n const anyBlob: any = blob;\n anyBlob.lastModifiedDate = new Date();\n anyBlob.name = fileName;\n return anyBlob as File;\n };\n\n}\n","import {FileLoader} from './file-loader.service';\nimport {Platform} from './platform.service';\nimport {Injectable} from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class Exif {\n\n constructor(private _platform: Platform,\n private _fileLoader: FileLoader) {\n }\n\n async strip(file: File, quality: number = 100) {\n // Validate we are on a browser.\n if (!this._platform.isBrowser) {\n return file;\n }\n\n // Validate the file exists and is\n // an instance of a File object.\n if (!file || !(file instanceof File)) {\n return file;\n }\n\n // Only jpeg images need correction.\n if (!['image/jpeg'].includes(file.type)) {\n return file;\n }\n\n try {\n // Read the file as an array buffer and data url.\n const arrayBuffer = await this._fileLoader.asArrayBuffer(file);\n const dataUrl = await this._fileLoader.asDataUrl(file);\n\n // Create an image element.\n const imageElement = await this.createImageElement(dataUrl);\n\n // Get the orientation by using the buffer.\n const orientation = this.getOrientation(arrayBuffer);\n\n // Transform the image to remove the orientation.\n const canvasType = this.getSupportedCanvasType(file.type);\n const imageUrl = this.transformImage(imageElement, canvasType, orientation, quality);\n\n // Validate the image url exists.\n if (!imageUrl) {\n return file;\n }\n\n // Transform the image url to a file.\n return this._fileLoader.fromDataUrl(imageUrl, file.name);\n } catch {\n // When something goes wrong we\n // just return the default file.\n return file;\n }\n }\n\n private async createImageElement(dataUrl: string) {\n return new Promise<HTMLImageElement>((resolve, reject) => {\n const image = new Image();\n image.src = dataUrl;\n image.onerror = () => reject('Error image create');\n image.onabort = () => reject('Abort image create');\n image.onload = () => resolve(image);\n });\n }\n\n private transformImage = (image: HTMLImageElement, type: string, orientation: number, quality: number = 100) => {\n // Create the canvas and context.\n const canvas = document.createElement('canvas');\n const context = canvas.getContext('2d');\n\n // Validate the context exists.\n if (!context) {\n return null;\n }\n\n // Set the canvas size based on the image.\n const {width, height} = image;\n canvas.width = width;\n canvas.height = height;\n\n // Validate the orientation is correct\n // else flip the canvas sizes.\n if (4 < orientation && orientation < 9) {\n canvas.width = height;\n canvas.height = width;\n }\n\n // Transform the context based on the orientation.\n switch (orientation) {\n case 2:\n context.transform(-1, 0, 0, 1, width, 0);\n break;\n case 3:\n context.transform(-1, 0, 0, -1, width, height);\n break;\n case 4:\n context.transform(1, 0, 0, -1, 0, height);\n break;\n case 5:\n context.transform(0, 1, 1, 0, 0, 0);\n break;\n case 6:\n context.transform(0, 1, -1, 0, height, 0);\n break;\n case 7:\n context.transform(0, -1, -1, 0, height, width);\n break;\n case 8:\n context.transform(0, -1, 1, 0, 0, width);\n break;\n default:\n break;\n }\n\n // Draw the image on the context and return the data URL.\n context.drawImage(image, 0, 0, width, height);\n return canvas.toDataURL(type, quality / 100);\n };\n\n private getSupportedCanvasType = (fileType: string) => {\n switch (fileType) {\n case 'image/jpeg':\n case 'image/jpg':\n return 'image/jpeg';\n case 'image/x-windows-bmp':\n case 'image/bmp':\n return 'image/bmp';\n default:\n return 'image/png';\n }\n };\n\n private getOrientation = (buffer: ArrayBuffer) => {\n // Create a new data view.\n const view = new DataView(buffer);\n\n if (view.getUint16(0, false) !== 0xFFD8) {\n return -2;\n }\n\n const length = view.byteLength;\n let offset = 2;\n\n while (offset < length) {\n if (view.getUint16(offset + 2, false) <= 8) {\n return -1;\n }\n\n const marker = view.getUint16(offset, false);\n offset += 2;\n\n if (marker === 0xFFE1) {\n if (view.getUint32(offset += 2, false) !== 0x45786966) {\n return -1;\n }\n\n const little = view.getUint16(offset += 6, false) === 0x4949;\n offset += view.getUint32(offset + 4, little);\n\n const tags = view.getUint16(offset, little);\n offset += 2;\n\n for (let index = 0; index < tags; index++) {\n if (view.getUint16(offset + index * 12, little) === 0x0112) {\n return view.getUint16(offset + index * 12 + 8, little);\n }\n }\n } else if ((marker & 0xFF00) !== 0xFF00) {\n break;\n } else {\n offset += view.getUint16(offset, false);\n }\n }\n\n return -1;\n };\n\n}\n","import {FileLoader} from './file-loader.service';\nimport {Platform} from './platform.service';\nimport {Injectable} from '@angular/core';\nimport {Exif} from './exif.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ImageConverter {\n\n // Data.\n private readonly _types = ['image/png', 'image/jpeg'];\n\n constructor(private _exif: Exif,\n private _platform: Platform,\n private _fileLoader: FileLoader) {\n }\n\n async toDataUri(contents: string | File | HTMLImageElement, options: { width: number, height: number } | null = null) {\n // Check if the current platform is a browser.\n if (!this._platform.isBrowser) {\n return null;\n }\n\n // Get the image.\n const image = await this.getImage(contents);\n\n // Get the canvas width and height.\n const canvasWidth = options?.width || image?.width;\n const canvasHeight = options?.height || image?.height;\n\n // Get the canvas and context.\n const canvas = document.createElement('canvas');\n const context = canvas.getContext('2d');\n\n // Validate the context exists.\n if (!context) {\n return null;\n }\n\n // Set the width and height.\n canvas.width = canvasWidth;\n canvas.height = canvasHeight;\n\n // When the canvas sizes are 0 we have failed.\n if (canvas?.width === 0 && canvas?.height === 0) {\n return null;\n }\n\n // Check if dimensions where supplied, else create the image.\n if (!options) {\n // Draw the image.\n context.drawImage(image, 0, 0);\n\n // Convert the canvas to a data url.\n return canvas.toDataURL(this._types[0]);\n }\n\n // Get the dimensions and offsets.\n const {width, height, xOffset, yOffset} = this.calculateOffsetAndDimensions(image, canvasWidth, canvasHeight);\n\n // Draw the image.\n context.drawImage(image, 0, 0, image.width, image.height, xOffset, yOffset, width, height);\n\n // Convert the canvas to a data url.\n return canvas.toDataURL(this._types[0]);\n }\n\n async fileToImage(file: File, types: string[] = this._types) {\n // Check if the file matches an image.\n if (!types.includes(file.type)) {\n throw new Error('The selected file does not meet the required format.');\n }\n\n let stripped: File | null = null;\n try {\n stripped = await this._exif.strip(file, 90);\n } catch {\n // Do nothing.\n }\n\n // Ge the data uri.\n const dataUri = await this._fileLoader.asDataUrl(stripped ?? file);\n\n // Convert the data URI to a image element.\n return await this.stringToImage(dataUri);\n }\n\n stringToImage(src: string) {\n return new Promise<HTMLImageElement>((resolve, reject) => {\n const image = new Image();\n image.src = src;\n image.onload = () => resolve(image);\n image.onerror = error => reject(error);\n });\n }\n\n private async getImage(contents: string | File | HTMLImageElement) {\n // If the contents is already an HTML image element just return it.\n if (contents instanceof HTMLImageElement) {\n return contents;\n }\n\n // If the contents is a file convert it to an HTML image element.\n if (contents instanceof File) {\n return this.fileToImage(contents);\n }\n\n // If the contents is a string convert it to an HTML image element.\n return this.stringToImage(contents);\n }\n\n private calculateOffsetAndDimensions = (image: HTMLImageElement, canvasWidth: number, canvasHeight: number) => {\n const originalWidth = image.width;\n const originalHeight = image.height;\n\n const widthRatio = canvasWidth / originalWidth;\n const heightRatio = canvasHeight / originalHeight;\n\n let width: number;\n let height: number;\n\n if (originalWidth > originalHeight) {\n height = originalHeight * heightRatio;\n width = (originalWidth / originalHeight) * height;\n } else {\n width = originalWidth * widthRatio;\n height = (originalHeight / originalWidth) * width;\n }\n\n let xOffset = 0;\n let yOffset = 0;\n\n if (canvasHeight === height) {\n xOffset = -((width - canvasWidth) / 2);\n } else if (canvasWidth === width) {\n yOffset = -((height - canvasHeight) / 2);\n }\n\n return {xOffset, yOffset, width, height};\n };\n\n}\n","import {InjectionToken} from '@angular/core';\n\nexport const ACCEPT_LANGUAGE = new InjectionToken<string>('AcceptLanguage');\n","import {ACCEPT_LANGUAGE} from '../tokens/accept-language.token';\nimport {Inject, Injectable, Optional} from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class Languages {\n\n // Data.\n private readonly _data: { code: string, script?: string, region?: string, quality: number }[] = [];\n\n constructor(@Optional() @Inject(ACCEPT_LANGUAGE) private _acceptLanguage?: string) {\n this._data = this.initialize();\n }\n\n get all() {\n return this._data;\n }\n\n private initialize() {\n // Get the languages.\n const data = this.getLanguages();\n\n // Parse all languages by using a regex.\n const strings = (data || '')\n .match(/((([a-zA-Z]+(-[a-zA-Z0-9]+){0,2})|\\*)(;q=[0-1](\\.[0-9]+)?)?)*/g);\n\n // Get the content by parsing the strings.\n const content = strings.map(item => {\n if (!item) {\n return null;\n }\n\n const bits = item.split(';');\n const ietf = bits[0].split('-');\n const hasScript = ietf.length === 3;\n\n return {\n code: ietf[0],\n script: hasScript ? ietf[1] : null,\n region: hasScript ? ietf[2] : ietf[1],\n quality: bits[1] ? parseFloat(bits[1].split('=')[1]) : 1.0\n };\n });\n\n // Filter out all the empty items\n // and sort them by the quality.\n return content\n .filter(item => !!item)\n .sort((a, b) => b.quality - a.quality);\n }\n\n private getLanguages = () => {\n // If defined we must be in a server environment.\n if (this._acceptLanguage) {\n return this._acceptLanguage;\n }\n\n // Try to get the languages from the navigator.\n if (typeof navigator !== 'object') {\n return null;\n }\n\n let t = 'anguage';\n let n = navigator;\n let f = n['l' + t + 's'];\n\n const data = f && f.length ? f : (t = n['l' + t] ||\n n['browserL' + t] ||\n n['userL' + t]) ? [t] : t;\n\n return typeof data === 'string'\n ? data\n : data.join(';');\n };\n\n}\n","import {inject, InjectionToken} from '@angular/core';\nimport {DOCUMENT} from '@angular/common';\n\nexport const WINDOW = new InjectionToken<Window>(\n 'An abstraction over global window object',\n {\n factory: () => {\n const {defaultView} = inject(DOCUMENT);\n\n if (!defaultView) {\n throw new Error('Window is not available');\n }\n\n return defaultView;\n }\n }\n);","import {inject, InjectionToken} from '@angular/core';\nimport {WINDOW} from './window.token';\n\nexport const NAVIGATOR = new InjectionToken<Navigator>(\n 'An abstraction over window.navigator object',\n {\n factory: () => inject(WINDOW).navigator\n }\n);","import {distinctUntilChanged, map, mapTo, shareReplay} from 'rxjs/operators';\nimport {Inject, Injectable, Optional} from '@angular/core';\nimport {fromEvent, merge, Observable, of} from 'rxjs';\nimport {NAVIGATOR} from '../tokens/navigator.token';\nimport {WINDOW} from '../tokens/window.token';\nimport {Platform} from './platform.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class Network {\n\n // Data.\n private _online$: Observable<boolean> = of(true);\n\n constructor(private _platform: Platform,\n @Optional() @Inject(WINDOW) private _window: any,\n @Optional() @Inject(NAVIGATOR) private _navigator: any) {\n this.getOnlineObservable();\n }\n\n online() {\n return this._online$;\n }\n\n private getOnlineObservable() {\n // Validate we are on a browser.\n if (!this._platform.isBrowser) {\n return;\n }\n\n // Get all the events from the window.\n const online$ = fromEvent(this._window, 'online').pipe(mapTo(true));\n const offline$ = fromEvent(this._window, 'offline').pipe(mapTo(false));\n const now$ = new Observable(subscriber => {\n subscriber.next(this._navigator?.onLine);\n subscriber.complete();\n });\n\n // Merge all event so we get notified when\n // a user is online/offline.\n this._online$ = merge(now$, online$, offline$).pipe(\n map(value => value as boolean),\n distinctUntilChanged(),\n shareReplay(1)\n );\n }\n\n}\n","import {Inject, Injectable, OnDestroy, Optional} from '@angular/core';\nimport {debounceTime, startWith} from 'rxjs/operators';\nimport {WINDOW} from '../tokens/window.token';\nimport {fromEvent, Subscription} from 'rxjs';\nimport {Platform} from './platform.service';\nimport {DOCUMENT} from '@angular/common';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class Patch implements OnDestroy {\n\n private _hasPatchedMobileVerticalHeight: boolean = false;\n\n // Subscriptions.\n private _subscription = new Subscription();\n\n constructor(private _platform: Platform,\n @Optional() @Inject(WINDOW) private _window: any,\n @Optional() @Inject(DOCUMENT) private _document: any) {\n }\n\n mobileVerticalHeight() {\n // Check if the user has already patched\n // the mobile vertical height.\n if (this._hasPatchedMobileVerticalHeight) {\n return;\n }\n\n this.periodicallySetDocumentVerticalProperty();\n this._hasPatchedMobileVerticalHeight = true;\n }\n\n ngOnDestroy() {\n this._subscription?.unsubscribe();\n }\n\n private periodicallySetDocumentVerticalProperty() {\n // Validate we are using a browser.\n if (!this._platform.isBrowser) {\n return;\n }\n\n // Listen to a debounced window resize event.\n const resize$ = fromEvent(this._window, 'resize').pipe(\n debounceTime(25),\n startWith(0)\n );\n\n // Subscribe to the resize observable.\n const subscription = resize$.subscribe(() => {\n const verticalHeight = this._window?.innerHeight * 0.01;\n this._document?.documentElement?.style?.setProperty('--vh', `${verticalHeight}px`);\n });\n\n // Save the subscription so we can destroy it later.\n this._subscription.add(subscription);\n }\n\n}\n","import {Inject, Injectable, Optional} from '@angular/core';\nimport {DOCUMENT} from '@angular/common';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class Clipboard {\n\n constructor(@Optional() @Inject(DOCUMENT) private _document: any) {\n }\n\n copy(text: string) {\n const pendingCopy = this.beginCopy(text);\n const successful = pendingCopy.copy();\n pendingCopy.destroy();\n\n return successful;\n }\n\n beginCopy(text: string) {\n return new ClipboardCopy(text, this._document);\n }\n\n}\n\n\nexport class ClipboardCopy {\n\n private _textarea?: HTMLTextAreaElement;\n\n constructor(private _text: string,\n private readonly _document: Document) {\n this.initialize();\n }\n\n copy() {\n const textarea = this._textarea;\n let successful = false;\n\n try {\n const currentFocus = <unknown>this._document.activeElement as HTMLOrSVGElement | null;\n\n textarea?.select?.();\n textarea?.setSelectionRange?.(0, textarea?.value?.length);\n successful = this._document?.execCommand?.('copy');\n\n currentFocus?.focus?.();\n } catch {\n // Do nothing.\n }\n\n return successful;\n }\n\n destroy() {\n this._textarea?.parentNode?.removeChild?.(this._textarea);\n this._textarea = undefined;\n }\n\n private initialize() {\n const textarea = this._textarea = this._document.createElement('textarea');\n const styles = textarea.style;\n\n // Hide the element for display and accessibility. Set a fixed position so the page layout\n // isn't affected. We use `fixed` with `top: 0`, because focus is moved into the textarea\n // for a split second and if it's off-screen, some browsers will attempt to scroll it into view.\n styles.position = 'fixed';\n styles.top = styles.opacity = '0';\n styles.left = '-999em';\n textarea.setAttribute('aria-hidden', 'true');\n textarea.value = this._text;\n this._document.body.appendChild(textarea);\n }\n\n}","export function coerceBooleanProperty(value: any): boolean {\n return value != null && `${value}` !== 'false';\n}\n","import {coerceBooleanProperty} from '../coercions/boolean-coercion';\nimport {Constructor} from './constructor';\n\nexport interface CanDisable {\n disabled: boolean;\n}\n\nexport type CanDisableConstructor = Constructor<CanDisable>;\n\nexport function mixinDisabled<T extends Constructor<{}>>(base: T): CanDisableConstructor & T {\n return class extends base {\n\n private _disable: boolean = false;\n\n get disabled() {\n return this._disable;\n }\n\n set disabled(value: any) {\n this._disable = coerceBooleanProperty(value);\n }\n\n constructor(...args: any[]) {\n super(...args);\n }\n\n };\n}\n","import {coerceBooleanProperty} from '../coercions/boolean-coercion';\nimport {Constructor} from './constructor';\n\nexport interface CanLoad {\n loading: boolean;\n}\n\nexport type CanLoadConstructor = Constructor<CanLoad>;\n\nexport function mixinLoad<T extends Constructor<{}>>(base: T): CanLoadConstructor & T {\n return class extends base {\n\n private _loading: boolean = false;\n\n get loading() {\n return this._loading;\n }\n\n set loading(value: any) {\n this._loading = coerceBooleanProperty(value);\n }\n\n constructor(...args: any[]) {\n super(...args);\n }\n\n };\n}\n","import {coerceBooleanProperty} from '../coercions/boolean-coercion';\nimport {Constructor} from './constructor';\n\nexport interface HasError {\n error: boolean;\n}\n\nexport type HasErrorConstructor = Constructor<HasError>;\n\nexport function mixinError<T extends Constructor<{}>>(base: T): HasErrorConstructor & T {\n return class extends base {\n\n private _error: boolean = false;\n\n get error() {\n return this._error;\n }\n\n set error(value: any) {\n this._error = coerceBooleanProperty(value);\n }\n\n constructor(...args: any[]) {\n super(...args);\n }\n\n };\n}\n","import {coerceBooleanProperty} from '../coercions/boolean-coercion';\nimport {Constructor} from './constructor';\n\nexport interface CanHideErrors {\n hideErrors: boolean;\n}\n\nexport type CanHideErrorsConstructor = Constructor<CanHideErrors>;\n\nexport function mixinHideErrors<T extends Constructor<{}>>(base: T): CanHideErrorsConstructor & T {\n return class extends base {\n\n private _hideErrors: boolean = false;\n\n get hideErrors() {\n return this._hideErrors;\n }\n\n set hideErrors(value: any) {\n this._hideErrors = coerceBooleanProperty(value);\n }\n\n constructor(...args: any[]) {\n super(...args);\n }\n\n };\n}\n","import {coerceBooleanProperty} from '../coercions/boolean-coercion';\nimport {Constructor} from './constructor';\n\nexport interface IsFocused {\n focused: boolean;\n}\n\nexport type IsFocusedConstructor = Constructor<IsFocused>;\n\nexport function mixinFocused<T extends Constructor<{}>>(base: T): IsFocusedConstructor & T {\n return class extends base {\n\n private _focused: boolean = false;\n\n get focused() {\n return this._focused;\n }\n\n set focused(value: any) {\n this._focused = coerceBooleanProperty(value);\n }\n\n constructor(...args: any[]) {\n super(...args);\n }\n\n };\n}\n","import {coerceBooleanProperty} from '../coercions/boolean-coercion';\nimport {Constructor} from './constructor';\n\nexport interface IsGrouped {\n grouped: boolean;\n}\n\nexport type IsGroupedConstructor = Constructor<IsGrouped>;\n\nexport function mixinGrouped<T extends Constructor<{}>>(base: T): IsGroupedConstructor & T {\n return class extends base {\n\n private _grouped: boolean = false;\n\n get grouped() {\n return this._grouped;\n }\n\n set grouped(value: any) {\n this._grouped = coerceBooleanProperty(value);\n }\n\n constructor(...args: any[]) {\n super(...args);\n }\n\n };\n}\n","import {coerceBooleanProperty} from '../coercions/boolean-coercion';\nimport {Constructor} from './constructor';\n\nexport interface IsReadonly {\n readonly: boolean;\n}\n\nexport type IsReadonlyConstructor = Constructor<IsReadonly>;\n\nexport function mixinReadonly<T extends Constructor<{}>>(base: T): IsReadonlyConstructor & T {\n return class extends base {\n\n private _readonly: boolean = false;\n\n get readonly() {\n return this._readonly;\n }\n\n set readonly(value: any) {\n this._readonly = coerceBooleanProperty(value);\n }\n\n constructor(...args: any[]) {\n super(...args);\n }\n\n };\n}\n","import {coerceBooleanProperty} from '../coercions/boolean-coercion';\nimport {Constructor} from './constructor';\n\nexport interface IsRequired {\n required: boolean;\n}\n\nexport type IsRequiredConstructor = Constructor<IsRequired>;\n\nexport function mixinRequired<T extends Constructor<{}>>(base: T): IsRequiredConstructor & T {\n return class extends base {\n\n private _required: boolean = false;\n\n get required() {\n return this._required;\n }\n\n set required(value: any) {\n this._required = coerceBooleanProperty(value);\n }\n\n constructor(...args: any[]) {\n super(...args);\n }\n\n };\n}\n","import {InjectionToken} from '@angular/core';\n\nexport const BASE_URL = new InjectionToken<string>('BaseUrl');\n","import {InjectionToken} from '@angular/core';\n\nexport const COOKIE = new InjectionToken<string>('Cookie');\n","import {inject, InjectionToken} from '@angular/core';\nimport {WINDOW} from './window.token';\n\nexport const LOCATION = new InjectionToken<Location>(\n 'An abstraction over window.location object',\n {\n factory: () => inject(WINDOW).location\n }\n);","export const BbRegex = {\n email: /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/,\n fullNumber: /^\\d*[1-9]\\d*$/\n};\n","import {AbstractControl, ValidatorFn} from '@angular/forms';\nimport {formatDate} from '@angular/common';\nimport {BbRegex} from './regex';\n\nexport class BbValidator {\n\n static email(control: AbstractControl) {\n if (isEmptyInputValue(control.value)) {\n return null;\n }\n\n return BbRegex.email.test(control.value) ? null : {email: true};\n }\n\n static fullNumber(control: AbstractControl) {\n if (isEmptyInputValue(control.value)) {\n return null;\n }\n\n return BbRegex.fullNumber.test(control.value) ? null : {fullNumber: true};\n }\n\n static maxFileSize(bytes: number) {\n const validator: ValidatorFn = (control: AbstractControl) => {\n const value = control.value;\n\n // Validate if the value is a file.\n if (!(value instanceof File)) {\n return null;\n }\n\n if (value.size <= bytes) {\n return null;\n }\n\n let maxSize = '0 Bytes';\n if (bytes !== 0) {\n const k = 1024;\n const dm = 2;\n const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\n const index = Math.floor(Math.log(bytes) / Math.log(k));\n maxSize = parseFloat((bytes / Math.pow(k, index)).toFixed(dm)) + ' ' + sizes[index];\n }\n\n return {maxFileSize: {maxSize}};\n };\n return validator;\n }\n\n static confirm(fieldName: string, error: string = 'confirm') {\n const validator: ValidatorFn = (control: AbstractControl) => {\n if (isEmptyInputValue(control.value)) {\n return null;\n }\n\n const field = control?.parent?.get(fieldName);\n\n return control?.value === field?.value\n ? null\n : {[error]: true};\n };\n return validator;\n }\n\n static maxDate(date: Date, error: string = 'maxDate') {\n const formattedDate = date.toString() !== 'Invalid Date'\n ? formatDate(date, 'yyyy-MM-dd', 'en-US')\n : null;\n\n const validator: ValidatorFn = (control: AbstractControl) => {\n if (isEmptyInputValue(control.value)) {\n return null;\n }\n\n const controlDate = new Date(control.value);\n\n return controlDate.getTime() > date.getTime()\n ? {[error]: {date: formattedDate}}\n : null;\n };\n return validator;\n }\n\n static minDate(date: Date, error: string = 'minDate') {\n const formattedDate = date.toString() !== 'Invalid Date'\n ? formatDate(date, 'yyyy-MM-dd', 'en-US')\n : null;\n\n const validator: ValidatorFn = (control: AbstractControl) => {\n if (isEmptyInputValue(control.value)) {\n return null;\n }\n\n const controlDate = new Date(control.value);\n\n return controlDate.getTime() < date.getTime()\n ? {[error]: {date: formattedDate}}\n : null;\n };\n return validator;\n }\n\n}\n\nfunction isEmptyInputValue(value: any) {\n // We don't check for string here so it also works with arrays.\n return value == null || value.length === 0;\n}\n","/*\n * Public API Surface of bb-foundation\n */\n\nexport * from './lib/core/services/platform.service';\nexport * from './lib/core/services/image-converter.service';\nexport * from './lib/core/services/file-loader.service';\nexport * from './lib/core/services/languages.service';\nexport * from './lib/core/services/network.service';\nexport * from './lib/core/services/patch.service';\nexport * from './lib/core/services/exif.service';\nexport * from './lib/core/services/clipboard.service';\n\nexport * from './lib/core/mixins/constructor';\nexport * from './lib/core/mixins/can-disable';\nexport * from './lib/core/mixins/can-load';\nexport * from './lib/core/mixins/has-error';\nexport * from './lib/core/mixins/can-hide-errors';\nexport * from './lib/core/mixins/is-focused';\nexport * from './lib/core/mixins/is-grouped';\nexport * from './lib/core/mixins/is-readonly';\nexport * from './lib/core/mixins/is-required';\n\nexport * from './lib/core/tokens/base-url.token';\nexport * from './lib/core/tokens/accept-language.token';\nexport * from './lib/core/tokens/cookie.token';\nexport * from './lib/core/tokens/window.token';\nexport * from './lib/core/tokens/navigator.token';\nexport * from './lib/core/tokens/location.token';\n\nexport * from './lib/core/coercions/boolean-coercion';\n\nexport * from './lib/core/miscellaneous/regex';\nexport * from './lib/core/miscellaneous/validator';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
package/http/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
- "main": "../bundles/bravobit-bb-foundation-http.umd.js",
3
- "module": "../fesm2015/bravobit-bb-foundation-http.js",
4
- "es2015": "../fesm2015/bravobit-bb-foundation-http.js",
5
- "esm2015": "../esm2015/http/bravobit-bb-foundation-http.js",
6
- "fesm2015": "../fesm2015/bravobit-bb-foundation-http.js",
2
+ "module": "../fesm2015/bravobit-bb-foundation-http.mjs",
3
+ "es2020": "../fesm2020/bravobit-bb-foundation-http.mjs",
4
+ "esm2020": "../esm2020/http/bravobit-bb-foundation-http.mjs",
5
+ "fesm2020": "../fesm2020/bravobit-bb-foundation-http.mjs",
6
+ "fesm2015": "../fesm2015/bravobit-bb-foundation-http.mjs",
7
7
  "typings": "bravobit-bb-foundation-http.d.ts",
8
8
  "sideEffects": false,
9
9
  "name": "@bravobit/bb-foundation/http"
@@ -1,9 +1,9 @@
1
1
  {
2
- "main": "../bundles/bravobit-bb-foundation-localize.umd.js",
3
- "module": "../fesm2015/bravobit-bb-foundation-localize.js",
4
- "es2015": "../fesm2015/bravobit-bb-foundation-localize.js",
5
- "esm2015": "../esm2015/localize/bravobit-bb-foundation-localize.js",
6
- "fesm2015": "../fesm2015/bravobit-bb-foundation-localize.js",
2
+ "module": "../fesm2015/bravobit-bb-foundation-localize.mjs",
3
+ "es2020": "../fesm2020/bravobit-bb-foundation-localize.mjs",
4
+ "esm2020": "../esm2020/localize/bravobit-bb-foundation-localize.mjs",
5
+ "fesm2020": "../fesm2020/bravobit-bb-foundation-localize.mjs",
6
+ "fesm2015": "../fesm2015/bravobit-bb-foundation-localize.mjs",
7
7
  "typings": "bravobit-bb-foundation-localize.d.ts",
8
8
  "sideEffects": false,
9
9
  "name": "@bravobit/bb-foundation/localize"
@@ -1,9 +1,9 @@
1
1
  {
2
- "main": "../bundles/bravobit-bb-foundation-notifications.umd.js",
3
- "module": "../fesm2015/bravobit-bb-foundation-notifications.js",
4
- "es2015": "../fesm2015/bravobit-bb-foundation-notifications.js",
5
- "esm2015": "../esm2015/notifications/bravobit-bb-foundation-notifications.js",
6
- "fesm2015": "../fesm2015/bravobit-bb-foundation-notifications.js",
2
+ "module": "../fesm2015/bravobit-bb-foundation-notifications.mjs",
3
+ "es2020": "../fesm2020/bravobit-bb-foundation-notifications.mjs",
4
+ "esm2020": "../esm2020/notifications/bravobit-bb-foundation-notifications.mjs",
5
+ "fesm2020": "../fesm2020/bravobit-bb-foundation-notifications.mjs",
6
+ "fesm2015": "../fesm2015/bravobit-bb-foundation-notifications.mjs",
7
7
  "typings": "bravobit-bb-foundation-notifications.d.ts",
8
8
  "sideEffects": false,
9
9
  "name": "@bravobit/bb-foundation/notifications"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bravobit/bb-foundation",
3
- "version": "0.15.4",
3
+ "version": "0.16.1",
4
4
  "description": "The Angular core foundation of the Bravobit team.",
5
5
  "author": {
6
6
  "name": "Stan van Heumen",
@@ -8,18 +8,135 @@
8
8
  "url": "https://bravobit.nl"
9
9
  },
10
10
  "peerDependencies": {
11
- "@angular/common": "^12.2.0",
12
- "@angular/core": "^12.2.0"
11
+ "@angular/common": "^13.0.0",
12
+ "@angular/core": "^13.0.0"
13
13
  },
14
14
  "dependencies": {
15
15
  "tslib": "^2.3.0",
16
16
  "@types/grecaptcha": "^3.0.3"
17
17
  },
18
- "main": "bundles/bravobit-bb-foundation.umd.js",
19
- "module": "fesm2015/bravobit-bb-foundation.js",
20
- "es2015": "fesm2015/bravobit-bb-foundation.js",
21
- "esm2015": "esm2015/bravobit-bb-foundation.js",
22
- "fesm2015": "fesm2015/bravobit-bb-foundation.js",
18
+ "module": "fesm2015/bravobit-bb-foundation.mjs",
19
+ "es2020": "fesm2020/bravobit-bb-foundation.mjs",
20
+ "esm2020": "esm2020/bravobit-bb-foundation.mjs",
21
+ "fesm2020": "fesm2020/bravobit-bb-foundation.mjs",
22
+ "fesm2015": "fesm2015/bravobit-bb-foundation.mjs",
23
23
  "typings": "bravobit-bb-foundation.d.ts",
24
+ "exports": {
25
+ "./package.json": {
26
+ "default": "./package.json"
27
+ },
28
+ ".": {
29
+ "types": "./bravobit-bb-foundation.d.ts",
30
+ "esm2020": "./esm2020/bravobit-bb-foundation.mjs",
31
+ "es2020": "./fesm2020/bravobit-bb-foundation.mjs",
32
+ "es2015": "./fesm2015/bravobit-bb-foundation.mjs",
33
+ "node": "./fesm2015/bravobit-bb-foundation.mjs",
34
+ "default": "./fesm2020/bravobit-bb-foundation.mjs"
35
+ },
36
+ "./auth": {
37
+ "types": "./auth/bravobit-bb-foundation-auth.d.ts",
38
+ "esm2020": "./esm2020/auth/bravobit-bb-foundation-auth.mjs",
39
+ "es2020": "./fesm2020/bravobit-bb-foundation-auth.mjs",
40
+ "es2015": "./fesm2015/bravobit-bb-foundation-auth.mjs",
41
+ "node": "./fesm2015/bravobit-bb-foundation-auth.mjs",
42
+ "default": "./fesm2020/bravobit-bb-foundation-auth.mjs"
43
+ },
44
+ "./collections": {
45
+ "types": "./collections/bravobit-bb-foundation-collections.d.ts",
46
+ "esm2020": "./esm2020/collections/bravobit-bb-foundation-collections.mjs",
47
+ "es2020": "./fesm2020/bravobit-bb-foundation-collections.mjs",
48
+ "es2015": "./fesm2015/bravobit-bb-foundation-collections.mjs",
49
+ "node": "./fesm2015/bravobit-bb-foundation-collections.mjs",
50
+ "default": "./fesm2020/bravobit-bb-foundation-collections.mjs"
51
+ },
52
+ "./controls": {
53
+ "types": "./controls/bravobit-bb-foundation-controls.d.ts",
54
+ "esm2020": "./esm2020/controls/bravobit-bb-foundation-controls.mjs",
55
+ "es2020": "./fesm2020/bravobit-bb-foundation-controls.mjs",
56
+ "es2015": "./fesm2015/bravobit-bb-foundation-controls.mjs",
57
+ "node": "./fesm2015/bravobit-bb-foundation-controls.mjs",
58
+ "default": "./fesm2020/bravobit-bb-foundation-controls.mjs"
59
+ },
60
+ "./dashboard": {
61
+ "types": "./dashboard/bravobit-bb-foundation-dashboard.d.ts",
62
+ "esm2020": "./esm2020/dashboard/bravobit-bb-foundation-dashboard.mjs",
63
+ "es2020": "./fesm2020/bravobit-bb-foundation-dashboard.mjs",
64
+ "es2015": "./fesm2015/bravobit-bb-foundation-dashboard.mjs",
65
+ "node": "./fesm2015/bravobit-bb-foundation-dashboard.mjs",
66
+ "default": "./fesm2020/bravobit-bb-foundation-dashboard.mjs"
67
+ },
68
+ "./dialog": {
69
+ "types": "./dialog/bravobit-bb-foundation-dialog.d.ts",
70
+ "esm2020": "./esm2020/dialog/bravobit-bb-foundation-dialog.mjs",
71
+ "es2020": "./fesm2020/bravobit-bb-foundation-dialog.mjs",
72
+ "es2015": "./fesm2015/bravobit-bb-foundation-dialog.mjs",
73
+ "node": "./fesm2015/bravobit-bb-foundation-dialog.mjs",
74
+ "default": "./fesm2020/bravobit-bb-foundation-dialog.mjs"
75
+ },
76
+ "./elements": {
77
+ "types": "./elements/bravobit-bb-foundation-elements.d.ts",
78
+ "esm2020": "./esm2020/elements/bravobit-bb-foundation-elements.mjs",
79
+ "es2020": "./fesm2020/bravobit-bb-foundation-elements.mjs",
80
+ "es2015": "./fesm2015/bravobit-bb-foundation-elements.mjs",
81
+ "node": "./fesm2015/bravobit-bb-foundation-elements.mjs",
82
+ "default": "./fesm2020/bravobit-bb-foundation-elements.mjs"
83
+ },
84
+ "./http": {
85
+ "types": "./http/bravobit-bb-foundation-http.d.ts",
86
+ "esm2020": "./esm2020/http/bravobit-bb-foundation-http.mjs",
87
+ "es2020": "./fesm2020/bravobit-bb-foundation-http.mjs",
88
+ "es2015": "./fesm2015/bravobit-bb-foundation-http.mjs",
89
+ "node": "./fesm2015/bravobit-bb-foundation-http.mjs",
90
+ "default": "./fesm2020/bravobit-bb-foundation-http.mjs"
91
+ },
92
+ "./localize": {
93
+ "types": "./localize/bravobit-bb-foundation-localize.d.ts",
94
+ "esm2020": "./esm2020/localize/bravobit-bb-foundation-localize.mjs",
95
+ "es2020": "./fesm2020/bravobit-bb-foundation-localize.mjs",
96
+ "es2015": "./fesm2015/bravobit-bb-foundation-localize.mjs",
97
+ "node": "./fesm2015/bravobit-bb-foundation-localize.mjs",
98
+ "default": "./fesm2020/bravobit-bb-foundation-localize.mjs"
99
+ },
100
+ "./notifications": {
101
+ "types": "./notifications/bravobit-bb-foundation-notifications.d.ts",
102
+ "esm2020": "./esm2020/notifications/bravobit-bb-foundation-notifications.mjs",
103
+ "es2020": "./fesm2020/bravobit-bb-foundation-notifications.mjs",
104
+ "es2015": "./fesm2015/bravobit-bb-foundation-notifications.mjs",
105
+ "node": "./fesm2015/bravobit-bb-foundation-notifications.mjs",
106
+ "default": "./fesm2020/bravobit-bb-foundation-notifications.mjs"
107
+ },
108
+ "./recaptcha": {
109
+ "types": "./recaptcha/bravobit-bb-foundation-recaptcha.d.ts",
110
+ "esm2020": "./esm2020/recaptcha/bravobit-bb-foundation-recaptcha.mjs",
111
+ "es2020": "./fesm2020/bravobit-bb-foundation-recaptcha.mjs",
112
+ "es2015": "./fesm2015/bravobit-bb-foundation-recaptcha.mjs",
113
+ "node": "./fesm2015/bravobit-bb-foundation-recaptcha.mjs",
114
+ "default": "./fesm2020/bravobit-bb-foundation-recaptcha.mjs"
115
+ },
116
+ "./rxjs": {
117
+ "types": "./rxjs/bravobit-bb-foundation-rxjs.d.ts",
118
+ "esm2020": "./esm2020/rxjs/bravobit-bb-foundation-rxjs.mjs",
119
+ "es2020": "./fesm2020/bravobit-bb-foundation-rxjs.mjs",
120
+ "es2015": "./fesm2015/bravobit-bb-foundation-rxjs.mjs",
121
+ "node": "./fesm2015/bravobit-bb-foundation-rxjs.mjs",
122
+ "default": "./fesm2020/bravobit-bb-foundation-rxjs.mjs"
123
+ },
124
+ "./storage": {
125
+ "types": "./storage/bravobit-bb-foundation-storage.d.ts",
126
+ "esm2020": "./esm2020/storage/bravobit-bb-foundation-storage.mjs",
127
+ "es2020": "./fesm2020/bravobit-bb-foundation-storage.mjs",
128
+ "es2015": "./fesm2015/bravobit-bb-foundation-storage.mjs",
129
+ "node": "./fesm2015/bravobit-bb-foundation-storage.mjs",
130
+ "default": "./fesm2020/bravobit-bb-foundation-storage.mjs"
131
+ },
132
+ "./table": {
133
+ "types": "./table/bravobit-bb-foundation-table.d.ts",
134
+ "esm2020": "./esm2020/table/bravobit-bb-foundation-table.mjs",
135
+ "es2020": "./fesm2020/bravobit-bb-foundation-table.mjs",
136
+ "es2015": "./fesm2015/bravobit-bb-foundation-table.mjs",
137
+ "node": "./fesm2015/bravobit-bb-foundation-table.mjs",
138
+ "default": "./fesm2020/bravobit-bb-foundation-table.mjs"
139
+ }
140
+ },
24
141
  "sideEffects": false
25
142
  }
@@ -1,9 +1,9 @@
1
1
  {
2
- "main": "../bundles/bravobit-bb-foundation-recaptcha.umd.js",
3
- "module": "../fesm2015/bravobit-bb-foundation-recaptcha.js",
4
- "es2015": "../fesm2015/bravobit-bb-foundation-recaptcha.js",
5
- "esm2015": "../esm2015/recaptcha/bravobit-bb-foundation-recaptcha.js",
6
- "fesm2015": "../fesm2015/bravobit-bb-foundation-recaptcha.js",
2
+ "module": "../fesm2015/bravobit-bb-foundation-recaptcha.mjs",
3
+ "es2020": "../fesm2020/bravobit-bb-foundation-recaptcha.mjs",
4
+ "esm2020": "../esm2020/recaptcha/bravobit-bb-foundation-recaptcha.mjs",
5
+ "fesm2020": "../fesm2020/bravobit-bb-foundation-recaptcha.mjs",
6
+ "fesm2015": "../fesm2015/bravobit-bb-foundation-recaptcha.mjs",
7
7
  "typings": "bravobit-bb-foundation-recaptcha.d.ts",
8
8
  "sideEffects": false,
9
9
  "name": "@bravobit/bb-foundation/recaptcha"
package/rxjs/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
- "main": "../bundles/bravobit-bb-foundation-rxjs.umd.js",
3
- "module": "../fesm2015/bravobit-bb-foundation-rxjs.js",
4
- "es2015": "../fesm2015/bravobit-bb-foundation-rxjs.js",
5
- "esm2015": "../esm2015/rxjs/bravobit-bb-foundation-rxjs.js",
6
- "fesm2015": "../fesm2015/bravobit-bb-foundation-rxjs.js",
2
+ "module": "../fesm2015/bravobit-bb-foundation-rxjs.mjs",
3
+ "es2020": "../fesm2020/bravobit-bb-foundation-rxjs.mjs",
4
+ "esm2020": "../esm2020/rxjs/bravobit-bb-foundation-rxjs.mjs",
5
+ "fesm2020": "../fesm2020/bravobit-bb-foundation-rxjs.mjs",
6
+ "fesm2015": "../fesm2015/bravobit-bb-foundation-rxjs.mjs",
7
7
  "typings": "bravobit-bb-foundation-rxjs.d.ts",
8
8
  "sideEffects": false,
9
9
  "name": "@bravobit/bb-foundation/rxjs"
@@ -1,9 +1,9 @@
1
1
  {
2
- "main": "../bundles/bravobit-bb-foundation-storage.umd.js",
3
- "module": "../fesm2015/bravobit-bb-foundation-storage.js",
4
- "es2015": "../fesm2015/bravobit-bb-foundation-storage.js",
5
- "esm2015": "../esm2015/storage/bravobit-bb-foundation-storage.js",
6
- "fesm2015": "../fesm2015/bravobit-bb-foundation-storage.js",
2
+ "module": "../fesm2015/bravobit-bb-foundation-storage.mjs",
3
+ "es2020": "../fesm2020/bravobit-bb-foundation-storage.mjs",
4
+ "esm2020": "../esm2020/storage/bravobit-bb-foundation-storage.mjs",
5
+ "fesm2020": "../fesm2020/bravobit-bb-foundation-storage.mjs",
6
+ "fesm2015": "../fesm2015/bravobit-bb-foundation-storage.mjs",
7
7
  "typings": "bravobit-bb-foundation-storage.d.ts",
8
8
  "sideEffects": false,
9
9
  "name": "@bravobit/bb-foundation/storage"
@@ -35,13 +35,16 @@ export declare class BbTable implements OnInit, OnDestroy {
35
35
  isLoading$: Observable<boolean>;
36
36
  form: FormGroup;
37
37
  queryControl: FormControl;
38
+ private _headerCount;
38
39
  private _subscription;
39
40
  ngOnInit(): void;
40
41
  ngOnDestroy(): void;
42
+ get headerCount(): number;
41
43
  get sortControl(): FormGroup;
42
44
  get pageNumberControl(): FormControl;
43
45
  get pageSizeControl(): FormControl;
44
46
  refresh(): void;
47
+ setHeaderCount(amount: -1 | 1): void;
45
48
  private updateSizes;
46
49
  private composeForm;
47
50
  private watchDataChanges;
@@ -1,9 +1,9 @@
1
1
  {
2
- "main": "../bundles/bravobit-bb-foundation-table.umd.js",
3
- "module": "../fesm2015/bravobit-bb-foundation-table.js",
4
- "es2015": "../fesm2015/bravobit-bb-foundation-table.js",
5
- "esm2015": "../esm2015/table/bravobit-bb-foundation-table.js",
6
- "fesm2015": "../fesm2015/bravobit-bb-foundation-table.js",
2
+ "module": "../fesm2015/bravobit-bb-foundation-table.mjs",
3
+ "es2020": "../fesm2020/bravobit-bb-foundation-table.mjs",
4
+ "esm2020": "../esm2020/table/bravobit-bb-foundation-table.mjs",
5
+ "fesm2020": "../fesm2020/bravobit-bb-foundation-table.mjs",
6
+ "fesm2015": "../fesm2015/bravobit-bb-foundation-table.mjs",
7
7
  "typings": "bravobit-bb-foundation-table.d.ts",
8
8
  "sideEffects": false,
9
9
  "name": "@bravobit/bb-foundation/table"