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
@@ -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;
@@ -24784,13 +24784,11 @@ function buildData(uploader, data) {
24784
24784
  */ /**
24785
24785
  * @module modules/uploader
24786
24786
  */ /**
24787
- * Convert dataURI to Blob
24787
+ * Convert dataURI to Blob. Both base64 and percent-encoded payloads are
24788
+ * supported — `data:image/svg+xml,%3Csvg...` is as valid as
24789
+ * `data:image/png;base64,...`
24788
24790
  */ function dataURItoBlob(dataURI) {
24789
- // convert base64 to raw binary data held in a string
24790
- // doesn't handle URLEncoded DataURIs - see SO answer #6850276 for code that does this
24791
- const byteString = atob(dataURI.split(',')[1]), // separate out the mime component
24792
- mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0], // write the bytes of the string to an ArrayBuffer
24793
- ab = new ArrayBuffer(byteString.length), ia = new Uint8Array(ab);
24791
+ 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);
24794
24792
  for(let i = 0; i < byteString.length; i += 1){
24795
24793
  ia[i] = byteString.charCodeAt(i);
24796
24794
  }
@@ -31891,7 +31889,8 @@ jodit_config__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.imageProcessor = {
31891
31889
  /* harmony import */ var jodit_core_global__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(28077);
31892
31890
  /* harmony import */ var jodit_core_helpers__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(65946);
31893
31891
  /* harmony import */ var jodit_core_plugin__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(91206);
31894
- /* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(51034);
31892
+ /* harmony import */ var jodit_modules_uploader_helpers_data_uri_to_blob__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(23112);
31893
+ /* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(51034);
31895
31894
  /*!
31896
31895
  * Jodit Editor (https://xdsoft.net/jodit/)
31897
31896
  * Released under MIT see LICENSE.txt in the project root for license information.
@@ -31907,6 +31906,7 @@ jodit_config__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.imageProcessor = {
31907
31906
 
31908
31907
 
31909
31908
 
31909
+
31910
31910
  const JODIT_IMAGE_PROCESSOR_BINDED = '__jodit_imageprocessor_binded';
31911
31911
  const JODIT_IMAGE_BLOB_ID = JODIT_IMAGE_PROCESSOR_BINDED + 'blob-id';
31912
31912
  /**
@@ -31989,7 +31989,15 @@ function replaceDataURIToBlobUUID(editor, elm) {
31989
31989
  if (typeof ArrayBuffer === 'undefined' || typeof URL === 'undefined') {
31990
31990
  return;
31991
31991
  }
31992
- const dataUri = elm.src, blob = dataURItoBlob(dataUri);
31992
+ const dataUri = elm.src;
31993
+ let blob;
31994
+ try {
31995
+ blob = (0,jodit_modules_uploader_helpers_data_uri_to_blob__WEBPACK_IMPORTED_MODULE_6__.dataURItoBlob)(dataUri);
31996
+ } catch {
31997
+ // A data URI the browser accepts but we cannot decode is not worth
31998
+ // breaking the editor over — keep the image as it is
31999
+ return;
32000
+ }
31993
32001
  elm.src = URL.createObjectURL(blob);
31994
32002
  editor.e.fire('internalUpdate');
31995
32003
  const { buffer } = editor;
@@ -31997,28 +32005,6 @@ function replaceDataURIToBlobUUID(editor, elm) {
31997
32005
  list[elm.src] = dataUri;
31998
32006
  editor.buffer.set(JODIT_IMAGE_BLOB_ID, list);
31999
32007
  }
32000
- // https://stackoverflow.com/a/12300351
32001
- function dataURItoBlob(dataURI) {
32002
- // convert base64 to raw binary data held in a string
32003
- // doesn't handle URLEncoded DataURIs - see SO answer #6850276 for code that does this
32004
- const byteString = atob(dataURI.split(',')[1]);
32005
- // separate out the mime component
32006
- const mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0];
32007
- // write the bytes of the string to an ArrayBuffer
32008
- const ab = new ArrayBuffer(byteString.length);
32009
- // create a view into the buffer
32010
- const ia = new Uint8Array(ab);
32011
- // set the bytes of the buffer to the correct values
32012
- for(let i = 0; i < byteString.length; i++){
32013
- ia[i] = byteString.charCodeAt(i);
32014
- }
32015
- // write the ArrayBuffer to a blob, and you're done
32016
- return new Blob([
32017
- ab
32018
- ], {
32019
- type: mimeString
32020
- });
32021
- }
32022
32008
  jodit_core_global__WEBPACK_IMPORTED_MODULE_3__.pluginSystem.add('imageProcessor', imageProcessor);
32023
32009
 
32024
32010