@keycloakify/angular 0.2.18 → 0.2.20

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 (94) hide show
  1. package/account/pages/federatedIdentity/federatedIdentity.component.d.ts +1 -1
  2. package/bin/187.index.js +13 -3
  3. package/bin/476.index.js +13 -3
  4. package/bin/671.index.js +13 -3
  5. package/bin/942.index.js +13 -3
  6. package/bin/index.js +20 -2
  7. package/fesm2022/keycloakify-angular-account-directives-kc-class.mjs +3 -7
  8. package/fesm2022/keycloakify-angular-account-directives-kc-class.mjs.map +1 -1
  9. package/fesm2022/keycloakify-angular-account-pages-account.mjs +3 -3
  10. package/fesm2022/keycloakify-angular-account-pages-applications.mjs +3 -3
  11. package/fesm2022/keycloakify-angular-account-pages-federatedIdentity.mjs +4 -4
  12. package/fesm2022/keycloakify-angular-account-pages-federatedIdentity.mjs.map +1 -1
  13. package/fesm2022/keycloakify-angular-account-pages-log.mjs +3 -3
  14. package/fesm2022/keycloakify-angular-account-pages-password.mjs +3 -3
  15. package/fesm2022/keycloakify-angular-account-pages-sessions.mjs +3 -3
  16. package/fesm2022/keycloakify-angular-account-pages-totp.mjs +3 -3
  17. package/fesm2022/keycloakify-angular-account-services-account-resource-injector.mjs +3 -3
  18. package/fesm2022/keycloakify-angular-account-services-i18n.mjs +3 -3
  19. package/fesm2022/keycloakify-angular-account-template.mjs +3 -3
  20. package/fesm2022/keycloakify-angular-account-template.mjs.map +1 -1
  21. package/fesm2022/keycloakify-angular-lib-directives-attributes.mjs +3 -3
  22. package/fesm2022/keycloakify-angular-lib-pipes-input-type.mjs +3 -3
  23. package/fesm2022/keycloakify-angular-lib-pipes-is-array-with-empty-object.mjs +3 -3
  24. package/fesm2022/keycloakify-angular-lib-pipes-kc-sanitize.mjs +3 -3
  25. package/fesm2022/keycloakify-angular-lib-pipes-to-array.mjs +3 -3
  26. package/fesm2022/keycloakify-angular-lib-pipes-to-number.mjs +3 -3
  27. package/fesm2022/keycloakify-angular-lib-services-resource-injector.mjs +3 -3
  28. package/fesm2022/keycloakify-angular-login-components-add-remove-buttons-multi-valued-attribute.mjs +3 -3
  29. package/fesm2022/keycloakify-angular-login-components-field-errors.mjs +3 -3
  30. package/fesm2022/keycloakify-angular-login-components-group-label.mjs +3 -3
  31. package/fesm2022/keycloakify-angular-login-components-input-field-by-type.mjs +3 -3
  32. package/fesm2022/keycloakify-angular-login-components-input-tag-selects.mjs +3 -3
  33. package/fesm2022/keycloakify-angular-login-components-input-tag.mjs +3 -3
  34. package/fesm2022/keycloakify-angular-login-components-logout-other-sessions.mjs +3 -3
  35. package/fesm2022/keycloakify-angular-login-components-password-wrapper.mjs +3 -3
  36. package/fesm2022/keycloakify-angular-login-components-select-tag.mjs +3 -3
  37. package/fesm2022/keycloakify-angular-login-components-textarea-tag.mjs +3 -3
  38. package/fesm2022/keycloakify-angular-login-components-user-profile-form-fields.mjs +7 -5
  39. package/fesm2022/keycloakify-angular-login-components-user-profile-form-fields.mjs.map +1 -1
  40. package/fesm2022/keycloakify-angular-login-directives-kc-class.mjs +3 -7
  41. package/fesm2022/keycloakify-angular-login-directives-kc-class.mjs.map +1 -1
  42. package/fesm2022/keycloakify-angular-login-pages-code.mjs +3 -3
  43. package/fesm2022/keycloakify-angular-login-pages-delete-account-confirm.mjs +3 -3
  44. package/fesm2022/keycloakify-angular-login-pages-delete-credential.mjs +3 -3
  45. package/fesm2022/keycloakify-angular-login-pages-error.mjs +3 -3
  46. package/fesm2022/keycloakify-angular-login-pages-frontchannel-logout.mjs +3 -3
  47. package/fesm2022/keycloakify-angular-login-pages-idp-review-user-profile.mjs +3 -3
  48. package/fesm2022/keycloakify-angular-login-pages-info.mjs +3 -3
  49. package/fesm2022/keycloakify-angular-login-pages-login-config-totp.mjs +3 -3
  50. package/fesm2022/keycloakify-angular-login-pages-login-idp-link-confirm-override.mjs +3 -3
  51. package/fesm2022/keycloakify-angular-login-pages-login-idp-link-confirm.mjs +3 -3
  52. package/fesm2022/keycloakify-angular-login-pages-login-idp-link-email.mjs +3 -3
  53. package/fesm2022/keycloakify-angular-login-pages-login-oauth-grant.mjs +3 -3
  54. package/fesm2022/keycloakify-angular-login-pages-login-oauth2-device-verify-user-code.mjs +3 -3
  55. package/fesm2022/keycloakify-angular-login-pages-login-otp.mjs +3 -3
  56. package/fesm2022/keycloakify-angular-login-pages-login-page-expired.mjs +3 -3
  57. package/fesm2022/keycloakify-angular-login-pages-login-passkeys-conditional-authenticate.mjs +3 -3
  58. package/fesm2022/keycloakify-angular-login-pages-login-password.mjs +3 -3
  59. package/fesm2022/keycloakify-angular-login-pages-login-recovery-authn-code-config.mjs +3 -3
  60. package/fesm2022/keycloakify-angular-login-pages-login-recovery-authn-code-input.mjs +3 -3
  61. package/fesm2022/keycloakify-angular-login-pages-login-reset-otp.mjs +3 -3
  62. package/fesm2022/keycloakify-angular-login-pages-login-reset-password.mjs +3 -3
  63. package/fesm2022/keycloakify-angular-login-pages-login-update-password.mjs +3 -3
  64. package/fesm2022/keycloakify-angular-login-pages-login-update-profile.mjs +3 -3
  65. package/fesm2022/keycloakify-angular-login-pages-login-username.mjs +3 -3
  66. package/fesm2022/keycloakify-angular-login-pages-login-verify-email.mjs +3 -3
  67. package/fesm2022/keycloakify-angular-login-pages-login-x509-info.mjs +3 -3
  68. package/fesm2022/keycloakify-angular-login-pages-login.mjs +3 -3
  69. package/fesm2022/keycloakify-angular-login-pages-logout-confirm.mjs +3 -3
  70. package/fesm2022/keycloakify-angular-login-pages-register.mjs +3 -3
  71. package/fesm2022/keycloakify-angular-login-pages-saml-post-form.mjs +3 -3
  72. package/fesm2022/keycloakify-angular-login-pages-select-authenticator.mjs +3 -3
  73. package/fesm2022/keycloakify-angular-login-pages-terms.mjs +3 -3
  74. package/fesm2022/keycloakify-angular-login-pages-update-email.mjs +3 -3
  75. package/fesm2022/keycloakify-angular-login-pages-webauthn-authenticate.mjs +3 -3
  76. package/fesm2022/keycloakify-angular-login-pages-webauthn-error.mjs +3 -3
  77. package/fesm2022/keycloakify-angular-login-pages-webauthn-register.mjs +3 -3
  78. package/fesm2022/keycloakify-angular-login-services-i18n.mjs +3 -3
  79. package/fesm2022/keycloakify-angular-login-services-login-resource-injector.mjs +3 -3
  80. package/fesm2022/keycloakify-angular-login-services-user-profile-form.mjs +4 -4
  81. package/fesm2022/keycloakify-angular-login-services-user-profile-form.mjs.map +1 -1
  82. package/fesm2022/keycloakify-angular-login-template.mjs +3 -3
  83. package/login/components/user-profile-form-fields/user-profile-form-fields.component.d.ts +1 -0
  84. package/package.json +1 -1
  85. package/src/account/directives/kc-class/kc-class.directive.ts +2 -4
  86. package/src/account/pages/federatedIdentity/federatedIdentity.component.ts +1 -1
  87. package/src/account/template/template.component.ts +1 -3
  88. package/src/bin/tools/getThisCodebaseRootDirPath.ts +1 -1
  89. package/src/bin/tools/runPrettier.ts +14 -2
  90. package/src/eslint.config.js +5 -0
  91. package/src/login/components/user-profile-form-fields/user-profile-form-fields.component.html +9 -0
  92. package/src/login/components/user-profile-form-fields/user-profile-form-fields.component.ts +2 -0
  93. package/src/login/directives/kc-class/kc-class.directive.ts +2 -4
  94. package/src/login/services/user-profile-form/user-profile-form.service.ts +1 -1
@@ -10,5 +10,5 @@ export declare class FederatedIdentityComponent extends ComponentReference {
10
10
  classes: Partial<Record<ClassKey, string>>;
11
11
  active: string;
12
12
  static ɵfac: i0.ɵɵFactoryDeclaration<FederatedIdentityComponent, never>;
13
- static ɵcmp: i0.ɵɵComponentDeclaration<FederatedIdentityComponent, "kc-federatedIdentity", never, {}, {}, never, never, true, never>;
13
+ static ɵcmp: i0.ɵɵComponentDeclaration<FederatedIdentityComponent, "kc-federated-identity", never, {}, {}, never, never, true, never>;
14
14
  }
package/bin/187.index.js CHANGED
@@ -162,7 +162,7 @@ async function command(params) {
162
162
 
163
163
  const __dirname = path__WEBPACK_IMPORTED_MODULE_1__.dirname(url__WEBPACK_IMPORTED_MODULE_2__.fileURLToPath(import.meta.url));
164
164
  function getThisCodebaseRootDirPath_rec(dirPath) {
165
- if (fs__WEBPACK_IMPORTED_MODULE_0__.existsSync(path__WEBPACK_IMPORTED_MODULE_1__.join(dirPath, 'package.json'))) {
165
+ if (fs__WEBPACK_IMPORTED_MODULE_0__.existsSync(path__WEBPACK_IMPORTED_MODULE_1__.join(dirPath, 'LICENSE'))) {
166
166
  return dirPath;
167
167
  }
168
168
  return getThisCodebaseRootDirPath_rec(path__WEBPACK_IMPORTED_MODULE_1__.join(dirPath, '..'));
@@ -248,7 +248,7 @@ function readThisNpmPackageVersion() {
248
248
  /***/ }),
249
249
 
250
250
  /***/ 915:
251
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
251
+ /***/ ((module, __webpack_exports__, __webpack_require__) => {
252
252
 
253
253
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
254
254
  /* harmony export */ JS: () => (/* binding */ runPrettier),
@@ -268,6 +268,7 @@ function readThisNpmPackageVersion() {
268
268
  /* harmony import */ var tsafe_is__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(289);
269
269
  /* harmony import */ var tsafe_symToStr__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(886);
270
270
  /* harmony import */ var _readThisNpmPackageVersion__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(972);
271
+ /* module decorator */ module = __webpack_require__.hmd(module);
271
272
 
272
273
 
273
274
 
@@ -304,7 +305,16 @@ async function getPrettier() {
304
305
  // So we do a sketchy eval to bypass ncc.
305
306
  // We make sure to only do that when linking, otherwise we import properly.
306
307
  if ((0,_readThisNpmPackageVersion__WEBPACK_IMPORTED_MODULE_7__/* .readThisNpmPackageVersion */ .M)().startsWith('0.0.0')) {
307
- eval(`${(0,tsafe_symToStr__WEBPACK_IMPORTED_MODULE_8__/* .symToStr */ .I)({ prettier })} = require("${(0,path__WEBPACK_IMPORTED_MODULE_0__.resolve)((0,path__WEBPACK_IMPORTED_MODULE_0__.join)((0,_nodeModulesBinDirPath__WEBPACK_IMPORTED_MODULE_6__/* .getNodeModulesBinDirPath */ .p)(), '..', 'prettier'))}")`);
308
+ const prettierDirPath = (0,path__WEBPACK_IMPORTED_MODULE_0__.resolve)((0,path__WEBPACK_IMPORTED_MODULE_0__.join)((0,_nodeModulesBinDirPath__WEBPACK_IMPORTED_MODULE_6__/* .getNodeModulesBinDirPath */ .p)(), '..', 'prettier'));
309
+ const isCJS = true && module.exports;
310
+ if (isCJS) {
311
+ eval(`${(0,tsafe_symToStr__WEBPACK_IMPORTED_MODULE_8__/* .symToStr */ .I)({ prettier })} = require("${prettierDirPath}")`);
312
+ }
313
+ else {
314
+ prettier = await new Promise(_resolve => {
315
+ eval(`import("file:///${(0,path__WEBPACK_IMPORTED_MODULE_0__.join)(prettierDirPath, 'index.mjs').replace(/\\/g, '/')}").then(prettier => _resolve(prettier))`);
316
+ });
317
+ }
308
318
  (0,tsafe_assert__WEBPACK_IMPORTED_MODULE_2__/* .assert */ .v)(!(0,tsafe_is__WEBPACK_IMPORTED_MODULE_4__.is)(prettier));
309
319
  break import_prettier;
310
320
  }
package/bin/476.index.js CHANGED
@@ -19,7 +19,7 @@ export const modules = {
19
19
 
20
20
  const __dirname = path__WEBPACK_IMPORTED_MODULE_1__.dirname(url__WEBPACK_IMPORTED_MODULE_2__.fileURLToPath(import.meta.url));
21
21
  function getThisCodebaseRootDirPath_rec(dirPath) {
22
- if (fs__WEBPACK_IMPORTED_MODULE_0__.existsSync(path__WEBPACK_IMPORTED_MODULE_1__.join(dirPath, 'package.json'))) {
22
+ if (fs__WEBPACK_IMPORTED_MODULE_0__.existsSync(path__WEBPACK_IMPORTED_MODULE_1__.join(dirPath, 'LICENSE'))) {
23
23
  return dirPath;
24
24
  }
25
25
  return getThisCodebaseRootDirPath_rec(path__WEBPACK_IMPORTED_MODULE_1__.join(dirPath, '..'));
@@ -105,7 +105,7 @@ function readThisNpmPackageVersion() {
105
105
  /***/ }),
106
106
 
107
107
  /***/ 915:
108
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
108
+ /***/ ((module, __webpack_exports__, __webpack_require__) => {
109
109
 
110
110
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
111
111
  /* harmony export */ JS: () => (/* binding */ runPrettier),
@@ -125,6 +125,7 @@ function readThisNpmPackageVersion() {
125
125
  /* harmony import */ var tsafe_is__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(289);
126
126
  /* harmony import */ var tsafe_symToStr__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(886);
127
127
  /* harmony import */ var _readThisNpmPackageVersion__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(972);
128
+ /* module decorator */ module = __webpack_require__.hmd(module);
128
129
 
129
130
 
130
131
 
@@ -161,7 +162,16 @@ async function getPrettier() {
161
162
  // So we do a sketchy eval to bypass ncc.
162
163
  // We make sure to only do that when linking, otherwise we import properly.
163
164
  if ((0,_readThisNpmPackageVersion__WEBPACK_IMPORTED_MODULE_7__/* .readThisNpmPackageVersion */ .M)().startsWith('0.0.0')) {
164
- eval(`${(0,tsafe_symToStr__WEBPACK_IMPORTED_MODULE_8__/* .symToStr */ .I)({ prettier })} = require("${(0,path__WEBPACK_IMPORTED_MODULE_0__.resolve)((0,path__WEBPACK_IMPORTED_MODULE_0__.join)((0,_nodeModulesBinDirPath__WEBPACK_IMPORTED_MODULE_6__/* .getNodeModulesBinDirPath */ .p)(), '..', 'prettier'))}")`);
165
+ const prettierDirPath = (0,path__WEBPACK_IMPORTED_MODULE_0__.resolve)((0,path__WEBPACK_IMPORTED_MODULE_0__.join)((0,_nodeModulesBinDirPath__WEBPACK_IMPORTED_MODULE_6__/* .getNodeModulesBinDirPath */ .p)(), '..', 'prettier'));
166
+ const isCJS = true && module.exports;
167
+ if (isCJS) {
168
+ eval(`${(0,tsafe_symToStr__WEBPACK_IMPORTED_MODULE_8__/* .symToStr */ .I)({ prettier })} = require("${prettierDirPath}")`);
169
+ }
170
+ else {
171
+ prettier = await new Promise(_resolve => {
172
+ eval(`import("file:///${(0,path__WEBPACK_IMPORTED_MODULE_0__.join)(prettierDirPath, 'index.mjs').replace(/\\/g, '/')}").then(prettier => _resolve(prettier))`);
173
+ });
174
+ }
165
175
  (0,tsafe_assert__WEBPACK_IMPORTED_MODULE_2__/* .assert */ .v)(!(0,tsafe_is__WEBPACK_IMPORTED_MODULE_4__.is)(prettier));
166
176
  break import_prettier;
167
177
  }
package/bin/671.index.js CHANGED
@@ -1113,7 +1113,7 @@ async function command(params) {
1113
1113
 
1114
1114
  const __dirname = path__WEBPACK_IMPORTED_MODULE_1__.dirname(url__WEBPACK_IMPORTED_MODULE_2__.fileURLToPath(import.meta.url));
1115
1115
  function getThisCodebaseRootDirPath_rec(dirPath) {
1116
- if (fs__WEBPACK_IMPORTED_MODULE_0__.existsSync(path__WEBPACK_IMPORTED_MODULE_1__.join(dirPath, 'package.json'))) {
1116
+ if (fs__WEBPACK_IMPORTED_MODULE_0__.existsSync(path__WEBPACK_IMPORTED_MODULE_1__.join(dirPath, 'LICENSE'))) {
1117
1117
  return dirPath;
1118
1118
  }
1119
1119
  return getThisCodebaseRootDirPath_rec(path__WEBPACK_IMPORTED_MODULE_1__.join(dirPath, '..'));
@@ -1199,7 +1199,7 @@ function readThisNpmPackageVersion() {
1199
1199
  /***/ }),
1200
1200
 
1201
1201
  /***/ 915:
1202
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1202
+ /***/ ((module, __webpack_exports__, __webpack_require__) => {
1203
1203
 
1204
1204
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1205
1205
  /* harmony export */ JS: () => (/* binding */ runPrettier),
@@ -1219,6 +1219,7 @@ function readThisNpmPackageVersion() {
1219
1219
  /* harmony import */ var tsafe_is__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(289);
1220
1220
  /* harmony import */ var tsafe_symToStr__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(886);
1221
1221
  /* harmony import */ var _readThisNpmPackageVersion__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(972);
1222
+ /* module decorator */ module = __webpack_require__.hmd(module);
1222
1223
 
1223
1224
 
1224
1225
 
@@ -1255,7 +1256,16 @@ async function getPrettier() {
1255
1256
  // So we do a sketchy eval to bypass ncc.
1256
1257
  // We make sure to only do that when linking, otherwise we import properly.
1257
1258
  if ((0,_readThisNpmPackageVersion__WEBPACK_IMPORTED_MODULE_7__/* .readThisNpmPackageVersion */ .M)().startsWith('0.0.0')) {
1258
- eval(`${(0,tsafe_symToStr__WEBPACK_IMPORTED_MODULE_8__/* .symToStr */ .I)({ prettier })} = require("${(0,path__WEBPACK_IMPORTED_MODULE_0__.resolve)((0,path__WEBPACK_IMPORTED_MODULE_0__.join)((0,_nodeModulesBinDirPath__WEBPACK_IMPORTED_MODULE_6__/* .getNodeModulesBinDirPath */ .p)(), '..', 'prettier'))}")`);
1259
+ const prettierDirPath = (0,path__WEBPACK_IMPORTED_MODULE_0__.resolve)((0,path__WEBPACK_IMPORTED_MODULE_0__.join)((0,_nodeModulesBinDirPath__WEBPACK_IMPORTED_MODULE_6__/* .getNodeModulesBinDirPath */ .p)(), '..', 'prettier'));
1260
+ const isCJS = true && module.exports;
1261
+ if (isCJS) {
1262
+ eval(`${(0,tsafe_symToStr__WEBPACK_IMPORTED_MODULE_8__/* .symToStr */ .I)({ prettier })} = require("${prettierDirPath}")`);
1263
+ }
1264
+ else {
1265
+ prettier = await new Promise(_resolve => {
1266
+ eval(`import("file:///${(0,path__WEBPACK_IMPORTED_MODULE_0__.join)(prettierDirPath, 'index.mjs').replace(/\\/g, '/')}").then(prettier => _resolve(prettier))`);
1267
+ });
1268
+ }
1259
1269
  (0,tsafe_assert__WEBPACK_IMPORTED_MODULE_2__/* .assert */ .v)(!(0,tsafe_is__WEBPACK_IMPORTED_MODULE_4__.is)(prettier));
1260
1270
  break import_prettier;
1261
1271
  }
package/bin/942.index.js CHANGED
@@ -691,7 +691,7 @@ async function command(params) {
691
691
 
692
692
  const __dirname = path__WEBPACK_IMPORTED_MODULE_1__.dirname(url__WEBPACK_IMPORTED_MODULE_2__.fileURLToPath(import.meta.url));
693
693
  function getThisCodebaseRootDirPath_rec(dirPath) {
694
- if (fs__WEBPACK_IMPORTED_MODULE_0__.existsSync(path__WEBPACK_IMPORTED_MODULE_1__.join(dirPath, 'package.json'))) {
694
+ if (fs__WEBPACK_IMPORTED_MODULE_0__.existsSync(path__WEBPACK_IMPORTED_MODULE_1__.join(dirPath, 'LICENSE'))) {
695
695
  return dirPath;
696
696
  }
697
697
  return getThisCodebaseRootDirPath_rec(path__WEBPACK_IMPORTED_MODULE_1__.join(dirPath, '..'));
@@ -777,7 +777,7 @@ function readThisNpmPackageVersion() {
777
777
  /***/ }),
778
778
 
779
779
  /***/ 915:
780
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
780
+ /***/ ((module, __webpack_exports__, __webpack_require__) => {
781
781
 
782
782
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
783
783
  /* harmony export */ JS: () => (/* binding */ runPrettier),
@@ -797,6 +797,7 @@ function readThisNpmPackageVersion() {
797
797
  /* harmony import */ var tsafe_is__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(289);
798
798
  /* harmony import */ var tsafe_symToStr__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(886);
799
799
  /* harmony import */ var _readThisNpmPackageVersion__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(972);
800
+ /* module decorator */ module = __webpack_require__.hmd(module);
800
801
 
801
802
 
802
803
 
@@ -833,7 +834,16 @@ async function getPrettier() {
833
834
  // So we do a sketchy eval to bypass ncc.
834
835
  // We make sure to only do that when linking, otherwise we import properly.
835
836
  if ((0,_readThisNpmPackageVersion__WEBPACK_IMPORTED_MODULE_7__/* .readThisNpmPackageVersion */ .M)().startsWith('0.0.0')) {
836
- eval(`${(0,tsafe_symToStr__WEBPACK_IMPORTED_MODULE_8__/* .symToStr */ .I)({ prettier })} = require("${(0,path__WEBPACK_IMPORTED_MODULE_0__.resolve)((0,path__WEBPACK_IMPORTED_MODULE_0__.join)((0,_nodeModulesBinDirPath__WEBPACK_IMPORTED_MODULE_6__/* .getNodeModulesBinDirPath */ .p)(), '..', 'prettier'))}")`);
837
+ const prettierDirPath = (0,path__WEBPACK_IMPORTED_MODULE_0__.resolve)((0,path__WEBPACK_IMPORTED_MODULE_0__.join)((0,_nodeModulesBinDirPath__WEBPACK_IMPORTED_MODULE_6__/* .getNodeModulesBinDirPath */ .p)(), '..', 'prettier'));
838
+ const isCJS = true && module.exports;
839
+ if (isCJS) {
840
+ eval(`${(0,tsafe_symToStr__WEBPACK_IMPORTED_MODULE_8__/* .symToStr */ .I)({ prettier })} = require("${prettierDirPath}")`);
841
+ }
842
+ else {
843
+ prettier = await new Promise(_resolve => {
844
+ eval(`import("file:///${(0,path__WEBPACK_IMPORTED_MODULE_0__.join)(prettierDirPath, 'index.mjs').replace(/\\/g, '/')}").then(prettier => _resolve(prettier))`);
845
+ });
846
+ }
837
847
  (0,tsafe_assert__WEBPACK_IMPORTED_MODULE_2__/* .assert */ .v)(!(0,tsafe_is__WEBPACK_IMPORTED_MODULE_4__.is)(prettier));
838
848
  break import_prettier;
839
849
  }
package/bin/index.js CHANGED
@@ -940,8 +940,8 @@ function is(value) {
940
940
  /******/ }
941
941
  /******/ // Create a new module (and put it into the cache)
942
942
  /******/ var module = __webpack_module_cache__[moduleId] = {
943
- /******/ // no module.id needed
944
- /******/ // no module.loaded needed
943
+ /******/ id: moduleId,
944
+ /******/ loaded: false,
945
945
  /******/ exports: {}
946
946
  /******/ };
947
947
  /******/
@@ -954,6 +954,9 @@ function is(value) {
954
954
  /******/ if(threw) delete __webpack_module_cache__[moduleId];
955
955
  /******/ }
956
956
  /******/
957
+ /******/ // Flag the module as loaded
958
+ /******/ module.loaded = true;
959
+ /******/
957
960
  /******/ // Return the exports of the module
958
961
  /******/ return module.exports;
959
962
  /******/ }
@@ -1008,6 +1011,21 @@ function is(value) {
1008
1011
  /******/ };
1009
1012
  /******/ })();
1010
1013
  /******/
1014
+ /******/ /* webpack/runtime/harmony module decorator */
1015
+ /******/ (() => {
1016
+ /******/ __nccwpck_require__.hmd = (module) => {
1017
+ /******/ module = Object.create(module);
1018
+ /******/ if (!module.children) module.children = [];
1019
+ /******/ Object.defineProperty(module, 'exports', {
1020
+ /******/ enumerable: true,
1021
+ /******/ set: () => {
1022
+ /******/ throw new Error('ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: ' + module.id);
1023
+ /******/ }
1024
+ /******/ });
1025
+ /******/ return module;
1026
+ /******/ };
1027
+ /******/ })();
1028
+ /******/
1011
1029
  /******/ /* webpack/runtime/hasOwnProperty shorthand */
1012
1030
  /******/ (() => {
1013
1031
  /******/ __nccwpck_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
@@ -4,7 +4,6 @@ import { getKcClsx } from 'keycloakify/account/lib/kcClsx';
4
4
  import { ComponentReference } from '@keycloakify/angular/account/classes/component-reference';
5
5
 
6
6
  /* eslint-disable @typescript-eslint/no-explicit-any */
7
- /* eslint-disable @typescript-eslint/consistent-indexed-object-style */
8
7
  class KcClassDirective {
9
8
  constructor() {
10
9
  this.initialClasses = [];
@@ -16,15 +15,12 @@ class KcClassDirective {
16
15
  #renderer;
17
16
  #el;
18
17
  #host;
19
- // eslint-disable-next-line @angular-eslint/no-input-rename
20
18
  set klass(value) {
21
19
  this.initialClasses = value != null ? value.trim().split(/\s+/) : [];
22
20
  }
23
- // eslint-disable-next-line @angular-eslint/no-input-rename
24
21
  set ngClass(value) {
25
22
  this.rawClass = typeof value === 'string' ? value.trim().split(/\s+/) : value;
26
23
  }
27
- // eslint-disable-next-line @angular-eslint/no-input-rename
28
24
  set kcClass(value) {
29
25
  this.rawKcClass =
30
26
  typeof value === 'string' ? value.trim().split(/\s+/) : value;
@@ -123,10 +119,10 @@ class KcClassDirective {
123
119
  });
124
120
  }
125
121
  }
126
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: KcClassDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
127
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.1", type: KcClassDirective, isStandalone: true, selector: "[kcClass]", inputs: { klass: ["class", "klass"], ngClass: "ngClass", kcClass: "kcClass" }, ngImport: i0 }); }
122
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.2", ngImport: i0, type: KcClassDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
123
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.2", type: KcClassDirective, isStandalone: true, selector: "[kcClass]", inputs: { klass: ["class", "klass"], ngClass: "ngClass", kcClass: "kcClass" }, ngImport: i0 }); }
128
124
  }
129
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: KcClassDirective, decorators: [{
125
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.2", ngImport: i0, type: KcClassDirective, decorators: [{
130
126
  type: Directive,
131
127
  args: [{ selector: '[kcClass]' }]
132
128
  }], propDecorators: { klass: [{
@@ -1 +1 @@
1
- {"version":3,"file":"keycloakify-angular-account-directives-kc-class.mjs","sources":["../../src/account/directives/kc-class/kc-class.directive.ts","../../src/account/directives/kc-class/keycloakify-angular-account-directives-kc-class.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/consistent-indexed-object-style */\nimport {\n Directive,\n DoCheck,\n ElementRef,\n inject,\n Input,\n isDevMode,\n Renderer2,\n ɵstringify as stringify\n} from '@angular/core';\nimport { ClassKey } from 'keycloakify/account';\nimport { getKcClsx } from 'keycloakify/account/lib/kcClsx';\nimport { ComponentReference } from '@keycloakify/angular/account/classes/component-reference';\n\ninterface CssClassState {\n // PERF: could use a bit mask to represent state as all fields are boolean flags\n enabled: boolean;\n changed: boolean;\n touched: boolean;\n}\n\ntype KcClassSupportedTypes =\n | ClassKey[]\n | Set<ClassKey>\n | Partial<{ [key in ClassKey]: any }>\n | null\n | undefined;\n\ntype NgClassSupportedTypes =\n | string[]\n | Set<string>\n | { [key: string]: any }\n | null\n | undefined;\n\n@Directive({ selector: '[kcClass]' })\nexport class KcClassDirective implements DoCheck {\n private initialClasses: string[] = [];\n private rawClass: NgClassSupportedTypes;\n private rawKcClass: KcClassSupportedTypes;\n\n private stateMap = new Map<string | ClassKey, CssClassState>();\n readonly #renderer = inject(Renderer2);\n readonly #el = inject(ElementRef);\n readonly #host = inject(ComponentReference);\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('class')\n set klass(value: string) {\n this.initialClasses = value != null ? value.trim().split(/\\s+/) : [];\n }\n\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('ngClass')\n set ngClass(value: string | NgClassSupportedTypes) {\n this.rawClass = typeof value === 'string' ? value.trim().split(/\\s+/) : value;\n }\n\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('kcClass')\n set kcClass(value: ClassKey | KcClassSupportedTypes) {\n this.rawKcClass =\n typeof value === 'string' ? (value.trim().split(/\\s+/) as ClassKey[]) : value;\n }\n\n ngDoCheck(): void {\n for (const klass of this.initialClasses) {\n this._updateState(klass, true);\n }\n // classes from the [ngClass] binding\n const rawClass = this.rawClass;\n if (Array.isArray(rawClass) || rawClass instanceof Set) {\n for (const klass of rawClass) {\n this._updateState(klass, true);\n }\n } else if (rawClass != null) {\n for (const klass of Object.keys(rawClass)) {\n this._updateState(klass, Boolean(rawClass[klass]));\n }\n }\n\n // classes from the [kcClass] binding\n const rawKcClass = this.rawKcClass;\n if (Array.isArray(rawKcClass) || rawKcClass instanceof Set) {\n for (const klass of rawKcClass) {\n this._updateState(klass, true, true);\n }\n } else if (rawKcClass != null) {\n for (const klass of Object.keys(rawKcClass)) {\n this._updateState(klass, Boolean(rawKcClass[klass as ClassKey]), true);\n }\n }\n\n this._applyStateDiff();\n }\n\n private _updateState(\n klass: string | ClassKey,\n nextEnabled: boolean,\n kcClsxCheck = false\n ) {\n const state = this.stateMap.get(klass);\n if (state !== undefined) {\n if (state.enabled !== nextEnabled) {\n state.changed = true;\n state.enabled = nextEnabled;\n }\n state.touched = true;\n } else {\n let klassChecked = klass;\n if (kcClsxCheck) {\n const doUseDefaultCss = this.#host.doUseDefaultCss ?? true;\n const classes = {\n ...(this.#host.classes ?? {}),\n ...(this.#host.additionalClasses ?? {})\n };\n const kcClsx = getKcClsx({ doUseDefaultCss, classes }).kcClsx;\n klassChecked = kcClsx(klass as ClassKey);\n }\n this.stateMap.set(klassChecked, {\n enabled: nextEnabled,\n changed: true,\n touched: true\n });\n }\n }\n\n private _applyStateDiff() {\n for (const stateEntry of this.stateMap) {\n const klass = stateEntry[0];\n const state = stateEntry[1];\n\n if (state.changed) {\n this._toggleClass(klass, state.enabled);\n state.changed = false;\n } else if (!state.touched) {\n // A class that was previously active got removed from the new collection of classes -\n // remove from the DOM as well.\n if (state.enabled) {\n this._toggleClass(klass, false);\n }\n this.stateMap.delete(klass);\n }\n\n state.touched = false;\n }\n }\n\n private _toggleClass(klass: string, enabled: boolean): void {\n if (isDevMode()) {\n if (typeof klass !== 'string') {\n throw new Error(\n `NgClass can only toggle CSS classes expressed as strings, got ${stringify(klass)}`\n );\n }\n }\n\n klass = klass.trim();\n if (klass.length > 0) {\n klass.split(/\\s+/).forEach(klass => {\n if (enabled) {\n this.#renderer.addClass(this.#el.nativeElement, klass);\n } else {\n this.#renderer.removeClass(this.#el.nativeElement, klass);\n }\n });\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["stringify"],"mappings":"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"}
1
+ {"version":3,"file":"keycloakify-angular-account-directives-kc-class.mjs","sources":["../../src/account/directives/kc-class/kc-class.directive.ts","../../src/account/directives/kc-class/keycloakify-angular-account-directives-kc-class.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport {\n Directive,\n DoCheck,\n ElementRef,\n inject,\n Input,\n isDevMode,\n Renderer2,\n ɵstringify as stringify\n} from '@angular/core';\nimport { ClassKey } from 'keycloakify/account';\nimport { getKcClsx } from 'keycloakify/account/lib/kcClsx';\nimport { ComponentReference } from '@keycloakify/angular/account/classes/component-reference';\n\ninterface CssClassState {\n // PERF: could use a bit mask to represent state as all fields are boolean flags\n enabled: boolean;\n changed: boolean;\n touched: boolean;\n}\n\ntype KcClassSupportedTypes =\n | ClassKey[]\n | Set<ClassKey>\n | Partial<{ [key in ClassKey]: any }>\n | null\n | undefined;\n\ntype NgClassSupportedTypes =\n | string[]\n | Set<string>\n | { [key: string]: any }\n | null\n | undefined;\n\n@Directive({ selector: '[kcClass]' })\nexport class KcClassDirective implements DoCheck {\n private initialClasses: string[] = [];\n private rawClass: NgClassSupportedTypes;\n private rawKcClass: KcClassSupportedTypes;\n\n private stateMap = new Map<string | ClassKey, CssClassState>();\n readonly #renderer = inject(Renderer2);\n readonly #el = inject(ElementRef);\n readonly #host = inject(ComponentReference);\n\n @Input('class')\n set klass(value: string) {\n this.initialClasses = value != null ? value.trim().split(/\\s+/) : [];\n }\n\n @Input('ngClass')\n set ngClass(value: string | NgClassSupportedTypes) {\n this.rawClass = typeof value === 'string' ? value.trim().split(/\\s+/) : value;\n }\n\n @Input('kcClass')\n set kcClass(value: ClassKey | KcClassSupportedTypes) {\n this.rawKcClass =\n typeof value === 'string' ? (value.trim().split(/\\s+/) as ClassKey[]) : value;\n }\n\n ngDoCheck(): void {\n for (const klass of this.initialClasses) {\n this._updateState(klass, true);\n }\n // classes from the [ngClass] binding\n const rawClass = this.rawClass;\n if (Array.isArray(rawClass) || rawClass instanceof Set) {\n for (const klass of rawClass) {\n this._updateState(klass, true);\n }\n } else if (rawClass != null) {\n for (const klass of Object.keys(rawClass)) {\n this._updateState(klass, Boolean(rawClass[klass]));\n }\n }\n\n // classes from the [kcClass] binding\n const rawKcClass = this.rawKcClass;\n if (Array.isArray(rawKcClass) || rawKcClass instanceof Set) {\n for (const klass of rawKcClass) {\n this._updateState(klass, true, true);\n }\n } else if (rawKcClass != null) {\n for (const klass of Object.keys(rawKcClass)) {\n this._updateState(klass, Boolean(rawKcClass[klass as ClassKey]), true);\n }\n }\n\n this._applyStateDiff();\n }\n\n private _updateState(\n klass: string | ClassKey,\n nextEnabled: boolean,\n kcClsxCheck = false\n ) {\n const state = this.stateMap.get(klass);\n if (state !== undefined) {\n if (state.enabled !== nextEnabled) {\n state.changed = true;\n state.enabled = nextEnabled;\n }\n state.touched = true;\n } else {\n let klassChecked = klass;\n if (kcClsxCheck) {\n const doUseDefaultCss = this.#host.doUseDefaultCss ?? true;\n const classes = {\n ...(this.#host.classes ?? {}),\n ...(this.#host.additionalClasses ?? {})\n };\n const kcClsx = getKcClsx({ doUseDefaultCss, classes }).kcClsx;\n klassChecked = kcClsx(klass as ClassKey);\n }\n this.stateMap.set(klassChecked, {\n enabled: nextEnabled,\n changed: true,\n touched: true\n });\n }\n }\n\n private _applyStateDiff() {\n for (const stateEntry of this.stateMap) {\n const klass = stateEntry[0];\n const state = stateEntry[1];\n\n if (state.changed) {\n this._toggleClass(klass, state.enabled);\n state.changed = false;\n } else if (!state.touched) {\n // A class that was previously active got removed from the new collection of classes -\n // remove from the DOM as well.\n if (state.enabled) {\n this._toggleClass(klass, false);\n }\n this.stateMap.delete(klass);\n }\n\n state.touched = false;\n }\n }\n\n private _toggleClass(klass: string, enabled: boolean): void {\n if (isDevMode()) {\n if (typeof klass !== 'string') {\n throw new Error(\n `NgClass can only toggle CSS classes expressed as strings, got ${stringify(klass)}`\n );\n }\n }\n\n klass = klass.trim();\n if (klass.length > 0) {\n klass.split(/\\s+/).forEach(klass => {\n if (enabled) {\n this.#renderer.addClass(this.#el.nativeElement, klass);\n } else {\n this.#renderer.removeClass(this.#el.nativeElement, klass);\n }\n });\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["stringify"],"mappings":";;;;;AAAA;MAsCa,gBAAgB,CAAA;AAD7B,IAAA,WAAA,GAAA;QAEY,IAAc,CAAA,cAAA,GAAa,EAAE;AAI7B,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,GAAG,EAAoC;AACrD,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;AAC7B,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC;AACxB,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,kBAAkB,CAAC;AAyH9C;AA3HY,IAAA,SAAS;AACT,IAAA,GAAG;AACH,IAAA,KAAK;IAEd,IACI,KAAK,CAAC,KAAa,EAAA;QACnB,IAAI,CAAC,cAAc,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE;;IAGxE,IACI,OAAO,CAAC,KAAqC,EAAA;QAC7C,IAAI,CAAC,QAAQ,GAAG,OAAO,KAAK,KAAK,QAAQ,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,KAAK;;IAGjF,IACI,OAAO,CAAC,KAAuC,EAAA;AAC/C,QAAA,IAAI,CAAC,UAAU;AACX,YAAA,OAAO,KAAK,KAAK,QAAQ,GAAI,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAgB,GAAG,KAAK;;IAGrF,SAAS,GAAA;AACL,QAAA,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,cAAc,EAAE;AACrC,YAAA,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC;;;AAGlC,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ;QAC9B,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,QAAQ,YAAY,GAAG,EAAE;AACpD,YAAA,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE;AAC1B,gBAAA,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC;;;AAE/B,aAAA,IAAI,QAAQ,IAAI,IAAI,EAAE;YACzB,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;AACvC,gBAAA,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;;;;AAK1D,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU;QAClC,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,UAAU,YAAY,GAAG,EAAE;AACxD,YAAA,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE;gBAC5B,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC;;;AAErC,aAAA,IAAI,UAAU,IAAI,IAAI,EAAE;YAC3B,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AACzC,gBAAA,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,KAAiB,CAAC,CAAC,EAAE,IAAI,CAAC;;;QAI9E,IAAI,CAAC,eAAe,EAAE;;AAGlB,IAAA,YAAY,CAChB,KAAwB,EACxB,WAAoB,EACpB,WAAW,GAAG,KAAK,EAAA;QAEnB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC;AACtC,QAAA,IAAI,KAAK,KAAK,SAAS,EAAE;AACrB,YAAA,IAAI,KAAK,CAAC,OAAO,KAAK,WAAW,EAAE;AAC/B,gBAAA,KAAK,CAAC,OAAO,GAAG,IAAI;AACpB,gBAAA,KAAK,CAAC,OAAO,GAAG,WAAW;;AAE/B,YAAA,KAAK,CAAC,OAAO,GAAG,IAAI;;aACjB;YACH,IAAI,YAAY,GAAG,KAAK;YACxB,IAAI,WAAW,EAAE;gBACb,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,IAAI,IAAI;AAC1D,gBAAA,MAAM,OAAO,GAAG;oBACZ,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC;oBAC7B,IAAI,IAAI,CAAC,KAAK,CAAC,iBAAiB,IAAI,EAAE;iBACzC;AACD,gBAAA,MAAM,MAAM,GAAG,SAAS,CAAC,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM;AAC7D,gBAAA,YAAY,GAAG,MAAM,CAAC,KAAiB,CAAC;;AAE5C,YAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,EAAE;AAC5B,gBAAA,OAAO,EAAE,WAAW;AACpB,gBAAA,OAAO,EAAE,IAAI;AACb,gBAAA,OAAO,EAAE;AACZ,aAAA,CAAC;;;IAIF,eAAe,GAAA;AACnB,QAAA,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,QAAQ,EAAE;AACpC,YAAA,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC;AAC3B,YAAA,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC;AAE3B,YAAA,IAAI,KAAK,CAAC,OAAO,EAAE;gBACf,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC;AACvC,gBAAA,KAAK,CAAC,OAAO,GAAG,KAAK;;AAClB,iBAAA,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;;;AAGvB,gBAAA,IAAI,KAAK,CAAC,OAAO,EAAE;AACf,oBAAA,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC;;AAEnC,gBAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC;;AAG/B,YAAA,KAAK,CAAC,OAAO,GAAG,KAAK;;;IAIrB,YAAY,CAAC,KAAa,EAAE,OAAgB,EAAA;QAChD,IAAI,SAAS,EAAE,EAAE;AACb,YAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;gBAC3B,MAAM,IAAI,KAAK,CACX,CAAiE,8DAAA,EAAAA,UAAS,CAAC,KAAK,CAAC,CAAE,CAAA,CACtF;;;AAIT,QAAA,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE;AACpB,QAAA,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YAClB,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,IAAG;gBAC/B,IAAI,OAAO,EAAE;AACT,oBAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,KAAK,CAAC;;qBACnD;AACH,oBAAA,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,KAAK,CAAC;;AAEjE,aAAC,CAAC;;;8GA9HD,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAhB,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,CAAA,OAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAD5B,SAAS;mBAAC,EAAE,QAAQ,EAAE,WAAW,EAAE;8BAY5B,KAAK,EAAA,CAAA;sBADR,KAAK;uBAAC,OAAO;gBAMV,OAAO,EAAA,CAAA;sBADV,KAAK;uBAAC,SAAS;gBAMZ,OAAO,EAAA,CAAA;sBADV,KAAK;uBAAC,SAAS;;;AC1DpB;;AAEG;;;;"}
@@ -20,15 +20,15 @@ class AccountComponent extends ComponentReference {
20
20
  };
21
21
  this.active = 'account';
22
22
  }
23
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: AccountComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
24
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.1", type: AccountComponent, isStandalone: true, selector: "kc-account", providers: [
23
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.2", ngImport: i0, type: AccountComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
24
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.2", type: AccountComponent, isStandalone: true, selector: "kc-account", providers: [
25
25
  {
26
26
  provide: ComponentReference,
27
27
  useExisting: forwardRef(() => AccountComponent)
28
28
  }
29
29
  ], usesInheritance: true, ngImport: i0, template: "@let url = kcContext.url;\n@let realm = kcContext.realm;\n@let messagesPerField = kcContext.messagesPerField;\n@let stateChecker = kcContext.stateChecker;\n@let account = kcContext.account;\n@let referrer = kcContext.referrer;\n\n<div class=\"row\">\n <div class=\"col-md-10\">\n <h2>{{ i18n.msgStr('editAccountHtmlTitle') }}</h2>\n </div>\n <div class=\"col-md-2 subtitle\">\n <span class=\"subtitle\"> <span class=\"required\">*</span> {{ i18n.msgStr('requiredFields') }} </span>\n </div>\n</div>\n<form\n class=\"form-horizontal\"\n method=\"post\"\n [action]=\"url.accountUrl\"\n>\n <input\n type=\"hidden\"\n id=\"stateChecker\"\n name=\"stateChecker\"\n [value]=\"stateChecker\"\n />\n @if (!realm.registrationEmailAsUsername) {\n <div\n class=\"form-group\"\n [ngClass]=\"{ 'has-error': messagesPerField.existsError('username') }\"\n >\n <div class=\"col-sm-2 col-md-2\">\n <label\n for=\"username\"\n class=\"control-label\"\n >\n {{ i18n.msgStr('username') }}\n </label>\n @if (realm.editUsernameAllowed) {\n <span class=\"required\">*</span>\n }\n </div>\n\n <div class=\"col-sm-10 col-md-10\">\n <input\n type=\"text\"\n class=\"form-control\"\n id=\"username\"\n name=\"username\"\n [disabled]=\"!realm.editUsernameAllowed\"\n [defaultValue]=\"account.username ?? ''\"\n />\n </div>\n </div>\n }\n\n <div\n class=\"form-group\"\n [ngClass]=\"{ 'has-error': messagesPerField.existsError('email') }\"\n >\n <div class=\"col-sm-2 col-md-2\">\n <label\n for=\"email\"\n class=\"control-label\"\n >\n {{ i18n.msgStr('email') }}\n </label>\n <span class=\"required\">*</span>\n </div>\n\n <div class=\"col-sm-10 col-md-10\">\n <input\n type=\"text\"\n class=\"form-control\"\n id=\"email\"\n name=\"email\"\n autoFocus\n [defaultValue]=\"account.email ?? ''\"\n />\n </div>\n </div>\n\n <div\n class=\"form-group\"\n [ngClass]=\"{ 'has-error': messagesPerField.existsError('firstName') }\"\n >\n <div class=\"col-sm-2 col-md-2\">\n <label\n for=\"firstName\"\n class=\"control-label\"\n >\n {{ i18n.msgStr('firstName') }}\n </label>\n <span class=\"required\">*</span>\n </div>\n\n <div class=\"col-sm-10 col-md-10\">\n <input\n type=\"text\"\n class=\"form-control\"\n id=\"firstName\"\n name=\"firstName\"\n [defaultValue]=\"account.firstName\"\n />\n </div>\n </div>\n\n <div\n class=\"form-group\"\n [ngClass]=\"{ 'has-error': messagesPerField.existsError('lastName') }\"\n >\n <div class=\"col-sm-2 col-md-2\">\n <label\n for=\"lastName\"\n class=\"control-label\"\n >\n {{ i18n.msgStr('lastName') }}\n </label>\n <span class=\"required\">*</span>\n </div>\n\n <div class=\"col-sm-10 col-md-10\">\n <input\n type=\"text\"\n class=\"form-control\"\n id=\"lastName\"\n name=\"lastName\"\n [defaultValue]=\"account.lastName ?? ''\"\n />\n </div>\n </div>\n\n <div class=\"form-group\">\n <div\n id=\"kc-form-buttons\"\n class=\"col-md-offset-2 col-md-10 submit\"\n >\n <div>\n @if (referrer) {\n <a [href]=\"referrer?.url\">{{ i18n.msgStr('backToApplication') }}</a>\n }\n <button\n type=\"submit\"\n name=\"submitAction\"\n value=\"Save\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonLargeClass']\"\n >\n {{ i18n.msgStr('doSave') }}\n </button>\n <button\n type=\"submit\"\n name=\"submitAction\"\n value=\"Cancel\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonLargeClass']\"\n >\n {{ i18n.msgStr('doCancel') }}\n </button>\n </div>\n </div>\n </div>\n</form>\n", dependencies: [{ kind: "directive", type: KcClassDirective, selector: "[kcClass]", inputs: ["class", "ngClass", "kcClass"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
30
30
  }
31
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: AccountComponent, decorators: [{
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.2", ngImport: i0, type: AccountComponent, decorators: [{
32
32
  type: Component,
33
33
  args: [{ imports: [KcClassDirective, NgClass], selector: 'kc-account', providers: [
34
34
  {
@@ -18,15 +18,15 @@ class ApplicationsComponent extends ComponentReference {
18
18
  this.classes = inject(ACCOUNT_CLASSES);
19
19
  this.active = 'applications';
20
20
  }
21
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: ApplicationsComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
22
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.1", type: ApplicationsComponent, isStandalone: true, selector: "kc-applications", providers: [
21
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.2", ngImport: i0, type: ApplicationsComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
22
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.2", type: ApplicationsComponent, isStandalone: true, selector: "kc-applications", providers: [
23
23
  {
24
24
  provide: ComponentReference,
25
25
  useExisting: forwardRef(() => ApplicationsComponent)
26
26
  }
27
27
  ], usesInheritance: true, ngImport: i0, template: "@let url = kcContext.url;\n@let stateChecker = kcContext.stateChecker;\n@let applications = kcContext.applications?.applications;\n\n<div class=\"row\">\n <div class=\"col-md-10\">\n <h2>{{ i18n.msgStr('applicationsHtmlTitle') }}</h2>\n </div>\n\n <form\n method=\"post\"\n [action]=\"url.applicationsUrl\"\n >\n <input\n type=\"hidden\"\n id=\"stateChecker\"\n name=\"stateChecker\"\n [value]=\"stateChecker\"\n />\n <input\n type=\"hidden\"\n id=\"referrer\"\n name=\"referrer\"\n [value]=\"stateChecker\"\n />\n\n <table class=\"table table-striped table-bordered\">\n <thead>\n <tr>\n <td>{{ i18n.msgStr('application') }}</td>\n <td>{{ i18n.msgStr('availableRoles') }}</td>\n <td>{{ i18n.msgStr('grantedPermissions') }}</td>\n <td>{{ i18n.msgStr('additionalGrants') }}</td>\n <td>{{ i18n.msgStr('action') }}</td>\n </tr>\n </thead>\n\n <tbody>\n @for (application of applications ?? []; track application) {\n <tr>\n <td>\n @if (application.effectiveUrl) {\n <a [href]=\"application.effectiveUrl\">\n @if (application.client.name) {\n {{ i18n.advancedMsgStr(application.client.name) }}\n } @else {\n {{ application.client.clientId }}\n }\n </a>\n } @else {\n @if (application.client.name) {\n {{ i18n.advancedMsgStr(application.client.name) }}\n } @else {\n {{ application.client.clientId }}\n }\n }\n </td>\n\n <td>\n @if (!(application.realmRolesAvailable | isArrayWithEmptyObject)) {\n @for (role of application.realmRolesAvailable; track role; let last = $last) {\n <span>\n @if (role.description) {\n {{ i18n.advancedMsgStr(role.description) }}\n } @else {\n {{ i18n.advancedMsgStr(role.name) }}\n }\n @if (!last) {\n ,&nbsp;\n }\n </span>\n }\n }\n @if (application.resourceRolesAvailable) {\n @for (resource of application.resourceRolesAvailable | keyvalue; track resource.key) {\n <span>\n @if (!(application.realmRolesAvailable | isArrayWithEmptyObject)) {\n ,&nbsp;\n }\n @for (\n clientRole of application.resourceRolesAvailable[resource.key];\n track clientRole;\n let roleLast = $last\n ) {\n <span>\n {{\n i18n.advancedMsgStr(clientRole.roleDescription ? clientRole.roleDescription : clientRole.roleName)\n }}\n {{ i18n.msgStr('inResource') }}\n <strong>\n {{\n clientRole.clientName ? i18n.advancedMsgStr(clientRole.clientName) : clientRole.clientId\n }}</strong\n >\n @if (!roleLast) {\n ,&nbsp;\n }\n </span>\n }\n </span>\n }\n }\n </td>\n\n <td>\n @if (application.client.consentRequired) {\n @for (claim of application.clientScopesGranted; track claim; let last = $last) {\n {{ i18n.advancedMsgStr(claim) }}\n @if (!last) {\n ,&nbsp;\n }\n }\n } @else {\n <strong>{{ i18n.msgStr('fullAccess') }}</strong>\n }\n </td>\n\n <td>\n @for (grant of application.additionalGrants; track grant; let last = $last) {\n {{ i18n.advancedMsgStr(grant) }}\n @if (!last) {\n ,&nbsp;\n }\n }\n </td>\n\n <td>\n @if (\n (application.client.consentRequired && application.clientScopesGranted.length > 0) ||\n application.additionalGrants.length > 0\n ) {\n <button\n type=\"submit\"\n name=\"clientId\"\n [kcClass]=\"['kcButtonPrimaryClass', 'kcButtonClass']\"\n [id]=\"'revoke-' + application.client.clientId\"\n [value]=\"application.client.id\"\n >\n {{ i18n.msgStr('revoke') }}\n </button>\n }\n </td>\n </tr>\n }\n </tbody>\n </table>\n </form>\n</div>\n", dependencies: [{ kind: "directive", type: KcClassDirective, selector: "[kcClass]", inputs: ["class", "ngClass", "kcClass"] }, { kind: "pipe", type: KeyValuePipe, name: "keyvalue" }, { kind: "pipe", type: IsArrayWithEmptyObjectPipe, name: "isArrayWithEmptyObject" }] }); }
28
28
  }
29
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: ApplicationsComponent, decorators: [{
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.2", ngImport: i0, type: ApplicationsComponent, decorators: [{
30
30
  type: Component,
31
31
  args: [{ imports: [KcClassDirective, NgClass, KeyValuePipe, IsArrayWithEmptyObjectPipe], selector: 'kc-applications', providers: [
32
32
  {
@@ -17,17 +17,17 @@ class FederatedIdentityComponent extends ComponentReference {
17
17
  this.classes = inject(ACCOUNT_CLASSES);
18
18
  this.active = 'social';
19
19
  }
20
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: FederatedIdentityComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
21
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.1", type: FederatedIdentityComponent, isStandalone: true, selector: "kc-federatedIdentity", providers: [
20
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.2", ngImport: i0, type: FederatedIdentityComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
21
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.2", type: FederatedIdentityComponent, isStandalone: true, selector: "kc-federated-identity", providers: [
22
22
  {
23
23
  provide: ComponentReference,
24
24
  useExisting: forwardRef(() => FederatedIdentityComponent)
25
25
  }
26
26
  ], usesInheritance: true, ngImport: i0, template: "@let url = kcContext.url;\n@let federatedIdentity = kcContext.federatedIdentity;\n@let stateChecker = kcContext.stateChecker;\n\n<div class=\"main-layout social\">\n <div class=\"row\">\n <div class=\"col-md-10\">\n <h2>{{ i18n.msgStr('federatedIdentitiesHtmlTitle') }}</h2>\n </div>\n </div>\n <div id=\"federated-identities\">\n @for (identity of federatedIdentity.identities; track identity) {\n <div class=\"row margin-bottom\">\n <div class=\"col-sm-2 col-md-2\">\n <label\n class=\"control-label\"\n [for]=\"identity.providerId\"\n >\n {{ identity.displayName }}\n </label>\n </div>\n <div class=\"col-sm-5 col-md-5\">\n <input\n disabled\n class=\"form-control\"\n [value]=\"identity.userName\"\n />\n </div>\n <div class=\"col-sm-5 col-md-5\">\n @if (identity.connected) {\n @if (federatedIdentity.removeLinkPossible) {\n <form\n method=\"post\"\n class=\"form-inline\"\n [action]=\"url.socialUrl\"\n >\n <input\n type=\"hidden\"\n name=\"stateChecker\"\n [value]=\"stateChecker\"\n />\n <input\n type=\"hidden\"\n name=\"action\"\n value=\"remove\"\n />\n <input\n type=\"hidden\"\n name=\"providerId\"\n [value]=\"identity.providerId\"\n />\n <button\n class=\"btn btn-default\"\n [id]=\"'remove-link-' + identity.providerId\"\n >\n {{ i18n.msgStr('doRemove') }}\n </button>\n </form>\n }\n } @else {\n <form\n method=\"post\"\n class=\"form-inline\"\n [action]=\"url.socialUrl\"\n >\n <input\n type=\"hidden\"\n name=\"stateChecker\"\n [value]=\"stateChecker\"\n />\n <input\n type=\"hidden\"\n name=\"action\"\n value=\"add\"\n />\n <input\n type=\"hidden\"\n name=\"providerId\"\n [value]=\"identity.providerId\"\n />\n <button\n class=\"btn btn-default\"\n [id]=\"'add-link-' + identity.providerId\"\n >\n {{ i18n.msgStr('doAdd') }}\n </button>\n </form>\n }\n </div>\n </div>\n }\n </div>\n</div>\n" }); }
27
27
  }
28
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: FederatedIdentityComponent, decorators: [{
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.2", ngImport: i0, type: FederatedIdentityComponent, decorators: [{
29
29
  type: Component,
30
- args: [{ imports: [KcClassDirective, NgClass], selector: 'kc-federatedIdentity', providers: [
30
+ args: [{ imports: [KcClassDirective, NgClass], selector: 'kc-federated-identity', providers: [
31
31
  {
32
32
  provide: ComponentReference,
33
33
  useExisting: forwardRef(() => FederatedIdentityComponent)
@@ -1 +1 @@
1
- {"version":3,"file":"keycloakify-angular-account-pages-federatedIdentity.mjs","sources":["../../src/account/pages/federatedIdentity/federatedIdentity.component.ts","../../src/account/pages/federatedIdentity/federatedIdentity.component.html","../../src/account/pages/federatedIdentity/keycloakify-angular-account-pages-federatedIdentity.ts"],"sourcesContent":["import { NgClass } from '@angular/common';\nimport { Component, forwardRef, inject } from '@angular/core';\nimport { ComponentReference } from '@keycloakify/angular/account/classes/component-reference';\nimport { KcClassDirective } from '@keycloakify/angular/account/directives/kc-class';\nimport type { I18n } from '@keycloakify/angular/account/i18n';\nimport type { KcContext } from '@keycloakify/angular/account/KcContext';\nimport { ACCOUNT_CLASSES } from '@keycloakify/angular/account/tokens/classes';\nimport { ACCOUNT_I18N } from '@keycloakify/angular/account/tokens/i18n';\nimport { KC_ACCOUNT_CONTEXT } from '@keycloakify/angular/account/tokens/kc-context';\nimport { USE_DEFAULT_CSS } from '@keycloakify/angular/lib/tokens/use-default-css';\nimport type { ClassKey } from 'keycloakify/account';\n\n@Component({\n imports: [KcClassDirective, NgClass],\n selector: 'kc-federatedIdentity',\n templateUrl: 'federatedIdentity.component.html',\n providers: [\n {\n provide: ComponentReference,\n useExisting: forwardRef(() => FederatedIdentityComponent)\n }\n ]\n})\nexport class FederatedIdentityComponent extends ComponentReference {\n i18n = inject<I18n>(ACCOUNT_I18N);\n kcContext = inject<Extract<KcContext, { pageId: 'federatedIdentity.ftl' }>>(KC_ACCOUNT_CONTEXT);\n override doUseDefaultCss = inject<boolean>(USE_DEFAULT_CSS);\n override classes = inject<Partial<Record<ClassKey, string>>>(ACCOUNT_CLASSES);\n active = 'social';\n}\n","@let url = kcContext.url;\n@let federatedIdentity = kcContext.federatedIdentity;\n@let stateChecker = kcContext.stateChecker;\n\n<div class=\"main-layout social\">\n <div class=\"row\">\n <div class=\"col-md-10\">\n <h2>{{ i18n.msgStr('federatedIdentitiesHtmlTitle') }}</h2>\n </div>\n </div>\n <div id=\"federated-identities\">\n @for (identity of federatedIdentity.identities; track identity) {\n <div class=\"row margin-bottom\">\n <div class=\"col-sm-2 col-md-2\">\n <label\n class=\"control-label\"\n [for]=\"identity.providerId\"\n >\n {{ identity.displayName }}\n </label>\n </div>\n <div class=\"col-sm-5 col-md-5\">\n <input\n disabled\n class=\"form-control\"\n [value]=\"identity.userName\"\n />\n </div>\n <div class=\"col-sm-5 col-md-5\">\n @if (identity.connected) {\n @if (federatedIdentity.removeLinkPossible) {\n <form\n method=\"post\"\n class=\"form-inline\"\n [action]=\"url.socialUrl\"\n >\n <input\n type=\"hidden\"\n name=\"stateChecker\"\n [value]=\"stateChecker\"\n />\n <input\n type=\"hidden\"\n name=\"action\"\n value=\"remove\"\n />\n <input\n type=\"hidden\"\n name=\"providerId\"\n [value]=\"identity.providerId\"\n />\n <button\n class=\"btn btn-default\"\n [id]=\"'remove-link-' + identity.providerId\"\n >\n {{ i18n.msgStr('doRemove') }}\n </button>\n </form>\n }\n } @else {\n <form\n method=\"post\"\n class=\"form-inline\"\n [action]=\"url.socialUrl\"\n >\n <input\n type=\"hidden\"\n name=\"stateChecker\"\n [value]=\"stateChecker\"\n />\n <input\n type=\"hidden\"\n name=\"action\"\n value=\"add\"\n />\n <input\n type=\"hidden\"\n name=\"providerId\"\n [value]=\"identity.providerId\"\n />\n <button\n class=\"btn btn-default\"\n [id]=\"'add-link-' + identity.providerId\"\n >\n {{ i18n.msgStr('doAdd') }}\n </button>\n </form>\n }\n </div>\n </div>\n }\n </div>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;AAuBM,MAAO,0BAA2B,SAAQ,kBAAkB,CAAA;AAXlE,IAAA,WAAA,GAAA;;AAYI,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAO,YAAY,CAAC;AACjC,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAA0D,kBAAkB,CAAC;AACtF,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAU,eAAe,CAAC;AAClD,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAoC,eAAe,CAAC;QAC7E,IAAM,CAAA,MAAA,GAAG,QAAQ;AACpB;8GANY,0BAA0B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,0BAA0B,EAPxB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,SAAA,EAAA;AACP,YAAA;AACI,gBAAA,OAAO,EAAE,kBAAkB;AAC3B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,0BAA0B;AAC3D;AACJ,SAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECrBL,g3HA6FA,EAAA,CAAA,CAAA;;2FDtEa,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAXtC,SAAS;AACG,YAAA,IAAA,EAAA,CAAA,EAAA,OAAA,EAAA,CAAC,gBAAgB,EAAE,OAAO,CAAC,EAAA,QAAA,EAC1B,sBAAsB,EAErB,SAAA,EAAA;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,kBAAkB;AAC3B,4BAAA,WAAW,EAAE,UAAU,CAAC,gCAAgC;AAC3D;AACJ,qBAAA,EAAA,QAAA,EAAA,g3HAAA,EAAA;;;AErBL;;AAEG;;;;"}
1
+ {"version":3,"file":"keycloakify-angular-account-pages-federatedIdentity.mjs","sources":["../../src/account/pages/federatedIdentity/federatedIdentity.component.ts","../../src/account/pages/federatedIdentity/federatedIdentity.component.html","../../src/account/pages/federatedIdentity/keycloakify-angular-account-pages-federatedIdentity.ts"],"sourcesContent":["import { NgClass } from '@angular/common';\nimport { Component, forwardRef, inject } from '@angular/core';\nimport { ComponentReference } from '@keycloakify/angular/account/classes/component-reference';\nimport { KcClassDirective } from '@keycloakify/angular/account/directives/kc-class';\nimport type { I18n } from '@keycloakify/angular/account/i18n';\nimport type { KcContext } from '@keycloakify/angular/account/KcContext';\nimport { ACCOUNT_CLASSES } from '@keycloakify/angular/account/tokens/classes';\nimport { ACCOUNT_I18N } from '@keycloakify/angular/account/tokens/i18n';\nimport { KC_ACCOUNT_CONTEXT } from '@keycloakify/angular/account/tokens/kc-context';\nimport { USE_DEFAULT_CSS } from '@keycloakify/angular/lib/tokens/use-default-css';\nimport type { ClassKey } from 'keycloakify/account';\n\n@Component({\n imports: [KcClassDirective, NgClass],\n selector: 'kc-federated-identity',\n templateUrl: 'federatedIdentity.component.html',\n providers: [\n {\n provide: ComponentReference,\n useExisting: forwardRef(() => FederatedIdentityComponent)\n }\n ]\n})\nexport class FederatedIdentityComponent extends ComponentReference {\n i18n = inject<I18n>(ACCOUNT_I18N);\n kcContext = inject<Extract<KcContext, { pageId: 'federatedIdentity.ftl' }>>(KC_ACCOUNT_CONTEXT);\n override doUseDefaultCss = inject<boolean>(USE_DEFAULT_CSS);\n override classes = inject<Partial<Record<ClassKey, string>>>(ACCOUNT_CLASSES);\n active = 'social';\n}\n","@let url = kcContext.url;\n@let federatedIdentity = kcContext.federatedIdentity;\n@let stateChecker = kcContext.stateChecker;\n\n<div class=\"main-layout social\">\n <div class=\"row\">\n <div class=\"col-md-10\">\n <h2>{{ i18n.msgStr('federatedIdentitiesHtmlTitle') }}</h2>\n </div>\n </div>\n <div id=\"federated-identities\">\n @for (identity of federatedIdentity.identities; track identity) {\n <div class=\"row margin-bottom\">\n <div class=\"col-sm-2 col-md-2\">\n <label\n class=\"control-label\"\n [for]=\"identity.providerId\"\n >\n {{ identity.displayName }}\n </label>\n </div>\n <div class=\"col-sm-5 col-md-5\">\n <input\n disabled\n class=\"form-control\"\n [value]=\"identity.userName\"\n />\n </div>\n <div class=\"col-sm-5 col-md-5\">\n @if (identity.connected) {\n @if (federatedIdentity.removeLinkPossible) {\n <form\n method=\"post\"\n class=\"form-inline\"\n [action]=\"url.socialUrl\"\n >\n <input\n type=\"hidden\"\n name=\"stateChecker\"\n [value]=\"stateChecker\"\n />\n <input\n type=\"hidden\"\n name=\"action\"\n value=\"remove\"\n />\n <input\n type=\"hidden\"\n name=\"providerId\"\n [value]=\"identity.providerId\"\n />\n <button\n class=\"btn btn-default\"\n [id]=\"'remove-link-' + identity.providerId\"\n >\n {{ i18n.msgStr('doRemove') }}\n </button>\n </form>\n }\n } @else {\n <form\n method=\"post\"\n class=\"form-inline\"\n [action]=\"url.socialUrl\"\n >\n <input\n type=\"hidden\"\n name=\"stateChecker\"\n [value]=\"stateChecker\"\n />\n <input\n type=\"hidden\"\n name=\"action\"\n value=\"add\"\n />\n <input\n type=\"hidden\"\n name=\"providerId\"\n [value]=\"identity.providerId\"\n />\n <button\n class=\"btn btn-default\"\n [id]=\"'add-link-' + identity.providerId\"\n >\n {{ i18n.msgStr('doAdd') }}\n </button>\n </form>\n }\n </div>\n </div>\n }\n </div>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;AAuBM,MAAO,0BAA2B,SAAQ,kBAAkB,CAAA;AAXlE,IAAA,WAAA,GAAA;;AAYI,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAO,YAAY,CAAC;AACjC,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAA0D,kBAAkB,CAAC;AACtF,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAU,eAAe,CAAC;AAClD,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAoC,eAAe,CAAC;QAC7E,IAAM,CAAA,MAAA,GAAG,QAAQ;AACpB;8GANY,0BAA0B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,0BAA0B,EAPxB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,SAAA,EAAA;AACP,YAAA;AACI,gBAAA,OAAO,EAAE,kBAAkB;AAC3B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,0BAA0B;AAC3D;AACJ,SAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECrBL,g3HA6FA,EAAA,CAAA,CAAA;;2FDtEa,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAXtC,SAAS;AACG,YAAA,IAAA,EAAA,CAAA,EAAA,OAAA,EAAA,CAAC,gBAAgB,EAAE,OAAO,CAAC,EAAA,QAAA,EAC1B,uBAAuB,EAEtB,SAAA,EAAA;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,kBAAkB;AAC3B,4BAAA,WAAW,EAAE,UAAU,CAAC,gCAAgC;AAC3D;AACJ,qBAAA,EAAA,QAAA,EAAA,g3HAAA,EAAA;;;AErBL;;AAEG;;;;"}
@@ -17,15 +17,15 @@ class LogComponent extends ComponentReference {
17
17
  this.classes = inject(ACCOUNT_CLASSES);
18
18
  this.active = 'log';
19
19
  }
20
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: LogComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
21
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.1", type: LogComponent, isStandalone: true, selector: "kc-log", providers: [
20
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.2", ngImport: i0, type: LogComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
21
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.2", type: LogComponent, isStandalone: true, selector: "kc-log", providers: [
22
22
  {
23
23
  provide: ComponentReference,
24
24
  useExisting: forwardRef(() => LogComponent)
25
25
  }
26
26
  ], usesInheritance: true, ngImport: i0, template: "@let log = kcContext.log;\n\n<div [kcClass]=\"'kcContentWrapperClass'\">\n <div class=\"col-md-10\">\n <h2>{{ i18n.msgStr('accountLogHtmlTitle') }}</h2>\n </div>\n\n <table class=\"table table-striped table-bordered\">\n <thead>\n <tr>\n <td>{{ i18n.msgStr('date') }}</td>\n <td>{{ i18n.msgStr('event') }}</td>\n <td>{{ i18n.msgStr('ip') }}</td>\n <td>{{ i18n.msgStr('client') }}</td>\n <td>{{ i18n.msgStr('details') }}</td>\n </tr>\n </thead>\n\n <tbody>\n @for (event of log.events; track event) {\n <tr>\n <td>{{ event.date ? (event.date | date) : '' }}</td>\n <td>{{ event.event }}</td>\n <td>{{ event.ipAddress }}</td>\n <td>{{ event.client || '' }}</td>\n <td>\n @for (detail of event.details; track detail; let last = $last) {\n <span>\n {{ detail.key }} = {{ detail.value }}\n @if (!last) {\n ,&nbsp;\n }\n </span>\n }\n </td>\n </tr>\n }\n </tbody>\n </table>\n</div>\n", dependencies: [{ kind: "directive", type: KcClassDirective, selector: "[kcClass]", inputs: ["class", "ngClass", "kcClass"] }, { kind: "pipe", type: DatePipe, name: "date" }] }); }
27
27
  }
28
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: LogComponent, decorators: [{
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.2", ngImport: i0, type: LogComponent, decorators: [{
29
29
  type: Component,
30
30
  args: [{ imports: [KcClassDirective, NgClass, DatePipe], selector: 'kc-log', providers: [
31
31
  {
@@ -89,15 +89,15 @@ class PasswordComponent extends ComponentReference {
89
89
  this.hasNewPasswordConfirmBlurred.set(true);
90
90
  this.checkNewPasswordConfirm(this.newPasswordConfirm());
91
91
  }
92
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: PasswordComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
93
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.1", type: PasswordComponent, isStandalone: true, selector: "kc-password", providers: [
92
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.2", ngImport: i0, type: PasswordComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
93
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.2", type: PasswordComponent, isStandalone: true, selector: "kc-password", providers: [
94
94
  {
95
95
  provide: ComponentReference,
96
96
  useExisting: forwardRef(() => PasswordComponent)
97
97
  }
98
98
  ], usesInheritance: true, ngImport: i0, template: "@let url = kcContext.url;\n@let password = kcContext.password;\n@let account = kcContext.account;\n@let stateChecker = kcContext.stateChecker;\n\n<div class=\"row\">\n <div class=\"col-md-10\">\n <h2>{{ i18n.msgStr('changePasswordHtmlTitle') }}</h2>\n </div>\n <div class=\"col-md-2 subtitle\">\n <span class=\"subtitle\">{{ i18n.msgStr('allFieldsRequired') }}</span>\n </div>\n</div>\n\n<form\n class=\"form-horizontal\"\n method=\"post\"\n [action]=\"url.passwordUrl\"\n>\n <input\n type=\"text\"\n id=\"username\"\n name=\"username\"\n autoComplete=\"username\"\n readOnly\n [value]=\"account.username ?? ''\"\n [style.display]=\"'none'\"\n />\n\n @if (password.passwordSet) {\n <div class=\"form-group\">\n <div class=\"col-sm-2 col-md-2\">\n <label\n for=\"password\"\n class=\"control-label\"\n >\n {{ i18n.msgStr('password') }}\n </label>\n </div>\n <div class=\"col-sm-10 col-md-10\">\n <input\n type=\"password\"\n class=\"form-control\"\n id=\"password\"\n name=\"password\"\n autoFocus\n autoComplete=\"current-password\"\n [value]=\"currentPassword()\"\n (change)=\"currentPassword.set($any($event.target).value)\"\n />\n </div>\n </div>\n }\n\n <input\n type=\"hidden\"\n id=\"stateChecker\"\n name=\"stateChecker\"\n [value]=\"stateChecker\"\n />\n\n <div class=\"form-group\">\n <div class=\"col-sm-2 col-md-2\">\n <label\n for=\"password-new\"\n class=\"control-label\"\n >\n {{ i18n.msgStr('passwordNew') }}\n </label>\n </div>\n <div class=\"col-sm-10 col-md-10\">\n <input\n type=\"password\"\n class=\"form-control\"\n id=\"password-new\"\n name=\"password-new\"\n autoComplete=\"new-password\"\n [value]=\"newPassword()\"\n (change)=\"onNewPasswordChange($any($event.target).value)\"\n (blur)=\"onNewPasswordBlur()\"\n />\n </div>\n </div>\n\n <div class=\"form-group\">\n <div class=\"col-sm-2 col-md-2\">\n <label\n for=\"password-confirm\"\n class=\"control-label two-lines\"\n >\n {{ i18n.msgStr('passwordConfirm') }}\n </label>\n </div>\n\n <div class=\"col-sm-10 col-md-10\">\n <input\n type=\"password\"\n class=\"form-control\"\n id=\"password-confirm\"\n name=\"password-confirm\"\n autoComplete=\"new-password\"\n [value]=\"newPasswordConfirm()\"\n (change)=\"onNewPasswordConfirmChange($any($event.target).value)\"\n (blur)=\"onNewPasswordConfirmBlur()\"\n />\n </div>\n </div>\n\n <div class=\"form-group\">\n <div\n id=\"kc-form-buttons\"\n class=\"col-md-offset-2 col-md-10 submit\"\n >\n <div>\n <button\n type=\"submit\"\n name=\"submitAction\"\n value=\"Save\"\n [disabled]=\"newPasswordError() !== '' || newPasswordConfirmError() !== ''\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonLargeClass']\"\n >\n {{ i18n.msgStr('doSave') }}\n </button>\n </div>\n </div>\n </div>\n</form>\n", dependencies: [{ kind: "directive", type: KcClassDirective, selector: "[kcClass]", inputs: ["class", "ngClass", "kcClass"] }] }); }
99
99
  }
100
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: PasswordComponent, decorators: [{
100
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.2", ngImport: i0, type: PasswordComponent, decorators: [{
101
101
  type: Component,
102
102
  args: [{ imports: [KcClassDirective, NgClass], selector: 'kc-password', providers: [
103
103
  {
@@ -17,15 +17,15 @@ class SessionsComponent extends ComponentReference {
17
17
  this.classes = inject(ACCOUNT_CLASSES);
18
18
  this.active = 'sessions';
19
19
  }
20
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: SessionsComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
21
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.1", type: SessionsComponent, isStandalone: true, selector: "kc-sessions", providers: [
20
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.2", ngImport: i0, type: SessionsComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
21
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.2", type: SessionsComponent, isStandalone: true, selector: "kc-sessions", providers: [
22
22
  {
23
23
  provide: ComponentReference,
24
24
  useExisting: forwardRef(() => SessionsComponent)
25
25
  }
26
26
  ], usesInheritance: true, ngImport: i0, template: "@let url = kcContext.url;\n@let sessions = kcContext.sessions;\n@let stateChecker = kcContext.stateChecker;\n\n<div [kcClass]=\"'kcContentWrapperClass'\">\n <div class=\"col-md-10\">\n <h2>{{ i18n.msgStr('sessionsHtmlTitle') }}</h2>\n </div>\n</div>\n\n<table class=\"table table-striped table-bordered\">\n <thead>\n <tr>\n <th>{{ i18n.msgStr('ip') }}</th>\n <th>{{ i18n.msgStr('started') }}</th>\n <th>{{ i18n.msgStr('lastAccess') }}</th>\n <th>{{ i18n.msgStr('expires') }}</th>\n <th>{{ i18n.msgStr('clients') }}</th>\n </tr>\n </thead>\n\n <tbody role=\"rowgroup\">\n @for (session of sessions.sessions; track session) {\n <tr>\n <td>{{ session.ipAddress }}</td>\n <td>{{ session?.started }}</td>\n <td>{{ session?.lastAccess }}</td>\n <td>{{ session?.expires }}</td>\n <td>\n @for (client of session.clients; track client) {\n <div>\n {{ client }}\n <br />\n </div>\n }\n </td>\n </tr>\n }\n </tbody>\n</table>\n\n<form\n method=\"post\"\n [action]=\"url.sessionsUrl\"\n>\n <input\n type=\"hidden\"\n id=\"stateChecker\"\n name=\"stateChecker\"\n [value]=\"stateChecker\"\n />\n <button\n id=\"logout-all-sessions\"\n type=\"submit\"\n [kcClass]=\"['kcButtonDefaultClass', 'kcButtonClass']\"\n >\n {{ i18n.msgStr('doLogOutAllSessions') }}\n </button>\n</form>\n", dependencies: [{ kind: "directive", type: KcClassDirective, selector: "[kcClass]", inputs: ["class", "ngClass", "kcClass"] }] }); }
27
27
  }
28
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: SessionsComponent, decorators: [{
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.2", ngImport: i0, type: SessionsComponent, decorators: [{
29
29
  type: Component,
30
30
  args: [{ imports: [KcClassDirective, NgClass], selector: 'kc-sessions', providers: [
31
31
  {
@@ -18,15 +18,15 @@ class TotpComponent extends ComponentReference {
18
18
  this.classes = inject(ACCOUNT_CLASSES);
19
19
  this.active = 'totp';
20
20
  }
21
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: TotpComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
22
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.1", type: TotpComponent, isStandalone: true, selector: "kc-totp", providers: [
21
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.2", ngImport: i0, type: TotpComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
22
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.2", type: TotpComponent, isStandalone: true, selector: "kc-totp", providers: [
23
23
  {
24
24
  provide: ComponentReference,
25
25
  useExisting: forwardRef(() => TotpComponent)
26
26
  }
27
27
  ], usesInheritance: true, ngImport: i0, template: "@let url = kcContext.url;\n@let mode = kcContext.mode;\n@let messagesPerField = kcContext.messagesPerField;\n@let stateChecker = kcContext.stateChecker;\n@let totp = kcContext.totp;\n\n<div class=\"row\">\n <div class=\"col-md-10\">\n <h2>{{ i18n.msgStr('authenticatorTitle') }}</h2>\n </div>\n @if (totp.otpCredentials.length) {\n <div class=\"subtitle col-md-2\">\n <span class=\"required\">*</span>\n {{ i18n.msgStr('requiredFields') }}\n </div>\n }\n</div>\n@if (totp.enabled) {\n <table class=\"table table-bordered table-striped\">\n <thead>\n @if (totp.otpCredentials.length > 1) {\n <tr>\n <th [colSpan]=\"4\">{{ i18n.msgStr('configureAuthenticators') }}</th>\n </tr>\n } @else {\n <tr>\n <th [colSpan]=\"3\">{{ i18n.msgStr('configureAuthenticators') }}</th>\n </tr>\n }\n </thead>\n <tbody>\n @for (credential of totp.otpCredentials; track credential; let index = $index) {\n <tr>\n <td class=\"provider\">{{ i18n.msgStr('mobile') }}</td>\n @if (totp.otpCredentials.length > 1) {\n <td class=\"provider\">{{ credential.id }}</td>\n }\n <td class=\"provider\">{{ credential.userLabel || '' }}</td>\n <td class=\"action\">\n <form\n method=\"post\"\n class=\"form-inline\"\n [action]=\"url.totpUrl\"\n >\n <input\n type=\"hidden\"\n id=\"stateChecker\"\n name=\"stateChecker\"\n [value]=\"stateChecker\"\n />\n <input\n type=\"hidden\"\n id=\"submitAction\"\n name=\"submitAction\"\n value=\"Delete\"\n />\n <input\n type=\"hidden\"\n id=\"credentialId\"\n name=\"credentialId\"\n [value]=\"credential.id\"\n />\n <button\n class=\"btn btn-default\"\n [id]=\"'remove-mobile-' + index\"\n >\n <i class=\"pficon pficon-delete\"></i>\n </button>\n </form>\n </td>\n </tr>\n }\n </tbody>\n </table>\n} @else {\n <div>\n <hr />\n <ol id=\"kc-totp-settings\">\n <li>\n <p>{{ i18n.msgStr('totpStep1') }}</p>\n\n <ul id=\"kc-totp-supported-apps\">\n @for (app of totp.supportedApplications; track app) {\n <li>{{ i18n.advancedMsgStr(app) }}</li>\n }\n </ul>\n </li>\n @if (mode && mode === 'manual') {\n <li>\n <p>{{ i18n.msgStr('totpManualStep2') }}</p>\n <p>\n <span id=\"kc-totp-secret-key\">{{ totp.totpSecretEncoded }}</span>\n </p>\n <p>\n <a\n id=\"mode-barcode\"\n [href]=\"totp.qrUrl\"\n >\n {{ i18n.msgStr('totpScanBarcode') }}\n </a>\n </p>\n </li>\n <li>\n <p>{{ i18n.msgStr('totpManualStep3') }}</p>\n <ul>\n <li id=\"kc-totp-type\">{{ i18n.msgStr('totpType') }}: {{ i18n.msgStr($any('totp.' + totp.policy.type)) }}</li>\n <li id=\"kc-totp-algorithm\">{{ i18n.msgStr('totpAlgorithm') }}: {{ totp.policy.getAlgorithmKey() }}</li>\n <li id=\"kc-totp-digits\">{{ i18n.msgStr('totpDigits') }}: {{ totp.policy.digits }}</li>\n @if (totp.policy.type === 'totp') {\n <li id=\"kc-totp-period\">{{ i18n.msgStr('totpInterval') }}: {{ totp.policy.period }}</li>\n } @else {\n <li id=\"kc-totp-counter\">{{ i18n.msgStr('totpCounter') }}: {{ totp.policy.initialCounter }}</li>\n }\n </ul>\n </li>\n } @else {\n <li>\n <p>{{ i18n.msgStr('totpStep2') }}</p>\n <p>\n <img\n id=\"kc-totp-secret-qr-code\"\n alt=\"Figure: Barcode\"\n [src]=\"'data:image/png;base64, ' + totp.totpSecretQrCode\"\n />\n </p>\n <p>\n <a\n id=\"mode-manual\"\n [href]=\"totp.manualUrl\"\n >\n {{ i18n.msgStr('totpUnableToScan') }}\n </a>\n </p>\n </li>\n }\n <li>\n <p>{{ i18n.msgStr('totpStep3') }}</p>\n <p>{{ i18n.msgStr('totpStep3DeviceName') }}</p>\n </li>\n </ol>\n <hr />\n <form\n id=\"kc-totp-settings-form\"\n method=\"post\"\n [action]=\"url.totpUrl\"\n [kcClass]=\"'kcFormClass'\"\n >\n <input\n type=\"hidden\"\n id=\"stateChecker\"\n name=\"stateChecker\"\n [value]=\"stateChecker\"\n />\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div class=\"col-sm-2 col-md-2\">\n <label\n for=\"totp\"\n class=\"control-label\"\n >\n {{ i18n.msgStr('authenticatorCode') }}\n </label>\n <span class=\"required\">*</span>\n </div>\n <div class=\"col-sm-10 col-md-10\">\n <input\n type=\"text\"\n id=\"totp\"\n name=\"totp\"\n autoComplete=\"off\"\n [kcClass]=\"'kcInputClass'\"\n [attr.aria-invalid]=\"messagesPerField.existsError('totp')\"\n />\n @if (messagesPerField.existsError('totp')) {\n <span\n id=\"input-error-otp-code\"\n aria-live=\"polite\"\n [kcClass]=\"'kcInputErrorMessageClass'\"\n [innerHTML]=\"messagesPerField.get('totp') | kcSanitize: 'html'\"\n ></span>\n }\n </div>\n <input\n type=\"hidden\"\n id=\"totpSecret\"\n name=\"totpSecret\"\n [value]=\"totp.totpSecret\"\n />\n @if (mode) {\n <input\n type=\"hidden\"\n id=\"mode\"\n [value]=\"mode\"\n />\n }\n </div>\n\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div class=\"col-sm-2 col-md-2\">\n <label\n for=\"userLabel\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ i18n.msgStr('totpDeviceName') }}\n </label>\n @if (totp.otpCredentials.length >= 1) {\n <span class=\"required\">*</span>\n }\n </div>\n <div class=\"col-sm-10 col-md-10\">\n <input\n type=\"text\"\n id=\"userLabel\"\n name=\"userLabel\"\n autoComplete=\"off\"\n [kcClass]=\"'kcInputClass'\"\n [attr.aria-invalid]=\"messagesPerField.existsError('userLabel')\"\n />\n @if (messagesPerField.existsError('userLabel')) {\n <span\n id=\"input-error-otp-label\"\n aria-live=\"polite\"\n [kcClass]=\"'kcInputErrorMessageClass'\"\n [innerHTML]=\"messagesPerField.get('userLabel') | kcSanitize: 'html'\"\n ></span>\n }\n </div>\n </div>\n\n <div\n id=\"kc-form-buttons\"\n class=\"text-right\"\n [kcClass]=\"'kcFormGroupClass'\"\n >\n <div [kcClass]=\"'kcInputWrapperClass'\">\n <input\n type=\"submit\"\n id=\"saveTOTPBtn\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doSave')\"\n />\n <button\n type=\"submit\"\n id=\"cancelTOTPBtn\"\n name=\"submitAction\"\n value=\"Cancel\"\n [kcClass]=\"['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonLargeClass']\"\n >\n {{ i18n.msgStr('doCancel') }}\n </button>\n </div>\n </div>\n </form>\n </div>\n}\n", dependencies: [{ kind: "directive", type: KcClassDirective, selector: "[kcClass]", inputs: ["class", "ngClass", "kcClass"] }, { kind: "pipe", type: KcSanitizePipe, name: "kcSanitize" }] }); }
28
28
  }
29
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: TotpComponent, decorators: [{
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.2", ngImport: i0, type: TotpComponent, decorators: [{
30
30
  type: Component,
31
31
  args: [{ imports: [KcClassDirective, KcSanitizePipe, NgClass], selector: 'kc-totp', providers: [
32
32
  {