@keycloakify/angular 0.0.1-rc.2 → 0.0.1-rc.4

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 (321) hide show
  1. package/lib/tokens/use-default-css.token.d.ts +2 -0
  2. package/lib/tokens/use-default-css.token.js +3 -0
  3. package/login/components/add-remove-buttons-multi-valued-attribute/add-remove-buttons-multi-valued-attribute.component.d.ts +3 -1
  4. package/login/components/add-remove-buttons-multi-valued-attribute/add-remove-buttons-multi-valued-attribute.component.js +106 -0
  5. package/login/components/field-errors/field-errors.component.d.ts +2 -2
  6. package/login/components/field-errors/field-errors.component.js +33 -0
  7. package/login/components/group-label/group-label.component.d.ts +3 -1
  8. package/login/components/group-label/group-label.component.js +43 -0
  9. package/login/components/input-field-by-type/input-field-by-type.component.js +46 -0
  10. package/login/components/input-tag/input-tag.component.d.ts +4 -2
  11. package/login/components/input-tag/input-tag.component.js +90 -0
  12. package/login/components/input-tag-selects/input-tag-selects.component.d.ts +4 -2
  13. package/login/components/input-tag-selects/input-tag-selects.component.js +117 -0
  14. package/login/components/logout-other-sessions/logout-other-sessions.component.d.ts +3 -1
  15. package/login/components/logout-other-sessions/logout-other-sessions.component.js +32 -0
  16. package/login/components/password-wrapper/password-wrapper.component.d.ts +3 -1
  17. package/login/components/password-wrapper/password-wrapper.component.js +46 -0
  18. package/login/components/select-tag/select-tag.component.d.ts +4 -2
  19. package/login/components/select-tag/select-tag.component.js +82 -0
  20. package/login/components/textarea-tag/textarea-tag.component.js +49 -0
  21. package/login/components/user-profile-form-fields/user-profile-form-fields.component.d.ts +4 -2
  22. package/login/components/user-profile-form-fields/user-profile-form-fields.component.js +59 -0
  23. package/login/containers/template.component.js +72 -0
  24. package/login/pages/code/code.component.d.ts +4 -2
  25. package/login/pages/code/code.component.js +35 -0
  26. package/login/pages/delete-account-confirm/delete-account-confirm.component.d.ts +4 -2
  27. package/login/pages/delete-account-confirm/delete-account-confirm.component.js +35 -0
  28. package/login/pages/delete-credential/delete-credential.component.d.ts +4 -2
  29. package/login/pages/delete-credential/delete-credential.component.js +40 -0
  30. package/login/pages/error/error.component.d.ts +4 -2
  31. package/login/pages/error/error.component.js +35 -0
  32. package/login/pages/frontchannel-logout/frontchannel-logout.component.d.ts +4 -2
  33. package/login/pages/frontchannel-logout/frontchannel-logout.component.js +44 -0
  34. package/login/pages/idp-review-user-profile/idp-review-user-profile.component.d.ts +4 -2
  35. package/login/pages/idp-review-user-profile/idp-review-user-profile.component.js +45 -0
  36. package/login/pages/info/info.component.d.ts +4 -8
  37. package/login/pages/info/info.component.js +49 -0
  38. package/login/pages/login/login.component.d.ts +4 -2
  39. package/login/pages/login/login.component.js +44 -0
  40. package/login/pages/login-config-totp/login-config-totp.component.d.ts +4 -2
  41. package/login/pages/login-config-totp/login-config-totp.component.js +42 -0
  42. package/login/pages/login-idp-link-confirm/login-idp-link-confirm.component.d.ts +4 -2
  43. package/login/pages/login-idp-link-confirm/login-idp-link-confirm.component.js +40 -0
  44. package/login/pages/login-idp-link-confirm-override/login-idp-link-confirm-override.component.d.ts +4 -2
  45. package/login/pages/login-idp-link-confirm-override/login-idp-link-confirm-override.component.js +40 -0
  46. package/login/pages/login-idp-link-email/login-idp-link-email.component.d.ts +4 -2
  47. package/login/pages/login-idp-link-email/login-idp-link-email.component.js +40 -0
  48. package/login/pages/login-oauth-grant/login-oauth-grant.component.d.ts +4 -2
  49. package/login/pages/login-oauth-grant/login-oauth-grant.component.js +40 -0
  50. package/login/pages/login-oauth2-device-verify-user-code/login-oauth2-device-verify-user-code.component.d.ts +4 -2
  51. package/login/pages/login-oauth2-device-verify-user-code/login-oauth2-device-verify-user-code.component.js +40 -0
  52. package/login/pages/login-otp/login-otp.component.d.ts +4 -2
  53. package/login/pages/login-otp/login-otp.component.js +41 -0
  54. package/login/pages/login-page-expired/login-page-expired.component.d.ts +4 -2
  55. package/login/pages/login-page-expired/login-page-expired.component.js +39 -0
  56. package/login/pages/login-passkeys-conditional-authenticate/login-passkeys-conditional-authenticate.component.d.ts +5 -5
  57. package/login/pages/login-passkeys-conditional-authenticate/login-passkeys-conditional-authenticate.component.js +84 -0
  58. package/login/pages/login-password/login-password.component.d.ts +4 -2
  59. package/login/pages/login-password/login-password.component.js +43 -0
  60. package/login/pages/login-recovery-authn-code-config/login-recovery-authn-code-config.component.d.ts +4 -2
  61. package/login/pages/login-recovery-authn-code-config/login-recovery-authn-code-config.component.js +43 -0
  62. package/login/pages/login-recovery-authn-code-input/login-recovery-authn-code-input.component.d.ts +4 -2
  63. package/login/pages/login-recovery-authn-code-input/login-recovery-authn-code-input.component.js +41 -0
  64. package/login/pages/login-reset-otp/login-reset-otp.component.d.ts +4 -2
  65. package/login/pages/login-reset-otp/login-reset-otp.component.js +40 -0
  66. package/login/pages/login-reset-password/login-reset-password.component.d.ts +4 -2
  67. package/login/pages/login-reset-password/login-reset-password.component.js +41 -0
  68. package/login/pages/login-update-password/login-update-password.component.d.ts +4 -2
  69. package/login/pages/login-update-password/login-update-password.component.js +43 -0
  70. package/login/pages/login-update-profile/login-update-profile.component.d.ts +4 -2
  71. package/login/pages/login-update-profile/login-update-profile.component.js +42 -0
  72. package/login/pages/login-username/login-username.component.d.ts +4 -2
  73. package/login/pages/login-username/login-username.component.js +43 -0
  74. package/login/pages/login-verify-email/login-verify-email.component.d.ts +4 -2
  75. package/login/pages/login-verify-email/login-verify-email.component.js +40 -0
  76. package/login/pages/login-x509-info/login-x509-info.component.d.ts +4 -2
  77. package/login/pages/login-x509-info/login-x509-info.component.js +40 -0
  78. package/login/pages/logout-confirm/logout-confirm.component.d.ts +4 -2
  79. package/login/pages/logout-confirm/logout-confirm.component.js +40 -0
  80. package/login/pages/register/register.component.d.ts +4 -2
  81. package/login/pages/register/register.component.js +48 -0
  82. package/login/pages/saml-post-form/saml-post-form.component.d.ts +4 -2
  83. package/login/pages/saml-post-form/saml-post-form.component.js +52 -0
  84. package/login/pages/select-authenticator/select-authenticator.component.d.ts +4 -2
  85. package/login/pages/select-authenticator/select-authenticator.component.js +41 -0
  86. package/login/pages/terms/terms.component.d.ts +4 -2
  87. package/login/pages/terms/terms.component.js +40 -0
  88. package/login/pages/update-email/update-email.component.d.ts +4 -2
  89. package/login/pages/update-email/update-email.component.js +43 -0
  90. package/login/pages/webauthn-authenticate/webauthn-authenticate.component.d.ts +5 -5
  91. package/login/pages/webauthn-authenticate/webauthn-authenticate.component.js +80 -0
  92. package/login/pages/webauthn-error/webauthn-error.component.d.ts +4 -2
  93. package/login/pages/webauthn-error/webauthn-error.component.js +49 -0
  94. package/login/pages/webauthn-register/webauthn-register.component.d.ts +5 -5
  95. package/login/pages/webauthn-register/webauthn-register.component.js +76 -0
  96. package/login/pipes/kc-sanitize.pipe.d.ts +3 -4
  97. package/login/pipes/kc-sanitize.pipe.js +29 -0
  98. package/login/pipes/{to-array.pipe.mjs → to-array.pipe.js} +1 -2
  99. package/login/providers/keycloakify-angular.providers.d.ts +16 -0
  100. package/login/providers/keycloakify-angular.providers.js +53 -0
  101. package/login/services/i18n.service.d.ts +6 -0
  102. package/{lib/services/i18n.service.mjs → login/services/i18n.service.js} +1 -1
  103. package/login/services/login-resource-injector.service.d.ts +1 -1
  104. package/login/services/login-resource-injector.service.js +68 -0
  105. package/login/services/user-profile-form.service.js +1019 -0
  106. package/{lib/providers/keycloakify-angular.providers.d.ts → login/tokens/classes.token.d.ts} +1 -24
  107. package/login/tokens/classes.token.js +3 -0
  108. package/login/tokens/i18n.token.d.ts +2 -0
  109. package/login/tokens/i18n.token.js +3 -0
  110. package/login/tokens/kc-context.token.d.ts +3 -0
  111. package/login/tokens/kc-context.token.js +3 -0
  112. package/login/tokens/make-user-confirm-password.token.d.ts +2 -0
  113. package/login/tokens/make-user-confirm-password.token.js +3 -0
  114. package/package.json +89 -108
  115. package/src/lib/tokens/use-default-css.token.ts +3 -0
  116. package/src/login/components/add-remove-buttons-multi-valued-attribute/add-remove-buttons-multi-valued-attribute.component.html +19 -19
  117. package/src/login/components/add-remove-buttons-multi-valued-attribute/add-remove-buttons-multi-valued-attribute.component.ts +7 -15
  118. package/src/login/components/field-errors/field-errors.component.html +10 -10
  119. package/src/login/components/field-errors/field-errors.component.ts +6 -11
  120. package/src/login/components/group-label/group-label.component.html +25 -25
  121. package/src/login/components/group-label/group-label.component.ts +10 -14
  122. package/src/login/components/input-field-by-type/input-field-by-type.component.html +57 -57
  123. package/src/login/components/input-field-by-type/input-field-by-type.component.ts +6 -23
  124. package/src/login/components/input-tag/input-tag.component.html +41 -45
  125. package/src/login/components/input-tag/input-tag.component.ts +13 -22
  126. package/src/login/components/input-tag-selects/input-tag-selects.component.html +22 -22
  127. package/src/login/components/input-tag-selects/input-tag-selects.component.ts +12 -23
  128. package/src/login/components/logout-other-sessions/logout-other-sessions.component.html +15 -15
  129. package/src/login/components/logout-other-sessions/logout-other-sessions.component.ts +8 -5
  130. package/src/login/components/password-wrapper/password-wrapper.component.html +13 -13
  131. package/src/login/components/password-wrapper/password-wrapper.component.ts +10 -20
  132. package/src/login/components/select-tag/select-tag.component.html +26 -26
  133. package/src/login/components/select-tag/select-tag.component.ts +13 -25
  134. package/src/login/components/textarea-tag/textarea-tag.component.html +13 -15
  135. package/src/login/components/textarea-tag/textarea-tag.component.ts +5 -14
  136. package/src/login/components/user-profile-form-fields/user-profile-form-fields.component.html +71 -71
  137. package/src/login/components/user-profile-form-fields/user-profile-form-fields.component.ts +15 -34
  138. package/src/login/containers/template.component.html +183 -183
  139. package/src/login/containers/template.component.ts +12 -28
  140. package/src/login/pages/code/code.component.html +21 -21
  141. package/src/login/pages/code/code.component.ts +11 -11
  142. package/src/login/pages/delete-account-confirm/delete-account-confirm.component.html +44 -42
  143. package/src/login/pages/delete-account-confirm/delete-account-confirm.component.ts +12 -13
  144. package/src/login/pages/delete-credential/delete-credential.component.html +29 -29
  145. package/src/login/pages/delete-credential/delete-credential.component.ts +12 -19
  146. package/src/login/pages/error/error.component.html +20 -20
  147. package/src/login/pages/error/error.component.ts +11 -11
  148. package/src/login/pages/frontchannel-logout/frontchannel-logout.component.html +31 -31
  149. package/src/login/pages/frontchannel-logout/frontchannel-logout.component.ts +12 -20
  150. package/src/login/pages/idp-review-user-profile/idp-review-user-profile.component.html +36 -36
  151. package/src/login/pages/idp-review-user-profile/idp-review-user-profile.component.ts +12 -25
  152. package/src/login/pages/info/info.component.html +45 -45
  153. package/src/login/pages/info/info.component.ts +13 -30
  154. package/src/login/pages/login/login.component.html +194 -194
  155. package/src/login/pages/login/login.component.ts +14 -35
  156. package/src/login/pages/login-config-totp/login-config-totp.component.html +189 -179
  157. package/src/login/pages/login-config-totp/login-config-totp.component.ts +13 -32
  158. package/src/login/pages/login-idp-link-confirm/login-idp-link-confirm.component.html +35 -35
  159. package/src/login/pages/login-idp-link-confirm/login-idp-link-confirm.component.ts +12 -19
  160. package/src/login/pages/login-idp-link-confirm-override/login-idp-link-confirm-override.component.html +34 -34
  161. package/src/login/pages/login-idp-link-confirm-override/login-idp-link-confirm-override.component.ts +12 -21
  162. package/src/login/pages/login-idp-link-email/login-idp-link-email.component.html +32 -30
  163. package/src/login/pages/login-idp-link-email/login-idp-link-email.component.ts +12 -19
  164. package/src/login/pages/login-oauth-grant/login-oauth-grant.component.html +83 -81
  165. package/src/login/pages/login-oauth-grant/login-oauth-grant.component.ts +12 -20
  166. package/src/login/pages/login-oauth2-device-verify-user-code/login-oauth2-device-verify-user-code.component.html +57 -57
  167. package/src/login/pages/login-oauth2-device-verify-user-code/login-oauth2-device-verify-user-code.component.ts +12 -21
  168. package/src/login/pages/login-otp/login-otp.component.html +96 -96
  169. package/src/login/pages/login-otp/login-otp.component.ts +12 -18
  170. package/src/login/pages/login-page-expired/login-page-expired.component.html +31 -31
  171. package/src/login/pages/login-page-expired/login-page-expired.component.ts +12 -19
  172. package/src/login/pages/login-passkeys-conditional-authenticate/login-passkeys-conditional-authenticate.component.html +183 -181
  173. package/src/login/pages/login-passkeys-conditional-authenticate/login-passkeys-conditional-authenticate.component.ts +15 -22
  174. package/src/login/pages/login-password/login-password.component.html +82 -82
  175. package/src/login/pages/login-password/login-password.component.ts +12 -25
  176. package/src/login/pages/login-recovery-authn-code-config/login-recovery-authn-code-config.component.html +142 -142
  177. package/src/login/pages/login-recovery-authn-code-config/login-recovery-authn-code-config.component.ts +13 -28
  178. package/src/login/pages/login-recovery-authn-code-input/login-recovery-authn-code-input.component.html +67 -67
  179. package/src/login/pages/login-recovery-authn-code-input/login-recovery-authn-code-input.component.ts +14 -24
  180. package/src/login/pages/login-reset-otp/login-reset-otp.component.html +61 -59
  181. package/src/login/pages/login-reset-otp/login-reset-otp.component.ts +13 -19
  182. package/src/login/pages/login-reset-password/login-reset-password.component.html +84 -84
  183. package/src/login/pages/login-reset-password/login-reset-password.component.ts +13 -20
  184. package/src/login/pages/login-update-password/login-update-password.component.html +107 -107
  185. package/src/login/pages/login-update-password/login-update-password.component.ts +14 -31
  186. package/src/login/pages/login-update-profile/login-update-profile.component.html +53 -53
  187. package/src/login/pages/login-update-profile/login-update-profile.component.ts +13 -26
  188. package/src/login/pages/login-username/login-username.component.html +146 -146
  189. package/src/login/pages/login-username/login-username.component.ts +13 -30
  190. package/src/login/pages/login-verify-email/login-verify-email.component.html +22 -22
  191. package/src/login/pages/login-verify-email/login-verify-email.component.ts +13 -20
  192. package/src/login/pages/login-x509-info/login-x509-info.component.html +96 -96
  193. package/src/login/pages/login-x509-info/login-x509-info.component.ts +13 -19
  194. package/src/login/pages/logout-confirm/logout-confirm.component.html +51 -51
  195. package/src/login/pages/logout-confirm/logout-confirm.component.ts +13 -19
  196. package/src/login/pages/register/register.component.html +113 -113
  197. package/src/login/pages/register/register.component.ts +12 -29
  198. package/src/login/pages/saml-post-form/saml-post-form.component.html +47 -48
  199. package/src/login/pages/saml-post-form/saml-post-form.component.ts +12 -20
  200. package/src/login/pages/select-authenticator/select-authenticator.component.html +43 -44
  201. package/src/login/pages/select-authenticator/select-authenticator.component.ts +13 -27
  202. package/src/login/pages/terms/terms.component.html +32 -32
  203. package/src/login/pages/terms/terms.component.ts +13 -19
  204. package/src/login/pages/update-email/update-email.component.html +52 -52
  205. package/src/login/pages/update-email/update-email.component.ts +13 -26
  206. package/src/login/pages/webauthn-authenticate/webauthn-authenticate.component.html +146 -148
  207. package/src/login/pages/webauthn-authenticate/webauthn-authenticate.component.ts +17 -41
  208. package/src/login/pages/webauthn-error/webauthn-error.component.html +53 -53
  209. package/src/login/pages/webauthn-error/webauthn-error.component.ts +13 -24
  210. package/src/login/pages/webauthn-register/webauthn-register.component.html +73 -73
  211. package/src/login/pages/webauthn-register/webauthn-register.component.ts +18 -32
  212. package/src/login/pipes/kc-sanitize.pipe.ts +9 -11
  213. package/src/login/pipes/to-array.pipe.ts +0 -1
  214. package/src/login/providers/keycloakify-angular.providers.ts +68 -0
  215. package/src/{lib → login}/services/i18n.service.ts +3 -2
  216. package/src/login/services/login-resource-injector.service.ts +4 -3
  217. package/src/login/services/user-profile-form.service.ts +5 -7
  218. package/src/login/tokens/classes.token.ts +6 -0
  219. package/src/login/tokens/i18n.token.ts +3 -0
  220. package/src/login/tokens/kc-context.token.ts +4 -0
  221. package/src/login/tokens/make-user-confirm-password.token.ts +5 -0
  222. package/src/tsconfig.json +6 -1
  223. package/lib/i18n.d.ts +0 -4
  224. package/lib/i18n.mjs +0 -6
  225. package/lib/models/index.d.ts +0 -1
  226. package/lib/models/index.mjs +0 -2
  227. package/lib/providers/keycloakify-angular.providers.mjs +0 -54
  228. package/lib/public-api.d.ts +0 -10
  229. package/lib/public-api.mjs +0 -4
  230. package/lib/services/i18n.service.d.ts +0 -6
  231. package/lib/services/index.d.ts +0 -2
  232. package/lib/services/index.mjs +0 -3
  233. package/login/components/add-remove-buttons-multi-valued-attribute/add-remove-buttons-multi-valued-attribute.component.mjs +0 -105
  234. package/login/components/field-errors/field-errors.component.mjs +0 -32
  235. package/login/components/group-label/group-label.component.mjs +0 -41
  236. package/login/components/hello-world/hello-world.component.d.ts +0 -5
  237. package/login/components/hello-world/hello-world.component.mjs +0 -11
  238. package/login/components/index.d.ts +0 -11
  239. package/login/components/index.mjs +0 -12
  240. package/login/components/input-field-by-type/input-field-by-type.component.mjs +0 -52
  241. package/login/components/input-tag/input-tag.component.mjs +0 -89
  242. package/login/components/input-tag-selects/input-tag-selects.component.mjs +0 -115
  243. package/login/components/logout-other-sessions/logout-other-sessions.component.mjs +0 -30
  244. package/login/components/password-wrapper/password-wrapper.component.mjs +0 -44
  245. package/login/components/select-tag/select-tag.component.mjs +0 -80
  246. package/login/components/textarea-tag/textarea-tag.component.mjs +0 -48
  247. package/login/components/user-profile-form-fields/user-profile-form-fields.component.mjs +0 -62
  248. package/login/containers/template.component.mjs +0 -71
  249. package/login/directives/index.d.ts +0 -2
  250. package/login/directives/index.mjs +0 -3
  251. package/login/pages/code/code.component.mjs +0 -32
  252. package/login/pages/delete-account-confirm/delete-account-confirm.component.mjs +0 -32
  253. package/login/pages/delete-credential/delete-credential.component.mjs +0 -37
  254. package/login/pages/error/error.component.mjs +0 -32
  255. package/login/pages/frontchannel-logout/frontchannel-logout.component.mjs +0 -41
  256. package/login/pages/idp-review-user-profile/idp-review-user-profile.component.mjs +0 -47
  257. package/login/pages/info/info.component.mjs +0 -58
  258. package/login/pages/login/login.component.mjs +0 -51
  259. package/login/pages/login-config-totp/login-config-totp.component.mjs +0 -47
  260. package/login/pages/login-idp-link-confirm/login-idp-link-confirm.component.mjs +0 -37
  261. package/login/pages/login-idp-link-confirm-override/login-idp-link-confirm-override.component.mjs +0 -37
  262. package/login/pages/login-idp-link-email/login-idp-link-email.component.mjs +0 -37
  263. package/login/pages/login-oauth-grant/login-oauth-grant.component.mjs +0 -38
  264. package/login/pages/login-oauth2-device-verify-user-code/login-oauth2-device-verify-user-code.component.mjs +0 -37
  265. package/login/pages/login-otp/login-otp.component.mjs +0 -38
  266. package/login/pages/login-page-expired/login-page-expired.component.mjs +0 -36
  267. package/login/pages/login-passkeys-conditional-authenticate/login-passkeys-conditional-authenticate.component.mjs +0 -85
  268. package/login/pages/login-password/login-password.component.mjs +0 -46
  269. package/login/pages/login-recovery-authn-code-config/login-recovery-authn-code-config.component.mjs +0 -45
  270. package/login/pages/login-recovery-authn-code-input/login-recovery-authn-code-input.component.mjs +0 -38
  271. package/login/pages/login-reset-otp/login-reset-otp.component.mjs +0 -37
  272. package/login/pages/login-reset-password/login-reset-password.component.mjs +0 -38
  273. package/login/pages/login-update-password/login-update-password.component.mjs +0 -47
  274. package/login/pages/login-update-profile/login-update-profile.component.mjs +0 -44
  275. package/login/pages/login-username/login-username.component.mjs +0 -49
  276. package/login/pages/login-verify-email/login-verify-email.component.mjs +0 -37
  277. package/login/pages/login-x509-info/login-x509-info.component.mjs +0 -37
  278. package/login/pages/logout-confirm/logout-confirm.component.mjs +0 -37
  279. package/login/pages/register/register.component.mjs +0 -55
  280. package/login/pages/saml-post-form/saml-post-form.component.mjs +0 -49
  281. package/login/pages/select-authenticator/select-authenticator.component.mjs +0 -45
  282. package/login/pages/terms/terms.component.mjs +0 -37
  283. package/login/pages/update-email/update-email.component.mjs +0 -46
  284. package/login/pages/webauthn-authenticate/webauthn-authenticate.component.mjs +0 -87
  285. package/login/pages/webauthn-error/webauthn-error.component.mjs +0 -51
  286. package/login/pages/webauthn-register/webauthn-register.component.mjs +0 -81
  287. package/login/pipes/advanced-msg-str.pipe.d.ts +0 -8
  288. package/login/pipes/advanced-msg-str.pipe.mjs +0 -19
  289. package/login/pipes/index.d.ts +0 -6
  290. package/login/pipes/index.mjs +0 -7
  291. package/login/pipes/kc-sanitize.pipe.mjs +0 -34
  292. package/login/pipes/msg-str.pipe.d.ts +0 -9
  293. package/login/pipes/msg-str.pipe.mjs +0 -19
  294. package/login/services/index.d.ts +0 -2
  295. package/login/services/index.mjs +0 -3
  296. package/login/services/login-resource-injector.service.mjs +0 -68
  297. package/login/services/user-profile-form.service.mjs +0 -1017
  298. package/src/lib/i18n.ts +0 -9
  299. package/src/lib/models/index.ts +0 -1
  300. package/src/lib/providers/keycloakify-angular.providers.ts +0 -92
  301. package/src/lib/public-api.ts +0 -12
  302. package/src/lib/services/index.ts +0 -2
  303. package/src/login/components/hello-world/hello-world.component.css +0 -0
  304. package/src/login/components/hello-world/hello-world.component.html +0 -1
  305. package/src/login/components/hello-world/hello-world.component.ts +0 -10
  306. package/src/login/components/index.ts +0 -11
  307. package/src/login/directives/index.ts +0 -2
  308. package/src/login/pipes/advanced-msg-str.pipe.ts +0 -13
  309. package/src/login/pipes/index.ts +0 -6
  310. package/src/login/pipes/msg-str.pipe.ts +0 -14
  311. package/src/login/services/index.ts +0 -2
  312. /package/lib/models/{script.model.mjs → script.model.js} +0 -0
  313. /package/lib/services/{resource-injector.service.mjs → resource-injector.service.js} +0 -0
  314. /package/login/{DefaultPage.mjs → DefaultPage.js} +0 -0
  315. /package/login/{KcContext.mjs → KcContext.js} +0 -0
  316. /package/login/classes/{component-reference.class.mjs → component-reference.class.js} +0 -0
  317. /package/login/directives/{attributes.directive.mjs → attributes.directive.js} +0 -0
  318. /package/login/directives/{kc-class.directive.mjs → kc-class.directive.js} +0 -0
  319. /package/login/{i18n.mjs → i18n.js} +0 -0
  320. /package/login/pipes/{input-type.pipe.mjs → input-type.pipe.js} +0 -0
  321. /package/login/pipes/{to-number.pipe.mjs → to-number.pipe.js} +0 -0
@@ -1,47 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, forwardRef, inject, input, signal } from '@angular/core';
2
- import { CLASSES, KC_CONTEXT, USE_DEFAULT_CSS } from '../../../lib/public-api';
3
- import { ComponentReference } from '../../../login/classes/component-reference.class';
4
- import { UserProfileFormFieldsComponent } from '../../../login/components/user-profile-form-fields/user-profile-form-fields.component';
5
- import { TemplateComponent } from '../../../login/containers/template.component';
6
- import { KcClassDirective } from '../../../login/directives/kc-class.directive';
7
- import { MsgStrPipe } from '../../../login/pipes/msg-str.pipe';
8
- import * as i0 from "@angular/core";
9
- export class IdpReviewUserProfileComponent extends ComponentReference {
10
- constructor() {
11
- super(...arguments);
12
- this.kcContext = inject(KC_CONTEXT);
13
- this.displayRequiredFields = input(true);
14
- this.documentTitle = input();
15
- this.bodyClassName = input();
16
- this.doUseDefaultCss = inject(USE_DEFAULT_CSS);
17
- this.classes = inject(CLASSES);
18
- this.isFormSubmittable = signal(false);
19
- this.displayInfo = false;
20
- this.displayMessage = !this.kcContext?.messagesPerField?.existsError('global');
21
- }
22
- onCallback() {
23
- document.getElementById('kc-register-form').submit();
24
- }
25
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: IdpReviewUserProfileComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
26
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.6", type: IdpReviewUserProfileComponent, isStandalone: true, selector: "kc-root", inputs: { displayRequiredFields: { classPropertyName: "displayRequiredFields", publicName: "displayRequiredFields", isSignal: true, isRequired: false, transformFunction: null }, documentTitle: { classPropertyName: "documentTitle", publicName: "documentTitle", isSignal: true, isRequired: false, transformFunction: null }, bodyClassName: { classPropertyName: "bodyClassName", publicName: "bodyClassName", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
27
- {
28
- provide: ComponentReference,
29
- useExisting: forwardRef(() => IdpReviewUserProfileComponent)
30
- }
31
- ], usesInheritance: true, ngImport: i0, template: "@let url = kcContext.url;\n<kc-login-template\n [displayInfo]=\"displayInfo\"\n [bodyClassName]=\"bodyClassName()\"\n [displayMessage]=\"displayMessage\"\n [displayRequiredFields]=\"displayRequiredFields()\"\n [documentTitle]=\"documentTitle()\"\n>\n <ng-container headerNode>\n {{ 'loginIdpReviewProfileTitle' | msgStr }}\n </ng-container>\n <ng-container content>\n <form\n id=\"kc-idp-review-profile-form\"\n [kcClass]=\"'kcFormClass'\"\n [action]=\"url.loginAction\"\n method=\"post\"\n >\n <kc-user-profile-form-fields (onIsFormSubmittable)=\"isFormSubmittable.set($event)\" />\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div\n id=\"kc-form-options\"\n [kcClass]=\"'kcFormOptionsClass'\"\n >\n <div [kcClass]=\"'kcFormOptionsWrapperClass'\"></div>\n </div>\n <div\n id=\"kc-form-buttons\"\n [kcClass]=\"'kcFormButtonsClass'\"\n >\n <input\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n type=\"submit\"\n value=\"{{ 'doSubmit' | msgStr }}\"\n [disabled]=\"!isFormSubmittable\"\n />\n </div>\n </div>\n </form>\n </ng-container>\n</kc-login-template>\n", dependencies: [{ kind: "component", type: TemplateComponent, selector: "kc-login-template", inputs: ["displayInfo", "displayMessage", "displayRequiredFields", "documentTitle", "bodyClassName"] }, { kind: "pipe", type: MsgStrPipe, name: "msgStr" }, { kind: "component", type: UserProfileFormFieldsComponent, selector: "kc-user-profile-form-fields", outputs: ["onIsFormSubmittable"] }, { kind: "directive", type: KcClassDirective, selector: "[kcClass]", inputs: ["class", "ngClass", "kcClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
32
- }
33
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: IdpReviewUserProfileComponent, decorators: [{
34
- type: Component,
35
- args: [{ standalone: true, imports: [
36
- TemplateComponent,
37
- MsgStrPipe,
38
- UserProfileFormFieldsComponent,
39
- KcClassDirective
40
- ], selector: 'kc-root', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
41
- {
42
- provide: ComponentReference,
43
- useExisting: forwardRef(() => IdpReviewUserProfileComponent)
44
- }
45
- ], template: "@let url = kcContext.url;\n<kc-login-template\n [displayInfo]=\"displayInfo\"\n [bodyClassName]=\"bodyClassName()\"\n [displayMessage]=\"displayMessage\"\n [displayRequiredFields]=\"displayRequiredFields()\"\n [documentTitle]=\"documentTitle()\"\n>\n <ng-container headerNode>\n {{ 'loginIdpReviewProfileTitle' | msgStr }}\n </ng-container>\n <ng-container content>\n <form\n id=\"kc-idp-review-profile-form\"\n [kcClass]=\"'kcFormClass'\"\n [action]=\"url.loginAction\"\n method=\"post\"\n >\n <kc-user-profile-form-fields (onIsFormSubmittable)=\"isFormSubmittable.set($event)\" />\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div\n id=\"kc-form-options\"\n [kcClass]=\"'kcFormOptionsClass'\"\n >\n <div [kcClass]=\"'kcFormOptionsWrapperClass'\"></div>\n </div>\n <div\n id=\"kc-form-buttons\"\n [kcClass]=\"'kcFormButtonsClass'\"\n >\n <input\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n type=\"submit\"\n value=\"{{ 'doSubmit' | msgStr }}\"\n [disabled]=\"!isFormSubmittable\"\n />\n </div>\n </div>\n </form>\n </ng-container>\n</kc-login-template>\n" }]
46
- }] });
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRwLXJldmlldy11c2VyLXByb2ZpbGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2V5Y2xvYWtpZnktYW5ndWxhci9zcmMvbG9naW4vcGFnZXMvaWRwLXJldmlldy11c2VyLXByb2ZpbGUvaWRwLXJldmlldy11c2VyLXByb2ZpbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2V5Y2xvYWtpZnktYW5ndWxhci9zcmMvbG9naW4vcGFnZXMvaWRwLXJldmlldy11c2VyLXByb2ZpbGUvaWRwLXJldmlldy11c2VyLXByb2ZpbGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDSCxPQUFPLEVBQ1AsVUFBVSxFQUNWLGVBQWUsRUFDbEIsTUFBTSxxQ0FBcUMsQ0FBQztBQUc3QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUNsRyxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxtR0FBbUcsQ0FBQztBQUNuSixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUM3RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUM1RixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0NBQStDLENBQUM7O0FBb0IzRSxNQUFNLE9BQU8sNkJBQThCLFNBQVEsa0JBQWtCO0lBbEJyRTs7UUFtQkksY0FBUyxHQUNMLE1BQU0sQ0FBZ0UsVUFBVSxDQUFDLENBQUM7UUFDdEYsMEJBQXFCLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BDLGtCQUFhLEdBQUcsS0FBSyxFQUFVLENBQUM7UUFDaEMsa0JBQWEsR0FBRyxLQUFLLEVBQVUsQ0FBQztRQUN2QixvQkFBZSxHQUFHLE1BQU0sQ0FBVSxlQUFlLENBQUMsQ0FBQztRQUNuRCxZQUFPLEdBQUcsTUFBTSxDQUFvQyxPQUFPLENBQUMsQ0FBQztRQUN0RSxzQkFBaUIsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbEMsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFDN0IsbUJBQWMsR0FBWSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0tBS3RGO0lBSEcsVUFBVTtRQUNMLFFBQVEsQ0FBQyxjQUFjLENBQUMsa0JBQWtCLENBQXFCLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDOUUsQ0FBQzs4R0FkUSw2QkFBNkI7a0dBQTdCLDZCQUE2QiwwZ0JBUDNCO1lBQ1A7Z0JBQ0ksT0FBTyxFQUFFLGtCQUFrQjtnQkFDM0IsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyw2QkFBNkIsQ0FBQzthQUMvRDtTQUNKLGlEQ3JDTCx1eUNBeUNBLDRDRGpCUSxpQkFBaUIsK0pBQ2pCLFVBQVUsK0NBQ1YsOEJBQThCLDBHQUM5QixnQkFBZ0I7OzJGQVlYLDZCQUE2QjtrQkFsQnpDLFNBQVM7aUNBQ00sSUFBSSxXQUNQO3dCQUNMLGlCQUFpQjt3QkFDakIsVUFBVTt3QkFDViw4QkFBOEI7d0JBQzlCLGdCQUFnQjtxQkFDbkIsWUFDUyxTQUFTLG1CQUVGLHVCQUF1QixDQUFDLE1BQU0sYUFDcEM7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLGtCQUFrQjs0QkFDM0IsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsOEJBQThCLENBQUM7eUJBQy9EO3FCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgZm9yd2FyZFJlZixcbiAgICBpbmplY3QsXG4gICAgaW5wdXQsXG4gICAgc2lnbmFsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBDTEFTU0VTLFxuICAgIEtDX0NPTlRFWFQsXG4gICAgVVNFX0RFRkFVTFRfQ1NTXG59IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xpYi9wdWJsaWMtYXBpJztcbmltcG9ydCB7IENsYXNzS2V5IH0gZnJvbSAna2V5Y2xvYWtpZnkvbG9naW4vbGliL2tjQ2xzeCc7XG5pbXBvcnQgeyBLY0NvbnRleHQgfSBmcm9tICdrZXljbG9ha2lmeS9sb2dpbi9LY0NvbnRleHQnO1xuaW1wb3J0IHsgQ29tcG9uZW50UmVmZXJlbmNlIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vY2xhc3Nlcy9jb21wb25lbnQtcmVmZXJlbmNlLmNsYXNzJztcbmltcG9ydCB7IFVzZXJQcm9maWxlRm9ybUZpZWxkc0NvbXBvbmVudCB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL2NvbXBvbmVudHMvdXNlci1wcm9maWxlLWZvcm0tZmllbGRzL3VzZXItcHJvZmlsZS1mb3JtLWZpZWxkcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGVtcGxhdGVDb21wb25lbnQgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9jb250YWluZXJzL3RlbXBsYXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBLY0NsYXNzRGlyZWN0aXZlIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vZGlyZWN0aXZlcy9rYy1jbGFzcy5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgTXNnU3RyUGlwZSB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL3BpcGVzL21zZy1zdHIucGlwZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBUZW1wbGF0ZUNvbXBvbmVudCxcbiAgICAgICAgTXNnU3RyUGlwZSxcbiAgICAgICAgVXNlclByb2ZpbGVGb3JtRmllbGRzQ29tcG9uZW50LFxuICAgICAgICBLY0NsYXNzRGlyZWN0aXZlXG4gICAgXSxcbiAgICBzZWxlY3RvcjogJ2tjLXJvb3QnLFxuICAgIHRlbXBsYXRlVXJsOiAnaWRwLXJldmlldy11c2VyLXByb2ZpbGUuY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBDb21wb25lbnRSZWZlcmVuY2UsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBJZHBSZXZpZXdVc2VyUHJvZmlsZUNvbXBvbmVudClcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgSWRwUmV2aWV3VXNlclByb2ZpbGVDb21wb25lbnQgZXh0ZW5kcyBDb21wb25lbnRSZWZlcmVuY2Uge1xuICAgIGtjQ29udGV4dCA9XG4gICAgICAgIGluamVjdDxFeHRyYWN0PEtjQ29udGV4dCwgeyBwYWdlSWQ6ICdpZHAtcmV2aWV3LXVzZXItcHJvZmlsZS5mdGwnIH0+PihLQ19DT05URVhUKTtcbiAgICBkaXNwbGF5UmVxdWlyZWRGaWVsZHMgPSBpbnB1dCh0cnVlKTtcbiAgICBkb2N1bWVudFRpdGxlID0gaW5wdXQ8c3RyaW5nPigpO1xuICAgIGJvZHlDbGFzc05hbWUgPSBpbnB1dDxzdHJpbmc+KCk7XG4gICAgb3ZlcnJpZGUgZG9Vc2VEZWZhdWx0Q3NzID0gaW5qZWN0PGJvb2xlYW4+KFVTRV9ERUZBVUxUX0NTUyk7XG4gICAgb3ZlcnJpZGUgY2xhc3NlcyA9IGluamVjdDxQYXJ0aWFsPFJlY29yZDxDbGFzc0tleSwgc3RyaW5nPj4+KENMQVNTRVMpO1xuICAgIGlzRm9ybVN1Ym1pdHRhYmxlID0gc2lnbmFsKGZhbHNlKTtcbiAgICBkaXNwbGF5SW5mbzogYm9vbGVhbiA9IGZhbHNlO1xuICAgIGRpc3BsYXlNZXNzYWdlOiBib29sZWFuID0gIXRoaXMua2NDb250ZXh0Py5tZXNzYWdlc1BlckZpZWxkPy5leGlzdHNFcnJvcignZ2xvYmFsJyk7XG5cbiAgICBvbkNhbGxiYWNrKCkge1xuICAgICAgICAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2tjLXJlZ2lzdGVyLWZvcm0nKSBhcyBIVE1MRm9ybUVsZW1lbnQpLnN1Ym1pdCgpO1xuICAgIH1cbn1cbiIsIkBsZXQgdXJsID0ga2NDb250ZXh0LnVybDtcbjxrYy1sb2dpbi10ZW1wbGF0ZVxuICBbZGlzcGxheUluZm9dPVwiZGlzcGxheUluZm9cIlxuICBbYm9keUNsYXNzTmFtZV09XCJib2R5Q2xhc3NOYW1lKClcIlxuICBbZGlzcGxheU1lc3NhZ2VdPVwiZGlzcGxheU1lc3NhZ2VcIlxuICBbZGlzcGxheVJlcXVpcmVkRmllbGRzXT1cImRpc3BsYXlSZXF1aXJlZEZpZWxkcygpXCJcbiAgW2RvY3VtZW50VGl0bGVdPVwiZG9jdW1lbnRUaXRsZSgpXCJcbj5cbiAgPG5nLWNvbnRhaW5lciBoZWFkZXJOb2RlPlxuICAgIHt7ICdsb2dpbklkcFJldmlld1Byb2ZpbGVUaXRsZScgfCBtc2dTdHIgfX1cbiAgPC9uZy1jb250YWluZXI+XG4gIDxuZy1jb250YWluZXIgY29udGVudD5cbiAgICA8Zm9ybVxuICAgICAgaWQ9XCJrYy1pZHAtcmV2aWV3LXByb2ZpbGUtZm9ybVwiXG4gICAgICBba2NDbGFzc109XCIna2NGb3JtQ2xhc3MnXCJcbiAgICAgIFthY3Rpb25dPVwidXJsLmxvZ2luQWN0aW9uXCJcbiAgICAgIG1ldGhvZD1cInBvc3RcIlxuICAgID5cbiAgICAgIDxrYy11c2VyLXByb2ZpbGUtZm9ybS1maWVsZHMgKG9uSXNGb3JtU3VibWl0dGFibGUpPVwiaXNGb3JtU3VibWl0dGFibGUuc2V0KCRldmVudClcIiAvPlxuICAgICAgPGRpdiBba2NDbGFzc109XCIna2NGb3JtR3JvdXBDbGFzcydcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGlkPVwia2MtZm9ybS1vcHRpb25zXCJcbiAgICAgICAgICBba2NDbGFzc109XCIna2NGb3JtT3B0aW9uc0NsYXNzJ1wiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2IFtrY0NsYXNzXT1cIidrY0Zvcm1PcHRpb25zV3JhcHBlckNsYXNzJ1wiPjwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGlkPVwia2MtZm9ybS1idXR0b25zXCJcbiAgICAgICAgICBba2NDbGFzc109XCIna2NGb3JtQnV0dG9uc0NsYXNzJ1wiXG4gICAgICAgID5cbiAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIFtrY0NsYXNzXT1cIlsna2NCdXR0b25DbGFzcycsICdrY0J1dHRvblByaW1hcnlDbGFzcycsICdrY0J1dHRvbkJsb2NrQ2xhc3MnLCAna2NCdXR0b25MYXJnZUNsYXNzJ11cIlxuICAgICAgICAgICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgICAgICAgICB2YWx1ZT1cInt7ICdkb1N1Ym1pdCcgfCBtc2dTdHIgfX1cIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFpc0Zvcm1TdWJtaXR0YWJsZVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Zvcm0+XG4gIDwvbmctY29udGFpbmVyPlxuPC9rYy1sb2dpbi10ZW1wbGF0ZT5cbiJdfQ==
@@ -1,58 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, forwardRef, inject, input } from '@angular/core';
2
- import { CLASSES, KC_CONTEXT, USE_DEFAULT_CSS } from '../../../lib/public-api';
3
- import { ComponentReference } from '../../../login/classes/component-reference.class';
4
- import { TemplateComponent } from '../../../login/containers/template.component';
5
- import { AdvancedMsgStrPipe } from '../../../login/pipes/advanced-msg-str.pipe';
6
- import { KcSanitizePipe } from '../../../login/pipes/kc-sanitize.pipe';
7
- import { MsgStrPipe } from '../../../login/pipes/msg-str.pipe';
8
- import * as i0 from "@angular/core";
9
- export class InfoComponent extends ComponentReference {
10
- constructor() {
11
- super(...arguments);
12
- this.kcContext = inject(KC_CONTEXT);
13
- this.advancedMsgStr = inject(AdvancedMsgStrPipe);
14
- this.kcSanitize = inject(KcSanitizePipe);
15
- this.msgStr = inject(MsgStrPipe);
16
- this.doUseDefaultCss = inject(USE_DEFAULT_CSS);
17
- this.classes = inject(CLASSES);
18
- this.displayRequiredFields = input(false);
19
- this.documentTitle = input();
20
- this.bodyClassName = input();
21
- this.displayInfo = false;
22
- this.displayMessage = false;
23
- }
24
- get infoMessage() {
25
- let html = this.kcContext.message.summary;
26
- if (this.kcContext.requiredActions) {
27
- html += '<b>';
28
- html += this.kcContext.requiredActions
29
- .map(requiredAction => this.advancedMsgStr.transform(`requiredAction.${requiredAction}`))
30
- .join(', ');
31
- html += '</b>';
32
- }
33
- return html;
34
- }
35
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: InfoComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
36
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.6", type: InfoComponent, isStandalone: true, selector: "kc-root", inputs: { displayRequiredFields: { classPropertyName: "displayRequiredFields", publicName: "displayRequiredFields", isSignal: true, isRequired: false, transformFunction: null }, documentTitle: { classPropertyName: "documentTitle", publicName: "documentTitle", isSignal: true, isRequired: false, transformFunction: null }, bodyClassName: { classPropertyName: "bodyClassName", publicName: "bodyClassName", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
37
- AdvancedMsgStrPipe,
38
- MsgStrPipe,
39
- KcSanitizePipe,
40
- {
41
- provide: ComponentReference,
42
- useExisting: forwardRef(() => InfoComponent)
43
- }
44
- ], usesInheritance: true, ngImport: i0, template: "@let skipLink = kcContext.skipLink;\n@let actionUri = kcContext.actionUri;\n@let pageRedirectUri = kcContext.pageRedirectUri;\n@let client = kcContext.client;\n@let messageHeader = kcContext.messageHeader;\n@let message = kcContext.message;\n<kc-login-template\n [displayInfo]=\"displayInfo\"\n [bodyClassName]=\"bodyClassName()\"\n [displayMessage]=\"displayMessage\"\n [displayRequiredFields]=\"displayRequiredFields()\"\n [documentTitle]=\"documentTitle()\"\n>\n <ng-container headerNode>\n <span [innerHTML]=\"messageHeader ?? message.summary | advancedMsgStr | kcSanitize: 'html'\"> </span>\n </ng-container>\n <ng-container content>\n <div id=\"kc-info-message\">\n <p\n class=\"instruction\"\n [innerHTML]=\"infoMessage | kcSanitize: 'html'\"\n ></p>\n @if (!skipLink) {\n @if (pageRedirectUri) {\n <p>\n <a\n [href]=\"pageRedirectUri\"\n [innerHTML]=\"'backToApplication' | msgStr | kcSanitize: 'html'\"\n >\n </a>\n </p>\n }\n @if (actionUri) {\n <p>\n <a\n [href]=\"actionUri\"\n [innerHTML]=\"'proceedWithAction' | msgStr | kcSanitize: 'html'\"\n >\n </a>\n </p>\n }\n @if (client.baseUrl) {\n <p>\n <a\n [href]=\"client.baseUrl\"\n [innerHTML]=\"'backToApplication' | msgStr | kcSanitize: 'html'\"\n >\n </a>\n </p>\n }\n }\n </div>\n </ng-container>\n</kc-login-template>\n", dependencies: [{ kind: "component", type: TemplateComponent, selector: "kc-login-template", inputs: ["displayInfo", "displayMessage", "displayRequiredFields", "documentTitle", "bodyClassName"] }, { kind: "pipe", type: MsgStrPipe, name: "msgStr" }, { kind: "pipe", type: KcSanitizePipe, name: "kcSanitize" }, { kind: "pipe", type: AdvancedMsgStrPipe, name: "advancedMsgStr" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
45
- }
46
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: InfoComponent, decorators: [{
47
- type: Component,
48
- args: [{ standalone: true, imports: [TemplateComponent, MsgStrPipe, KcSanitizePipe, AdvancedMsgStrPipe], selector: 'kc-root', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
49
- AdvancedMsgStrPipe,
50
- MsgStrPipe,
51
- KcSanitizePipe,
52
- {
53
- provide: ComponentReference,
54
- useExisting: forwardRef(() => InfoComponent)
55
- }
56
- ], template: "@let skipLink = kcContext.skipLink;\n@let actionUri = kcContext.actionUri;\n@let pageRedirectUri = kcContext.pageRedirectUri;\n@let client = kcContext.client;\n@let messageHeader = kcContext.messageHeader;\n@let message = kcContext.message;\n<kc-login-template\n [displayInfo]=\"displayInfo\"\n [bodyClassName]=\"bodyClassName()\"\n [displayMessage]=\"displayMessage\"\n [displayRequiredFields]=\"displayRequiredFields()\"\n [documentTitle]=\"documentTitle()\"\n>\n <ng-container headerNode>\n <span [innerHTML]=\"messageHeader ?? message.summary | advancedMsgStr | kcSanitize: 'html'\"> </span>\n </ng-container>\n <ng-container content>\n <div id=\"kc-info-message\">\n <p\n class=\"instruction\"\n [innerHTML]=\"infoMessage | kcSanitize: 'html'\"\n ></p>\n @if (!skipLink) {\n @if (pageRedirectUri) {\n <p>\n <a\n [href]=\"pageRedirectUri\"\n [innerHTML]=\"'backToApplication' | msgStr | kcSanitize: 'html'\"\n >\n </a>\n </p>\n }\n @if (actionUri) {\n <p>\n <a\n [href]=\"actionUri\"\n [innerHTML]=\"'proceedWithAction' | msgStr | kcSanitize: 'html'\"\n >\n </a>\n </p>\n }\n @if (client.baseUrl) {\n <p>\n <a\n [href]=\"client.baseUrl\"\n [innerHTML]=\"'backToApplication' | msgStr | kcSanitize: 'html'\"\n >\n </a>\n </p>\n }\n }\n </div>\n </ng-container>\n</kc-login-template>\n" }]
57
- }] });
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5mby5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rZXljbG9ha2lmeS1hbmd1bGFyL3NyYy9sb2dpbi9wYWdlcy9pbmZvL2luZm8uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2V5Y2xvYWtpZnktYW5ndWxhci9zcmMvbG9naW4vcGFnZXMvaW5mby9pbmZvLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUNSLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDSCxPQUFPLEVBQ1AsVUFBVSxFQUNWLGVBQWUsRUFDbEIsTUFBTSxxQ0FBcUMsQ0FBQztBQUc3QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUNsRyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUM3RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUM1RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDbkYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtDQUErQyxDQUFDOztBQWtCM0UsTUFBTSxPQUFPLGFBQWMsU0FBUSxrQkFBa0I7SUFoQnJEOztRQWlCSSxjQUFTLEdBQUcsTUFBTSxDQUE2QyxVQUFVLENBQUMsQ0FBQztRQUMzRSxtQkFBYyxHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQzVDLGVBQVUsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDcEMsV0FBTSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNuQixvQkFBZSxHQUFHLE1BQU0sQ0FBVSxlQUFlLENBQUMsQ0FBQztRQUNuRCxZQUFPLEdBQUcsTUFBTSxDQUFvQyxPQUFPLENBQUMsQ0FBQztRQUN0RSwwQkFBcUIsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckMsa0JBQWEsR0FBRyxLQUFLLEVBQVUsQ0FBQztRQUNoQyxrQkFBYSxHQUFHLEtBQUssRUFBVSxDQUFDO1FBQ2hDLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBQzdCLG1CQUFjLEdBQVksS0FBSyxDQUFDO0tBaUJuQztJQWZHLElBQUksV0FBVztRQUNYLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQztRQUMxQyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDakMsSUFBSSxJQUFJLEtBQUssQ0FBQztZQUVkLElBQUksSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLGVBQWU7aUJBQ2pDLEdBQUcsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUNsQixJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsY0FBYyxFQUFFLENBQUMsQ0FDcEU7aUJBQ0EsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBRWhCLElBQUksSUFBSSxNQUFNLENBQUM7UUFDbkIsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7OEdBM0JRLGFBQWE7a0dBQWIsYUFBYSwwZ0JBVlg7WUFDUCxrQkFBa0I7WUFDbEIsVUFBVTtZQUNWLGNBQWM7WUFDZDtnQkFDSSxPQUFPLEVBQUUsa0JBQWtCO2dCQUMzQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGFBQWEsQ0FBQzthQUMvQztTQUNKLGlEQ2xDTCw2a0RBc0RBLDRDRGhDYyxpQkFBaUIsK0pBQUUsVUFBVSwwQ0FBRSxjQUFjLDhDQUFFLGtCQUFrQjs7MkZBY2xFLGFBQWE7a0JBaEJ6QixTQUFTO2lDQUNNLElBQUksV0FDUCxDQUFDLGlCQUFpQixFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsa0JBQWtCLENBQUMsWUFDbEUsU0FBUyxtQkFFRix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDO3dCQUNQLGtCQUFrQjt3QkFDbEIsVUFBVTt3QkFDVixjQUFjO3dCQUNkOzRCQUNJLE9BQU8sRUFBRSxrQkFBa0I7NEJBQzNCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLGNBQWMsQ0FBQzt5QkFDL0M7cUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBmb3J3YXJkUmVmLFxuICAgIGluamVjdCxcbiAgICBpbnB1dFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgQ0xBU1NFUyxcbiAgICBLQ19DT05URVhULFxuICAgIFVTRV9ERUZBVUxUX0NTU1xufSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9saWIvcHVibGljLWFwaSc7XG5pbXBvcnQgeyBDbGFzc0tleSB9IGZyb20gJ2tleWNsb2FraWZ5L2xvZ2luL2xpYi9rY0Nsc3gnO1xuaW1wb3J0IHsgS2NDb250ZXh0IH0gZnJvbSAna2V5Y2xvYWtpZnkvbG9naW4vS2NDb250ZXh0JztcbmltcG9ydCB7IENvbXBvbmVudFJlZmVyZW5jZSB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL2NsYXNzZXMvY29tcG9uZW50LXJlZmVyZW5jZS5jbGFzcyc7XG5pbXBvcnQgeyBUZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL2NvbnRhaW5lcnMvdGVtcGxhdGUuY29tcG9uZW50JztcbmltcG9ydCB7IEFkdmFuY2VkTXNnU3RyUGlwZSB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL3BpcGVzL2FkdmFuY2VkLW1zZy1zdHIucGlwZSc7XG5pbXBvcnQgeyBLY1Nhbml0aXplUGlwZSB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL3BpcGVzL2tjLXNhbml0aXplLnBpcGUnO1xuaW1wb3J0IHsgTXNnU3RyUGlwZSB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL3BpcGVzL21zZy1zdHIucGlwZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1RlbXBsYXRlQ29tcG9uZW50LCBNc2dTdHJQaXBlLCBLY1Nhbml0aXplUGlwZSwgQWR2YW5jZWRNc2dTdHJQaXBlXSxcbiAgICBzZWxlY3RvcjogJ2tjLXJvb3QnLFxuICAgIHRlbXBsYXRlVXJsOiAnaW5mby5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIEFkdmFuY2VkTXNnU3RyUGlwZSxcbiAgICAgICAgTXNnU3RyUGlwZSxcbiAgICAgICAgS2NTYW5pdGl6ZVBpcGUsXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IENvbXBvbmVudFJlZmVyZW5jZSxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEluZm9Db21wb25lbnQpXG4gICAgICAgIH1cbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIEluZm9Db21wb25lbnQgZXh0ZW5kcyBDb21wb25lbnRSZWZlcmVuY2Uge1xuICAgIGtjQ29udGV4dCA9IGluamVjdDxFeHRyYWN0PEtjQ29udGV4dCwgeyBwYWdlSWQ6ICdpbmZvLmZ0bCcgfT4+KEtDX0NPTlRFWFQpO1xuICAgIGFkdmFuY2VkTXNnU3RyID0gaW5qZWN0KEFkdmFuY2VkTXNnU3RyUGlwZSk7XG4gICAga2NTYW5pdGl6ZSA9IGluamVjdChLY1Nhbml0aXplUGlwZSk7XG4gICAgbXNnU3RyID0gaW5qZWN0KE1zZ1N0clBpcGUpO1xuICAgIG92ZXJyaWRlIGRvVXNlRGVmYXVsdENzcyA9IGluamVjdDxib29sZWFuPihVU0VfREVGQVVMVF9DU1MpO1xuICAgIG92ZXJyaWRlIGNsYXNzZXMgPSBpbmplY3Q8UGFydGlhbDxSZWNvcmQ8Q2xhc3NLZXksIHN0cmluZz4+PihDTEFTU0VTKTtcbiAgICBkaXNwbGF5UmVxdWlyZWRGaWVsZHMgPSBpbnB1dChmYWxzZSk7XG4gICAgZG9jdW1lbnRUaXRsZSA9IGlucHV0PHN0cmluZz4oKTtcbiAgICBib2R5Q2xhc3NOYW1lID0gaW5wdXQ8c3RyaW5nPigpO1xuICAgIGRpc3BsYXlJbmZvOiBib29sZWFuID0gZmFsc2U7XG4gICAgZGlzcGxheU1lc3NhZ2U6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIGdldCBpbmZvTWVzc2FnZSgpIHtcbiAgICAgICAgbGV0IGh0bWwgPSB0aGlzLmtjQ29udGV4dC5tZXNzYWdlLnN1bW1hcnk7XG4gICAgICAgIGlmICh0aGlzLmtjQ29udGV4dC5yZXF1aXJlZEFjdGlvbnMpIHtcbiAgICAgICAgICAgIGh0bWwgKz0gJzxiPic7XG5cbiAgICAgICAgICAgIGh0bWwgKz0gdGhpcy5rY0NvbnRleHQucmVxdWlyZWRBY3Rpb25zXG4gICAgICAgICAgICAgICAgLm1hcChyZXF1aXJlZEFjdGlvbiA9PlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmFkdmFuY2VkTXNnU3RyLnRyYW5zZm9ybShgcmVxdWlyZWRBY3Rpb24uJHtyZXF1aXJlZEFjdGlvbn1gKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAuam9pbignLCAnKTtcblxuICAgICAgICAgICAgaHRtbCArPSAnPC9iPic7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGh0bWw7XG4gICAgfVxufVxuIiwiQGxldCBza2lwTGluayA9IGtjQ29udGV4dC5za2lwTGluaztcbkBsZXQgYWN0aW9uVXJpID0ga2NDb250ZXh0LmFjdGlvblVyaTtcbkBsZXQgcGFnZVJlZGlyZWN0VXJpID0ga2NDb250ZXh0LnBhZ2VSZWRpcmVjdFVyaTtcbkBsZXQgY2xpZW50ID0ga2NDb250ZXh0LmNsaWVudDtcbkBsZXQgbWVzc2FnZUhlYWRlciA9IGtjQ29udGV4dC5tZXNzYWdlSGVhZGVyO1xuQGxldCBtZXNzYWdlID0ga2NDb250ZXh0Lm1lc3NhZ2U7XG48a2MtbG9naW4tdGVtcGxhdGVcbiAgW2Rpc3BsYXlJbmZvXT1cImRpc3BsYXlJbmZvXCJcbiAgW2JvZHlDbGFzc05hbWVdPVwiYm9keUNsYXNzTmFtZSgpXCJcbiAgW2Rpc3BsYXlNZXNzYWdlXT1cImRpc3BsYXlNZXNzYWdlXCJcbiAgW2Rpc3BsYXlSZXF1aXJlZEZpZWxkc109XCJkaXNwbGF5UmVxdWlyZWRGaWVsZHMoKVwiXG4gIFtkb2N1bWVudFRpdGxlXT1cImRvY3VtZW50VGl0bGUoKVwiXG4+XG4gIDxuZy1jb250YWluZXIgaGVhZGVyTm9kZT5cbiAgICA8c3BhbiBbaW5uZXJIVE1MXT1cIm1lc3NhZ2VIZWFkZXIgPz8gbWVzc2FnZS5zdW1tYXJ5IHwgYWR2YW5jZWRNc2dTdHIgfCBrY1Nhbml0aXplOiAnaHRtbCdcIj4gPC9zcGFuPlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPG5nLWNvbnRhaW5lciBjb250ZW50PlxuICAgIDxkaXYgaWQ9XCJrYy1pbmZvLW1lc3NhZ2VcIj5cbiAgICAgIDxwXG4gICAgICAgIGNsYXNzPVwiaW5zdHJ1Y3Rpb25cIlxuICAgICAgICBbaW5uZXJIVE1MXT1cImluZm9NZXNzYWdlIHwga2NTYW5pdGl6ZTogJ2h0bWwnXCJcbiAgICAgID48L3A+XG4gICAgICBAaWYgKCFza2lwTGluaykge1xuICAgICAgICBAaWYgKHBhZ2VSZWRpcmVjdFVyaSkge1xuICAgICAgICAgIDxwPlxuICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgW2hyZWZdPVwicGFnZVJlZGlyZWN0VXJpXCJcbiAgICAgICAgICAgICAgW2lubmVySFRNTF09XCInYmFja1RvQXBwbGljYXRpb24nIHwgbXNnU3RyIHwga2NTYW5pdGl6ZTogJ2h0bWwnXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICA8L3A+XG4gICAgICAgIH1cbiAgICAgICAgQGlmIChhY3Rpb25VcmkpIHtcbiAgICAgICAgICA8cD5cbiAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgIFtocmVmXT1cImFjdGlvblVyaVwiXG4gICAgICAgICAgICAgIFtpbm5lckhUTUxdPVwiJ3Byb2NlZWRXaXRoQWN0aW9uJyB8IG1zZ1N0ciB8IGtjU2FuaXRpemU6ICdodG1sJ1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgICAgPC9wPlxuICAgICAgICB9XG4gICAgICAgIEBpZiAoY2xpZW50LmJhc2VVcmwpIHtcbiAgICAgICAgICA8cD5cbiAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgIFtocmVmXT1cImNsaWVudC5iYXNlVXJsXCJcbiAgICAgICAgICAgICAgW2lubmVySFRNTF09XCInYmFja1RvQXBwbGljYXRpb24nIHwgbXNnU3RyIHwga2NTYW5pdGl6ZTogJ2h0bWwnXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICA8L3A+XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG48L2tjLWxvZ2luLXRlbXBsYXRlPlxuIl19
@@ -1,51 +0,0 @@
1
- import { AsyncPipe, NgClass } from '@angular/common';
2
- import { ChangeDetectionStrategy, Component, forwardRef, inject, input, signal } from '@angular/core';
3
- import { CLASSES, KC_CONTEXT, USE_DEFAULT_CSS } from '../../../lib/public-api';
4
- import { ComponentReference } from '../../../login/classes/component-reference.class';
5
- import { PasswordWrapperComponent } from '../../../login/components/password-wrapper/password-wrapper.component';
6
- import { TemplateComponent } from '../../../login/containers/template.component';
7
- import { KcClassDirective } from '../../../login/directives/kc-class.directive';
8
- import { KcSanitizePipe } from '../../../login/pipes/kc-sanitize.pipe';
9
- import { MsgStrPipe } from '../../../login/pipes/msg-str.pipe';
10
- import * as i0 from "@angular/core";
11
- export class LoginComponent extends ComponentReference {
12
- constructor() {
13
- super(...arguments);
14
- this.kcContext = inject(KC_CONTEXT);
15
- this.displayRequiredFields = input(false);
16
- this.documentTitle = input();
17
- this.bodyClassName = input();
18
- this.doUseDefaultCss = inject(USE_DEFAULT_CSS);
19
- this.classes = inject(CLASSES);
20
- this.isLoginButtonDisabled = signal(false);
21
- this.displayInfo = !!this.kcContext?.realm?.password &&
22
- !!this.kcContext?.realm?.registrationAllowed &&
23
- !this.kcContext?.registrationDisabled;
24
- this.displayMessage = !this.kcContext?.messagesPerField?.existsError('username', 'password');
25
- }
26
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: LoginComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
27
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.6", type: LoginComponent, isStandalone: true, selector: "kc-root", inputs: { displayRequiredFields: { classPropertyName: "displayRequiredFields", publicName: "displayRequiredFields", isSignal: true, isRequired: false, transformFunction: null }, documentTitle: { classPropertyName: "documentTitle", publicName: "documentTitle", isSignal: true, isRequired: false, transformFunction: null }, bodyClassName: { classPropertyName: "bodyClassName", publicName: "bodyClassName", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
28
- {
29
- provide: ComponentReference,
30
- useExisting: forwardRef(() => LoginComponent)
31
- }
32
- ], usesInheritance: true, ngImport: i0, template: "@let realm = kcContext.realm;\n@let social = kcContext.social;\n@let usernameHidden = kcContext.usernameHidden;\n@let auth = kcContext.auth;\n@let messagesPerField = kcContext.messagesPerField;\n@let url = kcContext.url;\n@let login = kcContext.login;\n\n<kc-login-template\n [displayInfo]=\"displayInfo\"\n [bodyClassName]=\"bodyClassName()\"\n [displayMessage]=\"displayMessage\"\n [displayRequiredFields]=\"displayRequiredFields()\"\n [documentTitle]=\"documentTitle()\"\n>\n <ng-container headerNode>\n {{ 'loginAccountTitle' | msgStr }}\n </ng-container>\n <ng-container infoNode>\n <div id=\"kc-registration-container\">\n <div id=\"kc-registration\">\n <span>\n {{ 'noAccount' | msgStr }}\n <a\n tabindex=\"8\"\n [href]=\"url?.registrationUrl\"\n >\n {{ 'doRegister' | msgStr }}\n </a>\n </span>\n </div>\n </div>\n </ng-container>\n <ng-container socialProvidersNode>\n @if (!!realm?.password && !!social?.providers?.length) {\n <div\n id=\"kc-social-providers\"\n [kcClass]=\"'kcFormSocialAccountSectionClass'\"\n >\n <hr />\n <h2>{{ 'identity-provider-login-label' | msgStr }}</h2>\n <ul\n [kcClass]=\"{\n kcFormSocialAccountListClass: true,\n kcFormSocialAccountListGridClass: (social?.providers?.length ?? 0) > 3,\n }\"\n >\n @for (provider of social?.providers; track provider.alias; let idx = $index) {\n <li>\n <a\n [id]=\"provider.alias\"\n [kcClass]=\"{\n kcFormSocialAccountListButtonClass: true,\n kcFormSocialAccountGridItem: (social?.providers?.length ?? 0) > 3,\n }\"\n type=\"button\"\n [href]=\"provider.loginUrl\"\n >\n @if (provider.iconClasses) {\n <i\n [ngClass]=\"provider.iconClasses\"\n [kcClass]=\"'kcCommonLogoIdP'\"\n aria-hidden=\"true\"\n ></i>\n }\n <span\n [ngClass]=\"{\n 'kc-social-icon-text': provider.iconClasses,\n }\"\n [kcClass]=\"'kcFormSocialAccountNameClass'\"\n [innerHTML]=\"provider.displayName | kcSanitize: 'html'\"\n ></span>\n </a>\n </li>\n }\n </ul>\n </div>\n }\n </ng-container>\n <ng-container content>\n <div id=\"kc-form\">\n <div id=\"kc-form-wrapper\">\n <!-- login.component.html -->\n @if (realm?.password) {\n <form\n id=\"kc-form-login\"\n (onSubmit)=\"isLoginButtonDisabled.set(true)\"\n [action]=\"url?.loginAction\"\n method=\"post\"\n >\n @if (!usernameHidden) {\n <div [kcClass]=\"'kcFormGroupClass'\">\n <label\n for=\"username\"\n [kcClass]=\"'kcLabelClass'\"\n >\n @if (!realm?.loginWithEmailAllowed) {\n {{ 'username' | msgStr }}\n } @else if (!realm?.registrationEmailAsUsername) {\n {{ 'usernameOrEmail' | msgStr }}\n } @else {\n {{ 'email' | msgStr }}\n }\n </label>\n <input\n tabindex=\"2\"\n id=\"username\"\n [kcClass]=\"'kcInputClass'\"\n name=\"username\"\n type=\"text\"\n autofocus\n [defaultValue]=\"login?.username || ''\"\n [attr.aria-invalid]=\"messagesPerField?.existsError('username', 'password')\"\n />\n @if (messagesPerField?.existsError('username', 'password')) {\n <span\n id=\"input-error\"\n [kcClass]=\"'kcInputErrorMessageClass'\"\n aria-live=\"polite\"\n [innerHTML]=\"messagesPerField?.getFirstError('username', 'password') | kcSanitize: 'html'\"\n >\n </span>\n }\n </div>\n }\n\n <div [kcClass]=\"'kcFormGroupClass'\">\n <label\n for=\"password\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ 'password' | msgStr }}\n </label>\n\n <kc-password-wrapper passwordInputId=\"password\">\n <input\n tabindex=\"3\"\n id=\"password\"\n [kcClass]=\"'kcInputClass'\"\n name=\"password\"\n type=\"password\"\n autocomplete=\"off\"\n [attr.aria-invalid]=\"messagesPerField.existsError('username', 'password')\"\n />\n </kc-password-wrapper>\n @if (usernameHidden && messagesPerField?.existsError('username', 'password')) {\n <span\n id=\"input-error\"\n [kcClass]=\"'kcInputErrorMessageClass'\"\n aria-live=\"polite\"\n [innerHTML]=\"messagesPerField?.getFirstError('username', 'password') | kcSanitize: 'html'\"\n >\n </span>\n }\n </div>\n\n <div [kcClass]=\"['kcFormGroupClass', 'kcFormSettingClass']\">\n <div id=\"kc-form-options\">\n @if (realm?.rememberMe && !usernameHidden) {\n <div class=\"checkbox\">\n <label>\n <input\n tabindex=\"5\"\n id=\"rememberMe\"\n name=\"rememberMe\"\n type=\"checkbox\"\n [defaultChecked]=\"!!login?.rememberMe\"\n />\n {{ 'rememberMe' | msgStr }}\n </label>\n </div>\n }\n </div>\n\n <div [kcClass]=\"'kcFormOptionsWrapperClass'\">\n @if (realm?.resetPasswordAllowed) {\n <span>\n <a\n tabindex=\"6\"\n [href]=\"url?.loginResetCredentialsUrl\"\n >{{ 'doForgotPassword' | msgStr }}</a\n >\n </span>\n }\n </div>\n </div>\n <div\n id=\"kc-form-buttons\"\n [kcClass]=\"'kcFormGroupClass'\"\n >\n <input\n type=\"hidden\"\n id=\"id-hidden-input\"\n name=\"credentialId\"\n [value]=\"auth?.selectedCredential\"\n />\n <input\n tabindex=\"7\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n name=\"login\"\n id=\"kc-login\"\n type=\"submit\"\n [value]=\"'doLogIn' | msgStr\"\n [disabled]=\"isLoginButtonDisabled()\"\n />\n </div>\n </form>\n }\n </div>\n </div>\n </ng-container>\n</kc-login-template>\n", dependencies: [{ kind: "directive", type: KcClassDirective, selector: "[kcClass]", inputs: ["class", "ngClass", "kcClass"] }, { kind: "pipe", type: KcSanitizePipe, name: "kcSanitize" }, { kind: "component", type: PasswordWrapperComponent, selector: "kc-password-wrapper", inputs: ["passwordInputId"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: TemplateComponent, selector: "kc-login-template", inputs: ["displayInfo", "displayMessage", "displayRequiredFields", "documentTitle", "bodyClassName"] }, { kind: "pipe", type: MsgStrPipe, name: "msgStr" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
33
- }
34
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: LoginComponent, decorators: [{
35
- type: Component,
36
- args: [{ selector: 'kc-root', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [
37
- KcClassDirective,
38
- AsyncPipe,
39
- KcSanitizePipe,
40
- PasswordWrapperComponent,
41
- NgClass,
42
- TemplateComponent,
43
- MsgStrPipe
44
- ], providers: [
45
- {
46
- provide: ComponentReference,
47
- useExisting: forwardRef(() => LoginComponent)
48
- }
49
- ], template: "@let realm = kcContext.realm;\n@let social = kcContext.social;\n@let usernameHidden = kcContext.usernameHidden;\n@let auth = kcContext.auth;\n@let messagesPerField = kcContext.messagesPerField;\n@let url = kcContext.url;\n@let login = kcContext.login;\n\n<kc-login-template\n [displayInfo]=\"displayInfo\"\n [bodyClassName]=\"bodyClassName()\"\n [displayMessage]=\"displayMessage\"\n [displayRequiredFields]=\"displayRequiredFields()\"\n [documentTitle]=\"documentTitle()\"\n>\n <ng-container headerNode>\n {{ 'loginAccountTitle' | msgStr }}\n </ng-container>\n <ng-container infoNode>\n <div id=\"kc-registration-container\">\n <div id=\"kc-registration\">\n <span>\n {{ 'noAccount' | msgStr }}\n <a\n tabindex=\"8\"\n [href]=\"url?.registrationUrl\"\n >\n {{ 'doRegister' | msgStr }}\n </a>\n </span>\n </div>\n </div>\n </ng-container>\n <ng-container socialProvidersNode>\n @if (!!realm?.password && !!social?.providers?.length) {\n <div\n id=\"kc-social-providers\"\n [kcClass]=\"'kcFormSocialAccountSectionClass'\"\n >\n <hr />\n <h2>{{ 'identity-provider-login-label' | msgStr }}</h2>\n <ul\n [kcClass]=\"{\n kcFormSocialAccountListClass: true,\n kcFormSocialAccountListGridClass: (social?.providers?.length ?? 0) > 3,\n }\"\n >\n @for (provider of social?.providers; track provider.alias; let idx = $index) {\n <li>\n <a\n [id]=\"provider.alias\"\n [kcClass]=\"{\n kcFormSocialAccountListButtonClass: true,\n kcFormSocialAccountGridItem: (social?.providers?.length ?? 0) > 3,\n }\"\n type=\"button\"\n [href]=\"provider.loginUrl\"\n >\n @if (provider.iconClasses) {\n <i\n [ngClass]=\"provider.iconClasses\"\n [kcClass]=\"'kcCommonLogoIdP'\"\n aria-hidden=\"true\"\n ></i>\n }\n <span\n [ngClass]=\"{\n 'kc-social-icon-text': provider.iconClasses,\n }\"\n [kcClass]=\"'kcFormSocialAccountNameClass'\"\n [innerHTML]=\"provider.displayName | kcSanitize: 'html'\"\n ></span>\n </a>\n </li>\n }\n </ul>\n </div>\n }\n </ng-container>\n <ng-container content>\n <div id=\"kc-form\">\n <div id=\"kc-form-wrapper\">\n <!-- login.component.html -->\n @if (realm?.password) {\n <form\n id=\"kc-form-login\"\n (onSubmit)=\"isLoginButtonDisabled.set(true)\"\n [action]=\"url?.loginAction\"\n method=\"post\"\n >\n @if (!usernameHidden) {\n <div [kcClass]=\"'kcFormGroupClass'\">\n <label\n for=\"username\"\n [kcClass]=\"'kcLabelClass'\"\n >\n @if (!realm?.loginWithEmailAllowed) {\n {{ 'username' | msgStr }}\n } @else if (!realm?.registrationEmailAsUsername) {\n {{ 'usernameOrEmail' | msgStr }}\n } @else {\n {{ 'email' | msgStr }}\n }\n </label>\n <input\n tabindex=\"2\"\n id=\"username\"\n [kcClass]=\"'kcInputClass'\"\n name=\"username\"\n type=\"text\"\n autofocus\n [defaultValue]=\"login?.username || ''\"\n [attr.aria-invalid]=\"messagesPerField?.existsError('username', 'password')\"\n />\n @if (messagesPerField?.existsError('username', 'password')) {\n <span\n id=\"input-error\"\n [kcClass]=\"'kcInputErrorMessageClass'\"\n aria-live=\"polite\"\n [innerHTML]=\"messagesPerField?.getFirstError('username', 'password') | kcSanitize: 'html'\"\n >\n </span>\n }\n </div>\n }\n\n <div [kcClass]=\"'kcFormGroupClass'\">\n <label\n for=\"password\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ 'password' | msgStr }}\n </label>\n\n <kc-password-wrapper passwordInputId=\"password\">\n <input\n tabindex=\"3\"\n id=\"password\"\n [kcClass]=\"'kcInputClass'\"\n name=\"password\"\n type=\"password\"\n autocomplete=\"off\"\n [attr.aria-invalid]=\"messagesPerField.existsError('username', 'password')\"\n />\n </kc-password-wrapper>\n @if (usernameHidden && messagesPerField?.existsError('username', 'password')) {\n <span\n id=\"input-error\"\n [kcClass]=\"'kcInputErrorMessageClass'\"\n aria-live=\"polite\"\n [innerHTML]=\"messagesPerField?.getFirstError('username', 'password') | kcSanitize: 'html'\"\n >\n </span>\n }\n </div>\n\n <div [kcClass]=\"['kcFormGroupClass', 'kcFormSettingClass']\">\n <div id=\"kc-form-options\">\n @if (realm?.rememberMe && !usernameHidden) {\n <div class=\"checkbox\">\n <label>\n <input\n tabindex=\"5\"\n id=\"rememberMe\"\n name=\"rememberMe\"\n type=\"checkbox\"\n [defaultChecked]=\"!!login?.rememberMe\"\n />\n {{ 'rememberMe' | msgStr }}\n </label>\n </div>\n }\n </div>\n\n <div [kcClass]=\"'kcFormOptionsWrapperClass'\">\n @if (realm?.resetPasswordAllowed) {\n <span>\n <a\n tabindex=\"6\"\n [href]=\"url?.loginResetCredentialsUrl\"\n >{{ 'doForgotPassword' | msgStr }}</a\n >\n </span>\n }\n </div>\n </div>\n <div\n id=\"kc-form-buttons\"\n [kcClass]=\"'kcFormGroupClass'\"\n >\n <input\n type=\"hidden\"\n id=\"id-hidden-input\"\n name=\"credentialId\"\n [value]=\"auth?.selectedCredential\"\n />\n <input\n tabindex=\"7\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n name=\"login\"\n id=\"kc-login\"\n type=\"submit\"\n [value]=\"'doLogIn' | msgStr\"\n [disabled]=\"isLoginButtonDisabled()\"\n />\n </div>\n </form>\n }\n </div>\n </div>\n </ng-container>\n</kc-login-template>\n" }]
50
- }] });
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2V5Y2xvYWtpZnktYW5ndWxhci9zcmMvbG9naW4vcGFnZXMvbG9naW4vbG9naW4uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2V5Y2xvYWtpZnktYW5ndWxhci9zcmMvbG9naW4vcGFnZXMvbG9naW4vbG9naW4uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRCxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNILE9BQU8sRUFDUCxVQUFVLEVBQ1YsZUFBZSxFQUNsQixNQUFNLHFDQUFxQyxDQUFDO0FBRzdDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBQ2xHLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG1GQUFtRixDQUFDO0FBQzdILE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQzdGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQzVGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUNuRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0NBQStDLENBQUM7O0FBdUIzRSxNQUFNLE9BQU8sY0FBZSxTQUFRLGtCQUFrQjtJQXJCdEQ7O1FBc0JJLGNBQVMsR0FBRyxNQUFNLENBQThDLFVBQVUsQ0FBQyxDQUFDO1FBQzVFLDBCQUFxQixHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQyxrQkFBYSxHQUFHLEtBQUssRUFBVSxDQUFDO1FBQ2hDLGtCQUFhLEdBQUcsS0FBSyxFQUFVLENBQUM7UUFDdkIsb0JBQWUsR0FBRyxNQUFNLENBQVUsZUFBZSxDQUFDLENBQUM7UUFDbkQsWUFBTyxHQUFHLE1BQU0sQ0FBb0MsT0FBTyxDQUFDLENBQUM7UUFDdEUsMEJBQXFCLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RDLGdCQUFXLEdBQ1AsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLFFBQVE7WUFDakMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLG1CQUFtQjtZQUM1QyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsb0JBQW9CLENBQUM7UUFDMUMsbUJBQWMsR0FBWSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxDQUNwRSxVQUFVLEVBQ1YsVUFBVSxDQUNiLENBQUM7S0FDTDs4R0FoQlksY0FBYztrR0FBZCxjQUFjLDBnQkFQWjtZQUNQO2dCQUNJLE9BQU8sRUFBRSxrQkFBa0I7Z0JBQzNCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsY0FBYyxDQUFDO2FBQ2hEO1NBQ0osaURDMUNMLDgyT0FvTkEsNENEdkxRLGdCQUFnQiwwRkFFaEIsY0FBYyxtREFDZCx3QkFBd0IsNkZBQ3hCLE9BQU8sb0ZBQ1AsaUJBQWlCLCtKQUNqQixVQUFVOzsyRkFTTCxjQUFjO2tCQXJCMUIsU0FBUzsrQkFDSSxTQUFTLGNBRVAsSUFBSSxtQkFDQyx1QkFBdUIsQ0FBQyxNQUFNLFdBQ3RDO3dCQUNMLGdCQUFnQjt3QkFDaEIsU0FBUzt3QkFDVCxjQUFjO3dCQUNkLHdCQUF3Qjt3QkFDeEIsT0FBTzt3QkFDUCxpQkFBaUI7d0JBQ2pCLFVBQVU7cUJBQ2IsYUFDVTt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsa0JBQWtCOzRCQUMzQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxlQUFlLENBQUM7eUJBQ2hEO3FCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXN5bmNQaXBlLCBOZ0NsYXNzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIGZvcndhcmRSZWYsXG4gICAgaW5qZWN0LFxuICAgIGlucHV0LFxuICAgIHNpZ25hbFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgQ0xBU1NFUyxcbiAgICBLQ19DT05URVhULFxuICAgIFVTRV9ERUZBVUxUX0NTU1xufSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9saWIvcHVibGljLWFwaSc7XG5pbXBvcnQgeyBDbGFzc0tleSB9IGZyb20gJ2tleWNsb2FraWZ5L2xvZ2luL2xpYi9rY0Nsc3gnO1xuaW1wb3J0IHsgS2NDb250ZXh0IH0gZnJvbSAna2V5Y2xvYWtpZnkvbG9naW4vS2NDb250ZXh0JztcbmltcG9ydCB7IENvbXBvbmVudFJlZmVyZW5jZSB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL2NsYXNzZXMvY29tcG9uZW50LXJlZmVyZW5jZS5jbGFzcyc7XG5pbXBvcnQgeyBQYXNzd29yZFdyYXBwZXJDb21wb25lbnQgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9jb21wb25lbnRzL3Bhc3N3b3JkLXdyYXBwZXIvcGFzc3dvcmQtd3JhcHBlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGVtcGxhdGVDb21wb25lbnQgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9jb250YWluZXJzL3RlbXBsYXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBLY0NsYXNzRGlyZWN0aXZlIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vZGlyZWN0aXZlcy9rYy1jbGFzcy5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgS2NTYW5pdGl6ZVBpcGUgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9waXBlcy9rYy1zYW5pdGl6ZS5waXBlJztcbmltcG9ydCB7IE1zZ1N0clBpcGUgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9waXBlcy9tc2ctc3RyLnBpcGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2tjLXJvb3QnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9sb2dpbi5jb21wb25lbnQuaHRtbCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIEtjQ2xhc3NEaXJlY3RpdmUsXG4gICAgICAgIEFzeW5jUGlwZSxcbiAgICAgICAgS2NTYW5pdGl6ZVBpcGUsXG4gICAgICAgIFBhc3N3b3JkV3JhcHBlckNvbXBvbmVudCxcbiAgICAgICAgTmdDbGFzcyxcbiAgICAgICAgVGVtcGxhdGVDb21wb25lbnQsXG4gICAgICAgIE1zZ1N0clBpcGVcbiAgICBdLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBDb21wb25lbnRSZWZlcmVuY2UsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBMb2dpbkNvbXBvbmVudClcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgTG9naW5Db21wb25lbnQgZXh0ZW5kcyBDb21wb25lbnRSZWZlcmVuY2Uge1xuICAgIGtjQ29udGV4dCA9IGluamVjdDxFeHRyYWN0PEtjQ29udGV4dCwgeyBwYWdlSWQ6ICdsb2dpbi5mdGwnIH0+PihLQ19DT05URVhUKTtcbiAgICBkaXNwbGF5UmVxdWlyZWRGaWVsZHMgPSBpbnB1dChmYWxzZSk7XG4gICAgZG9jdW1lbnRUaXRsZSA9IGlucHV0PHN0cmluZz4oKTtcbiAgICBib2R5Q2xhc3NOYW1lID0gaW5wdXQ8c3RyaW5nPigpO1xuICAgIG92ZXJyaWRlIGRvVXNlRGVmYXVsdENzcyA9IGluamVjdDxib29sZWFuPihVU0VfREVGQVVMVF9DU1MpO1xuICAgIG92ZXJyaWRlIGNsYXNzZXMgPSBpbmplY3Q8UGFydGlhbDxSZWNvcmQ8Q2xhc3NLZXksIHN0cmluZz4+PihDTEFTU0VTKTtcbiAgICBpc0xvZ2luQnV0dG9uRGlzYWJsZWQgPSBzaWduYWwoZmFsc2UpO1xuICAgIGRpc3BsYXlJbmZvOiBib29sZWFuID1cbiAgICAgICAgISF0aGlzLmtjQ29udGV4dD8ucmVhbG0/LnBhc3N3b3JkICYmXG4gICAgICAgICEhdGhpcy5rY0NvbnRleHQ/LnJlYWxtPy5yZWdpc3RyYXRpb25BbGxvd2VkICYmXG4gICAgICAgICF0aGlzLmtjQ29udGV4dD8ucmVnaXN0cmF0aW9uRGlzYWJsZWQ7XG4gICAgZGlzcGxheU1lc3NhZ2U6IGJvb2xlYW4gPSAhdGhpcy5rY0NvbnRleHQ/Lm1lc3NhZ2VzUGVyRmllbGQ/LmV4aXN0c0Vycm9yKFxuICAgICAgICAndXNlcm5hbWUnLFxuICAgICAgICAncGFzc3dvcmQnXG4gICAgKTtcbn1cbiIsIkBsZXQgcmVhbG0gPSBrY0NvbnRleHQucmVhbG07XG5AbGV0IHNvY2lhbCA9IGtjQ29udGV4dC5zb2NpYWw7XG5AbGV0IHVzZXJuYW1lSGlkZGVuID0ga2NDb250ZXh0LnVzZXJuYW1lSGlkZGVuO1xuQGxldCBhdXRoID0ga2NDb250ZXh0LmF1dGg7XG5AbGV0IG1lc3NhZ2VzUGVyRmllbGQgPSBrY0NvbnRleHQubWVzc2FnZXNQZXJGaWVsZDtcbkBsZXQgdXJsID0ga2NDb250ZXh0LnVybDtcbkBsZXQgbG9naW4gPSBrY0NvbnRleHQubG9naW47XG5cbjxrYy1sb2dpbi10ZW1wbGF0ZVxuICBbZGlzcGxheUluZm9dPVwiZGlzcGxheUluZm9cIlxuICBbYm9keUNsYXNzTmFtZV09XCJib2R5Q2xhc3NOYW1lKClcIlxuICBbZGlzcGxheU1lc3NhZ2VdPVwiZGlzcGxheU1lc3NhZ2VcIlxuICBbZGlzcGxheVJlcXVpcmVkRmllbGRzXT1cImRpc3BsYXlSZXF1aXJlZEZpZWxkcygpXCJcbiAgW2RvY3VtZW50VGl0bGVdPVwiZG9jdW1lbnRUaXRsZSgpXCJcbj5cbiAgPG5nLWNvbnRhaW5lciBoZWFkZXJOb2RlPlxuICAgIHt7ICdsb2dpbkFjY291bnRUaXRsZScgfCBtc2dTdHIgfX1cbiAgPC9uZy1jb250YWluZXI+XG4gIDxuZy1jb250YWluZXIgaW5mb05vZGU+XG4gICAgPGRpdiBpZD1cImtjLXJlZ2lzdHJhdGlvbi1jb250YWluZXJcIj5cbiAgICAgIDxkaXYgaWQ9XCJrYy1yZWdpc3RyYXRpb25cIj5cbiAgICAgICAgPHNwYW4+XG4gICAgICAgICAge3sgJ25vQWNjb3VudCcgfCBtc2dTdHIgfX1cbiAgICAgICAgICA8YVxuICAgICAgICAgICAgdGFiaW5kZXg9XCI4XCJcbiAgICAgICAgICAgIFtocmVmXT1cInVybD8ucmVnaXN0cmF0aW9uVXJsXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7eyAnZG9SZWdpc3RlcicgfCBtc2dTdHIgfX1cbiAgICAgICAgICA8L2E+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPG5nLWNvbnRhaW5lciBzb2NpYWxQcm92aWRlcnNOb2RlPlxuICAgIEBpZiAoISFyZWFsbT8ucGFzc3dvcmQgJiYgISFzb2NpYWw/LnByb3ZpZGVycz8ubGVuZ3RoKSB7XG4gICAgICA8ZGl2XG4gICAgICAgIGlkPVwia2Mtc29jaWFsLXByb3ZpZGVyc1wiXG4gICAgICAgIFtrY0NsYXNzXT1cIidrY0Zvcm1Tb2NpYWxBY2NvdW50U2VjdGlvbkNsYXNzJ1wiXG4gICAgICA+XG4gICAgICAgIDxociAvPlxuICAgICAgICA8aDI+e3sgJ2lkZW50aXR5LXByb3ZpZGVyLWxvZ2luLWxhYmVsJyB8IG1zZ1N0ciB9fTwvaDI+XG4gICAgICAgIDx1bFxuICAgICAgICAgIFtrY0NsYXNzXT1cIntcbiAgICAgICAgICAgIGtjRm9ybVNvY2lhbEFjY291bnRMaXN0Q2xhc3M6IHRydWUsXG4gICAgICAgICAgICBrY0Zvcm1Tb2NpYWxBY2NvdW50TGlzdEdyaWRDbGFzczogKHNvY2lhbD8ucHJvdmlkZXJzPy5sZW5ndGggPz8gMCkgPiAzLFxuICAgICAgICAgIH1cIlxuICAgICAgICA+XG4gICAgICAgICAgQGZvciAocHJvdmlkZXIgb2Ygc29jaWFsPy5wcm92aWRlcnM7IHRyYWNrIHByb3ZpZGVyLmFsaWFzOyBsZXQgaWR4ID0gJGluZGV4KSB7XG4gICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgW2lkXT1cInByb3ZpZGVyLmFsaWFzXCJcbiAgICAgICAgICAgICAgICBba2NDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgICBrY0Zvcm1Tb2NpYWxBY2NvdW50TGlzdEJ1dHRvbkNsYXNzOiB0cnVlLFxuICAgICAgICAgICAgICAgICAga2NGb3JtU29jaWFsQWNjb3VudEdyaWRJdGVtOiAoc29jaWFsPy5wcm92aWRlcnM/Lmxlbmd0aCA/PyAwKSA+IDMsXG4gICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgW2hyZWZdPVwicHJvdmlkZXIubG9naW5VcmxcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgQGlmIChwcm92aWRlci5pY29uQ2xhc3Nlcykge1xuICAgICAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwicHJvdmlkZXIuaWNvbkNsYXNzZXNcIlxuICAgICAgICAgICAgICAgICAgICBba2NDbGFzc109XCIna2NDb21tb25Mb2dvSWRQJ1wiXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICA+PC9pPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICAgICAna2Mtc29jaWFsLWljb24tdGV4dCc6IHByb3ZpZGVyLmljb25DbGFzc2VzLFxuICAgICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgICBba2NDbGFzc109XCIna2NGb3JtU29jaWFsQWNjb3VudE5hbWVDbGFzcydcIlxuICAgICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJwcm92aWRlci5kaXNwbGF5TmFtZSB8IGtjU2FuaXRpemU6ICdodG1sJ1wiXG4gICAgICAgICAgICAgICAgPjwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICB9XG4gICAgICAgIDwvdWw+XG4gICAgICA8L2Rpdj5cbiAgICB9XG4gIDwvbmctY29udGFpbmVyPlxuICA8bmctY29udGFpbmVyIGNvbnRlbnQ+XG4gICAgPGRpdiBpZD1cImtjLWZvcm1cIj5cbiAgICAgIDxkaXYgaWQ9XCJrYy1mb3JtLXdyYXBwZXJcIj5cbiAgICAgICAgPCEtLSBsb2dpbi5jb21wb25lbnQuaHRtbCAtLT5cbiAgICAgICAgQGlmIChyZWFsbT8ucGFzc3dvcmQpIHtcbiAgICAgICAgICA8Zm9ybVxuICAgICAgICAgICAgaWQ9XCJrYy1mb3JtLWxvZ2luXCJcbiAgICAgICAgICAgIChvblN1Ym1pdCk9XCJpc0xvZ2luQnV0dG9uRGlzYWJsZWQuc2V0KHRydWUpXCJcbiAgICAgICAgICAgIFthY3Rpb25dPVwidXJsPy5sb2dpbkFjdGlvblwiXG4gICAgICAgICAgICBtZXRob2Q9XCJwb3N0XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICBAaWYgKCF1c2VybmFtZUhpZGRlbikge1xuICAgICAgICAgICAgICA8ZGl2IFtrY0NsYXNzXT1cIidrY0Zvcm1Hcm91cENsYXNzJ1wiPlxuICAgICAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICAgICAgZm9yPVwidXNlcm5hbWVcIlxuICAgICAgICAgICAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjTGFiZWxDbGFzcydcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIEBpZiAoIXJlYWxtPy5sb2dpbldpdGhFbWFpbEFsbG93ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAge3sgJ3VzZXJuYW1lJyB8IG1zZ1N0ciB9fVxuICAgICAgICAgICAgICAgICAgfSBAZWxzZSBpZiAoIXJlYWxtPy5yZWdpc3RyYXRpb25FbWFpbEFzVXNlcm5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAge3sgJ3VzZXJuYW1lT3JFbWFpbCcgfCBtc2dTdHIgfX1cbiAgICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB7eyAnZW1haWwnIHwgbXNnU3RyIH19XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgIHRhYmluZGV4PVwiMlwiXG4gICAgICAgICAgICAgICAgICBpZD1cInVzZXJuYW1lXCJcbiAgICAgICAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY0lucHV0Q2xhc3MnXCJcbiAgICAgICAgICAgICAgICAgIG5hbWU9XCJ1c2VybmFtZVwiXG4gICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICBhdXRvZm9jdXNcbiAgICAgICAgICAgICAgICAgIFtkZWZhdWx0VmFsdWVdPVwibG9naW4/LnVzZXJuYW1lIHx8ICcnXCJcbiAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtaW52YWxpZF09XCJtZXNzYWdlc1BlckZpZWxkPy5leGlzdHNFcnJvcigndXNlcm5hbWUnLCAncGFzc3dvcmQnKVwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICBAaWYgKG1lc3NhZ2VzUGVyRmllbGQ/LmV4aXN0c0Vycm9yKCd1c2VybmFtZScsICdwYXNzd29yZCcpKSB7XG4gICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICBpZD1cImlucHV0LWVycm9yXCJcbiAgICAgICAgICAgICAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjSW5wdXRFcnJvck1lc3NhZ2VDbGFzcydcIlxuICAgICAgICAgICAgICAgICAgICBhcmlhLWxpdmU9XCJwb2xpdGVcIlxuICAgICAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cIm1lc3NhZ2VzUGVyRmllbGQ/LmdldEZpcnN0RXJyb3IoJ3VzZXJuYW1lJywgJ3Bhc3N3b3JkJykgfCBrY1Nhbml0aXplOiAnaHRtbCdcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIDxkaXYgW2tjQ2xhc3NdPVwiJ2tjRm9ybUdyb3VwQ2xhc3MnXCI+XG4gICAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICAgIGZvcj1cInBhc3N3b3JkXCJcbiAgICAgICAgICAgICAgICBba2NDbGFzc109XCIna2NMYWJlbENsYXNzJ1wiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7eyAncGFzc3dvcmQnIHwgbXNnU3RyIH19XG4gICAgICAgICAgICAgIDwvbGFiZWw+XG5cbiAgICAgICAgICAgICAgPGtjLXBhc3N3b3JkLXdyYXBwZXIgcGFzc3dvcmRJbnB1dElkPVwicGFzc3dvcmRcIj5cbiAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgIHRhYmluZGV4PVwiM1wiXG4gICAgICAgICAgICAgICAgICBpZD1cInBhc3N3b3JkXCJcbiAgICAgICAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY0lucHV0Q2xhc3MnXCJcbiAgICAgICAgICAgICAgICAgIG5hbWU9XCJwYXNzd29yZFwiXG4gICAgICAgICAgICAgICAgICB0eXBlPVwicGFzc3dvcmRcIlxuICAgICAgICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtaW52YWxpZF09XCJtZXNzYWdlc1BlckZpZWxkLmV4aXN0c0Vycm9yKCd1c2VybmFtZScsICdwYXNzd29yZCcpXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L2tjLXBhc3N3b3JkLXdyYXBwZXI+XG4gICAgICAgICAgICAgIEBpZiAodXNlcm5hbWVIaWRkZW4gJiYgbWVzc2FnZXNQZXJGaWVsZD8uZXhpc3RzRXJyb3IoJ3VzZXJuYW1lJywgJ3Bhc3N3b3JkJykpIHtcbiAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgaWQ9XCJpbnB1dC1lcnJvclwiXG4gICAgICAgICAgICAgICAgICBba2NDbGFzc109XCIna2NJbnB1dEVycm9yTWVzc2FnZUNsYXNzJ1wiXG4gICAgICAgICAgICAgICAgICBhcmlhLWxpdmU9XCJwb2xpdGVcIlxuICAgICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJtZXNzYWdlc1BlckZpZWxkPy5nZXRGaXJzdEVycm9yKCd1c2VybmFtZScsICdwYXNzd29yZCcpIHwga2NTYW5pdGl6ZTogJ2h0bWwnXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiBba2NDbGFzc109XCJbJ2tjRm9ybUdyb3VwQ2xhc3MnLCAna2NGb3JtU2V0dGluZ0NsYXNzJ11cIj5cbiAgICAgICAgICAgICAgPGRpdiBpZD1cImtjLWZvcm0tb3B0aW9uc1wiPlxuICAgICAgICAgICAgICAgIEBpZiAocmVhbG0/LnJlbWVtYmVyTWUgJiYgIXVzZXJuYW1lSGlkZGVuKSB7XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tib3hcIj5cbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgdGFiaW5kZXg9XCI1XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwicmVtZW1iZXJNZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwicmVtZW1iZXJNZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2RlZmF1bHRDaGVja2VkXT1cIiEhbG9naW4/LnJlbWVtYmVyTWVcIlxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAge3sgJ3JlbWVtYmVyTWUnIHwgbXNnU3RyIH19XG4gICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgIDxkaXYgW2tjQ2xhc3NdPVwiJ2tjRm9ybU9wdGlvbnNXcmFwcGVyQ2xhc3MnXCI+XG4gICAgICAgICAgICAgICAgQGlmIChyZWFsbT8ucmVzZXRQYXNzd29yZEFsbG93ZWQpIHtcbiAgICAgICAgICAgICAgICAgIDxzcGFuPlxuICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgIHRhYmluZGV4PVwiNlwiXG4gICAgICAgICAgICAgICAgICAgICAgW2hyZWZdPVwidXJsPy5sb2dpblJlc2V0Q3JlZGVudGlhbHNVcmxcIlxuICAgICAgICAgICAgICAgICAgICAgID57eyAnZG9Gb3Jnb3RQYXNzd29yZCcgfCBtc2dTdHIgfX08L2FcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgaWQ9XCJrYy1mb3JtLWJ1dHRvbnNcIlxuICAgICAgICAgICAgICBba2NDbGFzc109XCIna2NGb3JtR3JvdXBDbGFzcydcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICB0eXBlPVwiaGlkZGVuXCJcbiAgICAgICAgICAgICAgICBpZD1cImlkLWhpZGRlbi1pbnB1dFwiXG4gICAgICAgICAgICAgICAgbmFtZT1cImNyZWRlbnRpYWxJZFwiXG4gICAgICAgICAgICAgICAgW3ZhbHVlXT1cImF1dGg/LnNlbGVjdGVkQ3JlZGVudGlhbFwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgIHRhYmluZGV4PVwiN1wiXG4gICAgICAgICAgICAgICAgW2tjQ2xhc3NdPVwiWydrY0J1dHRvbkNsYXNzJywgJ2tjQnV0dG9uUHJpbWFyeUNsYXNzJywgJ2tjQnV0dG9uQmxvY2tDbGFzcycsICdrY0J1dHRvbkxhcmdlQ2xhc3MnXVwiXG4gICAgICAgICAgICAgICAgbmFtZT1cImxvZ2luXCJcbiAgICAgICAgICAgICAgICBpZD1cImtjLWxvZ2luXCJcbiAgICAgICAgICAgICAgICB0eXBlPVwic3VibWl0XCJcbiAgICAgICAgICAgICAgICBbdmFsdWVdPVwiJ2RvTG9nSW4nIHwgbXNnU3RyXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNMb2dpbkJ1dHRvbkRpc2FibGVkKClcIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9mb3JtPlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG48L2tjLWxvZ2luLXRlbXBsYXRlPlxuIl19
@@ -1,47 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, forwardRef, inject, input } from '@angular/core';
2
- import { CLASSES, KC_CONTEXT, USE_DEFAULT_CSS } from '../../../lib/public-api';
3
- import { ComponentReference } from '../../../login/classes/component-reference.class';
4
- import { LogoutOtherSessionsComponent } from '../../../login/components/logout-other-sessions/logout-other-sessions.component';
5
- import { TemplateComponent } from '../../../login/containers/template.component';
6
- import { KcClassDirective } from '../../../login/directives/kc-class.directive';
7
- import { AdvancedMsgStrPipe } from '../../../login/pipes/advanced-msg-str.pipe';
8
- import { KcSanitizePipe } from '../../../login/pipes/kc-sanitize.pipe';
9
- import { MsgStrPipe } from '../../../login/pipes/msg-str.pipe';
10
- import * as i0 from "@angular/core";
11
- export class LoginConfigTotpComponent extends ComponentReference {
12
- constructor() {
13
- super(...arguments);
14
- this.kcContext = inject(KC_CONTEXT);
15
- this.doUseDefaultCss = inject(USE_DEFAULT_CSS);
16
- this.classes = inject(CLASSES);
17
- this.displayRequiredFields = input(false);
18
- this.documentTitle = input();
19
- this.bodyClassName = input();
20
- this.displayInfo = false;
21
- this.displayMessage = this.kcContext.messagesPerField.existsError('totp', 'userLabel');
22
- }
23
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: LoginConfigTotpComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
24
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.6", type: LoginConfigTotpComponent, isStandalone: true, selector: "kc-root", inputs: { displayRequiredFields: { classPropertyName: "displayRequiredFields", publicName: "displayRequiredFields", isSignal: true, isRequired: false, transformFunction: null }, documentTitle: { classPropertyName: "documentTitle", publicName: "documentTitle", isSignal: true, isRequired: false, transformFunction: null }, bodyClassName: { classPropertyName: "bodyClassName", publicName: "bodyClassName", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
25
- {
26
- provide: ComponentReference,
27
- useExisting: forwardRef(() => LoginConfigTotpComponent)
28
- }
29
- ], usesInheritance: true, ngImport: i0, template: "@let totp = kcContext.totp;\n@let url = kcContext.url;\n@let messagesPerField = kcContext.messagesPerField;\n@let mode = kcContext.mode;\n@let isAppInitiatedAction = kcContext.isAppInitiatedAction;\n<kc-login-template\n [displayInfo]=\"displayInfo\"\n [bodyClassName]=\"bodyClassName()\"\n [displayMessage]=\"displayMessage\"\n [displayRequiredFields]=\"displayRequiredFields()\"\n [documentTitle]=\"documentTitle()\"\n>\n <ng-container headerNode>\n {{ 'loginTotpStep1' | msgStr }}\n </ng-container>\n <ng-container content>\n <ol id=\"kc-totp-settings\">\n <li>\n <p>{{ 'loginTotpStep1' | msgStr }}</p>\n <ul id=\"kc-totp-supported-apps\">\n @for (app of totp.supportedApplications; track app) {\n <li>{{ app | advancedMsgStr }}</li>\n }\n </ul>\n </li>\n @if (kcContext.mode === 'manual') {\n <li>\n <p>{{ 'loginTotpManualStep2' | msgStr }}</p>\n <p>\n <span id=\"kc-totp-secret-key\">{{ totp.totpSecretEncoded }}</span>\n </p>\n <p>\n <a\n href=\"{{ totp.qrUrl }}\"\n id=\"mode-barcode\"\n >\n {{ 'loginTotpScanBarcode' | msgStr }}\n </a>\n </p>\n </li>\n <li>\n <p>{{ 'loginTotpManualStep3' | msgStr }}</p>\n <p></p>\n <ul>\n <li id=\"kc-totp-type\">\n {{ 'loginTotpType' | msgStr }}: {{ 'loginTotp.' + totp.policy.type | advancedMsgStr }}\n </li>\n <li id=\"kc-totp-algorithm\">{{ 'loginTotpAlgorithm' | msgStr }}: {{ totp.policy.getAlgorithmKey() }}</li>\n <li id=\"kc-totp-digits\">{{ 'loginTotpDigits' | msgStr }}: {{ totp.policy.digits }}</li>\n @if (totp.policy.type === 'totp') {\n <li id=\"kc-totp-period\">{{ 'loginTotpInterval' | msgStr }}: {{ totp.policy.period }}</li>\n } @else {\n <li id=\"kc-totp-counter\">{{ 'loginTotpCounter' | msgStr }}: {{ totp.policy.initialCounter }}</li>\n }\n </ul>\n </li>\n } @else {\n <li>\n <p>{{ 'loginTotpStep2' | msgStr }}</p>\n <img\n id=\"kc-totp-secret-qr-code\"\n src=\"{{ 'data:image/png;base64, ' + totp.totpSecretQrCode }}\"\n alt=\"Figure: Barcode\"\n />\n <br />\n <p>\n <a\n href=\"{{ totp.manualUrl }}\"\n id=\"mode-manual\"\n >\n {{ 'loginTotpUnableToScan' | msgStr }}\n </a>\n </p>\n </li>\n }\n <li>\n <p>{{ 'loginTotpStep3' | msgStr }}</p>\n <p>{{ 'loginTotpStep3DeviceName' | msgStr }}</p>\n </li>\n </ol>\n <form\n [action]=\"url.loginAction\"\n [kcClass]=\"'kcFormClass'\"\n id=\"kc-totp-settings-form\"\n method=\"post\"\n >\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div [kcClass]=\"'kcInputWrapperClass'\">\n <label\n for=\"totp\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ 'authenticatorCode' | msgStr }}\n </label>\n <span class=\"required\">*</span>\n </div>\n <div [kcClass]=\"'kcInputWrapperClass'\">\n <input\n type=\"text\"\n id=\"totp\"\n name=\"totp\"\n autoComplete=\"off\"\n [kcClass]=\"'kcInputClass'\"\n [attr.aria-invalid]=\"messagesPerField.existsError('totp')\"\n />\n @if (messagesPerField.existsError('totp')) {\n <span\n id=\"input-error-otp-code\"\n [kcClass]=\"'kcInputErrorMessageClass'\"\n aria-live=\"polite\"\n [innerHTML]=\"messagesPerField.get('totp') | kcSanitize: 'html'\"\n ></span>\n }\n </div>\n <input\n type=\"hidden\"\n id=\"totpSecret\"\n name=\"totpSecret\"\n [value]=\"totp.totpSecret\"\n />\n @if (mode) {\n <input\n type=\"hidden\"\n id=\"mode\"\n [value]=\"mode\"\n />\n }\n </div>\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div [kcClass]=\"'kcInputWrapperClass'\">\n <label\n for=\"userLabel\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ 'loginTotpDeviceName' | msgStr }}\n </label>\n @if (totp.otpCredentials.length >= 1) {\n <span class=\"required\">*</span>\n }\n </div>\n <div [kcClass]=\"'kcInputWrapperClass'\">\n <input\n type=\"text\"\n id=\"userLabel\"\n name=\"userLabel\"\n autoComplete=\"off\"\n [kcClass]=\"'kcInputClass'\"\n [attr.aria-invalid]=\"messagesPerField.existsError('userLabel')\"\n />\n @if (messagesPerField.existsError('userLabel')) {\n <span\n id=\"input-error-otp-label\"\n [kcClass]=\"'kcInputErrorMessageClass'\"\n aria-live=\"polite\"\n [innerHTML]=\"messagesPerField.get('userLabel') | kcSanitize: 'html'\"\n ></span>\n }\n </div>\n </div>\n <div [kcClass]=\"'kcFormGroupClass'\">\n <kc-logout-other-sessions />\n </div>\n\n @if (isAppInitiatedAction) {\n <input\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonLargeClass']\"\n id=\"saveTOTPBtn\"\n [value]=\"'doSubmit' | msgStr\"\n />\n <button\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonLargeClass', 'kcButtonLargeClass']\"\n id=\"cancelTOTPBtn\"\n name=\"cancel-aia\"\n [value]=\"true\"\n >\n {{ 'doCancel' | msgStr }}\n </button>\n } @else {\n <input\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonLargeClass']\"\n id=\"saveTOTPBtn\"\n [value]=\"'doSubmit' | msgStr\"\n />\n }\n </form> </ng-container\n></kc-login-template>\n>\n", dependencies: [{ kind: "component", type: TemplateComponent, selector: "kc-login-template", inputs: ["displayInfo", "displayMessage", "displayRequiredFields", "documentTitle", "bodyClassName"] }, { kind: "pipe", type: MsgStrPipe, name: "msgStr" }, { kind: "pipe", type: AdvancedMsgStrPipe, name: "advancedMsgStr" }, { kind: "directive", type: KcClassDirective, selector: "[kcClass]", inputs: ["class", "ngClass", "kcClass"] }, { kind: "pipe", type: KcSanitizePipe, name: "kcSanitize" }, { kind: "component", type: LogoutOtherSessionsComponent, selector: "kc-logout-other-sessions" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
30
- }
31
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: LoginConfigTotpComponent, decorators: [{
32
- type: Component,
33
- args: [{ standalone: true, imports: [
34
- TemplateComponent,
35
- MsgStrPipe,
36
- AdvancedMsgStrPipe,
37
- KcClassDirective,
38
- KcSanitizePipe,
39
- LogoutOtherSessionsComponent
40
- ], selector: 'kc-root', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
41
- {
42
- provide: ComponentReference,
43
- useExisting: forwardRef(() => LoginConfigTotpComponent)
44
- }
45
- ], template: "@let totp = kcContext.totp;\n@let url = kcContext.url;\n@let messagesPerField = kcContext.messagesPerField;\n@let mode = kcContext.mode;\n@let isAppInitiatedAction = kcContext.isAppInitiatedAction;\n<kc-login-template\n [displayInfo]=\"displayInfo\"\n [bodyClassName]=\"bodyClassName()\"\n [displayMessage]=\"displayMessage\"\n [displayRequiredFields]=\"displayRequiredFields()\"\n [documentTitle]=\"documentTitle()\"\n>\n <ng-container headerNode>\n {{ 'loginTotpStep1' | msgStr }}\n </ng-container>\n <ng-container content>\n <ol id=\"kc-totp-settings\">\n <li>\n <p>{{ 'loginTotpStep1' | msgStr }}</p>\n <ul id=\"kc-totp-supported-apps\">\n @for (app of totp.supportedApplications; track app) {\n <li>{{ app | advancedMsgStr }}</li>\n }\n </ul>\n </li>\n @if (kcContext.mode === 'manual') {\n <li>\n <p>{{ 'loginTotpManualStep2' | msgStr }}</p>\n <p>\n <span id=\"kc-totp-secret-key\">{{ totp.totpSecretEncoded }}</span>\n </p>\n <p>\n <a\n href=\"{{ totp.qrUrl }}\"\n id=\"mode-barcode\"\n >\n {{ 'loginTotpScanBarcode' | msgStr }}\n </a>\n </p>\n </li>\n <li>\n <p>{{ 'loginTotpManualStep3' | msgStr }}</p>\n <p></p>\n <ul>\n <li id=\"kc-totp-type\">\n {{ 'loginTotpType' | msgStr }}: {{ 'loginTotp.' + totp.policy.type | advancedMsgStr }}\n </li>\n <li id=\"kc-totp-algorithm\">{{ 'loginTotpAlgorithm' | msgStr }}: {{ totp.policy.getAlgorithmKey() }}</li>\n <li id=\"kc-totp-digits\">{{ 'loginTotpDigits' | msgStr }}: {{ totp.policy.digits }}</li>\n @if (totp.policy.type === 'totp') {\n <li id=\"kc-totp-period\">{{ 'loginTotpInterval' | msgStr }}: {{ totp.policy.period }}</li>\n } @else {\n <li id=\"kc-totp-counter\">{{ 'loginTotpCounter' | msgStr }}: {{ totp.policy.initialCounter }}</li>\n }\n </ul>\n </li>\n } @else {\n <li>\n <p>{{ 'loginTotpStep2' | msgStr }}</p>\n <img\n id=\"kc-totp-secret-qr-code\"\n src=\"{{ 'data:image/png;base64, ' + totp.totpSecretQrCode }}\"\n alt=\"Figure: Barcode\"\n />\n <br />\n <p>\n <a\n href=\"{{ totp.manualUrl }}\"\n id=\"mode-manual\"\n >\n {{ 'loginTotpUnableToScan' | msgStr }}\n </a>\n </p>\n </li>\n }\n <li>\n <p>{{ 'loginTotpStep3' | msgStr }}</p>\n <p>{{ 'loginTotpStep3DeviceName' | msgStr }}</p>\n </li>\n </ol>\n <form\n [action]=\"url.loginAction\"\n [kcClass]=\"'kcFormClass'\"\n id=\"kc-totp-settings-form\"\n method=\"post\"\n >\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div [kcClass]=\"'kcInputWrapperClass'\">\n <label\n for=\"totp\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ 'authenticatorCode' | msgStr }}\n </label>\n <span class=\"required\">*</span>\n </div>\n <div [kcClass]=\"'kcInputWrapperClass'\">\n <input\n type=\"text\"\n id=\"totp\"\n name=\"totp\"\n autoComplete=\"off\"\n [kcClass]=\"'kcInputClass'\"\n [attr.aria-invalid]=\"messagesPerField.existsError('totp')\"\n />\n @if (messagesPerField.existsError('totp')) {\n <span\n id=\"input-error-otp-code\"\n [kcClass]=\"'kcInputErrorMessageClass'\"\n aria-live=\"polite\"\n [innerHTML]=\"messagesPerField.get('totp') | kcSanitize: 'html'\"\n ></span>\n }\n </div>\n <input\n type=\"hidden\"\n id=\"totpSecret\"\n name=\"totpSecret\"\n [value]=\"totp.totpSecret\"\n />\n @if (mode) {\n <input\n type=\"hidden\"\n id=\"mode\"\n [value]=\"mode\"\n />\n }\n </div>\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div [kcClass]=\"'kcInputWrapperClass'\">\n <label\n for=\"userLabel\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ 'loginTotpDeviceName' | msgStr }}\n </label>\n @if (totp.otpCredentials.length >= 1) {\n <span class=\"required\">*</span>\n }\n </div>\n <div [kcClass]=\"'kcInputWrapperClass'\">\n <input\n type=\"text\"\n id=\"userLabel\"\n name=\"userLabel\"\n autoComplete=\"off\"\n [kcClass]=\"'kcInputClass'\"\n [attr.aria-invalid]=\"messagesPerField.existsError('userLabel')\"\n />\n @if (messagesPerField.existsError('userLabel')) {\n <span\n id=\"input-error-otp-label\"\n [kcClass]=\"'kcInputErrorMessageClass'\"\n aria-live=\"polite\"\n [innerHTML]=\"messagesPerField.get('userLabel') | kcSanitize: 'html'\"\n ></span>\n }\n </div>\n </div>\n <div [kcClass]=\"'kcFormGroupClass'\">\n <kc-logout-other-sessions />\n </div>\n\n @if (isAppInitiatedAction) {\n <input\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonLargeClass']\"\n id=\"saveTOTPBtn\"\n [value]=\"'doSubmit' | msgStr\"\n />\n <button\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonLargeClass', 'kcButtonLargeClass']\"\n id=\"cancelTOTPBtn\"\n name=\"cancel-aia\"\n [value]=\"true\"\n >\n {{ 'doCancel' | msgStr }}\n </button>\n } @else {\n <input\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonLargeClass']\"\n id=\"saveTOTPBtn\"\n [value]=\"'doSubmit' | msgStr\"\n />\n }\n </form> </ng-container\n></kc-login-template>\n>\n" }]
46
- }] });
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4tY29uZmlnLXRvdHAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2V5Y2xvYWtpZnktYW5ndWxhci9zcmMvbG9naW4vcGFnZXMvbG9naW4tY29uZmlnLXRvdHAvbG9naW4tY29uZmlnLXRvdHAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2V5Y2xvYWtpZnktYW5ndWxhci9zcmMvbG9naW4vcGFnZXMvbG9naW4tY29uZmlnLXRvdHAvbG9naW4tY29uZmlnLXRvdHAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBQ1IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNILE9BQU8sRUFDUCxVQUFVLEVBQ1YsZUFBZSxFQUNsQixNQUFNLHFDQUFxQyxDQUFDO0FBRzdDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBQ2xHLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDZGQUE2RixDQUFDO0FBQzNJLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQzdGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQzVGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQzVGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUNuRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0NBQStDLENBQUM7O0FBc0IzRSxNQUFNLE9BQU8sd0JBQXlCLFNBQVEsa0JBQWtCO0lBcEJoRTs7UUFxQkksY0FBUyxHQUNMLE1BQU0sQ0FBMEQsVUFBVSxDQUFDLENBQUM7UUFFdkUsb0JBQWUsR0FBRyxNQUFNLENBQVUsZUFBZSxDQUFDLENBQUM7UUFDbkQsWUFBTyxHQUFHLE1BQU0sQ0FBb0MsT0FBTyxDQUFDLENBQUM7UUFDdEUsMEJBQXFCLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JDLGtCQUFhLEdBQUcsS0FBSyxFQUFVLENBQUM7UUFDaEMsa0JBQWEsR0FBRyxLQUFLLEVBQVUsQ0FBQztRQUNoQyxnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUM3QixtQkFBYyxHQUFZLElBQUksQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUNqRSxNQUFNLEVBQ04sV0FBVyxDQUNkLENBQUM7S0FDTDs4R0FkWSx3QkFBd0I7a0dBQXhCLHdCQUF3QiwwZ0JBUHRCO1lBQ1A7Z0JBQ0ksT0FBTyxFQUFFLGtCQUFrQjtnQkFDM0IsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQzthQUMxRDtTQUNKLGlEQ3hDTCxrb01BOExBLDRDRHJLUSxpQkFBaUIsK0pBQ2pCLFVBQVUsMENBQ1Ysa0JBQWtCLHVEQUNsQixnQkFBZ0IsMEZBQ2hCLGNBQWMsbURBQ2QsNEJBQTRCOzsyRkFZdkIsd0JBQXdCO2tCQXBCcEMsU0FBUztpQ0FDTSxJQUFJLFdBQ1A7d0JBQ0wsaUJBQWlCO3dCQUNqQixVQUFVO3dCQUNWLGtCQUFrQjt3QkFDbEIsZ0JBQWdCO3dCQUNoQixjQUFjO3dCQUNkLDRCQUE0QjtxQkFDL0IsWUFDUyxTQUFTLG1CQUVGLHVCQUF1QixDQUFDLE1BQU0sYUFDcEM7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLGtCQUFrQjs0QkFDM0IsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUseUJBQXlCLENBQUM7eUJBQzFEO3FCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgZm9yd2FyZFJlZixcbiAgICBpbmplY3QsXG4gICAgaW5wdXRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIENMQVNTRVMsXG4gICAgS0NfQ09OVEVYVCxcbiAgICBVU0VfREVGQVVMVF9DU1Ncbn0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbGliL3B1YmxpYy1hcGknO1xuaW1wb3J0IHsgQ2xhc3NLZXkgfSBmcm9tICdrZXljbG9ha2lmeS9sb2dpbi9saWIva2NDbHN4JztcbmltcG9ydCB7IEtjQ29udGV4dCB9IGZyb20gJ2tleWNsb2FraWZ5L2xvZ2luL0tjQ29udGV4dCc7XG5pbXBvcnQgeyBDb21wb25lbnRSZWZlcmVuY2UgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9jbGFzc2VzL2NvbXBvbmVudC1yZWZlcmVuY2UuY2xhc3MnO1xuaW1wb3J0IHsgTG9nb3V0T3RoZXJTZXNzaW9uc0NvbXBvbmVudCB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL2NvbXBvbmVudHMvbG9nb3V0LW90aGVyLXNlc3Npb25zL2xvZ291dC1vdGhlci1zZXNzaW9ucy5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGVtcGxhdGVDb21wb25lbnQgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9jb250YWluZXJzL3RlbXBsYXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBLY0NsYXNzRGlyZWN0aXZlIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vZGlyZWN0aXZlcy9rYy1jbGFzcy5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQWR2YW5jZWRNc2dTdHJQaXBlIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vcGlwZXMvYWR2YW5jZWQtbXNnLXN0ci5waXBlJztcbmltcG9ydCB7IEtjU2FuaXRpemVQaXBlIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vcGlwZXMva2Mtc2FuaXRpemUucGlwZSc7XG5pbXBvcnQgeyBNc2dTdHJQaXBlIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vcGlwZXMvbXNnLXN0ci5waXBlJztcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIFRlbXBsYXRlQ29tcG9uZW50LFxuICAgICAgICBNc2dTdHJQaXBlLFxuICAgICAgICBBZHZhbmNlZE1zZ1N0clBpcGUsXG4gICAgICAgIEtjQ2xhc3NEaXJlY3RpdmUsXG4gICAgICAgIEtjU2FuaXRpemVQaXBlLFxuICAgICAgICBMb2dvdXRPdGhlclNlc3Npb25zQ29tcG9uZW50XG4gICAgXSxcbiAgICBzZWxlY3RvcjogJ2tjLXJvb3QnLFxuICAgIHRlbXBsYXRlVXJsOiAnbG9naW4tY29uZmlnLXRvdHAuY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBDb21wb25lbnRSZWZlcmVuY2UsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBMb2dpbkNvbmZpZ1RvdHBDb21wb25lbnQpXG4gICAgICAgIH1cbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIExvZ2luQ29uZmlnVG90cENvbXBvbmVudCBleHRlbmRzIENvbXBvbmVudFJlZmVyZW5jZSB7XG4gICAga2NDb250ZXh0ID1cbiAgICAgICAgaW5qZWN0PEV4dHJhY3Q8S2NDb250ZXh0LCB7IHBhZ2VJZDogJ2xvZ2luLWNvbmZpZy10b3RwLmZ0bCcgfT4+KEtDX0NPTlRFWFQpO1xuXG4gICAgb3ZlcnJpZGUgZG9Vc2VEZWZhdWx0Q3NzID0gaW5qZWN0PGJvb2xlYW4+KFVTRV9ERUZBVUxUX0NTUyk7XG4gICAgb3ZlcnJpZGUgY2xhc3NlcyA9IGluamVjdDxQYXJ0aWFsPFJlY29yZDxDbGFzc0tleSwgc3RyaW5nPj4+KENMQVNTRVMpO1xuICAgIGRpc3BsYXlSZXF1aXJlZEZpZWxkcyA9IGlucHV0KGZhbHNlKTtcbiAgICBkb2N1bWVudFRpdGxlID0gaW5wdXQ8c3RyaW5nPigpO1xuICAgIGJvZHlDbGFzc05hbWUgPSBpbnB1dDxzdHJpbmc+KCk7XG4gICAgZGlzcGxheUluZm86IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBkaXNwbGF5TWVzc2FnZTogYm9vbGVhbiA9IHRoaXMua2NDb250ZXh0Lm1lc3NhZ2VzUGVyRmllbGQuZXhpc3RzRXJyb3IoXG4gICAgICAgICd0b3RwJyxcbiAgICAgICAgJ3VzZXJMYWJlbCdcbiAgICApO1xufVxuIiwiQGxldCB0b3RwID0ga2NDb250ZXh0LnRvdHA7XG5AbGV0IHVybCA9IGtjQ29udGV4dC51cmw7XG5AbGV0IG1lc3NhZ2VzUGVyRmllbGQgPSBrY0NvbnRleHQubWVzc2FnZXNQZXJGaWVsZDtcbkBsZXQgbW9kZSA9IGtjQ29udGV4dC5tb2RlO1xuQGxldCBpc0FwcEluaXRpYXRlZEFjdGlvbiA9IGtjQ29udGV4dC5pc0FwcEluaXRpYXRlZEFjdGlvbjtcbjxrYy1sb2dpbi10ZW1wbGF0ZVxuICBbZGlzcGxheUluZm9dPVwiZGlzcGxheUluZm9cIlxuICBbYm9keUNsYXNzTmFtZV09XCJib2R5Q2xhc3NOYW1lKClcIlxuICBbZGlzcGxheU1lc3NhZ2VdPVwiZGlzcGxheU1lc3NhZ2VcIlxuICBbZGlzcGxheVJlcXVpcmVkRmllbGRzXT1cImRpc3BsYXlSZXF1aXJlZEZpZWxkcygpXCJcbiAgW2RvY3VtZW50VGl0bGVdPVwiZG9jdW1lbnRUaXRsZSgpXCJcbj5cbiAgPG5nLWNvbnRhaW5lciBoZWFkZXJOb2RlPlxuICAgIHt7ICdsb2dpblRvdHBTdGVwMScgfCBtc2dTdHIgfX1cbiAgPC9uZy1jb250YWluZXI+XG4gIDxuZy1jb250YWluZXIgY29udGVudD5cbiAgICA8b2wgaWQ9XCJrYy10b3RwLXNldHRpbmdzXCI+XG4gICAgICA8bGk+XG4gICAgICAgIDxwPnt7ICdsb2dpblRvdHBTdGVwMScgfCBtc2dTdHIgfX08L3A+XG4gICAgICAgIDx1bCBpZD1cImtjLXRvdHAtc3VwcG9ydGVkLWFwcHNcIj5cbiAgICAgICAgICBAZm9yIChhcHAgb2YgdG90cC5zdXBwb3J0ZWRBcHBsaWNhdGlvbnM7IHRyYWNrIGFwcCkge1xuICAgICAgICAgICAgPGxpPnt7IGFwcCB8IGFkdmFuY2VkTXNnU3RyIH19PC9saT5cbiAgICAgICAgICB9XG4gICAgICAgIDwvdWw+XG4gICAgICA8L2xpPlxuICAgICAgQGlmIChrY0NvbnRleHQubW9kZSA9PT0gJ21hbnVhbCcpIHtcbiAgICAgICAgPGxpPlxuICAgICAgICAgIDxwPnt7ICdsb2dpblRvdHBNYW51YWxTdGVwMicgfCBtc2dTdHIgfX08L3A+XG4gICAgICAgICAgPHA+XG4gICAgICAgICAgICA8c3BhbiBpZD1cImtjLXRvdHAtc2VjcmV0LWtleVwiPnt7IHRvdHAudG90cFNlY3JldEVuY29kZWQgfX08L3NwYW4+XG4gICAgICAgICAgPC9wPlxuICAgICAgICAgIDxwPlxuICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgaHJlZj1cInt7IHRvdHAucXJVcmwgfX1cIlxuICAgICAgICAgICAgICBpZD1cIm1vZGUtYmFyY29kZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt7ICdsb2dpblRvdHBTY2FuQmFyY29kZScgfCBtc2dTdHIgfX1cbiAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICA8L3A+XG4gICAgICAgIDwvbGk+XG4gICAgICAgIDxsaT5cbiAgICAgICAgICA8cD57eyAnbG9naW5Ub3RwTWFudWFsU3RlcDMnIHwgbXNnU3RyIH19PC9wPlxuICAgICAgICAgIDxwPjwvcD5cbiAgICAgICAgICA8dWw+XG4gICAgICAgICAgICA8bGkgaWQ9XCJrYy10b3RwLXR5cGVcIj5cbiAgICAgICAgICAgICAge3sgJ2xvZ2luVG90cFR5cGUnIHwgbXNnU3RyIH19OiB7eyAnbG9naW5Ub3RwLicgKyB0b3RwLnBvbGljeS50eXBlIHwgYWR2YW5jZWRNc2dTdHIgfX1cbiAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICA8bGkgaWQ9XCJrYy10b3RwLWFsZ29yaXRobVwiPnt7ICdsb2dpblRvdHBBbGdvcml0aG0nIHwgbXNnU3RyIH19OiB7eyB0b3RwLnBvbGljeS5nZXRBbGdvcml0aG1LZXkoKSB9fTwvbGk+XG4gICAgICAgICAgICA8bGkgaWQ9XCJrYy10b3RwLWRpZ2l0c1wiPnt7ICdsb2dpblRvdHBEaWdpdHMnIHwgbXNnU3RyIH19OiB7eyB0b3RwLnBvbGljeS5kaWdpdHMgfX08L2xpPlxuICAgICAgICAgICAgQGlmICh0b3RwLnBvbGljeS50eXBlID09PSAndG90cCcpIHtcbiAgICAgICAgICAgICAgPGxpIGlkPVwia2MtdG90cC1wZXJpb2RcIj57eyAnbG9naW5Ub3RwSW50ZXJ2YWwnIHwgbXNnU3RyIH19OiB7eyB0b3RwLnBvbGljeS5wZXJpb2QgfX08L2xpPlxuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgIDxsaSBpZD1cImtjLXRvdHAtY291bnRlclwiPnt7ICdsb2dpblRvdHBDb3VudGVyJyB8IG1zZ1N0ciB9fToge3sgdG90cC5wb2xpY3kuaW5pdGlhbENvdW50ZXIgfX08L2xpPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvdWw+XG4gICAgICAgIDwvbGk+XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgPGxpPlxuICAgICAgICAgIDxwPnt7ICdsb2dpblRvdHBTdGVwMicgfCBtc2dTdHIgfX08L3A+XG4gICAgICAgICAgPGltZ1xuICAgICAgICAgICAgaWQ9XCJrYy10b3RwLXNlY3JldC1xci1jb2RlXCJcbiAgICAgICAgICAgIHNyYz1cInt7ICdkYXRhOmltYWdlL3BuZztiYXNlNjQsICcgKyB0b3RwLnRvdHBTZWNyZXRRckNvZGUgfX1cIlxuICAgICAgICAgICAgYWx0PVwiRmlndXJlOiBCYXJjb2RlXCJcbiAgICAgICAgICAvPlxuICAgICAgICAgIDxiciAvPlxuICAgICAgICAgIDxwPlxuICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgaHJlZj1cInt7IHRvdHAubWFudWFsVXJsIH19XCJcbiAgICAgICAgICAgICAgaWQ9XCJtb2RlLW1hbnVhbFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt7ICdsb2dpblRvdHBVbmFibGVUb1NjYW4nIHwgbXNnU3RyIH19XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgICAgPC9wPlxuICAgICAgICA8L2xpPlxuICAgICAgfVxuICAgICAgPGxpPlxuICAgICAgICA8cD57eyAnbG9naW5Ub3RwU3RlcDMnIHwgbXNnU3RyIH19PC9wPlxuICAgICAgICA8cD57eyAnbG9naW5Ub3RwU3RlcDNEZXZpY2VOYW1lJyB8IG1zZ1N0ciB9fTwvcD5cbiAgICAgIDwvbGk+XG4gICAgPC9vbD5cbiAgICA8Zm9ybVxuICAgICAgW2FjdGlvbl09XCJ1cmwubG9naW5BY3Rpb25cIlxuICAgICAgW2tjQ2xhc3NdPVwiJ2tjRm9ybUNsYXNzJ1wiXG4gICAgICBpZD1cImtjLXRvdHAtc2V0dGluZ3MtZm9ybVwiXG4gICAgICBtZXRob2Q9XCJwb3N0XCJcbiAgICA+XG4gICAgICA8ZGl2IFtrY0NsYXNzXT1cIidrY0Zvcm1Hcm91cENsYXNzJ1wiPlxuICAgICAgICA8ZGl2IFtrY0NsYXNzXT1cIidrY0lucHV0V3JhcHBlckNsYXNzJ1wiPlxuICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgZm9yPVwidG90cFwiXG4gICAgICAgICAgICBba2NDbGFzc109XCIna2NMYWJlbENsYXNzJ1wiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgJ2F1dGhlbnRpY2F0b3JDb2RlJyB8IG1zZ1N0ciB9fVxuICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJyZXF1aXJlZFwiPio8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IFtrY0NsYXNzXT1cIidrY0lucHV0V3JhcHBlckNsYXNzJ1wiPlxuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgaWQ9XCJ0b3RwXCJcbiAgICAgICAgICAgIG5hbWU9XCJ0b3RwXCJcbiAgICAgICAgICAgIGF1dG9Db21wbGV0ZT1cIm9mZlwiXG4gICAgICAgICAgICBba2NDbGFzc109XCIna2NJbnB1dENsYXNzJ1wiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWludmFsaWRdPVwibWVzc2FnZXNQZXJGaWVsZC5leGlzdHNFcnJvcigndG90cCcpXCJcbiAgICAgICAgICAvPlxuICAgICAgICAgIEBpZiAobWVzc2FnZXNQZXJGaWVsZC5leGlzdHNFcnJvcigndG90cCcpKSB7XG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICBpZD1cImlucHV0LWVycm9yLW90cC1jb2RlXCJcbiAgICAgICAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjSW5wdXRFcnJvck1lc3NhZ2VDbGFzcydcIlxuICAgICAgICAgICAgICBhcmlhLWxpdmU9XCJwb2xpdGVcIlxuICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cIm1lc3NhZ2VzUGVyRmllbGQuZ2V0KCd0b3RwJykgfCBrY1Nhbml0aXplOiAnaHRtbCdcIlxuICAgICAgICAgICAgPjwvc3Bhbj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICB0eXBlPVwiaGlkZGVuXCJcbiAgICAgICAgICBpZD1cInRvdHBTZWNyZXRcIlxuICAgICAgICAgIG5hbWU9XCJ0b3RwU2VjcmV0XCJcbiAgICAgICAgICBbdmFsdWVdPVwidG90cC50b3RwU2VjcmV0XCJcbiAgICAgICAgLz5cbiAgICAgICAgQGlmIChtb2RlKSB7XG4gICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICB0eXBlPVwiaGlkZGVuXCJcbiAgICAgICAgICAgIGlkPVwibW9kZVwiXG4gICAgICAgICAgICBbdmFsdWVdPVwibW9kZVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IFtrY0NsYXNzXT1cIidrY0Zvcm1Hcm91cENsYXNzJ1wiPlxuICAgICAgICA8ZGl2IFtrY0NsYXNzXT1cIidrY0lucHV0V3JhcHBlckNsYXNzJ1wiPlxuICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgZm9yPVwidXNlckxhYmVsXCJcbiAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY0xhYmVsQ2xhc3MnXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7eyAnbG9naW5Ub3RwRGV2aWNlTmFtZScgfCBtc2dTdHIgfX1cbiAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgIEBpZiAodG90cC5vdHBDcmVkZW50aWFscy5sZW5ndGggPj0gMSkge1xuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJyZXF1aXJlZFwiPio8L3NwYW4+XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBba2NDbGFzc109XCIna2NJbnB1dFdyYXBwZXJDbGFzcydcIj5cbiAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgIGlkPVwidXNlckxhYmVsXCJcbiAgICAgICAgICAgIG5hbWU9XCJ1c2VyTGFiZWxcIlxuICAgICAgICAgICAgYXV0b0NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY0lucHV0Q2xhc3MnXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtaW52YWxpZF09XCJtZXNzYWdlc1BlckZpZWxkLmV4aXN0c0Vycm9yKCd1c2VyTGFiZWwnKVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgICBAaWYgKG1lc3NhZ2VzUGVyRmllbGQuZXhpc3RzRXJyb3IoJ3VzZXJMYWJlbCcpKSB7XG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICBpZD1cImlucHV0LWVycm9yLW90cC1sYWJlbFwiXG4gICAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY0lucHV0RXJyb3JNZXNzYWdlQ2xhc3MnXCJcbiAgICAgICAgICAgICAgYXJpYS1saXZlPVwicG9saXRlXCJcbiAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJtZXNzYWdlc1BlckZpZWxkLmdldCgndXNlckxhYmVsJykgfCBrY1Nhbml0aXplOiAnaHRtbCdcIlxuICAgICAgICAgICAgPjwvc3Bhbj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IFtrY0NsYXNzXT1cIidrY0Zvcm1Hcm91cENsYXNzJ1wiPlxuICAgICAgICA8a2MtbG9nb3V0LW90aGVyLXNlc3Npb25zIC8+XG4gICAgICA8L2Rpdj5cblxuICAgICAgQGlmIChpc0FwcEluaXRpYXRlZEFjdGlvbikge1xuICAgICAgICA8aW5wdXRcbiAgICAgICAgICB0eXBlPVwic3VibWl0XCJcbiAgICAgICAgICBba2NDbGFzc109XCJbJ2tjQnV0dG9uQ2xhc3MnLCAna2NCdXR0b25QcmltYXJ5Q2xhc3MnLCAna2NCdXR0b25MYXJnZUNsYXNzJ11cIlxuICAgICAgICAgIGlkPVwic2F2ZVRPVFBCdG5cIlxuICAgICAgICAgIFt2YWx1ZV09XCInZG9TdWJtaXQnIHwgbXNnU3RyXCJcbiAgICAgICAgLz5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgIFtrY0NsYXNzXT1cIlsna2NCdXR0b25DbGFzcycsICdrY0J1dHRvbkRlZmF1bHRDbGFzcycsICdrY0J1dHRvbkxhcmdlQ2xhc3MnLCAna2NCdXR0b25MYXJnZUNsYXNzJ11cIlxuICAgICAgICAgIGlkPVwiY2FuY2VsVE9UUEJ0blwiXG4gICAgICAgICAgbmFtZT1cImNhbmNlbC1haWFcIlxuICAgICAgICAgIFt2YWx1ZV09XCJ0cnVlXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7ICdkb0NhbmNlbCcgfCBtc2dTdHIgfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgICAgICAgW2tjQ2xhc3NdPVwiWydrY0J1dHRvbkNsYXNzJywgJ2tjQnV0dG9uUHJpbWFyeUNsYXNzJywgJ2tjQnV0dG9uTGFyZ2VDbGFzcyddXCJcbiAgICAgICAgICBpZD1cInNhdmVUT1RQQnRuXCJcbiAgICAgICAgICBbdmFsdWVdPVwiJ2RvU3VibWl0JyB8IG1zZ1N0clwiXG4gICAgICAgIC8+XG4gICAgICB9XG4gICAgPC9mb3JtPiA8L25nLWNvbnRhaW5lclxuPjwva2MtbG9naW4tdGVtcGxhdGU+XG4+XG4iXX0=
@@ -1,37 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, forwardRef, inject, input } from '@angular/core';
2
- import { CLASSES, KC_CONTEXT, USE_DEFAULT_CSS } from '../../../lib/public-api';
3
- import { ComponentReference } from '../../../login/classes/component-reference.class';
4
- import { TemplateComponent } from '../../../login/containers/template.component';
5
- import { KcClassDirective } from '../../../login/directives/kc-class.directive';
6
- import { MsgStrPipe } from '../../../login/pipes/msg-str.pipe';
7
- import * as i0 from "@angular/core";
8
- export class LoginIdpLinkConfirmComponent extends ComponentReference {
9
- constructor() {
10
- super(...arguments);
11
- this.kcContext = inject(KC_CONTEXT);
12
- this.doUseDefaultCss = inject(USE_DEFAULT_CSS);
13
- this.classes = inject(CLASSES);
14
- this.displayRequiredFields = input(false);
15
- this.documentTitle = input();
16
- this.bodyClassName = input();
17
- this.displayInfo = false;
18
- this.displayMessage = false;
19
- }
20
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: LoginIdpLinkConfirmComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
21
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.6", type: LoginIdpLinkConfirmComponent, isStandalone: true, selector: "kc-root", inputs: { displayRequiredFields: { classPropertyName: "displayRequiredFields", publicName: "displayRequiredFields", isSignal: true, isRequired: false, transformFunction: null }, documentTitle: { classPropertyName: "documentTitle", publicName: "documentTitle", isSignal: true, isRequired: false, transformFunction: null }, bodyClassName: { classPropertyName: "bodyClassName", publicName: "bodyClassName", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
22
- {
23
- provide: ComponentReference,
24
- useExisting: forwardRef(() => LoginIdpLinkConfirmComponent)
25
- }
26
- ], usesInheritance: true, ngImport: i0, template: "@let url = kcContext.url;\n@let idpAlias = kcContext.idpAlias;\n<kc-login-template\n [displayInfo]=\"displayInfo\"\n [bodyClassName]=\"bodyClassName()\"\n [displayMessage]=\"displayMessage\"\n [displayRequiredFields]=\"displayRequiredFields()\"\n [documentTitle]=\"documentTitle()\"\n>\n <ng-container headerNode>\n {{ 'confirmLinkIdpTitle' | msgStr }}\n </ng-container>\n <ng-container content>\n <form\n id=\"kc-register-form\"\n [action]=\"url.loginAction\"\n method=\"post\"\n >\n <div [kcClass]=\"'kcFormGroupClass'\">\n <button\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n name=\"submitAction\"\n id=\"updateProfile\"\n value=\"updateProfile\"\n >\n {{ 'confirmLinkIdpReviewProfile' | msgStr }}\n </button>\n <button\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n name=\"submitAction\"\n id=\"linkAccount\"\n value=\"linkAccount\"\n >\n {{ 'confirmLinkIdpContinue' | msgStr: idpAlias }}\n </button>\n </div>\n </form>\n </ng-container>\n</kc-login-template>\n", dependencies: [{ kind: "component", type: TemplateComponent, selector: "kc-login-template", inputs: ["displayInfo", "displayMessage", "displayRequiredFields", "documentTitle", "bodyClassName"] }, { kind: "pipe", type: MsgStrPipe, name: "msgStr" }, { kind: "directive", type: KcClassDirective, selector: "[kcClass]", inputs: ["class", "ngClass", "kcClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
27
- }
28
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: LoginIdpLinkConfirmComponent, decorators: [{
29
- type: Component,
30
- args: [{ standalone: true, imports: [TemplateComponent, MsgStrPipe, KcClassDirective], selector: 'kc-root', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
31
- {
32
- provide: ComponentReference,
33
- useExisting: forwardRef(() => LoginIdpLinkConfirmComponent)
34
- }
35
- ], template: "@let url = kcContext.url;\n@let idpAlias = kcContext.idpAlias;\n<kc-login-template\n [displayInfo]=\"displayInfo\"\n [bodyClassName]=\"bodyClassName()\"\n [displayMessage]=\"displayMessage\"\n [displayRequiredFields]=\"displayRequiredFields()\"\n [documentTitle]=\"documentTitle()\"\n>\n <ng-container headerNode>\n {{ 'confirmLinkIdpTitle' | msgStr }}\n </ng-container>\n <ng-container content>\n <form\n id=\"kc-register-form\"\n [action]=\"url.loginAction\"\n method=\"post\"\n >\n <div [kcClass]=\"'kcFormGroupClass'\">\n <button\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n name=\"submitAction\"\n id=\"updateProfile\"\n value=\"updateProfile\"\n >\n {{ 'confirmLinkIdpReviewProfile' | msgStr }}\n </button>\n <button\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n name=\"submitAction\"\n id=\"linkAccount\"\n value=\"linkAccount\"\n >\n {{ 'confirmLinkIdpContinue' | msgStr: idpAlias }}\n </button>\n </div>\n </form>\n </ng-container>\n</kc-login-template>\n" }]
36
- }] });
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4taWRwLWxpbmstY29uZmlybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rZXljbG9ha2lmeS1hbmd1bGFyL3NyYy9sb2dpbi9wYWdlcy9sb2dpbi1pZHAtbGluay1jb25maXJtL2xvZ2luLWlkcC1saW5rLWNvbmZpcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2V5Y2xvYWtpZnktYW5ndWxhci9zcmMvbG9naW4vcGFnZXMvbG9naW4taWRwLWxpbmstY29uZmlybS9sb2dpbi1pZHAtbGluay1jb25maXJtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUNSLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDSCxPQUFPLEVBQ1AsVUFBVSxFQUNWLGVBQWUsRUFDbEIsTUFBTSxxQ0FBcUMsQ0FBQztBQUc3QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUNsRyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUM3RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUM1RixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0NBQStDLENBQUM7O0FBZTNFLE1BQU0sT0FBTyw0QkFBNkIsU0FBUSxrQkFBa0I7SUFicEU7O1FBY0ksY0FBUyxHQUNMLE1BQU0sQ0FBK0QsVUFBVSxDQUFDLENBQUM7UUFDNUUsb0JBQWUsR0FBRyxNQUFNLENBQVUsZUFBZSxDQUFDLENBQUM7UUFDbkQsWUFBTyxHQUFHLE1BQU0sQ0FBb0MsT0FBTyxDQUFDLENBQUM7UUFDdEUsMEJBQXFCLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JDLGtCQUFhLEdBQUcsS0FBSyxFQUFVLENBQUM7UUFDaEMsa0JBQWEsR0FBRyxLQUFLLEVBQVUsQ0FBQztRQUNoQyxnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUM3QixtQkFBYyxHQUFZLEtBQUssQ0FBQztLQUNuQzs4R0FWWSw0QkFBNEI7a0dBQTVCLDRCQUE0QiwwZ0JBUDFCO1lBQ1A7Z0JBQ0ksT0FBTyxFQUFFLGtCQUFrQjtnQkFDM0IsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyw0QkFBNEIsQ0FBQzthQUM5RDtTQUNKLGlEQzlCTCxteUNBeUNBLDRDRHBCYyxpQkFBaUIsK0pBQUUsVUFBVSwrQ0FBRSxnQkFBZ0I7OzJGQVdoRCw0QkFBNEI7a0JBYnhDLFNBQVM7aUNBQ00sSUFBSSxXQUNQLENBQUMsaUJBQWlCLEVBQUUsVUFBVSxFQUFFLGdCQUFnQixDQUFDLFlBQ2hELFNBQVMsbUJBRUYsdUJBQXVCLENBQUMsTUFBTSxhQUNwQzt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsa0JBQWtCOzRCQUMzQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSw2QkFBNkIsQ0FBQzt5QkFDOUQ7cUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBmb3J3YXJkUmVmLFxuICAgIGluamVjdCxcbiAgICBpbnB1dFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgQ0xBU1NFUyxcbiAgICBLQ19DT05URVhULFxuICAgIFVTRV9ERUZBVUxUX0NTU1xufSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9saWIvcHVibGljLWFwaSc7XG5pbXBvcnQgeyBDbGFzc0tleSB9IGZyb20gJ2tleWNsb2FraWZ5L2xvZ2luL2xpYi9rY0Nsc3gnO1xuaW1wb3J0IHsgS2NDb250ZXh0IH0gZnJvbSAna2V5Y2xvYWtpZnkvbG9naW4vS2NDb250ZXh0JztcbmltcG9ydCB7IENvbXBvbmVudFJlZmVyZW5jZSB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL2NsYXNzZXMvY29tcG9uZW50LXJlZmVyZW5jZS5jbGFzcyc7XG5pbXBvcnQgeyBUZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL2NvbnRhaW5lcnMvdGVtcGxhdGUuY29tcG9uZW50JztcbmltcG9ydCB7IEtjQ2xhc3NEaXJlY3RpdmUgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9kaXJlY3RpdmVzL2tjLWNsYXNzLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBNc2dTdHJQaXBlIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vcGlwZXMvbXNnLXN0ci5waXBlJztcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbVGVtcGxhdGVDb21wb25lbnQsIE1zZ1N0clBpcGUsIEtjQ2xhc3NEaXJlY3RpdmVdLFxuICAgIHNlbGVjdG9yOiAna2Mtcm9vdCcsXG4gICAgdGVtcGxhdGVVcmw6ICdsb2dpbi1pZHAtbGluay1jb25maXJtLmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogQ29tcG9uZW50UmVmZXJlbmNlLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gTG9naW5JZHBMaW5rQ29uZmlybUNvbXBvbmVudClcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgTG9naW5JZHBMaW5rQ29uZmlybUNvbXBvbmVudCBleHRlbmRzIENvbXBvbmVudFJlZmVyZW5jZSB7XG4gICAga2NDb250ZXh0ID1cbiAgICAgICAgaW5qZWN0PEV4dHJhY3Q8S2NDb250ZXh0LCB7IHBhZ2VJZDogJ2xvZ2luLWlkcC1saW5rLWNvbmZpcm0uZnRsJyB9Pj4oS0NfQ09OVEVYVCk7XG4gICAgb3ZlcnJpZGUgZG9Vc2VEZWZhdWx0Q3NzID0gaW5qZWN0PGJvb2xlYW4+KFVTRV9ERUZBVUxUX0NTUyk7XG4gICAgb3ZlcnJpZGUgY2xhc3NlcyA9IGluamVjdDxQYXJ0aWFsPFJlY29yZDxDbGFzc0tleSwgc3RyaW5nPj4+KENMQVNTRVMpO1xuICAgIGRpc3BsYXlSZXF1aXJlZEZpZWxkcyA9IGlucHV0KGZhbHNlKTtcbiAgICBkb2N1bWVudFRpdGxlID0gaW5wdXQ8c3RyaW5nPigpO1xuICAgIGJvZHlDbGFzc05hbWUgPSBpbnB1dDxzdHJpbmc+KCk7XG4gICAgZGlzcGxheUluZm86IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBkaXNwbGF5TWVzc2FnZTogYm9vbGVhbiA9IGZhbHNlO1xufVxuIiwiQGxldCB1cmwgPSBrY0NvbnRleHQudXJsO1xuQGxldCBpZHBBbGlhcyA9IGtjQ29udGV4dC5pZHBBbGlhcztcbjxrYy1sb2dpbi10ZW1wbGF0ZVxuICBbZGlzcGxheUluZm9dPVwiZGlzcGxheUluZm9cIlxuICBbYm9keUNsYXNzTmFtZV09XCJib2R5Q2xhc3NOYW1lKClcIlxuICBbZGlzcGxheU1lc3NhZ2VdPVwiZGlzcGxheU1lc3NhZ2VcIlxuICBbZGlzcGxheVJlcXVpcmVkRmllbGRzXT1cImRpc3BsYXlSZXF1aXJlZEZpZWxkcygpXCJcbiAgW2RvY3VtZW50VGl0bGVdPVwiZG9jdW1lbnRUaXRsZSgpXCJcbj5cbiAgPG5nLWNvbnRhaW5lciBoZWFkZXJOb2RlPlxuICAgIHt7ICdjb25maXJtTGlua0lkcFRpdGxlJyB8IG1zZ1N0ciB9fVxuICA8L25nLWNvbnRhaW5lcj5cbiAgPG5nLWNvbnRhaW5lciBjb250ZW50PlxuICAgIDxmb3JtXG4gICAgICBpZD1cImtjLXJlZ2lzdGVyLWZvcm1cIlxuICAgICAgW2FjdGlvbl09XCJ1cmwubG9naW5BY3Rpb25cIlxuICAgICAgbWV0aG9kPVwicG9zdFwiXG4gICAgPlxuICAgICAgPGRpdiBba2NDbGFzc109XCIna2NGb3JtR3JvdXBDbGFzcydcIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgIFtrY0NsYXNzXT1cIlsna2NCdXR0b25DbGFzcycsICdrY0J1dHRvbkRlZmF1bHRDbGFzcycsICdrY0J1dHRvbkJsb2NrQ2xhc3MnLCAna2NCdXR0b25MYXJnZUNsYXNzJ11cIlxuICAgICAgICAgIG5hbWU9XCJzdWJtaXRBY3Rpb25cIlxuICAgICAgICAgIGlkPVwidXBkYXRlUHJvZmlsZVwiXG4gICAgICAgICAgdmFsdWU9XCJ1cGRhdGVQcm9maWxlXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7ICdjb25maXJtTGlua0lkcFJldmlld1Byb2ZpbGUnIHwgbXNnU3RyIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgICAgICAgW2tjQ2xhc3NdPVwiWydrY0J1dHRvbkNsYXNzJywgJ2tjQnV0dG9uRGVmYXVsdENsYXNzJywgJ2tjQnV0dG9uQmxvY2tDbGFzcycsICdrY0J1dHRvbkxhcmdlQ2xhc3MnXVwiXG4gICAgICAgICAgbmFtZT1cInN1Ym1pdEFjdGlvblwiXG4gICAgICAgICAgaWQ9XCJsaW5rQWNjb3VudFwiXG4gICAgICAgICAgdmFsdWU9XCJsaW5rQWNjb3VudFwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyAnY29uZmlybUxpbmtJZHBDb250aW51ZScgfCBtc2dTdHI6IGlkcEFsaWFzIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9mb3JtPlxuICA8L25nLWNvbnRhaW5lcj5cbjwva2MtbG9naW4tdGVtcGxhdGU+XG4iXX0=
@@ -1,37 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, forwardRef, inject, input } from '@angular/core';
2
- import { CLASSES, KC_CONTEXT, USE_DEFAULT_CSS } from '../../../lib/public-api';
3
- import { ComponentReference } from '../../../login/classes/component-reference.class';
4
- import { TemplateComponent } from '../../../login/containers/template.component';
5
- import { KcClassDirective } from '../../../login/directives/kc-class.directive';
6
- import { MsgStrPipe } from '../../../login/pipes/msg-str.pipe';
7
- import * as i0 from "@angular/core";
8
- export class LoginIdpLinkConfirmOverrideComponent extends ComponentReference {
9
- constructor() {
10
- super(...arguments);
11
- this.kcContext = inject(KC_CONTEXT);
12
- this.doUseDefaultCss = inject(USE_DEFAULT_CSS);
13
- this.classes = inject(CLASSES);
14
- this.displayRequiredFields = input(false);
15
- this.documentTitle = input();
16
- this.bodyClassName = input();
17
- this.displayInfo = false;
18
- this.displayMessage = false;
19
- }
20
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: LoginIdpLinkConfirmOverrideComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
21
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.6", type: LoginIdpLinkConfirmOverrideComponent, isStandalone: true, selector: "kc-root", inputs: { displayRequiredFields: { classPropertyName: "displayRequiredFields", publicName: "displayRequiredFields", isSignal: true, isRequired: false, transformFunction: null }, documentTitle: { classPropertyName: "documentTitle", publicName: "documentTitle", isSignal: true, isRequired: false, transformFunction: null }, bodyClassName: { classPropertyName: "bodyClassName", publicName: "bodyClassName", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
22
- {
23
- provide: ComponentReference,
24
- useExisting: forwardRef(() => LoginIdpLinkConfirmOverrideComponent)
25
- }
26
- ], usesInheritance: true, ngImport: i0, template: "@let url = kcContext.url;\n@let idpDisplayName = kcContext.idpDisplayName;\n\n<kc-login-template\n [displayInfo]=\"displayInfo\"\n [bodyClassName]=\"bodyClassName()\"\n [displayMessage]=\"displayMessage\"\n [displayRequiredFields]=\"displayRequiredFields()\"\n [documentTitle]=\"documentTitle()\"\n>\n <ng-container headerNode>\n {{ 'confirmOverrideIdpTitle' | msgStr }}\n </ng-container>\n <ng-container content>\n <form\n id=\"kc-register-form\"\n [action]=\"url.loginAction\"\n method=\"post\"\n >\n {{ 'pageExpiredMsg1' | msgStr }}\n <a\n id=\"loginRestartLink\"\n [href]=\"url.loginRestartFlowUrl\"\n >\n {{ 'doClickHere' | msgStr }}\n </a>\n <br />\n <br />\n <button\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n name=\"submitAction\"\n id=\"confirmOverride\"\n value=\"confirmOverride\"\n >\n {{ 'confirmOverrideIdpContinue' | msgStr: idpDisplayName }}\n </button>\n </form>\n </ng-container>\n</kc-login-template>\n", dependencies: [{ kind: "directive", type: KcClassDirective, selector: "[kcClass]", inputs: ["class", "ngClass", "kcClass"] }, { kind: "component", type: TemplateComponent, selector: "kc-login-template", inputs: ["displayInfo", "displayMessage", "displayRequiredFields", "documentTitle", "bodyClassName"] }, { kind: "pipe", type: MsgStrPipe, name: "msgStr" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
27
- }
28
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: LoginIdpLinkConfirmOverrideComponent, decorators: [{
29
- type: Component,
30
- args: [{ standalone: true, imports: [KcClassDirective, TemplateComponent, MsgStrPipe], selector: 'kc-root', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
31
- {
32
- provide: ComponentReference,
33
- useExisting: forwardRef(() => LoginIdpLinkConfirmOverrideComponent)
34
- }
35
- ], template: "@let url = kcContext.url;\n@let idpDisplayName = kcContext.idpDisplayName;\n\n<kc-login-template\n [displayInfo]=\"displayInfo\"\n [bodyClassName]=\"bodyClassName()\"\n [displayMessage]=\"displayMessage\"\n [displayRequiredFields]=\"displayRequiredFields()\"\n [documentTitle]=\"documentTitle()\"\n>\n <ng-container headerNode>\n {{ 'confirmOverrideIdpTitle' | msgStr }}\n </ng-container>\n <ng-container content>\n <form\n id=\"kc-register-form\"\n [action]=\"url.loginAction\"\n method=\"post\"\n >\n {{ 'pageExpiredMsg1' | msgStr }}\n <a\n id=\"loginRestartLink\"\n [href]=\"url.loginRestartFlowUrl\"\n >\n {{ 'doClickHere' | msgStr }}\n </a>\n <br />\n <br />\n <button\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n name=\"submitAction\"\n id=\"confirmOverride\"\n value=\"confirmOverride\"\n >\n {{ 'confirmOverrideIdpContinue' | msgStr: idpDisplayName }}\n </button>\n </form>\n </ng-container>\n</kc-login-template>\n" }]
36
- }] });
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4taWRwLWxpbmstY29uZmlybS1vdmVycmlkZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rZXljbG9ha2lmeS1hbmd1bGFyL3NyYy9sb2dpbi9wYWdlcy9sb2dpbi1pZHAtbGluay1jb25maXJtLW92ZXJyaWRlL2xvZ2luLWlkcC1saW5rLWNvbmZpcm0tb3ZlcnJpZGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2V5Y2xvYWtpZnktYW5ndWxhci9zcmMvbG9naW4vcGFnZXMvbG9naW4taWRwLWxpbmstY29uZmlybS1vdmVycmlkZS9sb2dpbi1pZHAtbGluay1jb25maXJtLW92ZXJyaWRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUNSLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDSCxPQUFPLEVBQ1AsVUFBVSxFQUNWLGVBQWUsRUFDbEIsTUFBTSxxQ0FBcUMsQ0FBQztBQUc3QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUNsRyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUM3RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUM1RixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0NBQStDLENBQUM7O0FBZTNFLE1BQU0sT0FBTyxvQ0FBcUMsU0FBUSxrQkFBa0I7SUFiNUU7O1FBY0ksY0FBUyxHQUNMLE1BQU0sQ0FDRixVQUFVLENBQ2IsQ0FBQztRQUNHLG9CQUFlLEdBQUcsTUFBTSxDQUFVLGVBQWUsQ0FBQyxDQUFDO1FBQ25ELFlBQU8sR0FBRyxNQUFNLENBQW9DLE9BQU8sQ0FBQyxDQUFDO1FBQ3RFLDBCQUFxQixHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQyxrQkFBYSxHQUFHLEtBQUssRUFBVSxDQUFDO1FBQ2hDLGtCQUFhLEdBQUcsS0FBSyxFQUFVLENBQUM7UUFDaEMsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFDN0IsbUJBQWMsR0FBWSxLQUFLLENBQUM7S0FDbkM7OEdBWlksb0NBQW9DO2tHQUFwQyxvQ0FBb0MsMGdCQVBsQztZQUNQO2dCQUNJLE9BQU8sRUFBRSxrQkFBa0I7Z0JBQzNCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsb0NBQW9DLENBQUM7YUFDdEU7U0FDSixpREM5QkwsMG5DQXdDQSw0Q0RuQmMsZ0JBQWdCLCtGQUFFLGlCQUFpQiwrSkFBRSxVQUFVOzsyRkFXaEQsb0NBQW9DO2tCQWJoRCxTQUFTO2lDQUNNLElBQUksV0FDUCxDQUFDLGdCQUFnQixFQUFFLGlCQUFpQixFQUFFLFVBQVUsQ0FBQyxZQUNoRCxTQUFTLG1CQUVGLHVCQUF1QixDQUFDLE1BQU0sYUFDcEM7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLGtCQUFrQjs0QkFDM0IsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUscUNBQXFDLENBQUM7eUJBQ3RFO3FCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgZm9yd2FyZFJlZixcbiAgICBpbmplY3QsXG4gICAgaW5wdXRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIENMQVNTRVMsXG4gICAgS0NfQ09OVEVYVCxcbiAgICBVU0VfREVGQVVMVF9DU1Ncbn0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbGliL3B1YmxpYy1hcGknO1xuaW1wb3J0IHsgQ2xhc3NLZXkgfSBmcm9tICdrZXljbG9ha2lmeS9sb2dpbi9saWIva2NDbHN4JztcbmltcG9ydCB7IEtjQ29udGV4dCB9IGZyb20gJ2tleWNsb2FraWZ5L2xvZ2luL0tjQ29udGV4dCc7XG5pbXBvcnQgeyBDb21wb25lbnRSZWZlcmVuY2UgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9jbGFzc2VzL2NvbXBvbmVudC1yZWZlcmVuY2UuY2xhc3MnO1xuaW1wb3J0IHsgVGVtcGxhdGVDb21wb25lbnQgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9jb250YWluZXJzL3RlbXBsYXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBLY0NsYXNzRGlyZWN0aXZlIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vZGlyZWN0aXZlcy9rYy1jbGFzcy5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgTXNnU3RyUGlwZSB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL3BpcGVzL21zZy1zdHIucGlwZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0tjQ2xhc3NEaXJlY3RpdmUsIFRlbXBsYXRlQ29tcG9uZW50LCBNc2dTdHJQaXBlXSxcbiAgICBzZWxlY3RvcjogJ2tjLXJvb3QnLFxuICAgIHRlbXBsYXRlVXJsOiAnbG9naW4taWRwLWxpbmstY29uZmlybS1vdmVycmlkZS5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IENvbXBvbmVudFJlZmVyZW5jZSxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IExvZ2luSWRwTGlua0NvbmZpcm1PdmVycmlkZUNvbXBvbmVudClcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgTG9naW5JZHBMaW5rQ29uZmlybU92ZXJyaWRlQ29tcG9uZW50IGV4dGVuZHMgQ29tcG9uZW50UmVmZXJlbmNlIHtcbiAgICBrY0NvbnRleHQgPVxuICAgICAgICBpbmplY3Q8RXh0cmFjdDxLY0NvbnRleHQsIHsgcGFnZUlkOiAnbG9naW4taWRwLWxpbmstY29uZmlybS1vdmVycmlkZS5mdGwnIH0+PihcbiAgICAgICAgICAgIEtDX0NPTlRFWFRcbiAgICAgICAgKTtcbiAgICBvdmVycmlkZSBkb1VzZURlZmF1bHRDc3MgPSBpbmplY3Q8Ym9vbGVhbj4oVVNFX0RFRkFVTFRfQ1NTKTtcbiAgICBvdmVycmlkZSBjbGFzc2VzID0gaW5qZWN0PFBhcnRpYWw8UmVjb3JkPENsYXNzS2V5LCBzdHJpbmc+Pj4oQ0xBU1NFUyk7XG4gICAgZGlzcGxheVJlcXVpcmVkRmllbGRzID0gaW5wdXQoZmFsc2UpO1xuICAgIGRvY3VtZW50VGl0bGUgPSBpbnB1dDxzdHJpbmc+KCk7XG4gICAgYm9keUNsYXNzTmFtZSA9IGlucHV0PHN0cmluZz4oKTtcbiAgICBkaXNwbGF5SW5mbzogYm9vbGVhbiA9IGZhbHNlO1xuICAgIGRpc3BsYXlNZXNzYWdlOiBib29sZWFuID0gZmFsc2U7XG59XG4iLCJAbGV0IHVybCA9IGtjQ29udGV4dC51cmw7XG5AbGV0IGlkcERpc3BsYXlOYW1lID0ga2NDb250ZXh0LmlkcERpc3BsYXlOYW1lO1xuXG48a2MtbG9naW4tdGVtcGxhdGVcbiAgW2Rpc3BsYXlJbmZvXT1cImRpc3BsYXlJbmZvXCJcbiAgW2JvZHlDbGFzc05hbWVdPVwiYm9keUNsYXNzTmFtZSgpXCJcbiAgW2Rpc3BsYXlNZXNzYWdlXT1cImRpc3BsYXlNZXNzYWdlXCJcbiAgW2Rpc3BsYXlSZXF1aXJlZEZpZWxkc109XCJkaXNwbGF5UmVxdWlyZWRGaWVsZHMoKVwiXG4gIFtkb2N1bWVudFRpdGxlXT1cImRvY3VtZW50VGl0bGUoKVwiXG4+XG4gIDxuZy1jb250YWluZXIgaGVhZGVyTm9kZT5cbiAgICB7eyAnY29uZmlybU92ZXJyaWRlSWRwVGl0bGUnIHwgbXNnU3RyIH19XG4gIDwvbmctY29udGFpbmVyPlxuICA8bmctY29udGFpbmVyIGNvbnRlbnQ+XG4gICAgPGZvcm1cbiAgICAgIGlkPVwia2MtcmVnaXN0ZXItZm9ybVwiXG4gICAgICBbYWN0aW9uXT1cInVybC5sb2dpbkFjdGlvblwiXG4gICAgICBtZXRob2Q9XCJwb3N0XCJcbiAgICA+XG4gICAgICB7eyAncGFnZUV4cGlyZWRNc2cxJyB8IG1zZ1N0ciB9fVxuICAgICAgPGFcbiAgICAgICAgaWQ9XCJsb2dpblJlc3RhcnRMaW5rXCJcbiAgICAgICAgW2hyZWZdPVwidXJsLmxvZ2luUmVzdGFydEZsb3dVcmxcIlxuICAgICAgPlxuICAgICAgICB7eyAnZG9DbGlja0hlcmUnIHwgbXNnU3RyIH19XG4gICAgICA8L2E+XG4gICAgICA8YnIgLz5cbiAgICAgIDxiciAvPlxuICAgICAgPGJ1dHRvblxuICAgICAgICB0eXBlPVwic3VibWl0XCJcbiAgICAgICAgW2tjQ2xhc3NdPVwiWydrY0J1dHRvbkNsYXNzJywgJ2tjQnV0dG9uRGVmYXVsdENsYXNzJywgJ2tjQnV0dG9uQmxvY2tDbGFzcycsICdrY0J1dHRvbkxhcmdlQ2xhc3MnXVwiXG4gICAgICAgIG5hbWU9XCJzdWJtaXRBY3Rpb25cIlxuICAgICAgICBpZD1cImNvbmZpcm1PdmVycmlkZVwiXG4gICAgICAgIHZhbHVlPVwiY29uZmlybU92ZXJyaWRlXCJcbiAgICAgID5cbiAgICAgICAge3sgJ2NvbmZpcm1PdmVycmlkZUlkcENvbnRpbnVlJyB8IG1zZ1N0cjogaWRwRGlzcGxheU5hbWUgfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZm9ybT5cbiAgPC9uZy1jb250YWluZXI+XG48L2tjLWxvZ2luLXRlbXBsYXRlPlxuIl19
@@ -1,37 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, forwardRef, inject, input } from '@angular/core';
2
- import { CLASSES, KC_CONTEXT, USE_DEFAULT_CSS } from '../../../lib/public-api';
3
- import { ComponentReference } from '../../../login/classes/component-reference.class';
4
- import { TemplateComponent } from '../../../login/containers/template.component';
5
- import { KcClassDirective } from '../../../login/directives/kc-class.directive';
6
- import { MsgStrPipe } from '../../../login/pipes/msg-str.pipe';
7
- import * as i0 from "@angular/core";
8
- export class LoginIdpLinkEmailComponent extends ComponentReference {
9
- constructor() {
10
- super(...arguments);
11
- this.kcContext = inject(KC_CONTEXT);
12
- this.doUseDefaultCss = inject(USE_DEFAULT_CSS);
13
- this.classes = inject(CLASSES);
14
- this.displayRequiredFields = input(false);
15
- this.documentTitle = input();
16
- this.bodyClassName = input();
17
- this.displayInfo = false;
18
- this.displayMessage = false;
19
- }
20
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: LoginIdpLinkEmailComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
21
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.6", type: LoginIdpLinkEmailComponent, isStandalone: true, selector: "kc-root", inputs: { displayRequiredFields: { classPropertyName: "displayRequiredFields", publicName: "displayRequiredFields", isSignal: true, isRequired: false, transformFunction: null }, documentTitle: { classPropertyName: "documentTitle", publicName: "documentTitle", isSignal: true, isRequired: false, transformFunction: null }, bodyClassName: { classPropertyName: "bodyClassName", publicName: "bodyClassName", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
22
- {
23
- provide: ComponentReference,
24
- useExisting: forwardRef(() => LoginIdpLinkEmailComponent)
25
- }
26
- ], usesInheritance: true, ngImport: i0, template: "@let idpAlias = kcContext.idpAlias;\n@let brokerContext = kcContext.brokerContext;\n@let realm = kcContext.realm;\n@let url = kcContext.url;\n<kc-login-template\n [displayInfo]=\"displayInfo\"\n [bodyClassName]=\"bodyClassName()\"\n [displayMessage]=\"displayMessage\"\n [displayRequiredFields]=\"displayRequiredFields()\"\n [documentTitle]=\"documentTitle()\"\n>\n <ng-container headerNode>\n {{ 'emailLinkIdpTitle' | msgStr: idpAlias }}\n </ng-container>\n <ng-container content>\n <p\n id=\"instruction1\"\n class=\"instruction\"\n >\n {{ 'emailLinkIdp1' | msgStr: idpAlias : brokerContext.username : realm.displayName }}\n </p>\n <p\n id=\"instruction2\"\n class=\"instruction\"\n >\n {{ 'emailLinkIdp2' | msgStr }} <a [href]=\"url.loginAction\">{{ 'doClickHere' | msgStr }}</a>\n {{ 'emailLinkIdp3' | msgStr }}\n </p>\n <p\n id=\"instruction3\"\n class=\"instruction\"\n >\n {{ 'emailLinkIdp4' | msgStr }} <a [href]=\"url.loginAction\">{{ 'doClickHere' | msgStr }}</a>\n {{ 'emailLinkIdp5' | msgStr }}\n </p></ng-container\n >\n</kc-login-template>\n", dependencies: [{ kind: "component", type: TemplateComponent, selector: "kc-login-template", inputs: ["displayInfo", "displayMessage", "displayRequiredFields", "documentTitle", "bodyClassName"] }, { kind: "pipe", type: MsgStrPipe, name: "msgStr" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
27
- }
28
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: LoginIdpLinkEmailComponent, decorators: [{
29
- type: Component,
30
- args: [{ standalone: true, imports: [TemplateComponent, MsgStrPipe, KcClassDirective], selector: 'kc-root', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
31
- {
32
- provide: ComponentReference,
33
- useExisting: forwardRef(() => LoginIdpLinkEmailComponent)
34
- }
35
- ], template: "@let idpAlias = kcContext.idpAlias;\n@let brokerContext = kcContext.brokerContext;\n@let realm = kcContext.realm;\n@let url = kcContext.url;\n<kc-login-template\n [displayInfo]=\"displayInfo\"\n [bodyClassName]=\"bodyClassName()\"\n [displayMessage]=\"displayMessage\"\n [displayRequiredFields]=\"displayRequiredFields()\"\n [documentTitle]=\"documentTitle()\"\n>\n <ng-container headerNode>\n {{ 'emailLinkIdpTitle' | msgStr: idpAlias }}\n </ng-container>\n <ng-container content>\n <p\n id=\"instruction1\"\n class=\"instruction\"\n >\n {{ 'emailLinkIdp1' | msgStr: idpAlias : brokerContext.username : realm.displayName }}\n </p>\n <p\n id=\"instruction2\"\n class=\"instruction\"\n >\n {{ 'emailLinkIdp2' | msgStr }} <a [href]=\"url.loginAction\">{{ 'doClickHere' | msgStr }}</a>\n {{ 'emailLinkIdp3' | msgStr }}\n </p>\n <p\n id=\"instruction3\"\n class=\"instruction\"\n >\n {{ 'emailLinkIdp4' | msgStr }} <a [href]=\"url.loginAction\">{{ 'doClickHere' | msgStr }}</a>\n {{ 'emailLinkIdp5' | msgStr }}\n </p></ng-container\n >\n</kc-login-template>\n" }]
36
- }] });
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4taWRwLWxpbmstZW1haWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2V5Y2xvYWtpZnktYW5ndWxhci9zcmMvbG9naW4vcGFnZXMvbG9naW4taWRwLWxpbmstZW1haWwvbG9naW4taWRwLWxpbmstZW1haWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2V5Y2xvYWtpZnktYW5ndWxhci9zcmMvbG9naW4vcGFnZXMvbG9naW4taWRwLWxpbmstZW1haWwvbG9naW4taWRwLWxpbmstZW1haWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBQ1IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNILE9BQU8sRUFDUCxVQUFVLEVBQ1YsZUFBZSxFQUNsQixNQUFNLHFDQUFxQyxDQUFDO0FBRzdDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQzdGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQzVGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQzs7QUFlM0UsTUFBTSxPQUFPLDBCQUEyQixTQUFRLGtCQUFrQjtJQWJsRTs7UUFjSSxjQUFTLEdBQ0wsTUFBTSxDQUE2RCxVQUFVLENBQUMsQ0FBQztRQUMxRSxvQkFBZSxHQUFHLE1BQU0sQ0FBVSxlQUFlLENBQUMsQ0FBQztRQUNuRCxZQUFPLEdBQUcsTUFBTSxDQUFvQyxPQUFPLENBQUMsQ0FBQztRQUN0RSwwQkFBcUIsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckMsa0JBQWEsR0FBRyxLQUFLLEVBQVUsQ0FBQztRQUNoQyxrQkFBYSxHQUFHLEtBQUssRUFBVSxDQUFDO1FBQ2hDLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBQzdCLG1CQUFjLEdBQVksS0FBSyxDQUFDO0tBQ25DOzhHQVZZLDBCQUEwQjtrR0FBMUIsMEJBQTBCLDBnQkFQeEI7WUFDUDtnQkFDSSxPQUFPLEVBQUUsa0JBQWtCO2dCQUMzQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLDBCQUEwQixDQUFDO2FBQzVEO1NBQ0osaURDOUJMLCtuQ0FxQ0EsNENEaEJjLGlCQUFpQiwrSkFBRSxVQUFVOzsyRkFXOUIsMEJBQTBCO2tCQWJ0QyxTQUFTO2lDQUNNLElBQUksV0FDUCxDQUFDLGlCQUFpQixFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsQ0FBQyxZQUNoRCxTQUFTLG1CQUVGLHVCQUF1QixDQUFDLE1BQU0sYUFDcEM7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLGtCQUFrQjs0QkFDM0IsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsMkJBQTJCLENBQUM7eUJBQzVEO3FCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgZm9yd2FyZFJlZixcbiAgICBpbmplY3QsXG4gICAgaW5wdXRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIENMQVNTRVMsXG4gICAgS0NfQ09OVEVYVCxcbiAgICBVU0VfREVGQVVMVF9DU1Ncbn0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbGliL3B1YmxpYy1hcGknO1xuaW1wb3J0IHsgQ2xhc3NLZXkgfSBmcm9tICdrZXljbG9ha2lmeS9sb2dpbi9saWIva2NDbHN4JztcbmltcG9ydCB7IEtjQ29udGV4dCB9IGZyb20gJ2tleWNsb2FraWZ5L2xvZ2luL0tjQ29udGV4dCc7XG5pbXBvcnQgeyBDb21wb25lbnRSZWZlcmVuY2UgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9jbGFzc2VzL2NvbXBvbmVudC1yZWZlcmVuY2UuY2xhc3MnO1xuaW1wb3J0IHsgVGVtcGxhdGVDb21wb25lbnQgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9jb250YWluZXJzL3RlbXBsYXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBLY0NsYXNzRGlyZWN0aXZlIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vZGlyZWN0aXZlcy9rYy1jbGFzcy5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgTXNnU3RyUGlwZSB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL3BpcGVzL21zZy1zdHIucGlwZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1RlbXBsYXRlQ29tcG9uZW50LCBNc2dTdHJQaXBlLCBLY0NsYXNzRGlyZWN0aXZlXSxcbiAgICBzZWxlY3RvcjogJ2tjLXJvb3QnLFxuICAgIHRlbXBsYXRlVXJsOiAnbG9naW4taWRwLWxpbmstZW1haWwuY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBDb21wb25lbnRSZWZlcmVuY2UsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBMb2dpbklkcExpbmtFbWFpbENvbXBvbmVudClcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgTG9naW5JZHBMaW5rRW1haWxDb21wb25lbnQgZXh0ZW5kcyBDb21wb25lbnRSZWZlcmVuY2Uge1xuICAgIGtjQ29udGV4dCA9XG4gICAgICAgIGluamVjdDxFeHRyYWN0PEtjQ29udGV4dCwgeyBwYWdlSWQ6ICdsb2dpbi1pZHAtbGluay1lbWFpbC5mdGwnIH0+PihLQ19DT05URVhUKTtcbiAgICBvdmVycmlkZSBkb1VzZURlZmF1bHRDc3MgPSBpbmplY3Q8Ym9vbGVhbj4oVVNFX0RFRkFVTFRfQ1NTKTtcbiAgICBvdmVycmlkZSBjbGFzc2VzID0gaW5qZWN0PFBhcnRpYWw8UmVjb3JkPENsYXNzS2V5LCBzdHJpbmc+Pj4oQ0xBU1NFUyk7XG4gICAgZGlzcGxheVJlcXVpcmVkRmllbGRzID0gaW5wdXQoZmFsc2UpO1xuICAgIGRvY3VtZW50VGl0bGUgPSBpbnB1dDxzdHJpbmc+KCk7XG4gICAgYm9keUNsYXNzTmFtZSA9IGlucHV0PHN0cmluZz4oKTtcbiAgICBkaXNwbGF5SW5mbzogYm9vbGVhbiA9IGZhbHNlO1xuICAgIGRpc3BsYXlNZXNzYWdlOiBib29sZWFuID0gZmFsc2U7XG59XG4iLCJAbGV0IGlkcEFsaWFzID0ga2NDb250ZXh0LmlkcEFsaWFzO1xuQGxldCBicm9rZXJDb250ZXh0ID0ga2NDb250ZXh0LmJyb2tlckNvbnRleHQ7XG5AbGV0IHJlYWxtID0ga2NDb250ZXh0LnJlYWxtO1xuQGxldCB1cmwgPSBrY0NvbnRleHQudXJsO1xuPGtjLWxvZ2luLXRlbXBsYXRlXG4gIFtkaXNwbGF5SW5mb109XCJkaXNwbGF5SW5mb1wiXG4gIFtib2R5Q2xhc3NOYW1lXT1cImJvZHlDbGFzc05hbWUoKVwiXG4gIFtkaXNwbGF5TWVzc2FnZV09XCJkaXNwbGF5TWVzc2FnZVwiXG4gIFtkaXNwbGF5UmVxdWlyZWRGaWVsZHNdPVwiZGlzcGxheVJlcXVpcmVkRmllbGRzKClcIlxuICBbZG9jdW1lbnRUaXRsZV09XCJkb2N1bWVudFRpdGxlKClcIlxuPlxuICA8bmctY29udGFpbmVyIGhlYWRlck5vZGU+XG4gICAge3sgJ2VtYWlsTGlua0lkcFRpdGxlJyB8IG1zZ1N0cjogaWRwQWxpYXMgfX1cbiAgPC9uZy1jb250YWluZXI+XG4gIDxuZy1jb250YWluZXIgY29udGVudD5cbiAgICA8cFxuICAgICAgaWQ9XCJpbnN0cnVjdGlvbjFcIlxuICAgICAgY2xhc3M9XCJpbnN0cnVjdGlvblwiXG4gICAgPlxuICAgICAge3sgJ2VtYWlsTGlua0lkcDEnIHwgbXNnU3RyOiBpZHBBbGlhcyA6IGJyb2tlckNvbnRleHQudXNlcm5hbWUgOiByZWFsbS5kaXNwbGF5TmFtZSB9fVxuICAgIDwvcD5cbiAgICA8cFxuICAgICAgaWQ9XCJpbnN0cnVjdGlvbjJcIlxuICAgICAgY2xhc3M9XCJpbnN0cnVjdGlvblwiXG4gICAgPlxuICAgICAge3sgJ2VtYWlsTGlua0lkcDInIHwgbXNnU3RyIH19IDxhIFtocmVmXT1cInVybC5sb2dpbkFjdGlvblwiPnt7ICdkb0NsaWNrSGVyZScgfCBtc2dTdHIgfX08L2E+XG4gICAgICB7eyAnZW1haWxMaW5rSWRwMycgfCBtc2dTdHIgfX1cbiAgICA8L3A+XG4gICAgPHBcbiAgICAgIGlkPVwiaW5zdHJ1Y3Rpb24zXCJcbiAgICAgIGNsYXNzPVwiaW5zdHJ1Y3Rpb25cIlxuICAgID5cbiAgICAgIHt7ICdlbWFpbExpbmtJZHA0JyB8IG1zZ1N0ciB9fSA8YSBbaHJlZl09XCJ1cmwubG9naW5BY3Rpb25cIj57eyAnZG9DbGlja0hlcmUnIHwgbXNnU3RyIH19PC9hPlxuICAgICAge3sgJ2VtYWlsTGlua0lkcDUnIHwgbXNnU3RyIH19XG4gICAgPC9wPjwvbmctY29udGFpbmVyXG4gID5cbjwva2MtbG9naW4tdGVtcGxhdGU+XG4iXX0=