jodit 4.13.20 → 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 (65) hide show
  1. package/CHANGELOG.md +12 -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 +27 -33
  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 +5 -5
  23. package/es2021/jodit.js +25 -33
  24. package/es2021/jodit.min.css +1 -1
  25. package/es2021/jodit.min.js +5 -5
  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 +5 -5
  35. package/es2021.en/jodit.js +25 -33
  36. package/es2021.en/jodit.min.css +1 -1
  37. package/es2021.en/jodit.min.js +5 -5
  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 +53 -33
  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/core/helpers/utils/scroll-into-view.js +5 -1
  61. package/esm/modules/uploader/helpers/data-uri-to-blob.d.ts +3 -1
  62. package/esm/modules/uploader/helpers/data-uri-to-blob.js +7 -8
  63. package/esm/plugins/image-processor/image-processor.js +11 -19
  64. package/package.json +1 -1
  65. 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.20
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.20";
1846
+ */ const APP_VERSION = "4.13.22";
1847
1847
  // prettier-ignore
1848
1848
  const ES = "es2021";
1849
1849
  const IS_ES_MODERN = true;
@@ -9108,7 +9108,13 @@ const map = {};
9108
9108
  root.scrollTop = root.scrollTop < alignBottom ? alignBottom : elm.offsetTop;
9109
9109
  }
9110
9110
  if (!inView(elm, root, doc)) {
9111
- elm.scrollIntoView();
9111
+ // `block: 'nearest'` scrolls the page the minimal distance (one
9112
+ // line while typing), while the default `block: 'start'` aligns
9113
+ // the element to the viewport top and the page jumps like
9114
+ // PageDown was pressed
9115
+ elm.scrollIntoView({
9116
+ block: 'nearest'
9117
+ });
9112
9118
  }
9113
9119
  }
9114
9120
  }
@@ -24801,13 +24807,11 @@ function buildData(uploader, data) {
24801
24807
  */ /**
24802
24808
  * @module modules/uploader
24803
24809
  */ /**
24804
- * 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,...`
24805
24813
  */ function dataURItoBlob(dataURI) {
24806
- // convert base64 to raw binary data held in a string
24807
- // doesn't handle URLEncoded DataURIs - see SO answer #6850276 for code that does this
24808
- const byteString = atob(dataURI.split(',')[1]), // separate out the mime component
24809
- mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0], // write the bytes of the string to an ArrayBuffer
24810
- 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);
24811
24815
  for(let i = 0; i < byteString.length; i += 1){
24812
24816
  ia[i] = byteString.charCodeAt(i);
24813
24817
  }
@@ -32292,7 +32296,8 @@ jodit_config__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.imageProcessor = {
32292
32296
  /* harmony import */ var jodit_core_global__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(28077);
32293
32297
  /* harmony import */ var jodit_core_helpers__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(65946);
32294
32298
  /* harmony import */ var jodit_core_plugin__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(91206);
32295
- /* 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);
32296
32301
  /*!
32297
32302
  * Jodit Editor (https://xdsoft.net/jodit/)
32298
32303
  * Released under MIT see LICENSE.txt in the project root for license information.
@@ -32308,6 +32313,7 @@ jodit_config__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.imageProcessor = {
32308
32313
 
32309
32314
 
32310
32315
 
32316
+
32311
32317
  const JODIT_IMAGE_PROCESSOR_BINDED = '__jodit_imageprocessor_binded';
32312
32318
  const JODIT_IMAGE_BLOB_ID = JODIT_IMAGE_PROCESSOR_BINDED + 'blob-id';
32313
32319
  /**
@@ -32390,7 +32396,15 @@ function replaceDataURIToBlobUUID(editor, elm) {
32390
32396
  if (typeof ArrayBuffer === 'undefined' || typeof URL === 'undefined') {
32391
32397
  return;
32392
32398
  }
32393
- 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
+ }
32394
32408
  elm.src = URL.createObjectURL(blob);
32395
32409
  editor.e.fire('internalUpdate');
32396
32410
  const { buffer } = editor;
@@ -32398,28 +32412,6 @@ function replaceDataURIToBlobUUID(editor, elm) {
32398
32412
  list[elm.src] = dataUri;
32399
32413
  editor.buffer.set(JODIT_IMAGE_BLOB_ID, list);
32400
32414
  }
32401
- // https://stackoverflow.com/a/12300351
32402
- function dataURItoBlob(dataURI) {
32403
- // convert base64 to raw binary data held in a string
32404
- // doesn't handle URLEncoded DataURIs - see SO answer #6850276 for code that does this
32405
- const byteString = atob(dataURI.split(',')[1]);
32406
- // separate out the mime component
32407
- const mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0];
32408
- // write the bytes of the string to an ArrayBuffer
32409
- const ab = new ArrayBuffer(byteString.length);
32410
- // create a view into the buffer
32411
- const ia = new Uint8Array(ab);
32412
- // set the bytes of the buffer to the correct values
32413
- for(let i = 0; i < byteString.length; i++){
32414
- ia[i] = byteString.charCodeAt(i);
32415
- }
32416
- // write the ArrayBuffer to a blob, and you're done
32417
- return new Blob([
32418
- ab
32419
- ], {
32420
- type: mimeString
32421
- });
32422
- }
32423
32415
  jodit_core_global__WEBPACK_IMPORTED_MODULE_3__.pluginSystem.add('imageProcessor', imageProcessor);
32424
32416
 
32425
32417