@keycloakify/angular 0.0.1-rc.16 → 0.0.1-rc.18

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 (1046) hide show
  1. package/account/DefaultPage/DefaultPage.d.ts +38 -0
  2. package/account/DefaultPage/index.d.ts +5 -0
  3. package/account/KcContext/index.d.ts +5 -0
  4. package/account/classes/component-reference/component-reference.class.d.ts +6 -0
  5. package/account/classes/component-reference/index.d.ts +5 -0
  6. package/account/containers/template/index.d.ts +5 -0
  7. package/account/containers/template/template.component.d.ts +26 -0
  8. package/account/directives/kc-class/index.d.ts +5 -0
  9. package/account/directives/kc-class/kc-class.directive.d.ts +26 -0
  10. package/account/i18n/index.d.ts +5 -0
  11. package/account/pages/account/account.component.d.ts +14 -0
  12. package/account/pages/account/index.d.ts +5 -0
  13. package/account/pages/applications/applications.component.d.ts +13 -0
  14. package/account/pages/applications/index.d.ts +5 -0
  15. package/account/pages/federatedIdentity/federatedIdentity.component.d.ts +13 -0
  16. package/account/pages/federatedIdentity/index.d.ts +5 -0
  17. package/account/pages/log/index.d.ts +5 -0
  18. package/account/pages/log/log.component.d.ts +13 -0
  19. package/account/pages/password/index.d.ts +5 -0
  20. package/account/pages/password/password.component.d.ts +28 -0
  21. package/account/pages/sessions/index.d.ts +5 -0
  22. package/account/pages/sessions/sessions.component.d.ts +13 -0
  23. package/account/pages/totp/index.d.ts +5 -0
  24. package/account/pages/totp/totp.component.d.ts +13 -0
  25. package/account/providers/keycloakify-angular/index.d.ts +5 -0
  26. package/account/providers/keycloakify-angular/keycloakify-angular.providers.d.ts +15 -0
  27. package/account/services/account-resource-injector/account-resource-injector.service.d.ts +10 -0
  28. package/account/services/account-resource-injector/index.d.ts +5 -0
  29. package/account/services/i18n/i18n.service.d.ts +6 -0
  30. package/account/services/i18n/index.d.ts +5 -0
  31. package/account/tokens/classes/classes.token.d.ts +16 -0
  32. package/account/tokens/classes/index.d.ts +5 -0
  33. package/account/tokens/i18n/i18n.token.d.ts +2 -0
  34. package/account/tokens/i18n/index.d.ts +5 -0
  35. package/account/tokens/kc-context/index.d.ts +5 -0
  36. package/account/tokens/kc-context/kc-context.token.d.ts +3 -0
  37. package/esm2022/account/DefaultPage/DefaultPage.mjs +34 -0
  38. package/esm2022/account/DefaultPage/keycloakify-angular-account-DefaultPage.mjs +5 -0
  39. package/esm2022/account/DefaultPage/public-api.mjs +2 -0
  40. package/esm2022/account/KcContext/KcContext.mjs +2 -0
  41. package/esm2022/account/KcContext/keycloakify-angular-account-KcContext.mjs +5 -0
  42. package/esm2022/account/KcContext/public-api.mjs +2 -0
  43. package/esm2022/account/classes/component-reference/component-reference.class.mjs +3 -0
  44. package/esm2022/account/classes/component-reference/keycloakify-angular-account-classes-component-reference.mjs +5 -0
  45. package/esm2022/account/classes/component-reference/public-api.mjs +2 -0
  46. package/esm2022/account/containers/template/keycloakify-angular-account-containers-template.mjs +5 -0
  47. package/esm2022/account/containers/template/public-api.mjs +2 -0
  48. package/esm2022/account/containers/template/template.component.mjs +66 -0
  49. package/esm2022/account/directives/kc-class/kc-class.directive.mjs +141 -0
  50. package/esm2022/account/directives/kc-class/keycloakify-angular-account-directives-kc-class.mjs +5 -0
  51. package/esm2022/account/directives/kc-class/public-api.mjs +2 -0
  52. package/esm2022/account/i18n/i18n.mjs +2 -0
  53. package/esm2022/account/i18n/keycloakify-angular-account-i18n.mjs +5 -0
  54. package/esm2022/account/i18n/public-api.mjs +2 -0
  55. package/esm2022/account/pages/account/account.component.mjs +39 -0
  56. package/esm2022/account/pages/account/keycloakify-angular-account-pages-account.mjs +5 -0
  57. package/esm2022/account/pages/account/public-api.mjs +2 -0
  58. package/esm2022/account/pages/applications/applications.component.mjs +37 -0
  59. package/esm2022/account/pages/applications/keycloakify-angular-account-pages-applications.mjs +5 -0
  60. package/esm2022/account/pages/applications/public-api.mjs +2 -0
  61. package/esm2022/account/pages/federatedIdentity/federatedIdentity.component.mjs +36 -0
  62. package/esm2022/account/pages/federatedIdentity/keycloakify-angular-account-pages-federatedIdentity.mjs +5 -0
  63. package/esm2022/account/pages/federatedIdentity/public-api.mjs +2 -0
  64. package/esm2022/account/pages/log/keycloakify-angular-account-pages-log.mjs +5 -0
  65. package/esm2022/account/pages/log/log.component.mjs +36 -0
  66. package/esm2022/account/pages/log/public-api.mjs +2 -0
  67. package/esm2022/account/pages/password/keycloakify-angular-account-pages-password.mjs +5 -0
  68. package/esm2022/account/pages/password/password.component.mjs +108 -0
  69. package/esm2022/account/pages/password/public-api.mjs +2 -0
  70. package/esm2022/account/pages/sessions/keycloakify-angular-account-pages-sessions.mjs +5 -0
  71. package/esm2022/account/pages/sessions/public-api.mjs +2 -0
  72. package/esm2022/account/pages/sessions/sessions.component.mjs +36 -0
  73. package/esm2022/account/pages/totp/keycloakify-angular-account-pages-totp.mjs +5 -0
  74. package/esm2022/account/pages/totp/public-api.mjs +2 -0
  75. package/esm2022/account/pages/totp/totp.component.mjs +37 -0
  76. package/esm2022/account/providers/keycloakify-angular/keycloakify-angular-account-providers-keycloakify-angular.mjs +5 -0
  77. package/esm2022/account/providers/keycloakify-angular/keycloakify-angular.providers.mjs +49 -0
  78. package/esm2022/account/providers/keycloakify-angular/public-api.mjs +2 -0
  79. package/esm2022/account/services/account-resource-injector/account-resource-injector.service.mjs +37 -0
  80. package/esm2022/account/services/account-resource-injector/keycloakify-angular-account-services-account-resource-injector.mjs +5 -0
  81. package/esm2022/account/services/account-resource-injector/public-api.mjs +2 -0
  82. package/esm2022/account/services/i18n/i18n.service.mjs +12 -0
  83. package/esm2022/account/services/i18n/keycloakify-angular-account-services-i18n.mjs +5 -0
  84. package/esm2022/account/services/i18n/public-api.mjs +2 -0
  85. package/esm2022/account/tokens/classes/classes.token.mjs +3 -0
  86. package/esm2022/account/tokens/classes/keycloakify-angular-account-tokens-classes.mjs +5 -0
  87. package/esm2022/account/tokens/classes/public-api.mjs +2 -0
  88. package/esm2022/account/tokens/i18n/i18n.token.mjs +3 -0
  89. package/esm2022/account/tokens/i18n/keycloakify-angular-account-tokens-i18n.mjs +5 -0
  90. package/esm2022/account/tokens/i18n/public-api.mjs +2 -0
  91. package/esm2022/account/tokens/kc-context/kc-context.token.mjs +3 -0
  92. package/esm2022/account/tokens/kc-context/keycloakify-angular-account-tokens-kc-context.mjs +5 -0
  93. package/esm2022/account/tokens/kc-context/public-api.mjs +2 -0
  94. package/esm2022/keycloakify-angular.mjs +5 -0
  95. package/esm2022/lib/directives/attributes/attributes.directive.mjs +26 -0
  96. package/esm2022/lib/directives/attributes/keycloakify-angular-lib-directives-attributes.mjs +5 -0
  97. package/esm2022/lib/directives/attributes/public-api.mjs +2 -0
  98. package/esm2022/lib/keycloakify-angular-lib.mjs +5 -0
  99. package/esm2022/lib/models/script/keycloakify-angular-lib-models-script.mjs +5 -0
  100. package/esm2022/lib/models/script/public-api.mjs +2 -0
  101. package/esm2022/lib/models/script/script.model.mjs +2 -0
  102. package/esm2022/lib/pipes/input-type/input-type.pipe.mjs +20 -0
  103. package/esm2022/lib/pipes/input-type/keycloakify-angular-lib-pipes-input-type.mjs +5 -0
  104. package/esm2022/lib/pipes/input-type/public-api.mjs +2 -0
  105. package/esm2022/lib/pipes/is-array-with-empty-object/is-array-with-empty-object.pipe.mjs +20 -0
  106. package/esm2022/lib/pipes/is-array-with-empty-object/keycloakify-angular-lib-pipes-is-array-with-empty-object.mjs +5 -0
  107. package/esm2022/lib/pipes/is-array-with-empty-object/public-api.mjs +2 -0
  108. package/esm2022/lib/pipes/kc-sanitize/kc-sanitize.pipe.mjs +29 -0
  109. package/esm2022/lib/pipes/kc-sanitize/keycloakify-angular-lib-pipes-kc-sanitize.mjs +5 -0
  110. package/esm2022/lib/pipes/kc-sanitize/public-api.mjs +2 -0
  111. package/esm2022/lib/pipes/to-array/keycloakify-angular-lib-pipes-to-array.mjs +5 -0
  112. package/esm2022/lib/pipes/to-array/public-api.mjs +2 -0
  113. package/esm2022/lib/pipes/to-array/to-array.pipe.mjs +21 -0
  114. package/esm2022/lib/pipes/to-number/keycloakify-angular-lib-pipes-to-number.mjs +5 -0
  115. package/esm2022/lib/pipes/to-number/public-api.mjs +2 -0
  116. package/esm2022/lib/pipes/to-number/to-number.pipe.mjs +20 -0
  117. package/esm2022/lib/public-api.mjs +2 -0
  118. package/esm2022/lib/services/resource-injector/keycloakify-angular-lib-services-resource-injector.mjs +5 -0
  119. package/esm2022/lib/services/resource-injector/public-api.mjs +2 -0
  120. package/esm2022/lib/services/resource-injector/resource-injector.service.mjs +54 -0
  121. package/esm2022/lib/tokens/use-default-css/keycloakify-angular-lib-tokens-use-default-css.mjs +5 -0
  122. package/esm2022/lib/tokens/use-default-css/public-api.mjs +2 -0
  123. package/esm2022/lib/tokens/use-default-css/use-default-css.token.mjs +3 -0
  124. package/esm2022/login/DefaultPage/DefaultPage.mjs +121 -0
  125. package/esm2022/login/DefaultPage/keycloakify-angular-login-DefaultPage.mjs +5 -0
  126. package/esm2022/login/DefaultPage/public-api.mjs +2 -0
  127. package/esm2022/login/KcContext/KcContext.mjs +2 -0
  128. package/esm2022/login/KcContext/keycloakify-angular-login-KcContext.mjs +5 -0
  129. package/esm2022/login/KcContext/public-api.mjs +2 -0
  130. package/esm2022/login/classes/component-reference/component-reference.class.mjs +3 -0
  131. package/esm2022/login/classes/component-reference/keycloakify-angular-login-classes-component-reference.mjs +5 -0
  132. package/esm2022/login/classes/component-reference/public-api.mjs +2 -0
  133. package/esm2022/login/components/add-remove-buttons-multi-valued-attribute/add-remove-buttons-multi-valued-attribute.component.mjs +106 -0
  134. package/esm2022/login/components/add-remove-buttons-multi-valued-attribute/keycloakify-angular-login-components-add-remove-buttons-multi-valued-attribute.mjs +5 -0
  135. package/esm2022/login/components/add-remove-buttons-multi-valued-attribute/public-api.mjs +2 -0
  136. package/esm2022/login/components/field-errors/field-errors.component.mjs +33 -0
  137. package/esm2022/login/components/field-errors/keycloakify-angular-login-components-field-errors.mjs +5 -0
  138. package/esm2022/login/components/field-errors/public-api.mjs +2 -0
  139. package/esm2022/login/components/group-label/group-label.component.mjs +43 -0
  140. package/esm2022/login/components/group-label/keycloakify-angular-login-components-group-label.mjs +5 -0
  141. package/esm2022/login/components/group-label/public-api.mjs +2 -0
  142. package/esm2022/login/components/input-field-by-type/input-field-by-type.component.mjs +46 -0
  143. package/esm2022/login/components/input-field-by-type/keycloakify-angular-login-components-input-field-by-type.mjs +5 -0
  144. package/esm2022/login/components/input-field-by-type/public-api.mjs +2 -0
  145. package/esm2022/login/components/input-tag/input-tag.component.mjs +90 -0
  146. package/esm2022/login/components/input-tag/keycloakify-angular-login-components-input-tag.mjs +5 -0
  147. package/esm2022/login/components/input-tag/public-api.mjs +2 -0
  148. package/esm2022/login/components/input-tag-selects/input-tag-selects.component.mjs +117 -0
  149. package/esm2022/login/components/input-tag-selects/keycloakify-angular-login-components-input-tag-selects.mjs +5 -0
  150. package/esm2022/login/components/input-tag-selects/public-api.mjs +2 -0
  151. package/esm2022/login/components/logout-other-sessions/keycloakify-angular-login-components-logout-other-sessions.mjs +5 -0
  152. package/esm2022/login/components/logout-other-sessions/logout-other-sessions.component.mjs +32 -0
  153. package/esm2022/login/components/logout-other-sessions/public-api.mjs +2 -0
  154. package/esm2022/login/components/password-wrapper/keycloakify-angular-login-components-password-wrapper.mjs +5 -0
  155. package/esm2022/login/components/password-wrapper/password-wrapper.component.mjs +46 -0
  156. package/esm2022/login/components/password-wrapper/public-api.mjs +2 -0
  157. package/esm2022/login/components/select-tag/keycloakify-angular-login-components-select-tag.mjs +5 -0
  158. package/esm2022/login/components/select-tag/public-api.mjs +2 -0
  159. package/esm2022/login/components/select-tag/select-tag.component.mjs +82 -0
  160. package/esm2022/login/components/textarea-tag/keycloakify-angular-login-components-textarea-tag.mjs +5 -0
  161. package/esm2022/login/components/textarea-tag/public-api.mjs +2 -0
  162. package/esm2022/login/components/textarea-tag/textarea-tag.component.mjs +49 -0
  163. package/esm2022/login/components/user-profile-form-fields/keycloakify-angular-login-components-user-profile-form-fields.mjs +5 -0
  164. package/esm2022/login/components/user-profile-form-fields/public-api.mjs +2 -0
  165. package/esm2022/login/components/user-profile-form-fields/user-profile-form-fields.component.mjs +62 -0
  166. package/esm2022/login/containers/template/keycloakify-angular-login-containers-template.mjs +5 -0
  167. package/esm2022/login/containers/template/public-api.mjs +2 -0
  168. package/esm2022/login/containers/template/template.component.mjs +72 -0
  169. package/esm2022/login/directives/kc-class/kc-class.directive.mjs +138 -0
  170. package/esm2022/login/directives/kc-class/keycloakify-angular-login-directives-kc-class.mjs +5 -0
  171. package/esm2022/login/directives/kc-class/public-api.mjs +2 -0
  172. package/esm2022/login/i18n/i18n.mjs +2 -0
  173. package/esm2022/login/i18n/keycloakify-angular-login-i18n.mjs +5 -0
  174. package/esm2022/login/i18n/public-api.mjs +2 -0
  175. package/esm2022/login/pages/code/code.component.mjs +35 -0
  176. package/esm2022/login/pages/code/keycloakify-angular-login-pages-code.mjs +5 -0
  177. package/esm2022/login/pages/code/public-api.mjs +2 -0
  178. package/esm2022/login/pages/delete-account-confirm/delete-account-confirm.component.mjs +35 -0
  179. package/esm2022/login/pages/delete-account-confirm/keycloakify-angular-login-pages-delete-account-confirm.mjs +5 -0
  180. package/esm2022/login/pages/delete-account-confirm/public-api.mjs +2 -0
  181. package/esm2022/login/pages/delete-credential/delete-credential.component.mjs +40 -0
  182. package/esm2022/login/pages/delete-credential/keycloakify-angular-login-pages-delete-credential.mjs +5 -0
  183. package/esm2022/login/pages/delete-credential/public-api.mjs +2 -0
  184. package/esm2022/login/pages/error/error.component.mjs +35 -0
  185. package/esm2022/login/pages/error/keycloakify-angular-login-pages-error.mjs +5 -0
  186. package/esm2022/login/pages/error/public-api.mjs +2 -0
  187. package/esm2022/login/pages/frontchannel-logout/frontchannel-logout.component.mjs +44 -0
  188. package/esm2022/login/pages/frontchannel-logout/keycloakify-angular-login-pages-frontchannel-logout.mjs +5 -0
  189. package/esm2022/login/pages/frontchannel-logout/public-api.mjs +2 -0
  190. package/esm2022/login/pages/idp-review-user-profile/idp-review-user-profile.component.mjs +53 -0
  191. package/esm2022/login/pages/idp-review-user-profile/keycloakify-angular-login-pages-idp-review-user-profile.mjs +5 -0
  192. package/esm2022/login/pages/idp-review-user-profile/public-api.mjs +2 -0
  193. package/esm2022/login/pages/info/info.component.mjs +49 -0
  194. package/esm2022/login/pages/info/keycloakify-angular-login-pages-info.mjs +5 -0
  195. package/esm2022/login/pages/info/public-api.mjs +2 -0
  196. package/esm2022/login/pages/login/keycloakify-angular-login-pages-login.mjs +5 -0
  197. package/esm2022/login/pages/login/login.component.mjs +44 -0
  198. package/esm2022/login/pages/login/public-api.mjs +2 -0
  199. package/esm2022/login/pages/login-config-totp/keycloakify-angular-login-pages-login-config-totp.mjs +5 -0
  200. package/esm2022/login/pages/login-config-totp/login-config-totp.component.mjs +42 -0
  201. package/esm2022/login/pages/login-config-totp/public-api.mjs +2 -0
  202. package/esm2022/login/pages/login-idp-link-confirm/keycloakify-angular-login-pages-login-idp-link-confirm.mjs +5 -0
  203. package/esm2022/login/pages/login-idp-link-confirm/login-idp-link-confirm.component.mjs +40 -0
  204. package/esm2022/login/pages/login-idp-link-confirm/public-api.mjs +2 -0
  205. package/esm2022/login/pages/login-idp-link-confirm-override/keycloakify-angular-login-pages-login-idp-link-confirm-override.mjs +5 -0
  206. package/esm2022/login/pages/login-idp-link-confirm-override/login-idp-link-confirm-override.component.mjs +40 -0
  207. package/esm2022/login/pages/login-idp-link-confirm-override/public-api.mjs +2 -0
  208. package/esm2022/login/pages/login-idp-link-email/keycloakify-angular-login-pages-login-idp-link-email.mjs +5 -0
  209. package/esm2022/login/pages/login-idp-link-email/login-idp-link-email.component.mjs +40 -0
  210. package/esm2022/login/pages/login-idp-link-email/public-api.mjs +2 -0
  211. package/esm2022/login/pages/login-oauth-grant/keycloakify-angular-login-pages-login-oauth-grant.mjs +5 -0
  212. package/esm2022/login/pages/login-oauth-grant/login-oauth-grant.component.mjs +40 -0
  213. package/esm2022/login/pages/login-oauth-grant/public-api.mjs +2 -0
  214. package/esm2022/login/pages/login-oauth2-device-verify-user-code/keycloakify-angular-login-pages-login-oauth2-device-verify-user-code.mjs +5 -0
  215. package/esm2022/login/pages/login-oauth2-device-verify-user-code/login-oauth2-device-verify-user-code.component.mjs +40 -0
  216. package/esm2022/login/pages/login-oauth2-device-verify-user-code/public-api.mjs +2 -0
  217. package/esm2022/login/pages/login-otp/keycloakify-angular-login-pages-login-otp.mjs +5 -0
  218. package/esm2022/login/pages/login-otp/login-otp.component.mjs +41 -0
  219. package/esm2022/login/pages/login-otp/public-api.mjs +2 -0
  220. package/esm2022/login/pages/login-page-expired/keycloakify-angular-login-pages-login-page-expired.mjs +5 -0
  221. package/esm2022/login/pages/login-page-expired/login-page-expired.component.mjs +39 -0
  222. package/esm2022/login/pages/login-page-expired/public-api.mjs +2 -0
  223. package/esm2022/login/pages/login-passkeys-conditional-authenticate/keycloakify-angular-login-pages-login-passkeys-conditional-authenticate.mjs +5 -0
  224. package/esm2022/login/pages/login-passkeys-conditional-authenticate/login-passkeys-conditional-authenticate.component.mjs +84 -0
  225. package/esm2022/login/pages/login-passkeys-conditional-authenticate/public-api.mjs +2 -0
  226. package/esm2022/login/pages/login-password/keycloakify-angular-login-pages-login-password.mjs +5 -0
  227. package/esm2022/login/pages/login-password/login-password.component.mjs +43 -0
  228. package/esm2022/login/pages/login-password/public-api.mjs +2 -0
  229. package/esm2022/login/pages/login-recovery-authn-code-config/keycloakify-angular-login-pages-login-recovery-authn-code-config.mjs +5 -0
  230. package/esm2022/login/pages/login-recovery-authn-code-config/login-recovery-authn-code-config.component.mjs +43 -0
  231. package/esm2022/login/pages/login-recovery-authn-code-config/public-api.mjs +2 -0
  232. package/esm2022/login/pages/login-recovery-authn-code-input/keycloakify-angular-login-pages-login-recovery-authn-code-input.mjs +5 -0
  233. package/esm2022/login/pages/login-recovery-authn-code-input/login-recovery-authn-code-input.component.mjs +41 -0
  234. package/esm2022/login/pages/login-recovery-authn-code-input/public-api.mjs +2 -0
  235. package/esm2022/login/pages/login-reset-otp/keycloakify-angular-login-pages-login-reset-otp.mjs +5 -0
  236. package/esm2022/login/pages/login-reset-otp/login-reset-otp.component.mjs +40 -0
  237. package/esm2022/login/pages/login-reset-otp/public-api.mjs +2 -0
  238. package/esm2022/login/pages/login-reset-password/keycloakify-angular-login-pages-login-reset-password.mjs +5 -0
  239. package/esm2022/login/pages/login-reset-password/login-reset-password.component.mjs +41 -0
  240. package/esm2022/login/pages/login-reset-password/public-api.mjs +2 -0
  241. package/esm2022/login/pages/login-update-password/keycloakify-angular-login-pages-login-update-password.mjs +5 -0
  242. package/esm2022/login/pages/login-update-password/login-update-password.component.mjs +43 -0
  243. package/esm2022/login/pages/login-update-password/public-api.mjs +2 -0
  244. package/esm2022/login/pages/login-update-profile/keycloakify-angular-login-pages-login-update-profile.mjs +5 -0
  245. package/esm2022/login/pages/login-update-profile/login-update-profile.component.mjs +50 -0
  246. package/esm2022/login/pages/login-update-profile/public-api.mjs +2 -0
  247. package/esm2022/login/pages/login-username/keycloakify-angular-login-pages-login-username.mjs +5 -0
  248. package/esm2022/login/pages/login-username/login-username.component.mjs +43 -0
  249. package/esm2022/login/pages/login-username/public-api.mjs +2 -0
  250. package/esm2022/login/pages/login-verify-email/keycloakify-angular-login-pages-login-verify-email.mjs +5 -0
  251. package/esm2022/login/pages/login-verify-email/login-verify-email.component.mjs +40 -0
  252. package/esm2022/login/pages/login-verify-email/public-api.mjs +2 -0
  253. package/esm2022/login/pages/login-x509-info/keycloakify-angular-login-pages-login-x509-info.mjs +5 -0
  254. package/esm2022/login/pages/login-x509-info/login-x509-info.component.mjs +40 -0
  255. package/esm2022/login/pages/login-x509-info/public-api.mjs +2 -0
  256. package/esm2022/login/pages/logout-confirm/keycloakify-angular-login-pages-logout-confirm.mjs +5 -0
  257. package/esm2022/login/pages/logout-confirm/logout-confirm.component.mjs +40 -0
  258. package/esm2022/login/pages/logout-confirm/public-api.mjs +2 -0
  259. package/esm2022/login/pages/register/keycloakify-angular-login-pages-register.mjs +5 -0
  260. package/esm2022/login/pages/register/public-api.mjs +2 -0
  261. package/esm2022/login/pages/register/register.component.mjs +55 -0
  262. package/esm2022/login/pages/saml-post-form/keycloakify-angular-login-pages-saml-post-form.mjs +5 -0
  263. package/esm2022/login/pages/saml-post-form/public-api.mjs +2 -0
  264. package/esm2022/login/pages/saml-post-form/saml-post-form.component.mjs +52 -0
  265. package/esm2022/login/pages/select-authenticator/keycloakify-angular-login-pages-select-authenticator.mjs +5 -0
  266. package/esm2022/login/pages/select-authenticator/public-api.mjs +2 -0
  267. package/esm2022/login/pages/select-authenticator/select-authenticator.component.mjs +41 -0
  268. package/esm2022/login/pages/terms/keycloakify-angular-login-pages-terms.mjs +5 -0
  269. package/esm2022/login/pages/terms/public-api.mjs +2 -0
  270. package/esm2022/login/pages/terms/terms.component.mjs +40 -0
  271. package/esm2022/login/pages/update-email/keycloakify-angular-login-pages-update-email.mjs +5 -0
  272. package/esm2022/login/pages/update-email/public-api.mjs +2 -0
  273. package/esm2022/login/pages/update-email/update-email.component.mjs +51 -0
  274. package/esm2022/login/pages/webauthn-authenticate/keycloakify-angular-login-pages-webauthn-authenticate.mjs +5 -0
  275. package/esm2022/login/pages/webauthn-authenticate/public-api.mjs +2 -0
  276. package/esm2022/login/pages/webauthn-authenticate/webauthn-authenticate.component.mjs +80 -0
  277. package/esm2022/login/pages/webauthn-error/keycloakify-angular-login-pages-webauthn-error.mjs +5 -0
  278. package/esm2022/login/pages/webauthn-error/public-api.mjs +2 -0
  279. package/esm2022/login/pages/webauthn-error/webauthn-error.component.mjs +49 -0
  280. package/esm2022/login/pages/webauthn-register/keycloakify-angular-login-pages-webauthn-register.mjs +5 -0
  281. package/esm2022/login/pages/webauthn-register/public-api.mjs +2 -0
  282. package/esm2022/login/pages/webauthn-register/webauthn-register.component.mjs +76 -0
  283. package/esm2022/login/providers/keycloakify-angular/keycloakify-angular-login-providers-keycloakify-angular.mjs +5 -0
  284. package/esm2022/login/providers/keycloakify-angular/keycloakify-angular.providers.mjs +54 -0
  285. package/esm2022/login/providers/keycloakify-angular/public-api.mjs +2 -0
  286. package/esm2022/login/services/i18n/i18n.service.mjs +12 -0
  287. package/esm2022/login/services/i18n/keycloakify-angular-login-services-i18n.mjs +5 -0
  288. package/esm2022/login/services/i18n/public-api.mjs +2 -0
  289. package/esm2022/login/services/login-resource-injector/keycloakify-angular-login-services-login-resource-injector.mjs +5 -0
  290. package/esm2022/login/services/login-resource-injector/login-resource-injector.service.mjs +68 -0
  291. package/esm2022/login/services/login-resource-injector/public-api.mjs +2 -0
  292. package/esm2022/login/services/submit/keycloakify-angular-login-services-submit.mjs +5 -0
  293. package/esm2022/login/services/submit/public-api.mjs +2 -0
  294. package/esm2022/login/services/submit/submit.service.mjs +20 -0
  295. package/esm2022/login/services/user-profile-form/keycloakify-angular-login-services-user-profile-form.mjs +5 -0
  296. package/esm2022/login/services/user-profile-form/public-api.mjs +2 -0
  297. package/esm2022/login/services/user-profile-form/user-profile-form.service.mjs +1019 -0
  298. package/esm2022/login/tokens/classes/classes.token.mjs +3 -0
  299. package/esm2022/login/tokens/classes/keycloakify-angular-login-tokens-classes.mjs +5 -0
  300. package/esm2022/login/tokens/classes/public-api.mjs +2 -0
  301. package/esm2022/login/tokens/i18n/i18n.token.mjs +3 -0
  302. package/esm2022/login/tokens/i18n/keycloakify-angular-login-tokens-i18n.mjs +5 -0
  303. package/esm2022/login/tokens/i18n/public-api.mjs +2 -0
  304. package/esm2022/login/tokens/kc-context/kc-context.token.mjs +3 -0
  305. package/esm2022/login/tokens/kc-context/keycloakify-angular-login-tokens-kc-context.mjs +5 -0
  306. package/esm2022/login/tokens/kc-context/public-api.mjs +2 -0
  307. package/esm2022/login/tokens/make-user-confirm-password/keycloakify-angular-login-tokens-make-user-confirm-password.mjs +5 -0
  308. package/esm2022/login/tokens/make-user-confirm-password/make-user-confirm-password.token.mjs +3 -0
  309. package/esm2022/login/tokens/make-user-confirm-password/public-api.mjs +2 -0
  310. package/esm2022/public-api.mjs +2 -0
  311. package/fesm2022/keycloakify-angular-account-DefaultPage.mjs +39 -0
  312. package/fesm2022/keycloakify-angular-account-DefaultPage.mjs.map +1 -0
  313. package/fesm2022/keycloakify-angular-account-KcContext.mjs +4 -0
  314. package/fesm2022/keycloakify-angular-account-KcContext.mjs.map +1 -0
  315. package/fesm2022/keycloakify-angular-account-classes-component-reference.mjs +9 -0
  316. package/fesm2022/keycloakify-angular-account-classes-component-reference.mjs.map +1 -0
  317. package/fesm2022/keycloakify-angular-account-containers-template.mjs +73 -0
  318. package/fesm2022/keycloakify-angular-account-containers-template.mjs.map +1 -0
  319. package/fesm2022/keycloakify-angular-account-directives-kc-class.mjs +148 -0
  320. package/fesm2022/keycloakify-angular-account-directives-kc-class.mjs.map +1 -0
  321. package/fesm2022/keycloakify-angular-account-i18n.mjs +4 -0
  322. package/fesm2022/keycloakify-angular-account-i18n.mjs.map +1 -0
  323. package/fesm2022/keycloakify-angular-account-pages-account.mjs +46 -0
  324. package/fesm2022/keycloakify-angular-account-pages-account.mjs.map +1 -0
  325. package/fesm2022/keycloakify-angular-account-pages-applications.mjs +44 -0
  326. package/fesm2022/keycloakify-angular-account-pages-applications.mjs.map +1 -0
  327. package/fesm2022/keycloakify-angular-account-pages-federatedIdentity.mjs +43 -0
  328. package/fesm2022/keycloakify-angular-account-pages-federatedIdentity.mjs.map +1 -0
  329. package/fesm2022/keycloakify-angular-account-pages-log.mjs +43 -0
  330. package/fesm2022/keycloakify-angular-account-pages-log.mjs.map +1 -0
  331. package/fesm2022/keycloakify-angular-account-pages-password.mjs +115 -0
  332. package/fesm2022/keycloakify-angular-account-pages-password.mjs.map +1 -0
  333. package/fesm2022/keycloakify-angular-account-pages-sessions.mjs +43 -0
  334. package/fesm2022/keycloakify-angular-account-pages-sessions.mjs.map +1 -0
  335. package/fesm2022/keycloakify-angular-account-pages-totp.mjs +44 -0
  336. package/fesm2022/keycloakify-angular-account-pages-totp.mjs.map +1 -0
  337. package/fesm2022/keycloakify-angular-account-providers-keycloakify-angular.mjs +56 -0
  338. package/fesm2022/keycloakify-angular-account-providers-keycloakify-angular.mjs.map +1 -0
  339. package/fesm2022/keycloakify-angular-account-services-account-resource-injector.mjs +44 -0
  340. package/fesm2022/keycloakify-angular-account-services-account-resource-injector.mjs.map +1 -0
  341. package/fesm2022/keycloakify-angular-account-services-i18n.mjs +19 -0
  342. package/fesm2022/keycloakify-angular-account-services-i18n.mjs.map +1 -0
  343. package/fesm2022/keycloakify-angular-account-tokens-classes.mjs +10 -0
  344. package/fesm2022/keycloakify-angular-account-tokens-classes.mjs.map +1 -0
  345. package/fesm2022/keycloakify-angular-account-tokens-i18n.mjs +10 -0
  346. package/fesm2022/keycloakify-angular-account-tokens-i18n.mjs.map +1 -0
  347. package/fesm2022/keycloakify-angular-account-tokens-kc-context.mjs +10 -0
  348. package/fesm2022/keycloakify-angular-account-tokens-kc-context.mjs.map +1 -0
  349. package/fesm2022/keycloakify-angular-lib-directives-attributes.mjs +33 -0
  350. package/fesm2022/keycloakify-angular-lib-directives-attributes.mjs.map +1 -0
  351. package/fesm2022/keycloakify-angular-lib-models-script.mjs +4 -0
  352. package/fesm2022/keycloakify-angular-lib-models-script.mjs.map +1 -0
  353. package/fesm2022/keycloakify-angular-lib-pipes-input-type.mjs +27 -0
  354. package/fesm2022/keycloakify-angular-lib-pipes-input-type.mjs.map +1 -0
  355. package/fesm2022/keycloakify-angular-lib-pipes-is-array-with-empty-object.mjs +27 -0
  356. package/fesm2022/keycloakify-angular-lib-pipes-is-array-with-empty-object.mjs.map +1 -0
  357. package/fesm2022/keycloakify-angular-lib-pipes-kc-sanitize.mjs +36 -0
  358. package/fesm2022/keycloakify-angular-lib-pipes-kc-sanitize.mjs.map +1 -0
  359. package/fesm2022/keycloakify-angular-lib-pipes-to-array.mjs +28 -0
  360. package/fesm2022/keycloakify-angular-lib-pipes-to-array.mjs.map +1 -0
  361. package/fesm2022/keycloakify-angular-lib-pipes-to-number.mjs +27 -0
  362. package/fesm2022/keycloakify-angular-lib-pipes-to-number.mjs.map +1 -0
  363. package/fesm2022/keycloakify-angular-lib-services-resource-injector.mjs +61 -0
  364. package/fesm2022/keycloakify-angular-lib-services-resource-injector.mjs.map +1 -0
  365. package/fesm2022/keycloakify-angular-lib-tokens-use-default-css.mjs +10 -0
  366. package/fesm2022/keycloakify-angular-lib-tokens-use-default-css.mjs.map +1 -0
  367. package/fesm2022/keycloakify-angular-lib.mjs +8 -0
  368. package/fesm2022/keycloakify-angular-lib.mjs.map +1 -0
  369. package/fesm2022/keycloakify-angular-login-DefaultPage.mjs +126 -0
  370. package/fesm2022/keycloakify-angular-login-DefaultPage.mjs.map +1 -0
  371. package/fesm2022/keycloakify-angular-login-KcContext.mjs +4 -0
  372. package/fesm2022/keycloakify-angular-login-KcContext.mjs.map +1 -0
  373. package/fesm2022/keycloakify-angular-login-classes-component-reference.mjs +9 -0
  374. package/fesm2022/keycloakify-angular-login-classes-component-reference.mjs.map +1 -0
  375. package/fesm2022/keycloakify-angular-login-components-add-remove-buttons-multi-valued-attribute.mjs +113 -0
  376. package/fesm2022/keycloakify-angular-login-components-add-remove-buttons-multi-valued-attribute.mjs.map +1 -0
  377. package/fesm2022/keycloakify-angular-login-components-field-errors.mjs +40 -0
  378. package/fesm2022/keycloakify-angular-login-components-field-errors.mjs.map +1 -0
  379. package/fesm2022/keycloakify-angular-login-components-group-label.mjs +50 -0
  380. package/fesm2022/keycloakify-angular-login-components-group-label.mjs.map +1 -0
  381. package/fesm2022/keycloakify-angular-login-components-input-field-by-type.mjs +53 -0
  382. package/fesm2022/keycloakify-angular-login-components-input-field-by-type.mjs.map +1 -0
  383. package/fesm2022/keycloakify-angular-login-components-input-tag-selects.mjs +124 -0
  384. package/fesm2022/keycloakify-angular-login-components-input-tag-selects.mjs.map +1 -0
  385. package/fesm2022/keycloakify-angular-login-components-input-tag.mjs +97 -0
  386. package/fesm2022/keycloakify-angular-login-components-input-tag.mjs.map +1 -0
  387. package/fesm2022/keycloakify-angular-login-components-logout-other-sessions.mjs +39 -0
  388. package/fesm2022/keycloakify-angular-login-components-logout-other-sessions.mjs.map +1 -0
  389. package/fesm2022/keycloakify-angular-login-components-password-wrapper.mjs +53 -0
  390. package/fesm2022/keycloakify-angular-login-components-password-wrapper.mjs.map +1 -0
  391. package/fesm2022/keycloakify-angular-login-components-select-tag.mjs +89 -0
  392. package/fesm2022/keycloakify-angular-login-components-select-tag.mjs.map +1 -0
  393. package/fesm2022/keycloakify-angular-login-components-textarea-tag.mjs +56 -0
  394. package/fesm2022/keycloakify-angular-login-components-textarea-tag.mjs.map +1 -0
  395. package/fesm2022/keycloakify-angular-login-components-user-profile-form-fields.mjs +69 -0
  396. package/fesm2022/keycloakify-angular-login-components-user-profile-form-fields.mjs.map +1 -0
  397. package/fesm2022/keycloakify-angular-login-containers-template.mjs +79 -0
  398. package/fesm2022/keycloakify-angular-login-containers-template.mjs.map +1 -0
  399. package/fesm2022/keycloakify-angular-login-directives-kc-class.mjs +145 -0
  400. package/fesm2022/keycloakify-angular-login-directives-kc-class.mjs.map +1 -0
  401. package/fesm2022/keycloakify-angular-login-i18n.mjs +4 -0
  402. package/fesm2022/keycloakify-angular-login-i18n.mjs.map +1 -0
  403. package/fesm2022/keycloakify-angular-login-pages-code.mjs +42 -0
  404. package/fesm2022/keycloakify-angular-login-pages-code.mjs.map +1 -0
  405. package/fesm2022/keycloakify-angular-login-pages-delete-account-confirm.mjs +42 -0
  406. package/fesm2022/keycloakify-angular-login-pages-delete-account-confirm.mjs.map +1 -0
  407. package/fesm2022/keycloakify-angular-login-pages-delete-credential.mjs +47 -0
  408. package/fesm2022/keycloakify-angular-login-pages-delete-credential.mjs.map +1 -0
  409. package/fesm2022/keycloakify-angular-login-pages-error.mjs +42 -0
  410. package/fesm2022/keycloakify-angular-login-pages-error.mjs.map +1 -0
  411. package/fesm2022/keycloakify-angular-login-pages-frontchannel-logout.mjs +51 -0
  412. package/fesm2022/keycloakify-angular-login-pages-frontchannel-logout.mjs.map +1 -0
  413. package/fesm2022/keycloakify-angular-login-pages-idp-review-user-profile.mjs +60 -0
  414. package/fesm2022/keycloakify-angular-login-pages-idp-review-user-profile.mjs.map +1 -0
  415. package/fesm2022/keycloakify-angular-login-pages-info.mjs +56 -0
  416. package/fesm2022/keycloakify-angular-login-pages-info.mjs.map +1 -0
  417. package/fesm2022/keycloakify-angular-login-pages-login-config-totp.mjs +49 -0
  418. package/fesm2022/keycloakify-angular-login-pages-login-config-totp.mjs.map +1 -0
  419. package/fesm2022/keycloakify-angular-login-pages-login-idp-link-confirm-override.mjs +47 -0
  420. package/fesm2022/keycloakify-angular-login-pages-login-idp-link-confirm-override.mjs.map +1 -0
  421. package/fesm2022/keycloakify-angular-login-pages-login-idp-link-confirm.mjs +47 -0
  422. package/fesm2022/keycloakify-angular-login-pages-login-idp-link-confirm.mjs.map +1 -0
  423. package/fesm2022/keycloakify-angular-login-pages-login-idp-link-email.mjs +47 -0
  424. package/fesm2022/keycloakify-angular-login-pages-login-idp-link-email.mjs.map +1 -0
  425. package/fesm2022/keycloakify-angular-login-pages-login-oauth-grant.mjs +47 -0
  426. package/fesm2022/keycloakify-angular-login-pages-login-oauth-grant.mjs.map +1 -0
  427. package/fesm2022/keycloakify-angular-login-pages-login-oauth2-device-verify-user-code.mjs +47 -0
  428. package/fesm2022/keycloakify-angular-login-pages-login-oauth2-device-verify-user-code.mjs.map +1 -0
  429. package/fesm2022/keycloakify-angular-login-pages-login-otp.mjs +48 -0
  430. package/fesm2022/keycloakify-angular-login-pages-login-otp.mjs.map +1 -0
  431. package/fesm2022/keycloakify-angular-login-pages-login-page-expired.mjs +46 -0
  432. package/fesm2022/keycloakify-angular-login-pages-login-page-expired.mjs.map +1 -0
  433. package/fesm2022/keycloakify-angular-login-pages-login-passkeys-conditional-authenticate.mjs +91 -0
  434. package/fesm2022/keycloakify-angular-login-pages-login-passkeys-conditional-authenticate.mjs.map +1 -0
  435. package/fesm2022/keycloakify-angular-login-pages-login-password.mjs +50 -0
  436. package/fesm2022/keycloakify-angular-login-pages-login-password.mjs.map +1 -0
  437. package/fesm2022/keycloakify-angular-login-pages-login-recovery-authn-code-config.mjs +50 -0
  438. package/fesm2022/keycloakify-angular-login-pages-login-recovery-authn-code-config.mjs.map +1 -0
  439. package/fesm2022/keycloakify-angular-login-pages-login-recovery-authn-code-input.mjs +48 -0
  440. package/fesm2022/keycloakify-angular-login-pages-login-recovery-authn-code-input.mjs.map +1 -0
  441. package/fesm2022/keycloakify-angular-login-pages-login-reset-otp.mjs +47 -0
  442. package/fesm2022/keycloakify-angular-login-pages-login-reset-otp.mjs.map +1 -0
  443. package/fesm2022/keycloakify-angular-login-pages-login-reset-password.mjs +48 -0
  444. package/fesm2022/keycloakify-angular-login-pages-login-reset-password.mjs.map +1 -0
  445. package/fesm2022/keycloakify-angular-login-pages-login-update-password.mjs +50 -0
  446. package/fesm2022/keycloakify-angular-login-pages-login-update-password.mjs.map +1 -0
  447. package/fesm2022/keycloakify-angular-login-pages-login-update-profile.mjs +57 -0
  448. package/fesm2022/keycloakify-angular-login-pages-login-update-profile.mjs.map +1 -0
  449. package/fesm2022/keycloakify-angular-login-pages-login-username.mjs +50 -0
  450. package/fesm2022/keycloakify-angular-login-pages-login-username.mjs.map +1 -0
  451. package/fesm2022/keycloakify-angular-login-pages-login-verify-email.mjs +47 -0
  452. package/fesm2022/keycloakify-angular-login-pages-login-verify-email.mjs.map +1 -0
  453. package/fesm2022/keycloakify-angular-login-pages-login-x509-info.mjs +47 -0
  454. package/fesm2022/keycloakify-angular-login-pages-login-x509-info.mjs.map +1 -0
  455. package/fesm2022/keycloakify-angular-login-pages-login.mjs +51 -0
  456. package/fesm2022/keycloakify-angular-login-pages-login.mjs.map +1 -0
  457. package/fesm2022/keycloakify-angular-login-pages-logout-confirm.mjs +47 -0
  458. package/fesm2022/keycloakify-angular-login-pages-logout-confirm.mjs.map +1 -0
  459. package/fesm2022/keycloakify-angular-login-pages-register.mjs +62 -0
  460. package/fesm2022/keycloakify-angular-login-pages-register.mjs.map +1 -0
  461. package/fesm2022/keycloakify-angular-login-pages-saml-post-form.mjs +59 -0
  462. package/fesm2022/keycloakify-angular-login-pages-saml-post-form.mjs.map +1 -0
  463. package/fesm2022/keycloakify-angular-login-pages-select-authenticator.mjs +48 -0
  464. package/fesm2022/keycloakify-angular-login-pages-select-authenticator.mjs.map +1 -0
  465. package/fesm2022/keycloakify-angular-login-pages-terms.mjs +47 -0
  466. package/fesm2022/keycloakify-angular-login-pages-terms.mjs.map +1 -0
  467. package/fesm2022/keycloakify-angular-login-pages-update-email.mjs +58 -0
  468. package/fesm2022/keycloakify-angular-login-pages-update-email.mjs.map +1 -0
  469. package/fesm2022/keycloakify-angular-login-pages-webauthn-authenticate.mjs +87 -0
  470. package/fesm2022/keycloakify-angular-login-pages-webauthn-authenticate.mjs.map +1 -0
  471. package/fesm2022/keycloakify-angular-login-pages-webauthn-error.mjs +56 -0
  472. package/fesm2022/keycloakify-angular-login-pages-webauthn-error.mjs.map +1 -0
  473. package/fesm2022/keycloakify-angular-login-pages-webauthn-register.mjs +83 -0
  474. package/fesm2022/keycloakify-angular-login-pages-webauthn-register.mjs.map +1 -0
  475. package/fesm2022/keycloakify-angular-login-providers-keycloakify-angular.mjs +61 -0
  476. package/fesm2022/keycloakify-angular-login-providers-keycloakify-angular.mjs.map +1 -0
  477. package/fesm2022/keycloakify-angular-login-services-i18n.mjs +19 -0
  478. package/fesm2022/keycloakify-angular-login-services-i18n.mjs.map +1 -0
  479. package/fesm2022/keycloakify-angular-login-services-login-resource-injector.mjs +75 -0
  480. package/fesm2022/keycloakify-angular-login-services-login-resource-injector.mjs.map +1 -0
  481. package/fesm2022/keycloakify-angular-login-services-submit.mjs +27 -0
  482. package/fesm2022/keycloakify-angular-login-services-submit.mjs.map +1 -0
  483. package/fesm2022/keycloakify-angular-login-services-user-profile-form.mjs +1026 -0
  484. package/fesm2022/keycloakify-angular-login-services-user-profile-form.mjs.map +1 -0
  485. package/fesm2022/keycloakify-angular-login-tokens-classes.mjs +10 -0
  486. package/fesm2022/keycloakify-angular-login-tokens-classes.mjs.map +1 -0
  487. package/fesm2022/keycloakify-angular-login-tokens-i18n.mjs +10 -0
  488. package/fesm2022/keycloakify-angular-login-tokens-i18n.mjs.map +1 -0
  489. package/fesm2022/keycloakify-angular-login-tokens-kc-context.mjs +10 -0
  490. package/fesm2022/keycloakify-angular-login-tokens-kc-context.mjs.map +1 -0
  491. package/fesm2022/keycloakify-angular-login-tokens-make-user-confirm-password.mjs +10 -0
  492. package/fesm2022/keycloakify-angular-login-tokens-make-user-confirm-password.mjs.map +1 -0
  493. package/fesm2022/keycloakify-angular.mjs +8 -0
  494. package/fesm2022/keycloakify-angular.mjs.map +1 -0
  495. package/index.d.ts +5 -0
  496. package/lib/directives/attributes/attributes.directive.d.ts +8 -0
  497. package/lib/directives/attributes/index.d.ts +5 -0
  498. package/lib/index.d.ts +5 -0
  499. package/lib/models/script/index.d.ts +5 -0
  500. package/lib/models/script/script.model.d.ts +6 -0
  501. package/lib/pipes/input-type/index.d.ts +5 -0
  502. package/lib/pipes/input-type/input-type.pipe.d.ts +7 -0
  503. package/lib/pipes/is-array-with-empty-object/index.d.ts +5 -0
  504. package/lib/pipes/is-array-with-empty-object/is-array-with-empty-object.pipe.d.ts +7 -0
  505. package/lib/pipes/kc-sanitize/index.d.ts +5 -0
  506. package/lib/pipes/kc-sanitize/kc-sanitize.pipe.d.ts +9 -0
  507. package/lib/pipes/to-array/index.d.ts +5 -0
  508. package/lib/pipes/to-array/to-array.pipe.d.ts +7 -0
  509. package/lib/pipes/to-number/index.d.ts +5 -0
  510. package/lib/pipes/to-number/to-number.pipe.d.ts +7 -0
  511. package/lib/public-api.d.ts +1 -0
  512. package/lib/services/resource-injector/index.d.ts +5 -0
  513. package/lib/services/resource-injector/resource-injector.service.d.ts +10 -0
  514. package/lib/tokens/use-default-css/index.d.ts +5 -0
  515. package/lib/tokens/use-default-css/use-default-css.token.d.ts +2 -0
  516. package/login/DefaultPage/DefaultPage.d.ts +260 -0
  517. package/login/DefaultPage/index.d.ts +5 -0
  518. package/login/KcContext/index.d.ts +5 -0
  519. package/login/classes/component-reference/component-reference.class.d.ts +5 -0
  520. package/login/classes/component-reference/index.d.ts +5 -0
  521. package/login/components/add-remove-buttons-multi-valued-attribute/add-remove-buttons-multi-valued-attribute.component.d.ts +18 -0
  522. package/login/components/add-remove-buttons-multi-valued-attribute/index.d.ts +5 -0
  523. package/login/components/field-errors/field-errors.component.d.ts +14 -0
  524. package/login/components/field-errors/index.d.ts +5 -0
  525. package/login/components/group-label/group-label.component.d.ts +15 -0
  526. package/login/components/group-label/index.d.ts +5 -0
  527. package/login/components/input-field-by-type/index.d.ts +5 -0
  528. package/login/components/input-field-by-type/input-field-by-type.component.d.ts +16 -0
  529. package/login/components/input-tag/index.d.ts +5 -0
  530. package/login/components/input-tag/input-tag.component.d.ts +22 -0
  531. package/login/components/input-tag-selects/index.d.ts +5 -0
  532. package/login/components/input-tag-selects/input-tag-selects.component.d.ts +28 -0
  533. package/login/components/logout-other-sessions/index.d.ts +5 -0
  534. package/login/components/logout-other-sessions/logout-other-sessions.component.d.ts +11 -0
  535. package/login/components/password-wrapper/index.d.ts +5 -0
  536. package/login/components/password-wrapper/password-wrapper.component.d.ts +17 -0
  537. package/login/components/select-tag/index.d.ts +5 -0
  538. package/login/components/select-tag/select-tag.component.d.ts +21 -0
  539. package/login/components/textarea-tag/index.d.ts +5 -0
  540. package/login/components/textarea-tag/textarea-tag.component.d.ts +17 -0
  541. package/login/components/user-profile-form-fields/index.d.ts +5 -0
  542. package/login/components/user-profile-form-fields/user-profile-form-fields.component.d.ts +31 -0
  543. package/login/containers/template/index.d.ts +5 -0
  544. package/login/containers/template/template.component.d.ts +31 -0
  545. package/login/directives/kc-class/index.d.ts +5 -0
  546. package/login/directives/kc-class/kc-class.directive.d.ts +26 -0
  547. package/login/i18n/index.d.ts +5 -0
  548. package/login/pages/code/code.component.d.ts +13 -0
  549. package/login/pages/code/index.d.ts +5 -0
  550. package/login/pages/delete-account-confirm/delete-account-confirm.component.d.ts +13 -0
  551. package/login/pages/delete-account-confirm/index.d.ts +5 -0
  552. package/login/pages/delete-credential/delete-credential.component.d.ts +18 -0
  553. package/login/pages/delete-credential/index.d.ts +5 -0
  554. package/login/pages/error/error.component.d.ts +13 -0
  555. package/login/pages/error/index.d.ts +5 -0
  556. package/login/pages/frontchannel-logout/frontchannel-logout.component.d.ts +19 -0
  557. package/login/pages/frontchannel-logout/index.d.ts +5 -0
  558. package/login/pages/idp-review-user-profile/idp-review-user-profile.component.d.ts +25 -0
  559. package/login/pages/idp-review-user-profile/index.d.ts +5 -0
  560. package/login/pages/info/index.d.ts +5 -0
  561. package/login/pages/info/info.component.d.ts +19 -0
  562. package/login/pages/login/index.d.ts +5 -0
  563. package/login/pages/login/login.component.d.ts +19 -0
  564. package/login/pages/login-config-totp/index.d.ts +5 -0
  565. package/login/pages/login-config-totp/login-config-totp.component.d.ts +18 -0
  566. package/login/pages/login-idp-link-confirm/index.d.ts +5 -0
  567. package/login/pages/login-idp-link-confirm/login-idp-link-confirm.component.d.ts +18 -0
  568. package/login/pages/login-idp-link-confirm-override/index.d.ts +5 -0
  569. package/login/pages/login-idp-link-confirm-override/login-idp-link-confirm-override.component.d.ts +18 -0
  570. package/login/pages/login-idp-link-email/index.d.ts +5 -0
  571. package/login/pages/login-idp-link-email/login-idp-link-email.component.d.ts +18 -0
  572. package/login/pages/login-oauth-grant/index.d.ts +5 -0
  573. package/login/pages/login-oauth-grant/login-oauth-grant.component.d.ts +18 -0
  574. package/login/pages/login-oauth2-device-verify-user-code/index.d.ts +5 -0
  575. package/login/pages/login-oauth2-device-verify-user-code/login-oauth2-device-verify-user-code.component.d.ts +18 -0
  576. package/login/pages/login-otp/index.d.ts +5 -0
  577. package/login/pages/login-otp/login-otp.component.d.ts +18 -0
  578. package/login/pages/login-page-expired/index.d.ts +5 -0
  579. package/login/pages/login-page-expired/login-page-expired.component.d.ts +18 -0
  580. package/login/pages/login-passkeys-conditional-authenticate/index.d.ts +5 -0
  581. package/login/pages/login-passkeys-conditional-authenticate/login-passkeys-conditional-authenticate.component.d.ts +19 -0
  582. package/login/pages/login-password/index.d.ts +5 -0
  583. package/login/pages/login-password/login-password.component.d.ts +19 -0
  584. package/login/pages/login-recovery-authn-code-config/index.d.ts +5 -0
  585. package/login/pages/login-recovery-authn-code-config/login-recovery-authn-code-config.component.d.ts +20 -0
  586. package/login/pages/login-recovery-authn-code-input/index.d.ts +5 -0
  587. package/login/pages/login-recovery-authn-code-input/login-recovery-authn-code-input.component.d.ts +18 -0
  588. package/login/pages/login-reset-otp/index.d.ts +5 -0
  589. package/login/pages/login-reset-otp/login-reset-otp.component.d.ts +18 -0
  590. package/login/pages/login-reset-password/index.d.ts +5 -0
  591. package/login/pages/login-reset-password/login-reset-password.component.d.ts +18 -0
  592. package/login/pages/login-update-password/index.d.ts +5 -0
  593. package/login/pages/login-update-password/login-update-password.component.d.ts +18 -0
  594. package/login/pages/login-update-profile/index.d.ts +5 -0
  595. package/login/pages/login-update-profile/login-update-profile.component.d.ts +24 -0
  596. package/login/pages/login-username/index.d.ts +5 -0
  597. package/login/pages/login-username/login-username.component.d.ts +19 -0
  598. package/login/pages/login-verify-email/index.d.ts +5 -0
  599. package/login/pages/login-verify-email/login-verify-email.component.d.ts +18 -0
  600. package/login/pages/login-x509-info/index.d.ts +5 -0
  601. package/login/pages/login-x509-info/login-x509-info.component.d.ts +18 -0
  602. package/login/pages/logout-confirm/index.d.ts +5 -0
  603. package/login/pages/logout-confirm/logout-confirm.component.d.ts +18 -0
  604. package/login/pages/register/index.d.ts +5 -0
  605. package/login/pages/register/register.component.d.ts +26 -0
  606. package/login/pages/saml-post-form/index.d.ts +5 -0
  607. package/login/pages/saml-post-form/saml-post-form.component.d.ts +21 -0
  608. package/login/pages/select-authenticator/index.d.ts +5 -0
  609. package/login/pages/select-authenticator/select-authenticator.component.d.ts +18 -0
  610. package/login/pages/terms/index.d.ts +5 -0
  611. package/login/pages/terms/terms.component.d.ts +18 -0
  612. package/login/pages/update-email/index.d.ts +5 -0
  613. package/login/pages/update-email/update-email.component.d.ts +24 -0
  614. package/login/pages/webauthn-authenticate/index.d.ts +5 -0
  615. package/login/pages/webauthn-authenticate/webauthn-authenticate.component.d.ts +23 -0
  616. package/login/pages/webauthn-error/index.d.ts +5 -0
  617. package/login/pages/webauthn-error/webauthn-error.component.d.ts +19 -0
  618. package/login/pages/webauthn-register/index.d.ts +5 -0
  619. package/login/pages/webauthn-register/webauthn-register.component.d.ts +22 -0
  620. package/login/providers/keycloakify-angular/index.d.ts +5 -0
  621. package/login/providers/keycloakify-angular/keycloakify-angular.providers.d.ts +16 -0
  622. package/login/services/i18n/i18n.service.d.ts +6 -0
  623. package/login/services/i18n/index.d.ts +5 -0
  624. package/login/services/login-resource-injector/index.d.ts +5 -0
  625. package/login/services/login-resource-injector/login-resource-injector.service.d.ts +11 -0
  626. package/login/services/submit/index.d.ts +5 -0
  627. package/login/services/submit/submit.service.d.ts +9 -0
  628. package/login/services/user-profile-form/index.d.ts +5 -0
  629. package/login/services/user-profile-form/user-profile-form.service.d.ts +86 -0
  630. package/login/tokens/classes/classes.token.d.ts +127 -0
  631. package/login/tokens/classes/index.d.ts +5 -0
  632. package/login/tokens/i18n/i18n.token.d.ts +2 -0
  633. package/login/tokens/i18n/index.d.ts +5 -0
  634. package/login/tokens/kc-context/index.d.ts +5 -0
  635. package/login/tokens/kc-context/kc-context.token.d.ts +3 -0
  636. package/login/tokens/make-user-confirm-password/index.d.ts +5 -0
  637. package/login/tokens/make-user-confirm-password/make-user-confirm-password.token.d.ts +2 -0
  638. package/package.json +588 -51
  639. package/public-api.d.ts +1 -0
  640. package/src/account/DefaultPage.ts +61 -0
  641. package/src/account/KcContext.ts +1 -0
  642. package/src/account/containers/template/template.component.html +2 -2
  643. package/src/account/containers/template/template.component.ts +2 -2
  644. package/src/account/i18n.ts +4 -0
  645. package/src/account/pages/account/account.component.html +3 -3
  646. package/src/account/pages/account/account.component.ts +2 -2
  647. package/src/account/pages/applications/applications.component.html +2 -2
  648. package/src/account/pages/applications/applications.component.ts +2 -2
  649. package/src/account/pages/federatedIdentity/federatedIdentity.component.html +5 -5
  650. package/src/account/pages/federatedIdentity/federatedIdentity.component.ts +2 -2
  651. package/src/account/pages/log/log.component.ts +2 -2
  652. package/src/account/pages/password/password.component.html +4 -4
  653. package/src/account/pages/password/password.component.ts +3 -2
  654. package/src/account/pages/sessions/sessions.component.html +1 -1
  655. package/src/account/pages/sessions/sessions.component.ts +2 -2
  656. package/src/account/pages/totp/totp.component.html +11 -11
  657. package/src/account/pages/totp/totp.component.ts +2 -2
  658. package/src/account/providers/keycloakify-angular/keycloakify-angular.providers.ts +2 -1
  659. package/src/account/services/account-resource-injector/account-resource-injector.service.ts +1 -1
  660. package/src/account/tokens/kc-context/kc-context.token.ts +1 -1
  661. package/src/login/DefaultPage.ts +208 -0
  662. package/src/login/KcContext.ts +1 -0
  663. package/src/login/components/add-remove-buttons-multi-valued-attribute/add-remove-buttons-multi-valued-attribute.component.html +2 -2
  664. package/src/login/components/add-remove-buttons-multi-valued-attribute/add-remove-buttons-multi-valued-attribute.component.ts +1 -1
  665. package/src/login/components/field-errors/field-errors.component.html +1 -1
  666. package/src/login/components/group-label/group-label.component.ts +1 -1
  667. package/src/login/components/input-field-by-type/input-field-by-type.component.html +6 -6
  668. package/src/login/components/input-tag/input-tag.component.html +2 -2
  669. package/src/login/components/input-tag/input-tag.component.ts +1 -1
  670. package/src/login/components/input-tag-selects/input-tag-selects.component.ts +1 -1
  671. package/src/login/components/logout-other-sessions/logout-other-sessions.component.ts +1 -1
  672. package/src/login/components/password-wrapper/password-wrapper.component.html +2 -2
  673. package/src/login/components/password-wrapper/password-wrapper.component.ts +1 -1
  674. package/src/login/components/select-tag/select-tag.component.ts +1 -1
  675. package/src/login/components/user-profile-form-fields/user-profile-form-fields.component.html +7 -11
  676. package/src/login/components/user-profile-form-fields/user-profile-form-fields.component.ts +2 -2
  677. package/src/login/containers/template/template.component.html +11 -11
  678. package/src/login/containers/template/template.component.ts +2 -2
  679. package/src/login/directives/kc-class/kc-class.directive.ts +1 -2
  680. package/src/login/i18n.ts +4 -0
  681. package/src/login/pages/code/code.component.ts +2 -2
  682. package/src/login/pages/delete-account-confirm/delete-account-confirm.component.html +3 -3
  683. package/src/login/pages/delete-account-confirm/delete-account-confirm.component.ts +2 -2
  684. package/src/login/pages/delete-credential/delete-credential.component.html +4 -4
  685. package/src/login/pages/delete-credential/delete-credential.component.ts +2 -2
  686. package/src/login/pages/error/error.component.ts +2 -2
  687. package/src/login/pages/frontchannel-logout/frontchannel-logout.component.html +1 -1
  688. package/src/login/pages/frontchannel-logout/frontchannel-logout.component.ts +2 -2
  689. package/src/login/pages/idp-review-user-profile/idp-review-user-profile.component.html +3 -3
  690. package/src/login/pages/idp-review-user-profile/idp-review-user-profile.component.ts +2 -2
  691. package/src/login/pages/info/info.component.ts +2 -2
  692. package/src/login/pages/login/login.component.html +9 -9
  693. package/src/login/pages/login/login.component.ts +2 -2
  694. package/src/login/pages/login-config-totp/login-config-totp.component.html +10 -10
  695. package/src/login/pages/login-config-totp/login-config-totp.component.ts +2 -2
  696. package/src/login/pages/login-idp-link-confirm/login-idp-link-confirm.component.html +3 -3
  697. package/src/login/pages/login-idp-link-confirm/login-idp-link-confirm.component.ts +2 -2
  698. package/src/login/pages/login-idp-link-confirm-override/login-idp-link-confirm-override.component.html +2 -2
  699. package/src/login/pages/login-idp-link-confirm-override/login-idp-link-confirm-override.component.ts +2 -2
  700. package/src/login/pages/login-idp-link-email/login-idp-link-email.component.ts +2 -2
  701. package/src/login/pages/login-oauth-grant/login-oauth-grant.component.html +5 -5
  702. package/src/login/pages/login-oauth-grant/login-oauth-grant.component.ts +2 -2
  703. package/src/login/pages/login-oauth2-device-verify-user-code/login-oauth2-device-verify-user-code.component.html +3 -3
  704. package/src/login/pages/login-oauth2-device-verify-user-code/login-oauth2-device-verify-user-code.component.ts +2 -2
  705. package/src/login/pages/login-otp/login-otp.component.html +7 -7
  706. package/src/login/pages/login-otp/login-otp.component.ts +2 -2
  707. package/src/login/pages/login-page-expired/login-page-expired.component.ts +2 -2
  708. package/src/login/pages/login-passkeys-conditional-authenticate/login-passkeys-conditional-authenticate.component.html +9 -9
  709. package/src/login/pages/login-passkeys-conditional-authenticate/login-passkeys-conditional-authenticate.component.ts +2 -2
  710. package/src/login/pages/login-password/login-password.component.html +5 -5
  711. package/src/login/pages/login-password/login-password.component.ts +2 -2
  712. package/src/login/pages/login-recovery-authn-code-config/login-recovery-authn-code-config.component.html +9 -9
  713. package/src/login/pages/login-recovery-authn-code-config/login-recovery-authn-code-config.component.ts +2 -2
  714. package/src/login/pages/login-recovery-authn-code-input/login-recovery-authn-code-input.component.html +5 -5
  715. package/src/login/pages/login-recovery-authn-code-input/login-recovery-authn-code-input.component.ts +2 -2
  716. package/src/login/pages/login-reset-otp/login-reset-otp.component.html +5 -5
  717. package/src/login/pages/login-reset-otp/login-reset-otp.component.ts +2 -2
  718. package/src/login/pages/login-reset-password/login-reset-password.component.html +4 -4
  719. package/src/login/pages/login-reset-password/login-reset-password.component.ts +2 -2
  720. package/src/login/pages/login-update-password/login-update-password.component.html +8 -8
  721. package/src/login/pages/login-update-password/login-update-password.component.ts +2 -2
  722. package/src/login/pages/login-update-profile/login-update-profile.component.html +4 -4
  723. package/src/login/pages/login-update-profile/login-update-profile.component.ts +2 -2
  724. package/src/login/pages/login-username/login-username.component.html +7 -7
  725. package/src/login/pages/login-username/login-username.component.ts +2 -2
  726. package/src/login/pages/login-verify-email/login-verify-email.component.ts +2 -2
  727. package/src/login/pages/login-x509-info/login-x509-info.component.html +3 -3
  728. package/src/login/pages/login-x509-info/login-x509-info.component.ts +2 -2
  729. package/src/login/pages/logout-confirm/logout-confirm.component.html +2 -2
  730. package/src/login/pages/logout-confirm/logout-confirm.component.ts +2 -2
  731. package/src/login/pages/register/register.component.html +7 -7
  732. package/src/login/pages/register/register.component.ts +2 -2
  733. package/src/login/pages/saml-post-form/saml-post-form.component.html +1 -1
  734. package/src/login/pages/saml-post-form/saml-post-form.component.ts +2 -2
  735. package/src/login/pages/select-authenticator/select-authenticator.component.html +2 -2
  736. package/src/login/pages/select-authenticator/select-authenticator.component.ts +2 -2
  737. package/src/login/pages/terms/terms.component.html +3 -3
  738. package/src/login/pages/terms/terms.component.ts +2 -2
  739. package/src/login/pages/update-email/update-email.component.html +5 -5
  740. package/src/login/pages/update-email/update-email.component.ts +2 -2
  741. package/src/login/pages/webauthn-authenticate/webauthn-authenticate.component.html +4 -5
  742. package/src/login/pages/webauthn-authenticate/webauthn-authenticate.component.ts +2 -2
  743. package/src/login/pages/webauthn-error/webauthn-error.component.html +6 -6
  744. package/src/login/pages/webauthn-error/webauthn-error.component.ts +2 -2
  745. package/src/login/pages/webauthn-register/webauthn-register.component.html +4 -4
  746. package/src/login/pages/webauthn-register/webauthn-register.component.ts +2 -2
  747. package/src/login/providers/keycloakify-angular/keycloakify-angular.providers.ts +2 -1
  748. package/src/login/services/login-resource-injector/login-resource-injector.service.ts +1 -1
  749. package/src/login/services/submit/submit.service.ts +1 -1
  750. package/src/login/services/user-profile-form/user-profile-form.service.ts +2 -2
  751. package/src/login/tokens/kc-context/kc-context.token.ts +1 -1
  752. package/.github/workflows/ci.yaml +0 -111
  753. package/.prettierignore +0 -15
  754. package/.prettierrc.json +0 -26
  755. package/angular.json +0 -33
  756. package/scripts/build.ts +0 -183
  757. package/scripts/tools/SemVer.ts +0 -114
  758. package/scripts/tools/crawl.ts +0 -35
  759. package/scripts/tools/fs.rmSync.ts +0 -34
  760. package/scripts/tools/getThisCodebaseRootDirPath.ts +0 -19
  761. package/scripts/tools/transformCodebase.ts +0 -88
  762. package/src/account/DefaultPage/DefaultPage.ts +0 -61
  763. package/src/account/DefaultPage/index.ts +0 -1
  764. package/src/account/DefaultPage/ng-package.json +0 -6
  765. package/src/account/KcContext/index.ts +0 -1
  766. package/src/account/KcContext/ng-package.json +0 -6
  767. package/src/account/classes/component-reference/index.ts +0 -1
  768. package/src/account/classes/component-reference/ng-package.json +0 -6
  769. package/src/account/containers/template/index.ts +0 -1
  770. package/src/account/containers/template/ng-package.json +0 -6
  771. package/src/account/directives/kc-class/index.ts +0 -1
  772. package/src/account/directives/kc-class/ng-package.json +0 -6
  773. package/src/account/i18n/index.ts +0 -1
  774. package/src/account/i18n/ng-package.json +0 -6
  775. package/src/account/pages/account/index.ts +0 -1
  776. package/src/account/pages/account/ng-package.json +0 -6
  777. package/src/account/pages/applications/index.ts +0 -1
  778. package/src/account/pages/applications/ng-package.json +0 -6
  779. package/src/account/pages/federatedIdentity/index.ts +0 -1
  780. package/src/account/pages/federatedIdentity/ng-package.json +0 -6
  781. package/src/account/pages/log/index.ts +0 -1
  782. package/src/account/pages/log/ng-package.json +0 -6
  783. package/src/account/pages/password/index.ts +0 -1
  784. package/src/account/pages/password/ng-package.json +0 -6
  785. package/src/account/pages/sessions/index.ts +0 -1
  786. package/src/account/pages/sessions/ng-package.json +0 -6
  787. package/src/account/pages/totp/index.ts +0 -1
  788. package/src/account/pages/totp/ng-package.json +0 -6
  789. package/src/account/providers/keycloakify-angular/index.ts +0 -1
  790. package/src/account/providers/keycloakify-angular/ng-package.json +0 -6
  791. package/src/account/services/account-resource-injector/index.ts +0 -1
  792. package/src/account/services/account-resource-injector/ng-package.json +0 -6
  793. package/src/account/services/i18n/index.ts +0 -1
  794. package/src/account/services/i18n/ng-package.json +0 -6
  795. package/src/account/tokens/classes/index.ts +0 -1
  796. package/src/account/tokens/classes/ng-package.json +0 -6
  797. package/src/account/tokens/i18n/index.ts +0 -1
  798. package/src/account/tokens/i18n/ng-package.json +0 -6
  799. package/src/account/tokens/kc-context/index.ts +0 -1
  800. package/src/account/tokens/kc-context/ng-package.json +0 -6
  801. package/src/lib/directives/attributes/index.ts +0 -1
  802. package/src/lib/directives/attributes/ng-package.json +0 -6
  803. package/src/lib/models/script/index.ts +0 -1
  804. package/src/lib/models/script/ng-package.json +0 -6
  805. package/src/lib/ng-package.json +0 -6
  806. package/src/lib/pipes/input-type/index.ts +0 -1
  807. package/src/lib/pipes/input-type/ng-package.json +0 -6
  808. package/src/lib/pipes/is-array-with-empty-object/index.ts +0 -1
  809. package/src/lib/pipes/is-array-with-empty-object/ng-package.json +0 -6
  810. package/src/lib/pipes/kc-sanitize/index.ts +0 -1
  811. package/src/lib/pipes/kc-sanitize/ng-package.json +0 -6
  812. package/src/lib/pipes/to-array/index.ts +0 -1
  813. package/src/lib/pipes/to-array/ng-package.json +0 -6
  814. package/src/lib/pipes/to-number/index.ts +0 -1
  815. package/src/lib/pipes/to-number/ng-package.json +0 -6
  816. package/src/lib/public-api.ts +0 -1
  817. package/src/lib/services/resource-injector/index.ts +0 -1
  818. package/src/lib/services/resource-injector/ng-package.json +0 -6
  819. package/src/lib/tokens/use-default-css/index.ts +0 -1
  820. package/src/lib/tokens/use-default-css/ng-package.json +0 -6
  821. package/src/login/DefaultPage/DefaultPage.ts +0 -208
  822. package/src/login/DefaultPage/index.ts +0 -1
  823. package/src/login/DefaultPage/ng-package.json +0 -6
  824. package/src/login/KcContext/index.ts +0 -1
  825. package/src/login/KcContext/ng-package.json +0 -6
  826. package/src/login/classes/component-reference/index.ts +0 -1
  827. package/src/login/classes/component-reference/ng-package.json +0 -6
  828. package/src/login/components/add-remove-buttons-multi-valued-attribute/index.ts +0 -1
  829. package/src/login/components/add-remove-buttons-multi-valued-attribute/ng-package.json +0 -6
  830. package/src/login/components/field-errors/index.ts +0 -1
  831. package/src/login/components/field-errors/ng-package.json +0 -6
  832. package/src/login/components/group-label/index.ts +0 -1
  833. package/src/login/components/group-label/ng-package.json +0 -6
  834. package/src/login/components/input-field-by-type/index.ts +0 -1
  835. package/src/login/components/input-field-by-type/ng-package.json +0 -6
  836. package/src/login/components/input-tag/index.ts +0 -1
  837. package/src/login/components/input-tag/ng-package.json +0 -6
  838. package/src/login/components/input-tag-selects/index.ts +0 -1
  839. package/src/login/components/input-tag-selects/ng-package.json +0 -6
  840. package/src/login/components/logout-other-sessions/index.ts +0 -1
  841. package/src/login/components/logout-other-sessions/ng-package.json +0 -6
  842. package/src/login/components/password-wrapper/index.ts +0 -1
  843. package/src/login/components/password-wrapper/ng-package.json +0 -6
  844. package/src/login/components/select-tag/index.ts +0 -1
  845. package/src/login/components/select-tag/ng-package.json +0 -6
  846. package/src/login/components/textarea-tag/index.ts +0 -1
  847. package/src/login/components/textarea-tag/ng-package.json +0 -6
  848. package/src/login/components/user-profile-form-fields/index.ts +0 -1
  849. package/src/login/components/user-profile-form-fields/ng-package.json +0 -6
  850. package/src/login/containers/template/index.ts +0 -1
  851. package/src/login/containers/template/ng-package.json +0 -6
  852. package/src/login/directives/kc-class/index.ts +0 -1
  853. package/src/login/directives/kc-class/ng-package.json +0 -6
  854. package/src/login/i18n/index.ts +0 -1
  855. package/src/login/i18n/ng-package.json +0 -6
  856. package/src/login/pages/code/index.ts +0 -1
  857. package/src/login/pages/code/ng-package.json +0 -6
  858. package/src/login/pages/delete-account-confirm/index.ts +0 -1
  859. package/src/login/pages/delete-account-confirm/ng-package.json +0 -6
  860. package/src/login/pages/delete-credential/index.ts +0 -1
  861. package/src/login/pages/delete-credential/ng-package.json +0 -6
  862. package/src/login/pages/error/index.ts +0 -1
  863. package/src/login/pages/error/ng-package.json +0 -6
  864. package/src/login/pages/frontchannel-logout/index.ts +0 -1
  865. package/src/login/pages/frontchannel-logout/ng-package.json +0 -6
  866. package/src/login/pages/idp-review-user-profile/index.ts +0 -1
  867. package/src/login/pages/idp-review-user-profile/ng-package.json +0 -6
  868. package/src/login/pages/info/index.ts +0 -1
  869. package/src/login/pages/info/ng-package.json +0 -6
  870. package/src/login/pages/login/index.ts +0 -1
  871. package/src/login/pages/login/ng-package.json +0 -6
  872. package/src/login/pages/login-config-totp/index.ts +0 -1
  873. package/src/login/pages/login-config-totp/ng-package.json +0 -6
  874. package/src/login/pages/login-idp-link-confirm/index.ts +0 -1
  875. package/src/login/pages/login-idp-link-confirm/ng-package.json +0 -6
  876. package/src/login/pages/login-idp-link-confirm-override/index.ts +0 -1
  877. package/src/login/pages/login-idp-link-confirm-override/ng-package.json +0 -6
  878. package/src/login/pages/login-idp-link-email/index.ts +0 -1
  879. package/src/login/pages/login-idp-link-email/ng-package.json +0 -6
  880. package/src/login/pages/login-oauth-grant/index.ts +0 -1
  881. package/src/login/pages/login-oauth-grant/ng-package.json +0 -6
  882. package/src/login/pages/login-oauth2-device-verify-user-code/index.ts +0 -1
  883. package/src/login/pages/login-oauth2-device-verify-user-code/ng-package.json +0 -6
  884. package/src/login/pages/login-otp/index.ts +0 -1
  885. package/src/login/pages/login-otp/ng-package.json +0 -6
  886. package/src/login/pages/login-page-expired/index.ts +0 -1
  887. package/src/login/pages/login-page-expired/ng-package.json +0 -6
  888. package/src/login/pages/login-passkeys-conditional-authenticate/index.ts +0 -1
  889. package/src/login/pages/login-passkeys-conditional-authenticate/ng-package.json +0 -6
  890. package/src/login/pages/login-password/index.ts +0 -1
  891. package/src/login/pages/login-password/ng-package.json +0 -6
  892. package/src/login/pages/login-recovery-authn-code-config/index.ts +0 -1
  893. package/src/login/pages/login-recovery-authn-code-config/ng-package.json +0 -6
  894. package/src/login/pages/login-recovery-authn-code-input/index.ts +0 -1
  895. package/src/login/pages/login-recovery-authn-code-input/ng-package.json +0 -6
  896. package/src/login/pages/login-reset-otp/index.ts +0 -1
  897. package/src/login/pages/login-reset-otp/ng-package.json +0 -6
  898. package/src/login/pages/login-reset-password/index.ts +0 -1
  899. package/src/login/pages/login-reset-password/ng-package.json +0 -6
  900. package/src/login/pages/login-update-password/index.ts +0 -1
  901. package/src/login/pages/login-update-password/ng-package.json +0 -6
  902. package/src/login/pages/login-update-profile/index.ts +0 -1
  903. package/src/login/pages/login-update-profile/ng-package.json +0 -6
  904. package/src/login/pages/login-username/index.ts +0 -1
  905. package/src/login/pages/login-username/ng-package.json +0 -6
  906. package/src/login/pages/login-verify-email/index.ts +0 -1
  907. package/src/login/pages/login-verify-email/ng-package.json +0 -6
  908. package/src/login/pages/login-x509-info/index.ts +0 -1
  909. package/src/login/pages/login-x509-info/ng-package.json +0 -6
  910. package/src/login/pages/logout-confirm/index.ts +0 -1
  911. package/src/login/pages/logout-confirm/ng-package.json +0 -6
  912. package/src/login/pages/register/index.ts +0 -1
  913. package/src/login/pages/register/ng-package.json +0 -6
  914. package/src/login/pages/saml-post-form/index.ts +0 -1
  915. package/src/login/pages/saml-post-form/ng-package.json +0 -6
  916. package/src/login/pages/select-authenticator/index.ts +0 -1
  917. package/src/login/pages/select-authenticator/ng-package.json +0 -6
  918. package/src/login/pages/terms/index.ts +0 -1
  919. package/src/login/pages/terms/ng-package.json +0 -6
  920. package/src/login/pages/update-email/index.ts +0 -1
  921. package/src/login/pages/update-email/ng-package.json +0 -6
  922. package/src/login/pages/webauthn-authenticate/index.ts +0 -1
  923. package/src/login/pages/webauthn-authenticate/ng-package.json +0 -6
  924. package/src/login/pages/webauthn-error/index.ts +0 -1
  925. package/src/login/pages/webauthn-error/ng-package.json +0 -6
  926. package/src/login/pages/webauthn-register/index.ts +0 -1
  927. package/src/login/pages/webauthn-register/ng-package.json +0 -6
  928. package/src/login/providers/keycloakify-angular/index.ts +0 -1
  929. package/src/login/providers/keycloakify-angular/ng-package.json +0 -6
  930. package/src/login/services/i18n/index.ts +0 -1
  931. package/src/login/services/i18n/ng-package.json +0 -6
  932. package/src/login/services/login-resource-injector/index.ts +0 -1
  933. package/src/login/services/login-resource-injector/ng-package.json +0 -6
  934. package/src/login/services/submit/index.ts +0 -1
  935. package/src/login/services/submit/ng-package.json +0 -6
  936. package/src/login/services/user-profile-form/index.ts +0 -1
  937. package/src/login/services/user-profile-form/ng-package.json +0 -6
  938. package/src/login/tokens/classes/index.ts +0 -1
  939. package/src/login/tokens/classes/ng-package.json +0 -6
  940. package/src/login/tokens/i18n/index.ts +0 -1
  941. package/src/login/tokens/i18n/ng-package.json +0 -6
  942. package/src/login/tokens/kc-context/index.ts +0 -1
  943. package/src/login/tokens/kc-context/ng-package.json +0 -6
  944. package/src/login/tokens/make-user-confirm-password/index.ts +0 -1
  945. package/src/login/tokens/make-user-confirm-password/ng-package.json +0 -6
  946. package/src/ng-package.json +0 -8
  947. package/src/package.json +0 -17
  948. package/src/public-api.ts +0 -1
  949. package/src/tsconfig.lib.json +0 -12
  950. package/src/tsconfig.lib.prod.json +0 -10
  951. package/tsconfig.json +0 -33
  952. package/tsproject.json +0 -15
  953. /package/{src/account/DefaultPage/public-api.ts → account/DefaultPage/public-api.d.ts} +0 -0
  954. /package/{src/account/KcContext/KcContext.ts → account/KcContext/KcContext.d.ts} +0 -0
  955. /package/{src/account/KcContext/public-api.ts → account/KcContext/public-api.d.ts} +0 -0
  956. /package/{src/account/classes/component-reference/public-api.ts → account/classes/component-reference/public-api.d.ts} +0 -0
  957. /package/{src/account/containers/template/public-api.ts → account/containers/template/public-api.d.ts} +0 -0
  958. /package/{src/account/directives/kc-class/public-api.ts → account/directives/kc-class/public-api.d.ts} +0 -0
  959. /package/{src/account/i18n/i18n.ts → account/i18n/i18n.d.ts} +0 -0
  960. /package/{src/account/i18n/public-api.ts → account/i18n/public-api.d.ts} +0 -0
  961. /package/{src/account/pages/account/public-api.ts → account/pages/account/public-api.d.ts} +0 -0
  962. /package/{src/account/pages/applications/public-api.ts → account/pages/applications/public-api.d.ts} +0 -0
  963. /package/{src/account/pages/federatedIdentity/public-api.ts → account/pages/federatedIdentity/public-api.d.ts} +0 -0
  964. /package/{src/account/pages/log/public-api.ts → account/pages/log/public-api.d.ts} +0 -0
  965. /package/{src/account/pages/password/public-api.ts → account/pages/password/public-api.d.ts} +0 -0
  966. /package/{src/account/pages/sessions/public-api.ts → account/pages/sessions/public-api.d.ts} +0 -0
  967. /package/{src/account/pages/totp/public-api.ts → account/pages/totp/public-api.d.ts} +0 -0
  968. /package/{src/account/providers/keycloakify-angular/public-api.ts → account/providers/keycloakify-angular/public-api.d.ts} +0 -0
  969. /package/{src/account/services/account-resource-injector/public-api.ts → account/services/account-resource-injector/public-api.d.ts} +0 -0
  970. /package/{src/account/services/i18n/public-api.ts → account/services/i18n/public-api.d.ts} +0 -0
  971. /package/{src/account/tokens/classes/public-api.ts → account/tokens/classes/public-api.d.ts} +0 -0
  972. /package/{src/account/tokens/i18n/public-api.ts → account/tokens/i18n/public-api.d.ts} +0 -0
  973. /package/{src/account/tokens/kc-context/public-api.ts → account/tokens/kc-context/public-api.d.ts} +0 -0
  974. /package/{src/lib/directives/attributes/public-api.ts → lib/directives/attributes/public-api.d.ts} +0 -0
  975. /package/{src/lib/models/script/public-api.ts → lib/models/script/public-api.d.ts} +0 -0
  976. /package/{src/lib/pipes/input-type/public-api.ts → lib/pipes/input-type/public-api.d.ts} +0 -0
  977. /package/{src/lib/pipes/is-array-with-empty-object/public-api.ts → lib/pipes/is-array-with-empty-object/public-api.d.ts} +0 -0
  978. /package/{src/lib/pipes/kc-sanitize/public-api.ts → lib/pipes/kc-sanitize/public-api.d.ts} +0 -0
  979. /package/{src/lib/pipes/to-array/public-api.ts → lib/pipes/to-array/public-api.d.ts} +0 -0
  980. /package/{src/lib/pipes/to-number/public-api.ts → lib/pipes/to-number/public-api.d.ts} +0 -0
  981. /package/{src/lib/services/resource-injector/public-api.ts → lib/services/resource-injector/public-api.d.ts} +0 -0
  982. /package/{src/lib/tokens/use-default-css/public-api.ts → lib/tokens/use-default-css/public-api.d.ts} +0 -0
  983. /package/{src/login/DefaultPage/public-api.ts → login/DefaultPage/public-api.d.ts} +0 -0
  984. /package/{src/login/KcContext/KcContext.ts → login/KcContext/KcContext.d.ts} +0 -0
  985. /package/{src/login/KcContext/public-api.ts → login/KcContext/public-api.d.ts} +0 -0
  986. /package/{src/login/classes/component-reference/public-api.ts → login/classes/component-reference/public-api.d.ts} +0 -0
  987. /package/{src/login/components/add-remove-buttons-multi-valued-attribute/public-api.ts → login/components/add-remove-buttons-multi-valued-attribute/public-api.d.ts} +0 -0
  988. /package/{src/login/components/field-errors/public-api.ts → login/components/field-errors/public-api.d.ts} +0 -0
  989. /package/{src/login/components/group-label/public-api.ts → login/components/group-label/public-api.d.ts} +0 -0
  990. /package/{src/login/components/input-field-by-type/public-api.ts → login/components/input-field-by-type/public-api.d.ts} +0 -0
  991. /package/{src/login/components/input-tag/public-api.ts → login/components/input-tag/public-api.d.ts} +0 -0
  992. /package/{src/login/components/input-tag-selects/public-api.ts → login/components/input-tag-selects/public-api.d.ts} +0 -0
  993. /package/{src/login/components/logout-other-sessions/public-api.ts → login/components/logout-other-sessions/public-api.d.ts} +0 -0
  994. /package/{src/login/components/password-wrapper/public-api.ts → login/components/password-wrapper/public-api.d.ts} +0 -0
  995. /package/{src/login/components/select-tag/public-api.ts → login/components/select-tag/public-api.d.ts} +0 -0
  996. /package/{src/login/components/textarea-tag/public-api.ts → login/components/textarea-tag/public-api.d.ts} +0 -0
  997. /package/{src/login/components/user-profile-form-fields/public-api.ts → login/components/user-profile-form-fields/public-api.d.ts} +0 -0
  998. /package/{src/login/containers/template/public-api.ts → login/containers/template/public-api.d.ts} +0 -0
  999. /package/{src/login/directives/kc-class/public-api.ts → login/directives/kc-class/public-api.d.ts} +0 -0
  1000. /package/{src/login/i18n/i18n.ts → login/i18n/i18n.d.ts} +0 -0
  1001. /package/{src/login/i18n/public-api.ts → login/i18n/public-api.d.ts} +0 -0
  1002. /package/{src/login/pages/code/public-api.ts → login/pages/code/public-api.d.ts} +0 -0
  1003. /package/{src/login/pages/delete-account-confirm/public-api.ts → login/pages/delete-account-confirm/public-api.d.ts} +0 -0
  1004. /package/{src/login/pages/delete-credential/public-api.ts → login/pages/delete-credential/public-api.d.ts} +0 -0
  1005. /package/{src/login/pages/error/public-api.ts → login/pages/error/public-api.d.ts} +0 -0
  1006. /package/{src/login/pages/frontchannel-logout/public-api.ts → login/pages/frontchannel-logout/public-api.d.ts} +0 -0
  1007. /package/{src/login/pages/idp-review-user-profile/public-api.ts → login/pages/idp-review-user-profile/public-api.d.ts} +0 -0
  1008. /package/{src/login/pages/info/public-api.ts → login/pages/info/public-api.d.ts} +0 -0
  1009. /package/{src/login/pages/login/public-api.ts → login/pages/login/public-api.d.ts} +0 -0
  1010. /package/{src/login/pages/login-config-totp/public-api.ts → login/pages/login-config-totp/public-api.d.ts} +0 -0
  1011. /package/{src/login/pages/login-idp-link-confirm/public-api.ts → login/pages/login-idp-link-confirm/public-api.d.ts} +0 -0
  1012. /package/{src/login/pages/login-idp-link-confirm-override/public-api.ts → login/pages/login-idp-link-confirm-override/public-api.d.ts} +0 -0
  1013. /package/{src/login/pages/login-idp-link-email/public-api.ts → login/pages/login-idp-link-email/public-api.d.ts} +0 -0
  1014. /package/{src/login/pages/login-oauth-grant/public-api.ts → login/pages/login-oauth-grant/public-api.d.ts} +0 -0
  1015. /package/{src/login/pages/login-oauth2-device-verify-user-code/public-api.ts → login/pages/login-oauth2-device-verify-user-code/public-api.d.ts} +0 -0
  1016. /package/{src/login/pages/login-otp/public-api.ts → login/pages/login-otp/public-api.d.ts} +0 -0
  1017. /package/{src/login/pages/login-page-expired/public-api.ts → login/pages/login-page-expired/public-api.d.ts} +0 -0
  1018. /package/{src/login/pages/login-passkeys-conditional-authenticate/public-api.ts → login/pages/login-passkeys-conditional-authenticate/public-api.d.ts} +0 -0
  1019. /package/{src/login/pages/login-password/public-api.ts → login/pages/login-password/public-api.d.ts} +0 -0
  1020. /package/{src/login/pages/login-recovery-authn-code-config/public-api.ts → login/pages/login-recovery-authn-code-config/public-api.d.ts} +0 -0
  1021. /package/{src/login/pages/login-recovery-authn-code-input/public-api.ts → login/pages/login-recovery-authn-code-input/public-api.d.ts} +0 -0
  1022. /package/{src/login/pages/login-reset-otp/public-api.ts → login/pages/login-reset-otp/public-api.d.ts} +0 -0
  1023. /package/{src/login/pages/login-reset-password/public-api.ts → login/pages/login-reset-password/public-api.d.ts} +0 -0
  1024. /package/{src/login/pages/login-update-password/public-api.ts → login/pages/login-update-password/public-api.d.ts} +0 -0
  1025. /package/{src/login/pages/login-update-profile/public-api.ts → login/pages/login-update-profile/public-api.d.ts} +0 -0
  1026. /package/{src/login/pages/login-username/public-api.ts → login/pages/login-username/public-api.d.ts} +0 -0
  1027. /package/{src/login/pages/login-verify-email/public-api.ts → login/pages/login-verify-email/public-api.d.ts} +0 -0
  1028. /package/{src/login/pages/login-x509-info/public-api.ts → login/pages/login-x509-info/public-api.d.ts} +0 -0
  1029. /package/{src/login/pages/logout-confirm/public-api.ts → login/pages/logout-confirm/public-api.d.ts} +0 -0
  1030. /package/{src/login/pages/register/public-api.ts → login/pages/register/public-api.d.ts} +0 -0
  1031. /package/{src/login/pages/saml-post-form/public-api.ts → login/pages/saml-post-form/public-api.d.ts} +0 -0
  1032. /package/{src/login/pages/select-authenticator/public-api.ts → login/pages/select-authenticator/public-api.d.ts} +0 -0
  1033. /package/{src/login/pages/terms/public-api.ts → login/pages/terms/public-api.d.ts} +0 -0
  1034. /package/{src/login/pages/update-email/public-api.ts → login/pages/update-email/public-api.d.ts} +0 -0
  1035. /package/{src/login/pages/webauthn-authenticate/public-api.ts → login/pages/webauthn-authenticate/public-api.d.ts} +0 -0
  1036. /package/{src/login/pages/webauthn-error/public-api.ts → login/pages/webauthn-error/public-api.d.ts} +0 -0
  1037. /package/{src/login/pages/webauthn-register/public-api.ts → login/pages/webauthn-register/public-api.d.ts} +0 -0
  1038. /package/{src/login/providers/keycloakify-angular/public-api.ts → login/providers/keycloakify-angular/public-api.d.ts} +0 -0
  1039. /package/{src/login/services/i18n/public-api.ts → login/services/i18n/public-api.d.ts} +0 -0
  1040. /package/{src/login/services/login-resource-injector/public-api.ts → login/services/login-resource-injector/public-api.d.ts} +0 -0
  1041. /package/{src/login/services/submit/public-api.ts → login/services/submit/public-api.d.ts} +0 -0
  1042. /package/{src/login/services/user-profile-form/public-api.ts → login/services/user-profile-form/public-api.d.ts} +0 -0
  1043. /package/{src/login/tokens/classes/public-api.ts → login/tokens/classes/public-api.d.ts} +0 -0
  1044. /package/{src/login/tokens/i18n/public-api.ts → login/tokens/i18n/public-api.d.ts} +0 -0
  1045. /package/{src/login/tokens/kc-context/public-api.ts → login/tokens/kc-context/public-api.d.ts} +0 -0
  1046. /package/{src/login/tokens/make-user-confirm-password/public-api.ts → login/tokens/make-user-confirm-password/public-api.d.ts} +0 -0
@@ -0,0 +1,80 @@
1
+ import { ChangeDetectionStrategy, Component, forwardRef, inject, input } from '@angular/core';
2
+ import { USE_DEFAULT_CSS } from '@keycloakify/angular/lib/tokens/use-default-css';
3
+ import { ComponentReference } from '@keycloakify/angular/login/classes/component-reference';
4
+ import { LogoutOtherSessionsComponent } from '@keycloakify/angular/login/components/logout-other-sessions';
5
+ import { TemplateComponent } from '@keycloakify/angular/login/containers/template';
6
+ import { KcClassDirective } from '@keycloakify/angular/login/directives/kc-class';
7
+ import { LoginResourceInjectorService } from '@keycloakify/angular/login/services/login-resource-injector';
8
+ import { LOGIN_CLASSES } from '@keycloakify/angular/login/tokens/classes';
9
+ import { LOGIN_I18N } from '@keycloakify/angular/login/tokens/i18n';
10
+ import { KC_LOGIN_CONTEXT } from '@keycloakify/angular/login/tokens/kc-context';
11
+ import { getKcClsx } from 'keycloakify/login/lib/kcClsx';
12
+ import * as i0 from "@angular/core";
13
+ export class WebauthnAuthenticateComponent extends ComponentReference {
14
+ constructor() {
15
+ super();
16
+ this.kcContext = inject(KC_LOGIN_CONTEXT);
17
+ this.loginResourceInjectorService = inject(LoginResourceInjectorService);
18
+ this.i18n = inject(LOGIN_I18N);
19
+ this.doUseDefaultCss = inject(USE_DEFAULT_CSS);
20
+ this.classes = inject(LOGIN_CLASSES);
21
+ this.displayRequiredFields = input(false);
22
+ this.documentTitle = input();
23
+ this.bodyClassName = input();
24
+ this.displayInfo = false;
25
+ this.displayMessage = true;
26
+ this.authButtonId = 'authenticateWebAuthnButton';
27
+ const { url, isUserIdentified, challenge, userVerification, rpId, createTimeout } = this.kcContext;
28
+ const scripts = [
29
+ {
30
+ type: 'module',
31
+ id: 'WebAuthnAuthenticateScript',
32
+ textContent: `
33
+ import { authenticateByWebAuthn } from "${url.resourcesPath}/js/webauthnAuthenticate.js";
34
+ const authButton = document.getElementById('${this.authButtonId}');
35
+ authButton.addEventListener("click", function() {
36
+ const input = {
37
+ isUserIdentified : ${isUserIdentified},
38
+ challenge : '${challenge}',
39
+ userVerification : '${userVerification}',
40
+ rpId : '${rpId}',
41
+ createTimeout : ${createTimeout},
42
+ errmsg : ${JSON.stringify(this.i18n.msgStr('webauthn-unsupported-browser-text'))}
43
+ };
44
+ authenticateByWebAuthn(input);
45
+ });
46
+ `
47
+ }
48
+ ];
49
+ this.loginResourceInjectorService.insertAdditionalScripts(scripts);
50
+ }
51
+ selectAuthListItemIconClass(iconClass) {
52
+ const kcClsx = getKcClsx({
53
+ doUseDefaultCss: this.doUseDefaultCss ?? true,
54
+ classes: this.classes
55
+ }).kcClsx;
56
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
57
+ const className = kcClsx(iconClass);
58
+ if (className === iconClass) {
59
+ return kcClsx('kcWebAuthnDefaultIcon');
60
+ }
61
+ return className;
62
+ }
63
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: WebauthnAuthenticateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
64
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: WebauthnAuthenticateComponent, 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: [
65
+ {
66
+ provide: ComponentReference,
67
+ useExisting: forwardRef(() => WebauthnAuthenticateComponent)
68
+ }
69
+ ], usesInheritance: true, ngImport: i0, template: "@let url = kcContext.url;\n@let authenticators = kcContext.authenticators;\n@let shouldDisplayAuthenticators = kcContext.shouldDisplayAuthenticators;\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 {{ i18n.msgStr('webauthn-login-title') }}\n </ng-container>\n <ng-container infoNode>\n <div id=\"kc-registration\">\n <span>\n {{ i18n.msgStr('noAccount') }}\n <a\n tabIndex=\"6\"\n [href]=\"url.registrationUrl\"\n >\n {{ i18n.msgStr('doRegister') }}\n </a>\n </span>\n </div>\n </ng-container>\n <ng-container content>\n <div\n id=\"kc-form-webauthn\"\n [kcClass]=\"'kcFormClass'\"\n >\n <form\n id=\"webauth\"\n method=\"post\"\n [action]=\"url.loginAction\"\n >\n <input\n type=\"hidden\"\n id=\"clientDataJSON\"\n name=\"clientDataJSON\"\n />\n <input\n type=\"hidden\"\n id=\"authenticatorData\"\n name=\"authenticatorData\"\n />\n <input\n type=\"hidden\"\n id=\"signature\"\n name=\"signature\"\n />\n <input\n type=\"hidden\"\n id=\"credentialId\"\n name=\"credentialId\"\n />\n <input\n type=\"hidden\"\n id=\"userHandle\"\n name=\"userHandle\"\n />\n <input\n type=\"hidden\"\n id=\"error\"\n name=\"error\"\n />\n </form>\n\n <div\n class=\"no-bottom-margin\"\n [kcClass]=\"'kcFormGroupClass'\"\n >\n @if (authenticators) {\n <form\n id=\"authn_select\"\n [kcClass]=\"'kcFormClass'\"\n >\n @for (authenticator of authenticators.authenticators; track authenticator.credentialId) {\n <input\n type=\"hidden\"\n name=\"authn_use_chk\"\n [value]=\"authenticator.credentialId\"\n />\n }\n @if (shouldDisplayAuthenticators) {\n @if (authenticators.authenticators.length > 1) {\n <p [kcClass]=\"'kcSelectAuthListItemTitle'\">\n {{ i18n.msgStr('webauthn-available-authenticators') }}\n </p>\n }\n <div [kcClass]=\"'kcFormOptionsClass'\">\n @for (authenticator of authenticators.authenticators; track authenticator.credentialId; let i = $index) {\n <div\n [id]=\"'kc-webauthn-authenticator-item-' + i\"\n [kcClass]=\"'kcSelectAuthListItemClass'\"\n >\n <div [kcClass]=\"'kcSelectAuthListItemIconClass'\">\n <i\n [ngClass]=\"selectAuthListItemIconClass(authenticator.transports.iconClass)\"\n [kcClass]=\"'kcSelectAuthListItemIconPropertyClass'\"\n ></i>\n <div [kcClass]=\"'kcSelectAuthListItemArrowIconClass'\">\n <div\n [id]=\"'kc-webauthn-authenticator-label-' + i\"\n [kcClass]=\"'kcSelectAuthListItemHeadingClass'\"\n >\n {{ i18n.advancedMsgStr(authenticator.label) }}\n </div>\n @if (authenticator.transports.displayNameProperties?.length) {\n <div\n [id]=\"'kc-webauthn-authenticator-transport-' + i\"\n [kcClass]=\"'kcSelectAuthListItemDescriptionClass'\"\n >\n @for (\n displayNameProperty of authenticator.transports.displayNameProperties;\n track displayNameProperty;\n let last = $last\n ) {\n {{ i18n.advancedMsgStr(displayNameProperty) }}\n @if (!last) {\n <span>, </span>\n }\n }\n </div>\n <div [kcClass]=\"'kcSelectAuthListItemDescriptionClass'\">\n <span [id]=\"'kc-webauthn-authenticator-createdlabel-' + i\">\n {{ i18n.msgStr('webauthn-createdAt-label') }}\n </span>\n <span [id]=\"'kc-webauthn-authenticator-created-' + i\">{{ authenticator.createdAt }}</span>\n </div>\n <div [kcClass]=\"'kcSelectAuthListItemFillClass'\"></div>\n }\n </div>\n </div>\n </div>\n }\n </div>\n }\n </form>\n }\n\n <div\n id=\"kc-form-buttons\"\n [kcClass]=\"'kcFormButtonsClass'\"\n >\n <input\n type=\"button\"\n autofocus\n name=\"cancel-aia\"\n [id]=\"authButtonId\"\n [kcClass]=\"['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('webauthn-doAuthenticate')\"\n />\n </div>\n </div>\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: "directive", type: KcClassDirective, selector: "[kcClass]", inputs: ["class", "ngClass", "kcClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
70
+ }
71
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: WebauthnAuthenticateComponent, decorators: [{
72
+ type: Component,
73
+ args: [{ standalone: true, imports: [TemplateComponent, KcClassDirective, LogoutOtherSessionsComponent], selector: 'kc-root', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
74
+ {
75
+ provide: ComponentReference,
76
+ useExisting: forwardRef(() => WebauthnAuthenticateComponent)
77
+ }
78
+ ], template: "@let url = kcContext.url;\n@let authenticators = kcContext.authenticators;\n@let shouldDisplayAuthenticators = kcContext.shouldDisplayAuthenticators;\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 {{ i18n.msgStr('webauthn-login-title') }}\n </ng-container>\n <ng-container infoNode>\n <div id=\"kc-registration\">\n <span>\n {{ i18n.msgStr('noAccount') }}\n <a\n tabIndex=\"6\"\n [href]=\"url.registrationUrl\"\n >\n {{ i18n.msgStr('doRegister') }}\n </a>\n </span>\n </div>\n </ng-container>\n <ng-container content>\n <div\n id=\"kc-form-webauthn\"\n [kcClass]=\"'kcFormClass'\"\n >\n <form\n id=\"webauth\"\n method=\"post\"\n [action]=\"url.loginAction\"\n >\n <input\n type=\"hidden\"\n id=\"clientDataJSON\"\n name=\"clientDataJSON\"\n />\n <input\n type=\"hidden\"\n id=\"authenticatorData\"\n name=\"authenticatorData\"\n />\n <input\n type=\"hidden\"\n id=\"signature\"\n name=\"signature\"\n />\n <input\n type=\"hidden\"\n id=\"credentialId\"\n name=\"credentialId\"\n />\n <input\n type=\"hidden\"\n id=\"userHandle\"\n name=\"userHandle\"\n />\n <input\n type=\"hidden\"\n id=\"error\"\n name=\"error\"\n />\n </form>\n\n <div\n class=\"no-bottom-margin\"\n [kcClass]=\"'kcFormGroupClass'\"\n >\n @if (authenticators) {\n <form\n id=\"authn_select\"\n [kcClass]=\"'kcFormClass'\"\n >\n @for (authenticator of authenticators.authenticators; track authenticator.credentialId) {\n <input\n type=\"hidden\"\n name=\"authn_use_chk\"\n [value]=\"authenticator.credentialId\"\n />\n }\n @if (shouldDisplayAuthenticators) {\n @if (authenticators.authenticators.length > 1) {\n <p [kcClass]=\"'kcSelectAuthListItemTitle'\">\n {{ i18n.msgStr('webauthn-available-authenticators') }}\n </p>\n }\n <div [kcClass]=\"'kcFormOptionsClass'\">\n @for (authenticator of authenticators.authenticators; track authenticator.credentialId; let i = $index) {\n <div\n [id]=\"'kc-webauthn-authenticator-item-' + i\"\n [kcClass]=\"'kcSelectAuthListItemClass'\"\n >\n <div [kcClass]=\"'kcSelectAuthListItemIconClass'\">\n <i\n [ngClass]=\"selectAuthListItemIconClass(authenticator.transports.iconClass)\"\n [kcClass]=\"'kcSelectAuthListItemIconPropertyClass'\"\n ></i>\n <div [kcClass]=\"'kcSelectAuthListItemArrowIconClass'\">\n <div\n [id]=\"'kc-webauthn-authenticator-label-' + i\"\n [kcClass]=\"'kcSelectAuthListItemHeadingClass'\"\n >\n {{ i18n.advancedMsgStr(authenticator.label) }}\n </div>\n @if (authenticator.transports.displayNameProperties?.length) {\n <div\n [id]=\"'kc-webauthn-authenticator-transport-' + i\"\n [kcClass]=\"'kcSelectAuthListItemDescriptionClass'\"\n >\n @for (\n displayNameProperty of authenticator.transports.displayNameProperties;\n track displayNameProperty;\n let last = $last\n ) {\n {{ i18n.advancedMsgStr(displayNameProperty) }}\n @if (!last) {\n <span>, </span>\n }\n }\n </div>\n <div [kcClass]=\"'kcSelectAuthListItemDescriptionClass'\">\n <span [id]=\"'kc-webauthn-authenticator-createdlabel-' + i\">\n {{ i18n.msgStr('webauthn-createdAt-label') }}\n </span>\n <span [id]=\"'kc-webauthn-authenticator-created-' + i\">{{ authenticator.createdAt }}</span>\n </div>\n <div [kcClass]=\"'kcSelectAuthListItemFillClass'\"></div>\n }\n </div>\n </div>\n </div>\n }\n </div>\n }\n </form>\n }\n\n <div\n id=\"kc-form-buttons\"\n [kcClass]=\"'kcFormButtonsClass'\"\n >\n <input\n type=\"button\"\n autofocus\n name=\"cancel-aia\"\n [id]=\"authButtonId\"\n [kcClass]=\"['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('webauthn-doAuthenticate')\"\n />\n </div>\n </div>\n </div>\n </ng-container>\n</kc-login-template>\n" }]
79
+ }], ctorParameters: () => [] });
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViYXV0aG4tYXV0aGVudGljYXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9sb2dpbi9wYWdlcy93ZWJhdXRobi1hdXRoZW50aWNhdGUvd2ViYXV0aG4tYXV0aGVudGljYXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9sb2dpbi9wYWdlcy93ZWJhdXRobi1hdXRoZW50aWNhdGUvd2ViYXV0aG4tYXV0aGVudGljYXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFOUYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQzVGLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDZEQUE2RCxDQUFDO0FBQzNHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ25GLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ2xGLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDZEQUE2RCxDQUFDO0FBQzNHLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDcEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDaEYsT0FBTyxFQUFpQixTQUFTLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7QUFpQnhFLE1BQU0sT0FBTyw2QkFBOEIsU0FBUSxrQkFBa0I7SUFjakU7UUFDSSxLQUFLLEVBQUUsQ0FBQztRQWRaLGNBQVMsR0FBRyxNQUFNLENBQThELGdCQUFnQixDQUFDLENBQUM7UUFDbEcsaUNBQTRCLEdBQUcsTUFBTSxDQUFDLDRCQUE0QixDQUFDLENBQUM7UUFDcEUsU0FBSSxHQUFHLE1BQU0sQ0FBTyxVQUFVLENBQUMsQ0FBQztRQUN2QixvQkFBZSxHQUFHLE1BQU0sQ0FBVSxlQUFlLENBQUMsQ0FBQztRQUNuRCxZQUFPLEdBQUcsTUFBTSxDQUFvQyxhQUFhLENBQUMsQ0FBQztRQUM1RSwwQkFBcUIsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckMsa0JBQWEsR0FBRyxLQUFLLEVBQVUsQ0FBQztRQUNoQyxrQkFBYSxHQUFHLEtBQUssRUFBVSxDQUFDO1FBQ2hDLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBQzdCLG1CQUFjLEdBQVksSUFBSSxDQUFDO1FBRS9CLGlCQUFZLEdBQUcsNEJBQTRCLENBQUM7UUFJeEMsTUFBTSxFQUFFLEdBQUcsRUFBRSxnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDbkcsTUFBTSxPQUFPLEdBQWE7WUFDdEI7Z0JBQ0ksSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsRUFBRSxFQUFFLDRCQUE0QjtnQkFDaEMsV0FBVyxFQUFFO3dEQUMyQixHQUFHLENBQUMsYUFBYTs0REFDYixJQUFJLENBQUMsWUFBWTs7OzJDQUdsQyxnQkFBZ0I7cUNBQ3RCLFNBQVM7NENBQ0YsZ0JBQWdCO2dDQUM1QixJQUFJO3dDQUNJLGFBQWE7aUNBQ3BCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsbUNBQW1DLENBQUMsQ0FBQzs7OztXQUkzRjthQUNFO1NBQ0osQ0FBQztRQUNGLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyx1QkFBdUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRUQsMkJBQTJCLENBQUMsU0FBaUI7UUFDekMsTUFBTSxNQUFNLEdBQUcsU0FBUyxDQUFDO1lBQ3JCLGVBQWUsRUFBRSxJQUFJLENBQUMsZUFBZSxJQUFJLElBQUk7WUFDN0MsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1NBQ3hCLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDViw4REFBOEQ7UUFDOUQsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLFNBQWdCLENBQUMsQ0FBQztRQUMzQyxJQUFJLFNBQVMsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUMxQixPQUFPLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1FBQzNDLENBQUM7UUFDRCxPQUFPLFNBQVMsQ0FBQztJQUNyQixDQUFDOzhHQXBEUSw2QkFBNkI7a0dBQTdCLDZCQUE2QiwwZ0JBUDNCO1lBQ1A7Z0JBQ0ksT0FBTyxFQUFFLGtCQUFrQjtnQkFDM0IsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyw2QkFBNkIsQ0FBQzthQUMvRDtTQUNKLGlEQzFCTCxpa1BBK0pBLDRDRDlJYyxpQkFBaUIsb0tBQUUsZ0JBQWdCOzsyRkFXcEMsNkJBQTZCO2tCQWJ6QyxTQUFTO2lDQUNNLElBQUksV0FDUCxDQUFDLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLDRCQUE0QixDQUFDLFlBQ2xFLFNBQVMsbUJBRUYsdUJBQXVCLENBQUMsTUFBTSxhQUNwQzt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsa0JBQWtCOzRCQUMzQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSw4QkFBOEIsQ0FBQzt5QkFDL0Q7cUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBmb3J3YXJkUmVmLCBpbmplY3QsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0eXBlIFNjcmlwdCB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xpYi9tb2RlbHMvc2NyaXB0JztcbmltcG9ydCB7IFVTRV9ERUZBVUxUX0NTUyB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xpYi90b2tlbnMvdXNlLWRlZmF1bHQtY3NzJztcbmltcG9ydCB7IENvbXBvbmVudFJlZmVyZW5jZSB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL2NsYXNzZXMvY29tcG9uZW50LXJlZmVyZW5jZSc7XG5pbXBvcnQgeyBMb2dvdXRPdGhlclNlc3Npb25zQ29tcG9uZW50IH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vY29tcG9uZW50cy9sb2dvdXQtb3RoZXItc2Vzc2lvbnMnO1xuaW1wb3J0IHsgVGVtcGxhdGVDb21wb25lbnQgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9jb250YWluZXJzL3RlbXBsYXRlJztcbmltcG9ydCB7IEtjQ2xhc3NEaXJlY3RpdmUgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9kaXJlY3RpdmVzL2tjLWNsYXNzJztcbmltcG9ydCB7IExvZ2luUmVzb3VyY2VJbmplY3RvclNlcnZpY2UgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9zZXJ2aWNlcy9sb2dpbi1yZXNvdXJjZS1pbmplY3Rvcic7XG5pbXBvcnQgeyBMT0dJTl9DTEFTU0VTIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vdG9rZW5zL2NsYXNzZXMnO1xuaW1wb3J0IHsgTE9HSU5fSTE4TiB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL3Rva2Vucy9pMThuJztcbmltcG9ydCB7IEtDX0xPR0lOX0NPTlRFWFQgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi90b2tlbnMva2MtY29udGV4dCc7XG5pbXBvcnQgeyB0eXBlIENsYXNzS2V5LCBnZXRLY0Nsc3ggfSBmcm9tICdrZXljbG9ha2lmeS9sb2dpbi9saWIva2NDbHN4JztcbmltcG9ydCB0eXBlIHsgSTE4biB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL2kxOG4nO1xuaW1wb3J0IHR5cGUgeyBLY0NvbnRleHQgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9LY0NvbnRleHQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtUZW1wbGF0ZUNvbXBvbmVudCwgS2NDbGFzc0RpcmVjdGl2ZSwgTG9nb3V0T3RoZXJTZXNzaW9uc0NvbXBvbmVudF0sXG4gICAgc2VsZWN0b3I6ICdrYy1yb290JyxcbiAgICB0ZW1wbGF0ZVVybDogJ3dlYmF1dGhuLWF1dGhlbnRpY2F0ZS5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IENvbXBvbmVudFJlZmVyZW5jZSxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFdlYmF1dGhuQXV0aGVudGljYXRlQ29tcG9uZW50KVxuICAgICAgICB9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBXZWJhdXRobkF1dGhlbnRpY2F0ZUNvbXBvbmVudCBleHRlbmRzIENvbXBvbmVudFJlZmVyZW5jZSB7XG4gICAga2NDb250ZXh0ID0gaW5qZWN0PEV4dHJhY3Q8S2NDb250ZXh0LCB7IHBhZ2VJZDogJ3dlYmF1dGhuLWF1dGhlbnRpY2F0ZS5mdGwnIH0+PihLQ19MT0dJTl9DT05URVhUKTtcbiAgICBsb2dpblJlc291cmNlSW5qZWN0b3JTZXJ2aWNlID0gaW5qZWN0KExvZ2luUmVzb3VyY2VJbmplY3RvclNlcnZpY2UpO1xuICAgIGkxOG4gPSBpbmplY3Q8STE4bj4oTE9HSU5fSTE4Tik7XG4gICAgb3ZlcnJpZGUgZG9Vc2VEZWZhdWx0Q3NzID0gaW5qZWN0PGJvb2xlYW4+KFVTRV9ERUZBVUxUX0NTUyk7XG4gICAgb3ZlcnJpZGUgY2xhc3NlcyA9IGluamVjdDxQYXJ0aWFsPFJlY29yZDxDbGFzc0tleSwgc3RyaW5nPj4+KExPR0lOX0NMQVNTRVMpO1xuICAgIGRpc3BsYXlSZXF1aXJlZEZpZWxkcyA9IGlucHV0KGZhbHNlKTtcbiAgICBkb2N1bWVudFRpdGxlID0gaW5wdXQ8c3RyaW5nPigpO1xuICAgIGJvZHlDbGFzc05hbWUgPSBpbnB1dDxzdHJpbmc+KCk7XG4gICAgZGlzcGxheUluZm86IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBkaXNwbGF5TWVzc2FnZTogYm9vbGVhbiA9IHRydWU7XG5cbiAgICBhdXRoQnV0dG9uSWQgPSAnYXV0aGVudGljYXRlV2ViQXV0aG5CdXR0b24nO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGNvbnN0IHsgdXJsLCBpc1VzZXJJZGVudGlmaWVkLCBjaGFsbGVuZ2UsIHVzZXJWZXJpZmljYXRpb24sIHJwSWQsIGNyZWF0ZVRpbWVvdXQgfSA9IHRoaXMua2NDb250ZXh0O1xuICAgICAgICBjb25zdCBzY3JpcHRzOiBTY3JpcHRbXSA9IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB0eXBlOiAnbW9kdWxlJyxcbiAgICAgICAgICAgICAgICBpZDogJ1dlYkF1dGhuQXV0aGVudGljYXRlU2NyaXB0JyxcbiAgICAgICAgICAgICAgICB0ZXh0Q29udGVudDogYFxuICAgICAgICAgICAgICBpbXBvcnQgeyBhdXRoZW50aWNhdGVCeVdlYkF1dGhuIH0gZnJvbSBcIiR7dXJsLnJlc291cmNlc1BhdGh9L2pzL3dlYmF1dGhuQXV0aGVudGljYXRlLmpzXCI7XG4gICAgICAgICAgICAgIGNvbnN0IGF1dGhCdXR0b24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnJHt0aGlzLmF1dGhCdXR0b25JZH0nKTtcbiAgICAgICAgICAgICAgYXV0aEJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICBjb25zdCBpbnB1dCA9IHtcbiAgICAgICAgICAgICAgICAgICAgICBpc1VzZXJJZGVudGlmaWVkIDogJHtpc1VzZXJJZGVudGlmaWVkfSxcbiAgICAgICAgICAgICAgICAgICAgICBjaGFsbGVuZ2UgOiAnJHtjaGFsbGVuZ2V9JyxcbiAgICAgICAgICAgICAgICAgICAgICB1c2VyVmVyaWZpY2F0aW9uIDogJyR7dXNlclZlcmlmaWNhdGlvbn0nLFxuICAgICAgICAgICAgICAgICAgICAgIHJwSWQgOiAnJHtycElkfScsXG4gICAgICAgICAgICAgICAgICAgICAgY3JlYXRlVGltZW91dCA6ICR7Y3JlYXRlVGltZW91dH0sXG4gICAgICAgICAgICAgICAgICAgICAgZXJybXNnIDogJHtKU09OLnN0cmluZ2lmeSh0aGlzLmkxOG4ubXNnU3RyKCd3ZWJhdXRobi11bnN1cHBvcnRlZC1icm93c2VyLXRleHQnKSl9XG4gICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRlQnlXZWJBdXRobihpbnB1dCk7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgIGBcbiAgICAgICAgICAgIH1cbiAgICAgICAgXTtcbiAgICAgICAgdGhpcy5sb2dpblJlc291cmNlSW5qZWN0b3JTZXJ2aWNlLmluc2VydEFkZGl0aW9uYWxTY3JpcHRzKHNjcmlwdHMpO1xuICAgIH1cblxuICAgIHNlbGVjdEF1dGhMaXN0SXRlbUljb25DbGFzcyhpY29uQ2xhc3M6IHN0cmluZykge1xuICAgICAgICBjb25zdCBrY0Nsc3ggPSBnZXRLY0Nsc3goe1xuICAgICAgICAgICAgZG9Vc2VEZWZhdWx0Q3NzOiB0aGlzLmRvVXNlRGVmYXVsdENzcyA/PyB0cnVlLFxuICAgICAgICAgICAgY2xhc3NlczogdGhpcy5jbGFzc2VzXG4gICAgICAgIH0pLmtjQ2xzeDtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAgICAgY29uc3QgY2xhc3NOYW1lID0ga2NDbHN4KGljb25DbGFzcyBhcyBhbnkpO1xuICAgICAgICBpZiAoY2xhc3NOYW1lID09PSBpY29uQ2xhc3MpIHtcbiAgICAgICAgICAgIHJldHVybiBrY0Nsc3goJ2tjV2ViQXV0aG5EZWZhdWx0SWNvbicpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjbGFzc05hbWU7XG4gICAgfVxufVxuIiwiQGxldCB1cmwgPSBrY0NvbnRleHQudXJsO1xuQGxldCBhdXRoZW50aWNhdG9ycyA9IGtjQ29udGV4dC5hdXRoZW50aWNhdG9ycztcbkBsZXQgc2hvdWxkRGlzcGxheUF1dGhlbnRpY2F0b3JzID0ga2NDb250ZXh0LnNob3VsZERpc3BsYXlBdXRoZW50aWNhdG9ycztcblxuPGtjLWxvZ2luLXRlbXBsYXRlXG4gICAgW2Rpc3BsYXlJbmZvXT1cImRpc3BsYXlJbmZvXCJcbiAgICBbYm9keUNsYXNzTmFtZV09XCJib2R5Q2xhc3NOYW1lKClcIlxuICAgIFtkaXNwbGF5TWVzc2FnZV09XCJkaXNwbGF5TWVzc2FnZVwiXG4gICAgW2Rpc3BsYXlSZXF1aXJlZEZpZWxkc109XCJkaXNwbGF5UmVxdWlyZWRGaWVsZHMoKVwiXG4gICAgW2RvY3VtZW50VGl0bGVdPVwiZG9jdW1lbnRUaXRsZSgpXCJcbj5cbiAgICA8bmctY29udGFpbmVyIGhlYWRlck5vZGU+XG4gICAgICAgIHt7IGkxOG4ubXNnU3RyKCd3ZWJhdXRobi1sb2dpbi10aXRsZScpIH19XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciBpbmZvTm9kZT5cbiAgICAgICAgPGRpdiBpZD1cImtjLXJlZ2lzdHJhdGlvblwiPlxuICAgICAgICAgICAgPHNwYW4+XG4gICAgICAgICAgICAgICAge3sgaTE4bi5tc2dTdHIoJ25vQWNjb3VudCcpIH19XG4gICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgdGFiSW5kZXg9XCI2XCJcbiAgICAgICAgICAgICAgICAgICAgW2hyZWZdPVwidXJsLnJlZ2lzdHJhdGlvblVybFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7eyBpMThuLm1zZ1N0cignZG9SZWdpc3RlcicpIH19XG4gICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyIGNvbnRlbnQ+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgIGlkPVwia2MtZm9ybS13ZWJhdXRoblwiXG4gICAgICAgICAgICBba2NDbGFzc109XCIna2NGb3JtQ2xhc3MnXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGZvcm1cbiAgICAgICAgICAgICAgICBpZD1cIndlYmF1dGhcIlxuICAgICAgICAgICAgICAgIG1ldGhvZD1cInBvc3RcIlxuICAgICAgICAgICAgICAgIFthY3Rpb25dPVwidXJsLmxvZ2luQWN0aW9uXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImhpZGRlblwiXG4gICAgICAgICAgICAgICAgICAgIGlkPVwiY2xpZW50RGF0YUpTT05cIlxuICAgICAgICAgICAgICAgICAgICBuYW1lPVwiY2xpZW50RGF0YUpTT05cIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJoaWRkZW5cIlxuICAgICAgICAgICAgICAgICAgICBpZD1cImF1dGhlbnRpY2F0b3JEYXRhXCJcbiAgICAgICAgICAgICAgICAgICAgbmFtZT1cImF1dGhlbnRpY2F0b3JEYXRhXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiaGlkZGVuXCJcbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJzaWduYXR1cmVcIlxuICAgICAgICAgICAgICAgICAgICBuYW1lPVwic2lnbmF0dXJlXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiaGlkZGVuXCJcbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJjcmVkZW50aWFsSWRcIlxuICAgICAgICAgICAgICAgICAgICBuYW1lPVwiY3JlZGVudGlhbElkXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiaGlkZGVuXCJcbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJ1c2VySGFuZGxlXCJcbiAgICAgICAgICAgICAgICAgICAgbmFtZT1cInVzZXJIYW5kbGVcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJoaWRkZW5cIlxuICAgICAgICAgICAgICAgICAgICBpZD1cImVycm9yXCJcbiAgICAgICAgICAgICAgICAgICAgbmFtZT1cImVycm9yXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9mb3JtPlxuXG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJuby1ib3R0b20tbWFyZ2luXCJcbiAgICAgICAgICAgICAgICBba2NDbGFzc109XCIna2NGb3JtR3JvdXBDbGFzcydcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIEBpZiAoYXV0aGVudGljYXRvcnMpIHtcbiAgICAgICAgICAgICAgICAgICAgPGZvcm1cbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiYXV0aG5fc2VsZWN0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY0Zvcm1DbGFzcydcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChhdXRoZW50aWNhdG9yIG9mIGF1dGhlbnRpY2F0b3JzLmF1dGhlbnRpY2F0b3JzOyB0cmFjayBhdXRoZW50aWNhdG9yLmNyZWRlbnRpYWxJZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiaGlkZGVuXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImF1dGhuX3VzZV9jaGtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiYXV0aGVudGljYXRvci5jcmVkZW50aWFsSWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKHNob3VsZERpc3BsYXlBdXRoZW50aWNhdG9ycykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoYXV0aGVudGljYXRvcnMuYXV0aGVudGljYXRvcnMubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBba2NDbGFzc109XCIna2NTZWxlY3RBdXRoTGlzdEl0ZW1UaXRsZSdcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGkxOG4ubXNnU3RyKCd3ZWJhdXRobi1hdmFpbGFibGUtYXV0aGVudGljYXRvcnMnKSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgW2tjQ2xhc3NdPVwiJ2tjRm9ybU9wdGlvbnNDbGFzcydcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAoYXV0aGVudGljYXRvciBvZiBhdXRoZW50aWNhdG9ycy5hdXRoZW50aWNhdG9yczsgdHJhY2sgYXV0aGVudGljYXRvci5jcmVkZW50aWFsSWQ7IGxldCBpID0gJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lkXT1cIidrYy13ZWJhdXRobi1hdXRoZW50aWNhdG9yLWl0ZW0tJyArIGlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY1NlbGVjdEF1dGhMaXN0SXRlbUNsYXNzJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBba2NDbGFzc109XCIna2NTZWxlY3RBdXRoTGlzdEl0ZW1JY29uQ2xhc3MnXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJzZWxlY3RBdXRoTGlzdEl0ZW1JY29uQ2xhc3MoYXV0aGVudGljYXRvci50cmFuc3BvcnRzLmljb25DbGFzcylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjU2VsZWN0QXV0aExpc3RJdGVtSWNvblByb3BlcnR5Q2xhc3MnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBba2NDbGFzc109XCIna2NTZWxlY3RBdXRoTGlzdEl0ZW1BcnJvd0ljb25DbGFzcydcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaWRdPVwiJ2tjLXdlYmF1dGhuLWF1dGhlbnRpY2F0b3ItbGFiZWwtJyArIGlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY1NlbGVjdEF1dGhMaXN0SXRlbUhlYWRpbmdDbGFzcydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGkxOG4uYWR2YW5jZWRNc2dTdHIoYXV0aGVudGljYXRvci5sYWJlbCkgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChhdXRoZW50aWNhdG9yLnRyYW5zcG9ydHMuZGlzcGxheU5hbWVQcm9wZXJ0aWVzPy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpZF09XCIna2Mtd2ViYXV0aG4tYXV0aGVudGljYXRvci10cmFuc3BvcnQtJyArIGlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBba2NDbGFzc109XCIna2NTZWxlY3RBdXRoTGlzdEl0ZW1EZXNjcmlwdGlvbkNsYXNzJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lUHJvcGVydHkgb2YgYXV0aGVudGljYXRvci50cmFuc3BvcnRzLmRpc3BsYXlOYW1lUHJvcGVydGllcztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYWNrIGRpc3BsYXlOYW1lUHJvcGVydHk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbGFzdCA9ICRsYXN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaTE4bi5hZHZhbmNlZE1zZ1N0cihkaXNwbGF5TmFtZVByb3BlcnR5KSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmICghbGFzdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPiwgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBba2NDbGFzc109XCIna2NTZWxlY3RBdXRoTGlzdEl0ZW1EZXNjcmlwdGlvbkNsYXNzJ1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBbaWRdPVwiJ2tjLXdlYmF1dGhuLWF1dGhlbnRpY2F0b3ItY3JlYXRlZGxhYmVsLScgKyBpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpMThuLm1zZ1N0cignd2ViYXV0aG4tY3JlYXRlZEF0LWxhYmVsJykgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBbaWRdPVwiJ2tjLXdlYmF1dGhuLWF1dGhlbnRpY2F0b3ItY3JlYXRlZC0nICsgaVwiPnt7IGF1dGhlbnRpY2F0b3IuY3JlYXRlZEF0IH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgW2tjQ2xhc3NdPVwiJ2tjU2VsZWN0QXV0aExpc3RJdGVtRmlsbENsYXNzJ1wiPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvZm9ybT5cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIGlkPVwia2MtZm9ybS1idXR0b25zXCJcbiAgICAgICAgICAgICAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjRm9ybUJ1dHRvbnNDbGFzcydcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGF1dG9mb2N1c1xuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImNhbmNlbC1haWFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2lkXT1cImF1dGhCdXR0b25JZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBba2NDbGFzc109XCJbJ2tjQnV0dG9uQ2xhc3MnLCAna2NCdXR0b25EZWZhdWx0Q2xhc3MnLCAna2NCdXR0b25CbG9ja0NsYXNzJywgJ2tjQnV0dG9uTGFyZ2VDbGFzcyddXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJpMThuLm1zZ1N0cignd2ViYXV0aG4tZG9BdXRoZW50aWNhdGUnKVwiXG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG48L2tjLWxvZ2luLXRlbXBsYXRlPlxuIl19
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5Y2xvYWtpZnktYW5ndWxhci1sb2dpbi1wYWdlcy13ZWJhdXRobi1lcnJvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9sb2dpbi9wYWdlcy93ZWJhdXRobi1lcnJvci9rZXljbG9ha2lmeS1hbmd1bGFyLWxvZ2luLXBhZ2VzLXdlYmF1dGhuLWVycm9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export * from './webauthn-error.component';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9sb2dpbi9wYWdlcy93ZWJhdXRobi1lcnJvci9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsNEJBQTRCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3dlYmF1dGhuLWVycm9yLmNvbXBvbmVudCc7XG4iXX0=
@@ -0,0 +1,49 @@
1
+ import { ChangeDetectionStrategy, Component, forwardRef, inject, input } from '@angular/core';
2
+ import { USE_DEFAULT_CSS } from '@keycloakify/angular/lib/tokens/use-default-css';
3
+ import { ComponentReference } from '@keycloakify/angular/login/classes/component-reference';
4
+ import { LogoutOtherSessionsComponent } from '@keycloakify/angular/login/components/logout-other-sessions';
5
+ import { TemplateComponent } from '@keycloakify/angular/login/containers/template';
6
+ import { KcClassDirective } from '@keycloakify/angular/login/directives/kc-class';
7
+ import { LOGIN_I18N } from '@keycloakify/angular/login/tokens/i18n';
8
+ import { LOGIN_CLASSES } from '@keycloakify/angular/login/tokens/classes';
9
+ import { KC_LOGIN_CONTEXT } from '@keycloakify/angular/login/tokens/kc-context';
10
+ import * as i0 from "@angular/core";
11
+ export class WebauthnErrorComponent extends ComponentReference {
12
+ constructor() {
13
+ super(...arguments);
14
+ this.kcContext = inject(KC_LOGIN_CONTEXT);
15
+ this.i18n = inject(LOGIN_I18N);
16
+ this.doUseDefaultCss = inject(USE_DEFAULT_CSS);
17
+ this.classes = inject(LOGIN_CLASSES);
18
+ this.displayRequiredFields = input(false);
19
+ this.documentTitle = input();
20
+ this.bodyClassName = input();
21
+ this.displayInfo = false;
22
+ this.displayMessage = true;
23
+ }
24
+ onClick() {
25
+ // @ts-expect-error: Trusted Keycloak's code
26
+ document.getElementById('isSetRetry').value = 'retry';
27
+ // @ts-expect-error: Trusted Keycloak's code
28
+ document.getElementById('executionValue').value = '${execution}';
29
+ // @ts-expect-error: Trusted Keycloak's code
30
+ document.getElementById('kc-error-credential-form').submit();
31
+ }
32
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: WebauthnErrorComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
33
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: WebauthnErrorComponent, 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: [
34
+ {
35
+ provide: ComponentReference,
36
+ useExisting: forwardRef(() => WebauthnErrorComponent)
37
+ }
38
+ ], usesInheritance: true, ngImport: i0, template: "@let url = kcContext.url;\n@let isAppInitiatedAction = kcContext.isAppInitiatedAction;\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 {{ i18n.msgStr('webauthn-error-title') }}\n </ng-container>\n <ng-container content>\n <form\n id=\"kc-error-credential-form\"\n method=\"post\"\n [kcClass]=\"'kcFormClass'\"\n [action]=\"url.loginAction\"\n >\n <input\n type=\"hidden\"\n id=\"executionValue\"\n name=\"authenticationExecution\"\n />\n <input\n type=\"hidden\"\n id=\"isSetRetry\"\n name=\"isSetRetry\"\n />\n </form>\n <input\n tabIndex=\"4\"\n type=\"button\"\n name=\"try-again\"\n id=\"kc-try-again\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doTryAgain')\"\n (click)=\"onClick()\"\n />\n @if (isAppInitiatedAction) {\n <form\n id=\"kc-webauthn-settings-form\"\n method=\"post\"\n [action]=\"url.loginAction\"\n [kcClass]=\"'kcFormClass'\"\n >\n <button\n type=\"submit\"\n id=\"cancelWebAuthnAIA\"\n name=\"cancel-aia\"\n value=\"true\"\n [kcClass]=\"['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n >\n {{ i18n.msgStr('doCancel') }}\n </button>\n </form>\n }\n </ng-container>\n</kc-login-template>\n", dependencies: [{ kind: "component", type: TemplateComponent, selector: "kc-login-template", inputs: ["displayInfo", "displayMessage", "displayRequiredFields", "documentTitle", "bodyClassName"] }, { kind: "directive", type: KcClassDirective, selector: "[kcClass]", inputs: ["class", "ngClass", "kcClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
39
+ }
40
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: WebauthnErrorComponent, decorators: [{
41
+ type: Component,
42
+ args: [{ standalone: true, imports: [TemplateComponent, KcClassDirective, LogoutOtherSessionsComponent], selector: 'kc-root', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
43
+ {
44
+ provide: ComponentReference,
45
+ useExisting: forwardRef(() => WebauthnErrorComponent)
46
+ }
47
+ ], template: "@let url = kcContext.url;\n@let isAppInitiatedAction = kcContext.isAppInitiatedAction;\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 {{ i18n.msgStr('webauthn-error-title') }}\n </ng-container>\n <ng-container content>\n <form\n id=\"kc-error-credential-form\"\n method=\"post\"\n [kcClass]=\"'kcFormClass'\"\n [action]=\"url.loginAction\"\n >\n <input\n type=\"hidden\"\n id=\"executionValue\"\n name=\"authenticationExecution\"\n />\n <input\n type=\"hidden\"\n id=\"isSetRetry\"\n name=\"isSetRetry\"\n />\n </form>\n <input\n tabIndex=\"4\"\n type=\"button\"\n name=\"try-again\"\n id=\"kc-try-again\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doTryAgain')\"\n (click)=\"onClick()\"\n />\n @if (isAppInitiatedAction) {\n <form\n id=\"kc-webauthn-settings-form\"\n method=\"post\"\n [action]=\"url.loginAction\"\n [kcClass]=\"'kcFormClass'\"\n >\n <button\n type=\"submit\"\n id=\"cancelWebAuthnAIA\"\n name=\"cancel-aia\"\n value=\"true\"\n [kcClass]=\"['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n >\n {{ i18n.msgStr('doCancel') }}\n </button>\n </form>\n }\n </ng-container>\n</kc-login-template>\n" }]
48
+ }] });
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViYXV0aG4tZXJyb3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xvZ2luL3BhZ2VzL3dlYmF1dGhuLWVycm9yL3dlYmF1dGhuLWVycm9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9sb2dpbi9wYWdlcy93ZWJhdXRobi1lcnJvci93ZWJhdXRobi1lcnJvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUNsRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUM1RixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSw2REFBNkQsQ0FBQztBQUMzRyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUNuRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUNsRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFFcEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDOztBQWlCaEYsTUFBTSxPQUFPLHNCQUF1QixTQUFRLGtCQUFrQjtJQWI5RDs7UUFjSSxjQUFTLEdBQUcsTUFBTSxDQUF1RCxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzNGLFNBQUksR0FBRyxNQUFNLENBQU8sVUFBVSxDQUFDLENBQUM7UUFDdkIsb0JBQWUsR0FBRyxNQUFNLENBQVUsZUFBZSxDQUFDLENBQUM7UUFDbkQsWUFBTyxHQUFHLE1BQU0sQ0FBb0MsYUFBYSxDQUFDLENBQUM7UUFDNUUsMEJBQXFCLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JDLGtCQUFhLEdBQUcsS0FBSyxFQUFVLENBQUM7UUFDaEMsa0JBQWEsR0FBRyxLQUFLLEVBQVUsQ0FBQztRQUNoQyxnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUM3QixtQkFBYyxHQUFZLElBQUksQ0FBQztLQVVsQztJQVJHLE9BQU87UUFDSCw0Q0FBNEM7UUFDNUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDO1FBQ3RELDRDQUE0QztRQUM1QyxRQUFRLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLENBQUMsS0FBSyxHQUFHLGNBQWMsQ0FBQztRQUNqRSw0Q0FBNEM7UUFDNUMsUUFBUSxDQUFDLGNBQWMsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2pFLENBQUM7OEdBbEJRLHNCQUFzQjtrR0FBdEIsc0JBQXNCLDBnQkFQcEI7WUFDUDtnQkFDSSxPQUFPLEVBQUUsa0JBQWtCO2dCQUMzQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHNCQUFzQixDQUFDO2FBQ3hEO1NBQ0osaURDeEJMLGkvREE0REEsNENEN0NjLGlCQUFpQixvS0FBRSxnQkFBZ0I7OzJGQVdwQyxzQkFBc0I7a0JBYmxDLFNBQVM7aUNBQ00sSUFBSSxXQUNQLENBQUMsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsNEJBQTRCLENBQUMsWUFDbEUsU0FBUyxtQkFFRix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxrQkFBa0I7NEJBQzNCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHVCQUF1QixDQUFDO3lCQUN4RDtxQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGZvcndhcmRSZWYsIGluamVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVTRV9ERUZBVUxUX0NTUyB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xpYi90b2tlbnMvdXNlLWRlZmF1bHQtY3NzJztcbmltcG9ydCB7IENvbXBvbmVudFJlZmVyZW5jZSB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL2NsYXNzZXMvY29tcG9uZW50LXJlZmVyZW5jZSc7XG5pbXBvcnQgeyBMb2dvdXRPdGhlclNlc3Npb25zQ29tcG9uZW50IH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vY29tcG9uZW50cy9sb2dvdXQtb3RoZXItc2Vzc2lvbnMnO1xuaW1wb3J0IHsgVGVtcGxhdGVDb21wb25lbnQgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9jb250YWluZXJzL3RlbXBsYXRlJztcbmltcG9ydCB7IEtjQ2xhc3NEaXJlY3RpdmUgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9kaXJlY3RpdmVzL2tjLWNsYXNzJztcbmltcG9ydCB7IExPR0lOX0kxOE4gfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi90b2tlbnMvaTE4bic7XG5pbXBvcnQgdHlwZSB7IEkxOG4gfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9pMThuJztcbmltcG9ydCB7IExPR0lOX0NMQVNTRVMgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi90b2tlbnMvY2xhc3Nlcyc7XG5pbXBvcnQgeyBLQ19MT0dJTl9DT05URVhUIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vdG9rZW5zL2tjLWNvbnRleHQnO1xuaW1wb3J0IHR5cGUgeyBDbGFzc0tleSB9IGZyb20gJ2tleWNsb2FraWZ5L2xvZ2luL2xpYi9rY0Nsc3gnO1xuaW1wb3J0IHR5cGUgeyBLY0NvbnRleHQgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9LY0NvbnRleHQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtUZW1wbGF0ZUNvbXBvbmVudCwgS2NDbGFzc0RpcmVjdGl2ZSwgTG9nb3V0T3RoZXJTZXNzaW9uc0NvbXBvbmVudF0sXG4gICAgc2VsZWN0b3I6ICdrYy1yb290JyxcbiAgICB0ZW1wbGF0ZVVybDogJ3dlYmF1dGhuLWVycm9yLmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogQ29tcG9uZW50UmVmZXJlbmNlLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gV2ViYXV0aG5FcnJvckNvbXBvbmVudClcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgV2ViYXV0aG5FcnJvckNvbXBvbmVudCBleHRlbmRzIENvbXBvbmVudFJlZmVyZW5jZSB7XG4gICAga2NDb250ZXh0ID0gaW5qZWN0PEV4dHJhY3Q8S2NDb250ZXh0LCB7IHBhZ2VJZDogJ3dlYmF1dGhuLWVycm9yLmZ0bCcgfT4+KEtDX0xPR0lOX0NPTlRFWFQpO1xuICAgIGkxOG4gPSBpbmplY3Q8STE4bj4oTE9HSU5fSTE4Tik7XG4gICAgb3ZlcnJpZGUgZG9Vc2VEZWZhdWx0Q3NzID0gaW5qZWN0PGJvb2xlYW4+KFVTRV9ERUZBVUxUX0NTUyk7XG4gICAgb3ZlcnJpZGUgY2xhc3NlcyA9IGluamVjdDxQYXJ0aWFsPFJlY29yZDxDbGFzc0tleSwgc3RyaW5nPj4+KExPR0lOX0NMQVNTRVMpO1xuICAgIGRpc3BsYXlSZXF1aXJlZEZpZWxkcyA9IGlucHV0KGZhbHNlKTtcbiAgICBkb2N1bWVudFRpdGxlID0gaW5wdXQ8c3RyaW5nPigpO1xuICAgIGJvZHlDbGFzc05hbWUgPSBpbnB1dDxzdHJpbmc+KCk7XG4gICAgZGlzcGxheUluZm86IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBkaXNwbGF5TWVzc2FnZTogYm9vbGVhbiA9IHRydWU7XG5cbiAgICBvbkNsaWNrKCkge1xuICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yOiBUcnVzdGVkIEtleWNsb2FrJ3MgY29kZVxuICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaXNTZXRSZXRyeScpLnZhbHVlID0gJ3JldHJ5JztcbiAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogVHJ1c3RlZCBLZXljbG9haydzIGNvZGVcbiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4ZWN1dGlvblZhbHVlJykudmFsdWUgPSAnJHtleGVjdXRpb259JztcbiAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogVHJ1c3RlZCBLZXljbG9haydzIGNvZGVcbiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2tjLWVycm9yLWNyZWRlbnRpYWwtZm9ybScpLnN1Ym1pdCgpO1xuICAgIH1cbn1cbiIsIkBsZXQgdXJsID0ga2NDb250ZXh0LnVybDtcbkBsZXQgaXNBcHBJbml0aWF0ZWRBY3Rpb24gPSBrY0NvbnRleHQuaXNBcHBJbml0aWF0ZWRBY3Rpb247XG5cbjxrYy1sb2dpbi10ZW1wbGF0ZVxuICAgIFtkaXNwbGF5SW5mb109XCJkaXNwbGF5SW5mb1wiXG4gICAgW2JvZHlDbGFzc05hbWVdPVwiYm9keUNsYXNzTmFtZSgpXCJcbiAgICBbZGlzcGxheU1lc3NhZ2VdPVwiZGlzcGxheU1lc3NhZ2VcIlxuICAgIFtkaXNwbGF5UmVxdWlyZWRGaWVsZHNdPVwiZGlzcGxheVJlcXVpcmVkRmllbGRzKClcIlxuICAgIFtkb2N1bWVudFRpdGxlXT1cImRvY3VtZW50VGl0bGUoKVwiXG4+XG4gICAgPG5nLWNvbnRhaW5lciBoZWFkZXJOb2RlPlxuICAgICAgICB7eyBpMThuLm1zZ1N0cignd2ViYXV0aG4tZXJyb3ItdGl0bGUnKSB9fVxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgY29udGVudD5cbiAgICAgICAgPGZvcm1cbiAgICAgICAgICAgIGlkPVwia2MtZXJyb3ItY3JlZGVudGlhbC1mb3JtXCJcbiAgICAgICAgICAgIG1ldGhvZD1cInBvc3RcIlxuICAgICAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjRm9ybUNsYXNzJ1wiXG4gICAgICAgICAgICBbYWN0aW9uXT1cInVybC5sb2dpbkFjdGlvblwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgIHR5cGU9XCJoaWRkZW5cIlxuICAgICAgICAgICAgICAgIGlkPVwiZXhlY3V0aW9uVmFsdWVcIlxuICAgICAgICAgICAgICAgIG5hbWU9XCJhdXRoZW50aWNhdGlvbkV4ZWN1dGlvblwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgdHlwZT1cImhpZGRlblwiXG4gICAgICAgICAgICAgICAgaWQ9XCJpc1NldFJldHJ5XCJcbiAgICAgICAgICAgICAgICBuYW1lPVwiaXNTZXRSZXRyeVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICA8L2Zvcm0+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgdGFiSW5kZXg9XCI0XCJcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgbmFtZT1cInRyeS1hZ2FpblwiXG4gICAgICAgICAgICBpZD1cImtjLXRyeS1hZ2FpblwiXG4gICAgICAgICAgICBba2NDbGFzc109XCJbJ2tjQnV0dG9uQ2xhc3MnLCAna2NCdXR0b25QcmltYXJ5Q2xhc3MnLCAna2NCdXR0b25CbG9ja0NsYXNzJywgJ2tjQnV0dG9uTGFyZ2VDbGFzcyddXCJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJpMThuLm1zZ1N0cignZG9UcnlBZ2FpbicpXCJcbiAgICAgICAgICAgIChjbGljayk9XCJvbkNsaWNrKClcIlxuICAgICAgICAvPlxuICAgICAgICBAaWYgKGlzQXBwSW5pdGlhdGVkQWN0aW9uKSB7XG4gICAgICAgICAgICA8Zm9ybVxuICAgICAgICAgICAgICAgIGlkPVwia2Mtd2ViYXV0aG4tc2V0dGluZ3MtZm9ybVwiXG4gICAgICAgICAgICAgICAgbWV0aG9kPVwicG9zdFwiXG4gICAgICAgICAgICAgICAgW2FjdGlvbl09XCJ1cmwubG9naW5BY3Rpb25cIlxuICAgICAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY0Zvcm1DbGFzcydcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgICAgICAgICAgICAgICAgIGlkPVwiY2FuY2VsV2ViQXV0aG5BSUFcIlxuICAgICAgICAgICAgICAgICAgICBuYW1lPVwiY2FuY2VsLWFpYVwiXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgIFtrY0NsYXNzXT1cIlsna2NCdXR0b25DbGFzcycsICdrY0J1dHRvbkRlZmF1bHRDbGFzcycsICdrY0J1dHRvbkJsb2NrQ2xhc3MnLCAna2NCdXR0b25MYXJnZUNsYXNzJ11cIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3sgaTE4bi5tc2dTdHIoJ2RvQ2FuY2VsJykgfX1cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZm9ybT5cbiAgICAgICAgfVxuICAgIDwvbmctY29udGFpbmVyPlxuPC9rYy1sb2dpbi10ZW1wbGF0ZT5cbiJdfQ==
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5Y2xvYWtpZnktYW5ndWxhci1sb2dpbi1wYWdlcy13ZWJhdXRobi1yZWdpc3Rlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9sb2dpbi9wYWdlcy93ZWJhdXRobi1yZWdpc3Rlci9rZXljbG9ha2lmeS1hbmd1bGFyLWxvZ2luLXBhZ2VzLXdlYmF1dGhuLXJlZ2lzdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export * from './webauthn-register.component';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9sb2dpbi9wYWdlcy93ZWJhdXRobi1yZWdpc3Rlci9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsK0JBQStCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3dlYmF1dGhuLXJlZ2lzdGVyLmNvbXBvbmVudCc7XG4iXX0=
@@ -0,0 +1,76 @@
1
+ import { ChangeDetectionStrategy, Component, forwardRef, inject, input } from '@angular/core';
2
+ import { USE_DEFAULT_CSS } from '@keycloakify/angular/lib/tokens/use-default-css';
3
+ import { ComponentReference } from '@keycloakify/angular/login/classes/component-reference';
4
+ import { LogoutOtherSessionsComponent } from '@keycloakify/angular/login/components/logout-other-sessions';
5
+ import { TemplateComponent } from '@keycloakify/angular/login/containers/template';
6
+ import { KcClassDirective } from '@keycloakify/angular/login/directives/kc-class';
7
+ import { LoginResourceInjectorService } from '@keycloakify/angular/login/services/login-resource-injector';
8
+ import { LOGIN_CLASSES } from '@keycloakify/angular/login/tokens/classes';
9
+ import { LOGIN_I18N } from '@keycloakify/angular/login/tokens/i18n';
10
+ import { KC_LOGIN_CONTEXT } from '@keycloakify/angular/login/tokens/kc-context';
11
+ import * as i0 from "@angular/core";
12
+ export class WebauthnRegisterComponent extends ComponentReference {
13
+ constructor() {
14
+ super();
15
+ this.kcContext = inject(KC_LOGIN_CONTEXT);
16
+ this.loginResourceInjectorService = inject(LoginResourceInjectorService);
17
+ this.i18n = inject(LOGIN_I18N);
18
+ this.doUseDefaultCss = inject(USE_DEFAULT_CSS);
19
+ this.classes = inject(LOGIN_CLASSES);
20
+ this.displayRequiredFields = input(false);
21
+ this.documentTitle = input();
22
+ this.bodyClassName = input();
23
+ this.displayInfo = false;
24
+ this.displayMessage = true;
25
+ this.authButtonId = 'authenticateWebAuthnButton';
26
+ const { url, challenge, userid, username, signatureAlgorithms, rpEntityName, rpId, attestationConveyancePreference, authenticatorAttachment, requireResidentKey, userVerificationRequirement, createTimeout, excludeCredentialIds } = this.kcContext;
27
+ const scripts = [
28
+ {
29
+ type: 'module',
30
+ id: 'WebAuthnRegisterScript',
31
+ textContent: `
32
+ import { registerByWebAuthn } from "${url.resourcesPath}/js/webauthnRegister.js";
33
+ const registerButton = document.getElementById('${this.authButtonId}');
34
+ registerButton.addEventListener("click", function() {
35
+ const input = {
36
+ challenge : '${challenge}',
37
+ userid : '${userid}',
38
+ username : '${username}',
39
+ signatureAlgorithms : ${JSON.stringify(signatureAlgorithms)},
40
+ rpEntityName : ${JSON.stringify(rpEntityName)},
41
+ rpId : ${JSON.stringify(rpId)},
42
+ attestationConveyancePreference : ${JSON.stringify(attestationConveyancePreference)},
43
+ authenticatorAttachment : ${JSON.stringify(authenticatorAttachment)},
44
+ requireResidentKey : ${JSON.stringify(requireResidentKey)},
45
+ userVerificationRequirement : ${JSON.stringify(userVerificationRequirement)},
46
+ createTimeout : ${createTimeout},
47
+ excludeCredentialIds : ${JSON.stringify(excludeCredentialIds)},
48
+ initLabel : ${JSON.stringify(this.i18n.msgStr('webauthn-registration-init-label'))},
49
+ initLabelPrompt : ${JSON.stringify(this.i18n.msgStr('webauthn-registration-init-label-prompt'))},
50
+ errmsg : ${JSON.stringify(this.i18n.msgStr('webauthn-unsupported-browser-text'))}
51
+ };
52
+ registerByWebAuthn(input);
53
+ });
54
+ `
55
+ }
56
+ ];
57
+ this.loginResourceInjectorService.insertAdditionalScripts(scripts);
58
+ }
59
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: WebauthnRegisterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
60
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: WebauthnRegisterComponent, 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: [
61
+ {
62
+ provide: ComponentReference,
63
+ useExisting: forwardRef(() => WebauthnRegisterComponent)
64
+ }
65
+ ], usesInheritance: true, ngImport: i0, template: "@let url = kcContext.url;\n@let isSetRetry = kcContext.isSetRetry;\n@let isAppInitiatedAction = kcContext.isAppInitiatedAction;\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 <span [kcClass]=\"'kcWebAuthnKeyIcon'\"></span>\n {{ i18n.msgStr('webauthn-registration-title') }}\n </ng-container>\n <ng-container content>\n <form\n id=\"register\"\n method=\"post\"\n [kcClass]=\"'kcFormClass'\"\n [action]=\"url.loginAction\"\n >\n <div [kcClass]=\"'kcFormGroupClass'\">\n <input\n type=\"hidden\"\n id=\"clientDataJSON\"\n name=\"clientDataJSON\"\n />\n <input\n type=\"hidden\"\n id=\"attestationObject\"\n name=\"attestationObject\"\n />\n <input\n type=\"hidden\"\n id=\"publicKeyCredentialId\"\n name=\"publicKeyCredentialId\"\n />\n <input\n type=\"hidden\"\n id=\"authenticatorLabel\"\n name=\"authenticatorLabel\"\n />\n <input\n type=\"hidden\"\n id=\"transports\"\n name=\"transports\"\n />\n <input\n type=\"hidden\"\n id=\"error\"\n name=\"error\"\n />\n <kc-logout-other-sessions />\n </div>\n </form>\n <input\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n [id]=\"authButtonId\"\n [value]=\"i18n.msgStr('doRegisterSecurityKey')\"\n />\n @if (!isSetRetry && isAppInitiatedAction) {\n <form\n id=\"kc-webauthn-settings-form\"\n method=\"post\"\n [action]=\"url.loginAction\"\n [kcClass]=\"'kcFormClass'\"\n >\n <button\n type=\"submit\"\n id=\"cancelWebAuthnAIA\"\n name=\"cancel-aia\"\n value=\"true\"\n [kcClass]=\"['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n >\n {{ i18n.msgStr('doCancel') }}\n </button>\n </form>\n }\n </ng-container>\n</kc-login-template>\n", dependencies: [{ kind: "component", type: TemplateComponent, selector: "kc-login-template", inputs: ["displayInfo", "displayMessage", "displayRequiredFields", "documentTitle", "bodyClassName"] }, { kind: "directive", type: KcClassDirective, selector: "[kcClass]", inputs: ["class", "ngClass", "kcClass"] }, { kind: "component", type: LogoutOtherSessionsComponent, selector: "kc-logout-other-sessions" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
66
+ }
67
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: WebauthnRegisterComponent, decorators: [{
68
+ type: Component,
69
+ args: [{ standalone: true, imports: [TemplateComponent, KcClassDirective, LogoutOtherSessionsComponent], selector: 'kc-root', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
70
+ {
71
+ provide: ComponentReference,
72
+ useExisting: forwardRef(() => WebauthnRegisterComponent)
73
+ }
74
+ ], template: "@let url = kcContext.url;\n@let isSetRetry = kcContext.isSetRetry;\n@let isAppInitiatedAction = kcContext.isAppInitiatedAction;\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 <span [kcClass]=\"'kcWebAuthnKeyIcon'\"></span>\n {{ i18n.msgStr('webauthn-registration-title') }}\n </ng-container>\n <ng-container content>\n <form\n id=\"register\"\n method=\"post\"\n [kcClass]=\"'kcFormClass'\"\n [action]=\"url.loginAction\"\n >\n <div [kcClass]=\"'kcFormGroupClass'\">\n <input\n type=\"hidden\"\n id=\"clientDataJSON\"\n name=\"clientDataJSON\"\n />\n <input\n type=\"hidden\"\n id=\"attestationObject\"\n name=\"attestationObject\"\n />\n <input\n type=\"hidden\"\n id=\"publicKeyCredentialId\"\n name=\"publicKeyCredentialId\"\n />\n <input\n type=\"hidden\"\n id=\"authenticatorLabel\"\n name=\"authenticatorLabel\"\n />\n <input\n type=\"hidden\"\n id=\"transports\"\n name=\"transports\"\n />\n <input\n type=\"hidden\"\n id=\"error\"\n name=\"error\"\n />\n <kc-logout-other-sessions />\n </div>\n </form>\n <input\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n [id]=\"authButtonId\"\n [value]=\"i18n.msgStr('doRegisterSecurityKey')\"\n />\n @if (!isSetRetry && isAppInitiatedAction) {\n <form\n id=\"kc-webauthn-settings-form\"\n method=\"post\"\n [action]=\"url.loginAction\"\n [kcClass]=\"'kcFormClass'\"\n >\n <button\n type=\"submit\"\n id=\"cancelWebAuthnAIA\"\n name=\"cancel-aia\"\n value=\"true\"\n [kcClass]=\"['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n >\n {{ i18n.msgStr('doCancel') }}\n </button>\n </form>\n }\n </ng-container>\n</kc-login-template>\n" }]
75
+ }], ctorParameters: () => [] });
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViYXV0aG4tcmVnaXN0ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xvZ2luL3BhZ2VzL3dlYmF1dGhuLXJlZ2lzdGVyL3dlYmF1dGhuLXJlZ2lzdGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9sb2dpbi9wYWdlcy93ZWJhdXRobi1yZWdpc3Rlci93ZWJhdXRobi1yZWdpc3Rlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTlGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUNsRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUM1RixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSw2REFBNkQsQ0FBQztBQUMzRyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUNuRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUNsRixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSw2REFBNkQsQ0FBQztBQUMzRyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDMUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDOztBQWtCaEYsTUFBTSxPQUFPLHlCQUEwQixTQUFRLGtCQUFrQjtJQWM3RDtRQUNJLEtBQUssRUFBRSxDQUFDO1FBZFosY0FBUyxHQUFHLE1BQU0sQ0FBMEQsZ0JBQWdCLENBQUMsQ0FBQztRQUM5RixpQ0FBNEIsR0FBRyxNQUFNLENBQUMsNEJBQTRCLENBQUMsQ0FBQztRQUNwRSxTQUFJLEdBQUcsTUFBTSxDQUFPLFVBQVUsQ0FBQyxDQUFDO1FBQ3ZCLG9CQUFlLEdBQUcsTUFBTSxDQUFVLGVBQWUsQ0FBQyxDQUFDO1FBQ25ELFlBQU8sR0FBRyxNQUFNLENBQW9DLGFBQWEsQ0FBQyxDQUFDO1FBQzVFLDBCQUFxQixHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQyxrQkFBYSxHQUFHLEtBQUssRUFBVSxDQUFDO1FBQ2hDLGtCQUFhLEdBQUcsS0FBSyxFQUFVLENBQUM7UUFDaEMsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFDN0IsbUJBQWMsR0FBWSxJQUFJLENBQUM7UUFFL0IsaUJBQVksR0FBRyw0QkFBNEIsQ0FBQztRQUl4QyxNQUFNLEVBQ0YsR0FBRyxFQUNILFNBQVMsRUFDVCxNQUFNLEVBQ04sUUFBUSxFQUNSLG1CQUFtQixFQUNuQixZQUFZLEVBQ1osSUFBSSxFQUNKLCtCQUErQixFQUMvQix1QkFBdUIsRUFDdkIsa0JBQWtCLEVBQ2xCLDJCQUEyQixFQUMzQixhQUFhLEVBQ2Isb0JBQW9CLEVBQ3ZCLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUNuQixNQUFNLE9BQU8sR0FBYTtZQUN0QjtnQkFDSSxJQUFJLEVBQUUsUUFBUTtnQkFDZCxFQUFFLEVBQUUsd0JBQXdCO2dCQUM1QixXQUFXLEVBQUU7b0RBQ3VCLEdBQUcsQ0FBQyxhQUFhO2dFQUNMLElBQUksQ0FBQyxZQUFZOzs7cUNBRzVDLFNBQVM7a0NBQ1osTUFBTTtvQ0FDSixRQUFROzhDQUNFLElBQUksQ0FBQyxTQUFTLENBQUMsbUJBQW1CLENBQUM7dUNBQzFDLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDOytCQUNwQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQzswREFDTyxJQUFJLENBQUMsU0FBUyxDQUFDLCtCQUErQixDQUFDO2tEQUN2RCxJQUFJLENBQUMsU0FBUyxDQUFDLHVCQUF1QixDQUFDOzZDQUM1QyxJQUFJLENBQUMsU0FBUyxDQUFDLGtCQUFrQixDQUFDO3NEQUN6QixJQUFJLENBQUMsU0FBUyxDQUFDLDJCQUEyQixDQUFDO3dDQUN6RCxhQUFhOytDQUNOLElBQUksQ0FBQyxTQUFTLENBQUMsb0JBQW9CLENBQUM7b0NBQy9DLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsa0NBQWtDLENBQUMsQ0FBQzswQ0FDOUQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyx5Q0FBeUMsQ0FBQyxDQUFDO2lDQUNwRixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLG1DQUFtQyxDQUFDLENBQUM7Ozs7V0FJM0Y7YUFDRTtTQUNKLENBQUM7UUFDRixJQUFJLENBQUMsNEJBQTRCLENBQUMsdUJBQXVCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdkUsQ0FBQzs4R0E5RFEseUJBQXlCO2tHQUF6Qix5QkFBeUIsMGdCQVB2QjtZQUNQO2dCQUNJLE9BQU8sRUFBRSxrQkFBa0I7Z0JBQzNCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMseUJBQXlCLENBQUM7YUFDM0Q7U0FDSixpREMxQkwsMDBGQWtGQSw0Q0RqRWMsaUJBQWlCLG9LQUFFLGdCQUFnQiwrRkFBRSw0QkFBNEI7OzJGQVdsRSx5QkFBeUI7a0JBYnJDLFNBQVM7aUNBQ00sSUFBSSxXQUNQLENBQUMsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsNEJBQTRCLENBQUMsWUFDbEUsU0FBUyxtQkFFRix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxrQkFBa0I7NEJBQzNCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLDBCQUEwQixDQUFDO3lCQUMzRDtxQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGZvcndhcmRSZWYsIGluamVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHR5cGUgU2NyaXB0IH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbGliL21vZGVscy9zY3JpcHQnO1xuaW1wb3J0IHsgVVNFX0RFRkFVTFRfQ1NTIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbGliL3Rva2Vucy91c2UtZGVmYXVsdC1jc3MnO1xuaW1wb3J0IHsgQ29tcG9uZW50UmVmZXJlbmNlIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vY2xhc3Nlcy9jb21wb25lbnQtcmVmZXJlbmNlJztcbmltcG9ydCB7IExvZ291dE90aGVyU2Vzc2lvbnNDb21wb25lbnQgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9jb21wb25lbnRzL2xvZ291dC1vdGhlci1zZXNzaW9ucyc7XG5pbXBvcnQgeyBUZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL2NvbnRhaW5lcnMvdGVtcGxhdGUnO1xuaW1wb3J0IHsgS2NDbGFzc0RpcmVjdGl2ZSB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL2RpcmVjdGl2ZXMva2MtY2xhc3MnO1xuaW1wb3J0IHsgTG9naW5SZXNvdXJjZUluamVjdG9yU2VydmljZSB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL3NlcnZpY2VzL2xvZ2luLXJlc291cmNlLWluamVjdG9yJztcbmltcG9ydCB7IExPR0lOX0NMQVNTRVMgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi90b2tlbnMvY2xhc3Nlcyc7XG5pbXBvcnQgeyBMT0dJTl9JMThOIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vdG9rZW5zL2kxOG4nO1xuaW1wb3J0IHsgS0NfTE9HSU5fQ09OVEVYVCB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL3Rva2Vucy9rYy1jb250ZXh0JztcbmltcG9ydCB0eXBlIHsgQ2xhc3NLZXkgfSBmcm9tICdrZXljbG9ha2lmeS9sb2dpbi9saWIva2NDbHN4JztcbmltcG9ydCB0eXBlIHsgSTE4biB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL2kxOG4nO1xuaW1wb3J0IHR5cGUgeyBLY0NvbnRleHQgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9LY0NvbnRleHQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtUZW1wbGF0ZUNvbXBvbmVudCwgS2NDbGFzc0RpcmVjdGl2ZSwgTG9nb3V0T3RoZXJTZXNzaW9uc0NvbXBvbmVudF0sXG4gICAgc2VsZWN0b3I6ICdrYy1yb290JyxcbiAgICB0ZW1wbGF0ZVVybDogJ3dlYmF1dGhuLXJlZ2lzdGVyLmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogQ29tcG9uZW50UmVmZXJlbmNlLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gV2ViYXV0aG5SZWdpc3RlckNvbXBvbmVudClcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgV2ViYXV0aG5SZWdpc3RlckNvbXBvbmVudCBleHRlbmRzIENvbXBvbmVudFJlZmVyZW5jZSB7XG4gICAga2NDb250ZXh0ID0gaW5qZWN0PEV4dHJhY3Q8S2NDb250ZXh0LCB7IHBhZ2VJZDogJ3dlYmF1dGhuLXJlZ2lzdGVyLmZ0bCcgfT4+KEtDX0xPR0lOX0NPTlRFWFQpO1xuICAgIGxvZ2luUmVzb3VyY2VJbmplY3RvclNlcnZpY2UgPSBpbmplY3QoTG9naW5SZXNvdXJjZUluamVjdG9yU2VydmljZSk7XG4gICAgaTE4biA9IGluamVjdDxJMThuPihMT0dJTl9JMThOKTtcbiAgICBvdmVycmlkZSBkb1VzZURlZmF1bHRDc3MgPSBpbmplY3Q8Ym9vbGVhbj4oVVNFX0RFRkFVTFRfQ1NTKTtcbiAgICBvdmVycmlkZSBjbGFzc2VzID0gaW5qZWN0PFBhcnRpYWw8UmVjb3JkPENsYXNzS2V5LCBzdHJpbmc+Pj4oTE9HSU5fQ0xBU1NFUyk7XG4gICAgZGlzcGxheVJlcXVpcmVkRmllbGRzID0gaW5wdXQoZmFsc2UpO1xuICAgIGRvY3VtZW50VGl0bGUgPSBpbnB1dDxzdHJpbmc+KCk7XG4gICAgYm9keUNsYXNzTmFtZSA9IGlucHV0PHN0cmluZz4oKTtcbiAgICBkaXNwbGF5SW5mbzogYm9vbGVhbiA9IGZhbHNlO1xuICAgIGRpc3BsYXlNZXNzYWdlOiBib29sZWFuID0gdHJ1ZTtcblxuICAgIGF1dGhCdXR0b25JZCA9ICdhdXRoZW50aWNhdGVXZWJBdXRobkJ1dHRvbic7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgY29uc3Qge1xuICAgICAgICAgICAgdXJsLFxuICAgICAgICAgICAgY2hhbGxlbmdlLFxuICAgICAgICAgICAgdXNlcmlkLFxuICAgICAgICAgICAgdXNlcm5hbWUsXG4gICAgICAgICAgICBzaWduYXR1cmVBbGdvcml0aG1zLFxuICAgICAgICAgICAgcnBFbnRpdHlOYW1lLFxuICAgICAgICAgICAgcnBJZCxcbiAgICAgICAgICAgIGF0dGVzdGF0aW9uQ29udmV5YW5jZVByZWZlcmVuY2UsXG4gICAgICAgICAgICBhdXRoZW50aWNhdG9yQXR0YWNobWVudCxcbiAgICAgICAgICAgIHJlcXVpcmVSZXNpZGVudEtleSxcbiAgICAgICAgICAgIHVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudCxcbiAgICAgICAgICAgIGNyZWF0ZVRpbWVvdXQsXG4gICAgICAgICAgICBleGNsdWRlQ3JlZGVudGlhbElkc1xuICAgICAgICB9ID0gdGhpcy5rY0NvbnRleHQ7XG4gICAgICAgIGNvbnN0IHNjcmlwdHM6IFNjcmlwdFtdID0gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHR5cGU6ICdtb2R1bGUnLFxuICAgICAgICAgICAgICAgIGlkOiAnV2ViQXV0aG5SZWdpc3RlclNjcmlwdCcsXG4gICAgICAgICAgICAgICAgdGV4dENvbnRlbnQ6IGBcbiAgICAgICAgICAgICAgaW1wb3J0IHsgcmVnaXN0ZXJCeVdlYkF1dGhuIH0gZnJvbSBcIiR7dXJsLnJlc291cmNlc1BhdGh9L2pzL3dlYmF1dGhuUmVnaXN0ZXIuanNcIjtcbiAgICAgICAgICAgICAgY29uc3QgcmVnaXN0ZXJCdXR0b24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnJHt0aGlzLmF1dGhCdXR0b25JZH0nKTtcbiAgICAgICAgICAgICAgcmVnaXN0ZXJCdXR0b24uYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgY29uc3QgaW5wdXQgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgY2hhbGxlbmdlIDogJyR7Y2hhbGxlbmdlfScsXG4gICAgICAgICAgICAgICAgICAgICAgdXNlcmlkIDogJyR7dXNlcmlkfScsXG4gICAgICAgICAgICAgICAgICAgICAgdXNlcm5hbWUgOiAnJHt1c2VybmFtZX0nLFxuICAgICAgICAgICAgICAgICAgICAgIHNpZ25hdHVyZUFsZ29yaXRobXMgOiAke0pTT04uc3RyaW5naWZ5KHNpZ25hdHVyZUFsZ29yaXRobXMpfSxcbiAgICAgICAgICAgICAgICAgICAgICBycEVudGl0eU5hbWUgOiAke0pTT04uc3RyaW5naWZ5KHJwRW50aXR5TmFtZSl9LFxuICAgICAgICAgICAgICAgICAgICAgIHJwSWQgOiAke0pTT04uc3RyaW5naWZ5KHJwSWQpfSxcbiAgICAgICAgICAgICAgICAgICAgICBhdHRlc3RhdGlvbkNvbnZleWFuY2VQcmVmZXJlbmNlIDogJHtKU09OLnN0cmluZ2lmeShhdHRlc3RhdGlvbkNvbnZleWFuY2VQcmVmZXJlbmNlKX0sXG4gICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRvckF0dGFjaG1lbnQgOiAke0pTT04uc3RyaW5naWZ5KGF1dGhlbnRpY2F0b3JBdHRhY2htZW50KX0sXG4gICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZVJlc2lkZW50S2V5IDogJHtKU09OLnN0cmluZ2lmeShyZXF1aXJlUmVzaWRlbnRLZXkpfSxcbiAgICAgICAgICAgICAgICAgICAgICB1c2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQgOiAke0pTT04uc3RyaW5naWZ5KHVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudCl9LFxuICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZVRpbWVvdXQgOiAke2NyZWF0ZVRpbWVvdXR9LFxuICAgICAgICAgICAgICAgICAgICAgIGV4Y2x1ZGVDcmVkZW50aWFsSWRzIDogJHtKU09OLnN0cmluZ2lmeShleGNsdWRlQ3JlZGVudGlhbElkcyl9LFxuICAgICAgICAgICAgICAgICAgICAgIGluaXRMYWJlbCA6ICR7SlNPTi5zdHJpbmdpZnkodGhpcy5pMThuLm1zZ1N0cignd2ViYXV0aG4tcmVnaXN0cmF0aW9uLWluaXQtbGFiZWwnKSl9LFxuICAgICAgICAgICAgICAgICAgICAgIGluaXRMYWJlbFByb21wdCA6ICR7SlNPTi5zdHJpbmdpZnkodGhpcy5pMThuLm1zZ1N0cignd2ViYXV0aG4tcmVnaXN0cmF0aW9uLWluaXQtbGFiZWwtcHJvbXB0JykpfSxcbiAgICAgICAgICAgICAgICAgICAgICBlcnJtc2cgOiAke0pTT04uc3RyaW5naWZ5KHRoaXMuaTE4bi5tc2dTdHIoJ3dlYmF1dGhuLXVuc3VwcG9ydGVkLWJyb3dzZXItdGV4dCcpKX1cbiAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICByZWdpc3RlckJ5V2ViQXV0aG4oaW5wdXQpO1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICBgXG4gICAgICAgICAgICB9XG4gICAgICAgIF07XG4gICAgICAgIHRoaXMubG9naW5SZXNvdXJjZUluamVjdG9yU2VydmljZS5pbnNlcnRBZGRpdGlvbmFsU2NyaXB0cyhzY3JpcHRzKTtcbiAgICB9XG59XG4iLCJAbGV0IHVybCA9IGtjQ29udGV4dC51cmw7XG5AbGV0IGlzU2V0UmV0cnkgPSBrY0NvbnRleHQuaXNTZXRSZXRyeTtcbkBsZXQgaXNBcHBJbml0aWF0ZWRBY3Rpb24gPSBrY0NvbnRleHQuaXNBcHBJbml0aWF0ZWRBY3Rpb247XG5cbjxrYy1sb2dpbi10ZW1wbGF0ZVxuICAgIFtkaXNwbGF5SW5mb109XCJkaXNwbGF5SW5mb1wiXG4gICAgW2JvZHlDbGFzc05hbWVdPVwiYm9keUNsYXNzTmFtZSgpXCJcbiAgICBbZGlzcGxheU1lc3NhZ2VdPVwiZGlzcGxheU1lc3NhZ2VcIlxuICAgIFtkaXNwbGF5UmVxdWlyZWRGaWVsZHNdPVwiZGlzcGxheVJlcXVpcmVkRmllbGRzKClcIlxuICAgIFtkb2N1bWVudFRpdGxlXT1cImRvY3VtZW50VGl0bGUoKVwiXG4+XG4gICAgPG5nLWNvbnRhaW5lciBoZWFkZXJOb2RlPlxuICAgICAgICA8c3BhbiBba2NDbGFzc109XCIna2NXZWJBdXRobktleUljb24nXCI+PC9zcGFuPlxuICAgICAgICB7eyBpMThuLm1zZ1N0cignd2ViYXV0aG4tcmVnaXN0cmF0aW9uLXRpdGxlJykgfX1cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyIGNvbnRlbnQ+XG4gICAgICAgIDxmb3JtXG4gICAgICAgICAgICBpZD1cInJlZ2lzdGVyXCJcbiAgICAgICAgICAgIG1ldGhvZD1cInBvc3RcIlxuICAgICAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjRm9ybUNsYXNzJ1wiXG4gICAgICAgICAgICBbYWN0aW9uXT1cInVybC5sb2dpbkFjdGlvblwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxkaXYgW2tjQ2xhc3NdPVwiJ2tjRm9ybUdyb3VwQ2xhc3MnXCI+XG4gICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJoaWRkZW5cIlxuICAgICAgICAgICAgICAgICAgICBpZD1cImNsaWVudERhdGFKU09OXCJcbiAgICAgICAgICAgICAgICAgICAgbmFtZT1cImNsaWVudERhdGFKU09OXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiaGlkZGVuXCJcbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJhdHRlc3RhdGlvbk9iamVjdFwiXG4gICAgICAgICAgICAgICAgICAgIG5hbWU9XCJhdHRlc3RhdGlvbk9iamVjdFwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImhpZGRlblwiXG4gICAgICAgICAgICAgICAgICAgIGlkPVwicHVibGljS2V5Q3JlZGVudGlhbElkXCJcbiAgICAgICAgICAgICAgICAgICAgbmFtZT1cInB1YmxpY0tleUNyZWRlbnRpYWxJZFwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImhpZGRlblwiXG4gICAgICAgICAgICAgICAgICAgIGlkPVwiYXV0aGVudGljYXRvckxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgbmFtZT1cImF1dGhlbnRpY2F0b3JMYWJlbFwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImhpZGRlblwiXG4gICAgICAgICAgICAgICAgICAgIGlkPVwidHJhbnNwb3J0c1wiXG4gICAgICAgICAgICAgICAgICAgIG5hbWU9XCJ0cmFuc3BvcnRzXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiaGlkZGVuXCJcbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJlcnJvclwiXG4gICAgICAgICAgICAgICAgICAgIG5hbWU9XCJlcnJvclwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8a2MtbG9nb3V0LW90aGVyLXNlc3Npb25zIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9mb3JtPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgICAgW2tjQ2xhc3NdPVwiWydrY0J1dHRvbkNsYXNzJywgJ2tjQnV0dG9uUHJpbWFyeUNsYXNzJywgJ2tjQnV0dG9uQmxvY2tDbGFzcycsICdrY0J1dHRvbkxhcmdlQ2xhc3MnXVwiXG4gICAgICAgICAgICBbaWRdPVwiYXV0aEJ1dHRvbklkXCJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJpMThuLm1zZ1N0cignZG9SZWdpc3RlclNlY3VyaXR5S2V5JylcIlxuICAgICAgICAvPlxuICAgICAgICBAaWYgKCFpc1NldFJldHJ5ICYmIGlzQXBwSW5pdGlhdGVkQWN0aW9uKSB7XG4gICAgICAgICAgICA8Zm9ybVxuICAgICAgICAgICAgICAgIGlkPVwia2Mtd2ViYXV0aG4tc2V0dGluZ3MtZm9ybVwiXG4gICAgICAgICAgICAgICAgbWV0aG9kPVwicG9zdFwiXG4gICAgICAgICAgICAgICAgW2FjdGlvbl09XCJ1cmwubG9naW5BY3Rpb25cIlxuICAgICAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY0Zvcm1DbGFzcydcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgICAgICAgICAgICAgICAgIGlkPVwiY2FuY2VsV2ViQXV0aG5BSUFcIlxuICAgICAgICAgICAgICAgICAgICBuYW1lPVwiY2FuY2VsLWFpYVwiXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgIFtrY0NsYXNzXT1cIlsna2NCdXR0b25DbGFzcycsICdrY0J1dHRvbkRlZmF1bHRDbGFzcycsICdrY0J1dHRvbkJsb2NrQ2xhc3MnLCAna2NCdXR0b25MYXJnZUNsYXNzJ11cIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3sgaTE4bi5tc2dTdHIoJ2RvQ2FuY2VsJykgfX1cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZm9ybT5cbiAgICAgICAgfVxuICAgIDwvbmctY29udGFpbmVyPlxuPC9rYy1sb2dpbi10ZW1wbGF0ZT5cbiJdfQ==
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5Y2xvYWtpZnktYW5ndWxhci1sb2dpbi1wcm92aWRlcnMta2V5Y2xvYWtpZnktYW5ndWxhci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9sb2dpbi9wcm92aWRlcnMva2V5Y2xvYWtpZnktYW5ndWxhci9rZXljbG9ha2lmeS1hbmd1bGFyLWxvZ2luLXByb3ZpZGVycy1rZXljbG9ha2lmeS1hbmd1bGFyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG4iXX0=
@@ -0,0 +1,54 @@
1
+ import { DOCUMENT } from '@angular/common';
2
+ import { APP_INITIALIZER, LOCALE_ID, makeEnvironmentProviders } from '@angular/core';
3
+ import { USE_DEFAULT_CSS } from '@keycloakify/angular/lib/tokens/use-default-css';
4
+ import { I18nService } from '@keycloakify/angular/login/services/i18n';
5
+ import { LOGIN_CLASSES } from '@keycloakify/angular/login/tokens/classes';
6
+ import { LOGIN_I18N } from '@keycloakify/angular/login/tokens/i18n';
7
+ import { KC_LOGIN_CONTEXT } from '@keycloakify/angular/login/tokens/kc-context';
8
+ import { DO_MAKE_USER_CONFIRM_PASSWORD } from '@keycloakify/angular/login/tokens/make-user-confirm-password';
9
+ export const provideKeycloakifyAngularLogin = (config) => makeEnvironmentProviders([
10
+ {
11
+ provide: KC_LOGIN_CONTEXT,
12
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
13
+ // @ts-ignore
14
+ useValue: window.kcContext
15
+ },
16
+ {
17
+ provide: DO_MAKE_USER_CONFIRM_PASSWORD,
18
+ useValue: config?.doMakeUserConfirmPassword ?? true
19
+ },
20
+ {
21
+ provide: LOCALE_ID,
22
+ useFactory: (document) => {
23
+ return document.documentElement.lang ?? 'en';
24
+ },
25
+ deps: [DOCUMENT]
26
+ },
27
+ {
28
+ provide: APP_INITIALIZER,
29
+ multi: true,
30
+ useFactory: (i18nService, kcContext) => async () => {
31
+ const getI18n = config.getI18n;
32
+ const { i18n, prI18n_currentLanguage } = getI18n({
33
+ kcContext
34
+ });
35
+ let i18nPromise = new Promise(resolve => resolve(i18n));
36
+ if (prI18n_currentLanguage) {
37
+ i18nPromise = prI18n_currentLanguage;
38
+ }
39
+ return i18nPromise.then(i18n => {
40
+ i18nService.i18n = i18n;
41
+ return true;
42
+ });
43
+ },
44
+ deps: [I18nService, KC_LOGIN_CONTEXT]
45
+ },
46
+ {
47
+ provide: LOGIN_I18N,
48
+ useFactory: (i18nService) => i18nService.i18n,
49
+ deps: [I18nService]
50
+ },
51
+ { provide: USE_DEFAULT_CSS, useValue: config?.doUseDefaultCss ?? true },
52
+ { provide: LOGIN_CLASSES, useValue: config?.classes ?? {} }
53
+ ]);
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5Y2xvYWtpZnktYW5ndWxhci5wcm92aWRlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbG9naW4vcHJvdmlkZXJzL2tleWNsb2FraWZ5LWFuZ3VsYXIva2V5Y2xvYWtpZnktYW5ndWxhci5wcm92aWRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUVsRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUNoRixPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQWM3RyxNQUFNLENBQUMsTUFBTSw4QkFBOEIsR0FBRyxDQUFDLE1BQXFDLEVBQUUsRUFBRSxDQUNwRix3QkFBd0IsQ0FBQztJQUNyQjtRQUNJLE9BQU8sRUFBRSxnQkFBZ0I7UUFDekIsNkRBQTZEO1FBQzdELGFBQWE7UUFDYixRQUFRLEVBQUUsTUFBTSxDQUFDLFNBQVM7S0FDN0I7SUFDRDtRQUNJLE9BQU8sRUFBRSw2QkFBNkI7UUFDdEMsUUFBUSxFQUFFLE1BQU0sRUFBRSx5QkFBeUIsSUFBSSxJQUFJO0tBQ3REO0lBQ0Q7UUFDSSxPQUFPLEVBQUUsU0FBUztRQUNsQixVQUFVLEVBQUUsQ0FBQyxRQUFrQixFQUFFLEVBQUU7WUFDL0IsT0FBTyxRQUFRLENBQUMsZUFBZSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUM7UUFDakQsQ0FBQztRQUNELElBQUksRUFBRSxDQUFDLFFBQVEsQ0FBQztLQUNuQjtJQUNEO1FBQ0ksT0FBTyxFQUFFLGVBQWU7UUFDeEIsS0FBSyxFQUFFLElBQUk7UUFDWCxVQUFVLEVBQUUsQ0FBQyxXQUF3QixFQUFFLFNBQW9CLEVBQUUsRUFBRSxDQUFDLEtBQUssSUFBSSxFQUFFO1lBQ3ZFLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUM7WUFFL0IsTUFBTSxFQUFFLElBQUksRUFBRSxzQkFBc0IsRUFBRSxHQUFHLE9BQU8sQ0FBQztnQkFDN0MsU0FBUzthQUNaLENBQUMsQ0FBQztZQUNILElBQUksV0FBVyxHQUFHLElBQUksT0FBTyxDQUFjLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDckUsSUFBSSxzQkFBc0IsRUFBRSxDQUFDO2dCQUN6QixXQUFXLEdBQUcsc0JBQXNCLENBQUM7WUFDekMsQ0FBQztZQUNELE9BQU8sV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDM0IsV0FBVyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7Z0JBQ3hCLE9BQU8sSUFBSSxDQUFDO1lBQ2hCLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQztRQUNELElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxnQkFBZ0IsQ0FBQztLQUN4QztJQUNEO1FBQ0ksT0FBTyxFQUFFLFVBQVU7UUFDbkIsVUFBVSxFQUFFLENBQUMsV0FBd0IsRUFBRSxFQUFFLENBQUMsV0FBVyxDQUFDLElBQUk7UUFDMUQsSUFBSSxFQUFFLENBQUMsV0FBVyxDQUFDO0tBQ3RCO0lBQ0QsRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsZUFBZSxJQUFJLElBQUksRUFBRTtJQUN2RSxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxPQUFPLElBQUksRUFBRSxFQUFFO0NBQzlELENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEFQUF9JTklUSUFMSVpFUiwgTE9DQUxFX0lELCBtYWtlRW52aXJvbm1lbnRQcm92aWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVTRV9ERUZBVUxUX0NTUyB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xpYi90b2tlbnMvdXNlLWRlZmF1bHQtY3NzJztcbmltcG9ydCB0eXBlIHsgS2NDb250ZXh0IH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vS2NDb250ZXh0JztcbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vc2VydmljZXMvaTE4bic7XG5pbXBvcnQgeyBMT0dJTl9DTEFTU0VTIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vdG9rZW5zL2NsYXNzZXMnO1xuaW1wb3J0IHsgTE9HSU5fSTE4TiB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL3Rva2Vucy9pMThuJztcbmltcG9ydCB7IEtDX0xPR0lOX0NPTlRFWFQgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi90b2tlbnMva2MtY29udGV4dCc7XG5pbXBvcnQgeyBET19NQUtFX1VTRVJfQ09ORklSTV9QQVNTV09SRCB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL3Rva2Vucy9tYWtlLXVzZXItY29uZmlybS1wYXNzd29yZCc7XG5pbXBvcnQgeyB0eXBlIEtjQ29udGV4dExpa2UgfSBmcm9tICdrZXljbG9ha2lmeS9sb2dpbi9pMThuL25vSnN4JztcbmltcG9ydCB0eXBlIHsgQ2xhc3NLZXkgfSBmcm9tICdrZXljbG9ha2lmeS9sb2dpbi9saWIva2NDbHN4JztcblxuZXhwb3J0IHR5cGUgS2V5Y2xvYWtpZnlBbmd1bGFyTG9naW5Db25maWcgPSB7XG4gICAgZG9NYWtlVXNlckNvbmZpcm1QYXNzd29yZD86IGJvb2xlYW47XG4gICAgZG9Vc2VEZWZhdWx0Q3NzPzogYm9vbGVhbjtcbiAgICBjbGFzc2VzPzogeyBba2V5IGluIENsYXNzS2V5XT86IHN0cmluZyB9O1xuICAgIGdldEkxOG46IChwYXJhbXM6IHsga2NDb250ZXh0OiBLY0NvbnRleHRMaWtlIH0pID0+IHtcbiAgICAgICAgaTE4bjogdW5rbm93bjtcbiAgICAgICAgcHJJMThuX2N1cnJlbnRMYW5ndWFnZTogUHJvbWlzZTx1bmtub3duPiB8IHVuZGVmaW5lZDtcbiAgICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IHByb3ZpZGVLZXljbG9ha2lmeUFuZ3VsYXJMb2dpbiA9IChjb25maWc6IEtleWNsb2FraWZ5QW5ndWxhckxvZ2luQ29uZmlnKSA9PlxuICAgIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyhbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEtDX0xPR0lOX0NPTlRFWFQsXG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10cy1jb21tZW50XG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICB1c2VWYWx1ZTogd2luZG93LmtjQ29udGV4dFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBET19NQUtFX1VTRVJfQ09ORklSTV9QQVNTV09SRCxcbiAgICAgICAgICAgIHVzZVZhbHVlOiBjb25maWc/LmRvTWFrZVVzZXJDb25maXJtUGFzc3dvcmQgPz8gdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBMT0NBTEVfSUQsXG4gICAgICAgICAgICB1c2VGYWN0b3J5OiAoZG9jdW1lbnQ6IERvY3VtZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5sYW5nID8/ICdlbic7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZGVwczogW0RPQ1VNRU5UXVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBBUFBfSU5JVElBTElaRVIsXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgICAgICAgIHVzZUZhY3Rvcnk6IChpMThuU2VydmljZTogSTE4blNlcnZpY2UsIGtjQ29udGV4dDogS2NDb250ZXh0KSA9PiBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZ2V0STE4biA9IGNvbmZpZy5nZXRJMThuO1xuXG4gICAgICAgICAgICAgICAgY29uc3QgeyBpMThuLCBwckkxOG5fY3VycmVudExhbmd1YWdlIH0gPSBnZXRJMThuKHtcbiAgICAgICAgICAgICAgICAgICAga2NDb250ZXh0XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgbGV0IGkxOG5Qcm9taXNlID0gbmV3IFByb21pc2U8dHlwZW9mIGkxOG4+KHJlc29sdmUgPT4gcmVzb2x2ZShpMThuKSk7XG4gICAgICAgICAgICAgICAgaWYgKHBySTE4bl9jdXJyZW50TGFuZ3VhZ2UpIHtcbiAgICAgICAgICAgICAgICAgICAgaTE4blByb21pc2UgPSBwckkxOG5fY3VycmVudExhbmd1YWdlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gaTE4blByb21pc2UudGhlbihpMThuID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaTE4blNlcnZpY2UuaTE4biA9IGkxOG47XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGRlcHM6IFtJMThuU2VydmljZSwgS0NfTE9HSU5fQ09OVEVYVF1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTE9HSU5fSTE4TixcbiAgICAgICAgICAgIHVzZUZhY3Rvcnk6IChpMThuU2VydmljZTogSTE4blNlcnZpY2UpID0+IGkxOG5TZXJ2aWNlLmkxOG4sXG4gICAgICAgICAgICBkZXBzOiBbSTE4blNlcnZpY2VdXG4gICAgICAgIH0sXG4gICAgICAgIHsgcHJvdmlkZTogVVNFX0RFRkFVTFRfQ1NTLCB1c2VWYWx1ZTogY29uZmlnPy5kb1VzZURlZmF1bHRDc3MgPz8gdHJ1ZSB9LFxuICAgICAgICB7IHByb3ZpZGU6IExPR0lOX0NMQVNTRVMsIHVzZVZhbHVlOiBjb25maWc/LmNsYXNzZXMgPz8ge30gfVxuICAgIF0pO1xuIl19
@@ -0,0 +1,2 @@
1
+ export * from './keycloakify-angular.providers';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9sb2dpbi9wcm92aWRlcnMva2V5Y2xvYWtpZnktYW5ndWxhci9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsaUNBQWlDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2tleWNsb2FraWZ5LWFuZ3VsYXIucHJvdmlkZXJzJztcbiJdfQ==
@@ -0,0 +1,12 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ /** INTERNAL: DO NOT IMPORT THIS */
4
+ export class I18nService {
5
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: I18nService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
6
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: I18nService, providedIn: 'root' }); }
7
+ }
8
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: I18nService, decorators: [{
9
+ type: Injectable,
10
+ args: [{ providedIn: 'root' }]
11
+ }] });
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xvZ2luL3NlcnZpY2VzL2kxOG4vaTE4bi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRzNDLG1DQUFtQztBQUNuQyxNQUFNLE9BQU8sV0FBVzs4R0FBWCxXQUFXO2tIQUFYLFdBQVcsY0FGRSxNQUFNOzsyRkFFbkIsV0FBVztrQkFGdkIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG4vKiogSU5URVJOQUw6IERPIE5PVCBJTVBPUlQgVEhJUyAqL1xuZXhwb3J0IGNsYXNzIEkxOG5TZXJ2aWNlIHtcbiAgICBpMThuITogdW5rbm93bjtcbn1cbiJdfQ==
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5Y2xvYWtpZnktYW5ndWxhci1sb2dpbi1zZXJ2aWNlcy1pMThuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xvZ2luL3NlcnZpY2VzL2kxOG4va2V5Y2xvYWtpZnktYW5ndWxhci1sb2dpbi1zZXJ2aWNlcy1pMThuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export * from './i18n.service';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9sb2dpbi9zZXJ2aWNlcy9pMThuL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxnQkFBZ0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vaTE4bi5zZXJ2aWNlJztcbiJdfQ==
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5Y2xvYWtpZnktYW5ndWxhci1sb2dpbi1zZXJ2aWNlcy1sb2dpbi1yZXNvdXJjZS1pbmplY3Rvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9sb2dpbi9zZXJ2aWNlcy9sb2dpbi1yZXNvdXJjZS1pbmplY3Rvci9rZXljbG9ha2lmeS1hbmd1bGFyLWxvZ2luLXNlcnZpY2VzLWxvZ2luLXJlc291cmNlLWluamVjdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG4iXX0=
@@ -0,0 +1,68 @@
1
+ import { inject, Injectable } from '@angular/core';
2
+ import { KC_LOGIN_CONTEXT } from '@keycloakify/angular/login/tokens/kc-context';
3
+ import { ResourceInjectorService } from '@keycloakify/angular/lib/services/resource-injector';
4
+ import { catchError, forkJoin, of, switchMap } from 'rxjs';
5
+ import * as i0 from "@angular/core";
6
+ export class LoginResourceInjectorService {
7
+ constructor() {
8
+ this.kcContext = inject(KC_LOGIN_CONTEXT);
9
+ this.resourceInjectorService = inject(ResourceInjectorService);
10
+ }
11
+ injectResource(doUseDefaultCss = true) {
12
+ if (!doUseDefaultCss) {
13
+ this.injectScripts();
14
+ return of(true);
15
+ }
16
+ const stylesheets = [
17
+ `${this.kcContext.url.resourcesCommonPath}/node_modules/@patternfly/patternfly/patternfly.min.css`,
18
+ `${this.kcContext.url.resourcesCommonPath}/node_modules/patternfly/dist/css/patternfly.min.css`,
19
+ `${this.kcContext.url.resourcesCommonPath}/node_modules/patternfly/dist/css/patternfly-additions.min.css`,
20
+ `${this.kcContext.url.resourcesCommonPath}/lib/pficon/pficon.css`,
21
+ `${this.kcContext.url.resourcesPath}/css/login.css`
22
+ ];
23
+ return forkJoin(stylesheets.map(url => this.resourceInjectorService.createLink(url))).pipe(switchMap(() => {
24
+ this.injectScripts();
25
+ return of(true);
26
+ }), catchError(error => {
27
+ console.error('Error loading styles:', error);
28
+ return of(false);
29
+ }));
30
+ }
31
+ insertAdditionalScripts(scripts) {
32
+ scripts.map(script => this.resourceInjectorService.createScript(script));
33
+ }
34
+ injectScripts() {
35
+ const scripts = [
36
+ {
37
+ type: 'module',
38
+ id: `${this.kcContext.url.resourcesPath}/js/menu-button-links.js`,
39
+ src: `${this.kcContext.url.resourcesPath}/js/menu-button-links.js`
40
+ },
41
+ ...this.kcContext.scripts.map(script => ({
42
+ type: 'text/javascript',
43
+ src: script,
44
+ id: script
45
+ })),
46
+ {
47
+ type: 'module',
48
+ id: 'authenticationSession',
49
+ textContent: `
50
+ import { checkCookiesAndSetTimer } from "${this.kcContext.url.resourcesPath}/js/authChecker.js";
51
+
52
+ checkCookiesAndSetTimer(
53
+ "${this.kcContext.url.ssoLoginInOtherTabsUrl}"
54
+ );`
55
+ }
56
+ ];
57
+ this.insertAdditionalScripts(scripts);
58
+ }
59
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: LoginResourceInjectorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
60
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: LoginResourceInjectorService, providedIn: 'root' }); }
61
+ }
62
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: LoginResourceInjectorService, decorators: [{
63
+ type: Injectable,
64
+ args: [{
65
+ providedIn: 'root'
66
+ }]
67
+ }] });
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4tcmVzb3VyY2UtaW5qZWN0b3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9sb2dpbi9zZXJ2aWNlcy9sb2dpbi1yZXNvdXJjZS1pbmplY3Rvci9sb2dpbi1yZXNvdXJjZS1pbmplY3Rvci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBRTlGLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBTTNELE1BQU0sT0FBTyw0QkFBNEI7SUFIekM7UUFJWSxjQUFTLEdBQWMsTUFBTSxDQUFZLGdCQUFnQixDQUFDLENBQUM7UUFDM0QsNEJBQXVCLEdBQTRCLE1BQU0sQ0FDN0QsdUJBQXVCLENBQzFCLENBQUM7S0EwREw7SUF4REcsY0FBYyxDQUFDLGVBQWUsR0FBRyxJQUFJO1FBQ2pDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDckIsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEIsQ0FBQztRQUNELE1BQU0sV0FBVyxHQUFHO1lBQ2hCLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsbUJBQW1CLHlEQUF5RDtZQUNsRyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLG1CQUFtQixzREFBc0Q7WUFDL0YsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsZ0VBQWdFO1lBQ3pHLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsbUJBQW1CLHdCQUF3QjtZQUNqRSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLGFBQWEsZ0JBQWdCO1NBQ3RELENBQUM7UUFFRixPQUFPLFFBQVEsQ0FDWCxXQUFXLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUN2RSxDQUFDLElBQUksQ0FDRixTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ1gsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3JCLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BCLENBQUMsQ0FBQyxFQUNGLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNmLE9BQU8sQ0FBQyxLQUFLLENBQUMsdUJBQXVCLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDOUMsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckIsQ0FBQyxDQUFDLENBQ0wsQ0FBQztJQUNOLENBQUM7SUFFRCx1QkFBdUIsQ0FBQyxPQUFpQjtRQUNyQyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFFTyxhQUFhO1FBQ2pCLE1BQU0sT0FBTyxHQUFhO1lBQ3RCO2dCQUNJLElBQUksRUFBRSxRQUFRO2dCQUNkLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLGFBQWEsMEJBQTBCO2dCQUNqRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxhQUFhLDBCQUEwQjthQUNyRTtZQUNELEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDckMsSUFBSSxFQUFFLGlCQUFpQjtnQkFDdkIsR0FBRyxFQUFFLE1BQU07Z0JBQ1gsRUFBRSxFQUFFLE1BQU07YUFDYixDQUFDLENBQUM7WUFDSDtnQkFDSSxJQUFJLEVBQUUsUUFBUTtnQkFDZCxFQUFFLEVBQUUsdUJBQXVCO2dCQUMzQixXQUFXLEVBQUU7bURBQ3NCLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLGFBQWE7OztlQUdwRSxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxzQkFBc0I7V0FDN0M7YUFDRTtTQUNKLENBQUM7UUFDRixJQUFJLENBQUMsdUJBQXVCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDMUMsQ0FBQzs4R0E3RFEsNEJBQTRCO2tIQUE1Qiw0QkFBNEIsY0FGekIsTUFBTTs7MkZBRVQsNEJBQTRCO2tCQUh4QyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgS0NfTE9HSU5fQ09OVEVYVCB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL3Rva2Vucy9rYy1jb250ZXh0JztcbmltcG9ydCB7IFJlc291cmNlSW5qZWN0b3JTZXJ2aWNlIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbGliL3NlcnZpY2VzL3Jlc291cmNlLWluamVjdG9yJztcbmltcG9ydCB0eXBlIHsgS2NDb250ZXh0IH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vS2NDb250ZXh0JztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGZvcmtKb2luLCBvZiwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0eXBlIFNjcmlwdCB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xpYi9tb2RlbHMvc2NyaXB0JztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBMb2dpblJlc291cmNlSW5qZWN0b3JTZXJ2aWNlIHtcbiAgICBwcml2YXRlIGtjQ29udGV4dDogS2NDb250ZXh0ID0gaW5qZWN0PEtjQ29udGV4dD4oS0NfTE9HSU5fQ09OVEVYVCk7XG4gICAgcHJpdmF0ZSByZXNvdXJjZUluamVjdG9yU2VydmljZTogUmVzb3VyY2VJbmplY3RvclNlcnZpY2UgPSBpbmplY3QoXG4gICAgICAgIFJlc291cmNlSW5qZWN0b3JTZXJ2aWNlXG4gICAgKTtcblxuICAgIGluamVjdFJlc291cmNlKGRvVXNlRGVmYXVsdENzcyA9IHRydWUpIHtcbiAgICAgICAgaWYgKCFkb1VzZURlZmF1bHRDc3MpIHtcbiAgICAgICAgICAgIHRoaXMuaW5qZWN0U2NyaXB0cygpO1xuICAgICAgICAgICAgcmV0dXJuIG9mKHRydWUpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHN0eWxlc2hlZXRzID0gW1xuICAgICAgICAgICAgYCR7dGhpcy5rY0NvbnRleHQudXJsLnJlc291cmNlc0NvbW1vblBhdGh9L25vZGVfbW9kdWxlcy9AcGF0dGVybmZseS9wYXR0ZXJuZmx5L3BhdHRlcm5mbHkubWluLmNzc2AsXG4gICAgICAgICAgICBgJHt0aGlzLmtjQ29udGV4dC51cmwucmVzb3VyY2VzQ29tbW9uUGF0aH0vbm9kZV9tb2R1bGVzL3BhdHRlcm5mbHkvZGlzdC9jc3MvcGF0dGVybmZseS5taW4uY3NzYCxcbiAgICAgICAgICAgIGAke3RoaXMua2NDb250ZXh0LnVybC5yZXNvdXJjZXNDb21tb25QYXRofS9ub2RlX21vZHVsZXMvcGF0dGVybmZseS9kaXN0L2Nzcy9wYXR0ZXJuZmx5LWFkZGl0aW9ucy5taW4uY3NzYCxcbiAgICAgICAgICAgIGAke3RoaXMua2NDb250ZXh0LnVybC5yZXNvdXJjZXNDb21tb25QYXRofS9saWIvcGZpY29uL3BmaWNvbi5jc3NgLFxuICAgICAgICAgICAgYCR7dGhpcy5rY0NvbnRleHQudXJsLnJlc291cmNlc1BhdGh9L2Nzcy9sb2dpbi5jc3NgXG4gICAgICAgIF07XG5cbiAgICAgICAgcmV0dXJuIGZvcmtKb2luKFxuICAgICAgICAgICAgc3R5bGVzaGVldHMubWFwKHVybCA9PiB0aGlzLnJlc291cmNlSW5qZWN0b3JTZXJ2aWNlLmNyZWF0ZUxpbmsodXJsKSlcbiAgICAgICAgKS5waXBlKFxuICAgICAgICAgICAgc3dpdGNoTWFwKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmluamVjdFNjcmlwdHMoKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gb2YodHJ1ZSk7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGxvYWRpbmcgc3R5bGVzOicsIGVycm9yKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gb2YoZmFsc2UpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBpbnNlcnRBZGRpdGlvbmFsU2NyaXB0cyhzY3JpcHRzOiBTY3JpcHRbXSkge1xuICAgICAgICBzY3JpcHRzLm1hcChzY3JpcHQgPT4gdGhpcy5yZXNvdXJjZUluamVjdG9yU2VydmljZS5jcmVhdGVTY3JpcHQoc2NyaXB0KSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbmplY3RTY3JpcHRzKCkge1xuICAgICAgICBjb25zdCBzY3JpcHRzOiBTY3JpcHRbXSA9IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB0eXBlOiAnbW9kdWxlJyxcbiAgICAgICAgICAgICAgICBpZDogYCR7dGhpcy5rY0NvbnRleHQudXJsLnJlc291cmNlc1BhdGh9L2pzL21lbnUtYnV0dG9uLWxpbmtzLmpzYCxcbiAgICAgICAgICAgICAgICBzcmM6IGAke3RoaXMua2NDb250ZXh0LnVybC5yZXNvdXJjZXNQYXRofS9qcy9tZW51LWJ1dHRvbi1saW5rcy5qc2BcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAuLi50aGlzLmtjQ29udGV4dC5zY3JpcHRzLm1hcChzY3JpcHQgPT4gKHtcbiAgICAgICAgICAgICAgICB0eXBlOiAndGV4dC9qYXZhc2NyaXB0JyxcbiAgICAgICAgICAgICAgICBzcmM6IHNjcmlwdCxcbiAgICAgICAgICAgICAgICBpZDogc2NyaXB0XG4gICAgICAgICAgICB9KSksXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdHlwZTogJ21vZHVsZScsXG4gICAgICAgICAgICAgICAgaWQ6ICdhdXRoZW50aWNhdGlvblNlc3Npb24nLFxuICAgICAgICAgICAgICAgIHRleHRDb250ZW50OiBgXG4gICAgICAgIGltcG9ydCB7IGNoZWNrQ29va2llc0FuZFNldFRpbWVyIH0gZnJvbSBcIiR7dGhpcy5rY0NvbnRleHQudXJsLnJlc291cmNlc1BhdGh9L2pzL2F1dGhDaGVja2VyLmpzXCI7XG4gICAgICAgICAgXG4gICAgICAgIGNoZWNrQ29va2llc0FuZFNldFRpbWVyKFxuICAgICAgICAgICAgXCIke3RoaXMua2NDb250ZXh0LnVybC5zc29Mb2dpbkluT3RoZXJUYWJzVXJsfVwiXG4gICAgICAgICk7YFxuICAgICAgICAgICAgfVxuICAgICAgICBdO1xuICAgICAgICB0aGlzLmluc2VydEFkZGl0aW9uYWxTY3JpcHRzKHNjcmlwdHMpO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export * from './login-resource-injector.service';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9sb2dpbi9zZXJ2aWNlcy9sb2dpbi1yZXNvdXJjZS1pbmplY3Rvci9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsbUNBQW1DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xvZ2luLXJlc291cmNlLWluamVjdG9yLnNlcnZpY2UnO1xuIl19
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5Y2xvYWtpZnktYW5ndWxhci1sb2dpbi1zZXJ2aWNlcy1zdWJtaXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbG9naW4vc2VydmljZXMvc3VibWl0L2tleWNsb2FraWZ5LWFuZ3VsYXItbG9naW4tc2VydmljZXMtc3VibWl0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export * from './submit.service';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9sb2dpbi9zZXJ2aWNlcy9zdWJtaXQvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9zdWJtaXQuc2VydmljZSc7XG4iXX0=