@bigbinary/neeto-image-uploader-frontend 1.5.23 → 1.5.25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +19 -9
- package/dist/index.cjs.js +28 -13
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.js +29 -14
- package/dist/index.js.map +1 -1
- package/package.json +12 -12
- package/types.d.ts +1 -0
package/README.md
CHANGED
|
@@ -2,15 +2,24 @@
|
|
|
2
2
|
The `neeto-image-uploader-nano` manages assets across neeto products. The nano exports the `@bigbinary/neeto-image-uploader-frontend` NPM package and `neeto-image-uploader-engine` Rails engine for development.
|
|
3
3
|
|
|
4
4
|
# Contents
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
5
|
+
- [neeto-image-uploader-nano](#neeto-image-uploader-nano)
|
|
6
|
+
- [Contents](#contents)
|
|
7
|
+
- [Development with Host Application](#development-with-host-application)
|
|
8
|
+
- [Engine](#engine)
|
|
9
|
+
- [Installation](#installation)
|
|
10
|
+
- [Frontend package](#frontend-package)
|
|
11
|
+
- [Installation](#installation-1)
|
|
12
|
+
- [Components](#components)
|
|
13
|
+
- [1. `AssetLibrary` (source code)](#1-assetlibrary-source-code)
|
|
14
|
+
- [2. `ImageUploader` (source code)](#2-imageuploader-source-code)
|
|
15
|
+
- [3. `BasicImageUploader` (source code)](#3-basicimageuploader-source-code)
|
|
16
|
+
- [Hooks](#hooks)
|
|
17
|
+
- [1. `useImageUpload` (source code)](#1-useimageupload-source-code)
|
|
18
|
+
- [Import the hook](#import-the-hook)
|
|
19
|
+
- [Invoke the hook](#invoke-the-hook)
|
|
20
|
+
- [Call uploadImage to Upload an Image](#call-uploadimage-to-upload-an-image)
|
|
21
|
+
- [Upload Config](#upload-config)
|
|
22
|
+
- [Instructions for Publishing](#instructions-for-publishing)
|
|
14
23
|
|
|
15
24
|
# Development with Host Application
|
|
16
25
|
## Engine
|
|
@@ -96,6 +105,7 @@ export default App;
|
|
|
96
105
|
- `className`: Additional classes to be applied to the component.
|
|
97
106
|
- `src`: The source URL of the image to be displayed initially.
|
|
98
107
|
- `uploadConfig`: Configuration object for image uploads.
|
|
108
|
+
- `fixedAspectRatio`: An option to maintain a specific aspect ratio for the image. Expected input format is {height: number, width: number}.
|
|
99
109
|
|
|
100
110
|
**Usage**
|
|
101
111
|
```jsx
|
package/dist/index.cjs.js
CHANGED
|
@@ -2103,7 +2103,7 @@ var ImageDirectUpload = function ImageDirectUpload(_ref) {
|
|
|
2103
2103
|
})
|
|
2104
2104
|
}), /*#__PURE__*/React__default["default"].createElement("div", {
|
|
2105
2105
|
className: "flex flex-col space-y-1"
|
|
2106
|
-
}, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
|
|
2106
|
+
}, !isDisabled && /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
|
|
2107
2107
|
className: "neeto-ui-text-gray-800 text-center leading-4",
|
|
2108
2108
|
style: "body2"
|
|
2109
2109
|
}, /*#__PURE__*/React__default["default"].createElement(reactI18next.Trans, {
|
|
@@ -2842,11 +2842,12 @@ var isNotNilOrEmpty = function isNotNilOrEmpty(value) {
|
|
|
2842
2842
|
};
|
|
2843
2843
|
var onImageLoaded = function onImageLoaded(_ref3) {
|
|
2844
2844
|
var image = _ref3.image,
|
|
2845
|
-
setCrop = _ref3.setCrop
|
|
2845
|
+
setCrop = _ref3.setCrop,
|
|
2846
|
+
_ref3$cropAspectRatio = _ref3.cropAspectRatio,
|
|
2847
|
+
cropAspectRatio = _ref3$cropAspectRatio === void 0 ? 16 / 9 : _ref3$cropAspectRatio;
|
|
2846
2848
|
var width = image.width,
|
|
2847
2849
|
height = image.height;
|
|
2848
2850
|
var imageAspectRatio = width / height;
|
|
2849
|
-
var cropAspectRatio = 16 / 9;
|
|
2850
2851
|
var maxCropWidth = 250;
|
|
2851
2852
|
var maxCropHeight = maxCropWidth / cropAspectRatio;
|
|
2852
2853
|
var cropWidth, cropHeight;
|
|
@@ -3639,7 +3640,9 @@ var Controls = function Controls(_ref) {
|
|
|
3639
3640
|
setCrop = _ref.setCrop,
|
|
3640
3641
|
imageRef = _ref.imageRef,
|
|
3641
3642
|
isFullImage = _ref.isFullImage,
|
|
3642
|
-
setIsFullImage = _ref.setIsFullImage
|
|
3643
|
+
setIsFullImage = _ref.setIsFullImage,
|
|
3644
|
+
_ref$hideControls = _ref.hideControls,
|
|
3645
|
+
hideControls = _ref$hideControls === void 0 ? false : _ref$hideControls;
|
|
3643
3646
|
var _useTranslation = reactI18next.useTranslation(),
|
|
3644
3647
|
t = _useTranslation.t;
|
|
3645
3648
|
var _useState = React.useState(crop.height.toFixed(0)),
|
|
@@ -3680,7 +3683,7 @@ var Controls = function Controls(_ref) {
|
|
|
3680
3683
|
}, [crop]);
|
|
3681
3684
|
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
3682
3685
|
className: "flex flex-col p-4 md:w-2/6 "
|
|
3683
|
-
}, /*#__PURE__*/React__default["default"].createElement(neetoui.Switch, {
|
|
3686
|
+
}, !hideControls && /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(neetoui.Switch, {
|
|
3684
3687
|
checked: isFullImage,
|
|
3685
3688
|
className: "flex-grow-0",
|
|
3686
3689
|
label: t("neetoImageUploader.labels.selectOriginalImage"),
|
|
@@ -3714,7 +3717,7 @@ var Controls = function Controls(_ref) {
|
|
|
3714
3717
|
type: "number",
|
|
3715
3718
|
value: aspectRatio.height,
|
|
3716
3719
|
onChange: utils.withEventTargetValue(handleAspectHeightChange)
|
|
3717
|
-
})), /*#__PURE__*/React__default["default"].createElement(neetoui.Input, {
|
|
3720
|
+
}))), /*#__PURE__*/React__default["default"].createElement(neetoui.Input, {
|
|
3718
3721
|
className: "mt-4 flex-grow-0",
|
|
3719
3722
|
disabled: isFullImage,
|
|
3720
3723
|
label: t("neetoImageUploader.labels.width"),
|
|
@@ -3743,7 +3746,9 @@ var ImageEditor = function ImageEditor(_ref) {
|
|
|
3743
3746
|
_ref$handleImageEditC = _ref.handleImageEditComplete,
|
|
3744
3747
|
handleImageEditComplete = _ref$handleImageEditC === void 0 ? neetoCist.noop : _ref$handleImageEditC,
|
|
3745
3748
|
_ref$signedId = _ref.signedId,
|
|
3746
|
-
signedId = _ref$signedId === void 0 ? "" : _ref$signedId
|
|
3749
|
+
signedId = _ref$signedId === void 0 ? "" : _ref$signedId,
|
|
3750
|
+
_ref$fixedAspectRatio = _ref.fixedAspectRatio,
|
|
3751
|
+
fixedAspectRatio = _ref$fixedAspectRatio === void 0 ? {} : _ref$fixedAspectRatio;
|
|
3747
3752
|
var _useState = React.useState(true),
|
|
3748
3753
|
_useState2 = _slicedToArray$2(_useState, 2),
|
|
3749
3754
|
isAspectRatioLocked = _useState2[0],
|
|
@@ -3753,8 +3758,8 @@ var ImageEditor = function ImageEditor(_ref) {
|
|
|
3753
3758
|
isFullImage = _useState4[0],
|
|
3754
3759
|
setIsFullImage = _useState4[1];
|
|
3755
3760
|
var _useState5 = React.useState({
|
|
3756
|
-
width: 16,
|
|
3757
|
-
height: 9
|
|
3761
|
+
width: (fixedAspectRatio === null || fixedAspectRatio === void 0 ? void 0 : fixedAspectRatio.width) || 16,
|
|
3762
|
+
height: (fixedAspectRatio === null || fixedAspectRatio === void 0 ? void 0 : fixedAspectRatio.height) || 9
|
|
3758
3763
|
}),
|
|
3759
3764
|
_useState6 = _slicedToArray$2(_useState5, 2),
|
|
3760
3765
|
aspectRatio = _useState6[0],
|
|
@@ -3769,6 +3774,7 @@ var ImageEditor = function ImageEditor(_ref) {
|
|
|
3769
3774
|
cropImage = _useCropImage.mutate;
|
|
3770
3775
|
var imageRef = React.useRef(null);
|
|
3771
3776
|
var wrapperRef = React.useRef(null);
|
|
3777
|
+
var cropAspectRatio = neetoCist.isPresent(fixedAspectRatio === null || fixedAspectRatio === void 0 ? void 0 : fixedAspectRatio.width) && neetoCist.isPresent(fixedAspectRatio.height) ? (fixedAspectRatio === null || fixedAspectRatio === void 0 ? void 0 : fixedAspectRatio.width) / (fixedAspectRatio === null || fixedAspectRatio === void 0 ? void 0 : fixedAspectRatio.height) : 16 / 9;
|
|
3772
3778
|
var processCrop = function processCrop() {
|
|
3773
3779
|
if (isFullImage) {
|
|
3774
3780
|
handleImageEditComplete(image);
|
|
@@ -3812,7 +3818,7 @@ var ImageEditor = function ImageEditor(_ref) {
|
|
|
3812
3818
|
style: "text",
|
|
3813
3819
|
onClick: handleReset
|
|
3814
3820
|
}), /*#__PURE__*/React__default["default"].createElement("div", {
|
|
3815
|
-
className: "flex h-full w-full flex-col gap-2 overflow-y-scroll md:flex-row
|
|
3821
|
+
className: "flex h-full w-full flex-col gap-2 overflow-y-scroll md:flex-row md:overflow-y-auto"
|
|
3816
3822
|
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
3817
3823
|
id: "imageEditor",
|
|
3818
3824
|
ref: wrapperRef,
|
|
@@ -3836,7 +3842,8 @@ var ImageEditor = function ImageEditor(_ref) {
|
|
|
3836
3842
|
onLoad: function onLoad(e) {
|
|
3837
3843
|
return onImageLoaded({
|
|
3838
3844
|
image: e.target,
|
|
3839
|
-
setCrop: setCrop
|
|
3845
|
+
setCrop: setCrop,
|
|
3846
|
+
cropAspectRatio: cropAspectRatio
|
|
3840
3847
|
});
|
|
3841
3848
|
}
|
|
3842
3849
|
}))), /*#__PURE__*/React__default["default"].createElement(Controls, {
|
|
@@ -3849,6 +3856,7 @@ var ImageEditor = function ImageEditor(_ref) {
|
|
|
3849
3856
|
setAspectRatio: setAspectRatio,
|
|
3850
3857
|
setCrop: setCrop,
|
|
3851
3858
|
setIsFullImage: setIsFullImage,
|
|
3859
|
+
hideControls: neetoCist.isPresent(fixedAspectRatio),
|
|
3852
3860
|
setAspectRatioLocked: setIsAspectRatioLocked
|
|
3853
3861
|
})));
|
|
3854
3862
|
};
|
|
@@ -5036,7 +5044,9 @@ var Modal = function Modal(_ref) {
|
|
|
5036
5044
|
_ref$onUploadComplete = _ref.onUploadComplete,
|
|
5037
5045
|
onUploadComplete = _ref$onUploadComplete === void 0 ? neetoCist.noop : _ref$onUploadComplete,
|
|
5038
5046
|
_ref$uploadConfig = _ref.uploadConfig,
|
|
5039
|
-
uploadConfig = _ref$uploadConfig === void 0 ? {} : _ref$uploadConfig
|
|
5047
|
+
uploadConfig = _ref$uploadConfig === void 0 ? {} : _ref$uploadConfig,
|
|
5048
|
+
_ref$fixedAspectRatio = _ref.fixedAspectRatio,
|
|
5049
|
+
fixedAspectRatio = _ref$fixedAspectRatio === void 0 ? {} : _ref$fixedAspectRatio;
|
|
5040
5050
|
var _useState = React.useState(TABS[0].key),
|
|
5041
5051
|
_useState2 = _slicedToArray$2(_useState, 2),
|
|
5042
5052
|
activeTab = _useState2[0],
|
|
@@ -5119,6 +5129,7 @@ var Modal = function Modal(_ref) {
|
|
|
5119
5129
|
}, /*#__PURE__*/React__default["default"].createElement(neetoui.Spinner, null)), isNilOrEmpty(selectedImage) && isDragActive && /*#__PURE__*/React__default["default"].createElement("div", _extends$1({
|
|
5120
5130
|
className: "neeto-ui-rounded-xl neeto-ui-bg-gray-400 absolute flex h-full w-full flex-col items-center justify-around border-4 border-dashed border-gray-900 opacity-40"
|
|
5121
5131
|
}, getRootProps()), /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, null, t("neetoImageUploader.common.dropHere"))), !isNilOrEmpty(selectedImage) ? /*#__PURE__*/React__default["default"].createElement(ImageEditor, {
|
|
5132
|
+
fixedAspectRatio: fixedAspectRatio,
|
|
5122
5133
|
handleImageEditComplete: handleImageEditComplete,
|
|
5123
5134
|
handleReset: function handleReset() {
|
|
5124
5135
|
return setSelectedImage({});
|
|
@@ -5191,7 +5202,9 @@ var ImageUploader = function ImageUploader(_ref) {
|
|
|
5191
5202
|
_ref$src = _ref.src,
|
|
5192
5203
|
src = _ref$src === void 0 ? "" : _ref$src,
|
|
5193
5204
|
_ref$uploadConfig = _ref.uploadConfig,
|
|
5194
|
-
uploadConfig = _ref$uploadConfig === void 0 ? {} : _ref$uploadConfig
|
|
5205
|
+
uploadConfig = _ref$uploadConfig === void 0 ? {} : _ref$uploadConfig,
|
|
5206
|
+
_ref$fixedAspectRatio = _ref.fixedAspectRatio,
|
|
5207
|
+
fixedAspectRatio = _ref$fixedAspectRatio === void 0 ? {} : _ref$fixedAspectRatio;
|
|
5195
5208
|
var _useState = React.useState(false),
|
|
5196
5209
|
_useState2 = _slicedToArray$2(_useState, 2),
|
|
5197
5210
|
isAssetLibraryOpen = _useState2[0],
|
|
@@ -5304,9 +5317,11 @@ var ImageUploader = function ImageUploader(_ref) {
|
|
|
5304
5317
|
}), label);
|
|
5305
5318
|
})))) : /*#__PURE__*/React__default["default"].createElement(ImageDirectUpload, {
|
|
5306
5319
|
setIsAssetLibraryOpen: setIsAssetLibraryOpen,
|
|
5320
|
+
isDisabled: neetoCist.isPresent(fixedAspectRatio),
|
|
5307
5321
|
uploadConfig: uploadConfigWithDefaults,
|
|
5308
5322
|
onDrop: uploadFile
|
|
5309
5323
|
}), /*#__PURE__*/React__default["default"].createElement(Modal, {
|
|
5324
|
+
fixedAspectRatio: fixedAspectRatio,
|
|
5310
5325
|
isOpen: isAssetLibraryOpen,
|
|
5311
5326
|
uploadConfig: uploadConfigWithDefaults,
|
|
5312
5327
|
onClose: function onClose() {
|