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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (145) hide show
  1. package/login/components/add-remove-buttons-multi-valued-attribute/add-remove-buttons-multi-valued-attribute.component.mjs +3 -3
  2. package/login/components/field-errors/field-errors.component.mjs +3 -3
  3. package/login/components/group-label/group-label.component.mjs +3 -3
  4. package/login/components/input-field-by-type/input-field-by-type.component.mjs +4 -11
  5. package/login/components/input-tag/input-tag.component.mjs +3 -3
  6. package/login/components/input-tag-selects/input-tag-selects.component.mjs +3 -3
  7. package/login/components/logout-other-sessions/logout-other-sessions.component.mjs +3 -3
  8. package/login/components/password-wrapper/password-wrapper.component.mjs +3 -3
  9. package/login/components/select-tag/select-tag.component.mjs +3 -3
  10. package/login/components/textarea-tag/textarea-tag.component.mjs +3 -3
  11. package/login/components/user-profile-form-fields/user-profile-form-fields.component.mjs +4 -11
  12. package/login/containers/template.component.mjs +4 -5
  13. package/login/pages/code/code.component.mjs +3 -3
  14. package/login/pages/delete-account-confirm/delete-account-confirm.component.mjs +3 -3
  15. package/login/pages/delete-credential/delete-credential.component.mjs +3 -3
  16. package/login/pages/error/error.component.mjs +3 -3
  17. package/login/pages/frontchannel-logout/frontchannel-logout.component.mjs +3 -3
  18. package/login/pages/idp-review-user-profile/idp-review-user-profile.component.mjs +4 -9
  19. package/login/pages/info/info.component.mjs +3 -3
  20. package/login/pages/login/login.component.mjs +5 -15
  21. package/login/pages/login-config-totp/login-config-totp.component.mjs +4 -11
  22. package/login/pages/login-idp-link-confirm/login-idp-link-confirm.component.mjs +3 -3
  23. package/login/pages/login-idp-link-confirm-override/login-idp-link-confirm-override.component.mjs +3 -3
  24. package/login/pages/login-idp-link-email/login-idp-link-email.component.mjs +3 -3
  25. package/login/pages/login-oauth-grant/login-oauth-grant.component.mjs +3 -3
  26. package/login/pages/login-oauth2-device-verify-user-code/login-oauth2-device-verify-user-code.component.mjs +3 -3
  27. package/login/pages/login-otp/login-otp.component.mjs +3 -3
  28. package/login/pages/login-page-expired/login-page-expired.component.mjs +3 -3
  29. package/login/pages/login-passkeys-conditional-authenticate/login-passkeys-conditional-authenticate.component.mjs +3 -3
  30. package/login/pages/login-password/login-password.component.mjs +4 -10
  31. package/login/pages/login-recovery-authn-code-config/login-recovery-authn-code-config.component.mjs +4 -9
  32. package/login/pages/login-recovery-authn-code-input/login-recovery-authn-code-input.component.mjs +3 -3
  33. package/login/pages/login-reset-otp/login-reset-otp.component.mjs +3 -3
  34. package/login/pages/login-reset-password/login-reset-password.component.mjs +3 -3
  35. package/login/pages/login-update-password/login-update-password.component.mjs +4 -11
  36. package/login/pages/login-update-profile/login-update-profile.component.mjs +4 -9
  37. package/login/pages/login-username/login-username.component.mjs +5 -14
  38. package/login/pages/login-verify-email/login-verify-email.component.mjs +3 -3
  39. package/login/pages/login-x509-info/login-x509-info.component.mjs +3 -3
  40. package/login/pages/logout-confirm/logout-confirm.component.mjs +3 -3
  41. package/login/pages/register/register.component.mjs +3 -3
  42. package/login/pages/saml-post-form/saml-post-form.component.mjs +3 -3
  43. package/login/pages/select-authenticator/select-authenticator.component.mjs +4 -10
  44. package/login/pages/terms/terms.component.mjs +3 -3
  45. package/login/pages/update-email/update-email.component.mjs +4 -10
  46. package/login/pages/webauthn-authenticate/webauthn-authenticate.component.mjs +4 -10
  47. package/login/pages/webauthn-error/webauthn-error.component.mjs +4 -9
  48. package/login/pages/webauthn-register/webauthn-register.component.mjs +4 -9
  49. package/package.json +5 -5
  50. package/src/login/components/add-remove-buttons-multi-valued-attribute/add-remove-buttons-multi-valued-attribute.component.html +19 -19
  51. package/src/login/components/add-remove-buttons-multi-valued-attribute/add-remove-buttons-multi-valued-attribute.component.ts +2 -12
  52. package/src/login/components/field-errors/field-errors.component.html +10 -10
  53. package/src/login/components/field-errors/field-errors.component.ts +1 -7
  54. package/src/login/components/group-label/group-label.component.html +25 -25
  55. package/src/login/components/group-label/group-label.component.ts +1 -8
  56. package/src/login/components/input-field-by-type/input-field-by-type.component.html +57 -57
  57. package/src/login/components/input-field-by-type/input-field-by-type.component.ts +3 -21
  58. package/src/login/components/input-tag/input-tag.component.html +41 -45
  59. package/src/login/components/input-tag/input-tag.component.ts +2 -13
  60. package/src/login/components/input-tag-selects/input-tag-selects.component.html +22 -22
  61. package/src/login/components/input-tag-selects/input-tag-selects.component.ts +3 -17
  62. package/src/login/components/logout-other-sessions/logout-other-sessions.component.html +15 -15
  63. package/src/login/components/password-wrapper/password-wrapper.component.html +13 -13
  64. package/src/login/components/password-wrapper/password-wrapper.component.ts +2 -15
  65. package/src/login/components/select-tag/select-tag.component.html +26 -26
  66. package/src/login/components/select-tag/select-tag.component.ts +4 -19
  67. package/src/login/components/textarea-tag/textarea-tag.component.html +13 -15
  68. package/src/login/components/textarea-tag/textarea-tag.component.ts +2 -12
  69. package/src/login/components/user-profile-form-fields/user-profile-form-fields.component.html +71 -71
  70. package/src/login/components/user-profile-form-fields/user-profile-form-fields.component.ts +4 -28
  71. package/src/login/containers/template.component.html +183 -183
  72. package/src/login/containers/template.component.ts +4 -22
  73. package/src/login/pages/code/code.component.html +21 -21
  74. package/src/login/pages/code/code.component.ts +1 -5
  75. package/src/login/pages/delete-account-confirm/delete-account-confirm.component.html +44 -42
  76. package/src/login/pages/delete-account-confirm/delete-account-confirm.component.ts +2 -7
  77. package/src/login/pages/delete-credential/delete-credential.component.html +29 -29
  78. package/src/login/pages/delete-credential/delete-credential.component.ts +3 -14
  79. package/src/login/pages/error/error.component.html +20 -20
  80. package/src/login/pages/error/error.component.ts +1 -5
  81. package/src/login/pages/frontchannel-logout/frontchannel-logout.component.html +31 -31
  82. package/src/login/pages/frontchannel-logout/frontchannel-logout.component.ts +3 -15
  83. package/src/login/pages/idp-review-user-profile/idp-review-user-profile.component.html +36 -36
  84. package/src/login/pages/idp-review-user-profile/idp-review-user-profile.component.ts +4 -21
  85. package/src/login/pages/info/info.component.html +45 -45
  86. package/src/login/pages/info/info.component.ts +3 -15
  87. package/src/login/pages/login/login.component.html +194 -194
  88. package/src/login/pages/login/login.component.ts +5 -30
  89. package/src/login/pages/login-config-totp/login-config-totp.component.html +189 -179
  90. package/src/login/pages/login-config-totp/login-config-totp.component.ts +5 -26
  91. package/src/login/pages/login-idp-link-confirm/login-idp-link-confirm.component.html +35 -35
  92. package/src/login/pages/login-idp-link-confirm/login-idp-link-confirm.component.ts +3 -14
  93. package/src/login/pages/login-idp-link-confirm-override/login-idp-link-confirm-override.component.html +34 -34
  94. package/src/login/pages/login-idp-link-confirm-override/login-idp-link-confirm-override.component.ts +3 -16
  95. package/src/login/pages/login-idp-link-email/login-idp-link-email.component.html +32 -30
  96. package/src/login/pages/login-idp-link-email/login-idp-link-email.component.ts +3 -14
  97. package/src/login/pages/login-oauth-grant/login-oauth-grant.component.html +83 -81
  98. package/src/login/pages/login-oauth-grant/login-oauth-grant.component.ts +3 -14
  99. package/src/login/pages/login-oauth2-device-verify-user-code/login-oauth2-device-verify-user-code.component.html +57 -57
  100. package/src/login/pages/login-oauth2-device-verify-user-code/login-oauth2-device-verify-user-code.component.ts +3 -16
  101. package/src/login/pages/login-otp/login-otp.component.html +96 -96
  102. package/src/login/pages/login-otp/login-otp.component.ts +2 -12
  103. package/src/login/pages/login-page-expired/login-page-expired.component.html +31 -31
  104. package/src/login/pages/login-page-expired/login-page-expired.component.ts +3 -14
  105. package/src/login/pages/login-passkeys-conditional-authenticate/login-passkeys-conditional-authenticate.component.html +183 -181
  106. package/src/login/pages/login-passkeys-conditional-authenticate/login-passkeys-conditional-authenticate.component.ts +2 -9
  107. package/src/login/pages/login-password/login-password.component.html +82 -82
  108. package/src/login/pages/login-password/login-password.component.ts +3 -20
  109. package/src/login/pages/login-recovery-authn-code-config/login-recovery-authn-code-config.component.html +142 -142
  110. package/src/login/pages/login-recovery-authn-code-config/login-recovery-authn-code-config.component.ts +4 -23
  111. package/src/login/pages/login-recovery-authn-code-input/login-recovery-authn-code-input.component.html +67 -67
  112. package/src/login/pages/login-recovery-authn-code-input/login-recovery-authn-code-input.component.ts +4 -18
  113. package/src/login/pages/login-reset-otp/login-reset-otp.component.html +61 -59
  114. package/src/login/pages/login-reset-otp/login-reset-otp.component.ts +2 -12
  115. package/src/login/pages/login-reset-password/login-reset-password.component.html +84 -84
  116. package/src/login/pages/login-reset-password/login-reset-password.component.ts +3 -14
  117. package/src/login/pages/login-update-password/login-update-password.component.html +107 -107
  118. package/src/login/pages/login-update-password/login-update-password.component.ts +5 -26
  119. package/src/login/pages/login-update-profile/login-update-profile.component.html +53 -53
  120. package/src/login/pages/login-update-profile/login-update-profile.component.ts +4 -21
  121. package/src/login/pages/login-username/login-username.component.html +146 -146
  122. package/src/login/pages/login-username/login-username.component.ts +4 -25
  123. package/src/login/pages/login-verify-email/login-verify-email.component.html +22 -22
  124. package/src/login/pages/login-verify-email/login-verify-email.component.ts +3 -14
  125. package/src/login/pages/login-x509-info/login-x509-info.component.html +96 -96
  126. package/src/login/pages/login-x509-info/login-x509-info.component.ts +2 -12
  127. package/src/login/pages/logout-confirm/logout-confirm.component.html +51 -51
  128. package/src/login/pages/logout-confirm/logout-confirm.component.ts +2 -12
  129. package/src/login/pages/register/register.component.html +113 -113
  130. package/src/login/pages/register/register.component.ts +2 -13
  131. package/src/login/pages/saml-post-form/saml-post-form.component.html +47 -48
  132. package/src/login/pages/saml-post-form/saml-post-form.component.ts +2 -14
  133. package/src/login/pages/select-authenticator/select-authenticator.component.html +43 -44
  134. package/src/login/pages/select-authenticator/select-authenticator.component.ts +4 -21
  135. package/src/login/pages/terms/terms.component.html +32 -32
  136. package/src/login/pages/terms/terms.component.ts +2 -12
  137. package/src/login/pages/update-email/update-email.component.html +52 -52
  138. package/src/login/pages/update-email/update-email.component.ts +3 -20
  139. package/src/login/pages/webauthn-authenticate/webauthn-authenticate.component.html +146 -148
  140. package/src/login/pages/webauthn-authenticate/webauthn-authenticate.component.ts +5 -29
  141. package/src/login/pages/webauthn-error/webauthn-error.component.html +53 -53
  142. package/src/login/pages/webauthn-error/webauthn-error.component.ts +3 -18
  143. package/src/login/pages/webauthn-register/webauthn-register.component.html +73 -73
  144. package/src/login/pages/webauthn-register/webauthn-register.component.ts +4 -20
  145. package/src/tsconfig.json +0 -1
@@ -66,7 +66,7 @@ export class SelectTagComponent extends ComponentReference {
66
66
  provide: ComponentReference,
67
67
  useExisting: forwardRef(() => SelectTagComponent)
68
68
  }
69
- ], usesInheritance: true, ngImport: i0, template: "@let attr = attribute();\n@let multiple = isMultiple();\n@if (attr) {\n <select\n [id]=\"attr.name\"\n [name]=\"attr.name\"\n [value]=\"valueOrValues()\"\n [kcClass]=\"'kcInputClass'\"\n [attr.aria-invalid]=\"!!displayableErrors()?.length\"\n [disabled]=\"attr.readOnly\"\n [multiple]=\"multiple\"\n [size]=\"!attr.annotations.inputTypeSize ? undefined : (attr.annotations.inputTypeSize | toNumber)\"\n (change)=\"onChange($event)\"\n (blur)=\"onBlur()\"\n >\n @if (!multiple) {\n <option value=\"\"></option>\n }\n @for (option of options(); track option) {\n <option [value]=\"option\">\n @if (!!attr.annotations.inputOptionLabels) {\n {{ attr.annotations.inputOptionLabels[option] ?? option | advancedMsgStr }}\n } @else if (!!attr.annotations.inputOptionLabelsI18nPrefix) {\n {{ attr.annotations.inputOptionLabelsI18nPrefix + '.' + option | advancedMsgStr }}\n } @else {\n {{ option }}\n }\n </option>\n }\n </select>\n}\n", styles: [":host{display:contents}\n"], dependencies: [{ kind: "directive", type: KcClassDirective, selector: "[kcClass]", inputs: ["class", "ngClass", "kcClass"] }, { kind: "pipe", type: ToNumberPipe, name: "toNumber" }, { kind: "pipe", type: AdvancedMsgStrPipe, name: "advancedMsgStr" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
69
+ ], usesInheritance: true, ngImport: i0, template: "@let attr = attribute();\n@let multiple = isMultiple();\n@if (attr) {\n <select\n [id]=\"attr.name\"\n [name]=\"attr.name\"\n [value]=\"valueOrValues()\"\n [kcClass]=\"'kcInputClass'\"\n [attr.aria-invalid]=\"!!displayableErrors()?.length\"\n [disabled]=\"attr.readOnly\"\n [multiple]=\"multiple\"\n [size]=\"!attr.annotations.inputTypeSize ? undefined : (attr.annotations.inputTypeSize | toNumber)\"\n (change)=\"onChange($event)\"\n (blur)=\"onBlur()\"\n >\n @if (!multiple) {\n <option value=\"\"></option>\n }\n @for (option of options(); track option) {\n <option [value]=\"option\">\n @if (!!attr.annotations.inputOptionLabels) {\n {{ attr.annotations.inputOptionLabels[option] ?? option | advancedMsgStr }}\n } @else if (!!attr.annotations.inputOptionLabelsI18nPrefix) {\n {{ attr.annotations.inputOptionLabelsI18nPrefix + '.' + option | advancedMsgStr }}\n } @else {\n {{ option }}\n }\n </option>\n }\n </select>\n}\n", styles: [":host{display:contents}\n"], dependencies: [{ kind: "directive", type: KcClassDirective, selector: "[kcClass]", inputs: ["class", "ngClass", "kcClass"] }, { kind: "pipe", type: ToNumberPipe, name: "toNumber" }, { kind: "pipe", type: AdvancedMsgStrPipe, name: "advancedMsgStr" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
70
70
  }
71
71
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: SelectTagComponent, decorators: [{
72
72
  type: Component,
@@ -75,6 +75,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImpor
75
75
  provide: ComponentReference,
76
76
  useExisting: forwardRef(() => SelectTagComponent)
77
77
  }
78
- ], template: "@let attr = attribute();\n@let multiple = isMultiple();\n@if (attr) {\n <select\n [id]=\"attr.name\"\n [name]=\"attr.name\"\n [value]=\"valueOrValues()\"\n [kcClass]=\"'kcInputClass'\"\n [attr.aria-invalid]=\"!!displayableErrors()?.length\"\n [disabled]=\"attr.readOnly\"\n [multiple]=\"multiple\"\n [size]=\"!attr.annotations.inputTypeSize ? undefined : (attr.annotations.inputTypeSize | toNumber)\"\n (change)=\"onChange($event)\"\n (blur)=\"onBlur()\"\n >\n @if (!multiple) {\n <option value=\"\"></option>\n }\n @for (option of options(); track option) {\n <option [value]=\"option\">\n @if (!!attr.annotations.inputOptionLabels) {\n {{ attr.annotations.inputOptionLabels[option] ?? option | advancedMsgStr }}\n } @else if (!!attr.annotations.inputOptionLabelsI18nPrefix) {\n {{ attr.annotations.inputOptionLabelsI18nPrefix + '.' + option | advancedMsgStr }}\n } @else {\n {{ option }}\n }\n </option>\n }\n </select>\n}\n", styles: [":host{display:contents}\n"] }]
78
+ ], template: "@let attr = attribute();\n@let multiple = isMultiple();\n@if (attr) {\n <select\n [id]=\"attr.name\"\n [name]=\"attr.name\"\n [value]=\"valueOrValues()\"\n [kcClass]=\"'kcInputClass'\"\n [attr.aria-invalid]=\"!!displayableErrors()?.length\"\n [disabled]=\"attr.readOnly\"\n [multiple]=\"multiple\"\n [size]=\"!attr.annotations.inputTypeSize ? undefined : (attr.annotations.inputTypeSize | toNumber)\"\n (change)=\"onChange($event)\"\n (blur)=\"onBlur()\"\n >\n @if (!multiple) {\n <option value=\"\"></option>\n }\n @for (option of options(); track option) {\n <option [value]=\"option\">\n @if (!!attr.annotations.inputOptionLabels) {\n {{ attr.annotations.inputOptionLabels[option] ?? option | advancedMsgStr }}\n } @else if (!!attr.annotations.inputOptionLabelsI18nPrefix) {\n {{ attr.annotations.inputOptionLabelsI18nPrefix + '.' + option | advancedMsgStr }}\n } @else {\n {{ option }}\n }\n </option>\n }\n </select>\n}\n", styles: [":host{display:contents}\n"] }]
79
79
  }] });
80
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LXRhZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rZXljbG9ha2lmeS1hbmd1bGFyL3NyYy9sb2dpbi9jb21wb25lbnRzL3NlbGVjdC10YWcvc2VsZWN0LXRhZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rZXljbG9ha2lmeS1hbmd1bGFyL3NyYy9sb2dpbi9jb21wb25lbnRzL3NlbGVjdC10YWcvc2VsZWN0LXRhZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxRQUFRLEVBQ1IsVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFHL0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOERBQThELENBQUM7QUFDbEcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFDNUYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFDNUYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlEQUFpRCxDQUFDOztBQTBCL0UsTUFBTSxPQUFPLGtCQUFtQixTQUFRLGtCQUFrQjtJQXBCMUQ7O1FBcUJJLGNBQVMsR0FBRyxLQUFLLEVBQWEsQ0FBQztRQUMvQixrQkFBYSxHQUFHLEtBQUssRUFBcUIsQ0FBQztRQUMzQyxzQkFBaUIsR0FBRyxLQUFLLEVBQW9CLENBQUM7UUFDOUMsdUJBQWtCLEdBQUcsTUFBTSxFQUFjLENBQUM7UUFDakMsb0JBQWUsR0FBRyxNQUFNLENBQVUsZUFBZSxDQUFDLENBQUM7UUFDbkQsWUFBTyxHQUFHLE1BQU0sQ0FBb0MsT0FBTyxDQUFDLENB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c291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgY29tcHV0ZWQsXG4gICAgZm9yd2FyZFJlZixcbiAgICBpbmplY3QsXG4gICAgaW5wdXQsXG4gICAgb3V0cHV0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ0xBU1NFUywgVVNFX0RFRkFVTFRfQ1NTIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbGliL3B1YmxpYy1hcGknO1xuaW1wb3J0IHsgQXR0cmlidXRlIH0gZnJvbSAna2V5Y2xvYWtpZnkvbG9naW4vS2NDb250ZXh0JztcbmltcG9ydCB7IENsYXNzS2V5IH0gZnJvbSAna2V5Y2xvYWtpZnkvbG9naW4vbGliL2tjQ2xzeCc7XG5pbXBvcnQgeyBDb21wb25lbnRSZWZlcmVuY2UgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9jbGFzc2VzL2NvbXBvbmVudC1yZWZlcmVuY2UuY2xhc3MnO1xuaW1wb3J0IHsgS2NDbGFzc0RpcmVjdGl2ZSB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL2RpcmVjdGl2ZXMva2MtY2xhc3MuZGlyZWN0aXZlJztcbmltcG9ydCB7IEFkdmFuY2VkTXNnU3RyUGlwZSB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL3BpcGVzL2FkdmFuY2VkLW1zZy1zdHIucGlwZSc7XG5pbXBvcnQgeyBUb051bWJlclBpcGUgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9waXBlcy90by1udW1iZXIucGlwZSc7XG5pbXBvcnQge1xuICAgIEZvcm1BY3Rpb24sXG4gICAgRm9ybUZpZWxkRXJyb3Jcbn0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vc2VydmljZXMvdXNlci1wcm9maWxlLWZvcm0uc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc3R5bGVzOiBbXG4gICAgICAgIGBcbiAgICAgICAgICAgIDpob3N0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBjb250ZW50cztcbiAgICAgICAgICAgIH1cbiAgICAgICAgYFxuICAgIF0sXG4gICAgaW1wb3J0czogW0tjQ2xhc3NEaXJlY3RpdmUsIFRvTnVtYmVyUGlwZSwgQWR2YW5jZWRNc2dTdHJQaXBlXSxcbiAgICBzZWxlY3RvcjogJ2tjLXNlbGVjdC10YWcnLFxuICAgIHRlbXBsYXRlVXJsOiAnc2VsZWN0LXRhZy5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IENvbXBvbmVudFJlZmVyZW5jZSxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFNlbGVjdFRhZ0NvbXBvbmVudClcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgU2VsZWN0VGFnQ29tcG9uZW50IGV4dGVuZHMgQ29tcG9uZW50UmVmZXJlbmNlIHtcbiAgICBhdHRyaWJ1dGUgPSBpbnB1dDxBdHRyaWJ1dGU+KCk7XG4gICAgdmFsdWVPclZhbHVlcyA9IGlucHV0PHN0cmluZyB8IHN0cmluZ1tdPigpO1xuICAgIGRpc3BsYXlhYmxlRXJyb3JzID0gaW5wdXQ8Rm9ybUZpZWxkRXJyb3JbXT4oKTtcbiAgICBkaXNwYXRjaEZvcm1BY3Rpb24gPSBvdXRwdXQ8Rm9ybUFjdGlvbj4oKTtcbiAgICBvdmVycmlkZSBkb1VzZURlZmF1bHRDc3MgPSBpbmplY3Q8Ym9vbGVhbj4oVVNFX0RFRkFVTFRfQ1NTKTtcbiAgICBvdmVycmlkZSBjbGFzc2VzID0gaW5qZWN0PFBhcnRpYWw8UmVjb3JkPENsYXNzS2V5LCBzdHJpbmc+Pj4oQ0xBU1NFUyk7XG5cbiAgICBpc011bHRpcGxlID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5hdHRyaWJ1dGUoKT8uYW5ub3RhdGlvbnM/LmlucHV0VHlwZSA9PT0gJ211bHRpc2VsZWN0JztcbiAgICB9KTtcblxuICAgIG9wdGlvbnMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IGF0dHJpYnV0ZSA9IHRoaXMuYXR0cmlidXRlKCk7XG4gICAgICAgIGlmIChhdHRyaWJ1dGUpIHtcbiAgICAgICAgICAgIHJldHVybiAoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHdhbGs6IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBpbnB1dE9wdGlvbnNGcm9tVmFsaWRhdGlvbiB9ID0gYXR0cmlidXRlLmFubm90YXRpb25zO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChpbnB1dE9wdGlvbnNGcm9tVmFsaWRhdGlvbiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhayB3YWxrO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsaWRhdG9yID0gKFxuICAgICAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlLnZhbGlkYXRvcnMgYXMgUmVjb3JkPHN0cmluZywgeyBvcHRpb25zPzogc3RyaW5nW10gfT5cbiAgICAgICAgICAgICAgICAgICAgKVtpbnB1dE9wdGlvbnNGcm9tVmFsaWRhdGlvbl07XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbGlkYXRvciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhayB3YWxrO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbGlkYXRvci5vcHRpb25zID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrIHdhbGs7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsaWRhdG9yLm9wdGlvbnM7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIGF0dHJpYnV0ZS52YWxpZGF0b3JzLm9wdGlvbnM/Lm9wdGlvbnMgPz8gW107XG4gICAgICAgICAgICB9KSgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBbXTtcbiAgICB9KTtcblxuICAgIG9uQ2hhbmdlKGV2ZW50OiBFdmVudCkge1xuICAgICAgICB0aGlzLmRpc3BhdGNoRm9ybUFjdGlvbi5lbWl0KHtcbiAgICAgICAgICAgIGFjdGlvbjogJ3VwZGF0ZScsXG4gICAgICAgICAgICBuYW1lOiB0aGlzLmF0dHJpYnV0ZSgpPy5uYW1lID8/ICcnLFxuICAgICAgICAgICAgdmFsdWVPclZhbHVlczogKCgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pc011bHRpcGxlKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEFycmF5LmZyb20oXG4gICAgICAgICAgICAgICAgICAgICAgICAoZXZlbnQudGFyZ2V0IGFzIEhUTUxTZWxlY3RFbGVtZW50KS5zZWxlY3RlZE9wdGlvbnNcbiAgICAgICAgICAgICAgICAgICAgKS5tYXAob3B0aW9uID0+IG9wdGlvbi52YWx1ZSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIChldmVudC50YXJnZXQgYXMgSFRNTFNlbGVjdEVsZW1lbnQpLnZhbHVlO1xuICAgICAgICAgICAgfSkoKVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBvbkJsdXIoKSB7XG4gICAgICAgIHRoaXMuZGlzcGF0Y2hGb3JtQWN0aW9uLmVtaXQoe1xuICAgICAgICAgICAgYWN0aW9uOiAnZm9jdXMgbG9zdCcsXG4gICAgICAgICAgICBuYW1lOiB0aGlzLmF0dHJpYnV0ZSgpPy5uYW1lID8/ICcnLFxuICAgICAgICAgICAgZmllbGRJbmRleDogdW5kZWZpbmVkXG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiIsIkBsZXQgYXR0ciA9IGF0dHJpYnV0ZSgpO1xuQGxldCBtdWx0aXBsZSA9IGlzTXVsdGlwbGUoKTtcbkBpZiAoYXR0cikge1xuICA8c2VsZWN0XG4gICAgW2lkXT1cImF0dHIubmFtZVwiXG4gICAgW25hbWVdPVwiYXR0ci5uYW1lXCJcbiAgICBbdmFsdWVdPVwidmFsdWVPclZhbHVlcygpXCJcbiAgICBba2NDbGFzc109XCIna2NJbnB1dENsYXNzJ1wiXG4gICAgW2F0dHIuYXJpYS1pbnZhbGlkXT1cIiEhZGlzcGxheWFibGVFcnJvcnMoKT8ubGVuZ3RoXCJcbiAgICBbZGlzYWJsZWRdPVwiYXR0ci5yZWFkT25seVwiXG4gICAgW211bHRpcGxlXT1cIm11bHRpcGxlXCJcbiAgICBbc2l6ZV09XCIhYXR0ci5hbm5vdGF0aW9ucy5pbnB1dFR5cGVTaXplID8gdW5kZWZpbmVkIDogKGF0dHIuYW5ub3RhdGlvbnMuaW5wdXRUeXBlU2l6ZSB8IHRvTnVtYmVyKVwiXG4gICAgKGNoYW5nZSk9XCJvbkNoYW5nZSgkZXZlbnQpXCJcbiAgICAoYmx1cik9XCJvbkJsdXIoKVwiXG4gID5cbiAgICBAaWYgKCFtdWx0aXBsZSkge1xuICAgICAgPG9wdGlvbiB2YWx1ZT1cIlwiPjwvb3B0aW9uPlxuICAgIH1cbiAgICBAZm9yIChvcHRpb24gb2Ygb3B0aW9ucygpOyB0cmFjayBvcHRpb24pIHtcbiAgICAgIDxvcHRpb24gW3ZhbHVlXT1cIm9wdGlvblwiPlxuICAgICAgICBAaWYgKCEhYXR0ci5hbm5vdGF0aW9ucy5pbnB1dE9wdGlvbkxhYmVscykge1xuICAgICAgICAgIHt7IGF0dHIuYW5ub3RhdGlvbnMuaW5wdXRPcHRpb25MYWJlbHNbb3B0aW9uXSA/PyBvcHRpb24gfCBhZHZhbmNlZE1zZ1N0ciB9fVxuICAgICAgICB9IEBlbHNlIGlmICghIWF0dHIuYW5ub3RhdGlvbnMuaW5wdXRPcHRpb25MYWJlbHNJMThuUHJlZml4KSB7XG4gICAgICAgICAge3sgYXR0ci5hbm5vdGF0aW9ucy5pbnB1dE9wdGlvbkxhYmVsc0kxOG5QcmVmaXggKyAnLicgKyBvcHRpb24gfCBhZHZhbmNlZE1zZ1N0ciB9fVxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICB7eyBvcHRpb24gfX1cbiAgICAgICAgfVxuICAgICAgPC9vcHRpb24+XG4gICAgfVxuICA8L3NlbGVjdD5cbn1cbiJdfQ==
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LXRhZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rZXljbG9ha2lmeS1hbmd1bGFyL3NyYy9sb2dpbi9jb21wb25lbnRzL3NlbGVjdC10YWcvc2VsZWN0LXRhZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rZXljbG9ha2lmeS1hbmd1bGFyL3NyYy9sb2dpbi9jb21wb25lbnRzL3NlbGVjdC10YWcvc2VsZWN0LXRhZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEgsT0FBTyxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUcvRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUNsRyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUM1RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUM1RixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saURBQWlELENBQUM7O0FBdUIvRSxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsa0JBQWtCO0lBcEIxRDs7UUFxQkksY0FBUyxHQUFHLEtBQUssRUFBYSxDQUFDO1FBQy9CLGtCQUFhLEdBQUcsS0FBSyxFQUFxQixDQUFDO1FBQzNDLHNCQUFpQixHQUFHLEtBQUssRUFBb0IsQ0FBQztRQUM5Qyx1QkFBa0IsR0FBRyxNQUFNLEVBQWMsQ0FBQztRQUNqQyxvQkFBZSxHQUFHLE1BQU0sQ0FBVSxlQUFlLENBQUMsQ0FBQztRQUNuRCxZQUFPLEdBQUcsTUFBTSxDQUFvQyxPQUFPLENBQUMsQ0FBQztRQUV0RSxlQUFVLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUN2QixPQUFPLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRSxXQUFXLEVBQUUsU0FBUyxLQUFLLGFBQWEsQ0FBQztRQUN0RSxDQUFDLENBQUMsQ0FBQztRQUVILFlBQU8sR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ3BCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNuQyxJQUFJLFNBQVMsRUFBRSxDQUFDO2dCQUNaLE9BQU8sQ0FBQyxHQUFHLEVBQUU7b0JBQ1QsSUFBSSxFQUFFLENBQUM7d0JBQ0gsTUFBTSxFQUFFLDBCQUEwQixFQUFFLEdBQUcsU0FBUyxDQUFDLFdBQVcsQ0FBQzt3QkFFN0QsSUFBSSwwQkFBMEIsS0FBSyxTQUFTLEVBQUUsQ0FBQzs0QkFDM0MsTUFBTSxJQUFJLENBQUM7d0JBQ2YsQ0FBQzt3QkFFRCxNQUFNLFNBQVMsR0FBSSxTQUFTLENBQUMsVUFBcUQsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO3dCQUUvRyxJQUFJLFNBQVMsS0FBSyxTQUFTLEVBQUUsQ0FBQzs0QkFDMUIsTUFBTSxJQUFJLENBQUM7d0JBQ2YsQ0FBQzt3QkFFRCxJQUFJLFNBQVMsQ0FBQyxPQUFPLEtBQUssU0FBUyxFQUFFLENBQUM7NEJBQ2xDLE1BQU0sSUFBSSxDQUFDO3dCQUNmLENBQUM7d0JBRUQsT0FBTyxTQUFTLENBQUMsT0FBTyxDQUFDO29CQUM3QixDQUFDO29CQUVELE9BQU8sU0FBUyxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsT0FBTyxJQUFJLEVBQUUsQ0FBQztnQkFDdkQsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNULENBQUM7WUFDRCxPQUFPLEVBQUUsQ0FBQztRQUNkLENBQUMsQ0FBQyxDQUFDO0tBdUJOO0lBckJHLFFBQVEsQ0FBQyxLQUFZO1FBQ2pCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUM7WUFDekIsTUFBTSxFQUFFLFFBQVE7WUFDaEIsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBRTtZQUNsQyxhQUFhLEVBQUUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2pCLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUM7b0JBQ3BCLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBRSxLQUFLLENBQUMsTUFBNEIsQ0FBQyxlQUFlLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3ZHLENBQUM7Z0JBRUQsT0FBUSxLQUFLLENBQUMsTUFBNEIsQ0FBQyxLQUFLLENBQUM7WUFDckQsQ0FBQyxDQUFDLEVBQUU7U0FDUCxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsTUFBTTtRQUNGLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUM7WUFDekIsTUFBTSxFQUFFLFlBQVk7WUFDcEIsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBRTtZQUNsQyxVQUFVLEVBQUUsU0FBUztTQUN4QixDQUFDLENBQUM7SUFDUCxDQUFDOzhHQTlEUSxrQkFBa0I7a0dBQWxCLGtCQUFrQiwraUJBUGhCO1lBQ1A7Z0JBQ0ksT0FBTyxFQUFFLGtCQUFrQjtnQkFDM0IsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQzthQUNwRDtTQUNKLGlEQzVCTCxpcUNBK0JBLG1GRFpjLGdCQUFnQiwwRkFBRSxZQUFZLDRDQUFFLGtCQUFrQjs7MkZBV25ELGtCQUFrQjtrQkFwQjlCLFNBQVM7aUNBQ00sSUFBSSxXQVFQLENBQUMsZ0JBQWdCLEVBQUUsWUFBWSxFQUFFLGtCQUFrQixDQUFDLFlBQ25ELGVBQWUsbUJBRVIsdUJBQXVCLENBQUMsTUFBTSxhQUNwQzt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsa0JBQWtCOzRCQUMzQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxtQkFBbUIsQ0FBQzt5QkFDcEQ7cUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBjb21wdXRlZCwgZm9yd2FyZFJlZiwgaW5qZWN0LCBpbnB1dCwgb3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDTEFTU0VTLCBVU0VfREVGQVVMVF9DU1MgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9saWIvcHVibGljLWFwaSc7XG5pbXBvcnQgeyBBdHRyaWJ1dGUgfSBmcm9tICdrZXljbG9ha2lmeS9sb2dpbi9LY0NvbnRleHQnO1xuaW1wb3J0IHsgQ2xhc3NLZXkgfSBmcm9tICdrZXljbG9ha2lmeS9sb2dpbi9saWIva2NDbHN4JztcbmltcG9ydCB7IENvbXBvbmVudFJlZmVyZW5jZSB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL2NsYXNzZXMvY29tcG9uZW50LXJlZmVyZW5jZS5jbGFzcyc7XG5pbXBvcnQgeyBLY0NsYXNzRGlyZWN0aXZlIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vZGlyZWN0aXZlcy9rYy1jbGFzcy5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQWR2YW5jZWRNc2dTdHJQaXBlIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vcGlwZXMvYWR2YW5jZWQtbXNnLXN0ci5waXBlJztcbmltcG9ydCB7IFRvTnVtYmVyUGlwZSB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL3BpcGVzL3RvLW51bWJlci5waXBlJztcbmltcG9ydCB7IEZvcm1BY3Rpb24sIEZvcm1GaWVsZEVycm9yIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vc2VydmljZXMvdXNlci1wcm9maWxlLWZvcm0uc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc3R5bGVzOiBbXG4gICAgICAgIGBcbiAgICAgICAgICAgIDpob3N0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBjb250ZW50cztcbiAgICAgICAgICAgIH1cbiAgICAgICAgYFxuICAgIF0sXG4gICAgaW1wb3J0czogW0tjQ2xhc3NEaXJlY3RpdmUsIFRvTnVtYmVyUGlwZSwgQWR2YW5jZWRNc2dTdHJQaXBlXSxcbiAgICBzZWxlY3RvcjogJ2tjLXNlbGVjdC10YWcnLFxuICAgIHRlbXBsYXRlVXJsOiAnc2VsZWN0LXRhZy5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IENvbXBvbmVudFJlZmVyZW5jZSxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFNlbGVjdFRhZ0NvbXBvbmVudClcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgU2VsZWN0VGFnQ29tcG9uZW50IGV4dGVuZHMgQ29tcG9uZW50UmVmZXJlbmNlIHtcbiAgICBhdHRyaWJ1dGUgPSBpbnB1dDxBdHRyaWJ1dGU+KCk7XG4gICAgdmFsdWVPclZhbHVlcyA9IGlucHV0PHN0cmluZyB8IHN0cmluZ1tdPigpO1xuICAgIGRpc3BsYXlhYmxlRXJyb3JzID0gaW5wdXQ8Rm9ybUZpZWxkRXJyb3JbXT4oKTtcbiAgICBkaXNwYXRjaEZvcm1BY3Rpb24gPSBvdXRwdXQ8Rm9ybUFjdGlvbj4oKTtcbiAgICBvdmVycmlkZSBkb1VzZURlZmF1bHRDc3MgPSBpbmplY3Q8Ym9vbGVhbj4oVVNFX0RFRkFVTFRfQ1NTKTtcbiAgICBvdmVycmlkZSBjbGFzc2VzID0gaW5qZWN0PFBhcnRpYWw8UmVjb3JkPENsYXNzS2V5LCBzdHJpbmc+Pj4oQ0xBU1NFUyk7XG5cbiAgICBpc011bHRpcGxlID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5hdHRyaWJ1dGUoKT8uYW5ub3RhdGlvbnM/LmlucHV0VHlwZSA9PT0gJ211bHRpc2VsZWN0JztcbiAgICB9KTtcblxuICAgIG9wdGlvbnMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IGF0dHJpYnV0ZSA9IHRoaXMuYXR0cmlidXRlKCk7XG4gICAgICAgIGlmIChhdHRyaWJ1dGUpIHtcbiAgICAgICAgICAgIHJldHVybiAoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHdhbGs6IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBpbnB1dE9wdGlvbnNGcm9tVmFsaWRhdGlvbiB9ID0gYXR0cmlidXRlLmFubm90YXRpb25zO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChpbnB1dE9wdGlvbnNGcm9tVmFsaWRhdGlvbiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhayB3YWxrO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsaWRhdG9yID0gKGF0dHJpYnV0ZS52YWxpZGF0b3JzIGFzIFJlY29yZDxzdHJpbmcsIHsgb3B0aW9ucz86IHN0cmluZ1tdIH0+KVtpbnB1dE9wdGlvbnNGcm9tVmFsaWRhdGlvbl07XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbGlkYXRvciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhayB3YWxrO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbGlkYXRvci5vcHRpb25zID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrIHdhbGs7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsaWRhdG9yLm9wdGlvbnM7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIGF0dHJpYnV0ZS52YWxpZGF0b3JzLm9wdGlvbnM/Lm9wdGlvbnMgPz8gW107XG4gICAgICAgICAgICB9KSgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBbXTtcbiAgICB9KTtcblxuICAgIG9uQ2hhbmdlKGV2ZW50OiBFdmVudCkge1xuICAgICAgICB0aGlzLmRpc3BhdGNoRm9ybUFjdGlvbi5lbWl0KHtcbiAgICAgICAgICAgIGFjdGlvbjogJ3VwZGF0ZScsXG4gICAgICAgICAgICBuYW1lOiB0aGlzLmF0dHJpYnV0ZSgpPy5uYW1lID8/ICcnLFxuICAgICAgICAgICAgdmFsdWVPclZhbHVlczogKCgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pc011bHRpcGxlKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEFycmF5LmZyb20oKGV2ZW50LnRhcmdldCBhcyBIVE1MU2VsZWN0RWxlbWVudCkuc2VsZWN0ZWRPcHRpb25zKS5tYXAob3B0aW9uID0+IG9wdGlvbi52YWx1ZSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIChldmVudC50YXJnZXQgYXMgSFRNTFNlbGVjdEVsZW1lbnQpLnZhbHVlO1xuICAgICAgICAgICAgfSkoKVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBvbkJsdXIoKSB7XG4gICAgICAgIHRoaXMuZGlzcGF0Y2hGb3JtQWN0aW9uLmVtaXQoe1xuICAgICAgICAgICAgYWN0aW9uOiAnZm9jdXMgbG9zdCcsXG4gICAgICAgICAgICBuYW1lOiB0aGlzLmF0dHJpYnV0ZSgpPy5uYW1lID8/ICcnLFxuICAgICAgICAgICAgZmllbGRJbmRleDogdW5kZWZpbmVkXG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiIsIkBsZXQgYXR0ciA9IGF0dHJpYnV0ZSgpO1xuQGxldCBtdWx0aXBsZSA9IGlzTXVsdGlwbGUoKTtcbkBpZiAoYXR0cikge1xuICAgIDxzZWxlY3RcbiAgICAgICAgW2lkXT1cImF0dHIubmFtZVwiXG4gICAgICAgIFtuYW1lXT1cImF0dHIubmFtZVwiXG4gICAgICAgIFt2YWx1ZV09XCJ2YWx1ZU9yVmFsdWVzKClcIlxuICAgICAgICBba2NDbGFzc109XCIna2NJbnB1dENsYXNzJ1wiXG4gICAgICAgIFthdHRyLmFyaWEtaW52YWxpZF09XCIhIWRpc3BsYXlhYmxlRXJyb3JzKCk/Lmxlbmd0aFwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJhdHRyLnJlYWRPbmx5XCJcbiAgICAgICAgW211bHRpcGxlXT1cIm11bHRpcGxlXCJcbiAgICAgICAgW3NpemVdPVwiIWF0dHIuYW5ub3RhdGlvbnMuaW5wdXRUeXBlU2l6ZSA/IHVuZGVmaW5lZCA6IChhdHRyLmFubm90YXRpb25zLmlucHV0VHlwZVNpemUgfCB0b051bWJlcilcIlxuICAgICAgICAoY2hhbmdlKT1cIm9uQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAoYmx1cik9XCJvbkJsdXIoKVwiXG4gICAgPlxuICAgICAgICBAaWYgKCFtdWx0aXBsZSkge1xuICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIlwiPjwvb3B0aW9uPlxuICAgICAgICB9XG4gICAgICAgIEBmb3IgKG9wdGlvbiBvZiBvcHRpb25zKCk7IHRyYWNrIG9wdGlvbikge1xuICAgICAgICAgICAgPG9wdGlvbiBbdmFsdWVdPVwib3B0aW9uXCI+XG4gICAgICAgICAgICAgICAgQGlmICghIWF0dHIuYW5ub3RhdGlvbnMuaW5wdXRPcHRpb25MYWJlbHMpIHtcbiAgICAgICAgICAgICAgICAgICAge3sgYXR0ci5hbm5vdGF0aW9ucy5pbnB1dE9wdGlvbkxhYmVsc1tvcHRpb25dID8/IG9wdGlvbiB8IGFkdmFuY2VkTXNnU3RyIH19XG4gICAgICAgICAgICAgICAgfSBAZWxzZSBpZiAoISFhdHRyLmFubm90YXRpb25zLmlucHV0T3B0aW9uTGFiZWxzSTE4blByZWZpeCkge1xuICAgICAgICAgICAgICAgICAgICB7eyBhdHRyLmFubm90YXRpb25zLmlucHV0T3B0aW9uTGFiZWxzSTE4blByZWZpeCArICcuJyArIG9wdGlvbiB8IGFkdmFuY2VkTXNnU3RyIH19XG4gICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHt7IG9wdGlvbiB9fVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvb3B0aW9uPlxuICAgICAgICB9XG4gICAgPC9zZWxlY3Q+XG59XG4iXX0=
@@ -34,7 +34,7 @@ export class TextareaTagComponent extends ComponentReference {
34
34
  provide: ComponentReference,
35
35
  useExisting: forwardRef(() => TextareaTagComponent)
36
36
  }
37
- ], usesInheritance: true, ngImport: i0, template: "@let attr = attribute();\n@if (attr) {\n <textarea\n [id]=\"attr.name\"\n [name]=\"attr.name\"\n [kcClass]=\"'kcInputClass'\"\n [attr.aria-invalid]=\"!!displayableErrors()?.length\"\n [disabled]=\"attr.readOnly\"\n [cols]=\"attr.annotations.inputTypeCols === undefined ? undefined : (attr.annotations.inputTypeCols | toNumber)\"\n [rows]=\"attr.annotations.inputTypeRows === undefined ? undefined : (attr.annotations.inputTypeRows | toNumber)\"\n [maxLength]=\"\n attr.annotations.inputTypeMaxlength === undefined ? undefined : (attr.annotations.inputTypeMaxlength | toNumber)\n \"\n [value]=\"value()\"\n (change)=\"onChange($event)\"\n (blur)=\"onBlur()\"\n ></textarea>\n}\n", styles: [":host{display:contents}\n"], dependencies: [{ kind: "directive", type: KcClassDirective, selector: "[kcClass]", inputs: ["class", "ngClass", "kcClass"] }, { kind: "pipe", type: ToNumberPipe, name: "toNumber" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
37
+ ], usesInheritance: true, ngImport: i0, template: "@let attr = attribute();\n@if (attr) {\n <textarea\n [id]=\"attr.name\"\n [name]=\"attr.name\"\n [kcClass]=\"'kcInputClass'\"\n [attr.aria-invalid]=\"!!displayableErrors()?.length\"\n [disabled]=\"attr.readOnly\"\n [cols]=\"attr.annotations.inputTypeCols === undefined ? undefined : (attr.annotations.inputTypeCols | toNumber)\"\n [rows]=\"attr.annotations.inputTypeRows === undefined ? undefined : (attr.annotations.inputTypeRows | toNumber)\"\n [maxLength]=\"attr.annotations.inputTypeMaxlength === undefined ? undefined : (attr.annotations.inputTypeMaxlength | toNumber)\"\n [value]=\"value()\"\n (change)=\"onChange($event)\"\n (blur)=\"onBlur()\"\n ></textarea>\n}\n", styles: [":host{display:contents}\n"], dependencies: [{ kind: "directive", type: KcClassDirective, selector: "[kcClass]", inputs: ["class", "ngClass", "kcClass"] }, { kind: "pipe", type: ToNumberPipe, name: "toNumber" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
38
38
  }
39
39
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: TextareaTagComponent, decorators: [{
40
40
  type: Component,
@@ -43,6 +43,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImpor
43
43
  provide: ComponentReference,
44
44
  useExisting: forwardRef(() => TextareaTagComponent)
45
45
  }
46
- ], template: "@let attr = attribute();\n@if (attr) {\n <textarea\n [id]=\"attr.name\"\n [name]=\"attr.name\"\n [kcClass]=\"'kcInputClass'\"\n [attr.aria-invalid]=\"!!displayableErrors()?.length\"\n [disabled]=\"attr.readOnly\"\n [cols]=\"attr.annotations.inputTypeCols === undefined ? undefined : (attr.annotations.inputTypeCols | toNumber)\"\n [rows]=\"attr.annotations.inputTypeRows === undefined ? undefined : (attr.annotations.inputTypeRows | toNumber)\"\n [maxLength]=\"\n attr.annotations.inputTypeMaxlength === undefined ? undefined : (attr.annotations.inputTypeMaxlength | toNumber)\n \"\n [value]=\"value()\"\n (change)=\"onChange($event)\"\n (blur)=\"onBlur()\"\n ></textarea>\n}\n", styles: [":host{display:contents}\n"] }]
46
+ ], template: "@let attr = attribute();\n@if (attr) {\n <textarea\n [id]=\"attr.name\"\n [name]=\"attr.name\"\n [kcClass]=\"'kcInputClass'\"\n [attr.aria-invalid]=\"!!displayableErrors()?.length\"\n [disabled]=\"attr.readOnly\"\n [cols]=\"attr.annotations.inputTypeCols === undefined ? undefined : (attr.annotations.inputTypeCols | toNumber)\"\n [rows]=\"attr.annotations.inputTypeRows === undefined ? undefined : (attr.annotations.inputTypeRows | toNumber)\"\n [maxLength]=\"attr.annotations.inputTypeMaxlength === undefined ? undefined : (attr.annotations.inputTypeMaxlength | toNumber)\"\n [value]=\"value()\"\n (change)=\"onChange($event)\"\n (blur)=\"onBlur()\"\n ></textarea>\n}\n", styles: [":host{display:contents}\n"] }]
47
47
  }] });
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dGFyZWEtdGFnLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tleWNsb2FraWZ5LWFuZ3VsYXIvc3JjL2xvZ2luL2NvbXBvbmVudHMvdGV4dGFyZWEtdGFnL3RleHRhcmVhLXRhZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rZXljbG9ha2lmeS1hbmd1bGFyL3NyYy9sb2dpbi9jb21wb25lbnRzL3RleHRhcmVhLXRhZy90ZXh0YXJlYS10YWcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFHL0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOERBQThELENBQUM7QUFDbEcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFDNUYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlEQUFpRCxDQUFDOztBQTBCL0UsTUFBTSxPQUFPLG9CQUFxQixTQUFRLGtCQUFrQjtJQXBCNUQ7O1FBcUJJLGNBQVMsR0FBRyxLQUFLLEVBQWEsQ0FBQztRQUMvQixVQUFLLEdBQUcsS0FBSyxFQUFVLENBQUM7UUFDeEIsc0JBQWlCLEdBQUcsS0FBSyxFQUFvQixDQUFDO1FBQzlDLHVCQUFrQixHQUFHLE1BQU0sRUFBYyxDQUFDO1FBQ2pDLG9CQUFlLEdBQUcsTUFBTSxDQUFVLGVBQWUsQ0FBQyxDQUFDO1FBQ25ELFlBQU8sR0FBRyxNQUFNLENBQW9DLE9BQU8sQ0FBQyxDQUFDO0tBaUJ6RTtJQWZHLFFBQVEsQ0FBQyxLQUFZO1FBQ2pCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUM7WUFDekIsTUFBTSxFQUFFLFFBQVE7WUFDaEIsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBRTtZQUNsQyxhQUFhLEVBQUcsS0FBSyxDQUFDLE1BQThCLENBQUMsS0FBSztTQUM3RCxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsTUFBTTtRQUNGLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUM7WUFDekIsTUFBTSxFQUFFLFlBQVk7WUFDcEIsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBRTtZQUNsQyxVQUFVLEVBQUUsU0FBUztTQUN4QixDQUFDLENBQUM7SUFDUCxDQUFDOzhHQXRCUSxvQkFBb0I7a0dBQXBCLG9CQUFvQix5aEJBUGxCO1lBQ1A7Z0JBQ0ksT0FBTyxFQUFFLGtCQUFrQjtnQkFDM0IsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQzthQUN0RDtTQUNKLGlEQ3JDTCxrdEJBa0JBLG1GRFVjLGdCQUFnQiwwRkFBRSxZQUFZOzsyRkFXL0Isb0JBQW9CO2tCQXBCaEMsU0FBUztpQ0FDTSxJQUFJLFdBUVAsQ0FBQyxnQkFBZ0IsRUFBRSxZQUFZLENBQUMsWUFDL0IsaUJBQWlCLG1CQUVWLHVCQUF1QixDQUFDLE1BQU0sYUFDcEM7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLGtCQUFrQjs0QkFDM0IsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUscUJBQXFCLENBQUM7eUJBQ3REO3FCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgZm9yd2FyZFJlZixcbiAgICBpbmplY3QsXG4gICAgaW5wdXQsXG4gICAgb3V0cHV0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ0xBU1NFUywgVVNFX0RFRkFVTFRfQ1NTIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbGliL3B1YmxpYy1hcGknO1xuaW1wb3J0IHsgQXR0cmlidXRlIH0gZnJvbSAna2V5Y2xvYWtpZnkvbG9naW4vS2NDb250ZXh0JztcbmltcG9ydCB7IENsYXNzS2V5IH0gZnJvbSAna2V5Y2xvYWtpZnkvbG9naW4vbGliL2tjQ2xzeCc7XG5pbXBvcnQgeyBDb21wb25lbnRSZWZlcmVuY2UgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9jbGFzc2VzL2NvbXBvbmVudC1yZWZlcmVuY2UuY2xhc3MnO1xuaW1wb3J0IHsgS2NDbGFzc0RpcmVjdGl2ZSB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL2RpcmVjdGl2ZXMva2MtY2xhc3MuZGlyZWN0aXZlJztcbmltcG9ydCB7IFRvTnVtYmVyUGlwZSB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL3BpcGVzL3RvLW51bWJlci5waXBlJztcbmltcG9ydCB7XG4gICAgRm9ybUFjdGlvbixcbiAgICBGb3JtRmllbGRFcnJvclxufSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9zZXJ2aWNlcy91c2VyLXByb2ZpbGUtZm9ybS5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzdHlsZXM6IFtcbiAgICAgICAgYFxuICAgICAgICAgICAgOmhvc3Qge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGNvbnRlbnRzO1xuICAgICAgICAgICAgfVxuICAgICAgICBgXG4gICAgXSxcbiAgICBpbXBvcnRzOiBbS2NDbGFzc0RpcmVjdGl2ZSwgVG9OdW1iZXJQaXBlXSxcbiAgICBzZWxlY3RvcjogJ2tjLXRleHRhcmVhLXRhZycsXG4gICAgdGVtcGxhdGVVcmw6ICd0ZXh0YXJlYS10YWcuY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBDb21wb25lbnRSZWZlcmVuY2UsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBUZXh0YXJlYVRhZ0NvbXBvbmVudClcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgVGV4dGFyZWFUYWdDb21wb25lbnQgZXh0ZW5kcyBDb21wb25lbnRSZWZlcmVuY2Uge1xuICAgIGF0dHJpYnV0ZSA9IGlucHV0PEF0dHJpYnV0ZT4oKTtcbiAgICB2YWx1ZSA9IGlucHV0PHN0cmluZz4oKTtcbiAgICBkaXNwbGF5YWJsZUVycm9ycyA9IGlucHV0PEZvcm1GaWVsZEVycm9yW10+KCk7XG4gICAgZGlzcGF0Y2hGb3JtQWN0aW9uID0gb3V0cHV0PEZvcm1BY3Rpb24+KCk7XG4gICAgb3ZlcnJpZGUgZG9Vc2VEZWZhdWx0Q3NzID0gaW5qZWN0PGJvb2xlYW4+KFVTRV9ERUZBVUxUX0NTUyk7XG4gICAgb3ZlcnJpZGUgY2xhc3NlcyA9IGluamVjdDxQYXJ0aWFsPFJlY29yZDxDbGFzc0tleSwgc3RyaW5nPj4+KENMQVNTRVMpO1xuXG4gICAgb25DaGFuZ2UoZXZlbnQ6IEV2ZW50KSB7XG4gICAgICAgIHRoaXMuZGlzcGF0Y2hGb3JtQWN0aW9uLmVtaXQoe1xuICAgICAgICAgICAgYWN0aW9uOiAndXBkYXRlJyxcbiAgICAgICAgICAgIG5hbWU6IHRoaXMuYXR0cmlidXRlKCk/Lm5hbWUgPz8gJycsXG4gICAgICAgICAgICB2YWx1ZU9yVmFsdWVzOiAoZXZlbnQudGFyZ2V0IGFzIEhUTUxUZXh0QXJlYUVsZW1lbnQpLnZhbHVlXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG9uQmx1cigpIHtcbiAgICAgICAgdGhpcy5kaXNwYXRjaEZvcm1BY3Rpb24uZW1pdCh7XG4gICAgICAgICAgICBhY3Rpb246ICdmb2N1cyBsb3N0JyxcbiAgICAgICAgICAgIG5hbWU6IHRoaXMuYXR0cmlidXRlKCk/Lm5hbWUgPz8gJycsXG4gICAgICAgICAgICBmaWVsZEluZGV4OiB1bmRlZmluZWRcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIiwiQGxldCBhdHRyID0gYXR0cmlidXRlKCk7XG5AaWYgKGF0dHIpIHtcbiAgPHRleHRhcmVhXG4gICAgW2lkXT1cImF0dHIubmFtZVwiXG4gICAgW25hbWVdPVwiYXR0ci5uYW1lXCJcbiAgICBba2NDbGFzc109XCIna2NJbnB1dENsYXNzJ1wiXG4gICAgW2F0dHIuYXJpYS1pbnZhbGlkXT1cIiEhZGlzcGxheWFibGVFcnJvcnMoKT8ubGVuZ3RoXCJcbiAgICBbZGlzYWJsZWRdPVwiYXR0ci5yZWFkT25seVwiXG4gICAgW2NvbHNdPVwiYXR0ci5hbm5vdGF0aW9ucy5pbnB1dFR5cGVDb2xzID09PSB1bmRlZmluZWQgPyB1bmRlZmluZWQgOiAoYXR0ci5hbm5vdGF0aW9ucy5pbnB1dFR5cGVDb2xzIHwgdG9OdW1iZXIpXCJcbiAgICBbcm93c109XCJhdHRyLmFubm90YXRpb25zLmlucHV0VHlwZVJvd3MgPT09IHVuZGVmaW5lZCA/IHVuZGVmaW5lZCA6IChhdHRyLmFubm90YXRpb25zLmlucHV0VHlwZVJvd3MgfCB0b051bWJlcilcIlxuICAgIFttYXhMZW5ndGhdPVwiXG4gICAgICBhdHRyLmFubm90YXRpb25zLmlucHV0VHlwZU1heGxlbmd0aCA9PT0gdW5kZWZpbmVkID8gdW5kZWZpbmVkIDogKGF0dHIuYW5ub3RhdGlvbnMuaW5wdXRUeXBlTWF4bGVuZ3RoIHwgdG9OdW1iZXIpXG4gICAgXCJcbiAgICBbdmFsdWVdPVwidmFsdWUoKVwiXG4gICAgKGNoYW5nZSk9XCJvbkNoYW5nZSgkZXZlbnQpXCJcbiAgICAoYmx1cik9XCJvbkJsdXIoKVwiXG4gID48L3RleHRhcmVhPlxufVxuIl19
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dGFyZWEtdGFnLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tleWNsb2FraWZ5LWFuZ3VsYXIvc3JjL2xvZ2luL2NvbXBvbmVudHMvdGV4dGFyZWEtdGFnL3RleHRhcmVhLXRhZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rZXljbG9ha2lmeS1hbmd1bGFyL3NyYy9sb2dpbi9jb21wb25lbnRzL3RleHRhcmVhLXRhZy90ZXh0YXJlYS10YWcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEcsT0FBTyxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUcvRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUNsRyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUM1RixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saURBQWlELENBQUM7O0FBdUIvRSxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsa0JBQWtCO0lBcEI1RDs7UUFxQkksY0FBUyxHQUFHLEtBQUssRUFBYSxDQUFDO1FBQy9CLFVBQUssR0FBRyxLQUFLLEVBQVUsQ0FBQztRQUN4QixzQkFBaUIsR0FBRyxLQUFLLEVBQW9CLENBQUM7UUFDOUMsdUJBQWtCLEdBQUcsTUFBTSxFQUFjLENBQUM7UUFDakMsb0JBQWUsR0FBRyxNQUFNLENBQVUsZUFBZSxDQUFDLENBQUM7UUFDbkQsWUFBTyxHQUFHLE1BQU0sQ0FBb0MsT0FBTyxDQUFDLENBQUM7S0FpQnpFO0lBZkcsUUFBUSxDQUFDLEtBQVk7UUFDakIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQztZQUN6QixNQUFNLEVBQUUsUUFBUTtZQUNoQixJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFFLElBQUksSUFBSSxFQUFFO1lBQ2xDLGFBQWEsRUFBRyxLQUFLLENBQUMsTUFBOEIsQ0FBQyxLQUFLO1NBQzdELENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxNQUFNO1FBQ0YsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQztZQUN6QixNQUFNLEVBQUUsWUFBWTtZQUNwQixJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFFLElBQUksSUFBSSxFQUFFO1lBQ2xDLFVBQVUsRUFBRSxTQUFTO1NBQ3hCLENBQUMsQ0FBQztJQUNQLENBQUM7OEdBdEJRLG9CQUFvQjtrR0FBcEIsb0JBQW9CLHloQkFQbEI7WUFDUDtnQkFDSSxPQUFPLEVBQUUsa0JBQWtCO2dCQUMzQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLG9CQUFvQixDQUFDO2FBQ3REO1NBQ0osaURDM0JMLG92QkFnQkEsbUZERWMsZ0JBQWdCLDBGQUFFLFlBQVk7OzJGQVcvQixvQkFBb0I7a0JBcEJoQyxTQUFTO2lDQUNNLElBQUksV0FRUCxDQUFDLGdCQUFnQixFQUFFLFlBQVksQ0FBQyxZQUMvQixpQkFBaUIsbUJBRVYsdUJBQXVCLENBQUMsTUFBTSxhQUNwQzt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsa0JBQWtCOzRCQUMzQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxxQkFBcUIsQ0FBQzt5QkFDdEQ7cUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBmb3J3YXJkUmVmLCBpbmplY3QsIGlucHV0LCBvdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENMQVNTRVMsIFVTRV9ERUZBVUxUX0NTUyB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xpYi9wdWJsaWMtYXBpJztcbmltcG9ydCB7IEF0dHJpYnV0ZSB9IGZyb20gJ2tleWNsb2FraWZ5L2xvZ2luL0tjQ29udGV4dCc7XG5pbXBvcnQgeyBDbGFzc0tleSB9IGZyb20gJ2tleWNsb2FraWZ5L2xvZ2luL2xpYi9rY0Nsc3gnO1xuaW1wb3J0IHsgQ29tcG9uZW50UmVmZXJlbmNlIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vY2xhc3Nlcy9jb21wb25lbnQtcmVmZXJlbmNlLmNsYXNzJztcbmltcG9ydCB7IEtjQ2xhc3NEaXJlY3RpdmUgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9kaXJlY3RpdmVzL2tjLWNsYXNzLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBUb051bWJlclBpcGUgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9waXBlcy90by1udW1iZXIucGlwZSc7XG5pbXBvcnQgeyBGb3JtQWN0aW9uLCBGb3JtRmllbGRFcnJvciB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL3NlcnZpY2VzL3VzZXItcHJvZmlsZS1mb3JtLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHN0eWxlczogW1xuICAgICAgICBgXG4gICAgICAgICAgICA6aG9zdCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogY29udGVudHM7XG4gICAgICAgICAgICB9XG4gICAgICAgIGBcbiAgICBdLFxuICAgIGltcG9ydHM6IFtLY0NsYXNzRGlyZWN0aXZlLCBUb051bWJlclBpcGVdLFxuICAgIHNlbGVjdG9yOiAna2MtdGV4dGFyZWEtdGFnJyxcbiAgICB0ZW1wbGF0ZVVybDogJ3RleHRhcmVhLXRhZy5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IENvbXBvbmVudFJlZmVyZW5jZSxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFRleHRhcmVhVGFnQ29tcG9uZW50KVxuICAgICAgICB9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBUZXh0YXJlYVRhZ0NvbXBvbmVudCBleHRlbmRzIENvbXBvbmVudFJlZmVyZW5jZSB7XG4gICAgYXR0cmlidXRlID0gaW5wdXQ8QXR0cmlidXRlPigpO1xuICAgIHZhbHVlID0gaW5wdXQ8c3RyaW5nPigpO1xuICAgIGRpc3BsYXlhYmxlRXJyb3JzID0gaW5wdXQ8Rm9ybUZpZWxkRXJyb3JbXT4oKTtcbiAgICBkaXNwYXRjaEZvcm1BY3Rpb24gPSBvdXRwdXQ8Rm9ybUFjdGlvbj4oKTtcbiAgICBvdmVycmlkZSBkb1VzZURlZmF1bHRDc3MgPSBpbmplY3Q8Ym9vbGVhbj4oVVNFX0RFRkFVTFRfQ1NTKTtcbiAgICBvdmVycmlkZSBjbGFzc2VzID0gaW5qZWN0PFBhcnRpYWw8UmVjb3JkPENsYXNzS2V5LCBzdHJpbmc+Pj4oQ0xBU1NFUyk7XG5cbiAgICBvbkNoYW5nZShldmVudDogRXZlbnQpIHtcbiAgICAgICAgdGhpcy5kaXNwYXRjaEZvcm1BY3Rpb24uZW1pdCh7XG4gICAgICAgICAgICBhY3Rpb246ICd1cGRhdGUnLFxuICAgICAgICAgICAgbmFtZTogdGhpcy5hdHRyaWJ1dGUoKT8ubmFtZSA/PyAnJyxcbiAgICAgICAgICAgIHZhbHVlT3JWYWx1ZXM6IChldmVudC50YXJnZXQgYXMgSFRNTFRleHRBcmVhRWxlbWVudCkudmFsdWVcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb25CbHVyKCkge1xuICAgICAgICB0aGlzLmRpc3BhdGNoRm9ybUFjdGlvbi5lbWl0KHtcbiAgICAgICAgICAgIGFjdGlvbjogJ2ZvY3VzIGxvc3QnLFxuICAgICAgICAgICAgbmFtZTogdGhpcy5hdHRyaWJ1dGUoKT8ubmFtZSA/PyAnJyxcbiAgICAgICAgICAgIGZpZWxkSW5kZXg6IHVuZGVmaW5lZFxuICAgICAgICB9KTtcbiAgICB9XG59XG4iLCJAbGV0IGF0dHIgPSBhdHRyaWJ1dGUoKTtcbkBpZiAoYXR0cikge1xuICAgIDx0ZXh0YXJlYVxuICAgICAgICBbaWRdPVwiYXR0ci5uYW1lXCJcbiAgICAgICAgW25hbWVdPVwiYXR0ci5uYW1lXCJcbiAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjSW5wdXRDbGFzcydcIlxuICAgICAgICBbYXR0ci5hcmlhLWludmFsaWRdPVwiISFkaXNwbGF5YWJsZUVycm9ycygpPy5sZW5ndGhcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiYXR0ci5yZWFkT25seVwiXG4gICAgICAgIFtjb2xzXT1cImF0dHIuYW5ub3RhdGlvbnMuaW5wdXRUeXBlQ29scyA9PT0gdW5kZWZpbmVkID8gdW5kZWZpbmVkIDogKGF0dHIuYW5ub3RhdGlvbnMuaW5wdXRUeXBlQ29scyB8IHRvTnVtYmVyKVwiXG4gICAgICAgIFtyb3dzXT1cImF0dHIuYW5ub3RhdGlvbnMuaW5wdXRUeXBlUm93cyA9PT0gdW5kZWZpbmVkID8gdW5kZWZpbmVkIDogKGF0dHIuYW5ub3RhdGlvbnMuaW5wdXRUeXBlUm93cyB8IHRvTnVtYmVyKVwiXG4gICAgICAgIFttYXhMZW5ndGhdPVwiYXR0ci5hbm5vdGF0aW9ucy5pbnB1dFR5cGVNYXhsZW5ndGggPT09IHVuZGVmaW5lZCA/IHVuZGVmaW5lZCA6IChhdHRyLmFubm90YXRpb25zLmlucHV0VHlwZU1heGxlbmd0aCB8IHRvTnVtYmVyKVwiXG4gICAgICAgIFt2YWx1ZV09XCJ2YWx1ZSgpXCJcbiAgICAgICAgKGNoYW5nZSk9XCJvbkNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgKGJsdXIpPVwib25CbHVyKClcIlxuICAgID48L3RleHRhcmVhPlxufVxuIl19
@@ -34,24 +34,17 @@ export class UserProfileFormFieldsComponent extends ComponentReference {
34
34
  provide: ComponentReference,
35
35
  useExisting: forwardRef(() => UserProfileFormFieldsComponent)
36
36
  }
37
- ], queries: [{ propertyName: "beforeField", first: true, predicate: ["beforField"], descendants: true }, { propertyName: "afterField", first: true, predicate: ["afterField"], descendants: true }], usesInheritance: true, ngImport: i0, template: "@let formFieldStates = formState().formFieldStates;\n\n@for (fieldState of formFieldStates; track fieldState.attribute) {\n <!-- [groupNameRef]=\"groupNameRef\"\n TODO: verify this logic\n -->\n <kc-group-label [attribute]=\"fieldState.attribute\"> </kc-group-label>\n\n @if (beforeField) {\n <ng-container\n [ngTemplateOutlet]=\"beforeField\"\n [ngTemplateOutletContext]=\"{\n attribute: fieldState.attribute,\n valueOrValues: fieldState.valueOrValues,\n displayableErrors: fieldState.displayableErrors,\n }\"\n >\n </ng-container>\n }\n\n <div\n [kcClass]=\"'kcFormGroupClass'\"\n [style.display]=\"fieldState.attribute.name === 'password-confirm' && !doMakeUserConfirmPassword ? 'none' : 'block'\"\n >\n <div [kcClass]=\"'kcLabelWrapperClass'\">\n <label\n [for]=\"fieldState.attribute.name\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ fieldState.attribute.displayName ?? '' | advancedMsgStr }}\n @if (fieldState.attribute.required) {\n *\n }\n </label>\n </div>\n\n <div [kcClass]=\"'kcInputWrapperClass'\">\n @if (fieldState.attribute.annotations.inputHelperTextBefore) {\n <div\n [kcClass]=\"'kcInputHelperTextBeforeClass'\"\n [id]=\"'form-help-text-before-' + fieldState.attribute.name\"\n aria-live=\"polite\"\n >\n {{ fieldState.attribute.annotations.inputHelperTextBefore | advancedMsgStr }}\n </div>\n }\n\n <kc-input-field-by-type\n [attribute]=\"fieldState.attribute\"\n [valueOrValues]=\"fieldState.valueOrValues\"\n [displayableErrors]=\"fieldState.displayableErrors\"\n (dispatchFormAction)=\"onDispatch($event)\"\n >\n </kc-input-field-by-type>\n\n <kc-field-errors\n [attribute]=\"fieldState.attribute\"\n [displayableErrors]=\"fieldState.displayableErrors\"\n >\n </kc-field-errors>\n @if (fieldState.attribute.annotations.inputHelperTextAfter) {\n <div\n [kcClass]=\"'kcInputHelperTextAfterClass'\"\n [id]=\"'form-help-text-after-' + fieldState.attribute.name\"\n aria-live=\"polite\"\n >\n {{ fieldState.attribute.annotations.inputHelperTextAfter | advancedMsgStr }}\n </div>\n }\n\n @if (afterField) {\n <ng-container\n [ngTemplateOutlet]=\"afterField\"\n [ngTemplateOutletContext]=\"{\n attribute: fieldState.attribute,\n valueOrValues: fieldState.valueOrValues,\n displayableErrors: fieldState.displayableErrors,\n }\"\n >\n </ng-container>\n }\n <!-- NOTE: Downloading of html5DataAnnotations scripts is done in the useUserProfileForm hook -->\n </div>\n </div>\n}\n", styles: [":host{display:contents}\n"], dependencies: [{ kind: "directive", type: KcClassDirective, selector: "[kcClass]", inputs: ["class", "ngClass", "kcClass"] }, { kind: "component", type: FieldErrorsComponent, selector: "kc-field-errors", inputs: ["attribute", "displayableErrors", "fieldIndex"] }, { kind: "component", type: InputFieldByTypeComponent, selector: "kc-input-field-by-type", inputs: ["attribute", "valueOrValues", "displayableErrors"], outputs: ["dispatchFormAction"] }, { kind: "component", type: GroupLabelComponent, selector: "kc-group-label", inputs: ["attribute", "groupName"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: AdvancedMsgStrPipe, name: "advancedMsgStr" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
37
+ ], queries: [{ propertyName: "beforeField", first: true, predicate: ["beforField"], descendants: true }, { propertyName: "afterField", first: true, predicate: ["afterField"], descendants: true }], usesInheritance: true, ngImport: i0, template: "@let formFieldStates = formState().formFieldStates;\n\n@for (fieldState of formFieldStates; track fieldState.attribute) {\n <!-- [groupNameRef]=\"groupNameRef\"\n TODO: verify this logic\n -->\n <kc-group-label [attribute]=\"fieldState.attribute\"> </kc-group-label>\n\n @if (beforeField) {\n <ng-container\n [ngTemplateOutlet]=\"beforeField\"\n [ngTemplateOutletContext]=\"{\n attribute: fieldState.attribute,\n valueOrValues: fieldState.valueOrValues,\n displayableErrors: fieldState.displayableErrors\n }\"\n >\n </ng-container>\n }\n\n <div\n [kcClass]=\"'kcFormGroupClass'\"\n [style.display]=\"fieldState.attribute.name === 'password-confirm' && !doMakeUserConfirmPassword ? 'none' : 'block'\"\n >\n <div [kcClass]=\"'kcLabelWrapperClass'\">\n <label\n [for]=\"fieldState.attribute.name\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ fieldState.attribute.displayName ?? '' | advancedMsgStr }}\n @if (fieldState.attribute.required) {\n *\n }\n </label>\n </div>\n\n <div [kcClass]=\"'kcInputWrapperClass'\">\n @if (fieldState.attribute.annotations.inputHelperTextBefore) {\n <div\n [kcClass]=\"'kcInputHelperTextBeforeClass'\"\n [id]=\"'form-help-text-before-' + fieldState.attribute.name\"\n aria-live=\"polite\"\n >\n {{ fieldState.attribute.annotations.inputHelperTextBefore | advancedMsgStr }}\n </div>\n }\n\n <kc-input-field-by-type\n [attribute]=\"fieldState.attribute\"\n [valueOrValues]=\"fieldState.valueOrValues\"\n [displayableErrors]=\"fieldState.displayableErrors\"\n (dispatchFormAction)=\"onDispatch($event)\"\n >\n </kc-input-field-by-type>\n\n <kc-field-errors\n [attribute]=\"fieldState.attribute\"\n [displayableErrors]=\"fieldState.displayableErrors\"\n >\n </kc-field-errors>\n @if (fieldState.attribute.annotations.inputHelperTextAfter) {\n <div\n [kcClass]=\"'kcInputHelperTextAfterClass'\"\n [id]=\"'form-help-text-after-' + fieldState.attribute.name\"\n aria-live=\"polite\"\n >\n {{ fieldState.attribute.annotations.inputHelperTextAfter | advancedMsgStr }}\n </div>\n }\n\n @if (afterField) {\n <ng-container\n [ngTemplateOutlet]=\"afterField\"\n [ngTemplateOutletContext]=\"{\n attribute: fieldState.attribute,\n valueOrValues: fieldState.valueOrValues,\n displayableErrors: fieldState.displayableErrors\n }\"\n >\n </ng-container>\n }\n <!-- NOTE: Downloading of html5DataAnnotations scripts is done in the useUserProfileForm hook -->\n </div>\n </div>\n}\n", styles: [":host{display:contents}\n"], dependencies: [{ kind: "directive", type: KcClassDirective, selector: "[kcClass]", inputs: ["class", "ngClass", "kcClass"] }, { kind: "component", type: FieldErrorsComponent, selector: "kc-field-errors", inputs: ["attribute", "displayableErrors", "fieldIndex"] }, { kind: "component", type: InputFieldByTypeComponent, selector: "kc-input-field-by-type", inputs: ["attribute", "valueOrValues", "displayableErrors"], outputs: ["dispatchFormAction"] }, { kind: "component", type: GroupLabelComponent, selector: "kc-group-label", inputs: ["attribute", "groupName"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: AdvancedMsgStrPipe, name: "advancedMsgStr" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
38
38
  }
39
39
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: UserProfileFormFieldsComponent, decorators: [{
40
40
  type: Component,
41
- args: [{ standalone: true, imports: [
42
- KcClassDirective,
43
- FieldErrorsComponent,
44
- InputFieldByTypeComponent,
45
- GroupLabelComponent,
46
- NgTemplateOutlet,
47
- AdvancedMsgStrPipe
48
- ], selector: 'kc-user-profile-form-fields', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
41
+ args: [{ standalone: true, imports: [KcClassDirective, FieldErrorsComponent, InputFieldByTypeComponent, GroupLabelComponent, NgTemplateOutlet, AdvancedMsgStrPipe], selector: 'kc-user-profile-form-fields', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
49
42
  UserProfileFormService,
50
43
  {
51
44
  provide: ComponentReference,
52
45
  useExisting: forwardRef(() => UserProfileFormFieldsComponent)
53
46
  }
54
- ], template: "@let formFieldStates = formState().formFieldStates;\n\n@for (fieldState of formFieldStates; track fieldState.attribute) {\n <!-- [groupNameRef]=\"groupNameRef\"\n TODO: verify this logic\n -->\n <kc-group-label [attribute]=\"fieldState.attribute\"> </kc-group-label>\n\n @if (beforeField) {\n <ng-container\n [ngTemplateOutlet]=\"beforeField\"\n [ngTemplateOutletContext]=\"{\n attribute: fieldState.attribute,\n valueOrValues: fieldState.valueOrValues,\n displayableErrors: fieldState.displayableErrors,\n }\"\n >\n </ng-container>\n }\n\n <div\n [kcClass]=\"'kcFormGroupClass'\"\n [style.display]=\"fieldState.attribute.name === 'password-confirm' && !doMakeUserConfirmPassword ? 'none' : 'block'\"\n >\n <div [kcClass]=\"'kcLabelWrapperClass'\">\n <label\n [for]=\"fieldState.attribute.name\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ fieldState.attribute.displayName ?? '' | advancedMsgStr }}\n @if (fieldState.attribute.required) {\n *\n }\n </label>\n </div>\n\n <div [kcClass]=\"'kcInputWrapperClass'\">\n @if (fieldState.attribute.annotations.inputHelperTextBefore) {\n <div\n [kcClass]=\"'kcInputHelperTextBeforeClass'\"\n [id]=\"'form-help-text-before-' + fieldState.attribute.name\"\n aria-live=\"polite\"\n >\n {{ fieldState.attribute.annotations.inputHelperTextBefore | advancedMsgStr }}\n </div>\n }\n\n <kc-input-field-by-type\n [attribute]=\"fieldState.attribute\"\n [valueOrValues]=\"fieldState.valueOrValues\"\n [displayableErrors]=\"fieldState.displayableErrors\"\n (dispatchFormAction)=\"onDispatch($event)\"\n >\n </kc-input-field-by-type>\n\n <kc-field-errors\n [attribute]=\"fieldState.attribute\"\n [displayableErrors]=\"fieldState.displayableErrors\"\n >\n </kc-field-errors>\n @if (fieldState.attribute.annotations.inputHelperTextAfter) {\n <div\n [kcClass]=\"'kcInputHelperTextAfterClass'\"\n [id]=\"'form-help-text-after-' + fieldState.attribute.name\"\n aria-live=\"polite\"\n >\n {{ fieldState.attribute.annotations.inputHelperTextAfter | advancedMsgStr }}\n </div>\n }\n\n @if (afterField) {\n <ng-container\n [ngTemplateOutlet]=\"afterField\"\n [ngTemplateOutletContext]=\"{\n attribute: fieldState.attribute,\n valueOrValues: fieldState.valueOrValues,\n displayableErrors: fieldState.displayableErrors,\n }\"\n >\n </ng-container>\n }\n <!-- NOTE: Downloading of html5DataAnnotations scripts is done in the useUserProfileForm hook -->\n </div>\n </div>\n}\n", styles: [":host{display:contents}\n"] }]
47
+ ], template: "@let formFieldStates = formState().formFieldStates;\n\n@for (fieldState of formFieldStates; track fieldState.attribute) {\n <!-- [groupNameRef]=\"groupNameRef\"\n TODO: verify this logic\n -->\n <kc-group-label [attribute]=\"fieldState.attribute\"> </kc-group-label>\n\n @if (beforeField) {\n <ng-container\n [ngTemplateOutlet]=\"beforeField\"\n [ngTemplateOutletContext]=\"{\n attribute: fieldState.attribute,\n valueOrValues: fieldState.valueOrValues,\n displayableErrors: fieldState.displayableErrors\n }\"\n >\n </ng-container>\n }\n\n <div\n [kcClass]=\"'kcFormGroupClass'\"\n [style.display]=\"fieldState.attribute.name === 'password-confirm' && !doMakeUserConfirmPassword ? 'none' : 'block'\"\n >\n <div [kcClass]=\"'kcLabelWrapperClass'\">\n <label\n [for]=\"fieldState.attribute.name\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ fieldState.attribute.displayName ?? '' | advancedMsgStr }}\n @if (fieldState.attribute.required) {\n *\n }\n </label>\n </div>\n\n <div [kcClass]=\"'kcInputWrapperClass'\">\n @if (fieldState.attribute.annotations.inputHelperTextBefore) {\n <div\n [kcClass]=\"'kcInputHelperTextBeforeClass'\"\n [id]=\"'form-help-text-before-' + fieldState.attribute.name\"\n aria-live=\"polite\"\n >\n {{ fieldState.attribute.annotations.inputHelperTextBefore | advancedMsgStr }}\n </div>\n }\n\n <kc-input-field-by-type\n [attribute]=\"fieldState.attribute\"\n [valueOrValues]=\"fieldState.valueOrValues\"\n [displayableErrors]=\"fieldState.displayableErrors\"\n (dispatchFormAction)=\"onDispatch($event)\"\n >\n </kc-input-field-by-type>\n\n <kc-field-errors\n [attribute]=\"fieldState.attribute\"\n [displayableErrors]=\"fieldState.displayableErrors\"\n >\n </kc-field-errors>\n @if (fieldState.attribute.annotations.inputHelperTextAfter) {\n <div\n [kcClass]=\"'kcInputHelperTextAfterClass'\"\n [id]=\"'form-help-text-after-' + fieldState.attribute.name\"\n aria-live=\"polite\"\n >\n {{ fieldState.attribute.annotations.inputHelperTextAfter | advancedMsgStr }}\n </div>\n }\n\n @if (afterField) {\n <ng-container\n [ngTemplateOutlet]=\"afterField\"\n [ngTemplateOutletContext]=\"{\n attribute: fieldState.attribute,\n valueOrValues: fieldState.valueOrValues,\n displayableErrors: fieldState.displayableErrors\n }\"\n >\n </ng-container>\n }\n <!-- NOTE: Downloading of html5DataAnnotations scripts is done in the useUserProfileForm hook -->\n </div>\n </div>\n}\n", styles: [":host{display:contents}\n"] }]
55
48
  }], ctorParameters: () => [], propDecorators: { beforeField: [{
56
49
  type: ContentChild,
57
50
  args: ['beforField']
@@ -59,4 +52,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImpor
59
52
  type: ContentChild,
60
53
  args: ['afterField']
61
54
  }] } });
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1wcm9maWxlLWZvcm0tZmllbGRzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tleWNsb2FraWZ5LWFuZ3VsYXIvc3JjL2xvZ2luL2NvbXBvbmVudHMvdXNlci1wcm9maWxlLWZvcm0tZmllbGRzL3VzZXItcHJvZmlsZS1mb3JtLWZpZWxkcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rZXljbG9ha2lmeS1hbmd1bGFyL3NyYy9sb2dpbi9jb21wb25lbnRzL3VzZXItcHJvZmlsZS1mb3JtLWZpZWxkcy91c2VyLXByb2ZpbGUtZm9ybS1maWVsZHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixVQUFVLEVBQ1YsTUFBTSxFQUNOLE1BQU0sRUFFVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0gsNkJBQTZCLEVBQzdCLFVBQVUsRUFDVixPQUFPLEVBQ1AsZUFBZSxFQUNsQixNQUFNLHFDQUFxQyxDQUFDO0FBRzdDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQzVGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQzVGLE9BQU8sRUFFSCxzQkFBc0IsRUFDekIsTUFBTSwrREFBK0QsQ0FBQztBQUN2RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyRUFBMkUsQ0FBQztBQUNqSCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5RUFBeUUsQ0FBQztBQUM5RyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx5RkFBeUYsQ0FBQzs7QUE4QnBJLE1BQU0sT0FBTyw4QkFBK0IsU0FBUSxrQkFBa0I7SUFjbEU7UUFDSSxLQUFLLEVBQUUsQ0FBQztRQWRaLGNBQVMsR0FBRyxNQUFNLENBQVksVUFBVSxDQUFDLENBQUM7UUFDMUMsMkJBQXNCLEdBQUcsTUFBTSxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFDeEQsOEJBQXlCLEdBQUcsTUFBTSxDQUFDLDZCQUE2QixDQUFDLENBQUM7UUFDekQsb0JBQWUsR0FBRyxNQUFNLENBQVUsZUFBZSxDQUFDLENBQUM7UUFDbkQsWUFBTyxHQUFHLE1BQU0sQ0FBb0MsT0FBTyxDQUFDLENBQUM7UUFFdEUsd0JBQW1CLEdBQUcsTUFBTSxFQUFXLENBQUM7UUFFeEMsY0FBUyxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxTQUFTLENBQUM7UUFPOUMsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNSLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLGlCQUFpQixDQUFDO1lBQzdELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNyRCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxVQUFVLENBQUMsVUFBc0I7UUFDN0IsSUFBSSxDQUFDLHNCQUFzQixDQUFDLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQy9ELENBQUM7OEdBeEJRLDhCQUE4QjtrR0FBOUIsOEJBQThCLG1JQVI1QjtZQUNQLHNCQUFzQjtZQUN0QjtnQkFDSSxPQUFPLEVBQUUsa0JBQWtCO2dCQUMzQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLDhCQUE4QixDQUFDO2FBQ2hFO1NBQ0osbVBDeERMLHV3RkFxRkEsbUZEN0NRLGdCQUFnQiwrRkFDaEIsb0JBQW9CLHNIQUNwQix5QkFBeUIsaUtBQ3pCLG1CQUFtQiwrRkFDbkIsZ0JBQWdCLCtJQUNoQixrQkFBa0I7OzJGQWFiLDhCQUE4QjtrQkE1QjFDLFNBQVM7aUNBQ00sSUFBSSxXQVFQO3dCQUNMLGdCQUFnQjt3QkFDaEIsb0JBQW9CO3dCQUNwQix5QkFBeUI7d0JBQ3pCLG1CQUFtQjt3QkFDbkIsZ0JBQWdCO3dCQUNoQixrQkFBa0I7cUJBQ3JCLFlBQ1MsNkJBQTZCLG1CQUV0Qix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDO3dCQUNQLHNCQUFzQjt3QkFDdEI7NEJBQ0ksT0FBTyxFQUFFLGtCQUFrQjs0QkFDM0IsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsK0JBQStCLENBQUM7eUJBQ2hFO3FCQUNKO3dEQWEyQixXQUFXO3NCQUF0QyxZQUFZO3VCQUFDLFlBQVk7Z0JBQ0UsVUFBVTtzQkFBckMsWUFBWTt1QkFBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgZWZmZWN0LFxuICAgIGZvcndhcmRSZWYsXG4gICAgaW5qZWN0LFxuICAgIG91dHB1dCxcbiAgICBUZW1wbGF0ZVJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgRE9fTUFLRV9VU0VSX0NPTkZJUk1fUEFTU1dPUkQsXG4gICAgS0NfQ09OVEVYVCxcbiAgICBDTEFTU0VTLFxuICAgIFVTRV9ERUZBVUxUX0NTU1xufSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9saWIvcHVibGljLWFwaSc7XG5pbXBvcnQgeyBDbGFzc0tleSB9IGZyb20gJ2tleWNsb2FraWZ5L2xvZ2luL2xpYi9rY0Nsc3gnO1xuaW1wb3J0IHsgS2NDb250ZXh0IH0gZnJvbSAna2V5Y2xvYWtpZnkvbG9naW4vS2NDb250ZXh0JztcbmltcG9ydCB7IENvbXBvbmVudFJlZmVyZW5jZSB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL2NsYXNzZXMvY29tcG9uZW50LXJlZmVyZW5jZS5jbGFzcyc7XG5pbXBvcnQgeyBLY0NsYXNzRGlyZWN0aXZlIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vZGlyZWN0aXZlcy9rYy1jbGFzcy5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQWR2YW5jZWRNc2dTdHJQaXBlIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vcGlwZXMvYWR2YW5jZWQtbXNnLXN0ci5waXBlJztcbmltcG9ydCB7XG4gICAgRm9ybUFjdGlvbixcbiAgICBVc2VyUHJvZmlsZUZvcm1TZXJ2aWNlXG59IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL3NlcnZpY2VzL3VzZXItcHJvZmlsZS1mb3JtLnNlcnZpY2UnO1xuaW1wb3J0IHsgRmllbGRFcnJvcnNDb21wb25lbnQgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9jb21wb25lbnRzL2ZpZWxkLWVycm9ycy9maWVsZC1lcnJvcnMuY29tcG9uZW50JztcbmltcG9ydCB7IEdyb3VwTGFiZWxDb21wb25lbnQgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9jb21wb25lbnRzL2dyb3VwLWxhYmVsL2dyb3VwLWxhYmVsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJbnB1dEZpZWxkQnlUeXBlQ29tcG9uZW50IH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vY29tcG9uZW50cy9pbnB1dC1maWVsZC1ieS10eXBlL2lucHV0LWZpZWxkLWJ5LXR5cGUuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzdHlsZXM6IFtcbiAgICAgICAgYFxuICAgICAgICAgICAgOmhvc3Qge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGNvbnRlbnRzO1xuICAgICAgICAgICAgfVxuICAgICAgICBgXG4gICAgXSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIEtjQ2xhc3NEaXJlY3RpdmUsXG4gICAgICAgIEZpZWxkRXJyb3JzQ29tcG9uZW50LFxuICAgICAgICBJbnB1dEZpZWxkQnlUeXBlQ29tcG9uZW50LFxuICAgICAgICBHcm91cExhYmVsQ29tcG9uZW50LFxuICAgICAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgICAgICBBZHZhbmNlZE1zZ1N0clBpcGVcbiAgICBdLFxuICAgIHNlbGVjdG9yOiAna2MtdXNlci1wcm9maWxlLWZvcm0tZmllbGRzJyxcbiAgICB0ZW1wbGF0ZVVybDogJ3VzZXItcHJvZmlsZS1mb3JtLWZpZWxkcy5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIFVzZXJQcm9maWxlRm9ybVNlcnZpY2UsXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IENvbXBvbmVudFJlZmVyZW5jZSxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFVzZXJQcm9maWxlRm9ybUZpZWxkc0NvbXBvbmVudClcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgVXNlclByb2ZpbGVGb3JtRmllbGRzQ29tcG9uZW50IGV4dGVuZHMgQ29tcG9uZW50UmVmZXJlbmNlIHtcbiAgICBrY0NvbnRleHQgPSBpbmplY3Q8S2NDb250ZXh0PihLQ19DT05URVhUKTtcbiAgICB1c2VyUHJvZmlsZUZvcm1TZXJ2aWNlID0gaW5qZWN0KFVzZXJQcm9maWxlRm9ybVNlcnZpY2UpO1xuICAgIGRvTWFrZVVzZXJDb25maXJtUGFzc3dvcmQgPSBpbmplY3QoRE9fTUFLRV9VU0VSX0NPTkZJUk1fUEFTU1dPUkQpO1xuICAgIG92ZXJyaWRlIGRvVXNlRGVmYXVsdENzcyA9IGluamVjdDxib29sZWFuPihVU0VfREVGQVVMVF9DU1MpO1xuICAgIG92ZXJyaWRlIGNsYXNzZXMgPSBpbmplY3Q8UGFydGlhbDxSZWNvcmQ8Q2xhc3NLZXksIHN0cmluZz4+PihDTEFTU0VTKTtcblxuICAgIG9uSXNGb3JtU3VibWl0dGFibGUgPSBvdXRwdXQ8Ym9vbGVhbj4oKTtcblxuICAgIGZvcm1TdGF0ZSA9IHRoaXMudXNlclByb2ZpbGVGb3JtU2VydmljZS5mb3JtU3RhdGU7XG5cbiAgICBAQ29udGVudENoaWxkKCdiZWZvckZpZWxkJykgYmVmb3JlRmllbGQ6IFRlbXBsYXRlUmVmPHVua25vd24+IHwgdW5kZWZpbmVkO1xuICAgIEBDb250ZW50Q2hpbGQoJ2FmdGVyRmllbGQnKSBhZnRlckZpZWxkOiBUZW1wbGF0ZVJlZjx1bmtub3duPiB8IHVuZGVmaW5lZDtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgaXNGb3JtU3VibWl0dGFibGUgPSB0aGlzLmZvcm1TdGF0ZSgpLmlzRm9ybVN1Ym1pdHRhYmxlO1xuICAgICAgICAgICAgdGhpcy5vbklzRm9ybVN1Ym1pdHRhYmxlLmVtaXQoaXNGb3JtU3VibWl0dGFibGUpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBvbkRpc3BhdGNoKGZvcm1BY3Rpb246IEZvcm1BY3Rpb24pIHtcbiAgICAgICAgdGhpcy51c2VyUHJvZmlsZUZvcm1TZXJ2aWNlLmRpc3BhdGNoRm9ybUFjdGlvbihmb3JtQWN0aW9uKTtcbiAgICB9XG59XG4iLCJAbGV0IGZvcm1GaWVsZFN0YXRlcyA9IGZvcm1TdGF0ZSgpLmZvcm1GaWVsZFN0YXRlcztcblxuQGZvciAoZmllbGRTdGF0ZSBvZiBmb3JtRmllbGRTdGF0ZXM7IHRyYWNrIGZpZWxkU3RhdGUuYXR0cmlidXRlKSB7XG4gIDwhLS0gW2dyb3VwTmFtZVJlZl09XCJncm91cE5hbWVSZWZcIlxuICBUT0RPOiB2ZXJpZnkgdGhpcyBsb2dpY1xuICAtLT5cbiAgPGtjLWdyb3VwLWxhYmVsIFthdHRyaWJ1dGVdPVwiZmllbGRTdGF0ZS5hdHRyaWJ1dGVcIj4gPC9rYy1ncm91cC1sYWJlbD5cblxuICBAaWYgKGJlZm9yZUZpZWxkKSB7XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiYmVmb3JlRmllbGRcIlxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntcbiAgICAgICAgYXR0cmlidXRlOiBmaWVsZFN0YXRlLmF0dHJpYnV0ZSxcbiAgICAgICAgdmFsdWVPclZhbHVlczogZmllbGRTdGF0ZS52YWx1ZU9yVmFsdWVzLFxuICAgICAgICBkaXNwbGF5YWJsZUVycm9yczogZmllbGRTdGF0ZS5kaXNwbGF5YWJsZUVycm9ycyxcbiAgICAgIH1cIlxuICAgID5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgfVxuXG4gIDxkaXZcbiAgICBba2NDbGFzc109XCIna2NGb3JtR3JvdXBDbGFzcydcIlxuICAgIFtzdHlsZS5kaXNwbGF5XT1cImZpZWxkU3RhdGUuYXR0cmlidXRlLm5hbWUgPT09ICdwYXNzd29yZC1jb25maXJtJyAmJiAhZG9NYWtlVXNlckNvbmZpcm1QYXNzd29yZCA/ICdub25lJyA6ICdibG9jaydcIlxuICA+XG4gICAgPGRpdiBba2NDbGFzc109XCIna2NMYWJlbFdyYXBwZXJDbGFzcydcIj5cbiAgICAgIDxsYWJlbFxuICAgICAgICBbZm9yXT1cImZpZWxkU3RhdGUuYXR0cmlidXRlLm5hbWVcIlxuICAgICAgICBba2NDbGFzc109XCIna2NMYWJlbENsYXNzJ1wiXG4gICAgICA+XG4gICAgICAgIHt7IGZpZWxkU3RhdGUuYXR0cmlidXRlLmRpc3BsYXlOYW1lID8/ICcnIHwgYWR2YW5jZWRNc2dTdHIgfX1cbiAgICAgICAgQGlmIChmaWVsZFN0YXRlLmF0dHJpYnV0ZS5yZXF1aXJlZCkge1xuICAgICAgICAgICpcbiAgICAgICAgfVxuICAgICAgPC9sYWJlbD5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgW2tjQ2xhc3NdPVwiJ2tjSW5wdXRXcmFwcGVyQ2xhc3MnXCI+XG4gICAgICBAaWYgKGZpZWxkU3RhdGUuYXR0cmlidXRlLmFubm90YXRpb25zLmlucHV0SGVscGVyVGV4dEJlZm9yZSkge1xuICAgICAgICA8ZGl2XG4gICAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjSW5wdXRIZWxwZXJUZXh0QmVmb3JlQ2xhc3MnXCJcbiAgICAgICAgICBbaWRdPVwiJ2Zvcm0taGVscC10ZXh0LWJlZm9yZS0nICsgZmllbGRTdGF0ZS5hdHRyaWJ1dGUubmFtZVwiXG4gICAgICAgICAgYXJpYS1saXZlPVwicG9saXRlXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IGZpZWxkU3RhdGUuYXR0cmlidXRlLmFubm90YXRpb25zLmlucHV0SGVscGVyVGV4dEJlZm9yZSB8IGFkdmFuY2VkTXNnU3RyIH19XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuXG4gICAgICA8a2MtaW5wdXQtZmllbGQtYnktdHlwZVxuICAgICAgICBbYXR0cmlidXRlXT1cImZpZWxkU3RhdGUuYXR0cmlidXRlXCJcbiAgICAgICAgW3ZhbHVlT3JWYWx1ZXNdPVwiZmllbGRTdGF0ZS52YWx1ZU9yVmFsdWVzXCJcbiAgICAgICAgW2Rpc3BsYXlhYmxlRXJyb3JzXT1cImZpZWxkU3RhdGUuZGlzcGxheWFibGVFcnJvcnNcIlxuICAgICAgICAoZGlzcGF0Y2hGb3JtQWN0aW9uKT1cIm9uRGlzcGF0Y2goJGV2ZW50KVwiXG4gICAgICA+XG4gICAgICA8L2tjLWlucHV0LWZpZWxkLWJ5LXR5cGU+XG5cbiAgICAgIDxrYy1maWVsZC1lcnJvcnNcbiAgICAgICAgW2F0dHJpYnV0ZV09XCJmaWVsZFN0YXRlLmF0dHJpYnV0ZVwiXG4gICAgICAgIFtkaXNwbGF5YWJsZUVycm9yc109XCJmaWVsZFN0YXRlLmRpc3BsYXlhYmxlRXJyb3JzXCJcbiAgICAgID5cbiAgICAgIDwva2MtZmllbGQtZXJyb3JzPlxuICAgICAgQGlmIChmaWVsZFN0YXRlLmF0dHJpYnV0ZS5hbm5vdGF0aW9ucy5pbnB1dEhlbHBlclRleHRBZnRlcikge1xuICAgICAgICA8ZGl2XG4gICAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjSW5wdXRIZWxwZXJUZXh0QWZ0ZXJDbGFzcydcIlxuICAgICAgICAgIFtpZF09XCInZm9ybS1oZWxwLXRleHQtYWZ0ZXItJyArIGZpZWxkU3RhdGUuYXR0cmlidXRlLm5hbWVcIlxuICAgICAgICAgIGFyaWEtbGl2ZT1cInBvbGl0ZVwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyBmaWVsZFN0YXRlLmF0dHJpYnV0ZS5hbm5vdGF0aW9ucy5pbnB1dEhlbHBlclRleHRBZnRlciB8IGFkdmFuY2VkTXNnU3RyIH19XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuXG4gICAgICBAaWYgKGFmdGVyRmllbGQpIHtcbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImFmdGVyRmllbGRcIlxuICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7XG4gICAgICAgICAgICBhdHRyaWJ1dGU6IGZpZWxkU3RhdGUuYXR0cmlidXRlLFxuICAgICAgICAgICAgdmFsdWVPclZhbHVlczogZmllbGRTdGF0ZS52YWx1ZU9yVmFsdWVzLFxuICAgICAgICAgICAgZGlzcGxheWFibGVFcnJvcnM6IGZpZWxkU3RhdGUuZGlzcGxheWFibGVFcnJvcnMsXG4gICAgICAgICAgfVwiXG4gICAgICAgID5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICB9XG4gICAgICA8IS0tIE5PVEU6IERvd25sb2FkaW5nIG9mIGh0bWw1RGF0YUFubm90YXRpb25zIHNjcmlwdHMgaXMgZG9uZSBpbiB0aGUgdXNlVXNlclByb2ZpbGVGb3JtIGhvb2sgLS0+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxufVxuIl19
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1wcm9maWxlLWZvcm0tZmllbGRzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tleWNsb2FraWZ5LWFuZ3VsYXIvc3JjL2xvZ2luL2NvbXBvbmVudHMvdXNlci1wcm9maWxlLWZvcm0tZmllbGRzL3VzZXItcHJvZmlsZS1mb3JtLWZpZWxkcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rZXljbG9ha2lmeS1hbmd1bGFyL3NyYy9sb2dpbi9jb21wb25lbnRzL3VzZXItcHJvZmlsZS1mb3JtLWZpZWxkcy91c2VyLXByb2ZpbGUtZm9ybS1maWVsZHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBQ2xJLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRzFILE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQzVGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQzVGLE9BQU8sRUFBYyxzQkFBc0IsRUFBRSxNQUFNLCtEQUErRCxDQUFDO0FBQ25ILE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJFQUEyRSxDQUFDO0FBQ2pILE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlFQUF5RSxDQUFDO0FBQzlHLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHlGQUF5RixDQUFDOztBQXVCcEksTUFBTSxPQUFPLDhCQUErQixTQUFRLGtCQUFrQjtJQWNsRTtRQUNJLEtBQUssRUFBRSxDQUFDO1FBZFosY0FBUyxHQUFHLE1BQU0sQ0FBWSxVQUFVLENBQUMsQ0FBQztRQUMxQywyQkFBc0IsR0FBRyxNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUN4RCw4QkFBeUIsR0FBRyxNQUFNLENBQUMsNkJBQTZCLENBQUMsQ0FBQztRQUN6RCxvQkFBZSxHQUFHLE1BQU0sQ0FBVSxlQUFlLENBQUMsQ0FBQztRQUNuRCxZQUFPLEdBQUcsTUFBTSxDQUFvQyxPQUFPLENBQUMsQ0FBQztRQUV0RSx3QkFBbUIsR0FBRyxNQUFNLEVBQVcsQ0FBQztRQUV4QyxjQUFTLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFNBQVMsQ0FBQztRQU85QyxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1IsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsaUJBQWlCLENBQUM7WUFDN0QsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3JELENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFVBQVUsQ0FBQyxVQUFzQjtRQUM3QixJQUFJLENBQUMsc0JBQXNCLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDL0QsQ0FBQzs4R0F4QlEsOEJBQThCO2tHQUE5Qiw4QkFBOEIsbUlBUjVCO1lBQ1Asc0JBQXNCO1lBQ3RCO2dCQUNJLE9BQU8sRUFBRSxrQkFBa0I7Z0JBQzNCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsOEJBQThCLENBQUM7YUFDaEU7U0FDSixtUENoQ0wsNnZHQXFGQSxtRkQvRGMsZ0JBQWdCLCtGQUFFLG9CQUFvQixzSEFBRSx5QkFBeUIsaUtBQUUsbUJBQW1CLCtGQUFFLGdCQUFnQiwrSUFBRSxrQkFBa0I7OzJGQVk3SCw4QkFBOEI7a0JBckIxQyxTQUFTO2lDQUNNLElBQUksV0FRUCxDQUFDLGdCQUFnQixFQUFFLG9CQUFvQixFQUFFLHlCQUF5QixFQUFFLG1CQUFtQixFQUFFLGdCQUFnQixFQUFFLGtCQUFrQixDQUFDLFlBQzdILDZCQUE2QixtQkFFdEIsdUJBQXVCLENBQUMsTUFBTSxhQUNwQzt3QkFDUCxzQkFBc0I7d0JBQ3RCOzRCQUNJLE9BQU8sRUFBRSxrQkFBa0I7NEJBQzNCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLCtCQUErQixDQUFDO3lCQUNoRTtxQkFDSjt3REFhMkIsV0FBVztzQkFBdEMsWUFBWTt1QkFBQyxZQUFZO2dCQUNFLFVBQVU7c0JBQXJDLFlBQVk7dUJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgQ29udGVudENoaWxkLCBlZmZlY3QsIGZvcndhcmRSZWYsIGluamVjdCwgb3V0cHV0LCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRE9fTUFLRV9VU0VSX0NPTkZJUk1fUEFTU1dPUkQsIEtDX0NPTlRFWFQsIENMQVNTRVMsIFVTRV9ERUZBVUxUX0NTUyB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xpYi9wdWJsaWMtYXBpJztcbmltcG9ydCB7IENsYXNzS2V5IH0gZnJvbSAna2V5Y2xvYWtpZnkvbG9naW4vbGliL2tjQ2xzeCc7XG5pbXBvcnQgeyBLY0NvbnRleHQgfSBmcm9tICdrZXljbG9ha2lmeS9sb2dpbi9LY0NvbnRleHQnO1xuaW1wb3J0IHsgQ29tcG9uZW50UmVmZXJlbmNlIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vY2xhc3Nlcy9jb21wb25lbnQtcmVmZXJlbmNlLmNsYXNzJztcbmltcG9ydCB7IEtjQ2xhc3NEaXJlY3RpdmUgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9kaXJlY3RpdmVzL2tjLWNsYXNzLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBBZHZhbmNlZE1zZ1N0clBpcGUgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9waXBlcy9hZHZhbmNlZC1tc2ctc3RyLnBpcGUnO1xuaW1wb3J0IHsgRm9ybUFjdGlvbiwgVXNlclByb2ZpbGVGb3JtU2VydmljZSB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL3NlcnZpY2VzL3VzZXItcHJvZmlsZS1mb3JtLnNlcnZpY2UnO1xuaW1wb3J0IHsgRmllbGRFcnJvcnNDb21wb25lbnQgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9jb21wb25lbnRzL2ZpZWxkLWVycm9ycy9maWVsZC1lcnJvcnMuY29tcG9uZW50JztcbmltcG9ydCB7IEdyb3VwTGFiZWxDb21wb25lbnQgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9jb21wb25lbnRzL2dyb3VwLWxhYmVsL2dyb3VwLWxhYmVsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJbnB1dEZpZWxkQnlUeXBlQ29tcG9uZW50IH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vY29tcG9uZW50cy9pbnB1dC1maWVsZC1ieS10eXBlL2lucHV0LWZpZWxkLWJ5LXR5cGUuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzdHlsZXM6IFtcbiAgICAgICAgYFxuICAgICAgICAgICAgOmhvc3Qge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGNvbnRlbnRzO1xuICAgICAgICAgICAgfVxuICAgICAgICBgXG4gICAgXSxcbiAgICBpbXBvcnRzOiBbS2NDbGFzc0RpcmVjdGl2ZSwgRmllbGRFcnJvcnNDb21wb25lbnQsIElucHV0RmllbGRCeVR5cGVDb21wb25lbnQsIEdyb3VwTGFiZWxDb21wb25lbnQsIE5nVGVtcGxhdGVPdXRsZXQsIEFkdmFuY2VkTXNnU3RyUGlwZV0sXG4gICAgc2VsZWN0b3I6ICdrYy11c2VyLXByb2ZpbGUtZm9ybS1maWVsZHMnLFxuICAgIHRlbXBsYXRlVXJsOiAndXNlci1wcm9maWxlLWZvcm0tZmllbGRzLmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgVXNlclByb2ZpbGVGb3JtU2VydmljZSxcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogQ29tcG9uZW50UmVmZXJlbmNlLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVXNlclByb2ZpbGVGb3JtRmllbGRzQ29tcG9uZW50KVxuICAgICAgICB9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBVc2VyUHJvZmlsZUZvcm1GaWVsZHNDb21wb25lbnQgZXh0ZW5kcyBDb21wb25lbnRSZWZlcmVuY2Uge1xuICAgIGtjQ29udGV4dCA9IGluamVjdDxLY0NvbnRleHQ+KEtDX0NPTlRFWFQpO1xuICAgIHVzZXJQcm9maWxlRm9ybVNlcnZpY2UgPSBpbmplY3QoVXNlclByb2ZpbGVGb3JtU2VydmljZSk7XG4gICAgZG9NYWtlVXNlckNvbmZpcm1QYXNzd29yZCA9IGluamVjdChET19NQUtFX1VTRVJfQ09ORklSTV9QQVNTV09SRCk7XG4gICAgb3ZlcnJpZGUgZG9Vc2VEZWZhdWx0Q3NzID0gaW5qZWN0PGJvb2xlYW4+KFVTRV9ERUZBVUxUX0NTUyk7XG4gICAgb3ZlcnJpZGUgY2xhc3NlcyA9IGluamVjdDxQYXJ0aWFsPFJlY29yZDxDbGFzc0tleSwgc3RyaW5nPj4+KENMQVNTRVMpO1xuXG4gICAgb25Jc0Zvcm1TdWJtaXR0YWJsZSA9IG91dHB1dDxib29sZWFuPigpO1xuXG4gICAgZm9ybVN0YXRlID0gdGhpcy51c2VyUHJvZmlsZUZvcm1TZXJ2aWNlLmZvcm1TdGF0ZTtcblxuICAgIEBDb250ZW50Q2hpbGQoJ2JlZm9yRmllbGQnKSBiZWZvcmVGaWVsZDogVGVtcGxhdGVSZWY8dW5rbm93bj4gfCB1bmRlZmluZWQ7XG4gICAgQENvbnRlbnRDaGlsZCgnYWZ0ZXJGaWVsZCcpIGFmdGVyRmllbGQ6IFRlbXBsYXRlUmVmPHVua25vd24+IHwgdW5kZWZpbmVkO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBpc0Zvcm1TdWJtaXR0YWJsZSA9IHRoaXMuZm9ybVN0YXRlKCkuaXNGb3JtU3VibWl0dGFibGU7XG4gICAgICAgICAgICB0aGlzLm9uSXNGb3JtU3VibWl0dGFibGUuZW1pdChpc0Zvcm1TdWJtaXR0YWJsZSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG9uRGlzcGF0Y2goZm9ybUFjdGlvbjogRm9ybUFjdGlvbikge1xuICAgICAgICB0aGlzLnVzZXJQcm9maWxlRm9ybVNlcnZpY2UuZGlzcGF0Y2hGb3JtQWN0aW9uKGZvcm1BY3Rpb24pO1xuICAgIH1cbn1cbiIsIkBsZXQgZm9ybUZpZWxkU3RhdGVzID0gZm9ybVN0YXRlKCkuZm9ybUZpZWxkU3RhdGVzO1xuXG5AZm9yIChmaWVsZFN0YXRlIG9mIGZvcm1GaWVsZFN0YXRlczsgdHJhY2sgZmllbGRTdGF0ZS5hdHRyaWJ1dGUpIHtcbiAgICA8IS0tIFtncm91cE5hbWVSZWZdPVwiZ3JvdXBOYW1lUmVmXCJcbiAgVE9ETzogdmVyaWZ5IHRoaXMgbG9naWNcbiAgLS0+XG4gICAgPGtjLWdyb3VwLWxhYmVsIFthdHRyaWJ1dGVdPVwiZmllbGRTdGF0ZS5hdHRyaWJ1dGVcIj4gPC9rYy1ncm91cC1sYWJlbD5cblxuICAgIEBpZiAoYmVmb3JlRmllbGQpIHtcbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiYmVmb3JlRmllbGRcIlxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntcbiAgICAgICAgICAgICAgICBhdHRyaWJ1dGU6IGZpZWxkU3RhdGUuYXR0cmlidXRlLFxuICAgICAgICAgICAgICAgIHZhbHVlT3JWYWx1ZXM6IGZpZWxkU3RhdGUudmFsdWVPclZhbHVlcyxcbiAgICAgICAgICAgICAgICBkaXNwbGF5YWJsZUVycm9yczogZmllbGRTdGF0ZS5kaXNwbGF5YWJsZUVycm9yc1xuICAgICAgICAgICAgfVwiXG4gICAgICAgID5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgfVxuXG4gICAgPGRpdlxuICAgICAgICBba2NDbGFzc109XCIna2NGb3JtR3JvdXBDbGFzcydcIlxuICAgICAgICBbc3R5bGUuZGlzcGxheV09XCJmaWVsZFN0YXRlLmF0dHJpYnV0ZS5uYW1lID09PSAncGFzc3dvcmQtY29uZmlybScgJiYgIWRvTWFrZVVzZXJDb25maXJtUGFzc3dvcmQgPyAnbm9uZScgOiAnYmxvY2snXCJcbiAgICA+XG4gICAgICAgIDxkaXYgW2tjQ2xhc3NdPVwiJ2tjTGFiZWxXcmFwcGVyQ2xhc3MnXCI+XG4gICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgICBbZm9yXT1cImZpZWxkU3RhdGUuYXR0cmlidXRlLm5hbWVcIlxuICAgICAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY0xhYmVsQ2xhc3MnXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7eyBmaWVsZFN0YXRlLmF0dHJpYnV0ZS5kaXNwbGF5TmFtZSA/PyAnJyB8IGFkdmFuY2VkTXNnU3RyIH19XG4gICAgICAgICAgICAgICAgQGlmIChmaWVsZFN0YXRlLmF0dHJpYnV0ZS5yZXF1aXJlZCkge1xuICAgICAgICAgICAgICAgICAgICAqXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBba2NDbGFzc109XCIna2NJbnB1dFdyYXBwZXJDbGFzcydcIj5cbiAgICAgICAgICAgIEBpZiAoZmllbGRTdGF0ZS5hdHRyaWJ1dGUuYW5ub3RhdGlvbnMuaW5wdXRIZWxwZXJUZXh0QmVmb3JlKSB7XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBba2NDbGFzc109XCIna2NJbnB1dEhlbHBlclRleHRCZWZvcmVDbGFzcydcIlxuICAgICAgICAgICAgICAgICAgICBbaWRdPVwiJ2Zvcm0taGVscC10ZXh0LWJlZm9yZS0nICsgZmllbGRTdGF0ZS5hdHRyaWJ1dGUubmFtZVwiXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtbGl2ZT1cInBvbGl0ZVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7eyBmaWVsZFN0YXRlLmF0dHJpYnV0ZS5hbm5vdGF0aW9ucy5pbnB1dEhlbHBlclRleHRCZWZvcmUgfCBhZHZhbmNlZE1zZ1N0ciB9fVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICA8a2MtaW5wdXQtZmllbGQtYnktdHlwZVxuICAgICAgICAgICAgICAgIFthdHRyaWJ1dGVdPVwiZmllbGRTdGF0ZS5hdHRyaWJ1dGVcIlxuICAgICAgICAgICAgICAgIFt2YWx1ZU9yVmFsdWVzXT1cImZpZWxkU3RhdGUudmFsdWVPclZhbHVlc1wiXG4gICAgICAgICAgICAgICAgW2Rpc3BsYXlhYmxlRXJyb3JzXT1cImZpZWxkU3RhdGUuZGlzcGxheWFibGVFcnJvcnNcIlxuICAgICAgICAgICAgICAgIChkaXNwYXRjaEZvcm1BY3Rpb24pPVwib25EaXNwYXRjaCgkZXZlbnQpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwva2MtaW5wdXQtZmllbGQtYnktdHlwZT5cblxuICAgICAgICAgICAgPGtjLWZpZWxkLWVycm9yc1xuICAgICAgICAgICAgICAgIFthdHRyaWJ1dGVdPVwiZmllbGRTdGF0ZS5hdHRyaWJ1dGVcIlxuICAgICAgICAgICAgICAgIFtkaXNwbGF5YWJsZUVycm9yc109XCJmaWVsZFN0YXRlLmRpc3BsYXlhYmxlRXJyb3JzXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwva2MtZmllbGQtZXJyb3JzPlxuICAgICAgICAgICAgQGlmIChmaWVsZFN0YXRlLmF0dHJpYnV0ZS5hbm5vdGF0aW9ucy5pbnB1dEhlbHBlclRleHRBZnRlcikge1xuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjSW5wdXRIZWxwZXJUZXh0QWZ0ZXJDbGFzcydcIlxuICAgICAgICAgICAgICAgICAgICBbaWRdPVwiJ2Zvcm0taGVscC10ZXh0LWFmdGVyLScgKyBmaWVsZFN0YXRlLmF0dHJpYnV0ZS5uYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgYXJpYS1saXZlPVwicG9saXRlXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHt7IGZpZWxkU3RhdGUuYXR0cmlidXRlLmFubm90YXRpb25zLmlucHV0SGVscGVyVGV4dEFmdGVyIHwgYWR2YW5jZWRNc2dTdHIgfX1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGlmIChhZnRlckZpZWxkKSB7XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJhZnRlckZpZWxkXCJcbiAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZTogZmllbGRTdGF0ZS5hdHRyaWJ1dGUsXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZU9yVmFsdWVzOiBmaWVsZFN0YXRlLnZhbHVlT3JWYWx1ZXMsXG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5YWJsZUVycm9yczogZmllbGRTdGF0ZS5kaXNwbGF5YWJsZUVycm9yc1xuICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICA8IS0tIE5PVEU6IERvd25sb2FkaW5nIG9mIGh0bWw1RGF0YUFubm90YXRpb25zIHNjcmlwdHMgaXMgZG9uZSBpbiB0aGUgdXNlVXNlclByb2ZpbGVGb3JtIGhvb2sgLS0+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxufVxuIl19
@@ -25,8 +25,7 @@ export class TemplateComponent extends ComponentReference {
25
25
  this.displayRequiredFields = input(false);
26
26
  this.documentTitle = input();
27
27
  this.bodyClassName = input();
28
- this.title.setTitle(this.documentTitle() ??
29
- this.i18n.msgStr('loginTitle', this.kcContext.realm.displayName));
28
+ this.title.setTitle(this.documentTitle() ?? this.i18n.msgStr('loginTitle', this.kcContext.realm.displayName));
30
29
  this.isReadyToRender$ = this.loginResourceInjectorService.injectResource(this.doUseDefaultCss);
31
30
  }
32
31
  ngOnInit() {
@@ -57,7 +56,7 @@ export class TemplateComponent extends ComponentReference {
57
56
  provide: ComponentReference,
58
57
  useExisting: forwardRef(() => TemplateComponent)
59
58
  }
60
- ], usesInheritance: true, ngImport: i0, template: "@let realm = kcContext.realm;\n@let message = kcContext.message;\n@let auth = kcContext.auth;\n@let isAppInitiatedAction = kcContext.isAppInitiatedAction;\n@let url = kcContext.url;\n@let isReadyToRender = isReadyToRender$ | async;\n\n@if (isReadyToRender) {\n <div [kcClass]=\"'kcLoginClass'\">\n <div\n id=\"kc-header\"\n [kcClass]=\"'kcHeaderClass'\"\n >\n <div\n id=\"kc-header-wrapper\"\n [kcClass]=\"'kcHeaderWrapperClass'\"\n >\n <div [innerHTML]=\"realm?.displayNameHtml | kcSanitize: 'html'\"></div>\n </div>\n </div>\n\n <div [kcClass]=\"'kcFormCardClass'\">\n <header [kcClass]=\"'kcFormHeaderClass'\">\n <!-- Locale switcher -->\n @if (i18n.enabledLanguages.length > 1) {\n <div\n id=\"kc-locale\"\n [kcClass]=\"'kcLocaleMainClass'\"\n >\n <div\n id=\"kc-locale-wrapper\"\n [kcClass]=\"'kcLocaleWrapperClass'\"\n >\n <div\n id=\"kc-locale-dropdown\"\n [kcClass]=\"'kcLocaleDropDownClass'\"\n class=\"menu-button-links\"\n >\n <button\n tabindex=\"1\"\n id=\"kc-current-locale-link\"\n [attr.aria-label]=\"'languages' | msgStr\"\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n aria-controls=\"language-switch1\"\n >\n {{ i18n.currentLanguage.label }}\n </button>\n <ul\n role=\"menu\"\n tabindex=\"-1\"\n aria-labelledby=\"kc-current-locale-link\"\n aria-activedescendant=\"\"\n id=\"language-switch1\"\n [kcClass]=\"'kcLocaleListClass'\"\n >\n @for (entry of i18n.enabledLanguages; track entry; let idx = $index) {\n <li\n [kcClass]=\"'kcLocaleListItemClass'\"\n role=\"none\"\n >\n <a\n role=\"menuitem\"\n tabindex=\"-1\"\n [href]=\"entry.href\"\n [kcClass]=\"'kcLocaleItemClass'\"\n [id]=\"'language-' + idx\"\n >\n {{ entry.label }}\n </a>\n </li>\n }\n </ul>\n </div>\n </div>\n </div>\n }\n\n <!-- Header content -->\n <ng-template #node>\n @if (auth && !auth.showUsername && !auth.showResetCredentials) {\n <h1 id=\"kc-page-title\">\n <ng-content select=\"[headerNode]\"></ng-content>\n </h1>\n } @else {\n <div\n id=\"kc-username\"\n [kcClass]=\"'kcFormGroupClass'\"\n >\n <label id=\"kc-attempted-username\">{{ auth?.attemptedUsername }}</label>\n <a\n id=\"reset-login\"\n [href]=\"url?.loginRestartFlowUrl\"\n [attr.aria-label]=\"'restartLoginTooltip' | msgStr\"\n >\n <div class=\"kc-login-tooltip\">\n <i [kcClass]=\"'kcResetFlowIcon'\"></i>\n <span class=\"kc-tooltip-text\">\n {{ 'restartLoginTooltip' | msgStr }}\n </span>\n </div>\n </a>\n </div>\n }\n </ng-template>\n\n @if (displayRequiredFields()) {\n <div [kcClass]=\"'kcContentWrapperClass'\">\n <div\n [kcClass]=\"'kcLabelWrapperClass'\"\n class=\"subtitle\"\n >\n <span class=\"subtitle\">\n <span class=\"required\">*</span>\n {{ 'requiredFields' | msgStr }}\n </span>\n </div>\n <div class=\"col-md-10\">\n <ng-container [ngTemplateOutlet]=\"node\"></ng-container>\n </div>\n </div>\n } @else {\n <ng-container [ngTemplateOutlet]=\"node\"></ng-container>\n }\n </header>\n\n <div id=\"kc-content\">\n <div id=\"kc-content-wrapper\">\n <!-- Message display -->\n @if (displayMessage() && message && (message.type !== 'warning' || !isAppInitiatedAction)) {\n <div\n [kcClass]=\"'kcAlertClass'\"\n [ngClass]=\"message.type === 'error' ? 'pf-m-danger' : 'pf-m-' + message.type\"\n [class]=\"'alert-' + message.type\"\n >\n <div class=\"pf-c-alert__icon\">\n @switch (message.type) {\n @case ('success') {\n <span [kcClass]=\"'kcFeedbackSuccessIcon'\"></span>\n }\n @case ('warning') {\n <span [kcClass]=\"'kcFeedbackWarningIcon'\"></span>\n }\n @case ('info') {\n <span [kcClass]=\"'kcFeedbackInfoIcon'\"></span>\n }\n @case ('error') {\n <span [kcClass]=\"'kcFeedbackErrorIcon'\"></span>\n }\n }\n </div>\n <span\n [kcClass]=\"'kcAlertTitleClass'\"\n [innerHTML]=\"message.summary | kcSanitize: 'html'\"\n ></span>\n </div>\n }\n <!-- Content -->\n <ng-content select=\"[content]\"></ng-content>\n @if (!!auth && auth?.showTryAnotherWayLink) {\n <form\n id=\"kc-select-try-another-way-form\"\n [action]=\"url?.loginAction\"\n method=\"post\"\n >\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div [kcClass]=\"'kcFormGroupClass'\">\n <input\n type=\"hidden\"\n name=\"tryAnotherWay\"\n value=\"on\"\n />\n <a\n id=\"try-another-way\"\n (click)=\"tryAnotherWay()\"\n >\n {{ 'doTryAnotherWay' | msgStr }}\n </a>\n </div>\n </div>\n </form>\n }\n\n <ng-content select=\"[socialProvidersNode]\"></ng-content>\n <!-- Info display -->\n @if (displayInfo()) {\n <div\n id=\"kc-info\"\n [kcClass]=\"'kcSignUpClass'\"\n >\n <div\n id=\"kc-info-wrapper\"\n [kcClass]=\"'kcInfoAreaWrapperClass'\"\n >\n <ng-content select=\"[infoNode]\"></ng-content>\n </div>\n </div>\n }\n </div>\n </div>\n </div>\n </div>\n}\n", dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: KcSanitizePipe, name: "kcSanitize" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: KcClassDirective, selector: "[kcClass]", inputs: ["class", "ngClass", "kcClass"] }, { kind: "pipe", type: MsgStrPipe, name: "msgStr" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
59
+ ], usesInheritance: true, ngImport: i0, template: "@let realm = kcContext.realm;\n@let message = kcContext.message;\n@let auth = kcContext.auth;\n@let isAppInitiatedAction = kcContext.isAppInitiatedAction;\n@let url = kcContext.url;\n@let isReadyToRender = isReadyToRender$ | async;\n\n@if (isReadyToRender) {\n <div [kcClass]=\"'kcLoginClass'\">\n <div\n id=\"kc-header\"\n [kcClass]=\"'kcHeaderClass'\"\n >\n <div\n id=\"kc-header-wrapper\"\n [kcClass]=\"'kcHeaderWrapperClass'\"\n >\n <div [innerHTML]=\"realm?.displayNameHtml | kcSanitize: 'html'\"></div>\n </div>\n </div>\n\n <div [kcClass]=\"'kcFormCardClass'\">\n <header [kcClass]=\"'kcFormHeaderClass'\">\n <!-- Locale switcher -->\n @if (i18n.enabledLanguages.length > 1) {\n <div\n id=\"kc-locale\"\n [kcClass]=\"'kcLocaleMainClass'\"\n >\n <div\n id=\"kc-locale-wrapper\"\n [kcClass]=\"'kcLocaleWrapperClass'\"\n >\n <div\n id=\"kc-locale-dropdown\"\n [kcClass]=\"'kcLocaleDropDownClass'\"\n class=\"menu-button-links\"\n >\n <button\n tabindex=\"1\"\n id=\"kc-current-locale-link\"\n [attr.aria-label]=\"'languages' | msgStr\"\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n aria-controls=\"language-switch1\"\n >\n {{ i18n.currentLanguage.label }}\n </button>\n <ul\n role=\"menu\"\n tabindex=\"-1\"\n aria-labelledby=\"kc-current-locale-link\"\n aria-activedescendant=\"\"\n id=\"language-switch1\"\n [kcClass]=\"'kcLocaleListClass'\"\n >\n @for (entry of i18n.enabledLanguages; track entry; let idx = $index) {\n <li\n [kcClass]=\"'kcLocaleListItemClass'\"\n role=\"none\"\n >\n <a\n role=\"menuitem\"\n tabindex=\"-1\"\n [href]=\"entry.href\"\n [kcClass]=\"'kcLocaleItemClass'\"\n [id]=\"'language-' + idx\"\n >\n {{ entry.label }}\n </a>\n </li>\n }\n </ul>\n </div>\n </div>\n </div>\n }\n\n <!-- Header content -->\n <ng-template #node>\n @if (auth && !auth.showUsername && !auth.showResetCredentials) {\n <h1 id=\"kc-page-title\">\n <ng-content select=\"[headerNode]\"></ng-content>\n </h1>\n } @else {\n <div\n id=\"kc-username\"\n [kcClass]=\"'kcFormGroupClass'\"\n >\n <label id=\"kc-attempted-username\">{{ auth?.attemptedUsername }}</label>\n <a\n id=\"reset-login\"\n [href]=\"url?.loginRestartFlowUrl\"\n [attr.aria-label]=\"'restartLoginTooltip' | msgStr\"\n >\n <div class=\"kc-login-tooltip\">\n <i [kcClass]=\"'kcResetFlowIcon'\"></i>\n <span class=\"kc-tooltip-text\">\n {{ 'restartLoginTooltip' | msgStr }}\n </span>\n </div>\n </a>\n </div>\n }\n </ng-template>\n\n @if (displayRequiredFields()) {\n <div [kcClass]=\"'kcContentWrapperClass'\">\n <div\n [kcClass]=\"'kcLabelWrapperClass'\"\n class=\"subtitle\"\n >\n <span class=\"subtitle\">\n <span class=\"required\">*</span>\n {{ 'requiredFields' | msgStr }}\n </span>\n </div>\n <div class=\"col-md-10\">\n <ng-container [ngTemplateOutlet]=\"node\"></ng-container>\n </div>\n </div>\n } @else {\n <ng-container [ngTemplateOutlet]=\"node\"></ng-container>\n }\n </header>\n\n <div id=\"kc-content\">\n <div id=\"kc-content-wrapper\">\n <!-- Message display -->\n @if (displayMessage() && message && (message.type !== 'warning' || !isAppInitiatedAction)) {\n <div\n [kcClass]=\"'kcAlertClass'\"\n [ngClass]=\"message.type === 'error' ? 'pf-m-danger' : 'pf-m-' + message.type\"\n [class]=\"'alert-' + message.type\"\n >\n <div class=\"pf-c-alert__icon\">\n @switch (message.type) {\n @case ('success') {\n <span [kcClass]=\"'kcFeedbackSuccessIcon'\"></span>\n }\n @case ('warning') {\n <span [kcClass]=\"'kcFeedbackWarningIcon'\"></span>\n }\n @case ('info') {\n <span [kcClass]=\"'kcFeedbackInfoIcon'\"></span>\n }\n @case ('error') {\n <span [kcClass]=\"'kcFeedbackErrorIcon'\"></span>\n }\n }\n </div>\n <span\n [kcClass]=\"'kcAlertTitleClass'\"\n [innerHTML]=\"message.summary | kcSanitize: 'html'\"\n ></span>\n </div>\n }\n <!-- Content -->\n <ng-content select=\"[content]\"></ng-content>\n @if (!!auth && auth?.showTryAnotherWayLink) {\n <form\n id=\"kc-select-try-another-way-form\"\n [action]=\"url?.loginAction\"\n method=\"post\"\n >\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div [kcClass]=\"'kcFormGroupClass'\">\n <input\n type=\"hidden\"\n name=\"tryAnotherWay\"\n value=\"on\"\n />\n <a\n id=\"try-another-way\"\n (click)=\"tryAnotherWay()\"\n >\n {{ 'doTryAnotherWay' | msgStr }}\n </a>\n </div>\n </div>\n </form>\n }\n\n <ng-content select=\"[socialProvidersNode]\"></ng-content>\n <!-- Info display -->\n @if (displayInfo()) {\n <div\n id=\"kc-info\"\n [kcClass]=\"'kcSignUpClass'\"\n >\n <div\n id=\"kc-info-wrapper\"\n [kcClass]=\"'kcInfoAreaWrapperClass'\"\n >\n <ng-content select=\"[infoNode]\"></ng-content>\n </div>\n </div>\n }\n </div>\n </div>\n </div>\n </div>\n}\n", dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: KcSanitizePipe, name: "kcSanitize" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: KcClassDirective, selector: "[kcClass]", inputs: ["class", "ngClass", "kcClass"] }, { kind: "pipe", type: MsgStrPipe, name: "msgStr" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
61
60
  }
62
61
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: TemplateComponent, decorators: [{
63
62
  type: Component,
@@ -66,6 +65,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImpor
66
65
  provide: ComponentReference,
67
66
  useExisting: forwardRef(() => TemplateComponent)
68
67
  }
69
- ], template: "@let realm = kcContext.realm;\n@let message = kcContext.message;\n@let auth = kcContext.auth;\n@let isAppInitiatedAction = kcContext.isAppInitiatedAction;\n@let url = kcContext.url;\n@let isReadyToRender = isReadyToRender$ | async;\n\n@if (isReadyToRender) {\n <div [kcClass]=\"'kcLoginClass'\">\n <div\n id=\"kc-header\"\n [kcClass]=\"'kcHeaderClass'\"\n >\n <div\n id=\"kc-header-wrapper\"\n [kcClass]=\"'kcHeaderWrapperClass'\"\n >\n <div [innerHTML]=\"realm?.displayNameHtml | kcSanitize: 'html'\"></div>\n </div>\n </div>\n\n <div [kcClass]=\"'kcFormCardClass'\">\n <header [kcClass]=\"'kcFormHeaderClass'\">\n <!-- Locale switcher -->\n @if (i18n.enabledLanguages.length > 1) {\n <div\n id=\"kc-locale\"\n [kcClass]=\"'kcLocaleMainClass'\"\n >\n <div\n id=\"kc-locale-wrapper\"\n [kcClass]=\"'kcLocaleWrapperClass'\"\n >\n <div\n id=\"kc-locale-dropdown\"\n [kcClass]=\"'kcLocaleDropDownClass'\"\n class=\"menu-button-links\"\n >\n <button\n tabindex=\"1\"\n id=\"kc-current-locale-link\"\n [attr.aria-label]=\"'languages' | msgStr\"\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n aria-controls=\"language-switch1\"\n >\n {{ i18n.currentLanguage.label }}\n </button>\n <ul\n role=\"menu\"\n tabindex=\"-1\"\n aria-labelledby=\"kc-current-locale-link\"\n aria-activedescendant=\"\"\n id=\"language-switch1\"\n [kcClass]=\"'kcLocaleListClass'\"\n >\n @for (entry of i18n.enabledLanguages; track entry; let idx = $index) {\n <li\n [kcClass]=\"'kcLocaleListItemClass'\"\n role=\"none\"\n >\n <a\n role=\"menuitem\"\n tabindex=\"-1\"\n [href]=\"entry.href\"\n [kcClass]=\"'kcLocaleItemClass'\"\n [id]=\"'language-' + idx\"\n >\n {{ entry.label }}\n </a>\n </li>\n }\n </ul>\n </div>\n </div>\n </div>\n }\n\n <!-- Header content -->\n <ng-template #node>\n @if (auth && !auth.showUsername && !auth.showResetCredentials) {\n <h1 id=\"kc-page-title\">\n <ng-content select=\"[headerNode]\"></ng-content>\n </h1>\n } @else {\n <div\n id=\"kc-username\"\n [kcClass]=\"'kcFormGroupClass'\"\n >\n <label id=\"kc-attempted-username\">{{ auth?.attemptedUsername }}</label>\n <a\n id=\"reset-login\"\n [href]=\"url?.loginRestartFlowUrl\"\n [attr.aria-label]=\"'restartLoginTooltip' | msgStr\"\n >\n <div class=\"kc-login-tooltip\">\n <i [kcClass]=\"'kcResetFlowIcon'\"></i>\n <span class=\"kc-tooltip-text\">\n {{ 'restartLoginTooltip' | msgStr }}\n </span>\n </div>\n </a>\n </div>\n }\n </ng-template>\n\n @if (displayRequiredFields()) {\n <div [kcClass]=\"'kcContentWrapperClass'\">\n <div\n [kcClass]=\"'kcLabelWrapperClass'\"\n class=\"subtitle\"\n >\n <span class=\"subtitle\">\n <span class=\"required\">*</span>\n {{ 'requiredFields' | msgStr }}\n </span>\n </div>\n <div class=\"col-md-10\">\n <ng-container [ngTemplateOutlet]=\"node\"></ng-container>\n </div>\n </div>\n } @else {\n <ng-container [ngTemplateOutlet]=\"node\"></ng-container>\n }\n </header>\n\n <div id=\"kc-content\">\n <div id=\"kc-content-wrapper\">\n <!-- Message display -->\n @if (displayMessage() && message && (message.type !== 'warning' || !isAppInitiatedAction)) {\n <div\n [kcClass]=\"'kcAlertClass'\"\n [ngClass]=\"message.type === 'error' ? 'pf-m-danger' : 'pf-m-' + message.type\"\n [class]=\"'alert-' + message.type\"\n >\n <div class=\"pf-c-alert__icon\">\n @switch (message.type) {\n @case ('success') {\n <span [kcClass]=\"'kcFeedbackSuccessIcon'\"></span>\n }\n @case ('warning') {\n <span [kcClass]=\"'kcFeedbackWarningIcon'\"></span>\n }\n @case ('info') {\n <span [kcClass]=\"'kcFeedbackInfoIcon'\"></span>\n }\n @case ('error') {\n <span [kcClass]=\"'kcFeedbackErrorIcon'\"></span>\n }\n }\n </div>\n <span\n [kcClass]=\"'kcAlertTitleClass'\"\n [innerHTML]=\"message.summary | kcSanitize: 'html'\"\n ></span>\n </div>\n }\n <!-- Content -->\n <ng-content select=\"[content]\"></ng-content>\n @if (!!auth && auth?.showTryAnotherWayLink) {\n <form\n id=\"kc-select-try-another-way-form\"\n [action]=\"url?.loginAction\"\n method=\"post\"\n >\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div [kcClass]=\"'kcFormGroupClass'\">\n <input\n type=\"hidden\"\n name=\"tryAnotherWay\"\n value=\"on\"\n />\n <a\n id=\"try-another-way\"\n (click)=\"tryAnotherWay()\"\n >\n {{ 'doTryAnotherWay' | msgStr }}\n </a>\n </div>\n </div>\n </form>\n }\n\n <ng-content select=\"[socialProvidersNode]\"></ng-content>\n <!-- Info display -->\n @if (displayInfo()) {\n <div\n id=\"kc-info\"\n [kcClass]=\"'kcSignUpClass'\"\n >\n <div\n id=\"kc-info-wrapper\"\n [kcClass]=\"'kcInfoAreaWrapperClass'\"\n >\n <ng-content select=\"[infoNode]\"></ng-content>\n </div>\n </div>\n }\n </div>\n </div>\n </div>\n </div>\n}\n" }]
68
+ ], template: "@let realm = kcContext.realm;\n@let message = kcContext.message;\n@let auth = kcContext.auth;\n@let isAppInitiatedAction = kcContext.isAppInitiatedAction;\n@let url = kcContext.url;\n@let isReadyToRender = isReadyToRender$ | async;\n\n@if (isReadyToRender) {\n <div [kcClass]=\"'kcLoginClass'\">\n <div\n id=\"kc-header\"\n [kcClass]=\"'kcHeaderClass'\"\n >\n <div\n id=\"kc-header-wrapper\"\n [kcClass]=\"'kcHeaderWrapperClass'\"\n >\n <div [innerHTML]=\"realm?.displayNameHtml | kcSanitize: 'html'\"></div>\n </div>\n </div>\n\n <div [kcClass]=\"'kcFormCardClass'\">\n <header [kcClass]=\"'kcFormHeaderClass'\">\n <!-- Locale switcher -->\n @if (i18n.enabledLanguages.length > 1) {\n <div\n id=\"kc-locale\"\n [kcClass]=\"'kcLocaleMainClass'\"\n >\n <div\n id=\"kc-locale-wrapper\"\n [kcClass]=\"'kcLocaleWrapperClass'\"\n >\n <div\n id=\"kc-locale-dropdown\"\n [kcClass]=\"'kcLocaleDropDownClass'\"\n class=\"menu-button-links\"\n >\n <button\n tabindex=\"1\"\n id=\"kc-current-locale-link\"\n [attr.aria-label]=\"'languages' | msgStr\"\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n aria-controls=\"language-switch1\"\n >\n {{ i18n.currentLanguage.label }}\n </button>\n <ul\n role=\"menu\"\n tabindex=\"-1\"\n aria-labelledby=\"kc-current-locale-link\"\n aria-activedescendant=\"\"\n id=\"language-switch1\"\n [kcClass]=\"'kcLocaleListClass'\"\n >\n @for (entry of i18n.enabledLanguages; track entry; let idx = $index) {\n <li\n [kcClass]=\"'kcLocaleListItemClass'\"\n role=\"none\"\n >\n <a\n role=\"menuitem\"\n tabindex=\"-1\"\n [href]=\"entry.href\"\n [kcClass]=\"'kcLocaleItemClass'\"\n [id]=\"'language-' + idx\"\n >\n {{ entry.label }}\n </a>\n </li>\n }\n </ul>\n </div>\n </div>\n </div>\n }\n\n <!-- Header content -->\n <ng-template #node>\n @if (auth && !auth.showUsername && !auth.showResetCredentials) {\n <h1 id=\"kc-page-title\">\n <ng-content select=\"[headerNode]\"></ng-content>\n </h1>\n } @else {\n <div\n id=\"kc-username\"\n [kcClass]=\"'kcFormGroupClass'\"\n >\n <label id=\"kc-attempted-username\">{{ auth?.attemptedUsername }}</label>\n <a\n id=\"reset-login\"\n [href]=\"url?.loginRestartFlowUrl\"\n [attr.aria-label]=\"'restartLoginTooltip' | msgStr\"\n >\n <div class=\"kc-login-tooltip\">\n <i [kcClass]=\"'kcResetFlowIcon'\"></i>\n <span class=\"kc-tooltip-text\">\n {{ 'restartLoginTooltip' | msgStr }}\n </span>\n </div>\n </a>\n </div>\n }\n </ng-template>\n\n @if (displayRequiredFields()) {\n <div [kcClass]=\"'kcContentWrapperClass'\">\n <div\n [kcClass]=\"'kcLabelWrapperClass'\"\n class=\"subtitle\"\n >\n <span class=\"subtitle\">\n <span class=\"required\">*</span>\n {{ 'requiredFields' | msgStr }}\n </span>\n </div>\n <div class=\"col-md-10\">\n <ng-container [ngTemplateOutlet]=\"node\"></ng-container>\n </div>\n </div>\n } @else {\n <ng-container [ngTemplateOutlet]=\"node\"></ng-container>\n }\n </header>\n\n <div id=\"kc-content\">\n <div id=\"kc-content-wrapper\">\n <!-- Message display -->\n @if (displayMessage() && message && (message.type !== 'warning' || !isAppInitiatedAction)) {\n <div\n [kcClass]=\"'kcAlertClass'\"\n [ngClass]=\"message.type === 'error' ? 'pf-m-danger' : 'pf-m-' + message.type\"\n [class]=\"'alert-' + message.type\"\n >\n <div class=\"pf-c-alert__icon\">\n @switch (message.type) {\n @case ('success') {\n <span [kcClass]=\"'kcFeedbackSuccessIcon'\"></span>\n }\n @case ('warning') {\n <span [kcClass]=\"'kcFeedbackWarningIcon'\"></span>\n }\n @case ('info') {\n <span [kcClass]=\"'kcFeedbackInfoIcon'\"></span>\n }\n @case ('error') {\n <span [kcClass]=\"'kcFeedbackErrorIcon'\"></span>\n }\n }\n </div>\n <span\n [kcClass]=\"'kcAlertTitleClass'\"\n [innerHTML]=\"message.summary | kcSanitize: 'html'\"\n ></span>\n </div>\n }\n <!-- Content -->\n <ng-content select=\"[content]\"></ng-content>\n @if (!!auth && auth?.showTryAnotherWayLink) {\n <form\n id=\"kc-select-try-another-way-form\"\n [action]=\"url?.loginAction\"\n method=\"post\"\n >\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div [kcClass]=\"'kcFormGroupClass'\">\n <input\n type=\"hidden\"\n name=\"tryAnotherWay\"\n value=\"on\"\n />\n <a\n id=\"try-another-way\"\n (click)=\"tryAnotherWay()\"\n >\n {{ 'doTryAnotherWay' | msgStr }}\n </a>\n </div>\n </div>\n </form>\n }\n\n <ng-content select=\"[socialProvidersNode]\"></ng-content>\n <!-- Info display -->\n @if (displayInfo()) {\n <div\n id=\"kc-info\"\n [kcClass]=\"'kcSignUpClass'\"\n >\n <div\n id=\"kc-info-wrapper\"\n [kcClass]=\"'kcInfoAreaWrapperClass'\"\n >\n <ng-content select=\"[infoNode]\"></ng-content>\n </div>\n </div>\n }\n </div>\n </div>\n </div>\n </div>\n}\n" }]
70
69
  }], ctorParameters: () => [] });
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2V5Y2xvYWtpZnktYW5ndWxhci9zcmMvbG9naW4vY29udGFpbmVycy90ZW1wbGF0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rZXljbG9ha2lmeS1hbmd1bGFyL3NyYy9sb2dpbi9jb250YWluZXJzL3RlbXBsYXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5RCxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssRUFFTCxTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN4RCxPQUFPLEVBQ0gsT0FBTyxFQUNQLElBQUksRUFDSixVQUFVLEVBQ1YsZUFBZSxFQUNsQixNQUFNLHFDQUFxQyxDQUFDO0FBRzdDLE9BQU8sRUFBWSxTQUFTLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUVuRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUNsRyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUM1RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHFFQUFxRSxDQUFDOztBQWVuSCxNQUFNLE9BQU8saUJBQWtCLFNBQVEsa0JBQWtCO0lBa0JyRDtRQUNJLEtBQUssRUFBRSxDQUFDO1FBbEJaLFNBQUksR0FBRyxNQUFNLENB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Z0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsVUFBVSxDQUFDLG1CQUNuRSx1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxrQkFBa0I7NEJBQzNCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLGtCQUFrQixDQUFDO3lCQUNuRDtxQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFzeW5jUGlwZSwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBmb3J3YXJkUmVmLFxuICAgIGluamVjdCxcbiAgICBpbnB1dCxcbiAgICBPbkluaXQsXG4gICAgUmVuZGVyZXIyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWV0YSwgVGl0bGUgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7XG4gICAgQ0xBU1NFUyxcbiAgICBJMThOLFxuICAgIEtDX0NPTlRFWFQsXG4gICAgVVNFX0RFRkFVTFRfQ1NTXG59IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xpYi9wdWJsaWMtYXBpJztcbmltcG9ydCB0eXBlIHsgSTE4biB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL2kxOG4nO1xuaW1wb3J0IHsgS2NDb250ZXh0IH0gZnJvbSAna2V5Y2xvYWtpZnkvbG9naW4vS2NDb250ZXh0L0tjQ29udGV4dCc7XG5pbXBvcnQgeyBDbGFzc0tleSwgZ2V0S2NDbHN4IH0gZnJvbSAna2V5Y2xvYWtpZnkvbG9naW4vbGliL2tjQ2xzeCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDb21wb25lbnRSZWZlcmVuY2UgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9jbGFzc2VzL2NvbXBvbmVudC1yZWZlcmVuY2UuY2xhc3MnO1xuaW1wb3J0IHsgS2NDbGFzc0RpcmVjdGl2ZSB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL2RpcmVjdGl2ZXMva2MtY2xhc3MuZGlyZWN0aXZlJztcbmltcG9ydCB7IEtjU2FuaXRpemVQaXBlIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vcGlwZXMnO1xuaW1wb3J0IHsgTXNnU3RyUGlwZSB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL3BpcGVzL21zZy1zdHIucGlwZSc7XG5pbXBvcnQgeyBMb2dpblJlc291cmNlSW5qZWN0b3JTZXJ2aWNlIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vc2VydmljZXMvbG9naW4tcmVzb3VyY2UtaW5qZWN0b3Iuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAna2MtbG9naW4tdGVtcGxhdGUnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi90ZW1wbGF0ZS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQXN5bmNQaXBlLCBLY1Nhbml0aXplUGlwZSwgTmdUZW1wbGF0ZU91dGxldCwgS2NDbGFzc0RpcmVjdGl2ZSwgTXNnU3RyUGlwZV0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IENvbXBvbmVudFJlZmVyZW5jZSxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFRlbXBsYXRlQ29tcG9uZW50KVxuICAgICAgICB9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBUZW1wbGF0ZUNvbXBvbmVudCBleHRlbmRzIENvbXBvbmVudFJlZmVyZW5jZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgaTE4biA9IGluamVjdDxJMThuPihJMThOKTtcbiAgICByZW5kZXJlciA9IGluamVjdChSZW5kZXJlcjIpO1xuICAgIG1ldGEgPSBpbmplY3QoTWV0YSk7XG4gICAgdGl0bGUgPSBpbmplY3QoVGl0bGUpO1xuICAgIGtjQ29udGV4dCA9IGluamVjdDxLY0NvbnRleHQ+KEtDX0NPTlRFWFQpO1xuICAgIG92ZXJyaWRlIGRvVXNlRGVmYXVsdENzcyA9IGluamVjdDxib29sZWFuPihVU0VfREVGQVVMVF9DU1MpO1xuICAgIG92ZXJyaWRlIGNsYXNzZXMgPSBpbmplY3Q8UGFydGlhbDxSZWNvcmQ8Q2xhc3NLZXksIHN0cmluZz4+PihDTEFTU0VTKTtcbiAgICBsb2dpblJlc291cmNlSW5qZWN0b3JTZXJ2aWNlID0gaW5qZWN0KExvZ2luUmVzb3VyY2VJbmplY3RvclNlcnZpY2UpO1xuXG4gICAgZGlzcGxheUluZm8gPSBpbnB1dChmYWxzZSk7XG4gICAgZGlzcGxheU1lc3NhZ2UgPSBpbnB1dCh0cnVlKTtcbiAgICBkaXNwbGF5UmVxdWlyZWRGaWVsZHMgPSBpbnB1dChmYWxzZSk7XG4gICAgZG9jdW1lbnRUaXRsZSA9IGlucHV0PHN0cmluZz4oKTtcbiAgICBib2R5Q2xhc3NOYW1lID0gaW5wdXQ8c3RyaW5nPigpO1xuXG4gICAgaXNSZWFkeVRvUmVuZGVyJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLnRpdGxlLnNldFRpdGxlKFxuICAgICAgICAgICAgdGhpcy5kb2N1bWVudFRpdGxlKCkgPz9cbiAgICAgICAgICAgICAgICB0aGlzLmkxOG4ubXNnU3RyKCdsb2dpblRpdGxlJywgdGhpcy5rY0NvbnRleHQucmVhbG0uZGlzcGxheU5hbWUpXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuaXNSZWFkeVRvUmVuZGVyJCA9IHRoaXMubG9naW5SZXNvdXJjZUluamVjdG9yU2VydmljZS5pbmplY3RSZXNvdXJjZShcbiAgICAgICAgICAgIHRoaXMuZG9Vc2VEZWZhdWx0Q3NzXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuYXBwbHlLY0luZGV4Q2xhc3NlcygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXBwbHlLY0luZGV4Q2xhc3NlcygpIHtcbiAgICAgICAgY29uc3Qga2NDbHN4ID0gZ2V0S2NDbHN4KHtcbiAgICAgICAgICAgIGRvVXNlRGVmYXVsdENzczogdGhpcy5kb1VzZURlZmF1bHRDc3MsXG4gICAgICAgICAgICBjbGFzc2VzOiB0aGlzLmNsYXNzZXNcbiAgICAgICAgfSkua2NDbHN4O1xuICAgICAgICBjb25zdCBrY0JvZHlDbGFzcyA9IHRoaXMuYm9keUNsYXNzTmFtZSgpID8/IGtjQ2xzeCgna2NCb2R5Q2xhc3MnKTtcbiAgICAgICAgY29uc3Qga2NIdG1sQ2xhc3MgPSBrY0Nsc3goJ2tjSHRtbENsYXNzJyk7XG4gICAgICAgIGNvbnN0IGtjQm9keUNsYXNzZXMgPSBrY0JvZHlDbGFzcy5zcGxpdCgvXFxzKy8pO1xuICAgICAgICBjb25zdCBrY0h0bWxDbGFzc2VzID0ga2NIdG1sQ2xhc3Muc3BsaXQoL1xccysvKTtcbiAgICAgICAga2NCb2R5Q2xhc3Nlcy5mb3JFYWNoKGtsYXNzID0+IHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MoZG9jdW1lbnQuYm9keSwga2xhc3MpO1xuICAgICAgICB9KTtcbiAgICAgICAga2NIdG1sQ2xhc3Nlcy5mb3JFYWNoKGtsYXNzID0+IHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LCBrbGFzcyk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHRyeUFub3RoZXJXYXkoKSB7XG4gICAgICAgIGRvY3VtZW50LmZvcm1zWydrYy1zZWxlY3QtdHJ5LWFub3RoZXItd2F5LWZvcm0nIGFzIG5ldmVyXS5zdWJtaXQoKTtcbiAgICB9XG59XG4iLCJAbGV0IHJlYWxtID0ga2NDb250ZXh0LnJlYWxtO1xuQGxldCBtZXNzYWdlID0ga2NDb250ZXh0Lm1lc3NhZ2U7XG5AbGV0IGF1dGggPSBrY0NvbnRleHQuYXV0aDtcbkBsZXQgaXNBcHBJbml0aWF0ZWRBY3Rpb24gPSBrY0NvbnRleHQuaXNBcHBJbml0aWF0ZWRBY3Rpb247XG5AbGV0IHVybCA9IGtjQ29udGV4dC51cmw7XG5AbGV0IGlzUmVhZHlUb1JlbmRlciA9IGlzUmVhZHlUb1JlbmRlciQgfCBhc3luYztcblxuQGlmIChpc1JlYWR5VG9SZW5kZXIpIHtcbiAgPGRpdiBba2NDbGFzc109XCIna2NMb2dpbkNsYXNzJ1wiPlxuICAgIDxkaXZcbiAgICAgIGlkPVwia2MtaGVhZGVyXCJcbiAgICAgIFtrY0NsYXNzXT1cIidrY0hlYWRlckNsYXNzJ1wiXG4gICAgPlxuICAgICAgPGRpdlxuICAgICAgICBpZD1cImtjLWhlYWRlci13cmFwcGVyXCJcbiAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjSGVhZGVyV3JhcHBlckNsYXNzJ1wiXG4gICAgICA+XG4gICAgICAgIDxkaXYgW2lubmVySFRNTF09XCJyZWFsbT8uZGlzcGxheU5hbWVIdG1sIHwga2NTYW5pdGl6ZTogJ2h0bWwnXCI+PC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgW2tjQ2xhc3NdPVwiJ2tjRm9ybUNhcmRDbGFzcydcIj5cbiAgICAgIDxoZWFkZXIgW2tjQ2xhc3NdPVwiJ2tjRm9ybUhlYWRlckNsYXNzJ1wiPlxuICAgICAgICA8IS0tIExvY2FsZSBzd2l0Y2hlciAtLT5cbiAgICAgICAgQGlmIChpMThuLmVuYWJsZWRMYW5ndWFnZXMubGVuZ3RoID4gMSkge1xuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGlkPVwia2MtbG9jYWxlXCJcbiAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY0xvY2FsZU1haW5DbGFzcydcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgaWQ9XCJrYy1sb2NhbGUtd3JhcHBlclwiXG4gICAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY0xvY2FsZVdyYXBwZXJDbGFzcydcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgaWQ9XCJrYy1sb2NhbGUtZHJvcGRvd25cIlxuICAgICAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY0xvY2FsZURyb3BEb3duQ2xhc3MnXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm1lbnUtYnV0dG9uLWxpbmtzXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgIHRhYmluZGV4PVwiMVwiXG4gICAgICAgICAgICAgICAgICBpZD1cImtjLWN1cnJlbnQtbG9jYWxlLWxpbmtcIlxuICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInbGFuZ3VhZ2VzJyB8IG1zZ1N0clwiXG4gICAgICAgICAgICAgICAgICBhcmlhLWhhc3BvcHVwPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICBhcmlhLWV4cGFuZGVkPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgYXJpYS1jb250cm9scz1cImxhbmd1YWdlLXN3aXRjaDFcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHt7IGkxOG4uY3VycmVudExhbmd1YWdlLmxhYmVsIH19XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPHVsXG4gICAgICAgICAgICAgICAgICByb2xlPVwibWVudVwiXG4gICAgICAgICAgICAgICAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWxsZWRieT1cImtjLWN1cnJlbnQtbG9jYWxlLWxpbmtcIlxuICAgICAgICAgICAgICAgICAgYXJpYS1hY3RpdmVkZXNjZW5kYW50PVwiXCJcbiAgICAgICAgICAgICAgICAgIGlkPVwibGFuZ3VhZ2Utc3dpdGNoMVwiXG4gICAgICAgICAgICAgICAgICBba2NDbGFzc109XCIna2NMb2NhbGVMaXN0Q2xhc3MnXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICBAZm9yIChlbnRyeSBvZiBpMThuLmVuYWJsZWRMYW5ndWFnZXM7IHRyYWNrIGVudHJ5OyBsZXQgaWR4ID0gJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY0xvY2FsZUxpc3RJdGVtQ2xhc3MnXCJcbiAgICAgICAgICAgICAgICAgICAgICByb2xlPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cIm1lbnVpdGVtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2hyZWZdPVwiZW50cnkuaHJlZlwiXG4gICAgICAgICAgICAgICAgICAgICAgICBba2NDbGFzc109XCIna2NMb2NhbGVJdGVtQ2xhc3MnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtpZF09XCInbGFuZ3VhZ2UtJyArIGlkeFwiXG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgZW50cnkubGFiZWwgfX1cbiAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuXG4gICAgICAgIDwhLS0gSGVhZGVyIGNvbnRlbnQgLS0+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjbm9kZT5cbiAgICAgICAgICBAaWYgKGF1dGggJiYgIWF1dGguc2hvd1VzZXJuYW1lICYmICFhdXRoLnNob3dSZXNldENyZWRlbnRpYWxzKSB7XG4gICAgICAgICAgICA8aDEgaWQ9XCJrYy1wYWdlLXRpdGxlXCI+XG4gICAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltoZWFkZXJOb2RlXVwiPjwvbmctY29udGVudD5cbiAgICAgICAgICAgIDwvaDE+XG4gICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGlkPVwia2MtdXNlcm5hbWVcIlxuICAgICAgICAgICAgICBba2NDbGFzc109XCIna2NGb3JtR3JvdXBDbGFzcydcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8bGFiZWwgaWQ9XCJrYy1hdHRlbXB0ZWQtdXNlcm5hbWVcIj57eyBhdXRoPy5hdHRlbXB0ZWRVc2VybmFtZSB9fTwvbGFiZWw+XG4gICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgaWQ9XCJyZXNldC1sb2dpblwiXG4gICAgICAgICAgICAgICAgW2hyZWZdPVwidXJsPy5sb2dpblJlc3RhcnRGbG93VXJsXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidyZXN0YXJ0TG9naW5Ub29sdGlwJyB8IG1zZ1N0clwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwia2MtbG9naW4tdG9vbHRpcFwiPlxuICAgICAgICAgICAgICAgICAgPGkgW2tjQ2xhc3NdPVwiJ2tjUmVzZXRGbG93SWNvbidcIj48L2k+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImtjLXRvb2x0aXAtdGV4dFwiPlxuICAgICAgICAgICAgICAgICAgICB7eyAncmVzdGFydExvZ2luVG9vbHRpcCcgfCBtc2dTdHIgfX1cbiAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgfVxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICAgIEBpZiAoZGlzcGxheVJlcXVpcmVkRmllbGRzKCkpIHtcbiAgICAgICAgICA8ZGl2IFtrY0NsYXNzXT1cIidrY0NvbnRlbnRXcmFwcGVyQ2xhc3MnXCI+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY0xhYmVsV3JhcHBlckNsYXNzJ1wiXG4gICAgICAgICAgICAgIGNsYXNzPVwic3VidGl0bGVcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN1YnRpdGxlXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJyZXF1aXJlZFwiPio8L3NwYW4+XG4gICAgICAgICAgICAgICAge3sgJ3JlcXVpcmVkRmllbGRzJyB8IG1zZ1N0ciB9fVxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTBcIj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJub2RlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJub2RlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIH1cbiAgICAgIDwvaGVhZGVyPlxuXG4gICAgICA8ZGl2IGlkPVwia2MtY29udGVudFwiPlxuICAgICAgICA8ZGl2IGlkPVwia2MtY29udGVudC13cmFwcGVyXCI+XG4gICAgICAgICAgPCEtLSBNZXNzYWdlIGRpc3BsYXkgLS0+XG4gICAgICAgICAgQGlmIChkaXNwbGF5TWVzc2FnZSgpICYmIG1lc3NhZ2UgJiYgKG1lc3NhZ2UudHlwZSAhPT0gJ3dhcm5pbmcnIHx8ICFpc0FwcEluaXRpYXRlZEFjdGlvbikpIHtcbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjQWxlcnRDbGFzcydcIlxuICAgICAgICAgICAgICBbbmdDbGFzc109XCJtZXNzYWdlLnR5cGUgPT09ICdlcnJvcicgPyAncGYtbS1kYW5nZXInIDogJ3BmLW0tJyArIG1lc3NhZ2UudHlwZVwiXG4gICAgICAgICAgICAgIFtjbGFzc109XCInYWxlcnQtJyArIG1lc3NhZ2UudHlwZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwZi1jLWFsZXJ0X19pY29uXCI+XG4gICAgICAgICAgICAgICAgQHN3aXRjaCAobWVzc2FnZS50eXBlKSB7XG4gICAgICAgICAgICAgICAgICBAY2FzZSAoJ3N1Y2Nlc3MnKSB7XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIFtrY0NsYXNzXT1cIidrY0ZlZWRiYWNrU3VjY2Vzc0ljb24nXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgQGNhc2UgKCd3YXJuaW5nJykge1xuICAgICAgICAgICAgICAgICAgICA8c3BhbiBba2NDbGFzc109XCIna2NGZWVkYmFja1dhcm5pbmdJY29uJ1wiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIEBjYXNlICgnaW5mbycpIHtcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gW2tjQ2xhc3NdPVwiJ2tjRmVlZGJhY2tJbmZvSWNvbidcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBAY2FzZSAoJ2Vycm9yJykge1xuICAgICAgICAgICAgICAgICAgICA8c3BhbiBba2NDbGFzc109XCIna2NGZWVkYmFja0Vycm9ySWNvbidcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICBba2NDbGFzc109XCIna2NBbGVydFRpdGxlQ2xhc3MnXCJcbiAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cIm1lc3NhZ2Uuc3VtbWFyeSB8IGtjU2FuaXRpemU6ICdodG1sJ1wiXG4gICAgICAgICAgICAgID48L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB9XG4gICAgICAgICAgPCEtLSBDb250ZW50IC0tPlxuICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltjb250ZW50XVwiPjwvbmctY29udGVudD5cbiAgICAgICAgICBAaWYgKCEhYXV0aCAmJiBhdXRoPy5zaG93VHJ5QW5vdGhlcldheUxpbmspIHtcbiAgICAgICAgICAgIDxmb3JtXG4gICAgICAgICAgICAgIGlkPVwia2Mtc2VsZWN0LXRyeS1hbm90aGVyLXdheS1mb3JtXCJcbiAgICAgICAgICAgICAgW2FjdGlvbl09XCJ1cmw/LmxvZ2luQWN0aW9uXCJcbiAgICAgICAgICAgICAgbWV0aG9kPVwicG9zdFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxkaXYgW2tjQ2xhc3NdPVwiJ2tjRm9ybUdyb3VwQ2xhc3MnXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBba2NDbGFzc109XCIna2NGb3JtR3JvdXBDbGFzcydcIj5cbiAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiaGlkZGVuXCJcbiAgICAgICAgICAgICAgICAgICAgbmFtZT1cInRyeUFub3RoZXJXYXlcIlxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cIm9uXCJcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICBpZD1cInRyeS1hbm90aGVyLXdheVwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ0cnlBbm90aGVyV2F5KClcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7eyAnZG9UcnlBbm90aGVyV2F5JyB8IG1zZ1N0ciB9fVxuICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZm9ybT5cbiAgICAgICAgICB9XG5cbiAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbc29jaWFsUHJvdmlkZXJzTm9kZV1cIj48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgPCEtLSBJbmZvIGRpc3BsYXkgLS0+XG4gICAgICAgICAgQGlmIChkaXNwbGF5SW5mbygpKSB7XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGlkPVwia2MtaW5mb1wiXG4gICAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY1NpZ25VcENsYXNzJ1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBpZD1cImtjLWluZm8td3JhcHBlclwiXG4gICAgICAgICAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjSW5mb0FyZWFXcmFwcGVyQ2xhc3MnXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltpbmZvTm9kZV1cIj48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbn1cbiJdfQ==
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2V5Y2xvYWtpZnktYW5ndWxhci9zcmMvbG9naW4vY29udGFpbmVycy90ZW1wbGF0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rZXljbG9ha2lmeS1hbmd1bGFyL3NyYy9sb2dpbi9jb250YWluZXJzL3RlbXBsYXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqSCxPQUFPLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxlQUFlLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUdqRyxPQUFPLEVBQVksU0FBUyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFbkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOERBQThELENBQUM7QUFDbEcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFDNUYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxxRUFBcUUsQ0FBQzs7QUFlbkgsTUFBTSxPQUFPLGlCQUFrQixTQUFRLGtCQUFrQjtJQWtCckQ7UUFDSSxLQUFLLEVBQUUsQ0FBQztRQWxCWixTQUFJLEdBQUcsTUFBTSxDQUFP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Z0IsRUFBRSxnQkFBZ0IsRUFBRSxVQUFVLENBQUMsbUJBQ25FLHVCQUF1QixDQUFDLE1BQU0sYUFDcEM7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLGtCQUFrQjs0QkFDM0IsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsa0JBQWtCLENBQUM7eUJBQ25EO3FCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXN5bmNQaXBlLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGZvcndhcmRSZWYsIGluamVjdCwgaW5wdXQsIE9uSW5pdCwgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNZXRhLCBUaXRsZSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgQ0xBU1NFUywgSTE4TiwgS0NfQ09OVEVYVCwgVVNFX0RFRkFVTFRfQ1NTIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbGliL3B1YmxpYy1hcGknO1xuaW1wb3J0IHR5cGUgeyBJMThuIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vaTE4bic7XG5pbXBvcnQgeyBLY0NvbnRleHQgfSBmcm9tICdrZXljbG9ha2lmeS9sb2dpbi9LY0NvbnRleHQvS2NDb250ZXh0JztcbmltcG9ydCB7IENsYXNzS2V5LCBnZXRLY0Nsc3ggfSBmcm9tICdrZXljbG9ha2lmeS9sb2dpbi9saWIva2NDbHN4JztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENvbXBvbmVudFJlZmVyZW5jZSB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL2NsYXNzZXMvY29tcG9uZW50LXJlZmVyZW5jZS5jbGFzcyc7XG5pbXBvcnQgeyBLY0NsYXNzRGlyZWN0aXZlIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vZGlyZWN0aXZlcy9rYy1jbGFzcy5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgS2NTYW5pdGl6ZVBpcGUgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9waXBlcyc7XG5pbXBvcnQgeyBNc2dTdHJQaXBlIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vcGlwZXMvbXNnLXN0ci5waXBlJztcbmltcG9ydCB7IExvZ2luUmVzb3VyY2VJbmplY3RvclNlcnZpY2UgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9zZXJ2aWNlcy9sb2dpbi1yZXNvdXJjZS1pbmplY3Rvci5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdrYy1sb2dpbi10ZW1wbGF0ZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3RlbXBsYXRlLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtBc3luY1BpcGUsIEtjU2FuaXRpemVQaXBlLCBOZ1RlbXBsYXRlT3V0bGV0LCBLY0NsYXNzRGlyZWN0aXZlLCBNc2dTdHJQaXBlXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogQ29tcG9uZW50UmVmZXJlbmNlLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVGVtcGxhdGVDb21wb25lbnQpXG4gICAgICAgIH1cbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIFRlbXBsYXRlQ29tcG9uZW50IGV4dGVuZHMgQ29tcG9uZW50UmVmZXJlbmNlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBpMThuID0gaW5qZWN0PEkxOG4+KEkxOE4pO1xuICAgIHJlbmRlcmVyID0gaW5qZWN0KFJlbmRlcmVyMik7XG4gICAgbWV0YSA9IGluamVjdChNZXRhKTtcbiAgICB0aXRsZSA9IGluamVjdChUaXRsZSk7XG4gICAga2NDb250ZXh0ID0gaW5qZWN0PEtjQ29udGV4dD4oS0NfQ09OVEVYVCk7XG4gICAgb3ZlcnJpZGUgZG9Vc2VEZWZhdWx0Q3NzID0gaW5qZWN0PGJvb2xlYW4+KFVTRV9ERUZBVUxUX0NTUyk7XG4gICAgb3ZlcnJpZGUgY2xhc3NlcyA9IGluamVjdDxQYXJ0aWFsPFJlY29yZDxDbGFzc0tleSwgc3RyaW5nPj4+KENMQVNTRVMpO1xuICAgIGxvZ2luUmVzb3VyY2VJbmplY3RvclNlcnZpY2UgPSBpbmplY3QoTG9naW5SZXNvdXJjZUluamVjdG9yU2VydmljZSk7XG5cbiAgICBkaXNwbGF5SW5mbyA9IGlucHV0KGZhbHNlKTtcbiAgICBkaXNwbGF5TWVzc2FnZSA9IGlucHV0KHRydWUpO1xuICAgIGRpc3BsYXlSZXF1aXJlZEZpZWxkcyA9IGlucHV0KGZhbHNlKTtcbiAgICBkb2N1bWVudFRpdGxlID0gaW5wdXQ8c3RyaW5nPigpO1xuICAgIGJvZHlDbGFzc05hbWUgPSBpbnB1dDxzdHJpbmc+KCk7XG5cbiAgICBpc1JlYWR5VG9SZW5kZXIkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMudGl0bGUuc2V0VGl0bGUodGhpcy5kb2N1bWVudFRpdGxlKCkgPz8gdGhpcy5pMThuLm1zZ1N0cignbG9naW5UaXRsZScsIHRoaXMua2NDb250ZXh0LnJlYWxtLmRpc3BsYXlOYW1lKSk7XG4gICAgICAgIHRoaXMuaXNSZWFkeVRvUmVuZGVyJCA9IHRoaXMubG9naW5SZXNvdXJjZUluamVjdG9yU2VydmljZS5pbmplY3RSZXNvdXJjZSh0aGlzLmRvVXNlRGVmYXVsdENzcyk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuYXBwbHlLY0luZGV4Q2xhc3NlcygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXBwbHlLY0luZGV4Q2xhc3NlcygpIHtcbiAgICAgICAgY29uc3Qga2NDbHN4ID0gZ2V0S2NDbHN4KHtcbiAgICAgICAgICAgIGRvVXNlRGVmYXVsdENzczogdGhpcy5kb1VzZURlZmF1bHRDc3MsXG4gICAgICAgICAgICBjbGFzc2VzOiB0aGlzLmNsYXNzZXNcbiAgICAgICAgfSkua2NDbHN4O1xuICAgICAgICBjb25zdCBrY0JvZHlDbGFzcyA9IHRoaXMuYm9keUNsYXNzTmFtZSgpID8/IGtjQ2xzeCgna2NCb2R5Q2xhc3MnKTtcbiAgICAgICAgY29uc3Qga2NIdG1sQ2xhc3MgPSBrY0Nsc3goJ2tjSHRtbENsYXNzJyk7XG4gICAgICAgIGNvbnN0IGtjQm9keUNsYXNzZXMgPSBrY0JvZHlDbGFzcy5zcGxpdCgvXFxzKy8pO1xuICAgICAgICBjb25zdCBrY0h0bWxDbGFzc2VzID0ga2NIdG1sQ2xhc3Muc3BsaXQoL1xccysvKTtcbiAgICAgICAga2NCb2R5Q2xhc3Nlcy5mb3JFYWNoKGtsYXNzID0+IHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MoZG9jdW1lbnQuYm9keSwga2xhc3MpO1xuICAgICAgICB9KTtcbiAgICAgICAga2NIdG1sQ2xhc3Nlcy5mb3JFYWNoKGtsYXNzID0+IHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LCBrbGFzcyk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHRyeUFub3RoZXJXYXkoKSB7XG4gICAgICAgIGRvY3VtZW50LmZvcm1zWydrYy1zZWxlY3QtdHJ5LWFub3RoZXItd2F5LWZvcm0nIGFzIG5ldmVyXS5zdWJtaXQoKTtcbiAgICB9XG59XG4iLCJAbGV0IHJlYWxtID0ga2NDb250ZXh0LnJlYWxtO1xuQGxldCBtZXNzYWdlID0ga2NDb250ZXh0Lm1lc3NhZ2U7XG5AbGV0IGF1dGggPSBrY0NvbnRleHQuYXV0aDtcbkBsZXQgaXNBcHBJbml0aWF0ZWRBY3Rpb24gPSBrY0NvbnRleHQuaXNBcHBJbml0aWF0ZWRBY3Rpb247XG5AbGV0IHVybCA9IGtjQ29udGV4dC51cmw7XG5AbGV0IGlzUmVhZHlUb1JlbmRlciA9IGlzUmVhZHlUb1JlbmRlciQgfCBhc3luYztcblxuQGlmIChpc1JlYWR5VG9SZW5kZXIpIHtcbiAgICA8ZGl2IFtrY0NsYXNzXT1cIidrY0xvZ2luQ2xhc3MnXCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgIGlkPVwia2MtaGVhZGVyXCJcbiAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY0hlYWRlckNsYXNzJ1wiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBpZD1cImtjLWhlYWRlci13cmFwcGVyXCJcbiAgICAgICAgICAgICAgICBba2NDbGFzc109XCIna2NIZWFkZXJXcmFwcGVyQ2xhc3MnXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8ZGl2IFtpbm5lckhUTUxdPVwicmVhbG0/LmRpc3BsYXlOYW1lSHRtbCB8IGtjU2FuaXRpemU6ICdodG1sJ1wiPjwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgW2tjQ2xhc3NdPVwiJ2tjRm9ybUNhcmRDbGFzcydcIj5cbiAgICAgICAgICAgIDxoZWFkZXIgW2tjQ2xhc3NdPVwiJ2tjRm9ybUhlYWRlckNsYXNzJ1wiPlxuICAgICAgICAgICAgICAgIDwhLS0gTG9jYWxlIHN3aXRjaGVyIC0tPlxuICAgICAgICAgICAgICAgIEBpZiAoaTE4bi5lbmFibGVkTGFuZ3VhZ2VzLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJrYy1sb2NhbGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjTG9jYWxlTWFpbkNsYXNzJ1wiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImtjLWxvY2FsZS13cmFwcGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBba2NDbGFzc109XCIna2NMb2NhbGVXcmFwcGVyQ2xhc3MnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwia2MtbG9jYWxlLWRyb3Bkb3duXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjTG9jYWxlRHJvcERvd25DbGFzcydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1lbnUtYnV0dG9uLWxpbmtzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYmluZGV4PVwiMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImtjLWN1cnJlbnQtbG9jYWxlLWxpbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInbGFuZ3VhZ2VzJyB8IG1zZ1N0clwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWhhc3BvcHVwPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWV4cGFuZGVkPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1jb250cm9scz1cImxhbmd1YWdlLXN3aXRjaDFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpMThuLmN1cnJlbnRMYW5ndWFnZS5sYWJlbCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb2xlPVwibWVudVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWxsZWRieT1cImtjLWN1cnJlbnQtbG9jYWxlLWxpbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1hY3RpdmVkZXNjZW5kYW50PVwiXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwibGFuZ3VhZ2Utc3dpdGNoMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBba2NDbGFzc109XCIna2NMb2NhbGVMaXN0Q2xhc3MnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAoZW50cnkgb2YgaTE4bi5lbmFibGVkTGFuZ3VhZ2VzOyB0cmFjayBlbnRyeTsgbGV0IGlkeCA9ICRpbmRleCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBba2NDbGFzc109XCIna2NMb2NhbGVMaXN0SXRlbUNsYXNzJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb2xlPVwibWVudWl0ZW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaHJlZl09XCJlbnRyeS5ocmVmXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY0xvY2FsZUl0ZW1DbGFzcydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lkXT1cIidsYW5ndWFnZS0nICsgaWR4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZW50cnkubGFiZWwgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgPCEtLSBIZWFkZXIgY29udGVudCAtLT5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vZGU+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoYXV0aCAmJiAhYXV0aC5zaG93VXNlcm5hbWUgJiYgIWF1dGguc2hvd1Jlc2V0Q3JlZGVudGlhbHMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxoMSBpZD1cImtjLXBhZ2UtdGl0bGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbaGVhZGVyTm9kZV1cIj48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2gxPlxuICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImtjLXVzZXJuYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBba2NDbGFzc109XCIna2NGb3JtR3JvdXBDbGFzcydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBpZD1cImtjLWF0dGVtcHRlZC11c2VybmFtZVwiPnt7IGF1dGg/LmF0dGVtcHRlZFVzZXJuYW1lIH19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cInJlc2V0LWxvZ2luXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hyZWZdPVwidXJsPy5sb2dpblJlc3RhcnRGbG93VXJsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCIncmVzdGFydExvZ2luVG9vbHRpcCcgfCBtc2dTdHJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImtjLWxvZ2luLXRvb2x0aXBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIFtrY0NsYXNzXT1cIidrY1Jlc2V0Rmxvd0ljb24nXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJrYy10b29sdGlwLXRleHRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAncmVzdGFydExvZ2luVG9vbHRpcCcgfCBtc2dTdHIgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICAgICAgICAgICAgQGlmIChkaXNwbGF5UmVxdWlyZWRGaWVsZHMoKSkge1xuICAgICAgICAgICAgICAgICAgICA8ZGl2IFtrY0NsYXNzXT1cIidrY0NvbnRlbnRXcmFwcGVyQ2xhc3MnXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjTGFiZWxXcmFwcGVyQ2xhc3MnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInN1YnRpdGxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN1YnRpdGxlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicmVxdWlyZWRcIj4qPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAncmVxdWlyZWRGaWVsZHMnIHwgbXNnU3RyIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJub2RlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwibm9kZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvaGVhZGVyPlxuXG4gICAgICAgICAgICA8ZGl2IGlkPVwia2MtY29udGVudFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJrYy1jb250ZW50LXdyYXBwZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPCEtLSBNZXNzYWdlIGRpc3BsYXkgLS0+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoZGlzcGxheU1lc3NhZ2UoKSAmJiBtZXNzYWdlICYmIChtZXNzYWdlLnR5cGUgIT09ICd3YXJuaW5nJyB8fCAhaXNBcHBJbml0aWF0ZWRBY3Rpb24pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjQWxlcnRDbGFzcydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIm1lc3NhZ2UudHlwZSA9PT0gJ2Vycm9yJyA/ICdwZi1tLWRhbmdlcicgOiAncGYtbS0nICsgbWVzc2FnZS50eXBlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3NdPVwiJ2FsZXJ0LScgKyBtZXNzYWdlLnR5cGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwZi1jLWFsZXJ0X19pY29uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBzd2l0Y2ggKG1lc3NhZ2UudHlwZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGNhc2UgKCdzdWNjZXNzJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIFtrY0NsYXNzXT1cIidrY0ZlZWRiYWNrU3VjY2Vzc0ljb24nXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGNhc2UgKCd3YXJuaW5nJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIFtrY0NsYXNzXT1cIidrY0ZlZWRiYWNrV2FybmluZ0ljb24nXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGNhc2UgKCdpbmZvJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIFtrY0NsYXNzXT1cIidrY0ZlZWRiYWNrSW5mb0ljb24nXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGNhc2UgKCdlcnJvcicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBba2NDbGFzc109XCIna2NGZWVkYmFja0Vycm9ySWNvbidcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBba2NDbGFzc109XCIna2NBbGVydFRpdGxlQ2xhc3MnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJtZXNzYWdlLnN1bW1hcnkgfCBrY1Nhbml0aXplOiAnaHRtbCdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8IS0tIENvbnRlbnQgLS0+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltjb250ZW50XVwiPjwvbmctY29udGVudD5cbiAgICAgICAgICAgICAgICAgICAgQGlmICghIWF1dGggJiYgYXV0aD8uc2hvd1RyeUFub3RoZXJXYXlMaW5rKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8Zm9ybVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwia2Mtc2VsZWN0LXRyeS1hbm90aGVyLXdheS1mb3JtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYWN0aW9uXT1cInVybD8ubG9naW5BY3Rpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZD1cInBvc3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgW2tjQ2xhc3NdPVwiJ2tjRm9ybUdyb3VwQ2xhc3MnXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgW2tjQ2xhc3NdPVwiJ2tjRm9ybUdyb3VwQ2xhc3MnXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiaGlkZGVuXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwidHJ5QW5vdGhlcldheVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9XCJvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cInRyeS1hbm90aGVyLXdheVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInRyeUFub3RoZXJXYXkoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgJ2RvVHJ5QW5vdGhlcldheScgfCBtc2dTdHIgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Zvcm0+XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbc29jaWFsUHJvdmlkZXJzTm9kZV1cIj48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgIDwhLS0gSW5mbyBkaXNwbGF5IC0tPlxuICAgICAgICAgICAgICAgICAgICBAaWYgKGRpc3BsYXlJbmZvKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImtjLWluZm9cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY1NpZ25VcENsYXNzJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImtjLWluZm8td3JhcHBlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY0luZm9BcmVhV3JhcHBlckNsYXNzJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbaW5mb05vZGVdXCI+PC9uZy1jb250ZW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbn1cbiJdfQ==
@@ -18,7 +18,7 @@ export class CodeComponent extends ComponentReference {
18
18
  provide: ComponentReference,
19
19
  useExisting: forwardRef(() => CodeComponent)
20
20
  }
21
- ], usesInheritance: true, ngImport: i0, template: "@let code = kcContext.code;\n\n<kc-login-template>\n <ng-container headerNode>\n @if (code.success) {\n {{ 'codeSuccessTitle' | msgStr }}\n } @else {\n {{ 'codeErrorTitle' | msgStr: code.error }}\n }\n </ng-container>\n\n <ng-container content>\n <div id=\"kc-code\">\n @if (code.success) {\n <p>{{ 'copyCodeInstruction' | msgStr }}</p>\n <input\n id=\"code\"\n [kcClass]=\"'kcTextareaClass'\"\n defaultValue=\"{{ code.code }}\"\n />\n } @else {\n <p id=\"error\">{{ code.error }}</p>\n }\n </div>\n </ng-container>\n</kc-login-template>\n", dependencies: [{ kind: "pipe", type: MsgStrPipe, name: "msgStr" }, { kind: "component", type: TemplateComponent, selector: "kc-login-template", inputs: ["displayInfo", "displayMessage", "displayRequiredFields", "documentTitle", "bodyClassName"] }, { kind: "directive", type: KcClassDirective, selector: "[kcClass]", inputs: ["class", "ngClass", "kcClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
21
+ ], usesInheritance: true, ngImport: i0, template: "@let code = kcContext.code;\n\n<kc-login-template>\n <ng-container headerNode>\n @if (code.success) {\n {{ 'codeSuccessTitle' | msgStr }}\n } @else {\n {{ 'codeErrorTitle' | msgStr: code.error }}\n }\n </ng-container>\n\n <ng-container content>\n <div id=\"kc-code\">\n @if (code.success) {\n <p>{{ 'copyCodeInstruction' | msgStr }}</p>\n <input\n id=\"code\"\n [kcClass]=\"'kcTextareaClass'\"\n defaultValue=\"{{ code.code }}\"\n />\n } @else {\n <p id=\"error\">{{ code.error }}</p>\n }\n </div>\n </ng-container>\n</kc-login-template>\n", dependencies: [{ kind: "pipe", type: MsgStrPipe, name: "msgStr" }, { kind: "component", type: TemplateComponent, selector: "kc-login-template", inputs: ["displayInfo", "displayMessage", "displayRequiredFields", "documentTitle", "bodyClassName"] }, { kind: "directive", type: KcClassDirective, selector: "[kcClass]", inputs: ["class", "ngClass", "kcClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
22
22
  }
23
23
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: CodeComponent, decorators: [{
24
24
  type: Component,
@@ -27,6 +27,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImpor
27
27
  provide: ComponentReference,
28
28
  useExisting: forwardRef(() => CodeComponent)
29
29
  }
30
- ], template: "@let code = kcContext.code;\n\n<kc-login-template>\n <ng-container headerNode>\n @if (code.success) {\n {{ 'codeSuccessTitle' | msgStr }}\n } @else {\n {{ 'codeErrorTitle' | msgStr: code.error }}\n }\n </ng-container>\n\n <ng-container content>\n <div id=\"kc-code\">\n @if (code.success) {\n <p>{{ 'copyCodeInstruction' | msgStr }}</p>\n <input\n id=\"code\"\n [kcClass]=\"'kcTextareaClass'\"\n defaultValue=\"{{ code.code }}\"\n />\n } @else {\n <p id=\"error\">{{ code.error }}</p>\n }\n </div>\n </ng-container>\n</kc-login-template>\n" }]
30
+ ], template: "@let code = kcContext.code;\n\n<kc-login-template>\n <ng-container headerNode>\n @if (code.success) {\n {{ 'codeSuccessTitle' | msgStr }}\n } @else {\n {{ 'codeErrorTitle' | msgStr: code.error }}\n }\n </ng-container>\n\n <ng-container content>\n <div id=\"kc-code\">\n @if (code.success) {\n <p>{{ 'copyCodeInstruction' | msgStr }}</p>\n <input\n id=\"code\"\n [kcClass]=\"'kcTextareaClass'\"\n defaultValue=\"{{ code.code }}\"\n />\n } @else {\n <p id=\"error\">{{ code.error }}</p>\n }\n </div>\n </ng-container>\n</kc-login-template>\n" }]
31
31
  }] });
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rZXljbG9ha2lmeS1hbmd1bGFyL3NyYy9sb2dpbi9wYWdlcy9jb2RlL2NvZGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2V5Y2xvYWtpZnktYW5ndWxhci9zcmMvbG9naW4vcGFnZXMvY29kZS9jb2RlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RixPQUFPLEVBQ0gsT0FBTyxFQUNQLFVBQVUsRUFDVixlQUFlLEVBQ2xCLE1BQU0scUNBQXFDLENBQUM7QUFHN0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOERBQThELENBQUM7QUFDbEcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFDN0YsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFDNUYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtDQUErQyxDQUFDOztBQWUzRSxNQUFNLE9BQU8sYUFBYyxTQUFRLGtCQUFrQjtJQWJyRDs7UUFjSSxjQUFTLEdBQUcsTUFBTSxDQUE2QyxVQUFVLENBQUMsQ0FBQztRQUNsRSxvQkFBZSxHQUFHLE1BQU0sQ0FBVSxlQUFlLENBQUMsQ0FBQztRQUNuRCxZQUFPLEdBQUcsTUFBTSxDQUFvQyxPQUFPLENBQUMsQ0FBQztLQUN6RTs4R0FKWSxhQUFhO2tHQUFiLGFBQWEsc0RBUFg7WUFDUDtnQkFDSSxPQUFPLEVBQUUsa0JBQWtCO2dCQUMzQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGFBQWEsQ0FBQzthQUMvQztTQUNKLGlEQ3hCTCxnb0JBMEJBLHVDRFhjLFVBQVUsK0NBQUUsaUJBQWlCLG9LQUFFLGdCQUFnQjs7MkZBV2hELGFBQWE7a0JBYnpCLFNBQVM7aUNBQ00sSUFBSSxXQUNQLENBQUMsVUFBVSxFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixDQUFDLFlBQ2hELFNBQVMsbUJBRUYsdUJBQXVCLENBQUMsTUFBTSxhQUNwQzt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsa0JBQWtCOzRCQUMzQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxjQUFjLENBQUM7eUJBQy9DO3FCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgZm9yd2FyZFJlZiwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIENMQVNTRVMsXG4gICAgS0NfQ09OVEVYVCxcbiAgICBVU0VfREVGQVVMVF9DU1Ncbn0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbGliL3B1YmxpYy1hcGknO1xuaW1wb3J0IHsgQ2xhc3NLZXkgfSBmcm9tICdrZXljbG9ha2lmeS9sb2dpbi9saWIva2NDbHN4JztcbmltcG9ydCB7IEtjQ29udGV4dCB9IGZyb20gJ2tleWNsb2FraWZ5L2xvZ2luL0tjQ29udGV4dCc7XG5pbXBvcnQgeyBDb21wb25lbnRSZWZlcmVuY2UgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9jbGFzc2VzL2NvbXBvbmVudC1yZWZlcmVuY2UuY2xhc3MnO1xuaW1wb3J0IHsgVGVtcGxhdGVDb21wb25lbnQgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9jb250YWluZXJzL3RlbXBsYXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBLY0NsYXNzRGlyZWN0aXZlIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vZGlyZWN0aXZlcy9rYy1jbGFzcy5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgTXNnU3RyUGlwZSB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL3BpcGVzL21zZy1zdHIucGlwZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW01zZ1N0clBpcGUsIFRlbXBsYXRlQ29tcG9uZW50LCBLY0NsYXNzRGlyZWN0aXZlXSxcbiAgICBzZWxlY3RvcjogJ2tjLXJvb3QnLFxuICAgIHRlbXBsYXRlVXJsOiAnY29kZS5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IENvbXBvbmVudFJlZmVyZW5jZSxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IENvZGVDb21wb25lbnQpXG4gICAgICAgIH1cbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIENvZGVDb21wb25lbnQgZXh0ZW5kcyBDb21wb25lbnRSZWZlcmVuY2Uge1xuICAgIGtjQ29udGV4dCA9IGluamVjdDxFeHRyYWN0PEtjQ29udGV4dCwgeyBwYWdlSWQ6ICdjb2RlLmZ0bCcgfT4+KEtDX0NPTlRFWFQpO1xuICAgIG92ZXJyaWRlIGRvVXNlRGVmYXVsdENzcyA9IGluamVjdDxib29sZWFuPihVU0VfREVGQVVMVF9DU1MpO1xuICAgIG92ZXJyaWRlIGNsYXNzZXMgPSBpbmplY3Q8UGFydGlhbDxSZWNvcmQ8Q2xhc3NLZXksIHN0cmluZz4+PihDTEFTU0VTKTtcbn1cbiIsIkBsZXQgY29kZSA9IGtjQ29udGV4dC5jb2RlO1xuXG48a2MtbG9naW4tdGVtcGxhdGU+XG4gIDxuZy1jb250YWluZXIgaGVhZGVyTm9kZT5cbiAgICBAaWYgKGNvZGUuc3VjY2Vzcykge1xuICAgICAge3sgJ2NvZGVTdWNjZXNzVGl0bGUnIHwgbXNnU3RyIH19XG4gICAgfSBAZWxzZSB7XG4gICAgICB7eyAnY29kZUVycm9yVGl0bGUnIHwgbXNnU3RyOiBjb2RlLmVycm9yIH19XG4gICAgfVxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8bmctY29udGFpbmVyIGNvbnRlbnQ+XG4gICAgPGRpdiBpZD1cImtjLWNvZGVcIj5cbiAgICAgIEBpZiAoY29kZS5zdWNjZXNzKSB7XG4gICAgICAgIDxwPnt7ICdjb3B5Q29kZUluc3RydWN0aW9uJyB8IG1zZ1N0ciB9fTwvcD5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgaWQ9XCJjb2RlXCJcbiAgICAgICAgICBba2NDbGFzc109XCIna2NUZXh0YXJlYUNsYXNzJ1wiXG4gICAgICAgICAgZGVmYXVsdFZhbHVlPVwie3sgY29kZS5jb2RlIH19XCJcbiAgICAgICAgLz5cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICA8cCBpZD1cImVycm9yXCI+e3sgY29kZS5lcnJvciB9fTwvcD5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG48L2tjLWxvZ2luLXRlbXBsYXRlPlxuIl19
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rZXljbG9ha2lmeS1hbmd1bGFyL3NyYy9sb2dpbi9wYWdlcy9jb2RlL2NvZGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2V5Y2xvYWtpZnktYW5ndWxhci9zcmMvbG9naW4vcGFnZXMvY29kZS9jb2RlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RixPQUFPLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxlQUFlLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUczRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUNsRyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUM3RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUM1RixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0NBQStDLENBQUM7O0FBZTNFLE1BQU0sT0FBTyxhQUFjLFNBQVEsa0JBQWtCO0lBYnJEOztRQWNJLGNBQVMsR0FBRyxNQUFNLENBQTZDLFVBQVUsQ0FBQyxDQUFDO1FBQ2xFLG9CQUFlLEdBQUcsTUFBTSxDQUFVLGVBQWUsQ0FBQyxDQUFDO1FBQ25ELFlBQU8sR0FBRyxNQUFNLENBQW9DLE9BQU8sQ0FBQyxDQUFDO0tBQ3pFOzhHQUpZLGFBQWE7a0dBQWIsYUFBYSxzREFQWDtZQUNQO2dCQUNJLE9BQU8sRUFBRSxrQkFBa0I7Z0JBQzNCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsYUFBYSxDQUFDO2FBQy9DO1NBQ0osaURDcEJMLHd2QkEwQkEsdUNEZmMsVUFBVSwrQ0FBRSxpQkFBaUIsb0tBQUUsZ0JBQWdCOzsyRkFXaEQsYUFBYTtrQkFiekIsU0FBUztpQ0FDTSxJQUFJLFdBQ1AsQ0FBQyxVQUFVLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLENBQUMsWUFDaEQsU0FBUyxtQkFFRix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxrQkFBa0I7NEJBQzNCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLGNBQWMsQ0FBQzt5QkFDL0M7cUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBmb3J3YXJkUmVmLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENMQVNTRVMsIEtDX0NPTlRFWFQsIFVTRV9ERUZBVUxUX0NTUyB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xpYi9wdWJsaWMtYXBpJztcbmltcG9ydCB7IENsYXNzS2V5IH0gZnJvbSAna2V5Y2xvYWtpZnkvbG9naW4vbGliL2tjQ2xzeCc7XG5pbXBvcnQgeyBLY0NvbnRleHQgfSBmcm9tICdrZXljbG9ha2lmeS9sb2dpbi9LY0NvbnRleHQnO1xuaW1wb3J0IHsgQ29tcG9uZW50UmVmZXJlbmNlIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vY2xhc3Nlcy9jb21wb25lbnQtcmVmZXJlbmNlLmNsYXNzJztcbmltcG9ydCB7IFRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vY29udGFpbmVycy90ZW1wbGF0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgS2NDbGFzc0RpcmVjdGl2ZSB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL2RpcmVjdGl2ZXMva2MtY2xhc3MuZGlyZWN0aXZlJztcbmltcG9ydCB7IE1zZ1N0clBpcGUgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9waXBlcy9tc2ctc3RyLnBpcGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtNc2dTdHJQaXBlLCBUZW1wbGF0ZUNvbXBvbmVudCwgS2NDbGFzc0RpcmVjdGl2ZV0sXG4gICAgc2VsZWN0b3I6ICdrYy1yb290JyxcbiAgICB0ZW1wbGF0ZVVybDogJ2NvZGUuY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBDb21wb25lbnRSZWZlcmVuY2UsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBDb2RlQ29tcG9uZW50KVxuICAgICAgICB9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBDb2RlQ29tcG9uZW50IGV4dGVuZHMgQ29tcG9uZW50UmVmZXJlbmNlIHtcbiAgICBrY0NvbnRleHQgPSBpbmplY3Q8RXh0cmFjdDxLY0NvbnRleHQsIHsgcGFnZUlkOiAnY29kZS5mdGwnIH0+PihLQ19DT05URVhUKTtcbiAgICBvdmVycmlkZSBkb1VzZURlZmF1bHRDc3MgPSBpbmplY3Q8Ym9vbGVhbj4oVVNFX0RFRkFVTFRfQ1NTKTtcbiAgICBvdmVycmlkZSBjbGFzc2VzID0gaW5qZWN0PFBhcnRpYWw8UmVjb3JkPENsYXNzS2V5LCBzdHJpbmc+Pj4oQ0xBU1NFUyk7XG59XG4iLCJAbGV0IGNvZGUgPSBrY0NvbnRleHQuY29kZTtcblxuPGtjLWxvZ2luLXRlbXBsYXRlPlxuICAgIDxuZy1jb250YWluZXIgaGVhZGVyTm9kZT5cbiAgICAgICAgQGlmIChjb2RlLnN1Y2Nlc3MpIHtcbiAgICAgICAgICAgIHt7ICdjb2RlU3VjY2Vzc1RpdGxlJyB8IG1zZ1N0ciB9fVxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIHt7ICdjb2RlRXJyb3JUaXRsZScgfCBtc2dTdHI6IGNvZGUuZXJyb3IgfX1cbiAgICAgICAgfVxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLWNvbnRhaW5lciBjb250ZW50PlxuICAgICAgICA8ZGl2IGlkPVwia2MtY29kZVwiPlxuICAgICAgICAgICAgQGlmIChjb2RlLnN1Y2Nlc3MpIHtcbiAgICAgICAgICAgICAgICA8cD57eyAnY29weUNvZGVJbnN0cnVjdGlvbicgfCBtc2dTdHIgfX08L3A+XG4gICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgIGlkPVwiY29kZVwiXG4gICAgICAgICAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY1RleHRhcmVhQ2xhc3MnXCJcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdFZhbHVlPVwie3sgY29kZS5jb2RlIH19XCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgPHAgaWQ9XCJlcnJvclwiPnt7IGNvZGUuZXJyb3IgfX08L3A+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9rYy1sb2dpbi10ZW1wbGF0ZT5cbiJdfQ==