@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.
Files changed (53) hide show
  1. package/build/cjs/packages/aurora/src/assets/icon_wrong_file_format.js +22 -0
  2. package/build/cjs/packages/aurora/src/assets/icon_wrong_file_format.js.map +1 -0
  3. package/build/cjs/packages/aurora/src/components/controls/hoc/control_image_picker/index.js +26 -0
  4. package/build/cjs/packages/aurora/src/components/controls/hoc/control_image_picker/index.js.map +1 -0
  5. package/build/cjs/packages/aurora/src/components/file_picker/components/file_input.js +1 -1
  6. package/build/cjs/packages/aurora/src/components/file_picker/components/selected_file_preview.js +1 -1
  7. package/build/cjs/packages/aurora/src/components/file_picker/index.js +7 -5
  8. package/build/cjs/packages/aurora/src/components/file_picker/index.js.map +1 -1
  9. package/build/cjs/packages/aurora/src/components/file_picker/use_file_picker.js +2 -1
  10. package/build/cjs/packages/aurora/src/components/file_picker/use_file_picker.js.map +1 -1
  11. package/build/cjs/packages/aurora/src/components/image_picker/components/image_input.js +32 -0
  12. package/build/cjs/packages/aurora/src/components/image_picker/components/image_input.js.map +1 -0
  13. package/build/cjs/packages/aurora/src/components/image_picker/components/selected_image_preview.js +37 -0
  14. package/build/cjs/packages/aurora/src/components/image_picker/components/selected_image_preview.js.map +1 -0
  15. package/build/cjs/packages/aurora/src/components/image_picker/css_classes.js +29 -0
  16. package/build/cjs/packages/aurora/src/components/image_picker/css_classes.js.map +1 -0
  17. package/build/cjs/packages/aurora/src/components/image_picker/index.js +104 -0
  18. package/build/cjs/packages/aurora/src/components/image_picker/index.js.map +1 -0
  19. package/build/cjs/packages/aurora/src/components/image_picker/utils.js +12 -0
  20. package/build/cjs/packages/aurora/src/components/image_picker/utils.js.map +1 -0
  21. package/build/cjs/packages/aurora/src/css/image_picker/main.module.less.js +12 -0
  22. package/build/cjs/packages/aurora/src/css/image_picker/main.module.less.js.map +1 -0
  23. package/build/cjs/packages/aurora/src/index.js +51 -47
  24. package/build/cjs/packages/aurora/src/index.js.map +1 -1
  25. package/build/esm/packages/aurora/src/assets/icon_wrong_file_format.js +11 -10
  26. package/build/esm/packages/aurora/src/assets/icon_wrong_file_format.js.map +1 -1
  27. package/build/esm/packages/aurora/src/components/controls/hoc/control_image_picker/index.js +15 -14
  28. package/build/esm/packages/aurora/src/components/controls/hoc/control_image_picker/index.js.map +1 -1
  29. package/build/esm/packages/aurora/src/components/file_picker/components/file_input.js +1 -1
  30. package/build/esm/packages/aurora/src/components/file_picker/components/selected_file_preview.js +1 -1
  31. package/build/esm/packages/aurora/src/components/file_picker/index.js +8 -6
  32. package/build/esm/packages/aurora/src/components/file_picker/index.js.map +1 -1
  33. package/build/esm/packages/aurora/src/components/file_picker/types.d.ts +1 -0
  34. package/build/esm/packages/aurora/src/components/file_picker/use_file_picker.d.ts +1 -1
  35. package/build/esm/packages/aurora/src/components/file_picker/use_file_picker.js +2 -1
  36. package/build/esm/packages/aurora/src/components/file_picker/use_file_picker.js.map +1 -1
  37. package/build/esm/packages/aurora/src/components/image_picker/components/image_input.js +23 -21
  38. package/build/esm/packages/aurora/src/components/image_picker/components/image_input.js.map +1 -1
  39. package/build/esm/packages/aurora/src/components/image_picker/components/selected_image_preview.js +26 -25
  40. package/build/esm/packages/aurora/src/components/image_picker/components/selected_image_preview.js.map +1 -1
  41. package/build/esm/packages/aurora/src/components/image_picker/css_classes.js +24 -22
  42. package/build/esm/packages/aurora/src/components/image_picker/css_classes.js.map +1 -1
  43. package/build/esm/packages/aurora/src/components/image_picker/index.js +92 -90
  44. package/build/esm/packages/aurora/src/components/image_picker/index.js.map +1 -1
  45. package/build/esm/packages/aurora/src/components/image_picker/utils.js +7 -4
  46. package/build/esm/packages/aurora/src/components/image_picker/utils.js.map +1 -1
  47. package/build/esm/packages/aurora/src/css/image_picker/main.module.less.js +8 -0
  48. package/build/esm/packages/aurora/src/css/image_picker/main.module.less.js.map +1 -0
  49. package/build/esm/packages/aurora/src/hooks/use_fixed_child_position.d.ts +1 -1
  50. package/build/esm/packages/aurora/src/index.d.ts +7 -4
  51. package/build/esm/packages/aurora/src/index.js +4 -2
  52. package/build/esm/packages/aurora/src/index.js.map +1 -1
  53. 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
@@ -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
 
@@ -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 selected_file_preview = require('./components/selected_file_preview.js');
7
+ var main_module = require('../../css/file_picker/main.module.less.js');
9
8
  var file_input = require('./components/file_input.js');
10
- var use_file_picker = require('./use_file_picker.js');
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;"}
@@ -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;"}