cozy-ui 110.6.0 → 110.7.0

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/CHANGELOG.md CHANGED
@@ -1,3 +1,15 @@
1
+ # [110.7.0](https://github.com/cozy/cozy-ui/compare/v110.6.0...v110.7.0) (2024-07-09)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * **ActionsMenu/addImageToPdf:** Correct excessive weight when adding img ([ee7e46c](https://github.com/cozy/cozy-ui/commit/ee7e46c))
7
+
8
+
9
+ ### Features
10
+
11
+ * **ActionsMenu/resizeImage:** Remove unnecessary param ([c6d06e8](https://github.com/cozy/cozy-ui/commit/c6d06e8))
12
+
1
13
  # [110.6.0](https://github.com/cozy/cozy-ui/compare/v110.5.0...v110.6.0) (2024-07-08)
2
14
 
3
15
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cozy-ui",
3
- "version": "110.6.0",
3
+ "version": "110.7.0",
4
4
  "description": "Cozy apps UI SDK",
5
5
  "main": "./index.js",
6
6
  "bin": {
@@ -92,14 +92,13 @@ export const makeBase64FromFile = async file => {
92
92
 
93
93
  /**
94
94
  * @param {HTMLImageElement} image
95
- * @param {number} [maxSizeInPixel] - Maximum size before being resized
96
95
  * @returns {number}
97
96
  */
98
- const getImageScaleRatio = (image, maxSize) => {
97
+ const getImageScaleRatio = image => {
99
98
  const longerSideSizeInPixel = Math.max(image.height, image.width)
100
99
  let scaleRatio = 1
101
- if (maxSize < longerSideSizeInPixel) {
102
- scaleRatio = maxSize / longerSideSizeInPixel
100
+ if (MAX_RESIZE_IMAGE_SIZE < longerSideSizeInPixel) {
101
+ scaleRatio = MAX_RESIZE_IMAGE_SIZE / longerSideSizeInPixel
103
102
  }
104
103
 
105
104
  return scaleRatio
@@ -108,22 +107,16 @@ const getImageScaleRatio = (image, maxSize) => {
108
107
  /**
109
108
  * @param {object} opts
110
109
  * @param {string} opts.base64 - Base64 of image
111
- * @param {string} opts.type - Type of image
112
- * @param {number} opts.maxSize - Maximum size before being resized
113
110
  * @returns {Promise<string>}
114
111
  */
115
- const resizeImage = async ({
116
- base64: fileDataUri,
117
- type: fileType,
118
- maxSize
119
- }) => {
112
+ const resizeImage = async ({ base64: fileDataUri }) => {
120
113
  return new Promise((resolve, reject) => {
121
114
  const newImage = new Image()
122
115
  newImage.src = fileDataUri
123
116
  newImage.onerror = reject
124
117
  newImage.onload = () => {
125
118
  const canvas = document.createElement('canvas')
126
- const scaleRatio = getImageScaleRatio(newImage, maxSize)
119
+ const scaleRatio = getImageScaleRatio(newImage)
127
120
  const scaledWidth = scaleRatio * newImage.width
128
121
  const scaledHeight = scaleRatio * newImage.height
129
122
  const quality =
@@ -138,7 +131,7 @@ const resizeImage = async ({
138
131
  .getContext('2d')
139
132
  .drawImage(newImage, 0, 0, scaledWidth, scaledHeight)
140
133
 
141
- resolve(canvas.toDataURL(fileType, quality))
134
+ resolve(canvas.toDataURL('image/jpeg', quality))
142
135
  }
143
136
  })
144
137
  }
@@ -157,6 +150,7 @@ const fileToDataUri = async file => {
157
150
  }
158
151
 
159
152
  /**
153
+ * Compress image and add it to pdf
160
154
  * @param {PDFDocument} pdfDoc
161
155
  * @param {File} file
162
156
  * @returns {Promise<void>}
@@ -164,14 +158,9 @@ const fileToDataUri = async file => {
164
158
  const addImageToPdf = async (pdfDoc, file) => {
165
159
  const fileDataUri = await fileToDataUri(file)
166
160
  const resizedImage = await resizeImage({
167
- base64: fileDataUri,
168
- type: file.type,
169
- maxSize: MAX_RESIZE_IMAGE_SIZE
161
+ base64: fileDataUri
170
162
  })
171
-
172
- let img
173
- if (file.type === 'image/png') img = await pdfDoc.embedPng(resizedImage)
174
- if (file.type === 'image/jpeg') img = await pdfDoc.embedJpg(resizedImage)
163
+ const img = await pdfDoc.embedJpg(resizedImage)
175
164
 
176
165
  const page = pdfDoc.addPage([img.width, img.height])
177
166
  const { width: pageWidth, height: pageHeight } = page.getSize()
@@ -103,16 +103,15 @@ export var makeBase64FromFile = /*#__PURE__*/function () {
103
103
  }();
104
104
  /**
105
105
  * @param {HTMLImageElement} image
106
- * @param {number} [maxSizeInPixel] - Maximum size before being resized
107
106
  * @returns {number}
108
107
  */
109
108
 
110
- var getImageScaleRatio = function getImageScaleRatio(image, maxSize) {
109
+ var getImageScaleRatio = function getImageScaleRatio(image) {
111
110
  var longerSideSizeInPixel = Math.max(image.height, image.width);
112
111
  var scaleRatio = 1;
113
112
 
114
- if (maxSize < longerSideSizeInPixel) {
115
- scaleRatio = maxSize / longerSideSizeInPixel;
113
+ if (MAX_RESIZE_IMAGE_SIZE < longerSideSizeInPixel) {
114
+ scaleRatio = MAX_RESIZE_IMAGE_SIZE / longerSideSizeInPixel;
116
115
  }
117
116
 
118
117
  return scaleRatio;
@@ -120,20 +119,18 @@ var getImageScaleRatio = function getImageScaleRatio(image, maxSize) {
120
119
  /**
121
120
  * @param {object} opts
122
121
  * @param {string} opts.base64 - Base64 of image
123
- * @param {string} opts.type - Type of image
124
- * @param {number} opts.maxSize - Maximum size before being resized
125
122
  * @returns {Promise<string>}
126
123
  */
127
124
 
128
125
 
129
126
  var resizeImage = /*#__PURE__*/function () {
130
127
  var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(_ref3) {
131
- var fileDataUri, fileType, maxSize;
128
+ var fileDataUri;
132
129
  return _regeneratorRuntime.wrap(function _callee2$(_context2) {
133
130
  while (1) {
134
131
  switch (_context2.prev = _context2.next) {
135
132
  case 0:
136
- fileDataUri = _ref3.base64, fileType = _ref3.type, maxSize = _ref3.maxSize;
133
+ fileDataUri = _ref3.base64;
137
134
  return _context2.abrupt("return", new Promise(function (resolve, reject) {
138
135
  var newImage = new Image();
139
136
  newImage.src = fileDataUri;
@@ -141,14 +138,14 @@ var resizeImage = /*#__PURE__*/function () {
141
138
 
142
139
  newImage.onload = function () {
143
140
  var canvas = document.createElement('canvas');
144
- var scaleRatio = getImageScaleRatio(newImage, maxSize);
141
+ var scaleRatio = getImageScaleRatio(newImage);
145
142
  var scaledWidth = scaleRatio * newImage.width;
146
143
  var scaledHeight = scaleRatio * newImage.height;
147
144
  var quality = scaledWidth >= MAX_IMAGE_SIDE_SIZE || scaledHeight >= MAX_IMAGE_SIDE_SIZE ? 0.35 : 0.75;
148
145
  canvas.width = scaledWidth;
149
146
  canvas.height = scaledHeight;
150
147
  canvas.getContext('2d').drawImage(newImage, 0, 0, scaledWidth, scaledHeight);
151
- resolve(canvas.toDataURL(fileType, quality));
148
+ resolve(canvas.toDataURL('image/jpeg', quality));
152
149
  };
153
150
  }));
154
151
 
@@ -200,6 +197,7 @@ var fileToDataUri = /*#__PURE__*/function () {
200
197
  };
201
198
  }();
202
199
  /**
200
+ * Compress image and add it to pdf
203
201
  * @param {PDFDocument} pdfDoc
204
202
  * @param {File} file
205
203
  * @returns {Promise<void>}
@@ -221,38 +219,16 @@ var addImageToPdf = /*#__PURE__*/function () {
221
219
  fileDataUri = _context4.sent;
222
220
  _context4.next = 5;
223
221
  return resizeImage({
224
- base64: fileDataUri,
225
- type: file.type,
226
- maxSize: MAX_RESIZE_IMAGE_SIZE
222
+ base64: fileDataUri
227
223
  });
228
224
 
229
225
  case 5:
230
226
  resizedImage = _context4.sent;
231
-
232
- if (!(file.type === 'image/png')) {
233
- _context4.next = 10;
234
- break;
235
- }
236
-
237
- _context4.next = 9;
238
- return pdfDoc.embedPng(resizedImage);
239
-
240
- case 9:
241
- img = _context4.sent;
242
-
243
- case 10:
244
- if (!(file.type === 'image/jpeg')) {
245
- _context4.next = 14;
246
- break;
247
- }
248
-
249
- _context4.next = 13;
227
+ _context4.next = 8;
250
228
  return pdfDoc.embedJpg(resizedImage);
251
229
 
252
- case 13:
230
+ case 8:
253
231
  img = _context4.sent;
254
-
255
- case 14:
256
232
  page = pdfDoc.addPage([img.width, img.height]);
257
233
  _page$getSize = page.getSize(), pageWidth = _page$getSize.width, pageHeight = _page$getSize.height;
258
234
  page.drawImage(img, {
@@ -262,7 +238,7 @@ var addImageToPdf = /*#__PURE__*/function () {
262
238
  height: img.height
263
239
  });
264
240
 
265
- case 17:
241
+ case 12:
266
242
  case "end":
267
243
  return _context4.stop();
268
244
  }