keycloakify 11.9.16 → 11.11.0
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.
- package/bin/main.js +2 -1
- package/bin/shared/constants.d.ts +1 -1
- package/bin/shared/constants.js +2 -1
- package/bin/shared/constants.js.map +1 -1
- package/login/DefaultPage.js +3 -0
- package/login/DefaultPage.js.map +1 -1
- package/login/KcContext/KcContext.d.ts +19 -1
- package/login/KcContext/KcContext.js.map +1 -1
- package/login/KcContext/getKcContextMock.d.ts +1 -1
- package/login/KcContext/kcContextMocks.d.ts +1 -1
- package/login/KcContext/kcContextMocks.js +21 -2
- package/login/KcContext/kcContextMocks.js.map +1 -1
- package/login/i18n/messages_defaultSet/ar.d.ts +1 -0
- package/login/i18n/messages_defaultSet/ar.js +2 -1
- package/login/i18n/messages_defaultSet/ar.js.map +1 -1
- package/login/i18n/messages_defaultSet/ca.d.ts +1 -0
- package/login/i18n/messages_defaultSet/ca.js +2 -1
- package/login/i18n/messages_defaultSet/ca.js.map +1 -1
- package/login/i18n/messages_defaultSet/cs.d.ts +1 -0
- package/login/i18n/messages_defaultSet/cs.js +2 -1
- package/login/i18n/messages_defaultSet/cs.js.map +1 -1
- package/login/i18n/messages_defaultSet/da.d.ts +1 -0
- package/login/i18n/messages_defaultSet/da.js +2 -1
- package/login/i18n/messages_defaultSet/da.js.map +1 -1
- package/login/i18n/messages_defaultSet/de.d.ts +1 -0
- package/login/i18n/messages_defaultSet/de.js +2 -1
- package/login/i18n/messages_defaultSet/de.js.map +1 -1
- package/login/i18n/messages_defaultSet/el.d.ts +1 -0
- package/login/i18n/messages_defaultSet/el.js +2 -1
- package/login/i18n/messages_defaultSet/el.js.map +1 -1
- package/login/i18n/messages_defaultSet/en.d.ts +1 -0
- package/login/i18n/messages_defaultSet/en.js +2 -1
- package/login/i18n/messages_defaultSet/en.js.map +1 -1
- package/login/i18n/messages_defaultSet/es.d.ts +1 -0
- package/login/i18n/messages_defaultSet/es.js +2 -1
- package/login/i18n/messages_defaultSet/es.js.map +1 -1
- package/login/i18n/messages_defaultSet/fa.d.ts +1 -0
- package/login/i18n/messages_defaultSet/fa.js +2 -1
- package/login/i18n/messages_defaultSet/fa.js.map +1 -1
- package/login/i18n/messages_defaultSet/fi.d.ts +1 -0
- package/login/i18n/messages_defaultSet/fi.js +2 -1
- package/login/i18n/messages_defaultSet/fi.js.map +1 -1
- package/login/i18n/messages_defaultSet/fr.d.ts +1 -0
- package/login/i18n/messages_defaultSet/fr.js +2 -1
- package/login/i18n/messages_defaultSet/fr.js.map +1 -1
- package/login/i18n/messages_defaultSet/hu.d.ts +1 -0
- package/login/i18n/messages_defaultSet/hu.js +2 -1
- package/login/i18n/messages_defaultSet/hu.js.map +1 -1
- package/login/i18n/messages_defaultSet/index.d.ts +10 -0
- package/login/i18n/messages_defaultSet/it.d.ts +1 -0
- package/login/i18n/messages_defaultSet/it.js +2 -1
- package/login/i18n/messages_defaultSet/it.js.map +1 -1
- package/login/i18n/messages_defaultSet/ja.d.ts +1 -0
- package/login/i18n/messages_defaultSet/ja.js +2 -1
- package/login/i18n/messages_defaultSet/ja.js.map +1 -1
- package/login/i18n/messages_defaultSet/ka.d.ts +1 -0
- package/login/i18n/messages_defaultSet/ka.js +2 -1
- package/login/i18n/messages_defaultSet/ka.js.map +1 -1
- package/login/i18n/messages_defaultSet/lt.d.ts +1 -0
- package/login/i18n/messages_defaultSet/lt.js +2 -1
- package/login/i18n/messages_defaultSet/lt.js.map +1 -1
- package/login/i18n/messages_defaultSet/lv.d.ts +1 -0
- package/login/i18n/messages_defaultSet/lv.js +2 -1
- package/login/i18n/messages_defaultSet/lv.js.map +1 -1
- package/login/i18n/messages_defaultSet/nl.d.ts +1 -0
- package/login/i18n/messages_defaultSet/nl.js +2 -1
- package/login/i18n/messages_defaultSet/nl.js.map +1 -1
- package/login/i18n/messages_defaultSet/no.d.ts +1 -0
- package/login/i18n/messages_defaultSet/no.js +2 -1
- package/login/i18n/messages_defaultSet/no.js.map +1 -1
- package/login/i18n/messages_defaultSet/pl.d.ts +1 -0
- package/login/i18n/messages_defaultSet/pl.js +2 -1
- package/login/i18n/messages_defaultSet/pl.js.map +1 -1
- package/login/i18n/messages_defaultSet/pt-BR.d.ts +1 -0
- package/login/i18n/messages_defaultSet/pt-BR.js +2 -1
- package/login/i18n/messages_defaultSet/pt-BR.js.map +1 -1
- package/login/i18n/messages_defaultSet/pt.d.ts +1 -0
- package/login/i18n/messages_defaultSet/pt.js +2 -1
- package/login/i18n/messages_defaultSet/pt.js.map +1 -1
- package/login/i18n/messages_defaultSet/ru.d.ts +1 -0
- package/login/i18n/messages_defaultSet/ru.js +2 -1
- package/login/i18n/messages_defaultSet/ru.js.map +1 -1
- package/login/i18n/messages_defaultSet/sk.d.ts +1 -0
- package/login/i18n/messages_defaultSet/sk.js +2 -1
- package/login/i18n/messages_defaultSet/sk.js.map +1 -1
- package/login/i18n/messages_defaultSet/sv.d.ts +1 -0
- package/login/i18n/messages_defaultSet/sv.js +2 -1
- package/login/i18n/messages_defaultSet/sv.js.map +1 -1
- package/login/i18n/messages_defaultSet/th.d.ts +1 -0
- package/login/i18n/messages_defaultSet/th.js +2 -1
- package/login/i18n/messages_defaultSet/th.js.map +1 -1
- package/login/i18n/messages_defaultSet/tr.d.ts +1 -0
- package/login/i18n/messages_defaultSet/tr.js +2 -1
- package/login/i18n/messages_defaultSet/tr.js.map +1 -1
- package/login/i18n/messages_defaultSet/uk.d.ts +1 -0
- package/login/i18n/messages_defaultSet/uk.js +2 -1
- package/login/i18n/messages_defaultSet/uk.js.map +1 -1
- package/login/i18n/messages_defaultSet/zh-CN.d.ts +1 -0
- package/login/i18n/messages_defaultSet/zh-CN.js +2 -1
- package/login/i18n/messages_defaultSet/zh-CN.js.map +1 -1
- package/login/i18n/messages_defaultSet/zh-TW.d.ts +1 -0
- package/login/i18n/messages_defaultSet/zh-TW.js +2 -1
- package/login/i18n/messages_defaultSet/zh-TW.js.map +1 -1
- package/login/lib/kcClsx.d.ts +1 -1
- package/login/lib/kcClsx.js +1 -0
- package/login/lib/kcClsx.js.map +1 -1
- package/login/pages/LoginUsername.js +16 -9
- package/login/pages/LoginUsername.js.map +1 -1
- package/login/pages/LoginUsername.useScript.d.ts +21 -0
- package/login/pages/LoginUsername.useScript.js +47 -0
- package/login/pages/LoginUsername.useScript.js.map +1 -0
- package/login/pages/SelectOrganization.d.ts +7 -0
- package/login/pages/SelectOrganization.js +33 -0
- package/login/pages/SelectOrganization.js.map +1 -0
- package/package.json +10 -1
- package/src/bin/shared/constants.ts +2 -1
- package/src/login/DefaultPage.tsx +3 -0
- package/src/login/KcContext/KcContext.ts +22 -1
- package/src/login/KcContext/kcContextMocks.ts +30 -1
- package/src/login/i18n/messages_defaultSet/ar.ts +2 -1
- package/src/login/i18n/messages_defaultSet/ca.ts +2 -1
- package/src/login/i18n/messages_defaultSet/cs.ts +2 -1
- package/src/login/i18n/messages_defaultSet/da.ts +2 -1
- package/src/login/i18n/messages_defaultSet/de.ts +2 -1
- package/src/login/i18n/messages_defaultSet/el.ts +2 -1
- package/src/login/i18n/messages_defaultSet/en.ts +2 -1
- package/src/login/i18n/messages_defaultSet/es.ts +2 -1
- package/src/login/i18n/messages_defaultSet/fa.ts +2 -1
- package/src/login/i18n/messages_defaultSet/fi.ts +2 -1
- package/src/login/i18n/messages_defaultSet/fr.ts +2 -1
- package/src/login/i18n/messages_defaultSet/hu.ts +2 -1
- package/src/login/i18n/messages_defaultSet/it.ts +2 -1
- package/src/login/i18n/messages_defaultSet/ja.ts +2 -1
- package/src/login/i18n/messages_defaultSet/ka.ts +2 -1
- package/src/login/i18n/messages_defaultSet/lt.ts +2 -1
- package/src/login/i18n/messages_defaultSet/lv.ts +2 -1
- package/src/login/i18n/messages_defaultSet/nl.ts +2 -1
- package/src/login/i18n/messages_defaultSet/no.ts +2 -1
- package/src/login/i18n/messages_defaultSet/pl.ts +2 -1
- package/src/login/i18n/messages_defaultSet/pt-BR.ts +2 -1
- package/src/login/i18n/messages_defaultSet/pt.ts +2 -1
- package/src/login/i18n/messages_defaultSet/ru.ts +2 -1
- package/src/login/i18n/messages_defaultSet/sk.ts +2 -1
- package/src/login/i18n/messages_defaultSet/sv.ts +2 -1
- package/src/login/i18n/messages_defaultSet/th.ts +2 -1
- package/src/login/i18n/messages_defaultSet/tr.ts +2 -1
- package/src/login/i18n/messages_defaultSet/uk.ts +2 -1
- package/src/login/i18n/messages_defaultSet/zh-CN.ts +2 -1
- package/src/login/i18n/messages_defaultSet/zh-TW.ts +2 -1
- package/src/login/lib/kcClsx.ts +2 -0
- package/src/login/pages/LoginUsername.tsx +37 -1
- package/src/login/pages/LoginUsername.useScript.tsx +71 -0
- package/src/login/pages/SelectOrganization.tsx +69 -0
- package/stories/login/pages/SelectOrganization.stories.tsx +18 -0
- package/vite-plugin/index.js +2 -1
package/login/lib/kcClsx.js
CHANGED
|
@@ -122,6 +122,7 @@ export const { getKcClsx } = createGetKcClsx({
|
|
|
122
122
|
kcFormHeaderClass: "login-pf-header",
|
|
123
123
|
kcFormSocialAccountGridItem: "pf-l-grid__item",
|
|
124
124
|
kcButtonPrimaryClass: "pf-m-primary",
|
|
125
|
+
kcButtonSecondaryClass: "pf-m-secondary",
|
|
125
126
|
kcInputHelperTextBeforeClass: "pf-c-form__helper-text pf-c-form__helper-text-before",
|
|
126
127
|
"kcLogoIdP-github": "fa fa-github",
|
|
127
128
|
kcLabelClass: "pf-c-form__label pf-c-form__label-text"
|
package/login/lib/kcClsx.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kcClsx.js","sourceRoot":"","sources":["../../src/login/lib/kcClsx.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"kcClsx.js","sourceRoot":"","sources":["../../src/login/lib/kcClsx.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
|
|
|
2
2
|
import { useState } from "react";
|
|
3
3
|
import { clsx } from "../../tools/clsx";
|
|
4
4
|
import { getKcClsx } from "../../login/lib/kcClsx";
|
|
5
|
+
import { useScript } from "../../login/pages/LoginUsername.useScript";
|
|
5
6
|
export default function LoginUsername(props) {
|
|
6
7
|
var _a;
|
|
7
8
|
const { kcContext, i18n, doUseDefaultCss, Template, classes } = props;
|
|
@@ -9,16 +10,22 @@ export default function LoginUsername(props) {
|
|
|
9
10
|
doUseDefaultCss,
|
|
10
11
|
classes
|
|
11
12
|
});
|
|
12
|
-
const { social, realm, url, usernameHidden, login, registrationDisabled, messagesPerField } = kcContext;
|
|
13
|
+
const { social, realm, url, usernameHidden, login, registrationDisabled, messagesPerField, enableWebAuthnConditionalUI, authenticators } = kcContext;
|
|
13
14
|
const { msg, msgStr } = i18n;
|
|
14
15
|
const [isLoginButtonDisabled, setIsLoginButtonDisabled] = useState(false);
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
16
|
+
const authButtonId = "authenticateWebAuthnButton";
|
|
17
|
+
useScript({
|
|
18
|
+
authButtonId,
|
|
19
|
+
kcContext,
|
|
20
|
+
i18n
|
|
21
|
+
});
|
|
22
|
+
return (_jsxs(Template, Object.assign({ kcContext: kcContext, i18n: i18n, doUseDefaultCss: doUseDefaultCss, classes: classes, displayMessage: !messagesPerField.existsError("username"), displayInfo: realm.password && realm.registrationAllowed && !registrationDisabled, infoNode: _jsx("div", Object.assign({ id: "kc-registration" }, { children: _jsxs("span", { children: [msg("noAccount"), _jsx("a", Object.assign({ tabIndex: 6, href: url.registrationUrl }, { children: msg("doRegister") }))] }) })), headerNode: msg("doLogIn"), socialProvidersNode: _jsx(_Fragment, { children: realm.password && (social === null || social === void 0 ? void 0 : social.providers) !== undefined && social.providers.length !== 0 && (_jsxs("div", Object.assign({ id: "kc-social-providers", className: kcClsx("kcFormSocialAccountSectionClass") }, { children: [_jsx("hr", {}), _jsx("h2", { children: msg("identity-provider-login-label") }), _jsx("ul", Object.assign({ className: kcClsx("kcFormSocialAccountListClass", social.providers.length > 3 && "kcFormSocialAccountListGridClass") }, { children: social.providers.map((...[p, , providers]) => (_jsx("li", { children: _jsxs("a", Object.assign({ id: `social-${p.alias}`, className: kcClsx("kcFormSocialAccountListButtonClass", providers.length > 3 && "kcFormSocialAccountGridItem"), type: "button", href: p.loginUrl }, { children: [p.iconClasses && _jsx("i", { className: clsx(kcClsx("kcCommonLogoIdP"), p.iconClasses), "aria-hidden": "true" }), _jsx("span", Object.assign({ className: clsx(kcClsx("kcFormSocialAccountNameClass"), p.iconClasses && "kc-social-icon-text") }, { children: p.displayName }))] })) }, p.alias))) }))] }))) }) }, { children: [_jsx("div", Object.assign({ id: "kc-form" }, { children: _jsx("div", Object.assign({ id: "kc-form-wrapper" }, { children: realm.password && (_jsxs("form", Object.assign({ id: "kc-form-login", onSubmit: () => {
|
|
23
|
+
setIsLoginButtonDisabled(true);
|
|
24
|
+
return true;
|
|
25
|
+
}, action: url.loginAction, method: "post" }, { children: [!usernameHidden && (_jsxs("div", Object.assign({ className: kcClsx("kcFormGroupClass") }, { children: [_jsx("label", Object.assign({ htmlFor: "username", className: kcClsx("kcLabelClass") }, { children: !realm.loginWithEmailAllowed
|
|
26
|
+
? msg("username")
|
|
27
|
+
: !realm.registrationEmailAsUsername
|
|
28
|
+
? msg("usernameOrEmail")
|
|
29
|
+
: msg("email") })), _jsx("input", { tabIndex: 2, id: "username", className: kcClsx("kcInputClass"), name: "username", defaultValue: (_a = login.username) !== null && _a !== void 0 ? _a : "", type: "text", autoFocus: true, autoComplete: "username", "aria-invalid": messagesPerField.existsError("username") }), messagesPerField.existsError("username") && (_jsx("span", Object.assign({ id: "input-error", className: kcClsx("kcInputErrorMessageClass"), "aria-live": "polite" }, { children: messagesPerField.getFirstError("username") })))] }))), _jsx("div", Object.assign({ className: kcClsx("kcFormGroupClass", "kcFormSettingClass") }, { children: _jsx("div", Object.assign({ id: "kc-form-options" }, { children: realm.rememberMe && !usernameHidden && (_jsx("div", Object.assign({ className: "checkbox" }, { children: _jsxs("label", { children: [_jsx("input", { tabIndex: 3, id: "rememberMe", name: "rememberMe", type: "checkbox", defaultChecked: !!login.rememberMe }), " ", msg("rememberMe")] }) }))) })) })), _jsx("div", Object.assign({ id: "kc-form-buttons", className: kcClsx("kcFormGroupClass") }, { children: _jsx("input", { tabIndex: 4, disabled: isLoginButtonDisabled, className: kcClsx("kcButtonClass", "kcButtonPrimaryClass", "kcButtonBlockClass", "kcButtonLargeClass"), name: "login", id: "kc-login", type: "submit", value: msgStr("doLogIn") }) }))] }))) })) })), enableWebAuthnConditionalUI && (_jsxs(_Fragment, { children: [_jsxs("form", Object.assign({ id: "webauth", action: url.loginAction, method: "post" }, { children: [_jsx("input", { type: "hidden", id: "clientDataJSON", name: "clientDataJSON" }), _jsx("input", { type: "hidden", id: "authenticatorData", name: "authenticatorData" }), _jsx("input", { type: "hidden", id: "signature", name: "signature" }), _jsx("input", { type: "hidden", id: "credentialId", name: "credentialId" }), _jsx("input", { type: "hidden", id: "userHandle", name: "userHandle" }), _jsx("input", { type: "hidden", id: "error", name: "error" })] })), authenticators !== undefined && Object.keys(authenticators).length !== 0 && (_jsx(_Fragment, { children: _jsx("form", Object.assign({ id: "authn_select", className: kcClsx("kcFormClass") }, { children: authenticators.authenticators.map((authenticator, i) => (_jsx("input", { type: "hidden", name: "authn_use_chk", readOnly: true, value: authenticator.credentialId }, i))) })) })), _jsx("br", {}), _jsx("a", Object.assign({ id: authButtonId, href: "#", className: kcClsx("kcButtonSecondaryClass", "kcButtonBlockClass") }, { children: msg("passkey-doAuthenticate") }))] }))] })));
|
|
23
30
|
}
|
|
24
31
|
//# sourceMappingURL=LoginUsername.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LoginUsername.js","sourceRoot":"","sources":["../../src/login/pages/LoginUsername.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"LoginUsername.js","sourceRoot":"","sources":["../../src/login/pages/LoginUsername.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { KcContext } from "../../login/KcContext/KcContext";
|
|
2
|
+
type KcContextLike = {
|
|
3
|
+
url: {
|
|
4
|
+
resourcesPath: string;
|
|
5
|
+
};
|
|
6
|
+
isUserIdentified: "true" | "false";
|
|
7
|
+
challenge: string;
|
|
8
|
+
userVerification: KcContext.WebauthnAuthenticate["userVerification"];
|
|
9
|
+
rpId: string;
|
|
10
|
+
createTimeout: number | string;
|
|
11
|
+
};
|
|
12
|
+
type I18nLike = {
|
|
13
|
+
msgStr: (key: "webauthn-unsupported-browser-text") => string;
|
|
14
|
+
isFetchingTranslations: boolean;
|
|
15
|
+
};
|
|
16
|
+
export declare function useScript(params: {
|
|
17
|
+
authButtonId: string;
|
|
18
|
+
kcContext: KcContextLike;
|
|
19
|
+
i18n: I18nLike;
|
|
20
|
+
}): void;
|
|
21
|
+
export {};
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { useEffect } from "react";
|
|
2
|
+
import { useInsertScriptTags } from "../../tools/useInsertScriptTags";
|
|
3
|
+
import { assert } from "../../tools/assert";
|
|
4
|
+
import { waitForElementMountedOnDom } from "../../tools/waitForElementMountedOnDom";
|
|
5
|
+
assert();
|
|
6
|
+
assert();
|
|
7
|
+
export function useScript(params) {
|
|
8
|
+
const { authButtonId, kcContext, i18n } = params;
|
|
9
|
+
const { url, isUserIdentified, challenge, userVerification, rpId, createTimeout } = kcContext;
|
|
10
|
+
const { msgStr, isFetchingTranslations } = i18n;
|
|
11
|
+
const { insertScriptTags } = useInsertScriptTags({
|
|
12
|
+
componentOrHookName: "LoginUsername",
|
|
13
|
+
scriptTags: [
|
|
14
|
+
{
|
|
15
|
+
type: "module",
|
|
16
|
+
textContent: () => `
|
|
17
|
+
|
|
18
|
+
import { authenticateByWebAuthn } from "${url.resourcesPath}/js/webauthnAuthenticate.js";
|
|
19
|
+
const authButton = document.getElementById('${authButtonId}');
|
|
20
|
+
authButton.addEventListener("click", function() {
|
|
21
|
+
const input = {
|
|
22
|
+
isUserIdentified : ${isUserIdentified},
|
|
23
|
+
challenge : '${challenge}',
|
|
24
|
+
userVerification : '${userVerification}',
|
|
25
|
+
rpId : '${rpId}',
|
|
26
|
+
createTimeout : ${createTimeout},
|
|
27
|
+
errmsg : ${JSON.stringify(msgStr("webauthn-unsupported-browser-text"))}
|
|
28
|
+
};
|
|
29
|
+
authenticateByWebAuthn(input);
|
|
30
|
+
});
|
|
31
|
+
`
|
|
32
|
+
}
|
|
33
|
+
]
|
|
34
|
+
});
|
|
35
|
+
useEffect(() => {
|
|
36
|
+
if (isFetchingTranslations) {
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
(async () => {
|
|
40
|
+
await waitForElementMountedOnDom({
|
|
41
|
+
elementId: authButtonId
|
|
42
|
+
});
|
|
43
|
+
insertScriptTags();
|
|
44
|
+
})();
|
|
45
|
+
}, [isFetchingTranslations]);
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=LoginUsername.useScript.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LoginUsername.useScript.js","sourceRoot":"","sources":["../../src/login/pages/LoginUsername.useScript.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAC5E,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAElD,OAAO,EAAE,0BAA0B,EAAE,MAAM,8CAA8C,CAAC;AAa1F,MAAM,EAA4E,CAAC;AACnF,MAAM,EAAgE,CAAC;AAOvE,MAAM,UAAU,SAAS,CAAC,MAA0E;IAChG,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;IAEjD,MAAM,EAAE,GAAG,EAAE,gBAAgB,EAAE,SAAS,EAAE,gBAAgB,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,SAAS,CAAC;IAE9F,MAAM,EAAE,MAAM,EAAE,sBAAsB,EAAE,GAAG,IAAI,CAAC;IAEhD,MAAM,EAAE,gBAAgB,EAAE,GAAG,mBAAmB,CAAC;QAC7C,mBAAmB,EAAE,eAAe;QACpC,UAAU,EAAE;YACR;gBACI,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,GAAG,EAAE,CAAC;;8DAE2B,GAAG,CAAC,aAAa;kEACb,YAAY;;;iDAG7B,gBAAgB;2CACtB,SAAS;kDACF,gBAAgB;sCAC5B,IAAI;8CACI,aAAa;uCACpB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,mCAAmC,CAAC,CAAC;;;;iBAIjF;aACJ;SACJ;KACJ,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACX,IAAI,sBAAsB,EAAE;YACxB,OAAO;SACV;QAED,CAAC,KAAK,IAAI,EAAE;YACR,MAAM,0BAA0B,CAAC;gBAC7B,SAAS,EAAE,YAAY;aAC1B,CAAC,CAAC;YAEH,gBAAgB,EAAE,CAAC;QACvB,CAAC,CAAC,EAAE,CAAC;IACT,CAAC,EAAE,CAAC,sBAAsB,CAAC,CAAC,CAAC;AACjC,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import type { PageProps } from "../../login/pages/PageProps";
|
|
3
|
+
import type { KcContext } from "../KcContext";
|
|
4
|
+
import type { I18n } from "../i18n";
|
|
5
|
+
export default function SelectOrganization(props: PageProps<Extract<KcContext, {
|
|
6
|
+
pageId: "select-organization.ftl";
|
|
7
|
+
}>, I18n>): React.ReactElement<any, any>;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useRef, useState } from "react";
|
|
3
|
+
import { getKcClsx } from "../../login/lib/kcClsx";
|
|
4
|
+
export default function SelectOrganization(props) {
|
|
5
|
+
var _a;
|
|
6
|
+
const { kcContext, i18n, doUseDefaultCss, Template, classes } = props;
|
|
7
|
+
const { kcClsx } = getKcClsx({
|
|
8
|
+
doUseDefaultCss,
|
|
9
|
+
classes
|
|
10
|
+
});
|
|
11
|
+
const { url, user } = kcContext;
|
|
12
|
+
const { msg } = i18n;
|
|
13
|
+
const [isSubmitting, setIsSubmitting] = useState(false);
|
|
14
|
+
const formRef = useRef(null);
|
|
15
|
+
const organizationInputRef = useRef(null);
|
|
16
|
+
const onOrganizationClick = (organizationAlias) => (event) => {
|
|
17
|
+
event.preventDefault();
|
|
18
|
+
if (!organizationInputRef.current || !formRef.current) {
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
organizationInputRef.current.value = organizationAlias;
|
|
22
|
+
setIsSubmitting(true);
|
|
23
|
+
if (typeof formRef.current.requestSubmit === "function") {
|
|
24
|
+
formRef.current.requestSubmit();
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
formRef.current.submit();
|
|
28
|
+
};
|
|
29
|
+
const organizations = (_a = user.organizations) !== null && _a !== void 0 ? _a : [];
|
|
30
|
+
const shouldDisplayGrid = organizations.length > 3;
|
|
31
|
+
return (_jsx(Template, Object.assign({ kcContext: kcContext, i18n: i18n, doUseDefaultCss: doUseDefaultCss, classes: classes, headerNode: null }, { children: _jsxs("form", Object.assign({ ref: formRef, action: url.loginAction, className: "form-vertical", method: "post" }, { children: [_jsxs("div", Object.assign({ id: "kc-user-organizations", className: kcClsx("kcFormGroupClass") }, { children: [_jsx("h2", { children: msg("organization.select") }), _jsx("ul", Object.assign({ className: kcClsx("kcFormSocialAccountListClass", shouldDisplayGrid && "kcFormSocialAccountListGridClass") }, { children: organizations.map(({ alias, name }) => (_jsx("li", { children: _jsx("button", Object.assign({ id: `organization-${alias}`, className: kcClsx("kcFormSocialAccountListButtonClass", shouldDisplayGrid && "kcFormSocialAccountGridItem"), type: "button", onClick: onOrganizationClick(alias), disabled: isSubmitting }, { children: _jsx("span", Object.assign({ className: kcClsx("kcFormSocialAccountNameClass") }, { children: name !== null && name !== void 0 ? name : alias })) })) }, alias))) }))] })), _jsx("input", { ref: organizationInputRef, type: "hidden", name: "kc.org" })] })) })));
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=SelectOrganization.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SelectOrganization.js","sourceRoot":"","sources":["../../src/login/pages/SelectOrganization.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAc,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAKzD,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,KAAiF;;IACxH,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAEtE,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;QACzB,eAAe;QACf,OAAO;KACV,CAAC,CAAC;IAEH,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,SAAS,CAAC;IAEhC,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAErB,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxD,MAAM,OAAO,GAAG,MAAM,CAAkB,IAAI,CAAC,CAAC;IAC9C,MAAM,oBAAoB,GAAG,MAAM,CAAmB,IAAI,CAAC,CAAC;IAE5D,MAAM,mBAAmB,GAAG,CAAC,iBAAyB,EAAE,EAAE,CAAC,CAAC,KAAoC,EAAE,EAAE;QAChG,KAAK,CAAC,cAAc,EAAE,CAAC;QAEvB,IAAI,CAAC,oBAAoB,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;YACnD,OAAO;SACV;QAED,oBAAoB,CAAC,OAAO,CAAC,KAAK,GAAG,iBAAiB,CAAC;QACvD,eAAe,CAAC,IAAI,CAAC,CAAC;QAEtB,IAAI,OAAO,OAAO,CAAC,OAAO,CAAC,aAAa,KAAK,UAAU,EAAE;YACrD,OAAO,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;YAChC,OAAO;SACV;QAED,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;IAC7B,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,MAAA,IAAI,CAAC,aAAa,mCAAI,EAAE,CAAC;IAC/C,MAAM,iBAAiB,GAAG,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;IAEnD,OAAO,CACH,KAAC,QAAQ,kBAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,eAAe,EAAE,eAAe,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,gBAC5G,8BAAM,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,WAAW,EAAE,SAAS,EAAC,eAAe,EAAC,MAAM,EAAC,MAAM,iBAChF,6BAAK,EAAE,EAAC,uBAAuB,EAAC,SAAS,EAAE,MAAM,CAAC,kBAAkB,CAAC,iBACjE,uBAAK,GAAG,CAAC,qBAAqB,CAAC,GAAM,EACrC,2BAAI,SAAS,EAAE,MAAM,CAAC,8BAA8B,EAAE,iBAAiB,IAAI,kCAAkC,CAAC,gBACzG,aAAa,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CACpC,uBACI,+BACI,EAAE,EAAE,gBAAgB,KAAK,EAAE,EAC3B,SAAS,EAAE,MAAM,CAAC,oCAAoC,EAAE,iBAAiB,IAAI,6BAA6B,CAAC,EAC3G,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,mBAAmB,CAAC,KAAK,CAAC,EACnC,QAAQ,EAAE,YAAY,gBAEtB,6BAAM,SAAS,EAAE,MAAM,CAAC,8BAA8B,CAAC,gBAAG,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,KAAK,IAAQ,IAC1E,IATJ,KAAK,CAUT,CACR,CAAC,IACD,KACH,EACN,gBAAO,GAAG,EAAE,oBAAoB,EAAE,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAC,QAAQ,GAAG,KAC7D,IACA,CACd,CAAC;AACN,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "keycloakify",
|
|
3
|
-
"version": "11.
|
|
3
|
+
"version": "11.11.0",
|
|
4
4
|
"description": "Framework to create custom Keycloak UIs",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -451,6 +451,9 @@
|
|
|
451
451
|
"login/pages/LoginUsername.d.ts",
|
|
452
452
|
"login/pages/LoginUsername.js",
|
|
453
453
|
"login/pages/LoginUsername.js.map",
|
|
454
|
+
"login/pages/LoginUsername.useScript.d.ts",
|
|
455
|
+
"login/pages/LoginUsername.useScript.js",
|
|
456
|
+
"login/pages/LoginUsername.useScript.js.map",
|
|
454
457
|
"login/pages/LoginVerifyEmail.d.ts",
|
|
455
458
|
"login/pages/LoginVerifyEmail.js",
|
|
456
459
|
"login/pages/LoginVerifyEmail.js.map",
|
|
@@ -472,6 +475,9 @@
|
|
|
472
475
|
"login/pages/SelectAuthenticator.d.ts",
|
|
473
476
|
"login/pages/SelectAuthenticator.js",
|
|
474
477
|
"login/pages/SelectAuthenticator.js.map",
|
|
478
|
+
"login/pages/SelectOrganization.d.ts",
|
|
479
|
+
"login/pages/SelectOrganization.js",
|
|
480
|
+
"login/pages/SelectOrganization.js.map",
|
|
475
481
|
"login/pages/Terms.d.ts",
|
|
476
482
|
"login/pages/Terms.js",
|
|
477
483
|
"login/pages/Terms.js.map",
|
|
@@ -855,6 +861,7 @@
|
|
|
855
861
|
"src/login/pages/LoginUpdatePassword.tsx",
|
|
856
862
|
"src/login/pages/LoginUpdateProfile.tsx",
|
|
857
863
|
"src/login/pages/LoginUsername.tsx",
|
|
864
|
+
"src/login/pages/LoginUsername.useScript.tsx",
|
|
858
865
|
"src/login/pages/LoginVerifyEmail.tsx",
|
|
859
866
|
"src/login/pages/LoginX509Info.tsx",
|
|
860
867
|
"src/login/pages/LogoutConfirm.tsx",
|
|
@@ -862,6 +869,7 @@
|
|
|
862
869
|
"src/login/pages/Register.tsx",
|
|
863
870
|
"src/login/pages/SamlPostForm.tsx",
|
|
864
871
|
"src/login/pages/SelectAuthenticator.tsx",
|
|
872
|
+
"src/login/pages/SelectOrganization.tsx",
|
|
865
873
|
"src/login/pages/Terms.tsx",
|
|
866
874
|
"src/login/pages/UpdateEmail.tsx",
|
|
867
875
|
"src/login/pages/WebauthnAuthenticate.tsx",
|
|
@@ -944,6 +952,7 @@
|
|
|
944
952
|
"stories/login/pages/Register.stories.tsx",
|
|
945
953
|
"stories/login/pages/SamlPostForm.stories.tsx",
|
|
946
954
|
"stories/login/pages/SelectAuthenticator.stories.tsx",
|
|
955
|
+
"stories/login/pages/SelectOrganization.stories.tsx",
|
|
947
956
|
"stories/login/pages/Terms.stories.tsx",
|
|
948
957
|
"stories/login/pages/UpdateEmail.stories.tsx",
|
|
949
958
|
"stories/login/pages/WebauthnAuthenticate.stories.tsx",
|
|
@@ -53,7 +53,8 @@ export const LOGIN_THEME_PAGE_IDS = [
|
|
|
53
53
|
"login-x509-info.ftl",
|
|
54
54
|
"webauthn-error.ftl",
|
|
55
55
|
"login-passkeys-conditional-authenticate.ftl",
|
|
56
|
-
"login-idp-link-confirm-override.ftl"
|
|
56
|
+
"login-idp-link-confirm-override.ftl",
|
|
57
|
+
"select-organization.ftl"
|
|
57
58
|
] as const;
|
|
58
59
|
|
|
59
60
|
export const ACCOUNT_THEME_PAGE_IDS = [
|
|
@@ -43,6 +43,7 @@ const LoginX509Info = lazy(() => import("keycloakify/login/pages/LoginX509Info")
|
|
|
43
43
|
const WebauthnError = lazy(() => import("keycloakify/login/pages/WebauthnError"));
|
|
44
44
|
const LoginPasskeysConditionalAuthenticate = lazy(() => import("keycloakify/login/pages/LoginPasskeysConditionalAuthenticate"));
|
|
45
45
|
const LoginIdpLinkConfirmOverride = lazy(() => import("keycloakify/login/pages/LoginIdpLinkConfirmOverride"));
|
|
46
|
+
const SelectOrganization = lazy(() => import("keycloakify/login/pages/SelectOrganization"));
|
|
46
47
|
|
|
47
48
|
type DefaultPageProps = PageProps<KcContext, I18n> & {
|
|
48
49
|
UserProfileFormFields: LazyOrNot<(props: UserProfileFormFieldsProps) => JSX.Element>;
|
|
@@ -128,6 +129,8 @@ export default function DefaultPage(props: DefaultPageProps) {
|
|
|
128
129
|
return <LoginPasskeysConditionalAuthenticate kcContext={kcContext} {...rest} />;
|
|
129
130
|
case "login-idp-link-confirm-override.ftl":
|
|
130
131
|
return <LoginIdpLinkConfirmOverride kcContext={kcContext} {...rest} />;
|
|
132
|
+
case "select-organization.ftl":
|
|
133
|
+
return <SelectOrganization kcContext={kcContext} {...rest} />;
|
|
131
134
|
}
|
|
132
135
|
assert<Equals<typeof kcContext, never>>(false);
|
|
133
136
|
})()}
|
|
@@ -61,7 +61,8 @@ export type KcContext =
|
|
|
61
61
|
| KcContext.LoginX509Info
|
|
62
62
|
| KcContext.WebauthnError
|
|
63
63
|
| KcContext.LoginPasskeysConditionalAuthenticate
|
|
64
|
-
| KcContext.LoginIdpLinkConfirmOverride
|
|
64
|
+
| KcContext.LoginIdpLinkConfirmOverride
|
|
65
|
+
| KcContext.SelectOrganization;
|
|
65
66
|
|
|
66
67
|
assert<KcContext["themeType"] extends ThemeType ? true : false>();
|
|
67
68
|
|
|
@@ -335,6 +336,16 @@ export declare namespace KcContext {
|
|
|
335
336
|
};
|
|
336
337
|
usernameHidden?: boolean;
|
|
337
338
|
social?: Login["social"];
|
|
339
|
+
|
|
340
|
+
enableWebAuthnConditionalUI?: boolean;
|
|
341
|
+
authenticators?: {
|
|
342
|
+
authenticators: WebauthnAuthenticate.WebauthnAuthenticator[];
|
|
343
|
+
};
|
|
344
|
+
isUserIdentified: "true" | "false";
|
|
345
|
+
challenge: string;
|
|
346
|
+
userVerification: UserVerificationRequirement | "not specified";
|
|
347
|
+
rpId: string;
|
|
348
|
+
createTimeout: string | number;
|
|
338
349
|
};
|
|
339
350
|
|
|
340
351
|
export type LoginPassword = Common & {
|
|
@@ -610,6 +621,16 @@ export declare namespace KcContext {
|
|
|
610
621
|
};
|
|
611
622
|
idpDisplayName: string;
|
|
612
623
|
};
|
|
624
|
+
|
|
625
|
+
export type SelectOrganization = Common & {
|
|
626
|
+
pageId: "select-organization.ftl";
|
|
627
|
+
user: {
|
|
628
|
+
organizations: {
|
|
629
|
+
alias: string;
|
|
630
|
+
name?: string;
|
|
631
|
+
}[];
|
|
632
|
+
};
|
|
633
|
+
};
|
|
613
634
|
}
|
|
614
635
|
|
|
615
636
|
export type UserProfile = {
|
|
@@ -342,7 +342,13 @@ export const kcContextMocks = [
|
|
|
342
342
|
},
|
|
343
343
|
usernameHidden: false,
|
|
344
344
|
login: {},
|
|
345
|
-
registrationDisabled: false
|
|
345
|
+
registrationDisabled: false,
|
|
346
|
+
|
|
347
|
+
challenge: "",
|
|
348
|
+
userVerification: "not specified",
|
|
349
|
+
rpId: "",
|
|
350
|
+
createTimeout: "0",
|
|
351
|
+
isUserIdentified: "false"
|
|
346
352
|
}),
|
|
347
353
|
id<KcContext.LoginPassword>({
|
|
348
354
|
...kcContextCommonMock,
|
|
@@ -617,6 +623,29 @@ export const kcContextMocks = [
|
|
|
617
623
|
loginRestartFlowUrl: "#"
|
|
618
624
|
},
|
|
619
625
|
idpDisplayName: "Google"
|
|
626
|
+
}),
|
|
627
|
+
id<KcContext.SelectOrganization>({
|
|
628
|
+
pageId: "select-organization.ftl",
|
|
629
|
+
...kcContextCommonMock,
|
|
630
|
+
user: {
|
|
631
|
+
organizations: [
|
|
632
|
+
{
|
|
633
|
+
alias: "acme-inc",
|
|
634
|
+
name: "Acme Incorporated"
|
|
635
|
+
},
|
|
636
|
+
{
|
|
637
|
+
alias: "northwind-traders",
|
|
638
|
+
name: "Northwind Traders"
|
|
639
|
+
},
|
|
640
|
+
{
|
|
641
|
+
alias: "contoso-labs",
|
|
642
|
+
name: "Contoso Labs"
|
|
643
|
+
},
|
|
644
|
+
{
|
|
645
|
+
alias: "shared-services"
|
|
646
|
+
}
|
|
647
|
+
]
|
|
648
|
+
}
|
|
620
649
|
})
|
|
621
650
|
];
|
|
622
651
|
|
|
@@ -510,7 +510,8 @@ const messages = {
|
|
|
510
510
|
selectAnOption: "Selecciona una opció",
|
|
511
511
|
remove: "Elimina",
|
|
512
512
|
addValue: "Afegeix valor",
|
|
513
|
-
languages: "Idiomes"
|
|
513
|
+
languages: "Idiomes",
|
|
514
|
+
"organization.select": "Selecciona una organització per continuar:"
|
|
514
515
|
};
|
|
515
516
|
|
|
516
517
|
export default messages;
|
|
@@ -487,7 +487,8 @@ const messages = {
|
|
|
487
487
|
selectAnOption: "Vyberte možnost",
|
|
488
488
|
remove: "Odstranit",
|
|
489
489
|
addValue: "Přidat hodnotu",
|
|
490
|
-
languages: "Jazyky"
|
|
490
|
+
languages: "Jazyky",
|
|
491
|
+
"organization.select": "Vyberte organizaci pro pokračování:"
|
|
491
492
|
};
|
|
492
493
|
|
|
493
494
|
export default messages;
|
|
@@ -349,7 +349,8 @@ const messages = {
|
|
|
349
349
|
selectAnOption: "Vælg en mulighed",
|
|
350
350
|
remove: "Fjern",
|
|
351
351
|
addValue: "Tilføj værdi",
|
|
352
|
-
languages: "Sprog"
|
|
352
|
+
languages: "Sprog",
|
|
353
|
+
"organization.select": "Vælg en organisation for at fortsætte:"
|
|
353
354
|
};
|
|
354
355
|
|
|
355
356
|
export default messages;
|
|
@@ -536,7 +536,8 @@ const messages = {
|
|
|
536
536
|
selectAnOption: "Wählen Sie eine Option",
|
|
537
537
|
remove: "Entfernen",
|
|
538
538
|
addValue: "Wert hinzufügen",
|
|
539
|
-
languages: "Sprachen"
|
|
539
|
+
languages: "Sprachen",
|
|
540
|
+
"organization.select": "Wählen Sie eine Organisation, um fortzufahren:"
|
|
540
541
|
};
|
|
541
542
|
|
|
542
543
|
export default messages;
|
|
@@ -505,7 +505,8 @@ const messages = {
|
|
|
505
505
|
selectAnOption: "Επιλέξτε μια επιλογή",
|
|
506
506
|
remove: "Αφαίρεση",
|
|
507
507
|
addValue: "Προσθήκη τιμής",
|
|
508
|
-
languages: "Γλώσσες"
|
|
508
|
+
languages: "Γλώσσες",
|
|
509
|
+
"organization.select": "Επιλέξτε έναν οργανισμό για να συνεχίσετε:"
|
|
509
510
|
};
|
|
510
511
|
|
|
511
512
|
export default messages;
|
|
@@ -521,7 +521,8 @@ const messages = {
|
|
|
521
521
|
selectAnOption: "Select an option",
|
|
522
522
|
remove: "Remove",
|
|
523
523
|
addValue: "Add value",
|
|
524
|
-
languages: "Languages"
|
|
524
|
+
languages: "Languages",
|
|
525
|
+
"organization.select": "Select an organization to proceed:"
|
|
525
526
|
};
|
|
526
527
|
|
|
527
528
|
export default messages;
|
|
@@ -518,7 +518,8 @@ const messages = {
|
|
|
518
518
|
selectAnOption: "Selecciona una opción",
|
|
519
519
|
remove: "Eliminar",
|
|
520
520
|
addValue: "Añadir valor",
|
|
521
|
-
languages: "Idiomas"
|
|
521
|
+
languages: "Idiomas",
|
|
522
|
+
"organization.select": "Selecciona una organización para continuar:"
|
|
522
523
|
};
|
|
523
524
|
|
|
524
525
|
export default messages;
|
|
@@ -473,7 +473,8 @@ const messages = {
|
|
|
473
473
|
selectAnOption: "یک گزینه انتخاب کنید",
|
|
474
474
|
remove: "حذف",
|
|
475
475
|
addValue: "افزودن مقدار",
|
|
476
|
-
languages: "زبانها"
|
|
476
|
+
languages: "زبانها",
|
|
477
|
+
"organization.select": "یک سازمان را برای ادامه انتخاب کنید:"
|
|
477
478
|
};
|
|
478
479
|
|
|
479
480
|
export default messages;
|
|
@@ -419,7 +419,8 @@ const messages = {
|
|
|
419
419
|
selectAnOption: "Valitse vaihtoehto",
|
|
420
420
|
remove: "Poista",
|
|
421
421
|
addValue: "Lisää arvo",
|
|
422
|
-
languages: "Kielet"
|
|
422
|
+
languages: "Kielet",
|
|
423
|
+
"organization.select": "Valitse organisaatio jatkaaksesi:"
|
|
423
424
|
};
|
|
424
425
|
|
|
425
426
|
export default messages;
|
|
@@ -451,7 +451,8 @@ const messages = {
|
|
|
451
451
|
selectAnOption: "Sélectionnez une option",
|
|
452
452
|
remove: "Supprimer",
|
|
453
453
|
addValue: "Ajouter une valeur",
|
|
454
|
-
languages: "Langues"
|
|
454
|
+
languages: "Langues",
|
|
455
|
+
"organization.select": "Sélectionnez une organisation pour continuer :"
|
|
455
456
|
};
|
|
456
457
|
|
|
457
458
|
export default messages;
|
|
@@ -505,7 +505,8 @@ const messages = {
|
|
|
505
505
|
selectAnOption: "Válasszon egy lehetőséget",
|
|
506
506
|
remove: "Eltávolítás",
|
|
507
507
|
addValue: "Érték hozzáadása",
|
|
508
|
-
languages: "Nyelvek"
|
|
508
|
+
languages: "Nyelvek",
|
|
509
|
+
"organization.select": "Válasszon egy szervezetet a folytatáshoz:"
|
|
509
510
|
};
|
|
510
511
|
|
|
511
512
|
export default messages;
|
|
@@ -359,7 +359,8 @@ const messages = {
|
|
|
359
359
|
selectAnOption: "Seleziona un'opzione",
|
|
360
360
|
remove: "Rimuovi",
|
|
361
361
|
addValue: "Aggiungi valore",
|
|
362
|
-
languages: "Lingue"
|
|
362
|
+
languages: "Lingue",
|
|
363
|
+
"organization.select": "Seleziona un'organizzazione per continuare:"
|
|
363
364
|
};
|
|
364
365
|
|
|
365
366
|
export default messages;
|
|
@@ -530,7 +530,8 @@ const messages = {
|
|
|
530
530
|
selectAnOption: "აირჩიეთ ვარიანტი",
|
|
531
531
|
remove: "წაშალეთ",
|
|
532
532
|
addValue: "დაამატეთ მნიშვნელობა",
|
|
533
|
-
languages: "ენები"
|
|
533
|
+
languages: "ენები",
|
|
534
|
+
"organization.select": "აირჩიეთ ორგანიზაცია გაგრძელებისთვის:"
|
|
534
535
|
};
|
|
535
536
|
|
|
536
537
|
export default messages;
|
|
@@ -226,7 +226,8 @@ const messages = {
|
|
|
226
226
|
selectAnOption: "Pasirinkite parinktį",
|
|
227
227
|
remove: "Pašalinti",
|
|
228
228
|
addValue: "Pridėti reikšmę",
|
|
229
|
-
languages: "Kalbos"
|
|
229
|
+
languages: "Kalbos",
|
|
230
|
+
"organization.select": "Pasirinkite organizaciją, kad galėtumėte tęsti:"
|
|
230
231
|
};
|
|
231
232
|
|
|
232
233
|
export default messages;
|
|
@@ -222,7 +222,8 @@ const messages = {
|
|
|
222
222
|
selectAnOption: "Izvēlieties opciju",
|
|
223
223
|
remove: "Noņemt",
|
|
224
224
|
addValue: "Pievienot vērtību",
|
|
225
|
-
languages: "Valodas"
|
|
225
|
+
languages: "Valodas",
|
|
226
|
+
"organization.select": "Izvēlieties organizāciju, lai turpinātu:"
|
|
226
227
|
};
|
|
227
228
|
|
|
228
229
|
export default messages;
|
|
@@ -317,7 +317,8 @@ const messages = {
|
|
|
317
317
|
selectAnOption: "Selecteer een optie",
|
|
318
318
|
remove: "Verwijderen",
|
|
319
319
|
addValue: "Waarde toevoegen",
|
|
320
|
-
languages: "Talen"
|
|
320
|
+
languages: "Talen",
|
|
321
|
+
"organization.select": "Selecteer een organisatie om door te gaan:"
|
|
321
322
|
};
|
|
322
323
|
|
|
323
324
|
export default messages;
|
|
@@ -221,7 +221,8 @@ const messages = {
|
|
|
221
221
|
selectAnOption: "Velg et alternativ",
|
|
222
222
|
remove: "Fjern",
|
|
223
223
|
addValue: "Legg til verdi",
|
|
224
|
-
languages: "Språk"
|
|
224
|
+
languages: "Språk",
|
|
225
|
+
"organization.select": "Velg en organisasjon for å fortsette:"
|
|
225
226
|
};
|
|
226
227
|
|
|
227
228
|
export default messages;
|
|
@@ -321,7 +321,8 @@ const messages = {
|
|
|
321
321
|
selectAnOption: "Wybierz opcję",
|
|
322
322
|
remove: "Usuń",
|
|
323
323
|
addValue: "Dodaj wartość",
|
|
324
|
-
languages: "Języki"
|
|
324
|
+
languages: "Języki",
|
|
325
|
+
"organization.select": "Wybierz organizację, aby kontynuować:"
|
|
325
326
|
};
|
|
326
327
|
|
|
327
328
|
export default messages;
|