@uxf/cms 2.2.3 → 2.3.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/README.md CHANGED
@@ -96,6 +96,69 @@ import { Paper } from "@uxf/cms/ui/Paper";
96
96
 
97
97
  ## Pages
98
98
 
99
+ ### ContentBuilder
100
+
101
+ ```tsx
102
+ import { ContentBuilder } from "@uxf/cms/lab/ContentBuilder";
103
+ import { Wysiwyg, WysiwygContent } from "@uxf/cms/lab/ContentBuilder/content/Wysiwyg"
104
+
105
+ type Contents = WysiwygContent | ...;
106
+
107
+ export default ContentBuilder<Contents>({
108
+ contentComponents: [ Wysiwyg ],
109
+ initialValues: {
110
+ active: false,
111
+ publishedAt: moment().startOf("day").add(1, "month").toISOString(),
112
+ name: "",
113
+ author: "",
114
+ visibilityLevel: "PRIVATE",
115
+ seo: {},
116
+ image: null,
117
+ content: [
118
+ {
119
+ type: "wysiwyg",
120
+ content: null,
121
+ },
122
+ ],
123
+ },
124
+ onSubmit: async (content) => {
125
+ // implement me
126
+ },
127
+ ui: {
128
+ Layout: (props) => (
129
+ <Layout menuConfiguration={menu} title="Nový článek">
130
+ {props.children}
131
+ </Layout>
132
+ ),
133
+ },
134
+ });
135
+ ```
136
+
137
+ #### Custom section
138
+
139
+ ```tsx
140
+ import { ContentHeader, Content } from "@uxf/cms/pages/ContentBuilder";
141
+ import { TextInput } from "@uxf/cms/forms/components/TextInput";
142
+
143
+ export type WysiwygContent = Content<"wysiwyg", any>;
144
+
145
+ export const Wysiwyg: ContentComponent<WysiwygContent> = (props) => {
146
+ const { name } = props;
147
+
148
+ return (
149
+ <Paper>
150
+ <ContentHeader {...props} />
151
+ <TextInput name="text" label="Wysiwyg" />
152
+ </Paper>
153
+ );
154
+ };
155
+
156
+ Wysiwyg.getConfig = () => ({
157
+ type: "wysiwyg",
158
+ label: "Strukturovaný text",
159
+ });
160
+ ```
161
+
99
162
  ### ForgottenPasswordPage
100
163
 
101
164
  ```tsx
@@ -0,0 +1,5 @@
1
+ import React from "react";
2
+ import { Content, ContentBuilderConfig } from "./types";
3
+ export declare const ContentBuilder: <T extends Content<string, any>>(config: ContentBuilderConfig<T>) => React.FunctionComponent<any> & {
4
+ getInitialProps?(context: import("next").NextPageContext): any;
5
+ };
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
+ return new (P || (P = Promise))(function (resolve, reject) {
16
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
17
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
20
+ });
21
+ };
22
+ var __generator = (this && this.__generator) || function (thisArg, body) {
23
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
24
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
25
+ function verb(n) { return function (v) { return step([n, v]); }; }
26
+ function step(op) {
27
+ if (f) throw new TypeError("Generator is already executing.");
28
+ while (_) try {
29
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
30
+ if (y = 0, t) op = [op[0] & 2, t.value];
31
+ switch (op[0]) {
32
+ case 0: case 1: t = op; break;
33
+ case 4: _.label++; return { value: op[1], done: false };
34
+ case 5: _.label++; y = op[1]; op = [0]; continue;
35
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
36
+ default:
37
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
38
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
39
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
40
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
41
+ if (t[2]) _.ops.pop();
42
+ _.trys.pop(); continue;
43
+ }
44
+ op = body.call(thisArg, _);
45
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
46
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
47
+ }
48
+ };
49
+ var __importDefault = (this && this.__importDefault) || function (mod) {
50
+ return (mod && mod.__esModule) ? mod : { "default": mod };
51
+ };
52
+ Object.defineProperty(exports, "__esModule", { value: true });
53
+ exports.ContentBuilder = void 0;
54
+ var react_1 = __importDefault(require("react"));
55
+ var Form_1 = require("./components/Form");
56
+ var DefaultLayout = function (props) { return react_1.default.createElement("div", __assign({}, props)); };
57
+ var ContentBuilderComponent = function (props) {
58
+ var _a;
59
+ var config = props.config, initialValues = props.initialValues;
60
+ var ui = config.ui;
61
+ var Layout = (_a = ui.Layout) !== null && _a !== void 0 ? _a : DefaultLayout;
62
+ return (react_1.default.createElement(Layout, null,
63
+ react_1.default.createElement(Form_1.Form, { config: config, onSubmit: config.onSubmit, initialValues: initialValues })));
64
+ };
65
+ ContentBuilderComponent.displayName = "ContentBuilderComponent";
66
+ var ContentBuilder = function (config) {
67
+ var Page = function (_a) {
68
+ var initialValues = _a.initialValues;
69
+ return react_1.default.createElement(ContentBuilderComponent, { config: config, initialValues: initialValues });
70
+ };
71
+ Page.getInitialProps = function (ctx) { return __awaiter(void 0, void 0, void 0, function () {
72
+ var initialValues, _a;
73
+ return __generator(this, function (_b) {
74
+ switch (_b.label) {
75
+ case 0:
76
+ if (!(typeof config.initialValues === "function")) return [3 /*break*/, 2];
77
+ return [4 /*yield*/, config.initialValues(ctx)];
78
+ case 1:
79
+ _a = _b.sent();
80
+ return [3 /*break*/, 3];
81
+ case 2:
82
+ _a = config.initialValues;
83
+ _b.label = 3;
84
+ case 3:
85
+ initialValues = _a;
86
+ return [2 /*return*/, { initialValues: initialValues }];
87
+ }
88
+ });
89
+ }); };
90
+ return Page;
91
+ };
92
+ exports.ContentBuilder = ContentBuilder;
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29udGVudEJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGFiL0NvbnRlbnRCdWlsZGVyUGFnZS9Db250ZW50QnVpbGRlci50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSxnREFBMEI7QUFFMUIsMENBQXlDO0FBRXpDLElBQU0sYUFBYSxHQUFhLFVBQUMsS0FBSyxJQUFLLE9BQUEsa0RBQVMsS0FBSyxFQUFJLEVBQWxCLENBQWtCLENBQUM7QUFFOUQsSUFBTSx1QkFBdUIsR0FBd0UsVUFBQyxLQUFLOztJQUMvRixJQUFBLE1BQU0sR0FBb0IsS0FBSyxPQUF6QixFQUFFLGFBQWEsR0FBSyxLQUFLLGNBQVYsQ0FBVztJQUNoQyxJQUFBLEVBQUUsR0FBSyxNQUFNLEdBQVgsQ0FBWTtJQUV0QixJQUFNLE1BQU0sR0FBRyxNQUFBLEVBQUUsQ0FBQyxNQUFNLG1DQUFJLGFBQWEsQ0FBQztJQUUxQyxPQUFPLENBQ0gsOEJBQUMsTUFBTTtRQUNILDhCQUFDLFdBQUksSUFBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUMsUUFBUSxFQUFFLGFBQWEsRUFBRSxhQUFhLEdBQUksQ0FDNUUsQ0FDWixDQUFDO0FBQ04sQ0FBQyxDQUFDO0FBQ0YsdUJBQXVCLENBQUMsV0FBVyxHQUFHLHlCQUF5QixDQUFDO0FBRXpELElBQU0sY0FBYyxHQUFHLFVBQWlDLE1BQStCO0lBQzFGLElBQU0sSUFBSSxHQUFrQixVQUFDLEVBQWlCO1lBQWYsYUFBYSxtQkFBQTtRQUN4QyxPQUFPLDhCQUFDLHVCQUF1QixJQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUFFLGFBQWEsR0FBSSxDQUFDO0lBQ3JGLENBQUMsQ0FBQztJQUVGLElBQUksQ0FBQyxlQUFlLEdBQUcsVUFBTyxHQUFHOzs7Ozt5QkFFekIsQ0FBQSxPQUFPLE1BQU0sQ0FBQyxhQUFhLEtBQUssVUFBVSxDQUFBLEVBQTFDLHdCQUEwQztvQkFBRyxxQkFBTSxNQUFNLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxFQUFBOztvQkFBL0IsS0FBQSxTQUErQixDQUFBOzs7b0JBQUcsS0FBQSxNQUFNLENBQUMsYUFBYSxDQUFBOzs7b0JBRGpHLGFBQWEsS0FDb0Y7b0JBRXZHLHNCQUFPLEVBQUUsYUFBYSxlQUFBLEVBQUUsRUFBQzs7O1NBQzVCLENBQUM7SUFFRixPQUFPLElBQUksQ0FBQztBQUNoQixDQUFDLENBQUM7QUFiVyxRQUFBLGNBQWMsa0JBYXpCIn0=
@@ -0,0 +1,3 @@
1
+ import { ContentProps } from "./types";
2
+ import React from "react";
3
+ export declare const ContentHeader: React.FC<ContentProps>;
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __rest = (this && this.__rest) || function (s, e) {
14
+ var t = {};
15
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
16
+ t[p] = s[p];
17
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
18
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
19
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
20
+ t[p[i]] = s[p[i]];
21
+ }
22
+ return t;
23
+ };
24
+ var __importDefault = (this && this.__importDefault) || function (mod) {
25
+ return (mod && mod.__esModule) ? mod : { "default": mod };
26
+ };
27
+ Object.defineProperty(exports, "__esModule", { value: true });
28
+ exports.ContentHeader = void 0;
29
+ var react_1 = __importDefault(require("react"));
30
+ var Typography_1 = __importDefault(require("@mui/material/Typography"));
31
+ var Box_1 = __importDefault(require("@mui/material/Box"));
32
+ var FormControl_1 = __importDefault(require("@mui/material/FormControl"));
33
+ var InputLabel_1 = __importDefault(require("@mui/material/InputLabel"));
34
+ var Select_1 = __importDefault(require("@mui/material/Select"));
35
+ var MenuItem_1 = __importDefault(require("@mui/material/MenuItem"));
36
+ var Divider_1 = __importDefault(require("@mui/material/Divider"));
37
+ var ContentHeader = function (props) {
38
+ var index = props.index, name = props.name, TypeInputProps = props.TypeInputProps;
39
+ var inputId = "field-".concat(name);
40
+ return (react_1.default.createElement(react_1.default.Fragment, null,
41
+ react_1.default.createElement(Typography_1.default, { variant: "h3", pt: 2, px: 2 },
42
+ "Sekce #",
43
+ index + 1),
44
+ react_1.default.createElement(Box_1.default, { p: 2 },
45
+ react_1.default.createElement(FormControl_1.default, { fullWidth: true },
46
+ react_1.default.createElement(InputLabel_1.default, { id: inputId }, "Typ"),
47
+ react_1.default.createElement(Select_1.default, __assign({ label: "Typ", size: "small", labelId: inputId }, TypeInputProps), TypeInputProps.options.map(function (_a) {
48
+ var children = _a.children, menuItemProps = __rest(_a, ["children"]);
49
+ return (react_1.default.createElement(MenuItem_1.default, __assign({ key: index }, menuItemProps), children));
50
+ })))),
51
+ react_1.default.createElement(Divider_1.default, null)));
52
+ };
53
+ exports.ContentHeader = ContentHeader;
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29udGVudEhlYWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9sYWIvQ29udGVudEJ1aWxkZXJQYWdlL0NvbnRlbnRIZWFkZXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSxnREFBMEI7QUFDMUIsd0VBQWtEO0FBQ2xELDBEQUFvQztBQUNwQywwRUFBb0Q7QUFDcEQsd0VBQWtEO0FBQ2xELGdFQUEwQztBQUMxQyxvRUFBOEM7QUFDOUMsa0VBQTRDO0FBRXJDLElBQU0sYUFBYSxHQUEyQixVQUFDLEtBQUs7SUFDL0MsSUFBQSxLQUFLLEdBQTJCLEtBQUssTUFBaEMsRUFBRSxJQUFJLEdBQXFCLEtBQUssS0FBMUIsRUFBRSxjQUFjLEdBQUssS0FBSyxlQUFWLENBQVc7SUFFOUMsSUFBTSxPQUFPLEdBQUcsZ0JBQVMsSUFBSSxDQUFFLENBQUM7SUFFaEMsT0FBTyxDQUNIO1FBQ0ksOEJBQUMsb0JBQVUsSUFBQyxPQUFPLEVBQUMsSUFBSSxFQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUM7O1lBQ3pCLEtBQUssR0FBRyxDQUFDLENBQ1I7UUFDYiw4QkFBQyxhQUFHLElBQUMsQ0FBQyxFQUFFLENBQUM7WUFDTCw4QkFBQyxxQkFBVyxJQUFDLFNBQVM7Z0JBQ2xCLDhCQUFDLG9CQUFVLElBQUMsRUFBRSxFQUFFLE9BQU8sVUFBa0I7Z0JBQ3pDLDhCQUFDLGdCQUFNLGFBQUMsS0FBSyxFQUFDLEtBQUssRUFBQyxJQUFJLEVBQUMsT0FBTyxFQUFDLE9BQU8sRUFBRSxPQUFPLElBQU0sY0FBYyxHQUNoRSxjQUFjLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFDLEVBQThCO29CQUE1QixJQUFBLFFBQVEsY0FBQSxFQUFLLGFBQWEsY0FBNUIsWUFBOEIsQ0FBRjtvQkFDckQsT0FBTyxDQUNILDhCQUFDLGtCQUFRLGFBQUMsR0FBRyxFQUFFLEtBQUssSUFBTSxhQUFhLEdBQ2xDLFFBQVEsQ0FDRixDQUNkLENBQUM7Z0JBQ04sQ0FBQyxDQUFDLENBQ0csQ0FDQyxDQUNaO1FBQ04sOEJBQUMsaUJBQU8sT0FBRyxDQUNaLENBQ04sQ0FBQztBQUNOLENBQUMsQ0FBQztBQTNCVyxRQUFBLGFBQWEsaUJBMkJ4QiJ9
@@ -0,0 +1,6 @@
1
+ import React from "react";
2
+ import { FormProps } from "react-final-form";
3
+ import { ContentBuilderConfig, RootContent } from "../types";
4
+ export declare const Form: React.FC<FormProps<RootContent<any>> & {
5
+ config: ContentBuilderConfig<any>;
6
+ }>;
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __rest = (this && this.__rest) || function (s, e) {
14
+ var t = {};
15
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
16
+ t[p] = s[p];
17
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
18
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
19
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
20
+ t[p[i]] = s[p[i]];
21
+ }
22
+ return t;
23
+ };
24
+ var __importDefault = (this && this.__importDefault) || function (mod) {
25
+ return (mod && mod.__esModule) ? mod : { "default": mod };
26
+ };
27
+ Object.defineProperty(exports, "__esModule", { value: true });
28
+ exports.Form = void 0;
29
+ var react_1 = __importDefault(require("react"));
30
+ var react_final_form_1 = require("react-final-form");
31
+ var final_form_arrays_1 = __importDefault(require("final-form-arrays"));
32
+ var react_final_form_arrays_1 = require("react-final-form-arrays");
33
+ var Button_1 = __importDefault(require("@mui/material/Button"));
34
+ var Grid_1 = __importDefault(require("@mui/material/Grid"));
35
+ var FormContent_1 = require("./FormContent");
36
+ var Save_1 = __importDefault(require("@mui/icons-material/Save"));
37
+ var Fab_1 = __importDefault(require("@mui/material/Fab"));
38
+ var FormRootFields_1 = require("./FormRootFields");
39
+ var Form = function (props) {
40
+ var config = props.config, formProps = __rest(props, ["config"]);
41
+ return (react_1.default.createElement(react_final_form_1.Form, __assign({}, formProps, { mutators: __assign({}, final_form_arrays_1.default) }), function (_a) {
42
+ var handleSubmit = _a.handleSubmit, submitting = _a.submitting;
43
+ return (react_1.default.createElement("form", { onSubmit: handleSubmit },
44
+ react_1.default.createElement(Grid_1.default, { container: true, spacing: 2 },
45
+ react_1.default.createElement(Grid_1.default, { item: true, xs: 12 },
46
+ react_1.default.createElement(FormRootFields_1.FormRootFields, null)),
47
+ react_1.default.createElement(react_final_form_arrays_1.FieldArray, { name: "content" }, function (_a) {
48
+ var fields = _a.fields;
49
+ return (react_1.default.createElement(react_1.default.Fragment, null,
50
+ fields.map(function (name, index) { return (react_1.default.createElement(Grid_1.default, { key: name, item: true, xs: 12 },
51
+ react_1.default.createElement(FormContent_1.FormContent, { name: name, contentComponents: config.contentComponents, index: index, onRemove: function () { return fields.remove(index); } }))); }),
52
+ react_1.default.createElement(Grid_1.default, { item: true, xs: 12 },
53
+ react_1.default.createElement(Button_1.default, { variant: "outlined", type: "button", onClick: function () {
54
+ var _a, _b;
55
+ return fields.push({
56
+ type: (_b = (_a = config.contentComponents[0]) === null || _a === void 0 ? void 0 : _a.getConfig().type) !== null && _b !== void 0 ? _b : "unknown",
57
+ content: null,
58
+ });
59
+ } }, "P\u0159idat sekci"))));
60
+ })),
61
+ react_1.default.createElement(Fab_1.default, { color: "primary", type: "submit", sx: { position: "fixed", bottom: 16, right: 16 }, disabled: submitting },
62
+ react_1.default.createElement(Save_1.default, null))));
63
+ }));
64
+ };
65
+ exports.Form = Form;
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRm9ybS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9sYWIvQ29udGVudEJ1aWxkZXJQYWdlL2NvbXBvbmVudHMvRm9ybS50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGdEQUEwQjtBQUMxQixxREFBcUU7QUFDckUsd0VBQThDO0FBQzlDLG1FQUFxRDtBQUNyRCxnRUFBMEM7QUFDMUMsNERBQXNDO0FBQ3RDLDZDQUE0QztBQUM1QyxrRUFBZ0Q7QUFDaEQsMERBQW9DO0FBRXBDLG1EQUFrRDtBQUUzQyxJQUFNLElBQUksR0FBa0YsVUFBQyxLQUFLO0lBQzdGLElBQUEsTUFBTSxHQUFtQixLQUFLLE9BQXhCLEVBQUssU0FBUyxVQUFLLEtBQUssRUFBaEMsVUFBd0IsQ0FBRixDQUFXO0lBRXZDLE9BQU8sQ0FDSCw4QkFBQyx1QkFBYyxlQUNQLFNBQVMsSUFDYixRQUFRLGVBQ0QsMkJBQWEsTUFHbkIsVUFBQyxFQUE0QjtZQUExQixZQUFZLGtCQUFBLEVBQUUsVUFBVSxnQkFBQTtRQUFPLE9BQUEsQ0FDL0Isd0NBQU0sUUFBUSxFQUFFLFlBQVk7WUFDeEIsOEJBQUMsY0FBSSxJQUFDLFNBQVMsUUFBQyxPQUFPLEVBQUUsQ0FBQztnQkFDdEIsOEJBQUMsY0FBSSxJQUFDLElBQUksUUFBQyxFQUFFLEVBQUUsRUFBRTtvQkFDYiw4QkFBQywrQkFBYyxPQUFHLENBQ2Y7Z0JBQ1AsOEJBQUMsb0NBQVUsSUFBQyxJQUFJLEVBQUMsU0FBUyxJQUNyQixVQUFDLEVBQVU7d0JBQVIsTUFBTSxZQUFBO29CQUFPLE9BQUEsQ0FDYjt3QkFDSyxNQUFNLENBQUMsR0FBRyxDQUFDLFVBQUMsSUFBSSxFQUFFLEtBQUssSUFBSyxPQUFBLENBQ3pCLDhCQUFDLGNBQUksSUFBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksUUFBQyxFQUFFLEVBQUUsRUFBRTs0QkFDeEIsOEJBQUMseUJBQVcsSUFDUixJQUFJLEVBQUUsSUFBSSxFQUNWLGlCQUFpQixFQUFFLE1BQU0sQ0FBQyxpQkFBaUIsRUFDM0MsS0FBSyxFQUFFLEtBQUssRUFDWixRQUFRLEVBQUUsY0FBTSxPQUFBLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQXBCLENBQW9CLEdBQ3RDLENBQ0MsQ0FDVixFQVQ0QixDQVM1QixDQUFDO3dCQUNGLDhCQUFDLGNBQUksSUFBQyxJQUFJLFFBQUMsRUFBRSxFQUFFLEVBQUU7NEJBQ2IsOEJBQUMsZ0JBQU0sSUFDSCxPQUFPLEVBQUMsVUFBVSxFQUNsQixJQUFJLEVBQUMsUUFBUSxFQUNiLE9BQU8sRUFBRTs7b0NBQ0wsT0FBQSxNQUFNLENBQUMsSUFBSSxDQUFDO3dDQUNSLElBQUksRUFBRSxNQUFBLE1BQUEsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQywwQ0FBRSxTQUFTLEdBQUcsSUFBSSxtQ0FBSSxTQUFTO3dDQUNoRSxPQUFPLEVBQUUsSUFBSTtxQ0FDaEIsQ0FBQyxDQUFBO2lDQUFBLHdCQUlELENBQ04sQ0FDUixDQUNOO2dCQTNCZ0IsQ0EyQmhCLENBQ1EsQ0FDVjtZQUNQLDhCQUFDLGFBQUcsSUFDQSxLQUFLLEVBQUMsU0FBUyxFQUNmLElBQUksRUFBQyxRQUFRLEVBQ2IsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFDaEQsUUFBUSxFQUFFLFVBQVU7Z0JBRXBCLDhCQUFDLGNBQVEsT0FBRyxDQUNWLENBQ0gsQ0FDVjtJQTlDa0MsQ0E4Q2xDLENBQ1ksQ0FDcEIsQ0FBQztBQUNOLENBQUMsQ0FBQztBQTNEVyxRQUFBLElBQUksUUEyRGYifQ==
@@ -0,0 +1,7 @@
1
+ import React from "react";
2
+ import { ContentComponent, ContentProps } from "../types";
3
+ interface FormSectionProps extends Omit<ContentProps, "TypeInputProps"> {
4
+ contentComponents: ContentComponent<any>[];
5
+ }
6
+ export declare const FormContent: React.FC<FormSectionProps>;
7
+ export {};
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.FormContent = void 0;
18
+ var react_1 = __importDefault(require("react"));
19
+ var react_final_form_1 = require("react-final-form");
20
+ var Box_1 = __importDefault(require("@mui/material/Box"));
21
+ var Warning_1 = __importDefault(require("@mui/icons-material/Warning"));
22
+ var Typography_1 = __importDefault(require("@mui/material/Typography"));
23
+ var getSection = function (sections, type) {
24
+ return sections.find(function (s) { return s.getConfig().type === type; });
25
+ };
26
+ var FormContent = function (props) {
27
+ var contentComponents = props.contentComponents, onRemove = props.onRemove, name = props.name, index = props.index;
28
+ var input = (0, react_final_form_1.useField)("".concat(name, ".type")).input;
29
+ var SectionContent = getSection(contentComponents, input.value);
30
+ if (SectionContent) {
31
+ return (react_1.default.createElement(SectionContent, { name: "".concat(name, ".content"), onRemove: onRemove, index: index, TypeInputProps: __assign(__assign({}, input), { options: contentComponents.map(function (s) { return ({
32
+ value: s.getConfig().type,
33
+ children: s.getConfig().label,
34
+ }); }) }) }));
35
+ }
36
+ return (react_1.default.createElement(Box_1.default, { display: "flex", alignItems: "center", justifyContent: "center", p: 2 },
37
+ react_1.default.createElement(Warning_1.default, { color: "error" }),
38
+ react_1.default.createElement(Typography_1.default, { color: "error", ml: 2, fontWeight: "bold" }, "Nepodporovan\u00E1 sekce")));
39
+ };
40
+ exports.FormContent = FormContent;
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRm9ybUNvbnRlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGFiL0NvbnRlbnRCdWlsZGVyUGFnZS9jb21wb25lbnRzL0Zvcm1Db250ZW50LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGdEQUEwQjtBQUMxQixxREFBNEM7QUFDNUMsMERBQW9DO0FBQ3BDLHdFQUFzRDtBQUN0RCx3RUFBa0Q7QUFPbEQsSUFBTSxVQUFVLEdBQUcsVUFBQyxRQUFpQyxFQUFFLElBQVk7SUFDL0QsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQUMsQ0FBQyxJQUFLLE9BQUEsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLElBQUksS0FBSyxJQUFJLEVBQTNCLENBQTJCLENBQUMsQ0FBQztBQUM3RCxDQUFDLENBQUM7QUFFSyxJQUFNLFdBQVcsR0FBK0IsVUFBQyxLQUFLO0lBQ2pELElBQUEsaUJBQWlCLEdBQTRCLEtBQUssa0JBQWpDLEVBQUUsUUFBUSxHQUFrQixLQUFLLFNBQXZCLEVBQUUsSUFBSSxHQUFZLEtBQUssS0FBakIsRUFBRSxLQUFLLEdBQUssS0FBSyxNQUFWLENBQVc7SUFFbkQsSUFBQSxLQUFLLEdBQUssSUFBQSwyQkFBUSxFQUFDLFVBQUcsSUFBSSxVQUFPLENBQUMsTUFBN0IsQ0FBOEI7SUFFM0MsSUFBTSxjQUFjLEdBQUcsVUFBVSxDQUFDLGlCQUFpQixFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUVsRSxJQUFJLGNBQWMsRUFBRTtRQUNoQixPQUFPLENBQ0gsOEJBQUMsY0FBYyxJQUNYLElBQUksRUFBRSxVQUFHLElBQUksYUFBVSxFQUN2QixRQUFRLEVBQUUsUUFBUSxFQUNsQixLQUFLLEVBQUUsS0FBSyxFQUNaLGNBQWMsd0JBQ1AsS0FBSyxLQUNSLE9BQU8sRUFBRSxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsVUFBQyxDQUFDLElBQUssT0FBQSxDQUFDO29CQUNuQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLElBQUk7b0JBQ3pCLFFBQVEsRUFBRSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsS0FBSztpQkFDaEMsQ0FBQyxFQUhvQyxDQUdwQyxDQUFDLE1BRVQsQ0FDTCxDQUFDO0tBQ0w7SUFFRCxPQUFPLENBQ0gsOEJBQUMsYUFBRyxJQUFDLE9BQU8sRUFBQyxNQUFNLEVBQUMsVUFBVSxFQUFDLFFBQVEsRUFBQyxjQUFjLEVBQUMsUUFBUSxFQUFDLENBQUMsRUFBRSxDQUFDO1FBQ2hFLDhCQUFDLGlCQUFXLElBQUMsS0FBSyxFQUFDLE9BQU8sR0FBRztRQUM3Qiw4QkFBQyxvQkFBVSxJQUFDLEtBQUssRUFBQyxPQUFPLEVBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxVQUFVLEVBQUMsTUFBTSwrQkFFckMsQ0FDWCxDQUNULENBQUM7QUFDTixDQUFDLENBQUM7QUFoQ1csUUFBQSxXQUFXLGVBZ0N0QiJ9
@@ -0,0 +1,2 @@
1
+ import React from "react";
2
+ export declare const FormRootFields: React.FC;
@@ -0,0 +1,55 @@
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.FormRootFields = void 0;
7
+ var Typography_1 = __importDefault(require("@mui/material/Typography"));
8
+ var Grid_1 = __importDefault(require("@mui/material/Grid"));
9
+ var Checkbox_1 = require("../../../forms/components/Checkbox");
10
+ var TextInput_1 = require("../../../forms/components/TextInput");
11
+ var Paper_1 = __importDefault(require("@mui/material/Paper"));
12
+ var react_1 = __importDefault(require("react"));
13
+ var Divider_1 = __importDefault(require("@mui/material/Divider"));
14
+ var DateTimePicker_1 = require("../../../forms/components/DateTimePicker");
15
+ var FileInput_1 = require("../../../ui/FileInput");
16
+ var SelectDeprecated_1 = require("../../../forms/components/SelectDeprecated");
17
+ var options = [
18
+ { id: "PRIVATE", label: "Privátní" },
19
+ { id: "PUBLIC_WITHOUT_SITEMAP", label: "Veřejný bez sitemapy" },
20
+ { id: "PUBLIC", label: "Veřejný" },
21
+ ];
22
+ var FormRootFields = function () {
23
+ return (react_1.default.createElement(Paper_1.default, null,
24
+ react_1.default.createElement(Typography_1.default, { variant: "h3", pt: 2, px: 2 }, "Z\u00E1kladn\u00ED nastaven\u00ED"),
25
+ react_1.default.createElement(Grid_1.default, { container: true, spacing: 2, p: 2 },
26
+ react_1.default.createElement(Grid_1.default, { item: true, xs: 12, md: 6 },
27
+ react_1.default.createElement(Checkbox_1.Checkbox, { name: "active", label: "Aktivn\u00ED" })),
28
+ react_1.default.createElement(Grid_1.default, { item: true, xs: 12, md: 6 },
29
+ react_1.default.createElement(SelectDeprecated_1.SelectDeprecated, { name: "visibilityLevel", label: "Viditelnost", options: options, required: true })),
30
+ react_1.default.createElement(Grid_1.default, { item: true, xs: 12 },
31
+ react_1.default.createElement(TextInput_1.TextInput, { name: "name", label: "N\u00E1zev", required: true })),
32
+ react_1.default.createElement(Grid_1.default, { item: true, xs: 12 },
33
+ react_1.default.createElement(DateTimePicker_1.DateTimePicker, { name: "publishedAt", label: "Datum publikace", required: true })),
34
+ react_1.default.createElement(Grid_1.default, { item: true, xs: 12 },
35
+ react_1.default.createElement(TextInput_1.TextInput, { name: "author", label: "Autor" })),
36
+ react_1.default.createElement(Grid_1.default, { item: true, xs: 12 },
37
+ react_1.default.createElement(FileInput_1.FileInput, { disabled: true, id: "image", value: null, onChange: function () { return null; }, name: "image", label: "Obr\u00E1zek" }))),
38
+ react_1.default.createElement(Divider_1.default, null),
39
+ react_1.default.createElement(Typography_1.default, { variant: "h3", pt: 2, px: 2 }, "SEO"),
40
+ react_1.default.createElement(Grid_1.default, { container: true, spacing: 2, p: 2 },
41
+ react_1.default.createElement(Grid_1.default, { item: true, xs: 12 },
42
+ react_1.default.createElement(TextInput_1.TextInput, { name: "seo.name", label: "N\u00E1zev" })),
43
+ react_1.default.createElement(Grid_1.default, { item: true, xs: 12 },
44
+ react_1.default.createElement(TextInput_1.TextInput, { name: "seo.title", label: "Nadpis" })),
45
+ react_1.default.createElement(Grid_1.default, { item: true, xs: 12 },
46
+ react_1.default.createElement(TextInput_1.TextInput, { name: "seo.description", label: "Popis" })),
47
+ react_1.default.createElement(Grid_1.default, { item: true, xs: 12 },
48
+ react_1.default.createElement(TextInput_1.TextInput, { name: "seo.ogTitle", label: "OG nadpis" })),
49
+ react_1.default.createElement(Grid_1.default, { item: true, xs: 12 },
50
+ react_1.default.createElement(TextInput_1.TextInput, { name: "seo.ogDescription", label: "OG popis" })),
51
+ react_1.default.createElement(Grid_1.default, { item: true, xs: 12 },
52
+ react_1.default.createElement(FileInput_1.FileInput, { disabled: true, id: "seo.ogImage", value: null, onChange: function () { return null; }, name: "seo.ogImage", label: "OG obr\u00E1zek" })))));
53
+ };
54
+ exports.FormRootFields = FormRootFields;
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRm9ybVJvb3RGaWVsZHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGFiL0NvbnRlbnRCdWlsZGVyUGFnZS9jb21wb25lbnRzL0Zvcm1Sb290RmllbGRzLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSx3RUFBa0Q7QUFDbEQsNERBQXNDO0FBQ3RDLCtEQUE4RDtBQUM5RCxpRUFBZ0U7QUFDaEUsOERBQXdDO0FBQ3hDLGdEQUEwQjtBQUMxQixrRUFBNEM7QUFDNUMsMkVBQTBFO0FBQzFFLG1EQUFrRDtBQUNsRCwrRUFBOEU7QUFHOUUsSUFBTSxPQUFPLEdBQWtEO0lBQzNELEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFO0lBQ3BDLEVBQUUsRUFBRSxFQUFFLHdCQUF3QixFQUFFLEtBQUssRUFBRSxzQkFBc0IsRUFBRTtJQUMvRCxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRTtDQUNyQyxDQUFDO0FBRUssSUFBTSxjQUFjLEdBQWE7SUFDcEMsT0FBTyxDQUNILDhCQUFDLGVBQUs7UUFDRiw4QkFBQyxvQkFBVSxJQUFDLE9BQU8sRUFBQyxJQUFJLEVBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyx3Q0FFeEI7UUFDYiw4QkFBQyxjQUFJLElBQUMsU0FBUyxRQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDNUIsOEJBQUMsY0FBSSxJQUFDLElBQUksUUFBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO2dCQUNwQiw4QkFBQyxtQkFBUSxJQUFDLElBQUksRUFBQyxRQUFRLEVBQUMsS0FBSyxFQUFDLGNBQVMsR0FBRyxDQUN2QztZQUNQLDhCQUFDLGNBQUksSUFBQyxJQUFJLFFBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztnQkFDcEIsOEJBQUMs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
@@ -0,0 +1,3 @@
1
+ import { Content, ContentComponent } from "../types";
2
+ export declare type WysiwygContent = Content<"wysiwyg", any>;
3
+ export declare const Wysiwyg: ContentComponent<WysiwygContent>;
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.Wysiwyg = void 0;
18
+ var react_1 = __importDefault(require("react"));
19
+ var Box_1 = __importDefault(require("@mui/material/Box"));
20
+ var Editor_1 = require("@uxf/wysiwyg/Editor");
21
+ var react_final_form_1 = require("react-final-form");
22
+ var Paper_1 = __importDefault(require("@mui/material/Paper"));
23
+ var ContentHeader_1 = require("../ContentHeader");
24
+ var Wysiwyg = function (props) {
25
+ var name = props.name;
26
+ var input = (0, react_final_form_1.useField)("".concat(name, ".content"), { allowNull: true }).input;
27
+ return (react_1.default.createElement(Paper_1.default, null,
28
+ react_1.default.createElement(ContentHeader_1.ContentHeader, __assign({}, props)),
29
+ react_1.default.createElement(Box_1.default, { sx: { "> .MuiPaper-root": { border: "none" } } },
30
+ react_1.default.createElement(Editor_1.WysiwygEditor, { value: input.value, onChange: input.onChange, imageNamespace: "default" // TODO
31
+ , imageUrlClient: function () { return ""; }, onUploadImage: function () {
32
+ // TODO
33
+ return Promise.resolve({ id: 1, name: "", namespace: "", type: "", url: "", extension: "", uuid: "" });
34
+ } }))));
35
+ };
36
+ exports.Wysiwyg = Wysiwyg;
37
+ exports.Wysiwyg.getConfig = function () { return ({
38
+ type: "wysiwyg",
39
+ label: "Strukturovaný text",
40
+ }); };
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiV3lzaXd5Zy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9sYWIvQ29udGVudEJ1aWxkZXJQYWdlL2NvbnRlbnQvV3lzaXd5Zy50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxnREFBMEI7QUFFMUIsMERBQW9DO0FBQ3BDLDhDQUFvRDtBQUNwRCxxREFBNEM7QUFDNUMsOERBQXdDO0FBQ3hDLGtEQUFpRDtBQUkxQyxJQUFNLE9BQU8sR0FBcUMsVUFBQyxLQUFLO0lBQ25ELElBQUEsSUFBSSxHQUFLLEtBQUssS0FBVixDQUFXO0lBQ2YsSUFBQSxLQUFLLEdBQUssSUFBQSwyQkFBUSxFQUFDLFVBQUcsSUFBSSxhQUFVLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsTUFBckQsQ0FBc0Q7SUFFbkUsT0FBTyxDQUNILDhCQUFDLGVBQUs7UUFDRiw4QkFBQyw2QkFBYSxlQUFLLEtBQUssRUFBSTtRQUM1Qiw4QkFBQyxhQUFHLElBQUMsRUFBRSxFQUFFLEVBQUUsa0JBQWtCLEVBQUUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDL0MsOEJBQUMsc0JBQWEsSUFDVixLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUssRUFDbEIsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRLEVBQ3hCLGNBQWMsRUFBQyxTQUFTLENBQUMsT0FBTztrQkFDaEMsY0FBYyxFQUFFLGNBQU0sT0FBQSxFQUFFLEVBQUYsQ0FBRSxFQUN4QixhQUFhLEVBQUU7b0JBQ1gsT0FBTztvQkFDUCxPQUFBLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUM7Z0JBQS9GLENBQStGLEdBRXJHLENBQ0EsQ0FDRixDQUNYLENBQUM7QUFDTixDQUFDLENBQUM7QUFyQlcsUUFBQSxPQUFPLFdBcUJsQjtBQUVGLGVBQU8sQ0FBQyxTQUFTLEdBQUcsY0FBTSxPQUFBLENBQUM7SUFDdkIsSUFBSSxFQUFFLFNBQVM7SUFDZixLQUFLLEVBQUUsb0JBQW9CO0NBQzlCLENBQUMsRUFId0IsQ0FHeEIsQ0FBQyJ9
@@ -0,0 +1,3 @@
1
+ export * from "./types";
2
+ export * from "./ContentBuilder";
3
+ export * from "./ContentHeader";
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
+ };
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ __exportStar(require("./types"), exports);
14
+ __exportStar(require("./ContentBuilder"), exports);
15
+ __exportStar(require("./ContentHeader"), exports);
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGFiL0NvbnRlbnRCdWlsZGVyUGFnZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSwwQ0FBd0I7QUFDeEIsbURBQWlDO0FBQ2pDLGtEQUFnQyJ9
@@ -0,0 +1,49 @@
1
+ import React, { ReactNode } from "react";
2
+ import { MenuItemProps } from "@mui/material/MenuItem";
3
+ import { NextPageContext } from "next";
4
+ import { FieldInputProps, FormProps } from "react-final-form";
5
+ export interface ContentProps {
6
+ name: string;
7
+ index: number;
8
+ onRemove: () => void;
9
+ TypeInputProps: FieldInputProps<string> & {
10
+ options: MenuItemProps[];
11
+ };
12
+ }
13
+ export declare type ContentComponent<T extends Content<string, any>> = React.FC<ContentProps> & {
14
+ getConfig: () => {
15
+ type: T["type"];
16
+ label: ReactNode;
17
+ };
18
+ };
19
+ export interface ContentBuilderConfig<Contents extends Content<string, any>> {
20
+ contentComponents: ContentComponent<any>[];
21
+ onSubmit: FormProps<RootContent<Contents>>["onSubmit"];
22
+ initialValues: RootContent<Contents> | ((ctx: NextPageContext) => Promise<RootContent<Contents>>);
23
+ allowedRoles?: string[];
24
+ ui: {
25
+ Layout?: React.FC;
26
+ };
27
+ }
28
+ export interface Content<Type extends string, Content> {
29
+ type: Type;
30
+ content: Content;
31
+ }
32
+ export declare type VisibilityLevel = "PUBLIC" | "PUBLIC_WITHOUT_SITEMAP" | "PRIVATE";
33
+ export declare type RootContent<T> = {
34
+ active: boolean;
35
+ visibilityLevel: VisibilityLevel;
36
+ name: string;
37
+ publishedAt: string;
38
+ author: string;
39
+ image: any;
40
+ seo?: {
41
+ name?: string;
42
+ title?: string;
43
+ description?: string;
44
+ ogTitle?: string;
45
+ ogDescription?: string;
46
+ ogImage?: any;
47
+ };
48
+ content: T[];
49
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGFiL0NvbnRlbnRCdWlsZGVyUGFnZS90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uxf/cms",
3
- "version": "2.2.3",
3
+ "version": "2.3.0",
4
4
  "description": "UXF Cms",
5
5
  "author": "UXFans <dev@uxf.cz>",
6
6
  "homepage": "https://gitlab.com/uxf-npm/cms#readme",
@@ -52,6 +52,7 @@
52
52
  "@uxf/data-grid": "^3.1.1",
53
53
  "@uxf/eslint-config": "^1.1.0",
54
54
  "@uxf/router": "^1.7.0",
55
+ "@uxf/wysiwyg": "^1.0.0-beta.3",
55
56
  "axios": "^0.21.1",
56
57
  "axios-hooks": "^2.7.0",
57
58
  "eslint": "^7.32.0",
@@ -48,7 +48,7 @@ var Tooltip_1 = __importDefault(require("@mui/material/Tooltip"));
48
48
  var Typography_1 = __importDefault(require("@mui/material/Typography"));
49
49
  var react_1 = __importDefault(require("react"));
50
50
  var FileInput = function (props) {
51
- var id = props.id, name = props.name, label = props.label, placeholder = props.placeholder, value = props.value, onChange = props.onChange;
51
+ var id = props.id, name = props.name, label = props.label, placeholder = props.placeholder, value = props.value, onChange = props.onChange, disabled = props.disabled;
52
52
  var handleChange = function (e) { return __awaiter(void 0, void 0, void 0, function () {
53
53
  var files;
54
54
  var _a;
@@ -74,7 +74,7 @@ var FileInput = function (props) {
74
74
  height: "40px",
75
75
  alignItems: "center",
76
76
  "&:hover": {
77
- borderColor: "#212121",
77
+ borderColor: disabled ? undefined : "#212121",
78
78
  },
79
79
  } },
80
80
  react_1.default.createElement("input", { type: "file", id: id, name: name, style: { display: "none" }, onChange: handleChange }),
@@ -83,7 +83,7 @@ var FileInput = function (props) {
83
83
  react_1.default.createElement(Typography_1.default, { flex: 1, color: function (theme) { return (value ? undefined : theme.palette.text.disabled); }, textOverflow: "ellipsis", minWidth: 0, whiteSpace: "nowrap", overflow: "hidden", sx: { lineBreak: "anywhere" }, pr: 1 }, value ? value.name : placeholder),
84
84
  value ? (react_1.default.createElement(Tooltip_1.default, { title: "Smazat" },
85
85
  react_1.default.createElement(IconButton_1.default, { onClick: function () { return onChange(null); } },
86
- react_1.default.createElement(Clear_1.default, null)))) : (react_1.default.createElement(Button_1.default, { component: "label", size: "small", variant: "contained", htmlFor: id }, "Vybrat soubor")))));
86
+ react_1.default.createElement(Clear_1.default, null)))) : (react_1.default.createElement(Button_1.default, { disabled: disabled, component: "label", size: "small", variant: "contained", htmlFor: id }, "Vybrat soubor")))));
87
87
  };
88
88
  exports.FileInput = FileInput;
89
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmlsZUlucHV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3VpL0ZpbGVJbnB1dC9GaWxlSW5wdXQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG9FQUFrRDtBQUNsRCwwREFBb0M7QUFDcEMsZ0VBQTBDO0FBQzFDLHdFQUFrRDtBQUNsRCxrRUFBNEM7QUFDNUMsd0VBQWtEO0FBQ2xELGdEQUEwQjtBQUduQixJQUFNLFNBQVMsR0FBNkIsVUFBQyxLQUFLO0lBQzdDLElBQUEsRUFBRSxHQUFnRCxLQUFLLEdBQXJELEVBQUUsSUFBSSxHQUEwQyxLQUFLLEtBQS9DLEVBQUUsS0FBSyxHQUFtQyxLQUFLLE1BQXhDLEVBQUUsV0FBVyxHQUFzQixLQUFLLFlBQTNCLEVBQUUsS0FBSyxHQUFlLEtBQUssTUFBcEIsRUFBRSxRQUFRLEdBQUssS0FBSyxTQUFWLENBQVc7SUFFaEUsSUFBTSxZQUFZLEdBQUcsVUFBTyxDQUFzQzs7OztZQUM5RCxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7WUFFTixLQUFLLEdBQUcsTUFBQSxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssbUNBQUksRUFBRSxDQUFDO1lBRW5DLElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7Z0JBQ2xCLG9DQUFvQztnQkFDcEMsS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7YUFDcEM7WUFFRCxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO2dCQUNwQixRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDdEI7OztTQUNKLENBQUM7SUFFRiwrQ0FBK0M7SUFFL0MsT0FBTyxDQUNIO1FBQ0ksOEJBQUMsYUFBRyxJQUNBLFFBQVEsRUFBQyxVQUFVLEVBQ25CLE9BQU8sRUFBQyxNQUFNLEVBQ2QsYUFBYSxFQUFDLEtBQUssRUFDbkIsRUFBRSxFQUFFLEdBQUcsRUFDUCxFQUFFLEVBQUUsQ0FBQyxFQUNMLEVBQUUsRUFBRTtnQkFDQSxZQUFZLEVBQUUsS0FBSztnQkFDbkIsTUFBTSxFQUFFLG1CQUFtQjtnQkFDM0IsRUFBRSxFQUFFLENBQUM7Z0JBQ0wsTUFBTSxFQUFFLE1BQU07Z0JBQ2QsVUFBVSxFQUFFLFFBQVE7Z0JBQ3BCLFNBQVMsRUFBRTtvQkFDUCxXQUFXLEVBQUUsU0FBUztpQkFDekI7YUFDSjtZQUVELHlDQUFPLElBQUksRUFBQyxNQUFNLEVBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRSxRQUFRLEVBQUUsWUFBWSxHQUFJO1lBQzdGLDhCQUFDLGFBQUcsSUFBQyxRQUFRLEVBQUMsVUFBVSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRTtnQkFDakYsOEJBQUMsb0JBQVUsSUFBQyxRQUFRLEVBQUMsT0FBTyxFQUFDLEtBQUssRUFBQyxpQkFBaUIsSUFDL0MsS0FBSyxDQUNHLENBQ1g7WUFDTiw4QkFBQyxvQkFBVSxJQUNQLElBQUksRUFBRSxDQUFDLEVBQ1AsS0FBSyxFQUFFLFVBQUMsS0FBSyxJQUFLLE9BQUEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQWpELENBQWlELEVBQ25FLFlBQVksRUFBQyxVQUFVLEVBQ3ZCLFFBQVEsRUFBRSxDQUFDLEVBQ1gsVUFBVSxFQUFDLFFBQVEsRUFDbkIsUUFBUSxFQUFDLFFBQVEsRUFDakIsRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxFQUM3QixFQUFFLEVBQUUsQ0FBQyxJQUVKLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUN4QjtZQUNaLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FDTCw4QkFBQyxpQkFBTyxJQUFDLEtBQUssRUFBQyxRQUFRO2dCQUNuQiw4QkFBQyxvQkFBVSxJQUFDLE9BQU8sRUFBRSxjQUFNLE9BQUEsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFkLENBQWM7b0JBQ3JDLDhCQUFDLGVBQVMsT0FBRyxDQUNKLENBQ1AsQ0FDYixDQUFDLENBQUMsQ0FBQyxDQUNBLDhCQUFDLGdCQUFNLElBQUMsU0FBUyxFQUFDLE9BQU8sRUFBQyxJQUFJLEVBQUMsT0FBTyxFQUFDLE9BQU8sRUFBQyxXQUFXLEVBQUMsT0FBTyxFQUFFLEVBQUUsb0JBRTdELENBQ1osQ0FDQyxDQUNQLENBQ04sQ0FBQztBQUNOLENBQUMsQ0FBQztBQXZFVyxRQUFBLFNBQVMsYUF1RXBCIn0=
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmlsZUlucHV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3VpL0ZpbGVJbnB1dC9GaWxlSW5wdXQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG9FQUFrRDtBQUNsRCwwREFBb0M7QUFDcEMsZ0VBQTBDO0FBQzFDLHdFQUFrRDtBQUNsRCxrRUFBNEM7QUFDNUMsd0VBQWtEO0FBQ2xELGdEQUEwQjtBQUduQixJQUFNLFNBQVMsR0FBNkIsVUFBQyxLQUFLO0lBQzdDLElBQUEsRUFBRSxHQUEwRCxLQUFLLEdBQS9ELEVBQUUsSUFBSSxHQUFvRCxLQUFLLEtBQXpELEVBQUUsS0FBSyxHQUE2QyxLQUFLLE1BQWxELEVBQUUsV0FBVyxHQUFnQyxLQUFLLFlBQXJDLEVBQUUsS0FBSyxHQUF5QixLQUFLLE1BQTlCLEVBQUUsUUFBUSxHQUFlLEtBQUssU0FBcEIsRUFBRSxRQUFRLEdBQUssS0FBSyxTQUFWLENBQVc7SUFFMUUsSUFBTSxZQUFZLEdBQUcsVUFBTyxDQUFzQzs7OztZQUM5RCxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7WUFFTixLQUFLLEdBQUcsTUFBQSxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssbUNBQUksRUFBRSxDQUFDO1lBRW5DLElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7Z0JBQ2xCLG9DQUFvQztnQkFDcEMsS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7YUFDcEM7WUFFRCxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO2dCQUNwQixRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDdEI7OztTQUNKLENBQUM7SUFFRiwrQ0FBK0M7SUFFL0MsT0FBTyxDQUNIO1FBQ0ksOEJBQUMsYUFBRyxJQUNBLFFBQVEsRUFBQyxVQUFVLEVBQ25CLE9BQU8sRUFBQyxNQUFNLEVBQ2QsYUFBYSxFQUFDLEtBQUssRUFDbkIsRUFBRSxFQUFFLEdBQUcsRUFDUCxFQUFFLEVBQUUsQ0FBQyxFQUNMLEVBQUUsRUFBRTtnQkFDQSxZQUFZLEVBQUUsS0FBSztnQkFDbkIsTUFBTSxFQUFFLG1CQUFtQjtnQkFDM0IsRUFBRSxFQUFFLENBQUM7Z0JBQ0wsTUFBTSxFQUFFLE1BQU07Z0JBQ2QsVUFBVSxFQUFFLFFBQVE7Z0JBQ3BCLFNBQVMsRUFBRTtvQkFDUCxXQUFXLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVM7aUJBQ2hEO2FBQ0o7WUFFRCx5Q0FBTyxJQUFJLEVBQUMsTUFBTSxFQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUUsUUFBUSxFQUFFLFlBQVksR0FBSTtZQUM3Riw4QkFBQyxhQUFHLElBQUMsUUFBUSxFQUFDLFVBQVUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQUU7Z0JBQ2pGLDhCQUFDLG9CQUFVLElBQUMsUUFBUSxFQUFDLE9BQU8sRUFBQyxLQUFLLEVBQUMsaUJBQWlCLElBQy9DLEtBQUssQ0FDRyxDQUNYO1lBQ04sOEJBQUMsb0JBQVUsSUFDUCxJQUFJLEVBQUUsQ0FBQyxFQUNQLEtBQUssRUFBRSxVQUFDLEtBQUssSUFBSyxPQUFBLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFqRCxDQUFpRCxFQUNuRSxZQUFZLEVBQUMsVUFBVSxFQUN2QixRQUFRLEVBQUUsQ0FBQyxFQUNYLFVBQVUsRUFBQyxRQUFRLEVBQ25CLFFBQVEsRUFBQyxRQUFRLEVBQ2pCLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsRUFDN0IsRUFBRSxFQUFFLENBQUMsSUFFSixLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FDeEI7WUFDWixLQUFLLENBQUMsQ0FBQyxDQUFDLENBQ0wsOEJBQUMsaUJBQU8sSUFBQyxLQUFLLEVBQUMsUUFBUTtnQkFDbkIsOEJBQUMsb0JBQVUsSUFBQyxPQUFPLEVBQUUsY0FBTSxPQUFBLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBZCxDQUFjO29CQUNyQyw4QkFBQyxlQUFTLE9BQUcsQ0FDSixDQUNQLENBQ2IsQ0FBQyxDQUFDLENBQUMsQ0FDQSw4QkFBQyxnQkFBTSxJQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFDLE9BQU8sRUFBQyxJQUFJLEVBQUMsT0FBTyxFQUFDLE9BQU8sRUFBQyxXQUFXLEVBQUMsT0FBTyxFQUFFLEVBQUUsb0JBRWpGLENBQ1osQ0FDQyxDQUNQLENBQ04sQ0FBQztBQUNOLENBQUMsQ0FBQztBQXZFVyxRQUFBLFNBQVMsYUF1RXBCIn0=
@@ -3,6 +3,7 @@ export interface FileInputProps {
3
3
  id: string;
4
4
  name: string;
5
5
  placeholder?: string;
6
+ disabled?: boolean;
6
7
  label: ReactNode;
7
8
  onChange: (file: File | null) => void;
8
9
  value: File | null | undefined;