keycloakify 7.9.1 → 7.9.4
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/README.md +1 -1
- package/account/kcContext/KcContext.d.ts +2 -1
- package/account/kcContext/KcContext.js.map +1 -1
- package/account/pages/Account.js +2 -2
- package/account/pages/Account.js.map +1 -1
- package/bin/mockTestingResourcesPath.js +1 -1
- package/bin/mockTestingResourcesPath.js.map +1 -1
- package/package.json +1 -1
- package/src/account/kcContext/KcContext.ts +4 -2
- package/src/account/pages/Account.tsx +2 -2
- package/src/bin/mockTestingResourcesPath.ts +1 -1
package/README.md
CHANGED
@@ -28,7 +28,7 @@
|
|
28
28
|
-
|
29
29
|
<a href="https://docs.keycloakify.dev">Documentation</a>
|
30
30
|
-
|
31
|
-
<a href="https://storybook.keycloakify.dev
|
31
|
+
<a href="https://storybook.keycloakify.dev">Storybook</a>
|
32
32
|
-
|
33
33
|
<a href="https://github.com/codegouvfr/keycloakify-starter">Starter project</a>
|
34
34
|
</p>
|
@@ -21,6 +21,7 @@ export declare namespace KcContext {
|
|
21
21
|
resourceUrl: string;
|
22
22
|
resourcesCommonPath: string;
|
23
23
|
resourcesPath: string;
|
24
|
+
/** @deprecated, not present in recent keycloak version apparently, use kcContext.referrer instead */
|
24
25
|
referrerURI?: string;
|
25
26
|
getLogoutUrl: () => string;
|
26
27
|
};
|
@@ -39,7 +40,7 @@ export declare namespace KcContext {
|
|
39
40
|
summary: string;
|
40
41
|
};
|
41
42
|
referrer?: {
|
42
|
-
url
|
43
|
+
url: string;
|
43
44
|
name: string;
|
44
45
|
};
|
45
46
|
messagesPerField: {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"KcContext.js","sourceRoot":"","sources":["../../src/account/kcContext/KcContext.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;
|
1
|
+
{"version":3,"file":"KcContext.js","sourceRoot":"","sources":["../../src/account/kcContext/KcContext.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAqFtC,MAAM,EAAmD,CAAC"}
|
package/account/pages/Account.js
CHANGED
@@ -8,8 +8,8 @@ export default function Account(props) {
|
|
8
8
|
doUseDefaultCss,
|
9
9
|
"classes": Object.assign(Object.assign({}, classes), { "kcBodyClass": clsx(classes === null || classes === void 0 ? void 0 : classes.kcBodyClass, "user") })
|
10
10
|
});
|
11
|
-
const { url, realm, messagesPerField, stateChecker, account } = kcContext;
|
11
|
+
const { url, realm, messagesPerField, stateChecker, account, referrer } = kcContext;
|
12
12
|
const { msg } = i18n;
|
13
|
-
return (_jsxs(Template, Object.assign({}, { kcContext, i18n, doUseDefaultCss, classes }, { active: "account" }, { children: [_jsxs("div", Object.assign({ className: "row" }, { children: [_jsx("div", Object.assign({ className: "col-md-10" }, { children: _jsx("h2", { children: msg("editAccountHtmlTitle") }) })), _jsx("div", Object.assign({ className: "col-md-2 subtitle" }, { children: _jsxs("span", Object.assign({ className: "subtitle" }, { children: [_jsx("span", Object.assign({ className: "required" }, { children: "*" })), " ", msg("requiredFields")] })) }))] })), _jsxs("form", Object.assign({ action: url.accountUrl, className: "form-horizontal", method: "post" }, { children: [_jsx("input", { type: "hidden", id: "stateChecker", name: "stateChecker", value: stateChecker }), !realm.registrationEmailAsUsername && (_jsxs("div", Object.assign({ className: clsx("form-group", messagesPerField.printIfExists("username", "has-error")) }, { children: [_jsxs("div", Object.assign({ className: "col-sm-2 col-md-2" }, { children: [_jsx("label", Object.assign({ htmlFor: "username", className: "control-label" }, { children: msg("username") })), realm.editUsernameAllowed && _jsx("span", Object.assign({ className: "required" }, { children: "*" }))] })), _jsx("div", Object.assign({ className: "col-sm-10 col-md-10" }, { children: _jsx("input", { type: "text", className: "form-control", id: "username", name: "username", disabled: !realm.editUsernameAllowed, value: (_a = account.username) !== null && _a !== void 0 ? _a : "" }) }))] }))), _jsxs("div", Object.assign({ className: clsx("form-group", messagesPerField.printIfExists("email", "has-error")) }, { children: [_jsxs("div", Object.assign({ className: "col-sm-2 col-md-2" }, { children: [_jsx("label", Object.assign({ htmlFor: "email", className: "control-label" }, { children: msg("email") })), " ", _jsx("span", Object.assign({ className: "required" }, { children: "*" }))] })), _jsx("div", Object.assign({ className: "col-sm-10 col-md-10" }, { children: _jsx("input", { type: "text", className: "form-control", id: "email", name: "email", autoFocus: true, value: (_b = account.email) !== null && _b !== void 0 ? _b : "" }) }))] })), _jsxs("div", Object.assign({ className: clsx("form-group", messagesPerField.printIfExists("firstName", "has-error")) }, { children: [_jsxs("div", Object.assign({ className: "col-sm-2 col-md-2" }, { children: [_jsx("label", Object.assign({ htmlFor: "firstName", className: "control-label" }, { children: msg("firstName") })), " ", _jsx("span", Object.assign({ className: "required" }, { children: "*" }))] })), _jsx("div", Object.assign({ className: "col-sm-10 col-md-10" }, { children: _jsx("input", { type: "text", className: "form-control", id: "firstName", name: "firstName", value: (_c = account.firstName) !== null && _c !== void 0 ? _c : "" }) }))] })), _jsxs("div", Object.assign({ className: clsx("form-group", messagesPerField.printIfExists("lastName", "has-error")) }, { children: [_jsxs("div", Object.assign({ className: "col-sm-2 col-md-2" }, { children: [_jsx("label", Object.assign({ htmlFor: "lastName", className: "control-label" }, { children: msg("lastName") })), " ", _jsx("span", Object.assign({ className: "required" }, { children: "*" }))] })), _jsx("div", Object.assign({ className: "col-sm-10 col-md-10" }, { children: _jsx("input", { type: "text", className: "form-control", id: "lastName", name: "lastName", value: (_d = account.lastName) !== null && _d !== void 0 ? _d : "" }) }))] })), _jsx("div", Object.assign({ className: "form-group" }, { children: _jsx("div", Object.assign({ id: "kc-form-buttons", className: "col-md-offset-2 col-md-10 submit" }, { children: _jsxs("div", { children: [
|
13
|
+
return (_jsxs(Template, Object.assign({}, { kcContext, i18n, doUseDefaultCss, classes }, { active: "account" }, { children: [_jsxs("div", Object.assign({ className: "row" }, { children: [_jsx("div", Object.assign({ className: "col-md-10" }, { children: _jsx("h2", { children: msg("editAccountHtmlTitle") }) })), _jsx("div", Object.assign({ className: "col-md-2 subtitle" }, { children: _jsxs("span", Object.assign({ className: "subtitle" }, { children: [_jsx("span", Object.assign({ className: "required" }, { children: "*" })), " ", msg("requiredFields")] })) }))] })), _jsxs("form", Object.assign({ action: url.accountUrl, className: "form-horizontal", method: "post" }, { children: [_jsx("input", { type: "hidden", id: "stateChecker", name: "stateChecker", value: stateChecker }), !realm.registrationEmailAsUsername && (_jsxs("div", Object.assign({ className: clsx("form-group", messagesPerField.printIfExists("username", "has-error")) }, { children: [_jsxs("div", Object.assign({ className: "col-sm-2 col-md-2" }, { children: [_jsx("label", Object.assign({ htmlFor: "username", className: "control-label" }, { children: msg("username") })), realm.editUsernameAllowed && _jsx("span", Object.assign({ className: "required" }, { children: "*" }))] })), _jsx("div", Object.assign({ className: "col-sm-10 col-md-10" }, { children: _jsx("input", { type: "text", className: "form-control", id: "username", name: "username", disabled: !realm.editUsernameAllowed, value: (_a = account.username) !== null && _a !== void 0 ? _a : "" }) }))] }))), _jsxs("div", Object.assign({ className: clsx("form-group", messagesPerField.printIfExists("email", "has-error")) }, { children: [_jsxs("div", Object.assign({ className: "col-sm-2 col-md-2" }, { children: [_jsx("label", Object.assign({ htmlFor: "email", className: "control-label" }, { children: msg("email") })), " ", _jsx("span", Object.assign({ className: "required" }, { children: "*" }))] })), _jsx("div", Object.assign({ className: "col-sm-10 col-md-10" }, { children: _jsx("input", { type: "text", className: "form-control", id: "email", name: "email", autoFocus: true, value: (_b = account.email) !== null && _b !== void 0 ? _b : "" }) }))] })), _jsxs("div", Object.assign({ className: clsx("form-group", messagesPerField.printIfExists("firstName", "has-error")) }, { children: [_jsxs("div", Object.assign({ className: "col-sm-2 col-md-2" }, { children: [_jsx("label", Object.assign({ htmlFor: "firstName", className: "control-label" }, { children: msg("firstName") })), " ", _jsx("span", Object.assign({ className: "required" }, { children: "*" }))] })), _jsx("div", Object.assign({ className: "col-sm-10 col-md-10" }, { children: _jsx("input", { type: "text", className: "form-control", id: "firstName", name: "firstName", value: (_c = account.firstName) !== null && _c !== void 0 ? _c : "" }) }))] })), _jsxs("div", Object.assign({ className: clsx("form-group", messagesPerField.printIfExists("lastName", "has-error")) }, { children: [_jsxs("div", Object.assign({ className: "col-sm-2 col-md-2" }, { children: [_jsx("label", Object.assign({ htmlFor: "lastName", className: "control-label" }, { children: msg("lastName") })), " ", _jsx("span", Object.assign({ className: "required" }, { children: "*" }))] })), _jsx("div", Object.assign({ className: "col-sm-10 col-md-10" }, { children: _jsx("input", { type: "text", className: "form-control", id: "lastName", name: "lastName", value: (_d = account.lastName) !== null && _d !== void 0 ? _d : "" }) }))] })), _jsx("div", Object.assign({ className: "form-group" }, { children: _jsx("div", Object.assign({ id: "kc-form-buttons", className: "col-md-offset-2 col-md-10 submit" }, { children: _jsxs("div", { children: [referrer !== undefined && _jsx("a", Object.assign({ href: referrer === null || referrer === void 0 ? void 0 : referrer.url }, { children: msg("backToApplication") })), _jsx("button", Object.assign({ type: "submit", className: clsx(getClassName("kcButtonClass"), getClassName("kcButtonPrimaryClass"), getClassName("kcButtonLargeClass")), name: "submitAction", value: "Save" }, { children: msg("doSave") })), _jsx("button", Object.assign({ type: "submit", className: clsx(getClassName("kcButtonClass"), getClassName("kcButtonDefaultClass"), getClassName("kcButtonLargeClass")), name: "submitAction", value: "Cancel" }, { children: msg("doCancel") }))] }) })) }))] }))] })));
|
14
14
|
}
|
15
15
|
//# sourceMappingURL=Account.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Account.js","sourceRoot":"","sources":["../../src/account/pages/Account.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAE9C,OAAO,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAI1E,MAAM,CAAC,OAAO,UAAU,OAAO,CAAC,KAAqE;;IACjG,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAEtE,MAAM,EAAE,YAAY,EAAE,GAAG,eAAe,CAAC;QACrC,eAAe;QACf,SAAS,kCACF,OAAO,KACV,aAAa,EAAE,IAAI,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,EAAE,MAAM,CAAC,GACpD;KACJ,CAAC,CAAC;IAEH,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG,SAAS,CAAC;
|
1
|
+
{"version":3,"file":"Account.js","sourceRoot":"","sources":["../../src/account/pages/Account.tsx"],"names":[],"mappings":"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"}
|
@@ -4,5 +4,5 @@ exports.resourcesCommonDirPathRelativeToPublicDir = exports.resourcesDirPathRela
|
|
4
4
|
var pathJoin_1 = require("./tools/pathJoin");
|
5
5
|
exports.basenameOfKeycloakDirInPublicDir = "keycloak-resources";
|
6
6
|
exports.resourcesDirPathRelativeToPublicDir = (0, pathJoin_1.pathJoin)(exports.basenameOfKeycloakDirInPublicDir, "resources");
|
7
|
-
exports.resourcesCommonDirPathRelativeToPublicDir = (0, pathJoin_1.pathJoin)(exports.
|
7
|
+
exports.resourcesCommonDirPathRelativeToPublicDir = (0, pathJoin_1.pathJoin)(exports.resourcesDirPathRelativeToPublicDir, "resources_common");
|
8
8
|
//# sourceMappingURL=mockTestingResourcesPath.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"mockTestingResourcesPath.js","sourceRoot":"","sources":["../src/bin/mockTestingResourcesPath.ts"],"names":[],"mappings":";;;AAAA,6CAA4C;AAE/B,QAAA,gCAAgC,GAAG,oBAAoB,CAAC;AACxD,QAAA,mCAAmC,GAAG,IAAA,mBAAQ,EAAC,wCAAgC,EAAE,WAAW,CAAC,CAAC;AAC9F,QAAA,yCAAyC,GAAG,IAAA,mBAAQ,EAAC,
|
1
|
+
{"version":3,"file":"mockTestingResourcesPath.js","sourceRoot":"","sources":["../src/bin/mockTestingResourcesPath.ts"],"names":[],"mappings":";;;AAAA,6CAA4C;AAE/B,QAAA,gCAAgC,GAAG,oBAAoB,CAAC;AACxD,QAAA,mCAAmC,GAAG,IAAA,mBAAQ,EAAC,wCAAgC,EAAE,WAAW,CAAC,CAAC;AAC9F,QAAA,yCAAyC,GAAG,IAAA,mBAAQ,EAAC,2CAAmC,EAAE,kBAAkB,CAAC,CAAC"}
|
package/package.json
CHANGED
@@ -26,6 +26,7 @@ export declare namespace KcContext {
|
|
26
26
|
resourceUrl: string;
|
27
27
|
resourcesCommonPath: string;
|
28
28
|
resourcesPath: string;
|
29
|
+
/** @deprecated, not present in recent keycloak version apparently, use kcContext.referrer instead */
|
29
30
|
referrerURI?: string;
|
30
31
|
getLogoutUrl: () => string;
|
31
32
|
};
|
@@ -39,13 +40,14 @@ export declare namespace KcContext {
|
|
39
40
|
internationalizationEnabled: boolean;
|
40
41
|
userManagedAccessAllowed: boolean;
|
41
42
|
};
|
43
|
+
// Present only if redirected to account page with ?referrer=xxx&referrer_uri=http...
|
42
44
|
message?: {
|
43
45
|
type: "success" | "warning" | "error" | "info";
|
44
46
|
summary: string;
|
45
47
|
};
|
46
48
|
referrer?: {
|
47
|
-
url
|
48
|
-
name: string;
|
49
|
+
url: string; // The url of the App
|
50
|
+
name: string; // Client id
|
49
51
|
};
|
50
52
|
messagesPerField: {
|
51
53
|
printIfExists: <T>(fieldName: string, x: T) => T | undefined;
|
@@ -15,7 +15,7 @@ export default function Account(props: PageProps<Extract<KcContext, { pageId: "a
|
|
15
15
|
}
|
16
16
|
});
|
17
17
|
|
18
|
-
const { url, realm, messagesPerField, stateChecker, account } = kcContext;
|
18
|
+
const { url, realm, messagesPerField, stateChecker, account, referrer } = kcContext;
|
19
19
|
|
20
20
|
const { msg } = i18n;
|
21
21
|
|
@@ -99,7 +99,7 @@ export default function Account(props: PageProps<Extract<KcContext, { pageId: "a
|
|
99
99
|
<div className="form-group">
|
100
100
|
<div id="kc-form-buttons" className="col-md-offset-2 col-md-10 submit">
|
101
101
|
<div>
|
102
|
-
{
|
102
|
+
{referrer !== undefined && <a href={referrer?.url}>{msg("backToApplication")}</a>}
|
103
103
|
<button
|
104
104
|
type="submit"
|
105
105
|
className={clsx(
|
@@ -2,4 +2,4 @@ import { pathJoin } from "./tools/pathJoin";
|
|
2
2
|
|
3
3
|
export const basenameOfKeycloakDirInPublicDir = "keycloak-resources";
|
4
4
|
export const resourcesDirPathRelativeToPublicDir = pathJoin(basenameOfKeycloakDirInPublicDir, "resources");
|
5
|
-
export const resourcesCommonDirPathRelativeToPublicDir = pathJoin(
|
5
|
+
export const resourcesCommonDirPathRelativeToPublicDir = pathJoin(resourcesDirPathRelativeToPublicDir, "resources_common");
|