roosterjs 8.25.0 → 8.26.0
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/dist/rooster-amd-min.js +1 -1
- package/dist/rooster-amd-min.js.map +1 -1
- package/dist/rooster-amd.d.ts +274 -31
- package/dist/rooster-amd.js +216 -111
- package/dist/rooster-amd.js.map +1 -1
- package/dist/rooster-min.js +1 -1
- package/dist/rooster-min.js.map +1 -1
- package/dist/rooster.d.ts +274 -31
- package/dist/rooster.js +216 -111
- package/dist/rooster.js.map +1 -1
- package/package.json +7 -7
- package/tsconfig.child.tsbuildinfo +1 -1
package/dist/rooster.js
CHANGED
|
@@ -2248,7 +2248,7 @@ function changeCapitalization(editor, capitalization, language) {
|
|
|
2248
2248
|
}
|
|
2249
2249
|
}
|
|
2250
2250
|
}
|
|
2251
|
-
});
|
|
2251
|
+
}, 'changeCapitalization');
|
|
2252
2252
|
function getCapitalizedText(originalText, language) {
|
|
2253
2253
|
switch (capitalization) {
|
|
2254
2254
|
case "lowercase" /* Lowercase */:
|
|
@@ -2318,7 +2318,7 @@ function changeFontSize(editor, change, fontSizes) {
|
|
|
2318
2318
|
if (lineHeight != 'normal') {
|
|
2319
2319
|
element.style.lineHeight = 'normal';
|
|
2320
2320
|
}
|
|
2321
|
-
});
|
|
2321
|
+
}, 'changeFontSize');
|
|
2322
2322
|
}
|
|
2323
2323
|
exports.default = changeFontSize;
|
|
2324
2324
|
/**
|
|
@@ -2397,6 +2397,7 @@ exports.default = clearBlockFormat;
|
|
|
2397
2397
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
2398
2398
|
var blockFormat_1 = __webpack_require__(/*! ../utils/blockFormat */ "./packages/roosterjs-editor-api/lib/utils/blockFormat.ts");
|
|
2399
2399
|
var execCommand_1 = __webpack_require__(/*! ../utils/execCommand */ "./packages/roosterjs-editor-api/lib/utils/execCommand.ts");
|
|
2400
|
+
var formatUndoSnapshot_1 = __webpack_require__(/*! ../utils/formatUndoSnapshot */ "./packages/roosterjs-editor-api/lib/utils/formatUndoSnapshot.ts");
|
|
2400
2401
|
var setBackgroundColor_1 = __webpack_require__(/*! ./setBackgroundColor */ "./packages/roosterjs-editor-api/lib/format/setBackgroundColor.ts");
|
|
2401
2402
|
var setFontName_1 = __webpack_require__(/*! ./setFontName */ "./packages/roosterjs-editor-api/lib/format/setFontName.ts");
|
|
2402
2403
|
var setFontSize_1 = __webpack_require__(/*! ./setFontSize */ "./packages/roosterjs-editor-api/lib/format/setFontSize.ts");
|
|
@@ -2512,7 +2513,7 @@ function clearAutoDetectFormat(editor) {
|
|
|
2512
2513
|
* @param editor The editor instance
|
|
2513
2514
|
*/
|
|
2514
2515
|
function clearBlockFormat(editor) {
|
|
2515
|
-
|
|
2516
|
+
(0, formatUndoSnapshot_1.default)(editor, function () {
|
|
2516
2517
|
(0, blockFormat_1.default)(editor, function (region) {
|
|
2517
2518
|
var blocks = (0, roosterjs_editor_dom_1.getSelectedBlockElementsInRegion)(region);
|
|
2518
2519
|
var nodes = (0, roosterjs_editor_dom_1.collapseNodesInRegion)(region, blocks);
|
|
@@ -2531,7 +2532,7 @@ function clearBlockFormat(editor) {
|
|
|
2531
2532
|
nodes.forEach(clearNodeFormat);
|
|
2532
2533
|
});
|
|
2533
2534
|
setDefaultFormat(editor);
|
|
2534
|
-
},
|
|
2535
|
+
}, 'clearBlockFormat');
|
|
2535
2536
|
}
|
|
2536
2537
|
function clearInlineFormat(editor) {
|
|
2537
2538
|
editor.focus();
|
|
@@ -2541,6 +2542,7 @@ function clearInlineFormat(editor) {
|
|
|
2541
2542
|
return node.removeAttribute('class');
|
|
2542
2543
|
});
|
|
2543
2544
|
setDefaultFormat(editor);
|
|
2545
|
+
return 'clearInlineFormat';
|
|
2544
2546
|
}, "Format" /* Format */);
|
|
2545
2547
|
}
|
|
2546
2548
|
function setDefaultFormat(editor) {
|
|
@@ -2724,11 +2726,13 @@ function createLink(editor, link, altText, displayText, target) {
|
|
|
2724
2726
|
editor.getDocument().execCommand("createLink" /* CreateLink */, false, normalizedUrl_1);
|
|
2725
2727
|
var traverser = editor.getSelectionTraverser();
|
|
2726
2728
|
var currentInline = traverser.getNextInlineElement();
|
|
2729
|
+
// list for removing unwanted lines
|
|
2730
|
+
var deletionInlineList = [];
|
|
2727
2731
|
while (currentInline) {
|
|
2728
|
-
|
|
2729
|
-
a.parentElement.removeChild(a);
|
|
2732
|
+
deletionInlineList.push(currentInline.getContainerNode());
|
|
2730
2733
|
currentInline = traverser.getNextInlineElement();
|
|
2731
2734
|
}
|
|
2735
|
+
deletionInlineList.forEach(function (node) { return editor.deleteNode(node); });
|
|
2732
2736
|
anchor = getAnchorNodeAtCursor(editor);
|
|
2733
2737
|
updateAnchorDisplayText(anchor, displayText);
|
|
2734
2738
|
}
|
|
@@ -2929,6 +2933,7 @@ exports.default = insertEntity;
|
|
|
2929
2933
|
"use strict";
|
|
2930
2934
|
|
|
2931
2935
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
2936
|
+
var formatUndoSnapshot_1 = __webpack_require__(/*! ../utils/formatUndoSnapshot */ "./packages/roosterjs-editor-api/lib/utils/formatUndoSnapshot.ts");
|
|
2932
2937
|
var roosterjs_editor_dom_1 = __webpack_require__(/*! roosterjs-editor-dom */ "./packages/roosterjs-editor-dom/lib/index.ts");
|
|
2933
2938
|
function insertImage(editor, imageFile, attributes) {
|
|
2934
2939
|
if (typeof imageFile == 'string') {
|
|
@@ -2944,7 +2949,7 @@ function insertImage(editor, imageFile, attributes) {
|
|
|
2944
2949
|
}
|
|
2945
2950
|
exports.default = insertImage;
|
|
2946
2951
|
function insertImageWithSrc(editor, src, attributes) {
|
|
2947
|
-
|
|
2952
|
+
(0, formatUndoSnapshot_1.default)(editor, function () {
|
|
2948
2953
|
var image = editor.getDocument().createElement('img');
|
|
2949
2954
|
image.src = src;
|
|
2950
2955
|
if (attributes) {
|
|
@@ -2954,7 +2959,7 @@ function insertImageWithSrc(editor, src, attributes) {
|
|
|
2954
2959
|
}
|
|
2955
2960
|
image.style.maxWidth = '100%';
|
|
2956
2961
|
editor.insertNode(image);
|
|
2957
|
-
},
|
|
2962
|
+
}, 'insertImage');
|
|
2958
2963
|
}
|
|
2959
2964
|
|
|
2960
2965
|
|
|
@@ -2970,6 +2975,7 @@ function insertImageWithSrc(editor, src, attributes) {
|
|
|
2970
2975
|
"use strict";
|
|
2971
2976
|
|
|
2972
2977
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
2978
|
+
var formatUndoSnapshot_1 = __webpack_require__(/*! ../utils/formatUndoSnapshot */ "./packages/roosterjs-editor-api/lib/utils/formatUndoSnapshot.ts");
|
|
2973
2979
|
var roosterjs_editor_dom_1 = __webpack_require__(/*! roosterjs-editor-dom */ "./packages/roosterjs-editor-dom/lib/index.ts");
|
|
2974
2980
|
/**
|
|
2975
2981
|
* Remove link at selection. If no links at selection, do nothing.
|
|
@@ -2979,10 +2985,10 @@ var roosterjs_editor_dom_1 = __webpack_require__(/*! roosterjs-editor-dom */ "./
|
|
|
2979
2985
|
*/
|
|
2980
2986
|
function removeLink(editor) {
|
|
2981
2987
|
editor.focus();
|
|
2982
|
-
|
|
2988
|
+
(0, formatUndoSnapshot_1.default)(editor, function (start, end) {
|
|
2983
2989
|
editor.queryElements('a[href]', 1 /* OnSelection */, roosterjs_editor_dom_1.unwrap);
|
|
2984
2990
|
editor.select(start, end);
|
|
2985
|
-
},
|
|
2991
|
+
}, 'removeLink');
|
|
2986
2992
|
}
|
|
2987
2993
|
exports.default = removeLink;
|
|
2988
2994
|
|
|
@@ -3046,6 +3052,7 @@ exports.default = replaceWithNode;
|
|
|
3046
3052
|
"use strict";
|
|
3047
3053
|
|
|
3048
3054
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3055
|
+
var formatUndoSnapshot_1 = __webpack_require__(/*! ../utils/formatUndoSnapshot */ "./packages/roosterjs-editor-api/lib/utils/formatUndoSnapshot.ts");
|
|
3049
3056
|
/**
|
|
3050
3057
|
* Rotate an element visually
|
|
3051
3058
|
* @param editor The editor instance
|
|
@@ -3054,9 +3061,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3054
3061
|
*/
|
|
3055
3062
|
function rotateElement(editor, element, angle) {
|
|
3056
3063
|
if (element) {
|
|
3057
|
-
|
|
3064
|
+
(0, formatUndoSnapshot_1.default)(editor, function () {
|
|
3058
3065
|
element.style.transform = "rotate(" + angle + "deg)";
|
|
3059
|
-
},
|
|
3066
|
+
}, 'rotateElement');
|
|
3060
3067
|
}
|
|
3061
3068
|
}
|
|
3062
3069
|
exports.default = rotateElement;
|
|
@@ -3076,6 +3083,7 @@ exports.default = rotateElement;
|
|
|
3076
3083
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3077
3084
|
var blockFormat_1 = __webpack_require__(/*! ../utils/blockFormat */ "./packages/roosterjs-editor-api/lib/utils/blockFormat.ts");
|
|
3078
3085
|
var execCommand_1 = __webpack_require__(/*! ../utils/execCommand */ "./packages/roosterjs-editor-api/lib/utils/execCommand.ts");
|
|
3086
|
+
var formatUndoSnapshot_1 = __webpack_require__(/*! ../utils/formatUndoSnapshot */ "./packages/roosterjs-editor-api/lib/utils/formatUndoSnapshot.ts");
|
|
3079
3087
|
var roosterjs_editor_dom_1 = __webpack_require__(/*! roosterjs-editor-dom */ "./packages/roosterjs-editor-dom/lib/index.ts");
|
|
3080
3088
|
/**
|
|
3081
3089
|
* Set content alignment
|
|
@@ -3084,7 +3092,7 @@ var roosterjs_editor_dom_1 = __webpack_require__(/*! roosterjs-editor-dom */ "./
|
|
|
3084
3092
|
* Alignment.Center, Alignment.Left, Alignment.Right
|
|
3085
3093
|
*/
|
|
3086
3094
|
function setAlignment(editor, alignment) {
|
|
3087
|
-
|
|
3095
|
+
(0, formatUndoSnapshot_1.default)(editor, function () {
|
|
3088
3096
|
var selection = editor.getSelectionRangeEx();
|
|
3089
3097
|
var isATable = selection && selection.type === 1 /* TableSelection */;
|
|
3090
3098
|
var elementAtCursor = editor.getElementAtCursor();
|
|
@@ -3100,7 +3108,7 @@ function setAlignment(editor, alignment) {
|
|
|
3100
3108
|
else {
|
|
3101
3109
|
alignText(editor, alignment);
|
|
3102
3110
|
}
|
|
3103
|
-
},
|
|
3111
|
+
}, 'rotateElement');
|
|
3104
3112
|
}
|
|
3105
3113
|
exports.default = setAlignment;
|
|
3106
3114
|
/**
|
|
@@ -3155,7 +3163,7 @@ function alignList(editor, alignment) {
|
|
|
3155
3163
|
var startNode = blocks[0].getStartNode();
|
|
3156
3164
|
var vList = (0, roosterjs_editor_dom_1.createVListFromRegion)(region, true /*includeSiblingLists*/, startNode);
|
|
3157
3165
|
vList.setAlignment(start, end, alignment);
|
|
3158
|
-
});
|
|
3166
|
+
}, undefined /* beforeRunCallback */, 'alignList');
|
|
3159
3167
|
}
|
|
3160
3168
|
|
|
3161
3169
|
|
|
@@ -3186,7 +3194,7 @@ var roosterjs_editor_dom_1 = __webpack_require__(/*! roosterjs-editor-dom */ "./
|
|
|
3186
3194
|
function setBackgroundColor(editor, color) {
|
|
3187
3195
|
(0, applyInlineStyle_1.default)(editor, function (element, isInnerNode) {
|
|
3188
3196
|
(0, roosterjs_editor_dom_1.setColor)(element, isInnerNode ? '' : color, true /*isBackground*/, editor.isDarkMode());
|
|
3189
|
-
});
|
|
3197
|
+
}, 'setBackgroundColor');
|
|
3190
3198
|
}
|
|
3191
3199
|
exports.default = setBackgroundColor;
|
|
3192
3200
|
|
|
@@ -3204,6 +3212,7 @@ exports.default = setBackgroundColor;
|
|
|
3204
3212
|
|
|
3205
3213
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3206
3214
|
var collapseSelectedBlocks_1 = __webpack_require__(/*! ../utils/collapseSelectedBlocks */ "./packages/roosterjs-editor-api/lib/utils/collapseSelectedBlocks.ts");
|
|
3215
|
+
var formatUndoSnapshot_1 = __webpack_require__(/*! ../utils/formatUndoSnapshot */ "./packages/roosterjs-editor-api/lib/utils/formatUndoSnapshot.ts");
|
|
3207
3216
|
/**
|
|
3208
3217
|
* Change direction for the blocks/paragraph at selection
|
|
3209
3218
|
* @param editor The editor instance
|
|
@@ -3212,13 +3221,13 @@ var collapseSelectedBlocks_1 = __webpack_require__(/*! ../utils/collapseSelected
|
|
|
3212
3221
|
*/
|
|
3213
3222
|
function setDirection(editor, direction) {
|
|
3214
3223
|
editor.focus();
|
|
3215
|
-
|
|
3224
|
+
(0, formatUndoSnapshot_1.default)(editor, function (start, end) {
|
|
3216
3225
|
(0, collapseSelectedBlocks_1.default)(editor, function (element) {
|
|
3217
3226
|
element.setAttribute('dir', direction == 0 /* LeftToRight */ ? 'ltr' : 'rtl');
|
|
3218
3227
|
element.style.textAlign = direction == 0 /* LeftToRight */ ? 'left' : 'right';
|
|
3219
3228
|
});
|
|
3220
3229
|
editor.select(start, end);
|
|
3221
|
-
},
|
|
3230
|
+
}, 'setDirection');
|
|
3222
3231
|
}
|
|
3223
3232
|
exports.default = setDirection;
|
|
3224
3233
|
|
|
@@ -3247,7 +3256,7 @@ function setFontName(editor, fontName) {
|
|
|
3247
3256
|
// (http://www.w3schools.com/tags/tag_font.asp).
|
|
3248
3257
|
(0, applyListItemWrap_1.default)(editor, 'font-family', function (element, isInnerNode) {
|
|
3249
3258
|
element.style.fontFamily = isInnerNode ? '' : fontName;
|
|
3250
|
-
});
|
|
3259
|
+
}, 'setFontName');
|
|
3251
3260
|
}
|
|
3252
3261
|
exports.default = setFontName;
|
|
3253
3262
|
|
|
@@ -3281,7 +3290,7 @@ function setFontSize(editor, fontSize) {
|
|
|
3281
3290
|
if (lineHeight != 'normal') {
|
|
3282
3291
|
element.style.lineHeight = 'normal';
|
|
3283
3292
|
}
|
|
3284
|
-
});
|
|
3293
|
+
}, 'setFontSize');
|
|
3285
3294
|
}
|
|
3286
3295
|
exports.default = setFontSize;
|
|
3287
3296
|
|
|
@@ -3298,6 +3307,7 @@ exports.default = setFontSize;
|
|
|
3298
3307
|
"use strict";
|
|
3299
3308
|
|
|
3300
3309
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3310
|
+
var formatUndoSnapshot_1 = __webpack_require__(/*! ../utils/formatUndoSnapshot */ "./packages/roosterjs-editor-api/lib/utils/formatUndoSnapshot.ts");
|
|
3301
3311
|
/**
|
|
3302
3312
|
* Set image alt text for all selected images at selection. If no images is contained
|
|
3303
3313
|
* in selection, do nothing.
|
|
@@ -3309,11 +3319,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3309
3319
|
*/
|
|
3310
3320
|
function setImageAltText(editor, altText) {
|
|
3311
3321
|
editor.focus();
|
|
3312
|
-
|
|
3322
|
+
(0, formatUndoSnapshot_1.default)(editor, function () {
|
|
3313
3323
|
editor.queryElements('img', 1 /* OnSelection */, function (node) {
|
|
3314
3324
|
return node.setAttribute('alt', altText);
|
|
3315
3325
|
});
|
|
3316
|
-
},
|
|
3326
|
+
}, 'setImageAltText');
|
|
3317
3327
|
}
|
|
3318
3328
|
exports.default = setImageAltText;
|
|
3319
3329
|
|
|
@@ -3386,7 +3396,7 @@ function setIndentation(editor, indentation) {
|
|
|
3386
3396
|
return false;
|
|
3387
3397
|
}
|
|
3388
3398
|
return true;
|
|
3389
|
-
});
|
|
3399
|
+
}, 'setIndentation');
|
|
3390
3400
|
}
|
|
3391
3401
|
exports.default = setIndentation;
|
|
3392
3402
|
function indent(region, blocks) {
|
|
@@ -3432,6 +3442,7 @@ function shouldHandleWithBlockquotes(indentation, editor, startNode) {
|
|
|
3432
3442
|
"use strict";
|
|
3433
3443
|
|
|
3434
3444
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3445
|
+
var formatUndoSnapshot_1 = __webpack_require__(/*! ../utils/formatUndoSnapshot */ "./packages/roosterjs-editor-api/lib/utils/formatUndoSnapshot.ts");
|
|
3435
3446
|
var roosterjs_editor_dom_1 = __webpack_require__(/*! roosterjs-editor-dom */ "./packages/roosterjs-editor-dom/lib/index.ts");
|
|
3436
3447
|
/**
|
|
3437
3448
|
* Resets Ordered List Numbering back to the value of the parameter startNumber
|
|
@@ -3441,7 +3452,7 @@ var roosterjs_editor_dom_1 = __webpack_require__(/*! roosterjs-editor-dom */ "./
|
|
|
3441
3452
|
*/
|
|
3442
3453
|
function setOrderedListNumbering(editor, separator, startNumber) {
|
|
3443
3454
|
if (startNumber === void 0) { startNumber = 1; }
|
|
3444
|
-
|
|
3455
|
+
(0, formatUndoSnapshot_1.default)(editor, function () {
|
|
3445
3456
|
editor.focus();
|
|
3446
3457
|
var regions = editor.getSelectedRegions();
|
|
3447
3458
|
if (regions[0]) {
|
|
@@ -3451,7 +3462,7 @@ function setOrderedListNumbering(editor, separator, startNumber) {
|
|
|
3451
3462
|
vList.writeBack();
|
|
3452
3463
|
}
|
|
3453
3464
|
}
|
|
3454
|
-
},
|
|
3465
|
+
}, 'setOrderedListNumbering');
|
|
3455
3466
|
}
|
|
3456
3467
|
exports.default = setOrderedListNumbering;
|
|
3457
3468
|
|
|
@@ -3486,7 +3497,7 @@ function setTextColor(editor, color, shouldApplyInlineStyle) {
|
|
|
3486
3497
|
if (!shouldApplyInlineStyle || shouldApplyInlineStyle(element)) {
|
|
3487
3498
|
(0, roosterjs_editor_dom_1.setColor)(element, isInnerNode ? '' : color, false /*isBackground*/, editor.isDarkMode());
|
|
3488
3499
|
}
|
|
3489
|
-
});
|
|
3500
|
+
}, 'setTextColor');
|
|
3490
3501
|
}
|
|
3491
3502
|
exports.default = setTextColor;
|
|
3492
3503
|
|
|
@@ -3522,7 +3533,7 @@ function toggleBlockQuote(editor, styler) {
|
|
|
3522
3533
|
(0, blockWrap_1.default)(editor, function (nodes) {
|
|
3523
3534
|
var wrapper = (0, roosterjs_editor_dom_1.wrap)(nodes, BLOCKQUOTE_TAG);
|
|
3524
3535
|
(styler || DEFAULT_STYLER)(wrapper);
|
|
3525
|
-
}, function () { return editor.queryElements('blockquote', 1 /* OnSelection */, roosterjs_editor_dom_1.unwrap).length == 0; });
|
|
3536
|
+
}, function () { return editor.queryElements('blockquote', 1 /* OnSelection */, roosterjs_editor_dom_1.unwrap).length == 0; }, 'toggleBlockQuote');
|
|
3526
3537
|
}
|
|
3527
3538
|
exports.default = toggleBlockQuote;
|
|
3528
3539
|
|
|
@@ -3549,7 +3560,7 @@ var execCommand_1 = __webpack_require__(/*! ../utils/execCommand */ "./packages/
|
|
|
3549
3560
|
* @param editor The editor instance
|
|
3550
3561
|
*/
|
|
3551
3562
|
function toggleBold(editor) {
|
|
3552
|
-
(0, execCommand_1.default)(editor, "bold" /* Bold
|
|
3563
|
+
(0, execCommand_1.default)(editor, "bold" /* Bold */, 'toggleBold');
|
|
3553
3564
|
}
|
|
3554
3565
|
exports.default = toggleBold;
|
|
3555
3566
|
|
|
@@ -3618,7 +3629,7 @@ function toggleCodeBlock(editor, styler) {
|
|
|
3618
3629
|
(0, roosterjs_editor_dom_1.unwrap)(parent_1);
|
|
3619
3630
|
}
|
|
3620
3631
|
}).length == 0;
|
|
3621
|
-
});
|
|
3632
|
+
}, 'toggleCodeBlock');
|
|
3622
3633
|
}
|
|
3623
3634
|
exports.default = toggleCodeBlock;
|
|
3624
3635
|
|
|
@@ -3635,6 +3646,7 @@ exports.default = toggleCodeBlock;
|
|
|
3635
3646
|
"use strict";
|
|
3636
3647
|
|
|
3637
3648
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3649
|
+
var formatUndoSnapshot_1 = __webpack_require__(/*! ../utils/formatUndoSnapshot */ "./packages/roosterjs-editor-api/lib/utils/formatUndoSnapshot.ts");
|
|
3638
3650
|
var roosterjs_editor_dom_1 = __webpack_require__(/*! roosterjs-editor-dom */ "./packages/roosterjs-editor-dom/lib/index.ts");
|
|
3639
3651
|
/**
|
|
3640
3652
|
* Toggle header at selection
|
|
@@ -3645,7 +3657,7 @@ var roosterjs_editor_dom_1 = __webpack_require__(/*! roosterjs-editor-dom */ "./
|
|
|
3645
3657
|
*/
|
|
3646
3658
|
function toggleHeader(editor, level) {
|
|
3647
3659
|
level = Math.min(Math.max(Math.round(level), 0), 6);
|
|
3648
|
-
|
|
3660
|
+
(0, formatUndoSnapshot_1.default)(editor, function () {
|
|
3649
3661
|
editor.focus();
|
|
3650
3662
|
var wrapped = false;
|
|
3651
3663
|
editor.queryElements('H1,H2,H3,H4,H5,H6', 1 /* OnSelection */, function (header) {
|
|
@@ -3672,7 +3684,7 @@ function toggleHeader(editor, level) {
|
|
|
3672
3684
|
}
|
|
3673
3685
|
editor.getDocument().execCommand("formatBlock" /* FormatBlock */, false, "<H" + level + ">");
|
|
3674
3686
|
}
|
|
3675
|
-
},
|
|
3687
|
+
}, 'toggleHeader');
|
|
3676
3688
|
}
|
|
3677
3689
|
exports.default = toggleHeader;
|
|
3678
3690
|
|
|
@@ -3699,7 +3711,7 @@ var execCommand_1 = __webpack_require__(/*! ../utils/execCommand */ "./packages/
|
|
|
3699
3711
|
* @param editor The editor instance
|
|
3700
3712
|
*/
|
|
3701
3713
|
function toggleItalic(editor) {
|
|
3702
|
-
(0, execCommand_1.default)(editor, "italic" /* Italic
|
|
3714
|
+
(0, execCommand_1.default)(editor, "italic" /* Italic */, 'toggleItalic');
|
|
3703
3715
|
}
|
|
3704
3716
|
exports.default = toggleItalic;
|
|
3705
3717
|
|
|
@@ -3755,7 +3767,7 @@ var execCommand_1 = __webpack_require__(/*! ../utils/execCommand */ "./packages/
|
|
|
3755
3767
|
* @param editor The editor instance
|
|
3756
3768
|
*/
|
|
3757
3769
|
function toggleStrikethrough(editor) {
|
|
3758
|
-
(0, execCommand_1.default)(editor, "strikeThrough" /* StrikeThrough
|
|
3770
|
+
(0, execCommand_1.default)(editor, "strikeThrough" /* StrikeThrough */, 'toggleStrikethrough');
|
|
3759
3771
|
}
|
|
3760
3772
|
exports.default = toggleStrikethrough;
|
|
3761
3773
|
|
|
@@ -3784,7 +3796,7 @@ var execCommand_1 = __webpack_require__(/*! ../utils/execCommand */ "./packages/
|
|
|
3784
3796
|
* @param editor The editor instance
|
|
3785
3797
|
*/
|
|
3786
3798
|
function toggleSubscript(editor) {
|
|
3787
|
-
(0, execCommand_1.default)(editor, "subscript" /* Subscript
|
|
3799
|
+
(0, execCommand_1.default)(editor, "subscript" /* Subscript */, 'toggleSubscript');
|
|
3788
3800
|
}
|
|
3789
3801
|
exports.default = toggleSubscript;
|
|
3790
3802
|
|
|
@@ -3813,7 +3825,7 @@ var execCommand_1 = __webpack_require__(/*! ../utils/execCommand */ "./packages/
|
|
|
3813
3825
|
* @param editor The editor instance
|
|
3814
3826
|
*/
|
|
3815
3827
|
function toggleSuperscript(editor) {
|
|
3816
|
-
(0, execCommand_1.default)(editor, "superscript" /* Superscript
|
|
3828
|
+
(0, execCommand_1.default)(editor, "superscript" /* Superscript */, 'toggleSuperscript');
|
|
3817
3829
|
}
|
|
3818
3830
|
exports.default = toggleSuperscript;
|
|
3819
3831
|
|
|
@@ -3840,7 +3852,7 @@ var execCommand_1 = __webpack_require__(/*! ../utils/execCommand */ "./packages/
|
|
|
3840
3852
|
* @param editor The editor instance
|
|
3841
3853
|
*/
|
|
3842
3854
|
function toggleUnderline(editor) {
|
|
3843
|
-
(0, execCommand_1.default)(editor, "underline" /* Underline
|
|
3855
|
+
(0, execCommand_1.default)(editor, "underline" /* Underline */, 'toggleUnderline');
|
|
3844
3856
|
}
|
|
3845
3857
|
exports.default = toggleUnderline;
|
|
3846
3858
|
|
|
@@ -3950,6 +3962,7 @@ Object.defineProperty(exports, "experimentCommitListChains", { enumerable: true,
|
|
|
3950
3962
|
"use strict";
|
|
3951
3963
|
|
|
3952
3964
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3965
|
+
var formatUndoSnapshot_1 = __webpack_require__(/*! ../utils/formatUndoSnapshot */ "./packages/roosterjs-editor-api/lib/utils/formatUndoSnapshot.ts");
|
|
3953
3966
|
var roosterjs_editor_dom_1 = __webpack_require__(/*! roosterjs-editor-dom */ "./packages/roosterjs-editor-dom/lib/index.ts");
|
|
3954
3967
|
var TEMP_BACKGROUND_COLOR = 'originalBackgroundColor';
|
|
3955
3968
|
var CELL_SHADE = 'cellShade';
|
|
@@ -3960,7 +3973,7 @@ var CELL_SHADE = 'cellShade';
|
|
|
3960
3973
|
**/
|
|
3961
3974
|
function applyCellShading(editor, color) {
|
|
3962
3975
|
editor.focus();
|
|
3963
|
-
|
|
3976
|
+
(0, formatUndoSnapshot_1.default)(editor, function () {
|
|
3964
3977
|
var regions = editor.getSelectedRegions();
|
|
3965
3978
|
regions.forEach(function (region) {
|
|
3966
3979
|
if ((0, roosterjs_editor_dom_1.safeInstanceOf)(region.rootNode, 'HTMLTableCellElement')) {
|
|
@@ -3970,7 +3983,7 @@ function applyCellShading(editor, color) {
|
|
|
3970
3983
|
region.rootNode.style.backgroundColor;
|
|
3971
3984
|
}
|
|
3972
3985
|
});
|
|
3973
|
-
});
|
|
3986
|
+
}, 'applyCellShading');
|
|
3974
3987
|
}
|
|
3975
3988
|
exports.default = applyCellShading;
|
|
3976
3989
|
|
|
@@ -3987,6 +4000,7 @@ exports.default = applyCellShading;
|
|
|
3987
4000
|
"use strict";
|
|
3988
4001
|
|
|
3989
4002
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4003
|
+
var formatUndoSnapshot_1 = __webpack_require__(/*! ../utils/formatUndoSnapshot */ "./packages/roosterjs-editor-api/lib/utils/formatUndoSnapshot.ts");
|
|
3990
4004
|
var roosterjs_editor_dom_1 = __webpack_require__(/*! roosterjs-editor-dom */ "./packages/roosterjs-editor-dom/lib/index.ts");
|
|
3991
4005
|
/**
|
|
3992
4006
|
* Edit table with given operation. If there is no table at cursor then no op.
|
|
@@ -3996,7 +4010,7 @@ var roosterjs_editor_dom_1 = __webpack_require__(/*! roosterjs-editor-dom */ "./
|
|
|
3996
4010
|
function editTable(editor, operation) {
|
|
3997
4011
|
var td = editor.getElementAtCursor('TD,TH');
|
|
3998
4012
|
if (td) {
|
|
3999
|
-
|
|
4013
|
+
(0, formatUndoSnapshot_1.default)(editor, function () {
|
|
4000
4014
|
var vtable = new roosterjs_editor_dom_1.VTable(td);
|
|
4001
4015
|
saveTableSelection(editor, vtable);
|
|
4002
4016
|
vtable.edit(operation);
|
|
@@ -4005,7 +4019,7 @@ function editTable(editor, operation) {
|
|
|
4005
4019
|
editor.focus();
|
|
4006
4020
|
var cellToSelect = calculateCellToSelect(operation, vtable.row, vtable.col);
|
|
4007
4021
|
editor.select(vtable.getCell(cellToSelect.newRow, cellToSelect.newCol).td, 0 /* Begin */);
|
|
4008
|
-
},
|
|
4022
|
+
}, 'editTable');
|
|
4009
4023
|
}
|
|
4010
4024
|
}
|
|
4011
4025
|
exports.default = editTable;
|
|
@@ -4053,6 +4067,7 @@ function saveTableSelection(editor, vtable) {
|
|
|
4053
4067
|
"use strict";
|
|
4054
4068
|
|
|
4055
4069
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4070
|
+
var formatUndoSnapshot_1 = __webpack_require__(/*! ../utils/formatUndoSnapshot */ "./packages/roosterjs-editor-api/lib/utils/formatUndoSnapshot.ts");
|
|
4056
4071
|
var roosterjs_editor_dom_1 = __webpack_require__(/*! roosterjs-editor-dom */ "./packages/roosterjs-editor-dom/lib/index.ts");
|
|
4057
4072
|
/**
|
|
4058
4073
|
* Format table
|
|
@@ -4063,14 +4078,14 @@ var roosterjs_editor_dom_1 = __webpack_require__(/*! roosterjs-editor-dom */ "./
|
|
|
4063
4078
|
function formatTable(editor, format, table) {
|
|
4064
4079
|
table = table || editor.getElementAtCursor('TABLE');
|
|
4065
4080
|
if (table) {
|
|
4066
|
-
|
|
4081
|
+
(0, formatUndoSnapshot_1.default)(editor, function (start, end) {
|
|
4067
4082
|
var vtable = new roosterjs_editor_dom_1.VTable(table);
|
|
4068
4083
|
vtable.applyFormat(format);
|
|
4069
4084
|
vtable.writeBack();
|
|
4070
4085
|
editor.transformToDarkColor(vtable.table);
|
|
4071
4086
|
editor.focus();
|
|
4072
4087
|
editor.select(start, end);
|
|
4073
|
-
},
|
|
4088
|
+
}, 'formatTable');
|
|
4074
4089
|
}
|
|
4075
4090
|
}
|
|
4076
4091
|
exports.default = formatTable;
|
|
@@ -4088,6 +4103,7 @@ exports.default = formatTable;
|
|
|
4088
4103
|
"use strict";
|
|
4089
4104
|
|
|
4090
4105
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4106
|
+
var formatUndoSnapshot_1 = __webpack_require__(/*! ../utils/formatUndoSnapshot */ "./packages/roosterjs-editor-api/lib/utils/formatUndoSnapshot.ts");
|
|
4091
4107
|
var roosterjs_editor_dom_1 = __webpack_require__(/*! roosterjs-editor-dom */ "./packages/roosterjs-editor-dom/lib/index.ts");
|
|
4092
4108
|
/**
|
|
4093
4109
|
* Insert table into editor at current selection
|
|
@@ -4116,7 +4132,7 @@ function insertTable(editor, columns, rows, format) {
|
|
|
4116
4132
|
}
|
|
4117
4133
|
}
|
|
4118
4134
|
editor.focus();
|
|
4119
|
-
|
|
4135
|
+
(0, formatUndoSnapshot_1.default)(editor, function () {
|
|
4120
4136
|
var vtable = new roosterjs_editor_dom_1.VTable(table);
|
|
4121
4137
|
vtable.applyFormat(format);
|
|
4122
4138
|
vtable.writeBack();
|
|
@@ -4124,7 +4140,7 @@ function insertTable(editor, columns, rows, format) {
|
|
|
4124
4140
|
editor.runAsync(function (editor) {
|
|
4125
4141
|
return editor.select(new roosterjs_editor_dom_1.Position(table, 0 /* Begin */).normalize());
|
|
4126
4142
|
});
|
|
4127
|
-
},
|
|
4143
|
+
}, 'insertTable');
|
|
4128
4144
|
}
|
|
4129
4145
|
exports.default = insertTable;
|
|
4130
4146
|
function getTableCellWidth(columns) {
|
|
@@ -4152,6 +4168,7 @@ function getTableCellWidth(columns) {
|
|
|
4152
4168
|
"use strict";
|
|
4153
4169
|
|
|
4154
4170
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4171
|
+
var formatUndoSnapshot_1 = __webpack_require__(/*! ./formatUndoSnapshot */ "./packages/roosterjs-editor-api/lib/utils/formatUndoSnapshot.ts");
|
|
4155
4172
|
var roosterjs_editor_dom_1 = __webpack_require__(/*! roosterjs-editor-dom */ "./packages/roosterjs-editor-dom/lib/index.ts");
|
|
4156
4173
|
var ZERO_WIDTH_SPACE = '\u200B';
|
|
4157
4174
|
/**
|
|
@@ -4160,7 +4177,7 @@ var ZERO_WIDTH_SPACE = '\u200B';
|
|
|
4160
4177
|
* @param editor The editor instance
|
|
4161
4178
|
* @param callback The callback function to apply style
|
|
4162
4179
|
*/
|
|
4163
|
-
function applyInlineStyle(editor, callback) {
|
|
4180
|
+
function applyInlineStyle(editor, callback, apiName) {
|
|
4164
4181
|
editor.focus();
|
|
4165
4182
|
var selection = editor.getSelectionRangeEx();
|
|
4166
4183
|
if (selection && selection.areAllCollapsed) {
|
|
@@ -4193,7 +4210,7 @@ function applyInlineStyle(editor, callback) {
|
|
|
4193
4210
|
else {
|
|
4194
4211
|
// This is start and end node that get the style. The start and end needs to be recorded so that selection
|
|
4195
4212
|
// can be re-applied post-applying style
|
|
4196
|
-
|
|
4213
|
+
(0, formatUndoSnapshot_1.default)(editor, function () {
|
|
4197
4214
|
var firstNode;
|
|
4198
4215
|
var lastNode;
|
|
4199
4216
|
selection.ranges.forEach(function (range) {
|
|
@@ -4212,7 +4229,7 @@ function applyInlineStyle(editor, callback) {
|
|
|
4212
4229
|
if (firstNode && lastNode && selection.type == 0 /* Normal */) {
|
|
4213
4230
|
editor.select(firstNode, -2 /* Before */, lastNode, -3 /* After */);
|
|
4214
4231
|
}
|
|
4215
|
-
},
|
|
4232
|
+
}, apiName);
|
|
4216
4233
|
}
|
|
4217
4234
|
}
|
|
4218
4235
|
exports.default = applyInlineStyle;
|
|
@@ -4239,7 +4256,7 @@ var roosterjs_editor_dom_1 = __webpack_require__(/*! roosterjs-editor-dom */ "./
|
|
|
4239
4256
|
* @param styleName Name of the style to apply to the list item
|
|
4240
4257
|
* @param formatCallback callback to apply the style to each element
|
|
4241
4258
|
*/
|
|
4242
|
-
function applyListItemStyleWrap(editor, styleName, formatCallback) {
|
|
4259
|
+
function applyListItemStyleWrap(editor, styleName, formatCallback, apiName) {
|
|
4243
4260
|
var parentNodes = [];
|
|
4244
4261
|
(0, applyInlineStyle_1.default)(editor, function (element, isInnerNode) {
|
|
4245
4262
|
formatCallback(element, isInnerNode);
|
|
@@ -4247,7 +4264,7 @@ function applyListItemStyleWrap(editor, styleName, formatCallback) {
|
|
|
4247
4264
|
if (parent && parentNodes.indexOf(parent) === -1) {
|
|
4248
4265
|
parentNodes.push(parent);
|
|
4249
4266
|
}
|
|
4250
|
-
});
|
|
4267
|
+
}, apiName);
|
|
4251
4268
|
applyStyleToListItems(parentNodes, [styleName]);
|
|
4252
4269
|
}
|
|
4253
4270
|
exports.default = applyListItemStyleWrap;
|
|
@@ -4279,14 +4296,15 @@ function applyStyleToListItems(parentNodes, styles) {
|
|
|
4279
4296
|
|
|
4280
4297
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4281
4298
|
var experimentCommitListChains_1 = __webpack_require__(/*! ../experiment/experimentCommitListChains */ "./packages/roosterjs-editor-api/lib/experiment/experimentCommitListChains.ts");
|
|
4299
|
+
var formatUndoSnapshot_1 = __webpack_require__(/*! ./formatUndoSnapshot */ "./packages/roosterjs-editor-api/lib/utils/formatUndoSnapshot.ts");
|
|
4282
4300
|
var roosterjs_editor_dom_1 = __webpack_require__(/*! roosterjs-editor-dom */ "./packages/roosterjs-editor-dom/lib/index.ts");
|
|
4283
4301
|
/**
|
|
4284
4302
|
* Split selection into regions, and perform a block-wise formatting action for each region.
|
|
4285
4303
|
*/
|
|
4286
|
-
function blockFormat(editor, callback, beforeRunCallback) {
|
|
4304
|
+
function blockFormat(editor, callback, beforeRunCallback, apiName) {
|
|
4287
4305
|
editor.focus();
|
|
4288
4306
|
var selection = editor.getSelectionRangeEx();
|
|
4289
|
-
|
|
4307
|
+
(0, formatUndoSnapshot_1.default)(editor, function (start, end) {
|
|
4290
4308
|
if (!beforeRunCallback || beforeRunCallback()) {
|
|
4291
4309
|
var regions = editor.getSelectedRegions();
|
|
4292
4310
|
var chains_1 = roosterjs_editor_dom_1.VListChain.createListChains(regions, start === null || start === void 0 ? void 0 : start.node);
|
|
@@ -4299,7 +4317,7 @@ function blockFormat(editor, callback, beforeRunCallback) {
|
|
|
4299
4317
|
else if (selection.type == 1 /* TableSelection */) {
|
|
4300
4318
|
editor.select(selection.table, selection.coordinates);
|
|
4301
4319
|
}
|
|
4302
|
-
},
|
|
4320
|
+
}, apiName);
|
|
4303
4321
|
}
|
|
4304
4322
|
exports.default = blockFormat;
|
|
4305
4323
|
|
|
@@ -4327,7 +4345,7 @@ var roosterjs_editor_dom_1 = __webpack_require__(/*! roosterjs-editor-dom */ "./
|
|
|
4327
4345
|
* @param beforeRunCallback A callback function to run before looping all regions. If it returns false,
|
|
4328
4346
|
* the loop for regions will be skipped
|
|
4329
4347
|
*/
|
|
4330
|
-
function blockWrap(editor, wrapFunction, beforeRunCallback) {
|
|
4348
|
+
function blockWrap(editor, wrapFunction, beforeRunCallback, apiName) {
|
|
4331
4349
|
(0, blockFormat_1.default)(editor, function (region) {
|
|
4332
4350
|
var blocks = (0, roosterjs_editor_dom_1.getSelectedBlockElementsInRegion)(region, true /*createBlockIfEmpty*/);
|
|
4333
4351
|
var nodes = (0, roosterjs_editor_dom_1.collapseNodesInRegion)(region, blocks);
|
|
@@ -4348,7 +4366,7 @@ function blockWrap(editor, wrapFunction, beforeRunCallback) {
|
|
|
4348
4366
|
}
|
|
4349
4367
|
wrapFunction(nodes);
|
|
4350
4368
|
}
|
|
4351
|
-
}, beforeRunCallback);
|
|
4369
|
+
}, beforeRunCallback, apiName);
|
|
4352
4370
|
}
|
|
4353
4371
|
exports.default = blockWrap;
|
|
4354
4372
|
|
|
@@ -4408,6 +4426,7 @@ function isEmptyBlockUnderTR(block) {
|
|
|
4408
4426
|
"use strict";
|
|
4409
4427
|
|
|
4410
4428
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4429
|
+
var formatUndoSnapshot_1 = __webpack_require__(/*! ./formatUndoSnapshot */ "./packages/roosterjs-editor-api/lib/utils/formatUndoSnapshot.ts");
|
|
4411
4430
|
var roosterjs_editor_dom_1 = __webpack_require__(/*! roosterjs-editor-dom */ "./packages/roosterjs-editor-dom/lib/index.ts");
|
|
4412
4431
|
/**
|
|
4413
4432
|
* @internal
|
|
@@ -4419,7 +4438,7 @@ var roosterjs_editor_dom_1 = __webpack_require__(/*! roosterjs-editor-dom */ "./
|
|
|
4419
4438
|
* @param doWorkaroundForList Optional, set to true to do workaround for list in order to keep current format.
|
|
4420
4439
|
* Default value is false.
|
|
4421
4440
|
*/
|
|
4422
|
-
function execCommand(editor, command) {
|
|
4441
|
+
function execCommand(editor, command, apiName) {
|
|
4423
4442
|
editor.focus();
|
|
4424
4443
|
var formatter = function () { return editor.getDocument().execCommand(command, false, null); };
|
|
4425
4444
|
var selection = editor.getSelectionRangeEx();
|
|
@@ -4436,7 +4455,7 @@ function execCommand(editor, command) {
|
|
|
4436
4455
|
}
|
|
4437
4456
|
}
|
|
4438
4457
|
else {
|
|
4439
|
-
|
|
4458
|
+
(0, formatUndoSnapshot_1.default)(editor, function () {
|
|
4440
4459
|
var tempRange;
|
|
4441
4460
|
selection.ranges.forEach(function (range) {
|
|
4442
4461
|
if (selection.type == 1 /* TableSelection */) {
|
|
@@ -4448,12 +4467,40 @@ function execCommand(editor, command) {
|
|
|
4448
4467
|
if (tempRange && selection.type == 1 /* TableSelection */) {
|
|
4449
4468
|
editor.select(selection.table, selection.coordinates);
|
|
4450
4469
|
}
|
|
4451
|
-
},
|
|
4470
|
+
}, apiName);
|
|
4452
4471
|
}
|
|
4453
4472
|
}
|
|
4454
4473
|
exports.default = execCommand;
|
|
4455
4474
|
|
|
4456
4475
|
|
|
4476
|
+
/***/ }),
|
|
4477
|
+
|
|
4478
|
+
/***/ "./packages/roosterjs-editor-api/lib/utils/formatUndoSnapshot.ts":
|
|
4479
|
+
/*!***********************************************************************!*\
|
|
4480
|
+
!*** ./packages/roosterjs-editor-api/lib/utils/formatUndoSnapshot.ts ***!
|
|
4481
|
+
\***********************************************************************/
|
|
4482
|
+
/*! no static exports found */
|
|
4483
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
4484
|
+
|
|
4485
|
+
"use strict";
|
|
4486
|
+
|
|
4487
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4488
|
+
/**
|
|
4489
|
+
* @internal
|
|
4490
|
+
* Execute add undo snapshot for the Format APIs
|
|
4491
|
+
* @param editor The editor instance
|
|
4492
|
+
* @param command Optional, The callback function to perform formatting, returns a data object which will be used as the data field in ContentChangedEvent if changeSource is not null.
|
|
4493
|
+
* @param apiName Optional, name of the API that was is going to be executed.
|
|
4494
|
+
* Default value is false.
|
|
4495
|
+
*/
|
|
4496
|
+
function formatUndoSnapshot(editor, callback, apiName) {
|
|
4497
|
+
editor.addUndoSnapshot(callback, "Format" /* Format */, undefined /* canUndoByBackspace */, apiName && {
|
|
4498
|
+
formatApiName: apiName,
|
|
4499
|
+
});
|
|
4500
|
+
}
|
|
4501
|
+
exports.default = formatUndoSnapshot;
|
|
4502
|
+
|
|
4503
|
+
|
|
4457
4504
|
/***/ }),
|
|
4458
4505
|
|
|
4459
4506
|
/***/ "./packages/roosterjs-editor-api/lib/utils/toggleListType.ts":
|
|
@@ -4502,7 +4549,7 @@ function toggleListType(editor, listType, startNumber, includeSiblingLists, orde
|
|
|
4502
4549
|
}
|
|
4503
4550
|
vList.writeBack();
|
|
4504
4551
|
}
|
|
4505
|
-
});
|
|
4552
|
+
}, undefined /* beforeRunCallback */, 'toggleListType');
|
|
4506
4553
|
}
|
|
4507
4554
|
exports.default = toggleListType;
|
|
4508
4555
|
|
|
@@ -4540,8 +4587,10 @@ var roosterjs_editor_dom_1 = __webpack_require__(/*! roosterjs-editor-dom */ "./
|
|
|
4540
4587
|
* @param callback The editing callback, accepting current selection start and end position, returns an optional object used as the data field of ContentChangedEvent.
|
|
4541
4588
|
* @param changeSource The ChangeSource string of ContentChangedEvent. @default ChangeSource.Format. Set to null to avoid triggering ContentChangedEvent
|
|
4542
4589
|
* @param canUndoByBackspace True if this action can be undone when user press Backspace key (aka Auto Complete).
|
|
4590
|
+
* @param formatApiName Optional parameter to provide the ContentChangeEvent which FormatApi was invoked.
|
|
4543
4591
|
*/
|
|
4544
|
-
var addUndoSnapshot = function (core, callback, changeSource, canUndoByBackspace) {
|
|
4592
|
+
var addUndoSnapshot = function (core, callback, changeSource, canUndoByBackspace, additionalData) {
|
|
4593
|
+
if (additionalData === void 0) { additionalData = undefined; }
|
|
4545
4594
|
var undoState = core.undo;
|
|
4546
4595
|
var isNested = undoState.isNested;
|
|
4547
4596
|
var data;
|
|
@@ -4568,6 +4617,7 @@ var addUndoSnapshot = function (core, callback, changeSource, canUndoByBackspace
|
|
|
4568
4617
|
eventType: 7 /* ContentChanged */,
|
|
4569
4618
|
source: changeSource,
|
|
4570
4619
|
data: data,
|
|
4620
|
+
additionalData: additionalData,
|
|
4571
4621
|
};
|
|
4572
4622
|
core.api.triggerEvent(core, event_1, true /*broadcast*/);
|
|
4573
4623
|
}
|
|
@@ -6195,7 +6245,7 @@ var CopyPastePlugin = /** @class */ (function () {
|
|
|
6195
6245
|
function CopyPastePlugin(options) {
|
|
6196
6246
|
var _this = this;
|
|
6197
6247
|
this.onPaste = function (event) {
|
|
6198
|
-
var _a;
|
|
6248
|
+
var _a, _b;
|
|
6199
6249
|
var range;
|
|
6200
6250
|
(0, roosterjs_editor_dom_1.extractClipboardEvent)(event, function (clipboardData) { var _a; return (_a = _this.editor) === null || _a === void 0 ? void 0 : _a.paste(clipboardData); }, {
|
|
6201
6251
|
allowLinkPreview: (_a = _this.editor) === null || _a === void 0 ? void 0 : _a.isFeatureEnabled("PasteWithLinkPreview" /* PasteWithLinkPreview */),
|
|
@@ -6208,7 +6258,7 @@ var CopyPastePlugin = /** @class */ (function () {
|
|
|
6208
6258
|
removeTempDiv: function (div) {
|
|
6209
6259
|
_this.cleanUpAndRestoreSelection(div, range, false /* isCopy */);
|
|
6210
6260
|
},
|
|
6211
|
-
});
|
|
6261
|
+
}, (_b = _this.editor) === null || _b === void 0 ? void 0 : _b.getSelectionRange());
|
|
6212
6262
|
};
|
|
6213
6263
|
this.state = {
|
|
6214
6264
|
allowedCustomPasteType: options.allowedCustomPasteType || [],
|
|
@@ -8968,12 +9018,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
8968
9018
|
var extractClipboardItems_1 = __webpack_require__(/*! ./extractClipboardItems */ "./packages/roosterjs-editor-dom/lib/clipboard/extractClipboardItems.ts");
|
|
8969
9019
|
var extractClipboardItemsForIE_1 = __webpack_require__(/*! ./extractClipboardItemsForIE */ "./packages/roosterjs-editor-dom/lib/clipboard/extractClipboardItemsForIE.ts");
|
|
8970
9020
|
var toArray_1 = __webpack_require__(/*! ../jsUtils/toArray */ "./packages/roosterjs-editor-dom/lib/jsUtils/toArray.ts");
|
|
9021
|
+
var Browser_1 = __webpack_require__(/*! ../utils/Browser */ "./packages/roosterjs-editor-dom/lib/utils/Browser.ts");
|
|
8971
9022
|
/**
|
|
8972
9023
|
* @deprecated Use extractClipboardItems and extractClipboardItemsForIE instead
|
|
8973
9024
|
* Extract a Clipboard event
|
|
8974
9025
|
* @param event The paste event
|
|
8975
9026
|
* @param callback Callback function when data is ready
|
|
8976
9027
|
* @param options Options to retrieve more items from the event, including HTML string and other customized items
|
|
9028
|
+
* @param rangeBeforePaste Optional range to be removed when pasting in Android
|
|
8977
9029
|
* @returns An object with the following properties:
|
|
8978
9030
|
* types: Available types from the clipboard event
|
|
8979
9031
|
* text: Plain text from the clipboard event
|
|
@@ -8982,19 +9034,27 @@ var toArray_1 = __webpack_require__(/*! ../jsUtils/toArray */ "./packages/rooste
|
|
|
8982
9034
|
* When set to undefined, it means can't retrieve HTML string, there may be HTML string but direct retrieving is
|
|
8983
9035
|
* not supported by browser.
|
|
8984
9036
|
*/
|
|
8985
|
-
function extractClipboardEvent(event, callback, options) {
|
|
9037
|
+
function extractClipboardEvent(event, callback, options, rangeBeforePaste) {
|
|
8986
9038
|
var _a;
|
|
8987
9039
|
var dataTransfer = event.clipboardData ||
|
|
8988
9040
|
((_a = event.target.ownerDocument) === null || _a === void 0 ? void 0 : _a.defaultView).clipboardData;
|
|
8989
9041
|
if (dataTransfer.items) {
|
|
8990
9042
|
event.preventDefault();
|
|
8991
|
-
(0, extractClipboardItems_1.default)((0, toArray_1.default)(dataTransfer.items), options).then(
|
|
9043
|
+
(0, extractClipboardItems_1.default)((0, toArray_1.default)(dataTransfer.items), options).then(function (clipboardData) {
|
|
9044
|
+
removeContents(rangeBeforePaste);
|
|
9045
|
+
callback(clipboardData);
|
|
9046
|
+
});
|
|
8992
9047
|
}
|
|
8993
9048
|
else {
|
|
8994
9049
|
(0, extractClipboardItemsForIE_1.default)(dataTransfer, callback, options);
|
|
8995
9050
|
}
|
|
8996
9051
|
}
|
|
8997
9052
|
exports.default = extractClipboardEvent;
|
|
9053
|
+
function removeContents(range) {
|
|
9054
|
+
if (Browser_1.Browser.isAndroid && range) {
|
|
9055
|
+
range.deleteContents();
|
|
9056
|
+
}
|
|
9057
|
+
}
|
|
8998
9058
|
|
|
8999
9059
|
|
|
9000
9060
|
/***/ }),
|
|
@@ -9953,12 +10013,14 @@ var unwrap_1 = __webpack_require__(/*! ../utils/unwrap */ "./packages/roosterjs-
|
|
|
9953
10013
|
var VTable_1 = __webpack_require__(/*! ../table/VTable */ "./packages/roosterjs-editor-dom/lib/table/VTable.ts");
|
|
9954
10014
|
var wrap_1 = __webpack_require__(/*! ../utils/wrap */ "./packages/roosterjs-editor-dom/lib/utils/wrap.ts");
|
|
9955
10015
|
var splitParentNode_1 = __webpack_require__(/*! ../utils/splitParentNode */ "./packages/roosterjs-editor-dom/lib/utils/splitParentNode.ts");
|
|
10016
|
+
var NOT_EDITABLE_SELECTOR = '[contenteditable=false]';
|
|
9956
10017
|
var adjustSteps = [
|
|
9957
10018
|
adjustInsertPositionForHyperLink,
|
|
9958
10019
|
adjustInsertPositionForStructuredNode,
|
|
9959
10020
|
adjustInsertPositionForParagraph,
|
|
9960
10021
|
adjustInsertPositionForVoidElement,
|
|
9961
10022
|
adjustInsertPositionForMoveCursorOutOfALink,
|
|
10023
|
+
adjustInsertPositionForNotEditableNode,
|
|
9962
10024
|
];
|
|
9963
10025
|
/**
|
|
9964
10026
|
* Adjust position for A tag don't be nested inside another A tag.
|
|
@@ -10098,6 +10160,26 @@ function adjustInsertPositionForMoveCursorOutOfALink(root, nodeToInsert, positio
|
|
|
10098
10160
|
}
|
|
10099
10161
|
return position;
|
|
10100
10162
|
}
|
|
10163
|
+
/**
|
|
10164
|
+
* Adjust the position cursor out of a not contenteditable element.
|
|
10165
|
+
*/
|
|
10166
|
+
function adjustInsertPositionForNotEditableNode(root, nodeToInsert, position, range) {
|
|
10167
|
+
if (!position.element.isContentEditable) {
|
|
10168
|
+
var nonEditableElement = void 0;
|
|
10169
|
+
var lastNonEditableElement = (0, findClosestElementAncestor_1.default)(position.node, root, NOT_EDITABLE_SELECTOR);
|
|
10170
|
+
while (lastNonEditableElement) {
|
|
10171
|
+
nonEditableElement = lastNonEditableElement;
|
|
10172
|
+
lastNonEditableElement = (nonEditableElement === null || nonEditableElement === void 0 ? void 0 : nonEditableElement.parentElement)
|
|
10173
|
+
? (0, findClosestElementAncestor_1.default)(nonEditableElement.parentElement, root, NOT_EDITABLE_SELECTOR)
|
|
10174
|
+
: null;
|
|
10175
|
+
}
|
|
10176
|
+
if (nonEditableElement) {
|
|
10177
|
+
position = new Position_1.default(nonEditableElement, -3 /* After */);
|
|
10178
|
+
return adjustInsertPositionForNotEditableNode(root, nodeToInsert, position, range);
|
|
10179
|
+
}
|
|
10180
|
+
}
|
|
10181
|
+
return position;
|
|
10182
|
+
}
|
|
10101
10183
|
/**
|
|
10102
10184
|
*
|
|
10103
10185
|
* @param root the contentDiv of the ditor
|
|
@@ -17610,10 +17692,9 @@ exports.getTargetWindow = void 0;
|
|
|
17610
17692
|
/**
|
|
17611
17693
|
* @internal Export for test only
|
|
17612
17694
|
* Try get window from the given node or range
|
|
17613
|
-
* @param
|
|
17695
|
+
* @param node Source node to get window from
|
|
17614
17696
|
*/
|
|
17615
|
-
function getTargetWindow(
|
|
17616
|
-
var node = source && (source.commonAncestorContainer || source);
|
|
17697
|
+
function getTargetWindow(node) {
|
|
17617
17698
|
var document = node &&
|
|
17618
17699
|
(node.ownerDocument ||
|
|
17619
17700
|
(Object.prototype.toString.apply(node) == '[object HTMLDocument]'
|
|
@@ -17630,6 +17711,11 @@ exports.getTargetWindow = getTargetWindow;
|
|
|
17630
17711
|
* @param typeName Target type name
|
|
17631
17712
|
*/
|
|
17632
17713
|
function safeInstanceOf(obj, typeName) {
|
|
17714
|
+
var _a;
|
|
17715
|
+
if (typeName == 'Range') {
|
|
17716
|
+
return (Object.prototype.toString.apply(obj) == '[object Range]' &&
|
|
17717
|
+
!!((_a = obj) === null || _a === void 0 ? void 0 : _a.commonAncestorContainer));
|
|
17718
|
+
}
|
|
17633
17719
|
var targetWindow = getTargetWindow(obj);
|
|
17634
17720
|
var targetType = targetWindow && targetWindow[typeName];
|
|
17635
17721
|
var mainWindow = window;
|
|
@@ -21129,14 +21215,13 @@ var ImageEdit = /** @class */ (function () {
|
|
|
21129
21215
|
// When there is image in editing, clean up any cached objects and elements
|
|
21130
21216
|
this.clearDndHelpers();
|
|
21131
21217
|
// Apply the changes, and add undo snapshot if necessary
|
|
21132
|
-
|
|
21133
|
-
this.editor.addUndoSnapshot(function () { return _this.image; }, "ImageResize" /* ImageResize */);
|
|
21134
|
-
}
|
|
21218
|
+
(0, applyChange_1.default)(this.editor, this.image, this.editInfo, this.lastSrc, this.wasResized);
|
|
21135
21219
|
// Remove editing wrapper
|
|
21136
21220
|
var wrapper = this.getImageWrapper(this.image);
|
|
21137
21221
|
if (wrapper) {
|
|
21138
21222
|
this.removeWrapper(wrapper);
|
|
21139
21223
|
}
|
|
21224
|
+
this.editor.addUndoSnapshot(function () { return _this.image; }, "ImageResize" /* ImageResize */);
|
|
21140
21225
|
if (selectImage) {
|
|
21141
21226
|
this.editor.select(this.image);
|
|
21142
21227
|
}
|
|
@@ -21499,7 +21584,6 @@ var editInfo_1 = __webpack_require__(/*! ./editInfo */ "./packages/roosterjs-edi
|
|
|
21499
21584
|
* @param image The image to apply the change
|
|
21500
21585
|
* @param editInfo Edit info that contains the changed information of the image
|
|
21501
21586
|
* @param previousSrc Last src value of the image before the change was made
|
|
21502
|
-
* @returns True if the image is changed, otherwise false
|
|
21503
21587
|
*/
|
|
21504
21588
|
function applyChange(editor, image, editInfo, previousSrc, wasResized) {
|
|
21505
21589
|
var newSrc = '';
|
|
@@ -21546,9 +21630,6 @@ function applyChange(editor, image, editInfo, previousSrc, wasResized) {
|
|
|
21546
21630
|
var _a = (0, getGeneratedImageSize_1.default)(editInfo), targetWidth = _a.targetWidth, targetHeight = _a.targetHeight;
|
|
21547
21631
|
image.src = newSrc;
|
|
21548
21632
|
setImageSize(image, wasResized, targetWidth, targetHeight);
|
|
21549
|
-
return (srcChanged ||
|
|
21550
|
-
editInfo.widthPx != initEditInfo.widthPx ||
|
|
21551
|
-
editInfo.heightPx != initEditInfo.heightPx);
|
|
21552
21633
|
}
|
|
21553
21634
|
exports.default = applyChange;
|
|
21554
21635
|
/**
|
|
@@ -23346,7 +23427,9 @@ function getAndSetNodeId(wordCustomData, element) {
|
|
|
23346
23427
|
|
|
23347
23428
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
23348
23429
|
var roosterjs_editor_dom_1 = __webpack_require__(/*! roosterjs-editor-dom */ "./packages/roosterjs-editor-dom/lib/index.ts");
|
|
23430
|
+
var MSO_COMMENT_PARENT = 'mso-comment-parent';
|
|
23349
23431
|
var MSO_COMMENT_REFERENCE = 'mso-comment-reference';
|
|
23432
|
+
var MSO_COMMENT_DATE = 'mso-comment-date';
|
|
23350
23433
|
var MSO_COMMENT_ANCHOR_HREF_REGEX = /#_msocom_/;
|
|
23351
23434
|
var MSO_SPECIAL_CHARACTER = 'mso-special-character';
|
|
23352
23435
|
var MSO_SPECIAL_CHARACTER_COMMENT = 'comment';
|
|
@@ -23357,7 +23440,7 @@ var MSO_ELEMENT_COMMENT_LIST = 'comment-list';
|
|
|
23357
23440
|
* @internal
|
|
23358
23441
|
* Removes comments when pasting Word content.
|
|
23359
23442
|
*/
|
|
23360
|
-
function commentsRemoval(elementCallbacks) {
|
|
23443
|
+
function commentsRemoval(elementCallbacks, styleCallbacks) {
|
|
23361
23444
|
// 1st Step, Remove SPAN elements added after each comment.
|
|
23362
23445
|
// Word adds multiple elements for comments as SPAN elements.
|
|
23363
23446
|
// In this step we remove these elements:
|
|
@@ -23389,11 +23472,7 @@ function commentsRemoval(elementCallbacks) {
|
|
|
23389
23472
|
// In this step we remove this Anchor elements.
|
|
23390
23473
|
(0, roosterjs_editor_dom_1.chainSanitizerCallback)(elementCallbacks, 'A', function (element) {
|
|
23391
23474
|
var _a;
|
|
23392
|
-
|
|
23393
|
-
if (!!styles[MSO_COMMENT_REFERENCE]) {
|
|
23394
|
-
(0, roosterjs_editor_dom_1.changeElementTag)(element, 'span');
|
|
23395
|
-
}
|
|
23396
|
-
else if ((0, roosterjs_editor_dom_1.safeInstanceOf)(element, 'HTMLAnchorElement') &&
|
|
23475
|
+
if ((0, roosterjs_editor_dom_1.safeInstanceOf)(element, 'HTMLAnchorElement') &&
|
|
23397
23476
|
MSO_COMMENT_ANCHOR_HREF_REGEX.test(element.href)) {
|
|
23398
23477
|
(_a = element.parentElement) === null || _a === void 0 ? void 0 : _a.removeChild(element);
|
|
23399
23478
|
}
|
|
@@ -23418,6 +23497,13 @@ function commentsRemoval(elementCallbacks) {
|
|
|
23418
23497
|
}
|
|
23419
23498
|
return true;
|
|
23420
23499
|
});
|
|
23500
|
+
/**
|
|
23501
|
+
* Remove styles related to Office Comments that can cause unwanted behaviors
|
|
23502
|
+
* depending on the user client
|
|
23503
|
+
*/
|
|
23504
|
+
(0, roosterjs_editor_dom_1.chainSanitizerCallback)(styleCallbacks, MSO_COMMENT_REFERENCE, function () { return false; });
|
|
23505
|
+
(0, roosterjs_editor_dom_1.chainSanitizerCallback)(styleCallbacks, MSO_COMMENT_DATE, function () { return false; });
|
|
23506
|
+
(0, roosterjs_editor_dom_1.chainSanitizerCallback)(styleCallbacks, MSO_COMMENT_PARENT, function () { return false; });
|
|
23421
23507
|
}
|
|
23422
23508
|
exports.default = commentsRemoval;
|
|
23423
23509
|
|
|
@@ -23484,7 +23570,7 @@ function convertPastedContentFromWord(event) {
|
|
|
23484
23570
|
}
|
|
23485
23571
|
return true;
|
|
23486
23572
|
});
|
|
23487
|
-
(0, commentsRemoval_1.default)(sanitizingOption.elementCallbacks);
|
|
23573
|
+
(0, commentsRemoval_1.default)(sanitizingOption.elementCallbacks, sanitizingOption.cssStyleCallbacks);
|
|
23488
23574
|
}
|
|
23489
23575
|
exports.default = convertPastedContentFromWord;
|
|
23490
23576
|
|
|
@@ -24035,8 +24121,6 @@ var UNIDENTIFIED_CODE = [0, 229];
|
|
|
24035
24121
|
* - Apply selected item in picker
|
|
24036
24122
|
*
|
|
24037
24123
|
* PickerPlugin doesn't provide any UI, it just wraps related DOM events and invoke callback functions.
|
|
24038
|
-
* To show a picker UI, you need to build your own UI component. Please reference to
|
|
24039
|
-
* https://github.com/microsoft/roosterjs/tree/master/demo/scripts/controls/samplepicker
|
|
24040
24124
|
*/
|
|
24041
24125
|
var PickerPlugin = /** @class */ (function () {
|
|
24042
24126
|
function PickerPlugin(dataProvider, pickerOptions) {
|
|
@@ -25336,7 +25420,7 @@ var TableResize = /** @class */ (function () {
|
|
|
25336
25420
|
break;
|
|
25337
25421
|
}
|
|
25338
25422
|
}
|
|
25339
|
-
_this.setTableEditor(currentTable);
|
|
25423
|
+
_this.setTableEditor(currentTable, e);
|
|
25340
25424
|
(_a = _this.tableEditor) === null || _a === void 0 ? void 0 : _a.onMouseMove(x, y);
|
|
25341
25425
|
};
|
|
25342
25426
|
this.invalidateTableRects = function () {
|
|
@@ -25381,13 +25465,13 @@ var TableResize = /** @class */ (function () {
|
|
|
25381
25465
|
break;
|
|
25382
25466
|
}
|
|
25383
25467
|
};
|
|
25384
|
-
TableResize.prototype.setTableEditor = function (table) {
|
|
25468
|
+
TableResize.prototype.setTableEditor = function (table, e) {
|
|
25385
25469
|
if (this.tableEditor && table != this.tableEditor.table) {
|
|
25386
25470
|
this.tableEditor.dispose();
|
|
25387
25471
|
this.tableEditor = null;
|
|
25388
25472
|
}
|
|
25389
25473
|
if (!this.tableEditor && table) {
|
|
25390
|
-
this.tableEditor = new TableEditor_1.default(this.editor, table, this.invalidateTableRects, this.onShowHelperElement);
|
|
25474
|
+
this.tableEditor = new TableEditor_1.default(this.editor, table, this.invalidateTableRects, this.onShowHelperElement, e.currentTarget);
|
|
25391
25475
|
}
|
|
25392
25476
|
};
|
|
25393
25477
|
TableResize.prototype.ensureTableRects = function () {
|
|
@@ -25631,7 +25715,7 @@ var INSERTER_HOVER_OFFSET = 5;
|
|
|
25631
25715
|
* When set a different current table or change current TD, we need to update these areas
|
|
25632
25716
|
*/
|
|
25633
25717
|
var TableEditor = /** @class */ (function () {
|
|
25634
|
-
function TableEditor(editor, table, onChanged, onShowHelperElement) {
|
|
25718
|
+
function TableEditor(editor, table, onChanged, onShowHelperElement, eventTarget) {
|
|
25635
25719
|
var _this = this;
|
|
25636
25720
|
this.editor = editor;
|
|
25637
25721
|
this.table = table;
|
|
@@ -25660,29 +25744,31 @@ var TableEditor = /** @class */ (function () {
|
|
|
25660
25744
|
_this.editor.focus();
|
|
25661
25745
|
if (table) {
|
|
25662
25746
|
var vTable = new roosterjs_editor_dom_1.VTable(table);
|
|
25663
|
-
|
|
25664
|
-
|
|
25665
|
-
|
|
25666
|
-
|
|
25667
|
-
|
|
25668
|
-
|
|
25669
|
-
|
|
25670
|
-
|
|
25671
|
-
|
|
25672
|
-
|
|
25673
|
-
|
|
25674
|
-
|
|
25675
|
-
|
|
25676
|
-
|
|
25677
|
-
|
|
25678
|
-
|
|
25679
|
-
|
|
25680
|
-
|
|
25747
|
+
if (vTable.cells) {
|
|
25748
|
+
var rows = vTable.cells.length - 1;
|
|
25749
|
+
var lastCellIndex_1 = 0;
|
|
25750
|
+
vTable.cells[rows].forEach(function (cell, index) {
|
|
25751
|
+
if (cell.td) {
|
|
25752
|
+
lastCellIndex_1 = index;
|
|
25753
|
+
}
|
|
25754
|
+
});
|
|
25755
|
+
var selection = {
|
|
25756
|
+
firstCell: {
|
|
25757
|
+
x: 0,
|
|
25758
|
+
y: 0,
|
|
25759
|
+
},
|
|
25760
|
+
lastCell: {
|
|
25761
|
+
y: rows,
|
|
25762
|
+
x: lastCellIndex_1,
|
|
25763
|
+
},
|
|
25764
|
+
};
|
|
25765
|
+
_this.editor.select(table, selection);
|
|
25766
|
+
}
|
|
25681
25767
|
}
|
|
25682
25768
|
};
|
|
25683
25769
|
this.isRTL = (0, roosterjs_editor_dom_1.getComputedStyle)(table, 'direction') == 'rtl';
|
|
25684
25770
|
this.tableResizer = (0, TableResizer_1.default)(table, editor.getZoomScale(), this.isRTL, this.onStartTableResize, this.onFinishEditing, this.onShowHelperElement);
|
|
25685
|
-
this.tableSelector = (0, TableSelector_1.default)(table, editor.getZoomScale(), this.onSelect, this.onShowHelperElement);
|
|
25771
|
+
this.tableSelector = (0, TableSelector_1.default)(table, editor.getZoomScale(), this.onSelect, this.onShowHelperElement, this.getShouldShowTableSelectorHandler(this.editor.getScrollContainer(), eventTarget));
|
|
25686
25772
|
}
|
|
25687
25773
|
TableEditor.prototype.dispose = function () {
|
|
25688
25774
|
this.disposeTableResizer();
|
|
@@ -25794,6 +25880,21 @@ var TableEditor = /** @class */ (function () {
|
|
|
25794
25880
|
}
|
|
25795
25881
|
this.editor.addUndoSnapshot();
|
|
25796
25882
|
};
|
|
25883
|
+
TableEditor.prototype.getShouldShowTableSelectorHandler = function (scrollContainer, eventTarget) {
|
|
25884
|
+
if (eventTarget && (0, roosterjs_editor_dom_1.safeInstanceOf)(eventTarget, 'HTMLElement') && scrollContainer) {
|
|
25885
|
+
var scrollContainerRect_1 = (0, roosterjs_editor_dom_1.normalizeRect)(scrollContainer.getBoundingClientRect());
|
|
25886
|
+
var containerRect_1 = (0, roosterjs_editor_dom_1.normalizeRect)(eventTarget.getBoundingClientRect());
|
|
25887
|
+
if (scrollContainerRect_1 && containerRect_1) {
|
|
25888
|
+
var scrollContainerVisibleTop_1 = scrollContainer.scrollTop - scrollContainerRect_1.top;
|
|
25889
|
+
return function (rect) {
|
|
25890
|
+
return containerRect_1.top <= rect.top &&
|
|
25891
|
+
scrollContainerVisibleTop_1 <= rect.top &&
|
|
25892
|
+
scrollContainerRect_1.top <= rect.top;
|
|
25893
|
+
};
|
|
25894
|
+
}
|
|
25895
|
+
}
|
|
25896
|
+
return function () { return true; };
|
|
25897
|
+
};
|
|
25797
25898
|
return TableEditor;
|
|
25798
25899
|
}());
|
|
25799
25900
|
exports.default = TableEditor;
|
|
@@ -25816,10 +25917,10 @@ exports.disposeTableEditFeature = void 0;
|
|
|
25816
25917
|
* @internal
|
|
25817
25918
|
*/
|
|
25818
25919
|
function disposeTableEditFeature(resizer) {
|
|
25819
|
-
var _a;
|
|
25820
|
-
(_a = resizer.div
|
|
25920
|
+
var _a, _b, _c;
|
|
25921
|
+
(_b = (_a = resizer.div) === null || _a === void 0 ? void 0 : _a.parentNode) === null || _b === void 0 ? void 0 : _b.removeChild(resizer.div);
|
|
25821
25922
|
resizer.div = null;
|
|
25822
|
-
resizer.featureHandler.dispose();
|
|
25923
|
+
(_c = resizer.featureHandler) === null || _c === void 0 ? void 0 : _c.dispose();
|
|
25823
25924
|
resizer.featureHandler = null;
|
|
25824
25925
|
}
|
|
25825
25926
|
exports.disposeTableEditFeature = disposeTableEditFeature;
|
|
@@ -26053,7 +26154,11 @@ var TABLE_SELECTOR_ID = '_Table_Selector';
|
|
|
26053
26154
|
/**
|
|
26054
26155
|
* @internal
|
|
26055
26156
|
*/
|
|
26056
|
-
function createTableSelector(table, zoomScale, onFinishDragging, onShowHelperElement) {
|
|
26157
|
+
function createTableSelector(table, zoomScale, onFinishDragging, onShowHelperElement, shouldShow) {
|
|
26158
|
+
var rect = (0, roosterjs_editor_dom_1.normalizeRect)(table.getBoundingClientRect());
|
|
26159
|
+
if (rect && shouldShow && !shouldShow(rect)) {
|
|
26160
|
+
return { div: null, featureHandler: null, node: table };
|
|
26161
|
+
}
|
|
26057
26162
|
var document = table.ownerDocument;
|
|
26058
26163
|
var createElementData = {
|
|
26059
26164
|
tag: 'div',
|
|
@@ -26068,6 +26173,7 @@ function createTableSelector(table, zoomScale, onFinishDragging, onShowHelperEle
|
|
|
26068
26173
|
var context = {
|
|
26069
26174
|
table: table,
|
|
26070
26175
|
zoomScale: zoomScale,
|
|
26176
|
+
rect: rect,
|
|
26071
26177
|
};
|
|
26072
26178
|
setSelectorDivPosition(context, div);
|
|
26073
26179
|
var onDragEnd = function (context, event) {
|
|
@@ -26083,8 +26189,7 @@ function createTableSelector(table, zoomScale, onFinishDragging, onShowHelperEle
|
|
|
26083
26189
|
}
|
|
26084
26190
|
exports.default = createTableSelector;
|
|
26085
26191
|
function setSelectorDivPosition(context, trigger) {
|
|
26086
|
-
var
|
|
26087
|
-
var rect = (0, roosterjs_editor_dom_1.normalizeRect)(table.getBoundingClientRect());
|
|
26192
|
+
var rect = context.rect;
|
|
26088
26193
|
if (rect) {
|
|
26089
26194
|
trigger.style.top = rect.top - TABLE_SELECTOR_LENGTH + "px";
|
|
26090
26195
|
trigger.style.left = rect.left - TABLE_SELECTOR_LENGTH - 2 + "px";
|