2021-02-23 15:32:37 +01:00
|
|
|
|
|
2021-03-02 12:17:24 +01:00
|
|
|
|
import { ftlValuesGlobalName } from "../bin/build-keycloak-theme/ftlValuesGlobalName";
|
2021-02-23 15:32:37 +01:00
|
|
|
|
import type { generateFtlFilesCodeFactory } from "../bin/build-keycloak-theme/generateFtl";
|
2021-02-24 00:27:16 +01:00
|
|
|
|
import { id } from "evt/tools/typeSafety/id";
|
2021-03-02 23:48:31 +01:00
|
|
|
|
import type { KcLanguageTag } from "./i18n/KcLanguageTag";
|
2021-02-23 15:32:37 +01:00
|
|
|
|
|
|
|
|
|
|
2021-03-02 23:48:31 +01:00
|
|
|
|
export type KcContext = {
|
2021-02-23 15:32:37 +01:00
|
|
|
|
pageBasename: Parameters<ReturnType<typeof generateFtlFilesCodeFactory>["generateFtlFilesCode"]>[0]["pageBasename"];
|
|
|
|
|
url: {
|
2021-02-24 00:27:16 +01:00
|
|
|
|
loginAction: string;
|
|
|
|
|
resourcesPath: string;
|
|
|
|
|
resourcesCommonPath: string;
|
|
|
|
|
loginRestartFlowUrl: string;
|
2021-03-02 22:48:36 +01:00
|
|
|
|
loginResetCredentialsUrl: string;
|
|
|
|
|
registrationUrl: string;
|
|
|
|
|
};
|
2021-02-24 00:27:16 +01:00
|
|
|
|
realm: {
|
|
|
|
|
displayName?: string;
|
|
|
|
|
displayNameHtml?: string;
|
|
|
|
|
internationalizationEnabled: boolean;
|
2021-03-02 22:48:36 +01:00
|
|
|
|
password: boolean;
|
|
|
|
|
loginWithEmailAllowed: boolean;
|
|
|
|
|
registrationEmailAsUsername: boolean;
|
|
|
|
|
rememberMe: boolean;
|
|
|
|
|
resetPasswordAllowed: boolean;
|
|
|
|
|
};
|
2021-03-01 20:45:37 +01:00
|
|
|
|
/** Undefined if !realm.internationalizationEnabled */
|
2021-02-24 00:27:16 +01:00
|
|
|
|
locale?: {
|
|
|
|
|
supported: {
|
2021-03-01 20:45:37 +01:00
|
|
|
|
//url: string;
|
2021-03-02 23:48:31 +01:00
|
|
|
|
languageTag: KcLanguageTag;
|
2021-03-01 20:45:37 +01:00
|
|
|
|
/** Is determined by languageTag. Ex: languageTag === "en" => label === "English"
|
|
|
|
|
* or getLanguageLabel(languageTag) === label
|
|
|
|
|
*/
|
|
|
|
|
//label: LanguageLabel;
|
|
|
|
|
}[];
|
|
|
|
|
//NOTE: We do not expose this because the language is managed
|
|
|
|
|
//client side. We use this value however to set the default.
|
|
|
|
|
//current: LanguageLabel;
|
2021-02-24 00:27:16 +01:00
|
|
|
|
},
|
|
|
|
|
auth?: {
|
|
|
|
|
showUsername: boolean;
|
|
|
|
|
showResetCredentials: boolean;
|
|
|
|
|
showTryAnotherWayLink: boolean;
|
|
|
|
|
attemptedUsername?: boolean;
|
2021-03-02 22:48:36 +01:00
|
|
|
|
selectedCredential?: string;
|
|
|
|
|
};
|
2021-02-24 00:27:16 +01:00
|
|
|
|
scripts: string[];
|
|
|
|
|
message?: {
|
|
|
|
|
type: "success" | "warning" | "error" | "info";
|
|
|
|
|
summary: string;
|
2021-03-02 22:48:36 +01:00
|
|
|
|
};
|
2021-02-24 00:27:16 +01:00
|
|
|
|
isAppInitiatedAction: boolean;
|
2021-03-02 22:48:36 +01:00
|
|
|
|
social: {
|
|
|
|
|
displayInfo: boolean;
|
|
|
|
|
providers?: {
|
|
|
|
|
loginUrl: string;
|
|
|
|
|
alias: string;
|
|
|
|
|
providerId: string;
|
|
|
|
|
displayName: string;
|
|
|
|
|
}[]
|
|
|
|
|
};
|
|
|
|
|
usernameEditDisabled: boolean;
|
|
|
|
|
login: {
|
|
|
|
|
username?: string;
|
|
|
|
|
rememberMe: boolean;
|
|
|
|
|
};
|
|
|
|
|
registrationDisabled: boolean;
|
2021-02-23 15:32:37 +01:00
|
|
|
|
};
|
|
|
|
|
|
2021-03-02 23:48:31 +01:00
|
|
|
|
export const kcContext = id<KcContext | undefined>((window as any)[ftlValuesGlobalName]);
|