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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (241) hide show
  1. package/README.md +1 -7
  2. package/esm2022/lib/angular-material-shared.module.mjs +2 -2
  3. package/esm2022/lib/components/tiny-mce/tiny-mce.component.mjs +16 -19
  4. package/fesm2022/dangl-angular-material-shared.mjs +16 -19
  5. package/fesm2022/dangl-angular-material-shared.mjs.map +1 -1
  6. package/lib/components/tiny-mce/tiny-mce.component.d.ts +7 -8
  7. package/package.json +1 -1
  8. package/tinymce-assets/icons/default/icons.js +187 -171
  9. package/tinymce-assets/icons/default/icons.min.js +1 -1
  10. package/tinymce-assets/langs/it.js +1 -1
  11. package/tinymce-assets/plugins/accordion/index.js +7 -0
  12. package/tinymce-assets/plugins/accordion/plugin.js +1054 -0
  13. package/tinymce-assets/plugins/accordion/plugin.min.js +4 -0
  14. package/tinymce-assets/plugins/advlist/plugin.js +185 -187
  15. package/tinymce-assets/plugins/advlist/plugin.min.js +2 -7
  16. package/tinymce-assets/plugins/anchor/plugin.js +79 -81
  17. package/tinymce-assets/plugins/anchor/plugin.min.js +2 -7
  18. package/tinymce-assets/plugins/autolink/plugin.js +209 -194
  19. package/tinymce-assets/plugins/autolink/plugin.min.js +2 -7
  20. package/tinymce-assets/plugins/autoresize/plugin.js +110 -102
  21. package/tinymce-assets/plugins/autoresize/plugin.min.js +2 -7
  22. package/tinymce-assets/plugins/autosave/plugin.js +125 -104
  23. package/tinymce-assets/plugins/autosave/plugin.min.js +2 -7
  24. package/tinymce-assets/plugins/charmap/plugin.js +275 -313
  25. package/tinymce-assets/plugins/charmap/plugin.min.js +2 -7
  26. package/tinymce-assets/plugins/code/plugin.js +18 -24
  27. package/tinymce-assets/plugins/code/plugin.min.js +2 -7
  28. package/tinymce-assets/plugins/codesample/plugin.js +2075 -2074
  29. package/tinymce-assets/plugins/codesample/plugin.min.js +2 -7
  30. package/tinymce-assets/plugins/directionality/plugin.js +247 -305
  31. package/tinymce-assets/plugins/directionality/plugin.min.js +2 -7
  32. package/tinymce-assets/plugins/emoticons/js/emojiimages.js +1 -9424
  33. package/tinymce-assets/plugins/emoticons/js/emojiimages.min.js +1 -1
  34. package/tinymce-assets/plugins/emoticons/js/emojis.js +1 -9423
  35. package/tinymce-assets/plugins/emoticons/js/emojis.min.js +1 -1
  36. package/tinymce-assets/plugins/emoticons/plugin.js +334 -374
  37. package/tinymce-assets/plugins/emoticons/plugin.min.js +2 -7
  38. package/tinymce-assets/plugins/fullscreen/plugin.js +740 -837
  39. package/tinymce-assets/plugins/fullscreen/plugin.min.js +2 -7
  40. package/tinymce-assets/plugins/help/js/i18n/keynav/ar.js +90 -0
  41. package/tinymce-assets/plugins/help/js/i18n/keynav/bg_BG.js +90 -0
  42. package/tinymce-assets/plugins/help/js/i18n/keynav/ca.js +90 -0
  43. package/tinymce-assets/plugins/help/js/i18n/keynav/cs.js +90 -0
  44. package/tinymce-assets/plugins/help/js/i18n/keynav/da.js +90 -0
  45. package/tinymce-assets/plugins/help/js/i18n/keynav/de.js +90 -0
  46. package/tinymce-assets/plugins/help/js/i18n/keynav/el.js +90 -0
  47. package/tinymce-assets/plugins/help/js/i18n/keynav/en.js +90 -0
  48. package/tinymce-assets/plugins/help/js/i18n/keynav/es.js +90 -0
  49. package/tinymce-assets/plugins/help/js/i18n/keynav/eu.js +90 -0
  50. package/tinymce-assets/plugins/help/js/i18n/keynav/fa.js +90 -0
  51. package/tinymce-assets/plugins/help/js/i18n/keynav/fi.js +90 -0
  52. package/tinymce-assets/plugins/help/js/i18n/keynav/fr_FR.js +90 -0
  53. package/tinymce-assets/plugins/help/js/i18n/keynav/he_IL.js +90 -0
  54. package/tinymce-assets/plugins/help/js/i18n/keynav/hi.js +90 -0
  55. package/tinymce-assets/plugins/help/js/i18n/keynav/hr.js +90 -0
  56. package/tinymce-assets/plugins/help/js/i18n/keynav/hu_HU.js +90 -0
  57. package/tinymce-assets/plugins/help/js/i18n/keynav/id.js +90 -0
  58. package/tinymce-assets/plugins/help/js/i18n/keynav/it.js +90 -0
  59. package/tinymce-assets/plugins/help/js/i18n/keynav/ja.js +90 -0
  60. package/tinymce-assets/plugins/help/js/i18n/keynav/kk.js +90 -0
  61. package/tinymce-assets/plugins/help/js/i18n/keynav/ko_KR.js +90 -0
  62. package/tinymce-assets/plugins/help/js/i18n/keynav/ms.js +90 -0
  63. package/tinymce-assets/plugins/help/js/i18n/keynav/nb_NO.js +90 -0
  64. package/tinymce-assets/plugins/help/js/i18n/keynav/nl.js +90 -0
  65. package/tinymce-assets/plugins/help/js/i18n/keynav/pl.js +90 -0
  66. package/tinymce-assets/plugins/help/js/i18n/keynav/pt_BR.js +90 -0
  67. package/tinymce-assets/plugins/help/js/i18n/keynav/pt_PT.js +90 -0
  68. package/tinymce-assets/plugins/help/js/i18n/keynav/ro.js +90 -0
  69. package/tinymce-assets/plugins/help/js/i18n/keynav/ru.js +90 -0
  70. package/tinymce-assets/plugins/help/js/i18n/keynav/sk.js +90 -0
  71. package/tinymce-assets/plugins/help/js/i18n/keynav/sl_SI.js +90 -0
  72. package/tinymce-assets/plugins/help/js/i18n/keynav/sv_SE.js +90 -0
  73. package/tinymce-assets/plugins/help/js/i18n/keynav/th_TH.js +90 -0
  74. package/tinymce-assets/plugins/help/js/i18n/keynav/tr.js +90 -0
  75. package/tinymce-assets/plugins/help/js/i18n/keynav/uk.js +90 -0
  76. package/tinymce-assets/plugins/help/js/i18n/keynav/vi.js +90 -0
  77. package/tinymce-assets/plugins/help/js/i18n/keynav/zh_CN.js +84 -0
  78. package/tinymce-assets/plugins/help/js/i18n/keynav/zh_TW.js +90 -0
  79. package/tinymce-assets/plugins/help/plugin.js +411 -355
  80. package/tinymce-assets/plugins/help/plugin.min.js +2 -7
  81. package/tinymce-assets/plugins/image/plugin.js +876 -1037
  82. package/tinymce-assets/plugins/image/plugin.min.js +2 -7
  83. package/tinymce-assets/plugins/importcss/plugin.js +146 -144
  84. package/tinymce-assets/plugins/importcss/plugin.min.js +2 -7
  85. package/tinymce-assets/plugins/insertdatetime/plugin.js +93 -88
  86. package/tinymce-assets/plugins/insertdatetime/plugin.min.js +2 -7
  87. package/tinymce-assets/plugins/link/plugin.js +718 -768
  88. package/tinymce-assets/plugins/link/plugin.min.js +2 -7
  89. package/tinymce-assets/plugins/lists/plugin.js +1235 -1375
  90. package/tinymce-assets/plugins/lists/plugin.min.js +2 -7
  91. package/tinymce-assets/plugins/media/plugin.js +614 -756
  92. package/tinymce-assets/plugins/media/plugin.min.js +2 -7
  93. package/tinymce-assets/plugins/nonbreaking/plugin.js +71 -48
  94. package/tinymce-assets/plugins/nonbreaking/plugin.min.js +2 -7
  95. package/tinymce-assets/plugins/pagebreak/plugin.js +53 -40
  96. package/tinymce-assets/plugins/pagebreak/plugin.min.js +2 -7
  97. package/tinymce-assets/plugins/preview/plugin.js +36 -65
  98. package/tinymce-assets/plugins/preview/plugin.min.js +2 -7
  99. package/tinymce-assets/plugins/quickbars/plugin.js +304 -331
  100. package/tinymce-assets/plugins/quickbars/plugin.min.js +2 -7
  101. package/tinymce-assets/plugins/save/plugin.js +49 -50
  102. package/tinymce-assets/plugins/save/plugin.min.js +2 -7
  103. package/tinymce-assets/plugins/searchreplace/plugin.js +499 -571
  104. package/tinymce-assets/plugins/searchreplace/plugin.min.js +2 -7
  105. package/tinymce-assets/plugins/table/plugin.js +2572 -10617
  106. package/tinymce-assets/plugins/table/plugin.min.js +2 -7
  107. package/tinymce-assets/plugins/visualblocks/plugin.js +41 -46
  108. package/tinymce-assets/plugins/visualblocks/plugin.min.js +2 -7
  109. package/tinymce-assets/plugins/visualchars/plugin.js +346 -312
  110. package/tinymce-assets/plugins/visualchars/plugin.min.js +2 -7
  111. package/tinymce-assets/plugins/wordcount/plugin.js +159 -179
  112. package/tinymce-assets/plugins/wordcount/plugin.min.js +2 -7
  113. package/tinymce-assets/skins/content/dark/content.css +2 -8
  114. package/tinymce-assets/skins/content/dark/content.js +2 -0
  115. package/tinymce-assets/skins/content/dark/content.min.css +1 -7
  116. package/tinymce-assets/skins/content/default/content.css +0 -6
  117. package/tinymce-assets/skins/content/default/content.js +2 -0
  118. package/tinymce-assets/skins/content/default/content.min.css +0 -6
  119. package/tinymce-assets/skins/content/document/content.css +0 -6
  120. package/tinymce-assets/skins/content/document/content.js +2 -0
  121. package/tinymce-assets/skins/content/document/content.min.css +0 -6
  122. package/tinymce-assets/skins/content/tinymce-5/content.css +61 -0
  123. package/tinymce-assets/skins/content/tinymce-5/content.js +2 -0
  124. package/tinymce-assets/skins/content/tinymce-5/content.min.css +1 -0
  125. package/tinymce-assets/skins/content/tinymce-5-dark/content.css +66 -0
  126. package/tinymce-assets/skins/content/tinymce-5-dark/content.js +2 -0
  127. package/tinymce-assets/skins/content/tinymce-5-dark/content.min.css +1 -0
  128. package/tinymce-assets/skins/content/writer/content.css +0 -6
  129. package/tinymce-assets/skins/content/writer/content.js +2 -0
  130. package/tinymce-assets/skins/content/writer/content.min.css +0 -6
  131. package/tinymce-assets/skins/ui/oxide/content.css +73 -20
  132. package/tinymce-assets/skins/ui/oxide/content.inline.css +73 -20
  133. package/tinymce-assets/skins/ui/oxide/content.inline.js +2 -0
  134. package/tinymce-assets/skins/ui/oxide/content.inline.min.css +1 -7
  135. package/tinymce-assets/skins/ui/oxide/content.js +2 -0
  136. package/tinymce-assets/skins/ui/oxide/content.min.css +1 -7
  137. package/tinymce-assets/skins/ui/oxide/skin.css +1480 -435
  138. package/tinymce-assets/skins/ui/oxide/skin.js +2 -0
  139. package/tinymce-assets/skins/ui/oxide/skin.min.css +1 -7
  140. package/tinymce-assets/skins/ui/oxide/skin.shadowdom.css +1 -8
  141. package/tinymce-assets/skins/ui/oxide/skin.shadowdom.js +2 -0
  142. package/tinymce-assets/skins/ui/oxide/skin.shadowdom.min.css +1 -7
  143. package/tinymce-assets/skins/ui/oxide-dark/content.css +71 -19
  144. package/tinymce-assets/skins/ui/oxide-dark/content.inline.css +73 -20
  145. package/tinymce-assets/skins/ui/oxide-dark/content.inline.js +2 -0
  146. package/tinymce-assets/skins/ui/oxide-dark/content.inline.min.css +1 -7
  147. package/tinymce-assets/skins/ui/oxide-dark/content.js +2 -0
  148. package/tinymce-assets/skins/ui/oxide-dark/content.min.css +1 -7
  149. package/tinymce-assets/skins/ui/oxide-dark/skin.css +1498 -450
  150. package/tinymce-assets/skins/ui/oxide-dark/skin.js +2 -0
  151. package/tinymce-assets/skins/ui/oxide-dark/skin.min.css +1 -7
  152. package/tinymce-assets/skins/ui/oxide-dark/skin.shadowdom.css +1 -8
  153. package/tinymce-assets/skins/ui/oxide-dark/skin.shadowdom.js +2 -0
  154. package/tinymce-assets/skins/ui/oxide-dark/skin.shadowdom.min.css +1 -7
  155. package/tinymce-assets/skins/ui/tinymce-5/content.css +785 -0
  156. package/tinymce-assets/skins/ui/tinymce-5/content.inline.css +779 -0
  157. package/tinymce-assets/skins/ui/tinymce-5/content.inline.js +2 -0
  158. package/tinymce-assets/skins/ui/tinymce-5/content.inline.min.css +1 -0
  159. package/tinymce-assets/skins/ui/tinymce-5/content.js +2 -0
  160. package/tinymce-assets/skins/ui/tinymce-5/content.min.css +1 -0
  161. package/tinymce-assets/skins/ui/tinymce-5/skin.css +4185 -0
  162. package/tinymce-assets/skins/ui/tinymce-5/skin.js +2 -0
  163. package/tinymce-assets/skins/ui/tinymce-5/skin.min.css +1 -0
  164. package/tinymce-assets/skins/ui/tinymce-5/skin.shadowdom.css +30 -0
  165. package/tinymce-assets/skins/ui/tinymce-5/skin.shadowdom.js +2 -0
  166. package/tinymce-assets/skins/ui/tinymce-5/skin.shadowdom.min.css +1 -0
  167. package/tinymce-assets/skins/ui/tinymce-5-dark/content.css +766 -0
  168. package/tinymce-assets/skins/ui/tinymce-5-dark/content.inline.css +779 -0
  169. package/tinymce-assets/skins/ui/tinymce-5-dark/content.inline.js +2 -0
  170. package/tinymce-assets/skins/ui/tinymce-5-dark/content.inline.min.css +1 -0
  171. package/tinymce-assets/skins/ui/tinymce-5-dark/content.js +2 -0
  172. package/tinymce-assets/skins/ui/tinymce-5-dark/content.min.css +1 -0
  173. package/tinymce-assets/skins/ui/tinymce-5-dark/skin.css +4185 -0
  174. package/tinymce-assets/skins/ui/tinymce-5-dark/skin.js +2 -0
  175. package/tinymce-assets/skins/ui/tinymce-5-dark/skin.min.css +1 -0
  176. package/tinymce-assets/skins/ui/tinymce-5-dark/skin.shadowdom.css +30 -0
  177. package/tinymce-assets/skins/ui/tinymce-5-dark/skin.shadowdom.js +2 -0
  178. package/tinymce-assets/skins/ui/tinymce-5-dark/skin.shadowdom.min.css +1 -0
  179. package/tinymce-assets/themes/silver/theme.js +25226 -28188
  180. package/tinymce-assets/themes/silver/theme.min.js +2 -7
  181. package/tinymce-assets/plugins/bbcode/index.js +0 -7
  182. package/tinymce-assets/plugins/bbcode/plugin.js +0 -99
  183. package/tinymce-assets/plugins/bbcode/plugin.min.js +0 -9
  184. package/tinymce-assets/plugins/colorpicker/index.js +0 -7
  185. package/tinymce-assets/plugins/colorpicker/plugin.js +0 -21
  186. package/tinymce-assets/plugins/colorpicker/plugin.min.js +0 -9
  187. package/tinymce-assets/plugins/contextmenu/index.js +0 -7
  188. package/tinymce-assets/plugins/contextmenu/plugin.js +0 -21
  189. package/tinymce-assets/plugins/contextmenu/plugin.min.js +0 -9
  190. package/tinymce-assets/plugins/fullpage/index.js +0 -7
  191. package/tinymce-assets/plugins/fullpage/plugin.js +0 -544
  192. package/tinymce-assets/plugins/fullpage/plugin.min.js +0 -9
  193. package/tinymce-assets/plugins/hr/index.js +0 -7
  194. package/tinymce-assets/plugins/hr/plugin.js +0 -45
  195. package/tinymce-assets/plugins/hr/plugin.min.js +0 -9
  196. package/tinymce-assets/plugins/imagetools/index.js +0 -7
  197. package/tinymce-assets/plugins/imagetools/plugin.js +0 -1531
  198. package/tinymce-assets/plugins/imagetools/plugin.min.js +0 -9
  199. package/tinymce-assets/plugins/legacyoutput/index.js +0 -7
  200. package/tinymce-assets/plugins/legacyoutput/plugin.js +0 -199
  201. package/tinymce-assets/plugins/legacyoutput/plugin.min.js +0 -9
  202. package/tinymce-assets/plugins/noneditable/index.js +0 -7
  203. package/tinymce-assets/plugins/noneditable/plugin.js +0 -117
  204. package/tinymce-assets/plugins/noneditable/plugin.min.js +0 -9
  205. package/tinymce-assets/plugins/paste/index.js +0 -7
  206. package/tinymce-assets/plugins/paste/plugin.js +0 -1803
  207. package/tinymce-assets/plugins/paste/plugin.min.js +0 -9
  208. package/tinymce-assets/plugins/print/index.js +0 -7
  209. package/tinymce-assets/plugins/print/plugin.js +0 -52
  210. package/tinymce-assets/plugins/print/plugin.min.js +0 -9
  211. package/tinymce-assets/plugins/spellchecker/index.js +0 -7
  212. package/tinymce-assets/plugins/spellchecker/plugin.js +0 -730
  213. package/tinymce-assets/plugins/spellchecker/plugin.min.js +0 -9
  214. package/tinymce-assets/plugins/tabfocus/index.js +0 -7
  215. package/tinymce-assets/plugins/tabfocus/plugin.js +0 -130
  216. package/tinymce-assets/plugins/tabfocus/plugin.min.js +0 -9
  217. package/tinymce-assets/plugins/template/index.js +0 -7
  218. package/tinymce-assets/plugins/template/plugin.js +0 -591
  219. package/tinymce-assets/plugins/template/plugin.min.js +0 -9
  220. package/tinymce-assets/plugins/textcolor/index.js +0 -7
  221. package/tinymce-assets/plugins/textcolor/plugin.js +0 -21
  222. package/tinymce-assets/plugins/textcolor/plugin.min.js +0 -9
  223. package/tinymce-assets/plugins/textpattern/index.js +0 -7
  224. package/tinymce-assets/plugins/textpattern/plugin.js +0 -1374
  225. package/tinymce-assets/plugins/textpattern/plugin.min.js +0 -9
  226. package/tinymce-assets/plugins/toc/index.js +0 -7
  227. package/tinymce-assets/plugins/toc/plugin.js +0 -238
  228. package/tinymce-assets/plugins/toc/plugin.min.js +0 -9
  229. package/tinymce-assets/skins/ui/oxide/content.mobile.css +0 -29
  230. package/tinymce-assets/skins/ui/oxide/content.mobile.min.css +0 -7
  231. package/tinymce-assets/skins/ui/oxide/fonts/tinymce-mobile.woff +0 -0
  232. package/tinymce-assets/skins/ui/oxide/skin.mobile.css +0 -673
  233. package/tinymce-assets/skins/ui/oxide/skin.mobile.min.css +0 -7
  234. package/tinymce-assets/skins/ui/oxide-dark/content.mobile.css +0 -29
  235. package/tinymce-assets/skins/ui/oxide-dark/content.mobile.min.css +0 -7
  236. package/tinymce-assets/skins/ui/oxide-dark/fonts/tinymce-mobile.woff +0 -0
  237. package/tinymce-assets/skins/ui/oxide-dark/skin.mobile.css +0 -673
  238. package/tinymce-assets/skins/ui/oxide-dark/skin.mobile.min.css +0 -7
  239. package/tinymce-assets/themes/mobile/index.js +0 -7
  240. package/tinymce-assets/themes/mobile/theme.js +0 -13130
  241. package/tinymce-assets/themes/mobile/theme.min.js +0 -9
@@ -1,283 +1,206 @@
1
1
  /**
2
- * Copyright (c) Tiny Technologies, Inc. All rights reserved.
3
- * Licensed under the LGPL or a commercial license.
4
- * For LGPL see License.txt in the project root for license information.
5
- * For commercial licenses see https://www.tiny.cloud/
6
- *
7
- * Version: 5.10.9 (2023-11-15)
2
+ * TinyMCE version 7.0.1 (2024-04-10)
8
3
  */
4
+
9
5
  (function () {
10
6
  'use strict';
11
7
 
12
- var Cell = function (initial) {
13
- var value = initial;
14
- var get = function () {
8
+ const Cell = initial => {
9
+ let value = initial;
10
+ const get = () => {
15
11
  return value;
16
12
  };
17
- var set = function (v) {
13
+ const set = v => {
18
14
  value = v;
19
15
  };
20
16
  return {
21
- get: get,
22
- set: set
17
+ get,
18
+ set
23
19
  };
24
20
  };
25
21
 
26
- var global$3 = tinymce.util.Tools.resolve('tinymce.PluginManager');
22
+ var global$2 = tinymce.util.Tools.resolve('tinymce.PluginManager');
27
23
 
28
- var get$5 = function (fullscreenState) {
29
- return {
30
- isFullscreen: function () {
31
- return fullscreenState.get() !== null;
32
- }
33
- };
34
- };
24
+ const get$5 = fullscreenState => ({ isFullscreen: () => fullscreenState.get() !== null });
35
25
 
36
- var typeOf = function (x) {
37
- var t = typeof x;
26
+ const hasProto = (v, constructor, predicate) => {
27
+ var _a;
28
+ if (predicate(v, constructor.prototype)) {
29
+ return true;
30
+ } else {
31
+ return ((_a = v.constructor) === null || _a === void 0 ? void 0 : _a.name) === constructor.name;
32
+ }
33
+ };
34
+ const typeOf = x => {
35
+ const t = typeof x;
38
36
  if (x === null) {
39
37
  return 'null';
40
- } else if (t === 'object' && (Array.prototype.isPrototypeOf(x) || x.constructor && x.constructor.name === 'Array')) {
38
+ } else if (t === 'object' && Array.isArray(x)) {
41
39
  return 'array';
42
- } else if (t === 'object' && (String.prototype.isPrototypeOf(x) || x.constructor && x.constructor.name === 'String')) {
40
+ } else if (t === 'object' && hasProto(x, String, (o, proto) => proto.isPrototypeOf(o))) {
43
41
  return 'string';
44
42
  } else {
45
43
  return t;
46
44
  }
47
45
  };
48
- var isType$1 = function (type) {
49
- return function (value) {
50
- return typeOf(value) === type;
51
- };
52
- };
53
- var isSimpleType = function (type) {
54
- return function (value) {
55
- return typeof value === type;
56
- };
57
- };
58
- var isString = isType$1('string');
59
- var isArray = isType$1('array');
60
- var isBoolean = isSimpleType('boolean');
61
- var isNullable = function (a) {
62
- return a === null || a === undefined;
63
- };
64
- var isNonNullable = function (a) {
65
- return !isNullable(a);
66
- };
67
- var isFunction = isSimpleType('function');
68
- var isNumber = isSimpleType('number');
46
+ const isType$1 = type => value => typeOf(value) === type;
47
+ const isSimpleType = type => value => typeof value === type;
48
+ const eq$1 = t => a => t === a;
49
+ const isString = isType$1('string');
50
+ const isObject = isType$1('object');
51
+ const isArray = isType$1('array');
52
+ const isNull = eq$1(null);
53
+ const isBoolean = isSimpleType('boolean');
54
+ const isUndefined = eq$1(undefined);
55
+ const isNullable = a => a === null || a === undefined;
56
+ const isNonNullable = a => !isNullable(a);
57
+ const isFunction = isSimpleType('function');
58
+ const isNumber = isSimpleType('number');
69
59
 
70
- var noop = function () {
60
+ const noop = () => {
71
61
  };
72
- var compose = function (fa, fb) {
73
- return function () {
74
- var args = [];
75
- for (var _i = 0; _i < arguments.length; _i++) {
76
- args[_i] = arguments[_i];
77
- }
62
+ const compose = (fa, fb) => {
63
+ return (...args) => {
78
64
  return fa(fb.apply(null, args));
79
65
  };
80
66
  };
81
- var compose1 = function (fbc, fab) {
82
- return function (a) {
83
- return fbc(fab(a));
84
- };
85
- };
86
- var constant = function (value) {
87
- return function () {
67
+ const compose1 = (fbc, fab) => a => fbc(fab(a));
68
+ const constant = value => {
69
+ return () => {
88
70
  return value;
89
71
  };
90
72
  };
91
- var identity = function (x) {
92
- return x;
93
- };
94
- function curry(fn) {
95
- var initialArgs = [];
96
- for (var _i = 1; _i < arguments.length; _i++) {
97
- initialArgs[_i - 1] = arguments[_i];
98
- }
99
- return function () {
100
- var restArgs = [];
101
- for (var _i = 0; _i < arguments.length; _i++) {
102
- restArgs[_i] = arguments[_i];
103
- }
104
- var all = initialArgs.concat(restArgs);
73
+ function curry(fn, ...initialArgs) {
74
+ return (...restArgs) => {
75
+ const all = initialArgs.concat(restArgs);
105
76
  return fn.apply(null, all);
106
77
  };
107
78
  }
108
- var never = constant(false);
109
- var always = constant(true);
79
+ const never = constant(false);
80
+ const always = constant(true);
110
81
 
111
- var none = function () {
112
- return NONE;
113
- };
114
- var NONE = function () {
115
- var call = function (thunk) {
116
- return thunk();
117
- };
118
- var id = identity;
119
- var me = {
120
- fold: function (n, _s) {
121
- return n();
122
- },
123
- isSome: never,
124
- isNone: always,
125
- getOr: id,
126
- getOrThunk: call,
127
- getOrDie: function (msg) {
128
- throw new Error(msg || 'error: getOrDie called on none.');
129
- },
130
- getOrNull: constant(null),
131
- getOrUndefined: constant(undefined),
132
- or: id,
133
- orThunk: call,
134
- map: none,
135
- each: noop,
136
- bind: none,
137
- exists: never,
138
- forall: always,
139
- filter: function () {
140
- return none();
141
- },
142
- toArray: function () {
143
- return [];
144
- },
145
- toString: constant('none()')
146
- };
147
- return me;
148
- }();
149
- var some = function (a) {
150
- var constant_a = constant(a);
151
- var self = function () {
152
- return me;
153
- };
154
- var bind = function (f) {
155
- return f(a);
156
- };
157
- var me = {
158
- fold: function (n, s) {
159
- return s(a);
160
- },
161
- isSome: always,
162
- isNone: never,
163
- getOr: constant_a,
164
- getOrThunk: constant_a,
165
- getOrDie: constant_a,
166
- getOrNull: constant_a,
167
- getOrUndefined: constant_a,
168
- or: self,
169
- orThunk: self,
170
- map: function (f) {
171
- return some(f(a));
172
- },
173
- each: function (f) {
174
- f(a);
175
- },
176
- bind: bind,
177
- exists: bind,
178
- forall: bind,
179
- filter: function (f) {
180
- return f(a) ? me : NONE;
181
- },
182
- toArray: function () {
183
- return [a];
184
- },
185
- toString: function () {
186
- return 'some(' + a + ')';
82
+ class Optional {
83
+ constructor(tag, value) {
84
+ this.tag = tag;
85
+ this.value = value;
86
+ }
87
+ static some(value) {
88
+ return new Optional(true, value);
89
+ }
90
+ static none() {
91
+ return Optional.singletonNone;
92
+ }
93
+ fold(onNone, onSome) {
94
+ if (this.tag) {
95
+ return onSome(this.value);
96
+ } else {
97
+ return onNone();
187
98
  }
188
- };
189
- return me;
190
- };
191
- var from = function (value) {
192
- return value === null || value === undefined ? NONE : some(value);
193
- };
194
- var Optional = {
195
- some: some,
196
- none: none,
197
- from: from
198
- };
199
-
200
- var __assign = function () {
201
- __assign = Object.assign || function __assign(t) {
202
- for (var s, i = 1, n = arguments.length; i < n; i++) {
203
- s = arguments[i];
204
- for (var p in s)
205
- if (Object.prototype.hasOwnProperty.call(s, p))
206
- t[p] = s[p];
99
+ }
100
+ isSome() {
101
+ return this.tag;
102
+ }
103
+ isNone() {
104
+ return !this.tag;
105
+ }
106
+ map(mapper) {
107
+ if (this.tag) {
108
+ return Optional.some(mapper(this.value));
109
+ } else {
110
+ return Optional.none();
207
111
  }
208
- return t;
209
- };
210
- return __assign.apply(this, arguments);
211
- };
212
-
213
- var singleton = function (doRevoke) {
214
- var subject = Cell(Optional.none());
215
- var revoke = function () {
216
- return subject.get().each(doRevoke);
217
- };
218
- var clear = function () {
219
- revoke();
220
- subject.set(Optional.none());
221
- };
222
- var isSet = function () {
223
- return subject.get().isSome();
224
- };
225
- var get = function () {
226
- return subject.get();
227
- };
228
- var set = function (s) {
229
- revoke();
230
- subject.set(Optional.some(s));
231
- };
232
- return {
233
- clear: clear,
234
- isSet: isSet,
235
- get: get,
236
- set: set
237
- };
238
- };
239
- var unbindable = function () {
240
- return singleton(function (s) {
241
- return s.unbind();
242
- });
243
- };
244
- var value = function () {
245
- var subject = singleton(noop);
246
- var on = function (f) {
247
- return subject.get().each(f);
248
- };
249
- return __assign(__assign({}, subject), { on: on });
250
- };
112
+ }
113
+ bind(binder) {
114
+ if (this.tag) {
115
+ return binder(this.value);
116
+ } else {
117
+ return Optional.none();
118
+ }
119
+ }
120
+ exists(predicate) {
121
+ return this.tag && predicate(this.value);
122
+ }
123
+ forall(predicate) {
124
+ return !this.tag || predicate(this.value);
125
+ }
126
+ filter(predicate) {
127
+ if (!this.tag || predicate(this.value)) {
128
+ return this;
129
+ } else {
130
+ return Optional.none();
131
+ }
132
+ }
133
+ getOr(replacement) {
134
+ return this.tag ? this.value : replacement;
135
+ }
136
+ or(replacement) {
137
+ return this.tag ? this : replacement;
138
+ }
139
+ getOrThunk(thunk) {
140
+ return this.tag ? this.value : thunk();
141
+ }
142
+ orThunk(thunk) {
143
+ return this.tag ? this : thunk();
144
+ }
145
+ getOrDie(message) {
146
+ if (!this.tag) {
147
+ throw new Error(message !== null && message !== void 0 ? message : 'Called getOrDie on None');
148
+ } else {
149
+ return this.value;
150
+ }
151
+ }
152
+ static from(value) {
153
+ return isNonNullable(value) ? Optional.some(value) : Optional.none();
154
+ }
155
+ getOrNull() {
156
+ return this.tag ? this.value : null;
157
+ }
158
+ getOrUndefined() {
159
+ return this.value;
160
+ }
161
+ each(worker) {
162
+ if (this.tag) {
163
+ worker(this.value);
164
+ }
165
+ }
166
+ toArray() {
167
+ return this.tag ? [this.value] : [];
168
+ }
169
+ toString() {
170
+ return this.tag ? `some(${ this.value })` : 'none()';
171
+ }
172
+ }
173
+ Optional.singletonNone = new Optional(false);
251
174
 
252
- var nativePush = Array.prototype.push;
253
- var map = function (xs, f) {
254
- var len = xs.length;
255
- var r = new Array(len);
256
- for (var i = 0; i < len; i++) {
257
- var x = xs[i];
175
+ const nativePush = Array.prototype.push;
176
+ const map = (xs, f) => {
177
+ const len = xs.length;
178
+ const r = new Array(len);
179
+ for (let i = 0; i < len; i++) {
180
+ const x = xs[i];
258
181
  r[i] = f(x, i);
259
182
  }
260
183
  return r;
261
184
  };
262
- var each$1 = function (xs, f) {
263
- for (var i = 0, len = xs.length; i < len; i++) {
264
- var x = xs[i];
185
+ const each$1 = (xs, f) => {
186
+ for (let i = 0, len = xs.length; i < len; i++) {
187
+ const x = xs[i];
265
188
  f(x, i);
266
189
  }
267
190
  };
268
- var filter$1 = function (xs, pred) {
269
- var r = [];
270
- for (var i = 0, len = xs.length; i < len; i++) {
271
- var x = xs[i];
191
+ const filter$1 = (xs, pred) => {
192
+ const r = [];
193
+ for (let i = 0, len = xs.length; i < len; i++) {
194
+ const x = xs[i];
272
195
  if (pred(x, i)) {
273
196
  r.push(x);
274
197
  }
275
198
  }
276
199
  return r;
277
200
  };
278
- var findUntil = function (xs, pred, until) {
279
- for (var i = 0, len = xs.length; i < len; i++) {
280
- var x = xs[i];
201
+ const findUntil = (xs, pred, until) => {
202
+ for (let i = 0, len = xs.length; i < len; i++) {
203
+ const x = xs[i];
281
204
  if (pred(x, i)) {
282
205
  return Optional.some(x);
283
206
  } else if (until(x, i)) {
@@ -286,12 +209,12 @@
286
209
  }
287
210
  return Optional.none();
288
211
  };
289
- var find$1 = function (xs, pred) {
212
+ const find$1 = (xs, pred) => {
290
213
  return findUntil(xs, pred, never);
291
214
  };
292
- var flatten = function (xs) {
293
- var r = [];
294
- for (var i = 0, len = xs.length; i < len; ++i) {
215
+ const flatten = xs => {
216
+ const r = [];
217
+ for (let i = 0, len = xs.length; i < len; ++i) {
295
218
  if (!isArray(xs[i])) {
296
219
  throw new Error('Arr.flatten item ' + i + ' was not an array, input: ' + xs);
297
220
  }
@@ -299,18 +222,12 @@
299
222
  }
300
223
  return r;
301
224
  };
302
- var bind$3 = function (xs, f) {
303
- return flatten(map(xs, f));
304
- };
305
- var get$4 = function (xs, i) {
306
- return i >= 0 && i < xs.length ? Optional.some(xs[i]) : Optional.none();
307
- };
308
- var head = function (xs) {
309
- return get$4(xs, 0);
310
- };
311
- var findMap = function (arr, f) {
312
- for (var i = 0; i < arr.length; i++) {
313
- var r = f(arr[i], i);
225
+ const bind$3 = (xs, f) => flatten(map(xs, f));
226
+ const get$4 = (xs, i) => i >= 0 && i < xs.length ? Optional.some(xs[i]) : Optional.none();
227
+ const head = xs => get$4(xs, 0);
228
+ const findMap = (arr, f) => {
229
+ for (let i = 0; i < arr.length; i++) {
230
+ const r = f(arr[i], i);
314
231
  if (r.isSome()) {
315
232
  return r;
316
233
  }
@@ -318,89 +235,346 @@
318
235
  return Optional.none();
319
236
  };
320
237
 
321
- var keys = Object.keys;
322
- var each = function (obj, f) {
323
- var props = keys(obj);
324
- for (var k = 0, len = props.length; k < len; k++) {
325
- var i = props[k];
326
- var x = obj[i];
238
+ const lift2 = (oa, ob, f) => oa.isSome() && ob.isSome() ? Optional.some(f(oa.getOrDie(), ob.getOrDie())) : Optional.none();
239
+
240
+ const singleton = doRevoke => {
241
+ const subject = Cell(Optional.none());
242
+ const revoke = () => subject.get().each(doRevoke);
243
+ const clear = () => {
244
+ revoke();
245
+ subject.set(Optional.none());
246
+ };
247
+ const isSet = () => subject.get().isSome();
248
+ const get = () => subject.get();
249
+ const set = s => {
250
+ revoke();
251
+ subject.set(Optional.some(s));
252
+ };
253
+ return {
254
+ clear,
255
+ isSet,
256
+ get,
257
+ set
258
+ };
259
+ };
260
+ const unbindable = () => singleton(s => s.unbind());
261
+ const value = () => {
262
+ const subject = singleton(noop);
263
+ const on = f => subject.get().each(f);
264
+ return {
265
+ ...subject,
266
+ on
267
+ };
268
+ };
269
+
270
+ const first = (fn, rate) => {
271
+ let timer = null;
272
+ const cancel = () => {
273
+ if (!isNull(timer)) {
274
+ clearTimeout(timer);
275
+ timer = null;
276
+ }
277
+ };
278
+ const throttle = (...args) => {
279
+ if (isNull(timer)) {
280
+ timer = setTimeout(() => {
281
+ timer = null;
282
+ fn.apply(null, args);
283
+ }, rate);
284
+ }
285
+ };
286
+ return {
287
+ cancel,
288
+ throttle
289
+ };
290
+ };
291
+
292
+ const keys = Object.keys;
293
+ const each = (obj, f) => {
294
+ const props = keys(obj);
295
+ for (let k = 0, len = props.length; k < len; k++) {
296
+ const i = props[k];
297
+ const x = obj[i];
327
298
  f(x, i);
328
299
  }
329
300
  };
330
301
 
331
- var contains = function (str, substr) {
332
- return str.indexOf(substr) !== -1;
302
+ const Global = typeof window !== 'undefined' ? window : Function('return this;')();
303
+
304
+ const path = (parts, scope) => {
305
+ let o = scope !== undefined && scope !== null ? scope : Global;
306
+ for (let i = 0; i < parts.length && o !== undefined && o !== null; ++i) {
307
+ o = o[parts[i]];
308
+ }
309
+ return o;
310
+ };
311
+ const resolve = (p, scope) => {
312
+ const parts = p.split('.');
313
+ return path(parts, scope);
314
+ };
315
+
316
+ const unsafe = (name, scope) => {
317
+ return resolve(name, scope);
318
+ };
319
+ const getOrDie = (name, scope) => {
320
+ const actual = unsafe(name, scope);
321
+ if (actual === undefined || actual === null) {
322
+ throw new Error(name + ' not available on this browser');
323
+ }
324
+ return actual;
333
325
  };
334
326
 
335
- var isSupported$1 = function (dom) {
336
- return dom.style !== undefined && isFunction(dom.style.getPropertyValue);
327
+ const getPrototypeOf = Object.getPrototypeOf;
328
+ const sandHTMLElement = scope => {
329
+ return getOrDie('HTMLElement', scope);
330
+ };
331
+ const isPrototypeOf = x => {
332
+ const scope = resolve('ownerDocument.defaultView', x);
333
+ return isObject(x) && (sandHTMLElement(scope).prototype.isPrototypeOf(x) || /^HTML\w*Element$/.test(getPrototypeOf(x).constructor.name));
334
+ };
335
+
336
+ const DOCUMENT = 9;
337
+ const DOCUMENT_FRAGMENT = 11;
338
+ const ELEMENT = 1;
339
+ const TEXT = 3;
340
+
341
+ const type = element => element.dom.nodeType;
342
+ const isType = t => element => type(element) === t;
343
+ const isHTMLElement = element => isElement(element) && isPrototypeOf(element.dom);
344
+ const isElement = isType(ELEMENT);
345
+ const isText = isType(TEXT);
346
+ const isDocument = isType(DOCUMENT);
347
+ const isDocumentFragment = isType(DOCUMENT_FRAGMENT);
348
+
349
+ const rawSet = (dom, key, value) => {
350
+ if (isString(value) || isBoolean(value) || isNumber(value)) {
351
+ dom.setAttribute(key, value + '');
352
+ } else {
353
+ console.error('Invalid call to Attribute.set. Key ', key, ':: Value ', value, ':: Element ', dom);
354
+ throw new Error('Attribute value was not simple');
355
+ }
356
+ };
357
+ const set$1 = (element, key, value) => {
358
+ rawSet(element.dom, key, value);
359
+ };
360
+ const get$3 = (element, key) => {
361
+ const v = element.dom.getAttribute(key);
362
+ return v === null ? undefined : v;
363
+ };
364
+ const remove = (element, key) => {
365
+ element.dom.removeAttribute(key);
366
+ };
367
+
368
+ const supports = element => element.dom.classList !== undefined;
369
+
370
+ const has = (element, clazz) => supports(element) && element.dom.classList.contains(clazz);
371
+
372
+ const contains = (str, substr, start = 0, end) => {
373
+ const idx = str.indexOf(substr, start);
374
+ if (idx !== -1) {
375
+ return isUndefined(end) ? true : idx + substr.length <= end;
376
+ } else {
377
+ return false;
378
+ }
337
379
  };
338
380
 
339
- var fromHtml = function (html, scope) {
340
- var doc = scope || document;
341
- var div = doc.createElement('div');
381
+ const isSupported$1 = dom => dom.style !== undefined && isFunction(dom.style.getPropertyValue);
382
+
383
+ const fromHtml = (html, scope) => {
384
+ const doc = scope || document;
385
+ const div = doc.createElement('div');
342
386
  div.innerHTML = html;
343
387
  if (!div.hasChildNodes() || div.childNodes.length > 1) {
344
- console.error('HTML does not have a single root node', html);
345
- throw new Error('HTML must have a single root node');
388
+ const message = 'HTML does not have a single root node';
389
+ console.error(message, html);
390
+ throw new Error(message);
346
391
  }
347
392
  return fromDom(div.childNodes[0]);
348
393
  };
349
- var fromTag = function (tag, scope) {
350
- var doc = scope || document;
351
- var node = doc.createElement(tag);
394
+ const fromTag = (tag, scope) => {
395
+ const doc = scope || document;
396
+ const node = doc.createElement(tag);
352
397
  return fromDom(node);
353
398
  };
354
- var fromText = function (text, scope) {
355
- var doc = scope || document;
356
- var node = doc.createTextNode(text);
399
+ const fromText = (text, scope) => {
400
+ const doc = scope || document;
401
+ const node = doc.createTextNode(text);
357
402
  return fromDom(node);
358
403
  };
359
- var fromDom = function (node) {
404
+ const fromDom = node => {
360
405
  if (node === null || node === undefined) {
361
406
  throw new Error('Node cannot be null or undefined');
362
407
  }
363
408
  return { dom: node };
364
409
  };
365
- var fromPoint = function (docElm, x, y) {
366
- return Optional.from(docElm.dom.elementFromPoint(x, y)).map(fromDom);
367
- };
368
- var SugarElement = {
369
- fromHtml: fromHtml,
370
- fromTag: fromTag,
371
- fromText: fromText,
372
- fromDom: fromDom,
373
- fromPoint: fromPoint
410
+ const fromPoint = (docElm, x, y) => Optional.from(docElm.dom.elementFromPoint(x, y)).map(fromDom);
411
+ const SugarElement = {
412
+ fromHtml,
413
+ fromTag,
414
+ fromText,
415
+ fromDom,
416
+ fromPoint
374
417
  };
375
418
 
376
- typeof window !== 'undefined' ? window : Function('return this;')();
419
+ const is = (element, selector) => {
420
+ const dom = element.dom;
421
+ if (dom.nodeType !== ELEMENT) {
422
+ return false;
423
+ } else {
424
+ const elem = dom;
425
+ if (elem.matches !== undefined) {
426
+ return elem.matches(selector);
427
+ } else if (elem.msMatchesSelector !== undefined) {
428
+ return elem.msMatchesSelector(selector);
429
+ } else if (elem.webkitMatchesSelector !== undefined) {
430
+ return elem.webkitMatchesSelector(selector);
431
+ } else if (elem.mozMatchesSelector !== undefined) {
432
+ return elem.mozMatchesSelector(selector);
433
+ } else {
434
+ throw new Error('Browser lacks native selectors');
435
+ }
436
+ }
437
+ };
438
+ const bypassSelector = dom => dom.nodeType !== ELEMENT && dom.nodeType !== DOCUMENT && dom.nodeType !== DOCUMENT_FRAGMENT || dom.childElementCount === 0;
439
+ const all$1 = (selector, scope) => {
440
+ const base = scope === undefined ? document : scope.dom;
441
+ return bypassSelector(base) ? [] : map(base.querySelectorAll(selector), SugarElement.fromDom);
442
+ };
377
443
 
378
- var DOCUMENT = 9;
379
- var DOCUMENT_FRAGMENT = 11;
380
- var ELEMENT = 1;
381
- var TEXT = 3;
444
+ const eq = (e1, e2) => e1.dom === e2.dom;
382
445
 
383
- var type = function (element) {
384
- return element.dom.nodeType;
446
+ const owner = element => SugarElement.fromDom(element.dom.ownerDocument);
447
+ const documentOrOwner = dos => isDocument(dos) ? dos : owner(dos);
448
+ const parent = element => Optional.from(element.dom.parentNode).map(SugarElement.fromDom);
449
+ const parents = (element, isRoot) => {
450
+ const stop = isFunction(isRoot) ? isRoot : never;
451
+ let dom = element.dom;
452
+ const ret = [];
453
+ while (dom.parentNode !== null && dom.parentNode !== undefined) {
454
+ const rawParent = dom.parentNode;
455
+ const p = SugarElement.fromDom(rawParent);
456
+ ret.push(p);
457
+ if (stop(p) === true) {
458
+ break;
459
+ } else {
460
+ dom = rawParent;
461
+ }
462
+ }
463
+ return ret;
385
464
  };
386
- var isType = function (t) {
387
- return function (element) {
388
- return type(element) === t;
389
- };
465
+ const siblings$2 = element => {
466
+ const filterSelf = elements => filter$1(elements, x => !eq(element, x));
467
+ return parent(element).map(children).map(filterSelf).getOr([]);
390
468
  };
391
- var isElement = isType(ELEMENT);
392
- var isText = isType(TEXT);
393
- var isDocument = isType(DOCUMENT);
394
- var isDocumentFragment = isType(DOCUMENT_FRAGMENT);
469
+ const nextSibling = element => Optional.from(element.dom.nextSibling).map(SugarElement.fromDom);
470
+ const children = element => map(element.dom.childNodes, SugarElement.fromDom);
395
471
 
396
- var cached = function (f) {
397
- var called = false;
398
- var r;
399
- return function () {
400
- var args = [];
401
- for (var _i = 0; _i < arguments.length; _i++) {
402
- args[_i] = arguments[_i];
472
+ const isShadowRoot = dos => isDocumentFragment(dos) && isNonNullable(dos.dom.host);
473
+ const supported = isFunction(Element.prototype.attachShadow) && isFunction(Node.prototype.getRootNode);
474
+ const isSupported = constant(supported);
475
+ const getRootNode = supported ? e => SugarElement.fromDom(e.dom.getRootNode()) : documentOrOwner;
476
+ const getShadowRoot = e => {
477
+ const r = getRootNode(e);
478
+ return isShadowRoot(r) ? Optional.some(r) : Optional.none();
479
+ };
480
+ const getShadowHost = e => SugarElement.fromDom(e.dom.host);
481
+ const getOriginalEventTarget = event => {
482
+ if (isSupported() && isNonNullable(event.target)) {
483
+ const el = SugarElement.fromDom(event.target);
484
+ if (isElement(el) && isOpenShadowHost(el)) {
485
+ if (event.composed && event.composedPath) {
486
+ const composedPath = event.composedPath();
487
+ if (composedPath) {
488
+ return head(composedPath);
489
+ }
490
+ }
403
491
  }
492
+ }
493
+ return Optional.from(event.target);
494
+ };
495
+ const isOpenShadowHost = element => isNonNullable(element.dom.shadowRoot);
496
+
497
+ const inBody = element => {
498
+ const dom = isText(element) ? element.dom.parentNode : element.dom;
499
+ if (dom === undefined || dom === null || dom.ownerDocument === null) {
500
+ return false;
501
+ }
502
+ const doc = dom.ownerDocument;
503
+ return getShadowRoot(SugarElement.fromDom(dom)).fold(() => doc.body.contains(dom), compose1(inBody, getShadowHost));
504
+ };
505
+ const getBody = doc => {
506
+ const b = doc.dom.body;
507
+ if (b === null || b === undefined) {
508
+ throw new Error('Body is not available yet');
509
+ }
510
+ return SugarElement.fromDom(b);
511
+ };
512
+
513
+ const internalSet = (dom, property, value) => {
514
+ if (!isString(value)) {
515
+ console.error('Invalid call to CSS.set. Property ', property, ':: Value ', value, ':: Element ', dom);
516
+ throw new Error('CSS value must be a string: ' + value);
517
+ }
518
+ if (isSupported$1(dom)) {
519
+ dom.style.setProperty(property, value);
520
+ }
521
+ };
522
+ const set = (element, property, value) => {
523
+ const dom = element.dom;
524
+ internalSet(dom, property, value);
525
+ };
526
+ const setAll = (element, css) => {
527
+ const dom = element.dom;
528
+ each(css, (v, k) => {
529
+ internalSet(dom, k, v);
530
+ });
531
+ };
532
+ const get$2 = (element, property) => {
533
+ const dom = element.dom;
534
+ const styles = window.getComputedStyle(dom);
535
+ const r = styles.getPropertyValue(property);
536
+ return r === '' && !inBody(element) ? getUnsafeProperty(dom, property) : r;
537
+ };
538
+ const getUnsafeProperty = (dom, property) => isSupported$1(dom) ? dom.style.getPropertyValue(property) : '';
539
+
540
+ const mkEvent = (target, x, y, stop, prevent, kill, raw) => ({
541
+ target,
542
+ x,
543
+ y,
544
+ stop,
545
+ prevent,
546
+ kill,
547
+ raw
548
+ });
549
+ const fromRawEvent = rawEvent => {
550
+ const target = SugarElement.fromDom(getOriginalEventTarget(rawEvent).getOr(rawEvent.target));
551
+ const stop = () => rawEvent.stopPropagation();
552
+ const prevent = () => rawEvent.preventDefault();
553
+ const kill = compose(prevent, stop);
554
+ return mkEvent(target, rawEvent.clientX, rawEvent.clientY, stop, prevent, kill, rawEvent);
555
+ };
556
+ const handle = (filter, handler) => rawEvent => {
557
+ if (filter(rawEvent)) {
558
+ handler(fromRawEvent(rawEvent));
559
+ }
560
+ };
561
+ const binder = (element, event, filter, handler, useCapture) => {
562
+ const wrapped = handle(filter, handler);
563
+ element.dom.addEventListener(event, wrapped, useCapture);
564
+ return { unbind: curry(unbind, element, event, wrapped, useCapture) };
565
+ };
566
+ const bind$2 = (element, event, filter, handler) => binder(element, event, filter, handler, false);
567
+ const unbind = (element, event, handler, useCapture) => {
568
+ element.dom.removeEventListener(event, handler, useCapture);
569
+ };
570
+
571
+ const filter = always;
572
+ const bind$1 = (element, event, handler) => bind$2(element, event, filter, handler);
573
+
574
+ const cached = f => {
575
+ let called = false;
576
+ let r;
577
+ return (...args) => {
404
578
  if (!called) {
405
579
  called = true;
406
580
  r = f.apply(null, args);
@@ -409,15 +583,15 @@
409
583
  };
410
584
  };
411
585
 
412
- var DeviceType = function (os, browser, userAgent, mediaMatch) {
413
- var isiPad = os.isiOS() && /ipad/i.test(userAgent) === true;
414
- var isiPhone = os.isiOS() && !isiPad;
415
- var isMobile = os.isiOS() || os.isAndroid();
416
- var isTouch = isMobile || mediaMatch('(pointer:coarse)');
417
- var isTablet = isiPad || !isiPhone && isMobile && mediaMatch('(min-device-width:768px)');
418
- var isPhone = isiPhone || isMobile && !isTablet;
419
- var iOSwebview = browser.isSafari() && os.isiOS() && /safari/i.test(userAgent) === false;
420
- var isDesktop = !isPhone && !isTablet && !iOSwebview;
586
+ const DeviceType = (os, browser, userAgent, mediaMatch) => {
587
+ const isiPad = os.isiOS() && /ipad/i.test(userAgent) === true;
588
+ const isiPhone = os.isiOS() && !isiPad;
589
+ const isMobile = os.isiOS() || os.isAndroid();
590
+ const isTouch = isMobile || mediaMatch('(pointer:coarse)');
591
+ const isTablet = isiPad || !isiPhone && isMobile && mediaMatch('(min-device-width:768px)');
592
+ const isPhone = isiPhone || isMobile && !isTablet;
593
+ const iOSwebview = browser.isSafari() && os.isiOS() && /safari/i.test(userAgent) === false;
594
+ const isDesktop = !isPhone && !isTablet && !iOSwebview;
421
595
  return {
422
596
  isiPad: constant(isiPad),
423
597
  isiPhone: constant(isiPhone),
@@ -431,112 +605,110 @@
431
605
  };
432
606
  };
433
607
 
434
- var firstMatch = function (regexes, s) {
435
- for (var i = 0; i < regexes.length; i++) {
436
- var x = regexes[i];
608
+ const firstMatch = (regexes, s) => {
609
+ for (let i = 0; i < regexes.length; i++) {
610
+ const x = regexes[i];
437
611
  if (x.test(s)) {
438
612
  return x;
439
613
  }
440
614
  }
441
615
  return undefined;
442
616
  };
443
- var find = function (regexes, agent) {
444
- var r = firstMatch(regexes, agent);
617
+ const find = (regexes, agent) => {
618
+ const r = firstMatch(regexes, agent);
445
619
  if (!r) {
446
620
  return {
447
621
  major: 0,
448
622
  minor: 0
449
623
  };
450
624
  }
451
- var group = function (i) {
625
+ const group = i => {
452
626
  return Number(agent.replace(r, '$' + i));
453
627
  };
454
628
  return nu$2(group(1), group(2));
455
629
  };
456
- var detect$3 = function (versionRegexes, agent) {
457
- var cleanedAgent = String(agent).toLowerCase();
630
+ const detect$3 = (versionRegexes, agent) => {
631
+ const cleanedAgent = String(agent).toLowerCase();
458
632
  if (versionRegexes.length === 0) {
459
633
  return unknown$2();
460
634
  }
461
635
  return find(versionRegexes, cleanedAgent);
462
636
  };
463
- var unknown$2 = function () {
637
+ const unknown$2 = () => {
464
638
  return nu$2(0, 0);
465
639
  };
466
- var nu$2 = function (major, minor) {
640
+ const nu$2 = (major, minor) => {
467
641
  return {
468
- major: major,
469
- minor: minor
642
+ major,
643
+ minor
470
644
  };
471
645
  };
472
- var Version = {
646
+ const Version = {
473
647
  nu: nu$2,
474
648
  detect: detect$3,
475
649
  unknown: unknown$2
476
650
  };
477
651
 
478
- var detectBrowser$1 = function (browsers, userAgentData) {
479
- return findMap(userAgentData.brands, function (uaBrand) {
480
- var lcBrand = uaBrand.brand.toLowerCase();
481
- return find$1(browsers, function (browser) {
652
+ const detectBrowser$1 = (browsers, userAgentData) => {
653
+ return findMap(userAgentData.brands, uaBrand => {
654
+ const lcBrand = uaBrand.brand.toLowerCase();
655
+ return find$1(browsers, browser => {
482
656
  var _a;
483
657
  return lcBrand === ((_a = browser.brand) === null || _a === void 0 ? void 0 : _a.toLowerCase());
484
- }).map(function (info) {
485
- return {
486
- current: info.name,
487
- version: Version.nu(parseInt(uaBrand.version, 10), 0)
488
- };
489
- });
658
+ }).map(info => ({
659
+ current: info.name,
660
+ version: Version.nu(parseInt(uaBrand.version, 10), 0)
661
+ }));
490
662
  });
491
663
  };
492
664
 
493
- var detect$2 = function (candidates, userAgent) {
494
- var agent = String(userAgent).toLowerCase();
495
- return find$1(candidates, function (candidate) {
665
+ const detect$2 = (candidates, userAgent) => {
666
+ const agent = String(userAgent).toLowerCase();
667
+ return find$1(candidates, candidate => {
496
668
  return candidate.search(agent);
497
669
  });
498
670
  };
499
- var detectBrowser = function (browsers, userAgent) {
500
- return detect$2(browsers, userAgent).map(function (browser) {
501
- var version = Version.detect(browser.versionRegexes, userAgent);
671
+ const detectBrowser = (browsers, userAgent) => {
672
+ return detect$2(browsers, userAgent).map(browser => {
673
+ const version = Version.detect(browser.versionRegexes, userAgent);
502
674
  return {
503
675
  current: browser.name,
504
- version: version
676
+ version
505
677
  };
506
678
  });
507
679
  };
508
- var detectOs = function (oses, userAgent) {
509
- return detect$2(oses, userAgent).map(function (os) {
510
- var version = Version.detect(os.versionRegexes, userAgent);
680
+ const detectOs = (oses, userAgent) => {
681
+ return detect$2(oses, userAgent).map(os => {
682
+ const version = Version.detect(os.versionRegexes, userAgent);
511
683
  return {
512
684
  current: os.name,
513
- version: version
685
+ version
514
686
  };
515
687
  });
516
688
  };
517
689
 
518
- var normalVersionRegex = /.*?version\/\ ?([0-9]+)\.([0-9]+).*/;
519
- var checkContains = function (target) {
520
- return function (uastring) {
690
+ const normalVersionRegex = /.*?version\/\ ?([0-9]+)\.([0-9]+).*/;
691
+ const checkContains = target => {
692
+ return uastring => {
521
693
  return contains(uastring, target);
522
694
  };
523
695
  };
524
- var browsers = [
696
+ const browsers = [
525
697
  {
526
698
  name: 'Edge',
527
699
  versionRegexes: [/.*?edge\/ ?([0-9]+)\.([0-9]+)$/],
528
- search: function (uastring) {
700
+ search: uastring => {
529
701
  return contains(uastring, 'edge/') && contains(uastring, 'chrome') && contains(uastring, 'safari') && contains(uastring, 'applewebkit');
530
702
  }
531
703
  },
532
704
  {
533
- name: 'Chrome',
705
+ name: 'Chromium',
534
706
  brand: 'Chromium',
535
707
  versionRegexes: [
536
708
  /.*?chrome\/([0-9]+)\.([0-9]+).*/,
537
709
  normalVersionRegex
538
710
  ],
539
- search: function (uastring) {
711
+ search: uastring => {
540
712
  return contains(uastring, 'chrome') && !contains(uastring, 'chromeframe');
541
713
  }
542
714
  },
@@ -546,7 +718,7 @@
546
718
  /.*?msie\ ?([0-9]+)\.([0-9]+).*/,
547
719
  /.*?rv:([0-9]+)\.([0-9]+).*/
548
720
  ],
549
- search: function (uastring) {
721
+ search: uastring => {
550
722
  return contains(uastring, 'msie') || contains(uastring, 'trident');
551
723
  }
552
724
  },
@@ -569,12 +741,12 @@
569
741
  normalVersionRegex,
570
742
  /.*?cpu os ([0-9]+)_([0-9]+).*/
571
743
  ],
572
- search: function (uastring) {
744
+ search: uastring => {
573
745
  return (contains(uastring, 'safari') || contains(uastring, 'mobile/')) && contains(uastring, 'applewebkit');
574
746
  }
575
747
  }
576
748
  ];
577
- var oses = [
749
+ const oses = [
578
750
  {
579
751
  name: 'Windows',
580
752
  search: checkContains('win'),
@@ -582,7 +754,7 @@
582
754
  },
583
755
  {
584
756
  name: 'iOS',
585
- search: function (uastring) {
757
+ search: uastring => {
586
758
  return contains(uastring, 'iphone') || contains(uastring, 'ipad');
587
759
  },
588
760
  versionRegexes: [
@@ -597,7 +769,7 @@
597
769
  versionRegexes: [/.*?android\ ?([0-9]+)\.([0-9]+).*/]
598
770
  },
599
771
  {
600
- name: 'OSX',
772
+ name: 'macOS',
601
773
  search: checkContains('mac os x'),
602
774
  versionRegexes: [/.*?mac\ os\ x\ ?([0-9]+)_([0-9]+).*/]
603
775
  },
@@ -622,426 +794,185 @@
622
794
  versionRegexes: [/.*?chrome\/([0-9]+)\.([0-9]+).*/]
623
795
  }
624
796
  ];
625
- var PlatformInfo = {
797
+ const PlatformInfo = {
626
798
  browsers: constant(browsers),
627
799
  oses: constant(oses)
628
800
  };
629
801
 
630
- var edge = 'Edge';
631
- var chrome = 'Chrome';
632
- var ie = 'IE';
633
- var opera = 'Opera';
634
- var firefox = 'Firefox';
635
- var safari = 'Safari';
636
- var unknown$1 = function () {
802
+ const edge = 'Edge';
803
+ const chromium = 'Chromium';
804
+ const ie = 'IE';
805
+ const opera = 'Opera';
806
+ const firefox = 'Firefox';
807
+ const safari = 'Safari';
808
+ const unknown$1 = () => {
637
809
  return nu$1({
638
810
  current: undefined,
639
811
  version: Version.unknown()
640
812
  });
641
813
  };
642
- var nu$1 = function (info) {
643
- var current = info.current;
644
- var version = info.version;
645
- var isBrowser = function (name) {
646
- return function () {
647
- return current === name;
648
- };
649
- };
814
+ const nu$1 = info => {
815
+ const current = info.current;
816
+ const version = info.version;
817
+ const isBrowser = name => () => current === name;
650
818
  return {
651
- current: current,
652
- version: version,
819
+ current,
820
+ version,
653
821
  isEdge: isBrowser(edge),
654
- isChrome: isBrowser(chrome),
822
+ isChromium: isBrowser(chromium),
655
823
  isIE: isBrowser(ie),
656
824
  isOpera: isBrowser(opera),
657
825
  isFirefox: isBrowser(firefox),
658
826
  isSafari: isBrowser(safari)
659
827
  };
660
828
  };
661
- var Browser = {
829
+ const Browser = {
662
830
  unknown: unknown$1,
663
831
  nu: nu$1,
664
832
  edge: constant(edge),
665
- chrome: constant(chrome),
833
+ chromium: constant(chromium),
666
834
  ie: constant(ie),
667
835
  opera: constant(opera),
668
836
  firefox: constant(firefox),
669
837
  safari: constant(safari)
670
838
  };
671
839
 
672
- var windows = 'Windows';
673
- var ios = 'iOS';
674
- var android = 'Android';
675
- var linux = 'Linux';
676
- var osx = 'OSX';
677
- var solaris = 'Solaris';
678
- var freebsd = 'FreeBSD';
679
- var chromeos = 'ChromeOS';
680
- var unknown = function () {
840
+ const windows = 'Windows';
841
+ const ios = 'iOS';
842
+ const android = 'Android';
843
+ const linux = 'Linux';
844
+ const macos = 'macOS';
845
+ const solaris = 'Solaris';
846
+ const freebsd = 'FreeBSD';
847
+ const chromeos = 'ChromeOS';
848
+ const unknown = () => {
681
849
  return nu({
682
850
  current: undefined,
683
851
  version: Version.unknown()
684
852
  });
685
853
  };
686
- var nu = function (info) {
687
- var current = info.current;
688
- var version = info.version;
689
- var isOS = function (name) {
690
- return function () {
691
- return current === name;
692
- };
693
- };
854
+ const nu = info => {
855
+ const current = info.current;
856
+ const version = info.version;
857
+ const isOS = name => () => current === name;
694
858
  return {
695
- current: current,
696
- version: version,
859
+ current,
860
+ version,
697
861
  isWindows: isOS(windows),
698
862
  isiOS: isOS(ios),
699
863
  isAndroid: isOS(android),
700
- isOSX: isOS(osx),
864
+ isMacOS: isOS(macos),
701
865
  isLinux: isOS(linux),
702
866
  isSolaris: isOS(solaris),
703
867
  isFreeBSD: isOS(freebsd),
704
868
  isChromeOS: isOS(chromeos)
705
869
  };
706
870
  };
707
- var OperatingSystem = {
708
- unknown: unknown,
709
- nu: nu,
871
+ const OperatingSystem = {
872
+ unknown,
873
+ nu,
710
874
  windows: constant(windows),
711
875
  ios: constant(ios),
712
876
  android: constant(android),
713
877
  linux: constant(linux),
714
- osx: constant(osx),
878
+ macos: constant(macos),
715
879
  solaris: constant(solaris),
716
880
  freebsd: constant(freebsd),
717
881
  chromeos: constant(chromeos)
718
882
  };
719
883
 
720
- var detect$1 = function (userAgent, userAgentDataOpt, mediaMatch) {
721
- var browsers = PlatformInfo.browsers();
722
- var oses = PlatformInfo.oses();
723
- var browser = userAgentDataOpt.bind(function (userAgentData) {
724
- return detectBrowser$1(browsers, userAgentData);
725
- }).orThunk(function () {
726
- return detectBrowser(browsers, userAgent);
727
- }).fold(Browser.unknown, Browser.nu);
728
- var os = detectOs(oses, userAgent).fold(OperatingSystem.unknown, OperatingSystem.nu);
729
- var deviceType = DeviceType(os, browser, userAgent, mediaMatch);
730
- return {
731
- browser: browser,
732
- os: os,
733
- deviceType: deviceType
734
- };
735
- };
736
- var PlatformDetection = { detect: detect$1 };
737
-
738
- var mediaMatch = function (query) {
739
- return window.matchMedia(query).matches;
740
- };
741
- var platform = cached(function () {
742
- return PlatformDetection.detect(navigator.userAgent, Optional.from(navigator.userAgentData), mediaMatch);
743
- });
744
- var detect = function () {
745
- return platform();
746
- };
747
-
748
- var is = function (element, selector) {
749
- var dom = element.dom;
750
- if (dom.nodeType !== ELEMENT) {
751
- return false;
752
- } else {
753
- var elem = dom;
754
- if (elem.matches !== undefined) {
755
- return elem.matches(selector);
756
- } else if (elem.msMatchesSelector !== undefined) {
757
- return elem.msMatchesSelector(selector);
758
- } else if (elem.webkitMatchesSelector !== undefined) {
759
- return elem.webkitMatchesSelector(selector);
760
- } else if (elem.mozMatchesSelector !== undefined) {
761
- return elem.mozMatchesSelector(selector);
762
- } else {
763
- throw new Error('Browser lacks native selectors');
764
- }
765
- }
766
- };
767
- var bypassSelector = function (dom) {
768
- return dom.nodeType !== ELEMENT && dom.nodeType !== DOCUMENT && dom.nodeType !== DOCUMENT_FRAGMENT || dom.childElementCount === 0;
769
- };
770
- var all$1 = function (selector, scope) {
771
- var base = scope === undefined ? document : scope.dom;
772
- return bypassSelector(base) ? [] : map(base.querySelectorAll(selector), SugarElement.fromDom);
773
- };
774
-
775
- var eq = function (e1, e2) {
776
- return e1.dom === e2.dom;
777
- };
778
-
779
- var owner = function (element) {
780
- return SugarElement.fromDom(element.dom.ownerDocument);
781
- };
782
- var documentOrOwner = function (dos) {
783
- return isDocument(dos) ? dos : owner(dos);
784
- };
785
- var parent = function (element) {
786
- return Optional.from(element.dom.parentNode).map(SugarElement.fromDom);
787
- };
788
- var parents = function (element, isRoot) {
789
- var stop = isFunction(isRoot) ? isRoot : never;
790
- var dom = element.dom;
791
- var ret = [];
792
- while (dom.parentNode !== null && dom.parentNode !== undefined) {
793
- var rawParent = dom.parentNode;
794
- var p = SugarElement.fromDom(rawParent);
795
- ret.push(p);
796
- if (stop(p) === true) {
797
- break;
798
- } else {
799
- dom = rawParent;
800
- }
801
- }
802
- return ret;
803
- };
804
- var siblings$2 = function (element) {
805
- var filterSelf = function (elements) {
806
- return filter$1(elements, function (x) {
807
- return !eq(element, x);
808
- });
809
- };
810
- return parent(element).map(children).map(filterSelf).getOr([]);
811
- };
812
- var children = function (element) {
813
- return map(element.dom.childNodes, SugarElement.fromDom);
814
- };
815
-
816
- var isShadowRoot = function (dos) {
817
- return isDocumentFragment(dos) && isNonNullable(dos.dom.host);
818
- };
819
- var supported = isFunction(Element.prototype.attachShadow) && isFunction(Node.prototype.getRootNode);
820
- var isSupported = constant(supported);
821
- var getRootNode = supported ? function (e) {
822
- return SugarElement.fromDom(e.dom.getRootNode());
823
- } : documentOrOwner;
824
- var getShadowRoot = function (e) {
825
- var r = getRootNode(e);
826
- return isShadowRoot(r) ? Optional.some(r) : Optional.none();
827
- };
828
- var getShadowHost = function (e) {
829
- return SugarElement.fromDom(e.dom.host);
830
- };
831
- var getOriginalEventTarget = function (event) {
832
- if (isSupported() && isNonNullable(event.target)) {
833
- var el = SugarElement.fromDom(event.target);
834
- if (isElement(el) && isOpenShadowHost(el)) {
835
- if (event.composed && event.composedPath) {
836
- var composedPath = event.composedPath();
837
- if (composedPath) {
838
- return head(composedPath);
839
- }
840
- }
841
- }
842
- }
843
- return Optional.from(event.target);
844
- };
845
- var isOpenShadowHost = function (element) {
846
- return isNonNullable(element.dom.shadowRoot);
847
- };
848
-
849
- var inBody = function (element) {
850
- var dom = isText(element) ? element.dom.parentNode : element.dom;
851
- if (dom === undefined || dom === null || dom.ownerDocument === null) {
852
- return false;
853
- }
854
- var doc = dom.ownerDocument;
855
- return getShadowRoot(SugarElement.fromDom(dom)).fold(function () {
856
- return doc.body.contains(dom);
857
- }, compose1(inBody, getShadowHost));
858
- };
859
- var getBody = function (doc) {
860
- var b = doc.dom.body;
861
- if (b === null || b === undefined) {
862
- throw new Error('Body is not available yet');
863
- }
864
- return SugarElement.fromDom(b);
865
- };
866
-
867
- var rawSet = function (dom, key, value) {
868
- if (isString(value) || isBoolean(value) || isNumber(value)) {
869
- dom.setAttribute(key, value + '');
870
- } else {
871
- console.error('Invalid call to Attribute.set. Key ', key, ':: Value ', value, ':: Element ', dom);
872
- throw new Error('Attribute value was not simple');
873
- }
874
- };
875
- var set = function (element, key, value) {
876
- rawSet(element.dom, key, value);
877
- };
878
- var get$3 = function (element, key) {
879
- var v = element.dom.getAttribute(key);
880
- return v === null ? undefined : v;
881
- };
882
- var remove = function (element, key) {
883
- element.dom.removeAttribute(key);
884
- };
885
-
886
- var internalSet = function (dom, property, value) {
887
- if (!isString(value)) {
888
- console.error('Invalid call to CSS.set. Property ', property, ':: Value ', value, ':: Element ', dom);
889
- throw new Error('CSS value must be a string: ' + value);
890
- }
891
- if (isSupported$1(dom)) {
892
- dom.style.setProperty(property, value);
893
- }
894
- };
895
- var setAll = function (element, css) {
896
- var dom = element.dom;
897
- each(css, function (v, k) {
898
- internalSet(dom, k, v);
899
- });
900
- };
901
- var get$2 = function (element, property) {
902
- var dom = element.dom;
903
- var styles = window.getComputedStyle(dom);
904
- var r = styles.getPropertyValue(property);
905
- return r === '' && !inBody(element) ? getUnsafeProperty(dom, property) : r;
906
- };
907
- var getUnsafeProperty = function (dom, property) {
908
- return isSupported$1(dom) ? dom.style.getPropertyValue(property) : '';
909
- };
910
-
911
- var mkEvent = function (target, x, y, stop, prevent, kill, raw) {
884
+ const detect$1 = (userAgent, userAgentDataOpt, mediaMatch) => {
885
+ const browsers = PlatformInfo.browsers();
886
+ const oses = PlatformInfo.oses();
887
+ const browser = userAgentDataOpt.bind(userAgentData => detectBrowser$1(browsers, userAgentData)).orThunk(() => detectBrowser(browsers, userAgent)).fold(Browser.unknown, Browser.nu);
888
+ const os = detectOs(oses, userAgent).fold(OperatingSystem.unknown, OperatingSystem.nu);
889
+ const deviceType = DeviceType(os, browser, userAgent, mediaMatch);
912
890
  return {
913
- target: target,
914
- x: x,
915
- y: y,
916
- stop: stop,
917
- prevent: prevent,
918
- kill: kill,
919
- raw: raw
920
- };
921
- };
922
- var fromRawEvent = function (rawEvent) {
923
- var target = SugarElement.fromDom(getOriginalEventTarget(rawEvent).getOr(rawEvent.target));
924
- var stop = function () {
925
- return rawEvent.stopPropagation();
926
- };
927
- var prevent = function () {
928
- return rawEvent.preventDefault();
929
- };
930
- var kill = compose(prevent, stop);
931
- return mkEvent(target, rawEvent.clientX, rawEvent.clientY, stop, prevent, kill, rawEvent);
932
- };
933
- var handle = function (filter, handler) {
934
- return function (rawEvent) {
935
- if (filter(rawEvent)) {
936
- handler(fromRawEvent(rawEvent));
937
- }
891
+ browser,
892
+ os,
893
+ deviceType
938
894
  };
939
895
  };
940
- var binder = function (element, event, filter, handler, useCapture) {
941
- var wrapped = handle(filter, handler);
942
- element.dom.addEventListener(event, wrapped, useCapture);
943
- return { unbind: curry(unbind, element, event, wrapped, useCapture) };
944
- };
945
- var bind$2 = function (element, event, filter, handler) {
946
- return binder(element, event, filter, handler, false);
947
- };
948
- var unbind = function (element, event, handler, useCapture) {
949
- element.dom.removeEventListener(event, handler, useCapture);
950
- };
896
+ const PlatformDetection = { detect: detect$1 };
951
897
 
952
- var filter = always;
953
- var bind$1 = function (element, event, handler) {
954
- return bind$2(element, event, filter, handler);
955
- };
898
+ const mediaMatch = query => window.matchMedia(query).matches;
899
+ let platform = cached(() => PlatformDetection.detect(navigator.userAgent, Optional.from(navigator.userAgentData), mediaMatch));
900
+ const detect = () => platform();
956
901
 
957
- var r = function (left, top) {
958
- var translate = function (x, y) {
959
- return r(left + x, top + y);
960
- };
902
+ const r = (left, top) => {
903
+ const translate = (x, y) => r(left + x, top + y);
961
904
  return {
962
- left: left,
963
- top: top,
964
- translate: translate
905
+ left,
906
+ top,
907
+ translate
965
908
  };
966
909
  };
967
- var SugarPosition = r;
910
+ const SugarPosition = r;
968
911
 
969
- var get$1 = function (_DOC) {
970
- var doc = _DOC !== undefined ? _DOC.dom : document;
971
- var x = doc.body.scrollLeft || doc.documentElement.scrollLeft;
972
- var y = doc.body.scrollTop || doc.documentElement.scrollTop;
912
+ const get$1 = _DOC => {
913
+ const doc = _DOC !== undefined ? _DOC.dom : document;
914
+ const x = doc.body.scrollLeft || doc.documentElement.scrollLeft;
915
+ const y = doc.body.scrollTop || doc.documentElement.scrollTop;
973
916
  return SugarPosition(x, y);
974
917
  };
975
918
 
976
- var get = function (_win) {
977
- var win = _win === undefined ? window : _win;
919
+ const get = _win => {
920
+ const win = _win === undefined ? window : _win;
978
921
  if (detect().browser.isFirefox()) {
979
922
  return Optional.none();
980
923
  } else {
981
- return Optional.from(win['visualViewport']);
924
+ return Optional.from(win.visualViewport);
982
925
  }
983
926
  };
984
- var bounds = function (x, y, width, height) {
985
- return {
986
- x: x,
987
- y: y,
988
- width: width,
989
- height: height,
990
- right: x + width,
991
- bottom: y + height
992
- };
993
- };
994
- var getBounds = function (_win) {
995
- var win = _win === undefined ? window : _win;
996
- var doc = win.document;
997
- var scroll = get$1(SugarElement.fromDom(doc));
998
- return get(win).fold(function () {
999
- var html = win.document.documentElement;
1000
- var width = html.clientWidth;
1001
- var height = html.clientHeight;
927
+ const bounds = (x, y, width, height) => ({
928
+ x,
929
+ y,
930
+ width,
931
+ height,
932
+ right: x + width,
933
+ bottom: y + height
934
+ });
935
+ const getBounds = _win => {
936
+ const win = _win === undefined ? window : _win;
937
+ const doc = win.document;
938
+ const scroll = get$1(SugarElement.fromDom(doc));
939
+ return get(win).fold(() => {
940
+ const html = win.document.documentElement;
941
+ const width = html.clientWidth;
942
+ const height = html.clientHeight;
1002
943
  return bounds(scroll.left, scroll.top, width, height);
1003
- }, function (visualViewport) {
1004
- return bounds(Math.max(visualViewport.pageLeft, scroll.left), Math.max(visualViewport.pageTop, scroll.top), visualViewport.width, visualViewport.height);
1005
- });
1006
- };
1007
- var bind = function (name, callback, _win) {
1008
- return get(_win).map(function (visualViewport) {
1009
- var handler = function (e) {
1010
- return callback(fromRawEvent(e));
1011
- };
1012
- visualViewport.addEventListener(name, handler);
1013
- return {
1014
- unbind: function () {
1015
- return visualViewport.removeEventListener(name, handler);
1016
- }
1017
- };
1018
- }).getOrThunk(function () {
1019
- return { unbind: noop };
1020
- });
944
+ }, visualViewport => bounds(Math.max(visualViewport.pageLeft, scroll.left), Math.max(visualViewport.pageTop, scroll.top), visualViewport.width, visualViewport.height));
1021
945
  };
946
+ const bind = (name, callback, _win) => get(_win).map(visualViewport => {
947
+ const handler = e => callback(fromRawEvent(e));
948
+ visualViewport.addEventListener(name, handler);
949
+ return { unbind: () => visualViewport.removeEventListener(name, handler) };
950
+ }).getOrThunk(() => ({ unbind: noop }));
1022
951
 
1023
- var global$2 = tinymce.util.Tools.resolve('tinymce.dom.DOMUtils');
1024
-
1025
- var global$1 = tinymce.util.Tools.resolve('tinymce.Env');
952
+ var global$1 = tinymce.util.Tools.resolve('tinymce.dom.DOMUtils');
1026
953
 
1027
- var global = tinymce.util.Tools.resolve('tinymce.util.Delay');
954
+ var global = tinymce.util.Tools.resolve('tinymce.Env');
1028
955
 
1029
- var fireFullscreenStateChanged = function (editor, state) {
1030
- editor.fire('FullscreenStateChanged', { state: state });
1031
- editor.fire('ResizeEditor');
956
+ const fireFullscreenStateChanged = (editor, state) => {
957
+ editor.dispatch('FullscreenStateChanged', { state });
958
+ editor.dispatch('ResizeEditor');
1032
959
  };
1033
960
 
1034
- var getFullscreenNative = function (editor) {
1035
- return editor.getParam('fullscreen_native', false, 'boolean');
961
+ const option = name => editor => editor.options.get(name);
962
+ const register$2 = editor => {
963
+ const registerOption = editor.options.register;
964
+ registerOption('fullscreen_native', {
965
+ processor: 'boolean',
966
+ default: false
967
+ });
1036
968
  };
969
+ const getFullscreenNative = option('fullscreen_native');
1037
970
 
1038
- var getFullscreenRoot = function (editor) {
1039
- var elem = SugarElement.fromDom(editor.getElement());
1040
- return getShadowRoot(elem).map(getShadowHost).getOrThunk(function () {
1041
- return getBody(owner(elem));
1042
- });
971
+ const getFullscreenRoot = editor => {
972
+ const elem = SugarElement.fromDom(editor.getElement());
973
+ return getShadowRoot(elem).map(getShadowHost).getOrThunk(() => getBody(owner(elem)));
1043
974
  };
1044
- var getFullscreenElement = function (root) {
975
+ const getFullscreenElement = root => {
1045
976
  if (root.fullscreenElement !== undefined) {
1046
977
  return root.fullscreenElement;
1047
978
  } else if (root.msFullscreenElement !== undefined) {
@@ -1052,7 +983,7 @@
1052
983
  return null;
1053
984
  }
1054
985
  };
1055
- var getFullscreenchangeEventName = function () {
986
+ const getFullscreenchangeEventName = () => {
1056
987
  if (document.fullscreenElement !== undefined) {
1057
988
  return 'fullscreenchange';
1058
989
  } else if (document.msFullscreenElement !== undefined) {
@@ -1063,8 +994,8 @@
1063
994
  return 'fullscreenchange';
1064
995
  }
1065
996
  };
1066
- var requestFullscreen = function (sugarElem) {
1067
- var elem = sugarElem.dom;
997
+ const requestFullscreen = sugarElem => {
998
+ const elem = sugarElem.dom;
1068
999
  if (elem.requestFullscreen) {
1069
1000
  elem.requestFullscreen();
1070
1001
  } else if (elem.msRequestFullscreen) {
@@ -1073,8 +1004,8 @@
1073
1004
  elem.webkitRequestFullScreen();
1074
1005
  }
1075
1006
  };
1076
- var exitFullscreen = function (sugarDoc) {
1077
- var doc = sugarDoc.dom;
1007
+ const exitFullscreen = sugarDoc => {
1008
+ const doc = sugarDoc.dom;
1078
1009
  if (doc.exitFullscreen) {
1079
1010
  doc.exitFullscreen();
1080
1011
  } else if (doc.msExitFullscreen) {
@@ -1083,70 +1014,52 @@
1083
1014
  doc.webkitCancelFullScreen();
1084
1015
  }
1085
1016
  };
1086
- var isFullscreenElement = function (elem) {
1087
- return elem.dom === getFullscreenElement(owner(elem).dom);
1088
- };
1017
+ const isFullscreenElement = elem => elem.dom === getFullscreenElement(owner(elem).dom);
1089
1018
 
1090
- var ancestors$1 = function (scope, predicate, isRoot) {
1091
- return filter$1(parents(scope, isRoot), predicate);
1092
- };
1093
- var siblings$1 = function (scope, predicate) {
1094
- return filter$1(siblings$2(scope), predicate);
1095
- };
1019
+ const ancestors$1 = (scope, predicate, isRoot) => filter$1(parents(scope, isRoot), predicate);
1020
+ const siblings$1 = (scope, predicate) => filter$1(siblings$2(scope), predicate);
1096
1021
 
1097
- var all = function (selector) {
1098
- return all$1(selector);
1099
- };
1100
- var ancestors = function (scope, selector, isRoot) {
1101
- return ancestors$1(scope, function (e) {
1102
- return is(e, selector);
1103
- }, isRoot);
1104
- };
1105
- var siblings = function (scope, selector) {
1106
- return siblings$1(scope, function (e) {
1107
- return is(e, selector);
1108
- });
1109
- };
1022
+ const all = selector => all$1(selector);
1023
+ const ancestors = (scope, selector, isRoot) => ancestors$1(scope, e => is(e, selector), isRoot);
1024
+ const siblings = (scope, selector) => siblings$1(scope, e => is(e, selector));
1110
1025
 
1111
- var attr = 'data-ephox-mobile-fullscreen-style';
1112
- var siblingStyles = 'display:none!important;';
1113
- var ancestorPosition = 'position:absolute!important;';
1114
- var ancestorStyles = 'top:0!important;left:0!important;margin:0!important;padding:0!important;width:100%!important;height:100%!important;overflow:visible!important;';
1115
- var bgFallback = 'background-color:rgb(255,255,255)!important;';
1116
- var isAndroid = global$1.os.isAndroid();
1117
- var matchColor = function (editorBody) {
1118
- var color = get$2(editorBody, 'background-color');
1026
+ const attr = 'data-ephox-mobile-fullscreen-style';
1027
+ const siblingStyles = 'display:none!important;';
1028
+ const ancestorPosition = 'position:absolute!important;';
1029
+ const ancestorStyles = 'top:0!important;left:0!important;margin:0!important;padding:0!important;width:100%!important;height:100%!important;overflow:visible!important;';
1030
+ const bgFallback = 'background-color:rgb(255,255,255)!important;';
1031
+ const isAndroid = global.os.isAndroid();
1032
+ const matchColor = editorBody => {
1033
+ const color = get$2(editorBody, 'background-color');
1119
1034
  return color !== undefined && color !== '' ? 'background-color:' + color + '!important' : bgFallback;
1120
1035
  };
1121
- var clobberStyles = function (dom, container, editorBody) {
1122
- var gatherSiblings = function (element) {
1036
+ const clobberStyles = (dom, container, editorBody) => {
1037
+ const gatherSiblings = element => {
1123
1038
  return siblings(element, '*:not(.tox-silver-sink)');
1124
1039
  };
1125
- var clobber = function (clobberStyle) {
1126
- return function (element) {
1127
- var styles = get$3(element, 'style');
1128
- var backup = styles === undefined ? 'no-styles' : styles.trim();
1129
- if (backup === clobberStyle) {
1130
- return;
1131
- } else {
1132
- set(element, attr, backup);
1133
- setAll(element, dom.parseStyle(clobberStyle));
1134
- }
1135
- };
1040
+ const clobber = clobberStyle => element => {
1041
+ const styles = get$3(element, 'style');
1042
+ const backup = styles === undefined ? 'no-styles' : styles.trim();
1043
+ if (backup === clobberStyle) {
1044
+ return;
1045
+ } else {
1046
+ set$1(element, attr, backup);
1047
+ setAll(element, dom.parseStyle(clobberStyle));
1048
+ }
1136
1049
  };
1137
- var ancestors$1 = ancestors(container, '*');
1138
- var siblings$1 = bind$3(ancestors$1, gatherSiblings);
1139
- var bgColor = matchColor(editorBody);
1050
+ const ancestors$1 = ancestors(container, '*');
1051
+ const siblings$1 = bind$3(ancestors$1, gatherSiblings);
1052
+ const bgColor = matchColor(editorBody);
1140
1053
  each$1(siblings$1, clobber(siblingStyles));
1141
1054
  each$1(ancestors$1, clobber(ancestorPosition + ancestorStyles + bgColor));
1142
- var containerStyles = isAndroid === true ? '' : ancestorPosition;
1055
+ const containerStyles = isAndroid === true ? '' : ancestorPosition;
1143
1056
  clobber(containerStyles + ancestorStyles + bgColor)(container);
1144
1057
  };
1145
- var restoreStyles = function (dom) {
1146
- var clobberedEls = all('[' + attr + ']');
1147
- each$1(clobberedEls, function (element) {
1148
- var restore = get$3(element, attr);
1149
- if (restore !== 'no-styles') {
1058
+ const restoreStyles = dom => {
1059
+ const clobberedEls = all('[' + attr + ']');
1060
+ each$1(clobberedEls, element => {
1061
+ const restore = get$3(element, attr);
1062
+ if (restore && restore !== 'no-styles') {
1150
1063
  setAll(element, dom.parseStyle(restore));
1151
1064
  } else {
1152
1065
  remove(element, 'style');
@@ -1155,50 +1068,42 @@
1155
1068
  });
1156
1069
  };
1157
1070
 
1158
- var DOM = global$2.DOM;
1159
- var getScrollPos = function () {
1160
- return getBounds(window);
1161
- };
1162
- var setScrollPos = function (pos) {
1163
- return window.scrollTo(pos.x, pos.y);
1164
- };
1165
- var viewportUpdate = get().fold(function () {
1166
- return {
1167
- bind: noop,
1168
- unbind: noop
1169
- };
1170
- }, function (visualViewport) {
1171
- var editorContainer = value();
1172
- var resizeBinder = unbindable();
1173
- var scrollBinder = unbindable();
1174
- var refreshScroll = function () {
1071
+ const DOM = global$1.DOM;
1072
+ const getScrollPos = () => getBounds(window);
1073
+ const setScrollPos = pos => window.scrollTo(pos.x, pos.y);
1074
+ const viewportUpdate = get().fold(() => ({
1075
+ bind: noop,
1076
+ unbind: noop
1077
+ }), visualViewport => {
1078
+ const editorContainer = value();
1079
+ const resizeBinder = unbindable();
1080
+ const scrollBinder = unbindable();
1081
+ const refreshScroll = () => {
1175
1082
  document.body.scrollTop = 0;
1176
1083
  document.documentElement.scrollTop = 0;
1177
1084
  };
1178
- var refreshVisualViewport = function () {
1179
- window.requestAnimationFrame(function () {
1180
- editorContainer.on(function (container) {
1181
- return setAll(container, {
1182
- top: visualViewport.offsetTop + 'px',
1183
- left: visualViewport.offsetLeft + 'px',
1184
- height: visualViewport.height + 'px',
1185
- width: visualViewport.width + 'px'
1186
- });
1187
- });
1085
+ const refreshVisualViewport = () => {
1086
+ window.requestAnimationFrame(() => {
1087
+ editorContainer.on(container => setAll(container, {
1088
+ top: visualViewport.offsetTop + 'px',
1089
+ left: visualViewport.offsetLeft + 'px',
1090
+ height: visualViewport.height + 'px',
1091
+ width: visualViewport.width + 'px'
1092
+ }));
1188
1093
  });
1189
1094
  };
1190
- var update = global.throttle(function () {
1095
+ const update = first(() => {
1191
1096
  refreshScroll();
1192
1097
  refreshVisualViewport();
1193
1098
  }, 50);
1194
- var bind$1 = function (element) {
1099
+ const bind$1 = element => {
1195
1100
  editorContainer.set(element);
1196
- update();
1197
- resizeBinder.set(bind('resize', update));
1198
- scrollBinder.set(bind('scroll', update));
1101
+ update.throttle();
1102
+ resizeBinder.set(bind('resize', update.throttle));
1103
+ scrollBinder.set(bind('scroll', update.throttle));
1199
1104
  };
1200
- var unbind = function () {
1201
- editorContainer.on(function () {
1105
+ const unbind = () => {
1106
+ editorContainer.on(() => {
1202
1107
  resizeBinder.clear();
1203
1108
  scrollBinder.clear();
1204
1109
  });
@@ -1206,51 +1111,48 @@
1206
1111
  };
1207
1112
  return {
1208
1113
  bind: bind$1,
1209
- unbind: unbind
1114
+ unbind
1210
1115
  };
1211
1116
  });
1212
- var toggleFullscreen = function (editor, fullscreenState) {
1213
- var body = document.body;
1214
- var documentElement = document.documentElement;
1215
- var editorContainer = editor.getContainer();
1216
- var editorContainerS = SugarElement.fromDom(editorContainer);
1217
- var fullscreenRoot = getFullscreenRoot(editor);
1218
- var fullscreenInfo = fullscreenState.get();
1219
- var editorBody = SugarElement.fromDom(editor.getBody());
1220
- var isTouch = global$1.deviceType.isTouch();
1221
- var editorContainerStyle = editorContainer.style;
1222
- var iframe = editor.iframeElement;
1223
- var iframeStyle = iframe.style;
1224
- var handleClasses = function (handler) {
1117
+ const toggleFullscreen = (editor, fullscreenState) => {
1118
+ const body = document.body;
1119
+ const documentElement = document.documentElement;
1120
+ const editorContainer = editor.getContainer();
1121
+ const editorContainerS = SugarElement.fromDom(editorContainer);
1122
+ const sinkContainerS = nextSibling(editorContainerS).filter(elm => isHTMLElement(elm) && has(elm, 'tox-silver-sink'));
1123
+ const fullscreenRoot = getFullscreenRoot(editor);
1124
+ const fullscreenInfo = fullscreenState.get();
1125
+ const editorBody = SugarElement.fromDom(editor.getBody());
1126
+ const isTouch = global.deviceType.isTouch();
1127
+ const editorContainerStyle = editorContainer.style;
1128
+ const iframe = editor.iframeElement;
1129
+ const iframeStyle = iframe === null || iframe === void 0 ? void 0 : iframe.style;
1130
+ const handleClasses = handler => {
1225
1131
  handler(body, 'tox-fullscreen');
1226
1132
  handler(documentElement, 'tox-fullscreen');
1227
1133
  handler(editorContainer, 'tox-fullscreen');
1228
- getShadowRoot(editorContainerS).map(function (root) {
1229
- return getShadowHost(root).dom;
1230
- }).each(function (host) {
1134
+ getShadowRoot(editorContainerS).map(root => getShadowHost(root).dom).each(host => {
1231
1135
  handler(host, 'tox-fullscreen');
1232
1136
  handler(host, 'tox-shadowhost');
1233
1137
  });
1234
1138
  };
1235
- var cleanup = function () {
1139
+ const cleanup = () => {
1236
1140
  if (isTouch) {
1237
1141
  restoreStyles(editor.dom);
1238
1142
  }
1239
1143
  handleClasses(DOM.removeClass);
1240
1144
  viewportUpdate.unbind();
1241
- Optional.from(fullscreenState.get()).each(function (info) {
1242
- return info.fullscreenChangeHandler.unbind();
1243
- });
1145
+ Optional.from(fullscreenState.get()).each(info => info.fullscreenChangeHandler.unbind());
1244
1146
  };
1245
1147
  if (!fullscreenInfo) {
1246
- var fullscreenChangeHandler = bind$1(owner(fullscreenRoot), getFullscreenchangeEventName(), function (_evt) {
1148
+ const fullscreenChangeHandler = bind$1(owner(fullscreenRoot), getFullscreenchangeEventName(), _evt => {
1247
1149
  if (getFullscreenNative(editor)) {
1248
1150
  if (!isFullscreenElement(fullscreenRoot) && fullscreenState.get() !== null) {
1249
1151
  toggleFullscreen(editor, fullscreenState);
1250
1152
  }
1251
1153
  }
1252
1154
  });
1253
- var newFullScreenInfo = {
1155
+ const newFullScreenInfo = {
1254
1156
  scrollPos: getScrollPos(),
1255
1157
  containerWidth: editorContainerStyle.width,
1256
1158
  containerHeight: editorContainerStyle.height,
@@ -1258,7 +1160,8 @@
1258
1160
  containerLeft: editorContainerStyle.left,
1259
1161
  iframeWidth: iframeStyle.width,
1260
1162
  iframeHeight: iframeStyle.height,
1261
- fullscreenChangeHandler: fullscreenChangeHandler
1163
+ fullscreenChangeHandler,
1164
+ sinkCssPosition: sinkContainerS.map(elm => get$2(elm, 'position'))
1262
1165
  };
1263
1166
  if (isTouch) {
1264
1167
  clobberStyles(editor.dom, editorContainerS, editorBody);
@@ -1266,6 +1169,9 @@
1266
1169
  iframeStyle.width = iframeStyle.height = '100%';
1267
1170
  editorContainerStyle.width = editorContainerStyle.height = '';
1268
1171
  handleClasses(DOM.addClass);
1172
+ sinkContainerS.each(elm => {
1173
+ set(elm, 'position', 'fixed');
1174
+ });
1269
1175
  viewportUpdate.bind(editorContainerS);
1270
1176
  editor.on('remove', cleanup);
1271
1177
  fullscreenState.set(newFullScreenInfo);
@@ -1284,6 +1190,9 @@
1284
1190
  editorContainerStyle.height = fullscreenInfo.containerHeight;
1285
1191
  editorContainerStyle.top = fullscreenInfo.containerTop;
1286
1192
  editorContainerStyle.left = fullscreenInfo.containerLeft;
1193
+ lift2(sinkContainerS, fullscreenInfo.sinkCssPosition, (elm, val) => {
1194
+ set(elm, 'position', val);
1195
+ });
1287
1196
  cleanup();
1288
1197
  setScrollPos(fullscreenInfo.scrollPos);
1289
1198
  fullscreenState.set(null);
@@ -1292,56 +1201,50 @@
1292
1201
  }
1293
1202
  };
1294
1203
 
1295
- var register$1 = function (editor, fullscreenState) {
1296
- editor.addCommand('mceFullScreen', function () {
1204
+ const register$1 = (editor, fullscreenState) => {
1205
+ editor.addCommand('mceFullScreen', () => {
1297
1206
  toggleFullscreen(editor, fullscreenState);
1298
1207
  });
1299
1208
  };
1300
1209
 
1301
- var makeSetupHandler = function (editor, fullscreenState) {
1302
- return function (api) {
1303
- api.setActive(fullscreenState.get() !== null);
1304
- var editorEventCallback = function (e) {
1305
- return api.setActive(e.state);
1306
- };
1307
- editor.on('FullscreenStateChanged', editorEventCallback);
1308
- return function () {
1309
- return editor.off('FullscreenStateChanged', editorEventCallback);
1310
- };
1311
- };
1312
- };
1313
- var register = function (editor, fullscreenState) {
1314
- var onAction = function () {
1315
- return editor.execCommand('mceFullScreen');
1316
- };
1210
+ const makeSetupHandler = (editor, fullscreenState) => api => {
1211
+ api.setActive(fullscreenState.get() !== null);
1212
+ const editorEventCallback = e => api.setActive(e.state);
1213
+ editor.on('FullscreenStateChanged', editorEventCallback);
1214
+ return () => editor.off('FullscreenStateChanged', editorEventCallback);
1215
+ };
1216
+ const register = (editor, fullscreenState) => {
1217
+ const onAction = () => editor.execCommand('mceFullScreen');
1317
1218
  editor.ui.registry.addToggleMenuItem('fullscreen', {
1318
1219
  text: 'Fullscreen',
1319
1220
  icon: 'fullscreen',
1320
1221
  shortcut: 'Meta+Shift+F',
1321
- onAction: onAction,
1222
+ onAction,
1322
1223
  onSetup: makeSetupHandler(editor, fullscreenState)
1323
1224
  });
1324
1225
  editor.ui.registry.addToggleButton('fullscreen', {
1325
1226
  tooltip: 'Fullscreen',
1326
1227
  icon: 'fullscreen',
1327
- onAction: onAction,
1328
- onSetup: makeSetupHandler(editor, fullscreenState)
1228
+ onAction,
1229
+ onSetup: makeSetupHandler(editor, fullscreenState),
1230
+ shortcut: 'Meta+Shift+F'
1329
1231
  });
1330
1232
  };
1331
1233
 
1332
- function Plugin () {
1333
- global$3.add('fullscreen', function (editor) {
1334
- var fullscreenState = Cell(null);
1234
+ var Plugin = () => {
1235
+ global$2.add('fullscreen', editor => {
1236
+ const fullscreenState = Cell(null);
1335
1237
  if (editor.inline) {
1336
1238
  return get$5(fullscreenState);
1337
1239
  }
1240
+ register$2(editor);
1338
1241
  register$1(editor, fullscreenState);
1339
1242
  register(editor, fullscreenState);
1340
1243
  editor.addShortcut('Meta+Shift+F', '', 'mceFullScreen');
1341
1244
  return get$5(fullscreenState);
1342
1245
  });
1343
- }
1246
+ };
1344
1247
 
1345
1248
  Plugin();
1346
1249
 
1347
- }());
1250
+ })();