@dangl/angular-material-shared 2.9.0-beta0036 → 2.9.0-beta0039

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 (173) hide show
  1. package/fesm2022/dangl-angular-material-shared-tiny-mce.mjs +38 -31
  2. package/fesm2022/dangl-angular-material-shared-tiny-mce.mjs.map +1 -1
  3. package/fesm2022/dangl-angular-material-shared.mjs +36 -51
  4. package/fesm2022/dangl-angular-material-shared.mjs.map +1 -1
  5. package/package.json +11 -10
  6. package/tinymce-assets/icons/default/icons.js +46 -9
  7. package/tinymce-assets/icons/default/icons.min.js +1 -1
  8. package/tinymce-assets/models/dom/model.js +8198 -7244
  9. package/tinymce-assets/models/dom/model.min.js +1 -4
  10. package/tinymce-assets/plugins/accordion/plugin.js +1174 -879
  11. package/tinymce-assets/plugins/accordion/plugin.min.js +1 -4
  12. package/tinymce-assets/plugins/advlist/plugin.js +412 -200
  13. package/tinymce-assets/plugins/advlist/plugin.min.js +1 -4
  14. package/tinymce-assets/plugins/anchor/plugin.js +189 -166
  15. package/tinymce-assets/plugins/anchor/plugin.min.js +1 -4
  16. package/tinymce-assets/plugins/autolink/plugin.js +310 -220
  17. package/tinymce-assets/plugins/autolink/plugin.min.js +1 -4
  18. package/tinymce-assets/plugins/autoresize/plugin.js +180 -149
  19. package/tinymce-assets/plugins/autoresize/plugin.min.js +1 -4
  20. package/tinymce-assets/plugins/autosave/plugin.js +208 -189
  21. package/tinymce-assets/plugins/autosave/plugin.min.js +1 -4
  22. package/tinymce-assets/plugins/charmap/plugin.js +905 -1566
  23. package/tinymce-assets/plugins/charmap/plugin.min.js +1 -4
  24. package/tinymce-assets/plugins/code/plugin.js +73 -61
  25. package/tinymce-assets/plugins/code/plugin.min.js +0 -3
  26. package/tinymce-assets/plugins/codesample/plugin.js +3593 -2402
  27. package/tinymce-assets/plugins/codesample/plugin.min.js +8 -3
  28. package/tinymce-assets/plugins/directionality/plugin.js +545 -304
  29. package/tinymce-assets/plugins/directionality/plugin.min.js +1 -4
  30. package/tinymce-assets/plugins/emoticons/js/emojiimages.min.js +0 -2
  31. package/tinymce-assets/plugins/emoticons/js/emojis.min.js +0 -1
  32. package/tinymce-assets/plugins/emoticons/plugin.js +702 -488
  33. package/tinymce-assets/plugins/emoticons/plugin.min.js +1 -4
  34. package/tinymce-assets/plugins/fullscreen/plugin.js +1409 -1049
  35. package/tinymce-assets/plugins/fullscreen/plugin.min.js +1 -4
  36. package/tinymce-assets/plugins/help/js/i18n/keynav/ar.js +4 -1
  37. package/tinymce-assets/plugins/help/js/i18n/keynav/bg_BG.js +4 -1
  38. package/tinymce-assets/plugins/help/js/i18n/keynav/ca.js +4 -1
  39. package/tinymce-assets/plugins/help/js/i18n/keynav/cs.js +4 -1
  40. package/tinymce-assets/plugins/help/js/i18n/keynav/da.js +4 -1
  41. package/tinymce-assets/plugins/help/js/i18n/keynav/de.js +4 -1
  42. package/tinymce-assets/plugins/help/js/i18n/keynav/el.js +4 -1
  43. package/tinymce-assets/plugins/help/js/i18n/keynav/en.js +4 -1
  44. package/tinymce-assets/plugins/help/js/i18n/keynav/es.js +4 -1
  45. package/tinymce-assets/plugins/help/js/i18n/keynav/eu.js +4 -1
  46. package/tinymce-assets/plugins/help/js/i18n/keynav/fa.js +4 -1
  47. package/tinymce-assets/plugins/help/js/i18n/keynav/fi.js +4 -1
  48. package/tinymce-assets/plugins/help/js/i18n/keynav/fr_FR.js +4 -1
  49. package/tinymce-assets/plugins/help/js/i18n/keynav/he_IL.js +4 -1
  50. package/tinymce-assets/plugins/help/js/i18n/keynav/hi.js +4 -1
  51. package/tinymce-assets/plugins/help/js/i18n/keynav/hr.js +4 -1
  52. package/tinymce-assets/plugins/help/js/i18n/keynav/hu_HU.js +4 -1
  53. package/tinymce-assets/plugins/help/js/i18n/keynav/id.js +4 -1
  54. package/tinymce-assets/plugins/help/js/i18n/keynav/it.js +4 -1
  55. package/tinymce-assets/plugins/help/js/i18n/keynav/ja.js +4 -1
  56. package/tinymce-assets/plugins/help/js/i18n/keynav/kk.js +4 -1
  57. package/tinymce-assets/plugins/help/js/i18n/keynav/ko_KR.js +4 -1
  58. package/tinymce-assets/plugins/help/js/i18n/keynav/ms.js +4 -1
  59. package/tinymce-assets/plugins/help/js/i18n/keynav/nb_NO.js +4 -1
  60. package/tinymce-assets/plugins/help/js/i18n/keynav/nl.js +4 -1
  61. package/tinymce-assets/plugins/help/js/i18n/keynav/pl.js +4 -1
  62. package/tinymce-assets/plugins/help/js/i18n/keynav/pt_BR.js +4 -1
  63. package/tinymce-assets/plugins/help/js/i18n/keynav/pt_PT.js +4 -1
  64. package/tinymce-assets/plugins/help/js/i18n/keynav/ro.js +4 -1
  65. package/tinymce-assets/plugins/help/js/i18n/keynav/ru.js +4 -1
  66. package/tinymce-assets/plugins/help/js/i18n/keynav/sk.js +4 -1
  67. package/tinymce-assets/plugins/help/js/i18n/keynav/sl_SI.js +5 -2
  68. package/tinymce-assets/plugins/help/js/i18n/keynav/sv_SE.js +4 -1
  69. package/tinymce-assets/plugins/help/js/i18n/keynav/th_TH.js +4 -1
  70. package/tinymce-assets/plugins/help/js/i18n/keynav/tr.js +4 -1
  71. package/tinymce-assets/plugins/help/js/i18n/keynav/uk.js +4 -1
  72. package/tinymce-assets/plugins/help/js/i18n/keynav/vi.js +4 -1
  73. package/tinymce-assets/plugins/help/js/i18n/keynav/zh_CN.js +8 -5
  74. package/tinymce-assets/plugins/help/js/i18n/keynav/zh_TW.js +4 -1
  75. package/tinymce-assets/plugins/help/plugin.js +739 -809
  76. package/tinymce-assets/plugins/help/plugin.min.js +1 -4
  77. package/tinymce-assets/plugins/image/plugin.js +1475 -1291
  78. package/tinymce-assets/plugins/image/plugin.min.js +1 -4
  79. package/tinymce-assets/plugins/importcss/plugin.js +328 -269
  80. package/tinymce-assets/plugins/importcss/plugin.min.js +1 -4
  81. package/tinymce-assets/plugins/insertdatetime/plugin.js +140 -141
  82. package/tinymce-assets/plugins/insertdatetime/plugin.min.js +1 -4
  83. package/tinymce-assets/plugins/link/plugin.js +1419 -1084
  84. package/tinymce-assets/plugins/link/plugin.min.js +1 -4
  85. package/tinymce-assets/plugins/lists/plugin.js +2177 -1805
  86. package/tinymce-assets/plugins/lists/plugin.min.js +1 -4
  87. package/tinymce-assets/plugins/media/plugin.js +1305 -1047
  88. package/tinymce-assets/plugins/media/plugin.min.js +1 -4
  89. package/tinymce-assets/plugins/nonbreaking/plugin.js +93 -88
  90. package/tinymce-assets/plugins/nonbreaking/plugin.min.js +0 -3
  91. package/tinymce-assets/plugins/pagebreak/plugin.js +91 -85
  92. package/tinymce-assets/plugins/pagebreak/plugin.min.js +0 -3
  93. package/tinymce-assets/plugins/preview/plugin.js +742 -74
  94. package/tinymce-assets/plugins/preview/plugin.min.js +1 -4
  95. package/tinymce-assets/plugins/quickbars/plugin.js +582 -375
  96. package/tinymce-assets/plugins/quickbars/plugin.min.js +1 -4
  97. package/tinymce-assets/plugins/save/plugin.js +100 -82
  98. package/tinymce-assets/plugins/save/plugin.min.js +1 -4
  99. package/tinymce-assets/plugins/searchreplace/plugin.js +1183 -906
  100. package/tinymce-assets/plugins/searchreplace/plugin.min.js +1 -4
  101. package/tinymce-assets/plugins/table/plugin.js +3651 -3094
  102. package/tinymce-assets/plugins/table/plugin.min.js +1 -4
  103. package/tinymce-assets/plugins/visualblocks/plugin.js +71 -63
  104. package/tinymce-assets/plugins/visualblocks/plugin.min.js +1 -4
  105. package/tinymce-assets/plugins/visualchars/plugin.js +685 -436
  106. package/tinymce-assets/plugins/visualchars/plugin.min.js +1 -4
  107. package/tinymce-assets/plugins/wordcount/plugin.js +382 -307
  108. package/tinymce-assets/plugins/wordcount/plugin.min.js +1 -4
  109. package/tinymce-assets/skins/content/dark/content.css +9 -0
  110. package/tinymce-assets/skins/content/dark/content.js +10 -2
  111. package/tinymce-assets/skins/content/dark/content.min.css +9 -0
  112. package/tinymce-assets/skins/content/default/content.css +9 -0
  113. package/tinymce-assets/skins/content/default/content.js +10 -2
  114. package/tinymce-assets/skins/content/default/content.min.css +9 -0
  115. package/tinymce-assets/skins/content/document/content.css +9 -0
  116. package/tinymce-assets/skins/content/document/content.js +10 -2
  117. package/tinymce-assets/skins/content/document/content.min.css +9 -0
  118. package/tinymce-assets/skins/content/tinymce-5/content.css +9 -0
  119. package/tinymce-assets/skins/content/tinymce-5/content.js +10 -2
  120. package/tinymce-assets/skins/content/tinymce-5/content.min.css +9 -0
  121. package/tinymce-assets/skins/content/tinymce-5-dark/content.css +9 -0
  122. package/tinymce-assets/skins/content/tinymce-5-dark/content.js +10 -2
  123. package/tinymce-assets/skins/content/tinymce-5-dark/content.min.css +9 -0
  124. package/tinymce-assets/skins/content/writer/content.css +9 -0
  125. package/tinymce-assets/skins/content/writer/content.js +10 -2
  126. package/tinymce-assets/skins/content/writer/content.min.css +9 -0
  127. package/tinymce-assets/skins/ui/oxide/content.css +157 -49
  128. package/tinymce-assets/skins/ui/oxide/content.inline.css +157 -49
  129. package/tinymce-assets/skins/ui/oxide/content.inline.js +10 -2
  130. package/tinymce-assets/skins/ui/oxide/content.inline.min.css +10 -1
  131. package/tinymce-assets/skins/ui/oxide/content.js +10 -2
  132. package/tinymce-assets/skins/ui/oxide/content.min.css +10 -1
  133. package/tinymce-assets/skins/ui/oxide/skin.css +1592 -214
  134. package/tinymce-assets/skins/ui/oxide/skin.js +1 -2
  135. package/tinymce-assets/skins/ui/oxide/skin.min.css +1 -1
  136. package/tinymce-assets/skins/ui/oxide/skin.shadowdom.js +1 -2
  137. package/tinymce-assets/skins/ui/oxide-dark/content.css +157 -42
  138. package/tinymce-assets/skins/ui/oxide-dark/content.inline.css +157 -49
  139. package/tinymce-assets/skins/ui/oxide-dark/content.inline.js +10 -2
  140. package/tinymce-assets/skins/ui/oxide-dark/content.inline.min.css +10 -1
  141. package/tinymce-assets/skins/ui/oxide-dark/content.js +10 -2
  142. package/tinymce-assets/skins/ui/oxide-dark/content.min.css +10 -1
  143. package/tinymce-assets/skins/ui/oxide-dark/skin.css +1595 -217
  144. package/tinymce-assets/skins/ui/oxide-dark/skin.js +1 -2
  145. package/tinymce-assets/skins/ui/oxide-dark/skin.min.css +1 -1
  146. package/tinymce-assets/skins/ui/oxide-dark/skin.shadowdom.js +1 -2
  147. package/tinymce-assets/skins/ui/tinymce-5/content.css +157 -49
  148. package/tinymce-assets/skins/ui/tinymce-5/content.inline.css +157 -49
  149. package/tinymce-assets/skins/ui/tinymce-5/content.inline.js +10 -2
  150. package/tinymce-assets/skins/ui/tinymce-5/content.inline.min.css +10 -1
  151. package/tinymce-assets/skins/ui/tinymce-5/content.js +10 -2
  152. package/tinymce-assets/skins/ui/tinymce-5/content.min.css +10 -1
  153. package/tinymce-assets/skins/ui/tinymce-5/skin.css +1606 -203
  154. package/tinymce-assets/skins/ui/tinymce-5/skin.js +1 -2
  155. package/tinymce-assets/skins/ui/tinymce-5/skin.min.css +1 -1
  156. package/tinymce-assets/skins/ui/tinymce-5/skin.shadowdom.js +1 -2
  157. package/tinymce-assets/skins/ui/tinymce-5-dark/content.css +157 -42
  158. package/tinymce-assets/skins/ui/tinymce-5-dark/content.inline.css +157 -49
  159. package/tinymce-assets/skins/ui/tinymce-5-dark/content.inline.js +10 -2
  160. package/tinymce-assets/skins/ui/tinymce-5-dark/content.inline.min.css +10 -1
  161. package/tinymce-assets/skins/ui/tinymce-5-dark/content.js +10 -2
  162. package/tinymce-assets/skins/ui/tinymce-5-dark/content.min.css +10 -1
  163. package/tinymce-assets/skins/ui/tinymce-5-dark/skin.css +1607 -204
  164. package/tinymce-assets/skins/ui/tinymce-5-dark/skin.js +1 -2
  165. package/tinymce-assets/skins/ui/tinymce-5-dark/skin.min.css +1 -1
  166. package/tinymce-assets/skins/ui/tinymce-5-dark/skin.shadowdom.js +1 -2
  167. package/tinymce-assets/themes/silver/theme.js +32786 -28738
  168. package/tinymce-assets/themes/silver/theme.min.js +1 -4
  169. package/types/dangl-angular-material-shared-tiny-mce.d.ts +13 -13
  170. package/types/dangl-angular-material-shared.d.ts +26 -26
  171. package/tinymce-assets/plugins/template/index.js +0 -7
  172. package/tinymce-assets/plugins/template/plugin.js +0 -567
  173. package/tinymce-assets/plugins/template/plugin.min.js +0 -4
@@ -1,567 +0,0 @@
1
- /**
2
- * TinyMCE version 6.8.3 (2024-02-08)
3
- */
4
-
5
- (function () {
6
- 'use strict';
7
-
8
- var global$3 = tinymce.util.Tools.resolve('tinymce.PluginManager');
9
-
10
- const hasProto = (v, constructor, predicate) => {
11
- var _a;
12
- if (predicate(v, constructor.prototype)) {
13
- return true;
14
- } else {
15
- return ((_a = v.constructor) === null || _a === void 0 ? void 0 : _a.name) === constructor.name;
16
- }
17
- };
18
- const typeOf = x => {
19
- const t = typeof x;
20
- if (x === null) {
21
- return 'null';
22
- } else if (t === 'object' && Array.isArray(x)) {
23
- return 'array';
24
- } else if (t === 'object' && hasProto(x, String, (o, proto) => proto.isPrototypeOf(o))) {
25
- return 'string';
26
- } else {
27
- return t;
28
- }
29
- };
30
- const isType = type => value => typeOf(value) === type;
31
- const isSimpleType = type => value => typeof value === type;
32
- const isString = isType('string');
33
- const isObject = isType('object');
34
- const isArray = isType('array');
35
- const isNullable = a => a === null || a === undefined;
36
- const isNonNullable = a => !isNullable(a);
37
- const isFunction = isSimpleType('function');
38
- const isArrayOf = (value, pred) => {
39
- if (isArray(value)) {
40
- for (let i = 0, len = value.length; i < len; ++i) {
41
- if (!pred(value[i])) {
42
- return false;
43
- }
44
- }
45
- return true;
46
- }
47
- return false;
48
- };
49
-
50
- const constant = value => {
51
- return () => {
52
- return value;
53
- };
54
- };
55
- function curry(fn, ...initialArgs) {
56
- return (...restArgs) => {
57
- const all = initialArgs.concat(restArgs);
58
- return fn.apply(null, all);
59
- };
60
- }
61
- const never = constant(false);
62
-
63
- const escape = text => text.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
64
-
65
- var global$2 = tinymce.util.Tools.resolve('tinymce.util.Tools');
66
-
67
- const option = name => editor => editor.options.get(name);
68
- const register$2 = editor => {
69
- const registerOption = editor.options.register;
70
- registerOption('template_cdate_classes', {
71
- processor: 'string',
72
- default: 'cdate'
73
- });
74
- registerOption('template_mdate_classes', {
75
- processor: 'string',
76
- default: 'mdate'
77
- });
78
- registerOption('template_selected_content_classes', {
79
- processor: 'string',
80
- default: 'selcontent'
81
- });
82
- registerOption('template_preview_replace_values', { processor: 'object' });
83
- registerOption('template_replace_values', { processor: 'object' });
84
- registerOption('templates', {
85
- processor: value => isString(value) || isArrayOf(value, isObject) || isFunction(value),
86
- default: []
87
- });
88
- registerOption('template_cdate_format', {
89
- processor: 'string',
90
- default: editor.translate('%Y-%m-%d')
91
- });
92
- registerOption('template_mdate_format', {
93
- processor: 'string',
94
- default: editor.translate('%Y-%m-%d')
95
- });
96
- };
97
- const getCreationDateClasses = option('template_cdate_classes');
98
- const getModificationDateClasses = option('template_mdate_classes');
99
- const getSelectedContentClasses = option('template_selected_content_classes');
100
- const getPreviewReplaceValues = option('template_preview_replace_values');
101
- const getTemplateReplaceValues = option('template_replace_values');
102
- const getTemplates = option('templates');
103
- const getCdateFormat = option('template_cdate_format');
104
- const getMdateFormat = option('template_mdate_format');
105
- const getContentStyle = option('content_style');
106
- const shouldUseContentCssCors = option('content_css_cors');
107
- const getBodyClass = option('body_class');
108
-
109
- const addZeros = (value, len) => {
110
- value = '' + value;
111
- if (value.length < len) {
112
- for (let i = 0; i < len - value.length; i++) {
113
- value = '0' + value;
114
- }
115
- }
116
- return value;
117
- };
118
- const getDateTime = (editor, fmt, date = new Date()) => {
119
- const daysShort = 'Sun Mon Tue Wed Thu Fri Sat Sun'.split(' ');
120
- const daysLong = 'Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sunday'.split(' ');
121
- const monthsShort = 'Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec'.split(' ');
122
- const monthsLong = 'January February March April May June July August September October November December'.split(' ');
123
- fmt = fmt.replace('%D', '%m/%d/%Y');
124
- fmt = fmt.replace('%r', '%I:%M:%S %p');
125
- fmt = fmt.replace('%Y', '' + date.getFullYear());
126
- fmt = fmt.replace('%y', '' + date.getYear());
127
- fmt = fmt.replace('%m', addZeros(date.getMonth() + 1, 2));
128
- fmt = fmt.replace('%d', addZeros(date.getDate(), 2));
129
- fmt = fmt.replace('%H', '' + addZeros(date.getHours(), 2));
130
- fmt = fmt.replace('%M', '' + addZeros(date.getMinutes(), 2));
131
- fmt = fmt.replace('%S', '' + addZeros(date.getSeconds(), 2));
132
- fmt = fmt.replace('%I', '' + ((date.getHours() + 11) % 12 + 1));
133
- fmt = fmt.replace('%p', '' + (date.getHours() < 12 ? 'AM' : 'PM'));
134
- fmt = fmt.replace('%B', '' + editor.translate(monthsLong[date.getMonth()]));
135
- fmt = fmt.replace('%b', '' + editor.translate(monthsShort[date.getMonth()]));
136
- fmt = fmt.replace('%A', '' + editor.translate(daysLong[date.getDay()]));
137
- fmt = fmt.replace('%a', '' + editor.translate(daysShort[date.getDay()]));
138
- fmt = fmt.replace('%%', '%');
139
- return fmt;
140
- };
141
-
142
- class Optional {
143
- constructor(tag, value) {
144
- this.tag = tag;
145
- this.value = value;
146
- }
147
- static some(value) {
148
- return new Optional(true, value);
149
- }
150
- static none() {
151
- return Optional.singletonNone;
152
- }
153
- fold(onNone, onSome) {
154
- if (this.tag) {
155
- return onSome(this.value);
156
- } else {
157
- return onNone();
158
- }
159
- }
160
- isSome() {
161
- return this.tag;
162
- }
163
- isNone() {
164
- return !this.tag;
165
- }
166
- map(mapper) {
167
- if (this.tag) {
168
- return Optional.some(mapper(this.value));
169
- } else {
170
- return Optional.none();
171
- }
172
- }
173
- bind(binder) {
174
- if (this.tag) {
175
- return binder(this.value);
176
- } else {
177
- return Optional.none();
178
- }
179
- }
180
- exists(predicate) {
181
- return this.tag && predicate(this.value);
182
- }
183
- forall(predicate) {
184
- return !this.tag || predicate(this.value);
185
- }
186
- filter(predicate) {
187
- if (!this.tag || predicate(this.value)) {
188
- return this;
189
- } else {
190
- return Optional.none();
191
- }
192
- }
193
- getOr(replacement) {
194
- return this.tag ? this.value : replacement;
195
- }
196
- or(replacement) {
197
- return this.tag ? this : replacement;
198
- }
199
- getOrThunk(thunk) {
200
- return this.tag ? this.value : thunk();
201
- }
202
- orThunk(thunk) {
203
- return this.tag ? this : thunk();
204
- }
205
- getOrDie(message) {
206
- if (!this.tag) {
207
- throw new Error(message !== null && message !== void 0 ? message : 'Called getOrDie on None');
208
- } else {
209
- return this.value;
210
- }
211
- }
212
- static from(value) {
213
- return isNonNullable(value) ? Optional.some(value) : Optional.none();
214
- }
215
- getOrNull() {
216
- return this.tag ? this.value : null;
217
- }
218
- getOrUndefined() {
219
- return this.value;
220
- }
221
- each(worker) {
222
- if (this.tag) {
223
- worker(this.value);
224
- }
225
- }
226
- toArray() {
227
- return this.tag ? [this.value] : [];
228
- }
229
- toString() {
230
- return this.tag ? `some(${ this.value })` : 'none()';
231
- }
232
- }
233
- Optional.singletonNone = new Optional(false);
234
-
235
- const exists = (xs, pred) => {
236
- for (let i = 0, len = xs.length; i < len; i++) {
237
- const x = xs[i];
238
- if (pred(x, i)) {
239
- return true;
240
- }
241
- }
242
- return false;
243
- };
244
- const map = (xs, f) => {
245
- const len = xs.length;
246
- const r = new Array(len);
247
- for (let i = 0; i < len; i++) {
248
- const x = xs[i];
249
- r[i] = f(x, i);
250
- }
251
- return r;
252
- };
253
- const findUntil = (xs, pred, until) => {
254
- for (let i = 0, len = xs.length; i < len; i++) {
255
- const x = xs[i];
256
- if (pred(x, i)) {
257
- return Optional.some(x);
258
- } else if (until(x, i)) {
259
- break;
260
- }
261
- }
262
- return Optional.none();
263
- };
264
- const find = (xs, pred) => {
265
- return findUntil(xs, pred, never);
266
- };
267
-
268
- const hasOwnProperty = Object.hasOwnProperty;
269
- const get = (obj, key) => {
270
- return has(obj, key) ? Optional.from(obj[key]) : Optional.none();
271
- };
272
- const has = (obj, key) => hasOwnProperty.call(obj, key);
273
-
274
- var global$1 = tinymce.util.Tools.resolve('tinymce.html.Serializer');
275
-
276
- const entitiesAttr = {
277
- '"': '&quot;',
278
- '<': '&lt;',
279
- '>': '&gt;',
280
- '&': '&amp;',
281
- '\'': '&#039;'
282
- };
283
- const htmlEscape = html => html.replace(/["'<>&]/g, match => get(entitiesAttr, match).getOr(match));
284
- const hasAnyClasses = (dom, n, classes) => exists(classes.split(/\s+/), c => dom.hasClass(n, c));
285
- const parseAndSerialize = (editor, html) => global$1({ validate: true }, editor.schema).serialize(editor.parser.parse(html, { insert: true }));
286
-
287
- const createTemplateList = (editor, callback) => {
288
- return () => {
289
- const templateList = getTemplates(editor);
290
- if (isFunction(templateList)) {
291
- templateList(callback);
292
- } else if (isString(templateList)) {
293
- fetch(templateList).then(res => {
294
- if (res.ok) {
295
- res.json().then(callback);
296
- }
297
- });
298
- } else {
299
- callback(templateList);
300
- }
301
- };
302
- };
303
- const replaceTemplateValues = (html, templateValues) => {
304
- global$2.each(templateValues, (v, k) => {
305
- if (isFunction(v)) {
306
- v = v(k);
307
- }
308
- html = html.replace(new RegExp('\\{\\$' + escape(k) + '\\}', 'g'), v);
309
- });
310
- return html;
311
- };
312
- const replaceVals = (editor, scope) => {
313
- const dom = editor.dom, vl = getTemplateReplaceValues(editor);
314
- global$2.each(dom.select('*', scope), e => {
315
- global$2.each(vl, (v, k) => {
316
- if (dom.hasClass(e, k)) {
317
- if (isFunction(v)) {
318
- v(e);
319
- }
320
- }
321
- });
322
- });
323
- };
324
- const insertTemplate = (editor, _ui, html) => {
325
- const dom = editor.dom;
326
- const sel = editor.selection.getContent();
327
- html = replaceTemplateValues(html, getTemplateReplaceValues(editor));
328
- let el = dom.create('div', {}, parseAndSerialize(editor, html));
329
- const n = dom.select('.mceTmpl', el);
330
- if (n && n.length > 0) {
331
- el = dom.create('div');
332
- el.appendChild(n[0].cloneNode(true));
333
- }
334
- global$2.each(dom.select('*', el), n => {
335
- if (hasAnyClasses(dom, n, getCreationDateClasses(editor))) {
336
- n.innerHTML = getDateTime(editor, getCdateFormat(editor));
337
- }
338
- if (hasAnyClasses(dom, n, getModificationDateClasses(editor))) {
339
- n.innerHTML = getDateTime(editor, getMdateFormat(editor));
340
- }
341
- if (hasAnyClasses(dom, n, getSelectedContentClasses(editor))) {
342
- n.innerHTML = sel;
343
- }
344
- });
345
- replaceVals(editor, el);
346
- editor.execCommand('mceInsertContent', false, el.innerHTML);
347
- editor.addVisual();
348
- };
349
-
350
- var global = tinymce.util.Tools.resolve('tinymce.Env');
351
-
352
- const getPreviewContent = (editor, html) => {
353
- var _a;
354
- let previewHtml = parseAndSerialize(editor, html);
355
- if (html.indexOf('<html>') === -1) {
356
- let contentCssEntries = '';
357
- const contentStyle = (_a = getContentStyle(editor)) !== null && _a !== void 0 ? _a : '';
358
- const cors = shouldUseContentCssCors(editor) ? ' crossorigin="anonymous"' : '';
359
- global$2.each(editor.contentCSS, url => {
360
- contentCssEntries += '<link type="text/css" rel="stylesheet" href="' + editor.documentBaseURI.toAbsolute(url) + '"' + cors + '>';
361
- });
362
- if (contentStyle) {
363
- contentCssEntries += '<style type="text/css">' + contentStyle + '</style>';
364
- }
365
- const bodyClass = getBodyClass(editor);
366
- const encode = editor.dom.encode;
367
- const isMetaKeyPressed = global.os.isMacOS() || global.os.isiOS() ? 'e.metaKey' : 'e.ctrlKey && !e.altKey';
368
- const preventClicksOnLinksScript = '<script>' + 'document.addEventListener && document.addEventListener("click", function(e) {' + 'for (var elm = e.target; elm; elm = elm.parentNode) {' + 'if (elm.nodeName === "A" && !(' + isMetaKeyPressed + ')) {' + 'e.preventDefault();' + '}' + '}' + '}, false);' + '</script> ';
369
- const directionality = editor.getBody().dir;
370
- const dirAttr = directionality ? ' dir="' + encode(directionality) + '"' : '';
371
- previewHtml = '<!DOCTYPE html>' + '<html>' + '<head>' + '<base href="' + encode(editor.documentBaseURI.getURI()) + '">' + contentCssEntries + preventClicksOnLinksScript + '</head>' + '<body class="' + encode(bodyClass) + '"' + dirAttr + '>' + previewHtml + '</body>' + '</html>';
372
- }
373
- return replaceTemplateValues(previewHtml, getPreviewReplaceValues(editor));
374
- };
375
- const open = (editor, templateList) => {
376
- const createTemplates = () => {
377
- if (!templateList || templateList.length === 0) {
378
- const message = editor.translate('No templates defined.');
379
- editor.notificationManager.open({
380
- text: message,
381
- type: 'info'
382
- });
383
- return Optional.none();
384
- }
385
- return Optional.from(global$2.map(templateList, (template, index) => {
386
- const isUrlTemplate = t => t.url !== undefined;
387
- return {
388
- selected: index === 0,
389
- text: template.title,
390
- value: {
391
- url: isUrlTemplate(template) ? Optional.from(template.url) : Optional.none(),
392
- content: !isUrlTemplate(template) ? Optional.from(template.content) : Optional.none(),
393
- description: template.description
394
- }
395
- };
396
- }));
397
- };
398
- const createSelectBoxItems = templates => map(templates, t => ({
399
- text: t.text,
400
- value: t.text
401
- }));
402
- const findTemplate = (templates, templateTitle) => find(templates, t => t.text === templateTitle);
403
- const loadFailedAlert = api => {
404
- editor.windowManager.alert('Could not load the specified template.', () => api.focus('template'));
405
- };
406
- const getTemplateContent = t => t.value.url.fold(() => Promise.resolve(t.value.content.getOr('')), url => fetch(url).then(res => res.ok ? res.text() : Promise.reject()));
407
- const onChange = (templates, updateDialog) => (api, change) => {
408
- if (change.name === 'template') {
409
- const newTemplateTitle = api.getData().template;
410
- findTemplate(templates, newTemplateTitle).each(t => {
411
- api.block('Loading...');
412
- getTemplateContent(t).then(previewHtml => {
413
- updateDialog(api, t, previewHtml);
414
- }).catch(() => {
415
- updateDialog(api, t, '');
416
- api.setEnabled('save', false);
417
- loadFailedAlert(api);
418
- });
419
- });
420
- }
421
- };
422
- const onSubmit = templates => api => {
423
- const data = api.getData();
424
- findTemplate(templates, data.template).each(t => {
425
- getTemplateContent(t).then(previewHtml => {
426
- editor.execCommand('mceInsertTemplate', false, previewHtml);
427
- api.close();
428
- }).catch(() => {
429
- api.setEnabled('save', false);
430
- loadFailedAlert(api);
431
- });
432
- });
433
- };
434
- const openDialog = templates => {
435
- const selectBoxItems = createSelectBoxItems(templates);
436
- const buildDialogSpec = (bodyItems, initialData) => ({
437
- title: 'Insert Template',
438
- size: 'large',
439
- body: {
440
- type: 'panel',
441
- items: bodyItems
442
- },
443
- initialData,
444
- buttons: [
445
- {
446
- type: 'cancel',
447
- name: 'cancel',
448
- text: 'Cancel'
449
- },
450
- {
451
- type: 'submit',
452
- name: 'save',
453
- text: 'Save',
454
- primary: true
455
- }
456
- ],
457
- onSubmit: onSubmit(templates),
458
- onChange: onChange(templates, updateDialog)
459
- });
460
- const updateDialog = (dialogApi, template, previewHtml) => {
461
- const content = getPreviewContent(editor, previewHtml);
462
- const bodyItems = [
463
- {
464
- type: 'listbox',
465
- name: 'template',
466
- label: 'Templates',
467
- items: selectBoxItems
468
- },
469
- {
470
- type: 'htmlpanel',
471
- html: `<p aria-live="polite">${ htmlEscape(template.value.description) }</p>`
472
- },
473
- {
474
- label: 'Preview',
475
- type: 'iframe',
476
- name: 'preview',
477
- sandboxed: false,
478
- transparent: false
479
- }
480
- ];
481
- const initialData = {
482
- template: template.text,
483
- preview: content
484
- };
485
- dialogApi.unblock();
486
- dialogApi.redial(buildDialogSpec(bodyItems, initialData));
487
- dialogApi.focus('template');
488
- };
489
- const dialogApi = editor.windowManager.open(buildDialogSpec([], {
490
- template: '',
491
- preview: ''
492
- }));
493
- dialogApi.block('Loading...');
494
- getTemplateContent(templates[0]).then(previewHtml => {
495
- updateDialog(dialogApi, templates[0], previewHtml);
496
- }).catch(() => {
497
- updateDialog(dialogApi, templates[0], '');
498
- dialogApi.setEnabled('save', false);
499
- loadFailedAlert(dialogApi);
500
- });
501
- };
502
- const optTemplates = createTemplates();
503
- optTemplates.each(openDialog);
504
- };
505
-
506
- const showDialog = editor => templates => {
507
- open(editor, templates);
508
- };
509
- const register$1 = editor => {
510
- editor.addCommand('mceInsertTemplate', curry(insertTemplate, editor));
511
- editor.addCommand('mceTemplate', createTemplateList(editor, showDialog(editor)));
512
- };
513
-
514
- const setup = editor => {
515
- editor.on('PreProcess', o => {
516
- const dom = editor.dom, dateFormat = getMdateFormat(editor);
517
- global$2.each(dom.select('div', o.node), e => {
518
- if (dom.hasClass(e, 'mceTmpl')) {
519
- global$2.each(dom.select('*', e), e => {
520
- if (hasAnyClasses(dom, e, getModificationDateClasses(editor))) {
521
- e.innerHTML = getDateTime(editor, dateFormat);
522
- }
523
- });
524
- replaceVals(editor, e);
525
- }
526
- });
527
- });
528
- };
529
-
530
- const onSetupEditable = editor => api => {
531
- const nodeChanged = () => {
532
- api.setEnabled(editor.selection.isEditable());
533
- };
534
- editor.on('NodeChange', nodeChanged);
535
- nodeChanged();
536
- return () => {
537
- editor.off('NodeChange', nodeChanged);
538
- };
539
- };
540
- const register = editor => {
541
- const onAction = () => editor.execCommand('mceTemplate');
542
- editor.ui.registry.addButton('template', {
543
- icon: 'template',
544
- tooltip: 'Insert template',
545
- onSetup: onSetupEditable(editor),
546
- onAction
547
- });
548
- editor.ui.registry.addMenuItem('template', {
549
- icon: 'template',
550
- text: 'Insert template...',
551
- onSetup: onSetupEditable(editor),
552
- onAction
553
- });
554
- };
555
-
556
- var Plugin = () => {
557
- global$3.add('template', editor => {
558
- register$2(editor);
559
- register(editor);
560
- register$1(editor);
561
- setup(editor);
562
- });
563
- };
564
-
565
- Plugin();
566
-
567
- })();
@@ -1,4 +0,0 @@
1
- /**
2
- * TinyMCE version 6.8.3 (2024-02-08)
3
- */
4
- !function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager");const t=e=>t=>(e=>{const t=typeof e;return null===e?"null":"object"===t&&Array.isArray(e)?"array":"object"===t&&(a=n=e,(r=String).prototype.isPrototypeOf(a)||(null===(s=n.constructor)||void 0===s?void 0:s.name)===r.name)?"string":t;var a,n,r,s})(t)===e,a=t("string"),n=t("object"),r=t("array"),s=("function",e=>"function"==typeof e);const l=(!1,()=>false);var o=tinymce.util.Tools.resolve("tinymce.util.Tools");const c=e=>t=>t.options.get(e),i=c("template_cdate_classes"),u=c("template_mdate_classes"),m=c("template_selected_content_classes"),p=c("template_preview_replace_values"),d=c("template_replace_values"),h=c("templates"),g=c("template_cdate_format"),v=c("template_mdate_format"),f=c("content_style"),y=c("content_css_cors"),b=c("body_class"),_=(e,t)=>{if((e=""+e).length<t)for(let a=0;a<t-e.length;a++)e="0"+e;return e},M=(e,t,a=new Date)=>{const n="Sun Mon Tue Wed Thu Fri Sat Sun".split(" "),r="Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sunday".split(" "),s="Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),l="January February March April May June July August September October November December".split(" ");return(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=t.replace("%D","%m/%d/%Y")).replace("%r","%I:%M:%S %p")).replace("%Y",""+a.getFullYear())).replace("%y",""+a.getYear())).replace("%m",_(a.getMonth()+1,2))).replace("%d",_(a.getDate(),2))).replace("%H",""+_(a.getHours(),2))).replace("%M",""+_(a.getMinutes(),2))).replace("%S",""+_(a.getSeconds(),2))).replace("%I",""+((a.getHours()+11)%12+1))).replace("%p",a.getHours()<12?"AM":"PM")).replace("%B",""+e.translate(l[a.getMonth()]))).replace("%b",""+e.translate(s[a.getMonth()]))).replace("%A",""+e.translate(r[a.getDay()]))).replace("%a",""+e.translate(n[a.getDay()]))).replace("%%","%")};class T{constructor(e,t){this.tag=e,this.value=t}static some(e){return new T(!0,e)}static none(){return T.singletonNone}fold(e,t){return this.tag?t(this.value):e()}isSome(){return this.tag}isNone(){return!this.tag}map(e){return this.tag?T.some(e(this.value)):T.none()}bind(e){return this.tag?e(this.value):T.none()}exists(e){return this.tag&&e(this.value)}forall(e){return!this.tag||e(this.value)}filter(e){return!this.tag||e(this.value)?this:T.none()}getOr(e){return this.tag?this.value:e}or(e){return this.tag?this:e}getOrThunk(e){return this.tag?this.value:e()}orThunk(e){return this.tag?this:e()}getOrDie(e){if(this.tag)return this.value;throw new Error(null!=e?e:"Called getOrDie on None")}static from(e){return null==e?T.none():T.some(e)}getOrNull(){return this.tag?this.value:null}getOrUndefined(){return this.value}each(e){this.tag&&e(this.value)}toArray(){return this.tag?[this.value]:[]}toString(){return this.tag?`some(${this.value})`:"none()"}}T.singletonNone=new T(!1);const S=Object.hasOwnProperty;var x=tinymce.util.Tools.resolve("tinymce.html.Serializer");const C={'"':"&quot;","<":"&lt;",">":"&gt;","&":"&amp;","'":"&#039;"},w=e=>e.replace(/["'<>&]/g,(e=>{return(t=C,a=e,((e,t)=>S.call(e,t))(t,a)?T.from(t[a]):T.none()).getOr(e);var t,a})),O=(e,t,a)=>((a,n)=>{for(let n=0,s=a.length;n<s;n++)if(r=a[n],e.hasClass(t,r))return!0;var r;return!1})(a.split(/\s+/)),A=(e,t)=>x({validate:!0},e.schema).serialize(e.parser.parse(t,{insert:!0})),D=(e,t)=>(o.each(t,((t,a)=>{s(t)&&(t=t(a)),e=e.replace(new RegExp("\\{\\$"+a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")+"\\}","g"),t)})),e),N=(e,t)=>{const a=e.dom,n=d(e);o.each(a.select("*",t),(e=>{o.each(n,((t,n)=>{a.hasClass(e,n)&&s(t)&&t(e)}))}))},I=(e,t,a)=>{const n=e.dom,r=e.selection.getContent();a=D(a,d(e));let s=n.create("div",{},A(e,a));const l=n.select(".mceTmpl",s);l&&l.length>0&&(s=n.create("div"),s.appendChild(l[0].cloneNode(!0))),o.each(n.select("*",s),(t=>{O(n,t,i(e))&&(t.innerHTML=M(e,g(e))),O(n,t,u(e))&&(t.innerHTML=M(e,v(e))),O(n,t,m(e))&&(t.innerHTML=r)})),N(e,s),e.execCommand("mceInsertContent",!1,s.innerHTML),e.addVisual()};var E=tinymce.util.Tools.resolve("tinymce.Env");const k=(e,t)=>{const a=(e,t)=>((e,t,a)=>{for(let n=0,r=e.length;n<r;n++){const r=e[n];if(t(r,n))return T.some(r);if(a(r,n))break}return T.none()})(e,(e=>e.text===t),l),n=t=>{e.windowManager.alert("Could not load the specified template.",(()=>t.focus("template")))},r=e=>e.value.url.fold((()=>Promise.resolve(e.value.content.getOr(""))),(e=>fetch(e).then((e=>e.ok?e.text():Promise.reject())))),s=(e,t)=>(s,l)=>{if("template"===l.name){const l=s.getData().template;a(e,l).each((e=>{s.block("Loading..."),r(e).then((a=>{t(s,e,a)})).catch((()=>{t(s,e,""),s.setEnabled("save",!1),n(s)}))}))}},c=t=>s=>{const l=s.getData();a(t,l.template).each((t=>{r(t).then((t=>{e.execCommand("mceInsertTemplate",!1,t),s.close()})).catch((()=>{s.setEnabled("save",!1),n(s)}))}))};(()=>{if(!t||0===t.length){const t=e.translate("No templates defined.");return e.notificationManager.open({text:t,type:"info"}),T.none()}return T.from(o.map(t,((e,t)=>{const a=e=>void 0!==e.url;return{selected:0===t,text:e.title,value:{url:a(e)?T.from(e.url):T.none(),content:a(e)?T.none():T.from(e.content),description:e.description}}})))})().each((t=>{const a=(e=>((e,t)=>{const a=e.length,n=new Array(a);for(let t=0;t<a;t++){const a=e[t];n[t]={text:(r=a).text,value:r.text}}var r;return n})(e))(t),l=(e,a)=>({title:"Insert Template",size:"large",body:{type:"panel",items:e},initialData:a,buttons:[{type:"cancel",name:"cancel",text:"Cancel"},{type:"submit",name:"save",text:"Save",primary:!0}],onSubmit:c(t),onChange:s(t,i)}),i=(t,n,r)=>{const s=((e,t)=>{var a;let n=A(e,t);if(-1===t.indexOf("<html>")){let t="";const r=null!==(a=f(e))&&void 0!==a?a:"",s=y(e)?' crossorigin="anonymous"':"";o.each(e.contentCSS,(a=>{t+='<link type="text/css" rel="stylesheet" href="'+e.documentBaseURI.toAbsolute(a)+'"'+s+">"})),r&&(t+='<style type="text/css">'+r+"</style>");const l=b(e),c=e.dom.encode,i='<script>document.addEventListener && document.addEventListener("click", function(e) {for (var elm = e.target; elm; elm = elm.parentNode) {if (elm.nodeName === "A" && !('+(E.os.isMacOS()||E.os.isiOS()?"e.metaKey":"e.ctrlKey && !e.altKey")+")) {e.preventDefault();}}}, false);<\/script> ",u=e.getBody().dir,m=u?' dir="'+c(u)+'"':"";n='<!DOCTYPE html><html><head><base href="'+c(e.documentBaseURI.getURI())+'">'+t+i+'</head><body class="'+c(l)+'"'+m+">"+n+"</body></html>"}return D(n,p(e))})(e,r),c=[{type:"listbox",name:"template",label:"Templates",items:a},{type:"htmlpanel",html:`<p aria-live="polite">${w(n.value.description)}</p>`},{label:"Preview",type:"iframe",name:"preview",sandboxed:!1,transparent:!1}],i={template:n.text,preview:s};t.unblock(),t.redial(l(c,i)),t.focus("template")},u=e.windowManager.open(l([],{template:"",preview:""}));u.block("Loading..."),r(t[0]).then((e=>{i(u,t[0],e)})).catch((()=>{i(u,t[0],""),u.setEnabled("save",!1),n(u)}))}))},P=e=>t=>{const a=()=>{t.setEnabled(e.selection.isEditable())};return e.on("NodeChange",a),a(),()=>{e.off("NodeChange",a)}};e.add("template",(e=>{(e=>{const t=e.options.register;t("template_cdate_classes",{processor:"string",default:"cdate"}),t("template_mdate_classes",{processor:"string",default:"mdate"}),t("template_selected_content_classes",{processor:"string",default:"selcontent"}),t("template_preview_replace_values",{processor:"object"}),t("template_replace_values",{processor:"object"}),t("templates",{processor:e=>a(e)||((e,t)=>{if(r(e)){for(let a=0,n=e.length;a<n;++a)if(!t(e[a]))return!1;return!0}return!1})(e,n)||s(e),default:[]}),t("template_cdate_format",{processor:"string",default:e.translate("%Y-%m-%d")}),t("template_mdate_format",{processor:"string",default:e.translate("%Y-%m-%d")})})(e),(e=>{const t=()=>e.execCommand("mceTemplate");e.ui.registry.addButton("template",{icon:"template",tooltip:"Insert template",onSetup:P(e),onAction:t}),e.ui.registry.addMenuItem("template",{icon:"template",text:"Insert template...",onSetup:P(e),onAction:t})})(e),(e=>{e.addCommand("mceInsertTemplate",function(e,...t){return(...a)=>{const n=t.concat(a);return e.apply(null,n)}}(I,e)),e.addCommand("mceTemplate",((e,t)=>()=>{const n=h(e);s(n)?n(t):a(n)?fetch(n).then((e=>{e.ok&&e.json().then(t)})):t(n)})(e,(e=>t=>{k(e,t)})(e)))})(e),(e=>{e.on("PreProcess",(t=>{const a=e.dom,n=v(e);o.each(a.select("div",t.node),(t=>{a.hasClass(t,"mceTmpl")&&(o.each(a.select("*",t),(t=>{O(a,t,u(e))&&(t.innerHTML=M(e,n))})),N(e,t))}))}))})(e)}))}();