jodit 4.13.21 → 4.13.22

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 (64) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/es2015/jodit.css +1 -1
  3. package/es2015/jodit.fat.min.css +1 -1
  4. package/es2015/jodit.fat.min.js +4 -4
  5. package/es2015/jodit.js +20 -32
  6. package/es2015/jodit.min.css +1 -1
  7. package/es2015/jodit.min.js +4 -4
  8. package/es2015/plugins/debug/debug.css +1 -1
  9. package/es2015/plugins/debug/debug.js +1 -1
  10. package/es2015/plugins/debug/debug.min.js +1 -1
  11. package/es2015/plugins/speech-recognize/speech-recognize.css +1 -1
  12. package/es2015/plugins/speech-recognize/speech-recognize.js +1 -1
  13. package/es2015/plugins/speech-recognize/speech-recognize.min.js +1 -1
  14. package/es2018/jodit.fat.min.css +1 -1
  15. package/es2018/jodit.fat.min.js +4 -4
  16. package/es2018/jodit.min.css +1 -1
  17. package/es2018/jodit.min.js +4 -4
  18. package/es2018/plugins/debug/debug.min.js +1 -1
  19. package/es2018/plugins/speech-recognize/speech-recognize.min.js +1 -1
  20. package/es2021/jodit.css +1 -1
  21. package/es2021/jodit.fat.min.css +1 -1
  22. package/es2021/jodit.fat.min.js +4 -4
  23. package/es2021/jodit.js +18 -32
  24. package/es2021/jodit.min.css +1 -1
  25. package/es2021/jodit.min.js +4 -4
  26. package/es2021/plugins/debug/debug.css +1 -1
  27. package/es2021/plugins/debug/debug.js +1 -1
  28. package/es2021/plugins/debug/debug.min.js +1 -1
  29. package/es2021/plugins/speech-recognize/speech-recognize.css +1 -1
  30. package/es2021/plugins/speech-recognize/speech-recognize.js +1 -1
  31. package/es2021/plugins/speech-recognize/speech-recognize.min.js +1 -1
  32. package/es2021.en/jodit.css +1 -1
  33. package/es2021.en/jodit.fat.min.css +1 -1
  34. package/es2021.en/jodit.fat.min.js +4 -4
  35. package/es2021.en/jodit.js +18 -32
  36. package/es2021.en/jodit.min.css +1 -1
  37. package/es2021.en/jodit.min.js +4 -4
  38. package/es2021.en/plugins/debug/debug.css +1 -1
  39. package/es2021.en/plugins/debug/debug.js +1 -1
  40. package/es2021.en/plugins/debug/debug.min.js +1 -1
  41. package/es2021.en/plugins/speech-recognize/speech-recognize.css +1 -1
  42. package/es2021.en/plugins/speech-recognize/speech-recognize.js +1 -1
  43. package/es2021.en/plugins/speech-recognize/speech-recognize.min.js +1 -1
  44. package/es5/jodit.css +2 -2
  45. package/es5/jodit.fat.min.css +1 -1
  46. package/es5/jodit.fat.min.js +2 -2
  47. package/es5/jodit.js +46 -32
  48. package/es5/jodit.min.css +3 -3
  49. package/es5/jodit.min.js +2 -2
  50. package/es5/plugins/debug/debug.css +1 -1
  51. package/es5/plugins/debug/debug.js +1 -1
  52. package/es5/plugins/debug/debug.min.js +1 -1
  53. package/es5/plugins/speech-recognize/speech-recognize.css +1 -1
  54. package/es5/plugins/speech-recognize/speech-recognize.js +1 -1
  55. package/es5/plugins/speech-recognize/speech-recognize.min.js +1 -1
  56. package/es5/polyfills.fat.min.js +2 -2
  57. package/es5/polyfills.js +213 -87
  58. package/es5/polyfills.min.js +2 -2
  59. package/esm/core/constants.js +1 -1
  60. package/esm/modules/uploader/helpers/data-uri-to-blob.d.ts +3 -1
  61. package/esm/modules/uploader/helpers/data-uri-to-blob.js +7 -8
  62. package/esm/plugins/image-processor/image-processor.js +11 -19
  63. package/package.json +1 -1
  64. package/types/modules/uploader/helpers/data-uri-to-blob.d.ts +3 -1
package/es2021/jodit.js CHANGED
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * jodit - Jodit is an awesome and useful wysiwyg editor with filebrowser
3
3
  * Author: Chupurnov <chupurnov@gmail.com> (https://xdsoft.net/jodit/)
4
- * Version: v4.13.21
4
+ * Version: v4.13.22
5
5
  * Url: https://xdsoft.net/jodit/
6
6
  * License(s): MIT
7
7
  */
@@ -1843,7 +1843,7 @@ __webpack_require__.r(__webpack_exports__);
1843
1843
  * ```
1844
1844
  * @packageDocumentation
1845
1845
  * @module constants
1846
- */ const APP_VERSION = "4.13.21";
1846
+ */ const APP_VERSION = "4.13.22";
1847
1847
  // prettier-ignore
1848
1848
  const ES = "es2021";
1849
1849
  const IS_ES_MODERN = true;
@@ -24807,13 +24807,11 @@ function buildData(uploader, data) {
24807
24807
  */ /**
24808
24808
  * @module modules/uploader
24809
24809
  */ /**
24810
- * Convert dataURI to Blob
24810
+ * Convert dataURI to Blob. Both base64 and percent-encoded payloads are
24811
+ * supported — `data:image/svg+xml,%3Csvg...` is as valid as
24812
+ * `data:image/png;base64,...`
24811
24813
  */ function dataURItoBlob(dataURI) {
24812
- // convert base64 to raw binary data held in a string
24813
- // doesn't handle URLEncoded DataURIs - see SO answer #6850276 for code that does this
24814
- const byteString = atob(dataURI.split(',')[1]), // separate out the mime component
24815
- mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0], // write the bytes of the string to an ArrayBuffer
24816
- ab = new ArrayBuffer(byteString.length), ia = new Uint8Array(ab);
24814
+ const [header, ...rest] = dataURI.split(','), payload = rest.join(','), mimeString = header.split(':')[1]?.split(';')[0] ?? '', byteString = /;base64/i.test(header) ? atob(payload) : decodeURIComponent(payload), ab = new ArrayBuffer(byteString.length), ia = new Uint8Array(ab);
24817
24815
  for(let i = 0; i < byteString.length; i += 1){
24818
24816
  ia[i] = byteString.charCodeAt(i);
24819
24817
  }
@@ -32298,7 +32296,8 @@ jodit_config__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.imageProcessor = {
32298
32296
  /* harmony import */ var jodit_core_global__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(28077);
32299
32297
  /* harmony import */ var jodit_core_helpers__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(65946);
32300
32298
  /* harmony import */ var jodit_core_plugin__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(91206);
32301
- /* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(51034);
32299
+ /* harmony import */ var jodit_modules_uploader_helpers_data_uri_to_blob__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(23112);
32300
+ /* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(51034);
32302
32301
  /*!
32303
32302
  * Jodit Editor (https://xdsoft.net/jodit/)
32304
32303
  * Released under MIT see LICENSE.txt in the project root for license information.
@@ -32314,6 +32313,7 @@ jodit_config__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.imageProcessor = {
32314
32313
 
32315
32314
 
32316
32315
 
32316
+
32317
32317
  const JODIT_IMAGE_PROCESSOR_BINDED = '__jodit_imageprocessor_binded';
32318
32318
  const JODIT_IMAGE_BLOB_ID = JODIT_IMAGE_PROCESSOR_BINDED + 'blob-id';
32319
32319
  /**
@@ -32396,7 +32396,15 @@ function replaceDataURIToBlobUUID(editor, elm) {
32396
32396
  if (typeof ArrayBuffer === 'undefined' || typeof URL === 'undefined') {
32397
32397
  return;
32398
32398
  }
32399
- const dataUri = elm.src, blob = dataURItoBlob(dataUri);
32399
+ const dataUri = elm.src;
32400
+ let blob;
32401
+ try {
32402
+ blob = (0,jodit_modules_uploader_helpers_data_uri_to_blob__WEBPACK_IMPORTED_MODULE_6__.dataURItoBlob)(dataUri);
32403
+ } catch {
32404
+ // A data URI the browser accepts but we cannot decode is not worth
32405
+ // breaking the editor over — keep the image as it is
32406
+ return;
32407
+ }
32400
32408
  elm.src = URL.createObjectURL(blob);
32401
32409
  editor.e.fire('internalUpdate');
32402
32410
  const { buffer } = editor;
@@ -32404,28 +32412,6 @@ function replaceDataURIToBlobUUID(editor, elm) {
32404
32412
  list[elm.src] = dataUri;
32405
32413
  editor.buffer.set(JODIT_IMAGE_BLOB_ID, list);
32406
32414
  }
32407
- // https://stackoverflow.com/a/12300351
32408
- function dataURItoBlob(dataURI) {
32409
- // convert base64 to raw binary data held in a string
32410
- // doesn't handle URLEncoded DataURIs - see SO answer #6850276 for code that does this
32411
- const byteString = atob(dataURI.split(',')[1]);
32412
- // separate out the mime component
32413
- const mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0];
32414
- // write the bytes of the string to an ArrayBuffer
32415
- const ab = new ArrayBuffer(byteString.length);
32416
- // create a view into the buffer
32417
- const ia = new Uint8Array(ab);
32418
- // set the bytes of the buffer to the correct values
32419
- for(let i = 0; i < byteString.length; i++){
32420
- ia[i] = byteString.charCodeAt(i);
32421
- }
32422
- // write the ArrayBuffer to a blob, and you're done
32423
- return new Blob([
32424
- ab
32425
- ], {
32426
- type: mimeString
32427
- });
32428
- }
32429
32415
  jodit_core_global__WEBPACK_IMPORTED_MODULE_3__.pluginSystem.add('imageProcessor', imageProcessor);
32430
32416
 
32431
32417