@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,1374 +0,0 @@
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)
8
- */
9
- (function () {
10
- 'use strict';
11
-
12
- var Cell = function (initial) {
13
- var value = initial;
14
- var get = function () {
15
- return value;
16
- };
17
- var set = function (v) {
18
- value = v;
19
- };
20
- return {
21
- get: get,
22
- set: set
23
- };
24
- };
25
-
26
- var global$5 = tinymce.util.Tools.resolve('tinymce.PluginManager');
27
-
28
- var __assign = function () {
29
- __assign = Object.assign || function __assign(t) {
30
- for (var s, i = 1, n = arguments.length; i < n; i++) {
31
- s = arguments[i];
32
- for (var p in s)
33
- if (Object.prototype.hasOwnProperty.call(s, p))
34
- t[p] = s[p];
35
- }
36
- return t;
37
- };
38
- return __assign.apply(this, arguments);
39
- };
40
- function __spreadArray(to, from, pack) {
41
- if (pack || arguments.length === 2)
42
- for (var i = 0, l = from.length, ar; i < l; i++) {
43
- if (ar || !(i in from)) {
44
- if (!ar)
45
- ar = Array.prototype.slice.call(from, 0, i);
46
- ar[i] = from[i];
47
- }
48
- }
49
- return to.concat(ar || Array.prototype.slice.call(from));
50
- }
51
-
52
- var typeOf = function (x) {
53
- var t = typeof x;
54
- if (x === null) {
55
- return 'null';
56
- } else if (t === 'object' && (Array.prototype.isPrototypeOf(x) || x.constructor && x.constructor.name === 'Array')) {
57
- return 'array';
58
- } else if (t === 'object' && (String.prototype.isPrototypeOf(x) || x.constructor && x.constructor.name === 'String')) {
59
- return 'string';
60
- } else {
61
- return t;
62
- }
63
- };
64
- var isType = function (type) {
65
- return function (value) {
66
- return typeOf(value) === type;
67
- };
68
- };
69
- var isString = isType('string');
70
- var isObject = isType('object');
71
- var isArray = isType('array');
72
-
73
- var noop = function () {
74
- };
75
- var constant = function (value) {
76
- return function () {
77
- return value;
78
- };
79
- };
80
- var identity = function (x) {
81
- return x;
82
- };
83
- var die = function (msg) {
84
- return function () {
85
- throw new Error(msg);
86
- };
87
- };
88
- var never = constant(false);
89
- var always = constant(true);
90
-
91
- var none = function () {
92
- return NONE;
93
- };
94
- var NONE = function () {
95
- var call = function (thunk) {
96
- return thunk();
97
- };
98
- var id = identity;
99
- var me = {
100
- fold: function (n, _s) {
101
- return n();
102
- },
103
- isSome: never,
104
- isNone: always,
105
- getOr: id,
106
- getOrThunk: call,
107
- getOrDie: function (msg) {
108
- throw new Error(msg || 'error: getOrDie called on none.');
109
- },
110
- getOrNull: constant(null),
111
- getOrUndefined: constant(undefined),
112
- or: id,
113
- orThunk: call,
114
- map: none,
115
- each: noop,
116
- bind: none,
117
- exists: never,
118
- forall: always,
119
- filter: function () {
120
- return none();
121
- },
122
- toArray: function () {
123
- return [];
124
- },
125
- toString: constant('none()')
126
- };
127
- return me;
128
- }();
129
- var some = function (a) {
130
- var constant_a = constant(a);
131
- var self = function () {
132
- return me;
133
- };
134
- var bind = function (f) {
135
- return f(a);
136
- };
137
- var me = {
138
- fold: function (n, s) {
139
- return s(a);
140
- },
141
- isSome: always,
142
- isNone: never,
143
- getOr: constant_a,
144
- getOrThunk: constant_a,
145
- getOrDie: constant_a,
146
- getOrNull: constant_a,
147
- getOrUndefined: constant_a,
148
- or: self,
149
- orThunk: self,
150
- map: function (f) {
151
- return some(f(a));
152
- },
153
- each: function (f) {
154
- f(a);
155
- },
156
- bind: bind,
157
- exists: bind,
158
- forall: bind,
159
- filter: function (f) {
160
- return f(a) ? me : NONE;
161
- },
162
- toArray: function () {
163
- return [a];
164
- },
165
- toString: function () {
166
- return 'some(' + a + ')';
167
- }
168
- };
169
- return me;
170
- };
171
- var from = function (value) {
172
- return value === null || value === undefined ? NONE : some(value);
173
- };
174
- var Optional = {
175
- some: some,
176
- none: none,
177
- from: from
178
- };
179
-
180
- var nativeSlice = Array.prototype.slice;
181
- var nativeIndexOf = Array.prototype.indexOf;
182
- var rawIndexOf = function (ts, t) {
183
- return nativeIndexOf.call(ts, t);
184
- };
185
- var contains = function (xs, x) {
186
- return rawIndexOf(xs, x) > -1;
187
- };
188
- var map = function (xs, f) {
189
- var len = xs.length;
190
- var r = new Array(len);
191
- for (var i = 0; i < len; i++) {
192
- var x = xs[i];
193
- r[i] = f(x, i);
194
- }
195
- return r;
196
- };
197
- var each = function (xs, f) {
198
- for (var i = 0, len = xs.length; i < len; i++) {
199
- var x = xs[i];
200
- f(x, i);
201
- }
202
- };
203
- var eachr = function (xs, f) {
204
- for (var i = xs.length - 1; i >= 0; i--) {
205
- var x = xs[i];
206
- f(x, i);
207
- }
208
- };
209
- var filter = function (xs, pred) {
210
- var r = [];
211
- for (var i = 0, len = xs.length; i < len; i++) {
212
- var x = xs[i];
213
- if (pred(x, i)) {
214
- r.push(x);
215
- }
216
- }
217
- return r;
218
- };
219
- var foldr = function (xs, f, acc) {
220
- eachr(xs, function (x, i) {
221
- acc = f(acc, x, i);
222
- });
223
- return acc;
224
- };
225
- var foldl = function (xs, f, acc) {
226
- each(xs, function (x, i) {
227
- acc = f(acc, x, i);
228
- });
229
- return acc;
230
- };
231
- var findUntil = function (xs, pred, until) {
232
- for (var i = 0, len = xs.length; i < len; i++) {
233
- var x = xs[i];
234
- if (pred(x, i)) {
235
- return Optional.some(x);
236
- } else if (until(x, i)) {
237
- break;
238
- }
239
- }
240
- return Optional.none();
241
- };
242
- var find = function (xs, pred) {
243
- return findUntil(xs, pred, never);
244
- };
245
- var forall = function (xs, pred) {
246
- for (var i = 0, len = xs.length; i < len; ++i) {
247
- var x = xs[i];
248
- if (pred(x, i) !== true) {
249
- return false;
250
- }
251
- }
252
- return true;
253
- };
254
- var sort = function (xs, comparator) {
255
- var copy = nativeSlice.call(xs, 0);
256
- copy.sort(comparator);
257
- return copy;
258
- };
259
- var get$1 = function (xs, i) {
260
- return i >= 0 && i < xs.length ? Optional.some(xs[i]) : Optional.none();
261
- };
262
- var head = function (xs) {
263
- return get$1(xs, 0);
264
- };
265
-
266
- var keys = Object.keys;
267
- var hasOwnProperty = Object.hasOwnProperty;
268
- var has = function (obj, key) {
269
- return hasOwnProperty.call(obj, key);
270
- };
271
-
272
- var generate$1 = function (cases) {
273
- if (!isArray(cases)) {
274
- throw new Error('cases must be an array');
275
- }
276
- if (cases.length === 0) {
277
- throw new Error('there must be at least one case');
278
- }
279
- var constructors = [];
280
- var adt = {};
281
- each(cases, function (acase, count) {
282
- var keys$1 = keys(acase);
283
- if (keys$1.length !== 1) {
284
- throw new Error('one and only one name per case');
285
- }
286
- var key = keys$1[0];
287
- var value = acase[key];
288
- if (adt[key] !== undefined) {
289
- throw new Error('duplicate key detected:' + key);
290
- } else if (key === 'cata') {
291
- throw new Error('cannot have a case named cata (sorry)');
292
- } else if (!isArray(value)) {
293
- throw new Error('case arguments must be an array');
294
- }
295
- constructors.push(key);
296
- adt[key] = function () {
297
- var args = [];
298
- for (var _i = 0; _i < arguments.length; _i++) {
299
- args[_i] = arguments[_i];
300
- }
301
- var argLength = args.length;
302
- if (argLength !== value.length) {
303
- throw new Error('Wrong number of arguments to case ' + key + '. Expected ' + value.length + ' (' + value + '), got ' + argLength);
304
- }
305
- var match = function (branches) {
306
- var branchKeys = keys(branches);
307
- if (constructors.length !== branchKeys.length) {
308
- throw new Error('Wrong number of arguments to match. Expected: ' + constructors.join(',') + '\nActual: ' + branchKeys.join(','));
309
- }
310
- var allReqd = forall(constructors, function (reqKey) {
311
- return contains(branchKeys, reqKey);
312
- });
313
- if (!allReqd) {
314
- throw new Error('Not all branches were specified when using match. Specified: ' + branchKeys.join(', ') + '\nRequired: ' + constructors.join(', '));
315
- }
316
- return branches[key].apply(null, args);
317
- };
318
- return {
319
- fold: function () {
320
- var foldArgs = [];
321
- for (var _i = 0; _i < arguments.length; _i++) {
322
- foldArgs[_i] = arguments[_i];
323
- }
324
- if (foldArgs.length !== cases.length) {
325
- throw new Error('Wrong number of arguments to fold. Expected ' + cases.length + ', got ' + foldArgs.length);
326
- }
327
- var target = foldArgs[count];
328
- return target.apply(null, args);
329
- },
330
- match: match,
331
- log: function (label) {
332
- console.log(label, {
333
- constructors: constructors,
334
- constructor: key,
335
- params: args
336
- });
337
- }
338
- };
339
- };
340
- });
341
- return adt;
342
- };
343
- var Adt = { generate: generate$1 };
344
-
345
- Adt.generate([
346
- {
347
- bothErrors: [
348
- 'error1',
349
- 'error2'
350
- ]
351
- },
352
- {
353
- firstError: [
354
- 'error1',
355
- 'value2'
356
- ]
357
- },
358
- {
359
- secondError: [
360
- 'value1',
361
- 'error2'
362
- ]
363
- },
364
- {
365
- bothValues: [
366
- 'value1',
367
- 'value2'
368
- ]
369
- }
370
- ]);
371
- var partition = function (results) {
372
- var errors = [];
373
- var values = [];
374
- each(results, function (result) {
375
- result.fold(function (err) {
376
- errors.push(err);
377
- }, function (value) {
378
- values.push(value);
379
- });
380
- });
381
- return {
382
- errors: errors,
383
- values: values
384
- };
385
- };
386
-
387
- var value = function (o) {
388
- var or = function (_opt) {
389
- return value(o);
390
- };
391
- var orThunk = function (_f) {
392
- return value(o);
393
- };
394
- var map = function (f) {
395
- return value(f(o));
396
- };
397
- var mapError = function (_f) {
398
- return value(o);
399
- };
400
- var each = function (f) {
401
- f(o);
402
- };
403
- var bind = function (f) {
404
- return f(o);
405
- };
406
- var fold = function (_, onValue) {
407
- return onValue(o);
408
- };
409
- var exists = function (f) {
410
- return f(o);
411
- };
412
- var forall = function (f) {
413
- return f(o);
414
- };
415
- var toOptional = function () {
416
- return Optional.some(o);
417
- };
418
- return {
419
- isValue: always,
420
- isError: never,
421
- getOr: constant(o),
422
- getOrThunk: constant(o),
423
- getOrDie: constant(o),
424
- or: or,
425
- orThunk: orThunk,
426
- fold: fold,
427
- map: map,
428
- mapError: mapError,
429
- each: each,
430
- bind: bind,
431
- exists: exists,
432
- forall: forall,
433
- toOptional: toOptional
434
- };
435
- };
436
- var error$1 = function (message) {
437
- var getOrThunk = function (f) {
438
- return f();
439
- };
440
- var getOrDie = function () {
441
- return die(String(message))();
442
- };
443
- var or = identity;
444
- var orThunk = function (f) {
445
- return f();
446
- };
447
- var map = function (_f) {
448
- return error$1(message);
449
- };
450
- var mapError = function (f) {
451
- return error$1(f(message));
452
- };
453
- var bind = function (_f) {
454
- return error$1(message);
455
- };
456
- var fold = function (onError, _) {
457
- return onError(message);
458
- };
459
- return {
460
- isValue: never,
461
- isError: always,
462
- getOr: identity,
463
- getOrThunk: getOrThunk,
464
- getOrDie: getOrDie,
465
- or: or,
466
- orThunk: orThunk,
467
- fold: fold,
468
- map: map,
469
- mapError: mapError,
470
- each: noop,
471
- bind: bind,
472
- exists: never,
473
- forall: always,
474
- toOptional: Optional.none
475
- };
476
- };
477
- var fromOption = function (opt, err) {
478
- return opt.fold(function () {
479
- return error$1(err);
480
- }, value);
481
- };
482
- var Result = {
483
- value: value,
484
- error: error$1,
485
- fromOption: fromOption
486
- };
487
-
488
- var isInlinePattern = function (pattern) {
489
- return pattern.type === 'inline-command' || pattern.type === 'inline-format';
490
- };
491
- var isBlockPattern = function (pattern) {
492
- return pattern.type === 'block-command' || pattern.type === 'block-format';
493
- };
494
- var sortPatterns = function (patterns) {
495
- return sort(patterns, function (a, b) {
496
- if (a.start.length === b.start.length) {
497
- return 0;
498
- }
499
- return a.start.length > b.start.length ? -1 : 1;
500
- });
501
- };
502
- var normalizePattern = function (pattern) {
503
- var err = function (message) {
504
- return Result.error({
505
- message: message,
506
- pattern: pattern
507
- });
508
- };
509
- var formatOrCmd = function (name, onFormat, onCommand) {
510
- if (pattern.format !== undefined) {
511
- var formats = void 0;
512
- if (isArray(pattern.format)) {
513
- if (!forall(pattern.format, isString)) {
514
- return err(name + ' pattern has non-string items in the `format` array');
515
- }
516
- formats = pattern.format;
517
- } else if (isString(pattern.format)) {
518
- formats = [pattern.format];
519
- } else {
520
- return err(name + ' pattern has non-string `format` parameter');
521
- }
522
- return Result.value(onFormat(formats));
523
- } else if (pattern.cmd !== undefined) {
524
- if (!isString(pattern.cmd)) {
525
- return err(name + ' pattern has non-string `cmd` parameter');
526
- }
527
- return Result.value(onCommand(pattern.cmd, pattern.value));
528
- } else {
529
- return err(name + ' pattern is missing both `format` and `cmd` parameters');
530
- }
531
- };
532
- if (!isObject(pattern)) {
533
- return err('Raw pattern is not an object');
534
- }
535
- if (!isString(pattern.start)) {
536
- return err('Raw pattern is missing `start` parameter');
537
- }
538
- if (pattern.end !== undefined) {
539
- if (!isString(pattern.end)) {
540
- return err('Inline pattern has non-string `end` parameter');
541
- }
542
- if (pattern.start.length === 0 && pattern.end.length === 0) {
543
- return err('Inline pattern has empty `start` and `end` parameters');
544
- }
545
- var start_1 = pattern.start;
546
- var end_1 = pattern.end;
547
- if (end_1.length === 0) {
548
- end_1 = start_1;
549
- start_1 = '';
550
- }
551
- return formatOrCmd('Inline', function (format) {
552
- return {
553
- type: 'inline-format',
554
- start: start_1,
555
- end: end_1,
556
- format: format
557
- };
558
- }, function (cmd, value) {
559
- return {
560
- type: 'inline-command',
561
- start: start_1,
562
- end: end_1,
563
- cmd: cmd,
564
- value: value
565
- };
566
- });
567
- } else if (pattern.replacement !== undefined) {
568
- if (!isString(pattern.replacement)) {
569
- return err('Replacement pattern has non-string `replacement` parameter');
570
- }
571
- if (pattern.start.length === 0) {
572
- return err('Replacement pattern has empty `start` parameter');
573
- }
574
- return Result.value({
575
- type: 'inline-command',
576
- start: '',
577
- end: pattern.start,
578
- cmd: 'mceInsertContent',
579
- value: pattern.replacement
580
- });
581
- } else {
582
- if (pattern.start.length === 0) {
583
- return err('Block pattern has empty `start` parameter');
584
- }
585
- return formatOrCmd('Block', function (formats) {
586
- return {
587
- type: 'block-format',
588
- start: pattern.start,
589
- format: formats[0]
590
- };
591
- }, function (command, commandValue) {
592
- return {
593
- type: 'block-command',
594
- start: pattern.start,
595
- cmd: command,
596
- value: commandValue
597
- };
598
- });
599
- }
600
- };
601
- var denormalizePattern = function (pattern) {
602
- if (pattern.type === 'block-command') {
603
- return {
604
- start: pattern.start,
605
- cmd: pattern.cmd,
606
- value: pattern.value
607
- };
608
- } else if (pattern.type === 'block-format') {
609
- return {
610
- start: pattern.start,
611
- format: pattern.format
612
- };
613
- } else if (pattern.type === 'inline-command') {
614
- if (pattern.cmd === 'mceInsertContent' && pattern.start === '') {
615
- return {
616
- start: pattern.end,
617
- replacement: pattern.value
618
- };
619
- } else {
620
- return {
621
- start: pattern.start,
622
- end: pattern.end,
623
- cmd: pattern.cmd,
624
- value: pattern.value
625
- };
626
- }
627
- } else if (pattern.type === 'inline-format') {
628
- return {
629
- start: pattern.start,
630
- end: pattern.end,
631
- format: pattern.format.length === 1 ? pattern.format[0] : pattern.format
632
- };
633
- }
634
- };
635
- var createPatternSet = function (patterns) {
636
- return {
637
- inlinePatterns: filter(patterns, isInlinePattern),
638
- blockPatterns: sortPatterns(filter(patterns, isBlockPattern))
639
- };
640
- };
641
-
642
- var get = function (patternsState) {
643
- var setPatterns = function (newPatterns) {
644
- var normalized = partition(map(newPatterns, normalizePattern));
645
- if (normalized.errors.length > 0) {
646
- var firstError = normalized.errors[0];
647
- throw new Error(firstError.message + ':\n' + JSON.stringify(firstError.pattern, null, 2));
648
- }
649
- patternsState.set(createPatternSet(normalized.values));
650
- };
651
- var getPatterns = function () {
652
- return __spreadArray(__spreadArray([], map(patternsState.get().inlinePatterns, denormalizePattern), true), map(patternsState.get().blockPatterns, denormalizePattern), true);
653
- };
654
- return {
655
- setPatterns: setPatterns,
656
- getPatterns: getPatterns
657
- };
658
- };
659
-
660
- var Global = typeof window !== 'undefined' ? window : Function('return this;')();
661
-
662
- var error = function () {
663
- var args = [];
664
- for (var _i = 0; _i < arguments.length; _i++) {
665
- args[_i] = arguments[_i];
666
- }
667
- var console = Global.console;
668
- if (console) {
669
- if (console.error) {
670
- console.error.apply(console, args);
671
- } else {
672
- console.log.apply(console, args);
673
- }
674
- }
675
- };
676
- var defaultPatterns = [
677
- {
678
- start: '*',
679
- end: '*',
680
- format: 'italic'
681
- },
682
- {
683
- start: '**',
684
- end: '**',
685
- format: 'bold'
686
- },
687
- {
688
- start: '#',
689
- format: 'h1'
690
- },
691
- {
692
- start: '##',
693
- format: 'h2'
694
- },
695
- {
696
- start: '###',
697
- format: 'h3'
698
- },
699
- {
700
- start: '####',
701
- format: 'h4'
702
- },
703
- {
704
- start: '#####',
705
- format: 'h5'
706
- },
707
- {
708
- start: '######',
709
- format: 'h6'
710
- },
711
- {
712
- start: '1. ',
713
- cmd: 'InsertOrderedList'
714
- },
715
- {
716
- start: '* ',
717
- cmd: 'InsertUnorderedList'
718
- },
719
- {
720
- start: '- ',
721
- cmd: 'InsertUnorderedList'
722
- }
723
- ];
724
- var getPatternSet = function (editor) {
725
- var patterns = editor.getParam('textpattern_patterns', defaultPatterns, 'array');
726
- if (!isArray(patterns)) {
727
- error('The setting textpattern_patterns should be an array');
728
- return {
729
- inlinePatterns: [],
730
- blockPatterns: []
731
- };
732
- }
733
- var normalized = partition(map(patterns, normalizePattern));
734
- each(normalized.errors, function (err) {
735
- return error(err.message, err.pattern);
736
- });
737
- return createPatternSet(normalized.values);
738
- };
739
- var getForcedRootBlock = function (editor) {
740
- var block = editor.getParam('forced_root_block', 'p');
741
- if (block === false) {
742
- return '';
743
- } else if (block === true) {
744
- return 'p';
745
- } else {
746
- return block;
747
- }
748
- };
749
-
750
- var global$4 = tinymce.util.Tools.resolve('tinymce.util.Delay');
751
-
752
- var global$3 = tinymce.util.Tools.resolve('tinymce.util.VK');
753
-
754
- var zeroWidth = '\uFEFF';
755
- var nbsp = '\xA0';
756
-
757
- var global$2 = tinymce.util.Tools.resolve('tinymce.util.Tools');
758
-
759
- var global$1 = tinymce.util.Tools.resolve('tinymce.dom.DOMUtils');
760
-
761
- var global = tinymce.util.Tools.resolve('tinymce.dom.TextSeeker');
762
-
763
- var point = function (container, offset) {
764
- return {
765
- container: container,
766
- offset: offset
767
- };
768
- };
769
-
770
- var isText = function (node) {
771
- return node.nodeType === Node.TEXT_NODE;
772
- };
773
- var cleanEmptyNodes = function (dom, node, isRoot) {
774
- if (node && dom.isEmpty(node) && !isRoot(node)) {
775
- var parent_1 = node.parentNode;
776
- dom.remove(node);
777
- cleanEmptyNodes(dom, parent_1, isRoot);
778
- }
779
- };
780
- var deleteRng = function (dom, rng, isRoot, clean) {
781
- if (clean === void 0) {
782
- clean = true;
783
- }
784
- var startParent = rng.startContainer.parentNode;
785
- var endParent = rng.endContainer.parentNode;
786
- rng.deleteContents();
787
- if (clean && !isRoot(rng.startContainer)) {
788
- if (isText(rng.startContainer) && rng.startContainer.data.length === 0) {
789
- dom.remove(rng.startContainer);
790
- }
791
- if (isText(rng.endContainer) && rng.endContainer.data.length === 0) {
792
- dom.remove(rng.endContainer);
793
- }
794
- cleanEmptyNodes(dom, startParent, isRoot);
795
- if (startParent !== endParent) {
796
- cleanEmptyNodes(dom, endParent, isRoot);
797
- }
798
- }
799
- };
800
- var isBlockFormatName = function (name, formatter) {
801
- var formatSet = formatter.get(name);
802
- return isArray(formatSet) && head(formatSet).exists(function (format) {
803
- return has(format, 'block');
804
- });
805
- };
806
- var isReplacementPattern = function (pattern) {
807
- return pattern.start.length === 0;
808
- };
809
- var getParentBlock = function (editor, rng) {
810
- var parentBlockOpt = Optional.from(editor.dom.getParent(rng.startContainer, editor.dom.isBlock));
811
- if (getForcedRootBlock(editor) === '') {
812
- return parentBlockOpt.orThunk(function () {
813
- return Optional.some(editor.getBody());
814
- });
815
- } else {
816
- return parentBlockOpt;
817
- }
818
- };
819
-
820
- var DOM = global$1.DOM;
821
- var alwaysNext = function (startNode) {
822
- return function (node) {
823
- return startNode === node ? -1 : 0;
824
- };
825
- };
826
- var isBoundary = function (dom) {
827
- return function (node) {
828
- return dom.isBlock(node) || contains([
829
- 'BR',
830
- 'IMG',
831
- 'HR',
832
- 'INPUT'
833
- ], node.nodeName) || dom.getContentEditable(node) === 'false';
834
- };
835
- };
836
- var textBefore = function (node, offset, rootNode) {
837
- if (isText(node) && offset >= 0) {
838
- return Optional.some(point(node, offset));
839
- } else {
840
- var textSeeker = global(DOM);
841
- return Optional.from(textSeeker.backwards(node, offset, alwaysNext(node), rootNode)).map(function (prev) {
842
- return point(prev.container, prev.container.data.length);
843
- });
844
- }
845
- };
846
- var textAfter = function (node, offset, rootNode) {
847
- if (isText(node) && offset >= node.length) {
848
- return Optional.some(point(node, offset));
849
- } else {
850
- var textSeeker = global(DOM);
851
- return Optional.from(textSeeker.forwards(node, offset, alwaysNext(node), rootNode)).map(function (prev) {
852
- return point(prev.container, 0);
853
- });
854
- }
855
- };
856
- var scanLeft = function (node, offset, rootNode) {
857
- if (!isText(node)) {
858
- return Optional.none();
859
- }
860
- var text = node.textContent;
861
- if (offset >= 0 && offset <= text.length) {
862
- return Optional.some(point(node, offset));
863
- } else {
864
- var textSeeker = global(DOM);
865
- return Optional.from(textSeeker.backwards(node, offset, alwaysNext(node), rootNode)).bind(function (prev) {
866
- var prevText = prev.container.data;
867
- return scanLeft(prev.container, offset + prevText.length, rootNode);
868
- });
869
- }
870
- };
871
- var scanRight = function (node, offset, rootNode) {
872
- if (!isText(node)) {
873
- return Optional.none();
874
- }
875
- var text = node.textContent;
876
- if (offset <= text.length) {
877
- return Optional.some(point(node, offset));
878
- } else {
879
- var textSeeker = global(DOM);
880
- return Optional.from(textSeeker.forwards(node, offset, alwaysNext(node), rootNode)).bind(function (next) {
881
- return scanRight(next.container, offset - text.length, rootNode);
882
- });
883
- }
884
- };
885
- var repeatLeft = function (dom, node, offset, process, rootNode) {
886
- var search = global(dom, isBoundary(dom));
887
- return Optional.from(search.backwards(node, offset, process, rootNode));
888
- };
889
-
890
- var generatePath = function (root, node, offset) {
891
- if (isText(node) && (offset < 0 || offset > node.data.length)) {
892
- return [];
893
- }
894
- var p = [offset];
895
- var current = node;
896
- while (current !== root && current.parentNode) {
897
- var parent_1 = current.parentNode;
898
- for (var i = 0; i < parent_1.childNodes.length; i++) {
899
- if (parent_1.childNodes[i] === current) {
900
- p.push(i);
901
- break;
902
- }
903
- }
904
- current = parent_1;
905
- }
906
- return current === root ? p.reverse() : [];
907
- };
908
- var generatePathRange = function (root, startNode, startOffset, endNode, endOffset) {
909
- var start = generatePath(root, startNode, startOffset);
910
- var end = generatePath(root, endNode, endOffset);
911
- return {
912
- start: start,
913
- end: end
914
- };
915
- };
916
- var resolvePath = function (root, path) {
917
- var nodePath = path.slice();
918
- var offset = nodePath.pop();
919
- var resolvedNode = foldl(nodePath, function (optNode, index) {
920
- return optNode.bind(function (node) {
921
- return Optional.from(node.childNodes[index]);
922
- });
923
- }, Optional.some(root));
924
- return resolvedNode.bind(function (node) {
925
- if (isText(node) && (offset < 0 || offset > node.data.length)) {
926
- return Optional.none();
927
- } else {
928
- return Optional.some({
929
- node: node,
930
- offset: offset
931
- });
932
- }
933
- });
934
- };
935
- var resolvePathRange = function (root, range) {
936
- return resolvePath(root, range.start).bind(function (_a) {
937
- var startNode = _a.node, startOffset = _a.offset;
938
- return resolvePath(root, range.end).map(function (_a) {
939
- var endNode = _a.node, endOffset = _a.offset;
940
- var rng = document.createRange();
941
- rng.setStart(startNode, startOffset);
942
- rng.setEnd(endNode, endOffset);
943
- return rng;
944
- });
945
- });
946
- };
947
- var generatePathRangeFromRange = function (root, range) {
948
- return generatePathRange(root, range.startContainer, range.startOffset, range.endContainer, range.endOffset);
949
- };
950
-
951
- var stripPattern = function (dom, block, pattern) {
952
- var firstTextNode = textAfter(block, 0, block);
953
- firstTextNode.each(function (spot) {
954
- var node = spot.container;
955
- scanRight(node, pattern.start.length, block).each(function (end) {
956
- var rng = dom.createRng();
957
- rng.setStart(node, 0);
958
- rng.setEnd(end.container, end.offset);
959
- deleteRng(dom, rng, function (e) {
960
- return e === block;
961
- });
962
- });
963
- });
964
- };
965
- var applyPattern$1 = function (editor, match) {
966
- var dom = editor.dom;
967
- var pattern = match.pattern;
968
- var rng = resolvePathRange(dom.getRoot(), match.range).getOrDie('Unable to resolve path range');
969
- getParentBlock(editor, rng).each(function (block) {
970
- if (pattern.type === 'block-format') {
971
- if (isBlockFormatName(pattern.format, editor.formatter)) {
972
- editor.undoManager.transact(function () {
973
- stripPattern(editor.dom, block, pattern);
974
- editor.formatter.apply(pattern.format);
975
- });
976
- }
977
- } else if (pattern.type === 'block-command') {
978
- editor.undoManager.transact(function () {
979
- stripPattern(editor.dom, block, pattern);
980
- editor.execCommand(pattern.cmd, false, pattern.value);
981
- });
982
- }
983
- });
984
- return true;
985
- };
986
- var findPattern$1 = function (patterns, text) {
987
- var nuText = text.replace(nbsp, ' ');
988
- return find(patterns, function (pattern) {
989
- return text.indexOf(pattern.start) === 0 || nuText.indexOf(pattern.start) === 0;
990
- });
991
- };
992
- var findPatterns$1 = function (editor, patterns) {
993
- var dom = editor.dom;
994
- var rng = editor.selection.getRng();
995
- return getParentBlock(editor, rng).filter(function (block) {
996
- var forcedRootBlock = getForcedRootBlock(editor);
997
- var matchesForcedRootBlock = forcedRootBlock === '' && dom.is(block, 'body') || dom.is(block, forcedRootBlock);
998
- return block !== null && matchesForcedRootBlock;
999
- }).bind(function (block) {
1000
- var blockText = block.textContent;
1001
- var matchedPattern = findPattern$1(patterns, blockText);
1002
- return matchedPattern.map(function (pattern) {
1003
- if (global$2.trim(blockText).length === pattern.start.length) {
1004
- return [];
1005
- }
1006
- return [{
1007
- pattern: pattern,
1008
- range: generatePathRange(dom.getRoot(), block, 0, block, 0)
1009
- }];
1010
- });
1011
- }).getOr([]);
1012
- };
1013
- var applyMatches$1 = function (editor, matches) {
1014
- if (matches.length === 0) {
1015
- return;
1016
- }
1017
- var bookmark = editor.selection.getBookmark();
1018
- each(matches, function (match) {
1019
- return applyPattern$1(editor, match);
1020
- });
1021
- editor.selection.moveToBookmark(bookmark);
1022
- };
1023
-
1024
- var unique = 0;
1025
- var generate = function (prefix) {
1026
- var date = new Date();
1027
- var time = date.getTime();
1028
- var random = Math.floor(Math.random() * 1000000000);
1029
- unique++;
1030
- return prefix + '_' + random + unique + String(time);
1031
- };
1032
-
1033
- var checkRange = function (str, substr, start) {
1034
- return substr === '' || str.length >= substr.length && str.substr(start, start + substr.length) === substr;
1035
- };
1036
- var endsWith = function (str, suffix) {
1037
- return checkRange(str, suffix, str.length - suffix.length);
1038
- };
1039
-
1040
- var newMarker = function (dom, id) {
1041
- return dom.create('span', {
1042
- 'data-mce-type': 'bookmark',
1043
- id: id
1044
- });
1045
- };
1046
- var rangeFromMarker = function (dom, marker) {
1047
- var rng = dom.createRng();
1048
- rng.setStartAfter(marker.start);
1049
- rng.setEndBefore(marker.end);
1050
- return rng;
1051
- };
1052
- var createMarker = function (dom, markerPrefix, pathRange) {
1053
- var rng = resolvePathRange(dom.getRoot(), pathRange).getOrDie('Unable to resolve path range');
1054
- var startNode = rng.startContainer;
1055
- var endNode = rng.endContainer;
1056
- var textEnd = rng.endOffset === 0 ? endNode : endNode.splitText(rng.endOffset);
1057
- var textStart = rng.startOffset === 0 ? startNode : startNode.splitText(rng.startOffset);
1058
- return {
1059
- prefix: markerPrefix,
1060
- end: textEnd.parentNode.insertBefore(newMarker(dom, markerPrefix + '-end'), textEnd),
1061
- start: textStart.parentNode.insertBefore(newMarker(dom, markerPrefix + '-start'), textStart)
1062
- };
1063
- };
1064
- var removeMarker = function (dom, marker, isRoot) {
1065
- cleanEmptyNodes(dom, dom.get(marker.prefix + '-end'), isRoot);
1066
- cleanEmptyNodes(dom, dom.get(marker.prefix + '-start'), isRoot);
1067
- };
1068
-
1069
- var matchesPattern = function (dom, block, patternContent) {
1070
- return function (element, offset) {
1071
- var text = element.data;
1072
- var searchText = text.substring(0, offset);
1073
- var startEndIndex = searchText.lastIndexOf(patternContent.charAt(patternContent.length - 1));
1074
- var startIndex = searchText.lastIndexOf(patternContent);
1075
- if (startIndex !== -1) {
1076
- return startIndex + patternContent.length;
1077
- } else if (startEndIndex !== -1) {
1078
- return startEndIndex + 1;
1079
- } else {
1080
- return -1;
1081
- }
1082
- };
1083
- };
1084
- var findPatternStartFromSpot = function (dom, pattern, block, spot) {
1085
- var startPattern = pattern.start;
1086
- var startSpot = repeatLeft(dom, spot.container, spot.offset, matchesPattern(dom, block, startPattern), block);
1087
- return startSpot.bind(function (spot) {
1088
- if (spot.offset >= startPattern.length) {
1089
- var rng = dom.createRng();
1090
- rng.setStart(spot.container, spot.offset - startPattern.length);
1091
- rng.setEnd(spot.container, spot.offset);
1092
- return Optional.some(rng);
1093
- } else {
1094
- var offset = spot.offset - startPattern.length;
1095
- return scanLeft(spot.container, offset, block).map(function (nextSpot) {
1096
- var rng = dom.createRng();
1097
- rng.setStart(nextSpot.container, nextSpot.offset);
1098
- rng.setEnd(spot.container, spot.offset);
1099
- return rng;
1100
- }).filter(function (rng) {
1101
- return rng.toString() === startPattern;
1102
- }).orThunk(function () {
1103
- return findPatternStartFromSpot(dom, pattern, block, point(spot.container, 0));
1104
- });
1105
- }
1106
- });
1107
- };
1108
- var findPatternStart = function (dom, pattern, node, offset, block, requireGap) {
1109
- if (requireGap === void 0) {
1110
- requireGap = false;
1111
- }
1112
- if (pattern.start.length === 0 && !requireGap) {
1113
- var rng = dom.createRng();
1114
- rng.setStart(node, offset);
1115
- rng.setEnd(node, offset);
1116
- return Optional.some(rng);
1117
- }
1118
- return textBefore(node, offset, block).bind(function (spot) {
1119
- var start = findPatternStartFromSpot(dom, pattern, block, spot);
1120
- return start.bind(function (startRange) {
1121
- if (requireGap) {
1122
- if (startRange.endContainer === spot.container && startRange.endOffset === spot.offset) {
1123
- return Optional.none();
1124
- } else if (spot.offset === 0 && startRange.endContainer.textContent.length === startRange.endOffset) {
1125
- return Optional.none();
1126
- }
1127
- }
1128
- return Optional.some(startRange);
1129
- });
1130
- });
1131
- };
1132
- var findPattern = function (editor, block, details) {
1133
- var dom = editor.dom;
1134
- var root = dom.getRoot();
1135
- var pattern = details.pattern;
1136
- var endNode = details.position.container;
1137
- var endOffset = details.position.offset;
1138
- return scanLeft(endNode, endOffset - details.pattern.end.length, block).bind(function (spot) {
1139
- var endPathRng = generatePathRange(root, spot.container, spot.offset, endNode, endOffset);
1140
- if (isReplacementPattern(pattern)) {
1141
- return Optional.some({
1142
- matches: [{
1143
- pattern: pattern,
1144
- startRng: endPathRng,
1145
- endRng: endPathRng
1146
- }],
1147
- position: spot
1148
- });
1149
- } else {
1150
- var resultsOpt = findPatternsRec(editor, details.remainingPatterns, spot.container, spot.offset, block);
1151
- var results_1 = resultsOpt.getOr({
1152
- matches: [],
1153
- position: spot
1154
- });
1155
- var pos = results_1.position;
1156
- var start = findPatternStart(dom, pattern, pos.container, pos.offset, block, resultsOpt.isNone());
1157
- return start.map(function (startRng) {
1158
- var startPathRng = generatePathRangeFromRange(root, startRng);
1159
- return {
1160
- matches: results_1.matches.concat([{
1161
- pattern: pattern,
1162
- startRng: startPathRng,
1163
- endRng: endPathRng
1164
- }]),
1165
- position: point(startRng.startContainer, startRng.startOffset)
1166
- };
1167
- });
1168
- }
1169
- });
1170
- };
1171
- var findPatternsRec = function (editor, patterns, node, offset, block) {
1172
- var dom = editor.dom;
1173
- return textBefore(node, offset, dom.getRoot()).bind(function (endSpot) {
1174
- var rng = dom.createRng();
1175
- rng.setStart(block, 0);
1176
- rng.setEnd(node, offset);
1177
- var text = rng.toString();
1178
- for (var i = 0; i < patterns.length; i++) {
1179
- var pattern = patterns[i];
1180
- if (!endsWith(text, pattern.end)) {
1181
- continue;
1182
- }
1183
- var patternsWithoutCurrent = patterns.slice();
1184
- patternsWithoutCurrent.splice(i, 1);
1185
- var result = findPattern(editor, block, {
1186
- pattern: pattern,
1187
- remainingPatterns: patternsWithoutCurrent,
1188
- position: endSpot
1189
- });
1190
- if (result.isSome()) {
1191
- return result;
1192
- }
1193
- }
1194
- return Optional.none();
1195
- });
1196
- };
1197
- var applyPattern = function (editor, pattern, patternRange) {
1198
- editor.selection.setRng(patternRange);
1199
- if (pattern.type === 'inline-format') {
1200
- each(pattern.format, function (format) {
1201
- editor.formatter.apply(format);
1202
- });
1203
- } else {
1204
- editor.execCommand(pattern.cmd, false, pattern.value);
1205
- }
1206
- };
1207
- var applyReplacementPattern = function (editor, pattern, marker, isRoot) {
1208
- var markerRange = rangeFromMarker(editor.dom, marker);
1209
- deleteRng(editor.dom, markerRange, isRoot);
1210
- applyPattern(editor, pattern, markerRange);
1211
- };
1212
- var applyPatternWithContent = function (editor, pattern, startMarker, endMarker, isRoot) {
1213
- var dom = editor.dom;
1214
- var markerEndRange = rangeFromMarker(dom, endMarker);
1215
- var markerStartRange = rangeFromMarker(dom, startMarker);
1216
- deleteRng(dom, markerStartRange, isRoot);
1217
- deleteRng(dom, markerEndRange, isRoot);
1218
- var patternMarker = {
1219
- prefix: startMarker.prefix,
1220
- start: startMarker.end,
1221
- end: endMarker.start
1222
- };
1223
- var patternRange = rangeFromMarker(dom, patternMarker);
1224
- applyPattern(editor, pattern, patternRange);
1225
- };
1226
- var addMarkers = function (dom, matches) {
1227
- var markerPrefix = generate('mce_textpattern');
1228
- var matchesWithEnds = foldr(matches, function (acc, match) {
1229
- var endMarker = createMarker(dom, markerPrefix + ('_end' + acc.length), match.endRng);
1230
- return acc.concat([__assign(__assign({}, match), { endMarker: endMarker })]);
1231
- }, []);
1232
- return foldr(matchesWithEnds, function (acc, match) {
1233
- var idx = matchesWithEnds.length - acc.length - 1;
1234
- var startMarker = isReplacementPattern(match.pattern) ? match.endMarker : createMarker(dom, markerPrefix + ('_start' + idx), match.startRng);
1235
- return acc.concat([__assign(__assign({}, match), { startMarker: startMarker })]);
1236
- }, []);
1237
- };
1238
- var findPatterns = function (editor, patterns, space) {
1239
- var rng = editor.selection.getRng();
1240
- if (rng.collapsed === false) {
1241
- return [];
1242
- }
1243
- return getParentBlock(editor, rng).bind(function (block) {
1244
- var offset = rng.startOffset - (space ? 1 : 0);
1245
- return findPatternsRec(editor, patterns, rng.startContainer, offset, block);
1246
- }).fold(function () {
1247
- return [];
1248
- }, function (result) {
1249
- return result.matches;
1250
- });
1251
- };
1252
- var applyMatches = function (editor, matches) {
1253
- if (matches.length === 0) {
1254
- return;
1255
- }
1256
- var dom = editor.dom;
1257
- var bookmark = editor.selection.getBookmark();
1258
- var matchesWithMarkers = addMarkers(dom, matches);
1259
- each(matchesWithMarkers, function (match) {
1260
- var block = dom.getParent(match.startMarker.start, dom.isBlock);
1261
- var isRoot = function (node) {
1262
- return node === block;
1263
- };
1264
- if (isReplacementPattern(match.pattern)) {
1265
- applyReplacementPattern(editor, match.pattern, match.endMarker, isRoot);
1266
- } else {
1267
- applyPatternWithContent(editor, match.pattern, match.startMarker, match.endMarker, isRoot);
1268
- }
1269
- removeMarker(dom, match.endMarker, isRoot);
1270
- removeMarker(dom, match.startMarker, isRoot);
1271
- });
1272
- editor.selection.moveToBookmark(bookmark);
1273
- };
1274
-
1275
- var handleEnter = function (editor, patternSet) {
1276
- if (!editor.selection.isCollapsed()) {
1277
- return false;
1278
- }
1279
- var inlineMatches = findPatterns(editor, patternSet.inlinePatterns, false);
1280
- var blockMatches = findPatterns$1(editor, patternSet.blockPatterns);
1281
- if (blockMatches.length > 0 || inlineMatches.length > 0) {
1282
- editor.undoManager.add();
1283
- editor.undoManager.extra(function () {
1284
- editor.execCommand('mceInsertNewLine');
1285
- }, function () {
1286
- editor.insertContent(zeroWidth, { preserve_zwsp: true });
1287
- applyMatches(editor, inlineMatches);
1288
- applyMatches$1(editor, blockMatches);
1289
- var range = editor.selection.getRng();
1290
- var spot = textBefore(range.startContainer, range.startOffset, editor.dom.getRoot());
1291
- editor.execCommand('mceInsertNewLine');
1292
- spot.each(function (s) {
1293
- var node = s.container;
1294
- if (node.data.charAt(s.offset - 1) === zeroWidth) {
1295
- node.deleteData(s.offset - 1, 1);
1296
- cleanEmptyNodes(editor.dom, node.parentNode, function (e) {
1297
- return e === editor.dom.getRoot();
1298
- });
1299
- }
1300
- });
1301
- });
1302
- return true;
1303
- }
1304
- return false;
1305
- };
1306
- var handleInlineKey = function (editor, patternSet) {
1307
- var inlineMatches = findPatterns(editor, patternSet.inlinePatterns, true);
1308
- if (inlineMatches.length > 0) {
1309
- editor.undoManager.transact(function () {
1310
- applyMatches(editor, inlineMatches);
1311
- });
1312
- }
1313
- };
1314
- var checkKeyEvent = function (codes, event, predicate) {
1315
- for (var i = 0; i < codes.length; i++) {
1316
- if (predicate(codes[i], event)) {
1317
- return true;
1318
- }
1319
- }
1320
- return false;
1321
- };
1322
- var checkKeyCode = function (codes, event) {
1323
- return checkKeyEvent(codes, event, function (code, event) {
1324
- return code === event.keyCode && global$3.modifierPressed(event) === false;
1325
- });
1326
- };
1327
- var checkCharCode = function (chars, event) {
1328
- return checkKeyEvent(chars, event, function (chr, event) {
1329
- return chr.charCodeAt(0) === event.charCode;
1330
- });
1331
- };
1332
-
1333
- var setup = function (editor, patternsState) {
1334
- var charCodes = [
1335
- ',',
1336
- '.',
1337
- ';',
1338
- ':',
1339
- '!',
1340
- '?'
1341
- ];
1342
- var keyCodes = [32];
1343
- editor.on('keydown', function (e) {
1344
- if (e.keyCode === 13 && !global$3.modifierPressed(e)) {
1345
- if (handleEnter(editor, patternsState.get())) {
1346
- e.preventDefault();
1347
- }
1348
- }
1349
- }, true);
1350
- editor.on('keyup', function (e) {
1351
- if (checkKeyCode(keyCodes, e)) {
1352
- handleInlineKey(editor, patternsState.get());
1353
- }
1354
- });
1355
- editor.on('keypress', function (e) {
1356
- if (checkCharCode(charCodes, e)) {
1357
- global$4.setEditorTimeout(editor, function () {
1358
- handleInlineKey(editor, patternsState.get());
1359
- });
1360
- }
1361
- });
1362
- };
1363
-
1364
- function Plugin () {
1365
- global$5.add('textpattern', function (editor) {
1366
- var patternsState = Cell(getPatternSet(editor));
1367
- setup(editor, patternsState);
1368
- return get(patternsState);
1369
- });
1370
- }
1371
-
1372
- Plugin();
1373
-
1374
- }());