ngx-firebase 1.1.12 → 22.0.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 (274) hide show
  1. package/README.md +51 -11
  2. package/fesm2022/ngx-firebase.mjs +158 -0
  3. package/fesm2022/ngx-firebase.mjs.map +1 -0
  4. package/package.json +40 -30
  5. package/types/ngx-firebase.d.ts +55 -0
  6. package/bundles/ngx-firebase-capacitor.umd.js +0 -763
  7. package/bundles/ngx-firebase-capacitor.umd.js.map +0 -1
  8. package/bundles/ngx-firebase-capacitor.umd.min.js +0 -16
  9. package/bundles/ngx-firebase-capacitor.umd.min.js.map +0 -1
  10. package/bundles/ngx-firebase-iap.umd.js +0 -718
  11. package/bundles/ngx-firebase-iap.umd.js.map +0 -1
  12. package/bundles/ngx-firebase-iap.umd.min.js +0 -2
  13. package/bundles/ngx-firebase-iap.umd.min.js.map +0 -1
  14. package/bundles/ngx-firebase-ionic-auth-ui.umd.js +0 -2116
  15. package/bundles/ngx-firebase-ionic-auth-ui.umd.js.map +0 -1
  16. package/bundles/ngx-firebase-ionic-auth-ui.umd.min.js +0 -16
  17. package/bundles/ngx-firebase-ionic-auth-ui.umd.min.js.map +0 -1
  18. package/bundles/ngx-firebase-ionic.umd.js +0 -979
  19. package/bundles/ngx-firebase-ionic.umd.js.map +0 -1
  20. package/bundles/ngx-firebase-ionic.umd.min.js +0 -16
  21. package/bundles/ngx-firebase-ionic.umd.min.js.map +0 -1
  22. package/bundles/ngx-firebase-testing.umd.js +0 -801
  23. package/bundles/ngx-firebase-testing.umd.js.map +0 -1
  24. package/bundles/ngx-firebase-testing.umd.min.js +0 -2
  25. package/bundles/ngx-firebase-testing.umd.min.js.map +0 -1
  26. package/bundles/ngx-firebase.umd.js +0 -2271
  27. package/bundles/ngx-firebase.umd.js.map +0 -1
  28. package/bundles/ngx-firebase.umd.min.js +0 -2
  29. package/bundles/ngx-firebase.umd.min.js.map +0 -1
  30. package/capacitor/capacitor.module.d.ts +0 -9
  31. package/capacitor/interfaces/config.d.ts +0 -12
  32. package/capacitor/interfaces/index.d.ts +0 -1
  33. package/capacitor/ngx-firebase-capacitor.d.ts +0 -5
  34. package/capacitor/ngx-firebase-capacitor.metadata.json +0 -1
  35. package/capacitor/package.json +0 -25
  36. package/capacitor/public-api.d.ts +0 -3
  37. package/capacitor/services/analytics-firebase-capacitor.service.d.ts +0 -9
  38. package/capacitor/services/crashlytics-firebase-capacitor.service.d.ts +0 -8
  39. package/capacitor/services/credential-factory-capacitor.service.d.ts +0 -18
  40. package/capacitor/services/index.d.ts +0 -3
  41. package/esm2015/capacitor/capacitor.module.js +0 -78
  42. package/esm2015/capacitor/interfaces/config.js +0 -3
  43. package/esm2015/capacitor/interfaces/index.js +0 -2
  44. package/esm2015/capacitor/ngx-firebase-capacitor.js +0 -6
  45. package/esm2015/capacitor/public-api.js +0 -4
  46. package/esm2015/capacitor/services/analytics-firebase-capacitor.service.js +0 -43
  47. package/esm2015/capacitor/services/crashlytics-firebase-capacitor.service.js +0 -40
  48. package/esm2015/capacitor/services/credential-factory-capacitor.service.js +0 -182
  49. package/esm2015/capacitor/services/index.js +0 -4
  50. package/esm2015/iap/iap.module.js +0 -32
  51. package/esm2015/iap/interfaces/index.js +0 -5
  52. package/esm2015/iap/ngx-firebase-iap.js +0 -5
  53. package/esm2015/iap/public-api.js +0 -5
  54. package/esm2015/iap/services/iap.service.js +0 -317
  55. package/esm2015/iap/tokens/index.js +0 -4
  56. package/esm2015/ionic/animations/index.js +0 -30
  57. package/esm2015/ionic/components/avatar/avatar.component.js +0 -98
  58. package/esm2015/ionic/components/avatar/index.js +0 -2
  59. package/esm2015/ionic/components/index.js +0 -3
  60. package/esm2015/ionic/components/popover-menu/index.js +0 -3
  61. package/esm2015/ionic/components/popover-menu/interface.js +0 -2
  62. package/esm2015/ionic/components/popover-menu/popover-menu.component.js +0 -34
  63. package/esm2015/ionic/ionic.module.js +0 -46
  64. package/esm2015/ionic/ngx-firebase-ionic.js +0 -5
  65. package/esm2015/ionic/public-api.js +0 -5
  66. package/esm2015/ionic/services/alerts-ionic.service.js +0 -107
  67. package/esm2015/ionic/services/index.js +0 -6
  68. package/esm2015/ionic/services/legality-dialog-ionic.service.js +0 -85
  69. package/esm2015/ionic/services/loading-ionic.service.js +0 -46
  70. package/esm2015/ionic/services/picker-ionic.service.js +0 -44
  71. package/esm2015/ionic/services/toast-ionic.service.js +0 -49
  72. package/esm2015/ionic-auth-ui/animations/index.js +0 -30
  73. package/esm2015/ionic-auth-ui/components/email-confirmation/email-confirmation.component.js +0 -99
  74. package/esm2015/ionic-auth-ui/components/email-field/email-field.component.js +0 -25
  75. package/esm2015/ionic-auth-ui/components/form-field/form-field.component.js +0 -82
  76. package/esm2015/ionic-auth-ui/components/index.js +0 -12
  77. package/esm2015/ionic-auth-ui/components/name-field/name-field.component.js +0 -30
  78. package/esm2015/ionic-auth-ui/components/or-divider/or-divider.component.js +0 -11
  79. package/esm2015/ionic-auth-ui/components/password-field/password-field.component.js +0 -138
  80. package/esm2015/ionic-auth-ui/components/password-field/passwordValidatorFunctions.js +0 -62
  81. package/esm2015/ionic-auth-ui/components/providers/providers.component.js +0 -70
  82. package/esm2015/ionic-auth-ui/components/reauthenticate/reauthenticate.component.js +0 -99
  83. package/esm2015/ionic-auth-ui/components/register/register.component.js +0 -142
  84. package/esm2015/ionic-auth-ui/components/register-with-email/register-with-email.component.js +0 -60
  85. package/esm2015/ionic-auth-ui/components/register-with-email-popover/register-with-email-popover.component.js +0 -26
  86. package/esm2015/ionic-auth-ui/components/signin/signin.component.js +0 -92
  87. package/esm2015/ionic-auth-ui/components/terms-field/terms-field.component.js +0 -99
  88. package/esm2015/ionic-auth-ui/components/user/user.component.js +0 -195
  89. package/esm2015/ionic-auth-ui/ionic-auth-ui.module.js +0 -92
  90. package/esm2015/ionic-auth-ui/ngx-firebase-ionic-auth-ui.js +0 -23
  91. package/esm2015/ionic-auth-ui/pages/index.js +0 -5
  92. package/esm2015/ionic-auth-ui/pages/register/index.js +0 -2
  93. package/esm2015/ionic-auth-ui/pages/register/register.page.js +0 -56
  94. package/esm2015/ionic-auth-ui/pages/signin/index.js +0 -2
  95. package/esm2015/ionic-auth-ui/pages/signin/signin.page.js +0 -78
  96. package/esm2015/ionic-auth-ui/pages/user/index.js +0 -2
  97. package/esm2015/ionic-auth-ui/pages/user/user.page.js +0 -11
  98. package/esm2015/ionic-auth-ui/pages/verifyemail/index.js +0 -2
  99. package/esm2015/ionic-auth-ui/pages/verifyemail/verifyemail.page.js +0 -85
  100. package/esm2015/ionic-auth-ui/public-api.js +0 -5
  101. package/esm2015/ngx-firebase.js +0 -6
  102. package/esm2015/public-api.js +0 -6
  103. package/esm2015/shared/guards/index.js +0 -3
  104. package/esm2015/shared/guards/logged-in.guard.js +0 -60
  105. package/esm2015/shared/guards/verify-email.guard.js +0 -41
  106. package/esm2015/shared/interfaces/accounts.enum.js +0 -9
  107. package/esm2015/shared/interfaces/authprovider.enum.js +0 -15
  108. package/esm2015/shared/interfaces/config.interface.js +0 -61
  109. package/esm2015/shared/interfaces/index.js +0 -8
  110. package/esm2015/shared/interfaces/main.interface.js +0 -7
  111. package/esm2015/shared/interfaces/providers.interface.js +0 -2
  112. package/esm2015/shared/interfaces/tokens.js +0 -19
  113. package/esm2015/shared/interfaces/ui-providers.interface.js +0 -2
  114. package/esm2015/shared/services/analytics.service.js +0 -24
  115. package/esm2015/shared/services/auth-process.service.js +0 -752
  116. package/esm2015/shared/services/crashlytics.service.js +0 -42
  117. package/esm2015/shared/services/device-info.service.js +0 -14
  118. package/esm2015/shared/services/firebase.service.js +0 -37
  119. package/esm2015/shared/services/firestore-sync.service.js +0 -60
  120. package/esm2015/shared/services/index.js +0 -10
  121. package/esm2015/shared/services/performance.service.js +0 -28
  122. package/esm2015/shared/services/remoteconfig.service.js +0 -49
  123. package/esm2015/shared/services/ui.service.js +0 -45
  124. package/esm2015/shared/shared.module.js +0 -175
  125. package/esm2015/shared/types/DisplayWidth.js +0 -9
  126. package/esm2015/shared/types/Location.js +0 -2
  127. package/esm2015/shared/types/ValueAccessorControlComponent.js +0 -85
  128. package/esm2015/shared/types/ValueAccessorValueComponent.js +0 -40
  129. package/esm2015/shared/types/index.js +0 -5
  130. package/esm2015/testing/fakeavatar.module.js +0 -22
  131. package/esm2015/testing/fakes/FakeAuthProcessService.js +0 -31
  132. package/esm2015/testing/fakes/FakeAvatarComponent.js +0 -13
  133. package/esm2015/testing/fakes/FakeFireService.js +0 -21
  134. package/esm2015/testing/fakes/FakeFirestoreSyncService.js +0 -11
  135. package/esm2015/testing/fakes/FakeIAPurchaseService.js +0 -11
  136. package/esm2015/testing/fakes/FakePickerService.js +0 -9
  137. package/esm2015/testing/fakes/FakeRemoteConfigService.js +0 -44
  138. package/esm2015/testing/fakes/FakeTranslateService.js +0 -21
  139. package/esm2015/testing/fakes/FakeUiService.js +0 -26
  140. package/esm2015/testing/fakes/angular-fire/FakeAngularFireAuth.js +0 -30
  141. package/esm2015/testing/fakes/angular-fire/FakeAngularFireFunctions.js +0 -17
  142. package/esm2015/testing/fakes/angular-fire/FakeAngularFirePerformance.js +0 -17
  143. package/esm2015/testing/fakes/angular-fire/FakeAngularFireStorage.js +0 -8
  144. package/esm2015/testing/fakes/angular-fire/FakeAngularFirestore.js +0 -8
  145. package/esm2015/testing/fakes/angular-fire/FakeUserCredential.js +0 -18
  146. package/esm2015/testing/fakes/index.js +0 -19
  147. package/esm2015/testing/ngx-firebase-testing.js +0 -6
  148. package/esm2015/testing/public-api.js +0 -5
  149. package/esm2015/testing/test.module.js +0 -66
  150. package/esm2015/testing/utils/index.js +0 -17
  151. package/esm2015/testing/utils/patchConsole.js +0 -14
  152. package/fesm2015/ngx-firebase-capacitor.js +0 -328
  153. package/fesm2015/ngx-firebase-capacitor.js.map +0 -1
  154. package/fesm2015/ngx-firebase-iap.js +0 -354
  155. package/fesm2015/ngx-firebase-iap.js.map +0 -1
  156. package/fesm2015/ngx-firebase-ionic-auth-ui.js +0 -1482
  157. package/fesm2015/ngx-firebase-ionic-auth-ui.js.map +0 -1
  158. package/fesm2015/ngx-firebase-ionic.js +0 -495
  159. package/fesm2015/ngx-firebase-ionic.js.map +0 -1
  160. package/fesm2015/ngx-firebase-testing.js +0 -388
  161. package/fesm2015/ngx-firebase-testing.js.map +0 -1
  162. package/fesm2015/ngx-firebase.js +0 -1482
  163. package/fesm2015/ngx-firebase.js.map +0 -1
  164. package/iap/iap.module.d.ts +0 -5
  165. package/iap/interfaces/index.d.ts +0 -11
  166. package/iap/ngx-firebase-iap.d.ts +0 -4
  167. package/iap/ngx-firebase-iap.metadata.json +0 -1
  168. package/iap/package.json +0 -23
  169. package/iap/public-api.d.ts +0 -4
  170. package/iap/services/iap.service.d.ts +0 -47
  171. package/iap/tokens/index.d.ts +0 -3
  172. package/ionic/animations/index.d.ts +0 -1
  173. package/ionic/components/avatar/avatar.component.d.ts +0 -27
  174. package/ionic/components/avatar/index.d.ts +0 -1
  175. package/ionic/components/index.d.ts +0 -2
  176. package/ionic/components/popover-menu/index.d.ts +0 -2
  177. package/ionic/components/popover-menu/interface.d.ts +0 -6
  178. package/ionic/components/popover-menu/popover-menu.component.d.ts +0 -10
  179. package/ionic/ionic.module.d.ts +0 -2
  180. package/ionic/ngx-firebase-ionic.d.ts +0 -4
  181. package/ionic/ngx-firebase-ionic.metadata.json +0 -1
  182. package/ionic/package.json +0 -30
  183. package/ionic/public-api.d.ts +0 -4
  184. package/ionic/services/alerts-ionic.service.d.ts +0 -13
  185. package/ionic/services/index.d.ts +0 -5
  186. package/ionic/services/legality-dialog-ionic.service.d.ts +0 -10
  187. package/ionic/services/loading-ionic.service.d.ts +0 -17
  188. package/ionic/services/picker-ionic.service.d.ts +0 -9
  189. package/ionic/services/toast-ionic.service.d.ts +0 -11
  190. package/ionic-auth-ui/animations/index.d.ts +0 -1
  191. package/ionic-auth-ui/components/email-confirmation/email-confirmation.component.d.ts +0 -31
  192. package/ionic-auth-ui/components/email-field/email-field.component.d.ts +0 -7
  193. package/ionic-auth-ui/components/form-field/form-field.component.d.ts +0 -28
  194. package/ionic-auth-ui/components/index.d.ts +0 -11
  195. package/ionic-auth-ui/components/name-field/name-field.component.d.ts +0 -8
  196. package/ionic-auth-ui/components/or-divider/or-divider.component.d.ts +0 -2
  197. package/ionic-auth-ui/components/password-field/password-field.component.d.ts +0 -34
  198. package/ionic-auth-ui/components/password-field/passwordValidatorFunctions.d.ts +0 -4
  199. package/ionic-auth-ui/components/providers/providers.component.d.ts +0 -26
  200. package/ionic-auth-ui/components/reauthenticate/reauthenticate.component.d.ts +0 -30
  201. package/ionic-auth-ui/components/register/register.component.d.ts +0 -26
  202. package/ionic-auth-ui/components/register-with-email/register-with-email.component.d.ts +0 -24
  203. package/ionic-auth-ui/components/register-with-email-popover/register-with-email-popover.component.d.ts +0 -7
  204. package/ionic-auth-ui/components/signin/signin.component.d.ts +0 -28
  205. package/ionic-auth-ui/components/terms-field/terms-field.component.d.ts +0 -27
  206. package/ionic-auth-ui/components/user/user.component.d.ts +0 -45
  207. package/ionic-auth-ui/ionic-auth-ui.module.d.ts +0 -32
  208. package/ionic-auth-ui/ngx-firebase-ionic-auth-ui.d.ts +0 -22
  209. package/ionic-auth-ui/ngx-firebase-ionic-auth-ui.metadata.json +0 -1
  210. package/ionic-auth-ui/package.json +0 -30
  211. package/ionic-auth-ui/pages/index.d.ts +0 -4
  212. package/ionic-auth-ui/pages/register/index.d.ts +0 -1
  213. package/ionic-auth-ui/pages/register/register.page.d.ts +0 -16
  214. package/ionic-auth-ui/pages/signin/index.d.ts +0 -1
  215. package/ionic-auth-ui/pages/signin/signin.page.d.ts +0 -22
  216. package/ionic-auth-ui/pages/user/index.d.ts +0 -1
  217. package/ionic-auth-ui/pages/user/user.page.d.ts +0 -3
  218. package/ionic-auth-ui/pages/verifyemail/index.d.ts +0 -1
  219. package/ionic-auth-ui/pages/verifyemail/verifyemail.page.d.ts +0 -19
  220. package/ionic-auth-ui/public-api.d.ts +0 -4
  221. package/ngx-firebase.d.ts +0 -5
  222. package/ngx-firebase.metadata.json +0 -1
  223. package/public-api.d.ts +0 -5
  224. package/shared/guards/index.d.ts +0 -2
  225. package/shared/guards/logged-in.guard.d.ts +0 -13
  226. package/shared/guards/verify-email.guard.d.ts +0 -11
  227. package/shared/interfaces/accounts.enum.d.ts +0 -7
  228. package/shared/interfaces/authprovider.enum.d.ts +0 -13
  229. package/shared/interfaces/config.interface.d.ts +0 -63
  230. package/shared/interfaces/index.d.ts +0 -7
  231. package/shared/interfaces/main.interface.d.ts +0 -13
  232. package/shared/interfaces/providers.interface.d.ts +0 -63
  233. package/shared/interfaces/tokens.d.ts +0 -16
  234. package/shared/interfaces/ui-providers.interface.d.ts +0 -65
  235. package/shared/services/analytics.service.d.ts +0 -10
  236. package/shared/services/auth-process.service.d.ts +0 -172
  237. package/shared/services/crashlytics.service.d.ts +0 -11
  238. package/shared/services/device-info.service.d.ts +0 -3
  239. package/shared/services/firebase.service.d.ts +0 -16
  240. package/shared/services/firestore-sync.service.d.ts +0 -16
  241. package/shared/services/index.d.ts +0 -9
  242. package/shared/services/performance.service.d.ts +0 -12
  243. package/shared/services/remoteconfig.service.d.ts +0 -18
  244. package/shared/services/ui.service.d.ts +0 -22
  245. package/shared/shared.module.d.ts +0 -14
  246. package/shared/types/DisplayWidth.d.ts +0 -7
  247. package/shared/types/Location.d.ts +0 -8
  248. package/shared/types/ValueAccessorControlComponent.d.ts +0 -27
  249. package/shared/types/ValueAccessorValueComponent.d.ts +0 -19
  250. package/shared/types/index.d.ts +0 -4
  251. package/testing/fakeavatar.module.d.ts +0 -2
  252. package/testing/fakes/FakeAuthProcessService.d.ts +0 -28
  253. package/testing/fakes/FakeAvatarComponent.d.ts +0 -3
  254. package/testing/fakes/FakeFireService.d.ts +0 -20
  255. package/testing/fakes/FakeFirestoreSyncService.d.ts +0 -9
  256. package/testing/fakes/FakeIAPurchaseService.d.ts +0 -9
  257. package/testing/fakes/FakePickerService.d.ts +0 -6
  258. package/testing/fakes/FakeRemoteConfigService.d.ts +0 -19
  259. package/testing/fakes/FakeTranslateService.d.ts +0 -15
  260. package/testing/fakes/FakeUiService.d.ts +0 -25
  261. package/testing/fakes/angular-fire/FakeAngularFireAuth.d.ts +0 -52
  262. package/testing/fakes/angular-fire/FakeAngularFireFunctions.d.ts +0 -11
  263. package/testing/fakes/angular-fire/FakeAngularFirePerformance.d.ts +0 -10
  264. package/testing/fakes/angular-fire/FakeAngularFireStorage.d.ts +0 -5
  265. package/testing/fakes/angular-fire/FakeAngularFirestore.d.ts +0 -5
  266. package/testing/fakes/angular-fire/FakeUserCredential.d.ts +0 -9
  267. package/testing/fakes/index.d.ts +0 -16
  268. package/testing/ngx-firebase-testing.d.ts +0 -5
  269. package/testing/ngx-firebase-testing.metadata.json +0 -1
  270. package/testing/package.json +0 -29
  271. package/testing/public-api.d.ts +0 -4
  272. package/testing/test.module.d.ts +0 -4
  273. package/testing/utils/index.d.ts +0 -5
  274. package/testing/utils/patchConsole.d.ts +0 -4
@@ -1 +0,0 @@
1
- {"version":3,"file":"ngx-firebase-ionic-auth-ui.umd.js","sources":["../../../node_modules/tslib/tslib.es6.js","../../../projects/ngx-firebase/ionic-auth-ui/src/components/email-confirmation/email-confirmation.component.ts","../../../projects/ngx-firebase/ionic-auth-ui/src/animations/index.ts","../../../projects/ngx-firebase/ionic-auth-ui/src/components/signin/signin.component.ts","../../../projects/ngx-firebase/ionic-auth-ui/src/components/register/register.component.ts","../../../projects/ngx-firebase/ionic-auth-ui/src/components/user/user.component.ts","../../../projects/ngx-firebase/ionic-auth-ui/src/components/reauthenticate/reauthenticate.component.ts","../../../projects/ngx-firebase/ionic-auth-ui/src/components/providers/providers.component.ts","../../../projects/ngx-firebase/ionic-auth-ui/src/components/email-field/email-field.component.ts","../../../projects/ngx-firebase/ionic-auth-ui/src/components/form-field/form-field.component.ts","../../../projects/ngx-firebase/ionic-auth-ui/src/components/name-field/name-field.component.ts","../../../projects/ngx-firebase/ionic-auth-ui/src/components/or-divider/or-divider.component.ts","../../../projects/ngx-firebase/ionic-auth-ui/src/components/password-field/passwordValidatorFunctions.ts","../../../projects/ngx-firebase/ionic-auth-ui/src/components/password-field/password-field.component.ts","../../../projects/ngx-firebase/ionic-auth-ui/src/pages/register/register.page.ts","../../../projects/ngx-firebase/ionic-auth-ui/src/pages/signin/signin.page.ts","../../../projects/ngx-firebase/ionic-auth-ui/src/pages/user/user.page.ts","../../../projects/ngx-firebase/ionic-auth-ui/src/pages/verifyemail/verifyemail.page.ts","../../../projects/ngx-firebase/ionic-auth-ui/src/components/terms-field/terms-field.component.ts","../../../projects/ngx-firebase/ionic-auth-ui/src/components/register-with-email/register-with-email.component.ts","../../../projects/ngx-firebase/ionic-auth-ui/src/components/register-with-email-popover/register-with-email-popover.component.ts","../../../projects/ngx-firebase/ionic-auth-ui/src/ionic-auth-ui.module.ts","../../../projects/ngx-firebase/ionic-auth-ui/src/ngx-firebase-ionic-auth-ui.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from) {\r\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\r\n to[j] = from[i];\r\n return to;\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import {\n ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, forwardRef, Inject, Input, OnChanges, OnInit, Output,\n SimpleChanges, TemplateRef, ViewChild\n} from '@angular/core';\nimport { NavController } from '@ionic/angular';\nimport { AuthProcessService, FirebaseService, MalSharedConfig, MalSharedConfigToken, UiService } from 'ngx-firebase';\n\ninterface VerifyEmailContext {\n email: string;\n goBackURL: string;\n}\n\n@Component({\n selector: 'mal-authui-email-confirmation',\n templateUrl: './email-confirmation.component.html',\n styleUrls: ['./email-confirmation.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class EmailConfirmationComponent implements OnInit, OnChanges {\n\n @Input() email?: string;\n @Input() goBackURL?: string;\n\n // Template to use in place of default template\n @Input() template?: TemplateRef<any>;\n\n @Output() signOut = new EventEmitter();\n\n // Final template\n verifyEmailTemplate?: TemplateRef<any>;\n // Context hash to use for verifyEmailTemplate.\n verifyEmailContext: VerifyEmailContext = this.createTemplateContext();\n\n isLoading: boolean = false;\n\n @ViewChild('defaultVerifyEmail', { static: true }) defaultTemplate?: TemplateRef<any>;\n\n constructor(\n private aps: AuthProcessService,\n private changeDetectorRef: ChangeDetectorRef,\n private navController: NavController,\n private fire: FirebaseService,\n private ui: UiService,\n @Inject(forwardRef(() => MalSharedConfigToken)) public config: MalSharedConfig,\n ) {\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.verifyEmailTemplate && changes.verifyEmailTemplate.currentValue == null) {\n this.verifyEmailTemplate = this.defaultTemplate;\n // console.log('ngOnChanges - defaultTemplate:', this.verifyEmailTemplate);\n }\n this.verifyEmailContext = this.createTemplateContext();\n }\n\n ngOnInit(): void {\n if (!this.verifyEmailTemplate) {\n // console.log('ngOnInit - defaultTemplate');\n this.verifyEmailTemplate = this.defaultTemplate;\n }\n this.verifyEmailContext = this.createTemplateContext();\n // console.log('verifyEmailTemplate:', this.verifyEmailTemplate);\n // console.log('verifyEmailContext:', this.verifyEmailContext);\n }\n\n async continue() {\n try {\n await this.aps.reloadUserInfo();\n await this.navController.navigateBack([this.goBackURL]);\n } catch (error) {\n this.notifyError(error);\n }\n }\n\n async sendNewVerificationEmail() {\n try {\n this.isLoading = true;\n this.changeDetectorRef.markForCheck();\n await this.aps.sendNewVerificationEmail();\n this.ui.toast('auth.emailConfirmation.onConfirmationSuccess');\n } catch (error) {\n this.notifyError(error);\n } finally {\n this.isLoading = false;\n this.changeDetectorRef.markForCheck();\n }\n }\n\n private createTemplateContext(): any {\n return {\n email: this.email,\n goBackURL: this.goBackURL,\n };\n }\n\n private notifyError(error: any) {\n this.fire.recordException(error);\n if (this.config.authUi.toastMessageOnAuthError) {\n const message = error.toString() || 'Sorry, something went wrong. Please retry later.';\n this.ui.toast(message, { duration: this.config.authUi.toastDefaultDurationMil });\n }\n }\n}\n","import {animate, animateChild, animation, query, stagger, state, style, transition, trigger, useAnimation} from '@angular/animations';\n\nconst customAnimation = animation(\n [\n style({\n opacity: '{{opacity}}',\n transform: 'scale({{scale}}) translate3d({{x}}, {{y}}, {{z}})'\n }),\n animate('{{duration}} {{delay}} cubic-bezier(0.0, 0.0, 0.2, 1)', style('*'))\n ],\n {\n params: {\n duration: '200ms',\n delay: '0ms',\n opacity: '0',\n scale: '1',\n x: '0',\n y: '0',\n z: '0'\n }\n }\n);\n\nexport const NgxAuthFirebaseuiAnimations = [\n trigger('animate', [transition('void => *', [useAnimation(customAnimation)])]),\n\n trigger('animateStagger', [\n state('50', style('*')),\n state('100', style('*')),\n state('200', style('*')),\n\n transition('void => 50', query('@*', [stagger('50ms', [animateChild()])], {optional: true})),\n transition('void => 100', query('@*', [stagger('100ms', [animateChild()])], {optional: true})),\n transition('void => 200', query('@*', [stagger('200ms', [animateChild()])], {optional: true}))\n ]),\n];\n","import { AfterViewInit, ChangeDetectorRef, Component, EventEmitter, forwardRef, Inject, Input, Output, ViewEncapsulation } from '@angular/core';\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\nimport { AuthProcessService, AuthProvider, MalSharedConfig, MalSharedConfigToken } from 'ngx-firebase';\nimport { MalIonicAlertsService } from 'ngx-firebase/ionic';\nimport { Subscription } from 'rxjs';\nimport { NgxAuthFirebaseuiAnimations } from '../../animations';\n\n@Component({\n selector: 'mal-authui-signin',\n templateUrl: './signin.component.html',\n styleUrls: ['../../ionic-auth-ui.scss'],\n encapsulation: ViewEncapsulation.None,\n animations: NgxAuthFirebaseuiAnimations\n})\nexport class AuthUISignInComponent implements AfterViewInit {\n\n @Input() providers: string[] | string = AuthProvider.ALL; // google, facebook, twitter, github as array or all as one single string\n @Input() registrationEnabled = true;\n @Input() resetPasswordEnabled = true;\n @Input() tosUrl: string = '';\n @Input() privacyPolicyUrl: string = '';\n\n // Events\n // tslint:disable no-output-on-prefix\n @Output() onSuccess: any = this.aps.onSignInEmitter;\n @Output() onError?: any = this.aps.onErrorEmitter;\n @Output() onCreateAccountRequested: EventEmitter<void> = new EventEmitter<void>();\n @Output() onResetPasswordRequested: EventEmitter<void> = new EventEmitter<void>();\n // tslint:enable no-output-on-prefix\n\n signInForm: FormGroup = new FormGroup({\n email: new FormControl('', [Validators.required]),\n password: new FormControl('', [Validators.required])\n });\n\n authProviders = AuthProvider;\n onErrorSubscription?: Subscription;\n\n constructor(\n // tslint:disable-next-line @typescript-eslint/ban-types\n public aps: AuthProcessService,\n private alert: MalIonicAlertsService,\n private changeDetectorRef: ChangeDetectorRef,\n @Inject(forwardRef(() => MalSharedConfigToken)) public config: MalSharedConfig,\n ) { }\n\n async signIn() {\n try {\n this.changeDetectorRef.markForCheck();\n await this.aps.signInWith(AuthProvider.EmailAndPassword, {\n credentials: {\n email: this.signInForm.value.email,\n password: this.signInForm.value.password\n }\n });\n } finally {\n this.changeDetectorRef.markForCheck();\n }\n }\n\n providerClick(provider: AuthProvider) {\n this.aps.signInWith(provider);\n }\n\n ngAfterViewInit() {\n this.changeDetectorRef.detectChanges();\n }\n\n async doPasswordReset() {\n if (this.signInForm.controls.email.invalid) {\n await this.alert.errorAlert('auth.resetPassword.errors.pattern');\n } else {\n await this.aps.resetPassword(this.signInForm.value.email);\n }\n }\n\n}\n","// Angular & Inionc\nimport {\n AfterViewInit, ChangeDetectorRef, Component, EventEmitter, forwardRef, Inject, Input, OnDestroy, OnInit,\n Output, ViewEncapsulation\n} from '@angular/core';\n\n// RxJS\nimport { Observable, Subject } from 'rxjs';\n\n// Mal\nimport { NgxAuthFirebaseuiAnimations } from '../../animations';\nimport { AuthProcessService, AuthProvider, UiService, MalSharedConfig, MalSharedConfigToken } from 'ngx-firebase';\nimport { CreateAccountFormData } from '../register-with-email/register-with-email.component';\nimport { PopoverController } from '@ionic/angular';\n\nfunction isCreateAccountFormData(x: any): x is CreateAccountFormData {\n return x && x.email && x.password;\n}\n\n@Component({\n selector: 'mal-authui-register',\n templateUrl: './register.component.html',\n styleUrls: ['../../ionic-auth-ui.scss'],\n encapsulation: ViewEncapsulation.None,\n animations: NgxAuthFirebaseuiAnimations\n})\nexport class AuthUIRegisterComponent implements OnDestroy, AfterViewInit {\n\n @Input() showEmail: 'inline' | 'popover' | 'none' = 'popover';\n @Input() providers: string[] | string = AuthProvider.ALL; // google, facebook, twitter, github as array or all as one single string\n\n // Events\n // tslint:disable no-output-on-prefix\n @Output() onSuccess: EventEmitter<any> = this.aps.onRegisterEmitter;\n @Output() onError: EventEmitter<any> = this.aps.onErrorEmitter;\n @Output() onLoginRequested: EventEmitter<void> = new EventEmitter<void>();\n // tslint:enable no-output-on-prefix\n\n // Prevent somebody already logged in as guest - relogging in as gyest\n guestEnabled$: Observable<boolean> = this.aps.canSignInAsGuest$;\n\n // Private\n private destroy$: Subject<void> = new Subject<void>();\n\n // tslint:disable-next-line @typescript-eslint/ban-types\n constructor(\n @Inject(forwardRef(() => MalSharedConfigToken)) public config: MalSharedConfig,\n public aps: AuthProcessService,\n private ui: UiService,\n private popover: PopoverController,\n private changeDetectorRef: ChangeDetectorRef\n ) {\n }\n\n ngAfterViewInit() {\n this.changeDetectorRef.detectChanges();\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n async doCreateAccount(data: CreateAccountFormData): Promise<void> {\n try {\n this.changeDetectorRef.markForCheck();\n await this.aps.registerWith(\n AuthProvider.EmailAndPassword,\n {\n credentials: {\n email: data.email,\n password: data.password\n },\n displayName: data.name,\n skipTosCheck: true\n }\n );\n } catch (error) {\n this.ui.logError(error);\n } finally {\n this.changeDetectorRef.markForCheck();\n }\n }\n\n async doRegisterAnonymously() {\n try {\n this.changeDetectorRef.markForCheck();\n await this.aps.signInWith(AuthProvider.ANONYMOUS);\n } catch (error) {\n this.ui.logError(error);\n } finally {\n this.changeDetectorRef.markForCheck();\n }\n }\n\n async doRegisterWithEmailPopover() {\n try {\n const data = await new Promise<CreateAccountFormData | null>(\n async (resolve, reject) => {\n try {\n const { AuthUIRegisterWithEmailPopoverComponent } = await import('../register-with-email-popover/register-with-email-popover.component');\n const popover = await this.popover.create({\n component: AuthUIRegisterWithEmailPopoverComponent,\n cssClass: ['wide-popover', 'dark-backdrop']\n })\n popover.onDidDismiss().then((resp: any) => {\n if (isCreateAccountFormData(resp?.data)) {\n resolve(resp.data);\n } else {\n resolve(null);\n }\n });\n await popover.present();\n } catch (error) {\n this.ui.logError(error);\n reject(error);\n }\n }\n );\n if (data) {\n await this.doCreateAccount(data);\n }\n } catch (error) {\n this.ui.logError(error);\n }\n }\n\n doProviderClick(provider: AuthProvider) {\n try {\n this.aps.registerWith(provider);\n } catch (error) {\n this.ui.logError(error);\n }\n }\n\n}\n","import { Component, EventEmitter, forwardRef, Inject, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\nimport { AuthProcessService, MalSharedConfigToken, MalSharedConfig, FirebaseErrorCodes, PHONE_NUMBER_REGEX, FirebaseService, UiService } from 'ngx-firebase';\nimport { takeUntil } from 'rxjs/operators';\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\nimport { NavController, PopoverController } from '@ionic/angular';\nimport { UserInfo, User } from '@firebase/auth-types';\n\n@Component({\n selector: 'mal-authui-user',\n templateUrl: './user.component.html',\n styleUrls: ['./user.component.scss', '../../ionic-auth-ui.scss']\n})\nexport class AuthUIUserComponent implements OnInit, OnDestroy {\n\n @Input()\n get editMode(): boolean { return this._editMode$.value; }\n set editMode(val: boolean) { this._editMode$.next(val); }\n get editMode$(): Observable<boolean> { return this._editMode$.asObservable(); }\n private _editMode$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n\n canEditAccount = this.config.authUi.allowAccountEdit;\n canLogout = this.config.authUi.allowAccountLogout;\n canDeleteAccount = this.config.authUi.allowAccountDelete;\n\n // tslint:disable no-output-on-prefix\n @Output() onSignOut: EventEmitter<void> = this.aps.onSignOutEmitter;\n @Output() onAccountEdited: EventEmitter<UserInfo> = this.aps.onUserUpdatedEmitter;\n @Output() onAccountDeleted: EventEmitter<void> = this.aps.onUserDeletedEmitter;\n // tslint:enable no-output-on-prefix\n\n private destroy$: Subject<void> = new Subject<void>();\n\n userPhotoUrl$: Observable<string | null> = this.aps.getUserPhotoUrl();\n user$: Observable<User | null> = this.aps.user$;\n\n public readonly updateFormGroup: FormGroup = new FormGroup({\n name: new FormControl('', [Validators.required]),\n email: new FormControl('', [Validators.required]),\n phoneNumber: new FormControl('', [Validators.pattern(PHONE_NUMBER_REGEX)])\n });\n\n constructor(\n public aps: AuthProcessService,\n private ui: UiService,\n private navController: NavController,\n @Inject(forwardRef(() => MalSharedConfigToken)) public config: MalSharedConfig,\n private popoverController: PopoverController,\n private fire: FirebaseService\n ) {\n }\n ngOnInit() {\n this.aps.user$\n .pipe(takeUntil(this.destroy$))\n .subscribe(currentUser => {\n if (currentUser) {\n this.updateFormGroup.patchValue({\n name: currentUser.displayName,\n email: currentUser.email,\n phoneNumber: currentUser.phoneNumber\n });\n this.updateFormGroup.markAsPristine();\n } else {\n this.updateFormGroup.reset();\n this.editMode = false;\n }\n });\n\n this.editMode$\n .pipe(takeUntil(this.destroy$))\n .subscribe(editMode => {\n if (editMode) {\n this.updateFormGroup.enable();\n } else {\n this.updateFormGroup.disable();\n }\n });\n\n this.editMode = false;\n this.updateFormGroup.disable();\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n changeEditMode() {\n this.editMode = !this.editMode;\n }\n\n async dismiss() {\n if (this.popoverController.getTop() !== null) {\n await this.popoverController.dismiss();\n }\n }\n\n async save() {\n if (this.updateFormGroup.dirty) {\n\n try {\n await this.aps.updateUserInfo({\n displayName: (this.updateFormGroup.controls.name.dirty) ? this.updateFormGroup.controls.name.value : undefined,\n email: (this.updateFormGroup.controls.email.dirty) ? this.updateFormGroup.controls.email.value : undefined,\n phoneNumber: (this.updateFormGroup.controls.phoneNumber.dirty) ? this.updateFormGroup.controls.phoneNumber.value : undefined,\n });\n } catch (error) {\n this.fire.recordException(error);\n this.ui.toast(error && error.message ? error.message : error);\n }\n\n await this.dismiss();\n\n } else {\n this.editMode = false;\n }\n }\n\n async signOut() {\n try {\n await Promise.all([\n this.aps.signOut(),\n this.dismiss(),\n this.navController.navigateRoot(this.config.authUi.authGuardFallbackURL)\n ]);\n } catch (error) {\n this.fire.recordException(error);\n }\n }\n\n /**\n * Delete the account of the current firebase ngx-auth-firebaseui-user\n *\n * On Success, emit the <onAccountDeleted> event and toast a msg!#\n * Otherwise, log the and toast and error msg!\n *\n * If the operation fails due to not having current enough signIn, redrect to reSignInUrl, providing forOperation=deleteUser\n *\n */\n async deleteAccount() {\n try {\n if (await this.ui.yesNoAlert(\n 'auth.user.message.confirmDelete',\n { defaultToNo: true, interpolateParams: { userName: this.aps.user?.displayName } })\n ) {\n await this.aps.deleteUser();\n await Promise.all([\n this.dismiss(),\n this.ui.toast('auth.user.message.acountDeleted'),\n this.navController.navigateRoot(this.config.authUi.authGuardFallbackURL)\n ]);\n }\n } catch (error) {\n\n if (error.code === FirebaseErrorCodes.requiresRecentLogin) {\n // If we've failed due to lack of current credentials ask the user to reauthenticate and try again.\n await new Promise<void>(async (resolve, reject) => {\n const popover = await this.popoverController.create({\n component: await import('../reauthenticate/reauthenticate.component').then(m => m.AuthUIReauthenticateComponent),\n componentProps: {\n message: error.message\n },\n cssClass: 'wide-popover'\n });\n popover.onDidDismiss().then(async () => {\n try {\n await this.aps.deleteUser();\n await Promise.all([\n this.dismiss(),\n this.ui.toast('auth.user.message.acountDeleted'),\n this.navController.navigateRoot(this.config.authUi.authGuardFallbackURL)\n ]);\n } catch (error) {\n await this.ui.toast('auth.user.message.acountDeleted', { interpolateParams: { error: error.message } });\n }\n resolve();\n });\n await popover.present();\n });\n\n } else {\n this.fire.recordException(error);\n await this.ui.toast('auth.user.message.acountDeleted', { interpolateParams: { error: error.message } });\n }\n }\n }\n\n}\n\n","import { AfterViewInit, ChangeDetectorRef, Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\nimport { PopoverController } from '@ionic/angular';\nimport { AuthProcessService, AuthProvider, UiService } from 'ngx-firebase';\nimport { map } from 'rxjs/operators';\nimport { NgxAuthFirebaseuiAnimations } from '../../animations';\n\n@Component({\n selector: 'mal-authui-reauthenticate',\n templateUrl: './reauthenticate.component.html',\n styleUrls: ['../../ionic-auth-ui.scss'],\n encapsulation: ViewEncapsulation.None,\n animations: NgxAuthFirebaseuiAnimations\n})\nexport class AuthUIReauthenticateComponent implements AfterViewInit {\n\n @Input() logoUrl?: string;\n @Input() providers: string[] | string = AuthProvider.ALL; // google, facebook, twitter, github as array or all as one single string\n @Input() registrationEnabled = true;\n @Input() resetPasswordEnabled = true;\n @Input() tosUrl: string = '';\n @Input() privacyPolicyUrl: string = '';\n\n // Events\n // tslint:disable no-output-on-prefix\n @Output() onSuccess: any = this.aps.onSignInEmitter;\n @Output() onError: any = this.aps.onErrorEmitter;\n @Output() onCreateAccountRequested: EventEmitter<void> = new EventEmitter<void>();\n @Output() onResetPasswordRequested: EventEmitter<void> = new EventEmitter<void>();\n // tslint:enable no-output-on-prefix\n\n readonly providers$ = this.aps.reauthenticateProviders$;\n readonly showPasswordProvider$ = this.providers$.pipe(map(providers => providers.includes(AuthProvider.EmailAndPassword)));\n readonly showDivider$ = this.providers$.pipe(map(providers => providers.length > 1 && providers.includes(AuthProvider.EmailAndPassword)));\n\n public message: string = '';\n\n public readonly reauthForm: FormGroup = new FormGroup({\n password: new FormControl(null, [Validators.required])\n });\n\n constructor(\n // tslint:disable-next-line @typescript-eslint/ban-types\n public aps: AuthProcessService,\n private ui: UiService,\n private changeDetectorRef: ChangeDetectorRef,\n private popoverController: PopoverController\n ) { }\n\n ngAfterViewInit() {\n this.changeDetectorRef.detectChanges();\n }\n\n async dismiss() {\n if (this.popoverController.getTop() !== null) {\n await this.popoverController.dismiss();\n }\n }\n\n async doReauthenticateWithPassword() {\n try {\n if (!this.aps.user?.email || !this.reauthForm.value.password) {\n throw new Error('Trying to reauth with email/password when not valid');\n }\n await this.aps.reauthenicateWithProvider(\n AuthProvider.EmailAndPassword, { credentials: { email: this.aps.user.email, password: this.reauthForm.value.password } }\n );\n } catch (error) {\n this.ui.logError(error);\n } finally {\n await this.dismiss();\n }\n }\n\n doProviderClick(provider: AuthProvider) {\n try {\n this.aps.reauthenicateWithProvider(provider);\n } catch (error) {\n this.ui.logError(error);\n }\n }\n\n}\n","import { Component, Input, Output, EventEmitter, Inject, forwardRef } from '@angular/core';\nimport { AuthProcessService, AuthProvider, MalSharedConfigToken, MalSharedConfig, UiService } from 'ngx-firebase';\nimport { BehaviorSubject, Observable, of } from 'rxjs';\nimport { catchError, map, switchMap } from 'rxjs/operators';\nimport { NgxAuthFirebaseuiAnimations } from '../../animations';\n\nexport enum Layout {\n ROW = 'row',\n COLUMN = 'column'\n}\n\nexport interface DisplayProvider {\n name: AuthProvider;\n icon?: string;\n label: string;\n}\nconst displayProviders: { [key: string]: DisplayProvider } = {\n google: { name: AuthProvider.Google, icon: 'logo-google', label: 'Google' },\n apple: { name: AuthProvider.Apple, icon: 'logo-apple', label: 'Apple' },\n facebook: { name: AuthProvider.Facebook, icon: 'logo-facebook', label: 'Facebook' },\n twitter: { name: AuthProvider.Twitter, icon: 'logo-twitter', label: 'Twitter' },\n github: { name: AuthProvider.Github, icon: 'logo-github', label: 'GitHub' },\n microsoft: { name: AuthProvider.Microsoft, label: 'Microsoft' },\n yahoo: { name: AuthProvider.Yahoo, icon: 'logo-yahoo', label: 'Yahoo' }\n};\n\ndeclare type ProviderType = AuthProvider[] | AuthProvider;\n\n@Component({\n selector: 'mal-authui-providers',\n templateUrl: 'providers.component.html',\n styleUrls: ['providers.component.scss', '../../ionic-auth-ui.scss'],\n animations: NgxAuthFirebaseuiAnimations\n})\nexport class AuthProvidersComponent {\n\n @Input() layout: string = Layout.ROW;\n\n @Input()\n get providers(): ProviderType | AuthProvider.ALL { return this.providers$.value; }\n set providers(val: ProviderType | AuthProvider.ALL) { this.providers$.next(val); }\n private providers$: BehaviorSubject<ProviderType | AuthProvider.ALL> = new BehaviorSubject<ProviderType>(AuthProvider.ALL);\n\n @Output() providerClick: EventEmitter<AuthProvider> = new EventEmitter<AuthProvider>();\n\n readonly displayProviders$: Observable<DisplayProvider[]> = this.providers$.pipe(\n // Filter for those in config\n map(providerOrArray => {\n if (providerOrArray === AuthProvider.ALL) {\n providerOrArray = this.config.authUi.supportedProviders;\n }\n const providers = Array.isArray(providerOrArray) ? providerOrArray : [providerOrArray];\n return providers.filter(item => this.providers === AuthProvider.ALL || this.providers.includes(item));\n }),\n // Filter for those valid on platform\n switchMap(async providers => {\n const providerFilter = await Promise.all(providers.map(item => this.aps.isProviderSupported(item)));\n return providers.filter((_item, index) => providerFilter[index]);\n }),\n // Map to display type\n map(providers => providers.map(item => displayProviders[item])),\n catchError(error => {\n this.ui.logError(error);\n return of([]);\n })\n );\n\n constructor(\n public aps: AuthProcessService,\n public ui: UiService,\n @Inject(forwardRef(() => MalSharedConfigToken)) public config: MalSharedConfig\n ) {\n }\n\n}\n","import { ChangeDetectorRef, Component, forwardRef, Injector } from '@angular/core';\nimport { FormControl, NG_VALUE_ACCESSOR, Validators, NG_VALIDATORS } from '@angular/forms';\nimport { ValueAccessorControlComponent } from 'ngx-firebase';\n\n@Component({\n selector: 'mal-authui-email-field',\n templateUrl: 'email-field.component.html',\n styleUrls: ['../../ionic-auth-ui.scss'],\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => AuthUIEmailFieldComponent), multi: true },\n { provide: NG_VALIDATORS, useExisting: AuthUIEmailFieldComponent, multi: true }]\n})\nexport class AuthUIEmailFieldComponent extends ValueAccessorControlComponent<string> {\n\n public control: FormControl = new FormControl('', [Validators.email]);\n\n constructor(\n injector: Injector,\n cdRef: ChangeDetectorRef\n ) {\n super(injector, cdRef);\n }\n\n}\n","import { Component, Input } from '@angular/core';\nimport { FormControl, NgControl, ValidationErrors } from '@angular/forms';\nimport { UiService } from 'ngx-firebase';\nimport { BehaviorSubject, Observable, of } from 'rxjs';\nimport { catchError, map, startWith, switchMap } from 'rxjs/operators';\n\ntype ControlType = NgControl | FormControl | undefined | null;\n\n@Component({\n selector: 'mal-authui-form-field',\n templateUrl: 'form-field.component.html',\n styleUrls: ['form-field.component.scss', '../../ionic-auth-ui.scss']\n})\nexport class AuthUIFormFieldComponent {\n\n @Input() label: string = '';\n\n @Input()\n get control(): ControlType { return this.control$.value; }\n set control(val: ControlType) { this.control$.next(val); }\n private control$: BehaviorSubject<ControlType> = new BehaviorSubject<ControlType>(undefined);\n\n public errors$: Observable<string[]> = this.control$.pipe(\n switchMap(control => (control && control.statusChanges)\n ? control.statusChanges.pipe(startWith(control.errors), map(_ => this.errorMessageFn(control.errors)))\n : of([])\n ),\n catchError(error => {\n this.ui.logError(error);\n return of([error.message]);\n })\n );\n\n public readonly isValid$: Observable<boolean> = this.control$.pipe(\n switchMap(control => (control && control.statusChanges)\n ? control.statusChanges.pipe(startWith(control.valid), map(() => control.valid || false))\n : of(true)\n )\n );\n\n public readonly isDisabled$: Observable<boolean> = this.control$.pipe(\n switchMap(control => (control && control.statusChanges)\n ? control.statusChanges.pipe(startWith(control.disabled), map(() => control.disabled || false))\n : of(true)\n )\n );\n\n @Input() errorMessage?: string;\n @Input() errorMessageFn: (errors: ValidationErrors | null) => string[] = this.flattenErrors.bind(this);\n @Input() errorPrefix?: string;\n @Input() customErrors?: { [index: string]: string };\n @Input() translateParams: { [key: string]: string } = {};\n @Input() icon?: string;\n @Input() hintEnd?: string;\n\n constructor(\n private ui: UiService\n ) { }\n\n private flattenErrors(errors: ValidationErrors | null): string[] {\n if (errors) {\n if (this.customErrors || this.errorPrefix) {\n return Object.keys(errors)\n .map(key => {\n if (this.customErrors) {\n if (undefined !== this.customErrors[key]) {\n return this.customErrors[key];\n } else if (undefined !== this.customErrors.default) {\n return this.customErrors.default;\n } else {\n return '';\n }\n } else if (this.errorPrefix) {\n return `${this.errorPrefix}.${key}`;\n }\n })\n .filter(item => !!item) as string[] || [];\n } else if (this.errorMessage) {\n return [this.errorMessage];\n } else {\n return [];\n }\n } else {\n return [];\n }\n }\n\n}\n","import { AfterViewInit, ChangeDetectorRef, Component, forwardRef, Inject, Injector, OnDestroy } from '@angular/core';\nimport { ControlValueAccessor, FormControl, NG_VALUE_ACCESSOR, Validators, NG_VALIDATORS, Validator } from '@angular/forms';\nimport { MalSharedConfigToken, MalSharedConfig, ValueAccessorControlComponent } from 'ngx-firebase';\n\n@Component({\n selector: 'mal-authui-name-field',\n templateUrl: 'name-field.component.html',\n styleUrls: ['../../ionic-auth-ui.scss'],\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => AuthUINameFieldComponent), multi: true },\n { provide: NG_VALIDATORS, useExisting: AuthUINameFieldComponent, multi: true }]\n})\nexport class AuthUINameFieldComponent extends ValueAccessorControlComponent<string>\n implements ControlValueAccessor, Validator, OnDestroy, AfterViewInit {\n\n public control: FormControl = new FormControl('', [\n Validators.minLength(this.config.authUi.nameMinLength),\n Validators.maxLength(this.config.authUi.nameMaxLength)\n ]);\n\n constructor(\n @Inject(forwardRef(() => MalSharedConfigToken)) public config: MalSharedConfig,\n injector: Injector,\n cdRef: ChangeDetectorRef\n ) {\n super(injector, cdRef);\n }\n\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'mal-authui-or-divider',\n templateUrl: 'or-divider.component.html',\n styleUrls: ['or-divider.component.scss', '../../ionic-auth-ui.scss']\n})\nexport class AuthUIOrDividerComponent {\n\n}\n","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\nimport { MalAuthUIConfig } from 'ngx-firebase';\n\nexport function passwordStrengthValidator(config: MalAuthUIConfig): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n let strengthErrors: ValidationErrors | null = null;\n if (control.value) {\n if (config.passwordMinLength && control.value.length < config.passwordMinLength) {\n return { minlength: true };\n }\n if (config.passwordMaxLength && control.value.length > config.passwordMaxLength) {\n return { maxlength: true };\n }\n if (config.passwordRequireLowercase && (!/[a-z]/.test(control.value))) {\n if (!strengthErrors) { strengthErrors = {}; }\n strengthErrors.requireLowercase = true;\n }\n if (config.passwordRequireUppercase && (!/[A-Z]/.test(control.value))) {\n if (!strengthErrors) { strengthErrors = {}; }\n strengthErrors.requireUppercase = true;\n }\n if (config.passwordRequireSpecial && (!/[!@#\\$%\\^&]/.test(control.value))) {\n if (!strengthErrors) { strengthErrors = {}; }\n strengthErrors.requireSpecial = true;\n }\n if (config.passwordRequireNumbers && (!/[0-9]/.test(control.value))) {\n if (!strengthErrors) { strengthErrors = {}; }\n strengthErrors.requireNumbers = true;\n }\n if (strengthErrors) {\n return { passwordStrength: strengthErrors };\n }\n }\n return null;\n };\n}\n\nexport function confirmPasswordValidator(control: AbstractControl): ValidationErrors | null {\n if (!control.parent || !control) {\n return null;\n }\n\n const password = control.parent.get('password');\n const passwordConfirm = control.parent.get('passwordConfirm');\n\n if (!password || !passwordConfirm) {\n return null;\n }\n\n if (!password.value && !passwordConfirm.value) {\n return null;\n }\n\n if (password.value === passwordConfirm.value) {\n return null;\n }\n\n if (password.value && !passwordConfirm.value) {\n return { passwordConfirmationRequired: true };\n }\n\n return { passwordsNotMatching: true };\n}\n","import { AfterViewInit, ChangeDetectorRef, Component, forwardRef, Inject, Injector, Input, OnDestroy } from '@angular/core';\nimport {\n AbstractControl, ControlValueAccessor, FormControl, NG_VALUE_ACCESSOR, Validators,\n FormGroup, NG_VALIDATORS, Validator, ValidationErrors, NgControl\n} from '@angular/forms';\nimport { UiService, MalSharedConfig, MalSharedConfigToken } from 'ngx-firebase';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { confirmPasswordValidator, passwordStrengthValidator } from './passwordValidatorFunctions';\n\ntype ValueType = string | undefined;\n\n@Component({\n selector: 'mal-authui-password-field',\n templateUrl: 'password-field.component.html',\n styleUrls: ['../../ionic-auth-ui.scss'],\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => AuthUIPasswordFieldComponent), multi: true },\n { provide: NG_VALIDATORS, useExisting: AuthUIPasswordFieldComponent, multi: true }]\n})\nexport class AuthUIPasswordFieldComponent implements ControlValueAccessor, Validator, OnDestroy, AfterViewInit {\n\n // Validators are added by set validators function\n public form: FormGroup = new FormGroup({\n password: new FormControl('', []),\n passwordConfirm: new FormControl('', [])\n });\n\n public autocomplete: string = 'current-password';\n\n @Input()\n set forUpdate(val: boolean) {\n this._forUpdate = val;\n this.setValidators();\n if (val) {\n this.autocomplete = 'new-password';\n } else {\n this.autocomplete = 'current-password';\n }\n }\n get forUpdate(): boolean {\n return this._forUpdate;\n }\n private _forUpdate: boolean = false;\n\n @Input()\n set value(val: ValueType) {\n if (val) {\n this.form.patchValue({\n password: val,\n passwordConfirm: val\n });\n } else {\n this.form.reset();\n }\n }\n get value(): ValueType {\n return this.form.controls.password.value;\n }\n\n public isDisabled: boolean = false;\n public parentControl?: NgControl | null;\n\n private destroy$: Subject<void> = new Subject<void>();\n\n propogateChange = (val: ValueType) => { };\n propogateTouch = () => { };\n propogateValidationChange = () => { };\n\n constructor(\n @Inject(forwardRef(() => MalSharedConfigToken)) public config: MalSharedConfig,\n private injector: Injector,\n private cdRef: ChangeDetectorRef,\n private ui: UiService\n ) {\n this.setValidators();\n this.form.controls.password.valueChanges\n .pipe(takeUntil(this.destroy$))\n .subscribe(val => {\n try {\n this.form.controls.passwordConfirm.updateValueAndValidity();\n this.propogateChange(val);\n } catch (error) {\n this.ui.logError(error);\n }\n });\n this.form.statusChanges\n .pipe(takeUntil(this.destroy$))\n .subscribe(_ => {\n try {\n this.propogateValidationChange()\n } catch (error) {\n this.ui.logError(error);\n }\n });\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n ngAfterViewInit() {\n this.parentControl = this.injector.get(NgControl, null);\n this.setValidators();\n this.cdRef.detectChanges();\n }\n\n // Form Accessor functions\n registerOnChange(fn: any) { this.propogateChange = fn; }\n registerOnTouched(fn: any) { this.propogateTouch = fn; }\n registerOnValidatorChange?(fn: () => void) { this.propogateValidationChange = fn; }\n writeValue(val: ValueType) { this.value = val; }\n setDisabledState(isDisabled: boolean) { this.isDisabled = isDisabled; }\n validate(control: AbstractControl): ValidationErrors | null {\n if (this.form.controls.password.errors || this.form.controls.passwordConfirm.errors) {\n return Object.assign(this.form.controls.password.errors || {}, this.form.controls.passwordConfirm.errors || {});\n } else {\n return null;\n }\n }\n\n private setValidators() {\n if (this.forUpdate) {\n this.form.controls.password.setValidators([\n Validators.maxLength(this.config.authUi.passwordMaxLength),\n Validators.minLength(this.config.authUi.passwordMinLength),\n passwordStrengthValidator(this.config.authUi)\n ]);\n this.form.controls.passwordConfirm.setValidators([\n confirmPasswordValidator\n ]);\n } else {\n this.form.controls.password.setValidators([]);\n this.form.controls.passwordConfirm.setValidators([]);\n }\n this.form.controls.password.updateValueAndValidity();\n this.form.controls.passwordConfirm.updateValueAndValidity();\n }\n\n}\n","import { Component, forwardRef, Inject, OnInit } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { NavController } from '@ionic/angular';\r\nimport { UiService, FirebaseService, MalSharedConfig, MalSharedConfigToken } from 'ngx-firebase';\r\nimport { NgxAuthFirebaseuiAnimations } from '../../animations';\r\n\r\n@Component({\r\n templateUrl: 'register.page.html',\r\n styleUrls: ['../../ionic-auth-ui.scss'],\r\n animations: NgxAuthFirebaseuiAnimations\r\n})\r\nexport class AuthRegisterPage implements OnInit {\r\n\r\n readonly logoUrl?: string = this.config.authUi.logoUrl;\r\n\r\n constructor(\r\n private ui: UiService,\r\n private fire: FirebaseService,\r\n private activatedRoute: ActivatedRoute,\r\n private navController: NavController,\r\n @Inject(forwardRef(() => MalSharedConfigToken)) public config: MalSharedConfig,\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.fire.setScreenName('register', 'AuthRegisterPage');\r\n }\r\n\r\n doSuccess() {\r\n try {\r\n const redirectUrl = this.activatedRoute.snapshot.queryParamMap.get('redirectUrl');\r\n if (redirectUrl) {\r\n console.log('Redirecting logged in user to>', redirectUrl);\r\n this.navController.navigateRoot(redirectUrl);\r\n } else {\r\n this.navController.navigateRoot(['/']);\r\n }\r\n } catch (error) {\r\n this.ui.logError(error);\r\n }\r\n }\r\n\r\n doLoginRequested() {\r\n try {\r\n this.navController.navigateRoot(['/auth', 'signin'], { queryParams: { redirectUrl: this.activatedRoute.snapshot.queryParamMap.get('redirectUrl') } });\r\n } catch (error) {\r\n this.ui.logError(error);\r\n }\r\n }\r\n\r\n}\r\n","import { Component, forwardRef, Inject, Input, OnInit } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { NavController } from '@ionic/angular';\r\nimport { NgxAuthFirebaseuiAnimations } from '../../animations';\r\nimport { AuthProcessService, MalSharedConfigToken, MalSharedConfig, UiService, FirebaseService } from 'ngx-firebase';\r\n\r\nexport interface SocialProvider {\r\n name: string;\r\n label: string;\r\n loginFn: () => Promise<void>;\r\n}\r\n\r\n@Component({\r\n templateUrl: 'signin.page.html',\r\n styleUrls: ['../../ionic-auth-ui.scss'],\r\n animations: NgxAuthFirebaseuiAnimations\r\n})\r\nexport class AuthSignInPage implements OnInit {\r\n\r\n readonly logoUrl?: string = this.config.authUi.logoUrl;\r\n\r\n constructor(\r\n private activatedRoute: ActivatedRoute,\r\n private aps: AuthProcessService,\r\n private navController: NavController,\r\n private ui: UiService,\r\n private fire: FirebaseService,\r\n @Inject(forwardRef(() => MalSharedConfigToken)) public config: MalSharedConfig,\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.fire.setScreenName('signin', 'AuthSignInPage');\r\n }\r\n\r\n async doSuccess(e: any) {\r\n\r\n const redirectUrl = this.activatedRoute.snapshot.queryParamMap.get('redirectUrl');\r\n const forOperation = this.activatedRoute.snapshot.queryParamMap.get('forOperation');\r\n\r\n if (redirectUrl) {\r\n // Ridirect to page on SignIn\r\n this.fire.addLogMessage(`Redirecting logged in user to> ${redirectUrl}`);\r\n await this.navController.navigateRoot(redirectUrl);\r\n\r\n } else {\r\n try {\r\n switch (forOperation) {\r\n\r\n case 'deleteUser':\r\n if (await this.ui.yesNoAlert(\r\n 'auth.user.message.confirmDelete',\r\n { interpolateParams: { userName: this.aps.user?.displayName } })\r\n ) {\r\n await this.aps.deleteUser();\r\n }\r\n break;\r\n\r\n case undefined:\r\n case null:\r\n break;\r\n\r\n default:\r\n throw new Error(`Unknown forOperation: ${forOperation}`);\r\n\r\n }\r\n } catch (error) {\r\n this.ui.logError(error);\r\n } finally {\r\n await this.navController.navigateRoot(this.config.authUi.authGuardLoggedInURL);\r\n }\r\n }\r\n }\r\n\r\n doCreateAccountRequested() {\r\n try {\r\n return this.navController.navigateRoot(\r\n ['/auth', 'register'],\r\n { queryParams: { redirectUrl: this.activatedRoute.snapshot.queryParamMap.get('redirectUrl') } }\r\n );\r\n } catch (error) {\r\n this.ui.logError(error);\r\n }\r\n }\r\n\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n templateUrl: 'user.page.html'\r\n})\r\nexport class AuthUserPage {\r\n\r\n constructor(\r\n ) { }\r\n\r\n}\r\n","// Angular\nimport { Component, forwardRef, Inject, OnDestroy, OnInit } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { NavController } from '@ionic/angular';\n\n// Mal\nimport { AuthProcessService, MalSharedConfig, MalSharedConfigToken, UiService, FirebaseService } from 'ngx-firebase';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\n@Component({\n templateUrl: 'verifyemail.page.html',\n styleUrls: ['../../ionic-auth-ui.scss']\n})\nexport class AuthVerifyEmailPage implements OnInit, OnDestroy {\n\n readonly backgroundClass = this.config?.authUi.verifyEmailBackground || '';\n\n private destroy$: Subject<void> = new Subject<void>();\n\n constructor(\n private ui: UiService,\n private fire: FirebaseService,\n private aps: AuthProcessService,\n private route: ActivatedRoute,\n private navCtrl: NavController,\n @Inject(forwardRef(() => MalSharedConfigToken)) public config: MalSharedConfig,\n ) { }\n\n ngOnInit() {\n this.fire.setScreenName('verifyemail', 'VerifyEmailPage');\n\n this.aps.user$.pipe(\n takeUntil(this.destroy$)\n ).subscribe(user => {\n try {\n if (user && user.emailVerified) {\n this.doRetry();\n }\n } catch (error) {\n this.ui.logError(error);\n }\n });\n\n this.aps.onSignOutEmitter.pipe(\n takeUntil(this.destroy$)\n ).subscribe(() => {\n try {\n this.navCtrl.navigateRoot(this.config.authUi.authGuardFallbackURL || '/');\n } catch (error) {\n this.ui.logError(error);\n }\n });\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n async doRetry() {\n try {\n await this.aps.reloadUserInfo();\n const redirect = this.route.snapshot.queryParamMap.get('redirectUrl');\n this.navCtrl.navigateRoot(redirect);\n } catch (error) {\n this.ui.logError(error);\n }\n }\n\n async doResendVerification() {\n try {\n await this.aps.sendNewVerificationEmail();\n await this.ui.toast('auth.emailConfirmation.onConfirmationSuccess');\n } catch (error) {\n this.ui.logError(error);\n }\n }\n\n}\n","// Angular & Inionc\nimport { Component, forwardRef, Inject, Input, OnDestroy, OnInit, } from '@angular/core';\nimport { AbstractControl, ControlValueAccessor, FormControl, FormGroup, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator, Validators } from '@angular/forms';\n\n// RxJS\nimport { Subject } from 'rxjs';\n\n// Mal\nimport { AuthProcessService, UiService, MalSharedConfig, MalSharedConfigToken } from 'ngx-firebase';\nimport { takeUntil } from 'rxjs/operators';\n\ntype ValueType = boolean | undefined;\n@Component({\n selector: 'mal-authui-terms-field',\n templateUrl: './terms-field.component.html',\n styleUrls: ['../../ionic-auth-ui.scss'],\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => AuthUITermsFieldComponent), multi: true },\n { provide: NG_VALIDATORS, useExisting: AuthUITermsFieldComponent, multi: true }\n ]\n})\nexport class AuthUITermsFieldComponent implements OnInit, OnDestroy, ControlValueAccessor, Validator {\n\n termsForm: FormGroup = new FormGroup({\n tos: new FormControl(true, []),\n privacyPolicy: new FormControl(true, [])\n });\n\n // Config\n tosUrl = this.config.authUi.tosUrl;\n privacyPolicyUrl = this.config.authUi.privacyPolicyUrl;\n\n // Private\n private destroy$: Subject<void> = new Subject<void>();\n\n @Input()\n set value(val: ValueType) {\n if (val) {\n this.termsForm.patchValue({\n tos: val,\n privacyPolicy: val\n });\n } else {\n this.termsForm.reset();\n }\n }\n get value(): ValueType {\n return this.termsForm.controls.tos.value && this.termsForm.controls.privacyPolicy.value;\n }\n\n propogateChange = (val: ValueType) => { };\n propogateTouch = () => { };\n propogateValidationChange = () => { };\n\n // tslint:disable-next-line @typescript-eslint/ban-types\n constructor(\n @Inject(forwardRef(() => MalSharedConfigToken)) public config: MalSharedConfig,\n public aps: AuthProcessService,\n private ui: UiService,\n ) {\n this.termsForm.statusChanges\n .pipe(takeUntil(this.destroy$))\n .subscribe(_ => {\n try {\n this.propogateValidationChange()\n } catch (error) {\n this.ui.logError(error);\n }\n });\n }\n\n // Form Accessor functions\n registerOnChange(fn: any) { this.propogateChange = fn; }\n registerOnTouched(fn: any) { this.propogateTouch = fn; }\n registerOnValidatorChange?(fn: () => void) { this.propogateValidationChange = fn; }\n writeValue(val: ValueType) { this.value = val; }\n validate(control: AbstractControl): ValidationErrors | null {\n if (this.termsForm.controls.tos.errors || this.termsForm.controls.privacyPolicy.errors) {\n return Object.assign(this.termsForm.controls.tos.errors || {}, this.termsForm.controls.privacyPolicy.errors || {});\n } else {\n return null;\n }\n }\n\n ngOnInit(): void {\n // If tos or privacy policy url set, ensure that the two form items are required\n if (this.config.authUi.tosUrl) {\n this.termsForm.controls.tos.setValidators(Validators.requiredTrue);\n }\n if (this.config.authUi.privacyPolicyUrl) {\n this.termsForm.controls.privacyPolicy.setValidators(Validators.requiredTrue);\n }\n this.termsForm.updateValueAndValidity();\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n}\n","// Angular & Inionc\nimport {\n AfterViewInit, ChangeDetectorRef, Component, EventEmitter, forwardRef, Inject, OnDestroy, Output, ViewEncapsulation\n} from '@angular/core';\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\n\n// RxJS\nimport { Observable, Subject } from 'rxjs';\n\n// Mal\nimport { NgxAuthFirebaseuiAnimations } from '../../animations';\nimport { AuthProcessService, UiService, MalSharedConfig, MalSharedConfigToken } from 'ngx-firebase';\n\nexport interface CreateAccountFormData {\n name: string,\n email: string,\n password: string,\n terms: boolean\n}\n\n@Component({\n selector: 'mal-authui-register-with-email',\n templateUrl: './register-with-email.component.html',\n styleUrls: ['../../ionic-auth-ui.scss'],\n encapsulation: ViewEncapsulation.None,\n animations: NgxAuthFirebaseuiAnimations\n})\nexport class AuthUIRegisterWithEmailComponent implements OnDestroy, AfterViewInit {\n\n @Output() createAccountClick: EventEmitter<CreateAccountFormData> = new EventEmitter<CreateAccountFormData>();\n\n registerForm: FormGroup = new FormGroup({\n name: new FormControl('', [Validators.required]),\n email: new FormControl('', [Validators.required]),\n password: new FormControl('', [Validators.required]),\n terms: new FormControl(true, []),\n });\n\n // Prevent somebody already logged in as guest - relogging in as gyest\n guestEnabled$: Observable<boolean> = this.aps.canSignInAsGuest$;\n\n // Private\n private destroy$: Subject<void> = new Subject<void>();\n\n // tslint:disable-next-line @typescript-eslint/ban-types\n constructor(\n @Inject(forwardRef(() => MalSharedConfigToken)) public config: MalSharedConfig,\n public aps: AuthProcessService,\n private ui: UiService,\n private changeDetectorRef: ChangeDetectorRef\n ) {\n }\n\n ngAfterViewInit() {\n this.changeDetectorRef.detectChanges();\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n async doCreateAccount(): Promise<void> {\n this.createAccountClick.emit(this.registerForm.value);\n }\n\n}\n","// Angular & Inionc\nimport { Component, ViewEncapsulation } from '@angular/core';\nimport { PopoverController } from '@ionic/angular';\nimport { CreateAccountFormData } from '../register-with-email/register-with-email.component';\n\n// RxJS\n\n// Mal\nimport { NgxAuthFirebaseuiAnimations } from '../../animations';\n\n\n@Component({\n templateUrl: './register-with-email-popover.component.html',\n styleUrls: ['../../ionic-auth-ui.scss'],\n encapsulation: ViewEncapsulation.None,\n animations: NgxAuthFirebaseuiAnimations\n})\nexport class AuthUIRegisterWithEmailPopoverComponent {\n\n constructor(\n private popoverController:PopoverController\n ) { }\n\n doCreateAccountClick(data: CreateAccountFormData) {\n this.popoverController.dismiss(data);\n }\n\n}\n","// @angular/*\nimport { NgModule } from '@angular/core';\nimport { HttpClientModule } from '@angular/common/http';\nimport { IonicModule } from '@ionic/angular';\nimport { CommonModule } from '@angular/common';\n\nimport { TooltipsModule } from 'ionic4-tooltips';\n\n// Mal\nimport { MalSharedModule } from 'ngx-firebase';\nimport { MalIonicModule } from 'ngx-firebase/ionic';\n\n// components\nimport { AuthUISignInComponent } from './components/signin/signin.component';\nimport { AuthUIRegisterComponent } from './components/register/register.component';\nimport { AuthUIUserComponent } from './components/user/user.component';\nimport { AuthUIReauthenticateComponent } from './components/reauthenticate/reauthenticate.component';\nimport { EmailConfirmationComponent } from './components/email-confirmation/email-confirmation.component';\nimport { AuthUINameFieldComponent } from './components/name-field/name-field.component';\nimport { AuthUIPasswordFieldComponent } from './components/password-field/password-field.component';\nimport { AuthUIEmailFieldComponent } from './components/email-field/email-field.component';\nimport { AuthUIOrDividerComponent } from './components/or-divider/or-divider.component';\nimport { AuthUIFormFieldComponent } from './components/form-field/form-field.component';\nimport { AuthProvidersComponent } from './components/providers/providers.component';\nimport { AuthUITermsFieldComponent } from './components/terms-field/terms-field.component';\nimport { AuthUIRegisterWithEmailComponent } from './components/register-with-email/register-with-email.component';\nimport { AuthUIRegisterWithEmailPopoverComponent } from './components/register-with-email-popover/register-with-email-popover.component';\n// services\n// interfaces\n// pages\nimport { AuthSignInPage } from './pages/signin';\nimport { AuthRegisterPage } from './pages/register';\nimport { AuthUserPage } from './pages/user';\nimport { AuthVerifyEmailPage } from './pages/verifyemail';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { FlexLayoutModule } from '@angular/flex-layout';\n\nconst COMPONENTS = [\n AuthUIUserComponent,\n EmailConfirmationComponent,\n AuthUISignInComponent,\n AuthUIRegisterComponent,\n AuthUIReauthenticateComponent,\n AuthSignInPage,\n AuthRegisterPage,\n AuthUserPage,\n AuthVerifyEmailPage,\n AuthUIPasswordFieldComponent,\n AuthUIEmailFieldComponent,\n AuthUINameFieldComponent,\n AuthUIFormFieldComponent,\n AuthUITermsFieldComponent,\n AuthUIRegisterWithEmailComponent,\n AuthUIRegisterWithEmailPopoverComponent,\n AuthUIOrDividerComponent,\n AuthProvidersComponent\n];\n\nexport const IONIC_AUTH_UI_ROUTER_CONFIG = [\n { path: 'signin', component: AuthSignInPage },\n { path: 'register', component: AuthRegisterPage },\n { path: 'user', component: AuthUserPage },\n { path: 'verify', component: AuthVerifyEmailPage },\n { path: '', pathMatch: 'full', redirectTo: 'signin' }\n];\n\n@NgModule({\n imports: [\n MalSharedModule,\n MalIonicModule,\n IonicModule,\n CommonModule,\n TooltipsModule,\n HttpClientModule,\n FormsModule,\n ReactiveFormsModule,\n FlexLayoutModule,\n ],\n exports: [\n ...COMPONENTS,\n FormsModule,\n ReactiveFormsModule,\n FlexLayoutModule,\n IonicModule\n ],\n declarations: COMPONENTS,\n entryComponents: [\n AuthUIUserComponent\n ]\n})\nexport class MalIonicAuthUiModule {\n\n}\n\n\n// Guards\n\n// Components\n\n// services\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {EmailConfirmationComponent as ɵf} from './components/email-confirmation/email-confirmation.component';\nexport {AuthUIEmailFieldComponent as ɵk} from './components/email-field/email-field.component';\nexport {AuthUIFormFieldComponent as ɵm} from './components/form-field/form-field.component';\nexport {AuthUINameFieldComponent as ɵl} from './components/name-field/name-field.component';\nexport {AuthUIOrDividerComponent as ɵq} from './components/or-divider/or-divider.component';\nexport {AuthUIPasswordFieldComponent as ɵj} from './components/password-field/password-field.component';\nexport {AuthProvidersComponent as ɵr} from './components/providers/providers.component';\nexport {AuthUIReauthenticateComponent as ɵi} from './components/reauthenticate/reauthenticate.component';\nexport {AuthUIRegisterWithEmailPopoverComponent as ɵp} from './components/register-with-email-popover/register-with-email-popover.component';\nexport {AuthUIRegisterWithEmailComponent as ɵo} from './components/register-with-email/register-with-email.component';\nexport {AuthUIRegisterComponent as ɵh} from './components/register/register.component';\nexport {AuthUISignInComponent as ɵg} from './components/signin/signin.component';\nexport {AuthUITermsFieldComponent as ɵn} from './components/terms-field/terms-field.component';\nexport {AuthUIUserComponent as ɵe} from './components/user/user.component';\nexport {AuthRegisterPage as ɵb} from './pages/register';\nexport {AuthSignInPage as ɵa} from './pages/signin';\nexport {AuthUserPage as ɵc} from './pages/user';\nexport {AuthVerifyEmailPage as ɵd} from './pages/verifyemail';"],"names":["EventEmitter","Component","ChangeDetectionStrategy","AuthProcessService","ChangeDetectorRef","NavController","FirebaseService","UiService","Inject","forwardRef","MalSharedConfigToken","Input","Output","ViewChild","animation","style","animate","trigger","transition","useAnimation","state","query","stagger","animateChild","AuthProvider","FormGroup","FormControl","Validators","ViewEncapsulation","MalIonicAlertsService","Subject","PopoverController","BehaviorSubject","PHONE_NUMBER_REGEX","takeUntil","FirebaseErrorCodes","map","Layout","switchMap","catchError","of","ValueAccessorControlComponent","NG_VALUE_ACCESSOR","NG_VALIDATORS","Injector","startWith","NgControl","ActivatedRoute","NgModule","MalSharedModule","MalIonicModule","IonicModule","CommonModule","TooltipsModule","HttpClientModule","FormsModule","ReactiveFormsModule","FlexLayoutModule"],"mappings":"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"}
@@ -1,16 +0,0 @@
1
- !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@angular/core"),require("@ionic/angular"),require("ngx-firebase"),require("@angular/forms"),require("ngx-firebase/ionic"),require("@angular/animations"),require("rxjs"),require("rxjs/operators"),require("@angular/router"),require("@angular/common/http"),require("@angular/common"),require("ionic4-tooltips"),require("@angular/flex-layout")):"function"==typeof define&&define.amd?define("ngx-firebase/ionic-auth-ui",["exports","@angular/core","@ionic/angular","ngx-firebase","@angular/forms","ngx-firebase/ionic","@angular/animations","rxjs","rxjs/operators","@angular/router","@angular/common/http","@angular/common","ionic4-tooltips","@angular/flex-layout"],e):e(((t="undefined"!=typeof globalThis?globalThis:t||self)["ngx-firebase"]=t["ngx-firebase"]||{},t["ngx-firebase"]["ionic-auth-ui"]={}),t.ng.core,t.ionic.angular,t["ngx-firebase"],t.ng.forms,t["ngx-firebase"].ionic,t.ng.animations,t.rxjs,t.rxjs.operators,t.ng.router,t.ng.common.http,t.ng.common,t["ionic4-tooltips"],t.ng.flexLayout)}(this,(function(t,e,i,n,r,o,a,s,u,d,l,p,c,h){"use strict";
2
- /*! *****************************************************************************
3
- Copyright (c) Microsoft Corporation.
4
-
5
- Permission to use, copy, modify, and/or distribute this software for any
6
- purpose with or without fee is hereby granted.
7
-
8
- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
9
- REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
10
- AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
11
- INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
12
- LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
13
- OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
14
- PERFORMANCE OF THIS SOFTWARE.
15
- ***************************************************************************** */var m=function(t,e){return(m=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i])})(t,e)};function g(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function i(){this.constructor=t}m(t,e),t.prototype=null===e?Object.create(e):(i.prototype=e.prototype,new i)}function f(t,e,i,n){return new(i||(i=Promise))((function(r,o){function a(t){try{u(n.next(t))}catch(t){o(t)}}function s(t){try{u(n.throw(t))}catch(t){o(t)}}function u(t){var e;t.done?r(t.value):(e=t.value,e instanceof i?e:new i((function(t){t(e)}))).then(a,s)}u((n=n.apply(t,e||[])).next())}))}function v(t,e){var i,n,r,o,a={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(i)throw new TypeError("Generator is already executing.");for(;a;)try{if(i=1,n&&(r=2&o[0]?n.return:o[0]?n.throw||((r=n.return)&&r.call(n),0):n.next)&&!(r=r.call(n,o[1])).done)return r;switch(n=0,r&&(o=[2&o[0],r.value]),o[0]){case 0:case 1:r=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,n=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(r=a.trys,(r=r.length>0&&r[r.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!r||o[1]>r[0]&&o[1]<r[3])){a.label=o[1];break}if(6===o[0]&&a.label<r[1]){a.label=r[1],r=o;break}if(r&&a.label<r[2]){a.label=r[2],a.ops.push(o);break}r[2]&&a.ops.pop(),a.trys.pop();continue}o=e.call(t,a)}catch(t){o=[6,t],n=0}finally{i=r=0}if(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}([o,s])}}}Object.create;function x(t,e){var i="function"==typeof Symbol&&t[Symbol.iterator];if(!i)return t;var n,r,o=i.call(t),a=[];try{for(;(void 0===e||e-- >0)&&!(n=o.next()).done;)a.push(n.value)}catch(t){r={error:t}}finally{try{n&&!n.done&&(i=o.return)&&i.call(o)}finally{if(r)throw r.error}}return a}Object.create;var b=function(){function t(t,i,n,r,o,a){this.aps=t,this.changeDetectorRef=i,this.navController=n,this.fire=r,this.ui=o,this.config=a,this.signOut=new e.EventEmitter,this.verifyEmailContext=this.createTemplateContext(),this.isLoading=!1}return t.prototype.ngOnChanges=function(t){t.verifyEmailTemplate&&null==t.verifyEmailTemplate.currentValue&&(this.verifyEmailTemplate=this.defaultTemplate),this.verifyEmailContext=this.createTemplateContext()},t.prototype.ngOnInit=function(){this.verifyEmailTemplate||(this.verifyEmailTemplate=this.defaultTemplate),this.verifyEmailContext=this.createTemplateContext()},t.prototype.continue=function(){return f(this,void 0,void 0,(function(){var t;return v(this,(function(e){switch(e.label){case 0:return e.trys.push([0,3,,4]),[4,this.aps.reloadUserInfo()];case 1:return e.sent(),[4,this.navController.navigateBack([this.goBackURL])];case 2:return e.sent(),[3,4];case 3:return t=e.sent(),this.notifyError(t),[3,4];case 4:return[2]}}))}))},t.prototype.sendNewVerificationEmail=function(){return f(this,void 0,void 0,(function(){var t;return v(this,(function(e){switch(e.label){case 0:return e.trys.push([0,2,3,4]),this.isLoading=!0,this.changeDetectorRef.markForCheck(),[4,this.aps.sendNewVerificationEmail()];case 1:return e.sent(),this.ui.toast("auth.emailConfirmation.onConfirmationSuccess"),[3,4];case 2:return t=e.sent(),this.notifyError(t),[3,4];case 3:return this.isLoading=!1,this.changeDetectorRef.markForCheck(),[7];case 4:return[2]}}))}))},t.prototype.createTemplateContext=function(){return{email:this.email,goBackURL:this.goBackURL}},t.prototype.notifyError=function(t){if(this.fire.recordException(t),this.config.authUi.toastMessageOnAuthError){var e=t.toString()||"Sorry, something went wrong. Please retry later.";this.ui.toast(e,{duration:this.config.authUi.toastDefaultDurationMil})}},t}();b.decorators=[{type:e.Component,args:[{selector:"mal-authui-email-confirmation",template:'<ng-container *ngTemplateOutlet="verifyEmailTemplate; context: verifyEmailContext"></ng-container>\n<ng-template #defaultVerifyEmail let-email="email" let-goBackURL="goBackURL">\n <ion-card class="verify-email">\n <ion-card-content fxLayout="column" fxLayoutAlign="center center">\n <ion-icon color="text" name="mail-outline"></ion-icon>\n <p class="title" fxLayout="column" fxLayoutAlign="center center">\n <span class="mat-subheading-2">{{ "auth.emailConfirmation.title" | translate }}</span>\n <span class="mat-body-2">{{ "auth.email.label" | translate }}</span>\n </p>\n <p class="subtitle">{{ "auth.emailConfirmation.bodyText" | translate }}</p>\n <ion-progress-bar *ngIf="isLoading" type="indeterminate"></ion-progress-bar>\n </ion-card-content>\n <ion-button color="primary" (click)="continue()" *ngIf="goBackURL" class="go-back-button action-button">\n {{ "auth.emailConfirmation.goBack" | translate }}\n </ion-button>\n <ion-button (color="primary" click)="sendNewVerificationEmail()" class="send-new-mail-button action-button">\n {{ "auth.emailConfirmation.sendNewVerificationEmail" | translate }}\n </ion-button>\n <ion-button color="primary" (click)="this.signOut.emit()" class="sign-out-button action-button" color="warn">\n {{ "auth.emailConfirmation.signOut" | translate }}\n </ion-button>\n </ion-card>\n</ng-template>',changeDetection:e.ChangeDetectionStrategy.OnPush,styles:[".verify-email{width:360px}.verify-email .mat-icon{height:4rem;width:4rem;color:#444}.verify-email .title{margin-top:16px}.verify-email .title .mat-subheading-2{margin-bottom:0}.verify-email .subtitle{margin:16px auto;text-align:justify}.verify-email p{display:block;-webkit-margin-before:1em;-webkit-margin-after:1em;-webkit-margin-start:0;-webkit-margin-end:0}"]}]}],b.ctorParameters=function(){return[{type:n.AuthProcessService},{type:e.ChangeDetectorRef},{type:i.NavController},{type:n.FirebaseService},{type:n.UiService},{type:void 0,decorators:[{type:e.Inject,args:[e.forwardRef((function(){return n.MalSharedConfigToken}))]}]}]},b.propDecorators={email:[{type:e.Input}],goBackURL:[{type:e.Input}],template:[{type:e.Input}],signOut:[{type:e.Output}],defaultTemplate:[{type:e.ViewChild,args:["defaultVerifyEmail",{static:!0}]}]};var w=a.animation([a.style({opacity:"{{opacity}}",transform:"scale({{scale}}) translate3d({{x}}, {{y}}, {{z}})"}),a.animate("{{duration}} {{delay}} cubic-bezier(0.0, 0.0, 0.2, 1)",a.style("*"))],{params:{duration:"200ms",delay:"0ms",opacity:"0",scale:"1",x:"0",y:"0",z:"0"}}),y=[a.trigger("animate",[a.transition("void => *",[a.useAnimation(w)])]),a.trigger("animateStagger",[a.state("50",a.style("*")),a.state("100",a.style("*")),a.state("200",a.style("*")),a.transition("void => 50",a.query("@*",[a.stagger("50ms",[a.animateChild()])],{optional:!0})),a.transition("void => 100",a.query("@*",[a.stagger("100ms",[a.animateChild()])],{optional:!0})),a.transition("void => 200",a.query("@*",[a.stagger("200ms",[a.animateChild()])],{optional:!0}))])],k=function(){function t(t,i,o,a){this.aps=t,this.alert=i,this.changeDetectorRef=o,this.config=a,this.providers=n.AuthProvider.ALL,this.registrationEnabled=!0,this.resetPasswordEnabled=!0,this.tosUrl="",this.privacyPolicyUrl="",this.onSuccess=this.aps.onSignInEmitter,this.onError=this.aps.onErrorEmitter,this.onCreateAccountRequested=new e.EventEmitter,this.onResetPasswordRequested=new e.EventEmitter,this.signInForm=new r.FormGroup({email:new r.FormControl("",[r.Validators.required]),password:new r.FormControl("",[r.Validators.required])}),this.authProviders=n.AuthProvider}return t.prototype.signIn=function(){return f(this,void 0,void 0,(function(){return v(this,(function(t){switch(t.label){case 0:return t.trys.push([0,,2,3]),this.changeDetectorRef.markForCheck(),[4,this.aps.signInWith(n.AuthProvider.EmailAndPassword,{credentials:{email:this.signInForm.value.email,password:this.signInForm.value.password}})];case 1:return t.sent(),[3,3];case 2:return this.changeDetectorRef.markForCheck(),[7];case 3:return[2]}}))}))},t.prototype.providerClick=function(t){this.aps.signInWith(t)},t.prototype.ngAfterViewInit=function(){this.changeDetectorRef.detectChanges()},t.prototype.doPasswordReset=function(){return f(this,void 0,void 0,(function(){return v(this,(function(t){switch(t.label){case 0:return this.signInForm.controls.email.invalid?[4,this.alert.errorAlert("auth.resetPassword.errors.pattern")]:[3,2];case 1:return t.sent(),[3,4];case 2:return[4,this.aps.resetPassword(this.signInForm.value.email)];case 3:t.sent(),t.label=4;case 4:return[2]}}))}))},t}();k.decorators=[{type:e.Component,args:[{selector:"mal-authui-signin",template:'<div fxLayout="column" fxLayoutAlign="center center" id="signin-wrapper" class="authui-wrapper">\n <div [@animateStagger]="{ value: \'50\' }" id="signin-inner" class="authui-inner-wrapper">\n\n <form [@animate]="{value:\'*\',params:{duration:\'300ms\',y:\'100px\'}}" [formGroup]="signInForm" name="signInForm"\n novalidate>\n\n <mal-authui-email-field formControlName="email"\n [@animate]="{ value: \'*\', params: { x: \'50px\' } }">\n </mal-authui-email-field>\n\n <mal-authui-password-field formControlName="password"\n [@animate]="{ value: \'*\', params: { x: \'50px\' } }">\n </mal-authui-password-field>\n\n <div [@animate]="{ value: \'*\', params: { x: \'50px\' } }"\n class="forgot-password"\n fxLayout="row"\n fxLayout.xs="column"\n fxLayoutAlign="space-between center">\n\n <a (click)="doPasswordReset()"\n *ngIf="resetPasswordEnabled"\n [@animate]="{ value: \'*\', params: { x: \'-50px\' } }"\n class="forgot-password"\n type="button">\n {{ "auth.signIn.forgotPassword" | translate }}\n </a>\n </div>\n\n <ion-button (click)="signIn()"\n color="primary"\n [disabled]="signInForm.invalid"\n aria-label="LOG IN"\n fxLayoutAlign="center center"\n class="authui-submit-button"\n id="auth_signin_btn">\n {{"auth.signIn.signInButton" | translate }}\n </ion-button>\n\n </form>\n\n \x3c!--mal-authui-or-divider *ngIf="providers.length > 0"\n [@animate]="{ value: \'*\', params: { z: \'50px\', delay: \'50ms\', scale: \'0.2\' } }">\n </mal-authui-or-divider> --\x3e\n\n <mal-authui-providers [providers]="providers"\n (providerClick)="providerClick($event)"\n layout="column"></mal-authui-providers>\n\n <div *ngIf=" registrationEnabled" [@animateStagger]="{ value: \'100\' }"\n class="authui-alternate-action"\n fxLayout="column"\n fxLayoutAlign="center center">\n <ion-text [@animate]="{ value: \'*\', params: { x: \'100px\' } }"\n color="text"\n class="text">\n {{"auth.signIn.dontHaveAccount" | translate}}\n </ion-text>\n <a (click)="onCreateAccountRequested.emit()"\n [@animate]="{ value: \'*\', params: { x: \'-100px\' } }"\n id="createAccountButton">\n {{"auth.signIn.createAccountButton" | translate}}\n </a>\n </div>\n\n </div>\n</div>',encapsulation:e.ViewEncapsulation.None,animations:y,styles:["div.authui-logo{margin:32px auto;width:30%}div.authui-logo img{display:block;max-width:120px;border-radius:20px;margin-left:auto;margin-right:auto}div.authui-title{font-size:20px;margin:16px 0}div.authui-alternate-action{margin:32px auto 24px;font-weight:500}div.authui-alternate-action .text{margin-right:8px}ion-content.auth-page{--background:var(--auth-pages-background,--background)}div.resend-confirmation{margin:24px 0;font-size:.9em;text-align:center}ion-button.authui-provider-button{width:220px;margin:8px auto;display:block;text-align:center;--background:var(--auth-provider-background-color,#fff)}@media screen and (max-width:599px){ion-button.authui-provider-button{width:100%}}ion-button.authui-submit-button{width:220px;margin:16px auto;display:block}@media screen and (max-width:599px){ion-button.authui-submit-button{width:100%}}ion-grid.terms{width:100%;margin:24px 0;text-align:left;font-size:.9em}ion-grid.terms ion-col ion-row a{font-size:16px;margin-left:4px}div.forgot-password{margin:24px 0;font-size:.9em}@media (prefers-color-scheme:dark){a{color:#fff}}div.auth-ui-form{width:384px;max-width:384px;padding:32px;text-align:center;flex:1 0 auto}@media screen and (max-width:599px){div.auth-ui-form{padding:24px;width:100%}}div.auth-ui-form form{width:100%;text-align:left}div.authui-wrapper{width:100%;background-size:cover;flex:1 0 auto;padding:32px}@media screen and (max-width:599px){div.authui-wrapper{padding:16px}}button.confirm:disabled{color:grey}div.email-popover-outer{width:100%}div.email-popover-outer div.email-popover-inner{padding:10%}"]}]}],k.ctorParameters=function(){return[{type:n.AuthProcessService},{type:o.MalIonicAlertsService},{type:e.ChangeDetectorRef},{type:void 0,decorators:[{type:e.Inject,args:[e.forwardRef((function(){return n.MalSharedConfigToken}))]}]}]},k.propDecorators={providers:[{type:e.Input}],registrationEnabled:[{type:e.Input}],resetPasswordEnabled:[{type:e.Input}],tosUrl:[{type:e.Input}],privacyPolicyUrl:[{type:e.Input}],onSuccess:[{type:e.Output}],onError:[{type:e.Output}],onCreateAccountRequested:[{type:e.Output}],onResetPasswordRequested:[{type:e.Output}]};var C=function(){function t(t,i,r,o,a){this.config=t,this.aps=i,this.ui=r,this.popover=o,this.changeDetectorRef=a,this.showEmail="popover",this.providers=n.AuthProvider.ALL,this.onSuccess=this.aps.onRegisterEmitter,this.onError=this.aps.onErrorEmitter,this.onLoginRequested=new e.EventEmitter,this.guestEnabled$=this.aps.canSignInAsGuest$,this.destroy$=new s.Subject}return t.prototype.ngAfterViewInit=function(){this.changeDetectorRef.detectChanges()},t.prototype.ngOnDestroy=function(){this.destroy$.next(),this.destroy$.complete()},t.prototype.doCreateAccount=function(t){return f(this,void 0,void 0,(function(){var e;return v(this,(function(i){switch(i.label){case 0:return i.trys.push([0,2,3,4]),this.changeDetectorRef.markForCheck(),[4,this.aps.registerWith(n.AuthProvider.EmailAndPassword,{credentials:{email:t.email,password:t.password},displayName:t.name,skipTosCheck:!0})];case 1:return i.sent(),[3,4];case 2:return e=i.sent(),this.ui.logError(e),[3,4];case 3:return this.changeDetectorRef.markForCheck(),[7];case 4:return[2]}}))}))},t.prototype.doRegisterAnonymously=function(){return f(this,void 0,void 0,(function(){var t;return v(this,(function(e){switch(e.label){case 0:return e.trys.push([0,2,3,4]),this.changeDetectorRef.markForCheck(),[4,this.aps.signInWith(n.AuthProvider.ANONYMOUS)];case 1:return e.sent(),[3,4];case 2:return t=e.sent(),this.ui.logError(t),[3,4];case 3:return this.changeDetectorRef.markForCheck(),[7];case 4:return[2]}}))}))},t.prototype.doRegisterWithEmailPopover=function(){return f(this,void 0,void 0,(function(){var t,e,i=this;return v(this,(function(n){switch(n.label){case 0:return n.trys.push([0,4,,5]),[4,new Promise((function(t,e){return f(i,void 0,void 0,(function(){var i,n,r;return v(this,(function(o){switch(o.label){case 0:return o.trys.push([0,4,,5]),[4,Promise.resolve().then((function(){return G}))];case 1:return i=o.sent().AuthUIRegisterWithEmailPopoverComponent,[4,this.popover.create({component:i,cssClass:["wide-popover","dark-backdrop"]})];case 2:return(n=o.sent()).onDidDismiss().then((function(e){var i;(i=null==e?void 0:e.data)&&i.email&&i.password?t(e.data):t(null)})),[4,n.present()];case 3:return o.sent(),[3,5];case 4:return r=o.sent(),this.ui.logError(r),e(r),[3,5];case 5:return[2]}}))}))}))];case 1:return(t=n.sent())?[4,this.doCreateAccount(t)]:[3,3];case 2:n.sent(),n.label=3;case 3:return[3,5];case 4:return e=n.sent(),this.ui.logError(e),[3,5];case 5:return[2]}}))}))},t.prototype.doProviderClick=function(t){try{this.aps.registerWith(t)}catch(t){this.ui.logError(t)}},t}();C.decorators=[{type:e.Component,args:[{selector:"mal-authui-register",template:'<div fxLayout="column" fxLayoutAlign="center center" id="register-wrapper" class="authui-wrapper">\n <div [@animateStagger]="{ value: \'50\' }" id="register-inner" class="authui-inner-wrapper">\n\n <mal-authui-register-with-email *ngIf="showEmail === \'inline\'">\n (createAccountClick)="doCreateAccount($event)">\n </mal-authui-register-with-email>\n\n <div fxLayoutAlign="stretch"\n fxLayout="column"\n class="provider-buttons">\n\n <div *ngIf="showEmail === \'popover\'">\n <ion-button id="auth_register_email_btn"\n (click)="doRegisterWithEmailPopover()"\n [@animate]="{ value: \'*\', params: { x: \'-100px\' } }"\n color="primary"\n class="authui-provider-button">\n <ion-icon name="mail-outline"></ion-icon>\n <ion-label slot="end">{{ "auth.register.emailButton" | translate }}</ion-label>\n </ion-button>\n </div>\n\n <div *ngIf="guestEnabled$ | async">\n <ion-button id="auth_register_anon_btn"\n (click)="doRegisterAnonymously()"\n [@animate]="{ value: \'*\', params: { x: \'-100px\' } }"\n color="primary"\n class="authui-provider-button">\n <ion-icon name="finger-print-outline"></ion-icon>\n <ion-label slot="end">{{ "auth.register.guestButton" | translate }}</ion-label>\n </ion-button>\n </div>\n </div>\n\n <mal-authui-providers [providers]="providers"\n (providerClick)="doProviderClick($event)"\n layout="column">\n </mal-authui-providers>\n\n <div [@animate]="{value:\'*\',params:{duration:\'300ms\',y:\'100px\'}}"\n class="alternate-action"\n fxLayout="column"\n fxLayoutAlign="center center">\n\n <ion-text color="text" [@animate]="{ value: \'*\', params: { x: \'100px\' } }">\n {{ "auth.register.alreadyHaveAccount" | translate }}\n </ion-text>\n\n <a (click)="onLoginRequested.emit()"\n [@animate]="{ value: \'*\', params: { x: \'-100px\' } }"\n id="loginButton">\n {{"auth.register.signInButton" | translate}}\n </a>\n\n </div>\n </div>',encapsulation:e.ViewEncapsulation.None,animations:y,styles:["div.authui-logo{margin:32px auto;width:30%}div.authui-logo img{display:block;max-width:120px;border-radius:20px;margin-left:auto;margin-right:auto}div.authui-title{font-size:20px;margin:16px 0}div.authui-alternate-action{margin:32px auto 24px;font-weight:500}div.authui-alternate-action .text{margin-right:8px}ion-content.auth-page{--background:var(--auth-pages-background,--background)}div.resend-confirmation{margin:24px 0;font-size:.9em;text-align:center}ion-button.authui-provider-button{width:220px;margin:8px auto;display:block;text-align:center;--background:var(--auth-provider-background-color,#fff)}@media screen and (max-width:599px){ion-button.authui-provider-button{width:100%}}ion-button.authui-submit-button{width:220px;margin:16px auto;display:block}@media screen and (max-width:599px){ion-button.authui-submit-button{width:100%}}ion-grid.terms{width:100%;margin:24px 0;text-align:left;font-size:.9em}ion-grid.terms ion-col ion-row a{font-size:16px;margin-left:4px}div.forgot-password{margin:24px 0;font-size:.9em}@media (prefers-color-scheme:dark){a{color:#fff}}div.auth-ui-form{width:384px;max-width:384px;padding:32px;text-align:center;flex:1 0 auto}@media screen and (max-width:599px){div.auth-ui-form{padding:24px;width:100%}}div.auth-ui-form form{width:100%;text-align:left}div.authui-wrapper{width:100%;background-size:cover;flex:1 0 auto;padding:32px}@media screen and (max-width:599px){div.authui-wrapper{padding:16px}}button.confirm:disabled{color:grey}div.email-popover-outer{width:100%}div.email-popover-outer div.email-popover-inner{padding:10%}"]}]}],C.ctorParameters=function(){return[{type:void 0,decorators:[{type:e.Inject,args:[e.forwardRef((function(){return n.MalSharedConfigToken}))]}]},{type:n.AuthProcessService},{type:n.UiService},{type:i.PopoverController},{type:e.ChangeDetectorRef}]},C.propDecorators={showEmail:[{type:e.Input}],providers:[{type:e.Input}],onSuccess:[{type:e.Output}],onError:[{type:e.Output}],onLoginRequested:[{type:e.Output}]};var A=function(){function t(t,e,i,o,a,u){this.aps=t,this.ui=e,this.navController=i,this.config=o,this.popoverController=a,this.fire=u,this._editMode$=new s.BehaviorSubject(!1),this.canEditAccount=this.config.authUi.allowAccountEdit,this.canLogout=this.config.authUi.allowAccountLogout,this.canDeleteAccount=this.config.authUi.allowAccountDelete,this.onSignOut=this.aps.onSignOutEmitter,this.onAccountEdited=this.aps.onUserUpdatedEmitter,this.onAccountDeleted=this.aps.onUserDeletedEmitter,this.destroy$=new s.Subject,this.userPhotoUrl$=this.aps.getUserPhotoUrl(),this.user$=this.aps.user$,this.updateFormGroup=new r.FormGroup({name:new r.FormControl("",[r.Validators.required]),email:new r.FormControl("",[r.Validators.required]),phoneNumber:new r.FormControl("",[r.Validators.pattern(n.PHONE_NUMBER_REGEX)])})}return Object.defineProperty(t.prototype,"editMode",{get:function(){return this._editMode$.value},set:function(t){this._editMode$.next(t)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"editMode$",{get:function(){return this._editMode$.asObservable()},enumerable:!1,configurable:!0}),t.prototype.ngOnInit=function(){var t=this;this.aps.user$.pipe(u.takeUntil(this.destroy$)).subscribe((function(e){e?(t.updateFormGroup.patchValue({name:e.displayName,email:e.email,phoneNumber:e.phoneNumber}),t.updateFormGroup.markAsPristine()):(t.updateFormGroup.reset(),t.editMode=!1)})),this.editMode$.pipe(u.takeUntil(this.destroy$)).subscribe((function(e){e?t.updateFormGroup.enable():t.updateFormGroup.disable()})),this.editMode=!1,this.updateFormGroup.disable()},t.prototype.ngOnDestroy=function(){this.destroy$.next(),this.destroy$.complete()},t.prototype.changeEditMode=function(){this.editMode=!this.editMode},t.prototype.dismiss=function(){return f(this,void 0,void 0,(function(){return v(this,(function(t){switch(t.label){case 0:return null===this.popoverController.getTop()?[3,2]:[4,this.popoverController.dismiss()];case 1:t.sent(),t.label=2;case 2:return[2]}}))}))},t.prototype.save=function(){return f(this,void 0,void 0,(function(){var t;return v(this,(function(e){switch(e.label){case 0:if(!this.updateFormGroup.dirty)return[3,6];e.label=1;case 1:return e.trys.push([1,3,,4]),[4,this.aps.updateUserInfo({displayName:this.updateFormGroup.controls.name.dirty?this.updateFormGroup.controls.name.value:void 0,email:this.updateFormGroup.controls.email.dirty?this.updateFormGroup.controls.email.value:void 0,phoneNumber:this.updateFormGroup.controls.phoneNumber.dirty?this.updateFormGroup.controls.phoneNumber.value:void 0})];case 2:return e.sent(),[3,4];case 3:return t=e.sent(),this.fire.recordException(t),this.ui.toast(t&&t.message?t.message:t),[3,4];case 4:return[4,this.dismiss()];case 5:return e.sent(),[3,7];case 6:this.editMode=!1,e.label=7;case 7:return[2]}}))}))},t.prototype.signOut=function(){return f(this,void 0,void 0,(function(){var t;return v(this,(function(e){switch(e.label){case 0:return e.trys.push([0,2,,3]),[4,Promise.all([this.aps.signOut(),this.dismiss(),this.navController.navigateRoot(this.config.authUi.authGuardFallbackURL)])];case 1:return e.sent(),[3,3];case 2:return t=e.sent(),this.fire.recordException(t),[3,3];case 3:return[2]}}))}))},t.prototype.deleteAccount=function(){var t;return f(this,void 0,void 0,(function(){var e,i=this;return v(this,(function(r){switch(r.label){case 0:return r.trys.push([0,5,,10]),[4,this.ui.yesNoAlert("auth.user.message.confirmDelete",{defaultToNo:!0,interpolateParams:{userName:null===(t=this.aps.user)||void 0===t?void 0:t.displayName}})];case 1:return r.sent()?[4,this.aps.deleteUser()]:[3,4];case 2:return r.sent(),[4,Promise.all([this.dismiss(),this.ui.toast("auth.user.message.acountDeleted"),this.navController.navigateRoot(this.config.authUi.authGuardFallbackURL)])];case 3:r.sent(),r.label=4;case 4:return[3,10];case 5:return(e=r.sent()).code!==n.FirebaseErrorCodes.requiresRecentLogin?[3,7]:[4,new Promise((function(t,n){return f(i,void 0,void 0,(function(){var i,n,r,o,a=this;return v(this,(function(s){switch(s.label){case 0:return r=(n=this.popoverController).create,o={},[4,Promise.resolve().then((function(){return R})).then((function(t){return t.AuthUIReauthenticateComponent}))];case 1:return[4,r.apply(n,[(o.component=s.sent(),o.componentProps={message:e.message},o.cssClass="wide-popover",o)])];case 2:return(i=s.sent()).onDidDismiss().then((function(){return f(a,void 0,void 0,(function(){var e;return v(this,(function(i){switch(i.label){case 0:return i.trys.push([0,3,,5]),[4,this.aps.deleteUser()];case 1:return i.sent(),[4,Promise.all([this.dismiss(),this.ui.toast("auth.user.message.acountDeleted"),this.navController.navigateRoot(this.config.authUi.authGuardFallbackURL)])];case 2:return i.sent(),[3,5];case 3:return e=i.sent(),[4,this.ui.toast("auth.user.message.acountDeleted",{interpolateParams:{error:e.message}})];case 4:return i.sent(),[3,5];case 5:return t(),[2]}}))}))})),[4,i.present()];case 3:return s.sent(),[2]}}))}))}))];case 6:return r.sent(),[3,9];case 7:return this.fire.recordException(e),[4,this.ui.toast("auth.user.message.acountDeleted",{interpolateParams:{error:e.message}})];case 8:r.sent(),r.label=9;case 9:return[3,10];case 10:return[2]}}))}))},t}();A.decorators=[{type:e.Component,args:[{selector:"mal-authui-user",template:'<div *ngIf="user$ | async; then authenticated else none" class="authui-form">\n</div>\n\n<ng-template #authenticated>\n <ion-card *ngIf="(user$ | async) as user">\n\n \x3c!--card header--\x3e\n <ion-card-header fxLayout="column" fxLayoutAlign="center center">\n\n <ion-avatar>\n <img [alt]="user.name" *ngIf="(userPhotoUrl$ | async) as photoUrl" [src]="photoUrl">\n </ion-avatar>\n\n <div *ngIf="user.emailVerified; then emailVerified else emailNotVerified"></div>\n <ng-template #emailVerified>\n <ion-icon name="shield-checkmark-outline" color="primary" [tooltip]="\'auth.email.isVerified\' | translate"> </ion-icon>\n </ng-template>\n <ng-template #emailNotVerified>\n <ion-icon name="warning-outline" color="warn" [tooltip]="\'auth.email.notVerified\' | translate"> </ion-icon>\n </ng-template>\n\n </ion-card-header>\n\n \x3c!--card content--\x3e\n <ion-card-content>\n\n <form (submit)="save()" [formGroup]="updateFormGroup" name="updateFormGroup">\n\n <div fxLayout="column" fxLayoutAlign="center center">\n\n <ion-button *ngIf="canEditAccount && !editMode" (click)="changeEditMode()" class="edit-button"\n color="primary">\n {{ "auth.user.edit" | translate }}\n </ion-button>\n </div>\n\n <mal-authui-name-field formControlName="name"></mal-authui-name-field>\n <mal-authui-email-field formControlName="email"></mal-authui-email-field>\n\n \x3c!--phone number--\x3e\n <mal-authui-form-field [control]="updateFormGroup.controls.phoneNumber"\n icon="call-outline"\n label="auth.phoneNumber.label"\n *ngIf="false"\n class="full-width"\n hintEnd="auth.phoneNumber.hintEnd"\n errorPrefix="auth.phoneNumber.errors">\n <ion-input formControlName="phoneNumber" [placeholder]="\'auth.phoneNumber.placeholder\' | translate" type="tel">\n </ion-input>\n </mal-authui-form-field>\n\n </form>\n\n <div class="card-actions" fxLayout="row" fxLayoutAlign="center center">\n <ion-button *ngIf="editMode" (click)="changeEditMode()" class="edit-button" color="warning">\n {{ "shared.button.cancel" | translate }}\n </ion-button>\n <ion-button expand="block" *ngIf="editMode" color="primary" (click)="save()">{{ "auth.user.actions.save" | translate }} </ion-button>\n </div>\n <div class="card-actions" fxLayout="row" fxLayoutAlign="center center">\n <a expand="block" (click)="signOut()" *ngIf="canLogout" color="primary">{{ "auth.user.actions.signOut" | translate }}</a>\n <a expand="block" (click)="deleteAccount()" *ngIf="canDeleteAccount" color="warning">{{ "auth.user.actions.deleteAccount" | translate }} </a>\n </div>\n\n </ion-card-content>\n </ion-card>\n</ng-template>\n\n<ng-template #none>\n <ion-card class="none-card" fxLayout="row" fxLayoutAlign="center center">\n <ion-card-content fxLayout="row" fxLayoutAlign="center center">\n <ion-icon color="accent">warning</ion-icon>\n <span>{{ "auth.user.notLoggedIn" | translate }}</span>\n </ion-card-content>\n </ion-card>\n</ng-template>',styles:[".edit-button{margin:1rem}.full-width{width:100%}.cut-text{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.none-card{min-height:430px}.none-card span{font-size:24px;text-align:center;color:rgba(0,0,0,.54)}.card-actions a{margin-left:4px;margin-right:4px}","div.authui-logo{margin:32px auto;width:30%}div.authui-logo img{display:block;max-width:120px;border-radius:20px;margin-left:auto;margin-right:auto}div.authui-title{font-size:20px;margin:16px 0}div.authui-alternate-action{margin:32px auto 24px;font-weight:500}div.authui-alternate-action .text{margin-right:8px}ion-content.auth-page{--background:var(--auth-pages-background,--background)}div.resend-confirmation{margin:24px 0;font-size:.9em;text-align:center}ion-button.authui-provider-button{width:220px;margin:8px auto;display:block;text-align:center;--background:var(--auth-provider-background-color,#fff)}@media screen and (max-width:599px){ion-button.authui-provider-button{width:100%}}ion-button.authui-submit-button{width:220px;margin:16px auto;display:block}@media screen and (max-width:599px){ion-button.authui-submit-button{width:100%}}ion-grid.terms{width:100%;margin:24px 0;text-align:left;font-size:.9em}ion-grid.terms ion-col ion-row a{font-size:16px;margin-left:4px}div.forgot-password{margin:24px 0;font-size:.9em}@media (prefers-color-scheme:dark){a{color:#fff}}div.auth-ui-form{width:384px;max-width:384px;padding:32px;text-align:center;flex:1 0 auto}@media screen and (max-width:599px){div.auth-ui-form{padding:24px;width:100%}}div.auth-ui-form form{width:100%;text-align:left}div.authui-wrapper{width:100%;background-size:cover;flex:1 0 auto;padding:32px}@media screen and (max-width:599px){div.authui-wrapper{padding:16px}}button.confirm:disabled{color:grey}div.email-popover-outer{width:100%}div.email-popover-outer div.email-popover-inner{padding:10%}"]}]}],A.ctorParameters=function(){return[{type:n.AuthProcessService},{type:n.UiService},{type:i.NavController},{type:void 0,decorators:[{type:e.Inject,args:[e.forwardRef((function(){return n.MalSharedConfigToken}))]}]},{type:i.PopoverController},{type:n.FirebaseService}]},A.propDecorators={editMode:[{type:e.Input}],onSignOut:[{type:e.Output}],onAccountEdited:[{type:e.Output}],onAccountDeleted:[{type:e.Output}]};var E=function(){function t(t,i,o,a){this.aps=t,this.ui=i,this.changeDetectorRef=o,this.popoverController=a,this.providers=n.AuthProvider.ALL,this.registrationEnabled=!0,this.resetPasswordEnabled=!0,this.tosUrl="",this.privacyPolicyUrl="",this.onSuccess=this.aps.onSignInEmitter,this.onError=this.aps.onErrorEmitter,this.onCreateAccountRequested=new e.EventEmitter,this.onResetPasswordRequested=new e.EventEmitter,this.providers$=this.aps.reauthenticateProviders$,this.showPasswordProvider$=this.providers$.pipe(u.map((function(t){return t.includes(n.AuthProvider.EmailAndPassword)}))),this.showDivider$=this.providers$.pipe(u.map((function(t){return t.length>1&&t.includes(n.AuthProvider.EmailAndPassword)}))),this.message="",this.reauthForm=new r.FormGroup({password:new r.FormControl(null,[r.Validators.required])})}return t.prototype.ngAfterViewInit=function(){this.changeDetectorRef.detectChanges()},t.prototype.dismiss=function(){return f(this,void 0,void 0,(function(){return v(this,(function(t){switch(t.label){case 0:return null===this.popoverController.getTop()?[3,2]:[4,this.popoverController.dismiss()];case 1:t.sent(),t.label=2;case 2:return[2]}}))}))},t.prototype.doReauthenticateWithPassword=function(){var t;return f(this,void 0,void 0,(function(){var e;return v(this,(function(i){switch(i.label){case 0:if(i.trys.push([0,2,3,5]),!(null===(t=this.aps.user)||void 0===t?void 0:t.email)||!this.reauthForm.value.password)throw new Error("Trying to reauth with email/password when not valid");return[4,this.aps.reauthenicateWithProvider(n.AuthProvider.EmailAndPassword,{credentials:{email:this.aps.user.email,password:this.reauthForm.value.password}})];case 1:return i.sent(),[3,5];case 2:return e=i.sent(),this.ui.logError(e),[3,5];case 3:return[4,this.dismiss()];case 4:return i.sent(),[7];case 5:return[2]}}))}))},t.prototype.doProviderClick=function(t){try{this.aps.reauthenicateWithProvider(t)}catch(t){this.ui.logError(t)}},t}();E.decorators=[{type:e.Component,args:[{selector:"mal-authui-reauthenticate",template:'<div fxLayout="column" fxLayoutAlign="center center" id="signin-wrapper" class="authui-wrapper">\n <div [@animateStagger]="{ value: \'50\' }" id="signin-inner" class="authui-inner-wrapper">\n\n <div *ngIf="logoUrl" class="authui-logo">\n <img [@animate]="{ value: \'*\', params: { x: \'50px\' } }" [src]="logoUrl" alt="logo">\n </div>\n\n <div [@animate]="{ value: \'*\', params: { x: \'-50px\' } }" class="authui-title">\n {{ "auth.reauthenticate.tabTitle" | translate }}\n </div>\n\n {{ message }}\n\n <form *ngIf="showPasswordProvider$ | async"\n [@animate]="{value:\'*\',params:{duration:\'300ms\',y:\'100px\'}}"\n [formGroup]="reauthForm"\n name="reauthForm"\n novalidate>\n\n <mal-authui-password-field formControlName="password"\n [@animate]="{ value: \'*\', params: { x: \'50px\' } }">\n </mal-authui-password-field>\n\n <ion-button (click)="doReauthenticateWithPassword()"\n color="primary"\n [disabled]="reauthForm.invalid"\n aria-label="LOG IN"\n fxLayoutAlign="center center"\n class="authui-submit-button"\n id="loginButton">\n {{"auth.signIn.loginButton" | translate }}\n </ion-button>\n\n </form>\n\n <mal-authui-or-divider *ngIf="showDivider$ | async"\n [@animate]="{ value: \'*\', params: { z: \'50px\', delay: \'50ms\', scale: \'0.2\' } }">\n </mal-authui-or-divider>\n\n <mal-authui-providers [providers]="providers$ | async"\n (providerClick)="doProviderClick($event)"\n fxLayoutAlign="center center"\n layout="column"></mal-authui-providers>\n\n </div>\n</div>',encapsulation:e.ViewEncapsulation.None,animations:y,styles:["div.authui-logo{margin:32px auto;width:30%}div.authui-logo img{display:block;max-width:120px;border-radius:20px;margin-left:auto;margin-right:auto}div.authui-title{font-size:20px;margin:16px 0}div.authui-alternate-action{margin:32px auto 24px;font-weight:500}div.authui-alternate-action .text{margin-right:8px}ion-content.auth-page{--background:var(--auth-pages-background,--background)}div.resend-confirmation{margin:24px 0;font-size:.9em;text-align:center}ion-button.authui-provider-button{width:220px;margin:8px auto;display:block;text-align:center;--background:var(--auth-provider-background-color,#fff)}@media screen and (max-width:599px){ion-button.authui-provider-button{width:100%}}ion-button.authui-submit-button{width:220px;margin:16px auto;display:block}@media screen and (max-width:599px){ion-button.authui-submit-button{width:100%}}ion-grid.terms{width:100%;margin:24px 0;text-align:left;font-size:.9em}ion-grid.terms ion-col ion-row a{font-size:16px;margin-left:4px}div.forgot-password{margin:24px 0;font-size:.9em}@media (prefers-color-scheme:dark){a{color:#fff}}div.auth-ui-form{width:384px;max-width:384px;padding:32px;text-align:center;flex:1 0 auto}@media screen and (max-width:599px){div.auth-ui-form{padding:24px;width:100%}}div.auth-ui-form form{width:100%;text-align:left}div.authui-wrapper{width:100%;background-size:cover;flex:1 0 auto;padding:32px}@media screen and (max-width:599px){div.authui-wrapper{padding:16px}}button.confirm:disabled{color:grey}div.email-popover-outer{width:100%}div.email-popover-outer div.email-popover-inner{padding:10%}"]}]}],E.ctorParameters=function(){return[{type:n.AuthProcessService},{type:n.UiService},{type:e.ChangeDetectorRef},{type:i.PopoverController}]},E.propDecorators={logoUrl:[{type:e.Input}],providers:[{type:e.Input}],registrationEnabled:[{type:e.Input}],resetPasswordEnabled:[{type:e.Input}],tosUrl:[{type:e.Input}],privacyPolicyUrl:[{type:e.Input}],onSuccess:[{type:e.Output}],onError:[{type:e.Output}],onCreateAccountRequested:[{type:e.Output}],onResetPasswordRequested:[{type:e.Output}]};var P,R=Object.freeze({__proto__:null,AuthUIReauthenticateComponent:E});t.Layout=void 0,(P=t.Layout||(t.Layout={})).ROW="row",P.COLUMN="column";var U={google:{name:n.AuthProvider.Google,icon:"logo-google",label:"Google"},apple:{name:n.AuthProvider.Apple,icon:"logo-apple",label:"Apple"},facebook:{name:n.AuthProvider.Facebook,icon:"logo-facebook",label:"Facebook"},twitter:{name:n.AuthProvider.Twitter,icon:"logo-twitter",label:"Twitter"},github:{name:n.AuthProvider.Github,icon:"logo-github",label:"GitHub"},microsoft:{name:n.AuthProvider.Microsoft,label:"Microsoft"},yahoo:{name:n.AuthProvider.Yahoo,icon:"logo-yahoo",label:"Yahoo"}},I=function(){function i(i,r,o){var a=this;this.aps=i,this.ui=r,this.config=o,this.layout=t.Layout.ROW,this.providers$=new s.BehaviorSubject(n.AuthProvider.ALL),this.providerClick=new e.EventEmitter,this.displayProviders$=this.providers$.pipe(u.map((function(t){return t===n.AuthProvider.ALL&&(t=a.config.authUi.supportedProviders),(Array.isArray(t)?t:[t]).filter((function(t){return a.providers===n.AuthProvider.ALL||a.providers.includes(t)}))})),u.switchMap((function(t){return f(a,void 0,void 0,(function(){var e,i=this;return v(this,(function(n){switch(n.label){case 0:return[4,Promise.all(t.map((function(t){return i.aps.isProviderSupported(t)})))];case 1:return e=n.sent(),[2,t.filter((function(t,i){return e[i]}))]}}))}))})),u.map((function(t){return t.map((function(t){return U[t]}))})),u.catchError((function(t){return a.ui.logError(t),s.of([])})))}return Object.defineProperty(i.prototype,"providers",{get:function(){return this.providers$.value},set:function(t){this.providers$.next(t)},enumerable:!1,configurable:!0}),i}();I.decorators=[{type:e.Component,args:[{selector:"mal-authui-providers",template:'<div [@animateStagger]="{ value: \'50\' }">\n\n \x3c!--default icon buttons--\x3e\n <div [fxLayoutAlign]="layout == \'row\' ? \'center\' : \'stretch\'"\n [fxLayout]="layout"\n fxLayout.xs="column"\n class="provider-buttons">\n\n <div *ngFor="let provider of (displayProviders$ | async)">\n <ion-button [id]="\'auth_provider_\' + provider.name + \'_btn\'"\n (click)="providerClick.emit(provider.name)"\n [@animate]="{value:\'*\',params:{duration:\'300ms\',y:\'100px\'}}"\n [class]="provider.name + \' authui-provider-button\'">\n\n <ion-icon *ngIf="provider.icon" slot="start" [name]="provider.icon"></ion-icon>\n <ion-label slot="end">{{ \'auth.provider.\' + provider.name | translate }}</ion-label>\n\n </ion-button>\n </div>\n\n </div>\n</div>',animations:y,styles:[":host{display:block}ion-button.google{color:#db4437!important}ion-button.apple{color:#000!important}ion-button.facebook{color:#385899!important}ion-button.twitter{color:#1da1f2!important}ion-button.github{color:#000!important}ion-button.microsoft{color:#0078d4!important}ion-button.yahoo{color:#720e9e!important}ion-button.phone{color:#02bd7e}","div.authui-logo{margin:32px auto;width:30%}div.authui-logo img{display:block;max-width:120px;border-radius:20px;margin-left:auto;margin-right:auto}div.authui-title{font-size:20px;margin:16px 0}div.authui-alternate-action{margin:32px auto 24px;font-weight:500}div.authui-alternate-action .text{margin-right:8px}ion-content.auth-page{--background:var(--auth-pages-background,--background)}div.resend-confirmation{margin:24px 0;font-size:.9em;text-align:center}ion-button.authui-provider-button{width:220px;margin:8px auto;display:block;text-align:center;--background:var(--auth-provider-background-color,#fff)}@media screen and (max-width:599px){ion-button.authui-provider-button{width:100%}}ion-button.authui-submit-button{width:220px;margin:16px auto;display:block}@media screen and (max-width:599px){ion-button.authui-submit-button{width:100%}}ion-grid.terms{width:100%;margin:24px 0;text-align:left;font-size:.9em}ion-grid.terms ion-col ion-row a{font-size:16px;margin-left:4px}div.forgot-password{margin:24px 0;font-size:.9em}@media (prefers-color-scheme:dark){a{color:#fff}}div.auth-ui-form{width:384px;max-width:384px;padding:32px;text-align:center;flex:1 0 auto}@media screen and (max-width:599px){div.auth-ui-form{padding:24px;width:100%}}div.auth-ui-form form{width:100%;text-align:left}div.authui-wrapper{width:100%;background-size:cover;flex:1 0 auto;padding:32px}@media screen and (max-width:599px){div.authui-wrapper{padding:16px}}button.confirm:disabled{color:grey}div.email-popover-outer{width:100%}div.email-popover-outer div.email-popover-inner{padding:10%}"]}]}],I.ctorParameters=function(){return[{type:n.AuthProcessService},{type:n.UiService},{type:void 0,decorators:[{type:e.Inject,args:[e.forwardRef((function(){return n.MalSharedConfigToken}))]}]}]},I.propDecorators={layout:[{type:e.Input}],providers:[{type:e.Input}],providerClick:[{type:e.Output}]};var L=function(t){function e(e,i){var n=t.call(this,e,i)||this;return n.control=new r.FormControl("",[r.Validators.email]),n}return g(e,t),e}(n.ValueAccessorControlComponent);L.decorators=[{type:e.Component,args:[{selector:"mal-authui-email-field",template:'<mal-authui-form-field [control]="parentControl"\n label="auth.email.label"\n errorPrefix="auth.email.errors">\n\n <ion-input [placeholder]="\'auth.email.placeholder\' | translate"\n [formControl]="control"\n type="email"\n color="text"\n autocomplete="email">\n </ion-input>\n\n</mal-authui-form-field>',providers:[{provide:r.NG_VALUE_ACCESSOR,useExisting:e.forwardRef((function(){return L})),multi:!0},{provide:r.NG_VALIDATORS,useExisting:L,multi:!0}],styles:["div.authui-logo{margin:32px auto;width:30%}div.authui-logo img{display:block;max-width:120px;border-radius:20px;margin-left:auto;margin-right:auto}div.authui-title{font-size:20px;margin:16px 0}div.authui-alternate-action{margin:32px auto 24px;font-weight:500}div.authui-alternate-action .text{margin-right:8px}ion-content.auth-page{--background:var(--auth-pages-background,--background)}div.resend-confirmation{margin:24px 0;font-size:.9em;text-align:center}ion-button.authui-provider-button{width:220px;margin:8px auto;display:block;text-align:center;--background:var(--auth-provider-background-color,#fff)}@media screen and (max-width:599px){ion-button.authui-provider-button{width:100%}}ion-button.authui-submit-button{width:220px;margin:16px auto;display:block}@media screen and (max-width:599px){ion-button.authui-submit-button{width:100%}}ion-grid.terms{width:100%;margin:24px 0;text-align:left;font-size:.9em}ion-grid.terms ion-col ion-row a{font-size:16px;margin-left:4px}div.forgot-password{margin:24px 0;font-size:.9em}@media (prefers-color-scheme:dark){a{color:#fff}}div.auth-ui-form{width:384px;max-width:384px;padding:32px;text-align:center;flex:1 0 auto}@media screen and (max-width:599px){div.auth-ui-form{padding:24px;width:100%}}div.auth-ui-form form{width:100%;text-align:left}div.authui-wrapper{width:100%;background-size:cover;flex:1 0 auto;padding:32px}@media screen and (max-width:599px){div.authui-wrapper{padding:16px}}button.confirm:disabled{color:grey}div.email-popover-outer{width:100%}div.email-popover-outer div.email-popover-inner{padding:10%}"]}]}],L.ctorParameters=function(){return[{type:e.Injector},{type:e.ChangeDetectorRef}]};var S=function(){function t(t){var e=this;this.ui=t,this.label="",this.control$=new s.BehaviorSubject(void 0),this.errors$=this.control$.pipe(u.switchMap((function(t){return t&&t.statusChanges?t.statusChanges.pipe(u.startWith(t.errors),u.map((function(i){return e.errorMessageFn(t.errors)}))):s.of([])})),u.catchError((function(t){return e.ui.logError(t),s.of([t.message])}))),this.isValid$=this.control$.pipe(u.switchMap((function(t){return t&&t.statusChanges?t.statusChanges.pipe(u.startWith(t.valid),u.map((function(){return t.valid||!1}))):s.of(!0)}))),this.isDisabled$=this.control$.pipe(u.switchMap((function(t){return t&&t.statusChanges?t.statusChanges.pipe(u.startWith(t.disabled),u.map((function(){return t.disabled||!1}))):s.of(!0)}))),this.errorMessageFn=this.flattenErrors.bind(this),this.translateParams={}}return Object.defineProperty(t.prototype,"control",{get:function(){return this.control$.value},set:function(t){this.control$.next(t)},enumerable:!1,configurable:!0}),t.prototype.flattenErrors=function(t){var e=this;return t?this.customErrors||this.errorPrefix?Object.keys(t).map((function(t){return e.customErrors?void 0!==e.customErrors[t]?e.customErrors[t]:void 0!==e.customErrors.default?e.customErrors.default:"":e.errorPrefix?e.errorPrefix+"."+t:void 0})).filter((function(t){return!!t}))||[]:this.errorMessage?[this.errorMessage]:[]:[]},t}();S.decorators=[{type:e.Component,args:[{selector:"mal-authui-form-field",template:'<ion-item class="ion-no-padding input form-field">\n <ion-label color="text" class="text-size-xs" position="floating">{{ label | translate }}</ion-label>\n <div class="input-wrap">\n <ng-content></ng-content>\n <ion-icon size="large" *ngIf="!(isValid$ | async) && !(isDisabled$ | async)" class="invalid" name="remove-circle"></ion-icon>\n <ion-icon size="large" *ngIf="icon" class="custom" [name]="icon"></ion-icon>\n </div>\n</ion-item>\n<ion-grid class="footer-messages">\n <span class="hint-end" *ngIf="hintEnd">{{ hintEnd | translate:translateParams }}</span>\n <ion-row *ngFor="let error of (errors$ | async)" class="error-message">\n <ion-col>{{ error | translate:translateParams }} </ion-col>\n </ion-row>\n</ion-grid>',styles:["ion-item.form-field{width:100%}ion-item.form-field div.input-wrap{display:flex;flex-wrap:nowrap;width:100%}ion-item.form-field div.input-wrap ion-icon.invalid{color:var(--ion-color-danger,red);align-items:right;height:100%}ion-grid.footer-messages{text-align:left;margin:0;padding:0;font-size:small}ion-grid.footer-messages ion-row.error-message ion-col{color:var(--ion-color-danger,red);margin:0;padding:0}ion-grid.footer-messages span.hint-end{float:right}","div.authui-logo{margin:32px auto;width:30%}div.authui-logo img{display:block;max-width:120px;border-radius:20px;margin-left:auto;margin-right:auto}div.authui-title{font-size:20px;margin:16px 0}div.authui-alternate-action{margin:32px auto 24px;font-weight:500}div.authui-alternate-action .text{margin-right:8px}ion-content.auth-page{--background:var(--auth-pages-background,--background)}div.resend-confirmation{margin:24px 0;font-size:.9em;text-align:center}ion-button.authui-provider-button{width:220px;margin:8px auto;display:block;text-align:center;--background:var(--auth-provider-background-color,#fff)}@media screen and (max-width:599px){ion-button.authui-provider-button{width:100%}}ion-button.authui-submit-button{width:220px;margin:16px auto;display:block}@media screen and (max-width:599px){ion-button.authui-submit-button{width:100%}}ion-grid.terms{width:100%;margin:24px 0;text-align:left;font-size:.9em}ion-grid.terms ion-col ion-row a{font-size:16px;margin-left:4px}div.forgot-password{margin:24px 0;font-size:.9em}@media (prefers-color-scheme:dark){a{color:#fff}}div.auth-ui-form{width:384px;max-width:384px;padding:32px;text-align:center;flex:1 0 auto}@media screen and (max-width:599px){div.auth-ui-form{padding:24px;width:100%}}div.auth-ui-form form{width:100%;text-align:left}div.authui-wrapper{width:100%;background-size:cover;flex:1 0 auto;padding:32px}@media screen and (max-width:599px){div.authui-wrapper{padding:16px}}button.confirm:disabled{color:grey}div.email-popover-outer{width:100%}div.email-popover-outer div.email-popover-inner{padding:10%}"]}]}],S.ctorParameters=function(){return[{type:n.UiService}]},S.propDecorators={label:[{type:e.Input}],control:[{type:e.Input}],errorMessage:[{type:e.Input}],errorMessageFn:[{type:e.Input}],errorPrefix:[{type:e.Input}],customErrors:[{type:e.Input}],translateParams:[{type:e.Input}],icon:[{type:e.Input}],hintEnd:[{type:e.Input}]};var z=function(t){function e(e,i,n){var o=t.call(this,i,n)||this;return o.config=e,o.control=new r.FormControl("",[r.Validators.minLength(o.config.authUi.nameMinLength),r.Validators.maxLength(o.config.authUi.nameMaxLength)]),o}return g(e,t),e}(n.ValueAccessorControlComponent);z.decorators=[{type:e.Component,args:[{selector:"mal-authui-name-field",template:'<mal-authui-form-field [control]="parentControl"\n label="auth.name.label"\n [hintEnd]="(control.value?.length || 0 ) + \' / \' + config.authUi.nameMaxLength"\n errorPrefix="auth.name.errors">\n\n <ion-input [placeholder]="\'auth.name.placeholder\' | translate"\n [maxlength]="config.authUi.nameMaxLength"\n [minlength]="config.authUi.nameMinLength"\n color="text"\n [formControl]="control">\n </ion-input>\n\n</mal-authui-form-field>',providers:[{provide:r.NG_VALUE_ACCESSOR,useExisting:e.forwardRef((function(){return z})),multi:!0},{provide:r.NG_VALIDATORS,useExisting:z,multi:!0}],styles:["div.authui-logo{margin:32px auto;width:30%}div.authui-logo img{display:block;max-width:120px;border-radius:20px;margin-left:auto;margin-right:auto}div.authui-title{font-size:20px;margin:16px 0}div.authui-alternate-action{margin:32px auto 24px;font-weight:500}div.authui-alternate-action .text{margin-right:8px}ion-content.auth-page{--background:var(--auth-pages-background,--background)}div.resend-confirmation{margin:24px 0;font-size:.9em;text-align:center}ion-button.authui-provider-button{width:220px;margin:8px auto;display:block;text-align:center;--background:var(--auth-provider-background-color,#fff)}@media screen and (max-width:599px){ion-button.authui-provider-button{width:100%}}ion-button.authui-submit-button{width:220px;margin:16px auto;display:block}@media screen and (max-width:599px){ion-button.authui-submit-button{width:100%}}ion-grid.terms{width:100%;margin:24px 0;text-align:left;font-size:.9em}ion-grid.terms ion-col ion-row a{font-size:16px;margin-left:4px}div.forgot-password{margin:24px 0;font-size:.9em}@media (prefers-color-scheme:dark){a{color:#fff}}div.auth-ui-form{width:384px;max-width:384px;padding:32px;text-align:center;flex:1 0 auto}@media screen and (max-width:599px){div.auth-ui-form{padding:24px;width:100%}}div.auth-ui-form form{width:100%;text-align:left}div.authui-wrapper{width:100%;background-size:cover;flex:1 0 auto;padding:32px}@media screen and (max-width:599px){div.authui-wrapper{padding:16px}}button.confirm:disabled{color:grey}div.email-popover-outer{width:100%}div.email-popover-outer div.email-popover-inner{padding:10%}"]}]}],z.ctorParameters=function(){return[{type:void 0,decorators:[{type:e.Inject,args:[e.forwardRef((function(){return n.MalSharedConfigToken}))]}]},{type:e.Injector},{type:e.ChangeDetectorRef}]};var F=function(){};function O(t){if(!t.parent||!t)return null;var e=t.parent.get("password"),i=t.parent.get("passwordConfirm");return e&&i&&(e.value||i.value)?e.value===i.value?null:e.value&&!i.value?{passwordConfirmationRequired:!0}:{passwordsNotMatching:!0}:null}F.decorators=[{type:e.Component,args:[{selector:"mal-authui-or-divider",template:'<div \n class="separator">\n <ion-text color="text" class="text">{{ "auth.common.orLabel" | translate }}</ion-text>\n</div>',styles:['.separator{font-size:15px;font-weight:600;margin:20px auto 6px;position:relative;overflow:hidden;width:100px}.separator .text{display:inline-flex;position:relative;padding:0 8px;z-index:9999}.separator .text:after,.separator .text:before{content:"";display:block;width:30px;position:absolute;top:10px;border-top:1px solid}.separator .text:before{right:100%}.separator .text:after{left:100%}',"div.authui-logo{margin:32px auto;width:30%}div.authui-logo img{display:block;max-width:120px;border-radius:20px;margin-left:auto;margin-right:auto}div.authui-title{font-size:20px;margin:16px 0}div.authui-alternate-action{margin:32px auto 24px;font-weight:500}div.authui-alternate-action .text{margin-right:8px}ion-content.auth-page{--background:var(--auth-pages-background,--background)}div.resend-confirmation{margin:24px 0;font-size:.9em;text-align:center}ion-button.authui-provider-button{width:220px;margin:8px auto;display:block;text-align:center;--background:var(--auth-provider-background-color,#fff)}@media screen and (max-width:599px){ion-button.authui-provider-button{width:100%}}ion-button.authui-submit-button{width:220px;margin:16px auto;display:block}@media screen and (max-width:599px){ion-button.authui-submit-button{width:100%}}ion-grid.terms{width:100%;margin:24px 0;text-align:left;font-size:.9em}ion-grid.terms ion-col ion-row a{font-size:16px;margin-left:4px}div.forgot-password{margin:24px 0;font-size:.9em}@media (prefers-color-scheme:dark){a{color:#fff}}div.auth-ui-form{width:384px;max-width:384px;padding:32px;text-align:center;flex:1 0 auto}@media screen and (max-width:599px){div.auth-ui-form{padding:24px;width:100%}}div.auth-ui-form form{width:100%;text-align:left}div.authui-wrapper{width:100%;background-size:cover;flex:1 0 auto;padding:32px}@media screen and (max-width:599px){div.authui-wrapper{padding:16px}}button.confirm:disabled{color:grey}div.email-popover-outer{width:100%}div.email-popover-outer div.email-popover-inner{padding:10%}"]}]}];var V=function(){function t(t,e,i,n){var o=this;this.config=t,this.injector=e,this.cdRef=i,this.ui=n,this.form=new r.FormGroup({password:new r.FormControl("",[]),passwordConfirm:new r.FormControl("",[])}),this.autocomplete="current-password",this._forUpdate=!1,this.isDisabled=!1,this.destroy$=new s.Subject,this.propogateChange=function(t){},this.propogateTouch=function(){},this.propogateValidationChange=function(){},this.setValidators(),this.form.controls.password.valueChanges.pipe(u.takeUntil(this.destroy$)).subscribe((function(t){try{o.form.controls.passwordConfirm.updateValueAndValidity(),o.propogateChange(t)}catch(t){o.ui.logError(t)}})),this.form.statusChanges.pipe(u.takeUntil(this.destroy$)).subscribe((function(t){try{o.propogateValidationChange()}catch(t){o.ui.logError(t)}}))}return Object.defineProperty(t.prototype,"forUpdate",{get:function(){return this._forUpdate},set:function(t){this._forUpdate=t,this.setValidators(),this.autocomplete=t?"new-password":"current-password"},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"value",{get:function(){return this.form.controls.password.value},set:function(t){t?this.form.patchValue({password:t,passwordConfirm:t}):this.form.reset()},enumerable:!1,configurable:!0}),t.prototype.ngOnDestroy=function(){this.destroy$.next(),this.destroy$.complete()},t.prototype.ngAfterViewInit=function(){this.parentControl=this.injector.get(r.NgControl,null),this.setValidators(),this.cdRef.detectChanges()},t.prototype.registerOnChange=function(t){this.propogateChange=t},t.prototype.registerOnTouched=function(t){this.propogateTouch=t},t.prototype.registerOnValidatorChange=function(t){this.propogateValidationChange=t},t.prototype.writeValue=function(t){this.value=t},t.prototype.setDisabledState=function(t){this.isDisabled=t},t.prototype.validate=function(t){return this.form.controls.password.errors||this.form.controls.passwordConfirm.errors?Object.assign(this.form.controls.password.errors||{},this.form.controls.passwordConfirm.errors||{}):null},t.prototype.setValidators=function(){var t;this.forUpdate?(this.form.controls.password.setValidators([r.Validators.maxLength(this.config.authUi.passwordMaxLength),r.Validators.minLength(this.config.authUi.passwordMinLength),(t=this.config.authUi,function(e){var i=null;if(e.value){if(t.passwordMinLength&&e.value.length<t.passwordMinLength)return{minlength:!0};if(t.passwordMaxLength&&e.value.length>t.passwordMaxLength)return{maxlength:!0};if(t.passwordRequireLowercase&&!/[a-z]/.test(e.value)&&(i||(i={}),i.requireLowercase=!0),t.passwordRequireUppercase&&!/[A-Z]/.test(e.value)&&(i||(i={}),i.requireUppercase=!0),t.passwordRequireSpecial&&!/[!@#\$%\^&]/.test(e.value)&&(i||(i={}),i.requireSpecial=!0),t.passwordRequireNumbers&&!/[0-9]/.test(e.value)&&(i||(i={}),i.requireNumbers=!0),i)return{passwordStrength:i}}return null})]),this.form.controls.passwordConfirm.setValidators([O])):(this.form.controls.password.setValidators([]),this.form.controls.passwordConfirm.setValidators([])),this.form.controls.password.updateValueAndValidity(),this.form.controls.passwordConfirm.updateValueAndValidity()},t}();V.decorators=[{type:e.Component,args:[{selector:"mal-authui-password-field",template:'<form name="form" [formGroup]="form">\n <mal-authui-form-field [control]="parentControl"\n label="auth.password.label"\n [hintEnd]="form.value.password?.length || 0 + \' / \' + config.authUi.passwordMaxLength"\n errorPrefix="auth.password.errors">\n\n <ion-input (onBlur)="propogateTouch()"\n [maxlength]="config.authUi.passwordMaxLength"\n [minlength]="config.authUi.passwordMinLength"\n [placeholder]="\'auth.password.placeholder\' | translate"\n formControlName="password"\n color="text"\n type="password"\n [autocomplete]="autocomplete">\n </ion-input>\n\n </mal-authui-form-field>\n\n <mal-authui-form-field *ngIf="forUpdate"\n label="auth.password.confirmLabel"\n errorPrefix="auth.password.errors">\n\n <ion-input (onBlur)="propogateTouch()"\n [placeholder]="\'auth.password.confirmPlaceholder\' | translate"\n formControlName="passwordConfirm"\n color="text"\n type="password">\n </ion-input>\n\n </mal-authui-form-field>\n</form>\n\n\x3c!-- TODO <mat-pass-toggle-visibility #toggle matSuffix></mat-pass-toggle-visibility> --\x3e\n\x3c!-- TODO <mat-password-strength #passwordStrength\n [customValidator]="customValidator"\n [enableDigitRule]="enableDigitRule"\n [enableLengthRule]="enableLengthRule"\n [enableLowerCaseLetterRule]="enableLowerCaseLetterRule"\n [enableSpecialCharRule]="enableSpecialCharRule"\n [enableUpperCaseLetterRule]="enableUpperCaseLetterRule"\n [externalError]="signUpFormGroup.controls.password.dirty"\n [max]="max"\n [min]="min"\n [password]="signUpFormGroup.value.password">\n </mat-password-strength> --\x3e',providers:[{provide:r.NG_VALUE_ACCESSOR,useExisting:e.forwardRef((function(){return V})),multi:!0},{provide:r.NG_VALIDATORS,useExisting:V,multi:!0}],styles:["div.authui-logo{margin:32px auto;width:30%}div.authui-logo img{display:block;max-width:120px;border-radius:20px;margin-left:auto;margin-right:auto}div.authui-title{font-size:20px;margin:16px 0}div.authui-alternate-action{margin:32px auto 24px;font-weight:500}div.authui-alternate-action .text{margin-right:8px}ion-content.auth-page{--background:var(--auth-pages-background,--background)}div.resend-confirmation{margin:24px 0;font-size:.9em;text-align:center}ion-button.authui-provider-button{width:220px;margin:8px auto;display:block;text-align:center;--background:var(--auth-provider-background-color,#fff)}@media screen and (max-width:599px){ion-button.authui-provider-button{width:100%}}ion-button.authui-submit-button{width:220px;margin:16px auto;display:block}@media screen and (max-width:599px){ion-button.authui-submit-button{width:100%}}ion-grid.terms{width:100%;margin:24px 0;text-align:left;font-size:.9em}ion-grid.terms ion-col ion-row a{font-size:16px;margin-left:4px}div.forgot-password{margin:24px 0;font-size:.9em}@media (prefers-color-scheme:dark){a{color:#fff}}div.auth-ui-form{width:384px;max-width:384px;padding:32px;text-align:center;flex:1 0 auto}@media screen and (max-width:599px){div.auth-ui-form{padding:24px;width:100%}}div.auth-ui-form form{width:100%;text-align:left}div.authui-wrapper{width:100%;background-size:cover;flex:1 0 auto;padding:32px}@media screen and (max-width:599px){div.authui-wrapper{padding:16px}}button.confirm:disabled{color:grey}div.email-popover-outer{width:100%}div.email-popover-outer div.email-popover-inner{padding:10%}"]}]}],V.ctorParameters=function(){return[{type:void 0,decorators:[{type:e.Inject,args:[e.forwardRef((function(){return n.MalSharedConfigToken}))]}]},{type:e.Injector},{type:e.ChangeDetectorRef},{type:n.UiService}]},V.propDecorators={forUpdate:[{type:e.Input}],value:[{type:e.Input}]};var M=function(){function t(t,e,i,n,r){this.ui=t,this.fire=e,this.activatedRoute=i,this.navController=n,this.config=r,this.logoUrl=this.config.authUi.logoUrl}return t.prototype.ngOnInit=function(){this.fire.setScreenName("register","AuthRegisterPage")},t.prototype.doSuccess=function(){try{var t=this.activatedRoute.snapshot.queryParamMap.get("redirectUrl");t?(console.log("Redirecting logged in user to>",t),this.navController.navigateRoot(t)):this.navController.navigateRoot(["/"])}catch(t){this.ui.logError(t)}},t.prototype.doLoginRequested=function(){try{this.navController.navigateRoot(["/auth","signin"],{queryParams:{redirectUrl:this.activatedRoute.snapshot.queryParamMap.get("redirectUrl")}})}catch(t){this.ui.logError(t)}},t}();M.decorators=[{type:e.Component,args:[{template:'<ion-header>\r\n <ion-toolbar class="box-shadow" color="toolbar">\r\n <ion-buttons slot="start">\r\n <ion-back-button defaultHref="/"></ion-back-button>\r\n </ion-buttons>\r\n <ion-title>{{ "auth.register.pageTitle" | translate }}</ion-title>\r\n </ion-toolbar>\r\n</ion-header>\r\n\r\n<ion-content [fullscreen]="true" class="auth-page">\r\n <div fxLayout="column" fxLayoutAlign="center center" id="register-page-wrapper">\r\n\r\n <div *ngIf="logoUrl" class="authui-logo">\r\n <img [@animate]="{ value: \'*\', params: { x: \'50px\' } }" [src]="logoUrl" alt="logo">\r\n </div>\r\n\r\n <mal-authui-register (onSuccess)="doSuccess()" (onLoginRequested)="doLoginRequested()">\r\n </mal-authui-register>\r\n\r\n </div>\r\n</ion-content>',animations:y,styles:["div.authui-logo{margin:32px auto;width:30%}div.authui-logo img{display:block;max-width:120px;border-radius:20px;margin-left:auto;margin-right:auto}div.authui-title{font-size:20px;margin:16px 0}div.authui-alternate-action{margin:32px auto 24px;font-weight:500}div.authui-alternate-action .text{margin-right:8px}ion-content.auth-page{--background:var(--auth-pages-background,--background)}div.resend-confirmation{margin:24px 0;font-size:.9em;text-align:center}ion-button.authui-provider-button{width:220px;margin:8px auto;display:block;text-align:center;--background:var(--auth-provider-background-color,#fff)}@media screen and (max-width:599px){ion-button.authui-provider-button{width:100%}}ion-button.authui-submit-button{width:220px;margin:16px auto;display:block}@media screen and (max-width:599px){ion-button.authui-submit-button{width:100%}}ion-grid.terms{width:100%;margin:24px 0;text-align:left;font-size:.9em}ion-grid.terms ion-col ion-row a{font-size:16px;margin-left:4px}div.forgot-password{margin:24px 0;font-size:.9em}@media (prefers-color-scheme:dark){a{color:#fff}}div.auth-ui-form{width:384px;max-width:384px;padding:32px;text-align:center;flex:1 0 auto}@media screen and (max-width:599px){div.auth-ui-form{padding:24px;width:100%}}div.auth-ui-form form{width:100%;text-align:left}div.authui-wrapper{width:100%;background-size:cover;flex:1 0 auto;padding:32px}@media screen and (max-width:599px){div.authui-wrapper{padding:16px}}button.confirm:disabled{color:grey}div.email-popover-outer{width:100%}div.email-popover-outer div.email-popover-inner{padding:10%}"]}]}],M.ctorParameters=function(){return[{type:n.UiService},{type:n.FirebaseService},{type:d.ActivatedRoute},{type:i.NavController},{type:void 0,decorators:[{type:e.Inject,args:[e.forwardRef((function(){return n.MalSharedConfigToken}))]}]}]};var N=function(){function t(t,e,i,n,r,o){this.activatedRoute=t,this.aps=e,this.navController=i,this.ui=n,this.fire=r,this.config=o,this.logoUrl=this.config.authUi.logoUrl}return t.prototype.ngOnInit=function(){this.fire.setScreenName("signin","AuthSignInPage")},t.prototype.doSuccess=function(t){var e;return f(this,void 0,void 0,(function(){var t,i,n;return v(this,(function(r){switch(r.label){case 0:return t=this.activatedRoute.snapshot.queryParamMap.get("redirectUrl"),i=this.activatedRoute.snapshot.queryParamMap.get("forOperation"),t?(this.fire.addLogMessage("Redirecting logged in user to> "+t),[4,this.navController.navigateRoot(t)]):[3,2];case 1:return r.sent(),[3,13];case 2:switch(r.trys.push([2,10,11,13]),i){case"deleteUser":return[3,3];case void 0:case null:return[3,7]}return[3,8];case 3:return[4,this.ui.yesNoAlert("auth.user.message.confirmDelete",{interpolateParams:{userName:null===(e=this.aps.user)||void 0===e?void 0:e.displayName}})];case 4:return r.sent()?[4,this.aps.deleteUser()]:[3,6];case 5:r.sent(),r.label=6;case 6:case 7:return[3,9];case 8:throw new Error("Unknown forOperation: "+i);case 9:return[3,13];case 10:return n=r.sent(),this.ui.logError(n),[3,13];case 11:return[4,this.navController.navigateRoot(this.config.authUi.authGuardLoggedInURL)];case 12:return r.sent(),[7];case 13:return[2]}}))}))},t.prototype.doCreateAccountRequested=function(){try{return this.navController.navigateRoot(["/auth","register"],{queryParams:{redirectUrl:this.activatedRoute.snapshot.queryParamMap.get("redirectUrl")}})}catch(t){this.ui.logError(t)}},t}();N.decorators=[{type:e.Component,args:[{template:'<ion-header>\r\n <ion-toolbar class="box-shadow" color="toolbar">\r\n <ion-buttons slot="start">\r\n <ion-back-button defaultHref="/"></ion-back-button>\r\n </ion-buttons>\r\n <ion-title id="auth_signin_title">{{ "auth.signIn.pageTitle" | translate }}</ion-title>\r\n </ion-toolbar>\r\n</ion-header>\r\n\r\n<ion-content [fullscreen]="true" class="auth-page">\r\n <div fxLayout="column" fxLayoutAlign="center center" id="register-wrapper" class="authui-wrapper">\r\n\r\n <div *ngIf="logoUrl" class="authui-logo">\r\n <img [@animate]="{ value: \'*\', params: { x: \'50px\' } }" [src]="logoUrl" alt="logo">\r\n </div>\r\n\r\n <mal-authui-signin (onCreateAccountRequested)="doCreateAccountRequested()" (onSuccess)="doSuccess($event)"\r\n [providers]="[\'google\', \'apple\', \'facebook\']"></mal-authui-signin>\r\n\r\n </div>\r\n</ion-content>',animations:y,styles:["div.authui-logo{margin:32px auto;width:30%}div.authui-logo img{display:block;max-width:120px;border-radius:20px;margin-left:auto;margin-right:auto}div.authui-title{font-size:20px;margin:16px 0}div.authui-alternate-action{margin:32px auto 24px;font-weight:500}div.authui-alternate-action .text{margin-right:8px}ion-content.auth-page{--background:var(--auth-pages-background,--background)}div.resend-confirmation{margin:24px 0;font-size:.9em;text-align:center}ion-button.authui-provider-button{width:220px;margin:8px auto;display:block;text-align:center;--background:var(--auth-provider-background-color,#fff)}@media screen and (max-width:599px){ion-button.authui-provider-button{width:100%}}ion-button.authui-submit-button{width:220px;margin:16px auto;display:block}@media screen and (max-width:599px){ion-button.authui-submit-button{width:100%}}ion-grid.terms{width:100%;margin:24px 0;text-align:left;font-size:.9em}ion-grid.terms ion-col ion-row a{font-size:16px;margin-left:4px}div.forgot-password{margin:24px 0;font-size:.9em}@media (prefers-color-scheme:dark){a{color:#fff}}div.auth-ui-form{width:384px;max-width:384px;padding:32px;text-align:center;flex:1 0 auto}@media screen and (max-width:599px){div.auth-ui-form{padding:24px;width:100%}}div.auth-ui-form form{width:100%;text-align:left}div.authui-wrapper{width:100%;background-size:cover;flex:1 0 auto;padding:32px}@media screen and (max-width:599px){div.authui-wrapper{padding:16px}}button.confirm:disabled{color:grey}div.email-popover-outer{width:100%}div.email-popover-outer div.email-popover-inner{padding:10%}"]}]}],N.ctorParameters=function(){return[{type:d.ActivatedRoute},{type:n.AuthProcessService},{type:i.NavController},{type:n.UiService},{type:n.FirebaseService},{type:void 0,decorators:[{type:e.Inject,args:[e.forwardRef((function(){return n.MalSharedConfigToken}))]}]}]};var $=function(){};$.decorators=[{type:e.Component,args:[{template:'\x3c!-- Header --\x3e\r\n<ion-header>\r\n <ion-toolbar class="box-shadow">\r\n <ion-buttons slot="start">\r\n <ion-back-button defaultHref="/"></ion-back-button>\r\n </ion-buttons>\r\n <ion-title class="ion-text-uppercase">{{ "auth.user.title" | translate }}</ion-title>\r\n </ion-toolbar>\r\n</ion-header>\r\n\x3c!-- Content --\x3e\r\n<ion-content>\r\n <mal-authui-user></mal-authui-user>\r\n</ion-content>'}]}],$.ctorParameters=function(){return[]};var D=function(){function t(t,e,i,n,r,o){var a;this.ui=t,this.fire=e,this.aps=i,this.route=n,this.navCtrl=r,this.config=o,this.backgroundClass=(null===(a=this.config)||void 0===a?void 0:a.authUi.verifyEmailBackground)||"",this.destroy$=new s.Subject}return t.prototype.ngOnInit=function(){var t=this;this.fire.setScreenName("verifyemail","VerifyEmailPage"),this.aps.user$.pipe(u.takeUntil(this.destroy$)).subscribe((function(e){try{e&&e.emailVerified&&t.doRetry()}catch(e){t.ui.logError(e)}})),this.aps.onSignOutEmitter.pipe(u.takeUntil(this.destroy$)).subscribe((function(){try{t.navCtrl.navigateRoot(t.config.authUi.authGuardFallbackURL||"/")}catch(e){t.ui.logError(e)}}))},t.prototype.ngOnDestroy=function(){this.destroy$.next(),this.destroy$.complete()},t.prototype.doRetry=function(){return f(this,void 0,void 0,(function(){var t,e;return v(this,(function(i){switch(i.label){case 0:return i.trys.push([0,2,,3]),[4,this.aps.reloadUserInfo()];case 1:return i.sent(),t=this.route.snapshot.queryParamMap.get("redirectUrl"),this.navCtrl.navigateRoot(t),[3,3];case 2:return e=i.sent(),this.ui.logError(e),[3,3];case 3:return[2]}}))}))},t.prototype.doResendVerification=function(){return f(this,void 0,void 0,(function(){var t;return v(this,(function(e){switch(e.label){case 0:return e.trys.push([0,3,,4]),[4,this.aps.sendNewVerificationEmail()];case 1:return e.sent(),[4,this.ui.toast("auth.emailConfirmation.onConfirmationSuccess")];case 2:return e.sent(),[3,4];case 3:return t=e.sent(),this.ui.logError(t),[3,4];case 4:return[2]}}))}))},t}();D.decorators=[{type:e.Component,args:[{template:'<ion-header>\n <ion-toolbar color="toolbar">\n <ion-title>\n {{ "auth.emailConfirmation.pageTitle" | translate }}\n </ion-title>\n <ion-buttons slot="start">\n </ion-buttons>\n <ion-buttons slot="end">\n <mal-auth-avatar></mal-auth-avatar>\n </ion-buttons>\n </ion-toolbar>\n</ion-header>\n\n<ion-content [fullscreen]="true" [class]="backgroundClass">\n <div class="message-area">\n <h2>{{ "auth.emailConfirmation.title" | translate }}</h2>\n <ion-text [innerHtml]="\'auth.emailConfirmation.bodyHtml\' | translate"></ion-text>\n <div class="resend-confirmation">\n <a (click)="doResendVerification()">{{ "auth.emailConfirmation.sendNewVerificationEmail" | translate }}</a>\n </div>\n <ion-button expand="block" (click)="doRetry()">{{ "auth.emailConfirmation.refreshStatus" | translate }}</ion-button>\n </div>\n</ion-content>',styles:["div.authui-logo{margin:32px auto;width:30%}div.authui-logo img{display:block;max-width:120px;border-radius:20px;margin-left:auto;margin-right:auto}div.authui-title{font-size:20px;margin:16px 0}div.authui-alternate-action{margin:32px auto 24px;font-weight:500}div.authui-alternate-action .text{margin-right:8px}ion-content.auth-page{--background:var(--auth-pages-background,--background)}div.resend-confirmation{margin:24px 0;font-size:.9em;text-align:center}ion-button.authui-provider-button{width:220px;margin:8px auto;display:block;text-align:center;--background:var(--auth-provider-background-color,#fff)}@media screen and (max-width:599px){ion-button.authui-provider-button{width:100%}}ion-button.authui-submit-button{width:220px;margin:16px auto;display:block}@media screen and (max-width:599px){ion-button.authui-submit-button{width:100%}}ion-grid.terms{width:100%;margin:24px 0;text-align:left;font-size:.9em}ion-grid.terms ion-col ion-row a{font-size:16px;margin-left:4px}div.forgot-password{margin:24px 0;font-size:.9em}@media (prefers-color-scheme:dark){a{color:#fff}}div.auth-ui-form{width:384px;max-width:384px;padding:32px;text-align:center;flex:1 0 auto}@media screen and (max-width:599px){div.auth-ui-form{padding:24px;width:100%}}div.auth-ui-form form{width:100%;text-align:left}div.authui-wrapper{width:100%;background-size:cover;flex:1 0 auto;padding:32px}@media screen and (max-width:599px){div.authui-wrapper{padding:16px}}button.confirm:disabled{color:grey}div.email-popover-outer{width:100%}div.email-popover-outer div.email-popover-inner{padding:10%}"]}]}],D.ctorParameters=function(){return[{type:n.UiService},{type:n.FirebaseService},{type:n.AuthProcessService},{type:d.ActivatedRoute},{type:i.NavController},{type:void 0,decorators:[{type:e.Inject,args:[e.forwardRef((function(){return n.MalSharedConfigToken}))]}]}]};var T=function(){function t(t,e,i){var n=this;this.config=t,this.aps=e,this.ui=i,this.termsForm=new r.FormGroup({tos:new r.FormControl(!0,[]),privacyPolicy:new r.FormControl(!0,[])}),this.tosUrl=this.config.authUi.tosUrl,this.privacyPolicyUrl=this.config.authUi.privacyPolicyUrl,this.destroy$=new s.Subject,this.propogateChange=function(t){},this.propogateTouch=function(){},this.propogateValidationChange=function(){},this.termsForm.statusChanges.pipe(u.takeUntil(this.destroy$)).subscribe((function(t){try{n.propogateValidationChange()}catch(t){n.ui.logError(t)}}))}return Object.defineProperty(t.prototype,"value",{get:function(){return this.termsForm.controls.tos.value&&this.termsForm.controls.privacyPolicy.value},set:function(t){t?this.termsForm.patchValue({tos:t,privacyPolicy:t}):this.termsForm.reset()},enumerable:!1,configurable:!0}),t.prototype.registerOnChange=function(t){this.propogateChange=t},t.prototype.registerOnTouched=function(t){this.propogateTouch=t},t.prototype.registerOnValidatorChange=function(t){this.propogateValidationChange=t},t.prototype.writeValue=function(t){this.value=t},t.prototype.validate=function(t){return this.termsForm.controls.tos.errors||this.termsForm.controls.privacyPolicy.errors?Object.assign(this.termsForm.controls.tos.errors||{},this.termsForm.controls.privacyPolicy.errors||{}):null},t.prototype.ngOnInit=function(){this.config.authUi.tosUrl&&this.termsForm.controls.tos.setValidators(r.Validators.requiredTrue),this.config.authUi.privacyPolicyUrl&&this.termsForm.controls.privacyPolicy.setValidators(r.Validators.requiredTrue),this.termsForm.updateValueAndValidity()},t.prototype.ngOnDestroy=function(){this.destroy$.next(),this.destroy$.complete()},t}();T.decorators=[{type:e.Component,args:[{selector:"mal-authui-terms-field",template:'<form [formGroup]="termsForm">\n <ion-grid class="terms">\n <ion-row *ngIf="this.tosUrl">\n <ion-col size="2">\n <ion-checkbox color="primary" attr.aria-label="{{ \'auth.legal.readAndAccept\' | translate }} {{ \'auth.legal.termsAndConditions\'\n | translate }}" formControlName="tos"> </ion-checkbox>\n </ion-col>\n <ion-col>\n <ion-text color="text"> {{ "auth.legal.readAndAccept" | translate }}</ion-text>\n <a target="_blank" [href]="this.tosUrl">\n {{ "auth.legal.termsAndConditions" | translate }}\n </a>\n </ion-col>\n </ion-row>\n <ion-row *ngIf="this.privacyPolicyUrl">\n <ion-col size="2">\n <ion-checkbox color="primary" attr.aria-label="{{ \'auth.legal.readAndAccept\' | translate }} {{ \'auth.legal.privacyPolicy\'\n | translate }}" formControlName="privacyPolicy"></ion-checkbox>\n </ion-col>\n <ion-col>\n <ion-text color="text">{{ "auth.legal.readAndAccept" | translate }}</ion-text>\n <a target="_blank" [href]="this.privacyPolicyUrl">\n {{ "auth.legal.privacyPolicy" | translate }}\n </a>\n </ion-col>\n </ion-row>\n </ion-grid>\n</form>',providers:[{provide:r.NG_VALUE_ACCESSOR,useExisting:e.forwardRef((function(){return T})),multi:!0},{provide:r.NG_VALIDATORS,useExisting:T,multi:!0}],styles:["div.authui-logo{margin:32px auto;width:30%}div.authui-logo img{display:block;max-width:120px;border-radius:20px;margin-left:auto;margin-right:auto}div.authui-title{font-size:20px;margin:16px 0}div.authui-alternate-action{margin:32px auto 24px;font-weight:500}div.authui-alternate-action .text{margin-right:8px}ion-content.auth-page{--background:var(--auth-pages-background,--background)}div.resend-confirmation{margin:24px 0;font-size:.9em;text-align:center}ion-button.authui-provider-button{width:220px;margin:8px auto;display:block;text-align:center;--background:var(--auth-provider-background-color,#fff)}@media screen and (max-width:599px){ion-button.authui-provider-button{width:100%}}ion-button.authui-submit-button{width:220px;margin:16px auto;display:block}@media screen and (max-width:599px){ion-button.authui-submit-button{width:100%}}ion-grid.terms{width:100%;margin:24px 0;text-align:left;font-size:.9em}ion-grid.terms ion-col ion-row a{font-size:16px;margin-left:4px}div.forgot-password{margin:24px 0;font-size:.9em}@media (prefers-color-scheme:dark){a{color:#fff}}div.auth-ui-form{width:384px;max-width:384px;padding:32px;text-align:center;flex:1 0 auto}@media screen and (max-width:599px){div.auth-ui-form{padding:24px;width:100%}}div.auth-ui-form form{width:100%;text-align:left}div.authui-wrapper{width:100%;background-size:cover;flex:1 0 auto;padding:32px}@media screen and (max-width:599px){div.authui-wrapper{padding:16px}}button.confirm:disabled{color:grey}div.email-popover-outer{width:100%}div.email-popover-outer div.email-popover-inner{padding:10%}"]}]}],T.ctorParameters=function(){return[{type:void 0,decorators:[{type:e.Inject,args:[e.forwardRef((function(){return n.MalSharedConfigToken}))]}]},{type:n.AuthProcessService},{type:n.UiService}]},T.propDecorators={value:[{type:e.Input}]};var q=function(){function t(t,i,n,o){this.config=t,this.aps=i,this.ui=n,this.changeDetectorRef=o,this.createAccountClick=new e.EventEmitter,this.registerForm=new r.FormGroup({name:new r.FormControl("",[r.Validators.required]),email:new r.FormControl("",[r.Validators.required]),password:new r.FormControl("",[r.Validators.required]),terms:new r.FormControl(!0,[])}),this.guestEnabled$=this.aps.canSignInAsGuest$,this.destroy$=new s.Subject}return t.prototype.ngAfterViewInit=function(){this.changeDetectorRef.detectChanges()},t.prototype.ngOnDestroy=function(){this.destroy$.next(),this.destroy$.complete()},t.prototype.doCreateAccount=function(){return f(this,void 0,void 0,(function(){return v(this,(function(t){return this.createAccountClick.emit(this.registerForm.value),[2]}))}))},t}();q.decorators=[{type:e.Component,args:[{selector:"mal-authui-register-with-email",template:'<form [@animate]="{value:\'*\',params:{duration:\'300ms\',y:\'100px\'}}"\n [formGroup]="registerForm"\n novalidate>\n\n <mal-authui-name-field formControlName="name"\n [@animate]="{ value: \'*\', params: { x: \'50px\' } }">\n </mal-authui-name-field>\n\n <mal-authui-email-field formControlName="email"\n [@animate]="{ value: \'*\', params: { x: \'50px\' } }">\n </mal-authui-email-field>\n\n <mal-authui-password-field formControlName="password"\n [forUpdate]="true"\n [@animate]="{ value: \'*\', params: { x: \'50px\' } }">\n </mal-authui-password-field>\n\n <mal-authui-terms-field formControlName="terms"\n [@animate]="{ value: \'*\', params: { x: \'50px\' } }">\n </mal-authui-terms-field>\n\n <ion-button (click)="doCreateAccount()"\n color="primary"\n [disabled]="registerForm.invalid"\n aria-label="CREATE AN ACCOUNT"\n class="authui-submit-button"\n id="createAccountButton">\n {{ "auth.register.createAccountButton" | translate }}\n </ion-button>\n\n</form>',encapsulation:e.ViewEncapsulation.None,animations:y,styles:["div.authui-logo{margin:32px auto;width:30%}div.authui-logo img{display:block;max-width:120px;border-radius:20px;margin-left:auto;margin-right:auto}div.authui-title{font-size:20px;margin:16px 0}div.authui-alternate-action{margin:32px auto 24px;font-weight:500}div.authui-alternate-action .text{margin-right:8px}ion-content.auth-page{--background:var(--auth-pages-background,--background)}div.resend-confirmation{margin:24px 0;font-size:.9em;text-align:center}ion-button.authui-provider-button{width:220px;margin:8px auto;display:block;text-align:center;--background:var(--auth-provider-background-color,#fff)}@media screen and (max-width:599px){ion-button.authui-provider-button{width:100%}}ion-button.authui-submit-button{width:220px;margin:16px auto;display:block}@media screen and (max-width:599px){ion-button.authui-submit-button{width:100%}}ion-grid.terms{width:100%;margin:24px 0;text-align:left;font-size:.9em}ion-grid.terms ion-col ion-row a{font-size:16px;margin-left:4px}div.forgot-password{margin:24px 0;font-size:.9em}@media (prefers-color-scheme:dark){a{color:#fff}}div.auth-ui-form{width:384px;max-width:384px;padding:32px;text-align:center;flex:1 0 auto}@media screen and (max-width:599px){div.auth-ui-form{padding:24px;width:100%}}div.auth-ui-form form{width:100%;text-align:left}div.authui-wrapper{width:100%;background-size:cover;flex:1 0 auto;padding:32px}@media screen and (max-width:599px){div.authui-wrapper{padding:16px}}button.confirm:disabled{color:grey}div.email-popover-outer{width:100%}div.email-popover-outer div.email-popover-inner{padding:10%}"]}]}],q.ctorParameters=function(){return[{type:void 0,decorators:[{type:e.Inject,args:[e.forwardRef((function(){return n.MalSharedConfigToken}))]}]},{type:n.AuthProcessService},{type:n.UiService},{type:e.ChangeDetectorRef}]},q.propDecorators={createAccountClick:[{type:e.Output}]};var _=function(){function t(t){this.popoverController=t}return t.prototype.doCreateAccountClick=function(t){this.popoverController.dismiss(t)},t}();_.decorators=[{type:e.Component,args:[{template:'<div class="email-popover-outer">\n <div class="email-popover-inner">\n <mal-authui-register-with-email (createAccountClick)="doCreateAccountClick($event)">\n </mal-authui-register-with-email>\n </div>\n</div>',encapsulation:e.ViewEncapsulation.None,animations:y,styles:["div.authui-logo{margin:32px auto;width:30%}div.authui-logo img{display:block;max-width:120px;border-radius:20px;margin-left:auto;margin-right:auto}div.authui-title{font-size:20px;margin:16px 0}div.authui-alternate-action{margin:32px auto 24px;font-weight:500}div.authui-alternate-action .text{margin-right:8px}ion-content.auth-page{--background:var(--auth-pages-background,--background)}div.resend-confirmation{margin:24px 0;font-size:.9em;text-align:center}ion-button.authui-provider-button{width:220px;margin:8px auto;display:block;text-align:center;--background:var(--auth-provider-background-color,#fff)}@media screen and (max-width:599px){ion-button.authui-provider-button{width:100%}}ion-button.authui-submit-button{width:220px;margin:16px auto;display:block}@media screen and (max-width:599px){ion-button.authui-submit-button{width:100%}}ion-grid.terms{width:100%;margin:24px 0;text-align:left;font-size:.9em}ion-grid.terms ion-col ion-row a{font-size:16px;margin-left:4px}div.forgot-password{margin:24px 0;font-size:.9em}@media (prefers-color-scheme:dark){a{color:#fff}}div.auth-ui-form{width:384px;max-width:384px;padding:32px;text-align:center;flex:1 0 auto}@media screen and (max-width:599px){div.auth-ui-form{padding:24px;width:100%}}div.auth-ui-form form{width:100%;text-align:left}div.authui-wrapper{width:100%;background-size:cover;flex:1 0 auto;padding:32px}@media screen and (max-width:599px){div.authui-wrapper{padding:16px}}button.confirm:disabled{color:grey}div.email-popover-outer{width:100%}div.email-popover-outer div.email-popover-inner{padding:10%}"]}]}],_.ctorParameters=function(){return[{type:i.PopoverController}]};var G=Object.freeze({__proto__:null,AuthUIRegisterWithEmailPopoverComponent:_}),j=[A,b,k,C,E,N,M,$,D,V,L,z,S,T,q,_,F,I],B=[{path:"signin",component:N},{path:"register",component:M},{path:"user",component:$},{path:"verify",component:D},{path:"",pathMatch:"full",redirectTo:"signin"}],W=function(){};W.decorators=[{type:e.NgModule,args:[{imports:[n.MalSharedModule,o.MalIonicModule,i.IonicModule,p.CommonModule,c.TooltipsModule,l.HttpClientModule,r.FormsModule,r.ReactiveFormsModule,h.FlexLayoutModule],exports:function(){for(var t=[],e=0;e<arguments.length;e++)t=t.concat(x(arguments[e]));return t}(j,[r.FormsModule,r.ReactiveFormsModule,h.FlexLayoutModule,i.IonicModule]),declarations:j,entryComponents:[A]}]}],t.AuthProvidersComponent=I,t.AuthRegisterPage=M,t.AuthSignInPage=N,t.AuthUIEmailFieldComponent=L,t.AuthUIFormFieldComponent=S,t.AuthUINameFieldComponent=z,t.AuthUIOrDividerComponent=F,t.AuthUIPasswordFieldComponent=V,t.AuthUIReauthenticateComponent=E,t.AuthUIRegisterComponent=C,t.AuthUISignInComponent=k,t.AuthUIUserComponent=A,t.AuthUserPage=$,t.AuthVerifyEmailPage=D,t.EmailConfirmationComponent=b,t.IONIC_AUTH_UI_ROUTER_CONFIG=B,t.MalIonicAuthUiModule=W,t.NgxAuthFirebaseuiAnimations=y,t.ɵa=N,t.ɵb=M,t.ɵc=$,t.ɵd=D,t.ɵe=A,t.ɵf=b,t.ɵg=k,t.ɵh=C,t.ɵi=E,t.ɵj=V,t.ɵk=L,t.ɵl=z,t.ɵm=S,t.ɵn=T,t.ɵo=q,t.ɵp=_,t.ɵq=F,t.ɵr=I,Object.defineProperty(t,"__esModule",{value:!0})}));
16
- //# sourceMappingURL=ngx-firebase-ionic-auth-ui.umd.min.js.map