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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (316) hide show
  1. package/lib/tokens/use-default-css.token.d.ts +2 -0
  2. package/lib/tokens/use-default-css.token.js +3 -0
  3. package/login/components/add-remove-buttons-multi-valued-attribute/add-remove-buttons-multi-valued-attribute.component.d.ts +3 -1
  4. package/login/components/add-remove-buttons-multi-valued-attribute/add-remove-buttons-multi-valued-attribute.component.js +106 -0
  5. package/login/components/field-errors/field-errors.component.d.ts +2 -2
  6. package/login/components/field-errors/{field-errors.component.mjs → field-errors.component.js} +4 -3
  7. package/login/components/group-label/group-label.component.d.ts +3 -1
  8. package/login/components/group-label/group-label.component.js +43 -0
  9. package/login/components/input-field-by-type/{input-field-by-type.component.mjs → input-field-by-type.component.js} +4 -3
  10. package/login/components/input-tag/input-tag.component.d.ts +4 -2
  11. package/login/components/input-tag/input-tag.component.js +90 -0
  12. package/login/components/input-tag-selects/input-tag-selects.component.d.ts +4 -2
  13. package/login/components/input-tag-selects/input-tag-selects.component.js +117 -0
  14. package/login/components/logout-other-sessions/logout-other-sessions.component.d.ts +3 -1
  15. package/login/components/logout-other-sessions/logout-other-sessions.component.js +32 -0
  16. package/login/components/password-wrapper/password-wrapper.component.d.ts +3 -1
  17. package/login/components/password-wrapper/password-wrapper.component.js +46 -0
  18. package/login/components/select-tag/select-tag.component.d.ts +4 -2
  19. package/login/components/select-tag/select-tag.component.js +82 -0
  20. package/login/components/textarea-tag/textarea-tag.component.js +49 -0
  21. package/login/components/user-profile-form-fields/user-profile-form-fields.component.d.ts +4 -2
  22. package/login/components/user-profile-form-fields/user-profile-form-fields.component.js +59 -0
  23. package/login/containers/template.component.js +72 -0
  24. package/login/pages/code/code.component.d.ts +4 -2
  25. package/login/pages/code/code.component.js +35 -0
  26. package/login/pages/delete-account-confirm/delete-account-confirm.component.d.ts +4 -2
  27. package/login/pages/delete-account-confirm/delete-account-confirm.component.js +35 -0
  28. package/login/pages/delete-credential/delete-credential.component.d.ts +4 -2
  29. package/login/pages/delete-credential/delete-credential.component.js +40 -0
  30. package/login/pages/error/error.component.d.ts +4 -2
  31. package/login/pages/error/error.component.js +35 -0
  32. package/login/pages/frontchannel-logout/frontchannel-logout.component.d.ts +4 -2
  33. package/login/pages/frontchannel-logout/frontchannel-logout.component.js +44 -0
  34. package/login/pages/idp-review-user-profile/idp-review-user-profile.component.d.ts +4 -2
  35. package/login/pages/idp-review-user-profile/idp-review-user-profile.component.js +45 -0
  36. package/login/pages/info/info.component.d.ts +4 -8
  37. package/login/pages/info/info.component.js +49 -0
  38. package/login/pages/login/login.component.d.ts +4 -2
  39. package/login/pages/login/login.component.js +44 -0
  40. package/login/pages/login-config-totp/login-config-totp.component.d.ts +4 -2
  41. package/login/pages/login-config-totp/login-config-totp.component.js +42 -0
  42. package/login/pages/login-idp-link-confirm/login-idp-link-confirm.component.d.ts +4 -2
  43. package/login/pages/login-idp-link-confirm/login-idp-link-confirm.component.js +40 -0
  44. package/login/pages/login-idp-link-confirm-override/login-idp-link-confirm-override.component.d.ts +4 -2
  45. package/login/pages/login-idp-link-confirm-override/login-idp-link-confirm-override.component.js +40 -0
  46. package/login/pages/login-idp-link-email/login-idp-link-email.component.d.ts +4 -2
  47. package/login/pages/login-idp-link-email/login-idp-link-email.component.js +40 -0
  48. package/login/pages/login-oauth-grant/login-oauth-grant.component.d.ts +4 -2
  49. package/login/pages/login-oauth-grant/login-oauth-grant.component.js +40 -0
  50. package/login/pages/login-oauth2-device-verify-user-code/login-oauth2-device-verify-user-code.component.d.ts +4 -2
  51. package/login/pages/login-oauth2-device-verify-user-code/login-oauth2-device-verify-user-code.component.js +40 -0
  52. package/login/pages/login-otp/login-otp.component.d.ts +4 -2
  53. package/login/pages/login-otp/login-otp.component.js +41 -0
  54. package/login/pages/login-page-expired/login-page-expired.component.d.ts +4 -2
  55. package/login/pages/login-page-expired/login-page-expired.component.js +39 -0
  56. package/login/pages/login-passkeys-conditional-authenticate/login-passkeys-conditional-authenticate.component.d.ts +5 -5
  57. package/login/pages/login-passkeys-conditional-authenticate/login-passkeys-conditional-authenticate.component.js +84 -0
  58. package/login/pages/login-password/login-password.component.d.ts +4 -2
  59. package/login/pages/login-password/login-password.component.js +43 -0
  60. package/login/pages/login-recovery-authn-code-config/login-recovery-authn-code-config.component.d.ts +4 -2
  61. package/login/pages/login-recovery-authn-code-config/login-recovery-authn-code-config.component.js +43 -0
  62. package/login/pages/login-recovery-authn-code-input/login-recovery-authn-code-input.component.d.ts +4 -2
  63. package/login/pages/login-recovery-authn-code-input/login-recovery-authn-code-input.component.js +41 -0
  64. package/login/pages/login-reset-otp/login-reset-otp.component.d.ts +4 -2
  65. package/login/pages/login-reset-otp/login-reset-otp.component.js +40 -0
  66. package/login/pages/login-reset-password/login-reset-password.component.d.ts +4 -2
  67. package/login/pages/login-reset-password/login-reset-password.component.js +41 -0
  68. package/login/pages/login-update-password/login-update-password.component.d.ts +4 -2
  69. package/login/pages/login-update-password/login-update-password.component.js +43 -0
  70. package/login/pages/login-update-profile/login-update-profile.component.d.ts +4 -2
  71. package/login/pages/login-update-profile/login-update-profile.component.js +42 -0
  72. package/login/pages/login-username/login-username.component.d.ts +4 -2
  73. package/login/pages/login-username/login-username.component.js +43 -0
  74. package/login/pages/login-verify-email/login-verify-email.component.d.ts +4 -2
  75. package/login/pages/login-verify-email/login-verify-email.component.js +40 -0
  76. package/login/pages/login-x509-info/login-x509-info.component.d.ts +4 -2
  77. package/login/pages/login-x509-info/login-x509-info.component.js +40 -0
  78. package/login/pages/logout-confirm/logout-confirm.component.d.ts +4 -2
  79. package/login/pages/logout-confirm/logout-confirm.component.js +40 -0
  80. package/login/pages/register/register.component.d.ts +4 -2
  81. package/login/pages/register/register.component.js +48 -0
  82. package/login/pages/saml-post-form/saml-post-form.component.d.ts +4 -2
  83. package/login/pages/saml-post-form/saml-post-form.component.js +52 -0
  84. package/login/pages/select-authenticator/select-authenticator.component.d.ts +4 -2
  85. package/login/pages/select-authenticator/select-authenticator.component.js +41 -0
  86. package/login/pages/terms/terms.component.d.ts +4 -2
  87. package/login/pages/terms/terms.component.js +40 -0
  88. package/login/pages/update-email/update-email.component.d.ts +4 -2
  89. package/login/pages/update-email/update-email.component.js +43 -0
  90. package/login/pages/webauthn-authenticate/webauthn-authenticate.component.d.ts +5 -5
  91. package/login/pages/webauthn-authenticate/webauthn-authenticate.component.js +80 -0
  92. package/login/pages/webauthn-error/webauthn-error.component.d.ts +4 -2
  93. package/login/pages/webauthn-error/webauthn-error.component.js +49 -0
  94. package/login/pages/webauthn-register/webauthn-register.component.d.ts +5 -5
  95. package/login/pages/webauthn-register/webauthn-register.component.js +76 -0
  96. package/login/pipes/kc-sanitize.pipe.d.ts +3 -4
  97. package/login/pipes/kc-sanitize.pipe.js +29 -0
  98. package/login/pipes/{to-array.pipe.mjs → to-array.pipe.js} +1 -2
  99. package/login/providers/keycloakify-angular.providers.d.ts +16 -0
  100. package/login/providers/keycloakify-angular.providers.js +53 -0
  101. package/login/services/i18n.service.d.ts +6 -0
  102. package/{lib/services/i18n.service.mjs → login/services/i18n.service.js} +1 -1
  103. package/login/services/login-resource-injector.service.d.ts +1 -1
  104. package/login/services/login-resource-injector.service.js +68 -0
  105. package/login/services/user-profile-form.service.js +1019 -0
  106. package/{lib/providers/keycloakify-angular.providers.d.ts → login/tokens/classes.token.d.ts} +1 -24
  107. package/login/tokens/classes.token.js +3 -0
  108. package/login/tokens/i18n.token.d.ts +2 -0
  109. package/login/tokens/i18n.token.js +3 -0
  110. package/login/tokens/kc-context.token.d.ts +3 -0
  111. package/login/tokens/kc-context.token.js +3 -0
  112. package/login/tokens/make-user-confirm-password.token.d.ts +2 -0
  113. package/login/tokens/make-user-confirm-password.token.js +3 -0
  114. package/package.json +85 -104
  115. package/src/lib/tokens/use-default-css.token.ts +3 -0
  116. package/src/login/components/add-remove-buttons-multi-valued-attribute/add-remove-buttons-multi-valued-attribute.component.html +2 -2
  117. package/src/login/components/add-remove-buttons-multi-valued-attribute/add-remove-buttons-multi-valued-attribute.component.ts +6 -4
  118. package/src/login/components/field-errors/field-errors.component.ts +5 -4
  119. package/src/login/components/group-label/group-label.component.html +2 -2
  120. package/src/login/components/group-label/group-label.component.ts +9 -6
  121. package/src/login/components/input-field-by-type/input-field-by-type.component.ts +3 -2
  122. package/src/login/components/input-tag/input-tag.component.html +1 -1
  123. package/src/login/components/input-tag/input-tag.component.ts +11 -9
  124. package/src/login/components/input-tag-selects/input-tag-selects.component.html +1 -1
  125. package/src/login/components/input-tag-selects/input-tag-selects.component.ts +9 -6
  126. package/src/login/components/logout-other-sessions/logout-other-sessions.component.html +1 -1
  127. package/src/login/components/logout-other-sessions/logout-other-sessions.component.ts +8 -5
  128. package/src/login/components/password-wrapper/password-wrapper.component.html +1 -1
  129. package/src/login/components/password-wrapper/password-wrapper.component.ts +8 -5
  130. package/src/login/components/select-tag/select-tag.component.html +2 -2
  131. package/src/login/components/select-tag/select-tag.component.ts +9 -6
  132. package/src/login/components/textarea-tag/textarea-tag.component.ts +3 -2
  133. package/src/login/components/user-profile-form-fields/user-profile-form-fields.component.html +3 -3
  134. package/src/login/components/user-profile-form-fields/user-profile-form-fields.component.ts +14 -9
  135. package/src/login/containers/template.component.html +6 -6
  136. package/src/login/containers/template.component.ts +9 -7
  137. package/src/login/pages/code/code.component.html +4 -4
  138. package/src/login/pages/code/code.component.ts +11 -7
  139. package/src/login/pages/delete-account-confirm/delete-account-confirm.component.html +8 -8
  140. package/src/login/pages/delete-account-confirm/delete-account-confirm.component.ts +12 -8
  141. package/src/login/pages/delete-credential/delete-credential.component.html +4 -4
  142. package/src/login/pages/delete-credential/delete-credential.component.ts +11 -7
  143. package/src/login/pages/error/error.component.html +2 -2
  144. package/src/login/pages/error/error.component.ts +11 -7
  145. package/src/login/pages/frontchannel-logout/frontchannel-logout.component.html +4 -4
  146. package/src/login/pages/frontchannel-logout/frontchannel-logout.component.ts +11 -7
  147. package/src/login/pages/idp-review-user-profile/idp-review-user-profile.component.html +2 -2
  148. package/src/login/pages/idp-review-user-profile/idp-review-user-profile.component.ts +11 -7
  149. package/src/login/pages/info/info.component.html +4 -4
  150. package/src/login/pages/info/info.component.ts +12 -17
  151. package/src/login/pages/login/login.component.html +13 -13
  152. package/src/login/pages/login/login.component.ts +11 -7
  153. package/src/login/pages/login-config-totp/login-config-totp.component.html +24 -24
  154. package/src/login/pages/login-config-totp/login-config-totp.component.ts +11 -9
  155. package/src/login/pages/login-idp-link-confirm/login-idp-link-confirm.component.html +3 -3
  156. package/src/login/pages/login-idp-link-confirm/login-idp-link-confirm.component.ts +11 -7
  157. package/src/login/pages/login-idp-link-confirm-override/login-idp-link-confirm-override.component.html +4 -4
  158. package/src/login/pages/login-idp-link-confirm-override/login-idp-link-confirm-override.component.ts +11 -7
  159. package/src/login/pages/login-idp-link-email/login-idp-link-email.component.html +8 -8
  160. package/src/login/pages/login-idp-link-email/login-idp-link-email.component.ts +11 -7
  161. package/src/login/pages/login-oauth-grant/login-oauth-grant.component.html +9 -9
  162. package/src/login/pages/login-oauth-grant/login-oauth-grant.component.ts +11 -8
  163. package/src/login/pages/login-oauth2-device-verify-user-code/login-oauth2-device-verify-user-code.component.html +3 -3
  164. package/src/login/pages/login-oauth2-device-verify-user-code/login-oauth2-device-verify-user-code.component.ts +11 -7
  165. package/src/login/pages/login-otp/login-otp.component.html +3 -3
  166. package/src/login/pages/login-otp/login-otp.component.ts +11 -7
  167. package/src/login/pages/login-page-expired/login-page-expired.component.html +5 -5
  168. package/src/login/pages/login-page-expired/login-page-expired.component.ts +11 -7
  169. package/src/login/pages/login-passkeys-conditional-authenticate/login-passkeys-conditional-authenticate.component.html +9 -9
  170. package/src/login/pages/login-passkeys-conditional-authenticate/login-passkeys-conditional-authenticate.component.ts +15 -15
  171. package/src/login/pages/login-password/login-password.component.html +5 -5
  172. package/src/login/pages/login-password/login-password.component.ts +11 -7
  173. package/src/login/pages/login-recovery-authn-code-config/login-recovery-authn-code-config.component.html +11 -11
  174. package/src/login/pages/login-recovery-authn-code-config/login-recovery-authn-code-config.component.ts +12 -8
  175. package/src/login/pages/login-recovery-authn-code-input/login-recovery-authn-code-input.component.html +3 -3
  176. package/src/login/pages/login-recovery-authn-code-input/login-recovery-authn-code-input.component.ts +12 -8
  177. package/src/login/pages/login-reset-otp/login-reset-otp.component.html +3 -3
  178. package/src/login/pages/login-reset-otp/login-reset-otp.component.ts +12 -8
  179. package/src/login/pages/login-reset-password/login-reset-password.component.html +8 -8
  180. package/src/login/pages/login-reset-password/login-reset-password.component.ts +12 -8
  181. package/src/login/pages/login-update-password/login-update-password.component.html +5 -5
  182. package/src/login/pages/login-update-password/login-update-password.component.ts +12 -8
  183. package/src/login/pages/login-update-profile/login-update-profile.component.html +3 -3
  184. package/src/login/pages/login-update-profile/login-update-profile.component.ts +12 -8
  185. package/src/login/pages/login-username/login-username.component.html +10 -10
  186. package/src/login/pages/login-username/login-username.component.ts +11 -7
  187. package/src/login/pages/login-verify-email/login-verify-email.component.html +5 -5
  188. package/src/login/pages/login-verify-email/login-verify-email.component.ts +12 -8
  189. package/src/login/pages/login-x509-info/login-x509-info.component.html +6 -6
  190. package/src/login/pages/login-x509-info/login-x509-info.component.ts +12 -8
  191. package/src/login/pages/logout-confirm/logout-confirm.component.html +4 -4
  192. package/src/login/pages/logout-confirm/logout-confirm.component.ts +12 -8
  193. package/src/login/pages/register/register.component.html +7 -7
  194. package/src/login/pages/register/register.component.ts +11 -17
  195. package/src/login/pages/saml-post-form/saml-post-form.component.html +4 -4
  196. package/src/login/pages/saml-post-form/saml-post-form.component.ts +11 -7
  197. package/src/login/pages/select-authenticator/select-authenticator.component.html +3 -3
  198. package/src/login/pages/select-authenticator/select-authenticator.component.ts +12 -9
  199. package/src/login/pages/terms/terms.component.html +4 -4
  200. package/src/login/pages/terms/terms.component.ts +12 -8
  201. package/src/login/pages/update-email/update-email.component.html +3 -3
  202. package/src/login/pages/update-email/update-email.component.ts +12 -8
  203. package/src/login/pages/webauthn-authenticate/webauthn-authenticate.component.html +8 -8
  204. package/src/login/pages/webauthn-authenticate/webauthn-authenticate.component.ts +15 -15
  205. package/src/login/pages/webauthn-error/webauthn-error.component.html +3 -3
  206. package/src/login/pages/webauthn-error/webauthn-error.component.ts +12 -8
  207. package/src/login/pages/webauthn-register/webauthn-register.component.html +3 -3
  208. package/src/login/pages/webauthn-register/webauthn-register.component.ts +17 -15
  209. package/src/login/pipes/kc-sanitize.pipe.ts +9 -11
  210. package/src/login/pipes/to-array.pipe.ts +0 -1
  211. package/src/login/providers/keycloakify-angular.providers.ts +68 -0
  212. package/src/{lib → login}/services/i18n.service.ts +3 -2
  213. package/src/login/services/login-resource-injector.service.ts +4 -3
  214. package/src/login/services/user-profile-form.service.ts +5 -7
  215. package/src/login/tokens/classes.token.ts +6 -0
  216. package/src/login/tokens/i18n.token.ts +3 -0
  217. package/src/login/tokens/kc-context.token.ts +4 -0
  218. package/src/login/tokens/make-user-confirm-password.token.ts +5 -0
  219. package/src/tsconfig.json +6 -0
  220. package/lib/i18n.d.ts +0 -4
  221. package/lib/i18n.mjs +0 -6
  222. package/lib/models/index.d.ts +0 -1
  223. package/lib/models/index.mjs +0 -2
  224. package/lib/providers/keycloakify-angular.providers.mjs +0 -54
  225. package/lib/public-api.d.ts +0 -10
  226. package/lib/public-api.mjs +0 -4
  227. package/lib/services/i18n.service.d.ts +0 -6
  228. package/lib/services/index.d.ts +0 -2
  229. package/lib/services/index.mjs +0 -3
  230. package/login/components/add-remove-buttons-multi-valued-attribute/add-remove-buttons-multi-valued-attribute.component.mjs +0 -105
  231. package/login/components/group-label/group-label.component.mjs +0 -41
  232. package/login/components/hello-world/hello-world.component.d.ts +0 -5
  233. package/login/components/hello-world/hello-world.component.mjs +0 -11
  234. package/login/components/index.d.ts +0 -11
  235. package/login/components/index.mjs +0 -12
  236. package/login/components/input-tag/input-tag.component.mjs +0 -89
  237. package/login/components/input-tag-selects/input-tag-selects.component.mjs +0 -115
  238. package/login/components/logout-other-sessions/logout-other-sessions.component.mjs +0 -30
  239. package/login/components/password-wrapper/password-wrapper.component.mjs +0 -44
  240. package/login/components/select-tag/select-tag.component.mjs +0 -80
  241. package/login/components/textarea-tag/textarea-tag.component.mjs +0 -48
  242. package/login/components/user-profile-form-fields/user-profile-form-fields.component.mjs +0 -55
  243. package/login/containers/template.component.mjs +0 -70
  244. package/login/directives/index.d.ts +0 -2
  245. package/login/directives/index.mjs +0 -3
  246. package/login/pages/code/code.component.mjs +0 -32
  247. package/login/pages/delete-account-confirm/delete-account-confirm.component.mjs +0 -32
  248. package/login/pages/delete-credential/delete-credential.component.mjs +0 -37
  249. package/login/pages/error/error.component.mjs +0 -32
  250. package/login/pages/frontchannel-logout/frontchannel-logout.component.mjs +0 -41
  251. package/login/pages/idp-review-user-profile/idp-review-user-profile.component.mjs +0 -42
  252. package/login/pages/info/info.component.mjs +0 -58
  253. package/login/pages/login/login.component.mjs +0 -41
  254. package/login/pages/login-config-totp/login-config-totp.component.mjs +0 -40
  255. package/login/pages/login-idp-link-confirm/login-idp-link-confirm.component.mjs +0 -37
  256. package/login/pages/login-idp-link-confirm-override/login-idp-link-confirm-override.component.mjs +0 -37
  257. package/login/pages/login-idp-link-email/login-idp-link-email.component.mjs +0 -37
  258. package/login/pages/login-oauth-grant/login-oauth-grant.component.mjs +0 -38
  259. package/login/pages/login-oauth2-device-verify-user-code/login-oauth2-device-verify-user-code.component.mjs +0 -37
  260. package/login/pages/login-otp/login-otp.component.mjs +0 -38
  261. package/login/pages/login-page-expired/login-page-expired.component.mjs +0 -36
  262. package/login/pages/login-passkeys-conditional-authenticate/login-passkeys-conditional-authenticate.component.mjs +0 -85
  263. package/login/pages/login-password/login-password.component.mjs +0 -40
  264. package/login/pages/login-recovery-authn-code-config/login-recovery-authn-code-config.component.mjs +0 -40
  265. package/login/pages/login-recovery-authn-code-input/login-recovery-authn-code-input.component.mjs +0 -38
  266. package/login/pages/login-reset-otp/login-reset-otp.component.mjs +0 -37
  267. package/login/pages/login-reset-password/login-reset-password.component.mjs +0 -38
  268. package/login/pages/login-update-password/login-update-password.component.mjs +0 -40
  269. package/login/pages/login-update-profile/login-update-profile.component.mjs +0 -39
  270. package/login/pages/login-username/login-username.component.mjs +0 -40
  271. package/login/pages/login-verify-email/login-verify-email.component.mjs +0 -37
  272. package/login/pages/login-x509-info/login-x509-info.component.mjs +0 -37
  273. package/login/pages/logout-confirm/logout-confirm.component.mjs +0 -37
  274. package/login/pages/register/register.component.mjs +0 -55
  275. package/login/pages/saml-post-form/saml-post-form.component.mjs +0 -49
  276. package/login/pages/select-authenticator/select-authenticator.component.mjs +0 -39
  277. package/login/pages/terms/terms.component.mjs +0 -37
  278. package/login/pages/update-email/update-email.component.mjs +0 -40
  279. package/login/pages/webauthn-authenticate/webauthn-authenticate.component.mjs +0 -81
  280. package/login/pages/webauthn-error/webauthn-error.component.mjs +0 -46
  281. package/login/pages/webauthn-register/webauthn-register.component.mjs +0 -76
  282. package/login/pipes/advanced-msg-str.pipe.d.ts +0 -8
  283. package/login/pipes/advanced-msg-str.pipe.mjs +0 -19
  284. package/login/pipes/index.d.ts +0 -6
  285. package/login/pipes/index.mjs +0 -7
  286. package/login/pipes/kc-sanitize.pipe.mjs +0 -34
  287. package/login/pipes/msg-str.pipe.d.ts +0 -9
  288. package/login/pipes/msg-str.pipe.mjs +0 -19
  289. package/login/services/index.d.ts +0 -2
  290. package/login/services/index.mjs +0 -3
  291. package/login/services/login-resource-injector.service.mjs +0 -68
  292. package/login/services/user-profile-form.service.mjs +0 -1017
  293. package/src/lib/i18n.ts +0 -9
  294. package/src/lib/models/index.ts +0 -1
  295. package/src/lib/providers/keycloakify-angular.providers.ts +0 -92
  296. package/src/lib/public-api.ts +0 -12
  297. package/src/lib/services/index.ts +0 -2
  298. package/src/login/components/hello-world/hello-world.component.css +0 -0
  299. package/src/login/components/hello-world/hello-world.component.html +0 -1
  300. package/src/login/components/hello-world/hello-world.component.ts +0 -10
  301. package/src/login/components/index.ts +0 -11
  302. package/src/login/directives/index.ts +0 -2
  303. package/src/login/pipes/advanced-msg-str.pipe.ts +0 -13
  304. package/src/login/pipes/index.ts +0 -6
  305. package/src/login/pipes/msg-str.pipe.ts +0 -14
  306. package/src/login/services/index.ts +0 -2
  307. /package/lib/models/{script.model.mjs → script.model.js} +0 -0
  308. /package/lib/services/{resource-injector.service.mjs → resource-injector.service.js} +0 -0
  309. /package/login/{DefaultPage.mjs → DefaultPage.js} +0 -0
  310. /package/login/{KcContext.mjs → KcContext.js} +0 -0
  311. /package/login/classes/{component-reference.class.mjs → component-reference.class.js} +0 -0
  312. /package/login/directives/{attributes.directive.mjs → attributes.directive.js} +0 -0
  313. /package/login/directives/{kc-class.directive.mjs → kc-class.directive.js} +0 -0
  314. /package/login/{i18n.mjs → i18n.js} +0 -0
  315. /package/login/pipes/{input-type.pipe.mjs → input-type.pipe.js} +0 -0
  316. /package/login/pipes/{to-number.pipe.mjs → to-number.pipe.js} +0 -0
package/lib/i18n.d.ts DELETED
@@ -1,4 +0,0 @@
1
- declare const I18nlogin: import("keycloakify/login/i18n/noJsx/GenericI18n_noJsx").GenericI18n_noJsx<"doLogIn" | "doRegister" | "doRegisterSecurityKey" | "doCancel" | "doSubmit" | "doBack" | "doYes" | "doNo" | "doContinue" | "doIgnore" | "doAccept" | "doDecline" | "doForgotPassword" | "doClickHere" | "doImpersonate" | "doTryAgain" | "doTryAnotherWay" | "doConfirmDelete" | "errorDeletingAccount" | "deletingAccountForbidden" | "kerberosNotConfigured" | "kerberosNotConfiguredTitle" | "bypassKerberosDetail" | "kerberosNotSetUp" | "registerTitle" | "loginAccountTitle" | "loginTitle" | "loginTitleHtml" | "impersonateTitle" | "impersonateTitleHtml" | "realmChoice" | "unknownUser" | "loginTotpTitle" | "loginProfileTitle" | "loginIdpReviewProfileTitle" | "loginTimeout" | "reauthenticate" | "authenticateStrong" | "oauthGrantTitle" | "oauthGrantTitleHtml" | "oauthGrantInformation" | "oauthGrantReview" | "oauthGrantTos" | "oauthGrantPolicy" | "errorTitle" | "errorTitleHtml" | "emailVerifyTitle" | "emailForgotTitle" | "updateEmailTitle" | "emailUpdateConfirmationSentTitle" | "emailUpdateConfirmationSent" | "emailUpdatedTitle" | "emailUpdated" | "updatePasswordTitle" | "codeSuccessTitle" | "codeErrorTitle" | "displayUnsupported" | "browserRequired" | "browserContinue" | "browserContinuePrompt" | "browserContinueAnswer" | "usb" | "nfc" | "bluetooth" | "internal" | "unknown" | "termsTitle" | "termsText" | "termsPlainText" | "termsAcceptanceRequired" | "acceptTerms" | "deleteCredentialTitle" | "deleteCredentialMessage" | "recaptchaFailed" | "recaptchaNotConfigured" | "consentDenied" | "noAccount" | "username" | "usernameOrEmail" | "firstName" | "givenName" | "fullName" | "lastName" | "familyName" | "email" | "password" | "passwordConfirm" | "passwordNew" | "passwordNewConfirm" | "hidePassword" | "showPassword" | "rememberMe" | "authenticatorCode" | "address" | "street" | "locality" | "region" | "postal_code" | "country" | "emailVerified" | "website" | "phoneNumber" | "phoneNumberVerified" | "gender" | "birthday" | "zoneinfo" | "gssDelegationCredential" | "logoutOtherSessions" | "profileScopeConsentText" | "emailScopeConsentText" | "addressScopeConsentText" | "phoneScopeConsentText" | "offlineAccessScopeConsentText" | "samlRoleListScopeConsentText" | "rolesScopeConsentText" | "organizationScopeConsentText" | "restartLoginTooltip" | "loginTotpIntro" | "loginTotpStep1" | "loginTotpStep2" | "loginTotpStep3" | "loginTotpStep3DeviceName" | "loginTotpManualStep2" | "loginTotpManualStep3" | "loginTotpUnableToScan" | "loginTotpScanBarcode" | "loginCredential" | "loginOtpOneTime" | "loginTotpType" | "loginTotpAlgorithm" | "loginTotpDigits" | "loginTotpInterval" | "loginTotpCounter" | "loginTotpDeviceName" | "loginTotp.totp" | "loginTotp.hotp" | "totpAppFreeOTPName" | "totpAppGoogleName" | "totpAppMicrosoftAuthenticatorName" | "loginChooseAuthenticator" | "oauthGrantRequest" | "inResource" | "oauth2DeviceVerificationTitle" | "verifyOAuth2DeviceUserCode" | "oauth2DeviceInvalidUserCodeMessage" | "oauth2DeviceExpiredUserCodeMessage" | "oauth2DeviceVerificationCompleteHeader" | "oauth2DeviceVerificationCompleteMessage" | "oauth2DeviceVerificationFailedHeader" | "oauth2DeviceVerificationFailedMessage" | "oauth2DeviceConsentDeniedMessage" | "oauth2DeviceAuthorizationGrantDisabledMessage" | "emailVerifyInstruction1" | "emailVerifyInstruction2" | "emailVerifyInstruction3" | "emailLinkIdpTitle" | "emailLinkIdp1" | "emailLinkIdp2" | "emailLinkIdp3" | "emailLinkIdp4" | "emailLinkIdp5" | "backToLogin" | "emailInstruction" | "emailInstructionUsername" | "copyCodeInstruction" | "pageExpiredTitle" | "pageExpiredMsg1" | "pageExpiredMsg2" | "personalInfo" | "role_admin" | "role_realm-admin" | "role_create-realm" | "role_create-client" | "role_view-realm" | "role_view-users" | "role_view-applications" | "role_view-clients" | "role_view-events" | "role_view-identity-providers" | "role_manage-realm" | "role_manage-users" | "role_manage-applications" | "role_manage-identity-providers" | "role_manage-clients" | "role_manage-events" | "role_view-profile" | "role_manage-account" | "role_manage-account-links" | "role_read-token" | "role_offline-access" | "client_account" | "client_account-console" | "client_security-admin-console" | "client_admin-cli" | "client_realm-management" | "client_broker" | "requiredFields" | "invalidUserMessage" | "invalidUsernameMessage" | "invalidUsernameOrEmailMessage" | "invalidPasswordMessage" | "invalidEmailMessage" | "accountDisabledMessage" | "accountTemporarilyDisabledMessage" | "expiredCodeMessage" | "expiredActionMessage" | "expiredActionTokenNoSessionMessage" | "expiredActionTokenSessionExistsMessage" | "sessionLimitExceeded" | "identityProviderLogoutFailure" | "missingFirstNameMessage" | "missingLastNameMessage" | "missingEmailMessage" | "missingUsernameMessage" | "missingPasswordMessage" | "missingTotpMessage" | "missingTotpDeviceNameMessage" | "notMatchPasswordMessage" | "error-invalid-value" | "error-invalid-blank" | "error-empty" | "error-invalid-length" | "error-invalid-length-too-short" | "error-invalid-length-too-long" | "error-invalid-email" | "error-invalid-number" | "error-number-out-of-range" | "error-number-out-of-range-too-small" | "error-number-out-of-range-too-big" | "error-pattern-no-match" | "error-invalid-uri" | "error-invalid-uri-scheme" | "error-invalid-uri-fragment" | "error-user-attribute-required" | "error-invalid-date" | "error-user-attribute-read-only" | "error-username-invalid-character" | "error-person-name-invalid-character" | "error-reset-otp-missing-id" | "invalidPasswordExistingMessage" | "invalidPasswordBlacklistedMessage" | "invalidPasswordConfirmMessage" | "invalidTotpMessage" | "usernameExistsMessage" | "emailExistsMessage" | "federatedIdentityExistsMessage" | "federatedIdentityUnavailableMessage" | "federatedIdentityUnmatchedEssentialClaimMessage" | "confirmLinkIdpTitle" | "confirmOverrideIdpTitle" | "federatedIdentityConfirmLinkMessage" | "federatedIdentityConfirmOverrideMessage" | "federatedIdentityConfirmReauthenticateMessage" | "nestedFirstBrokerFlowMessage" | "confirmLinkIdpReviewProfile" | "confirmLinkIdpContinue" | "confirmOverrideIdpContinue" | "configureTotpMessage" | "configureBackupCodesMessage" | "updateProfileMessage" | "updatePasswordMessage" | "updateEmailMessage" | "resetPasswordMessage" | "verifyEmailMessage" | "linkIdpMessage" | "emailSentMessage" | "emailSendErrorMessage" | "accountUpdatedMessage" | "accountPasswordUpdatedMessage" | "delegationCompleteHeader" | "delegationCompleteMessage" | "delegationFailedHeader" | "delegationFailedMessage" | "noAccessMessage" | "invalidPasswordMinLengthMessage" | "invalidPasswordMaxLengthMessage" | "invalidPasswordMinDigitsMessage" | "invalidPasswordMinLowerCaseCharsMessage" | "invalidPasswordMinUpperCaseCharsMessage" | "invalidPasswordMinSpecialCharsMessage" | "invalidPasswordNotUsernameMessage" | "invalidPasswordNotContainsUsernameMessage" | "invalidPasswordNotEmailMessage" | "invalidPasswordRegexPatternMessage" | "invalidPasswordHistoryMessage" | "invalidPasswordGenericMessage" | "failedToProcessResponseMessage" | "httpsRequiredMessage" | "realmNotEnabledMessage" | "invalidRequestMessage" | "successLogout" | "failedLogout" | "unknownLoginRequesterMessage" | "loginRequesterNotEnabledMessage" | "bearerOnlyMessage" | "standardFlowDisabledMessage" | "implicitFlowDisabledMessage" | "invalidRedirectUriMessage" | "unsupportedNameIdFormatMessage" | "invalidRequesterMessage" | "registrationNotAllowedMessage" | "resetCredentialNotAllowedMessage" | "permissionNotApprovedMessage" | "noRelayStateInResponseMessage" | "insufficientPermissionMessage" | "couldNotProceedWithAuthenticationRequestMessage" | "couldNotObtainTokenMessage" | "unexpectedErrorRetrievingTokenMessage" | "unexpectedErrorHandlingResponseMessage" | "identityProviderAuthenticationFailedMessage" | "couldNotSendAuthenticationRequestMessage" | "unexpectedErrorHandlingRequestMessage" | "invalidAccessCodeMessage" | "sessionNotActiveMessage" | "invalidCodeMessage" | "cookieNotFoundMessage" | "insufficientLevelOfAuthentication" | "identityProviderUnexpectedErrorMessage" | "identityProviderMissingStateMessage" | "identityProviderMissingCodeOrErrorMessage" | "identityProviderInvalidResponseMessage" | "identityProviderInvalidSignatureMessage" | "identityProviderNotFoundMessage" | "identityProviderLinkSuccess" | "staleCodeMessage" | "realmSupportsNoCredentialsMessage" | "credentialSetupRequired" | "identityProviderNotUniqueMessage" | "emailVerifiedMessage" | "emailVerifiedAlreadyMessage" | "staleEmailVerificationLink" | "identityProviderAlreadyLinkedMessage" | "confirmAccountLinking" | "confirmEmailAddressVerification" | "confirmExecutionOfActions" | "backToApplication" | "missingParameterMessage" | "clientNotFoundMessage" | "clientDisabledMessage" | "invalidParameterMessage" | "alreadyLoggedIn" | "differentUserAuthenticated" | "brokerLinkingSessionExpired" | "proceedWithAction" | "acrNotFulfilled" | "requiredAction.CONFIGURE_TOTP" | "requiredAction.TERMS_AND_CONDITIONS" | "requiredAction.UPDATE_PASSWORD" | "requiredAction.UPDATE_PROFILE" | "requiredAction.VERIFY_EMAIL" | "requiredAction.CONFIGURE_RECOVERY_AUTHN_CODES" | "requiredAction.webauthn-register-passwordless" | "invalidTokenRequiredActions" | "doX509Login" | "clientCertificate" | "noCertificate" | "pageNotFound" | "internalServerError" | "console-username" | "console-password" | "console-otp" | "console-new-password" | "console-confirm-password" | "console-update-password" | "console-verify-email" | "console-email-code" | "console-accept-terms" | "console-accept" | "openshift.scope.user_info" | "openshift.scope.user_check-access" | "openshift.scope.user_full" | "openshift.scope.list-projects" | "saml.post-form.title" | "saml.post-form.message" | "saml.post-form.js-disabled" | "saml.artifactResolutionServiceInvalidResponse" | "otp-display-name" | "otp-help-text" | "otp-reset-description" | "password-display-name" | "password-help-text" | "auth-username-form-display-name" | "auth-username-form-help-text" | "auth-username-password-form-display-name" | "auth-username-password-form-help-text" | "auth-x509-client-username-form-display-name" | "auth-x509-client-username-form-help-text" | "auth-recovery-authn-code-form-display-name" | "auth-recovery-authn-code-form-help-text" | "auth-recovery-code-info-message" | "auth-recovery-code-prompt" | "auth-recovery-code-header" | "recovery-codes-error-invalid" | "recovery-code-config-header" | "recovery-code-config-warning-title" | "recovery-code-config-warning-message" | "recovery-codes-print" | "recovery-codes-download" | "recovery-codes-copy" | "recovery-codes-copied" | "recovery-codes-confirmation-message" | "recovery-codes-action-complete" | "recovery-codes-action-cancel" | "recovery-codes-download-file-header" | "recovery-codes-download-file-description" | "recovery-codes-download-file-date" | "recovery-codes-label-default" | "webauthn-display-name" | "webauthn-help-text" | "webauthn-passwordless-display-name" | "webauthn-passwordless-help-text" | "webauthn-login-title" | "webauthn-registration-title" | "webauthn-available-authenticators" | "webauthn-unsupported-browser-text" | "webauthn-doAuthenticate" | "webauthn-createdAt-label" | "webauthn-registration-init-label" | "webauthn-registration-init-label-prompt" | "webauthn-error-title" | "webauthn-error-registration" | "webauthn-error-api-get" | "webauthn-error-different-user" | "webauthn-error-auth-verification" | "webauthn-error-register-verification" | "webauthn-error-user-not-found" | "passkey-login-title" | "passkey-available-authenticators" | "passkey-unsupported-browser-text" | "passkey-doAuthenticate" | "passkey-createdAt-label" | "passkey-autofill-select" | "identity-provider-redirector" | "identity-provider-login-label" | "idp-email-verification-display-name" | "idp-email-verification-help-text" | "idp-username-password-form-display-name" | "idp-username-password-form-help-text" | "finalDeletionConfirmation" | "irreversibleAction" | "deleteAccountConfirm" | "deletingImplies" | "errasingData" | "loggingOutImmediately" | "accountUnusable" | "userDeletedSuccessfully" | "access-denied" | "access-denied-when-idp-auth" | "frontchannel-logout.title" | "frontchannel-logout.message" | "logoutConfirmTitle" | "logoutConfirmHeader" | "doLogout" | "readOnlyUsernameMessage" | "error-invalid-multivalued-size" | "organization.confirm-membership.title" | "organization.confirm-membership" | "organization.member.register.title" | "shouldBeEqual" | "shouldBeDifferent" | "shouldMatchPattern" | "mustBeAnInteger" | "notAValidOption" | "selectAnOption" | "remove" | "addValue" | "languages", "ar" | "ca" | "cs" | "da" | "de" | "el" | "en" | "es" | "fa" | "fi" | "fr" | "hu" | "it" | "ja" | "ka" | "lt" | "lv" | "nl" | "no" | "pl" | "pt" | "pt-BR" | "ru" | "sk" | "sv" | "th" | "tr" | "uk" | "zh-CN" | "zh-TW">;
2
- declare const I18nAccount: import("keycloakify/account/i18n/noJsx/GenericI18n_noJsx").GenericI18n_noJsx<"doLogIn" | "doCancel" | "updatePasswordTitle" | "consentDenied" | "username" | "firstName" | "givenName" | "fullName" | "lastName" | "familyName" | "email" | "password" | "passwordConfirm" | "passwordNew" | "authenticatorCode" | "address" | "street" | "locality" | "region" | "postal_code" | "country" | "emailVerified" | "website" | "phoneNumber" | "phoneNumberVerified" | "gender" | "birthday" | "zoneinfo" | "gssDelegationCredential" | "profileScopeConsentText" | "emailScopeConsentText" | "addressScopeConsentText" | "phoneScopeConsentText" | "offlineAccessScopeConsentText" | "samlRoleListScopeConsentText" | "rolesScopeConsentText" | "totpAppFreeOTPName" | "totpAppGoogleName" | "totpAppMicrosoftAuthenticatorName" | "inResource" | "role_admin" | "role_realm-admin" | "role_create-realm" | "role_view-realm" | "role_view-users" | "role_view-applications" | "role_view-clients" | "role_view-events" | "role_view-identity-providers" | "role_manage-realm" | "role_manage-users" | "role_manage-applications" | "role_manage-identity-providers" | "role_manage-clients" | "role_manage-events" | "role_view-profile" | "role_manage-account" | "role_manage-account-links" | "role_read-token" | "role_offline-access" | "client_account" | "client_account-console" | "client_security-admin-console" | "client_admin-cli" | "client_realm-management" | "client_broker" | "requiredFields" | "invalidUserMessage" | "invalidEmailMessage" | "accountDisabledMessage" | "accountTemporarilyDisabledMessage" | "missingFirstNameMessage" | "missingLastNameMessage" | "missingEmailMessage" | "missingUsernameMessage" | "missingPasswordMessage" | "missingTotpMessage" | "missingTotpDeviceNameMessage" | "notMatchPasswordMessage" | "error-invalid-value" | "error-invalid-blank" | "error-empty" | "error-invalid-length" | "error-invalid-length-too-short" | "error-invalid-length-too-long" | "error-invalid-email" | "error-invalid-number" | "error-number-out-of-range" | "error-number-out-of-range-too-small" | "error-number-out-of-range-too-big" | "error-pattern-no-match" | "error-invalid-uri" | "error-invalid-uri-scheme" | "error-invalid-uri-fragment" | "error-user-attribute-required" | "error-invalid-date" | "error-user-attribute-read-only" | "error-username-invalid-character" | "error-person-name-invalid-character" | "invalidPasswordExistingMessage" | "invalidPasswordBlacklistedMessage" | "invalidPasswordConfirmMessage" | "invalidTotpMessage" | "usernameExistsMessage" | "emailExistsMessage" | "updatePasswordMessage" | "accountUpdatedMessage" | "accountPasswordUpdatedMessage" | "noAccessMessage" | "invalidPasswordMinLengthMessage" | "invalidPasswordMaxLengthMessage" | "invalidPasswordMinDigitsMessage" | "invalidPasswordMinLowerCaseCharsMessage" | "invalidPasswordMinUpperCaseCharsMessage" | "invalidPasswordMinSpecialCharsMessage" | "invalidPasswordNotUsernameMessage" | "invalidPasswordNotEmailMessage" | "invalidPasswordRegexPatternMessage" | "invalidPasswordHistoryMessage" | "invalidPasswordGenericMessage" | "identityProviderNotFoundMessage" | "identityProviderAlreadyLinkedMessage" | "backToApplication" | "clientNotFoundMessage" | "openshift.scope.user_info" | "openshift.scope.user_check-access" | "openshift.scope.user_full" | "openshift.scope.list-projects" | "irreversibleAction" | "deletingImplies" | "errasingData" | "loggingOutImmediately" | "accountUnusable" | "access-denied-when-idp-auth" | "readOnlyUsernameMessage" | "doSave" | "doLogOutAllSessions" | "doRemove" | "doAdd" | "doSignOut" | "doLink" | "personalInfoSidebarTitle" | "accountSecuritySidebarTitle" | "signingInSidebarTitle" | "deviceActivitySidebarTitle" | "linkedAccountsSidebarTitle" | "editAccountHtmlTitle" | "personalInfoHtmlTitle" | "federatedIdentitiesHtmlTitle" | "accountLogHtmlTitle" | "changePasswordHtmlTitle" | "deviceActivityHtmlTitle" | "sessionsHtmlTitle" | "accountManagementTitle" | "authenticatorTitle" | "applicationsHtmlTitle" | "linkedAccountsHtmlTitle" | "accountManagementWelcomeMessage" | "personalInfoIntroMessage" | "accountSecurityTitle" | "accountSecurityIntroMessage" | "applicationsIntroMessage" | "resourceIntroMessage" | "passwordLastUpdateMessage" | "updatePasswordMessageTitle" | "personalSubTitle" | "personalSubMessage" | "currentPassword" | "role_view-groups" | "role_view-consent" | "role_manage-consent" | "role_uma_authorization" | "allFieldsRequired" | "backTo" | "date" | "event" | "ip" | "client" | "clients" | "details" | "started" | "lastAccess" | "expires" | "applications" | "account" | "federatedIdentity" | "authenticator" | "device-activity" | "sessions" | "log" | "application" | "availableRoles" | "grantedPermissions" | "grantedPersonalInfo" | "additionalGrants" | "action" | "fullAccess" | "offlineToken" | "revoke" | "configureAuthenticators" | "mobile" | "totpStep1" | "totpStep2" | "totpStep3" | "totpStep3DeviceName" | "totpManualStep2" | "totpManualStep3" | "totpUnableToScan" | "totpScanBarcode" | "totp.totp" | "totp.hotp" | "totpType" | "totpAlgorithm" | "totpDigits" | "totpInterval" | "totpCounter" | "totpDeviceName" | "updateReadOnlyAttributesRejectedMessage" | "readOnlyUserMessage" | "readOnlyPasswordMessage" | "successTotpMessage" | "successTotpRemovedMessage" | "successGrantRevokedMessage" | "missingIdentityProviderMessage" | "invalidFederatedIdentityActionMessage" | "federatedIdentityLinkNotActiveMessage" | "federatedIdentityRemovingLastProviderMessage" | "identityProviderRedirectErrorMessage" | "identityProviderRemovedMessage" | "staleCodeAccountMessage" | "myResources" | "myResourcesSub" | "doDeny" | "doRevoke" | "doApprove" | "doRemoveSharing" | "doRemoveRequest" | "peopleAccessResource" | "resourceManagedPolicies" | "resourceNoPermissionsGrantingAccess" | "anyAction" | "description" | "name" | "scopes" | "resource" | "user" | "peopleSharingThisResource" | "shareWithOthers" | "needMyApproval" | "requestsWaitingApproval" | "icon" | "requestor" | "owner" | "resourcesSharedWithMe" | "permissionRequestion" | "permission" | "shares" | "notBeingShared" | "notHaveAnyResource" | "noResourcesSharedWithYou" | "havePermissionRequestsWaitingForApproval" | "clickHereForDetails" | "resourceIsNotBeingShared" | "locale_ar" | "locale_ca" | "locale_cs" | "locale_de" | "locale_en" | "locale_es" | "locale_fr" | "locale_hu" | "locale_it" | "locale_ja" | "locale_lt" | "locale_nl" | "locale_no" | "locale_pl" | "locale_pt-BR" | "locale_ru" | "locale_sk" | "locale_sv" | "locale_tr" | "locale_zh-CN" | "locale_fi" | "applicationName" | "applicationType" | "applicationInUse" | "clearAllFilter" | "activeFilters" | "filterByName" | "allApps" | "internalApps" | "thirdpartyApps" | "appResults" | "authorizedProvider" | "authorizedProviderMessage" | "identityProvider" | "identityProviderMessage" | "socialLogin" | "userDefined" | "removeAccess" | "removeAccessMessage" | "authenticatorStatusMessage" | "authenticatorFinishSetUpTitle" | "authenticatorFinishSetUpMessage" | "authenticatorSubTitle" | "authenticatorSubMessage" | "authenticatorMobileTitle" | "authenticatorMobileMessage" | "authenticatorMobileFinishSetUpMessage" | "authenticatorActionSetup" | "authenticatorSMSTitle" | "authenticatorSMSMessage" | "authenticatorSMSFinishSetUpMessage" | "authenticatorDefaultStatus" | "authenticatorChangePhone" | "authenticatorMobileSetupTitle" | "smscodeIntroMessage" | "mobileSetupStep1" | "mobileSetupStep2" | "mobileSetupStep3" | "scanBarCode" | "enterBarCode" | "doCopy" | "doFinish" | "authenticatorSMSCodeSetupTitle" | "chooseYourCountry" | "enterYourPhoneNumber" | "sendVerficationCode" | "enterYourVerficationCode" | "authenticatorBackupCodesSetupTitle" | "realmName" | "doDownload" | "doPrint" | "generateNewBackupCodes" | "backtoAuthenticatorPage" | "resources" | "sharedwithMe" | "share" | "sharedwith" | "accessPermissions" | "permissionRequests" | "approve" | "approveAll" | "people" | "perPage" | "currentPage" | "sharetheResource" | "group" | "selectPermission" | "addPeople" | "addTeam" | "myPermissions" | "waitingforApproval" | "anyPermission" | "newPasswordSameAsOld" | "passwordConfirmNotMatch", "ar" | "ca" | "cs" | "da" | "de" | "en" | "es" | "fi" | "fr" | "hu" | "it" | "ja" | "lt" | "lv" | "nl" | "no" | "pl" | "pt-BR" | "ru" | "sk" | "sv" | "tr" | "zh-CN">;
3
- type I18n = typeof I18nAccount | typeof I18nlogin;
4
- export { type I18n };
package/lib/i18n.mjs DELETED
@@ -1,6 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-unused-vars */
2
- import { i18nBuilder as accountI18nBuilder } from 'keycloakify/account/i18n/noJsx';
3
- import { i18nBuilder as loginI18nBuilder } from 'keycloakify/login/i18n/noJsx';
4
- const { ofTypeI18n: I18nlogin } = loginI18nBuilder.build();
5
- const { ofTypeI18n: I18nAccount } = accountI18nBuilder.build();
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2tleWNsb2FraWZ5LWFuZ3VsYXIvc3JjL2xpYi9pMThuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHNEQUFzRDtBQUV0RCxPQUFPLEVBQUUsV0FBVyxJQUFJLGtCQUFrQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbkYsT0FBTyxFQUFFLFdBQVcsSUFBSSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRS9FLE1BQU0sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLEdBQUcsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLENBQUM7QUFDM0QsTUFBTSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsR0FBRyxrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFycyAqL1xuXG5pbXBvcnQgeyBpMThuQnVpbGRlciBhcyBhY2NvdW50STE4bkJ1aWxkZXIgfSBmcm9tICdrZXljbG9ha2lmeS9hY2NvdW50L2kxOG4vbm9Kc3gnO1xuaW1wb3J0IHsgaTE4bkJ1aWxkZXIgYXMgbG9naW5JMThuQnVpbGRlciB9IGZyb20gJ2tleWNsb2FraWZ5L2xvZ2luL2kxOG4vbm9Kc3gnO1xuXG5jb25zdCB7IG9mVHlwZUkxOG46IEkxOG5sb2dpbiB9ID0gbG9naW5JMThuQnVpbGRlci5idWlsZCgpO1xuY29uc3QgeyBvZlR5cGVJMThuOiBJMThuQWNjb3VudCB9ID0gYWNjb3VudEkxOG5CdWlsZGVyLmJ1aWxkKCk7XG50eXBlIEkxOG4gPSB0eXBlb2YgSTE4bkFjY291bnQgfCB0eXBlb2YgSTE4bmxvZ2luO1xuZXhwb3J0IHsgdHlwZSBJMThuIH07XG4iXX0=
@@ -1 +0,0 @@
1
- export * from './script.model';
@@ -1,2 +0,0 @@
1
- export * from './script.model';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rZXljbG9ha2lmeS1hbmd1bGFyL3NyYy9saWIvbW9kZWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsZ0JBQWdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3NjcmlwdC5tb2RlbCc7XG4iXX0=
@@ -1,54 +0,0 @@
1
- import { DOCUMENT } from '@angular/common';
2
- import { APP_INITIALIZER, InjectionToken, LOCALE_ID, makeEnvironmentProviders } from '@angular/core';
3
- import { I18nService } from '../services';
4
- export const I18N = new InjectionToken('i18n');
5
- export const KC_CONTEXT = new InjectionToken('keycloak context');
6
- export const USE_DEFAULT_CSS = new InjectionToken('use default css');
7
- export const CLASSES = new InjectionToken('classes');
8
- export const DO_MAKE_USER_CONFIRM_PASSWORD = new InjectionToken('doMakeUserConfirmPassword');
9
- export const provideKeycloakifyAngular = (config) => makeEnvironmentProviders([
10
- {
11
- provide: KC_CONTEXT,
12
- useValue: window.kcContext
13
- },
14
- {
15
- provide: DO_MAKE_USER_CONFIRM_PASSWORD,
16
- useValue: config?.doMakeUserConfirmPassword ?? true
17
- },
18
- {
19
- provide: LOCALE_ID,
20
- useFactory: (document) => {
21
- return document.documentElement.lang ?? 'en';
22
- },
23
- deps: [DOCUMENT]
24
- },
25
- {
26
- provide: APP_INITIALIZER,
27
- multi: true,
28
- useFactory: (i18nService, kcContext) => async () => {
29
- const getI18n = config.getI18n;
30
- const { i18n, prI18n_currentLanguage } = getI18n({
31
- kcContext
32
- });
33
- let i18nPromise = new Promise(resolve => resolve(i18n));
34
- if (prI18n_currentLanguage) {
35
- i18nPromise = prI18n_currentLanguage;
36
- }
37
- return i18nPromise.then(i18n => {
38
- i18nService.i18n = i18n;
39
- return true;
40
- });
41
- },
42
- deps: [I18nService, KC_CONTEXT]
43
- },
44
- { provide: USE_DEFAULT_CSS, useValue: config?.doUseDefaultCss ?? true },
45
- { provide: CLASSES, useValue: config?.classes ?? {} },
46
- {
47
- provide: I18N,
48
- useFactory: (i18nService) => {
49
- return i18nService.i18n;
50
- },
51
- deps: [I18nService]
52
- }
53
- ]);
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5Y2xvYWtpZnktYW5ndWxhci5wcm92aWRlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rZXljbG9ha2lmeS1hbmd1bGFyL3NyYy9saWIvcHJvdmlkZXJzL2tleWNsb2FraWZ5LWFuZ3VsYXIucHJvdmlkZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQ0gsZUFBZSxFQUNmLGNBQWMsRUFDZCxTQUFTLEVBQ1Qsd0JBQXdCLEVBQzNCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFMUMsTUFBTSxDQUFDLE1BQU0sSUFBSSxHQUFHLElBQUksY0FBYyxDQUFPLE1BQU0sQ0FBQyxDQUFDO0FBQ3JELE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxJQUFJLGNBQWMsQ0FBWSxrQkFBa0IsQ0FBQyxDQUFDO0FBQzVFLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxJQUFJLGNBQWMsQ0FBVSxpQkFBaUIsQ0FBQyxDQUFDO0FBQzlFLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxJQUFJLGNBQWMsQ0FBaUMsU0FBUyxDQUFDLENBQUM7QUFDckYsTUFBTSxDQUFDLE1BQU0sNkJBQTZCLEdBQUcsSUFBSSxjQUFjLENBQzNELDJCQUEyQixDQUM5QixDQUFDO0FBc0JGLE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHLENBQUMsTUFBZ0MsRUFBRSxFQUFFLENBQzFFLHdCQUF3QixDQUFDO0lBQ3JCO1FBQ0ksT0FBTyxFQUFFLFVBQVU7UUFDbkIsUUFBUSxFQUFFLE1BQU0sQ0FBQyxTQUFTO0tBQzdCO0lBQ0Q7UUFDSSxPQUFPLEVBQUUsNkJBQTZCO1FBQ3RDLFFBQVEsRUFBRSxNQUFNLEVBQUUseUJBQXlCLElBQUksSUFBSTtLQUN0RDtJQUNEO1FBQ0ksT0FBTyxFQUFFLFNBQVM7UUFDbEIsVUFBVSxFQUFFLENBQUMsUUFBa0IsRUFBRSxFQUFFO1lBQy9CLE9BQU8sUUFBUSxDQUFDLGVBQWUsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDO1FBQ2pELENBQUM7UUFDRCxJQUFJLEVBQUUsQ0FBQyxRQUFRLENBQUM7S0FDbkI7SUFDRDtRQUNJLE9BQU8sRUFBRSxlQUFlO1FBQ3hCLEtBQUssRUFBRSxJQUFJO1FBQ1gsVUFBVSxFQUNOLENBQ0ksV0FBbUUsRUFDbkUsU0FBb0IsRUFDdEIsRUFBRSxDQUNKLEtBQUssSUFBSSxFQUFFO1lBQ1AsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztZQUUvQixNQUFNLEVBQUUsSUFBSSxFQUFFLHNCQUFzQixFQUFFLEdBQUcsT0FBTyxDQUFDO2dCQUM3QyxTQUFTO2FBQ1osQ0FBQyxDQUFDO1lBQ0gsSUFBSSxXQUFXLEdBQUcsSUFBSSxPQUFPLENBQWMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUNyRSxJQUFJLHNCQUFzQixFQUFFLENBQUM7Z0JBQ3pCLFdBQVcsR0FBRyxzQkFBc0IsQ0FBQztZQUN6QyxDQUFDO1lBQ0QsT0FBTyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUMzQixXQUFXLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztnQkFDeEIsT0FBTyxJQUFJLENBQUM7WUFDaEIsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDO1FBQ0wsSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLFVBQVUsQ0FBQztLQUNsQztJQUNELEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLGVBQWUsSUFBSSxJQUFJLEVBQUU7SUFDdkUsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsT0FBTyxJQUFJLEVBQUUsRUFBRTtJQUNyRDtRQUNJLE9BQU8sRUFBRSxJQUFJO1FBQ2IsVUFBVSxFQUFFLENBQ1IsV0FBbUUsRUFDckUsRUFBRTtZQUNBLE9BQU8sV0FBVyxDQUFDLElBQUksQ0FBQztRQUM1QixDQUFDO1FBQ0QsSUFBSSxFQUFFLENBQUMsV0FBVyxDQUFDO0tBQ3RCO0NBQ0osQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBBUFBfSU5JVElBTElaRVIsXG4gICAgSW5qZWN0aW9uVG9rZW4sXG4gICAgTE9DQUxFX0lELFxuICAgIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVyc1xufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEkxOG4gfSBmcm9tICcuLi9pMThuJztcbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMnO1xuXG5leHBvcnQgY29uc3QgSTE4TiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxJMThuPignaTE4bicpO1xuZXhwb3J0IGNvbnN0IEtDX0NPTlRFWFQgPSBuZXcgSW5qZWN0aW9uVG9rZW48S2NDb250ZXh0Pigna2V5Y2xvYWsgY29udGV4dCcpO1xuZXhwb3J0IGNvbnN0IFVTRV9ERUZBVUxUX0NTUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxib29sZWFuPigndXNlIGRlZmF1bHQgY3NzJyk7XG5leHBvcnQgY29uc3QgQ0xBU1NFUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjx7IFtrZXkgaW4gQ2xhc3NLZXldPzogc3RyaW5nIH0+KCdjbGFzc2VzJyk7XG5leHBvcnQgY29uc3QgRE9fTUFLRV9VU0VSX0NPTkZJUk1fUEFTU1dPUkQgPSBuZXcgSW5qZWN0aW9uVG9rZW48Ym9vbGVhbj4oXG4gICAgJ2RvTWFrZVVzZXJDb25maXJtUGFzc3dvcmQnXG4pO1xuXG50eXBlIENsYXNzS2V5ID1cbiAgICB8IGltcG9ydCgna2V5Y2xvYWtpZnkvbG9naW4vbGliL2tjQ2xzeCcpLkNsYXNzS2V5XG4gICAgfCBpbXBvcnQoJ2tleWNsb2FraWZ5L2FjY291bnQvbGliL2tjQ2xzeCcpLkNsYXNzS2V5O1xudHlwZSBLY0NvbnRleHRMaWtlID1cbiAgICB8IGltcG9ydCgna2V5Y2xvYWtpZnkvbG9naW4vaTE4bi9ub0pzeCcpLktjQ29udGV4dExpa2VcbiAgICB8IGltcG9ydCgna2V5Y2xvYWtpZnkvYWNjb3VudC9pMThuL25vSnN4JykuS2NDb250ZXh0TGlrZTtcbnR5cGUgS2NDb250ZXh0ID1cbiAgICB8IGltcG9ydCgna2V5Y2xvYWtpZnkvbG9naW4vS2NDb250ZXh0JykuS2NDb250ZXh0XG4gICAgfCBpbXBvcnQoJ2tleWNsb2FraWZ5L2FjY291bnQvS2NDb250ZXh0JykuS2NDb250ZXh0O1xuXG5leHBvcnQgdHlwZSBLZXljbG9ha2lmeUFuZ3VsYXJDb25maWcgPSB7XG4gICAgZG9NYWtlVXNlckNvbmZpcm1QYXNzd29yZD86IGJvb2xlYW47XG4gICAgZG9Vc2VEZWZhdWx0Q3NzPzogYm9vbGVhbjtcbiAgICBjbGFzc2VzPzogeyBba2V5IGluIENsYXNzS2V5XT86IHN0cmluZyB9O1xuICAgIGdldEkxOG46IChwYXJhbXM6IHsga2NDb250ZXh0OiBLY0NvbnRleHRMaWtlIH0pID0+IHtcbiAgICAgICAgaTE4bjogdW5rbm93bjtcbiAgICAgICAgcHJJMThuX2N1cnJlbnRMYW5ndWFnZTogUHJvbWlzZTx1bmtub3duPiB8IHVuZGVmaW5lZDtcbiAgICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IHByb3ZpZGVLZXljbG9ha2lmeUFuZ3VsYXIgPSAoY29uZmlnOiBLZXljbG9ha2lmeUFuZ3VsYXJDb25maWcpID0+XG4gICAgbWFrZUVudmlyb25tZW50UHJvdmlkZXJzKFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogS0NfQ09OVEVYVCxcbiAgICAgICAgICAgIHVzZVZhbHVlOiB3aW5kb3cua2NDb250ZXh0XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IERPX01BS0VfVVNFUl9DT05GSVJNX1BBU1NXT1JELFxuICAgICAgICAgICAgdXNlVmFsdWU6IGNvbmZpZz8uZG9NYWtlVXNlckNvbmZpcm1QYXNzd29yZCA/PyB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IExPQ0FMRV9JRCxcbiAgICAgICAgICAgIHVzZUZhY3Rvcnk6IChkb2N1bWVudDogRG9jdW1lbnQpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmxhbmcgPz8gJ2VuJztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBkZXBzOiBbRE9DVU1FTlRdXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcbiAgICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICAgICAgdXNlRmFjdG9yeTpcbiAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgIGkxOG5TZXJ2aWNlOiBJMThuU2VydmljZTxSZXR1cm5UeXBlPHR5cGVvZiBjb25maWcuZ2V0STE4bj5bJ2kxOG4nXT4sXG4gICAgICAgICAgICAgICAgICAgIGtjQ29udGV4dDogS2NDb250ZXh0XG4gICAgICAgICAgICAgICAgKSA9PlxuICAgICAgICAgICAgICAgIGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2V0STE4biA9IGNvbmZpZy5nZXRJMThuO1xuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgaTE4biwgcHJJMThuX2N1cnJlbnRMYW5ndWFnZSB9ID0gZ2V0STE4bih7XG4gICAgICAgICAgICAgICAgICAgICAgICBrY0NvbnRleHRcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIGxldCBpMThuUHJvbWlzZSA9IG5ldyBQcm9taXNlPHR5cGVvZiBpMThuPihyZXNvbHZlID0+IHJlc29sdmUoaTE4bikpO1xuICAgICAgICAgICAgICAgICAgICBpZiAocHJJMThuX2N1cnJlbnRMYW5ndWFnZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaTE4blByb21pc2UgPSBwckkxOG5fY3VycmVudExhbmd1YWdlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBpMThuUHJvbWlzZS50aGVuKGkxOG4gPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaTE4blNlcnZpY2UuaTE4biA9IGkxOG47XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGRlcHM6IFtJMThuU2VydmljZSwgS0NfQ09OVEVYVF1cbiAgICAgICAgfSxcbiAgICAgICAgeyBwcm92aWRlOiBVU0VfREVGQVVMVF9DU1MsIHVzZVZhbHVlOiBjb25maWc/LmRvVXNlRGVmYXVsdENzcyA/PyB0cnVlIH0sXG4gICAgICAgIHsgcHJvdmlkZTogQ0xBU1NFUywgdXNlVmFsdWU6IGNvbmZpZz8uY2xhc3NlcyA/PyB7fSB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBJMThOLFxuICAgICAgICAgICAgdXNlRmFjdG9yeTogKFxuICAgICAgICAgICAgICAgIGkxOG5TZXJ2aWNlOiBJMThuU2VydmljZTxSZXR1cm5UeXBlPHR5cGVvZiBjb25maWcuZ2V0STE4bj5bJ2kxOG4nXT5cbiAgICAgICAgICAgICkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBpMThuU2VydmljZS5pMThuO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGRlcHM6IFtJMThuU2VydmljZV1cbiAgICAgICAgfVxuICAgIF0pO1xuIl19
@@ -1,10 +0,0 @@
1
- import { KcContext as KcAccountContext } from 'keycloakify/account/KcContext';
2
- import { KcContext as KcLoginContext } from 'keycloakify/login/KcContext';
3
- declare global {
4
- interface Window {
5
- kcContext?: KcLoginContext | KcAccountContext;
6
- }
7
- }
8
- export * from './models';
9
- export * from './providers/keycloakify-angular.providers';
10
- export * from './services';
@@ -1,4 +0,0 @@
1
- export * from './models';
2
- export * from './providers/keycloakify-angular.providers';
3
- export * from './services';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2tleWNsb2FraWZ5LWFuZ3VsYXIvc3JjL2xpYi9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVNBLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyxZQUFZLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBLY0NvbnRleHQgYXMgS2NBY2NvdW50Q29udGV4dCB9IGZyb20gJ2tleWNsb2FraWZ5L2FjY291bnQvS2NDb250ZXh0JztcbmltcG9ydCB7IEtjQ29udGV4dCBhcyBLY0xvZ2luQ29udGV4dCB9IGZyb20gJ2tleWNsb2FraWZ5L2xvZ2luL0tjQ29udGV4dCc7XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgICBpbnRlcmZhY2UgV2luZG93IHtcbiAgICAgICAga2NDb250ZXh0PzogS2NMb2dpbkNvbnRleHQgfCBLY0FjY291bnRDb250ZXh0O1xuICAgIH1cbn1cblxuZXhwb3J0ICogZnJvbSAnLi9tb2RlbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9wcm92aWRlcnMva2V5Y2xvYWtpZnktYW5ndWxhci5wcm92aWRlcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcyc7XG4iXX0=
@@ -1,6 +0,0 @@
1
- import * as i0 from "@angular/core";
2
- export declare class I18nService<T> {
3
- i18n: T;
4
- static ɵfac: i0.ɵɵFactoryDeclaration<I18nService<any>, never>;
5
- static ɵprov: i0.ɵɵInjectableDeclaration<I18nService<any>>;
6
- }
@@ -1,2 +0,0 @@
1
- export * from './resource-injector.service';
2
- export * from './i18n.service';
@@ -1,3 +0,0 @@
1
- export * from './resource-injector.service';
2
- export * from './i18n.service';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rZXljbG9ha2lmeS1hbmd1bGFyL3NyYy9saWIvc2VydmljZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9yZXNvdXJjZS1pbmplY3Rvci5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vaTE4bi5zZXJ2aWNlJztcbiJdfQ==
@@ -1,105 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, computed, input, output } from '@angular/core';
2
- import { MsgStrPipe } from '../../../login/pipes/msg-str.pipe';
3
- import * as i0 from "@angular/core";
4
- export class AddRemoveButtonsMultiValuedAttributeComponent {
5
- constructor() {
6
- this.attribute = input();
7
- this.values = input();
8
- this.fieldIndex = input();
9
- this.dispatchFormAction = output();
10
- this.hasRemove = computed(() => {
11
- const attribute = this.attribute();
12
- const values = this.values();
13
- const fieldIndex = this.fieldIndex();
14
- if (attribute && values && fieldIndex) {
15
- return this.getButtonToDisplayForMultivaluedAttributeField({
16
- attribute,
17
- values,
18
- fieldIndex
19
- }).hasRemove;
20
- }
21
- return false;
22
- });
23
- this.hasAdd = computed(() => {
24
- const attribute = this.attribute();
25
- const values = this.values();
26
- const fieldIndex = this.fieldIndex();
27
- if (attribute && values && fieldIndex) {
28
- return this.getButtonToDisplayForMultivaluedAttributeField({
29
- attribute,
30
- values,
31
- fieldIndex
32
- }).hasAdd;
33
- }
34
- return false;
35
- });
36
- }
37
- onAdd() {
38
- this.dispatchFormAction.emit({
39
- action: 'update',
40
- name: this.attribute()?.name ?? '',
41
- valueOrValues: [...(this.values() ?? []), '']
42
- });
43
- }
44
- onRemove() {
45
- this.dispatchFormAction.emit({
46
- action: 'update',
47
- name: this.attribute()?.name ?? '',
48
- valueOrValues: (this.values() ?? []).filter((_, i) => i !== this.fieldIndex())
49
- });
50
- }
51
- getButtonToDisplayForMultivaluedAttributeField(params) {
52
- const { attribute, values, fieldIndex } = params;
53
- const hasRemove = (() => {
54
- if (values.length === 1) {
55
- return false;
56
- }
57
- const minCount = (() => {
58
- const { multivalued } = attribute.validators;
59
- if (multivalued === undefined) {
60
- return undefined;
61
- }
62
- const minStr = multivalued.min;
63
- if (minStr === undefined) {
64
- return undefined;
65
- }
66
- return parseInt(`${minStr}`);
67
- })();
68
- if (minCount === undefined) {
69
- return true;
70
- }
71
- if (values.length === minCount) {
72
- return false;
73
- }
74
- return true;
75
- })();
76
- const hasAdd = (() => {
77
- if (fieldIndex + 1 !== values.length) {
78
- return false;
79
- }
80
- const maxCount = (() => {
81
- const { multivalued } = attribute.validators;
82
- if (multivalued === undefined) {
83
- return undefined;
84
- }
85
- const maxStr = multivalued.max;
86
- if (maxStr === undefined) {
87
- return undefined;
88
- }
89
- return parseInt(`${maxStr}`);
90
- })();
91
- if (maxCount === undefined) {
92
- return true;
93
- }
94
- return values.length !== maxCount;
95
- })();
96
- return { hasRemove, hasAdd };
97
- }
98
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: AddRemoveButtonsMultiValuedAttributeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
99
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.6", type: AddRemoveButtonsMultiValuedAttributeComponent, isStandalone: true, selector: "kc-add-remove-buttons-multi-valued-attribute", inputs: { attribute: { classPropertyName: "attribute", publicName: "attribute", isSignal: true, isRequired: false, transformFunction: null }, values: { classPropertyName: "values", publicName: "values", isSignal: true, isRequired: false, transformFunction: null }, fieldIndex: { classPropertyName: "fieldIndex", publicName: "fieldIndex", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { dispatchFormAction: "dispatchFormAction" }, ngImport: i0, template: "@let idPostfix = attribute()?.name ?? '' + '-' + (fieldIndex() ?? 0 + 1);\n@if (hasRemove()) {\n <button\n [id]=\"'kc-remove-' + idPostfix\"\n type=\"button\"\n class=\"pf-c-button pf-m-inline pf-m-link\"\n (click)=\"onRemove()\"\n >\n {{ 'remove' | msgStr }}\n </button>\n @if (hasAdd()) {\n &nbsp;|&nbsp;\n }\n}\n@if (hasAdd()) {\n <button\n [id]=\"'kc-add-' + idPostfix\"\n type=\"button\"\n class=\"pf-c-button pf-m-inline pf-m-link\"\n (click)=\"onAdd()\"\n >\n {{ 'addValue' | msgStr }}\n </button>\n}\n", styles: [":host{display:contents}\n"], dependencies: [{ kind: "pipe", type: MsgStrPipe, name: "msgStr" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
100
- }
101
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: AddRemoveButtonsMultiValuedAttributeComponent, decorators: [{
102
- type: Component,
103
- args: [{ standalone: true, imports: [MsgStrPipe], selector: 'kc-add-remove-buttons-multi-valued-attribute', changeDetection: ChangeDetectionStrategy.OnPush, template: "@let idPostfix = attribute()?.name ?? '' + '-' + (fieldIndex() ?? 0 + 1);\n@if (hasRemove()) {\n <button\n [id]=\"'kc-remove-' + idPostfix\"\n type=\"button\"\n class=\"pf-c-button pf-m-inline pf-m-link\"\n (click)=\"onRemove()\"\n >\n {{ 'remove' | msgStr }}\n </button>\n @if (hasAdd()) {\n &nbsp;|&nbsp;\n }\n}\n@if (hasAdd()) {\n <button\n [id]=\"'kc-add-' + idPostfix\"\n type=\"button\"\n class=\"pf-c-button pf-m-inline pf-m-link\"\n (click)=\"onAdd()\"\n >\n {{ 'addValue' | msgStr }}\n </button>\n}\n", styles: [":host{display:contents}\n"] }]
104
- }] });
105
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLXJlbW92ZS1idXR0b25zLW11bHRpLXZhbHVlZC1hdHRyaWJ1dGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2V5Y2xvYWtpZnktYW5ndWxhci9zcmMvbG9naW4vY29tcG9uZW50cy9hZGQtcmVtb3ZlLWJ1dHRvbnMtbXVsdGktdmFsdWVkLWF0dHJpYnV0ZS9hZGQtcmVtb3ZlLWJ1dHRvbnMtbXVsdGktdmFsdWVkLWF0dHJpYnV0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rZXljbG9ha2lmeS1hbmd1bGFyL3NyYy9sb2dpbi9jb21wb25lbnRzL2FkZC1yZW1vdmUtYnV0dG9ucy1tdWx0aS12YWx1ZWQtYXR0cmlidXRlL2FkZC1yZW1vdmUtYnV0dG9ucy1tdWx0aS12YWx1ZWQtYXR0cmlidXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFNUYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtDQUErQyxDQUFDOztBQWlCM0UsTUFBTSxPQUFPLDZDQUE2QztJQWQxRDtRQWVJLGNBQVMsR0FBRyxLQUFLLEVBQWEsQ0FBQztRQUMvQixXQUFNLEdBQUcsS0FBSyxFQUFZLENBQUM7UUFDM0IsZUFBVSxHQUFHLEtBQUssRUFBVSxDQUFDO1FBQzdCLHVCQUFrQixHQUFHLE1BQU0sRUFBYyxDQUFDO1FBRTFDLGNBQVMsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ3RCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNuQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDN0IsTUFBTSxVQUFVLEdBQUcsSUFBSSxD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LCBjb21wdXRlZCwgaW5wdXQsIG91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQXR0cmlidXRlIH0gZnJvbSAna2V5Y2xvYWtpZnkvbG9naW4vS2NDb250ZXh0JztcbmltcG9ydCB7IE1zZ1N0clBpcGUgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9waXBlcy9tc2ctc3RyLnBpcGUnO1xuaW1wb3J0IHsgRm9ybUFjdGlvbiB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL3NlcnZpY2VzL3VzZXItcHJvZmlsZS1mb3JtLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHN0eWxlczogW1xuICAgICAgICBgXG4gICAgICAgICAgICA6aG9zdCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogY29udGVudHM7XG4gICAgICAgICAgICB9XG4gICAgICAgIGBcbiAgICBdLFxuICAgIGltcG9ydHM6IFtNc2dTdHJQaXBlXSxcbiAgICBzZWxlY3RvcjogJ2tjLWFkZC1yZW1vdmUtYnV0dG9ucy1tdWx0aS12YWx1ZWQtYXR0cmlidXRlJyxcbiAgICB0ZW1wbGF0ZVVybDogJ2FkZC1yZW1vdmUtYnV0dG9ucy1tdWx0aS12YWx1ZWQtYXR0cmlidXRlLmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBBZGRSZW1vdmVCdXR0b25zTXVsdGlWYWx1ZWRBdHRyaWJ1dGVDb21wb25lbnQge1xuICAgIGF0dHJpYnV0ZSA9IGlucHV0PEF0dHJpYnV0ZT4oKTtcbiAgICB2YWx1ZXMgPSBpbnB1dDxzdHJpbmdbXT4oKTtcbiAgICBmaWVsZEluZGV4ID0gaW5wdXQ8bnVtYmVyPigpO1xuICAgIGRpc3BhdGNoRm9ybUFjdGlvbiA9IG91dHB1dDxGb3JtQWN0aW9uPigpO1xuXG4gICAgaGFzUmVtb3ZlID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICBjb25zdCBhdHRyaWJ1dGUgPSB0aGlzLmF0dHJpYnV0ZSgpO1xuICAgICAgICBjb25zdCB2YWx1ZXMgPSB0aGlzLnZhbHVlcygpO1xuICAgICAgICBjb25zdCBmaWVsZEluZGV4ID0gdGhpcy5maWVsZEluZGV4KCk7XG4gICAgICAgIGlmIChhdHRyaWJ1dGUgJiYgdmFsdWVzICYmIGZpZWxkSW5kZXgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldEJ1dHRvblRvRGlzcGxheUZvck11bHRpdmFsdWVkQXR0cmlidXRlRmllbGQoe1xuICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSxcbiAgICAgICAgICAgICAgICB2YWx1ZXMsXG4gICAgICAgICAgICAgICAgZmllbGRJbmRleFxuICAgICAgICAgICAgfSkuaGFzUmVtb3ZlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9KTtcbiAgICBoYXNBZGQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IGF0dHJpYnV0ZSA9IHRoaXMuYXR0cmlidXRlKCk7XG4gICAgICAgIGNvbnN0IHZhbHVlcyA9IHRoaXMudmFsdWVzKCk7XG4gICAgICAgIGNvbnN0IGZpZWxkSW5kZXggPSB0aGlzLmZpZWxkSW5kZXgoKTtcbiAgICAgICAgaWYgKGF0dHJpYnV0ZSAmJiB2YWx1ZXMgJiYgZmllbGRJbmRleCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0QnV0dG9uVG9EaXNwbGF5Rm9yTXVsdGl2YWx1ZWRBdHRyaWJ1dGVGaWVsZCh7XG4gICAgICAgICAgICAgICAgYXR0cmlidXRlLFxuICAgICAgICAgICAgICAgIHZhbHVlcyxcbiAgICAgICAgICAgICAgICBmaWVsZEluZGV4XG4gICAgICAgICAgICB9KS5oYXNBZGQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0pO1xuXG4gICAgb25BZGQoKSB7XG4gICAgICAgIHRoaXMuZGlzcGF0Y2hGb3JtQWN0aW9uLmVtaXQoe1xuICAgICAgICAgICAgYWN0aW9uOiAndXBkYXRlJyxcbiAgICAgICAgICAgIG5hbWU6IHRoaXMuYXR0cmlidXRlKCk/Lm5hbWUgPz8gJycsXG4gICAgICAgICAgICB2YWx1ZU9yVmFsdWVzOiBbLi4uKHRoaXMudmFsdWVzKCkgPz8gW10pLCAnJ11cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb25SZW1vdmUoKSB7XG4gICAgICAgIHRoaXMuZGlzcGF0Y2hGb3JtQWN0aW9uLmVtaXQoe1xuICAgICAgICAgICAgYWN0aW9uOiAndXBkYXRlJyxcbiAgICAgICAgICAgIG5hbWU6IHRoaXMuYXR0cmlidXRlKCk/Lm5hbWUgPz8gJycsXG4gICAgICAgICAgICB2YWx1ZU9yVmFsdWVzOiAodGhpcy52YWx1ZXMoKSA/PyBbXSkuZmlsdGVyKChfLCBpKSA9PiBpICE9PSB0aGlzLmZpZWxkSW5kZXgoKSlcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRCdXR0b25Ub0Rpc3BsYXlGb3JNdWx0aXZhbHVlZEF0dHJpYnV0ZUZpZWxkKHBhcmFtczogeyBhdHRyaWJ1dGU6IEF0dHJpYnV0ZTsgdmFsdWVzOiBzdHJpbmdbXTsgZmllbGRJbmRleDogbnVtYmVyIH0pIHtcbiAgICAgICAgY29uc3QgeyBhdHRyaWJ1dGUsIHZhbHVlcywgZmllbGRJbmRleCB9ID0gcGFyYW1zO1xuXG4gICAgICAgIGNvbnN0IGhhc1JlbW92ZSA9ICgoKSA9PiB7XG4gICAgICAgICAgICBpZiAodmFsdWVzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgbWluQ291bnQgPSAoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgbXVsdGl2YWx1ZWQgfSA9IGF0dHJpYnV0ZS52YWxpZGF0b3JzO1xuXG4gICAgICAgICAgICAgICAgaWYgKG11bHRpdmFsdWVkID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjb25zdCBtaW5TdHIgPSBtdWx0aXZhbHVlZC5taW47XG5cbiAgICAgICAgICAgICAgICBpZiAobWluU3RyID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gcGFyc2VJbnQoYCR7bWluU3RyfWApO1xuICAgICAgICAgICAgfSkoKTtcblxuICAgICAgICAgICAgaWYgKG1pbkNvdW50ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHZhbHVlcy5sZW5ndGggPT09IG1pbkNvdW50KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfSkoKTtcblxuICAgICAgICBjb25zdCBoYXNBZGQgPSAoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKGZpZWxkSW5kZXggKyAxICE9PSB2YWx1ZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBtYXhDb3VudCA9ICgoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgeyBtdWx0aXZhbHVlZCB9ID0gYXR0cmlidXRlLnZhbGlkYXRvcnM7XG5cbiAgICAgICAgICAgICAgICBpZiAobXVsdGl2YWx1ZWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGNvbnN0IG1heFN0ciA9IG11bHRpdmFsdWVkLm1heDtcblxuICAgICAgICAgICAgICAgIGlmIChtYXhTdHIgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiBwYXJzZUludChgJHttYXhTdHJ9YCk7XG4gICAgICAgICAgICB9KSgpO1xuXG4gICAgICAgICAgICBpZiAobWF4Q291bnQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gdmFsdWVzLmxlbmd0aCAhPT0gbWF4Q291bnQ7XG4gICAgICAgIH0pKCk7XG5cbiAgICAgICAgcmV0dXJuIHsgaGFzUmVtb3ZlLCBoYXNBZGQgfTtcbiAgICB9XG59XG4iLCJAbGV0IGlkUG9zdGZpeCA9IGF0dHJpYnV0ZSgpPy5uYW1lID8/ICcnICsgJy0nICsgKGZpZWxkSW5kZXgoKSA/PyAwICsgMSk7XG5AaWYgKGhhc1JlbW92ZSgpKSB7XG4gICAgPGJ1dHRvblxuICAgICAgICBbaWRdPVwiJ2tjLXJlbW92ZS0nICsgaWRQb3N0Zml4XCJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIGNsYXNzPVwicGYtYy1idXR0b24gcGYtbS1pbmxpbmUgcGYtbS1saW5rXCJcbiAgICAgICAgKGNsaWNrKT1cIm9uUmVtb3ZlKClcIlxuICAgID5cbiAgICAgICAge3sgJ3JlbW92ZScgfCBtc2dTdHIgfX1cbiAgICA8L2J1dHRvbj5cbiAgICBAaWYgKGhhc0FkZCgpKSB7XG4gICAgICAgICZuYnNwO3wmbmJzcDtcbiAgICB9XG59XG5AaWYgKGhhc0FkZCgpKSB7XG4gICAgPGJ1dHRvblxuICAgICAgICBbaWRdPVwiJ2tjLWFkZC0nICsgaWRQb3N0Zml4XCJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIGNsYXNzPVwicGYtYy1idXR0b24gcGYtbS1pbmxpbmUgcGYtbS1saW5rXCJcbiAgICAgICAgKGNsaWNrKT1cIm9uQWRkKClcIlxuICAgID5cbiAgICAgICAge3sgJ2FkZFZhbHVlJyB8IG1zZ1N0ciB9fVxuICAgIDwvYnV0dG9uPlxufVxuIl19
@@ -1,41 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, computed, forwardRef, inject, input } from '@angular/core';
2
- import { CLASSES, USE_DEFAULT_CSS } from '../../../lib/public-api';
3
- import { ComponentReference } from '../../../login/classes/component-reference.class';
4
- import { AttributesDirective } from '../../../login/directives/attributes.directive';
5
- import { KcClassDirective } from '../../../login/directives/kc-class.directive';
6
- import { AdvancedMsgStrPipe } from '../../../login/pipes/advanced-msg-str.pipe';
7
- import * as i0 from "@angular/core";
8
- export class GroupLabelComponent extends ComponentReference {
9
- constructor() {
10
- super(...arguments);
11
- this.attribute = input();
12
- this.groupName = input();
13
- this.doUseDefaultCss = inject(USE_DEFAULT_CSS);
14
- this.classes = inject(CLASSES);
15
- this.groupNameRef = computed(() => {
16
- const attribute = this.attribute();
17
- const groupName = this.groupName();
18
- if (attribute?.group?.name !== groupName) {
19
- return attribute?.group?.name ?? '';
20
- }
21
- return '';
22
- });
23
- }
24
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: GroupLabelComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
25
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.6", type: GroupLabelComponent, isStandalone: true, selector: "kc-group-label", inputs: { attribute: { classPropertyName: "attribute", publicName: "attribute", isSignal: true, isRequired: false, transformFunction: null }, groupName: { classPropertyName: "groupName", publicName: "groupName", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
26
- {
27
- provide: ComponentReference,
28
- useExisting: forwardRef(() => GroupLabelComponent)
29
- }
30
- ], usesInheritance: true, ngImport: i0, template: "@let attr = attribute();\n@let groupName = groupNameRef();\n@if (attr && groupName !== '') {\n <div\n [kcClass]=\"'kcFormGroupClass'\"\n [kcAttributes]=\"attr.group?.html5DataAnnotations\"\n >\n @let groupDisplayHeader = attr.group?.displayHeader ?? '';\n @let groupHeaderText = groupDisplayHeader !== '' ? groupDisplayHeader : (attr.group?.name ?? '');\n <div [kcClass]=\"'kcContentWrapperClass'\">\n <label\n [id]=\"'header-' + attr.group?.name\"\n [kcClass]=\"'kcFormGroupHeader'\"\n >\n {{ groupHeaderText | advancedMsgStr }}\n </label>\n </div>\n @let groupDisplayDescription = attr.group?.displayDescription ?? '';\n @if (groupDisplayDescription !== '') {\n <div [kcClass]=\"'kcLabelWrapperClass'\">\n <label\n [id]=\"'description-' + attr.group?.name\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ groupDisplayDescription | advancedMsgStr }}\n </label>\n </div>\n }\n </div>\n}\n", styles: [":host{display:contents}\n"], dependencies: [{ kind: "directive", type: KcClassDirective, selector: "[kcClass]", inputs: ["class", "ngClass", "kcClass"] }, { kind: "directive", type: AttributesDirective, selector: "[kcAttributes]", inputs: ["kcAttributes"] }, { kind: "pipe", type: AdvancedMsgStrPipe, name: "advancedMsgStr" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
31
- }
32
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: GroupLabelComponent, decorators: [{
33
- type: Component,
34
- args: [{ standalone: true, imports: [KcClassDirective, AttributesDirective, AdvancedMsgStrPipe], selector: 'kc-group-label', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
35
- {
36
- provide: ComponentReference,
37
- useExisting: forwardRef(() => GroupLabelComponent)
38
- }
39
- ], template: "@let attr = attribute();\n@let groupName = groupNameRef();\n@if (attr && groupName !== '') {\n <div\n [kcClass]=\"'kcFormGroupClass'\"\n [kcAttributes]=\"attr.group?.html5DataAnnotations\"\n >\n @let groupDisplayHeader = attr.group?.displayHeader ?? '';\n @let groupHeaderText = groupDisplayHeader !== '' ? groupDisplayHeader : (attr.group?.name ?? '');\n <div [kcClass]=\"'kcContentWrapperClass'\">\n <label\n [id]=\"'header-' + attr.group?.name\"\n [kcClass]=\"'kcFormGroupHeader'\"\n >\n {{ groupHeaderText | advancedMsgStr }}\n </label>\n </div>\n @let groupDisplayDescription = attr.group?.displayDescription ?? '';\n @if (groupDisplayDescription !== '') {\n <div [kcClass]=\"'kcLabelWrapperClass'\">\n <label\n [id]=\"'description-' + attr.group?.name\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ groupDisplayDescription | advancedMsgStr }}\n </label>\n </div>\n }\n </div>\n}\n", styles: [":host{display:contents}\n"] }]
40
- }] });
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXAtbGFiZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2V5Y2xvYWtpZnktYW5ndWxhci9zcmMvbG9naW4vY29tcG9uZW50cy9ncm91cC1sYWJlbC9ncm91cC1sYWJlbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rZXljbG9ha2lmeS1hbmd1bGFyL3NyYy9sb2dpbi9jb21wb25lbnRzL2dyb3VwLWxhYmVsL2dyb3VwLWxhYmVsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hHLE9BQU8sRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFHL0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOERBQThELENBQUM7QUFDbEcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDakcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFDNUYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0RBQXdELENBQUM7O0FBc0I1RixNQUFNLE9BQU8sbUJBQW9CLFNBQVEsa0JBQWtCO0lBcEIzRDs7UUFxQkksY0FBUyxHQUFHLEtBQUssRUFBYSxDQUFDO1FBQy9CLGNBQVMsR0FBRyxLQUFLLEVBQVUsQ0FBQztRQUNuQixvQkFBZSxHQUFHLE1BQU0sQ0FBVSxlQUFlLENBQUMsQ0FBQztRQUNuRCxZQUFPLEdBQUcsTUFBTSxDQUFvQyxPQUFPLENBQUMsQ0FBQztRQUN0RSxpQkFBWSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDekIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ25DLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNuQyxJQUFJLFNBQVMsRUFBRSxLQUFLLEVBQUUsSUFBSSxLQUFLLFNBQVMsRUFBRSxDQUFDO2dCQUN2QyxPQUFPLFNBQVMsRUFBRSxLQUFLLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUN4QyxDQUFDO1lBQ0QsT0FBTyxFQUFFLENBQUM7UUFDZCxDQUFDLENBQUMsQ0FBQztLQUNOOzhHQWJZLG1CQUFtQjtrR0FBbkIsbUJBQW1CLGlWQVBqQjtZQUNQO2dCQUNJLE9BQU8sRUFBRSxrQkFBa0I7Z0JBQzNCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsbUJBQW1CLENBQUM7YUFDckQ7U0FDSixpREMzQkwscW9DQThCQSxtRkRaYyxnQkFBZ0IsK0ZBQUUsbUJBQW1CLGdGQUFFLGtCQUFrQjs7MkZBVzFELG1CQUFtQjtrQkFwQi9CLFNBQVM7aUNBQ00sSUFBSSxXQVFQLENBQUMsZ0JBQWdCLEVBQUUsbUJBQW1CLEVBQUUsa0JBQWtCLENBQUMsWUFDMUQsZ0JBQWdCLG1CQUVULHVCQUF1QixDQUFDLE1BQU0sYUFDcEM7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLGtCQUFrQjs0QkFDM0IsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsb0JBQW9CLENBQUM7eUJBQ3JEO3FCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQsIGZvcndhcmRSZWYsIGluamVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENMQVNTRVMsIFVTRV9ERUZBVUxUX0NTUyB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xpYi9wdWJsaWMtYXBpJztcbmltcG9ydCB7IEF0dHJpYnV0ZSB9IGZyb20gJ2tleWNsb2FraWZ5L2xvZ2luL0tjQ29udGV4dCc7XG5pbXBvcnQgeyBDbGFzc0tleSB9IGZyb20gJ2tleWNsb2FraWZ5L2xvZ2luL2xpYi9rY0Nsc3gnO1xuaW1wb3J0IHsgQ29tcG9uZW50UmVmZXJlbmNlIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vY2xhc3Nlcy9jb21wb25lbnQtcmVmZXJlbmNlLmNsYXNzJztcbmltcG9ydCB7IEF0dHJpYnV0ZXNEaXJlY3RpdmUgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9kaXJlY3RpdmVzL2F0dHJpYnV0ZXMuZGlyZWN0aXZlJztcbmltcG9ydCB7IEtjQ2xhc3NEaXJlY3RpdmUgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9kaXJlY3RpdmVzL2tjLWNsYXNzLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBBZHZhbmNlZE1zZ1N0clBpcGUgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9waXBlcy9hZHZhbmNlZC1tc2ctc3RyLnBpcGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHN0eWxlczogW1xuICAgICAgICBgXG4gICAgICAgICAgICA6aG9zdCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogY29udGVudHM7XG4gICAgICAgICAgICB9XG4gICAgICAgIGBcbiAgICBdLFxuICAgIGltcG9ydHM6IFtLY0NsYXNzRGlyZWN0aXZlLCBBdHRyaWJ1dGVzRGlyZWN0aXZlLCBBZHZhbmNlZE1zZ1N0clBpcGVdLFxuICAgIHNlbGVjdG9yOiAna2MtZ3JvdXAtbGFiZWwnLFxuICAgIHRlbXBsYXRlVXJsOiAnZ3JvdXAtbGFiZWwuY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBDb21wb25lbnRSZWZlcmVuY2UsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBHcm91cExhYmVsQ29tcG9uZW50KVxuICAgICAgICB9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBHcm91cExhYmVsQ29tcG9uZW50IGV4dGVuZHMgQ29tcG9uZW50UmVmZXJlbmNlIHtcbiAgICBhdHRyaWJ1dGUgPSBpbnB1dDxBdHRyaWJ1dGU+KCk7XG4gICAgZ3JvdXBOYW1lID0gaW5wdXQ8c3RyaW5nPigpO1xuICAgIG92ZXJyaWRlIGRvVXNlRGVmYXVsdENzcyA9IGluamVjdDxib29sZWFuPihVU0VfREVGQVVMVF9DU1MpO1xuICAgIG92ZXJyaWRlIGNsYXNzZXMgPSBpbmplY3Q8UGFydGlhbDxSZWNvcmQ8Q2xhc3NLZXksIHN0cmluZz4+PihDTEFTU0VTKTtcbiAgICBncm91cE5hbWVSZWYgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IGF0dHJpYnV0ZSA9IHRoaXMuYXR0cmlidXRlKCk7XG4gICAgICAgIGNvbnN0IGdyb3VwTmFtZSA9IHRoaXMuZ3JvdXBOYW1lKCk7XG4gICAgICAgIGlmIChhdHRyaWJ1dGU/Lmdyb3VwPy5uYW1lICE9PSBncm91cE5hbWUpIHtcbiAgICAgICAgICAgIHJldHVybiBhdHRyaWJ1dGU/Lmdyb3VwPy5uYW1lID8/ICcnO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAnJztcbiAgICB9KTtcbn1cbiIsIkBsZXQgYXR0ciA9IGF0dHJpYnV0ZSgpO1xuQGxldCBncm91cE5hbWUgPSBncm91cE5hbWVSZWYoKTtcbkBpZiAoYXR0ciAmJiBncm91cE5hbWUgIT09ICcnKSB7XG4gICAgPGRpdlxuICAgICAgICBba2NDbGFzc109XCIna2NGb3JtR3JvdXBDbGFzcydcIlxuICAgICAgICBba2NBdHRyaWJ1dGVzXT1cImF0dHIuZ3JvdXA/Lmh0bWw1RGF0YUFubm90YXRpb25zXCJcbiAgICA+XG4gICAgICAgIEBsZXQgZ3JvdXBEaXNwbGF5SGVhZGVyID0gYXR0ci5ncm91cD8uZGlzcGxheUhlYWRlciA/PyAnJztcbiAgICAgICAgQGxldCBncm91cEhlYWRlclRleHQgPSBncm91cERpc3BsYXlIZWFkZXIgIT09ICcnID8gZ3JvdXBEaXNwbGF5SGVhZGVyIDogKGF0dHIuZ3JvdXA/Lm5hbWUgPz8gJycpO1xuICAgICAgICA8ZGl2IFtrY0NsYXNzXT1cIidrY0NvbnRlbnRXcmFwcGVyQ2xhc3MnXCI+XG4gICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgICBbaWRdPVwiJ2hlYWRlci0nICsgYXR0ci5ncm91cD8ubmFtZVwiXG4gICAgICAgICAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjRm9ybUdyb3VwSGVhZGVyJ1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3sgZ3JvdXBIZWFkZXJUZXh0IHwgYWR2YW5jZWRNc2dTdHIgfX1cbiAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICBAbGV0IGdyb3VwRGlzcGxheURlc2NyaXB0aW9uID0gYXR0ci5ncm91cD8uZGlzcGxheURlc2NyaXB0aW9uID8/ICcnO1xuICAgICAgICBAaWYgKGdyb3VwRGlzcGxheURlc2NyaXB0aW9uICE9PSAnJykge1xuICAgICAgICAgICAgPGRpdiBba2NDbGFzc109XCIna2NMYWJlbFdyYXBwZXJDbGFzcydcIj5cbiAgICAgICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgICAgICAgW2lkXT1cIidkZXNjcmlwdGlvbi0nICsgYXR0ci5ncm91cD8ubmFtZVwiXG4gICAgICAgICAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY0xhYmVsQ2xhc3MnXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHt7IGdyb3VwRGlzcGxheURlc2NyaXB0aW9uIHwgYWR2YW5jZWRNc2dTdHIgfX1cbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICA8L2Rpdj5cbn1cbiJdfQ==
@@ -1,5 +0,0 @@
1
- import * as i0 from "@angular/core";
2
- export declare class HelloWorldComponent {
3
- static ɵfac: i0.ɵɵFactoryDeclaration<HelloWorldComponent, never>;
4
- static ɵcmp: i0.ɵɵComponentDeclaration<HelloWorldComponent, "kc-hello-world", never, {}, {}, never, never, true, never>;
5
- }
@@ -1,11 +0,0 @@
1
- import { Component } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class HelloWorldComponent {
4
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: HelloWorldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.6", type: HelloWorldComponent, isStandalone: true, selector: "kc-hello-world", ngImport: i0, template: "<p>hello-world works!</p>\n", styles: [""] }); }
6
- }
7
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: HelloWorldComponent, decorators: [{
8
- type: Component,
9
- args: [{ selector: 'kc-hello-world', standalone: true, imports: [], template: "<p>hello-world works!</p>\n" }]
10
- }] });
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVsbG8td29ybGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2V5Y2xvYWtpZnktYW5ndWxhci9zcmMvbG9naW4vY29tcG9uZW50cy9oZWxsby13b3JsZC9oZWxsby13b3JsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rZXljbG9ha2lmeS1hbmd1bGFyL3NyYy9sb2dpbi9jb21wb25lbnRzL2hlbGxvLXdvcmxkL2hlbGxvLXdvcmxkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBUzFDLE1BQU0sT0FBTyxtQkFBbUI7OEdBQW5CLG1CQUFtQjtrR0FBbkIsbUJBQW1CLDBFQ1RoQyw2QkFDQTs7MkZEUWEsbUJBQW1CO2tCQVAvQixTQUFTOytCQUNJLGdCQUFnQixjQUNkLElBQUksV0FDUCxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAna2MtaGVsbG8td29ybGQnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW10sXG4gICAgdGVtcGxhdGVVcmw6ICcuL2hlbGxvLXdvcmxkLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybDogJy4vaGVsbG8td29ybGQuY29tcG9uZW50LmNzcydcbn0pXG5leHBvcnQgY2xhc3MgSGVsbG9Xb3JsZENvbXBvbmVudCB7fVxuIiwiPHA+aGVsbG8td29ybGQgd29ya3MhPC9wPlxuIl19
@@ -1,11 +0,0 @@
1
- export * from './add-remove-buttons-multi-valued-attribute/add-remove-buttons-multi-valued-attribute.component';
2
- export * from './field-errors/field-errors.component';
3
- export * from './group-label/group-label.component';
4
- export * from './input-field-by-type/input-field-by-type.component';
5
- export * from './input-tag/input-tag.component';
6
- export * from './input-tag-selects/input-tag-selects.component';
7
- export * from './logout-other-sessions/logout-other-sessions.component';
8
- export * from './password-wrapper/password-wrapper.component';
9
- export * from './select-tag/select-tag.component';
10
- export * from './textarea-tag/textarea-tag.component';
11
- export * from './user-profile-form-fields/user-profile-form-fields.component';
@@ -1,12 +0,0 @@
1
- export * from './add-remove-buttons-multi-valued-attribute/add-remove-buttons-multi-valued-attribute.component';
2
- export * from './field-errors/field-errors.component';
3
- export * from './group-label/group-label.component';
4
- export * from './input-field-by-type/input-field-by-type.component';
5
- export * from './input-tag/input-tag.component';
6
- export * from './input-tag-selects/input-tag-selects.component';
7
- export * from './logout-other-sessions/logout-other-sessions.component';
8
- export * from './password-wrapper/password-wrapper.component';
9
- export * from './select-tag/select-tag.component';
10
- export * from './textarea-tag/textarea-tag.component';
11
- export * from './user-profile-form-fields/user-profile-form-fields.component';
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rZXljbG9ha2lmeS1hbmd1bGFyL3NyYy9sb2dpbi9jb21wb25lbnRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsaUdBQWlHLENBQUM7QUFDaEgsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMscURBQXFELENBQUM7QUFDcEUsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLGlEQUFpRCxDQUFDO0FBQ2hFLGNBQWMseURBQXlELENBQUM7QUFDeEUsY0FBYywrQ0FBK0MsQ0FBQztBQUM5RCxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYywrREFBK0QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYWRkLXJlbW92ZS1idXR0b25zLW11bHRpLXZhbHVlZC1hdHRyaWJ1dGUvYWRkLXJlbW92ZS1idXR0b25zLW11bHRpLXZhbHVlZC1hdHRyaWJ1dGUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vZmllbGQtZXJyb3JzL2ZpZWxkLWVycm9ycy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9ncm91cC1sYWJlbC9ncm91cC1sYWJlbC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9pbnB1dC1maWVsZC1ieS10eXBlL2lucHV0LWZpZWxkLWJ5LXR5cGUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vaW5wdXQtdGFnL2lucHV0LXRhZy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9pbnB1dC10YWctc2VsZWN0cy9pbnB1dC10YWctc2VsZWN0cy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9sb2dvdXQtb3RoZXItc2Vzc2lvbnMvbG9nb3V0LW90aGVyLXNlc3Npb25zLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3Bhc3N3b3JkLXdyYXBwZXIvcGFzc3dvcmQtd3JhcHBlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zZWxlY3QtdGFnL3NlbGVjdC10YWcuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vdGV4dGFyZWEtdGFnL3RleHRhcmVhLXRhZy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi91c2VyLXByb2ZpbGUtZm9ybS1maWVsZHMvdXNlci1wcm9maWxlLWZvcm0tZmllbGRzLmNvbXBvbmVudCc7XG4iXX0=
@@ -1,89 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, computed, 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 { AttributesDirective } from '../../../login/directives/attributes.directive';
5
- import { KcClassDirective } from '../../../login/directives/kc-class.directive';
6
- import { AdvancedMsgStrPipe } from '../../../login/pipes/advanced-msg-str.pipe';
7
- import { InputTypePipe } from '../../../login/pipes/input-type.pipe';
8
- import { ToArrayPipe } from '../../../login/pipes/to-array.pipe';
9
- import { ToNumberPipe } from '../../../login/pipes/to-number.pipe';
10
- import { AddRemoveButtonsMultiValuedAttributeComponent } from '../../../login/components/add-remove-buttons-multi-valued-attribute/add-remove-buttons-multi-valued-attribute.component';
11
- import { FieldErrorsComponent } from '../../../login/components/field-errors/field-errors.component';
12
- import * as i0 from "@angular/core";
13
- export class InputTagComponent extends ComponentReference {
14
- constructor() {
15
- super(...arguments);
16
- this.attribute = input();
17
- this.valueOrValues = input();
18
- this.fieldIndex = input(undefined);
19
- this.values = input();
20
- this.displayableErrors = input();
21
- this.dispatchFormAction = output();
22
- this.doUseDefaultCss = inject(USE_DEFAULT_CSS);
23
- this.classes = inject(CLASSES);
24
- this.value = computed(() => {
25
- const valueOrValues = this.valueOrValues();
26
- const index = this.fieldIndex();
27
- if (valueOrValues instanceof Array) {
28
- if (index) {
29
- return valueOrValues[index] ?? null;
30
- }
31
- return null;
32
- }
33
- return valueOrValues ?? null;
34
- });
35
- }
36
- onChange(event) {
37
- const valueOrValues = this.valueOrValues();
38
- this.dispatchFormAction.emit({
39
- action: 'update',
40
- name: this.attribute()?.name ?? '',
41
- valueOrValues: (() => {
42
- if (this.fieldIndex !== undefined) {
43
- if (valueOrValues instanceof Array) {
44
- return valueOrValues.map((value, i) => {
45
- if (i === this.fieldIndex()) {
46
- return event.target?.value;
47
- }
48
- return value;
49
- });
50
- }
51
- }
52
- return event.target?.value;
53
- })()
54
- });
55
- }
56
- onBlur() {
57
- this.dispatchFormAction.emit({
58
- action: 'focus lost',
59
- name: this.attribute()?.name ?? '',
60
- fieldIndex: this.fieldIndex()
61
- });
62
- }
63
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: InputTagComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
64
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.6", type: InputTagComponent, isStandalone: true, selector: "kc-input-tag", inputs: { attribute: { classPropertyName: "attribute", publicName: "attribute", isSignal: true, isRequired: false, transformFunction: null }, valueOrValues: { classPropertyName: "valueOrValues", publicName: "valueOrValues", isSignal: true, isRequired: false, transformFunction: null }, fieldIndex: { classPropertyName: "fieldIndex", publicName: "fieldIndex", isSignal: true, isRequired: false, transformFunction: null }, values: { classPropertyName: "values", publicName: "values", isSignal: true, isRequired: false, transformFunction: null }, displayableErrors: { classPropertyName: "displayableErrors", publicName: "displayableErrors", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { dispatchFormAction: "dispatchFormAction" }, providers: [
65
- {
66
- provide: ComponentReference,
67
- useExisting: forwardRef(() => InputTagComponent)
68
- }
69
- ], usesInheritance: true, ngImport: i0, template: "@let attr = attribute();\n@let index = fieldIndex();\n@if (attr) {\n <input\n [type]=\"attr.annotations.inputType | inputType\"\n [id]=\"attr.name\"\n [name]=\"attr.name\"\n [value]=\"value()\"\n [kcClass]=\"'kcInputClass'\"\n [attr.aria-invalid]=\"index && displayableErrors()?.[index] !== undefined\"\n [disabled]=\"attr.readOnly\"\n [autocomplete]=\"attr.autocomplete\"\n [placeholder]=\"attr.annotations.inputTypePlaceholder ?? '' | advancedMsgStr\"\n [attr.pattern]=\"attr.annotations.inputTypePattern\"\n [attr.size]=\"\n !attr.annotations.inputTypeSize\n ? undefined\n : (attr.annotations.inputTypeSize | toNumber) === 0\n ? undefined\n : (attr.annotations.inputTypeSize | toNumber)\n \"\n [attr.maxlength]=\"!attr.annotations.inputTypeMaxlength ? undefined : (attr.annotations.inputTypeMaxlength | toNumber)\"\n [attr.minlength]=\"!attr.annotations.inputTypeMinlength ? undefined : (attr.annotations.inputTypeMinlength | toNumber)\"\n [attr.max]=\"attr.annotations.inputTypeMax\"\n [attr.min]=\"attr.annotations.inputTypeMin\"\n [attr.step]=\"attr.annotations.inputTypeStep\"\n [kcAttributes]=\"attr.html5DataAnnotations\"\n (change)=\"onChange($event)\"\n (blur)=\"onBlur()\"\n />\n @if (index !== undefined) {\n @let values = valueOrValues() ?? [] | toArray;\n <kc-field-errors\n [attribute]=\"attr\"\n [displayableErrors]=\"displayableErrors()\"\n [fieldIndex]=\"index\"\n ></kc-field-errors>\n <kc-add-remove-buttons-multi-valued-attribute\n [attribute]=\"attr\"\n [values]=\"values\"\n [fieldIndex]=\"index\"\n (dispatchFormAction)=\"dispatchFormAction.emit($event)\"\n ></kc-add-remove-buttons-multi-valued-attribute>\n }\n}\n", styles: [":host{display:contents}\n"], dependencies: [{ kind: "pipe", type: InputTypePipe, name: "inputType" }, { kind: "directive", type: KcClassDirective, selector: "[kcClass]", inputs: ["class", "ngClass", "kcClass"] }, { kind: "pipe", type: ToNumberPipe, name: "toNumber" }, { kind: "directive", type: AttributesDirective, selector: "[kcAttributes]", inputs: ["kcAttributes"] }, { kind: "pipe", type: ToArrayPipe, name: "toArray" }, { kind: "component", type: FieldErrorsComponent, selector: "kc-field-errors", inputs: ["attribute", "displayableErrors", "fieldIndex"] }, { kind: "component", type: AddRemoveButtonsMultiValuedAttributeComponent, selector: "kc-add-remove-buttons-multi-valued-attribute", inputs: ["attribute", "values", "fieldIndex"], outputs: ["dispatchFormAction"] }, { kind: "pipe", type: AdvancedMsgStrPipe, name: "advancedMsgStr" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
70
- }
71
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: InputTagComponent, decorators: [{
72
- type: Component,
73
- args: [{ standalone: true, imports: [
74
- InputTypePipe,
75
- KcClassDirective,
76
- ToNumberPipe,
77
- AttributesDirective,
78
- ToArrayPipe,
79
- FieldErrorsComponent,
80
- AddRemoveButtonsMultiValuedAttributeComponent,
81
- AdvancedMsgStrPipe
82
- ], selector: 'kc-input-tag', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
83
- {
84
- provide: ComponentReference,
85
- useExisting: forwardRef(() => InputTagComponent)
86
- }
87
- ], template: "@let attr = attribute();\n@let index = fieldIndex();\n@if (attr) {\n <input\n [type]=\"attr.annotations.inputType | inputType\"\n [id]=\"attr.name\"\n [name]=\"attr.name\"\n [value]=\"value()\"\n [kcClass]=\"'kcInputClass'\"\n [attr.aria-invalid]=\"index && displayableErrors()?.[index] !== undefined\"\n [disabled]=\"attr.readOnly\"\n [autocomplete]=\"attr.autocomplete\"\n [placeholder]=\"attr.annotations.inputTypePlaceholder ?? '' | advancedMsgStr\"\n [attr.pattern]=\"attr.annotations.inputTypePattern\"\n [attr.size]=\"\n !attr.annotations.inputTypeSize\n ? undefined\n : (attr.annotations.inputTypeSize | toNumber) === 0\n ? undefined\n : (attr.annotations.inputTypeSize | toNumber)\n \"\n [attr.maxlength]=\"!attr.annotations.inputTypeMaxlength ? undefined : (attr.annotations.inputTypeMaxlength | toNumber)\"\n [attr.minlength]=\"!attr.annotations.inputTypeMinlength ? undefined : (attr.annotations.inputTypeMinlength | toNumber)\"\n [attr.max]=\"attr.annotations.inputTypeMax\"\n [attr.min]=\"attr.annotations.inputTypeMin\"\n [attr.step]=\"attr.annotations.inputTypeStep\"\n [kcAttributes]=\"attr.html5DataAnnotations\"\n (change)=\"onChange($event)\"\n (blur)=\"onBlur()\"\n />\n @if (index !== undefined) {\n @let values = valueOrValues() ?? [] | toArray;\n <kc-field-errors\n [attribute]=\"attr\"\n [displayableErrors]=\"displayableErrors()\"\n [fieldIndex]=\"index\"\n ></kc-field-errors>\n <kc-add-remove-buttons-multi-valued-attribute\n [attribute]=\"attr\"\n [values]=\"values\"\n [fieldIndex]=\"index\"\n (dispatchFormAction)=\"dispatchFormAction.emit($event)\"\n ></kc-add-remove-buttons-multi-valued-attribute>\n }\n}\n", styles: [":host{display:contents}\n"] }]
88
- }] });
89
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtdGFnLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tleWNsb2FraWZ5LWFuZ3VsYXIvc3JjL2xvZ2luL2NvbXBvbmVudHMvaW5wdXQtdGFnL2lucHV0LXRhZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rZXljbG9ha2lmeS1hbmd1bGFyL3NyYy9sb2dpbi9jb21wb25lbnRzL2lucHV0LXRhZy9pbnB1dC10YWcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hILE9BQU8sRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFHL0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOERBQThELENBQUM7QUFDbEcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDakcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFDNUYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFDNUYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUM3RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saURBQWlELENBQUM7QUFFL0UsT0FBTyxFQUFFLDZDQUE2QyxFQUFFLE1BQU0scUlBQXFJLENBQUM7QUFDcE0sT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkVBQTJFLENBQUM7O0FBK0JqSCxNQUFNLE9BQU8saUJBQWtCLFNBQVEsa0JBQWtCO0lBN0J6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Q3BCLDZDQUE2Qzt3QkFDN0Msa0JBQWtCO3FCQUNyQixZQUNTLGNBQWMsbUJBRVAsdUJBQXVCLENBQUMsTUFBTSxhQUNwQzt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsa0JBQWtCOzRCQUMzQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxrQkFBa0IsQ0FBQzt5QkFDbkQ7cUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBjb21wdXRlZCwgZm9yd2FyZFJlZiwgaW5qZWN0LCBpbnB1dCwgb3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDTEFTU0VTLCBVU0VfREVGQVVMVF9DU1MgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9saWIvcHVibGljLWFwaSc7XG5pbXBvcnQgeyBBdHRyaWJ1dGUgfSBmcm9tICdrZXljbG9ha2lmeS9sb2dpbi9LY0NvbnRleHQnO1xuaW1wb3J0IHsgQ2xhc3NLZXkgfSBmcm9tICdrZXljbG9ha2lmeS9sb2dpbi9saWIva2NDbHN4JztcbmltcG9ydCB7IENvbXBvbmVudFJlZmVyZW5jZSB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL2NsYXNzZXMvY29tcG9uZW50LXJlZmVyZW5jZS5jbGFzcyc7XG5pbXBvcnQgeyBBdHRyaWJ1dGVzRGlyZWN0aXZlIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vZGlyZWN0aXZlcy9hdHRyaWJ1dGVzLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBLY0NsYXNzRGlyZWN0aXZlIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vZGlyZWN0aXZlcy9rYy1jbGFzcy5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQWR2YW5jZWRNc2dTdHJQaXBlIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vcGlwZXMvYWR2YW5jZWQtbXNnLXN0ci5waXBlJztcbmltcG9ydCB7IElucHV0VHlwZVBpcGUgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9waXBlcy9pbnB1dC10eXBlLnBpcGUnO1xuaW1wb3J0IHsgVG9BcnJheVBpcGUgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9waXBlcy90by1hcnJheS5waXBlJztcbmltcG9ydCB7IFRvTnVtYmVyUGlwZSB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL3BpcGVzL3RvLW51bWJlci5waXBlJztcbmltcG9ydCB7IEZvcm1BY3Rpb24sIEZvcm1GaWVsZEVycm9yIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vc2VydmljZXMvdXNlci1wcm9maWxlLWZvcm0uc2VydmljZSc7XG5pbXBvcnQgeyBBZGRSZW1vdmVCdXR0b25zTXVsdGlWYWx1ZWRBdHRyaWJ1dGVDb21wb25lbnQgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9jb21wb25lbnRzL2FkZC1yZW1vdmUtYnV0dG9ucy1tdWx0aS12YWx1ZWQtYXR0cmlidXRlL2FkZC1yZW1vdmUtYnV0dG9ucy1tdWx0aS12YWx1ZWQtYXR0cmlidXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGaWVsZEVycm9yc0NvbXBvbmVudCB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL2NvbXBvbmVudHMvZmllbGQtZXJyb3JzL2ZpZWxkLWVycm9ycy5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHN0eWxlczogW1xuICAgICAgICBgXG4gICAgICAgICAgICA6aG9zdCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogY29udGVudHM7XG4gICAgICAgICAgICB9XG4gICAgICAgIGBcbiAgICBdLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgSW5wdXRUeXBlUGlwZSxcbiAgICAgICAgS2NDbGFzc0RpcmVjdGl2ZSxcbiAgICAgICAgVG9OdW1iZXJQaXBlLFxuICAgICAgICBBdHRyaWJ1dGVzRGlyZWN0aXZlLFxuICAgICAgICBUb0FycmF5UGlwZSxcbiAgICAgICAgRmllbGRFcnJvcnNDb21wb25lbnQsXG4gICAgICAgIEFkZFJlbW92ZUJ1dHRvbnNNdWx0aVZhbHVlZEF0dHJpYnV0ZUNvbXBvbmVudCxcbiAgICAgICAgQWR2YW5jZWRNc2dTdHJQaXBlXG4gICAgXSxcbiAgICBzZWxlY3RvcjogJ2tjLWlucHV0LXRhZycsXG4gICAgdGVtcGxhdGVVcmw6ICdpbnB1dC10YWcuY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBDb21wb25lbnRSZWZlcmVuY2UsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBJbnB1dFRhZ0NvbXBvbmVudClcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgSW5wdXRUYWdDb21wb25lbnQgZXh0ZW5kcyBDb21wb25lbnRSZWZlcmVuY2Uge1xuICAgIGF0dHJpYnV0ZSA9IGlucHV0PEF0dHJpYnV0ZT4oKTtcbiAgICB2YWx1ZU9yVmFsdWVzID0gaW5wdXQ8c3RyaW5nIHwgc3RyaW5nW10+KCk7XG4gICAgZmllbGRJbmRleCA9IGlucHV0PG51bWJlciB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgICB2YWx1ZXMgPSBpbnB1dDxzdHJpbmdbXT4oKTtcbiAgICBkaXNwbGF5YWJsZUVycm9ycyA9IGlucHV0PEZvcm1GaWVsZEVycm9yW10+KCk7XG4gICAgZGlzcGF0Y2hGb3JtQWN0aW9uID0gb3V0cHV0PEZvcm1BY3Rpb24+KCk7XG4gICAgb3ZlcnJpZGUgZG9Vc2VEZWZhdWx0Q3NzID0gaW5qZWN0PGJvb2xlYW4+KFVTRV9ERUZBVUxUX0NTUyk7XG4gICAgb3ZlcnJpZGUgY2xhc3NlcyA9IGluamVjdDxQYXJ0aWFsPFJlY29yZDxDbGFzc0tleSwgc3RyaW5nPj4+KENMQVNTRVMpO1xuXG4gICAgdmFsdWUgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IHZhbHVlT3JWYWx1ZXMgPSB0aGlzLnZhbHVlT3JWYWx1ZXMoKTtcbiAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLmZpZWxkSW5kZXgoKTtcbiAgICAgICAgaWYgKHZhbHVlT3JWYWx1ZXMgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgICAgICAgaWYgKGluZGV4KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlT3JWYWx1ZXNbaW5kZXhdID8/IG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmFsdWVPclZhbHVlcyA/PyBudWxsO1xuICAgIH0pO1xuXG4gICAgb25DaGFuZ2UoZXZlbnQ6IEV2ZW50KSB7XG4gICAgICAgIGNvbnN0IHZhbHVlT3JWYWx1ZXMgPSB0aGlzLnZhbHVlT3JWYWx1ZXMoKTtcbiAgICAgICAgdGhpcy5kaXNwYXRjaEZvcm1BY3Rpb24uZW1pdCh7XG4gICAgICAgICAgICBhY3Rpb246ICd1cGRhdGUnLFxuICAgICAgICAgICAgbmFtZTogdGhpcy5hdHRyaWJ1dGUoKT8ubmFtZSA/PyAnJyxcbiAgICAgICAgICAgIHZhbHVlT3JWYWx1ZXM6ICgoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZmllbGRJbmRleCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZU9yVmFsdWVzIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZU9yVmFsdWVzLm1hcCgodmFsdWUsIGkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaSA9PT0gdGhpcy5maWVsZEluZGV4KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCk/LnZhbHVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIChldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCk/LnZhbHVlO1xuICAgICAgICAgICAgfSkoKVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBvbkJsdXIoKSB7XG4gICAgICAgIHRoaXMuZGlzcGF0Y2hGb3JtQWN0aW9uLmVtaXQoe1xuICAgICAgICAgICAgYWN0aW9uOiAnZm9jdXMgbG9zdCcsXG4gICAgICAgICAgICBuYW1lOiB0aGlzLmF0dHJpYnV0ZSgpPy5uYW1lID8/ICcnLFxuICAgICAgICAgICAgZmllbGRJbmRleDogdGhpcy5maWVsZEluZGV4KClcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIiwiQGxldCBhdHRyID0gYXR0cmlidXRlKCk7XG5AbGV0IGluZGV4ID0gZmllbGRJbmRleCgpO1xuQGlmIChhdHRyKSB7XG4gICAgPGlucHV0XG4gICAgICAgIFt0eXBlXT1cImF0dHIuYW5ub3RhdGlvbnMuaW5wdXRUeXBlIHwgaW5wdXRUeXBlXCJcbiAgICAgICAgW2lkXT1cImF0dHIubmFtZVwiXG4gICAgICAgIFtuYW1lXT1cImF0dHIubmFtZVwiXG4gICAgICAgIFt2YWx1ZV09XCJ2YWx1ZSgpXCJcbiAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjSW5wdXRDbGFzcydcIlxuICAgICAgICBbYXR0ci5hcmlhLWludmFsaWRdPVwiaW5kZXggJiYgZGlzcGxheWFibGVFcnJvcnMoKT8uW2luZGV4XSAhPT0gdW5kZWZpbmVkXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImF0dHIucmVhZE9ubHlcIlxuICAgICAgICBbYXV0b2NvbXBsZXRlXT1cImF0dHIuYXV0b2NvbXBsZXRlXCJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cImF0dHIuYW5ub3RhdGlvbnMuaW5wdXRUeXBlUGxhY2Vob2xkZXIgPz8gJycgfCBhZHZhbmNlZE1zZ1N0clwiXG4gICAgICAgIFthdHRyLnBhdHRlcm5dPVwiYXR0ci5hbm5vdGF0aW9ucy5pbnB1dFR5cGVQYXR0ZXJuXCJcbiAgICAgICAgW2F0dHIuc2l6ZV09XCJcbiAgICAgICAgICAgICFhdHRyLmFubm90YXRpb25zLmlucHV0VHlwZVNpemVcbiAgICAgICAgICAgICAgICA/IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgIDogKGF0dHIuYW5ub3RhdGlvbnMuaW5wdXRUeXBlU2l6ZSB8IHRvTnVtYmVyKSA9PT0gMFxuICAgICAgICAgICAgICAgICAgPyB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgIDogKGF0dHIuYW5ub3RhdGlvbnMuaW5wdXRUeXBlU2l6ZSB8IHRvTnVtYmVyKVxuICAgICAgICBcIlxuICAgICAgICBbYXR0ci5tYXhsZW5ndGhdPVwiIWF0dHIuYW5ub3RhdGlvbnMuaW5wdXRUeXBlTWF4bGVuZ3RoID8gdW5kZWZpbmVkIDogKGF0dHIuYW5ub3RhdGlvbnMuaW5wdXRUeXBlTWF4bGVuZ3RoIHwgdG9OdW1iZXIpXCJcbiAgICAgICAgW2F0dHIubWlubGVuZ3RoXT1cIiFhdHRyLmFubm90YXRpb25zLmlucHV0VHlwZU1pbmxlbmd0aCA/IHVuZGVmaW5lZCA6IChhdHRyLmFubm90YXRpb25zLmlucHV0VHlwZU1pbmxlbmd0aCB8IHRvTnVtYmVyKVwiXG4gICAgICAgIFthdHRyLm1heF09XCJhdHRyLmFubm90YXRpb25zLmlucHV0VHlwZU1heFwiXG4gICAgICAgIFthdHRyLm1pbl09XCJhdHRyLmFubm90YXRpb25zLmlucHV0VHlwZU1pblwiXG4gICAgICAgIFthdHRyLnN0ZXBdPVwiYXR0ci5hbm5vdGF0aW9ucy5pbnB1dFR5cGVTdGVwXCJcbiAgICAgICAgW2tjQXR0cmlidXRlc109XCJhdHRyLmh0bWw1RGF0YUFubm90YXRpb25zXCJcbiAgICAgICAgKGNoYW5nZSk9XCJvbkNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgKGJsdXIpPVwib25CbHVyKClcIlxuICAgIC8+XG4gICAgQGlmIChpbmRleCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIEBsZXQgdmFsdWVzID0gdmFsdWVPclZhbHVlcygpID8/IFtdIHwgdG9BcnJheTtcbiAgICAgICAgPGtjLWZpZWxkLWVycm9yc1xuICAgICAgICAgICAgW2F0dHJpYnV0ZV09XCJhdHRyXCJcbiAgICAgICAgICAgIFtkaXNwbGF5YWJsZUVycm9yc109XCJkaXNwbGF5YWJsZUVycm9ycygpXCJcbiAgICAgICAgICAgIFtmaWVsZEluZGV4XT1cImluZGV4XCJcbiAgICAgICAgPjwva2MtZmllbGQtZXJyb3JzPlxuICAgICAgICA8a2MtYWRkLXJlbW92ZS1idXR0b25zLW11bHRpLXZhbHVlZC1hdHRyaWJ1dGVcbiAgICAgICAgICAgIFthdHRyaWJ1dGVdPVwiYXR0clwiXG4gICAgICAgICAgICBbdmFsdWVzXT1cInZhbHVlc1wiXG4gICAgICAgICAgICBbZmllbGRJbmRleF09XCJpbmRleFwiXG4gICAgICAgICAgICAoZGlzcGF0Y2hGb3JtQWN0aW9uKT1cImRpc3BhdGNoRm9ybUFjdGlvbi5lbWl0KCRldmVudClcIlxuICAgICAgICA+PC9rYy1hZGQtcmVtb3ZlLWJ1dHRvbnMtbXVsdGktdmFsdWVkLWF0dHJpYnV0ZT5cbiAgICB9XG59XG4iXX0=