@bravobit/bb-foundation 0.26.2 → 0.27.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 (493) hide show
  1. package/auth/lib/directives/authenticated.directive.d.ts +1 -1
  2. package/collections/lib/components/collections-pager/collections-pager.component.d.ts +1 -1
  3. package/collections/lib/components/collections-viewer/collections-viewer.component.d.ts +1 -1
  4. package/controls/lib/checkbox/checkbox/checkbox.component.d.ts +1 -1
  5. package/controls/lib/checkbox/checkbox-group/checkbox-group.component.d.ts +1 -1
  6. package/controls/lib/control-error/control-error/control-error.component.d.ts +1 -1
  7. package/controls/lib/form-control/form-control/form-control.component.d.ts +1 -1
  8. package/controls/lib/form-control/form-control-addon/form-control-addon.component.d.ts +1 -1
  9. package/controls/lib/form-control/form-control-input.directive.d.ts +1 -1
  10. package/controls/lib/radio/radio-button/radio-button.component.d.ts +1 -1
  11. package/controls/lib/radio/radio-group/radio-group.component.d.ts +1 -1
  12. package/controls/lib/toggle/toggle/toggle.component.d.ts +1 -1
  13. package/controls/lib/toggle/toggle-group/toggle-group.component.d.ts +1 -1
  14. package/dashboard/lib/dashboard/dashboard.component.d.ts +1 -1
  15. package/dashboard/lib/dashboard-menu/dashboard-menu.component.d.ts +1 -1
  16. package/dashboard/lib/dashboard-menu-item/dashboard-menu-item.component.d.ts +1 -1
  17. package/dashboard/lib/dashboard-sidebar-group/dashboard-sidebar-group.component.d.ts +1 -1
  18. package/dashboard/lib/dashboard-sidebar-item/dashboard-sidebar-item.component.d.ts +1 -1
  19. package/dialog/lib/dialog-modal/dialog-modal.component.d.ts +1 -1
  20. package/elements/lib/avatar/avatar.component.d.ts +1 -1
  21. package/elements/lib/button/button.component.d.ts +2 -2
  22. package/elements/lib/checkbox/checkbox.component.d.ts +1 -1
  23. package/elements/lib/date-picker/date-picker.component.d.ts +1 -1
  24. package/elements/lib/directives/input.directive.d.ts +2 -2
  25. package/elements/lib/dropdown/dropdown.component.d.ts +1 -1
  26. package/elements/lib/file-picker/file-picker.component.d.ts +2 -2
  27. package/elements/lib/form-control/form-control.component.d.ts +1 -1
  28. package/elements/lib/form-error/form-error.component.d.ts +1 -1
  29. package/elements/lib/form-group/form-group.component.d.ts +1 -1
  30. package/elements/lib/icon/icon.component.d.ts +1 -1
  31. package/elements/lib/image-picker/image-picker.component.d.ts +1 -1
  32. package/elements/lib/spinner/spinner.component.d.ts +1 -1
  33. package/esm2022/auth/lib/auth.interceptor.mjs +91 -0
  34. package/esm2022/auth/lib/auth.module.mjs +36 -0
  35. package/esm2022/auth/lib/auth.service.mjs +271 -0
  36. package/esm2022/auth/lib/directives/authenticated.directive.mjs +43 -0
  37. package/esm2022/auth/lib/guards/anonymous.guard.mjs +54 -0
  38. package/esm2022/auth/lib/guards/authenticated.guard.mjs +57 -0
  39. package/esm2022/collections/lib/collections.module.mjs +55 -0
  40. package/esm2022/collections/lib/components/collections-pager/collections-pager.component.mjs +124 -0
  41. package/esm2022/collections/lib/components/collections-viewer/collections-viewer.component.mjs +32 -0
  42. package/esm2022/collections/lib/components/collections.directive.mjs +47 -0
  43. package/esm2022/controls/lib/checkbox/checkbox/checkbox.component.mjs +179 -0
  44. package/esm2022/controls/lib/checkbox/checkbox-group/checkbox-group.component.mjs +69 -0
  45. package/esm2022/controls/lib/checkbox/checkbox.module.mjs +21 -0
  46. package/esm2022/controls/lib/control-error/control-error/control-error.component.mjs +64 -0
  47. package/esm2022/controls/lib/control-error/control-error-submit.directive.mjs +48 -0
  48. package/esm2022/controls/lib/control-error/control-error.module.mjs +20 -0
  49. package/esm2022/controls/lib/controls.module.mjs +63 -0
  50. package/esm2022/controls/lib/form-control/form-control/form-control.component.mjs +80 -0
  51. package/esm2022/controls/lib/form-control/form-control-addon/form-control-addon.component.mjs +23 -0
  52. package/esm2022/controls/lib/form-control/form-control-input.directive.mjs +125 -0
  53. package/esm2022/controls/lib/form-control/form-control.module.mjs +35 -0
  54. package/esm2022/controls/lib/radio/radio-button/radio-button.component.mjs +76 -0
  55. package/esm2022/controls/lib/radio/radio-group/radio-group.component.mjs +169 -0
  56. package/esm2022/controls/lib/radio/radio.module.mjs +22 -0
  57. package/esm2022/controls/lib/toggle/toggle/toggle.component.mjs +154 -0
  58. package/esm2022/controls/lib/toggle/toggle-group/toggle-group.component.mjs +63 -0
  59. package/esm2022/controls/lib/toggle/toggle.module.mjs +21 -0
  60. package/esm2022/dashboard/lib/dashboard/dashboard.component.mjs +58 -0
  61. package/{esm2020 → esm2022}/dashboard/lib/dashboard-header/dashboard-header.component.mjs +6 -5
  62. package/esm2022/dashboard/lib/dashboard-menu/dashboard-menu.component.mjs +32 -0
  63. package/esm2022/dashboard/lib/dashboard-menu-item/dashboard-menu-item.component.mjs +30 -0
  64. package/esm2022/dashboard/lib/dashboard-sidebar/dashboard-sidebar.component.mjs +76 -0
  65. package/esm2022/dashboard/lib/dashboard-sidebar-group/dashboard-sidebar-group.component.mjs +100 -0
  66. package/esm2022/dashboard/lib/dashboard-sidebar-item/dashboard-sidebar-item.component.mjs +63 -0
  67. package/esm2022/dashboard/lib/dashboard.module.mjs +48 -0
  68. package/esm2022/dialog/lib/dialog-actions/dialog-actions.component.mjs +13 -0
  69. package/esm2022/dialog/lib/dialog-confirm/dialog-confirm.component.mjs +47 -0
  70. package/esm2022/dialog/lib/dialog-container/dialog-container.component.mjs +78 -0
  71. package/esm2022/dialog/lib/dialog-header/dialog-header.component.mjs +19 -0
  72. package/esm2022/dialog/lib/dialog-link/dialog-link.component.mjs +12 -0
  73. package/esm2022/dialog/lib/dialog-modal/dialog-modal.component.mjs +68 -0
  74. package/esm2022/dialog/lib/dialog-overlay/dialog-overlay.component.mjs +80 -0
  75. package/esm2022/dialog/lib/dialog.insertion.mjs +17 -0
  76. package/esm2022/dialog/lib/dialog.module.mjs +69 -0
  77. package/esm2022/dialog/lib/dialog.service.mjs +69 -0
  78. package/esm2022/elements/lib/avatar/avatar.component.mjs +150 -0
  79. package/esm2022/elements/lib/button/button.component.mjs +63 -0
  80. package/esm2022/elements/lib/checkbox/checkbox.component.mjs +74 -0
  81. package/esm2022/elements/lib/date-picker/date-picker.component.mjs +308 -0
  82. package/esm2022/elements/lib/directives/addon.directive.mjs +31 -0
  83. package/esm2022/elements/lib/directives/form-submit.directive.mjs +51 -0
  84. package/esm2022/elements/lib/directives/form-submitter.directive.mjs +26 -0
  85. package/esm2022/elements/lib/directives/input.directive.mjs +138 -0
  86. package/esm2022/elements/lib/dropdown/dropdown.component.mjs +102 -0
  87. package/esm2022/elements/lib/elements.module.mjs +178 -0
  88. package/esm2022/elements/lib/file-picker/file-picker.component.mjs +237 -0
  89. package/esm2022/elements/lib/form-control/form-control.component.mjs +50 -0
  90. package/esm2022/elements/lib/form-error/form-error.component.mjs +124 -0
  91. package/esm2022/elements/lib/form-group/form-group.component.mjs +19 -0
  92. package/esm2022/elements/lib/icon/icon.component.mjs +103 -0
  93. package/esm2022/elements/lib/image-picker/image-picker.component.mjs +107 -0
  94. package/esm2022/elements/lib/pipes/file-image.pipe.mjs +44 -0
  95. package/esm2022/elements/lib/pipes/file-size.pipe.mjs +29 -0
  96. package/esm2022/elements/lib/pipes/relative-time.pipe.mjs +97 -0
  97. package/esm2022/elements/lib/spinner/spinner.component.mjs +26 -0
  98. package/esm2022/elements/lib/tag/tag.component.mjs +19 -0
  99. package/esm2022/http/lib/http.module.mjs +44 -0
  100. package/esm2022/http/lib/interceptors/base-url.interceptor.mjs +51 -0
  101. package/esm2022/http/lib/interceptors/error.interceptor.mjs +33 -0
  102. package/esm2022/lib/core/services/clipboard.service.mjs +71 -0
  103. package/esm2022/lib/core/services/exif.service.mjs +164 -0
  104. package/esm2022/lib/core/services/file-loader.service.mjs +88 -0
  105. package/esm2022/lib/core/services/image-converter.service.mjs +124 -0
  106. package/esm2022/lib/core/services/languages.service.mjs +75 -0
  107. package/esm2022/lib/core/services/network.service.mjs +56 -0
  108. package/esm2022/lib/core/services/patch.service.mjs +64 -0
  109. package/esm2022/localize/lib/localize.module.mjs +82 -0
  110. package/esm2022/localize/lib/localize.pipe.mjs +47 -0
  111. package/esm2022/localize/lib/localize.service.mjs +186 -0
  112. package/{esm2020 → esm2022}/localize/lib/transforms/interpolate.transform.mjs +1 -1
  113. package/{esm2020 → esm2022}/localize/lib/transforms/reference.transform.mjs +1 -1
  114. package/esm2022/localize/lib/views/localize-string/localize-string.component.mjs +89 -0
  115. package/esm2022/localize/lib/views/localize-template.directive.mjs +22 -0
  116. package/esm2022/masking/lib/directives/currency-mask.directive.mjs +36 -0
  117. package/esm2022/masking/lib/directives/date-mask.directive.mjs +36 -0
  118. package/esm2022/masking/lib/directives/input-mask.directive.mjs +119 -0
  119. package/esm2022/masking/lib/masking.module.mjs +31 -0
  120. package/esm2022/masking/lib/masking.service.mjs +104 -0
  121. package/esm2022/notifications/lib/notifications-item/notifications-item.component.mjs +101 -0
  122. package/esm2022/notifications/lib/notifications-list/notifications-list.component.mjs +48 -0
  123. package/esm2022/notifications/lib/notifications.module.mjs +31 -0
  124. package/esm2022/notifications/lib/notifications.service.mjs +142 -0
  125. package/esm2022/permissions/lib/directives/permission.directive.mjs +89 -0
  126. package/esm2022/permissions/lib/guards/permission.guard.mjs +57 -0
  127. package/esm2022/permissions/lib/permissions.module.mjs +40 -0
  128. package/esm2022/permissions/lib/permissions.service.mjs +97 -0
  129. package/esm2022/recaptcha/lib/recaptcha/recaptcha.component.mjs +220 -0
  130. package/esm2022/recaptcha/lib/recaptcha-loader.service.mjs +96 -0
  131. package/esm2022/recaptcha/lib/recaptcha.module.mjs +28 -0
  132. package/esm2022/storage/lib/storage.service.mjs +110 -0
  133. package/esm2022/table/lib/components/table/table.component.mjs +194 -0
  134. package/esm2022/table/lib/components/table-cell/table-cell.component.mjs +12 -0
  135. package/esm2022/table/lib/components/table-header-cell/table-header-cell.component.mjs +132 -0
  136. package/esm2022/table/lib/components/table-pager/table-pager.component.mjs +137 -0
  137. package/esm2022/table/lib/data/generic.data.mjs +82 -0
  138. package/esm2022/table/lib/table.module.mjs +43 -0
  139. package/esm2022/theming/lib/theming.directive.mjs +39 -0
  140. package/esm2022/theming/lib/theming.module.mjs +17 -0
  141. package/esm2022/tooltip/lib/tooltip-container/tooltip-container.component.mjs +32 -0
  142. package/esm2022/tooltip/lib/tooltip.directive.mjs +141 -0
  143. package/esm2022/tooltip/lib/tooltip.module.mjs +32 -0
  144. package/esm2022/utils/lib/directives/autosize.directive.mjs +73 -0
  145. package/esm2022/utils/lib/directives/focus-trap.directive.mjs +78 -0
  146. package/esm2022/utils/lib/directives/focus.directive.mjs +38 -0
  147. package/esm2022/utils/lib/directives/template.directive.mjs +29 -0
  148. package/esm2022/utils/lib/functions/parse-date.function.mjs +19 -0
  149. package/esm2022/utils/lib/utils.module.mjs +36 -0
  150. package/esm2022/utils/public_api.mjs +7 -0
  151. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-auth.mjs +19 -19
  152. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-auth.mjs.map +1 -1
  153. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-collections.mjs +38 -38
  154. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-collections.mjs.map +1 -1
  155. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-controls.mjs +83 -83
  156. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-controls.mjs.map +1 -1
  157. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-dashboard.mjs +37 -37
  158. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-dashboard.mjs.map +1 -1
  159. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-dialog.mjs +46 -46
  160. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-dialog.mjs.map +1 -1
  161. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-elements.mjs +185 -185
  162. package/fesm2022/bravobit-bb-foundation-elements.mjs.map +1 -0
  163. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-http.mjs +10 -10
  164. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-http.mjs.map +1 -1
  165. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-localize.mjs +20 -20
  166. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-localize.mjs.map +1 -1
  167. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-masking.mjs +20 -20
  168. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-masking.mjs.map +1 -1
  169. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-notifications.mjs +13 -13
  170. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-notifications.mjs.map +1 -1
  171. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-permissions.mjs +13 -13
  172. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-permissions.mjs.map +1 -1
  173. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-recaptcha.mjs +16 -16
  174. package/{fesm2015 → fesm2022}/bravobit-bb-foundation-recaptcha.mjs.map +1 -1
  175. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-storage.mjs +3 -3
  176. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-storage.mjs.map +1 -1
  177. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-table.mjs +46 -36
  178. package/fesm2022/bravobit-bb-foundation-table.mjs.map +1 -0
  179. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-theming.mjs +7 -7
  180. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-theming.mjs.map +1 -1
  181. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-tooltip.mjs +13 -13
  182. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-tooltip.mjs.map +1 -1
  183. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-utils.mjs +42 -23
  184. package/fesm2022/bravobit-bb-foundation-utils.mjs.map +1 -0
  185. package/{fesm2020 → fesm2022}/bravobit-bb-foundation.mjs +21 -21
  186. package/{fesm2020 → fesm2022}/bravobit-bb-foundation.mjs.map +1 -1
  187. package/localize/lib/views/localize-string/localize-string.component.d.ts +1 -1
  188. package/localize/lib/views/localize-template.directive.d.ts +1 -1
  189. package/masking/lib/directives/currency-mask.directive.d.ts +1 -1
  190. package/masking/lib/directives/date-mask.directive.d.ts +1 -1
  191. package/masking/lib/directives/input-mask.directive.d.ts +1 -1
  192. package/notifications/lib/notifications-item/notifications-item.component.d.ts +1 -1
  193. package/package.json +70 -112
  194. package/permissions/lib/directives/permission.directive.d.ts +1 -1
  195. package/recaptcha/lib/recaptcha/recaptcha.component.d.ts +1 -1
  196. package/table/lib/components/table/table.component.d.ts +1 -1
  197. package/table/lib/components/table-header-cell/table-header-cell.component.d.ts +1 -1
  198. package/table/lib/components/table-pager/table-pager.component.d.ts +1 -1
  199. package/table/lib/data/generic.data.d.ts +2 -0
  200. package/theming/lib/theming.directive.d.ts +1 -1
  201. package/tooltip/lib/tooltip.directive.d.ts +1 -1
  202. package/utils/lib/directives/autosize.directive.d.ts +1 -1
  203. package/utils/lib/directives/template.directive.d.ts +1 -1
  204. package/utils/lib/functions/parse-date.function.d.ts +1 -0
  205. package/utils/public_api.d.ts +1 -0
  206. package/esm2020/auth/lib/auth.interceptor.mjs +0 -90
  207. package/esm2020/auth/lib/auth.module.mjs +0 -35
  208. package/esm2020/auth/lib/auth.service.mjs +0 -270
  209. package/esm2020/auth/lib/directives/authenticated.directive.mjs +0 -42
  210. package/esm2020/auth/lib/guards/anonymous.guard.mjs +0 -53
  211. package/esm2020/auth/lib/guards/authenticated.guard.mjs +0 -56
  212. package/esm2020/collections/lib/collections.module.mjs +0 -54
  213. package/esm2020/collections/lib/components/collections-pager/collections-pager.component.mjs +0 -123
  214. package/esm2020/collections/lib/components/collections-viewer/collections-viewer.component.mjs +0 -31
  215. package/esm2020/collections/lib/components/collections.directive.mjs +0 -43
  216. package/esm2020/controls/lib/checkbox/checkbox/checkbox.component.mjs +0 -178
  217. package/esm2020/controls/lib/checkbox/checkbox-group/checkbox-group.component.mjs +0 -68
  218. package/esm2020/controls/lib/checkbox/checkbox.module.mjs +0 -20
  219. package/esm2020/controls/lib/control-error/control-error/control-error.component.mjs +0 -63
  220. package/esm2020/controls/lib/control-error/control-error-submit.directive.mjs +0 -47
  221. package/esm2020/controls/lib/control-error/control-error.module.mjs +0 -19
  222. package/esm2020/controls/lib/controls.module.mjs +0 -62
  223. package/esm2020/controls/lib/form-control/form-control/form-control.component.mjs +0 -79
  224. package/esm2020/controls/lib/form-control/form-control-addon/form-control-addon.component.mjs +0 -22
  225. package/esm2020/controls/lib/form-control/form-control-input.directive.mjs +0 -124
  226. package/esm2020/controls/lib/form-control/form-control.module.mjs +0 -34
  227. package/esm2020/controls/lib/radio/radio-button/radio-button.component.mjs +0 -75
  228. package/esm2020/controls/lib/radio/radio-group/radio-group.component.mjs +0 -168
  229. package/esm2020/controls/lib/radio/radio.module.mjs +0 -21
  230. package/esm2020/controls/lib/toggle/toggle/toggle.component.mjs +0 -153
  231. package/esm2020/controls/lib/toggle/toggle-group/toggle-group.component.mjs +0 -62
  232. package/esm2020/controls/lib/toggle/toggle.module.mjs +0 -20
  233. package/esm2020/dashboard/lib/dashboard/dashboard.component.mjs +0 -57
  234. package/esm2020/dashboard/lib/dashboard-menu/dashboard-menu.component.mjs +0 -31
  235. package/esm2020/dashboard/lib/dashboard-menu-item/dashboard-menu-item.component.mjs +0 -29
  236. package/esm2020/dashboard/lib/dashboard-sidebar/dashboard-sidebar.component.mjs +0 -75
  237. package/esm2020/dashboard/lib/dashboard-sidebar-group/dashboard-sidebar-group.component.mjs +0 -99
  238. package/esm2020/dashboard/lib/dashboard-sidebar-item/dashboard-sidebar-item.component.mjs +0 -62
  239. package/esm2020/dashboard/lib/dashboard.module.mjs +0 -47
  240. package/esm2020/dialog/lib/dialog-actions/dialog-actions.component.mjs +0 -12
  241. package/esm2020/dialog/lib/dialog-confirm/dialog-confirm.component.mjs +0 -46
  242. package/esm2020/dialog/lib/dialog-container/dialog-container.component.mjs +0 -77
  243. package/esm2020/dialog/lib/dialog-header/dialog-header.component.mjs +0 -18
  244. package/esm2020/dialog/lib/dialog-link/dialog-link.component.mjs +0 -11
  245. package/esm2020/dialog/lib/dialog-modal/dialog-modal.component.mjs +0 -67
  246. package/esm2020/dialog/lib/dialog-overlay/dialog-overlay.component.mjs +0 -79
  247. package/esm2020/dialog/lib/dialog.insertion.mjs +0 -16
  248. package/esm2020/dialog/lib/dialog.module.mjs +0 -68
  249. package/esm2020/dialog/lib/dialog.service.mjs +0 -68
  250. package/esm2020/elements/lib/avatar/avatar.component.mjs +0 -149
  251. package/esm2020/elements/lib/button/button.component.mjs +0 -61
  252. package/esm2020/elements/lib/checkbox/checkbox.component.mjs +0 -73
  253. package/esm2020/elements/lib/date-picker/date-picker.component.mjs +0 -307
  254. package/esm2020/elements/lib/directives/addon.directive.mjs +0 -29
  255. package/esm2020/elements/lib/directives/form-submit.directive.mjs +0 -50
  256. package/esm2020/elements/lib/directives/form-submitter.directive.mjs +0 -25
  257. package/esm2020/elements/lib/directives/input.directive.mjs +0 -136
  258. package/esm2020/elements/lib/dropdown/dropdown.component.mjs +0 -100
  259. package/esm2020/elements/lib/elements.module.mjs +0 -177
  260. package/esm2020/elements/lib/file-picker/file-picker.component.mjs +0 -236
  261. package/esm2020/elements/lib/form-control/form-control.component.mjs +0 -49
  262. package/esm2020/elements/lib/form-error/form-error.component.mjs +0 -123
  263. package/esm2020/elements/lib/form-group/form-group.component.mjs +0 -18
  264. package/esm2020/elements/lib/icon/icon.component.mjs +0 -102
  265. package/esm2020/elements/lib/image-picker/image-picker.component.mjs +0 -106
  266. package/esm2020/elements/lib/pipes/file-image.pipe.mjs +0 -43
  267. package/esm2020/elements/lib/pipes/file-size.pipe.mjs +0 -28
  268. package/esm2020/elements/lib/pipes/relative-time.pipe.mjs +0 -96
  269. package/esm2020/elements/lib/spinner/spinner.component.mjs +0 -25
  270. package/esm2020/elements/lib/tag/tag.component.mjs +0 -18
  271. package/esm2020/http/lib/http.module.mjs +0 -43
  272. package/esm2020/http/lib/interceptors/base-url.interceptor.mjs +0 -50
  273. package/esm2020/http/lib/interceptors/error.interceptor.mjs +0 -32
  274. package/esm2020/lib/core/services/clipboard.service.mjs +0 -70
  275. package/esm2020/lib/core/services/exif.service.mjs +0 -163
  276. package/esm2020/lib/core/services/file-loader.service.mjs +0 -87
  277. package/esm2020/lib/core/services/image-converter.service.mjs +0 -123
  278. package/esm2020/lib/core/services/languages.service.mjs +0 -74
  279. package/esm2020/lib/core/services/network.service.mjs +0 -55
  280. package/esm2020/lib/core/services/patch.service.mjs +0 -63
  281. package/esm2020/localize/lib/localize.module.mjs +0 -81
  282. package/esm2020/localize/lib/localize.pipe.mjs +0 -46
  283. package/esm2020/localize/lib/localize.service.mjs +0 -185
  284. package/esm2020/localize/lib/views/localize-string/localize-string.component.mjs +0 -88
  285. package/esm2020/localize/lib/views/localize-template.directive.mjs +0 -21
  286. package/esm2020/masking/lib/directives/currency-mask.directive.mjs +0 -35
  287. package/esm2020/masking/lib/directives/date-mask.directive.mjs +0 -35
  288. package/esm2020/masking/lib/directives/input-mask.directive.mjs +0 -118
  289. package/esm2020/masking/lib/masking.module.mjs +0 -30
  290. package/esm2020/masking/lib/masking.service.mjs +0 -103
  291. package/esm2020/notifications/lib/notifications-item/notifications-item.component.mjs +0 -100
  292. package/esm2020/notifications/lib/notifications-list/notifications-list.component.mjs +0 -47
  293. package/esm2020/notifications/lib/notifications.module.mjs +0 -30
  294. package/esm2020/notifications/lib/notifications.service.mjs +0 -141
  295. package/esm2020/permissions/lib/directives/permission.directive.mjs +0 -88
  296. package/esm2020/permissions/lib/guards/permission.guard.mjs +0 -56
  297. package/esm2020/permissions/lib/permissions.module.mjs +0 -39
  298. package/esm2020/permissions/lib/permissions.service.mjs +0 -96
  299. package/esm2020/recaptcha/lib/recaptcha/recaptcha.component.mjs +0 -219
  300. package/esm2020/recaptcha/lib/recaptcha-loader.service.mjs +0 -95
  301. package/esm2020/recaptcha/lib/recaptcha.module.mjs +0 -27
  302. package/esm2020/storage/lib/storage.service.mjs +0 -109
  303. package/esm2020/table/lib/components/table/table.component.mjs +0 -191
  304. package/esm2020/table/lib/components/table-cell/table-cell.component.mjs +0 -11
  305. package/esm2020/table/lib/components/table-header-cell/table-header-cell.component.mjs +0 -131
  306. package/esm2020/table/lib/components/table-pager/table-pager.component.mjs +0 -136
  307. package/esm2020/table/lib/data/generic.data.mjs +0 -72
  308. package/esm2020/table/lib/table.module.mjs +0 -42
  309. package/esm2020/theming/lib/theming.directive.mjs +0 -38
  310. package/esm2020/theming/lib/theming.module.mjs +0 -16
  311. package/esm2020/tooltip/lib/tooltip-container/tooltip-container.component.mjs +0 -31
  312. package/esm2020/tooltip/lib/tooltip.directive.mjs +0 -140
  313. package/esm2020/tooltip/lib/tooltip.module.mjs +0 -31
  314. package/esm2020/utils/lib/directives/autosize.directive.mjs +0 -72
  315. package/esm2020/utils/lib/directives/focus-trap.directive.mjs +0 -77
  316. package/esm2020/utils/lib/directives/focus.directive.mjs +0 -37
  317. package/esm2020/utils/lib/directives/template.directive.mjs +0 -28
  318. package/esm2020/utils/lib/utils.module.mjs +0 -35
  319. package/esm2020/utils/public_api.mjs +0 -6
  320. package/fesm2015/bravobit-bb-foundation-auth.mjs +0 -851
  321. package/fesm2015/bravobit-bb-foundation-auth.mjs.map +0 -1
  322. package/fesm2015/bravobit-bb-foundation-collections.mjs +0 -474
  323. package/fesm2015/bravobit-bb-foundation-collections.mjs.map +0 -1
  324. package/fesm2015/bravobit-bb-foundation-controls.mjs +0 -1217
  325. package/fesm2015/bravobit-bb-foundation-controls.mjs.map +0 -1
  326. package/fesm2015/bravobit-bb-foundation-dashboard.mjs +0 -417
  327. package/fesm2015/bravobit-bb-foundation-dashboard.mjs.map +0 -1
  328. package/fesm2015/bravobit-bb-foundation-dialog.mjs +0 -512
  329. package/fesm2015/bravobit-bb-foundation-dialog.mjs.map +0 -1
  330. package/fesm2015/bravobit-bb-foundation-elements.mjs +0 -1883
  331. package/fesm2015/bravobit-bb-foundation-elements.mjs.map +0 -1
  332. package/fesm2015/bravobit-bb-foundation-http.mjs +0 -176
  333. package/fesm2015/bravobit-bb-foundation-http.mjs.map +0 -1
  334. package/fesm2015/bravobit-bb-foundation-localize.mjs +0 -835
  335. package/fesm2015/bravobit-bb-foundation-localize.mjs.map +0 -1
  336. package/fesm2015/bravobit-bb-foundation-masking.mjs +0 -334
  337. package/fesm2015/bravobit-bb-foundation-masking.mjs.map +0 -1
  338. package/fesm2015/bravobit-bb-foundation-notifications.mjs +0 -357
  339. package/fesm2015/bravobit-bb-foundation-notifications.mjs.map +0 -1
  340. package/fesm2015/bravobit-bb-foundation-permissions.mjs +0 -310
  341. package/fesm2015/bravobit-bb-foundation-permissions.mjs.map +0 -1
  342. package/fesm2015/bravobit-bb-foundation-recaptcha.mjs +0 -349
  343. package/fesm2015/bravobit-bb-foundation-rxjs.mjs +0 -22
  344. package/fesm2015/bravobit-bb-foundation-rxjs.mjs.map +0 -1
  345. package/fesm2015/bravobit-bb-foundation-storage.mjs +0 -418
  346. package/fesm2015/bravobit-bb-foundation-storage.mjs.map +0 -1
  347. package/fesm2015/bravobit-bb-foundation-table.mjs +0 -603
  348. package/fesm2015/bravobit-bb-foundation-table.mjs.map +0 -1
  349. package/fesm2015/bravobit-bb-foundation-theming.mjs +0 -382
  350. package/fesm2015/bravobit-bb-foundation-theming.mjs.map +0 -1
  351. package/fesm2015/bravobit-bb-foundation-tooltip.mjs +0 -210
  352. package/fesm2015/bravobit-bb-foundation-tooltip.mjs.map +0 -1
  353. package/fesm2015/bravobit-bb-foundation-utils.mjs +0 -246
  354. package/fesm2015/bravobit-bb-foundation-utils.mjs.map +0 -1
  355. package/fesm2015/bravobit-bb-foundation.mjs +0 -929
  356. package/fesm2015/bravobit-bb-foundation.mjs.map +0 -1
  357. package/fesm2020/bravobit-bb-foundation-elements.mjs.map +0 -1
  358. package/fesm2020/bravobit-bb-foundation-recaptcha.mjs.map +0 -1
  359. package/fesm2020/bravobit-bb-foundation-table.mjs.map +0 -1
  360. package/fesm2020/bravobit-bb-foundation-utils.mjs.map +0 -1
  361. /package/{esm2020 → esm2022}/auth/bravobit-bb-foundation-auth.mjs +0 -0
  362. /package/{esm2020 → esm2022}/auth/lib/auth.session.mjs +0 -0
  363. /package/{esm2020 → esm2022}/auth/lib/directives/abstract.directive.mjs +0 -0
  364. /package/{esm2020 → esm2022}/auth/lib/helpers/jwt.helper.mjs +0 -0
  365. /package/{esm2020 → esm2022}/auth/lib/interfaces/config.interface.mjs +0 -0
  366. /package/{esm2020 → esm2022}/auth/lib/interfaces/provider.interface.mjs +0 -0
  367. /package/{esm2020 → esm2022}/auth/lib/interfaces/token.interface.mjs +0 -0
  368. /package/{esm2020 → esm2022}/auth/lib/providers/email.provider.mjs +0 -0
  369. /package/{esm2020 → esm2022}/auth/lib/providers/verify.provider.mjs +0 -0
  370. /package/{esm2020 → esm2022}/auth/lib/tokens/use-authorization.token.mjs +0 -0
  371. /package/{esm2020 → esm2022}/auth/public_api.mjs +0 -0
  372. /package/{esm2020 → esm2022}/bravobit-bb-foundation.mjs +0 -0
  373. /package/{esm2020 → esm2022}/collections/bravobit-bb-foundation-collections.mjs +0 -0
  374. /package/{esm2020 → esm2022}/collections/lib/collection.mjs +0 -0
  375. /package/{esm2020 → esm2022}/collections/lib/interfaces/collection.interface.mjs +0 -0
  376. /package/{esm2020 → esm2022}/collections/lib/providers/api-collection.provider.mjs +0 -0
  377. /package/{esm2020 → esm2022}/collections/lib/providers/collection.provider.mjs +0 -0
  378. /package/{esm2020 → esm2022}/collections/lib/providers/local-collection.provider.mjs +0 -0
  379. /package/{esm2020 → esm2022}/collections/public_api.mjs +0 -0
  380. /package/{esm2020 → esm2022}/controls/bravobit-bb-foundation-controls.mjs +0 -0
  381. /package/{esm2020 → esm2022}/controls/lib/control-error/control-error/control-error.animation.mjs +0 -0
  382. /package/{esm2020 → esm2022}/controls/lib/control-error/control-error.defaults.mjs +0 -0
  383. /package/{esm2020 → esm2022}/controls/lib/control-error/control-error.interface.mjs +0 -0
  384. /package/{esm2020 → esm2022}/controls/lib/control-error/control-error.utils.mjs +0 -0
  385. /package/{esm2020 → esm2022}/controls/lib/controls.interfaces.mjs +0 -0
  386. /package/{esm2020 → esm2022}/controls/public_api.mjs +0 -0
  387. /package/{esm2020 → esm2022}/dashboard/bravobit-bb-foundation-dashboard.mjs +0 -0
  388. /package/{esm2020 → esm2022}/dashboard/public_api.mjs +0 -0
  389. /package/{esm2020 → esm2022}/dialog/bravobit-bb-foundation-dialog.mjs +0 -0
  390. /package/{esm2020 → esm2022}/dialog/lib/dialog-container/dialog-container.animations.mjs +0 -0
  391. /package/{esm2020 → esm2022}/dialog/lib/dialog-overlay/dialog-overlay.animations.mjs +0 -0
  392. /package/{esm2020 → esm2022}/dialog/lib/dialog.interfaces.mjs +0 -0
  393. /package/{esm2020 → esm2022}/dialog/lib/dialog.ref.mjs +0 -0
  394. /package/{esm2020 → esm2022}/dialog/public_api.mjs +0 -0
  395. /package/{esm2020 → esm2022}/elements/bravobit-bb-foundation-elements.mjs +0 -0
  396. /package/{esm2020 → esm2022}/elements/lib/elements.interfaces.mjs +0 -0
  397. /package/{esm2020 → esm2022}/elements/public_api.mjs +0 -0
  398. /package/{esm2020 → esm2022}/http/bravobit-bb-foundation-http.mjs +0 -0
  399. /package/{esm2020 → esm2022}/http/lib/classes/http.config.mjs +0 -0
  400. /package/{esm2020 → esm2022}/http/lib/classes/http.error.mjs +0 -0
  401. /package/{esm2020 → esm2022}/http/lib/http.interfaces.mjs +0 -0
  402. /package/{esm2020 → esm2022}/http/public_api.mjs +0 -0
  403. /package/{esm2020 → esm2022}/lib/core/functions/date.utils.mjs +0 -0
  404. /package/{esm2020 → esm2022}/lib/core/functions/password.utils.mjs +0 -0
  405. /package/{esm2020 → esm2022}/lib/core/miscellaneous/regex.mjs +0 -0
  406. /package/{esm2020 → esm2022}/lib/core/miscellaneous/validator.mjs +0 -0
  407. /package/{esm2020 → esm2022}/lib/core/mixins/can-disable.mjs +0 -0
  408. /package/{esm2020 → esm2022}/lib/core/mixins/can-hide-errors.mjs +0 -0
  409. /package/{esm2020 → esm2022}/lib/core/mixins/can-load.mjs +0 -0
  410. /package/{esm2020 → esm2022}/lib/core/mixins/constructor.mjs +0 -0
  411. /package/{esm2020 → esm2022}/lib/core/mixins/has-error.mjs +0 -0
  412. /package/{esm2020 → esm2022}/lib/core/mixins/is-focused.mjs +0 -0
  413. /package/{esm2020 → esm2022}/lib/core/mixins/is-grouped.mjs +0 -0
  414. /package/{esm2020 → esm2022}/lib/core/mixins/is-readonly.mjs +0 -0
  415. /package/{esm2020 → esm2022}/lib/core/mixins/is-required.mjs +0 -0
  416. /package/{esm2020 → esm2022}/lib/core/tokens/accept-language.token.mjs +0 -0
  417. /package/{esm2020 → esm2022}/lib/core/tokens/base-url.token.mjs +0 -0
  418. /package/{esm2020 → esm2022}/lib/core/tokens/cookie.token.mjs +0 -0
  419. /package/{esm2020 → esm2022}/lib/core/tokens/location.token.mjs +0 -0
  420. /package/{esm2020 → esm2022}/lib/core/tokens/navigator.token.mjs +0 -0
  421. /package/{esm2020 → esm2022}/lib/core/tokens/window.token.mjs +0 -0
  422. /package/{esm2020 → esm2022}/localize/bravobit-bb-foundation-localize.mjs +0 -0
  423. /package/{esm2020 → esm2022}/localize/lib/dictionary/dictionary.class.mjs +0 -0
  424. /package/{esm2020 → esm2022}/localize/lib/dictionary/dictionary.context.mjs +0 -0
  425. /package/{esm2020 → esm2022}/localize/lib/dictionary/dictionary.data.mjs +0 -0
  426. /package/{esm2020 → esm2022}/localize/lib/functions/date.function.mjs +0 -0
  427. /package/{esm2020 → esm2022}/localize/lib/functions/lowercase.function.mjs +0 -0
  428. /package/{esm2020 → esm2022}/localize/lib/functions/uppercase.function.mjs +0 -0
  429. /package/{esm2020 → esm2022}/localize/lib/handlers/missing.handler.mjs +0 -0
  430. /package/{esm2020 → esm2022}/localize/lib/interfaces/config.interfaces.mjs +0 -0
  431. /package/{esm2020 → esm2022}/localize/lib/interfaces/functions.interfaces.mjs +0 -0
  432. /package/{esm2020 → esm2022}/localize/lib/interfaces/handlers.interfaces.mjs +0 -0
  433. /package/{esm2020 → esm2022}/localize/lib/interfaces/options.interfaces.mjs +0 -0
  434. /package/{esm2020 → esm2022}/localize/lib/interfaces/transforms.interfaces.mjs +0 -0
  435. /package/{esm2020 → esm2022}/localize/lib/locale.token.mjs +0 -0
  436. /package/{esm2020 → esm2022}/localize/lib/localizations/dutch.localization.mjs +0 -0
  437. /package/{esm2020 → esm2022}/localize/lib/localizations/english.localization.mjs +0 -0
  438. /package/{esm2020 → esm2022}/localize/lib/transforms/abstract.transform.mjs +0 -0
  439. /package/{esm2020 → esm2022}/localize/public_api.mjs +0 -0
  440. /package/{esm2020 → esm2022}/masking/bravobit-bb-foundation-masking.mjs +0 -0
  441. /package/{esm2020 → esm2022}/masking/lib/input-mask.interface.mjs +0 -0
  442. /package/{esm2020 → esm2022}/masking/public_api.mjs +0 -0
  443. /package/{esm2020 → esm2022}/notifications/bravobit-bb-foundation-notifications.mjs +0 -0
  444. /package/{esm2020 → esm2022}/notifications/lib/notifications.animations.mjs +0 -0
  445. /package/{esm2020 → esm2022}/notifications/lib/notifications.interfaces.mjs +0 -0
  446. /package/{esm2020 → esm2022}/notifications/public_api.mjs +0 -0
  447. /package/{esm2020 → esm2022}/permissions/bravobit-bb-foundation-permissions.mjs +0 -0
  448. /package/{esm2020 → esm2022}/permissions/lib/handlers/abstract.handler.mjs +0 -0
  449. /package/{esm2020 → esm2022}/permissions/lib/handlers/local.handler.mjs +0 -0
  450. /package/{esm2020 → esm2022}/permissions/lib/permissions.interface.mjs +0 -0
  451. /package/{esm2020 → esm2022}/permissions/public_api.mjs +0 -0
  452. /package/{esm2020 → esm2022}/public_api.mjs +0 -0
  453. /package/{esm2020 → esm2022}/recaptcha/bravobit-bb-foundation-recaptcha.mjs +0 -0
  454. /package/{esm2020 → esm2022}/recaptcha/lib/recaptcha.interface.mjs +0 -0
  455. /package/{esm2020 → esm2022}/recaptcha/public_api.mjs +0 -0
  456. /package/{esm2020 → esm2022}/rxjs/bravobit-bb-foundation-rxjs.mjs +0 -0
  457. /package/{esm2020 → esm2022}/rxjs/lib/observables/get-control-value.observable.mjs +0 -0
  458. /package/{esm2020 → esm2022}/rxjs/lib/operators/combine-latest-map.operator.mjs +0 -0
  459. /package/{esm2020 → esm2022}/rxjs/lib/operators/filter-nil.operator.mjs +0 -0
  460. /package/{esm2020 → esm2022}/rxjs/public_api.mjs +0 -0
  461. /package/{esm2020 → esm2022}/storage/bravobit-bb-foundation-storage.mjs +0 -0
  462. /package/{esm2020 → esm2022}/storage/lib/interfaces/attributes.interface.mjs +0 -0
  463. /package/{esm2020 → esm2022}/storage/lib/interfaces/memory.interface.mjs +0 -0
  464. /package/{esm2020 → esm2022}/storage/lib/interfaces/strategy.interface.mjs +0 -0
  465. /package/{esm2020 → esm2022}/storage/lib/strategies/cookie-storage.strategy.mjs +0 -0
  466. /package/{esm2020 → esm2022}/storage/lib/strategies/memory-storage.strategy.mjs +0 -0
  467. /package/{esm2020 → esm2022}/storage/lib/strategies/polyfill-storage.strategy.mjs +0 -0
  468. /package/{esm2020 → esm2022}/storage/public_api.mjs +0 -0
  469. /package/{esm2020 → esm2022}/table/bravobit-bb-foundation-table.mjs +0 -0
  470. /package/{esm2020 → esm2022}/table/lib/data/datasource.data.mjs +0 -0
  471. /package/{esm2020 → esm2022}/table/lib/interfaces/datasource.interface.mjs +0 -0
  472. /package/{esm2020 → esm2022}/table/lib/interfaces/table.interfaces.mjs +0 -0
  473. /package/{esm2020 → esm2022}/table/public_api.mjs +0 -0
  474. /package/{esm2020 → esm2022}/theming/bravobit-bb-foundation-theming.mjs +0 -0
  475. /package/{esm2020 → esm2022}/theming/lib/themes/checkbox-group.theme.mjs +0 -0
  476. /package/{esm2020 → esm2022}/theming/lib/themes/checkbox.theme.mjs +0 -0
  477. /package/{esm2020 → esm2022}/theming/lib/themes/control-error.theme.mjs +0 -0
  478. /package/{esm2020 → esm2022}/theming/lib/themes/form-control-addon.theme.mjs +0 -0
  479. /package/{esm2020 → esm2022}/theming/lib/themes/form-control.theme.mjs +0 -0
  480. /package/{esm2020 → esm2022}/theming/lib/themes/radio-button.theme.mjs +0 -0
  481. /package/{esm2020 → esm2022}/theming/lib/themes/radio-group.theme.mjs +0 -0
  482. /package/{esm2020 → esm2022}/theming/lib/themes/toggle-group.theme.mjs +0 -0
  483. /package/{esm2020 → esm2022}/theming/lib/themes/toggle.theme.mjs +0 -0
  484. /package/{esm2020 → esm2022}/theming/lib/theming.data.mjs +0 -0
  485. /package/{esm2020 → esm2022}/theming/lib/theming.interface.mjs +0 -0
  486. /package/{esm2020 → esm2022}/theming/lib/utils/theming.variable.mjs +0 -0
  487. /package/{esm2020 → esm2022}/theming/public_api.mjs +0 -0
  488. /package/{esm2020 → esm2022}/tooltip/bravobit-bb-foundation-tooltip.mjs +0 -0
  489. /package/{esm2020 → esm2022}/tooltip/lib/tooltip.interfaces.mjs +0 -0
  490. /package/{esm2020 → esm2022}/tooltip/public_api.mjs +0 -0
  491. /package/{esm2020 → esm2022}/utils/bravobit-bb-foundation-utils.mjs +0 -0
  492. /package/{fesm2020 → fesm2022}/bravobit-bb-foundation-rxjs.mjs +0 -0
  493. /package/{fesm2020 → fesm2022}/bravobit-bb-foundation-rxjs.mjs.map +0 -0
@@ -1,39 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { LocalPermissionsHandler } from './handlers/local.handler';
3
- import { PermissionsHandler } from './handlers/abstract.handler';
4
- import { BbPermission } from './directives/permission.directive';
5
- import { PermissionsConfig } from './permissions.interface';
6
- import { Permissions } from './permissions.service';
7
- import { Auth } from '@bravobit/bb-foundation/auth';
8
- import * as i0 from "@angular/core";
9
- export class PermissionsModule {
10
- static forRoot(config) {
11
- const defaultProvider = {
12
- provide: PermissionsHandler,
13
- deps: [Auth],
14
- useFactory: (auth) => {
15
- return new LocalPermissionsHandler(auth, config?.localPermissions ?? {});
16
- }
17
- };
18
- const permissionHandlerProvider = config?.provider ?? defaultProvider;
19
- return {
20
- ngModule: PermissionsModule,
21
- providers: [
22
- { provide: PermissionsConfig, useValue: config },
23
- permissionHandlerProvider,
24
- Permissions
25
- ]
26
- };
27
- }
28
- }
29
- PermissionsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: PermissionsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
30
- PermissionsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.6", ngImport: i0, type: PermissionsModule, declarations: [BbPermission], exports: [BbPermission] });
31
- PermissionsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: PermissionsModule });
32
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: PermissionsModule, decorators: [{
33
- type: NgModule,
34
- args: [{
35
- declarations: [BbPermission],
36
- exports: [BbPermission]
37
- }]
38
- }] });
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbnMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9wZXJtaXNzaW9ucy9zcmMvbGliL3Blcm1pc3Npb25zLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXNCLFFBQVEsRUFBVyxNQUFNLGVBQWUsQ0FBQztBQUN0RSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUNqRSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUMvRCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDL0QsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDMUQsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQ2xELE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQzs7QUFNbEQsTUFBTSxPQUFPLGlCQUFpQjtJQUUxQixNQUFNLENBQUMsT0FBTyxDQUFDLE1BQTBCO1FBQ3JDLE1BQU0sZUFBZSxHQUFhO1lBQzlCLE9BQU8sRUFBRSxrQkFBa0I7WUFDM0IsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDO1lBQ1osVUFBVSxFQUFFLENBQUMsSUFBVSxFQUFFLEVBQUU7Z0JBQ3ZCLE9BQU8sSUFBSSx1QkFBdUIsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLGdCQUFnQixJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQzdFLENBQUM7U0FDSixDQUFDO1FBQ0YsTUFBTSx5QkFBeUIsR0FBRyxNQUFNLEVBQUUsUUFBUSxJQUFJLGVBQWUsQ0FBQztRQUV0RSxPQUFPO1lBQ0gsUUFBUSxFQUFFLGlCQUFpQjtZQUMzQixTQUFTLEVBQUU7Z0JBQ1AsRUFBQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBQztnQkFDOUMseUJBQXlCO2dCQUN6QixXQUFXO2FBQ2Q7U0FDSixDQUFDO0lBQ04sQ0FBQzs7OEdBcEJRLGlCQUFpQjsrR0FBakIsaUJBQWlCLGlCQUhYLFlBQVksYUFDakIsWUFBWTsrR0FFYixpQkFBaUI7MkZBQWpCLGlCQUFpQjtrQkFKN0IsUUFBUTttQkFBQztvQkFDTixZQUFZLEVBQUUsQ0FBQyxZQUFZLENBQUM7b0JBQzVCLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztpQkFDMUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge01vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlLCBQcm92aWRlcn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0xvY2FsUGVybWlzc2lvbnNIYW5kbGVyfSBmcm9tICcuL2hhbmRsZXJzL2xvY2FsLmhhbmRsZXInO1xuaW1wb3J0IHtQZXJtaXNzaW9uc0hhbmRsZXJ9IGZyb20gJy4vaGFuZGxlcnMvYWJzdHJhY3QuaGFuZGxlcic7XG5pbXBvcnQge0JiUGVybWlzc2lvbn0gZnJvbSAnLi9kaXJlY3RpdmVzL3Blcm1pc3Npb24uZGlyZWN0aXZlJztcbmltcG9ydCB7UGVybWlzc2lvbnNDb25maWd9IGZyb20gJy4vcGVybWlzc2lvbnMuaW50ZXJmYWNlJztcbmltcG9ydCB7UGVybWlzc2lvbnN9IGZyb20gJy4vcGVybWlzc2lvbnMuc2VydmljZSc7XG5pbXBvcnQge0F1dGh9IGZyb20gJ0BicmF2b2JpdC9iYi1mb3VuZGF0aW9uL2F1dGgnO1xuXG5ATmdNb2R1bGUoe1xuICAgIGRlY2xhcmF0aW9uczogW0JiUGVybWlzc2lvbl0sXG4gICAgZXhwb3J0czogW0JiUGVybWlzc2lvbl1cbn0pXG5leHBvcnQgY2xhc3MgUGVybWlzc2lvbnNNb2R1bGUge1xuXG4gICAgc3RhdGljIGZvclJvb3QoY29uZmlnPzogUGVybWlzc2lvbnNDb25maWcpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPFBlcm1pc3Npb25zTW9kdWxlPiB7XG4gICAgICAgIGNvbnN0IGRlZmF1bHRQcm92aWRlcjogUHJvdmlkZXIgPSB7XG4gICAgICAgICAgICBwcm92aWRlOiBQZXJtaXNzaW9uc0hhbmRsZXIsXG4gICAgICAgICAgICBkZXBzOiBbQXV0aF0sXG4gICAgICAgICAgICB1c2VGYWN0b3J5OiAoYXV0aDogQXV0aCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgTG9jYWxQZXJtaXNzaW9uc0hhbmRsZXIoYXV0aCwgY29uZmlnPy5sb2NhbFBlcm1pc3Npb25zID8/IHt9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgcGVybWlzc2lvbkhhbmRsZXJQcm92aWRlciA9IGNvbmZpZz8ucHJvdmlkZXIgPz8gZGVmYXVsdFByb3ZpZGVyO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBuZ01vZHVsZTogUGVybWlzc2lvbnNNb2R1bGUsXG4gICAgICAgICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgICAgICAgICB7cHJvdmlkZTogUGVybWlzc2lvbnNDb25maWcsIHVzZVZhbHVlOiBjb25maWd9LFxuICAgICAgICAgICAgICAgIHBlcm1pc3Npb25IYW5kbGVyUHJvdmlkZXIsXG4gICAgICAgICAgICAgICAgUGVybWlzc2lvbnNcbiAgICAgICAgICAgIF1cbiAgICAgICAgfTtcbiAgICB9XG5cbn1cbiJdfQ==
@@ -1,96 +0,0 @@
1
- import { BehaviorSubject, isObservable, of, Subscription } from 'rxjs';
2
- import { distinctUntilChanged, map } from 'rxjs/operators';
3
- import { Injectable } from '@angular/core';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "./handlers/abstract.handler";
6
- export class Permissions {
7
- constructor(_handler) {
8
- this._handler = _handler;
9
- // State.
10
- this._activePermissions$ = new BehaviorSubject([]);
11
- // Subscriptions.
12
- this._subscription = new Subscription();
13
- this.trackPermissions();
14
- }
15
- ngOnDestroy() {
16
- this._subscription?.unsubscribe();
17
- }
18
- all() {
19
- return this._activePermissions$.asObservable();
20
- }
21
- allSync() {
22
- return this._activePermissions$.getValue();
23
- }
24
- has(value, options) {
25
- const requiredPermissions = this.getRequiredPermissions(value);
26
- if (requiredPermissions?.length <= 0) {
27
- return of(false);
28
- }
29
- return this._activePermissions$.pipe(map(activePermissions => this.hasPermission(requiredPermissions, activePermissions, options)), distinctUntilChanged());
30
- }
31
- hasSync(value, options) {
32
- const requiredPermissions = this.getRequiredPermissions(value);
33
- if (requiredPermissions?.length <= 0) {
34
- return false;
35
- }
36
- const activePermissions = this._activePermissions$.getValue();
37
- return this.hasPermission(requiredPermissions, activePermissions, options);
38
- }
39
- hasPermission(requiredPermissions, activePermissions, options) {
40
- const mode = options?.mode ?? 'and';
41
- switch (mode) {
42
- case 'or':
43
- return this.verifyModeOr(requiredPermissions, activePermissions);
44
- case 'not':
45
- return this.verifyModeNot(requiredPermissions, activePermissions);
46
- case 'and':
47
- default:
48
- return this.verifyModeAnd(requiredPermissions, activePermissions);
49
- }
50
- }
51
- verifyModeAnd(permissions, activePermissions) {
52
- for (const permission of permissions) {
53
- const verified = activePermissions?.includes(permission);
54
- if (!verified) {
55
- return false;
56
- }
57
- }
58
- return true;
59
- }
60
- verifyModeNot(permissions, activePermissions) {
61
- for (const permission of permissions) {
62
- if (activePermissions.includes(permission)) {
63
- return false;
64
- }
65
- }
66
- return true;
67
- }
68
- verifyModeOr(permissions, activePermissions) {
69
- for (const permission of permissions) {
70
- const verified = activePermissions?.includes(permission);
71
- if (verified) {
72
- return true;
73
- }
74
- }
75
- return false;
76
- }
77
- getRequiredPermissions(value) {
78
- return Array.isArray(value)
79
- ? value
80
- : [value];
81
- }
82
- trackPermissions() {
83
- const data = this._handler.get();
84
- const permissions$ = isObservable(data) ? data : of(data);
85
- const subscription = permissions$.subscribe(permissions => {
86
- this._activePermissions$.next(permissions ?? []);
87
- });
88
- this._subscription.add(subscription);
89
- }
90
- }
91
- Permissions.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: Permissions, deps: [{ token: i1.PermissionsHandler }], target: i0.ɵɵFactoryTarget.Injectable });
92
- Permissions.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: Permissions });
93
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: Permissions, decorators: [{
94
- type: Injectable
95
- }], ctorParameters: function () { return [{ type: i1.PermissionsHandler }]; } });
96
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbnMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vcGVybWlzc2lvbnMvc3JjL2xpYi9wZXJtaXNzaW9ucy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxlQUFlLEVBQUUsWUFBWSxFQUFFLEVBQUUsRUFBRSxZQUFZLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFHckUsT0FBTyxFQUFDLG9CQUFvQixFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3pELE9BQU8sRUFBQyxVQUFVLEVBQVksTUFBTSxlQUFlLENBQUM7OztBQUdwRCxNQUFNLE9BQU8sV0FBVztJQVFwQixZQUFvQixRQUE0QjtRQUE1QixhQUFRLEdBQVIsUUFBUSxDQUFvQjtRQU5oRCxTQUFTO1FBQ0Qsd0JBQW1CLEdBQUcsSUFBSSxlQUFlLENBQVcsRUFBRSxDQUFDLENBQUM7UUFFaEUsaUJBQWlCO1FBQ1Qsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBR3ZDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLGFBQWEsRUFBRSxXQUFXLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRUQsR0FBRztRQUNDLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ25ELENBQUM7SUFFRCxPQUFPO1FBQ0gsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDL0MsQ0FBQztJQUVELEdBQUcsQ0FBQyxLQUF3QixFQUFFLE9BQTRCO1FBQ3RELE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQy9ELElBQUksbUJBQW1CLEVBQUUsTUFBTSxJQUFJLENBQUMsRUFBRTtZQUNs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LFlBQVksR0FBRyxZQUFZLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxFQUFFO1lBQ3RELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3JELENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDekMsQ0FBQzs7d0dBekdRLFdBQVc7NEdBQVgsV0FBVzsyRkFBWCxXQUFXO2tCQUR2QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIGlzT2JzZXJ2YWJsZSwgb2YsIFN1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1Blcm1pc3Npb25zSGFuZGxlcn0gZnJvbSAnLi9oYW5kbGVycy9hYnN0cmFjdC5oYW5kbGVyJztcbmltcG9ydCB7UGVybWlzc2lvbnNPcHRpb25zfSBmcm9tICcuL3Blcm1pc3Npb25zLmludGVyZmFjZSc7XG5pbXBvcnQge2Rpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7SW5qZWN0YWJsZSwgT25EZXN0cm95fSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFBlcm1pc3Npb25zIGltcGxlbWVudHMgT25EZXN0cm95IHtcblxuICAgIC8vIFN0YXRlLlxuICAgIHByaXZhdGUgX2FjdGl2ZVBlcm1pc3Npb25zJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nW10+KFtdKTtcblxuICAgIC8vIFN1YnNjcmlwdGlvbnMuXG4gICAgcHJpdmF0ZSBfc3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfaGFuZGxlcjogUGVybWlzc2lvbnNIYW5kbGVyKSB7XG4gICAgICAgIHRoaXMudHJhY2tQZXJtaXNzaW9ucygpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgYWxsKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWN0aXZlUGVybWlzc2lvbnMkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIGFsbFN5bmMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hY3RpdmVQZXJtaXNzaW9ucyQuZ2V0VmFsdWUoKTtcbiAgICB9XG5cbiAgICBoYXModmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdLCBvcHRpb25zPzogUGVybWlzc2lvbnNPcHRpb25zKSB7XG4gICAgICAgIGNvbnN0IHJlcXVpcmVkUGVybWlzc2lvbnMgPSB0aGlzLmdldFJlcXVpcmVkUGVybWlzc2lvbnModmFsdWUpO1xuICAgICAgICBpZiAocmVxdWlyZWRQZXJtaXNzaW9ucz8ubGVuZ3RoIDw9IDApIHtcbiAgICAgICAgICAgIHJldHVybiBvZihmYWxzZSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5fYWN0aXZlUGVybWlzc2lvbnMkLnBpcGUoXG4gICAgICAgICAgICBtYXAoYWN0aXZlUGVybWlzc2lvbnMgPT4gdGhpcy5oYXNQZXJtaXNzaW9uKHJlcXVpcmVkUGVybWlzc2lvbnMsIGFjdGl2ZVBlcm1pc3Npb25zLCBvcHRpb25zKSksXG4gICAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgaGFzU3luYyh2YWx1ZTogc3RyaW5nIHwgc3RyaW5nW10sIG9wdGlvbnM/OiBQZXJtaXNzaW9uc09wdGlvbnMpIHtcbiAgICAgICAgY29uc3QgcmVxdWlyZWRQZXJtaXNzaW9ucyA9IHRoaXMuZ2V0UmVxdWlyZWRQZXJtaXNzaW9ucyh2YWx1ZSk7XG4gICAgICAgIGlmIChyZXF1aXJlZFBlcm1pc3Npb25zPy5sZW5ndGggPD0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgYWN0aXZlUGVybWlzc2lvbnMgPSB0aGlzLl9hY3RpdmVQZXJtaXNzaW9ucyQuZ2V0VmFsdWUoKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaGFzUGVybWlzc2lvbihyZXF1aXJlZFBlcm1pc3Npb25zLCBhY3RpdmVQZXJtaXNzaW9ucywgb3B0aW9ucyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYXNQZXJtaXNzaW9uKHJlcXVpcmVkUGVybWlzc2lvbnM6IHN0cmluZ1tdLCBhY3RpdmVQZXJtaXNzaW9uczogc3RyaW5nW10sIG9wdGlvbnM/OiBQZXJtaXNzaW9uc09wdGlvbnMpIHtcbiAgICAgICAgY29uc3QgbW9kZSA9IG9wdGlvbnM/Lm1vZGUgPz8gJ2FuZCc7XG4gICAgICAgIHN3aXRjaCAobW9kZSkge1xuICAgICAgICAgICAgY2FzZSAnb3InOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnZlcmlmeU1vZGVPcihyZXF1aXJlZFBlcm1pc3Npb25zLCBhY3RpdmVQZXJtaXNzaW9ucyk7XG4gICAgICAgICAgICBjYXNlICdub3QnOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnZlcmlmeU1vZGVOb3QocmVxdWlyZWRQZXJtaXNzaW9ucywgYWN0aXZlUGVybWlzc2lvbnMpO1xuICAgICAgICAgICAgY2FzZSAnYW5kJzpcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudmVyaWZ5TW9kZUFuZChyZXF1aXJlZFBlcm1pc3Npb25zLCBhY3RpdmVQZXJtaXNzaW9ucyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHZlcmlmeU1vZGVBbmQocGVybWlzc2lvbnM6IHN0cmluZ1tdLCBhY3RpdmVQZXJtaXNzaW9uczogc3RyaW5nW10pIHtcbiAgICAgICAgZm9yIChjb25zdCBwZXJtaXNzaW9uIG9mIHBlcm1pc3Npb25zKSB7XG4gICAgICAgICAgICBjb25zdCB2ZXJpZmllZCA9IGFjdGl2ZVBlcm1pc3Npb25zPy5pbmNsdWRlcyhwZXJtaXNzaW9uKTtcbiAgICAgICAgICAgIGlmICghdmVyaWZpZWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHZlcmlmeU1vZGVOb3QocGVybWlzc2lvbnM6IHN0cmluZ1tdLCBhY3RpdmVQZXJtaXNzaW9uczogc3RyaW5nW10pIHtcbiAgICAgICAgZm9yIChjb25zdCBwZXJtaXNzaW9uIG9mIHBlcm1pc3Npb25zKSB7XG4gICAgICAgICAgICBpZiAoYWN0aXZlUGVybWlzc2lvbnMuaW5jbHVkZXMocGVybWlzc2lvbikpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHZlcmlmeU1vZGVPcihwZXJtaXNzaW9uczogc3RyaW5nW10sIGFjdGl2ZVBlcm1pc3Npb25zOiBzdHJpbmdbXSkge1xuICAgICAgICBmb3IgKGNvbnN0IHBlcm1pc3Npb24gb2YgcGVybWlzc2lvbnMpIHtcbiAgICAgICAgICAgIGNvbnN0IHZlcmlmaWVkID0gYWN0aXZlUGVybWlzc2lvbnM/LmluY2x1ZGVzKHBlcm1pc3Npb24pO1xuICAgICAgICAgICAgaWYgKHZlcmlmaWVkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRSZXF1aXJlZFBlcm1pc3Npb25zKHZhbHVlOiBzdHJpbmcgfCBzdHJpbmdbXSkge1xuICAgICAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh2YWx1ZSlcbiAgICAgICAgICAgID8gdmFsdWVcbiAgICAgICAgICAgIDogW3ZhbHVlXTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHRyYWNrUGVybWlzc2lvbnMoKSB7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB0aGlzLl9oYW5kbGVyLmdldCgpO1xuICAgICAgICBjb25zdCBwZXJtaXNzaW9ucyQgPSBpc09ic2VydmFibGUoZGF0YSkgPyBkYXRhIDogb2YoZGF0YSk7XG5cbiAgICAgICAgY29uc3Qgc3Vic2NyaXB0aW9uID0gcGVybWlzc2lvbnMkLnN1YnNjcmliZShwZXJtaXNzaW9ucyA9PiB7XG4gICAgICAgICAgICB0aGlzLl9hY3RpdmVQZXJtaXNzaW9ucyQubmV4dChwZXJtaXNzaW9ucyA/PyBbXSk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb24uYWRkKHN1YnNjcmlwdGlvbik7XG4gICAgfVxuXG59XG4iXX0=
@@ -1,219 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, EventEmitter, forwardRef, HostBinding, Inject, Input, Optional, Output, ViewEncapsulation } from '@angular/core';
2
- import { RECAPTCHA_CONFIG } from '../recaptcha.interface';
3
- import { mixinGrouped } from '@bravobit/bb-foundation';
4
- import { NG_VALUE_ACCESSOR } from '@angular/forms';
5
- import { LOCALIZE_ID } from '@bravobit/bb-foundation/localize';
6
- import { Subscription } from 'rxjs';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "@angular/cdk/platform";
9
- import * as i2 from "../recaptcha-loader.service";
10
- import * as i3 from "rxjs";
11
- let nextUniqueId = 0;
12
- class BbRecaptchaBase {
13
- }
14
- const BbRecaptchaMixinBase = mixinGrouped(BbRecaptchaBase);
15
- export class RecaptchaComponent extends BbRecaptchaMixinBase {
16
- constructor(_zone, _platform, _renderer, _elementRef, _loader, _localizeId, _config) {
17
- super();
18
- this._zone = _zone;
19
- this._platform = _platform;
20
- this._renderer = _renderer;
21
- this._elementRef = _elementRef;
22
- this._loader = _loader;
23
- this._localizeId = _localizeId;
24
- this._config = _config;
25
- // Host bindings.
26
- this.id = `bb-recaptcha-${nextUniqueId++}`;
27
- // Inputs.
28
- this.siteKey = null;
29
- this.tabIndex = null;
30
- this.type = null;
31
- this.size = null;
32
- this.theme = null;
33
- this.badge = null;
34
- this.errorMode = 'default';
35
- // Outputs.
36
- this.resolved = new EventEmitter();
37
- this.error = new EventEmitter();
38
- // Data.
39
- this._widgetId = null;
40
- this._grecaptcha = null;
41
- this._executeRequested = false;
42
- // Form methods.
43
- this._onChange = null;
44
- this._onTouched = null;
45
- // Subscriptions.
46
- this._subscriptions = new Subscription();
47
- this.initializeProperties();
48
- }
49
- ngAfterViewInit() {
50
- this.handleOnLoad();
51
- this.handleLocaleChanges();
52
- }
53
- ngOnDestroy() {
54
- // Reset the captcha.
55
- this.resetCaptchaElement();
56
- // Unsubscribe of ready data.
57
- this._subscriptions?.unsubscribe();
58
- }
59
- execute() {
60
- // Check if the captcha is invisible.
61
- if (this.size !== 'invisible') {
62
- return;
63
- }
64
- // Check if the widget exists else return.
65
- if (this._widgetId == null) {
66
- this._executeRequested = true;
67
- return;
68
- }
69
- // Execute the captcha.
70
- this._grecaptcha.execute(this._widgetId);
71
- }
72
- reset() {
73
- if (this._widgetId == null) {
74
- return;
75
- }
76
- if (this._grecaptcha.getResponse(this._widgetId)) {
77
- this.resolved.emit(null);
78
- }
79
- this.resetCaptchaElement();
80
- }
81
- writeValue(value) {
82
- if (value) {
83
- return;
84
- }
85
- this.reset();
86
- }
87
- registerOnChange(fn) {
88
- this._onChange = fn;
89
- }
90
- registerOnTouched(fn) {
91
- this._onTouched = fn;
92
- }
93
- onResolve(event) {
94
- // Emit the value.
95
- this.resolved.emit(event);
96
- // Call the form functions.
97
- this._onChange?.(event);
98
- this._onTouched?.();
99
- }
100
- renderCaptchaElement() {
101
- const parameters = {
102
- badge: this.badge,
103
- sitekey: this.siteKey,
104
- size: this.size,
105
- tabindex: this.tabIndex,
106
- theme: this.theme,
107
- type: this.type,
108
- 'callback': (response) => this._zone.run(() => this.onResolve(response)),
109
- 'expired-callback': () => this._zone.run(() => this.onResolve(null))
110
- };
111
- if (this.errorMode === 'handled') {
112
- parameters['error-callback'] = (...args) => {
113
- return this._zone.run(() => this.error.emit(args));
114
- };
115
- }
116
- this._widgetId = this._grecaptcha.render(this._elementRef.nativeElement, parameters);
117
- if (this._executeRequested) {
118
- this._executeRequested = false;
119
- this.execute();
120
- }
121
- }
122
- resetCaptchaElement() {
123
- if (this._widgetId == null) {
124
- return;
125
- }
126
- this._zone.runOutsideAngular(() => this._grecaptcha.reset(this._widgetId));
127
- }
128
- initializeProperties() {
129
- this.siteKey = this.siteKey ?? this._config?.siteKey;
130
- this.theme = this.theme ?? this._config?.theme;
131
- this.size = this.size ?? this._config?.size;
132
- this.type = this.type ?? this._config?.type;
133
- this.badge = this.badge ?? this._config?.badge;
134
- }
135
- handleOnLoad() {
136
- const subscription = this._loader.ready$.subscribe((grecaptcha) => {
137
- if (grecaptcha == null || !(grecaptcha.render instanceof Function)) {
138
- return;
139
- }
140
- this._grecaptcha = grecaptcha;
141
- this.renderCaptchaElement();
142
- });
143
- this._subscriptions.add(subscription);
144
- }
145
- handleLocaleChanges() {
146
- const subscription = this._localizeId.subscribe(locale => this.onLocaleChanged(locale));
147
- this._subscriptions.add(subscription);
148
- }
149
- onLocaleChanged(locale) {
150
- const element = this._elementRef?.nativeElement ?? null;
151
- if (!element || !this._platform.isBrowser) {
152
- return;
153
- }
154
- const frame = element?.querySelector('iframe');
155
- if (!frame) {
156
- return;
157
- }
158
- const src = frame.getAttribute('src');
159
- const currentLanguageId = src.match(/hl=(.*?)&/).pop();
160
- if (currentLanguageId === locale) {
161
- return;
162
- }
163
- const newSrc = src.replace(/hl=(.*?)&/, `hl=${locale}&`);
164
- this._renderer.setAttribute(frame, 'src', newSrc);
165
- }
166
- }
167
- RecaptchaComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: RecaptchaComponent, deps: [{ token: i0.NgZone }, { token: i1.Platform }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i2.RecaptchaLoader }, { token: LOCALIZE_ID }, { token: RECAPTCHA_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Component });
168
- RecaptchaComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.6", type: RecaptchaComponent, selector: "bb-recaptcha", inputs: { grouped: "grouped", id: "id", siteKey: "siteKey", tabIndex: "tabIndex", type: "type", size: "size", theme: "theme", badge: "badge", errorMode: "errorMode" }, outputs: { resolved: "resolved", error: "error" }, host: { properties: { "class.grouped": "grouped", "attr.id": "this.id" }, classAttribute: "bb-recaptcha" }, providers: [
169
- {
170
- provide: NG_VALUE_ACCESSOR,
171
- useExisting: forwardRef(() => RecaptchaComponent),
172
- multi: true
173
- }
174
- ], exportAs: ["bbRecaptcha"], usesInheritance: true, ngImport: i0, template: "", styles: [".bb-recaptcha{display:block}.bb-recaptcha.grouped{margin-bottom:20px}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
175
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: RecaptchaComponent, decorators: [{
176
- type: Component,
177
- args: [{ selector: 'bb-recaptcha', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, exportAs: 'bbRecaptcha', providers: [
178
- {
179
- provide: NG_VALUE_ACCESSOR,
180
- useExisting: forwardRef(() => RecaptchaComponent),
181
- multi: true
182
- }
183
- ], host: {
184
- 'class': 'bb-recaptcha',
185
- '[class.grouped]': 'grouped'
186
- }, inputs: ['grouped'], preserveWhitespaces: false, template: "", styles: [".bb-recaptcha{display:block}.bb-recaptcha.grouped{margin-bottom:20px}\n"] }]
187
- }], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i1.Platform }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i2.RecaptchaLoader }, { type: i3.Observable, decorators: [{
188
- type: Inject,
189
- args: [LOCALIZE_ID]
190
- }] }, { type: undefined, decorators: [{
191
- type: Optional
192
- }, {
193
- type: Inject,
194
- args: [RECAPTCHA_CONFIG]
195
- }] }]; }, propDecorators: { id: [{
196
- type: HostBinding,
197
- args: ['attr.id']
198
- }, {
199
- type: Input
200
- }], siteKey: [{
201
- type: Input
202
- }], tabIndex: [{
203
- type: Input
204
- }], type: [{
205
- type: Input
206
- }], size: [{
207
- type: Input
208
- }], theme: [{
209
- type: Input
210
- }], badge: [{
211
- type: Input
212
- }], errorMode: [{
213
- type: Input
214
- }], resolved: [{
215
- type: Output
216
- }], error: [{
217
- type: Output
218
- }] } });
219
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjYXB0Y2hhLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vcmVjYXB0Y2hhL3NyYy9saWIvcmVjYXB0Y2hhL3JlY2FwdGNoYS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYi1mb3VuZGF0aW9uL3JlY2FwdGNoYS9zcmMvbGliL3JlY2FwdGNoYS9yZWNhcHRjaGEuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILHVCQUF1QixFQUN2QixTQUFTLEVBRVQsWUFBWSxFQUNaLFVBQVUsRUFDVixXQUFXLEVBQ1gsTUFBTSxFQUNOLEtBQUssRUFHTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsZ0JBQWdCLEVBQTRDLE1BQU0sd0JBQXdCLENBQUM7QUFDbkcsT0FBTyxFQUF1QixZQUFZLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUMzRSxPQUFPLEVBQXVCLGlCQUFpQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkUsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBRzdELE9BQU8sRUFBYSxZQUFZLEVBQUMsTUFBTSxNQUFNLENBQUM7Ozs7O0FBRTlDLElBQUksWUFBWSxHQUFHLENBQUMsQ0FBQztBQUVyQixNQUFNLGVBQWU7Q0FDcEI7QUFFRCxNQUFNLG9CQUFvQixHQUVwQixZQUFZLENBQUMsZUFBZSxDQUFDLENBQUM7QUF1QnBDLE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxvQkFBb0I7SUE4QnhELFlBQW9CLEtBQWEsRUFDYixTQUFtQixFQUNuQixTQUFvQixFQUNwQixXQUF1QixFQUN2QixPQUF3QixFQUNILFdBQStCLEVBQ2QsT0FBeUI7UUFDL0UsS0FBSyxFQUFFLENBQUM7UUFQUSxVQUFL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dEQsQ0FBQzs7K0dBMUxRLGtCQUFrQixrSkFtQ1AsV0FBVyxhQUNDLGdCQUFnQjttR0FwQ3ZDLGtCQUFrQiw4V0FkaEI7UUFDUDtZQUNJLE9BQU8sRUFBRSxpQkFBaUI7WUFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztZQUNqRCxLQUFLLEVBQUUsSUFBSTtTQUNkO0tBQ0osNEVDOUNMLEVBQUE7MkZEc0RhLGtCQUFrQjtrQkFyQjlCLFNBQVM7K0JBQ0ksY0FBYyxtQkFHUCx1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLFlBQzNCLGFBQWEsYUFDWjt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxtQkFBbUIsQ0FBQzs0QkFDakQsS0FBSyxFQUFFLElBQUk7eUJBQ2Q7cUJBQ0osUUFDSzt3QkFDRixPQUFPLEVBQUUsY0FBYzt3QkFDdkIsaUJBQWlCLEVBQUUsU0FBUztxQkFDL0IsVUFDTyxDQUFDLFNBQVMsQ0FBQyx1QkFDRSxLQUFLOzswQkFxQ2IsTUFBTTsyQkFBQyxXQUFXOzswQkFDbEIsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxnQkFBZ0I7NENBakNmLEVBQUU7c0JBQWxDLFdBQVc7dUJBQUMsU0FBUzs7c0JBQUcsS0FBSztnQkFHckIsT0FBTztzQkFBZixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBR0ksUUFBUTtzQkFBakIsTUFBTTtnQkFDRyxLQUFLO3NCQUFkLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGZvcndhcmRSZWYsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE5nWm9uZSxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT3B0aW9uYWwsXG4gICAgT3V0cHV0LCBSZW5kZXJlcjIsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1JFQ0FQVENIQV9DT05GSUcsIFJlY2FwdGNoYUNvbmZpZywgUmVjYXB0Y2hhRXJyb3JQYXJhbWV0ZXJzfSBmcm9tICcuLi9yZWNhcHRjaGEuaW50ZXJmYWNlJztcbmltcG9ydCB7SXNHcm91cGVkQ29uc3RydWN0b3IsIG1peGluR3JvdXBlZH0gZnJvbSAnQGJyYXZvYml0L2JiLWZvdW5kYXRpb24nO1xuaW1wb3J0IHtDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1J9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7TE9DQUxJWkVfSUR9IGZyb20gJ0BicmF2b2JpdC9iYi1mb3VuZGF0aW9uL2xvY2FsaXplJztcbmltcG9ydCB7UmVjYXB0Y2hhTG9hZGVyfSBmcm9tICcuLi9yZWNhcHRjaGEtbG9hZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHtQbGF0Zm9ybX0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BsYXRmb3JtJztcbmltcG9ydCB7T2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcblxubGV0IG5leHRVbmlxdWVJZCA9IDA7XG5cbmNsYXNzIEJiUmVjYXB0Y2hhQmFzZSB7XG59XG5cbmNvbnN0IEJiUmVjYXB0Y2hhTWl4aW5CYXNlOiBJc0dyb3VwZWRDb25zdHJ1Y3RvclxuICAgICYgdHlwZW9mIEJiUmVjYXB0Y2hhQmFzZVxuICAgID0gbWl4aW5Hcm91cGVkKEJiUmVjYXB0Y2hhQmFzZSk7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYmItcmVjYXB0Y2hhJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vcmVjYXB0Y2hhLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9yZWNhcHRjaGEuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGV4cG9ydEFzOiAnYmJSZWNhcHRjaGEnLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFJlY2FwdGNoYUNvbXBvbmVudCksXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZVxuICAgICAgICB9XG4gICAgXSxcbiAgICBob3N0OiB7XG4gICAgICAgICdjbGFzcyc6ICdiYi1yZWNhcHRjaGEnLFxuICAgICAgICAnW2NsYXNzLmdyb3VwZWRdJzogJ2dyb3VwZWQnXG4gICAgfSxcbiAgICBpbnB1dHM6IFsnZ3JvdXBlZCddLFxuICAgIHByZXNlcnZlV2hpdGVzcGFjZXM6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFJlY2FwdGNoYUNvbXBvbmVudCBleHRlbmRzIEJiUmVjYXB0Y2hhTWl4aW5CYXNlIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG5cbiAgICAvLyBIb3N0IGJpbmRpbmdzLlxuICAgIEBIb3N0QmluZGluZygnYXR0ci5pZCcpIEBJbnB1dCgpIGlkOiBzdHJpbmcgPSBgYmItcmVjYXB0Y2hhLSR7bmV4dFVuaXF1ZUlkKyt9YDtcblxuICAgIC8vIElucHV0cy5cbiAgICBASW5wdXQoKSBzaXRlS2V5OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgICBASW5wdXQoKSB0YWJJbmRleDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG4gICAgQElucHV0KCkgdHlwZTogUmVDYXB0Y2hhVjIuVHlwZSB8IG51bGwgPSBudWxsO1xuICAgIEBJbnB1dCgpIHNpemU6IFJlQ2FwdGNoYVYyLlNpemUgfCBudWxsID0gbnVsbDtcbiAgICBASW5wdXQoKSB0aGVtZTogUmVDYXB0Y2hhVjIuVGhlbWUgfCBudWxsID0gbnVsbDtcbiAgICBASW5wdXQoKSBiYWRnZTogUmVDYXB0Y2hhVjIuQmFkZ2UgfCBudWxsID0gbnVsbDtcbiAgICBASW5wdXQoKSBlcnJvck1vZGU6ICdoYW5kbGVkJyB8ICdkZWZhdWx0JyA9ICdkZWZhdWx0JztcblxuICAgIC8vIE91dHB1dHMuXG4gICAgQE91dHB1dCgpIHJlc29sdmVkID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gICAgQE91dHB1dCgpIGVycm9yID0gbmV3IEV2ZW50RW1pdHRlcjxSZWNhcHRjaGFFcnJvclBhcmFtZXRlcnM+KCk7XG5cbiAgICAvLyBEYXRhLlxuICAgIHByaXZhdGUgX3dpZGdldElkOiBudW1iZXIgfCBudWxsID0gbnVsbDtcbiAgICBwcml2YXRlIF9ncmVjYXB0Y2hhOiBSZUNhcHRjaGFWMi5SZUNhcHRjaGEgfCBudWxsID0gbnVsbDtcbiAgICBwcml2YXRlIF9leGVjdXRlUmVxdWVzdGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvLyBGb3JtIG1ldGhvZHMuXG4gICAgcHJpdmF0ZSBfb25DaGFuZ2U6ICh2YWx1ZTogc3RyaW5nKSA9PiB2b2lkIHwgbnVsbCA9IG51bGw7XG4gICAgcHJpdmF0ZSBfb25Ub3VjaGVkOiAoKSA9PiB2b2lkIHwgbnVsbCA9IG51bGw7XG5cbiAgICAvLyBTdWJzY3JpcHRpb25zLlxuICAgIHByaXZhdGUgX3N1YnNjcmlwdGlvbnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF96b25lOiBOZ1pvbmUsXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBfcGxhdGZvcm06IFBsYXRmb3JtLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgX3JlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgICAgICAgICBwcml2YXRlIF9sb2FkZXI6IFJlY2FwdGNoYUxvYWRlcixcbiAgICAgICAgICAgICAgICBASW5qZWN0KExPQ0FMSVpFX0lEKSBwcml2YXRlIF9sb2NhbGl6ZUlkOiBPYnNlcnZhYmxlPHN0cmluZz4sXG4gICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChSRUNBUFRDSEFfQ09ORklHKSBwcml2YXRlIF9jb25maWc/OiBSZWNhcHRjaGFDb25maWcpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5pbml0aWFsaXplUHJvcGVydGllcygpO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgdGhpcy5oYW5kbGVPbkxvYWQoKTtcbiAgICAgICAgdGhpcy5oYW5kbGVMb2NhbGVDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIC8vIFJlc2V0IHRoZSBjYXB0Y2hhLlxuICAgICAgICB0aGlzLnJlc2V0Q2FwdGNoYUVsZW1lbnQoKTtcblxuICAgICAgICAvLyBVbnN1YnNjcmliZSBvZiByZWFkeSBkYXRhLlxuICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb25zPy51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIGV4ZWN1dGUoKSB7XG4gICAgICAgIC8vIENoZWNrIGlmIHRoZSBjYXB0Y2hhIGlzIGludmlzaWJsZS5cbiAgICAgICAgaWYgKHRoaXMuc2l6ZSAhPT0gJ2ludmlzaWJsZScpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIENoZWNrIGlmIHRoZSB3aWRnZXQgZXhpc3RzIGVsc2UgcmV0dXJuLlxuICAgICAgICBpZiAodGhpcy5fd2lkZ2V0SWQgPT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5fZXhlY3V0ZVJlcXVlc3RlZCA9IHRydWU7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBFeGVjdXRlIHRoZSBjYXB0Y2hhLlxuICAgICAgICB0aGlzLl9ncmVjYXB0Y2hhLmV4ZWN1dGUodGhpcy5fd2lkZ2V0SWQpO1xuICAgIH1cblxuICAgIHJlc2V0KCkge1xuICAgICAgICBpZiAodGhpcy5fd2lkZ2V0SWQgPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuX2dyZWNhcHRjaGEuZ2V0UmVzcG9uc2UodGhpcy5fd2lkZ2V0SWQpKSB7XG4gICAgICAgICAgICB0aGlzLnJlc29sdmVkLmVtaXQobnVsbCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnJlc2V0Q2FwdGNoYUVsZW1lbnQoKTtcbiAgICB9XG5cbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnJlc2V0KCk7XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiBzdHJpbmcpID0+IHZvaWQpIHtcbiAgICAgICAgdGhpcy5fb25DaGFuZ2UgPSBmbjtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCkge1xuICAgICAgICB0aGlzLl9vblRvdWNoZWQgPSBmbjtcbiAgICB9XG5cbiAgICBvblJlc29sdmUoZXZlbnQ6IHN0cmluZykge1xuICAgICAgICAvLyBFbWl0IHRoZSB2YWx1ZS5cbiAgICAgICAgdGhpcy5yZXNvbHZlZC5lbWl0KGV2ZW50KTtcblxuICAgICAgICAvLyBDYWxsIHRoZSBmb3JtIGZ1bmN0aW9ucy5cbiAgICAgICAgdGhpcy5fb25DaGFuZ2U/LihldmVudCk7XG4gICAgICAgIHRoaXMuX29uVG91Y2hlZD8uKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZW5kZXJDYXB0Y2hhRWxlbWVudCgpIHtcbiAgICAgICAgY29uc3QgcGFyYW1ldGVyczogUmVDYXB0Y2hhVjIuUGFyYW1ldGVycyA9IHtcbiAgICAgICAgICAgIGJhZGdlOiB0aGlzLmJhZGdlLFxuICAgICAgICAgICAgc2l0ZWtleTogdGhpcy5zaXRlS2V5LFxuICAgICAgICAgICAgc2l6ZTogdGhpcy5zaXplLFxuICAgICAgICAgICAgdGFiaW5kZXg6IHRoaXMudGFiSW5kZXgsXG4gICAgICAgICAgICB0aGVtZTogdGhpcy50aGVtZSxcbiAgICAgICAgICAgIHR5cGU6IHRoaXMudHlwZSxcbiAgICAgICAgICAgICdjYWxsYmFjayc6IChyZXNwb25zZTogc3RyaW5nKSA9PiB0aGlzLl96b25lLnJ1bigoKSA9PiB0aGlzLm9uUmVzb2x2ZShyZXNwb25zZSkpLFxuICAgICAgICAgICAgJ2V4cGlyZWQtY2FsbGJhY2snOiAoKSA9PiB0aGlzLl96b25lLnJ1bigoKSA9PiB0aGlzLm9uUmVzb2x2ZShudWxsKSlcbiAgICAgICAgfTtcblxuICAgICAgICBpZiAodGhpcy5lcnJvck1vZGUgPT09ICdoYW5kbGVkJykge1xuICAgICAgICAgICAgcGFyYW1ldGVyc1snZXJyb3ItY2FsbGJhY2snXSA9ICguLi5hcmdzOiBSZWNhcHRjaGFFcnJvclBhcmFtZXRlcnMpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fem9uZS5ydW4oKCkgPT4gdGhpcy5lcnJvci5lbWl0KGFyZ3MpKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl93aWRnZXRJZCA9IHRoaXMuX2dyZWNhcHRjaGEucmVuZGVyKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgcGFyYW1ldGVycyk7XG5cbiAgICAgICAgaWYgKHRoaXMuX2V4ZWN1dGVSZXF1ZXN0ZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX2V4ZWN1dGVSZXF1ZXN0ZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuZXhlY3V0ZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZXNldENhcHRjaGFFbGVtZW50KCkge1xuICAgICAgICBpZiAodGhpcy5fd2lkZ2V0SWQgPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB0aGlzLl9ncmVjYXB0Y2hhLnJlc2V0KHRoaXMuX3dpZGdldElkKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0aWFsaXplUHJvcGVydGllcygpIHtcbiAgICAgICAgdGhpcy5zaXRlS2V5ID0gdGhpcy5zaXRlS2V5ID8/IHRoaXMuX2NvbmZpZz8uc2l0ZUtleTtcbiAgICAgICAgdGhpcy50aGVtZSA9IHRoaXMudGhlbWUgPz8gdGhpcy5fY29uZmlnPy50aGVtZTtcbiAgICAgICAgdGhpcy5zaXplID0gdGhpcy5zaXplID8/IHRoaXMuX2NvbmZpZz8uc2l6ZTtcbiAgICAgICAgdGhpcy50eXBlID0gdGhpcy50eXBlID8/IHRoaXMuX2NvbmZpZz8udHlwZTtcbiAgICAgICAgdGhpcy5iYWRnZSA9IHRoaXMuYmFkZ2UgPz8gdGhpcy5fY29uZmlnPy5iYWRnZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGhhbmRsZU9uTG9hZCgpIHtcbiAgICAgICAgY29uc3Qgc3Vic2NyaXB0aW9uID0gdGhpcy5fbG9hZGVyLnJlYWR5JC5zdWJzY3JpYmUoKGdyZWNhcHRjaGE6IFJlQ2FwdGNoYVYyLlJlQ2FwdGNoYSkgPT4ge1xuICAgICAgICAgICAgaWYgKGdyZWNhcHRjaGEgPT0gbnVsbCB8fCAhKGdyZWNhcHRjaGEucmVuZGVyIGluc3RhbmNlb2YgRnVuY3Rpb24pKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLl9ncmVjYXB0Y2hhID0gZ3JlY2FwdGNoYTtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyQ2FwdGNoYUVsZW1lbnQoKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5hZGQoc3Vic2NyaXB0aW9uKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGhhbmRsZUxvY2FsZUNoYW5nZXMoKSB7XG4gICAgICAgIGNvbnN0IHN1YnNjcmlwdGlvbiA9IHRoaXMuX2xvY2FsaXplSWQuc3Vic2NyaWJlKGxvY2FsZSA9PiB0aGlzLm9uTG9jYWxlQ2hhbmdlZChsb2NhbGUpKTtcbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5hZGQoc3Vic2NyaXB0aW9uKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9uTG9jYWxlQ2hhbmdlZChsb2NhbGU6IHN0cmluZykge1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5fZWxlbWVudFJlZj8ubmF0aXZlRWxlbWVudCA/PyBudWxsO1xuICAgICAgICBpZiAoIWVsZW1lbnQgfHwgIXRoaXMuX3BsYXRmb3JtLmlzQnJvd3Nlcikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZnJhbWUgPSBlbGVtZW50Py5xdWVyeVNlbGVjdG9yKCdpZnJhbWUnKTtcbiAgICAgICAgaWYgKCFmcmFtZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgc3JjID0gZnJhbWUuZ2V0QXR0cmlidXRlKCdzcmMnKTtcbiAgICAgICAgY29uc3QgY3VycmVudExhbmd1YWdlSWQgPSBzcmMubWF0Y2goL2hsPSguKj8pJi8pLnBvcCgpO1xuICAgICAgICBpZiAoY3VycmVudExhbmd1YWdlSWQgPT09IGxvY2FsZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgbmV3U3JjID0gc3JjLnJlcGxhY2UoL2hsPSguKj8pJi8sIGBobD0ke2xvY2FsZX0mYCk7XG4gICAgICAgIHRoaXMuX3JlbmRlcmVyLnNldEF0dHJpYnV0ZShmcmFtZSwgJ3NyYycsIG5ld1NyYyk7XG4gICAgfVxuXG59XG4iLCIiXX0=
@@ -1,95 +0,0 @@
1
- import { Inject, Injectable, LOCALE_ID, Optional } from '@angular/core';
2
- import { RECAPTCHA_CONFIG } from './recaptcha.interface';
3
- import { DOCUMENT } from '@angular/common';
4
- import { BehaviorSubject } from 'rxjs';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@angular/cdk/platform";
7
- import * as i2 from "@bravobit/bb-foundation/localize";
8
- export class RecaptchaLoader {
9
- constructor(_platform, _renderFactory, _localize, _localeId, _document, _config) {
10
- this._platform = _platform;
11
- this._renderFactory = _renderFactory;
12
- this._localize = _localize;
13
- this._localeId = _localeId;
14
- this._document = _document;
15
- this._config = _config;
16
- // Ready state.
17
- this.ready$ = null;
18
- // Data.
19
- this._windowLoadFn = 'bbRecaptchaLoad';
20
- this._renderer = null;
21
- // Create a renderer.
22
- this._renderer = this._renderFactory.createRenderer(null, null);
23
- // Set the ready subject if not exists.
24
- if (this.ready$) {
25
- return;
26
- }
27
- this.ready$ = new BehaviorSubject(null);
28
- // Create the script.
29
- this.createScript(captcha => this.ready$.next(captcha));
30
- }
31
- createScript(callback) {
32
- // Validate we are on a browser.
33
- if (!this._platform.isBrowser) {
34
- return;
35
- }
36
- // Create the script.
37
- const script = this._renderer.createElement('script');
38
- // Set properties on the script.
39
- this._renderer.setProperty(script, 'src', this.getUrl());
40
- this._renderer.setProperty(script, 'async', true);
41
- this._renderer.setProperty(script, 'defer', true);
42
- // Set the nonce.
43
- if (this._config.nonce) {
44
- this._renderer.setAttribute(script, 'nonce', this._config.nonce);
45
- }
46
- // Set the loading function.
47
- if (this._platform.isBrowser) {
48
- window[this._windowLoadFn] = () => callback(grecaptcha);
49
- }
50
- // Append the script tag.
51
- this._renderer.appendChild(this._document?.body, script);
52
- }
53
- getUrl() {
54
- const baseUrl = this._config?.baseUrl ?? 'https://www.google.com/recaptcha/api.js';
55
- return [baseUrl, this.getQueryParams()]
56
- .filter(item => !!item)
57
- .join('?');
58
- }
59
- getQueryParams() {
60
- const localeId = this._localize?.current?.id ?? this._localeId ?? null;
61
- const params = {
62
- render: 'explicit',
63
- onload: this._windowLoadFn ?? null,
64
- hl: localeId
65
- };
66
- return Object.keys(params)
67
- .map(key => ({ key, value: params[key] }))
68
- .filter(item => !!item.value)
69
- .map(item => `${item?.key}=${item?.value}`)
70
- .join('&');
71
- }
72
- }
73
- RecaptchaLoader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: RecaptchaLoader, deps: [{ token: i1.Platform }, { token: i0.RendererFactory2 }, { token: i2.Localize, optional: true }, { token: LOCALE_ID, optional: true }, { token: DOCUMENT, optional: true }, { token: RECAPTCHA_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
74
- RecaptchaLoader.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: RecaptchaLoader });
75
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: RecaptchaLoader, decorators: [{
76
- type: Injectable
77
- }], ctorParameters: function () { return [{ type: i1.Platform }, { type: i0.RendererFactory2 }, { type: i2.Localize, decorators: [{
78
- type: Optional
79
- }] }, { type: undefined, decorators: [{
80
- type: Optional
81
- }, {
82
- type: Inject,
83
- args: [LOCALE_ID]
84
- }] }, { type: Document, decorators: [{
85
- type: Optional
86
- }, {
87
- type: Inject,
88
- args: [DOCUMENT]
89
- }] }, { type: undefined, decorators: [{
90
- type: Optional
91
- }, {
92
- type: Inject,
93
- args: [RECAPTCHA_CONFIG]
94
- }] }]; } });
95
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjYXB0Y2hhLWxvYWRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9yZWNhcHRjaGEvc3JjL2xpYi9yZWNhcHRjaGEtbG9hZGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBOEIsTUFBTSxlQUFlLENBQUM7QUFDbkcsT0FBTyxFQUFDLGdCQUFnQixFQUFrQixNQUFNLHVCQUF1QixDQUFDO0FBR3hFLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sTUFBTSxDQUFDOzs7O0FBR3JDLE1BQU0sT0FBTyxlQUFlO0lBU3hCLFlBQW9CLFNBQW1CLEVBQ25CLGNBQWdDLEVBQ3BCLFNBQW9CLEVBQ0QsU0FBa0IsRUFDbkIsU0FBb0IsRUFDWixPQUF5QjtRQUwvRCxjQUFTLEdBQVQsU0FBUyxDQUFVO1FBQ25CLG1CQUFjLEdBQWQsY0FBYyxDQUFrQjtRQUNwQixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQ0QsY0FBUyxHQUFULFNBQVMsQ0FBUztRQUNuQixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQ1osWUFBTyxHQUFQLE9BQU8sQ0FBa0I7UUFabkYsZUFBZTtRQUNOLFdBQU0sR0FBeUQsSUFBSSxDQUFDO1FBRTdFLFFBQVE7UUFDUyxrQkFBYSxHQUFXLGlCQUFpQixDQUFDO1FBQzFDLGNBQVMsR0FBcUIsSUFBSSxDQUFDO1FBUWhELHFCQUFxQjtRQUNyQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUVoRSx1Q0FBdUM7UUFDdkMsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2IsT0FBTztTQUNW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QUFnQjtnSEFkdkMsZUFBZTsyRkFBZixlQUFlO2tCQUQzQixVQUFVOzswQkFZTSxRQUFROzswQkFDUixRQUFROzswQkFBSSxNQUFNOzJCQUFDLFNBQVM7OzBCQUM1QixRQUFROzswQkFBSSxNQUFNOzJCQUFDLFFBQVE7OzBCQUMzQixRQUFROzswQkFBSSxNQUFNOzJCQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0LCBJbmplY3RhYmxlLCBMT0NBTEVfSUQsIE9wdGlvbmFsLCBSZW5kZXJlcjIsIFJlbmRlcmVyRmFjdG9yeTJ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtSRUNBUFRDSEFfQ09ORklHLCBSZWNhcHRjaGFDb25maWd9IGZyb20gJy4vcmVjYXB0Y2hhLmludGVyZmFjZSc7XG5pbXBvcnQge0xvY2FsaXplfSBmcm9tICdAYnJhdm9iaXQvYmItZm91bmRhdGlvbi9sb2NhbGl6ZSc7XG5pbXBvcnQge1BsYXRmb3JtfSBmcm9tICdAYW5ndWxhci9jZGsvcGxhdGZvcm0nO1xuaW1wb3J0IHtET0NVTUVOVH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0fSBmcm9tICdyeGpzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFJlY2FwdGNoYUxvYWRlciB7XG5cbiAgICAvLyBSZWFkeSBzdGF0ZS5cbiAgICByZWFkb25seSByZWFkeSQ6IEJlaGF2aW9yU3ViamVjdDxSZUNhcHRjaGFWMi5SZUNhcHRjaGEgfCBudWxsPiB8IG51bGwgPSBudWxsO1xuXG4gICAgLy8gRGF0YS5cbiAgICBwcml2YXRlIHJlYWRvbmx5IF93aW5kb3dMb2FkRm46IHN0cmluZyA9ICdiYlJlY2FwdGNoYUxvYWQnO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX3JlbmRlcmVyOiBSZW5kZXJlcjIgfCBudWxsID0gbnVsbDtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX3BsYXRmb3JtOiBQbGF0Zm9ybSxcbiAgICAgICAgICAgICAgICBwcml2YXRlIF9yZW5kZXJGYWN0b3J5OiBSZW5kZXJlckZhY3RvcnkyLFxuICAgICAgICAgICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgX2xvY2FsaXplPzogTG9jYWxpemUsXG4gICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChMT0NBTEVfSUQpIHByaXZhdGUgX2xvY2FsZUlkPzogc3RyaW5nLFxuICAgICAgICAgICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgX2RvY3VtZW50PzogRG9jdW1lbnQsXG4gICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChSRUNBUFRDSEFfQ09ORklHKSBwcml2YXRlIF9jb25maWc/OiBSZWNhcHRjaGFDb25maWcpIHtcbiAgICAgICAgLy8gQ3JlYXRlIGEgcmVuZGVyZXIuXG4gICAgICAgIHRoaXMuX3JlbmRlcmVyID0gdGhpcy5fcmVuZGVyRmFjdG9yeS5jcmVhdGVSZW5kZXJlcihudWxsLCBudWxsKTtcblxuICAgICAgICAvLyBTZXQgdGhlIHJlYWR5IHN1YmplY3QgaWYgbm90IGV4aXN0cy5cbiAgICAgICAgaWYgKHRoaXMucmVhZHkkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yZWFkeSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFJlQ2FwdGNoYVYyLlJlQ2FwdGNoYSB8IG51bGw+KG51bGwpO1xuXG4gICAgICAgIC8vIENyZWF0ZSB0aGUgc2NyaXB0LlxuICAgICAgICB0aGlzLmNyZWF0ZVNjcmlwdChjYXB0Y2hhID0+IHRoaXMucmVhZHkkLm5leHQoY2FwdGNoYSkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlU2NyaXB0KGNhbGxiYWNrOiAoZ3JlY2FwdGNoYTogUmVDYXB0Y2hhVjIuUmVDYXB0Y2hhKSA9PiB2b2lkKSB7XG4gICAgICAgIC8vIFZhbGlkYXRlIHdlIGFyZSBvbiBhIGJyb3dzZXIuXG4gICAgICAgIGlmICghdGhpcy5fcGxhdGZvcm0uaXNCcm93c2VyKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBDcmVhdGUgdGhlIHNjcmlwdC5cbiAgICAgICAgY29uc3Qgc2NyaXB0ID0gdGhpcy5fcmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7XG5cbiAgICAgICAgLy8gU2V0IHByb3BlcnRpZXMgb24gdGhlIHNjcmlwdC5cbiAgICAgICAgdGhpcy5fcmVuZGVyZXIuc2V0UHJvcGVydHkoc2NyaXB0LCAnc3JjJywgdGhpcy5nZXRVcmwoKSk7XG4gICAgICAgIHRoaXMuX3JlbmRlcmVyLnNldFByb3BlcnR5KHNjcmlwdCwgJ2FzeW5jJywgdHJ1ZSk7XG4gICAgICAgIHRoaXMuX3JlbmRlcmVyLnNldFByb3BlcnR5KHNjcmlwdCwgJ2RlZmVyJywgdHJ1ZSk7XG5cbiAgICAgICAgLy8gU2V0IHRoZSBub25jZS5cbiAgICAgICAgaWYgKHRoaXMuX2NvbmZpZy5ub25jZSkge1xuICAgICAgICAgICAgdGhpcy5fcmVuZGVyZXIuc2V0QXR0cmlidXRlKHNjcmlwdCwgJ25vbmNlJywgdGhpcy5fY29uZmlnLm5vbmNlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFNldCB0aGUgbG9hZGluZyBmdW5jdGlvbi5cbiAgICAgICAgaWYgKHRoaXMuX3BsYXRmb3JtLmlzQnJvd3Nlcikge1xuICAgICAgICAgICAgd2luZG93W3RoaXMuX3dpbmRvd0xvYWRGbl0gPSAoKSA9PiBjYWxsYmFjayhncmVjYXB0Y2hhKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEFwcGVuZCB0aGUgc2NyaXB0IHRhZy5cbiAgICAgICAgdGhpcy5fcmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy5fZG9jdW1lbnQ/LmJvZHksIHNjcmlwdCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRVcmwoKSB7XG4gICAgICAgIGNvbnN0IGJhc2VVcmwgPSB0aGlzLl9jb25maWc/LmJhc2VVcmwgPz8gJ2h0dHBzOi8vd3d3Lmdvb2dsZS5jb20vcmVjYXB0Y2hhL2FwaS5qcyc7XG4gICAgICAgIHJldHVybiBbYmFzZVVybCwgdGhpcy5nZXRRdWVyeVBhcmFtcygpXVxuICAgICAgICAgICAgLmZpbHRlcihpdGVtID0+ICEhaXRlbSlcbiAgICAgICAgICAgIC5qb2luKCc/Jyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRRdWVyeVBhcmFtcygpIHtcbiAgICAgICAgY29uc3QgbG9jYWxlSWQgPSB0aGlzLl9sb2NhbGl6ZT8uY3VycmVudD8uaWQgPz8gdGhpcy5fbG9jYWxlSWQgPz8gbnVsbDtcbiAgICAgICAgY29uc3QgcGFyYW1zID0ge1xuICAgICAgICAgICAgcmVuZGVyOiAnZXhwbGljaXQnLFxuICAgICAgICAgICAgb25sb2FkOiB0aGlzLl93aW5kb3dMb2FkRm4gPz8gbnVsbCxcbiAgICAgICAgICAgIGhsOiBsb2NhbGVJZFxuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiBPYmplY3Qua2V5cyhwYXJhbXMpXG4gICAgICAgICAgICAubWFwKGtleSA9PiAoe2tleSwgdmFsdWU6IHBhcmFtc1trZXldfSkpXG4gICAgICAgICAgICAuZmlsdGVyKGl0ZW0gPT4gISFpdGVtLnZhbHVlKVxuICAgICAgICAgICAgLm1hcChpdGVtID0+IGAke2l0ZW0/LmtleX09JHtpdGVtPy52YWx1ZX1gKVxuICAgICAgICAgICAgLmpvaW4oJyYnKTtcbiAgICB9XG5cbn1cbiJdfQ==
@@ -1,27 +0,0 @@
1
- import { RECAPTCHA_CONFIG } from './recaptcha.interface';
2
- import { RecaptchaComponent } from './recaptcha/recaptcha.component';
3
- import { NgModule } from '@angular/core';
4
- import { RecaptchaLoader } from './recaptcha-loader.service';
5
- import * as i0 from "@angular/core";
6
- export class RecaptchaModule {
7
- static forRoot(config) {
8
- return {
9
- ngModule: RecaptchaModule,
10
- providers: [
11
- { provide: RECAPTCHA_CONFIG, useValue: config },
12
- RecaptchaLoader
13
- ]
14
- };
15
- }
16
- }
17
- RecaptchaModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: RecaptchaModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
18
- RecaptchaModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.6", ngImport: i0, type: RecaptchaModule, declarations: [RecaptchaComponent], exports: [RecaptchaComponent] });
19
- RecaptchaModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: RecaptchaModule });
20
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: RecaptchaModule, decorators: [{
21
- type: NgModule,
22
- args: [{
23
- declarations: [RecaptchaComponent],
24
- exports: [RecaptchaComponent]
25
- }]
26
- }] });
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjYXB0Y2hhLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vcmVjYXB0Y2hhL3NyYy9saWIvcmVjYXB0Y2hhLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsZ0JBQWdCLEVBQWtCLE1BQU0sdUJBQXVCLENBQUM7QUFDeEUsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDbkUsT0FBTyxFQUFzQixRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDRCQUE0QixDQUFDOztBQU0zRCxNQUFNLE9BQU8sZUFBZTtJQUV4QixNQUFNLENBQUMsT0FBTyxDQUFDLE1BQXdCO1FBQ25DLE9BQU87WUFDSCxRQUFRLEVBQUUsZUFBZTtZQUN6QixTQUFTLEVBQUU7Z0JBQ1AsRUFBQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBQztnQkFDN0MsZUFBZTthQUNsQjtTQUNKLENBQUM7SUFDTixDQUFDOzs0R0FWUSxlQUFlOzZHQUFmLGVBQWUsaUJBSFQsa0JBQWtCLGFBQ3ZCLGtCQUFrQjs2R0FFbkIsZUFBZTsyRkFBZixlQUFlO2tCQUozQixRQUFRO21CQUFDO29CQUNOLFlBQVksRUFBRSxDQUFDLGtCQUFrQixDQUFDO29CQUNsQyxPQUFPLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztpQkFDaEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1JFQ0FQVENIQV9DT05GSUcsIFJlY2FwdGNoYUNvbmZpZ30gZnJvbSAnLi9yZWNhcHRjaGEuaW50ZXJmYWNlJztcbmltcG9ydCB7UmVjYXB0Y2hhQ29tcG9uZW50fSBmcm9tICcuL3JlY2FwdGNoYS9yZWNhcHRjaGEuY29tcG9uZW50JztcbmltcG9ydCB7TW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtSZWNhcHRjaGFMb2FkZXJ9IGZyb20gJy4vcmVjYXB0Y2hhLWxvYWRlci5zZXJ2aWNlJztcblxuQE5nTW9kdWxlKHtcbiAgICBkZWNsYXJhdGlvbnM6IFtSZWNhcHRjaGFDb21wb25lbnRdLFxuICAgIGV4cG9ydHM6IFtSZWNhcHRjaGFDb21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIFJlY2FwdGNoYU1vZHVsZSB7XG5cbiAgICBzdGF0aWMgZm9yUm9vdChjb25maWc/OiBSZWNhcHRjaGFDb25maWcpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPFJlY2FwdGNoYU1vZHVsZT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbmdNb2R1bGU6IFJlY2FwdGNoYU1vZHVsZSxcbiAgICAgICAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICAgICAgICAgIHtwcm92aWRlOiBSRUNBUFRDSEFfQ09ORklHLCB1c2VWYWx1ZTogY29uZmlnfSxcbiAgICAgICAgICAgICAgICBSZWNhcHRjaGFMb2FkZXJcbiAgICAgICAgICAgIF1cbiAgICAgICAgfTtcbiAgICB9XG5cbn1cbiJdfQ==