verben-authentication-ui 1.0.2 → 1.0.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 (434) hide show
  1. package/ng-package.json +8 -0
  2. package/package.json +10 -15
  3. package/src/lib/base/base-data.component.ts +86 -0
  4. package/src/lib/base/base-data.facade.ts +157 -0
  5. package/src/lib/base/base-data.service.ts +49 -0
  6. package/src/lib/base/base-data.state.ts +94 -0
  7. package/src/lib/base/models.ts +14 -0
  8. package/src/lib/components/auth-callback/auth-callback.component.css +30 -0
  9. package/src/lib/components/auth-callback/auth-callback.component.html +6 -0
  10. package/src/lib/components/auth-callback/auth-callback.component.spec.ts +23 -0
  11. package/src/lib/components/auth-callback/auth-callback.component.ts +56 -0
  12. package/src/lib/components/auth-callback/auth-callback.module.ts +10 -0
  13. package/src/lib/components/button/button.component.css +3 -0
  14. package/src/lib/components/button/button.component.html +13 -0
  15. package/src/lib/components/button/button.component.spec.ts +23 -0
  16. package/src/lib/components/button/button.component.ts +24 -0
  17. package/src/lib/components/button/button.module.ts +11 -0
  18. package/{lib/components/forgot-password/ForgotPasswordData.d.ts → src/lib/components/forgot-password/ForgotPasswordData.ts} +1 -1
  19. package/src/lib/components/forgot-password/forgot-password.component.css +46 -0
  20. package/src/lib/components/forgot-password/forgot-password.component.html +19 -0
  21. package/src/lib/components/forgot-password/forgot-password.component.spec.ts +23 -0
  22. package/src/lib/components/forgot-password/forgot-password.component.ts +88 -0
  23. package/src/lib/components/forgot-password/forgot-password.module.ts +18 -0
  24. package/src/lib/components/mail/mail.component.css +0 -0
  25. package/src/lib/components/mail/mail.component.html +11 -0
  26. package/src/lib/components/mail/mail.component.spec.ts +23 -0
  27. package/src/lib/components/mail/mail.component.ts +47 -0
  28. package/src/lib/components/mail/mail.module.ts +13 -0
  29. package/src/lib/components/mail-validation/mail-validation.component.css +59 -0
  30. package/src/lib/components/mail-validation/mail-validation.component.html +37 -0
  31. package/src/lib/components/mail-validation/mail-validation.component.spec.ts +23 -0
  32. package/src/lib/components/mail-validation/mail-validation.component.ts +66 -0
  33. package/src/lib/components/mail-validation/mail-validation.module.ts +18 -0
  34. package/src/lib/components/o-auth/o-auth.component.css +26 -0
  35. package/src/lib/components/o-auth/o-auth.component.html +26 -0
  36. package/src/lib/components/o-auth/o-auth.component.spec.ts +23 -0
  37. package/src/lib/components/o-auth/o-auth.component.ts +115 -0
  38. package/src/lib/components/o-auth/o-auth.module.ts +11 -0
  39. package/src/lib/components/otp-input/otp-input.component.css +19 -0
  40. package/src/lib/components/otp-input/otp-input.component.html +15 -0
  41. package/src/lib/components/otp-input/otp-input.component.spec.ts +23 -0
  42. package/src/lib/components/otp-input/otp-input.component.ts +88 -0
  43. package/src/lib/components/otp-input/otp-input.module.ts +15 -0
  44. package/src/lib/components/reset-password/ResetPasswordData.ts +5 -0
  45. package/src/lib/components/reset-password/reset-password.component.css +29 -0
  46. package/src/lib/components/reset-password/reset-password.component.html +24 -0
  47. package/src/lib/components/reset-password/reset-password.component.spec.ts +23 -0
  48. package/src/lib/components/reset-password/reset-password.component.ts +108 -0
  49. package/src/lib/components/reset-password/reset-password.module.ts +18 -0
  50. package/src/lib/components/role-control/ChildrenType.ts +4 -0
  51. package/{lib/components/role-control/MappedRole.d.ts → src/lib/components/role-control/MappedRole.ts} +3 -2
  52. package/{lib/components/role-control/MappedRoleAction.d.ts → src/lib/components/role-control/MappedRoleAction.ts} +2 -1
  53. package/{lib/components/role-control/MappedRoleContext.d.ts → src/lib/components/role-control/MappedRoleContext.ts} +4 -3
  54. package/src/lib/components/role-control/UIActions.ts +5 -0
  55. package/src/lib/components/role-control/UIs.ts +38 -0
  56. package/src/lib/components/role-control/base-table-style.ts +52 -0
  57. package/src/lib/components/role-control/role-control.component.css +55 -0
  58. package/src/lib/components/role-control/role-control.component.html +571 -0
  59. package/src/lib/components/role-control/role-control.component.spec.ts +23 -0
  60. package/src/lib/components/role-control/role-control.component.ts +1817 -0
  61. package/src/lib/components/role-control/role-control.module.ts +10 -0
  62. package/src/lib/components/role-control/role-control.service.spec.ts +16 -0
  63. package/src/lib/components/role-control/role-control.service.ts +53 -0
  64. package/src/lib/components/sign-in/sign-in.component.css +21 -0
  65. package/src/lib/components/sign-in/sign-in.component.html +83 -0
  66. package/src/lib/components/sign-in/sign-in.component.spec.ts +23 -0
  67. package/src/lib/components/sign-in/sign-in.component.ts +267 -0
  68. package/src/lib/components/sign-in/sign-in.module.ts +17 -0
  69. package/src/lib/components/sign-up/sign-up.component.css +36 -0
  70. package/src/lib/components/sign-up/sign-up.component.html +132 -0
  71. package/src/lib/components/sign-up/sign-up.component.spec.ts +23 -0
  72. package/src/lib/components/sign-up/sign-up.component.ts +180 -0
  73. package/src/lib/components/sign-up/sign-up.module.ts +15 -0
  74. package/src/lib/components/sso/base-table-style.ts +52 -0
  75. package/src/lib/components/sso/helper.ts +17 -0
  76. package/src/lib/components/sso/sso-form/sso-form.component.css +13 -0
  77. package/src/lib/components/sso/sso-form/sso-form.component.html +109 -0
  78. package/src/lib/components/sso/sso-form/sso-form.component.spec.ts +23 -0
  79. package/src/lib/components/sso/sso-form/sso-form.component.ts +70 -0
  80. package/src/lib/components/sso/sso.columns.ts +32 -0
  81. package/src/lib/components/sso/sso.component.css +47 -0
  82. package/src/lib/components/sso/sso.component.html +208 -0
  83. package/src/lib/components/sso/sso.component.spec.ts +23 -0
  84. package/src/lib/components/sso/sso.component.ts +261 -0
  85. package/src/lib/components/sso/sso.module.ts +40 -0
  86. package/src/lib/components/two-factor-auth-otp/two-factor-auth-otp.component.css +8 -0
  87. package/src/lib/components/two-factor-auth-otp/two-factor-auth-otp.component.html +30 -0
  88. package/src/lib/components/two-factor-auth-otp/two-factor-auth-otp.component.spec.ts +23 -0
  89. package/src/lib/components/two-factor-auth-otp/two-factor-auth-otp.component.ts +155 -0
  90. package/src/lib/components/two-factor-auth-otp/two-factor-auth-otp.module.ts +15 -0
  91. package/src/lib/components/two-factor-auth-setup/two-factor-auth-setup.component.css +17 -0
  92. package/src/lib/components/two-factor-auth-setup/two-factor-auth-setup.component.html +45 -0
  93. package/src/lib/components/two-factor-auth-setup/two-factor-auth-setup.component.spec.ts +23 -0
  94. package/src/lib/components/two-factor-auth-setup/two-factor-auth-setup.component.ts +57 -0
  95. package/src/lib/components/two-factor-auth-setup/two-factor-auth-setup.module.ts +11 -0
  96. package/src/lib/components/user-management/base-table-style.ts +52 -0
  97. package/src/lib/components/user-management/facades/user-management.facades.ts +133 -0
  98. package/src/lib/components/user-management/helper.ts +38 -0
  99. package/src/lib/components/user-management/index.ts +4 -0
  100. package/src/lib/components/user-management/services/user-management.service.spec.ts +16 -0
  101. package/src/lib/components/user-management/services/user-management.service.ts +111 -0
  102. package/src/lib/components/user-management/states/user-management.state.ts +65 -0
  103. package/src/lib/components/user-management/user-management-form/use-management-form.component.ts +73 -0
  104. package/src/lib/components/user-management/user-management-form/user-management-form.component.css +0 -0
  105. package/src/lib/components/user-management/user-management-form/user-management-form.component.html +80 -0
  106. package/src/lib/components/user-management/user-management-form/user-management-form.component.spec.ts +23 -0
  107. package/src/lib/components/user-management/user-management.columns.ts +51 -0
  108. package/src/lib/components/user-management/user-management.component.css +31 -0
  109. package/src/lib/components/user-management/user-management.component.html +319 -0
  110. package/src/lib/components/user-management/user-management.component.spec.ts +23 -0
  111. package/src/lib/components/user-management/user-management.component.ts +604 -0
  112. package/src/lib/components/user-management/user-management.module.ts +56 -0
  113. package/src/lib/components/user-management/user-status-badge/user-status-badge.component.css +0 -0
  114. package/src/lib/components/user-management/user-status-badge/user-status-badge.component.html +8 -0
  115. package/src/lib/components/user-management/user-status-badge/user-status-badge.component.spec.ts +22 -0
  116. package/src/lib/components/user-management/user-status-badge/user-status-badge.component.ts +22 -0
  117. package/src/lib/components/user-request/user-request.component.css +91 -0
  118. package/src/lib/components/user-request/user-request.component.html +137 -0
  119. package/src/lib/components/user-request/user-request.component.spec.ts +23 -0
  120. package/src/lib/components/user-request/user-request.component.ts +306 -0
  121. package/src/lib/components/user-request/user-request.module.ts +20 -0
  122. package/src/lib/components/user-request-approval/access-request.columns.ts +31 -0
  123. package/src/lib/components/user-request-approval/base-table-style.ts +52 -0
  124. package/src/lib/components/user-request-approval/facades/user-access-request.facade.ts +324 -0
  125. package/src/lib/components/user-request-approval/helper.ts +61 -0
  126. package/src/lib/components/user-request-approval/services/user-access-request.service.spec.ts +16 -0
  127. package/src/lib/components/user-request-approval/services/user-access-request.service.ts +122 -0
  128. package/src/lib/components/user-request-approval/states/user-access-request.state.ts +109 -0
  129. package/src/lib/components/user-request-approval/user-access-request-status-badge/user-access-request-status-badge.component.css +0 -0
  130. package/src/lib/components/user-request-approval/user-access-request-status-badge/user-access-request-status-badge.component.html +8 -0
  131. package/src/lib/components/user-request-approval/user-access-request-status-badge/user-access-request-status-badge.component.spec.ts +23 -0
  132. package/src/lib/components/user-request-approval/user-access-request-status-badge/user-access-request-status-badge.component.ts +22 -0
  133. package/src/lib/components/user-request-approval/user-request-approval.component.css +6 -0
  134. package/src/lib/components/user-request-approval/user-request-approval.component.html +269 -0
  135. package/src/lib/components/user-request-approval/user-request-approval.component.spec.ts +23 -0
  136. package/src/lib/components/user-request-approval/user-request-approval.component.ts +326 -0
  137. package/src/lib/components/user-request-approval/user-request-approval.module.ts +54 -0
  138. package/src/lib/components/user-request-approval/user-request-form/use-request-form.component.ts +98 -0
  139. package/src/lib/components/user-request-approval/user-request-form/user-request-form.component.css +0 -0
  140. package/src/lib/components/user-request-approval/user-request-form/user-request-form.component.html +94 -0
  141. package/src/lib/components/user-request-approval/user-request-form/user-request-form.component.spec.ts +23 -0
  142. package/src/lib/components/user-request-process/user-request-process.component.css +0 -0
  143. package/src/lib/components/user-request-process/user-request-process.component.html +1 -0
  144. package/src/lib/components/user-request-process/user-request-process.component.spec.ts +23 -0
  145. package/src/lib/components/user-request-process/user-request-process.component.ts +12 -0
  146. package/src/lib/components/user-request-process/user-request-process.module.ts +12 -0
  147. package/src/lib/models/ApplicationRoleAction.ts +10 -0
  148. package/{lib/models/ApplicationRoleContext.d.ts → src/lib/models/ApplicationRoleContext copy.ts } +6 -5
  149. package/src/lib/models/ApplicationRoleContext.ts +10 -0
  150. package/src/lib/models/ErrorResponse.ts +7 -0
  151. package/src/lib/models/FilterTypes.ts +8 -0
  152. package/src/lib/models/MailConfig.ts +13 -0
  153. package/src/lib/models/MessageConfig.ts +5 -0
  154. package/src/lib/models/MessageMedium.ts +4 -0
  155. package/src/lib/models/OAuthParam.ts +10 -0
  156. package/src/lib/models/OAuthType.ts +7 -0
  157. package/src/lib/models/PagedResult.ts +9 -0
  158. package/src/lib/models/PasswordRequestParam.ts +5 -0
  159. package/src/lib/models/PeriodMode.ts +10 -0
  160. package/{lib/models/PermissionConfig.d.ts → src/lib/models/PermissionConfig.ts} +4 -3
  161. package/src/lib/models/ReportSchedule.ts +23 -0
  162. package/src/lib/models/ReportType.ts +5 -0
  163. package/src/lib/models/ResponseKeyValue.ts +5 -0
  164. package/{lib/models/Role.d.ts → src/lib/models/Role.ts} +6 -5
  165. package/src/lib/models/RoleAction.ts +11 -0
  166. package/src/lib/models/RoleContext.ts +11 -0
  167. package/src/lib/models/SMSConfig.ts +11 -0
  168. package/{lib/models/SearchDynamicWrapper.d.ts → src/lib/models/SearchDynamicWrapper.ts} +3 -2
  169. package/src/lib/models/SearchOperator.ts +4 -0
  170. package/src/lib/models/SearchPropertySign.ts +9 -0
  171. package/{lib/models/SearchPropertyValue.d.ts → src/lib/models/SearchPropertyValue.ts} +7 -6
  172. package/src/lib/models/SearchPropertyValueType.ts +9 -0
  173. package/src/lib/models/SortDirection.ts +5 -0
  174. package/{lib/models/Tag.d.ts → src/lib/models/Tag.ts} +4 -3
  175. package/src/lib/models/TaskNotification.ts +14 -0
  176. package/src/lib/models/TaskNotificationMessageType.ts +4 -0
  177. package/src/lib/models/TaskNotificationType.ts +4 -0
  178. package/src/lib/models/Tenant.ts +22 -0
  179. package/src/lib/models/TenantConfig.ts +19 -0
  180. package/src/lib/models/UserRequest.ts +38 -0
  181. package/src/lib/models/auth-mechanism.ts +15 -0
  182. package/src/lib/models/base.ts +13 -0
  183. package/src/lib/models/conditions.ts +11 -0
  184. package/src/lib/models/log-in.ts +8 -0
  185. package/{lib/models/mainUser.d.ts → src/lib/models/mainUser.ts} +3 -2
  186. package/src/lib/models/oauth-resp.ts +6 -0
  187. package/{lib/models/oauth-response.d.ts → src/lib/models/oauth-response.ts} +1 -1
  188. package/src/lib/models/object-state.ts +6 -0
  189. package/{lib/models/otpValue.d.ts → src/lib/models/otpValue.ts} +4 -2
  190. package/src/lib/models/paged.ts +9 -0
  191. package/src/lib/models/query-params.ts +9 -0
  192. package/src/lib/models/request-status.ts +4 -0
  193. package/src/lib/models/resend-otp-data.ts +8 -0
  194. package/src/lib/models/resource.ts +27 -0
  195. package/src/lib/models/sign-up.ts +11 -0
  196. package/src/lib/models/single-sign-on.ts +9 -0
  197. package/src/lib/models/status.ts +5 -0
  198. package/src/lib/models/user-access-request-status.ts +5 -0
  199. package/{lib/models/user-access-request.d.ts → src/lib/models/user-access-request.ts} +5 -4
  200. package/src/lib/models/user-object-state.ts +6 -0
  201. package/src/lib/models/user.ts +19 -0
  202. package/src/lib/pipes/async-label.pipe.spec.ts +8 -0
  203. package/src/lib/pipes/async-label.pipe.ts +20 -0
  204. package/src/lib/services/authorization.service.spec.ts +16 -0
  205. package/src/lib/services/authorization.service.ts +24 -0
  206. package/src/lib/services/encryption.service.ts +57 -0
  207. package/src/lib/services/environment.service.spec.ts +16 -0
  208. package/src/lib/services/environment.service.ts +30 -0
  209. package/src/lib/services/http-web-request.service.spec.ts +16 -0
  210. package/src/lib/services/http-web-request.service.ts +114 -0
  211. package/src/lib/services/label.service.spec.ts +16 -0
  212. package/src/lib/services/label.service.ts +177 -0
  213. package/src/lib/services/util.service.spec.ts +16 -0
  214. package/src/lib/services/util.service.ts +49 -0
  215. package/src/lib/shared/shared.module.ts +55 -0
  216. package/{public-api.d.ts → src/public-api.ts} +24 -0
  217. package/src/styles.css +96 -0
  218. package/src/theme/tailwind-setup.css +3 -0
  219. package/src/theme/tailwind.css +1030 -0
  220. package/src/utils/components/base-data-view.component.ts +131 -0
  221. package/src/utils/models/DataViewConfig.ts +19 -0
  222. package/tailwind.config.js +20 -0
  223. package/tsconfig.lib.json +15 -0
  224. package/tsconfig.lib.prod.json +11 -0
  225. package/tsconfig.spec.json +15 -0
  226. package/esm2022/lib/components/auth-callback/auth-callback.component.mjs +0 -57
  227. package/esm2022/lib/components/auth-callback/auth-callback.module.mjs +0 -18
  228. package/esm2022/lib/components/button/button.component.mjs +0 -46
  229. package/esm2022/lib/components/button/button.module.mjs +0 -20
  230. package/esm2022/lib/components/forgot-password/ForgotPasswordData.mjs +0 -2
  231. package/esm2022/lib/components/forgot-password/forgot-password.component.mjs +0 -89
  232. package/esm2022/lib/components/forgot-password/forgot-password.module.mjs +0 -34
  233. package/esm2022/lib/components/mail/mail.component.mjs +0 -69
  234. package/esm2022/lib/components/mail/mail.module.mjs +0 -21
  235. package/esm2022/lib/components/mail-validation/mail-validation.component.mjs +0 -108
  236. package/esm2022/lib/components/mail-validation/mail-validation.module.mjs +0 -34
  237. package/esm2022/lib/components/o-auth/o-auth.component.mjs +0 -107
  238. package/esm2022/lib/components/o-auth/o-auth.module.mjs +0 -19
  239. package/esm2022/lib/components/otp-input/otp-input.component.mjs +0 -86
  240. package/esm2022/lib/components/otp-input/otp-input.module.mjs +0 -23
  241. package/esm2022/lib/components/reset-password/ResetPasswordData.mjs +0 -2
  242. package/esm2022/lib/components/reset-password/reset-password.component.mjs +0 -108
  243. package/esm2022/lib/components/reset-password/reset-password.module.mjs +0 -34
  244. package/esm2022/lib/components/role-control/ChildrenType.mjs +0 -6
  245. package/esm2022/lib/components/role-control/MappedRole.mjs +0 -2
  246. package/esm2022/lib/components/role-control/MappedRoleAction.mjs +0 -2
  247. package/esm2022/lib/components/role-control/MappedRoleContext.mjs +0 -2
  248. package/esm2022/lib/components/role-control/UIActions.mjs +0 -7
  249. package/esm2022/lib/components/role-control/UIs.mjs +0 -40
  250. package/esm2022/lib/components/role-control/base-table-style.mjs +0 -53
  251. package/esm2022/lib/components/role-control/role-control.component.mjs +0 -1364
  252. package/esm2022/lib/components/role-control/role-control.module.mjs +0 -18
  253. package/esm2022/lib/components/role-control/role-control.service.mjs +0 -54
  254. package/esm2022/lib/components/sign-in/sign-in.component.mjs +0 -318
  255. package/esm2022/lib/components/sign-in/sign-in.module.mjs +0 -24
  256. package/esm2022/lib/components/sign-up/sign-up.component.mjs +0 -229
  257. package/esm2022/lib/components/sign-up/sign-up.module.mjs +0 -24
  258. package/esm2022/lib/components/sso/base-table-style.mjs +0 -53
  259. package/esm2022/lib/components/sso/helper.mjs +0 -16
  260. package/esm2022/lib/components/sso/sso-form/sso-form.component.mjs +0 -74
  261. package/esm2022/lib/components/sso/sso.columns.mjs +0 -29
  262. package/esm2022/lib/components/sso/sso.component.mjs +0 -236
  263. package/esm2022/lib/components/sso/sso.module.mjs +0 -63
  264. package/esm2022/lib/components/two-factor-auth-otp/two-factor-auth-otp.component.mjs +0 -209
  265. package/esm2022/lib/components/two-factor-auth-otp/two-factor-auth-otp.module.mjs +0 -22
  266. package/esm2022/lib/components/two-factor-auth-setup/two-factor-auth-setup.component.mjs +0 -90
  267. package/esm2022/lib/components/two-factor-auth-setup/two-factor-auth-setup.module.mjs +0 -19
  268. package/esm2022/lib/components/user-management/base-table-style.mjs +0 -53
  269. package/esm2022/lib/components/user-management/services/user-management.service.mjs +0 -88
  270. package/esm2022/lib/components/user-management/user-management-form/use-management-form.component.mjs +0 -71
  271. package/esm2022/lib/components/user-management/user-management.columns.mjs +0 -47
  272. package/esm2022/lib/components/user-management/user-management.component.mjs +0 -475
  273. package/esm2022/lib/components/user-management/user-management.module.mjs +0 -79
  274. package/esm2022/lib/components/user-management/user-status-badge/user-status-badge.component.mjs +0 -26
  275. package/esm2022/lib/components/user-request/user-request.component.mjs +0 -320
  276. package/esm2022/lib/components/user-request/user-request.module.mjs +0 -38
  277. package/esm2022/lib/components/user-request-approval/access-request.columns.mjs +0 -29
  278. package/esm2022/lib/components/user-request-approval/base-table-style.mjs +0 -53
  279. package/esm2022/lib/components/user-request-approval/facades/user-access-request.facade.mjs +0 -260
  280. package/esm2022/lib/components/user-request-approval/helper.mjs +0 -56
  281. package/esm2022/lib/components/user-request-approval/services/user-access-request.service.mjs +0 -93
  282. package/esm2022/lib/components/user-request-approval/states/user-access-request.state.mjs +0 -92
  283. package/esm2022/lib/components/user-request-approval/user-access-request-status-badge/user-access-request-status-badge.component.mjs +0 -26
  284. package/esm2022/lib/components/user-request-approval/user-request-approval.component.mjs +0 -270
  285. package/esm2022/lib/components/user-request-approval/user-request-approval.module.mjs +0 -80
  286. package/esm2022/lib/components/user-request-approval/user-request-form/use-request-form.component.mjs +0 -86
  287. package/esm2022/lib/models/ApplicationRoleAction.mjs +0 -2
  288. package/esm2022/lib/models/ApplicationRoleContext.mjs +0 -2
  289. package/esm2022/lib/models/ErrorResponse.mjs +0 -11
  290. package/esm2022/lib/models/OAuthParam.mjs +0 -2
  291. package/esm2022/lib/models/OAuthType.mjs +0 -9
  292. package/esm2022/lib/models/PagedResult.mjs +0 -2
  293. package/esm2022/lib/models/PasswordRequestParam.mjs +0 -2
  294. package/esm2022/lib/models/PermissionConfig.mjs +0 -2
  295. package/esm2022/lib/models/ResponseKeyValue.mjs +0 -2
  296. package/esm2022/lib/models/Role.mjs +0 -2
  297. package/esm2022/lib/models/RoleAction.mjs +0 -2
  298. package/esm2022/lib/models/RoleContext.mjs +0 -2
  299. package/esm2022/lib/models/SearchDynamicWrapper.mjs +0 -2
  300. package/esm2022/lib/models/SearchOperator.mjs +0 -6
  301. package/esm2022/lib/models/SearchPropertySign.mjs +0 -11
  302. package/esm2022/lib/models/SearchPropertyValue.mjs +0 -2
  303. package/esm2022/lib/models/SearchPropertyValueType.mjs +0 -11
  304. package/esm2022/lib/models/SortDirection.mjs +0 -7
  305. package/esm2022/lib/models/Tag.mjs +0 -2
  306. package/esm2022/lib/models/TenantConfig.mjs +0 -2
  307. package/esm2022/lib/models/UserRequest.mjs +0 -2
  308. package/esm2022/lib/models/auth-mechanism.mjs +0 -8
  309. package/esm2022/lib/models/base.mjs +0 -2
  310. package/esm2022/lib/models/conditions.mjs +0 -13
  311. package/esm2022/lib/models/log-in.mjs +0 -2
  312. package/esm2022/lib/models/mainUser.mjs +0 -2
  313. package/esm2022/lib/models/oauth-resp.mjs +0 -2
  314. package/esm2022/lib/models/oauth-response.mjs +0 -2
  315. package/esm2022/lib/models/object-state.mjs +0 -8
  316. package/esm2022/lib/models/otpValue.mjs +0 -2
  317. package/esm2022/lib/models/paged.mjs +0 -2
  318. package/esm2022/lib/models/query-params.mjs +0 -2
  319. package/esm2022/lib/models/request-status.mjs +0 -5
  320. package/esm2022/lib/models/resend-otp-data.mjs +0 -2
  321. package/esm2022/lib/models/sign-up.mjs +0 -2
  322. package/esm2022/lib/models/single-sign-on.mjs +0 -2
  323. package/esm2022/lib/models/status.mjs +0 -6
  324. package/esm2022/lib/models/user-access-request-status.mjs +0 -7
  325. package/esm2022/lib/models/user-access-request.mjs +0 -2
  326. package/esm2022/lib/models/user.mjs +0 -2
  327. package/esm2022/lib/pipes/async-label.pipe.mjs +0 -25
  328. package/esm2022/lib/services/authorization.service.mjs +0 -26
  329. package/esm2022/lib/services/encryption.service.mjs +0 -52
  330. package/esm2022/lib/services/environment.service.mjs +0 -26
  331. package/esm2022/lib/services/http-web-request.service.mjs +0 -85
  332. package/esm2022/lib/services/label.service.mjs +0 -134
  333. package/esm2022/lib/services/util.service.mjs +0 -55
  334. package/esm2022/lib/shared/shared.module.mjs +0 -84
  335. package/esm2022/public-api.mjs +0 -48
  336. package/esm2022/verben-authentication-ui.mjs +0 -5
  337. package/fesm2022/verben-authentication-ui.mjs +0 -6299
  338. package/fesm2022/verben-authentication-ui.mjs.map +0 -1
  339. package/index.d.ts +0 -5
  340. package/lib/components/auth-callback/auth-callback.component.d.ts +0 -17
  341. package/lib/components/auth-callback/auth-callback.module.d.ts +0 -8
  342. package/lib/components/button/button.component.d.ts +0 -17
  343. package/lib/components/button/button.module.d.ts +0 -10
  344. package/lib/components/forgot-password/forgot-password.component.d.ts +0 -29
  345. package/lib/components/forgot-password/forgot-password.module.d.ts +0 -10
  346. package/lib/components/mail/mail.component.d.ts +0 -32
  347. package/lib/components/mail/mail.module.d.ts +0 -11
  348. package/lib/components/mail-validation/mail-validation.component.d.ts +0 -42
  349. package/lib/components/mail-validation/mail-validation.module.d.ts +0 -10
  350. package/lib/components/o-auth/o-auth.component.d.ts +0 -30
  351. package/lib/components/o-auth/o-auth.module.d.ts +0 -9
  352. package/lib/components/otp-input/otp-input.component.d.ts +0 -21
  353. package/lib/components/otp-input/otp-input.module.d.ts +0 -13
  354. package/lib/components/reset-password/ResetPasswordData.d.ts +0 -5
  355. package/lib/components/reset-password/reset-password.component.d.ts +0 -30
  356. package/lib/components/reset-password/reset-password.module.d.ts +0 -10
  357. package/lib/components/role-control/ChildrenType.d.ts +0 -4
  358. package/lib/components/role-control/UIActions.d.ts +0 -5
  359. package/lib/components/role-control/UIs.d.ts +0 -38
  360. package/lib/components/role-control/base-table-style.d.ts +0 -1
  361. package/lib/components/role-control/role-control.component.d.ts +0 -121
  362. package/lib/components/role-control/role-control.module.d.ts +0 -8
  363. package/lib/components/role-control/role-control.service.d.ts +0 -9
  364. package/lib/components/sign-in/sign-in.component.d.ts +0 -95
  365. package/lib/components/sign-in/sign-in.module.d.ts +0 -13
  366. package/lib/components/sign-up/sign-up.component.d.ts +0 -68
  367. package/lib/components/sign-up/sign-up.module.d.ts +0 -13
  368. package/lib/components/sso/base-table-style.d.ts +0 -1
  369. package/lib/components/sso/helper.d.ts +0 -2
  370. package/lib/components/sso/sso-form/sso-form.component.d.ts +0 -21
  371. package/lib/components/sso/sso.columns.d.ts +0 -3
  372. package/lib/components/sso/sso.component.d.ts +0 -54
  373. package/lib/components/sso/sso.module.d.ts +0 -11
  374. package/lib/components/two-factor-auth-otp/two-factor-auth-otp.component.d.ts +0 -67
  375. package/lib/components/two-factor-auth-otp/two-factor-auth-otp.module.d.ts +0 -12
  376. package/lib/components/two-factor-auth-setup/two-factor-auth-setup.component.d.ts +0 -39
  377. package/lib/components/two-factor-auth-setup/two-factor-auth-setup.module.d.ts +0 -9
  378. package/lib/components/user-management/base-table-style.d.ts +0 -1
  379. package/lib/components/user-management/services/user-management.service.d.ts +0 -44
  380. package/lib/components/user-management/user-management-form/use-management-form.component.d.ts +0 -22
  381. package/lib/components/user-management/user-management.columns.d.ts +0 -3
  382. package/lib/components/user-management/user-management.component.d.ts +0 -123
  383. package/lib/components/user-management/user-management.module.d.ts +0 -14
  384. package/lib/components/user-management/user-status-badge/user-status-badge.component.d.ts +0 -12
  385. package/lib/components/user-request/user-request.component.d.ts +0 -80
  386. package/lib/components/user-request/user-request.module.d.ts +0 -11
  387. package/lib/components/user-request-approval/access-request.columns.d.ts +0 -3
  388. package/lib/components/user-request-approval/base-table-style.d.ts +0 -1
  389. package/lib/components/user-request-approval/facades/user-access-request.facade.d.ts +0 -39
  390. package/lib/components/user-request-approval/helper.d.ts +0 -7
  391. package/lib/components/user-request-approval/services/user-access-request.service.d.ts +0 -65
  392. package/lib/components/user-request-approval/states/user-access-request.state.d.ts +0 -35
  393. package/lib/components/user-request-approval/user-access-request-status-badge/user-access-request-status-badge.component.d.ts +0 -12
  394. package/lib/components/user-request-approval/user-request-approval.component.d.ts +0 -69
  395. package/lib/components/user-request-approval/user-request-approval.module.d.ts +0 -12
  396. package/lib/components/user-request-approval/user-request-form/use-request-form.component.d.ts +0 -25
  397. package/lib/models/ApplicationRoleAction.d.ts +0 -9
  398. package/lib/models/ErrorResponse.d.ts +0 -6
  399. package/lib/models/OAuthParam.d.ts +0 -9
  400. package/lib/models/OAuthType.d.ts +0 -7
  401. package/lib/models/PagedResult.d.ts +0 -9
  402. package/lib/models/PasswordRequestParam.d.ts +0 -5
  403. package/lib/models/ResponseKeyValue.d.ts +0 -5
  404. package/lib/models/RoleAction.d.ts +0 -10
  405. package/lib/models/RoleContext.d.ts +0 -10
  406. package/lib/models/SearchOperator.d.ts +0 -4
  407. package/lib/models/SearchPropertySign.d.ts +0 -9
  408. package/lib/models/SearchPropertyValueType.d.ts +0 -9
  409. package/lib/models/SortDirection.d.ts +0 -5
  410. package/lib/models/TenantConfig.d.ts +0 -18
  411. package/lib/models/UserRequest.d.ts +0 -32
  412. package/lib/models/auth-mechanism.d.ts +0 -14
  413. package/lib/models/base.d.ts +0 -12
  414. package/lib/models/conditions.d.ts +0 -11
  415. package/lib/models/log-in.d.ts +0 -8
  416. package/lib/models/oauth-resp.d.ts +0 -6
  417. package/lib/models/object-state.d.ts +0 -6
  418. package/lib/models/paged.d.ts +0 -9
  419. package/lib/models/query-params.d.ts +0 -8
  420. package/lib/models/request-status.d.ts +0 -3
  421. package/lib/models/resend-otp-data.d.ts +0 -8
  422. package/lib/models/sign-up.d.ts +0 -9
  423. package/lib/models/single-sign-on.d.ts +0 -7
  424. package/lib/models/status.d.ts +0 -4
  425. package/lib/models/user-access-request-status.d.ts +0 -5
  426. package/lib/models/user.d.ts +0 -18
  427. package/lib/pipes/async-label.pipe.d.ts +0 -11
  428. package/lib/services/authorization.service.d.ts +0 -14
  429. package/lib/services/encryption.service.d.ts +0 -13
  430. package/lib/services/environment.service.d.ts +0 -22
  431. package/lib/services/http-web-request.service.d.ts +0 -23
  432. package/lib/services/label.service.d.ts +0 -15
  433. package/lib/services/util.service.d.ts +0 -11
  434. package/lib/shared/shared.module.d.ts +0 -10
@@ -1,18 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { RoleControlComponent } from './role-control.component';
3
- import { SharedModule } from '../../shared/shared.module';
4
- import * as i0 from "@angular/core";
5
- export class RoleControlModule {
6
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RoleControlModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
7
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: RoleControlModule, declarations: [RoleControlComponent], imports: [SharedModule], exports: [RoleControlComponent] });
8
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RoleControlModule, imports: [SharedModule] });
9
- }
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RoleControlModule, decorators: [{
11
- type: NgModule,
12
- args: [{
13
- declarations: [RoleControlComponent],
14
- imports: [SharedModule],
15
- exports: [RoleControlComponent],
16
- }]
17
- }] });
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sZS1jb250cm9sLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZlcmJlbi1hdXRoZW50aWNhdGlvbi11aS9zcmMvbGliL2NvbXBvbmVudHMvcm9sZS1jb250cm9sL3JvbGUtY29udHJvbC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7O0FBTzFELE1BQU0sT0FBTyxpQkFBaUI7d0dBQWpCLGlCQUFpQjt5R0FBakIsaUJBQWlCLGlCQUpiLG9CQUFvQixhQUN6QixZQUFZLGFBQ1osb0JBQW9CO3lHQUVuQixpQkFBaUIsWUFIbEIsWUFBWTs7NEZBR1gsaUJBQWlCO2tCQUw3QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLG9CQUFvQixDQUFDO29CQUNwQyxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7b0JBQ3ZCLE9BQU8sRUFBRSxDQUFDLG9CQUFvQixDQUFDO2lCQUNoQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb2xlQ29udHJvbENvbXBvbmVudCB9IGZyb20gJy4vcm9sZS1jb250cm9sLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTaGFyZWRNb2R1bGUgfSBmcm9tICcuLi8uLi9zaGFyZWQvc2hhcmVkLm1vZHVsZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1JvbGVDb250cm9sQ29tcG9uZW50XSxcbiAgaW1wb3J0czogW1NoYXJlZE1vZHVsZV0sXG4gIGV4cG9ydHM6IFtSb2xlQ29udHJvbENvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIFJvbGVDb250cm9sTW9kdWxlIHt9XG4iXX0=
@@ -1,54 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class RoleControlService {
4
- constructor() { }
5
- get roleColumns() {
6
- return [
7
- {
8
- id: 'select',
9
- header: '',
10
- },
11
- {
12
- id: 'createdAt',
13
- header: 'CREATED',
14
- accessorKey: 'CreatedAt',
15
- },
16
- {
17
- id: 'updatedAt',
18
- header: 'UPDATED',
19
- accessorKey: 'UpdatedAt',
20
- },
21
- {
22
- id: 'name',
23
- header: 'NAME',
24
- accessorFn: (row) => {
25
- return row;
26
- },
27
- },
28
- {
29
- id: 'permissions',
30
- header: 'PERMISSIONS',
31
- accessorFn: (row) => {
32
- const sum = row.RoleContexts.filter((x) => x.Selected == true).length;
33
- return `${sum} of ${row.RoleContexts.length} Permissions`;
34
- },
35
- },
36
- {
37
- id: 'actions',
38
- header: 'ACTIONS',
39
- accessorFn: (row) => {
40
- return row;
41
- },
42
- },
43
- ];
44
- }
45
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RoleControlService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
46
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RoleControlService, providedIn: 'root' });
47
- }
48
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RoleControlService, decorators: [{
49
- type: Injectable,
50
- args: [{
51
- providedIn: 'root',
52
- }]
53
- }], ctorParameters: () => [] });
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sZS1jb250cm9sLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4tYXV0aGVudGljYXRpb24tdWkvc3JjL2xpYi9jb21wb25lbnRzL3JvbGUtY29udHJvbC9yb2xlLWNvbnRyb2wuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQVMzQyxNQUFNLE9BQU8sa0JBQWtCO0lBQzdCLGdCQUFlLENBQUM7SUFFaEIsSUFBSSxXQUFXO1FBQ2IsT0FBTztZQUNMO2dCQUNFLEVBQUUsRUFBRSxRQUFRO2dCQUNaLE1BQU0sRUFBRSxFQUFFO2FBQ1g7WUFDRDtnQkFDRSxFQUFFLEVBQUUsV0FBVztnQkFDZixNQUFNLEVBQUUsU0FBUztnQkFDakIsV0FBVyxFQUFFLFdBQVc7YUFDekI7WUFDRDtnQkFDRSxFQUFFLEVBQUUsV0FBVztnQkFDZixNQUFNLEVBQUUsU0FBUztnQkFDakIsV0FBVyxFQUFFLFdBQVc7YUFDekI7WUFDRDtnQkFDRSxFQUFFLEVBQUUsTUFBTTtnQkFDVixNQUFNLEVBQUUsTUFBTTtnQkFDZCxVQUFVLEVBQUUsQ0FBQyxHQUFlLEVBQUUsRUFBRTtvQkFDOUIsT0FBTyxHQUFHLENBQUM7Z0JBQ2IsQ0FBQzthQUNGO1lBQ0Q7Z0JBQ0UsRUFBRSxFQUFFLGFBQWE7Z0JBQ2pCLE1BQU0sRUFBRSxhQUFhO2dCQUNyQixVQUFVLEVBQUUsQ0FBQyxHQUFlLEVBQUUsRUFBRTtvQkFDOUIsTUFBTSxHQUFHLEdBQUcsR0FBRyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDO29CQUN0RSxPQUFPLEdBQUcsR0FBRyxPQUFPLEdBQUcsQ0FBQyxZQUFZLENBQUMsTUFBTSxjQUFjLENBQUM7Z0JBQzVELENBQUM7YUFDRjtZQUNEO2dCQUNFLEVBQUUsRUFBRSxTQUFTO2dCQUNiLE1BQU0sRUFBRSxTQUFTO2dCQUNqQixVQUFVLEVBQUUsQ0FBQyxHQUFlLEVBQUUsRUFBRTtvQkFDOUIsT0FBTyxHQUFHLENBQUM7Z0JBQ2IsQ0FBQzthQUNGO1NBQ0YsQ0FBQztJQUNKLENBQUM7d0dBMUNVLGtCQUFrQjs0R0FBbEIsa0JBQWtCLGNBRmpCLE1BQU07OzRGQUVQLGtCQUFrQjtrQkFIOUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb2x1bW5EZWZpbml0aW9uIH0gZnJvbSAndmVyYmVuLW5nLXVpJztcbmltcG9ydCB7IFJvbGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvUm9sZSc7XG5pbXBvcnQgeyBBdXRob3JpemF0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2F1dGhvcml6YXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBNYXBwZWRSb2xlIH0gZnJvbSAnLi9NYXBwZWRSb2xlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFJvbGVDb250cm9sU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBnZXQgcm9sZUNvbHVtbnMoKTogQ29sdW1uRGVmaW5pdGlvbjxNYXBwZWRSb2xlPltdIHtcbiAgICByZXR1cm4gW1xuICAgICAge1xuICAgICAgICBpZDogJ3NlbGVjdCcsXG4gICAgICAgIGhlYWRlcjogJycsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ2NyZWF0ZWRBdCcsXG4gICAgICAgIGhlYWRlcjogJ0NSRUFURUQnLFxuICAgICAgICBhY2Nlc3NvcktleTogJ0NyZWF0ZWRBdCcsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ3VwZGF0ZWRBdCcsXG4gICAgICAgIGhlYWRlcjogJ1VQREFURUQnLFxuICAgICAgICBhY2Nlc3NvcktleTogJ1VwZGF0ZWRBdCcsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ25hbWUnLFxuICAgICAgICBoZWFkZXI6ICdOQU1FJyxcbiAgICAgICAgYWNjZXNzb3JGbjogKHJvdzogTWFwcGVkUm9sZSkgPT4ge1xuICAgICAgICAgIHJldHVybiByb3c7XG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ3Blcm1pc3Npb25zJyxcbiAgICAgICAgaGVhZGVyOiAnUEVSTUlTU0lPTlMnLFxuICAgICAgICBhY2Nlc3NvckZuOiAocm93OiBNYXBwZWRSb2xlKSA9PiB7XG4gICAgICAgICAgY29uc3Qgc3VtID0gcm93LlJvbGVDb250ZXh0cy5maWx0ZXIoKHgpID0+IHguU2VsZWN0ZWQgPT0gdHJ1ZSkubGVuZ3RoO1xuICAgICAgICAgIHJldHVybiBgJHtzdW19IG9mICR7cm93LlJvbGVDb250ZXh0cy5sZW5ndGh9IFBlcm1pc3Npb25zYDtcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnYWN0aW9ucycsXG4gICAgICAgIGhlYWRlcjogJ0FDVElPTlMnLFxuICAgICAgICBhY2Nlc3NvckZuOiAocm93OiBNYXBwZWRSb2xlKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHJvdztcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgXTtcbiAgfVxufVxuIl19
@@ -1,318 +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 { MechanismType } from '../../models/auth-mechanism';
5
- import CryptoJS from 'crypto-js';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "@angular/forms";
8
- import * as i2 from "../../services/http-web-request.service";
9
- import * as i3 from "../../services/util.service";
10
- import * as i4 from "../../services/environment.service";
11
- import * as i5 from "@angular/router";
12
- import * as i6 from "../../services/encryption.service";
13
- import * as i7 from "@angular/common";
14
- import * as i8 from "verben-ng-ui";
15
- import * as i9 from "../o-auth/o-auth.component";
16
- import * as i10 from "../button/button.component";
17
- export class SignInComponent {
18
- fb;
19
- server;
20
- utilService;
21
- envSvc;
22
- route;
23
- router;
24
- encryptionService;
25
- headlingText = 'Sign in';
26
- width = '';
27
- maxWidth = '';
28
- margin = '';
29
- pd = '';
30
- customClass = '';
31
- headlingClass = '';
32
- bgColor = '#fff';
33
- boxShadow = '4px 4px 4px rgba(0, 0, 0, 0.25)';
34
- border = '1px solid #66666680';
35
- borderRadius = '24px';
36
- textColor = '#333';
37
- height = 'auto';
38
- forgetPasswordClass = '';
39
- requestAccessClass = '';
40
- createAccountClass = '';
41
- createAccountLinkClass = '';
42
- // links
43
- forgetPasswordLink = '';
44
- createAccountLink = '';
45
- requestAccessLink = '';
46
- // button styles
47
- btnClass = '';
48
- btnBgColor = '#FFE681';
49
- btnColor = '';
50
- btnBorder = '';
51
- btnBorderRadius = '24px';
52
- btnPd = '';
53
- btnText = 'Log in';
54
- //inputStyles
55
- inputLabelColor = '';
56
- inputBgColor = 'transparent';
57
- inputBorder = '1px solid #66666659';
58
- inputBorderRadius = '12px';
59
- termsErrorText = 'Please agree to the terms of use and privacy policy.';
60
- formSubmit = new EventEmitter();
61
- onSubmitEnd = new EventEmitter();
62
- onGoogleAuthResponse = new EventEmitter();
63
- onSubmitGoogleAuth = new EventEmitter();
64
- tenantConfigLoaded = new EventEmitter();
65
- googleClick = new EventEmitter();
66
- microsoftClick = new EventEmitter();
67
- appleClick = new EventEmitter();
68
- tenantDetails = null;
69
- AuthMechanisms = null;
70
- showform = false;
71
- loginForm;
72
- apiKey;
73
- secret;
74
- isLoading = false;
75
- code = '';
76
- type = '';
77
- mechanismType = '';
78
- OauthData = {
79
- AccessToken: '',
80
- Email: '',
81
- FirstName: '',
82
- LastName: '',
83
- };
84
- configData = null;
85
- constructor(fb, server, utilService, envSvc, route, router, encryptionService) {
86
- this.fb = fb;
87
- this.server = server;
88
- this.utilService = utilService;
89
- this.envSvc = envSvc;
90
- this.route = route;
91
- this.router = router;
92
- this.encryptionService = encryptionService;
93
- this.loginForm = this.fb.group({
94
- Email: new FormControl(null, [
95
- Validators.required,
96
- Validators.email,
97
- ]),
98
- Password: new FormControl(null, [
99
- Validators.required,
100
- Validators.minLength(5),
101
- ]),
102
- });
103
- this.apiKey = this.envSvc.environment.Tenant;
104
- this.secret = this.envSvc.environment.Secret;
105
- }
106
- async ngOnInit() {
107
- await this.getTenantConfig();
108
- this.route.queryParams.subscribe((params) => {
109
- this.code = params['code'];
110
- this.type = params['type'];
111
- if (this.code) {
112
- this.verifyUserDetails();
113
- }
114
- });
115
- }
116
- async getTenantConfig() {
117
- const isLocalhost = window?.location?.hostname === 'localhost';
118
- const payload = isLocalhost
119
- ? {
120
- Key: "UrlKey",
121
- Value: 'https://bovas.white360.net'
122
- }
123
- : undefined;
124
- try {
125
- const res = await this.server.post(`Tenant/GetTenantConfigByUrlKey`, payload);
126
- this.tenantDetails = res;
127
- this.configData = res;
128
- this.AuthMechanisms = this.tenantDetails?.AuthMechanisms;
129
- if (!this.tenantDetails?.AuthMechanism &&
130
- this.tenantDetails?.AuthMechanism !== MechanismType.InApp) {
131
- this.showform = false;
132
- }
133
- else {
134
- this.showform = true;
135
- }
136
- this.tenantConfigLoaded.emit(this.configData);
137
- }
138
- catch (err) {
139
- const msg = err;
140
- this.tenantConfigLoaded.emit(null);
141
- }
142
- }
143
- checkForm() {
144
- return this.loginForm.valid;
145
- }
146
- async verifyUserDetails() {
147
- if (this.AuthMechanisms !== null && this.apiKey) {
148
- const data = this.AuthMechanisms.find((item) => item.AuthMechanism.includes(this.type));
149
- const payload = {
150
- AuthCode: this.code,
151
- Tenant: this.apiKey,
152
- AuthMechanism: data.AuthMechanism,
153
- };
154
- this.utilService.sendBI(true);
155
- const res = await this.server.post(`Authentication/GetUserDetails`, payload);
156
- this.utilService.sendBI(false);
157
- if (res instanceof ErrorResponse) {
158
- return;
159
- }
160
- else {
161
- var result = res;
162
- this.OauthData = {
163
- AccessToken: result?.AccessToken,
164
- Email: result?.Email,
165
- FirstName: result?.FirstName,
166
- LastName: result?.LastName,
167
- };
168
- this.submit(data.AuthMechanism);
169
- }
170
- }
171
- }
172
- async submit(type) {
173
- let data = {
174
- MailAddress: '',
175
- Password: '',
176
- LoginType: type,
177
- Tenant: this.tenantDetails.TenantId,
178
- Secrete: this.secret,
179
- Token: '',
180
- };
181
- if (type === MechanismType.InApp && this.checkForm()) {
182
- data = {
183
- ...data,
184
- MailAddress: this.loginForm.controls['Email'].value,
185
- Password: String(CryptoJS.MD5(this.loginForm.controls['Password'].value)),
186
- };
187
- }
188
- else if (type === MechanismType.Google || type === MechanismType.MicrosoftAD) {
189
- data = {
190
- ...data,
191
- MailAddress: this.OauthData?.Email,
192
- Token: this.OauthData?.AccessToken,
193
- };
194
- }
195
- this.formSubmit.emit(data);
196
- this.utilService.sendBI(true); // Preserving your utilService call
197
- this.isLoading = true;
198
- try {
199
- const res = await this.server.post(`Authentication/Login`, data);
200
- console.log('Response:', res);
201
- this.utilService.sendBI(false); // Stop utilService tracking on success/failure
202
- this.isLoading = false;
203
- if (res instanceof ErrorResponse) {
204
- this.onSubmitEnd.emit(res);
205
- }
206
- else {
207
- const result = res;
208
- this.onSubmitEnd.emit(result);
209
- }
210
- }
211
- catch (error) {
212
- this.utilService.sendBI(false); // Stop utilService tracking on error
213
- this.isLoading = false;
214
- console.error('Error during login:', error);
215
- }
216
- }
217
- get styles() {
218
- return {
219
- 'background-color': this.bgColor,
220
- 'box-shadow': this.boxShadow,
221
- border: this.border,
222
- 'border-radius': this.borderRadius,
223
- color: this.textColor,
224
- width: this.width,
225
- 'max-width': this.maxWidth,
226
- margin: this.margin,
227
- height: this.height,
228
- padding: this.pd,
229
- };
230
- }
231
- 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 }, { token: i5.ActivatedRoute }, { token: i5.Router }, { token: i6.EncryptionService }], target: i0.ɵɵFactoryTarget.Component });
232
- 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", onGoogleAuthResponse: "onGoogleAuthResponse", onSubmitGoogleAuth: "onSubmitGoogleAuth", tenantConfigLoaded: "tenantConfigLoaded", googleClick: "googleClick", microsoftClick: "microsoftClick", appleClick: "appleClick" }, ngImport: i0, template: "<section\n[ngStyle]=\"styles\"\nclass=\"{{ customClass }}\"\n>\n <h2 class=\"{{headlingClass}}\">{{headlingText}}</h2>\n <form [formGroup]=\"loginForm\" (ngSubmit)=\"submit('InApp')\" class=\"flexWrapper\"> \n <div class=\"formWrapper\" *ngIf=\"showform\"> \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 [passLength]=\"5\"\n [customErrorMessages]=\"{\n password:'Password is required'\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 <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 </div>\n <div> \n <p *ngIf=\"requestAccessLink\">\n <a [routerLink]=\"requestAccessLink\" class=\"{{requestAccessClass}}\">Click here to request user access</a>\n </p>\n \n </div>\n </form>\n <div> \n <div *ngIf=\"AuthMechanisms !== null\"> \n <verben-o-auth \n [authMechanisms]=\"AuthMechanisms\"\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 </section>\n ", styles: ["a{text-decoration:underline}.flexWrapper{display:flex;flex-direction:column;gap:20px;margin-top:12px}.formWrapper{display:flex;flex-direction:column;gap:20px}.pwdWrapper{display:flex;justify-content:flex-end;cursor:pointer}\n"], dependencies: [{ kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.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: i8.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", "fontSize", "svgWidth", "svgHeight", "svgColor", "capitalization", "inputContainerClass", "inputFieldClass", "passLength", "inputWrapperClass", "passwordToggle", "customErrorMessages", "icon", "textPass"], outputs: ["valueChange"] }, { kind: "directive", type: i5.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i9.OAuthComponent, selector: "verben-o-auth", inputs: ["authMechanisms"], outputs: ["emitMechanismFn"] }, { kind: "component", type: i10.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"] }] });
233
- }
234
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SignInComponent, decorators: [{
235
- type: Component,
236
- 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('InApp')\" class=\"flexWrapper\"> \n <div class=\"formWrapper\" *ngIf=\"showform\"> \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 [passLength]=\"5\"\n [customErrorMessages]=\"{\n password:'Password is required'\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 <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 </div>\n <div> \n <p *ngIf=\"requestAccessLink\">\n <a [routerLink]=\"requestAccessLink\" class=\"{{requestAccessClass}}\">Click here to request user access</a>\n </p>\n \n </div>\n </form>\n <div> \n <div *ngIf=\"AuthMechanisms !== null\"> \n <verben-o-auth \n [authMechanisms]=\"AuthMechanisms\"\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 </section>\n ", styles: ["a{text-decoration:underline}.flexWrapper{display:flex;flex-direction:column;gap:20px;margin-top:12px}.formWrapper{display:flex;flex-direction:column;gap:20px}.pwdWrapper{display:flex;justify-content:flex-end;cursor:pointer}\n"] }]
237
- }], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.HttpWebRequestService }, { type: i3.UtilService }, { type: i4.EnvironmentService }, { type: i5.ActivatedRoute }, { type: i5.Router }, { type: i6.EncryptionService }], propDecorators: { headlingText: [{
238
- type: Input
239
- }], width: [{
240
- type: Input
241
- }], maxWidth: [{
242
- type: Input
243
- }], margin: [{
244
- type: Input
245
- }], pd: [{
246
- type: Input
247
- }], customClass: [{
248
- type: Input
249
- }], headlingClass: [{
250
- type: Input
251
- }], bgColor: [{
252
- type: Input
253
- }], boxShadow: [{
254
- type: Input
255
- }], border: [{
256
- type: Input
257
- }], borderRadius: [{
258
- type: Input
259
- }], textColor: [{
260
- type: Input
261
- }], height: [{
262
- type: Input
263
- }], forgetPasswordClass: [{
264
- type: Input
265
- }], requestAccessClass: [{
266
- type: Input
267
- }], createAccountClass: [{
268
- type: Input
269
- }], createAccountLinkClass: [{
270
- type: Input
271
- }], forgetPasswordLink: [{
272
- type: Input
273
- }], createAccountLink: [{
274
- type: Input
275
- }], requestAccessLink: [{
276
- type: Input
277
- }], btnClass: [{
278
- type: Input
279
- }], btnBgColor: [{
280
- type: Input
281
- }], btnColor: [{
282
- type: Input
283
- }], btnBorder: [{
284
- type: Input
285
- }], btnBorderRadius: [{
286
- type: Input
287
- }], btnPd: [{
288
- type: Input
289
- }], btnText: [{
290
- type: Input
291
- }], inputLabelColor: [{
292
- type: Input
293
- }], inputBgColor: [{
294
- type: Input
295
- }], inputBorder: [{
296
- type: Input
297
- }], inputBorderRadius: [{
298
- type: Input
299
- }], termsErrorText: [{
300
- type: Input
301
- }], formSubmit: [{
302
- type: Output
303
- }], onSubmitEnd: [{
304
- type: Output
305
- }], onGoogleAuthResponse: [{
306
- type: Output
307
- }], onSubmitGoogleAuth: [{
308
- type: Output
309
- }], tenantConfigLoaded: [{
310
- type: Output
311
- }], googleClick: [{
312
- type: Output
313
- }], microsoftClick: [{
314
- type: Output
315
- }], appleClick: [{
316
- type: Output
317
- }] } });
318
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbi1pbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4tYXV0aGVudGljYXRpb24tdWkvc3JjL2xpYi9jb21wb25lbnRzL3NpZ24taW4vc2lnbi1pbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4tYXV0aGVudGljYXRpb24tdWkvc3JjL2xpYi9jb21wb25lbnRzL3NpZ24taW4vc2lnbi1pbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFHTCxXQUFXLEVBR1gsVUFBVSxHQUNYLE1BQU0sZ0JBQWdCLENBQUM7QUFJeEIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRzNELE9BQU8sRUFBaUIsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFLM0UsT0FBTyxRQUFRLE1BQU0sV0FBVyxDQUFDOzs7Ozs7Ozs7Ozs7QUFNakMsTUFBTSxPQUFPLGVBQWU7SUF1RWhCO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBNUVELFlBQVksR0FBVyxTQUFTLENBQUM7SUFDakMsS0FBSyxHQUFXLEVBQUUsQ0FBQztJQUNuQixRQUFRLEdBQVcsRUFBRSxDQUFDO0lBQ3RCLE1BQU0sR0FBVyxFQUFFLENBQUM7SUFDcEIsRUFBRSxHQUFXLEVBQUUsQ0FBQztJQUNoQixXQUFXLEdBQVcsRUFBRSxDQUFDO0lBQ3pCLGFBQWEsR0FBVyxFQUFFLENBQUM7SUFDM0IsT0FBTyxHQUFXLE1BQU0sQ0FBQztJQUN6QixTQUFTLEdBQVcsaUNBQWlDLENBQUM7SUFDdEQsTUFBTSxHQUFXLHFCQUFxQixDQUFDO0lBQ3ZDLFlBQVksR0FBVyxNQUFNLENBQUM7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LEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLHNCQUFzQjtzQkFBOUIsS0FBSztnQkFHRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFFRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFHRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFHSSxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBRUcsb0JBQW9CO3NCQUE3QixNQUFNO2dCQUdHLGtCQUFrQjtzQkFBM0IsTUFBTTtnQkFDRyxrQkFBa0I7c0JBQTNCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxjQUFjO3NCQUF2QixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBBYnN0cmFjdENvbnRyb2wsXG4gIEZvcm1CdWlsZGVyLFxuICBGb3JtQ29udHJvbCxcbiAgRm9ybUdyb3VwLFxuICBWYWxpZGF0aW9uRXJyb3JzLFxuICBWYWxpZGF0b3JzLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBMb2dpbkRhdGEgfSBmcm9tICcuLi8uLi9tb2RlbHMvbG9nLWluJztcbmltcG9ydCB7IEh0dHBXZWJSZXF1ZXN0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2h0dHAtd2ViLXJlcXVlc3Quc2VydmljZSc7XG5pbXBvcnQgeyBVdGlsU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3V0aWwuc2VydmljZSc7XG5pbXBvcnQgeyBFcnJvclJlc3BvbnNlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL0Vycm9yUmVzcG9uc2UnO1xuaW1wb3J0IHsgUmVzcG9uc2VLZXlWYWx1ZSB9IGZyb20gJy4uLy4uL21vZGVscy9SZXNwb25zZUtleVZhbHVlJztcbmltcG9ydCB7IEVudmlyb25tZW50U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2Vudmlyb25tZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgQXV0aE1lY2hhbmlzbSwgTWVjaGFuaXNtVHlwZSB9IGZyb20gJy4uLy4uL21vZGVscy9hdXRoLW1lY2hhbmlzbSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IElPYXV0aFJlc3AgfSBmcm9tICcuLi8uLi9tb2RlbHMvb2F1dGgtcmVzcCc7XG5pbXBvcnQge1RlbmFudENvbmZpZ30gZnJvbSAnLi4vLi4vbW9kZWxzL1RlbmFudENvbmZpZydcbmltcG9ydCB7IEVuY3J5cHRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZW5jcnlwdGlvbi5zZXJ2aWNlJztcbmltcG9ydCBDcnlwdG9KUyBmcm9tICdjcnlwdG8tanMnO1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVyYmVuLXNpZ24taW4nLFxuICB0ZW1wbGF0ZVVybDogJy4vc2lnbi1pbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9zaWduLWluLmNvbXBvbmVudC5jc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBTaWduSW5Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBoZWFkbGluZ1RleHQ6IHN0cmluZyA9ICdTaWduIGluJztcbiAgQElucHV0KCkgd2lkdGg6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBtYXhXaWR0aDogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIG1hcmdpbjogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIHBkOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgY3VzdG9tQ2xhc3M6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBoZWFkbGluZ0NsYXNzOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgYmdDb2xvcjogc3RyaW5nID0gJyNmZmYnO1xuICBASW5wdXQoKSBib3hTaGFkb3c6IHN0cmluZyA9ICc0cHggNHB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMjUpJztcbiAgQElucHV0KCkgYm9yZGVyOiBzdHJpbmcgPSAnMXB4IHNvbGlkICM2NjY2NjY4MCc7XG4gIEBJbnB1dCgpIGJvcmRlclJhZGl1czogc3RyaW5nID0gJzI0cHgnO1xuICBASW5wdXQoKSB0ZXh0Q29sb3I6IHN0cmluZyA9ICcjMzMzJztcbiAgQElucHV0KCkgaGVpZ2h0OiBzdHJpbmcgPSAnYXV0byc7XG4gIEBJbnB1dCgpIGZvcmdldFBhc3N3b3JkQ2xhc3M6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSByZXF1ZXN0QWNjZXNzQ2xhc3M6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBjcmVhdGVBY2NvdW50Q2xhc3M6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBjcmVhdGVBY2NvdW50TGlua0NsYXNzOiBzdHJpbmcgPSAnJztcblxuICAvLyBsaW5rc1xuICBASW5wdXQoKSBmb3JnZXRQYXNzd29yZExpbms6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBjcmVhdGVBY2NvdW50TGluazogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIHJlcXVlc3RBY2Nlc3NMaW5rOiBzdHJpbmcgPSAnJztcbiAgLy8gYnV0dG9uIHN0eWxlc1xuICBASW5wdXQoKSBidG5DbGFzczogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIGJ0bkJnQ29sb3I6IHN0cmluZyA9ICcjRkZFNjgxJztcbiAgQElucHV0KCkgYnRuQ29sb3I6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBidG5Cb3JkZXI6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBidG5Cb3JkZXJSYWRpdXM6IHN0cmluZyA9ICcyNHB4JztcbiAgQElucHV0KCkgYnRuUGQ6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBidG5UZXh0OiBzdHJpbmcgPSAnTG9nIGluJztcblxuICAvL2lucHV0U3R5bGVzXG4gIEBJbnB1dCgpIGlucHV0TGFiZWxDb2xvcjogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIGlucHV0QmdDb2xvcjogc3RyaW5nID0gJ3RyYW5zcGFyZW50JztcbiAgQElucHV0KCkgaW5wdXRCb3JkZXI6IHN0cmluZyA9ICcxcHggc29saWQgIzY2NjY2NjU5JztcbiAgQElucHV0KCkgaW5wdXRCb3JkZXJSYWRpdXM6IHN0cmluZyA9ICcxMnB4JztcbiAgQElucHV0KCkgdGVybXNFcnJvclRleHQ6IHN0cmluZyA9XG4gICAgJ1BsZWFzZSBhZ3JlZSB0byB0aGUgdGVybXMgb2YgdXNlIGFuZCBwcml2YWN5IHBvbGljeS4nO1xuXG4gIEBPdXRwdXQoKSBmb3JtU3VibWl0ID0gbmV3IEV2ZW50RW1pdHRlcjxMb2dpbkRhdGE+KCk7XG4gIEBPdXRwdXQoKSBvblN1Ym1pdEVuZDogRXZlbnRFbWl0dGVyPFJlc3BvbnNlS2V5VmFsdWUgfCBFcnJvclJlc3BvbnNlPiA9XG4gICAgbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgb25Hb29nbGVBdXRoUmVzcG9uc2U6IEV2ZW50RW1pdHRlcjxcbiAgICBSZXNwb25zZUtleVZhbHVlIHwgRXJyb3JSZXNwb25zZVxuICA+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgb25TdWJtaXRHb29nbGVBdXRoOiBFdmVudEVtaXR0ZXI8UmVzcG9uc2VLZXlWYWx1ZSB8IEVycm9yUmVzcG9uc2U+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgdGVuYW50Q29uZmlnTG9hZGVkID0gbmV3IEV2ZW50RW1pdHRlcjxUZW5hbnRDb25maWcgfCBudWxsPigpO1xuICBAT3V0cHV0KCkgZ29vZ2xlQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBtaWNyb3NvZnRDbGljayA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIGFwcGxlQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgdGVuYW50RGV0YWlsczogYW55IHwgbnVsbCA9IG51bGw7XG4gIEF1dGhNZWNoYW5pc21zOiBBdXRoTWVjaGFuaXNtW10gfCBudWxsID0gbnVsbDtcbiAgc2hvd2Zvcm06IGJvb2xlYW4gPSBmYWxzZTtcbiAgbG9naW5Gb3JtOiBGb3JtR3JvdXA7XG4gIGFwaUtleTogc3RyaW5nO1xuICBzZWNyZXQ6IHN0cmluZztcbiAgaXNMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XG4gIGNvZGU6IHN0cmluZyA9ICcnO1xuICB0eXBlOiBzdHJpbmcgPSAnJztcbiAgbWVjaGFuaXNtVHlwZTogc3RyaW5nID0gJyc7XG4gIE9hdXRoRGF0YTogSU9hdXRoUmVzcCA9IHtcbiAgICBBY2Nlc3NUb2tlbjogJycsXG4gICAgRW1haWw6ICcnLFxuICAgIEZpcnN0TmFtZTogJycsXG4gICAgTGFzdE5hbWU6ICcnLFxuICB9O1xuICBjb25maWdEYXRhOlRlbmFudENvbmZpZyB8IG51bGwgPSBudWxsXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSBzZXJ2ZXI6IEh0dHBXZWJSZXF1ZXN0U2VydmljZSxcbiAgICBwcml2YXRlIHV0aWxTZXJ2aWNlOiBVdGlsU2VydmljZSxcbiAgICBwcml2YXRlIGVudlN2YzogRW52aXJvbm1lbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSBlbmNyeXB0aW9uU2VydmljZTogRW5jcnlwdGlvblNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5sb2dpbkZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIEVtYWlsOiBuZXcgRm9ybUNvbnRyb2w8c3RyaW5nIHwgbnVsbD4obnVsbCwgW1xuICAgICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkLFxuICAgICAgICBWYWxpZGF0b3JzLmVtYWlsLFxuICAgICAgXSksXG4gICAgICBQYXNzd29yZDogbmV3IEZvcm1Db250cm9sPHN0cmluZyB8IG51bGw+KG51bGwsIFtcbiAgICAgICAgVmFsaWRhdG9ycy5yZXF1aXJlZCxcbiAgICAgICAgVmFsaWRhdG9ycy5taW5MZW5ndGgoNSksXG4gICAgICBdKSxcbiAgICB9KTtcbiAgICB0aGlzLmFwaUtleSA9IHRoaXMuZW52U3ZjLmVudmlyb25tZW50LlRlbmFudDtcbiAgICB0aGlzLnNlY3JldCA9IHRoaXMuZW52U3ZjLmVudmlyb25tZW50LlNlY3JldDtcbiAgfVxuXG4gIGFzeW5jIG5nT25Jbml0KCkge1xuICBcbiAgICBhd2FpdCB0aGlzLmdldFRlbmFudENvbmZpZygpO1xuICAgIHRoaXMucm91dGUucXVlcnlQYXJhbXMuc3Vic2NyaWJlKChwYXJhbXMpID0+IHtcbiAgICAgIHRoaXMuY29kZSA9IHBhcmFtc1snY29kZSddO1xuICAgICAgdGhpcy50eXBlID0gcGFyYW1zWyd0eXBlJ107XG4gICAgICBpZiAodGhpcy5jb2RlKSB7XG4gICAgICAgIHRoaXMudmVyaWZ5VXNlckRldGFpbHMoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgIFxuICAgIFxuICB9XG5cbiAgICBcbiAgYXN5bmMgZ2V0VGVuYW50Q29uZmlnKCkge1xuICAgICBjb25zdCBpc0xvY2FsaG9zdCA9IHdpbmRvdz8ubG9jYXRpb24/Lmhvc3RuYW1lID09PSAnbG9jYWxob3N0JztcbiAgICAgY29uc3QgcGF5bG9hZCA9IGlzTG9jYWxob3N0XG4gICAgID8ge1xuICAgICAgICAgS2V5OiBcIlVybEtleVwiLFxuICAgICAgICAgVmFsdWU6J2h0dHBzOi8vYm92YXMud2hpdGUzNjAubmV0J1xuICAgICAgIH1cbiAgICAgOiB1bmRlZmluZWQ7XG4gICAgdHJ5eyBcbiAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMuc2VydmVyLnBvc3Q8VGVuYW50Q29uZmlnPihcbiAgICAgICAgYFRlbmFudC9HZXRUZW5hbnRDb25maWdCeVVybEtleWAsXG4gICAgICAgICBwYXlsb2FkXG4gICAgICAgIFxuICAgICAgKTtcbiAgICAgIHRoaXMudGVuYW50RGV0YWlscyA9IHJlcztcbiAgICAgIHRoaXMuY29uZmlnRGF0YSA9IHJlcztcbiAgICAgIHRoaXMuQXV0aE1lY2hhbmlzbXMgPSB0aGlzLnRlbmFudERldGFpbHM/LkF1dGhNZWNoYW5pc21zO1xuICAgICAgaWYgKFxuICAgICAgICAhdGhpcy50ZW5hbnREZXRhaWxzPy5BdXRoTWVjaGFuaXNtICYmXG4gICAgICAgIHRoaXMudGVuYW50RGV0YWlscz8uQXV0aE1lY2hhbmlzbSAhPT0gTWVjaGFuaXNtVHlwZS5JbkFwcFxuICAgICAgKSB7XG4gICAgICAgIHRoaXMuc2hvd2Zvcm0gPSBmYWxzZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc2hvd2Zvcm0gPSB0cnVlO1xuICAgICAgfVxuICAgICAgdGhpcy50ZW5hbnRDb25maWdMb2FkZWQuZW1pdCh0aGlzLmNvbmZpZ0RhdGEpO1xuICAgIH1jYXRjaChlcnIpeyBcbiAgICAgY29uc3QgbXNnID0gZXJyO1xuICAgICB0aGlzLnRlbmFudENvbmZpZ0xvYWRlZC5lbWl0KG51bGwpO1xuICAgIH1cbiAgfVxuXG4gIGNoZWNrRm9ybSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5sb2dpbkZvcm0udmFsaWQ7XG4gIH1cblxuICBhc3luYyB2ZXJpZnlVc2VyRGV0YWlscygpIHtcbiAgICBpZiAodGhpcy5BdXRoTWVjaGFuaXNtcyAhPT0gbnVsbCAmJiB0aGlzLmFwaUtleSkge1xuICAgICAgY29uc3QgZGF0YTogYW55ID0gdGhpcy5BdXRoTWVjaGFuaXNtcy5maW5kKChpdGVtKSA9PlxuICAgICAgICBpdGVtLkF1dGhNZWNoYW5pc20uaW5jbHVkZXModGhpcy50eXBlKVxuICAgICAgKTtcbiAgICAgIGNvbnN0IHBheWxvYWQgPSB7XG4gICAgICAgIEF1dGhDb2RlOiB0aGlzLmNvZGUsXG4gICAgICAgIFRlbmFudDogdGhpcy5hcGlLZXksXG4gICAgICAgIEF1dGhNZWNoYW5pc206IGRhdGEuQXV0aE1lY2hhbmlzbSxcbiAgICAgIH07XG5cbiAgICAgIHRoaXMudXRpbFNlcnZpY2Uuc2VuZEJJKHRydWUpO1xuICAgICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5zZXJ2ZXIucG9zdChcbiAgICAgICAgYEF1dGhlbnRpY2F0aW9uL0dldFVzZXJEZXRhaWxzYCxcbiAgICAgICAgcGF5bG9hZFxuICAgICAgKTtcbiAgICAgIHRoaXMudXRpbFNlcnZpY2Uuc2VuZEJJKGZhbHNlKTtcbiAgICAgIGlmIChyZXMgaW5zdGFuY2VvZiBFcnJvclJlc3BvbnNlKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZhciByZXN1bHQgPSByZXMgYXMgSU9hdXRoUmVzcDtcbiAgICAgICAgdGhpcy5PYXV0aERhdGEgPSB7XG4gICAgICAgICAgQWNjZXNzVG9rZW46IHJlc3VsdD8uQWNjZXNzVG9rZW4sXG4gICAgICAgICAgRW1haWw6IHJlc3VsdD8uRW1haWwsXG4gICAgICAgICAgRmlyc3ROYW1lOiByZXN1bHQ/LkZpcnN0TmFtZSxcbiAgICAgICAgICBMYXN0TmFtZTogcmVzdWx0Py5MYXN0TmFtZSxcbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLnN1Ym1pdChkYXRhLkF1dGhNZWNoYW5pc20pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHN1Ym1pdCh0eXBlOiBzdHJpbmcpIHtcbiAgICBsZXQgZGF0YTogTG9naW5EYXRhID0ge1xuICAgICAgTWFpbEFkZHJlc3M6ICcnLFxuICAgICAgUGFzc3dvcmQ6ICcnLFxuICAgICAgTG9naW5UeXBlOiB0eXBlLFxuICAgICAgVGVuYW50OiB0aGlzLnRlbmFudERldGFpbHMuVGVuYW50SWQsXG4gICAgICBTZWNyZXRlOiB0aGlzLnNlY3JldCxcbiAgICAgIFRva2VuOiAnJyxcbiAgICB9O1xuICBcbiAgICBpZiAodHlwZSA9PT0gTWVjaGFuaXNtVHlwZS5JbkFwcCAmJiB0aGlzLmNoZWNrRm9ybSgpKSB7XG4gICAgICBkYXRhID0ge1xuICAgICAgICAuLi5kYXRhLFxuICAgICAgICBNYWlsQWRkcmVzczogdGhpcy5sb2dpbkZvcm0uY29udHJvbHNbJ0VtYWlsJ10udmFsdWUsXG4gICAgICAgIFBhc3N3b3JkOlN0cmluZyhDcnlwdG9KUy5NRDUodGhpcy5sb2dpbkZvcm0uY29udHJvbHNbJ1Bhc3N3b3JkJ10udmFsdWUpKSxcbiAgICAgIH07XG4gICAgfSBlbHNlIGlmICh0eXBlID09PSBNZWNoYW5pc21UeXBlLkdvb2dsZSB8fCB0eXBlID09PSBNZWNoYW5pc21UeXBlLk1pY3Jvc29mdEFEKSB7XG4gICAgICBkYXRhID0ge1xuICAgICAgICAuLi5kYXRhLFxuICAgICAgICBNYWlsQWRkcmVzczogdGhpcy5PYXV0aERhdGE/LkVtYWlsLFxuICAgICAgICBUb2tlbjogdGhpcy5PYXV0aERhdGE/LkFjY2Vzc1Rva2VuLFxuICAgICAgfTtcbiAgICB9XG4gICAgICBcbiAgICB0aGlzLmZvcm1TdWJtaXQuZW1pdChkYXRhKTtcbiAgICB0aGlzLnV0aWxTZXJ2aWNlLnNlbmRCSSh0cnVlKTsgLy8gUHJlc2VydmluZyB5b3VyIHV0aWxTZXJ2aWNlIGNhbGxcbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG4gIFxuIFxuICBcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5zZXJ2ZXIucG9zdChgQXV0aGVudGljYXRpb24vTG9naW5gLCBkYXRhKTtcbiAgICAgIGNvbnNvbGUubG9nKCdSZXNwb25zZTonLCByZXMpO1xuICAgICAgdGhpcy51dGlsU2VydmljZS5zZW5kQkkoZmFsc2UpOyAvLyBTdG9wIHV0aWxTZXJ2aWNlIHRyYWNraW5nIG9uIHN1Y2Nlc3MvZmFpbHVyZVxuICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgXG4gICAgICBpZiAocmVzIGluc3RhbmNlb2YgRXJyb3JSZXNwb25zZSkge1xuICAgICAgICB0aGlzLm9uU3VibWl0RW5kLmVtaXQocmVzKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHJlcyBhcyBSZXNwb25zZUtleVZhbHVlO1xuICAgICAgICB0aGlzLm9uU3VibWl0RW5kLmVtaXQocmVzdWx0KTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhpcy51dGlsU2VydmljZS5zZW5kQkkoZmFsc2UpOyAvLyBTdG9wIHV0aWxTZXJ2aWNlIHRyYWNraW5nIG9uIGVycm9yXG4gICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgZHVyaW5nIGxvZ2luOicsIGVycm9yKTtcbiAgICB9XG4gIH1cbiAgXG4gIGdldCBzdHlsZXMoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICdiYWNrZ3JvdW5kLWNvbG9yJzogdGhpcy5iZ0NvbG9yLFxuICAgICAgJ2JveC1zaGFkb3cnOiB0aGlzLmJveFNoYWRvdyxcbiAgICAgIGJvcmRlcjogdGhpcy5ib3JkZXIsXG4gICAgICAnYm9yZGVyLXJhZGl1cyc6IHRoaXMuYm9yZGVyUmFkaXVzLFxuICAgICAgY29sb3I6IHRoaXMudGV4dENvbG9yLFxuICAgICAgd2lkdGg6IHRoaXMud2lkdGgsXG4gICAgICAnbWF4LXdpZHRoJzogdGhpcy5tYXhXaWR0aCxcbiAgICAgIG1hcmdpbjogdGhpcy5tYXJnaW4sXG4gICAgICBoZWlnaHQ6IHRoaXMuaGVpZ2h0LFxuICAgICAgcGFkZGluZzogdGhpcy5wZCxcbiAgICB9O1xuICB9XG59XG4iLCI8c2VjdGlvblxuW25nU3R5bGVdPVwic3R5bGVzXCJcbmNsYXNzPVwie3sgY3VzdG9tQ2xhc3MgfX1cIlxuPlxuICAgIDxoMiBjbGFzcz1cInt7aGVhZGxpbmdDbGFzc319XCI+e3toZWFkbGluZ1RleHR9fTwvaDI+XG4gICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJsb2dpbkZvcm1cIiAobmdTdWJtaXQpPVwic3VibWl0KCdJbkFwcCcpXCIgY2xhc3M9XCJmbGV4V3JhcHBlclwiPiBcbiAgICAgIDxkaXYgY2xhc3M9XCJmb3JtV3JhcHBlclwiICpuZ0lmPVwic2hvd2Zvcm1cIj4gXG4gICAgICA8dmVyYmVuYS1pbnB1dFxuICAgICAgICBbbGFiZWxdPVwiJ0VtYWlsJ1wiXG4gICAgICAgIFtsYWJlbENvbG9yXT1cImlucHV0TGFiZWxDb2xvclwiXG4gICAgICAgIFtwbGFjZUhvbGRlcl09XCInJ1wiXG4gICAgICAgIFtyZXF1aXJlZF09XCJ0cnVlXCJcbiAgICAgICAgW3R5cGVdPVwiJ2VtYWlsJ1wiXG4gICAgICAgIGZvcm1Db250cm9sTmFtZT1cIkVtYWlsXCJcbiAgICAgICAgW3Nob3dCb3JkZXJdPVwidHJ1ZVwiXG4gICAgICAgIFtiZ0NvbG9yXT1cImlucHV0QmdDb2xvclwiXG4gICAgICAgIFtib3JkZXJdPVwiaW5wdXRCb3JkZXJcIlxuICAgICAgICBbYm9yZGVyUmFkaXVzXT1cImlucHV0Qm9yZGVyUmFkaXVzXCJcbiAgICAgICAgW3Nob3dFcnJvck1lc3NhZ2VdPVwidHJ1ZVwiXG4gICAgICAgIFtlcnJvck1lc3NhZ2VDb2xvcl09XCIncmVkJ1wiXG4gICAgICAgIFtlcnJvckJvcmRlckNvbG9yXT1cIidyZWQnXCJcbiAgICAgICAgW2Vycm9yUG9zaXRpb25dPVwiJ2JvdHRvbSdcIlxuICAgICAgICBjbGFzcz1cIm91dGxpbmUtbm9uZSBmb2N1cy1ub25lXCJcbiAgICAgID48L3ZlcmJlbmEtaW5wdXQ+XG4gICAgICA8ZGl2PiBcbiAgICAgICAgPHZlcmJlbmEtaW5wdXRcbiAgICAgICAgW2xhYmVsXT1cIidQYXNzd29yZCdcIlxuICAgICAgICBbbGFiZWxDb2xvcl09XCJpbnB1dExhYmVsQ29sb3JcIlxuICAgICAgICBbcGxhY2VIb2xkZXJdPVwiJydcIlxuICAgICAgICBbcmVxdWlyZWRdPVwidHJ1ZVwiXG4gICAgICAgIFt0eXBlXT1cIidwYXNzd29yZCdcIlxuICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJQYXNzd29yZFwiXG4gICAgICAgIFtzaG93Qm9yZGVyXT1cInRydWVcIlxuICAgICAgICBbYmdDb2xvcl09XCJpbnB1dEJnQ29sb3JcIlxuICAgICAgICBbYm9yZGVyXT1cImlucHV0Qm9yZGVyXCJcbiAgICAgICAgW2JvcmRlclJhZGl1c109XCJpbnB1dEJvcmRlclJhZGl1c1wiXG4gICAgICAgIFtzaG93RXJyb3JNZXNzYWdlXT1cInRydWVcIlxuICAgICAgICBbZXJyb3JNZXNzYWdlQ29sb3JdPVwiJ3JlZCdcIlxuICAgICAgICBbZXJyb3JCb3JkZXJDb2xvcl09XCIncmVkJ1wiXG4gICAgICAgIFtlcnJvclBvc2l0aW9uXT1cIidib3R0b20nXCJcbiAgICAgICAgW3Bhc3N3b3JkVG9nZ2xlXT1cInRydWVcIlxuICAgICAgICBbcGFzc0xlbmd0aF09XCI1XCJcbiAgICAgICAgW2N1c3RvbUVycm9yTWVzc2FnZXNdPVwie1xuICAgICAgICAgIHBhc3N3b3JkOidQYXNzd29yZCBpcyByZXF1aXJlZCdcbiAgICAgICAgfVwiXG4gICAgICAgIGNsYXNzPVwib3V0bGluZS1ub25lIGZvY3VzLW5vbmVcIlxuICAgICAgPjwvdmVyYmVuYS1pbnB1dD5cbiAgICAgIDxkaXYgY2xhc3M9XCJwd2RXcmFwcGVyXCI+IFxuICAgICAgICAgIDxwIGNsYXM9XCJtYi0wXCI+IDxhIFtyb3V0ZXJMaW5rXT1cImZvcmdldFBhc3N3b3JkTGlua1wiIGNsYXNzPVwie3tmb3JnZXRQYXNzd29yZENsYXNzfX1cIj5Gb3Jnb3QgcGFzc3dvcmQ8L2E+PC9wPlxuICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxsaWItYnV0dG9uIFxuICAgICAgW2J1dHRvbkNsYXNzXT1cImJ0bkNsYXNzXCJcbiAgICAgIFtjb2xvcl09XCJidG5Db2xvclwiXG4gICAgICBbYm9yZGVyXT1cImJ0bkJvcmRlclwiXG4gICAgICBbYm9yZGVyUmFkaXVzXT1cImJ0bkJvcmRlclJhZGl1c1wiXG4gICAgICBbYmdDb2xvcl09XCJidG5CZ0NvbG9yXCJcbiAgICAgIFtwZF09XCJidG5QZFwiXG4gICAgICBbdGV4dF09XCJidG5UZXh0XCIgXG4gICAgICB0eXBlPVwic3VibWl0XCIgXG4gICAgICBbZGlzYWJsZWRdPVwiIXRoaXMuY2hlY2tGb3JtKClcIlxuICAgICAgPjwvbGliLWJ1dHRvbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2PiBcbiAgICAgIDxwICpuZ0lmPVwicmVxdWVzdEFjY2Vzc0xpbmtcIj5cbiAgICAgICAgPGEgW3JvdXRlckxpbmtdPVwicmVxdWVzdEFjY2Vzc0xpbmtcIiAgY2xhc3M9XCJ7e3JlcXVlc3RBY2Nlc3NDbGFzc319XCI+Q2xpY2sgaGVyZSB0byByZXF1ZXN0IHVzZXIgYWNjZXNzPC9hPlxuICAgICAgPC9wPlxuICAgICBcbiAgICA8L2Rpdj5cbiAgPC9mb3JtPlxuICA8ZGl2PiBcbiAgICA8ZGl2ICpuZ0lmPVwiQXV0aE1lY2hhbmlzbXMgIT09IG51bGxcIj4gXG4gICAgICA8dmVyYmVuLW8tYXV0aCBcbiAgICAgICAgW2F1dGhNZWNoYW5pc21zXT1cIkF1dGhNZWNoYW5pc21zXCJcbiAgICAgID48L3ZlcmJlbi1vLWF1dGg+XG4gICAgPC9kaXY+XG4gICAgICA8cCBjbGFzcz1cInt7Y3JlYXRlQWNjb3VudENsYXNzfX1cIiAqbmdJZj1cImNyZWF0ZUFjY291bnRMaW5rXCI+XG4gICAgICAgIERvbid0IGhhdmUgYW4gYWNjb3VudD9cbiAgICAgICAgPGEgW3JvdXRlckxpbmtdPVwiY3JlYXRlQWNjb3VudExpbmtcIiAgY2xhc3M9XCJ7e2NyZWF0ZUFjY291bnRMaW5rQ2xhc3N9fVwiPkNyZWF0ZSBhbiBhY2NvdW50PC9hPlxuICAgICAgPC9wPlxuICA8L2Rpdj5cbiAgPC9zZWN0aW9uPlxuICAiXX0=
@@ -1,24 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { SignInComponent } from '../sign-in/sign-in.component';
4
- import { FormsModule } from '@angular/forms';
5
- import { RouterLink } from '@angular/router';
6
- import { VerbenaButtonModule, VerbenaInputModule } from 'verben-ng-ui';
7
- import { OAuthModule } from '../o-auth/o-auth.module';
8
- import { ButtonModule } from '../button/button.module';
9
- import { ReactiveFormsModule } from '@angular/forms';
10
- import * as i0 from "@angular/core";
11
- export class SignInModule {
12
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SignInModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
13
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: SignInModule, declarations: [SignInComponent], imports: [CommonModule, FormsModule, VerbenaInputModule, VerbenaButtonModule, RouterLink, OAuthModule, ButtonModule, ReactiveFormsModule], exports: [SignInComponent] });
14
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SignInModule, imports: [CommonModule, FormsModule, VerbenaInputModule, VerbenaButtonModule, OAuthModule, ButtonModule, ReactiveFormsModule] });
15
- }
16
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SignInModule, decorators: [{
17
- type: NgModule,
18
- args: [{
19
- declarations: [SignInComponent],
20
- imports: [CommonModule, FormsModule, VerbenaInputModule, VerbenaButtonModule, RouterLink, OAuthModule, ButtonModule, ReactiveFormsModule],
21
- exports: [SignInComponent]
22
- }]
23
- }] });
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbi1pbi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4tYXV0aGVudGljYXRpb24tdWkvc3JjL2xpYi9jb21wb25lbnRzL3NpZ24taW4vc2lnbi1pbi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsVUFBVSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDNUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBT3JELE1BQU0sT0FBTyxZQUFZO3dHQUFaLFlBQVk7eUdBQVosWUFBWSxpQkFKUixlQUFlLGFBQ3BCLFlBQVksRUFBQyxXQUFXLEVBQUMsa0JBQWtCLEVBQUMsbUJBQW1CLEVBQUMsVUFBVSxFQUFDLFdBQVcsRUFBQyxZQUFZLEVBQUMsbUJBQW1CLGFBQ3ZILGVBQWU7eUdBRWQsWUFBWSxZQUhiLFlBQVksRUFBQyxXQUFXLEVBQUMsa0JBQWtCLEVBQUMsbUJBQW1CLEVBQVksV0FBVyxFQUFDLFlBQVksRUFBQyxtQkFBbUI7OzRGQUd0SCxZQUFZO2tCQUx4QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLGVBQWUsQ0FBQztvQkFDL0IsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFDLFdBQVcsRUFBQyxrQkFBa0IsRUFBQyxtQkFBbUIsRUFBQyxVQUFVLEVBQUMsV0FBVyxFQUFDLFlBQVksRUFBQyxtQkFBbUIsQ0FBQztvQkFDbEksT0FBTyxFQUFFLENBQUMsZUFBZSxDQUFDO2lCQUMzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgU2lnbkluQ29tcG9uZW50IH0gZnJvbSAnLi4vc2lnbi1pbi9zaWduLWluLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFJvdXRlckxpbmt9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBWZXJiZW5hQnV0dG9uTW9kdWxlLCBWZXJiZW5hSW5wdXRNb2R1bGUgfSBmcm9tICd2ZXJiZW4tbmctdWknO1xuaW1wb3J0IHsgT0F1dGhNb2R1bGUgfSBmcm9tICcuLi9vLWF1dGgvby1hdXRoLm1vZHVsZSc7XG5pbXBvcnQgeyBCdXR0b25Nb2R1bGUgfSBmcm9tICcuLi9idXR0b24vYnV0dG9uLm1vZHVsZSc7XG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtTaWduSW5Db21wb25lbnRdLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLEZvcm1zTW9kdWxlLFZlcmJlbmFJbnB1dE1vZHVsZSxWZXJiZW5hQnV0dG9uTW9kdWxlLFJvdXRlckxpbmssT0F1dGhNb2R1bGUsQnV0dG9uTW9kdWxlLFJlYWN0aXZlRm9ybXNNb2R1bGVdLFxuICBleHBvcnRzOiBbU2lnbkluQ29tcG9uZW50XVxufSlcbmV4cG9ydCBjbGFzcyBTaWduSW5Nb2R1bGUge31cblxuIl19