@dangl/angular-material-shared 2.2.0 → 2.3.0-beta0037

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 (172) hide show
  1. package/{esm2015/dangl-angular-material-shared.js → esm2020/dangl-angular-material-shared.mjs} +0 -0
  2. package/esm2020/lib/angular-material-shared.module.mjs +38 -0
  3. package/esm2020/lib/components/footer/footer.component.mjs +33 -0
  4. package/esm2020/lib/components/header/header.component.mjs +80 -0
  5. package/esm2020/lib/components/tiny-mce/tiny-mce.component.mjs +104 -0
  6. package/{esm2015/lib/models/footer-options.js → esm2020/lib/models/footer-options.mjs} +0 -0
  7. package/{esm2015/lib/utils/guid-generator.js → esm2020/lib/utils/guid-generator.mjs} +0 -0
  8. package/{esm2015/public_api.js → esm2020/public_api.mjs} +0 -0
  9. package/fesm2015/dangl-angular-material-shared.mjs +292 -0
  10. package/fesm2015/dangl-angular-material-shared.mjs.map +1 -0
  11. package/fesm2020/dangl-angular-material-shared.mjs +290 -0
  12. package/fesm2020/dangl-angular-material-shared.mjs.map +1 -0
  13. package/{dangl-angular-material-shared.d.ts → index.d.ts} +1 -0
  14. package/lib/angular-material-shared.module.d.ts +12 -0
  15. package/lib/components/footer/footer.component.d.ts +3 -0
  16. package/lib/components/header/header.component.d.ts +3 -0
  17. package/lib/components/tiny-mce/tiny-mce.component.d.ts +3 -0
  18. package/package.json +28 -16
  19. package/styles/material-style.scss +1 -1
  20. package/styles/material-theme.scss +4 -3
  21. package/styles/material-variables.scss +9 -8
  22. package/tinymce-assets/icons/default/icons.js +11 -1
  23. package/tinymce-assets/icons/default/icons.min.js +1 -1
  24. package/tinymce-assets/langs/cs.js +118 -75
  25. package/tinymce-assets/langs/cy.js +61 -18
  26. package/tinymce-assets/langs/da.js +60 -17
  27. package/tinymce-assets/langs/de.js +60 -17
  28. package/tinymce-assets/langs/eo.js +334 -138
  29. package/tinymce-assets/langs/es_ES.js +32 -2
  30. package/tinymce-assets/langs/fa.js +60 -17
  31. package/tinymce-assets/langs/fa_IR.js +31 -1
  32. package/tinymce-assets/langs/fr_FR.js +60 -17
  33. package/tinymce-assets/langs/hu_HU.js +60 -17
  34. package/tinymce-assets/langs/ja.js +60 -17
  35. package/tinymce-assets/langs/ko_KR.js +3 -3
  36. package/tinymce-assets/langs/nb_NO.js +61 -18
  37. package/tinymce-assets/langs/nl.js +60 -17
  38. package/tinymce-assets/langs/pl.js +60 -17
  39. package/tinymce-assets/langs/pt_BR.js +60 -17
  40. package/tinymce-assets/langs/pt_PT.js +60 -17
  41. package/tinymce-assets/langs/ro.js +60 -17
  42. package/tinymce-assets/langs/ro_RO.js +32 -2
  43. package/tinymce-assets/langs/ru.js +60 -17
  44. package/tinymce-assets/langs/ru_RU.js +445 -0
  45. package/tinymce-assets/langs/sl.js +59 -14
  46. package/tinymce-assets/langs/ta.js +60 -17
  47. package/tinymce-assets/langs/ta_IN.js +60 -17
  48. package/tinymce-assets/langs/th_TH.js +60 -17
  49. package/tinymce-assets/langs/tr_TR.js +81 -8
  50. package/tinymce-assets/langs/vi.js +179 -21
  51. package/tinymce-assets/langs/zh_CN.js +60 -17
  52. package/tinymce-assets/plugins/advlist/plugin.js +29 -48
  53. package/tinymce-assets/plugins/advlist/plugin.min.js +2 -2
  54. package/tinymce-assets/plugins/anchor/plugin.js +8 -8
  55. package/tinymce-assets/plugins/anchor/plugin.min.js +2 -2
  56. package/tinymce-assets/plugins/autolink/plugin.js +58 -30
  57. package/tinymce-assets/plugins/autolink/plugin.min.js +2 -2
  58. package/tinymce-assets/plugins/autoresize/plugin.js +25 -12
  59. package/tinymce-assets/plugins/autoresize/plugin.min.js +2 -2
  60. package/tinymce-assets/plugins/autosave/plugin.js +9 -9
  61. package/tinymce-assets/plugins/autosave/plugin.min.js +2 -2
  62. package/tinymce-assets/plugins/bbcode/plugin.js +6 -6
  63. package/tinymce-assets/plugins/bbcode/plugin.min.js +2 -2
  64. package/tinymce-assets/plugins/charmap/plugin.js +39 -49
  65. package/tinymce-assets/plugins/charmap/plugin.min.js +2 -2
  66. package/tinymce-assets/plugins/code/plugin.js +9 -10
  67. package/tinymce-assets/plugins/code/plugin.min.js +2 -2
  68. package/tinymce-assets/plugins/codesample/plugin.js +1921 -1914
  69. package/tinymce-assets/plugins/codesample/plugin.min.js +2 -2
  70. package/tinymce-assets/plugins/colorpicker/plugin.js +1 -2
  71. package/tinymce-assets/plugins/colorpicker/plugin.min.js +2 -2
  72. package/tinymce-assets/plugins/contextmenu/plugin.js +1 -2
  73. package/tinymce-assets/plugins/contextmenu/plugin.min.js +2 -2
  74. package/tinymce-assets/plugins/directionality/plugin.js +186 -53
  75. package/tinymce-assets/plugins/directionality/plugin.min.js +2 -2
  76. package/tinymce-assets/plugins/emoticons/js/emojiimages.js +1572 -1572
  77. package/tinymce-assets/plugins/emoticons/js/emojiimages.min.js +1 -1
  78. package/tinymce-assets/plugins/emoticons/js/emojis.js +1572 -1572
  79. package/tinymce-assets/plugins/emoticons/js/emojis.min.js +1 -1
  80. package/tinymce-assets/plugins/emoticons/plugin.js +231 -200
  81. package/tinymce-assets/plugins/emoticons/plugin.min.js +2 -2
  82. package/tinymce-assets/plugins/fullpage/plugin.js +42 -42
  83. package/tinymce-assets/plugins/fullpage/plugin.min.js +2 -2
  84. package/tinymce-assets/plugins/fullscreen/plugin.js +496 -129
  85. package/tinymce-assets/plugins/fullscreen/plugin.min.js +2 -2
  86. package/tinymce-assets/plugins/help/plugin.js +101 -122
  87. package/tinymce-assets/plugins/help/plugin.min.js +2 -2
  88. package/tinymce-assets/plugins/hr/plugin.js +9 -10
  89. package/tinymce-assets/plugins/hr/plugin.min.js +2 -2
  90. package/tinymce-assets/plugins/image/plugin.js +78 -73
  91. package/tinymce-assets/plugins/image/plugin.min.js +2 -2
  92. package/tinymce-assets/plugins/imagetools/plugin.js +484 -307
  93. package/tinymce-assets/plugins/imagetools/plugin.min.js +2 -2
  94. package/tinymce-assets/plugins/importcss/plugin.js +50 -51
  95. package/tinymce-assets/plugins/importcss/plugin.min.js +2 -2
  96. package/tinymce-assets/plugins/insertdatetime/plugin.js +22 -17
  97. package/tinymce-assets/plugins/insertdatetime/plugin.min.js +2 -2
  98. package/tinymce-assets/plugins/legacyoutput/plugin.js +8 -8
  99. package/tinymce-assets/plugins/legacyoutput/plugin.min.js +2 -2
  100. package/tinymce-assets/plugins/link/plugin.js +131 -125
  101. package/tinymce-assets/plugins/link/plugin.min.js +2 -2
  102. package/tinymce-assets/plugins/lists/plugin.js +256 -229
  103. package/tinymce-assets/plugins/lists/plugin.min.js +2 -2
  104. package/tinymce-assets/plugins/media/plugin.js +124 -147
  105. package/tinymce-assets/plugins/media/plugin.min.js +2 -2
  106. package/tinymce-assets/plugins/nonbreaking/plugin.js +13 -14
  107. package/tinymce-assets/plugins/nonbreaking/plugin.min.js +2 -2
  108. package/tinymce-assets/plugins/noneditable/plugin.js +6 -6
  109. package/tinymce-assets/plugins/noneditable/plugin.min.js +2 -2
  110. package/tinymce-assets/plugins/pagebreak/plugin.js +16 -17
  111. package/tinymce-assets/plugins/pagebreak/plugin.min.js +2 -2
  112. package/tinymce-assets/plugins/paste/plugin.js +196 -157
  113. package/tinymce-assets/plugins/paste/plugin.min.js +2 -2
  114. package/tinymce-assets/plugins/preview/plugin.js +13 -14
  115. package/tinymce-assets/plugins/preview/plugin.min.js +2 -2
  116. package/tinymce-assets/plugins/print/plugin.js +13 -14
  117. package/tinymce-assets/plugins/print/plugin.min.js +2 -2
  118. package/tinymce-assets/plugins/quickbars/plugin.js +33 -48
  119. package/tinymce-assets/plugins/quickbars/plugin.min.js +2 -2
  120. package/tinymce-assets/plugins/save/plugin.js +9 -8
  121. package/tinymce-assets/plugins/save/plugin.min.js +2 -2
  122. package/tinymce-assets/plugins/searchreplace/plugin.js +73 -70
  123. package/tinymce-assets/plugins/searchreplace/plugin.min.js +2 -2
  124. package/tinymce-assets/plugins/spellchecker/plugin.js +22 -23
  125. package/tinymce-assets/plugins/spellchecker/plugin.min.js +2 -2
  126. package/tinymce-assets/plugins/tabfocus/plugin.js +21 -20
  127. package/tinymce-assets/plugins/tabfocus/plugin.min.js +2 -2
  128. package/tinymce-assets/plugins/table/plugin.js +2831 -2264
  129. package/tinymce-assets/plugins/table/plugin.min.js +2 -2
  130. package/tinymce-assets/plugins/template/plugin.js +84 -70
  131. package/tinymce-assets/plugins/template/plugin.min.js +2 -2
  132. package/tinymce-assets/plugins/textcolor/plugin.js +1 -2
  133. package/tinymce-assets/plugins/textcolor/plugin.min.js +2 -2
  134. package/tinymce-assets/plugins/textpattern/plugin.js +76 -96
  135. package/tinymce-assets/plugins/textpattern/plugin.min.js +2 -2
  136. package/tinymce-assets/plugins/toc/plugin.js +31 -29
  137. package/tinymce-assets/plugins/toc/plugin.min.js +2 -2
  138. package/tinymce-assets/plugins/visualblocks/plugin.js +10 -11
  139. package/tinymce-assets/plugins/visualblocks/plugin.min.js +2 -2
  140. package/tinymce-assets/plugins/visualchars/plugin.js +52 -67
  141. package/tinymce-assets/plugins/visualchars/plugin.min.js +2 -2
  142. package/tinymce-assets/plugins/wordcount/plugin.js +67 -58
  143. package/tinymce-assets/plugins/wordcount/plugin.min.js +2 -2
  144. package/tinymce-assets/skins/ui/oxide/content.css +1 -1
  145. package/tinymce-assets/skins/ui/oxide/content.inline.css +1 -1
  146. package/tinymce-assets/skins/ui/oxide/content.inline.min.css +1 -1
  147. package/tinymce-assets/skins/ui/oxide/content.min.css +1 -1
  148. package/tinymce-assets/skins/ui/oxide/skin.css +35 -22
  149. package/tinymce-assets/skins/ui/oxide/skin.min.css +1 -1
  150. package/tinymce-assets/skins/ui/oxide/skin.shadowdom.css +7 -7
  151. package/tinymce-assets/skins/ui/oxide/skin.shadowdom.min.css +1 -1
  152. package/tinymce-assets/skins/ui/oxide-dark/content.css +1 -1
  153. package/tinymce-assets/skins/ui/oxide-dark/content.inline.css +1 -1
  154. package/tinymce-assets/skins/ui/oxide-dark/content.inline.min.css +1 -1
  155. package/tinymce-assets/skins/ui/oxide-dark/content.min.css +1 -1
  156. package/tinymce-assets/skins/ui/oxide-dark/skin.css +35 -22
  157. package/tinymce-assets/skins/ui/oxide-dark/skin.min.css +1 -1
  158. package/tinymce-assets/skins/ui/oxide-dark/skin.shadowdom.css +7 -7
  159. package/tinymce-assets/skins/ui/oxide-dark/skin.shadowdom.min.css +1 -1
  160. package/tinymce-assets/themes/mobile/theme.js +2798 -3255
  161. package/tinymce-assets/themes/mobile/theme.min.js +2 -2
  162. package/tinymce-assets/themes/silver/theme.js +25400 -25371
  163. package/tinymce-assets/themes/silver/theme.min.js +2 -2
  164. package/bundles/dangl-angular-material-shared.umd.js +0 -285
  165. package/bundles/dangl-angular-material-shared.umd.js.map +0 -1
  166. package/dangl-angular-material-shared.metadata.json +0 -1
  167. package/esm2015/lib/angular-material-shared.module.js +0 -25
  168. package/esm2015/lib/components/footer/footer.component.js +0 -27
  169. package/esm2015/lib/components/header/header.component.js +0 -67
  170. package/esm2015/lib/components/tiny-mce/tiny-mce.component.js +0 -100
  171. package/fesm2015/dangl-angular-material-shared.js +0 -259
  172. package/fesm2015/dangl-angular-material-shared.js.map +0 -1
@@ -4,40 +4,39 @@
4
4
  * For LGPL see License.txt in the project root for license information.
5
5
  * For commercial licenses see https://www.tiny.cloud/
6
6
  *
7
- * Version: 5.8.2 (2021-06-23)
7
+ * Version: 5.10.3 (2022-02-09)
8
8
  */
9
9
  (function () {
10
10
  'use strict';
11
11
 
12
12
  var global = tinymce.util.Tools.resolve('tinymce.PluginManager');
13
13
 
14
- var register = function (editor) {
14
+ var register$1 = function (editor) {
15
15
  editor.addCommand('InsertHorizontalRule', function () {
16
16
  editor.execCommand('mceInsertContent', false, '<hr />');
17
17
  });
18
18
  };
19
19
 
20
- var register$1 = function (editor) {
20
+ var register = function (editor) {
21
+ var onAction = function () {
22
+ return editor.execCommand('InsertHorizontalRule');
23
+ };
21
24
  editor.ui.registry.addButton('hr', {
22
25
  icon: 'horizontal-rule',
23
26
  tooltip: 'Horizontal line',
24
- onAction: function () {
25
- return editor.execCommand('InsertHorizontalRule');
26
- }
27
+ onAction: onAction
27
28
  });
28
29
  editor.ui.registry.addMenuItem('hr', {
29
30
  icon: 'horizontal-rule',
30
31
  text: 'Horizontal line',
31
- onAction: function () {
32
- return editor.execCommand('InsertHorizontalRule');
33
- }
32
+ onAction: onAction
34
33
  });
35
34
  };
36
35
 
37
36
  function Plugin () {
38
37
  global.add('hr', function (editor) {
39
- register(editor);
40
38
  register$1(editor);
39
+ register(editor);
41
40
  });
42
41
  }
43
42
 
@@ -4,6 +4,6 @@
4
4
  * For LGPL see License.txt in the project root for license information.
5
5
  * For commercial licenses see https://www.tiny.cloud/
6
6
  *
7
- * Version: 5.8.2 (2021-06-23)
7
+ * Version: 5.10.3 (2022-02-09)
8
8
  */
9
- !function(){"use strict";var n=tinymce.util.Tools.resolve("tinymce.PluginManager");n.add("hr",function(n){var o,t;(o=n).addCommand("InsertHorizontalRule",function(){o.execCommand("mceInsertContent",!1,"<hr />")}),(t=n).ui.registry.addButton("hr",{icon:"horizontal-rule",tooltip:"Horizontal line",onAction:function(){return t.execCommand("InsertHorizontalRule")}}),t.ui.registry.addMenuItem("hr",{icon:"horizontal-rule",text:"Horizontal line",onAction:function(){return t.execCommand("InsertHorizontalRule")}})})}();
9
+ !function(){"use strict";tinymce.util.Tools.resolve("tinymce.PluginManager").add("hr",function(n){var o,t;function e(){return t.execCommand("InsertHorizontalRule")}(o=n).addCommand("InsertHorizontalRule",function(){o.execCommand("mceInsertContent",!1,"<hr />")}),(t=n).ui.registry.addButton("hr",{icon:"horizontal-rule",tooltip:"Horizontal line",onAction:e}),t.ui.registry.addMenuItem("hr",{icon:"horizontal-rule",text:"Horizontal line",onAction:e})})}();
@@ -4,12 +4,12 @@
4
4
  * For LGPL see License.txt in the project root for license information.
5
5
  * For commercial licenses see https://www.tiny.cloud/
6
6
  *
7
- * Version: 5.8.2 (2021-06-23)
7
+ * Version: 5.10.3 (2022-02-09)
8
8
  */
9
9
  (function () {
10
10
  'use strict';
11
11
 
12
- var global = tinymce.util.Tools.resolve('tinymce.PluginManager');
12
+ var global$6 = tinymce.util.Tools.resolve('tinymce.PluginManager');
13
13
 
14
14
  var __assign = function () {
15
15
  __assign = Object.assign || function __assign(t) {
@@ -62,6 +62,7 @@
62
62
  var isNonNullable = function (a) {
63
63
  return !isNullable(a);
64
64
  };
65
+ var isFunction = isSimpleType('function');
65
66
  var isNumber = isSimpleType('number');
66
67
 
67
68
  var noop = function () {
@@ -71,6 +72,9 @@
71
72
  return value;
72
73
  };
73
74
  };
75
+ var identity = function (x) {
76
+ return x;
77
+ };
74
78
  var never = constant(false);
75
79
  var always = constant(true);
76
80
 
@@ -78,20 +82,14 @@
78
82
  return NONE;
79
83
  };
80
84
  var NONE = function () {
81
- var eq = function (o) {
82
- return o.isNone();
83
- };
84
85
  var call = function (thunk) {
85
86
  return thunk();
86
87
  };
87
- var id = function (n) {
88
- return n;
89
- };
88
+ var id = identity;
90
89
  var me = {
91
90
  fold: function (n, _s) {
92
91
  return n();
93
92
  },
94
- is: never,
95
93
  isSome: never,
96
94
  isNone: always,
97
95
  getOr: id,
@@ -108,9 +106,9 @@
108
106
  bind: none,
109
107
  exists: never,
110
108
  forall: always,
111
- filter: none,
112
- equals: eq,
113
- equals_: eq,
109
+ filter: function () {
110
+ return none();
111
+ },
114
112
  toArray: function () {
115
113
  return [];
116
114
  },
@@ -130,9 +128,6 @@
130
128
  fold: function (n, s) {
131
129
  return s(a);
132
130
  },
133
- is: function (v) {
134
- return a === v;
135
- },
136
131
  isSome: always,
137
132
  isNone: never,
138
133
  getOr: constant_a,
@@ -159,14 +154,6 @@
159
154
  },
160
155
  toString: function () {
161
156
  return 'some(' + a + ')';
162
- },
163
- equals: function (o) {
164
- return o.is(a);
165
- },
166
- equals_: function (o, elementEq) {
167
- return o.fold(never, function (b) {
168
- return elementEq(a, b);
169
- });
170
157
  }
171
158
  };
172
159
  return me;
@@ -241,7 +228,7 @@
241
228
  return Optional.none();
242
229
  };
243
230
 
244
- var Global = typeof window !== 'undefined' ? window : Function('return this;')();
231
+ typeof window !== 'undefined' ? window : Function('return this;')();
245
232
 
246
233
  var rawSet = function (dom, key, value) {
247
234
  if (isString(value) || isBoolean(value) || isNumber(value)) {
@@ -295,11 +282,13 @@
295
282
  fromPoint: fromPoint
296
283
  };
297
284
 
298
- var global$1 = tinymce.util.Tools.resolve('tinymce.dom.DOMUtils');
285
+ var global$5 = tinymce.util.Tools.resolve('tinymce.dom.DOMUtils');
286
+
287
+ var global$4 = tinymce.util.Tools.resolve('tinymce.util.Promise');
299
288
 
300
- var global$2 = tinymce.util.Tools.resolve('tinymce.util.Promise');
289
+ var global$3 = tinymce.util.Tools.resolve('tinymce.util.URI');
301
290
 
302
- var global$3 = tinymce.util.Tools.resolve('tinymce.util.XHR');
291
+ var global$2 = tinymce.util.Tools.resolve('tinymce.util.XHR');
303
292
 
304
293
  var hasDimensions = function (editor) {
305
294
  return editor.getParam('image_dimensions', true, 'boolean');
@@ -345,9 +334,10 @@
345
334
  return Math.max(parseInt(val1, 10), parseInt(val2, 10));
346
335
  };
347
336
  var getImageSize = function (url) {
348
- return new global$2(function (callback) {
337
+ return new global$4(function (callback) {
349
338
  var img = document.createElement('img');
350
339
  var done = function (dimensions) {
340
+ img.onload = img.onerror = null;
351
341
  if (img.parentNode) {
352
342
  img.parentNode.removeChild(img);
353
343
  }
@@ -360,10 +350,10 @@
360
350
  width: width,
361
351
  height: height
362
352
  };
363
- done(global$2.resolve(dimensions));
353
+ done(global$4.resolve(dimensions));
364
354
  };
365
355
  img.onerror = function () {
366
- done(global$2.reject('Failed to get image dimensions for: ' + url));
356
+ done(global$4.reject('Failed to get image dimensions for: ' + url));
367
357
  };
368
358
  var style = img.style;
369
359
  style.visibility = 'hidden';
@@ -420,14 +410,14 @@
420
410
  };
421
411
  var createImageList = function (editor, callback) {
422
412
  var imageList = getImageList(editor);
423
- if (typeof imageList === 'string') {
424
- global$3.send({
413
+ if (isString(imageList)) {
414
+ global$2.send({
425
415
  url: imageList,
426
416
  success: function (text) {
427
417
  callback(JSON.parse(text));
428
418
  }
429
419
  });
430
- } else if (typeof imageList === 'function') {
420
+ } else if (isFunction(imageList)) {
431
421
  imageList(callback);
432
422
  } else {
433
423
  callback(imageList);
@@ -453,7 +443,7 @@
453
443
  imgElm.onerror = selectImage;
454
444
  };
455
445
  var blobToDataUri = function (blob) {
456
- return new global$2(function (resolve, reject) {
446
+ return new global$4(function (resolve, reject) {
457
447
  var reader = new FileReader();
458
448
  reader.onload = function () {
459
449
  resolve(reader.result);
@@ -467,8 +457,11 @@
467
457
  var isPlaceholderImage = function (imgElm) {
468
458
  return imgElm.nodeName === 'IMG' && (imgElm.hasAttribute('data-mce-object') || imgElm.hasAttribute('data-mce-placeholder'));
469
459
  };
460
+ var isSafeImageUrl = function (editor, src) {
461
+ return global$3.isDomSafe(src, 'img', editor.settings);
462
+ };
470
463
 
471
- var DOM = global$1.DOM;
464
+ var DOM = global$5.DOM;
472
465
  var getHspace = function (image) {
473
466
  if (image.style.marginLeft && image.style.marginRight && image.style.marginLeft === image.style.marginRight) {
474
467
  return removePixelSuffix(image.style.marginLeft);
@@ -711,7 +704,7 @@
711
704
  updateAlt(image, oldData, newData);
712
705
  };
713
706
 
714
- var normalizeCss = function (editor, cssText) {
707
+ var normalizeCss$1 = function (editor, cssText) {
715
708
  var css = editor.dom.styles.parse(cssText);
716
709
  var mergedCss = mergeMargins(css);
717
710
  var compressed = editor.dom.styles.parse(editor.dom.styles.serialize(mergedCss));
@@ -745,12 +738,12 @@
745
738
  var readImageDataFromSelection = function (editor) {
746
739
  var image = getSelectedImage(editor);
747
740
  return image ? read(function (css) {
748
- return normalizeCss(editor, css);
741
+ return normalizeCss$1(editor, css);
749
742
  }, image) : defaultData();
750
743
  };
751
744
  var insertImageAtCaret = function (editor, data) {
752
745
  var elm = create(function (css) {
753
- return normalizeCss(editor, css);
746
+ return normalizeCss$1(editor, css);
754
747
  }, data);
755
748
  editor.dom.setAttrib(elm, 'data-mce-id', '__mcenew');
756
749
  editor.focus();
@@ -782,7 +775,7 @@
782
775
  var writeImageDataToSelection = function (editor, data) {
783
776
  var image = getSelectedImage(editor);
784
777
  write(function (css) {
785
- return normalizeCss(editor, css);
778
+ return normalizeCss$1(editor, css);
786
779
  }, data, image);
787
780
  syncSrcAttr(editor, image);
788
781
  if (isFigure(image.parentNode)) {
@@ -794,15 +787,20 @@
794
787
  waitLoadImage(editor, data, image);
795
788
  }
796
789
  };
790
+ var sanitizeImageData = function (editor, data) {
791
+ var src = data.src;
792
+ return __assign(__assign({}, data), { src: isSafeImageUrl(editor, src) ? src : '' });
793
+ };
797
794
  var insertOrUpdateImage = function (editor, partialData) {
798
795
  var image = getSelectedImage(editor);
799
796
  if (image) {
800
797
  var selectedImageData = read(function (css) {
801
- return normalizeCss(editor, css);
798
+ return normalizeCss$1(editor, css);
802
799
  }, image);
803
800
  var data = __assign(__assign({}, selectedImageData), partialData);
801
+ var sanitizedData = sanitizeImageData(editor, data);
804
802
  if (data.src) {
805
- writeImageDataToSelection(editor, data);
803
+ writeImageDataToSelection(editor, sanitizedData);
806
804
  } else {
807
805
  deleteImage(editor, image);
808
806
  }
@@ -811,7 +809,6 @@
811
809
  }
812
810
  };
813
811
 
814
- var hasOwnProperty$1 = Object.prototype.hasOwnProperty;
815
812
  var deep = function (old, nu) {
816
813
  var bothObjects = isObject(old) && isObject(nu);
817
814
  return bothObjects ? deepMerge(old, nu) : nu;
@@ -829,7 +826,7 @@
829
826
  for (var j = 0; j < objects.length; j++) {
830
827
  var curObject = objects[j];
831
828
  for (var key in curObject) {
832
- if (hasOwnProperty$1.call(curObject, key)) {
829
+ if (has(curObject, key)) {
833
830
  ret[key] = merger(ret[key], curObject[key]);
834
831
  }
835
832
  }
@@ -843,9 +840,9 @@
843
840
  return s.length > 0;
844
841
  };
845
842
 
846
- var global$4 = tinymce.util.Tools.resolve('tinymce.util.ImageUploader');
843
+ var global$1 = tinymce.util.Tools.resolve('tinymce.util.ImageUploader');
847
844
 
848
- var global$5 = tinymce.util.Tools.resolve('tinymce.util.Tools');
845
+ var global = tinymce.util.Tools.resolve('tinymce.util.Tools');
849
846
 
850
847
  var getValue = function (item) {
851
848
  return isString(item.value) ? item.value : '';
@@ -861,7 +858,7 @@
861
858
  };
862
859
  var sanitizeList = function (list, extractValue) {
863
860
  var out = [];
864
- global$5.each(list, function (item) {
861
+ global.each(list, function (item) {
865
862
  var text = getText(item);
866
863
  if (item.menu !== undefined) {
867
864
  var items = sanitizeList(item.menu, extractValue);
@@ -879,14 +876,14 @@
879
876
  });
880
877
  return out;
881
878
  };
882
- var sanitizer = function (extracter) {
883
- if (extracter === void 0) {
884
- extracter = getValue;
879
+ var sanitizer = function (extractor) {
880
+ if (extractor === void 0) {
881
+ extractor = getValue;
885
882
  }
886
883
  return function (list) {
887
884
  if (list) {
888
885
  return Optional.from(list).map(function (list) {
889
- return sanitizeList(list, extracter);
886
+ return sanitizeList(list, extractor);
890
887
  });
891
888
  } else {
892
889
  return Optional.none();
@@ -897,7 +894,7 @@
897
894
  return sanitizer(getValue)(list);
898
895
  };
899
896
  var isGroup = function (item) {
900
- return Object.prototype.hasOwnProperty.call(item, 'items');
897
+ return has(item, 'items');
901
898
  };
902
899
  var findEntryDelegate = function (list, value) {
903
900
  return findMap(list, function (item) {
@@ -921,7 +918,7 @@
921
918
  findEntry: findEntry
922
919
  };
923
920
 
924
- var makeTab = function (_info) {
921
+ var makeTab$2 = function (_info) {
925
922
  return {
926
923
  title: 'Advanced',
927
924
  name: 'advanced',
@@ -1009,13 +1006,13 @@
1009
1006
  ]
1010
1007
  };
1011
1008
  };
1012
- var AdvTab = { makeTab: makeTab };
1009
+ var AdvTab = { makeTab: makeTab$2 };
1013
1010
 
1014
1011
  var collect = function (editor) {
1015
1012
  var urlListSanitizer = ListUtils.sanitizer(function (item) {
1016
1013
  return editor.convertURL(item.value || item.url, 'src');
1017
1014
  });
1018
- var futureImageList = new global$2(function (completer) {
1015
+ var futureImageList = new global$4(function (completer) {
1019
1016
  createImageList(editor, function (imageList) {
1020
1017
  completer(urlListSanitizer(imageList).map(function (items) {
1021
1018
  return flatten([
@@ -1152,7 +1149,7 @@
1152
1149
  makeItems: makeItems
1153
1150
  };
1154
1151
 
1155
- var makeTab$2 = function (_info) {
1152
+ var makeTab = function (_info) {
1156
1153
  var items = [{
1157
1154
  type: 'dropzone',
1158
1155
  name: 'fileinput'
@@ -1163,7 +1160,7 @@
1163
1160
  items: items
1164
1161
  };
1165
1162
  };
1166
- var UploadTab = { makeTab: makeTab$2 };
1163
+ var UploadTab = { makeTab: makeTab };
1167
1164
 
1168
1165
  var createState = function (info) {
1169
1166
  return {
@@ -1517,12 +1514,19 @@
1517
1514
  };
1518
1515
  var imageSize = function (editor) {
1519
1516
  return function (url) {
1520
- return getImageSize(editor.documentBaseURI.toAbsolute(url)).then(function (dimensions) {
1521
- return {
1522
- width: String(dimensions.width),
1523
- height: String(dimensions.height)
1524
- };
1525
- });
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
+ }
1526
1530
  };
1527
1531
  };
1528
1532
  var createBlobCache = function (editor) {
@@ -1546,9 +1550,9 @@
1546
1550
  editor.windowManager.alert(message);
1547
1551
  };
1548
1552
  };
1549
- var normalizeCss$1 = function (editor) {
1553
+ var normalizeCss = function (editor) {
1550
1554
  return function (cssText) {
1551
- return normalizeCss(editor, cssText);
1555
+ return normalizeCss$1(editor, cssText);
1552
1556
  };
1553
1557
  };
1554
1558
  var parseStyle = function (editor) {
@@ -1563,11 +1567,11 @@
1563
1567
  };
1564
1568
  var uploadImage = function (editor) {
1565
1569
  return function (blobInfo) {
1566
- return global$4(editor).upload([blobInfo], false).then(function (results) {
1570
+ return global$1(editor).upload([blobInfo], false).then(function (results) {
1567
1571
  if (results.length === 0) {
1568
- return global$2.reject('Failed to upload image');
1572
+ return global$4.reject('Failed to upload image');
1569
1573
  } else if (results[0].status === false) {
1570
- return global$2.reject(results[0].error.message);
1574
+ return global$4.reject(results[0].error.message);
1571
1575
  } else {
1572
1576
  return results[0];
1573
1577
  }
@@ -1581,7 +1585,7 @@
1581
1585
  addToBlobCache: addToBlobCache(editor),
1582
1586
  createBlobCache: createBlobCache(editor),
1583
1587
  alertErr: alertErr(editor),
1584
- normalizeCss: normalizeCss$1(editor),
1588
+ normalizeCss: normalizeCss(editor),
1585
1589
  parseStyle: parseStyle(editor),
1586
1590
  serializeStyle: serializeStyle(editor),
1587
1591
  uploadImage: uploadImage(editor)
@@ -1592,7 +1596,7 @@
1592
1596
  return { open: open };
1593
1597
  };
1594
1598
 
1595
- var register = function (editor) {
1599
+ var register$1 = function (editor) {
1596
1600
  editor.addCommand('mceImage', Dialog(editor).open);
1597
1601
  editor.addCommand('mceUpdateImage', function (_ui, data) {
1598
1602
  editor.undoManager.transact(function () {
@@ -1615,7 +1619,7 @@
1615
1619
  var node = nodes[i];
1616
1620
  if (hasImageClass(node)) {
1617
1621
  node.attr('contenteditable', state ? 'false' : null);
1618
- global$5.each(node.getAll('figcaption'), toggleContentEditable);
1622
+ global.each(node.getAll('figcaption'), toggleContentEditable);
1619
1623
  }
1620
1624
  }
1621
1625
  };
@@ -1627,12 +1631,13 @@
1627
1631
  });
1628
1632
  };
1629
1633
 
1630
- var register$1 = function (editor) {
1634
+ var register = function (editor) {
1631
1635
  editor.ui.registry.addToggleButton('image', {
1632
1636
  icon: 'image',
1633
1637
  tooltip: 'Insert/edit image',
1634
1638
  onAction: Dialog(editor).open,
1635
1639
  onSetup: function (buttonApi) {
1640
+ buttonApi.setActive(isNonNullable(getSelectedImage(editor)));
1636
1641
  return editor.selection.selectorChangedWithUnbind('img:not([data-mce-object],[data-mce-placeholder]),figure.image', buttonApi.setActive).unbind;
1637
1642
  }
1638
1643
  });
@@ -1649,10 +1654,10 @@
1649
1654
  };
1650
1655
 
1651
1656
  function Plugin () {
1652
- global.add('image', function (editor) {
1657
+ global$6.add('image', function (editor) {
1653
1658
  setup(editor);
1654
- register$1(editor);
1655
1659
  register(editor);
1660
+ register$1(editor);
1656
1661
  });
1657
1662
  }
1658
1663
 
@@ -4,6 +4,6 @@
4
4
  * For LGPL see License.txt in the project root for license information.
5
5
  * For commercial licenses see https://www.tiny.cloud/
6
6
  *
7
- * Version: 5.8.2 (2021-06-23)
7
+ * Version: 5.10.3 (2022-02-09)
8
8
  */
9
- !function(){"use strict";var t,e,n,r,o,i=tinymce.util.Tools.resolve("tinymce.PluginManager"),c=function(){return(c=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var i in t=arguments[n])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e}).apply(this,arguments)},a=function(r){return function(e){return n=typeof(t=e),(null===t?"null":"object"==n&&(Array.prototype.isPrototypeOf(t)||t.constructor&&"Array"===t.constructor.name)?"array":"object"==n&&(String.prototype.isPrototypeOf(t)||t.constructor&&"String"===t.constructor.name)?"string":n)===r;var t,n}},l=function(t){return function(e){return typeof e===t}},v=a("string"),s=a("object"),u=a("array"),m=function(e){return t===e},d=l("boolean"),y=function(e){return!(null===(t=e)||t===undefined);var t},g=l("number"),f=function(){},p=function(e){return function(){return e}},h=p(!1),b=p(!(t=null)),D=function(){return A},A=(e=function(e){return e.isNone()},{fold:function(e,t){return e()},is:h,isSome:h,isNone:b,getOr:r=function(e){return e},getOrThunk:n=function(e){return e()},getOrDie:function(e){throw new Error(e||"error: getOrDie called on none.")},getOrNull:p(null),getOrUndefined:p(undefined),or:r,orThunk:n,map:D,each:f,bind:D,exists:h,forall:b,filter:D,equals:e,equals_:e,toArray:function(){return[]},toString:p("none()")}),w=function(n){var e=p(n),t=function(){return i},r=function(e){return e(n)},i={fold:function(e,t){return t(n)},is:function(e){return n===e},isSome:b,isNone:h,getOr:e,getOrThunk:e,getOrDie:e,getOrNull:e,getOrUndefined:e,or:t,orThunk:t,map:function(e){return w(e(n))},each:function(e){e(n)},bind:r,exists:r,forall:r,filter:function(e){return e(n)?i:A},toArray:function(){return[n]},toString:function(){return"some("+n+")"},equals:function(e){return e.is(n)},equals_:function(e,t){return e.fold(h,function(e){return t(n,e)})}};return i},S={some:w,none:D,from:function(e){return null===e||e===undefined?A:w(e)}},x=Object.keys,C=Object.hasOwnProperty,U=function(e,n,r,i){return function(e,t){for(var n=x(e),r=0,i=n.length;r<i;r++){var a=n[r];t(e[a],a)}}(e,function(e,t){(n(e,t)?r:i)(e,t)}),{}},I=function(e,t){var n,r={};return U(e,t,(n=r,function(e,t){n[t]=e}),f),r},O=function(e,t){return n=e,r=t,C.call(n,r)&&e[t]!==undefined&&null!==e[t];var n,r},T=Array.prototype.push,N=function(e){for(var t=[],n=0,r=e.length;n<r;++n){if(!u(e[n]))throw new Error("Arr.flatten item "+n+" was not an array, input: "+e);T.apply(t,e[n])}return t},L=function(e){return t=e,(n=0)<=n&&n<t.length?S.some(t[n]):S.none();var t,n},P=("undefined"!=typeof window||Function("return this;")(),function(e,t,n){!function(e,t,n){if(!(v(n)||d(n)||g(n)))throw console.error("Invalid call to Attribute.set. Key ",t,":: Value ",n,":: Element ",e),new Error("Attribute value was not simple");e.setAttribute(t,n+"")}(e.dom,t,n)}),_=function(e){if(null===e||e===undefined)throw new Error("Node cannot be null or undefined");return{dom:e}},E={fromHtml:function(e,t){var n=(t||document).createElement("div");if(n.innerHTML=e,!n.hasChildNodes()||1<n.childNodes.length)throw console.error("HTML does not have a single root node",e),new Error("HTML must have a single root node");return _(n.childNodes[0])},fromTag:function(e,t){var n=(t||document).createElement(e);return _(n)},fromText:function(e,t){var n=(t||document).createTextNode(e);return _(n)},fromDom:_,fromPoint:function(e,t,n){return S.from(e.dom.elementFromPoint(t,n)).map(_)}},M=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),j=tinymce.util.Tools.resolve("tinymce.util.Promise"),R=tinymce.util.Tools.resolve("tinymce.util.XHR"),k=function(e){return e.getParam("image_dimensions",!0,"boolean")},z=function(e,t){return Math.max(parseInt(e,10),parseInt(t,10))},B=function(e){return e=e&&e.replace(/px$/,"")},H=function(e){return 0<e.length&&/^[0-9]+$/.test(e)&&(e+="px"),e},F=function(e){if(e.margin){var t=String(e.margin).split(" ");switch(t.length){case 1:e["margin-top"]=e["margin-top"]||t[0],e["margin-right"]=e["margin-right"]||t[0],e["margin-bottom"]=e["margin-bottom"]||t[0],e["margin-left"]=e["margin-left"]||t[0];break;case 2:e["margin-top"]=e["margin-top"]||t[0],e["margin-right"]=e["margin-right"]||t[1],e["margin-bottom"]=e["margin-bottom"]||t[0],e["margin-left"]=e["margin-left"]||t[1];break;case 3:e["margin-top"]=e["margin-top"]||t[0],e["margin-right"]=e["margin-right"]||t[1],e["margin-bottom"]=e["margin-bottom"]||t[2],e["margin-left"]=e["margin-left"]||t[1];break;case 4:e["margin-top"]=e["margin-top"]||t[0],e["margin-right"]=e["margin-right"]||t[1],e["margin-bottom"]=e["margin-bottom"]||t[2],e["margin-left"]=e["margin-left"]||t[3]}delete e.margin}return e},G=function(e){return"IMG"===e.nodeName&&(e.hasAttribute("data-mce-object")||e.hasAttribute("data-mce-placeholder"))},W=M.DOM,q=function(e){return e.style.marginLeft&&e.style.marginRight&&e.style.marginLeft===e.style.marginRight?B(e.style.marginLeft):""},V=function(e){return e.style.marginTop&&e.style.marginBottom&&e.style.marginTop===e.style.marginBottom?B(e.style.marginTop):""},$=function(e){return e.style.borderWidth?B(e.style.borderWidth):""},J=function(e,t){return e.hasAttribute(t)?e.getAttribute(t):""},K=function(e,t){return e.style[t]?e.style[t]:""},X=function(e){return null!==e.parentNode&&"FIGURE"===e.parentNode.nodeName},Z=function(e,t,n){""===n?e.removeAttribute(t):e.setAttribute(t,n)},Q=function(e){var t,n,r,i;X(e)?(i=(r=e).parentNode,W.insertAfter(r,i),W.remove(i)):(t=e,n=W.create("figure",{"class":"image"}),W.insertAfter(n,t),n.appendChild(t),n.appendChild(W.create("figcaption",{contentEditable:"true"},"Caption")),n.contentEditable="false")},Y=function(e,t){var n=e.getAttribute("style"),r=t(null!==n?n:"");0<r.length?(e.setAttribute("style",r),e.setAttribute("data-mce-style",r)):e.removeAttribute("style")},ee=function(e,r){return function(e,t,n){e.style[t]?(e.style[t]=H(n),Y(e,r)):Z(e,t,n)}},te=function(e,t){return e.style[t]?B(e.style[t]):J(e,t)},ne=function(e,t){var n=H(t);e.style.marginLeft=n,e.style.marginRight=n},re=function(e,t){var n=H(t);e.style.marginTop=n,e.style.marginBottom=n},ie=function(e,t){var n=H(t);e.style.borderWidth=n},ae=function(e,t){e.style.borderStyle=t},oe=function(e){return"FIGURE"===e.nodeName},le=function(e){return 0===W.getAttrib(e,"alt").length&&"presentation"===W.getAttrib(e,"role")},se=function(){return{src:"",alt:"",title:"",width:"",height:"","class":"",style:"",caption:!1,hspace:"",vspace:"",border:"",borderStyle:"",isDecorative:!1}},ue=function(e,t){var n=document.createElement("img");return Z(n,"style",t.style),!q(n)&&""===t.hspace||ne(n,t.hspace),!V(n)&&""===t.vspace||re(n,t.vspace),!$(n)&&""===t.border||ie(n,t.border),!K(n,"borderStyle")&&""===t.borderStyle||ae(n,t.borderStyle),e(n.getAttribute("style"))},ce=function(e,t){return{src:J(t,"src"),alt:le(n=t)?"":J(n,"alt"),title:J(t,"title"),width:te(t,"width"),height:te(t,"height"),"class":J(t,"class"),style:e(J(t,"style")),caption:X(t),hspace:q(t),vspace:V(t),border:$(t),borderStyle:K(t,"borderStyle"),isDecorative:le(t)};var n},me=function(e,t,n,r,i){n[r]!==t[r]&&i(e,r,n[r])},de=function(e,t,n){var r,i;n?(W.setAttrib(e,"role","presentation"),r=E.fromDom(e),P(r,"alt","")):(m(t)?(r=E.fromDom(e),i="alt",r.dom.removeAttribute(i)):(r=E.fromDom(e),P(r,"alt",t)),"presentation"===W.getAttrib(e,"role")&&W.setAttrib(e,"role",""))},ge=function(r,i){return function(e,t,n){r(e,n),Y(e,i)}},fe=function(e,t,n){var r,i,a,o=ce(e,n);me(n,o,t,"caption",function(e,t,n){return Q(e),0}),me(n,o,t,"src",Z),me(n,o,t,"title",Z),me(n,o,t,"width",ee(0,e)),me(n,o,t,"height",ee(0,e)),me(n,o,t,"class",Z),me(n,o,t,"style",ge(function(e,t){return Z(e,"style",t),0},e)),me(n,o,t,"hspace",ge(ne,e)),me(n,o,t,"vspace",ge(re,e)),me(n,o,t,"border",ge(ie,e)),me(n,o,t,"borderStyle",ge(ae,e)),r=n,i=o,(a=t).alt===i.alt&&a.isDecorative===i.isDecorative||de(r,a.alt,a.isDecorative)},pe=function(e,t){var n=e.dom.styles.parse(t),r=F(n),i=e.dom.styles.parse(e.dom.styles.serialize(r));return e.dom.styles.serialize(i)},he=function(e){var t=e.selection.getNode(),n=e.dom.getParent(t,"figure.image");return n?e.dom.select("img",n)[0]:t&&("IMG"!==t.nodeName||G(t))?null:t},be=function(n,e){var t=n.dom,r=I(n.schema.getTextBlockElements(),function(e,t){return!n.schema.isValidChild(t,"figure")}),i=t.getParent(e.parentNode,function(e){return O(r,e.nodeName)},n.getBody());return i?t.split(i,e):e},ve=function(t,e){var n=function(e,t){var n=document.createElement("img");if(fe(e,c(c({},t),{caption:!1}),n),de(n,t.alt,t.isDecorative),t.caption){var r=W.create("figure",{"class":"image"});return r.appendChild(n),r.appendChild(W.create("figcaption",{contentEditable:"true"},"Caption")),r.contentEditable="false",r}return n}(function(e){return pe(t,e)},e);t.dom.setAttrib(n,"data-mce-id","__mcenew"),t.focus(),t.selection.setContent(n.outerHTML);var r,i=t.dom.select('*[data-mce-id="__mcenew"]')[0];t.dom.setAttrib(i,"data-mce-id",null),oe(i)?(r=be(t,i),t.selection.select(r)):t.selection.select(i)},ye=function(t,e){var n,r,i,a,o,l,s=he(t);fe(function(e){return pe(t,e)},e,s),n=s,t.dom.setAttrib(n,"src",n.getAttribute("src")),oe(s.parentNode)?(r=s.parentNode,be(t,r),t.selection.select(s.parentNode)):(t.selection.select(s),i=t,a=e,l=function(){o.onload=o.onerror=null,i.selection&&(i.selection.select(o),i.nodeChanged())},(o=s).onload=function(){a.width||a.height||!k(i)||i.dom.setAttribs(o,{width:String(o.clientWidth),height:String(o.clientHeight)}),l()},o.onerror=l)},De=Object.prototype.hasOwnProperty,Ae=(o=function(e,t){return s(e)&&s(t)?Ae(e,t):t},function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];if(0===e.length)throw new Error("Can't merge zero objects");for(var n={},r=0;r<e.length;r++){var i=e[r];for(var a in i)De.call(i,a)&&(n[a]=o(n[a],i[a]))}return n}),we=tinymce.util.Tools.resolve("tinymce.util.ImageUploader"),Se=tinymce.util.Tools.resolve("tinymce.util.Tools"),xe=function(e){return v(e.value)?e.value:""},Ce=function(e,a){var o=[];return Se.each(e,function(e){var t,n,r,i=v((t=e).text)?t.text:v(t.title)?t.title:"";e.menu!==undefined?(n=Ce(e.menu,a),o.push({text:i,items:n})):(r=a(e),o.push({text:i,value:r}))}),o},Ue=function(t){return void 0===t&&(t=xe),function(e){return e?S.from(e).map(function(e){return Ce(e,t)}):S.none()}},Ie=function(e,n){return function(e,t){for(var n=0;n<e.length;n++){var r=t(e[n],n);if(r.isSome())return r}return S.none()}(e,function(e){return t=e,Object.prototype.hasOwnProperty.call(t,"items")?Ie(e.items,n):e.value===n?S.some(e):S.none();var t})},Oe=Ue,Te=function(e){return Ue(xe)(e)},Ne=function(e,t){return e.bind(function(e){return Ie(e,t)})},Le=function(e){return{title:"Advanced",name:"advanced",items:[{type:"input",label:"Style",name:"style"},{type:"grid",columns:2,items:[{type:"input",label:"Vertical space",name:"vspace",inputMode:"numeric"},{type:"input",label:"Horizontal space",name:"hspace",inputMode:"numeric"},{type:"input",label:"Border width",name:"border",inputMode:"numeric"},{type:"listbox",name:"borderstyle",label:"Border style",items:[{text:"Select...",value:""},{text:"Solid",value:"solid"},{text:"Dotted",value:"dotted"},{text:"Dashed",value:"dashed"},{text:"Double",value:"double"},{text:"Groove",value:"groove"},{text:"Ridge",value:"ridge"},{text:"Inset",value:"inset"},{text:"Outset",value:"outset"},{text:"None",value:"none"},{text:"Hidden",value:"hidden"}]}]}]}},Pe=function(r){var t,e,i=Oe(function(e){return r.convertURL(e.value||e.url,"src")}),n=new j(function(t){var n,e;n=function(e){t(i(e).map(function(e){return N([[{text:"None",value:""}],e])}))},"string"==typeof(e=r.getParam("image_list",!1))?R.send({url:e,success:function(e){n(JSON.parse(e))}}):"function"==typeof e?e(n):n(e)}),a=Te(r.getParam("image_class_list")),o=r.getParam("image_advtab",!1,"boolean"),l=r.getParam("image_uploadtab",!0,"boolean"),s=y(r.getParam("images_upload_url")),u=y(r.getParam("images_upload_handler")),c=(e=he(t=r))?ce(function(e){return pe(t,e)},e):se(),m=r.getParam("image_description",!0,"boolean"),d=r.getParam("image_title",!1,"boolean"),g=k(r),f=r.getParam("image_caption",!1,"boolean"),p=r.getParam("a11y_advanced_options",!1,"boolean"),h=r.getParam("automatic_uploads",!0,"boolean"),b=S.some(r.getParam("image_prepend_url","","string")).filter(function(e){return v(e)&&0<e.length});return n.then(function(e){return{image:c,imageList:e,classList:a,hasAdvTab:o,hasUploadTab:l,hasUploadUrl:s,hasUploadHandler:u,hasDescription:m,hasImageTitle:d,hasDimensions:g,hasImageCaption:f,prependURL:b,hasAccessibilityOptions:p,automaticUploads:h}})},_e=function(e){var t=e.imageList.map(function(e){return{name:"images",type:"listbox",label:"Image list",items:e}}),n={name:"alt",type:"input",label:"Alternative description",disabled:e.hasAccessibilityOptions&&e.image.isDecorative},r=e.classList.map(function(e){return{name:"classes",type:"listbox",label:"Class",items:e}});return N([[{name:"src",type:"urlinput",filetype:"image",label:"Source"}],t.toArray(),e.hasAccessibilityOptions&&e.hasDescription?[{type:"label",label:"Accessibility",items:[{name:"isDecorative",type:"checkbox",label:"Image is decorative"}]}]:[],e.hasDescription?[n]:[],e.hasImageTitle?[{name:"title",type:"input",label:"Image title"}]:[],e.hasDimensions?[{name:"dimensions",type:"sizeinput"}]:[],[c(c({},e.classList.isSome()&&e.hasImageCaption?{type:"grid",columns:2}:{type:"panel"}),{items:N([r.toArray(),e.hasImageCaption?[{type:"label",label:"Caption",items:[{type:"checkbox",name:"caption",label:"Show caption"}]}]:[]])})]])},Ee=function(e){return{title:"General",name:"general",items:_e(e)}},Me=_e,je=function(e){return{title:"Upload",name:"upload",items:[{type:"dropzone",name:"fileinput"}]}},Re=function(e){return{src:{value:e.src,meta:{}},images:e.src,alt:e.alt,title:e.title,dimensions:{width:e.width,height:e.height},classes:e["class"],caption:e.caption,style:e.style,vspace:e.vspace,border:e.border,hspace:e.hspace,borderstyle:e.borderStyle,fileinput:[],isDecorative:e.isDecorative}},ke=function(e,t){return{src:e.src.value,alt:0===e.alt.length&&t?null:e.alt,title:e.title,width:e.dimensions.width,height:e.dimensions.height,"class":e.classes,style:e.style,caption:e.caption,hspace:e.hspace,vspace:e.vspace,border:e.border,borderStyle:e.borderstyle,isDecorative:e.isDecorative}},ze=function(e,t){var n,r,i=t.getData();n=e,r=i.src.value,(/^(?:[a-zA-Z]+:)?\/\//.test(r)?S.none():n.prependURL.bind(function(e){return r.substring(0,e.length)!==e?S.some(e+r):S.none()})).each(function(e){t.setData({src:{value:e,meta:i.src.meta}})})},Be=function(e,t){var n,r,i,a,o=t.getData(),l=o.src.meta;l!==undefined&&(n=Ae({},o),i=n,a=l,(r=e).hasDescription&&v(a.alt)&&(i.alt=a.alt),r.hasAccessibilityOptions&&(i.isDecorative=a.isDecorative||i.isDecorative||!1),r.hasImageTitle&&v(a.title)&&(i.title=a.title),r.hasDimensions&&(v(a.width)&&(i.dimensions.width=a.width),v(a.height)&&(i.dimensions.height=a.height)),v(a["class"])&&Ne(r.classList,a["class"]).each(function(e){i.classes=e.value}),r.hasImageCaption&&d(a.caption)&&(i.caption=a.caption),r.hasAdvTab&&(v(a.style)&&(i.style=a.style),v(a.vspace)&&(i.vspace=a.vspace),v(a.border)&&(i.border=a.border),v(a.hspace)&&(i.hspace=a.hspace),v(a.borderstyle)&&(i.borderstyle=a.borderstyle)),t.setData(n))},He=function(e,t,n,r){var i,a,o,l,s,u,c,m,d,g,f,p;ze(t,r),Be(t,r),i=e,a=t,o=n,s=(l=r).getData(),u=s.src.value,(c=s.src.meta||{}).width||c.height||!a.hasDimensions||(0<u.length?i.imageSize(u).then(function(e){o.open&&l.setData({dimensions:e})})["catch"](function(e){return console.error(e)}):l.setData({dimensions:{width:"",height:""}})),m=t,d=n,f=(g=r).getData(),p=Ne(m.imageList,f.src.value),d.prevImage=p,g.setData({images:p.map(function(e){return e.value}).getOr("")})},Fe=function(e,t,n){var r,i,a,o,l,s=F(e(n.style)),u=Ae({},n);return u.vspace=(r=s)["margin-top"]&&r["margin-bottom"]&&r["margin-top"]===r["margin-bottom"]?B(String(r["margin-top"])):"",u.hspace=(i=s)["margin-right"]&&i["margin-left"]&&i["margin-right"]===i["margin-left"]?B(String(i["margin-right"])):"",u.border=(a=s)["border-width"]?B(String(a["border-width"])):"",u.borderstyle=(o=s)["border-style"]?String(o["border-style"]):"",u.style=(l=t)(e(l(s))),u},Ge=function(l,s,t,u){var e=u.getData();u.block("Uploading image"),L(e.fileinput).fold(function(){u.unblock()},function(n){var r,i=URL.createObjectURL(n),a=function(){u.unblock(),URL.revokeObjectURL(i)},o=function(e){u.setData({src:{value:e,meta:{}}}),u.showTab("general"),He(l,s,t,u)};r=n,new j(function(e,t){var n=new FileReader;n.onload=function(){e(n.result)},n.onerror=function(){t(n.error.message)},n.readAsDataURL(r)}).then(function(e){var t=l.createBlobCache(n,i,e);s.automaticUploads?l.uploadImage(t).then(function(e){o(e.url),a()})["catch"](function(e){a(),l.alertErr(e)}):(l.addToBlobCache(t),o(t.blobUri()),u.unblock())})})},We=function(h,b,v){return function(e,t){var n,r,i,a,o,l,s,u,c,m,d,g,f,p;"src"===t.name?He(h,b,v,e):"images"===t.name?(c=h,m=b,d=v,f=(g=e).getData(),(p=Ne(m.imageList,f.images)).each(function(e){""===f.alt||d.prevImage.map(function(e){return e.text===f.alt}).getOr(!1)?""===e.value?g.setData({src:e,alt:d.prevAlt}):g.setData({src:e,alt:e.text}):g.setData({src:e})}),d.prevImage=p,He(c,m,d,g)):"alt"===t.name?v.prevAlt=e.getData().alt:"style"===t.name?(o=h,s=(l=e).getData(),u=Fe(o.parseStyle,o.serializeStyle,s),l.setData(u)):"vspace"===t.name||"hspace"===t.name||"border"===t.name||"borderstyle"===t.name?(n=h,r=e,i=Ae(Re(b.image),r.getData()),a=ue(n.normalizeCss,ke(i,!1)),r.setData({style:a})):"fileinput"===t.name?Ge(h,b,v,e):"isDecorative"===t.name&&(e.getData().isDecorative?e.disable("alt"):e.enable("alt"))}},qe=function(a){return function(e){var t,n,r,i={prevImage:Ne((t=e).imageList,t.image.src),prevAlt:t.image.alt,open:!0};return{title:"Insert/Edit Image",size:"normal",body:(r=e).hasAdvTab||r.hasUploadUrl||r.hasUploadHandler?{type:"tabpanel",tabs:N([[Ee(r)],r.hasAdvTab?[Le(r)]:[],r.hasUploadTab&&(r.hasUploadUrl||r.hasUploadHandler)?[je(r)]:[]])}:{type:"panel",items:Me(r)},buttons:[{type:"cancel",name:"cancel",text:"Cancel"},{type:"submit",name:"save",text:"Save",primary:!0}],initialData:Re(e.image),onSubmit:a.onSubmit(e),onChange:We(a,e,i),onClose:(n=i,function(){n.open=!1})}}},Ve=function(t){return function(e){return i=t.documentBaseURI.toAbsolute(e),new j(function(t){var n=document.createElement("img"),r=function(e){n.parentNode&&n.parentNode.removeChild(n),t(e)};n.onload=function(){var e={width:z(n.width,n.clientWidth),height:z(n.height,n.clientHeight)};r(j.resolve(e))},n.onerror=function(){r(j.reject("Failed to get image dimensions for: "+i))};var e=n.style;e.visibility="hidden",e.position="fixed",e.bottom=e.left="0px",e.width=e.height="auto",document.body.appendChild(n),n.src=i}).then(function(e){return{width:String(e.width),height:String(e.height)}});var i}},$e=function(e){var t,n,r,i,a,o,l,s,u={onSubmit:function(n){return function(e){var t=Ae(Re(n.image),e.getData());s.execCommand("mceUpdateImage",!1,ke(t,n.hasAccessibilityOptions)),s.editorUpload.uploadImagesAuto(),e.close()}},imageSize:Ve(s=e),addToBlobCache:function(e){l.editorUpload.blobCache.add(e)},createBlobCache:function(e,t,n){return o.editorUpload.blobCache.create({blob:e,blobUri:t,name:e.name?e.name.replace(/\.[^\.]+$/,""):null,filename:e.name,base64:n.split(",")[1]})},alertErr:function(e){a.windowManager.alert(e)},normalizeCss:function(e){return pe(i,e)},parseStyle:function(e){return r.dom.parseStyle(e)},serializeStyle:function(e,t){return n.dom.serializeStyle(e,t)},uploadImage:(t=n=r=i=a=o=l=e,function(e){return we(t).upload([e],!1).then(function(e){return 0===e.length?j.reject("Failed to upload image"):!1===e[0].status?j.reject(e[0].error.message):e[0]})})};return{open:function(){Pe(e).then(qe(u)).then(e.windowManager.open)}}},Je=function(u){u.addCommand("mceImage",$e(u).open),u.addCommand("mceUpdateImage",function(e,s){u.undoManager.transact(function(){return e=s,void((l=he(t=u))?(n=ce(function(e){return pe(t,e)},l),(r=c(c({},n),e)).src?ye(t,r):(i=t,(a=l)&&(o=i.dom.is(a.parentNode,"figure.image")?a.parentNode:a,i.dom.remove(o),i.focus(),i.nodeChanged(),i.dom.isEmpty(i.getBody())&&(i.setContent(""),i.selection.setCursorLocation())))):e.src&&ve(t,c(c({},se()),e)));var t,e,n,r,i,a,o,l})})},Ke=function(a){return function(e){for(var t,n=e.length,r=function(e){e.attr("contenteditable",a?"true":null)};n--;){var i=e[n];(t=i.attr("class"))&&/\bimage\b/.test(t)&&(i.attr("contenteditable",a?"false":null),Se.each(i.getAll("figcaption"),r))}}};i.add("image",function(e){var t,n;(t=e).on("PreInit",function(){t.parser.addNodeFilter("figure",Ke(!0)),t.serializer.addNodeFilter("figure",Ke(!1))}),(n=e).ui.registry.addToggleButton("image",{icon:"image",tooltip:"Insert/edit image",onAction:$e(n).open,onSetup:function(e){return n.selection.selectorChangedWithUnbind("img:not([data-mce-object],[data-mce-placeholder]),figure.image",e.setActive).unbind}}),n.ui.registry.addMenuItem("image",{icon:"image",text:"Image...",onAction:$e(n).open}),n.ui.registry.addContextMenu("image",{update:function(e){return oe(e)||"IMG"===e.nodeName&&!G(e)?["image"]:[]}}),Je(e)})}();
9
+ !function(){"use strict";function e(r){return function(e){return n=typeof(t=e),(null===t?"null":"object"==n&&(Array.prototype.isPrototypeOf(t)||t.constructor&&"Array"===t.constructor.name)?"array":"object"==n&&(String.prototype.isPrototypeOf(t)||t.constructor&&"String"===t.constructor.name)?"string":n)===r;var t,n}}function t(t){return function(e){return typeof e===t}}function D(e){return!(null==e)}function l(){}function a(e){return function(){return e}}function n(e){return e}function r(){return g}var i,o=tinymce.util.Tools.resolve("tinymce.PluginManager"),v=function(){return(v=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var i in t=arguments[n])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e}).apply(this,arguments)},T=e("string"),s=e("object"),c=e("array"),N=t("boolean"),w=t("function"),u=t("number"),m=a(!1),d=a(!(i=null)),g={fold:function(e,t){return e()},isSome:m,isNone:d,getOr:n,getOrThunk:p,getOrDie:function(e){throw new Error(e||"error: getOrDie called on none.")},getOrNull:a(null),getOrUndefined:a(void 0),or:n,orThunk:p,map:r,each:l,bind:r,exists:m,forall:d,filter:function(){return g},toArray:function(){return[]},toString:a("none()")};function p(e){return e()}function f(e,a,o,l){return function(e){for(var t=y(e),n=0,r=t.length;n<r;n++){var i=t[n];!function(e,t){(a(e,t)?o:l)(e,t)}(e[i],i)}}(e),1}function h(e,t){return A.call(e,t)}function S(e){for(var t=[],n=0,r=e.length;n<r;++n){if(!c(e[n]))throw new Error("Arr.flatten item "+n+" was not an array, input: "+e);U.apply(t,e[n])}return t}var b=function(n){function e(){return i}function t(e){return e(n)}var r=a(n),i={fold:function(e,t){return t(n)},isSome:d,isNone:m,getOr:r,getOrThunk:r,getOrDie:r,getOrNull:r,getOrUndefined:r,or:e,orThunk:e,map:function(e){return b(e(n))},each:function(e){e(n)},bind:t,exists:t,forall:t,filter:function(e){return e(n)?i:g},toArray:function(){return[n]},toString:function(){return"some("+n+")"}};return i},L={some:b,none:r,from:function(e){return null==e?g:b(e)}},y=Object.keys,A=Object.hasOwnProperty,U=Array.prototype.push;function I(e,t,n){!function(e,t,n){if(!(T(n)||N(n)||u(n)))throw console.error("Invalid call to Attribute.set. Key ",t,":: Value ",n,":: Element ",e),new Error("Attribute value was not simple");e.setAttribute(t,n+"")}(e.dom,t,n)}function C(e){return e.getParam("image_dimensions",!0,"boolean")}function x(e,t){return Math.max(parseInt(e,10),parseInt(t,10))}function O(e){return e&&e.replace(/px$/,"")}function P(e){return 0<e.length&&/^[0-9]+$/.test(e)&&(e+="px"),e}function _(e){if(e.margin){var t=String(e.margin).split(" ");switch(t.length){case 1:e["margin-top"]=e["margin-top"]||t[0],e["margin-right"]=e["margin-right"]||t[0],e["margin-bottom"]=e["margin-bottom"]||t[0],e["margin-left"]=e["margin-left"]||t[0];break;case 2:e["margin-top"]=e["margin-top"]||t[0],e["margin-right"]=e["margin-right"]||t[1],e["margin-bottom"]=e["margin-bottom"]||t[0],e["margin-left"]=e["margin-left"]||t[1];break;case 3:e["margin-top"]=e["margin-top"]||t[0],e["margin-right"]=e["margin-right"]||t[1],e["margin-bottom"]=e["margin-bottom"]||t[2],e["margin-left"]=e["margin-left"]||t[1];break;case 4:e["margin-top"]=e["margin-top"]||t[0],e["margin-right"]=e["margin-right"]||t[1],e["margin-bottom"]=e["margin-bottom"]||t[2],e["margin-left"]=e["margin-left"]||t[3]}delete e.margin}return e}function E(e){return"IMG"===e.nodeName&&(e.hasAttribute("data-mce-object")||e.hasAttribute("data-mce-placeholder"))}function R(e,t){return we.isDomSafe(t,"img",e.settings)}function k(e){return e.style.marginLeft&&e.style.marginRight&&e.style.marginLeft===e.style.marginRight?O(e.style.marginLeft):""}function z(e){return e.style.marginTop&&e.style.marginBottom&&e.style.marginTop===e.style.marginBottom?O(e.style.marginTop):""}function M(e){return e.style.borderWidth?O(e.style.borderWidth):""}function j(e,t){return e.hasAttribute(t)?e.getAttribute(t):""}function B(e,t){return e.style[t]||""}function H(e){return null!==e.parentNode&&"FIGURE"===e.parentNode.nodeName}function F(e,t,n){""===n?e.removeAttribute(t):e.setAttribute(t,n)}function G(e,t){var n=e.getAttribute("style"),r=t(null!==n?n:"");0<r.length?(e.setAttribute("style",r),e.setAttribute("data-mce-style",r)):e.removeAttribute("style")}function W(e,r){return function(e,t,n){e.style[t]?(e.style[t]=P(n),G(e,r)):F(e,t,n)}}function V(e,t){return e.style[t]?O(e.style[t]):j(e,t)}function $(e,t){var n=P(t);e.style.marginLeft=n,e.style.marginRight=n}function J(e,t){var n=P(t);e.style.marginTop=n,e.style.marginBottom=n}function K(e,t){var n=P(t);e.style.borderWidth=n}function X(e,t){e.style.borderStyle=t}function Z(e){return"FIGURE"===e.nodeName}function q(e){return 0===Ue.getAttrib(e,"alt").length&&"presentation"===Ue.getAttrib(e,"role")}function Q(){return{src:"",alt:"",title:"",width:"",height:"",class:"",style:"",caption:!1,hspace:"",vspace:"",border:"",borderStyle:"",isDecorative:!1}}function Y(e,t){return{src:j(t,"src"),alt:q(n=t)?"":j(n,"alt"),title:j(t,"title"),width:V(t,"width"),height:V(t,"height"),class:j(t,"class"),style:e(j(t,"style")),caption:H(t),hspace:k(t),vspace:z(t),border:M(t),borderStyle:B(t,"borderStyle"),isDecorative:q(t)};var n}function ee(e,t,n,r,i){n[r]!==t[r]&&i(e,r,n[r])}function te(r,i){return function(e,t,n){r(e,n),G(e,i)}}function ne(e,t){var n=_(e.dom.styles.parse(t)),r=e.dom.styles.parse(e.dom.styles.serialize(n));return e.dom.styles.serialize(r)}function re(e){var t=e.selection.getNode(),n=e.dom.getParent(t,"figure.image");return n?e.dom.select("img",n)[0]:t&&("IMG"!==t.nodeName||E(t))?null:t}function ie(n,e){var r,t,i=n.dom,a=(f(n.schema.getTextBlockElements(),function(e,t){return!n.schema.isValidChild(t,"figure")},(r=t={},function(e,t){r[t]=e}),l),t),o=i.getParent(e.parentNode,function(e){return h(t=a,n=e.nodeName)&&null!=t[n];var t,n},n.getBody());return o?i.split(o,e):e}function ae(r,e){var t=function(e){var t=document.createElement("img");if(Ce(function(e){return ne(r,e)},v(v({},e),{caption:!1}),t),Ie(t,e.alt,e.isDecorative),e.caption){var n=Ue.create("figure",{class:"image"});return n.appendChild(t),n.appendChild(Ue.create("figcaption",{contentEditable:"true"},"Caption")),n.contentEditable="false",n}return t}(e);r.dom.setAttrib(t,"data-mce-id","__mcenew"),r.focus(),r.selection.setContent(t.outerHTML);var n,i=r.dom.select('*[data-mce-id="__mcenew"]')[0];r.dom.setAttrib(i,"data-mce-id",null),Z(i)?(n=ie(r,i),r.selection.select(n)):r.selection.select(i)}function oe(t,e){var n,r,i,a,o,l,s,c,u,m,d,g,p,f,h,b=re(t);function y(){f.onload=f.onerror=null,g.selection&&(g.selection.select(f),g.nodeChanged())}b?(n=Y(function(e){return ne(t,e)},b),r=v(v({},n),e),s=t,c=r.src,i=v(v({},r),{src:R(s,c)?c:""}),r.src?(m=i,h=re(u=t),Ce(function(e){return ne(u,e)},m,h),u.dom.setAttrib(h,"src",h.getAttribute("src")),Z(h.parentNode)?(d=h.parentNode,ie(u,d),u.selection.select(h.parentNode)):(u.selection.select(h),g=u,p=m,(f=h).onload=function(){p.width||p.height||!C(g)||g.dom.setAttribs(f,{width:String(f.clientWidth),height:String(f.clientHeight)}),y()},f.onerror=y)):(a=t,(o=b)&&(l=a.dom.is(o.parentNode,"figure.image")?o.parentNode:o,a.dom.remove(l),a.focus(),a.nodeChanged(),a.dom.isEmpty(a.getBody())&&(a.setContent(""),a.selection.setCursorLocation())))):e.src&&ae(t,v(v({},Q()),e))}function le(e){return T(e.value)?e.value:""}function se(t){return void 0===t&&(t=le),function(e){return e?L.from(e).map(function(e){return Ne(e,t)}):L.none()}}function ce(e){var t=e.imageList.map(function(e){return{name:"images",type:"listbox",label:"Image list",items:e}}),n={name:"alt",type:"input",label:"Alternative description",disabled:e.hasAccessibilityOptions&&e.image.isDecorative},r=e.classList.map(function(e){return{name:"classes",type:"listbox",label:"Class",items:e}});return S([[{name:"src",type:"urlinput",filetype:"image",label:"Source"}],t.toArray(),e.hasAccessibilityOptions&&e.hasDescription?[{type:"label",label:"Accessibility",items:[{name:"isDecorative",type:"checkbox",label:"Image is decorative"}]}]:[],e.hasDescription?[n]:[],e.hasImageTitle?[{name:"title",type:"input",label:"Image title"}]:[],e.hasDimensions?[{name:"dimensions",type:"sizeinput"}]:[],[v(v({},e.classList.isSome()&&e.hasImageCaption?{type:"grid",columns:2}:{type:"panel"}),{items:S([r.toArray(),e.hasImageCaption?[{type:"label",label:"Caption",items:[{type:"checkbox",name:"caption",label:"Show caption"}]}]:[]])})]])}function ue(e){return{src:{value:e.src,meta:{}},images:e.src,alt:e.alt,title:e.title,dimensions:{width:e.width,height:e.height},classes:e.class,caption:e.caption,style:e.style,vspace:e.vspace,border:e.border,hspace:e.hspace,borderstyle:e.borderStyle,fileinput:[],isDecorative:e.isDecorative}}function me(e,t){return{src:e.src.value,alt:0===e.alt.length&&t?null:e.alt,title:e.title,width:e.dimensions.width,height:e.dimensions.height,class:e.classes,style:e.style,caption:e.caption,hspace:e.hspace,vspace:e.vspace,border:e.border,borderStyle:e.borderstyle,isDecorative:e.isDecorative}}function de(e,t,n,r){var i,a,o,l,s,c,u,m,d,g,p,f,h,b,y,v,A,D,w,S,U,I,C,x,O;U=t,C=(I=r).getData(),x=U,O=C.src.value,(/^(?:[a-zA-Z]+:)?\/\//.test(O)?L.none():x.prependURL.bind(function(e){return O.substring(0,e.length)!==e?L.some(e+O):L.none()})).each(function(e){I.setData({src:{value:e,meta:C.src.meta}})}),h=t,w=(b=r).getData(),void 0!==(S=w.src.meta)&&(y=xe({},w),A=y,D=S,(v=h).hasDescription&&T(D.alt)&&(A.alt=D.alt),v.hasAccessibilityOptions&&(A.isDecorative=D.isDecorative||A.isDecorative||!1),v.hasImageTitle&&T(D.title)&&(A.title=D.title),v.hasDimensions&&(T(D.width)&&(A.dimensions.width=D.width),T(D.height)&&(A.dimensions.height=D.height)),T(D.class)&&Ee(v.classList,D.class).each(function(e){A.classes=e.value}),v.hasImageCaption&&N(D.caption)&&(A.caption=D.caption),v.hasAdvTab&&(T(D.style)&&(A.style=D.style),T(D.vspace)&&(A.vspace=D.vspace),T(D.border)&&(A.border=D.border),T(D.hspace)&&(A.hspace=D.hspace),T(D.borderstyle)&&(A.borderstyle=D.borderstyle)),b.setData(y)),i=e,a=t,o=n,c=(s=(l=r).getData()).src.value,(u=s.src.meta||{}).width||u.height||!a.hasDimensions||(0<c.length?i.imageSize(c).then(function(e){o.open&&l.setData({dimensions:e})}).catch(function(e){return console.error(e)}):l.setData({dimensions:{width:"",height:""}})),m=t,d=n,p=(g=r).getData(),f=Ee(m.imageList,p.src.value),d.prevImage=f,g.setData({images:f.map(function(e){return e.value}).getOr("")})}function ge(l,s,t,c){var e,n=c.getData();c.block("Uploading image"),(0<(e=n.fileinput).length?L.some(e[0]):L.none()).fold(function(){c.unblock()},function(n){function r(){c.unblock(),URL.revokeObjectURL(a)}function i(e){c.setData({src:{value:e,meta:{}}}),c.showTab("general"),de(l,s,t,c)}var a=URL.createObjectURL(n),o=n;new De(function(e,t){var n=new FileReader;n.onload=function(){e(n.result)},n.onerror=function(){t(n.error.message)},n.readAsDataURL(o)}).then(function(e){var t=l.createBlobCache(n,a,e);s.automaticUploads?l.uploadImage(t).then(function(e){i(e.url),r()}).catch(function(e){r(),l.alertErr(e)}):(l.addToBlobCache(t),i(t.blobUri()),c.unblock())})})}function pe(S,U,I){return function(e,t){var n,r,i,a,o,l,s,c,u,m,d,g,p,f,h,b,y,v,A,D,w;"src"===t.name?de(S,U,I,e):"images"===t.name?(c=S,u=U,m=I,g=(d=e).getData(),(p=Ee(u.imageList,g.images)).each(function(e){""===g.alt||m.prevImage.map(function(e){return e.text===g.alt}).getOr(!1)?""===e.value?d.setData({src:e,alt:m.prevAlt}):d.setData({src:e,alt:e.text}):d.setData({src:e})}),m.prevImage=p,de(c,u,m,d)):"alt"===t.name?I.prevAlt=e.getData().alt:"style"===t.name?(o=S,s=(l=e).getData(),y=o.parseStyle,v=o.serializeStyle,D=_(y((A=s).style)),(w=xe({},A)).vspace=D["margin-top"]&&D["margin-bottom"]&&D["margin-top"]===D["margin-bottom"]?O(String(D["margin-top"])):"",w.hspace=D["margin-right"]&&D["margin-left"]&&D["margin-right"]===D["margin-left"]?O(String(D["margin-right"])):"",w.border=D["border-width"]?O(String(D["border-width"])):"",w.borderstyle=D["border-style"]?String(D["border-style"]):"",w.style=v(y(v(D))),l.setData(w)):"vspace"===t.name||"hspace"===t.name||"border"===t.name||"borderstyle"===t.name?(n=S,i=xe(ue(U.image),(r=e).getData()),f=n.normalizeCss,h=me(i,!1),F(b=document.createElement("img"),"style",h.style),!k(b)&&""===h.hspace||$(b,h.hspace),!z(b)&&""===h.vspace||J(b,h.vspace),!M(b)&&""===h.border||K(b,h.border),!B(b,"borderStyle")&&""===h.borderStyle||X(b,h.borderStyle),a=f(b.getAttribute("style")),r.setData({style:a})):"fileinput"===t.name?ge(S,U,I,e):"isDecorative"===t.name&&(e.getData().isDecorative?e.disable("alt"):e.enable("alt"))}}function fe(v){var t,n,r,i,a,o,l,s,c,A={onSubmit:function(n){return function(e){var t=xe(ue(n.image),e.getData());c.execCommand("mceUpdateImage",!1,me(t,n.hasAccessibilityOptions)),c.editorUpload.uploadImagesAuto(),e.close()}},imageSize:function(e){return R(s,e)?(i=s.documentBaseURI.toAbsolute(e),new De(function(t){function n(e){r.onload=r.onerror=null,r.parentNode&&r.parentNode.removeChild(r),t(e)}var r=document.createElement("img");r.onload=function(){var e=x(r.width,r.clientWidth),t=x(r.height,r.clientHeight);n(De.resolve({width:e,height:t}))},r.onerror=function(){n(De.reject("Failed to get image dimensions for: "+i))};var e=r.style;e.visibility="hidden",e.position="fixed",e.bottom=e.left="0px",e.width=e.height="auto",document.body.appendChild(r),r.src=i}).then(function(e){return{width:String(e.width),height:String(e.height)}})):De.resolve({width:"",height:""});var i},addToBlobCache:function(e){l.editorUpload.blobCache.add(e)},createBlobCache:function(e,t,n){return o.editorUpload.blobCache.create({blob:e,blobUri:t,name:e.name?e.name.replace(/\.[^\.]+$/,""):null,filename:e.name,base64:n.split(",")[1]})},alertErr:function(e){a.windowManager.alert(e)},normalizeCss:function(e){return ne(i,e)},parseStyle:function(e){return r.dom.parseStyle(e)},serializeStyle:function(e,t){return n.dom.serializeStyle(e,t)},uploadImage:(t=n=r=i=a=o=l=s=c=v,function(e){return Oe(t).upload([e],!1).then(function(e){return 0===e.length?De.reject("Failed to upload image"):!1===e[0].status?De.reject(e[0].error.message):e[0]})})};return{open:function(){var a,r,t,e,i,n,o,l,s,c,u,m,d,g,p,f,h,b,y;r=v,i=Pe(function(e){return r.convertURL(e.value||e.url,"src")}),n=new De(function(t){var n=function(e){t(i(e).map(function(e){return S([[{text:"None",value:""}],e])}))},e=r.getParam("image_list",!1);T(e)?Se.send({url:e,success:function(e){n(JSON.parse(e))}}):w(e)?e(n):n(e)}),o=_e(r.getParam("image_class_list")),l=r.getParam("image_advtab",!1,"boolean"),s=r.getParam("image_uploadtab",!0,"boolean"),c=D(r.getParam("images_upload_url")),u=D(r.getParam("images_upload_handler")),m=(e=re(t=r))?Y(function(e){return ne(t,e)},e):Q(),d=r.getParam("image_description",!0,"boolean"),g=r.getParam("image_title",!1,"boolean"),p=C(r),f=r.getParam("image_caption",!1,"boolean"),h=r.getParam("a11y_advanced_options",!1,"boolean"),b=r.getParam("automatic_uploads",!0,"boolean"),y=L.some(r.getParam("image_prepend_url","","string")).filter(function(e){return T(e)&&0<e.length}),n.then(function(e){return{image:m,imageList:e,classList:o,hasAdvTab:l,hasUploadTab:s,hasUploadUrl:c,hasUploadHandler:u,hasDescription:d,hasImageTitle:g,hasDimensions:p,hasImageCaption:f,prependURL:y,hasAccessibilityOptions:h,automaticUploads:b}}).then((a=A,function(e){var t,n,r,i={prevImage:Ee((t=e).imageList,t.image.src),prevAlt:t.image.alt,open:!0};return{title:"Insert/Edit Image",size:"normal",body:(r=e).hasAdvTab||r.hasUploadUrl||r.hasUploadHandler?{type:"tabpanel",tabs:S([[ke(r)],r.hasAdvTab?[Re(r)]:[],r.hasUploadTab&&(r.hasUploadUrl||r.hasUploadHandler)?[Me(r)]:[]])}:{type:"panel",items:ze(r)},buttons:[{type:"cancel",name:"cancel",text:"Cancel"},{type:"submit",name:"save",text:"Save",primary:!0}],initialData:ue(e.image),onSubmit:a.onSubmit(e),onChange:pe(a,e,i),onClose:(n=i,function(){n.open=!1})}})).then(v.windowManager.open)}}}function he(a){return function(e){for(var t=e.length,n=function(e){e.attr("contenteditable",a?"true":null)};t--;){var r,i=e[t];(r=i.attr("class"))&&/\bimage\b/.test(r)&&(i.attr("contenteditable",a?"false":null),Te.each(i.getAll("figcaption"),n))}}}"undefined"!=typeof window||Function("return this;")();function be(e){if(null==e)throw new Error("Node cannot be null or undefined");return{dom:e}}var ye,ve=be,Ae=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),De=tinymce.util.Tools.resolve("tinymce.util.Promise"),we=tinymce.util.Tools.resolve("tinymce.util.URI"),Se=tinymce.util.Tools.resolve("tinymce.util.XHR"),Ue=Ae.DOM,Ie=function(e,t,n){n?(Ue.setAttrib(e,"role","presentation"),I(ve(e),"alt","")):(i===t?ve(e).dom.removeAttribute("alt"):I(ve(e),"alt",t),"presentation"===Ue.getAttrib(e,"role")&&Ue.setAttrib(e,"role",""))},Ce=function(e,t,n){var r=Y(e,n);ee(n,r,t,"caption",function(e,t,n){return H(r=e)?(o=r.parentNode,Ue.insertAfter(r,o),Ue.remove(o)):(i=r,a=Ue.create("figure",{class:"image"}),Ue.insertAfter(a,i),a.appendChild(i),a.appendChild(Ue.create("figcaption",{contentEditable:"true"},"Caption")),a.contentEditable="false"),0;var r,i,a,o}),ee(n,r,t,"src",F),ee(n,r,t,"title",F),ee(n,r,t,"width",W(0,e)),ee(n,r,t,"height",W(0,e)),ee(n,r,t,"class",F),ee(n,r,t,"style",te(function(e,t){return F(e,"style",t),0},e)),ee(n,r,t,"hspace",te($,e)),ee(n,r,t,"vspace",te(J,e)),ee(n,r,t,"border",te(K,e)),ee(n,r,t,"borderStyle",te(X,e)),t.alt===r.alt&&t.isDecorative===r.isDecorative||Ie(n,t.alt,t.isDecorative)},xe=(ye=function(e,t){return s(e)&&s(t)?xe(e,t):t},function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];if(0===e.length)throw new Error("Can't merge zero objects");for(var n={},r=0;r<e.length;r++){var i,a=e[r];for(i in a)h(a,i)&&(n[i]=ye(n[i],a[i]))}return n}),Oe=tinymce.util.Tools.resolve("tinymce.util.ImageUploader"),Te=tinymce.util.Tools.resolve("tinymce.util.Tools"),Ne=function(e,a){var o=[];return Te.each(e,function(e){var t,n,r,i=T((t=e).text)?t.text:T(t.title)?t.title:"";void 0!==e.menu?(n=Ne(e.menu,a),o.push({text:i,items:n})):(r=a(e),o.push({text:i,value:r}))}),o},Le=function(e,i){return function(e){for(var t,n=0;n<e.length;n++){var r=h(t=e[n],"items")?Le(t.items,i):t.value===i?L.some(t):L.none();if(r.isSome())return r}return L.none()}(e)},Pe=se,_e=function(e){return se(le)(e)},Ee=function(e,t){return e.bind(function(e){return Le(e,t)})},Re=function(e){return{title:"Advanced",name:"advanced",items:[{type:"input",label:"Style",name:"style"},{type:"grid",columns:2,items:[{type:"input",label:"Vertical space",name:"vspace",inputMode:"numeric"},{type:"input",label:"Horizontal space",name:"hspace",inputMode:"numeric"},{type:"input",label:"Border width",name:"border",inputMode:"numeric"},{type:"listbox",name:"borderstyle",label:"Border style",items:[{text:"Select...",value:""},{text:"Solid",value:"solid"},{text:"Dotted",value:"dotted"},{text:"Dashed",value:"dashed"},{text:"Double",value:"double"},{text:"Groove",value:"groove"},{text:"Ridge",value:"ridge"},{text:"Inset",value:"inset"},{text:"Outset",value:"outset"},{text:"None",value:"none"},{text:"Hidden",value:"hidden"}]}]}]}},ke=function(e){return{title:"General",name:"general",items:ce(e)}},ze=ce,Me=function(e){return{title:"Upload",name:"upload",items:[{type:"dropzone",name:"fileinput"}]}};o.add("image",function(e){var t,n,r;(t=e).on("PreInit",function(){t.parser.addNodeFilter("figure",he(!0)),t.serializer.addNodeFilter("figure",he(!1))}),(n=e).ui.registry.addToggleButton("image",{icon:"image",tooltip:"Insert/edit image",onAction:fe(n).open,onSetup:function(e){return e.setActive(D(re(n))),n.selection.selectorChangedWithUnbind("img:not([data-mce-object],[data-mce-placeholder]),figure.image",e.setActive).unbind}}),n.ui.registry.addMenuItem("image",{icon:"image",text:"Image...",onAction:fe(n).open}),n.ui.registry.addContextMenu("image",{update:function(e){return Z(e)||"IMG"===e.nodeName&&!E(e)?["image"]:[]}}),(r=e).addCommand("mceImage",fe(r).open),r.addCommand("mceUpdateImage",function(e,t){r.undoManager.transact(function(){return oe(r,t)})})})}();