@dreamcommerce/aurora 2.5.3-1 → 2.5.3-3
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/build/cjs/packages/aurora/src/assets/icon_wrong_file_format.js +22 -0
- package/build/cjs/packages/aurora/src/assets/icon_wrong_file_format.js.map +1 -0
- package/build/cjs/packages/aurora/src/components/controls/hoc/control_image_picker/index.js +26 -0
- package/build/cjs/packages/aurora/src/components/controls/hoc/control_image_picker/index.js.map +1 -0
- package/build/cjs/packages/aurora/src/components/file_picker/components/file_input.js +1 -1
- package/build/cjs/packages/aurora/src/components/file_picker/components/selected_file_preview.js +1 -1
- package/build/cjs/packages/aurora/src/components/file_picker/index.js +7 -5
- package/build/cjs/packages/aurora/src/components/file_picker/index.js.map +1 -1
- package/build/cjs/packages/aurora/src/components/file_picker/use_file_picker.js +2 -1
- package/build/cjs/packages/aurora/src/components/file_picker/use_file_picker.js.map +1 -1
- package/build/cjs/packages/aurora/src/components/image_picker/components/image_input.js +32 -0
- package/build/cjs/packages/aurora/src/components/image_picker/components/image_input.js.map +1 -0
- package/build/cjs/packages/aurora/src/components/image_picker/components/selected_image_preview.js +37 -0
- package/build/cjs/packages/aurora/src/components/image_picker/components/selected_image_preview.js.map +1 -0
- package/build/cjs/packages/aurora/src/components/image_picker/css_classes.js +29 -0
- package/build/cjs/packages/aurora/src/components/image_picker/css_classes.js.map +1 -0
- package/build/cjs/packages/aurora/src/components/image_picker/index.js +104 -0
- package/build/cjs/packages/aurora/src/components/image_picker/index.js.map +1 -0
- package/build/cjs/packages/aurora/src/components/image_picker/utils.js +12 -0
- package/build/cjs/packages/aurora/src/components/image_picker/utils.js.map +1 -0
- package/build/cjs/packages/aurora/src/css/image_picker/main.module.less.js +12 -0
- package/build/cjs/packages/aurora/src/css/image_picker/main.module.less.js.map +1 -0
- package/build/cjs/packages/aurora/src/index.js +51 -47
- package/build/cjs/packages/aurora/src/index.js.map +1 -1
- package/build/esm/packages/aurora/src/assets/icon_wrong_file_format.js +11 -10
- package/build/esm/packages/aurora/src/assets/icon_wrong_file_format.js.map +1 -1
- package/build/esm/packages/aurora/src/components/controls/hoc/control_image_picker/index.js +15 -14
- package/build/esm/packages/aurora/src/components/controls/hoc/control_image_picker/index.js.map +1 -1
- package/build/esm/packages/aurora/src/components/file_picker/components/file_input.js +1 -1
- package/build/esm/packages/aurora/src/components/file_picker/components/selected_file_preview.js +1 -1
- package/build/esm/packages/aurora/src/components/file_picker/index.js +8 -6
- package/build/esm/packages/aurora/src/components/file_picker/index.js.map +1 -1
- package/build/esm/packages/aurora/src/components/file_picker/types.d.ts +1 -0
- package/build/esm/packages/aurora/src/components/file_picker/use_file_picker.d.ts +1 -1
- package/build/esm/packages/aurora/src/components/file_picker/use_file_picker.js +2 -1
- package/build/esm/packages/aurora/src/components/file_picker/use_file_picker.js.map +1 -1
- package/build/esm/packages/aurora/src/components/image_picker/components/image_input.js +23 -21
- package/build/esm/packages/aurora/src/components/image_picker/components/image_input.js.map +1 -1
- package/build/esm/packages/aurora/src/components/image_picker/components/selected_image_preview.js +26 -25
- package/build/esm/packages/aurora/src/components/image_picker/components/selected_image_preview.js.map +1 -1
- package/build/esm/packages/aurora/src/components/image_picker/css_classes.js +24 -22
- package/build/esm/packages/aurora/src/components/image_picker/css_classes.js.map +1 -1
- package/build/esm/packages/aurora/src/components/image_picker/index.js +92 -90
- package/build/esm/packages/aurora/src/components/image_picker/index.js.map +1 -1
- package/build/esm/packages/aurora/src/components/image_picker/utils.js +7 -4
- package/build/esm/packages/aurora/src/components/image_picker/utils.js.map +1 -1
- package/build/esm/packages/aurora/src/css/image_picker/main.module.less.js +8 -0
- package/build/esm/packages/aurora/src/css/image_picker/main.module.less.js.map +1 -0
- package/build/esm/packages/aurora/src/hooks/use_fixed_child_position.d.ts +1 -1
- package/build/esm/packages/aurora/src/index.d.ts +7 -4
- package/build/esm/packages/aurora/src/index.js +4 -2
- package/build/esm/packages/aurora/src/index.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var React = require('react');
|
|
6
|
+
var main_module = require('../css/icons/main.module.less.js');
|
|
7
|
+
var icon = require('./icon.js');
|
|
8
|
+
|
|
9
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
10
|
+
|
|
11
|
+
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
12
|
+
|
|
13
|
+
const IconWrongFileFormat = ({ className = '', size }) => (React__default['default'].createElement(icon['default'], null,
|
|
14
|
+
React__default['default'].createElement("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 67 52", width: "67", height: "52", className: `${className || ''} ${main_module['default'][`icon_${size}`]}` },
|
|
15
|
+
React__default['default'].createElement("path", { d: "M36.9768 2H1.5V49.9829H29.9977M44.5374 2H65.4745V49.9829H39.8847", stroke: "#ABB4CD", strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: "3" }),
|
|
16
|
+
React__default['default'].createElement("path", { d: "m36.976 2-7.5606 7.7972 9.8869 10.196-9.8869 10.196 9.8869 10.196-9.3053 9.5965", stroke: "#ABB4CD", strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: "3" }),
|
|
17
|
+
React__default['default'].createElement("path", { d: "m34.069 45.784-15.703-15.594-16.866 16.794v2.9989h28.498l4.0711-4.1985z", fill: "#ABB4CD", stroke: "#ABB4CD", strokeLinejoin: "round", strokeWidth: "2" }),
|
|
18
|
+
React__default['default'].createElement("path", { d: "m45.726 24.793 19.774 20.393v4.7983h-26.753c-0.1938 0.1999 1.1365-1.3195 5.7892-6.5976 4.6526-5.2782-2.3263-8.3971-5.2076-11.996l6.3974-6.5976z", fill: "#ABB4CD", stroke: "#ABB4CD", strokeLinejoin: "round", strokeWidth: "3" }),
|
|
19
|
+
React__default['default'].createElement("circle", { cx: "54.352", cy: "13.197", r: "4", fill: "#ABB4CD" }))));
|
|
20
|
+
|
|
21
|
+
exports.default = IconWrongFileFormat;
|
|
22
|
+
//# sourceMappingURL=icon_wrong_file_format.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var React = require('react');
|
|
6
|
+
var index = require('../../index.js');
|
|
7
|
+
var index$1 = require('../../../hint/index.js');
|
|
8
|
+
var index$2 = require('../../../image_picker/index.js');
|
|
9
|
+
|
|
10
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
11
|
+
|
|
12
|
+
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
13
|
+
|
|
14
|
+
const ControlImagePicker = ({ label, isRequired, id, name, onChange, allowedExtensions, initialFile, className, errors, hint, labelAdditionalInfo, hasWidthInput, widthInputPostfix, widthInputLabel, widthInputHint }) => {
|
|
15
|
+
return (React__default['default'].createElement(index['default'], { errors: errors, name: name, id: id },
|
|
16
|
+
(label || hint) && (React__default['default'].createElement(index['default'].Label, { id: id, isRequired: isRequired, additionalInfo: labelAdditionalInfo },
|
|
17
|
+
label,
|
|
18
|
+
hint && React__default['default'].createElement(index$1['default'], { hint: hint, spacingLeft: true }))),
|
|
19
|
+
React__default['default'].createElement(index['default'].Content, null,
|
|
20
|
+
React__default['default'].createElement(index['default'].Element, null,
|
|
21
|
+
React__default['default'].createElement(index$2['default'], { id: id, name: name, onChange: onChange, allowedExtensions: allowedExtensions, initialFile: initialFile, className: className, hasWidthInput: hasWidthInput, widthInputPostfix: widthInputPostfix, widthInputLabel: widthInputLabel, widthInputHint: widthInputHint }))),
|
|
22
|
+
React__default['default'].createElement(index['default'].Errors, null)));
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
exports.default = ControlImagePicker;
|
|
26
|
+
//# sourceMappingURL=index.js.map
|
package/build/cjs/packages/aurora/src/components/controls/hoc/control_image_picker/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
|
|
@@ -6,9 +6,9 @@ var React = require('react');
|
|
|
6
6
|
var useTranslation = require('../../../../../../external/react-i18next/dist/es/useTranslation.js');
|
|
7
7
|
var reactJss_esm = require('../../../../../../external/react-jss/dist/react-jss.esm.js');
|
|
8
8
|
var with_translation = require('../../../utilities/translation/with_translation.js');
|
|
9
|
-
var main_module = require('../../../css/file_picker/main.module.less.js');
|
|
10
9
|
var css_classes = require('../css_classes.js');
|
|
11
10
|
var icon_upload = require('../../../assets/icon_upload.js');
|
|
11
|
+
var main_module = require('../../../css/file_picker/main.module.less.js');
|
|
12
12
|
|
|
13
13
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
14
14
|
|
package/build/cjs/packages/aurora/src/components/file_picker/components/selected_file_preview.js
CHANGED
|
@@ -5,8 +5,8 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
var React = require('react');
|
|
6
6
|
var useTranslation = require('../../../../../../external/react-i18next/dist/es/useTranslation.js');
|
|
7
7
|
var utilities = require('@dreamcommerce/utilities');
|
|
8
|
-
var main_module = require('../../../css/file_picker/main.module.less.js');
|
|
9
8
|
var css_classes = require('../css_classes.js');
|
|
9
|
+
var main_module = require('../../../css/file_picker/main.module.less.js');
|
|
10
10
|
var icon_delete = require('../../../assets/icon_delete.js');
|
|
11
11
|
|
|
12
12
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
@@ -3,26 +3,28 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
var React = require('react');
|
|
6
|
-
var main_module = require('../../css/file_picker/main.module.less.js');
|
|
7
6
|
var css_classes = require('./css_classes.js');
|
|
8
|
-
var
|
|
7
|
+
var main_module = require('../../css/file_picker/main.module.less.js');
|
|
9
8
|
var file_input = require('./components/file_input.js');
|
|
10
|
-
var
|
|
9
|
+
var selected_file_preview = require('./components/selected_file_preview.js');
|
|
11
10
|
var utils = require('./utils.js');
|
|
11
|
+
var use_file_picker = require('./use_file_picker.js');
|
|
12
12
|
|
|
13
13
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
14
14
|
|
|
15
15
|
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
16
16
|
|
|
17
17
|
const FilePicker = ({ id, onChange, allowedExtensions = ['WEBP', 'JPG', 'PNG', 'GIF'], initialFile, name, className = '' }) => {
|
|
18
|
+
const inputRef = React.createRef();
|
|
18
19
|
const { onDropFile, onFileChange, onDragOver, onDragLeave, onFileDelete, onPreviewError, file, isPreview, isDragOver } = use_file_picker.useFilePicker({
|
|
19
20
|
initialFile,
|
|
20
|
-
onChange
|
|
21
|
+
onChange,
|
|
22
|
+
inputRef
|
|
21
23
|
});
|
|
22
24
|
const acceptFiles = utils.getAcceptFilesParametersFromAllowedExtensions(allowedExtensions);
|
|
23
25
|
return (React__default['default'].createElement("div", { className: className },
|
|
24
26
|
file ? (React__default['default'].createElement(selected_file_preview['default'], { file: file, onFileDelete: onFileDelete, onPreviewError: onPreviewError, isPreview: isPreview })) : (React__default['default'].createElement(file_input['default'], { onDragLeave: onDragLeave, onDragOver: onDragOver, isDragOver: isDragOver, allowedExtensions: allowedExtensions, id: id, onDropFile: onDropFile })),
|
|
25
|
-
React__default['default'].createElement("input", { onChange: onFileChange, id: id, type: "file", name: name, className: main_module['default'][css_classes['default'].filePickerInput], accept: acceptFiles })));
|
|
27
|
+
React__default['default'].createElement("input", { onChange: onFileChange, id: id, ref: inputRef, type: "file", name: name, className: main_module['default'][css_classes['default'].filePickerInput], accept: acceptFiles })));
|
|
26
28
|
};
|
|
27
29
|
|
|
28
30
|
exports.default = FilePicker;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
|
|
1
|
+
{"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
|
|
@@ -5,7 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
var React = require('react');
|
|
6
6
|
var constants = require('./constants.js');
|
|
7
7
|
|
|
8
|
-
const useFilePicker = ({ onChange, initialFile, allowedExtensions }) => {
|
|
8
|
+
const useFilePicker = ({ onChange, initialFile, allowedExtensions, inputRef }) => {
|
|
9
9
|
const [file, setFile] = React.useState(initialFile);
|
|
10
10
|
const [errors, setErrors] = React.useState([]);
|
|
11
11
|
const [isDragOver, setDragOver] = React.useState(false);
|
|
@@ -91,6 +91,7 @@ const useFilePicker = ({ onChange, initialFile, allowedExtensions }) => {
|
|
|
91
91
|
setDragOver(false);
|
|
92
92
|
};
|
|
93
93
|
const onFileDelete = () => {
|
|
94
|
+
inputRef.current.value = '';
|
|
94
95
|
setFile(undefined);
|
|
95
96
|
setPreview(true);
|
|
96
97
|
setErrors([]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
|
|
1
|
+
{"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var React = require('react');
|
|
6
|
+
var useTranslation = require('../../../../../../external/react-i18next/dist/es/useTranslation.js');
|
|
7
|
+
var with_translation = require('../../../utilities/translation/with_translation.js');
|
|
8
|
+
var icon_upload = require('../../../assets/icon_upload.js');
|
|
9
|
+
var css_classes = require('../css_classes.js');
|
|
10
|
+
var main_module = require('../../../css/image_picker/main.module.less.js');
|
|
11
|
+
|
|
12
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
13
|
+
|
|
14
|
+
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
15
|
+
|
|
16
|
+
const ImageInput = ({ id, onDropFile, onDragOver, onDragLeave, allowedExtensions, isDragOver }) => {
|
|
17
|
+
const [t] = useTranslation.useTranslation();
|
|
18
|
+
return (React__default['default'].createElement("label", { htmlFor: id, onDrop: onDropFile, onDragOver: onDragOver, onDragLeave: onDragLeave, className: main_module['default'][css_classes['default'].imagePickerLabel] },
|
|
19
|
+
React__default['default'].createElement("div", { className: main_module['default'][css_classes['default'].imagePickerDescription] },
|
|
20
|
+
React__default['default'].createElement(icon_upload['default'], { className: main_module['default'][css_classes['default'].imagePickerUploadIcon] }),
|
|
21
|
+
React__default['default'].createElement("p", null, t('Drag a file here or browse')),
|
|
22
|
+
React__default['default'].createElement("span", null,
|
|
23
|
+
"(",
|
|
24
|
+
t('supported format'),
|
|
25
|
+
": ",
|
|
26
|
+
allowedExtensions.join(', '),
|
|
27
|
+
")"))));
|
|
28
|
+
};
|
|
29
|
+
var ImageInput$1 = with_translation['default'](ImageInput);
|
|
30
|
+
|
|
31
|
+
exports.default = ImageInput$1;
|
|
32
|
+
//# sourceMappingURL=image_input.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA,6BAA6B,oEAAwE;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
|
package/build/cjs/packages/aurora/src/components/image_picker/components/selected_image_preview.js
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var React = require('react');
|
|
6
|
+
var useTranslation = require('../../../../../../external/react-i18next/dist/es/useTranslation.js');
|
|
7
|
+
var utilities = require('@dreamcommerce/utilities');
|
|
8
|
+
var icon_delete = require('../../../assets/icon_delete.js');
|
|
9
|
+
var css_classes = require('../css_classes.js');
|
|
10
|
+
var main_module = require('../../../css/image_picker/main.module.less.js');
|
|
11
|
+
var icon_wrong_file_format = require('../../../assets/icon_wrong_file_format.js');
|
|
12
|
+
|
|
13
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
14
|
+
|
|
15
|
+
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
16
|
+
|
|
17
|
+
const SelectedImagePreview = ({ file, isPreview, fileFormatIsCorrect, imageSize, onPreviewError, onFileDelete }) => {
|
|
18
|
+
const [t] = useTranslation.useTranslation();
|
|
19
|
+
const imageName = utilities.FileUtils.getFileName(file.fileName);
|
|
20
|
+
const imageExtension = utilities.FileUtils.getFileExtension(file.fileName);
|
|
21
|
+
const imageWidth = imageSize && imageSize.width;
|
|
22
|
+
const imageHeight = imageSize && imageSize.height;
|
|
23
|
+
const previewMarkupJsx = fileFormatIsCorrect ? (React__default['default'].createElement("img", { alt: "", src: (file === null || file === void 0 ? void 0 : file.fileUrl) || '', onError: onPreviewError, className: main_module['default'][css_classes['default'].imagePickerImagePreview] })) : (React__default['default'].createElement(icon_wrong_file_format['default'], { className: main_module['default'][css_classes['default'].imagePickerWrongFileFormatIcon] }));
|
|
24
|
+
return (React__default['default'].createElement("div", null,
|
|
25
|
+
isPreview ? (React__default['default'].createElement("div", { className: main_module['default'][css_classes['default'].imagePickerImagePreviewWrapper] }, previewMarkupJsx)) : (React__default['default'].createElement("div", null, t('No preview'))),
|
|
26
|
+
React__default['default'].createElement("div", { className: main_module['default'][css_classes['default'].imagePickerSelectedFile] },
|
|
27
|
+
React__default['default'].createElement("div", { className: main_module['default'][css_classes['default'].imagePickerSelectedFileNameWrapper] }, fileFormatIsCorrect && (React__default['default'].createElement("span", { className: main_module['default'][css_classes['default'].imagePickerSelectedFileFullName] },
|
|
28
|
+
React__default['default'].createElement("span", null, utilities.FileUtils.getShortenFileName(imageName, 10, 5, 1)),
|
|
29
|
+
React__default['default'].createElement("span", null, `.${imageExtension} (${imageWidth}x${imageHeight}px)`)))),
|
|
30
|
+
React__default['default'].createElement("div", { className: main_module['default'][css_classes['default'].imagePickerSelectedFileRemoveWrapper] },
|
|
31
|
+
React__default['default'].createElement("span", { onClick: onFileDelete, className: main_module['default'][css_classes['default'].imagePickerDeleteButton] },
|
|
32
|
+
React__default['default'].createElement(icon_delete['default'], { className: main_module['default'][css_classes['default'].imagePickerDeleteIcon] }),
|
|
33
|
+
React__default['default'].createElement("span", { className: main_module['default'][css_classes['default'].imagePickerDeleteLabel] }, t('Remove')))))));
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
exports.default = SelectedImagePreview;
|
|
37
|
+
//# sourceMappingURL=selected_image_preview.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA,6BAA6B,oEAAwE;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
const imagePicker = 'image-picker';
|
|
6
|
+
var CSS_CLASSES = {
|
|
7
|
+
imagePicker: `${imagePicker}`,
|
|
8
|
+
imagePickerWrapper: `${imagePicker}__wrapper`,
|
|
9
|
+
imagePickerWrapperError: `${imagePicker}__wrapper-error`,
|
|
10
|
+
imagePickerWrapperHasFile: `${imagePicker}__wrapper-has-file`,
|
|
11
|
+
imagePickerLabel: `${imagePicker}__label`,
|
|
12
|
+
imagePickerDescription: `${imagePicker}__description`,
|
|
13
|
+
imagePickerImagePreview: `${imagePicker}__image-preview`,
|
|
14
|
+
imagePickerImagePreviewWrapper: `${imagePicker}__image-preview-wrapper`,
|
|
15
|
+
imagePickerWrongFileFormatIcon: `${imagePicker}__wrong-file-format-icon`,
|
|
16
|
+
imagePickerErrorText: `${imagePicker}__error-text`,
|
|
17
|
+
imagePickerUploadIcon: `${imagePicker}__upload-icon`,
|
|
18
|
+
imagePickerDeleteButton: `${imagePicker}__delete-button`,
|
|
19
|
+
imagePickerDeleteLabel: `${imagePicker}__delete-label`,
|
|
20
|
+
imagePickerDeleteIcon: `${imagePicker}__delete-icon`,
|
|
21
|
+
imagePickerInput: `${imagePicker}__input`,
|
|
22
|
+
imagePickerSelectedFile: `${imagePicker}__selected-file`,
|
|
23
|
+
imagePickerSelectedFileNameWrapper: `${imagePicker}__selected-file-name-wrapper`,
|
|
24
|
+
imagePickerSelectedFileRemoveWrapper: `${imagePicker}__selected-file-remove-wrapper`,
|
|
25
|
+
imagePickerSelectedFileFullName: `${imagePicker}__selected-file-full-name`
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
exports.default = CSS_CLASSES;
|
|
29
|
+
//# sourceMappingURL=css_classes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var React = require('react');
|
|
6
|
+
var useTranslation = require('../../../../../external/react-i18next/dist/es/useTranslation.js');
|
|
7
|
+
var reactJss_esm = require('../../../../../external/react-jss/dist/react-jss.esm.js');
|
|
8
|
+
var classnames = require('classnames');
|
|
9
|
+
var utils = require('../file_picker/utils.js');
|
|
10
|
+
var constants = require('../file_picker/constants.js');
|
|
11
|
+
var use_file_picker = require('../file_picker/use_file_picker.js');
|
|
12
|
+
var css_classes = require('./css_classes.js');
|
|
13
|
+
var index$1 = require('../controls/hoc/control_input/index.js');
|
|
14
|
+
var main_module = require('../../css/image_picker/main.module.less.js');
|
|
15
|
+
var image_input = require('./components/image_input.js');
|
|
16
|
+
var selected_image_preview = require('./components/selected_image_preview.js');
|
|
17
|
+
var index = require('../spacing/index.js');
|
|
18
|
+
var utils$1 = require('./utils.js');
|
|
19
|
+
|
|
20
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
21
|
+
|
|
22
|
+
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
23
|
+
var classnames__default = /*#__PURE__*/_interopDefaultLegacy(classnames);
|
|
24
|
+
|
|
25
|
+
const ImagePicker = ({ id, onChange, allowedExtensions = ['WEBP', 'JPG', 'PNG', 'GIF'], initialFile, name, className = '', hasWidthInput, widthInputPostfix = 'px', widthInputLabel, widthInputHint }) => {
|
|
26
|
+
const [t] = useTranslation.useTranslation();
|
|
27
|
+
const inputRef = React.createRef();
|
|
28
|
+
const [fileFormatIsCorrect, setFileFormatIsCorrect] = React.useState(true);
|
|
29
|
+
const [imageSize, setImageSize] = React.useState({ width: 0, height: 0 });
|
|
30
|
+
const [widthInputValue, setWidthInputValue] = React.useState();
|
|
31
|
+
const [isInputWidthTooBig, setIsInputWidthTooBig] = React.useState(false);
|
|
32
|
+
const { onDropFile, onFileChange, onDragOver, onDragLeave, onFileDelete, onPreviewError, file, errors, isPreview, isDragOver, isVectorImage } = use_file_picker.useFilePicker({ initialFile, onChange, allowedExtensions, inputRef });
|
|
33
|
+
const acceptFiles = utils.getAcceptFilesParametersFromAllowedExtensions(allowedExtensions);
|
|
34
|
+
const showMaxWidthInput = hasWidthInput && file && fileFormatIsCorrect && !isVectorImage;
|
|
35
|
+
const imagePickerClassName = classnames__default['default'](main_module['default'][css_classes['default'].imagePicker], className && className);
|
|
36
|
+
const imagePickerWrapperClassName = classnames__default['default'](main_module['default'][css_classes['default'].imagePickerWrapper], file && main_module['default'][css_classes['default'].imagePickerWrapperHasFile], !fileFormatIsCorrect && main_module['default'][css_classes['default'].imagePickerWrapperError]);
|
|
37
|
+
const useStyles = reactJss_esm.createUseStyles({
|
|
38
|
+
imagePickerWrapper: {
|
|
39
|
+
border: ({ isDragOver }) => (isDragOver ? '1px solid #135cc8' : ''),
|
|
40
|
+
backgroundColor: ({ isDragOver }) => (isDragOver ? 'rgba(208, 230, 255, 0.5)' : ''),
|
|
41
|
+
'& svg': {
|
|
42
|
+
// @ts-ignore
|
|
43
|
+
fill: ({ isDragOver }) => (isDragOver ? '#3c83ec' : '')
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
const dragOverStyles = useStyles({ isDragOver });
|
|
48
|
+
const getImageWidth = (event) => {
|
|
49
|
+
let selectedImage;
|
|
50
|
+
if (event.target instanceof HTMLInputElement) {
|
|
51
|
+
const { target: { files } } = event;
|
|
52
|
+
selectedImage = files[0];
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
const { dataTransfer: { files } } = event;
|
|
56
|
+
selectedImage = files[0];
|
|
57
|
+
}
|
|
58
|
+
const imgElement = document.createElement('img');
|
|
59
|
+
const objectURL = URL.createObjectURL(selectedImage);
|
|
60
|
+
imgElement.onload = () => {
|
|
61
|
+
setImageSize({ width: imgElement.width, height: imgElement.height });
|
|
62
|
+
URL.revokeObjectURL(objectURL);
|
|
63
|
+
};
|
|
64
|
+
imgElement.src = objectURL;
|
|
65
|
+
};
|
|
66
|
+
const checkIfInputMaxWidthIsGreaterThenImageWidth = () => {
|
|
67
|
+
if (!widthInputValue || !imageSize.width)
|
|
68
|
+
return;
|
|
69
|
+
widthInputValue > imageSize.width ? setIsInputWidthTooBig(true) : setIsInputWidthTooBig(false);
|
|
70
|
+
};
|
|
71
|
+
const handleonDropFile = (event) => {
|
|
72
|
+
onDropFile(event);
|
|
73
|
+
getImageWidth(event);
|
|
74
|
+
};
|
|
75
|
+
const handleOnFileChange = (event) => {
|
|
76
|
+
onFileChange(event);
|
|
77
|
+
getImageWidth(event);
|
|
78
|
+
};
|
|
79
|
+
const handleOnFileDelete = () => {
|
|
80
|
+
setImageSize({ width: 0, height: 0 });
|
|
81
|
+
onFileDelete();
|
|
82
|
+
};
|
|
83
|
+
const handleOnWidthInputChange = (event) => {
|
|
84
|
+
setWidthInputValue(event.target.valueAsNumber);
|
|
85
|
+
};
|
|
86
|
+
React.useEffect(() => {
|
|
87
|
+
utils$1.checkIfInvalideFileFormatErrorOccured(errors) ? setFileFormatIsCorrect(false) : setFileFormatIsCorrect(true);
|
|
88
|
+
file && checkIfInputMaxWidthIsGreaterThenImageWidth();
|
|
89
|
+
}, [errors, file, widthInputValue]);
|
|
90
|
+
React.useEffect(() => {
|
|
91
|
+
setWidthInputValue(imageSize.width);
|
|
92
|
+
}, [imageSize]);
|
|
93
|
+
return (React__default['default'].createElement("div", { className: imagePickerClassName },
|
|
94
|
+
React__default['default'].createElement("div", { className: `${imagePickerWrapperClassName} ${dragOverStyles.imagePickerWrapper}` },
|
|
95
|
+
file && (React__default['default'].createElement(selected_image_preview['default'], { file: file, onFileDelete: handleOnFileDelete, onPreviewError: onPreviewError, isPreview: isPreview, fileFormatIsCorrect: fileFormatIsCorrect, imageSize: imageSize })),
|
|
96
|
+
React__default['default'].createElement(image_input['default'], { onDragLeave: onDragLeave, onDragOver: onDragOver, isDragOver: isDragOver, allowedExtensions: allowedExtensions, id: id, onDropFile: handleonDropFile }),
|
|
97
|
+
React__default['default'].createElement("input", { onChange: handleOnFileChange, id: id, ref: inputRef, type: "file", name: name, className: main_module['default'][css_classes['default'].imagePickerInput], accept: acceptFiles })),
|
|
98
|
+
!fileFormatIsCorrect && React__default['default'].createElement("p", { className: main_module['default'][css_classes['default'].imagePickerErrorText] }, t('Invalid file format')),
|
|
99
|
+
showMaxWidthInput && (React__default['default'].createElement(index['default'], { as: "div", "mt-xs": 2 },
|
|
100
|
+
React__default['default'].createElement(index$1['default'], { id: `${id}-image-width`, type: "number", postfix: widthInputPostfix, value: widthInputValue, isRequired: true, label: widthInputLabel, hint: widthInputHint, onChange: handleOnWidthInputChange, errors: isInputWidthTooBig ? [`${t(constants.FILE_PICKER_ERROR.invalidInputWidth)}`] : null })))));
|
|
101
|
+
};
|
|
102
|
+
|
|
103
|
+
exports.default = ImagePicker;
|
|
104
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA,6BAA6B,iEAAqE;AAClG,2BAA2B,yDAA6D;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var constants = require('../file_picker/constants.js');
|
|
6
|
+
|
|
7
|
+
const checkIfInvalideFileFormatErrorOccured = (errorsArray) => {
|
|
8
|
+
return errorsArray && errorsArray.includes(constants.FILE_PICKER_ERROR.invalidFileFormat);
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
exports.checkIfInvalideFileFormatErrorOccured = checkIfInvalideFileFormatErrorOccured;
|
|
12
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var styleInject_es = require('../../../../../external/style-inject/dist/style-inject.es.js');
|
|
6
|
+
|
|
7
|
+
var css_248z = "/* font colors */\n/* actions */\n/* background */\n/* errors */\n/* borders */\n/* grid */\n/* scrollBar */\n/* sizes */\n.main-module_image-picker__wrapper__2RK3f {\n border: 1px dashed #abb4cd;\n border-radius: 2px;\n}\n.main-module_image-picker__wrapper-error__kCZeA {\n border-color: #e60c54;\n}\n.main-module_image-picker__wrapper-error__kCZeA:hover {\n border-color: #e60c54;\n}\n.main-module_image-picker__wrapper-has-file__2zmRc {\n position: relative;\n}\n.main-module_image-picker__wrapper-has-file__2zmRc .main-module_image-picker__label__1i_Fq {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 46px;\n left: 0;\n}\n.main-module_image-picker__wrapper-has-file__2zmRc .main-module_image-picker__description__1v13N {\n display: none;\n}\n.main-module_image-picker__wrapper__2RK3f:hover {\n border-color: #135cc8;\n}\n.main-module_image-picker__wrapper__2RK3f:hover .main-module_image-picker__upload-icon__3sMvN {\n fill: #3c83ec;\n}\n.main-module_image-picker__label__1i_Fq {\n cursor: pointer;\n}\n.main-module_image-picker__input__3Wu2I {\n display: none;\n}\n.main-module_image-picker__description__1v13N {\n padding: 2rem 0;\n text-align: center;\n}\n.main-module_image-picker__description__1v13N p {\n color: #3c83ec;\n}\n.main-module_image-picker__description__1v13N span {\n font-size: 12px;\n color: #59687e;\n}\n.main-module_image-picker__upload-icon__3sMvN {\n width: 1rem;\n height: auto;\n margin-bottom: 1rem;\n fill: #abb4cd;\n}\n.main-module_image-picker__delete-button__21_kT {\n display: flex;\n align-items: center;\n flex-shrink: 0;\n color: #3c83ec;\n cursor: pointer;\n}\n.main-module_image-picker__delete-button__21_kT:hover .main-module_image-picker__delete-label__3v2ot {\n text-decoration: underline;\n}\n.main-module_image-picker__wrong-file-format-icon__X-NL0 {\n margin: 2rem 0 0.5rem;\n fill: #ffffff;\n}\n.main-module_image-picker__delete-icon__30pkO {\n fill: #3c83ec;\n margin-right: 0.5rem;\n}\n.main-module_image-picker__selected-file__3bRqa {\n display: flex;\n align-items: center;\n justify-content: space-between;\n height: 46px;\n}\n.main-module_image-picker__selected-file-name-wrapper__37MKd,\n.main-module_image-picker__selected-file-remove-wrapper__2v4W2 {\n flex: 1;\n max-width: 50%;\n padding: 1rem;\n}\n.main-module_image-picker__selected-file-remove-wrapper__2v4W2 {\n display: flex;\n justify-content: flex-end;\n}\n.main-module_image-picker__selected-file-full-name__3fALB {\n color: #59687e;\n}\n.main-module_image-picker__image-preview-wrapper__1jPXU {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.main-module_image-picker__image-preview__12pRu {\n max-width: 100%;\n max-height: 100%;\n}\n.main-module_image-picker__error-text__rXAvw {\n margin-top: 0.5rem;\n color: #e60c54;\n}\n";
|
|
8
|
+
var styles = {"image-picker__wrapper":"main-module_image-picker__wrapper__2RK3f","image-picker__wrapper-error":"main-module_image-picker__wrapper-error__kCZeA","image-picker__wrapper-has-file":"main-module_image-picker__wrapper-has-file__2zmRc","image-picker__label":"main-module_image-picker__label__1i_Fq","image-picker__description":"main-module_image-picker__description__1v13N","image-picker__upload-icon":"main-module_image-picker__upload-icon__3sMvN","image-picker__input":"main-module_image-picker__input__3Wu2I","image-picker__delete-button":"main-module_image-picker__delete-button__21_kT","image-picker__delete-label":"main-module_image-picker__delete-label__3v2ot","image-picker__wrong-file-format-icon":"main-module_image-picker__wrong-file-format-icon__X-NL0","image-picker__delete-icon":"main-module_image-picker__delete-icon__30pkO","image-picker__selected-file":"main-module_image-picker__selected-file__3bRqa","image-picker__selected-file-name-wrapper":"main-module_image-picker__selected-file-name-wrapper__37MKd","image-picker__selected-file-remove-wrapper":"main-module_image-picker__selected-file-remove-wrapper__2v4W2","image-picker__selected-file-full-name":"main-module_image-picker__selected-file-full-name__3fALB","image-picker__image-preview-wrapper":"main-module_image-picker__image-preview-wrapper__1jPXU","image-picker__image-preview":"main-module_image-picker__image-preview__12pRu","image-picker__error-text":"main-module_image-picker__error-text__rXAvw"};
|
|
9
|
+
styleInject_es['default'](css_248z);
|
|
10
|
+
|
|
11
|
+
exports.default = styles;
|
|
12
|
+
//# sourceMappingURL=main.module.less.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA,6BAA6B,8DAAkE;AAC/F;AACA;AACA;AACA;AACA;AACA;"}
|