@dangl/angular-material-shared 2.5.1-beta0012 → 2.6.0-beta0019

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 (241) hide show
  1. package/README.md +1 -7
  2. package/esm2022/lib/angular-material-shared.module.mjs +2 -2
  3. package/esm2022/lib/components/tiny-mce/tiny-mce.component.mjs +16 -19
  4. package/fesm2022/dangl-angular-material-shared.mjs +16 -19
  5. package/fesm2022/dangl-angular-material-shared.mjs.map +1 -1
  6. package/lib/components/tiny-mce/tiny-mce.component.d.ts +7 -8
  7. package/package.json +1 -1
  8. package/tinymce-assets/icons/default/icons.js +187 -171
  9. package/tinymce-assets/icons/default/icons.min.js +1 -1
  10. package/tinymce-assets/langs/it.js +1 -1
  11. package/tinymce-assets/plugins/accordion/index.js +7 -0
  12. package/tinymce-assets/plugins/accordion/plugin.js +1054 -0
  13. package/tinymce-assets/plugins/accordion/plugin.min.js +4 -0
  14. package/tinymce-assets/plugins/advlist/plugin.js +185 -187
  15. package/tinymce-assets/plugins/advlist/plugin.min.js +2 -7
  16. package/tinymce-assets/plugins/anchor/plugin.js +79 -81
  17. package/tinymce-assets/plugins/anchor/plugin.min.js +2 -7
  18. package/tinymce-assets/plugins/autolink/plugin.js +209 -194
  19. package/tinymce-assets/plugins/autolink/plugin.min.js +2 -7
  20. package/tinymce-assets/plugins/autoresize/plugin.js +110 -102
  21. package/tinymce-assets/plugins/autoresize/plugin.min.js +2 -7
  22. package/tinymce-assets/plugins/autosave/plugin.js +125 -104
  23. package/tinymce-assets/plugins/autosave/plugin.min.js +2 -7
  24. package/tinymce-assets/plugins/charmap/plugin.js +275 -313
  25. package/tinymce-assets/plugins/charmap/plugin.min.js +2 -7
  26. package/tinymce-assets/plugins/code/plugin.js +18 -24
  27. package/tinymce-assets/plugins/code/plugin.min.js +2 -7
  28. package/tinymce-assets/plugins/codesample/plugin.js +2075 -2074
  29. package/tinymce-assets/plugins/codesample/plugin.min.js +2 -7
  30. package/tinymce-assets/plugins/directionality/plugin.js +247 -305
  31. package/tinymce-assets/plugins/directionality/plugin.min.js +2 -7
  32. package/tinymce-assets/plugins/emoticons/js/emojiimages.js +1 -9424
  33. package/tinymce-assets/plugins/emoticons/js/emojiimages.min.js +1 -1
  34. package/tinymce-assets/plugins/emoticons/js/emojis.js +1 -9423
  35. package/tinymce-assets/plugins/emoticons/js/emojis.min.js +1 -1
  36. package/tinymce-assets/plugins/emoticons/plugin.js +334 -374
  37. package/tinymce-assets/plugins/emoticons/plugin.min.js +2 -7
  38. package/tinymce-assets/plugins/fullscreen/plugin.js +740 -837
  39. package/tinymce-assets/plugins/fullscreen/plugin.min.js +2 -7
  40. package/tinymce-assets/plugins/help/js/i18n/keynav/ar.js +90 -0
  41. package/tinymce-assets/plugins/help/js/i18n/keynav/bg_BG.js +90 -0
  42. package/tinymce-assets/plugins/help/js/i18n/keynav/ca.js +90 -0
  43. package/tinymce-assets/plugins/help/js/i18n/keynav/cs.js +90 -0
  44. package/tinymce-assets/plugins/help/js/i18n/keynav/da.js +90 -0
  45. package/tinymce-assets/plugins/help/js/i18n/keynav/de.js +90 -0
  46. package/tinymce-assets/plugins/help/js/i18n/keynav/el.js +90 -0
  47. package/tinymce-assets/plugins/help/js/i18n/keynav/en.js +90 -0
  48. package/tinymce-assets/plugins/help/js/i18n/keynav/es.js +90 -0
  49. package/tinymce-assets/plugins/help/js/i18n/keynav/eu.js +90 -0
  50. package/tinymce-assets/plugins/help/js/i18n/keynav/fa.js +90 -0
  51. package/tinymce-assets/plugins/help/js/i18n/keynav/fi.js +90 -0
  52. package/tinymce-assets/plugins/help/js/i18n/keynav/fr_FR.js +90 -0
  53. package/tinymce-assets/plugins/help/js/i18n/keynav/he_IL.js +90 -0
  54. package/tinymce-assets/plugins/help/js/i18n/keynav/hi.js +90 -0
  55. package/tinymce-assets/plugins/help/js/i18n/keynav/hr.js +90 -0
  56. package/tinymce-assets/plugins/help/js/i18n/keynav/hu_HU.js +90 -0
  57. package/tinymce-assets/plugins/help/js/i18n/keynav/id.js +90 -0
  58. package/tinymce-assets/plugins/help/js/i18n/keynav/it.js +90 -0
  59. package/tinymce-assets/plugins/help/js/i18n/keynav/ja.js +90 -0
  60. package/tinymce-assets/plugins/help/js/i18n/keynav/kk.js +90 -0
  61. package/tinymce-assets/plugins/help/js/i18n/keynav/ko_KR.js +90 -0
  62. package/tinymce-assets/plugins/help/js/i18n/keynav/ms.js +90 -0
  63. package/tinymce-assets/plugins/help/js/i18n/keynav/nb_NO.js +90 -0
  64. package/tinymce-assets/plugins/help/js/i18n/keynav/nl.js +90 -0
  65. package/tinymce-assets/plugins/help/js/i18n/keynav/pl.js +90 -0
  66. package/tinymce-assets/plugins/help/js/i18n/keynav/pt_BR.js +90 -0
  67. package/tinymce-assets/plugins/help/js/i18n/keynav/pt_PT.js +90 -0
  68. package/tinymce-assets/plugins/help/js/i18n/keynav/ro.js +90 -0
  69. package/tinymce-assets/plugins/help/js/i18n/keynav/ru.js +90 -0
  70. package/tinymce-assets/plugins/help/js/i18n/keynav/sk.js +90 -0
  71. package/tinymce-assets/plugins/help/js/i18n/keynav/sl_SI.js +90 -0
  72. package/tinymce-assets/plugins/help/js/i18n/keynav/sv_SE.js +90 -0
  73. package/tinymce-assets/plugins/help/js/i18n/keynav/th_TH.js +90 -0
  74. package/tinymce-assets/plugins/help/js/i18n/keynav/tr.js +90 -0
  75. package/tinymce-assets/plugins/help/js/i18n/keynav/uk.js +90 -0
  76. package/tinymce-assets/plugins/help/js/i18n/keynav/vi.js +90 -0
  77. package/tinymce-assets/plugins/help/js/i18n/keynav/zh_CN.js +84 -0
  78. package/tinymce-assets/plugins/help/js/i18n/keynav/zh_TW.js +90 -0
  79. package/tinymce-assets/plugins/help/plugin.js +411 -355
  80. package/tinymce-assets/plugins/help/plugin.min.js +2 -7
  81. package/tinymce-assets/plugins/image/plugin.js +876 -1037
  82. package/tinymce-assets/plugins/image/plugin.min.js +2 -7
  83. package/tinymce-assets/plugins/importcss/plugin.js +146 -144
  84. package/tinymce-assets/plugins/importcss/plugin.min.js +2 -7
  85. package/tinymce-assets/plugins/insertdatetime/plugin.js +93 -88
  86. package/tinymce-assets/plugins/insertdatetime/plugin.min.js +2 -7
  87. package/tinymce-assets/plugins/link/plugin.js +718 -768
  88. package/tinymce-assets/plugins/link/plugin.min.js +2 -7
  89. package/tinymce-assets/plugins/lists/plugin.js +1235 -1375
  90. package/tinymce-assets/plugins/lists/plugin.min.js +2 -7
  91. package/tinymce-assets/plugins/media/plugin.js +614 -756
  92. package/tinymce-assets/plugins/media/plugin.min.js +2 -7
  93. package/tinymce-assets/plugins/nonbreaking/plugin.js +71 -48
  94. package/tinymce-assets/plugins/nonbreaking/plugin.min.js +2 -7
  95. package/tinymce-assets/plugins/pagebreak/plugin.js +53 -40
  96. package/tinymce-assets/plugins/pagebreak/plugin.min.js +2 -7
  97. package/tinymce-assets/plugins/preview/plugin.js +36 -65
  98. package/tinymce-assets/plugins/preview/plugin.min.js +2 -7
  99. package/tinymce-assets/plugins/quickbars/plugin.js +304 -331
  100. package/tinymce-assets/plugins/quickbars/plugin.min.js +2 -7
  101. package/tinymce-assets/plugins/save/plugin.js +49 -50
  102. package/tinymce-assets/plugins/save/plugin.min.js +2 -7
  103. package/tinymce-assets/plugins/searchreplace/plugin.js +499 -571
  104. package/tinymce-assets/plugins/searchreplace/plugin.min.js +2 -7
  105. package/tinymce-assets/plugins/table/plugin.js +2572 -10617
  106. package/tinymce-assets/plugins/table/plugin.min.js +2 -7
  107. package/tinymce-assets/plugins/visualblocks/plugin.js +41 -46
  108. package/tinymce-assets/plugins/visualblocks/plugin.min.js +2 -7
  109. package/tinymce-assets/plugins/visualchars/plugin.js +346 -312
  110. package/tinymce-assets/plugins/visualchars/plugin.min.js +2 -7
  111. package/tinymce-assets/plugins/wordcount/plugin.js +159 -179
  112. package/tinymce-assets/plugins/wordcount/plugin.min.js +2 -7
  113. package/tinymce-assets/skins/content/dark/content.css +2 -8
  114. package/tinymce-assets/skins/content/dark/content.js +2 -0
  115. package/tinymce-assets/skins/content/dark/content.min.css +1 -7
  116. package/tinymce-assets/skins/content/default/content.css +0 -6
  117. package/tinymce-assets/skins/content/default/content.js +2 -0
  118. package/tinymce-assets/skins/content/default/content.min.css +0 -6
  119. package/tinymce-assets/skins/content/document/content.css +0 -6
  120. package/tinymce-assets/skins/content/document/content.js +2 -0
  121. package/tinymce-assets/skins/content/document/content.min.css +0 -6
  122. package/tinymce-assets/skins/content/tinymce-5/content.css +61 -0
  123. package/tinymce-assets/skins/content/tinymce-5/content.js +2 -0
  124. package/tinymce-assets/skins/content/tinymce-5/content.min.css +1 -0
  125. package/tinymce-assets/skins/content/tinymce-5-dark/content.css +66 -0
  126. package/tinymce-assets/skins/content/tinymce-5-dark/content.js +2 -0
  127. package/tinymce-assets/skins/content/tinymce-5-dark/content.min.css +1 -0
  128. package/tinymce-assets/skins/content/writer/content.css +0 -6
  129. package/tinymce-assets/skins/content/writer/content.js +2 -0
  130. package/tinymce-assets/skins/content/writer/content.min.css +0 -6
  131. package/tinymce-assets/skins/ui/oxide/content.css +73 -20
  132. package/tinymce-assets/skins/ui/oxide/content.inline.css +73 -20
  133. package/tinymce-assets/skins/ui/oxide/content.inline.js +2 -0
  134. package/tinymce-assets/skins/ui/oxide/content.inline.min.css +1 -7
  135. package/tinymce-assets/skins/ui/oxide/content.js +2 -0
  136. package/tinymce-assets/skins/ui/oxide/content.min.css +1 -7
  137. package/tinymce-assets/skins/ui/oxide/skin.css +1480 -435
  138. package/tinymce-assets/skins/ui/oxide/skin.js +2 -0
  139. package/tinymce-assets/skins/ui/oxide/skin.min.css +1 -7
  140. package/tinymce-assets/skins/ui/oxide/skin.shadowdom.css +1 -8
  141. package/tinymce-assets/skins/ui/oxide/skin.shadowdom.js +2 -0
  142. package/tinymce-assets/skins/ui/oxide/skin.shadowdom.min.css +1 -7
  143. package/tinymce-assets/skins/ui/oxide-dark/content.css +71 -19
  144. package/tinymce-assets/skins/ui/oxide-dark/content.inline.css +73 -20
  145. package/tinymce-assets/skins/ui/oxide-dark/content.inline.js +2 -0
  146. package/tinymce-assets/skins/ui/oxide-dark/content.inline.min.css +1 -7
  147. package/tinymce-assets/skins/ui/oxide-dark/content.js +2 -0
  148. package/tinymce-assets/skins/ui/oxide-dark/content.min.css +1 -7
  149. package/tinymce-assets/skins/ui/oxide-dark/skin.css +1498 -450
  150. package/tinymce-assets/skins/ui/oxide-dark/skin.js +2 -0
  151. package/tinymce-assets/skins/ui/oxide-dark/skin.min.css +1 -7
  152. package/tinymce-assets/skins/ui/oxide-dark/skin.shadowdom.css +1 -8
  153. package/tinymce-assets/skins/ui/oxide-dark/skin.shadowdom.js +2 -0
  154. package/tinymce-assets/skins/ui/oxide-dark/skin.shadowdom.min.css +1 -7
  155. package/tinymce-assets/skins/ui/tinymce-5/content.css +785 -0
  156. package/tinymce-assets/skins/ui/tinymce-5/content.inline.css +779 -0
  157. package/tinymce-assets/skins/ui/tinymce-5/content.inline.js +2 -0
  158. package/tinymce-assets/skins/ui/tinymce-5/content.inline.min.css +1 -0
  159. package/tinymce-assets/skins/ui/tinymce-5/content.js +2 -0
  160. package/tinymce-assets/skins/ui/tinymce-5/content.min.css +1 -0
  161. package/tinymce-assets/skins/ui/tinymce-5/skin.css +4185 -0
  162. package/tinymce-assets/skins/ui/tinymce-5/skin.js +2 -0
  163. package/tinymce-assets/skins/ui/tinymce-5/skin.min.css +1 -0
  164. package/tinymce-assets/skins/ui/tinymce-5/skin.shadowdom.css +30 -0
  165. package/tinymce-assets/skins/ui/tinymce-5/skin.shadowdom.js +2 -0
  166. package/tinymce-assets/skins/ui/tinymce-5/skin.shadowdom.min.css +1 -0
  167. package/tinymce-assets/skins/ui/tinymce-5-dark/content.css +766 -0
  168. package/tinymce-assets/skins/ui/tinymce-5-dark/content.inline.css +779 -0
  169. package/tinymce-assets/skins/ui/tinymce-5-dark/content.inline.js +2 -0
  170. package/tinymce-assets/skins/ui/tinymce-5-dark/content.inline.min.css +1 -0
  171. package/tinymce-assets/skins/ui/tinymce-5-dark/content.js +2 -0
  172. package/tinymce-assets/skins/ui/tinymce-5-dark/content.min.css +1 -0
  173. package/tinymce-assets/skins/ui/tinymce-5-dark/skin.css +4185 -0
  174. package/tinymce-assets/skins/ui/tinymce-5-dark/skin.js +2 -0
  175. package/tinymce-assets/skins/ui/tinymce-5-dark/skin.min.css +1 -0
  176. package/tinymce-assets/skins/ui/tinymce-5-dark/skin.shadowdom.css +30 -0
  177. package/tinymce-assets/skins/ui/tinymce-5-dark/skin.shadowdom.js +2 -0
  178. package/tinymce-assets/skins/ui/tinymce-5-dark/skin.shadowdom.min.css +1 -0
  179. package/tinymce-assets/themes/silver/theme.js +25226 -28188
  180. package/tinymce-assets/themes/silver/theme.min.js +2 -7
  181. package/tinymce-assets/plugins/bbcode/index.js +0 -7
  182. package/tinymce-assets/plugins/bbcode/plugin.js +0 -99
  183. package/tinymce-assets/plugins/bbcode/plugin.min.js +0 -9
  184. package/tinymce-assets/plugins/colorpicker/index.js +0 -7
  185. package/tinymce-assets/plugins/colorpicker/plugin.js +0 -21
  186. package/tinymce-assets/plugins/colorpicker/plugin.min.js +0 -9
  187. package/tinymce-assets/plugins/contextmenu/index.js +0 -7
  188. package/tinymce-assets/plugins/contextmenu/plugin.js +0 -21
  189. package/tinymce-assets/plugins/contextmenu/plugin.min.js +0 -9
  190. package/tinymce-assets/plugins/fullpage/index.js +0 -7
  191. package/tinymce-assets/plugins/fullpage/plugin.js +0 -544
  192. package/tinymce-assets/plugins/fullpage/plugin.min.js +0 -9
  193. package/tinymce-assets/plugins/hr/index.js +0 -7
  194. package/tinymce-assets/plugins/hr/plugin.js +0 -45
  195. package/tinymce-assets/plugins/hr/plugin.min.js +0 -9
  196. package/tinymce-assets/plugins/imagetools/index.js +0 -7
  197. package/tinymce-assets/plugins/imagetools/plugin.js +0 -1531
  198. package/tinymce-assets/plugins/imagetools/plugin.min.js +0 -9
  199. package/tinymce-assets/plugins/legacyoutput/index.js +0 -7
  200. package/tinymce-assets/plugins/legacyoutput/plugin.js +0 -199
  201. package/tinymce-assets/plugins/legacyoutput/plugin.min.js +0 -9
  202. package/tinymce-assets/plugins/noneditable/index.js +0 -7
  203. package/tinymce-assets/plugins/noneditable/plugin.js +0 -117
  204. package/tinymce-assets/plugins/noneditable/plugin.min.js +0 -9
  205. package/tinymce-assets/plugins/paste/index.js +0 -7
  206. package/tinymce-assets/plugins/paste/plugin.js +0 -1803
  207. package/tinymce-assets/plugins/paste/plugin.min.js +0 -9
  208. package/tinymce-assets/plugins/print/index.js +0 -7
  209. package/tinymce-assets/plugins/print/plugin.js +0 -52
  210. package/tinymce-assets/plugins/print/plugin.min.js +0 -9
  211. package/tinymce-assets/plugins/spellchecker/index.js +0 -7
  212. package/tinymce-assets/plugins/spellchecker/plugin.js +0 -730
  213. package/tinymce-assets/plugins/spellchecker/plugin.min.js +0 -9
  214. package/tinymce-assets/plugins/tabfocus/index.js +0 -7
  215. package/tinymce-assets/plugins/tabfocus/plugin.js +0 -130
  216. package/tinymce-assets/plugins/tabfocus/plugin.min.js +0 -9
  217. package/tinymce-assets/plugins/template/index.js +0 -7
  218. package/tinymce-assets/plugins/template/plugin.js +0 -591
  219. package/tinymce-assets/plugins/template/plugin.min.js +0 -9
  220. package/tinymce-assets/plugins/textcolor/index.js +0 -7
  221. package/tinymce-assets/plugins/textcolor/plugin.js +0 -21
  222. package/tinymce-assets/plugins/textcolor/plugin.min.js +0 -9
  223. package/tinymce-assets/plugins/textpattern/index.js +0 -7
  224. package/tinymce-assets/plugins/textpattern/plugin.js +0 -1374
  225. package/tinymce-assets/plugins/textpattern/plugin.min.js +0 -9
  226. package/tinymce-assets/plugins/toc/index.js +0 -7
  227. package/tinymce-assets/plugins/toc/plugin.js +0 -238
  228. package/tinymce-assets/plugins/toc/plugin.min.js +0 -9
  229. package/tinymce-assets/skins/ui/oxide/content.mobile.css +0 -29
  230. package/tinymce-assets/skins/ui/oxide/content.mobile.min.css +0 -7
  231. package/tinymce-assets/skins/ui/oxide/fonts/tinymce-mobile.woff +0 -0
  232. package/tinymce-assets/skins/ui/oxide/skin.mobile.css +0 -673
  233. package/tinymce-assets/skins/ui/oxide/skin.mobile.min.css +0 -7
  234. package/tinymce-assets/skins/ui/oxide-dark/content.mobile.css +0 -29
  235. package/tinymce-assets/skins/ui/oxide-dark/content.mobile.min.css +0 -7
  236. package/tinymce-assets/skins/ui/oxide-dark/fonts/tinymce-mobile.woff +0 -0
  237. package/tinymce-assets/skins/ui/oxide-dark/skin.mobile.css +0 -673
  238. package/tinymce-assets/skins/ui/oxide-dark/skin.mobile.min.css +0 -7
  239. package/tinymce-assets/themes/mobile/index.js +0 -7
  240. package/tinymce-assets/themes/mobile/theme.js +0 -13130
  241. package/tinymce-assets/themes/mobile/theme.min.js +0 -9
@@ -1,210 +1,185 @@
1
1
  /**
2
- * Copyright (c) Tiny Technologies, Inc. All rights reserved.
3
- * Licensed under the LGPL or a commercial license.
4
- * For LGPL see License.txt in the project root for license information.
5
- * For commercial licenses see https://www.tiny.cloud/
6
- *
7
- * Version: 5.10.9 (2023-11-15)
2
+ * TinyMCE version 7.0.1 (2024-04-10)
8
3
  */
4
+
9
5
  (function () {
10
6
  'use strict';
11
7
 
12
- var global$6 = tinymce.util.Tools.resolve('tinymce.PluginManager');
8
+ var global$4 = tinymce.util.Tools.resolve('tinymce.PluginManager');
13
9
 
14
- var __assign = function () {
15
- __assign = Object.assign || function __assign(t) {
16
- for (var s, i = 1, n = arguments.length; i < n; i++) {
17
- s = arguments[i];
18
- for (var p in s)
19
- if (Object.prototype.hasOwnProperty.call(s, p))
20
- t[p] = s[p];
21
- }
22
- return t;
23
- };
24
- return __assign.apply(this, arguments);
10
+ const getPrototypeOf = Object.getPrototypeOf;
11
+ const hasProto = (v, constructor, predicate) => {
12
+ var _a;
13
+ if (predicate(v, constructor.prototype)) {
14
+ return true;
15
+ } else {
16
+ return ((_a = v.constructor) === null || _a === void 0 ? void 0 : _a.name) === constructor.name;
17
+ }
25
18
  };
26
-
27
- var typeOf = function (x) {
28
- var t = typeof x;
19
+ const typeOf = x => {
20
+ const t = typeof x;
29
21
  if (x === null) {
30
22
  return 'null';
31
- } else if (t === 'object' && (Array.prototype.isPrototypeOf(x) || x.constructor && x.constructor.name === 'Array')) {
23
+ } else if (t === 'object' && Array.isArray(x)) {
32
24
  return 'array';
33
- } else if (t === 'object' && (String.prototype.isPrototypeOf(x) || x.constructor && x.constructor.name === 'String')) {
25
+ } else if (t === 'object' && hasProto(x, String, (o, proto) => proto.isPrototypeOf(o))) {
34
26
  return 'string';
35
27
  } else {
36
28
  return t;
37
29
  }
38
30
  };
39
- var isType = function (type) {
40
- return function (value) {
41
- return typeOf(value) === type;
42
- };
43
- };
44
- var isSimpleType = function (type) {
45
- return function (value) {
46
- return typeof value === type;
47
- };
48
- };
49
- var eq = function (t) {
50
- return function (a) {
51
- return t === a;
52
- };
53
- };
54
- var isString = isType('string');
55
- var isObject = isType('object');
56
- var isArray = isType('array');
57
- var isNull = eq(null);
58
- var isBoolean = isSimpleType('boolean');
59
- var isNullable = function (a) {
60
- return a === null || a === undefined;
61
- };
62
- var isNonNullable = function (a) {
63
- return !isNullable(a);
31
+ const isType = type => value => typeOf(value) === type;
32
+ const isSimpleType = type => value => typeof value === type;
33
+ const eq = t => a => t === a;
34
+ const is = (value, constructor) => isObject(value) && hasProto(value, constructor, (o, proto) => getPrototypeOf(o) === proto);
35
+ const isString = isType('string');
36
+ const isObject = isType('object');
37
+ const isPlainObject = value => is(value, Object);
38
+ const isArray = isType('array');
39
+ const isNull = eq(null);
40
+ const isBoolean = isSimpleType('boolean');
41
+ const isNullable = a => a === null || a === undefined;
42
+ const isNonNullable = a => !isNullable(a);
43
+ const isFunction = isSimpleType('function');
44
+ const isNumber = isSimpleType('number');
45
+ const isArrayOf = (value, pred) => {
46
+ if (isArray(value)) {
47
+ for (let i = 0, len = value.length; i < len; ++i) {
48
+ if (!pred(value[i])) {
49
+ return false;
50
+ }
51
+ }
52
+ return true;
53
+ }
54
+ return false;
64
55
  };
65
- var isFunction = isSimpleType('function');
66
- var isNumber = isSimpleType('number');
67
56
 
68
- var noop = function () {
69
- };
70
- var constant = function (value) {
71
- return function () {
72
- return value;
73
- };
74
- };
75
- var identity = function (x) {
76
- return x;
57
+ const noop = () => {
77
58
  };
78
- var never = constant(false);
79
- var always = constant(true);
80
59
 
81
- var none = function () {
82
- return NONE;
83
- };
84
- var NONE = function () {
85
- var call = function (thunk) {
86
- return thunk();
87
- };
88
- var id = identity;
89
- var me = {
90
- fold: function (n, _s) {
91
- return n();
92
- },
93
- isSome: never,
94
- isNone: always,
95
- getOr: id,
96
- getOrThunk: call,
97
- getOrDie: function (msg) {
98
- throw new Error(msg || 'error: getOrDie called on none.');
99
- },
100
- getOrNull: constant(null),
101
- getOrUndefined: constant(undefined),
102
- or: id,
103
- orThunk: call,
104
- map: none,
105
- each: noop,
106
- bind: none,
107
- exists: never,
108
- forall: always,
109
- filter: function () {
110
- return none();
111
- },
112
- toArray: function () {
113
- return [];
114
- },
115
- toString: constant('none()')
116
- };
117
- return me;
118
- }();
119
- var some = function (a) {
120
- var constant_a = constant(a);
121
- var self = function () {
122
- return me;
123
- };
124
- var bind = function (f) {
125
- return f(a);
126
- };
127
- var me = {
128
- fold: function (n, s) {
129
- return s(a);
130
- },
131
- isSome: always,
132
- isNone: never,
133
- getOr: constant_a,
134
- getOrThunk: constant_a,
135
- getOrDie: constant_a,
136
- getOrNull: constant_a,
137
- getOrUndefined: constant_a,
138
- or: self,
139
- orThunk: self,
140
- map: function (f) {
141
- return some(f(a));
142
- },
143
- each: function (f) {
144
- f(a);
145
- },
146
- bind: bind,
147
- exists: bind,
148
- forall: bind,
149
- filter: function (f) {
150
- return f(a) ? me : NONE;
151
- },
152
- toArray: function () {
153
- return [a];
154
- },
155
- toString: function () {
156
- return 'some(' + a + ')';
60
+ class Optional {
61
+ constructor(tag, value) {
62
+ this.tag = tag;
63
+ this.value = value;
64
+ }
65
+ static some(value) {
66
+ return new Optional(true, value);
67
+ }
68
+ static none() {
69
+ return Optional.singletonNone;
70
+ }
71
+ fold(onNone, onSome) {
72
+ if (this.tag) {
73
+ return onSome(this.value);
74
+ } else {
75
+ return onNone();
157
76
  }
158
- };
159
- return me;
160
- };
161
- var from = function (value) {
162
- return value === null || value === undefined ? NONE : some(value);
163
- };
164
- var Optional = {
165
- some: some,
166
- none: none,
167
- from: from
168
- };
77
+ }
78
+ isSome() {
79
+ return this.tag;
80
+ }
81
+ isNone() {
82
+ return !this.tag;
83
+ }
84
+ map(mapper) {
85
+ if (this.tag) {
86
+ return Optional.some(mapper(this.value));
87
+ } else {
88
+ return Optional.none();
89
+ }
90
+ }
91
+ bind(binder) {
92
+ if (this.tag) {
93
+ return binder(this.value);
94
+ } else {
95
+ return Optional.none();
96
+ }
97
+ }
98
+ exists(predicate) {
99
+ return this.tag && predicate(this.value);
100
+ }
101
+ forall(predicate) {
102
+ return !this.tag || predicate(this.value);
103
+ }
104
+ filter(predicate) {
105
+ if (!this.tag || predicate(this.value)) {
106
+ return this;
107
+ } else {
108
+ return Optional.none();
109
+ }
110
+ }
111
+ getOr(replacement) {
112
+ return this.tag ? this.value : replacement;
113
+ }
114
+ or(replacement) {
115
+ return this.tag ? this : replacement;
116
+ }
117
+ getOrThunk(thunk) {
118
+ return this.tag ? this.value : thunk();
119
+ }
120
+ orThunk(thunk) {
121
+ return this.tag ? this : thunk();
122
+ }
123
+ getOrDie(message) {
124
+ if (!this.tag) {
125
+ throw new Error(message !== null && message !== void 0 ? message : 'Called getOrDie on None');
126
+ } else {
127
+ return this.value;
128
+ }
129
+ }
130
+ static from(value) {
131
+ return isNonNullable(value) ? Optional.some(value) : Optional.none();
132
+ }
133
+ getOrNull() {
134
+ return this.tag ? this.value : null;
135
+ }
136
+ getOrUndefined() {
137
+ return this.value;
138
+ }
139
+ each(worker) {
140
+ if (this.tag) {
141
+ worker(this.value);
142
+ }
143
+ }
144
+ toArray() {
145
+ return this.tag ? [this.value] : [];
146
+ }
147
+ toString() {
148
+ return this.tag ? `some(${ this.value })` : 'none()';
149
+ }
150
+ }
151
+ Optional.singletonNone = new Optional(false);
169
152
 
170
- var keys = Object.keys;
171
- var hasOwnProperty = Object.hasOwnProperty;
172
- var each = function (obj, f) {
173
- var props = keys(obj);
174
- for (var k = 0, len = props.length; k < len; k++) {
175
- var i = props[k];
176
- var x = obj[i];
153
+ const keys = Object.keys;
154
+ const hasOwnProperty = Object.hasOwnProperty;
155
+ const each = (obj, f) => {
156
+ const props = keys(obj);
157
+ for (let k = 0, len = props.length; k < len; k++) {
158
+ const i = props[k];
159
+ const x = obj[i];
177
160
  f(x, i);
178
161
  }
179
162
  };
180
- var objAcc = function (r) {
181
- return function (x, i) {
182
- r[i] = x;
183
- };
163
+ const objAcc = r => (x, i) => {
164
+ r[i] = x;
184
165
  };
185
- var internalFilter = function (obj, pred, onTrue, onFalse) {
186
- var r = {};
187
- each(obj, function (x, i) {
166
+ const internalFilter = (obj, pred, onTrue, onFalse) => {
167
+ each(obj, (x, i) => {
188
168
  (pred(x, i) ? onTrue : onFalse)(x, i);
189
169
  });
190
- return r;
191
170
  };
192
- var filter = function (obj, pred) {
193
- var t = {};
171
+ const filter = (obj, pred) => {
172
+ const t = {};
194
173
  internalFilter(obj, pred, objAcc(t), noop);
195
174
  return t;
196
175
  };
197
- var has = function (obj, key) {
198
- return hasOwnProperty.call(obj, key);
199
- };
200
- var hasNonNullableKey = function (obj, key) {
201
- return has(obj, key) && obj[key] !== undefined && obj[key] !== null;
202
- };
176
+ const has = (obj, key) => hasOwnProperty.call(obj, key);
177
+ const hasNonNullableKey = (obj, key) => has(obj, key) && obj[key] !== undefined && obj[key] !== null;
203
178
 
204
- var nativePush = Array.prototype.push;
205
- var flatten = function (xs) {
206
- var r = [];
207
- for (var i = 0, len = xs.length; i < len; ++i) {
179
+ const nativePush = Array.prototype.push;
180
+ const flatten = xs => {
181
+ const r = [];
182
+ for (let i = 0, len = xs.length; i < len; ++i) {
208
183
  if (!isArray(xs[i])) {
209
184
  throw new Error('Arr.flatten item ' + i + ' was not an array, input: ' + xs);
210
185
  }
@@ -212,15 +187,11 @@
212
187
  }
213
188
  return r;
214
189
  };
215
- var get = function (xs, i) {
216
- return i >= 0 && i < xs.length ? Optional.some(xs[i]) : Optional.none();
217
- };
218
- var head = function (xs) {
219
- return get(xs, 0);
220
- };
221
- var findMap = function (arr, f) {
222
- for (var i = 0; i < arr.length; i++) {
223
- var r = f(arr[i], i);
190
+ const get = (xs, i) => i >= 0 && i < xs.length ? Optional.some(xs[i]) : Optional.none();
191
+ const head = xs => get(xs, 0);
192
+ const findMap = (arr, f) => {
193
+ for (let i = 0; i < arr.length; i++) {
194
+ const r = f(arr[i], i);
224
195
  if (r.isSome()) {
225
196
  return r;
226
197
  }
@@ -230,7 +201,7 @@
230
201
 
231
202
  typeof window !== 'undefined' ? window : Function('return this;')();
232
203
 
233
- var rawSet = function (dom, key, value) {
204
+ const rawSet = (dom, key, value) => {
234
205
  if (isString(value) || isBoolean(value) || isNumber(value)) {
235
206
  dom.setAttribute(key, value + '');
236
207
  } else {
@@ -238,147 +209,160 @@
238
209
  throw new Error('Attribute value was not simple');
239
210
  }
240
211
  };
241
- var set = function (element, key, value) {
212
+ const set = (element, key, value) => {
242
213
  rawSet(element.dom, key, value);
243
214
  };
244
- var remove = function (element, key) {
215
+ const remove = (element, key) => {
245
216
  element.dom.removeAttribute(key);
246
217
  };
247
218
 
248
- var fromHtml = function (html, scope) {
249
- var doc = scope || document;
250
- var div = doc.createElement('div');
219
+ const fromHtml = (html, scope) => {
220
+ const doc = scope || document;
221
+ const div = doc.createElement('div');
251
222
  div.innerHTML = html;
252
223
  if (!div.hasChildNodes() || div.childNodes.length > 1) {
253
- console.error('HTML does not have a single root node', html);
254
- throw new Error('HTML must have a single root node');
224
+ const message = 'HTML does not have a single root node';
225
+ console.error(message, html);
226
+ throw new Error(message);
255
227
  }
256
228
  return fromDom(div.childNodes[0]);
257
229
  };
258
- var fromTag = function (tag, scope) {
259
- var doc = scope || document;
260
- var node = doc.createElement(tag);
230
+ const fromTag = (tag, scope) => {
231
+ const doc = scope || document;
232
+ const node = doc.createElement(tag);
261
233
  return fromDom(node);
262
234
  };
263
- var fromText = function (text, scope) {
264
- var doc = scope || document;
265
- var node = doc.createTextNode(text);
235
+ const fromText = (text, scope) => {
236
+ const doc = scope || document;
237
+ const node = doc.createTextNode(text);
266
238
  return fromDom(node);
267
239
  };
268
- var fromDom = function (node) {
240
+ const fromDom = node => {
269
241
  if (node === null || node === undefined) {
270
242
  throw new Error('Node cannot be null or undefined');
271
243
  }
272
244
  return { dom: node };
273
245
  };
274
- var fromPoint = function (docElm, x, y) {
275
- return Optional.from(docElm.dom.elementFromPoint(x, y)).map(fromDom);
276
- };
277
- var SugarElement = {
278
- fromHtml: fromHtml,
279
- fromTag: fromTag,
280
- fromText: fromText,
281
- fromDom: fromDom,
282
- fromPoint: fromPoint
246
+ const fromPoint = (docElm, x, y) => Optional.from(docElm.dom.elementFromPoint(x, y)).map(fromDom);
247
+ const SugarElement = {
248
+ fromHtml,
249
+ fromTag,
250
+ fromText,
251
+ fromDom,
252
+ fromPoint
283
253
  };
284
254
 
285
- var global$5 = tinymce.util.Tools.resolve('tinymce.dom.DOMUtils');
255
+ var global$3 = tinymce.util.Tools.resolve('tinymce.dom.DOMUtils');
286
256
 
287
- var global$4 = tinymce.util.Tools.resolve('tinymce.util.Promise');
257
+ var global$2 = tinymce.util.Tools.resolve('tinymce.util.URI');
288
258
 
289
- var global$3 = tinymce.util.Tools.resolve('tinymce.util.URI');
290
-
291
- var global$2 = tinymce.util.Tools.resolve('tinymce.util.XHR');
292
-
293
- var hasDimensions = function (editor) {
294
- return editor.getParam('image_dimensions', true, 'boolean');
295
- };
296
- var hasAdvTab = function (editor) {
297
- return editor.getParam('image_advtab', false, 'boolean');
298
- };
299
- var hasUploadTab = function (editor) {
300
- return editor.getParam('image_uploadtab', true, 'boolean');
301
- };
302
- var getPrependUrl = function (editor) {
303
- return editor.getParam('image_prepend_url', '', 'string');
304
- };
305
- var getClassList = function (editor) {
306
- return editor.getParam('image_class_list');
307
- };
308
- var hasDescription = function (editor) {
309
- return editor.getParam('image_description', true, 'boolean');
310
- };
311
- var hasImageTitle = function (editor) {
312
- return editor.getParam('image_title', false, 'boolean');
313
- };
314
- var hasImageCaption = function (editor) {
315
- return editor.getParam('image_caption', false, 'boolean');
316
- };
317
- var getImageList = function (editor) {
318
- return editor.getParam('image_list', false);
319
- };
320
- var hasUploadUrl = function (editor) {
321
- return isNonNullable(editor.getParam('images_upload_url'));
322
- };
323
- var hasUploadHandler = function (editor) {
324
- return isNonNullable(editor.getParam('images_upload_handler'));
325
- };
326
- var showAccessibilityOptions = function (editor) {
327
- return editor.getParam('a11y_advanced_options', false, 'boolean');
328
- };
329
- var isAutomaticUploadsEnabled = function (editor) {
330
- return editor.getParam('automatic_uploads', true, 'boolean');
331
- };
259
+ const isNotEmpty = s => s.length > 0;
332
260
 
333
- var parseIntAndGetMax = function (val1, val2) {
334
- return Math.max(parseInt(val1, 10), parseInt(val2, 10));
335
- };
336
- var getImageSize = function (url) {
337
- return new global$4(function (callback) {
338
- var img = document.createElement('img');
339
- var done = function (dimensions) {
340
- img.onload = img.onerror = null;
341
- if (img.parentNode) {
342
- img.parentNode.removeChild(img);
343
- }
344
- callback(dimensions);
345
- };
346
- img.onload = function () {
347
- var width = parseIntAndGetMax(img.width, img.clientWidth);
348
- var height = parseIntAndGetMax(img.height, img.clientHeight);
349
- var dimensions = {
350
- width: width,
351
- height: height
261
+ const option = name => editor => editor.options.get(name);
262
+ const register$2 = editor => {
263
+ const registerOption = editor.options.register;
264
+ registerOption('image_dimensions', {
265
+ processor: 'boolean',
266
+ default: true
267
+ });
268
+ registerOption('image_advtab', {
269
+ processor: 'boolean',
270
+ default: false
271
+ });
272
+ registerOption('image_uploadtab', {
273
+ processor: 'boolean',
274
+ default: true
275
+ });
276
+ registerOption('image_prepend_url', {
277
+ processor: 'string',
278
+ default: ''
279
+ });
280
+ registerOption('image_class_list', { processor: 'object[]' });
281
+ registerOption('image_description', {
282
+ processor: 'boolean',
283
+ default: true
284
+ });
285
+ registerOption('image_title', {
286
+ processor: 'boolean',
287
+ default: false
288
+ });
289
+ registerOption('image_caption', {
290
+ processor: 'boolean',
291
+ default: false
292
+ });
293
+ registerOption('image_list', {
294
+ processor: value => {
295
+ const valid = value === false || isString(value) || isArrayOf(value, isObject) || isFunction(value);
296
+ return valid ? {
297
+ value,
298
+ valid
299
+ } : {
300
+ valid: false,
301
+ message: 'Must be false, a string, an array or a function.'
352
302
  };
353
- done(global$4.resolve(dimensions));
354
- };
355
- img.onerror = function () {
356
- done(global$4.reject('Failed to get image dimensions for: ' + url));
357
- };
358
- var style = img.style;
359
- style.visibility = 'hidden';
360
- style.position = 'fixed';
361
- style.bottom = style.left = '0px';
362
- style.width = style.height = 'auto';
363
- document.body.appendChild(img);
364
- img.src = url;
303
+ },
304
+ default: false
365
305
  });
366
306
  };
367
- var removePixelSuffix = function (value) {
307
+ const hasDimensions = option('image_dimensions');
308
+ const hasAdvTab = option('image_advtab');
309
+ const hasUploadTab = option('image_uploadtab');
310
+ const getPrependUrl = option('image_prepend_url');
311
+ const getClassList = option('image_class_list');
312
+ const hasDescription = option('image_description');
313
+ const hasImageTitle = option('image_title');
314
+ const hasImageCaption = option('image_caption');
315
+ const getImageList = option('image_list');
316
+ const showAccessibilityOptions = option('a11y_advanced_options');
317
+ const isAutomaticUploadsEnabled = option('automatic_uploads');
318
+ const hasUploadUrl = editor => isNotEmpty(editor.options.get('images_upload_url'));
319
+ const hasUploadHandler = editor => isNonNullable(editor.options.get('images_upload_handler'));
320
+
321
+ const parseIntAndGetMax = (val1, val2) => Math.max(parseInt(val1, 10), parseInt(val2, 10));
322
+ const getImageSize = url => new Promise(callback => {
323
+ const img = document.createElement('img');
324
+ const done = dimensions => {
325
+ img.onload = img.onerror = null;
326
+ if (img.parentNode) {
327
+ img.parentNode.removeChild(img);
328
+ }
329
+ callback(dimensions);
330
+ };
331
+ img.onload = () => {
332
+ const width = parseIntAndGetMax(img.width, img.clientWidth);
333
+ const height = parseIntAndGetMax(img.height, img.clientHeight);
334
+ const dimensions = {
335
+ width,
336
+ height
337
+ };
338
+ done(Promise.resolve(dimensions));
339
+ };
340
+ img.onerror = () => {
341
+ done(Promise.reject(`Failed to get image dimensions for: ${ url }`));
342
+ };
343
+ const style = img.style;
344
+ style.visibility = 'hidden';
345
+ style.position = 'fixed';
346
+ style.bottom = style.left = '0px';
347
+ style.width = style.height = 'auto';
348
+ document.body.appendChild(img);
349
+ img.src = url;
350
+ });
351
+ const removePixelSuffix = value => {
368
352
  if (value) {
369
353
  value = value.replace(/px$/, '');
370
354
  }
371
355
  return value;
372
356
  };
373
- var addPixelSuffix = function (value) {
357
+ const addPixelSuffix = value => {
374
358
  if (value.length > 0 && /^[0-9]+$/.test(value)) {
375
359
  value += 'px';
376
360
  }
377
361
  return value;
378
362
  };
379
- var mergeMargins = function (css) {
363
+ const mergeMargins = css => {
380
364
  if (css.margin) {
381
- var splitMargin = String(css.margin).split(' ');
365
+ const splitMargin = String(css.margin).split(' ');
382
366
  switch (splitMargin.length) {
383
367
  case 1:
384
368
  css['margin-top'] = css['margin-top'] || splitMargin[0];
@@ -408,13 +392,12 @@
408
392
  }
409
393
  return css;
410
394
  };
411
- var createImageList = function (editor, callback) {
412
- var imageList = getImageList(editor);
395
+ const createImageList = (editor, callback) => {
396
+ const imageList = getImageList(editor);
413
397
  if (isString(imageList)) {
414
- global$2.send({
415
- url: imageList,
416
- success: function (text) {
417
- callback(JSON.parse(text));
398
+ fetch(imageList).then(res => {
399
+ if (res.ok) {
400
+ res.json().then(callback);
418
401
  }
419
402
  });
420
403
  } else if (isFunction(imageList)) {
@@ -423,15 +406,15 @@
423
406
  callback(imageList);
424
407
  }
425
408
  };
426
- var waitLoadImage = function (editor, data, imgElm) {
427
- var selectImage = function () {
409
+ const waitLoadImage = (editor, data, imgElm) => {
410
+ const selectImage = () => {
428
411
  imgElm.onload = imgElm.onerror = null;
429
412
  if (editor.selection) {
430
413
  editor.selection.select(imgElm);
431
414
  editor.nodeChanged();
432
415
  }
433
416
  };
434
- imgElm.onload = function () {
417
+ imgElm.onload = () => {
435
418
  if (!data.width && !data.height && hasDimensions(editor)) {
436
419
  editor.dom.setAttribs(imgElm, {
437
420
  width: String(imgElm.clientWidth),
@@ -442,89 +425,89 @@
442
425
  };
443
426
  imgElm.onerror = selectImage;
444
427
  };
445
- var blobToDataUri = function (blob) {
446
- return new global$4(function (resolve, reject) {
447
- var reader = new FileReader();
448
- reader.onload = function () {
449
- resolve(reader.result);
450
- };
451
- reader.onerror = function () {
452
- reject(reader.error.message);
453
- };
454
- reader.readAsDataURL(blob);
428
+ const blobToDataUri = blob => new Promise((resolve, reject) => {
429
+ const reader = new FileReader();
430
+ reader.onload = () => {
431
+ resolve(reader.result);
432
+ };
433
+ reader.onerror = () => {
434
+ var _a;
435
+ reject((_a = reader.error) === null || _a === void 0 ? void 0 : _a.message);
436
+ };
437
+ reader.readAsDataURL(blob);
438
+ });
439
+ const isPlaceholderImage = imgElm => imgElm.nodeName === 'IMG' && (imgElm.hasAttribute('data-mce-object') || imgElm.hasAttribute('data-mce-placeholder'));
440
+ const isSafeImageUrl = (editor, src) => {
441
+ const getOption = editor.options.get;
442
+ return global$2.isDomSafe(src, 'img', {
443
+ allow_html_data_urls: getOption('allow_html_data_urls'),
444
+ allow_script_urls: getOption('allow_script_urls'),
445
+ allow_svg_data_urls: getOption('allow_svg_data_urls')
455
446
  });
456
447
  };
457
- var isPlaceholderImage = function (imgElm) {
458
- return imgElm.nodeName === 'IMG' && (imgElm.hasAttribute('data-mce-object') || imgElm.hasAttribute('data-mce-placeholder'));
459
- };
460
- var isSafeImageUrl = function (editor, src) {
461
- return global$3.isDomSafe(src, 'img', editor.settings);
462
- };
463
448
 
464
- var DOM = global$5.DOM;
465
- var getHspace = function (image) {
449
+ const DOM = global$3.DOM;
450
+ const getHspace = image => {
466
451
  if (image.style.marginLeft && image.style.marginRight && image.style.marginLeft === image.style.marginRight) {
467
452
  return removePixelSuffix(image.style.marginLeft);
468
453
  } else {
469
454
  return '';
470
455
  }
471
456
  };
472
- var getVspace = function (image) {
457
+ const getVspace = image => {
473
458
  if (image.style.marginTop && image.style.marginBottom && image.style.marginTop === image.style.marginBottom) {
474
459
  return removePixelSuffix(image.style.marginTop);
475
460
  } else {
476
461
  return '';
477
462
  }
478
463
  };
479
- var getBorder = function (image) {
464
+ const getBorder = image => {
480
465
  if (image.style.borderWidth) {
481
466
  return removePixelSuffix(image.style.borderWidth);
482
467
  } else {
483
468
  return '';
484
469
  }
485
470
  };
486
- var getAttrib = function (image, name) {
471
+ const getAttrib = (image, name) => {
472
+ var _a;
487
473
  if (image.hasAttribute(name)) {
488
- return image.getAttribute(name);
474
+ return (_a = image.getAttribute(name)) !== null && _a !== void 0 ? _a : '';
489
475
  } else {
490
476
  return '';
491
477
  }
492
478
  };
493
- var getStyle = function (image, name) {
494
- return image.style[name] ? image.style[name] : '';
495
- };
496
- var hasCaption = function (image) {
497
- return image.parentNode !== null && image.parentNode.nodeName === 'FIGURE';
498
- };
499
- var updateAttrib = function (image, name, value) {
500
- if (value === '') {
479
+ const hasCaption = image => image.parentNode !== null && image.parentNode.nodeName === 'FIGURE';
480
+ const updateAttrib = (image, name, value) => {
481
+ if (value === '' || value === null) {
501
482
  image.removeAttribute(name);
502
483
  } else {
503
484
  image.setAttribute(name, value);
504
485
  }
505
486
  };
506
- var wrapInFigure = function (image) {
507
- var figureElm = DOM.create('figure', { class: 'image' });
487
+ const wrapInFigure = image => {
488
+ const figureElm = DOM.create('figure', { class: 'image' });
508
489
  DOM.insertAfter(figureElm, image);
509
490
  figureElm.appendChild(image);
510
491
  figureElm.appendChild(DOM.create('figcaption', { contentEditable: 'true' }, 'Caption'));
511
492
  figureElm.contentEditable = 'false';
512
493
  };
513
- var removeFigure = function (image) {
514
- var figureElm = image.parentNode;
515
- DOM.insertAfter(image, figureElm);
516
- DOM.remove(figureElm);
494
+ const removeFigure = image => {
495
+ const figureElm = image.parentNode;
496
+ if (isNonNullable(figureElm)) {
497
+ DOM.insertAfter(image, figureElm);
498
+ DOM.remove(figureElm);
499
+ }
517
500
  };
518
- var toggleCaption = function (image) {
501
+ const toggleCaption = image => {
519
502
  if (hasCaption(image)) {
520
503
  removeFigure(image);
521
504
  } else {
522
505
  wrapInFigure(image);
523
506
  }
524
507
  };
525
- var normalizeStyle = function (image, normalizeCss) {
526
- var attrValue = image.getAttribute('style');
527
- var value = normalizeCss(attrValue !== null ? attrValue : '');
508
+ const normalizeStyle = (image, normalizeCss) => {
509
+ const attrValue = image.getAttribute('style');
510
+ const value = normalizeCss(attrValue !== null ? attrValue : '');
528
511
  if (value.length > 0) {
529
512
  image.setAttribute('style', value);
530
513
  image.setAttribute('data-mce-style', value);
@@ -532,78 +515,71 @@
532
515
  image.removeAttribute('style');
533
516
  }
534
517
  };
535
- var setSize = function (name, normalizeCss) {
536
- return function (image, name, value) {
537
- if (image.style[name]) {
538
- image.style[name] = addPixelSuffix(value);
539
- normalizeStyle(image, normalizeCss);
540
- } else {
541
- updateAttrib(image, name, value);
542
- }
543
- };
518
+ const setSize = (name, normalizeCss) => (image, name, value) => {
519
+ const styles = image.style;
520
+ if (styles[name]) {
521
+ styles[name] = addPixelSuffix(value);
522
+ normalizeStyle(image, normalizeCss);
523
+ } else {
524
+ updateAttrib(image, name, value);
525
+ }
544
526
  };
545
- var getSize = function (image, name) {
527
+ const getSize = (image, name) => {
546
528
  if (image.style[name]) {
547
529
  return removePixelSuffix(image.style[name]);
548
530
  } else {
549
531
  return getAttrib(image, name);
550
532
  }
551
533
  };
552
- var setHspace = function (image, value) {
553
- var pxValue = addPixelSuffix(value);
534
+ const setHspace = (image, value) => {
535
+ const pxValue = addPixelSuffix(value);
554
536
  image.style.marginLeft = pxValue;
555
537
  image.style.marginRight = pxValue;
556
538
  };
557
- var setVspace = function (image, value) {
558
- var pxValue = addPixelSuffix(value);
539
+ const setVspace = (image, value) => {
540
+ const pxValue = addPixelSuffix(value);
559
541
  image.style.marginTop = pxValue;
560
542
  image.style.marginBottom = pxValue;
561
543
  };
562
- var setBorder = function (image, value) {
563
- var pxValue = addPixelSuffix(value);
544
+ const setBorder = (image, value) => {
545
+ const pxValue = addPixelSuffix(value);
564
546
  image.style.borderWidth = pxValue;
565
547
  };
566
- var setBorderStyle = function (image, value) {
548
+ const setBorderStyle = (image, value) => {
567
549
  image.style.borderStyle = value;
568
550
  };
569
- var getBorderStyle = function (image) {
570
- return getStyle(image, 'borderStyle');
571
- };
572
- var isFigure = function (elm) {
573
- return elm.nodeName === 'FIGURE';
574
- };
575
- var isImage = function (elm) {
576
- return elm.nodeName === 'IMG';
551
+ const getBorderStyle = image => {
552
+ var _a;
553
+ return (_a = image.style.borderStyle) !== null && _a !== void 0 ? _a : '';
577
554
  };
578
- var getIsDecorative = function (image) {
579
- return DOM.getAttrib(image, 'alt').length === 0 && DOM.getAttrib(image, 'role') === 'presentation';
580
- };
581
- var getAlt = function (image) {
555
+ const isFigure = elm => isNonNullable(elm) && elm.nodeName === 'FIGURE';
556
+ const isImage = elm => elm.nodeName === 'IMG';
557
+ const getIsDecorative = image => DOM.getAttrib(image, 'alt').length === 0 && DOM.getAttrib(image, 'role') === 'presentation';
558
+ const getAlt = image => {
582
559
  if (getIsDecorative(image)) {
583
560
  return '';
584
561
  } else {
585
562
  return getAttrib(image, 'alt');
586
563
  }
587
564
  };
588
- var defaultData = function () {
589
- return {
590
- src: '',
591
- alt: '',
592
- title: '',
593
- width: '',
594
- height: '',
595
- class: '',
596
- style: '',
597
- caption: false,
598
- hspace: '',
599
- vspace: '',
600
- border: '',
601
- borderStyle: '',
602
- isDecorative: false
603
- };
604
- };
605
- var getStyleValue = function (normalizeCss, data) {
606
- var image = document.createElement('img');
565
+ const defaultData = () => ({
566
+ src: '',
567
+ alt: '',
568
+ title: '',
569
+ width: '',
570
+ height: '',
571
+ class: '',
572
+ style: '',
573
+ caption: false,
574
+ hspace: '',
575
+ vspace: '',
576
+ border: '',
577
+ borderStyle: '',
578
+ isDecorative: false
579
+ });
580
+ const getStyleValue = (normalizeCss, data) => {
581
+ var _a;
582
+ const image = document.createElement('img');
607
583
  updateAttrib(image, 'style', data.style);
608
584
  if (getHspace(image) || data.hspace !== '') {
609
585
  setHspace(image, data.hspace);
@@ -617,14 +593,17 @@
617
593
  if (getBorderStyle(image) || data.borderStyle !== '') {
618
594
  setBorderStyle(image, data.borderStyle);
619
595
  }
620
- return normalizeCss(image.getAttribute('style'));
621
- };
622
- var create = function (normalizeCss, data) {
623
- var image = document.createElement('img');
624
- write(normalizeCss, __assign(__assign({}, data), { caption: false }), image);
596
+ return normalizeCss((_a = image.getAttribute('style')) !== null && _a !== void 0 ? _a : '');
597
+ };
598
+ const create = (normalizeCss, data) => {
599
+ const image = document.createElement('img');
600
+ write(normalizeCss, {
601
+ ...data,
602
+ caption: false
603
+ }, image);
625
604
  setAlt(image, data.alt, data.isDecorative);
626
605
  if (data.caption) {
627
- var figure = DOM.create('figure', { class: 'image' });
606
+ const figure = DOM.create('figure', { class: 'image' });
628
607
  figure.appendChild(image);
629
608
  figure.appendChild(DOM.create('figcaption', { contentEditable: 'true' }, 'Caption'));
630
609
  figure.contentEditable = 'false';
@@ -633,39 +612,37 @@
633
612
  return image;
634
613
  }
635
614
  };
636
- var read = function (normalizeCss, image) {
637
- return {
638
- src: getAttrib(image, 'src'),
639
- alt: getAlt(image),
640
- title: getAttrib(image, 'title'),
641
- width: getSize(image, 'width'),
642
- height: getSize(image, 'height'),
643
- class: getAttrib(image, 'class'),
644
- style: normalizeCss(getAttrib(image, 'style')),
645
- caption: hasCaption(image),
646
- hspace: getHspace(image),
647
- vspace: getVspace(image),
648
- border: getBorder(image),
649
- borderStyle: getStyle(image, 'borderStyle'),
650
- isDecorative: getIsDecorative(image)
651
- };
652
- };
653
- var updateProp = function (image, oldData, newData, name, set) {
615
+ const read = (normalizeCss, image) => ({
616
+ src: getAttrib(image, 'src'),
617
+ alt: getAlt(image),
618
+ title: getAttrib(image, 'title'),
619
+ width: getSize(image, 'width'),
620
+ height: getSize(image, 'height'),
621
+ class: getAttrib(image, 'class'),
622
+ style: normalizeCss(getAttrib(image, 'style')),
623
+ caption: hasCaption(image),
624
+ hspace: getHspace(image),
625
+ vspace: getVspace(image),
626
+ border: getBorder(image),
627
+ borderStyle: getBorderStyle(image),
628
+ isDecorative: getIsDecorative(image)
629
+ });
630
+ const updateProp = (image, oldData, newData, name, set) => {
654
631
  if (newData[name] !== oldData[name]) {
655
- set(image, name, newData[name]);
632
+ set(image, name, String(newData[name]));
656
633
  }
657
634
  };
658
- var setAlt = function (image, alt, isDecorative) {
635
+ const setAlt = (image, alt, isDecorative) => {
659
636
  if (isDecorative) {
660
637
  DOM.setAttrib(image, 'role', 'presentation');
661
- var sugarImage = SugarElement.fromDom(image);
638
+ const sugarImage = SugarElement.fromDom(image);
662
639
  set(sugarImage, 'alt', '');
663
640
  } else {
664
641
  if (isNull(alt)) {
665
- var sugarImage = SugarElement.fromDom(image);
642
+ const sugarImage = SugarElement.fromDom(image);
666
643
  remove(sugarImage, 'alt');
667
644
  } else {
668
- var sugarImage = SugarElement.fromDom(image);
645
+ const sugarImage = SugarElement.fromDom(image);
669
646
  set(sugarImage, 'alt', alt);
670
647
  }
671
648
  if (DOM.getAttrib(image, 'role') === 'presentation') {
@@ -673,30 +650,24 @@
673
650
  }
674
651
  }
675
652
  };
676
- var updateAlt = function (image, oldData, newData) {
653
+ const updateAlt = (image, oldData, newData) => {
677
654
  if (newData.alt !== oldData.alt || newData.isDecorative !== oldData.isDecorative) {
678
655
  setAlt(image, newData.alt, newData.isDecorative);
679
656
  }
680
657
  };
681
- var normalized = function (set, normalizeCss) {
682
- return function (image, name, value) {
683
- set(image, value);
684
- normalizeStyle(image, normalizeCss);
685
- };
658
+ const normalized = (set, normalizeCss) => (image, name, value) => {
659
+ set(image, value);
660
+ normalizeStyle(image, normalizeCss);
686
661
  };
687
- var write = function (normalizeCss, newData, image) {
688
- var oldData = read(normalizeCss, image);
689
- updateProp(image, oldData, newData, 'caption', function (image, _name, _value) {
690
- return toggleCaption(image);
691
- });
662
+ const write = (normalizeCss, newData, image) => {
663
+ const oldData = read(normalizeCss, image);
664
+ updateProp(image, oldData, newData, 'caption', (image, _name, _value) => toggleCaption(image));
692
665
  updateProp(image, oldData, newData, 'src', updateAttrib);
693
666
  updateProp(image, oldData, newData, 'title', updateAttrib);
694
667
  updateProp(image, oldData, newData, 'width', setSize('width', normalizeCss));
695
668
  updateProp(image, oldData, newData, 'height', setSize('height', normalizeCss));
696
669
  updateProp(image, oldData, newData, 'class', updateAttrib);
697
- updateProp(image, oldData, newData, 'style', normalized(function (image, value) {
698
- return updateAttrib(image, 'style', value);
699
- }, normalizeCss));
670
+ updateProp(image, oldData, newData, 'style', normalized((image, value) => updateAttrib(image, 'style', value), normalizeCss));
700
671
  updateProp(image, oldData, newData, 'hspace', normalized(setHspace, normalizeCss));
701
672
  updateProp(image, oldData, newData, 'vspace', normalized(setVspace, normalizeCss));
702
673
  updateProp(image, oldData, newData, 'border', normalized(setBorder, normalizeCss));
@@ -704,15 +675,15 @@
704
675
  updateAlt(image, oldData, newData);
705
676
  };
706
677
 
707
- var normalizeCss$1 = function (editor, cssText) {
708
- var css = editor.dom.styles.parse(cssText);
709
- var mergedCss = mergeMargins(css);
710
- var compressed = editor.dom.styles.parse(editor.dom.styles.serialize(mergedCss));
678
+ const normalizeCss$1 = (editor, cssText) => {
679
+ const css = editor.dom.styles.parse(cssText);
680
+ const mergedCss = mergeMargins(css);
681
+ const compressed = editor.dom.styles.parse(editor.dom.styles.serialize(mergedCss));
711
682
  return editor.dom.styles.serialize(compressed);
712
683
  };
713
- var getSelectedImage = function (editor) {
714
- var imgElm = editor.selection.getNode();
715
- var figureElm = editor.dom.getParent(imgElm, 'figure.image');
684
+ const getSelectedImage = editor => {
685
+ const imgElm = editor.selection.getNode();
686
+ const figureElm = editor.dom.getParent(imgElm, 'figure.image');
716
687
  if (figureElm) {
717
688
  return editor.dom.select('img', figureElm)[0];
718
689
  }
@@ -721,48 +692,41 @@
721
692
  }
722
693
  return imgElm;
723
694
  };
724
- var splitTextBlock = function (editor, figure) {
725
- var dom = editor.dom;
726
- var textBlockElements = filter(editor.schema.getTextBlockElements(), function (_, parentElm) {
727
- return !editor.schema.isValidChild(parentElm, 'figure');
728
- });
729
- var textBlock = dom.getParent(figure.parentNode, function (node) {
730
- return hasNonNullableKey(textBlockElements, node.nodeName);
731
- }, editor.getBody());
695
+ const splitTextBlock = (editor, figure) => {
696
+ var _a;
697
+ const dom = editor.dom;
698
+ const textBlockElements = filter(editor.schema.getTextBlockElements(), (_, parentElm) => !editor.schema.isValidChild(parentElm, 'figure'));
699
+ const textBlock = dom.getParent(figure.parentNode, node => hasNonNullableKey(textBlockElements, node.nodeName), editor.getBody());
732
700
  if (textBlock) {
733
- return dom.split(textBlock, figure);
701
+ return (_a = dom.split(textBlock, figure)) !== null && _a !== void 0 ? _a : figure;
734
702
  } else {
735
703
  return figure;
736
704
  }
737
705
  };
738
- var readImageDataFromSelection = function (editor) {
739
- var image = getSelectedImage(editor);
740
- return image ? read(function (css) {
741
- return normalizeCss$1(editor, css);
742
- }, image) : defaultData();
706
+ const readImageDataFromSelection = editor => {
707
+ const image = getSelectedImage(editor);
708
+ return image ? read(css => normalizeCss$1(editor, css), image) : defaultData();
743
709
  };
744
- var insertImageAtCaret = function (editor, data) {
745
- var elm = create(function (css) {
746
- return normalizeCss$1(editor, css);
747
- }, data);
710
+ const insertImageAtCaret = (editor, data) => {
711
+ const elm = create(css => normalizeCss$1(editor, css), data);
748
712
  editor.dom.setAttrib(elm, 'data-mce-id', '__mcenew');
749
713
  editor.focus();
750
714
  editor.selection.setContent(elm.outerHTML);
751
- var insertedElm = editor.dom.select('*[data-mce-id="__mcenew"]')[0];
715
+ const insertedElm = editor.dom.select('*[data-mce-id="__mcenew"]')[0];
752
716
  editor.dom.setAttrib(insertedElm, 'data-mce-id', null);
753
717
  if (isFigure(insertedElm)) {
754
- var figure = splitTextBlock(editor, insertedElm);
718
+ const figure = splitTextBlock(editor, insertedElm);
755
719
  editor.selection.select(figure);
756
720
  } else {
757
721
  editor.selection.select(insertedElm);
758
722
  }
759
723
  };
760
- var syncSrcAttr = function (editor, image) {
724
+ const syncSrcAttr = (editor, image) => {
761
725
  editor.dom.setAttrib(image, 'src', image.getAttribute('src'));
762
726
  };
763
- var deleteImage = function (editor, image) {
727
+ const deleteImage = (editor, image) => {
764
728
  if (image) {
765
- var elm = editor.dom.is(image.parentNode, 'figure.image') ? image.parentNode : image;
729
+ const elm = editor.dom.is(image.parentNode, 'figure.image') ? image.parentNode : image;
766
730
  editor.dom.remove(elm);
767
731
  editor.focus();
768
732
  editor.nodeChanged();
@@ -772,60 +736,63 @@
772
736
  }
773
737
  }
774
738
  };
775
- var writeImageDataToSelection = function (editor, data) {
776
- var image = getSelectedImage(editor);
777
- write(function (css) {
778
- return normalizeCss$1(editor, css);
779
- }, data, image);
780
- syncSrcAttr(editor, image);
781
- if (isFigure(image.parentNode)) {
782
- var figure = image.parentNode;
783
- splitTextBlock(editor, figure);
784
- editor.selection.select(image.parentNode);
785
- } else {
786
- editor.selection.select(image);
787
- waitLoadImage(editor, data, image);
739
+ const writeImageDataToSelection = (editor, data) => {
740
+ const image = getSelectedImage(editor);
741
+ if (image) {
742
+ write(css => normalizeCss$1(editor, css), data, image);
743
+ syncSrcAttr(editor, image);
744
+ if (isFigure(image.parentNode)) {
745
+ const figure = image.parentNode;
746
+ splitTextBlock(editor, figure);
747
+ editor.selection.select(image.parentNode);
748
+ } else {
749
+ editor.selection.select(image);
750
+ waitLoadImage(editor, data, image);
751
+ }
788
752
  }
789
753
  };
790
- var sanitizeImageData = function (editor, data) {
791
- var src = data.src;
792
- return __assign(__assign({}, data), { src: isSafeImageUrl(editor, src) ? src : '' });
754
+ const sanitizeImageData = (editor, data) => {
755
+ const src = data.src;
756
+ return {
757
+ ...data,
758
+ src: isSafeImageUrl(editor, src) ? src : ''
759
+ };
793
760
  };
794
- var insertOrUpdateImage = function (editor, partialData) {
795
- var image = getSelectedImage(editor);
761
+ const insertOrUpdateImage = (editor, partialData) => {
762
+ const image = getSelectedImage(editor);
796
763
  if (image) {
797
- var selectedImageData = read(function (css) {
798
- return normalizeCss$1(editor, css);
799
- }, image);
800
- var data = __assign(__assign({}, selectedImageData), partialData);
801
- var sanitizedData = sanitizeImageData(editor, data);
764
+ const selectedImageData = read(css => normalizeCss$1(editor, css), image);
765
+ const data = {
766
+ ...selectedImageData,
767
+ ...partialData
768
+ };
769
+ const sanitizedData = sanitizeImageData(editor, data);
802
770
  if (data.src) {
803
771
  writeImageDataToSelection(editor, sanitizedData);
804
772
  } else {
805
773
  deleteImage(editor, image);
806
774
  }
807
775
  } else if (partialData.src) {
808
- insertImageAtCaret(editor, __assign(__assign({}, defaultData()), partialData));
776
+ insertImageAtCaret(editor, {
777
+ ...defaultData(),
778
+ ...partialData
779
+ });
809
780
  }
810
781
  };
811
782
 
812
- var deep = function (old, nu) {
813
- var bothObjects = isObject(old) && isObject(nu);
783
+ const deep = (old, nu) => {
784
+ const bothObjects = isPlainObject(old) && isPlainObject(nu);
814
785
  return bothObjects ? deepMerge(old, nu) : nu;
815
786
  };
816
- var baseMerge = function (merger) {
817
- return function () {
818
- var objects = [];
819
- for (var _i = 0; _i < arguments.length; _i++) {
820
- objects[_i] = arguments[_i];
821
- }
787
+ const baseMerge = merger => {
788
+ return (...objects) => {
822
789
  if (objects.length === 0) {
823
- throw new Error('Can\'t merge zero objects');
790
+ throw new Error(`Can't merge zero objects`);
824
791
  }
825
- var ret = {};
826
- for (var j = 0; j < objects.length; j++) {
827
- var curObject = objects[j];
828
- for (var key in curObject) {
792
+ const ret = {};
793
+ for (let j = 0; j < objects.length; j++) {
794
+ const curObject = objects[j];
795
+ for (const key in curObject) {
829
796
  if (has(curObject, key)) {
830
797
  ret[key] = merger(ret[key], curObject[key]);
831
798
  }
@@ -834,20 +801,14 @@
834
801
  return ret;
835
802
  };
836
803
  };
837
- var deepMerge = baseMerge(deep);
838
-
839
- var isNotEmpty = function (s) {
840
- return s.length > 0;
841
- };
804
+ const deepMerge = baseMerge(deep);
842
805
 
843
806
  var global$1 = tinymce.util.Tools.resolve('tinymce.util.ImageUploader');
844
807
 
845
808
  var global = tinymce.util.Tools.resolve('tinymce.util.Tools');
846
809
 
847
- var getValue = function (item) {
848
- return isString(item.value) ? item.value : '';
849
- };
850
- var getText = function (item) {
810
+ const getValue = item => isString(item.value) ? item.value : '';
811
+ const getText = item => {
851
812
  if (isString(item.text)) {
852
813
  return item.text;
853
814
  } else if (isString(item.title)) {
@@ -856,241 +817,206 @@
856
817
  return '';
857
818
  }
858
819
  };
859
- var sanitizeList = function (list, extractValue) {
860
- var out = [];
861
- global.each(list, function (item) {
862
- var text = getText(item);
820
+ const sanitizeList = (list, extractValue) => {
821
+ const out = [];
822
+ global.each(list, item => {
823
+ const text = getText(item);
863
824
  if (item.menu !== undefined) {
864
- var items = sanitizeList(item.menu, extractValue);
825
+ const items = sanitizeList(item.menu, extractValue);
865
826
  out.push({
866
- text: text,
867
- items: items
827
+ text,
828
+ items
868
829
  });
869
830
  } else {
870
- var value = extractValue(item);
831
+ const value = extractValue(item);
871
832
  out.push({
872
- text: text,
873
- value: value
833
+ text,
834
+ value
874
835
  });
875
836
  }
876
837
  });
877
838
  return out;
878
839
  };
879
- var sanitizer = function (extractor) {
880
- if (extractor === void 0) {
881
- extractor = getValue;
840
+ const sanitizer = (extractor = getValue) => list => {
841
+ if (list) {
842
+ return Optional.from(list).map(list => sanitizeList(list, extractor));
843
+ } else {
844
+ return Optional.none();
882
845
  }
883
- return function (list) {
884
- if (list) {
885
- return Optional.from(list).map(function (list) {
886
- return sanitizeList(list, extractor);
887
- });
888
- } else {
889
- return Optional.none();
890
- }
891
- };
892
846
  };
893
- var sanitize = function (list) {
894
- return sanitizer(getValue)(list);
895
- };
896
- var isGroup = function (item) {
897
- return has(item, 'items');
898
- };
899
- var findEntryDelegate = function (list, value) {
900
- return findMap(list, function (item) {
901
- if (isGroup(item)) {
902
- return findEntryDelegate(item.items, value);
903
- } else if (item.value === value) {
904
- return Optional.some(item);
905
- } else {
906
- return Optional.none();
907
- }
908
- });
909
- };
910
- var findEntry = function (optList, value) {
911
- return optList.bind(function (list) {
912
- return findEntryDelegate(list, value);
913
- });
914
- };
915
- var ListUtils = {
916
- sanitizer: sanitizer,
917
- sanitize: sanitize,
918
- findEntry: findEntry
919
- };
920
-
921
- var makeTab$2 = function (_info) {
922
- return {
923
- title: 'Advanced',
924
- name: 'advanced',
925
- items: [
926
- {
927
- type: 'input',
928
- label: 'Style',
929
- name: 'style'
930
- },
931
- {
932
- type: 'grid',
933
- columns: 2,
934
- items: [
935
- {
936
- type: 'input',
937
- label: 'Vertical space',
938
- name: 'vspace',
939
- inputMode: 'numeric'
940
- },
941
- {
942
- type: 'input',
943
- label: 'Horizontal space',
944
- name: 'hspace',
945
- inputMode: 'numeric'
946
- },
947
- {
948
- type: 'input',
949
- label: 'Border width',
950
- name: 'border',
951
- inputMode: 'numeric'
952
- },
953
- {
954
- type: 'listbox',
955
- name: 'borderstyle',
956
- label: 'Border style',
957
- items: [
958
- {
959
- text: 'Select...',
960
- value: ''
961
- },
962
- {
963
- text: 'Solid',
964
- value: 'solid'
965
- },
966
- {
967
- text: 'Dotted',
968
- value: 'dotted'
969
- },
970
- {
971
- text: 'Dashed',
972
- value: 'dashed'
973
- },
974
- {
975
- text: 'Double',
976
- value: 'double'
977
- },
978
- {
979
- text: 'Groove',
980
- value: 'groove'
981
- },
982
- {
983
- text: 'Ridge',
984
- value: 'ridge'
985
- },
986
- {
987
- text: 'Inset',
988
- value: 'inset'
989
- },
990
- {
991
- text: 'Outset',
992
- value: 'outset'
993
- },
994
- {
995
- text: 'None',
996
- value: 'none'
997
- },
998
- {
999
- text: 'Hidden',
1000
- value: 'hidden'
1001
- }
1002
- ]
1003
- }
1004
- ]
1005
- }
1006
- ]
1007
- };
847
+ const sanitize = list => sanitizer(getValue)(list);
848
+ const isGroup = item => has(item, 'items');
849
+ const findEntryDelegate = (list, value) => findMap(list, item => {
850
+ if (isGroup(item)) {
851
+ return findEntryDelegate(item.items, value);
852
+ } else if (item.value === value) {
853
+ return Optional.some(item);
854
+ } else {
855
+ return Optional.none();
856
+ }
857
+ });
858
+ const findEntry = (optList, value) => optList.bind(list => findEntryDelegate(list, value));
859
+ const ListUtils = {
860
+ sanitizer,
861
+ sanitize,
862
+ findEntry
1008
863
  };
1009
- var AdvTab = { makeTab: makeTab$2 };
1010
864
 
1011
- var collect = function (editor) {
1012
- var urlListSanitizer = ListUtils.sanitizer(function (item) {
1013
- return editor.convertURL(item.value || item.url, 'src');
1014
- });
1015
- var futureImageList = new global$4(function (completer) {
1016
- createImageList(editor, function (imageList) {
1017
- completer(urlListSanitizer(imageList).map(function (items) {
1018
- return flatten([
1019
- [{
1020
- text: 'None',
865
+ const makeTab$2 = _info => ({
866
+ title: 'Advanced',
867
+ name: 'advanced',
868
+ items: [{
869
+ type: 'grid',
870
+ columns: 2,
871
+ items: [
872
+ {
873
+ type: 'input',
874
+ label: 'Vertical space',
875
+ name: 'vspace',
876
+ inputMode: 'numeric'
877
+ },
878
+ {
879
+ type: 'input',
880
+ label: 'Horizontal space',
881
+ name: 'hspace',
882
+ inputMode: 'numeric'
883
+ },
884
+ {
885
+ type: 'input',
886
+ label: 'Border width',
887
+ name: 'border',
888
+ inputMode: 'numeric'
889
+ },
890
+ {
891
+ type: 'listbox',
892
+ name: 'borderstyle',
893
+ label: 'Border style',
894
+ items: [
895
+ {
896
+ text: 'Select...',
1021
897
  value: ''
1022
- }],
1023
- items
1024
- ]);
1025
- }));
898
+ },
899
+ {
900
+ text: 'Solid',
901
+ value: 'solid'
902
+ },
903
+ {
904
+ text: 'Dotted',
905
+ value: 'dotted'
906
+ },
907
+ {
908
+ text: 'Dashed',
909
+ value: 'dashed'
910
+ },
911
+ {
912
+ text: 'Double',
913
+ value: 'double'
914
+ },
915
+ {
916
+ text: 'Groove',
917
+ value: 'groove'
918
+ },
919
+ {
920
+ text: 'Ridge',
921
+ value: 'ridge'
922
+ },
923
+ {
924
+ text: 'Inset',
925
+ value: 'inset'
926
+ },
927
+ {
928
+ text: 'Outset',
929
+ value: 'outset'
930
+ },
931
+ {
932
+ text: 'None',
933
+ value: 'none'
934
+ },
935
+ {
936
+ text: 'Hidden',
937
+ value: 'hidden'
938
+ }
939
+ ]
940
+ }
941
+ ]
942
+ }]
943
+ });
944
+ const AdvTab = { makeTab: makeTab$2 };
945
+
946
+ const collect = editor => {
947
+ const urlListSanitizer = ListUtils.sanitizer(item => editor.convertURL(item.value || item.url || '', 'src'));
948
+ const futureImageList = new Promise(completer => {
949
+ createImageList(editor, imageList => {
950
+ completer(urlListSanitizer(imageList).map(items => flatten([
951
+ [{
952
+ text: 'None',
953
+ value: ''
954
+ }],
955
+ items
956
+ ])));
1026
957
  });
1027
958
  });
1028
- var classList = ListUtils.sanitize(getClassList(editor));
1029
- var hasAdvTab$1 = hasAdvTab(editor);
1030
- var hasUploadTab$1 = hasUploadTab(editor);
1031
- var hasUploadUrl$1 = hasUploadUrl(editor);
1032
- var hasUploadHandler$1 = hasUploadHandler(editor);
1033
- var image = readImageDataFromSelection(editor);
1034
- var hasDescription$1 = hasDescription(editor);
1035
- var hasImageTitle$1 = hasImageTitle(editor);
1036
- var hasDimensions$1 = hasDimensions(editor);
1037
- var hasImageCaption$1 = hasImageCaption(editor);
1038
- var hasAccessibilityOptions = showAccessibilityOptions(editor);
1039
- var automaticUploads = isAutomaticUploadsEnabled(editor);
1040
- var prependURL = Optional.some(getPrependUrl(editor)).filter(function (preUrl) {
1041
- return isString(preUrl) && preUrl.length > 0;
1042
- });
1043
- return futureImageList.then(function (imageList) {
1044
- return {
1045
- image: image,
1046
- imageList: imageList,
1047
- classList: classList,
1048
- hasAdvTab: hasAdvTab$1,
1049
- hasUploadTab: hasUploadTab$1,
1050
- hasUploadUrl: hasUploadUrl$1,
1051
- hasUploadHandler: hasUploadHandler$1,
1052
- hasDescription: hasDescription$1,
1053
- hasImageTitle: hasImageTitle$1,
1054
- hasDimensions: hasDimensions$1,
1055
- hasImageCaption: hasImageCaption$1,
1056
- prependURL: prependURL,
1057
- hasAccessibilityOptions: hasAccessibilityOptions,
1058
- automaticUploads: automaticUploads
1059
- };
1060
- });
959
+ const classList = ListUtils.sanitize(getClassList(editor));
960
+ const hasAdvTab$1 = hasAdvTab(editor);
961
+ const hasUploadTab$1 = hasUploadTab(editor);
962
+ const hasUploadUrl$1 = hasUploadUrl(editor);
963
+ const hasUploadHandler$1 = hasUploadHandler(editor);
964
+ const image = readImageDataFromSelection(editor);
965
+ const hasDescription$1 = hasDescription(editor);
966
+ const hasImageTitle$1 = hasImageTitle(editor);
967
+ const hasDimensions$1 = hasDimensions(editor);
968
+ const hasImageCaption$1 = hasImageCaption(editor);
969
+ const hasAccessibilityOptions = showAccessibilityOptions(editor);
970
+ const automaticUploads = isAutomaticUploadsEnabled(editor);
971
+ const prependURL = Optional.some(getPrependUrl(editor)).filter(preUrl => isString(preUrl) && preUrl.length > 0);
972
+ return futureImageList.then(imageList => ({
973
+ image,
974
+ imageList,
975
+ classList,
976
+ hasAdvTab: hasAdvTab$1,
977
+ hasUploadTab: hasUploadTab$1,
978
+ hasUploadUrl: hasUploadUrl$1,
979
+ hasUploadHandler: hasUploadHandler$1,
980
+ hasDescription: hasDescription$1,
981
+ hasImageTitle: hasImageTitle$1,
982
+ hasDimensions: hasDimensions$1,
983
+ hasImageCaption: hasImageCaption$1,
984
+ prependURL,
985
+ hasAccessibilityOptions,
986
+ automaticUploads
987
+ }));
1061
988
  };
1062
989
 
1063
- var makeItems = function (info) {
1064
- var imageUrl = {
990
+ const makeItems = info => {
991
+ const imageUrl = {
1065
992
  name: 'src',
1066
993
  type: 'urlinput',
1067
994
  filetype: 'image',
1068
- label: 'Source'
995
+ label: 'Source',
996
+ picker_text: 'Browse files'
1069
997
  };
1070
- var imageList = info.imageList.map(function (items) {
1071
- return {
1072
- name: 'images',
1073
- type: 'listbox',
1074
- label: 'Image list',
1075
- items: items
1076
- };
1077
- });
1078
- var imageDescription = {
998
+ const imageList = info.imageList.map(items => ({
999
+ name: 'images',
1000
+ type: 'listbox',
1001
+ label: 'Image list',
1002
+ items
1003
+ }));
1004
+ const imageDescription = {
1079
1005
  name: 'alt',
1080
1006
  type: 'input',
1081
1007
  label: 'Alternative description',
1082
- disabled: info.hasAccessibilityOptions && info.image.isDecorative
1008
+ enabled: !(info.hasAccessibilityOptions && info.image.isDecorative)
1083
1009
  };
1084
- var imageTitle = {
1010
+ const imageTitle = {
1085
1011
  name: 'title',
1086
1012
  type: 'input',
1087
1013
  label: 'Image title'
1088
1014
  };
1089
- var imageDimensions = {
1015
+ const imageDimensions = {
1090
1016
  name: 'dimensions',
1091
1017
  type: 'sizeinput'
1092
1018
  };
1093
- var isDecorative = {
1019
+ const isDecorative = {
1094
1020
  type: 'label',
1095
1021
  label: 'Accessibility',
1096
1022
  items: [{
@@ -1099,15 +1025,13 @@
1099
1025
  label: 'Image is decorative'
1100
1026
  }]
1101
1027
  };
1102
- var classList = info.classList.map(function (items) {
1103
- return {
1104
- name: 'classes',
1105
- type: 'listbox',
1106
- label: 'Class',
1107
- items: items
1108
- };
1109
- });
1110
- var caption = {
1028
+ const classList = info.classList.map(items => ({
1029
+ name: 'classes',
1030
+ type: 'listbox',
1031
+ label: 'Class',
1032
+ items
1033
+ }));
1034
+ const caption = {
1111
1035
  type: 'label',
1112
1036
  label: 'Caption',
1113
1037
  items: [{
@@ -1116,12 +1040,10 @@
1116
1040
  label: 'Show caption'
1117
1041
  }]
1118
1042
  };
1119
- var getDialogContainerType = function (useColumns) {
1120
- return useColumns ? {
1121
- type: 'grid',
1122
- columns: 2
1123
- } : { type: 'panel' };
1124
- };
1043
+ const getDialogContainerType = useColumns => useColumns ? {
1044
+ type: 'grid',
1045
+ columns: 2
1046
+ } : { type: 'panel' };
1125
1047
  return flatten([
1126
1048
  [imageUrl],
1127
1049
  imageList.toArray(),
@@ -1129,90 +1051,83 @@
1129
1051
  info.hasDescription ? [imageDescription] : [],
1130
1052
  info.hasImageTitle ? [imageTitle] : [],
1131
1053
  info.hasDimensions ? [imageDimensions] : [],
1132
- [__assign(__assign({}, getDialogContainerType(info.classList.isSome() && info.hasImageCaption)), {
1054
+ [{
1055
+ ...getDialogContainerType(info.classList.isSome() && info.hasImageCaption),
1133
1056
  items: flatten([
1134
1057
  classList.toArray(),
1135
1058
  info.hasImageCaption ? [caption] : []
1136
1059
  ])
1137
- })]
1060
+ }]
1138
1061
  ]);
1139
1062
  };
1140
- var makeTab$1 = function (info) {
1141
- return {
1142
- title: 'General',
1143
- name: 'general',
1144
- items: makeItems(info)
1145
- };
1146
- };
1147
- var MainTab = {
1063
+ const makeTab$1 = info => ({
1064
+ title: 'General',
1065
+ name: 'general',
1066
+ items: makeItems(info)
1067
+ });
1068
+ const MainTab = {
1148
1069
  makeTab: makeTab$1,
1149
- makeItems: makeItems
1070
+ makeItems
1150
1071
  };
1151
1072
 
1152
- var makeTab = function (_info) {
1153
- var items = [{
1073
+ const makeTab = _info => {
1074
+ const items = [{
1154
1075
  type: 'dropzone',
1155
1076
  name: 'fileinput'
1156
1077
  }];
1157
1078
  return {
1158
1079
  title: 'Upload',
1159
1080
  name: 'upload',
1160
- items: items
1081
+ items
1161
1082
  };
1162
1083
  };
1163
- var UploadTab = { makeTab: makeTab };
1084
+ const UploadTab = { makeTab };
1164
1085
 
1165
- var createState = function (info) {
1166
- return {
1167
- prevImage: ListUtils.findEntry(info.imageList, info.image.src),
1168
- prevAlt: info.image.alt,
1169
- open: true
1170
- };
1171
- };
1172
- var fromImageData = function (image) {
1173
- return {
1174
- src: {
1175
- value: image.src,
1176
- meta: {}
1177
- },
1178
- images: image.src,
1179
- alt: image.alt,
1180
- title: image.title,
1181
- dimensions: {
1182
- width: image.width,
1183
- height: image.height
1184
- },
1185
- classes: image.class,
1186
- caption: image.caption,
1187
- style: image.style,
1188
- vspace: image.vspace,
1189
- border: image.border,
1190
- hspace: image.hspace,
1191
- borderstyle: image.borderStyle,
1192
- fileinput: [],
1193
- isDecorative: image.isDecorative
1194
- };
1195
- };
1196
- var toImageData = function (data, removeEmptyAlt) {
1197
- return {
1198
- src: data.src.value,
1199
- alt: data.alt.length === 0 && removeEmptyAlt ? null : data.alt,
1200
- title: data.title,
1201
- width: data.dimensions.width,
1202
- height: data.dimensions.height,
1203
- class: data.classes,
1204
- style: data.style,
1205
- caption: data.caption,
1206
- hspace: data.hspace,
1207
- vspace: data.vspace,
1208
- border: data.border,
1209
- borderStyle: data.borderstyle,
1210
- isDecorative: data.isDecorative
1211
- };
1212
- };
1213
- var addPrependUrl2 = function (info, srcURL) {
1086
+ const createState = info => ({
1087
+ prevImage: ListUtils.findEntry(info.imageList, info.image.src),
1088
+ prevAlt: info.image.alt,
1089
+ open: true
1090
+ });
1091
+ const fromImageData = image => ({
1092
+ src: {
1093
+ value: image.src,
1094
+ meta: {}
1095
+ },
1096
+ images: image.src,
1097
+ alt: image.alt,
1098
+ title: image.title,
1099
+ dimensions: {
1100
+ width: image.width,
1101
+ height: image.height
1102
+ },
1103
+ classes: image.class,
1104
+ caption: image.caption,
1105
+ style: image.style,
1106
+ vspace: image.vspace,
1107
+ border: image.border,
1108
+ hspace: image.hspace,
1109
+ borderstyle: image.borderStyle,
1110
+ fileinput: [],
1111
+ isDecorative: image.isDecorative
1112
+ });
1113
+ const toImageData = (data, removeEmptyAlt) => ({
1114
+ src: data.src.value,
1115
+ alt: (data.alt === null || data.alt.length === 0) && removeEmptyAlt ? null : data.alt,
1116
+ title: data.title,
1117
+ width: data.dimensions.width,
1118
+ height: data.dimensions.height,
1119
+ class: data.classes,
1120
+ style: data.style,
1121
+ caption: data.caption,
1122
+ hspace: data.hspace,
1123
+ vspace: data.vspace,
1124
+ border: data.border,
1125
+ borderStyle: data.borderstyle,
1126
+ isDecorative: data.isDecorative
1127
+ });
1128
+ const addPrependUrl2 = (info, srcURL) => {
1214
1129
  if (!/^(?:[a-zA-Z]+:)?\/\//.test(srcURL)) {
1215
- return info.prependURL.bind(function (prependUrl) {
1130
+ return info.prependURL.bind(prependUrl => {
1216
1131
  if (srcURL.substring(0, prependUrl.length) !== prependUrl) {
1217
1132
  return Optional.some(prependUrl + srcURL);
1218
1133
  }
@@ -1221,9 +1136,9 @@
1221
1136
  }
1222
1137
  return Optional.none();
1223
1138
  };
1224
- var addPrependUrl = function (info, api) {
1225
- var data = api.getData();
1226
- addPrependUrl2(info, data.src.value).each(function (srcURL) {
1139
+ const addPrependUrl = (info, api) => {
1140
+ const data = api.getData();
1141
+ addPrependUrl2(info, data.src.value).each(srcURL => {
1227
1142
  api.setData({
1228
1143
  src: {
1229
1144
  value: srcURL,
@@ -1232,7 +1147,7 @@
1232
1147
  });
1233
1148
  });
1234
1149
  };
1235
- var formFillFromMeta2 = function (info, data, meta) {
1150
+ const formFillFromMeta2 = (info, data, meta) => {
1236
1151
  if (info.hasDescription && isString(meta.alt)) {
1237
1152
  data.alt = meta.alt;
1238
1153
  }
@@ -1251,7 +1166,7 @@
1251
1166
  }
1252
1167
  }
1253
1168
  if (isString(meta.class)) {
1254
- ListUtils.findEntry(info.classList, meta.class).each(function (entry) {
1169
+ ListUtils.findEntry(info.classList, meta.class).each(entry => {
1255
1170
  data.classes = entry.value;
1256
1171
  });
1257
1172
  }
@@ -1278,28 +1193,26 @@
1278
1193
  }
1279
1194
  }
1280
1195
  };
1281
- var formFillFromMeta = function (info, api) {
1282
- var data = api.getData();
1283
- var meta = data.src.meta;
1196
+ const formFillFromMeta = (info, api) => {
1197
+ const data = api.getData();
1198
+ const meta = data.src.meta;
1284
1199
  if (meta !== undefined) {
1285
- var newData = deepMerge({}, data);
1200
+ const newData = deepMerge({}, data);
1286
1201
  formFillFromMeta2(info, newData, meta);
1287
1202
  api.setData(newData);
1288
1203
  }
1289
1204
  };
1290
- var calculateImageSize = function (helpers, info, state, api) {
1291
- var data = api.getData();
1292
- var url = data.src.value;
1293
- var meta = data.src.meta || {};
1205
+ const calculateImageSize = (helpers, info, state, api) => {
1206
+ const data = api.getData();
1207
+ const url = data.src.value;
1208
+ const meta = data.src.meta || {};
1294
1209
  if (!meta.width && !meta.height && info.hasDimensions) {
1295
1210
  if (isNotEmpty(url)) {
1296
- helpers.imageSize(url).then(function (size) {
1211
+ helpers.imageSize(url).then(size => {
1297
1212
  if (state.open) {
1298
1213
  api.setData({ dimensions: size });
1299
1214
  }
1300
- }).catch(function (e) {
1301
- return console.error(e);
1302
- });
1215
+ }).catch(e => console.error(e));
1303
1216
  } else {
1304
1217
  api.setData({
1305
1218
  dimensions: {
@@ -1310,29 +1223,23 @@
1310
1223
  }
1311
1224
  }
1312
1225
  };
1313
- var updateImagesDropdown = function (info, state, api) {
1314
- var data = api.getData();
1315
- var image = ListUtils.findEntry(info.imageList, data.src.value);
1226
+ const updateImagesDropdown = (info, state, api) => {
1227
+ const data = api.getData();
1228
+ const image = ListUtils.findEntry(info.imageList, data.src.value);
1316
1229
  state.prevImage = image;
1317
- api.setData({
1318
- images: image.map(function (entry) {
1319
- return entry.value;
1320
- }).getOr('')
1321
- });
1230
+ api.setData({ images: image.map(entry => entry.value).getOr('') });
1322
1231
  };
1323
- var changeSrc = function (helpers, info, state, api) {
1232
+ const changeSrc = (helpers, info, state, api) => {
1324
1233
  addPrependUrl(info, api);
1325
1234
  formFillFromMeta(info, api);
1326
1235
  calculateImageSize(helpers, info, state, api);
1327
1236
  updateImagesDropdown(info, state, api);
1328
1237
  };
1329
- var changeImages = function (helpers, info, state, api) {
1330
- var data = api.getData();
1331
- var image = ListUtils.findEntry(info.imageList, data.images);
1332
- image.each(function (img) {
1333
- var updateAlt = data.alt === '' || state.prevImage.map(function (image) {
1334
- return image.text === data.alt;
1335
- }).getOr(false);
1238
+ const changeImages = (helpers, info, state, api) => {
1239
+ const data = api.getData();
1240
+ const image = ListUtils.findEntry(info.imageList, data.images);
1241
+ image.each(img => {
1242
+ const updateAlt = data.alt === '' || state.prevImage.map(image => image.text === data.alt).getOr(false);
1336
1243
  if (updateAlt) {
1337
1244
  if (img.value === '') {
1338
1245
  api.setData({
@@ -1352,55 +1259,18 @@
1352
1259
  state.prevImage = image;
1353
1260
  changeSrc(helpers, info, state, api);
1354
1261
  };
1355
- var calcVSpace = function (css) {
1356
- var matchingTopBottom = css['margin-top'] && css['margin-bottom'] && css['margin-top'] === css['margin-bottom'];
1357
- return matchingTopBottom ? removePixelSuffix(String(css['margin-top'])) : '';
1358
- };
1359
- var calcHSpace = function (css) {
1360
- var matchingLeftRight = css['margin-right'] && css['margin-left'] && css['margin-right'] === css['margin-left'];
1361
- return matchingLeftRight ? removePixelSuffix(String(css['margin-right'])) : '';
1362
- };
1363
- var calcBorderWidth = function (css) {
1364
- return css['border-width'] ? removePixelSuffix(String(css['border-width'])) : '';
1365
- };
1366
- var calcBorderStyle = function (css) {
1367
- return css['border-style'] ? String(css['border-style']) : '';
1368
- };
1369
- var calcStyle = function (parseStyle, serializeStyle, css) {
1370
- return serializeStyle(parseStyle(serializeStyle(css)));
1371
- };
1372
- var changeStyle2 = function (parseStyle, serializeStyle, data) {
1373
- var css = mergeMargins(parseStyle(data.style));
1374
- var dataCopy = deepMerge({}, data);
1375
- dataCopy.vspace = calcVSpace(css);
1376
- dataCopy.hspace = calcHSpace(css);
1377
- dataCopy.border = calcBorderWidth(css);
1378
- dataCopy.borderstyle = calcBorderStyle(css);
1379
- dataCopy.style = calcStyle(parseStyle, serializeStyle, css);
1380
- return dataCopy;
1381
- };
1382
- var changeStyle = function (helpers, api) {
1383
- var data = api.getData();
1384
- var newData = changeStyle2(helpers.parseStyle, helpers.serializeStyle, data);
1385
- api.setData(newData);
1386
- };
1387
- var changeAStyle = function (helpers, info, api) {
1388
- var data = deepMerge(fromImageData(info.image), api.getData());
1389
- var style = getStyleValue(helpers.normalizeCss, toImageData(data, false));
1390
- api.setData({ style: style });
1391
- };
1392
- var changeFileInput = function (helpers, info, state, api) {
1393
- var data = api.getData();
1262
+ const changeFileInput = (helpers, info, state, api) => {
1263
+ const data = api.getData();
1394
1264
  api.block('Uploading image');
1395
- head(data.fileinput).fold(function () {
1265
+ head(data.fileinput).fold(() => {
1396
1266
  api.unblock();
1397
- }, function (file) {
1398
- var blobUri = URL.createObjectURL(file);
1399
- var finalize = function () {
1267
+ }, file => {
1268
+ const blobUri = URL.createObjectURL(file);
1269
+ const finalize = () => {
1400
1270
  api.unblock();
1401
1271
  URL.revokeObjectURL(blobUri);
1402
1272
  };
1403
- var updateSrcAndSwitchTab = function (url) {
1273
+ const updateSrcAndSwitchTab = url => {
1404
1274
  api.setData({
1405
1275
  src: {
1406
1276
  value: url,
@@ -1410,13 +1280,13 @@
1410
1280
  api.showTab('general');
1411
1281
  changeSrc(helpers, info, state, api);
1412
1282
  };
1413
- blobToDataUri(file).then(function (dataUrl) {
1414
- var blobInfo = helpers.createBlobCache(file, blobUri, dataUrl);
1283
+ blobToDataUri(file).then(dataUrl => {
1284
+ const blobInfo = helpers.createBlobCache(file, blobUri, dataUrl);
1415
1285
  if (info.automaticUploads) {
1416
- helpers.uploadImage(blobInfo).then(function (result) {
1286
+ helpers.uploadImage(blobInfo).then(result => {
1417
1287
  updateSrcAndSwitchTab(result.url);
1418
1288
  finalize();
1419
- }).catch(function (err) {
1289
+ }).catch(err => {
1420
1290
  finalize();
1421
1291
  helpers.alertErr(err);
1422
1292
  });
@@ -1428,37 +1298,25 @@
1428
1298
  });
1429
1299
  });
1430
1300
  };
1431
- var changeHandler = function (helpers, info, state) {
1432
- return function (api, evt) {
1433
- if (evt.name === 'src') {
1434
- changeSrc(helpers, info, state, api);
1435
- } else if (evt.name === 'images') {
1436
- changeImages(helpers, info, state, api);
1437
- } else if (evt.name === 'alt') {
1438
- state.prevAlt = api.getData().alt;
1439
- } else if (evt.name === 'style') {
1440
- changeStyle(helpers, api);
1441
- } else if (evt.name === 'vspace' || evt.name === 'hspace' || evt.name === 'border' || evt.name === 'borderstyle') {
1442
- changeAStyle(helpers, info, api);
1443
- } else if (evt.name === 'fileinput') {
1444
- changeFileInput(helpers, info, state, api);
1445
- } else if (evt.name === 'isDecorative') {
1446
- if (api.getData().isDecorative) {
1447
- api.disable('alt');
1448
- } else {
1449
- api.enable('alt');
1450
- }
1451
- }
1452
- };
1301
+ const changeHandler = (helpers, info, state) => (api, evt) => {
1302
+ if (evt.name === 'src') {
1303
+ changeSrc(helpers, info, state, api);
1304
+ } else if (evt.name === 'images') {
1305
+ changeImages(helpers, info, state, api);
1306
+ } else if (evt.name === 'alt') {
1307
+ state.prevAlt = api.getData().alt;
1308
+ } else if (evt.name === 'fileinput') {
1309
+ changeFileInput(helpers, info, state, api);
1310
+ } else if (evt.name === 'isDecorative') {
1311
+ api.setEnabled('alt', !api.getData().isDecorative);
1312
+ }
1453
1313
  };
1454
- var closeHandler = function (state) {
1455
- return function () {
1456
- state.open = false;
1457
- };
1314
+ const closeHandler = state => () => {
1315
+ state.open = false;
1458
1316
  };
1459
- var makeDialogBody = function (info) {
1317
+ const makeDialogBody = info => {
1460
1318
  if (info.hasAdvTab || info.hasUploadUrl || info.hasUploadHandler) {
1461
- var tabPanel = {
1319
+ const tabPanel = {
1462
1320
  type: 'tabpanel',
1463
1321
  tabs: flatten([
1464
1322
  [MainTab.makeTab(info)],
@@ -1468,119 +1326,67 @@
1468
1326
  };
1469
1327
  return tabPanel;
1470
1328
  } else {
1471
- var panel = {
1329
+ const panel = {
1472
1330
  type: 'panel',
1473
1331
  items: MainTab.makeItems(info)
1474
1332
  };
1475
1333
  return panel;
1476
1334
  }
1477
1335
  };
1478
- var makeDialog = function (helpers) {
1479
- return function (info) {
1480
- var state = createState(info);
1481
- return {
1482
- title: 'Insert/Edit Image',
1483
- size: 'normal',
1484
- body: makeDialogBody(info),
1485
- buttons: [
1486
- {
1487
- type: 'cancel',
1488
- name: 'cancel',
1489
- text: 'Cancel'
1490
- },
1491
- {
1492
- type: 'submit',
1493
- name: 'save',
1494
- text: 'Save',
1495
- primary: true
1496
- }
1497
- ],
1498
- initialData: fromImageData(info.image),
1499
- onSubmit: helpers.onSubmit(info),
1500
- onChange: changeHandler(helpers, info, state),
1501
- onClose: closeHandler(state)
1502
- };
1503
- };
1504
- };
1505
- var submitHandler = function (editor) {
1506
- return function (info) {
1507
- return function (api) {
1508
- var data = deepMerge(fromImageData(info.image), api.getData());
1509
- editor.execCommand('mceUpdateImage', false, toImageData(data, info.hasAccessibilityOptions));
1510
- editor.editorUpload.uploadImagesAuto();
1511
- api.close();
1512
- };
1513
- };
1514
- };
1515
- var imageSize = function (editor) {
1516
- return function (url) {
1517
- if (!isSafeImageUrl(editor, url)) {
1518
- return global$4.resolve({
1519
- width: '',
1520
- height: ''
1521
- });
1522
- } else {
1523
- return getImageSize(editor.documentBaseURI.toAbsolute(url)).then(function (dimensions) {
1524
- return {
1525
- width: String(dimensions.width),
1526
- height: String(dimensions.height)
1527
- };
1528
- });
1529
- }
1336
+ const submitHandler = (editor, info, helpers) => api => {
1337
+ const data = deepMerge(fromImageData(info.image), api.getData());
1338
+ const finalData = {
1339
+ ...data,
1340
+ style: getStyleValue(helpers.normalizeCss, toImageData(data, false))
1530
1341
  };
1531
- };
1532
- var createBlobCache = function (editor) {
1533
- return function (file, blobUri, dataUrl) {
1534
- return editor.editorUpload.blobCache.create({
1535
- blob: file,
1536
- blobUri: blobUri,
1537
- name: file.name ? file.name.replace(/\.[^\.]+$/, '') : null,
1538
- filename: file.name,
1539
- base64: dataUrl.split(',')[1]
1342
+ editor.execCommand('mceUpdateImage', false, toImageData(finalData, info.hasAccessibilityOptions));
1343
+ editor.editorUpload.uploadImagesAuto();
1344
+ api.close();
1345
+ };
1346
+ const imageSize = editor => url => {
1347
+ if (!isSafeImageUrl(editor, url)) {
1348
+ return Promise.resolve({
1349
+ width: '',
1350
+ height: ''
1540
1351
  });
1541
- };
1542
- };
1543
- var addToBlobCache = function (editor) {
1544
- return function (blobInfo) {
1545
- editor.editorUpload.blobCache.add(blobInfo);
1546
- };
1547
- };
1548
- var alertErr = function (editor) {
1549
- return function (message) {
1550
- editor.windowManager.alert(message);
1551
- };
1552
- };
1553
- var normalizeCss = function (editor) {
1554
- return function (cssText) {
1555
- return normalizeCss$1(editor, cssText);
1556
- };
1557
- };
1558
- var parseStyle = function (editor) {
1559
- return function (cssText) {
1560
- return editor.dom.parseStyle(cssText);
1561
- };
1562
- };
1563
- var serializeStyle = function (editor) {
1564
- return function (stylesArg, name) {
1565
- return editor.dom.serializeStyle(stylesArg, name);
1566
- };
1352
+ } else {
1353
+ return getImageSize(editor.documentBaseURI.toAbsolute(url)).then(dimensions => ({
1354
+ width: String(dimensions.width),
1355
+ height: String(dimensions.height)
1356
+ }));
1357
+ }
1567
1358
  };
1568
- var uploadImage = function (editor) {
1569
- return function (blobInfo) {
1570
- return global$1(editor).upload([blobInfo], false).then(function (results) {
1571
- if (results.length === 0) {
1572
- return global$4.reject('Failed to upload image');
1573
- } else if (results[0].status === false) {
1574
- return global$4.reject(results[0].error.message);
1575
- } else {
1576
- return results[0];
1577
- }
1578
- });
1579
- };
1359
+ const createBlobCache = editor => (file, blobUri, dataUrl) => {
1360
+ var _a;
1361
+ return editor.editorUpload.blobCache.create({
1362
+ blob: file,
1363
+ blobUri,
1364
+ name: (_a = file.name) === null || _a === void 0 ? void 0 : _a.replace(/\.[^\.]+$/, ''),
1365
+ filename: file.name,
1366
+ base64: dataUrl.split(',')[1]
1367
+ });
1580
1368
  };
1581
- var Dialog = function (editor) {
1582
- var helpers = {
1583
- onSubmit: submitHandler(editor),
1369
+ const addToBlobCache = editor => blobInfo => {
1370
+ editor.editorUpload.blobCache.add(blobInfo);
1371
+ };
1372
+ const alertErr = editor => message => {
1373
+ editor.windowManager.alert(message);
1374
+ };
1375
+ const normalizeCss = editor => cssText => normalizeCss$1(editor, cssText);
1376
+ const parseStyle = editor => cssText => editor.dom.parseStyle(cssText);
1377
+ const serializeStyle = editor => (stylesArg, name) => editor.dom.serializeStyle(stylesArg, name);
1378
+ const uploadImage = editor => blobInfo => global$1(editor).upload([blobInfo], false).then(results => {
1379
+ var _a;
1380
+ if (results.length === 0) {
1381
+ return Promise.reject('Failed to upload image');
1382
+ } else if (results[0].status === false) {
1383
+ return Promise.reject((_a = results[0].error) === null || _a === void 0 ? void 0 : _a.message);
1384
+ } else {
1385
+ return results[0];
1386
+ }
1387
+ });
1388
+ const Dialog = editor => {
1389
+ const helpers = {
1584
1390
  imageSize: imageSize(editor),
1585
1391
  addToBlobCache: addToBlobCache(editor),
1586
1392
  createBlobCache: createBlobCache(editor),
@@ -1590,77 +1396,110 @@
1590
1396
  serializeStyle: serializeStyle(editor),
1591
1397
  uploadImage: uploadImage(editor)
1592
1398
  };
1593
- var open = function () {
1594
- collect(editor).then(makeDialog(helpers)).then(editor.windowManager.open);
1399
+ const open = () => {
1400
+ collect(editor).then(info => {
1401
+ const state = createState(info);
1402
+ return {
1403
+ title: 'Insert/Edit Image',
1404
+ size: 'normal',
1405
+ body: makeDialogBody(info),
1406
+ buttons: [
1407
+ {
1408
+ type: 'cancel',
1409
+ name: 'cancel',
1410
+ text: 'Cancel'
1411
+ },
1412
+ {
1413
+ type: 'submit',
1414
+ name: 'save',
1415
+ text: 'Save',
1416
+ primary: true
1417
+ }
1418
+ ],
1419
+ initialData: fromImageData(info.image),
1420
+ onSubmit: submitHandler(editor, info, helpers),
1421
+ onChange: changeHandler(helpers, info, state),
1422
+ onClose: closeHandler(state)
1423
+ };
1424
+ }).then(editor.windowManager.open);
1595
1425
  };
1596
- return { open: open };
1426
+ return { open };
1597
1427
  };
1598
1428
 
1599
- var register$1 = function (editor) {
1429
+ const register$1 = editor => {
1600
1430
  editor.addCommand('mceImage', Dialog(editor).open);
1601
- editor.addCommand('mceUpdateImage', function (_ui, data) {
1602
- editor.undoManager.transact(function () {
1603
- return insertOrUpdateImage(editor, data);
1604
- });
1431
+ editor.addCommand('mceUpdateImage', (_ui, data) => {
1432
+ editor.undoManager.transact(() => insertOrUpdateImage(editor, data));
1605
1433
  });
1606
1434
  };
1607
1435
 
1608
- var hasImageClass = function (node) {
1609
- var className = node.attr('class');
1610
- return className && /\bimage\b/.test(className);
1611
- };
1612
- var toggleContentEditableState = function (state) {
1613
- return function (nodes) {
1614
- var i = nodes.length;
1615
- var toggleContentEditable = function (node) {
1616
- node.attr('contenteditable', state ? 'true' : null);
1617
- };
1618
- while (i--) {
1619
- var node = nodes[i];
1620
- if (hasImageClass(node)) {
1621
- node.attr('contenteditable', state ? 'false' : null);
1622
- global.each(node.getAll('figcaption'), toggleContentEditable);
1623
- }
1624
- }
1436
+ const hasImageClass = node => {
1437
+ const className = node.attr('class');
1438
+ return isNonNullable(className) && /\bimage\b/.test(className);
1439
+ };
1440
+ const toggleContentEditableState = state => nodes => {
1441
+ let i = nodes.length;
1442
+ const toggleContentEditable = node => {
1443
+ node.attr('contenteditable', state ? 'true' : null);
1625
1444
  };
1445
+ while (i--) {
1446
+ const node = nodes[i];
1447
+ if (hasImageClass(node)) {
1448
+ node.attr('contenteditable', state ? 'false' : null);
1449
+ global.each(node.getAll('figcaption'), toggleContentEditable);
1450
+ }
1451
+ }
1626
1452
  };
1627
- var setup = function (editor) {
1628
- editor.on('PreInit', function () {
1453
+ const setup = editor => {
1454
+ editor.on('PreInit', () => {
1629
1455
  editor.parser.addNodeFilter('figure', toggleContentEditableState(true));
1630
1456
  editor.serializer.addNodeFilter('figure', toggleContentEditableState(false));
1631
1457
  });
1632
1458
  };
1633
1459
 
1634
- var register = function (editor) {
1460
+ const onSetupEditable = editor => api => {
1461
+ const nodeChanged = () => {
1462
+ api.setEnabled(editor.selection.isEditable());
1463
+ };
1464
+ editor.on('NodeChange', nodeChanged);
1465
+ nodeChanged();
1466
+ return () => {
1467
+ editor.off('NodeChange', nodeChanged);
1468
+ };
1469
+ };
1470
+ const register = editor => {
1635
1471
  editor.ui.registry.addToggleButton('image', {
1636
1472
  icon: 'image',
1637
1473
  tooltip: 'Insert/edit image',
1638
1474
  onAction: Dialog(editor).open,
1639
- onSetup: function (buttonApi) {
1475
+ onSetup: buttonApi => {
1640
1476
  buttonApi.setActive(isNonNullable(getSelectedImage(editor)));
1641
- return editor.selection.selectorChangedWithUnbind('img:not([data-mce-object],[data-mce-placeholder]),figure.image', buttonApi.setActive).unbind;
1477
+ const unbindSelectorChanged = editor.selection.selectorChangedWithUnbind('img:not([data-mce-object]):not([data-mce-placeholder]),figure.image', buttonApi.setActive).unbind;
1478
+ const unbindEditable = onSetupEditable(editor)(buttonApi);
1479
+ return () => {
1480
+ unbindSelectorChanged();
1481
+ unbindEditable();
1482
+ };
1642
1483
  }
1643
1484
  });
1644
1485
  editor.ui.registry.addMenuItem('image', {
1645
1486
  icon: 'image',
1646
1487
  text: 'Image...',
1647
- onAction: Dialog(editor).open
1648
- });
1649
- editor.ui.registry.addContextMenu('image', {
1650
- update: function (element) {
1651
- return isFigure(element) || isImage(element) && !isPlaceholderImage(element) ? ['image'] : [];
1652
- }
1488
+ onAction: Dialog(editor).open,
1489
+ onSetup: onSetupEditable(editor)
1653
1490
  });
1491
+ editor.ui.registry.addContextMenu('image', { update: element => editor.selection.isEditable() && (isFigure(element) || isImage(element) && !isPlaceholderImage(element)) ? ['image'] : [] });
1654
1492
  };
1655
1493
 
1656
- function Plugin () {
1657
- global$6.add('image', function (editor) {
1494
+ var Plugin = () => {
1495
+ global$4.add('image', editor => {
1496
+ register$2(editor);
1658
1497
  setup(editor);
1659
1498
  register(editor);
1660
1499
  register$1(editor);
1661
1500
  });
1662
- }
1501
+ };
1663
1502
 
1664
1503
  Plugin();
1665
1504
 
1666
- }());
1505
+ })();