jodit 3.6.16 → 3.7.2
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/.eslintrc.js +1 -1
- package/{ISSUE_TEMPLATE.md → .github/ISSUE_TEMPLATE.md} +0 -0
- package/{PULL_REQUEST_TEMPLATE.md → .github/PULL_REQUEST_TEMPLATE.md} +0 -0
- package/CHANGELOG.MD +76 -5
- package/build/jodit.css +23 -19
- package/build/jodit.es2018.css +22 -18
- package/build/jodit.es2018.en.css +22 -18
- package/build/jodit.es2018.en.js +153 -99
- package/build/jodit.es2018.en.min.css +1 -1
- package/build/jodit.es2018.en.min.js +2 -2
- package/build/jodit.es2018.js +153 -99
- package/build/jodit.es2018.min.css +1 -1
- package/build/jodit.es2018.min.js +2 -2
- package/build/jodit.js +884 -809
- package/build/jodit.min.css +2 -2
- package/build/jodit.min.js +2 -2
- package/package.json +24 -24
- package/src/core/async.ts +22 -8
- package/src/core/component/component.ts +4 -2
- package/src/core/component/view-component.ts +1 -1
- package/src/core/decorators/cache.ts +1 -1
- package/src/core/decorators/component.ts +1 -1
- package/src/core/decorators/debounce.ts +5 -4
- package/src/core/decorators/idle.ts +40 -0
- package/src/core/decorators/index.ts +1 -0
- package/src/core/decorators/nonenumerable.ts +1 -1
- package/src/core/decorators/spy.ts +2 -3
- package/src/core/decorators/watch.ts +9 -5
- package/src/core/events/events-native.ts +1 -1
- package/src/core/global.ts +7 -3
- package/src/core/helpers/checker/is-plain-object.ts +1 -2
- package/src/core/helpers/checker/is-url.ts +4 -1
- package/src/core/helpers/scroll-into-view.ts +1 -1
- package/src/core/helpers/size/position.ts +1 -22
- package/src/core/helpers/string/stringify.ts +2 -2
- package/src/core/helpers/type.ts +0 -44
- package/src/core/helpers/utils/utils.ts +1 -1
- package/src/core/plugin.ts +3 -1
- package/src/core/ui/button/button/button.ts +2 -2
- package/src/core/ui/button/group/group.ts +6 -4
- package/src/core/ui/element.ts +2 -2
- package/src/core/ui/form/block/block.ts +1 -1
- package/src/core/ui/form/form.ts +5 -5
- package/src/core/ui/form/inputs/area/area.ts +3 -3
- package/src/core/ui/form/inputs/checkbox/checkbox.ts +2 -2
- package/src/core/ui/form/inputs/file/file.ts +6 -4
- package/src/core/ui/form/inputs/input/input.ts +7 -5
- package/src/core/ui/form/inputs/select/select.ts +9 -7
- package/src/core/ui/list/group.ts +4 -4
- package/src/core/ui/list/list.ts +2 -2
- package/src/core/ui/popup/popup.ts +3 -3
- package/src/core/ui/progress-bar/progress-bar.ts +3 -3
- package/src/core/view/view-with-toolbar.ts +5 -2
- package/src/core/view/view.ts +2 -2
- package/src/jodit.ts +37 -15
- package/src/modules/context-menu/context-menu.ts +1 -1
- package/src/modules/dialog/dialog.ts +4 -4
- package/src/modules/file-browser/builders/context-menu.ts +1 -1
- package/src/modules/file-browser/data-provider.ts +1 -1
- package/src/modules/file-browser/file-browser.ts +3 -3
- package/src/modules/image-editor/image-editor.ts +1 -1
- package/src/modules/observer/observer.ts +1 -1
- package/src/modules/observer/snapshot.ts +1 -1
- package/src/modules/status-bar/status-bar.ts +1 -1
- package/src/modules/table.ts +3 -1
- package/src/modules/toolbar/button/button.ts +13 -10
- package/src/modules/toolbar/button/content.ts +3 -3
- package/src/modules/toolbar/collection/collection.ts +9 -6
- package/src/modules/toolbar/collection/editor-collection.ts +26 -4
- package/src/modules/uploader/uploader.ts +1 -1
- package/src/modules/widget/file-selector/file-selector.ts +1 -1
- package/src/plugins/about/about.ts +1 -1
- package/src/plugins/class-span/class-span.ts +3 -3
- package/src/plugins/clipboard/clipboard.ts +28 -24
- package/src/plugins/clipboard/paste/helpers.ts +5 -8
- package/src/plugins/clipboard/paste/paste.ts +3 -3
- package/src/plugins/fix/clean-html.ts +3 -3
- package/src/plugins/image/helpers.ts +1 -1
- package/src/plugins/inline-popup/inline-popup.ts +1 -1
- package/src/plugins/keyboard/delete.ts +1 -1
- package/src/plugins/keyboard/enter.ts +26 -26
- package/src/plugins/limit.ts +2 -2
- package/src/plugins/link/link.ts +3 -3
- package/src/plugins/media/video/index.ts +1 -1
- package/src/plugins/ordered-list.ts +64 -61
- package/src/plugins/redo-undo.ts +3 -3
- package/src/plugins/search/search.ts +2 -2
- package/src/plugins/select.ts +3 -2
- package/src/plugins/size/resize-handler.ts +2 -2
- package/src/plugins/size/size.ts +2 -2
- package/src/plugins/source/editor/engines/ace.ts +8 -8
- package/src/plugins/source/editor/engines/area.ts +15 -13
- package/src/plugins/source/source.ts +1 -1
- package/src/plugins/symbols/symbols.ts +3 -3
- package/src/plugins/table/config.ts +3 -1
- package/src/plugins/table/resize-cells.ts +21 -16
- package/src/plugins/table/select-cells.ts +44 -6
- package/src/plugins/table/table-keyboard-navigation.ts +134 -131
- package/src/plugins/table/table.less +24 -17
- package/src/types/async.d.ts +2 -0
- package/src/types/core.ts +13 -0
- package/src/types/index.d.ts +1 -0
- package/src/types/jodit.d.ts +2 -0
- package/test/tests/acceptance/editorTest.js +37 -0
- package/test/tests/acceptance/tableTest.js +23 -14
- package/tsconfig.json +1 -0
- package/webpack.config.js +1 -0
package/build/jodit.es2018.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* jodit - Jodit is awesome and usefully wysiwyg editor with filebrowser
|
|
3
3
|
* Author: Chupurnov <chupurnov@gmail.com> (https://xdsoft.net/)
|
|
4
|
-
* Version: v3.
|
|
4
|
+
* Version: v3.7.2
|
|
5
5
|
* Url: https://xdsoft.net/jodit/
|
|
6
6
|
* License(s): MIT
|
|
7
7
|
*/
|
|
@@ -648,7 +648,7 @@ class EventsNative {
|
|
|
648
648
|
}
|
|
649
649
|
getStore(subject) {
|
|
650
650
|
if (!subject) {
|
|
651
|
-
throw (0,type/* error */.
|
|
651
|
+
throw (0,type/* error */.v)('Need subject');
|
|
652
652
|
}
|
|
653
653
|
if (subject[this.__key] === undefined) {
|
|
654
654
|
const store = new EventHandlersStore();
|
|
@@ -710,10 +710,10 @@ class EventsNative {
|
|
|
710
710
|
}
|
|
711
711
|
const store = this.getStore(subject);
|
|
712
712
|
if (!(0,is_string/* isString */.H)(events) || events === '') {
|
|
713
|
-
throw (0,type/* error */.
|
|
713
|
+
throw (0,type/* error */.v)('Need events names');
|
|
714
714
|
}
|
|
715
715
|
if (!(0,is_function/* isFunction */.m)(callback)) {
|
|
716
|
-
throw (0,type/* error */.
|
|
716
|
+
throw (0,type/* error */.v)('Need event handler');
|
|
717
717
|
}
|
|
718
718
|
if ((0,is_array/* isArray */.k)(subject)) {
|
|
719
719
|
subject.forEach((subj) => {
|
|
@@ -738,7 +738,7 @@ class EventsNative {
|
|
|
738
738
|
}
|
|
739
739
|
this.eachEvent(events, (event, namespace) => {
|
|
740
740
|
if (event === '') {
|
|
741
|
-
throw (0,type/* error */.
|
|
741
|
+
throw (0,type/* error */.v)('Need event name');
|
|
742
742
|
}
|
|
743
743
|
if (store.indexOf(event, namespace, callback) === false) {
|
|
744
744
|
const block = {
|
|
@@ -850,7 +850,7 @@ class EventsNative {
|
|
|
850
850
|
? subjectOrEvents
|
|
851
851
|
: eventsList;
|
|
852
852
|
if (typeof events !== 'string') {
|
|
853
|
-
throw (0,type/* error */.
|
|
853
|
+
throw (0,type/* error */.v)('Need event names');
|
|
854
854
|
}
|
|
855
855
|
const store = this.getStore(subject);
|
|
856
856
|
this.eachEvent(events, (event, namespace) => {
|
|
@@ -888,7 +888,7 @@ class EventsNative {
|
|
|
888
888
|
: args;
|
|
889
889
|
const isDOMElement = (0,is_function/* isFunction */.m)(subject.dispatchEvent);
|
|
890
890
|
if (!isDOMElement && !(0,is_string/* isString */.H)(events)) {
|
|
891
|
-
throw (0,type/* error */.
|
|
891
|
+
throw (0,type/* error */.v)('Need events names');
|
|
892
892
|
}
|
|
893
893
|
const store = this.getStore(subject);
|
|
894
894
|
if (!(0,is_string/* isString */.H)(events) && isDOMElement) {
|
|
@@ -956,7 +956,7 @@ class EventsNative {
|
|
|
956
956
|
var tslib_es6 = __webpack_require__(36);
|
|
957
957
|
// EXTERNAL MODULE: ./src/core/helpers/index.ts + 32 modules
|
|
958
958
|
var helpers = __webpack_require__(8);
|
|
959
|
-
// EXTERNAL MODULE: ./src/core/decorators/index.ts +
|
|
959
|
+
// EXTERNAL MODULE: ./src/core/decorators/index.ts + 9 modules
|
|
960
960
|
var decorators = __webpack_require__(33);
|
|
961
961
|
;// CONCATENATED MODULE: ./src/core/events/observe-object.ts
|
|
962
962
|
/*!
|
|
@@ -1081,48 +1081,13 @@ class ObserveObject {
|
|
|
1081
1081
|
|
|
1082
1082
|
"use strict";
|
|
1083
1083
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
1084
|
-
/* harmony export */ "
|
|
1085
|
-
/* harmony export */ "dt": () => (/* binding */ type),
|
|
1086
|
-
/* harmony export */ "vU": () => (/* binding */ error)
|
|
1084
|
+
/* harmony export */ "v": () => (/* binding */ error)
|
|
1087
1085
|
/* harmony export */ });
|
|
1088
1086
|
/*!
|
|
1089
1087
|
* Jodit Editor (https://xdsoft.net/jodit/)
|
|
1090
1088
|
* Released under MIT see LICENSE.txt in the project root for license information.
|
|
1091
1089
|
* Copyright (c) 2013-2021 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
|
|
1092
1090
|
*/
|
|
1093
|
-
const class2type = {};
|
|
1094
|
-
const toString = class2type.toString;
|
|
1095
|
-
const hasOwn = class2type.hasOwnProperty;
|
|
1096
|
-
[
|
|
1097
|
-
'Boolean',
|
|
1098
|
-
'Number',
|
|
1099
|
-
'String',
|
|
1100
|
-
'Function',
|
|
1101
|
-
'Array',
|
|
1102
|
-
'Date',
|
|
1103
|
-
'RegExp',
|
|
1104
|
-
'Object',
|
|
1105
|
-
'Error',
|
|
1106
|
-
'Symbol',
|
|
1107
|
-
'HTMLDocument',
|
|
1108
|
-
'Window',
|
|
1109
|
-
'HTMLElement',
|
|
1110
|
-
'HTMLBodyElement',
|
|
1111
|
-
'Text',
|
|
1112
|
-
'DocumentFragment',
|
|
1113
|
-
'DOMStringList',
|
|
1114
|
-
'HTMLCollection'
|
|
1115
|
-
].forEach(name => {
|
|
1116
|
-
class2type['[object ' + name + ']'] = name.toLowerCase();
|
|
1117
|
-
});
|
|
1118
|
-
const type = (obj) => {
|
|
1119
|
-
if (obj === null) {
|
|
1120
|
-
return 'null';
|
|
1121
|
-
}
|
|
1122
|
-
return typeof obj === 'object' || typeof obj === 'function'
|
|
1123
|
-
? class2type[toString.call(obj)] || 'object'
|
|
1124
|
-
: typeof obj;
|
|
1125
|
-
};
|
|
1126
1091
|
function error(message) {
|
|
1127
1092
|
return new TypeError(message);
|
|
1128
1093
|
}
|
|
@@ -1220,7 +1185,7 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
1220
1185
|
"dataBind": () => (/* reexport */ data_bind/* dataBind */.q),
|
|
1221
1186
|
"defaultLanguage": () => (/* reexport */ default_language/* defaultLanguage */.X),
|
|
1222
1187
|
"each": () => (/* reexport */ each),
|
|
1223
|
-
"error": () => (/* reexport */ type/* error */.
|
|
1188
|
+
"error": () => (/* reexport */ type/* error */.v),
|
|
1224
1189
|
"fastClone": () => (/* reexport */ fastClone),
|
|
1225
1190
|
"get": () => (/* reexport */ utils/* get */.U2),
|
|
1226
1191
|
"getClassName": () => (/* reexport */ utils/* getClassName */.gj),
|
|
@@ -1228,7 +1193,6 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
1228
1193
|
"getXPathByElement": () => (/* reexport */ getXPathByElement),
|
|
1229
1194
|
"hasBrowserColorPicker": () => (/* reexport */ checker/* hasBrowserColorPicker */.EO),
|
|
1230
1195
|
"hasContainer": () => (/* reexport */ checker/* hasContainer */.Zt),
|
|
1231
|
-
"hasOwn": () => (/* reexport */ type/* hasOwn */.RI),
|
|
1232
1196
|
"htmlspecialchars": () => (/* reexport */ htmlspecialchars),
|
|
1233
1197
|
"humanSizeToBytes": () => (/* reexport */ humanSizeToBytes),
|
|
1234
1198
|
"i18n": () => (/* reexport */ string/* i18n */.ag),
|
|
@@ -1293,7 +1257,6 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
1293
1257
|
"toArray": () => (/* reexport */ toArray),
|
|
1294
1258
|
"trim": () => (/* reexport */ string/* trim */.fy),
|
|
1295
1259
|
"trimInv": () => (/* reexport */ string/* trimInv */.as),
|
|
1296
|
-
"type": () => (/* reexport */ type/* type */.dt),
|
|
1297
1260
|
"ucfirst": () => (/* reexport */ string/* ucfirst */.Ps),
|
|
1298
1261
|
"val": () => (/* reexport */ val)
|
|
1299
1262
|
});
|
|
@@ -1569,14 +1532,14 @@ function resolveElement(element, od) {
|
|
|
1569
1532
|
resolved = od.querySelector(element);
|
|
1570
1533
|
}
|
|
1571
1534
|
catch (_a) {
|
|
1572
|
-
throw (0,type/* error */.
|
|
1535
|
+
throw (0,type/* error */.v)('String "' + element + '" should be valid HTML selector');
|
|
1573
1536
|
}
|
|
1574
1537
|
}
|
|
1575
1538
|
if (!resolved ||
|
|
1576
1539
|
typeof resolved !== 'object' ||
|
|
1577
1540
|
!dom/* Dom.isElement */.i.isElement(resolved) ||
|
|
1578
1541
|
!resolved.cloneNode) {
|
|
1579
|
-
throw (0,type/* error */.
|
|
1542
|
+
throw (0,type/* error */.v)('Element "' + element + '" should be string or HTMLElement instance');
|
|
1580
1543
|
}
|
|
1581
1544
|
return resolved;
|
|
1582
1545
|
}
|
|
@@ -2818,13 +2781,15 @@ const extendLang = (langs) => {
|
|
|
2818
2781
|
});
|
|
2819
2782
|
};
|
|
2820
2783
|
const boxes = new WeakMap();
|
|
2821
|
-
function getContainer(jodit, classFunc, tag = 'div',
|
|
2784
|
+
function getContainer(jodit, classFunc, tag = 'div', createInsideEditor = false) {
|
|
2822
2785
|
const name = (0,_helpers___WEBPACK_IMPORTED_MODULE_2__.getClassName)(classFunc.prototype);
|
|
2823
2786
|
const data = boxes.get(jodit) || {}, key = name + tag;
|
|
2824
2787
|
const view = (0,_helpers___WEBPACK_IMPORTED_MODULE_2__.isViewObject)(jodit) ? jodit : jodit.j;
|
|
2825
2788
|
if (!data[key]) {
|
|
2826
2789
|
let c = view.c, body = jodit.od.body;
|
|
2827
|
-
if (
|
|
2790
|
+
if (createInsideEditor &&
|
|
2791
|
+
(0,_helpers___WEBPACK_IMPORTED_MODULE_2__.isJoditObject)(jodit) &&
|
|
2792
|
+
jodit.od !== jodit.ed) {
|
|
2828
2793
|
c = jodit.createInside;
|
|
2829
2794
|
body = tag === 'style' ? jodit.ed.head : jodit.ed.body;
|
|
2830
2795
|
}
|
|
@@ -3652,8 +3617,6 @@ function isWindow(obj) {
|
|
|
3652
3617
|
return obj != null && obj === obj.window;
|
|
3653
3618
|
}
|
|
3654
3619
|
|
|
3655
|
-
// EXTERNAL MODULE: ./src/core/helpers/type.ts
|
|
3656
|
-
var type = __webpack_require__(4);
|
|
3657
3620
|
;// CONCATENATED MODULE: ./src/core/helpers/checker/is-plain-object.ts
|
|
3658
3621
|
/*!
|
|
3659
3622
|
* Jodit Editor (https://xdsoft.net/jodit/)
|
|
@@ -3661,13 +3624,12 @@ var type = __webpack_require__(4);
|
|
|
3661
3624
|
* Copyright (c) 2013-2021 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
|
|
3662
3625
|
*/
|
|
3663
3626
|
|
|
3664
|
-
|
|
3665
3627
|
function isPlainObject(obj) {
|
|
3666
3628
|
if (!obj || typeof obj !== 'object' || obj.nodeType || isWindow(obj)) {
|
|
3667
3629
|
return false;
|
|
3668
3630
|
}
|
|
3669
3631
|
return !(obj.constructor &&
|
|
3670
|
-
!
|
|
3632
|
+
!{}.hasOwnProperty.call(obj.constructor.prototype, 'isPrototypeOf'));
|
|
3671
3633
|
}
|
|
3672
3634
|
|
|
3673
3635
|
// EXTERNAL MODULE: ./src/core/helpers/checker/is-promise.ts
|
|
@@ -3685,7 +3647,7 @@ function isURL(str) {
|
|
|
3685
3647
|
if (typeof URL !== 'undefined') {
|
|
3686
3648
|
try {
|
|
3687
3649
|
const url = new URL(str);
|
|
3688
|
-
return ['https:', 'http:', 'ftp:', 'file:'].includes(url.protocol);
|
|
3650
|
+
return ['https:', 'http:', 'ftp:', 'file:', 'rtmp:'].includes(url.protocol);
|
|
3689
3651
|
}
|
|
3690
3652
|
catch (e) {
|
|
3691
3653
|
return false;
|
|
@@ -3756,7 +3718,7 @@ function isValidName(name) {
|
|
|
3756
3718
|
*/
|
|
3757
3719
|
function stringify(value, options = {}) {
|
|
3758
3720
|
if (typeof value !== 'object') {
|
|
3759
|
-
return value
|
|
3721
|
+
return String(value);
|
|
3760
3722
|
}
|
|
3761
3723
|
const excludeKeys = new Set(options.excludeKeys);
|
|
3762
3724
|
const map = new WeakMap();
|
|
@@ -4825,7 +4787,7 @@ var helpers = __webpack_require__(8);
|
|
|
4825
4787
|
var icon = __webpack_require__(27);
|
|
4826
4788
|
// EXTERNAL MODULE: ./src/core/ui/list/list.ts + 1 modules
|
|
4827
4789
|
var list = __webpack_require__(31);
|
|
4828
|
-
// EXTERNAL MODULE: ./src/core/decorators/index.ts +
|
|
4790
|
+
// EXTERNAL MODULE: ./src/core/decorators/index.ts + 9 modules
|
|
4829
4791
|
var decorators = __webpack_require__(33);
|
|
4830
4792
|
// EXTERNAL MODULE: ./src/core/component/index.ts + 3 modules
|
|
4831
4793
|
var component = __webpack_require__(11);
|
|
@@ -5157,7 +5119,7 @@ function getStrongControlTypes(items, controls) {
|
|
|
5157
5119
|
return elements.map(item => (0,get_control_type/* getControlType */.Y)(item, controls || config/* Config.defaultOptions.controls */.D.defaultOptions.controls));
|
|
5158
5120
|
}
|
|
5159
5121
|
|
|
5160
|
-
// EXTERNAL MODULE: ./src/core/decorators/index.ts +
|
|
5122
|
+
// EXTERNAL MODULE: ./src/core/decorators/index.ts + 9 modules
|
|
5161
5123
|
var decorators = __webpack_require__(33);
|
|
5162
5124
|
// EXTERNAL MODULE: ./src/core/ui/list/group.ts
|
|
5163
5125
|
var group = __webpack_require__(35);
|
|
@@ -5353,6 +5315,7 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
5353
5315
|
"debounce": () => (/* reexport */ debounce),
|
|
5354
5316
|
"getPropertyDescriptor": () => (/* reexport */ getPropertyDescriptor),
|
|
5355
5317
|
"hook": () => (/* reexport */ hook),
|
|
5318
|
+
"idle": () => (/* reexport */ idle),
|
|
5356
5319
|
"nonenumerable": () => (/* reexport */ nonenumerable),
|
|
5357
5320
|
"persistent": () => (/* reexport */ persistent),
|
|
5358
5321
|
"throttle": () => (/* reexport */ throttle),
|
|
@@ -5449,6 +5412,24 @@ function throttle(timeout, firstCallImmediately = false) {
|
|
|
5449
5412
|
return debounce(timeout, firstCallImmediately, 'throttle');
|
|
5450
5413
|
}
|
|
5451
5414
|
|
|
5415
|
+
;// CONCATENATED MODULE: ./src/core/decorators/idle.ts
|
|
5416
|
+
|
|
5417
|
+
|
|
5418
|
+
function idle() {
|
|
5419
|
+
return (target, propertyKey) => {
|
|
5420
|
+
if (!(0,helpers.isFunction)(target[propertyKey])) {
|
|
5421
|
+
throw (0,helpers.error)('Handler must be a Function');
|
|
5422
|
+
}
|
|
5423
|
+
target.hookStatus(core_component/* STATUSES.ready */.n$.ready, (component) => {
|
|
5424
|
+
const view = (0,helpers.isViewObject)(component)
|
|
5425
|
+
? component
|
|
5426
|
+
: component.jodit;
|
|
5427
|
+
const originalMethod = component[propertyKey];
|
|
5428
|
+
component[propertyKey] = (...args) => view.async.requestIdleCallback(originalMethod.bind(component, ...args));
|
|
5429
|
+
});
|
|
5430
|
+
};
|
|
5431
|
+
}
|
|
5432
|
+
|
|
5452
5433
|
;// CONCATENATED MODULE: ./src/core/decorators/hook.ts
|
|
5453
5434
|
/*!
|
|
5454
5435
|
* Jodit Editor (https://xdsoft.net/jodit/)
|
|
@@ -5588,9 +5569,10 @@ function watch(observeFields, context) {
|
|
|
5588
5569
|
if ((0,helpers.isFunction)(context)) {
|
|
5589
5570
|
context = context(component);
|
|
5590
5571
|
}
|
|
5591
|
-
view.events
|
|
5592
|
-
|
|
5593
|
-
.on(eventName, callback);
|
|
5572
|
+
view.events.on(context || component, eventName, callback);
|
|
5573
|
+
if (!context) {
|
|
5574
|
+
view.events.on(eventName, callback);
|
|
5575
|
+
}
|
|
5594
5576
|
view.hookStatus('beforeDestruct', () => {
|
|
5595
5577
|
view.events
|
|
5596
5578
|
.off(context || component, eventName, callback)
|
|
@@ -5666,6 +5648,7 @@ var esm = __webpack_require__(34);
|
|
|
5666
5648
|
|
|
5667
5649
|
|
|
5668
5650
|
|
|
5651
|
+
|
|
5669
5652
|
/***/ }),
|
|
5670
5653
|
/* 34 */
|
|
5671
5654
|
/***/ ((__unused_webpack_module, exports) => {
|
|
@@ -6108,10 +6091,16 @@ function __spreadArrays() {
|
|
|
6108
6091
|
return r;
|
|
6109
6092
|
}
|
|
6110
6093
|
exports.__spreadArrays = __spreadArrays;
|
|
6111
|
-
function __spreadArray(to, from) {
|
|
6112
|
-
|
|
6113
|
-
|
|
6114
|
-
|
|
6094
|
+
function __spreadArray(to, from, pack) {
|
|
6095
|
+
if (pack || arguments.length === 2)
|
|
6096
|
+
for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
6097
|
+
if (ar || !(i in from)) {
|
|
6098
|
+
if (!ar)
|
|
6099
|
+
ar = Array.prototype.slice.call(from, 0, i);
|
|
6100
|
+
ar[i] = from[i];
|
|
6101
|
+
}
|
|
6102
|
+
}
|
|
6103
|
+
return to.concat(ar || from);
|
|
6115
6104
|
}
|
|
6116
6105
|
exports.__spreadArray = __spreadArray;
|
|
6117
6106
|
function __await(v) {
|
|
@@ -6286,7 +6275,7 @@ var helpers = __webpack_require__(8);
|
|
|
6286
6275
|
var global = __webpack_require__(12);
|
|
6287
6276
|
// EXTERNAL MODULE: ./src/core/ui/element.ts
|
|
6288
6277
|
var ui_element = __webpack_require__(25);
|
|
6289
|
-
// EXTERNAL MODULE: ./src/core/decorators/index.ts +
|
|
6278
|
+
// EXTERNAL MODULE: ./src/core/decorators/index.ts + 9 modules
|
|
6290
6279
|
var decorators = __webpack_require__(33);
|
|
6291
6280
|
;// CONCATENATED MODULE: ./src/core/ui/popup/popup.ts
|
|
6292
6281
|
/*!
|
|
@@ -6569,7 +6558,7 @@ var ui_element = __webpack_require__(25);
|
|
|
6569
6558
|
var helpers = __webpack_require__(8);
|
|
6570
6559
|
// EXTERNAL MODULE: ./src/core/dom.ts
|
|
6571
6560
|
var dom = __webpack_require__(14);
|
|
6572
|
-
// EXTERNAL MODULE: ./src/core/decorators/index.ts +
|
|
6561
|
+
// EXTERNAL MODULE: ./src/core/decorators/index.ts + 9 modules
|
|
6573
6562
|
var decorators = __webpack_require__(33);
|
|
6574
6563
|
// EXTERNAL MODULE: ./src/core/ui/icon.ts
|
|
6575
6564
|
var ui_icon = __webpack_require__(27);
|
|
@@ -11568,7 +11557,7 @@ const FileSelectorWidget = (editor, callbacks, elm, close, isImage = true) => {
|
|
|
11568
11557
|
required: true,
|
|
11569
11558
|
label: 'URL',
|
|
11570
11559
|
name: 'url',
|
|
11571
|
-
type: '
|
|
11560
|
+
type: 'text',
|
|
11572
11561
|
placeholder: 'https://'
|
|
11573
11562
|
}),
|
|
11574
11563
|
new ui/* UIInput */.u3(editor, {
|
|
@@ -12749,21 +12738,29 @@ class Async {
|
|
|
12749
12738
|
return 0;
|
|
12750
12739
|
}
|
|
12751
12740
|
let options = {};
|
|
12752
|
-
if (
|
|
12741
|
+
if (!(0,helpers.isNumber)(timeout)) {
|
|
12753
12742
|
options = timeout;
|
|
12754
12743
|
timeout = options.timeout || 0;
|
|
12755
12744
|
}
|
|
12756
|
-
if (options.label
|
|
12757
|
-
|
|
12758
|
-
this.timers.delete(options.label);
|
|
12745
|
+
if (options.label) {
|
|
12746
|
+
this.clearLabel(options.label);
|
|
12759
12747
|
}
|
|
12760
12748
|
const timer = (0,helpers.setTimeout)(callback, timeout, ...args), key = options.label || timer;
|
|
12761
12749
|
this.timers.set(key, timer);
|
|
12762
12750
|
return timer;
|
|
12763
12751
|
}
|
|
12764
|
-
|
|
12765
|
-
(
|
|
12766
|
-
|
|
12752
|
+
clearLabel(label) {
|
|
12753
|
+
if (label && this.timers.has(label)) {
|
|
12754
|
+
(0,helpers.clearTimeout)(this.timers.get(label));
|
|
12755
|
+
this.timers.delete(label);
|
|
12756
|
+
}
|
|
12757
|
+
}
|
|
12758
|
+
clearTimeout(timerOrLabel) {
|
|
12759
|
+
if ((0,helpers.isString)(timerOrLabel)) {
|
|
12760
|
+
return this.clearLabel(timerOrLabel);
|
|
12761
|
+
}
|
|
12762
|
+
(0,helpers.clearTimeout)(timerOrLabel);
|
|
12763
|
+
this.timers.delete(timerOrLabel);
|
|
12767
12764
|
}
|
|
12768
12765
|
debounce(fn, timeout, firstCallImmediately = false) {
|
|
12769
12766
|
let timer = 0, fired = false;
|
|
@@ -13267,7 +13264,7 @@ class Storage {
|
|
|
13267
13264
|
|
|
13268
13265
|
// EXTERNAL MODULE: ./src/core/global.ts
|
|
13269
13266
|
var global = __webpack_require__(12);
|
|
13270
|
-
// EXTERNAL MODULE: ./src/core/decorators/index.ts +
|
|
13267
|
+
// EXTERNAL MODULE: ./src/core/decorators/index.ts + 9 modules
|
|
13271
13268
|
var decorators = __webpack_require__(33);
|
|
13272
13269
|
// EXTERNAL MODULE: ./src/core/traits/index.ts + 2 modules
|
|
13273
13270
|
var traits = __webpack_require__(26);
|
|
@@ -13293,7 +13290,7 @@ class View extends component/* Component */.wA {
|
|
|
13293
13290
|
this.isView = true;
|
|
13294
13291
|
this.mods = {};
|
|
13295
13292
|
this.components = new Set();
|
|
13296
|
-
this.version = "3.
|
|
13293
|
+
this.version = "3.7.2";
|
|
13297
13294
|
this.async = new Async();
|
|
13298
13295
|
this.buffer = Storage.makeStorage();
|
|
13299
13296
|
this.storage = Storage.makeStorage(true, this.componentName);
|
|
@@ -13391,10 +13388,10 @@ class View extends component/* Component */.wA {
|
|
|
13391
13388
|
return this.__isFullSize;
|
|
13392
13389
|
}
|
|
13393
13390
|
getVersion() {
|
|
13394
|
-
return "3.
|
|
13391
|
+
return "3.7.2";
|
|
13395
13392
|
}
|
|
13396
13393
|
static getVersion() {
|
|
13397
|
-
return "3.
|
|
13394
|
+
return "3.7.2";
|
|
13398
13395
|
}
|
|
13399
13396
|
initOptions(options) {
|
|
13400
13397
|
this.options = (0,helpers.ConfigProto)(options || {}, (0,helpers.ConfigProto)(this.options || {}, View.defaultOptions));
|
|
@@ -13590,8 +13587,8 @@ ToolbarCollection = (0,tslib_es6.__decorate)([
|
|
|
13590
13587
|
|
|
13591
13588
|
|
|
13592
13589
|
let ToolbarEditorCollection = class ToolbarEditorCollection extends ToolbarCollection {
|
|
13593
|
-
constructor() {
|
|
13594
|
-
super(
|
|
13590
|
+
constructor(jodit) {
|
|
13591
|
+
super(jodit);
|
|
13595
13592
|
this.checkActiveStatus = (cssObject, node) => {
|
|
13596
13593
|
let matches = 0, total = 0;
|
|
13597
13594
|
Object.keys(cssObject).forEach((cssProperty) => {
|
|
@@ -13610,6 +13607,7 @@ let ToolbarEditorCollection = class ToolbarEditorCollection extends ToolbarColle
|
|
|
13610
13607
|
});
|
|
13611
13608
|
return total === matches;
|
|
13612
13609
|
};
|
|
13610
|
+
this.prependInvisibleInput(this.container);
|
|
13613
13611
|
}
|
|
13614
13612
|
className() {
|
|
13615
13613
|
return 'ToolbarEditorCollection';
|
|
@@ -13662,6 +13660,13 @@ let ToolbarEditorCollection = class ToolbarEditorCollection extends ToolbarColle
|
|
|
13662
13660
|
getTarget(button) {
|
|
13663
13661
|
return button.target || this.j.s.current() || null;
|
|
13664
13662
|
}
|
|
13663
|
+
prependInvisibleInput(container) {
|
|
13664
|
+
const input = this.j.create.element('input', {
|
|
13665
|
+
tabIndex: -1,
|
|
13666
|
+
style: 'width: 0; height:0; position: absolute; visibility: hidden;'
|
|
13667
|
+
});
|
|
13668
|
+
dom/* Dom.appendChildFirst */.i.appendChildFirst(container, input);
|
|
13669
|
+
}
|
|
13665
13670
|
};
|
|
13666
13671
|
ToolbarEditorCollection = (0,tslib_es6.__decorate)([
|
|
13667
13672
|
decorators.component
|
|
@@ -13911,12 +13916,14 @@ let ToolbarButton = class ToolbarButton extends ui_button/* UIButton */.y3 {
|
|
|
13911
13916
|
originalEvent,
|
|
13912
13917
|
button: this
|
|
13913
13918
|
});
|
|
13914
|
-
if (result !== false) {
|
|
13919
|
+
if (result !== false && result !== true) {
|
|
13915
13920
|
(_e = (_d = this.j) === null || _d === void 0 ? void 0 : _d.e) === null || _e === void 0 ? void 0 : _e.fire('synchro');
|
|
13916
13921
|
if (this.parentElement) {
|
|
13917
13922
|
this.parentElement.update();
|
|
13918
13923
|
}
|
|
13919
13924
|
(_g = (_f = this.j) === null || _f === void 0 ? void 0 : _f.e) === null || _g === void 0 ? void 0 : _g.fire('closeAllPopups afterExec');
|
|
13925
|
+
}
|
|
13926
|
+
if (result !== false) {
|
|
13920
13927
|
return;
|
|
13921
13928
|
}
|
|
13922
13929
|
}
|
|
@@ -14037,11 +14044,12 @@ var helpers_buttons = __webpack_require__(38);
|
|
|
14037
14044
|
class ViewWithToolbar extends View {
|
|
14038
14045
|
constructor(options, isJodit = false) {
|
|
14039
14046
|
super(options, isJodit);
|
|
14040
|
-
this.isJodit = isJodit;
|
|
14041
14047
|
this.toolbar = makeCollection(this);
|
|
14042
14048
|
this.defaultToolbarContainer = this.c.div('jodit-toolbar__box');
|
|
14043
14049
|
this.registeredButtons = new Set();
|
|
14044
14050
|
this.groupToButtons = {};
|
|
14051
|
+
this.isJodit = false;
|
|
14052
|
+
this.isJodit = isJodit;
|
|
14045
14053
|
this.e.on('beforeToolbarBuild', this.beforeToolbarBuild);
|
|
14046
14054
|
}
|
|
14047
14055
|
get toolbarContainer() {
|
|
@@ -14704,6 +14712,7 @@ const Confirm = (msg, title, callback) => {
|
|
|
14704
14712
|
class Plugin extends component/* ViewComponent */.Hr {
|
|
14705
14713
|
constructor(jodit) {
|
|
14706
14714
|
super(jodit);
|
|
14715
|
+
this.requires = [];
|
|
14707
14716
|
this.buttons = [];
|
|
14708
14717
|
this.hasStyle = false;
|
|
14709
14718
|
jodit.e
|
|
@@ -19642,6 +19651,14 @@ class Jodit extends ViewWithToolbar {
|
|
|
19642
19651
|
className() {
|
|
19643
19652
|
return 'Jodit';
|
|
19644
19653
|
}
|
|
19654
|
+
waitForReady() {
|
|
19655
|
+
if (this.isReady) {
|
|
19656
|
+
return Promise.resolve(this);
|
|
19657
|
+
}
|
|
19658
|
+
return this.async.promise(resolve => {
|
|
19659
|
+
this.hookStatus('ready', () => resolve(this));
|
|
19660
|
+
});
|
|
19661
|
+
}
|
|
19645
19662
|
get text() {
|
|
19646
19663
|
if (this.editor) {
|
|
19647
19664
|
return this.editor.innerText || '';
|
|
@@ -20675,7 +20692,7 @@ config/* Config.prototype.controls.about */.D.prototype.controls.about = {
|
|
|
20675
20692
|
? 'MIT'
|
|
20676
20693
|
: (0,helpers.normalizeLicense)(editor.o.license))}</div>
|
|
20677
20694
|
<div>
|
|
20678
|
-
<a href="https://xdsoft.net/jodit/" target="_blank"
|
|
20695
|
+
<a href="${"https://xdsoft.net/jodit/"}" target="_blank">${"https://xdsoft.net/jodit/"}</a>
|
|
20679
20696
|
</div>
|
|
20680
20697
|
<div>
|
|
20681
20698
|
<a href="https://xdsoft.net/jodit/doc/" target="_blank">${i18n("Jodit User's Guide")}</a>
|
|
@@ -21889,7 +21906,8 @@ function pasteInsertHtml(e, editor, html) {
|
|
|
21889
21906
|
function getAllTypes(dt) {
|
|
21890
21907
|
const types = dt.types;
|
|
21891
21908
|
let types_str = '';
|
|
21892
|
-
if ((0,helpers.isArray)(types) ||
|
|
21909
|
+
if ((0,helpers.isArray)(types) ||
|
|
21910
|
+
{}.toString.call(types) === '[object DOMStringList]') {
|
|
21893
21911
|
for (let i = 0; i < types.length; i += 1) {
|
|
21894
21912
|
types_str += types[i] + ';';
|
|
21895
21913
|
}
|
|
@@ -23099,7 +23117,9 @@ class enter extends Plugin {
|
|
|
23099
23117
|
? constants.PARAGRAPH
|
|
23100
23118
|
: this.defaultTag;
|
|
23101
23119
|
}
|
|
23102
|
-
editor.e
|
|
23120
|
+
editor.e
|
|
23121
|
+
.off('.enter')
|
|
23122
|
+
.on('keydown.enter', (event) => {
|
|
23103
23123
|
if (event.key === constants.KEY_ENTER) {
|
|
23104
23124
|
const beforeEnter = editor.e.fire('beforeEnter', event);
|
|
23105
23125
|
if (beforeEnter !== undefined) {
|
|
@@ -26010,7 +26030,8 @@ function orderedList(editor) {
|
|
|
26010
26030
|
if (isOurCommand(command) && listStyleType) {
|
|
26011
26031
|
const ul = getListWrapper();
|
|
26012
26032
|
if (ul && !listStyleTypeEqual(ul, listStyleType)) {
|
|
26013
|
-
if ((dom/* Dom.isTag */.i.isTag(ul, 'ul') &&
|
|
26033
|
+
if ((dom/* Dom.isTag */.i.isTag(ul, 'ul') &&
|
|
26034
|
+
/unordered/i.test(command)) ||
|
|
26014
26035
|
(dom/* Dom.isTag */.i.isTag(ul, 'ol') && !/unordered/i.test(command))) {
|
|
26015
26036
|
setListStyleType(ul, listStyleType);
|
|
26016
26037
|
return false;
|
|
@@ -27094,12 +27115,12 @@ class select_select extends Plugin {
|
|
|
27094
27115
|
}
|
|
27095
27116
|
afterInit(jodit) {
|
|
27096
27117
|
this.proxyEventsList.forEach(eventName => {
|
|
27097
|
-
jodit.e.on(eventName + '.
|
|
27118
|
+
jodit.e.on(eventName + '.select', this.onStartSelection);
|
|
27098
27119
|
});
|
|
27099
27120
|
}
|
|
27100
27121
|
beforeDestruct(jodit) {
|
|
27101
27122
|
this.proxyEventsList.forEach(eventName => {
|
|
27102
|
-
jodit.e.on(eventName + '.
|
|
27123
|
+
jodit.e.on(eventName + '.select', this.onStartSelection);
|
|
27103
27124
|
});
|
|
27104
27125
|
}
|
|
27105
27126
|
onStartSelection(e) {
|
|
@@ -28563,7 +28584,8 @@ class symbols extends Plugin {
|
|
|
28563
28584
|
|
|
28564
28585
|
config/* Config.prototype.table */.D.prototype.table = {
|
|
28565
28586
|
allowCellSelection: true,
|
|
28566
|
-
selectionCellStyle: 'border: 1px double #1e88e5 !important;'
|
|
28587
|
+
selectionCellStyle: 'border: 1px double #1e88e5 !important;' +
|
|
28588
|
+
'background-color: rgba(158, 207, 250, 0.3)!important',
|
|
28567
28589
|
allowCellResize: true,
|
|
28568
28590
|
useExtraClassesOptions: false
|
|
28569
28591
|
};
|
|
@@ -28927,7 +28949,7 @@ class resizeCells extends Plugin {
|
|
|
28927
28949
|
this.hideResizeHandle();
|
|
28928
28950
|
}
|
|
28929
28951
|
})
|
|
28930
|
-
.on(table, 'mousemove.resize-cells touchmove.resize-cells', (event) => {
|
|
28952
|
+
.on(table, 'mousemove.resize-cells touchmove.resize-cells', this.j.async.throttle((event) => {
|
|
28931
28953
|
if (this.j.isLocked) {
|
|
28932
28954
|
return;
|
|
28933
28955
|
}
|
|
@@ -28936,7 +28958,9 @@ class resizeCells extends Plugin {
|
|
|
28936
28958
|
return;
|
|
28937
28959
|
}
|
|
28938
28960
|
this.calcHandlePosition(table, cell, event.offsetX);
|
|
28939
|
-
}
|
|
28961
|
+
}, {
|
|
28962
|
+
timeout: this.j.defaultTimeout
|
|
28963
|
+
}));
|
|
28940
28964
|
this.createResizeHandle();
|
|
28941
28965
|
}
|
|
28942
28966
|
beforeDestruct(jodit) {
|
|
@@ -28973,11 +28997,13 @@ class resizeCells extends Plugin {
|
|
|
28973
28997
|
|
|
28974
28998
|
|
|
28975
28999
|
const select_cells_key = 'table_processor_observer';
|
|
29000
|
+
const MOUSE_MOVE_LABEL = 'onMoveTableSelectCell';
|
|
28976
29001
|
class selectCells extends Plugin {
|
|
28977
29002
|
constructor() {
|
|
28978
29003
|
super(...arguments);
|
|
28979
29004
|
this.requires = ['select'];
|
|
28980
29005
|
this.selectedCell = null;
|
|
29006
|
+
this.isSelectionMode = false;
|
|
28981
29007
|
}
|
|
28982
29008
|
get module() {
|
|
28983
29009
|
return this.j.getInstance('Table', this.j.o);
|
|
@@ -29003,8 +29029,13 @@ class selectCells extends Plugin {
|
|
|
29003
29029
|
]
|
|
29004
29030
|
.map(e => e + '.select-cells')
|
|
29005
29031
|
.join(' '), this.onStartSelection)
|
|
29006
|
-
.on('clickTr', () => {
|
|
29007
|
-
|
|
29032
|
+
.on('clickTr clickTbody', () => {
|
|
29033
|
+
var _a;
|
|
29034
|
+
const cellsCount = this.module.getAllSelectedCells().length;
|
|
29035
|
+
if (cellsCount) {
|
|
29036
|
+
if (cellsCount > 1) {
|
|
29037
|
+
(_a = this.j.s.sel) === null || _a === void 0 ? void 0 : _a.removeAllRanges();
|
|
29038
|
+
}
|
|
29008
29039
|
return false;
|
|
29009
29040
|
}
|
|
29010
29041
|
});
|
|
@@ -29024,17 +29055,28 @@ class selectCells extends Plugin {
|
|
|
29024
29055
|
if (!cell.firstChild) {
|
|
29025
29056
|
cell.appendChild(this.j.createInside.element('br'));
|
|
29026
29057
|
}
|
|
29058
|
+
this.isSelectionMode = true;
|
|
29027
29059
|
this.selectedCell = cell;
|
|
29028
29060
|
this.module.addSelection(cell);
|
|
29029
29061
|
this.j.e
|
|
29030
|
-
.on(table, 'mousemove.select-cells touchmove.select-cells', this.onMove.bind(this, table)
|
|
29062
|
+
.on(table, 'mousemove.select-cells touchmove.select-cells', this.j.async.throttle(this.onMove.bind(this, table), {
|
|
29063
|
+
label: MOUSE_MOVE_LABEL,
|
|
29064
|
+
timeout: this.j.defaultTimeout / 2
|
|
29065
|
+
}))
|
|
29031
29066
|
.on(table, 'mouseup.select-cells touchend.select-cells', this.onStopSelection.bind(this, table));
|
|
29032
29067
|
return false;
|
|
29033
29068
|
}
|
|
29034
|
-
onOutsideClick(
|
|
29035
|
-
this.
|
|
29069
|
+
onOutsideClick() {
|
|
29070
|
+
this.selectedCell = null;
|
|
29071
|
+
this.onRemoveSelection();
|
|
29072
|
+
}
|
|
29073
|
+
onChange() {
|
|
29074
|
+
if (!this.j.isLocked && !this.isSelectionMode) {
|
|
29075
|
+
this.onRemoveSelection();
|
|
29076
|
+
}
|
|
29036
29077
|
}
|
|
29037
29078
|
onMove(table, e) {
|
|
29079
|
+
var _a;
|
|
29038
29080
|
if (this.j.o.readonly) {
|
|
29039
29081
|
return;
|
|
29040
29082
|
}
|
|
@@ -29059,6 +29101,10 @@ class selectCells extends Plugin {
|
|
|
29059
29101
|
this.module.addSelection(box[i][j]);
|
|
29060
29102
|
}
|
|
29061
29103
|
}
|
|
29104
|
+
const cellsCount = this.module.getAllSelectedCells().length;
|
|
29105
|
+
if (cellsCount > 1) {
|
|
29106
|
+
(_a = this.j.s.sel) === null || _a === void 0 ? void 0 : _a.removeAllRanges();
|
|
29107
|
+
}
|
|
29062
29108
|
this.j.e.fire('hidePopup');
|
|
29063
29109
|
e.stopPropagation();
|
|
29064
29110
|
(() => {
|
|
@@ -29080,12 +29126,14 @@ class selectCells extends Plugin {
|
|
|
29080
29126
|
this.j.e.fire('hidePopup', 'cells');
|
|
29081
29127
|
return;
|
|
29082
29128
|
}
|
|
29129
|
+
this.isSelectionMode = false;
|
|
29083
29130
|
this.selectedCell = null;
|
|
29084
29131
|
}
|
|
29085
29132
|
onStopSelection(table, e) {
|
|
29086
29133
|
if (!this.selectedCell) {
|
|
29087
29134
|
return;
|
|
29088
29135
|
}
|
|
29136
|
+
this.isSelectionMode = false;
|
|
29089
29137
|
this.j.unlock();
|
|
29090
29138
|
const node = this.j.ed.elementFromPoint(e.clientX, e.clientY);
|
|
29091
29139
|
if (!node) {
|
|
@@ -29113,6 +29161,7 @@ class selectCells extends Plugin {
|
|
|
29113
29161
|
(0,helpers.$$)('table', this.j.editor).forEach(table => {
|
|
29114
29162
|
this.j.e.off(table, 'mousemove.select-cells touchmove.select-cells mouseup.select-cells touchend.select-cells');
|
|
29115
29163
|
});
|
|
29164
|
+
this.j.async.clearTimeout(MOUSE_MOVE_LABEL);
|
|
29116
29165
|
}
|
|
29117
29166
|
unselectCells(table, currentCell) {
|
|
29118
29167
|
const module = this.module;
|
|
@@ -29191,6 +29240,9 @@ class selectCells extends Plugin {
|
|
|
29191
29240
|
(0,tslib_es6.__decorate)([
|
|
29192
29241
|
(0,decorators.watch)(':outsideClick')
|
|
29193
29242
|
], selectCells.prototype, "onOutsideClick", null);
|
|
29243
|
+
(0,tslib_es6.__decorate)([
|
|
29244
|
+
(0,decorators.watch)(':change')
|
|
29245
|
+
], selectCells.prototype, "onChange", null);
|
|
29194
29246
|
(0,tslib_es6.__decorate)([
|
|
29195
29247
|
decorators.autobind
|
|
29196
29248
|
], selectCells.prototype, "onRemoveSelection", null);
|
|
@@ -29224,7 +29276,9 @@ function tableKeyboardNavigation(editor) {
|
|
|
29224
29276
|
event.key === constants.KEY_UP ||
|
|
29225
29277
|
event.key === constants.KEY_DOWN) {
|
|
29226
29278
|
current = editor.s.current();
|
|
29227
|
-
block = dom/* Dom.up */.i.up(current, (elm) => elm &&
|
|
29279
|
+
block = dom/* Dom.up */.i.up(current, (elm) => elm &&
|
|
29280
|
+
elm.nodeName &&
|
|
29281
|
+
/^td|th$/i.test(elm.nodeName), editor.editor);
|
|
29228
29282
|
if (!block) {
|
|
29229
29283
|
return;
|
|
29230
29284
|
}
|