jodit 4.17.3 → 4.17.4

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 (60) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/es2015/jodit.css +1 -1
  3. package/es2015/jodit.fat.min.js +3 -3
  4. package/es2015/jodit.js +28 -7
  5. package/es2015/jodit.min.js +10 -10
  6. package/es2015/plugins/debug/debug.css +1 -1
  7. package/es2015/plugins/debug/debug.js +1 -1
  8. package/es2015/plugins/debug/debug.min.js +1 -1
  9. package/es2015/plugins/speech-recognize/speech-recognize.css +1 -1
  10. package/es2015/plugins/speech-recognize/speech-recognize.js +1 -1
  11. package/es2015/plugins/speech-recognize/speech-recognize.min.js +1 -1
  12. package/es2018/jodit.fat.min.js +3 -3
  13. package/es2018/jodit.min.js +3 -3
  14. package/es2018/plugins/debug/debug.min.js +1 -1
  15. package/es2018/plugins/speech-recognize/speech-recognize.min.js +1 -1
  16. package/es2021/jodit.css +1 -1
  17. package/es2021/jodit.fat.min.js +3 -3
  18. package/es2021/jodit.js +28 -7
  19. package/es2021/jodit.min.js +3 -3
  20. package/es2021/plugins/debug/debug.css +1 -1
  21. package/es2021/plugins/debug/debug.js +1 -1
  22. package/es2021/plugins/debug/debug.min.js +1 -1
  23. package/es2021/plugins/speech-recognize/speech-recognize.css +1 -1
  24. package/es2021/plugins/speech-recognize/speech-recognize.js +1 -1
  25. package/es2021/plugins/speech-recognize/speech-recognize.min.js +1 -1
  26. package/es2021.en/jodit.css +1 -1
  27. package/es2021.en/jodit.fat.min.js +3 -3
  28. package/es2021.en/jodit.js +28 -7
  29. package/es2021.en/jodit.min.js +3 -3
  30. package/es2021.en/plugins/debug/debug.css +1 -1
  31. package/es2021.en/plugins/debug/debug.js +1 -1
  32. package/es2021.en/plugins/debug/debug.min.js +1 -1
  33. package/es2021.en/plugins/speech-recognize/speech-recognize.css +1 -1
  34. package/es2021.en/plugins/speech-recognize/speech-recognize.js +1 -1
  35. package/es2021.en/plugins/speech-recognize/speech-recognize.min.js +1 -1
  36. package/es5/jodit.css +2 -2
  37. package/es5/jodit.fat.min.js +2 -2
  38. package/es5/jodit.js +28 -7
  39. package/es5/jodit.min.css +2 -2
  40. package/es5/jodit.min.js +2 -2
  41. package/es5/plugins/debug/debug.css +1 -1
  42. package/es5/plugins/debug/debug.js +1 -1
  43. package/es5/plugins/debug/debug.min.js +1 -1
  44. package/es5/plugins/speech-recognize/speech-recognize.css +1 -1
  45. package/es5/plugins/speech-recognize/speech-recognize.js +1 -1
  46. package/es5/plugins/speech-recognize/speech-recognize.min.js +1 -1
  47. package/es5/polyfills.fat.min.js +1 -1
  48. package/es5/polyfills.js +1 -1
  49. package/es5/polyfills.min.js +1 -1
  50. package/esm/core/constants.js +1 -1
  51. package/esm/modules/file-browser/data-provider.d.ts +1 -0
  52. package/esm/modules/file-browser/data-provider.js +26 -5
  53. package/package.json +1 -1
  54. package/types/modules/file-browser/data-provider.d.ts +1 -0
  55. package/.nvmrc +0 -1
  56. package/examples/build/es2015/jodit.min.css +0 -1
  57. package/examples/build/es2015/jodit.min.js +0 -10
  58. package/examples/build/es2015/plugins/debug/debug.min.js +0 -10
  59. package/examples/build/es2015/plugins/speech-recognize/speech-recognize.min.css +0 -1
  60. package/examples/build/es2015/plugins/speech-recognize/speech-recognize.min.js +0 -10
@@ -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.17.3
4
+ * Version: v4.17.4
5
5
  * Url: https://xdsoft.net/jodit/
6
6
  * License(s): MIT
7
7
  */
@@ -1799,7 +1799,7 @@ __webpack_require__.r(__webpack_exports__);
1799
1799
  * ```
1800
1800
  * @packageDocumentation
1801
1801
  * @module constants
1802
- */ const APP_VERSION = "4.17.3";
1802
+ */ const APP_VERSION = "4.17.4";
1803
1803
  // prettier-ignore
1804
1804
  const ES = "es2021";
1805
1805
  const IS_ES_MODERN = true;
@@ -20764,6 +20764,16 @@ const DOCS_URL = 'https://xdsoft.net/jodit/docs/modules/file_browser.html';
20764
20764
  });
20765
20765
  return resp;
20766
20766
  }
20767
+ /**
20768
+ * Actions that only read from the connector. A newer request for one of them
20769
+ * makes the older one pointless, so it is aborted; every other action changes
20770
+ * server state and must be allowed to finish.
20771
+ */ const REPLACEABLE_ACTIONS = new Set([
20772
+ 'items',
20773
+ 'folder',
20774
+ 'permissions',
20775
+ 'getLocalFileByUrl'
20776
+ ]);
20767
20777
  class DataProvider {
20768
20778
  /**
20769
20779
  * Alias for options
@@ -20772,10 +20782,19 @@ class DataProvider {
20772
20782
  }
20773
20783
  get(name) {
20774
20784
  const instances = this.__ajaxInstances;
20775
- if (instances.has(name)) {
20776
- const ajax = instances.get(name);
20785
+ // A listing asked for again supersedes the one still loading, so the
20786
+ // earlier request is aborted. That must never happen to a request
20787
+ // that changes something on the server: aborting it does not undo it,
20788
+ // the caller just never hears the result. Removing several files at
20789
+ // once used to send one `fileRemove` per file and abort all but the
20790
+ // last, so only the last one was ever removed. Mutating requests get a
20791
+ // key of their own and run side by side.
20792
+ const replaceable = REPLACEABLE_ACTIONS.has(name);
20793
+ const key = replaceable ? name : `${name}#${++this.__requestSerial}`;
20794
+ if (replaceable && instances.has(key)) {
20795
+ const ajax = instances.get(key);
20777
20796
  ajax?.abort();
20778
- instances.delete(name);
20797
+ instances.delete(key);
20779
20798
  }
20780
20799
  const opts = (0,jodit_core_helpers_utils_config_proto__WEBPACK_IMPORTED_MODULE_8__.ConfigProto)(this.options[name] !== undefined ? this.options[name] : {}, (0,jodit_core_helpers_utils_config_proto__WEBPACK_IMPORTED_MODULE_8__.ConfigProto)({
20781
20800
  onProgress: this.progressHandler
@@ -20784,11 +20803,11 @@ class DataProvider {
20784
20803
  opts.data = opts.prepareData.call(this, opts.data);
20785
20804
  }
20786
20805
  const ajax = new jodit_core_request_ajax__WEBPACK_IMPORTED_MODULE_11__.Ajax(opts);
20787
- instances.set(name, ajax);
20806
+ instances.set(key, ajax);
20788
20807
  const promise = ajax.send();
20789
20808
  promise.finally(()=>{
20790
20809
  ajax.destruct();
20791
- instances.delete(name);
20810
+ instances.delete(key);
20792
20811
  this.progressHandler(100);
20793
20812
  }).catch(()=>null);
20794
20813
  return promise.then((resp)=>resp.json()).then((resp)=>{
@@ -21093,11 +21112,13 @@ class DataProvider {
21093
21112
  (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "options", void 0);
21094
21113
  (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "__currentPermissions", void 0);
21095
21114
  (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "__ajaxInstances", void 0);
21115
+ (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "__requestSerial", void 0);
21096
21116
  (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "progressHandler", void 0);
21097
21117
  this.parent = parent;
21098
21118
  this.options = options;
21099
21119
  this.__currentPermissions = null;
21100
21120
  this.__ajaxInstances = new Map();
21121
+ this.__requestSerial = 0;
21101
21122
  this.progressHandler = (ignore)=>{};
21102
21123
  }
21103
21124
  }