@genesislcap/foundation-login 9.0.1-alpha-b5c5eb7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (260) hide show
  1. package/README.md +160 -0
  2. package/dist/1.0.0.remoteEntry.js +1 -0
  3. package/dist/15.15.b20930426d82ddb7bd44.js +1322 -0
  4. package/dist/15.1f4ec0deba9aca7499d56c621e06b130.js.map +1 -0
  5. package/dist/170.170.f64459527c9480c31e74.js +726 -0
  6. package/dist/170.a9086b342b886f13162e76944c6232ea.js.map +1 -0
  7. package/dist/176.176.bfbfc60ffad852c406c4.js +2 -0
  8. package/dist/176.7ce7d4e386b9ebd99f2a121d6364c1ad.js.map +1 -0
  9. package/dist/185.185.c56719990d52bcca8549.js +2 -0
  10. package/dist/185.d623d7c2df70c9d665343444e7c1fa6c.js.map +1 -0
  11. package/dist/338.338.e399ff6c11eb8175de4c.js +2 -0
  12. package/dist/338.4f68feefeaca1bf1dbc7ba12af2e84aa.js.map +1 -0
  13. package/dist/397.397.22e0364e0ff35fdfe9a0.js +3 -0
  14. package/dist/397.397.22e0364e0ff35fdfe9a0.js.LICENSE.txt +1 -0
  15. package/dist/397.629a215804364ccc7763bc046dbea3d5.js.map +1 -0
  16. package/dist/419.419.00fda3874a096d8457d8.js +2136 -0
  17. package/dist/419.b6fb3444f7d56877c3a81cba8eaca942.js.map +1 -0
  18. package/dist/453.3c9a25d2af3ccf8232fdd1dfc5244b3d.js.map +1 -0
  19. package/dist/453.453.14247e88aa4df78dca2c.js +2 -0
  20. package/dist/726.4c7419d8edb8ba5e67699f4820c8c461.js.map +1 -0
  21. package/dist/726.726.e09fed9a1e3b529acd46.js +3 -0
  22. package/dist/726.726.e09fed9a1e3b529acd46.js.LICENSE.txt +4 -0
  23. package/dist/741.741.d84fc7e9236cae1acc99.js +3 -0
  24. package/dist/741.741.d84fc7e9236cae1acc99.js.LICENSE.txt +4 -0
  25. package/dist/741.a3dfed45252169e53ee396a8b76cea67.js.map +1 -0
  26. package/dist/b634d7e1f2324faf1230.svg +10 -0
  27. package/dist/c0bd2c45d93ce443d624.jpg +0 -0
  28. package/dist/dashboard.json +1 -0
  29. package/dist/dts/components/components.d.ts +5 -0
  30. package/dist/dts/components/components.d.ts.map +1 -0
  31. package/dist/dts/components/index.d.ts +2 -0
  32. package/dist/dts/components/index.d.ts.map +1 -0
  33. package/dist/dts/index.d.ts +3 -0
  34. package/dist/dts/index.d.ts.map +1 -0
  35. package/dist/dts/index.federated.d.ts +1 -0
  36. package/dist/dts/index.federated.d.ts.map +1 -0
  37. package/dist/dts/layouts/default.d.ts +3 -0
  38. package/dist/dts/layouts/default.d.ts.map +1 -0
  39. package/dist/dts/layouts/index.d.ts +2 -0
  40. package/dist/dts/layouts/index.d.ts.map +1 -0
  41. package/dist/dts/main/config.d.ts +261 -0
  42. package/dist/dts/main/config.d.ts.map +1 -0
  43. package/dist/dts/main/define.d.ts +29 -0
  44. package/dist/dts/main/define.d.ts.map +1 -0
  45. package/dist/dts/main/index.d.ts +7 -0
  46. package/dist/dts/main/index.d.ts.map +1 -0
  47. package/dist/dts/main/main.d.ts +179 -0
  48. package/dist/dts/main/main.d.ts.map +1 -0
  49. package/dist/dts/main/main.definition.d.ts +48 -0
  50. package/dist/dts/main/main.definition.d.ts.map +1 -0
  51. package/dist/dts/main/main.styles.d.ts +13 -0
  52. package/dist/dts/main/main.styles.d.ts.map +1 -0
  53. package/dist/dts/main/main.template.d.ts +7 -0
  54. package/dist/dts/main/main.template.d.ts.map +1 -0
  55. package/dist/dts/routes/base.d.ts +127 -0
  56. package/dist/dts/routes/base.d.ts.map +1 -0
  57. package/dist/dts/routes/config.d.ts +27 -0
  58. package/dist/dts/routes/config.d.ts.map +1 -0
  59. package/dist/dts/routes/forgot-password/forgot-password.d.ts +6 -0
  60. package/dist/dts/routes/forgot-password/forgot-password.d.ts.map +1 -0
  61. package/dist/dts/routes/forgot-password/forgot-password.template.d.ts +3 -0
  62. package/dist/dts/routes/forgot-password/forgot-password.template.d.ts.map +1 -0
  63. package/dist/dts/routes/index.d.ts +4 -0
  64. package/dist/dts/routes/index.d.ts.map +1 -0
  65. package/dist/dts/routes/login-form/login-form.d.ts +27 -0
  66. package/dist/dts/routes/login-form/login-form.d.ts.map +1 -0
  67. package/dist/dts/routes/login-form/login-form.styles.d.ts +2 -0
  68. package/dist/dts/routes/login-form/login-form.styles.d.ts.map +1 -0
  69. package/dist/dts/routes/login-form/login-form.template.d.ts +3 -0
  70. package/dist/dts/routes/login-form/login-form.template.d.ts.map +1 -0
  71. package/dist/dts/routes/not-found/not-found.d.ts +4 -0
  72. package/dist/dts/routes/not-found/not-found.d.ts.map +1 -0
  73. package/dist/dts/routes/protected/protected.d.ts +5 -0
  74. package/dist/dts/routes/protected/protected.d.ts.map +1 -0
  75. package/dist/dts/routes/protected/protected.template.d.ts +3 -0
  76. package/dist/dts/routes/protected/protected.template.d.ts.map +1 -0
  77. package/dist/dts/routes/request-account/request-account.d.ts +6 -0
  78. package/dist/dts/routes/request-account/request-account.d.ts.map +1 -0
  79. package/dist/dts/routes/request-account/request-account.template.d.ts +3 -0
  80. package/dist/dts/routes/request-account/request-account.template.d.ts.map +1 -0
  81. package/dist/dts/routes/reset-password/reset-password.d.ts +14 -0
  82. package/dist/dts/routes/reset-password/reset-password.d.ts.map +1 -0
  83. package/dist/dts/routes/reset-password/reset-password.template.d.ts +3 -0
  84. package/dist/dts/routes/reset-password/reset-password.template.d.ts.map +1 -0
  85. package/dist/dts/routes/types.d.ts +29 -0
  86. package/dist/dts/routes/types.d.ts.map +1 -0
  87. package/dist/dts/routes/verify/verify.d.ts +6 -0
  88. package/dist/dts/routes/verify/verify.d.ts.map +1 -0
  89. package/dist/dts/routes/verify/verify.template.d.ts +3 -0
  90. package/dist/dts/routes/verify/verify.template.d.ts.map +1 -0
  91. package/dist/dts/styles/index.d.ts +3 -0
  92. package/dist/dts/styles/index.d.ts.map +1 -0
  93. package/dist/dts/styles/styles.d.ts +5 -0
  94. package/dist/dts/styles/styles.d.ts.map +1 -0
  95. package/dist/dts/styles/typography.d.ts +4 -0
  96. package/dist/dts/styles/typography.d.ts.map +1 -0
  97. package/dist/dts/utils/index.d.ts +2 -0
  98. package/dist/dts/utils/index.d.ts.map +1 -0
  99. package/dist/dts/utils/logger.d.ts +2 -0
  100. package/dist/dts/utils/logger.d.ts.map +1 -0
  101. package/dist/esm/assets/bg.jpg +0 -0
  102. package/dist/esm/assets/genesis-logo-dark.svg +32 -0
  103. package/dist/esm/assets/genesis-logo-light.svg +10 -0
  104. package/dist/esm/assets/genesis-logo-old.svg +36 -0
  105. package/dist/esm/components/components.js +49 -0
  106. package/dist/esm/components/components.js.map +1 -0
  107. package/dist/esm/components/index.js +2 -0
  108. package/dist/esm/components/index.js.map +1 -0
  109. package/dist/esm/index.federated.js +2 -0
  110. package/dist/esm/index.federated.js.map +1 -0
  111. package/dist/esm/index.js +3 -0
  112. package/dist/esm/index.js.map +1 -0
  113. package/dist/esm/layouts/default.js +28 -0
  114. package/dist/esm/layouts/default.js.map +1 -0
  115. package/dist/esm/layouts/index.js +2 -0
  116. package/dist/esm/layouts/index.js.map +1 -0
  117. package/dist/esm/main/config.js +153 -0
  118. package/dist/esm/main/config.js.map +1 -0
  119. package/dist/esm/main/define.js +31 -0
  120. package/dist/esm/main/define.js.map +1 -0
  121. package/dist/esm/main/index.js +7 -0
  122. package/dist/esm/main/index.js.map +1 -0
  123. package/dist/esm/main/main.definition.js +44 -0
  124. package/dist/esm/main/main.definition.js.map +1 -0
  125. package/dist/esm/main/main.js +234 -0
  126. package/dist/esm/main/main.js.map +1 -0
  127. package/dist/esm/main/main.styles.js +39 -0
  128. package/dist/esm/main/main.styles.js.map +1 -0
  129. package/dist/esm/main/main.template.js +15 -0
  130. package/dist/esm/main/main.template.js.map +1 -0
  131. package/dist/esm/routes/base.js +512 -0
  132. package/dist/esm/routes/base.js.map +1 -0
  133. package/dist/esm/routes/config.js +169 -0
  134. package/dist/esm/routes/config.js.map +1 -0
  135. package/dist/esm/routes/forgot-password/forgot-password.js +42 -0
  136. package/dist/esm/routes/forgot-password/forgot-password.js.map +1 -0
  137. package/dist/esm/routes/forgot-password/forgot-password.template.js +27 -0
  138. package/dist/esm/routes/forgot-password/forgot-password.template.js.map +1 -0
  139. package/dist/esm/routes/index.js +4 -0
  140. package/dist/esm/routes/index.js.map +1 -0
  141. package/dist/esm/routes/login-form/login-form.js +256 -0
  142. package/dist/esm/routes/login-form/login-form.js.map +1 -0
  143. package/dist/esm/routes/login-form/login-form.styles.js +79 -0
  144. package/dist/esm/routes/login-form/login-form.styles.js.map +1 -0
  145. package/dist/esm/routes/login-form/login-form.template.js +162 -0
  146. package/dist/esm/routes/login-form/login-form.template.js.map +1 -0
  147. package/dist/esm/routes/not-found/not-found.js +17 -0
  148. package/dist/esm/routes/not-found/not-found.js.map +1 -0
  149. package/dist/esm/routes/protected/protected.js +26 -0
  150. package/dist/esm/routes/protected/protected.js.map +1 -0
  151. package/dist/esm/routes/protected/protected.template.js +14 -0
  152. package/dist/esm/routes/protected/protected.template.js.map +1 -0
  153. package/dist/esm/routes/request-account/request-account.js +33 -0
  154. package/dist/esm/routes/request-account/request-account.js.map +1 -0
  155. package/dist/esm/routes/request-account/request-account.template.js +38 -0
  156. package/dist/esm/routes/request-account/request-account.template.js.map +1 -0
  157. package/dist/esm/routes/reset-password/reset-password.js +79 -0
  158. package/dist/esm/routes/reset-password/reset-password.js.map +1 -0
  159. package/dist/esm/routes/reset-password/reset-password.template.js +31 -0
  160. package/dist/esm/routes/reset-password/reset-password.template.js.map +1 -0
  161. package/dist/esm/routes/types.js +2 -0
  162. package/dist/esm/routes/types.js.map +1 -0
  163. package/dist/esm/routes/verify/verify.js +33 -0
  164. package/dist/esm/routes/verify/verify.js.map +1 -0
  165. package/dist/esm/routes/verify/verify.template.js +39 -0
  166. package/dist/esm/routes/verify/verify.template.js.map +1 -0
  167. package/dist/esm/styles/index.js +3 -0
  168. package/dist/esm/styles/index.js.map +1 -0
  169. package/dist/esm/styles/styles.js +145 -0
  170. package/dist/esm/styles/styles.js.map +1 -0
  171. package/dist/esm/styles/typography.js +27 -0
  172. package/dist/esm/styles/typography.js.map +1 -0
  173. package/dist/esm/utils/index.js +2 -0
  174. package/dist/esm/utils/index.js.map +1 -0
  175. package/dist/esm/utils/logger.js +3 -0
  176. package/dist/esm/utils/logger.js.map +1 -0
  177. package/dist/favicon.ico +0 -0
  178. package/dist/foundation-login.api.json +1598 -0
  179. package/dist/foundation-login.d.ts +758 -0
  180. package/dist/foundationLogin.51f4a45f08e04c340be2f7a5a21d203d.js.map +1 -0
  181. package/dist/index.ejs +23 -0
  182. package/dist/index.html +10 -0
  183. package/dist/info.ejs +13 -0
  184. package/dist/info.html +22 -0
  185. package/dist/main.6b8ef32149fa7ade387e34be21e80e9f.js.map +1 -0
  186. package/dist/main.f20fa5670484f5c57ef1.js +2 -0
  187. package/dist/npm.analytics.343.1691cbc7d8a5badd3734.js +2 -0
  188. package/dist/npm.analytics.ce2eefcbb0dbd8ec610f4a90f48aa689.js.map +1 -0
  189. package/dist/npm.consola.713.661cb6ae3806c228029d.js +2 -0
  190. package/dist/npm.consola.96aceeeb14c801e429604b872dd754d7.js.map +1 -0
  191. package/dist/npm.dialog-polyfill.47.34b0c0d52e6712cf91bb.js +2 -0
  192. package/dist/npm.dialog-polyfill.9d605973cbc29184d8b9b4736433dddc.js.map +1 -0
  193. package/dist/npm.finos.690.d012d887fab1a50fd3fd.js +2 -0
  194. package/dist/npm.finos.bb7f5996c8be19fd2a1c0bb82b2512ef.js.map +1 -0
  195. package/dist/npm.fortawesome.104.f45009da0a55a389999c.js +2 -0
  196. package/dist/npm.fortawesome.e10775e8f8583851351996b12aec3dfb.js.map +1 -0
  197. package/dist/npm.microsoft.127.7781d48b93413319f199.js +6406 -0
  198. package/dist/npm.microsoft.127.7781d48b93413319f199.js.LICENSE.txt +14 -0
  199. package/dist/npm.microsoft.b0947aa2f980f173ee68c35127bf2481.js.map +1 -0
  200. package/dist/npm.popperjs.47700ec72e909558c6ebe29941887dcf.js.map +1 -0
  201. package/dist/npm.popperjs.591.6ab52bc8e177edef695a.js +2 -0
  202. package/dist/npm.rxjs.271.210fdd198235c86ce4cd.js +2 -0
  203. package/dist/npm.rxjs.36e7291df63583daef7bbafd0a3ab9dc.js.map +1 -0
  204. package/dist/remoteEntry.js +2 -0
  205. package/dist/serve.json +3 -0
  206. package/dist/tsdoc-metadata.json +11 -0
  207. package/docs/.gitattributes +2 -0
  208. package/docs/api/foundation-login.configure.md +62 -0
  209. package/docs/api/foundation-login.defaultapihost.md +12 -0
  210. package/docs/api/foundation-login.defaultloginconfig.md +13 -0
  211. package/docs/api/foundation-login.defaultorganisation.md +12 -0
  212. package/docs/api/foundation-login.defaultpassword.md +12 -0
  213. package/docs/api/foundation-login.defaultsocketext.md +12 -0
  214. package/docs/api/foundation-login.defaulttemplateoptions.md +16 -0
  215. package/docs/api/foundation-login.defaultuser.md +12 -0
  216. package/docs/api/foundation-login.define.md +38 -0
  217. package/docs/api/foundation-login.definition.md +19 -0
  218. package/docs/api/foundation-login.fieldconfig.md +16 -0
  219. package/docs/api/foundation-login.fieldconfigmap.md +19 -0
  220. package/docs/api/foundation-login.hostenv.md +12 -0
  221. package/docs/api/foundation-login.hosturl.md +12 -0
  222. package/docs/api/foundation-login.idp.id.md +11 -0
  223. package/docs/api/foundation-login.idp.md +20 -0
  224. package/docs/api/foundation-login.idp.type.md +11 -0
  225. package/docs/api/foundation-login.idpresponse.id.md +11 -0
  226. package/docs/api/foundation-login.idpresponse.md +20 -0
  227. package/docs/api/foundation-login.idpresponse.type.md +11 -0
  228. package/docs/api/foundation-login.ismfroute.md +24 -0
  229. package/docs/api/foundation-login.login.md +108 -0
  230. package/docs/api/foundation-login.loginconfig.autoauth.md +18 -0
  231. package/docs/api/foundation-login.loginconfig.autoconnect.md +13 -0
  232. package/docs/api/foundation-login.loginconfig.background.md +30 -0
  233. package/docs/api/foundation-login.loginconfig.defaultredirecturl.md +18 -0
  234. package/docs/api/foundation-login.loginconfig.fields.md +18 -0
  235. package/docs/api/foundation-login.loginconfig.logo.md +28 -0
  236. package/docs/api/foundation-login.loginconfig.md +30 -0
  237. package/docs/api/foundation-login.loginconfig.omitredirecturls.md +21 -0
  238. package/docs/api/foundation-login.loginconfig.omitroutes.md +25 -0
  239. package/docs/api/foundation-login.loginconfig.showconnectionindicator.md +13 -0
  240. package/docs/api/foundation-login.loginconfig.sso.md +18 -0
  241. package/docs/api/foundation-login.loginconfig.versioninformation.md +25 -0
  242. package/docs/api/foundation-login.loginhosted.md +23 -0
  243. package/docs/api/foundation-login.loginhosted.registercommoncomponents.md +18 -0
  244. package/docs/api/foundation-login.md +59 -0
  245. package/docs/api/foundation-login.routes.md +20 -0
  246. package/docs/api/foundation-login.settings.md +20 -0
  247. package/docs/api/foundation-login.ssoconfig.md +15 -0
  248. package/docs/api/foundation-login.styles.md +12 -0
  249. package/docs/api/foundation-login.template.md +12 -0
  250. package/docs/api/foundation-login.templatecomponents.md +25 -0
  251. package/docs/api/foundation-login.templateoptions.md +19 -0
  252. package/docs/api/index.md +12 -0
  253. package/docs/api-report.md +380 -0
  254. package/docs/img/foundation-login_change-password.png +0 -0
  255. package/docs/img/foundation-login_forgotten-password.png +0 -0
  256. package/docs/img/foundation-login_login-sso.png +0 -0
  257. package/docs/img/foundation-login_login-standard.png +0 -0
  258. package/docs/img/foundation-login_request-account.png +0 -0
  259. package/license.txt +46 -0
  260. package/package.json +90 -0
@@ -0,0 +1,261 @@
1
+ import { ElementStyles } from '@microsoft/fast-element';
2
+ import { Container } from '@microsoft/fast-foundation';
3
+ /**
4
+ * @public
5
+ */
6
+ export declare const defaultOrganisation: string;
7
+ /**
8
+ * @public
9
+ */
10
+ export declare const defaultUser: string;
11
+ /**
12
+ * @public
13
+ */
14
+ export declare const defaultPassword: string;
15
+ /**
16
+ * @public
17
+ */
18
+ export declare const defaultApiHost: string;
19
+ /**
20
+ * @public
21
+ */
22
+ export declare const defaultSocketExt: string;
23
+ /**
24
+ * @public
25
+ */
26
+ export declare const hostEnv: string;
27
+ /**
28
+ * @public
29
+ */
30
+ export declare const hostUrl: string;
31
+ /**
32
+ * @public
33
+ */
34
+ export declare const Routes: {
35
+ readonly login: "login";
36
+ readonly 'request-account': "request-account";
37
+ readonly 'reset-password': "reset-password";
38
+ readonly 'forgot-password': "forgot-password";
39
+ readonly verify: "verify";
40
+ readonly protected: "protected";
41
+ readonly 'not-found': "not-found";
42
+ };
43
+ /**
44
+ * @public
45
+ */
46
+ export type Routes = (typeof Routes)[keyof typeof Routes];
47
+ /**
48
+ * A utility to check if a pathname is a route of this micro frontend.
49
+ *
50
+ * @param pathname - A pathname string to check, typically location.pathname, which is used when a value is omitted.
51
+ *
52
+ * @public
53
+ * @privateRemarks
54
+ * I've just put this util in for now given there's some app level direction code in place which needs review.
55
+ */
56
+ export declare function isMFRoute(pathname?: string): boolean;
57
+ /**
58
+ * @public
59
+ * Could be expanded to allow field ViewTemplates.
60
+ */
61
+ export type FieldConfig = {
62
+ label: string;
63
+ /**
64
+ * @privateRemarks
65
+ * Added for now to apply defaults, but I'm not convinced we should do this. Could be made reactive after upgrade.
66
+ */
67
+ value?: any;
68
+ };
69
+ /**
70
+ * @public
71
+ * @privateRemarks
72
+ * Using null to exclude the organisation field rather than boolean, as it affords cleaner value lookups in the templates.
73
+ */
74
+ export type FieldConfigMap = {
75
+ organisation: FieldConfig | null;
76
+ username: FieldConfig;
77
+ email: FieldConfig;
78
+ password: FieldConfig;
79
+ };
80
+ /**
81
+ * @public
82
+ */
83
+ export type SSOConfig = {
84
+ /**
85
+ * Optionally toggle the SSO journey on/off by default.
86
+ */
87
+ toggled?: boolean;
88
+ /**
89
+ * The identity providers path under the current host.
90
+ *
91
+ * @example
92
+ * ```ts
93
+ * identityProvidersPath: 'sso/list'
94
+ * ```
95
+ */
96
+ identityProvidersPath: string;
97
+ };
98
+ /**
99
+ * LoginConfig DI interface.
100
+ *
101
+ * @public
102
+ */
103
+ export interface LoginConfig {
104
+ /**
105
+ * Connect automatically or require user to click a connect button.
106
+ */
107
+ autoConnect: boolean;
108
+ /**
109
+ * Login automatically or require user to click a login button after a connection is established.
110
+ *
111
+ * @remarks
112
+ * Needs to manually be enabled in the NavigationContributor (see [2] in the example in the {@link Login} class).
113
+ */
114
+ autoAuth: boolean;
115
+ /**
116
+ * Logo styles.
117
+ *
118
+ * @remarks
119
+ * Providing `null` will hide the logo. Use content: url(...); to set source.
120
+ *
121
+ * @example Setting a custom logo
122
+ * ```ts
123
+ * logo: css`
124
+ * content: url(${customLogoImport});
125
+ * `,
126
+ * ```
127
+ */
128
+ logo: ElementStyles | null;
129
+ /**
130
+ * Background styles.
131
+ *
132
+ * @remarks
133
+ * See {@link https://developer.mozilla.org/en-US/docs/Web/CSS/background} for more information.
134
+ *
135
+ * @example Setting a custom background image
136
+ * ```ts
137
+ * background: css`
138
+ * :host {
139
+ * background-image: url(${customBGImport});
140
+ * }
141
+ * `,
142
+ * ```
143
+ */
144
+ background: ElementStyles;
145
+ /**
146
+ * Omit any of the internal routes except 'login' and 'not-found'.
147
+ *
148
+ * @remarks
149
+ * Routes specified here will not be configured nor will any internal cross-links to them be displayed.
150
+ *
151
+ * @example
152
+ * ```ts
153
+ * omitRoutes: ['request-account'],
154
+ * ```
155
+ */
156
+ omitRoutes: Exclude<Routes, 'login' | 'not-found'>[];
157
+ /**
158
+ * Map of configuration for each of the primary form fields.
159
+ *
160
+ * @remarks
161
+ * Use to drive inclusion / exclusion, tailor labels etc.
162
+ */
163
+ fields: FieldConfigMap;
164
+ /**
165
+ * Show or hide the connection status indicator.
166
+ */
167
+ showConnectionIndicator: boolean;
168
+ /**
169
+ * The default URL to route the user to after a successful login.
170
+ *
171
+ * @remarks
172
+ * Session.returnUrl set via Session.captureReturnUrl() trumps this value.
173
+ */
174
+ defaultRedirectUrl: string;
175
+ /**
176
+ * Omit certain return urls which the session service may have captured.
177
+ *
178
+ * @example
179
+ * ```ts
180
+ * omitRedirectUrls: ['/not-found'],
181
+ * ```
182
+ */
183
+ omitRedirectUrls: string[];
184
+ /**
185
+ * SSO configuration.
186
+ *
187
+ * @remarks
188
+ * Providing `null` excludes the SSO journey option completely.
189
+ */
190
+ sso: SSOConfig | null;
191
+ /**
192
+ * Display arbitrary version information.
193
+ *
194
+ * @remarks
195
+ * Applications may choose to set this to display their Application release version on the login form.
196
+ *
197
+ * @example
198
+ * ```ts
199
+ * versionInformation: 'Version 3.0.0',
200
+ * ```
201
+ */
202
+ versionInformation?: string;
203
+ }
204
+ /**
205
+ * Default LoginConfig DI implementation.
206
+ * @public
207
+ */
208
+ export declare const defaultLoginConfig: LoginConfig;
209
+ /**
210
+ * LoginConfig DI key.
211
+ *
212
+ * @internal
213
+ * @privateRemarks
214
+ * Marked as internal to stop api-extractor becoming confused cross-linking tokens with the same name.
215
+ */
216
+ export declare const LoginConfig: import("@microsoft/fast-foundation").InterfaceSymbol<LoginConfig>;
217
+ /**
218
+ * Configure the login micro frontend settings.
219
+ *
220
+ * @remarks
221
+ * This is primarily for general settings, rather than re-defining the element, static templating / style changes.
222
+ *
223
+ * @param container - DI container.
224
+ * @param config - A partial LoginConfig.
225
+ *
226
+ * @example Configuring login on lazy load
227
+ * ```ts
228
+ * name: 'login',
229
+ * path: 'login',
230
+ * title: 'Login',
231
+ * element: async () => {
232
+ * const { configure, define, defaultLoginConfig } = await import('@genesislcap/foundation-login');
233
+ * configure(this.container, {
234
+ * autoConnect: true,
235
+ * omitRoutes: ['request-account'],
236
+ * fields: {
237
+ * ...defaultLoginConfig.fields,
238
+ * organisation: {
239
+ * label: 'CompID',
240
+ * },
241
+ * },
242
+ * defaultRedirectUrl: 'dashboard',
243
+ * logo: loginLogo,
244
+ * background: loginBG,
245
+ * });
246
+ * // You can import and return `Login` directly here or re-define it completely via `define`.
247
+ * return define({
248
+ * name: `nexus-login`,
249
+ * });
250
+ * },
251
+ * layout: loginLayout,
252
+ * settings: { public: true },
253
+ * childRouters: true,
254
+ * ```
255
+ *
256
+ * @public
257
+ * @privateRemarks
258
+ * We can tailor the spreading logic after we put it to use. Keeping it simple for now.
259
+ */
260
+ export declare function configure(container: Container, config: Partial<LoginConfig>): void;
261
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/main/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAoB,MAAM,4BAA4B,CAAC;AASzE;;GAEG;AACH,eAAO,MAAM,mBAAmB,QAAuB,CAAC;AAIxD;;GAEG;AACH,eAAO,MAAM,WAAW,QAAe,CAAC;AAIxC;;GAEG;AACH,eAAO,MAAM,eAAe,QAAmB,CAAC;AAIhD;;GAEG;AACH,eAAO,MAAM,cAAc,QAAW,CAAC;AAIvC;;GAEG;AACH,eAAO,MAAM,gBAAgB,QAAa,CAAC;AAE3C;;GAEG;AACH,eAAO,MAAM,OAAO,QAAgB,CAAC;AAIrC;;GAEG;AACH,eAAO,MAAM,OAAO,QAAwD,CAAC;AAE7E;;GAEG;AACH,eAAO,MAAM,MAAM;;;;;;;;CAQT,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,MAAM,GAAG,CAAC,OAAO,MAAM,CAAC,CAAC,MAAM,OAAO,MAAM,CAAC,CAAC;AAE1D;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CAAC,QAAQ,GAAE,MAA0B,GAAG,OAAO,CAKvE;AAED;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,KAAK,CAAC,EAAE,GAAG,CAAC;CACb,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,YAAY,EAAE,WAAW,GAAG,IAAI,CAAC;IACjC,QAAQ,EAAE,WAAW,CAAC;IACtB,KAAK,EAAE,WAAW,CAAC;IACnB,QAAQ,EAAE,WAAW,CAAC;CACvB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG;IACtB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;;;OAOG;IACH,qBAAqB,EAAE,MAAM,CAAC;CAC/B,CAAC;AAEF;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,WAAW,EAAE,OAAO,CAAC;IACrB;;;;;OAKG;IACH,QAAQ,EAAE,OAAO,CAAC;IAClB;;;;;;;;;;;;OAYG;IACH,IAAI,EAAE,aAAa,GAAG,IAAI,CAAC;IAC3B;;;;;;;;;;;;;;OAcG;IACH,UAAU,EAAE,aAAa,CAAC;IAC1B;;;;;;;;;;OAUG;IACH,UAAU,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,GAAG,WAAW,CAAC,EAAE,CAAC;IACrD;;;;;OAKG;IACH,MAAM,EAAE,cAAc,CAAC;IACvB;;OAEG;IACH,uBAAuB,EAAE,OAAO,CAAC;IACjC;;;;;OAKG;IACH,kBAAkB,EAAE,MAAM,CAAC;IAC3B;;;;;;;OAOG;IACH,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B;;;;;OAKG;IACH,GAAG,EAAE,SAAS,GAAG,IAAI,CAAC;IACtB;;;;;;;;;;OAUG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAE,WAgChC,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,mEAAoC,CAAC;AAE7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,wBAAgB,SAAS,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,QAO3E"}
@@ -0,0 +1,29 @@
1
+ import { Login } from './main';
2
+ /**
3
+ * Re-define the login micro frontend.
4
+ *
5
+ * @example
6
+ * ```ts
7
+ * import { define, styles, template, defaultTemplateOptions } from '@genesislcap/foundation-login';
8
+ * const customTemplateOptions = {
9
+ * ...defaultTemplateOptions,
10
+ * ...customOptions,
11
+ * }
12
+ * export const AppLogin = define({
13
+ * name: `nexus-login`,
14
+ * template: template(customTemplateOptions),
15
+ * styles: css`
16
+ * ${styles(customTemplateOptions)}
17
+ * some-element {
18
+ * background-color: #ff00b4;
19
+ * }
20
+ * `,
21
+ * });
22
+ * ```
23
+ *
24
+ * @beta
25
+ * @privateRemarks
26
+ * TODO: Use LoginHosted instead of Login when elements manifest stuff lands, which will drive tagFor etc.
27
+ */
28
+ export declare const define: import("@genesislcap/foundation-ui").DefineFunction<typeof Login>;
29
+ //# sourceMappingURL=define.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"define.d.ts","sourceRoot":"","sources":["../../../src/main/define.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAG/B;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,MAAM,mEAAmC,CAAC"}
@@ -0,0 +1,7 @@
1
+ export * from './config';
2
+ export * from './define';
3
+ export * from './main.definition';
4
+ export * from './main.template';
5
+ export * from './main.styles';
6
+ export * from './main';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/main/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,QAAQ,CAAC"}
@@ -0,0 +1,179 @@
1
+ import { Session } from '@genesislcap/foundation-comms';
2
+ import { FASTElement } from '@microsoft/fast-element';
3
+ import { Container } from '@microsoft/fast-foundation';
4
+ import { MainRouterConfig } from '../routes';
5
+ /**
6
+ * Defines the login class which handles account authentication from the front-end
7
+ *
8
+ * @remarks
9
+ *
10
+ * Add the Login class as a router element, and it will handle the account authentication for you.
11
+ * Requires use of `@genesislcap/foundation-comms` for the {@link @genesislcap/foundation-comms#Auth | Auth} and
12
+ * {@link @genesislcap/foundation#Session | Session} classes.
13
+ *
14
+ * There are a lot of configuration options available, and different authentication types (such as login via SSO). Use
15
+ * the modules exported `configure` and `define` functions for more power.
16
+ *
17
+ * @example
18
+ * The following is an example of using it in your app, setting it up in the router configuration. This isn't a complete
19
+ * routes confutation, but it contains all required configuration in regard to adding Login functionality.
20
+ * ```ts
21
+ * // Import required dependencies from the foundation-login package
22
+ * import { Login } from '@genesislcap/foundation-login';
23
+ * // Import required dependencies from the foundation-comms package
24
+ * // You could also import analytics events and set them up in the NavigationContributor
25
+ * import { Auth, Session } from '@genesislcap/foundation-comms';
26
+ *
27
+ * type RouterSettings = {
28
+ * public?: boolean;
29
+ * autoAuth?: boolean;
30
+ * }
31
+ *
32
+ * // Define your router config
33
+ * export class MainRouterConfig extends RouterConfiguration<RouterSettings> {
34
+ * // Ensure you inject in required dependencies
35
+ * constructor(
36
+ * @Auth private auth: Auth,
37
+ * @Session private session: Session
38
+ * ) {
39
+ * super();
40
+ * }
41
+ *
42
+ * // Add Login as a route
43
+ * public configure() {
44
+ * ...
45
+ * this.routes.map(
46
+ * { path: '', redirect: 'login' },
47
+ * {
48
+ * path: 'login',
49
+ * element: Login,
50
+ * title: 'Login',
51
+ * name: 'login',
52
+ * layout: loginLayout,
53
+ * settings: { public: true },
54
+ * childRouters: true,
55
+ * },
56
+ * ... // Other routes config here
57
+ * );
58
+ *
59
+ * const session = this.session;
60
+ * const auth = this.auth;
61
+ *
62
+ * // Example of a FallbackRouteDefinition
63
+ * this.routes.fallback(() =>
64
+ * auth.isLoggedIn ? { redirect: 'not-found' } : { redirect: 'login' }
65
+ * );
66
+ *
67
+ * // Example of a NavigationContributor
68
+ * this.contributors.push({
69
+ * navigate: async (phase) => {
70
+ * const settings = phase.route.settings;
71
+ *
72
+ * // Could add in processes such as analytics here
73
+ *
74
+ * // If public route don't block
75
+ * if (settings && settings.public) {
76
+ * return;
77
+ * }
78
+ *
79
+ * // If logged in don't block
80
+ * if (auth.isLoggedIn) {
81
+ * return;
82
+ * }
83
+ *
84
+ * // If autoAuth and session is valid try to connect+auto-login
85
+ * if (settings && settings.autoAuth && (await auth.reAuthFromSession())) {
86
+ * return;
87
+ * }
88
+ *
89
+ * // Otherwise route them to login
90
+ * phase.cancel(() => {
91
+ * session.captureReturnUrl();
92
+ * Route.name.replace(phase.router, 'login');
93
+ * });
94
+ * },
95
+ * });
96
+ * }
97
+ *
98
+ * ... // Other configuration/methods
99
+ *
100
+ * }
101
+ * ```
102
+ *
103
+ * @public
104
+ */
105
+ export declare class Login extends FASTElement {
106
+ /**
107
+ * Configuration for the routes and their associated settings.
108
+ * The client would override this in their app with their own settings to set
109
+ * their routes up as desired
110
+ * @internal
111
+ */
112
+ config: MainRouterConfig;
113
+ /**
114
+ * The DI container used to register required components in {@link Login.registerDIDependencies}
115
+ * @internal
116
+ */
117
+ container: Container;
118
+ /**
119
+ * Session controller used to manage the user's session
120
+ * @internal
121
+ */
122
+ session: Session;
123
+ /**
124
+ * Marked true when remote components are loaded, currently unused.
125
+ * @internal
126
+ */
127
+ ready: boolean;
128
+ /**
129
+ * DS provider / root level template.
130
+ * @internal
131
+ */
132
+ provider: FASTElement;
133
+ /**
134
+ * @internal
135
+ */
136
+ connectedCallback(): Promise<void>;
137
+ /**
138
+ * Used to forward the user onto a logged-in session during an SSO journey
139
+ *
140
+ * @remarks
141
+ *
142
+ * Called when loading the login page via the connectedCallback() method.
143
+ * During normal flows there will be no SSO tokens set and hence this function
144
+ * will quit execution.
145
+ * During an SSO journey the SSO provider will set the SSO token as a URLSearchParams
146
+ * parameter and redirect back to us. In this case we will take this and forward the
147
+ * user on, with their logged in session.
148
+ *
149
+ * There are two paths the user can take here - if they are in a popup
150
+ * (window.opener exists) then we need to set the session and get the parent window
151
+ * (the one which the user wants their session on) to refresh, and close the popup.
152
+ *
153
+ * Or if they are not in a popup then we simply set the ssoToken in the session.
154
+ * When this component is loaded with the ssoToken then it will redirect the
155
+ * user to their app (the `defaultRedirectUrl`).
156
+ *
157
+ * @internal
158
+ */
159
+ checkForSSOToken(): void;
160
+ /**
161
+ * Called from the connectedCallback
162
+ * @internal
163
+ */
164
+ registerCommonComponents(): Promise<void>;
165
+ /**
166
+ * @internal
167
+ */
168
+ protected registerDIDependencies(): void;
169
+ }
170
+ /**
171
+ * @beta
172
+ * @privateRemarks
173
+ * A hosted version of the MF that doesn't set up a design system or components. This is what apps would use to truly
174
+ * customise the MF for their needs via define.ts.
175
+ */
176
+ export declare class LoginHosted extends Login {
177
+ registerCommonComponents(): Promise<void>;
178
+ }
179
+ //# sourceMappingURL=main.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../../src/main/main.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuC,OAAO,EAAE,MAAM,+BAA+B,CAAC;AAC7F,OAAO,EAAiB,WAAW,EAAc,MAAM,yBAAyB,CAAC;AACjF,OAAO,EAAE,SAAS,EAAwB,MAAM,4BAA4B,CAAC;AAG7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAG7C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmGG;AACH,qBACa,KAAM,SAAQ,WAAW;IACpC;;;;;OAKG;IACuB,MAAM,EAAG,gBAAgB,CAAC;IAEpD;;;OAGG;IACQ,SAAS,EAAG,SAAS,CAAC;IAEjC;;;OAGG;IACM,OAAO,EAAG,OAAO,CAAC;IAE3B;;;OAGG;IACS,KAAK,EAAE,OAAO,CAAS;IAEnC;;;OAGG;IACS,QAAQ,EAAG,WAAW,CAAC;IAEnC;;OAEG;IACG,iBAAiB;IAOvB;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,gBAAgB;IAchB;;;OAGG;IACG,wBAAwB;IAa9B;;OAEG;IACH,SAAS,CAAC,sBAAsB;CAgBjC;AAED;;;;;GAKG;AACH,qBAIa,WAAY,SAAQ,KAAK;IAC9B,wBAAwB;CAG/B"}
@@ -0,0 +1,48 @@
1
+ import { TemplateElementDependency } from '@genesislcap/foundation-ui';
2
+ import { PartialFASTElementDefinition, SyntheticViewTemplate } from '@microsoft/fast-element';
3
+ /**
4
+ * @beta
5
+ * @privateRemarks
6
+ * The CLI can be used to monitor what is in use and needs a mapping.
7
+ */
8
+ export type TemplateComponents = {
9
+ anchor: TemplateElementDependency;
10
+ button: TemplateElementDependency;
11
+ card: TemplateElementDependency;
12
+ checkbox: TemplateElementDependency;
13
+ listboxOption: TemplateElementDependency;
14
+ provider: TemplateElementDependency;
15
+ router: TemplateElementDependency;
16
+ select: TemplateElementDependency;
17
+ textField: TemplateElementDependency;
18
+ };
19
+ /**
20
+ * @beta
21
+ */
22
+ export type TemplateOptions = TemplateComponents & {
23
+ somePartial?: string | SyntheticViewTemplate;
24
+ };
25
+ /**
26
+ * The default template options this MF has been created with.
27
+ * @beta
28
+ * @privateRemarks
29
+ * This will likely evolve into the shell style PWA + FDC3 manifest setup, but that needs more work to evolve into MVP.
30
+ * Hosts should be able to figure out everything they will need to do to fully customise a MF. Currently, they
31
+ * import these `defaultTemplateOptions` and the host dev overrides. Each TemplateComponents key must be a mandatory
32
+ * override, given in hosted mode the MFs won't be registering fallbacks as this would be wasteful, bloat etc.
33
+ * I've added the components list to the package.json > config block for now, but I'm not using it here.
34
+ */
35
+ export declare const defaultTemplateOptions: TemplateOptions;
36
+ /**
37
+ * @beta
38
+ * @remarks
39
+ * This is the main definition of this micro frontend which is exposed for user reconfiguration.
40
+ */
41
+ export declare const definition: PartialFASTElementDefinition;
42
+ /**
43
+ * @internal
44
+ * @privateRemarks
45
+ * This is used during development of this micro frontend.
46
+ */
47
+ export declare const standaloneDefinition: PartialFASTElementDefinition;
48
+ //# sourceMappingURL=main.definition.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.definition.d.ts","sourceRoot":"","sources":["../../../src/main/main.definition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,EAAE,4BAA4B,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAI9F;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,MAAM,EAAE,yBAAyB,CAAC;IAClC,MAAM,EAAE,yBAAyB,CAAC;IAClC,IAAI,EAAE,yBAAyB,CAAC;IAChC,QAAQ,EAAE,yBAAyB,CAAC;IACpC,aAAa,EAAE,yBAAyB,CAAC;IACzC,QAAQ,EAAE,yBAAyB,CAAC;IACpC,MAAM,EAAE,yBAAyB,CAAC;IAClC,MAAM,EAAE,yBAAyB,CAAC;IAClC,SAAS,EAAE,yBAAyB,CAAC;CACtC,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,kBAAkB,GAAG;IACjD,WAAW,CAAC,EAAE,MAAM,GAAG,qBAAqB,CAAC;CAC9C,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,sBAAsB,EAAE,eAUpC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,UAAU,EAAE,4BAIxB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,EAAE,4BAUlC,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { TemplateOptions } from './main.definition';
2
+ /**
3
+ * @public
4
+ * @privateRemarks
5
+ * Options cam be used to target unknown component tags in the css, such as:
6
+ * const buttonTag = tagFor(options.button);
7
+ * ...
8
+ * ${buttonTag} {
9
+ * width: 200px;
10
+ * }
11
+ */
12
+ export declare const styles: (options: TemplateOptions) => import("@microsoft/fast-element").ElementStyles;
13
+ //# sourceMappingURL=main.styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.styles.d.ts","sourceRoot":"","sources":["../../../src/main/main.styles.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGzD;;;;;;;;;GASG;AACH,eAAO,MAAM,MAAM,YAAa,eAAe,oDAwB9C,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { TemplateOptions } from './main.definition';
2
+ import type { Login } from './main';
3
+ /**
4
+ * @public
5
+ */
6
+ export declare const template: (options: TemplateOptions) => import("@microsoft/fast-element").ViewTemplate<Login, any>;
7
+ //# sourceMappingURL=main.template.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.template.d.ts","sourceRoot":"","sources":["../../../src/main/main.template.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAEpC;;GAEG;AACH,eAAO,MAAM,QAAQ,YAAa,eAAe,+DAQhD,CAAC"}