pds-dev-kit-web-test 2.5.624 → 2.5.626

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 (252) hide show
  1. package/dist/scripts/copy-tinymce.d.ts +1 -0
  2. package/dist/scripts/copy-tinymce.js +32 -0
  3. package/dist/src/common/services/i18n/resources/en.json +13 -13
  4. package/dist/src/common/styles/theme.d.ts +1 -0
  5. package/dist/src/common/styles/theme.js +1 -1
  6. package/dist/src/desktop/components/Calendar/Calendar.js +51 -46
  7. package/dist/src/desktop/components/Calendar/CalendarContext.d.ts +1 -3
  8. package/dist/src/desktop/components/Calendar/CalendarContext.js +1 -2
  9. package/dist/src/desktop/components/Calendar/DailyView.d.ts +2 -8
  10. package/dist/src/desktop/components/Calendar/DailyView.js +5 -86
  11. package/dist/src/desktop/components/Calendar/MonthlyView.d.ts +1 -2
  12. package/dist/src/desktop/components/Calendar/MonthlyView.js +6 -81
  13. package/dist/src/desktop/components/Calendar/WeeklyView.d.ts +0 -3
  14. package/dist/src/desktop/components/Calendar/WeeklyView.js +6 -96
  15. package/dist/src/desktop/components/Calendar/calendarUtils.js +10 -20
  16. package/dist/src/desktop/components/Calendar/types.d.ts +4 -8
  17. package/dist/src/desktop/components/RichTextEditor/RichTextEditor.d.ts +34 -0
  18. package/dist/src/desktop/components/RichTextEditor/RichTextEditor.js +268 -0
  19. package/dist/src/desktop/components/RichTextEditor/index.d.ts +2 -0
  20. package/dist/src/desktop/components/RichTextEditor/index.js +8 -0
  21. package/dist/src/desktop/components/index.d.ts +2 -1
  22. package/dist/src/desktop/components/index.js +4 -2
  23. package/dist/src/desktop/index.d.ts +1 -1
  24. package/dist/src/desktop/index.js +3 -2
  25. package/dist/src/mobile/components/RichTextEditor/RichTextEditor.d.ts +34 -0
  26. package/dist/src/mobile/components/RichTextEditor/RichTextEditor.js +272 -0
  27. package/dist/src/mobile/components/RichTextEditor/index.d.ts +2 -0
  28. package/dist/src/mobile/components/RichTextEditor/index.js +8 -0
  29. package/dist/src/mobile/components/index.d.ts +2 -1
  30. package/dist/src/mobile/components/index.js +3 -1
  31. package/dist/src/mobile/index.d.ts +1 -1
  32. package/dist/src/mobile/index.js +2 -1
  33. package/dist/tinymce/CHANGELOG.md +3453 -0
  34. package/dist/tinymce/README.md +73 -0
  35. package/dist/tinymce/bower.json +27 -0
  36. package/dist/tinymce/composer.json +52 -0
  37. package/dist/tinymce/icons/default/icons.js +194 -0
  38. package/dist/tinymce/icons/default/icons.min.js +1 -0
  39. package/dist/tinymce/icons/default/index.js +7 -0
  40. package/dist/tinymce/license.txt +21 -0
  41. package/dist/tinymce/models/dom/index.js +7 -0
  42. package/dist/tinymce/models/dom/model.js +8040 -0
  43. package/dist/tinymce/models/dom/model.min.js +1 -0
  44. package/dist/tinymce/notices.txt +21 -0
  45. package/dist/tinymce/package.json +32 -0
  46. package/dist/tinymce/plugins/accordion/index.js +7 -0
  47. package/dist/tinymce/plugins/accordion/plugin.js +1054 -0
  48. package/dist/tinymce/plugins/accordion/plugin.min.js +5 -0
  49. package/dist/tinymce/plugins/advlist/index.js +7 -0
  50. package/dist/tinymce/plugins/advlist/plugin.js +259 -0
  51. package/dist/tinymce/plugins/advlist/plugin.min.js +5 -0
  52. package/dist/tinymce/plugins/anchor/index.js +7 -0
  53. package/dist/tinymce/plugins/anchor/plugin.js +214 -0
  54. package/dist/tinymce/plugins/anchor/plugin.min.js +5 -0
  55. package/dist/tinymce/plugins/autolink/index.js +7 -0
  56. package/dist/tinymce/plugins/autolink/plugin.js +228 -0
  57. package/dist/tinymce/plugins/autolink/plugin.min.js +5 -0
  58. package/dist/tinymce/plugins/autoresize/index.js +7 -0
  59. package/dist/tinymce/plugins/autoresize/plugin.js +192 -0
  60. package/dist/tinymce/plugins/autoresize/plugin.min.js +5 -0
  61. package/dist/tinymce/plugins/autosave/index.js +7 -0
  62. package/dist/tinymce/plugins/autosave/plugin.js +233 -0
  63. package/dist/tinymce/plugins/autosave/plugin.min.js +5 -0
  64. package/dist/tinymce/plugins/charmap/index.js +7 -0
  65. package/dist/tinymce/plugins/charmap/plugin.js +1658 -0
  66. package/dist/tinymce/plugins/charmap/plugin.min.js +5 -0
  67. package/dist/tinymce/plugins/code/index.js +7 -0
  68. package/dist/tinymce/plugins/code/plugin.js +85 -0
  69. package/dist/tinymce/plugins/code/plugin.min.js +5 -0
  70. package/dist/tinymce/plugins/codesample/index.js +7 -0
  71. package/dist/tinymce/plugins/codesample/plugin.js +2471 -0
  72. package/dist/tinymce/plugins/codesample/plugin.min.js +13 -0
  73. package/dist/tinymce/plugins/directionality/index.js +7 -0
  74. package/dist/tinymce/plugins/directionality/plugin.js +395 -0
  75. package/dist/tinymce/plugins/directionality/plugin.min.js +5 -0
  76. package/dist/tinymce/plugins/emoticons/index.js +7 -0
  77. package/dist/tinymce/plugins/emoticons/js/emojiimages.js +1 -0
  78. package/dist/tinymce/plugins/emoticons/js/emojiimages.min.js +1 -0
  79. package/dist/tinymce/plugins/emoticons/js/emojis.js +1 -0
  80. package/dist/tinymce/plugins/emoticons/js/emojis.min.js +1 -0
  81. package/dist/tinymce/plugins/emoticons/plugin.js +595 -0
  82. package/dist/tinymce/plugins/emoticons/plugin.min.js +5 -0
  83. package/dist/tinymce/plugins/fullscreen/index.js +7 -0
  84. package/dist/tinymce/plugins/fullscreen/plugin.js +1249 -0
  85. package/dist/tinymce/plugins/fullscreen/plugin.min.js +5 -0
  86. package/dist/tinymce/plugins/help/index.js +7 -0
  87. package/dist/tinymce/plugins/help/js/i18n/keynav/ar.js +90 -0
  88. package/dist/tinymce/plugins/help/js/i18n/keynav/bg_BG.js +90 -0
  89. package/dist/tinymce/plugins/help/js/i18n/keynav/ca.js +90 -0
  90. package/dist/tinymce/plugins/help/js/i18n/keynav/cs.js +90 -0
  91. package/dist/tinymce/plugins/help/js/i18n/keynav/da.js +90 -0
  92. package/dist/tinymce/plugins/help/js/i18n/keynav/de.js +90 -0
  93. package/dist/tinymce/plugins/help/js/i18n/keynav/el.js +90 -0
  94. package/dist/tinymce/plugins/help/js/i18n/keynav/en.js +90 -0
  95. package/dist/tinymce/plugins/help/js/i18n/keynav/es.js +90 -0
  96. package/dist/tinymce/plugins/help/js/i18n/keynav/eu.js +90 -0
  97. package/dist/tinymce/plugins/help/js/i18n/keynav/fa.js +90 -0
  98. package/dist/tinymce/plugins/help/js/i18n/keynav/fi.js +90 -0
  99. package/dist/tinymce/plugins/help/js/i18n/keynav/fr_FR.js +90 -0
  100. package/dist/tinymce/plugins/help/js/i18n/keynav/he_IL.js +90 -0
  101. package/dist/tinymce/plugins/help/js/i18n/keynav/hi.js +90 -0
  102. package/dist/tinymce/plugins/help/js/i18n/keynav/hr.js +90 -0
  103. package/dist/tinymce/plugins/help/js/i18n/keynav/hu_HU.js +90 -0
  104. package/dist/tinymce/plugins/help/js/i18n/keynav/id.js +90 -0
  105. package/dist/tinymce/plugins/help/js/i18n/keynav/it.js +90 -0
  106. package/dist/tinymce/plugins/help/js/i18n/keynav/ja.js +90 -0
  107. package/dist/tinymce/plugins/help/js/i18n/keynav/kk.js +90 -0
  108. package/dist/tinymce/plugins/help/js/i18n/keynav/ko_KR.js +90 -0
  109. package/dist/tinymce/plugins/help/js/i18n/keynav/ms.js +90 -0
  110. package/dist/tinymce/plugins/help/js/i18n/keynav/nb_NO.js +90 -0
  111. package/dist/tinymce/plugins/help/js/i18n/keynav/nl.js +90 -0
  112. package/dist/tinymce/plugins/help/js/i18n/keynav/pl.js +90 -0
  113. package/dist/tinymce/plugins/help/js/i18n/keynav/pt_BR.js +90 -0
  114. package/dist/tinymce/plugins/help/js/i18n/keynav/pt_PT.js +90 -0
  115. package/dist/tinymce/plugins/help/js/i18n/keynav/ro.js +90 -0
  116. package/dist/tinymce/plugins/help/js/i18n/keynav/ru.js +90 -0
  117. package/dist/tinymce/plugins/help/js/i18n/keynav/sk.js +90 -0
  118. package/dist/tinymce/plugins/help/js/i18n/keynav/sl_SI.js +90 -0
  119. package/dist/tinymce/plugins/help/js/i18n/keynav/sv_SE.js +90 -0
  120. package/dist/tinymce/plugins/help/js/i18n/keynav/th_TH.js +90 -0
  121. package/dist/tinymce/plugins/help/js/i18n/keynav/tr.js +90 -0
  122. package/dist/tinymce/plugins/help/js/i18n/keynav/uk.js +90 -0
  123. package/dist/tinymce/plugins/help/js/i18n/keynav/vi.js +90 -0
  124. package/dist/tinymce/plugins/help/js/i18n/keynav/zh_CN.js +84 -0
  125. package/dist/tinymce/plugins/help/js/i18n/keynav/zh_TW.js +90 -0
  126. package/dist/tinymce/plugins/help/plugin.js +898 -0
  127. package/dist/tinymce/plugins/help/plugin.min.js +5 -0
  128. package/dist/tinymce/plugins/image/index.js +7 -0
  129. package/dist/tinymce/plugins/image/plugin.js +1505 -0
  130. package/dist/tinymce/plugins/image/plugin.min.js +5 -0
  131. package/dist/tinymce/plugins/importcss/index.js +7 -0
  132. package/dist/tinymce/plugins/importcss/plugin.js +344 -0
  133. package/dist/tinymce/plugins/importcss/plugin.min.js +5 -0
  134. package/dist/tinymce/plugins/insertdatetime/index.js +7 -0
  135. package/dist/tinymce/plugins/insertdatetime/plugin.js +187 -0
  136. package/dist/tinymce/plugins/insertdatetime/plugin.min.js +5 -0
  137. package/dist/tinymce/plugins/link/index.js +7 -0
  138. package/dist/tinymce/plugins/link/plugin.js +1242 -0
  139. package/dist/tinymce/plugins/link/plugin.min.js +5 -0
  140. package/dist/tinymce/plugins/lists/index.js +7 -0
  141. package/dist/tinymce/plugins/lists/plugin.js +2172 -0
  142. package/dist/tinymce/plugins/lists/plugin.min.js +5 -0
  143. package/dist/tinymce/plugins/media/index.js +7 -0
  144. package/dist/tinymce/plugins/media/plugin.js +1217 -0
  145. package/dist/tinymce/plugins/media/plugin.min.js +5 -0
  146. package/dist/tinymce/plugins/nonbreaking/index.js +7 -0
  147. package/dist/tinymce/plugins/nonbreaking/plugin.js +123 -0
  148. package/dist/tinymce/plugins/nonbreaking/plugin.min.js +5 -0
  149. package/dist/tinymce/plugins/pagebreak/index.js +7 -0
  150. package/dist/tinymce/plugins/pagebreak/plugin.js +117 -0
  151. package/dist/tinymce/plugins/pagebreak/plugin.min.js +5 -0
  152. package/dist/tinymce/plugins/preview/index.js +7 -0
  153. package/dist/tinymce/plugins/preview/plugin.js +97 -0
  154. package/dist/tinymce/plugins/preview/plugin.min.js +5 -0
  155. package/dist/tinymce/plugins/quickbars/index.js +7 -0
  156. package/dist/tinymce/plugins/quickbars/plugin.js +447 -0
  157. package/dist/tinymce/plugins/quickbars/plugin.min.js +5 -0
  158. package/dist/tinymce/plugins/save/index.js +7 -0
  159. package/dist/tinymce/plugins/save/plugin.js +118 -0
  160. package/dist/tinymce/plugins/save/plugin.min.js +5 -0
  161. package/dist/tinymce/plugins/searchreplace/index.js +7 -0
  162. package/dist/tinymce/plugins/searchreplace/plugin.js +1093 -0
  163. package/dist/tinymce/plugins/searchreplace/plugin.min.js +5 -0
  164. package/dist/tinymce/plugins/table/index.js +7 -0
  165. package/dist/tinymce/plugins/table/plugin.js +3462 -0
  166. package/dist/tinymce/plugins/table/plugin.min.js +5 -0
  167. package/dist/tinymce/plugins/template/index.js +7 -0
  168. package/dist/tinymce/plugins/template/plugin.js +567 -0
  169. package/dist/tinymce/plugins/template/plugin.min.js +5 -0
  170. package/dist/tinymce/plugins/visualblocks/index.js +7 -0
  171. package/dist/tinymce/plugins/visualblocks/plugin.js +98 -0
  172. package/dist/tinymce/plugins/visualblocks/plugin.min.js +5 -0
  173. package/dist/tinymce/plugins/visualchars/index.js +7 -0
  174. package/dist/tinymce/plugins/visualchars/plugin.js +560 -0
  175. package/dist/tinymce/plugins/visualchars/plugin.min.js +5 -0
  176. package/dist/tinymce/plugins/wordcount/index.js +7 -0
  177. package/dist/tinymce/plugins/wordcount/plugin.js +405 -0
  178. package/dist/tinymce/plugins/wordcount/plugin.min.js +5 -0
  179. package/dist/tinymce/skins/content/dark/content.css +79 -0
  180. package/dist/tinymce/skins/content/dark/content.js +15 -0
  181. package/dist/tinymce/skins/content/dark/content.min.css +14 -0
  182. package/dist/tinymce/skins/content/default/content.css +74 -0
  183. package/dist/tinymce/skins/content/default/content.js +15 -0
  184. package/dist/tinymce/skins/content/default/content.min.css +14 -0
  185. package/dist/tinymce/skins/content/document/content.css +79 -0
  186. package/dist/tinymce/skins/content/document/content.js +15 -0
  187. package/dist/tinymce/skins/content/document/content.min.css +14 -0
  188. package/dist/tinymce/skins/content/tinymce-5/content.css +74 -0
  189. package/dist/tinymce/skins/content/tinymce-5/content.js +15 -0
  190. package/dist/tinymce/skins/content/tinymce-5/content.min.css +14 -0
  191. package/dist/tinymce/skins/content/tinymce-5-dark/content.css +79 -0
  192. package/dist/tinymce/skins/content/tinymce-5-dark/content.js +15 -0
  193. package/dist/tinymce/skins/content/tinymce-5-dark/content.min.css +14 -0
  194. package/dist/tinymce/skins/content/writer/content.css +75 -0
  195. package/dist/tinymce/skins/content/writer/content.js +15 -0
  196. package/dist/tinymce/skins/content/writer/content.min.css +14 -0
  197. package/dist/tinymce/skins/ui/oxide/content.css +798 -0
  198. package/dist/tinymce/skins/ui/oxide/content.inline.css +792 -0
  199. package/dist/tinymce/skins/ui/oxide/content.inline.js +15 -0
  200. package/dist/tinymce/skins/ui/oxide/content.inline.min.css +14 -0
  201. package/dist/tinymce/skins/ui/oxide/content.js +15 -0
  202. package/dist/tinymce/skins/ui/oxide/content.min.css +14 -0
  203. package/dist/tinymce/skins/ui/oxide/skin.css +3763 -0
  204. package/dist/tinymce/skins/ui/oxide/skin.js +2 -0
  205. package/dist/tinymce/skins/ui/oxide/skin.min.css +1 -0
  206. package/dist/tinymce/skins/ui/oxide/skin.shadowdom.css +30 -0
  207. package/dist/tinymce/skins/ui/oxide/skin.shadowdom.js +2 -0
  208. package/dist/tinymce/skins/ui/oxide/skin.shadowdom.min.css +1 -0
  209. package/dist/tinymce/skins/ui/oxide-dark/content.css +779 -0
  210. package/dist/tinymce/skins/ui/oxide-dark/content.inline.css +792 -0
  211. package/dist/tinymce/skins/ui/oxide-dark/content.inline.js +15 -0
  212. package/dist/tinymce/skins/ui/oxide-dark/content.inline.min.css +14 -0
  213. package/dist/tinymce/skins/ui/oxide-dark/content.js +15 -0
  214. package/dist/tinymce/skins/ui/oxide-dark/content.min.css +14 -0
  215. package/dist/tinymce/skins/ui/oxide-dark/skin.css +3766 -0
  216. package/dist/tinymce/skins/ui/oxide-dark/skin.js +2 -0
  217. package/dist/tinymce/skins/ui/oxide-dark/skin.min.css +1 -0
  218. package/dist/tinymce/skins/ui/oxide-dark/skin.shadowdom.css +30 -0
  219. package/dist/tinymce/skins/ui/oxide-dark/skin.shadowdom.js +2 -0
  220. package/dist/tinymce/skins/ui/oxide-dark/skin.shadowdom.min.css +1 -0
  221. package/dist/tinymce/skins/ui/tinymce-5/content.css +798 -0
  222. package/dist/tinymce/skins/ui/tinymce-5/content.inline.css +792 -0
  223. package/dist/tinymce/skins/ui/tinymce-5/content.inline.js +15 -0
  224. package/dist/tinymce/skins/ui/tinymce-5/content.inline.min.css +14 -0
  225. package/dist/tinymce/skins/ui/tinymce-5/content.js +15 -0
  226. package/dist/tinymce/skins/ui/tinymce-5/content.min.css +14 -0
  227. package/dist/tinymce/skins/ui/tinymce-5/skin.css +3857 -0
  228. package/dist/tinymce/skins/ui/tinymce-5/skin.js +2 -0
  229. package/dist/tinymce/skins/ui/tinymce-5/skin.min.css +1 -0
  230. package/dist/tinymce/skins/ui/tinymce-5/skin.shadowdom.css +30 -0
  231. package/dist/tinymce/skins/ui/tinymce-5/skin.shadowdom.js +2 -0
  232. package/dist/tinymce/skins/ui/tinymce-5/skin.shadowdom.min.css +1 -0
  233. package/dist/tinymce/skins/ui/tinymce-5-dark/content.css +779 -0
  234. package/dist/tinymce/skins/ui/tinymce-5-dark/content.inline.css +792 -0
  235. package/dist/tinymce/skins/ui/tinymce-5-dark/content.inline.js +15 -0
  236. package/dist/tinymce/skins/ui/tinymce-5-dark/content.inline.min.css +14 -0
  237. package/dist/tinymce/skins/ui/tinymce-5-dark/content.js +15 -0
  238. package/dist/tinymce/skins/ui/tinymce-5-dark/content.min.css +14 -0
  239. package/dist/tinymce/skins/ui/tinymce-5-dark/skin.css +3857 -0
  240. package/dist/tinymce/skins/ui/tinymce-5-dark/skin.js +2 -0
  241. package/dist/tinymce/skins/ui/tinymce-5-dark/skin.min.css +1 -0
  242. package/dist/tinymce/skins/ui/tinymce-5-dark/skin.shadowdom.css +30 -0
  243. package/dist/tinymce/skins/ui/tinymce-5-dark/skin.shadowdom.js +2 -0
  244. package/dist/tinymce/skins/ui/tinymce-5-dark/skin.shadowdom.min.css +1 -0
  245. package/dist/tinymce/themes/silver/index.js +7 -0
  246. package/dist/tinymce/themes/silver/theme.js +30775 -0
  247. package/dist/tinymce/themes/silver/theme.min.js +1 -0
  248. package/dist/tinymce/tinymce.d.ts +3238 -0
  249. package/dist/tinymce/tinymce.js +31779 -0
  250. package/dist/tinymce/tinymce.min.js +11 -0
  251. package/package.json +7 -2
  252. package/scripts/copy-tinymce.js +37 -0
@@ -0,0 +1,447 @@
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 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 isSimpleType = type => value => typeof value === type;
32
+ const isString = isType('string');
33
+ const isBoolean = isSimpleType('boolean');
34
+ const isNullable = a => a === null || a === undefined;
35
+ const isNonNullable = a => !isNullable(a);
36
+ const isFunction = isSimpleType('function');
37
+
38
+ const option = name => editor => editor.options.get(name);
39
+ const register = editor => {
40
+ const registerOption = editor.options.register;
41
+ const toolbarProcessor = defaultValue => value => {
42
+ const valid = isBoolean(value) || isString(value);
43
+ if (valid) {
44
+ if (isBoolean(value)) {
45
+ return {
46
+ value: value ? defaultValue : '',
47
+ valid
48
+ };
49
+ } else {
50
+ return {
51
+ value: value.trim(),
52
+ valid
53
+ };
54
+ }
55
+ } else {
56
+ return {
57
+ valid: false,
58
+ message: 'Must be a boolean or string.'
59
+ };
60
+ }
61
+ };
62
+ const defaultSelectionToolbar = 'bold italic | quicklink h2 h3 blockquote';
63
+ registerOption('quickbars_selection_toolbar', {
64
+ processor: toolbarProcessor(defaultSelectionToolbar),
65
+ default: defaultSelectionToolbar
66
+ });
67
+ const defaultInsertToolbar = 'quickimage quicktable';
68
+ registerOption('quickbars_insert_toolbar', {
69
+ processor: toolbarProcessor(defaultInsertToolbar),
70
+ default: defaultInsertToolbar
71
+ });
72
+ const defaultImageToolbar = 'alignleft aligncenter alignright';
73
+ registerOption('quickbars_image_toolbar', {
74
+ processor: toolbarProcessor(defaultImageToolbar),
75
+ default: defaultImageToolbar
76
+ });
77
+ };
78
+ const getTextSelectionToolbarItems = option('quickbars_selection_toolbar');
79
+ const getInsertToolbarItems = option('quickbars_insert_toolbar');
80
+ const getImageToolbarItems = option('quickbars_image_toolbar');
81
+
82
+ let unique = 0;
83
+ const generate = prefix => {
84
+ const date = new Date();
85
+ const time = date.getTime();
86
+ const random = Math.floor(Math.random() * 1000000000);
87
+ unique++;
88
+ return prefix + '_' + random + unique + String(time);
89
+ };
90
+
91
+ const insertTable = (editor, columns, rows) => {
92
+ editor.execCommand('mceInsertTable', false, {
93
+ rows,
94
+ columns
95
+ });
96
+ };
97
+ const insertBlob = (editor, base64, blob) => {
98
+ const blobCache = editor.editorUpload.blobCache;
99
+ const blobInfo = blobCache.create(generate('mceu'), blob, base64);
100
+ blobCache.add(blobInfo);
101
+ editor.insertContent(editor.dom.createHTML('img', { src: blobInfo.blobUri() }));
102
+ };
103
+
104
+ const blobToBase64 = blob => {
105
+ return new Promise(resolve => {
106
+ const reader = new FileReader();
107
+ reader.onloadend = () => {
108
+ resolve(reader.result.split(',')[1]);
109
+ };
110
+ reader.readAsDataURL(blob);
111
+ });
112
+ };
113
+
114
+ var global = tinymce.util.Tools.resolve('tinymce.util.Delay');
115
+
116
+ const pickFile = editor => new Promise(resolve => {
117
+ let resolved = false;
118
+ const fileInput = document.createElement('input');
119
+ fileInput.type = 'file';
120
+ fileInput.accept = 'image/*';
121
+ fileInput.style.position = 'fixed';
122
+ fileInput.style.left = '0';
123
+ fileInput.style.top = '0';
124
+ fileInput.style.opacity = '0.001';
125
+ document.body.appendChild(fileInput);
126
+ const resolveFileInput = value => {
127
+ var _a;
128
+ if (!resolved) {
129
+ (_a = fileInput.parentNode) === null || _a === void 0 ? void 0 : _a.removeChild(fileInput);
130
+ resolved = true;
131
+ resolve(value);
132
+ }
133
+ };
134
+ const changeHandler = e => {
135
+ resolveFileInput(Array.prototype.slice.call(e.target.files));
136
+ };
137
+ fileInput.addEventListener('input', changeHandler);
138
+ fileInput.addEventListener('change', changeHandler);
139
+ const cancelHandler = e => {
140
+ const cleanup = () => {
141
+ resolveFileInput([]);
142
+ };
143
+ if (!resolved) {
144
+ if (e.type === 'focusin') {
145
+ global.setEditorTimeout(editor, cleanup, 1000);
146
+ } else {
147
+ cleanup();
148
+ }
149
+ }
150
+ editor.off('focusin remove', cancelHandler);
151
+ };
152
+ editor.on('focusin remove', cancelHandler);
153
+ fileInput.click();
154
+ });
155
+
156
+ const setupButtons = editor => {
157
+ editor.ui.registry.addButton('quickimage', {
158
+ icon: 'image',
159
+ tooltip: 'Insert image',
160
+ onAction: () => {
161
+ pickFile(editor).then(files => {
162
+ if (files.length > 0) {
163
+ const blob = files[0];
164
+ blobToBase64(blob).then(base64 => {
165
+ insertBlob(editor, base64, blob);
166
+ });
167
+ }
168
+ });
169
+ }
170
+ });
171
+ editor.ui.registry.addButton('quicktable', {
172
+ icon: 'table',
173
+ tooltip: 'Insert table',
174
+ onAction: () => {
175
+ insertTable(editor, 2, 2);
176
+ }
177
+ });
178
+ };
179
+
180
+ const constant = value => {
181
+ return () => {
182
+ return value;
183
+ };
184
+ };
185
+ const never = constant(false);
186
+
187
+ class Optional {
188
+ constructor(tag, value) {
189
+ this.tag = tag;
190
+ this.value = value;
191
+ }
192
+ static some(value) {
193
+ return new Optional(true, value);
194
+ }
195
+ static none() {
196
+ return Optional.singletonNone;
197
+ }
198
+ fold(onNone, onSome) {
199
+ if (this.tag) {
200
+ return onSome(this.value);
201
+ } else {
202
+ return onNone();
203
+ }
204
+ }
205
+ isSome() {
206
+ return this.tag;
207
+ }
208
+ isNone() {
209
+ return !this.tag;
210
+ }
211
+ map(mapper) {
212
+ if (this.tag) {
213
+ return Optional.some(mapper(this.value));
214
+ } else {
215
+ return Optional.none();
216
+ }
217
+ }
218
+ bind(binder) {
219
+ if (this.tag) {
220
+ return binder(this.value);
221
+ } else {
222
+ return Optional.none();
223
+ }
224
+ }
225
+ exists(predicate) {
226
+ return this.tag && predicate(this.value);
227
+ }
228
+ forall(predicate) {
229
+ return !this.tag || predicate(this.value);
230
+ }
231
+ filter(predicate) {
232
+ if (!this.tag || predicate(this.value)) {
233
+ return this;
234
+ } else {
235
+ return Optional.none();
236
+ }
237
+ }
238
+ getOr(replacement) {
239
+ return this.tag ? this.value : replacement;
240
+ }
241
+ or(replacement) {
242
+ return this.tag ? this : replacement;
243
+ }
244
+ getOrThunk(thunk) {
245
+ return this.tag ? this.value : thunk();
246
+ }
247
+ orThunk(thunk) {
248
+ return this.tag ? this : thunk();
249
+ }
250
+ getOrDie(message) {
251
+ if (!this.tag) {
252
+ throw new Error(message !== null && message !== void 0 ? message : 'Called getOrDie on None');
253
+ } else {
254
+ return this.value;
255
+ }
256
+ }
257
+ static from(value) {
258
+ return isNonNullable(value) ? Optional.some(value) : Optional.none();
259
+ }
260
+ getOrNull() {
261
+ return this.tag ? this.value : null;
262
+ }
263
+ getOrUndefined() {
264
+ return this.value;
265
+ }
266
+ each(worker) {
267
+ if (this.tag) {
268
+ worker(this.value);
269
+ }
270
+ }
271
+ toArray() {
272
+ return this.tag ? [this.value] : [];
273
+ }
274
+ toString() {
275
+ return this.tag ? `some(${ this.value })` : 'none()';
276
+ }
277
+ }
278
+ Optional.singletonNone = new Optional(false);
279
+
280
+ typeof window !== 'undefined' ? window : Function('return this;')();
281
+
282
+ const ELEMENT = 1;
283
+
284
+ const name = element => {
285
+ const r = element.dom.nodeName;
286
+ return r.toLowerCase();
287
+ };
288
+
289
+ const has$1 = (element, key) => {
290
+ const dom = element.dom;
291
+ return dom && dom.hasAttribute ? dom.hasAttribute(key) : false;
292
+ };
293
+
294
+ var ClosestOrAncestor = (is, ancestor, scope, a, isRoot) => {
295
+ if (is(scope, a)) {
296
+ return Optional.some(scope);
297
+ } else if (isFunction(isRoot) && isRoot(scope)) {
298
+ return Optional.none();
299
+ } else {
300
+ return ancestor(scope, a, isRoot);
301
+ }
302
+ };
303
+
304
+ const fromHtml = (html, scope) => {
305
+ const doc = scope || document;
306
+ const div = doc.createElement('div');
307
+ div.innerHTML = html;
308
+ if (!div.hasChildNodes() || div.childNodes.length > 1) {
309
+ const message = 'HTML does not have a single root node';
310
+ console.error(message, html);
311
+ throw new Error(message);
312
+ }
313
+ return fromDom(div.childNodes[0]);
314
+ };
315
+ const fromTag = (tag, scope) => {
316
+ const doc = scope || document;
317
+ const node = doc.createElement(tag);
318
+ return fromDom(node);
319
+ };
320
+ const fromText = (text, scope) => {
321
+ const doc = scope || document;
322
+ const node = doc.createTextNode(text);
323
+ return fromDom(node);
324
+ };
325
+ const fromDom = node => {
326
+ if (node === null || node === undefined) {
327
+ throw new Error('Node cannot be null or undefined');
328
+ }
329
+ return { dom: node };
330
+ };
331
+ const fromPoint = (docElm, x, y) => Optional.from(docElm.dom.elementFromPoint(x, y)).map(fromDom);
332
+ const SugarElement = {
333
+ fromHtml,
334
+ fromTag,
335
+ fromText,
336
+ fromDom,
337
+ fromPoint
338
+ };
339
+
340
+ const is = (element, selector) => {
341
+ const dom = element.dom;
342
+ if (dom.nodeType !== ELEMENT) {
343
+ return false;
344
+ } else {
345
+ const elem = dom;
346
+ if (elem.matches !== undefined) {
347
+ return elem.matches(selector);
348
+ } else if (elem.msMatchesSelector !== undefined) {
349
+ return elem.msMatchesSelector(selector);
350
+ } else if (elem.webkitMatchesSelector !== undefined) {
351
+ return elem.webkitMatchesSelector(selector);
352
+ } else if (elem.mozMatchesSelector !== undefined) {
353
+ return elem.mozMatchesSelector(selector);
354
+ } else {
355
+ throw new Error('Browser lacks native selectors');
356
+ }
357
+ }
358
+ };
359
+
360
+ const ancestor$1 = (scope, predicate, isRoot) => {
361
+ let element = scope.dom;
362
+ const stop = isFunction(isRoot) ? isRoot : never;
363
+ while (element.parentNode) {
364
+ element = element.parentNode;
365
+ const el = SugarElement.fromDom(element);
366
+ if (predicate(el)) {
367
+ return Optional.some(el);
368
+ } else if (stop(el)) {
369
+ break;
370
+ }
371
+ }
372
+ return Optional.none();
373
+ };
374
+ const closest$2 = (scope, predicate, isRoot) => {
375
+ const is = (s, test) => test(s);
376
+ return ClosestOrAncestor(is, ancestor$1, scope, predicate, isRoot);
377
+ };
378
+
379
+ const closest$1 = (scope, predicate, isRoot) => closest$2(scope, predicate, isRoot).isSome();
380
+
381
+ const ancestor = (scope, selector, isRoot) => ancestor$1(scope, e => is(e, selector), isRoot);
382
+ const closest = (scope, selector, isRoot) => {
383
+ const is$1 = (element, selector) => is(element, selector);
384
+ return ClosestOrAncestor(is$1, ancestor, scope, selector, isRoot);
385
+ };
386
+
387
+ const addToEditor$1 = editor => {
388
+ const insertToolbarItems = getInsertToolbarItems(editor);
389
+ if (insertToolbarItems.length > 0) {
390
+ editor.ui.registry.addContextToolbar('quickblock', {
391
+ predicate: node => {
392
+ const sugarNode = SugarElement.fromDom(node);
393
+ const textBlockElementsMap = editor.schema.getTextBlockElements();
394
+ const isRoot = elem => elem.dom === editor.getBody();
395
+ return !has$1(sugarNode, 'data-mce-bogus') && closest(sugarNode, 'table,[data-mce-bogus="all"]', isRoot).fold(() => closest$1(sugarNode, elem => name(elem) in textBlockElementsMap && editor.dom.isEmpty(elem.dom), isRoot), never);
396
+ },
397
+ items: insertToolbarItems,
398
+ position: 'line',
399
+ scope: 'editor'
400
+ });
401
+ }
402
+ };
403
+
404
+ const supports = element => element.dom.classList !== undefined;
405
+
406
+ const has = (element, clazz) => supports(element) && element.dom.classList.contains(clazz);
407
+
408
+ const addToEditor = editor => {
409
+ const isEditable = node => editor.dom.isEditable(node);
410
+ const isInEditableContext = el => isEditable(el.parentElement);
411
+ const isImage = node => {
412
+ const isImageFigure = node.nodeName === 'FIGURE' && /image/i.test(node.className);
413
+ const isImage = node.nodeName === 'IMG' || isImageFigure;
414
+ const isPagebreak = has(SugarElement.fromDom(node), 'mce-pagebreak');
415
+ return isImage && isInEditableContext(node) && !isPagebreak;
416
+ };
417
+ const imageToolbarItems = getImageToolbarItems(editor);
418
+ if (imageToolbarItems.length > 0) {
419
+ editor.ui.registry.addContextToolbar('imageselection', {
420
+ predicate: isImage,
421
+ items: imageToolbarItems,
422
+ position: 'node'
423
+ });
424
+ }
425
+ const textToolbarItems = getTextSelectionToolbarItems(editor);
426
+ if (textToolbarItems.length > 0) {
427
+ editor.ui.registry.addContextToolbar('textselection', {
428
+ predicate: node => !isImage(node) && !editor.selection.isCollapsed() && isEditable(node),
429
+ items: textToolbarItems,
430
+ position: 'selection',
431
+ scope: 'editor'
432
+ });
433
+ }
434
+ };
435
+
436
+ var Plugin = () => {
437
+ global$1.add('quickbars', editor => {
438
+ register(editor);
439
+ setupButtons(editor);
440
+ addToEditor$1(editor);
441
+ addToEditor(editor);
442
+ });
443
+ };
444
+
445
+ Plugin();
446
+
447
+ })();
@@ -0,0 +1,5 @@
1
+ /**
2
+ * TinyMCE version 6.8.6 (TBD)
3
+ */
4
+
5
+ !function(){"use strict";var t=tinymce.util.Tools.resolve("tinymce.PluginManager");const e=t=>e=>typeof e===t,o=("string",t=>"string"===(t=>{const e=typeof t;return null===t?"null":"object"===e&&Array.isArray(t)?"array":"object"===e&&(o=n=t,(r=String).prototype.isPrototypeOf(o)||(null===(i=n.constructor)||void 0===i?void 0:i.name)===r.name)?"string":e;var o,n,r,i})(t));const n=e("boolean"),r=e("function"),i=t=>e=>e.options.get(t),s=i("quickbars_selection_toolbar"),a=i("quickbars_insert_toolbar"),l=i("quickbars_image_toolbar");let c=0;var u=tinymce.util.Tools.resolve("tinymce.util.Delay");const d=t=>{t.ui.registry.addButton("quickimage",{icon:"image",tooltip:"Insert image",onAction:()=>{(t=>new Promise((e=>{let o=!1;const n=document.createElement("input");n.type="file",n.accept="image/*",n.style.position="fixed",n.style.left="0",n.style.top="0",n.style.opacity="0.001",document.body.appendChild(n);const r=t=>{var r;o||(null===(r=n.parentNode)||void 0===r||r.removeChild(n),o=!0,e(t))},i=t=>{r(Array.prototype.slice.call(t.target.files))};n.addEventListener("input",i),n.addEventListener("change",i);const s=e=>{const n=()=>{r([])};o||("focusin"===e.type?u.setEditorTimeout(t,n,1e3):n()),t.off("focusin remove",s)};t.on("focusin remove",s),n.click()})))(t).then((e=>{if(e.length>0){const o=e[0];(t=>new Promise((e=>{const o=new FileReader;o.onloadend=()=>{e(o.result.split(",")[1])},o.readAsDataURL(t)})))(o).then((e=>{((t,e,o)=>{const n=t.editorUpload.blobCache,r=n.create((t=>{const e=(new Date).getTime(),o=Math.floor(1e9*Math.random());return c++,"mceu_"+o+c+String(e)})(),o,e);n.add(r),t.insertContent(t.dom.createHTML("img",{src:r.blobUri()}))})(t,e,o)}))}}))}}),t.ui.registry.addButton("quicktable",{icon:"table",tooltip:"Insert table",onAction:()=>{((t,e,o)=>{t.execCommand("mceInsertTable",!1,{rows:2,columns:2})})(t)}})},m=(!1,()=>false);class g{constructor(t,e){this.tag=t,this.value=e}static some(t){return new g(!0,t)}static none(){return g.singletonNone}fold(t,e){return this.tag?e(this.value):t()}isSome(){return this.tag}isNone(){return!this.tag}map(t){return this.tag?g.some(t(this.value)):g.none()}bind(t){return this.tag?t(this.value):g.none()}exists(t){return this.tag&&t(this.value)}forall(t){return!this.tag||t(this.value)}filter(t){return!this.tag||t(this.value)?this:g.none()}getOr(t){return this.tag?this.value:t}or(t){return this.tag?this:t}getOrThunk(t){return this.tag?this.value:t()}orThunk(t){return this.tag?this:t()}getOrDie(t){if(this.tag)return this.value;throw new Error(null!=t?t:"Called getOrDie on None")}static from(t){return null==t?g.none():g.some(t)}getOrNull(){return this.tag?this.value:null}getOrUndefined(){return this.value}each(t){this.tag&&t(this.value)}toArray(){return this.tag?[this.value]:[]}toString(){return this.tag?`some(${this.value})`:"none()"}}g.singletonNone=new g(!1),"undefined"!=typeof window?window:Function("return this;")();var h=(t,e,o,n,i)=>t(o,n)?g.some(o):r(i)&&i(o)?g.none():e(o,n,i);const b=t=>{if(null==t)throw new Error("Node cannot be null or undefined");return{dom:t}},p=b,v=(t,e)=>{const o=t.dom;if(1!==o.nodeType)return!1;{const t=o;if(void 0!==t.matches)return t.matches(e);if(void 0!==t.msMatchesSelector)return t.msMatchesSelector(e);if(void 0!==t.webkitMatchesSelector)return t.webkitMatchesSelector(e);if(void 0!==t.mozMatchesSelector)return t.mozMatchesSelector(e);throw new Error("Browser lacks native selectors")}},f=(t,e,o)=>{let n=t.dom;const i=r(o)?o:m;for(;n.parentNode;){n=n.parentNode;const t=p(n);if(e(t))return g.some(t);if(i(t))break}return g.none()},y=(t,e,o)=>f(t,(t=>v(t,e)),o),k=t=>{const e=a(t);e.length>0&&t.ui.registry.addContextToolbar("quickblock",{predicate:e=>{const o=p(e),n=t.schema.getTextBlockElements(),r=e=>e.dom===t.getBody();return!((t,e)=>{const o=t.dom;return!(!o||!o.hasAttribute)&&o.hasAttribute("data-mce-bogus")})(o)&&((t,e,o)=>h(((t,e)=>v(t,e)),y,t,'table,[data-mce-bogus="all"]',o))(o,0,r).fold((()=>((t,e,o)=>((t,e,o)=>h(((t,e)=>e(t)),f,t,e,o))(t,e,o).isSome())(o,(e=>e.dom.nodeName.toLowerCase()in n&&t.dom.isEmpty(e.dom)),r)),m)},items:e,position:"line",scope:"editor"})};t.add("quickbars",(t=>{(t=>{const e=t.options.register,r=t=>e=>{const r=n(e)||o(e);return r?n(e)?{value:e?t:"",valid:r}:{value:e.trim(),valid:r}:{valid:!1,message:"Must be a boolean or string."}},i="bold italic | quicklink h2 h3 blockquote";e("quickbars_selection_toolbar",{processor:r(i),default:i});const s="quickimage quicktable";e("quickbars_insert_toolbar",{processor:r(s),default:s});const a="alignleft aligncenter alignright";e("quickbars_image_toolbar",{processor:r(a),default:a})})(t),d(t),k(t),(t=>{const e=e=>t.dom.isEditable(e),o=t=>{const o="FIGURE"===t.nodeName&&/image/i.test(t.className),n="IMG"===t.nodeName||o,r=(t=>void 0!==t.dom.classList)(i=p(t))&&i.dom.classList.contains("mce-pagebreak");var i;return n&&e(t.parentElement)&&!r},n=l(t);n.length>0&&t.ui.registry.addContextToolbar("imageselection",{predicate:o,items:n,position:"node"});const r=s(t);r.length>0&&t.ui.registry.addContextToolbar("textselection",{predicate:n=>!o(n)&&!t.selection.isCollapsed()&&e(n),items:r,position:"selection",scope:"editor"})})(t)}))}();
@@ -0,0 +1,7 @@
1
+ // Exports the "save" plugin for usage with module loaders
2
+ // Usage:
3
+ // CommonJS:
4
+ // require('tinymce/plugins/save')
5
+ // ES2015:
6
+ // import 'tinymce/plugins/save'
7
+ require('./plugin.js');
@@ -0,0 +1,118 @@
1
+ /**
2
+ * TinyMCE version 6.8.6 (TBD)
3
+ */
4
+
5
+ (function () {
6
+ 'use strict';
7
+
8
+ var global$2 = tinymce.util.Tools.resolve('tinymce.PluginManager');
9
+
10
+ const isSimpleType = type => value => typeof value === type;
11
+ const isFunction = isSimpleType('function');
12
+
13
+ var global$1 = tinymce.util.Tools.resolve('tinymce.dom.DOMUtils');
14
+
15
+ var global = tinymce.util.Tools.resolve('tinymce.util.Tools');
16
+
17
+ const option = name => editor => editor.options.get(name);
18
+ const register$2 = editor => {
19
+ const registerOption = editor.options.register;
20
+ registerOption('save_enablewhendirty', {
21
+ processor: 'boolean',
22
+ default: true
23
+ });
24
+ registerOption('save_onsavecallback', { processor: 'function' });
25
+ registerOption('save_oncancelcallback', { processor: 'function' });
26
+ };
27
+ const enableWhenDirty = option('save_enablewhendirty');
28
+ const getOnSaveCallback = option('save_onsavecallback');
29
+ const getOnCancelCallback = option('save_oncancelcallback');
30
+
31
+ const displayErrorMessage = (editor, message) => {
32
+ editor.notificationManager.open({
33
+ text: message,
34
+ type: 'error'
35
+ });
36
+ };
37
+ const save = editor => {
38
+ const formObj = global$1.DOM.getParent(editor.id, 'form');
39
+ if (enableWhenDirty(editor) && !editor.isDirty()) {
40
+ return;
41
+ }
42
+ editor.save();
43
+ const onSaveCallback = getOnSaveCallback(editor);
44
+ if (isFunction(onSaveCallback)) {
45
+ onSaveCallback.call(editor, editor);
46
+ editor.nodeChanged();
47
+ return;
48
+ }
49
+ if (formObj) {
50
+ editor.setDirty(false);
51
+ if (!formObj.onsubmit || formObj.onsubmit()) {
52
+ if (typeof formObj.submit === 'function') {
53
+ formObj.submit();
54
+ } else {
55
+ displayErrorMessage(editor, 'Error: Form submit field collision.');
56
+ }
57
+ }
58
+ editor.nodeChanged();
59
+ } else {
60
+ displayErrorMessage(editor, 'Error: No form element found.');
61
+ }
62
+ };
63
+ const cancel = editor => {
64
+ const h = global.trim(editor.startContent);
65
+ const onCancelCallback = getOnCancelCallback(editor);
66
+ if (isFunction(onCancelCallback)) {
67
+ onCancelCallback.call(editor, editor);
68
+ return;
69
+ }
70
+ editor.resetContent(h);
71
+ };
72
+
73
+ const register$1 = editor => {
74
+ editor.addCommand('mceSave', () => {
75
+ save(editor);
76
+ });
77
+ editor.addCommand('mceCancel', () => {
78
+ cancel(editor);
79
+ });
80
+ };
81
+
82
+ const stateToggle = editor => api => {
83
+ const handler = () => {
84
+ api.setEnabled(!enableWhenDirty(editor) || editor.isDirty());
85
+ };
86
+ handler();
87
+ editor.on('NodeChange dirty', handler);
88
+ return () => editor.off('NodeChange dirty', handler);
89
+ };
90
+ const register = editor => {
91
+ editor.ui.registry.addButton('save', {
92
+ icon: 'save',
93
+ tooltip: 'Save',
94
+ enabled: false,
95
+ onAction: () => editor.execCommand('mceSave'),
96
+ onSetup: stateToggle(editor)
97
+ });
98
+ editor.ui.registry.addButton('cancel', {
99
+ icon: 'cancel',
100
+ tooltip: 'Cancel',
101
+ enabled: false,
102
+ onAction: () => editor.execCommand('mceCancel'),
103
+ onSetup: stateToggle(editor)
104
+ });
105
+ editor.addShortcut('Meta+S', '', 'mceSave');
106
+ };
107
+
108
+ var Plugin = () => {
109
+ global$2.add('save', editor => {
110
+ register$2(editor);
111
+ register(editor);
112
+ register$1(editor);
113
+ });
114
+ };
115
+
116
+ Plugin();
117
+
118
+ })();
@@ -0,0 +1,5 @@
1
+ /**
2
+ * TinyMCE version 6.8.6 (TBD)
3
+ */
4
+
5
+ !function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager");const n=("function",e=>"function"==typeof e);var o=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),t=tinymce.util.Tools.resolve("tinymce.util.Tools");const a=e=>n=>n.options.get(e),c=a("save_enablewhendirty"),i=a("save_onsavecallback"),s=a("save_oncancelcallback"),r=(e,n)=>{e.notificationManager.open({text:n,type:"error"})},l=e=>n=>{const o=()=>{n.setEnabled(!c(e)||e.isDirty())};return o(),e.on("NodeChange dirty",o),()=>e.off("NodeChange dirty",o)};e.add("save",(e=>{(e=>{const n=e.options.register;n("save_enablewhendirty",{processor:"boolean",default:!0}),n("save_onsavecallback",{processor:"function"}),n("save_oncancelcallback",{processor:"function"})})(e),(e=>{e.ui.registry.addButton("save",{icon:"save",tooltip:"Save",enabled:!1,onAction:()=>e.execCommand("mceSave"),onSetup:l(e)}),e.ui.registry.addButton("cancel",{icon:"cancel",tooltip:"Cancel",enabled:!1,onAction:()=>e.execCommand("mceCancel"),onSetup:l(e)}),e.addShortcut("Meta+S","","mceSave")})(e),(e=>{e.addCommand("mceSave",(()=>{(e=>{const t=o.DOM.getParent(e.id,"form");if(c(e)&&!e.isDirty())return;e.save();const a=i(e);if(n(a))return a.call(e,e),void e.nodeChanged();t?(e.setDirty(!1),t.onsubmit&&!t.onsubmit()||("function"==typeof t.submit?t.submit():r(e,"Error: Form submit field collision.")),e.nodeChanged()):r(e,"Error: No form element found.")})(e)})),e.addCommand("mceCancel",(()=>{(e=>{const o=t.trim(e.startContent),a=s(e);n(a)?a.call(e,e):e.resetContent(o)})(e)}))})(e)}))}();
@@ -0,0 +1,7 @@
1
+ // Exports the "searchreplace" plugin for usage with module loaders
2
+ // Usage:
3
+ // CommonJS:
4
+ // require('tinymce/plugins/searchreplace')
5
+ // ES2015:
6
+ // import 'tinymce/plugins/searchreplace'
7
+ require('./plugin.js');