pds-dev-kit-web-test 2.5.627 → 2.5.628

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 (265) hide show
  1. package/dist/src/common/services/i18n/resources/en.json +14 -14
  2. package/dist/src/common/styles/theme.d.ts +0 -1
  3. package/dist/src/common/styles/theme.js +1 -1
  4. package/dist/src/core/pricing/translator.js +7 -8
  5. package/dist/src/core/pricing/types.js +1 -1
  6. package/dist/src/desktop/components/BoxItem/BoxItem.js +1 -1
  7. package/dist/src/desktop/components/Calendar/Calendar.js +46 -51
  8. package/dist/src/desktop/components/Calendar/CalendarContext.d.ts +3 -1
  9. package/dist/src/desktop/components/Calendar/CalendarContext.js +2 -1
  10. package/dist/src/desktop/components/Calendar/DailyView.d.ts +8 -2
  11. package/dist/src/desktop/components/Calendar/DailyView.js +88 -7
  12. package/dist/src/desktop/components/Calendar/MonthlyView.d.ts +2 -1
  13. package/dist/src/desktop/components/Calendar/MonthlyView.js +81 -6
  14. package/dist/src/desktop/components/Calendar/WeeklyView.d.ts +3 -0
  15. package/dist/src/desktop/components/Calendar/WeeklyView.js +113 -7
  16. package/dist/src/desktop/components/Calendar/calendarUtils.js +20 -10
  17. package/dist/src/desktop/components/Calendar/types.d.ts +8 -4
  18. package/dist/src/desktop/components/TextButton/TextButton.d.ts +2 -5
  19. package/dist/src/desktop/components/TextButton/TextButton.js +4 -14
  20. package/dist/src/desktop/components/index.d.ts +1 -2
  21. package/dist/src/desktop/components/index.js +2 -4
  22. package/dist/src/desktop/index.d.ts +1 -1
  23. package/dist/src/desktop/index.js +2 -3
  24. package/dist/src/desktop/layout/LayoutWF/Containers/ContentsContainer/variation/WFA.js +1 -1
  25. package/dist/src/desktop/layout/LayoutWF/Containers/ContentsContainer/variation/WFB.js +1 -1
  26. package/dist/src/desktop/layout/LayoutWF/Containers/ContentsContainer/variation/WFE.js +1 -1
  27. package/dist/src/desktop/layout/LayoutWF/Containers/ContentsContainer/variation/WFL.js +5 -8
  28. package/dist/src/mobile/components/BoxItem/BoxItem.js +1 -1
  29. package/dist/src/mobile/components/TextButton/TextButton.d.ts +2 -5
  30. package/dist/src/mobile/components/TextButton/TextButton.js +4 -14
  31. package/dist/src/mobile/components/index.d.ts +1 -2
  32. package/dist/src/mobile/components/index.js +1 -3
  33. package/dist/src/mobile/index.d.ts +1 -1
  34. package/dist/src/mobile/index.js +1 -2
  35. package/package.json +2 -7
  36. package/release-note.md +2 -2
  37. package/dist/scripts/copy-tinymce.d.ts +0 -1
  38. package/dist/scripts/copy-tinymce.js +0 -32
  39. package/dist/src/desktop/components/RichTextEditor/RichTextEditor.d.ts +0 -34
  40. package/dist/src/desktop/components/RichTextEditor/RichTextEditor.js +0 -268
  41. package/dist/src/desktop/components/RichTextEditor/index.d.ts +0 -2
  42. package/dist/src/desktop/components/RichTextEditor/index.js +0 -8
  43. package/dist/src/mobile/components/RichTextEditor/RichTextEditor.d.ts +0 -34
  44. package/dist/src/mobile/components/RichTextEditor/RichTextEditor.js +0 -272
  45. package/dist/src/mobile/components/RichTextEditor/index.d.ts +0 -2
  46. package/dist/src/mobile/components/RichTextEditor/index.js +0 -8
  47. package/dist/tinymce/CHANGELOG.md +0 -3453
  48. package/dist/tinymce/README.md +0 -73
  49. package/dist/tinymce/bower.json +0 -27
  50. package/dist/tinymce/composer.json +0 -52
  51. package/dist/tinymce/icons/default/icons.js +0 -194
  52. package/dist/tinymce/icons/default/icons.min.js +0 -1
  53. package/dist/tinymce/icons/default/index.js +0 -7
  54. package/dist/tinymce/license.txt +0 -21
  55. package/dist/tinymce/models/dom/index.js +0 -7
  56. package/dist/tinymce/models/dom/model.js +0 -8040
  57. package/dist/tinymce/models/dom/model.min.js +0 -1
  58. package/dist/tinymce/notices.txt +0 -21
  59. package/dist/tinymce/package.json +0 -32
  60. package/dist/tinymce/plugins/accordion/index.js +0 -7
  61. package/dist/tinymce/plugins/accordion/plugin.js +0 -1054
  62. package/dist/tinymce/plugins/accordion/plugin.min.js +0 -5
  63. package/dist/tinymce/plugins/advlist/index.js +0 -7
  64. package/dist/tinymce/plugins/advlist/plugin.js +0 -259
  65. package/dist/tinymce/plugins/advlist/plugin.min.js +0 -5
  66. package/dist/tinymce/plugins/anchor/index.js +0 -7
  67. package/dist/tinymce/plugins/anchor/plugin.js +0 -214
  68. package/dist/tinymce/plugins/anchor/plugin.min.js +0 -5
  69. package/dist/tinymce/plugins/autolink/index.js +0 -7
  70. package/dist/tinymce/plugins/autolink/plugin.js +0 -228
  71. package/dist/tinymce/plugins/autolink/plugin.min.js +0 -5
  72. package/dist/tinymce/plugins/autoresize/index.js +0 -7
  73. package/dist/tinymce/plugins/autoresize/plugin.js +0 -192
  74. package/dist/tinymce/plugins/autoresize/plugin.min.js +0 -5
  75. package/dist/tinymce/plugins/autosave/index.js +0 -7
  76. package/dist/tinymce/plugins/autosave/plugin.js +0 -233
  77. package/dist/tinymce/plugins/autosave/plugin.min.js +0 -5
  78. package/dist/tinymce/plugins/charmap/index.js +0 -7
  79. package/dist/tinymce/plugins/charmap/plugin.js +0 -1658
  80. package/dist/tinymce/plugins/charmap/plugin.min.js +0 -5
  81. package/dist/tinymce/plugins/code/index.js +0 -7
  82. package/dist/tinymce/plugins/code/plugin.js +0 -85
  83. package/dist/tinymce/plugins/code/plugin.min.js +0 -5
  84. package/dist/tinymce/plugins/codesample/index.js +0 -7
  85. package/dist/tinymce/plugins/codesample/plugin.js +0 -2471
  86. package/dist/tinymce/plugins/codesample/plugin.min.js +0 -13
  87. package/dist/tinymce/plugins/directionality/index.js +0 -7
  88. package/dist/tinymce/plugins/directionality/plugin.js +0 -395
  89. package/dist/tinymce/plugins/directionality/plugin.min.js +0 -5
  90. package/dist/tinymce/plugins/emoticons/index.js +0 -7
  91. package/dist/tinymce/plugins/emoticons/js/emojiimages.js +0 -1
  92. package/dist/tinymce/plugins/emoticons/js/emojiimages.min.js +0 -1
  93. package/dist/tinymce/plugins/emoticons/js/emojis.js +0 -1
  94. package/dist/tinymce/plugins/emoticons/js/emojis.min.js +0 -1
  95. package/dist/tinymce/plugins/emoticons/plugin.js +0 -595
  96. package/dist/tinymce/plugins/emoticons/plugin.min.js +0 -5
  97. package/dist/tinymce/plugins/fullscreen/index.js +0 -7
  98. package/dist/tinymce/plugins/fullscreen/plugin.js +0 -1249
  99. package/dist/tinymce/plugins/fullscreen/plugin.min.js +0 -5
  100. package/dist/tinymce/plugins/help/index.js +0 -7
  101. package/dist/tinymce/plugins/help/js/i18n/keynav/ar.js +0 -90
  102. package/dist/tinymce/plugins/help/js/i18n/keynav/bg_BG.js +0 -90
  103. package/dist/tinymce/plugins/help/js/i18n/keynav/ca.js +0 -90
  104. package/dist/tinymce/plugins/help/js/i18n/keynav/cs.js +0 -90
  105. package/dist/tinymce/plugins/help/js/i18n/keynav/da.js +0 -90
  106. package/dist/tinymce/plugins/help/js/i18n/keynav/de.js +0 -90
  107. package/dist/tinymce/plugins/help/js/i18n/keynav/el.js +0 -90
  108. package/dist/tinymce/plugins/help/js/i18n/keynav/en.js +0 -90
  109. package/dist/tinymce/plugins/help/js/i18n/keynav/es.js +0 -90
  110. package/dist/tinymce/plugins/help/js/i18n/keynav/eu.js +0 -90
  111. package/dist/tinymce/plugins/help/js/i18n/keynav/fa.js +0 -90
  112. package/dist/tinymce/plugins/help/js/i18n/keynav/fi.js +0 -90
  113. package/dist/tinymce/plugins/help/js/i18n/keynav/fr_FR.js +0 -90
  114. package/dist/tinymce/plugins/help/js/i18n/keynav/he_IL.js +0 -90
  115. package/dist/tinymce/plugins/help/js/i18n/keynav/hi.js +0 -90
  116. package/dist/tinymce/plugins/help/js/i18n/keynav/hr.js +0 -90
  117. package/dist/tinymce/plugins/help/js/i18n/keynav/hu_HU.js +0 -90
  118. package/dist/tinymce/plugins/help/js/i18n/keynav/id.js +0 -90
  119. package/dist/tinymce/plugins/help/js/i18n/keynav/it.js +0 -90
  120. package/dist/tinymce/plugins/help/js/i18n/keynav/ja.js +0 -90
  121. package/dist/tinymce/plugins/help/js/i18n/keynav/kk.js +0 -90
  122. package/dist/tinymce/plugins/help/js/i18n/keynav/ko_KR.js +0 -90
  123. package/dist/tinymce/plugins/help/js/i18n/keynav/ms.js +0 -90
  124. package/dist/tinymce/plugins/help/js/i18n/keynav/nb_NO.js +0 -90
  125. package/dist/tinymce/plugins/help/js/i18n/keynav/nl.js +0 -90
  126. package/dist/tinymce/plugins/help/js/i18n/keynav/pl.js +0 -90
  127. package/dist/tinymce/plugins/help/js/i18n/keynav/pt_BR.js +0 -90
  128. package/dist/tinymce/plugins/help/js/i18n/keynav/pt_PT.js +0 -90
  129. package/dist/tinymce/plugins/help/js/i18n/keynav/ro.js +0 -90
  130. package/dist/tinymce/plugins/help/js/i18n/keynav/ru.js +0 -90
  131. package/dist/tinymce/plugins/help/js/i18n/keynav/sk.js +0 -90
  132. package/dist/tinymce/plugins/help/js/i18n/keynav/sl_SI.js +0 -90
  133. package/dist/tinymce/plugins/help/js/i18n/keynav/sv_SE.js +0 -90
  134. package/dist/tinymce/plugins/help/js/i18n/keynav/th_TH.js +0 -90
  135. package/dist/tinymce/plugins/help/js/i18n/keynav/tr.js +0 -90
  136. package/dist/tinymce/plugins/help/js/i18n/keynav/uk.js +0 -90
  137. package/dist/tinymce/plugins/help/js/i18n/keynav/vi.js +0 -90
  138. package/dist/tinymce/plugins/help/js/i18n/keynav/zh_CN.js +0 -84
  139. package/dist/tinymce/plugins/help/js/i18n/keynav/zh_TW.js +0 -90
  140. package/dist/tinymce/plugins/help/plugin.js +0 -898
  141. package/dist/tinymce/plugins/help/plugin.min.js +0 -5
  142. package/dist/tinymce/plugins/image/index.js +0 -7
  143. package/dist/tinymce/plugins/image/plugin.js +0 -1505
  144. package/dist/tinymce/plugins/image/plugin.min.js +0 -5
  145. package/dist/tinymce/plugins/importcss/index.js +0 -7
  146. package/dist/tinymce/plugins/importcss/plugin.js +0 -344
  147. package/dist/tinymce/plugins/importcss/plugin.min.js +0 -5
  148. package/dist/tinymce/plugins/insertdatetime/index.js +0 -7
  149. package/dist/tinymce/plugins/insertdatetime/plugin.js +0 -187
  150. package/dist/tinymce/plugins/insertdatetime/plugin.min.js +0 -5
  151. package/dist/tinymce/plugins/link/index.js +0 -7
  152. package/dist/tinymce/plugins/link/plugin.js +0 -1242
  153. package/dist/tinymce/plugins/link/plugin.min.js +0 -5
  154. package/dist/tinymce/plugins/lists/index.js +0 -7
  155. package/dist/tinymce/plugins/lists/plugin.js +0 -2172
  156. package/dist/tinymce/plugins/lists/plugin.min.js +0 -5
  157. package/dist/tinymce/plugins/media/index.js +0 -7
  158. package/dist/tinymce/plugins/media/plugin.js +0 -1217
  159. package/dist/tinymce/plugins/media/plugin.min.js +0 -5
  160. package/dist/tinymce/plugins/nonbreaking/index.js +0 -7
  161. package/dist/tinymce/plugins/nonbreaking/plugin.js +0 -123
  162. package/dist/tinymce/plugins/nonbreaking/plugin.min.js +0 -5
  163. package/dist/tinymce/plugins/pagebreak/index.js +0 -7
  164. package/dist/tinymce/plugins/pagebreak/plugin.js +0 -117
  165. package/dist/tinymce/plugins/pagebreak/plugin.min.js +0 -5
  166. package/dist/tinymce/plugins/preview/index.js +0 -7
  167. package/dist/tinymce/plugins/preview/plugin.js +0 -97
  168. package/dist/tinymce/plugins/preview/plugin.min.js +0 -5
  169. package/dist/tinymce/plugins/quickbars/index.js +0 -7
  170. package/dist/tinymce/plugins/quickbars/plugin.js +0 -447
  171. package/dist/tinymce/plugins/quickbars/plugin.min.js +0 -5
  172. package/dist/tinymce/plugins/save/index.js +0 -7
  173. package/dist/tinymce/plugins/save/plugin.js +0 -118
  174. package/dist/tinymce/plugins/save/plugin.min.js +0 -5
  175. package/dist/tinymce/plugins/searchreplace/index.js +0 -7
  176. package/dist/tinymce/plugins/searchreplace/plugin.js +0 -1093
  177. package/dist/tinymce/plugins/searchreplace/plugin.min.js +0 -5
  178. package/dist/tinymce/plugins/table/index.js +0 -7
  179. package/dist/tinymce/plugins/table/plugin.js +0 -3462
  180. package/dist/tinymce/plugins/table/plugin.min.js +0 -5
  181. package/dist/tinymce/plugins/template/index.js +0 -7
  182. package/dist/tinymce/plugins/template/plugin.js +0 -567
  183. package/dist/tinymce/plugins/template/plugin.min.js +0 -5
  184. package/dist/tinymce/plugins/visualblocks/index.js +0 -7
  185. package/dist/tinymce/plugins/visualblocks/plugin.js +0 -98
  186. package/dist/tinymce/plugins/visualblocks/plugin.min.js +0 -5
  187. package/dist/tinymce/plugins/visualchars/index.js +0 -7
  188. package/dist/tinymce/plugins/visualchars/plugin.js +0 -560
  189. package/dist/tinymce/plugins/visualchars/plugin.min.js +0 -5
  190. package/dist/tinymce/plugins/wordcount/index.js +0 -7
  191. package/dist/tinymce/plugins/wordcount/plugin.js +0 -405
  192. package/dist/tinymce/plugins/wordcount/plugin.min.js +0 -5
  193. package/dist/tinymce/skins/content/dark/content.css +0 -79
  194. package/dist/tinymce/skins/content/dark/content.js +0 -15
  195. package/dist/tinymce/skins/content/dark/content.min.css +0 -14
  196. package/dist/tinymce/skins/content/default/content.css +0 -74
  197. package/dist/tinymce/skins/content/default/content.js +0 -15
  198. package/dist/tinymce/skins/content/default/content.min.css +0 -14
  199. package/dist/tinymce/skins/content/document/content.css +0 -79
  200. package/dist/tinymce/skins/content/document/content.js +0 -15
  201. package/dist/tinymce/skins/content/document/content.min.css +0 -14
  202. package/dist/tinymce/skins/content/tinymce-5/content.css +0 -74
  203. package/dist/tinymce/skins/content/tinymce-5/content.js +0 -15
  204. package/dist/tinymce/skins/content/tinymce-5/content.min.css +0 -14
  205. package/dist/tinymce/skins/content/tinymce-5-dark/content.css +0 -79
  206. package/dist/tinymce/skins/content/tinymce-5-dark/content.js +0 -15
  207. package/dist/tinymce/skins/content/tinymce-5-dark/content.min.css +0 -14
  208. package/dist/tinymce/skins/content/writer/content.css +0 -75
  209. package/dist/tinymce/skins/content/writer/content.js +0 -15
  210. package/dist/tinymce/skins/content/writer/content.min.css +0 -14
  211. package/dist/tinymce/skins/ui/oxide/content.css +0 -798
  212. package/dist/tinymce/skins/ui/oxide/content.inline.css +0 -792
  213. package/dist/tinymce/skins/ui/oxide/content.inline.js +0 -15
  214. package/dist/tinymce/skins/ui/oxide/content.inline.min.css +0 -14
  215. package/dist/tinymce/skins/ui/oxide/content.js +0 -15
  216. package/dist/tinymce/skins/ui/oxide/content.min.css +0 -14
  217. package/dist/tinymce/skins/ui/oxide/skin.css +0 -3763
  218. package/dist/tinymce/skins/ui/oxide/skin.js +0 -2
  219. package/dist/tinymce/skins/ui/oxide/skin.min.css +0 -1
  220. package/dist/tinymce/skins/ui/oxide/skin.shadowdom.css +0 -30
  221. package/dist/tinymce/skins/ui/oxide/skin.shadowdom.js +0 -2
  222. package/dist/tinymce/skins/ui/oxide/skin.shadowdom.min.css +0 -1
  223. package/dist/tinymce/skins/ui/oxide-dark/content.css +0 -779
  224. package/dist/tinymce/skins/ui/oxide-dark/content.inline.css +0 -792
  225. package/dist/tinymce/skins/ui/oxide-dark/content.inline.js +0 -15
  226. package/dist/tinymce/skins/ui/oxide-dark/content.inline.min.css +0 -14
  227. package/dist/tinymce/skins/ui/oxide-dark/content.js +0 -15
  228. package/dist/tinymce/skins/ui/oxide-dark/content.min.css +0 -14
  229. package/dist/tinymce/skins/ui/oxide-dark/skin.css +0 -3766
  230. package/dist/tinymce/skins/ui/oxide-dark/skin.js +0 -2
  231. package/dist/tinymce/skins/ui/oxide-dark/skin.min.css +0 -1
  232. package/dist/tinymce/skins/ui/oxide-dark/skin.shadowdom.css +0 -30
  233. package/dist/tinymce/skins/ui/oxide-dark/skin.shadowdom.js +0 -2
  234. package/dist/tinymce/skins/ui/oxide-dark/skin.shadowdom.min.css +0 -1
  235. package/dist/tinymce/skins/ui/tinymce-5/content.css +0 -798
  236. package/dist/tinymce/skins/ui/tinymce-5/content.inline.css +0 -792
  237. package/dist/tinymce/skins/ui/tinymce-5/content.inline.js +0 -15
  238. package/dist/tinymce/skins/ui/tinymce-5/content.inline.min.css +0 -14
  239. package/dist/tinymce/skins/ui/tinymce-5/content.js +0 -15
  240. package/dist/tinymce/skins/ui/tinymce-5/content.min.css +0 -14
  241. package/dist/tinymce/skins/ui/tinymce-5/skin.css +0 -3857
  242. package/dist/tinymce/skins/ui/tinymce-5/skin.js +0 -2
  243. package/dist/tinymce/skins/ui/tinymce-5/skin.min.css +0 -1
  244. package/dist/tinymce/skins/ui/tinymce-5/skin.shadowdom.css +0 -30
  245. package/dist/tinymce/skins/ui/tinymce-5/skin.shadowdom.js +0 -2
  246. package/dist/tinymce/skins/ui/tinymce-5/skin.shadowdom.min.css +0 -1
  247. package/dist/tinymce/skins/ui/tinymce-5-dark/content.css +0 -779
  248. package/dist/tinymce/skins/ui/tinymce-5-dark/content.inline.css +0 -792
  249. package/dist/tinymce/skins/ui/tinymce-5-dark/content.inline.js +0 -15
  250. package/dist/tinymce/skins/ui/tinymce-5-dark/content.inline.min.css +0 -14
  251. package/dist/tinymce/skins/ui/tinymce-5-dark/content.js +0 -15
  252. package/dist/tinymce/skins/ui/tinymce-5-dark/content.min.css +0 -14
  253. package/dist/tinymce/skins/ui/tinymce-5-dark/skin.css +0 -3857
  254. package/dist/tinymce/skins/ui/tinymce-5-dark/skin.js +0 -2
  255. package/dist/tinymce/skins/ui/tinymce-5-dark/skin.min.css +0 -1
  256. package/dist/tinymce/skins/ui/tinymce-5-dark/skin.shadowdom.css +0 -30
  257. package/dist/tinymce/skins/ui/tinymce-5-dark/skin.shadowdom.js +0 -2
  258. package/dist/tinymce/skins/ui/tinymce-5-dark/skin.shadowdom.min.css +0 -1
  259. package/dist/tinymce/themes/silver/index.js +0 -7
  260. package/dist/tinymce/themes/silver/theme.js +0 -30775
  261. package/dist/tinymce/themes/silver/theme.min.js +0 -1
  262. package/dist/tinymce/tinymce.d.ts +0 -3238
  263. package/dist/tinymce/tinymce.js +0 -31779
  264. package/dist/tinymce/tinymce.min.js +0 -11
  265. package/scripts/copy-tinymce.js +0 -37
@@ -1,228 +0,0 @@
1
- /**
2
- * TinyMCE version 6.8.6 (TBD)
3
- */
4
-
5
- (function () {
6
- 'use strict';
7
-
8
- var global$1 = tinymce.util.Tools.resolve('tinymce.PluginManager');
9
-
10
- const link = () => /(?:[A-Za-z][A-Za-z\d.+-]{0,14}:\/\/(?:[-.~*+=!&;:'%@?^${}(),\w]+@)?|www\.|[-;:&=+$,.\w]+@)[A-Za-z\d-]+(?:\.[A-Za-z\d-]+)*(?::\d+)?(?:\/(?:[-.~*+=!;:'%@$(),\/\w]*[-~*+=%@$()\/\w])?)?(?:\?(?:[-.~*+=!&;:'%@?^${}(),\/\w]+))?(?:#(?:[-.~*+=!&;:'%@?^${}(),\/\w]+))?/g;
11
-
12
- const option = name => editor => editor.options.get(name);
13
- const register = editor => {
14
- const registerOption = editor.options.register;
15
- registerOption('autolink_pattern', {
16
- processor: 'regexp',
17
- default: new RegExp('^' + link().source + '$', 'i')
18
- });
19
- registerOption('link_default_target', { processor: 'string' });
20
- registerOption('link_default_protocol', {
21
- processor: 'string',
22
- default: 'https'
23
- });
24
- };
25
- const getAutoLinkPattern = option('autolink_pattern');
26
- const getDefaultLinkTarget = option('link_default_target');
27
- const getDefaultLinkProtocol = option('link_default_protocol');
28
- const allowUnsafeLinkTarget = option('allow_unsafe_link_target');
29
-
30
- const hasProto = (v, constructor, predicate) => {
31
- var _a;
32
- if (predicate(v, constructor.prototype)) {
33
- return true;
34
- } else {
35
- return ((_a = v.constructor) === null || _a === void 0 ? void 0 : _a.name) === constructor.name;
36
- }
37
- };
38
- const typeOf = x => {
39
- const t = typeof x;
40
- if (x === null) {
41
- return 'null';
42
- } else if (t === 'object' && Array.isArray(x)) {
43
- return 'array';
44
- } else if (t === 'object' && hasProto(x, String, (o, proto) => proto.isPrototypeOf(o))) {
45
- return 'string';
46
- } else {
47
- return t;
48
- }
49
- };
50
- const isType = type => value => typeOf(value) === type;
51
- const eq = t => a => t === a;
52
- const isString = isType('string');
53
- const isUndefined = eq(undefined);
54
- const isNullable = a => a === null || a === undefined;
55
- const isNonNullable = a => !isNullable(a);
56
-
57
- const not = f => t => !f(t);
58
-
59
- const hasOwnProperty = Object.hasOwnProperty;
60
- const has = (obj, key) => hasOwnProperty.call(obj, key);
61
-
62
- const checkRange = (str, substr, start) => substr === '' || str.length >= substr.length && str.substr(start, start + substr.length) === substr;
63
- const contains = (str, substr, start = 0, end) => {
64
- const idx = str.indexOf(substr, start);
65
- if (idx !== -1) {
66
- return isUndefined(end) ? true : idx + substr.length <= end;
67
- } else {
68
- return false;
69
- }
70
- };
71
- const startsWith = (str, prefix) => {
72
- return checkRange(str, prefix, 0);
73
- };
74
-
75
- const zeroWidth = '\uFEFF';
76
- const isZwsp = char => char === zeroWidth;
77
- const removeZwsp = s => s.replace(/\uFEFF/g, '');
78
-
79
- var global = tinymce.util.Tools.resolve('tinymce.dom.TextSeeker');
80
-
81
- const isTextNode = node => node.nodeType === 3;
82
- const isElement = node => node.nodeType === 1;
83
- const isBracketOrSpace = char => /^[(\[{ \u00a0]$/.test(char);
84
- const hasProtocol = url => /^([A-Za-z][A-Za-z\d.+-]*:\/\/)|mailto:/.test(url);
85
- const isPunctuation = char => /[?!,.;:]/.test(char);
86
- const findChar = (text, index, predicate) => {
87
- for (let i = index - 1; i >= 0; i--) {
88
- const char = text.charAt(i);
89
- if (!isZwsp(char) && predicate(char)) {
90
- return i;
91
- }
92
- }
93
- return -1;
94
- };
95
- const freefallRtl = (container, offset) => {
96
- let tempNode = container;
97
- let tempOffset = offset;
98
- while (isElement(tempNode) && tempNode.childNodes[tempOffset]) {
99
- tempNode = tempNode.childNodes[tempOffset];
100
- tempOffset = isTextNode(tempNode) ? tempNode.data.length : tempNode.childNodes.length;
101
- }
102
- return {
103
- container: tempNode,
104
- offset: tempOffset
105
- };
106
- };
107
-
108
- const parseCurrentLine = (editor, offset) => {
109
- var _a;
110
- const voidElements = editor.schema.getVoidElements();
111
- const autoLinkPattern = getAutoLinkPattern(editor);
112
- const {dom, selection} = editor;
113
- if (dom.getParent(selection.getNode(), 'a[href]') !== null) {
114
- return null;
115
- }
116
- const rng = selection.getRng();
117
- const textSeeker = global(dom, node => {
118
- return dom.isBlock(node) || has(voidElements, node.nodeName.toLowerCase()) || dom.getContentEditable(node) === 'false';
119
- });
120
- const {
121
- container: endContainer,
122
- offset: endOffset
123
- } = freefallRtl(rng.endContainer, rng.endOffset);
124
- const root = (_a = dom.getParent(endContainer, dom.isBlock)) !== null && _a !== void 0 ? _a : dom.getRoot();
125
- const endSpot = textSeeker.backwards(endContainer, endOffset + offset, (node, offset) => {
126
- const text = node.data;
127
- const idx = findChar(text, offset, not(isBracketOrSpace));
128
- return idx === -1 || isPunctuation(text[idx]) ? idx : idx + 1;
129
- }, root);
130
- if (!endSpot) {
131
- return null;
132
- }
133
- let lastTextNode = endSpot.container;
134
- const startSpot = textSeeker.backwards(endSpot.container, endSpot.offset, (node, offset) => {
135
- lastTextNode = node;
136
- const idx = findChar(node.data, offset, isBracketOrSpace);
137
- return idx === -1 ? idx : idx + 1;
138
- }, root);
139
- const newRng = dom.createRng();
140
- if (!startSpot) {
141
- newRng.setStart(lastTextNode, 0);
142
- } else {
143
- newRng.setStart(startSpot.container, startSpot.offset);
144
- }
145
- newRng.setEnd(endSpot.container, endSpot.offset);
146
- const rngText = removeZwsp(newRng.toString());
147
- const matches = rngText.match(autoLinkPattern);
148
- if (matches) {
149
- let url = matches[0];
150
- if (startsWith(url, 'www.')) {
151
- const protocol = getDefaultLinkProtocol(editor);
152
- url = protocol + '://' + url;
153
- } else if (contains(url, '@') && !hasProtocol(url)) {
154
- url = 'mailto:' + url;
155
- }
156
- return {
157
- rng: newRng,
158
- url
159
- };
160
- } else {
161
- return null;
162
- }
163
- };
164
- const convertToLink = (editor, result) => {
165
- const {dom, selection} = editor;
166
- const {rng, url} = result;
167
- const bookmark = selection.getBookmark();
168
- selection.setRng(rng);
169
- const command = 'createlink';
170
- const args = {
171
- command,
172
- ui: false,
173
- value: url
174
- };
175
- const beforeExecEvent = editor.dispatch('BeforeExecCommand', args);
176
- if (!beforeExecEvent.isDefaultPrevented()) {
177
- editor.getDoc().execCommand(command, false, url);
178
- editor.dispatch('ExecCommand', args);
179
- const defaultLinkTarget = getDefaultLinkTarget(editor);
180
- if (isString(defaultLinkTarget)) {
181
- const anchor = selection.getNode();
182
- dom.setAttrib(anchor, 'target', defaultLinkTarget);
183
- if (defaultLinkTarget === '_blank' && !allowUnsafeLinkTarget(editor)) {
184
- dom.setAttrib(anchor, 'rel', 'noopener');
185
- }
186
- }
187
- }
188
- selection.moveToBookmark(bookmark);
189
- editor.nodeChanged();
190
- };
191
- const handleSpacebar = editor => {
192
- const result = parseCurrentLine(editor, -1);
193
- if (isNonNullable(result)) {
194
- convertToLink(editor, result);
195
- }
196
- };
197
- const handleBracket = handleSpacebar;
198
- const handleEnter = editor => {
199
- const result = parseCurrentLine(editor, 0);
200
- if (isNonNullable(result)) {
201
- convertToLink(editor, result);
202
- }
203
- };
204
- const setup = editor => {
205
- editor.on('keydown', e => {
206
- if (e.keyCode === 13 && !e.isDefaultPrevented()) {
207
- handleEnter(editor);
208
- }
209
- });
210
- editor.on('keyup', e => {
211
- if (e.keyCode === 32) {
212
- handleSpacebar(editor);
213
- } else if (e.keyCode === 48 && e.shiftKey || e.keyCode === 221) {
214
- handleBracket(editor);
215
- }
216
- });
217
- };
218
-
219
- var Plugin = () => {
220
- global$1.add('autolink', editor => {
221
- register(editor);
222
- setup(editor);
223
- });
224
- };
225
-
226
- Plugin();
227
-
228
- })();
@@ -1,5 +0,0 @@
1
- /**
2
- * TinyMCE version 6.8.6 (TBD)
3
- */
4
-
5
- !function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager");const t=e=>t=>t.options.get(e),n=t("autolink_pattern"),o=t("link_default_target"),r=t("link_default_protocol"),a=t("allow_unsafe_link_target"),s=("string",e=>"string"===(e=>{const t=typeof e;return null===e?"null":"object"===t&&Array.isArray(e)?"array":"object"===t&&(n=o=e,(r=String).prototype.isPrototypeOf(n)||(null===(a=o.constructor)||void 0===a?void 0:a.name)===r.name)?"string":t;var n,o,r,a})(e));const l=(void 0,e=>undefined===e);const i=e=>!(e=>null==e)(e),c=Object.hasOwnProperty,d=e=>"\ufeff"===e;var u=tinymce.util.Tools.resolve("tinymce.dom.TextSeeker");const f=e=>/^[(\[{ \u00a0]$/.test(e),g=(e,t,n)=>{for(let o=t-1;o>=0;o--){const t=e.charAt(o);if(!d(t)&&n(t))return o}return-1},m=(e,t)=>{var o;const a=e.schema.getVoidElements(),s=n(e),{dom:i,selection:d}=e;if(null!==i.getParent(d.getNode(),"a[href]"))return null;const m=d.getRng(),k=u(i,(e=>{return i.isBlock(e)||(t=a,n=e.nodeName.toLowerCase(),c.call(t,n))||"false"===i.getContentEditable(e);var t,n})),{container:p,offset:y}=((e,t)=>{let n=e,o=t;for(;1===n.nodeType&&n.childNodes[o];)n=n.childNodes[o],o=3===n.nodeType?n.data.length:n.childNodes.length;return{container:n,offset:o}})(m.endContainer,m.endOffset),w=null!==(o=i.getParent(p,i.isBlock))&&void 0!==o?o:i.getRoot(),h=k.backwards(p,y+t,((e,t)=>{const n=e.data,o=g(n,t,(r=f,e=>!r(e)));var r,a;return-1===o||(a=n[o],/[?!,.;:]/.test(a))?o:o+1}),w);if(!h)return null;let v=h.container;const _=k.backwards(h.container,h.offset,((e,t)=>{v=e;const n=g(e.data,t,f);return-1===n?n:n+1}),w),A=i.createRng();_?A.setStart(_.container,_.offset):A.setStart(v,0),A.setEnd(h.container,h.offset);const C=A.toString().replace(/\uFEFF/g,"").match(s);if(C){let t=C[0];return $="www.",(b=t).length>=4&&b.substr(0,4)===$?t=r(e)+"://"+t:((e,t,n=0,o)=>{const r=e.indexOf(t,n);return-1!==r&&(!!l(o)||r+t.length<=o)})(t,"@")&&!(e=>/^([A-Za-z][A-Za-z\d.+-]*:\/\/)|mailto:/.test(e))(t)&&(t="mailto:"+t),{rng:A,url:t}}var b,$;return null},k=(e,t)=>{const{dom:n,selection:r}=e,{rng:l,url:i}=t,c=r.getBookmark();r.setRng(l);const d="createlink",u={command:d,ui:!1,value:i};if(!e.dispatch("BeforeExecCommand",u).isDefaultPrevented()){e.getDoc().execCommand(d,!1,i),e.dispatch("ExecCommand",u);const t=o(e);if(s(t)){const o=r.getNode();n.setAttrib(o,"target",t),"_blank"!==t||a(e)||n.setAttrib(o,"rel","noopener")}}r.moveToBookmark(c),e.nodeChanged()},p=e=>{const t=m(e,-1);i(t)&&k(e,t)},y=p;e.add("autolink",(e=>{(e=>{const t=e.options.register;t("autolink_pattern",{processor:"regexp",default:new RegExp("^"+/(?:[A-Za-z][A-Za-z\d.+-]{0,14}:\/\/(?:[-.~*+=!&;:'%@?^${}(),\w]+@)?|www\.|[-;:&=+$,.\w]+@)[A-Za-z\d-]+(?:\.[A-Za-z\d-]+)*(?::\d+)?(?:\/(?:[-.~*+=!;:'%@$(),\/\w]*[-~*+=%@$()\/\w])?)?(?:\?(?:[-.~*+=!&;:'%@?^${}(),\/\w]+))?(?:#(?:[-.~*+=!&;:'%@?^${}(),\/\w]+))?/g.source+"$","i")}),t("link_default_target",{processor:"string"}),t("link_default_protocol",{processor:"string",default:"https"})})(e),(e=>{e.on("keydown",(t=>{13!==t.keyCode||t.isDefaultPrevented()||(e=>{const t=m(e,0);i(t)&&k(e,t)})(e)})),e.on("keyup",(t=>{32===t.keyCode?p(e):(48===t.keyCode&&t.shiftKey||221===t.keyCode)&&y(e)}))})(e)}))}();
@@ -1,7 +0,0 @@
1
- // Exports the "autoresize" plugin for usage with module loaders
2
- // Usage:
3
- // CommonJS:
4
- // require('tinymce/plugins/autoresize')
5
- // ES2015:
6
- // import 'tinymce/plugins/autoresize'
7
- require('./plugin.js');
@@ -1,192 +0,0 @@
1
- /**
2
- * TinyMCE version 6.8.6 (TBD)
3
- */
4
-
5
- (function () {
6
- 'use strict';
7
-
8
- const Cell = initial => {
9
- let value = initial;
10
- const get = () => {
11
- return value;
12
- };
13
- const set = v => {
14
- value = v;
15
- };
16
- return {
17
- get,
18
- set
19
- };
20
- };
21
-
22
- var global$1 = tinymce.util.Tools.resolve('tinymce.PluginManager');
23
-
24
- const constant = value => {
25
- return () => {
26
- return value;
27
- };
28
- };
29
-
30
- var global = tinymce.util.Tools.resolve('tinymce.Env');
31
-
32
- const fireResizeEditor = editor => editor.dispatch('ResizeEditor');
33
-
34
- const option = name => editor => editor.options.get(name);
35
- const register$1 = editor => {
36
- const registerOption = editor.options.register;
37
- registerOption('autoresize_overflow_padding', {
38
- processor: 'number',
39
- default: 1
40
- });
41
- registerOption('autoresize_bottom_margin', {
42
- processor: 'number',
43
- default: 50
44
- });
45
- };
46
- const getMinHeight = option('min_height');
47
- const getMaxHeight = option('max_height');
48
- const getAutoResizeOverflowPadding = option('autoresize_overflow_padding');
49
- const getAutoResizeBottomMargin = option('autoresize_bottom_margin');
50
-
51
- const isFullscreen = editor => editor.plugins.fullscreen && editor.plugins.fullscreen.isFullscreen();
52
- const toggleScrolling = (editor, state) => {
53
- const body = editor.getBody();
54
- if (body) {
55
- body.style.overflowY = state ? '' : 'hidden';
56
- if (!state) {
57
- body.scrollTop = 0;
58
- }
59
- }
60
- };
61
- const parseCssValueToInt = (dom, elm, name, computed) => {
62
- var _a;
63
- const value = parseInt((_a = dom.getStyle(elm, name, computed)) !== null && _a !== void 0 ? _a : '', 10);
64
- return isNaN(value) ? 0 : value;
65
- };
66
- const shouldScrollIntoView = trigger => {
67
- if ((trigger === null || trigger === void 0 ? void 0 : trigger.type.toLowerCase()) === 'setcontent') {
68
- const setContentEvent = trigger;
69
- return setContentEvent.selection === true || setContentEvent.paste === true;
70
- } else {
71
- return false;
72
- }
73
- };
74
- const resize = (editor, oldSize, trigger, getExtraMarginBottom) => {
75
- var _a;
76
- const dom = editor.dom;
77
- const doc = editor.getDoc();
78
- if (!doc) {
79
- return;
80
- }
81
- if (isFullscreen(editor)) {
82
- toggleScrolling(editor, true);
83
- return;
84
- }
85
- const docEle = doc.documentElement;
86
- const resizeBottomMargin = getExtraMarginBottom ? getExtraMarginBottom() : getAutoResizeOverflowPadding(editor);
87
- const minHeight = (_a = getMinHeight(editor)) !== null && _a !== void 0 ? _a : editor.getElement().offsetHeight;
88
- let resizeHeight = minHeight;
89
- const marginTop = parseCssValueToInt(dom, docEle, 'margin-top', true);
90
- const marginBottom = parseCssValueToInt(dom, docEle, 'margin-bottom', true);
91
- let contentHeight = docEle.offsetHeight + marginTop + marginBottom + resizeBottomMargin;
92
- if (contentHeight < 0) {
93
- contentHeight = 0;
94
- }
95
- const containerHeight = editor.getContainer().offsetHeight;
96
- const contentAreaHeight = editor.getContentAreaContainer().offsetHeight;
97
- const chromeHeight = containerHeight - contentAreaHeight;
98
- if (contentHeight + chromeHeight > minHeight) {
99
- resizeHeight = contentHeight + chromeHeight;
100
- }
101
- const maxHeight = getMaxHeight(editor);
102
- if (maxHeight && resizeHeight > maxHeight) {
103
- resizeHeight = maxHeight;
104
- toggleScrolling(editor, true);
105
- } else {
106
- toggleScrolling(editor, false);
107
- }
108
- if (resizeHeight !== oldSize.get()) {
109
- const deltaSize = resizeHeight - oldSize.get();
110
- dom.setStyle(editor.getContainer(), 'height', resizeHeight + 'px');
111
- oldSize.set(resizeHeight);
112
- fireResizeEditor(editor);
113
- if (global.browser.isSafari() && (global.os.isMacOS() || global.os.isiOS())) {
114
- const win = editor.getWin();
115
- win.scrollTo(win.pageXOffset, win.pageYOffset);
116
- }
117
- if (editor.hasFocus() && shouldScrollIntoView(trigger)) {
118
- editor.selection.scrollIntoView();
119
- }
120
- if ((global.browser.isSafari() || global.browser.isChromium()) && deltaSize < 0) {
121
- resize(editor, oldSize, trigger, getExtraMarginBottom);
122
- }
123
- }
124
- };
125
- const setup = (editor, oldSize) => {
126
- let getExtraMarginBottom = () => getAutoResizeBottomMargin(editor);
127
- let resizeCounter;
128
- let sizeAfterFirstResize;
129
- editor.on('init', e => {
130
- resizeCounter = 0;
131
- const overflowPadding = getAutoResizeOverflowPadding(editor);
132
- const dom = editor.dom;
133
- dom.setStyles(editor.getDoc().documentElement, { height: 'auto' });
134
- if (global.browser.isEdge() || global.browser.isIE()) {
135
- dom.setStyles(editor.getBody(), {
136
- 'paddingLeft': overflowPadding,
137
- 'paddingRight': overflowPadding,
138
- 'min-height': 0
139
- });
140
- } else {
141
- dom.setStyles(editor.getBody(), {
142
- paddingLeft: overflowPadding,
143
- paddingRight: overflowPadding
144
- });
145
- }
146
- resize(editor, oldSize, e, getExtraMarginBottom);
147
- resizeCounter += 1;
148
- });
149
- editor.on('NodeChange SetContent keyup FullscreenStateChanged ResizeContent', e => {
150
- if (resizeCounter === 1) {
151
- sizeAfterFirstResize = editor.getContainer().offsetHeight;
152
- resize(editor, oldSize, e, getExtraMarginBottom);
153
- resizeCounter += 1;
154
- } else if (resizeCounter === 2) {
155
- const isLooping = sizeAfterFirstResize < editor.getContainer().offsetHeight;
156
- if (isLooping) {
157
- const dom = editor.dom;
158
- const doc = editor.getDoc();
159
- dom.setStyles(doc.documentElement, { 'min-height': 0 });
160
- dom.setStyles(editor.getBody(), { 'min-height': 'inherit' });
161
- }
162
- getExtraMarginBottom = isLooping ? constant(0) : getExtraMarginBottom;
163
- resizeCounter += 1;
164
- } else {
165
- resize(editor, oldSize, e, getExtraMarginBottom);
166
- }
167
- });
168
- };
169
-
170
- const register = (editor, oldSize) => {
171
- editor.addCommand('mceAutoResize', () => {
172
- resize(editor, oldSize);
173
- });
174
- };
175
-
176
- var Plugin = () => {
177
- global$1.add('autoresize', editor => {
178
- register$1(editor);
179
- if (!editor.options.isSet('resize')) {
180
- editor.options.set('resize', false);
181
- }
182
- if (!editor.inline) {
183
- const oldSize = Cell(0);
184
- register(editor, oldSize);
185
- setup(editor, oldSize);
186
- }
187
- });
188
- };
189
-
190
- Plugin();
191
-
192
- })();
@@ -1,5 +0,0 @@
1
- /**
2
- * TinyMCE version 6.8.6 (TBD)
3
- */
4
-
5
- !function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager"),t=tinymce.util.Tools.resolve("tinymce.Env");const o=e=>t=>t.options.get(e),s=o("min_height"),i=o("max_height"),n=o("autoresize_overflow_padding"),r=o("autoresize_bottom_margin"),l=(e,t)=>{const o=e.getBody();o&&(o.style.overflowY=t?"":"hidden",t||(o.scrollTop=0))},g=(e,t,o,s)=>{var i;const n=parseInt(null!==(i=e.getStyle(t,o,s))&&void 0!==i?i:"",10);return isNaN(n)?0:n},a=(e,o,r,c)=>{var d;const f=e.dom,u=e.getDoc();if(!u)return;if((e=>e.plugins.fullscreen&&e.plugins.fullscreen.isFullscreen())(e))return void l(e,!0);const m=u.documentElement,h=c?c():n(e),p=null!==(d=s(e))&&void 0!==d?d:e.getElement().offsetHeight;let y=p;const S=g(f,m,"margin-top",!0),v=g(f,m,"margin-bottom",!0);let C=m.offsetHeight+S+v+h;C<0&&(C=0);const b=e.getContainer().offsetHeight-e.getContentAreaContainer().offsetHeight;C+b>p&&(y=C+b);const w=i(e);if(w&&y>w?(y=w,l(e,!0)):l(e,!1),y!==o.get()){const s=y-o.get();if(f.setStyle(e.getContainer(),"height",y+"px"),o.set(y),(e=>{e.dispatch("ResizeEditor")})(e),t.browser.isSafari()&&(t.os.isMacOS()||t.os.isiOS())){const t=e.getWin();t.scrollTo(t.pageXOffset,t.pageYOffset)}e.hasFocus()&&(e=>{if("setcontent"===(null==e?void 0:e.type.toLowerCase())){const t=e;return!0===t.selection||!0===t.paste}return!1})(r)&&e.selection.scrollIntoView(),(t.browser.isSafari()||t.browser.isChromium())&&s<0&&a(e,o,r,c)}};e.add("autoresize",(e=>{if((e=>{const t=e.options.register;t("autoresize_overflow_padding",{processor:"number",default:1}),t("autoresize_bottom_margin",{processor:"number",default:50})})(e),e.options.isSet("resize")||e.options.set("resize",!1),!e.inline){const o=(e=>{let t=0;return{get:()=>t,set:e=>{t=e}}})();((e,t)=>{e.addCommand("mceAutoResize",(()=>{a(e,t)}))})(e,o),((e,o)=>{let s,i,l=()=>r(e);e.on("init",(i=>{s=0;const r=n(e),g=e.dom;g.setStyles(e.getDoc().documentElement,{height:"auto"}),t.browser.isEdge()||t.browser.isIE()?g.setStyles(e.getBody(),{paddingLeft:r,paddingRight:r,"min-height":0}):g.setStyles(e.getBody(),{paddingLeft:r,paddingRight:r}),a(e,o,i,l),s+=1})),e.on("NodeChange SetContent keyup FullscreenStateChanged ResizeContent",(t=>{if(1===s)i=e.getContainer().offsetHeight,a(e,o,t,l),s+=1;else if(2===s){const t=i<e.getContainer().offsetHeight;if(t){const t=e.dom,o=e.getDoc();t.setStyles(o.documentElement,{"min-height":0}),t.setStyles(e.getBody(),{"min-height":"inherit"})}l=t?(0,()=>0):l,s+=1}else a(e,o,t,l)}))})(e,o)}}))}();
@@ -1,7 +0,0 @@
1
- // Exports the "autosave" plugin for usage with module loaders
2
- // Usage:
3
- // CommonJS:
4
- // require('tinymce/plugins/autosave')
5
- // ES2015:
6
- // import 'tinymce/plugins/autosave'
7
- require('./plugin.js');
@@ -1,233 +0,0 @@
1
- /**
2
- * TinyMCE version 6.8.6 (TBD)
3
- */
4
-
5
- (function () {
6
- 'use strict';
7
-
8
- var global$4 = tinymce.util.Tools.resolve('tinymce.PluginManager');
9
-
10
- const hasProto = (v, constructor, predicate) => {
11
- var _a;
12
- if (predicate(v, constructor.prototype)) {
13
- return true;
14
- } else {
15
- return ((_a = v.constructor) === null || _a === void 0 ? void 0 : _a.name) === constructor.name;
16
- }
17
- };
18
- const typeOf = x => {
19
- const t = typeof x;
20
- if (x === null) {
21
- return 'null';
22
- } else if (t === 'object' && Array.isArray(x)) {
23
- return 'array';
24
- } else if (t === 'object' && hasProto(x, String, (o, proto) => proto.isPrototypeOf(o))) {
25
- return 'string';
26
- } else {
27
- return t;
28
- }
29
- };
30
- const isType = type => value => typeOf(value) === type;
31
- const eq = t => a => t === a;
32
- const isString = isType('string');
33
- const isUndefined = eq(undefined);
34
-
35
- var global$3 = tinymce.util.Tools.resolve('tinymce.util.Delay');
36
-
37
- var global$2 = tinymce.util.Tools.resolve('tinymce.util.LocalStorage');
38
-
39
- var global$1 = tinymce.util.Tools.resolve('tinymce.util.Tools');
40
-
41
- const fireRestoreDraft = editor => editor.dispatch('RestoreDraft');
42
- const fireStoreDraft = editor => editor.dispatch('StoreDraft');
43
- const fireRemoveDraft = editor => editor.dispatch('RemoveDraft');
44
-
45
- const parse = timeString => {
46
- const multiples = {
47
- s: 1000,
48
- m: 60000
49
- };
50
- const parsedTime = /^(\d+)([ms]?)$/.exec(timeString);
51
- return (parsedTime && parsedTime[2] ? multiples[parsedTime[2]] : 1) * parseInt(timeString, 10);
52
- };
53
-
54
- const option = name => editor => editor.options.get(name);
55
- const register$1 = editor => {
56
- const registerOption = editor.options.register;
57
- const timeProcessor = value => {
58
- const valid = isString(value);
59
- if (valid) {
60
- return {
61
- value: parse(value),
62
- valid
63
- };
64
- } else {
65
- return {
66
- valid: false,
67
- message: 'Must be a string.'
68
- };
69
- }
70
- };
71
- registerOption('autosave_ask_before_unload', {
72
- processor: 'boolean',
73
- default: true
74
- });
75
- registerOption('autosave_prefix', {
76
- processor: 'string',
77
- default: 'tinymce-autosave-{path}{query}{hash}-{id}-'
78
- });
79
- registerOption('autosave_restore_when_empty', {
80
- processor: 'boolean',
81
- default: false
82
- });
83
- registerOption('autosave_interval', {
84
- processor: timeProcessor,
85
- default: '30s'
86
- });
87
- registerOption('autosave_retention', {
88
- processor: timeProcessor,
89
- default: '20m'
90
- });
91
- };
92
- const shouldAskBeforeUnload = option('autosave_ask_before_unload');
93
- const shouldRestoreWhenEmpty = option('autosave_restore_when_empty');
94
- const getAutoSaveInterval = option('autosave_interval');
95
- const getAutoSaveRetention = option('autosave_retention');
96
- const getAutoSavePrefix = editor => {
97
- const location = document.location;
98
- return editor.options.get('autosave_prefix').replace(/{path}/g, location.pathname).replace(/{query}/g, location.search).replace(/{hash}/g, location.hash).replace(/{id}/g, editor.id);
99
- };
100
-
101
- const isEmpty = (editor, html) => {
102
- if (isUndefined(html)) {
103
- return editor.dom.isEmpty(editor.getBody());
104
- } else {
105
- const trimmedHtml = global$1.trim(html);
106
- if (trimmedHtml === '') {
107
- return true;
108
- } else {
109
- const fragment = new DOMParser().parseFromString(trimmedHtml, 'text/html');
110
- return editor.dom.isEmpty(fragment);
111
- }
112
- }
113
- };
114
- const hasDraft = editor => {
115
- var _a;
116
- const time = parseInt((_a = global$2.getItem(getAutoSavePrefix(editor) + 'time')) !== null && _a !== void 0 ? _a : '0', 10) || 0;
117
- if (new Date().getTime() - time > getAutoSaveRetention(editor)) {
118
- removeDraft(editor, false);
119
- return false;
120
- }
121
- return true;
122
- };
123
- const removeDraft = (editor, fire) => {
124
- const prefix = getAutoSavePrefix(editor);
125
- global$2.removeItem(prefix + 'draft');
126
- global$2.removeItem(prefix + 'time');
127
- if (fire !== false) {
128
- fireRemoveDraft(editor);
129
- }
130
- };
131
- const storeDraft = editor => {
132
- const prefix = getAutoSavePrefix(editor);
133
- if (!isEmpty(editor) && editor.isDirty()) {
134
- global$2.setItem(prefix + 'draft', editor.getContent({
135
- format: 'raw',
136
- no_events: true
137
- }));
138
- global$2.setItem(prefix + 'time', new Date().getTime().toString());
139
- fireStoreDraft(editor);
140
- }
141
- };
142
- const restoreDraft = editor => {
143
- var _a;
144
- const prefix = getAutoSavePrefix(editor);
145
- if (hasDraft(editor)) {
146
- editor.setContent((_a = global$2.getItem(prefix + 'draft')) !== null && _a !== void 0 ? _a : '', { format: 'raw' });
147
- fireRestoreDraft(editor);
148
- }
149
- };
150
- const startStoreDraft = editor => {
151
- const interval = getAutoSaveInterval(editor);
152
- global$3.setEditorInterval(editor, () => {
153
- storeDraft(editor);
154
- }, interval);
155
- };
156
- const restoreLastDraft = editor => {
157
- editor.undoManager.transact(() => {
158
- restoreDraft(editor);
159
- removeDraft(editor);
160
- });
161
- editor.focus();
162
- };
163
-
164
- const get = editor => ({
165
- hasDraft: () => hasDraft(editor),
166
- storeDraft: () => storeDraft(editor),
167
- restoreDraft: () => restoreDraft(editor),
168
- removeDraft: fire => removeDraft(editor, fire),
169
- isEmpty: html => isEmpty(editor, html)
170
- });
171
-
172
- var global = tinymce.util.Tools.resolve('tinymce.EditorManager');
173
-
174
- const setup = editor => {
175
- editor.editorManager.on('BeforeUnload', e => {
176
- let msg;
177
- global$1.each(global.get(), editor => {
178
- if (editor.plugins.autosave) {
179
- editor.plugins.autosave.storeDraft();
180
- }
181
- if (!msg && editor.isDirty() && shouldAskBeforeUnload(editor)) {
182
- msg = editor.translate('You have unsaved changes are you sure you want to navigate away?');
183
- }
184
- });
185
- if (msg) {
186
- e.preventDefault();
187
- e.returnValue = msg;
188
- }
189
- });
190
- };
191
-
192
- const makeSetupHandler = editor => api => {
193
- api.setEnabled(hasDraft(editor));
194
- const editorEventCallback = () => api.setEnabled(hasDraft(editor));
195
- editor.on('StoreDraft RestoreDraft RemoveDraft', editorEventCallback);
196
- return () => editor.off('StoreDraft RestoreDraft RemoveDraft', editorEventCallback);
197
- };
198
- const register = editor => {
199
- startStoreDraft(editor);
200
- const onAction = () => {
201
- restoreLastDraft(editor);
202
- };
203
- editor.ui.registry.addButton('restoredraft', {
204
- tooltip: 'Restore last draft',
205
- icon: 'restore-draft',
206
- onAction,
207
- onSetup: makeSetupHandler(editor)
208
- });
209
- editor.ui.registry.addMenuItem('restoredraft', {
210
- text: 'Restore last draft',
211
- icon: 'restore-draft',
212
- onAction,
213
- onSetup: makeSetupHandler(editor)
214
- });
215
- };
216
-
217
- var Plugin = () => {
218
- global$4.add('autosave', editor => {
219
- register$1(editor);
220
- setup(editor);
221
- register(editor);
222
- editor.on('init', () => {
223
- if (shouldRestoreWhenEmpty(editor) && editor.dom.isEmpty(editor.getBody())) {
224
- restoreDraft(editor);
225
- }
226
- });
227
- return get(editor);
228
- });
229
- };
230
-
231
- Plugin();
232
-
233
- })();