verben-authentication-ui 0.3.1 → 0.3.3

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 (288) hide show
  1. package/ng-package.json +8 -0
  2. package/package.json +8 -14
  3. package/src/lib/components/button/button.component.css +3 -0
  4. package/src/lib/components/button/button.component.html +13 -0
  5. package/src/lib/components/button/button.component.spec.ts +23 -0
  6. package/src/lib/components/button/button.component.ts +24 -0
  7. package/src/lib/components/button/button.module.ts +11 -0
  8. package/{lib/components/forgot-password/ForgotPasswordData.d.ts → src/lib/components/forgot-password/ForgotPasswordData.ts} +1 -1
  9. package/src/lib/components/forgot-password/forgot-password.component.css +29 -0
  10. package/src/lib/components/forgot-password/forgot-password.component.html +13 -0
  11. package/src/lib/components/forgot-password/forgot-password.component.spec.ts +23 -0
  12. package/src/lib/components/forgot-password/forgot-password.component.ts +86 -0
  13. package/src/lib/components/forgot-password/forgot-password.module.ts +18 -0
  14. package/src/lib/components/mail/mail.component.css +0 -0
  15. package/src/lib/components/mail/mail.component.html +11 -0
  16. package/src/lib/components/mail/mail.component.spec.ts +23 -0
  17. package/src/lib/components/mail/mail.component.ts +47 -0
  18. package/src/lib/components/mail/mail.module.ts +13 -0
  19. package/src/lib/components/mail-validation/mail-validation.component.css +59 -0
  20. package/src/lib/components/mail-validation/mail-validation.component.html +37 -0
  21. package/src/lib/components/mail-validation/mail-validation.component.spec.ts +23 -0
  22. package/src/lib/components/mail-validation/mail-validation.component.ts +66 -0
  23. package/src/lib/components/mail-validation/mail-validation.module.ts +18 -0
  24. package/src/lib/components/o-auth/o-auth.component.css +21 -0
  25. package/src/lib/components/o-auth/o-auth.component.html +60 -0
  26. package/src/lib/components/o-auth/o-auth.component.spec.ts +23 -0
  27. package/src/lib/components/o-auth/o-auth.component.ts +43 -0
  28. package/src/lib/components/o-auth/o-auth.module.ts +11 -0
  29. package/src/lib/components/otp-input/otp-input.component.css +19 -0
  30. package/src/lib/components/otp-input/otp-input.component.html +14 -0
  31. package/src/lib/components/otp-input/otp-input.component.spec.ts +23 -0
  32. package/src/lib/components/otp-input/otp-input.component.ts +73 -0
  33. package/src/lib/components/otp-input/otp-input.module.ts +15 -0
  34. package/src/lib/components/reset-password/ResetPasswordData.ts +5 -0
  35. package/src/lib/components/reset-password/reset-password.component.css +29 -0
  36. package/src/lib/components/reset-password/reset-password.component.html +22 -0
  37. package/src/lib/components/reset-password/reset-password.component.spec.ts +23 -0
  38. package/src/lib/components/reset-password/reset-password.component.ts +108 -0
  39. package/src/lib/components/reset-password/reset-password.module.ts +18 -0
  40. package/src/lib/components/sign-in/sign-in.component.css +21 -0
  41. package/src/lib/components/sign-in/sign-in.component.html +84 -0
  42. package/src/lib/components/sign-in/sign-in.component.spec.ts +23 -0
  43. package/src/lib/components/sign-in/sign-in.component.ts +184 -0
  44. package/src/lib/components/sign-in/sign-in.module.ts +17 -0
  45. package/src/lib/components/sign-up/sign-up.component.css +36 -0
  46. package/src/lib/components/sign-up/sign-up.component.html +132 -0
  47. package/src/lib/components/sign-up/sign-up.component.spec.ts +23 -0
  48. package/src/lib/components/sign-up/sign-up.component.ts +176 -0
  49. package/src/lib/components/sign-up/sign-up.module.ts +15 -0
  50. package/src/lib/components/sso/base-table-style.ts +52 -0
  51. package/src/lib/components/sso/helper.ts +15 -0
  52. package/src/lib/components/sso/sso-form/sso-form.component.css +13 -0
  53. package/src/lib/components/sso/sso-form/sso-form.component.html +109 -0
  54. package/src/lib/components/sso/sso-form/sso-form.component.spec.ts +23 -0
  55. package/src/lib/components/sso/sso-form/sso-form.component.ts +70 -0
  56. package/src/lib/components/sso/sso.columns.ts +32 -0
  57. package/src/lib/components/sso/sso.component.css +47 -0
  58. package/src/lib/components/sso/sso.component.html +208 -0
  59. package/src/lib/components/sso/sso.component.spec.ts +23 -0
  60. package/src/lib/components/sso/sso.component.ts +261 -0
  61. package/src/lib/components/sso/sso.module.ts +40 -0
  62. package/src/lib/components/two-factor-auth-otp/two-factor-auth-otp.component.css +8 -0
  63. package/src/lib/components/two-factor-auth-otp/two-factor-auth-otp.component.html +30 -0
  64. package/src/lib/components/two-factor-auth-otp/two-factor-auth-otp.component.spec.ts +23 -0
  65. package/src/lib/components/two-factor-auth-otp/two-factor-auth-otp.component.ts +183 -0
  66. package/src/lib/components/two-factor-auth-otp/two-factor-auth-otp.module.ts +15 -0
  67. package/src/lib/components/two-factor-auth-setup/two-factor-auth-setup.component.css +17 -0
  68. package/src/lib/components/two-factor-auth-setup/two-factor-auth-setup.component.html +45 -0
  69. package/src/lib/components/two-factor-auth-setup/two-factor-auth-setup.component.spec.ts +23 -0
  70. package/src/lib/components/two-factor-auth-setup/two-factor-auth-setup.component.ts +57 -0
  71. package/src/lib/components/two-factor-auth-setup/two-factor-auth-setup.module.ts +11 -0
  72. package/src/lib/components/user-management/base-table-style.ts +52 -0
  73. package/src/lib/components/user-management/helper.ts +29 -0
  74. package/src/lib/components/user-management/index.ts +4 -0
  75. package/src/lib/components/user-management/useer-management.module.ts +48 -0
  76. package/src/lib/components/user-management/user-management-form/use-management-form.component.ts +61 -0
  77. package/src/lib/components/user-management/user-management-form/user-management-form.component.css +0 -0
  78. package/src/lib/components/user-management/user-management-form/user-management-form.component.html +91 -0
  79. package/src/lib/components/user-management/user-management-form/user-management-form.component.spec.ts +23 -0
  80. package/src/lib/components/user-management/user-management.columns.ts +45 -0
  81. package/src/lib/components/user-management/user-management.component.css +26 -0
  82. package/src/lib/components/user-management/user-management.component.html +275 -0
  83. package/src/lib/components/user-management/user-management.component.spec.ts +23 -0
  84. package/src/lib/components/user-management/user-management.component.ts +380 -0
  85. package/src/lib/components/user-management/user-management.service.ts +42 -0
  86. package/src/lib/components/user-request/user-request.component.css +91 -0
  87. package/src/lib/components/user-request/user-request.component.html +165 -0
  88. package/src/lib/components/user-request/user-request.component.spec.ts +23 -0
  89. package/src/lib/components/user-request/user-request.component.ts +167 -0
  90. package/src/lib/components/user-request/user-request.module.ts +18 -0
  91. package/src/lib/components/user-request-approval/access-request.columns.ts +26 -0
  92. package/src/lib/components/user-request-approval/base-table-style.ts +52 -0
  93. package/src/lib/components/user-request-approval/facades/user-access-request.facade.ts +152 -0
  94. package/src/lib/components/user-request-approval/helper.ts +39 -0
  95. package/src/lib/components/user-request-approval/services/user-access-request.service.spec.ts +16 -0
  96. package/src/lib/components/user-request-approval/services/user-access-request.service.ts +87 -0
  97. package/src/lib/components/user-request-approval/states/user-access-request.state.ts +65 -0
  98. package/src/lib/components/user-request-approval/user-access-request-status-badge/user-access-request-status-badge.component.css +0 -0
  99. package/src/lib/components/user-request-approval/user-access-request-status-badge/user-access-request-status-badge.component.html +7 -0
  100. package/src/lib/components/user-request-approval/user-access-request-status-badge/user-access-request-status-badge.component.spec.ts +23 -0
  101. package/src/lib/components/user-request-approval/user-access-request-status-badge/user-access-request-status-badge.component.ts +22 -0
  102. package/src/lib/components/user-request-approval/user-request-approval.component.css +1 -0
  103. package/src/lib/components/user-request-approval/user-request-approval.component.html +218 -0
  104. package/src/lib/components/user-request-approval/user-request-approval.component.spec.ts +23 -0
  105. package/src/lib/components/user-request-approval/user-request-approval.component.ts +301 -0
  106. package/src/lib/components/user-request-approval/user-request-approval.module.ts +52 -0
  107. package/src/lib/components/user-request-approval/user-request-approval.service.spec.ts +16 -0
  108. package/src/lib/components/user-request-approval/user-request-approval.service.ts +58 -0
  109. package/src/lib/components/user-request-approval/user-request-form/use-request-form.component.ts +66 -0
  110. package/src/lib/components/user-request-approval/user-request-form/user-request-form.component.css +0 -0
  111. package/src/lib/components/user-request-approval/user-request-form/user-request-form.component.html +97 -0
  112. package/src/lib/components/user-request-approval/user-request-form/user-request-form.component.spec.ts +23 -0
  113. package/src/lib/models/ErrorResponse.ts +7 -0
  114. package/src/lib/models/PasswordRequestParam.ts +5 -0
  115. package/src/lib/models/ResponseKeyValue.ts +5 -0
  116. package/src/lib/models/UserRequest.ts +28 -0
  117. package/src/lib/models/auth-mechanism.ts +14 -0
  118. package/src/lib/models/base.ts +11 -0
  119. package/src/lib/models/log-in.ts +7 -0
  120. package/{lib/models/mainUser.d.ts → src/lib/models/mainUser.ts} +3 -2
  121. package/src/lib/models/object-state.ts +6 -0
  122. package/{lib/models/otpValue.d.ts → src/lib/models/otpValue.ts} +3 -1
  123. package/src/lib/models/paged.ts +9 -0
  124. package/src/lib/models/query-params.ts +7 -0
  125. package/src/lib/models/request-status.ts +4 -0
  126. package/src/lib/models/resend-otp-data.ts +8 -0
  127. package/src/lib/models/resource.ts +27 -0
  128. package/src/lib/models/sign-up.ts +11 -0
  129. package/src/lib/models/single-sign-on.ts +9 -0
  130. package/src/lib/models/status.ts +5 -0
  131. package/src/lib/models/user-access-request-status.ts +5 -0
  132. package/{lib/models/user-access-request.d.ts → src/lib/models/user-access-request.ts} +4 -3
  133. package/src/lib/models/user.ts +24 -0
  134. package/src/lib/services/environment.service.spec.ts +16 -0
  135. package/src/lib/services/environment.service.ts +23 -0
  136. package/src/lib/services/http-web-request.service.spec.ts +16 -0
  137. package/src/lib/services/http-web-request.service.ts +101 -0
  138. package/src/lib/services/util.service.spec.ts +16 -0
  139. package/src/lib/services/util.service.ts +28 -0
  140. package/{public-api.d.ts → src/public-api.ts} +21 -0
  141. package/src/styles.css +96 -0
  142. package/src/theme/tailwind-setup.css +3 -0
  143. package/src/theme/tailwind.css +980 -0
  144. package/tailwind.config.js +20 -0
  145. package/tsconfig.lib.json +15 -0
  146. package/tsconfig.lib.prod.json +11 -0
  147. package/tsconfig.spec.json +15 -0
  148. package/esm2022/lib/components/button/button.component.mjs +0 -46
  149. package/esm2022/lib/components/button/button.module.mjs +0 -20
  150. package/esm2022/lib/components/forgot-password/ForgotPasswordData.mjs +0 -2
  151. package/esm2022/lib/components/forgot-password/forgot-password.component.mjs +0 -86
  152. package/esm2022/lib/components/forgot-password/forgot-password.module.mjs +0 -34
  153. package/esm2022/lib/components/mail/mail.component.mjs +0 -69
  154. package/esm2022/lib/components/mail/mail.module.mjs +0 -21
  155. package/esm2022/lib/components/mail-validation/mail-validation.component.mjs +0 -108
  156. package/esm2022/lib/components/mail-validation/mail-validation.module.mjs +0 -34
  157. package/esm2022/lib/components/o-auth/o-auth.component.mjs +0 -25
  158. package/esm2022/lib/components/o-auth/o-auth.module.mjs +0 -19
  159. package/esm2022/lib/components/otp-input/otp-input.component.mjs +0 -75
  160. package/esm2022/lib/components/otp-input/otp-input.module.mjs +0 -23
  161. package/esm2022/lib/components/reset-password/ResetPasswordData.mjs +0 -2
  162. package/esm2022/lib/components/reset-password/reset-password.component.mjs +0 -107
  163. package/esm2022/lib/components/reset-password/reset-password.module.mjs +0 -34
  164. package/esm2022/lib/components/sign-in/sign-in.component.mjs +0 -214
  165. package/esm2022/lib/components/sign-in/sign-in.module.mjs +0 -24
  166. package/esm2022/lib/components/sign-up/sign-up.component.mjs +0 -223
  167. package/esm2022/lib/components/sign-up/sign-up.module.mjs +0 -24
  168. package/esm2022/lib/components/sso/base-table-style.mjs +0 -53
  169. package/esm2022/lib/components/sso/helper.mjs +0 -14
  170. package/esm2022/lib/components/sso/sso-form/sso-form.component.mjs +0 -74
  171. package/esm2022/lib/components/sso/sso.columns.mjs +0 -29
  172. package/esm2022/lib/components/sso/sso.component.mjs +0 -197
  173. package/esm2022/lib/components/sso/sso.module.mjs +0 -63
  174. package/esm2022/lib/components/two-factor-auth-otp/two-factor-auth-otp.component.mjs +0 -201
  175. package/esm2022/lib/components/two-factor-auth-otp/two-factor-auth-otp.module.mjs +0 -22
  176. package/esm2022/lib/components/two-factor-auth-setup/two-factor-auth-setup.component.mjs +0 -90
  177. package/esm2022/lib/components/two-factor-auth-setup/two-factor-auth-setup.module.mjs +0 -19
  178. package/esm2022/lib/components/user-management/base-table-style.mjs +0 -53
  179. package/esm2022/lib/components/user-management/helper.mjs +0 -26
  180. package/esm2022/lib/components/user-management/useer-management.module.mjs +0 -68
  181. package/esm2022/lib/components/user-management/user-management-form/use-management-form.component.mjs +0 -57
  182. package/esm2022/lib/components/user-management/user-management.columns.mjs +0 -43
  183. package/esm2022/lib/components/user-management/user-management.component.mjs +0 -323
  184. package/esm2022/lib/components/user-request/user-request.component.mjs +0 -180
  185. package/esm2022/lib/components/user-request/user-request.module.mjs +0 -34
  186. package/esm2022/lib/components/user-request-approval/access-request.columns.mjs +0 -24
  187. package/esm2022/lib/components/user-request-approval/base-table-style.mjs +0 -53
  188. package/esm2022/lib/components/user-request-approval/facades/user-access-request.facade.mjs +0 -128
  189. package/esm2022/lib/components/user-request-approval/helper.mjs +0 -35
  190. package/esm2022/lib/components/user-request-approval/services/user-access-request.service.mjs +0 -72
  191. package/esm2022/lib/components/user-request-approval/states/user-access-request.state.mjs +0 -59
  192. package/esm2022/lib/components/user-request-approval/user-access-request-status-badge/user-access-request-status-badge.component.mjs +0 -26
  193. package/esm2022/lib/components/user-request-approval/user-request-approval.component.mjs +0 -251
  194. package/esm2022/lib/components/user-request-approval/user-request-approval.module.mjs +0 -77
  195. package/esm2022/lib/components/user-request-approval/user-request-approval.service.mjs +0 -32
  196. package/esm2022/lib/components/user-request-approval/user-request-form/use-request-form.component.mjs +0 -64
  197. package/esm2022/lib/models/ErrorResponse.mjs +0 -11
  198. package/esm2022/lib/models/PasswordRequestParam.mjs +0 -2
  199. package/esm2022/lib/models/ResponseKeyValue.mjs +0 -2
  200. package/esm2022/lib/models/UserRequest.mjs +0 -2
  201. package/esm2022/lib/models/base.mjs +0 -2
  202. package/esm2022/lib/models/log-in.mjs +0 -2
  203. package/esm2022/lib/models/mainUser.mjs +0 -2
  204. package/esm2022/lib/models/object-state.mjs +0 -8
  205. package/esm2022/lib/models/otpValue.mjs +0 -2
  206. package/esm2022/lib/models/paged.mjs +0 -2
  207. package/esm2022/lib/models/query-params.mjs +0 -2
  208. package/esm2022/lib/models/request-status.mjs +0 -5
  209. package/esm2022/lib/models/sign-up.mjs +0 -2
  210. package/esm2022/lib/models/single-sign-on.mjs +0 -2
  211. package/esm2022/lib/models/status.mjs +0 -6
  212. package/esm2022/lib/models/user-access-request-status.mjs +0 -7
  213. package/esm2022/lib/models/user-access-request.mjs +0 -2
  214. package/esm2022/lib/models/user.mjs +0 -2
  215. package/esm2022/lib/services/environment.service.mjs +0 -26
  216. package/esm2022/lib/services/http-web-request.service.mjs +0 -83
  217. package/esm2022/lib/services/util.service.mjs +0 -32
  218. package/esm2022/public-api.mjs +0 -43
  219. package/esm2022/verben-authentication-ui.mjs +0 -5
  220. package/fesm2022/verben-authentication-ui.mjs +0 -3481
  221. package/fesm2022/verben-authentication-ui.mjs.map +0 -1
  222. package/index.d.ts +0 -5
  223. package/lib/components/button/button.component.d.ts +0 -17
  224. package/lib/components/button/button.module.d.ts +0 -10
  225. package/lib/components/forgot-password/forgot-password.component.d.ts +0 -28
  226. package/lib/components/forgot-password/forgot-password.module.d.ts +0 -10
  227. package/lib/components/mail/mail.component.d.ts +0 -32
  228. package/lib/components/mail/mail.module.d.ts +0 -11
  229. package/lib/components/mail-validation/mail-validation.component.d.ts +0 -42
  230. package/lib/components/mail-validation/mail-validation.module.d.ts +0 -10
  231. package/lib/components/o-auth/o-auth.component.d.ts +0 -10
  232. package/lib/components/o-auth/o-auth.module.d.ts +0 -9
  233. package/lib/components/otp-input/otp-input.component.d.ts +0 -20
  234. package/lib/components/otp-input/otp-input.module.d.ts +0 -13
  235. package/lib/components/reset-password/ResetPasswordData.d.ts +0 -5
  236. package/lib/components/reset-password/reset-password.component.d.ts +0 -30
  237. package/lib/components/reset-password/reset-password.module.d.ts +0 -10
  238. package/lib/components/sign-in/sign-in.component.d.ts +0 -77
  239. package/lib/components/sign-in/sign-in.module.d.ts +0 -13
  240. package/lib/components/sign-up/sign-up.component.d.ts +0 -66
  241. package/lib/components/sign-up/sign-up.module.d.ts +0 -13
  242. package/lib/components/sso/base-table-style.d.ts +0 -1
  243. package/lib/components/sso/helper.d.ts +0 -2
  244. package/lib/components/sso/sso-form/sso-form.component.d.ts +0 -21
  245. package/lib/components/sso/sso.columns.d.ts +0 -3
  246. package/lib/components/sso/sso.component.d.ts +0 -50
  247. package/lib/components/sso/sso.module.d.ts +0 -11
  248. package/lib/components/two-factor-auth-otp/two-factor-auth-otp.component.d.ts +0 -65
  249. package/lib/components/two-factor-auth-otp/two-factor-auth-otp.module.d.ts +0 -12
  250. package/lib/components/two-factor-auth-setup/two-factor-auth-setup.component.d.ts +0 -39
  251. package/lib/components/two-factor-auth-setup/two-factor-auth-setup.module.d.ts +0 -9
  252. package/lib/components/user-management/base-table-style.d.ts +0 -1
  253. package/lib/components/user-management/helper.d.ts +0 -2
  254. package/lib/components/user-management/useer-management.module.d.ts +0 -11
  255. package/lib/components/user-management/user-management-form/use-management-form.component.d.ts +0 -20
  256. package/lib/components/user-management/user-management.columns.d.ts +0 -3
  257. package/lib/components/user-management/user-management.component.d.ts +0 -60
  258. package/lib/components/user-request/user-request.component.d.ts +0 -56
  259. package/lib/components/user-request/user-request.module.d.ts +0 -10
  260. package/lib/components/user-request-approval/access-request.columns.d.ts +0 -3
  261. package/lib/components/user-request-approval/base-table-style.d.ts +0 -1
  262. package/lib/components/user-request-approval/facades/user-access-request.facade.d.ts +0 -23
  263. package/lib/components/user-request-approval/helper.d.ts +0 -6
  264. package/lib/components/user-request-approval/services/user-access-request.service.d.ts +0 -50
  265. package/lib/components/user-request-approval/states/user-access-request.state.d.ts +0 -21
  266. package/lib/components/user-request-approval/user-access-request-status-badge/user-access-request-status-badge.component.d.ts +0 -12
  267. package/lib/components/user-request-approval/user-request-approval.component.d.ts +0 -59
  268. package/lib/components/user-request-approval/user-request-approval.module.d.ts +0 -12
  269. package/lib/components/user-request-approval/user-request-approval.service.d.ts +0 -18
  270. package/lib/components/user-request-approval/user-request-form/use-request-form.component.d.ts +0 -21
  271. package/lib/models/ErrorResponse.d.ts +0 -6
  272. package/lib/models/PasswordRequestParam.d.ts +0 -5
  273. package/lib/models/ResponseKeyValue.d.ts +0 -5
  274. package/lib/models/UserRequest.d.ts +0 -24
  275. package/lib/models/base.d.ts +0 -10
  276. package/lib/models/log-in.d.ts +0 -7
  277. package/lib/models/object-state.d.ts +0 -6
  278. package/lib/models/paged.d.ts +0 -9
  279. package/lib/models/query-params.d.ts +0 -7
  280. package/lib/models/request-status.d.ts +0 -3
  281. package/lib/models/sign-up.d.ts +0 -9
  282. package/lib/models/single-sign-on.d.ts +0 -7
  283. package/lib/models/status.d.ts +0 -4
  284. package/lib/models/user-access-request-status.d.ts +0 -5
  285. package/lib/models/user.d.ts +0 -23
  286. package/lib/services/environment.service.d.ts +0 -16
  287. package/lib/services/http-web-request.service.d.ts +0 -23
  288. package/lib/services/util.service.d.ts +0 -8
@@ -1,19 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { VerbenaButtonModule, VerbenaInputModule } from 'verben-ng-ui';
4
- import { OAuthComponent } from './o-auth.component';
5
- import * as i0 from "@angular/core";
6
- export class OAuthModule {
7
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OAuthModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: OAuthModule, declarations: [OAuthComponent], imports: [CommonModule, VerbenaInputModule, VerbenaButtonModule], exports: [OAuthComponent] });
9
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OAuthModule, imports: [CommonModule, VerbenaInputModule, VerbenaButtonModule] });
10
- }
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OAuthModule, decorators: [{
12
- type: NgModule,
13
- args: [{
14
- declarations: [OAuthComponent],
15
- imports: [CommonModule, VerbenaInputModule, VerbenaButtonModule],
16
- exports: [OAuthComponent]
17
- }]
18
- }] });
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby1hdXRoLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZlcmJlbi1hdXRoZW50aWNhdGlvbi11aS9zcmMvbGliL2NvbXBvbmVudHMvby1hdXRoL28tYXV0aC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7QUFPcEQsTUFBTSxPQUFPLFdBQVc7d0dBQVgsV0FBVzt5R0FBWCxXQUFXLGlCQUpQLGNBQWMsYUFDbkIsWUFBWSxFQUFDLGtCQUFrQixFQUFDLG1CQUFtQixhQUNuRCxjQUFjO3lHQUViLFdBQVcsWUFIWixZQUFZLEVBQUMsa0JBQWtCLEVBQUMsbUJBQW1COzs0RkFHbEQsV0FBVztrQkFMdkIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxjQUFjLENBQUM7b0JBQzlCLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBQyxrQkFBa0IsRUFBQyxtQkFBbUIsQ0FBQztvQkFDOUQsT0FBTyxFQUFFLENBQUMsY0FBYyxDQUFDO2lCQUMxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgVmVyYmVuYUJ1dHRvbk1vZHVsZSwgVmVyYmVuYUlucHV0TW9kdWxlIH0gZnJvbSAndmVyYmVuLW5nLXVpJztcbmltcG9ydCB7IE9BdXRoQ29tcG9uZW50IH0gZnJvbSAnLi9vLWF1dGguY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbT0F1dGhDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLFZlcmJlbmFJbnB1dE1vZHVsZSxWZXJiZW5hQnV0dG9uTW9kdWxlXSxcbiAgZXhwb3J0czogW09BdXRoQ29tcG9uZW50XVxufSlcbmV4cG9ydCBjbGFzcyBPQXV0aE1vZHVsZSB7fSJdfQ==
@@ -1,75 +0,0 @@
1
- import { Component, EventEmitter, Input, Output } from '@angular/core';
2
- import { FormControl } from '@angular/forms';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/forms";
5
- import * as i2 from "@angular/common";
6
- export class OtpInputComponent {
7
- fb;
8
- length = 6;
9
- otpClass = '';
10
- otpChange = new EventEmitter();
11
- otpForm;
12
- constructor(fb) {
13
- this.fb = fb;
14
- }
15
- ngOnInit() {
16
- this.otpForm = this.fb.group({
17
- otpArray: this.fb.array(Array(this.length).fill('').map(() => new FormControl('')))
18
- });
19
- this.otpArray.valueChanges.subscribe(() => {
20
- this.emitOtp();
21
- });
22
- }
23
- get otpArray() {
24
- return this.otpForm.get('otpArray');
25
- }
26
- handleInput(event, index) {
27
- const value = event.target.value;
28
- // /\d/.test(value)
29
- if (value.length > 0) {
30
- this.otpArray.at(index).setValue(value);
31
- if (index < this.length - 1) {
32
- this.focusNextInput(index);
33
- }
34
- }
35
- else {
36
- this.otpArray.at(index).setValue('');
37
- }
38
- }
39
- handleKeydown(event, index) {
40
- if (event.key === 'Backspace') {
41
- const currentValue = this.otpArray.at(index).value;
42
- if (currentValue) {
43
- this.otpArray.at(index).setValue('');
44
- }
45
- else if (index > 0) {
46
- this.focusPreviousInput(index);
47
- }
48
- }
49
- }
50
- focusNextInput(index) {
51
- const nextInput = document.getElementById(`otp-input-${index + 1}`);
52
- nextInput?.focus();
53
- }
54
- focusPreviousInput(index) {
55
- const prevInput = document.getElementById(`otp-input-${index - 1}`);
56
- prevInput?.focus();
57
- }
58
- emitOtp() {
59
- const otp = this.otpArray.value.join('');
60
- this.otpChange.emit(otp);
61
- }
62
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OtpInputComponent, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
63
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: OtpInputComponent, selector: "verben-otp-input", inputs: { length: "length", otpClass: "otpClass" }, outputs: { otpChange: "otpChange" }, ngImport: i0, template: "<form [formGroup]=\"otpForm\" >\n <div formArrayName=\"otpArray\" class=\"otp-container\">\n <input\n *ngFor=\"let control of otpArray.controls; let i = index\"\n [id]=\"'otp-input-' + i\"\n class=\"otp-input {{otpClass}}\"\n maxlength=\"1\"\n (input)=\"handleInput($event, i)\"\n (keydown)=\"handleKeydown($event, i)\"\n [formControlName]=\"i\"\n type=\"text\"\n />\n </div>\n</form>\n", styles: [".otp-container{display:flex;gap:15px}.otp-input{width:50px;height:46px;text-align:center;font-size:1.5rem;border:1px solid #66666658;border-radius:12px}.otp-input:focus{border-color:#ffe681;outline:none}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }] });
64
- }
65
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OtpInputComponent, decorators: [{
66
- type: Component,
67
- args: [{ selector: 'verben-otp-input', template: "<form [formGroup]=\"otpForm\" >\n <div formArrayName=\"otpArray\" class=\"otp-container\">\n <input\n *ngFor=\"let control of otpArray.controls; let i = index\"\n [id]=\"'otp-input-' + i\"\n class=\"otp-input {{otpClass}}\"\n maxlength=\"1\"\n (input)=\"handleInput($event, i)\"\n (keydown)=\"handleKeydown($event, i)\"\n [formControlName]=\"i\"\n type=\"text\"\n />\n </div>\n</form>\n", styles: [".otp-container{display:flex;gap:15px}.otp-input{width:50px;height:46px;text-align:center;font-size:1.5rem;border:1px solid #66666658;border-radius:12px}.otp-input:focus{border-color:#ffe681;outline:none}\n"] }]
68
- }], ctorParameters: () => [{ type: i1.FormBuilder }], propDecorators: { length: [{
69
- type: Input
70
- }], otpClass: [{
71
- type: Input
72
- }], otpChange: [{
73
- type: Output
74
- }] } });
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3RwLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZlcmJlbi1hdXRoZW50aWNhdGlvbi11aS9zcmMvbGliL2NvbXBvbmVudHMvb3RwLWlucHV0L290cC1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4tYXV0aGVudGljYXRpb24tdWkvc3JjL2xpYi9jb21wb25lbnRzL290cC1pbnB1dC9vdHAtaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQTBCLFdBQVcsRUFBYSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBT2hGLE1BQU0sT0FBTyxpQkFBaUI7SUFPUjtJQU5YLE1BQU0sR0FBVyxDQUFDLENBQUM7SUFDbkIsUUFBUSxHQUFXLEVBQUUsQ0FBQztJQUNyQixTQUFTLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztJQUVqRCxPQUFPLENBQWE7SUFFcEIsWUFBb0IsRUFBZTtRQUFmLE9BQUUsR0FBRixFQUFFLENBQWE7SUFBRyxDQUFDO0lBRXZDLFFBQVE7UUFDTixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO1lBQzNCLFFBQVEsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUNwRixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ3hDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNqQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBYyxDQUFDO0lBQ25ELENBQUM7SUFFRCxXQUFXLENBQUMsS0FBVSxFQUFFLEtBQWE7UUFDbkMsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFFakMsbUJBQW1CO1FBQ25CLElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFeEMsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDNUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM3QixDQUFDO1FBQ0gsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdkMsQ0FBQztJQUNILENBQUM7SUFFRCxhQUFhLENBQUMsS0FBb0IsRUFBRSxLQUFhO1FBQy9DLElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxXQUFXLEVBQUUsQ0FBQztZQUM5QixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUM7WUFFbkQsSUFBSSxZQUFZLEVBQUUsQ0FBQztnQkFDakIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZDLENBQUM7aUJBQU0sSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNqQyxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFTyxjQUFjLENBQUMsS0FBYTtRQUNsQyxNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLGFBQWEsS0FBSyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDcEUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFTyxrQkFBa0IsQ0FBQyxLQUFhO1FBQ3RDLE1BQU0sU0FBUyxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsYUFBYSxLQUFLLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNwRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVPLE9BQU87UUFDYixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDM0IsQ0FBQzt3R0EvRFUsaUJBQWlCOzRGQUFqQixpQkFBaUIsaUpDUjlCLG9iQWNBOzs0RkROYSxpQkFBaUI7a0JBTDdCLFNBQVM7K0JBQ0Usa0JBQWtCO2dGQUtuQixNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDSSxTQUFTO3NCQUFsQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1BcnJheSwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVyYmVuLW90cC1pbnB1dCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9vdHAtaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vb3RwLWlucHV0LmNvbXBvbmVudC5jc3MnXG59KVxuZXhwb3J0IGNsYXNzIE90cElucHV0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgbGVuZ3RoOiBudW1iZXIgPSA2O1xuICBASW5wdXQoKSBvdHBDbGFzczogc3RyaW5nID0gJyc7XG4gIEBPdXRwdXQoKSBvdHBDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICBvdHBGb3JtITogRm9ybUdyb3VwO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMub3RwRm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgb3RwQXJyYXk6IHRoaXMuZmIuYXJyYXkoQXJyYXkodGhpcy5sZW5ndGgpLmZpbGwoJycpLm1hcCgoKSA9PiBuZXcgRm9ybUNvbnRyb2woJycpKSlcbiAgICB9KTtcblxuICAgIHRoaXMub3RwQXJyYXkudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLmVtaXRPdHAoKTtcbiAgICB9KTtcbiAgfVxuXG4gIGdldCBvdHBBcnJheSgpOiBGb3JtQXJyYXkge1xuICAgIHJldHVybiB0aGlzLm90cEZvcm0uZ2V0KCdvdHBBcnJheScpIGFzIEZvcm1BcnJheTtcbiAgfVxuXG4gIGhhbmRsZUlucHV0KGV2ZW50OiBhbnksIGluZGV4OiBudW1iZXIpIHtcbiAgICBjb25zdCB2YWx1ZSA9IGV2ZW50LnRhcmdldC52YWx1ZTtcblxuICAgIC8vIC9cXGQvLnRlc3QodmFsdWUpXG4gICAgaWYgKHZhbHVlLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMub3RwQXJyYXkuYXQoaW5kZXgpLnNldFZhbHVlKHZhbHVlKTtcblxuICAgICAgaWYgKGluZGV4IDwgdGhpcy5sZW5ndGggLSAxKSB7XG4gICAgICAgIHRoaXMuZm9jdXNOZXh0SW5wdXQoaW5kZXgpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm90cEFycmF5LmF0KGluZGV4KS5zZXRWYWx1ZSgnJyk7IFxuICAgIH1cbiAgfVxuXG4gIGhhbmRsZUtleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQsIGluZGV4OiBudW1iZXIpIHtcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnQmFja3NwYWNlJykge1xuICAgICAgY29uc3QgY3VycmVudFZhbHVlID0gdGhpcy5vdHBBcnJheS5hdChpbmRleCkudmFsdWU7XG4gIFxuICAgICAgaWYgKGN1cnJlbnRWYWx1ZSkge1xuICAgICAgICB0aGlzLm90cEFycmF5LmF0KGluZGV4KS5zZXRWYWx1ZSgnJyk7XG4gICAgICB9IGVsc2UgaWYgKGluZGV4ID4gMCkge1xuICAgICAgICB0aGlzLmZvY3VzUHJldmlvdXNJbnB1dChpbmRleCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBmb2N1c05leHRJbnB1dChpbmRleDogbnVtYmVyKSB7XG4gICAgY29uc3QgbmV4dElucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYG90cC1pbnB1dC0ke2luZGV4ICsgMX1gKTtcbiAgICBuZXh0SW5wdXQ/LmZvY3VzKCk7XG4gIH1cblxuICBwcml2YXRlIGZvY3VzUHJldmlvdXNJbnB1dChpbmRleDogbnVtYmVyKSB7XG4gICAgY29uc3QgcHJldklucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYG90cC1pbnB1dC0ke2luZGV4IC0gMX1gKTtcbiAgICBwcmV2SW5wdXQ/LmZvY3VzKCk7XG4gIH1cblxuICBwcml2YXRlIGVtaXRPdHAoKSB7XG4gICAgY29uc3Qgb3RwID0gdGhpcy5vdHBBcnJheS52YWx1ZS5qb2luKCcnKTtcbiAgICB0aGlzLm90cENoYW5nZS5lbWl0KG90cCk7XG4gIH1cbn1cbiIsIjxmb3JtIFtmb3JtR3JvdXBdPVwib3RwRm9ybVwiID5cbiAgPGRpdiBmb3JtQXJyYXlOYW1lPVwib3RwQXJyYXlcIiBjbGFzcz1cIm90cC1jb250YWluZXJcIj5cbiAgICA8aW5wdXRcbiAgICAgICpuZ0Zvcj1cImxldCBjb250cm9sIG9mIG90cEFycmF5LmNvbnRyb2xzOyBsZXQgaSA9IGluZGV4XCJcbiAgICAgIFtpZF09XCInb3RwLWlucHV0LScgKyBpXCJcbiAgICAgIGNsYXNzPVwib3RwLWlucHV0IHt7b3RwQ2xhc3N9fVwiXG4gICAgICBtYXhsZW5ndGg9XCIxXCJcbiAgICAgIChpbnB1dCk9XCJoYW5kbGVJbnB1dCgkZXZlbnQsIGkpXCJcbiAgICAgIChrZXlkb3duKT1cImhhbmRsZUtleWRvd24oJGV2ZW50LCBpKVwiXG4gICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImlcIlxuICAgICAgdHlwZT1cInRleHRcIlxuICAgIC8+XG4gIDwvZGl2PlxuPC9mb3JtPlxuIl19
@@ -1,23 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { FormsModule, ReactiveFormsModule } from '@angular/forms';
4
- import { RouterLink } from '@angular/router';
5
- import { VerbenaInputModule } from 'verben-ng-ui';
6
- import { OAuthModule } from '../o-auth/o-auth.module';
7
- import { ButtonModule } from '../button/button.module';
8
- import { OtpInputComponent } from './otp-input.component';
9
- import * as i0 from "@angular/core";
10
- export class OtpInputModule {
11
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OtpInputModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
12
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: OtpInputModule, declarations: [OtpInputComponent], imports: [CommonModule, FormsModule, VerbenaInputModule, RouterLink, ButtonModule, OAuthModule, ReactiveFormsModule], exports: [OtpInputComponent] });
13
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OtpInputModule, imports: [CommonModule, FormsModule, VerbenaInputModule, ButtonModule, OAuthModule, ReactiveFormsModule] });
14
- }
15
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OtpInputModule, decorators: [{
16
- type: NgModule,
17
- args: [{
18
- declarations: [OtpInputComponent],
19
- imports: [CommonModule, FormsModule, VerbenaInputModule, RouterLink, ButtonModule, OAuthModule, ReactiveFormsModule],
20
- exports: [OtpInputComponent]
21
- }]
22
- }] });
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3RwLWlucHV0Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZlcmJlbi1hdXRoZW50aWNhdGlvbi11aS9zcmMvbGliL2NvbXBvbmVudHMvb3RwLWlucHV0L290cC1pbnB1dC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUcsa0JBQWtCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDbkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFPMUQsTUFBTSxPQUFPLGNBQWM7d0dBQWQsY0FBYzt5R0FBZCxjQUFjLGlCQUpWLGlCQUFpQixhQUN0QixZQUFZLEVBQUUsV0FBVyxFQUFDLGtCQUFrQixFQUFFLFVBQVUsRUFBQyxZQUFZLEVBQUMsV0FBVyxFQUFDLG1CQUFtQixhQUNyRyxpQkFBaUI7eUdBRWhCLGNBQWMsWUFIZixZQUFZLEVBQUUsV0FBVyxFQUFDLGtCQUFrQixFQUFhLFlBQVksRUFBQyxXQUFXLEVBQUMsbUJBQW1COzs0RkFHcEcsY0FBYztrQkFMMUIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztvQkFDakMsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBQyxrQkFBa0IsRUFBRSxVQUFVLEVBQUMsWUFBWSxFQUFDLFdBQVcsRUFBQyxtQkFBbUIsQ0FBQztvQkFDaEgsT0FBTyxFQUFFLENBQUMsaUJBQWlCLENBQUM7aUJBQzdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFJvdXRlckxpbmsgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgIFZlcmJlbmFJbnB1dE1vZHVsZSB9IGZyb20gJ3ZlcmJlbi1uZy11aSc7XG5pbXBvcnQgeyBPQXV0aE1vZHVsZSB9IGZyb20gJy4uL28tYXV0aC9vLWF1dGgubW9kdWxlJztcbmltcG9ydCB7IEJ1dHRvbk1vZHVsZSB9IGZyb20gJy4uL2J1dHRvbi9idXR0b24ubW9kdWxlJztcbmltcG9ydCB7IE90cElucHV0Q29tcG9uZW50IH0gZnJvbSAnLi9vdHAtaW5wdXQuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbT3RwSW5wdXRDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZSxWZXJiZW5hSW5wdXRNb2R1bGUsIFJvdXRlckxpbmssQnV0dG9uTW9kdWxlLE9BdXRoTW9kdWxlLFJlYWN0aXZlRm9ybXNNb2R1bGVdLFxuICBleHBvcnRzOiBbT3RwSW5wdXRDb21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIE90cElucHV0TW9kdWxlIHt9Il19
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVzZXRQYXNzd29yZERhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4tYXV0aGVudGljYXRpb24tdWkvc3JjL2xpYi9jb21wb25lbnRzL3Jlc2V0LXBhc3N3b3JkL1Jlc2V0UGFzc3dvcmREYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFJlc2V0UGFzc3dvcmREYXRhIHtcbiAgT2xkUGFzc3dvcmQ/OiBzdHJpbmc7XG4gIFBhc3N3b3JkOiBzdHJpbmc7XG4gIENvbmZpcm1QYXNzd29yZDogc3RyaW5nO1xufVxuIl19
@@ -1,107 +0,0 @@
1
- import { Component, EventEmitter, Input, Output } from '@angular/core';
2
- import { FormControl, Validators, } from '@angular/forms';
3
- import { ErrorResponse } from '../../models/ErrorResponse';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@angular/forms";
6
- import * as i2 from "../../services/http-web-request.service";
7
- import * as i3 from "../../services/util.service";
8
- import * as i4 from "verben-ng-ui";
9
- import * as i5 from "@angular/common";
10
- export class ResetPasswordComponent {
11
- fb;
12
- server;
13
- utilService;
14
- title = 'Reset Password';
15
- subTitle = 'Create a New Password';
16
- buttonCaption = 'Submit';
17
- buttonTextColor;
18
- buttonBackgroundColor;
19
- showOldPassword = false;
20
- token;
21
- onSubmit = new EventEmitter();
22
- onSubmitEnd = new EventEmitter();
23
- resetPasswordForm;
24
- constructor(fb, server, utilService) {
25
- this.fb = fb;
26
- this.server = server;
27
- this.utilService = utilService;
28
- this.resetPasswordForm = this.fb.group({
29
- OldPassword: new FormControl(null, this.oldPasswordValidator.bind(this)),
30
- Password: new FormControl(null, Validators.required),
31
- ConfirmPassword: new FormControl(null, [
32
- Validators.required,
33
- this.confirmPasswordValidator.bind(this),
34
- ]),
35
- });
36
- }
37
- checkForm() {
38
- return this.resetPasswordForm.valid;
39
- }
40
- oldPasswordValidator(control) {
41
- if (this.showOldPassword && control.value == null) {
42
- return { customValidation: true };
43
- }
44
- return null;
45
- }
46
- confirmPasswordValidator(control) {
47
- if (this.resetPasswordForm &&
48
- this.resetPasswordForm.controls['Password'] &&
49
- this.resetPasswordForm.controls['Password'].value !== control.value) {
50
- return { customValidation: true };
51
- }
52
- return null;
53
- }
54
- async submit() {
55
- if (!this.checkForm()) {
56
- return;
57
- }
58
- var data = {
59
- OldPassword: this.showOldPassword
60
- ? this.resetPasswordForm.controls['OldPassword'].value
61
- : undefined,
62
- Password: this.resetPasswordForm.controls['Password'].value,
63
- ConfirmPassword: this.resetPasswordForm.controls['ConfirmPassword'].value,
64
- };
65
- this.onSubmit.emit(data);
66
- var passwordRequest = {
67
- NewPassword: data.Password,
68
- OldPassword: data.OldPassword,
69
- Token: this.token,
70
- };
71
- this.utilService.sendBI(true);
72
- const res = await this.server.post(`User/CompleteChangePasswordRequest`, passwordRequest);
73
- this.utilService.sendBI(false);
74
- if (res instanceof ErrorResponse) {
75
- this.onSubmitEnd.emit(res);
76
- }
77
- else {
78
- var result = res;
79
- this.onSubmitEnd.emit(result);
80
- }
81
- }
82
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ResetPasswordComponent, deps: [{ token: i1.FormBuilder }, { token: i2.HttpWebRequestService }, { token: i3.UtilService }], target: i0.ɵɵFactoryTarget.Component });
83
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ResetPasswordComponent, selector: "verben-reset-password", inputs: { title: "title", subTitle: "subTitle", buttonCaption: "buttonCaption", buttonTextColor: "buttonTextColor", buttonBackgroundColor: "buttonBackgroundColor", showOldPassword: "showOldPassword", token: "token" }, outputs: { onSubmit: "onSubmit", onSubmitEnd: "onSubmitEnd" }, ngImport: i0, template: "<div [formGroup]=\"this.resetPasswordForm\" class=\"reset-password-container flex flex-col\">\n <div class=\"reset-password-header flex flex-col\">\n <div class=\"reset-password-title\">{{title}}</div>\n <div class=\"reset-password-subtitle\">{{subTitle}}</div>\n </div>\n <div *ngIf=\"showOldPassword\" class=\"form-field flex flex-col\">\n <div class=\"form-field-caption\">Old Password</div>\n <verbena-input bgColor=\"white\" borderRadius=\"12px\" formControlName=\"OldPassword\" type=\"password\"></verbena-input>\n </div>\n <div class=\"form-field flex flex-col\">\n <div class=\"form-field-caption\">New Password</div>\n <verbena-input bgColor=\"white\" borderRadius=\"12px\" formControlName=\"Password\" type=\"password\"></verbena-input>\n </div>\n <div class=\"form-field flex flex-col\">\n <div class=\"form-field-caption\">Confirm Password</div>\n <verbena-input bgColor=\"white\" borderRadius=\"12px\" formControlName=\"ConfirmPassword\"\n type=\"password\"></verbena-input>\n </div>\n <verbena-button fontWeight=\"700\" (click)=\"submit()\" [text]=\"buttonCaption\" width=\"100%\" [textColor]=\"buttonTextColor\"\n [bgColor]=\"buttonBackgroundColor\" borderRadius=\"25px\" [disable]=\"!this.checkForm()\"></verbena-button>\n\n</div>\n", styles: ["*{font-family:sans-serif;font-size:16px}.flex{display:flex}.flex-col{flex-direction:column}.font-bold{font-weight:700}.justify-center{justify-content:center}.justify-end{justify-content:end}.align-items-center{align-items:center}.grid{display:grid}.verben-error-message{font-size:.8rem;color:red}.verben-input{border:1px solid #cbd5e1;outline:none;border-radius:5px;color:#334155;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s,outline-color .2s}.verben-input::placeholder{color:#64748b}.verben-input:hover{border:1px solid #697e97}.verben-input.disabled{opacity:1;background-color:light-dark(rgba(239,239,239,.3),rgba(59,59,59,.3));pointer-events:none;color:#64748b}.verben-input:disabled{opacity:1;background-color:light-dark(rgba(239,239,239,.3),rgba(59,59,59,.3));pointer-events:none;color:#64748b}.verben-input.focused{border-color:#3b82f6;outline:none}.verben-input:focus{border-color:#3b82f6;outline:none}.verben-input.ng-invalid{border-color:red}.verben-button{padding:8px 15px;border-radius:4px;border:none;text-align:center}.verben-button.primary{background-color:#ffe681}.verben-button.secondary{background-color:#d9d9d940}.reset-password-container{gap:25px;padding:50px;border:1px solid rgba(102,102,102,.5);box-shadow:4px 4px 4px #00000040;border-radius:24px}.reset-password-title{font-size:30px;font-weight:700}.reset-password-subtitle{font-size:14px;font-weight:500;color:#666}.form-field{gap:5px}.form-field-caption{color:#666}\n"], dependencies: [{ kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i4.VerbenaInputComponent, selector: "verbena-input", inputs: ["label", "placeHolder", "required", "svgPosition", "minLength", "maxLength", "type", "bgColor", "border", "borderRadius", "textColor", "value", "labelPosition", "labelColor", "disable", "readOnly", "min", "max", "showBorder", "showErrorMessage", "errorMessageColor", "errorBorderColor", "errorPosition", "svg", "svgWidth", "svgHeight", "svgColor", "capitalization", "inputContainerClass", "inputFieldClass", "inputWrapperClass", "passwordToggle", "customErrorMessages", "icon", "textPass"], outputs: ["valueChange"] }, { kind: "component", type: i4.VerbenaButtonComponent, selector: "verbena-button", inputs: ["text", "icon", "svgPosition", "bgColor", "textColor", "border", "borderRadius", "pd", "width", "height", "fontSize", "fontWeight", "disable", "styleType", "svg", "svgWidth", "svgHeight", "svgColor", "buttonClass", "buttonTextClass", "isLoading", "spinnerSize", "spinnerColor"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
84
- }
85
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ResetPasswordComponent, decorators: [{
86
- type: Component,
87
- args: [{ selector: 'verben-reset-password', template: "<div [formGroup]=\"this.resetPasswordForm\" class=\"reset-password-container flex flex-col\">\n <div class=\"reset-password-header flex flex-col\">\n <div class=\"reset-password-title\">{{title}}</div>\n <div class=\"reset-password-subtitle\">{{subTitle}}</div>\n </div>\n <div *ngIf=\"showOldPassword\" class=\"form-field flex flex-col\">\n <div class=\"form-field-caption\">Old Password</div>\n <verbena-input bgColor=\"white\" borderRadius=\"12px\" formControlName=\"OldPassword\" type=\"password\"></verbena-input>\n </div>\n <div class=\"form-field flex flex-col\">\n <div class=\"form-field-caption\">New Password</div>\n <verbena-input bgColor=\"white\" borderRadius=\"12px\" formControlName=\"Password\" type=\"password\"></verbena-input>\n </div>\n <div class=\"form-field flex flex-col\">\n <div class=\"form-field-caption\">Confirm Password</div>\n <verbena-input bgColor=\"white\" borderRadius=\"12px\" formControlName=\"ConfirmPassword\"\n type=\"password\"></verbena-input>\n </div>\n <verbena-button fontWeight=\"700\" (click)=\"submit()\" [text]=\"buttonCaption\" width=\"100%\" [textColor]=\"buttonTextColor\"\n [bgColor]=\"buttonBackgroundColor\" borderRadius=\"25px\" [disable]=\"!this.checkForm()\"></verbena-button>\n\n</div>\n", styles: ["*{font-family:sans-serif;font-size:16px}.flex{display:flex}.flex-col{flex-direction:column}.font-bold{font-weight:700}.justify-center{justify-content:center}.justify-end{justify-content:end}.align-items-center{align-items:center}.grid{display:grid}.verben-error-message{font-size:.8rem;color:red}.verben-input{border:1px solid #cbd5e1;outline:none;border-radius:5px;color:#334155;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s,outline-color .2s}.verben-input::placeholder{color:#64748b}.verben-input:hover{border:1px solid #697e97}.verben-input.disabled{opacity:1;background-color:light-dark(rgba(239,239,239,.3),rgba(59,59,59,.3));pointer-events:none;color:#64748b}.verben-input:disabled{opacity:1;background-color:light-dark(rgba(239,239,239,.3),rgba(59,59,59,.3));pointer-events:none;color:#64748b}.verben-input.focused{border-color:#3b82f6;outline:none}.verben-input:focus{border-color:#3b82f6;outline:none}.verben-input.ng-invalid{border-color:red}.verben-button{padding:8px 15px;border-radius:4px;border:none;text-align:center}.verben-button.primary{background-color:#ffe681}.verben-button.secondary{background-color:#d9d9d940}.reset-password-container{gap:25px;padding:50px;border:1px solid rgba(102,102,102,.5);box-shadow:4px 4px 4px #00000040;border-radius:24px}.reset-password-title{font-size:30px;font-weight:700}.reset-password-subtitle{font-size:14px;font-weight:500;color:#666}.form-field{gap:5px}.form-field-caption{color:#666}\n"] }]
88
- }], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.HttpWebRequestService }, { type: i3.UtilService }], propDecorators: { title: [{
89
- type: Input
90
- }], subTitle: [{
91
- type: Input
92
- }], buttonCaption: [{
93
- type: Input
94
- }], buttonTextColor: [{
95
- type: Input
96
- }], buttonBackgroundColor: [{
97
- type: Input
98
- }], showOldPassword: [{
99
- type: Input
100
- }], token: [{
101
- type: Input
102
- }], onSubmit: [{
103
- type: Output
104
- }], onSubmitEnd: [{
105
- type: Output
106
- }] } });
107
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzZXQtcGFzc3dvcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmVyYmVuLWF1dGhlbnRpY2F0aW9uLXVpL3NyYy9saWIvY29tcG9uZW50cy9yZXNldC1wYXNzd29yZC9yZXNldC1wYXNzd29yZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4tYXV0aGVudGljYXRpb24tdWkvc3JjL2xpYi9jb21wb25lbnRzL3Jlc2V0LXBhc3N3b3JkL3Jlc2V0LXBhc3N3b3JkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxFQUdMLFdBQVcsRUFHWCxVQUFVLEdBQ1gsTUFBTSxnQkFBZ0IsQ0FBQztBQUd4QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7Ozs7QUFVM0QsTUFBTSxPQUFPLHNCQUFzQjtJQWdCdkI7SUFDQTtJQUNBO0lBakJELEtBQUssR0FBVyxnQkFBZ0IsQ0FBQztJQUNqQyxRQUFRLEdBQVcsdUJBQXVCLENBQUM7SUFDM0MsYUFBYSxHQUFXLFFBQVEsQ0FBQztJQUNqQyxlQUFlLENBQVU7SUFDekIscUJBQXFCLENBQVU7SUFDL0IsZUFBZSxHQUFZLEtBQUssQ0FBQztJQUNqQyxLQUFLLENBQVU7SUFFZCxRQUFRLEdBQW9DLElBQUksWUFBWSxFQUFFLENBQUM7SUFDL0QsV0FBVyxHQUNuQixJQUFJLFlBQVksRUFBRSxDQUFDO0lBRXJCLGlCQUFpQixDQUFZO0lBRTdCLFlBQ1UsRUFBZSxFQUNmLE1BQTZCLEVBQzdCLFdBQXdCO1FBRnhCLE9BQUUsR0FBRixFQUFFLENBQWE7UUFDZixXQUFNLEdBQU4sTUFBTSxDQUF1QjtRQUM3QixnQkFBVyxH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QUMsQ0FBQztRQUNoQyxDQUFDO0lBQ0gsQ0FBQzt3R0FuRlUsc0JBQXNCOzRGQUF0QixzQkFBc0Isc1ZDckJuQywyd0NBc0JBOzs0RkREYSxzQkFBc0I7a0JBTGxDLFNBQVM7K0JBQ0UsdUJBQXVCOzhJQUt4QixLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0cscUJBQXFCO3NCQUE3QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUVJLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBBYnN0cmFjdENvbnRyb2wsXG4gIEZvcm1CdWlsZGVyLFxuICBGb3JtQ29udHJvbCxcbiAgRm9ybUdyb3VwLFxuICBWYWxpZGF0aW9uRXJyb3JzLFxuICBWYWxpZGF0b3JzLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBSZXNldFBhc3N3b3JkRGF0YSB9IGZyb20gJy4vUmVzZXRQYXNzd29yZERhdGEnO1xuaW1wb3J0IHsgSHR0cFdlYlJlcXVlc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvaHR0cC13ZWItcmVxdWVzdC5zZXJ2aWNlJztcbmltcG9ydCB7IEVycm9yUmVzcG9uc2UgfSBmcm9tICcuLi8uLi9tb2RlbHMvRXJyb3JSZXNwb25zZSc7XG5pbXBvcnQgeyBSZXNwb25zZUtleVZhbHVlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL1Jlc3BvbnNlS2V5VmFsdWUnO1xuaW1wb3J0IHsgUGFzc3dvcmRSZXF1ZXN0UGFyYW0gfSBmcm9tICcuLi8uLi9tb2RlbHMvUGFzc3dvcmRSZXF1ZXN0UGFyYW0nO1xuaW1wb3J0IHsgVXRpbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy91dGlsLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZXJiZW4tcmVzZXQtcGFzc3dvcmQnLFxuICB0ZW1wbGF0ZVVybDogJy4vcmVzZXQtcGFzc3dvcmQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vcmVzZXQtcGFzc3dvcmQuY29tcG9uZW50LmNzcycsXG59KVxuZXhwb3J0IGNsYXNzIFJlc2V0UGFzc3dvcmRDb21wb25lbnQge1xuICBASW5wdXQoKSB0aXRsZTogc3RyaW5nID0gJ1Jlc2V0IFBhc3N3b3JkJztcbiAgQElucHV0KCkgc3ViVGl0bGU6IHN0cmluZyA9ICdDcmVhdGUgYSBOZXcgUGFzc3dvcmQnO1xuICBASW5wdXQoKSBidXR0b25DYXB0aW9uOiBzdHJpbmcgPSAnU3VibWl0JztcbiAgQElucHV0KCkgYnV0dG9uVGV4dENvbG9yPzogc3RyaW5nO1xuICBASW5wdXQoKSBidXR0b25CYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHNob3dPbGRQYXNzd29yZDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSB0b2tlbj86IHN0cmluZztcblxuICBAT3V0cHV0KCkgb25TdWJtaXQ6IEV2ZW50RW1pdHRlcjxSZXNldFBhc3N3b3JkRGF0YT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBvblN1Ym1pdEVuZDogRXZlbnRFbWl0dGVyPFJlc3BvbnNlS2V5VmFsdWUgfCBFcnJvclJlc3BvbnNlPiA9XG4gICAgbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIHJlc2V0UGFzc3dvcmRGb3JtOiBGb3JtR3JvdXA7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSBzZXJ2ZXI6IEh0dHBXZWJSZXF1ZXN0U2VydmljZSxcbiAgICBwcml2YXRlIHV0aWxTZXJ2aWNlOiBVdGlsU2VydmljZVxuICApIHtcbiAgICB0aGlzLnJlc2V0UGFzc3dvcmRGb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICBPbGRQYXNzd29yZDogbmV3IEZvcm1Db250cm9sPHN0cmluZyB8IG51bGw+KFxuICAgICAgICBudWxsLFxuICAgICAgICB0aGlzLm9sZFBhc3N3b3JkVmFsaWRhdG9yLmJpbmQodGhpcylcbiAgICAgICksXG4gICAgICBQYXNzd29yZDogbmV3IEZvcm1Db250cm9sPHN0cmluZyB8IG51bGw+KG51bGwsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgICAgQ29uZmlybVBhc3N3b3JkOiBuZXcgRm9ybUNvbnRyb2w8c3RyaW5nIHwgbnVsbD4obnVsbCwgW1xuICAgICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkLFxuICAgICAgICB0aGlzLmNvbmZpcm1QYXNzd29yZFZhbGlkYXRvci5iaW5kKHRoaXMpLFxuICAgICAgXSksXG4gICAgfSk7XG4gIH1cblxuICBjaGVja0Zvcm0oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucmVzZXRQYXNzd29yZEZvcm0udmFsaWQ7XG4gIH1cblxuICBvbGRQYXNzd29yZFZhbGlkYXRvcihjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XG4gICAgaWYgKHRoaXMuc2hvd09sZFBhc3N3b3JkICYmIGNvbnRyb2wudmFsdWUgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHsgY3VzdG9tVmFsaWRhdGlvbjogdHJ1ZSB9O1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICBjb25maXJtUGFzc3dvcmRWYWxpZGF0b3IoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgIGlmIChcbiAgICAgIHRoaXMucmVzZXRQYXNzd29yZEZvcm0gJiZcbiAgICAgIHRoaXMucmVzZXRQYXNzd29yZEZvcm0uY29udHJvbHNbJ1Bhc3N3b3JkJ10gJiZcbiAgICAgIHRoaXMucmVzZXRQYXNzd29yZEZvcm0uY29udHJvbHNbJ1Bhc3N3b3JkJ10udmFsdWUgIT09IGNvbnRyb2wudmFsdWVcbiAgICApIHtcbiAgICAgIHJldHVybiB7IGN1c3RvbVZhbGlkYXRpb246IHRydWUgfTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBhc3luYyBzdWJtaXQoKSB7XG4gICAgaWYgKCF0aGlzLmNoZWNrRm9ybSgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHZhciBkYXRhOiBSZXNldFBhc3N3b3JkRGF0YSA9IHtcbiAgICAgIE9sZFBhc3N3b3JkOiB0aGlzLnNob3dPbGRQYXNzd29yZFxuICAgICAgICA/IHRoaXMucmVzZXRQYXNzd29yZEZvcm0uY29udHJvbHNbJ09sZFBhc3N3b3JkJ10udmFsdWVcbiAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICBQYXNzd29yZDogdGhpcy5yZXNldFBhc3N3b3JkRm9ybS5jb250cm9sc1snUGFzc3dvcmQnXS52YWx1ZSxcbiAgICAgIENvbmZpcm1QYXNzd29yZDogdGhpcy5yZXNldFBhc3N3b3JkRm9ybS5jb250cm9sc1snQ29uZmlybVBhc3N3b3JkJ10udmFsdWUsXG4gICAgfTtcbiAgICB0aGlzLm9uU3VibWl0LmVtaXQoZGF0YSk7XG4gICAgdmFyIHBhc3N3b3JkUmVxdWVzdDogUGFzc3dvcmRSZXF1ZXN0UGFyYW0gPSB7XG4gICAgICBOZXdQYXNzd29yZDogZGF0YS5QYXNzd29yZCxcbiAgICAgIE9sZFBhc3N3b3JkOiBkYXRhLk9sZFBhc3N3b3JkLFxuICAgICAgVG9rZW46IHRoaXMudG9rZW4sXG4gICAgfTtcbiAgICB0aGlzLnV0aWxTZXJ2aWNlLnNlbmRCSSh0cnVlKTtcbiAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLnNlcnZlci5wb3N0KFxuICAgICAgYFVzZXIvQ29tcGxldGVDaGFuZ2VQYXNzd29yZFJlcXVlc3RgLFxuICAgICAgcGFzc3dvcmRSZXF1ZXN0XG4gICAgKTtcbiAgICB0aGlzLnV0aWxTZXJ2aWNlLnNlbmRCSShmYWxzZSk7XG4gICAgaWYgKHJlcyBpbnN0YW5jZW9mIEVycm9yUmVzcG9uc2UpIHtcbiAgICAgIHRoaXMub25TdWJtaXRFbmQuZW1pdChyZXMpO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgcmVzdWx0ID0gcmVzIGFzIFJlc3BvbnNlS2V5VmFsdWU7XG4gICAgICB0aGlzLm9uU3VibWl0RW5kLmVtaXQocmVzdWx0KTtcbiAgICB9XG4gIH1cbn1cblxuIiwiPGRpdiBbZm9ybUdyb3VwXT1cInRoaXMucmVzZXRQYXNzd29yZEZvcm1cIiBjbGFzcz1cInJlc2V0LXBhc3N3b3JkLWNvbnRhaW5lciBmbGV4IGZsZXgtY29sXCI+XG4gIDxkaXYgY2xhc3M9XCJyZXNldC1wYXNzd29yZC1oZWFkZXIgZmxleCBmbGV4LWNvbFwiPlxuICAgIDxkaXYgY2xhc3M9XCJyZXNldC1wYXNzd29yZC10aXRsZVwiPnt7dGl0bGV9fTwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJyZXNldC1wYXNzd29yZC1zdWJ0aXRsZVwiPnt7c3ViVGl0bGV9fTwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiAqbmdJZj1cInNob3dPbGRQYXNzd29yZFwiIGNsYXNzPVwiZm9ybS1maWVsZCBmbGV4IGZsZXgtY29sXCI+XG4gICAgPGRpdiBjbGFzcz1cImZvcm0tZmllbGQtY2FwdGlvblwiPk9sZCBQYXNzd29yZDwvZGl2PlxuICAgIDx2ZXJiZW5hLWlucHV0IGJnQ29sb3I9XCJ3aGl0ZVwiIGJvcmRlclJhZGl1cz1cIjEycHhcIiBmb3JtQ29udHJvbE5hbWU9XCJPbGRQYXNzd29yZFwiIHR5cGU9XCJwYXNzd29yZFwiPjwvdmVyYmVuYS1pbnB1dD5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJmb3JtLWZpZWxkIGZsZXggZmxleC1jb2xcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1maWVsZC1jYXB0aW9uXCI+TmV3IFBhc3N3b3JkPC9kaXY+XG4gICAgPHZlcmJlbmEtaW5wdXQgYmdDb2xvcj1cIndoaXRlXCIgYm9yZGVyUmFkaXVzPVwiMTJweFwiIGZvcm1Db250cm9sTmFtZT1cIlBhc3N3b3JkXCIgdHlwZT1cInBhc3N3b3JkXCI+PC92ZXJiZW5hLWlucHV0PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImZvcm0tZmllbGQgZmxleCBmbGV4LWNvbFwiPlxuICAgIDxkaXYgY2xhc3M9XCJmb3JtLWZpZWxkLWNhcHRpb25cIj5Db25maXJtIFBhc3N3b3JkPC9kaXY+XG4gICAgPHZlcmJlbmEtaW5wdXQgYmdDb2xvcj1cIndoaXRlXCIgYm9yZGVyUmFkaXVzPVwiMTJweFwiIGZvcm1Db250cm9sTmFtZT1cIkNvbmZpcm1QYXNzd29yZFwiXG4gICAgICB0eXBlPVwicGFzc3dvcmRcIj48L3ZlcmJlbmEtaW5wdXQ+XG4gIDwvZGl2PlxuICA8dmVyYmVuYS1idXR0b24gZm9udFdlaWdodD1cIjcwMFwiIChjbGljayk9XCJzdWJtaXQoKVwiIFt0ZXh0XT1cImJ1dHRvbkNhcHRpb25cIiB3aWR0aD1cIjEwMCVcIiBbdGV4dENvbG9yXT1cImJ1dHRvblRleHRDb2xvclwiXG4gICAgW2JnQ29sb3JdPVwiYnV0dG9uQmFja2dyb3VuZENvbG9yXCIgYm9yZGVyUmFkaXVzPVwiMjVweFwiIFtkaXNhYmxlXT1cIiF0aGlzLmNoZWNrRm9ybSgpXCI+PC92ZXJiZW5hLWJ1dHRvbj5cblxuPC9kaXY+XG4iXX0=
@@ -1,34 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { ResetPasswordComponent } from './reset-password.component';
3
- import { FormsModule, ReactiveFormsModule } from '@angular/forms';
4
- import { VerbenaButtonModule, VerbenaInputModule } from 'verben-ng-ui';
5
- import { CommonModule } from '@angular/common';
6
- import * as i0 from "@angular/core";
7
- export class ResetPasswordModule {
8
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ResetPasswordModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: ResetPasswordModule, declarations: [ResetPasswordComponent], imports: [FormsModule,
10
- ReactiveFormsModule,
11
- VerbenaInputModule,
12
- VerbenaButtonModule,
13
- CommonModule], exports: [ResetPasswordComponent] });
14
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ResetPasswordModule, imports: [FormsModule,
15
- ReactiveFormsModule,
16
- VerbenaInputModule,
17
- VerbenaButtonModule,
18
- CommonModule] });
19
- }
20
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ResetPasswordModule, decorators: [{
21
- type: NgModule,
22
- args: [{
23
- declarations: [ResetPasswordComponent],
24
- imports: [
25
- FormsModule,
26
- ReactiveFormsModule,
27
- VerbenaInputModule,
28
- VerbenaButtonModule,
29
- CommonModule,
30
- ],
31
- exports: [ResetPasswordComponent],
32
- }]
33
- }] });
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzZXQtcGFzc3dvcmQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmVyYmVuLWF1dGhlbnRpY2F0aW9uLXVpL3NyYy9saWIvY29tcG9uZW50cy9yZXNldC1wYXNzd29yZC9yZXNldC1wYXNzd29yZC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFhL0MsTUFBTSxPQUFPLG1CQUFtQjt3R0FBbkIsbUJBQW1CO3lHQUFuQixtQkFBbUIsaUJBVmYsc0JBQXNCLGFBRW5DLFdBQVc7WUFDWCxtQkFBbUI7WUFDbkIsa0JBQWtCO1lBQ2xCLG1CQUFtQjtZQUNuQixZQUFZLGFBRUosc0JBQXNCO3lHQUVyQixtQkFBbUIsWUFSNUIsV0FBVztZQUNYLG1CQUFtQjtZQUNuQixrQkFBa0I7WUFDbEIsbUJBQW1CO1lBQ25CLFlBQVk7OzRGQUlILG1CQUFtQjtrQkFYL0IsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDdEMsT0FBTyxFQUFFO3dCQUNQLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixrQkFBa0I7d0JBQ2xCLG1CQUFtQjt3QkFDbkIsWUFBWTtxQkFDYjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztpQkFDbEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUmVzZXRQYXNzd29yZENvbXBvbmVudCB9IGZyb20gJy4vcmVzZXQtcGFzc3dvcmQuY29tcG9uZW50JztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgVmVyYmVuYUJ1dHRvbk1vZHVsZSwgVmVyYmVuYUlucHV0TW9kdWxlIH0gZnJvbSAndmVyYmVuLW5nLXVpJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1Jlc2V0UGFzc3dvcmRDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBWZXJiZW5hSW5wdXRNb2R1bGUsXG4gICAgVmVyYmVuYUJ1dHRvbk1vZHVsZSxcbiAgICBDb21tb25Nb2R1bGUsXG4gIF0sXG4gIGV4cG9ydHM6IFtSZXNldFBhc3N3b3JkQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgUmVzZXRQYXNzd29yZE1vZHVsZSB7fVxuIl19
@@ -1,214 +0,0 @@
1
- import { Component, EventEmitter, Input, Output } from '@angular/core';
2
- import { FormControl, Validators, } from '@angular/forms';
3
- import { ErrorResponse } from '../../models/ErrorResponse';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@angular/forms";
6
- import * as i2 from "../../services/http-web-request.service";
7
- import * as i3 from "../../services/util.service";
8
- import * as i4 from "../../services/environment.service";
9
- import * as i5 from "@angular/common";
10
- import * as i6 from "verben-ng-ui";
11
- import * as i7 from "@angular/router";
12
- import * as i8 from "../o-auth/o-auth.component";
13
- import * as i9 from "../button/button.component";
14
- export class SignInComponent {
15
- fb;
16
- server;
17
- utilService;
18
- envSvc;
19
- headlingText = 'Sign in';
20
- width = '';
21
- maxWidth = '';
22
- margin = '';
23
- pd = '';
24
- customClass = '';
25
- headlingClass = '';
26
- bgColor = '#fff';
27
- boxShadow = '4px 4px 4px rgba(0, 0, 0, 0.25)';
28
- border = '1px solid #66666680';
29
- borderRadius = '24px';
30
- textColor = '#333';
31
- height = 'auto';
32
- forgetPasswordClass = '';
33
- requestAccessClass = '';
34
- createAccountClass = '';
35
- createAccountLinkClass = '';
36
- // links
37
- forgetPasswordLink = '';
38
- createAccountLink = '';
39
- requestAccessLink = '';
40
- // button styles
41
- btnClass = '';
42
- btnBgColor = '#FFE681';
43
- btnColor = '';
44
- btnBorder = '';
45
- btnBorderRadius = '24px';
46
- btnPd = '';
47
- btnText = 'Log in';
48
- //inputStyles
49
- inputLabelColor = '';
50
- inputBgColor = 'transparent';
51
- inputBorder = '1px solid #66666659';
52
- inputBorderRadius = '12px';
53
- termsErrorText = 'Please agree to the terms of use and privacy policy.';
54
- formSubmit = new EventEmitter();
55
- onSubmitEnd = new EventEmitter();
56
- googleClick = new EventEmitter();
57
- appleClick = new EventEmitter();
58
- tenantDetails = null;
59
- AuthMechanisms = null;
60
- loginForm;
61
- apiKey;
62
- secret;
63
- constructor(fb, server, utilService, envSvc) {
64
- this.fb = fb;
65
- this.server = server;
66
- this.utilService = utilService;
67
- this.envSvc = envSvc;
68
- this.loginForm = this.fb.group({
69
- Email: new FormControl(null, [
70
- Validators.required,
71
- Validators.email,
72
- ]),
73
- Password: new FormControl(null, [
74
- Validators.required,
75
- Validators.minLength(5),
76
- ]),
77
- });
78
- this.apiKey = this.envSvc.environment.APIKey;
79
- this.secret = this.envSvc.environment.Secret;
80
- }
81
- ngOnInit() {
82
- this.getTenantConfig();
83
- }
84
- async getTenantConfig() {
85
- const res = await this.server.get(`Tenant/GetTenantConfigByKey/${this.apiKey}`);
86
- this.tenantDetails = res;
87
- this.AuthMechanisms = this.tenantDetails?.AuthMechanisms;
88
- }
89
- checkForm() {
90
- return this.loginForm.valid;
91
- }
92
- async submit() {
93
- if (!this.checkForm()) {
94
- return;
95
- }
96
- const data = {
97
- MailAddress: this.loginForm.controls['Email'].value,
98
- Password: this.loginForm.controls['Password'].value,
99
- LoginType: this.tenantDetails?.AuthMechanism,
100
- APIKey: this.apiKey,
101
- Secrete: '$White360$'
102
- };
103
- this.formSubmit.emit(data);
104
- this.utilService.sendBI(true);
105
- const res = await this.server.post(`Authentication/Login`, data);
106
- this.utilService.sendBI(false);
107
- if (res instanceof ErrorResponse) {
108
- this.onSubmitEnd.emit(res);
109
- }
110
- else {
111
- var result = res;
112
- this.onSubmitEnd.emit(result);
113
- }
114
- }
115
- handleGoogleAuth() {
116
- this.googleClick.emit();
117
- }
118
- handleAppleAuth() {
119
- this.appleClick.emit();
120
- }
121
- get styles() {
122
- return {
123
- 'background-color': this.bgColor,
124
- 'box-shadow': this.boxShadow,
125
- 'border': this.border,
126
- 'border-radius': this.borderRadius,
127
- 'color': this.textColor,
128
- 'width': this.width,
129
- 'max-width': this.maxWidth,
130
- 'margin': this.margin,
131
- 'height': this.height,
132
- 'padding': this.pd
133
- };
134
- }
135
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SignInComponent, deps: [{ token: i1.FormBuilder }, { token: i2.HttpWebRequestService }, { token: i3.UtilService }, { token: i4.EnvironmentService }], target: i0.ɵɵFactoryTarget.Component });
136
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SignInComponent, selector: "verben-sign-in", inputs: { headlingText: "headlingText", width: "width", maxWidth: "maxWidth", margin: "margin", pd: "pd", customClass: "customClass", headlingClass: "headlingClass", bgColor: "bgColor", boxShadow: "boxShadow", border: "border", borderRadius: "borderRadius", textColor: "textColor", height: "height", forgetPasswordClass: "forgetPasswordClass", requestAccessClass: "requestAccessClass", createAccountClass: "createAccountClass", createAccountLinkClass: "createAccountLinkClass", forgetPasswordLink: "forgetPasswordLink", createAccountLink: "createAccountLink", requestAccessLink: "requestAccessLink", btnClass: "btnClass", btnBgColor: "btnBgColor", btnColor: "btnColor", btnBorder: "btnBorder", btnBorderRadius: "btnBorderRadius", btnPd: "btnPd", btnText: "btnText", inputLabelColor: "inputLabelColor", inputBgColor: "inputBgColor", inputBorder: "inputBorder", inputBorderRadius: "inputBorderRadius", termsErrorText: "termsErrorText" }, outputs: { formSubmit: "formSubmit", onSubmitEnd: "onSubmitEnd", googleClick: "googleClick", appleClick: "appleClick" }, ngImport: i0, template: "<section\n[ngStyle]=\"styles\"\nclass=\"{{ customClass }}\"\n>\n <h2 class=\"{{headlingClass}}\">{{headlingText}}</h2>\n <form [formGroup]=\"loginForm\" (ngSubmit)=\"submit()\" class=\"flexWrapper\"> \n <verbena-input\n [label]=\"'Email'\"\n [labelColor]=\"inputLabelColor\"\n [placeHolder]=\"''\"\n [required]=\"true\"\n [type]=\"'email'\"\n formControlName=\"Email\"\n [showBorder]=\"true\"\n [bgColor]=\"inputBgColor\"\n [border]=\"inputBorder\"\n [borderRadius]=\"inputBorderRadius\"\n [showErrorMessage]=\"true\"\n [errorMessageColor]=\"'red'\"\n [errorBorderColor]=\"'red'\"\n [errorPosition]=\"'bottom'\"\n class=\"outline-none focus-none\"\n ></verbena-input>\n <div> \n <verbena-input\n [label]=\"'Password'\"\n [labelColor]=\"inputLabelColor\"\n [placeHolder]=\"''\"\n [required]=\"true\"\n [type]=\"'password'\"\n formControlName=\"Password\"\n [showBorder]=\"true\"\n [bgColor]=\"inputBgColor\"\n [border]=\"inputBorder\"\n [borderRadius]=\"inputBorderRadius\"\n [showErrorMessage]=\"true\"\n [errorMessageColor]=\"'red'\"\n [errorBorderColor]=\"'red'\"\n [errorPosition]=\"'bottom'\"\n [passwordToggle]=\"true\"\n [customErrorMessages]=\"{\n password:'length must be 5 characters'\n }\"\n class=\"outline-none focus-none\"\n ></verbena-input>\n <div class=\"pwdWrapper\"> \n <p clas=\"mb-0\"> <a [routerLink]=\"forgetPasswordLink\" class=\"{{forgetPasswordClass}}\">Forgot password</a></p>\n </div>\n </div>\n <div> \n <lib-button \n [buttonClass]=\"btnClass\"\n [color]=\"btnColor\"\n [border]=\"btnBorder\"\n [borderRadius]=\"btnBorderRadius\"\n [bgColor]=\"btnBgColor\"\n [pd]=\"btnPd\"\n [text]=\"btnText\" \n type=\"submit\" \n [disabled]=\"!this.checkForm()\"\n ></lib-button>\n <p *ngIf=\"requestAccessLink\">\n <a [routerLink]=\"requestAccessLink\" class=\"{{requestAccessClass}}\">Click here to request user access</a>\n </p>\n <div> \n <div *ngIf=\"this.AuthMechanisms !== null && this.AuthMechanisms.length\"> \n <verben-o-auth \n (googleClick)=\"handleGoogleAuth()\"\n (appleClick)=\"handleAppleAuth()\"\n ></verben-o-auth>\n </div>\n <p class=\"{{createAccountClass}}\" *ngIf=\"createAccountLink\">\n Don't have an account?\n <a [routerLink]=\"createAccountLink\" class=\"{{createAccountLinkClass}}\">Create an account</a>\n </p>\n </div>\n </div>\n </form>\n </section>\n ", styles: ["a{text-decoration:underline}.flexWrapper{display:flex;flex-direction:column;gap:20px;margin-top:12px}.pwdWrapper{display:flex;justify-content:flex-end;cursor:pointer}\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "component", type: i6.VerbenaInputComponent, selector: "verbena-input", inputs: ["label", "placeHolder", "required", "svgPosition", "minLength", "maxLength", "type", "bgColor", "border", "borderRadius", "textColor", "value", "labelPosition", "labelColor", "disable", "readOnly", "min", "max", "showBorder", "showErrorMessage", "errorMessageColor", "errorBorderColor", "errorPosition", "svg", "svgWidth", "svgHeight", "svgColor", "capitalization", "inputContainerClass", "inputFieldClass", "inputWrapperClass", "passwordToggle", "customErrorMessages", "icon", "textPass"], outputs: ["valueChange"] }, { kind: "directive", type: i7.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i8.OAuthComponent, selector: "verben-o-auth", outputs: ["googleClick", "appleClick"] }, { kind: "component", type: i9.ButtonComponent, selector: "lib-button", inputs: ["text", "color", "border", "borderRadius", "bgColor", "width", "pd", "buttonClass", "disabled"], outputs: ["buttonClick"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] });
137
- }
138
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SignInComponent, decorators: [{
139
- type: Component,
140
- args: [{ selector: 'verben-sign-in', template: "<section\n[ngStyle]=\"styles\"\nclass=\"{{ customClass }}\"\n>\n <h2 class=\"{{headlingClass}}\">{{headlingText}}</h2>\n <form [formGroup]=\"loginForm\" (ngSubmit)=\"submit()\" class=\"flexWrapper\"> \n <verbena-input\n [label]=\"'Email'\"\n [labelColor]=\"inputLabelColor\"\n [placeHolder]=\"''\"\n [required]=\"true\"\n [type]=\"'email'\"\n formControlName=\"Email\"\n [showBorder]=\"true\"\n [bgColor]=\"inputBgColor\"\n [border]=\"inputBorder\"\n [borderRadius]=\"inputBorderRadius\"\n [showErrorMessage]=\"true\"\n [errorMessageColor]=\"'red'\"\n [errorBorderColor]=\"'red'\"\n [errorPosition]=\"'bottom'\"\n class=\"outline-none focus-none\"\n ></verbena-input>\n <div> \n <verbena-input\n [label]=\"'Password'\"\n [labelColor]=\"inputLabelColor\"\n [placeHolder]=\"''\"\n [required]=\"true\"\n [type]=\"'password'\"\n formControlName=\"Password\"\n [showBorder]=\"true\"\n [bgColor]=\"inputBgColor\"\n [border]=\"inputBorder\"\n [borderRadius]=\"inputBorderRadius\"\n [showErrorMessage]=\"true\"\n [errorMessageColor]=\"'red'\"\n [errorBorderColor]=\"'red'\"\n [errorPosition]=\"'bottom'\"\n [passwordToggle]=\"true\"\n [customErrorMessages]=\"{\n password:'length must be 5 characters'\n }\"\n class=\"outline-none focus-none\"\n ></verbena-input>\n <div class=\"pwdWrapper\"> \n <p clas=\"mb-0\"> <a [routerLink]=\"forgetPasswordLink\" class=\"{{forgetPasswordClass}}\">Forgot password</a></p>\n </div>\n </div>\n <div> \n <lib-button \n [buttonClass]=\"btnClass\"\n [color]=\"btnColor\"\n [border]=\"btnBorder\"\n [borderRadius]=\"btnBorderRadius\"\n [bgColor]=\"btnBgColor\"\n [pd]=\"btnPd\"\n [text]=\"btnText\" \n type=\"submit\" \n [disabled]=\"!this.checkForm()\"\n ></lib-button>\n <p *ngIf=\"requestAccessLink\">\n <a [routerLink]=\"requestAccessLink\" class=\"{{requestAccessClass}}\">Click here to request user access</a>\n </p>\n <div> \n <div *ngIf=\"this.AuthMechanisms !== null && this.AuthMechanisms.length\"> \n <verben-o-auth \n (googleClick)=\"handleGoogleAuth()\"\n (appleClick)=\"handleAppleAuth()\"\n ></verben-o-auth>\n </div>\n <p class=\"{{createAccountClass}}\" *ngIf=\"createAccountLink\">\n Don't have an account?\n <a [routerLink]=\"createAccountLink\" class=\"{{createAccountLinkClass}}\">Create an account</a>\n </p>\n </div>\n </div>\n </form>\n </section>\n ", styles: ["a{text-decoration:underline}.flexWrapper{display:flex;flex-direction:column;gap:20px;margin-top:12px}.pwdWrapper{display:flex;justify-content:flex-end;cursor:pointer}\n"] }]
141
- }], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.HttpWebRequestService }, { type: i3.UtilService }, { type: i4.EnvironmentService }], propDecorators: { headlingText: [{
142
- type: Input
143
- }], width: [{
144
- type: Input
145
- }], maxWidth: [{
146
- type: Input
147
- }], margin: [{
148
- type: Input
149
- }], pd: [{
150
- type: Input
151
- }], customClass: [{
152
- type: Input
153
- }], headlingClass: [{
154
- type: Input
155
- }], bgColor: [{
156
- type: Input
157
- }], boxShadow: [{
158
- type: Input
159
- }], border: [{
160
- type: Input
161
- }], borderRadius: [{
162
- type: Input
163
- }], textColor: [{
164
- type: Input
165
- }], height: [{
166
- type: Input
167
- }], forgetPasswordClass: [{
168
- type: Input
169
- }], requestAccessClass: [{
170
- type: Input
171
- }], createAccountClass: [{
172
- type: Input
173
- }], createAccountLinkClass: [{
174
- type: Input
175
- }], forgetPasswordLink: [{
176
- type: Input
177
- }], createAccountLink: [{
178
- type: Input
179
- }], requestAccessLink: [{
180
- type: Input
181
- }], btnClass: [{
182
- type: Input
183
- }], btnBgColor: [{
184
- type: Input
185
- }], btnColor: [{
186
- type: Input
187
- }], btnBorder: [{
188
- type: Input
189
- }], btnBorderRadius: [{
190
- type: Input
191
- }], btnPd: [{
192
- type: Input
193
- }], btnText: [{
194
- type: Input
195
- }], inputLabelColor: [{
196
- type: Input
197
- }], inputBgColor: [{
198
- type: Input
199
- }], inputBorder: [{
200
- type: Input
201
- }], inputBorderRadius: [{
202
- type: Input
203
- }], termsErrorText: [{
204
- type: Input
205
- }], formSubmit: [{
206
- type: Output
207
- }], onSubmitEnd: [{
208
- type: Output
209
- }], googleClick: [{
210
- type: Output
211
- }], appleClick: [{
212
- type: Output
213
- }] } });
214
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbi1pbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4tYXV0aGVudGljYXRpb24tdWkvc3JjL2xpYi9jb21wb25lbnRzL3NpZ24taW4vc2lnbi1pbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4tYXV0aGVudGljYXRpb24tdWkvc3JjL2xpYi9jb21wb25lbnRzL3NpZ24taW4vc2lnbi1pbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFHTCxXQUFXLEVBR1gsVUFBVSxHQUNYLE1BQU0sZ0JBQWdCLENBQUM7QUFJeEIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7Ozs7Ozs7OztBQVUzRCxNQUFNLE9BQU8sZUFBZTtJQW9ETjtJQUNWO0lBQ0E7SUFDQTtJQXRERCxZQUFZLEdBQVcsU0FBUyxDQUFDO0lBQ2pDLEtBQUssR0FBVyxFQUFFLENBQUM7SUFDbkIsUUFBUSxHQUFXLEVBQUUsQ0FBQztJQUN0QixNQUFNLEdBQVcsRUFBRSxDQUFDO0lBQ3BCLEVBQUUsR0FBVyxFQUFFLENBQUM7SUFDaEIsV0FBVyxHQUFXLEVBQUUsQ0FBQTtJQUN4QixhQUFhLEdBQVcsRUFBRSxDQUFBO0lBQzFCLE9BQU8sR0FBVyxNQUFNLENBQUM7SUFDekIsU0FBUyxHQUFXLGlDQUFpQyxDQUFDO0lBQ3RELE1BQU0sR0FBVyxxQkFBcUIsQ0FBQztJQUN2QyxZQUFZLEdBQVcsTUFBTSxDQUFDO0lBQzlCLFNBQVMsR0FBVyxNQUFNLENBQUM7SUFDM0IsTUFBTSxHQUFXLE1BQU0sQ0FBQztJQUN4QixtQkFBbUIsR0FBVyxFQUFFLENBQUM7SUFDakMsa0JBQWtC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SztzQkFBYixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFHSSxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFFSSxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQWJzdHJhY3RDb250cm9sLFxuICBGb3JtQnVpbGRlcixcbiAgRm9ybUNvbnRyb2wsXG4gIEZvcm1Hcm91cCxcbiAgVmFsaWRhdGlvbkVycm9ycyxcbiAgVmFsaWRhdG9ycyxcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTG9naW5EYXRhIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2xvZy1pbic7XG5pbXBvcnQgeyBIdHRwV2ViUmVxdWVzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9odHRwLXdlYi1yZXF1ZXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgVXRpbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy91dGlsLnNlcnZpY2UnO1xuaW1wb3J0IHsgRXJyb3JSZXNwb25zZSB9IGZyb20gJy4uLy4uL21vZGVscy9FcnJvclJlc3BvbnNlJztcbmltcG9ydCB7IFJlc3BvbnNlS2V5VmFsdWUgfSBmcm9tICcuLi8uLi9tb2RlbHMvUmVzcG9uc2VLZXlWYWx1ZSc7XG5pbXBvcnQgeyBFbnZpcm9ubWVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9lbnZpcm9ubWVudC5zZXJ2aWNlJ1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZXJiZW4tc2lnbi1pbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9zaWduLWluLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3NpZ24taW4uY29tcG9uZW50LmNzcydcbn0pXG5cbmV4cG9ydCBjbGFzcyBTaWduSW5Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBoZWFkbGluZ1RleHQ6IHN0cmluZyA9ICdTaWduIGluJztcbiAgQElucHV0KCkgd2lkdGg6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBtYXhXaWR0aDogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIG1hcmdpbjogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIHBkOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgY3VzdG9tQ2xhc3M6IHN0cmluZyA9ICcnXG4gIEBJbnB1dCgpIGhlYWRsaW5nQ2xhc3M6IHN0cmluZyA9ICcnXG4gIEBJbnB1dCgpIGJnQ29sb3I6IHN0cmluZyA9ICcjZmZmJztcbiAgQElucHV0KCkgYm94U2hhZG93OiBzdHJpbmcgPSAnNHB4IDRweCA0cHggcmdiYSgwLCAwLCAwLCAwLjI1KSc7XG4gIEBJbnB1dCgpIGJvcmRlcjogc3RyaW5nID0gJzFweCBzb2xpZCAjNjY2NjY2ODAnO1xuICBASW5wdXQoKSBib3JkZXJSYWRpdXM6IHN0cmluZyA9ICcyNHB4JztcbiAgQElucHV0KCkgdGV4dENvbG9yOiBzdHJpbmcgPSAnIzMzMyc7XG4gIEBJbnB1dCgpIGhlaWdodDogc3RyaW5nID0gJ2F1dG8nO1xuICBASW5wdXQoKSBmb3JnZXRQYXNzd29yZENsYXNzOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgcmVxdWVzdEFjY2Vzc0NsYXNzOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgY3JlYXRlQWNjb3VudENsYXNzOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgY3JlYXRlQWNjb3VudExpbmtDbGFzczogc3RyaW5nID0gJyc7XG5cbiAgLy8gbGlua3NcbiAgQElucHV0KCkgZm9yZ2V0UGFzc3dvcmRMaW5rOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgY3JlYXRlQWNjb3VudExpbms6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSByZXF1ZXN0QWNjZXNzTGluazogc3RyaW5nID0gJyc7XG5cbiAgLy8gYnV0dG9uIHN0eWxlc1xuICBASW5wdXQoKSBidG5DbGFzczogc3RyaW5nID0gJydcbiAgQElucHV0KCkgYnRuQmdDb2xvcjogc3RyaW5nID0gJyNGRkU2ODEnXG4gIEBJbnB1dCgpIGJ0bkNvbG9yOiBzdHJpbmcgPSAnJ1xuICBASW5wdXQoKSBidG5Cb3JkZXI6IHN0cmluZyA9ICcnXG4gIEBJbnB1dCgpIGJ0bkJvcmRlclJhZGl1czogc3RyaW5nID0gJzI0cHgnXG4gIEBJbnB1dCgpIGJ0blBkOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgYnRuVGV4dDogc3RyaW5nID0gJ0xvZyBpbic7XG5cbiAgLy9pbnB1dFN0eWxlc1xuICAgQElucHV0KCkgaW5wdXRMYWJlbENvbG9yOiBzdHJpbmcgPSAnJ1xuICAgQElucHV0KCkgaW5wdXRCZ0NvbG9yOiBzdHJpbmcgPSAndHJhbnNwYXJlbnQnXG4gICBASW5wdXQoKSBpbnB1dEJvcmRlcjogc3RyaW5nID0gJzFweCBzb2xpZCAjNjY2NjY2NTknXG4gICBASW5wdXQoKSBpbnB1dEJvcmRlclJhZGl1czogc3RyaW5nID0gJzEycHgnXG4gICBASW5wdXQoKSB0ZXJtc0Vycm9yVGV4dDogc3RyaW5nID0gJ1BsZWFzZSBhZ3JlZSB0byB0aGUgdGVybXMgb2YgdXNlIGFuZCBwcml2YWN5IHBvbGljeS4nXG5cbiAgIEBPdXRwdXQoKSBmb3JtU3VibWl0ID0gbmV3IEV2ZW50RW1pdHRlcjxMb2dpbkRhdGE+KCk7XG4gICBAT3V0cHV0KCkgb25TdWJtaXRFbmQ6IEV2ZW50RW1pdHRlcjxSZXNwb25zZUtleVZhbHVlIHwgRXJyb3JSZXNwb25zZT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICBAT3V0cHV0KCkgZ29vZ2xlQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICBAT3V0cHV0KCkgYXBwbGVDbGljayA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiBcbiAgdGVuYW50RGV0YWlsczphbnkgfCBudWxsID0gbnVsbDtcbiAgQXV0aE1lY2hhbmlzbXM6e31bXSB8IG51bGwgPSBudWxsXG4gIGxvZ2luRm9ybTogRm9ybUdyb3VwO1xuICBhcGlLZXk6c3RyaW5nO1xuICBzZWNyZXQ6c3RyaW5nO1xuXG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSBzZXJ2ZXI6IEh0dHBXZWJSZXF1ZXN0U2VydmljZSxcbiAgICBwcml2YXRlIHV0aWxTZXJ2aWNlOiBVdGlsU2VydmljZSxcbiAgICBwcml2YXRlIGVudlN2YzogRW52aXJvbm1lbnRTZXJ2aWNlLFxuICApIHtcbiAgICB0aGlzLmxvZ2luRm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgRW1haWw6IG5ldyBGb3JtQ29udHJvbDxzdHJpbmcgfCBudWxsPihudWxsLCBbXG4gICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWQsXG4gICAgICAgIFZhbGlkYXRvcnMuZW1haWwsXG4gICAgICBdKSxcbiAgICAgIFBhc3N3b3JkOiBuZXcgRm9ybUNvbnRyb2w8c3RyaW5nIHwgbnVsbD4obnVsbCwgW1xuICAgICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkLFxuICAgICAgICBWYWxpZGF0b3JzLm1pbkxlbmd0aCg1KSxcbiAgICAgIF0pLFxuICAgIH0pO1xuICAgdGhpcy5hcGlLZXkgPSAgdGhpcy5lbnZTdmMuZW52aXJvbm1lbnQuQVBJS2V5XG4gICB0aGlzLnNlY3JldCA9ICB0aGlzLmVudlN2Yy5lbnZpcm9ubWVudC5TZWNyZXRcbiAgfVxuXG4gIG5nT25Jbml0KCl7IFxuICAgIHRoaXMuZ2V0VGVuYW50Q29uZmlnKClcbiAgfVxuXG4gIGFzeW5jIGdldFRlbmFudENvbmZpZygpeyBcbiAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLnNlcnZlci5nZXQoXG4gICAgICBgVGVuYW50L0dldFRlbmFudENvbmZpZ0J5S2V5LyR7dGhpcy5hcGlLZXl9YFxuICAgICk7XG4gICB0aGlzLnRlbmFudERldGFpbHMgPSByZXM7XG4gICB0aGlzLkF1dGhNZWNoYW5pc21zID0gIHRoaXMudGVuYW50RGV0YWlscz8uQXV0aE1lY2hhbmlzbXNcbiAgfVxuIFxuICBjaGVja0Zvcm0oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMubG9naW5Gb3JtLnZhbGlkO1xuICB9XG5cbiAgYXN5bmMgc3VibWl0KCkge1xuICAgIGlmICghdGhpcy5jaGVja0Zvcm0oKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBcbiAgICBjb25zdCBkYXRhOiBMb2dpbkRhdGEgPSB7XG4gICAgICBNYWlsQWRkcmVzczogdGhpcy5sb2dpbkZvcm0uY29udHJvbHNbJ0VtYWlsJ10udmFsdWUsXG4gICAgICBQYXNzd29yZDogdGhpcy5sb2dpbkZvcm0uY29udHJvbHNbJ1Bhc3N3b3JkJ10udmFsdWUsXG4gICAgICBMb2dpblR5cGU6dGhpcy50ZW5hbnREZXRhaWxzPy5BdXRoTWVjaGFuaXNtLFxuICAgICAgQVBJS2V5OnRoaXMuYXBpS2V5LFxuICAgICAgU2VjcmV0ZTonJFdoaXRlMzYwJCdcbiAgICB9O1xuICAgIHRoaXMuZm9ybVN1Ym1pdC5lbWl0KGRhdGEpO1xuXG4gICAgdGhpcy51dGlsU2VydmljZS5zZW5kQkkodHJ1ZSk7XG4gICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5zZXJ2ZXIucG9zdChcbiAgICAgIGBBdXRoZW50aWNhdGlvbi9Mb2dpbmAsZGF0YVxuICAgICk7XG4gICAgdGhpcy51dGlsU2VydmljZS5zZW5kQkkoZmFsc2UpO1xuICAgIGlmIChyZXMgaW5zdGFuY2VvZiBFcnJvclJlc3BvbnNlKSB7XG4gICAgICB0aGlzLm9uU3VibWl0RW5kLmVtaXQocmVzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIHJlc3VsdCA9IHJlcyBhcyBSZXNwb25zZUtleVZhbHVlO1xuICAgICAgdGhpcy5vblN1Ym1pdEVuZC5lbWl0KHJlc3VsdCk7XG4gICAgfVxuICB9XG5cbiAgaGFuZGxlR29vZ2xlQXV0aCgpIHtcbiAgICB0aGlzLmdvb2dsZUNsaWNrLmVtaXQoKTtcbiAgfVxuICBoYW5kbGVBcHBsZUF1dGgoKSB7XG4gICAgdGhpcy5hcHBsZUNsaWNrLmVtaXQoKTtcbiAgfVxuXG4gIGdldCBzdHlsZXMoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICdiYWNrZ3JvdW5kLWNvbG9yJzogdGhpcy5iZ0NvbG9yLFxuICAgICAgJ2JveC1zaGFkb3cnOiB0aGlzLmJveFNoYWRvdyxcbiAgICAgICdib3JkZXInOiB0aGlzLmJvcmRlcixcbiAgICAgICdib3JkZXItcmFkaXVzJzogdGhpcy5ib3JkZXJSYWRpdXMsXG4gICAgICAnY29sb3InOiB0aGlzLnRleHRDb2xvcixcbiAgICAgICd3aWR0aCc6IHRoaXMud2lkdGgsXG4gICAgICAnbWF4LXdpZHRoJzp0aGlzLm1heFdpZHRoLFxuICAgICAgJ21hcmdpbic6dGhpcy5tYXJnaW4sXG4gICAgICAnaGVpZ2h0JzogdGhpcy5oZWlnaHQsXG4gICAgICAncGFkZGluZyc6dGhpcy5wZFxuICAgIH07XG4gIH1cblxufVxuIiwiPHNlY3Rpb25cbltuZ1N0eWxlXT1cInN0eWxlc1wiXG5jbGFzcz1cInt7IGN1c3RvbUNsYXNzIH19XCJcbj5cbiAgICA8aDIgY2xhc3M9XCJ7e2hlYWRsaW5nQ2xhc3N9fVwiPnt7aGVhZGxpbmdUZXh0fX08L2gyPlxuICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwibG9naW5Gb3JtXCIgKG5nU3VibWl0KT1cInN1Ym1pdCgpXCIgY2xhc3M9XCJmbGV4V3JhcHBlclwiPiBcbiAgICA8dmVyYmVuYS1pbnB1dFxuICAgICAgW2xhYmVsXT1cIidFbWFpbCdcIlxuICAgICAgW2xhYmVsQ29sb3JdPVwiaW5wdXRMYWJlbENvbG9yXCJcbiAgICAgIFtwbGFjZUhvbGRlcl09XCInJ1wiXG4gICAgICBbcmVxdWlyZWRdPVwidHJ1ZVwiXG4gICAgICBbdHlwZV09XCInZW1haWwnXCJcbiAgICAgIGZvcm1Db250cm9sTmFtZT1cIkVtYWlsXCJcbiAgICAgIFtzaG93Qm9yZGVyXT1cInRydWVcIlxuICAgICAgW2JnQ29sb3JdPVwiaW5wdXRCZ0NvbG9yXCJcbiAgICAgIFtib3JkZXJdPVwiaW5wdXRCb3JkZXJcIlxuICAgICAgW2JvcmRlclJhZGl1c109XCJpbnB1dEJvcmRlclJhZGl1c1wiXG4gICAgICBbc2hvd0Vycm9yTWVzc2FnZV09XCJ0cnVlXCJcbiAgICAgIFtlcnJvck1lc3NhZ2VDb2xvcl09XCIncmVkJ1wiXG4gICAgICBbZXJyb3JCb3JkZXJDb2xvcl09XCIncmVkJ1wiXG4gICAgICBbZXJyb3JQb3NpdGlvbl09XCInYm90dG9tJ1wiXG4gICAgICBjbGFzcz1cIm91dGxpbmUtbm9uZSBmb2N1cy1ub25lXCJcbiAgICA+PC92ZXJiZW5hLWlucHV0PlxuICAgIDxkaXY+IFxuICAgICAgICA8dmVyYmVuYS1pbnB1dFxuICAgICAgICBbbGFiZWxdPVwiJ1Bhc3N3b3JkJ1wiXG4gICAgICAgIFtsYWJlbENvbG9yXT1cImlucHV0TGFiZWxDb2xvclwiXG4gICAgICAgIFtwbGFjZUhvbGRlcl09XCInJ1wiXG4gICAgICAgIFtyZXF1aXJlZF09XCJ0cnVlXCJcbiAgICAgICAgW3R5cGVdPVwiJ3Bhc3N3b3JkJ1wiXG4gICAgICAgIGZvcm1Db250cm9sTmFtZT1cIlBhc3N3b3JkXCJcbiAgICAgICAgW3Nob3dCb3JkZXJdPVwidHJ1ZVwiXG4gICAgICAgIFtiZ0NvbG9yXT1cImlucHV0QmdDb2xvclwiXG4gICAgICAgIFtib3JkZXJdPVwiaW5wdXRCb3JkZXJcIlxuICAgICAgICBbYm9yZGVyUmFkaXVzXT1cImlucHV0Qm9yZGVyUmFkaXVzXCJcbiAgICAgICAgW3Nob3dFcnJvck1lc3NhZ2VdPVwidHJ1ZVwiXG4gICAgICAgIFtlcnJvck1lc3NhZ2VDb2xvcl09XCIncmVkJ1wiXG4gICAgICAgIFtlcnJvckJvcmRlckNvbG9yXT1cIidyZWQnXCJcbiAgICAgICAgW2Vycm9yUG9zaXRpb25dPVwiJ2JvdHRvbSdcIlxuICAgICAgICBbcGFzc3dvcmRUb2dnbGVdPVwidHJ1ZVwiXG4gICAgICAgIFtjdXN0b21FcnJvck1lc3NhZ2VzXT1cIntcbiAgICAgICAgICBwYXNzd29yZDonbGVuZ3RoIG11c3QgYmUgNSBjaGFyYWN0ZXJzJ1xuICAgICAgICB9XCJcbiAgICAgICAgY2xhc3M9XCJvdXRsaW5lLW5vbmUgZm9jdXMtbm9uZVwiXG4gICAgICA+PC92ZXJiZW5hLWlucHV0PlxuICAgICAgPGRpdiBjbGFzcz1cInB3ZFdyYXBwZXJcIj4gXG4gICAgICAgICAgPHAgY2xhcz1cIm1iLTBcIj4gPGEgW3JvdXRlckxpbmtdPVwiZm9yZ2V0UGFzc3dvcmRMaW5rXCIgY2xhc3M9XCJ7e2ZvcmdldFBhc3N3b3JkQ2xhc3N9fVwiPkZvcmdvdCBwYXNzd29yZDwvYT48L3A+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2PiBcbiAgICAgIDxsaWItYnV0dG9uIFxuICAgICAgW2J1dHRvbkNsYXNzXT1cImJ0bkNsYXNzXCJcbiAgICAgIFtjb2xvcl09XCJidG5Db2xvclwiXG4gICAgICBbYm9yZGVyXT1cImJ0bkJvcmRlclwiXG4gICAgICBbYm9yZGVyUmFkaXVzXT1cImJ0bkJvcmRlclJhZGl1c1wiXG4gICAgICBbYmdDb2xvcl09XCJidG5CZ0NvbG9yXCJcbiAgICAgIFtwZF09XCJidG5QZFwiXG4gICAgICBbdGV4dF09XCJidG5UZXh0XCIgXG4gICAgICB0eXBlPVwic3VibWl0XCIgXG4gICAgICBbZGlzYWJsZWRdPVwiIXRoaXMuY2hlY2tGb3JtKClcIlxuICAgICAgPjwvbGliLWJ1dHRvbj5cbiAgICAgIDxwICpuZ0lmPVwicmVxdWVzdEFjY2Vzc0xpbmtcIj5cbiAgICAgICAgPGEgW3JvdXRlckxpbmtdPVwicmVxdWVzdEFjY2Vzc0xpbmtcIiAgY2xhc3M9XCJ7e3JlcXVlc3RBY2Nlc3NDbGFzc319XCI+Q2xpY2sgaGVyZSB0byByZXF1ZXN0IHVzZXIgYWNjZXNzPC9hPlxuICAgICAgPC9wPlxuICAgICAgPGRpdj4gXG4gICAgICAgIDxkaXYgKm5nSWY9XCJ0aGlzLkF1dGhNZWNoYW5pc21zICE9PSBudWxsICYmIHRoaXMuQXV0aE1lY2hhbmlzbXMubGVuZ3RoXCI+IFxuICAgICAgICAgIDx2ZXJiZW4tby1hdXRoIFxuICAgICAgICAgICAgKGdvb2dsZUNsaWNrKT1cImhhbmRsZUdvb2dsZUF1dGgoKVwiXG4gICAgICAgICAgICAoYXBwbGVDbGljayk9XCJoYW5kbGVBcHBsZUF1dGgoKVwiXG4gICAgICAgICAgPjwvdmVyYmVuLW8tYXV0aD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPHAgY2xhc3M9XCJ7e2NyZWF0ZUFjY291bnRDbGFzc319XCIgKm5nSWY9XCJjcmVhdGVBY2NvdW50TGlua1wiPlxuICAgICAgICAgICAgRG9uJ3QgaGF2ZSBhbiBhY2NvdW50P1xuICAgICAgICAgICAgPGEgW3JvdXRlckxpbmtdPVwiY3JlYXRlQWNjb3VudExpbmtcIiAgY2xhc3M9XCJ7e2NyZWF0ZUFjY291bnRMaW5rQ2xhc3N9fVwiPkNyZWF0ZSBhbiBhY2NvdW50PC9hPlxuICAgICAgICAgIDwvcD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Zvcm0+XG4gIDwvc2VjdGlvbj5cbiAgIl19