@dreamcommerce/aurora 3.1.31 → 3.1.32-1
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/components/controls/xhr_image_picker_control/xhr_image_picker_control.js +5 -14
- package/build/cjs/packages/aurora/src/components/controls/xhr_image_picker_control/xhr_image_picker_control.js.map +1 -1
- package/build/cjs/packages/aurora/src/components/image_picker/components/image_picker_preview.js +0 -2
- package/build/cjs/packages/aurora/src/components/image_picker/components/image_picker_preview.js.map +1 -1
- package/build/cjs/packages/aurora/src/components/image_picker/image_picker.js +15 -81
- package/build/cjs/packages/aurora/src/components/image_picker/image_picker.js.map +1 -1
- package/build/cjs/packages/aurora/src/components/image_picker/use_image_picker.js +36 -102
- package/build/cjs/packages/aurora/src/components/image_picker/use_image_picker.js.map +1 -1
- package/build/cjs/packages/aurora/src/components/xhr_image_picker/xhr_image_picker.js +114 -123
- package/build/cjs/packages/aurora/src/components/xhr_image_picker/xhr_image_picker.js.map +1 -1
- package/build/esm/packages/aurora/src/components/controls/xhr_image_picker_control/xhr_image_picker_control.js +6 -15
- package/build/esm/packages/aurora/src/components/controls/xhr_image_picker_control/xhr_image_picker_control.js.map +1 -1
- package/build/esm/packages/aurora/src/components/controls/xhr_image_picker_control/xhr_image_picker_control_types.d.ts +3 -5
- package/build/esm/packages/aurora/src/components/controls/xhr_image_picker_control/xhr_image_picker_control_types.js +0 -1
- package/build/esm/packages/aurora/src/components/controls/xhr_image_picker_control/xhr_image_picker_control_types.js.map +1 -1
- package/build/esm/packages/aurora/src/components/image_picker/components/image_picker_preview.d.ts +1 -2
- package/build/esm/packages/aurora/src/components/image_picker/components/image_picker_preview.js +0 -2
- package/build/esm/packages/aurora/src/components/image_picker/components/image_picker_preview.js.map +1 -1
- package/build/esm/packages/aurora/src/components/image_picker/image_picker.js +17 -83
- package/build/esm/packages/aurora/src/components/image_picker/image_picker.js.map +1 -1
- package/build/esm/packages/aurora/src/components/image_picker/image_picker_types.d.ts +16 -24
- package/build/esm/packages/aurora/src/components/image_picker/image_picker_types.js.map +1 -1
- package/build/esm/packages/aurora/src/components/image_picker/use_image_picker.d.ts +1 -1
- package/build/esm/packages/aurora/src/components/image_picker/use_image_picker.js +37 -103
- package/build/esm/packages/aurora/src/components/image_picker/use_image_picker.js.map +1 -1
- package/build/esm/packages/aurora/src/components/xhr_image_picker/xhr_image_picker.js +115 -124
- package/build/esm/packages/aurora/src/components/xhr_image_picker/xhr_image_picker.js.map +1 -1
- package/build/esm/packages/aurora/src/components/xhr_image_picker/xhr_image_picker_types.d.ts +5 -7
- package/build/esm/packages/aurora/src/components/xhr_image_picker/xhr_image_picker_types.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,34 +1,33 @@
|
|
|
1
1
|
import { IMAGE_PICKER_EXTENSIONS, MIME_FILE_EXTENSIONS } from './image_picker_constants';
|
|
2
|
-
import React, {
|
|
2
|
+
import React, { ReactNode } from 'react';
|
|
3
3
|
import { TControlErrors } from "../control/control_types";
|
|
4
|
+
export declare type TImagePickerExtension = typeof IMAGE_PICKER_EXTENSIONS[keyof typeof IMAGE_PICKER_EXTENSIONS];
|
|
5
|
+
export declare type TMimeFileExtension = typeof MIME_FILE_EXTENSIONS[keyof typeof MIME_FILE_EXTENSIONS];
|
|
4
6
|
export declare type TImagePickerFile = {
|
|
5
|
-
fileUrl: string;
|
|
6
7
|
fileName: string;
|
|
8
|
+
fileUrl: string;
|
|
7
9
|
};
|
|
8
|
-
export declare type TImagePickerExtension = typeof IMAGE_PICKER_EXTENSIONS[keyof typeof IMAGE_PICKER_EXTENSIONS];
|
|
9
|
-
export declare type TMimeFileExtension = typeof MIME_FILE_EXTENSIONS[keyof typeof MIME_FILE_EXTENSIONS];
|
|
10
10
|
export declare type ImagePickerFileObject = {
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
fileName: string;
|
|
12
|
+
fileUrl: string;
|
|
13
|
+
fileExtension: string;
|
|
14
|
+
fileDataUrl: string | null;
|
|
15
|
+
size: {
|
|
16
|
+
width: number;
|
|
17
|
+
height: number;
|
|
18
|
+
} | null;
|
|
13
19
|
};
|
|
14
20
|
export interface IImagePicker {
|
|
15
21
|
id: string;
|
|
16
22
|
name?: string;
|
|
17
23
|
className?: string;
|
|
18
|
-
onChange?: (file:
|
|
24
|
+
onChange?: (file: File) => void;
|
|
19
25
|
allowedExtensions?: TImagePickerExtension[];
|
|
20
26
|
allowedExtensionsLabel?: string;
|
|
21
|
-
initialFile?: TImagePickerFile;
|
|
22
27
|
errors?: TControlErrors;
|
|
23
28
|
onError?: (errors: string[]) => void;
|
|
24
|
-
onImageSizeUpdated?: (imageSize?: TImageSize) => void;
|
|
25
29
|
topButtons?: ReactNode;
|
|
26
|
-
|
|
27
|
-
}
|
|
28
|
-
export interface IImagePickerInput {
|
|
29
|
-
id: string;
|
|
30
|
-
allowedExtensions: TImagePickerExtension[];
|
|
31
|
-
isDragOver: boolean;
|
|
30
|
+
file: ImagePickerFileObject | null;
|
|
32
31
|
}
|
|
33
32
|
export interface IImagePickerPreviewContainer {
|
|
34
33
|
children: ReactNode;
|
|
@@ -39,21 +38,14 @@ export declare type TImageSize = {
|
|
|
39
38
|
height: number;
|
|
40
39
|
};
|
|
41
40
|
export interface IUseImagePicker {
|
|
41
|
+
updateFile: (file: File | null) => void;
|
|
42
42
|
onDropFile: (event: React.DragEvent<HTMLDivElement>) => void;
|
|
43
43
|
onDragOver: (event: React.DragEvent<HTMLDivElement>) => void;
|
|
44
44
|
onDragLeave: (event: React.DragEvent<HTMLDivElement>) => void;
|
|
45
|
-
onFileChange: (event: ChangeEvent<HTMLInputElement>) => void;
|
|
46
|
-
onFileDelete: () => void;
|
|
47
|
-
onPreviewError: () => void;
|
|
48
|
-
changeFile: (files: FileList) => void;
|
|
49
|
-
file: TImagePickerFile | undefined;
|
|
50
|
-
isPreview: boolean;
|
|
51
45
|
isDragOver: boolean;
|
|
52
46
|
}
|
|
53
47
|
export interface IUseImagePickerProps {
|
|
54
|
-
onChange?: (file:
|
|
55
|
-
initialFile?: TImagePickerFile;
|
|
48
|
+
onChange?: (file: File | null) => void;
|
|
56
49
|
allowedExtensions?: TImagePickerExtension[];
|
|
57
|
-
inputRef: React.RefObject<HTMLInputElement>;
|
|
58
50
|
onError?: (errors: string[]) => void;
|
|
59
51
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"image_picker_types.js","sourceRoot":"","sources":["../../../../../../../src/components/image_picker/image_picker_types.ts"],"names":[],"mappings":"AAAA,OAA8D,0BAA0B,CAAC;AACzF,
|
|
1
|
+
{"version":3,"file":"image_picker_types.js","sourceRoot":"","sources":["../../../../../../../src/components/image_picker/image_picker_types.ts"],"names":[],"mappings":"AAAA,OAA8D,0BAA0B,CAAC;AACzF,OAAiC,OAAO,CAAC;AAEzC,OAA+B,yCAAyC,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { IUseImagePicker, IUseImagePickerProps } from './image_picker_types';
|
|
2
|
-
export declare const useImagePicker: ({ onChange,
|
|
2
|
+
export declare const useImagePicker: ({ onChange, allowedExtensions, onError }: IUseImagePickerProps) => IUseImagePicker;
|
|
@@ -1,55 +1,18 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { useMemo, useState, useRef, useCallback } from 'react';
|
|
2
2
|
import { i18n } from '../../i18n.js';
|
|
3
3
|
import { slicedToArray as _slicedToArray } from '../../../../../_virtual/_rollupPluginBabelHelpers.js';
|
|
4
4
|
import { MIME_TYPE_TO_FILE_EXTENSIONS, IMAGE_PICKER_ERROR } from './image_picker_constants.js';
|
|
5
5
|
|
|
6
6
|
var useImagePicker = function useImagePicker(_ref) {
|
|
7
7
|
var onChange = _ref.onChange,
|
|
8
|
-
initialFile = _ref.initialFile,
|
|
9
8
|
allowedExtensions = _ref.allowedExtensions,
|
|
10
|
-
inputRef = _ref.inputRef,
|
|
11
9
|
onError = _ref.onError;
|
|
12
|
-
var
|
|
13
|
-
var _useState = useState(initialFile),
|
|
10
|
+
var _useState = useState(false),
|
|
14
11
|
_useState2 = _slicedToArray(_useState, 2),
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
var _useState3 = useState(false),
|
|
18
|
-
_useState4 = _slicedToArray(_useState3, 2),
|
|
19
|
-
isDragOver = _useState4[0],
|
|
20
|
-
setDragOver = _useState4[1];
|
|
21
|
-
var _useState5 = useState(true),
|
|
22
|
-
_useState6 = _slicedToArray(_useState5, 2),
|
|
23
|
-
isPreview = _useState6[0],
|
|
24
|
-
setPreview = _useState6[1];
|
|
25
|
-
var reader = useRef(new FileReader());
|
|
12
|
+
isDragOver = _useState2[0],
|
|
13
|
+
setDragOver = _useState2[1];
|
|
26
14
|
var dragTimeoutRef = useRef(null);
|
|
27
|
-
|
|
28
|
-
reader.current.result && getDataUrlFromFile(reader.current.result);
|
|
29
|
-
reader.current.addEventListener('load', function () {
|
|
30
|
-
return getDataUrlFromFile(reader.current.result);
|
|
31
|
-
}, false);
|
|
32
|
-
return function () {
|
|
33
|
-
return reader.current.removeEventListener('load', function () {
|
|
34
|
-
return getDataUrlFromFile(reader.current.result);
|
|
35
|
-
});
|
|
36
|
-
};
|
|
37
|
-
}, []);
|
|
38
|
-
useEffect(function () {
|
|
39
|
-
setFile(initialFile);
|
|
40
|
-
}, [initialFile]);
|
|
41
|
-
var onDropFile = function onDropFile(event) {
|
|
42
|
-
onError === null || onError === void 0 ? void 0 : onError([]);
|
|
43
|
-
event.stopPropagation();
|
|
44
|
-
event.preventDefault();
|
|
45
|
-
setDragOver(false);
|
|
46
|
-
var files = event.dataTransfer.files;
|
|
47
|
-
if (!files.length) return;
|
|
48
|
-
var isValid = validateFileExtension(allowedExtensions, files[0].type);
|
|
49
|
-
if (!isValid) return;
|
|
50
|
-
updateFile(files);
|
|
51
|
-
};
|
|
52
|
-
var validateFileExtension = function validateFileExtension(allowedExtensions, mimeType) {
|
|
15
|
+
var validateFileExtension = useCallback(function (allowedExtensions, mimeType) {
|
|
53
16
|
if (!allowedExtensions) return true;
|
|
54
17
|
var isValid = allowedExtensions.reduce(function (acc, extension) {
|
|
55
18
|
return acc ? acc : MIME_TYPE_TO_FILE_EXTENSIONS[mimeType] === extension;
|
|
@@ -58,41 +21,28 @@ var useImagePicker = function useImagePicker(_ref) {
|
|
|
58
21
|
onError === null || onError === void 0 ? void 0 : onError([i18n.t(IMAGE_PICKER_ERROR.invalidFileFormat)]);
|
|
59
22
|
}
|
|
60
23
|
return isValid;
|
|
61
|
-
};
|
|
62
|
-
var
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
var updateFile = function updateFile(files) {
|
|
70
|
-
if (files !== null && files !== void 0 && files.length) {
|
|
71
|
-
fileListRef.current = files;
|
|
72
|
-
reader.current.readAsDataURL(files[0]);
|
|
73
|
-
setFile({
|
|
74
|
-
fileName: files === null || files === void 0 ? void 0 : files[0].name,
|
|
75
|
-
fileUrl: URL.createObjectURL(files === null || files === void 0 ? void 0 : files[0])
|
|
76
|
-
});
|
|
77
|
-
var isValid = validateFileExtension(allowedExtensions, files[0].type);
|
|
78
|
-
if (isValid) onChange === null || onChange === void 0 ? void 0 : onChange({
|
|
79
|
-
fileList: files
|
|
80
|
-
});
|
|
24
|
+
}, [onError]);
|
|
25
|
+
var updateFile = useCallback(function (file) {
|
|
26
|
+
if (file) {
|
|
27
|
+
var isValid = validateFileExtension(allowedExtensions, file.type);
|
|
28
|
+
if (isValid) {
|
|
29
|
+
onError === null || onError === void 0 ? void 0 : onError([]);
|
|
30
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(file);
|
|
31
|
+
}
|
|
81
32
|
} else {
|
|
82
|
-
|
|
83
|
-
onChange === null || onChange === void 0 ? void 0 : onChange(
|
|
84
|
-
fileList: files
|
|
85
|
-
});
|
|
33
|
+
onError === null || onError === void 0 ? void 0 : onError([]);
|
|
34
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(null);
|
|
86
35
|
}
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
36
|
+
}, [allowedExtensions, onChange, onError, validateFileExtension]);
|
|
37
|
+
var onDropFile = useCallback(function (event) {
|
|
38
|
+
event.stopPropagation();
|
|
39
|
+
event.preventDefault();
|
|
40
|
+
setDragOver(false);
|
|
41
|
+
var files = event.dataTransfer.files;
|
|
42
|
+
if (!files.length) return;
|
|
43
|
+
updateFile(files[0]);
|
|
44
|
+
}, [updateFile]);
|
|
45
|
+
var onDragOver = useCallback(function (event) {
|
|
96
46
|
var dt = event.dataTransfer;
|
|
97
47
|
if (!dt.types || !(dt.types.indexOf ? dt.types.indexOf('Files') != -1 : dt.types.includes('Files'))) {
|
|
98
48
|
return;
|
|
@@ -102,38 +52,22 @@ var useImagePicker = function useImagePicker(_ref) {
|
|
|
102
52
|
event.dataTransfer.dropEffect = 'copy';
|
|
103
53
|
setDragOver(true);
|
|
104
54
|
dragTimeoutRef.current && window.clearTimeout(dragTimeoutRef.current);
|
|
105
|
-
};
|
|
106
|
-
var onDragLeave = function
|
|
55
|
+
}, []);
|
|
56
|
+
var onDragLeave = useCallback(function () {
|
|
107
57
|
dragTimeoutRef.current = setTimeout(function () {
|
|
108
58
|
setDragOver(false);
|
|
109
59
|
dragTimeoutRef.current = null;
|
|
110
60
|
}, 25);
|
|
111
|
-
};
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
};
|
|
122
|
-
var onPreviewError = function onPreviewError() {
|
|
123
|
-
setPreview(false);
|
|
124
|
-
};
|
|
125
|
-
return {
|
|
126
|
-
onDropFile: onDropFile,
|
|
127
|
-
onFileChange: onFileChange,
|
|
128
|
-
onDragOver: onDragOver,
|
|
129
|
-
onDragLeave: onDragLeave,
|
|
130
|
-
onFileDelete: onFileDelete,
|
|
131
|
-
onPreviewError: onPreviewError,
|
|
132
|
-
changeFile: changeFile,
|
|
133
|
-
file: file,
|
|
134
|
-
isPreview: isPreview,
|
|
135
|
-
isDragOver: isDragOver
|
|
136
|
-
};
|
|
61
|
+
}, []);
|
|
62
|
+
return useMemo(function () {
|
|
63
|
+
return {
|
|
64
|
+
updateFile: updateFile,
|
|
65
|
+
onDropFile: onDropFile,
|
|
66
|
+
onDragOver: onDragOver,
|
|
67
|
+
onDragLeave: onDragLeave,
|
|
68
|
+
isDragOver: isDragOver
|
|
69
|
+
};
|
|
70
|
+
}, [updateFile, isDragOver, onDragLeave, onDragOver, onDropFile]);
|
|
137
71
|
};
|
|
138
72
|
|
|
139
73
|
export { useImagePicker };
|
|
@@ -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;
|
|
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;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React__default, { forwardRef,
|
|
1
|
+
import React__default, { forwardRef, useState, useCallback, useRef, useEffect } from 'react';
|
|
2
2
|
import { useTranslation } from '../../../../../external/react-i18next/dist/es/useTranslation.js';
|
|
3
3
|
import { slicedToArray as _slicedToArray, objectSpread2 as _objectSpread2, asyncToGenerator as _asyncToGenerator, regeneratorRuntime as _regeneratorRuntime } from '../../../../../_virtual/_rollupPluginBabelHelpers.js';
|
|
4
4
|
import { Loader } from '../loader/loader.js';
|
|
@@ -15,12 +15,10 @@ var XhrImagePicker = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
15
15
|
var id = _ref.id,
|
|
16
16
|
url = _ref.url,
|
|
17
17
|
name = _ref.name,
|
|
18
|
-
onUploaded = _ref.onUploaded,
|
|
19
18
|
initialFile = _ref.initialFile,
|
|
20
19
|
errors = _ref.errors,
|
|
21
20
|
onError = _ref.onError,
|
|
22
21
|
onChange = _ref.onChange,
|
|
23
|
-
onImageSizeUpdated = _ref.onImageSizeUpdated,
|
|
24
22
|
_ref$allowedExtension = _ref.allowedExtensions,
|
|
25
23
|
allowedExtensions = _ref$allowedExtension === void 0 ? [IMAGE_PICKER_EXTENSIONS.WEBP, IMAGE_PICKER_EXTENSIONS.JPG, IMAGE_PICKER_EXTENSIONS.PNG, IMAGE_PICKER_EXTENSIONS.GIF, IMAGE_PICKER_EXTENSIONS.SVG, IMAGE_PICKER_EXTENSIONS.JPEG] : _ref$allowedExtension,
|
|
26
24
|
allowedExtensionsLabel = _ref.allowedExtensionsLabel,
|
|
@@ -30,165 +28,159 @@ var XhrImagePicker = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
30
28
|
t = _useTranslation2[0];
|
|
31
29
|
var httpApi = useHttpApi();
|
|
32
30
|
var pendingRequestRef = React__default.useRef();
|
|
33
|
-
var initialImageFile = useRef();
|
|
34
31
|
var _useModalsContext = useModalsContext(),
|
|
35
32
|
showModal = _useModalsContext.showModal,
|
|
36
33
|
hideModal = _useModalsContext.hideModal;
|
|
37
34
|
var modalId = "image-picker-editor-".concat(id);
|
|
38
|
-
var _useState = useState(),
|
|
35
|
+
var _useState = useState(initialFile ? _objectSpread2(_objectSpread2({}, initialFile), {}, {
|
|
36
|
+
fileExtension: FileUtils.getFileExtension(initialFile.fileName),
|
|
37
|
+
fileDataUrl: null,
|
|
38
|
+
size: null
|
|
39
|
+
}) : null),
|
|
39
40
|
_useState2 = _slicedToArray(_useState, 2),
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
var _useState3 = useState(),
|
|
41
|
+
image = _useState2[0],
|
|
42
|
+
setImage = _useState2[1];
|
|
43
|
+
var _useState3 = useState(false),
|
|
43
44
|
_useState4 = _slicedToArray(_useState3, 2),
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
var
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
setImageEditorSrc = _useState6[1];
|
|
50
|
-
var _useState7 = useState(),
|
|
51
|
-
_useState8 = _slicedToArray(_useState7, 2),
|
|
52
|
-
imageEditorResult = _useState8[0],
|
|
53
|
-
setImageEditorResult = _useState8[1];
|
|
54
|
-
var _useState9 = useState(false),
|
|
55
|
-
_useState10 = _slicedToArray(_useState9, 2),
|
|
56
|
-
isLoading = _useState10[0],
|
|
57
|
-
setIsLoading = _useState10[1];
|
|
58
|
-
var _useState11 = useState(),
|
|
59
|
-
_useState12 = _slicedToArray(_useState11, 2),
|
|
60
|
-
imageExtenstion = _useState12[0],
|
|
61
|
-
setImageExtenstion = _useState12[1];
|
|
62
|
-
var fileAsDataUrlRef = useRef(undefined);
|
|
63
|
-
var handleControlChange = /*#__PURE__*/function () {
|
|
64
|
-
var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(file) {
|
|
65
|
-
var fileList, fileAsDataUrl, _httpApi$fetch, response, cancelRequest, responseObject, _responseObject$data$, paths;
|
|
45
|
+
isLoading = _useState4[0],
|
|
46
|
+
setIsLoading = _useState4[1];
|
|
47
|
+
var createImageFromUrl = useCallback(/*#__PURE__*/function () {
|
|
48
|
+
var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(url) {
|
|
49
|
+
var img;
|
|
66
50
|
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
67
51
|
while (1) switch (_context.prev = _context.next) {
|
|
68
52
|
case 0:
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
53
|
+
img = new Image();
|
|
54
|
+
img.src = url;
|
|
55
|
+
_context.next = 4;
|
|
56
|
+
return img.decode();
|
|
57
|
+
case 4:
|
|
58
|
+
return _context.abrupt("return", img);
|
|
59
|
+
case 5:
|
|
60
|
+
case "end":
|
|
61
|
+
return _context.stop();
|
|
62
|
+
}
|
|
63
|
+
}, _callee);
|
|
64
|
+
}));
|
|
65
|
+
return function (_x) {
|
|
66
|
+
return _ref2.apply(this, arguments);
|
|
67
|
+
};
|
|
68
|
+
}(), []);
|
|
69
|
+
var initialFileUrl = initialFile === null || initialFile === void 0 ? void 0 : initialFile.fileUrl;
|
|
70
|
+
var imageUrlRef = useRef('');
|
|
71
|
+
var imageSize = image === null || image === void 0 ? void 0 : image.size;
|
|
72
|
+
useEffect(function () {
|
|
73
|
+
var setImageSizeBasedOnUrl = function setImageSizeBasedOnUrl(fileUrl) {
|
|
74
|
+
createImageFromUrl(fileUrl).then(function (image) {
|
|
75
|
+
var size = {
|
|
76
|
+
width: image.naturalWidth,
|
|
77
|
+
height: image.naturalHeight
|
|
78
|
+
};
|
|
79
|
+
setImage(function (img) {
|
|
80
|
+
return img ? _objectSpread2(_objectSpread2({}, img), {}, {
|
|
81
|
+
size: size
|
|
82
|
+
}) : null;
|
|
83
|
+
});
|
|
84
|
+
});
|
|
85
|
+
};
|
|
86
|
+
if (!!initialFileUrl && imageUrlRef.current !== initialFileUrl) {
|
|
87
|
+
imageUrlRef.current = initialFileUrl;
|
|
88
|
+
if (!imageSize) setImageSizeBasedOnUrl(initialFileUrl);
|
|
89
|
+
}
|
|
90
|
+
}, [createImageFromUrl, imageSize, initialFileUrl]);
|
|
91
|
+
var handleControlChange = useCallback(/*#__PURE__*/function () {
|
|
92
|
+
var _ref3 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2(file) {
|
|
93
|
+
var _responseObject$data$2;
|
|
94
|
+
var _httpApi$fetch, response, cancelRequest, responseObject, _responseObject$data$, img, size, newImage, paths;
|
|
95
|
+
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
96
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
97
|
+
case 0:
|
|
82
98
|
if (pendingRequestRef.current) {
|
|
83
99
|
pendingRequestRef.current();
|
|
84
100
|
pendingRequestRef.current = undefined;
|
|
85
101
|
}
|
|
102
|
+
if (file) {
|
|
103
|
+
_context2.next = 5;
|
|
104
|
+
break;
|
|
105
|
+
}
|
|
106
|
+
setImage(null);
|
|
107
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(null);
|
|
108
|
+
return _context2.abrupt("return");
|
|
109
|
+
case 5:
|
|
86
110
|
setIsLoading(true);
|
|
87
111
|
_httpApi$fetch = httpApi.fetch({
|
|
88
112
|
url: url,
|
|
89
113
|
method: REQUEST_TYPES.post,
|
|
90
|
-
data:
|
|
114
|
+
data: file
|
|
91
115
|
}), response = _httpApi$fetch.response, cancelRequest = _httpApi$fetch.cancelRequest;
|
|
92
116
|
pendingRequestRef.current = cancelRequest;
|
|
93
|
-
|
|
94
|
-
|
|
117
|
+
_context2.prev = 8;
|
|
118
|
+
_context2.next = 11;
|
|
95
119
|
return response;
|
|
96
|
-
case
|
|
97
|
-
responseObject =
|
|
98
|
-
|
|
120
|
+
case 11:
|
|
121
|
+
responseObject = _context2.sent;
|
|
122
|
+
_context2.next = 18;
|
|
99
123
|
break;
|
|
100
|
-
case
|
|
101
|
-
|
|
102
|
-
|
|
124
|
+
case 14:
|
|
125
|
+
_context2.prev = 14;
|
|
126
|
+
_context2.t0 = _context2["catch"](8);
|
|
103
127
|
onError === null || onError === void 0 ? void 0 : onError([t('File upload failed')]);
|
|
104
|
-
case 19:
|
|
105
|
-
_context.prev = 19;
|
|
106
128
|
setIsLoading(false);
|
|
107
|
-
|
|
108
|
-
case 22:
|
|
129
|
+
case 18:
|
|
109
130
|
if (responseObject) {
|
|
110
|
-
|
|
131
|
+
_context2.next = 20;
|
|
111
132
|
break;
|
|
112
133
|
}
|
|
113
|
-
return
|
|
114
|
-
case
|
|
134
|
+
return _context2.abrupt("return");
|
|
135
|
+
case 20:
|
|
115
136
|
if (!(responseObject.data.isSuccess === false)) {
|
|
116
|
-
|
|
137
|
+
_context2.next = 23;
|
|
117
138
|
break;
|
|
118
139
|
}
|
|
119
140
|
onError === null || onError === void 0 ? void 0 : onError((_responseObject$data$ = responseObject.data.messages) !== null && _responseObject$data$ !== void 0 ? _responseObject$data$ : [t('File upload failed')]);
|
|
120
|
-
return
|
|
121
|
-
case
|
|
141
|
+
return _context2.abrupt("return");
|
|
142
|
+
case 23:
|
|
143
|
+
_context2.next = 25;
|
|
144
|
+
return createImageFromUrl(URL.createObjectURL(file));
|
|
145
|
+
case 25:
|
|
146
|
+
img = _context2.sent;
|
|
147
|
+
size = {
|
|
148
|
+
width: img.naturalWidth,
|
|
149
|
+
height: img.naturalHeight
|
|
150
|
+
};
|
|
151
|
+
newImage = {
|
|
152
|
+
fileName: file.name,
|
|
153
|
+
fileUrl: (_responseObject$data$2 = responseObject.data.imagePath) !== null && _responseObject$data$2 !== void 0 ? _responseObject$data$2 : URL.createObjectURL(file),
|
|
154
|
+
fileExtension: FileUtils.getFileExtension(file.name),
|
|
155
|
+
fileDataUrl: URL.createObjectURL(file),
|
|
156
|
+
size: size
|
|
157
|
+
};
|
|
122
158
|
if (responseObject.data.imagePath) {
|
|
123
159
|
paths = {
|
|
124
160
|
original: responseObject.data.imagePath
|
|
125
161
|
};
|
|
126
162
|
}
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
163
|
+
setImage(newImage);
|
|
164
|
+
setIsLoading(false);
|
|
165
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(_objectSpread2(_objectSpread2({}, newImage), {}, {
|
|
130
166
|
imageId: responseObject.data.imageId,
|
|
131
167
|
paths: paths
|
|
132
|
-
});
|
|
133
|
-
case
|
|
168
|
+
}));
|
|
169
|
+
case 32:
|
|
134
170
|
case "end":
|
|
135
|
-
return
|
|
171
|
+
return _context2.stop();
|
|
136
172
|
}
|
|
137
|
-
},
|
|
173
|
+
}, _callee2, null, [[8, 14]]);
|
|
138
174
|
}));
|
|
139
|
-
return function
|
|
140
|
-
return
|
|
175
|
+
return function (_x2) {
|
|
176
|
+
return _ref3.apply(this, arguments);
|
|
141
177
|
};
|
|
142
|
-
}();
|
|
143
|
-
useEffect(function () {
|
|
144
|
-
if (initialFile) {
|
|
145
|
-
setImageExtenstion(FileUtils.getFileExtension(initialFile === null || initialFile === void 0 ? void 0 : initialFile.fileName));
|
|
146
|
-
initialImageFile.current = initialFile;
|
|
147
|
-
var setFileFromUrl = /*#__PURE__*/function () {
|
|
148
|
-
var _ref3 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2(fileData) {
|
|
149
|
-
var response, data, file;
|
|
150
|
-
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
151
|
-
while (1) switch (_context2.prev = _context2.next) {
|
|
152
|
-
case 0:
|
|
153
|
-
_context2.next = 2;
|
|
154
|
-
return fetch(fileData.fileUrl);
|
|
155
|
-
case 2:
|
|
156
|
-
response = _context2.sent;
|
|
157
|
-
_context2.next = 5;
|
|
158
|
-
return response.blob();
|
|
159
|
-
case 5:
|
|
160
|
-
data = _context2.sent;
|
|
161
|
-
file = new File([data], fileData.fileName);
|
|
162
|
-
setInitialImage(file);
|
|
163
|
-
case 8:
|
|
164
|
-
case "end":
|
|
165
|
-
return _context2.stop();
|
|
166
|
-
}
|
|
167
|
-
}, _callee2);
|
|
168
|
-
}));
|
|
169
|
-
return function setFileFromUrl(_x2) {
|
|
170
|
-
return _ref3.apply(this, arguments);
|
|
171
|
-
};
|
|
172
|
-
}();
|
|
173
|
-
if (!initialImageFile.current) return;
|
|
174
|
-
setFileFromUrl(initialImageFile.current);
|
|
175
|
-
}
|
|
176
|
-
}, []);
|
|
177
|
-
useEffect(function () {
|
|
178
|
-
image && setImageExtenstion(FileUtils.getFileExtension(image === null || image === void 0 ? void 0 : image.name));
|
|
179
|
-
}, [image]);
|
|
180
|
-
useEffect(function () {
|
|
181
|
-
var src = image !== null && image !== void 0 ? image : initialImage;
|
|
182
|
-
setImageEditorSrc(src !== null && src !== void 0 ? src : '');
|
|
183
|
-
}, [image, initialImage, isLoading]);
|
|
178
|
+
}(), [createImageFromUrl, httpApi, onChange, onError, t, url]);
|
|
184
179
|
useEffect(function () {
|
|
185
180
|
return function () {
|
|
186
181
|
if (pendingRequestRef.current) pendingRequestRef.current();
|
|
187
182
|
};
|
|
188
183
|
}, []);
|
|
189
|
-
var renderImageEditor = function renderImageEditor(defaultProps) {
|
|
190
|
-
return ImageEditor ? (/*#__PURE__*/React__default.createElement("div", null, /*#__PURE__*/React__default.createElement(ImageEditor, _objectSpread2({}, defaultProps)))) : null;
|
|
191
|
-
};
|
|
192
184
|
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement("div", {
|
|
193
185
|
className: "aurora-relative"
|
|
194
186
|
}, isLoading && (/*#__PURE__*/React__default.createElement("div", {
|
|
@@ -205,9 +197,8 @@ var XhrImagePicker = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
205
197
|
errors: errors,
|
|
206
198
|
allowedExtensions: allowedExtensions,
|
|
207
199
|
allowedExtensionsLabel: allowedExtensionsLabel,
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
topButtons: !!ImageEditor && imageExtenstion !== 'svg' && (/*#__PURE__*/React__default.createElement("button", {
|
|
200
|
+
file: image,
|
|
201
|
+
topButtons: !!ImageEditor && image && image.fileExtension !== 'svg' && (/*#__PURE__*/React__default.createElement("button", {
|
|
211
202
|
onClick: function onClick(e) {
|
|
212
203
|
e.preventDefault();
|
|
213
204
|
e.stopPropagation();
|
|
@@ -220,19 +211,19 @@ var XhrImagePicker = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
220
211
|
}), /*#__PURE__*/React__default.createElement("span", {
|
|
221
212
|
className: "aurora-text-xs aurora-text aurora-font-semibold"
|
|
222
213
|
}, "".concat(t('Edit'))))),
|
|
223
|
-
editedImageResult: imageEditorResult,
|
|
224
214
|
ref: ref
|
|
225
215
|
})), !!ImageEditor && (/*#__PURE__*/React__default.createElement(Modal, {
|
|
226
216
|
name: modalId,
|
|
227
217
|
header: /*#__PURE__*/React__default.createElement(React__default.Fragment, null, t('Edit image')),
|
|
228
218
|
width: "l"
|
|
229
|
-
},
|
|
230
|
-
src:
|
|
219
|
+
}, /*#__PURE__*/React__default.createElement("div", null, /*#__PURE__*/React__default.createElement(ImageEditor, {
|
|
220
|
+
src: image === null || image === void 0 ? void 0 : image.fileUrl,
|
|
231
221
|
onEditionDone: function onEditionDone(result) {
|
|
232
222
|
hideModal(modalId);
|
|
233
|
-
|
|
223
|
+
if (!result) return;
|
|
224
|
+
handleControlChange(result);
|
|
234
225
|
}
|
|
235
|
-
}))));
|
|
226
|
+
})))));
|
|
236
227
|
});
|
|
237
228
|
XhrImagePicker.displayName = 'XhrImagePicker';
|
|
238
229
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA,+BAA+B,iEAAqE;AACpG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,+BAA+B,iEAAqE;AACpG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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/esm/packages/aurora/src/components/xhr_image_picker/xhr_image_picker_types.d.ts
CHANGED
|
@@ -1,18 +1,16 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
import { IImagePicker } from "../image_picker/image_picker_types";
|
|
3
|
-
export interface IXhrImagePickerProps extends Omit<IImagePicker, 'topButtons'> {
|
|
2
|
+
import { IImagePicker, ImagePickerFileObject, TImagePickerFile } from "../image_picker/image_picker_types";
|
|
3
|
+
export interface IXhrImagePickerProps extends Omit<IImagePicker, 'topButtons' | 'onChange' | 'file'> {
|
|
4
4
|
url: string;
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
initialFile?: TImagePickerFile;
|
|
6
|
+
onChange?: (val: TUploadedImageData | null) => void;
|
|
7
7
|
ImageEditor?: React.FunctionComponent<IImageEditorProps>;
|
|
8
8
|
}
|
|
9
9
|
export interface IImageEditorProps {
|
|
10
10
|
src?: File | string;
|
|
11
11
|
onEditionDone?: (result: File | undefined) => void;
|
|
12
12
|
}
|
|
13
|
-
export declare type TUploadedImageData = {
|
|
14
|
-
fileList: FileList;
|
|
15
|
-
dataUrl: string | ArrayBuffer | null | undefined;
|
|
13
|
+
export declare type TUploadedImageData = ImagePickerFileObject & {
|
|
16
14
|
imageId: string;
|
|
17
15
|
paths?: Record<any, any>;
|
|
18
16
|
};
|
package/build/esm/packages/aurora/src/components/xhr_image_picker/xhr_image_picker_types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xhr_image_picker_types.js","sourceRoot":"","sources":["../../../../../../../src/components/xhr_image_picker/xhr_image_picker_types.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"xhr_image_picker_types.js","sourceRoot":"","sources":["../../../../../../../src/components/xhr_image_picker/xhr_image_picker_types.ts"],"names":[],"mappings":"AAAA,OAAsE,mDAAmD,CAAC"}
|