jodit 4.15.4 → 4.15.5

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 (59) 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 +25 -2
  5. package/es2015/jodit.min.js +5 -5
  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 +5 -5
  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 +25 -2
  19. package/es2021/jodit.min.js +5 -5
  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 +25 -2
  29. package/es2021.en/jodit.min.js +11 -11
  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 +30 -2
  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/config.d.ts +9 -0
  51. package/esm/core/constants.js +1 -1
  52. package/esm/plugins/clean-html/clean-html.d.ts +9 -0
  53. package/esm/plugins/clean-html/clean-html.js +27 -0
  54. package/esm/plugins/clean-html/config.d.ts +9 -0
  55. package/esm/plugins/clean-html/config.js +1 -0
  56. package/package.json +1 -1
  57. package/types/config.d.ts +9 -0
  58. package/types/plugins/clean-html/clean-html.d.ts +9 -0
  59. package/types/plugins/clean-html/config.d.ts +9 -0
package/es2015/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.15.4
4
+ * Version: v4.15.5
5
5
  * Url: https://xdsoft.net/jodit/
6
6
  * License(s): MIT
7
7
  */
@@ -1785,7 +1785,7 @@ __webpack_require__.r(__webpack_exports__);
1785
1785
  * ```
1786
1786
  * @packageDocumentation
1787
1787
  * @module constants
1788
- */ const APP_VERSION = "4.15.4";
1788
+ */ const APP_VERSION = "4.15.5";
1789
1789
  // prettier-ignore
1790
1790
  const ES = "es2015";
1791
1791
  const IS_ES_MODERN = true;
@@ -28598,6 +28598,7 @@ jodit_core_ui_icon__WEBPACK_IMPORTED_MODULE_5__.Icon.set('class-span', (_class_s
28598
28598
  * `<p><br></p>` left after deleting all content) to an empty string —
28599
28599
  * opt-in via `cleanHTML.collapseEmptyValueToEmptyString`. See #1149
28600
28600
  */ onAfterGetValueFromEditor(data) {
28601
+ this.__singleQuotesInFontFamily(data);
28601
28602
  if (!this.j.o.cleanHTML.collapseEmptyValueToEmptyString) {
28602
28603
  return;
28603
28604
  }
@@ -28605,6 +28606,27 @@ jodit_core_ui_icon__WEBPACK_IMPORTED_MODULE_5__.Icon.set('class-span', (_class_s
28605
28606
  data.value = '';
28606
28607
  }
28607
28608
  }
28609
+ /**
28610
+ * Rewrite double-quoted font names inside `style` attributes with single
28611
+ * quotes. The DOM always serialises them as `&quot;…&quot;`, and back ends
28612
+ * that HTML-decode the value before storing it then produce
28613
+ * `style="font-family: "Open Sans", …"` — broken markup. Single quotes
28614
+ * survive that round trip. Names that already contain an apostrophe are
28615
+ * left alone.
28616
+ */ __singleQuotesInFontFamily(data) {
28617
+ if (!this.j.o.cleanHTML.singleQuotesInFontFamily || !data.value.includes('&quot;')) {
28618
+ return;
28619
+ }
28620
+ data.value = data.value.replace(/\sstyle="([^"]*)"/gi, (attribute, css)=>{
28621
+ if (!css.includes('&quot;') || !/font-family/i.test(css)) {
28622
+ return attribute;
28623
+ }
28624
+ const normalized = css.replace(// `&quot;` itself ends with `;`, so the entity has to be
28625
+ // consumed as a unit or the declaration stops inside it.
28626
+ /font-family\s*:(?:&quot;|[^;])*/gi, (declaration)=>declaration.includes("'") ? declaration : declaration.replace(/&quot;/g, "'"));
28627
+ return attribute.replace(css, normalized);
28628
+ });
28629
+ }
28608
28630
  onSafeHTML(sandBox) {
28609
28631
  const sanitizer = this.j.o.cleanHTML.sanitizer;
28610
28632
  if (sanitizer) {
@@ -28677,6 +28699,7 @@ jodit_config__WEBPACK_IMPORTED_MODULE_1__.Config.prototype.cleanHTML = {
28677
28699
  removeEmptyElements: true,
28678
28700
  fillEmptyParagraph: true,
28679
28701
  collapseEmptyValueToEmptyString: false,
28702
+ singleQuotesInFontFamily: true,
28680
28703
  replaceNBSP: true,
28681
28704
  replaceOldTags: {
28682
28705
  i: 'em',