imatrix-ui 2.8.97-dw-tmp2 → 2.8.97-dw-tmp4
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.
- package/lib/super-ui.css +1 -0
- package/lib/super-ui.umd.min.js +36 -1
- package/package.json +1 -2
- package/src/i18n/i18n.js +1 -1
- package/src/i18n/langs/cn.js +1 -1
- package/src/i18n/langs/en.js +1 -1
- package/src/permission.js +1 -1
- package/src/plugins.js +4 -4
- package/src/store/modules/permission.js +5 -0
- package/src/styles/index.scss +2 -2
- package/src/utils/permissionAuth.js +6 -0
- package/src/utils/request.js +1 -1
- package/src/views/login/index.vue +1 -1
- package/lib/css/super-ui.common~46f24e9d.f712732a.css +0 -1
- package/lib/css/super-ui.common~60a56baa.e6f54088.css +0 -1
- package/lib/css/super-ui.common~691e02b5.3387eefb.css +0 -1
- package/lib/css/super-ui.common~e2e93592.e9ec19a9.css +0 -1
- package/lib/css/super-ui.umd.min~46f24e9d.f712732a.css +0 -1
- package/lib/css/super-ui.umd.min~60a56baa.e6f54088.css +0 -1
- package/lib/css/super-ui.umd.min~691e02b5.3387eefb.css +0 -1
- package/lib/css/super-ui.umd.min~e2e93592.e9ec19a9.css +0 -1
- package/lib/css/super-ui.umd~46f24e9d.f712732a.css +0 -1
- package/lib/css/super-ui.umd~60a56baa.e6f54088.css +0 -1
- package/lib/css/super-ui.umd~691e02b5.3387eefb.css +0 -1
- package/lib/css/super-ui.umd~e2e93592.e9ec19a9.css +0 -1
- package/lib/css/vendors~super-ui.common~253ae210.b57e4bfb.css +0 -1
- package/lib/css/vendors~super-ui.umd.min~253ae210.b57e4bfb.css +0 -1
- package/lib/css/vendors~super-ui.umd~253ae210.b57e4bfb.css +0 -1
- package/lib/css/yarn.tinymce~97d7b732.ea366551.css +0 -1
- package/lib/super-ui.common.super-ui.common~46f24e9d.js +0 -12446
- package/lib/super-ui.common.super-ui.common~60a56baa.js +0 -2774
- package/lib/super-ui.common.super-ui.common~691e02b5.js +0 -3062
- package/lib/super-ui.common.super-ui.common~970f9218.js +0 -3729
- package/lib/super-ui.common.super-ui.common~bd3594d6.js +0 -5264
- package/lib/super-ui.common.super-ui.common~e2e93592.js +0 -6945
- package/lib/super-ui.common.vendors~super-ui.common~253ae210.js +0 -3504
- package/lib/super-ui.common.yarn.async-validator~7864cd12.js +0 -1225
- package/lib/super-ui.common.yarn.core-js~2b13b260.js +0 -7542
- package/lib/super-ui.common.yarn.gcommon~c5c7b9b4.js +0 -11
- package/lib/super-ui.common.yarn.gcommon~cd278a5f.js +0 -4846
- package/lib/super-ui.common.yarn.resize-observer-polyfill~7370204d.js +0 -942
- package/lib/super-ui.common.yarn.sortablejs~f811d8fd.js +0 -3714
- package/lib/super-ui.common.yarn.tinymce~253ae210.js +0 -568
- package/lib/super-ui.common.yarn.tinymce~29bc5d46.js +0 -2125
- package/lib/super-ui.common.yarn.tinymce~35f50c21.js +0 -34090
- package/lib/super-ui.common.yarn.tinymce~8a52df3b.js +0 -30088
- package/lib/super-ui.common.yarn.tinymce~97d7b732.js +0 -31
- package/lib/super-ui.common.yarn.tinymce~b5d80f29.js +0 -7936
- package/lib/super-ui.common.yarn.tinymce~c1068939.js +0 -13346
- package/lib/super-ui.common.yarn.vue-i18n~02576867.js +0 -2179
- package/lib/super-ui.common.yarn.vue-virtual-scroll-list~bd67cfcd.js +0 -1069
- package/lib/super-ui.common.yarn.zxing~3446ce64.js +0 -11996
- package/lib/super-ui.common.yarn.zxing~61a1471b.js +0 -11202
- package/lib/super-ui.common.yarn.zxing~b49f3034.js +0 -3576
- package/lib/super-ui.common.yarn.zxing~fd3cc9f3.js +0 -2916
- package/lib/super-ui.umd.min.super-ui.umd.min~46f24e9d.js +0 -2
- package/lib/super-ui.umd.min.super-ui.umd.min~60a56baa.js +0 -2
- package/lib/super-ui.umd.min.super-ui.umd.min~691e02b5.js +0 -2
- package/lib/super-ui.umd.min.super-ui.umd.min~970f9218.js +0 -2
- package/lib/super-ui.umd.min.super-ui.umd.min~bd3594d6.js +0 -2
- package/lib/super-ui.umd.min.super-ui.umd.min~e2e93592.js +0 -2
- package/lib/super-ui.umd.min.vendors~super-ui.umd.min~253ae210.js +0 -24
- package/lib/super-ui.umd.min.yarn.async-validator~7864cd12.js +0 -2
- package/lib/super-ui.umd.min.yarn.core-js~2b13b260.js +0 -2
- package/lib/super-ui.umd.min.yarn.gcommon~c5c7b9b4.js +0 -2
- package/lib/super-ui.umd.min.yarn.gcommon~cd278a5f.js +0 -26
- package/lib/super-ui.umd.min.yarn.resize-observer-polyfill~7370204d.js +0 -2
- package/lib/super-ui.umd.min.yarn.sortablejs~f811d8fd.js +0 -8
- package/lib/super-ui.umd.min.yarn.tinymce~253ae210.js +0 -2
- package/lib/super-ui.umd.min.yarn.tinymce~29bc5d46.js +0 -2
- package/lib/super-ui.umd.min.yarn.tinymce~35f50c21.js +0 -2
- package/lib/super-ui.umd.min.yarn.tinymce~8a52df3b.js +0 -2
- package/lib/super-ui.umd.min.yarn.tinymce~97d7b732.js +0 -2
- package/lib/super-ui.umd.min.yarn.tinymce~b5d80f29.js +0 -2
- package/lib/super-ui.umd.min.yarn.tinymce~c1068939.js +0 -2
- package/lib/super-ui.umd.min.yarn.vue-i18n~02576867.js +0 -7
- package/lib/super-ui.umd.min.yarn.vue-virtual-scroll-list~bd67cfcd.js +0 -8
- package/lib/super-ui.umd.min.yarn.zxing~3446ce64.js +0 -2
- package/lib/super-ui.umd.min.yarn.zxing~61a1471b.js +0 -2
- package/lib/super-ui.umd.min.yarn.zxing~b49f3034.js +0 -2
- package/lib/super-ui.umd.min.yarn.zxing~fd3cc9f3.js +0 -2
- package/lib/super-ui.umd.super-ui.umd~46f24e9d.js +0 -12446
- package/lib/super-ui.umd.super-ui.umd~60a56baa.js +0 -2774
- package/lib/super-ui.umd.super-ui.umd~691e02b5.js +0 -3062
- package/lib/super-ui.umd.super-ui.umd~970f9218.js +0 -3739
- package/lib/super-ui.umd.super-ui.umd~bd3594d6.js +0 -5264
- package/lib/super-ui.umd.super-ui.umd~e2e93592.js +0 -6945
- package/lib/super-ui.umd.vendors~super-ui.umd~253ae210.js +0 -3504
- package/lib/super-ui.umd.yarn.async-validator~7864cd12.js +0 -1225
- package/lib/super-ui.umd.yarn.core-js~2b13b260.js +0 -7542
- package/lib/super-ui.umd.yarn.gcommon~c5c7b9b4.js +0 -11
- package/lib/super-ui.umd.yarn.gcommon~cd278a5f.js +0 -4846
- package/lib/super-ui.umd.yarn.resize-observer-polyfill~7370204d.js +0 -942
- package/lib/super-ui.umd.yarn.sortablejs~f811d8fd.js +0 -3714
- package/lib/super-ui.umd.yarn.tinymce~253ae210.js +0 -568
- package/lib/super-ui.umd.yarn.tinymce~29bc5d46.js +0 -2125
- package/lib/super-ui.umd.yarn.tinymce~35f50c21.js +0 -34090
- package/lib/super-ui.umd.yarn.tinymce~8a52df3b.js +0 -30088
- package/lib/super-ui.umd.yarn.tinymce~97d7b732.js +0 -31
- package/lib/super-ui.umd.yarn.tinymce~b5d80f29.js +0 -7936
- package/lib/super-ui.umd.yarn.tinymce~c1068939.js +0 -13346
- package/lib/super-ui.umd.yarn.vue-i18n~02576867.js +0 -2179
- package/lib/super-ui.umd.yarn.vue-virtual-scroll-list~bd67cfcd.js +0 -1069
- package/lib/super-ui.umd.yarn.zxing~3446ce64.js +0 -11996
- package/lib/super-ui.umd.yarn.zxing~61a1471b.js +0 -11202
- package/lib/super-ui.umd.yarn.zxing~b49f3034.js +0 -3576
- package/lib/super-ui.umd.yarn.zxing~fd3cc9f3.js +0 -2916
|
@@ -1,2125 +0,0 @@
|
|
|
1
|
-
((typeof self !== 'undefined' ? self : this)["webpackJsonpsuper_ui"] = (typeof self !== 'undefined' ? self : this)["webpackJsonpsuper_ui"] || []).push([[15],{
|
|
2
|
-
|
|
3
|
-
/***/ "0902":
|
|
4
|
-
/***/ (function(module, exports, __webpack_require__) {
|
|
5
|
-
|
|
6
|
-
// Exports the "advlist" plugin for usage with module loaders
|
|
7
|
-
// Usage:
|
|
8
|
-
// CommonJS:
|
|
9
|
-
// require('tinymce/plugins/advlist')
|
|
10
|
-
// ES2015:
|
|
11
|
-
// import 'tinymce/plugins/advlist'
|
|
12
|
-
__webpack_require__("88b6");
|
|
13
|
-
|
|
14
|
-
/***/ }),
|
|
15
|
-
|
|
16
|
-
/***/ "3154":
|
|
17
|
-
/***/ (function(module, exports, __webpack_require__) {
|
|
18
|
-
|
|
19
|
-
// Exports the "fullscreen" plugin for usage with module loaders
|
|
20
|
-
// Usage:
|
|
21
|
-
// CommonJS:
|
|
22
|
-
// require('tinymce/plugins/fullscreen')
|
|
23
|
-
// ES2015:
|
|
24
|
-
// import 'tinymce/plugins/fullscreen'
|
|
25
|
-
__webpack_require__("f034");
|
|
26
|
-
|
|
27
|
-
/***/ }),
|
|
28
|
-
|
|
29
|
-
/***/ "855b":
|
|
30
|
-
/***/ (function(module, exports, __webpack_require__) {
|
|
31
|
-
|
|
32
|
-
// Exports the "directionality" plugin for usage with module loaders
|
|
33
|
-
// Usage:
|
|
34
|
-
// CommonJS:
|
|
35
|
-
// require('tinymce/plugins/directionality')
|
|
36
|
-
// ES2015:
|
|
37
|
-
// import 'tinymce/plugins/directionality'
|
|
38
|
-
__webpack_require__("e2d6");
|
|
39
|
-
|
|
40
|
-
/***/ }),
|
|
41
|
-
|
|
42
|
-
/***/ "88b6":
|
|
43
|
-
/***/ (function(module, exports) {
|
|
44
|
-
|
|
45
|
-
/**
|
|
46
|
-
* Copyright (c) Tiny Technologies, Inc. All rights reserved.
|
|
47
|
-
* Licensed under the LGPL or a commercial license.
|
|
48
|
-
* For LGPL see License.txt in the project root for license information.
|
|
49
|
-
* For commercial licenses see https://www.tiny.cloud/
|
|
50
|
-
*
|
|
51
|
-
* Version: 5.10.7 (2022-12-06)
|
|
52
|
-
*/
|
|
53
|
-
(function () {
|
|
54
|
-
'use strict';
|
|
55
|
-
|
|
56
|
-
var global$1 = tinymce.util.Tools.resolve('tinymce.PluginManager');
|
|
57
|
-
|
|
58
|
-
var applyListFormat = function (editor, listName, styleValue) {
|
|
59
|
-
var cmd = listName === 'UL' ? 'InsertUnorderedList' : 'InsertOrderedList';
|
|
60
|
-
editor.execCommand(cmd, false, styleValue === false ? null : { 'list-style-type': styleValue });
|
|
61
|
-
};
|
|
62
|
-
|
|
63
|
-
var register$1 = function (editor) {
|
|
64
|
-
editor.addCommand('ApplyUnorderedListStyle', function (ui, value) {
|
|
65
|
-
applyListFormat(editor, 'UL', value['list-style-type']);
|
|
66
|
-
});
|
|
67
|
-
editor.addCommand('ApplyOrderedListStyle', function (ui, value) {
|
|
68
|
-
applyListFormat(editor, 'OL', value['list-style-type']);
|
|
69
|
-
});
|
|
70
|
-
};
|
|
71
|
-
|
|
72
|
-
var global = tinymce.util.Tools.resolve('tinymce.util.Tools');
|
|
73
|
-
|
|
74
|
-
var getNumberStyles = function (editor) {
|
|
75
|
-
var styles = editor.getParam('advlist_number_styles', 'default,lower-alpha,lower-greek,lower-roman,upper-alpha,upper-roman');
|
|
76
|
-
return styles ? styles.split(/[ ,]/) : [];
|
|
77
|
-
};
|
|
78
|
-
var getBulletStyles = function (editor) {
|
|
79
|
-
var styles = editor.getParam('advlist_bullet_styles', 'default,circle,square');
|
|
80
|
-
return styles ? styles.split(/[ ,]/) : [];
|
|
81
|
-
};
|
|
82
|
-
|
|
83
|
-
var noop = function () {
|
|
84
|
-
};
|
|
85
|
-
var constant = function (value) {
|
|
86
|
-
return function () {
|
|
87
|
-
return value;
|
|
88
|
-
};
|
|
89
|
-
};
|
|
90
|
-
var identity = function (x) {
|
|
91
|
-
return x;
|
|
92
|
-
};
|
|
93
|
-
var never = constant(false);
|
|
94
|
-
var always = constant(true);
|
|
95
|
-
|
|
96
|
-
var none = function () {
|
|
97
|
-
return NONE;
|
|
98
|
-
};
|
|
99
|
-
var NONE = function () {
|
|
100
|
-
var call = function (thunk) {
|
|
101
|
-
return thunk();
|
|
102
|
-
};
|
|
103
|
-
var id = identity;
|
|
104
|
-
var me = {
|
|
105
|
-
fold: function (n, _s) {
|
|
106
|
-
return n();
|
|
107
|
-
},
|
|
108
|
-
isSome: never,
|
|
109
|
-
isNone: always,
|
|
110
|
-
getOr: id,
|
|
111
|
-
getOrThunk: call,
|
|
112
|
-
getOrDie: function (msg) {
|
|
113
|
-
throw new Error(msg || 'error: getOrDie called on none.');
|
|
114
|
-
},
|
|
115
|
-
getOrNull: constant(null),
|
|
116
|
-
getOrUndefined: constant(undefined),
|
|
117
|
-
or: id,
|
|
118
|
-
orThunk: call,
|
|
119
|
-
map: none,
|
|
120
|
-
each: noop,
|
|
121
|
-
bind: none,
|
|
122
|
-
exists: never,
|
|
123
|
-
forall: always,
|
|
124
|
-
filter: function () {
|
|
125
|
-
return none();
|
|
126
|
-
},
|
|
127
|
-
toArray: function () {
|
|
128
|
-
return [];
|
|
129
|
-
},
|
|
130
|
-
toString: constant('none()')
|
|
131
|
-
};
|
|
132
|
-
return me;
|
|
133
|
-
}();
|
|
134
|
-
var some = function (a) {
|
|
135
|
-
var constant_a = constant(a);
|
|
136
|
-
var self = function () {
|
|
137
|
-
return me;
|
|
138
|
-
};
|
|
139
|
-
var bind = function (f) {
|
|
140
|
-
return f(a);
|
|
141
|
-
};
|
|
142
|
-
var me = {
|
|
143
|
-
fold: function (n, s) {
|
|
144
|
-
return s(a);
|
|
145
|
-
},
|
|
146
|
-
isSome: always,
|
|
147
|
-
isNone: never,
|
|
148
|
-
getOr: constant_a,
|
|
149
|
-
getOrThunk: constant_a,
|
|
150
|
-
getOrDie: constant_a,
|
|
151
|
-
getOrNull: constant_a,
|
|
152
|
-
getOrUndefined: constant_a,
|
|
153
|
-
or: self,
|
|
154
|
-
orThunk: self,
|
|
155
|
-
map: function (f) {
|
|
156
|
-
return some(f(a));
|
|
157
|
-
},
|
|
158
|
-
each: function (f) {
|
|
159
|
-
f(a);
|
|
160
|
-
},
|
|
161
|
-
bind: bind,
|
|
162
|
-
exists: bind,
|
|
163
|
-
forall: bind,
|
|
164
|
-
filter: function (f) {
|
|
165
|
-
return f(a) ? me : NONE;
|
|
166
|
-
},
|
|
167
|
-
toArray: function () {
|
|
168
|
-
return [a];
|
|
169
|
-
},
|
|
170
|
-
toString: function () {
|
|
171
|
-
return 'some(' + a + ')';
|
|
172
|
-
}
|
|
173
|
-
};
|
|
174
|
-
return me;
|
|
175
|
-
};
|
|
176
|
-
var from = function (value) {
|
|
177
|
-
return value === null || value === undefined ? NONE : some(value);
|
|
178
|
-
};
|
|
179
|
-
var Optional = {
|
|
180
|
-
some: some,
|
|
181
|
-
none: none,
|
|
182
|
-
from: from
|
|
183
|
-
};
|
|
184
|
-
|
|
185
|
-
var isChildOfBody = function (editor, elm) {
|
|
186
|
-
return editor.$.contains(editor.getBody(), elm);
|
|
187
|
-
};
|
|
188
|
-
var isTableCellNode = function (node) {
|
|
189
|
-
return node && /^(TH|TD)$/.test(node.nodeName);
|
|
190
|
-
};
|
|
191
|
-
var isListNode = function (editor) {
|
|
192
|
-
return function (node) {
|
|
193
|
-
return node && /^(OL|UL|DL)$/.test(node.nodeName) && isChildOfBody(editor, node);
|
|
194
|
-
};
|
|
195
|
-
};
|
|
196
|
-
var getSelectedStyleType = function (editor) {
|
|
197
|
-
var listElm = editor.dom.getParent(editor.selection.getNode(), 'ol,ul');
|
|
198
|
-
var style = editor.dom.getStyle(listElm, 'listStyleType');
|
|
199
|
-
return Optional.from(style);
|
|
200
|
-
};
|
|
201
|
-
|
|
202
|
-
var findIndex = function (list, predicate) {
|
|
203
|
-
for (var index = 0; index < list.length; index++) {
|
|
204
|
-
var element = list[index];
|
|
205
|
-
if (predicate(element)) {
|
|
206
|
-
return index;
|
|
207
|
-
}
|
|
208
|
-
}
|
|
209
|
-
return -1;
|
|
210
|
-
};
|
|
211
|
-
var styleValueToText = function (styleValue) {
|
|
212
|
-
return styleValue.replace(/\-/g, ' ').replace(/\b\w/g, function (chr) {
|
|
213
|
-
return chr.toUpperCase();
|
|
214
|
-
});
|
|
215
|
-
};
|
|
216
|
-
var isWithinList = function (editor, e, nodeName) {
|
|
217
|
-
var tableCellIndex = findIndex(e.parents, isTableCellNode);
|
|
218
|
-
var parents = tableCellIndex !== -1 ? e.parents.slice(0, tableCellIndex) : e.parents;
|
|
219
|
-
var lists = global.grep(parents, isListNode(editor));
|
|
220
|
-
return lists.length > 0 && lists[0].nodeName === nodeName;
|
|
221
|
-
};
|
|
222
|
-
var makeSetupHandler = function (editor, nodeName) {
|
|
223
|
-
return function (api) {
|
|
224
|
-
var nodeChangeHandler = function (e) {
|
|
225
|
-
api.setActive(isWithinList(editor, e, nodeName));
|
|
226
|
-
};
|
|
227
|
-
editor.on('NodeChange', nodeChangeHandler);
|
|
228
|
-
return function () {
|
|
229
|
-
return editor.off('NodeChange', nodeChangeHandler);
|
|
230
|
-
};
|
|
231
|
-
};
|
|
232
|
-
};
|
|
233
|
-
var addSplitButton = function (editor, id, tooltip, cmd, nodeName, styles) {
|
|
234
|
-
editor.ui.registry.addSplitButton(id, {
|
|
235
|
-
tooltip: tooltip,
|
|
236
|
-
icon: nodeName === 'OL' ? 'ordered-list' : 'unordered-list',
|
|
237
|
-
presets: 'listpreview',
|
|
238
|
-
columns: 3,
|
|
239
|
-
fetch: function (callback) {
|
|
240
|
-
var items = global.map(styles, function (styleValue) {
|
|
241
|
-
var iconStyle = nodeName === 'OL' ? 'num' : 'bull';
|
|
242
|
-
var iconName = styleValue === 'disc' || styleValue === 'decimal' ? 'default' : styleValue;
|
|
243
|
-
var itemValue = styleValue === 'default' ? '' : styleValue;
|
|
244
|
-
var displayText = styleValueToText(styleValue);
|
|
245
|
-
return {
|
|
246
|
-
type: 'choiceitem',
|
|
247
|
-
value: itemValue,
|
|
248
|
-
icon: 'list-' + iconStyle + '-' + iconName,
|
|
249
|
-
text: displayText
|
|
250
|
-
};
|
|
251
|
-
});
|
|
252
|
-
callback(items);
|
|
253
|
-
},
|
|
254
|
-
onAction: function () {
|
|
255
|
-
return editor.execCommand(cmd);
|
|
256
|
-
},
|
|
257
|
-
onItemAction: function (_splitButtonApi, value) {
|
|
258
|
-
applyListFormat(editor, nodeName, value);
|
|
259
|
-
},
|
|
260
|
-
select: function (value) {
|
|
261
|
-
var listStyleType = getSelectedStyleType(editor);
|
|
262
|
-
return listStyleType.map(function (listStyle) {
|
|
263
|
-
return value === listStyle;
|
|
264
|
-
}).getOr(false);
|
|
265
|
-
},
|
|
266
|
-
onSetup: makeSetupHandler(editor, nodeName)
|
|
267
|
-
});
|
|
268
|
-
};
|
|
269
|
-
var addButton = function (editor, id, tooltip, cmd, nodeName, _styles) {
|
|
270
|
-
editor.ui.registry.addToggleButton(id, {
|
|
271
|
-
active: false,
|
|
272
|
-
tooltip: tooltip,
|
|
273
|
-
icon: nodeName === 'OL' ? 'ordered-list' : 'unordered-list',
|
|
274
|
-
onSetup: makeSetupHandler(editor, nodeName),
|
|
275
|
-
onAction: function () {
|
|
276
|
-
return editor.execCommand(cmd);
|
|
277
|
-
}
|
|
278
|
-
});
|
|
279
|
-
};
|
|
280
|
-
var addControl = function (editor, id, tooltip, cmd, nodeName, styles) {
|
|
281
|
-
if (styles.length > 1) {
|
|
282
|
-
addSplitButton(editor, id, tooltip, cmd, nodeName, styles);
|
|
283
|
-
} else {
|
|
284
|
-
addButton(editor, id, tooltip, cmd, nodeName);
|
|
285
|
-
}
|
|
286
|
-
};
|
|
287
|
-
var register = function (editor) {
|
|
288
|
-
addControl(editor, 'numlist', 'Numbered list', 'InsertOrderedList', 'OL', getNumberStyles(editor));
|
|
289
|
-
addControl(editor, 'bullist', 'Bullet list', 'InsertUnorderedList', 'UL', getBulletStyles(editor));
|
|
290
|
-
};
|
|
291
|
-
|
|
292
|
-
function Plugin () {
|
|
293
|
-
global$1.add('advlist', function (editor) {
|
|
294
|
-
if (editor.hasPlugin('lists')) {
|
|
295
|
-
register(editor);
|
|
296
|
-
register$1(editor);
|
|
297
|
-
} else {
|
|
298
|
-
console.error('Please use the Lists plugin together with the Advanced List plugin.');
|
|
299
|
-
}
|
|
300
|
-
});
|
|
301
|
-
}
|
|
302
|
-
|
|
303
|
-
Plugin();
|
|
304
|
-
|
|
305
|
-
}());
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
/***/ }),
|
|
309
|
-
|
|
310
|
-
/***/ "e2d6":
|
|
311
|
-
/***/ (function(module, exports) {
|
|
312
|
-
|
|
313
|
-
/**
|
|
314
|
-
* Copyright (c) Tiny Technologies, Inc. All rights reserved.
|
|
315
|
-
* Licensed under the LGPL or a commercial license.
|
|
316
|
-
* For LGPL see License.txt in the project root for license information.
|
|
317
|
-
* For commercial licenses see https://www.tiny.cloud/
|
|
318
|
-
*
|
|
319
|
-
* Version: 5.10.7 (2022-12-06)
|
|
320
|
-
*/
|
|
321
|
-
(function () {
|
|
322
|
-
'use strict';
|
|
323
|
-
|
|
324
|
-
var global = tinymce.util.Tools.resolve('tinymce.PluginManager');
|
|
325
|
-
|
|
326
|
-
var typeOf = function (x) {
|
|
327
|
-
var t = typeof x;
|
|
328
|
-
if (x === null) {
|
|
329
|
-
return 'null';
|
|
330
|
-
} else if (t === 'object' && (Array.prototype.isPrototypeOf(x) || x.constructor && x.constructor.name === 'Array')) {
|
|
331
|
-
return 'array';
|
|
332
|
-
} else if (t === 'object' && (String.prototype.isPrototypeOf(x) || x.constructor && x.constructor.name === 'String')) {
|
|
333
|
-
return 'string';
|
|
334
|
-
} else {
|
|
335
|
-
return t;
|
|
336
|
-
}
|
|
337
|
-
};
|
|
338
|
-
var isType$1 = function (type) {
|
|
339
|
-
return function (value) {
|
|
340
|
-
return typeOf(value) === type;
|
|
341
|
-
};
|
|
342
|
-
};
|
|
343
|
-
var isSimpleType = function (type) {
|
|
344
|
-
return function (value) {
|
|
345
|
-
return typeof value === type;
|
|
346
|
-
};
|
|
347
|
-
};
|
|
348
|
-
var isString = isType$1('string');
|
|
349
|
-
var isBoolean = isSimpleType('boolean');
|
|
350
|
-
var isNullable = function (a) {
|
|
351
|
-
return a === null || a === undefined;
|
|
352
|
-
};
|
|
353
|
-
var isNonNullable = function (a) {
|
|
354
|
-
return !isNullable(a);
|
|
355
|
-
};
|
|
356
|
-
var isFunction = isSimpleType('function');
|
|
357
|
-
var isNumber = isSimpleType('number');
|
|
358
|
-
|
|
359
|
-
var noop = function () {
|
|
360
|
-
};
|
|
361
|
-
var compose1 = function (fbc, fab) {
|
|
362
|
-
return function (a) {
|
|
363
|
-
return fbc(fab(a));
|
|
364
|
-
};
|
|
365
|
-
};
|
|
366
|
-
var constant = function (value) {
|
|
367
|
-
return function () {
|
|
368
|
-
return value;
|
|
369
|
-
};
|
|
370
|
-
};
|
|
371
|
-
var identity = function (x) {
|
|
372
|
-
return x;
|
|
373
|
-
};
|
|
374
|
-
var never = constant(false);
|
|
375
|
-
var always = constant(true);
|
|
376
|
-
|
|
377
|
-
var none = function () {
|
|
378
|
-
return NONE;
|
|
379
|
-
};
|
|
380
|
-
var NONE = function () {
|
|
381
|
-
var call = function (thunk) {
|
|
382
|
-
return thunk();
|
|
383
|
-
};
|
|
384
|
-
var id = identity;
|
|
385
|
-
var me = {
|
|
386
|
-
fold: function (n, _s) {
|
|
387
|
-
return n();
|
|
388
|
-
},
|
|
389
|
-
isSome: never,
|
|
390
|
-
isNone: always,
|
|
391
|
-
getOr: id,
|
|
392
|
-
getOrThunk: call,
|
|
393
|
-
getOrDie: function (msg) {
|
|
394
|
-
throw new Error(msg || 'error: getOrDie called on none.');
|
|
395
|
-
},
|
|
396
|
-
getOrNull: constant(null),
|
|
397
|
-
getOrUndefined: constant(undefined),
|
|
398
|
-
or: id,
|
|
399
|
-
orThunk: call,
|
|
400
|
-
map: none,
|
|
401
|
-
each: noop,
|
|
402
|
-
bind: none,
|
|
403
|
-
exists: never,
|
|
404
|
-
forall: always,
|
|
405
|
-
filter: function () {
|
|
406
|
-
return none();
|
|
407
|
-
},
|
|
408
|
-
toArray: function () {
|
|
409
|
-
return [];
|
|
410
|
-
},
|
|
411
|
-
toString: constant('none()')
|
|
412
|
-
};
|
|
413
|
-
return me;
|
|
414
|
-
}();
|
|
415
|
-
var some = function (a) {
|
|
416
|
-
var constant_a = constant(a);
|
|
417
|
-
var self = function () {
|
|
418
|
-
return me;
|
|
419
|
-
};
|
|
420
|
-
var bind = function (f) {
|
|
421
|
-
return f(a);
|
|
422
|
-
};
|
|
423
|
-
var me = {
|
|
424
|
-
fold: function (n, s) {
|
|
425
|
-
return s(a);
|
|
426
|
-
},
|
|
427
|
-
isSome: always,
|
|
428
|
-
isNone: never,
|
|
429
|
-
getOr: constant_a,
|
|
430
|
-
getOrThunk: constant_a,
|
|
431
|
-
getOrDie: constant_a,
|
|
432
|
-
getOrNull: constant_a,
|
|
433
|
-
getOrUndefined: constant_a,
|
|
434
|
-
or: self,
|
|
435
|
-
orThunk: self,
|
|
436
|
-
map: function (f) {
|
|
437
|
-
return some(f(a));
|
|
438
|
-
},
|
|
439
|
-
each: function (f) {
|
|
440
|
-
f(a);
|
|
441
|
-
},
|
|
442
|
-
bind: bind,
|
|
443
|
-
exists: bind,
|
|
444
|
-
forall: bind,
|
|
445
|
-
filter: function (f) {
|
|
446
|
-
return f(a) ? me : NONE;
|
|
447
|
-
},
|
|
448
|
-
toArray: function () {
|
|
449
|
-
return [a];
|
|
450
|
-
},
|
|
451
|
-
toString: function () {
|
|
452
|
-
return 'some(' + a + ')';
|
|
453
|
-
}
|
|
454
|
-
};
|
|
455
|
-
return me;
|
|
456
|
-
};
|
|
457
|
-
var from = function (value) {
|
|
458
|
-
return value === null || value === undefined ? NONE : some(value);
|
|
459
|
-
};
|
|
460
|
-
var Optional = {
|
|
461
|
-
some: some,
|
|
462
|
-
none: none,
|
|
463
|
-
from: from
|
|
464
|
-
};
|
|
465
|
-
|
|
466
|
-
var map = function (xs, f) {
|
|
467
|
-
var len = xs.length;
|
|
468
|
-
var r = new Array(len);
|
|
469
|
-
for (var i = 0; i < len; i++) {
|
|
470
|
-
var x = xs[i];
|
|
471
|
-
r[i] = f(x, i);
|
|
472
|
-
}
|
|
473
|
-
return r;
|
|
474
|
-
};
|
|
475
|
-
var each = function (xs, f) {
|
|
476
|
-
for (var i = 0, len = xs.length; i < len; i++) {
|
|
477
|
-
var x = xs[i];
|
|
478
|
-
f(x, i);
|
|
479
|
-
}
|
|
480
|
-
};
|
|
481
|
-
var filter = function (xs, pred) {
|
|
482
|
-
var r = [];
|
|
483
|
-
for (var i = 0, len = xs.length; i < len; i++) {
|
|
484
|
-
var x = xs[i];
|
|
485
|
-
if (pred(x, i)) {
|
|
486
|
-
r.push(x);
|
|
487
|
-
}
|
|
488
|
-
}
|
|
489
|
-
return r;
|
|
490
|
-
};
|
|
491
|
-
|
|
492
|
-
var DOCUMENT = 9;
|
|
493
|
-
var DOCUMENT_FRAGMENT = 11;
|
|
494
|
-
var ELEMENT = 1;
|
|
495
|
-
var TEXT = 3;
|
|
496
|
-
|
|
497
|
-
var fromHtml = function (html, scope) {
|
|
498
|
-
var doc = scope || document;
|
|
499
|
-
var div = doc.createElement('div');
|
|
500
|
-
div.innerHTML = html;
|
|
501
|
-
if (!div.hasChildNodes() || div.childNodes.length > 1) {
|
|
502
|
-
console.error('HTML does not have a single root node', html);
|
|
503
|
-
throw new Error('HTML must have a single root node');
|
|
504
|
-
}
|
|
505
|
-
return fromDom(div.childNodes[0]);
|
|
506
|
-
};
|
|
507
|
-
var fromTag = function (tag, scope) {
|
|
508
|
-
var doc = scope || document;
|
|
509
|
-
var node = doc.createElement(tag);
|
|
510
|
-
return fromDom(node);
|
|
511
|
-
};
|
|
512
|
-
var fromText = function (text, scope) {
|
|
513
|
-
var doc = scope || document;
|
|
514
|
-
var node = doc.createTextNode(text);
|
|
515
|
-
return fromDom(node);
|
|
516
|
-
};
|
|
517
|
-
var fromDom = function (node) {
|
|
518
|
-
if (node === null || node === undefined) {
|
|
519
|
-
throw new Error('Node cannot be null or undefined');
|
|
520
|
-
}
|
|
521
|
-
return { dom: node };
|
|
522
|
-
};
|
|
523
|
-
var fromPoint = function (docElm, x, y) {
|
|
524
|
-
return Optional.from(docElm.dom.elementFromPoint(x, y)).map(fromDom);
|
|
525
|
-
};
|
|
526
|
-
var SugarElement = {
|
|
527
|
-
fromHtml: fromHtml,
|
|
528
|
-
fromTag: fromTag,
|
|
529
|
-
fromText: fromText,
|
|
530
|
-
fromDom: fromDom,
|
|
531
|
-
fromPoint: fromPoint
|
|
532
|
-
};
|
|
533
|
-
|
|
534
|
-
var is = function (element, selector) {
|
|
535
|
-
var dom = element.dom;
|
|
536
|
-
if (dom.nodeType !== ELEMENT) {
|
|
537
|
-
return false;
|
|
538
|
-
} else {
|
|
539
|
-
var elem = dom;
|
|
540
|
-
if (elem.matches !== undefined) {
|
|
541
|
-
return elem.matches(selector);
|
|
542
|
-
} else if (elem.msMatchesSelector !== undefined) {
|
|
543
|
-
return elem.msMatchesSelector(selector);
|
|
544
|
-
} else if (elem.webkitMatchesSelector !== undefined) {
|
|
545
|
-
return elem.webkitMatchesSelector(selector);
|
|
546
|
-
} else if (elem.mozMatchesSelector !== undefined) {
|
|
547
|
-
return elem.mozMatchesSelector(selector);
|
|
548
|
-
} else {
|
|
549
|
-
throw new Error('Browser lacks native selectors');
|
|
550
|
-
}
|
|
551
|
-
}
|
|
552
|
-
};
|
|
553
|
-
|
|
554
|
-
typeof window !== 'undefined' ? window : Function('return this;')();
|
|
555
|
-
|
|
556
|
-
var name = function (element) {
|
|
557
|
-
var r = element.dom.nodeName;
|
|
558
|
-
return r.toLowerCase();
|
|
559
|
-
};
|
|
560
|
-
var type = function (element) {
|
|
561
|
-
return element.dom.nodeType;
|
|
562
|
-
};
|
|
563
|
-
var isType = function (t) {
|
|
564
|
-
return function (element) {
|
|
565
|
-
return type(element) === t;
|
|
566
|
-
};
|
|
567
|
-
};
|
|
568
|
-
var isElement = isType(ELEMENT);
|
|
569
|
-
var isText = isType(TEXT);
|
|
570
|
-
var isDocument = isType(DOCUMENT);
|
|
571
|
-
var isDocumentFragment = isType(DOCUMENT_FRAGMENT);
|
|
572
|
-
var isTag = function (tag) {
|
|
573
|
-
return function (e) {
|
|
574
|
-
return isElement(e) && name(e) === tag;
|
|
575
|
-
};
|
|
576
|
-
};
|
|
577
|
-
|
|
578
|
-
var owner = function (element) {
|
|
579
|
-
return SugarElement.fromDom(element.dom.ownerDocument);
|
|
580
|
-
};
|
|
581
|
-
var documentOrOwner = function (dos) {
|
|
582
|
-
return isDocument(dos) ? dos : owner(dos);
|
|
583
|
-
};
|
|
584
|
-
var parent = function (element) {
|
|
585
|
-
return Optional.from(element.dom.parentNode).map(SugarElement.fromDom);
|
|
586
|
-
};
|
|
587
|
-
var children$2 = function (element) {
|
|
588
|
-
return map(element.dom.childNodes, SugarElement.fromDom);
|
|
589
|
-
};
|
|
590
|
-
|
|
591
|
-
var rawSet = function (dom, key, value) {
|
|
592
|
-
if (isString(value) || isBoolean(value) || isNumber(value)) {
|
|
593
|
-
dom.setAttribute(key, value + '');
|
|
594
|
-
} else {
|
|
595
|
-
console.error('Invalid call to Attribute.set. Key ', key, ':: Value ', value, ':: Element ', dom);
|
|
596
|
-
throw new Error('Attribute value was not simple');
|
|
597
|
-
}
|
|
598
|
-
};
|
|
599
|
-
var set = function (element, key, value) {
|
|
600
|
-
rawSet(element.dom, key, value);
|
|
601
|
-
};
|
|
602
|
-
var remove = function (element, key) {
|
|
603
|
-
element.dom.removeAttribute(key);
|
|
604
|
-
};
|
|
605
|
-
|
|
606
|
-
var isShadowRoot = function (dos) {
|
|
607
|
-
return isDocumentFragment(dos) && isNonNullable(dos.dom.host);
|
|
608
|
-
};
|
|
609
|
-
var supported = isFunction(Element.prototype.attachShadow) && isFunction(Node.prototype.getRootNode);
|
|
610
|
-
var getRootNode = supported ? function (e) {
|
|
611
|
-
return SugarElement.fromDom(e.dom.getRootNode());
|
|
612
|
-
} : documentOrOwner;
|
|
613
|
-
var getShadowRoot = function (e) {
|
|
614
|
-
var r = getRootNode(e);
|
|
615
|
-
return isShadowRoot(r) ? Optional.some(r) : Optional.none();
|
|
616
|
-
};
|
|
617
|
-
var getShadowHost = function (e) {
|
|
618
|
-
return SugarElement.fromDom(e.dom.host);
|
|
619
|
-
};
|
|
620
|
-
|
|
621
|
-
var inBody = function (element) {
|
|
622
|
-
var dom = isText(element) ? element.dom.parentNode : element.dom;
|
|
623
|
-
if (dom === undefined || dom === null || dom.ownerDocument === null) {
|
|
624
|
-
return false;
|
|
625
|
-
}
|
|
626
|
-
var doc = dom.ownerDocument;
|
|
627
|
-
return getShadowRoot(SugarElement.fromDom(dom)).fold(function () {
|
|
628
|
-
return doc.body.contains(dom);
|
|
629
|
-
}, compose1(inBody, getShadowHost));
|
|
630
|
-
};
|
|
631
|
-
|
|
632
|
-
var ancestor$1 = function (scope, predicate, isRoot) {
|
|
633
|
-
var element = scope.dom;
|
|
634
|
-
var stop = isFunction(isRoot) ? isRoot : never;
|
|
635
|
-
while (element.parentNode) {
|
|
636
|
-
element = element.parentNode;
|
|
637
|
-
var el = SugarElement.fromDom(element);
|
|
638
|
-
if (predicate(el)) {
|
|
639
|
-
return Optional.some(el);
|
|
640
|
-
} else if (stop(el)) {
|
|
641
|
-
break;
|
|
642
|
-
}
|
|
643
|
-
}
|
|
644
|
-
return Optional.none();
|
|
645
|
-
};
|
|
646
|
-
|
|
647
|
-
var ancestor = function (scope, selector, isRoot) {
|
|
648
|
-
return ancestor$1(scope, function (e) {
|
|
649
|
-
return is(e, selector);
|
|
650
|
-
}, isRoot);
|
|
651
|
-
};
|
|
652
|
-
|
|
653
|
-
var isSupported = function (dom) {
|
|
654
|
-
return dom.style !== undefined && isFunction(dom.style.getPropertyValue);
|
|
655
|
-
};
|
|
656
|
-
|
|
657
|
-
var get = function (element, property) {
|
|
658
|
-
var dom = element.dom;
|
|
659
|
-
var styles = window.getComputedStyle(dom);
|
|
660
|
-
var r = styles.getPropertyValue(property);
|
|
661
|
-
return r === '' && !inBody(element) ? getUnsafeProperty(dom, property) : r;
|
|
662
|
-
};
|
|
663
|
-
var getUnsafeProperty = function (dom, property) {
|
|
664
|
-
return isSupported(dom) ? dom.style.getPropertyValue(property) : '';
|
|
665
|
-
};
|
|
666
|
-
|
|
667
|
-
var getDirection = function (element) {
|
|
668
|
-
return get(element, 'direction') === 'rtl' ? 'rtl' : 'ltr';
|
|
669
|
-
};
|
|
670
|
-
|
|
671
|
-
var children$1 = function (scope, predicate) {
|
|
672
|
-
return filter(children$2(scope), predicate);
|
|
673
|
-
};
|
|
674
|
-
|
|
675
|
-
var children = function (scope, selector) {
|
|
676
|
-
return children$1(scope, function (e) {
|
|
677
|
-
return is(e, selector);
|
|
678
|
-
});
|
|
679
|
-
};
|
|
680
|
-
|
|
681
|
-
var getParentElement = function (element) {
|
|
682
|
-
return parent(element).filter(isElement);
|
|
683
|
-
};
|
|
684
|
-
var getNormalizedBlock = function (element, isListItem) {
|
|
685
|
-
var normalizedElement = isListItem ? ancestor(element, 'ol,ul') : Optional.some(element);
|
|
686
|
-
return normalizedElement.getOr(element);
|
|
687
|
-
};
|
|
688
|
-
var isListItem = isTag('li');
|
|
689
|
-
var setDir = function (editor, dir) {
|
|
690
|
-
var selectedBlocks = editor.selection.getSelectedBlocks();
|
|
691
|
-
if (selectedBlocks.length > 0) {
|
|
692
|
-
each(selectedBlocks, function (block) {
|
|
693
|
-
var blockElement = SugarElement.fromDom(block);
|
|
694
|
-
var isBlockElementListItem = isListItem(blockElement);
|
|
695
|
-
var normalizedBlock = getNormalizedBlock(blockElement, isBlockElementListItem);
|
|
696
|
-
var normalizedBlockParent = getParentElement(normalizedBlock);
|
|
697
|
-
normalizedBlockParent.each(function (parent) {
|
|
698
|
-
var parentDirection = getDirection(parent);
|
|
699
|
-
if (parentDirection !== dir) {
|
|
700
|
-
set(normalizedBlock, 'dir', dir);
|
|
701
|
-
} else if (getDirection(normalizedBlock) !== dir) {
|
|
702
|
-
remove(normalizedBlock, 'dir');
|
|
703
|
-
}
|
|
704
|
-
if (isBlockElementListItem) {
|
|
705
|
-
var listItems = children(normalizedBlock, 'li[dir]');
|
|
706
|
-
each(listItems, function (listItem) {
|
|
707
|
-
return remove(listItem, 'dir');
|
|
708
|
-
});
|
|
709
|
-
}
|
|
710
|
-
});
|
|
711
|
-
});
|
|
712
|
-
editor.nodeChanged();
|
|
713
|
-
}
|
|
714
|
-
};
|
|
715
|
-
|
|
716
|
-
var register$1 = function (editor) {
|
|
717
|
-
editor.addCommand('mceDirectionLTR', function () {
|
|
718
|
-
setDir(editor, 'ltr');
|
|
719
|
-
});
|
|
720
|
-
editor.addCommand('mceDirectionRTL', function () {
|
|
721
|
-
setDir(editor, 'rtl');
|
|
722
|
-
});
|
|
723
|
-
};
|
|
724
|
-
|
|
725
|
-
var getNodeChangeHandler = function (editor, dir) {
|
|
726
|
-
return function (api) {
|
|
727
|
-
var nodeChangeHandler = function (e) {
|
|
728
|
-
var element = SugarElement.fromDom(e.element);
|
|
729
|
-
api.setActive(getDirection(element) === dir);
|
|
730
|
-
};
|
|
731
|
-
editor.on('NodeChange', nodeChangeHandler);
|
|
732
|
-
return function () {
|
|
733
|
-
return editor.off('NodeChange', nodeChangeHandler);
|
|
734
|
-
};
|
|
735
|
-
};
|
|
736
|
-
};
|
|
737
|
-
var register = function (editor) {
|
|
738
|
-
editor.ui.registry.addToggleButton('ltr', {
|
|
739
|
-
tooltip: 'Left to right',
|
|
740
|
-
icon: 'ltr',
|
|
741
|
-
onAction: function () {
|
|
742
|
-
return editor.execCommand('mceDirectionLTR');
|
|
743
|
-
},
|
|
744
|
-
onSetup: getNodeChangeHandler(editor, 'ltr')
|
|
745
|
-
});
|
|
746
|
-
editor.ui.registry.addToggleButton('rtl', {
|
|
747
|
-
tooltip: 'Right to left',
|
|
748
|
-
icon: 'rtl',
|
|
749
|
-
onAction: function () {
|
|
750
|
-
return editor.execCommand('mceDirectionRTL');
|
|
751
|
-
},
|
|
752
|
-
onSetup: getNodeChangeHandler(editor, 'rtl')
|
|
753
|
-
});
|
|
754
|
-
};
|
|
755
|
-
|
|
756
|
-
function Plugin () {
|
|
757
|
-
global.add('directionality', function (editor) {
|
|
758
|
-
register$1(editor);
|
|
759
|
-
register(editor);
|
|
760
|
-
});
|
|
761
|
-
}
|
|
762
|
-
|
|
763
|
-
Plugin();
|
|
764
|
-
|
|
765
|
-
}());
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
/***/ }),
|
|
769
|
-
|
|
770
|
-
/***/ "f034":
|
|
771
|
-
/***/ (function(module, exports) {
|
|
772
|
-
|
|
773
|
-
/**
|
|
774
|
-
* Copyright (c) Tiny Technologies, Inc. All rights reserved.
|
|
775
|
-
* Licensed under the LGPL or a commercial license.
|
|
776
|
-
* For LGPL see License.txt in the project root for license information.
|
|
777
|
-
* For commercial licenses see https://www.tiny.cloud/
|
|
778
|
-
*
|
|
779
|
-
* Version: 5.10.7 (2022-12-06)
|
|
780
|
-
*/
|
|
781
|
-
(function () {
|
|
782
|
-
'use strict';
|
|
783
|
-
|
|
784
|
-
var Cell = function (initial) {
|
|
785
|
-
var value = initial;
|
|
786
|
-
var get = function () {
|
|
787
|
-
return value;
|
|
788
|
-
};
|
|
789
|
-
var set = function (v) {
|
|
790
|
-
value = v;
|
|
791
|
-
};
|
|
792
|
-
return {
|
|
793
|
-
get: get,
|
|
794
|
-
set: set
|
|
795
|
-
};
|
|
796
|
-
};
|
|
797
|
-
|
|
798
|
-
var global$3 = tinymce.util.Tools.resolve('tinymce.PluginManager');
|
|
799
|
-
|
|
800
|
-
var get$5 = function (fullscreenState) {
|
|
801
|
-
return {
|
|
802
|
-
isFullscreen: function () {
|
|
803
|
-
return fullscreenState.get() !== null;
|
|
804
|
-
}
|
|
805
|
-
};
|
|
806
|
-
};
|
|
807
|
-
|
|
808
|
-
var typeOf = function (x) {
|
|
809
|
-
var t = typeof x;
|
|
810
|
-
if (x === null) {
|
|
811
|
-
return 'null';
|
|
812
|
-
} else if (t === 'object' && (Array.prototype.isPrototypeOf(x) || x.constructor && x.constructor.name === 'Array')) {
|
|
813
|
-
return 'array';
|
|
814
|
-
} else if (t === 'object' && (String.prototype.isPrototypeOf(x) || x.constructor && x.constructor.name === 'String')) {
|
|
815
|
-
return 'string';
|
|
816
|
-
} else {
|
|
817
|
-
return t;
|
|
818
|
-
}
|
|
819
|
-
};
|
|
820
|
-
var isType$1 = function (type) {
|
|
821
|
-
return function (value) {
|
|
822
|
-
return typeOf(value) === type;
|
|
823
|
-
};
|
|
824
|
-
};
|
|
825
|
-
var isSimpleType = function (type) {
|
|
826
|
-
return function (value) {
|
|
827
|
-
return typeof value === type;
|
|
828
|
-
};
|
|
829
|
-
};
|
|
830
|
-
var isString = isType$1('string');
|
|
831
|
-
var isArray = isType$1('array');
|
|
832
|
-
var isBoolean = isSimpleType('boolean');
|
|
833
|
-
var isNullable = function (a) {
|
|
834
|
-
return a === null || a === undefined;
|
|
835
|
-
};
|
|
836
|
-
var isNonNullable = function (a) {
|
|
837
|
-
return !isNullable(a);
|
|
838
|
-
};
|
|
839
|
-
var isFunction = isSimpleType('function');
|
|
840
|
-
var isNumber = isSimpleType('number');
|
|
841
|
-
|
|
842
|
-
var noop = function () {
|
|
843
|
-
};
|
|
844
|
-
var compose = function (fa, fb) {
|
|
845
|
-
return function () {
|
|
846
|
-
var args = [];
|
|
847
|
-
for (var _i = 0; _i < arguments.length; _i++) {
|
|
848
|
-
args[_i] = arguments[_i];
|
|
849
|
-
}
|
|
850
|
-
return fa(fb.apply(null, args));
|
|
851
|
-
};
|
|
852
|
-
};
|
|
853
|
-
var compose1 = function (fbc, fab) {
|
|
854
|
-
return function (a) {
|
|
855
|
-
return fbc(fab(a));
|
|
856
|
-
};
|
|
857
|
-
};
|
|
858
|
-
var constant = function (value) {
|
|
859
|
-
return function () {
|
|
860
|
-
return value;
|
|
861
|
-
};
|
|
862
|
-
};
|
|
863
|
-
var identity = function (x) {
|
|
864
|
-
return x;
|
|
865
|
-
};
|
|
866
|
-
function curry(fn) {
|
|
867
|
-
var initialArgs = [];
|
|
868
|
-
for (var _i = 1; _i < arguments.length; _i++) {
|
|
869
|
-
initialArgs[_i - 1] = arguments[_i];
|
|
870
|
-
}
|
|
871
|
-
return function () {
|
|
872
|
-
var restArgs = [];
|
|
873
|
-
for (var _i = 0; _i < arguments.length; _i++) {
|
|
874
|
-
restArgs[_i] = arguments[_i];
|
|
875
|
-
}
|
|
876
|
-
var all = initialArgs.concat(restArgs);
|
|
877
|
-
return fn.apply(null, all);
|
|
878
|
-
};
|
|
879
|
-
}
|
|
880
|
-
var never = constant(false);
|
|
881
|
-
var always = constant(true);
|
|
882
|
-
|
|
883
|
-
var none = function () {
|
|
884
|
-
return NONE;
|
|
885
|
-
};
|
|
886
|
-
var NONE = function () {
|
|
887
|
-
var call = function (thunk) {
|
|
888
|
-
return thunk();
|
|
889
|
-
};
|
|
890
|
-
var id = identity;
|
|
891
|
-
var me = {
|
|
892
|
-
fold: function (n, _s) {
|
|
893
|
-
return n();
|
|
894
|
-
},
|
|
895
|
-
isSome: never,
|
|
896
|
-
isNone: always,
|
|
897
|
-
getOr: id,
|
|
898
|
-
getOrThunk: call,
|
|
899
|
-
getOrDie: function (msg) {
|
|
900
|
-
throw new Error(msg || 'error: getOrDie called on none.');
|
|
901
|
-
},
|
|
902
|
-
getOrNull: constant(null),
|
|
903
|
-
getOrUndefined: constant(undefined),
|
|
904
|
-
or: id,
|
|
905
|
-
orThunk: call,
|
|
906
|
-
map: none,
|
|
907
|
-
each: noop,
|
|
908
|
-
bind: none,
|
|
909
|
-
exists: never,
|
|
910
|
-
forall: always,
|
|
911
|
-
filter: function () {
|
|
912
|
-
return none();
|
|
913
|
-
},
|
|
914
|
-
toArray: function () {
|
|
915
|
-
return [];
|
|
916
|
-
},
|
|
917
|
-
toString: constant('none()')
|
|
918
|
-
};
|
|
919
|
-
return me;
|
|
920
|
-
}();
|
|
921
|
-
var some = function (a) {
|
|
922
|
-
var constant_a = constant(a);
|
|
923
|
-
var self = function () {
|
|
924
|
-
return me;
|
|
925
|
-
};
|
|
926
|
-
var bind = function (f) {
|
|
927
|
-
return f(a);
|
|
928
|
-
};
|
|
929
|
-
var me = {
|
|
930
|
-
fold: function (n, s) {
|
|
931
|
-
return s(a);
|
|
932
|
-
},
|
|
933
|
-
isSome: always,
|
|
934
|
-
isNone: never,
|
|
935
|
-
getOr: constant_a,
|
|
936
|
-
getOrThunk: constant_a,
|
|
937
|
-
getOrDie: constant_a,
|
|
938
|
-
getOrNull: constant_a,
|
|
939
|
-
getOrUndefined: constant_a,
|
|
940
|
-
or: self,
|
|
941
|
-
orThunk: self,
|
|
942
|
-
map: function (f) {
|
|
943
|
-
return some(f(a));
|
|
944
|
-
},
|
|
945
|
-
each: function (f) {
|
|
946
|
-
f(a);
|
|
947
|
-
},
|
|
948
|
-
bind: bind,
|
|
949
|
-
exists: bind,
|
|
950
|
-
forall: bind,
|
|
951
|
-
filter: function (f) {
|
|
952
|
-
return f(a) ? me : NONE;
|
|
953
|
-
},
|
|
954
|
-
toArray: function () {
|
|
955
|
-
return [a];
|
|
956
|
-
},
|
|
957
|
-
toString: function () {
|
|
958
|
-
return 'some(' + a + ')';
|
|
959
|
-
}
|
|
960
|
-
};
|
|
961
|
-
return me;
|
|
962
|
-
};
|
|
963
|
-
var from = function (value) {
|
|
964
|
-
return value === null || value === undefined ? NONE : some(value);
|
|
965
|
-
};
|
|
966
|
-
var Optional = {
|
|
967
|
-
some: some,
|
|
968
|
-
none: none,
|
|
969
|
-
from: from
|
|
970
|
-
};
|
|
971
|
-
|
|
972
|
-
var __assign = function () {
|
|
973
|
-
__assign = Object.assign || function __assign(t) {
|
|
974
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
975
|
-
s = arguments[i];
|
|
976
|
-
for (var p in s)
|
|
977
|
-
if (Object.prototype.hasOwnProperty.call(s, p))
|
|
978
|
-
t[p] = s[p];
|
|
979
|
-
}
|
|
980
|
-
return t;
|
|
981
|
-
};
|
|
982
|
-
return __assign.apply(this, arguments);
|
|
983
|
-
};
|
|
984
|
-
|
|
985
|
-
var singleton = function (doRevoke) {
|
|
986
|
-
var subject = Cell(Optional.none());
|
|
987
|
-
var revoke = function () {
|
|
988
|
-
return subject.get().each(doRevoke);
|
|
989
|
-
};
|
|
990
|
-
var clear = function () {
|
|
991
|
-
revoke();
|
|
992
|
-
subject.set(Optional.none());
|
|
993
|
-
};
|
|
994
|
-
var isSet = function () {
|
|
995
|
-
return subject.get().isSome();
|
|
996
|
-
};
|
|
997
|
-
var get = function () {
|
|
998
|
-
return subject.get();
|
|
999
|
-
};
|
|
1000
|
-
var set = function (s) {
|
|
1001
|
-
revoke();
|
|
1002
|
-
subject.set(Optional.some(s));
|
|
1003
|
-
};
|
|
1004
|
-
return {
|
|
1005
|
-
clear: clear,
|
|
1006
|
-
isSet: isSet,
|
|
1007
|
-
get: get,
|
|
1008
|
-
set: set
|
|
1009
|
-
};
|
|
1010
|
-
};
|
|
1011
|
-
var unbindable = function () {
|
|
1012
|
-
return singleton(function (s) {
|
|
1013
|
-
return s.unbind();
|
|
1014
|
-
});
|
|
1015
|
-
};
|
|
1016
|
-
var value = function () {
|
|
1017
|
-
var subject = singleton(noop);
|
|
1018
|
-
var on = function (f) {
|
|
1019
|
-
return subject.get().each(f);
|
|
1020
|
-
};
|
|
1021
|
-
return __assign(__assign({}, subject), { on: on });
|
|
1022
|
-
};
|
|
1023
|
-
|
|
1024
|
-
var nativePush = Array.prototype.push;
|
|
1025
|
-
var map = function (xs, f) {
|
|
1026
|
-
var len = xs.length;
|
|
1027
|
-
var r = new Array(len);
|
|
1028
|
-
for (var i = 0; i < len; i++) {
|
|
1029
|
-
var x = xs[i];
|
|
1030
|
-
r[i] = f(x, i);
|
|
1031
|
-
}
|
|
1032
|
-
return r;
|
|
1033
|
-
};
|
|
1034
|
-
var each$1 = function (xs, f) {
|
|
1035
|
-
for (var i = 0, len = xs.length; i < len; i++) {
|
|
1036
|
-
var x = xs[i];
|
|
1037
|
-
f(x, i);
|
|
1038
|
-
}
|
|
1039
|
-
};
|
|
1040
|
-
var filter$1 = function (xs, pred) {
|
|
1041
|
-
var r = [];
|
|
1042
|
-
for (var i = 0, len = xs.length; i < len; i++) {
|
|
1043
|
-
var x = xs[i];
|
|
1044
|
-
if (pred(x, i)) {
|
|
1045
|
-
r.push(x);
|
|
1046
|
-
}
|
|
1047
|
-
}
|
|
1048
|
-
return r;
|
|
1049
|
-
};
|
|
1050
|
-
var findUntil = function (xs, pred, until) {
|
|
1051
|
-
for (var i = 0, len = xs.length; i < len; i++) {
|
|
1052
|
-
var x = xs[i];
|
|
1053
|
-
if (pred(x, i)) {
|
|
1054
|
-
return Optional.some(x);
|
|
1055
|
-
} else if (until(x, i)) {
|
|
1056
|
-
break;
|
|
1057
|
-
}
|
|
1058
|
-
}
|
|
1059
|
-
return Optional.none();
|
|
1060
|
-
};
|
|
1061
|
-
var find$1 = function (xs, pred) {
|
|
1062
|
-
return findUntil(xs, pred, never);
|
|
1063
|
-
};
|
|
1064
|
-
var flatten = function (xs) {
|
|
1065
|
-
var r = [];
|
|
1066
|
-
for (var i = 0, len = xs.length; i < len; ++i) {
|
|
1067
|
-
if (!isArray(xs[i])) {
|
|
1068
|
-
throw new Error('Arr.flatten item ' + i + ' was not an array, input: ' + xs);
|
|
1069
|
-
}
|
|
1070
|
-
nativePush.apply(r, xs[i]);
|
|
1071
|
-
}
|
|
1072
|
-
return r;
|
|
1073
|
-
};
|
|
1074
|
-
var bind$3 = function (xs, f) {
|
|
1075
|
-
return flatten(map(xs, f));
|
|
1076
|
-
};
|
|
1077
|
-
var get$4 = function (xs, i) {
|
|
1078
|
-
return i >= 0 && i < xs.length ? Optional.some(xs[i]) : Optional.none();
|
|
1079
|
-
};
|
|
1080
|
-
var head = function (xs) {
|
|
1081
|
-
return get$4(xs, 0);
|
|
1082
|
-
};
|
|
1083
|
-
var findMap = function (arr, f) {
|
|
1084
|
-
for (var i = 0; i < arr.length; i++) {
|
|
1085
|
-
var r = f(arr[i], i);
|
|
1086
|
-
if (r.isSome()) {
|
|
1087
|
-
return r;
|
|
1088
|
-
}
|
|
1089
|
-
}
|
|
1090
|
-
return Optional.none();
|
|
1091
|
-
};
|
|
1092
|
-
|
|
1093
|
-
var keys = Object.keys;
|
|
1094
|
-
var each = function (obj, f) {
|
|
1095
|
-
var props = keys(obj);
|
|
1096
|
-
for (var k = 0, len = props.length; k < len; k++) {
|
|
1097
|
-
var i = props[k];
|
|
1098
|
-
var x = obj[i];
|
|
1099
|
-
f(x, i);
|
|
1100
|
-
}
|
|
1101
|
-
};
|
|
1102
|
-
|
|
1103
|
-
var contains = function (str, substr) {
|
|
1104
|
-
return str.indexOf(substr) !== -1;
|
|
1105
|
-
};
|
|
1106
|
-
|
|
1107
|
-
var isSupported$1 = function (dom) {
|
|
1108
|
-
return dom.style !== undefined && isFunction(dom.style.getPropertyValue);
|
|
1109
|
-
};
|
|
1110
|
-
|
|
1111
|
-
var fromHtml = function (html, scope) {
|
|
1112
|
-
var doc = scope || document;
|
|
1113
|
-
var div = doc.createElement('div');
|
|
1114
|
-
div.innerHTML = html;
|
|
1115
|
-
if (!div.hasChildNodes() || div.childNodes.length > 1) {
|
|
1116
|
-
console.error('HTML does not have a single root node', html);
|
|
1117
|
-
throw new Error('HTML must have a single root node');
|
|
1118
|
-
}
|
|
1119
|
-
return fromDom(div.childNodes[0]);
|
|
1120
|
-
};
|
|
1121
|
-
var fromTag = function (tag, scope) {
|
|
1122
|
-
var doc = scope || document;
|
|
1123
|
-
var node = doc.createElement(tag);
|
|
1124
|
-
return fromDom(node);
|
|
1125
|
-
};
|
|
1126
|
-
var fromText = function (text, scope) {
|
|
1127
|
-
var doc = scope || document;
|
|
1128
|
-
var node = doc.createTextNode(text);
|
|
1129
|
-
return fromDom(node);
|
|
1130
|
-
};
|
|
1131
|
-
var fromDom = function (node) {
|
|
1132
|
-
if (node === null || node === undefined) {
|
|
1133
|
-
throw new Error('Node cannot be null or undefined');
|
|
1134
|
-
}
|
|
1135
|
-
return { dom: node };
|
|
1136
|
-
};
|
|
1137
|
-
var fromPoint = function (docElm, x, y) {
|
|
1138
|
-
return Optional.from(docElm.dom.elementFromPoint(x, y)).map(fromDom);
|
|
1139
|
-
};
|
|
1140
|
-
var SugarElement = {
|
|
1141
|
-
fromHtml: fromHtml,
|
|
1142
|
-
fromTag: fromTag,
|
|
1143
|
-
fromText: fromText,
|
|
1144
|
-
fromDom: fromDom,
|
|
1145
|
-
fromPoint: fromPoint
|
|
1146
|
-
};
|
|
1147
|
-
|
|
1148
|
-
typeof window !== 'undefined' ? window : Function('return this;')();
|
|
1149
|
-
|
|
1150
|
-
var DOCUMENT = 9;
|
|
1151
|
-
var DOCUMENT_FRAGMENT = 11;
|
|
1152
|
-
var ELEMENT = 1;
|
|
1153
|
-
var TEXT = 3;
|
|
1154
|
-
|
|
1155
|
-
var type = function (element) {
|
|
1156
|
-
return element.dom.nodeType;
|
|
1157
|
-
};
|
|
1158
|
-
var isType = function (t) {
|
|
1159
|
-
return function (element) {
|
|
1160
|
-
return type(element) === t;
|
|
1161
|
-
};
|
|
1162
|
-
};
|
|
1163
|
-
var isElement = isType(ELEMENT);
|
|
1164
|
-
var isText = isType(TEXT);
|
|
1165
|
-
var isDocument = isType(DOCUMENT);
|
|
1166
|
-
var isDocumentFragment = isType(DOCUMENT_FRAGMENT);
|
|
1167
|
-
|
|
1168
|
-
var cached = function (f) {
|
|
1169
|
-
var called = false;
|
|
1170
|
-
var r;
|
|
1171
|
-
return function () {
|
|
1172
|
-
var args = [];
|
|
1173
|
-
for (var _i = 0; _i < arguments.length; _i++) {
|
|
1174
|
-
args[_i] = arguments[_i];
|
|
1175
|
-
}
|
|
1176
|
-
if (!called) {
|
|
1177
|
-
called = true;
|
|
1178
|
-
r = f.apply(null, args);
|
|
1179
|
-
}
|
|
1180
|
-
return r;
|
|
1181
|
-
};
|
|
1182
|
-
};
|
|
1183
|
-
|
|
1184
|
-
var DeviceType = function (os, browser, userAgent, mediaMatch) {
|
|
1185
|
-
var isiPad = os.isiOS() && /ipad/i.test(userAgent) === true;
|
|
1186
|
-
var isiPhone = os.isiOS() && !isiPad;
|
|
1187
|
-
var isMobile = os.isiOS() || os.isAndroid();
|
|
1188
|
-
var isTouch = isMobile || mediaMatch('(pointer:coarse)');
|
|
1189
|
-
var isTablet = isiPad || !isiPhone && isMobile && mediaMatch('(min-device-width:768px)');
|
|
1190
|
-
var isPhone = isiPhone || isMobile && !isTablet;
|
|
1191
|
-
var iOSwebview = browser.isSafari() && os.isiOS() && /safari/i.test(userAgent) === false;
|
|
1192
|
-
var isDesktop = !isPhone && !isTablet && !iOSwebview;
|
|
1193
|
-
return {
|
|
1194
|
-
isiPad: constant(isiPad),
|
|
1195
|
-
isiPhone: constant(isiPhone),
|
|
1196
|
-
isTablet: constant(isTablet),
|
|
1197
|
-
isPhone: constant(isPhone),
|
|
1198
|
-
isTouch: constant(isTouch),
|
|
1199
|
-
isAndroid: os.isAndroid,
|
|
1200
|
-
isiOS: os.isiOS,
|
|
1201
|
-
isWebView: constant(iOSwebview),
|
|
1202
|
-
isDesktop: constant(isDesktop)
|
|
1203
|
-
};
|
|
1204
|
-
};
|
|
1205
|
-
|
|
1206
|
-
var firstMatch = function (regexes, s) {
|
|
1207
|
-
for (var i = 0; i < regexes.length; i++) {
|
|
1208
|
-
var x = regexes[i];
|
|
1209
|
-
if (x.test(s)) {
|
|
1210
|
-
return x;
|
|
1211
|
-
}
|
|
1212
|
-
}
|
|
1213
|
-
return undefined;
|
|
1214
|
-
};
|
|
1215
|
-
var find = function (regexes, agent) {
|
|
1216
|
-
var r = firstMatch(regexes, agent);
|
|
1217
|
-
if (!r) {
|
|
1218
|
-
return {
|
|
1219
|
-
major: 0,
|
|
1220
|
-
minor: 0
|
|
1221
|
-
};
|
|
1222
|
-
}
|
|
1223
|
-
var group = function (i) {
|
|
1224
|
-
return Number(agent.replace(r, '$' + i));
|
|
1225
|
-
};
|
|
1226
|
-
return nu$2(group(1), group(2));
|
|
1227
|
-
};
|
|
1228
|
-
var detect$3 = function (versionRegexes, agent) {
|
|
1229
|
-
var cleanedAgent = String(agent).toLowerCase();
|
|
1230
|
-
if (versionRegexes.length === 0) {
|
|
1231
|
-
return unknown$2();
|
|
1232
|
-
}
|
|
1233
|
-
return find(versionRegexes, cleanedAgent);
|
|
1234
|
-
};
|
|
1235
|
-
var unknown$2 = function () {
|
|
1236
|
-
return nu$2(0, 0);
|
|
1237
|
-
};
|
|
1238
|
-
var nu$2 = function (major, minor) {
|
|
1239
|
-
return {
|
|
1240
|
-
major: major,
|
|
1241
|
-
minor: minor
|
|
1242
|
-
};
|
|
1243
|
-
};
|
|
1244
|
-
var Version = {
|
|
1245
|
-
nu: nu$2,
|
|
1246
|
-
detect: detect$3,
|
|
1247
|
-
unknown: unknown$2
|
|
1248
|
-
};
|
|
1249
|
-
|
|
1250
|
-
var detectBrowser$1 = function (browsers, userAgentData) {
|
|
1251
|
-
return findMap(userAgentData.brands, function (uaBrand) {
|
|
1252
|
-
var lcBrand = uaBrand.brand.toLowerCase();
|
|
1253
|
-
return find$1(browsers, function (browser) {
|
|
1254
|
-
var _a;
|
|
1255
|
-
return lcBrand === ((_a = browser.brand) === null || _a === void 0 ? void 0 : _a.toLowerCase());
|
|
1256
|
-
}).map(function (info) {
|
|
1257
|
-
return {
|
|
1258
|
-
current: info.name,
|
|
1259
|
-
version: Version.nu(parseInt(uaBrand.version, 10), 0)
|
|
1260
|
-
};
|
|
1261
|
-
});
|
|
1262
|
-
});
|
|
1263
|
-
};
|
|
1264
|
-
|
|
1265
|
-
var detect$2 = function (candidates, userAgent) {
|
|
1266
|
-
var agent = String(userAgent).toLowerCase();
|
|
1267
|
-
return find$1(candidates, function (candidate) {
|
|
1268
|
-
return candidate.search(agent);
|
|
1269
|
-
});
|
|
1270
|
-
};
|
|
1271
|
-
var detectBrowser = function (browsers, userAgent) {
|
|
1272
|
-
return detect$2(browsers, userAgent).map(function (browser) {
|
|
1273
|
-
var version = Version.detect(browser.versionRegexes, userAgent);
|
|
1274
|
-
return {
|
|
1275
|
-
current: browser.name,
|
|
1276
|
-
version: version
|
|
1277
|
-
};
|
|
1278
|
-
});
|
|
1279
|
-
};
|
|
1280
|
-
var detectOs = function (oses, userAgent) {
|
|
1281
|
-
return detect$2(oses, userAgent).map(function (os) {
|
|
1282
|
-
var version = Version.detect(os.versionRegexes, userAgent);
|
|
1283
|
-
return {
|
|
1284
|
-
current: os.name,
|
|
1285
|
-
version: version
|
|
1286
|
-
};
|
|
1287
|
-
});
|
|
1288
|
-
};
|
|
1289
|
-
|
|
1290
|
-
var normalVersionRegex = /.*?version\/\ ?([0-9]+)\.([0-9]+).*/;
|
|
1291
|
-
var checkContains = function (target) {
|
|
1292
|
-
return function (uastring) {
|
|
1293
|
-
return contains(uastring, target);
|
|
1294
|
-
};
|
|
1295
|
-
};
|
|
1296
|
-
var browsers = [
|
|
1297
|
-
{
|
|
1298
|
-
name: 'Edge',
|
|
1299
|
-
versionRegexes: [/.*?edge\/ ?([0-9]+)\.([0-9]+)$/],
|
|
1300
|
-
search: function (uastring) {
|
|
1301
|
-
return contains(uastring, 'edge/') && contains(uastring, 'chrome') && contains(uastring, 'safari') && contains(uastring, 'applewebkit');
|
|
1302
|
-
}
|
|
1303
|
-
},
|
|
1304
|
-
{
|
|
1305
|
-
name: 'Chrome',
|
|
1306
|
-
brand: 'Chromium',
|
|
1307
|
-
versionRegexes: [
|
|
1308
|
-
/.*?chrome\/([0-9]+)\.([0-9]+).*/,
|
|
1309
|
-
normalVersionRegex
|
|
1310
|
-
],
|
|
1311
|
-
search: function (uastring) {
|
|
1312
|
-
return contains(uastring, 'chrome') && !contains(uastring, 'chromeframe');
|
|
1313
|
-
}
|
|
1314
|
-
},
|
|
1315
|
-
{
|
|
1316
|
-
name: 'IE',
|
|
1317
|
-
versionRegexes: [
|
|
1318
|
-
/.*?msie\ ?([0-9]+)\.([0-9]+).*/,
|
|
1319
|
-
/.*?rv:([0-9]+)\.([0-9]+).*/
|
|
1320
|
-
],
|
|
1321
|
-
search: function (uastring) {
|
|
1322
|
-
return contains(uastring, 'msie') || contains(uastring, 'trident');
|
|
1323
|
-
}
|
|
1324
|
-
},
|
|
1325
|
-
{
|
|
1326
|
-
name: 'Opera',
|
|
1327
|
-
versionRegexes: [
|
|
1328
|
-
normalVersionRegex,
|
|
1329
|
-
/.*?opera\/([0-9]+)\.([0-9]+).*/
|
|
1330
|
-
],
|
|
1331
|
-
search: checkContains('opera')
|
|
1332
|
-
},
|
|
1333
|
-
{
|
|
1334
|
-
name: 'Firefox',
|
|
1335
|
-
versionRegexes: [/.*?firefox\/\ ?([0-9]+)\.([0-9]+).*/],
|
|
1336
|
-
search: checkContains('firefox')
|
|
1337
|
-
},
|
|
1338
|
-
{
|
|
1339
|
-
name: 'Safari',
|
|
1340
|
-
versionRegexes: [
|
|
1341
|
-
normalVersionRegex,
|
|
1342
|
-
/.*?cpu os ([0-9]+)_([0-9]+).*/
|
|
1343
|
-
],
|
|
1344
|
-
search: function (uastring) {
|
|
1345
|
-
return (contains(uastring, 'safari') || contains(uastring, 'mobile/')) && contains(uastring, 'applewebkit');
|
|
1346
|
-
}
|
|
1347
|
-
}
|
|
1348
|
-
];
|
|
1349
|
-
var oses = [
|
|
1350
|
-
{
|
|
1351
|
-
name: 'Windows',
|
|
1352
|
-
search: checkContains('win'),
|
|
1353
|
-
versionRegexes: [/.*?windows\ nt\ ?([0-9]+)\.([0-9]+).*/]
|
|
1354
|
-
},
|
|
1355
|
-
{
|
|
1356
|
-
name: 'iOS',
|
|
1357
|
-
search: function (uastring) {
|
|
1358
|
-
return contains(uastring, 'iphone') || contains(uastring, 'ipad');
|
|
1359
|
-
},
|
|
1360
|
-
versionRegexes: [
|
|
1361
|
-
/.*?version\/\ ?([0-9]+)\.([0-9]+).*/,
|
|
1362
|
-
/.*cpu os ([0-9]+)_([0-9]+).*/,
|
|
1363
|
-
/.*cpu iphone os ([0-9]+)_([0-9]+).*/
|
|
1364
|
-
]
|
|
1365
|
-
},
|
|
1366
|
-
{
|
|
1367
|
-
name: 'Android',
|
|
1368
|
-
search: checkContains('android'),
|
|
1369
|
-
versionRegexes: [/.*?android\ ?([0-9]+)\.([0-9]+).*/]
|
|
1370
|
-
},
|
|
1371
|
-
{
|
|
1372
|
-
name: 'OSX',
|
|
1373
|
-
search: checkContains('mac os x'),
|
|
1374
|
-
versionRegexes: [/.*?mac\ os\ x\ ?([0-9]+)_([0-9]+).*/]
|
|
1375
|
-
},
|
|
1376
|
-
{
|
|
1377
|
-
name: 'Linux',
|
|
1378
|
-
search: checkContains('linux'),
|
|
1379
|
-
versionRegexes: []
|
|
1380
|
-
},
|
|
1381
|
-
{
|
|
1382
|
-
name: 'Solaris',
|
|
1383
|
-
search: checkContains('sunos'),
|
|
1384
|
-
versionRegexes: []
|
|
1385
|
-
},
|
|
1386
|
-
{
|
|
1387
|
-
name: 'FreeBSD',
|
|
1388
|
-
search: checkContains('freebsd'),
|
|
1389
|
-
versionRegexes: []
|
|
1390
|
-
},
|
|
1391
|
-
{
|
|
1392
|
-
name: 'ChromeOS',
|
|
1393
|
-
search: checkContains('cros'),
|
|
1394
|
-
versionRegexes: [/.*?chrome\/([0-9]+)\.([0-9]+).*/]
|
|
1395
|
-
}
|
|
1396
|
-
];
|
|
1397
|
-
var PlatformInfo = {
|
|
1398
|
-
browsers: constant(browsers),
|
|
1399
|
-
oses: constant(oses)
|
|
1400
|
-
};
|
|
1401
|
-
|
|
1402
|
-
var edge = 'Edge';
|
|
1403
|
-
var chrome = 'Chrome';
|
|
1404
|
-
var ie = 'IE';
|
|
1405
|
-
var opera = 'Opera';
|
|
1406
|
-
var firefox = 'Firefox';
|
|
1407
|
-
var safari = 'Safari';
|
|
1408
|
-
var unknown$1 = function () {
|
|
1409
|
-
return nu$1({
|
|
1410
|
-
current: undefined,
|
|
1411
|
-
version: Version.unknown()
|
|
1412
|
-
});
|
|
1413
|
-
};
|
|
1414
|
-
var nu$1 = function (info) {
|
|
1415
|
-
var current = info.current;
|
|
1416
|
-
var version = info.version;
|
|
1417
|
-
var isBrowser = function (name) {
|
|
1418
|
-
return function () {
|
|
1419
|
-
return current === name;
|
|
1420
|
-
};
|
|
1421
|
-
};
|
|
1422
|
-
return {
|
|
1423
|
-
current: current,
|
|
1424
|
-
version: version,
|
|
1425
|
-
isEdge: isBrowser(edge),
|
|
1426
|
-
isChrome: isBrowser(chrome),
|
|
1427
|
-
isIE: isBrowser(ie),
|
|
1428
|
-
isOpera: isBrowser(opera),
|
|
1429
|
-
isFirefox: isBrowser(firefox),
|
|
1430
|
-
isSafari: isBrowser(safari)
|
|
1431
|
-
};
|
|
1432
|
-
};
|
|
1433
|
-
var Browser = {
|
|
1434
|
-
unknown: unknown$1,
|
|
1435
|
-
nu: nu$1,
|
|
1436
|
-
edge: constant(edge),
|
|
1437
|
-
chrome: constant(chrome),
|
|
1438
|
-
ie: constant(ie),
|
|
1439
|
-
opera: constant(opera),
|
|
1440
|
-
firefox: constant(firefox),
|
|
1441
|
-
safari: constant(safari)
|
|
1442
|
-
};
|
|
1443
|
-
|
|
1444
|
-
var windows = 'Windows';
|
|
1445
|
-
var ios = 'iOS';
|
|
1446
|
-
var android = 'Android';
|
|
1447
|
-
var linux = 'Linux';
|
|
1448
|
-
var osx = 'OSX';
|
|
1449
|
-
var solaris = 'Solaris';
|
|
1450
|
-
var freebsd = 'FreeBSD';
|
|
1451
|
-
var chromeos = 'ChromeOS';
|
|
1452
|
-
var unknown = function () {
|
|
1453
|
-
return nu({
|
|
1454
|
-
current: undefined,
|
|
1455
|
-
version: Version.unknown()
|
|
1456
|
-
});
|
|
1457
|
-
};
|
|
1458
|
-
var nu = function (info) {
|
|
1459
|
-
var current = info.current;
|
|
1460
|
-
var version = info.version;
|
|
1461
|
-
var isOS = function (name) {
|
|
1462
|
-
return function () {
|
|
1463
|
-
return current === name;
|
|
1464
|
-
};
|
|
1465
|
-
};
|
|
1466
|
-
return {
|
|
1467
|
-
current: current,
|
|
1468
|
-
version: version,
|
|
1469
|
-
isWindows: isOS(windows),
|
|
1470
|
-
isiOS: isOS(ios),
|
|
1471
|
-
isAndroid: isOS(android),
|
|
1472
|
-
isOSX: isOS(osx),
|
|
1473
|
-
isLinux: isOS(linux),
|
|
1474
|
-
isSolaris: isOS(solaris),
|
|
1475
|
-
isFreeBSD: isOS(freebsd),
|
|
1476
|
-
isChromeOS: isOS(chromeos)
|
|
1477
|
-
};
|
|
1478
|
-
};
|
|
1479
|
-
var OperatingSystem = {
|
|
1480
|
-
unknown: unknown,
|
|
1481
|
-
nu: nu,
|
|
1482
|
-
windows: constant(windows),
|
|
1483
|
-
ios: constant(ios),
|
|
1484
|
-
android: constant(android),
|
|
1485
|
-
linux: constant(linux),
|
|
1486
|
-
osx: constant(osx),
|
|
1487
|
-
solaris: constant(solaris),
|
|
1488
|
-
freebsd: constant(freebsd),
|
|
1489
|
-
chromeos: constant(chromeos)
|
|
1490
|
-
};
|
|
1491
|
-
|
|
1492
|
-
var detect$1 = function (userAgent, userAgentDataOpt, mediaMatch) {
|
|
1493
|
-
var browsers = PlatformInfo.browsers();
|
|
1494
|
-
var oses = PlatformInfo.oses();
|
|
1495
|
-
var browser = userAgentDataOpt.bind(function (userAgentData) {
|
|
1496
|
-
return detectBrowser$1(browsers, userAgentData);
|
|
1497
|
-
}).orThunk(function () {
|
|
1498
|
-
return detectBrowser(browsers, userAgent);
|
|
1499
|
-
}).fold(Browser.unknown, Browser.nu);
|
|
1500
|
-
var os = detectOs(oses, userAgent).fold(OperatingSystem.unknown, OperatingSystem.nu);
|
|
1501
|
-
var deviceType = DeviceType(os, browser, userAgent, mediaMatch);
|
|
1502
|
-
return {
|
|
1503
|
-
browser: browser,
|
|
1504
|
-
os: os,
|
|
1505
|
-
deviceType: deviceType
|
|
1506
|
-
};
|
|
1507
|
-
};
|
|
1508
|
-
var PlatformDetection = { detect: detect$1 };
|
|
1509
|
-
|
|
1510
|
-
var mediaMatch = function (query) {
|
|
1511
|
-
return window.matchMedia(query).matches;
|
|
1512
|
-
};
|
|
1513
|
-
var platform = cached(function () {
|
|
1514
|
-
return PlatformDetection.detect(navigator.userAgent, Optional.from(navigator.userAgentData), mediaMatch);
|
|
1515
|
-
});
|
|
1516
|
-
var detect = function () {
|
|
1517
|
-
return platform();
|
|
1518
|
-
};
|
|
1519
|
-
|
|
1520
|
-
var is = function (element, selector) {
|
|
1521
|
-
var dom = element.dom;
|
|
1522
|
-
if (dom.nodeType !== ELEMENT) {
|
|
1523
|
-
return false;
|
|
1524
|
-
} else {
|
|
1525
|
-
var elem = dom;
|
|
1526
|
-
if (elem.matches !== undefined) {
|
|
1527
|
-
return elem.matches(selector);
|
|
1528
|
-
} else if (elem.msMatchesSelector !== undefined) {
|
|
1529
|
-
return elem.msMatchesSelector(selector);
|
|
1530
|
-
} else if (elem.webkitMatchesSelector !== undefined) {
|
|
1531
|
-
return elem.webkitMatchesSelector(selector);
|
|
1532
|
-
} else if (elem.mozMatchesSelector !== undefined) {
|
|
1533
|
-
return elem.mozMatchesSelector(selector);
|
|
1534
|
-
} else {
|
|
1535
|
-
throw new Error('Browser lacks native selectors');
|
|
1536
|
-
}
|
|
1537
|
-
}
|
|
1538
|
-
};
|
|
1539
|
-
var bypassSelector = function (dom) {
|
|
1540
|
-
return dom.nodeType !== ELEMENT && dom.nodeType !== DOCUMENT && dom.nodeType !== DOCUMENT_FRAGMENT || dom.childElementCount === 0;
|
|
1541
|
-
};
|
|
1542
|
-
var all$1 = function (selector, scope) {
|
|
1543
|
-
var base = scope === undefined ? document : scope.dom;
|
|
1544
|
-
return bypassSelector(base) ? [] : map(base.querySelectorAll(selector), SugarElement.fromDom);
|
|
1545
|
-
};
|
|
1546
|
-
|
|
1547
|
-
var eq = function (e1, e2) {
|
|
1548
|
-
return e1.dom === e2.dom;
|
|
1549
|
-
};
|
|
1550
|
-
|
|
1551
|
-
var owner = function (element) {
|
|
1552
|
-
return SugarElement.fromDom(element.dom.ownerDocument);
|
|
1553
|
-
};
|
|
1554
|
-
var documentOrOwner = function (dos) {
|
|
1555
|
-
return isDocument(dos) ? dos : owner(dos);
|
|
1556
|
-
};
|
|
1557
|
-
var parent = function (element) {
|
|
1558
|
-
return Optional.from(element.dom.parentNode).map(SugarElement.fromDom);
|
|
1559
|
-
};
|
|
1560
|
-
var parents = function (element, isRoot) {
|
|
1561
|
-
var stop = isFunction(isRoot) ? isRoot : never;
|
|
1562
|
-
var dom = element.dom;
|
|
1563
|
-
var ret = [];
|
|
1564
|
-
while (dom.parentNode !== null && dom.parentNode !== undefined) {
|
|
1565
|
-
var rawParent = dom.parentNode;
|
|
1566
|
-
var p = SugarElement.fromDom(rawParent);
|
|
1567
|
-
ret.push(p);
|
|
1568
|
-
if (stop(p) === true) {
|
|
1569
|
-
break;
|
|
1570
|
-
} else {
|
|
1571
|
-
dom = rawParent;
|
|
1572
|
-
}
|
|
1573
|
-
}
|
|
1574
|
-
return ret;
|
|
1575
|
-
};
|
|
1576
|
-
var siblings$2 = function (element) {
|
|
1577
|
-
var filterSelf = function (elements) {
|
|
1578
|
-
return filter$1(elements, function (x) {
|
|
1579
|
-
return !eq(element, x);
|
|
1580
|
-
});
|
|
1581
|
-
};
|
|
1582
|
-
return parent(element).map(children).map(filterSelf).getOr([]);
|
|
1583
|
-
};
|
|
1584
|
-
var children = function (element) {
|
|
1585
|
-
return map(element.dom.childNodes, SugarElement.fromDom);
|
|
1586
|
-
};
|
|
1587
|
-
|
|
1588
|
-
var isShadowRoot = function (dos) {
|
|
1589
|
-
return isDocumentFragment(dos) && isNonNullable(dos.dom.host);
|
|
1590
|
-
};
|
|
1591
|
-
var supported = isFunction(Element.prototype.attachShadow) && isFunction(Node.prototype.getRootNode);
|
|
1592
|
-
var isSupported = constant(supported);
|
|
1593
|
-
var getRootNode = supported ? function (e) {
|
|
1594
|
-
return SugarElement.fromDom(e.dom.getRootNode());
|
|
1595
|
-
} : documentOrOwner;
|
|
1596
|
-
var getShadowRoot = function (e) {
|
|
1597
|
-
var r = getRootNode(e);
|
|
1598
|
-
return isShadowRoot(r) ? Optional.some(r) : Optional.none();
|
|
1599
|
-
};
|
|
1600
|
-
var getShadowHost = function (e) {
|
|
1601
|
-
return SugarElement.fromDom(e.dom.host);
|
|
1602
|
-
};
|
|
1603
|
-
var getOriginalEventTarget = function (event) {
|
|
1604
|
-
if (isSupported() && isNonNullable(event.target)) {
|
|
1605
|
-
var el = SugarElement.fromDom(event.target);
|
|
1606
|
-
if (isElement(el) && isOpenShadowHost(el)) {
|
|
1607
|
-
if (event.composed && event.composedPath) {
|
|
1608
|
-
var composedPath = event.composedPath();
|
|
1609
|
-
if (composedPath) {
|
|
1610
|
-
return head(composedPath);
|
|
1611
|
-
}
|
|
1612
|
-
}
|
|
1613
|
-
}
|
|
1614
|
-
}
|
|
1615
|
-
return Optional.from(event.target);
|
|
1616
|
-
};
|
|
1617
|
-
var isOpenShadowHost = function (element) {
|
|
1618
|
-
return isNonNullable(element.dom.shadowRoot);
|
|
1619
|
-
};
|
|
1620
|
-
|
|
1621
|
-
var inBody = function (element) {
|
|
1622
|
-
var dom = isText(element) ? element.dom.parentNode : element.dom;
|
|
1623
|
-
if (dom === undefined || dom === null || dom.ownerDocument === null) {
|
|
1624
|
-
return false;
|
|
1625
|
-
}
|
|
1626
|
-
var doc = dom.ownerDocument;
|
|
1627
|
-
return getShadowRoot(SugarElement.fromDom(dom)).fold(function () {
|
|
1628
|
-
return doc.body.contains(dom);
|
|
1629
|
-
}, compose1(inBody, getShadowHost));
|
|
1630
|
-
};
|
|
1631
|
-
var getBody = function (doc) {
|
|
1632
|
-
var b = doc.dom.body;
|
|
1633
|
-
if (b === null || b === undefined) {
|
|
1634
|
-
throw new Error('Body is not available yet');
|
|
1635
|
-
}
|
|
1636
|
-
return SugarElement.fromDom(b);
|
|
1637
|
-
};
|
|
1638
|
-
|
|
1639
|
-
var rawSet = function (dom, key, value) {
|
|
1640
|
-
if (isString(value) || isBoolean(value) || isNumber(value)) {
|
|
1641
|
-
dom.setAttribute(key, value + '');
|
|
1642
|
-
} else {
|
|
1643
|
-
console.error('Invalid call to Attribute.set. Key ', key, ':: Value ', value, ':: Element ', dom);
|
|
1644
|
-
throw new Error('Attribute value was not simple');
|
|
1645
|
-
}
|
|
1646
|
-
};
|
|
1647
|
-
var set = function (element, key, value) {
|
|
1648
|
-
rawSet(element.dom, key, value);
|
|
1649
|
-
};
|
|
1650
|
-
var get$3 = function (element, key) {
|
|
1651
|
-
var v = element.dom.getAttribute(key);
|
|
1652
|
-
return v === null ? undefined : v;
|
|
1653
|
-
};
|
|
1654
|
-
var remove = function (element, key) {
|
|
1655
|
-
element.dom.removeAttribute(key);
|
|
1656
|
-
};
|
|
1657
|
-
|
|
1658
|
-
var internalSet = function (dom, property, value) {
|
|
1659
|
-
if (!isString(value)) {
|
|
1660
|
-
console.error('Invalid call to CSS.set. Property ', property, ':: Value ', value, ':: Element ', dom);
|
|
1661
|
-
throw new Error('CSS value must be a string: ' + value);
|
|
1662
|
-
}
|
|
1663
|
-
if (isSupported$1(dom)) {
|
|
1664
|
-
dom.style.setProperty(property, value);
|
|
1665
|
-
}
|
|
1666
|
-
};
|
|
1667
|
-
var setAll = function (element, css) {
|
|
1668
|
-
var dom = element.dom;
|
|
1669
|
-
each(css, function (v, k) {
|
|
1670
|
-
internalSet(dom, k, v);
|
|
1671
|
-
});
|
|
1672
|
-
};
|
|
1673
|
-
var get$2 = function (element, property) {
|
|
1674
|
-
var dom = element.dom;
|
|
1675
|
-
var styles = window.getComputedStyle(dom);
|
|
1676
|
-
var r = styles.getPropertyValue(property);
|
|
1677
|
-
return r === '' && !inBody(element) ? getUnsafeProperty(dom, property) : r;
|
|
1678
|
-
};
|
|
1679
|
-
var getUnsafeProperty = function (dom, property) {
|
|
1680
|
-
return isSupported$1(dom) ? dom.style.getPropertyValue(property) : '';
|
|
1681
|
-
};
|
|
1682
|
-
|
|
1683
|
-
var mkEvent = function (target, x, y, stop, prevent, kill, raw) {
|
|
1684
|
-
return {
|
|
1685
|
-
target: target,
|
|
1686
|
-
x: x,
|
|
1687
|
-
y: y,
|
|
1688
|
-
stop: stop,
|
|
1689
|
-
prevent: prevent,
|
|
1690
|
-
kill: kill,
|
|
1691
|
-
raw: raw
|
|
1692
|
-
};
|
|
1693
|
-
};
|
|
1694
|
-
var fromRawEvent = function (rawEvent) {
|
|
1695
|
-
var target = SugarElement.fromDom(getOriginalEventTarget(rawEvent).getOr(rawEvent.target));
|
|
1696
|
-
var stop = function () {
|
|
1697
|
-
return rawEvent.stopPropagation();
|
|
1698
|
-
};
|
|
1699
|
-
var prevent = function () {
|
|
1700
|
-
return rawEvent.preventDefault();
|
|
1701
|
-
};
|
|
1702
|
-
var kill = compose(prevent, stop);
|
|
1703
|
-
return mkEvent(target, rawEvent.clientX, rawEvent.clientY, stop, prevent, kill, rawEvent);
|
|
1704
|
-
};
|
|
1705
|
-
var handle = function (filter, handler) {
|
|
1706
|
-
return function (rawEvent) {
|
|
1707
|
-
if (filter(rawEvent)) {
|
|
1708
|
-
handler(fromRawEvent(rawEvent));
|
|
1709
|
-
}
|
|
1710
|
-
};
|
|
1711
|
-
};
|
|
1712
|
-
var binder = function (element, event, filter, handler, useCapture) {
|
|
1713
|
-
var wrapped = handle(filter, handler);
|
|
1714
|
-
element.dom.addEventListener(event, wrapped, useCapture);
|
|
1715
|
-
return { unbind: curry(unbind, element, event, wrapped, useCapture) };
|
|
1716
|
-
};
|
|
1717
|
-
var bind$2 = function (element, event, filter, handler) {
|
|
1718
|
-
return binder(element, event, filter, handler, false);
|
|
1719
|
-
};
|
|
1720
|
-
var unbind = function (element, event, handler, useCapture) {
|
|
1721
|
-
element.dom.removeEventListener(event, handler, useCapture);
|
|
1722
|
-
};
|
|
1723
|
-
|
|
1724
|
-
var filter = always;
|
|
1725
|
-
var bind$1 = function (element, event, handler) {
|
|
1726
|
-
return bind$2(element, event, filter, handler);
|
|
1727
|
-
};
|
|
1728
|
-
|
|
1729
|
-
var r = function (left, top) {
|
|
1730
|
-
var translate = function (x, y) {
|
|
1731
|
-
return r(left + x, top + y);
|
|
1732
|
-
};
|
|
1733
|
-
return {
|
|
1734
|
-
left: left,
|
|
1735
|
-
top: top,
|
|
1736
|
-
translate: translate
|
|
1737
|
-
};
|
|
1738
|
-
};
|
|
1739
|
-
var SugarPosition = r;
|
|
1740
|
-
|
|
1741
|
-
var get$1 = function (_DOC) {
|
|
1742
|
-
var doc = _DOC !== undefined ? _DOC.dom : document;
|
|
1743
|
-
var x = doc.body.scrollLeft || doc.documentElement.scrollLeft;
|
|
1744
|
-
var y = doc.body.scrollTop || doc.documentElement.scrollTop;
|
|
1745
|
-
return SugarPosition(x, y);
|
|
1746
|
-
};
|
|
1747
|
-
|
|
1748
|
-
var get = function (_win) {
|
|
1749
|
-
var win = _win === undefined ? window : _win;
|
|
1750
|
-
if (detect().browser.isFirefox()) {
|
|
1751
|
-
return Optional.none();
|
|
1752
|
-
} else {
|
|
1753
|
-
return Optional.from(win['visualViewport']);
|
|
1754
|
-
}
|
|
1755
|
-
};
|
|
1756
|
-
var bounds = function (x, y, width, height) {
|
|
1757
|
-
return {
|
|
1758
|
-
x: x,
|
|
1759
|
-
y: y,
|
|
1760
|
-
width: width,
|
|
1761
|
-
height: height,
|
|
1762
|
-
right: x + width,
|
|
1763
|
-
bottom: y + height
|
|
1764
|
-
};
|
|
1765
|
-
};
|
|
1766
|
-
var getBounds = function (_win) {
|
|
1767
|
-
var win = _win === undefined ? window : _win;
|
|
1768
|
-
var doc = win.document;
|
|
1769
|
-
var scroll = get$1(SugarElement.fromDom(doc));
|
|
1770
|
-
return get(win).fold(function () {
|
|
1771
|
-
var html = win.document.documentElement;
|
|
1772
|
-
var width = html.clientWidth;
|
|
1773
|
-
var height = html.clientHeight;
|
|
1774
|
-
return bounds(scroll.left, scroll.top, width, height);
|
|
1775
|
-
}, function (visualViewport) {
|
|
1776
|
-
return bounds(Math.max(visualViewport.pageLeft, scroll.left), Math.max(visualViewport.pageTop, scroll.top), visualViewport.width, visualViewport.height);
|
|
1777
|
-
});
|
|
1778
|
-
};
|
|
1779
|
-
var bind = function (name, callback, _win) {
|
|
1780
|
-
return get(_win).map(function (visualViewport) {
|
|
1781
|
-
var handler = function (e) {
|
|
1782
|
-
return callback(fromRawEvent(e));
|
|
1783
|
-
};
|
|
1784
|
-
visualViewport.addEventListener(name, handler);
|
|
1785
|
-
return {
|
|
1786
|
-
unbind: function () {
|
|
1787
|
-
return visualViewport.removeEventListener(name, handler);
|
|
1788
|
-
}
|
|
1789
|
-
};
|
|
1790
|
-
}).getOrThunk(function () {
|
|
1791
|
-
return { unbind: noop };
|
|
1792
|
-
});
|
|
1793
|
-
};
|
|
1794
|
-
|
|
1795
|
-
var global$2 = tinymce.util.Tools.resolve('tinymce.dom.DOMUtils');
|
|
1796
|
-
|
|
1797
|
-
var global$1 = tinymce.util.Tools.resolve('tinymce.Env');
|
|
1798
|
-
|
|
1799
|
-
var global = tinymce.util.Tools.resolve('tinymce.util.Delay');
|
|
1800
|
-
|
|
1801
|
-
var fireFullscreenStateChanged = function (editor, state) {
|
|
1802
|
-
editor.fire('FullscreenStateChanged', { state: state });
|
|
1803
|
-
editor.fire('ResizeEditor');
|
|
1804
|
-
};
|
|
1805
|
-
|
|
1806
|
-
var getFullscreenNative = function (editor) {
|
|
1807
|
-
return editor.getParam('fullscreen_native', false, 'boolean');
|
|
1808
|
-
};
|
|
1809
|
-
|
|
1810
|
-
var getFullscreenRoot = function (editor) {
|
|
1811
|
-
var elem = SugarElement.fromDom(editor.getElement());
|
|
1812
|
-
return getShadowRoot(elem).map(getShadowHost).getOrThunk(function () {
|
|
1813
|
-
return getBody(owner(elem));
|
|
1814
|
-
});
|
|
1815
|
-
};
|
|
1816
|
-
var getFullscreenElement = function (root) {
|
|
1817
|
-
if (root.fullscreenElement !== undefined) {
|
|
1818
|
-
return root.fullscreenElement;
|
|
1819
|
-
} else if (root.msFullscreenElement !== undefined) {
|
|
1820
|
-
return root.msFullscreenElement;
|
|
1821
|
-
} else if (root.webkitFullscreenElement !== undefined) {
|
|
1822
|
-
return root.webkitFullscreenElement;
|
|
1823
|
-
} else {
|
|
1824
|
-
return null;
|
|
1825
|
-
}
|
|
1826
|
-
};
|
|
1827
|
-
var getFullscreenchangeEventName = function () {
|
|
1828
|
-
if (document.fullscreenElement !== undefined) {
|
|
1829
|
-
return 'fullscreenchange';
|
|
1830
|
-
} else if (document.msFullscreenElement !== undefined) {
|
|
1831
|
-
return 'MSFullscreenChange';
|
|
1832
|
-
} else if (document.webkitFullscreenElement !== undefined) {
|
|
1833
|
-
return 'webkitfullscreenchange';
|
|
1834
|
-
} else {
|
|
1835
|
-
return 'fullscreenchange';
|
|
1836
|
-
}
|
|
1837
|
-
};
|
|
1838
|
-
var requestFullscreen = function (sugarElem) {
|
|
1839
|
-
var elem = sugarElem.dom;
|
|
1840
|
-
if (elem.requestFullscreen) {
|
|
1841
|
-
elem.requestFullscreen();
|
|
1842
|
-
} else if (elem.msRequestFullscreen) {
|
|
1843
|
-
elem.msRequestFullscreen();
|
|
1844
|
-
} else if (elem.webkitRequestFullScreen) {
|
|
1845
|
-
elem.webkitRequestFullScreen();
|
|
1846
|
-
}
|
|
1847
|
-
};
|
|
1848
|
-
var exitFullscreen = function (sugarDoc) {
|
|
1849
|
-
var doc = sugarDoc.dom;
|
|
1850
|
-
if (doc.exitFullscreen) {
|
|
1851
|
-
doc.exitFullscreen();
|
|
1852
|
-
} else if (doc.msExitFullscreen) {
|
|
1853
|
-
doc.msExitFullscreen();
|
|
1854
|
-
} else if (doc.webkitCancelFullScreen) {
|
|
1855
|
-
doc.webkitCancelFullScreen();
|
|
1856
|
-
}
|
|
1857
|
-
};
|
|
1858
|
-
var isFullscreenElement = function (elem) {
|
|
1859
|
-
return elem.dom === getFullscreenElement(owner(elem).dom);
|
|
1860
|
-
};
|
|
1861
|
-
|
|
1862
|
-
var ancestors$1 = function (scope, predicate, isRoot) {
|
|
1863
|
-
return filter$1(parents(scope, isRoot), predicate);
|
|
1864
|
-
};
|
|
1865
|
-
var siblings$1 = function (scope, predicate) {
|
|
1866
|
-
return filter$1(siblings$2(scope), predicate);
|
|
1867
|
-
};
|
|
1868
|
-
|
|
1869
|
-
var all = function (selector) {
|
|
1870
|
-
return all$1(selector);
|
|
1871
|
-
};
|
|
1872
|
-
var ancestors = function (scope, selector, isRoot) {
|
|
1873
|
-
return ancestors$1(scope, function (e) {
|
|
1874
|
-
return is(e, selector);
|
|
1875
|
-
}, isRoot);
|
|
1876
|
-
};
|
|
1877
|
-
var siblings = function (scope, selector) {
|
|
1878
|
-
return siblings$1(scope, function (e) {
|
|
1879
|
-
return is(e, selector);
|
|
1880
|
-
});
|
|
1881
|
-
};
|
|
1882
|
-
|
|
1883
|
-
var attr = 'data-ephox-mobile-fullscreen-style';
|
|
1884
|
-
var siblingStyles = 'display:none!important;';
|
|
1885
|
-
var ancestorPosition = 'position:absolute!important;';
|
|
1886
|
-
var ancestorStyles = 'top:0!important;left:0!important;margin:0!important;padding:0!important;width:100%!important;height:100%!important;overflow:visible!important;';
|
|
1887
|
-
var bgFallback = 'background-color:rgb(255,255,255)!important;';
|
|
1888
|
-
var isAndroid = global$1.os.isAndroid();
|
|
1889
|
-
var matchColor = function (editorBody) {
|
|
1890
|
-
var color = get$2(editorBody, 'background-color');
|
|
1891
|
-
return color !== undefined && color !== '' ? 'background-color:' + color + '!important' : bgFallback;
|
|
1892
|
-
};
|
|
1893
|
-
var clobberStyles = function (dom, container, editorBody) {
|
|
1894
|
-
var gatherSiblings = function (element) {
|
|
1895
|
-
return siblings(element, '*:not(.tox-silver-sink)');
|
|
1896
|
-
};
|
|
1897
|
-
var clobber = function (clobberStyle) {
|
|
1898
|
-
return function (element) {
|
|
1899
|
-
var styles = get$3(element, 'style');
|
|
1900
|
-
var backup = styles === undefined ? 'no-styles' : styles.trim();
|
|
1901
|
-
if (backup === clobberStyle) {
|
|
1902
|
-
return;
|
|
1903
|
-
} else {
|
|
1904
|
-
set(element, attr, backup);
|
|
1905
|
-
setAll(element, dom.parseStyle(clobberStyle));
|
|
1906
|
-
}
|
|
1907
|
-
};
|
|
1908
|
-
};
|
|
1909
|
-
var ancestors$1 = ancestors(container, '*');
|
|
1910
|
-
var siblings$1 = bind$3(ancestors$1, gatherSiblings);
|
|
1911
|
-
var bgColor = matchColor(editorBody);
|
|
1912
|
-
each$1(siblings$1, clobber(siblingStyles));
|
|
1913
|
-
each$1(ancestors$1, clobber(ancestorPosition + ancestorStyles + bgColor));
|
|
1914
|
-
var containerStyles = isAndroid === true ? '' : ancestorPosition;
|
|
1915
|
-
clobber(containerStyles + ancestorStyles + bgColor)(container);
|
|
1916
|
-
};
|
|
1917
|
-
var restoreStyles = function (dom) {
|
|
1918
|
-
var clobberedEls = all('[' + attr + ']');
|
|
1919
|
-
each$1(clobberedEls, function (element) {
|
|
1920
|
-
var restore = get$3(element, attr);
|
|
1921
|
-
if (restore !== 'no-styles') {
|
|
1922
|
-
setAll(element, dom.parseStyle(restore));
|
|
1923
|
-
} else {
|
|
1924
|
-
remove(element, 'style');
|
|
1925
|
-
}
|
|
1926
|
-
remove(element, attr);
|
|
1927
|
-
});
|
|
1928
|
-
};
|
|
1929
|
-
|
|
1930
|
-
var DOM = global$2.DOM;
|
|
1931
|
-
var getScrollPos = function () {
|
|
1932
|
-
return getBounds(window);
|
|
1933
|
-
};
|
|
1934
|
-
var setScrollPos = function (pos) {
|
|
1935
|
-
return window.scrollTo(pos.x, pos.y);
|
|
1936
|
-
};
|
|
1937
|
-
var viewportUpdate = get().fold(function () {
|
|
1938
|
-
return {
|
|
1939
|
-
bind: noop,
|
|
1940
|
-
unbind: noop
|
|
1941
|
-
};
|
|
1942
|
-
}, function (visualViewport) {
|
|
1943
|
-
var editorContainer = value();
|
|
1944
|
-
var resizeBinder = unbindable();
|
|
1945
|
-
var scrollBinder = unbindable();
|
|
1946
|
-
var refreshScroll = function () {
|
|
1947
|
-
document.body.scrollTop = 0;
|
|
1948
|
-
document.documentElement.scrollTop = 0;
|
|
1949
|
-
};
|
|
1950
|
-
var refreshVisualViewport = function () {
|
|
1951
|
-
window.requestAnimationFrame(function () {
|
|
1952
|
-
editorContainer.on(function (container) {
|
|
1953
|
-
return setAll(container, {
|
|
1954
|
-
top: visualViewport.offsetTop + 'px',
|
|
1955
|
-
left: visualViewport.offsetLeft + 'px',
|
|
1956
|
-
height: visualViewport.height + 'px',
|
|
1957
|
-
width: visualViewport.width + 'px'
|
|
1958
|
-
});
|
|
1959
|
-
});
|
|
1960
|
-
});
|
|
1961
|
-
};
|
|
1962
|
-
var update = global.throttle(function () {
|
|
1963
|
-
refreshScroll();
|
|
1964
|
-
refreshVisualViewport();
|
|
1965
|
-
}, 50);
|
|
1966
|
-
var bind$1 = function (element) {
|
|
1967
|
-
editorContainer.set(element);
|
|
1968
|
-
update();
|
|
1969
|
-
resizeBinder.set(bind('resize', update));
|
|
1970
|
-
scrollBinder.set(bind('scroll', update));
|
|
1971
|
-
};
|
|
1972
|
-
var unbind = function () {
|
|
1973
|
-
editorContainer.on(function () {
|
|
1974
|
-
resizeBinder.clear();
|
|
1975
|
-
scrollBinder.clear();
|
|
1976
|
-
});
|
|
1977
|
-
editorContainer.clear();
|
|
1978
|
-
};
|
|
1979
|
-
return {
|
|
1980
|
-
bind: bind$1,
|
|
1981
|
-
unbind: unbind
|
|
1982
|
-
};
|
|
1983
|
-
});
|
|
1984
|
-
var toggleFullscreen = function (editor, fullscreenState) {
|
|
1985
|
-
var body = document.body;
|
|
1986
|
-
var documentElement = document.documentElement;
|
|
1987
|
-
var editorContainer = editor.getContainer();
|
|
1988
|
-
var editorContainerS = SugarElement.fromDom(editorContainer);
|
|
1989
|
-
var fullscreenRoot = getFullscreenRoot(editor);
|
|
1990
|
-
var fullscreenInfo = fullscreenState.get();
|
|
1991
|
-
var editorBody = SugarElement.fromDom(editor.getBody());
|
|
1992
|
-
var isTouch = global$1.deviceType.isTouch();
|
|
1993
|
-
var editorContainerStyle = editorContainer.style;
|
|
1994
|
-
var iframe = editor.iframeElement;
|
|
1995
|
-
var iframeStyle = iframe.style;
|
|
1996
|
-
var handleClasses = function (handler) {
|
|
1997
|
-
handler(body, 'tox-fullscreen');
|
|
1998
|
-
handler(documentElement, 'tox-fullscreen');
|
|
1999
|
-
handler(editorContainer, 'tox-fullscreen');
|
|
2000
|
-
getShadowRoot(editorContainerS).map(function (root) {
|
|
2001
|
-
return getShadowHost(root).dom;
|
|
2002
|
-
}).each(function (host) {
|
|
2003
|
-
handler(host, 'tox-fullscreen');
|
|
2004
|
-
handler(host, 'tox-shadowhost');
|
|
2005
|
-
});
|
|
2006
|
-
};
|
|
2007
|
-
var cleanup = function () {
|
|
2008
|
-
if (isTouch) {
|
|
2009
|
-
restoreStyles(editor.dom);
|
|
2010
|
-
}
|
|
2011
|
-
handleClasses(DOM.removeClass);
|
|
2012
|
-
viewportUpdate.unbind();
|
|
2013
|
-
Optional.from(fullscreenState.get()).each(function (info) {
|
|
2014
|
-
return info.fullscreenChangeHandler.unbind();
|
|
2015
|
-
});
|
|
2016
|
-
};
|
|
2017
|
-
if (!fullscreenInfo) {
|
|
2018
|
-
var fullscreenChangeHandler = bind$1(owner(fullscreenRoot), getFullscreenchangeEventName(), function (_evt) {
|
|
2019
|
-
if (getFullscreenNative(editor)) {
|
|
2020
|
-
if (!isFullscreenElement(fullscreenRoot) && fullscreenState.get() !== null) {
|
|
2021
|
-
toggleFullscreen(editor, fullscreenState);
|
|
2022
|
-
}
|
|
2023
|
-
}
|
|
2024
|
-
});
|
|
2025
|
-
var newFullScreenInfo = {
|
|
2026
|
-
scrollPos: getScrollPos(),
|
|
2027
|
-
containerWidth: editorContainerStyle.width,
|
|
2028
|
-
containerHeight: editorContainerStyle.height,
|
|
2029
|
-
containerTop: editorContainerStyle.top,
|
|
2030
|
-
containerLeft: editorContainerStyle.left,
|
|
2031
|
-
iframeWidth: iframeStyle.width,
|
|
2032
|
-
iframeHeight: iframeStyle.height,
|
|
2033
|
-
fullscreenChangeHandler: fullscreenChangeHandler
|
|
2034
|
-
};
|
|
2035
|
-
if (isTouch) {
|
|
2036
|
-
clobberStyles(editor.dom, editorContainerS, editorBody);
|
|
2037
|
-
}
|
|
2038
|
-
iframeStyle.width = iframeStyle.height = '100%';
|
|
2039
|
-
editorContainerStyle.width = editorContainerStyle.height = '';
|
|
2040
|
-
handleClasses(DOM.addClass);
|
|
2041
|
-
viewportUpdate.bind(editorContainerS);
|
|
2042
|
-
editor.on('remove', cleanup);
|
|
2043
|
-
fullscreenState.set(newFullScreenInfo);
|
|
2044
|
-
if (getFullscreenNative(editor)) {
|
|
2045
|
-
requestFullscreen(fullscreenRoot);
|
|
2046
|
-
}
|
|
2047
|
-
fireFullscreenStateChanged(editor, true);
|
|
2048
|
-
} else {
|
|
2049
|
-
fullscreenInfo.fullscreenChangeHandler.unbind();
|
|
2050
|
-
if (getFullscreenNative(editor) && isFullscreenElement(fullscreenRoot)) {
|
|
2051
|
-
exitFullscreen(owner(fullscreenRoot));
|
|
2052
|
-
}
|
|
2053
|
-
iframeStyle.width = fullscreenInfo.iframeWidth;
|
|
2054
|
-
iframeStyle.height = fullscreenInfo.iframeHeight;
|
|
2055
|
-
editorContainerStyle.width = fullscreenInfo.containerWidth;
|
|
2056
|
-
editorContainerStyle.height = fullscreenInfo.containerHeight;
|
|
2057
|
-
editorContainerStyle.top = fullscreenInfo.containerTop;
|
|
2058
|
-
editorContainerStyle.left = fullscreenInfo.containerLeft;
|
|
2059
|
-
cleanup();
|
|
2060
|
-
setScrollPos(fullscreenInfo.scrollPos);
|
|
2061
|
-
fullscreenState.set(null);
|
|
2062
|
-
fireFullscreenStateChanged(editor, false);
|
|
2063
|
-
editor.off('remove', cleanup);
|
|
2064
|
-
}
|
|
2065
|
-
};
|
|
2066
|
-
|
|
2067
|
-
var register$1 = function (editor, fullscreenState) {
|
|
2068
|
-
editor.addCommand('mceFullScreen', function () {
|
|
2069
|
-
toggleFullscreen(editor, fullscreenState);
|
|
2070
|
-
});
|
|
2071
|
-
};
|
|
2072
|
-
|
|
2073
|
-
var makeSetupHandler = function (editor, fullscreenState) {
|
|
2074
|
-
return function (api) {
|
|
2075
|
-
api.setActive(fullscreenState.get() !== null);
|
|
2076
|
-
var editorEventCallback = function (e) {
|
|
2077
|
-
return api.setActive(e.state);
|
|
2078
|
-
};
|
|
2079
|
-
editor.on('FullscreenStateChanged', editorEventCallback);
|
|
2080
|
-
return function () {
|
|
2081
|
-
return editor.off('FullscreenStateChanged', editorEventCallback);
|
|
2082
|
-
};
|
|
2083
|
-
};
|
|
2084
|
-
};
|
|
2085
|
-
var register = function (editor, fullscreenState) {
|
|
2086
|
-
var onAction = function () {
|
|
2087
|
-
return editor.execCommand('mceFullScreen');
|
|
2088
|
-
};
|
|
2089
|
-
editor.ui.registry.addToggleMenuItem('fullscreen', {
|
|
2090
|
-
text: 'Fullscreen',
|
|
2091
|
-
icon: 'fullscreen',
|
|
2092
|
-
shortcut: 'Meta+Shift+F',
|
|
2093
|
-
onAction: onAction,
|
|
2094
|
-
onSetup: makeSetupHandler(editor, fullscreenState)
|
|
2095
|
-
});
|
|
2096
|
-
editor.ui.registry.addToggleButton('fullscreen', {
|
|
2097
|
-
tooltip: 'Fullscreen',
|
|
2098
|
-
icon: 'fullscreen',
|
|
2099
|
-
onAction: onAction,
|
|
2100
|
-
onSetup: makeSetupHandler(editor, fullscreenState)
|
|
2101
|
-
});
|
|
2102
|
-
};
|
|
2103
|
-
|
|
2104
|
-
function Plugin () {
|
|
2105
|
-
global$3.add('fullscreen', function (editor) {
|
|
2106
|
-
var fullscreenState = Cell(null);
|
|
2107
|
-
if (editor.inline) {
|
|
2108
|
-
return get$5(fullscreenState);
|
|
2109
|
-
}
|
|
2110
|
-
register$1(editor, fullscreenState);
|
|
2111
|
-
register(editor, fullscreenState);
|
|
2112
|
-
editor.addShortcut('Meta+Shift+F', '', 'mceFullScreen');
|
|
2113
|
-
return get$5(fullscreenState);
|
|
2114
|
-
});
|
|
2115
|
-
}
|
|
2116
|
-
|
|
2117
|
-
Plugin();
|
|
2118
|
-
|
|
2119
|
-
}());
|
|
2120
|
-
|
|
2121
|
-
|
|
2122
|
-
/***/ })
|
|
2123
|
-
|
|
2124
|
-
}]);
|
|
2125
|
-
//# sourceMappingURL=super-ui.umd.yarn.tinymce~29bc5d46.js.map
|