verben-authentication-ui 1.0.13 → 1.0.15

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 (530) hide show
  1. package/esm2022/public-api.mjs +17 -35
  2. package/esm2022/src/lib/base/base-data.component.mjs +80 -0
  3. package/esm2022/src/lib/base/base-data.facade.mjs +130 -0
  4. package/esm2022/src/lib/base/base-data.service.mjs +21 -0
  5. package/esm2022/src/lib/base/base-data.state.mjs +74 -0
  6. package/esm2022/src/lib/base/index.mjs +2 -0
  7. package/esm2022/src/lib/base/models.mjs +2 -0
  8. package/esm2022/src/lib/base/public-api.mjs +6 -0
  9. package/esm2022/src/lib/base/verben-authentication-ui-src-lib-base.mjs +5 -0
  10. package/esm2022/src/lib/components/auth-callback/auth-callback.component.mjs +57 -0
  11. package/esm2022/{lib → src/lib}/components/auth-callback/auth-callback.module.mjs +1 -1
  12. package/esm2022/src/lib/components/auth-callback/index.mjs +2 -0
  13. package/esm2022/src/lib/components/auth-callback/public-api.mjs +3 -0
  14. package/esm2022/src/lib/components/auth-callback/verben-authentication-ui-src-lib-components-auth-callback.mjs +5 -0
  15. package/esm2022/{lib → src/lib}/components/button/button.component.mjs +1 -1
  16. package/esm2022/src/lib/components/button/button.module.mjs +20 -0
  17. package/esm2022/src/lib/components/button/index.mjs +2 -0
  18. package/esm2022/src/lib/components/button/public-api.mjs +3 -0
  19. package/esm2022/src/lib/components/button/verben-authentication-ui-src-lib-components-button.mjs +5 -0
  20. package/esm2022/src/lib/components/forgot-password/ForgotPasswordData.mjs +2 -0
  21. package/esm2022/{lib → src/lib}/components/forgot-password/forgot-password.component.mjs +8 -9
  22. package/esm2022/{lib → src/lib}/components/forgot-password/forgot-password.module.mjs +1 -1
  23. package/esm2022/src/lib/components/forgot-password/index.mjs +2 -0
  24. package/esm2022/src/lib/components/forgot-password/public-api.mjs +4 -0
  25. package/esm2022/src/lib/components/forgot-password/verben-authentication-ui-src-lib-components-forgot-password.mjs +5 -0
  26. package/esm2022/src/lib/components/mail/index.mjs +2 -0
  27. package/esm2022/src/lib/components/mail/mail.component.mjs +69 -0
  28. package/esm2022/src/lib/components/mail/mail.module.mjs +21 -0
  29. package/esm2022/src/lib/components/mail/public-api.mjs +3 -0
  30. package/esm2022/src/lib/components/mail/verben-authentication-ui-src-lib-components-mail.mjs +5 -0
  31. package/esm2022/src/lib/components/mail-validation/index.mjs +2 -0
  32. package/esm2022/{lib → src/lib}/components/mail-validation/mail-validation.component.mjs +1 -1
  33. package/esm2022/{lib → src/lib}/components/mail-validation/mail-validation.module.mjs +1 -1
  34. package/esm2022/src/lib/components/mail-validation/public-api.mjs +3 -0
  35. package/esm2022/src/lib/components/mail-validation/verben-authentication-ui-src-lib-components-mail-validation.mjs +5 -0
  36. package/esm2022/src/lib/components/o-auth/index.mjs +2 -0
  37. package/esm2022/src/lib/components/o-auth/o-auth.component.mjs +107 -0
  38. package/esm2022/{lib → src/lib}/components/o-auth/o-auth.module.mjs +1 -1
  39. package/esm2022/src/lib/components/o-auth/public-api.mjs +3 -0
  40. package/esm2022/src/lib/components/o-auth/verben-authentication-ui-src-lib-components-o-auth.mjs +5 -0
  41. package/esm2022/src/lib/components/otp-input/index.mjs +2 -0
  42. package/esm2022/src/lib/components/otp-input/otp-input.component.mjs +86 -0
  43. package/esm2022/src/lib/components/otp-input/otp-input.module.mjs +42 -0
  44. package/esm2022/src/lib/components/otp-input/public-api.mjs +3 -0
  45. package/esm2022/src/lib/components/otp-input/verben-authentication-ui-src-lib-components-otp-input.mjs +5 -0
  46. package/esm2022/src/lib/components/reset-password/ResetPasswordData.mjs +2 -0
  47. package/esm2022/src/lib/components/reset-password/index.mjs +2 -0
  48. package/esm2022/src/lib/components/reset-password/public-api.mjs +4 -0
  49. package/esm2022/{lib → src/lib}/components/reset-password/reset-password.component.mjs +8 -9
  50. package/esm2022/{lib → src/lib}/components/reset-password/reset-password.module.mjs +1 -1
  51. package/esm2022/src/lib/components/reset-password/verben-authentication-ui-src-lib-components-reset-password.mjs +5 -0
  52. package/esm2022/src/lib/components/role-control/ChildrenType.mjs +6 -0
  53. package/esm2022/src/lib/components/role-control/MappedRole.mjs +2 -0
  54. package/esm2022/src/lib/components/role-control/MappedRoleAction.mjs +2 -0
  55. package/esm2022/src/lib/components/role-control/MappedRoleContext.mjs +2 -0
  56. package/esm2022/src/lib/components/role-control/UIActions.mjs +7 -0
  57. package/esm2022/src/lib/components/role-control/UIs.mjs +40 -0
  58. package/esm2022/src/lib/components/role-control/base-table-style.mjs +53 -0
  59. package/esm2022/src/lib/components/role-control/index.mjs +2 -0
  60. package/esm2022/src/lib/components/role-control/public-api.mjs +3 -0
  61. package/esm2022/src/lib/components/role-control/role-control.component.mjs +1720 -0
  62. package/esm2022/src/lib/components/role-control/role-control.module.mjs +18 -0
  63. package/esm2022/src/lib/components/role-control/role-control.service.mjs +57 -0
  64. package/esm2022/src/lib/components/role-control/verben-authentication-ui-src-lib-components-role-control.mjs +5 -0
  65. package/esm2022/src/lib/components/sign-in/index.mjs +2 -0
  66. package/esm2022/src/lib/components/sign-in/public-api.mjs +3 -0
  67. package/esm2022/src/lib/components/sign-in/sign-in.component.mjs +316 -0
  68. package/esm2022/src/lib/components/sign-in/sign-in.module.mjs +46 -0
  69. package/esm2022/src/lib/components/sign-in/verben-authentication-ui-src-lib-components-sign-in.mjs +5 -0
  70. package/esm2022/src/lib/components/sign-up/index.mjs +2 -0
  71. package/esm2022/src/lib/components/sign-up/public-api.mjs +3 -0
  72. package/esm2022/src/lib/components/sign-up/sign-up.component.mjs +227 -0
  73. package/esm2022/src/lib/components/sign-up/sign-up.module.mjs +43 -0
  74. package/esm2022/src/lib/components/sign-up/verben-authentication-ui-src-lib-components-sign-up.mjs +5 -0
  75. package/esm2022/src/lib/components/sso/base-table-style.mjs +53 -0
  76. package/esm2022/src/lib/components/sso/helper.mjs +16 -0
  77. package/esm2022/src/lib/components/sso/index.mjs +2 -0
  78. package/esm2022/src/lib/components/sso/public-api.mjs +3 -0
  79. package/esm2022/{lib → src/lib}/components/sso/sso-form/sso-form.component.mjs +1 -1
  80. package/esm2022/src/lib/components/sso/sso.columns.mjs +29 -0
  81. package/esm2022/src/lib/components/sso/sso.component.mjs +234 -0
  82. package/esm2022/src/lib/components/sso/sso.module.mjs +63 -0
  83. package/esm2022/src/lib/components/sso/verben-authentication-ui-src-lib-components-sso.mjs +5 -0
  84. package/esm2022/src/lib/components/two-factor-auth-otp/index.mjs +2 -0
  85. package/esm2022/src/lib/components/two-factor-auth-otp/public-api.mjs +3 -0
  86. package/esm2022/src/lib/components/two-factor-auth-otp/two-factor-auth-otp.component.mjs +208 -0
  87. package/esm2022/src/lib/components/two-factor-auth-otp/two-factor-auth-otp.module.mjs +35 -0
  88. package/esm2022/src/lib/components/two-factor-auth-otp/verben-authentication-ui-src-lib-components-two-factor-auth-otp.mjs +5 -0
  89. package/esm2022/src/lib/components/two-factor-auth-setup/index.mjs +2 -0
  90. package/esm2022/src/lib/components/two-factor-auth-setup/public-api.mjs +3 -0
  91. package/esm2022/{lib → src/lib}/components/two-factor-auth-setup/two-factor-auth-setup.component.mjs +1 -1
  92. package/esm2022/src/lib/components/two-factor-auth-setup/two-factor-auth-setup.module.mjs +19 -0
  93. package/esm2022/src/lib/components/two-factor-auth-setup/verben-authentication-ui-src-lib-components-two-factor-auth-setup.mjs +5 -0
  94. package/esm2022/src/lib/components/user-management/base-table-style.mjs +53 -0
  95. package/esm2022/src/lib/components/user-management/index.mjs +2 -0
  96. package/esm2022/src/lib/components/user-management/public-api.mjs +3 -0
  97. package/esm2022/src/lib/components/user-management/services/user-management.service.mjs +88 -0
  98. package/esm2022/{lib/components/user-management/user-management-form/use-management-form.component.mjs → src/lib/components/user-management/user-management-form/user-management-form.component.mjs} +2 -2
  99. package/esm2022/src/lib/components/user-management/user-management.columns.mjs +53 -0
  100. package/esm2022/{lib → src/lib}/components/user-management/user-management.component.mjs +20 -23
  101. package/esm2022/src/lib/components/user-management/user-management.module.mjs +91 -0
  102. package/esm2022/src/lib/components/user-management/user-status-badge/user-status-badge.component.mjs +26 -0
  103. package/esm2022/src/lib/components/user-management/verben-authentication-ui-src-lib-components-user-management.mjs +5 -0
  104. package/esm2022/src/lib/components/user-request/index.mjs +2 -0
  105. package/esm2022/src/lib/components/user-request/public-api.mjs +3 -0
  106. package/esm2022/src/lib/components/user-request/user-request.component.mjs +318 -0
  107. package/esm2022/src/lib/components/user-request/user-request.module.mjs +38 -0
  108. package/esm2022/src/lib/components/user-request/verben-authentication-ui-src-lib-components-user-request.mjs +5 -0
  109. package/esm2022/src/lib/components/user-request-approval/access-request.columns.mjs +29 -0
  110. package/esm2022/src/lib/components/user-request-approval/base-table-style.mjs +53 -0
  111. package/esm2022/src/lib/components/user-request-approval/facades/user-access-request.facade.mjs +260 -0
  112. package/esm2022/src/lib/components/user-request-approval/helper.mjs +56 -0
  113. package/esm2022/src/lib/components/user-request-approval/index.mjs +2 -0
  114. package/esm2022/src/lib/components/user-request-approval/public-api.mjs +5 -0
  115. package/esm2022/src/lib/components/user-request-approval/services/user-access-request.service.mjs +93 -0
  116. package/esm2022/src/lib/components/user-request-approval/states/user-access-request.state.mjs +92 -0
  117. package/esm2022/src/lib/components/user-request-approval/user-access-request-status-badge/user-access-request-status-badge.component.mjs +26 -0
  118. package/esm2022/{lib → src/lib}/components/user-request-approval/user-request-approval.component.mjs +3 -3
  119. package/esm2022/src/lib/components/user-request-approval/user-request-approval.module.mjs +83 -0
  120. package/esm2022/{lib/components/user-request-approval/user-request-form/use-request-form.component.mjs → src/lib/components/user-request-approval/user-request-form/user-request-form.component.mjs} +2 -2
  121. package/esm2022/src/lib/components/user-request-approval/verben-authentication-ui-src-lib-components-user-request-approval.mjs +5 -0
  122. package/esm2022/src/lib/components/user-request-process/index.mjs +2 -0
  123. package/esm2022/src/lib/components/user-request-process/public-api.mjs +3 -0
  124. package/esm2022/src/lib/components/user-request-process/user-request-process.component.mjs +11 -0
  125. package/esm2022/src/lib/components/user-request-process/user-request-process.module.mjs +18 -0
  126. package/esm2022/src/lib/components/user-request-process/verben-authentication-ui-src-lib-components-user-request-process.mjs +5 -0
  127. package/esm2022/src/lib/models/ApplicationRoleAction.mjs +2 -0
  128. package/esm2022/src/lib/models/ApplicationRoleContext.mjs +2 -0
  129. package/esm2022/src/lib/models/ErrorResponse.mjs +11 -0
  130. package/esm2022/src/lib/models/FilterTypes.mjs +9 -0
  131. package/esm2022/src/lib/models/MailConfig.mjs +2 -0
  132. package/esm2022/src/lib/models/MessageConfig.mjs +2 -0
  133. package/esm2022/src/lib/models/MessageMedium.mjs +6 -0
  134. package/esm2022/src/lib/models/OAuthParam.mjs +2 -0
  135. package/esm2022/src/lib/models/OAuthType.mjs +9 -0
  136. package/esm2022/src/lib/models/PagedResult.mjs +2 -0
  137. package/esm2022/src/lib/models/PasswordRequestParam.mjs +2 -0
  138. package/esm2022/src/lib/models/PeriodMode.mjs +12 -0
  139. package/esm2022/src/lib/models/PermissionConfig.mjs +2 -0
  140. package/esm2022/src/lib/models/ReportSchedule.mjs +2 -0
  141. package/esm2022/src/lib/models/ReportType.mjs +7 -0
  142. package/esm2022/src/lib/models/ResponseKeyValue.mjs +2 -0
  143. package/esm2022/src/lib/models/Role.mjs +2 -0
  144. package/esm2022/src/lib/models/RoleAction.mjs +2 -0
  145. package/esm2022/src/lib/models/RoleContext.mjs +2 -0
  146. package/esm2022/src/lib/models/SMSConfig.mjs +2 -0
  147. package/esm2022/src/lib/models/SearchDynamicWrapper.mjs +2 -0
  148. package/esm2022/src/lib/models/SearchOperator.mjs +6 -0
  149. package/esm2022/src/lib/models/SearchPropertySign.mjs +11 -0
  150. package/esm2022/src/lib/models/SearchPropertyValue.mjs +2 -0
  151. package/esm2022/src/lib/models/SearchPropertyValueType.mjs +11 -0
  152. package/esm2022/src/lib/models/SortDirection.mjs +7 -0
  153. package/esm2022/src/lib/models/Tag.mjs +2 -0
  154. package/esm2022/src/lib/models/TaskNotification.mjs +2 -0
  155. package/esm2022/src/lib/models/TaskNotificationMessageType.mjs +6 -0
  156. package/esm2022/src/lib/models/TaskNotificationType.mjs +6 -0
  157. package/esm2022/src/lib/models/Tenant.mjs +2 -0
  158. package/esm2022/src/lib/models/TenantConfig.mjs +2 -0
  159. package/esm2022/src/lib/models/UserRequest.mjs +2 -0
  160. package/esm2022/src/lib/models/auth-mechanism.mjs +8 -0
  161. package/esm2022/src/lib/models/base.mjs +2 -0
  162. package/esm2022/src/lib/models/conditions.mjs +13 -0
  163. package/esm2022/src/lib/models/index.mjs +2 -0
  164. package/esm2022/src/lib/models/log-in.mjs +2 -0
  165. package/esm2022/src/lib/models/mainUser.mjs +2 -0
  166. package/esm2022/src/lib/models/oauth-resp.mjs +2 -0
  167. package/esm2022/src/lib/models/oauth-response.mjs +2 -0
  168. package/esm2022/src/lib/models/object-state.mjs +8 -0
  169. package/esm2022/src/lib/models/otpValue.mjs +2 -0
  170. package/esm2022/src/lib/models/paged.mjs +2 -0
  171. package/esm2022/src/lib/models/public-api.mjs +53 -0
  172. package/esm2022/src/lib/models/query-params.mjs +2 -0
  173. package/esm2022/src/lib/models/request-status.mjs +5 -0
  174. package/esm2022/src/lib/models/resend-otp-data.mjs +2 -0
  175. package/esm2022/src/lib/models/sign-up.mjs +2 -0
  176. package/esm2022/src/lib/models/single-sign-on.mjs +2 -0
  177. package/esm2022/src/lib/models/status.mjs +6 -0
  178. package/esm2022/src/lib/models/user-access-request-status.mjs +7 -0
  179. package/esm2022/src/lib/models/user-access-request.mjs +2 -0
  180. package/esm2022/src/lib/models/user.mjs +2 -0
  181. package/esm2022/src/lib/models/verben-authentication-ui-src-lib-models.mjs +5 -0
  182. package/esm2022/src/lib/pipes/async-label.pipe.mjs +25 -0
  183. package/esm2022/src/lib/pipes/index.mjs +2 -0
  184. package/esm2022/src/lib/pipes/public-api.mjs +2 -0
  185. package/esm2022/src/lib/pipes/verben-authentication-ui-src-lib-pipes.mjs +5 -0
  186. package/esm2022/src/lib/services/authorization.service.mjs +26 -0
  187. package/esm2022/src/lib/services/encryption.service.mjs +52 -0
  188. package/esm2022/src/lib/services/environment.service.mjs +26 -0
  189. package/esm2022/src/lib/services/http-web-request.service.mjs +85 -0
  190. package/esm2022/src/lib/services/import.service.mjs +248 -0
  191. package/esm2022/src/lib/services/index.mjs +2 -0
  192. package/esm2022/src/lib/services/label.service.mjs +134 -0
  193. package/esm2022/src/lib/services/public-api.mjs +8 -0
  194. package/esm2022/src/lib/services/util.service.mjs +55 -0
  195. package/esm2022/src/lib/services/verben-authentication-ui-src-lib-services.mjs +5 -0
  196. package/esm2022/src/lib/shared/index.mjs +2 -0
  197. package/esm2022/src/lib/shared/public-api.mjs +2 -0
  198. package/esm2022/src/lib/shared/shared.module.mjs +90 -0
  199. package/esm2022/src/lib/shared/verben-authentication-ui-src-lib-shared.mjs +5 -0
  200. package/esm2022/src/utils/components/base-data-view.component.mjs +111 -0
  201. package/esm2022/src/utils/index.mjs +2 -0
  202. package/esm2022/src/utils/models/DataViewConfig.mjs +2 -0
  203. package/esm2022/src/utils/public-api.mjs +3 -0
  204. package/esm2022/src/utils/verben-authentication-ui-src-utils.mjs +5 -0
  205. package/fesm2022/verben-authentication-ui-src-lib-base.mjs +305 -0
  206. package/fesm2022/verben-authentication-ui-src-lib-base.mjs.map +1 -0
  207. package/fesm2022/verben-authentication-ui-src-lib-components-auth-callback.mjs +79 -0
  208. package/fesm2022/verben-authentication-ui-src-lib-components-auth-callback.mjs.map +1 -0
  209. package/fesm2022/verben-authentication-ui-src-lib-components-button.mjs +70 -0
  210. package/fesm2022/verben-authentication-ui-src-lib-components-button.mjs.map +1 -0
  211. package/fesm2022/verben-authentication-ui-src-lib-components-forgot-password.mjs +128 -0
  212. package/fesm2022/verben-authentication-ui-src-lib-components-forgot-password.mjs.map +1 -0
  213. package/fesm2022/verben-authentication-ui-src-lib-components-mail-validation.mjs +146 -0
  214. package/fesm2022/verben-authentication-ui-src-lib-components-mail-validation.mjs.map +1 -0
  215. package/fesm2022/verben-authentication-ui-src-lib-components-mail.mjs +94 -0
  216. package/fesm2022/verben-authentication-ui-src-lib-components-mail.mjs.map +1 -0
  217. package/fesm2022/verben-authentication-ui-src-lib-components-o-auth.mjs +130 -0
  218. package/fesm2022/verben-authentication-ui-src-lib-components-o-auth.mjs.map +1 -0
  219. package/fesm2022/verben-authentication-ui-src-lib-components-otp-input.mjs +131 -0
  220. package/fesm2022/verben-authentication-ui-src-lib-components-otp-input.mjs.map +1 -0
  221. package/fesm2022/verben-authentication-ui-src-lib-components-reset-password.mjs +144 -0
  222. package/fesm2022/verben-authentication-ui-src-lib-components-reset-password.mjs.map +1 -0
  223. package/fesm2022/verben-authentication-ui-src-lib-components-role-control.mjs +1893 -0
  224. package/fesm2022/verben-authentication-ui-src-lib-components-role-control.mjs.map +1 -0
  225. package/fesm2022/verben-authentication-ui-src-lib-components-sign-in.mjs +363 -0
  226. package/fesm2022/verben-authentication-ui-src-lib-components-sign-in.mjs.map +1 -0
  227. package/fesm2022/verben-authentication-ui-src-lib-components-sign-up.mjs +271 -0
  228. package/fesm2022/verben-authentication-ui-src-lib-components-sign-up.mjs.map +1 -0
  229. package/fesm2022/verben-authentication-ui-src-lib-components-sso.mjs +462 -0
  230. package/fesm2022/verben-authentication-ui-src-lib-components-sso.mjs.map +1 -0
  231. package/fesm2022/verben-authentication-ui-src-lib-components-two-factor-auth-otp.mjs +245 -0
  232. package/fesm2022/verben-authentication-ui-src-lib-components-two-factor-auth-otp.mjs.map +1 -0
  233. package/fesm2022/verben-authentication-ui-src-lib-components-two-factor-auth-setup.mjs +113 -0
  234. package/fesm2022/verben-authentication-ui-src-lib-components-two-factor-auth-setup.mjs.map +1 -0
  235. package/fesm2022/verben-authentication-ui-src-lib-components-user-management.mjs +894 -0
  236. package/fesm2022/verben-authentication-ui-src-lib-components-user-management.mjs.map +1 -0
  237. package/fesm2022/verben-authentication-ui-src-lib-components-user-request-approval.mjs +1021 -0
  238. package/fesm2022/verben-authentication-ui-src-lib-components-user-request-approval.mjs.map +1 -0
  239. package/fesm2022/verben-authentication-ui-src-lib-components-user-request-process.mjs +34 -0
  240. package/fesm2022/verben-authentication-ui-src-lib-components-user-request-process.mjs.map +1 -0
  241. package/fesm2022/verben-authentication-ui-src-lib-components-user-request.mjs +355 -0
  242. package/fesm2022/verben-authentication-ui-src-lib-components-user-request.mjs.map +1 -0
  243. package/fesm2022/verben-authentication-ui-src-lib-models.mjs +153 -0
  244. package/fesm2022/verben-authentication-ui-src-lib-models.mjs.map +1 -0
  245. package/fesm2022/verben-authentication-ui-src-lib-pipes.mjs +32 -0
  246. package/fesm2022/verben-authentication-ui-src-lib-pipes.mjs.map +1 -0
  247. package/fesm2022/verben-authentication-ui-src-lib-services.mjs +610 -0
  248. package/fesm2022/verben-authentication-ui-src-lib-services.mjs.map +1 -0
  249. package/fesm2022/verben-authentication-ui-src-lib-shared.mjs +97 -0
  250. package/fesm2022/verben-authentication-ui-src-lib-shared.mjs.map +1 -0
  251. package/fesm2022/verben-authentication-ui-src-utils.mjs +118 -0
  252. package/fesm2022/verben-authentication-ui-src-utils.mjs.map +1 -0
  253. package/fesm2022/verben-authentication-ui.mjs +16 -6610
  254. package/fesm2022/verben-authentication-ui.mjs.map +1 -1
  255. package/package.json +146 -2
  256. package/public-api.d.ts +16 -34
  257. package/src/lib/base/base-data.component.d.ts +32 -0
  258. package/src/lib/base/base-data.facade.d.ts +27 -0
  259. package/src/lib/base/base-data.service.d.ts +14 -0
  260. package/src/lib/base/base-data.state.d.ts +28 -0
  261. package/src/lib/base/index.d.ts +1 -0
  262. package/src/lib/base/models.d.ts +11 -0
  263. package/src/lib/base/public-api.d.ts +5 -0
  264. package/src/lib/components/auth-callback/index.d.ts +1 -0
  265. package/src/lib/components/auth-callback/public-api.d.ts +2 -0
  266. package/src/lib/components/button/index.d.ts +1 -0
  267. package/src/lib/components/button/public-api.d.ts +2 -0
  268. package/{lib → src/lib}/components/forgot-password/forgot-password.component.d.ts +4 -4
  269. package/src/lib/components/forgot-password/index.d.ts +1 -0
  270. package/src/lib/components/forgot-password/public-api.d.ts +3 -0
  271. package/src/lib/components/mail/index.d.ts +1 -0
  272. package/{lib → src/lib}/components/mail/mail.module.d.ts +1 -1
  273. package/src/lib/components/mail/public-api.d.ts +2 -0
  274. package/src/lib/components/mail-validation/index.d.ts +1 -0
  275. package/src/lib/components/mail-validation/public-api.d.ts +2 -0
  276. package/src/lib/components/o-auth/index.d.ts +1 -0
  277. package/{lib → src/lib}/components/o-auth/o-auth.component.d.ts +1 -1
  278. package/src/lib/components/o-auth/public-api.d.ts +2 -0
  279. package/src/lib/components/otp-input/index.d.ts +1 -0
  280. package/{lib → src/lib}/components/otp-input/otp-input.module.d.ts +2 -2
  281. package/src/lib/components/otp-input/public-api.d.ts +2 -0
  282. package/src/lib/components/reset-password/index.d.ts +1 -0
  283. package/src/lib/components/reset-password/public-api.d.ts +3 -0
  284. package/{lib → src/lib}/components/reset-password/reset-password.component.d.ts +4 -4
  285. package/{lib → src/lib}/components/role-control/MappedRole.d.ts +1 -1
  286. package/{lib → src/lib}/components/role-control/MappedRoleAction.d.ts +1 -1
  287. package/{lib → src/lib}/components/role-control/MappedRoleContext.d.ts +1 -1
  288. package/src/lib/components/role-control/index.d.ts +1 -0
  289. package/src/lib/components/role-control/public-api.d.ts +2 -0
  290. package/{lib → src/lib}/components/role-control/role-control.component.d.ts +21 -13
  291. package/{lib → src/lib}/components/role-control/role-control.module.d.ts +1 -1
  292. package/src/lib/components/sign-in/index.d.ts +1 -0
  293. package/src/lib/components/sign-in/public-api.d.ts +2 -0
  294. package/{lib → src/lib}/components/sign-in/sign-in.component.d.ts +10 -10
  295. package/{lib → src/lib}/components/sign-in/sign-in.module.d.ts +2 -2
  296. package/src/lib/components/sign-up/index.d.ts +1 -0
  297. package/src/lib/components/sign-up/public-api.d.ts +2 -0
  298. package/{lib → src/lib}/components/sign-up/sign-up.component.d.ts +6 -6
  299. package/{lib → src/lib}/components/sign-up/sign-up.module.d.ts +2 -2
  300. package/src/lib/components/sso/helper.d.ts +2 -0
  301. package/src/lib/components/sso/index.d.ts +1 -0
  302. package/src/lib/components/sso/public-api.d.ts +2 -0
  303. package/{lib → src/lib}/components/sso/sso.columns.d.ts +1 -1
  304. package/{lib → src/lib}/components/sso/sso.component.d.ts +1 -1
  305. package/src/lib/components/two-factor-auth-otp/index.d.ts +1 -0
  306. package/src/lib/components/two-factor-auth-otp/public-api.d.ts +2 -0
  307. package/{lib → src/lib}/components/two-factor-auth-otp/two-factor-auth-otp.component.d.ts +6 -6
  308. package/{lib → src/lib}/components/two-factor-auth-otp/two-factor-auth-otp.module.d.ts +2 -2
  309. package/src/lib/components/two-factor-auth-setup/index.d.ts +1 -0
  310. package/src/lib/components/two-factor-auth-setup/public-api.d.ts +2 -0
  311. package/src/lib/components/user-management/index.d.ts +1 -0
  312. package/src/lib/components/user-management/public-api.d.ts +2 -0
  313. package/{lib → src/lib}/components/user-management/services/user-management.service.d.ts +4 -4
  314. package/{lib/components/user-management/user-management-form/use-management-form.component.d.ts → src/lib/components/user-management/user-management-form/user-management-form.component.d.ts} +4 -4
  315. package/{lib → src/lib}/components/user-management/user-management.columns.d.ts +1 -1
  316. package/{lib → src/lib}/components/user-management/user-management.component.d.ts +11 -11
  317. package/{lib → src/lib}/components/user-management/user-management.module.d.ts +2 -2
  318. package/{lib → src/lib}/components/user-management/user-status-badge/user-status-badge.component.d.ts +1 -1
  319. package/src/lib/components/user-request/index.d.ts +1 -0
  320. package/src/lib/components/user-request/public-api.d.ts +2 -0
  321. package/{lib → src/lib}/components/user-request/user-request.component.d.ts +7 -7
  322. package/{lib → src/lib}/components/user-request/user-request.module.d.ts +1 -1
  323. package/{lib → src/lib}/components/user-request-approval/access-request.columns.d.ts +1 -1
  324. package/{lib → src/lib}/components/user-request-approval/facades/user-access-request.facade.d.ts +4 -4
  325. package/{lib → src/lib}/components/user-request-approval/helper.d.ts +1 -1
  326. package/src/lib/components/user-request-approval/index.d.ts +1 -0
  327. package/src/lib/components/user-request-approval/public-api.d.ts +4 -0
  328. package/{lib → src/lib}/components/user-request-approval/services/user-access-request.service.d.ts +6 -6
  329. package/{lib → src/lib}/components/user-request-approval/states/user-access-request.state.d.ts +3 -3
  330. package/{lib → src/lib}/components/user-request-approval/user-access-request-status-badge/user-access-request-status-badge.component.d.ts +1 -1
  331. package/{lib → src/lib}/components/user-request-approval/user-request-approval.component.d.ts +2 -2
  332. package/{lib → src/lib}/components/user-request-approval/user-request-approval.module.d.ts +1 -1
  333. package/{lib/components/user-request-approval/user-request-form/use-request-form.component.d.ts → src/lib/components/user-request-approval/user-request-form/user-request-form.component.d.ts} +1 -1
  334. package/src/lib/components/user-request-process/index.d.ts +1 -0
  335. package/src/lib/components/user-request-process/public-api.d.ts +2 -0
  336. package/src/lib/components/user-request-process/user-request-process.component.d.ts +5 -0
  337. package/src/lib/components/user-request-process/user-request-process.module.d.ts +7 -0
  338. package/src/lib/models/FilterTypes.d.ts +6 -0
  339. package/src/lib/models/MailConfig.d.ts +12 -0
  340. package/src/lib/models/MessageConfig.d.ts +3 -0
  341. package/src/lib/models/MessageMedium.d.ts +4 -0
  342. package/src/lib/models/PeriodMode.d.ts +10 -0
  343. package/src/lib/models/ReportSchedule.d.ts +22 -0
  344. package/src/lib/models/ReportType.d.ts +5 -0
  345. package/src/lib/models/SMSConfig.d.ts +10 -0
  346. package/src/lib/models/TaskNotification.d.ts +12 -0
  347. package/src/lib/models/TaskNotificationMessageType.d.ts +4 -0
  348. package/src/lib/models/TaskNotificationType.d.ts +4 -0
  349. package/src/lib/models/Tenant.d.ts +21 -0
  350. package/{lib → src/lib}/models/UserRequest.d.ts +6 -9
  351. package/src/lib/models/index.d.ts +1 -0
  352. package/src/lib/models/public-api.d.ts +52 -0
  353. package/{lib → src/lib}/pipes/async-label.pipe.d.ts +1 -1
  354. package/src/lib/pipes/index.d.ts +1 -0
  355. package/src/lib/pipes/public-api.d.ts +1 -0
  356. package/src/lib/services/import.service.d.ts +15 -0
  357. package/src/lib/services/index.d.ts +1 -0
  358. package/src/lib/services/public-api.d.ts +7 -0
  359. package/src/lib/shared/index.d.ts +1 -0
  360. package/src/lib/shared/public-api.d.ts +1 -0
  361. package/{lib → src/lib}/shared/shared.module.d.ts +2 -2
  362. package/src/utils/components/base-data-view.component.d.ts +34 -0
  363. package/src/utils/index.d.ts +1 -0
  364. package/src/utils/models/DataViewConfig.d.ts +11 -0
  365. package/src/utils/public-api.d.ts +2 -0
  366. package/esm2022/lib/components/auth-callback/auth-callback.component.mjs +0 -57
  367. package/esm2022/lib/components/button/button.module.mjs +0 -20
  368. package/esm2022/lib/components/forgot-password/ForgotPasswordData.mjs +0 -2
  369. package/esm2022/lib/components/mail/mail.component.mjs +0 -69
  370. package/esm2022/lib/components/mail/mail.module.mjs +0 -21
  371. package/esm2022/lib/components/o-auth/o-auth.component.mjs +0 -107
  372. package/esm2022/lib/components/otp-input/otp-input.component.mjs +0 -86
  373. package/esm2022/lib/components/otp-input/otp-input.module.mjs +0 -23
  374. package/esm2022/lib/components/reset-password/ResetPasswordData.mjs +0 -2
  375. package/esm2022/lib/components/role-control/ChildrenType.mjs +0 -6
  376. package/esm2022/lib/components/role-control/MappedRole.mjs +0 -2
  377. package/esm2022/lib/components/role-control/MappedRoleAction.mjs +0 -2
  378. package/esm2022/lib/components/role-control/MappedRoleContext.mjs +0 -2
  379. package/esm2022/lib/components/role-control/UIActions.mjs +0 -7
  380. package/esm2022/lib/components/role-control/UIs.mjs +0 -40
  381. package/esm2022/lib/components/role-control/base-table-style.mjs +0 -53
  382. package/esm2022/lib/components/role-control/role-control.component.mjs +0 -1608
  383. package/esm2022/lib/components/role-control/role-control.module.mjs +0 -18
  384. package/esm2022/lib/components/role-control/role-control.service.mjs +0 -54
  385. package/esm2022/lib/components/sign-in/sign-in.component.mjs +0 -318
  386. package/esm2022/lib/components/sign-in/sign-in.module.mjs +0 -24
  387. package/esm2022/lib/components/sign-up/sign-up.component.mjs +0 -229
  388. package/esm2022/lib/components/sign-up/sign-up.module.mjs +0 -24
  389. package/esm2022/lib/components/sso/base-table-style.mjs +0 -53
  390. package/esm2022/lib/components/sso/helper.mjs +0 -16
  391. package/esm2022/lib/components/sso/sso.columns.mjs +0 -29
  392. package/esm2022/lib/components/sso/sso.component.mjs +0 -236
  393. package/esm2022/lib/components/sso/sso.module.mjs +0 -63
  394. package/esm2022/lib/components/two-factor-auth-otp/two-factor-auth-otp.component.mjs +0 -209
  395. package/esm2022/lib/components/two-factor-auth-otp/two-factor-auth-otp.module.mjs +0 -22
  396. package/esm2022/lib/components/two-factor-auth-setup/two-factor-auth-setup.module.mjs +0 -19
  397. package/esm2022/lib/components/user-management/base-table-style.mjs +0 -53
  398. package/esm2022/lib/components/user-management/services/user-management.service.mjs +0 -88
  399. package/esm2022/lib/components/user-management/user-management.columns.mjs +0 -53
  400. package/esm2022/lib/components/user-management/user-management.module.mjs +0 -85
  401. package/esm2022/lib/components/user-management/user-status-badge/user-status-badge.component.mjs +0 -26
  402. package/esm2022/lib/components/user-request/user-request.component.mjs +0 -320
  403. package/esm2022/lib/components/user-request/user-request.module.mjs +0 -38
  404. package/esm2022/lib/components/user-request-approval/access-request.columns.mjs +0 -29
  405. package/esm2022/lib/components/user-request-approval/base-table-style.mjs +0 -53
  406. package/esm2022/lib/components/user-request-approval/facades/user-access-request.facade.mjs +0 -260
  407. package/esm2022/lib/components/user-request-approval/helper.mjs +0 -56
  408. package/esm2022/lib/components/user-request-approval/services/user-access-request.service.mjs +0 -93
  409. package/esm2022/lib/components/user-request-approval/states/user-access-request.state.mjs +0 -92
  410. package/esm2022/lib/components/user-request-approval/user-access-request-status-badge/user-access-request-status-badge.component.mjs +0 -26
  411. package/esm2022/lib/components/user-request-approval/user-request-approval.module.mjs +0 -83
  412. package/esm2022/lib/models/ApplicationRoleAction.mjs +0 -2
  413. package/esm2022/lib/models/ApplicationRoleContext.mjs +0 -2
  414. package/esm2022/lib/models/ErrorResponse.mjs +0 -11
  415. package/esm2022/lib/models/OAuthParam.mjs +0 -2
  416. package/esm2022/lib/models/OAuthType.mjs +0 -9
  417. package/esm2022/lib/models/PagedResult.mjs +0 -2
  418. package/esm2022/lib/models/PasswordRequestParam.mjs +0 -2
  419. package/esm2022/lib/models/PermissionConfig.mjs +0 -2
  420. package/esm2022/lib/models/ResponseKeyValue.mjs +0 -2
  421. package/esm2022/lib/models/Role.mjs +0 -2
  422. package/esm2022/lib/models/RoleAction.mjs +0 -2
  423. package/esm2022/lib/models/RoleContext.mjs +0 -2
  424. package/esm2022/lib/models/SearchDynamicWrapper.mjs +0 -2
  425. package/esm2022/lib/models/SearchOperator.mjs +0 -6
  426. package/esm2022/lib/models/SearchPropertySign.mjs +0 -11
  427. package/esm2022/lib/models/SearchPropertyValue.mjs +0 -2
  428. package/esm2022/lib/models/SearchPropertyValueType.mjs +0 -11
  429. package/esm2022/lib/models/SortDirection.mjs +0 -7
  430. package/esm2022/lib/models/Tag.mjs +0 -2
  431. package/esm2022/lib/models/TenantConfig.mjs +0 -2
  432. package/esm2022/lib/models/UserRequest.mjs +0 -2
  433. package/esm2022/lib/models/auth-mechanism.mjs +0 -8
  434. package/esm2022/lib/models/base.mjs +0 -2
  435. package/esm2022/lib/models/conditions.mjs +0 -13
  436. package/esm2022/lib/models/log-in.mjs +0 -2
  437. package/esm2022/lib/models/mainUser.mjs +0 -2
  438. package/esm2022/lib/models/oauth-resp.mjs +0 -2
  439. package/esm2022/lib/models/oauth-response.mjs +0 -2
  440. package/esm2022/lib/models/object-state.mjs +0 -8
  441. package/esm2022/lib/models/otpValue.mjs +0 -2
  442. package/esm2022/lib/models/paged.mjs +0 -2
  443. package/esm2022/lib/models/query-params.mjs +0 -2
  444. package/esm2022/lib/models/request-status.mjs +0 -5
  445. package/esm2022/lib/models/resend-otp-data.mjs +0 -2
  446. package/esm2022/lib/models/sign-up.mjs +0 -2
  447. package/esm2022/lib/models/single-sign-on.mjs +0 -2
  448. package/esm2022/lib/models/status.mjs +0 -6
  449. package/esm2022/lib/models/user-access-request-status.mjs +0 -7
  450. package/esm2022/lib/models/user-access-request.mjs +0 -2
  451. package/esm2022/lib/models/user.mjs +0 -2
  452. package/esm2022/lib/pipes/async-label.pipe.mjs +0 -25
  453. package/esm2022/lib/services/authorization.service.mjs +0 -26
  454. package/esm2022/lib/services/encryption.service.mjs +0 -52
  455. package/esm2022/lib/services/environment.service.mjs +0 -26
  456. package/esm2022/lib/services/http-web-request.service.mjs +0 -85
  457. package/esm2022/lib/services/label.service.mjs +0 -134
  458. package/esm2022/lib/services/util.service.mjs +0 -55
  459. package/esm2022/lib/shared/shared.module.mjs +0 -84
  460. package/lib/components/sso/helper.d.ts +0 -2
  461. /package/{lib → src/lib}/components/auth-callback/auth-callback.component.d.ts +0 -0
  462. /package/{lib → src/lib}/components/auth-callback/auth-callback.module.d.ts +0 -0
  463. /package/{lib → src/lib}/components/button/button.component.d.ts +0 -0
  464. /package/{lib → src/lib}/components/button/button.module.d.ts +0 -0
  465. /package/{lib → src/lib}/components/forgot-password/ForgotPasswordData.d.ts +0 -0
  466. /package/{lib → src/lib}/components/forgot-password/forgot-password.module.d.ts +0 -0
  467. /package/{lib → src/lib}/components/mail/mail.component.d.ts +0 -0
  468. /package/{lib → src/lib}/components/mail-validation/mail-validation.component.d.ts +0 -0
  469. /package/{lib → src/lib}/components/mail-validation/mail-validation.module.d.ts +0 -0
  470. /package/{lib → src/lib}/components/o-auth/o-auth.module.d.ts +0 -0
  471. /package/{lib → src/lib}/components/otp-input/otp-input.component.d.ts +0 -0
  472. /package/{lib → src/lib}/components/reset-password/ResetPasswordData.d.ts +0 -0
  473. /package/{lib → src/lib}/components/reset-password/reset-password.module.d.ts +0 -0
  474. /package/{lib → src/lib}/components/role-control/ChildrenType.d.ts +0 -0
  475. /package/{lib → src/lib}/components/role-control/UIActions.d.ts +0 -0
  476. /package/{lib → src/lib}/components/role-control/UIs.d.ts +0 -0
  477. /package/{lib → src/lib}/components/role-control/base-table-style.d.ts +0 -0
  478. /package/{lib → src/lib}/components/role-control/role-control.service.d.ts +0 -0
  479. /package/{lib → src/lib}/components/sso/base-table-style.d.ts +0 -0
  480. /package/{lib → src/lib}/components/sso/sso-form/sso-form.component.d.ts +0 -0
  481. /package/{lib → src/lib}/components/sso/sso.module.d.ts +0 -0
  482. /package/{lib → src/lib}/components/two-factor-auth-setup/two-factor-auth-setup.component.d.ts +0 -0
  483. /package/{lib → src/lib}/components/two-factor-auth-setup/two-factor-auth-setup.module.d.ts +0 -0
  484. /package/{lib → src/lib}/components/user-management/base-table-style.d.ts +0 -0
  485. /package/{lib → src/lib}/components/user-request-approval/base-table-style.d.ts +0 -0
  486. /package/{lib → src/lib}/models/ApplicationRoleAction.d.ts +0 -0
  487. /package/{lib → src/lib}/models/ApplicationRoleContext.d.ts +0 -0
  488. /package/{lib → src/lib}/models/ErrorResponse.d.ts +0 -0
  489. /package/{lib → src/lib}/models/OAuthParam.d.ts +0 -0
  490. /package/{lib → src/lib}/models/OAuthType.d.ts +0 -0
  491. /package/{lib → src/lib}/models/PagedResult.d.ts +0 -0
  492. /package/{lib → src/lib}/models/PasswordRequestParam.d.ts +0 -0
  493. /package/{lib → src/lib}/models/PermissionConfig.d.ts +0 -0
  494. /package/{lib → src/lib}/models/ResponseKeyValue.d.ts +0 -0
  495. /package/{lib → src/lib}/models/Role.d.ts +0 -0
  496. /package/{lib → src/lib}/models/RoleAction.d.ts +0 -0
  497. /package/{lib → src/lib}/models/RoleContext.d.ts +0 -0
  498. /package/{lib → src/lib}/models/SearchDynamicWrapper.d.ts +0 -0
  499. /package/{lib → src/lib}/models/SearchOperator.d.ts +0 -0
  500. /package/{lib → src/lib}/models/SearchPropertySign.d.ts +0 -0
  501. /package/{lib → src/lib}/models/SearchPropertyValue.d.ts +0 -0
  502. /package/{lib → src/lib}/models/SearchPropertyValueType.d.ts +0 -0
  503. /package/{lib → src/lib}/models/SortDirection.d.ts +0 -0
  504. /package/{lib → src/lib}/models/Tag.d.ts +0 -0
  505. /package/{lib → src/lib}/models/TenantConfig.d.ts +0 -0
  506. /package/{lib → src/lib}/models/auth-mechanism.d.ts +0 -0
  507. /package/{lib → src/lib}/models/base.d.ts +0 -0
  508. /package/{lib → src/lib}/models/conditions.d.ts +0 -0
  509. /package/{lib → src/lib}/models/log-in.d.ts +0 -0
  510. /package/{lib → src/lib}/models/mainUser.d.ts +0 -0
  511. /package/{lib → src/lib}/models/oauth-resp.d.ts +0 -0
  512. /package/{lib → src/lib}/models/oauth-response.d.ts +0 -0
  513. /package/{lib → src/lib}/models/object-state.d.ts +0 -0
  514. /package/{lib → src/lib}/models/otpValue.d.ts +0 -0
  515. /package/{lib → src/lib}/models/paged.d.ts +0 -0
  516. /package/{lib → src/lib}/models/query-params.d.ts +0 -0
  517. /package/{lib → src/lib}/models/request-status.d.ts +0 -0
  518. /package/{lib → src/lib}/models/resend-otp-data.d.ts +0 -0
  519. /package/{lib → src/lib}/models/sign-up.d.ts +0 -0
  520. /package/{lib → src/lib}/models/single-sign-on.d.ts +0 -0
  521. /package/{lib → src/lib}/models/status.d.ts +0 -0
  522. /package/{lib → src/lib}/models/user-access-request-status.d.ts +0 -0
  523. /package/{lib → src/lib}/models/user-access-request.d.ts +0 -0
  524. /package/{lib → src/lib}/models/user.d.ts +0 -0
  525. /package/{lib → src/lib}/services/authorization.service.d.ts +0 -0
  526. /package/{lib → src/lib}/services/encryption.service.d.ts +0 -0
  527. /package/{lib → src/lib}/services/environment.service.d.ts +0 -0
  528. /package/{lib → src/lib}/services/http-web-request.service.d.ts +0 -0
  529. /package/{lib → src/lib}/services/label.service.d.ts +0 -0
  530. /package/{lib → src/lib}/services/util.service.d.ts +0 -0
@@ -0,0 +1,462 @@
1
+ import * as i0 from '@angular/core';
2
+ import { EventEmitter, Component, Input, Output, ViewChild, NgModule } from '@angular/core';
3
+ import { ObjectState } from 'verben-authentication-ui/src/lib/models';
4
+ import * as i2 from 'verben-ng-ui';
5
+ import { DataFilterType, DataViewModule, TableFilterModule, SortTableModule, DataExportModule, VisibleColumnModule, VerbenaButtonModule, CardDataViewModule, VerbenaInputModule, SvgModule, VerbenaTextareaModule, DataTableModule } from 'verben-ng-ui';
6
+ import * as i1$1 from '@angular/common';
7
+ import { CommonModule } from '@angular/common';
8
+ import * as i1 from '@angular/forms';
9
+ import { FormsModule, ReactiveFormsModule } from '@angular/forms';
10
+
11
+ const columns = [
12
+ {
13
+ id: 'createdAt',
14
+ header: 'Created',
15
+ accessorKey: 'CreatedAt',
16
+ },
17
+ {
18
+ id: 'name',
19
+ header: 'Name',
20
+ accessorKey: 'Name',
21
+ },
22
+ {
23
+ id: 'description',
24
+ header: 'Description',
25
+ accessorKey: 'Description',
26
+ },
27
+ {
28
+ id: 'link',
29
+ header: 'Link',
30
+ accessorKey: 'Link',
31
+ },
32
+ {
33
+ id: 'logo',
34
+ header: 'Logo',
35
+ accessorKey: 'Logo',
36
+ },
37
+ { id: 'actions', header: 'Actions', accessorKey: 'Name' },
38
+ ];
39
+
40
+ const mockData = new Array(10).fill(1).map((id, i) => ({
41
+ Name: `Name ${id + i}`,
42
+ Id: id,
43
+ id: id.toString(),
44
+ Description: `Sign in option ${id + i}`,
45
+ Logo: `./assets/images/test-logo.png`,
46
+ Link: `Link ${id + i}`,
47
+ CreatedAt: new Date(),
48
+ UpdatedAt: new Date(),
49
+ DataState: ObjectState.New,
50
+ TenantId: `Tenant ${id + i}`,
51
+ Code: '',
52
+ ServiceName: '',
53
+ }));
54
+
55
+ const baseStyle = {
56
+ width: '100%',
57
+ fontFamily: '"Fraunces", serif',
58
+ fontSize: '125%',
59
+ whiteSpace: 'nowrap',
60
+ margin: '0',
61
+ border: '1px solid #D4A007',
62
+ borderRadius: '16px',
63
+ borderCollapse: 'separate',
64
+ borderSpacing: '0',
65
+ tableLayout: 'fixed',
66
+ overflow: 'hidden',
67
+ rows: {
68
+ even: {
69
+ backgroundColor: '#FDFDFD',
70
+ },
71
+ odd: {
72
+ backgroundColor: '#F1F4FB',
73
+ },
74
+ height: '68px',
75
+ },
76
+ cells: {
77
+ padding: '0.5rem 1rem',
78
+ },
79
+ header: {
80
+ stickyTop: true,
81
+ zIndex: 2,
82
+ backgroundColor: '#EFF2FB',
83
+ fontWeight: 'bold',
84
+ textAlign: 'left',
85
+ padding: '12px 16px',
86
+ height: '40px',
87
+ },
88
+ footer: {
89
+ stickyBottom: true,
90
+ zIndex: 2,
91
+ padding: '3px',
92
+ },
93
+ // body: {
94
+ // background: '#fff',
95
+ // padding: '4px 5px',
96
+ // textAlign: 'center',
97
+ // },
98
+ // firstColumn: {
99
+ // stickyLeft: true,
100
+ // zIndex: 1,
101
+ // },
102
+ lastColumn: {
103
+ stickyRight: true,
104
+ zIndex: 1,
105
+ },
106
+ };
107
+
108
+ class SsoFormComponent {
109
+ fb;
110
+ isUploading = false;
111
+ uploadedFileName = null;
112
+ fileUploadError = null;
113
+ currentData = null;
114
+ switchView = new EventEmitter();
115
+ form;
116
+ constructor(fb) {
117
+ this.fb = fb;
118
+ this.form = this.fb.group({
119
+ Description: [''],
120
+ Name: [''],
121
+ Link: [''],
122
+ Logo: [''],
123
+ });
124
+ }
125
+ ngOnInit() { }
126
+ onSave() {
127
+ if (this.form.valid) {
128
+ // Emit save event with form value
129
+ console.log('Form saved:', this.form.value);
130
+ }
131
+ }
132
+ onDelete() {
133
+ // Emit delete event
134
+ console.log('Delete requested');
135
+ }
136
+ onFileSelected(event) {
137
+ const input = event.target;
138
+ if (input.files && input.files.length > 0) {
139
+ const file = input.files[0];
140
+ this.fileUploadError = null;
141
+ if (!file) {
142
+ this.isUploading = true;
143
+ }
144
+ if (file.size > 5000000) {
145
+ this.fileUploadError = 'File size exceeds 5MB limit.';
146
+ this.uploadedFileName = null;
147
+ this.isUploading = false; // Reset isUploading state
148
+ }
149
+ else {
150
+ this.uploadedFileName = file.name;
151
+ }
152
+ }
153
+ else {
154
+ this.isUploading = false;
155
+ }
156
+ }
157
+ removeFile() {
158
+ this.uploadedFileName = null;
159
+ this.fileUploadError = null;
160
+ const fileInput = document.getElementById('attachment');
161
+ if (fileInput) {
162
+ fileInput.value = '';
163
+ }
164
+ }
165
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SsoFormComponent, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
166
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SsoFormComponent, selector: "lib-sso-form", inputs: { currentData: "currentData" }, outputs: { switchView: "switchView" }, ngImport: i0, template: "<form\n [formGroup]=\"form\"\n class=\"flex flex-col px-3 pb-3 rounded-xl h-full w-full relative\"\n>\n <verbena-input\n name=\"Name\"\n label=\"Name:\"\n formControlName=\"Name\"\n [(ngModel)]=\"currentData?.data.Name\"\n />\n <verbena-input\n label=\"Description:\"\n name=\"Description\"\n formControlName=\"Description\"\n [(ngModel)]=\"currentData?.data.Description\"\n />\n <verbena-input\n label=\"Link:\"\n name=\"Link\"\n formControlName=\"Link\"\n [(ngModel)]=\"currentData?.data.Link\"\n/>\n<span class=\"block my-2 \">Logo</span>\n<label [style.background-color]=\"'#f9f9f9'\" class=\"border cursor-pointer border-secondary-200 rounded-md w-full px-4 py-2 flex justify-between\">\n <span *ngIf=\"!uploadedFileName\">{{isUploading?\"uploading...\":\"Upload a photo\"}}</span>\n <span *ngIf=\"fileUploadError\" class=\"error\">{{ fileUploadError }}</span>\n <div *ngIf=\"uploadedFileName\" class=\"flex items-center text-sm gap-2 border border-primary rounded-lg px-3 \">\n <span>{{ uploadedFileName }}</span>\n <button\n [style.color]=\"'black'\"\n type=\"button\"\n (click)=\"removeFile()\"\n >\n &#x2715;\n </button>\n </div>\n <input\n id=\"logo\"\n[type]=\"'file'\"\n label=\"Logo:\"\n name=\"Logo\"\n accept=\"image/png\"\n formControlName=\"Logo\"\n (change)=\"onFileSelected($event)\"\n formControlName=\"Logo\"\n/>\n<span class=\"flex gap-2\">\n<span class=\"bg-primary flex icon-container rounded-md justify-center items-center\">\n <img src=\"./assets/icons/cam.png\" class=\"icon-width\"/>\n</span>\n<span class=\"bg-primary flex icon-container rounded-md justify-center items-center\">\n <img src=\"./assets/icons/file.png\" class=\"icon-width2\"/>\n</span>\n</span>\n</label>\n\n <!-- buttons -->\n <div\n class=\"flex justify-between bottom-8 left-0 right-0 px-3 pb-2 absolute\"\n style=\"\n display: flex;\n justify-content: space-between;\n position: absolute;\n padding: 8px 12px;\n right: 0;\n left: 0;\n bottom: 32;\n \"\n >\n <!-- <verbena-button\n text=\"Delete\"\n class=\"bg-secondary-200 text-[black]\"\n (click)=\"onDelete()\"\n />\n <verbena-button\n text=\"Save\"\n class=\"bg-primary text-[black]\"\n (click)=\"onSave()\"\n />\n\n <verbena-button\n text=\"Secondary Button\"\n styleType=\"secondary\"\n ></verbena-button> -->\n <verbena-button\n width=\"114px\"\n height=\"39px\"\n text=\"Delete\"\n [bgColor]=\"'#999999'\"\n [textColor]=\"'#404040'\"\n borderRadius=\"10px\"\n ></verbena-button>\n <verbena-button\n (click)=\"switchView.emit()\"\n text=\"Switch To Table\"\n styleType=\"ylw-outline\"\n ></verbena-button>\n <verbena-button\n text=\"Save\"\n bgColor=\"#28a745\"\n textColor=\"#404040\"\n borderRadius=\"10px\"\n pd=\"10px 20px\"\n [bgColor]=\"'#FFE681'\"\n width=\"114px\"\n height=\"39px\"\n ></verbena-button>\n </div>\n</form>\n", styles: ["#logo{display:none}.icon-width{width:20px}.icon-width2{width:15px}.icon-container{width:30px;height:30px}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i2.VerbenaButtonComponent, selector: "verbena-button", inputs: ["text", "icon", "useIcon", "svgPosition", "iconPosition", "bgColor", "textColor", "border", "borderRadius", "pd", "width", "height", "fontSize", "fontWeight", "disable", "svgSize", "weight", "variant", "styleType", "svg", "svgWidth", "svgHeight", "iconColor", "svgColor", "buttonClass", "buttonTextClass", "isLoading", "spinnerSize", "spinnerColor"] }, { kind: "component", type: i2.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"] }] });
167
+ }
168
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SsoFormComponent, decorators: [{
169
+ type: Component,
170
+ args: [{ selector: 'lib-sso-form', template: "<form\n [formGroup]=\"form\"\n class=\"flex flex-col px-3 pb-3 rounded-xl h-full w-full relative\"\n>\n <verbena-input\n name=\"Name\"\n label=\"Name:\"\n formControlName=\"Name\"\n [(ngModel)]=\"currentData?.data.Name\"\n />\n <verbena-input\n label=\"Description:\"\n name=\"Description\"\n formControlName=\"Description\"\n [(ngModel)]=\"currentData?.data.Description\"\n />\n <verbena-input\n label=\"Link:\"\n name=\"Link\"\n formControlName=\"Link\"\n [(ngModel)]=\"currentData?.data.Link\"\n/>\n<span class=\"block my-2 \">Logo</span>\n<label [style.background-color]=\"'#f9f9f9'\" class=\"border cursor-pointer border-secondary-200 rounded-md w-full px-4 py-2 flex justify-between\">\n <span *ngIf=\"!uploadedFileName\">{{isUploading?\"uploading...\":\"Upload a photo\"}}</span>\n <span *ngIf=\"fileUploadError\" class=\"error\">{{ fileUploadError }}</span>\n <div *ngIf=\"uploadedFileName\" class=\"flex items-center text-sm gap-2 border border-primary rounded-lg px-3 \">\n <span>{{ uploadedFileName }}</span>\n <button\n [style.color]=\"'black'\"\n type=\"button\"\n (click)=\"removeFile()\"\n >\n &#x2715;\n </button>\n </div>\n <input\n id=\"logo\"\n[type]=\"'file'\"\n label=\"Logo:\"\n name=\"Logo\"\n accept=\"image/png\"\n formControlName=\"Logo\"\n (change)=\"onFileSelected($event)\"\n formControlName=\"Logo\"\n/>\n<span class=\"flex gap-2\">\n<span class=\"bg-primary flex icon-container rounded-md justify-center items-center\">\n <img src=\"./assets/icons/cam.png\" class=\"icon-width\"/>\n</span>\n<span class=\"bg-primary flex icon-container rounded-md justify-center items-center\">\n <img src=\"./assets/icons/file.png\" class=\"icon-width2\"/>\n</span>\n</span>\n</label>\n\n <!-- buttons -->\n <div\n class=\"flex justify-between bottom-8 left-0 right-0 px-3 pb-2 absolute\"\n style=\"\n display: flex;\n justify-content: space-between;\n position: absolute;\n padding: 8px 12px;\n right: 0;\n left: 0;\n bottom: 32;\n \"\n >\n <!-- <verbena-button\n text=\"Delete\"\n class=\"bg-secondary-200 text-[black]\"\n (click)=\"onDelete()\"\n />\n <verbena-button\n text=\"Save\"\n class=\"bg-primary text-[black]\"\n (click)=\"onSave()\"\n />\n\n <verbena-button\n text=\"Secondary Button\"\n styleType=\"secondary\"\n ></verbena-button> -->\n <verbena-button\n width=\"114px\"\n height=\"39px\"\n text=\"Delete\"\n [bgColor]=\"'#999999'\"\n [textColor]=\"'#404040'\"\n borderRadius=\"10px\"\n ></verbena-button>\n <verbena-button\n (click)=\"switchView.emit()\"\n text=\"Switch To Table\"\n styleType=\"ylw-outline\"\n ></verbena-button>\n <verbena-button\n text=\"Save\"\n bgColor=\"#28a745\"\n textColor=\"#404040\"\n borderRadius=\"10px\"\n pd=\"10px 20px\"\n [bgColor]=\"'#FFE681'\"\n width=\"114px\"\n height=\"39px\"\n ></verbena-button>\n </div>\n</form>\n", styles: ["#logo{display:none}.icon-width{width:20px}.icon-width2{width:15px}.icon-container{width:30px;height:30px}\n"] }]
171
+ }], ctorParameters: () => [{ type: i1.FormBuilder }], propDecorators: { currentData: [{
172
+ type: Input
173
+ }], switchView: [{
174
+ type: Output
175
+ }] } });
176
+
177
+ class SsoComponent {
178
+ cardDataView;
179
+ dataView;
180
+ columns = columns;
181
+ data = mockData;
182
+ filteredColumns = columns;
183
+ styles = baseStyle;
184
+ currentData = null;
185
+ isGridView = true;
186
+ selected = null;
187
+ cardData = mockData.map(({ Name, Description, Link, Logo }) => ({
188
+ selected: false,
189
+ title: Name,
190
+ data: { Name, Description, Link, Logo },
191
+ body: [{ title: 'Description', value: Description ?? '' }],
192
+ children: [],
193
+ }));
194
+ openDetailView(name) {
195
+ const cardItem = this.getCardDataByMailAddress(name);
196
+ if (cardItem && this.cardDataView) {
197
+ this.dataView.toggleView();
198
+ this.cardData.forEach((item) => {
199
+ item.selected = false;
200
+ if (item.children) {
201
+ item.children.forEach((child) => (child.selected = false));
202
+ }
203
+ });
204
+ cardItem.selected = true;
205
+ this.currentData = this.cardDataView.onItemClick(cardItem);
206
+ }
207
+ }
208
+ getCardDataByMailAddress(name) {
209
+ return this.cardData.find(({ data }) => data.Name === name);
210
+ }
211
+ onViewChange(isGridView) {
212
+ isGridView = isGridView;
213
+ if (this.currentData) {
214
+ this.cardDataView?.clearData();
215
+ this.currentData = null;
216
+ }
217
+ if (this.selected) {
218
+ this.cardDataView.onItemClick(this.selected);
219
+ }
220
+ }
221
+ openFormView(index) {
222
+ const item = this.cardData[index];
223
+ console.log('ITEM = ', item);
224
+ }
225
+ handleExport(exportedData) {
226
+ console.log('Exported data:', exportedData);
227
+ this.downloadCSV(exportedData);
228
+ }
229
+ /**
230
+ *
231
+ * @param data Simple csv export for testing
232
+ */
233
+ downloadCSV(data) {
234
+ const headers = Object.keys(data[0]);
235
+ const csvContent = [
236
+ headers.join(','),
237
+ ...data.map((row) => headers.map((header) => row[header]).join(',')),
238
+ ].join('\n');
239
+ const blob = new Blob([csvContent], { type: 'text/csv;charset=utf-8;' });
240
+ const link = document.createElement('a');
241
+ if (link.download !== undefined) {
242
+ const url = URL.createObjectURL(blob);
243
+ link.setAttribute('href', url);
244
+ link.setAttribute('download', 'export.csv');
245
+ link.style.visibility = 'hidden';
246
+ document.body.appendChild(link);
247
+ link.click();
248
+ document.body.removeChild(link);
249
+ }
250
+ }
251
+ onSelectionChange(selectedRows) {
252
+ console.log('Selection changed:', selectedRows);
253
+ // Handle the selection change
254
+ }
255
+ /**
256
+ * Copied over from card view doc until I understand usage
257
+ */
258
+ selectedColumnCount = 0;
259
+ selectedFilterTableCount = 0;
260
+ isOPen = true;
261
+ selectedSortCount = 0;
262
+ showColumn = false;
263
+ showSort = false;
264
+ showExport = false;
265
+ selectedAll = false;
266
+ showFilter = false;
267
+ visibleColumns = columns.map((col) => ({
268
+ checked: false,
269
+ name: typeof col.header === 'string' ? col.header : col.id,
270
+ type: DataFilterType.Bool,
271
+ }));
272
+ filterArray = [
273
+ {
274
+ name: 'Name',
275
+ type: DataFilterType.String,
276
+ checked: false,
277
+ },
278
+ {
279
+ name: 'Description',
280
+ type: DataFilterType.String,
281
+ checked: false,
282
+ },
283
+ {
284
+ name: 'Logo',
285
+ type: DataFilterType.String,
286
+ checked: false,
287
+ },
288
+ {
289
+ name: 'Link',
290
+ type: DataFilterType.String,
291
+ checked: false,
292
+ },
293
+ {
294
+ name: 'CreatedAt',
295
+ type: DataFilterType.Date,
296
+ checked: false,
297
+ },
298
+ ];
299
+ sortOptions = [
300
+ {
301
+ name: 'Name',
302
+ type: DataFilterType.String,
303
+ checked: false,
304
+ },
305
+ {
306
+ name: 'Description',
307
+ type: DataFilterType.String,
308
+ checked: false,
309
+ },
310
+ {
311
+ name: 'Link',
312
+ type: DataFilterType.String,
313
+ checked: false,
314
+ },
315
+ {
316
+ name: 'Logo',
317
+ type: DataFilterType.String,
318
+ checked: false,
319
+ },
320
+ {
321
+ name: 'CreatedAt',
322
+ type: DataFilterType.Date,
323
+ checked: false,
324
+ },
325
+ ];
326
+ clearData() {
327
+ this.currentData = {};
328
+ }
329
+ loadMore() {
330
+ this.cardData = this.cardData.concat(this.cardData);
331
+ }
332
+ onColumnChange(event) {
333
+ this.showColumn = event;
334
+ }
335
+ onSortChange(event) {
336
+ this.showSort = false;
337
+ console.log(event);
338
+ }
339
+ onColumnsUpdated(updatedColumns) {
340
+ this.showColumn = false;
341
+ this.selectedColumnCount = updatedColumns.length;
342
+ if (updatedColumns) {
343
+ // Filter columns to include only visible ones
344
+ this.filteredColumns = this.columns.filter((col) => this.visibleColumns.find((filter) => filter.name === col.header && filter.checked));
345
+ // Reorder columns based on the order in visibleColumns
346
+ const visibleColumnOrder = this.visibleColumns
347
+ .filter((filter) => filter.checked)
348
+ .map((filter) => filter.name);
349
+ this.columns.sort((a, b) => {
350
+ const indexA = visibleColumnOrder.indexOf(a.header);
351
+ const indexB = visibleColumnOrder.indexOf(b.header);
352
+ return indexA - indexB;
353
+ });
354
+ }
355
+ }
356
+ onFilterApplied(appliedFilter) {
357
+ this.showFilter = false;
358
+ if (Array.isArray(appliedFilter)) {
359
+ this.selectedFilterTableCount = appliedFilter.length;
360
+ }
361
+ else {
362
+ console.log('appliedFilter is not an array');
363
+ }
364
+ }
365
+ onSortUpdated(updatedSorts) {
366
+ this.onSortChange(false);
367
+ this.selectedSortCount = updatedSorts.length;
368
+ console.log(updatedSorts);
369
+ }
370
+ onStateChange(event) {
371
+ switch (event.key) {
372
+ case 'column':
373
+ this.showColumn = event.value;
374
+ break;
375
+ case 'sort':
376
+ this.showSort = event.value;
377
+ break;
378
+ case 'export':
379
+ this.showExport = event.value;
380
+ break;
381
+ case 'filter':
382
+ this.showFilter = event.value;
383
+ break;
384
+ default:
385
+ break;
386
+ }
387
+ }
388
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SsoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
389
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: SsoComponent, selector: "lib-sso", viewQueries: [{ propertyName: "cardDataView", first: true, predicate: ["vdcv"], descendants: true }, { propertyName: "dataView", first: true, predicate: ["vdv"], descendants: true }], ngImport: i0, template: "<div class=\"space-y-8\">\n <verben-data-view\n #vdv\n [viewState]=\"{\n isSearch: true,\n isColumn: true,\n isFilter: true,\n isSort: true,\n isExport: true,\n isSelect: true,\n isToggle:true\n }\"\n [buttonClass]=\"'my-custom-button-class'\"\n [iconClass]=\"'my-icon-class'\"\n [activeIconClass]=\"'my-active-icon-class'\"\n [selectedSortCount]=\"selectedSortCount\"\n [selectedColumnCount]=\"selectedColumnCount\"\n [selectedFilterTableCount]=\"selectedFilterTableCount\"\n [showColumnChild]=\"showColumn\"\n [showSortChild]=\"showSort\"\n [showFilterChild]=\"showFilter\"\n [isTableView]=\"false\"\n [selectedFilterTableCount]=\"0\"\n [cardIcon]=\"'list-view'\"\n [tableIcon]=\"'table-view'\"\n (viewChange)=\"onViewChange($event)\"\n (stateChange)=\"onStateChange($event)\"\n >\n <div table-content>\n <lib-data-table\n [data]=\"data\"\n [columns]=\"filteredColumns\"\n [styleConfig]=\"styles\"\n (selectionChange)=\"onSelectionChange($event)\"\n >\n <ng-container libColumn=\"createdAt\">\n <ng-template #cell let-value>\n {{ value | date }}\n </ng-template>\n </ng-container>\n <ng-container libColumn=\"logo\">\n <ng-template #cell let-value>\n <img class=\"logo-width\" [src]=\"value\"/>\n </ng-template>\n </ng-container>\n <ng-container libColumn=\"actions\">\n <ng-template #cell let-value let-deleteRow let-rowIndex>\n <div class=\"flex space-x-8\" style=\"display: flex; gap: 24px\">\n <verben-svg\n (click)=\"openDetailView(value)\"\n icon=\"edit\"\n [width]=\"15\"\n [height]=\"15\"\n stroke=\"#3479E9\"\n fill=\"white\"\n class=\"cursor-pointer\"\n ></verben-svg>\n <verben-svg\n icon=\"delete\"\n [width]=\"15\"\n [height]=\"15\"\n stroke=\"#E20000\"\n (click)=\"deleteRow()\"\n class=\"cursor-pointer\"\n ></verben-svg>\n </div>\n </ng-template>\n <ng-template #header>\n <strong>Actions</strong>\n </ng-template>\n </ng-container>\n </lib-data-table>\n </div>\n <div card-content>\n <verben-card-data-view\n borderRadius=\"12px\"\n (loadMoreClick)=\"loadMore()\"\n #vdcv\n dataId=\"Link\"\n border=\"5px\"\n [cardDataList]=\"cardData\"\n rbgColor=\"#f5f6f9\"\n >\n <verben-left-card-data-view class=\"\">\n <verben-left-card-data\n #vlcd\n [parent]=\"vdcv\"\n dataId=\"Link\"\n class=\"bg-secondary-100 rounded-xl border-primary border-[1px]\"\n [cardDataList]=\"cardData\"\n >\n <ng-template #card let-item>\n <div (click)=\"currentData = vdcv.onItemClick(item)\" class=\"flex\">\n <verben-svg\n [width]=\"15\"\n [height]=\"15\"\n (click)=\"vlcd.showChildren(item)\"\n [ngClass]=\"vlcd.showToggle(item) ? 'visible' : 'invisible'\"\n class=\"items-center flex pr-1 cursor-pointer\"\n [icon]=\"item.isChildrenExpanded ? 'minus' : 'plus'\"\n />\n <div\n (click)=\"currentData = vdcv.onItemClick(item)\"\n class=\"flex cursor-pointer w-full bg-secondary rounded-xl\"\n >\n <div\n class=\"w-3 rounded-xl rounded-tr-none rounded-br-none\"\n [ngClass]=\"\n item.selected ? 'bg-primary' : 'bg-secondary-200'\n \"\n ></div>\n <div class=\"flex flex-col py-2 px-4 w-full\">\n <div class=\"flex\">\n <span class=\"font-bold text-sm\">{{ item.data.Name }}</span>\n </div>\n @for (ciItem of item.body; track ciItem.value) {\n <div class=\"flex items-center justify-between gap-2\">\n <div>\n <span class=\"text-muted font-light text-xs\"\n >{{ ciItem.title }}:</span\n >\n <span class=\"text-black text-xs font-semibold\">{{ item.data.Description }}</span>\n </div>\n <img class=\"logo-width\" [alt]=\"ciItem.title\" [src]=\"item.data.Logo\"/>\n </div>\n }\n </div>\n </div>\n </div>\n </ng-template>\n </verben-left-card-data>\n </verben-left-card-data-view>\n\n <verben-right-card-data-view>\n <ng-template #parent>\n <lib-sso-form\n [currentData]=\"currentData\"\n (switchView)=\"vdv.toggleView()\"\n ></lib-sso-form>\n </ng-template>\n </verben-right-card-data-view>\n\n <verben-card-data-view-footer class=\"float-right\">\n <div class=\"flex gap-2 mt-1\">\n <span class=\"paginator-text\"\n >{{ cardData.length }} records loaded</span\n >\n <button (click)=\"loadMore()\" class=\"load-more\">Load more</button>\n </div>\n </verben-card-data-view-footer>\n </verben-card-data-view>\n </div>\n <div column-content>\n <verben-visible-column\n (columnsUpdated)=\"onColumnsUpdated($event)\"\n [border]=\"'1px solid rgba(212, 160, 7, 1)'\"\n borderRadius=\"10px\"\n boxShadow=\"2px 2px 2px 0px silver\"\n bgColor=\"white\"\n width=\"400px\"\n textColor=\"black\"\n pd=\"1rem\"\n primaryColor=\"#FFE681\"\n secondaryColor=\"#3479E9\"\n [columns]=\"visibleColumns\"\n [displayedColumns]=\"5\"\n ></verben-visible-column>\n </div>\n <div filter-content>\n <verben-table-filter\n (filtersApplied)=\"onFilterApplied($event)\"\n [border]=\"'1px solid rgba(212, 160, 7, 1)'\"\n borderRadius=\"10px\"\n boxShadow=\"2px 2px 2px 0px silver\"\n bgColor=\"white\"\n width=\"420px\"\n textColor=\"black\"\n pd=\"1rem\"\n primaryColor=\"#FFE681\"\n secondaryColor=\"#3479E9\"\n tertiaryColor=\"#404040\"\n [filterOptions]=\"filterArray\"\n [maxFilterLength]=\"3\"\n ></verben-table-filter>\n </div>\n <div sort-content>\n <verben-sort-table\n (selectedOptions)=\"onSortUpdated($event)\"\n [border]=\"'1px solid rgba(212, 160, 7, 1)'\"\n borderRadius=\"10px\"\n boxShadow=\"2px 2px 2px 0px silver\"\n bgColor=\"white\"\n width=\"400px\"\n textColor=\"black\"\n pd=\"1rem\"\n primaryColor=\"#FFE681\"\n secondaryColor=\"#3479E9\"\n tertiaryColor=\"#404040\"\n [enableDragAndDrop]=\"true\"\n [sortOptions]=\"sortOptions\"\n ></verben-sort-table>\n </div>\n <div export-content>\n <lib-data-export [data]=\"data\" (exportDataEvent)=\"handleExport($event)\">\n </lib-data-export>\n </div>\n </verben-data-view>\n</div>\n", styles: [".flex{display:flex}.w-full{width:100%}.bg-secondary-200{background-color:#e8eaf1}.flex-col{flex-direction:column}.items-center{align-items:center}.bg-primary{background-color:#d4a007}.border-primary{border:1px solid #d4a007}.rounded-lg{border-radius:20px}.w-3{width:6px}.rounded-tr-none{border-top-right-radius:0}.rounded-br-none{border-bottom-right-radius:0}.bg-secondary-100{background-color:#8080800e}.bg-secondary{background-color:#e8eaf1}.p-2{padding:6px}.logo-width{width:70px}\n"], dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i2.DataViewComponent, selector: "verben-data-view", inputs: ["buttonClass", "iconClass", "activeIconClass", "columnCustomClass", "filterCustomClass", "sortCustomClass", "extendCustomClass", "exportCustomClass", "selectCustomClass", "importCustomClass", "zIndex", "createCustomClass", "tableIcon", "cardIcon", "cardClass", "tableClass", "searchKey", "searchValue", "viewState", "searchTemplate", "importTemplate", "columnTemplate", "extendTemplate", "filterTemplate", "sortTemplate", "children", "exportTemplate", "createTemplate", "selectedColumnCount", "selectedSortCount", "selectedFilterTableCount", "inputWidth", "milliseconds", "showColumnChild", "showSortChild", "showFilterChild", "showImportChild", "showExportChild", "showExtendChild", "create", "showSelected", "isTableView"], outputs: ["viewChange", "stateChange", "onSearchChange"] }, { kind: "component", type: i2.TableFilterComponent, selector: "verben-table-filter", inputs: ["filterOptions", "pd", "mg", "height", "width", "bgColor", "boxShadow", "textColor", "primaryColor", "secondaryColor", "tertiaryColor", "border", "borderRadius", "selectWidth", "maxFilterLength", "tooltip"], outputs: ["filtersApplied", "resetSortData"] }, { kind: "component", type: i2.SortTableComponent, selector: "verben-sort-table", inputs: ["enableDragAndDrop", "sortOptions", "resetText", "displayedOptions", "propertyText", "showMoreText", "sortButtonText", "pd", "mg", "height", "width", "bgColor", "boxShadow", "textColor", "primaryColor", "secondaryColor", "tertiaryColor", "border", "borderRadius", "selectWidth", "containerHeight"], outputs: ["selectedOptions", "resetSortData"] }, { kind: "component", type: i2.DataExportComponent, selector: "lib-data-export", inputs: ["columns", "data", "dataFetchUrl", "dataQueryParameters"], outputs: ["exportDataEvent"] }, { kind: "component", type: i2.VisibleColumnComponent, selector: "verben-visible-column", inputs: ["columns", "items", "enableDragAndDrop", "displayedColumns", "showMore", "pd", "mg", "height", "width", "bgColor", "boxShadow", "textColor", "primaryColor", "secondaryColor", "tertiaryColor", "border", "borderRadius", "selectWidth", "closeColumn"], outputs: ["columnsUpdated", "resetFilter"] }, { kind: "component", type: i2.CardDataViewComponent, selector: "verben-card-data-view", inputs: ["pd", "mg", "lHeight", "rHeight", "rWidth", "lWidth", "textColor", "lbgColor", "rbgColor", "border", "display", "borderRadius", "activeCss", "inActiveCss", "displayAsRow", "cardDataList", "dataId", "totalRecords", "footer", "noOfVisibleChildren", "showEditIcon", "onItemClick", "onCardChildClick"], outputs: ["editClicked", "loadMoreClick"] }, { kind: "component", type: i2.LeftCardDataComponent, selector: "verben-left-card-data", inputs: ["pd", "mg", "height", "weight", "activeCss", "inActiveCss", "cardDataList", "iconCollapse", "iconExpanded", "parent", "dataId"] }, { kind: "component", type: i2.LeftCardDataViewComponent, selector: "verben-left-card-data-view", inputs: ["cardDataList"] }, { kind: "component", type: i2.RightCardDataViewComponent, selector: "verben-right-card-data-view", inputs: ["parentData", "chilData", "meth"] }, { kind: "component", type: i2.CardDataViewFooterComponent, selector: "verben-card-data-view-footer" }, { kind: "component", type: i2.SvgComponent, selector: "verben-svg", inputs: ["icon", "width", "height", "fill", "stroke", "type", "size"] }, { kind: "component", type: i2.DataTableComponent, selector: "lib-data-table", inputs: ["data", "columns", "dataKey", "formGroupConfig", "groupBy", "useVirtualScroll", "virtualScrollItemSize", "styleConfig"], outputs: ["rowEdit", "rowSave", "rowRevert", "rowDelete", "selectionChange"] }, { kind: "directive", type: i2.ColumnDirective, selector: "[libColumn]", inputs: ["libColumn"] }, { kind: "component", type: SsoFormComponent, selector: "lib-sso-form", inputs: ["currentData"], outputs: ["switchView"] }, { kind: "pipe", type: i1$1.DatePipe, name: "date" }] });
390
+ }
391
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SsoComponent, decorators: [{
392
+ type: Component,
393
+ args: [{ selector: 'lib-sso', template: "<div class=\"space-y-8\">\n <verben-data-view\n #vdv\n [viewState]=\"{\n isSearch: true,\n isColumn: true,\n isFilter: true,\n isSort: true,\n isExport: true,\n isSelect: true,\n isToggle:true\n }\"\n [buttonClass]=\"'my-custom-button-class'\"\n [iconClass]=\"'my-icon-class'\"\n [activeIconClass]=\"'my-active-icon-class'\"\n [selectedSortCount]=\"selectedSortCount\"\n [selectedColumnCount]=\"selectedColumnCount\"\n [selectedFilterTableCount]=\"selectedFilterTableCount\"\n [showColumnChild]=\"showColumn\"\n [showSortChild]=\"showSort\"\n [showFilterChild]=\"showFilter\"\n [isTableView]=\"false\"\n [selectedFilterTableCount]=\"0\"\n [cardIcon]=\"'list-view'\"\n [tableIcon]=\"'table-view'\"\n (viewChange)=\"onViewChange($event)\"\n (stateChange)=\"onStateChange($event)\"\n >\n <div table-content>\n <lib-data-table\n [data]=\"data\"\n [columns]=\"filteredColumns\"\n [styleConfig]=\"styles\"\n (selectionChange)=\"onSelectionChange($event)\"\n >\n <ng-container libColumn=\"createdAt\">\n <ng-template #cell let-value>\n {{ value | date }}\n </ng-template>\n </ng-container>\n <ng-container libColumn=\"logo\">\n <ng-template #cell let-value>\n <img class=\"logo-width\" [src]=\"value\"/>\n </ng-template>\n </ng-container>\n <ng-container libColumn=\"actions\">\n <ng-template #cell let-value let-deleteRow let-rowIndex>\n <div class=\"flex space-x-8\" style=\"display: flex; gap: 24px\">\n <verben-svg\n (click)=\"openDetailView(value)\"\n icon=\"edit\"\n [width]=\"15\"\n [height]=\"15\"\n stroke=\"#3479E9\"\n fill=\"white\"\n class=\"cursor-pointer\"\n ></verben-svg>\n <verben-svg\n icon=\"delete\"\n [width]=\"15\"\n [height]=\"15\"\n stroke=\"#E20000\"\n (click)=\"deleteRow()\"\n class=\"cursor-pointer\"\n ></verben-svg>\n </div>\n </ng-template>\n <ng-template #header>\n <strong>Actions</strong>\n </ng-template>\n </ng-container>\n </lib-data-table>\n </div>\n <div card-content>\n <verben-card-data-view\n borderRadius=\"12px\"\n (loadMoreClick)=\"loadMore()\"\n #vdcv\n dataId=\"Link\"\n border=\"5px\"\n [cardDataList]=\"cardData\"\n rbgColor=\"#f5f6f9\"\n >\n <verben-left-card-data-view class=\"\">\n <verben-left-card-data\n #vlcd\n [parent]=\"vdcv\"\n dataId=\"Link\"\n class=\"bg-secondary-100 rounded-xl border-primary border-[1px]\"\n [cardDataList]=\"cardData\"\n >\n <ng-template #card let-item>\n <div (click)=\"currentData = vdcv.onItemClick(item)\" class=\"flex\">\n <verben-svg\n [width]=\"15\"\n [height]=\"15\"\n (click)=\"vlcd.showChildren(item)\"\n [ngClass]=\"vlcd.showToggle(item) ? 'visible' : 'invisible'\"\n class=\"items-center flex pr-1 cursor-pointer\"\n [icon]=\"item.isChildrenExpanded ? 'minus' : 'plus'\"\n />\n <div\n (click)=\"currentData = vdcv.onItemClick(item)\"\n class=\"flex cursor-pointer w-full bg-secondary rounded-xl\"\n >\n <div\n class=\"w-3 rounded-xl rounded-tr-none rounded-br-none\"\n [ngClass]=\"\n item.selected ? 'bg-primary' : 'bg-secondary-200'\n \"\n ></div>\n <div class=\"flex flex-col py-2 px-4 w-full\">\n <div class=\"flex\">\n <span class=\"font-bold text-sm\">{{ item.data.Name }}</span>\n </div>\n @for (ciItem of item.body; track ciItem.value) {\n <div class=\"flex items-center justify-between gap-2\">\n <div>\n <span class=\"text-muted font-light text-xs\"\n >{{ ciItem.title }}:</span\n >\n <span class=\"text-black text-xs font-semibold\">{{ item.data.Description }}</span>\n </div>\n <img class=\"logo-width\" [alt]=\"ciItem.title\" [src]=\"item.data.Logo\"/>\n </div>\n }\n </div>\n </div>\n </div>\n </ng-template>\n </verben-left-card-data>\n </verben-left-card-data-view>\n\n <verben-right-card-data-view>\n <ng-template #parent>\n <lib-sso-form\n [currentData]=\"currentData\"\n (switchView)=\"vdv.toggleView()\"\n ></lib-sso-form>\n </ng-template>\n </verben-right-card-data-view>\n\n <verben-card-data-view-footer class=\"float-right\">\n <div class=\"flex gap-2 mt-1\">\n <span class=\"paginator-text\"\n >{{ cardData.length }} records loaded</span\n >\n <button (click)=\"loadMore()\" class=\"load-more\">Load more</button>\n </div>\n </verben-card-data-view-footer>\n </verben-card-data-view>\n </div>\n <div column-content>\n <verben-visible-column\n (columnsUpdated)=\"onColumnsUpdated($event)\"\n [border]=\"'1px solid rgba(212, 160, 7, 1)'\"\n borderRadius=\"10px\"\n boxShadow=\"2px 2px 2px 0px silver\"\n bgColor=\"white\"\n width=\"400px\"\n textColor=\"black\"\n pd=\"1rem\"\n primaryColor=\"#FFE681\"\n secondaryColor=\"#3479E9\"\n [columns]=\"visibleColumns\"\n [displayedColumns]=\"5\"\n ></verben-visible-column>\n </div>\n <div filter-content>\n <verben-table-filter\n (filtersApplied)=\"onFilterApplied($event)\"\n [border]=\"'1px solid rgba(212, 160, 7, 1)'\"\n borderRadius=\"10px\"\n boxShadow=\"2px 2px 2px 0px silver\"\n bgColor=\"white\"\n width=\"420px\"\n textColor=\"black\"\n pd=\"1rem\"\n primaryColor=\"#FFE681\"\n secondaryColor=\"#3479E9\"\n tertiaryColor=\"#404040\"\n [filterOptions]=\"filterArray\"\n [maxFilterLength]=\"3\"\n ></verben-table-filter>\n </div>\n <div sort-content>\n <verben-sort-table\n (selectedOptions)=\"onSortUpdated($event)\"\n [border]=\"'1px solid rgba(212, 160, 7, 1)'\"\n borderRadius=\"10px\"\n boxShadow=\"2px 2px 2px 0px silver\"\n bgColor=\"white\"\n width=\"400px\"\n textColor=\"black\"\n pd=\"1rem\"\n primaryColor=\"#FFE681\"\n secondaryColor=\"#3479E9\"\n tertiaryColor=\"#404040\"\n [enableDragAndDrop]=\"true\"\n [sortOptions]=\"sortOptions\"\n ></verben-sort-table>\n </div>\n <div export-content>\n <lib-data-export [data]=\"data\" (exportDataEvent)=\"handleExport($event)\">\n </lib-data-export>\n </div>\n </verben-data-view>\n</div>\n", styles: [".flex{display:flex}.w-full{width:100%}.bg-secondary-200{background-color:#e8eaf1}.flex-col{flex-direction:column}.items-center{align-items:center}.bg-primary{background-color:#d4a007}.border-primary{border:1px solid #d4a007}.rounded-lg{border-radius:20px}.w-3{width:6px}.rounded-tr-none{border-top-right-radius:0}.rounded-br-none{border-bottom-right-radius:0}.bg-secondary-100{background-color:#8080800e}.bg-secondary{background-color:#e8eaf1}.p-2{padding:6px}.logo-width{width:70px}\n"] }]
394
+ }], propDecorators: { cardDataView: [{
395
+ type: ViewChild,
396
+ args: ['vdcv']
397
+ }], dataView: [{
398
+ type: ViewChild,
399
+ args: ['vdv']
400
+ }] } });
401
+
402
+ class SsoModule {
403
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SsoModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
404
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: SsoModule, declarations: [SsoComponent, SsoFormComponent], imports: [CommonModule,
405
+ FormsModule,
406
+ ReactiveFormsModule,
407
+ DataViewModule,
408
+ TableFilterModule,
409
+ SortTableModule,
410
+ DataExportModule,
411
+ VisibleColumnModule,
412
+ VerbenaButtonModule,
413
+ CardDataViewModule,
414
+ VerbenaInputModule,
415
+ SvgModule,
416
+ VerbenaTextareaModule,
417
+ DataTableModule], exports: [SsoComponent] });
418
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SsoModule, imports: [CommonModule,
419
+ FormsModule,
420
+ ReactiveFormsModule,
421
+ DataViewModule,
422
+ TableFilterModule,
423
+ SortTableModule,
424
+ DataExportModule,
425
+ VisibleColumnModule,
426
+ VerbenaButtonModule,
427
+ CardDataViewModule,
428
+ VerbenaInputModule,
429
+ SvgModule,
430
+ VerbenaTextareaModule,
431
+ DataTableModule] });
432
+ }
433
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SsoModule, decorators: [{
434
+ type: NgModule,
435
+ args: [{
436
+ declarations: [SsoComponent, SsoFormComponent],
437
+ imports: [
438
+ CommonModule,
439
+ FormsModule,
440
+ ReactiveFormsModule,
441
+ DataViewModule,
442
+ TableFilterModule,
443
+ SortTableModule,
444
+ DataExportModule,
445
+ VisibleColumnModule,
446
+ VerbenaButtonModule,
447
+ CardDataViewModule,
448
+ VerbenaInputModule,
449
+ SvgModule,
450
+ VerbenaTextareaModule,
451
+ DataTableModule,
452
+ ],
453
+ exports: [SsoComponent],
454
+ }]
455
+ }] });
456
+
457
+ /**
458
+ * Generated bundle index. Do not edit.
459
+ */
460
+
461
+ export { SsoComponent, SsoModule };
462
+ //# sourceMappingURL=verben-authentication-ui-src-lib-components-sso.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verben-authentication-ui-src-lib-components-sso.mjs","sources":["../../../projects/verben-authentication-ui/src/lib/components/sso/sso.columns.ts","../../../projects/verben-authentication-ui/src/lib/components/sso/helper.ts","../../../projects/verben-authentication-ui/src/lib/components/sso/base-table-style.ts","../../../projects/verben-authentication-ui/src/lib/components/sso/sso-form/sso-form.component.ts","../../../projects/verben-authentication-ui/src/lib/components/sso/sso-form/sso-form.component.html","../../../projects/verben-authentication-ui/src/lib/components/sso/sso.component.ts","../../../projects/verben-authentication-ui/src/lib/components/sso/sso.component.html","../../../projects/verben-authentication-ui/src/lib/components/sso/sso.module.ts","../../../projects/verben-authentication-ui/src/lib/components/sso/verben-authentication-ui-src-lib-components-sso.ts"],"sourcesContent":["import { ColumnDefinition } from 'verben-ng-ui';\nimport { SingleSignOn } from 'verben-authentication-ui/src/lib/models';\n\nexport const columns: ColumnDefinition<SingleSignOn>[] = [\n {\n id: 'createdAt',\n header: 'Created',\n accessorKey: 'CreatedAt',\n },\n {\n id: 'name',\n header: 'Name',\n accessorKey: 'Name',\n },\n {\n id: 'description',\n header: 'Description',\n accessorKey: 'Description',\n },\n {\n id: 'link',\n header: 'Link',\n accessorKey: 'Link',\n },\n {\n id: 'logo',\n header: 'Logo',\n accessorKey: 'Logo',\n },\n { id: 'actions', header: 'Actions', accessorKey: 'Name' },\n];\n","import { ObjectState } from 'verben-authentication-ui/src/lib/models';\nimport { SingleSignOn } from 'verben-authentication-ui/src/lib/models';\n\nexport const mockData: SingleSignOn[] = new Array(10).fill(1).map((id, i) => ({\n Name: `Name ${id + i}`,\n Id: id,\n id: id.toString(),\n Description: `Sign in option ${id + i}`,\n Logo: `./assets/images/test-logo.png`,\n Link: `Link ${id + i}`,\n CreatedAt: new Date(),\n UpdatedAt: new Date(),\n DataState: ObjectState.New,\n TenantId: `Tenant ${id + i}`,\n Code: '',\n ServiceName: '',\n}));\n","export const baseStyle: any = {\n width: '100%',\n fontFamily: '\"Fraunces\", serif',\n fontSize: '125%',\n whiteSpace: 'nowrap',\n margin: '0',\n border: '1px solid #D4A007',\n borderRadius: '16px',\n borderCollapse: 'separate',\n borderSpacing: '0',\n tableLayout: 'fixed',\n overflow: 'hidden',\n rows: {\n even: {\n backgroundColor: '#FDFDFD',\n },\n odd: {\n backgroundColor: '#F1F4FB',\n },\n height: '68px',\n },\n cells: {\n padding: '0.5rem 1rem',\n },\n header: {\n stickyTop: true,\n zIndex: 2,\n backgroundColor: '#EFF2FB',\n fontWeight: 'bold',\n textAlign: 'left',\n padding: '12px 16px',\n height: '40px',\n },\n footer: {\n stickyBottom: true,\n zIndex: 2,\n padding: '3px',\n },\n // body: {\n // background: '#fff',\n // padding: '4px 5px',\n // textAlign: 'center',\n // },\n // firstColumn: {\n // stickyLeft: true,\n // zIndex: 1,\n // },\n lastColumn: {\n stickyRight: true,\n zIndex: 1,\n },\n};\n","import { Component, ElementRef, EventEmitter, Input, Output, ViewChild } from '@angular/core';\nimport { FormBuilder, FormGroup } from '@angular/forms';\nimport { CardData } from 'verben-ng-ui';\n\n\n@Component({\n selector: 'lib-sso-form',\n templateUrl: './sso-form.component.html',\n styleUrl: './sso-form.component.css',\n})\nexport class SsoFormComponent {\n isUploading: boolean = false;\n uploadedFileName: string | null = null;\n fileUploadError: string | null = null;\n @Input() currentData:CardData|null=null\n @Output() switchView = new EventEmitter<undefined>();\n\n form: FormGroup;\n\n constructor(private fb: FormBuilder) {\n this.form = this.fb.group({\n Description: [''],\n Name: [''],\n Link: [''],\n Logo: [''],\n });\n }\n\n ngOnInit(): void {}\n\n onSave(): void {\n if (this.form.valid) {\n // Emit save event with form value\n console.log('Form saved:', this.form.value);\n }\n }\n onDelete(): void {\n // Emit delete event\n console.log('Delete requested');\n }\n onFileSelected(event: Event) {\n const input = event.target as HTMLInputElement;\n if (input.files && input.files.length > 0) {\n const file = input.files[0];\n this.fileUploadError = null;\n if (!file) {\n this.isUploading = true;\n }\n if (file.size > 5000000) {\n this.fileUploadError = 'File size exceeds 5MB limit.';\n this.uploadedFileName = null;\n this.isUploading = false; // Reset isUploading state\n } else {\n this.uploadedFileName = file.name;\n }\n } else {\n this.isUploading = false;\n }\n }\n\n removeFile() {\n this.uploadedFileName = null;\n this.fileUploadError = null;\n const fileInput = document.getElementById('attachment') as HTMLInputElement;\n if (fileInput) {\n fileInput.value = '';\n }\n }\n\n}\n","<form\n [formGroup]=\"form\"\n class=\"flex flex-col px-3 pb-3 rounded-xl h-full w-full relative\"\n>\n <verbena-input\n name=\"Name\"\n label=\"Name:\"\n formControlName=\"Name\"\n [(ngModel)]=\"currentData?.data.Name\"\n />\n <verbena-input\n label=\"Description:\"\n name=\"Description\"\n formControlName=\"Description\"\n [(ngModel)]=\"currentData?.data.Description\"\n />\n <verbena-input\n label=\"Link:\"\n name=\"Link\"\n formControlName=\"Link\"\n [(ngModel)]=\"currentData?.data.Link\"\n/>\n<span class=\"block my-2 \">Logo</span>\n<label [style.background-color]=\"'#f9f9f9'\" class=\"border cursor-pointer border-secondary-200 rounded-md w-full px-4 py-2 flex justify-between\">\n <span *ngIf=\"!uploadedFileName\">{{isUploading?\"uploading...\":\"Upload a photo\"}}</span>\n <span *ngIf=\"fileUploadError\" class=\"error\">{{ fileUploadError }}</span>\n <div *ngIf=\"uploadedFileName\" class=\"flex items-center text-sm gap-2 border border-primary rounded-lg px-3 \">\n <span>{{ uploadedFileName }}</span>\n <button\n [style.color]=\"'black'\"\n type=\"button\"\n (click)=\"removeFile()\"\n >\n &#x2715;\n </button>\n </div>\n <input\n id=\"logo\"\n[type]=\"'file'\"\n label=\"Logo:\"\n name=\"Logo\"\n accept=\"image/png\"\n formControlName=\"Logo\"\n (change)=\"onFileSelected($event)\"\n formControlName=\"Logo\"\n/>\n<span class=\"flex gap-2\">\n<span class=\"bg-primary flex icon-container rounded-md justify-center items-center\">\n <img src=\"./assets/icons/cam.png\" class=\"icon-width\"/>\n</span>\n<span class=\"bg-primary flex icon-container rounded-md justify-center items-center\">\n <img src=\"./assets/icons/file.png\" class=\"icon-width2\"/>\n</span>\n</span>\n</label>\n\n <!-- buttons -->\n <div\n class=\"flex justify-between bottom-8 left-0 right-0 px-3 pb-2 absolute\"\n style=\"\n display: flex;\n justify-content: space-between;\n position: absolute;\n padding: 8px 12px;\n right: 0;\n left: 0;\n bottom: 32;\n \"\n >\n <!-- <verbena-button\n text=\"Delete\"\n class=\"bg-secondary-200 text-[black]\"\n (click)=\"onDelete()\"\n />\n <verbena-button\n text=\"Save\"\n class=\"bg-primary text-[black]\"\n (click)=\"onSave()\"\n />\n\n <verbena-button\n text=\"Secondary Button\"\n styleType=\"secondary\"\n ></verbena-button> -->\n <verbena-button\n width=\"114px\"\n height=\"39px\"\n text=\"Delete\"\n [bgColor]=\"'#999999'\"\n [textColor]=\"'#404040'\"\n borderRadius=\"10px\"\n ></verbena-button>\n <verbena-button\n (click)=\"switchView.emit()\"\n text=\"Switch To Table\"\n styleType=\"ylw-outline\"\n ></verbena-button>\n <verbena-button\n text=\"Save\"\n bgColor=\"#28a745\"\n textColor=\"#404040\"\n borderRadius=\"10px\"\n pd=\"10px 20px\"\n [bgColor]=\"'#FFE681'\"\n width=\"114px\"\n height=\"39px\"\n ></verbena-button>\n </div>\n</form>\n","import { Component, ViewChild } from '@angular/core';\nimport { columns } from './sso.columns';\nimport { mockData } from './helper';\nimport { baseStyle } from './base-table-style';\nimport {\n CardData,\n CardDataViewComponent,\n ColumnDefinition,\n DataFilterType,\n DataViewComponent,\n IDataFilter,\n} from 'verben-ng-ui';\nimport { SingleSignOn } from 'verben-authentication-ui/src/lib/models';\n\n@Component({\n selector: 'lib-sso',\n templateUrl: './sso.component.html',\n styleUrl: './sso.component.css',\n})\nexport class SsoComponent {\n @ViewChild('vdcv') cardDataView!: CardDataViewComponent;\n @ViewChild('vdv') dataView!: DataViewComponent;\n\n columns = columns;\n data = mockData;\n filteredColumns: ColumnDefinition<SingleSignOn>[] = columns;\n styles = baseStyle;\n currentData: CardData | null = null;\n isGridView = true;\n selected: CardData | null = null;\n\n cardData: CardData[] = mockData.map(({ Name, Description, Link, Logo }) => ({\n selected: false,\n title: Name,\n data: { Name, Description, Link, Logo } as Partial<SingleSignOn>,\n body: [{ title: 'Description', value: Description ?? '' }],\n children: [],\n }));\n\n openDetailView(name: string) {\n const cardItem = this.getCardDataByMailAddress(name);\n if (cardItem && this.cardDataView) {\n this.dataView.toggleView();\n this.cardData.forEach((item) => {\n item.selected = false;\n if (item.children) {\n item.children.forEach((child) => (child.selected = false));\n }\n });\n\n cardItem.selected = true;\n this.currentData = this.cardDataView.onItemClick(cardItem);\n }\n }\n\n getCardDataByMailAddress(name: string): CardData | undefined {\n return this.cardData.find(({ data }) => data.Name === name);\n }\n\n onViewChange(isGridView: boolean): void {\n isGridView = isGridView;\n\n if (this.currentData) {\n this.cardDataView?.clearData();\n this.currentData = null;\n }\n\n if (this.selected) {\n this.cardDataView.onItemClick(this.selected);\n }\n }\n\n openFormView(index: number) {\n const item = this.cardData[index];\n console.log('ITEM = ', item);\n }\n\n handleExport(exportedData: Partial<any>[]) {\n console.log('Exported data:', exportedData);\n this.downloadCSV(exportedData);\n }\n\n /**\n *\n * @param data Simple csv export for testing\n */\n private downloadCSV(data: Partial<any>[]) {\n const headers = Object.keys(data[0]);\n const csvContent = [\n headers.join(','),\n ...data.map((row) => headers.map((header) => row[header]).join(',')),\n ].join('\\n');\n\n const blob = new Blob([csvContent], { type: 'text/csv;charset=utf-8;' });\n const link = document.createElement('a');\n if (link.download !== undefined) {\n const url = URL.createObjectURL(blob);\n link.setAttribute('href', url);\n link.setAttribute('download', 'export.csv');\n link.style.visibility = 'hidden';\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n }\n }\n\n onSelectionChange(selectedRows: SingleSignOn[]) {\n console.log('Selection changed:', selectedRows);\n // Handle the selection change\n }\n\n /**\n * Copied over from card view doc until I understand usage\n */\n selectedColumnCount: number = 0;\n selectedFilterTableCount: number = 0;\n isOPen: boolean = true;\n selectedSortCount: number = 0;\n showColumn: boolean = false;\n showSort: boolean = false;\n showExport: boolean = false;\n selectedAll: boolean = false;\n showFilter: boolean = false;\n visibleColumns: IDataFilter[] = columns.map((col) => ({\n checked: false,\n name: typeof col.header === 'string' ? col.header : col.id,\n type: DataFilterType.Bool,\n }));\n filterArray: IDataFilter[] = [\n {\n name: 'Name',\n type: DataFilterType.String,\n checked: false,\n },\n {\n name: 'Description',\n type: DataFilterType.String,\n checked: false,\n },\n {\n name: 'Logo',\n type: DataFilterType.String,\n checked: false,\n },\n {\n name: 'Link',\n type: DataFilterType.String,\n checked: false,\n },\n {\n name: 'CreatedAt',\n type: DataFilterType.Date,\n checked: false,\n },\n ];\n sortOptions: IDataFilter[] = [\n {\n name: 'Name',\n type: DataFilterType.String,\n checked: false,\n },\n {\n name: 'Description',\n type: DataFilterType.String,\n checked: false,\n },\n {\n name: 'Link',\n type: DataFilterType.String,\n checked: false,\n },\n {\n name: 'Logo',\n type: DataFilterType.String,\n checked: false,\n },\n {\n name: 'CreatedAt',\n type: DataFilterType.Date,\n checked: false,\n },\n ];\n clearData() {\n this.currentData = {} as CardData;\n }\n loadMore() {\n this.cardData = this.cardData.concat(this.cardData);\n }\n onColumnChange(event: boolean) {\n this.showColumn = event;\n }\n onSortChange(event: boolean) {\n this.showSort = false;\n console.log(event);\n }\n\n onColumnsUpdated(updatedColumns: IDataFilter[]) {\n this.showColumn = false;\n this.selectedColumnCount = updatedColumns.length;\n\n if (updatedColumns) {\n // Filter columns to include only visible ones\n this.filteredColumns = this.columns.filter((col) =>\n this.visibleColumns.find(\n (filter) => filter.name === col.header && filter.checked\n )\n );\n\n // Reorder columns based on the order in visibleColumns\n const visibleColumnOrder = this.visibleColumns\n .filter((filter) => filter.checked)\n .map((filter) => filter.name);\n\n this.columns.sort((a, b) => {\n const indexA = visibleColumnOrder.indexOf(a.header as string);\n const indexB = visibleColumnOrder.indexOf(b.header as string);\n return indexA - indexB;\n });\n }\n }\n\n onFilterApplied(appliedFilter: IDataFilter[]) {\n this.showFilter = false;\n if (Array.isArray(appliedFilter)) {\n this.selectedFilterTableCount = appliedFilter.length;\n } else {\n console.log('appliedFilter is not an array');\n }\n }\n\n onSortUpdated(updatedSorts: IDataFilter[]) {\n this.onSortChange(false);\n this.selectedSortCount = updatedSorts.length;\n console.log(updatedSorts);\n }\n\n onStateChange(event: { key: string; value: boolean }): void {\n switch (event.key) {\n case 'column':\n this.showColumn = event.value;\n break;\n case 'sort':\n this.showSort = event.value;\n break;\n case 'export':\n this.showExport = event.value;\n break;\n case 'filter':\n this.showFilter = event.value;\n break;\n default:\n break;\n }\n }\n}\n","<div class=\"space-y-8\">\n <verben-data-view\n #vdv\n [viewState]=\"{\n isSearch: true,\n isColumn: true,\n isFilter: true,\n isSort: true,\n isExport: true,\n isSelect: true,\n isToggle:true\n }\"\n [buttonClass]=\"'my-custom-button-class'\"\n [iconClass]=\"'my-icon-class'\"\n [activeIconClass]=\"'my-active-icon-class'\"\n [selectedSortCount]=\"selectedSortCount\"\n [selectedColumnCount]=\"selectedColumnCount\"\n [selectedFilterTableCount]=\"selectedFilterTableCount\"\n [showColumnChild]=\"showColumn\"\n [showSortChild]=\"showSort\"\n [showFilterChild]=\"showFilter\"\n [isTableView]=\"false\"\n [selectedFilterTableCount]=\"0\"\n [cardIcon]=\"'list-view'\"\n [tableIcon]=\"'table-view'\"\n (viewChange)=\"onViewChange($event)\"\n (stateChange)=\"onStateChange($event)\"\n >\n <div table-content>\n <lib-data-table\n [data]=\"data\"\n [columns]=\"filteredColumns\"\n [styleConfig]=\"styles\"\n (selectionChange)=\"onSelectionChange($event)\"\n >\n <ng-container libColumn=\"createdAt\">\n <ng-template #cell let-value>\n {{ value | date }}\n </ng-template>\n </ng-container>\n <ng-container libColumn=\"logo\">\n <ng-template #cell let-value>\n <img class=\"logo-width\" [src]=\"value\"/>\n </ng-template>\n </ng-container>\n <ng-container libColumn=\"actions\">\n <ng-template #cell let-value let-deleteRow let-rowIndex>\n <div class=\"flex space-x-8\" style=\"display: flex; gap: 24px\">\n <verben-svg\n (click)=\"openDetailView(value)\"\n icon=\"edit\"\n [width]=\"15\"\n [height]=\"15\"\n stroke=\"#3479E9\"\n fill=\"white\"\n class=\"cursor-pointer\"\n ></verben-svg>\n <verben-svg\n icon=\"delete\"\n [width]=\"15\"\n [height]=\"15\"\n stroke=\"#E20000\"\n (click)=\"deleteRow()\"\n class=\"cursor-pointer\"\n ></verben-svg>\n </div>\n </ng-template>\n <ng-template #header>\n <strong>Actions</strong>\n </ng-template>\n </ng-container>\n </lib-data-table>\n </div>\n <div card-content>\n <verben-card-data-view\n borderRadius=\"12px\"\n (loadMoreClick)=\"loadMore()\"\n #vdcv\n dataId=\"Link\"\n border=\"5px\"\n [cardDataList]=\"cardData\"\n rbgColor=\"#f5f6f9\"\n >\n <verben-left-card-data-view class=\"\">\n <verben-left-card-data\n #vlcd\n [parent]=\"vdcv\"\n dataId=\"Link\"\n class=\"bg-secondary-100 rounded-xl border-primary border-[1px]\"\n [cardDataList]=\"cardData\"\n >\n <ng-template #card let-item>\n <div (click)=\"currentData = vdcv.onItemClick(item)\" class=\"flex\">\n <verben-svg\n [width]=\"15\"\n [height]=\"15\"\n (click)=\"vlcd.showChildren(item)\"\n [ngClass]=\"vlcd.showToggle(item) ? 'visible' : 'invisible'\"\n class=\"items-center flex pr-1 cursor-pointer\"\n [icon]=\"item.isChildrenExpanded ? 'minus' : 'plus'\"\n />\n <div\n (click)=\"currentData = vdcv.onItemClick(item)\"\n class=\"flex cursor-pointer w-full bg-secondary rounded-xl\"\n >\n <div\n class=\"w-3 rounded-xl rounded-tr-none rounded-br-none\"\n [ngClass]=\"\n item.selected ? 'bg-primary' : 'bg-secondary-200'\n \"\n ></div>\n <div class=\"flex flex-col py-2 px-4 w-full\">\n <div class=\"flex\">\n <span class=\"font-bold text-sm\">{{ item.data.Name }}</span>\n </div>\n @for (ciItem of item.body; track ciItem.value) {\n <div class=\"flex items-center justify-between gap-2\">\n <div>\n <span class=\"text-muted font-light text-xs\"\n >{{ ciItem.title }}:</span\n >\n <span class=\"text-black text-xs font-semibold\">{{ item.data.Description }}</span>\n </div>\n <img class=\"logo-width\" [alt]=\"ciItem.title\" [src]=\"item.data.Logo\"/>\n </div>\n }\n </div>\n </div>\n </div>\n </ng-template>\n </verben-left-card-data>\n </verben-left-card-data-view>\n\n <verben-right-card-data-view>\n <ng-template #parent>\n <lib-sso-form\n [currentData]=\"currentData\"\n (switchView)=\"vdv.toggleView()\"\n ></lib-sso-form>\n </ng-template>\n </verben-right-card-data-view>\n\n <verben-card-data-view-footer class=\"float-right\">\n <div class=\"flex gap-2 mt-1\">\n <span class=\"paginator-text\"\n >{{ cardData.length }} records loaded</span\n >\n <button (click)=\"loadMore()\" class=\"load-more\">Load more</button>\n </div>\n </verben-card-data-view-footer>\n </verben-card-data-view>\n </div>\n <div column-content>\n <verben-visible-column\n (columnsUpdated)=\"onColumnsUpdated($event)\"\n [border]=\"'1px solid rgba(212, 160, 7, 1)'\"\n borderRadius=\"10px\"\n boxShadow=\"2px 2px 2px 0px silver\"\n bgColor=\"white\"\n width=\"400px\"\n textColor=\"black\"\n pd=\"1rem\"\n primaryColor=\"#FFE681\"\n secondaryColor=\"#3479E9\"\n [columns]=\"visibleColumns\"\n [displayedColumns]=\"5\"\n ></verben-visible-column>\n </div>\n <div filter-content>\n <verben-table-filter\n (filtersApplied)=\"onFilterApplied($event)\"\n [border]=\"'1px solid rgba(212, 160, 7, 1)'\"\n borderRadius=\"10px\"\n boxShadow=\"2px 2px 2px 0px silver\"\n bgColor=\"white\"\n width=\"420px\"\n textColor=\"black\"\n pd=\"1rem\"\n primaryColor=\"#FFE681\"\n secondaryColor=\"#3479E9\"\n tertiaryColor=\"#404040\"\n [filterOptions]=\"filterArray\"\n [maxFilterLength]=\"3\"\n ></verben-table-filter>\n </div>\n <div sort-content>\n <verben-sort-table\n (selectedOptions)=\"onSortUpdated($event)\"\n [border]=\"'1px solid rgba(212, 160, 7, 1)'\"\n borderRadius=\"10px\"\n boxShadow=\"2px 2px 2px 0px silver\"\n bgColor=\"white\"\n width=\"400px\"\n textColor=\"black\"\n pd=\"1rem\"\n primaryColor=\"#FFE681\"\n secondaryColor=\"#3479E9\"\n tertiaryColor=\"#404040\"\n [enableDragAndDrop]=\"true\"\n [sortOptions]=\"sortOptions\"\n ></verben-sort-table>\n </div>\n <div export-content>\n <lib-data-export [data]=\"data\" (exportDataEvent)=\"handleExport($event)\">\n </lib-data-export>\n </div>\n </verben-data-view>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport {\n DataViewModule,\n TableFilterModule,\n SortTableModule,\n DataExportModule,\n VisibleColumnModule,\n VerbenaButtonModule,\n CardDataViewModule,\n SvgModule,\n VerbenaInputModule,\n DataTableModule,\n VerbenaTextareaModule,\n} from 'verben-ng-ui';\nimport { SsoComponent } from './sso.component';\nimport { SsoFormComponent } from './sso-form/sso-form.component';\n@NgModule({\n declarations: [SsoComponent,SsoFormComponent],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n DataViewModule,\n TableFilterModule,\n SortTableModule,\n DataExportModule,\n VisibleColumnModule,\n VerbenaButtonModule,\n CardDataViewModule,\n VerbenaInputModule,\n SvgModule,\n VerbenaTextareaModule,\n DataTableModule,\n ],\n exports: [SsoComponent],\n})\nexport class SsoModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2","i3","i1","i3.SsoFormComponent"],"mappings":"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"}