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,29 @@
1
+ export const ImageInputContext: React.Context<any>;
2
+ export function ImageInputContextProvider({ children, value, multiple, allowedFormats, formatConvertConfig, folderName, bucketEnv, onChange, id, aspectRatio, readOnly, enableCaptions, defaultImageSpread, invert, containerShape, stretchToFullHeight, dropzoneLabel, dropzoneSublabel, disableImageBorder, omitEditorTools, files, showOptionalLabelInDropzone, isRequired, isInRTE }: {
3
+ children: any;
4
+ value: any;
5
+ multiple: any;
6
+ allowedFormats: any;
7
+ formatConvertConfig: any;
8
+ folderName: any;
9
+ bucketEnv: any;
10
+ onChange: any;
11
+ id: any;
12
+ aspectRatio: any;
13
+ readOnly: any;
14
+ enableCaptions: any;
15
+ defaultImageSpread: any;
16
+ invert: any;
17
+ containerShape: any;
18
+ stretchToFullHeight: any;
19
+ dropzoneLabel: any;
20
+ dropzoneSublabel: any;
21
+ disableImageBorder: any;
22
+ omitEditorTools: any;
23
+ files: any;
24
+ showOptionalLabelInDropzone: any;
25
+ isRequired: any;
26
+ isInRTE: any;
27
+ }): React.JSX.Element;
28
+ export function useImageInputContext(): any;
29
+ import React from "react";
@@ -0,0 +1,199 @@
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
+ exports.useImageInputContext = exports.ImageInputContextProvider = exports.ImageInputContext = void 0;
36
+ var react_1 = __importStar(require("react"));
37
+ var styled_components_1 = require("styled-components");
38
+ var infoAlertBannerFnPlaceholder_1 = require("../../utilsOolib/infoAlertBannerFnPlaceholder");
39
+ exports.ImageInputContext = (0, react_1.createContext)();
40
+ var ImageInputContextProvider = function (_a) {
41
+ var children = _a.children, value = _a.value, multiple = _a.multiple, allowedFormats = _a.allowedFormats, formatConvertConfig = _a.formatConvertConfig, folderName = _a.folderName, bucketEnv = _a.bucketEnv, onChange = _a.onChange, id = _a.id, aspectRatio = _a.aspectRatio, readOnly = _a.readOnly, enableCaptions = _a.enableCaptions, defaultImageSpread = _a.defaultImageSpread, invert = _a.invert, containerShape = _a.containerShape, stretchToFullHeight = _a.stretchToFullHeight, dropzoneLabel = _a.dropzoneLabel, dropzoneSublabel = _a.dropzoneSublabel, disableImageBorder = _a.disableImageBorder, omitEditorTools = _a.omitEditorTools, files = _a.files, showOptionalLabelInDropzone = _a.showOptionalLabelInDropzone, isRequired = _a.isRequired, isInRTE = _a.isInRTE;
42
+ var theme = (0, styled_components_1.useTheme)();
43
+ var _b = (0, react_1.useState)(undefined), uploadProgress = _b[0], setUploadProgress = _b[1];
44
+ var handleUploadProgess = function (progress) { return setUploadProgress(progress); };
45
+ var _c = (theme === null || theme === void 0 ? void 0 : theme.useUploadMedia({
46
+ mediaConfigs: {
47
+ allowedFormats: allowedFormats,
48
+ formatConvertConfig: formatConvertConfig,
49
+ folderName: folderName,
50
+ bucketEnv: bucketEnv,
51
+ mediaType: "image"
52
+ },
53
+ handleUploadProgess: handleUploadProgess,
54
+ })) || {}, upload = _c.mutate, isLoading = _c.isLoading;
55
+ var SET_ALERT_BANNER = ((theme === null || theme === void 0 ? void 0 : theme.useBannerContext()) || (0, infoAlertBannerFnPlaceholder_1.infoAlertBannerFnPlaceholder)()).SET_ALERT_BANNER;
56
+ var _d = (0, react_1.useState)(0), noOfImagesUploading = _d[0], setNoOfImagesUploading = _d[1];
57
+ var _e = (0, react_1.useState)(undefined), publicUrlBeingReplaced = _e[0], setPublicUrlBeingReplaced = _e[1];
58
+ var handleUpload = function (_a) {
59
+ var files = _a.files, callback = _a.callback, publicUrlToReplace = _a.publicUrlToReplace;
60
+ //publicUrlToReplace passed only if replace action
61
+ if (!files)
62
+ return;
63
+ publicUrlToReplace
64
+ ? setPublicUrlBeingReplaced(publicUrlToReplace)
65
+ : setNoOfImagesUploading(files.length);
66
+ upload(files, {
67
+ onSuccess: function (data) {
68
+ //extract out all the successful uploads' fileData
69
+ var successfulUploads = data.reduce(function (result, d) {
70
+ return d.status === "success" ? __spreadArray(__spreadArray([], result, true), [d.fileData], false) : result;
71
+ }, []);
72
+ //error banner for all failed uploads
73
+ data.forEach(function (d) {
74
+ return d.status === "error" && SET_ALERT_BANNER(d.message, "red", 3500);
75
+ });
76
+ callback({ successfulUploads: successfulUploads });
77
+ publicUrlToReplace
78
+ ? setPublicUrlBeingReplaced(undefined)
79
+ : setNoOfImagesUploading(0);
80
+ },
81
+ onError: function (err) {
82
+ var _a;
83
+ SET_ALERT_BANNER(((_a = err.response) === null || _a === void 0 ? void 0 : _a.data.errors[0].msg) || err.message, "red", 4000);
84
+ publicUrlToReplace
85
+ ? setPublicUrlBeingReplaced(undefined)
86
+ : setNoOfImagesUploading(0);
87
+ },
88
+ });
89
+ };
90
+ /**
91
+ * this is specifically required in the RTE scenario,
92
+ * wherein, the minute files are uploaded from the RTE,
93
+ * we want to generate the ImageInput, so that things like
94
+ * loading state, errors etc, are handled internally.
95
+ *
96
+ * Very important to remember though, that in other cases,
97
+ * files prop SHOULD NOT BE PASSED, else everytime the comp
98
+ * renders for the first time, it will upload said files to
99
+ * cloud storage.
100
+ */
101
+ (0, react_1.useEffect)(function () {
102
+ if (files) {
103
+ handleUpload({
104
+ files: files,
105
+ callback: function (_a) {
106
+ var successfulUploads = _a.successfulUploads;
107
+ onChange(id, multiple
108
+ ? __spreadArray(__spreadArray([], successfulUploads, true), (value || []), true) : successfulUploads);
109
+ }
110
+ });
111
+ }
112
+ }, []);
113
+ /**
114
+ * example alt code to display image directly from uploaded files
115
+ * this will be used for preview purposes only in storybook
116
+ *
117
+ *
118
+ document.getElementById('picField').onchange = function (evt) {
119
+ var tgt = evt.target || window.event.srcElement,
120
+ files = tgt.files;
121
+
122
+ // FileReader support
123
+ if (FileReader && files && files.length) {
124
+ var fr = new FileReader();
125
+ fr.onload = function () {
126
+ document.getElementById(outImage).src = fr.result;
127
+ }
128
+ fr.readAsDataURL(files[0]);
129
+ }
130
+
131
+ // Not supported
132
+ else {
133
+ // fallback -- perhaps submit the input to an iframe and temporarily store
134
+ // them on the server until the user's session ends.
135
+ }
136
+ }
137
+ */
138
+ var handleSingleImageDataChange = function (_a) {
139
+ var publicUrl = _a.publicUrl, imageData = _a.imageData;
140
+ //publicUrl is used as an 'id' identifier
141
+ var newValue = __spreadArray([], value, true);
142
+ var imgIdxToReplace = newValue.findIndex(function (d) { return d.publicUrl === publicUrl; });
143
+ newValue[imgIdxToReplace] = imageData;
144
+ onChange(id, newValue);
145
+ };
146
+ var handleDeleteSingleImage = function (_a) {
147
+ var publicUrl = _a.publicUrl;
148
+ var newValue = __spreadArray([], value, true);
149
+ newValue = newValue.filter(function (d) { return d.publicUrl !== publicUrl; });
150
+ onChange(id, newValue);
151
+ };
152
+ var handleReplaceSingleImage = function (_a) {
153
+ var publicUrl = _a.publicUrl, newImage = _a.newImage;
154
+ var newValue = __spreadArray([], value, true);
155
+ var idx = newValue.findIndex(function (d) { return d.publicUrl === publicUrl; });
156
+ newValue[idx] = newImage;
157
+ onChange(id, newValue);
158
+ };
159
+ var _f = (0, react_1.useState)(false), imageUnderEdit = _f[0], setImageUnderEdit = _f[1];
160
+ return (react_1.default.createElement(exports.ImageInputContext.Provider, { value: {
161
+ //props
162
+ id: id,
163
+ value: value,
164
+ onChange: onChange,
165
+ multiple: multiple,
166
+ allowedFormats: allowedFormats,
167
+ aspectRatio: aspectRatio,
168
+ readOnly: readOnly,
169
+ enableCaptions: enableCaptions,
170
+ defaultImageSpread: defaultImageSpread,
171
+ invert: invert,
172
+ containerShape: containerShape,
173
+ stretchToFullHeight: stretchToFullHeight,
174
+ dropzoneLabel: dropzoneLabel,
175
+ dropzoneSublabel: dropzoneSublabel,
176
+ disableImageBorder: disableImageBorder,
177
+ omitEditorTools: omitEditorTools,
178
+ //handlers, states initiated in this Context
179
+ upload: upload,
180
+ handleUpload: handleUpload,
181
+ noOfImagesUploading: noOfImagesUploading,
182
+ publicUrlBeingReplaced: publicUrlBeingReplaced,
183
+ uploadProgress: uploadProgress,
184
+ isLoading: isLoading,
185
+ handleSingleImageDataChange: handleSingleImageDataChange,
186
+ handleDeleteSingleImage: handleDeleteSingleImage,
187
+ handleReplaceSingleImage: handleReplaceSingleImage,
188
+ imageUnderEdit: imageUnderEdit,
189
+ setImageUnderEdit: setImageUnderEdit,
190
+ showOptionalLabelInDropzone: showOptionalLabelInDropzone,
191
+ isRequired: isRequired,
192
+ isInRTE: isInRTE
193
+ } }, children));
194
+ };
195
+ exports.ImageInputContextProvider = ImageInputContextProvider;
196
+ var useImageInputContext = function () {
197
+ return (0, react_1.useContext)(exports.ImageInputContext);
198
+ };
199
+ exports.useImageInputContext = useImageInputContext;
@@ -0,0 +1,12 @@
1
+ export default AspectRatioShell;
2
+ declare function AspectRatioShell({ id, invert, aspectRatio, children, stretchToFullHeight, containerShape, disableImageBorder, onShellPrepared }: {
3
+ id: any;
4
+ invert: any;
5
+ aspectRatio: any;
6
+ children: any;
7
+ stretchToFullHeight: any;
8
+ containerShape: any;
9
+ disableImageBorder: any;
10
+ onShellPrepared: any;
11
+ }): React.JSX.Element;
12
+ import React from "react";
@@ -0,0 +1,61 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ var react_1 = __importStar(require("react"));
27
+ var styled_1 = require("./styled");
28
+ var calcAspectRatio_1 = require("../ImageEditor/utils/calcAspectRatio");
29
+ var useScreenWidth_1 = require("../../../../utils/customHooks/useScreenWidth");
30
+ var AspectRatioShell = function (_a) {
31
+ var id = _a.id, invert = _a.invert, aspectRatio = _a.aspectRatio, children = _a.children, stretchToFullHeight = _a.stretchToFullHeight, containerShape = _a.containerShape, disableImageBorder = _a.disableImageBorder, onShellPrepared = _a.onShellPrepared;
32
+ var wrapperRef = (0, react_1.useRef)(null);
33
+ var _b = (0, react_1.useState)("auto"), wrapperHeight = _b[0], setWrapperHeight = _b[1];
34
+ var handleSetWrapperHeight = function () {
35
+ wrapperRef.current && //somehow on screen resize, somethings the wrapperRef.current doesnt exist. no idea why.
36
+ setWrapperHeight(wrapperRef.current.offsetWidth / (0, calcAspectRatio_1.calcAspectRatio)(aspectRatio));
37
+ };
38
+ //relevant only if stretchToFullHeight === true
39
+ var _c = (0, react_1.useState)("auto"), wrapperWidth = _c[0], setWrapperWidth = _c[1];
40
+ var handleSetWrapperWidth = function () {
41
+ wrapperRef.current &&
42
+ setWrapperWidth(wrapperRef.current.clientHeight * (0, calcAspectRatio_1.calcAspectRatio)(aspectRatio));
43
+ };
44
+ (0, react_1.useLayoutEffect)(function () {
45
+ if (stretchToFullHeight) {
46
+ handleSetWrapperWidth();
47
+ }
48
+ else {
49
+ handleSetWrapperHeight();
50
+ }
51
+ }, []);
52
+ (0, react_1.useEffect)(function () {
53
+ if (wrapperWidth !== 'auto' || wrapperHeight !== 'auto') {
54
+ //means the shell is ready with the proper dimensions
55
+ onShellPrepared && onShellPrepared(); //we use this fn. in imageEditor to trigger off the decision on toolbar style
56
+ }
57
+ }, [wrapperWidth, wrapperHeight]);
58
+ (0, useScreenWidth_1.useScreenWidth)(handleSetWrapperHeight);
59
+ return (react_1.default.createElement(styled_1.StyledAspectRatioWrapper, { id: 'StyledAspectRatioWrapper', ref: wrapperRef, width: stretchToFullHeight ? "".concat(wrapperWidth, "px") : "100%", height: stretchToFullHeight ? "100%" : "".concat(wrapperHeight, "px"), containerShape: containerShape, invert: invert, disableImageBorder: disableImageBorder }, children));
60
+ };
61
+ exports.default = AspectRatioShell;
@@ -0,0 +1 @@
1
+ export const StyledAspectRatioWrapper: import("styled-components").StyledComponent<"div", any, {}, never>;
@@ -0,0 +1,46 @@
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.StyledAspectRatioWrapper = void 0;
31
+ var styled_components_1 = __importStar(require("styled-components"));
32
+ var themes_1 = require("../../../../themes");
33
+ exports.StyledAspectRatioWrapper = styled_components_1.default.div(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n", "\nborder-radius: ", ";\noverflow: hidden;\nbackground-color: ", ";\n ", ";\n"], ["\n", "\nborder-radius: ", ";\noverflow: hidden;\nbackground-color: ", ";\n ", ";\n"])), function (_a) {
34
+ var width = _a.width, height = _a.height;
35
+ return "\n width: ".concat(width, ";\n height: ").concat(height, ";\n");
36
+ }, function (_a) {
37
+ var containerShape = _a.containerShape;
38
+ return containerShape === 'circle' && '50%';
39
+ }, function (_a) {
40
+ var invert = _a.invert;
41
+ return invert ? themes_1.colors.greyColor90 : themes_1.colors.greyColor5;
42
+ }, function (_a) {
43
+ var disableImageBorder = _a.disableImageBorder, invert = _a.invert;
44
+ return !disableImageBorder && (0, styled_components_1.css)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n border: 2px solid ", "\n "], ["\n border: 2px solid ", "\n "])), invert ? themes_1.colors.greyColor90 : themes_1.colors.greyColor5);
45
+ });
46
+ var templateObject_1, templateObject_2;
@@ -0,0 +1,5 @@
1
+ export function GalleryThumbnails({ activeIdx, setActiveIdx, }: {
2
+ activeIdx: any;
3
+ setActiveIdx: any;
4
+ }): React.JSX.Element;
5
+ import React from "react";
@@ -0,0 +1,94 @@
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
+ var __importDefault = (this && this.__importDefault) || function (mod) {
35
+ return (mod && mod.__esModule) ? mod : { "default": mod };
36
+ };
37
+ Object.defineProperty(exports, "__esModule", { value: true });
38
+ exports.GalleryThumbnails = void 0;
39
+ var react_1 = __importStar(require("react"));
40
+ var SkeletonLoader_1 = require("../../../../../LoadersAndProgress/SkeletonLoader");
41
+ var ImageInputContext_1 = require("../../../../ImageInputContext");
42
+ var ImageUploadShell_1 = __importDefault(require("../../../ImageUploadShell"));
43
+ var styled_1 = require("./styled");
44
+ var ImageDisplayInMask_1 = require("../../../../derivedComps/ImageDisplayInMask");
45
+ var themes_1 = require("../../../../../../themes");
46
+ var icons_1 = require("../../../../../../icons");
47
+ var useScreenWidth_1 = require("../../../../../../utils/customHooks/useScreenWidth");
48
+ var makeArrayFromLength_1 = require("../../../../../../utils/makeArrayFromLength");
49
+ var Plus = icons_1.icons.Plus;
50
+ var GalleryThumbnails = function (_a) {
51
+ var activeIdx = _a.activeIdx, setActiveIdx = _a.setActiveIdx;
52
+ var _b = (0, ImageInputContext_1.useImageInputContext)(), value = _b.value, isLoading = _b.isLoading, noOfImagesUploading = _b.noOfImagesUploading, readOnly = _b.readOnly, invert = _b.invert, aspectRatio = _b.aspectRatio;
53
+ var _c = (0, react_1.useState)(0), placeholderThumbsToRender = _c[0], setPlaceholderThumbsToRender = _c[1];
54
+ var totThumbsSpaceRef = (0, react_1.useRef)(null);
55
+ var addMoreThumbnailRef = (0, react_1.useRef)(null);
56
+ var screenWidth = (0, useScreenWidth_1.useScreenWidth)();
57
+ (0, react_1.useEffect)(function () {
58
+ if (!readOnly) {
59
+ var thumbnailWidth = addMoreThumbnailRef.current.offsetWidth;
60
+ var totAvailableSpace = totThumbsSpaceRef.current.offsetWidth - thumbnailWidth - 10;
61
+ var gap = 10;
62
+ var noOfThumbsWillFit = Math.floor(totAvailableSpace / (thumbnailWidth + gap));
63
+ setPlaceholderThumbsToRender(noOfThumbsWillFit);
64
+ }
65
+ }, [screenWidth]);
66
+ /**
67
+ * create array of thumbnails to render.
68
+ * this is made up of 2 things:
69
+ * 1 : the value array which holds the images data
70
+ * PLUS 2 : the noOfImagesUploading that will render skeleton loaders for images currently loading
71
+ */
72
+ var imageThumbnailsData = __spreadArray(__spreadArray([], ((0, makeArrayFromLength_1.makeArrayFromLength)(noOfImagesUploading).map(function (d) { return undefined; })), true), (value || []), true);
73
+ return (react_1.default.createElement("div", { ref: totThumbsSpaceRef, style: { display: 'flex', gap: '1rem' } },
74
+ !readOnly && (react_1.default.createElement(styled_1.StyledAddMoreThumbnail, { ref: addMoreThumbnailRef, disabled: isLoading, noBorder: true, invert: invert },
75
+ react_1.default.createElement(ImageUploadShell_1.default, { disabled: isLoading, multiple: true },
76
+ react_1.default.createElement("div", { style: {
77
+ display: "grid",
78
+ placeItems: "center",
79
+ cursor: "pointer",
80
+ height: "100%",
81
+ } },
82
+ react_1.default.createElement(Plus, { size: 24, weight: "bold", color: invert ? themes_1.colors.greyColor100 : themes_1.colors.white }))))),
83
+ react_1.default.createElement(styled_1.StyledSliderWrapper, null,
84
+ imageThumbnailsData.map(function (v, idx) {
85
+ return (react_1.default.createElement(styled_1.StyledImageThumbnail, { key: (v === null || v === void 0 ? void 0 : v.publicUrl) || idx, onClick: function () { return setActiveIdx(idx); }, isActive: activeIdx === idx, invert: invert }, v
86
+ ? react_1.default.createElement(ImageDisplayInMask_1.ImageDisplayInMask, { maskAspectRatio: '1', id: 'thumb' + idx, invert: invert, disableImageBorder: true, defaultImageSpread: 'contain', value: [v], aspectRatio: aspectRatio })
87
+ : react_1.default.createElement(SkeletonLoader_1.SkeletonLoader, { style: { width: '100%', height: '100%' } })));
88
+ }),
89
+ (!value || value.length === 0) &&
90
+ (0, makeArrayFromLength_1.makeArrayFromLength)(placeholderThumbsToRender).map(function (order) {
91
+ return (react_1.default.createElement(styled_1.StyledPlaceholderThumbnail, { key: "blank thumbnail" + order, isBlank: true }));
92
+ }))));
93
+ };
94
+ exports.GalleryThumbnails = GalleryThumbnails;
@@ -0,0 +1,5 @@
1
+ export const StyledSliderWrapper: import("styled-components").StyledComponent<"div", any, {}, never>;
2
+ export const thumbnailBaseCss: import("styled-components").FlattenInterpolation<import("styled-components").ThemeProps<any>>;
3
+ export const StyledAddMoreThumbnail: import("styled-components").StyledComponent<"div", any, {}, never>;
4
+ export const StyledImageThumbnail: import("styled-components").StyledComponent<"div", any, {}, never>;
5
+ export const StyledPlaceholderThumbnail: import("styled-components").StyledComponent<"div", any, {}, never>;
@@ -0,0 +1,68 @@
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.StyledPlaceholderThumbnail = exports.StyledImageThumbnail = exports.StyledAddMoreThumbnail = exports.thumbnailBaseCss = exports.StyledSliderWrapper = void 0;
31
+ var styled_components_1 = __importStar(require("styled-components"));
32
+ var themes_1 = require("../../../../../../themes");
33
+ var mixins_1 = require("../../../../../../themes/mixins");
34
+ var utilsOolib_1 = require("../../../../../../utilsOolib");
35
+ var greyColor15 = themes_1.colors.greyColor15, greyColor80 = themes_1.colors.greyColor80, greyColor70 = themes_1.colors.greyColor70, greyColor40 = themes_1.colors.greyColor40, none = themes_1.colors.none;
36
+ exports.StyledSliderWrapper = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n flex-shrink: 1;\n display: flex;\n gap: 1rem;\n overflow-x: auto;\n"], ["\n flex-shrink: 1;\n display: flex;\n gap: 1rem;\n overflow-x: auto;\n"])));
37
+ exports.thumbnailBaseCss = (0, styled_components_1.css)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n background-color: ", ";\n cursor: ", ";\n width: 6rem;\n height: 6rem;\n flex-shrink: 0;\n\n ", " {\n width: 9rem;\n height: 9rem;\n }\n\n ", ";\n"], ["\n background-color: ", ";\n cursor: ", ";\n width: 6rem;\n height: 6rem;\n flex-shrink: 0;\n\n ", " {\n width: 9rem;\n height: 9rem;\n }\n\n ", ";\n"])), function (_a) {
38
+ var invert = _a.invert, theme = _a.theme;
39
+ return invert ? (0, utilsOolib_1.getPrimaryColor40)(theme === null || theme === void 0 ? void 0 : theme.colors) : (0, utilsOolib_1.getPrimaryColor100)(theme === null || theme === void 0 ? void 0 : theme.colors);
40
+ }, function (_a) {
41
+ var isLoading = _a.isLoading;
42
+ return (isLoading ? "initial" : "pointer");
43
+ }, (0, mixins_1.mediaQuery)("sm"), (0, mixins_1.transition)("background-color"));
44
+ exports.StyledAddMoreThumbnail = styled_components_1.default.div(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n ", ";\n flex-shrink: 0;\n @media (hover: hover) {\n &:hover {\n background-color: ", ";\n }\n }\n\n ", "\n"], ["\n ", ";\n flex-shrink: 0;\n @media (hover: hover) {\n &:hover {\n background-color: ", ";\n }\n }\n\n ", "\n"])), exports.thumbnailBaseCss, function (_a) {
45
+ var invert = _a.invert, theme = _a.theme;
46
+ return invert ? (0, utilsOolib_1.getPrimaryColor10)(theme === null || theme === void 0 ? void 0 : theme.colors) : (0, utilsOolib_1.getPrimaryColor40)(theme === null || theme === void 0 ? void 0 : theme.colors);
47
+ }, function (_a) {
48
+ var disabled = _a.disabled;
49
+ return disabled && (0, styled_components_1.css)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n background-color: ", ";\n color: ", ";\n pointer-events: none;\n "], ["\n background-color: ", ";\n color: ", ";\n pointer-events: none;\n "])), function (_a) {
50
+ var invert = _a.invert;
51
+ return (invert ? greyColor70 : greyColor15);
52
+ }, greyColor40);
53
+ });
54
+ exports.StyledImageThumbnail = styled_components_1.default.div(templateObject_6 || (templateObject_6 = __makeTemplateObject(["\n ", ";\n position: relative;\n overflow: hidden;\n ", "\n"], ["\n ", ";\n position: relative;\n overflow: hidden;\n ", "\n"])), exports.thumbnailBaseCss, function (_a) {
55
+ var theme = _a.theme, isActive = _a.isActive, invert = _a.invert;
56
+ return (0, styled_components_1.css)(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n border: 2px solid ", "};\n "], ["\n border: 2px solid ", "};\n "])), isActive
57
+ ? invert
58
+ ? (0, utilsOolib_1.getPrimaryColor40)(theme === null || theme === void 0 ? void 0 : theme.colors)
59
+ : (0, utilsOolib_1.getPrimaryColor100)(theme === null || theme === void 0 ? void 0 : theme.colors)
60
+ : invert
61
+ ? greyColor80
62
+ : greyColor15);
63
+ });
64
+ exports.StyledPlaceholderThumbnail = styled_components_1.default.div(templateObject_7 || (templateObject_7 = __makeTemplateObject(["\n ", ";\n background-color: ", ";\n border: 2px solid ", ";\n"], ["\n ", ";\n background-color: ", ";\n border: 2px solid ", ";\n"])), exports.thumbnailBaseCss, none, function (_a) {
65
+ var theme = _a.theme;
66
+ return (0, utilsOolib_1.getPrimaryColor10)(theme === null || theme === void 0 ? void 0 : theme.colors);
67
+ });
68
+ var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6, templateObject_7;
@@ -0,0 +1,7 @@
1
+ export function SliderShell({ value, activeIdx, setActiveIdx, render, }: {
2
+ value: any;
3
+ activeIdx: any;
4
+ setActiveIdx: any;
5
+ render: any;
6
+ }): React.JSX.Element;
7
+ import React from "react";
@@ -0,0 +1,58 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.SliderShell = void 0;
27
+ var react_1 = __importStar(require("react"));
28
+ var styled_1 = require("./styled");
29
+ var ImageInputContext_1 = require("../../../../ImageInputContext");
30
+ var calcAspectRatio_1 = require("../../../ImageEditor/utils/calcAspectRatio");
31
+ var themes_1 = require("../../../../../../themes");
32
+ var icons_1 = require("../../../../../../icons");
33
+ var Typo_1 = require("../../../../../Typo");
34
+ var greyColor80 = themes_1.colors.greyColor80;
35
+ var CaretLeft = icons_1.icons.CaretLeft, CaretRight = icons_1.icons.CaretRight;
36
+ var SliderShell = function (_a) {
37
+ var value = _a.value, activeIdx = _a.activeIdx, setActiveIdx = _a.setActiveIdx, render = _a.render;
38
+ var _b = (0, ImageInputContext_1.useImageInputContext)(), aspectRatio = _b.aspectRatio, isLoading = _b.isLoading, imageUnderEdit = _b.imageUnderEdit;
39
+ var wrapperRef = (0, react_1.useRef)(null);
40
+ var _c = (0, react_1.useState)(undefined), imageMinusCaptionHeight = _c[0], setImageMinusCaptionHeight = _c[1];
41
+ (0, react_1.useEffect)(function () {
42
+ setImageMinusCaptionHeight(wrapperRef.current.clientWidth / (0, calcAspectRatio_1.calcAspectRatio)(aspectRatio));
43
+ }, []);
44
+ return (react_1.default.createElement(styled_1.StyledFlexWrapper, { ref: wrapperRef },
45
+ value.map(function (v, idx) { return (react_1.default.createElement(styled_1.StyledFlexItem, { key: (v === null || v === void 0 ? void 0 : v.publicUrl) || idx, marginLeft: idx === 0 && activeIdx * -100 + "%" }, render(v, idx) /* explicitly called, cuz we want an error to throw if render prop aint passed thru */)); }),
46
+ !isLoading && value.length > 1 && !imageUnderEdit && react_1.default.createElement(react_1.Fragment, null,
47
+ react_1.default.createElement(styled_1.StyledCaretLeft, { onClick: function () {
48
+ return setActiveIdx(activeIdx > 0 ? activeIdx - 1 : value.length - 1);
49
+ }, imageMinusCaptionHeight: imageMinusCaptionHeight },
50
+ react_1.default.createElement(CaretLeft, { weight: "duotone", size: 45, color: greyColor80 })),
51
+ react_1.default.createElement(styled_1.StyledCaretRight, { imageMinusCaptionHeight: imageMinusCaptionHeight, onClick: function () {
52
+ return setActiveIdx(activeIdx < value.length - 1 ? activeIdx + 1 : 0);
53
+ } },
54
+ react_1.default.createElement(CaretRight, { weight: "duotone", size: 45, color: greyColor80 })),
55
+ react_1.default.createElement(styled_1.StyledXOfY, { imageMinusCaptionHeight: imageMinusCaptionHeight },
56
+ react_1.default.createElement(Typo_1.SANS_3, null, activeIdx + 1 + "/" + value.length)))));
57
+ };
58
+ exports.SliderShell = SliderShell;
@@ -0,0 +1,5 @@
1
+ export const StyledFlexWrapper: import("styled-components").StyledComponent<"div", any, {}, never>;
2
+ export const StyledFlexItem: import("styled-components").StyledComponent<"div", any, {}, never>;
3
+ export const StyledCaretLeft: import("styled-components").StyledComponent<"div", any, {}, never>;
4
+ export const StyledCaretRight: import("styled-components").StyledComponent<"div", any, {}, never>;
5
+ export const StyledXOfY: import("styled-components").StyledComponent<"div", any, {}, never>;