@uxf/cms 6.0.0-beta.1 → 6.0.0-beta.2
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/forms/LoginForm/LoginForm.d.ts +2 -2
- package/forms/LoginForm/LoginForm.js +11 -22
- package/forms/LoginForm/types.d.ts +2 -2
- package/lib/LoginLayout/LoginLayout.d.ts +2 -2
- package/lib/LoginLayout/LoginLayout.js +8 -13
- package/lib/LoginLayout/types.d.ts +1 -0
- package/package.json +19 -6
- package/pages/LoginPage/LoginPage.js +3 -3
- package/pages/LoginPage/types.d.ts +1 -0
- package/lib/LoginLayout/styles.d.ts +0 -13
- package/lib/LoginLayout/styles.js +0 -57
- package/utils/cookie.d.ts +0 -9
- package/utils/cookie.js +0 -80
@@ -1,3 +1,3 @@
|
|
1
|
-
import
|
1
|
+
import { FC } from "react";
|
2
2
|
import { LoginFormProps } from "./types";
|
3
|
-
export declare const LoginForm:
|
3
|
+
export declare const LoginForm: FC<LoginFormProps>;
|
@@ -56,36 +56,25 @@ var __read = (this && this.__read) || function (o, n) {
|
|
56
56
|
}
|
57
57
|
return ar;
|
58
58
|
};
|
59
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
60
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
61
|
-
};
|
62
59
|
Object.defineProperty(exports, "__esModule", { value: true });
|
63
60
|
exports.LoginForm = void 0;
|
64
61
|
var react_1 = __importStar(require("react"));
|
65
|
-
var
|
66
|
-
var
|
67
|
-
var
|
68
|
-
var
|
69
|
-
// TODO: email validation
|
62
|
+
var form_1 = require("@uxf/form/form");
|
63
|
+
var text_input_1 = require("@uxf/form/text-input");
|
64
|
+
var button_1 = require("@uxf/ui/button");
|
65
|
+
var text_link_1 = require("@uxf/ui/text-link");
|
70
66
|
var LoginForm = function (props) {
|
71
67
|
var onForgottenPassword = props.onForgottenPassword, formProps = __rest(props, ["onForgottenPassword"]);
|
72
68
|
var _a = __read((0, react_1.useState)(true), 2), formDisabled = _a[0], setFormDisabled = _a[1];
|
73
69
|
(0, react_1.useEffect)(function () {
|
74
70
|
setFormDisabled(false);
|
75
71
|
}, []);
|
76
|
-
return (react_1.default.createElement(
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
react_1.default.createElement(Grid_1.default, { item: true, xs: 12 },
|
83
|
-
react_1.default.createElement(TextInput_1.TextInput, { disabled: formDisabled, label: "Heslo", name: "password", required: true, type: "password" })),
|
84
|
-
react_1.default.createElement(Grid_1.default, { item: true, xs: 12 },
|
85
|
-
react_1.default.createElement(Button_1.Button, { color: "primary", disabled: submitting, fullWidth: true, loading: submitting, type: "submit", variant: "contained", mt: 2 }, "P\u0159ihl\u00E1sit")),
|
86
|
-
onForgottenPassword && (react_1.default.createElement(Grid_1.default, { item: true, xs: 12 },
|
87
|
-
react_1.default.createElement(Button_1.Button, { size: "small", onClick: onForgottenPassword, disabled: submitting, fullWidth: true }, "Zapomenut\u00E9 heslo"))))));
|
88
|
-
}));
|
72
|
+
return (react_1.default.createElement(form_1.Form, __assign({}, formProps), function (control, formApi) { return (react_1.default.createElement(react_1.default.Fragment, null,
|
73
|
+
react_1.default.createElement(text_input_1.TextInput, { className: "mb-6", isDisabled: formDisabled, label: "E-mail", name: "username", type: "email", control: control, isRequired: true }),
|
74
|
+
react_1.default.createElement(text_input_1.TextInput, { className: "mb-6", isDisabled: formDisabled, label: "Heslo", name: "password", type: "password", control: control, isRequired: true }),
|
75
|
+
onForgottenPassword && (react_1.default.createElement("div", { className: "text-right" },
|
76
|
+
react_1.default.createElement(text_link_1.TextLink, { onClick: onForgottenPassword, disabled: formApi.formState.isSubmitting, className: "uxf-typo-medium2 text-primary" }, "Nepamatujete si sv\u00E9 heslo?"))),
|
77
|
+
react_1.default.createElement(button_1.Button, { type: "submit", isFullWidth: true, className: "mt-6" }, "P\u0159ihl\u00E1sit se"))); }));
|
89
78
|
};
|
90
79
|
exports.LoginForm = LoginForm;
|
91
|
-
//# sourceMappingURL=data:application/json;base64,
|
80
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTG9naW5Gb3JtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2Zvcm1zL0xvZ2luRm9ybS9Mb2dpbkZvcm0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDZDQUF1RDtBQUV2RCx1Q0FBc0M7QUFDdEMsbURBQWlEO0FBQ2pELHlDQUF3QztBQUN4QywrQ0FBNkM7QUFFdEMsSUFBTSxTQUFTLEdBQXVCLFVBQUMsS0FBSztJQUN2QyxJQUFBLG1CQUFtQixHQUFtQixLQUFLLG9CQUF4QixFQUFLLFNBQVMsVUFBSyxLQUFLLEVBQTdDLHVCQUFxQyxDQUFGLENBQVc7SUFFOUMsSUFBQSxLQUFBLE9BQWtDLElBQUEsZ0JBQVEsRUFBQyxJQUFJLENBQUMsSUFBQSxFQUEvQyxZQUFZLFFBQUEsRUFBRSxlQUFlLFFBQWtCLENBQUM7SUFFdkQsSUFBQSxpQkFBUyxFQUFDO1FBQ04sZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNCLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUVQLE9BQU8sQ0FDSCw4QkFBQyxXQUFJLGVBQW9CLFNBQVMsR0FDN0IsVUFBQyxPQUFPLEVBQUUsT0FBTyxJQUFLLE9BQUEsQ0FDbkI7UUFDSSw4QkFBQyxzQkFBUyxJQUNOLFNBQVMsRUFBQyxNQUFNLEVBQ2hCLFVBQVUsRUFBRSxZQUFZLEVBQ3hCLEtBQUssRUFBQyxRQUFRLEVBQ2QsSUFBSSxFQUFDLFVBQVUsRUFDZixJQUFJLEVBQUMsT0FBTyxFQUNaLE9BQU8sRUFBRSxPQUFPLEVBQ2hCLFVBQVUsU0FDWjtRQUNGLDhCQUFDLHNCQUFTLElBQ04sU0FBUyxFQUFDLE1BQU0sRUFDaEIsVUFBVSxFQUFFLFlBQVksRUFDeEIsS0FBSyxFQUFDLE9BQU8sRUFDYixJQUFJLEVBQUMsVUFBVSxFQUNmLElBQUksRUFBQyxVQUFVLEVBQ2YsT0FBTyxFQUFFLE9BQU8sRUFDaEIsVUFBVSxTQUNaO1FBQ0QsbUJBQW1CLElBQUksQ0FDcEIsdUNBQUssU0FBUyxFQUFDLFlBQVk7WUFDdkIsOEJBQUMsb0JBQVEsSUFDTCxPQUFPLEVBQUUsbUJBQW1CLEVBQzVCLFFBQVEsRUFBRSxPQUFPLENBQUMsU0FBUyxDQUFDLFlBQVksRUFDeEMsU0FBUyxFQUFDLCtCQUErQixzQ0FHbEMsQ0FDVCxDQUNUO1FBQ0QsOEJBQUMsZUFBTSxJQUFDLElBQUksRUFBQyxRQUFRLEVBQUMsV0FBVyxRQUFDLFNBQVMsRUFBQyxNQUFNLDZCQUV6QyxDQUNWLENBQ04sRUFuQ3NCLENBbUN0QixDQUNFLENBQ1YsQ0FBQztBQUNOLENBQUMsQ0FBQztBQWpEVyxRQUFBLFNBQVMsYUFpRHBCIn0=
|
@@ -1,8 +1,8 @@
|
|
1
|
-
import { FormProps } from "
|
1
|
+
import { FormProps } from "@uxf/form/form";
|
2
2
|
export interface LoginFormData {
|
3
3
|
username: string;
|
4
4
|
password: string;
|
5
5
|
}
|
6
|
-
export interface LoginFormProps extends FormProps<LoginFormData> {
|
6
|
+
export interface LoginFormProps extends Omit<FormProps<LoginFormData>, "children"> {
|
7
7
|
onForgottenPassword?: () => void;
|
8
8
|
}
|
@@ -1,3 +1,3 @@
|
|
1
|
-
import
|
1
|
+
import { FC } from "react";
|
2
2
|
import { LoginLayoutProps } from "./types";
|
3
|
-
export declare const LoginLayout:
|
3
|
+
export declare const LoginLayout: FC<LoginLayoutProps>;
|
@@ -4,23 +4,18 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
4
4
|
};
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
6
6
|
exports.LoginLayout = void 0;
|
7
|
-
var CssBaseline_1 = __importDefault(require("@mui/material/CssBaseline"));
|
8
|
-
var Typography_1 = __importDefault(require("@mui/material/Typography"));
|
9
|
-
var utils_1 = require("@mui/utils");
|
10
7
|
var head_1 = __importDefault(require("next/head"));
|
11
8
|
var react_1 = __importDefault(require("react"));
|
12
|
-
var
|
9
|
+
var paper_1 = require("@uxf/ui/paper/paper");
|
13
10
|
var LoginLayout = function (props) {
|
14
|
-
var hideTitle = props.hideTitle, title = props.title, pageTitle = props.pageTitle, children = props.children, Logo = props.Logo;
|
15
|
-
return (react_1.default.createElement(
|
11
|
+
var hideTitle = props.hideTitle, title = props.title, subTitle = props.subTitle, pageTitle = props.pageTitle, children = props.children, Logo = props.Logo;
|
12
|
+
return (react_1.default.createElement("div", { className: "flex flex-col items-center justify-center min-h-screen p-4 bg-gray-100" },
|
16
13
|
react_1.default.createElement(head_1.default, null,
|
17
14
|
react_1.default.createElement("title", null, pageTitle || "")),
|
18
|
-
react_1.default.createElement(
|
19
|
-
react_1.default.createElement(
|
20
|
-
|
21
|
-
|
22
|
-
title && (react_1.default.createElement(Typography_1.default, { component: "h1", sx: hideTitle ? utils_1.visuallyHidden : { mt: Logo ? 2 : undefined }, variant: "h5" }, title))),
|
23
|
-
children)));
|
15
|
+
Logo && react_1.default.createElement("div", { className: "mb-8" }, Logo),
|
16
|
+
title && react_1.default.createElement("h1", { className: hideTitle ? "sr-only" : "uxf-typo-h4" }, title),
|
17
|
+
subTitle && react_1.default.createElement("p", { className: "mt-2 uxf-typo-body text-lightMedium" }, subTitle),
|
18
|
+
react_1.default.createElement(paper_1.Paper, { className: "max-w-full w-[448px] p-6 mt-8" }, children)));
|
24
19
|
};
|
25
20
|
exports.LoginLayout = LoginLayout;
|
26
|
-
//# sourceMappingURL=data:application/json;base64,
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTG9naW5MYXlvdXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL0xvZ2luTGF5b3V0L0xvZ2luTGF5b3V0LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxtREFBNkI7QUFDN0IsZ0RBQWtDO0FBRWxDLDZDQUE0QztBQUVyQyxJQUFNLFdBQVcsR0FBeUIsVUFBQyxLQUFLO0lBQzNDLElBQUEsU0FBUyxHQUFpRCxLQUFLLFVBQXRELEVBQUUsS0FBSyxHQUEwQyxLQUFLLE1BQS9DLEVBQUUsUUFBUSxHQUFnQyxLQUFLLFNBQXJDLEVBQUUsU0FBUyxHQUFxQixLQUFLLFVBQTFCLEVBQUUsUUFBUSxHQUFXLEtBQUssU0FBaEIsRUFBRSxJQUFJLEdBQUssS0FBSyxLQUFWLENBQVc7SUFFeEUsT0FBTyxDQUNILHVDQUFLLFNBQVMsRUFBQyx3RUFBd0U7UUFDbkYsOEJBQUMsY0FBSTtZQUNELDZDQUFRLFNBQVMsSUFBSSxFQUFFLENBQVMsQ0FDN0I7UUFDTixJQUFJLElBQUksdUNBQUssU0FBUyxFQUFDLE1BQU0sSUFBRSxJQUFJLENBQU87UUFDMUMsS0FBSyxJQUFJLHNDQUFJLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsYUFBYSxJQUFHLEtBQUssQ0FBTTtRQUMzRSxRQUFRLElBQUkscUNBQUcsU0FBUyxFQUFDLHFDQUFxQyxJQUFFLFFBQVEsQ0FBSztRQUM5RSw4QkFBQyxhQUFLLElBQUMsU0FBUyxFQUFDLCtCQUErQixJQUFFLFFBQVEsQ0FBUyxDQUNqRSxDQUNULENBQUM7QUFDTixDQUFDLENBQUM7QUFkVyxRQUFBLFdBQVcsZUFjdEIifQ==
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@uxf/cms",
|
3
|
-
"version": "6.0.0-beta.
|
3
|
+
"version": "6.0.0-beta.2",
|
4
4
|
"description": "UXF Cms",
|
5
5
|
"author": "UXFans <dev@uxf.cz>",
|
6
6
|
"homepage": "https://gitlab.com/uxf-npm/cms#readme",
|
@@ -21,12 +21,16 @@
|
|
21
21
|
"scripts": {
|
22
22
|
"lint": "./node_modules/.bin/eslint -c .eslintrc.js \"./**/*.ts*\"",
|
23
23
|
"typecheck": "./node_modules/.bin/tsc --noEmit --skipLibCheck",
|
24
|
+
"check": "npm run lint && npm run typecheck",
|
24
25
|
"dev": "node dev-server.js",
|
25
26
|
"build": "./node_modules/.bin/tsc -P tsconfig.build.json"
|
26
27
|
},
|
27
28
|
"dependencies": {
|
29
|
+
"@uxf/form": "^1.0.0-beta.96",
|
30
|
+
"@uxf/ui": "^1.0.0-beta.96",
|
28
31
|
"es6-error": "^4.1.1",
|
29
32
|
"path-to-regexp": "^6.1.0",
|
33
|
+
"react-hook-form": "^7.41.5",
|
30
34
|
"react-redux": "^7.2.5",
|
31
35
|
"redux": "^4.1.1"
|
32
36
|
},
|
@@ -38,14 +42,16 @@
|
|
38
42
|
"@mui/material": "^5.0.2",
|
39
43
|
"@mui/styles": "^5.0.1",
|
40
44
|
"@mui/x-date-pickers": "^5.0.0-alpha.1",
|
45
|
+
"@tailwindcss/aspect-ratio": "^0.4.2",
|
41
46
|
"@tailwindcss/forms": "^0.5.2",
|
47
|
+
"@tailwindcss/line-clamp": "^0.4.2",
|
42
48
|
"@types/express-http-proxy": "^1.6.2",
|
43
49
|
"@types/node": "^16.7.10",
|
44
50
|
"@types/qs": "^6.9.7",
|
45
51
|
"@types/react": "^18.0.26",
|
46
52
|
"@types/react-dom": "^18.0.10",
|
47
53
|
"@typescript-eslint/eslint-plugin": "^5.11.0",
|
48
|
-
"@uxf/core": "^
|
54
|
+
"@uxf/core": "^4.3.0",
|
49
55
|
"@uxf/data-grid": "^4.0.0",
|
50
56
|
"@uxf/eslint-config": "^1.2.3",
|
51
57
|
"@uxf/router": "^3.0.0-beta.3",
|
@@ -55,7 +61,7 @@
|
|
55
61
|
"axios": "^0.21.1",
|
56
62
|
"axios-hooks": "^2.7.0",
|
57
63
|
"coordinate-parser": "^1.0.7",
|
58
|
-
"dayjs": "^1.11.
|
64
|
+
"dayjs": "^1.11.7",
|
59
65
|
"eslint": "^8.8.0",
|
60
66
|
"eslint-plugin-import": "^2.25.4",
|
61
67
|
"eslint-plugin-jsx-a11y": "^6.5.1",
|
@@ -67,9 +73,12 @@
|
|
67
73
|
"final-form-arrays": "^3.0.2",
|
68
74
|
"final-form-calculate": "^1.3.2",
|
69
75
|
"http-proxy-middleware": "^2.0.1",
|
70
|
-
"next": "^
|
76
|
+
"next": "^12.3.4",
|
71
77
|
"path": "^0.12.7",
|
72
78
|
"postcss": "^8.4.14",
|
79
|
+
"postcss-focus-visible": "^7.1.0",
|
80
|
+
"postcss-import": "^15.1.0",
|
81
|
+
"postcss-pxtorem": "^6.0.0",
|
73
82
|
"prettier": "^2.4.1",
|
74
83
|
"qs": "^6.10.1",
|
75
84
|
"react": "^18.2.0",
|
@@ -86,13 +95,13 @@
|
|
86
95
|
"@mui/icons-material": "^5.0.0",
|
87
96
|
"@mui/material": "^5.0.0",
|
88
97
|
"@mui/x-date-pickers": "^5.0.0-alpha.1",
|
89
|
-
"@uxf/core": ">=
|
98
|
+
"@uxf/core": ">= 4.3.0",
|
90
99
|
"@uxf/data-grid": "^4.0.0",
|
91
100
|
"@uxf/wysiwyg": "^1.1.2",
|
92
101
|
"@uxf/wysiwyg-mui5-plugins": "^1.0.1",
|
93
102
|
"axios": "^0.21.0",
|
94
103
|
"axios-hooks": "^2.2.0",
|
95
|
-
"dayjs": "^1.11.
|
104
|
+
"dayjs": "^1.11.7",
|
96
105
|
"final-form": "^4.20.1",
|
97
106
|
"final-form-arrays": "^3.0",
|
98
107
|
"final-form-calculate": "^1.3.2",
|
@@ -101,5 +110,9 @@
|
|
101
110
|
"react-dropzone": "^14.2.2",
|
102
111
|
"react-final-form": "^6.5.1",
|
103
112
|
"react-final-form-arrays": "^3.1.3"
|
113
|
+
},
|
114
|
+
"volta": {
|
115
|
+
"node": "18.5.0",
|
116
|
+
"yarn": "1.22.19"
|
104
117
|
}
|
105
118
|
}
|
@@ -93,8 +93,8 @@ var LoginPage = function (config) {
|
|
93
93
|
}
|
94
94
|
});
|
95
95
|
}); }, [props.redirectUrl]);
|
96
|
-
return (react_1.default.createElement(LoginLayout_1.LoginLayout, { hideTitle: (_a = config.ui) === null || _a === void 0 ? void 0 : _a.hideTitle, Logo: (_b = config.ui) === null || _b === void 0 ? void 0 : _b.Logo, pageTitle: config.pageTitle, title: config.title },
|
97
|
-
react_1.default.createElement(LoginForm_1.LoginForm, { onSubmit: onLogin,
|
96
|
+
return (react_1.default.createElement(LoginLayout_1.LoginLayout, { hideTitle: (_a = config.ui) === null || _a === void 0 ? void 0 : _a.hideTitle, Logo: (_b = config.ui) === null || _b === void 0 ? void 0 : _b.Logo, pageTitle: config.pageTitle, title: config.title, subTitle: config.subTitle },
|
97
|
+
react_1.default.createElement(LoginForm_1.LoginForm, { onSubmit: onLogin, defaultValues: INITIAL_VALUES, onForgottenPassword: config.onForgottenPassword })));
|
98
98
|
};
|
99
99
|
Component.getInitialProps = function (ctx) { return __awaiter(void 0, void 0, void 0, function () {
|
100
100
|
var query, e_2;
|
@@ -132,4 +132,4 @@ var LoginPage = function (config) {
|
|
132
132
|
return Component;
|
133
133
|
};
|
134
134
|
exports.LoginPage = LoginPage;
|
135
|
-
//# sourceMappingURL=data:application/json;base64,
|
135
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTG9naW5QYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3BhZ2VzL0xvZ2luUGFnZS9Mb2dpblBhZ2UudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSw2Q0FBMkM7QUFDM0MsaUNBQWlEO0FBQ2pELHVDQUF5QztBQUN6QyxtREFBaUY7QUFDakYscURBQW9EO0FBRXBELHVEQUFpQztBQUVqQyxJQUFNLGNBQWMsR0FBa0I7SUFDbEMsUUFBUSxFQUFFLEVBQUU7SUFDWixRQUFRLEVBQUUsRUFBRTtDQUNmLENBQUM7QUFFSyxJQUFNLFNBQVMsR0FBRyxVQUFDLE1BQXVCO0lBQzdDLElBQU0sU0FBUyxHQUEyQixVQUFDLEtBQUs7O1FBQzVDLElBQU0sT0FBTyxHQUFHLElBQUEsbUJBQVcsRUFDdkIsVUFBTyxNQUFNOzs7Ozs7d0JBRVkscUJBQU0sSUFBQSxXQUFLLEVBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFDLENBQUMsSUFBSyxPQUFBLENBQUMsQ0FBQyxJQUFJLEVBQU4sQ0FBTSxDQUFDLEVBQUE7O3dCQUF4RCxRQUFRLEdBQUcsU0FBNkM7d0JBQzlELHFCQUFNLE1BQU0sQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxXQUFXLENBQUMsRUFBQTs7d0JBQXJELFNBQXFELENBQUM7Ozs7d0JBRXRELGtCQUFTLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxHQUFDLENBQUMsQ0FBQzs7Ozs7YUFFckQsRUFDRCxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FDdEIsQ0FBQztRQUVGLE9BQU8sQ0FDSCw4QkFBQyx5QkFBVyxJQUNSLFNBQVMsRUFBRSxNQUFBLE1BQU0sQ0FBQyxFQUFFLDBDQUFFLFNBQVMsRUFDL0IsSUFBSSxFQUFFLE1BQUEsTUFBTSxDQUFDLEVBQUUsMENBQUUsSUFBSSxFQUNyQixTQUFTLEVBQUUsTUFBTSxDQUFDLFNBQVMsRUFDM0IsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLLEVBQ25CLFFBQVEsRUFBRSxNQUFNLENBQUMsUUFBUTtZQUV6Qiw4QkFBQyxxQkFBUyxJQUNOLFFBQVEsRUFBRSxPQUFPLEVBQ2pCLGFBQWEsRUFBRSxjQUFjLEVBQzdCLG1CQUFtQixFQUFFLE1BQU0sQ0FBQyxtQkFBbUIsR0FDakQsQ0FDUSxDQUNqQixDQUFDO0lBQ04sQ0FBQyxDQUFDO0lBRUYsU0FBUyxDQUFDLGVBQWUsR0FBRyxVQUFPLEdBQUc7Ozs7O29CQUM1QixLQUFLLEdBQXlCLEdBQUcsQ0FBQyxLQUFLLENBQUM7eUJBRTFDLE1BQU0sQ0FBQyxxQkFBcUIsRUFBNUIsd0JBQTRCOzs7O29CQUV4QixxQkFBTSxJQUFBLG1CQUFhLEVBQUMsR0FBRyxDQUFDLEVBQUE7O29CQUF4QixTQUF3QixDQUFDO3lCQUVyQixDQUFBLE9BQU8sTUFBTSxLQUFLLFdBQVcsQ0FBQSxFQUE3Qix3QkFBNkI7b0JBQzdCLElBQUksR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFO3dCQUNqQyxHQUFHLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDLHFCQUFxQixFQUFFLENBQUMsQ0FBQzt3QkFDbkUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztxQkFDakI7O3dCQUVELHFCQUFNLGdCQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxFQUFBOztvQkFBL0MsU0FBK0MsQ0FBQzs7Ozs7O3dCQU81RCxzQkFBTzt3QkFDSCxXQUFXLEVBQUUsS0FBSyxDQUFDLFFBQVE7cUJBQzlCLEVBQUM7OztTQUNMLENBQUM7SUFFRixPQUFPLFNBQVMsQ0FBQztBQUNyQixDQUFDLENBQUM7QUF6RFcsUUFBQSxTQUFTLGFBeURwQiJ9
|
@@ -6,6 +6,7 @@ export interface InitialProps {
|
|
6
6
|
export interface LoginPageConfig {
|
7
7
|
pageTitle?: string;
|
8
8
|
title: ReactNode;
|
9
|
+
subTitle?: ReactNode;
|
9
10
|
onForgottenPassword?: () => void;
|
10
11
|
onLoginDone: (loginResponse: LoginResponse, redirectUrl?: string) => Promise<void>;
|
11
12
|
loggedUserRedirectUrl?: string;
|
@@ -1,13 +0,0 @@
|
|
1
|
-
/// <reference types="react" />
|
2
|
-
export declare const LoginLayoutRoot: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material/styles").Theme>, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLElement>, HTMLElement>, {}>;
|
3
|
-
export declare const LoginLayoutPaper: import("@emotion/styled").StyledComponent<{
|
4
|
-
children?: import("react").ReactNode;
|
5
|
-
classes?: Partial<import("@mui/material/Paper").PaperClasses> | undefined;
|
6
|
-
elevation?: number | undefined;
|
7
|
-
square?: boolean | undefined;
|
8
|
-
sx?: import("@mui/material/styles").SxProps<import("@mui/material/styles").Theme> | undefined;
|
9
|
-
variant?: "elevation" | "outlined" | undefined;
|
10
|
-
} & import("@mui/material/OverridableComponent").CommonProps & Omit<Pick<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof import("react").HTMLAttributes<HTMLDivElement> | "key"> & {
|
11
|
-
ref?: ((instance: HTMLDivElement | null) => void) | import("react").RefObject<HTMLDivElement> | null | undefined;
|
12
|
-
}, "children" | "sx" | keyof import("@mui/material/OverridableComponent").CommonProps | "elevation" | "square" | "variant"> & import("@mui/system").MUIStyledCommonProps<import("@mui/material/styles").Theme>, {}, {}>;
|
13
|
-
export declare const LoginLayoutHeader: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material/styles").Theme>, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
|
@@ -1,57 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
-
};
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
-
exports.LoginLayoutHeader = exports.LoginLayoutPaper = exports.LoginLayoutRoot = void 0;
|
7
|
-
var Paper_1 = __importDefault(require("@mui/material/Paper"));
|
8
|
-
var styles_1 = require("@mui/material/styles");
|
9
|
-
exports.LoginLayoutRoot = (0, styles_1.styled)("main")(function (_a) {
|
10
|
-
var _b;
|
11
|
-
var theme = _a.theme;
|
12
|
-
return (_b = {
|
13
|
-
alignItems: "center",
|
14
|
-
display: "flex",
|
15
|
-
justifyContent: "center",
|
16
|
-
minHeight: "100vh",
|
17
|
-
paddingLeft: theme.spacing(2),
|
18
|
-
paddingRight: theme.spacing(2),
|
19
|
-
paddingBottom: theme.spacing(10),
|
20
|
-
paddingTop: theme.spacing(6)
|
21
|
-
},
|
22
|
-
_b[theme.breakpoints.up("sm")] = {
|
23
|
-
paddingLeft: theme.spacing(3),
|
24
|
-
paddingRight: theme.spacing(3),
|
25
|
-
},
|
26
|
-
_b);
|
27
|
-
});
|
28
|
-
exports.LoginLayoutPaper = (0, styles_1.styled)(Paper_1.default)(function (_a) {
|
29
|
-
var _b;
|
30
|
-
var theme = _a.theme;
|
31
|
-
return (_b = {
|
32
|
-
alignItems: "center",
|
33
|
-
display: "flex",
|
34
|
-
flex: "0 1 ".concat(theme.spacing(50)),
|
35
|
-
flexDirection: "column",
|
36
|
-
maxWidth: theme.spacing(50),
|
37
|
-
paddingBottom: theme.spacing(3),
|
38
|
-
paddingLeft: theme.spacing(2),
|
39
|
-
paddingRight: theme.spacing(2),
|
40
|
-
paddingTop: theme.spacing(2)
|
41
|
-
},
|
42
|
-
_b[theme.breakpoints.up("sm")] = {
|
43
|
-
paddingLeft: theme.spacing(3),
|
44
|
-
paddingRight: theme.spacing(3),
|
45
|
-
},
|
46
|
-
_b);
|
47
|
-
});
|
48
|
-
exports.LoginLayoutHeader = (0, styles_1.styled)("div")(function (_a) {
|
49
|
-
var theme = _a.theme;
|
50
|
-
return ({
|
51
|
-
alignItems: "center",
|
52
|
-
display: "flex",
|
53
|
-
flexDirection: "column",
|
54
|
-
marginBottom: theme.spacing(2),
|
55
|
-
});
|
56
|
-
});
|
57
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R5bGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9Mb2dpbkxheW91dC9zdHlsZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsOERBQXdDO0FBQ3hDLCtDQUE4QztBQUVqQyxRQUFBLGVBQWUsR0FBRyxJQUFBLGVBQU0sRUFBQyxNQUFNLENBQUMsQ0FBQyxVQUFDLEVBQVM7O1FBQVAsS0FBSyxXQUFBO0lBQU8sT0FBQTtZQUN6RCxVQUFVLEVBQUUsUUFBUTtZQUNwQixPQUFPLEVBQUUsTUFBTTtZQUNmLGNBQWMsRUFBRSxRQUFRO1lBQ3hCLFNBQVMsRUFBRSxPQUFPO1lBQ2xCLFdBQVcsRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUM3QixZQUFZLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDOUIsYUFBYSxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ2hDLFVBQVUsRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQzs7UUFDNUIsR0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBRztZQUMxQixXQUFXLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDN0IsWUFBWSxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1NBQ2pDO1dBQ0g7QUFiMkQsQ0FhM0QsQ0FBQyxDQUFDO0FBRVMsUUFBQSxnQkFBZ0IsR0FBRyxJQUFBLGVBQU0sRUFBQyxlQUFLLENBQUMsQ0FBQyxVQUFDLEVBQVM7O1FBQVAsS0FBSyxXQUFBO0lBQU8sT0FBQTtZQUN6RCxVQUFVLEVBQUUsUUFBUTtZQUNwQixPQUFPLEVBQUUsTUFBTTtZQUNmLElBQUksRUFBRSxjQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUU7WUFDaEMsYUFBYSxFQUFFLFFBQVE7WUFDdkIsUUFBUSxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQzNCLGFBQWEsRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUMvQixXQUFXLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDN0IsWUFBWSxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBQzlCLFVBQVUsRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQzs7UUFDNUIsR0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBRztZQUMxQixXQUFXLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDN0IsWUFBWSxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1NBQ2pDO1dBQ0g7QUFkMkQsQ0FjM0QsQ0FBQyxDQUFDO0FBRVMsUUFBQSxpQkFBaUIsR0FBRyxJQUFBLGVBQU0sRUFBQyxLQUFLLENBQUMsQ0FBQyxVQUFDLEVBQVM7UUFBUCxLQUFLLFdBQUE7SUFBTyxPQUFBLENBQUM7UUFDM0QsVUFBVSxFQUFFLFFBQVE7UUFDcEIsT0FBTyxFQUFFLE1BQU07UUFDZixhQUFhLEVBQUUsUUFBUTtRQUN2QixZQUFZLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7S0FDakMsQ0FBQztBQUw0RCxDQUs1RCxDQUFDLENBQUMifQ==
|
package/utils/cookie.d.ts
DELETED
@@ -1,9 +0,0 @@
|
|
1
|
-
export default class Cookie {
|
2
|
-
private ctx;
|
3
|
-
constructor(ctx?: any | null);
|
4
|
-
static create(ctx?: any): Cookie;
|
5
|
-
exists(name: string): boolean;
|
6
|
-
set(name: string, value: string, ttl?: number): Cookie;
|
7
|
-
delete(name: string): Cookie;
|
8
|
-
get(cookieName: string): string;
|
9
|
-
}
|
package/utils/cookie.js
DELETED
@@ -1,80 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
var __values = (this && this.__values) || function(o) {
|
3
|
-
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
4
|
-
if (m) return m.call(o);
|
5
|
-
if (o && typeof o.length === "number") return {
|
6
|
-
next: function () {
|
7
|
-
if (o && i >= o.length) o = void 0;
|
8
|
-
return { value: o && o[i++], done: !o };
|
9
|
-
}
|
10
|
-
};
|
11
|
-
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
12
|
-
};
|
13
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
14
|
-
var Cookie = /** @class */ (function () {
|
15
|
-
function Cookie(ctx) {
|
16
|
-
if (ctx === void 0) { ctx = null; }
|
17
|
-
this.ctx = ctx;
|
18
|
-
}
|
19
|
-
Cookie.create = function (ctx) {
|
20
|
-
if (ctx === void 0) { ctx = null; }
|
21
|
-
return new Cookie(ctx);
|
22
|
-
};
|
23
|
-
Cookie.prototype.exists = function (name) {
|
24
|
-
return !!this.get(name);
|
25
|
-
};
|
26
|
-
Cookie.prototype.set = function (name, value, ttl) {
|
27
|
-
var _a, _b, _c;
|
28
|
-
if (ttl === void 0) { ttl = 3600; }
|
29
|
-
var date = new Date();
|
30
|
-
date.setTime(date.getTime() + ttl * 1000);
|
31
|
-
var expires = "expires=" + date.toUTCString();
|
32
|
-
var cookie = name + "=" + encodeURIComponent(value) + ";" + expires + ";path=/";
|
33
|
-
if (typeof document !== "undefined") {
|
34
|
-
document.cookie = cookie;
|
35
|
-
}
|
36
|
-
else {
|
37
|
-
var existsCookies = (((_a = this.ctx.res) === null || _a === void 0 ? void 0 : _a.getHeader("Set-Cookie")) || []).slice(0);
|
38
|
-
existsCookies.push(cookie);
|
39
|
-
(_c = (_b = this.ctx) === null || _b === void 0 ? void 0 : _b.res) === null || _c === void 0 ? void 0 : _c.setHeader("Set-Cookie", existsCookies);
|
40
|
-
}
|
41
|
-
return this;
|
42
|
-
};
|
43
|
-
Cookie.prototype.delete = function (name) {
|
44
|
-
this.set(name, "", -1);
|
45
|
-
return this;
|
46
|
-
};
|
47
|
-
Cookie.prototype.get = function (cookieName) {
|
48
|
-
var e_1, _a;
|
49
|
-
var _b, _c, _d, _e;
|
50
|
-
var decodedCookie = typeof document !== "undefined"
|
51
|
-
? decodeURIComponent(document.cookie)
|
52
|
-
: decodeURIComponent((_e = (_d = (_c = (_b = this.ctx) === null || _b === void 0 ? void 0 : _b.req) === null || _c === void 0 ? void 0 : _c.headers) === null || _d === void 0 ? void 0 : _d.cookie) !== null && _e !== void 0 ? _e : "");
|
53
|
-
var name = cookieName + "=";
|
54
|
-
var cookies = decodedCookie.split(";");
|
55
|
-
try {
|
56
|
-
for (var cookies_1 = __values(cookies), cookies_1_1 = cookies_1.next(); !cookies_1_1.done; cookies_1_1 = cookies_1.next()) {
|
57
|
-
var cookie = cookies_1_1.value;
|
58
|
-
// tslint:disable-next-line:triple-equals
|
59
|
-
while (cookie.charAt(0) == " ") {
|
60
|
-
cookie = cookie.substring(1);
|
61
|
-
}
|
62
|
-
// tslint:disable-next-line:triple-equals
|
63
|
-
if (cookie.indexOf(name) == 0) {
|
64
|
-
return cookie.substring(name.length, cookie.length);
|
65
|
-
}
|
66
|
-
}
|
67
|
-
}
|
68
|
-
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
69
|
-
finally {
|
70
|
-
try {
|
71
|
-
if (cookies_1_1 && !cookies_1_1.done && (_a = cookies_1.return)) _a.call(cookies_1);
|
72
|
-
}
|
73
|
-
finally { if (e_1) throw e_1.error; }
|
74
|
-
}
|
75
|
-
return "";
|
76
|
-
};
|
77
|
-
return Cookie;
|
78
|
-
}());
|
79
|
-
exports.default = Cookie;
|
80
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29va2llLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2Nvb2tpZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBRUE7SUFHSSxnQkFBWSxHQUFzQjtRQUF0QixvQkFBQSxFQUFBLFVBQXNCO1FBQzlCLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO0lBQ25CLENBQUM7SUFFYSxhQUFNLEdBQXBCLFVBQXFCLEdBQWU7UUFBZixvQkFBQSxFQUFBLFVBQWU7UUFDaEMsT0FBTyxJQUFJLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRU0sdUJBQU0sR0FBYixVQUFjLElBQVk7UUFDdEIsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRU0sb0JBQUcsR0FBVixVQUFXLElBQVksRUFBRSxLQUFhLEVBQUUsR0FBa0I7O1FBQWxCLG9CQUFBLEVBQUEsVUFBa0I7UUFDdEQsSUFBTSxJQUFJLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFDMUMsSUFBTSxPQUFPLEdBQUcsVUFBVSxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNoRCxJQUFNLE1BQU0sR0FBRyxJQUFJLEdBQUcsR0FBRyxHQUFHLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsR0FBRyxPQUFPLEdBQUcsU0FBUyxDQUFDO1FBQ2xGLElBQUksT0FBTyxRQUFRLEtBQUssV0FBVyxFQUFFO1lBQ2pDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1NBQzVCO2FBQU07WUFDSCxJQUFNLGFBQWEsR0FBRyxDQUFDLENBQUMsTUFBQSxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsMENBQUUsU0FBUyxDQUFDLFlBQVksQ0FBYyxLQUFJLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMzRixhQUFhLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzNCLE1BQUEsTUFBQSxJQUFJLENBQUMsR0FBRywwQ0FBRSxHQUFHLDBDQUFFLFNBQVMsQ0FBQyxZQUFZLEVBQUUsYUFBYSxDQUFDLENBQUM7U0FDekQ7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRU0sdUJBQU0sR0FBYixVQUFjLElBQVk7UUFDdEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdkIsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVNLG9CQUFHLEdBQVYsVUFBVyxVQUFrQjs7O1FBQ3pCLElBQU0sYUFBYSxHQUNmLE9BQU8sUUFBUSxLQUFLLFdBQVc7WUFDM0IsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7WUFDckMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLE1BQUEsTUFBQSxNQUFBLE1BQUEsSUFBSSxDQUFDLEdBQUcsMENBQUUsR0FBRywwQ0FBRSxPQUFPLDBDQUFFLE1BQU0sbUNBQUksRUFBRSxDQUFDLENBQUM7UUFFbkUsSUFBTSxJQUFJLEdBQUcsVUFBVSxHQUFHLEdBQUcsQ0FBQztRQUM5QixJQUFNLE9BQU8sR0FBRyxhQUFhLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDOztZQUN6QyxLQUFtQixJQUFBLFlBQUEsU0FBQSxPQUFPLENBQUEsZ0NBQUEscURBQUU7Z0JBQXZCLElBQUksTUFBTSxvQkFBQTtnQkFDWCx5Q0FBeUM7Z0JBQ3pDLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLEVBQUU7b0JBQzVCLE1BQU0sR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUNoQztnQkFDRCx5Q0FBeUM7Z0JBQ3pDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUU7b0JBQzNCLE9BQU8sTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztpQkFDdkQ7YUFDSjs7Ozs7Ozs7O1FBRUQsT0FBTyxFQUFFLENBQUM7SUFDZCxDQUFDO0lBQ0wsYUFBQztBQUFELENBQUMsQUF6REQsSUF5REMifQ==
|