@webiny/app-admin 5.32.0 → 5.33.0-beta.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/components/FileManager/FileManagerContext.d.ts +8 -2
- package/components/FileManager/FileManagerContext.js +2 -8
- package/components/FileManager/FileManagerContext.js.map +1 -1
- package/components/FileManager/FileManagerView.d.ts +4 -4
- package/components/FileManager/FileManagerView.js +6 -3
- package/components/FileManager/FileManagerView.js.map +1 -1
- package/components/FileManager/outputFileSelectionError.d.ts +2 -2
- package/components/FileManager/outputFileSelectionError.js +3 -3
- package/components/FileManager/outputFileSelectionError.js.map +1 -1
- package/components/FileManager/types.d.ts +3 -1
- package/components/FileManager/types.js.map +1 -1
- package/components/FileManager.d.ts +60 -19
- package/components/FileManager.js +88 -110
- package/components/FileManager.js.map +1 -1
- package/components/OverlayLayout/OverlayLayout.d.ts +1 -1
- package/components/OverlayLayout/OverlayLayout.js.map +1 -1
- package/components/OverlayLayout/index.d.ts +1 -1
- package/components/OverlayLayout/index.js +12 -7
- package/components/OverlayLayout/index.js.map +1 -1
- package/components/RichTextEditor/RichTextEditor.js +2 -2
- package/components/RichTextEditor/RichTextEditor.js.map +1 -1
- package/components/SingleImageUpload.d.ts +42 -6
- package/components/SingleImageUpload.js +68 -73
- package/components/SingleImageUpload.js.map +1 -1
- package/index.d.ts +4 -0
- package/index.js +50 -0
- package/index.js.map +1 -1
- package/package.json +16 -15
- package/plugins/fileManager/fileImage/DeleteAction.d.ts +2 -2
- package/plugins/fileManager/fileImage/DeleteAction.js.map +1 -1
- package/plugins/fileManager/fileImage/EditAction.js +2 -2
- package/plugins/fileManager/fileImage/EditAction.js.map +1 -1
- package/ui/elements/form/FileManagerElement/FileManagerElementRenderer.js +9 -11
- package/ui/elements/form/FileManagerElement/FileManagerElementRenderer.js.map +1 -1
- package/ui/elements/form/FileManagerElement/styled.d.ts +3 -3
|
@@ -7,144 +7,119 @@ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWild
|
|
|
7
7
|
Object.defineProperty(exports, "__esModule", {
|
|
8
8
|
value: true
|
|
9
9
|
});
|
|
10
|
-
exports.FileManager = void 0;
|
|
10
|
+
exports.FileManagerRenderer = exports.FileManager = void 0;
|
|
11
11
|
|
|
12
12
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
13
13
|
|
|
14
|
-
var
|
|
15
|
-
|
|
16
|
-
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
17
|
-
|
|
18
|
-
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
19
|
-
|
|
20
|
-
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
21
|
-
|
|
22
|
-
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
23
|
-
|
|
24
|
-
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
25
|
-
|
|
26
|
-
var _createSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/createSuper"));
|
|
14
|
+
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
27
15
|
|
|
28
|
-
var
|
|
16
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
29
17
|
|
|
30
18
|
var _react = _interopRequireWildcard(require("react"));
|
|
31
19
|
|
|
32
20
|
var _reactDom = _interopRequireDefault(require("react-dom"));
|
|
33
21
|
|
|
34
|
-
var
|
|
22
|
+
var _reactComposition = require("@webiny/react-composition");
|
|
35
23
|
|
|
36
|
-
var
|
|
24
|
+
var _FileManagerView = _interopRequireDefault(require("./FileManager/FileManagerView"));
|
|
37
25
|
|
|
38
26
|
var _FileManagerContext = require("./FileManager/FileManagerContext");
|
|
39
27
|
|
|
40
|
-
var _excluded = ["
|
|
28
|
+
var _excluded = ["id", "src"],
|
|
29
|
+
_excluded2 = ["onChange", "images", "accept"],
|
|
30
|
+
_excluded3 = ["children", "render", "onChange"];
|
|
41
31
|
|
|
42
|
-
|
|
43
|
-
|
|
32
|
+
function getPortalTarget() {
|
|
33
|
+
var target = window.document.getElementById("file-manager-container");
|
|
44
34
|
|
|
45
|
-
|
|
35
|
+
if (!target) {
|
|
36
|
+
target = document.createElement("div");
|
|
37
|
+
target.setAttribute("id", "file-manager-container");
|
|
38
|
+
document.body && document.body.appendChild(target);
|
|
39
|
+
}
|
|
46
40
|
|
|
47
|
-
|
|
48
|
-
|
|
41
|
+
return target;
|
|
42
|
+
} // This jewel was taken from https://davidgomes.com/pick-omit-over-union-types-in-typescript/. Massive thanks, David!
|
|
49
43
|
|
|
50
|
-
(0, _classCallCheck2.default)(this, FileManagerPortal);
|
|
51
|
-
_this = _super.call(this, props);
|
|
52
|
-
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "container", null);
|
|
53
44
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
45
|
+
/**
|
|
46
|
+
* Convert a FileItem object to a FileManagerFileItem, which is then passed to `onChange` callback.
|
|
47
|
+
*/
|
|
48
|
+
var formatFileItem = function formatFileItem(_ref) {
|
|
49
|
+
var id = _ref.id,
|
|
50
|
+
src = _ref.src,
|
|
51
|
+
rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
|
|
52
|
+
var props = rest;
|
|
53
|
+
return {
|
|
54
|
+
id: id,
|
|
55
|
+
src: src,
|
|
56
|
+
meta: Object.keys(rest).map(function (key) {
|
|
57
|
+
return {
|
|
58
|
+
key: key,
|
|
59
|
+
value: props[key]
|
|
60
|
+
};
|
|
61
|
+
})
|
|
62
|
+
};
|
|
63
|
+
};
|
|
64
|
+
/**
|
|
65
|
+
* If `accept` prop is not passed, and `images` prop is set, use these default mime types.
|
|
66
|
+
* Defaults can be overridden using the `createComponentPlugin` and `FileManagerRenderer` component.
|
|
67
|
+
*/
|
|
57
68
|
|
|
58
|
-
_this.container = window.document.getElementById("file-manager-container");
|
|
59
69
|
|
|
60
|
-
|
|
61
|
-
_this.container = document.createElement("div");
|
|
70
|
+
var imagesAccept = ["image/jpg", "image/jpeg", "image/tiff", "image/gif", "image/png", "image/webp", "image/bmp", "image/svg+xml"];
|
|
62
71
|
|
|
63
|
-
|
|
72
|
+
var DefaultFileManagerRenderer = function DefaultFileManagerRenderer(props) {
|
|
73
|
+
var onChange = props.onChange,
|
|
74
|
+
images = props.images,
|
|
75
|
+
accept = props.accept,
|
|
76
|
+
forwardProps = (0, _objectWithoutProperties2.default)(props, _excluded2);
|
|
64
77
|
|
|
65
|
-
|
|
66
|
-
|
|
78
|
+
var handleFileOnChange = function handleFileOnChange(value) {
|
|
79
|
+
if (!onChange || !value || Array.isArray(value) && !value.length) {
|
|
80
|
+
return;
|
|
67
81
|
}
|
|
68
82
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
value: function render() {
|
|
75
|
-
var _this$props = this.props,
|
|
76
|
-
onChange = _this$props.onChange,
|
|
77
|
-
onClose = _this$props.onClose,
|
|
78
|
-
accept = _this$props.accept,
|
|
79
|
-
onChangePick = _this$props.onChangePick,
|
|
80
|
-
multiple = _this$props.multiple,
|
|
81
|
-
images = _this$props.images,
|
|
82
|
-
maxSize = _this$props.maxSize,
|
|
83
|
-
multipleMaxCount = _this$props.multipleMaxCount,
|
|
84
|
-
multipleMaxSize = _this$props.multipleMaxSize,
|
|
85
|
-
onUploadCompletion = _this$props.onUploadCompletion,
|
|
86
|
-
tags = _this$props.tags,
|
|
87
|
-
scope = _this$props.scope,
|
|
88
|
-
own = _this$props.own;
|
|
89
|
-
var container = this.container;
|
|
90
|
-
|
|
91
|
-
var handleFileOnChange = function handleFileOnChange(files) {
|
|
92
|
-
if (!files || files.length === 0) {
|
|
93
|
-
return;
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
var fields = Array.isArray(onChangePick) ? onChangePick : ["id", "name", "key", "src", "size", "type"];
|
|
97
|
-
|
|
98
|
-
if (Array.isArray(files) === true) {
|
|
99
|
-
var items = files.map(function (file) {
|
|
100
|
-
return (0, _pick.default)(file, fields);
|
|
101
|
-
});
|
|
102
|
-
onChange && onChange(items);
|
|
103
|
-
return;
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
var file = (0, _pick.default)(files, fields);
|
|
107
|
-
onChange && onChange(file);
|
|
108
|
-
};
|
|
109
|
-
|
|
110
|
-
var props = {
|
|
111
|
-
onChange: typeof onChange === "function" ? handleFileOnChange : undefined,
|
|
112
|
-
onClose: onClose,
|
|
113
|
-
accept: accept,
|
|
114
|
-
multiple: multiple,
|
|
115
|
-
maxSize: maxSize,
|
|
116
|
-
multipleMaxCount: multipleMaxCount,
|
|
117
|
-
multipleMaxSize: multipleMaxSize,
|
|
118
|
-
onUploadCompletion: onUploadCompletion,
|
|
119
|
-
tags: tags,
|
|
120
|
-
scope: scope,
|
|
121
|
-
own: own
|
|
122
|
-
};
|
|
123
|
-
|
|
124
|
-
if (images) {
|
|
125
|
-
props.accept = ["image/jpg", "image/jpeg", "image/tiff", "image/gif", "image/png", "image/webp", "image/bmp", "image/svg+xml"];
|
|
126
|
-
} // Let's pass "permanent" / "persistent" / "temporary" flags as "mode" prop instead.
|
|
83
|
+
if (Array.isArray(value)) {
|
|
84
|
+
var finalValue = value.map(formatFileItem);
|
|
85
|
+
onChange(finalValue);
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
127
88
|
|
|
89
|
+
onChange(formatFileItem(value));
|
|
90
|
+
};
|
|
91
|
+
|
|
92
|
+
var viewProps = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, forwardProps), {}, {
|
|
93
|
+
onChange: typeof onChange === "function" ? handleFileOnChange : undefined,
|
|
94
|
+
accept: images ? accept || imagesAccept : accept || []
|
|
95
|
+
});
|
|
96
|
+
return /*#__PURE__*/_react.default.createElement(_FileManagerContext.FileManagerProvider, {
|
|
97
|
+
accept: viewProps.accept,
|
|
98
|
+
tags: viewProps.tags || [],
|
|
99
|
+
own: viewProps.own,
|
|
100
|
+
scope: viewProps.scope
|
|
101
|
+
}, /*#__PURE__*/_react.default.createElement(_FileManagerView.default, viewProps));
|
|
102
|
+
};
|
|
128
103
|
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
}]);
|
|
132
|
-
return FileManagerPortal;
|
|
133
|
-
}(_react.default.Component);
|
|
104
|
+
var FileManagerRenderer = (0, _reactComposition.makeComposable)("FileManagerRenderer", DefaultFileManagerRenderer);
|
|
105
|
+
exports.FileManagerRenderer = FileManagerRenderer;
|
|
134
106
|
|
|
135
|
-
var FileManager = function FileManager(
|
|
136
|
-
var children =
|
|
137
|
-
|
|
107
|
+
var FileManager = function FileManager(_ref2) {
|
|
108
|
+
var children = _ref2.children,
|
|
109
|
+
render = _ref2.render,
|
|
110
|
+
onChange = _ref2.onChange,
|
|
111
|
+
rest = (0, _objectWithoutProperties2.default)(_ref2, _excluded3);
|
|
112
|
+
var containerRef = (0, _react.useRef)(getPortalTarget());
|
|
138
113
|
|
|
139
114
|
var _useState = (0, _react.useState)(false),
|
|
140
115
|
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
141
116
|
show = _useState2[0],
|
|
142
117
|
setShow = _useState2[1];
|
|
143
118
|
|
|
144
|
-
var onChangeRef = (0, _react.useRef)(
|
|
119
|
+
var onChangeRef = (0, _react.useRef)(onChange);
|
|
145
120
|
(0, _react.useEffect)(function () {
|
|
146
|
-
onChangeRef.current =
|
|
147
|
-
}, [
|
|
121
|
+
onChangeRef.current = onChange;
|
|
122
|
+
}, [onChange]);
|
|
148
123
|
var showFileManager = (0, _react.useCallback)(function (onChange) {
|
|
149
124
|
if (typeof onChange === "function") {
|
|
150
125
|
onChangeRef.current = onChange;
|
|
@@ -152,15 +127,18 @@ var FileManager = function FileManager(_ref) {
|
|
|
152
127
|
|
|
153
128
|
setShow(true);
|
|
154
129
|
}, []);
|
|
155
|
-
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, show && /*#__PURE__*/_react.default.createElement(
|
|
130
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, show && /*#__PURE__*/_reactDom.default.createPortal( /*#__PURE__*/_react.default.createElement(FileManagerRenderer, Object.assign({
|
|
156
131
|
onClose: function onClose() {
|
|
157
132
|
return setShow(false);
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
133
|
+
},
|
|
134
|
+
onChange:
|
|
135
|
+
/* TODO: figure out how to create a conditional type based on the value of `rest.multiple` */
|
|
136
|
+
onChangeRef.current
|
|
137
|
+
}, rest)), containerRef.current), children ? children({
|
|
138
|
+
showFileManager: showFileManager
|
|
139
|
+
}) : render ? render({
|
|
162
140
|
showFileManager: showFileManager
|
|
163
|
-
}));
|
|
141
|
+
}) : null);
|
|
164
142
|
};
|
|
165
143
|
|
|
166
144
|
exports.FileManager = FileManager;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["FileManagerPortal","props","window","container","document","getElementById","createElement","setAttribute","body","appendChild","onChange","onClose","accept","onChangePick","multiple","images","maxSize","multipleMaxCount","multipleMaxSize","onUploadCompletion","tags","scope","own","handleFileOnChange","files","length","fields","Array","isArray","items","map","file","pick","undefined","ReactDOM","createPortal","React","Component","FileManager","children","rest","useState","show","setShow","onChangeRef","useRef","useEffect","current","showFileManager","useCallback"],"sources":["FileManager.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useRef, useState } from \"react\";\nimport ReactDOM from \"react-dom\";\nimport FileManagerView, { FileManagerViewProps } from \"./FileManager/FileManagerView\";\nimport pick from \"lodash/pick\";\nimport { FileManagerProvider } from \"./FileManager/FileManagerContext\";\nimport { FileItem } from \"./FileManager/types\";\n\nexport interface ShowFileManagerCallable {\n (onChange?: (file?: FileItem | FileItem[]) => void): void;\n}\nexport interface FileManagerPropsChildren {\n showFileManager: ShowFileManagerCallable;\n}\n\nexport interface FileManagerProps {\n onChange?: (files: FileItem[] | FileItem) => void;\n onChangePick?: string[];\n images?: boolean;\n multiple?: boolean;\n accept?: Array<string>;\n tags?: Array<string>;\n scope?: string;\n own?: boolean;\n children: (params: FileManagerPropsChildren) => React.ReactNode;\n maxSize?: number | string;\n multipleMaxCount?: number;\n multipleMaxSize?: number | string;\n onClose?: Function;\n onUploadCompletion?: (files: FileItem[]) => void;\n}\n\nexport type FileManagerPortalProps = Omit<FileManagerProps, \"children\">;\n\nclass FileManagerPortal extends React.Component<FileManagerPortalProps> {\n public container: HTMLElement | null = null;\n constructor(props: FileManagerPortalProps) {\n super(props);\n\n if (!window) {\n return;\n }\n\n this.container = window.document.getElementById(\"file-manager-container\");\n\n if (!this.container) {\n this.container = document.createElement(\"div\");\n this.container.setAttribute(\"id\", \"file-manager-container\");\n const container = this.container;\n document.body && document.body.appendChild(container);\n }\n }\n\n public override render() {\n const {\n onChange,\n onClose,\n accept,\n onChangePick,\n multiple,\n images,\n maxSize,\n multipleMaxCount,\n multipleMaxSize,\n onUploadCompletion,\n tags,\n scope,\n own\n } = this.props;\n\n const container = this.container as HTMLElement;\n\n const handleFileOnChange = (files?: FileItem[] | FileItem) => {\n if (!files || files.length === 0) {\n return;\n }\n const fields = Array.isArray(onChangePick)\n ? onChangePick\n : [\"id\", \"name\", \"key\", \"src\", \"size\", \"type\"];\n\n if (Array.isArray(files) === true) {\n const items = (files as FileItem[]).map(file => pick(file, fields));\n onChange && onChange(items as FileItem[]);\n return;\n }\n const file = pick(files as FileItem, fields);\n\n onChange && onChange(file as FileItem);\n };\n\n const props: FileManagerViewProps = {\n onChange: typeof onChange === \"function\" ? handleFileOnChange : undefined,\n onClose,\n accept: accept as string[],\n multiple: multiple as boolean,\n maxSize: maxSize as string,\n multipleMaxCount: multipleMaxCount as number,\n multipleMaxSize: multipleMaxSize as number,\n onUploadCompletion,\n tags: tags,\n scope: scope,\n own: own\n };\n\n if (images) {\n props.accept = [\n \"image/jpg\",\n \"image/jpeg\",\n \"image/tiff\",\n \"image/gif\",\n \"image/png\",\n \"image/webp\",\n \"image/bmp\",\n \"image/svg+xml\"\n ];\n }\n\n // Let's pass \"permanent\" / \"persistent\" / \"temporary\" flags as \"mode\" prop instead.\n return ReactDOM.createPortal(\n <FileManagerProvider {...props}>\n <FileManagerView {...props} />\n </FileManagerProvider>,\n container\n );\n }\n}\n\nexport const FileManager: React.FC<FileManagerProps> = ({ children, ...rest }) => {\n const [show, setShow] = useState(false);\n const onChangeRef = useRef(rest.onChange);\n\n useEffect(() => {\n onChangeRef.current = rest.onChange;\n }, [rest.onChange]);\n\n const showFileManager = useCallback(onChange => {\n if (typeof onChange === \"function\") {\n onChangeRef.current = onChange;\n }\n setShow(true);\n }, []);\n\n return (\n <>\n {show && (\n <FileManagerPortal\n onClose={() => setShow(false)}\n {...rest}\n onChange={onChangeRef.current}\n />\n )}\n {children({ showFileManager })}\n </>\n );\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["getPortalTarget","target","window","document","getElementById","createElement","setAttribute","body","appendChild","formatFileItem","id","src","rest","props","meta","Object","keys","map","key","value","imagesAccept","DefaultFileManagerRenderer","onChange","images","accept","forwardProps","handleFileOnChange","Array","isArray","length","finalValue","viewProps","undefined","tags","own","scope","FileManagerRenderer","makeComposable","FileManager","children","render","containerRef","useRef","useState","show","setShow","onChangeRef","useEffect","current","showFileManager","useCallback","ReactDOM","createPortal"],"sources":["FileManager.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useRef, useState } from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { makeComposable } from \"@webiny/react-composition\";\nimport FileManagerView, { FileManagerViewProps } from \"./FileManager/FileManagerView\";\nimport { FileItem } from \"./FileManager/types\";\nimport { FileManagerProvider } from \"./FileManager/FileManagerContext\";\n\ninterface OnChange<T> {\n (value: T): void;\n}\n\n/**\n * Represents a file object managed by the File Manager.\n */\nexport interface FileManagerFileItem {\n id: string;\n src: string;\n meta?: Array<FileManagerFileItemMetaItem>;\n}\n\n/**\n * With this we allow developers to add any value to file's meta via component composition, thus the `value: any`.\n */\nexport interface FileManagerFileItemMetaItem {\n key: string;\n value: any;\n}\n\nexport type DeprecatedFileManagerRenderPropParams = {\n showFileManager: (onChange?: OnChange<FileManagerFileItem | FileManagerFileItem[]>) => void;\n};\n\nexport type FileManagerRenderPropParams<TValue> = {\n showFileManager: (onChange?: OnChange<TValue>) => void;\n};\n\ninterface SingleFileRenderProp {\n (params: FileManagerRenderPropParams<FileManagerFileItem>): React.ReactNode;\n}\n\ninterface MultiFileRenderProp {\n (params: FileManagerRenderPropParams<FileManagerFileItem[]>): React.ReactNode;\n}\n\nexport type MultipleProps =\n | {\n multiple?: never;\n multipleMaxCount?: never;\n multipleMaxSize?: never;\n onChange?: OnChange<FileManagerFileItem>;\n render?: SingleFileRenderProp;\n }\n | {\n multiple: true;\n multipleMaxCount?: number;\n multipleMaxSize?: number | string;\n onChange?: OnChange<FileManagerFileItem[]>;\n render?: MultiFileRenderProp;\n };\n\nexport type FileManagerProps = {\n accept?: Array<string>;\n images?: boolean;\n maxSize?: number | string;\n /**\n * @deprecated This prop is no longer used. The file structure was reduced to a bare minimum so picking is no longer necessary.\n */\n onChangePick?: string[];\n onClose?: Function;\n onUploadCompletion?: (files: FileManagerFileItem[]) => void;\n own?: boolean;\n scope?: string;\n tags?: Array<string>;\n /**\n * @deprecated This prop is no longer used. Use the `render` prop to get better TS autocomplete.\n */\n children?: (params: DeprecatedFileManagerRenderPropParams) => React.ReactNode;\n} & MultipleProps;\n\nfunction getPortalTarget() {\n let target = window.document.getElementById(\"file-manager-container\");\n if (!target) {\n target = document.createElement(\"div\");\n target.setAttribute(\"id\", \"file-manager-container\");\n document.body && document.body.appendChild(target);\n }\n return target;\n}\n\n// This jewel was taken from https://davidgomes.com/pick-omit-over-union-types-in-typescript/. Massive thanks, David!\ntype DistributiveOmit<T, K extends keyof T> = T extends unknown ? Omit<T, K> : never;\n\nexport type FileManagerRendererProps = DistributiveOmit<FileManagerProps, \"render\" | \"children\">;\n\n/**\n * Convert a FileItem object to a FileManagerFileItem, which is then passed to `onChange` callback.\n */\nconst formatFileItem = ({ id, src, ...rest }: FileItem): FileManagerFileItem => {\n const props: { [key: string]: any } = rest;\n\n return {\n id,\n src,\n meta: Object.keys(rest).map(key => ({ key, value: props[key] }))\n };\n};\n\n/**\n * If `accept` prop is not passed, and `images` prop is set, use these default mime types.\n * Defaults can be overridden using the `createComponentPlugin` and `FileManagerRenderer` component.\n */\nconst imagesAccept = [\n \"image/jpg\",\n \"image/jpeg\",\n \"image/tiff\",\n \"image/gif\",\n \"image/png\",\n \"image/webp\",\n \"image/bmp\",\n \"image/svg+xml\"\n];\n\nconst DefaultFileManagerRenderer: React.FC<FileManagerRendererProps> = props => {\n const { onChange, images, accept, ...forwardProps } = props;\n\n const handleFileOnChange = (value?: FileItem[] | FileItem) => {\n if (!onChange || !value || (Array.isArray(value) && !value.length)) {\n return;\n }\n\n if (Array.isArray(value)) {\n const finalValue: FileManagerFileItem[] = value.map(formatFileItem);\n (onChange as OnChange<FileManagerFileItem[]>)(finalValue);\n return;\n }\n\n (onChange as OnChange<FileManagerFileItem>)(formatFileItem(value));\n };\n\n const viewProps: FileManagerViewProps = {\n ...forwardProps,\n onChange: typeof onChange === \"function\" ? handleFileOnChange : undefined,\n accept: images ? accept || imagesAccept : accept || []\n };\n\n return (\n <FileManagerProvider\n accept={viewProps.accept}\n tags={viewProps.tags || []}\n own={viewProps.own}\n scope={viewProps.scope}\n >\n <FileManagerView {...viewProps} />\n </FileManagerProvider>\n );\n};\n\nexport const FileManagerRenderer = makeComposable(\n \"FileManagerRenderer\",\n DefaultFileManagerRenderer\n);\n\nexport const FileManager: React.FC<FileManagerProps> = ({\n children,\n render,\n onChange,\n ...rest\n}) => {\n const containerRef = useRef<HTMLElement>(getPortalTarget());\n const [show, setShow] = useState(false);\n const onChangeRef = useRef(onChange);\n\n useEffect(() => {\n onChangeRef.current = onChange;\n }, [onChange]);\n\n const showFileManager = useCallback(onChange => {\n if (typeof onChange === \"function\") {\n onChangeRef.current = onChange;\n }\n setShow(true);\n }, []);\n\n return (\n <>\n {show &&\n ReactDOM.createPortal(\n <FileManagerRenderer\n onClose={() => setShow(false)}\n onChange={\n /* TODO: figure out how to create a conditional type based on the value of `rest.multiple` */\n onChangeRef.current as any\n }\n {...rest}\n />,\n containerRef.current\n )}\n {children ? children({ showFileManager }) : render ? render({ showFileManager }) : null}\n </>\n );\n};\n"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/// <reference types="web" />
|
|
2
2
|
import * as React from "react";
|
|
3
3
|
import { ExitHandler } from "react-transition-group/Transition";
|
|
4
|
-
interface OverlayLayoutProps {
|
|
4
|
+
export interface OverlayLayoutProps {
|
|
5
5
|
barMiddle?: React.ReactNode;
|
|
6
6
|
barLeft?: React.ReactNode;
|
|
7
7
|
barRight?: React.ReactNode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["OverlayLayoutWrapper","styled","position","width","height","backgroundColor","zIndex","paddingTop","top","left","noScroll","css","overflow","defaultStyle","transform","opacity","transitionProperty","transitionTimingFunction","transitionDuration","willChange","transitionStyles","entering","entered","OverlayLayout","props","isVisible","document","body","classList","add","setState","OverlayView","openedViews","remove","onExited","barLeft","barMiddle","barRight","children","style","rest","state","hideComponent","React","Component","noop"],"sources":["OverlayLayout.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { Transition } from \"react-transition-group\";\nimport styled from \"@emotion/styled\";\nimport { css } from \"emotion\";\nimport { TopAppBarSecondary, TopAppBarSection } from \"@webiny/ui/TopAppBar\";\nimport { IconButton } from \"@webiny/ui/Button\";\nimport noop from \"lodash/noop\";\n\nimport { ReactComponent as CloseIcon } from \"./icons/close.svg\";\nimport { OverlayView } from \"~/ui/views/OverlayView\";\nimport { ExitHandler } from \"react-transition-group/Transition\";\n\nconst OverlayLayoutWrapper = styled(\"div\")({\n position: \"fixed\",\n width: \"100%\",\n height: \"100vh\",\n backgroundColor: \"var(--mdc-theme-background)\",\n /**\n * Has to be higher than 5 so it's above advanced settings dialog,\n * and below 20, so the image editor & Dialogs can be displayed above.\n */\n zIndex: 18,\n paddingTop: 65,\n top: 0,\n left: 0\n});\n\nconst noScroll = css({\n overflow: \"hidden\",\n height: \"100vh\"\n});\n\nconst defaultStyle = {\n transform: \"translateY(75vh)\",\n opacity: 0,\n transitionProperty: \"transform, opacity\",\n transitionTimingFunction: \"cubic-bezier(0, 0, .2, 1)\",\n transitionDuration: \"225ms\",\n willChange: \"opacity, transform\"\n};\n\nconst transitionStyles: Record<string, any> = {\n entering: {\n transform: \"translateY(75vh)\",\n opacity: 0\n },\n entered: {\n transform: \"translateY(0px)\",\n opacity: 1\n }\n};\n\
|
|
1
|
+
{"version":3,"names":["OverlayLayoutWrapper","styled","position","width","height","backgroundColor","zIndex","paddingTop","top","left","noScroll","css","overflow","defaultStyle","transform","opacity","transitionProperty","transitionTimingFunction","transitionDuration","willChange","transitionStyles","entering","entered","OverlayLayout","props","isVisible","document","body","classList","add","setState","OverlayView","openedViews","remove","onExited","barLeft","barMiddle","barRight","children","style","rest","state","hideComponent","React","Component","noop"],"sources":["OverlayLayout.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { Transition } from \"react-transition-group\";\nimport styled from \"@emotion/styled\";\nimport { css } from \"emotion\";\nimport { TopAppBarSecondary, TopAppBarSection } from \"@webiny/ui/TopAppBar\";\nimport { IconButton } from \"@webiny/ui/Button\";\nimport noop from \"lodash/noop\";\n\nimport { ReactComponent as CloseIcon } from \"./icons/close.svg\";\nimport { OverlayView } from \"~/ui/views/OverlayView\";\nimport { ExitHandler } from \"react-transition-group/Transition\";\n\nconst OverlayLayoutWrapper = styled(\"div\")({\n position: \"fixed\",\n width: \"100%\",\n height: \"100vh\",\n backgroundColor: \"var(--mdc-theme-background)\",\n /**\n * Has to be higher than 5 so it's above advanced settings dialog,\n * and below 20, so the image editor & Dialogs can be displayed above.\n */\n zIndex: 18,\n paddingTop: 65,\n top: 0,\n left: 0\n});\n\nconst noScroll = css({\n overflow: \"hidden\",\n height: \"100vh\"\n});\n\nconst defaultStyle = {\n transform: \"translateY(75vh)\",\n opacity: 0,\n transitionProperty: \"transform, opacity\",\n transitionTimingFunction: \"cubic-bezier(0, 0, .2, 1)\",\n transitionDuration: \"225ms\",\n willChange: \"opacity, transform\"\n};\n\nconst transitionStyles: Record<string, any> = {\n entering: {\n transform: \"translateY(75vh)\",\n opacity: 0\n },\n entered: {\n transform: \"translateY(0px)\",\n opacity: 1\n }\n};\n\nexport interface OverlayLayoutProps {\n barMiddle?: React.ReactNode;\n barLeft?: React.ReactNode;\n barRight?: React.ReactNode;\n children: React.ReactNode;\n onExited?: ExitHandler<HTMLElement>;\n style?: React.CSSProperties;\n}\n\ninterface OverlayLayoutState {\n isVisible: boolean;\n}\n\nexport class OverlayLayout extends React.Component<OverlayLayoutProps, OverlayLayoutState> {\n constructor(props: OverlayLayoutProps) {\n super(props);\n document.body.classList.add(noScroll);\n }\n\n static defaultProps: Partial<OverlayLayoutProps> = {\n onExited: noop\n };\n\n public override state: OverlayLayoutState = {\n isVisible: true\n };\n\n public hideComponent(): void {\n this.setState({ isVisible: false });\n if (OverlayView.openedViews === 0) {\n document.body.classList.remove(noScroll);\n }\n }\n\n public override componentWillUnmount(): void {\n if (OverlayView.openedViews === 0) {\n document.body.classList.remove(noScroll);\n }\n }\n\n public override render() {\n const { onExited, barLeft, barMiddle, barRight, children, style, ...rest } = this.props;\n\n return (\n <Transition in={this.state.isVisible} timeout={100} appear onExited={onExited}>\n {state => (\n <OverlayLayoutWrapper\n {...rest}\n style={{ ...defaultStyle, ...style, ...transitionStyles[state] }}\n >\n <TopAppBarSecondary fixed style={{ top: 0 }}>\n <TopAppBarSection style={{ width: \"33%\" }} alignStart>\n {barLeft}\n </TopAppBarSection>\n <TopAppBarSection style={{ width: \"33%\" }}>\n {barMiddle}\n </TopAppBarSection>\n <TopAppBarSection style={{ width: \"33%\" }} alignEnd>\n {barRight}\n <IconButton\n ripple={false}\n onClick={() => this.hideComponent()}\n icon={<CloseIcon style={{ width: 24, height: 24 }} />}\n />\n </TopAppBarSection>\n </TopAppBarSecondary>\n\n {children}\n </OverlayLayoutWrapper>\n )}\n </Transition>\n );\n }\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export
|
|
1
|
+
export * from "./OverlayLayout";
|
|
@@ -3,11 +3,16 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
Object.defineProperty(exports, "OverlayLayout", {
|
|
7
|
-
enumerable: true,
|
|
8
|
-
get: function get() {
|
|
9
|
-
return _OverlayLayout.OverlayLayout;
|
|
10
|
-
}
|
|
11
|
-
});
|
|
12
6
|
|
|
13
|
-
var _OverlayLayout = require("./OverlayLayout");
|
|
7
|
+
var _OverlayLayout = require("./OverlayLayout");
|
|
8
|
+
|
|
9
|
+
Object.keys(_OverlayLayout).forEach(function (key) {
|
|
10
|
+
if (key === "default" || key === "__esModule") return;
|
|
11
|
+
if (key in exports && exports[key] === _OverlayLayout[key]) return;
|
|
12
|
+
Object.defineProperty(exports, key, {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function get() {
|
|
15
|
+
return _OverlayLayout[key];
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export
|
|
1
|
+
{"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from \"./OverlayLayout\";\n"],"mappings":";;;;;;AAAA;;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA"}
|
|
@@ -13,10 +13,10 @@ var _react = _interopRequireDefault(require("react"));
|
|
|
13
13
|
|
|
14
14
|
var _RichTextEditor = require("@webiny/ui/RichTextEditor");
|
|
15
15
|
|
|
16
|
-
var
|
|
16
|
+
var _ = require("./..");
|
|
17
17
|
|
|
18
18
|
var RichTextEditor = function RichTextEditor(props) {
|
|
19
|
-
return /*#__PURE__*/_react.default.createElement(
|
|
19
|
+
return /*#__PURE__*/_react.default.createElement(_.FileManager, null, function (_ref) {
|
|
20
20
|
var showFileManager = _ref.showFileManager;
|
|
21
21
|
return /*#__PURE__*/_react.default.createElement(_RichTextEditor.RichTextEditor, Object.assign({}, props, {
|
|
22
22
|
placeholder: props.placeholder || "Click here to type",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["RichTextEditor","props","showFileManager","placeholder","context"],"sources":["RichTextEditor.tsx"],"sourcesContent":["import React from \"react\";\nimport { RichTextEditor as UiRichTextEditor, RichTextEditorProps } from \"@webiny/ui/RichTextEditor\";\nimport { FileManager } from \"
|
|
1
|
+
{"version":3,"names":["RichTextEditor","props","showFileManager","placeholder","context"],"sources":["RichTextEditor.tsx"],"sourcesContent":["import React from \"react\";\nimport { RichTextEditor as UiRichTextEditor, RichTextEditorProps } from \"@webiny/ui/RichTextEditor\";\nimport { FileManager } from \"~/components\";\n\nexport const RichTextEditor: React.FC<RichTextEditorProps> = props => {\n return (\n <FileManager>\n {({ showFileManager }) => (\n <UiRichTextEditor\n {...props}\n placeholder={props.placeholder || \"Click here to type\"}\n context={{ ...props.context, showFileManager }}\n />\n )}\n </FileManager>\n );\n};\n"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AACA;;AAEO,IAAMA,cAA6C,GAAG,SAAhDA,cAAgD,CAAAC,KAAK,EAAI;EAClE,oBACI,6BAAC,aAAD,QACK;IAAA,IAAGC,eAAH,QAAGA,eAAH;IAAA,oBACG,6BAAC,8BAAD,oBACQD,KADR;MAEI,WAAW,EAAEA,KAAK,CAACE,WAAN,IAAqB,oBAFtC;MAGI,OAAO,8DAAOF,KAAK,CAACG,OAAb;QAAsBF,eAAe,EAAfA;MAAtB;IAHX,GADH;EAAA,CADL,CADJ;AAWH,CAZM"}
|
|
@@ -1,19 +1,55 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
|
+
import { FileManagerFileItem } from "./FileManager";
|
|
2
3
|
import { FormComponentProps } from "@webiny/ui/types";
|
|
3
4
|
export interface SingleImageUploadProps extends FormComponentProps {
|
|
5
|
+
/**
|
|
6
|
+
* Accept types
|
|
7
|
+
*/
|
|
4
8
|
accept?: string[];
|
|
9
|
+
/**
|
|
10
|
+
* Component label.
|
|
11
|
+
*/
|
|
5
12
|
label?: string;
|
|
13
|
+
/**
|
|
14
|
+
* Is component disabled?
|
|
15
|
+
*/
|
|
6
16
|
disabled?: boolean;
|
|
17
|
+
/**
|
|
18
|
+
* Description beneath the image.
|
|
19
|
+
*/
|
|
7
20
|
description?: React.ReactNode;
|
|
21
|
+
/**
|
|
22
|
+
* A className for the root element.
|
|
23
|
+
*/
|
|
8
24
|
className?: string;
|
|
25
|
+
/**
|
|
26
|
+
* Define file's max allowed size (default is "10mb").
|
|
27
|
+
* Uses "bytes" (https://www.npmjs.com/package/bytes) library to convert string notation to actual number.
|
|
28
|
+
*/
|
|
9
29
|
maxSize?: number | string;
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
30
|
+
/**
|
|
31
|
+
* onChange callback when a file is set or unset.
|
|
32
|
+
* It is marked as `optional` because this component is often used in conjunction with <Bind>, which injects the
|
|
33
|
+
* `onChange` into its child element. In that case, that prop is not passed by the developer.
|
|
34
|
+
*/
|
|
35
|
+
onChange?: (value: FileManagerFileItem | null) => void;
|
|
36
|
+
/**
|
|
37
|
+
* Optional custom props, passed to the preview image.
|
|
38
|
+
*/
|
|
13
39
|
imagePreviewProps?: any;
|
|
40
|
+
/**
|
|
41
|
+
* By default, file meta is not included in the data passed to `onChange`. If you need it, set this flag to true.
|
|
42
|
+
*/
|
|
43
|
+
includeFileMeta?: boolean;
|
|
44
|
+
/**
|
|
45
|
+
* Is the wrapper round?
|
|
46
|
+
*/
|
|
14
47
|
round?: boolean;
|
|
48
|
+
/**
|
|
49
|
+
* Define the properties that are returned on file(s) selection.
|
|
50
|
+
* @deprecated Pick the desired file attributes in the `onChange` callback, or `beforeChange` on the `<Bind>` element.
|
|
51
|
+
*/
|
|
15
52
|
onChangePick?: string[];
|
|
16
53
|
}
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
}
|
|
54
|
+
declare const SingleImageUpload: React.FC<SingleImageUploadProps>;
|
|
55
|
+
export default SingleImageUpload;
|
|
@@ -1,22 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
4
|
-
|
|
5
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
6
4
|
|
|
5
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
6
|
+
|
|
7
7
|
Object.defineProperty(exports, "__esModule", {
|
|
8
8
|
value: true
|
|
9
9
|
});
|
|
10
10
|
exports.default = void 0;
|
|
11
11
|
|
|
12
|
-
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
13
|
-
|
|
14
|
-
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
15
|
-
|
|
16
|
-
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
17
|
-
|
|
18
|
-
var _createSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/createSuper"));
|
|
19
|
-
|
|
20
12
|
var React = _interopRequireWildcard(require("react"));
|
|
21
13
|
|
|
22
14
|
var _Image = require("@webiny/app/components/Image");
|
|
@@ -49,71 +41,74 @@ var ImageUploadWrapper = /*#__PURE__*/(0, _styled.default)("div", {
|
|
|
49
41
|
}
|
|
50
42
|
});
|
|
51
43
|
|
|
52
|
-
var SingleImageUpload =
|
|
53
|
-
|
|
44
|
+
var SingleImageUpload = function SingleImageUpload(props) {
|
|
45
|
+
var className = props.className,
|
|
46
|
+
value = props.value,
|
|
47
|
+
validation = props.validation,
|
|
48
|
+
label = props.label,
|
|
49
|
+
description = props.description,
|
|
50
|
+
accept = props.accept,
|
|
51
|
+
_props$includeFileMet = props.includeFileMeta,
|
|
52
|
+
includeFileMeta = _props$includeFileMet === void 0 ? false : _props$includeFileMet,
|
|
53
|
+
maxSize = props.maxSize,
|
|
54
|
+
imagePreviewProps = props.imagePreviewProps,
|
|
55
|
+
round = props.round;
|
|
56
|
+
|
|
57
|
+
var _ref = validation || {},
|
|
58
|
+
validationIsValid = _ref.isValid,
|
|
59
|
+
validationMessage = _ref.message;
|
|
60
|
+
|
|
61
|
+
var onChange = (0, React.useCallback)(function (value) {
|
|
62
|
+
if (!props.onChange) {
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
54
65
|
|
|
55
|
-
|
|
66
|
+
if (value && !includeFileMeta) {
|
|
67
|
+
props.onChange({
|
|
68
|
+
id: value.id,
|
|
69
|
+
src: value.src
|
|
70
|
+
});
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
56
73
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
74
|
+
if (value && includeFileMeta) {
|
|
75
|
+
props.onChange(value);
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
61
78
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
onChangePick: onChangePick,
|
|
91
|
-
accept: accept,
|
|
92
|
-
images: !accept,
|
|
93
|
-
maxSize: maxSize,
|
|
94
|
-
multipleMaxCount: multipleMaxCount,
|
|
95
|
-
multipleMaxSize: multipleMaxSize
|
|
96
|
-
}, function (_ref2) {
|
|
97
|
-
var showFileManager = _ref2.showFileManager;
|
|
98
|
-
return /*#__PURE__*/React.createElement(Ui.Image, {
|
|
99
|
-
renderImagePreview: function renderImagePreview(renderImageProps) {
|
|
100
|
-
return /*#__PURE__*/React.createElement(_Image.Image, Object.assign({}, renderImageProps, imagePreviewProps));
|
|
101
|
-
},
|
|
102
|
-
style: {
|
|
103
|
-
width: "100%",
|
|
104
|
-
height: "auto"
|
|
105
|
-
},
|
|
106
|
-
value: value,
|
|
107
|
-
uploadImage: showFileManager,
|
|
108
|
-
removeImage: onChange,
|
|
109
|
-
round: round
|
|
110
|
-
});
|
|
111
|
-
}), validationIsValid === false && /*#__PURE__*/React.createElement(_FormElementMessage.FormElementMessage, {
|
|
112
|
-
error: true
|
|
113
|
-
}, validationMessage), validationIsValid !== false && description && /*#__PURE__*/React.createElement(_FormElementMessage.FormElementMessage, null, description));
|
|
79
|
+
props.onChange(null);
|
|
80
|
+
}, [props.onChange]);
|
|
81
|
+
return /*#__PURE__*/React.createElement(ImageUploadWrapper, {
|
|
82
|
+
className: className
|
|
83
|
+
}, label && /*#__PURE__*/React.createElement("div", {
|
|
84
|
+
className: "mdc-floating-label mdc-floating-label--float-above"
|
|
85
|
+
}, label), /*#__PURE__*/React.createElement(_FileManager.FileManager, {
|
|
86
|
+
onChange: onChange,
|
|
87
|
+
accept: accept,
|
|
88
|
+
images: !accept,
|
|
89
|
+
maxSize: maxSize,
|
|
90
|
+
render: function render(_ref2) {
|
|
91
|
+
var showFileManager = _ref2.showFileManager;
|
|
92
|
+
return /*#__PURE__*/React.createElement(Ui.Image, {
|
|
93
|
+
renderImagePreview: function renderImagePreview(renderImageProps) {
|
|
94
|
+
return /*#__PURE__*/React.createElement(_Image.Image, Object.assign({}, renderImageProps, imagePreviewProps));
|
|
95
|
+
},
|
|
96
|
+
style: {
|
|
97
|
+
width: "100%",
|
|
98
|
+
height: "auto"
|
|
99
|
+
},
|
|
100
|
+
value: value,
|
|
101
|
+
uploadImage: showFileManager,
|
|
102
|
+
removeImage: function removeImage() {
|
|
103
|
+
return onChange(null);
|
|
104
|
+
},
|
|
105
|
+
round: round
|
|
106
|
+
});
|
|
114
107
|
}
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
}
|
|
108
|
+
}), validationIsValid === false && /*#__PURE__*/React.createElement(_FormElementMessage.FormElementMessage, {
|
|
109
|
+
error: true
|
|
110
|
+
}, validationMessage), validationIsValid !== false && description && /*#__PURE__*/React.createElement(_FormElementMessage.FormElementMessage, null, description));
|
|
111
|
+
};
|
|
118
112
|
|
|
119
|
-
|
|
113
|
+
var _default = SingleImageUpload;
|
|
114
|
+
exports.default = _default;
|