jodit-pro 4.12.11 → 4.12.13

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 (301) hide show
  1. package/es2015/jodit.css +1 -1
  2. package/es2015/jodit.fat.min.js +6 -6
  3. package/es2015/jodit.js +144 -58
  4. package/es2015/jodit.min.js +6 -6
  5. package/es2015/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
  6. package/es2015/plugins/ai-assistant-pro/ai-assistant-pro.js +1 -1
  7. package/es2015/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
  8. package/es2015/plugins/autocomplete/autocomplete.js +1 -1
  9. package/es2015/plugins/autocomplete/autocomplete.min.js +1 -1
  10. package/es2015/plugins/backup/backup.css +1 -1
  11. package/es2015/plugins/backup/backup.js +1 -1
  12. package/es2015/plugins/backup/backup.min.js +1 -1
  13. package/es2015/plugins/button-generator/button-generator.css +1 -1
  14. package/es2015/plugins/button-generator/button-generator.js +1 -1
  15. package/es2015/plugins/button-generator/button-generator.min.js +1 -1
  16. package/es2015/plugins/change-case/change-case.js +1 -1
  17. package/es2015/plugins/change-case/change-case.min.js +1 -1
  18. package/es2015/plugins/color-picker/color-picker.css +1 -1
  19. package/es2015/plugins/color-picker/color-picker.js +1 -1
  20. package/es2015/plugins/color-picker/color-picker.min.js +1 -1
  21. package/es2015/plugins/emoji/emoji.css +1 -1
  22. package/es2015/plugins/emoji/emoji.js +1 -1
  23. package/es2015/plugins/emoji/emoji.min.js +1 -1
  24. package/es2015/plugins/export-docs/export-docs.js +1 -1
  25. package/es2015/plugins/export-docs/export-docs.min.js +1 -1
  26. package/es2015/plugins/finder/finder.css +1 -1
  27. package/es2015/plugins/finder/finder.js +1 -1
  28. package/es2015/plugins/finder/finder.min.js +1 -1
  29. package/es2015/plugins/google-maps/google-maps.css +1 -1
  30. package/es2015/plugins/google-maps/google-maps.js +1 -1
  31. package/es2015/plugins/google-maps/google-maps.min.js +1 -1
  32. package/es2015/plugins/google-search/google-search.js +1 -1
  33. package/es2015/plugins/google-search/google-search.min.js +1 -1
  34. package/es2015/plugins/highlight-signature/highlight-signature.js +1 -1
  35. package/es2015/plugins/highlight-signature/highlight-signature.min.js +1 -1
  36. package/es2015/plugins/iframe-editor/iframe-editor.css +1 -1
  37. package/es2015/plugins/iframe-editor/iframe-editor.js +1 -1
  38. package/es2015/plugins/iframe-editor/iframe-editor.min.js +1 -1
  39. package/es2015/plugins/keyboard/keyboard.css +1 -1
  40. package/es2015/plugins/keyboard/keyboard.js +1 -1
  41. package/es2015/plugins/keyboard/keyboard.min.js +1 -1
  42. package/es2015/plugins/mobile-view/mobile-view.js +1 -1
  43. package/es2015/plugins/mobile-view/mobile-view.min.js +1 -1
  44. package/es2015/plugins/page-break/page-break.js +1 -1
  45. package/es2015/plugins/page-break/page-break.min.js +1 -1
  46. package/es2015/plugins/paste-code/paste-code.css +1 -1
  47. package/es2015/plugins/paste-code/paste-code.js +1 -1
  48. package/es2015/plugins/paste-code/paste-code.min.js +1 -1
  49. package/es2015/plugins/paste-from-word/paste-from-word.js +1 -1
  50. package/es2015/plugins/paste-from-word/paste-from-word.min.js +1 -1
  51. package/es2015/plugins/show-blocks/show-blocks.js +1 -1
  52. package/es2015/plugins/show-blocks/show-blocks.min.js +1 -1
  53. package/es2015/plugins/style/style.css +1 -1
  54. package/es2015/plugins/style/style.js +1 -1
  55. package/es2015/plugins/style/style.min.js +1 -1
  56. package/es2015/plugins/templates/templates.css +1 -1
  57. package/es2015/plugins/templates/templates.js +1 -1
  58. package/es2015/plugins/templates/templates.min.js +1 -1
  59. package/es2015/plugins/todo-list/todo-list.css +1 -1
  60. package/es2015/plugins/todo-list/todo-list.js +1 -1
  61. package/es2015/plugins/todo-list/todo-list.min.js +1 -1
  62. package/es2015/plugins/translate/translate.css +1 -1
  63. package/es2015/plugins/translate/translate.js +1 -1
  64. package/es2015/plugins/translate/translate.min.js +1 -1
  65. package/es2015/plugins/tune-block/tune-block.css +1 -1
  66. package/es2015/plugins/tune-block/tune-block.js +1 -1
  67. package/es2015/plugins/tune-block/tune-block.min.js +1 -1
  68. package/es2018/jodit.fat.min.js +6 -6
  69. package/es2018/jodit.min.js +6 -6
  70. package/es2018/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
  71. package/es2018/plugins/autocomplete/autocomplete.min.js +1 -1
  72. package/es2018/plugins/backup/backup.min.js +1 -1
  73. package/es2018/plugins/button-generator/button-generator.min.js +1 -1
  74. package/es2018/plugins/change-case/change-case.min.js +1 -1
  75. package/es2018/plugins/color-picker/color-picker.min.js +1 -1
  76. package/es2018/plugins/emoji/emoji.min.js +1 -1
  77. package/es2018/plugins/export-docs/export-docs.min.js +1 -1
  78. package/es2018/plugins/finder/finder.min.js +1 -1
  79. package/es2018/plugins/google-maps/google-maps.min.js +1 -1
  80. package/es2018/plugins/google-search/google-search.min.js +1 -1
  81. package/es2018/plugins/highlight-signature/highlight-signature.min.js +1 -1
  82. package/es2018/plugins/iframe-editor/iframe-editor.min.js +1 -1
  83. package/es2018/plugins/keyboard/keyboard.min.js +1 -1
  84. package/es2018/plugins/mobile-view/mobile-view.min.js +1 -1
  85. package/es2018/plugins/page-break/page-break.min.js +1 -1
  86. package/es2018/plugins/paste-code/paste-code.min.js +1 -1
  87. package/es2018/plugins/paste-from-word/paste-from-word.min.js +1 -1
  88. package/es2018/plugins/show-blocks/show-blocks.min.js +1 -1
  89. package/es2018/plugins/style/style.min.js +1 -1
  90. package/es2018/plugins/templates/templates.min.js +1 -1
  91. package/es2018/plugins/todo-list/todo-list.min.js +1 -1
  92. package/es2018/plugins/translate/translate.min.js +1 -1
  93. package/es2018/plugins/tune-block/tune-block.min.js +1 -1
  94. package/es2021/jodit.css +1 -1
  95. package/es2021/jodit.fat.min.js +7 -7
  96. package/es2021/jodit.js +144 -58
  97. package/es2021/jodit.min.js +7 -7
  98. package/es2021/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
  99. package/es2021/plugins/ai-assistant-pro/ai-assistant-pro.js +1 -1
  100. package/es2021/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
  101. package/es2021/plugins/autocomplete/autocomplete.js +1 -1
  102. package/es2021/plugins/autocomplete/autocomplete.min.js +1 -1
  103. package/es2021/plugins/backup/backup.css +1 -1
  104. package/es2021/plugins/backup/backup.js +1 -1
  105. package/es2021/plugins/backup/backup.min.js +1 -1
  106. package/es2021/plugins/button-generator/button-generator.css +1 -1
  107. package/es2021/plugins/button-generator/button-generator.js +1 -1
  108. package/es2021/plugins/button-generator/button-generator.min.js +1 -1
  109. package/es2021/plugins/change-case/change-case.js +1 -1
  110. package/es2021/plugins/change-case/change-case.min.js +1 -1
  111. package/es2021/plugins/color-picker/color-picker.css +1 -1
  112. package/es2021/plugins/color-picker/color-picker.js +1 -1
  113. package/es2021/plugins/color-picker/color-picker.min.js +1 -1
  114. package/es2021/plugins/emoji/emoji.css +1 -1
  115. package/es2021/plugins/emoji/emoji.js +1 -1
  116. package/es2021/plugins/emoji/emoji.min.js +1 -1
  117. package/es2021/plugins/export-docs/export-docs.js +1 -1
  118. package/es2021/plugins/export-docs/export-docs.min.js +1 -1
  119. package/es2021/plugins/finder/finder.css +1 -1
  120. package/es2021/plugins/finder/finder.js +1 -1
  121. package/es2021/plugins/finder/finder.min.js +1 -1
  122. package/es2021/plugins/google-maps/google-maps.css +1 -1
  123. package/es2021/plugins/google-maps/google-maps.js +1 -1
  124. package/es2021/plugins/google-maps/google-maps.min.js +1 -1
  125. package/es2021/plugins/google-search/google-search.js +1 -1
  126. package/es2021/plugins/google-search/google-search.min.js +1 -1
  127. package/es2021/plugins/highlight-signature/highlight-signature.js +1 -1
  128. package/es2021/plugins/highlight-signature/highlight-signature.min.js +1 -1
  129. package/es2021/plugins/iframe-editor/iframe-editor.css +1 -1
  130. package/es2021/plugins/iframe-editor/iframe-editor.js +1 -1
  131. package/es2021/plugins/iframe-editor/iframe-editor.min.js +1 -1
  132. package/es2021/plugins/keyboard/keyboard.css +1 -1
  133. package/es2021/plugins/keyboard/keyboard.js +1 -1
  134. package/es2021/plugins/keyboard/keyboard.min.js +1 -1
  135. package/es2021/plugins/mobile-view/mobile-view.js +1 -1
  136. package/es2021/plugins/mobile-view/mobile-view.min.js +1 -1
  137. package/es2021/plugins/page-break/page-break.js +1 -1
  138. package/es2021/plugins/page-break/page-break.min.js +1 -1
  139. package/es2021/plugins/paste-code/paste-code.css +1 -1
  140. package/es2021/plugins/paste-code/paste-code.js +1 -1
  141. package/es2021/plugins/paste-code/paste-code.min.js +1 -1
  142. package/es2021/plugins/paste-from-word/paste-from-word.js +1 -1
  143. package/es2021/plugins/paste-from-word/paste-from-word.min.js +1 -1
  144. package/es2021/plugins/show-blocks/show-blocks.js +1 -1
  145. package/es2021/plugins/show-blocks/show-blocks.min.js +1 -1
  146. package/es2021/plugins/style/style.css +1 -1
  147. package/es2021/plugins/style/style.js +1 -1
  148. package/es2021/plugins/style/style.min.js +1 -1
  149. package/es2021/plugins/templates/templates.css +1 -1
  150. package/es2021/plugins/templates/templates.js +1 -1
  151. package/es2021/plugins/templates/templates.min.js +1 -1
  152. package/es2021/plugins/todo-list/todo-list.css +1 -1
  153. package/es2021/plugins/todo-list/todo-list.js +1 -1
  154. package/es2021/plugins/todo-list/todo-list.min.js +1 -1
  155. package/es2021/plugins/translate/translate.css +1 -1
  156. package/es2021/plugins/translate/translate.js +1 -1
  157. package/es2021/plugins/translate/translate.min.js +1 -1
  158. package/es2021/plugins/tune-block/tune-block.css +1 -1
  159. package/es2021/plugins/tune-block/tune-block.js +1 -1
  160. package/es2021/plugins/tune-block/tune-block.min.js +1 -1
  161. package/es2021.en/jodit.css +1 -1
  162. package/es2021.en/jodit.fat.min.js +7 -7
  163. package/es2021.en/jodit.js +144 -58
  164. package/es2021.en/jodit.min.js +7 -7
  165. package/es2021.en/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
  166. package/es2021.en/plugins/ai-assistant-pro/ai-assistant-pro.js +1 -1
  167. package/es2021.en/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
  168. package/es2021.en/plugins/autocomplete/autocomplete.js +1 -1
  169. package/es2021.en/plugins/autocomplete/autocomplete.min.js +1 -1
  170. package/es2021.en/plugins/backup/backup.css +1 -1
  171. package/es2021.en/plugins/backup/backup.js +1 -1
  172. package/es2021.en/plugins/backup/backup.min.js +1 -1
  173. package/es2021.en/plugins/button-generator/button-generator.css +1 -1
  174. package/es2021.en/plugins/button-generator/button-generator.js +1 -1
  175. package/es2021.en/plugins/button-generator/button-generator.min.js +1 -1
  176. package/es2021.en/plugins/change-case/change-case.js +1 -1
  177. package/es2021.en/plugins/change-case/change-case.min.js +1 -1
  178. package/es2021.en/plugins/color-picker/color-picker.css +1 -1
  179. package/es2021.en/plugins/color-picker/color-picker.js +1 -1
  180. package/es2021.en/plugins/color-picker/color-picker.min.js +1 -1
  181. package/es2021.en/plugins/emoji/emoji.css +1 -1
  182. package/es2021.en/plugins/emoji/emoji.js +1 -1
  183. package/es2021.en/plugins/emoji/emoji.min.js +1 -1
  184. package/es2021.en/plugins/export-docs/export-docs.js +1 -1
  185. package/es2021.en/plugins/export-docs/export-docs.min.js +1 -1
  186. package/es2021.en/plugins/finder/finder.css +1 -1
  187. package/es2021.en/plugins/finder/finder.js +1 -1
  188. package/es2021.en/plugins/finder/finder.min.js +1 -1
  189. package/es2021.en/plugins/google-maps/google-maps.css +1 -1
  190. package/es2021.en/plugins/google-maps/google-maps.js +1 -1
  191. package/es2021.en/plugins/google-maps/google-maps.min.js +1 -1
  192. package/es2021.en/plugins/google-search/google-search.js +1 -1
  193. package/es2021.en/plugins/google-search/google-search.min.js +1 -1
  194. package/es2021.en/plugins/highlight-signature/highlight-signature.js +1 -1
  195. package/es2021.en/plugins/highlight-signature/highlight-signature.min.js +1 -1
  196. package/es2021.en/plugins/iframe-editor/iframe-editor.css +1 -1
  197. package/es2021.en/plugins/iframe-editor/iframe-editor.js +1 -1
  198. package/es2021.en/plugins/iframe-editor/iframe-editor.min.js +1 -1
  199. package/es2021.en/plugins/keyboard/keyboard.css +1 -1
  200. package/es2021.en/plugins/keyboard/keyboard.js +1 -1
  201. package/es2021.en/plugins/keyboard/keyboard.min.js +1 -1
  202. package/es2021.en/plugins/mobile-view/mobile-view.js +1 -1
  203. package/es2021.en/plugins/mobile-view/mobile-view.min.js +1 -1
  204. package/es2021.en/plugins/page-break/page-break.js +1 -1
  205. package/es2021.en/plugins/page-break/page-break.min.js +1 -1
  206. package/es2021.en/plugins/paste-code/paste-code.css +1 -1
  207. package/es2021.en/plugins/paste-code/paste-code.js +1 -1
  208. package/es2021.en/plugins/paste-code/paste-code.min.js +1 -1
  209. package/es2021.en/plugins/paste-from-word/paste-from-word.js +1 -1
  210. package/es2021.en/plugins/paste-from-word/paste-from-word.min.js +1 -1
  211. package/es2021.en/plugins/show-blocks/show-blocks.js +1 -1
  212. package/es2021.en/plugins/show-blocks/show-blocks.min.js +1 -1
  213. package/es2021.en/plugins/style/style.css +1 -1
  214. package/es2021.en/plugins/style/style.js +1 -1
  215. package/es2021.en/plugins/style/style.min.js +1 -1
  216. package/es2021.en/plugins/templates/templates.css +1 -1
  217. package/es2021.en/plugins/templates/templates.js +1 -1
  218. package/es2021.en/plugins/templates/templates.min.js +1 -1
  219. package/es2021.en/plugins/todo-list/todo-list.css +1 -1
  220. package/es2021.en/plugins/todo-list/todo-list.js +1 -1
  221. package/es2021.en/plugins/todo-list/todo-list.min.js +1 -1
  222. package/es2021.en/plugins/translate/translate.css +1 -1
  223. package/es2021.en/plugins/translate/translate.js +1 -1
  224. package/es2021.en/plugins/translate/translate.min.js +1 -1
  225. package/es2021.en/plugins/tune-block/tune-block.css +1 -1
  226. package/es2021.en/plugins/tune-block/tune-block.js +1 -1
  227. package/es2021.en/plugins/tune-block/tune-block.min.js +1 -1
  228. package/es5/jodit.css +2 -2
  229. package/es5/jodit.fat.min.js +2 -2
  230. package/es5/jodit.js +146 -58
  231. package/es5/jodit.min.css +2 -2
  232. package/es5/jodit.min.js +2 -2
  233. package/es5/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
  234. package/es5/plugins/ai-assistant-pro/ai-assistant-pro.js +1 -1
  235. package/es5/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
  236. package/es5/plugins/autocomplete/autocomplete.js +1 -1
  237. package/es5/plugins/autocomplete/autocomplete.min.js +1 -1
  238. package/es5/plugins/backup/backup.css +1 -1
  239. package/es5/plugins/backup/backup.js +1 -1
  240. package/es5/plugins/backup/backup.min.js +1 -1
  241. package/es5/plugins/button-generator/button-generator.css +1 -1
  242. package/es5/plugins/button-generator/button-generator.js +1 -1
  243. package/es5/plugins/button-generator/button-generator.min.js +1 -1
  244. package/es5/plugins/change-case/change-case.js +1 -1
  245. package/es5/plugins/change-case/change-case.min.js +1 -1
  246. package/es5/plugins/color-picker/color-picker.css +1 -1
  247. package/es5/plugins/color-picker/color-picker.js +1 -1
  248. package/es5/plugins/color-picker/color-picker.min.js +1 -1
  249. package/es5/plugins/emoji/emoji.css +1 -1
  250. package/es5/plugins/emoji/emoji.js +1 -1
  251. package/es5/plugins/emoji/emoji.min.js +1 -1
  252. package/es5/plugins/export-docs/export-docs.js +1 -1
  253. package/es5/plugins/export-docs/export-docs.min.js +1 -1
  254. package/es5/plugins/finder/finder.css +1 -1
  255. package/es5/plugins/finder/finder.js +1 -1
  256. package/es5/plugins/finder/finder.min.js +1 -1
  257. package/es5/plugins/google-maps/google-maps.css +1 -1
  258. package/es5/plugins/google-maps/google-maps.js +1 -1
  259. package/es5/plugins/google-maps/google-maps.min.js +1 -1
  260. package/es5/plugins/google-search/google-search.js +1 -1
  261. package/es5/plugins/google-search/google-search.min.js +1 -1
  262. package/es5/plugins/highlight-signature/highlight-signature.js +1 -1
  263. package/es5/plugins/highlight-signature/highlight-signature.min.js +1 -1
  264. package/es5/plugins/iframe-editor/iframe-editor.css +1 -1
  265. package/es5/plugins/iframe-editor/iframe-editor.js +1 -1
  266. package/es5/plugins/iframe-editor/iframe-editor.min.js +1 -1
  267. package/es5/plugins/keyboard/keyboard.css +1 -1
  268. package/es5/plugins/keyboard/keyboard.js +1 -1
  269. package/es5/plugins/keyboard/keyboard.min.js +1 -1
  270. package/es5/plugins/mobile-view/mobile-view.js +1 -1
  271. package/es5/plugins/mobile-view/mobile-view.min.js +1 -1
  272. package/es5/plugins/page-break/page-break.js +1 -1
  273. package/es5/plugins/page-break/page-break.min.js +1 -1
  274. package/es5/plugins/paste-code/paste-code.css +1 -1
  275. package/es5/plugins/paste-code/paste-code.js +1 -1
  276. package/es5/plugins/paste-code/paste-code.min.js +1 -1
  277. package/es5/plugins/paste-from-word/paste-from-word.js +1 -1
  278. package/es5/plugins/paste-from-word/paste-from-word.min.js +1 -1
  279. package/es5/plugins/show-blocks/show-blocks.js +1 -1
  280. package/es5/plugins/show-blocks/show-blocks.min.js +1 -1
  281. package/es5/plugins/style/style.css +1 -1
  282. package/es5/plugins/style/style.js +1 -1
  283. package/es5/plugins/style/style.min.js +1 -1
  284. package/es5/plugins/templates/templates.css +1 -1
  285. package/es5/plugins/templates/templates.js +1 -1
  286. package/es5/plugins/templates/templates.min.js +1 -1
  287. package/es5/plugins/todo-list/todo-list.css +1 -1
  288. package/es5/plugins/todo-list/todo-list.js +1 -1
  289. package/es5/plugins/todo-list/todo-list.min.js +1 -1
  290. package/es5/plugins/translate/translate.css +1 -1
  291. package/es5/plugins/translate/translate.js +1 -1
  292. package/es5/plugins/translate/translate.min.js +1 -1
  293. package/es5/plugins/tune-block/tune-block.css +1 -1
  294. package/es5/plugins/tune-block/tune-block.js +1 -1
  295. package/es5/plugins/tune-block/tune-block.min.js +1 -1
  296. package/es5/polyfills.fat.min.js +1 -1
  297. package/es5/polyfills.js +1 -1
  298. package/es5/polyfills.min.js +1 -1
  299. package/esm/plugins/license/helpers/helpers.js +1 -1
  300. package/esm/plugins/license/license.js +1 -1
  301. package/package.json +1 -1
package/es5/jodit.js CHANGED
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * jodit-pro - PRO Version of Jodit Editor
3
3
  * Author: Chupurnov Valerii <chupurnov@gmail.com>
4
- * Version: v4.12.11
4
+ * Version: v4.12.13
5
5
  * Url: https://xdsoft.net/jodit/pro/
6
6
  * License(s): SEE LICENSE IN LICENSE.md
7
7
  */
@@ -2258,7 +2258,7 @@ function _unsupported_iterable_to_array(o, minLen) {
2258
2258
  if (n === "Map" || n === "Set") return Array.from(n);
2259
2259
  if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
2260
2260
  }
2261
- var APP_VERSION = "4.12.11";
2261
+ var APP_VERSION = "4.12.13";
2262
2262
  // prettier-ignore
2263
2263
  var ES = "es5";
2264
2264
  var IS_ES_MODERN = false;
@@ -7834,6 +7834,7 @@ __webpack_require__.r(__webpack_exports__);
7834
7834
  /* harmony export */ getClassName: function() { return /* reexport safe */ _utils_index_js__WEBPACK_IMPORTED_MODULE_8__.getClassName; },
7835
7835
  /* harmony export */ getContentWidth: function() { return /* reexport safe */ _size_index_js__WEBPACK_IMPORTED_MODULE_6__.getContentWidth; },
7836
7836
  /* harmony export */ getDataTransfer: function() { return /* reexport safe */ _utils_index_js__WEBPACK_IMPORTED_MODULE_8__.getDataTransfer; },
7837
+ /* harmony export */ getFixedPositionOffset: function() { return /* reexport safe */ _size_index_js__WEBPACK_IMPORTED_MODULE_6__.getFixedPositionOffset; },
7837
7838
  /* harmony export */ getPropertyDescriptor: function() { return /* reexport safe */ _utils_index_js__WEBPACK_IMPORTED_MODULE_8__.getPropertyDescriptor; },
7838
7839
  /* harmony export */ getScrollParent: function() { return /* reexport safe */ _size_index_js__WEBPACK_IMPORTED_MODULE_6__.getScrollParent; },
7839
7840
  /* harmony export */ getXPathByElement: function() { return /* reexport safe */ _utils_index_js__WEBPACK_IMPORTED_MODULE_8__.getXPathByElement; },
@@ -8314,6 +8315,56 @@ function normalizeCssValue(key, value) {
8314
8315
  };
8315
8316
 
8316
8317
 
8318
+ /***/ }),
8319
+
8320
+ /***/ 35224:
8321
+ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
8322
+
8323
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
8324
+ /* harmony export */ getFixedPositionOffset: function() { return /* binding */ getFixedPositionOffset; }
8325
+ /* harmony export */ });
8326
+ /*!
8327
+ * Jodit Editor (https://xdsoft.net/jodit/)
8328
+ * Released under MIT see LICENSE.txt in the project root for license information.
8329
+ * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
8330
+ */ /**
8331
+ * Whether the element establishes a containing block for its
8332
+ * `position: fixed` descendants, so their coordinates become relative to it
8333
+ * instead of the viewport.
8334
+ */ function isContainingBlockForFixed(style) {
8335
+ return style.transform !== '' && style.transform !== 'none' || style.perspective !== '' && style.perspective !== 'none' || style.filter !== '' && style.filter !== 'none' || style.willChange === 'transform' || style.willChange === 'perspective' || style.willChange === 'filter' || style.contain === 'paint' || style.contain === 'layout' || style.contain === 'strict' || style.contain === 'content';
8336
+ }
8337
+ /**
8338
+ * Returns the viewport offset of the containing block of a `position: fixed`
8339
+ * descendant of `elm`. A fixed element is normally positioned relative to the
8340
+ * viewport, but an ancestor with `transform`, `filter`, `perspective`, etc.
8341
+ * establishes a new containing block, shifting the fixed element by that
8342
+ * ancestor's top-left corner. The returned offset should be subtracted from
8343
+ * the desired viewport coordinates before applying them.
8344
+ *
8345
+ * Returns `{ x: 0, y: 0 }` when no such ancestor exists (the common case), so
8346
+ * call sites keep their previous behaviour unchanged.
8347
+ */ function getFixedPositionOffset(elm) {
8348
+ var _a;
8349
+ var win = (_a = elm.ownerDocument) === null || _a === void 0 ? void 0 : _a.defaultView;
8350
+ var node = elm.parentElement;
8351
+ while(win && node){
8352
+ if (isContainingBlockForFixed(win.getComputedStyle(node))) {
8353
+ var rect = node.getBoundingClientRect();
8354
+ return {
8355
+ x: rect.left,
8356
+ y: rect.top
8357
+ };
8358
+ }
8359
+ node = node.parentElement;
8360
+ }
8361
+ return {
8362
+ x: 0,
8363
+ y: 0
8364
+ };
8365
+ }
8366
+
8367
+
8317
8368
  /***/ }),
8318
8369
 
8319
8370
  /***/ 16442:
@@ -8353,18 +8404,20 @@ function getScrollParent(node) {
8353
8404
 
8354
8405
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
8355
8406
  /* harmony export */ getContentWidth: function() { return /* reexport safe */ _get_content_width_js__WEBPACK_IMPORTED_MODULE_0__.getContentWidth; },
8356
- /* harmony export */ getScrollParent: function() { return /* reexport safe */ _get_scroll_parent_js__WEBPACK_IMPORTED_MODULE_1__.getScrollParent; },
8357
- /* harmony export */ innerWidth: function() { return /* reexport safe */ _inner_width_js__WEBPACK_IMPORTED_MODULE_2__.innerWidth; },
8358
- /* harmony export */ offset: function() { return /* reexport safe */ _offset_js__WEBPACK_IMPORTED_MODULE_4__.offset; },
8359
- /* harmony export */ position: function() { return /* reexport safe */ _position_js__WEBPACK_IMPORTED_MODULE_5__.position; },
8360
- /* harmony export */ size: function() { return /* reexport safe */ _object_size_js__WEBPACK_IMPORTED_MODULE_3__.size; }
8407
+ /* harmony export */ getFixedPositionOffset: function() { return /* reexport safe */ _get_fixed_position_offset_js__WEBPACK_IMPORTED_MODULE_1__.getFixedPositionOffset; },
8408
+ /* harmony export */ getScrollParent: function() { return /* reexport safe */ _get_scroll_parent_js__WEBPACK_IMPORTED_MODULE_2__.getScrollParent; },
8409
+ /* harmony export */ innerWidth: function() { return /* reexport safe */ _inner_width_js__WEBPACK_IMPORTED_MODULE_3__.innerWidth; },
8410
+ /* harmony export */ offset: function() { return /* reexport safe */ _offset_js__WEBPACK_IMPORTED_MODULE_5__.offset; },
8411
+ /* harmony export */ position: function() { return /* reexport safe */ _position_js__WEBPACK_IMPORTED_MODULE_6__.position; },
8412
+ /* harmony export */ size: function() { return /* reexport safe */ _object_size_js__WEBPACK_IMPORTED_MODULE_4__.size; }
8361
8413
  /* harmony export */ });
8362
8414
  /* harmony import */ var _get_content_width_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(44506);
8363
- /* harmony import */ var _get_scroll_parent_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(16442);
8364
- /* harmony import */ var _inner_width_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(81630);
8365
- /* harmony import */ var _object_size_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(21496);
8366
- /* harmony import */ var _offset_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(81284);
8367
- /* harmony import */ var _position_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(5700);
8415
+ /* harmony import */ var _get_fixed_position_offset_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(35224);
8416
+ /* harmony import */ var _get_scroll_parent_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(16442);
8417
+ /* harmony import */ var _inner_width_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(81630);
8418
+ /* harmony import */ var _object_size_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(21496);
8419
+ /* harmony import */ var _offset_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(81284);
8420
+ /* harmony import */ var _position_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(5700);
8368
8421
  /*!
8369
8422
  * Jodit Editor (https://xdsoft.net/jodit/)
8370
8423
  * Released under MIT see LICENSE.txt in the project root for license information.
@@ -8379,6 +8432,7 @@ function getScrollParent(node) {
8379
8432
 
8380
8433
 
8381
8434
 
8435
+
8382
8436
  /***/ }),
8383
8437
 
8384
8438
  /***/ 81630:
@@ -18686,9 +18740,10 @@ UIButtonGroup = __decorate([
18686
18740
  /* harmony import */ var _decorators_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(65478);
18687
18741
  /* harmony import */ var _dom_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(22732);
18688
18742
  /* harmony import */ var _global_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(580);
18689
- /* harmony import */ var _helpers_size_position_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(5700);
18690
- /* harmony import */ var _helpers_utils_index_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(43555);
18691
- /* harmony import */ var _element_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(48538);
18743
+ /* harmony import */ var _helpers_size_get_fixed_position_offset_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(35224);
18744
+ /* harmony import */ var _helpers_size_position_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(5700);
18745
+ /* harmony import */ var _helpers_utils_index_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(43555);
18746
+ /* harmony import */ var _element_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(48538);
18692
18747
  function _assert_this_initialized(self) {
18693
18748
  if (self === void 0) {
18694
18749
  throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
@@ -18803,6 +18858,7 @@ var UITooltip_1;
18803
18858
 
18804
18859
 
18805
18860
 
18861
+
18806
18862
  var WINDOW_EVENTS_ON_HIDE = [
18807
18863
  'scroll.tooltip',
18808
18864
  'joditCloseDialog',
@@ -18908,11 +18964,11 @@ var UITooltip = UITooltip_1 = /*#__PURE__*/ function(UIElement) {
18908
18964
  if (!_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isHTMLElement(e.target)) {
18909
18965
  return;
18910
18966
  }
18911
- var tooltip = (0,_helpers_utils_index_js__WEBPACK_IMPORTED_MODULE_5__.attr)(e.target, 'aria-label');
18967
+ var tooltip = (0,_helpers_utils_index_js__WEBPACK_IMPORTED_MODULE_6__.attr)(e.target, 'aria-label');
18912
18968
  if (!tooltip) {
18913
18969
  return;
18914
18970
  }
18915
- var disabled = Boolean((0,_helpers_utils_index_js__WEBPACK_IMPORTED_MODULE_5__.attr)(e.target, 'disabled'));
18971
+ var disabled = Boolean((0,_helpers_utils_index_js__WEBPACK_IMPORTED_MODULE_6__.attr)(e.target, 'disabled'));
18916
18972
  if (disabled) {
18917
18973
  return;
18918
18974
  }
@@ -18923,7 +18979,7 @@ var UITooltip = UITooltip_1 = /*#__PURE__*/ function(UIElement) {
18923
18979
  this.__currentTarget = e.target;
18924
18980
  var target = e.target;
18925
18981
  this.__open(function() {
18926
- var pos = (0,_helpers_size_position_js__WEBPACK_IMPORTED_MODULE_4__.position)(target);
18982
+ var pos = (0,_helpers_size_position_js__WEBPACK_IMPORTED_MODULE_5__.position)(target);
18927
18983
  return {
18928
18984
  x: pos.left + pos.width / 2,
18929
18985
  y: pos.top + pos.height
@@ -18956,18 +19012,23 @@ var UITooltip = UITooltip_1 = /*#__PURE__*/ function(UIElement) {
18956
19012
  this.setMod('above', false);
18957
19013
  this.getElm('content').innerHTML = content;
18958
19014
  var point = getPoint();
18959
- (0,_helpers_utils_index_js__WEBPACK_IMPORTED_MODULE_5__.css)(this.container, {
18960
- left: point.x,
18961
- top: point.y
19015
+ // The tooltip is `position: fixed`. If it is rendered inside an ancestor
19016
+ // with a `transform` (e.g. an editor placed in a modal/flyout), that
19017
+ // ancestor becomes the containing block, so viewport coordinates must be
19018
+ // shifted by its offset. Returns `{0, 0}` when there is no such ancestor.
19019
+ var offset = (0,_helpers_size_get_fixed_position_offset_js__WEBPACK_IMPORTED_MODULE_4__.getFixedPositionOffset)(this.container);
19020
+ (0,_helpers_utils_index_js__WEBPACK_IMPORTED_MODULE_6__.css)(this.container, {
19021
+ left: point.x - offset.x,
19022
+ top: point.y - offset.y
18962
19023
  });
18963
- var tooltipPos = (0,_helpers_size_position_js__WEBPACK_IMPORTED_MODULE_4__.position)(this.container);
19024
+ var tooltipPos = (0,_helpers_size_position_js__WEBPACK_IMPORTED_MODULE_5__.position)(this.container);
18964
19025
  var viewHeight = this.j.ow.innerHeight;
18965
19026
  // If tooltip overflows below viewport, show it above the target
18966
19027
  if (tooltipPos.top + tooltipPos.height > viewHeight) {
18967
- var targetPos = (0,_helpers_size_position_js__WEBPACK_IMPORTED_MODULE_4__.position)(this.__currentTarget);
19028
+ var targetPos = (0,_helpers_size_position_js__WEBPACK_IMPORTED_MODULE_5__.position)(this.__currentTarget);
18968
19029
  this.setMod('above', true);
18969
- (0,_helpers_utils_index_js__WEBPACK_IMPORTED_MODULE_5__.css)(this.container, {
18970
- top: targetPos.top - tooltipPos.height
19030
+ (0,_helpers_utils_index_js__WEBPACK_IMPORTED_MODULE_6__.css)(this.container, {
19031
+ top: targetPos.top - tooltipPos.height - offset.y
18971
19032
  });
18972
19033
  }
18973
19034
  }
@@ -18982,7 +19043,7 @@ var UITooltip = UITooltip_1 = /*#__PURE__*/ function(UIElement) {
18982
19043
  this.__isOpened = false;
18983
19044
  this.setMod('visible', false);
18984
19045
  this.getElm('content').innerHTML = '';
18985
- (0,_helpers_utils_index_js__WEBPACK_IMPORTED_MODULE_5__.css)(this.container, {
19046
+ (0,_helpers_utils_index_js__WEBPACK_IMPORTED_MODULE_6__.css)(this.container, {
18986
19047
  left: -5000
18987
19048
  });
18988
19049
  }
@@ -19012,7 +19073,7 @@ var UITooltip = UITooltip_1 = /*#__PURE__*/ function(UIElement) {
19012
19073
  }
19013
19074
  ]);
19014
19075
  return UITooltip;
19015
- }(_element_js__WEBPACK_IMPORTED_MODULE_6__.UIElement);
19076
+ }(_element_js__WEBPACK_IMPORTED_MODULE_7__.UIElement);
19016
19077
  __decorate([
19017
19078
  _decorators_index_js__WEBPACK_IMPORTED_MODULE_1__.autobind
19018
19079
  ], UITooltip.prototype, "__onMouseLeave", null);
@@ -22979,9 +23040,13 @@ var Popup = /*#__PURE__*/ function(UIGroup) {
22979
23040
  }
22980
23041
  var _this___calculatePosition = _sliced_to_array(this.__calculatePosition(this.__targetBound(), this.viewBound(), (0,_helpers_index_js__WEBPACK_IMPORTED_MODULE_4__.position)(this.container, this.j)), 2), pos = _this___calculatePosition[0], strategy = _this___calculatePosition[1];
22981
23042
  this.setMod('strategy', strategy);
23043
+ // The popup is `position: fixed`; shift by the containing-block offset
23044
+ // when it is rendered inside a transformed ancestor (e.g. a modal),
23045
+ // otherwise `{0, 0}` keeps the viewport coordinates unchanged.
23046
+ var offset = (0,_helpers_index_js__WEBPACK_IMPORTED_MODULE_4__.getFixedPositionOffset)(this.container);
22982
23047
  (0,_helpers_index_js__WEBPACK_IMPORTED_MODULE_4__.css)(this.container, {
22983
- left: pos.left,
22984
- top: pos.top
23048
+ left: pos.left - offset.x,
23049
+ top: pos.top - offset.y
22985
23050
  });
22986
23051
  this.__childrenPopups.forEach(function(popup) {
22987
23052
  return popup.updatePosition();
@@ -63734,6 +63799,7 @@ var selectCells = /*#__PURE__*/ function(Plugin) {
63734
63799
  */ key: "__onStopSelection",
63735
63800
  value: function __onStopSelection(table, e) {
63736
63801
  var _this = this;
63802
+ var _a, _b;
63737
63803
  if (!this.__selectedCell) {
63738
63804
  return;
63739
63805
  }
@@ -63758,7 +63824,16 @@ var selectCells = /*#__PURE__*/ function(Plugin) {
63758
63824
  cell,
63759
63825
  this.__selectedCell
63760
63826
  ]), box = this.__tableModule.formalMatrix(table);
63761
- var max = box[bound[1][0]][bound[1][1]], min = box[bound[0][0]][bound[0][1]];
63827
+ var max = (_a = box[bound[1][0]]) === null || _a === void 0 ? void 0 : _a[bound[1][1]], min = (_b = box[bound[0][0]]) === null || _b === void 0 ? void 0 : _b[bound[0][1]];
63828
+ // `getSelectedBound` keeps its `Infinity` sentinel when none of the
63829
+ // selected cells belong to this table's matrix — e.g. after a
63830
+ // drag-and-drop that moved/removed the cells, leaving a stale anchor and
63831
+ // a drop target outside the table. Bail out instead of dereferencing an
63832
+ // out-of-range matrix slot (which threw `Cannot read properties of
63833
+ // undefined`).
63834
+ if (!min || !max) {
63835
+ return;
63836
+ }
63762
63837
  this.j.e.fire('showPopup', table, function() {
63763
63838
  var minOffset = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_4__.position)(min, _this.j), maxOffset = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_4__.position)(max, _this.j);
63764
63839
  return {
@@ -72492,8 +72567,6 @@ AutocompleteItem = (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_5__.__de
72492
72567
  /* harmony export */ validateLicense: function() { return /* binding */ validateLicense; }
72493
72568
  /* harmony export */ });
72494
72569
  /* unused harmony exports validateEntLicense, domainsHash */
72495
- /* harmony import */ var _swc_helpers_type_of__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(61200);
72496
-
72497
72570
  /*!
72498
72571
  * Jodit Editor PRO (https://xdsoft.net/jodit/)
72499
72572
  * See LICENSE.md in the project root for license information.
@@ -72525,7 +72598,10 @@ function isAllowedSubdomain(domain) {
72525
72598
  /**
72526
72599
  * Validate license
72527
72600
  */ function validateLicense(code, domain) {
72528
- code = code.replace(/[^A-Z0-9-]/g, 'R');
72601
+ // Be forgiving about how the key arrives: uppercase it (lowercase letters
72602
+ // would otherwise be wiped), turn unicode dashes from email/Word back into
72603
+ // '-', drop stray whitespace, then blank out anything still illegal.
72604
+ code = String(code).toUpperCase().replace(/[‐-―−]/g, '-').replace(/\s+/g, '').replace(/[^A-Z0-9-]/g, 'R');
72529
72605
  if (validateEntLicense(code)) {
72530
72606
  return true;
72531
72607
  }
@@ -72543,14 +72619,15 @@ function isAllowedSubdomain(domain) {
72543
72619
  return part.replace('{part}', domainsParts[index] || '[R-T]');
72544
72620
  });
72545
72621
  var reg = RegExp("^".concat(parts.join('-'), "$"), 'i');
72546
- var type = code.substring(12, 13);
72547
- var result = reg.test(code);
72548
- if (!result && type === (0,_swc_helpers_type_of__WEBPACK_IMPORTED_MODULE_0__._)(!domain).toUpperCase()[5]) {
72549
- var parts1 = domain.split('.');
72550
- parts1.shift();
72551
- return parts1.length ? validateLicense(code, parts1.join('.')) : false;
72622
+ if (reg.test(code)) {
72623
+ return true;
72552
72624
  }
72553
- return result;
72625
+ // A license issued for a parent domain also covers its subdomains: walk up
72626
+ // one label at a time and re-check, stopping at the registrable domain
72627
+ // (e.g. example.com) so we never try to match a bare TLD.
72628
+ var labels = domain.split('.');
72629
+ labels.shift();
72630
+ return labels.length > 1 ? validateLicense(code, labels.join('.')) : false;
72554
72631
  }
72555
72632
  function validateEntLicense(code) {
72556
72633
  return /[A-Z0-9][013456][A-P0-9]{2}[ABC]-([0-3])[ELPDF][E-L4-8]{2}\1-[A-D][R0][J-P5-6]{3}-[DPGHYE][GFPOD]{3}[A-SX-Z]/.test(code);
@@ -72655,7 +72732,7 @@ var license = /*#__PURE__*/ function(Plugin) {
72655
72732
  ];
72656
72733
  }
72657
72734
  valid = (0,_helpers_helpers__WEBPACK_IMPORTED_MODULE_7__.validateLicense)(code, domain);
72658
- if (!(!valid && code[12] > 'A' && !jodit_esm_core_constants__WEBPACK_IMPORTED_MODULE_8__.IS_TEST)) return [
72735
+ if (!(!valid && !jodit_esm_core_constants__WEBPACK_IMPORTED_MODULE_8__.IS_TEST)) return [
72659
72736
  3,
72660
72737
  2
72661
72738
  ];
@@ -72697,29 +72774,40 @@ var license = /*#__PURE__*/ function(Plugin) {
72697
72774
  }
72698
72775
  s = document.createElement('script');
72699
72776
  s.src = "https://xdsoft.net/jodit/pro/api/licenses/validate/?code=".concat(encodeURIComponent(code), "&host=").concat(encodeURIComponent(domain));
72700
- document.body.appendChild(s);
72701
72777
  return [
72702
72778
  2,
72703
72779
  this.j.async.promise(function(res) {
72704
- window['onJoditResolveKeyCode'] = function(newCode) {
72705
- try {
72706
- if ((0,jodit_esm_core_helpers_checker_is_boolean__WEBPACK_IMPORTED_MODULE_10__.isBoolean)(newCode)) {
72707
- return res(newCode);
72708
- }
72709
- if ((0,_helpers_helpers__WEBPACK_IMPORTED_MODULE_7__.validateLicense)(newCode, domain)) {
72710
- _this.j.storage.set(storageKey, newCode);
72711
- res(true);
72712
- } else {
72713
- res(false);
72714
- }
72715
- } finally{
72716
- jodit_esm_core_dom_dom__WEBPACK_IMPORTED_MODULE_9__.Dom.safeRemove(s);
72780
+ var settled = false;
72781
+ var finish = function finish(value) {
72782
+ if (settled) {
72783
+ return;
72717
72784
  }
72785
+ settled = true;
72786
+ jodit_esm_core_dom_dom__WEBPACK_IMPORTED_MODULE_9__.Dom.safeRemove(s);
72787
+ res(value);
72718
72788
  };
72789
+ window['onJoditResolveKeyCode'] = function(response) {
72790
+ // We reached our server and got an explicit verdict.
72791
+ if ((0,jodit_esm_core_helpers_checker_is_boolean__WEBPACK_IMPORTED_MODULE_10__.isBoolean)(response)) {
72792
+ return finish(response);
72793
+ }
72794
+ if ((0,_helpers_helpers__WEBPACK_IMPORTED_MODULE_7__.validateLicense)(response, domain)) {
72795
+ _this.j.storage.set(storageKey, response);
72796
+ finish(true);
72797
+ } else {
72798
+ finish(false);
72799
+ }
72800
+ };
72801
+ // Could not load our endpoint (offline, CSP, firewall, ad-blocker):
72802
+ // don't punish a paying customer — treat the key as valid.
72803
+ s.onerror = function() {
72804
+ return finish(true);
72805
+ };
72806
+ document.body.appendChild(s);
72807
+ // No answer in time → assume our server is unreachable → valid.
72719
72808
  _this.j.async.setTimeout(function() {
72720
- res(false);
72721
- jodit_esm_core_dom_dom__WEBPACK_IMPORTED_MODULE_9__.Dom.safeRemove(s);
72722
- }, 3000);
72809
+ return finish(true);
72810
+ }, 5000);
72723
72811
  })
72724
72812
  ];
72725
72813
  });
package/es5/jodit.min.css CHANGED
@@ -1,14 +1,14 @@
1
1
  /*!
2
2
  * jodit-pro - PRO Version of Jodit Editor
3
3
  * Author: Chupurnov Valerii <chupurnov@gmail.com>
4
- * Version: v4.12.11
4
+ * Version: v4.12.13
5
5
  * Url: https://xdsoft.net/jodit/pro/
6
6
  * License(s): SEE LICENSE IN LICENSE.md
7
7
  */
8
8
  /*!
9
9
  * jodit-pro - PRO Version of Jodit Editor
10
10
  * Author: Chupurnov Valerii <chupurnov@gmail.com>
11
- * Version: v4.12.11
11
+ * Version: v4.12.13
12
12
  * Url: https://xdsoft.net/jodit/pro/
13
13
  * License(s): SEE LICENSE IN LICENSE.md
14
14
  */