keycloakify 9.6.4 → 9.6.5

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/lib/BASE_URL.js CHANGED
@@ -33,6 +33,6 @@ export const BASE_URL = (() => {
33
33
  }
34
34
  return BASE_URL === "" ? "/" : `${BASE_URL}/`;
35
35
  }
36
- throw new Error("Bundler not supported");
36
+ return "/";
37
37
  })();
38
38
  //# sourceMappingURL=BASE_URL.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BASE_URL.js","sourceRoot":"","sources":["../src/lib/BASE_URL.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,GAAG,EAAE;IAC1B,IAAI,EAAE;QACF,IAAI,QAAgB,CAAC;QAErB,IAAI;YACA,mBAAmB;YACnB,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC;YAEpC,MAAM,CAAC,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC;SACxC;QAAC,WAAM;YACJ,MAAM,IAAI,CAAC;SACd;QAED,OAAO,QAAQ,CAAC;KACnB;IAED,OAAO,EAAE;QACL,IAAI,QAAgB,CAAC;QAErB,IAAI;YACA,mBAAmB;YACnB,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;YAElC,MAAM,CAAC,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC;SACxC;QAAC,WAAM;YACJ,MAAM,OAAO,CAAC;SACjB;QAED,OAAO,QAAQ,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,CAAC;KACjD;IAED,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;AAC7C,CAAC,CAAC,EAAE,CAAC"}
1
+ {"version":3,"file":"BASE_URL.js","sourceRoot":"","sources":["../src/lib/BASE_URL.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,GAAG,EAAE;IAC1B,IAAI,EAAE;QACF,IAAI,QAAgB,CAAC;QAErB,IAAI;YACA,mBAAmB;YACnB,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC;YAEpC,MAAM,CAAC,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC;SACxC;QAAC,WAAM;YACJ,MAAM,IAAI,CAAC;SACd;QAED,OAAO,QAAQ,CAAC;KACnB;IAED,OAAO,EAAE;QACL,IAAI,QAAgB,CAAC;QAErB,IAAI;YACA,mBAAmB;YACnB,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;YAElC,MAAM,CAAC,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC;SACxC;QAAC,WAAM;YACJ,MAAM,OAAO,CAAC;SACjB;QAED,OAAO,QAAQ,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,CAAC;KACjD;IAED,OAAO,GAAG,CAAC;AACf,CAAC,CAAC,EAAE,CAAC"}
@@ -4,6 +4,8 @@ export declare function usePrepareTemplate(params: {
4
4
  scripts?: string[];
5
5
  htmlClassName: string | undefined;
6
6
  bodyClassName: string | undefined;
7
+ htmlLangProperty?: string | undefined;
8
+ documentTitle?: string;
7
9
  }): {
8
10
  isReady: boolean;
9
11
  };
@@ -1,9 +1,24 @@
1
1
  import { useReducer, useEffect } from "react";
2
2
  import { headInsert } from "../tools/headInsert";
3
3
  import { clsx } from "../tools/clsx";
4
+ import { assert } from "tsafe/assert";
4
5
  export function usePrepareTemplate(params) {
5
- const { doFetchDefaultThemeResources, styles = [], scripts = [], htmlClassName, bodyClassName } = params;
6
+ const { doFetchDefaultThemeResources, styles = [], scripts = [], htmlClassName, bodyClassName, htmlLangProperty, documentTitle } = params;
6
7
  const [isReady, setReady] = useReducer(() => true, !doFetchDefaultThemeResources);
8
+ useEffect(() => {
9
+ if (htmlLangProperty === undefined) {
10
+ return;
11
+ }
12
+ const html = document.querySelector("html");
13
+ assert(html !== null);
14
+ html.lang = htmlLangProperty;
15
+ }, [htmlLangProperty]);
16
+ useEffect(() => {
17
+ if (documentTitle === undefined) {
18
+ return;
19
+ }
20
+ document.title = documentTitle;
21
+ }, [documentTitle]);
7
22
  useEffect(() => {
8
23
  if (!doFetchDefaultThemeResources) {
9
24
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"usePrepareTemplate.js","sourceRoot":"","sources":["../src/lib/usePrepareTemplate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAE9C,MAAM,UAAU,kBAAkB,CAAC,MAMlC;IACG,MAAM,EAAE,4BAA4B,EAAE,MAAM,GAAG,EAAE,EAAE,OAAO,GAAG,EAAE,EAAE,aAAa,EAAE,aAAa,EAAE,GAAG,MAAM,CAAC;IAEzG,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,4BAA4B,CAAC,CAAC;IAElF,SAAS,CAAC,GAAG,EAAE;QACX,IAAI,CAAC,4BAA4B,EAAE;YAC/B,OAAO;SACV;QAED,IAAI,WAAW,GAAG,KAAK,CAAC;QAExB,MAAM,WAAW,GAAmB,EAAE,CAAC;QAEvC,CAAC,KAAK,IAAI,EAAE;YACR,KAAK,MAAM,KAAK,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE;gBACvC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC;oBACpC,MAAM,EAAE,KAAK;oBACb,UAAU,EAAE,SAAS;oBACrB,MAAM,EAAE,KAAK;iBAChB,CAAC,CAAC;gBAEH,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAEzB,uEAAuE;gBACvE,MAAM,QAAQ,CAAC;gBAEf,IAAI,WAAW,EAAE;oBACb,OAAO;iBACV;aACJ;YAED,QAAQ,EAAE,CAAC;QACf,CAAC,CAAC,EAAE,CAAC;QAEL,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YAClB,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC;gBAC1B,MAAM,EAAE,YAAY;gBACpB,GAAG;aACN,CAAC,CAAC;YAEH,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;QAEH,OAAO,GAAG,EAAE;YACR,WAAW,GAAG,IAAI,CAAC;YACnB,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC;QAC5C,CAAC,CAAC;IACN,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,eAAe,CAAC;QACZ,QAAQ,EAAE,MAAM;QAChB,WAAW,EAAE,aAAa;KAC7B,CAAC,CAAC;IAEH,eAAe,CAAC;QACZ,QAAQ,EAAE,MAAM;QAChB,WAAW,EAAE,aAAa;KAC7B,CAAC,CAAC;IAEH,OAAO,EAAE,OAAO,EAAE,CAAC;AACvB,CAAC;AAED,SAAS,eAAe,CAAC,MAAkE;IACvF,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC;IAErC,SAAS,CAAC,GAAG,EAAE;QACX,IAAI,SAAS,KAAK,SAAS,EAAE;YACzB,OAAO;SACV;QAED,MAAM,aAAa,GAAG,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAEzE,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAE1C,aAAa,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;QAE7B,OAAO,GAAG,EAAE;YACR,aAAa,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC;QACpC,CAAC,CAAC;IACN,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;AACpB,CAAC"}
1
+ {"version":3,"file":"usePrepareTemplate.js","sourceRoot":"","sources":["../src/lib/usePrepareTemplate.ts"],"names":[],"mappings":"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"}
package/login/Template.js CHANGED
@@ -17,12 +17,13 @@ export default function Template(props) {
17
17
  `${url.resourcesPath}/css/login.css`
18
18
  ],
19
19
  "htmlClassName": getClassName("kcHtmlClass"),
20
- "bodyClassName": getClassName("kcBodyClass")
20
+ "bodyClassName": getClassName("kcBodyClass"),
21
+ "htmlLangProperty": locale === null || locale === void 0 ? void 0 : locale.currentLanguageTag,
22
+ "documentTitle": i18n.msgStr("loginTitle", kcContext.realm.displayName)
21
23
  });
22
24
  if (!isReady) {
23
25
  return null;
24
26
  }
25
- document.title = i18n.msgStr("loginTitle", kcContext.realm.displayName);
26
27
  return (_jsxs("div", Object.assign({ className: getClassName("kcLoginClass") }, { children: [_jsx("div", Object.assign({ id: "kc-header", className: getClassName("kcHeaderClass") }, { children: _jsx("div", Object.assign({ id: "kc-header-wrapper", className: getClassName("kcHeaderWrapperClass") }, { children: msg("loginTitleHtml", realm.displayNameHtml) })) })), _jsxs("div", Object.assign({ className: clsx(getClassName("kcFormCardClass"), displayWide && getClassName("kcFormCardAccountClass")) }, { children: [_jsxs("header", Object.assign({ className: getClassName("kcFormHeaderClass") }, { children: [realm.internationalizationEnabled && (assert(locale !== undefined), true) && locale.supported.length > 1 && (_jsx("div", Object.assign({ id: "kc-locale" }, { children: _jsx("div", Object.assign({ id: "kc-locale-wrapper", className: getClassName("kcLocaleWrapperClass") }, { children: _jsxs("div", Object.assign({ className: "kc-dropdown", id: "kc-locale-dropdown" }, { children: [_jsx("a", Object.assign({ href: "#", id: "kc-current-locale-link" }, { children: labelBySupportedLanguageTag[currentLanguageTag] })), _jsx("ul", { children: locale.supported.map(({ languageTag }) => (_jsx("li", Object.assign({ className: "kc-dropdown-item" }, { children: _jsx("a", Object.assign({ href: "#", onClick: () => changeLocale(languageTag) }, { children: labelBySupportedLanguageTag[languageTag] })) }), languageTag))) })] })) })) }))), !(auth !== undefined && auth.showUsername && !auth.showResetCredentials) ? (displayRequiredFields ? (_jsxs("div", Object.assign({ className: getClassName("kcContentWrapperClass") }, { children: [_jsx("div", Object.assign({ className: clsx(getClassName("kcLabelWrapperClass"), "subtitle") }, { children: _jsxs("span", Object.assign({ className: "subtitle" }, { children: [_jsx("span", Object.assign({ className: "required" }, { children: "*" })), msg("requiredFields")] })) })), _jsx("div", Object.assign({ className: "col-md-10" }, { children: _jsx("h1", Object.assign({ id: "kc-page-title" }, { children: headerNode })) }))] }))) : (_jsx("h1", Object.assign({ id: "kc-page-title" }, { children: headerNode })))) : displayRequiredFields ? (_jsxs("div", Object.assign({ className: getClassName("kcContentWrapperClass") }, { children: [_jsx("div", Object.assign({ className: clsx(getClassName("kcLabelWrapperClass"), "subtitle") }, { children: _jsxs("span", Object.assign({ className: "subtitle" }, { children: [_jsx("span", Object.assign({ className: "required" }, { children: "*" })), " ", msg("requiredFields")] })) })), _jsxs("div", Object.assign({ className: "col-md-10" }, { children: [showUsernameNode, _jsx("div", Object.assign({ className: getClassName("kcFormGroupClass") }, { children: _jsxs("div", Object.assign({ id: "kc-username" }, { children: [_jsx("label", Object.assign({ id: "kc-attempted-username" }, { children: auth === null || auth === void 0 ? void 0 : auth.attemptedUsername })), _jsx("a", Object.assign({ id: "reset-login", href: url.loginRestartFlowUrl }, { children: _jsxs("div", Object.assign({ className: "kc-login-tooltip" }, { children: [_jsx("i", { className: getClassName("kcResetFlowIcon") }), _jsx("span", Object.assign({ className: "kc-tooltip-text" }, { children: msg("restartLoginTooltip") }))] })) }))] })) }))] }))] }))) : (_jsxs(_Fragment, { children: [showUsernameNode, _jsx("div", Object.assign({ className: getClassName("kcFormGroupClass") }, { children: _jsxs("div", Object.assign({ id: "kc-username" }, { children: [_jsx("label", Object.assign({ id: "kc-attempted-username" }, { children: auth === null || auth === void 0 ? void 0 : auth.attemptedUsername })), _jsx("a", Object.assign({ id: "reset-login", href: url.loginRestartFlowUrl }, { children: _jsxs("div", Object.assign({ className: "kc-login-tooltip" }, { children: [_jsx("i", { className: getClassName("kcResetFlowIcon") }), _jsx("span", Object.assign({ className: "kc-tooltip-text" }, { children: msg("restartLoginTooltip") }))] })) }))] })) }))] }))] })), _jsx("div", Object.assign({ id: "kc-content" }, { children: _jsxs("div", Object.assign({ id: "kc-content-wrapper" }, { children: [displayMessage && message !== undefined && (message.type !== "warning" || !isAppInitiatedAction) && (_jsxs("div", Object.assign({ className: clsx("alert", `alert-${message.type}`) }, { children: [message.type === "success" && _jsx("span", { className: getClassName("kcFeedbackSuccessIcon") }), message.type === "warning" && _jsx("span", { className: getClassName("kcFeedbackWarningIcon") }), message.type === "error" && _jsx("span", { className: getClassName("kcFeedbackErrorIcon") }), message.type === "info" && _jsx("span", { className: getClassName("kcFeedbackInfoIcon") }), _jsx("span", { className: "kc-feedback-text", dangerouslySetInnerHTML: {
27
28
  "__html": message.summary
28
29
  } })] }))), children, auth !== undefined && auth.showTryAnotherWayLink && showAnotherWayIfPresent && (_jsx("form", Object.assign({ id: "kc-select-try-another-way-form", action: url.loginAction, method: "post", className: clsx(displayWide && getClassName("kcContentWrapperClass")) }, { children: _jsx("div", Object.assign({ className: clsx(displayWide && [getClassName("kcFormSocialAccountContentClass"), getClassName("kcFormSocialAccountClass")]) }, { children: _jsxs("div", Object.assign({ className: getClassName("kcFormGroupClass") }, { children: [_jsx("input", { type: "hidden", name: "tryAnotherWay", value: "on" }), _jsx("a", Object.assign({ href: "#", id: "try-another-way", onClick: () => {
@@ -1 +1 @@
1
- {"version":3,"file":"Template.js","sourceRoot":"","sources":["../src/login/Template.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Template.js","sourceRoot":"","sources":["../src/login/Template.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "keycloakify",
3
- "version": "9.6.4",
3
+ "version": "9.6.5",
4
4
  "description": "Create Keycloak themes using React",
5
5
  "repository": {
6
6
  "type": "git",
@@ -40,5 +40,5 @@ export const BASE_URL = (() => {
40
40
  return BASE_URL === "" ? "/" : `${BASE_URL}/`;
41
41
  }
42
42
 
43
- throw new Error("Bundler not supported");
43
+ return "/";
44
44
  })();
@@ -1,6 +1,7 @@
1
1
  import { useReducer, useEffect } from "react";
2
2
  import { headInsert } from "keycloakify/tools/headInsert";
3
3
  import { clsx } from "keycloakify/tools/clsx";
4
+ import { assert } from "tsafe/assert";
4
5
 
5
6
  export function usePrepareTemplate(params: {
6
7
  doFetchDefaultThemeResources: boolean;
@@ -8,11 +9,31 @@ export function usePrepareTemplate(params: {
8
9
  scripts?: string[];
9
10
  htmlClassName: string | undefined;
10
11
  bodyClassName: string | undefined;
12
+ htmlLangProperty?: string | undefined;
13
+ documentTitle?: string;
11
14
  }) {
12
- const { doFetchDefaultThemeResources, styles = [], scripts = [], htmlClassName, bodyClassName } = params;
15
+ const { doFetchDefaultThemeResources, styles = [], scripts = [], htmlClassName, bodyClassName, htmlLangProperty, documentTitle } = params;
13
16
 
14
17
  const [isReady, setReady] = useReducer(() => true, !doFetchDefaultThemeResources);
15
18
 
19
+ useEffect(() => {
20
+ if (htmlLangProperty === undefined) {
21
+ return;
22
+ }
23
+
24
+ const html = document.querySelector("html");
25
+ assert(html !== null);
26
+ html.lang = htmlLangProperty;
27
+ }, [htmlLangProperty]);
28
+
29
+ useEffect(() => {
30
+ if (documentTitle === undefined) {
31
+ return;
32
+ }
33
+
34
+ document.title = documentTitle;
35
+ }, [documentTitle]);
36
+
16
37
  useEffect(() => {
17
38
  if (!doFetchDefaultThemeResources) {
18
39
  return;
@@ -38,15 +38,15 @@ export default function Template(props: TemplateProps<KcContext, I18n>) {
38
38
  `${url.resourcesPath}/css/login.css`
39
39
  ],
40
40
  "htmlClassName": getClassName("kcHtmlClass"),
41
- "bodyClassName": getClassName("kcBodyClass")
41
+ "bodyClassName": getClassName("kcBodyClass"),
42
+ "htmlLangProperty": locale?.currentLanguageTag,
43
+ "documentTitle": i18n.msgStr("loginTitle", kcContext.realm.displayName)
42
44
  });
43
45
 
44
46
  if (!isReady) {
45
47
  return null;
46
48
  }
47
49
 
48
- document.title = i18n.msgStr("loginTitle", kcContext.realm.displayName);
49
-
50
50
  return (
51
51
  <div className={getClassName("kcLoginClass")}>
52
52
  <div id="kc-header" className={getClassName("kcHeaderClass")}>