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
@@ -0,0 +1,42 @@
1
+ import { HttpClient } from '@angular/common/http';
2
+ import { Inject, Injectable, InjectionToken } from '@angular/core';
3
+ import { UserAccessRequest } from '../../models/user-access-request';
4
+
5
+ export interface ServiceConfig {
6
+ resourceEndpoint: string;
7
+ }
8
+
9
+ export const SERVICE_CONFIG = new InjectionToken<ServiceConfig>(
10
+ 'ServiceConfig'
11
+ );
12
+
13
+ @Injectable()
14
+ export class UserRequestApprovalService {
15
+ // protected readonly baseUrl: string;
16
+ protected readonly resourceEndpoint: string;
17
+
18
+ constructor(
19
+ protected httpClient: HttpClient,
20
+ @Inject(SERVICE_CONFIG) config: ServiceConfig
21
+ ) {
22
+ // this.baseUrl = environment.serviceUrl;
23
+ this.resourceEndpoint = config.resourceEndpoint;
24
+ }
25
+
26
+ getUserRequests() {
27
+ return this.httpClient.get<UserAccessRequest[]>(`${this.resourceEndpoint}`);
28
+ }
29
+
30
+ getUserRequestById(id: number) {
31
+ return this.httpClient.get<UserAccessRequest>(
32
+ `${this.resourceEndpoint}/${id}`
33
+ );
34
+ }
35
+
36
+ processUserReuqests(ids: string[], approval: boolean = true) {
37
+ return this.httpClient.post<UserAccessRequest[]>(
38
+ `${this.resourceEndpoint}`,
39
+ ids
40
+ );
41
+ }
42
+ }
@@ -0,0 +1,91 @@
1
+ /* Container Styles */
2
+ .flex {
3
+ display: flex;
4
+ }
5
+ .items-center{
6
+ align-items: center;
7
+ }
8
+ .overflow-hidden {
9
+ overflow: hidden;
10
+ }
11
+ .justify-center{
12
+ justify-content: center;
13
+ }
14
+ .h-full {
15
+ height: 100%;
16
+ }
17
+
18
+ .text-center{
19
+ text-align: center;
20
+ }
21
+ .underline {
22
+ text-decoration: underline;
23
+ }
24
+ .gap-5{
25
+ gap: 20px;
26
+ }
27
+ /* Space and Gap Utilities */
28
+ .mt-4 {
29
+ margin-top: 1rem;
30
+ }
31
+ .space-y-4 > :not([hidden]) ~ :not([hidden]) {
32
+ margin-top: 1rem;
33
+ }
34
+ .gap-1 > :not([hidden]) ~ :not([hidden]) {
35
+ gap: 0.25rem;
36
+ }
37
+ .pt-3 {
38
+ padding-top: 0.75rem;
39
+ }
40
+ .mt-5 {
41
+ margin-top: 1.25rem;
42
+ }
43
+
44
+ /* Form and Input Styles */
45
+ .border {
46
+ border-width: 1px;
47
+ }
48
+
49
+ .rounded-xl {
50
+ border-radius: 0.75rem;
51
+ }
52
+ .px-3 {
53
+ padding-left: 0.75rem;
54
+ padding-right: 0.75rem;
55
+ }
56
+ .py-3 {
57
+ padding-top: 0.75rem;
58
+ padding-bottom: 0.75rem;
59
+ }
60
+ .flex-col {
61
+ flex-direction: column;
62
+ }
63
+ .w-full {
64
+ width: 100%;
65
+ }
66
+
67
+ .object-cover {
68
+ object-fit: cover;
69
+ }
70
+ .w-full {
71
+ width: 100%;
72
+ }
73
+
74
+ .cursor-not-allowed{
75
+ cursor: not-allowed !important;
76
+ }
77
+ .accent {
78
+ accent-color: #000;
79
+ }
80
+
81
+ .OR{
82
+
83
+ color:#666666;
84
+ gap: 6px;
85
+ }
86
+ .OR span{
87
+ width: 150px;
88
+ border-top: 2px solid #6666663d;
89
+ display: block;
90
+ }
91
+
@@ -0,0 +1,165 @@
1
+ <section [ngStyle]="styles" class="{{ customClass }}">
2
+ <h2 class="{{ headingClass }}">
3
+ {{ headingTitle }}
4
+ </h2>
5
+
6
+ <form
7
+ [formGroup]="userRequestForm"
8
+ (ngSubmit)="submitForm()"
9
+ class="flex flex-col gap-5 mt-3"
10
+ >
11
+ <verbena-input
12
+ [label]="'First Name'"
13
+ [labelColor]="'#666'"
14
+ [placeHolder]="''"
15
+ [required]="true"
16
+ [type]="'text'"
17
+ formControlName="FirstName"
18
+ [showBorder]="true"
19
+ [bgColor]="'white'"
20
+ [border]="'1px solid #66666659'"
21
+ [borderRadius]="'12px'"
22
+ [showErrorMessage]="true"
23
+ [errorMessageColor]="'red'"
24
+ [errorBorderColor]="'red'"
25
+ [errorPosition]="'bottom'"
26
+ class="outline-none focus-none"
27
+ ></verbena-input>
28
+ <verbena-input
29
+ [label]="'Last Name'"
30
+ [labelColor]="'#666'"
31
+ [placeHolder]="''"
32
+ [required]="true"
33
+ [type]="'text'"
34
+ formControlName="LastName"
35
+ [showBorder]="true"
36
+ [bgColor]="'white'"
37
+ [border]="'1px solid #66666659'"
38
+ [borderRadius]="'12px'"
39
+ [showErrorMessage]="true"
40
+ [errorMessageColor]="'red'"
41
+ [errorBorderColor]="'red'"
42
+ [errorPosition]="'bottom'"
43
+ class="outline-none focus-none"
44
+ ></verbena-input>
45
+ <verbena-input
46
+ [label]="'E-mail Address'"
47
+ [labelColor]="'#666'"
48
+ [placeHolder]="''"
49
+ [required]="true"
50
+ [type]="'email'"
51
+ formControlName="Email"
52
+ [showBorder]="true"
53
+ [bgColor]="'white'"
54
+ [border]="'1px solid #66666659'"
55
+ [borderRadius]="'12px'"
56
+ [showErrorMessage]="true"
57
+ [customErrorMessages]="{
58
+ required: 'Email address is required',
59
+ email: 'Email address must be valid'
60
+ }"
61
+ [errorMessageColor]="'red'"
62
+ [errorBorderColor]="'red'"
63
+ [errorPosition]="'bottom'"
64
+ class="outline-none focus-none"
65
+ ></verbena-input>
66
+
67
+ <verbena-input
68
+ [label]="'Password'"
69
+ [labelColor]="'#666'"
70
+ [placeHolder]="''"
71
+ [passwordToggle]="true"
72
+ formControlName="Password"
73
+ [required]="true"
74
+ [type]="'password'"
75
+ [showBorder]="true"
76
+ [bgColor]="'white'"
77
+ [border]="'1px solid #66666659'"
78
+ [borderRadius]="'12px'"
79
+ [showErrorMessage]="true"
80
+ [errorMessageColor]="'red'"
81
+ [errorBorderColor]="'red'"
82
+ [errorPosition]="'bottom'"
83
+ class="outline-none focus-none"
84
+ ></verbena-input>
85
+
86
+ <verbena-input
87
+ [label]="'Confirm Password'"
88
+ [labelColor]="'#666'"
89
+ [placeHolder]="''"
90
+ [required]="true"
91
+ [type]="'password'"
92
+ formControlName="ConfirmPassword"
93
+ [showBorder]="true"
94
+ [passwordToggle]="true"
95
+ [bgColor]="'white'"
96
+ [minLength]="userRequestForm.controls['Password'].value?.length"
97
+ [border]="'1px solid #66666659'"
98
+ [borderRadius]="'12px'"
99
+ [showErrorMessage]="true"
100
+ [errorMessageColor]="'red'"
101
+ [customErrorMessages]="{
102
+ minLength:'Confirm Password must match password',
103
+ required: 'Confirm Password is required and must match password',
104
+ password: 'Password does not match',
105
+ }"
106
+ [errorBorderColor]="'red'"
107
+ [errorPosition]="'bottom'"
108
+ class="outline-none focus-none"
109
+ ></verbena-input>
110
+
111
+ <verbena-button
112
+ [class]="'mt-6'"
113
+ [disable]="!this.checkForm()"
114
+ [text]="text"
115
+ [bgColor]="btnBgColor"
116
+ [textColor]="color"
117
+ [buttonClass]="'cursor-not-allowed'"
118
+ [border]="btnBorder"
119
+ [borderRadius]="btnBorderRadius"
120
+ [pd]="btnPd"
121
+ [ngClass]="{
122
+ 'cursor-not-allowed':!checkForm()
123
+ }"
124
+ [width]="btnWidth"
125
+ buttonClass="font-medium text-[22px] leading-[33px]"
126
+ ></verbena-button>
127
+ <div class="flex justify-center items-center OR">
128
+ <span></span>
129
+ OR
130
+ <span></span>
131
+ </div>
132
+
133
+ <verbena-button
134
+ svg="google-logo"
135
+ [svgHeight]="24"
136
+ [svgWidth]="24"
137
+ (click)="handleGoogleAuth()"
138
+ text="Continue with Google"
139
+ bgColor="white"
140
+ textColor="black"
141
+ border="1px solid #333"
142
+ borderRadius="40px"
143
+ pd="10px 20px"
144
+ width="100%"
145
+ svgPosition="left"
146
+ buttonClass="font-normal text-[24px] leading-[29.05px] text-[#333]"
147
+ ></verbena-button>
148
+
149
+ <verbena-button
150
+ svg="apple-logo"
151
+ (click)="handleAppleAuth()"
152
+ [svgHeight]="24"
153
+ [svgWidth]="24"
154
+ text="Continue with Apple"
155
+ bgColor="white"
156
+ textColor="black"
157
+ border="1px solid #333"
158
+ borderRadius="40px"
159
+ pd="10px 20px"
160
+ width="100%"
161
+ svgPosition="left"
162
+ buttonClass="font-normal text-[24px] leading-[29.05px] text-[#333] mt-2"
163
+ ></verbena-button>
164
+ </form>
165
+ </section>
@@ -0,0 +1,23 @@
1
+ import { ComponentFixture, TestBed } from '@angular/core/testing';
2
+
3
+ import { UserRequestComponent } from './user-request.component';
4
+
5
+ describe('UserRequestComponent', () => {
6
+ let component: UserRequestComponent;
7
+ let fixture: ComponentFixture<UserRequestComponent>;
8
+
9
+ beforeEach(async () => {
10
+ await TestBed.configureTestingModule({
11
+ imports: [UserRequestComponent]
12
+ })
13
+ .compileComponents();
14
+
15
+ fixture = TestBed.createComponent(UserRequestComponent);
16
+ component = fixture.componentInstance;
17
+ fixture.detectChanges();
18
+ });
19
+
20
+ it('should create', () => {
21
+ expect(component).toBeTruthy();
22
+ });
23
+ });
@@ -0,0 +1,167 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import {
3
+ AbstractControl,
4
+ FormBuilder,
5
+ FormGroup,
6
+ ValidationErrors,
7
+ Validators,
8
+ } from '@angular/forms';
9
+ import { HttpWebRequestService } from '../../services/http-web-request.service';
10
+ import {UserRequestPayload } from '../../models/UserRequest';
11
+ import { ObjectState } from '../../models/object-state';
12
+ import { UtilService } from '../../services/util.service';
13
+ import { ResponseKeyValue } from '../../models/ResponseKeyValue';
14
+ import { ErrorResponse } from '../../models/ErrorResponse';
15
+ import { Status } from '../../models/status';
16
+ import { RequestStatus } from '../../models/request-status';
17
+ import { EnvironmentService } from '../../services/environment.service';
18
+ @Component({
19
+ selector: 'lib-user-request',
20
+ templateUrl: './user-request.component.html',
21
+ styleUrls: ['./user-request.component.css'],
22
+ })
23
+ export class UserRequestComponent {
24
+ @Input() width: string = '500px';
25
+ @Input() headingTitle: string = 'Request an account';
26
+ @Input() headingClass: string =
27
+ 'font-medium text-[2rem] leading-[48px] text-[#333]';
28
+ @Input() customClass: string = '';
29
+ @Input() bgColor: string = '#fff';
30
+ @Input() boxShadow: string = '4px 4px 4px rgba(0, 0, 0, 0.25)';
31
+ @Input() border: string = '1px solid #66666680';
32
+ @Input() borderRadius: string = '24px';
33
+ @Input() textColor: string = '#333';
34
+ @Input() height: string = 'auto';
35
+ @Input() pd: string = '32px 48px';
36
+ apiKey:string=''
37
+ // Button Inputs
38
+ @Input() text: string = 'Send Request';
39
+ @Input() color: string = 'black';
40
+ @Input() btnBorder: string = '1px solid #FFE681';
41
+ @Input() btnBorderRadius: string = '40px';
42
+ @Input() btnBgColor: string = '#FFE681';
43
+ @Input() btnWidth: string = '100%';
44
+ @Input() btnPd: string = '10px 20px';
45
+ @Input() termsLink: string = '';
46
+ @Input() privacyLink: string = '';
47
+ @Input() routerLink: string = '';
48
+ @Output() formSubmit = new EventEmitter<UserRequestPayload[]>();
49
+ @Output() googleClick = new EventEmitter();
50
+ @Output() onSubmitSuccess = new EventEmitter<any>();
51
+ @Output() appleClick = new EventEmitter();
52
+ @Output() onSubmitResponseEnd: EventEmitter<any> = new EventEmitter();
53
+ userRequestForm: FormGroup;
54
+
55
+ constructor(
56
+ private fb: FormBuilder,
57
+ private server: HttpWebRequestService,
58
+ private utilService: UtilService,
59
+ private envSvc: EnvironmentService,
60
+ ) {
61
+ this.apiKey = this.envSvc.environment.APIKey
62
+ this.userRequestForm = this.fb.group(
63
+ {
64
+ FirstName: [null, [Validators.required]],
65
+ LastName: [null, [Validators.required]],
66
+ Email: [null, [Validators.required, Validators.email]],
67
+ Password: [null, [Validators.required, Validators.minLength(8)]],
68
+ ConfirmPassword: [null, [Validators.required]],
69
+ },
70
+ { validators: this.passwordMatchValidator }
71
+ );
72
+ }
73
+ passwordMatchValidator(control: AbstractControl): ValidationErrors | null {
74
+ const password = control.get('Password')?.value;
75
+ const confirmPassword = control.get('ConfirmPassword')?.value;
76
+
77
+ return password === confirmPassword ? null : { passwordMismatch: true };
78
+ }
79
+
80
+ get passwordMismatchError(): boolean {
81
+ return this.userRequestForm.hasError('passwordMismatch');
82
+ }
83
+ get styles() {
84
+ return {
85
+ 'background-color': this.bgColor,
86
+ 'box-shadow': this.boxShadow,
87
+ border: this.border,
88
+ 'border-radius': this.borderRadius,
89
+ color: this.textColor,
90
+ 'max-width': this.width,
91
+ height: this.height,
92
+ padding: this.pd,
93
+ };
94
+ }
95
+ checkForm(): boolean {
96
+ return this.userRequestForm.valid;
97
+ }
98
+ handleGoogleAuth() {
99
+ this.googleClick.emit();
100
+ }
101
+ handleAppleAuth() {
102
+ this.appleClick.emit();
103
+ }
104
+ async submitForm() {
105
+ if (!this.checkForm()) {
106
+ return;
107
+ }
108
+
109
+ const payload: UserRequestPayload[] = [
110
+ {
111
+ Code: '',
112
+ FirstName: this.userRequestForm.controls['FirstName'].value,
113
+ LastName: this.userRequestForm.controls['LastName'].value,
114
+ MailAddress: this.userRequestForm.controls['Email'].value,
115
+ Password: this.userRequestForm.controls['Password'].value,
116
+ PhoneNumber: '',
117
+ OtherName: '',
118
+ Role: [],
119
+ Tags: [],
120
+ Status: Status.Active,
121
+ RequestStatus: RequestStatus.Pending,
122
+ UpdatedAt: new Date(),
123
+ CreatedAt: new Date(),
124
+ Id: '',
125
+ DataState: ObjectState.New,
126
+ TenantId: '',
127
+ ServiceName: '',
128
+ ActionBy: '',
129
+ Comment: '',
130
+ },
131
+ ];
132
+
133
+ // Emit payload if needed
134
+ this.formSubmit.emit(payload);
135
+
136
+ // Show loading indicator
137
+ this.utilService.sendBI(true);
138
+
139
+ try {
140
+ // Make the API call
141
+ const res = await this.server.post(`User/SaveUserAccessRequests`, payload);
142
+
143
+ // Hide loading indicator
144
+ this.utilService.sendBI(false);
145
+
146
+ if (res instanceof ErrorResponse) {
147
+ // Emit error response
148
+ this.onSubmitResponseEnd.emit(res);
149
+ console.log(res);
150
+ } else {
151
+ // Emit success response
152
+ const result = res as ResponseKeyValue;
153
+ this.onSubmitResponseEnd.emit(result);
154
+
155
+ // Emit success event
156
+ this.onSubmitSuccess.emit(result);
157
+
158
+ }
159
+ } catch (error) {
160
+ // Handle unexpected errors
161
+ this.utilService.sendBI(false);
162
+ console.error('Unexpected error:', error);
163
+ this.onSubmitResponseEnd.emit(error);
164
+ }
165
+ }
166
+
167
+ }
@@ -0,0 +1,18 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { FormsModule, ReactiveFormsModule } from '@angular/forms';
3
+ import { VerbenaButtonModule, VerbenaInputModule } from 'verben-ng-ui';
4
+ import { CommonModule } from '@angular/common';
5
+ import { UserRequestComponent } from './user-request.component';
6
+
7
+ @NgModule({
8
+ declarations: [UserRequestComponent],
9
+ imports: [
10
+ FormsModule,
11
+ ReactiveFormsModule,
12
+ VerbenaInputModule,
13
+ VerbenaButtonModule,
14
+ CommonModule,
15
+ ],
16
+ exports: [UserRequestComponent],
17
+ })
18
+ export class UserRequestModule {}
@@ -0,0 +1,26 @@
1
+ import { ColumnDefinition } from 'verben-ng-ui';
2
+ import { UserAccessRequest } from '../../models/user-access-request';
3
+
4
+ export const columns: ColumnDefinition<UserAccessRequest>[] = [
5
+ {
6
+ id: 'createdAt',
7
+ header: 'Created',
8
+ accessorKey: 'CreatedAt',
9
+ },
10
+ {
11
+ id: 'user',
12
+ header: 'Name',
13
+ accessorFn: (row) => `${row.FirstName} ${row.LastName}`,
14
+ },
15
+ {
16
+ id: 'mail',
17
+ header: 'E-Mail',
18
+ accessorKey: 'MailAddress',
19
+ },
20
+ {
21
+ id: 'phone',
22
+ header: 'Phone Number',
23
+ accessorKey: 'PhoneNumber',
24
+ },
25
+ { id: 'actions', header: 'Actions', accessorKey: 'MailAddress' },
26
+ ];
@@ -0,0 +1,52 @@
1
+ export const baseStyle: any = {
2
+ width: '100%',
3
+ fontFamily: '"Fraunces", serif',
4
+ fontSize: '125%',
5
+ whiteSpace: 'nowrap',
6
+ margin: '0',
7
+ border: '1px solid #D4A007',
8
+ borderRadius: '16px',
9
+ borderCollapse: 'separate',
10
+ borderSpacing: '0',
11
+ tableLayout: 'fixed',
12
+ overflow: 'hidden',
13
+ rows: {
14
+ even: {
15
+ backgroundColor: '#FDFDFD',
16
+ },
17
+ odd: {
18
+ backgroundColor: '#F1F4FB',
19
+ },
20
+ height: '68px',
21
+ },
22
+ cells: {
23
+ padding: '0.5rem 1rem',
24
+ },
25
+ header: {
26
+ // stickyTop: true,
27
+ // zIndex: 2,
28
+ backgroundColor: '#EFF2FB',
29
+ fontWeight: 'bold',
30
+ textAlign: 'left',
31
+ padding: '12px 16px',
32
+ height: '40px',
33
+ },
34
+ footer: {
35
+ // stickyBottom: true,
36
+ // zIndex: 2,
37
+ padding: '3px',
38
+ },
39
+ // body: {
40
+ // background: '#fff',
41
+ // padding: '4px 5px',
42
+ // textAlign: 'center',
43
+ // },
44
+ // firstColumn: {
45
+ // stickyLeft: true,
46
+ // zIndex: 1,
47
+ // },
48
+ lastColumn: {
49
+ // stickyRight: true,
50
+ // zIndex: 1,
51
+ },
52
+ };