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