oolib 2.63.0 → 2.63.2

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 (71) hide show
  1. package/dist/components/ImageInput/ImageInputContext.d.ts +29 -0
  2. package/dist/components/ImageInput/ImageInputContext.js +199 -0
  3. package/dist/components/ImageInput/comps/AspectRatioShell/index.d.ts +12 -0
  4. package/dist/components/ImageInput/comps/AspectRatioShell/index.js +61 -0
  5. package/dist/components/ImageInput/comps/AspectRatioShell/styled.d.ts +1 -0
  6. package/dist/components/ImageInput/comps/AspectRatioShell/styled.js +46 -0
  7. package/dist/components/ImageInput/comps/GallerySlider/comps/GalleryThumbnails/index.d.ts +5 -0
  8. package/dist/components/ImageInput/comps/GallerySlider/comps/GalleryThumbnails/index.js +94 -0
  9. package/dist/components/ImageInput/comps/GallerySlider/comps/GalleryThumbnails/styled.d.ts +5 -0
  10. package/dist/components/ImageInput/comps/GallerySlider/comps/GalleryThumbnails/styled.js +68 -0
  11. package/dist/components/ImageInput/comps/GallerySlider/comps/SliderShell/index.d.ts +7 -0
  12. package/dist/components/ImageInput/comps/GallerySlider/comps/SliderShell/index.js +58 -0
  13. package/dist/components/ImageInput/comps/GallerySlider/comps/SliderShell/styled.d.ts +5 -0
  14. package/dist/components/ImageInput/comps/GallerySlider/comps/SliderShell/styled.js +49 -0
  15. package/dist/components/ImageInput/comps/GallerySlider/index.d.ts +3 -0
  16. package/dist/components/ImageInput/comps/GallerySlider/index.js +69 -0
  17. package/dist/components/ImageInput/comps/GallerySlider/styled.d.ts +3 -0
  18. package/dist/components/ImageInput/comps/GallerySlider/styled.js +23 -0
  19. package/dist/components/ImageInput/comps/ImageEditor/comps/ConfirmDeleteModal/index.d.ts +6 -0
  20. package/dist/components/ImageInput/comps/ImageEditor/comps/ConfirmDeleteModal/index.js +20 -0
  21. package/dist/components/ImageInput/comps/ImageEditor/comps/EditToolbar/index.d.ts +15 -0
  22. package/dist/components/ImageInput/comps/ImageEditor/comps/EditToolbar/index.js +96 -0
  23. package/dist/components/ImageInput/comps/ImageEditor/comps/ImageActionsMenu/index.d.ts +12 -0
  24. package/dist/components/ImageInput/comps/ImageEditor/comps/ImageActionsMenu/index.js +80 -0
  25. package/dist/components/ImageInput/comps/ImageEditor/comps/ImageReposManager/index.d.ts +7 -0
  26. package/dist/components/ImageInput/comps/ImageEditor/comps/ImageReposManager/index.js +129 -0
  27. package/dist/components/ImageInput/comps/ImageEditor/comps/ImageReposManager/styled.d.ts +2 -0
  28. package/dist/components/ImageInput/comps/ImageEditor/comps/ImageReposManager/styled.js +14 -0
  29. package/dist/components/ImageInput/comps/ImageEditor/index.d.ts +26 -0
  30. package/dist/components/ImageInput/comps/ImageEditor/index.js +217 -0
  31. package/dist/components/ImageInput/comps/ImageEditor/styled.d.ts +4 -0
  32. package/dist/components/ImageInput/comps/ImageEditor/styled.js +72 -0
  33. package/dist/components/ImageInput/comps/ImageEditor/utils/calcAspectRatio.d.ts +1 -0
  34. package/dist/components/ImageInput/comps/ImageEditor/utils/calcAspectRatio.js +10 -0
  35. package/dist/components/ImageInput/comps/ImageEditor/utils/changesMadeToUnderEditImageData.d.ts +5 -0
  36. package/dist/components/ImageInput/comps/ImageEditor/utils/changesMadeToUnderEditImageData.js +27 -0
  37. package/dist/components/ImageInput/comps/ImageEditor/utils/decideIfFullWidthOrFullHeightImg.d.ts +5 -0
  38. package/dist/components/ImageInput/comps/ImageEditor/utils/decideIfFullWidthOrFullHeightImg.js +22 -0
  39. package/dist/components/ImageInput/comps/ImageEditor/utils/smallImageInputUIConditionsMet.d.ts +5 -0
  40. package/dist/components/ImageInput/comps/ImageEditor/utils/smallImageInputUIConditionsMet.js +8 -0
  41. package/dist/components/ImageInput/comps/ImageEditor/utils/useReorientImage/changeImageOrientation.d.ts +5 -0
  42. package/dist/components/ImageInput/comps/ImageEditor/utils/useReorientImage/changeImageOrientation.js +76 -0
  43. package/dist/components/ImageInput/comps/ImageEditor/utils/useReorientImage/index.d.ts +11 -0
  44. package/dist/components/ImageInput/comps/ImageEditor/utils/useReorientImage/index.js +66 -0
  45. package/dist/components/ImageInput/comps/ImageUploadShell/index.d.ts +7 -0
  46. package/dist/components/ImageInput/comps/ImageUploadShell/index.js +54 -0
  47. package/dist/components/ImageInput/comps/InlineImageInput/index.d.ts +2 -0
  48. package/dist/components/ImageInput/comps/InlineImageInput/index.js +19 -0
  49. package/dist/components/ImageInput/comps/Placeholder/index.d.ts +5 -0
  50. package/dist/components/ImageInput/comps/Placeholder/index.js +96 -0
  51. package/dist/components/ImageInput/comps/Placeholder/styled.d.ts +4 -0
  52. package/dist/components/ImageInput/comps/Placeholder/styled.js +41 -0
  53. package/dist/components/ImageInput/comps/SingleImageInput/index.d.ts +4 -0
  54. package/dist/components/ImageInput/comps/SingleImageInput/index.js +57 -0
  55. package/dist/components/ImageInput/derivedComps/ImageDisplayInMask/index.d.ts +6 -0
  56. package/dist/components/ImageInput/derivedComps/ImageDisplayInMask/index.js +53 -0
  57. package/dist/components/ImageInput/derivedComps/ImageDisplayInMask/styled.d.ts +1 -0
  58. package/dist/components/ImageInput/derivedComps/ImageDisplayInMask/styled.js +37 -0
  59. package/dist/components/ImageInput/index.d.ts +34 -0
  60. package/dist/components/ImageInput/index.js +72 -0
  61. package/dist/components/cards/CardContent/styled.js +1 -1
  62. package/dist/components/cards/ListContent/styled.js +1 -1
  63. package/dist/components/cards/comps/CardPlaceholder/index.js +9 -1
  64. package/dist/components/cards/styled.js +1 -1
  65. package/dist/index.d.ts +2 -0
  66. package/dist/index.js +6 -1
  67. package/dist/utilsOolib/infoAlertBannerFnPlaceholder.d.ts +4 -0
  68. package/dist/utilsOolib/infoAlertBannerFnPlaceholder.js +10 -0
  69. package/dist/utilsOolib/renderRTEPlaceholderForOolibPreview.d.ts +2 -0
  70. package/dist/utilsOolib/renderRTEPlaceholderForOolibPreview.js +25 -0
  71. package/package.json +1 -1
@@ -0,0 +1,217 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ var desc = Object.getOwnPropertyDescriptor(m, k);
16
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
17
+ desc = { enumerable: true, get: function() { return m[k]; } };
18
+ }
19
+ Object.defineProperty(o, k2, desc);
20
+ }) : (function(o, m, k, k2) {
21
+ if (k2 === undefined) k2 = k;
22
+ o[k2] = m[k];
23
+ }));
24
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
26
+ }) : function(o, v) {
27
+ o["default"] = v;
28
+ });
29
+ var __importStar = (this && this.__importStar) || function (mod) {
30
+ if (mod && mod.__esModule) return mod;
31
+ var result = {};
32
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
33
+ __setModuleDefault(result, mod);
34
+ return result;
35
+ };
36
+ var __importDefault = (this && this.__importDefault) || function (mod) {
37
+ return (mod && mod.__esModule) ? mod : { "default": mod };
38
+ };
39
+ Object.defineProperty(exports, "__esModule", { value: true });
40
+ exports.ImageEditor = void 0;
41
+ var react_1 = __importStar(require("react"));
42
+ var AspectRatioShell_1 = __importDefault(require("../AspectRatioShell"));
43
+ var Divider_1 = require("../../../Divider");
44
+ var Wrappers_1 = require("../../../Wrappers");
45
+ var Container_1 = require("../../../Container");
46
+ var Paddings_1 = require("../../../Paddings");
47
+ var ConfirmDeleteModal_1 = require("./comps/ConfirmDeleteModal");
48
+ var EditToolbar_1 = require("./comps/EditToolbar");
49
+ var ImageActionsMenu_1 = require("./comps/ImageActionsMenu");
50
+ var ImageReposManager_1 = require("./comps/ImageReposManager");
51
+ var styled_1 = require("./styled");
52
+ var smallImageInputUIConditionsMet_1 = require("./utils/smallImageInputUIConditionsMet");
53
+ var useReorientImage_1 = require("./utils/useReorientImage");
54
+ var styled_components_1 = require("styled-components");
55
+ var renderRTEPlaceholderForOolibPreview_1 = require("../../../../utilsOolib/renderRTEPlaceholderForOolibPreview");
56
+ var themes_1 = require("../../../../themes");
57
+ var ModalLarge_1 = require("../../../Modals/ModalLarge");
58
+ var SkeletonLoader_1 = require("../../../LoadersAndProgress/SkeletonLoader");
59
+ /**
60
+ * fiddle for dealing with rotation: https://jsfiddle.net/wunderbart/w1hw5kv1/
61
+ */
62
+ function ImageEditor(_a) {
63
+ var id = _a.id, readOnly = _a.readOnly, imageData = _a.value, defaultImageSpread = _a.defaultImageSpread, handleSingleImageDataChange = _a.handleSingleImageDataChange, handleDeleteSingleImage = _a.handleDeleteSingleImage, handleReplaceSingleImage = _a.handleReplaceSingleImage, aspectRatio = _a.aspectRatio, invert = _a.invert, handleUpload = _a.handleUpload, setImageUnderEdit = _a.setImageUnderEdit, //comes from ImageInput context if used inside it
64
+ disableImageBorder = _a.disableImageBorder, stretchToFullHeight = _a.stretchToFullHeight, containerShape = _a.containerShape, omitEditorTools = _a.omitEditorTools, enableCaptions = _a.enableCaptions,
65
+ //sent by parent ImageEditor to child (modal) ImageEditor
66
+ _underEditImageData = _a.underEditImageData, //ImageEditor passes this to its recursive self when opening in popup
67
+ _setUnderEditImageData = _a.setUnderEditImageData, isInPopUp = _a.isInPopUp, isInRTE = _a.isInRTE;
68
+ var theme = (0, styled_components_1.useTheme)();
69
+ var _b = theme || {}, RichTextEditor = _b.RichTextEditor, _c = _b.richTextHasValue //we are just defaulting to false for oolib preview. Meaning, when previewing in oolib, since this function doesnt exist (as it has to be provided by okf-fe), we will always return false from it.
70
+ , richTextHasValue = _c === void 0 ? function () { return false; } : _c //we are just defaulting to false for oolib preview. Meaning, when previewing in oolib, since this function doesnt exist (as it has to be provided by okf-fe), we will always return false from it.
71
+ ; //temporarily passed thru from okf
72
+ var _d = (0, react_1.useState)(_underEditImageData || undefined), underEditImageData = _d[0], setUnderEditImageData = _d[1];
73
+ //set state in parent imageeditor
74
+ (0, react_1.useEffect)(function () {
75
+ _setUnderEditImageData && _setUnderEditImageData(underEditImageData);
76
+ }, [underEditImageData]);
77
+ var props = arguments[0];
78
+ /** rotation */
79
+ /**
80
+ * if underEditImageData exists, render the temp 'formattings' as well,
81
+ * which are stored in underEditImageData.
82
+ *
83
+ * underEditImageData is merged into imageData, only if the 'formattings'
84
+ * are 'saved'
85
+ */
86
+ var _e = underEditImageData || imageData, publicUrl = _e.publicUrl, _f = _e.imageSpread, imageSpread = _f === void 0 ? defaultImageSpread : _f, _g = _e.imageRotate, imageRotate = _g === void 0 ? 0 : _g, _h = _e.cropX, cropX = _h === void 0 ? 0 : _h, _j = _e.cropY, cropY = _j === void 0 ? 0 : _j;
87
+ /**
88
+ * repos management
89
+ */
90
+ var wrapperRef = (0, react_1.useRef)(null);
91
+ var renderedImageRef = (0, react_1.useRef)(null);
92
+ var isFirstMount = (0, react_1.useRef)(true);
93
+ var _k = (0, react_1.useState)(undefined), fullWidthOrFullHeightImg = _k[0], setFullWidthOrFullHeightImg = _k[1];
94
+ var _l = (0, useReorientImage_1.useReorientImage)({
95
+ imageRotate: imageRotate,
96
+ setFullWidthOrFullHeightImg: setFullWidthOrFullHeightImg,
97
+ setUnderEditImageData: setUnderEditImageData,
98
+ publicUrl: publicUrl,
99
+ aspectRatio: aspectRatio,
100
+ underEditImageData: underEditImageData,
101
+ isFirstMount: isFirstMount
102
+ }), reorientedImageTempUrl = _l.reorientedImageTempUrl, imageLazyLoading = _l.imageLazyLoading;
103
+ var _m = (0, react_1.useState)(undefined), showDeleteImageModal = _m[0], setShowDeleteImageModal = _m[1];
104
+ var inputRef = (0, react_1.useRef)(null);
105
+ var _o = (0, react_1.useState)(undefined), editorStyle = _o[0], setEditorStyle = _o[1]; //alt: modal
106
+ (0, react_1.useEffect)(function () { isFirstMount.current = false; }, []);
107
+ var decideEditorStyle = function () {
108
+ var _a = wrapperRef.current.getBoundingClientRect(), width = _a.width, height = _a.height;
109
+ if (isInPopUp) {
110
+ setEditorStyle("toolbar");
111
+ }
112
+ else if ((0, smallImageInputUIConditionsMet_1.smallImageInputUIConditionsMet)({ width: width, height: height, containerShape: containerShape })) {
113
+ setEditorStyle("modal");
114
+ }
115
+ else {
116
+ setEditorStyle("toolbar");
117
+ }
118
+ };
119
+ var modalStyleEditorIsCurrentlyOpen = function () {
120
+ return editorStyle === "modal" && !!underEditImageData;
121
+ };
122
+ var genModalStyleEditor = function () { return (react_1.default.createElement(ModalLarge_1.ModalLarge, { title: "Edit Image" },
123
+ react_1.default.createElement(Container_1.Container, null,
124
+ react_1.default.createElement(Wrappers_1.Wrapper650, null,
125
+ react_1.default.createElement(Paddings_1.PaddingTopBottom40, null,
126
+ react_1.default.createElement(ImageEditor, __assign({}, props, { id: 'insideModal', underEditImageData: underEditImageData, setUnderEditImageData: setUnderEditImageData, isInPopUp: true }))))))); };
127
+ var genToolbarStyledEditor = function () { return (react_1.default.createElement(EditToolbar_1.EditToolbar, __assign({}, {
128
+ setUnderEditImageData: setUnderEditImageData,
129
+ underEditImageData: underEditImageData,
130
+ imageData: imageData,
131
+ handleSingleImageDataChange: handleSingleImageDataChange,
132
+ setImageUnderEdit: setImageUnderEdit,
133
+ imageSpread: imageSpread,
134
+ publicUrl: publicUrl,
135
+ defaultImageSpread: defaultImageSpread,
136
+ omitEditorTools: omitEditorTools,
137
+ }))); };
138
+ return (react_1.default.createElement("div", { id: id && id + '_ImageEditor', style: {
139
+ position: "relative",
140
+ height: stretchToFullHeight ? "100%" : "auto",
141
+ } }, imageLazyLoading && !modalStyleEditorIsCurrentlyOpen() ? (react_1.default.createElement(AspectRatioShell_1.default, __assign({}, {
142
+ key: "loaderShell",
143
+ aspectRatio: aspectRatio,
144
+ stretchToFullHeight: stretchToFullHeight,
145
+ containerShape: containerShape,
146
+ disableImageBorder: disableImageBorder,
147
+ }),
148
+ react_1.default.createElement(SkeletonLoader_1.SkeletonLoader, { style: { height: "100%" } }))) : (react_1.default.createElement(react_1.Fragment, null,
149
+ react_1.default.createElement(AspectRatioShell_1.default, __assign({}, {
150
+ id: id,
151
+ invert: invert,
152
+ key: "imageShell",
153
+ aspectRatio: aspectRatio,
154
+ stretchToFullHeight: stretchToFullHeight,
155
+ containerShape: containerShape,
156
+ disableImageBorder: disableImageBorder,
157
+ onShellPrepared: decideEditorStyle,
158
+ }),
159
+ showDeleteImageModal && (react_1.default.createElement(ConfirmDeleteModal_1.ConfirmDeleteModal, __assign({}, {
160
+ showDeleteImageModal: showDeleteImageModal,
161
+ setShowDeleteImageModal: setShowDeleteImageModal,
162
+ handleDeleteSingleImage: handleDeleteSingleImage,
163
+ }))),
164
+ react_1.default.createElement(styled_1.StyledFullWidthImgWrapper, { ref: wrapperRef, invert: invert, disableImageBorder: disableImageBorder },
165
+ react_1.default.createElement(styled_1.StyledImg, __assign({}, {
166
+ ref: renderedImageRef,
167
+ fullWidthOrFullHeightImg: fullWidthOrFullHeightImg,
168
+ src: reorientedImageTempUrl || publicUrl,
169
+ imageSpread: imageSpread,
170
+ cropX: cropX,
171
+ cropY: cropY,
172
+ })),
173
+ underEditImageData !== undefined &&
174
+ !omitEditorTools.includes("reposition") && (react_1.default.createElement(ImageReposManager_1.ImageReposManager, __assign({}, {
175
+ fullWidthOrFullHeightImg: fullWidthOrFullHeightImg,
176
+ wrapperRef: wrapperRef,
177
+ renderedImageRef: renderedImageRef,
178
+ setUnderEditImageData: setUnderEditImageData,
179
+ }))))),
180
+ !readOnly && (react_1.default.createElement(styled_1.StyledImageEditToolbar, __assign({}, {
181
+ underEditImageData: underEditImageData,
182
+ containerShape: containerShape,
183
+ isInPopUp: isInPopUp,
184
+ }), underEditImageData === undefined ? (react_1.default.createElement(ImageActionsMenu_1.ImageActionsMenu, __assign({}, {
185
+ invert: invert,
186
+ setUnderEditImageData: setUnderEditImageData,
187
+ setImageUnderEdit: setImageUnderEdit,
188
+ inputRef: inputRef,
189
+ setShowDeleteImageModal: setShowDeleteImageModal,
190
+ publicUrl: publicUrl,
191
+ imageData: imageData,
192
+ handleReplaceSingleImage: handleReplaceSingleImage,
193
+ handleUpload: handleUpload,
194
+ isInRTE: isInRTE
195
+ }))) : editorStyle === "toolbar" ? (genToolbarStyledEditor()) : (editorStyle === "modal" && genModalStyleEditor()))),
196
+ enableCaptions && (readOnly && !richTextHasValue(imageData.caption)
197
+ ? null
198
+ : react_1.default.createElement(react_1.Fragment, null,
199
+ react_1.default.createElement(Divider_1.Divider, { invert: invert }),
200
+ react_1.default.createElement("div", { style: {
201
+ borderRadius: "0.2rem",
202
+ padding: readOnly ? "1rem" : "2rem",
203
+ backgroundColor: readOnly ? "initial" : invert ? themes_1.colors.greyColor90 : themes_1.colors.greyColor5,
204
+ } }, !RichTextEditor
205
+ ? (0, renderRTEPlaceholderForOolibPreview_1.renderRTEPlaceholderForOolibPreview)({
206
+ width: '100%',
207
+ height: '30px'
208
+ })
209
+ : react_1.default.createElement(RichTextEditor, { variant: 'simple', disableNewline: true, invert: invert, placeholder: "type caption for image (optional)", readOnly: readOnly, charLimit: 100, typo: "SANS_3", placeholderColor: invert ? themes_1.colors.greyColor70 : themes_1.colors.greyColor40, value: imageData.caption, onChange: function (id, val) {
210
+ handleSingleImageDataChange({
211
+ publicUrl: publicUrl,
212
+ imageData: __assign(__assign({}, imageData), { caption: val }),
213
+ });
214
+ } })),
215
+ readOnly && react_1.default.createElement(Divider_1.Divider, { invert: invert })))))));
216
+ }
217
+ exports.ImageEditor = ImageEditor;
@@ -0,0 +1,4 @@
1
+ export const StyledImageEditToolbar: import("styled-components").StyledComponent<"div", any, {}, never>;
2
+ export const StyledFullWidthImgWrapper: import("styled-components").StyledComponent<"div", any, {}, never>;
3
+ export const StyledImg: import("styled-components").StyledComponent<"img", any, {}, never>;
4
+ export const StyledImageWrapper: import("styled-components").StyledComponent<"div", any, {}, never>;
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
3
+ if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
4
+ return cooked;
5
+ };
6
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ var desc = Object.getOwnPropertyDescriptor(m, k);
9
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
+ desc = { enumerable: true, get: function() { return m[k]; } };
11
+ }
12
+ Object.defineProperty(o, k2, desc);
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
19
+ }) : function(o, v) {
20
+ o["default"] = v;
21
+ });
22
+ var __importStar = (this && this.__importStar) || function (mod) {
23
+ if (mod && mod.__esModule) return mod;
24
+ var result = {};
25
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
26
+ __setModuleDefault(result, mod);
27
+ return result;
28
+ };
29
+ Object.defineProperty(exports, "__esModule", { value: true });
30
+ exports.StyledImageWrapper = exports.StyledImg = exports.StyledFullWidthImgWrapper = exports.StyledImageEditToolbar = void 0;
31
+ var styled_components_1 = __importStar(require("styled-components"));
32
+ var utilsOolib_1 = require("../../../../utilsOolib");
33
+ exports.StyledImageEditToolbar = styled_components_1.default.div(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n position: absolute;\n\n display: flex;\n gap: 0.5rem;\n width: ", ";\n ", "\n"], ["\n position: absolute;\n\n display: flex;\n gap: 0.5rem;\n width: ", ";\n ", "\n"])), function (_a) {
34
+ var underEditImageData = _a.underEditImageData;
35
+ return (!underEditImageData ? "auto" : "100%");
36
+ }, function (_a) {
37
+ var containerShape = _a.containerShape, isInPopUp = _a.isInPopUp;
38
+ if (isInPopUp) {
39
+ return (0, styled_components_1.css)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n top: 0;\n right: 0;\n transform: translateY(-100%);\n "], ["\n top: 0;\n right: 0;\n transform: translateY(-100%);\n "])));
40
+ }
41
+ //else it is not in popup
42
+ return containerShape === "circle"
43
+ ? (0, styled_components_1.css)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n top: 7%;\n right: 4%;\n /* transform: translate(50%, -50%); */\n "], ["\n top: 7%;\n right: 4%;\n /* transform: translate(50%, -50%); */\n "]))) : (0, styled_components_1.css)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n top: 0;\n right: 0;\n "], ["\n top: 0;\n right: 0;\n "])));
44
+ });
45
+ exports.StyledFullWidthImgWrapper = styled_components_1.default.div(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n width: 100%;\n height: 100%;\n position: relative;\n \n"], ["\n width: 100%;\n height: 100%;\n position: relative;\n \n"])));
46
+ exports.StyledImg = styled_components_1.default.img(templateObject_6 || (templateObject_6 = __makeTemplateObject(["\n /* z-index: -1; */\n position: absolute;\n left: 0;\n top: 0;\n transform: ", ";\n margin-left: ", "; //when image is 'contain'ed\n margin-top: ", "; //when image is 'contain'ed\n ", "\n"], ["\n /* z-index: -1; */\n position: absolute;\n left: 0;\n top: 0;\n transform: ", ";\n margin-left: ", "; //when image is 'contain'ed\n margin-top: ", "; //when image is 'contain'ed\n ", "\n"])), function (_a) {
47
+ var _b = _a.cropX, cropX = _b === void 0 ? 0 : _b, _c = _a.cropY, cropY = _c === void 0 ? 0 : _c;
48
+ return "translate(".concat(cropX, "%,").concat(cropY, "%)");
49
+ }, function (_a) {
50
+ var _b = _a.marginLeft, marginLeft = _b === void 0 ? 0 : _b;
51
+ return marginLeft;
52
+ }, function (_a) {
53
+ var _b = _a.marginTop, marginTop = _b === void 0 ? 0 : _b;
54
+ return marginTop;
55
+ }, function (_a) {
56
+ var fullWidthOrFullHeightImg = _a.fullWidthOrFullHeightImg, imageSpread = _a.imageSpread;
57
+ if (fullWidthOrFullHeightImg === 'fullWidth') {
58
+ return imageSpread === 'cover'
59
+ ? "width: 100%; height: auto;"
60
+ : "\n height: 100%; \n width: auto;\n left: 50%;\n transform: translateX(-50%);\n "; //contain
61
+ }
62
+ else if (fullWidthOrFullHeightImg === 'fullHeight') {
63
+ return imageSpread === 'cover'
64
+ ? "height: 100%; width: auto;"
65
+ : "\n width: 100%; \n height: auto;\n top: 50%;\n transform: translateY(-50%);\n ";
66
+ }
67
+ });
68
+ exports.StyledImageWrapper = styled_components_1.default.div(templateObject_7 || (templateObject_7 = __makeTemplateObject(["\n position: relative;\n height: 100%;\n border: 2px solid ", ";\n"], ["\n position: relative;\n height: 100%;\n border: 2px solid ", ";\n"])), function (_a) {
69
+ var theme = _a.theme;
70
+ return (0, utilsOolib_1.getPrimaryColor10)(theme === null || theme === void 0 ? void 0 : theme.colors);
71
+ });
72
+ var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6, templateObject_7;
@@ -0,0 +1 @@
1
+ export function calcAspectRatio(aspectRatio: any): number;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.calcAspectRatio = void 0;
4
+ var calcAspectRatio = function (aspectRatio) {
5
+ var split = aspectRatio.split("/");
6
+ return !split[1]
7
+ ? parseInt(split[0])
8
+ : parseInt(split[0]) / parseInt(split[1]);
9
+ };
10
+ exports.calcAspectRatio = calcAspectRatio;
@@ -0,0 +1,5 @@
1
+ export function changesMadeToUnderEditImageData({ imageData, underEditImageData, defaultImageSpread }: {
2
+ imageData: any;
3
+ underEditImageData: any;
4
+ defaultImageSpread: any;
5
+ }): boolean;
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.changesMadeToUnderEditImageData = void 0;
15
+ var lodash_1 = require("lodash");
16
+ /**
17
+ * we have to shove the defaults into imageData,
18
+ * else equality check wont work
19
+ */
20
+ var changesMadeToUnderEditImageData = function (_a) {
21
+ var imageData = _a.imageData, underEditImageData = _a.underEditImageData, defaultImageSpread = _a.defaultImageSpread;
22
+ var fullImageData = __assign(__assign({ imageSpread: defaultImageSpread, imageRotate: 0, cropX: 0, cropY: 0 }, imageData), { caption: undefined //we dont compare changes in caption
23
+ });
24
+ var fullUnderEditImageData = __assign(__assign({ imageSpread: defaultImageSpread, imageRotate: 0, cropX: 0, cropY: 0 }, underEditImageData), { caption: undefined });
25
+ return !(0, lodash_1.isEqual)(fullImageData, fullUnderEditImageData);
26
+ };
27
+ exports.changesMadeToUnderEditImageData = changesMadeToUnderEditImageData;
@@ -0,0 +1,5 @@
1
+ export function decideIfFullWidthOrFullHeightImg({ imgWidth, imgHeight, wrapperAspectRatio, }: {
2
+ imgWidth: any;
3
+ imgHeight: any;
4
+ wrapperAspectRatio: any;
5
+ }): "fullWidth" | "fullHeight";
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.decideIfFullWidthOrFullHeightImg = void 0;
4
+ var calcAspectRatio_1 = require("./calcAspectRatio");
5
+ var decideIfFullWidthOrFullHeightImg = function (_a) {
6
+ var imgWidth = _a.imgWidth, imgHeight = _a.imgHeight, wrapperAspectRatio = _a.wrapperAspectRatio;
7
+ var wrapperAspectRatioCalc = (0, calcAspectRatio_1.calcAspectRatio)(wrapperAspectRatio);
8
+ var imgRatioCalc = imgWidth / imgHeight;
9
+ //if image is relatively 'narrower' than the wrapper, then it should take full width
10
+ if (wrapperAspectRatioCalc > imgRatioCalc) {
11
+ return "fullWidth";
12
+ }
13
+ //if they are exactly the same, then image can take fullWidth
14
+ else if (imgRatioCalc === wrapperAspectRatioCalc) {
15
+ return "fullWidth";
16
+ }
17
+ //if image is relatively 'wider' than the wrapper, then it should take full height
18
+ else if (imgRatioCalc > wrapperAspectRatioCalc) {
19
+ return "fullHeight";
20
+ }
21
+ };
22
+ exports.decideIfFullWidthOrFullHeightImg = decideIfFullWidthOrFullHeightImg;
@@ -0,0 +1,5 @@
1
+ export function smallImageInputUIConditionsMet({ width, height, containerShape }: {
2
+ width: any;
3
+ height: any;
4
+ containerShape: any;
5
+ }): boolean;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.smallImageInputUIConditionsMet = void 0;
4
+ var smallImageInputUIConditionsMet = function (_a) {
5
+ var width = _a.width, height = _a.height, containerShape = _a.containerShape;
6
+ return width < 300 || height < 300 || containerShape === "circle";
7
+ };
8
+ exports.smallImageInputUIConditionsMet = smallImageInputUIConditionsMet;
@@ -0,0 +1,5 @@
1
+ export function changeImageOrientation({ srcUrl, imageRotate, callback }: {
2
+ srcUrl: any;
3
+ imageRotate: any;
4
+ callback: any;
5
+ }): void;
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ //this is a child function to useReorientImage. is not meant to be used
3
+ //for anything else
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.changeImageOrientation = void 0;
6
+ var changeImageOrientation = function (_a) {
7
+ var srcUrl = _a.srcUrl, imageRotate = _a.imageRotate, callback = _a.callback;
8
+ var img = new Image();
9
+ img.crossOrigin = "anonymous"; // This enables CORS
10
+ img.src = srcUrl;
11
+ img.onload = function () {
12
+ var width = img.width, height = img.height, canvas = document.createElement("canvas"), ctx = canvas.getContext("2d");
13
+ var degToOrientationValueMap = [
14
+ { deg: -0, orientation: 1 },
15
+ { deg: 0, orientation: 1 },
16
+ { deg: -360, orientation: 1 },
17
+ { deg: 90, orientation: 6 },
18
+ { deg: -270, orientation: 6 },
19
+ { deg: 180, orientation: 3 },
20
+ { deg: -180, orientation: 3 },
21
+ { deg: 270, orientation: 8 },
22
+ { deg: -90, orientation: 8 },
23
+ //later : permutations and combinations of these can enable flip
24
+ ];
25
+ // console.log({imageRotate})
26
+ var orientationToSet = degToOrientationValueMap.find(function (d) { return d.deg === (imageRotate % 360); } //so that we bring all numbers within the range of -360 & 360
27
+ ).orientation;
28
+ // set proper canvas dimensions before transform & export
29
+ if (orientationToSet >= 5 && orientationToSet <= 8) {
30
+ canvas.width = height;
31
+ canvas.height = width;
32
+ }
33
+ else {
34
+ canvas.width = width;
35
+ canvas.height = height;
36
+ }
37
+ // transform context before drawing image
38
+ switch (orientationToSet) {
39
+ case 2:
40
+ ctx.transform(-1, 0, 0, 1, width, 0);
41
+ break;
42
+ case 3:
43
+ ctx.transform(-1, 0, 0, -1, width, height);
44
+ break;
45
+ case 4:
46
+ ctx.transform(1, 0, 0, -1, 0, height);
47
+ break;
48
+ case 5:
49
+ ctx.transform(0, 1, 1, 0, 0, 0);
50
+ break;
51
+ case 6:
52
+ ctx.transform(0, 1, -1, 0, height, 0);
53
+ break;
54
+ case 7:
55
+ ctx.transform(0, -1, -1, 0, height, width);
56
+ break;
57
+ case 8:
58
+ ctx.transform(0, -1, 1, 0, 0, width);
59
+ break;
60
+ default:
61
+ break;
62
+ }
63
+ // draw image
64
+ ctx.drawImage(img, 0, 0);
65
+ // console.log({newUrl: 'newUrl'})
66
+ // console.log({newUrl: canvas.toDataURL()})
67
+ // export base64
68
+ callback({
69
+ reorientedUrl: canvas.toDataURL(),
70
+ imageWidth: canvas.width,
71
+ imageHeight: canvas.height
72
+ });
73
+ };
74
+ // console.log({ srcUrl });
75
+ };
76
+ exports.changeImageOrientation = changeImageOrientation;
@@ -0,0 +1,11 @@
1
+ export function useReorientImage({ imageRotate, setFullWidthOrFullHeightImg, setUnderEditImageData, publicUrl, aspectRatio, isFirstMount, }: {
2
+ imageRotate: any;
3
+ setFullWidthOrFullHeightImg: any;
4
+ setUnderEditImageData: any;
5
+ publicUrl: any;
6
+ aspectRatio: any;
7
+ isFirstMount: any;
8
+ }): {
9
+ reorientedImageTempUrl: any;
10
+ imageLazyLoading: boolean;
11
+ };
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useReorientImage = void 0;
4
+ var lodash_1 = require("lodash");
5
+ var react_1 = require("react");
6
+ var decideIfFullWidthOrFullHeightImg_1 = require("../decideIfFullWidthOrFullHeightImg");
7
+ var changeImageOrientation_1 = require("./changeImageOrientation");
8
+ var useReorientImage = function (_a) {
9
+ var imageRotate = _a.imageRotate, setFullWidthOrFullHeightImg = _a.setFullWidthOrFullHeightImg, setUnderEditImageData = _a.setUnderEditImageData, publicUrl = _a.publicUrl, aspectRatio = _a.aspectRatio, isFirstMount = _a.isFirstMount;
10
+ var _b = (0, react_1.useState)(true), imageLazyLoading = _b[0], setImageLazyLoading = _b[1];
11
+ var _c = (0, react_1.useState)(undefined), reorientedImageTempUrl = _c[0], setReorientedImageTempUrl = _c[1];
12
+ (0, react_1.useEffect)(function () {
13
+ if (!imageLazyLoading)
14
+ setImageLazyLoading(true);
15
+ //if image rotation = undefined / 0 / -0, set reorientedImgTemp -> undefined
16
+ //this way the og public url will be used to render
17
+ if (imageRotate === undefined || [0, -0].indexOf(imageRotate) !== -1) {
18
+ if (reorientedImageTempUrl)
19
+ setReorientedImageTempUrl(undefined);
20
+ var img = new Image();
21
+ img.src = publicUrl;
22
+ img.onload = function () {
23
+ setFullWidthOrFullHeightImg((0, decideIfFullWidthOrFullHeightImg_1.decideIfFullWidthOrFullHeightImg)({
24
+ imgWidth: this.width,
25
+ imgHeight: this.height,
26
+ wrapperAspectRatio: aspectRatio,
27
+ }));
28
+ setImageLazyLoading(false);
29
+ };
30
+ }
31
+ else {
32
+ (0, changeImageOrientation_1.changeImageOrientation)({
33
+ srcUrl: publicUrl,
34
+ imageRotate: imageRotate,
35
+ callback: function (_a) {
36
+ //cuz its possible that this may run even if not in edit mode
37
+ //e.g first mount, and on 'dont save changes'
38
+ var reorientedUrl = _a.reorientedUrl, imageWidth = _a.imageWidth, imageHeight = _a.imageHeight;
39
+ setFullWidthOrFullHeightImg((0, decideIfFullWidthOrFullHeightImg_1.decideIfFullWidthOrFullHeightImg)({
40
+ imgWidth: imageWidth,
41
+ imgHeight: imageHeight,
42
+ wrapperAspectRatio: aspectRatio,
43
+ }));
44
+ setReorientedImageTempUrl(reorientedUrl);
45
+ setImageLazyLoading(false);
46
+ // setUrlAfterRotate(resetBase64Image);
47
+ },
48
+ });
49
+ }
50
+ /**
51
+ * if is not first mount, then rotate just happened.
52
+ * so reset crop data
53
+ */
54
+ if (!isFirstMount) {
55
+ //means if it is in edit mode
56
+ setUnderEditImageData(function (prev) {
57
+ var newData = (0, lodash_1.cloneDeep)(prev);
58
+ delete newData.cropX;
59
+ delete newData.cropY;
60
+ return newData;
61
+ });
62
+ }
63
+ }, [imageRotate]);
64
+ return { reorientedImageTempUrl: reorientedImageTempUrl, imageLazyLoading: imageLazyLoading };
65
+ };
66
+ exports.useReorientImage = useReorientImage;
@@ -0,0 +1,7 @@
1
+ export default ImageUploadShell;
2
+ declare function ImageUploadShell({ style, children, disabled }: {
3
+ style: any;
4
+ children: any;
5
+ disabled: any;
6
+ }): React.JSX.Element;
7
+ import React from "react";
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
26
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
27
+ if (ar || !(i in from)) {
28
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
29
+ ar[i] = from[i];
30
+ }
31
+ }
32
+ return to.concat(ar || Array.prototype.slice.call(from));
33
+ };
34
+ Object.defineProperty(exports, "__esModule", { value: true });
35
+ var react_1 = __importStar(require("react"));
36
+ var ImageInputContext_1 = require("../../ImageInputContext");
37
+ var ImageUploadShell = function (_a) {
38
+ var style = _a.style, children = _a.children, disabled = _a.disabled;
39
+ var inputRef = (0, react_1.useRef)(null);
40
+ var _b = (0, ImageInputContext_1.useImageInputContext)(), handleUpload = _b.handleUpload, onChange = _b.onChange, value = _b.value, id = _b.id, multiple = _b.multiple;
41
+ if (disabled)
42
+ return react_1.default.createElement("div", { style: { width: '100%', height: '100%' } }, children);
43
+ return (react_1.default.createElement(react_1.default.Fragment, null,
44
+ react_1.default.createElement("input", { type: "file", accept: "image/*", style: { display: 'none' }, ref: inputRef, onChange: function (e) { return handleUpload({
45
+ files: e.target.files,
46
+ callback: function (_a) {
47
+ var successfulUploads = _a.successfulUploads;
48
+ onChange(id, multiple
49
+ ? __spreadArray(__spreadArray([], successfulUploads, true), (value || []), true) : successfulUploads);
50
+ }
51
+ }); }, multiple: multiple }),
52
+ react_1.default.createElement("div", { onClick: function () { return inputRef.current.click(); }, style: { height: '100%', width: '100%' } }, children)));
53
+ };
54
+ exports.default = ImageUploadShell;
@@ -0,0 +1,2 @@
1
+ export function InlineImageInput({}: {}): React.JSX.Element;
2
+ import React from "react";
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.InlineImageInput = void 0;
7
+ var react_1 = __importDefault(require("react"));
8
+ var ImageInputContext_1 = require("../../ImageInputContext");
9
+ var Placeholder_1 = __importDefault(require("../Placeholder"));
10
+ /**
11
+ * this component will expand in its complexity with time
12
+ */
13
+ var InlineImageInput = function (_a) {
14
+ var _b, _c;
15
+ var _d = (0, ImageInputContext_1.useImageInputContext)(), isLoading = _d.isLoading, value = _d.value;
16
+ return isLoading ? (react_1.default.createElement(Placeholder_1.default, { aspectRatio: "4/1" })) : value && ((_b = value[0]) === null || _b === void 0 ? void 0 : _b.publicUrl) && (react_1.default.createElement("div", null,
17
+ react_1.default.createElement("img", { src: (_c = value[0]) === null || _c === void 0 ? void 0 : _c.publicUrl, style: { width: '100%', height: 'auto' } })));
18
+ };
19
+ exports.InlineImageInput = InlineImageInput;