@keycloakify/angular 0.0.1-rc.0 → 0.0.1-rc.3

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 (472) hide show
  1. package/lib/i18n.d.ts +2 -2
  2. package/lib/i18n.mjs +6 -0
  3. package/lib/models/index.d.ts +1 -1
  4. package/lib/models/index.mjs +2 -0
  5. package/lib/models/script.model.mjs +2 -0
  6. package/lib/providers/keycloakify-angular.providers.d.ts +5 -5
  7. package/lib/providers/keycloakify-angular.providers.mjs +54 -0
  8. package/lib/public-api.d.ts +5 -5
  9. package/lib/public-api.mjs +4 -0
  10. package/lib/services/i18n.service.d.ts +3 -0
  11. package/lib/services/i18n.service.mjs +11 -0
  12. package/lib/services/index.d.ts +2 -2
  13. package/lib/services/index.mjs +3 -0
  14. package/lib/services/resource-injector.service.d.ts +5 -2
  15. package/lib/services/resource-injector.service.mjs +54 -0
  16. package/login/DefaultPage.d.ts +4 -4
  17. package/login/DefaultPage.mjs +121 -0
  18. package/login/KcContext.d.ts +1 -1
  19. package/login/KcContext.mjs +2 -0
  20. package/login/classes/component-reference.class.d.ts +1 -1
  21. package/login/classes/component-reference.class.mjs +3 -0
  22. package/login/components/add-remove-buttons-multi-valued-attribute/add-remove-buttons-multi-valued-attribute.component.d.ts +5 -2
  23. package/login/components/add-remove-buttons-multi-valued-attribute/add-remove-buttons-multi-valued-attribute.component.mjs +105 -0
  24. package/login/components/field-errors/field-errors.component.d.ts +7 -4
  25. package/login/components/field-errors/field-errors.component.mjs +32 -0
  26. package/login/components/group-label/group-label.component.d.ts +6 -3
  27. package/login/components/group-label/group-label.component.mjs +41 -0
  28. package/login/components/hello-world/hello-world.component.d.ts +5 -0
  29. package/login/components/hello-world/hello-world.component.mjs +11 -0
  30. package/login/components/index.d.ts +11 -11
  31. package/login/components/index.mjs +12 -0
  32. package/login/components/input-field-by-type/input-field-by-type.component.d.ts +7 -4
  33. package/login/components/input-field-by-type/input-field-by-type.component.mjs +45 -0
  34. package/login/components/input-tag/input-tag.component.d.ts +7 -4
  35. package/login/components/input-tag/input-tag.component.mjs +89 -0
  36. package/login/components/input-tag-selects/input-tag-selects.component.d.ts +9 -6
  37. package/login/components/input-tag-selects/input-tag-selects.component.mjs +115 -0
  38. package/login/components/logout-other-sessions/logout-other-sessions.component.d.ts +5 -2
  39. package/login/components/logout-other-sessions/logout-other-sessions.component.mjs +30 -0
  40. package/login/components/password-wrapper/password-wrapper.component.d.ts +6 -3
  41. package/login/components/password-wrapper/password-wrapper.component.mjs +44 -0
  42. package/login/components/select-tag/select-tag.component.d.ts +7 -4
  43. package/login/components/select-tag/select-tag.component.mjs +80 -0
  44. package/login/components/textarea-tag/textarea-tag.component.d.ts +7 -4
  45. package/login/components/textarea-tag/textarea-tag.component.mjs +48 -0
  46. package/login/components/user-profile-form-fields/user-profile-form-fields.component.d.ts +8 -5
  47. package/login/components/user-profile-form-fields/user-profile-form-fields.component.mjs +55 -0
  48. package/login/containers/template.component.d.ts +11 -8
  49. package/login/containers/template.component.mjs +70 -0
  50. package/login/directives/attributes.directive.d.ts +3 -0
  51. package/login/directives/attributes.directive.mjs +26 -0
  52. package/login/directives/index.d.ts +2 -2
  53. package/login/directives/index.mjs +3 -0
  54. package/login/directives/kc-class.directive.d.ts +5 -2
  55. package/login/directives/kc-class.directive.mjs +138 -0
  56. package/login/i18n.d.ts +2 -2
  57. package/login/i18n.mjs +2 -0
  58. package/login/pages/code/code.component.d.ts +6 -3
  59. package/login/pages/code/code.component.mjs +32 -0
  60. package/login/pages/delete-account-confirm/delete-account-confirm.component.d.ts +6 -3
  61. package/login/pages/delete-account-confirm/delete-account-confirm.component.mjs +32 -0
  62. package/login/pages/delete-credential/delete-credential.component.d.ts +6 -3
  63. package/login/pages/delete-credential/delete-credential.component.mjs +37 -0
  64. package/login/pages/error/error.component.d.ts +6 -3
  65. package/login/pages/error/error.component.mjs +32 -0
  66. package/login/pages/frontchannel-logout/frontchannel-logout.component.d.ts +7 -4
  67. package/login/pages/frontchannel-logout/frontchannel-logout.component.mjs +41 -0
  68. package/login/pages/idp-review-user-profile/idp-review-user-profile.component.d.ts +6 -3
  69. package/login/pages/idp-review-user-profile/idp-review-user-profile.component.mjs +42 -0
  70. package/login/pages/info/info.component.d.ts +9 -6
  71. package/login/pages/info/info.component.mjs +58 -0
  72. package/login/pages/login/login.component.d.ts +6 -3
  73. package/login/pages/login/login.component.mjs +41 -0
  74. package/login/pages/login-config-totp/login-config-totp.component.d.ts +6 -3
  75. package/login/pages/login-config-totp/login-config-totp.component.mjs +40 -0
  76. package/login/pages/login-idp-link-confirm/login-idp-link-confirm.component.d.ts +6 -3
  77. package/login/pages/login-idp-link-confirm/login-idp-link-confirm.component.mjs +37 -0
  78. package/login/pages/login-idp-link-confirm-override/login-idp-link-confirm-override.component.d.ts +6 -3
  79. package/login/pages/login-idp-link-confirm-override/login-idp-link-confirm-override.component.mjs +37 -0
  80. package/login/pages/login-idp-link-email/login-idp-link-email.component.d.ts +6 -3
  81. package/login/pages/login-idp-link-email/login-idp-link-email.component.mjs +37 -0
  82. package/login/pages/login-oauth-grant/login-oauth-grant.component.d.ts +6 -3
  83. package/login/pages/login-oauth-grant/login-oauth-grant.component.mjs +38 -0
  84. package/login/pages/login-oauth2-device-verify-user-code/login-oauth2-device-verify-user-code.component.d.ts +6 -3
  85. package/login/pages/login-oauth2-device-verify-user-code/login-oauth2-device-verify-user-code.component.mjs +37 -0
  86. package/login/pages/login-otp/login-otp.component.d.ts +6 -3
  87. package/login/pages/login-otp/login-otp.component.mjs +38 -0
  88. package/login/pages/login-page-expired/login-page-expired.component.d.ts +6 -3
  89. package/login/pages/login-page-expired/login-page-expired.component.mjs +36 -0
  90. package/login/pages/login-passkeys-conditional-authenticate/login-passkeys-conditional-authenticate.component.d.ts +8 -5
  91. package/login/pages/login-passkeys-conditional-authenticate/login-passkeys-conditional-authenticate.component.mjs +85 -0
  92. package/login/pages/login-password/login-password.component.d.ts +6 -3
  93. package/login/pages/login-password/login-password.component.mjs +40 -0
  94. package/login/pages/login-recovery-authn-code-config/login-recovery-authn-code-config.component.d.ts +6 -3
  95. package/login/pages/login-recovery-authn-code-config/login-recovery-authn-code-config.component.mjs +40 -0
  96. package/login/pages/login-recovery-authn-code-input/login-recovery-authn-code-input.component.d.ts +6 -3
  97. package/login/pages/login-recovery-authn-code-input/login-recovery-authn-code-input.component.mjs +38 -0
  98. package/login/pages/login-reset-otp/login-reset-otp.component.d.ts +6 -3
  99. package/login/pages/login-reset-otp/login-reset-otp.component.mjs +37 -0
  100. package/login/pages/login-reset-password/login-reset-password.component.d.ts +6 -3
  101. package/login/pages/login-reset-password/login-reset-password.component.mjs +38 -0
  102. package/login/pages/login-update-password/login-update-password.component.d.ts +6 -3
  103. package/login/pages/login-update-password/login-update-password.component.mjs +40 -0
  104. package/login/pages/login-update-profile/login-update-profile.component.d.ts +6 -3
  105. package/login/pages/login-update-profile/login-update-profile.component.mjs +39 -0
  106. package/login/pages/login-username/login-username.component.d.ts +6 -3
  107. package/login/pages/login-username/login-username.component.mjs +40 -0
  108. package/login/pages/login-verify-email/login-verify-email.component.d.ts +6 -3
  109. package/login/pages/login-verify-email/login-verify-email.component.mjs +37 -0
  110. package/login/pages/login-x509-info/login-x509-info.component.d.ts +6 -3
  111. package/login/pages/login-x509-info/login-x509-info.component.mjs +37 -0
  112. package/login/pages/logout-confirm/logout-confirm.component.d.ts +6 -3
  113. package/login/pages/logout-confirm/logout-confirm.component.mjs +37 -0
  114. package/login/pages/register/register.component.d.ts +6 -3
  115. package/login/pages/register/register.component.mjs +55 -0
  116. package/login/pages/saml-post-form/saml-post-form.component.d.ts +7 -4
  117. package/login/pages/saml-post-form/saml-post-form.component.mjs +49 -0
  118. package/login/pages/select-authenticator/select-authenticator.component.d.ts +6 -3
  119. package/login/pages/select-authenticator/select-authenticator.component.mjs +39 -0
  120. package/login/pages/terms/terms.component.d.ts +6 -3
  121. package/login/pages/terms/terms.component.mjs +37 -0
  122. package/login/pages/update-email/update-email.component.d.ts +6 -3
  123. package/login/pages/update-email/update-email.component.mjs +40 -0
  124. package/login/pages/webauthn-authenticate/webauthn-authenticate.component.d.ts +8 -5
  125. package/login/pages/webauthn-authenticate/webauthn-authenticate.component.mjs +81 -0
  126. package/login/pages/webauthn-error/webauthn-error.component.d.ts +6 -3
  127. package/login/pages/webauthn-error/webauthn-error.component.mjs +46 -0
  128. package/login/pages/webauthn-register/webauthn-register.component.d.ts +8 -5
  129. package/login/pages/webauthn-register/webauthn-register.component.mjs +76 -0
  130. package/login/pipes/advanced-msg-str.pipe.d.ts +4 -1
  131. package/login/pipes/advanced-msg-str.pipe.mjs +19 -0
  132. package/login/pipes/index.d.ts +6 -6
  133. package/login/pipes/index.mjs +7 -0
  134. package/login/pipes/input-type.pipe.d.ts +4 -1
  135. package/login/pipes/input-type.pipe.mjs +20 -0
  136. package/login/pipes/kc-sanitize.pipe.d.ts +5 -2
  137. package/login/pipes/kc-sanitize.pipe.mjs +34 -0
  138. package/login/pipes/msg-str.pipe.d.ts +5 -2
  139. package/login/pipes/msg-str.pipe.mjs +19 -0
  140. package/login/pipes/to-array.pipe.d.ts +4 -1
  141. package/login/pipes/to-array.pipe.mjs +21 -0
  142. package/login/pipes/to-number.pipe.d.ts +4 -1
  143. package/login/pipes/to-number.pipe.mjs +20 -0
  144. package/login/services/index.d.ts +2 -2
  145. package/login/services/index.mjs +3 -0
  146. package/login/services/login-resource-injector.service.d.ts +4 -1
  147. package/login/services/login-resource-injector.service.mjs +68 -0
  148. package/login/services/user-profile-form.service.d.ts +15 -12
  149. package/login/services/user-profile-form.service.mjs +1017 -0
  150. package/package.json +94 -204
  151. package/src/lib/i18n.ts +2 -2
  152. package/src/lib/models/index.ts +1 -1
  153. package/src/lib/providers/keycloakify-angular.providers.ts +18 -18
  154. package/src/lib/public-api.ts +5 -5
  155. package/src/lib/services/i18n.service.ts +2 -2
  156. package/src/lib/services/index.ts +2 -2
  157. package/src/lib/services/resource-injector.service.ts +7 -7
  158. package/src/login/DefaultPage.ts +76 -76
  159. package/src/login/KcContext.ts +1 -1
  160. package/src/login/classes/component-reference.class.ts +1 -1
  161. package/src/login/components/add-remove-buttons-multi-valued-attribute/add-remove-buttons-multi-valued-attribute.component.html +19 -19
  162. package/src/login/components/add-remove-buttons-multi-valued-attribute/add-remove-buttons-multi-valued-attribute.component.ts +12 -22
  163. package/src/login/components/field-errors/field-errors.component.html +10 -10
  164. package/src/login/components/field-errors/field-errors.component.ts +9 -15
  165. package/src/login/components/group-label/group-label.component.html +25 -25
  166. package/src/login/components/group-label/group-label.component.ts +12 -19
  167. package/src/login/components/hello-world/hello-world.component.css +0 -0
  168. package/src/login/components/hello-world/hello-world.component.html +1 -0
  169. package/src/login/components/hello-world/hello-world.component.ts +10 -0
  170. package/src/login/components/index.ts +11 -11
  171. package/src/login/components/input-field-by-type/input-field-by-type.component.html +57 -57
  172. package/src/login/components/input-field-by-type/input-field-by-type.component.ts +16 -34
  173. package/src/login/components/input-tag/input-tag.component.html +41 -45
  174. package/src/login/components/input-tag/input-tag.component.ts +20 -31
  175. package/src/login/components/input-tag-selects/input-tag-selects.component.html +22 -22
  176. package/src/login/components/input-tag-selects/input-tag-selects.component.ts +27 -41
  177. package/src/login/components/logout-other-sessions/logout-other-sessions.component.html +15 -15
  178. package/src/login/components/logout-other-sessions/logout-other-sessions.component.ts +8 -8
  179. package/src/login/components/password-wrapper/password-wrapper.component.html +13 -13
  180. package/src/login/components/password-wrapper/password-wrapper.component.ts +10 -23
  181. package/src/login/components/select-tag/select-tag.component.html +26 -26
  182. package/src/login/components/select-tag/select-tag.component.ts +18 -33
  183. package/src/login/components/textarea-tag/textarea-tag.component.html +13 -15
  184. package/src/login/components/textarea-tag/textarea-tag.component.ts +14 -24
  185. package/src/login/components/user-profile-form-fields/user-profile-form-fields.component.html +71 -71
  186. package/src/login/components/user-profile-form-fields/user-profile-form-fields.component.ts +17 -41
  187. package/src/login/containers/template.component.html +183 -183
  188. package/src/login/containers/template.component.ts +20 -38
  189. package/src/login/directives/attributes.directive.ts +2 -2
  190. package/src/login/directives/index.ts +2 -2
  191. package/src/login/directives/kc-class.directive.ts +11 -11
  192. package/src/login/i18n.ts +2 -2
  193. package/src/login/pages/code/code.component.html +21 -21
  194. package/src/login/pages/code/code.component.ts +11 -15
  195. package/src/login/pages/delete-account-confirm/delete-account-confirm.component.html +44 -42
  196. package/src/login/pages/delete-account-confirm/delete-account-confirm.component.ts +11 -16
  197. package/src/login/pages/delete-credential/delete-credential.component.html +29 -29
  198. package/src/login/pages/delete-credential/delete-credential.component.ts +11 -22
  199. package/src/login/pages/error/error.component.html +20 -20
  200. package/src/login/pages/error/error.component.ts +11 -15
  201. package/src/login/pages/frontchannel-logout/frontchannel-logout.component.html +31 -31
  202. package/src/login/pages/frontchannel-logout/frontchannel-logout.component.ts +11 -23
  203. package/src/login/pages/idp-review-user-profile/idp-review-user-profile.component.html +36 -36
  204. package/src/login/pages/idp-review-user-profile/idp-review-user-profile.component.ts +15 -32
  205. package/src/login/pages/info/info.component.html +45 -45
  206. package/src/login/pages/info/info.component.ts +16 -28
  207. package/src/login/pages/login/login.component.html +194 -194
  208. package/src/login/pages/login/login.component.ts +17 -42
  209. package/src/login/pages/login-config-totp/login-config-totp.component.html +189 -179
  210. package/src/login/pages/login-config-totp/login-config-totp.component.ts +16 -37
  211. package/src/login/pages/login-idp-link-confirm/login-idp-link-confirm.component.html +35 -35
  212. package/src/login/pages/login-idp-link-confirm/login-idp-link-confirm.component.ts +11 -22
  213. package/src/login/pages/login-idp-link-confirm-override/login-idp-link-confirm-override.component.html +34 -34
  214. package/src/login/pages/login-idp-link-confirm-override/login-idp-link-confirm-override.component.ts +11 -24
  215. package/src/login/pages/login-idp-link-email/login-idp-link-email.component.html +32 -30
  216. package/src/login/pages/login-idp-link-email/login-idp-link-email.component.ts +11 -22
  217. package/src/login/pages/login-oauth-grant/login-oauth-grant.component.html +83 -81
  218. package/src/login/pages/login-oauth-grant/login-oauth-grant.component.ts +13 -24
  219. package/src/login/pages/login-oauth2-device-verify-user-code/login-oauth2-device-verify-user-code.component.html +57 -57
  220. package/src/login/pages/login-oauth2-device-verify-user-code/login-oauth2-device-verify-user-code.component.ts +11 -24
  221. package/src/login/pages/login-otp/login-otp.component.html +96 -96
  222. package/src/login/pages/login-otp/login-otp.component.ts +13 -23
  223. package/src/login/pages/login-page-expired/login-page-expired.component.html +31 -31
  224. package/src/login/pages/login-page-expired/login-page-expired.component.ts +10 -21
  225. package/src/login/pages/login-passkeys-conditional-authenticate/login-passkeys-conditional-authenticate.component.html +183 -181
  226. package/src/login/pages/login-passkeys-conditional-authenticate/login-passkeys-conditional-authenticate.component.ts +21 -28
  227. package/src/login/pages/login-password/login-password.component.html +82 -82
  228. package/src/login/pages/login-password/login-password.component.ts +15 -32
  229. package/src/login/pages/login-recovery-authn-code-config/login-recovery-authn-code-config.component.html +142 -142
  230. package/src/login/pages/login-recovery-authn-code-config/login-recovery-authn-code-config.component.ts +14 -33
  231. package/src/login/pages/login-recovery-authn-code-input/login-recovery-authn-code-input.component.html +67 -67
  232. package/src/login/pages/login-recovery-authn-code-input/login-recovery-authn-code-input.component.ts +13 -27
  233. package/src/login/pages/login-reset-otp/login-reset-otp.component.html +61 -59
  234. package/src/login/pages/login-reset-otp/login-reset-otp.component.ts +12 -22
  235. package/src/login/pages/login-reset-password/login-reset-password.component.html +84 -84
  236. package/src/login/pages/login-reset-password/login-reset-password.component.ts +13 -24
  237. package/src/login/pages/login-update-password/login-update-password.component.html +107 -107
  238. package/src/login/pages/login-update-password/login-update-password.component.ts +16 -37
  239. package/src/login/pages/login-update-profile/login-update-profile.component.html +53 -53
  240. package/src/login/pages/login-update-profile/login-update-profile.component.ts +14 -31
  241. package/src/login/pages/login-username/login-username.component.html +146 -146
  242. package/src/login/pages/login-username/login-username.component.ts +16 -37
  243. package/src/login/pages/login-verify-email/login-verify-email.component.html +22 -22
  244. package/src/login/pages/login-verify-email/login-verify-email.component.ts +11 -22
  245. package/src/login/pages/login-x509-info/login-x509-info.component.html +96 -96
  246. package/src/login/pages/login-x509-info/login-x509-info.component.ts +11 -21
  247. package/src/login/pages/logout-confirm/logout-confirm.component.html +51 -51
  248. package/src/login/pages/logout-confirm/logout-confirm.component.ts +11 -21
  249. package/src/login/pages/register/register.component.html +113 -113
  250. package/src/login/pages/register/register.component.ts +17 -28
  251. package/src/login/pages/saml-post-form/saml-post-form.component.html +47 -48
  252. package/src/login/pages/saml-post-form/saml-post-form.component.ts +13 -25
  253. package/src/login/pages/select-authenticator/select-authenticator.component.html +43 -44
  254. package/src/login/pages/select-authenticator/select-authenticator.component.ts +14 -31
  255. package/src/login/pages/terms/terms.component.html +32 -32
  256. package/src/login/pages/terms/terms.component.ts +11 -21
  257. package/src/login/pages/update-email/update-email.component.html +52 -52
  258. package/src/login/pages/update-email/update-email.component.ts +15 -32
  259. package/src/login/pages/webauthn-authenticate/webauthn-authenticate.component.html +146 -148
  260. package/src/login/pages/webauthn-authenticate/webauthn-authenticate.component.ts +23 -47
  261. package/src/login/pages/webauthn-error/webauthn-error.component.html +53 -53
  262. package/src/login/pages/webauthn-error/webauthn-error.component.ts +16 -31
  263. package/src/login/pages/webauthn-register/webauthn-register.component.html +73 -73
  264. package/src/login/pages/webauthn-register/webauthn-register.component.ts +21 -37
  265. package/src/login/pipes/advanced-msg-str.pipe.ts +4 -4
  266. package/src/login/pipes/index.ts +6 -6
  267. package/src/login/pipes/input-type.pipe.ts +4 -4
  268. package/src/login/pipes/kc-sanitize.pipe.ts +8 -8
  269. package/src/login/pipes/msg-str.pipe.ts +5 -5
  270. package/src/login/pipes/to-array.pipe.ts +2 -2
  271. package/src/login/pipes/to-number.pipe.ts +3 -3
  272. package/src/login/services/index.ts +2 -2
  273. package/src/login/services/login-resource-injector.service.ts +11 -11
  274. package/src/login/services/user-profile-form.service.ts +178 -178
  275. package/src/tsconfig.json +0 -1
  276. package/stories/login/pages/login/login.stories.ts +146 -0
  277. package/lib/i18n.js +0 -6
  278. package/lib/i18n.js.map +0 -1
  279. package/lib/models/index.js +0 -2
  280. package/lib/models/index.js.map +0 -1
  281. package/lib/models/script.model.js +0 -2
  282. package/lib/models/script.model.js.map +0 -1
  283. package/lib/providers/keycloakify-angular.providers.js +0 -58
  284. package/lib/providers/keycloakify-angular.providers.js.map +0 -1
  285. package/lib/public-api.js +0 -4
  286. package/lib/public-api.js.map +0 -1
  287. package/lib/services/i18n.service.js +0 -14
  288. package/lib/services/i18n.service.js.map +0 -1
  289. package/lib/services/index.js +0 -3
  290. package/lib/services/index.js.map +0 -1
  291. package/lib/services/resource-injector.service.js +0 -57
  292. package/lib/services/resource-injector.service.js.map +0 -1
  293. package/login/DefaultPage.js +0 -121
  294. package/login/DefaultPage.js.map +0 -1
  295. package/login/KcContext.js +0 -2
  296. package/login/KcContext.js.map +0 -1
  297. package/login/classes/component-reference.class.js +0 -3
  298. package/login/classes/component-reference.class.js.map +0 -1
  299. package/login/components/add-remove-buttons-multi-valued-attribute/add-remove-buttons-multi-valued-attribute.component.html +0 -24
  300. package/login/components/add-remove-buttons-multi-valued-attribute/add-remove-buttons-multi-valued-attribute.component.js +0 -123
  301. package/login/components/add-remove-buttons-multi-valued-attribute/add-remove-buttons-multi-valued-attribute.component.js.map +0 -1
  302. package/login/components/field-errors/field-errors.component.html +0 -15
  303. package/login/components/field-errors/field-errors.component.js +0 -45
  304. package/login/components/field-errors/field-errors.component.js.map +0 -1
  305. package/login/components/group-label/group-label.component.html +0 -30
  306. package/login/components/group-label/group-label.component.js +0 -55
  307. package/login/components/group-label/group-label.component.js.map +0 -1
  308. package/login/components/index.js +0 -12
  309. package/login/components/index.js.map +0 -1
  310. package/login/components/input-field-by-type/input-field-by-type.component.html +0 -63
  311. package/login/components/input-field-by-type/input-field-by-type.component.js +0 -63
  312. package/login/components/input-field-by-type/input-field-by-type.component.js.map +0 -1
  313. package/login/components/input-tag/input-tag.component.html +0 -49
  314. package/login/components/input-tag/input-tag.component.js +0 -107
  315. package/login/components/input-tag/input-tag.component.js.map +0 -1
  316. package/login/components/input-tag-selects/input-tag-selects.component.html +0 -29
  317. package/login/components/input-tag-selects/input-tag-selects.component.js +0 -132
  318. package/login/components/input-tag-selects/input-tag-selects.component.js.map +0 -1
  319. package/login/components/logout-other-sessions/logout-other-sessions.component.html +0 -19
  320. package/login/components/logout-other-sessions/logout-other-sessions.component.js +0 -43
  321. package/login/components/logout-other-sessions/logout-other-sessions.component.js.map +0 -1
  322. package/login/components/password-wrapper/password-wrapper.component.html +0 -15
  323. package/login/components/password-wrapper/password-wrapper.component.js +0 -57
  324. package/login/components/password-wrapper/password-wrapper.component.js.map +0 -1
  325. package/login/components/select-tag/select-tag.component.html +0 -31
  326. package/login/components/select-tag/select-tag.component.js +0 -97
  327. package/login/components/select-tag/select-tag.component.js.map +0 -1
  328. package/login/components/textarea-tag/textarea-tag.component.html +0 -18
  329. package/login/components/textarea-tag/textarea-tag.component.js +0 -63
  330. package/login/components/textarea-tag/textarea-tag.component.js.map +0 -1
  331. package/login/components/user-profile-form-fields/user-profile-form-fields.component.html +0 -85
  332. package/login/components/user-profile-form-fields/user-profile-form-fields.component.js +0 -74
  333. package/login/components/user-profile-form-fields/user-profile-form-fields.component.js.map +0 -1
  334. package/login/containers/template.component.html +0 -203
  335. package/login/containers/template.component.js +0 -78
  336. package/login/containers/template.component.js.map +0 -1
  337. package/login/directives/attributes.directive.js +0 -34
  338. package/login/directives/attributes.directive.js.map +0 -1
  339. package/login/directives/index.js +0 -3
  340. package/login/directives/index.js.map +0 -1
  341. package/login/directives/kc-class.directive.js +0 -146
  342. package/login/directives/kc-class.directive.js.map +0 -1
  343. package/login/i18n.js +0 -2
  344. package/login/i18n.js.map +0 -1
  345. package/login/pages/code/code.component.html +0 -26
  346. package/login/pages/code/code.component.js +0 -38
  347. package/login/pages/code/code.component.js.map +0 -1
  348. package/login/pages/delete-account-confirm/delete-account-confirm.component.html +0 -46
  349. package/login/pages/delete-account-confirm/delete-account-confirm.component.js +0 -38
  350. package/login/pages/delete-account-confirm/delete-account-confirm.component.js.map +0 -1
  351. package/login/pages/delete-credential/delete-credential.component.html +0 -35
  352. package/login/pages/delete-credential/delete-credential.component.js +0 -43
  353. package/login/pages/delete-credential/delete-credential.component.js.map +0 -1
  354. package/login/pages/error/error.component.html +0 -25
  355. package/login/pages/error/error.component.js +0 -38
  356. package/login/pages/error/error.component.js.map +0 -1
  357. package/login/pages/frontchannel-logout/frontchannel-logout.component.html +0 -35
  358. package/login/pages/frontchannel-logout/frontchannel-logout.component.js +0 -47
  359. package/login/pages/frontchannel-logout/frontchannel-logout.component.js.map +0 -1
  360. package/login/pages/idp-review-user-profile/idp-review-user-profile.component.html +0 -41
  361. package/login/pages/idp-review-user-profile/idp-review-user-profile.component.js +0 -54
  362. package/login/pages/idp-review-user-profile/idp-review-user-profile.component.js.map +0 -1
  363. package/login/pages/info/info.component.html +0 -54
  364. package/login/pages/info/info.component.js +0 -61
  365. package/login/pages/info/info.component.js.map +0 -1
  366. package/login/pages/login/login.component.html +0 -212
  367. package/login/pages/login/login.component.js +0 -58
  368. package/login/pages/login/login.component.js.map +0 -1
  369. package/login/pages/login-config-totp/login-config-totp.component.html +0 -190
  370. package/login/pages/login-config-totp/login-config-totp.component.js +0 -53
  371. package/login/pages/login-config-totp/login-config-totp.component.js.map +0 -1
  372. package/login/pages/login-idp-link-confirm/login-idp-link-confirm.component.html +0 -41
  373. package/login/pages/login-idp-link-confirm/login-idp-link-confirm.component.js +0 -43
  374. package/login/pages/login-idp-link-confirm/login-idp-link-confirm.component.js.map +0 -1
  375. package/login/pages/login-idp-link-confirm-override/login-idp-link-confirm-override.component.html +0 -40
  376. package/login/pages/login-idp-link-confirm-override/login-idp-link-confirm-override.component.js +0 -43
  377. package/login/pages/login-idp-link-confirm-override/login-idp-link-confirm-override.component.js.map +0 -1
  378. package/login/pages/login-idp-link-email/login-idp-link-email.component.html +0 -37
  379. package/login/pages/login-idp-link-email/login-idp-link-email.component.js +0 -43
  380. package/login/pages/login-idp-link-email/login-idp-link-email.component.js.map +0 -1
  381. package/login/pages/login-oauth-grant/login-oauth-grant.component.html +0 -92
  382. package/login/pages/login-oauth-grant/login-oauth-grant.component.js +0 -44
  383. package/login/pages/login-oauth-grant/login-oauth-grant.component.js.map +0 -1
  384. package/login/pages/login-oauth2-device-verify-user-code/login-oauth2-device-verify-user-code.component.html +0 -63
  385. package/login/pages/login-oauth2-device-verify-user-code/login-oauth2-device-verify-user-code.component.js +0 -43
  386. package/login/pages/login-oauth2-device-verify-user-code/login-oauth2-device-verify-user-code.component.js.map +0 -1
  387. package/login/pages/login-otp/login-otp.component.html +0 -103
  388. package/login/pages/login-otp/login-otp.component.js +0 -44
  389. package/login/pages/login-otp/login-otp.component.js.map +0 -1
  390. package/login/pages/login-page-expired/login-page-expired.component.html +0 -35
  391. package/login/pages/login-page-expired/login-page-expired.component.js +0 -42
  392. package/login/pages/login-page-expired/login-page-expired.component.js.map +0 -1
  393. package/login/pages/login-passkeys-conditional-authenticate/login-passkeys-conditional-authenticate.component.html +0 -203
  394. package/login/pages/login-passkeys-conditional-authenticate/login-passkeys-conditional-authenticate.component.js +0 -91
  395. package/login/pages/login-passkeys-conditional-authenticate/login-passkeys-conditional-authenticate.component.js.map +0 -1
  396. package/login/pages/login-password/login-password.component.html +0 -90
  397. package/login/pages/login-password/login-password.component.js +0 -52
  398. package/login/pages/login-password/login-password.component.js.map +0 -1
  399. package/login/pages/login-recovery-authn-code-config/login-recovery-authn-code-config.component.html +0 -155
  400. package/login/pages/login-recovery-authn-code-config/login-recovery-authn-code-config.component.js +0 -51
  401. package/login/pages/login-recovery-authn-code-config/login-recovery-authn-code-config.component.js.map +0 -1
  402. package/login/pages/login-recovery-authn-code-input/login-recovery-authn-code-input.component.html +0 -76
  403. package/login/pages/login-recovery-authn-code-input/login-recovery-authn-code-input.component.js +0 -44
  404. package/login/pages/login-recovery-authn-code-input/login-recovery-authn-code-input.component.js.map +0 -1
  405. package/login/pages/login-reset-otp/login-reset-otp.component.html +0 -65
  406. package/login/pages/login-reset-otp/login-reset-otp.component.js +0 -43
  407. package/login/pages/login-reset-otp/login-reset-otp.component.js.map +0 -1
  408. package/login/pages/login-reset-password/login-reset-password.component.html +0 -95
  409. package/login/pages/login-reset-password/login-reset-password.component.js +0 -44
  410. package/login/pages/login-reset-password/login-reset-password.component.js.map +0 -1
  411. package/login/pages/login-update-password/login-update-password.component.html +0 -116
  412. package/login/pages/login-update-password/login-update-password.component.js +0 -53
  413. package/login/pages/login-update-password/login-update-password.component.js.map +0 -1
  414. package/login/pages/login-update-profile/login-update-profile.component.html +0 -59
  415. package/login/pages/login-update-profile/login-update-profile.component.js +0 -50
  416. package/login/pages/login-update-profile/login-update-profile.component.js.map +0 -1
  417. package/login/pages/login-username/login-username.component.html +0 -161
  418. package/login/pages/login-username/login-username.component.js +0 -56
  419. package/login/pages/login-username/login-username.component.js.map +0 -1
  420. package/login/pages/login-verify-email/login-verify-email.component.html +0 -27
  421. package/login/pages/login-verify-email/login-verify-email.component.js +0 -43
  422. package/login/pages/login-verify-email/login-verify-email.component.js.map +0 -1
  423. package/login/pages/login-x509-info/login-x509-info.component.html +0 -102
  424. package/login/pages/login-x509-info/login-x509-info.component.js +0 -43
  425. package/login/pages/login-x509-info/login-x509-info.component.js.map +0 -1
  426. package/login/pages/logout-confirm/logout-confirm.component.html +0 -59
  427. package/login/pages/logout-confirm/logout-confirm.component.js +0 -43
  428. package/login/pages/logout-confirm/logout-confirm.component.js.map +0 -1
  429. package/login/pages/register/register.component.html +0 -126
  430. package/login/pages/register/register.component.js +0 -62
  431. package/login/pages/register/register.component.js.map +0 -1
  432. package/login/pages/saml-post-form/saml-post-form.component.html +0 -51
  433. package/login/pages/saml-post-form/saml-post-form.component.js +0 -55
  434. package/login/pages/saml-post-form/saml-post-form.component.js.map +0 -1
  435. package/login/pages/select-authenticator/select-authenticator.component.html +0 -49
  436. package/login/pages/select-authenticator/select-authenticator.component.js +0 -51
  437. package/login/pages/select-authenticator/select-authenticator.component.js.map +0 -1
  438. package/login/pages/terms/terms.component.html +0 -36
  439. package/login/pages/terms/terms.component.js +0 -43
  440. package/login/pages/terms/terms.component.js.map +0 -1
  441. package/login/pages/update-email/update-email.component.html +0 -58
  442. package/login/pages/update-email/update-email.component.js +0 -52
  443. package/login/pages/update-email/update-email.component.js.map +0 -1
  444. package/login/pages/webauthn-authenticate/webauthn-authenticate.component.html +0 -162
  445. package/login/pages/webauthn-authenticate/webauthn-authenticate.component.js +0 -93
  446. package/login/pages/webauthn-authenticate/webauthn-authenticate.component.js.map +0 -1
  447. package/login/pages/webauthn-error/webauthn-error.component.html +0 -60
  448. package/login/pages/webauthn-error/webauthn-error.component.js +0 -57
  449. package/login/pages/webauthn-error/webauthn-error.component.js.map +0 -1
  450. package/login/pages/webauthn-register/webauthn-register.component.html +0 -82
  451. package/login/pages/webauthn-register/webauthn-register.component.js +0 -86
  452. package/login/pages/webauthn-register/webauthn-register.component.js.map +0 -1
  453. package/login/pipes/advanced-msg-str.pipe.js +0 -31
  454. package/login/pipes/advanced-msg-str.pipe.js.map +0 -1
  455. package/login/pipes/index.js +0 -7
  456. package/login/pipes/index.js.map +0 -1
  457. package/login/pipes/input-type.pipe.js +0 -23
  458. package/login/pipes/input-type.pipe.js.map +0 -1
  459. package/login/pipes/kc-sanitize.pipe.js +0 -36
  460. package/login/pipes/kc-sanitize.pipe.js.map +0 -1
  461. package/login/pipes/msg-str.pipe.js +0 -31
  462. package/login/pipes/msg-str.pipe.js.map +0 -1
  463. package/login/pipes/to-array.pipe.js +0 -24
  464. package/login/pipes/to-array.pipe.js.map +0 -1
  465. package/login/pipes/to-number.pipe.js +0 -23
  466. package/login/pipes/to-number.pipe.js.map +0 -1
  467. package/login/services/index.js +0 -3
  468. package/login/services/index.js.map +0 -1
  469. package/login/services/login-resource-injector.service.js +0 -71
  470. package/login/services/login-resource-injector.service.js.map +0 -1
  471. package/login/services/user-profile-form.service.js +0 -1031
  472. package/login/services/user-profile-form.service.js.map +0 -1
@@ -0,0 +1,48 @@
1
+ import { ChangeDetectionStrategy, Component, forwardRef, inject, input, output } from '@angular/core';
2
+ import { CLASSES, USE_DEFAULT_CSS } from '../../../lib/public-api';
3
+ import { ComponentReference } from '../../../login/classes/component-reference.class';
4
+ import { KcClassDirective } from '../../../login/directives/kc-class.directive';
5
+ import { ToNumberPipe } from '../../../login/pipes/to-number.pipe';
6
+ import * as i0 from "@angular/core";
7
+ export class TextareaTagComponent extends ComponentReference {
8
+ constructor() {
9
+ super(...arguments);
10
+ this.attribute = input();
11
+ this.value = input();
12
+ this.displayableErrors = input();
13
+ this.dispatchFormAction = output();
14
+ this.doUseDefaultCss = inject(USE_DEFAULT_CSS);
15
+ this.classes = inject(CLASSES);
16
+ }
17
+ onChange(event) {
18
+ this.dispatchFormAction.emit({
19
+ action: 'update',
20
+ name: this.attribute()?.name ?? '',
21
+ valueOrValues: event.target.value
22
+ });
23
+ }
24
+ onBlur() {
25
+ this.dispatchFormAction.emit({
26
+ action: 'focus lost',
27
+ name: this.attribute()?.name ?? '',
28
+ fieldIndex: undefined
29
+ });
30
+ }
31
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: TextareaTagComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
32
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.6", type: TextareaTagComponent, isStandalone: true, selector: "kc-textarea-tag", inputs: { attribute: { classPropertyName: "attribute", publicName: "attribute", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, displayableErrors: { classPropertyName: "displayableErrors", publicName: "displayableErrors", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { dispatchFormAction: "dispatchFormAction" }, providers: [
33
+ {
34
+ provide: ComponentReference,
35
+ useExisting: forwardRef(() => TextareaTagComponent)
36
+ }
37
+ ], usesInheritance: true, ngImport: i0, template: "@let attr = attribute();\n@if (attr) {\n <textarea\n [id]=\"attr.name\"\n [name]=\"attr.name\"\n [kcClass]=\"'kcInputClass'\"\n [attr.aria-invalid]=\"!!displayableErrors()?.length\"\n [disabled]=\"attr.readOnly\"\n [cols]=\"attr.annotations.inputTypeCols === undefined ? undefined : (attr.annotations.inputTypeCols | toNumber)\"\n [rows]=\"attr.annotations.inputTypeRows === undefined ? undefined : (attr.annotations.inputTypeRows | toNumber)\"\n [maxLength]=\"attr.annotations.inputTypeMaxlength === undefined ? undefined : (attr.annotations.inputTypeMaxlength | toNumber)\"\n [value]=\"value()\"\n (change)=\"onChange($event)\"\n (blur)=\"onBlur()\"\n ></textarea>\n}\n", styles: [":host{display:contents}\n"], dependencies: [{ kind: "directive", type: KcClassDirective, selector: "[kcClass]", inputs: ["class", "ngClass", "kcClass"] }, { kind: "pipe", type: ToNumberPipe, name: "toNumber" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
38
+ }
39
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: TextareaTagComponent, decorators: [{
40
+ type: Component,
41
+ args: [{ standalone: true, imports: [KcClassDirective, ToNumberPipe], selector: 'kc-textarea-tag', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
42
+ {
43
+ provide: ComponentReference,
44
+ useExisting: forwardRef(() => TextareaTagComponent)
45
+ }
46
+ ], template: "@let attr = attribute();\n@if (attr) {\n <textarea\n [id]=\"attr.name\"\n [name]=\"attr.name\"\n [kcClass]=\"'kcInputClass'\"\n [attr.aria-invalid]=\"!!displayableErrors()?.length\"\n [disabled]=\"attr.readOnly\"\n [cols]=\"attr.annotations.inputTypeCols === undefined ? undefined : (attr.annotations.inputTypeCols | toNumber)\"\n [rows]=\"attr.annotations.inputTypeRows === undefined ? undefined : (attr.annotations.inputTypeRows | toNumber)\"\n [maxLength]=\"attr.annotations.inputTypeMaxlength === undefined ? undefined : (attr.annotations.inputTypeMaxlength | toNumber)\"\n [value]=\"value()\"\n (change)=\"onChange($event)\"\n (blur)=\"onBlur()\"\n ></textarea>\n}\n", styles: [":host{display:contents}\n"] }]
47
+ }] });
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dGFyZWEtdGFnLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tleWNsb2FraWZ5LWFuZ3VsYXIvc3JjL2xvZ2luL2NvbXBvbmVudHMvdGV4dGFyZWEtdGFnL3RleHRhcmVhLXRhZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rZXljbG9ha2lmeS1hbmd1bGFyL3NyYy9sb2dpbi9jb21wb25lbnRzL3RleHRhcmVhLXRhZy90ZXh0YXJlYS10YWcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEcsT0FBTyxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUcvRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUNsRyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUM1RixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saURBQWlELENBQUM7O0FBdUIvRSxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsa0JBQWtCO0lBcEI1RDs7UUFxQkksY0FBUyxHQUFHLEtBQUssRUFBYSxDQUFDO1FBQy9CLFVBQUssR0FBRyxLQUFLLEVBQVUsQ0FBQztRQUN4QixzQkFBaUIsR0FBRyxLQUFLLEVBQW9CLENBQUM7UUFDOUMsdUJBQWtCLEdBQUcsTUFBTSxFQUFjLENBQUM7UUFDakMsb0JBQWUsR0FBRyxNQUFNLENBQVUsZUFBZSxDQUFDLENBQUM7UUFDbkQsWUFBTyxHQUFHLE1BQU0sQ0FBb0MsT0FBTyxDQUFDLENBQUM7S0FpQnpFO0lBZkcsUUFBUSxDQUFDLEtBQVk7UUFDakIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQztZQUN6QixNQUFNLEVBQUUsUUFBUTtZQUNoQixJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFFLElBQUksSUFBSSxFQUFFO1lBQ2xDLGFBQWEsRUFBRyxLQUFLLENBQUMsTUFBOEIsQ0FBQyxLQUFLO1NBQzdELENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxNQUFNO1FBQ0YsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQztZQUN6QixNQUFNLEVBQUUsWUFBWTtZQUNwQixJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFFLElBQUksSUFBSSxFQUFFO1lBQ2xDLFVBQVUsRUFBRSxTQUFTO1NBQ3hCLENBQUMsQ0FBQztJQUNQLENBQUM7OEdBdEJRLG9CQUFvQjtrR0FBcEIsb0JBQW9CLHloQkFQbEI7WUFDUDtnQkFDSSxPQUFPLEVBQUUsa0JBQWtCO2dCQUMzQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLG9CQUFvQixDQUFDO2FBQ3REO1NBQ0osaURDM0JMLG92QkFnQkEsbUZERWMsZ0JBQWdCLDBGQUFFLFlBQVk7OzJGQVcvQixvQkFBb0I7a0JBcEJoQyxTQUFTO2lDQUNNLElBQUksV0FRUCxDQUFDLGdCQUFnQixFQUFFLFlBQVksQ0FBQyxZQUMvQixpQkFBaUIsbUJBRVYsdUJBQXVCLENBQUMsTUFBTSxhQUNwQzt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsa0JBQWtCOzRCQUMzQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxxQkFBcUIsQ0FBQzt5QkFDdEQ7cUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBmb3J3YXJkUmVmLCBpbmplY3QsIGlucHV0LCBvdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENMQVNTRVMsIFVTRV9ERUZBVUxUX0NTUyB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xpYi9wdWJsaWMtYXBpJztcbmltcG9ydCB7IEF0dHJpYnV0ZSB9IGZyb20gJ2tleWNsb2FraWZ5L2xvZ2luL0tjQ29udGV4dCc7XG5pbXBvcnQgeyBDbGFzc0tleSB9IGZyb20gJ2tleWNsb2FraWZ5L2xvZ2luL2xpYi9rY0Nsc3gnO1xuaW1wb3J0IHsgQ29tcG9uZW50UmVmZXJlbmNlIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vY2xhc3Nlcy9jb21wb25lbnQtcmVmZXJlbmNlLmNsYXNzJztcbmltcG9ydCB7IEtjQ2xhc3NEaXJlY3RpdmUgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9kaXJlY3RpdmVzL2tjLWNsYXNzLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBUb051bWJlclBpcGUgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9waXBlcy90by1udW1iZXIucGlwZSc7XG5pbXBvcnQgeyBGb3JtQWN0aW9uLCBGb3JtRmllbGRFcnJvciB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL3NlcnZpY2VzL3VzZXItcHJvZmlsZS1mb3JtLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHN0eWxlczogW1xuICAgICAgICBgXG4gICAgICAgICAgICA6aG9zdCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogY29udGVudHM7XG4gICAgICAgICAgICB9XG4gICAgICAgIGBcbiAgICBdLFxuICAgIGltcG9ydHM6IFtLY0NsYXNzRGlyZWN0aXZlLCBUb051bWJlclBpcGVdLFxuICAgIHNlbGVjdG9yOiAna2MtdGV4dGFyZWEtdGFnJyxcbiAgICB0ZW1wbGF0ZVVybDogJ3RleHRhcmVhLXRhZy5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IENvbXBvbmVudFJlZmVyZW5jZSxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFRleHRhcmVhVGFnQ29tcG9uZW50KVxuICAgICAgICB9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBUZXh0YXJlYVRhZ0NvbXBvbmVudCBleHRlbmRzIENvbXBvbmVudFJlZmVyZW5jZSB7XG4gICAgYXR0cmlidXRlID0gaW5wdXQ8QXR0cmlidXRlPigpO1xuICAgIHZhbHVlID0gaW5wdXQ8c3RyaW5nPigpO1xuICAgIGRpc3BsYXlhYmxlRXJyb3JzID0gaW5wdXQ8Rm9ybUZpZWxkRXJyb3JbXT4oKTtcbiAgICBkaXNwYXRjaEZvcm1BY3Rpb24gPSBvdXRwdXQ8Rm9ybUFjdGlvbj4oKTtcbiAgICBvdmVycmlkZSBkb1VzZURlZmF1bHRDc3MgPSBpbmplY3Q8Ym9vbGVhbj4oVVNFX0RFRkFVTFRfQ1NTKTtcbiAgICBvdmVycmlkZSBjbGFzc2VzID0gaW5qZWN0PFBhcnRpYWw8UmVjb3JkPENsYXNzS2V5LCBzdHJpbmc+Pj4oQ0xBU1NFUyk7XG5cbiAgICBvbkNoYW5nZShldmVudDogRXZlbnQpIHtcbiAgICAgICAgdGhpcy5kaXNwYXRjaEZvcm1BY3Rpb24uZW1pdCh7XG4gICAgICAgICAgICBhY3Rpb246ICd1cGRhdGUnLFxuICAgICAgICAgICAgbmFtZTogdGhpcy5hdHRyaWJ1dGUoKT8ubmFtZSA/PyAnJyxcbiAgICAgICAgICAgIHZhbHVlT3JWYWx1ZXM6IChldmVudC50YXJnZXQgYXMgSFRNTFRleHRBcmVhRWxlbWVudCkudmFsdWVcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb25CbHVyKCkge1xuICAgICAgICB0aGlzLmRpc3BhdGNoRm9ybUFjdGlvbi5lbWl0KHtcbiAgICAgICAgICAgIGFjdGlvbjogJ2ZvY3VzIGxvc3QnLFxuICAgICAgICAgICAgbmFtZTogdGhpcy5hdHRyaWJ1dGUoKT8ubmFtZSA/PyAnJyxcbiAgICAgICAgICAgIGZpZWxkSW5kZXg6IHVuZGVmaW5lZFxuICAgICAgICB9KTtcbiAgICB9XG59XG4iLCJAbGV0IGF0dHIgPSBhdHRyaWJ1dGUoKTtcbkBpZiAoYXR0cikge1xuICAgIDx0ZXh0YXJlYVxuICAgICAgICBbaWRdPVwiYXR0ci5uYW1lXCJcbiAgICAgICAgW25hbWVdPVwiYXR0ci5uYW1lXCJcbiAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjSW5wdXRDbGFzcydcIlxuICAgICAgICBbYXR0ci5hcmlhLWludmFsaWRdPVwiISFkaXNwbGF5YWJsZUVycm9ycygpPy5sZW5ndGhcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiYXR0ci5yZWFkT25seVwiXG4gICAgICAgIFtjb2xzXT1cImF0dHIuYW5ub3RhdGlvbnMuaW5wdXRUeXBlQ29scyA9PT0gdW5kZWZpbmVkID8gdW5kZWZpbmVkIDogKGF0dHIuYW5ub3RhdGlvbnMuaW5wdXRUeXBlQ29scyB8IHRvTnVtYmVyKVwiXG4gICAgICAgIFtyb3dzXT1cImF0dHIuYW5ub3RhdGlvbnMuaW5wdXRUeXBlUm93cyA9PT0gdW5kZWZpbmVkID8gdW5kZWZpbmVkIDogKGF0dHIuYW5ub3RhdGlvbnMuaW5wdXRUeXBlUm93cyB8IHRvTnVtYmVyKVwiXG4gICAgICAgIFttYXhMZW5ndGhdPVwiYXR0ci5hbm5vdGF0aW9ucy5pbnB1dFR5cGVNYXhsZW5ndGggPT09IHVuZGVmaW5lZCA/IHVuZGVmaW5lZCA6IChhdHRyLmFubm90YXRpb25zLmlucHV0VHlwZU1heGxlbmd0aCB8IHRvTnVtYmVyKVwiXG4gICAgICAgIFt2YWx1ZV09XCJ2YWx1ZSgpXCJcbiAgICAgICAgKGNoYW5nZSk9XCJvbkNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgKGJsdXIpPVwib25CbHVyKClcIlxuICAgID48L3RleHRhcmVhPlxufVxuIl19
@@ -1,8 +1,9 @@
1
- import { TemplateRef } from "@angular/core";
2
- import { ClassKey } from "keycloakify/login/lib/kcClsx";
3
- import { KcContext } from "keycloakify/login/KcContext";
4
- import { ComponentReference } from "../../../login/classes/component-reference.class";
5
- import { FormAction, UserProfileFormService } from "../../../login/services/user-profile-form.service";
1
+ import { TemplateRef } from '@angular/core';
2
+ import { ClassKey } from 'keycloakify/login/lib/kcClsx';
3
+ import { KcContext } from 'keycloakify/login/KcContext';
4
+ import { ComponentReference } from '../../../login/classes/component-reference.class';
5
+ import { FormAction, UserProfileFormService } from '../../../login/services/user-profile-form.service';
6
+ import * as i0 from "@angular/core";
6
7
  export declare class UserProfileFormFieldsComponent extends ComponentReference {
7
8
  kcContext: KcContext;
8
9
  userProfileFormService: UserProfileFormService;
@@ -22,4 +23,6 @@ export declare class UserProfileFormFieldsComponent extends ComponentReference {
22
23
  afterField: TemplateRef<unknown> | undefined;
23
24
  constructor();
24
25
  onDispatch(formAction: FormAction): void;
26
+ static ɵfac: i0.ɵɵFactoryDeclaration<UserProfileFormFieldsComponent, never>;
27
+ static ɵcmp: i0.ɵɵComponentDeclaration<UserProfileFormFieldsComponent, "kc-user-profile-form-fields", never, {}, { "onIsFormSubmittable": "onIsFormSubmittable"; }, ["beforeField", "afterField"], never, true, never>;
25
28
  }
@@ -0,0 +1,55 @@
1
+ import { NgTemplateOutlet } from '@angular/common';
2
+ import { ChangeDetectionStrategy, Component, ContentChild, effect, forwardRef, inject, output } from '@angular/core';
3
+ import { DO_MAKE_USER_CONFIRM_PASSWORD, KC_CONTEXT, CLASSES, USE_DEFAULT_CSS } from '../../../lib/public-api';
4
+ import { ComponentReference } from '../../../login/classes/component-reference.class';
5
+ import { KcClassDirective } from '../../../login/directives/kc-class.directive';
6
+ import { AdvancedMsgStrPipe } from '../../../login/pipes/advanced-msg-str.pipe';
7
+ import { UserProfileFormService } from '../../../login/services/user-profile-form.service';
8
+ import { FieldErrorsComponent } from '../../../login/components/field-errors/field-errors.component';
9
+ import { GroupLabelComponent } from '../../../login/components/group-label/group-label.component';
10
+ import { InputFieldByTypeComponent } from '../../../login/components/input-field-by-type/input-field-by-type.component';
11
+ import * as i0 from "@angular/core";
12
+ export class UserProfileFormFieldsComponent extends ComponentReference {
13
+ constructor() {
14
+ super();
15
+ this.kcContext = inject(KC_CONTEXT);
16
+ this.userProfileFormService = inject(UserProfileFormService);
17
+ this.doMakeUserConfirmPassword = inject(DO_MAKE_USER_CONFIRM_PASSWORD);
18
+ this.doUseDefaultCss = inject(USE_DEFAULT_CSS);
19
+ this.classes = inject(CLASSES);
20
+ this.onIsFormSubmittable = output();
21
+ this.formState = this.userProfileFormService.formState;
22
+ effect(() => {
23
+ const isFormSubmittable = this.formState().isFormSubmittable;
24
+ this.onIsFormSubmittable.emit(isFormSubmittable);
25
+ });
26
+ }
27
+ onDispatch(formAction) {
28
+ this.userProfileFormService.dispatchFormAction(formAction);
29
+ }
30
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: UserProfileFormFieldsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
31
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.6", type: UserProfileFormFieldsComponent, isStandalone: true, selector: "kc-user-profile-form-fields", outputs: { onIsFormSubmittable: "onIsFormSubmittable" }, providers: [
32
+ UserProfileFormService,
33
+ {
34
+ provide: ComponentReference,
35
+ useExisting: forwardRef(() => UserProfileFormFieldsComponent)
36
+ }
37
+ ], queries: [{ propertyName: "beforeField", first: true, predicate: ["beforField"], descendants: true }, { propertyName: "afterField", first: true, predicate: ["afterField"], descendants: true }], usesInheritance: true, ngImport: i0, template: "@let formFieldStates = formState().formFieldStates;\n\n@for (fieldState of formFieldStates; track fieldState.attribute) {\n <!-- [groupNameRef]=\"groupNameRef\"\n TODO: verify this logic\n -->\n <kc-group-label [attribute]=\"fieldState.attribute\"> </kc-group-label>\n\n @if (beforeField) {\n <ng-container\n [ngTemplateOutlet]=\"beforeField\"\n [ngTemplateOutletContext]=\"{\n attribute: fieldState.attribute,\n valueOrValues: fieldState.valueOrValues,\n displayableErrors: fieldState.displayableErrors\n }\"\n >\n </ng-container>\n }\n\n <div\n [kcClass]=\"'kcFormGroupClass'\"\n [style.display]=\"fieldState.attribute.name === 'password-confirm' && !doMakeUserConfirmPassword ? 'none' : 'block'\"\n >\n <div [kcClass]=\"'kcLabelWrapperClass'\">\n <label\n [for]=\"fieldState.attribute.name\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ fieldState.attribute.displayName ?? '' | advancedMsgStr }}\n @if (fieldState.attribute.required) {\n *\n }\n </label>\n </div>\n\n <div [kcClass]=\"'kcInputWrapperClass'\">\n @if (fieldState.attribute.annotations.inputHelperTextBefore) {\n <div\n [kcClass]=\"'kcInputHelperTextBeforeClass'\"\n [id]=\"'form-help-text-before-' + fieldState.attribute.name\"\n aria-live=\"polite\"\n >\n {{ fieldState.attribute.annotations.inputHelperTextBefore | advancedMsgStr }}\n </div>\n }\n\n <kc-input-field-by-type\n [attribute]=\"fieldState.attribute\"\n [valueOrValues]=\"fieldState.valueOrValues\"\n [displayableErrors]=\"fieldState.displayableErrors\"\n (dispatchFormAction)=\"onDispatch($event)\"\n >\n </kc-input-field-by-type>\n\n <kc-field-errors\n [attribute]=\"fieldState.attribute\"\n [displayableErrors]=\"fieldState.displayableErrors\"\n >\n </kc-field-errors>\n @if (fieldState.attribute.annotations.inputHelperTextAfter) {\n <div\n [kcClass]=\"'kcInputHelperTextAfterClass'\"\n [id]=\"'form-help-text-after-' + fieldState.attribute.name\"\n aria-live=\"polite\"\n >\n {{ fieldState.attribute.annotations.inputHelperTextAfter | advancedMsgStr }}\n </div>\n }\n\n @if (afterField) {\n <ng-container\n [ngTemplateOutlet]=\"afterField\"\n [ngTemplateOutletContext]=\"{\n attribute: fieldState.attribute,\n valueOrValues: fieldState.valueOrValues,\n displayableErrors: fieldState.displayableErrors\n }\"\n >\n </ng-container>\n }\n <!-- NOTE: Downloading of html5DataAnnotations scripts is done in the useUserProfileForm hook -->\n </div>\n </div>\n}\n", styles: [":host{display:contents}\n"], dependencies: [{ kind: "directive", type: KcClassDirective, selector: "[kcClass]", inputs: ["class", "ngClass", "kcClass"] }, { kind: "component", type: FieldErrorsComponent, selector: "kc-field-errors", inputs: ["attribute", "displayableErrors", "fieldIndex"] }, { kind: "component", type: InputFieldByTypeComponent, selector: "kc-input-field-by-type", inputs: ["attribute", "valueOrValues", "displayableErrors"], outputs: ["dispatchFormAction"] }, { kind: "component", type: GroupLabelComponent, selector: "kc-group-label", inputs: ["attribute", "groupName"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: AdvancedMsgStrPipe, name: "advancedMsgStr" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
38
+ }
39
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: UserProfileFormFieldsComponent, decorators: [{
40
+ type: Component,
41
+ args: [{ standalone: true, imports: [KcClassDirective, FieldErrorsComponent, InputFieldByTypeComponent, GroupLabelComponent, NgTemplateOutlet, AdvancedMsgStrPipe], selector: 'kc-user-profile-form-fields', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
42
+ UserProfileFormService,
43
+ {
44
+ provide: ComponentReference,
45
+ useExisting: forwardRef(() => UserProfileFormFieldsComponent)
46
+ }
47
+ ], template: "@let formFieldStates = formState().formFieldStates;\n\n@for (fieldState of formFieldStates; track fieldState.attribute) {\n <!-- [groupNameRef]=\"groupNameRef\"\n TODO: verify this logic\n -->\n <kc-group-label [attribute]=\"fieldState.attribute\"> </kc-group-label>\n\n @if (beforeField) {\n <ng-container\n [ngTemplateOutlet]=\"beforeField\"\n [ngTemplateOutletContext]=\"{\n attribute: fieldState.attribute,\n valueOrValues: fieldState.valueOrValues,\n displayableErrors: fieldState.displayableErrors\n }\"\n >\n </ng-container>\n }\n\n <div\n [kcClass]=\"'kcFormGroupClass'\"\n [style.display]=\"fieldState.attribute.name === 'password-confirm' && !doMakeUserConfirmPassword ? 'none' : 'block'\"\n >\n <div [kcClass]=\"'kcLabelWrapperClass'\">\n <label\n [for]=\"fieldState.attribute.name\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ fieldState.attribute.displayName ?? '' | advancedMsgStr }}\n @if (fieldState.attribute.required) {\n *\n }\n </label>\n </div>\n\n <div [kcClass]=\"'kcInputWrapperClass'\">\n @if (fieldState.attribute.annotations.inputHelperTextBefore) {\n <div\n [kcClass]=\"'kcInputHelperTextBeforeClass'\"\n [id]=\"'form-help-text-before-' + fieldState.attribute.name\"\n aria-live=\"polite\"\n >\n {{ fieldState.attribute.annotations.inputHelperTextBefore | advancedMsgStr }}\n </div>\n }\n\n <kc-input-field-by-type\n [attribute]=\"fieldState.attribute\"\n [valueOrValues]=\"fieldState.valueOrValues\"\n [displayableErrors]=\"fieldState.displayableErrors\"\n (dispatchFormAction)=\"onDispatch($event)\"\n >\n </kc-input-field-by-type>\n\n <kc-field-errors\n [attribute]=\"fieldState.attribute\"\n [displayableErrors]=\"fieldState.displayableErrors\"\n >\n </kc-field-errors>\n @if (fieldState.attribute.annotations.inputHelperTextAfter) {\n <div\n [kcClass]=\"'kcInputHelperTextAfterClass'\"\n [id]=\"'form-help-text-after-' + fieldState.attribute.name\"\n aria-live=\"polite\"\n >\n {{ fieldState.attribute.annotations.inputHelperTextAfter | advancedMsgStr }}\n </div>\n }\n\n @if (afterField) {\n <ng-container\n [ngTemplateOutlet]=\"afterField\"\n [ngTemplateOutletContext]=\"{\n attribute: fieldState.attribute,\n valueOrValues: fieldState.valueOrValues,\n displayableErrors: fieldState.displayableErrors\n }\"\n >\n </ng-container>\n }\n <!-- NOTE: Downloading of html5DataAnnotations scripts is done in the useUserProfileForm hook -->\n </div>\n </div>\n}\n", styles: [":host{display:contents}\n"] }]
48
+ }], ctorParameters: () => [], propDecorators: { beforeField: [{
49
+ type: ContentChild,
50
+ args: ['beforField']
51
+ }], afterField: [{
52
+ type: ContentChild,
53
+ args: ['afterField']
54
+ }] } });
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1wcm9maWxlLWZvcm0tZmllbGRzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tleWNsb2FraWZ5LWFuZ3VsYXIvc3JjL2xvZ2luL2NvbXBvbmVudHMvdXNlci1wcm9maWxlLWZvcm0tZmllbGRzL3VzZXItcHJvZmlsZS1mb3JtLWZpZWxkcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rZXljbG9ha2lmeS1hbmd1bGFyL3NyYy9sb2dpbi9jb21wb25lbnRzL3VzZXItcHJvZmlsZS1mb3JtLWZpZWxkcy91c2VyLXByb2ZpbGUtZm9ybS1maWVsZHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBQ2xJLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRzFILE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQzVGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQzVGLE9BQU8sRUFBYyxzQkFBc0IsRUFBRSxNQUFNLCtEQUErRCxDQUFDO0FBQ25ILE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJFQUEyRSxDQUFDO0FBQ2pILE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlFQUF5RSxDQUFDO0FBQzlHLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHlGQUF5RixDQUFDOztBQXVCcEksTUFBTSxPQUFPLDhCQUErQixTQUFRLGtCQUFrQjtJQWNsRTtRQUNJLEtBQUssRUFBRSxDQUFDO1FBZFosY0FBUyxHQUFHLE1BQU0sQ0FBWSxVQUFVLENBQUMsQ0FBQztRQUMxQywyQkFBc0IsR0FBRyxNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUN4RCw4QkFBeUIsR0FBRyxNQUFNLENBQUMsNkJBQTZCLENBQUMsQ0FBQztRQUN6RCxvQkFBZSxHQUFHLE1BQU0sQ0FBVSxlQUFlLENBQUMsQ0FBQztRQUNuRCxZQUFPLEdBQUcsTUFBTSxDQUFvQyxPQUFPLENBQUMsQ0FBQztRQUV0RSx3QkFBbUIsR0FBRyxNQUFNLEVBQVcsQ0FBQztRQUV4QyxjQUFTLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFNBQVMsQ0FBQztRQU85QyxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1IsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsaUJBQWlCLENBQUM7WUFDN0QsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3JELENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFVBQVUsQ0FBQyxVQUFzQjtRQUM3QixJQUFJLENBQUMsc0JBQXNCLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDL0QsQ0FBQzs4R0F4QlEsOEJBQThCO2tHQUE5Qiw4QkFBOEIsbUlBUjVCO1lBQ1Asc0JBQXNCO1lBQ3RCO2dCQUNJLE9BQU8sRUFBRSxrQkFBa0I7Z0JBQzNCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsOEJBQThCLENBQUM7YUFDaEU7U0FDSixtUENoQ0wsNnZHQXFGQSxtRkQvRGMsZ0JBQWdCLCtGQUFFLG9CQUFvQixzSEFBRSx5QkFBeUIsaUtBQUUsbUJBQW1CLCtGQUFFLGdCQUFnQiwrSUFBRSxrQkFBa0I7OzJGQVk3SCw4QkFBOEI7a0JBckIxQyxTQUFTO2lDQUNNLElBQUksV0FRUCxDQUFDLGdCQUFnQixFQUFFLG9CQUFvQixFQUFFLHlCQUF5QixFQUFFLG1CQUFtQixFQUFFLGdCQUFnQixFQUFFLGtCQUFrQixDQUFDLFlBQzdILDZCQUE2QixtQkFFdEIsdUJBQXVCLENBQUMsTUFBTSxhQUNwQzt3QkFDUCxzQkFBc0I7d0JBQ3RCOzRCQUNJLE9BQU8sRUFBRSxrQkFBa0I7NEJBQzNCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLCtCQUErQixDQUFDO3lCQUNoRTtxQkFDSjt3REFhMkIsV0FBVztzQkFBdEMsWUFBWTt1QkFBQyxZQUFZO2dCQUNFLFVBQVU7c0JBQXJDLFlBQVk7dUJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgQ29udGVudENoaWxkLCBlZmZlY3QsIGZvcndhcmRSZWYsIGluamVjdCwgb3V0cHV0LCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRE9fTUFLRV9VU0VSX0NPTkZJUk1fUEFTU1dPUkQsIEtDX0NPTlRFWFQsIENMQVNTRVMsIFVTRV9ERUZBVUxUX0NTUyB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xpYi9wdWJsaWMtYXBpJztcbmltcG9ydCB7IENsYXNzS2V5IH0gZnJvbSAna2V5Y2xvYWtpZnkvbG9naW4vbGliL2tjQ2xzeCc7XG5pbXBvcnQgeyBLY0NvbnRleHQgfSBmcm9tICdrZXljbG9ha2lmeS9sb2dpbi9LY0NvbnRleHQnO1xuaW1wb3J0IHsgQ29tcG9uZW50UmVmZXJlbmNlIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vY2xhc3Nlcy9jb21wb25lbnQtcmVmZXJlbmNlLmNsYXNzJztcbmltcG9ydCB7IEtjQ2xhc3NEaXJlY3RpdmUgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9kaXJlY3RpdmVzL2tjLWNsYXNzLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBBZHZhbmNlZE1zZ1N0clBpcGUgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9waXBlcy9hZHZhbmNlZC1tc2ctc3RyLnBpcGUnO1xuaW1wb3J0IHsgRm9ybUFjdGlvbiwgVXNlclByb2ZpbGVGb3JtU2VydmljZSB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL3NlcnZpY2VzL3VzZXItcHJvZmlsZS1mb3JtLnNlcnZpY2UnO1xuaW1wb3J0IHsgRmllbGRFcnJvcnNDb21wb25lbnQgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9jb21wb25lbnRzL2ZpZWxkLWVycm9ycy9maWVsZC1lcnJvcnMuY29tcG9uZW50JztcbmltcG9ydCB7IEdyb3VwTGFiZWxDb21wb25lbnQgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9jb21wb25lbnRzL2dyb3VwLWxhYmVsL2dyb3VwLWxhYmVsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJbnB1dEZpZWxkQnlUeXBlQ29tcG9uZW50IH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vY29tcG9uZW50cy9pbnB1dC1maWVsZC1ieS10eXBlL2lucHV0LWZpZWxkLWJ5LXR5cGUuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzdHlsZXM6IFtcbiAgICAgICAgYFxuICAgICAgICAgICAgOmhvc3Qge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGNvbnRlbnRzO1xuICAgICAgICAgICAgfVxuICAgICAgICBgXG4gICAgXSxcbiAgICBpbXBvcnRzOiBbS2NDbGFzc0RpcmVjdGl2ZSwgRmllbGRFcnJvcnNDb21wb25lbnQsIElucHV0RmllbGRCeVR5cGVDb21wb25lbnQsIEdyb3VwTGFiZWxDb21wb25lbnQsIE5nVGVtcGxhdGVPdXRsZXQsIEFkdmFuY2VkTXNnU3RyUGlwZV0sXG4gICAgc2VsZWN0b3I6ICdrYy11c2VyLXByb2ZpbGUtZm9ybS1maWVsZHMnLFxuICAgIHRlbXBsYXRlVXJsOiAndXNlci1wcm9maWxlLWZvcm0tZmllbGRzLmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgVXNlclByb2ZpbGVGb3JtU2VydmljZSxcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogQ29tcG9uZW50UmVmZXJlbmNlLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVXNlclByb2ZpbGVGb3JtRmllbGRzQ29tcG9uZW50KVxuICAgICAgICB9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBVc2VyUHJvZmlsZUZvcm1GaWVsZHNDb21wb25lbnQgZXh0ZW5kcyBDb21wb25lbnRSZWZlcmVuY2Uge1xuICAgIGtjQ29udGV4dCA9IGluamVjdDxLY0NvbnRleHQ+KEtDX0NPTlRFWFQpO1xuICAgIHVzZXJQcm9maWxlRm9ybVNlcnZpY2UgPSBpbmplY3QoVXNlclByb2ZpbGVGb3JtU2VydmljZSk7XG4gICAgZG9NYWtlVXNlckNvbmZpcm1QYXNzd29yZCA9IGluamVjdChET19NQUtFX1VTRVJfQ09ORklSTV9QQVNTV09SRCk7XG4gICAgb3ZlcnJpZGUgZG9Vc2VEZWZhdWx0Q3NzID0gaW5qZWN0PGJvb2xlYW4+KFVTRV9ERUZBVUxUX0NTUyk7XG4gICAgb3ZlcnJpZGUgY2xhc3NlcyA9IGluamVjdDxQYXJ0aWFsPFJlY29yZDxDbGFzc0tleSwgc3RyaW5nPj4+KENMQVNTRVMpO1xuXG4gICAgb25Jc0Zvcm1TdWJtaXR0YWJsZSA9IG91dHB1dDxib29sZWFuPigpO1xuXG4gICAgZm9ybVN0YXRlID0gdGhpcy51c2VyUHJvZmlsZUZvcm1TZXJ2aWNlLmZvcm1TdGF0ZTtcblxuICAgIEBDb250ZW50Q2hpbGQoJ2JlZm9yRmllbGQnKSBiZWZvcmVGaWVsZDogVGVtcGxhdGVSZWY8dW5rbm93bj4gfCB1bmRlZmluZWQ7XG4gICAgQENvbnRlbnRDaGlsZCgnYWZ0ZXJGaWVsZCcpIGFmdGVyRmllbGQ6IFRlbXBsYXRlUmVmPHVua25vd24+IHwgdW5kZWZpbmVkO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBpc0Zvcm1TdWJtaXR0YWJsZSA9IHRoaXMuZm9ybVN0YXRlKCkuaXNGb3JtU3VibWl0dGFibGU7XG4gICAgICAgICAgICB0aGlzLm9uSXNGb3JtU3VibWl0dGFibGUuZW1pdChpc0Zvcm1TdWJtaXR0YWJsZSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG9uRGlzcGF0Y2goZm9ybUFjdGlvbjogRm9ybUFjdGlvbikge1xuICAgICAgICB0aGlzLnVzZXJQcm9maWxlRm9ybVNlcnZpY2UuZGlzcGF0Y2hGb3JtQWN0aW9uKGZvcm1BY3Rpb24pO1xuICAgIH1cbn1cbiIsIkBsZXQgZm9ybUZpZWxkU3RhdGVzID0gZm9ybVN0YXRlKCkuZm9ybUZpZWxkU3RhdGVzO1xuXG5AZm9yIChmaWVsZFN0YXRlIG9mIGZvcm1GaWVsZFN0YXRlczsgdHJhY2sgZmllbGRTdGF0ZS5hdHRyaWJ1dGUpIHtcbiAgICA8IS0tIFtncm91cE5hbWVSZWZdPVwiZ3JvdXBOYW1lUmVmXCJcbiAgVE9ETzogdmVyaWZ5IHRoaXMgbG9naWNcbiAgLS0+XG4gICAgPGtjLWdyb3VwLWxhYmVsIFthdHRyaWJ1dGVdPVwiZmllbGRTdGF0ZS5hdHRyaWJ1dGVcIj4gPC9rYy1ncm91cC1sYWJlbD5cblxuICAgIEBpZiAoYmVmb3JlRmllbGQpIHtcbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiYmVmb3JlRmllbGRcIlxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntcbiAgICAgICAgICAgICAgICBhdHRyaWJ1dGU6IGZpZWxkU3RhdGUuYXR0cmlidXRlLFxuICAgICAgICAgICAgICAgIHZhbHVlT3JWYWx1ZXM6IGZpZWxkU3RhdGUudmFsdWVPclZhbHVlcyxcbiAgICAgICAgICAgICAgICBkaXNwbGF5YWJsZUVycm9yczogZmllbGRTdGF0ZS5kaXNwbGF5YWJsZUVycm9yc1xuICAgICAgICAgICAgfVwiXG4gICAgICAgID5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgfVxuXG4gICAgPGRpdlxuICAgICAgICBba2NDbGFzc109XCIna2NGb3JtR3JvdXBDbGFzcydcIlxuICAgICAgICBbc3R5bGUuZGlzcGxheV09XCJmaWVsZFN0YXRlLmF0dHJpYnV0ZS5uYW1lID09PSAncGFzc3dvcmQtY29uZmlybScgJiYgIWRvTWFrZVVzZXJDb25maXJtUGFzc3dvcmQgPyAnbm9uZScgOiAnYmxvY2snXCJcbiAgICA+XG4gICAgICAgIDxkaXYgW2tjQ2xhc3NdPVwiJ2tjTGFiZWxXcmFwcGVyQ2xhc3MnXCI+XG4gICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgICBbZm9yXT1cImZpZWxkU3RhdGUuYXR0cmlidXRlLm5hbWVcIlxuICAgICAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY0xhYmVsQ2xhc3MnXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7eyBmaWVsZFN0YXRlLmF0dHJpYnV0ZS5kaXNwbGF5TmFtZSA/PyAnJyB8IGFkdmFuY2VkTXNnU3RyIH19XG4gICAgICAgICAgICAgICAgQGlmIChmaWVsZFN0YXRlLmF0dHJpYnV0ZS5yZXF1aXJlZCkge1xuICAgICAgICAgICAgICAgICAgICAqXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBba2NDbGFzc109XCIna2NJbnB1dFdyYXBwZXJDbGFzcydcIj5cbiAgICAgICAgICAgIEBpZiAoZmllbGRTdGF0ZS5hdHRyaWJ1dGUuYW5ub3RhdGlvbnMuaW5wdXRIZWxwZXJUZXh0QmVmb3JlKSB7XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBba2NDbGFzc109XCIna2NJbnB1dEhlbHBlclRleHRCZWZvcmVDbGFzcydcIlxuICAgICAgICAgICAgICAgICAgICBbaWRdPVwiJ2Zvcm0taGVscC10ZXh0LWJlZm9yZS0nICsgZmllbGRTdGF0ZS5hdHRyaWJ1dGUubmFtZVwiXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtbGl2ZT1cInBvbGl0ZVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7eyBmaWVsZFN0YXRlLmF0dHJpYnV0ZS5hbm5vdGF0aW9ucy5pbnB1dEhlbHBlclRleHRCZWZvcmUgfCBhZHZhbmNlZE1zZ1N0ciB9fVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICA8a2MtaW5wdXQtZmllbGQtYnktdHlwZVxuICAgICAgICAgICAgICAgIFthdHRyaWJ1dGVdPVwiZmllbGRTdGF0ZS5hdHRyaWJ1dGVcIlxuICAgICAgICAgICAgICAgIFt2YWx1ZU9yVmFsdWVzXT1cImZpZWxkU3RhdGUudmFsdWVPclZhbHVlc1wiXG4gICAgICAgICAgICAgICAgW2Rpc3BsYXlhYmxlRXJyb3JzXT1cImZpZWxkU3RhdGUuZGlzcGxheWFibGVFcnJvcnNcIlxuICAgICAgICAgICAgICAgIChkaXNwYXRjaEZvcm1BY3Rpb24pPVwib25EaXNwYXRjaCgkZXZlbnQpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwva2MtaW5wdXQtZmllbGQtYnktdHlwZT5cblxuICAgICAgICAgICAgPGtjLWZpZWxkLWVycm9yc1xuICAgICAgICAgICAgICAgIFthdHRyaWJ1dGVdPVwiZmllbGRTdGF0ZS5hdHRyaWJ1dGVcIlxuICAgICAgICAgICAgICAgIFtkaXNwbGF5YWJsZUVycm9yc109XCJmaWVsZFN0YXRlLmRpc3BsYXlhYmxlRXJyb3JzXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwva2MtZmllbGQtZXJyb3JzPlxuICAgICAgICAgICAgQGlmIChmaWVsZFN0YXRlLmF0dHJpYnV0ZS5hbm5vdGF0aW9ucy5pbnB1dEhlbHBlclRleHRBZnRlcikge1xuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjSW5wdXRIZWxwZXJUZXh0QWZ0ZXJDbGFzcydcIlxuICAgICAgICAgICAgICAgICAgICBbaWRdPVwiJ2Zvcm0taGVscC10ZXh0LWFmdGVyLScgKyBmaWVsZFN0YXRlLmF0dHJpYnV0ZS5uYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgYXJpYS1saXZlPVwicG9saXRlXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHt7IGZpZWxkU3RhdGUuYXR0cmlidXRlLmFubm90YXRpb25zLmlucHV0SGVscGVyVGV4dEFmdGVyIHwgYWR2YW5jZWRNc2dTdHIgfX1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGlmIChhZnRlckZpZWxkKSB7XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJhZnRlckZpZWxkXCJcbiAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZTogZmllbGRTdGF0ZS5hdHRyaWJ1dGUsXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZU9yVmFsdWVzOiBmaWVsZFN0YXRlLnZhbHVlT3JWYWx1ZXMsXG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5YWJsZUVycm9yczogZmllbGRTdGF0ZS5kaXNwbGF5YWJsZUVycm9yc1xuICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICA8IS0tIE5PVEU6IERvd25sb2FkaW5nIG9mIGh0bWw1RGF0YUFubm90YXRpb25zIHNjcmlwdHMgaXMgZG9uZSBpbiB0aGUgdXNlVXNlclByb2ZpbGVGb3JtIGhvb2sgLS0+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxufVxuIl19
@@ -1,11 +1,12 @@
1
- import { OnInit, Renderer2 } from "@angular/core";
2
- import { Meta, Title } from "@angular/platform-browser";
3
- import type { I18n } from "../../login/i18n";
4
- import { KcContext } from "keycloakify/login/KcContext/KcContext";
5
- import { ClassKey } from "keycloakify/login/lib/kcClsx";
6
- import { Observable } from "rxjs";
7
- import { ComponentReference } from "../../login/classes/component-reference.class";
8
- import { LoginResourceInjectorService } from "../../login/services/login-resource-injector.service";
1
+ import { OnInit, Renderer2 } from '@angular/core';
2
+ import { Meta, Title } from '@angular/platform-browser';
3
+ import type { I18n } from '../../login/i18n';
4
+ import { KcContext } from 'keycloakify/login/KcContext/KcContext';
5
+ import { ClassKey } from 'keycloakify/login/lib/kcClsx';
6
+ import { Observable } from 'rxjs';
7
+ import { ComponentReference } from '../../login/classes/component-reference.class';
8
+ import { LoginResourceInjectorService } from '../../login/services/login-resource-injector.service';
9
+ import * as i0 from "@angular/core";
9
10
  export declare class TemplateComponent extends ComponentReference implements OnInit {
10
11
  i18n: I18n;
11
12
  renderer: Renderer2;
@@ -25,4 +26,6 @@ export declare class TemplateComponent extends ComponentReference implements OnI
25
26
  ngOnInit(): void;
26
27
  private applyKcIndexClasses;
27
28
  tryAnotherWay(): void;
29
+ static ɵfac: i0.ɵɵFactoryDeclaration<TemplateComponent, never>;
30
+ static ɵcmp: i0.ɵɵComponentDeclaration<TemplateComponent, "kc-login-template", never, { "displayInfo": { "alias": "displayInfo"; "required": false; "isSignal": true; }; "displayMessage": { "alias": "displayMessage"; "required": false; "isSignal": true; }; "displayRequiredFields": { "alias": "displayRequiredFields"; "required": false; "isSignal": true; }; "documentTitle": { "alias": "documentTitle"; "required": false; "isSignal": true; }; "bodyClassName": { "alias": "bodyClassName"; "required": false; "isSignal": true; }; }, {}, never, ["[headerNode]", "[content]", "[socialProvidersNode]", "[infoNode]"], true, never>;
28
31
  }
@@ -0,0 +1,70 @@
1
+ import { AsyncPipe, NgTemplateOutlet } from '@angular/common';
2
+ import { ChangeDetectionStrategy, Component, forwardRef, inject, input, Renderer2 } from '@angular/core';
3
+ import { Meta, Title } from '@angular/platform-browser';
4
+ import { CLASSES, I18N, KC_CONTEXT, USE_DEFAULT_CSS } from '../../lib/public-api';
5
+ import { getKcClsx } from 'keycloakify/login/lib/kcClsx';
6
+ import { ComponentReference } from '../../login/classes/component-reference.class';
7
+ import { KcClassDirective } from '../../login/directives/kc-class.directive';
8
+ import { KcSanitizePipe } from '../../login/pipes';
9
+ import { MsgStrPipe } from '../../login/pipes/msg-str.pipe';
10
+ import { LoginResourceInjectorService } from '../../login/services/login-resource-injector.service';
11
+ import * as i0 from "@angular/core";
12
+ export class TemplateComponent extends ComponentReference {
13
+ constructor() {
14
+ super();
15
+ this.i18n = inject(I18N);
16
+ this.renderer = inject(Renderer2);
17
+ this.meta = inject(Meta);
18
+ this.title = inject(Title);
19
+ this.kcContext = inject(KC_CONTEXT);
20
+ this.doUseDefaultCss = inject(USE_DEFAULT_CSS);
21
+ this.classes = inject(CLASSES);
22
+ this.loginResourceInjectorService = inject(LoginResourceInjectorService);
23
+ this.displayInfo = input(false);
24
+ this.displayMessage = input(true);
25
+ this.displayRequiredFields = input(false);
26
+ this.documentTitle = input();
27
+ this.bodyClassName = input();
28
+ this.title.setTitle(this.documentTitle() ?? this.i18n.msgStr('loginTitle', this.kcContext.realm.displayName));
29
+ this.isReadyToRender$ = this.loginResourceInjectorService.injectResource(this.doUseDefaultCss);
30
+ }
31
+ ngOnInit() {
32
+ this.applyKcIndexClasses();
33
+ }
34
+ applyKcIndexClasses() {
35
+ const kcClsx = getKcClsx({
36
+ doUseDefaultCss: this.doUseDefaultCss,
37
+ classes: this.classes
38
+ }).kcClsx;
39
+ const kcBodyClass = this.bodyClassName() ?? kcClsx('kcBodyClass');
40
+ const kcHtmlClass = kcClsx('kcHtmlClass');
41
+ const kcBodyClasses = kcBodyClass.split(/\s+/);
42
+ const kcHtmlClasses = kcHtmlClass.split(/\s+/);
43
+ kcBodyClasses.forEach(klass => {
44
+ this.renderer.addClass(document.body, klass);
45
+ });
46
+ kcHtmlClasses.forEach(klass => {
47
+ this.renderer.addClass(document.documentElement, klass);
48
+ });
49
+ }
50
+ tryAnotherWay() {
51
+ document.forms['kc-select-try-another-way-form'].submit();
52
+ }
53
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: TemplateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
54
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.6", type: TemplateComponent, isStandalone: true, selector: "kc-login-template", inputs: { displayInfo: { classPropertyName: "displayInfo", publicName: "displayInfo", isSignal: true, isRequired: false, transformFunction: null }, displayMessage: { classPropertyName: "displayMessage", publicName: "displayMessage", isSignal: true, isRequired: false, transformFunction: null }, 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: [
55
+ {
56
+ provide: ComponentReference,
57
+ useExisting: forwardRef(() => TemplateComponent)
58
+ }
59
+ ], usesInheritance: true, ngImport: i0, template: "@let realm = kcContext.realm;\n@let message = kcContext.message;\n@let auth = kcContext.auth;\n@let isAppInitiatedAction = kcContext.isAppInitiatedAction;\n@let url = kcContext.url;\n@let isReadyToRender = isReadyToRender$ | async;\n\n@if (isReadyToRender) {\n <div [kcClass]=\"'kcLoginClass'\">\n <div\n id=\"kc-header\"\n [kcClass]=\"'kcHeaderClass'\"\n >\n <div\n id=\"kc-header-wrapper\"\n [kcClass]=\"'kcHeaderWrapperClass'\"\n >\n <div [innerHTML]=\"realm?.displayNameHtml | kcSanitize: 'html'\"></div>\n </div>\n </div>\n\n <div [kcClass]=\"'kcFormCardClass'\">\n <header [kcClass]=\"'kcFormHeaderClass'\">\n <!-- Locale switcher -->\n @if (i18n.enabledLanguages.length > 1) {\n <div\n id=\"kc-locale\"\n [kcClass]=\"'kcLocaleMainClass'\"\n >\n <div\n id=\"kc-locale-wrapper\"\n [kcClass]=\"'kcLocaleWrapperClass'\"\n >\n <div\n id=\"kc-locale-dropdown\"\n [kcClass]=\"'kcLocaleDropDownClass'\"\n class=\"menu-button-links\"\n >\n <button\n tabindex=\"1\"\n id=\"kc-current-locale-link\"\n [attr.aria-label]=\"'languages' | msgStr\"\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n aria-controls=\"language-switch1\"\n >\n {{ i18n.currentLanguage.label }}\n </button>\n <ul\n role=\"menu\"\n tabindex=\"-1\"\n aria-labelledby=\"kc-current-locale-link\"\n aria-activedescendant=\"\"\n id=\"language-switch1\"\n [kcClass]=\"'kcLocaleListClass'\"\n >\n @for (entry of i18n.enabledLanguages; track entry; let idx = $index) {\n <li\n [kcClass]=\"'kcLocaleListItemClass'\"\n role=\"none\"\n >\n <a\n role=\"menuitem\"\n tabindex=\"-1\"\n [href]=\"entry.href\"\n [kcClass]=\"'kcLocaleItemClass'\"\n [id]=\"'language-' + idx\"\n >\n {{ entry.label }}\n </a>\n </li>\n }\n </ul>\n </div>\n </div>\n </div>\n }\n\n <!-- Header content -->\n <ng-template #node>\n @if (auth && !auth.showUsername && !auth.showResetCredentials) {\n <h1 id=\"kc-page-title\">\n <ng-content select=\"[headerNode]\"></ng-content>\n </h1>\n } @else {\n <div\n id=\"kc-username\"\n [kcClass]=\"'kcFormGroupClass'\"\n >\n <label id=\"kc-attempted-username\">{{ auth?.attemptedUsername }}</label>\n <a\n id=\"reset-login\"\n [href]=\"url?.loginRestartFlowUrl\"\n [attr.aria-label]=\"'restartLoginTooltip' | msgStr\"\n >\n <div class=\"kc-login-tooltip\">\n <i [kcClass]=\"'kcResetFlowIcon'\"></i>\n <span class=\"kc-tooltip-text\">\n {{ 'restartLoginTooltip' | msgStr }}\n </span>\n </div>\n </a>\n </div>\n }\n </ng-template>\n\n @if (displayRequiredFields()) {\n <div [kcClass]=\"'kcContentWrapperClass'\">\n <div\n [kcClass]=\"'kcLabelWrapperClass'\"\n class=\"subtitle\"\n >\n <span class=\"subtitle\">\n <span class=\"required\">*</span>\n {{ 'requiredFields' | msgStr }}\n </span>\n </div>\n <div class=\"col-md-10\">\n <ng-container [ngTemplateOutlet]=\"node\"></ng-container>\n </div>\n </div>\n } @else {\n <ng-container [ngTemplateOutlet]=\"node\"></ng-container>\n }\n </header>\n\n <div id=\"kc-content\">\n <div id=\"kc-content-wrapper\">\n <!-- Message display -->\n @if (displayMessage() && message && (message.type !== 'warning' || !isAppInitiatedAction)) {\n <div\n [kcClass]=\"'kcAlertClass'\"\n [ngClass]=\"message.type === 'error' ? 'pf-m-danger' : 'pf-m-' + message.type\"\n [class]=\"'alert-' + message.type\"\n >\n <div class=\"pf-c-alert__icon\">\n @switch (message.type) {\n @case ('success') {\n <span [kcClass]=\"'kcFeedbackSuccessIcon'\"></span>\n }\n @case ('warning') {\n <span [kcClass]=\"'kcFeedbackWarningIcon'\"></span>\n }\n @case ('info') {\n <span [kcClass]=\"'kcFeedbackInfoIcon'\"></span>\n }\n @case ('error') {\n <span [kcClass]=\"'kcFeedbackErrorIcon'\"></span>\n }\n }\n </div>\n <span\n [kcClass]=\"'kcAlertTitleClass'\"\n [innerHTML]=\"message.summary | kcSanitize: 'html'\"\n ></span>\n </div>\n }\n <!-- Content -->\n <ng-content select=\"[content]\"></ng-content>\n @if (!!auth && auth?.showTryAnotherWayLink) {\n <form\n id=\"kc-select-try-another-way-form\"\n [action]=\"url?.loginAction\"\n method=\"post\"\n >\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div [kcClass]=\"'kcFormGroupClass'\">\n <input\n type=\"hidden\"\n name=\"tryAnotherWay\"\n value=\"on\"\n />\n <a\n id=\"try-another-way\"\n (click)=\"tryAnotherWay()\"\n >\n {{ 'doTryAnotherWay' | msgStr }}\n </a>\n </div>\n </div>\n </form>\n }\n\n <ng-content select=\"[socialProvidersNode]\"></ng-content>\n <!-- Info display -->\n @if (displayInfo()) {\n <div\n id=\"kc-info\"\n [kcClass]=\"'kcSignUpClass'\"\n >\n <div\n id=\"kc-info-wrapper\"\n [kcClass]=\"'kcInfoAreaWrapperClass'\"\n >\n <ng-content select=\"[infoNode]\"></ng-content>\n </div>\n </div>\n }\n </div>\n </div>\n </div>\n </div>\n}\n", dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: KcSanitizePipe, name: "kcSanitize" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: KcClassDirective, selector: "[kcClass]", inputs: ["class", "ngClass", "kcClass"] }, { kind: "pipe", type: MsgStrPipe, name: "msgStr" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
60
+ }
61
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: TemplateComponent, decorators: [{
62
+ type: Component,
63
+ args: [{ selector: 'kc-login-template', standalone: true, imports: [AsyncPipe, KcSanitizePipe, NgTemplateOutlet, KcClassDirective, MsgStrPipe], changeDetection: ChangeDetectionStrategy.OnPush, providers: [
64
+ {
65
+ provide: ComponentReference,
66
+ useExisting: forwardRef(() => TemplateComponent)
67
+ }
68
+ ], template: "@let realm = kcContext.realm;\n@let message = kcContext.message;\n@let auth = kcContext.auth;\n@let isAppInitiatedAction = kcContext.isAppInitiatedAction;\n@let url = kcContext.url;\n@let isReadyToRender = isReadyToRender$ | async;\n\n@if (isReadyToRender) {\n <div [kcClass]=\"'kcLoginClass'\">\n <div\n id=\"kc-header\"\n [kcClass]=\"'kcHeaderClass'\"\n >\n <div\n id=\"kc-header-wrapper\"\n [kcClass]=\"'kcHeaderWrapperClass'\"\n >\n <div [innerHTML]=\"realm?.displayNameHtml | kcSanitize: 'html'\"></div>\n </div>\n </div>\n\n <div [kcClass]=\"'kcFormCardClass'\">\n <header [kcClass]=\"'kcFormHeaderClass'\">\n <!-- Locale switcher -->\n @if (i18n.enabledLanguages.length > 1) {\n <div\n id=\"kc-locale\"\n [kcClass]=\"'kcLocaleMainClass'\"\n >\n <div\n id=\"kc-locale-wrapper\"\n [kcClass]=\"'kcLocaleWrapperClass'\"\n >\n <div\n id=\"kc-locale-dropdown\"\n [kcClass]=\"'kcLocaleDropDownClass'\"\n class=\"menu-button-links\"\n >\n <button\n tabindex=\"1\"\n id=\"kc-current-locale-link\"\n [attr.aria-label]=\"'languages' | msgStr\"\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n aria-controls=\"language-switch1\"\n >\n {{ i18n.currentLanguage.label }}\n </button>\n <ul\n role=\"menu\"\n tabindex=\"-1\"\n aria-labelledby=\"kc-current-locale-link\"\n aria-activedescendant=\"\"\n id=\"language-switch1\"\n [kcClass]=\"'kcLocaleListClass'\"\n >\n @for (entry of i18n.enabledLanguages; track entry; let idx = $index) {\n <li\n [kcClass]=\"'kcLocaleListItemClass'\"\n role=\"none\"\n >\n <a\n role=\"menuitem\"\n tabindex=\"-1\"\n [href]=\"entry.href\"\n [kcClass]=\"'kcLocaleItemClass'\"\n [id]=\"'language-' + idx\"\n >\n {{ entry.label }}\n </a>\n </li>\n }\n </ul>\n </div>\n </div>\n </div>\n }\n\n <!-- Header content -->\n <ng-template #node>\n @if (auth && !auth.showUsername && !auth.showResetCredentials) {\n <h1 id=\"kc-page-title\">\n <ng-content select=\"[headerNode]\"></ng-content>\n </h1>\n } @else {\n <div\n id=\"kc-username\"\n [kcClass]=\"'kcFormGroupClass'\"\n >\n <label id=\"kc-attempted-username\">{{ auth?.attemptedUsername }}</label>\n <a\n id=\"reset-login\"\n [href]=\"url?.loginRestartFlowUrl\"\n [attr.aria-label]=\"'restartLoginTooltip' | msgStr\"\n >\n <div class=\"kc-login-tooltip\">\n <i [kcClass]=\"'kcResetFlowIcon'\"></i>\n <span class=\"kc-tooltip-text\">\n {{ 'restartLoginTooltip' | msgStr }}\n </span>\n </div>\n </a>\n </div>\n }\n </ng-template>\n\n @if (displayRequiredFields()) {\n <div [kcClass]=\"'kcContentWrapperClass'\">\n <div\n [kcClass]=\"'kcLabelWrapperClass'\"\n class=\"subtitle\"\n >\n <span class=\"subtitle\">\n <span class=\"required\">*</span>\n {{ 'requiredFields' | msgStr }}\n </span>\n </div>\n <div class=\"col-md-10\">\n <ng-container [ngTemplateOutlet]=\"node\"></ng-container>\n </div>\n </div>\n } @else {\n <ng-container [ngTemplateOutlet]=\"node\"></ng-container>\n }\n </header>\n\n <div id=\"kc-content\">\n <div id=\"kc-content-wrapper\">\n <!-- Message display -->\n @if (displayMessage() && message && (message.type !== 'warning' || !isAppInitiatedAction)) {\n <div\n [kcClass]=\"'kcAlertClass'\"\n [ngClass]=\"message.type === 'error' ? 'pf-m-danger' : 'pf-m-' + message.type\"\n [class]=\"'alert-' + message.type\"\n >\n <div class=\"pf-c-alert__icon\">\n @switch (message.type) {\n @case ('success') {\n <span [kcClass]=\"'kcFeedbackSuccessIcon'\"></span>\n }\n @case ('warning') {\n <span [kcClass]=\"'kcFeedbackWarningIcon'\"></span>\n }\n @case ('info') {\n <span [kcClass]=\"'kcFeedbackInfoIcon'\"></span>\n }\n @case ('error') {\n <span [kcClass]=\"'kcFeedbackErrorIcon'\"></span>\n }\n }\n </div>\n <span\n [kcClass]=\"'kcAlertTitleClass'\"\n [innerHTML]=\"message.summary | kcSanitize: 'html'\"\n ></span>\n </div>\n }\n <!-- Content -->\n <ng-content select=\"[content]\"></ng-content>\n @if (!!auth && auth?.showTryAnotherWayLink) {\n <form\n id=\"kc-select-try-another-way-form\"\n [action]=\"url?.loginAction\"\n method=\"post\"\n >\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div [kcClass]=\"'kcFormGroupClass'\">\n <input\n type=\"hidden\"\n name=\"tryAnotherWay\"\n value=\"on\"\n />\n <a\n id=\"try-another-way\"\n (click)=\"tryAnotherWay()\"\n >\n {{ 'doTryAnotherWay' | msgStr }}\n </a>\n </div>\n </div>\n </form>\n }\n\n <ng-content select=\"[socialProvidersNode]\"></ng-content>\n <!-- Info display -->\n @if (displayInfo()) {\n <div\n id=\"kc-info\"\n [kcClass]=\"'kcSignUpClass'\"\n >\n <div\n id=\"kc-info-wrapper\"\n [kcClass]=\"'kcInfoAreaWrapperClass'\"\n >\n <ng-content select=\"[infoNode]\"></ng-content>\n </div>\n </div>\n }\n </div>\n </div>\n </div>\n </div>\n}\n" }]
69
+ }], ctorParameters: () => [] });
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2V5Y2xvYWtpZnktYW5ndWxhci9zcmMvbG9naW4vY29udGFpbmVycy90ZW1wbGF0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rZXljbG9ha2lmeS1hbmd1bGFyL3NyYy9sb2dpbi9jb250YWluZXJzL3RlbXBsYXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqSCxPQUFPLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxlQUFlLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUdqRyxPQUFPLEVBQVksU0FBUyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFbkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOERBQThELENBQUM7QUFDbEcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFDNUYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxxRUFBcUUsQ0FBQzs7QUFlbkgsTUFBTSxPQUFPLGlCQUFrQixTQUFRLGtCQUFrQjtJQWtCckQ7UUFDSSxLQUFLLEVBQUUsQ0FBQztRQWxCWixTQUFJLEdBQUcsTUFBTSxDQUFPLElBQUksQ0FBQyxDQUFDO1FBQzFCLGFBQVEsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDN0IsU0FBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwQixVQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RCLGNBQVMsR0FBRyxNQUFNLENBQVksVUFBVSxDQUFDLENBQUM7UUFDakMsb0JBQWUsR0FBRyxNQUFNLENBQVUsZUFBZSxDQUFDLENBQUM7UUFDbkQsWUFBTyxHQUFHLE1BQU0sQ0FBb0MsT0FBTyxDQUFDLENBQUM7UUFDdEUsaUNBQTRCLEdBQUcsTUFBTSxDQUFDLDRCQUE0QixDQUFDLENBQUM7UUFFcEUsZ0JBQVcsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0IsbUJBQWMsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0IsMEJBQXFCLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JDLGtCQUFhLEdBQUcsS0FBSyxFQUFVLENBQUM7UUFDaEMsa0JBQWEsR0FBRyxLQUFLLEVBQVUsQ0FBQztRQU01QixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7UUFDOUcsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ25HLENBQUM7SUFFRCxRQUFRO1FBQ0osSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVPLG1CQUFtQjtRQUN2QixNQUFNLE1BQU0sR0FBRyxTQUFTLENBQUM7WUFDckIsZUFBZSxFQUFFLElBQUksQ0FBQyxlQUFlO1lBQ3JDLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztTQUN4QixDQUFDLENBQUMsTUFBTSxDQUFDO1FBQ1YsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxJQUFJLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNsRSxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDMUMsTUFBTSxhQUFhLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMvQyxNQUFNLGFBQWEsR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQy9DLGFBQWEsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDMUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNqRCxDQUFDLENBQUMsQ0FBQztRQUNILGFBQWEsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDMUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLGVBQWUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM1RCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxhQUFhO1FBQ1QsUUFBUSxDQUFDLEtBQUssQ0FBQyxnQ0FBeUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ3ZFLENBQUM7OEdBL0NRLGlCQUFpQjtrR0FBakIsaUJBQWlCLGl6QkFQZjtZQUNQO2dCQUNJLE9BQU8sRUFBRSxrQkFBa0I7Z0JBQzNCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsaUJBQWlCLENBQUM7YUFDbkQ7U0FDSixpREN6QkwsODlTQTJNQSx1Q0R6TGMsU0FBUyx5Q0FBRSxjQUFjLG1EQUFFLGdCQUFnQixvSkFBRSxnQkFBZ0IsMEZBQUUsVUFBVTs7MkZBUzFFLGlCQUFpQjtrQkFiN0IsU0FBUzsrQkFDSSxtQkFBbUIsY0FFakIsSUFBSSxXQUNQLENBQUMsU0FBUyxFQUFFLGNBQWMsRUFBRSxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBRSxVQUFVLENBQUMsbUJBQ25FLHVCQUF1QixDQUFDLE1BQU0sYUFDcEM7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLGtCQUFrQjs0QkFDM0IsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsa0JBQWtCLENBQUM7eUJBQ25EO3FCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXN5bmNQaXBlLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGZvcndhcmRSZWYsIGluamVjdCwgaW5wdXQsIE9uSW5pdCwgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNZXRhLCBUaXRsZSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgQ0xBU1NFUywgSTE4TiwgS0NfQ09OVEVYVCwgVVNFX0RFRkFVTFRfQ1NTIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbGliL3B1YmxpYy1hcGknO1xuaW1wb3J0IHR5cGUgeyBJMThuIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vaTE4bic7XG5pbXBvcnQgeyBLY0NvbnRleHQgfSBmcm9tICdrZXljbG9ha2lmeS9sb2dpbi9LY0NvbnRleHQvS2NDb250ZXh0JztcbmltcG9ydCB7IENsYXNzS2V5LCBnZXRLY0Nsc3ggfSBmcm9tICdrZXljbG9ha2lmeS9sb2dpbi9saWIva2NDbHN4JztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENvbXBvbmVudFJlZmVyZW5jZSB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL2NsYXNzZXMvY29tcG9uZW50LXJlZmVyZW5jZS5jbGFzcyc7XG5pbXBvcnQgeyBLY0NsYXNzRGlyZWN0aXZlIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vZGlyZWN0aXZlcy9rYy1jbGFzcy5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgS2NTYW5pdGl6ZVBpcGUgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9waXBlcyc7XG5pbXBvcnQgeyBNc2dTdHJQaXBlIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vcGlwZXMvbXNnLXN0ci5waXBlJztcbmltcG9ydCB7IExvZ2luUmVzb3VyY2VJbmplY3RvclNlcnZpY2UgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9zZXJ2aWNlcy9sb2dpbi1yZXNvdXJjZS1pbmplY3Rvci5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdrYy1sb2dpbi10ZW1wbGF0ZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3RlbXBsYXRlLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtBc3luY1BpcGUsIEtjU2FuaXRpemVQaXBlLCBOZ1RlbXBsYXRlT3V0bGV0LCBLY0NsYXNzRGlyZWN0aXZlLCBNc2dTdHJQaXBlXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogQ29tcG9uZW50UmVmZXJlbmNlLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVGVtcGxhdGVDb21wb25lbnQpXG4gICAgICAgIH1cbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIFRlbXBsYXRlQ29tcG9uZW50IGV4dGVuZHMgQ29tcG9uZW50UmVmZXJlbmNlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBpMThuID0gaW5qZWN0PEkxOG4+KEkxOE4pO1xuICAgIHJlbmRlcmVyID0gaW5qZWN0KFJlbmRlcmVyMik7XG4gICAgbWV0YSA9IGluamVjdChNZXRhKTtcbiAgICB0aXRsZSA9IGluamVjdChUaXRsZSk7XG4gICAga2NDb250ZXh0ID0gaW5qZWN0PEtjQ29udGV4dD4oS0NfQ09OVEVYVCk7XG4gICAgb3ZlcnJpZGUgZG9Vc2VEZWZhdWx0Q3NzID0gaW5qZWN0PGJvb2xlYW4+KFVTRV9ERUZBVUxUX0NTUyk7XG4gICAgb3ZlcnJpZGUgY2xhc3NlcyA9IGluamVjdDxQYXJ0aWFsPFJlY29yZDxDbGFzc0tleSwgc3RyaW5nPj4+KENMQVNTRVMpO1xuICAgIGxvZ2luUmVzb3VyY2VJbmplY3RvclNlcnZpY2UgPSBpbmplY3QoTG9naW5SZXNvdXJjZUluamVjdG9yU2VydmljZSk7XG5cbiAgICBkaXNwbGF5SW5mbyA9IGlucHV0KGZhbHNlKTtcbiAgICBkaXNwbGF5TWVzc2FnZSA9IGlucHV0KHRydWUpO1xuICAgIGRpc3BsYXlSZXF1aXJlZEZpZWxkcyA9IGlucHV0KGZhbHNlKTtcbiAgICBkb2N1bWVudFRpdGxlID0gaW5wdXQ8c3RyaW5nPigpO1xuICAgIGJvZHlDbGFzc05hbWUgPSBpbnB1dDxzdHJpbmc+KCk7XG5cbiAgICBpc1JlYWR5VG9SZW5kZXIkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMudGl0bGUuc2V0VGl0bGUodGhpcy5kb2N1bWVudFRpdGxlKCkgPz8gdGhpcy5pMThuLm1zZ1N0cignbG9naW5UaXRsZScsIHRoaXMua2NDb250ZXh0LnJlYWxtLmRpc3BsYXlOYW1lKSk7XG4gICAgICAgIHRoaXMuaXNSZWFkeVRvUmVuZGVyJCA9IHRoaXMubG9naW5SZXNvdXJjZUluamVjdG9yU2VydmljZS5pbmplY3RSZXNvdXJjZSh0aGlzLmRvVXNlRGVmYXVsdENzcyk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuYXBwbHlLY0luZGV4Q2xhc3NlcygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXBwbHlLY0luZGV4Q2xhc3NlcygpIHtcbiAgICAgICAgY29uc3Qga2NDbHN4ID0gZ2V0S2NDbHN4KHtcbiAgICAgICAgICAgIGRvVXNlRGVmYXVsdENzczogdGhpcy5kb1VzZURlZmF1bHRDc3MsXG4gICAgICAgICAgICBjbGFzc2VzOiB0aGlzLmNsYXNzZXNcbiAgICAgICAgfSkua2NDbHN4O1xuICAgICAgICBjb25zdCBrY0JvZHlDbGFzcyA9IHRoaXMuYm9keUNsYXNzTmFtZSgpID8/IGtjQ2xzeCgna2NCb2R5Q2xhc3MnKTtcbiAgICAgICAgY29uc3Qga2NIdG1sQ2xhc3MgPSBrY0Nsc3goJ2tjSHRtbENsYXNzJyk7XG4gICAgICAgIGNvbnN0IGtjQm9keUNsYXNzZXMgPSBrY0JvZHlDbGFzcy5zcGxpdCgvXFxzKy8pO1xuICAgICAgICBjb25zdCBrY0h0bWxDbGFzc2VzID0ga2NIdG1sQ2xhc3Muc3BsaXQoL1xccysvKTtcbiAgICAgICAga2NCb2R5Q2xhc3Nlcy5mb3JFYWNoKGtsYXNzID0+IHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MoZG9jdW1lbnQuYm9keSwga2xhc3MpO1xuICAgICAgICB9KTtcbiAgICAgICAga2NIdG1sQ2xhc3Nlcy5mb3JFYWNoKGtsYXNzID0+IHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LCBrbGFzcyk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHRyeUFub3RoZXJXYXkoKSB7XG4gICAgICAgIGRvY3VtZW50LmZvcm1zWydrYy1zZWxlY3QtdHJ5LWFub3RoZXItd2F5LWZvcm0nIGFzIG5ldmVyXS5zdWJtaXQoKTtcbiAgICB9XG59XG4iLCJAbGV0IHJlYWxtID0ga2NDb250ZXh0LnJlYWxtO1xuQGxldCBtZXNzYWdlID0ga2NDb250ZXh0Lm1lc3NhZ2U7XG5AbGV0IGF1dGggPSBrY0NvbnRleHQuYXV0aDtcbkBsZXQgaXNBcHBJbml0aWF0ZWRBY3Rpb24gPSBrY0NvbnRleHQuaXNBcHBJbml0aWF0ZWRBY3Rpb247XG5AbGV0IHVybCA9IGtjQ29udGV4dC51cmw7XG5AbGV0IGlzUmVhZHlUb1JlbmRlciA9IGlzUmVhZHlUb1JlbmRlciQgfCBhc3luYztcblxuQGlmIChpc1JlYWR5VG9SZW5kZXIpIHtcbiAgICA8ZGl2IFtrY0NsYXNzXT1cIidrY0xvZ2luQ2xhc3MnXCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgIGlkPVwia2MtaGVhZGVyXCJcbiAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY0hlYWRlckNsYXNzJ1wiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBpZD1cImtjLWhlYWRlci13cmFwcGVyXCJcbiAgICAgICAgICAgICAgICBba2NDbGFzc109XCIna2NIZWFkZXJXcmFwcGVyQ2xhc3MnXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8ZGl2IFtpbm5lckhUTUxdPVwicmVhbG0/LmRpc3BsYXlOYW1lSHRtbCB8IGtjU2FuaXRpemU6ICdodG1sJ1wiPjwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgW2tjQ2xhc3NdPVwiJ2tjRm9ybUNhcmRDbGFzcydcIj5cbiAgICAgICAgICAgIDxoZWFkZXIgW2tjQ2xhc3NdPVwiJ2tjRm9ybUhlYWRlckNsYXNzJ1wiPlxuICAgICAgICAgICAgICAgIDwhLS0gTG9jYWxlIHN3aXRjaGVyIC0tPlxuICAgICAgICAgICAgICAgIEBpZiAoaTE4bi5lbmFibGVkTGFuZ3VhZ2VzLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJrYy1sb2NhbGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjTG9jYWxlTWFpbkNsYXNzJ1wiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImtjLWxvY2FsZS13cmFwcGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBba2NDbGFzc109XCIna2NMb2NhbGVXcmFwcGVyQ2xhc3MnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwia2MtbG9jYWxlLWRyb3Bkb3duXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjTG9jYWxlRHJvcERvd25DbGFzcydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1lbnUtYnV0dG9uLWxpbmtzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYmluZGV4PVwiMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImtjLWN1cnJlbnQtbG9jYWxlLWxpbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInbGFuZ3VhZ2VzJyB8IG1zZ1N0clwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWhhc3BvcHVwPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWV4cGFuZGVkPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1jb250cm9scz1cImxhbmd1YWdlLXN3aXRjaDFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpMThuLmN1cnJlbnRMYW5ndWFnZS5sYWJlbCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb2xlPVwibWVudVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWxsZWRieT1cImtjLWN1cnJlbnQtbG9jYWxlLWxpbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1hY3RpdmVkZXNjZW5kYW50PVwiXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwibGFuZ3VhZ2Utc3dpdGNoMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBba2NDbGFzc109XCIna2NMb2NhbGVMaXN0Q2xhc3MnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAoZW50cnkgb2YgaTE4bi5lbmFibGVkTGFuZ3VhZ2VzOyB0cmFjayBlbnRyeTsgbGV0IGlkeCA9ICRpbmRleCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBba2NDbGFzc109XCIna2NMb2NhbGVMaXN0SXRlbUNsYXNzJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb2xlPVwibWVudWl0ZW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaHJlZl09XCJlbnRyeS5ocmVmXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY0xvY2FsZUl0ZW1DbGFzcydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lkXT1cIidsYW5ndWFnZS0nICsgaWR4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZW50cnkubGFiZWwgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgPCEtLSBIZWFkZXIgY29udGVudCAtLT5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vZGU+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoYXV0aCAmJiAhYXV0aC5zaG93VXNlcm5hbWUgJiYgIWF1dGguc2hvd1Jlc2V0Q3JlZGVudGlhbHMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxoMSBpZD1cImtjLXBhZ2UtdGl0bGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbaGVhZGVyTm9kZV1cIj48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2gxPlxuICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImtjLXVzZXJuYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBba2NDbGFzc109XCIna2NGb3JtR3JvdXBDbGFzcydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBpZD1cImtjLWF0dGVtcHRlZC11c2VybmFtZVwiPnt7IGF1dGg/LmF0dGVtcHRlZFVzZXJuYW1lIH19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cInJlc2V0LWxvZ2luXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hyZWZdPVwidXJsPy5sb2dpblJlc3RhcnRGbG93VXJsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCIncmVzdGFydExvZ2luVG9vbHRpcCcgfCBtc2dTdHJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImtjLWxvZ2luLXRvb2x0aXBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIFtrY0NsYXNzXT1cIidrY1Jlc2V0Rmxvd0ljb24nXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJrYy10b29sdGlwLXRleHRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAncmVzdGFydExvZ2luVG9vbHRpcCcgfCBtc2dTdHIgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICAgICAgICAgICAgQGlmIChkaXNwbGF5UmVxdWlyZWRGaWVsZHMoKSkge1xuICAgICAgICAgICAgICAgICAgICA8ZGl2IFtrY0NsYXNzXT1cIidrY0NvbnRlbnRXcmFwcGVyQ2xhc3MnXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjTGFiZWxXcmFwcGVyQ2xhc3MnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInN1YnRpdGxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN1YnRpdGxlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicmVxdWlyZWRcIj4qPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAncmVxdWlyZWRGaWVsZHMnIHwgbXNnU3RyIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJub2RlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwibm9kZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvaGVhZGVyPlxuXG4gICAgICAgICAgICA8ZGl2IGlkPVwia2MtY29udGVudFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJrYy1jb250ZW50LXdyYXBwZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPCEtLSBNZXNzYWdlIGRpc3BsYXkgLS0+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoZGlzcGxheU1lc3NhZ2UoKSAmJiBtZXNzYWdlICYmIChtZXNzYWdlLnR5cGUgIT09ICd3YXJuaW5nJyB8fCAhaXNBcHBJbml0aWF0ZWRBY3Rpb24pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjQWxlcnRDbGFzcydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIm1lc3NhZ2UudHlwZSA9PT0gJ2Vycm9yJyA/ICdwZi1tLWRhbmdlcicgOiAncGYtbS0nICsgbWVzc2FnZS50eXBlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3NdPVwiJ2FsZXJ0LScgKyBtZXNzYWdlLnR5cGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwZi1jLWFsZXJ0X19pY29uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBzd2l0Y2ggKG1lc3NhZ2UudHlwZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGNhc2UgKCdzdWNjZXNzJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIFtrY0NsYXNzXT1cIidrY0ZlZWRiYWNrU3VjY2Vzc0ljb24nXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGNhc2UgKCd3YXJuaW5nJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIFtrY0NsYXNzXT1cIidrY0ZlZWRiYWNrV2FybmluZ0ljb24nXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGNhc2UgKCdpbmZvJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIFtrY0NsYXNzXT1cIidrY0ZlZWRiYWNrSW5mb0ljb24nXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGNhc2UgKCdlcnJvcicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBba2NDbGFzc109XCIna2NGZWVkYmFja0Vycm9ySWNvbidcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBba2NDbGFzc109XCIna2NBbGVydFRpdGxlQ2xhc3MnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJtZXNzYWdlLnN1bW1hcnkgfCBrY1Nhbml0aXplOiAnaHRtbCdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8IS0tIENvbnRlbnQgLS0+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltjb250ZW50XVwiPjwvbmctY29udGVudD5cbiAgICAgICAgICAgICAgICAgICAgQGlmICghIWF1dGggJiYgYXV0aD8uc2hvd1RyeUFub3RoZXJXYXlMaW5rKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8Zm9ybVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwia2Mtc2VsZWN0LXRyeS1hbm90aGVyLXdheS1mb3JtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYWN0aW9uXT1cInVybD8ubG9naW5BY3Rpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZD1cInBvc3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgW2tjQ2xhc3NdPVwiJ2tjRm9ybUdyb3VwQ2xhc3MnXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgW2tjQ2xhc3NdPVwiJ2tjRm9ybUdyb3VwQ2xhc3MnXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiaGlkZGVuXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwidHJ5QW5vdGhlcldheVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9XCJvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cInRyeS1hbm90aGVyLXdheVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInRyeUFub3RoZXJXYXkoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgJ2RvVHJ5QW5vdGhlcldheScgfCBtc2dTdHIgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Zvcm0+XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbc29jaWFsUHJvdmlkZXJzTm9kZV1cIj48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgIDwhLS0gSW5mbyBkaXNwbGF5IC0tPlxuICAgICAgICAgICAgICAgICAgICBAaWYgKGRpc3BsYXlJbmZvKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImtjLWluZm9cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY1NpZ25VcENsYXNzJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImtjLWluZm8td3JhcHBlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY0luZm9BcmVhV3JhcHBlckNsYXNzJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbaW5mb05vZGVdXCI+PC9uZy1jb250ZW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbn1cbiJdfQ==
@@ -1,5 +1,8 @@
1
+ import * as i0 from "@angular/core";
1
2
  export declare class AttributesDirective {
2
3
  #private;
3
4
  kcAttributes: import("@angular/core").InputSignal<Record<string, string> | undefined>;
4
5
  constructor();
6
+ static ɵfac: i0.ɵɵFactoryDeclaration<AttributesDirective, never>;
7
+ static ɵdir: i0.ɵɵDirectiveDeclaration<AttributesDirective, "[kcAttributes]", never, { "kcAttributes": { "alias": "kcAttributes"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
5
8
  }
@@ -0,0 +1,26 @@
1
+ import { Directive, effect, ElementRef, inject, input, Renderer2 } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class AttributesDirective {
4
+ #el;
5
+ #renderer;
6
+ constructor() {
7
+ this.kcAttributes = input();
8
+ this.#el = inject(ElementRef);
9
+ this.#renderer = inject(Renderer2);
10
+ effect(() => {
11
+ const attributes = this.kcAttributes();
12
+ if (attributes) {
13
+ Object.entries(attributes).forEach(([key, value]) => {
14
+ this.#renderer.setAttribute(this.#el.nativeElement, `data-${key}`, value);
15
+ });
16
+ }
17
+ });
18
+ }
19
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: AttributesDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
20
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.6", type: AttributesDirective, isStandalone: true, selector: "[kcAttributes]", inputs: { kcAttributes: { classPropertyName: "kcAttributes", publicName: "kcAttributes", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
21
+ }
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: AttributesDirective, decorators: [{
23
+ type: Directive,
24
+ args: [{ selector: '[kcAttributes]', standalone: true }]
25
+ }], ctorParameters: () => [] });
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0cmlidXRlcy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rZXljbG9ha2lmeS1hbmd1bGFyL3NyYy9sb2dpbi9kaXJlY3RpdmVzL2F0dHJpYnV0ZXMuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFHeEYsTUFBTSxPQUFPLG1CQUFtQjtJQUVuQixHQUFHLENBQStDO0lBQ2xELFNBQVMsQ0FBcUI7SUFFdkM7UUFKQSxpQkFBWSxHQUFHLEtBQUssRUFBMEIsQ0FBQztRQUN0QyxRQUFHLEdBQUcsTUFBTSxDQUEwQixVQUFVLENBQUMsQ0FBQztRQUNsRCxjQUFTLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBR25DLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDUixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDdkMsSUFBSSxVQUFVLEVBQUUsQ0FBQztnQkFDYixNQUFNLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUU7b0JBQ2hELElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUN2QixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFDdEIsUUFBUSxHQUFHLEVBQUUsRUFDYixLQUFLLENBQ1IsQ0FBQztnQkFDTixDQUFDLENBQUMsQ0FBQztZQUNQLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7OEdBbEJRLG1CQUFtQjtrR0FBbkIsbUJBQW1COzsyRkFBbkIsbUJBQW1CO2tCQUQvQixTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIGVmZmVjdCwgRWxlbWVudFJlZiwgaW5qZWN0LCBpbnB1dCwgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ1trY0F0dHJpYnV0ZXNdJywgc3RhbmRhbG9uZTogdHJ1ZSB9KVxuZXhwb3J0IGNsYXNzIEF0dHJpYnV0ZXNEaXJlY3RpdmUge1xuICAgIGtjQXR0cmlidXRlcyA9IGlucHV0PFJlY29yZDxzdHJpbmcsIHN0cmluZz4+KCk7XG4gICAgcmVhZG9ubHkgI2VsID0gaW5qZWN0PEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PihFbGVtZW50UmVmKTtcbiAgICByZWFkb25seSAjcmVuZGVyZXIgPSBpbmplY3QoUmVuZGVyZXIyKTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgYXR0cmlidXRlcyA9IHRoaXMua2NBdHRyaWJ1dGVzKCk7XG4gICAgICAgICAgICBpZiAoYXR0cmlidXRlcykge1xuICAgICAgICAgICAgICAgIE9iamVjdC5lbnRyaWVzKGF0dHJpYnV0ZXMpLmZvckVhY2goKFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLiNyZW5kZXJlci5zZXRBdHRyaWJ1dGUoXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLiNlbC5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgYGRhdGEtJHtrZXl9YCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,2 +1,2 @@
1
- export * from "./attributes.directive";
2
- export * from "./kc-class.directive";
1
+ export * from './attributes.directive';
2
+ export * from './kc-class.directive';
@@ -0,0 +1,3 @@
1
+ export * from './attributes.directive';
2
+ export * from './kc-class.directive';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rZXljbG9ha2lmeS1hbmd1bGFyL3NyYy9sb2dpbi9kaXJlY3RpdmVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxzQkFBc0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYXR0cmlidXRlcy5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9rYy1jbGFzcy5kaXJlY3RpdmUnO1xuIl19
@@ -1,5 +1,6 @@
1
- import { DoCheck } from "@angular/core";
2
- import { ClassKey } from "keycloakify/login/lib/kcClsx";
1
+ import { DoCheck } from '@angular/core';
2
+ import { ClassKey } from 'keycloakify/login/lib/kcClsx';
3
+ import * as i0 from "@angular/core";
3
4
  type KcClassSupportedTypes = ClassKey[] | Set<ClassKey> | Partial<{
4
5
  [key in ClassKey]: any;
5
6
  }> | null | undefined;
@@ -19,5 +20,7 @@ export declare class KcClassDirective implements DoCheck {
19
20
  private _updateState;
20
21
  private _applyStateDiff;
21
22
  private _toggleClass;
23
+ static ɵfac: i0.ɵɵFactoryDeclaration<KcClassDirective, never>;
24
+ static ɵdir: i0.ɵɵDirectiveDeclaration<KcClassDirective, "[kcClass]", never, { "klass": { "alias": "class"; "required": false; }; "ngClass": { "alias": "ngClass"; "required": false; }; "kcClass": { "alias": "kcClass"; "required": false; }; }, {}, never, never, true, never>;
22
25
  }
23
26
  export {};