allaw-ui 5.1.5 → 5.1.6
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.
|
@@ -264,10 +264,16 @@ var FileUploader = function (_a) {
|
|
|
264
264
|
*/
|
|
265
265
|
var cropImageToBlob = function (imageUrl, cropMetadata, outputWidth, outputHeight) { return __awaiter(void 0, void 0, void 0, function () {
|
|
266
266
|
return __generator(this, function (_a) {
|
|
267
|
+
console.log("🔪 [FileUploader] cropImageToBlob appelé");
|
|
268
|
+
console.log(" - imageUrl:", imageUrl);
|
|
269
|
+
console.log(" - cropMetadata:", cropMetadata);
|
|
270
|
+
console.log(" - outputWidth:", outputWidth, "outputHeight:", outputHeight);
|
|
267
271
|
return [2 /*return*/, new Promise(function (resolve, reject) {
|
|
268
272
|
var img = new window.Image();
|
|
269
273
|
img.crossOrigin = "anonymous";
|
|
270
274
|
img.onload = function () {
|
|
275
|
+
console.log("✅ [FileUploader] Image chargée dans cropImageToBlob");
|
|
276
|
+
console.log(" - img.width:", img.width, "img.height:", img.height);
|
|
271
277
|
try {
|
|
272
278
|
// Créer un canvas aux dimensions de sortie
|
|
273
279
|
var canvas = document.createElement("canvas");
|
|
@@ -348,22 +354,30 @@ var FileUploader = function (_a) {
|
|
|
348
354
|
ctx.putImageData(imageData, 0, 0);
|
|
349
355
|
}
|
|
350
356
|
// Convertir en Blob PNG
|
|
357
|
+
console.log("🖼️ [FileUploader] Conversion canvas vers Blob...");
|
|
351
358
|
canvas.toBlob(function (blob) {
|
|
352
359
|
if (blob) {
|
|
360
|
+
console.log("✅ [FileUploader] Blob créé avec succès, taille:", blob.size);
|
|
353
361
|
resolve(blob);
|
|
354
362
|
}
|
|
355
363
|
else {
|
|
364
|
+
console.error("❌ [FileUploader] Échec de la conversion canvas vers Blob");
|
|
356
365
|
reject(new Error("Échec de la conversion canvas vers Blob"));
|
|
357
366
|
}
|
|
358
367
|
}, "image/png", 0.95);
|
|
359
368
|
}
|
|
360
369
|
catch (error) {
|
|
370
|
+
console.error("❌ [FileUploader] Erreur dans img.onload:", error);
|
|
361
371
|
reject(error);
|
|
362
372
|
}
|
|
363
373
|
};
|
|
364
|
-
img.onerror = function () {
|
|
374
|
+
img.onerror = function (error) {
|
|
375
|
+
console.error("❌ [FileUploader] Erreur de chargement de l'image");
|
|
376
|
+
console.error(" - imageUrl:", imageUrl);
|
|
377
|
+
console.error(" - error:", error);
|
|
365
378
|
reject(new Error("Échec du chargement de l'image"));
|
|
366
379
|
};
|
|
380
|
+
console.log("📤 [FileUploader] Définition de img.src:", imageUrl);
|
|
367
381
|
img.src = imageUrl;
|
|
368
382
|
})];
|
|
369
383
|
});
|
|
@@ -372,33 +386,55 @@ var FileUploader = function (_a) {
|
|
|
372
386
|
setShowCropper(false);
|
|
373
387
|
};
|
|
374
388
|
var handleCropConfirm = function (cropMetadata) { return __awaiter(void 0, void 0, void 0, function () {
|
|
375
|
-
var dimensions,
|
|
376
|
-
|
|
377
|
-
|
|
389
|
+
var dimensions, fileToUse, imageToCropUrl, croppedBlob, croppedFile, croppedContent, croppedUrl, error_2;
|
|
390
|
+
var _a, _b;
|
|
391
|
+
return __generator(this, function (_c) {
|
|
392
|
+
switch (_c.label) {
|
|
378
393
|
case 0:
|
|
394
|
+
console.log("✂️ [FileUploader] handleCropConfirm appelé");
|
|
395
|
+
console.log(" - cropMetadata:", cropMetadata);
|
|
396
|
+
console.log(" - clientSideCrop:", clientSideCrop);
|
|
397
|
+
console.log(" - selectedFile:", selectedFile === null || selectedFile === void 0 ? void 0 : selectedFile.name, "size:", selectedFile === null || selectedFile === void 0 ? void 0 : selectedFile.size);
|
|
398
|
+
console.log(" - originalFileRef.current:", (_a = originalFileRef.current) === null || _a === void 0 ? void 0 : _a.name, "size:", (_b = originalFileRef.current) === null || _b === void 0 ? void 0 : _b.size);
|
|
399
|
+
console.log(" - originalImageUrlRef.current:", originalImageUrlRef.current);
|
|
400
|
+
console.log(" - previewUrl:", previewUrl);
|
|
379
401
|
setShowCropper(false);
|
|
380
402
|
setCropMetadata(cropMetadata);
|
|
381
403
|
if (autoManageProgress) {
|
|
382
404
|
startProgressSimulation();
|
|
383
405
|
}
|
|
384
|
-
if (!(selectedFile && fileContent
|
|
385
|
-
if (!clientSideCrop) return [3 /*break*/,
|
|
386
|
-
|
|
406
|
+
if (!(selectedFile && fileContent)) return [3 /*break*/, 10];
|
|
407
|
+
if (!clientSideCrop) return [3 /*break*/, 9];
|
|
408
|
+
_c.label = 1;
|
|
387
409
|
case 1:
|
|
388
|
-
|
|
410
|
+
_c.trys.push([1, 7, , 8]);
|
|
389
411
|
dimensions = cropOutputDimensions[cropMetadata.shape] ||
|
|
390
412
|
cropOutputDimensions.square || { width: 200, height: 200 };
|
|
391
|
-
|
|
392
|
-
|
|
413
|
+
console.log("📐 [FileUploader] Dimensions de sortie:", dimensions);
|
|
414
|
+
fileToUse = originalFileRef.current || selectedFile;
|
|
415
|
+
console.log("📁 [FileUploader] Fichier à utiliser pour le crop:", fileToUse.name, "size:", fileToUse.size, "type:", fileToUse.type);
|
|
416
|
+
imageToCropUrl = URL.createObjectURL(fileToUse);
|
|
417
|
+
console.log("🔗 [FileUploader] URL blob créée pour le crop:", imageToCropUrl);
|
|
418
|
+
_c.label = 2;
|
|
393
419
|
case 2:
|
|
394
|
-
|
|
395
|
-
|
|
420
|
+
_c.trys.push([2, , 5, 6]);
|
|
421
|
+
// Cropper l'image côté client
|
|
422
|
+
console.log("🔄 [FileUploader] Appel de cropImageToBlob...");
|
|
423
|
+
return [4 /*yield*/, cropImageToBlob(imageToCropUrl, cropMetadata, dimensions.width, dimensions.height)];
|
|
424
|
+
case 3:
|
|
425
|
+
croppedBlob = _c.sent();
|
|
426
|
+
console.log("✅ [FileUploader] cropImageToBlob terminé, blob size:", croppedBlob.size);
|
|
427
|
+
croppedFile = new File([croppedBlob], fileToUse.name.replace(/\.[^/.]+$/, ".png"), // Remplacer l'extension par .png
|
|
396
428
|
{ type: "image/png" });
|
|
429
|
+
console.log("📄 [FileUploader] File croppé créé:", croppedFile.name, "size:", croppedFile.size);
|
|
397
430
|
return [4 /*yield*/, croppedFile.arrayBuffer()];
|
|
398
|
-
case
|
|
399
|
-
croppedContent =
|
|
431
|
+
case 4:
|
|
432
|
+
croppedContent = _c.sent();
|
|
433
|
+
console.log("📦 [FileUploader] Contenu du fichier croppé lu, size:", croppedContent.byteLength);
|
|
400
434
|
croppedUrl = URL.createObjectURL(croppedBlob);
|
|
435
|
+
console.log("🖼️ [FileUploader] URL blob créée pour la preview:", croppedUrl);
|
|
401
436
|
if (previewUrl && !initialPreviewUrl) {
|
|
437
|
+
console.log("🗑️ [FileUploader] Révoquement de l'ancienne previewUrl:", previewUrl);
|
|
402
438
|
URL.revokeObjectURL(previewUrl);
|
|
403
439
|
}
|
|
404
440
|
setPreviewUrl(croppedUrl);
|
|
@@ -409,20 +445,29 @@ var FileUploader = function (_a) {
|
|
|
409
445
|
// Plus besoin d'appliquer les transformations CSS
|
|
410
446
|
setCropMetadata(null);
|
|
411
447
|
// Appeler onFileRead avec le fichier croppé (pas de cropMetadata car déjà croppé)
|
|
448
|
+
console.log("📞 [FileUploader] Appel de onFileRead avec le fichier croppé");
|
|
412
449
|
onFileRead === null || onFileRead === void 0 ? void 0 : onFileRead(croppedFile, croppedContent);
|
|
413
|
-
return [3 /*break*/,
|
|
414
|
-
case
|
|
415
|
-
|
|
416
|
-
console.
|
|
450
|
+
return [3 /*break*/, 6];
|
|
451
|
+
case 5:
|
|
452
|
+
// Toujours nettoyer l'URL blob temporaire créée pour le crop
|
|
453
|
+
console.log("🗑️ [FileUploader] Révoquement de l'URL blob temporaire:", imageToCropUrl);
|
|
454
|
+
URL.revokeObjectURL(imageToCropUrl);
|
|
455
|
+
return [7 /*endfinally*/];
|
|
456
|
+
case 6: return [3 /*break*/, 8];
|
|
457
|
+
case 7:
|
|
458
|
+
error_2 = _c.sent();
|
|
459
|
+
console.error("❌ [FileUploader] Erreur lors du crop de l'image:", error_2);
|
|
460
|
+
console.error(" - error details:", error_2);
|
|
417
461
|
// En cas d'erreur, fallback sur l'image originale avec métadonnées
|
|
462
|
+
console.log("🔄 [FileUploader] Fallback sur l'image originale");
|
|
418
463
|
onFileRead === null || onFileRead === void 0 ? void 0 : onFileRead(selectedFile, fileContent, cropMetadata);
|
|
419
|
-
return [3 /*break*/,
|
|
420
|
-
case
|
|
421
|
-
case
|
|
464
|
+
return [3 /*break*/, 8];
|
|
465
|
+
case 8: return [3 /*break*/, 10];
|
|
466
|
+
case 9:
|
|
422
467
|
// Passer l'image originale avec les métadonnées au serveur
|
|
423
468
|
onFileRead === null || onFileRead === void 0 ? void 0 : onFileRead(selectedFile, fileContent, cropMetadata);
|
|
424
|
-
|
|
425
|
-
case
|
|
469
|
+
_c.label = 10;
|
|
470
|
+
case 10: return [2 /*return*/];
|
|
426
471
|
}
|
|
427
472
|
});
|
|
428
473
|
}); };
|