@genesislcap/foundation-login 10.3.1 → 11.3.1

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 (213) hide show
  1. package/README.md +28 -72
  2. package/dist/dts/main/config.d.ts +13 -0
  3. package/dist/dts/main/config.d.ts.map +1 -1
  4. package/dist/dts/main/main.definition.d.ts +1 -1
  5. package/dist/dts/main/main.styles.d.ts +4 -1
  6. package/dist/dts/main/main.styles.d.ts.map +1 -1
  7. package/dist/dts/main/main.template.d.ts +1 -1
  8. package/dist/dts/main/main.template.d.ts.map +1 -1
  9. package/dist/dts/routes/base.d.ts +5 -4
  10. package/dist/dts/routes/base.d.ts.map +1 -1
  11. package/dist/dts/routes/config.d.ts +1 -1
  12. package/dist/dts/routes/config.d.ts.map +1 -1
  13. package/dist/dts/routes/forgot-password/forgot-password.d.ts.map +1 -1
  14. package/dist/dts/routes/login-form/login-form.d.ts +7 -3
  15. package/dist/dts/routes/login-form/login-form.d.ts.map +1 -1
  16. package/dist/dts/routes/login-form/login-form.template.d.ts.map +1 -1
  17. package/dist/dts/routes/not-found/not-found.d.ts.map +1 -1
  18. package/dist/dts/routes/protected/protected.d.ts.map +1 -1
  19. package/dist/dts/routes/request-account/request-account.d.ts.map +1 -1
  20. package/dist/dts/routes/reset-password/reset-password.d.ts.map +1 -1
  21. package/dist/dts/routes/verify/verify.d.ts.map +1 -1
  22. package/dist/dts/styles/index.d.ts +0 -1
  23. package/dist/dts/styles/index.d.ts.map +1 -1
  24. package/dist/dts/styles/styles.d.ts.map +1 -1
  25. package/dist/dts/utils/logger.d.ts.map +1 -1
  26. package/dist/esm/components/components.js +0 -1
  27. package/dist/esm/components/index.js +0 -1
  28. package/dist/esm/index.js +0 -1
  29. package/dist/esm/layouts/default.js +0 -1
  30. package/dist/esm/layouts/index.js +0 -1
  31. package/dist/esm/main/config.js +4 -2
  32. package/dist/esm/main/define.js +0 -1
  33. package/dist/esm/main/index.js +0 -1
  34. package/dist/esm/main/main.definition.js +2 -3
  35. package/dist/esm/main/main.js +0 -1
  36. package/dist/esm/main/main.styles.js +5 -3
  37. package/dist/esm/main/main.template.js +0 -1
  38. package/dist/esm/routes/base.js +10 -8
  39. package/dist/esm/routes/config.js +5 -6
  40. package/dist/esm/routes/forgot-password/forgot-password.js +4 -5
  41. package/dist/esm/routes/forgot-password/forgot-password.template.js +0 -1
  42. package/dist/esm/routes/index.js +0 -1
  43. package/dist/esm/routes/login-form/login-form.js +38 -24
  44. package/dist/esm/routes/login-form/login-form.styles.js +0 -1
  45. package/dist/esm/routes/login-form/login-form.template.js +6 -7
  46. package/dist/esm/routes/not-found/not-found.js +1 -2
  47. package/dist/esm/routes/protected/protected.js +2 -3
  48. package/dist/esm/routes/protected/protected.template.js +0 -1
  49. package/dist/esm/routes/request-account/request-account.js +2 -3
  50. package/dist/esm/routes/request-account/request-account.template.js +1 -2
  51. package/dist/esm/routes/reset-password/reset-password.js +2 -3
  52. package/dist/esm/routes/reset-password/reset-password.template.js +0 -1
  53. package/dist/esm/routes/types.js +0 -1
  54. package/dist/esm/routes/verify/verify.js +2 -3
  55. package/dist/esm/routes/verify/verify.template.js +0 -1
  56. package/dist/esm/styles/index.js +0 -2
  57. package/dist/esm/styles/styles.js +2 -11
  58. package/dist/esm/utils/index.js +0 -1
  59. package/dist/esm/utils/logger.js +0 -1
  60. package/dist/foundation-login.api.json +30 -3
  61. package/dist/foundation-login.d.ts +23 -6
  62. package/package.json +27 -11
  63. package/playwright.config.ts +50 -0
  64. package/test/README.md +3 -0
  65. package/dist/1.0.0.remoteEntry.js +0 -1
  66. package/dist/15.15.7a2c23dfae8db4e093ae.js +0 -1347
  67. package/dist/15.707b18d09d78e18958de7e35549b69f2.js.map +0 -1
  68. package/dist/170.02ecd6ffb7bb9c9531e72b7099ba0dce.js.map +0 -1
  69. package/dist/170.170.6ccfc6db6319d932ea16.js +0 -726
  70. package/dist/176.176.bfbfc60ffad852c406c4.js +0 -2
  71. package/dist/176.7ce7d4e386b9ebd99f2a121d6364c1ad.js.map +0 -1
  72. package/dist/185.185.6c3ef3df3fe6f4879dab.js +0 -2
  73. package/dist/185.d623d7c2df70c9d665343444e7c1fa6c.js.map +0 -1
  74. package/dist/338.338.e399ff6c11eb8175de4c.js +0 -2
  75. package/dist/338.4f68feefeaca1bf1dbc7ba12af2e84aa.js.map +0 -1
  76. package/dist/397.397.1de89f70cc9876b09be8.js +0 -3
  77. package/dist/397.397.1de89f70cc9876b09be8.js.LICENSE.txt +0 -1
  78. package/dist/397.984e24423ff2adb107881e130126575a.js.map +0 -1
  79. package/dist/419.419.25c54d30d5ef03de4733.js +0 -2140
  80. package/dist/419.500ae8ac8e1ffc781af411dd2ad588cd.js.map +0 -1
  81. package/dist/453.3c9a25d2af3ccf8232fdd1dfc5244b3d.js.map +0 -1
  82. package/dist/453.453.14247e88aa4df78dca2c.js +0 -2
  83. package/dist/726.4c7419d8edb8ba5e67699f4820c8c461.js.map +0 -1
  84. package/dist/726.726.e09fed9a1e3b529acd46.js +0 -3
  85. package/dist/726.726.e09fed9a1e3b529acd46.js.LICENSE.txt +0 -4
  86. package/dist/741.741.d84fc7e9236cae1acc99.js +0 -3
  87. package/dist/741.741.d84fc7e9236cae1acc99.js.LICENSE.txt +0 -4
  88. package/dist/741.a3dfed45252169e53ee396a8b76cea67.js.map +0 -1
  89. package/dist/b634d7e1f2324faf1230.svg +0 -10
  90. package/dist/c0bd2c45d93ce443d624.jpg +0 -0
  91. package/dist/dashboard.json +0 -1
  92. package/dist/dts/index.federated.d.ts +0 -1
  93. package/dist/dts/index.federated.d.ts.map +0 -1
  94. package/dist/dts/styles/typography.d.ts +0 -4
  95. package/dist/dts/styles/typography.d.ts.map +0 -1
  96. package/dist/esm/components/components.js.map +0 -1
  97. package/dist/esm/components/index.js.map +0 -1
  98. package/dist/esm/index.federated.js +0 -2
  99. package/dist/esm/index.federated.js.map +0 -1
  100. package/dist/esm/index.js.map +0 -1
  101. package/dist/esm/layouts/default.js.map +0 -1
  102. package/dist/esm/layouts/index.js.map +0 -1
  103. package/dist/esm/main/config.js.map +0 -1
  104. package/dist/esm/main/define.js.map +0 -1
  105. package/dist/esm/main/index.js.map +0 -1
  106. package/dist/esm/main/main.definition.js.map +0 -1
  107. package/dist/esm/main/main.js.map +0 -1
  108. package/dist/esm/main/main.styles.js.map +0 -1
  109. package/dist/esm/main/main.template.js.map +0 -1
  110. package/dist/esm/routes/base.js.map +0 -1
  111. package/dist/esm/routes/config.js.map +0 -1
  112. package/dist/esm/routes/forgot-password/forgot-password.js.map +0 -1
  113. package/dist/esm/routes/forgot-password/forgot-password.template.js.map +0 -1
  114. package/dist/esm/routes/index.js.map +0 -1
  115. package/dist/esm/routes/login-form/login-form.js.map +0 -1
  116. package/dist/esm/routes/login-form/login-form.styles.js.map +0 -1
  117. package/dist/esm/routes/login-form/login-form.template.js.map +0 -1
  118. package/dist/esm/routes/not-found/not-found.js.map +0 -1
  119. package/dist/esm/routes/protected/protected.js.map +0 -1
  120. package/dist/esm/routes/protected/protected.template.js.map +0 -1
  121. package/dist/esm/routes/request-account/request-account.js.map +0 -1
  122. package/dist/esm/routes/request-account/request-account.template.js.map +0 -1
  123. package/dist/esm/routes/reset-password/reset-password.js.map +0 -1
  124. package/dist/esm/routes/reset-password/reset-password.template.js.map +0 -1
  125. package/dist/esm/routes/types.js.map +0 -1
  126. package/dist/esm/routes/verify/verify.js.map +0 -1
  127. package/dist/esm/routes/verify/verify.template.js.map +0 -1
  128. package/dist/esm/styles/index.js.map +0 -1
  129. package/dist/esm/styles/styles.js.map +0 -1
  130. package/dist/esm/styles/typography.js +0 -27
  131. package/dist/esm/styles/typography.js.map +0 -1
  132. package/dist/esm/utils/index.js.map +0 -1
  133. package/dist/esm/utils/logger.js.map +0 -1
  134. package/dist/favicon.ico +0 -0
  135. package/dist/foundationLogin.dd27ce925c9e142951f9e650fb3f9b7e.js.map +0 -1
  136. package/dist/index.ejs +0 -23
  137. package/dist/index.html +0 -10
  138. package/dist/info.ejs +0 -13
  139. package/dist/info.html +0 -22
  140. package/dist/main.49b5ccad79942a173c5044389ff4b88b.js.map +0 -1
  141. package/dist/main.cf8907a8eac5d741ac98.js +0 -2
  142. package/dist/npm.analytics.343.1691cbc7d8a5badd3734.js +0 -2
  143. package/dist/npm.analytics.ce2eefcbb0dbd8ec610f4a90f48aa689.js.map +0 -1
  144. package/dist/npm.consola.713.661cb6ae3806c228029d.js +0 -2
  145. package/dist/npm.consola.96aceeeb14c801e429604b872dd754d7.js.map +0 -1
  146. package/dist/npm.dialog-polyfill.47.34b0c0d52e6712cf91bb.js +0 -2
  147. package/dist/npm.dialog-polyfill.9d605973cbc29184d8b9b4736433dddc.js.map +0 -1
  148. package/dist/npm.finos.690.d012d887fab1a50fd3fd.js +0 -2
  149. package/dist/npm.finos.bb7f5996c8be19fd2a1c0bb82b2512ef.js.map +0 -1
  150. package/dist/npm.fortawesome.104.f45009da0a55a389999c.js +0 -2
  151. package/dist/npm.fortawesome.e10775e8f8583851351996b12aec3dfb.js.map +0 -1
  152. package/dist/npm.microsoft.127.7781d48b93413319f199.js +0 -6406
  153. package/dist/npm.microsoft.127.7781d48b93413319f199.js.LICENSE.txt +0 -14
  154. package/dist/npm.microsoft.b0947aa2f980f173ee68c35127bf2481.js.map +0 -1
  155. package/dist/npm.popperjs.47700ec72e909558c6ebe29941887dcf.js.map +0 -1
  156. package/dist/npm.popperjs.591.6ab52bc8e177edef695a.js +0 -2
  157. package/dist/npm.rxjs.271.210fdd198235c86ce4cd.js +0 -2
  158. package/dist/npm.rxjs.36e7291df63583daef7bbafd0a3ab9dc.js.map +0 -1
  159. package/dist/remoteEntry.js +0 -2
  160. package/dist/serve.json +0 -3
  161. package/dist/tsdoc-metadata.json +0 -11
  162. package/docs/.gitattributes +0 -2
  163. package/docs/api/foundation-login.configure.md +0 -62
  164. package/docs/api/foundation-login.defaultapihost.md +0 -12
  165. package/docs/api/foundation-login.defaultloginconfig.md +0 -13
  166. package/docs/api/foundation-login.defaultorganisation.md +0 -12
  167. package/docs/api/foundation-login.defaultpassword.md +0 -12
  168. package/docs/api/foundation-login.defaultsocketext.md +0 -12
  169. package/docs/api/foundation-login.defaulttemplateoptions.md +0 -16
  170. package/docs/api/foundation-login.defaultuser.md +0 -12
  171. package/docs/api/foundation-login.define.md +0 -38
  172. package/docs/api/foundation-login.definition.md +0 -19
  173. package/docs/api/foundation-login.fieldconfig.md +0 -16
  174. package/docs/api/foundation-login.fieldconfigmap.md +0 -19
  175. package/docs/api/foundation-login.hostenv.md +0 -12
  176. package/docs/api/foundation-login.hosturl.md +0 -12
  177. package/docs/api/foundation-login.idp.id.md +0 -11
  178. package/docs/api/foundation-login.idp.md +0 -20
  179. package/docs/api/foundation-login.idp.type.md +0 -11
  180. package/docs/api/foundation-login.idpresponse.id.md +0 -11
  181. package/docs/api/foundation-login.idpresponse.md +0 -20
  182. package/docs/api/foundation-login.idpresponse.type.md +0 -11
  183. package/docs/api/foundation-login.ismfroute.md +0 -24
  184. package/docs/api/foundation-login.login.md +0 -108
  185. package/docs/api/foundation-login.loginconfig.autoauth.md +0 -18
  186. package/docs/api/foundation-login.loginconfig.autoconnect.md +0 -13
  187. package/docs/api/foundation-login.loginconfig.background.md +0 -30
  188. package/docs/api/foundation-login.loginconfig.defaultredirecturl.md +0 -18
  189. package/docs/api/foundation-login.loginconfig.fields.md +0 -18
  190. package/docs/api/foundation-login.loginconfig.logo.md +0 -28
  191. package/docs/api/foundation-login.loginconfig.md +0 -30
  192. package/docs/api/foundation-login.loginconfig.omitredirecturls.md +0 -21
  193. package/docs/api/foundation-login.loginconfig.omitroutes.md +0 -25
  194. package/docs/api/foundation-login.loginconfig.showconnectionindicator.md +0 -13
  195. package/docs/api/foundation-login.loginconfig.sso.md +0 -18
  196. package/docs/api/foundation-login.loginconfig.versioninformation.md +0 -25
  197. package/docs/api/foundation-login.loginhosted.md +0 -23
  198. package/docs/api/foundation-login.loginhosted.registercommoncomponents.md +0 -18
  199. package/docs/api/foundation-login.md +0 -59
  200. package/docs/api/foundation-login.routes.md +0 -20
  201. package/docs/api/foundation-login.settings.md +0 -20
  202. package/docs/api/foundation-login.ssoconfig.md +0 -15
  203. package/docs/api/foundation-login.styles.md +0 -12
  204. package/docs/api/foundation-login.template.md +0 -12
  205. package/docs/api/foundation-login.templatecomponents.md +0 -25
  206. package/docs/api/foundation-login.templateoptions.md +0 -19
  207. package/docs/api/index.md +0 -12
  208. package/docs/api-report.md +0 -380
  209. package/docs/img/foundation-login_change-password.png +0 -0
  210. package/docs/img/foundation-login_forgotten-password.png +0 -0
  211. package/docs/img/foundation-login_login-sso.png +0 -0
  212. package/docs/img/foundation-login_login-standard.png +0 -0
  213. package/docs/img/foundation-login_request-account.png +0 -0
@@ -1,726 +0,0 @@
1
- (self.webpackChunk_genesislcap_foundation_login=self.webpackChunk_genesislcap_foundation_login||[]).push([[170],{3170:(e,t,o)=>{"use strict";o.r(t),o.d(t,{BackgroundElement:()=>j,BaseRoute:()=>O,ConfigHostElement:()=>R,Login:()=>Ce,LoginConfig:()=>b,LoginHosted:()=>Se,LogoElement:()=>U,MainRouterConfig:()=>we,MessageElement:()=>H,Routes:()=>m,SubmittingIndicator:()=>W,backButton:()=>q,configurableTextField:()=>T,configure:()=>v,defaultApiHost:()=>d,defaultLoginConfig:()=>f,defaultOnBackMS:()=>P,defaultOrganisation:()=>r,defaultPassword:()=>l,defaultSocketExt:()=>u,defaultTemplateOptions:()=>$e,defaultUser:()=>c,define:()=>ze,definition:()=>xe,emailField:()=>D,hostEnv:()=>g,hostUrl:()=>h,isMFRoute:()=>p,organisationField:()=>L,password2Field:()=>I,passwordField:()=>M,showPasswordsCheckbox:()=>N,standaloneDefinition:()=>ke,styles:()=>_e,submitButton:()=>B,template:()=>ye,usernameField:()=>A});var s=o(1273),i=o(9398),n=o(7924),a=o(7702);const r=void 0,c=void 0,l=void 0,d=void 0,u=void 0,g=location.host,h=`${"https:"===location.protocol?"wss:":"ws:"}//${g}/gwf/`,m={login:"login","request-account":"request-account","reset-password":"reset-password","forgot-password":"forgot-password",verify:"verify",protected:"protected","not-found":"not-found"};function p(e=location.pathname){const t=e.split("/")["/"===e.charAt(0)?1:0];return!!m[t]}const f={autoConnect:!1,autoAuth:!1,logo:s.css`
2
- content: url(${n});
3
- `,background:s.css`
4
- :host {
5
- background-image: url(${a});
6
- }
7
- `,omitRoutes:[],fields:{organisation:null,username:{label:"Username",value:c},email:{label:"Email Address"},password:{label:"Password",value:l}},showConnectionIndicator:!1,defaultRedirectUrl:"/protected",omitRedirectUrls:["/not-found","/not-permitted"],sso:{identityProvidersPath:"sso/list"}},b=i.DI.createInterface();function v(e,t){e.register(i.Registration.instance(b,Object.assign(Object.assign({},f),t)))}var w=o(7261),y=o(5373),_=o(2140),$=o(1242),x=o(7981);const k=(0,x.createLogger)("foundation-login");var C;function S(){return(0,y.__awaiter)(this,void 0,void 0,(function*(){let e=C.REMOTE;try{return yield o.e(993).then(o.t.bind(o,2993,23))}catch(t){return e=C.LOCAL,yield Promise.resolve().then(o.t.bind(o,3671,23))}finally{k.debug(`Using '${e}' version of foundationZero/ZeroDesignSystem`)}}))}!function(e){e.LOCAL="LOCAL",e.REMOTE="REMOTE"}(C||(C={})),w.FoundationRouter;var z=o(3671),E=o(9691);const P=3e3;class R extends s.FASTElement{connectedCallback(){this.config=this.container.has(b,!0)?this.container.get(b):f,super.connectedCallback()}}(0,y.__decorate)([i.Container],R.prototype,"container",void 0),(0,y.__decorate)([s.observable],R.prototype,"config",void 0);class O extends R{constructor(){super(...arguments),this.host="",this.organisation="",this.username="",this.email="",this.password="",this.password2="",this.showPasswords=!1,this.message="",this.hasErrors=!1,this.isSubmitting=!1,this.onBack=()=>this.onNavigate("login"),this.onNavigate=(e,t)=>$.Route.name.push($.Router.find(this),e,t)}connectedCallback(){var e;super.connectedCallback(),this.host=null!==(e=this.session.getSessionStorageItem("hostUrl"))&&void 0!==e?e:h}onSubmit(){return(0,y.__awaiter)(this,void 0,void 0,(function*(){this.isSubmitting=!0,this.clearError(),yield this.ensureConnection()}))}ensureConnection(){return(0,y.__awaiter)(this,void 0,void 0,(function*(){return!!this.connect.isConnected||this.connect.connect(this.host)}))}setError(e){this.message=e,this.hasErrors=!0}clearError(){this.message="",this.hasErrors=!1}get orgUsername(){return this.config.fields.organisation?`${this.username.trim()}:${this.organisation.trim()}`:this.username.trim()}queueOnBack(e=P){setTimeout((()=>{this.onBack()}),e)}autofill(){var e,t,o;return(0,y.__awaiter)(this,void 0,void 0,(function*(){let s;try{if(s=yield this.credentialManager.getCredentials(),s&&(this.username=null!==(e=s.name)&&void 0!==e?e:"",this.password=null!==(t=s.password)&&void 0!==t?t:"",this.config.fields.organisation)){const e=(null!==(o=s.id)&&void 0!==o?o:"").split(":"),t=e[2===e.length?1:0];t!==this.username&&(this.organisation=t)}}catch(e){k.error("An error occurred attempting to get and autofill from stored credentials.",e)}return Promise.resolve(!!s)}))}storeCredentials(e=this.password){this.credentialManager.storeCredentials({id:this.orgUsername,name:this.username,password:e})}sendMessage(e,t="",o){return(0,y.__awaiter)(this,void 0,void 0,(function*(){yield this.ensureConnection(),this.clearError();const s=yield this.connect.send(e);s.ERROR?this.setError(s.ERROR.map((e=>e.TEXT)).toString()):(this.message=t,o&&o(s),this.queueOnBack())}))}}(0,y.__decorate)([_.Auth],O.prototype,"auth",void 0),(0,y.__decorate)([_.Connect],O.prototype,"connect",void 0),(0,y.__decorate)([_.Session],O.prototype,"session",void 0),(0,y.__decorate)([_.MessageBuilder],O.prototype,"messageBuilder",void 0),(0,y.__decorate)([_.CredentialManager],O.prototype,"credentialManager",void 0),(0,y.__decorate)([s.observable],O.prototype,"host",void 0),(0,y.__decorate)([s.observable],O.prototype,"organisation",void 0),(0,y.__decorate)([s.observable],O.prototype,"username",void 0),(0,y.__decorate)([s.observable],O.prototype,"email",void 0),(0,y.__decorate)([s.observable],O.prototype,"password",void 0),(0,y.__decorate)([s.observable],O.prototype,"password2",void 0),(0,y.__decorate)([s.observable],O.prototype,"showPasswords",void 0),(0,y.__decorate)([s.observable],O.prototype,"message",void 0),(0,y.__decorate)([s.observable],O.prototype,"hasErrors",void 0),(0,y.__decorate)([s.observable],O.prototype,"isSubmitting",void 0);const T=(e,t,o=!1,i="",n="",a="",r="",c=!0)=>{const[l,d]=Array.isArray(e)?e:[e,e];return s.html`
8
- ${(0,s.when)((e=>e.config.fields[l]),s.html`
9
- <zero-text-field
10
- type="${t}"
11
- name="${l}"
12
- id="${l}"
13
- :value="${(0,x.sync)((e=>e[d]))}"
14
- ?autofocus="${()=>o}"
15
- ?required="${()=>c}"
16
- ${i?`autocomplete="${i}"`:""}
17
- data-test-id="${null!=r?r:l}"
18
- class="${n}"
19
- >
20
- <span class="form-title">
21
- ${e=>null!=a?a:e.config.fields[l].label}
22
- </span>
23
- </zero-text-field>
24
- `)}
25
- `},L=()=>s.html`
26
- ${(0,s.when)((e=>e.config.fields.organisation),s.html`
27
- <zero-text-field
28
- type="text"
29
- name="organisation"
30
- id="organisation"
31
- autocomplete="organisation"
32
- data-test-id="organisation"
33
- :value="${(0,x.sync)((e=>e.organisation))}"
34
- autofocus
35
- class="${e=>e.config.logo?"":"no-top-margin"}"
36
- required
37
- >
38
- <span class="form-title">
39
- ${e=>{var t;return null!==(t=e.config.fields.organisation.label)&&void 0!==t?t:"Organisation"}}
40
- </span>
41
- </zero-text-field>
42
- `)}
43
- `,A=()=>s.html`
44
- <zero-text-field
45
- type="text"
46
- name="username"
47
- id="username"
48
- autocomplete="username email"
49
- data-test-id="username"
50
- :value="${(0,x.sync)((e=>e.username))}"
51
- ?autofocus="${e=>!e.config.fields.organisation}"
52
- class="${e=>e.config.logo||e.config.fields.organisation?"":"no-top-margin"}"
53
- required
54
- >
55
- <span class="form-title">${e=>{var t;return null!==(t=e.config.fields.username.label)&&void 0!==t?t:"Username"}}</span>
56
- </zero-text-field>
57
- `,D=()=>s.html`
58
- ${(0,s.when)((e=>e.config.fields.email),s.html`
59
- <zero-text-field
60
- type="email"
61
- name="email"
62
- id="email"
63
- autocomplete="email"
64
- data-test-id="email"
65
- :value="${(0,x.sync)((e=>e.email))}"
66
- required
67
- >
68
- <span class="form-title">${e=>{var t;return null!==(t=e.config.fields.email.label)&&void 0!==t?t:"Email"}}</span>
69
- </zero-text-field>
70
- `)}
71
- `,M=e=>s.html`
72
- <zero-text-field
73
- type="${e=>e.showPasswords?"text":"password"}"
74
- name="password"
75
- id="password"
76
- autocomplete="current-password"
77
- data-test-id="password"
78
- :value="${(0,x.sync)((e=>e.password))}"
79
- required
80
- >
81
- <span class="form-title">${t=>{var o;return null!==(o=null!=e?e:t.config.fields.password.label)&&void 0!==o?o:"Password"}}</span>
82
- </zero-text-field>
83
- `,F={new:["new-password","New Password"],confirmation:["password-confirmation","Confirm Password"]},I=e=>{const[t,o]=F[e];return s.html`
84
- <zero-text-field
85
- type="${e=>e.showPasswords?"text":"password"}"
86
- name="${t}"
87
- id="${t}"
88
- autocomplete="${t}"
89
- data-test-id="${t}"
90
- :value="${(0,x.sync)((e=>e.password2))}"
91
- required
92
- >
93
- <span class="form-title">${o}</span>
94
- </zero-text-field>
95
- `};let j=class extends R{connectedCallback(){super.connectedCallback(),this.$fastController.addStyles(this.config.background)}};j=(0,y.__decorate)([(0,s.customElement)({name:"login-background",template:s.html`
96
- <template class="background" part="background" data-test-id="background">
97
- <slot></slot>
98
- </template>
99
- `,styles:s.css`
100
- :host {
101
- background-color: var(--foundation-login-background-color, transparent);
102
- background-position: left top;
103
- background-repeat: no-repeat;
104
- background-attachment: fixed;
105
- background-size: cover;
106
- background-origin: border-box;
107
- display: flex;
108
- flex-direction: column;
109
- align-items: center;
110
- width: 100%;
111
- height: 100%;
112
- overflow: auto;
113
- }
114
- ::slotted(div.container) {
115
- margin: auto;
116
- }
117
- `})],j);let U=class extends R{};U=(0,y.__decorate)([(0,s.customElement)({name:"login-logo",template:s.html`
118
- ${(0,s.when)((e=>e.config.logo),s.html`
119
- <img class="logo" style="${e=>e.config.logo.styles}" part="logo" data-test-id="logo" />
120
- `)}
121
- `,styles:s.css`
122
- .logo {
123
- display: initial;
124
- margin-bottom: calc(var(--design-unit) * 5px);
125
- transition: opacity 5s ease-in-out;
126
- width: auto;
127
- height: auto;
128
- }
129
- `})],U);const q=e=>s.html`
130
- <zero-button
131
- appearance="neutral-grey"
132
- type="button"
133
- class="action-btn"
134
- @click=${e}
135
- data-test-id="back"
136
- >
137
- Back
138
- </zero-button>
139
- `,B=(e,t="submit",o=!1)=>s.html`
140
- <zero-button
141
- appearance="primary-gradient"
142
- type="submit"
143
- class="action-btn"
144
- data-test-id="${t}"
145
- ?disabled="${()=>o}"
146
- >
147
- ${e}
148
- </zero-button>
149
- `,N=()=>s.html`
150
- <zero-checkbox
151
- ?checked="${(0,x.sync)((e=>e.showPasswords),"boolean")}"
152
- name="show-passwords"
153
- data-test-id="show-passwords"
154
- >
155
- Show Passwords
156
- </zero-checkbox>
157
- `;let H=class extends s.FASTElement{constructor(){super(...arguments),this.classNames="",this.message="",this.nonError=!1}nonErrorChanged(){this.classNames=(0,E.classNames)("message",["non-error",this.nonError])}};(0,y.__decorate)([s.observable],H.prototype,"classNames",void 0),(0,y.__decorate)([s.attr],H.prototype,"message",void 0),(0,y.__decorate)([(0,s.attr)({mode:"boolean",attribute:"non-error"})],H.prototype,"nonError",void 0),H=(0,y.__decorate)([(0,s.customElement)({name:"login-message",template:s.html`
158
- ${(0,s.when)((e=>e.message),s.html`
159
- <span class="${e=>e.classNames}" part="message" data-test-id="message">
160
- ${e=>e.message}
161
- </span>
162
- `)}
163
- `,styles:s.css`
164
- :host {
165
- text-align: center;
166
- }
167
- .message {
168
- color: ${z.SecondaryRapidColorHEX.orange};
169
- margin-top: calc(var(--design-unit) * 3px);
170
- white-space: pre-line;
171
- }
172
- .message.non-error {
173
- color: ${z.SecondaryRapidColorHEX.teal};
174
- }
175
- `})],H);let W=class extends s.FASTElement{constructor(){super(...arguments),this.isSubmitting=!1}};(0,y.__decorate)([(0,s.attr)({mode:"boolean",attribute:"is-submitting"})],W.prototype,"isSubmitting",void 0),W=(0,y.__decorate)([(0,s.customElement)({name:"submitting-indicator",template:s.html`
176
- ${(0,s.when)((e=>e.isSubmitting),s.html`
177
- <zero-progress-ring
178
- part="submitting-indicator"
179
- data-test-id="submitting-indicator"
180
- ></zero-progress-ring>
181
- `)}
182
- `,styles:s.css`
183
- :host {
184
- display: flex;
185
- justify-content: center;
186
- }
187
- zero-progress-ring {
188
- align-self: center;
189
- }
190
- `})],W);const V=new $.FASTElementLayout(s.html`
191
- <div class="container">
192
- <div class="content">
193
- <slot></slot>
194
- </div>
195
- </div>
196
- `,s.css`
197
- :host {
198
- }
199
-
200
- .container {
201
- width: 100%;
202
- height: 100%;
203
- display: block;
204
- position: relative;
205
- }
206
-
207
- .content {
208
- position: absolute;
209
- top: 0;
210
- bottom: 0;
211
- left: 0;
212
- right: 0;
213
- }
214
- `);var Z=o(2617);const X=(e="normal",t="normal")=>`\n font-family: "Segoe UI", "Helvetica Neue", Arial, sans-serif; \n font-style: ${e};\n font-weight: ${t};\n`,Y=(X(),X("normal","bold")),K=s.css`
215
- :host {
216
- contain: content;
217
- display: flex;
218
- flex-direction: column;
219
- align-items: center;
220
- justify-content: center;
221
- height: 100%;
222
- width: 100%;
223
-
224
- --design-unit: 3.5;
225
- }
226
- `,G=s.css`
227
- .container {
228
- min-width: 330px;
229
- width: 15%;
230
- display: flex;
231
- flex-direction: column;
232
- align-items: center;
233
-
234
- animate: all 3s ease-in 0s;
235
- }
236
-
237
- .no-top-margin {
238
- margin-top: 0;
239
- }
240
-
241
- .no-top-margin::part(label) {
242
- margin-top: 0;
243
- }
244
-
245
- .card-pd {
246
- --zero-card-fill-color: #202126;
247
- padding: calc(var(--design-unit) * 5px);
248
- }
249
-
250
- .card-mg {
251
- margin: calc(var(--design-unit) * 2px);
252
- }
253
-
254
- .column-content {
255
- display: flex;
256
- flex-direction: column;
257
- align-items: center;
258
- }
259
-
260
- .logo {
261
- display: initial;
262
- margin-bottom: calc(var(--design-unit) * 5px);
263
- transition: opacity 5s ease-in-out;
264
- }
265
-
266
- .heading {
267
- ${Y};
268
-
269
- background-color: ${Z.neutralLayer1};
270
- border-bottom: 1px solid rgba(0, 0, 0, 0.12);
271
- font-size: 20px;
272
- margin: -4px -16px 0 -16px;
273
- padding: 8px 16px;
274
- }
275
-
276
- .heading2 {
277
- font-family: Roboto-Medium, sans-serif;
278
- font-weight: 500;
279
- font-style: normal;
280
- font-size: 16px;
281
- text-align: center;
282
- opacity: 80%;
283
- margin-bottom: 10px;
284
- }
285
-
286
- .heading3 {
287
- text-align: center;
288
- font-family: Roboto-Medium, sans-serif;
289
- font-weight: 500;
290
- font-style: normal;
291
- font-size: 12px;
292
- opacity: 50%;
293
- margin-bottom: calc(var(--design-unit) * 5px);
294
- }
295
-
296
- form {
297
- display: flex;
298
- flex-direction: column;
299
- }
300
-
301
- .action-btn {
302
- margin-top: calc(var(--design-unit) * 5px);
303
- }
304
-
305
- .form-buttons {
306
- display: flex;
307
- flex-direction: column;
308
- justify-content: space-between;
309
- }
310
-
311
- .form-title {
312
- font-family: Roboto-Medium, sans-serif;
313
- font-style: normal;
314
- color: var(--neutral-stroke-rest);
315
- }
316
-
317
- zero-text-field {
318
- margin: 8px 0 12px;
319
- }
320
-
321
- zero-text-field::part(label) {
322
- margin-bottom: calc(var(--design-unit) * 2px);
323
- }
324
-
325
- zero-text-field,
326
- zero-select {
327
- margin-bottom: calc(var(--design-unit) * 3px);
328
- }
329
-
330
- zero-button::part(info1),
331
- zero-button::part(info2) {
332
- display: none;
333
- }
334
-
335
- zero-checkbox {
336
- margin-top: calc(var(--design-unit) * 3px);
337
- }
338
-
339
- zero-checkbox::part(label) {
340
- color: var(--neutral-stroke-rest);
341
- }
342
- `,J=s.css`
343
- ${K}
344
- ${G}
345
- `,Q=s.css`
346
- ${J}
347
- .link-url {
348
- width: fit-content;
349
- cursor: pointer;
350
- font-weight: 500;
351
- font-size: 12px;
352
- color: var(--accent-foreground-rest);
353
- opacity: 80%;
354
- padding: 1px 0;
355
- line-height: calc(var(--design-unit) * 6px);
356
- text-decoration: none;
357
- }
358
-
359
- .link-url:hover {
360
- color: var(--accent-foreground-hover);
361
- opacity: 100%;
362
- border-bottom: 1px solid;
363
- margin-bottom: -1px;
364
- }
365
-
366
- .action-btn {
367
- margin: calc(var(--design-unit) * 5px) 0;
368
- }
369
-
370
- .sso {
371
- display: flex;
372
- flex-direction: column;
373
- justify-content: space-between;
374
- align-items: stretch;
375
- }
376
-
377
- .sso .form-title {
378
- font-size: var(--type-ramp-base-font-size);
379
- margin-bottom: calc(var(--design-unit) * 2px);
380
- }
381
-
382
- .links {
383
- display: flex;
384
- justify-content: space-between;
385
- align-content: center;
386
- align-items: center;
387
- flex-wrap: wrap;
388
- }
389
-
390
- .password-links {
391
- display: flex;
392
- flex-direction: column;
393
- justify-content: flex-start;
394
- align-self: flex-start;
395
- }
396
-
397
- .account-links {
398
- display: flex;
399
- flex-direction: column;
400
- justify-content: flex-end;
401
- align-self: flex-start;
402
- }
403
-
404
- .case-warning {
405
- color: #379ec0;
406
- font-size: 0.83em;
407
- margin-block-start: 1em;
408
- margin-block-end: 1em;
409
- }
410
-
411
- .version {
412
- width: fit-content;
413
- font-weight: 500;
414
- font-size: 10px;
415
- color: var(--accent-foreground-rest);
416
- opacity: 80%;
417
- padding: 1px 0;
418
- line-height: calc(var(--design-unit) * 6px);
419
- }
420
- `,ee=s.html`
421
- ${(0,s.when)((e=>!e.ssoToggled),s.html`
422
- ${L()} ${A()} ${M()}
423
- <span class="case-warning">*Fields are case-sensitive</span>
424
- ${N()}
425
- <div class="form-buttons">
426
- ${e=>B("Login","submit-login",e.submitDisabled)}
427
- <div class="links">
428
- <div class="password-links">
429
- ${(0,s.when)((e=>!e.config.omitRoutes.includes("forgot-password")),s.html`
430
- <a
431
- class="link-url"
432
- @click=${e=>e.onNavigate("forgot-password")}
433
- data-test-id="forgot-password"
434
- >
435
- Forgot Password?
436
- </a>
437
- `)}
438
- ${(0,s.when)((e=>!e.config.omitRoutes.includes("reset-password")),s.html`
439
- <a
440
- class="link-url"
441
- @click=${e=>e.onNavigate("reset-password")}
442
- data-test-id="reset-password"
443
- >
444
- Change Password
445
- </a>
446
- `)}
447
- </div>
448
- <div class="account-links">
449
- ${(0,s.when)((e=>!e.config.omitRoutes.includes("request-account")),s.html`
450
- <a
451
- class="link-url"
452
- @click=${e=>e.onNavigate("request-account")}
453
- data-test-id="request-account"
454
- >
455
- Request Account
456
- </a>
457
- `)}
458
- </div>
459
- </div>
460
- </div>
461
- ${(0,s.when)((e=>e.config.versionInformation),s.html`
462
- <div>
463
- <span class="version" data-test-id="version">
464
- ${e=>e.config.versionInformation}
465
- </span>
466
- </div>
467
- `)}
468
- `)}
469
- `,te=s.html`
470
- ${(0,s.when)((e=>e.ssoToggled),s.html`
471
- <div class="sso">
472
- <span class="form-title">Providers</span>
473
- <zero-select
474
- name="sso"
475
- data-test-id="sso"
476
- :value=${(0,x.sync)((e=>e.selectedIDP))}
477
- ?disabled=${e=>!e.idps.length}
478
- >
479
- ${(0,s.repeat)((e=>e.idps),s.html`
480
- <zero-option value="${({id:e})=>e}">${({id:e})=>e}</zero-option>
481
- `)}
482
- </zero-select>
483
- <zero-button
484
- type="button"
485
- class="action-btn"
486
- appearance="primary-gradient"
487
- @click="${e=>e.onClickSSO()}"
488
- data-test-id="sso-login"
489
- ?disabled=${e=>!e.selectedIDP}
490
- >
491
- SSO Login
492
- </zero-button>
493
- </div>
494
- `)}
495
- `,oe=s.html`
496
- <pre data-test-id="connect-http-mode">Http Polling Mode Enabled.</pre>
497
- `,se=s.html`
498
- ${e=>e.connect.httpMode()?oe:null}
499
- `,ie=s.html`
500
- <zero-connection-indicator show-label="true" />
501
- `,ne=s.html`
502
- ${e=>e.connect.httpMode()?null:ie}
503
- `,ae=s.html`
504
- <login-background>
505
- <div class="container">
506
- ${(0,s.when)((e=>!e.config.autoConnect),s.html`
507
- <zero-card class="card-pd card-mg">
508
- <form
509
- id="connect-form"
510
- method="post"
511
- autocomplete="on"
512
- @submit=${e=>e.onHostSubmit()}
513
- ?disabled=${e=>e.submitConnectDisabled}
514
- data-test-id="connect-form"
515
- >
516
- <zero-text-field
517
- class="no-top-margin"
518
- type="text"
519
- name="host"
520
- :value=${(0,x.sync)((e=>e.host))}
521
- ?disabled=${e=>e.connect.isConnected}
522
- data-test-id="connect-host"
523
- required
524
- >
525
- <span class="form-title">Host</span>
526
- </zero-text-field>
527
-
528
- ${se}
529
-
530
- <div class="form-buttons">
531
- ${e=>B(e.connectActionText,"submit-connect",e.submitConnectDisabled)}
532
- </div>
533
- </form>
534
- </zero-card>
535
- `)}
536
-
537
- <zero-card class="card-pd">
538
- <div class="column-content">
539
- <login-logo></login-logo>
540
- <div class="heading2">Login</div>
541
- </div>
542
- <form
543
- id="login-form"
544
- method="post"
545
- autocomplete="on"
546
- @submit=${e=>e.onLoginSubmit()}
547
- ?disabled=${e=>e.submitDisabled}
548
- data-test-id="login-form"
549
- >
550
- ${ee} ${te}
551
- ${(0,s.when)((e=>e.config.sso),s.html`
552
- <zero-checkbox
553
- ?checked="${(0,x.sync)((e=>e.ssoToggled),"boolean")}"
554
- name="sso-toggle"
555
- data-test-id="sso-toggle"
556
- >
557
- ${e=>e.ssoToggled?"SSO Enabled"+e.selectedIDPName:"Enable SSO?"}
558
- </zero-checkbox>
559
- `)}
560
- <login-message
561
- message="${e=>e.message}"
562
- non-error="${e=>!e.hasErrors}"
563
- ></login-message>
564
- ${(0,s.when)((e=>e.config.showConnectionIndicator),s.html`
565
- ${ne}
566
- `)}
567
- </form>
568
- </zero-card>
569
- </div>
570
- </login-background>
571
- `;let re=class extends O{constructor(){super(...arguments),this.idps=[],this.selectedIDP="",this.ssoToggled=!1,this.fetchIDPs=()=>(0,y.__awaiter)(this,void 0,void 0,(function*(){var e,t;var o;const s=`${(o=this.host).startsWith("ws:")?o.replace("ws:","http:"):o.startsWith("wss:")?o.replace("wss:","https:"):o}${null!==(t=null===(e=this.config.sso)||void 0===e?void 0:e.identityProvidersPath)&&void 0!==t?t:"sso/list"}`;return fetch(s).then((e=>{if(e.ok)return e;throw new Error(e.statusText)})).then((e=>e.json())).then((e=>e.IDPS))})),this.toggleHttpMode=e=>{this.connect&&this.convertHostUrl()}}connectedCallback(){const e=Object.create(null,{connectedCallback:{get:()=>super.connectedCallback}});var t,o;return(0,y.__awaiter)(this,void 0,void 0,(function*(){e.connectedCallback.call(this),this.ssoToggled=null!==(o=null===(t=this.config.sso)||void 0===t?void 0:t.toggled)&&void 0!==o&&o,this.connect.isConnected&&this.auth.isLoggedIn&&(yield this.credentialManager.preventSilentAccess(),yield this.auth.logout()),this.convertHostUrl(),yield this.autofill()}))}enter(){return(0,y.__awaiter)(this,void 0,void 0,(function*(){s.DOM.queueUpdate((()=>(0,y.__awaiter)(this,void 0,void 0,(function*(){try{!this.connect.isConnected&&this.config.autoConnect&&(yield this.toggleConnection()),!this.auth.isLoggedIn&&this.config.autoAuth&&this.attemptLoginWhenConnected()}catch(e){k.debug(e)}}))))}))}toggleConnection(){return(0,y.__awaiter)(this,void 0,void 0,(function*(){return this.connect.isConnected?(this.connect.disconnect(),void k.debug(`Disconnected from ${this.host}`)):this.connect.connect(this.host)}))}attemptLoginWhenConnected(){this.connect.isConnectedSubject.subscribe((e=>{if(e){const e=this.credentialManager,t=e.createRefreshCredentials();if(e.validateRefreshCredentials(t))return k.debug("Attempting to login with refresh credentials."),void this.login(t);if(this.ssoToggled){const t=e.createSSOCredentials();if(e.validateSSOCredentials(t))return k.debug("Attempting to login with SSO."),this.login(t),void this.credentialManager.removeSSOToken()}this.attemptBasicLogin()}}))}attemptBasicLogin(){const e=this.credentialManager.createBasicCredentials({username:this.orgUsername,password:this.password});this.credentialManager.validateBasicCredentials(e)?(k.debug("Attempting to login with basic credentials."),this.login(e)):k.debug("Basic credentials appear invalid, aborting login attempt.")}ssoToggledChanged(){this.clearError(),this.ssoToggled&&this.fetchIDPs().then((e=>{var t,o;k.debug("fetched IDPs",e),this.idps=e.map((e=>({id:e.ID,type:e.TYPE}))),this.selectedIDP=null===(o=null===(t=null==this?void 0:this.idps)||void 0===t?void 0:t[0])||void 0===o?void 0:o.id})).catch((()=>this.setError("Failed to fetch identity providers.")))}get selectedIDPName(){return this.selectedIDP?` - ${this.selectedIDP}`:""}onClickSSO(){const e=this.createLoginURL();(0,x.inIFrame)()?(0,x.inSymphonyDesktop)()?(0,x.openPopup)("","symphony").location.assign(e):(0,x.openPopup)(e,"Login"):window.open(e,"_self")}createLoginURL(){const e=this.idps.find((e=>e.id===this.selectedIDP));return`https://${new URL(this.host).host}${`/gwf/${e.type}/login`}?idp=${e.id}`}convertHostUrl(){var e,t,o,s;(null===(e=this.connect)||void 0===e?void 0:e.httpMode())&&(null===(t=this.host)||void 0===t?void 0:t.startsWith("ws"))?this.host=this.host.replace("ws","http"):!(null===(o=this.connect)||void 0===o?void 0:o.httpMode())&&(null===(s=this.host)||void 0===s?void 0:s.startsWith("http"))&&(this.host=this.host.replace("http","ws"))}onHostSubmit(){return(0,y.__awaiter)(this,void 0,void 0,(function*(){k.debug("host submission"),yield this.toggleConnection()}))}onLoginSubmit(){const e=Object.create(null,{onSubmit:{get:()=>super.onSubmit}});return(0,y.__awaiter)(this,void 0,void 0,(function*(){k.debug("login submission"),yield e.onSubmit.call(this),s.DOM.queueUpdate((()=>{this.attemptBasicLogin()}))}))}login(e){return(0,y.__awaiter)(this,void 0,void 0,(function*(){try{const{authToken:t}=yield this.auth.login(e);if(!t)throw new Error("Unable to login. Try again later.");this.storeCredentials();let o=this.config.defaultRedirectUrl;this.session.returnUrl&&!this.config.omitRedirectUrls.includes(this.session.returnUrl)&&(o=this.session.returnUrl),$.Route.path.push(o)}catch(e){if(e instanceof _.AuthError)return e.hasPasswordExpiredError()?(this.storeCredentials(),void this.onNavigate("reset-password",{expired:!0})):this.config.fields.organisation&&!this.organisation.length?void this.setError(e.message+"Please fill in Comp Id."):void this.setError(e.message+e.getMessageError());this.setError(e.message)}}))}get connectActionText(){return this.connect.isConnected?"Disconnect":"Connect"}get submitConnectDisabled(){return!this.host}get submitDisabled(){return!this.connect.httpMode()&&(this.connect.isWorking||!this.connect.isConnected)}};(0,y.__decorate)([s.observable],re.prototype,"idps",void 0),(0,y.__decorate)([s.observable],re.prototype,"selectedIDP",void 0),(0,y.__decorate)([s.observable],re.prototype,"ssoToggled",void 0),(0,y.__decorate)([s.volatile],re.prototype,"selectedIDPName",null),(0,y.__decorate)([s.volatile],re.prototype,"connectActionText",null),re=(0,y.__decorate)([(0,s.customElement)({name:"foundation-login-form",template:ae,styles:Q})],re);const ce=s.html`
572
- <login-background>
573
- <div class="container">
574
- <zero-card class="card-pd">
575
- <div class="column-content">
576
- <login-logo></login-logo>
577
- <div class="heading2">Forgotten Password</div>
578
- <div class="heading3">Enter your account username</div>
579
- </div>
580
- <form @submit=${e=>e.onSubmit()}>
581
- ${L()} ${A()}
582
- <div class="form-buttons">
583
- ${B("Send Recovery Link")} ${q((e=>e.onBack()))}
584
- </div>
585
- <submitting-indicator is-submitting="${e=>e.isSubmitting}"></submitting-indicator>
586
- <login-message
587
- message="${e=>e.message}"
588
- non-error="${e=>!e.hasErrors}"
589
- ></login-message>
590
- </form>
591
- </zero-card>
592
- </div>
593
- </login-background>
594
- `;let le=class extends O{connectedCallback(){const e=Object.create(null,{connectedCallback:{get:()=>super.connectedCallback}});return(0,y.__awaiter)(this,void 0,void 0,(function*(){e.connectedCallback.call(this),yield this.autofill()}))}onSubmit(){const e=Object.create(null,{onSubmit:{get:()=>super.onSubmit}});return(0,y.__awaiter)(this,void 0,void 0,(function*(){k.debug("forgot password submission"),yield e.onSubmit.call(this);const t=`${location.protocol}//${g}/reset-password`,o=this.messageBuilder.createForgotPasswordMessage(this.orgUsername,t);yield this.sendMessage(o,"Please check your inbox for reset instructions.")}))}};le=(0,y.__decorate)([(0,s.customElement)({name:"foundation-login-forgot-password",template:ce,styles:J})],le);let de=class extends O{};de=(0,y.__decorate)([(0,s.customElement)({name:"foundation-login-not-found",template:s.html`
595
- <h1 data-test-id="not-found">Not found! 404</h1>
596
- `,styles:J})],de);const ue=s.html`
597
- <login-background>
598
- <div class="container">
599
- <zero-card class="card-pd">
600
- <div class="column-content">
601
- <login-logo></login-logo>
602
- <div class="heading2">Request Account</div>
603
- </div>
604
- <form @submit=${e=>e.onSubmit()}>
605
- ${L()} ${A()} ${D()} ${M()}
606
- ${I("confirmation")}
607
- <zero-checkbox
608
- name="terms"
609
- :value=${(0,x.sync)((e=>e.termsAgreed),"boolean")}
610
- data-test-id="terms"
611
- >
612
- I agree to the
613
- <stong>Terms</stong>
614
- and
615
- <stong>Conditions</stong>
616
- </zero-checkbox>
617
- <div class="form-buttons">
618
- <submit-button
619
- is-submitting="${e=>e.isSubmitting}"
620
- label="Request Account"
621
- ></submit-button>
622
- ${q((e=>e.onBack()))}
623
- </div>
624
- <login-message message="${e=>e.message}"></login-message>
625
- </form>
626
- </zero-card>
627
- </div>
628
- </login-background>
629
- `;let ge=class extends O{constructor(){super(...arguments),this.termsAgreed=!1}onSubmit(){const e=Object.create(null,{onSubmit:{get:()=>super.onSubmit}});return(0,y.__awaiter)(this,void 0,void 0,(function*(){k.debug("request account submission"),yield e.onSubmit.call(this)}))}};(0,y.__decorate)([s.observable],ge.prototype,"termsAgreed",void 0),ge=(0,y.__decorate)([(0,s.customElement)({name:"foundation-login-request-account",template:ue,styles:J})],ge);const he=s.html`
630
- <login-background>
631
- <div class="container">
632
- <zero-card class="card-pd">
633
- <div class="column-content">
634
- <login-logo></login-logo>
635
- <div class="heading2">Verify that it's you</div>
636
- <div class="heading3">
637
- We've sent a code to the email address attached to this account.
638
- </div>
639
- </div>
640
- <form @submit=${e=>e.onSubmit()}>
641
- <zero-text-field
642
- type="text"
643
- name="code"
644
- autocomplete="one-time-code"
645
- :value=${(0,x.sync)((e=>e.code))}
646
- autofocus
647
- data-test-id="code"
648
- >
649
- <span class="form-title">Verification Code</span>
650
- </zero-text-field>
651
- <div class="form-buttons">
652
- <submit-button
653
- is-submitting="${e=>e.isSubmitting}"
654
- label="Verify and Login"
655
- ></submit-button>
656
- ${q((e=>e.onBack()))}
657
- </div>
658
- <login-message message="${e=>e.message}"></login-message>
659
- </form>
660
- </zero-card>
661
- </div>
662
- </login-background>
663
- `;let me=class extends O{constructor(){super(...arguments),this.code=""}onSubmit(){const e=Object.create(null,{onSubmit:{get:()=>super.onSubmit}});return(0,y.__awaiter)(this,void 0,void 0,(function*(){k.debug("2FA verify submission"),yield e.onSubmit.call(this)}))}};(0,y.__decorate)([s.observable],me.prototype,"code",void 0),me=(0,y.__decorate)([(0,s.customElement)({name:"foundation-login-verify",template:he,styles:J})],me);const pe=s.html`
664
- <div class="container">
665
- <zero-button
666
- type="button"
667
- appearance="primary-gradient"
668
- @click=${e=>e.onLogout()}
669
- data-test-id="logout"
670
- >
671
- Logout
672
- </zero-button>
673
- </div>
674
- `;let fe=class extends O{onLogout(){return(0,y.__awaiter)(this,void 0,void 0,(function*(){(yield this.auth.logout()).success&&(yield this.credentialManager.preventSilentAccess(),this.onNavigate("login"))}))}};fe=(0,y.__decorate)([(0,s.customElement)({name:"foundation-login-protected",template:pe,styles:J})],fe);const be=s.html`
675
- <login-background>
676
- <div class="container">
677
- <zero-card class="card-pd">
678
- <div class="column-content">
679
- <login-logo></login-logo>
680
- <div class="heading2" data-test-id="heading">${e=>e.headingText}</div>
681
- <div class="heading3">Enter the username registered to your account</div>
682
- </div>
683
- <form @submit=${e=>e.onSubmit()} autocomplete="on">
684
- ${L()} ${A()}
685
- ${(0,s.when)((e=>!e.passwordResetToken),s.html`
686
- ${M("Old Password")}
687
- `)}
688
- ${I("new")} ${N()}
689
- <div class="form-buttons">
690
- ${B("Change Password")} ${q((e=>e.onBack()))}
691
- </div>
692
- <submitting-indicator is-submitting="${e=>e.isSubmitting}"></submitting-indicator>
693
- <login-message
694
- message="${e=>e.message}"
695
- non-error="${e=>!e.hasErrors}"
696
- ></login-message>
697
- </form>
698
- </zero-card>
699
- </div>
700
- </login-background>
701
- `;let ve=class extends O{constructor(){super(...arguments),this.hasPasswordExpired=!1,this.passwordResetToken=""}connectedCallback(){const e=Object.create(null,{connectedCallback:{get:()=>super.connectedCallback}});return(0,y.__awaiter)(this,void 0,void 0,(function*(){e.connectedCallback.call(this),yield this.autofill()}))}enter(e){return(0,y.__awaiter)(this,void 0,void 0,(function*(){this.hasPasswordExpired=!!e.route.queryParams.expired,this.passwordResetToken=e.route.queryParams.password}))}onSubmit(){const e=Object.create(null,{onSubmit:{get:()=>super.onSubmit}});return(0,y.__awaiter)(this,void 0,void 0,(function*(){yield e.onSubmit.call(this),this.passwordResetToken?yield this.onForgotPasswordWorkflow():yield this.onChangePasswordWorkflow(),this.isSubmitting=!1}))}onForgotPasswordWorkflow(){return(0,y.__awaiter)(this,void 0,void 0,(function*(){k.debug("forgot password submission");const e=this.messageBuilder.createForgotPasswordTokenMessage(this.orgUsername,this.passwordResetToken,this.password2);yield this.sendMessage(e,"Password reset success.",(()=>{this.storeCredentials(this.password2)}))}))}onChangePasswordWorkflow(){return(0,y.__awaiter)(this,void 0,void 0,(function*(){k.debug("change password submission");const e=this.messageBuilder.createChangePasswordMessage(this.orgUsername,this.password,this.password2);yield this.sendMessage(e,"Password change success.",(()=>{this.storeCredentials(this.password2)}))}))}get headingText(){return this.hasPasswordExpired?"You are required to change your password":"Change Password"}};(0,y.__decorate)([s.observable],ve.prototype,"hasPasswordExpired",void 0),(0,y.__decorate)([s.observable],ve.prototype,"passwordResetToken",void 0),(0,y.__decorate)([s.volatile],ve.prototype,"headingText",null),ve=(0,y.__decorate)([(0,s.customElement)({name:"foundation-login-reset-password",template:be,styles:J})],ve);let we=class extends $.RouterConfiguration{constructor(e,t,o,s,i=f){super(),this.auth=e,this.container=t,this.analytics=o,this.session=s,this.loginConfig=i}configure(){this.title="Login",this.defaultLayout=V;const e=[{path:"",name:"login",element:re,title:"Login",settings:{public:!0}},{path:"not-found",element:de,title:"Not Found",name:"not-found",settings:{public:!0}}],{omitRoutes:t}=this.loginConfig;t.includes("request-account")||e.push({path:"request-account",name:"request-account",element:ge,title:"Request Account",settings:{public:!0}}),t.includes("reset-password")||e.push({path:"reset-password",name:"reset-password",element:ve,title:"Reset Password",settings:{public:!0}}),t.includes("forgot-password")||e.push({path:"forgot-password",name:"forgot-password",element:le,title:"Forgot Password",settings:{public:!0}}),t.includes("verify")||e.push({path:"verify",element:me,title:"Verify",name:"verify",settings:{public:!0}}),t.includes("protected")||e.push({path:"protected",element:fe,title:"Protected",name:"protected",settings:{public:!1}}),this.routes.map(...e);const o=this.session,s=this.auth,i=this.analytics;this.routes.fallback((()=>s.isLoggedIn?{redirect:"not-found"}:{redirect:"login"})),this.contributors.push({navigate:e=>(0,y.__awaiter)(this,void 0,void 0,(function*(){const t=e.route.settings;i.trackEvent(_.FoundationAnalyticsEventType.routeChanged,{path:e.route.endpoint.path}),t&&t.public||s.isLoggedIn||this.loginConfig.autoAuth&&(yield s.reAuthFromSession())||e.cancel((()=>{o.captureReturnUrl(),$.Route.name.replace(e.router,"login")}))}))})}construct(e){return this.container.get(e)}};we=(0,y.__decorate)([(0,y.__param)(0,_.Auth),(0,y.__param)(1,i.Container),(0,y.__param)(2,_.FoundationAnalytics),(0,y.__param)(3,_.Session),(0,y.__param)(4,(0,i.optional)(b))],we);const ye=e=>{const t=(0,w.tagFor)(e.provider),o=(0,w.tagFor)(e.router);return s.html`
702
- <${t} data-test-id="login-provider" ${(0,s.ref)("provider")}>
703
- <${o} :config=${e=>e.config} data-test-id="login-router"></${o}>
704
- </${t}>
705
- `},_e=e=>{const t=(0,w.tagFor)(e.provider),o=(0,w.tagFor)(e.router);return s.css`
706
- ${(0,z.mixinRobotoFont)()}
707
- :host {
708
- contain: content;
709
- }
710
-
711
- :host,
712
- ${t}, ${o} {
713
- display: flex;
714
- width: 100%;
715
- height: 100%;
716
- }
717
-
718
- :host([hidden]) {
719
- display: none;
720
- }
721
-
722
- :host:not(:defined) {
723
- visibility: hidden;
724
- }
725
- `},$e={anchor:"zero-anchor",button:"zero-button",card:"zero-card",checkbox:"zero-checkbox",listboxOption:"zero-option",provider:"template",router:"foundation-router",select:"zero-select",textField:"zero-text-field"},xe={name:"foundation-login",template:ye($e),styles:_e($e)},ke={name:"foundation-login",template:ye(Object.assign(Object.assign({},$e),{provider:"zero-design-system-provider"})),styles:_e(Object.assign(Object.assign({},$e),{provider:"zero-design-system-provider"}))};let Ce=class extends s.FASTElement{constructor(){super(...arguments),this.ready=!1}connectedCallback(){const e=Object.create(null,{connectedCallback:{get:()=>super.connectedCallback}});return(0,y.__awaiter)(this,void 0,void 0,(function*(){this.registerDIDependencies(),e.connectedCallback.call(this),yield this.registerCommonComponents(),this.checkForSSOToken()}))}checkForSSOToken(){const e=new URLSearchParams(window.location.search).get("SSO_TOKEN");e&&(window.opener?(window.opener.sessionStorage.setItem("ssoToken",e),window.opener.location.reload(),window.close()):this.session.setSessionStorageItem("ssoToken",e))}registerCommonComponents(){return(0,y.__awaiter)(this,void 0,void 0,(function*(){yield function(e){return(0,y.__awaiter)(this,void 0,void 0,(function*(){const{registerZeroDesignSystem:e}=yield S();return{ZeroDesignSystem:e()}}))}(),this.ready=!0}))}registerDIDependencies(){this.container.register(i.Registration.transient($.DefaultRouteRecognizer,$.DefaultRouteRecognizer),i.Registration.instance(_.ConnectConfig,Object.assign(Object.assign({},_.defaultConnectConfig),{connect:Object.assign(Object.assign({},_.defaultConnectConfig.connect),{heartbeatInterval:12e3})})))}};(0,y.__decorate)([(0,i.inject)(we)],Ce.prototype,"config",void 0),(0,y.__decorate)([i.Container],Ce.prototype,"container",void 0),(0,y.__decorate)([_.Session],Ce.prototype,"session",void 0),(0,y.__decorate)([s.observable],Ce.prototype,"ready",void 0),(0,y.__decorate)([s.observable],Ce.prototype,"provider",void 0),Ce=(0,y.__decorate)([(0,s.customElement)(ke)],Ce);let Se=class extends Ce{registerCommonComponents(){return(0,y.__awaiter)(this,void 0,void 0,(function*(){this.ready=!0}))}};Se=(0,y.__decorate)([(0,s.customElement)(Object.assign(Object.assign({},xe),{name:`${xe.name}-hosted`}))],Se);const ze=(0,w.defineFactory)(Ce,xe)},7702:(e,t,o)=>{"use strict";e.exports=o.p+"c0bd2c45d93ce443d624.jpg"},7924:(e,t,o)=>{"use strict";e.exports=o.p+"b634d7e1f2324faf1230.svg"}}]);
726
- //# sourceMappingURL=170.02ecd6ffb7bb9c9531e72b7099ba0dce.js.map