jodit 4.12.27 → 4.12.29

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 (53) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/es2015/jodit.css +1 -1
  3. package/es2015/jodit.fat.min.js +2 -2
  4. package/es2015/jodit.js +44 -8
  5. package/es2015/jodit.min.js +2 -2
  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 +2 -2
  13. package/es2018/jodit.min.js +2 -2
  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 +44 -8
  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 +44 -8
  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 +44 -8
  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/core/event-emitter/event-emitter.js +6 -6
  52. package/esm/core/helpers/html/safe-html.js +39 -0
  53. package/package.json +1 -1
package/es5/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.12.27
4
+ * Version: v4.12.29
5
5
  * Url: https://xdsoft.net/jodit/
6
6
  * License(s): MIT
7
7
  */
@@ -2074,7 +2074,7 @@ __webpack_require__.r(__webpack_exports__);
2074
2074
  * @packageDocumentation
2075
2075
  * @module constants
2076
2076
  */
2077
- var APP_VERSION = "4.12.27";
2077
+ var APP_VERSION = "4.12.29";
2078
2078
  // prettier-ignore
2079
2079
  var ES = "es5";
2080
2080
  var IS_ES_MODERN = false;
@@ -4690,12 +4690,12 @@ var LazyWalker = /*#__PURE__*/ function(Eventify) {
4690
4690
  key: "__removeStoreFromSubject",
4691
4691
  value: function __removeStoreFromSubject(subject) {
4692
4692
  if (subject[this.__key] !== undefined) {
4693
- Object.defineProperty(subject, this.__key, {
4694
- enumerable: false,
4695
- configurable: true,
4696
- writable: true,
4697
- value: undefined
4698
- });
4693
+ // Fully remove the namespaces store key instead of just setting it to
4694
+ // `undefined`. On long-lived subjects — e.g. `window` in an SPA where
4695
+ // editors are repeatedly created and destroyed — leftover `undefined`
4696
+ // keys would otherwise pile up on the object. The property is defined
4697
+ // as `configurable`, so `delete` removes it cleanly.
4698
+ delete subject[this.__key];
4699
4699
  }
4700
4700
  }
4701
4701
  },
@@ -6986,6 +6986,34 @@ function normalizeCSS(s) {
6986
6986
  * @module helpers/html
6987
6987
  */
6988
6988
 
6989
+ var HTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';
6990
+ /**
6991
+ * Integration points where HTML is legitimately allowed inside MathML/SVG foreign content.
6992
+ */ var HTML_INTEGRATION_POINTS = new Set([
6993
+ 'foreignobject',
6994
+ 'annotation-xml',
6995
+ 'desc',
6996
+ 'title'
6997
+ ]);
6998
+ /**
6999
+ * True for an HTML element the parser placed inside MathML/SVG outside an integration point - smuggled
7000
+ * HTML (e.g. `mglyph` / `style` under `<math>`) that a reparse can hoist into a live node. Legitimate
7001
+ * MathML/SVG children and HTML below an integration point are kept.
7002
+ */ function isSmuggledForeignHtml(elm) {
7003
+ if (elm.namespaceURI !== HTML_NAMESPACE || elm.closest('math,svg') == null) {
7004
+ return false;
7005
+ }
7006
+ for(var parent = elm.parentElement; parent; parent = parent.parentElement){
7007
+ var name = parent.nodeName.toLowerCase();
7008
+ if (name === 'math' || name === 'svg') {
7009
+ break;
7010
+ }
7011
+ if (HTML_INTEGRATION_POINTS.has(name)) {
7012
+ return false;
7013
+ }
7014
+ }
7015
+ return true;
7016
+ }
6989
7017
  /**
6990
7018
  * Removes dangerous constructs from HTML
6991
7019
  */ function safeHTML(box, options) {
@@ -6993,6 +7021,14 @@ function normalizeCSS(s) {
6993
7021
  if (!jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__.Dom.isElement(box) && !jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__.Dom.isFragment(box)) {
6994
7022
  return;
6995
7023
  }
7024
+ // Drop HTML smuggled into MathML/SVG before the walk: a reparse would otherwise hoist its hidden
7025
+ // markup into a live node.
7026
+ var foreign = box.querySelectorAll('math *, svg *');
7027
+ for(var i = 0; i < foreign.length; i++){
7028
+ if (foreign[i].isConnected && isSmuggledForeignHtml(foreign[i])) {
7029
+ jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__.Dom.safeRemove(foreign[i]);
7030
+ }
7031
+ }
6996
7032
  var removeEvents = (_options_removeEventAttributes = options.removeEventAttributes) !== null && _options_removeEventAttributes !== void 0 ? _options_removeEventAttributes : options.removeOnError;
6997
7033
  // Single synchronous traversal of the subtree. Besides removing event
6998
7034
  // handlers and `javascript:` links, `sanitizeHTMLElement` neutralises
package/es5/jodit.min.css CHANGED
@@ -1,14 +1,14 @@
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.12.27
4
+ * Version: v4.12.29
5
5
  * Url: https://xdsoft.net/jodit/
6
6
  * License(s): MIT
7
7
  */
8
8
  /*!
9
9
  * jodit - Jodit is an awesome and useful wysiwyg editor with filebrowser
10
10
  * Author: Chupurnov <chupurnov@gmail.com> (https://xdsoft.net/jodit/)
11
- * Version: v4.12.27
11
+ * Version: v4.12.29
12
12
  * Url: https://xdsoft.net/jodit/
13
13
  * License(s): MIT
14
14
  */