@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,7 +4,7 @@
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';
@@ -23,15 +23,33 @@
23
23
  };
24
24
  };
25
25
 
26
- var global = tinymce.util.Tools.resolve('tinymce.PluginManager');
26
+ var global$5 = tinymce.util.Tools.resolve('tinymce.PluginManager');
27
27
 
28
- var global$1 = tinymce.util.Tools.resolve('tinymce.util.Tools');
28
+ var global$4 = tinymce.util.Tools.resolve('tinymce.util.Tools');
29
29
 
30
+ var typeOf = function (x) {
31
+ var t = typeof x;
32
+ if (x === null) {
33
+ return 'null';
34
+ } else if (t === 'object' && (Array.prototype.isPrototypeOf(x) || x.constructor && x.constructor.name === 'Array')) {
35
+ return 'array';
36
+ } else if (t === 'object' && (String.prototype.isPrototypeOf(x) || x.constructor && x.constructor.name === 'String')) {
37
+ return 'string';
38
+ } else {
39
+ return t;
40
+ }
41
+ };
42
+ var isType = function (type) {
43
+ return function (value) {
44
+ return typeOf(value) === type;
45
+ };
46
+ };
30
47
  var isSimpleType = function (type) {
31
48
  return function (value) {
32
49
  return typeof value === type;
33
50
  };
34
51
  };
52
+ var isArray = isType('array');
35
53
  var isNullable = function (a) {
36
54
  return a === null || a === undefined;
37
55
  };
@@ -47,6 +65,9 @@
47
65
  return value;
48
66
  };
49
67
  };
68
+ var identity = function (x) {
69
+ return x;
70
+ };
50
71
  var never = constant(false);
51
72
  var always = constant(true);
52
73
 
@@ -54,20 +75,14 @@
54
75
  return NONE;
55
76
  };
56
77
  var NONE = function () {
57
- var eq = function (o) {
58
- return o.isNone();
59
- };
60
78
  var call = function (thunk) {
61
79
  return thunk();
62
80
  };
63
- var id = function (n) {
64
- return n;
65
- };
81
+ var id = identity;
66
82
  var me = {
67
83
  fold: function (n, _s) {
68
84
  return n();
69
85
  },
70
- is: never,
71
86
  isSome: never,
72
87
  isNone: always,
73
88
  getOr: id,
@@ -84,9 +99,9 @@
84
99
  bind: none,
85
100
  exists: never,
86
101
  forall: always,
87
- filter: none,
88
- equals: eq,
89
- equals_: eq,
102
+ filter: function () {
103
+ return none();
104
+ },
90
105
  toArray: function () {
91
106
  return [];
92
107
  },
@@ -106,9 +121,6 @@
106
121
  fold: function (n, s) {
107
122
  return s(a);
108
123
  },
109
- is: function (v) {
110
- return a === v;
111
- },
112
124
  isSome: always,
113
125
  isNone: never,
114
126
  getOr: constant_a,
@@ -135,14 +147,6 @@
135
147
  },
136
148
  toString: function () {
137
149
  return 'some(' + a + ')';
138
- },
139
- equals: function (o) {
140
- return o.is(a);
141
- },
142
- equals_: function (o, elementEq) {
143
- return o.fold(never, function (b) {
144
- return elementEq(a, b);
145
- });
146
150
  }
147
151
  };
148
152
  return me;
@@ -156,11 +160,226 @@
156
160
  from: from
157
161
  };
158
162
 
159
- var create = function (width, height) {
163
+ var exports$1 = {}, module = { exports: exports$1 };
164
+ (function (define, exports, module, require) {
165
+ (function (global, factory) {
166
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof define === 'function' && define.amd ? define(factory) : (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.EphoxContactWrapper = factory());
167
+ }(this, function () {
168
+ var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
169
+ var promise = { exports: {} };
170
+ (function (module) {
171
+ (function (root) {
172
+ var setTimeoutFunc = setTimeout;
173
+ function noop() {
174
+ }
175
+ function bind(fn, thisArg) {
176
+ return function () {
177
+ fn.apply(thisArg, arguments);
178
+ };
179
+ }
180
+ function Promise(fn) {
181
+ if (typeof this !== 'object')
182
+ throw new TypeError('Promises must be constructed via new');
183
+ if (typeof fn !== 'function')
184
+ throw new TypeError('not a function');
185
+ this._state = 0;
186
+ this._handled = false;
187
+ this._value = undefined;
188
+ this._deferreds = [];
189
+ doResolve(fn, this);
190
+ }
191
+ function handle(self, deferred) {
192
+ while (self._state === 3) {
193
+ self = self._value;
194
+ }
195
+ if (self._state === 0) {
196
+ self._deferreds.push(deferred);
197
+ return;
198
+ }
199
+ self._handled = true;
200
+ Promise._immediateFn(function () {
201
+ var cb = self._state === 1 ? deferred.onFulfilled : deferred.onRejected;
202
+ if (cb === null) {
203
+ (self._state === 1 ? resolve : reject)(deferred.promise, self._value);
204
+ return;
205
+ }
206
+ var ret;
207
+ try {
208
+ ret = cb(self._value);
209
+ } catch (e) {
210
+ reject(deferred.promise, e);
211
+ return;
212
+ }
213
+ resolve(deferred.promise, ret);
214
+ });
215
+ }
216
+ function resolve(self, newValue) {
217
+ try {
218
+ if (newValue === self)
219
+ throw new TypeError('A promise cannot be resolved with itself.');
220
+ if (newValue && (typeof newValue === 'object' || typeof newValue === 'function')) {
221
+ var then = newValue.then;
222
+ if (newValue instanceof Promise) {
223
+ self._state = 3;
224
+ self._value = newValue;
225
+ finale(self);
226
+ return;
227
+ } else if (typeof then === 'function') {
228
+ doResolve(bind(then, newValue), self);
229
+ return;
230
+ }
231
+ }
232
+ self._state = 1;
233
+ self._value = newValue;
234
+ finale(self);
235
+ } catch (e) {
236
+ reject(self, e);
237
+ }
238
+ }
239
+ function reject(self, newValue) {
240
+ self._state = 2;
241
+ self._value = newValue;
242
+ finale(self);
243
+ }
244
+ function finale(self) {
245
+ if (self._state === 2 && self._deferreds.length === 0) {
246
+ Promise._immediateFn(function () {
247
+ if (!self._handled) {
248
+ Promise._unhandledRejectionFn(self._value);
249
+ }
250
+ });
251
+ }
252
+ for (var i = 0, len = self._deferreds.length; i < len; i++) {
253
+ handle(self, self._deferreds[i]);
254
+ }
255
+ self._deferreds = null;
256
+ }
257
+ function Handler(onFulfilled, onRejected, promise) {
258
+ this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null;
259
+ this.onRejected = typeof onRejected === 'function' ? onRejected : null;
260
+ this.promise = promise;
261
+ }
262
+ function doResolve(fn, self) {
263
+ var done = false;
264
+ try {
265
+ fn(function (value) {
266
+ if (done)
267
+ return;
268
+ done = true;
269
+ resolve(self, value);
270
+ }, function (reason) {
271
+ if (done)
272
+ return;
273
+ done = true;
274
+ reject(self, reason);
275
+ });
276
+ } catch (ex) {
277
+ if (done)
278
+ return;
279
+ done = true;
280
+ reject(self, ex);
281
+ }
282
+ }
283
+ Promise.prototype['catch'] = function (onRejected) {
284
+ return this.then(null, onRejected);
285
+ };
286
+ Promise.prototype.then = function (onFulfilled, onRejected) {
287
+ var prom = new this.constructor(noop);
288
+ handle(this, new Handler(onFulfilled, onRejected, prom));
289
+ return prom;
290
+ };
291
+ Promise.all = function (arr) {
292
+ var args = Array.prototype.slice.call(arr);
293
+ return new Promise(function (resolve, reject) {
294
+ if (args.length === 0)
295
+ return resolve([]);
296
+ var remaining = args.length;
297
+ function res(i, val) {
298
+ try {
299
+ if (val && (typeof val === 'object' || typeof val === 'function')) {
300
+ var then = val.then;
301
+ if (typeof then === 'function') {
302
+ then.call(val, function (val) {
303
+ res(i, val);
304
+ }, reject);
305
+ return;
306
+ }
307
+ }
308
+ args[i] = val;
309
+ if (--remaining === 0) {
310
+ resolve(args);
311
+ }
312
+ } catch (ex) {
313
+ reject(ex);
314
+ }
315
+ }
316
+ for (var i = 0; i < args.length; i++) {
317
+ res(i, args[i]);
318
+ }
319
+ });
320
+ };
321
+ Promise.resolve = function (value) {
322
+ if (value && typeof value === 'object' && value.constructor === Promise) {
323
+ return value;
324
+ }
325
+ return new Promise(function (resolve) {
326
+ resolve(value);
327
+ });
328
+ };
329
+ Promise.reject = function (value) {
330
+ return new Promise(function (resolve, reject) {
331
+ reject(value);
332
+ });
333
+ };
334
+ Promise.race = function (values) {
335
+ return new Promise(function (resolve, reject) {
336
+ for (var i = 0, len = values.length; i < len; i++) {
337
+ values[i].then(resolve, reject);
338
+ }
339
+ });
340
+ };
341
+ Promise._immediateFn = typeof setImmediate === 'function' ? function (fn) {
342
+ setImmediate(fn);
343
+ } : function (fn) {
344
+ setTimeoutFunc(fn, 0);
345
+ };
346
+ Promise._unhandledRejectionFn = function _unhandledRejectionFn(err) {
347
+ if (typeof console !== 'undefined' && console) {
348
+ console.warn('Possible Unhandled Promise Rejection:', err);
349
+ }
350
+ };
351
+ Promise._setImmediateFn = function _setImmediateFn(fn) {
352
+ Promise._immediateFn = fn;
353
+ };
354
+ Promise._setUnhandledRejectionFn = function _setUnhandledRejectionFn(fn) {
355
+ Promise._unhandledRejectionFn = fn;
356
+ };
357
+ if (module.exports) {
358
+ module.exports = Promise;
359
+ } else if (!root.Promise) {
360
+ root.Promise = Promise;
361
+ }
362
+ }(commonjsGlobal));
363
+ }(promise));
364
+ var promisePolyfill = promise.exports;
365
+ var Global = function () {
366
+ if (typeof window !== 'undefined') {
367
+ return window;
368
+ } else {
369
+ return Function('return this;')();
370
+ }
371
+ }();
372
+ var promisePolyfill_1 = { boltExport: Global.Promise || promisePolyfill };
373
+ return promisePolyfill_1;
374
+ }));
375
+ }(undefined, exports$1, module));
376
+ var Promise$1 = module.exports.boltExport;
377
+
378
+ var create$1 = function (width, height) {
160
379
  return resize(document.createElement('canvas'), width, height);
161
380
  };
162
381
  var clone = function (canvas) {
163
- var tCanvas = create(canvas.width, canvas.height);
382
+ var tCanvas = create$1(canvas.width, canvas.height);
164
383
  var ctx = get2dContext(tCanvas);
165
384
  ctx.drawImage(canvas, 0, 0);
166
385
  return tCanvas;
@@ -181,196 +400,15 @@
181
400
  return image.naturalHeight || image.height;
182
401
  };
183
402
 
184
- var promise = function () {
185
- var Promise = function (fn) {
186
- if (typeof this !== 'object') {
187
- throw new TypeError('Promises must be constructed via new');
188
- }
189
- if (typeof fn !== 'function') {
190
- throw new TypeError('not a function');
191
- }
192
- this._state = null;
193
- this._value = null;
194
- this._deferreds = [];
195
- doResolve(fn, bind(resolve, this), bind(reject, this));
196
- };
197
- var anyWindow = window;
198
- var asap = Promise.immediateFn || typeof anyWindow.setImmediate === 'function' && anyWindow.setImmediate || function (fn) {
199
- return setTimeout(fn, 1);
200
- };
201
- var bind = function (fn, thisArg) {
202
- return function () {
203
- var args = [];
204
- for (var _i = 0; _i < arguments.length; _i++) {
205
- args[_i] = arguments[_i];
206
- }
207
- return fn.apply(thisArg, args);
208
- };
209
- };
210
- var isArray = Array.isArray || function (value) {
211
- return Object.prototype.toString.call(value) === '[object Array]';
212
- };
213
- function handle(deferred) {
214
- var me = this;
215
- if (this._state === null) {
216
- this._deferreds.push(deferred);
217
- return;
218
- }
219
- asap(function () {
220
- var cb = me._state ? deferred.onFulfilled : deferred.onRejected;
221
- if (cb === null) {
222
- (me._state ? deferred.resolve : deferred.reject)(me._value);
223
- return;
224
- }
225
- var ret;
226
- try {
227
- ret = cb(me._value);
228
- } catch (e) {
229
- deferred.reject(e);
230
- return;
231
- }
232
- deferred.resolve(ret);
233
- });
234
- }
235
- function resolve(newValue) {
236
- try {
237
- if (newValue === this) {
238
- throw new TypeError('A promise cannot be resolved with itself.');
239
- }
240
- if (newValue && (typeof newValue === 'object' || typeof newValue === 'function')) {
241
- var then = newValue.then;
242
- if (typeof then === 'function') {
243
- doResolve(bind(then, newValue), bind(resolve, this), bind(reject, this));
244
- return;
245
- }
246
- }
247
- this._state = true;
248
- this._value = newValue;
249
- finale.call(this);
250
- } catch (e) {
251
- reject.call(this, e);
252
- }
253
- }
254
- function reject(newValue) {
255
- this._state = false;
256
- this._value = newValue;
257
- finale.call(this);
258
- }
259
- function finale() {
260
- for (var _i = 0, _a = this._deferreds; _i < _a.length; _i++) {
261
- var deferred = _a[_i];
262
- handle.call(this, deferred);
263
- }
264
- this._deferreds = [];
265
- }
266
- function Handler(onFulfilled, onRejected, resolve, reject) {
267
- this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null;
268
- this.onRejected = typeof onRejected === 'function' ? onRejected : null;
269
- this.resolve = resolve;
270
- this.reject = reject;
271
- }
272
- var doResolve = function (fn, onFulfilled, onRejected) {
273
- var done = false;
274
- try {
275
- fn(function (value) {
276
- if (done) {
277
- return;
278
- }
279
- done = true;
280
- onFulfilled(value);
281
- }, function (reason) {
282
- if (done) {
283
- return;
284
- }
285
- done = true;
286
- onRejected(reason);
287
- });
288
- } catch (ex) {
289
- if (done) {
290
- return;
291
- }
292
- done = true;
293
- onRejected(ex);
294
- }
295
- };
296
- Promise.prototype.catch = function (onRejected) {
297
- return this.then(null, onRejected);
298
- };
299
- Promise.prototype.then = function (onFulfilled, onRejected) {
300
- var me = this;
301
- return new Promise(function (resolve, reject) {
302
- handle.call(me, new Handler(onFulfilled, onRejected, resolve, reject));
303
- });
304
- };
305
- Promise.all = function () {
306
- var values = [];
307
- for (var _i = 0; _i < arguments.length; _i++) {
308
- values[_i] = arguments[_i];
309
- }
310
- var args = Array.prototype.slice.call(values.length === 1 && isArray(values[0]) ? values[0] : values);
311
- return new Promise(function (resolve, reject) {
312
- if (args.length === 0) {
313
- return resolve([]);
314
- }
315
- var remaining = args.length;
316
- var res = function (i, val) {
317
- try {
318
- if (val && (typeof val === 'object' || typeof val === 'function')) {
319
- var then = val.then;
320
- if (typeof then === 'function') {
321
- then.call(val, function (val) {
322
- res(i, val);
323
- }, reject);
324
- return;
325
- }
326
- }
327
- args[i] = val;
328
- if (--remaining === 0) {
329
- resolve(args);
330
- }
331
- } catch (ex) {
332
- reject(ex);
333
- }
334
- };
335
- for (var i = 0; i < args.length; i++) {
336
- res(i, args[i]);
337
- }
338
- });
339
- };
340
- Promise.resolve = function (value) {
341
- if (value && typeof value === 'object' && value.constructor === Promise) {
342
- return value;
343
- }
344
- return new Promise(function (resolve) {
345
- resolve(value);
346
- });
347
- };
348
- Promise.reject = function (reason) {
349
- return new Promise(function (resolve, reject) {
350
- reject(reason);
351
- });
352
- };
353
- Promise.race = function (values) {
354
- return new Promise(function (resolve, reject) {
355
- for (var _i = 0, values_1 = values; _i < values_1.length; _i++) {
356
- var value = values_1[_i];
357
- value.then(resolve, reject);
358
- }
359
- });
360
- };
361
- return Promise;
362
- };
363
- var Promise = window.Promise ? window.Promise : promise();
364
-
365
- var imageToBlob = function (image) {
403
+ var imageToBlob$2 = function (image) {
366
404
  var src = image.src;
367
405
  if (src.indexOf('data:') === 0) {
368
406
  return dataUriToBlob(src);
369
407
  }
370
408
  return anyUriToBlob(src);
371
409
  };
372
- var blobToImage = function (blob) {
373
- return new Promise(function (resolve, reject) {
410
+ var blobToImage$1 = function (blob) {
411
+ return new Promise$1(function (resolve, reject) {
374
412
  var blobUrl = URL.createObjectURL(blob);
375
413
  var image = new Image();
376
414
  var removeListeners = function () {
@@ -394,7 +432,7 @@
394
432
  });
395
433
  };
396
434
  var anyUriToBlob = function (url) {
397
- return new Promise(function (resolve, reject) {
435
+ return new Promise$1(function (resolve, reject) {
398
436
  var xhr = new XMLHttpRequest();
399
437
  xhr.open('GET', url, true);
400
438
  xhr.responseType = 'blob';
@@ -444,7 +482,7 @@
444
482
  return Optional.some(new Blob(byteArrays, { type: mimetype }));
445
483
  };
446
484
  var dataUriToBlob = function (uri) {
447
- return new Promise(function (resolve, reject) {
485
+ return new Promise$1(function (resolve, reject) {
448
486
  dataUriToBlobSync(uri).fold(function () {
449
487
  reject('uri is not base64: ' + uri);
450
488
  }, resolve);
@@ -453,7 +491,7 @@
453
491
  var canvasToBlob = function (canvas, type, quality) {
454
492
  type = type || 'image/png';
455
493
  if (isFunction(HTMLCanvasElement.prototype.toBlob)) {
456
- return new Promise(function (resolve, reject) {
494
+ return new Promise$1(function (resolve, reject) {
457
495
  canvas.toBlob(function (blob) {
458
496
  if (blob) {
459
497
  resolve(blob);
@@ -471,16 +509,16 @@
471
509
  return canvas.toDataURL(type, quality);
472
510
  };
473
511
  var blobToCanvas = function (blob) {
474
- return blobToImage(blob).then(function (image) {
512
+ return blobToImage$1(blob).then(function (image) {
475
513
  revokeImageUrl(image);
476
- var canvas = create(getWidth(image), getHeight(image));
514
+ var canvas = create$1(getWidth(image), getHeight(image));
477
515
  var context = get2dContext(canvas);
478
516
  context.drawImage(image, 0, 0);
479
517
  return canvas;
480
518
  });
481
519
  };
482
520
  var blobToDataUri = function (blob) {
483
- return new Promise(function (resolve) {
521
+ return new Promise$1(function (resolve) {
484
522
  var reader = new FileReader();
485
523
  reader.onloadend = function () {
486
524
  resolve(reader.result);
@@ -492,22 +530,39 @@
492
530
  URL.revokeObjectURL(image.src);
493
531
  };
494
532
 
495
- var blobToImage$1 = function (blob) {
496
- return blobToImage(blob);
533
+ var blobToImage = function (blob) {
534
+ return blobToImage$1(blob);
497
535
  };
498
536
  var imageToBlob$1 = function (image) {
499
- return imageToBlob(image);
537
+ return imageToBlob$2(image);
500
538
  };
501
539
 
502
- var each = function (xs, f) {
540
+ var nativeIndexOf = Array.prototype.indexOf;
541
+ var rawIndexOf = function (ts, t) {
542
+ return nativeIndexOf.call(ts, t);
543
+ };
544
+ var contains = function (xs, x) {
545
+ return rawIndexOf(xs, x) > -1;
546
+ };
547
+ var each$1 = function (xs, f) {
503
548
  for (var i = 0, len = xs.length; i < len; i++) {
504
549
  var x = xs[i];
505
550
  f(x, i);
506
551
  }
507
552
  };
553
+ var filter = function (xs, pred) {
554
+ var r = [];
555
+ for (var i = 0, len = xs.length; i < len; i++) {
556
+ var x = xs[i];
557
+ if (pred(x, i)) {
558
+ r.push(x);
559
+ }
560
+ }
561
+ return r;
562
+ };
508
563
  var foldl = function (xs, f, acc) {
509
- each(xs, function (x) {
510
- acc = f(acc, x);
564
+ each$1(xs, function (x, i) {
565
+ acc = f(acc, x, i);
511
566
  });
512
567
  return acc;
513
568
  };
@@ -525,12 +580,131 @@
525
580
  var find = function (xs, pred) {
526
581
  return findUntil(xs, pred, never);
527
582
  };
583
+ var forall = function (xs, pred) {
584
+ for (var i = 0, len = xs.length; i < len; ++i) {
585
+ var x = xs[i];
586
+ if (pred(x, i) !== true) {
587
+ return false;
588
+ }
589
+ }
590
+ return true;
591
+ };
592
+
593
+ var keys = Object.keys;
594
+ var each = function (obj, f) {
595
+ var props = keys(obj);
596
+ for (var k = 0, len = props.length; k < len; k++) {
597
+ var i = props[k];
598
+ var x = obj[i];
599
+ f(x, i);
600
+ }
601
+ };
528
602
 
529
- var create$1 = function (getCanvas, blob, uri) {
603
+ var generate = function (cases) {
604
+ if (!isArray(cases)) {
605
+ throw new Error('cases must be an array');
606
+ }
607
+ if (cases.length === 0) {
608
+ throw new Error('there must be at least one case');
609
+ }
610
+ var constructors = [];
611
+ var adt = {};
612
+ each$1(cases, function (acase, count) {
613
+ var keys$1 = keys(acase);
614
+ if (keys$1.length !== 1) {
615
+ throw new Error('one and only one name per case');
616
+ }
617
+ var key = keys$1[0];
618
+ var value = acase[key];
619
+ if (adt[key] !== undefined) {
620
+ throw new Error('duplicate key detected:' + key);
621
+ } else if (key === 'cata') {
622
+ throw new Error('cannot have a case named cata (sorry)');
623
+ } else if (!isArray(value)) {
624
+ throw new Error('case arguments must be an array');
625
+ }
626
+ constructors.push(key);
627
+ adt[key] = function () {
628
+ var args = [];
629
+ for (var _i = 0; _i < arguments.length; _i++) {
630
+ args[_i] = arguments[_i];
631
+ }
632
+ var argLength = args.length;
633
+ if (argLength !== value.length) {
634
+ throw new Error('Wrong number of arguments to case ' + key + '. Expected ' + value.length + ' (' + value + '), got ' + argLength);
635
+ }
636
+ var match = function (branches) {
637
+ var branchKeys = keys(branches);
638
+ if (constructors.length !== branchKeys.length) {
639
+ throw new Error('Wrong number of arguments to match. Expected: ' + constructors.join(',') + '\nActual: ' + branchKeys.join(','));
640
+ }
641
+ var allReqd = forall(constructors, function (reqKey) {
642
+ return contains(branchKeys, reqKey);
643
+ });
644
+ if (!allReqd) {
645
+ throw new Error('Not all branches were specified when using match. Specified: ' + branchKeys.join(', ') + '\nRequired: ' + constructors.join(', '));
646
+ }
647
+ return branches[key].apply(null, args);
648
+ };
649
+ return {
650
+ fold: function () {
651
+ var foldArgs = [];
652
+ for (var _i = 0; _i < arguments.length; _i++) {
653
+ foldArgs[_i] = arguments[_i];
654
+ }
655
+ if (foldArgs.length !== cases.length) {
656
+ throw new Error('Wrong number of arguments to fold. Expected ' + cases.length + ', got ' + foldArgs.length);
657
+ }
658
+ var target = foldArgs[count];
659
+ return target.apply(null, args);
660
+ },
661
+ match: match,
662
+ log: function (label) {
663
+ console.log(label, {
664
+ constructors: constructors,
665
+ constructor: key,
666
+ params: args
667
+ });
668
+ }
669
+ };
670
+ };
671
+ });
672
+ return adt;
673
+ };
674
+ var Adt = { generate: generate };
675
+
676
+ Adt.generate([
677
+ {
678
+ bothErrors: [
679
+ 'error1',
680
+ 'error2'
681
+ ]
682
+ },
683
+ {
684
+ firstError: [
685
+ 'error1',
686
+ 'value2'
687
+ ]
688
+ },
689
+ {
690
+ secondError: [
691
+ 'value1',
692
+ 'error2'
693
+ ]
694
+ },
695
+ {
696
+ bothValues: [
697
+ 'value1',
698
+ 'value2'
699
+ ]
700
+ }
701
+ ]);
702
+
703
+ var create = function (getCanvas, blob, uri) {
530
704
  var initialType = blob.type;
531
705
  var getType = constant(initialType);
532
706
  var toBlob = function () {
533
- return Promise.resolve(blob);
707
+ return Promise$1.resolve(blob);
534
708
  };
535
709
  var toDataURL = constant(uri);
536
710
  var toBase64 = function () {
@@ -567,12 +741,12 @@
567
741
  };
568
742
  var fromBlob = function (blob) {
569
743
  return blobToDataUri(blob).then(function (uri) {
570
- return create$1(blobToCanvas(blob), blob, uri);
744
+ return create(blobToCanvas(blob), blob, uri);
571
745
  });
572
746
  };
573
747
  var fromCanvas = function (canvas, type) {
574
748
  return canvasToBlob(canvas, type).then(function (blob) {
575
- return create$1(Promise.resolve(canvas), blob, canvas.toDataURL());
749
+ return create(Promise$1.resolve(canvas), blob, canvas.toDataURL());
576
750
  });
577
751
  };
578
752
 
@@ -584,7 +758,7 @@
584
758
  var upper = Math.round(num * mul);
585
759
  return Math.ceil(upper / mul);
586
760
  };
587
- var rotate = function (ir, angle) {
761
+ var rotate$2 = function (ir, angle) {
588
762
  return ir.toCanvas().then(function (canvas) {
589
763
  return applyRotate(canvas, ir.getType(), angle);
590
764
  });
@@ -598,20 +772,20 @@
598
772
  var cos = Math.cos(rad);
599
773
  var newWidth = ceilWithPrecision(Math.abs(width * cos) + Math.abs(height * sin));
600
774
  var newHeight = ceilWithPrecision(Math.abs(width * sin) + Math.abs(height * cos));
601
- var canvas = create(newWidth, newHeight);
775
+ var canvas = create$1(newWidth, newHeight);
602
776
  var context = get2dContext(canvas);
603
777
  context.translate(newWidth / 2, newHeight / 2);
604
778
  context.rotate(rad);
605
779
  context.drawImage(image, -width / 2, -height / 2);
606
780
  return fromCanvas(canvas, type);
607
781
  };
608
- var flip = function (ir, axis) {
782
+ var flip$2 = function (ir, axis) {
609
783
  return ir.toCanvas().then(function (canvas) {
610
784
  return applyFlip(canvas, ir.getType(), axis);
611
785
  });
612
786
  };
613
787
  var applyFlip = function (image, type, axis) {
614
- var canvas = create(image.width, image.height);
788
+ var canvas = create$1(image.width, image.height);
615
789
  var context = get2dContext(canvas);
616
790
  if (axis === 'v') {
617
791
  context.scale(1, -1);
@@ -624,27 +798,17 @@
624
798
  };
625
799
 
626
800
  var flip$1 = function (ir, axis) {
627
- return flip(ir, axis);
801
+ return flip$2(ir, axis);
628
802
  };
629
803
  var rotate$1 = function (ir, angle) {
630
- return rotate(ir, angle);
631
- };
632
-
633
- var keys = Object.keys;
634
- var each$1 = function (obj, f) {
635
- var props = keys(obj);
636
- for (var k = 0, len = props.length; k < len; k++) {
637
- var i = props[k];
638
- var x = obj[i];
639
- f(x, i);
640
- }
804
+ return rotate$2(ir, angle);
641
805
  };
642
806
 
643
807
  var sendRequest = function (url, headers, withCredentials) {
644
808
  if (withCredentials === void 0) {
645
809
  withCredentials = false;
646
810
  }
647
- return new Promise(function (resolve) {
811
+ return new Promise$1(function (resolve) {
648
812
  var xhr = new XMLHttpRequest();
649
813
  xhr.onreadystatechange = function () {
650
814
  if (xhr.readyState === 4) {
@@ -656,7 +820,7 @@
656
820
  };
657
821
  xhr.open('GET', url, true);
658
822
  xhr.withCredentials = withCredentials;
659
- each$1(headers, function (value, key) {
823
+ each(headers, function (value, key) {
660
824
  xhr.setRequestHeader(key, value);
661
825
  });
662
826
  xhr.responseType = 'blob';
@@ -664,7 +828,7 @@
664
828
  });
665
829
  };
666
830
  var readBlobText = function (blob) {
667
- return new Promise(function (resolve, reject) {
831
+ return new Promise$1(function (resolve, reject) {
668
832
  var reader = new FileReader();
669
833
  reader.onload = function () {
670
834
  resolve(reader.result);
@@ -734,7 +898,7 @@
734
898
  };
735
899
  var handleHttpError = function (status) {
736
900
  var message = getHttpErrorMsg(status);
737
- return Promise.reject(message);
901
+ return Promise$1.reject(message);
738
902
  };
739
903
  var getServiceErrorMsg = function (type) {
740
904
  return find(friendlyServiceErrors, function (error) {
@@ -756,7 +920,7 @@
756
920
  var handleServiceError = function (blob) {
757
921
  return readBlobText(blob).then(function (text) {
758
922
  var serviceError = getServiceError(text);
759
- return Promise.reject(serviceError);
923
+ return Promise$1.reject(serviceError);
760
924
  });
761
925
  };
762
926
  var handleServiceErrorResponse = function (status, blob) {
@@ -780,12 +944,12 @@
780
944
  'tiny-api-key': apiKey
781
945
  };
782
946
  return sendRequest(appendApiKey(url, apiKey), headers).then(function (result) {
783
- return isError(result.status) ? handleServiceErrorResponse(result.status, result.blob) : Promise.resolve(result.blob);
947
+ return isError(result.status) ? handleServiceErrorResponse(result.status, result.blob) : Promise$1.resolve(result.blob);
784
948
  });
785
949
  };
786
950
  var requestBlob = function (url, withCredentials) {
787
951
  return sendRequest(url, {}, withCredentials).then(function (result) {
788
- return isError(result.status) ? handleHttpError(result.status) : Promise.resolve(result.blob);
952
+ return isError(result.status) ? handleHttpError(result.status) : Promise$1.resolve(result.blob);
789
953
  });
790
954
  };
791
955
  var getUrl = function (url, apiKey, withCredentials) {
@@ -858,9 +1022,9 @@
858
1022
  }
859
1023
  };
860
1024
 
861
- var Global = typeof window !== 'undefined' ? window : Function('return this;')();
1025
+ typeof window !== 'undefined' ? window : Function('return this;')();
862
1026
 
863
- var child = function (scope, predicate) {
1027
+ var child$1 = function (scope, predicate) {
864
1028
  var pred = function (node) {
865
1029
  return predicate(SugarElement.fromDom(node));
866
1030
  };
@@ -868,17 +1032,17 @@
868
1032
  return result.map(SugarElement.fromDom);
869
1033
  };
870
1034
 
871
- var child$1 = function (scope, selector) {
872
- return child(scope, function (e) {
1035
+ var child = function (scope, selector) {
1036
+ return child$1(scope, function (e) {
873
1037
  return is(e, selector);
874
1038
  });
875
1039
  };
876
1040
 
877
- var global$2 = tinymce.util.Tools.resolve('tinymce.util.Delay');
1041
+ var global$3 = tinymce.util.Tools.resolve('tinymce.util.Delay');
878
1042
 
879
- var global$3 = tinymce.util.Tools.resolve('tinymce.util.Promise');
1043
+ var global$2 = tinymce.util.Tools.resolve('tinymce.util.Promise');
880
1044
 
881
- var global$4 = tinymce.util.Tools.resolve('tinymce.util.URI');
1045
+ var global$1 = tinymce.util.Tools.resolve('tinymce.util.URI');
882
1046
 
883
1047
  var getToolbarItems = function (editor) {
884
1048
  return editor.getParam('imagetools_toolbar', 'rotateleft rotateright flipv fliph editimage imageoptions');
@@ -958,7 +1122,7 @@
958
1122
 
959
1123
  var count = 0;
960
1124
  var getFigureImg = function (elem) {
961
- return child$1(SugarElement.fromDom(elem), 'img');
1125
+ return child(SugarElement.fromDom(elem), 'img');
962
1126
  };
963
1127
  var isFigure = function (editor, elem) {
964
1128
  return editor.dom.is(elem, 'figure');
@@ -1004,13 +1168,13 @@
1004
1168
  };
1005
1169
  var isLocalImage = function (editor, img) {
1006
1170
  var url = img.src;
1007
- return url.indexOf('data:') === 0 || url.indexOf('blob:') === 0 || new global$4(url).host === editor.documentBaseURI.host;
1171
+ return url.indexOf('data:') === 0 || url.indexOf('blob:') === 0 || new global$1(url).host === editor.documentBaseURI.host;
1008
1172
  };
1009
1173
  var isCorsImage = function (editor, img) {
1010
- return global$1.inArray(getCorsHosts(editor), new global$4(img.src).host) !== -1;
1174
+ return global$4.inArray(getCorsHosts(editor), new global$1(img.src).host) !== -1;
1011
1175
  };
1012
1176
  var isCorsWithCredentialsImage = function (editor, img) {
1013
- return global$1.inArray(getCredentialsHosts(editor), new global$4(img.src).host) !== -1;
1177
+ return global$4.inArray(getCredentialsHosts(editor), new global$1(img.src).host) !== -1;
1014
1178
  };
1015
1179
  var defaultFetchImage = function (editor, img) {
1016
1180
  if (isCorsImage(editor, img)) {
@@ -1024,7 +1188,7 @@
1024
1188
  }
1025
1189
  return imageToBlob$1(img);
1026
1190
  };
1027
- var imageToBlob$2 = function (editor, img) {
1191
+ var imageToBlob = function (editor, img) {
1028
1192
  return getFetchImage(editor).fold(function () {
1029
1193
  return defaultFetchImage(editor, img);
1030
1194
  }, function (customFetchImage) {
@@ -1034,18 +1198,18 @@
1034
1198
  var findBlob = function (editor, img) {
1035
1199
  var blobInfo = editor.editorUpload.blobCache.getByUri(img.src);
1036
1200
  if (blobInfo) {
1037
- return global$3.resolve(blobInfo.blob());
1201
+ return global$2.resolve(blobInfo.blob());
1038
1202
  }
1039
- return imageToBlob$2(editor, img);
1203
+ return imageToBlob(editor, img);
1040
1204
  };
1041
1205
  var startTimedUpload = function (editor, imageUploadTimerState) {
1042
- var imageUploadTimer = global$2.setEditorTimeout(editor, function () {
1206
+ var imageUploadTimer = global$3.setEditorTimeout(editor, function () {
1043
1207
  editor.editorUpload.uploadImagesAuto();
1044
1208
  }, getUploadTimeout(editor));
1045
1209
  imageUploadTimerState.set(imageUploadTimer);
1046
1210
  };
1047
1211
  var cancelTimedUpload = function (imageUploadTimerState) {
1048
- global$2.clearTimeout(imageUploadTimerState.get());
1212
+ global$3.clearTimeout(imageUploadTimerState.get());
1049
1213
  };
1050
1214
  var updateSelectedImage = function (editor, origBlob, ir, uploadImmediately, imageUploadTimerState, selectedImage, size) {
1051
1215
  return ir.toBlob().then(function (blob) {
@@ -1114,24 +1278,22 @@
1114
1278
  });
1115
1279
  };
1116
1280
  };
1117
- var rotate$2 = function (editor, imageUploadTimerState, angle) {
1281
+ var rotate = function (editor, imageUploadTimerState, angle) {
1118
1282
  return function () {
1119
1283
  var imgOpt = getSelectedImage(editor);
1120
- var flippedSize = imgOpt.fold(function () {
1121
- return null;
1122
- }, function (img) {
1284
+ var flippedSize = imgOpt.map(function (img) {
1123
1285
  var size = getImageSize(img.dom);
1124
1286
  return size ? {
1125
1287
  w: size.h,
1126
1288
  h: size.w
1127
1289
  } : null;
1128
- });
1290
+ }).getOrNull();
1129
1291
  return selectedImageOperation(editor, imageUploadTimerState, function (imageResult) {
1130
1292
  return rotate$1(imageResult, angle);
1131
1293
  }, flippedSize)();
1132
1294
  };
1133
1295
  };
1134
- var flip$2 = function (editor, imageUploadTimerState, axis) {
1296
+ var flip = function (editor, imageUploadTimerState, axis) {
1135
1297
  return function () {
1136
1298
  return selectedImageOperation(editor, imageUploadTimerState, function (imageResult) {
1137
1299
  return flip$1(imageResult, axis);
@@ -1139,7 +1301,7 @@
1139
1301
  };
1140
1302
  };
1141
1303
  var handleDialogBlob = function (editor, imageUploadTimerState, img, originalSize, blob) {
1142
- return blobToImage$1(blob).then(function (newImage) {
1304
+ return blobToImage(blob).then(function (newImage) {
1143
1305
  var newSize = getNaturalImageSize(newImage);
1144
1306
  if (originalSize.w !== newSize.w || originalSize.h !== newSize.h) {
1145
1307
  if (getImageSize(img)) {
@@ -1237,12 +1399,12 @@
1237
1399
  };
1238
1400
  };
1239
1401
 
1240
- var register = function (editor, imageUploadTimerState) {
1241
- global$1.each({
1242
- mceImageRotateLeft: rotate$2(editor, imageUploadTimerState, -90),
1243
- mceImageRotateRight: rotate$2(editor, imageUploadTimerState, 90),
1244
- mceImageFlipVertical: flip$2(editor, imageUploadTimerState, 'v'),
1245
- mceImageFlipHorizontal: flip$2(editor, imageUploadTimerState, 'h'),
1402
+ var register$2 = function (editor, imageUploadTimerState) {
1403
+ global$4.each({
1404
+ mceImageRotateLeft: rotate(editor, imageUploadTimerState, -90),
1405
+ mceImageRotateRight: rotate(editor, imageUploadTimerState, 90),
1406
+ mceImageFlipVertical: flip(editor, imageUploadTimerState, 'v'),
1407
+ mceImageFlipHorizontal: flip(editor, imageUploadTimerState, 'h'),
1246
1408
  mceEditImage: makeOpen(editor, imageUploadTimerState)
1247
1409
  }, function (fn, cmd) {
1248
1410
  editor.addCommand(cmd, fn);
@@ -1265,47 +1427,64 @@
1265
1427
  };
1266
1428
 
1267
1429
  var register$1 = function (editor) {
1430
+ var changeHandlers = [];
1268
1431
  var cmd = function (command) {
1269
1432
  return function () {
1270
1433
  return editor.execCommand(command);
1271
1434
  };
1272
1435
  };
1436
+ var isEditableImage = function () {
1437
+ return getSelectedImage(editor).exists(function (element) {
1438
+ return getEditableImage(editor, element.dom).isSome();
1439
+ });
1440
+ };
1441
+ var onSetup = function (api) {
1442
+ var handler = function (isEditableImage) {
1443
+ return api.setDisabled(!isEditableImage);
1444
+ };
1445
+ handler(isEditableImage());
1446
+ changeHandlers = changeHandlers.concat([handler]);
1447
+ return function () {
1448
+ changeHandlers = filter(changeHandlers, function (h) {
1449
+ return h !== handler;
1450
+ });
1451
+ };
1452
+ };
1453
+ editor.on('NodeChange', function () {
1454
+ var isEditable = isEditableImage();
1455
+ each$1(changeHandlers, function (handler) {
1456
+ return handler(isEditable);
1457
+ });
1458
+ });
1273
1459
  editor.ui.registry.addButton('rotateleft', {
1274
1460
  tooltip: 'Rotate counterclockwise',
1275
1461
  icon: 'rotate-left',
1276
- onAction: cmd('mceImageRotateLeft')
1462
+ onAction: cmd('mceImageRotateLeft'),
1463
+ onSetup: onSetup
1277
1464
  });
1278
1465
  editor.ui.registry.addButton('rotateright', {
1279
1466
  tooltip: 'Rotate clockwise',
1280
1467
  icon: 'rotate-right',
1281
- onAction: cmd('mceImageRotateRight')
1468
+ onAction: cmd('mceImageRotateRight'),
1469
+ onSetup: onSetup
1282
1470
  });
1283
1471
  editor.ui.registry.addButton('flipv', {
1284
1472
  tooltip: 'Flip vertically',
1285
1473
  icon: 'flip-vertically',
1286
- onAction: cmd('mceImageFlipVertical')
1474
+ onAction: cmd('mceImageFlipVertical'),
1475
+ onSetup: onSetup
1287
1476
  });
1288
1477
  editor.ui.registry.addButton('fliph', {
1289
1478
  tooltip: 'Flip horizontally',
1290
1479
  icon: 'flip-horizontally',
1291
- onAction: cmd('mceImageFlipHorizontal')
1480
+ onAction: cmd('mceImageFlipHorizontal'),
1481
+ onSetup: onSetup
1292
1482
  });
1293
1483
  editor.ui.registry.addButton('editimage', {
1294
1484
  tooltip: 'Edit image',
1295
1485
  icon: 'edit-image',
1296
1486
  onAction: cmd('mceEditImage'),
1297
- onSetup: function (buttonApi) {
1298
- var setDisabled = function () {
1299
- var disabled = getSelectedImage(editor).forall(function (element) {
1300
- return getEditableImage(editor, element.dom).isNone();
1301
- });
1302
- buttonApi.setDisabled(disabled);
1303
- };
1304
- editor.on('NodeChange', setDisabled);
1305
- return function () {
1306
- editor.off('NodeChange', setDisabled);
1307
- };
1308
- }
1487
+ onSetup: onSetup
1309
1488
  });
1310
1489
  editor.ui.registry.addButton('imageoptions', {
1311
1490
  tooltip: 'Image options',
@@ -1314,20 +1493,18 @@
1314
1493
  });
1315
1494
  editor.ui.registry.addContextMenu('imagetools', {
1316
1495
  update: function (element) {
1317
- return getEditableImage(editor, element).fold(function () {
1318
- return [];
1319
- }, function (_) {
1320
- return [{
1321
- text: 'Edit image',
1322
- icon: 'edit-image',
1323
- onAction: cmd('mceEditImage')
1324
- }];
1325
- });
1496
+ return getEditableImage(editor, element).map(function (_) {
1497
+ return {
1498
+ text: 'Edit image',
1499
+ icon: 'edit-image',
1500
+ onAction: cmd('mceEditImage')
1501
+ };
1502
+ }).toArray();
1326
1503
  }
1327
1504
  });
1328
1505
  };
1329
1506
 
1330
- var register$2 = function (editor) {
1507
+ var register = function (editor) {
1331
1508
  editor.ui.registry.addContextToolbar('imagetools', {
1332
1509
  items: getToolbarItems(editor),
1333
1510
  predicate: function (elem) {
@@ -1339,12 +1516,12 @@
1339
1516
  };
1340
1517
 
1341
1518
  function Plugin () {
1342
- global.add('imagetools', function (editor) {
1519
+ global$5.add('imagetools', function (editor) {
1343
1520
  var imageUploadTimerState = Cell(0);
1344
1521
  var lastSelectedImageState = Cell(null);
1345
- register(editor, imageUploadTimerState);
1522
+ register$2(editor, imageUploadTimerState);
1346
1523
  register$1(editor);
1347
- register$2(editor);
1524
+ register(editor);
1348
1525
  setup(editor, imageUploadTimerState, lastSelectedImageState);
1349
1526
  });
1350
1527
  }