@colijnit/mainapi 300.1.15 → 300.1.16

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.
@@ -22,6 +22,9 @@ export declare class FileUtils {
22
22
  static ReadAsText(file: File): Promise<string>;
23
23
  static readAsDataURL(file: File): Promise<string>;
24
24
  static ReadFileAsNewCoDocument(file: File, resize?: boolean, maxSizeInPixels?: number): Promise<CoDocument>;
25
+ static IsHeicFile(file: File): boolean;
26
+ static ConvertHeicToJpeg(file: File, jpegQuality?: number): Promise<File>;
27
+ private static _readFileAsNewCoDocument;
25
28
  static ResizeImage(src: string, fileType: string, maxSizeInPixels: number): Promise<string>;
26
29
  static CalculateSha256Hash(file: ArrayBuffer): Promise<string>;
27
30
  static ReadFileAsDataURL(file: File): Promise<string>;
@@ -79,6 +79,8 @@ class FileUtils {
79
79
  case "tiff":
80
80
  case "tga":
81
81
  case "dds":
82
+ case "heic":
83
+ case "heif":
82
84
  return file_type_internal_enum_1.FileTypeInternal.Image;
83
85
  case "swf":
84
86
  return file_type_internal_enum_1.FileTypeInternal.Swf;
@@ -290,7 +292,28 @@ class FileUtils {
290
292
  };
291
293
  });
292
294
  }
293
- static ReadFileAsNewCoDocument(file, resize = false, maxSizeInPixels = 1200) {
295
+ static ReadFileAsNewCoDocument(file_1) {
296
+ return __awaiter(this, arguments, void 0, function* (file, resize = false, maxSizeInPixels = 1200) {
297
+ const readableFile = FileUtils.IsHeicFile(file) ? yield FileUtils.ConvertHeicToJpeg(file) : file;
298
+ return FileUtils._readFileAsNewCoDocument(readableFile, resize, maxSizeInPixels);
299
+ });
300
+ }
301
+ static IsHeicFile(file) {
302
+ if (!file) {
303
+ return false;
304
+ }
305
+ const mimeType = (file.type || "").toLowerCase();
306
+ return mimeType === "image/heic" || mimeType === "image/heif" || /\.(heic|heif)$/i.test(file.name);
307
+ }
308
+ static ConvertHeicToJpeg(file_1) {
309
+ return __awaiter(this, arguments, void 0, function* (file, jpegQuality = 0.9) {
310
+ const { heicTo } = yield Promise.resolve().then(() => __importStar(require("heic-to")));
311
+ const jpeg = yield heicTo({ blob: file, type: "image/jpeg", quality: jpegQuality });
312
+ const fileName = file.name.replace(/\.(heic|heif)$/i, ".jpg");
313
+ return new File([jpeg], fileName, { type: "image/jpeg", lastModified: file.lastModified });
314
+ });
315
+ }
316
+ static _readFileAsNewCoDocument(file, resize, maxSizeInPixels) {
294
317
  return new Promise((resolve) => {
295
318
  const reader = new FileReader();
296
319
  reader.readAsDataURL(file);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@colijnit/mainapi",
3
- "version": "300.1.15",
3
+ "version": "300.1.16",
4
4
  "scripts": {
5
5
  "build": "grunt clean && tsc",
6
6
  "browserify": "browserify build/connector.js --s colijn -o dist/out-tsc/bundle.js",
@@ -19,6 +19,7 @@
19
19
  "license": "ISC",
20
20
  "private": false,
21
21
  "dependencies": {
22
+ "heic-to": "^1.6.7",
22
23
  "qrcode": "^1.4.4",
23
24
  "reflect-metadata": "^0.1.12",
24
25
  "rxjs": "6.6.3"