tinymce-rails 7.0.1 → 7.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/source/tinymce/tinymce.js +137 -115
- data/lib/tinymce/rails/version.rb +2 -2
- data/vendor/assets/javascripts/tinymce/icons/default/icons.js +1 -1
- data/vendor/assets/javascripts/tinymce/models/dom/model.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/accordion/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/advlist/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/anchor/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/autolink/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/autoresize/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/autosave/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/charmap/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/code/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/codesample/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/directionality/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/emoticons/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/fullscreen/plugin.js +2 -2
- data/vendor/assets/javascripts/tinymce/plugins/help/js/i18n/keynav/ar.js +3 -0
- data/vendor/assets/javascripts/tinymce/plugins/help/js/i18n/keynav/bg_BG.js +3 -0
- data/vendor/assets/javascripts/tinymce/plugins/help/js/i18n/keynav/ca.js +3 -0
- data/vendor/assets/javascripts/tinymce/plugins/help/js/i18n/keynav/cs.js +3 -0
- data/vendor/assets/javascripts/tinymce/plugins/help/js/i18n/keynav/da.js +3 -0
- data/vendor/assets/javascripts/tinymce/plugins/help/js/i18n/keynav/de.js +3 -0
- data/vendor/assets/javascripts/tinymce/plugins/help/js/i18n/keynav/el.js +3 -0
- data/vendor/assets/javascripts/tinymce/plugins/help/js/i18n/keynav/en.js +3 -0
- data/vendor/assets/javascripts/tinymce/plugins/help/js/i18n/keynav/es.js +3 -0
- data/vendor/assets/javascripts/tinymce/plugins/help/js/i18n/keynav/eu.js +3 -0
- data/vendor/assets/javascripts/tinymce/plugins/help/js/i18n/keynav/fa.js +3 -0
- data/vendor/assets/javascripts/tinymce/plugins/help/js/i18n/keynav/fi.js +3 -0
- data/vendor/assets/javascripts/tinymce/plugins/help/js/i18n/keynav/fr_FR.js +3 -0
- data/vendor/assets/javascripts/tinymce/plugins/help/js/i18n/keynav/he_IL.js +3 -0
- data/vendor/assets/javascripts/tinymce/plugins/help/js/i18n/keynav/hi.js +3 -0
- data/vendor/assets/javascripts/tinymce/plugins/help/js/i18n/keynav/hr.js +3 -0
- data/vendor/assets/javascripts/tinymce/plugins/help/js/i18n/keynav/hu_HU.js +3 -0
- data/vendor/assets/javascripts/tinymce/plugins/help/js/i18n/keynav/id.js +3 -0
- data/vendor/assets/javascripts/tinymce/plugins/help/js/i18n/keynav/it.js +3 -0
- data/vendor/assets/javascripts/tinymce/plugins/help/js/i18n/keynav/ja.js +3 -0
- data/vendor/assets/javascripts/tinymce/plugins/help/js/i18n/keynav/kk.js +3 -0
- data/vendor/assets/javascripts/tinymce/plugins/help/js/i18n/keynav/ko_KR.js +3 -0
- data/vendor/assets/javascripts/tinymce/plugins/help/js/i18n/keynav/ms.js +3 -0
- data/vendor/assets/javascripts/tinymce/plugins/help/js/i18n/keynav/nb_NO.js +3 -0
- data/vendor/assets/javascripts/tinymce/plugins/help/js/i18n/keynav/nl.js +3 -0
- data/vendor/assets/javascripts/tinymce/plugins/help/js/i18n/keynav/pl.js +3 -0
- data/vendor/assets/javascripts/tinymce/plugins/help/js/i18n/keynav/pt_BR.js +3 -0
- data/vendor/assets/javascripts/tinymce/plugins/help/js/i18n/keynav/pt_PT.js +3 -0
- data/vendor/assets/javascripts/tinymce/plugins/help/js/i18n/keynav/ro.js +3 -0
- data/vendor/assets/javascripts/tinymce/plugins/help/js/i18n/keynav/ru.js +3 -0
- data/vendor/assets/javascripts/tinymce/plugins/help/js/i18n/keynav/sk.js +3 -0
- data/vendor/assets/javascripts/tinymce/plugins/help/js/i18n/keynav/sl_SI.js +3 -0
- data/vendor/assets/javascripts/tinymce/plugins/help/js/i18n/keynav/sv_SE.js +3 -0
- data/vendor/assets/javascripts/tinymce/plugins/help/js/i18n/keynav/th_TH.js +3 -0
- data/vendor/assets/javascripts/tinymce/plugins/help/js/i18n/keynav/tr.js +3 -0
- data/vendor/assets/javascripts/tinymce/plugins/help/js/i18n/keynav/uk.js +3 -0
- data/vendor/assets/javascripts/tinymce/plugins/help/js/i18n/keynav/vi.js +3 -0
- data/vendor/assets/javascripts/tinymce/plugins/help/js/i18n/keynav/zh_CN.js +7 -4
- data/vendor/assets/javascripts/tinymce/plugins/help/js/i18n/keynav/zh_TW.js +3 -0
- data/vendor/assets/javascripts/tinymce/plugins/help/plugin.js +2 -2
- data/vendor/assets/javascripts/tinymce/plugins/image/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/importcss/plugin.js +2 -2
- data/vendor/assets/javascripts/tinymce/plugins/insertdatetime/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/link/plugin.js +2 -2
- data/vendor/assets/javascripts/tinymce/plugins/lists/plugin.js +2 -2
- data/vendor/assets/javascripts/tinymce/plugins/media/plugin.js +2 -2
- data/vendor/assets/javascripts/tinymce/plugins/nonbreaking/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/pagebreak/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/preview/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/quickbars/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/save/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/searchreplace/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/table/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/visualblocks/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/visualchars/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/wordcount/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/oxide/content.css +1 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/oxide/content.inline.css +1 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/oxide/content.inline.js +1 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/oxide/content.inline.min.css +1 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/oxide/content.js +1 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/oxide/content.min.css +1 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/oxide/skin.css +1 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/oxide/skin.js +1 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/oxide/skin.min.css +1 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/oxide-dark/content.css +1 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/oxide-dark/content.inline.css +1 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/oxide-dark/content.inline.js +1 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/oxide-dark/content.inline.min.css +1 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/oxide-dark/content.js +1 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/oxide-dark/content.min.css +1 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/oxide-dark/skin.css +1 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/oxide-dark/skin.js +1 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/oxide-dark/skin.min.css +1 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/tinymce-5/content.css +1 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/tinymce-5/content.inline.css +1 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/tinymce-5/content.inline.js +1 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/tinymce-5/content.inline.min.css +1 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/tinymce-5/content.js +1 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/tinymce-5/content.min.css +1 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/tinymce-5/skin.css +1 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/tinymce-5/skin.js +1 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/tinymce-5/skin.min.css +1 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/tinymce-5-dark/content.css +1 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/tinymce-5-dark/content.inline.css +1 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/tinymce-5-dark/content.inline.js +1 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/tinymce-5-dark/content.inline.min.css +1 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/tinymce-5-dark/content.js +1 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/tinymce-5-dark/content.min.css +1 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/tinymce-5-dark/skin.css +1 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/tinymce-5-dark/skin.js +1 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/tinymce-5-dark/skin.min.css +1 -1
- data/vendor/assets/javascripts/tinymce/themes/silver/theme.js +2 -2
- data/vendor/assets/javascripts/tinymce/tinymce.d.ts +1 -1
- data/vendor/assets/javascripts/tinymce/tinymce.js +2 -2
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2eeee64138094ba4150db8406a1913c02681d7a8285ea3d1945c765481554f20
|
4
|
+
data.tar.gz: a1ed19cb999fbd07a37ddc353fd5497249c32f1d6c792d1e91f71f4c0e03614d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e42bd1afe450097f6f9a9f2cb1c4ca7aaddf14b81e0cc969be23981d79e36c2d3e084818e7569ba5eaf95044e6767e0032a5926f6d6f440f110467fe703bbd93
|
7
|
+
data.tar.gz: c607a77a690a16b6c722bd22725e13788abfeb8246c84c25054b3aadd26083442720b80724bd6ed1a90f2152dc1d2e1eb0d6afa1d5dcb9704ffbfc7bc9fc01b4
|
@@ -1,5 +1,5 @@
|
|
1
1
|
/**
|
2
|
-
* TinyMCE version 7.0
|
2
|
+
* TinyMCE version 7.1.0 (2024-05-08)
|
3
3
|
*/
|
4
4
|
|
5
5
|
(function () {
|
@@ -2096,27 +2096,99 @@
|
|
2096
2096
|
});
|
2097
2097
|
};
|
2098
2098
|
|
2099
|
-
const
|
2099
|
+
const Cell = initial => {
|
2100
|
+
let value = initial;
|
2101
|
+
const get = () => {
|
2102
|
+
return value;
|
2103
|
+
};
|
2104
|
+
const set = v => {
|
2105
|
+
value = v;
|
2106
|
+
};
|
2107
|
+
return {
|
2108
|
+
get,
|
2109
|
+
set
|
2110
|
+
};
|
2111
|
+
};
|
2112
|
+
|
2113
|
+
const singleton = doRevoke => {
|
2114
|
+
const subject = Cell(Optional.none());
|
2115
|
+
const revoke = () => subject.get().each(doRevoke);
|
2116
|
+
const clear = () => {
|
2117
|
+
revoke();
|
2118
|
+
subject.set(Optional.none());
|
2119
|
+
};
|
2120
|
+
const isSet = () => subject.get().isSome();
|
2121
|
+
const get = () => subject.get();
|
2122
|
+
const set = s => {
|
2123
|
+
revoke();
|
2124
|
+
subject.set(Optional.some(s));
|
2125
|
+
};
|
2126
|
+
return {
|
2127
|
+
clear,
|
2128
|
+
isSet,
|
2129
|
+
get,
|
2130
|
+
set
|
2131
|
+
};
|
2132
|
+
};
|
2133
|
+
const repeatable = delay => {
|
2134
|
+
const intervalId = Cell(Optional.none());
|
2135
|
+
const revoke = () => intervalId.get().each(id => clearInterval(id));
|
2136
|
+
const clear = () => {
|
2137
|
+
revoke();
|
2138
|
+
intervalId.set(Optional.none());
|
2139
|
+
};
|
2140
|
+
const isSet = () => intervalId.get().isSome();
|
2141
|
+
const get = () => intervalId.get();
|
2142
|
+
const set = functionToRepeat => {
|
2143
|
+
revoke();
|
2144
|
+
intervalId.set(Optional.some(setInterval(functionToRepeat, delay)));
|
2145
|
+
};
|
2146
|
+
return {
|
2147
|
+
clear,
|
2148
|
+
isSet,
|
2149
|
+
get,
|
2150
|
+
set
|
2151
|
+
};
|
2152
|
+
};
|
2153
|
+
const value$2 = () => {
|
2154
|
+
const subject = singleton(noop);
|
2155
|
+
const on = f => subject.get().each(f);
|
2156
|
+
return {
|
2157
|
+
...subject,
|
2158
|
+
on
|
2159
|
+
};
|
2160
|
+
};
|
2161
|
+
|
2162
|
+
const nodeNameToNamespaceType = name => {
|
2163
|
+
const lowerCaseName = name.toLowerCase();
|
2164
|
+
if (lowerCaseName === 'svg') {
|
2165
|
+
return 'svg';
|
2166
|
+
} else if (lowerCaseName === 'math') {
|
2167
|
+
return 'math';
|
2168
|
+
} else {
|
2169
|
+
return 'html';
|
2170
|
+
}
|
2171
|
+
};
|
2172
|
+
const isNonHtmlElementRootName = name => nodeNameToNamespaceType(name) !== 'html';
|
2100
2173
|
const isNonHtmlElementRoot = node => isNonHtmlElementRootName(node.nodeName);
|
2101
|
-
const toScopeType = node => (node
|
2102
|
-
const namespaceElements = [
|
2174
|
+
const toScopeType = node => nodeNameToNamespaceType(node.nodeName);
|
2175
|
+
const namespaceElements = [
|
2176
|
+
'svg',
|
2177
|
+
'math'
|
2178
|
+
];
|
2103
2179
|
const createNamespaceTracker = () => {
|
2104
|
-
|
2105
|
-
const
|
2180
|
+
const currentScope = value$2();
|
2181
|
+
const current = () => currentScope.get().map(toScopeType).getOr('html');
|
2106
2182
|
const track = node => {
|
2107
2183
|
if (isNonHtmlElementRoot(node)) {
|
2108
|
-
|
2109
|
-
}
|
2110
|
-
|
2111
|
-
if (currentScope && !currentScope.contains(node)) {
|
2112
|
-
scopes.pop();
|
2113
|
-
currentScope = peek();
|
2184
|
+
currentScope.set(node);
|
2185
|
+
} else if (currentScope.get().exists(scopeNode => !scopeNode.contains(node))) {
|
2186
|
+
currentScope.clear();
|
2114
2187
|
}
|
2115
|
-
return
|
2188
|
+
return current();
|
2116
2189
|
};
|
2117
|
-
const current = () => toScopeType(peek());
|
2118
2190
|
const reset = () => {
|
2119
|
-
|
2191
|
+
currentScope.clear();
|
2120
2192
|
};
|
2121
2193
|
return {
|
2122
2194
|
track,
|
@@ -2128,7 +2200,8 @@
|
|
2128
2200
|
const transparentBlockAttr = 'data-mce-block';
|
2129
2201
|
const elementNames = map => filter$5(keys(map), key => !/[A-Z]/.test(key));
|
2130
2202
|
const makeSelectorFromSchemaMap = map => map$3(elementNames(map), name => {
|
2131
|
-
|
2203
|
+
const escapedName = CSS.escape(name);
|
2204
|
+
return `${ escapedName }:` + map$3(namespaceElements, ns => `not(${ ns } ${ escapedName })`).join(':');
|
2132
2205
|
}).join(',');
|
2133
2206
|
const updateTransparent = (blocksSelector, transparent) => {
|
2134
2207
|
if (isNonNullable(transparent.querySelector(blocksSelector))) {
|
@@ -2681,7 +2754,10 @@
|
|
2681
2754
|
'dropzone',
|
2682
2755
|
'hidden',
|
2683
2756
|
'spellcheck',
|
2684
|
-
'translate'
|
2757
|
+
'translate',
|
2758
|
+
'itemprop',
|
2759
|
+
'itemscope',
|
2760
|
+
'itemtype'
|
2685
2761
|
] : [],
|
2686
2762
|
...type !== 'html5-strict' ? ['xml:lang'] : []
|
2687
2763
|
]);
|
@@ -4970,20 +5046,6 @@
|
|
4970
5046
|
}
|
4971
5047
|
ScriptLoader.ScriptLoader = new ScriptLoader();
|
4972
5048
|
|
4973
|
-
const Cell = initial => {
|
4974
|
-
let value = initial;
|
4975
|
-
const get = () => {
|
4976
|
-
return value;
|
4977
|
-
};
|
4978
|
-
const set = v => {
|
4979
|
-
value = v;
|
4980
|
-
};
|
4981
|
-
return {
|
4982
|
-
get,
|
4983
|
-
set
|
4984
|
-
};
|
4985
|
-
};
|
4986
|
-
|
4987
5049
|
const isDuplicated = (items, item) => {
|
4988
5050
|
const firstIndex = items.indexOf(item);
|
4989
5051
|
return firstIndex !== -1 && items.indexOf(item, firstIndex + 1) > firstIndex;
|
@@ -5169,55 +5231,6 @@
|
|
5169
5231
|
AddOnManager.ThemeManager = AddOnManager();
|
5170
5232
|
AddOnManager.ModelManager = AddOnManager();
|
5171
5233
|
|
5172
|
-
const singleton = doRevoke => {
|
5173
|
-
const subject = Cell(Optional.none());
|
5174
|
-
const revoke = () => subject.get().each(doRevoke);
|
5175
|
-
const clear = () => {
|
5176
|
-
revoke();
|
5177
|
-
subject.set(Optional.none());
|
5178
|
-
};
|
5179
|
-
const isSet = () => subject.get().isSome();
|
5180
|
-
const get = () => subject.get();
|
5181
|
-
const set = s => {
|
5182
|
-
revoke();
|
5183
|
-
subject.set(Optional.some(s));
|
5184
|
-
};
|
5185
|
-
return {
|
5186
|
-
clear,
|
5187
|
-
isSet,
|
5188
|
-
get,
|
5189
|
-
set
|
5190
|
-
};
|
5191
|
-
};
|
5192
|
-
const repeatable = delay => {
|
5193
|
-
const intervalId = Cell(Optional.none());
|
5194
|
-
const revoke = () => intervalId.get().each(id => clearInterval(id));
|
5195
|
-
const clear = () => {
|
5196
|
-
revoke();
|
5197
|
-
intervalId.set(Optional.none());
|
5198
|
-
};
|
5199
|
-
const isSet = () => intervalId.get().isSome();
|
5200
|
-
const get = () => intervalId.get();
|
5201
|
-
const set = functionToRepeat => {
|
5202
|
-
revoke();
|
5203
|
-
intervalId.set(Optional.some(setInterval(functionToRepeat, delay)));
|
5204
|
-
};
|
5205
|
-
return {
|
5206
|
-
clear,
|
5207
|
-
isSet,
|
5208
|
-
get,
|
5209
|
-
set
|
5210
|
-
};
|
5211
|
-
};
|
5212
|
-
const value$2 = () => {
|
5213
|
-
const subject = singleton(noop);
|
5214
|
-
const on = f => subject.get().each(f);
|
5215
|
-
return {
|
5216
|
-
...subject,
|
5217
|
-
on
|
5218
|
-
};
|
5219
|
-
};
|
5220
|
-
|
5221
5234
|
const first$1 = (fn, rate) => {
|
5222
5235
|
let timer = null;
|
5223
5236
|
const cancel = () => {
|
@@ -17164,29 +17177,39 @@
|
|
17164
17177
|
return config;
|
17165
17178
|
};
|
17166
17179
|
const sanitizeNamespaceElement = ele => {
|
17167
|
-
const
|
17168
|
-
|
17169
|
-
|
17170
|
-
|
17171
|
-
|
17172
|
-
|
17173
|
-
|
17174
|
-
|
17175
|
-
|
17176
|
-
|
17177
|
-
|
17178
|
-
|
17179
|
-
|
17180
|
-
|
17181
|
-
|
17182
|
-
|
17183
|
-
|
17184
|
-
|
17185
|
-
|
17186
|
-
|
17187
|
-
|
17188
|
-
|
17189
|
-
|
17180
|
+
const namespaceType = toScopeType(ele);
|
17181
|
+
if (namespaceType === 'svg') {
|
17182
|
+
const xlinkAttrs = [
|
17183
|
+
'type',
|
17184
|
+
'href',
|
17185
|
+
'role',
|
17186
|
+
'arcrole',
|
17187
|
+
'title',
|
17188
|
+
'show',
|
17189
|
+
'actuate',
|
17190
|
+
'label',
|
17191
|
+
'from',
|
17192
|
+
'to'
|
17193
|
+
].map(name => `xlink:${ name }`);
|
17194
|
+
const config = {
|
17195
|
+
IN_PLACE: true,
|
17196
|
+
USE_PROFILES: {
|
17197
|
+
html: true,
|
17198
|
+
svg: true,
|
17199
|
+
svgFilters: true
|
17200
|
+
},
|
17201
|
+
ALLOWED_ATTR: xlinkAttrs
|
17202
|
+
};
|
17203
|
+
purify().sanitize(ele, config);
|
17204
|
+
} else if (namespaceType === 'math') {
|
17205
|
+
const config = {
|
17206
|
+
IN_PLACE: true,
|
17207
|
+
USE_PROFILES: { mathMl: true }
|
17208
|
+
};
|
17209
|
+
purify().sanitize(ele, config);
|
17210
|
+
} else {
|
17211
|
+
throw new Error('Not a namespace element');
|
17212
|
+
}
|
17190
17213
|
};
|
17191
17214
|
const getSanitizer = (settings, schema) => {
|
17192
17215
|
const namespaceTracker = createNamespaceTracker();
|
@@ -19466,7 +19489,7 @@
|
|
19466
19489
|
return a.type === b.type && a.text === b.text && !a.progressBar && !a.timeout && !b.progressBar && !b.timeout;
|
19467
19490
|
};
|
19468
19491
|
const reposition = () => {
|
19469
|
-
each
|
19492
|
+
getTopNotification().each(notification => {
|
19470
19493
|
notification.reposition();
|
19471
19494
|
});
|
19472
19495
|
};
|
@@ -19493,11 +19516,7 @@
|
|
19493
19516
|
editor.editorManager.setActive(editor);
|
19494
19517
|
const notification = getImplementation().open(spec, () => {
|
19495
19518
|
closeNotification(notification);
|
19496
|
-
|
19497
|
-
if (hasEditorOrUiFocus(editor)) {
|
19498
|
-
getTopNotification().fold(() => editor.focus(), top => focus$1(SugarElement.fromDom(top.getEl())));
|
19499
|
-
}
|
19500
|
-
});
|
19519
|
+
}, () => hasEditorOrUiFocus(editor));
|
19501
19520
|
addNotification(notification);
|
19502
19521
|
reposition();
|
19503
19522
|
editor.dispatch('OpenNotification', { notification: { ...notification } });
|
@@ -19524,7 +19543,7 @@
|
|
19524
19543
|
}
|
19525
19544
|
reposition();
|
19526
19545
|
});
|
19527
|
-
editor.on('show ResizeEditor
|
19546
|
+
editor.on('show ResizeEditor NodeChange', () => {
|
19528
19547
|
requestAnimationFrame(reposition);
|
19529
19548
|
});
|
19530
19549
|
editor.on('remove', () => {
|
@@ -19532,6 +19551,7 @@
|
|
19532
19551
|
getImplementation().close(notification);
|
19533
19552
|
});
|
19534
19553
|
});
|
19554
|
+
editor.addShortcut('alt+F12', 'Focus to notification', () => getTopNotification().map(notificationApi => SugarElement.fromDom(notificationApi.getEl())).each(elm => focus$1(elm)));
|
19535
19555
|
};
|
19536
19556
|
registerEvents(editor);
|
19537
19557
|
return {
|
@@ -21238,6 +21258,7 @@
|
|
21238
21258
|
const containerElm = SugarElement.fromDom(pos.container());
|
21239
21259
|
return getParentBlock$2(rootElm, containerElm).map(block => blockPosition(block, pos));
|
21240
21260
|
};
|
21261
|
+
const isNotAncestorial = blockBoundary => !(contains(blockBoundary.to.block, blockBoundary.from.block) || contains(blockBoundary.from.block, blockBoundary.to.block));
|
21241
21262
|
const isDifferentBlocks = blockBoundary => !eq(blockBoundary.from.block, blockBoundary.to.block);
|
21242
21263
|
const getClosestHost = (root, scope) => {
|
21243
21264
|
const isRoot = node => eq(node, root);
|
@@ -21269,7 +21290,7 @@
|
|
21269
21290
|
const readFromRange = (schema, rootNode, forward, rng) => {
|
21270
21291
|
const fromBlockPos = getBlockPosition(rootNode, CaretPosition.fromRangeStart(rng));
|
21271
21292
|
const toBlockPos = fromBlockPos.bind(blockPos => fromPosition(forward, rootNode, blockPos.position).bind(to => getBlockPosition(rootNode, to).map(blockPos => skipLastBr(schema, rootNode, forward, blockPos))));
|
21272
|
-
return lift2(fromBlockPos, toBlockPos, blockBoundary).filter(blockBoundary => isDifferentBlocks(blockBoundary) && hasSameHost(rootNode, blockBoundary) && isEditable$1(blockBoundary) && hasValidBlocks(blockBoundary));
|
21293
|
+
return lift2(fromBlockPos, toBlockPos, blockBoundary).filter(blockBoundary => isDifferentBlocks(blockBoundary) && hasSameHost(rootNode, blockBoundary) && isEditable$1(blockBoundary) && hasValidBlocks(blockBoundary) && isNotAncestorial(blockBoundary));
|
21273
21294
|
};
|
21274
21295
|
const read$1 = (schema, rootNode, forward, rng) => rng.collapsed ? readFromRange(schema, rootNode, forward, rng) : Optional.none();
|
21275
21296
|
|
@@ -28976,9 +28997,10 @@
|
|
28976
28997
|
return iframeHTML;
|
28977
28998
|
};
|
28978
28999
|
const createIframe = (editor, boxInfo) => {
|
28979
|
-
const iframeTitle =
|
29000
|
+
const iframeTitle = Env.browser.isFirefox() ? getIframeAriaText(editor) : 'Rich Text Area';
|
29001
|
+
const translatedTitle = editor.translate(iframeTitle);
|
28980
29002
|
const tabindex = getOpt(SugarElement.fromDom(editor.getElement()), 'tabindex').bind(toInt);
|
28981
|
-
const ifr = createIframeElement(editor.id,
|
29003
|
+
const ifr = createIframeElement(editor.id, translatedTitle, getIframeAttrs(editor), tabindex).dom;
|
28982
29004
|
ifr.onload = () => {
|
28983
29005
|
ifr.onload = null;
|
28984
29006
|
editor.dispatch('load');
|
@@ -31319,8 +31341,8 @@
|
|
31319
31341
|
documentBaseURL: null,
|
31320
31342
|
suffix: null,
|
31321
31343
|
majorVersion: '7',
|
31322
|
-
minorVersion: '0
|
31323
|
-
releaseDate: '2024-
|
31344
|
+
minorVersion: '1.0',
|
31345
|
+
releaseDate: '2024-05-08',
|
31324
31346
|
i18n: I18n,
|
31325
31347
|
activeEditor: null,
|
31326
31348
|
focusedEditor: null,
|