@bravobit/bb-foundation 0.21.4 → 0.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (268) hide show
  1. package/auth/lib/auth.interceptor.d.ts +1 -1
  2. package/auth/lib/auth.module.d.ts +4 -5
  3. package/auth/lib/auth.service.d.ts +4 -7
  4. package/auth/lib/directives/abstract.directive.d.ts +12 -0
  5. package/auth/lib/directives/authenticated.directive.d.ts +7 -4
  6. package/auth/lib/directives/permission.directive.d.ts +11 -11
  7. package/auth/lib/guards/anonymous.guard.d.ts +8 -5
  8. package/auth/lib/guards/authenticated.guard.d.ts +8 -5
  9. package/auth/lib/guards/permission.guard.d.ts +15 -0
  10. package/auth/lib/interfaces/config.interface.d.ts +14 -8
  11. package/auth/lib/interfaces/permission.interface.d.ts +6 -0
  12. package/auth/lib/interfaces/provider.interface.d.ts +10 -3
  13. package/auth/lib/permissions/permissions.handler.d.ts +9 -0
  14. package/auth/lib/permissions/permissions.service.d.ts +16 -0
  15. package/auth/lib/providers/email.provider.d.ts +2 -8
  16. package/auth/lib/providers/verify.provider.d.ts +2 -6
  17. package/auth/public_api.d.ts +4 -4
  18. package/controls/lib/checkbox/checkbox/checkbox.component.d.ts +5 -1
  19. package/controls/lib/control-error/control-error/control-error.animation.d.ts +1 -0
  20. package/controls/lib/control-error/control-error/control-error.component.d.ts +17 -0
  21. package/controls/lib/control-error/control-error-submit.directive.d.ts +15 -0
  22. package/controls/lib/control-error/control-error.defaults.d.ts +2 -0
  23. package/controls/lib/control-error/control-error.interface.d.ts +12 -0
  24. package/controls/lib/control-error/control-error.module.d.ts +9 -0
  25. package/controls/lib/controls.interfaces.d.ts +4 -0
  26. package/controls/lib/controls.module.d.ts +7 -2
  27. package/controls/lib/form-control/form-control/form-control.component.d.ts +31 -0
  28. package/controls/lib/form-control/form-control-addon/form-control-addon.component.d.ts +6 -0
  29. package/controls/lib/form-control/form-control-input.directive.d.ts +35 -0
  30. package/controls/lib/form-control/form-control.module.d.ts +11 -0
  31. package/controls/public_api.d.ts +9 -0
  32. package/dashboard/lib/dashboard/dashboard.component.d.ts +2 -1
  33. package/dialog/lib/dialog-confirm/dialog-confirm.component.d.ts +10 -5
  34. package/dialog/lib/dialog-container/dialog-container.animations.d.ts +1 -0
  35. package/dialog/lib/dialog-container/dialog-container.component.d.ts +5 -7
  36. package/dialog/lib/dialog-header/dialog-header.component.d.ts +1 -3
  37. package/dialog/lib/dialog-modal/dialog-modal.component.d.ts +7 -3
  38. package/dialog/lib/dialog-overlay/dialog-overlay.animations.d.ts +1 -0
  39. package/dialog/lib/dialog-overlay/dialog-overlay.component.d.ts +5 -7
  40. package/dialog/lib/dialog.service.d.ts +4 -3
  41. package/elements/lib/directives/focus-trap.directive.d.ts +1 -1
  42. package/elements/lib/directives/focus.directive.d.ts +1 -3
  43. package/elements/lib/directives/form-submitter.directive.d.ts +9 -0
  44. package/elements/lib/elements.module.d.ts +25 -24
  45. package/elements/lib/form-error/form-error.component.d.ts +9 -5
  46. package/elements/lib/pipes/file-image.pipe.d.ts +2 -1
  47. package/elements/public_api.d.ts +1 -0
  48. package/esm2020/auth/lib/auth.interceptor.mjs +9 -12
  49. package/esm2020/auth/lib/auth.module.mjs +7 -17
  50. package/esm2020/auth/lib/auth.service.mjs +29 -55
  51. package/esm2020/auth/lib/directives/abstract.directive.mjs +40 -0
  52. package/esm2020/auth/lib/directives/authenticated.directive.mjs +25 -14
  53. package/esm2020/auth/lib/directives/permission.directive.mjs +24 -46
  54. package/esm2020/auth/lib/guards/anonymous.guard.mjs +28 -19
  55. package/esm2020/auth/lib/guards/authenticated.guard.mjs +31 -20
  56. package/esm2020/auth/lib/guards/permission.guard.mjs +53 -0
  57. package/esm2020/auth/lib/helpers/jwt.helper.mjs +7 -7
  58. package/esm2020/auth/lib/interfaces/config.interface.mjs +1 -1
  59. package/esm2020/auth/lib/interfaces/permission.interface.mjs +2 -0
  60. package/esm2020/auth/lib/interfaces/provider.interface.mjs +1 -1
  61. package/esm2020/auth/lib/permissions/permissions.handler.mjs +33 -0
  62. package/esm2020/auth/lib/permissions/permissions.service.mjs +64 -0
  63. package/esm2020/auth/lib/providers/email.provider.mjs +8 -9
  64. package/esm2020/auth/lib/providers/verify.provider.mjs +8 -5
  65. package/esm2020/auth/public_api.mjs +5 -5
  66. package/esm2020/collections/lib/collections.module.mjs +4 -4
  67. package/esm2020/collections/lib/components/collections-pager/collections-pager.component.mjs +3 -3
  68. package/esm2020/collections/lib/components/collections-viewer/collections-viewer.component.mjs +3 -3
  69. package/esm2020/collections/lib/components/collections.directive.mjs +12 -12
  70. package/esm2020/controls/lib/checkbox/checkbox/checkbox.component.mjs +19 -6
  71. package/esm2020/controls/lib/checkbox/checkbox-group/checkbox-group.component.mjs +4 -4
  72. package/esm2020/controls/lib/checkbox/checkbox.module.mjs +4 -4
  73. package/esm2020/controls/lib/control-error/control-error/control-error.animation.mjs +14 -0
  74. package/esm2020/controls/lib/control-error/control-error/control-error.component.mjs +63 -0
  75. package/esm2020/controls/lib/control-error/control-error-submit.directive.mjs +47 -0
  76. package/esm2020/controls/lib/control-error/control-error.defaults.mjs +26 -0
  77. package/esm2020/controls/lib/control-error/control-error.interface.mjs +3 -0
  78. package/esm2020/controls/lib/control-error/control-error.module.mjs +19 -0
  79. package/esm2020/controls/lib/controls.interfaces.mjs +2 -0
  80. package/esm2020/controls/lib/controls.module.mjs +45 -8
  81. package/esm2020/controls/lib/form-control/form-control/form-control.component.mjs +94 -0
  82. package/esm2020/controls/lib/form-control/form-control-addon/form-control-addon.component.mjs +22 -0
  83. package/esm2020/controls/lib/form-control/form-control-input.directive.mjs +124 -0
  84. package/esm2020/controls/lib/form-control/form-control.module.mjs +33 -0
  85. package/esm2020/controls/public_api.mjs +10 -1
  86. package/esm2020/dashboard/lib/dashboard/dashboard.component.mjs +7 -6
  87. package/esm2020/dashboard/lib/dashboard-header/dashboard-header.component.mjs +3 -3
  88. package/esm2020/dashboard/lib/dashboard-menu/dashboard-menu.component.mjs +3 -3
  89. package/esm2020/dashboard/lib/dashboard-menu-item/dashboard-menu-item.component.mjs +3 -3
  90. package/esm2020/dashboard/lib/dashboard-sidebar/dashboard-sidebar.component.mjs +3 -3
  91. package/esm2020/dashboard/lib/dashboard-sidebar-group/dashboard-sidebar-group.component.mjs +3 -3
  92. package/esm2020/dashboard/lib/dashboard-sidebar-item/dashboard-sidebar-item.component.mjs +3 -3
  93. package/esm2020/dashboard/lib/dashboard.module.mjs +4 -4
  94. package/esm2020/dialog/lib/dialog-actions/dialog-actions.component.mjs +3 -3
  95. package/esm2020/dialog/lib/dialog-confirm/dialog-confirm.component.mjs +17 -11
  96. package/esm2020/dialog/lib/dialog-container/dialog-container.animations.mjs +29 -0
  97. package/esm2020/dialog/lib/dialog-container/dialog-container.component.mjs +28 -104
  98. package/esm2020/dialog/lib/dialog-header/dialog-header.component.mjs +7 -14
  99. package/esm2020/dialog/lib/dialog-link/dialog-link.component.mjs +4 -4
  100. package/esm2020/dialog/lib/dialog-modal/dialog-modal.component.mjs +29 -8
  101. package/esm2020/dialog/lib/dialog-overlay/dialog-overlay.animations.mjs +26 -0
  102. package/esm2020/dialog/lib/dialog-overlay/dialog-overlay.component.mjs +29 -84
  103. package/esm2020/dialog/lib/dialog.insertion.mjs +3 -3
  104. package/esm2020/dialog/lib/dialog.module.mjs +4 -4
  105. package/esm2020/dialog/lib/dialog.service.mjs +8 -7
  106. package/esm2020/elements/lib/avatar/avatar.component.mjs +8 -6
  107. package/esm2020/elements/lib/button/button.component.mjs +6 -6
  108. package/esm2020/elements/lib/checkbox/checkbox.component.mjs +3 -3
  109. package/esm2020/elements/lib/date-picker/date-picker.component.mjs +3 -3
  110. package/esm2020/elements/lib/directives/addon.directive.mjs +6 -6
  111. package/esm2020/elements/lib/directives/autosize.directive.mjs +3 -3
  112. package/esm2020/elements/lib/directives/focus-trap.directive.mjs +5 -5
  113. package/esm2020/elements/lib/directives/focus.directive.mjs +7 -9
  114. package/esm2020/elements/lib/directives/form-submit.directive.mjs +3 -3
  115. package/esm2020/elements/lib/directives/form-submitter.directive.mjs +25 -0
  116. package/esm2020/elements/lib/directives/input.directive.mjs +6 -6
  117. package/esm2020/elements/lib/directives/template.directive.mjs +3 -3
  118. package/esm2020/elements/lib/dropdown/dropdown.component.mjs +6 -6
  119. package/esm2020/elements/lib/elements.module.mjs +9 -5
  120. package/esm2020/elements/lib/file-picker/file-picker.component.mjs +3 -3
  121. package/esm2020/elements/lib/form-control/form-control.component.mjs +3 -3
  122. package/esm2020/elements/lib/form-error/form-error.component.mjs +22 -7
  123. package/esm2020/elements/lib/form-group/form-group.component.mjs +3 -3
  124. package/esm2020/elements/lib/icon/icon.component.mjs +3 -3
  125. package/esm2020/elements/lib/image-picker/image-picker.component.mjs +3 -3
  126. package/esm2020/elements/lib/pipes/file-image.pipe.mjs +8 -7
  127. package/esm2020/elements/lib/pipes/file-size.pipe.mjs +3 -3
  128. package/esm2020/elements/lib/pipes/relative-time.pipe.mjs +3 -3
  129. package/esm2020/elements/lib/spinner/spinner.component.mjs +3 -3
  130. package/esm2020/elements/lib/tag/tag.component.mjs +3 -3
  131. package/esm2020/elements/public_api.mjs +2 -1
  132. package/esm2020/http/lib/http.module.mjs +4 -4
  133. package/esm2020/http/lib/interceptors/base-url.interceptor.mjs +3 -3
  134. package/esm2020/http/lib/interceptors/error.interceptor.mjs +3 -3
  135. package/esm2020/lib/core/services/clipboard.service.mjs +5 -5
  136. package/esm2020/lib/core/services/exif.service.mjs +5 -5
  137. package/esm2020/lib/core/services/file-loader.service.mjs +3 -3
  138. package/esm2020/lib/core/services/image-converter.service.mjs +5 -5
  139. package/esm2020/lib/core/services/languages.service.mjs +3 -3
  140. package/esm2020/lib/core/services/network.service.mjs +7 -7
  141. package/esm2020/lib/core/services/patch.service.mjs +7 -7
  142. package/esm2020/localize/lib/localize.module.mjs +4 -4
  143. package/esm2020/localize/lib/localize.pipe.mjs +3 -3
  144. package/esm2020/localize/lib/localize.service.mjs +5 -5
  145. package/esm2020/localize/lib/views/localize-string/localize-string.component.mjs +3 -3
  146. package/esm2020/localize/lib/views/localize-template-or-string.directive.mjs +3 -3
  147. package/esm2020/localize/lib/views/localize-template.directive.mjs +3 -3
  148. package/esm2020/masking/lib/directives/currency-mask.directive.mjs +3 -3
  149. package/esm2020/masking/lib/directives/date-mask.directive.mjs +3 -3
  150. package/esm2020/masking/lib/directives/input-mask.directive.mjs +7 -7
  151. package/esm2020/masking/lib/masking.module.mjs +4 -4
  152. package/esm2020/masking/lib/masking.service.mjs +3 -3
  153. package/esm2020/notifications/lib/notifications-item/notifications-item.component.mjs +5 -5
  154. package/esm2020/notifications/lib/notifications-list/notifications-list.component.mjs +7 -7
  155. package/esm2020/notifications/lib/notifications.module.mjs +4 -4
  156. package/esm2020/notifications/lib/notifications.service.mjs +5 -5
  157. package/esm2020/public_api.mjs +1 -2
  158. package/esm2020/recaptcha/lib/recaptcha/recaptcha.component.mjs +3 -3
  159. package/esm2020/recaptcha/lib/recaptcha-loader.service.mjs +10 -10
  160. package/esm2020/recaptcha/lib/recaptcha.module.mjs +4 -4
  161. package/esm2020/storage/lib/storage.service.mjs +5 -5
  162. package/esm2020/table/lib/components/table/table.component.mjs +9 -9
  163. package/esm2020/table/lib/components/table-cell/table-cell.component.mjs +3 -3
  164. package/esm2020/table/lib/components/table-header-cell/table-header-cell.component.mjs +3 -3
  165. package/esm2020/table/lib/components/table-pager/table-pager.component.mjs +3 -3
  166. package/esm2020/table/lib/table.module.mjs +4 -4
  167. package/esm2020/theming/lib/themes/checkbox-group.theme.mjs +17 -2
  168. package/esm2020/theming/lib/themes/checkbox.theme.mjs +35 -2
  169. package/esm2020/theming/lib/themes/control-error.theme.mjs +11 -0
  170. package/esm2020/theming/lib/themes/form-control-addon.theme.mjs +6 -0
  171. package/esm2020/theming/lib/themes/form-control.theme.mjs +45 -0
  172. package/esm2020/theming/lib/theming.data.mjs +82 -0
  173. package/esm2020/theming/lib/theming.directive.mjs +38 -0
  174. package/esm2020/theming/lib/theming.interface.mjs +2 -3
  175. package/esm2020/theming/lib/theming.module.mjs +12 -34
  176. package/esm2020/theming/lib/utils/theming.variable.mjs +41 -0
  177. package/esm2020/theming/public_api.mjs +6 -3
  178. package/fesm2015/bravobit-bb-foundation-auth.mjs +326 -284
  179. package/fesm2015/bravobit-bb-foundation-auth.mjs.map +1 -1
  180. package/fesm2015/bravobit-bb-foundation-collections.mjs +22 -22
  181. package/fesm2015/bravobit-bb-foundation-controls.mjs +493 -24
  182. package/fesm2015/bravobit-bb-foundation-controls.mjs.map +1 -1
  183. package/fesm2015/bravobit-bb-foundation-dashboard.mjs +29 -28
  184. package/fesm2015/bravobit-bb-foundation-dashboard.mjs.map +1 -1
  185. package/fesm2015/bravobit-bb-foundation-dialog.mjs +185 -233
  186. package/fesm2015/bravobit-bb-foundation-dialog.mjs.map +1 -1
  187. package/fesm2015/bravobit-bb-foundation-elements.mjs +140 -99
  188. package/fesm2015/bravobit-bb-foundation-elements.mjs.map +1 -1
  189. package/fesm2015/bravobit-bb-foundation-http.mjs +10 -10
  190. package/fesm2015/bravobit-bb-foundation-localize.mjs +20 -20
  191. package/fesm2015/bravobit-bb-foundation-localize.mjs.map +1 -1
  192. package/fesm2015/bravobit-bb-foundation-masking.mjs +20 -19
  193. package/fesm2015/bravobit-bb-foundation-masking.mjs.map +1 -1
  194. package/fesm2015/bravobit-bb-foundation-notifications.mjs +18 -17
  195. package/fesm2015/bravobit-bb-foundation-notifications.mjs.map +1 -1
  196. package/fesm2015/bravobit-bb-foundation-recaptcha.mjs +16 -16
  197. package/fesm2015/bravobit-bb-foundation-recaptcha.mjs.map +1 -1
  198. package/fesm2015/bravobit-bb-foundation-storage.mjs +4 -4
  199. package/fesm2015/bravobit-bb-foundation-storage.mjs.map +1 -1
  200. package/fesm2015/bravobit-bb-foundation-table.mjs +22 -22
  201. package/fesm2015/bravobit-bb-foundation-theming.mjs +251 -128
  202. package/fesm2015/bravobit-bb-foundation-theming.mjs.map +1 -1
  203. package/fesm2015/bravobit-bb-foundation.mjs +33 -73
  204. package/fesm2015/bravobit-bb-foundation.mjs.map +1 -1
  205. package/fesm2020/bravobit-bb-foundation-auth.mjs +306 -277
  206. package/fesm2020/bravobit-bb-foundation-auth.mjs.map +1 -1
  207. package/fesm2020/bravobit-bb-foundation-collections.mjs +22 -22
  208. package/fesm2020/bravobit-bb-foundation-controls.mjs +477 -24
  209. package/fesm2020/bravobit-bb-foundation-controls.mjs.map +1 -1
  210. package/fesm2020/bravobit-bb-foundation-dashboard.mjs +29 -28
  211. package/fesm2020/bravobit-bb-foundation-dashboard.mjs.map +1 -1
  212. package/fesm2020/bravobit-bb-foundation-dialog.mjs +175 -233
  213. package/fesm2020/bravobit-bb-foundation-dialog.mjs.map +1 -1
  214. package/fesm2020/bravobit-bb-foundation-elements.mjs +140 -99
  215. package/fesm2020/bravobit-bb-foundation-elements.mjs.map +1 -1
  216. package/fesm2020/bravobit-bb-foundation-http.mjs +10 -10
  217. package/fesm2020/bravobit-bb-foundation-localize.mjs +20 -20
  218. package/fesm2020/bravobit-bb-foundation-localize.mjs.map +1 -1
  219. package/fesm2020/bravobit-bb-foundation-masking.mjs +19 -19
  220. package/fesm2020/bravobit-bb-foundation-masking.mjs.map +1 -1
  221. package/fesm2020/bravobit-bb-foundation-notifications.mjs +17 -17
  222. package/fesm2020/bravobit-bb-foundation-notifications.mjs.map +1 -1
  223. package/fesm2020/bravobit-bb-foundation-recaptcha.mjs +16 -16
  224. package/fesm2020/bravobit-bb-foundation-recaptcha.mjs.map +1 -1
  225. package/fesm2020/bravobit-bb-foundation-storage.mjs +4 -4
  226. package/fesm2020/bravobit-bb-foundation-storage.mjs.map +1 -1
  227. package/fesm2020/bravobit-bb-foundation-table.mjs +22 -22
  228. package/fesm2020/bravobit-bb-foundation-theming.mjs +252 -120
  229. package/fesm2020/bravobit-bb-foundation-theming.mjs.map +1 -1
  230. package/fesm2020/bravobit-bb-foundation.mjs +32 -70
  231. package/fesm2020/bravobit-bb-foundation.mjs.map +1 -1
  232. package/lib/core/services/clipboard.service.d.ts +2 -2
  233. package/lib/core/services/exif.service.d.ts +1 -1
  234. package/lib/core/services/image-converter.service.d.ts +1 -1
  235. package/lib/core/services/network.service.d.ts +4 -4
  236. package/lib/core/services/patch.service.d.ts +4 -4
  237. package/localize/lib/localize.service.d.ts +1 -1
  238. package/notifications/lib/notifications-item/notifications-item.component.d.ts +1 -1
  239. package/notifications/lib/notifications.service.d.ts +1 -1
  240. package/package.json +4 -4
  241. package/public_api.d.ts +0 -1
  242. package/recaptcha/lib/recaptcha-loader.service.d.ts +3 -3
  243. package/storage/lib/storage.service.d.ts +1 -1
  244. package/theming/lib/themes/checkbox-group.theme.d.ts +14 -3
  245. package/theming/lib/themes/checkbox.theme.d.ts +30 -17
  246. package/theming/lib/themes/control-error.theme.d.ts +9 -0
  247. package/theming/lib/themes/form-control-addon.theme.d.ts +5 -0
  248. package/theming/lib/themes/form-control.theme.d.ts +32 -0
  249. package/theming/lib/theming.data.d.ts +17 -0
  250. package/theming/lib/theming.directive.d.ts +13 -0
  251. package/theming/lib/theming.interface.d.ts +19 -8
  252. package/theming/lib/theming.module.d.ts +3 -9
  253. package/theming/lib/utils/theming.variable.d.ts +16 -0
  254. package/theming/public_api.d.ts +5 -2
  255. package/auth/lib/directives/role.directive.d.ts +0 -16
  256. package/auth/lib/helpers/mapper.helper.d.ts +0 -23
  257. package/auth/lib/interfaces/mapper.interface.d.ts +0 -19
  258. package/auth/lib/permissions.service.d.ts +0 -14
  259. package/esm2020/auth/lib/directives/role.directive.mjs +0 -37
  260. package/esm2020/auth/lib/helpers/mapper.helper.mjs +0 -35
  261. package/esm2020/auth/lib/interfaces/mapper.interface.mjs +0 -2
  262. package/esm2020/auth/lib/permissions.service.mjs +0 -56
  263. package/esm2020/lib/core/services/platform.service.mjs +0 -42
  264. package/esm2020/theming/lib/themes/theme.mjs +0 -34
  265. package/esm2020/theming/lib/theming.service.mjs +0 -77
  266. package/lib/core/services/platform.service.d.ts +0 -18
  267. package/theming/lib/themes/theme.d.ts +0 -12
  268. package/theming/lib/theming.service.d.ts +0 -22
@@ -1,7 +1,7 @@
1
1
  import { ApplicationRef, ComponentFactoryResolver, Injector, TemplateRef } from '@angular/core';
2
2
  import { Notification, NotificationAction, NotificationsConfig } from './notifications.interfaces';
3
3
  import { Localize } from '@bravobit/bb-foundation/localize';
4
- import { Platform } from '@bravobit/bb-foundation';
4
+ import { Platform } from '@angular/cdk/platform';
5
5
  import * as i0 from "@angular/core";
6
6
  export declare class Notifications {
7
7
  private _injector;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bravobit/bb-foundation",
3
- "version": "0.21.4",
3
+ "version": "0.22.0",
4
4
  "description": "The Angular core foundation of the Bravobit team.",
5
5
  "author": {
6
6
  "name": "Stan van Heumen",
@@ -8,9 +8,9 @@
8
8
  "url": "https://bravobit.nl"
9
9
  },
10
10
  "peerDependencies": {
11
- "@angular/common": "^14.0.0",
12
- "@angular/core": "^14.0.0",
13
- "@angular/cdk": "^14.0.0"
11
+ "@angular/common": "^14.1.0",
12
+ "@angular/core": "^14.1.0",
13
+ "@angular/cdk": "^14.1.0"
14
14
  },
15
15
  "dependencies": {
16
16
  "tslib": "^2.4.0",
package/public_api.d.ts CHANGED
@@ -1,4 +1,3 @@
1
- export * from './lib/core/services/platform.service';
2
1
  export * from './lib/core/services/image-converter.service';
3
2
  export * from './lib/core/services/file-loader.service';
4
3
  export * from './lib/core/services/languages.service';
@@ -1,19 +1,19 @@
1
1
  /// <reference types="grecaptcha" />
2
2
  import { RendererFactory2 } from '@angular/core';
3
3
  import { RecaptchaConfig } from './recaptcha.interface';
4
- import { Platform } from '@bravobit/bb-foundation';
4
+ import { Platform } from '@angular/cdk/platform';
5
5
  import { BehaviorSubject } from 'rxjs';
6
6
  import * as i0 from "@angular/core";
7
7
  export declare class RecaptchaLoader {
8
8
  private _platform;
9
9
  private _renderFactory;
10
- private _document?;
11
10
  private _localeId?;
11
+ private _document?;
12
12
  private _config?;
13
13
  readonly ready$: BehaviorSubject<ReCaptchaV2.ReCaptcha | null> | null;
14
14
  private readonly _windowLoadFn;
15
15
  private readonly _renderer;
16
- constructor(_platform: Platform, _renderFactory: RendererFactory2, _document?: any, _localeId?: string, _config?: RecaptchaConfig);
16
+ constructor(_platform: Platform, _renderFactory: RendererFactory2, _localeId?: string, _document?: Document, _config?: RecaptchaConfig);
17
17
  private createScript;
18
18
  private getUrl;
19
19
  private getQueryParams;
@@ -1,6 +1,6 @@
1
1
  import { StorageOption, StorageStrategy } from './interfaces/strategy.interface';
2
2
  import { StorageAttributes } from './interfaces/attributes.interface';
3
- import { Platform } from '@bravobit/bb-foundation';
3
+ import { Platform } from '@angular/cdk/platform';
4
4
  import * as i0 from "@angular/core";
5
5
  export declare class Storage implements StorageStrategy {
6
6
  private _platform;
@@ -1,5 +1,16 @@
1
+ import { ThemeVariable } from '../utils/theming.variable';
1
2
  export interface CheckboxGroupTheme {
2
- labelColor: string;
3
- labelFontSize: string;
4
- labelFontWeight: string;
3
+ grouping: ThemeVariable;
4
+ label: {
5
+ color: ThemeVariable;
6
+ fontSize: ThemeVariable;
7
+ fontWeight: ThemeVariable;
8
+ lineHeight: ThemeVariable;
9
+ offset: ThemeVariable;
10
+ };
11
+ spacing: {
12
+ horizontal: ThemeVariable;
13
+ vertical: ThemeVariable;
14
+ };
5
15
  }
16
+ export declare function checkboxGroupThemeFactory(): CheckboxGroupTheme;
@@ -1,19 +1,32 @@
1
+ import { ThemeVariable } from '../utils/theming.variable';
1
2
  export interface CheckboxTheme {
2
- accentColor: string;
3
- disabledColor: string;
4
- size: string;
5
- borderColor: string;
6
- borderThickness: string;
7
- borderRadius: string;
8
- outlineColor: string;
9
- outlineThickness: string;
10
- outlineRadius: string;
11
- checkColor: string;
12
- checkThickness: string;
13
- checkSize: string;
14
- labelColor: string;
15
- labelFontSize: string;
16
- labelFontWeight: string;
17
- labelLineHeight: string;
18
- labelOffset: string;
3
+ size: ThemeVariable;
4
+ grouping: ThemeVariable;
5
+ colors: {
6
+ accent: ThemeVariable;
7
+ disabled: ThemeVariable;
8
+ };
9
+ border: {
10
+ color: ThemeVariable;
11
+ thickness: ThemeVariable;
12
+ radius: ThemeVariable;
13
+ };
14
+ outline: {
15
+ color: ThemeVariable;
16
+ offset: ThemeVariable;
17
+ thickness: ThemeVariable;
18
+ };
19
+ check: {
20
+ size: ThemeVariable;
21
+ color: ThemeVariable;
22
+ thickness: ThemeVariable;
23
+ };
24
+ label: {
25
+ color: ThemeVariable;
26
+ fontSize: ThemeVariable;
27
+ fontWeight: ThemeVariable;
28
+ lineHeight: ThemeVariable;
29
+ offset: ThemeVariable;
30
+ };
19
31
  }
32
+ export declare function checkboxThemeFactory(): CheckboxTheme;
@@ -0,0 +1,9 @@
1
+ import { ThemeVariable } from '../utils/theming.variable';
2
+ export interface ControlErrorTheme {
3
+ color: ThemeVariable;
4
+ fontSize: ThemeVariable;
5
+ lineHeight: ThemeVariable;
6
+ fontWeight: ThemeVariable;
7
+ spacing: ThemeVariable;
8
+ }
9
+ export declare function controlErrorThemeFactory(): ControlErrorTheme;
@@ -0,0 +1,5 @@
1
+ import { ThemeVariable } from '../utils/theming.variable';
2
+ export interface FormControlAddonTheme {
3
+ spacing: ThemeVariable;
4
+ }
5
+ export declare function formControlAddonThemeFactory(): FormControlAddonTheme;
@@ -0,0 +1,32 @@
1
+ import { ThemeVariable } from '../utils/theming.variable';
2
+ interface BorderTheme {
3
+ radius: ThemeVariable;
4
+ width: ThemeVariable;
5
+ style: ThemeVariable;
6
+ color: ThemeVariable;
7
+ }
8
+ export interface FormControlTheme {
9
+ grouping: ThemeVariable;
10
+ color: ThemeVariable;
11
+ background: ThemeVariable;
12
+ error: {
13
+ color: ThemeVariable;
14
+ background: ThemeVariable;
15
+ placeholderColor: ThemeVariable;
16
+ };
17
+ border: BorderTheme;
18
+ focused: {
19
+ color: ThemeVariable;
20
+ background: ThemeVariable;
21
+ shadow: ThemeVariable;
22
+ border: BorderTheme;
23
+ };
24
+ disabled: {
25
+ color: ThemeVariable;
26
+ background: ThemeVariable;
27
+ opacity: ThemeVariable;
28
+ border: BorderTheme;
29
+ };
30
+ }
31
+ export declare function formControlThemeFactory(): FormControlTheme;
32
+ export {};
@@ -0,0 +1,17 @@
1
+ import { GlobalTheme, GlobalVariables, PartialGlobalTheme } from './theming.interface';
2
+ export declare class Theme {
3
+ protected readonly data: GlobalTheme;
4
+ protected readonly globals: GlobalVariables;
5
+ constructor(theme?: PartialGlobalTheme);
6
+ variables(): any;
7
+ protected defaultFactories(): GlobalTheme;
8
+ protected getContents(data: object, scope?: string | null): any;
9
+ protected getToken(key: string, scope: string): string;
10
+ protected tokenize(value: string): string;
11
+ protected mergeThemeData(target: GlobalTheme, ...sources: PartialGlobalTheme[]): any;
12
+ protected getGlobals(): {
13
+ accentColor: `#${string}`;
14
+ errorColor: `#${string}`;
15
+ };
16
+ private isObject;
17
+ }
@@ -0,0 +1,13 @@
1
+ import { ElementRef, Renderer2 } from '@angular/core';
2
+ import { Theme } from './theming.data';
3
+ import * as i0 from "@angular/core";
4
+ export declare class BbiTheming {
5
+ private _renderer;
6
+ private _elementRef;
7
+ set theme(theme: Theme | null);
8
+ private _theme;
9
+ constructor(_renderer: Renderer2, _elementRef: ElementRef);
10
+ private setTheme;
11
+ static ɵfac: i0.ɵɵFactoryDeclaration<BbiTheming, never>;
12
+ static ɵdir: i0.ɵɵDirectiveDeclaration<BbiTheming, "[bbiTheming]", never, { "theme": "bbiTheming"; }, {}, never, never, false>;
13
+ }
@@ -1,15 +1,26 @@
1
+ import { FormControlAddonTheme } from './themes/form-control-addon.theme';
1
2
  import { CheckboxGroupTheme } from './themes/checkbox-group.theme';
3
+ import { ControlErrorTheme } from './themes/control-error.theme';
4
+ import { FormControlTheme } from './themes/form-control.theme';
2
5
  import { CheckboxTheme } from './themes/checkbox.theme';
3
- import { Theme } from './themes/theme';
4
- export declare class ThemingOptions {
5
- themes: Theme[];
6
- }
7
6
  export declare type ThemeDataRecord = Record<string, string> | string;
8
- export interface ThemeData {
9
- accentColor?: string;
10
- checkbox?: Partial<CheckboxTheme>;
11
- checkboxGroup?: Partial<CheckboxGroupTheme>;
7
+ export declare type ColorString = `#${string}`;
8
+ export interface GlobalTheme {
9
+ accentColor: ColorString;
10
+ errorColor: ColorString;
11
+ formControl: FormControlTheme;
12
+ formControlAddon: FormControlAddonTheme;
13
+ checkbox: CheckboxTheme;
14
+ checkboxGroup: CheckboxGroupTheme;
15
+ controlError: ControlErrorTheme;
12
16
  custom?: {
13
17
  [key: string]: ThemeDataRecord;
14
18
  };
15
19
  }
20
+ declare type Subset<K> = {
21
+ [attr in keyof K]?: K[attr] extends object ? Subset<K[attr]> : K[attr];
22
+ };
23
+ export declare type PartialGlobalTheme = Subset<GlobalTheme>;
24
+ export declare type GlobalVariables = Pick<GlobalTheme, 'accentColor' | 'errorColor'>;
25
+ export declare type GlobalVariablesKey = keyof GlobalVariables;
26
+ export {};
@@ -1,13 +1,7 @@
1
- import { ModuleWithProviders } from '@angular/core';
2
- import { ThemingOptions } from './theming.interface';
3
- import { Theming } from './theming.service';
4
1
  import * as i0 from "@angular/core";
2
+ import * as i1 from "./theming.directive";
5
3
  export declare class ThemingModule {
6
- private _parent?;
7
- constructor(_parent?: ThemingModule);
8
- static forRoot(options: ThemingOptions): ModuleWithProviders<ThemingModule>;
9
- static ɵfac: i0.ɵɵFactoryDeclaration<ThemingModule, [{ optional: true; skipSelf: true; }]>;
10
- static ɵmod: i0.ɵɵNgModuleDeclaration<ThemingModule, never, never, never>;
4
+ static ɵfac: i0.ɵɵFactoryDeclaration<ThemingModule, never>;
5
+ static ɵmod: i0.ɵɵNgModuleDeclaration<ThemingModule, [typeof i1.BbiTheming], never, [typeof i1.BbiTheming]>;
11
6
  static ɵinj: i0.ɵɵInjectorDeclaration<ThemingModule>;
12
7
  }
13
- export declare function initializeTheme(_: Theming): () => {};
@@ -0,0 +1,16 @@
1
+ import { GlobalVariables, GlobalVariablesKey } from '../theming.interface';
2
+ export declare type ThemeVariable = ThemeVariableFunction | string;
3
+ export declare abstract class ThemeVariableFunction {
4
+ private _key;
5
+ protected constructor(_key: GlobalVariablesKey);
6
+ abstract format(value: string): string;
7
+ toString(variables: GlobalVariables): string;
8
+ }
9
+ export declare class ThemeColorVariable extends ThemeVariableFunction {
10
+ private _opacity;
11
+ constructor(key: GlobalVariablesKey);
12
+ format(value: string): string;
13
+ opacity(value: number): this;
14
+ private toRgba;
15
+ private hexToRgb;
16
+ }
@@ -1,6 +1,9 @@
1
1
  export * from './lib/theming.interface';
2
- export * from './lib/theming.service';
2
+ export * from './lib/theming.directive';
3
+ export * from './lib/theming.data';
3
4
  export * from './lib/theming.module';
4
5
  export * from './lib/themes/checkbox.theme';
5
6
  export * from './lib/themes/checkbox-group.theme';
6
- export * from './lib/themes/theme';
7
+ export * from './lib/themes/form-control.theme';
8
+ export * from './lib/themes/form-control-addon.theme';
9
+ export * from './lib/utils/theming.variable';
@@ -1,16 +0,0 @@
1
- import { OnDestroy, OnInit, TemplateRef, ViewContainerRef } from '@angular/core';
2
- import { Auth } from '../auth.service';
3
- import * as i0 from "@angular/core";
4
- export declare class BbRole implements OnInit, OnDestroy {
5
- private _auth;
6
- private _template;
7
- private _viewContainerRef;
8
- bbRole: string | string[];
9
- private _subscription;
10
- constructor(_auth: Auth, _template: TemplateRef<any>, _viewContainerRef: ViewContainerRef);
11
- ngOnInit(): void;
12
- ngOnDestroy(): void;
13
- private getAllowedRoles;
14
- static ɵfac: i0.ɵɵFactoryDeclaration<BbRole, never>;
15
- static ɵdir: i0.ɵɵDirectiveDeclaration<BbRole, "[bbRole]", never, { "bbRole": "bbRole"; }, {}, never, never, false>;
16
- }
@@ -1,23 +0,0 @@
1
- import { AuthMapperProtocol } from '../interfaces/mapper.interface';
2
- import * as i0 from "@angular/core";
3
- export declare class AuthMapper implements AuthMapperProtocol {
4
- me: string;
5
- register: string;
6
- resendCode: string;
7
- logout: string;
8
- refresh: string;
9
- requestPassword: string;
10
- resetPassword: string;
11
- role(data: any): any;
12
- toRegister(data: any): {
13
- accessToken: any;
14
- refreshToken: any;
15
- user: any;
16
- };
17
- toRefresh(data: any): {
18
- accessToken: any;
19
- refreshToken: any;
20
- };
21
- static ɵfac: i0.ɵɵFactoryDeclaration<AuthMapper, never>;
22
- static ɵprov: i0.ɵɵInjectableDeclaration<AuthMapper>;
23
- }
@@ -1,19 +0,0 @@
1
- export interface AuthMapperProtocol {
2
- me: string;
3
- register: string;
4
- logout: string;
5
- refresh: string;
6
- resendCode: string;
7
- resetPassword: string;
8
- requestPassword: string;
9
- role(data: any): string;
10
- toRegister(data: any): AuthUserTokenResponse;
11
- toRefresh(data: any): AuthTokenResponse;
12
- }
13
- export interface AuthTokenResponse {
14
- accessToken: string;
15
- refreshToken: string;
16
- }
17
- export interface AuthUserTokenResponse extends AuthTokenResponse {
18
- user: object;
19
- }
@@ -1,14 +0,0 @@
1
- import { AuthConfig } from './interfaces/config.interface';
2
- import { Auth } from './auth.service';
3
- import * as i0 from "@angular/core";
4
- export declare class Permissions {
5
- private _auth;
6
- private _config?;
7
- private readonly _permissions;
8
- private readonly _role$;
9
- constructor(_auth: Auth, _config?: AuthConfig);
10
- has(value: string | string[]): import("rxjs").Observable<boolean>;
11
- private validatePermission;
12
- static ɵfac: i0.ɵɵFactoryDeclaration<Permissions, [null, { optional: true; }]>;
13
- static ɵprov: i0.ɵɵInjectableDeclaration<Permissions>;
14
- }
@@ -1,37 +0,0 @@
1
- import { Directive, Input } from '@angular/core';
2
- import { distinctUntilChanged, map } from 'rxjs/operators';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "../auth.service";
5
- export class BbRole {
6
- constructor(_auth, _template, _viewContainerRef) {
7
- this._auth = _auth;
8
- this._template = _template;
9
- this._viewContainerRef = _viewContainerRef;
10
- this.getAllowedRoles = (value) => {
11
- return Array.isArray(value) ? value : [value];
12
- };
13
- }
14
- ngOnInit() {
15
- this._subscription = this._auth.user.pipe(map(user => user?.role ?? null), distinctUntilChanged()).subscribe(role => {
16
- const allowedRoles = this.getAllowedRoles(this.bbRole);
17
- if (!allowedRoles.includes(role)) {
18
- return this._viewContainerRef.clear();
19
- }
20
- this._viewContainerRef.createEmbeddedView(this._template);
21
- });
22
- }
23
- ngOnDestroy() {
24
- this._subscription?.unsubscribe();
25
- }
26
- }
27
- BbRole.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: BbRole, deps: [{ token: i1.Auth }, { token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
28
- BbRole.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.0.4", type: BbRole, selector: "[bbRole]", inputs: { bbRole: "bbRole" }, ngImport: i0 });
29
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: BbRole, decorators: [{
30
- type: Directive,
31
- args: [{
32
- selector: '[bbRole]'
33
- }]
34
- }], ctorParameters: function () { return [{ type: i1.Auth }, { type: i0.TemplateRef }, { type: i0.ViewContainerRef }]; }, propDecorators: { bbRole: [{
35
- type: Input
36
- }] } });
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYi1mb3VuZGF0aW9uL2F1dGgvc3JjL2xpYi9kaXJlY3RpdmVzL3JvbGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFtRCxNQUFNLGVBQWUsQ0FBQztBQUNqRyxPQUFPLEVBQUMsb0JBQW9CLEVBQUUsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7OztBQU96RCxNQUFNLE9BQU8sTUFBTTtJQVFmLFlBQW9CLEtBQVcsRUFDWCxTQUEyQixFQUMzQixpQkFBbUM7UUFGbkMsVUFBSyxHQUFMLEtBQUssQ0FBTTtRQUNYLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQzNCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBa0I7UUFzQi9DLG9CQUFlLEdBQUcsQ0FBQyxLQUF3QixFQUFFLEVBQUU7WUFDbkQsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbEQsQ0FBQyxDQUFDO0lBdkJGLENBQUM7SUFFRCxRQUFRO1FBQ0osSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQ3JDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLElBQUksSUFBSSxDQUFDLEVBQy9CLG9CQUFvQixFQUFFLENBQ3pCLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ2YsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFFdkQsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQzlCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxDQUFDO2FBQ3pDO1lBRUQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM5RCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLGFBQWEsRUFBRSxXQUFXLEVBQUUsQ0FBQztJQUN0QyxDQUFDOzttR0E5QlEsTUFBTTt1RkFBTixNQUFNOzJGQUFOLE1BQU07a0JBSGxCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLFVBQVU7aUJBQ3ZCO29KQUlZLE1BQU07c0JBQWQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIFRlbXBsYXRlUmVmLCBWaWV3Q29udGFpbmVyUmVmfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7ZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtBdXRofSBmcm9tICcuLi9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tiYlJvbGVdJ1xufSlcbmV4cG9ydCBjbGFzcyBCYlJvbGUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgICAvLyBJbnB1dHMuXG4gICAgQElucHV0KCkgYmJSb2xlOiBzdHJpbmcgfCBzdHJpbmdbXTtcblxuICAgIC8vIFN1YnNjcmlwdGlvbnMuXG4gICAgcHJpdmF0ZSBfc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9hdXRoOiBBdXRoLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgX3RlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+LFxuICAgICAgICAgICAgICAgIHByaXZhdGUgX3ZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYpIHtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9uID0gdGhpcy5fYXV0aC51c2VyLnBpcGUoXG4gICAgICAgICAgICBtYXAodXNlciA9PiB1c2VyPy5yb2xlID8/IG51bGwpLFxuICAgICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxuICAgICAgICApLnN1YnNjcmliZShyb2xlID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGFsbG93ZWRSb2xlcyA9IHRoaXMuZ2V0QWxsb3dlZFJvbGVzKHRoaXMuYmJSb2xlKTtcblxuICAgICAgICAgICAgaWYgKCFhbGxvd2VkUm9sZXMuaW5jbHVkZXMocm9sZSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fdmlld0NvbnRhaW5lclJlZi5jbGVhcigpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLl92aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLl90ZW1wbGF0ZSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRBbGxvd2VkUm9sZXMgPSAodmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdKSA9PiB7XG4gICAgICAgIHJldHVybiBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlIDogW3ZhbHVlXTtcbiAgICB9O1xuXG59XG4iXX0=
@@ -1,35 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class AuthMapper {
4
- constructor() {
5
- // Routes.
6
- this.me = 'auth/me';
7
- this.register = 'auth/register';
8
- this.resendCode = 'auth/resend';
9
- this.logout = 'auth/logout';
10
- this.refresh = 'auth/refresh';
11
- this.requestPassword = 'auth/reset';
12
- this.resetPassword = 'auth/reset-password';
13
- }
14
- role(data) {
15
- return (data && data.role) || null;
16
- }
17
- toRegister(data) {
18
- // Retrieve the params.
19
- const { token, refresh_token, user } = data;
20
- // Map the data to the correct format.
21
- return { accessToken: token, refreshToken: refresh_token, user: user };
22
- }
23
- toRefresh(data) {
24
- // Retrieve the params.
25
- const { token, refresh_token } = data;
26
- // Map the data to the correct format.
27
- return { accessToken: token, refreshToken: refresh_token };
28
- }
29
- }
30
- AuthMapper.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: AuthMapper, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
31
- AuthMapper.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: AuthMapper });
32
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: AuthMapper, decorators: [{
33
- type: Injectable
34
- }] });
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwcGVyLmhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vYXV0aC9zcmMvbGliL2hlbHBlcnMvbWFwcGVyLmhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDOztBQUd6QyxNQUFNLE9BQU8sVUFBVTtJQUR2QjtRQUdJLFVBQVU7UUFDVixPQUFFLEdBQVcsU0FBUyxDQUFDO1FBQ3ZCLGFBQVEsR0FBVyxlQUFlLENBQUM7UUFDbkMsZUFBVSxHQUFXLGFBQWEsQ0FBQztRQUNuQyxXQUFNLEdBQVcsYUFBYSxDQUFDO1FBQy9CLFlBQU8sR0FBVyxjQUFjLENBQUM7UUFDakMsb0JBQWUsR0FBVyxZQUFZLENBQUM7UUFDdkMsa0JBQWEsR0FBVyxxQkFBcUIsQ0FBQztLQXNCakQ7SUFwQkcsSUFBSSxDQUFDLElBQVM7UUFDVixPQUFPLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUM7SUFDdkMsQ0FBQztJQUVELFVBQVUsQ0FBQyxJQUFTO1FBQ2hCLHVCQUF1QjtRQUN2QixNQUFNLEVBQUMsS0FBSyxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUMsR0FBRyxJQUFJLENBQUM7UUFFMUMsc0NBQXNDO1FBQ3RDLE9BQU8sRUFBQyxXQUFXLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBQyxDQUFDO0lBQ3pFLENBQUM7SUFFRCxTQUFTLENBQUMsSUFBUztRQUNmLHVCQUF1QjtRQUN2QixNQUFNLEVBQUMsS0FBSyxFQUFFLGFBQWEsRUFBQyxHQUFHLElBQUksQ0FBQztRQUVwQyxzQ0FBc0M7UUFDdEMsT0FBTyxFQUFDLFdBQVcsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBQyxDQUFDO0lBQzdELENBQUM7O3VHQTdCUSxVQUFVOzJHQUFWLFVBQVU7MkZBQVYsVUFBVTtrQkFEdEIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QXV0aE1hcHBlclByb3RvY29sfSBmcm9tICcuLi9pbnRlcmZhY2VzL21hcHBlci5pbnRlcmZhY2UnO1xuaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEF1dGhNYXBwZXIgaW1wbGVtZW50cyBBdXRoTWFwcGVyUHJvdG9jb2wge1xuXG4gICAgLy8gUm91dGVzLlxuICAgIG1lOiBzdHJpbmcgPSAnYXV0aC9tZSc7XG4gICAgcmVnaXN0ZXI6IHN0cmluZyA9ICdhdXRoL3JlZ2lzdGVyJztcbiAgICByZXNlbmRDb2RlOiBzdHJpbmcgPSAnYXV0aC9yZXNlbmQnO1xuICAgIGxvZ291dDogc3RyaW5nID0gJ2F1dGgvbG9nb3V0JztcbiAgICByZWZyZXNoOiBzdHJpbmcgPSAnYXV0aC9yZWZyZXNoJztcbiAgICByZXF1ZXN0UGFzc3dvcmQ6IHN0cmluZyA9ICdhdXRoL3Jlc2V0JztcbiAgICByZXNldFBhc3N3b3JkOiBzdHJpbmcgPSAnYXV0aC9yZXNldC1wYXNzd29yZCc7XG5cbiAgICByb2xlKGRhdGE6IGFueSkge1xuICAgICAgICByZXR1cm4gKGRhdGEgJiYgZGF0YS5yb2xlKSB8fCBudWxsO1xuICAgIH1cblxuICAgIHRvUmVnaXN0ZXIoZGF0YTogYW55KSB7XG4gICAgICAgIC8vIFJldHJpZXZlIHRoZSBwYXJhbXMuXG4gICAgICAgIGNvbnN0IHt0b2tlbiwgcmVmcmVzaF90b2tlbiwgdXNlcn0gPSBkYXRhO1xuXG4gICAgICAgIC8vIE1hcCB0aGUgZGF0YSB0byB0aGUgY29ycmVjdCBmb3JtYXQuXG4gICAgICAgIHJldHVybiB7YWNjZXNzVG9rZW46IHRva2VuLCByZWZyZXNoVG9rZW46IHJlZnJlc2hfdG9rZW4sIHVzZXI6IHVzZXJ9O1xuICAgIH1cblxuICAgIHRvUmVmcmVzaChkYXRhOiBhbnkpIHtcbiAgICAgICAgLy8gUmV0cmlldmUgdGhlIHBhcmFtcy5cbiAgICAgICAgY29uc3Qge3Rva2VuLCByZWZyZXNoX3Rva2VufSA9IGRhdGE7XG5cbiAgICAgICAgLy8gTWFwIHRoZSBkYXRhIHRvIHRoZSBjb3JyZWN0IGZvcm1hdC5cbiAgICAgICAgcmV0dXJuIHthY2Nlc3NUb2tlbjogdG9rZW4sIHJlZnJlc2hUb2tlbjogcmVmcmVzaF90b2tlbn07XG4gICAgfVxuXG59XG4iXX0=
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwcGVyLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vYXV0aC9zcmMvbGliL2ludGVyZmFjZXMvbWFwcGVyLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBBdXRoTWFwcGVyUHJvdG9jb2wge1xuICAgIC8vIFJvdXRlcy5cbiAgICBtZTogc3RyaW5nO1xuICAgIHJlZ2lzdGVyOiBzdHJpbmc7XG4gICAgbG9nb3V0OiBzdHJpbmc7XG4gICAgcmVmcmVzaDogc3RyaW5nO1xuICAgIHJlc2VuZENvZGU6IHN0cmluZztcbiAgICByZXNldFBhc3N3b3JkOiBzdHJpbmc7XG4gICAgcmVxdWVzdFBhc3N3b3JkOiBzdHJpbmc7XG5cbiAgICAvLyBNZXRob2RzLlxuICAgIHJvbGUoZGF0YTogYW55KTogc3RyaW5nO1xuXG4gICAgdG9SZWdpc3RlcihkYXRhOiBhbnkpOiBBdXRoVXNlclRva2VuUmVzcG9uc2U7XG5cbiAgICB0b1JlZnJlc2goZGF0YTogYW55KTogQXV0aFRva2VuUmVzcG9uc2U7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXV0aFRva2VuUmVzcG9uc2Uge1xuICAgIGFjY2Vzc1Rva2VuOiBzdHJpbmc7XG4gICAgcmVmcmVzaFRva2VuOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXV0aFVzZXJUb2tlblJlc3BvbnNlIGV4dGVuZHMgQXV0aFRva2VuUmVzcG9uc2Uge1xuICAgIHVzZXI6IG9iamVjdDtcbn1cbiJdfQ==
@@ -1,56 +0,0 @@
1
- import { distinctUntilChanged, map } from 'rxjs/operators';
2
- import { Injectable, Optional } from '@angular/core';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "./auth.service";
5
- import * as i2 from "./interfaces/config.interface";
6
- export class Permissions {
7
- constructor(_auth, _config) {
8
- this._auth = _auth;
9
- this._config = _config;
10
- // Data.
11
- this._permissions = this._config?.permissions ?? {};
12
- this._role$ = this._auth.user.pipe(map(user => user?.role ?? null), distinctUntilChanged());
13
- }
14
- has(value) {
15
- const requiredPermissions = Array.isArray(value)
16
- ? value
17
- : [value];
18
- return this._role$.pipe(map(role => {
19
- if (role === null || role === undefined) {
20
- return false;
21
- }
22
- for (const requiredPermission of requiredPermissions) {
23
- const result = this.validatePermission(requiredPermission, role);
24
- if (!result) {
25
- return false;
26
- }
27
- }
28
- return true;
29
- }));
30
- }
31
- validatePermission(type, role) {
32
- const permission = this._permissions?.[type] ?? null;
33
- if (!permission) {
34
- console?.warn?.(`Permissions: Invalid permission requested "${type}".`);
35
- return false;
36
- }
37
- if (permission?.length <= 0) {
38
- console?.warn?.(`Permissions: No roles were set, please add some roles to this permission.`);
39
- return false;
40
- }
41
- // If the permission includes a "*" we allow everyone.
42
- if (permission.includes('*')) {
43
- return true;
44
- }
45
- // Validate the role against the permissions.
46
- return permission?.includes(role) ?? false;
47
- }
48
- }
49
- Permissions.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: Permissions, deps: [{ token: i1.Auth }, { token: i2.AuthConfig, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
50
- Permissions.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: Permissions });
51
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: Permissions, decorators: [{
52
- type: Injectable
53
- }], ctorParameters: function () { return [{ type: i1.Auth }, { type: i2.AuthConfig, decorators: [{
54
- type: Optional
55
- }] }]; } });
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbnMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vYXV0aC9zcmMvbGliL3Blcm1pc3Npb25zLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLG9CQUFvQixFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRXpELE9BQU8sRUFBQyxVQUFVLEVBQUUsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDOzs7O0FBSW5ELE1BQU0sT0FBTyxXQUFXO0lBU3BCLFlBQW9CLEtBQVcsRUFDQyxPQUFvQjtRQURoQyxVQUFLLEdBQUwsS0FBSyxDQUFNO1FBQ0MsWUFBTyxHQUFQLE9BQU8sQ0FBYTtRQVJwRCxRQUFRO1FBQ1MsaUJBQVksR0FBdUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxXQUFXLElBQUksRUFBRSxDQUFDO1FBQ25GLFdBQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQzFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFjLElBQUksSUFBSSxDQUFDLEVBQ3pDLG9CQUFvQixFQUFFLENBQ3pCLENBQUM7SUFJRixDQUFDO0lBRUQsR0FBRyxDQUFDLEtBQXdCO1FBQ3hCLE1BQU0sbUJBQW1CLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7WUFDNUMsQ0FBQyxDQUFDLEtBQUs7WUFDUCxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVkLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ25CLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNQLElBQUksSUFBSSxLQUFLLElBQUksSUFBSSxJQUFJLEtBQUssU0FBUyxFQUFFO2dCQUNyQyxPQUFPLEtBQUssQ0FBQzthQUNoQjtZQUVELEtBQUssTUFBTSxrQkFBa0IsSUFBSSxtQkFBbUIsRUFBRTtnQkFDbEQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUNqRSxJQUFJLENBQUMsTUFBTSxFQUFFO29CQUNULE9BQU8sS0FBSyxDQUFDO2lCQUNoQjthQUNKO1lBRUQsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQyxDQUFDLENBQ0wsQ0FBQztJQUNOLENBQUM7SUFFTyxrQkFBa0IsQ0FBQyxJQUFZLEVBQUUsSUFBWTtRQUNqRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDO1FBQ3JELElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDYixPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsOENBQThDLElBQUksSUFBSSxDQUFDLENBQUM7WUFDeEUsT0FBTyxLQUFLLENBQUM7U0FDaEI7UUFDRCxJQUFJLFVBQVUsRUFBRSxNQUFNLElBQUksQ0FBQyxFQUFFO1lBQ3pCLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQywyRUFBMkUsQ0FBQyxDQUFDO1lBQzdGLE9BQU8sS0FBSyxDQUFDO1NBQ2hCO1FBRUQsc0RBQXNEO1FBQ3RELElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUMxQixPQUFPLElBQUksQ0FBQztTQUNmO1FBRUQsNkNBQTZDO1FBQzdDLE9BQU8sVUFBVSxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLENBQUM7SUFDL0MsQ0FBQzs7d0dBdERRLFdBQVc7NEdBQVgsV0FBVzsyRkFBWCxXQUFXO2tCQUR2QixVQUFVOzswQkFXTSxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0F1dGhDb25maWd9IGZyb20gJy4vaW50ZXJmYWNlcy9jb25maWcuaW50ZXJmYWNlJztcbmltcG9ydCB7SW5qZWN0YWJsZSwgT3B0aW9uYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBdXRofSBmcm9tICcuL2F1dGguc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBQZXJtaXNzaW9ucyB7XG5cbiAgICAvLyBEYXRhLlxuICAgIHByaXZhdGUgcmVhZG9ubHkgX3Blcm1pc3Npb25zOiB7IFtwZXJtaXNzaW9uOiBzdHJpbmddOiBzdHJpbmdbXSB9ID0gdGhpcy5fY29uZmlnPy5wZXJtaXNzaW9ucyA/PyB7fTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9yb2xlJCA9IHRoaXMuX2F1dGgudXNlci5waXBlKFxuICAgICAgICBtYXAodXNlciA9PiB1c2VyPy5yb2xlIGFzIHN0cmluZyA/PyBudWxsKSxcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxuICAgICk7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9hdXRoOiBBdXRoLFxuICAgICAgICAgICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgX2NvbmZpZz86IEF1dGhDb25maWcpIHtcbiAgICB9XG5cbiAgICBoYXModmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdKSB7XG4gICAgICAgIGNvbnN0IHJlcXVpcmVkUGVybWlzc2lvbnMgPSBBcnJheS5pc0FycmF5KHZhbHVlKVxuICAgICAgICAgICAgPyB2YWx1ZVxuICAgICAgICAgICAgOiBbdmFsdWVdO1xuXG4gICAgICAgIHJldHVybiB0aGlzLl9yb2xlJC5waXBlKFxuICAgICAgICAgICAgbWFwKHJvbGUgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChyb2xlID09PSBudWxsIHx8IHJvbGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCByZXF1aXJlZFBlcm1pc3Npb24gb2YgcmVxdWlyZWRQZXJtaXNzaW9ucykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSB0aGlzLnZhbGlkYXRlUGVybWlzc2lvbihyZXF1aXJlZFBlcm1pc3Npb24sIHJvbGUpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXJlc3VsdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgdmFsaWRhdGVQZXJtaXNzaW9uKHR5cGU6IHN0cmluZywgcm9sZTogc3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IHBlcm1pc3Npb24gPSB0aGlzLl9wZXJtaXNzaW9ucz8uW3R5cGVdID8/IG51bGw7XG4gICAgICAgIGlmICghcGVybWlzc2lvbikge1xuICAgICAgICAgICAgY29uc29sZT8ud2Fybj8uKGBQZXJtaXNzaW9uczogSW52YWxpZCBwZXJtaXNzaW9uIHJlcXVlc3RlZCBcIiR7dHlwZX1cIi5gKTtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocGVybWlzc2lvbj8ubGVuZ3RoIDw9IDApIHtcbiAgICAgICAgICAgIGNvbnNvbGU/Lndhcm4/LihgUGVybWlzc2lvbnM6IE5vIHJvbGVzIHdlcmUgc2V0LCBwbGVhc2UgYWRkIHNvbWUgcm9sZXMgdG8gdGhpcyBwZXJtaXNzaW9uLmApO1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gSWYgdGhlIHBlcm1pc3Npb24gaW5jbHVkZXMgYSBcIipcIiB3ZSBhbGxvdyBldmVyeW9uZS5cbiAgICAgICAgaWYgKHBlcm1pc3Npb24uaW5jbHVkZXMoJyonKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBWYWxpZGF0ZSB0aGUgcm9sZSBhZ2FpbnN0IHRoZSBwZXJtaXNzaW9ucy5cbiAgICAgICAgcmV0dXJuIHBlcm1pc3Npb24/LmluY2x1ZGVzKHJvbGUpID8/IGZhbHNlO1xuICAgIH1cblxufVxuIl19
@@ -1,42 +0,0 @@
1
- import { Inject, Injectable, PLATFORM_ID } from '@angular/core';
2
- import { isPlatformBrowser } from '@angular/common';
3
- import * as i0 from "@angular/core";
4
- let hasV8BreakIterator;
5
- try {
6
- hasV8BreakIterator = (typeof Intl !== 'undefined' && Intl.v8BreakIterator);
7
- }
8
- catch {
9
- hasV8BreakIterator = false;
10
- }
11
- export class Platform {
12
- constructor(_platformId) {
13
- this._platformId = _platformId;
14
- // Browser check.
15
- this.isBrowser = this._platformId
16
- ? isPlatformBrowser(this._platformId)
17
- : typeof document === 'object' && !!document;
18
- // Is checks.
19
- this.isEdge = this.isBrowser && /(edge)/i.test(navigator.userAgent);
20
- this.isTrident = this.isBrowser && /(msie|trident)/i.test(navigator.userAgent);
21
- this.isBlink = this.isBrowser && (!!(window.chrome || hasV8BreakIterator) && typeof CSS !== 'undefined' && !this.isEdge && !this.isTrident);
22
- this.isWebkit = this.isBrowser && /AppleWebKit/i.test(navigator.userAgent) && !this.isBlink && !this.isEdge && !this.isTrident;
23
- this.isChrome = this.isBrowser && /Google Inc./.test(navigator.vendor);
24
- this.isFirefox = this.isBrowser && /(firefox|minefield)/i.test(navigator.userAgent);
25
- this.isSafari = this.isBrowser && /safari/i.test(navigator.userAgent) && this.isWebkit;
26
- this.isAndroid = this.isBrowser && /android/i.test(navigator.userAgent) && !this.isTrident;
27
- this.isIos = this.isBrowser && /iPad|iPhone|iPod/.test(navigator.userAgent) && !('MSStream' in window);
28
- this.isDesktop = this.isBrowser && !(/(iPhone|iPod|iPad|Android|BlackBerry|IEMobile)/.test(navigator.userAgent));
29
- }
30
- }
31
- Platform.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: Platform, deps: [{ token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Injectable });
32
- Platform.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: Platform, providedIn: 'root' });
33
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: Platform, decorators: [{
34
- type: Injectable,
35
- args: [{
36
- providedIn: 'root'
37
- }]
38
- }], ctorParameters: function () { return [{ type: Object, decorators: [{
39
- type: Inject,
40
- args: [PLATFORM_ID]
41
- }] }]; } });
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhdGZvcm0uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vc3JjL2xpYi9jb3JlL3NlcnZpY2VzL3BsYXRmb3JtLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGlCQUFpQixDQUFDOztBQUVsRCxJQUFJLGtCQUEyQixDQUFDO0FBQ2hDLElBQUk7SUFDQSxrQkFBa0IsR0FBRyxDQUFDLE9BQU8sSUFBSSxLQUFLLFdBQVcsSUFBSyxJQUFZLENBQUMsZUFBZSxDQUFDLENBQUM7Q0FDdkY7QUFBQyxNQUFNO0lBQ0osa0JBQWtCLEdBQUcsS0FBSyxDQUFDO0NBQzlCO0FBS0QsTUFBTSxPQUFPLFFBQVE7SUFFakIsWUFBeUMsV0FBbUI7UUFBbkIsZ0JBQVcsR0FBWCxXQUFXLENBQVE7UUFHNUQsaUJBQWlCO1FBQ2pCLGNBQVMsR0FBRyxJQUFJLENBQUMsV0FBVztZQUN4QixDQUFDLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztZQUNyQyxDQUFDLENBQUMsT0FBTyxRQUFRLEtBQUssUUFBUSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUM7UUFFakQsYUFBYTtRQUNiLFdBQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQy9ELGNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFJLGlCQUFpQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDMUUsWUFBTyxHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBRSxNQUFjLENBQUMsTUFBTSxJQUFJLGtCQUFrQixDQUFDLElBQUksT0FBTyxHQUFHLEtBQUssV0FBVyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNoSixhQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxjQUFjLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUMxSCxhQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxhQUFhLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNsRSxjQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQy9FLGFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDbEYsY0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ3RGLFVBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFJLGtCQUFrQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsSUFBSSxNQUFNLENBQUMsQ0FBQztRQUNsRyxjQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLENBQUMsZ0RBQWdELENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBakI1RyxDQUFDOztxR0FIUSxRQUFRLGtCQUVHLFdBQVc7eUdBRnRCLFFBQVEsY0FGTCxNQUFNOzJGQUVULFFBQVE7a0JBSHBCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCOzBEQUd5RCxNQUFNOzBCQUEvQyxNQUFNOzJCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdCwgSW5qZWN0YWJsZSwgUExBVEZPUk1fSUR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtpc1BsYXRmb3JtQnJvd3Nlcn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxubGV0IGhhc1Y4QnJlYWtJdGVyYXRvcjogYm9vbGVhbjtcbnRyeSB7XG4gICAgaGFzVjhCcmVha0l0ZXJhdG9yID0gKHR5cGVvZiBJbnRsICE9PSAndW5kZWZpbmVkJyAmJiAoSW50bCBhcyBhbnkpLnY4QnJlYWtJdGVyYXRvcik7XG59IGNhdGNoIHtcbiAgICBoYXNWOEJyZWFrSXRlcmF0b3IgPSBmYWxzZTtcbn1cblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBQbGF0Zm9ybSB7XG5cbiAgICBjb25zdHJ1Y3RvcihASW5qZWN0KFBMQVRGT1JNX0lEKSBwcml2YXRlIF9wbGF0Zm9ybUlkOiBPYmplY3QpIHtcbiAgICB9XG5cbiAgICAvLyBCcm93c2VyIGNoZWNrLlxuICAgIGlzQnJvd3NlciA9IHRoaXMuX3BsYXRmb3JtSWRcbiAgICAgICAgPyBpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLl9wbGF0Zm9ybUlkKVxuICAgICAgICA6IHR5cGVvZiBkb2N1bWVudCA9PT0gJ29iamVjdCcgJiYgISFkb2N1bWVudDtcblxuICAgIC8vIElzIGNoZWNrcy5cbiAgICBpc0VkZ2UgPSB0aGlzLmlzQnJvd3NlciAmJiAvKGVkZ2UpL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KTtcbiAgICBpc1RyaWRlbnQgPSB0aGlzLmlzQnJvd3NlciAmJiAvKG1zaWV8dHJpZGVudCkvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpO1xuICAgIGlzQmxpbmsgPSB0aGlzLmlzQnJvd3NlciAmJiAoISEoKHdpbmRvdyBhcyBhbnkpLmNocm9tZSB8fCBoYXNWOEJyZWFrSXRlcmF0b3IpICYmIHR5cGVvZiBDU1MgIT09ICd1bmRlZmluZWQnICYmICF0aGlzLmlzRWRnZSAmJiAhdGhpcy5pc1RyaWRlbnQpO1xuICAgIGlzV2Via2l0ID0gdGhpcy5pc0Jyb3dzZXIgJiYgL0FwcGxlV2ViS2l0L2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSAmJiAhdGhpcy5pc0JsaW5rICYmICF0aGlzLmlzRWRnZSAmJiAhdGhpcy5pc1RyaWRlbnQ7XG4gICAgaXNDaHJvbWUgPSB0aGlzLmlzQnJvd3NlciAmJiAvR29vZ2xlIEluYy4vLnRlc3QobmF2aWdhdG9yLnZlbmRvcik7XG4gICAgaXNGaXJlZm94ID0gdGhpcy5pc0Jyb3dzZXIgJiYgLyhmaXJlZm94fG1pbmVmaWVsZCkvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpO1xuICAgIGlzU2FmYXJpID0gdGhpcy5pc0Jyb3dzZXIgJiYgL3NhZmFyaS9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkgJiYgdGhpcy5pc1dlYmtpdDtcbiAgICBpc0FuZHJvaWQgPSB0aGlzLmlzQnJvd3NlciAmJiAvYW5kcm9pZC9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkgJiYgIXRoaXMuaXNUcmlkZW50O1xuICAgIGlzSW9zID0gdGhpcy5pc0Jyb3dzZXIgJiYgL2lQYWR8aVBob25lfGlQb2QvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkgJiYgISgnTVNTdHJlYW0nIGluIHdpbmRvdyk7XG4gICAgaXNEZXNrdG9wID0gdGhpcy5pc0Jyb3dzZXIgJiYgISgvKGlQaG9uZXxpUG9kfGlQYWR8QW5kcm9pZHxCbGFja0JlcnJ5fElFTW9iaWxlKS8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSk7XG5cbn1cbiJdfQ==
@@ -1,34 +0,0 @@
1
- export class Theme {
2
- constructor(_name, _data) {
3
- this._name = _name;
4
- this._data = _data;
5
- this._parsed = this.parseData(_data ?? {});
6
- }
7
- get name() {
8
- return this._name;
9
- }
10
- get data() {
11
- return this._parsed;
12
- }
13
- update(data) {
14
- this._parsed = { ...this._parsed, ...this.parseData(data) };
15
- return this;
16
- }
17
- parseData(data, scope = null) {
18
- return Object.keys(data).reduce((previous, current) => {
19
- const value = data?.[current];
20
- const token = this.getFormattedToken(current, scope);
21
- if (typeof value === 'object' && value !== null) {
22
- const formatted = this.parseData(value, token);
23
- return { ...previous, ...formatted };
24
- }
25
- return { ...previous, [`--${token}`]: value };
26
- }, {});
27
- }
28
- getFormattedToken(key, scope = null) {
29
- const result = key.replace(/([A-Z])/g, ' $1');
30
- const current = result.split(' ').join('-').toLowerCase();
31
- return [scope, current].filter(item => !!item).join('-');
32
- }
33
- }
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYi1mb3VuZGF0aW9uL3RoZW1pbmcvc3JjL2xpYi90aGVtZXMvdGhlbWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLEtBQUs7SUFLZCxZQUFvQixLQUFhLEVBQ2IsS0FBaUI7UUFEakIsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQUNiLFVBQUssR0FBTCxLQUFLLENBQVk7UUFDakMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ0osT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxJQUFJLElBQUk7UUFDSixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDeEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxJQUFlO1FBQ2xCLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBQyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFDLENBQUM7UUFDMUQsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVTLFNBQVMsQ0FBQyxJQUFZLEVBQUUsUUFBdUIsSUFBSTtRQUN6RCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxFQUFFO1lBQ2xELE1BQU0sS0FBSyxHQUFHLElBQUksRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzlCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDckQsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksS0FBSyxLQUFLLElBQUksRUFBRTtnQkFDN0MsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7Z0JBQy9DLE9BQU8sRUFBQyxHQUFHLFFBQVEsRUFBRSxHQUFHLFNBQVMsRUFBQyxDQUFDO2FBQ3RDO1lBQ0QsT0FBTyxFQUFDLEdBQUcsUUFBUSxFQUFFLENBQUMsS0FBSyxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBQyxDQUFDO1FBQ2hELENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFUyxpQkFBaUIsQ0FBQyxHQUFXLEVBQUUsUUFBdUIsSUFBSTtRQUNoRSxNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM5QyxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUMxRCxPQUFPLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDN0QsQ0FBQztDQUVKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtUaGVtZURhdGF9IGZyb20gJy4uL3RoZW1pbmcuaW50ZXJmYWNlJztcblxuZXhwb3J0IGNsYXNzIFRoZW1lIHtcblxuICAgIC8vIFJlYWRvbmx5IGRhdGEuXG4gICAgcHJpdmF0ZSBfcGFyc2VkOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfbmFtZTogc3RyaW5nLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgX2RhdGE/OiBUaGVtZURhdGEpIHtcbiAgICAgICAgdGhpcy5fcGFyc2VkID0gdGhpcy5wYXJzZURhdGEoX2RhdGEgPz8ge30pO1xuICAgIH1cblxuICAgIGdldCBuYW1lKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fbmFtZTtcbiAgICB9XG5cbiAgICBnZXQgZGF0YSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3BhcnNlZDtcbiAgICB9XG5cbiAgICB1cGRhdGUoZGF0YTogVGhlbWVEYXRhKSB7XG4gICAgICAgIHRoaXMuX3BhcnNlZCA9IHsuLi50aGlzLl9wYXJzZWQsIC4uLnRoaXMucGFyc2VEYXRhKGRhdGEpfTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHBhcnNlRGF0YShkYXRhOiBvYmplY3QsIHNjb3BlOiBzdHJpbmcgfCBudWxsID0gbnVsbCkge1xuICAgICAgICByZXR1cm4gT2JqZWN0LmtleXMoZGF0YSkucmVkdWNlKChwcmV2aW91cywgY3VycmVudCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBkYXRhPy5bY3VycmVudF07XG4gICAgICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuZ2V0Rm9ybWF0dGVkVG9rZW4oY3VycmVudCwgc2NvcGUpO1xuICAgICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgdmFsdWUgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBmb3JtYXR0ZWQgPSB0aGlzLnBhcnNlRGF0YSh2YWx1ZSwgdG9rZW4pO1xuICAgICAgICAgICAgICAgIHJldHVybiB7Li4ucHJldmlvdXMsIC4uLmZvcm1hdHRlZH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gey4uLnByZXZpb3VzLCBbYC0tJHt0b2tlbn1gXTogdmFsdWV9O1xuICAgICAgICB9LCB7fSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldEZvcm1hdHRlZFRva2VuKGtleTogc3RyaW5nLCBzY29wZTogc3RyaW5nIHwgbnVsbCA9IG51bGwpIHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0ga2V5LnJlcGxhY2UoLyhbQS1aXSkvZywgJyAkMScpO1xuICAgICAgICBjb25zdCBjdXJyZW50ID0gcmVzdWx0LnNwbGl0KCcgJykuam9pbignLScpLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIHJldHVybiBbc2NvcGUsIGN1cnJlbnRdLmZpbHRlcihpdGVtID0+ICEhaXRlbSkuam9pbignLScpO1xuICAgIH1cblxufVxuIl19