roosterjs 9.3.1 → 9.4.1
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 +867 -93
- package/dist/rooster-amd.js +623 -329
- 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-react-amd.js +54 -54
- package/dist/rooster-react-amd.js.map +1 -1
- package/dist/rooster.d.ts +867 -93
- package/dist/rooster.js +623 -329
- package/dist/rooster.js.map +1 -1
- package/package.json +6 -6
package/dist/rooster.js
CHANGED
|
@@ -2446,7 +2446,7 @@ function setModelIndentation(model, indentation, length, context) {
|
|
|
2446
2446
|
var currentParent = parent;
|
|
2447
2447
|
while (currentParent && modifiedBlocks.indexOf(currentBlock) < 0) {
|
|
2448
2448
|
var index = path.indexOf(currentParent);
|
|
2449
|
-
var format = currentBlock.format;
|
|
2449
|
+
var format = (0, roosterjs_content_model_dom_1.mutateBlock)(currentBlock).format;
|
|
2450
2450
|
var newValue = calculateMarginValue(format, isIndent, length);
|
|
2451
2451
|
if (newValue !== null) {
|
|
2452
2452
|
var isRtl = format.direction == 'rtl';
|
|
@@ -2894,7 +2894,7 @@ function insertEntityModel(model, entityModel, position, isBlock, focusAfterEnti
|
|
|
2894
2894
|
var pathIndex = position == 'root'
|
|
2895
2895
|
? (0, roosterjs_content_model_dom_1.getClosestAncestorBlockGroupIndex)(path, ['TableCell', 'Document'])
|
|
2896
2896
|
: 0;
|
|
2897
|
-
blockParent = path[pathIndex];
|
|
2897
|
+
blockParent = (0, roosterjs_content_model_dom_1.mutateBlock)(path[pathIndex]);
|
|
2898
2898
|
var child = path[pathIndex - 1];
|
|
2899
2899
|
var directChild = (child === null || child === void 0 ? void 0 : child.blockGroupType) == 'FormatContainer' ||
|
|
2900
2900
|
(child === null || child === void 0 ? void 0 : child.blockGroupType) == 'General' ||
|
|
@@ -2912,7 +2912,7 @@ function insertEntityModel(model, entityModel, position, isBlock, focusAfterEnti
|
|
|
2912
2912
|
var nextBlock = blockParent.blocks[blockIndex];
|
|
2913
2913
|
blocksToInsert.push(entityModel);
|
|
2914
2914
|
if ((nextBlock === null || nextBlock === void 0 ? void 0 : nextBlock.blockType) == 'Paragraph') {
|
|
2915
|
-
nextParagraph = nextBlock;
|
|
2915
|
+
nextParagraph = (0, roosterjs_content_model_dom_1.mutateBlock)(nextBlock);
|
|
2916
2916
|
}
|
|
2917
2917
|
else if (!nextBlock || nextBlock.blockType == 'Entity' || focusAfterEntity) {
|
|
2918
2918
|
nextParagraph = (0, roosterjs_content_model_dom_1.createParagraph)(false /*isImplicit*/, {}, model.format);
|
|
@@ -3134,11 +3134,6 @@ exports.matchLink = matchLink;
|
|
|
3134
3134
|
|
|
3135
3135
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
3136
3136
|
exports.findListItemsInSameThread = void 0;
|
|
3137
|
-
/**
|
|
3138
|
-
* @param model The content model
|
|
3139
|
-
* @param currentItem The current list item
|
|
3140
|
-
* Search for all list items in the same thread as the current list item
|
|
3141
|
-
*/
|
|
3142
3137
|
function findListItemsInSameThread(group, currentItem) {
|
|
3143
3138
|
var items = [];
|
|
3144
3139
|
findListItems(group, items);
|
|
@@ -3280,7 +3275,7 @@ function getListAnnounceData(path) {
|
|
|
3280
3275
|
}
|
|
3281
3276
|
else if (level.listType == 'OL') {
|
|
3282
3277
|
var listNumber = getListNumber(path, listItem);
|
|
3283
|
-
var metadata = (0, roosterjs_content_model_dom_1.
|
|
3278
|
+
var metadata = (0, roosterjs_content_model_dom_1.getListMetadata)(level);
|
|
3284
3279
|
var listStyle = (0, roosterjs_content_model_dom_1.getAutoListStyleType)('OL', metadata !== null && metadata !== void 0 ? metadata : {}, listItem.levels.length - 1, level.format.listStyleType);
|
|
3285
3280
|
return listStyle === undefined
|
|
3286
3281
|
? null
|
|
@@ -5024,7 +5019,7 @@ function changeImage(editor, file) {
|
|
|
5024
5019
|
if (dataUrl && !editor.isDisposed() && (selection === null || selection === void 0 ? void 0 : selection.type) === 'image') {
|
|
5025
5020
|
(0, formatImageWithContentModel_1.formatImageWithContentModel)(editor, 'changeImage', function (image) {
|
|
5026
5021
|
var _a, _b;
|
|
5027
|
-
var originalSrc = (_b = (_a = (0, roosterjs_content_model_dom_1.
|
|
5022
|
+
var originalSrc = (_b = (_a = (0, roosterjs_content_model_dom_1.getImageMetadata)(image)) === null || _a === void 0 ? void 0 : _a.src) !== null && _b !== void 0 ? _b : '';
|
|
5028
5023
|
var previousSrc = image.src;
|
|
5029
5024
|
image.src = dataUrl;
|
|
5030
5025
|
image.dataset = {};
|
|
@@ -6296,6 +6291,11 @@ function applyTableBorderFormat(editor, border, operation) {
|
|
|
6296
6291
|
//Format perimeter if necessary or possible
|
|
6297
6292
|
modifyPerimeter(tableModel, sel, borderFormat, perimeter, isRtl);
|
|
6298
6293
|
}
|
|
6294
|
+
var tableMeta = (0, roosterjs_content_model_dom_1.hasMetadata)(tableModel) ? (0, roosterjs_content_model_dom_1.getTableMetadata)(tableModel) : {};
|
|
6295
|
+
if (tableMeta) {
|
|
6296
|
+
// Enforce first column format if necessary
|
|
6297
|
+
(0, roosterjs_content_model_dom_1.setFirstColumnFormatBorders)(tableModel.rows, tableMeta);
|
|
6298
|
+
}
|
|
6299
6299
|
return true;
|
|
6300
6300
|
}
|
|
6301
6301
|
else {
|
|
@@ -6602,7 +6602,6 @@ function setTableCellShade(editor, color) {
|
|
|
6602
6602
|
editor.formatContentModel(function (model) {
|
|
6603
6603
|
var _a = (0, tslib_1.__read)((0, roosterjs_content_model_dom_1.getFirstSelectedTable)(model), 1), table = _a[0];
|
|
6604
6604
|
if (table) {
|
|
6605
|
-
(0, roosterjs_content_model_dom_1.normalizeTable)(table);
|
|
6606
6605
|
table.rows.forEach(function (row) {
|
|
6607
6606
|
return row.cells.forEach(function (cell) {
|
|
6608
6607
|
if ((0, roosterjs_content_model_dom_1.hasSelectionInBlockGroup)(cell)) {
|
|
@@ -8574,7 +8573,7 @@ var roosterjs_content_model_dom_1 = __webpack_require__(/*! roosterjs-content-mo
|
|
|
8574
8573
|
*/
|
|
8575
8574
|
var formatContentModel = function (core, formatter, options, domToModelOptions) {
|
|
8576
8575
|
var _a;
|
|
8577
|
-
var _b = options || {},
|
|
8576
|
+
var _b = options || {}, onNodeCreated = _b.onNodeCreated, getChangeData = _b.getChangeData, rawEvent = _b.rawEvent, selectionOverride = _b.selectionOverride, scrollCaretIntoView = _b.scrollCaretIntoView;
|
|
8578
8577
|
var model = core.api.createContentModel(core, domToModelOptions, selectionOverride);
|
|
8579
8578
|
var context = {
|
|
8580
8579
|
newEntities: [],
|
|
@@ -8608,9 +8607,9 @@ var formatContentModel = function (core, formatter, options, domToModelOptions)
|
|
|
8608
8607
|
eventType: 'contentChanged',
|
|
8609
8608
|
contentModel: clearModelCache ? undefined : model,
|
|
8610
8609
|
selection: clearModelCache ? undefined : selection,
|
|
8611
|
-
source: changeSource || roosterjs_content_model_dom_1.ChangeSource.Format,
|
|
8610
|
+
source: (options === null || options === void 0 ? void 0 : options.changeSource) || roosterjs_content_model_dom_1.ChangeSource.Format,
|
|
8612
8611
|
data: getChangeData === null || getChangeData === void 0 ? void 0 : getChangeData(),
|
|
8613
|
-
formatApiName: apiName,
|
|
8612
|
+
formatApiName: options === null || options === void 0 ? void 0 : options.apiName,
|
|
8614
8613
|
changedEntities: getChangedEntities(context, rawEvent),
|
|
8615
8614
|
};
|
|
8616
8615
|
core.api.triggerEvent(core, eventData, true /*broadcast*/);
|
|
@@ -9293,8 +9292,6 @@ var HIDE_CURSOR_CSS_KEY = '_DOMSelectionHideCursor';
|
|
|
9293
9292
|
var HIDE_SELECTION_CSS_KEY = '_DOMSelectionHideSelection';
|
|
9294
9293
|
var IMAGE_ID = 'image';
|
|
9295
9294
|
var TABLE_ID = 'table';
|
|
9296
|
-
var DEFAULT_SELECTION_BORDER_COLOR = '#DB626C';
|
|
9297
|
-
var TABLE_CSS_RULE = 'background-color:#C6C6C6!important;';
|
|
9298
9295
|
var CARET_CSS_RULE = 'caret-color: transparent';
|
|
9299
9296
|
var TRANSPARENT_SELECTION_CSS_RULE = 'background-color: transparent !important;';
|
|
9300
9297
|
var SELECTION_SELECTOR = '*::selection';
|
|
@@ -9307,6 +9304,7 @@ var setDOMSelection = function (core, selection, skipSelectionChangedEvent) {
|
|
|
9307
9304
|
// Set skipReselectOnFocus to skip this behavior
|
|
9308
9305
|
var skipReselectOnFocus = core.selection.skipReselectOnFocus;
|
|
9309
9306
|
var doc = core.physicalRoot.ownerDocument;
|
|
9307
|
+
var isDarkMode = core.lifecycle.isDarkMode;
|
|
9310
9308
|
core.selection.skipReselectOnFocus = true;
|
|
9311
9309
|
core.api.setEditorStyle(core, DOM_SELECTION_CSS_KEY, null /*cssRule*/);
|
|
9312
9310
|
core.api.setEditorStyle(core, HIDE_CURSOR_CSS_KEY, null /*cssRule*/);
|
|
@@ -9319,7 +9317,10 @@ var setDOMSelection = function (core, selection, skipSelectionChangedEvent) {
|
|
|
9319
9317
|
type: 'image',
|
|
9320
9318
|
image: image,
|
|
9321
9319
|
};
|
|
9322
|
-
|
|
9320
|
+
var imageSelectionColor = isDarkMode
|
|
9321
|
+
? core.selection.imageSelectionBorderColorDark
|
|
9322
|
+
: core.selection.imageSelectionBorderColor;
|
|
9323
|
+
core.api.setEditorStyle(core, DOM_SELECTION_CSS_KEY, "outline-style:auto!important; outline-color:" + imageSelectionColor + "!important;", ["span:has(>img#" + (0, ensureUniqueId_1.ensureUniqueId)(image, IMAGE_ID) + ")"]);
|
|
9323
9324
|
core.api.setEditorStyle(core, HIDE_SELECTION_CSS_KEY, TRANSPARENT_SELECTION_CSS_RULE, [SELECTION_SELECTOR]);
|
|
9324
9325
|
setRangeSelection(doc, image, false /* collapse */);
|
|
9325
9326
|
break;
|
|
@@ -9359,7 +9360,10 @@ var setDOMSelection = function (core, selection, skipSelectionChangedEvent) {
|
|
|
9359
9360
|
? ["#" + tableId, "#" + tableId + " *"]
|
|
9360
9361
|
: handleTableSelected(parsedTable, tableId, table, firstCell, lastCell);
|
|
9361
9362
|
core.selection.selection = selection;
|
|
9362
|
-
|
|
9363
|
+
var tableSelectionColor = isDarkMode
|
|
9364
|
+
? core.selection.tableCellSelectionBackgroundColorDark
|
|
9365
|
+
: core.selection.tableCellSelectionBackgroundColor;
|
|
9366
|
+
core.api.setEditorStyle(core, DOM_SELECTION_CSS_KEY, "background-color:" + tableSelectionColor + "!important;", tableSelectors);
|
|
9363
9367
|
core.api.setEditorStyle(core, HIDE_CURSOR_CSS_KEY, CARET_CSS_RULE);
|
|
9364
9368
|
var nodeToSelect = ((_c = firstCell.cell) === null || _c === void 0 ? void 0 : _c.firstElementChild) || firstCell.cell;
|
|
9365
9369
|
if (nodeToSelect) {
|
|
@@ -10667,7 +10671,7 @@ var deleteEmptyList = function (context) {
|
|
|
10667
10671
|
(!previousBlock || (0, roosterjs_content_model_dom_1.hasSelectionInBlock)(previousBlock)) &&
|
|
10668
10672
|
nextBlock &&
|
|
10669
10673
|
isEmptyBlock(nextBlock)) {
|
|
10670
|
-
item.levels = [];
|
|
10674
|
+
(0, roosterjs_content_model_dom_1.mutateBlock)(item).levels = [];
|
|
10671
10675
|
}
|
|
10672
10676
|
}
|
|
10673
10677
|
}
|
|
@@ -12104,7 +12108,7 @@ exports.createLifecyclePlugin = createLifecyclePlugin;
|
|
|
12104
12108
|
"use strict";
|
|
12105
12109
|
|
|
12106
12110
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
12107
|
-
exports.createSelectionPlugin = void 0;
|
|
12111
|
+
exports.createSelectionPlugin = exports.DEFAULT_TABLE_CELL_SELECTION_BACKGROUND_COLOR = exports.DEFAULT_SELECTION_BORDER_COLOR = void 0;
|
|
12108
12112
|
var findCoordinate_1 = __webpack_require__(/*! ./findCoordinate */ "./packages/roosterjs-content-model-core/lib/corePlugin/selection/findCoordinate.ts");
|
|
12109
12113
|
var findTableCellElement_1 = __webpack_require__(/*! ../../coreApi/setDOMSelection/findTableCellElement */ "./packages/roosterjs-content-model-core/lib/coreApi/setDOMSelection/findTableCellElement.ts");
|
|
12110
12114
|
var isSingleImageInSelection_1 = __webpack_require__(/*! ./isSingleImageInSelection */ "./packages/roosterjs-content-model-core/lib/corePlugin/selection/isSingleImageInSelection.ts");
|
|
@@ -12118,9 +12122,18 @@ var Down = 'ArrowDown';
|
|
|
12118
12122
|
var Left = 'ArrowLeft';
|
|
12119
12123
|
var Right = 'ArrowRight';
|
|
12120
12124
|
var Tab = 'Tab';
|
|
12125
|
+
/**
|
|
12126
|
+
* @internal
|
|
12127
|
+
*/
|
|
12128
|
+
exports.DEFAULT_SELECTION_BORDER_COLOR = '#DB626C';
|
|
12129
|
+
/**
|
|
12130
|
+
* @internal
|
|
12131
|
+
*/
|
|
12132
|
+
exports.DEFAULT_TABLE_CELL_SELECTION_BACKGROUND_COLOR = '#C6C6C6';
|
|
12121
12133
|
var SelectionPlugin = /** @class */ (function () {
|
|
12122
12134
|
function SelectionPlugin(options) {
|
|
12123
12135
|
var _this = this;
|
|
12136
|
+
var _a, _b;
|
|
12124
12137
|
this.editor = null;
|
|
12125
12138
|
this.disposer = null;
|
|
12126
12139
|
this.isSafari = false;
|
|
@@ -12241,7 +12254,14 @@ var SelectionPlugin = /** @class */ (function () {
|
|
|
12241
12254
|
this.state = {
|
|
12242
12255
|
selection: null,
|
|
12243
12256
|
tableSelection: null,
|
|
12244
|
-
imageSelectionBorderColor: options.imageSelectionBorderColor,
|
|
12257
|
+
imageSelectionBorderColor: (_a = options.imageSelectionBorderColor) !== null && _a !== void 0 ? _a : exports.DEFAULT_SELECTION_BORDER_COLOR,
|
|
12258
|
+
imageSelectionBorderColorDark: options.imageSelectionBorderColor
|
|
12259
|
+
? undefined
|
|
12260
|
+
: exports.DEFAULT_SELECTION_BORDER_COLOR,
|
|
12261
|
+
tableCellSelectionBackgroundColor: (_b = options.tableCellSelectionBackgroundColor) !== null && _b !== void 0 ? _b : exports.DEFAULT_TABLE_CELL_SELECTION_BACKGROUND_COLOR,
|
|
12262
|
+
tableCellSelectionBackgroundColorDark: options.tableCellSelectionBackgroundColor
|
|
12263
|
+
? undefined
|
|
12264
|
+
: exports.DEFAULT_TABLE_CELL_SELECTION_BACKGROUND_COLOR,
|
|
12245
12265
|
};
|
|
12246
12266
|
}
|
|
12247
12267
|
SelectionPlugin.prototype.getName = function () {
|
|
@@ -12249,6 +12269,17 @@ var SelectionPlugin = /** @class */ (function () {
|
|
|
12249
12269
|
};
|
|
12250
12270
|
SelectionPlugin.prototype.initialize = function (editor) {
|
|
12251
12271
|
this.editor = editor;
|
|
12272
|
+
if (!this.state.imageSelectionBorderColorDark && this.state.imageSelectionBorderColor) {
|
|
12273
|
+
this.state.imageSelectionBorderColorDark = editor
|
|
12274
|
+
.getColorManager()
|
|
12275
|
+
.getDarkColor(this.state.imageSelectionBorderColor, undefined, 'border');
|
|
12276
|
+
}
|
|
12277
|
+
if (!this.state.tableCellSelectionBackgroundColorDark &&
|
|
12278
|
+
this.state.tableCellSelectionBackgroundColor) {
|
|
12279
|
+
this.state.tableCellSelectionBackgroundColorDark = editor
|
|
12280
|
+
.getColorManager()
|
|
12281
|
+
.getDarkColor(this.state.tableCellSelectionBackgroundColor, undefined, 'background');
|
|
12282
|
+
}
|
|
12252
12283
|
var env = this.editor.getEnvironment();
|
|
12253
12284
|
var document = this.editor.getDocument();
|
|
12254
12285
|
this.isSafari = !!env.isSafari;
|
|
@@ -12555,6 +12586,7 @@ var SelectionPlugin = /** @class */ (function () {
|
|
|
12555
12586
|
var parsedTable;
|
|
12556
12587
|
var firstCo;
|
|
12557
12588
|
if ((table = domHelper.findClosestElementAncestor(tableStart, 'table')) &&
|
|
12589
|
+
table.isContentEditable &&
|
|
12558
12590
|
(parsedTable = (0, roosterjs_content_model_dom_1.parseTableCells)(table)) &&
|
|
12559
12591
|
(firstCo = (0, findCoordinate_1.findCoordinate)(parsedTable, tdStart, domHelper))) {
|
|
12560
12592
|
return { table: table, parsedTable: parsedTable, firstCo: firstCo, startNode: tdStart };
|
|
@@ -19583,9 +19615,9 @@ exports.shouldSetValue = shouldSetValue;
|
|
|
19583
19615
|
"use strict";
|
|
19584
19616
|
|
|
19585
19617
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
19586
|
-
exports.
|
|
19587
|
-
exports.
|
|
19588
|
-
exports.UnorderedListStyleMap = exports.OrderedListStyleMap = exports.TableBorderFormat = exports.NumberingListType = exports.BulletListType = exports.ChangeSource = exports.ListMetadataDefinition = exports.updateListMetadata = exports.updateTableMetadata = exports.updateTableCellMetadata = exports.updateImageMetadata = exports.getSegmentTextFormat = exports.getListStyleTypeFromString = exports.retrieveModelFormatState = exports.setTableCellBackgroundColor = exports.MIN_ALLOWED_TABLE_CELL_WIDTH = exports.normalizeTable = exports.applyTableFormat = exports.deleteBlock = exports.deleteSegment = exports.deleteSelection = exports.mergeModel = exports.cloneModel = exports.setSelection = exports.hasSelectionInBlockGroup = exports.hasSelectionInSegment = exports.hasSelectionInBlock = exports.getSelectedCells = exports.getSelectedSegmentsAndParagraphs = void 0;
|
|
19618
|
+
exports.createDivider = exports.createEntity = exports.createGeneralBlock = exports.createGeneralSegment = exports.createParagraphDecorator = exports.createContentModelDocument = exports.createImage = exports.createText = exports.createTableCell = exports.createTable = exports.createSelectionMarker = exports.createParagraph = exports.createFormatContainer = exports.createListItem = exports.createBr = exports.normalizeRect = exports.isWhiteSpacePreserved = exports.reuseCachedElement = exports.findClosestBlockEntityContainer = exports.isBlockEntityContainer = exports.isEntityDelimiter = exports.addDelimiters = exports.generateEntityClassNames = exports.parseEntityFormat = exports.getAllEntityWrappers = exports.findClosestEntityWrapper = exports.isEntityElement = exports.wrap = exports.wrapAllChildNodes = exports.moveChildNodes = exports.toArray = exports.getObjectKeys = exports.isElementOfType = exports.isNodeOfType = exports.hasMetadata = exports.getMetadata = exports.updateMetadata = exports.buildSelectionMarker = exports.isBlockElement = exports.areSameFormats = exports.parseFormat = exports.getRegularSelectionOffsets = exports.tableProcessor = exports.entityProcessor = exports.processChildNode = exports.handleRegularSelection = exports.childProcessor = exports.contentModelToText = exports.contentModelToDom = exports.domToContentModel = void 0;
|
|
19619
|
+
exports.iterateSelections = exports.getClosestAncestorBlockGroupIndex = exports.isBlockGroupOfType = exports.cacheGetEventData = exports.extractClipboardItems = exports.transformColor = exports.readFile = exports.parseTableCells = exports.normalizeText = exports.isSpace = exports.isPunctuation = exports.extractBorderValues = exports.combineBorderValue = exports.isCursorMovingKey = exports.isModifierKey = exports.isCharacterValue = exports.getSelectionRootNode = exports.isBold = exports.createModelToDomConfig = exports.createModelToDomContextWithConfig = exports.createModelToDomContext = exports.createDomToModelConfig = exports.createDomToModelContextWithConfig = exports.createDomToModelContext = exports.parseColor = exports.setColor = exports.getColor = exports.DeprecatedColors = exports.BorderKeys = exports.parseValueWithUnit = exports.getAutoListStyleType = exports.getOrderedListNumberStr = exports.setParagraphNotImplicit = exports.normalizeSingleSegment = exports.isEmpty = exports.addSegment = exports.unwrapBlock = exports.isGeneralSegment = exports.normalizeContentModel = exports.normalizeParagraph = exports.addTextSegment = exports.addLink = exports.addCode = exports.addBlock = exports.mutateSegment = exports.mutateSegments = exports.mutateBlock = exports.createTableRow = exports.createEmptyModel = exports.createListLevel = void 0;
|
|
19620
|
+
exports.UnorderedListStyleMap = exports.OrderedListStyleMap = exports.TableBorderFormat = exports.NumberingListType = exports.BulletListType = exports.ChangeSource = exports.ListMetadataDefinition = exports.getListMetadata = exports.updateListMetadata = exports.getTableMetadata = exports.updateTableMetadata = exports.getTableCellMetadata = exports.updateTableCellMetadata = exports.getImageMetadata = exports.updateImageMetadata = exports.getSegmentTextFormat = exports.getListStyleTypeFromString = exports.retrieveModelFormatState = exports.setTableCellBackgroundColor = exports.MIN_ALLOWED_TABLE_CELL_WIDTH = exports.normalizeTable = exports.setFirstColumnFormatBorders = exports.applyTableFormat = exports.deleteBlock = exports.deleteSegment = exports.deleteSelection = exports.mergeModel = exports.cloneModel = exports.setSelection = exports.hasSelectionInBlockGroup = exports.hasSelectionInSegment = exports.hasSelectionInBlock = exports.getSelectedCells = exports.getSelectedSegmentsAndParagraphs = exports.getSelectedSegments = exports.getSelectedParagraphs = exports.getOperationalBlocks = exports.getFirstSelectedTable = exports.getFirstSelectedListItem = void 0;
|
|
19589
19621
|
var domToContentModel_1 = __webpack_require__(/*! ./domToModel/domToContentModel */ "./packages/roosterjs-content-model-dom/lib/domToModel/domToContentModel.ts");
|
|
19590
19622
|
Object.defineProperty(exports, "domToContentModel", ({ enumerable: true, get: function () { return domToContentModel_1.domToContentModel; } }));
|
|
19591
19623
|
var contentModelToDom_1 = __webpack_require__(/*! ./modelToDom/contentModelToDom */ "./packages/roosterjs-content-model-dom/lib/modelToDom/contentModelToDom.ts");
|
|
@@ -19612,6 +19644,7 @@ var buildSelectionMarker_1 = __webpack_require__(/*! ./domToModel/utils/buildSel
|
|
|
19612
19644
|
Object.defineProperty(exports, "buildSelectionMarker", ({ enumerable: true, get: function () { return buildSelectionMarker_1.buildSelectionMarker; } }));
|
|
19613
19645
|
var updateMetadata_1 = __webpack_require__(/*! ./modelApi/metadata/updateMetadata */ "./packages/roosterjs-content-model-dom/lib/modelApi/metadata/updateMetadata.ts");
|
|
19614
19646
|
Object.defineProperty(exports, "updateMetadata", ({ enumerable: true, get: function () { return updateMetadata_1.updateMetadata; } }));
|
|
19647
|
+
Object.defineProperty(exports, "getMetadata", ({ enumerable: true, get: function () { return updateMetadata_1.getMetadata; } }));
|
|
19615
19648
|
Object.defineProperty(exports, "hasMetadata", ({ enumerable: true, get: function () { return updateMetadata_1.hasMetadata; } }));
|
|
19616
19649
|
var isNodeOfType_1 = __webpack_require__(/*! ./domUtils/isNodeOfType */ "./packages/roosterjs-content-model-dom/lib/domUtils/isNodeOfType.ts");
|
|
19617
19650
|
Object.defineProperty(exports, "isNodeOfType", ({ enumerable: true, get: function () { return isNodeOfType_1.isNodeOfType; } }));
|
|
@@ -19676,6 +19709,12 @@ var createListLevel_1 = __webpack_require__(/*! ./modelApi/creators/createListLe
|
|
|
19676
19709
|
Object.defineProperty(exports, "createListLevel", ({ enumerable: true, get: function () { return createListLevel_1.createListLevel; } }));
|
|
19677
19710
|
var createEmptyModel_1 = __webpack_require__(/*! ./modelApi/creators/createEmptyModel */ "./packages/roosterjs-content-model-dom/lib/modelApi/creators/createEmptyModel.ts");
|
|
19678
19711
|
Object.defineProperty(exports, "createEmptyModel", ({ enumerable: true, get: function () { return createEmptyModel_1.createEmptyModel; } }));
|
|
19712
|
+
var createTableRow_1 = __webpack_require__(/*! ./modelApi/creators/createTableRow */ "./packages/roosterjs-content-model-dom/lib/modelApi/creators/createTableRow.ts");
|
|
19713
|
+
Object.defineProperty(exports, "createTableRow", ({ enumerable: true, get: function () { return createTableRow_1.createTableRow; } }));
|
|
19714
|
+
var mutate_1 = __webpack_require__(/*! ./modelApi/common/mutate */ "./packages/roosterjs-content-model-dom/lib/modelApi/common/mutate.ts");
|
|
19715
|
+
Object.defineProperty(exports, "mutateBlock", ({ enumerable: true, get: function () { return mutate_1.mutateBlock; } }));
|
|
19716
|
+
Object.defineProperty(exports, "mutateSegments", ({ enumerable: true, get: function () { return mutate_1.mutateSegments; } }));
|
|
19717
|
+
Object.defineProperty(exports, "mutateSegment", ({ enumerable: true, get: function () { return mutate_1.mutateSegment; } }));
|
|
19679
19718
|
var addBlock_1 = __webpack_require__(/*! ./modelApi/common/addBlock */ "./packages/roosterjs-content-model-dom/lib/modelApi/common/addBlock.ts");
|
|
19680
19719
|
Object.defineProperty(exports, "addBlock", ({ enumerable: true, get: function () { return addBlock_1.addBlock; } }));
|
|
19681
19720
|
var addDecorators_1 = __webpack_require__(/*! ./modelApi/common/addDecorators */ "./packages/roosterjs-content-model-dom/lib/modelApi/common/addDecorators.ts");
|
|
@@ -19781,6 +19820,7 @@ var deleteBlock_1 = __webpack_require__(/*! ./modelApi/editing/deleteBlock */ ".
|
|
|
19781
19820
|
Object.defineProperty(exports, "deleteBlock", ({ enumerable: true, get: function () { return deleteBlock_1.deleteBlock; } }));
|
|
19782
19821
|
var applyTableFormat_1 = __webpack_require__(/*! ./modelApi/editing/applyTableFormat */ "./packages/roosterjs-content-model-dom/lib/modelApi/editing/applyTableFormat.ts");
|
|
19783
19822
|
Object.defineProperty(exports, "applyTableFormat", ({ enumerable: true, get: function () { return applyTableFormat_1.applyTableFormat; } }));
|
|
19823
|
+
Object.defineProperty(exports, "setFirstColumnFormatBorders", ({ enumerable: true, get: function () { return applyTableFormat_1.setFirstColumnFormatBorders; } }));
|
|
19784
19824
|
var normalizeTable_1 = __webpack_require__(/*! ./modelApi/editing/normalizeTable */ "./packages/roosterjs-content-model-dom/lib/modelApi/editing/normalizeTable.ts");
|
|
19785
19825
|
Object.defineProperty(exports, "normalizeTable", ({ enumerable: true, get: function () { return normalizeTable_1.normalizeTable; } }));
|
|
19786
19826
|
Object.defineProperty(exports, "MIN_ALLOWED_TABLE_CELL_WIDTH", ({ enumerable: true, get: function () { return normalizeTable_1.MIN_ALLOWED_TABLE_CELL_WIDTH; } }));
|
|
@@ -19794,12 +19834,16 @@ var getSegmentTextFormat_1 = __webpack_require__(/*! ./modelApi/editing/getSegme
|
|
|
19794
19834
|
Object.defineProperty(exports, "getSegmentTextFormat", ({ enumerable: true, get: function () { return getSegmentTextFormat_1.getSegmentTextFormat; } }));
|
|
19795
19835
|
var updateImageMetadata_1 = __webpack_require__(/*! ./modelApi/metadata/updateImageMetadata */ "./packages/roosterjs-content-model-dom/lib/modelApi/metadata/updateImageMetadata.ts");
|
|
19796
19836
|
Object.defineProperty(exports, "updateImageMetadata", ({ enumerable: true, get: function () { return updateImageMetadata_1.updateImageMetadata; } }));
|
|
19837
|
+
Object.defineProperty(exports, "getImageMetadata", ({ enumerable: true, get: function () { return updateImageMetadata_1.getImageMetadata; } }));
|
|
19797
19838
|
var updateTableCellMetadata_1 = __webpack_require__(/*! ./modelApi/metadata/updateTableCellMetadata */ "./packages/roosterjs-content-model-dom/lib/modelApi/metadata/updateTableCellMetadata.ts");
|
|
19798
19839
|
Object.defineProperty(exports, "updateTableCellMetadata", ({ enumerable: true, get: function () { return updateTableCellMetadata_1.updateTableCellMetadata; } }));
|
|
19840
|
+
Object.defineProperty(exports, "getTableCellMetadata", ({ enumerable: true, get: function () { return updateTableCellMetadata_1.getTableCellMetadata; } }));
|
|
19799
19841
|
var updateTableMetadata_1 = __webpack_require__(/*! ./modelApi/metadata/updateTableMetadata */ "./packages/roosterjs-content-model-dom/lib/modelApi/metadata/updateTableMetadata.ts");
|
|
19800
19842
|
Object.defineProperty(exports, "updateTableMetadata", ({ enumerable: true, get: function () { return updateTableMetadata_1.updateTableMetadata; } }));
|
|
19843
|
+
Object.defineProperty(exports, "getTableMetadata", ({ enumerable: true, get: function () { return updateTableMetadata_1.getTableMetadata; } }));
|
|
19801
19844
|
var updateListMetadata_1 = __webpack_require__(/*! ./modelApi/metadata/updateListMetadata */ "./packages/roosterjs-content-model-dom/lib/modelApi/metadata/updateListMetadata.ts");
|
|
19802
19845
|
Object.defineProperty(exports, "updateListMetadata", ({ enumerable: true, get: function () { return updateListMetadata_1.updateListMetadata; } }));
|
|
19846
|
+
Object.defineProperty(exports, "getListMetadata", ({ enumerable: true, get: function () { return updateListMetadata_1.getListMetadata; } }));
|
|
19803
19847
|
Object.defineProperty(exports, "ListMetadataDefinition", ({ enumerable: true, get: function () { return updateListMetadata_1.ListMetadataDefinition; } }));
|
|
19804
19848
|
var ChangeSource_1 = __webpack_require__(/*! ./constants/ChangeSource */ "./packages/roosterjs-content-model-dom/lib/constants/ChangeSource.ts");
|
|
19805
19849
|
Object.defineProperty(exports, "ChangeSource", ({ enumerable: true, get: function () { return ChangeSource_1.ChangeSource; } }));
|
|
@@ -19821,19 +19865,20 @@ Object.defineProperty(exports, "UnorderedListStyleMap", ({ enumerable: true, get
|
|
|
19821
19865
|
/*!********************************************************************************************!*\
|
|
19822
19866
|
!*** ./packages/roosterjs-content-model-dom/lib/modelApi/block/setParagraphNotImplicit.ts ***!
|
|
19823
19867
|
\********************************************************************************************/
|
|
19824
|
-
/***/ ((__unused_webpack_module, exports) => {
|
|
19868
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
19825
19869
|
|
|
19826
19870
|
"use strict";
|
|
19827
19871
|
|
|
19828
19872
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
19829
19873
|
exports.setParagraphNotImplicit = void 0;
|
|
19874
|
+
var mutate_1 = __webpack_require__(/*! ../common/mutate */ "./packages/roosterjs-content-model-dom/lib/modelApi/common/mutate.ts");
|
|
19830
19875
|
/**
|
|
19831
19876
|
* For a given block, if it is a paragraph, set it to be not-implicit
|
|
19832
19877
|
* @param block The block to check
|
|
19833
19878
|
*/
|
|
19834
19879
|
function setParagraphNotImplicit(block) {
|
|
19835
19880
|
if (block.blockType == 'Paragraph' && block.isImplicit) {
|
|
19836
|
-
block.isImplicit = false;
|
|
19881
|
+
(0, mutate_1.mutateBlock)(block).isImplicit = false;
|
|
19837
19882
|
}
|
|
19838
19883
|
}
|
|
19839
19884
|
exports.setParagraphNotImplicit = setParagraphNotImplicit;
|
|
@@ -19923,13 +19968,6 @@ exports.addDecorators = addDecorators;
|
|
|
19923
19968
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
19924
19969
|
exports.addSegment = void 0;
|
|
19925
19970
|
var ensureParagraph_1 = __webpack_require__(/*! ./ensureParagraph */ "./packages/roosterjs-content-model-dom/lib/modelApi/common/ensureParagraph.ts");
|
|
19926
|
-
/**
|
|
19927
|
-
* Add a given segment into a paragraph from its parent group. If the last block of the given group is not paragraph, create a new paragraph.
|
|
19928
|
-
* @param group The parent block group of the paragraph to add segment into
|
|
19929
|
-
* @param newSegment The segment to add
|
|
19930
|
-
* @param blockFormat The block format used for creating a new paragraph when need
|
|
19931
|
-
* @returns The parent paragraph where the segment is added to
|
|
19932
|
-
*/
|
|
19933
19971
|
function addSegment(group, newSegment, blockFormat, segmentFormat) {
|
|
19934
19972
|
var paragraph = (0, ensureParagraph_1.ensureParagraph)(group, blockFormat, segmentFormat);
|
|
19935
19973
|
var lastSegment = paragraph.segments[paragraph.segments.length - 1];
|
|
@@ -20022,16 +20060,11 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
|
20022
20060
|
exports.ensureParagraph = void 0;
|
|
20023
20061
|
var addBlock_1 = __webpack_require__(/*! ./addBlock */ "./packages/roosterjs-content-model-dom/lib/modelApi/common/addBlock.ts");
|
|
20024
20062
|
var createParagraph_1 = __webpack_require__(/*! ../creators/createParagraph */ "./packages/roosterjs-content-model-dom/lib/modelApi/creators/createParagraph.ts");
|
|
20025
|
-
|
|
20026
|
-
* @internal
|
|
20027
|
-
* Ensure there is a Paragraph that can insert segments in a Content Model Block Group
|
|
20028
|
-
* @param group The parent block group of the target paragraph
|
|
20029
|
-
* @param blockFormat Format of the paragraph. This is only used if we need to create a new paragraph
|
|
20030
|
-
*/
|
|
20063
|
+
var mutate_1 = __webpack_require__(/*! ./mutate */ "./packages/roosterjs-content-model-dom/lib/modelApi/common/mutate.ts");
|
|
20031
20064
|
function ensureParagraph(group, blockFormat, segmentFormat) {
|
|
20032
20065
|
var lastBlock = group.blocks[group.blocks.length - 1];
|
|
20033
20066
|
if ((lastBlock === null || lastBlock === void 0 ? void 0 : lastBlock.blockType) == 'Paragraph') {
|
|
20034
|
-
return lastBlock;
|
|
20067
|
+
return (0, mutate_1.mutateBlock)(lastBlock);
|
|
20035
20068
|
}
|
|
20036
20069
|
else {
|
|
20037
20070
|
var paragraph = (0, createParagraph_1.createParagraph)(true, blockFormat, segmentFormat);
|
|
@@ -20159,6 +20192,87 @@ function isBlockGroup(model) {
|
|
|
20159
20192
|
}
|
|
20160
20193
|
|
|
20161
20194
|
|
|
20195
|
+
/***/ }),
|
|
20196
|
+
|
|
20197
|
+
/***/ "./packages/roosterjs-content-model-dom/lib/modelApi/common/mutate.ts":
|
|
20198
|
+
/*!****************************************************************************!*\
|
|
20199
|
+
!*** ./packages/roosterjs-content-model-dom/lib/modelApi/common/mutate.ts ***!
|
|
20200
|
+
\****************************************************************************/
|
|
20201
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
20202
|
+
|
|
20203
|
+
"use strict";
|
|
20204
|
+
|
|
20205
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
20206
|
+
exports.mutateSegment = exports.mutateSegments = exports.mutateBlock = void 0;
|
|
20207
|
+
var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.mjs");
|
|
20208
|
+
/**
|
|
20209
|
+
* Convert a readonly block to mutable block, clear cached element if exist
|
|
20210
|
+
* @param block The block to convert from
|
|
20211
|
+
* @returns The same block object of its related mutable type
|
|
20212
|
+
*/
|
|
20213
|
+
function mutateBlock(block) {
|
|
20214
|
+
if (block.cachedElement) {
|
|
20215
|
+
delete block.cachedElement;
|
|
20216
|
+
}
|
|
20217
|
+
if (isTable(block)) {
|
|
20218
|
+
block.rows.forEach(function (row) {
|
|
20219
|
+
delete row.cachedElement;
|
|
20220
|
+
});
|
|
20221
|
+
}
|
|
20222
|
+
else if (isListItem(block)) {
|
|
20223
|
+
block.levels.forEach(function (level) { return delete level.cachedElement; });
|
|
20224
|
+
}
|
|
20225
|
+
var result = block;
|
|
20226
|
+
return result;
|
|
20227
|
+
}
|
|
20228
|
+
exports.mutateBlock = mutateBlock;
|
|
20229
|
+
/**
|
|
20230
|
+
* Convert segments of a readonly paragraph to be mutable.
|
|
20231
|
+
* Segments that are not belong to the given paragraph will be skipped
|
|
20232
|
+
* @param paragraph The readonly paragraph to convert from
|
|
20233
|
+
* @param segments The segments to convert from
|
|
20234
|
+
*/
|
|
20235
|
+
function mutateSegments(paragraph, segments) {
|
|
20236
|
+
var mutablePara = mutateBlock(paragraph);
|
|
20237
|
+
var result = [mutablePara, [], []];
|
|
20238
|
+
if (segments) {
|
|
20239
|
+
segments.forEach(function (segment) {
|
|
20240
|
+
var index = paragraph.segments.indexOf(segment);
|
|
20241
|
+
if (index >= 0) {
|
|
20242
|
+
result[1].push(mutablePara.segments[index]);
|
|
20243
|
+
result[2].push(index);
|
|
20244
|
+
}
|
|
20245
|
+
});
|
|
20246
|
+
}
|
|
20247
|
+
return result;
|
|
20248
|
+
}
|
|
20249
|
+
exports.mutateSegments = mutateSegments;
|
|
20250
|
+
/**
|
|
20251
|
+
* Convert a readonly segment to be mutable, together with its owner paragraph
|
|
20252
|
+
* If the segment does not belong to the given paragraph, return null for the segment
|
|
20253
|
+
* @param paragraph The readonly paragraph to convert from
|
|
20254
|
+
* @param segment The segment to convert from
|
|
20255
|
+
*/
|
|
20256
|
+
function mutateSegment(paragraph, segment, callback) {
|
|
20257
|
+
var _a;
|
|
20258
|
+
var _b = (0, tslib_1.__read)(mutateSegments(paragraph, [segment]), 3), mutablePara = _b[0], mutableSegments = _b[1], indexes = _b[2];
|
|
20259
|
+
var mutableSegment = mutableSegments[0] == segment
|
|
20260
|
+
? mutableSegments[0]
|
|
20261
|
+
: null;
|
|
20262
|
+
if (callback && mutableSegment) {
|
|
20263
|
+
callback(mutableSegments[0], mutablePara, indexes[0]);
|
|
20264
|
+
}
|
|
20265
|
+
return [mutablePara, mutableSegment, (_a = indexes[0]) !== null && _a !== void 0 ? _a : -1];
|
|
20266
|
+
}
|
|
20267
|
+
exports.mutateSegment = mutateSegment;
|
|
20268
|
+
function isTable(obj) {
|
|
20269
|
+
return obj.blockType == 'Table';
|
|
20270
|
+
}
|
|
20271
|
+
function isListItem(obj) {
|
|
20272
|
+
return obj.blockGroupType == 'ListItem';
|
|
20273
|
+
}
|
|
20274
|
+
|
|
20275
|
+
|
|
20162
20276
|
/***/ }),
|
|
20163
20277
|
|
|
20164
20278
|
/***/ "./packages/roosterjs-content-model-dom/lib/modelApi/common/normalizeContentModel.ts":
|
|
@@ -20172,6 +20286,7 @@ function isBlockGroup(model) {
|
|
|
20172
20286
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
20173
20287
|
exports.normalizeContentModel = void 0;
|
|
20174
20288
|
var isEmpty_1 = __webpack_require__(/*! ./isEmpty */ "./packages/roosterjs-content-model-dom/lib/modelApi/common/isEmpty.ts");
|
|
20289
|
+
var mutate_1 = __webpack_require__(/*! ./mutate */ "./packages/roosterjs-content-model-dom/lib/modelApi/common/mutate.ts");
|
|
20175
20290
|
var normalizeParagraph_1 = __webpack_require__(/*! ./normalizeParagraph */ "./packages/roosterjs-content-model-dom/lib/modelApi/common/normalizeParagraph.ts");
|
|
20176
20291
|
var unwrapBlock_1 = __webpack_require__(/*! ./unwrapBlock */ "./packages/roosterjs-content-model-dom/lib/modelApi/common/unwrapBlock.ts");
|
|
20177
20292
|
/**
|
|
@@ -20210,7 +20325,7 @@ function normalizeContentModel(group) {
|
|
|
20210
20325
|
break;
|
|
20211
20326
|
}
|
|
20212
20327
|
if ((0, isEmpty_1.isBlockEmpty)(block)) {
|
|
20213
|
-
group.blocks.splice(i, 1);
|
|
20328
|
+
(0, mutate_1.mutateBlock)(group).blocks.splice(i, 1);
|
|
20214
20329
|
}
|
|
20215
20330
|
}
|
|
20216
20331
|
}
|
|
@@ -20233,6 +20348,7 @@ var areSameFormats_1 = __webpack_require__(/*! ../../domToModel/utils/areSameFor
|
|
|
20233
20348
|
var createBr_1 = __webpack_require__(/*! ../creators/createBr */ "./packages/roosterjs-content-model-dom/lib/modelApi/creators/createBr.ts");
|
|
20234
20349
|
var isEmpty_1 = __webpack_require__(/*! ./isEmpty */ "./packages/roosterjs-content-model-dom/lib/modelApi/common/isEmpty.ts");
|
|
20235
20350
|
var isWhiteSpacePreserved_1 = __webpack_require__(/*! ../../domUtils/isWhiteSpacePreserved */ "./packages/roosterjs-content-model-dom/lib/domUtils/isWhiteSpacePreserved.ts");
|
|
20351
|
+
var mutate_1 = __webpack_require__(/*! ./mutate */ "./packages/roosterjs-content-model-dom/lib/modelApi/common/mutate.ts");
|
|
20236
20352
|
var normalizeSegment_1 = __webpack_require__(/*! ./normalizeSegment */ "./packages/roosterjs-content-model-dom/lib/modelApi/common/normalizeSegment.ts");
|
|
20237
20353
|
/**
|
|
20238
20354
|
* @param paragraph The paragraph to normalize
|
|
@@ -20245,7 +20361,7 @@ function normalizeParagraph(paragraph) {
|
|
|
20245
20361
|
var secondLast = segments[segments.length - 2];
|
|
20246
20362
|
if (last.segmentType == 'SelectionMarker' &&
|
|
20247
20363
|
(!secondLast || secondLast.segmentType == 'Br')) {
|
|
20248
|
-
segments.push((0, createBr_1.createBr)(last.format));
|
|
20364
|
+
(0, mutate_1.mutateBlock)(paragraph).segments.push((0, createBr_1.createBr)(last.format));
|
|
20249
20365
|
}
|
|
20250
20366
|
else if (segments.length > 1 && segments[segments.length - 1].segmentType == 'Br') {
|
|
20251
20367
|
var noMarkerSegments = segments.filter(function (x) { return x.segmentType != 'SelectionMarker'; });
|
|
@@ -20253,7 +20369,7 @@ function normalizeParagraph(paragraph) {
|
|
|
20253
20369
|
// But if there are more than one <BR> at the end, do not remove them.
|
|
20254
20370
|
if (noMarkerSegments.length > 1 &&
|
|
20255
20371
|
noMarkerSegments[noMarkerSegments.length - 2].segmentType != 'Br') {
|
|
20256
|
-
segments.pop();
|
|
20372
|
+
(0, mutate_1.mutateBlock)(paragraph).segments.pop();
|
|
20257
20373
|
}
|
|
20258
20374
|
}
|
|
20259
20375
|
}
|
|
@@ -20268,7 +20384,7 @@ exports.normalizeParagraph = normalizeParagraph;
|
|
|
20268
20384
|
function removeEmptySegments(block) {
|
|
20269
20385
|
for (var j = block.segments.length - 1; j >= 0; j--) {
|
|
20270
20386
|
if ((0, isEmpty_1.isSegmentEmpty)(block.segments[j])) {
|
|
20271
|
-
block.segments.splice(j, 1);
|
|
20387
|
+
(0, mutate_1.mutateBlock)(block).segments.splice(j, 1);
|
|
20272
20388
|
}
|
|
20273
20389
|
}
|
|
20274
20390
|
}
|
|
@@ -20288,7 +20404,9 @@ function removeEmptyLinks(paragraph) {
|
|
|
20288
20404
|
next &&
|
|
20289
20405
|
!next.link &&
|
|
20290
20406
|
(0, areSameFormats_1.areSameFormats)(next.format, marker.format))) {
|
|
20291
|
-
|
|
20407
|
+
(0, mutate_1.mutateSegment)(paragraph, marker, function (mutableMarker) {
|
|
20408
|
+
delete mutableMarker.link;
|
|
20409
|
+
});
|
|
20292
20410
|
}
|
|
20293
20411
|
}
|
|
20294
20412
|
}
|
|
@@ -20303,7 +20421,7 @@ function moveUpSegmentFormat(paragraph) {
|
|
|
20303
20421
|
changed_1 = internalMoveUpSegmentFormat(segments_1, target_1, key) || changed_1;
|
|
20304
20422
|
});
|
|
20305
20423
|
if (changed_1) {
|
|
20306
|
-
paragraph.segmentFormat = target_1;
|
|
20424
|
+
(0, mutate_1.mutateBlock)(paragraph).segmentFormat = target_1;
|
|
20307
20425
|
}
|
|
20308
20426
|
}
|
|
20309
20427
|
}
|
|
@@ -20334,6 +20452,7 @@ function internalMoveUpSegmentFormat(segments, target, formatKey) {
|
|
|
20334
20452
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
20335
20453
|
exports.normalizeSegment = exports.createNormalizeSegmentContext = exports.normalizeSingleSegment = exports.normalizeAllSegments = void 0;
|
|
20336
20454
|
var hasSpacesOnly_1 = __webpack_require__(/*! ./hasSpacesOnly */ "./packages/roosterjs-content-model-dom/lib/modelApi/common/hasSpacesOnly.ts");
|
|
20455
|
+
var mutate_1 = __webpack_require__(/*! ./mutate */ "./packages/roosterjs-content-model-dom/lib/modelApi/common/mutate.ts");
|
|
20337
20456
|
var SPACE = '\u0020';
|
|
20338
20457
|
var NONE_BREAK_SPACE = '\u00A0';
|
|
20339
20458
|
var LEADING_SPACE_REGEX = /^\u0020+/;
|
|
@@ -20344,10 +20463,10 @@ var TRAILING_SPACE_REGEX = /\u0020+$/;
|
|
|
20344
20463
|
function normalizeAllSegments(paragraph) {
|
|
20345
20464
|
var context = resetNormalizeSegmentContext();
|
|
20346
20465
|
paragraph.segments.forEach(function (segment) {
|
|
20347
|
-
normalizeSegment(segment, context);
|
|
20466
|
+
normalizeSegment(paragraph, segment, context);
|
|
20348
20467
|
});
|
|
20349
|
-
normalizeTextSegments(context.textSegments, context.lastInlineSegment);
|
|
20350
|
-
normalizeLastTextSegment(context.lastTextSegment, context.lastInlineSegment);
|
|
20468
|
+
normalizeTextSegments(paragraph, context.textSegments, context.lastInlineSegment);
|
|
20469
|
+
normalizeLastTextSegment(paragraph, context.lastTextSegment, context.lastInlineSegment);
|
|
20351
20470
|
}
|
|
20352
20471
|
exports.normalizeAllSegments = normalizeAllSegments;
|
|
20353
20472
|
/**
|
|
@@ -20355,11 +20474,11 @@ exports.normalizeAllSegments = normalizeAllSegments;
|
|
|
20355
20474
|
* @param segment The segment to normalize
|
|
20356
20475
|
* @param ignoreTrailingSpaces Whether we should ignore the trailing space of the text segment @default false
|
|
20357
20476
|
*/
|
|
20358
|
-
function normalizeSingleSegment(segment, ignoreTrailingSpaces) {
|
|
20477
|
+
function normalizeSingleSegment(paragraph, segment, ignoreTrailingSpaces) {
|
|
20359
20478
|
if (ignoreTrailingSpaces === void 0) { ignoreTrailingSpaces = false; }
|
|
20360
20479
|
var context = resetNormalizeSegmentContext();
|
|
20361
20480
|
context.ignoreTrailingSpaces = ignoreTrailingSpaces;
|
|
20362
|
-
normalizeSegment(segment, context);
|
|
20481
|
+
normalizeSegment(paragraph, segment, context);
|
|
20363
20482
|
}
|
|
20364
20483
|
exports.normalizeSingleSegment = normalizeSingleSegment;
|
|
20365
20484
|
/**
|
|
@@ -20381,11 +20500,11 @@ function resetNormalizeSegmentContext(context) {
|
|
|
20381
20500
|
/**
|
|
20382
20501
|
* @internal Export for test only
|
|
20383
20502
|
*/
|
|
20384
|
-
function normalizeSegment(segment, context) {
|
|
20503
|
+
function normalizeSegment(paragraph, segment, context) {
|
|
20385
20504
|
switch (segment.segmentType) {
|
|
20386
20505
|
case 'Br':
|
|
20387
|
-
normalizeTextSegments(context.textSegments, context.lastInlineSegment);
|
|
20388
|
-
normalizeLastTextSegment(context.lastTextSegment, context.lastInlineSegment);
|
|
20506
|
+
normalizeTextSegments(paragraph, context.textSegments, context.lastInlineSegment);
|
|
20507
|
+
normalizeLastTextSegment(paragraph, context.lastTextSegment, context.lastInlineSegment);
|
|
20389
20508
|
// Line ends, reset all states
|
|
20390
20509
|
resetNormalizeSegmentContext(context);
|
|
20391
20510
|
break;
|
|
@@ -20407,11 +20526,15 @@ function normalizeSegment(segment, context) {
|
|
|
20407
20526
|
if (!(0, hasSpacesOnly_1.hasSpacesOnly)(segment.text)) {
|
|
20408
20527
|
if (first == SPACE) {
|
|
20409
20528
|
// 1. Multiple leading space => single or empty (depends on if previous segment ends with space)
|
|
20410
|
-
|
|
20529
|
+
(0, mutate_1.mutateSegment)(paragraph, segment, function (textSegment) {
|
|
20530
|
+
textSegment.text = textSegment.text.replace(LEADING_SPACE_REGEX, context.ignoreLeadingSpaces ? '' : NONE_BREAK_SPACE);
|
|
20531
|
+
});
|
|
20411
20532
|
}
|
|
20412
20533
|
if (last == SPACE) {
|
|
20413
20534
|
// 2. Multiple trailing space => single space
|
|
20414
|
-
|
|
20535
|
+
(0, mutate_1.mutateSegment)(paragraph, segment, function (textSegment) {
|
|
20536
|
+
textSegment.text = textSegment.text.replace(TRAILING_SPACE_REGEX, context.ignoreTrailingSpaces ? SPACE : NONE_BREAK_SPACE);
|
|
20537
|
+
});
|
|
20415
20538
|
}
|
|
20416
20539
|
}
|
|
20417
20540
|
context.ignoreLeadingSpaces = last == SPACE;
|
|
@@ -20419,24 +20542,28 @@ function normalizeSegment(segment, context) {
|
|
|
20419
20542
|
}
|
|
20420
20543
|
}
|
|
20421
20544
|
exports.normalizeSegment = normalizeSegment;
|
|
20422
|
-
function normalizeTextSegments(segments, lastInlineSegment) {
|
|
20545
|
+
function normalizeTextSegments(paragraph, segments, lastInlineSegment) {
|
|
20423
20546
|
segments.forEach(function (segment) {
|
|
20424
20547
|
// 3. Segment ends with replace it with space if the previous char is not space so that next segment can wrap
|
|
20425
20548
|
// Only do this for segments that is not the last one since the last space will be removed in step 4
|
|
20426
20549
|
if (segment != lastInlineSegment) {
|
|
20427
|
-
var
|
|
20428
|
-
if (
|
|
20429
|
-
|
|
20430
|
-
|
|
20431
|
-
|
|
20550
|
+
var text_1 = segment.text;
|
|
20551
|
+
if (text_1.substr(-1) == NONE_BREAK_SPACE &&
|
|
20552
|
+
text_1.length > 1 &&
|
|
20553
|
+
text_1.substr(-2, 1) != SPACE) {
|
|
20554
|
+
(0, mutate_1.mutateSegment)(paragraph, segment, function (textSegment) {
|
|
20555
|
+
textSegment.text = text_1.substring(0, text_1.length - 1) + SPACE;
|
|
20556
|
+
});
|
|
20432
20557
|
}
|
|
20433
20558
|
}
|
|
20434
20559
|
});
|
|
20435
20560
|
}
|
|
20436
|
-
function normalizeLastTextSegment(segment, lastInlineSegment) {
|
|
20561
|
+
function normalizeLastTextSegment(paragraph, segment, lastInlineSegment) {
|
|
20437
20562
|
if (segment && segment == lastInlineSegment && (segment === null || segment === void 0 ? void 0 : segment.text.substr(-1)) == SPACE) {
|
|
20438
20563
|
// 4. last text segment of the paragraph, remove trailing space
|
|
20439
|
-
|
|
20564
|
+
(0, mutate_1.mutateSegment)(paragraph, segment, function (textSegment) {
|
|
20565
|
+
textSegment.text = textSegment.text.replace(TRAILING_SPACE_REGEX, '');
|
|
20566
|
+
});
|
|
20440
20567
|
}
|
|
20441
20568
|
}
|
|
20442
20569
|
|
|
@@ -20454,6 +20581,7 @@ function normalizeLastTextSegment(segment, lastInlineSegment) {
|
|
|
20454
20581
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
20455
20582
|
exports.unwrapBlock = void 0;
|
|
20456
20583
|
var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.mjs");
|
|
20584
|
+
var mutate_1 = __webpack_require__(/*! ./mutate */ "./packages/roosterjs-content-model-dom/lib/modelApi/common/mutate.ts");
|
|
20457
20585
|
var setParagraphNotImplicit_1 = __webpack_require__(/*! ../block/setParagraphNotImplicit */ "./packages/roosterjs-content-model-dom/lib/modelApi/block/setParagraphNotImplicit.ts");
|
|
20458
20586
|
/**
|
|
20459
20587
|
* Unwrap a given block group, move its child blocks to be under its parent group
|
|
@@ -20462,11 +20590,13 @@ var setParagraphNotImplicit_1 = __webpack_require__(/*! ../block/setParagraphNot
|
|
|
20462
20590
|
*/
|
|
20463
20591
|
function unwrapBlock(parent, groupToUnwrap) {
|
|
20464
20592
|
var _a;
|
|
20465
|
-
var _b;
|
|
20593
|
+
var _b, _c;
|
|
20466
20594
|
var index = (_b = parent === null || parent === void 0 ? void 0 : parent.blocks.indexOf(groupToUnwrap)) !== null && _b !== void 0 ? _b : -1;
|
|
20467
20595
|
if (index >= 0) {
|
|
20468
20596
|
groupToUnwrap.blocks.forEach(setParagraphNotImplicit_1.setParagraphNotImplicit);
|
|
20469
|
-
|
|
20597
|
+
if (parent) {
|
|
20598
|
+
(_c = (0, mutate_1.mutateBlock)(parent)) === null || _c === void 0 ? void 0 : (_a = _c.blocks).splice.apply(_a, (0, tslib_1.__spreadArray)([index, 1], (0, tslib_1.__read)(groupToUnwrap.blocks.map(mutate_1.mutateBlock)), false));
|
|
20599
|
+
}
|
|
20470
20600
|
}
|
|
20471
20601
|
}
|
|
20472
20602
|
exports.unwrapBlock = unwrapBlock;
|
|
@@ -20492,7 +20622,7 @@ var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.m
|
|
|
20492
20622
|
function createBr(format) {
|
|
20493
20623
|
return {
|
|
20494
20624
|
segmentType: 'Br',
|
|
20495
|
-
format:
|
|
20625
|
+
format: (0, tslib_1.__assign)({}, format),
|
|
20496
20626
|
};
|
|
20497
20627
|
}
|
|
20498
20628
|
exports.createBr = createBr;
|
|
@@ -20549,7 +20679,7 @@ function createDivider(tagName, format) {
|
|
|
20549
20679
|
return {
|
|
20550
20680
|
blockType: 'Divider',
|
|
20551
20681
|
tagName: tagName,
|
|
20552
|
-
format:
|
|
20682
|
+
format: (0, tslib_1.__assign)({}, format),
|
|
20553
20683
|
};
|
|
20554
20684
|
}
|
|
20555
20685
|
exports.createDivider = createDivider;
|
|
@@ -20647,7 +20777,7 @@ function createFormatContainer(tag, format) {
|
|
|
20647
20777
|
blockGroupType: 'FormatContainer',
|
|
20648
20778
|
tagName: tag,
|
|
20649
20779
|
blocks: [],
|
|
20650
|
-
format: (0, tslib_1.__assign)({},
|
|
20780
|
+
format: (0, tslib_1.__assign)({}, format),
|
|
20651
20781
|
};
|
|
20652
20782
|
}
|
|
20653
20783
|
exports.createFormatContainer = createFormatContainer;
|
|
@@ -20704,7 +20834,7 @@ function createGeneralSegment(element, format) {
|
|
|
20704
20834
|
blockType: 'BlockGroup',
|
|
20705
20835
|
blockGroupType: 'General',
|
|
20706
20836
|
segmentType: 'General',
|
|
20707
|
-
format:
|
|
20837
|
+
format: (0, tslib_1.__assign)({}, format),
|
|
20708
20838
|
blocks: [],
|
|
20709
20839
|
element: element,
|
|
20710
20840
|
};
|
|
@@ -20734,7 +20864,7 @@ function createImage(src, format) {
|
|
|
20734
20864
|
return {
|
|
20735
20865
|
segmentType: 'Image',
|
|
20736
20866
|
src: src,
|
|
20737
|
-
format:
|
|
20867
|
+
format: (0, tslib_1.__assign)({}, format),
|
|
20738
20868
|
dataset: {},
|
|
20739
20869
|
};
|
|
20740
20870
|
}
|
|
@@ -20830,7 +20960,7 @@ function createParagraph(isImplicit, blockFormat, segmentFormat, decorator) {
|
|
|
20830
20960
|
var result = {
|
|
20831
20961
|
blockType: 'Paragraph',
|
|
20832
20962
|
segments: [],
|
|
20833
|
-
format:
|
|
20963
|
+
format: (0, tslib_1.__assign)({}, blockFormat),
|
|
20834
20964
|
};
|
|
20835
20965
|
if (segmentFormat && Object.keys(segmentFormat).length > 0) {
|
|
20836
20966
|
result.segmentFormat = (0, tslib_1.__assign)({}, segmentFormat);
|
|
@@ -20870,7 +21000,7 @@ var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.m
|
|
|
20870
21000
|
function createParagraphDecorator(tagName, format) {
|
|
20871
21001
|
return {
|
|
20872
21002
|
tagName: tagName.toLocaleLowerCase(),
|
|
20873
|
-
format: (0, tslib_1.__assign)({},
|
|
21003
|
+
format: (0, tslib_1.__assign)({}, format),
|
|
20874
21004
|
};
|
|
20875
21005
|
}
|
|
20876
21006
|
exports.createParagraphDecorator = createParagraphDecorator;
|
|
@@ -20897,7 +21027,7 @@ function createSelectionMarker(format) {
|
|
|
20897
21027
|
return {
|
|
20898
21028
|
segmentType: 'SelectionMarker',
|
|
20899
21029
|
isSelected: true,
|
|
20900
|
-
format:
|
|
21030
|
+
format: (0, tslib_1.__assign)({}, format),
|
|
20901
21031
|
};
|
|
20902
21032
|
}
|
|
20903
21033
|
exports.createSelectionMarker = createSelectionMarker;
|
|
@@ -20916,6 +21046,7 @@ exports.createSelectionMarker = createSelectionMarker;
|
|
|
20916
21046
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
20917
21047
|
exports.createTable = void 0;
|
|
20918
21048
|
var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.mjs");
|
|
21049
|
+
var createTableRow_1 = __webpack_require__(/*! ./createTableRow */ "./packages/roosterjs-content-model-dom/lib/modelApi/creators/createTableRow.ts");
|
|
20919
21050
|
/**
|
|
20920
21051
|
* Create a ContentModelTable model
|
|
20921
21052
|
* @param rowCount Count of rows of this table
|
|
@@ -20924,16 +21055,12 @@ var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.m
|
|
|
20924
21055
|
function createTable(rowCount, format) {
|
|
20925
21056
|
var rows = [];
|
|
20926
21057
|
for (var i = 0; i < rowCount; i++) {
|
|
20927
|
-
rows.push(
|
|
20928
|
-
height: 0,
|
|
20929
|
-
format: {},
|
|
20930
|
-
cells: [],
|
|
20931
|
-
});
|
|
21058
|
+
rows.push((0, createTableRow_1.createTableRow)());
|
|
20932
21059
|
}
|
|
20933
21060
|
return {
|
|
20934
21061
|
blockType: 'Table',
|
|
20935
21062
|
rows: rows,
|
|
20936
|
-
format: (0, tslib_1.__assign)({},
|
|
21063
|
+
format: (0, tslib_1.__assign)({}, format),
|
|
20937
21064
|
widths: [],
|
|
20938
21065
|
dataset: {},
|
|
20939
21066
|
};
|
|
@@ -20967,7 +21094,7 @@ function createTableCell(spanLeftOrColSpan, spanAboveOrRowSpan, isHeader, format
|
|
|
20967
21094
|
return {
|
|
20968
21095
|
blockGroupType: 'TableCell',
|
|
20969
21096
|
blocks: [],
|
|
20970
|
-
format:
|
|
21097
|
+
format: (0, tslib_1.__assign)({}, format),
|
|
20971
21098
|
spanLeft: spanLeft,
|
|
20972
21099
|
spanAbove: spanAbove,
|
|
20973
21100
|
isHeader: !!isHeader,
|
|
@@ -20977,6 +21104,34 @@ function createTableCell(spanLeftOrColSpan, spanAboveOrRowSpan, isHeader, format
|
|
|
20977
21104
|
exports.createTableCell = createTableCell;
|
|
20978
21105
|
|
|
20979
21106
|
|
|
21107
|
+
/***/ }),
|
|
21108
|
+
|
|
21109
|
+
/***/ "./packages/roosterjs-content-model-dom/lib/modelApi/creators/createTableRow.ts":
|
|
21110
|
+
/*!**************************************************************************************!*\
|
|
21111
|
+
!*** ./packages/roosterjs-content-model-dom/lib/modelApi/creators/createTableRow.ts ***!
|
|
21112
|
+
\**************************************************************************************/
|
|
21113
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
21114
|
+
|
|
21115
|
+
"use strict";
|
|
21116
|
+
|
|
21117
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
21118
|
+
exports.createTableRow = void 0;
|
|
21119
|
+
var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.mjs");
|
|
21120
|
+
/**
|
|
21121
|
+
* Create a ContentModelTableRow model
|
|
21122
|
+
* @param format @optional The format of this model
|
|
21123
|
+
*/
|
|
21124
|
+
function createTableRow(format, height) {
|
|
21125
|
+
if (height === void 0) { height = 0; }
|
|
21126
|
+
return {
|
|
21127
|
+
height: height,
|
|
21128
|
+
format: (0, tslib_1.__assign)({}, format),
|
|
21129
|
+
cells: [],
|
|
21130
|
+
};
|
|
21131
|
+
}
|
|
21132
|
+
exports.createTableRow = createTableRow;
|
|
21133
|
+
|
|
21134
|
+
|
|
20980
21135
|
/***/ }),
|
|
20981
21136
|
|
|
20982
21137
|
/***/ "./packages/roosterjs-content-model-dom/lib/modelApi/creators/createText.ts":
|
|
@@ -21002,7 +21157,7 @@ function createText(text, format, link, code) {
|
|
|
21002
21157
|
var result = {
|
|
21003
21158
|
segmentType: 'Text',
|
|
21004
21159
|
text: text,
|
|
21005
|
-
format:
|
|
21160
|
+
format: (0, tslib_1.__assign)({}, format),
|
|
21006
21161
|
};
|
|
21007
21162
|
if (link) {
|
|
21008
21163
|
(0, addDecorators_1.addLink)(result, link);
|
|
@@ -21027,10 +21182,11 @@ exports.createText = createText;
|
|
|
21027
21182
|
|
|
21028
21183
|
var _a;
|
|
21029
21184
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
21030
|
-
exports.applyTableFormat = void 0;
|
|
21185
|
+
exports.setFirstColumnFormatBorders = exports.applyTableFormat = void 0;
|
|
21031
21186
|
var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.mjs");
|
|
21032
21187
|
var borderFormatHandler_1 = __webpack_require__(/*! ../../formatHandlers/common/borderFormatHandler */ "./packages/roosterjs-content-model-dom/lib/formatHandlers/common/borderFormatHandler.ts");
|
|
21033
21188
|
var borderValues_1 = __webpack_require__(/*! ../../domUtils/style/borderValues */ "./packages/roosterjs-content-model-dom/lib/domUtils/style/borderValues.ts");
|
|
21189
|
+
var mutate_1 = __webpack_require__(/*! ../common/mutate */ "./packages/roosterjs-content-model-dom/lib/modelApi/common/mutate.ts");
|
|
21034
21190
|
var setTableCellBackgroundColor_1 = __webpack_require__(/*! ./setTableCellBackgroundColor */ "./packages/roosterjs-content-model-dom/lib/modelApi/editing/setTableCellBackgroundColor.ts");
|
|
21035
21191
|
var TableBorderFormat_1 = __webpack_require__(/*! ../../constants/TableBorderFormat */ "./packages/roosterjs-content-model-dom/lib/constants/TableBorderFormat.ts");
|
|
21036
21192
|
var updateTableCellMetadata_1 = __webpack_require__(/*! ../metadata/updateTableCellMetadata */ "./packages/roosterjs-content-model-dom/lib/modelApi/metadata/updateTableCellMetadata.ts");
|
|
@@ -21056,27 +21212,18 @@ var DEFAULT_FORMAT = {
|
|
|
21056
21212
|
* @param keepCellShade @optional When pass true, table cells with customized shade color will not be overwritten. @default false
|
|
21057
21213
|
*/
|
|
21058
21214
|
function applyTableFormat(table, newFormat, keepCellShade) {
|
|
21059
|
-
var
|
|
21060
|
-
|
|
21061
|
-
|
|
21215
|
+
var mutableTable = (0, mutate_1.mutateBlock)(table);
|
|
21216
|
+
var rows = mutableTable.rows;
|
|
21217
|
+
(0, updateTableMetadata_1.updateTableMetadata)(mutableTable, function (format) {
|
|
21218
|
+
var effectiveMetadata = (0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)({}, DEFAULT_FORMAT), format), newFormat);
|
|
21062
21219
|
var metaOverrides = updateOverrides(rows, !keepCellShade);
|
|
21063
|
-
delete table.cachedElement;
|
|
21064
|
-
clearCache(rows);
|
|
21065
21220
|
formatCells(rows, effectiveMetadata, metaOverrides);
|
|
21066
|
-
|
|
21221
|
+
setFirstColumnFormatBorders(rows, effectiveMetadata);
|
|
21067
21222
|
setHeaderRowFormat(rows, effectiveMetadata, metaOverrides);
|
|
21068
21223
|
return effectiveMetadata;
|
|
21069
21224
|
});
|
|
21070
21225
|
}
|
|
21071
21226
|
exports.applyTableFormat = applyTableFormat;
|
|
21072
|
-
function clearCache(rows) {
|
|
21073
|
-
rows.forEach(function (row) {
|
|
21074
|
-
row.cells.forEach(function (cell) {
|
|
21075
|
-
delete cell.cachedElement;
|
|
21076
|
-
});
|
|
21077
|
-
delete row.cachedElement;
|
|
21078
|
-
});
|
|
21079
|
-
}
|
|
21080
21227
|
function updateOverrides(rows, removeCellShade) {
|
|
21081
21228
|
var overrides = {
|
|
21082
21229
|
bgColorOverrides: [],
|
|
@@ -21091,7 +21238,7 @@ function updateOverrides(rows, removeCellShade) {
|
|
|
21091
21238
|
overrides.vAlignOverrides.push(vAlignOverrides);
|
|
21092
21239
|
overrides.borderOverrides.push(borderOverrides);
|
|
21093
21240
|
row.cells.forEach(function (cell) {
|
|
21094
|
-
(0, updateTableCellMetadata_1.updateTableCellMetadata)(cell, function (metadata) {
|
|
21241
|
+
(0, updateTableCellMetadata_1.updateTableCellMetadata)((0, mutate_1.mutateBlock)(cell), function (metadata) {
|
|
21095
21242
|
if (metadata && removeCellShade) {
|
|
21096
21243
|
bgColorOverrides.push(false);
|
|
21097
21244
|
delete metadata.bgColorOverride;
|
|
@@ -21178,10 +21325,11 @@ var BorderFormatters = (_a = {},
|
|
|
21178
21325
|
* Apply vertical align, borders, and background color to all cells in the table
|
|
21179
21326
|
*/
|
|
21180
21327
|
function formatCells(rows, format, metaOverrides) {
|
|
21181
|
-
var hasBandedRows = format.hasBandedRows, hasBandedColumns = format.hasBandedColumns, bgColorOdd = format.bgColorOdd, bgColorEven = format.bgColorEven;
|
|
21328
|
+
var hasBandedRows = format.hasBandedRows, hasBandedColumns = format.hasBandedColumns, bgColorOdd = format.bgColorOdd, bgColorEven = format.bgColorEven, hasFirstColumn = format.hasFirstColumn;
|
|
21182
21329
|
rows.forEach(function (row, rowIndex) {
|
|
21183
|
-
row.cells.forEach(function (
|
|
21330
|
+
row.cells.forEach(function (readonlyCell, colIndex) {
|
|
21184
21331
|
var _a;
|
|
21332
|
+
var cell = (0, mutate_1.mutateBlock)(readonlyCell);
|
|
21185
21333
|
// Format Borders
|
|
21186
21334
|
if (!metaOverrides.borderOverrides[rowIndex][colIndex] &&
|
|
21187
21335
|
typeof format.tableBorderFormat == 'number') {
|
|
@@ -21208,46 +21356,76 @@ function formatCells(rows, format, metaOverrides) {
|
|
|
21208
21356
|
}
|
|
21209
21357
|
// Format Background Color
|
|
21210
21358
|
if (!metaOverrides.bgColorOverrides[rowIndex][colIndex]) {
|
|
21211
|
-
var color =
|
|
21212
|
-
|
|
21213
|
-
|
|
21214
|
-
|
|
21215
|
-
|
|
21216
|
-
|
|
21359
|
+
var color = void 0;
|
|
21360
|
+
if (hasFirstColumn && colIndex == 0 && rowIndex > 0) {
|
|
21361
|
+
color = null;
|
|
21362
|
+
}
|
|
21363
|
+
else {
|
|
21364
|
+
color =
|
|
21365
|
+
hasBandedRows || hasBandedColumns
|
|
21366
|
+
? (hasBandedColumns && colIndex % 2 != 0) ||
|
|
21367
|
+
(hasBandedRows && rowIndex % 2 != 0)
|
|
21368
|
+
? bgColorOdd
|
|
21369
|
+
: bgColorEven
|
|
21370
|
+
: bgColorEven; /* bgColorEven is the default color */
|
|
21371
|
+
}
|
|
21217
21372
|
(0, setTableCellBackgroundColor_1.setTableCellBackgroundColor)(cell, color, false /*isColorOverride*/, true /*applyToSegments*/);
|
|
21218
21373
|
}
|
|
21219
21374
|
// Format Vertical Align
|
|
21220
21375
|
if (format.verticalAlign && !metaOverrides.vAlignOverrides[rowIndex][colIndex]) {
|
|
21221
21376
|
cell.format.verticalAlign = format.verticalAlign;
|
|
21222
21377
|
}
|
|
21378
|
+
// Format Header
|
|
21379
|
+
cell.isHeader = false;
|
|
21223
21380
|
});
|
|
21224
21381
|
});
|
|
21225
21382
|
}
|
|
21226
|
-
|
|
21383
|
+
/**
|
|
21384
|
+
* Set the first column format borders for the table as well as header property
|
|
21385
|
+
* @param rows The rows of the table
|
|
21386
|
+
* @param format The table metadata format
|
|
21387
|
+
*/
|
|
21388
|
+
function setFirstColumnFormatBorders(rows, format) {
|
|
21389
|
+
// Exit early hasFirstColumn is not set
|
|
21390
|
+
if (!format.hasFirstColumn) {
|
|
21391
|
+
return;
|
|
21392
|
+
}
|
|
21227
21393
|
rows.forEach(function (row, rowIndex) {
|
|
21228
|
-
row.cells.forEach(function (
|
|
21229
|
-
|
|
21394
|
+
row.cells.forEach(function (readonlyCell, cellIndex) {
|
|
21395
|
+
var cell = (0, mutate_1.mutateBlock)(readonlyCell);
|
|
21396
|
+
if (cellIndex === 0) {
|
|
21230
21397
|
cell.isHeader = true;
|
|
21231
|
-
|
|
21232
|
-
|
|
21233
|
-
|
|
21234
|
-
|
|
21235
|
-
|
|
21236
|
-
|
|
21398
|
+
switch (rowIndex) {
|
|
21399
|
+
case 0:
|
|
21400
|
+
cell.isHeader = !!format.hasHeaderRow;
|
|
21401
|
+
break;
|
|
21402
|
+
case rows.length - 1:
|
|
21403
|
+
setBorderColor(cell.format, 'borderTop');
|
|
21404
|
+
break;
|
|
21405
|
+
case 1:
|
|
21406
|
+
setBorderColor(cell.format, 'borderBottom');
|
|
21407
|
+
break;
|
|
21408
|
+
default:
|
|
21409
|
+
setBorderColor(cell.format, 'borderTop');
|
|
21410
|
+
setBorderColor(cell.format, 'borderBottom');
|
|
21411
|
+
break;
|
|
21237
21412
|
}
|
|
21238
21413
|
}
|
|
21239
|
-
else {
|
|
21240
|
-
cell.isHeader = false;
|
|
21241
|
-
}
|
|
21242
21414
|
});
|
|
21243
21415
|
});
|
|
21244
21416
|
}
|
|
21417
|
+
exports.setFirstColumnFormatBorders = setFirstColumnFormatBorders;
|
|
21245
21418
|
function setHeaderRowFormat(rows, format, metaOverrides) {
|
|
21246
21419
|
var _a;
|
|
21420
|
+
// Exit early if hasHeaderRow is not set
|
|
21421
|
+
if (!format.hasHeaderRow) {
|
|
21422
|
+
return;
|
|
21423
|
+
}
|
|
21247
21424
|
var rowIndex = 0;
|
|
21248
|
-
(_a = rows[rowIndex]) === null || _a === void 0 ? void 0 : _a.cells.forEach(function (
|
|
21249
|
-
cell
|
|
21250
|
-
|
|
21425
|
+
(_a = rows[rowIndex]) === null || _a === void 0 ? void 0 : _a.cells.forEach(function (readonlyCell, cellIndex) {
|
|
21426
|
+
var cell = (0, mutate_1.mutateBlock)(readonlyCell);
|
|
21427
|
+
cell.isHeader = true;
|
|
21428
|
+
if (format.headerRowColor) {
|
|
21251
21429
|
if (!metaOverrides.bgColorOverrides[rowIndex][cellIndex]) {
|
|
21252
21430
|
(0, setTableCellBackgroundColor_1.setTableCellBackgroundColor)(cell, format.headerRowColor, false /*isColorOverride*/, true /*applyToSegments*/);
|
|
21253
21431
|
}
|
|
@@ -21257,6 +21435,11 @@ function setHeaderRowFormat(rows, format, metaOverrides) {
|
|
|
21257
21435
|
}
|
|
21258
21436
|
});
|
|
21259
21437
|
}
|
|
21438
|
+
/**
|
|
21439
|
+
* @param format The cell format to set the border color
|
|
21440
|
+
* @param key The border key to set the color
|
|
21441
|
+
* @param value The color to set. If not given, it removes the color and sets the style to transparent
|
|
21442
|
+
*/
|
|
21260
21443
|
function setBorderColor(format, key, value) {
|
|
21261
21444
|
var border = (0, borderValues_1.extractBorderValues)(format[key]);
|
|
21262
21445
|
border.color = value || '';
|
|
@@ -21426,10 +21609,11 @@ function cloneFormatContainer(container, options) {
|
|
|
21426
21609
|
return newContainer;
|
|
21427
21610
|
}
|
|
21428
21611
|
function cloneListItem(item, options) {
|
|
21429
|
-
var formatHolder = item.formatHolder, levels = item.levels;
|
|
21612
|
+
var formatHolder = item.formatHolder, levels = item.levels, cachedElement = item.cachedElement;
|
|
21430
21613
|
return Object.assign({
|
|
21431
21614
|
formatHolder: cloneSelectionMarker(formatHolder),
|
|
21432
21615
|
levels: levels.map(cloneListLevel),
|
|
21616
|
+
cachedElement: handleCachedElement(cachedElement, 'cache', options),
|
|
21433
21617
|
}, cloneBlockBase(item), cloneBlockGroupBase(item, options));
|
|
21434
21618
|
}
|
|
21435
21619
|
function cloneListLevel(level) {
|
|
@@ -21571,6 +21755,7 @@ var deleteBlock_1 = __webpack_require__(/*! ./deleteBlock */ "./packages/rooster
|
|
|
21571
21755
|
var deleteSegment_1 = __webpack_require__(/*! ./deleteSegment */ "./packages/roosterjs-content-model-dom/lib/modelApi/editing/deleteSegment.ts");
|
|
21572
21756
|
var getSegmentTextFormat_1 = __webpack_require__(/*! ./getSegmentTextFormat */ "./packages/roosterjs-content-model-dom/lib/modelApi/editing/getSegmentTextFormat.ts");
|
|
21573
21757
|
var iterateSelections_1 = __webpack_require__(/*! ../selection/iterateSelections */ "./packages/roosterjs-content-model-dom/lib/modelApi/selection/iterateSelections.ts");
|
|
21758
|
+
var mutate_1 = __webpack_require__(/*! ../common/mutate */ "./packages/roosterjs-content-model-dom/lib/modelApi/common/mutate.ts");
|
|
21574
21759
|
var setParagraphNotImplicit_1 = __webpack_require__(/*! ../block/setParagraphNotImplicit */ "./packages/roosterjs-content-model-dom/lib/modelApi/block/setParagraphNotImplicit.ts");
|
|
21575
21760
|
var DeleteSelectionIteratingOptions = {
|
|
21576
21761
|
contentUnderSelectedTableCell: 'ignoreForTableOrCell',
|
|
@@ -21588,19 +21773,20 @@ function deleteExpandedSelection(model, formatContext) {
|
|
|
21588
21773
|
insertPoint: null,
|
|
21589
21774
|
formatContext: formatContext,
|
|
21590
21775
|
};
|
|
21591
|
-
(0, iterateSelections_1.iterateSelections)(model, function (path, tableContext,
|
|
21776
|
+
(0, iterateSelections_1.iterateSelections)(model, function (path, tableContext, readonlyBlock, readonlySegments) {
|
|
21592
21777
|
// Set paragraph, format and index for default position where we will put cursor to.
|
|
21593
21778
|
// Later we can overwrite these info when process the selections
|
|
21594
21779
|
var paragraph = (0, createParagraph_1.createParagraph)(true /*implicit*/, undefined /*blockFormat*/, model.format);
|
|
21595
21780
|
var markerFormat = model.format;
|
|
21596
21781
|
var insertMarkerIndex = 0;
|
|
21597
|
-
if (
|
|
21782
|
+
if (readonlySegments && (readonlyBlock === null || readonlyBlock === void 0 ? void 0 : readonlyBlock.blockType) == 'Paragraph') {
|
|
21783
|
+
var _a = (0, tslib_1.__read)((0, mutate_1.mutateSegments)(readonlyBlock, readonlySegments), 3), block_1 = _a[0], segments = _a[1], indexes = _a[2];
|
|
21598
21784
|
// Delete segments inside a paragraph
|
|
21599
|
-
if (segments[0]
|
|
21785
|
+
if (segments[0]) {
|
|
21600
21786
|
// Now that we have found a paragraph with selections, we can overwrite the default paragraph with this one
|
|
21601
21787
|
// so we can put cursor here after delete
|
|
21602
|
-
paragraph =
|
|
21603
|
-
insertMarkerIndex =
|
|
21788
|
+
paragraph = block_1;
|
|
21789
|
+
insertMarkerIndex = indexes[0];
|
|
21604
21790
|
markerFormat = (0, getSegmentTextFormat_1.getSegmentTextFormat)(segments[0]);
|
|
21605
21791
|
context.lastParagraph = paragraph;
|
|
21606
21792
|
context.lastTableContext = tableContext;
|
|
@@ -21610,9 +21796,9 @@ function deleteExpandedSelection(model, formatContext) {
|
|
|
21610
21796
|
segment.segmentType == 'SelectionMarker') {
|
|
21611
21797
|
// First time we hit a selection and it is a selection marker, just mark it and not need to delete
|
|
21612
21798
|
// because this is possible a collapsed selection, then it will be handled later
|
|
21613
|
-
context.insertPoint = createInsertPoint(segment,
|
|
21799
|
+
context.insertPoint = createInsertPoint(segment, block_1, path, tableContext);
|
|
21614
21800
|
}
|
|
21615
|
-
else if ((0, deleteSegment_1.deleteSegment)(
|
|
21801
|
+
else if ((0, deleteSegment_1.deleteSegment)(block_1, segment, context.formatContext)) {
|
|
21616
21802
|
context.deleteResult = 'range';
|
|
21617
21803
|
}
|
|
21618
21804
|
});
|
|
@@ -21620,27 +21806,26 @@ function deleteExpandedSelection(model, formatContext) {
|
|
|
21620
21806
|
// Need to make it "not implicit" so that it will always have a container element, so that when we do normalization
|
|
21621
21807
|
// of this paragraph, a BR can be added if need
|
|
21622
21808
|
if (context.deleteResult == 'range') {
|
|
21623
|
-
(0, setParagraphNotImplicit_1.setParagraphNotImplicit)(
|
|
21809
|
+
(0, setParagraphNotImplicit_1.setParagraphNotImplicit)(block_1);
|
|
21624
21810
|
}
|
|
21625
21811
|
}
|
|
21626
21812
|
}
|
|
21627
|
-
else if (
|
|
21813
|
+
else if (readonlyBlock) {
|
|
21628
21814
|
// Delete a whole block (divider, table, ...)
|
|
21629
|
-
var blocks = path[0].blocks;
|
|
21630
|
-
if ((0, deleteBlock_1.deleteBlock)(blocks,
|
|
21815
|
+
var blocks = (0, mutate_1.mutateBlock)(path[0]).blocks;
|
|
21816
|
+
if ((0, deleteBlock_1.deleteBlock)(blocks, readonlyBlock, paragraph, context.formatContext)) {
|
|
21631
21817
|
context.deleteResult = 'range';
|
|
21632
21818
|
}
|
|
21633
21819
|
}
|
|
21634
21820
|
else if (tableContext) {
|
|
21635
21821
|
// Delete a whole table cell
|
|
21636
21822
|
var table = tableContext.table, colIndex = tableContext.colIndex, rowIndex = tableContext.rowIndex;
|
|
21637
|
-
var
|
|
21638
|
-
var
|
|
21823
|
+
var mutableTable = (0, mutate_1.mutateBlock)(table);
|
|
21824
|
+
var row = mutableTable.rows[rowIndex];
|
|
21825
|
+
var cell = (0, mutate_1.mutateBlock)(row.cells[colIndex]);
|
|
21639
21826
|
path = (0, tslib_1.__spreadArray)([cell], (0, tslib_1.__read)(path), false);
|
|
21640
21827
|
paragraph.segments.push((0, createBr_1.createBr)(model.format));
|
|
21641
21828
|
cell.blocks = [paragraph];
|
|
21642
|
-
delete cell.cachedElement;
|
|
21643
|
-
delete row.cachedElement;
|
|
21644
21829
|
context.deleteResult = 'range';
|
|
21645
21830
|
}
|
|
21646
21831
|
if (!context.insertPoint) {
|
|
@@ -21676,28 +21861,30 @@ function createInsertPoint(marker, paragraph, path, tableContext) {
|
|
|
21676
21861
|
|
|
21677
21862
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
21678
21863
|
exports.deleteSegment = void 0;
|
|
21864
|
+
var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.mjs");
|
|
21679
21865
|
var deleteSingleChar_1 = __webpack_require__(/*! ./deleteSingleChar */ "./packages/roosterjs-content-model-dom/lib/modelApi/editing/deleteSingleChar.ts");
|
|
21680
21866
|
var isWhiteSpacePreserved_1 = __webpack_require__(/*! ../../domUtils/isWhiteSpacePreserved */ "./packages/roosterjs-content-model-dom/lib/domUtils/isWhiteSpacePreserved.ts");
|
|
21867
|
+
var mutate_1 = __webpack_require__(/*! ../common/mutate */ "./packages/roosterjs-content-model-dom/lib/modelApi/common/mutate.ts");
|
|
21681
21868
|
var normalizeSegment_1 = __webpack_require__(/*! ../common/normalizeSegment */ "./packages/roosterjs-content-model-dom/lib/modelApi/common/normalizeSegment.ts");
|
|
21682
21869
|
var stringUtil_1 = __webpack_require__(/*! ../../domUtils/stringUtil */ "./packages/roosterjs-content-model-dom/lib/domUtils/stringUtil.ts");
|
|
21683
21870
|
/**
|
|
21684
21871
|
* Delete a content model segment from current selection
|
|
21685
|
-
* @param
|
|
21686
|
-
* @param
|
|
21872
|
+
* @param readonlyParagraph Parent paragraph of the segment to delete
|
|
21873
|
+
* @param readonlySegmentToDelete The segment to delete
|
|
21687
21874
|
* @param context @optional Context object provided by formatContentModel API
|
|
21688
21875
|
* @param direction @optional Whether this is deleting forward or backward. This is only used for deleting entity.
|
|
21689
21876
|
* If not specified, only selected entity will be deleted
|
|
21690
21877
|
*/
|
|
21691
|
-
function deleteSegment(
|
|
21878
|
+
function deleteSegment(readonlyParagraph, readonlySegmentToDelete, context, direction) {
|
|
21879
|
+
var _a = (0, tslib_1.__read)((0, mutate_1.mutateSegment)(readonlyParagraph, readonlySegmentToDelete), 3), paragraph = _a[0], segmentToDelete = _a[1], index = _a[2];
|
|
21692
21880
|
var segments = paragraph.segments;
|
|
21693
|
-
var index = segments.indexOf(segmentToDelete);
|
|
21694
21881
|
var preserveWhiteSpace = (0, isWhiteSpacePreserved_1.isWhiteSpacePreserved)(paragraph.format.whiteSpace);
|
|
21695
21882
|
var isForward = direction == 'forward';
|
|
21696
21883
|
var isBackward = direction == 'backward';
|
|
21697
21884
|
if (!preserveWhiteSpace) {
|
|
21698
|
-
normalizePreviousSegment(segments, index);
|
|
21885
|
+
normalizePreviousSegment(paragraph, segments, index);
|
|
21699
21886
|
}
|
|
21700
|
-
switch (segmentToDelete.segmentType) {
|
|
21887
|
+
switch (segmentToDelete === null || segmentToDelete === void 0 ? void 0 : segmentToDelete.segmentType) {
|
|
21701
21888
|
case 'Br':
|
|
21702
21889
|
case 'Image':
|
|
21703
21890
|
case 'SelectionMarker':
|
|
@@ -21745,10 +21932,12 @@ function deleteSegment(paragraph, segmentToDelete, context, direction) {
|
|
|
21745
21932
|
else {
|
|
21746
21933
|
return false;
|
|
21747
21934
|
}
|
|
21935
|
+
default:
|
|
21936
|
+
return false;
|
|
21748
21937
|
}
|
|
21749
21938
|
}
|
|
21750
21939
|
exports.deleteSegment = deleteSegment;
|
|
21751
|
-
function normalizePreviousSegment(segments, currentIndex) {
|
|
21940
|
+
function normalizePreviousSegment(paragraph, segments, currentIndex) {
|
|
21752
21941
|
var _a;
|
|
21753
21942
|
var index = currentIndex - 1;
|
|
21754
21943
|
while (((_a = segments[index]) === null || _a === void 0 ? void 0 : _a.segmentType) == 'SelectionMarker') {
|
|
@@ -21756,7 +21945,7 @@ function normalizePreviousSegment(segments, currentIndex) {
|
|
|
21756
21945
|
}
|
|
21757
21946
|
var segment = segments[index];
|
|
21758
21947
|
if (segment) {
|
|
21759
|
-
(0, normalizeSegment_1.normalizeSingleSegment)(segment);
|
|
21948
|
+
(0, normalizeSegment_1.normalizeSingleSegment)(paragraph, segment);
|
|
21760
21949
|
}
|
|
21761
21950
|
}
|
|
21762
21951
|
|
|
@@ -21775,6 +21964,7 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
|
21775
21964
|
exports.deleteSelection = void 0;
|
|
21776
21965
|
var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.mjs");
|
|
21777
21966
|
var deleteExpandedSelection_1 = __webpack_require__(/*! ./deleteExpandedSelection */ "./packages/roosterjs-content-model-dom/lib/modelApi/editing/deleteExpandedSelection.ts");
|
|
21967
|
+
var mutate_1 = __webpack_require__(/*! ../common/mutate */ "./packages/roosterjs-content-model-dom/lib/modelApi/common/mutate.ts");
|
|
21778
21968
|
/**
|
|
21779
21969
|
* Delete selected content from Content Model
|
|
21780
21970
|
* @param model The model to delete selected content from
|
|
@@ -21807,8 +21997,9 @@ function mergeParagraphAfterDelete(context) {
|
|
|
21807
21997
|
lastParagraph &&
|
|
21808
21998
|
lastParagraph != insertPoint.paragraph &&
|
|
21809
21999
|
lastTableContext == insertPoint.tableContext) {
|
|
21810
|
-
|
|
21811
|
-
|
|
22000
|
+
var mutableLastParagraph = (0, mutate_1.mutateBlock)(lastParagraph);
|
|
22001
|
+
(_a = (0, mutate_1.mutateBlock)(insertPoint.paragraph).segments).push.apply(_a, (0, tslib_1.__spreadArray)([], (0, tslib_1.__read)(mutableLastParagraph.segments), false));
|
|
22002
|
+
mutableLastParagraph.segments = [];
|
|
21812
22003
|
}
|
|
21813
22004
|
}
|
|
21814
22005
|
|
|
@@ -21995,9 +22186,25 @@ var createTableCell_1 = __webpack_require__(/*! ../creators/createTableCell */ "
|
|
|
21995
22186
|
var deleteSelection_1 = __webpack_require__(/*! ./deleteSelection */ "./packages/roosterjs-content-model-dom/lib/modelApi/editing/deleteSelection.ts");
|
|
21996
22187
|
var getClosestAncestorBlockGroupIndex_1 = __webpack_require__(/*! ./getClosestAncestorBlockGroupIndex */ "./packages/roosterjs-content-model-dom/lib/modelApi/editing/getClosestAncestorBlockGroupIndex.ts");
|
|
21997
22188
|
var getObjectKeys_1 = __webpack_require__(/*! ../..//domUtils/getObjectKeys */ "./packages/roosterjs-content-model-dom/lib/domUtils/getObjectKeys.ts");
|
|
22189
|
+
var mutate_1 = __webpack_require__(/*! ../common/mutate */ "./packages/roosterjs-content-model-dom/lib/modelApi/common/mutate.ts");
|
|
21998
22190
|
var normalizeContentModel_1 = __webpack_require__(/*! ../common/normalizeContentModel */ "./packages/roosterjs-content-model-dom/lib/modelApi/common/normalizeContentModel.ts");
|
|
21999
22191
|
var normalizeTable_1 = __webpack_require__(/*! ./normalizeTable */ "./packages/roosterjs-content-model-dom/lib/modelApi/editing/normalizeTable.ts");
|
|
22000
22192
|
var HeadingTags = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'];
|
|
22193
|
+
// An object to provide keys of required properties of segment format, do NOT use any of its values
|
|
22194
|
+
var RequiredEmptySegmentFormat = {
|
|
22195
|
+
backgroundColor: null,
|
|
22196
|
+
fontFamily: null,
|
|
22197
|
+
fontSize: null,
|
|
22198
|
+
fontWeight: null,
|
|
22199
|
+
italic: null,
|
|
22200
|
+
letterSpacing: null,
|
|
22201
|
+
lineHeight: null,
|
|
22202
|
+
strikethrough: null,
|
|
22203
|
+
superOrSubScriptSequence: null,
|
|
22204
|
+
textColor: null,
|
|
22205
|
+
underline: null,
|
|
22206
|
+
};
|
|
22207
|
+
var KeysOfSegmentFormat = (0, getObjectKeys_1.getObjectKeys)(RequiredEmptySegmentFormat);
|
|
22001
22208
|
/**
|
|
22002
22209
|
* Merge source model into target mode
|
|
22003
22210
|
* @param target Target Content Model that will merge content into
|
|
@@ -22103,7 +22310,8 @@ function mergeTable(markerPosition, newTable, source) {
|
|
|
22103
22310
|
var _a, _b;
|
|
22104
22311
|
var tableContext = markerPosition.tableContext, marker = markerPosition.marker;
|
|
22105
22312
|
if (tableContext && source.blocks.length == 1 && source.blocks[0] == newTable) {
|
|
22106
|
-
var
|
|
22313
|
+
var readonlyTable = tableContext.table, colIndex = tableContext.colIndex, rowIndex = tableContext.rowIndex;
|
|
22314
|
+
var table = (0, mutate_1.mutateBlock)(readonlyTable);
|
|
22107
22315
|
for (var i = 0; i < newTable.rows.length; i++) {
|
|
22108
22316
|
for (var j = 0; j < newTable.rows[i].cells.length; j++) {
|
|
22109
22317
|
var newCell = newTable.rows[i].cells[j];
|
|
@@ -22155,7 +22363,7 @@ function mergeList(markerPosition, newList) {
|
|
|
22155
22363
|
var listParent = path[listItemIndex + 1]; // It is ok here when index is -1, that means there is no list and we just insert a new paragraph and use path[0] as its parent
|
|
22156
22364
|
var blockIndex = listParent.blocks.indexOf(listItem || paragraph);
|
|
22157
22365
|
if (blockIndex >= 0) {
|
|
22158
|
-
listParent.blocks.splice(blockIndex, 0, newList);
|
|
22366
|
+
(0, mutate_1.mutateBlock)(listParent).blocks.splice(blockIndex, 0, newList);
|
|
22159
22367
|
}
|
|
22160
22368
|
if (listItem) {
|
|
22161
22369
|
listItem === null || listItem === void 0 ? void 0 : listItem.levels.forEach(function (level, i) {
|
|
@@ -22172,7 +22380,7 @@ function splitParagraph(markerPosition, newParaFormat) {
|
|
|
22172
22380
|
newParagraph.segments = paragraph.segments.splice(segmentIndex);
|
|
22173
22381
|
}
|
|
22174
22382
|
if (paraIndex >= 0) {
|
|
22175
|
-
path[0].blocks.splice(paraIndex + 1, 0, newParagraph);
|
|
22383
|
+
(0, mutate_1.mutateBlock)(path[0]).blocks.splice(paraIndex + 1, 0, newParagraph);
|
|
22176
22384
|
}
|
|
22177
22385
|
var listItemIndex = (0, getClosestAncestorBlockGroupIndex_1.getClosestAncestorBlockGroupIndex)(path, ['ListItem'], ['FormatContainer', 'TableCell']);
|
|
22178
22386
|
var listItem = path[listItemIndex];
|
|
@@ -22185,7 +22393,7 @@ function splitParagraph(markerPosition, newParaFormat) {
|
|
|
22185
22393
|
newListItem.blocks = listItem.blocks.splice(paraIndex + 1);
|
|
22186
22394
|
}
|
|
22187
22395
|
if (blockIndex >= 0) {
|
|
22188
|
-
listParent.blocks.splice(blockIndex + 1, 0, newListItem);
|
|
22396
|
+
(0, mutate_1.mutateBlock)(listParent).blocks.splice(blockIndex + 1, 0, newListItem);
|
|
22189
22397
|
}
|
|
22190
22398
|
path[listItemIndex] = newListItem;
|
|
22191
22399
|
}
|
|
@@ -22199,7 +22407,7 @@ function insertBlock(markerPosition, block) {
|
|
|
22199
22407
|
var newPara = splitParagraph(markerPosition, newParaFormat);
|
|
22200
22408
|
var blockIndex = path[0].blocks.indexOf(newPara);
|
|
22201
22409
|
if (blockIndex >= 0) {
|
|
22202
|
-
path[0].blocks.splice(blockIndex, 0, block);
|
|
22410
|
+
(0, mutate_1.mutateBlock)(path[0]).blocks.splice(blockIndex, 0, block);
|
|
22203
22411
|
}
|
|
22204
22412
|
}
|
|
22205
22413
|
function applyDefaultFormat(group, format, applyDefaultFormatOption) {
|
|
@@ -22209,7 +22417,7 @@ function applyDefaultFormat(group, format, applyDefaultFormatOption) {
|
|
|
22209
22417
|
switch (block.blockType) {
|
|
22210
22418
|
case 'BlockGroup':
|
|
22211
22419
|
if (block.blockGroupType == 'ListItem') {
|
|
22212
|
-
block.formatHolder.format = mergeSegmentFormat(applyDefaultFormatOption, format, block.formatHolder.format);
|
|
22420
|
+
(0, mutate_1.mutateBlock)(block).formatHolder.format = mergeSegmentFormat(applyDefaultFormatOption, format, block.formatHolder.format);
|
|
22213
22421
|
}
|
|
22214
22422
|
applyDefaultFormat(block, format, applyDefaultFormatOption);
|
|
22215
22423
|
break;
|
|
@@ -22222,14 +22430,18 @@ function applyDefaultFormat(group, format, applyDefaultFormatOption) {
|
|
|
22222
22430
|
break;
|
|
22223
22431
|
case 'Paragraph':
|
|
22224
22432
|
var paragraphFormat_1 = ((_a = block.decorator) === null || _a === void 0 ? void 0 : _a.format) || {};
|
|
22225
|
-
|
|
22433
|
+
var paragraph = (0, mutate_1.mutateBlock)(block);
|
|
22434
|
+
paragraph.segments.forEach(function (segment) {
|
|
22226
22435
|
if (segment.segmentType == 'General') {
|
|
22227
22436
|
applyDefaultFormat(segment, format, applyDefaultFormatOption);
|
|
22228
22437
|
}
|
|
22229
22438
|
segment.format = mergeSegmentFormat(applyDefaultFormatOption, format, (0, tslib_1.__assign)((0, tslib_1.__assign)({}, paragraphFormat_1), segment.format));
|
|
22439
|
+
if (segment.link) {
|
|
22440
|
+
segment.link.format = mergeSegmentFormat(applyDefaultFormatOption, getSegmentFormatInLinkFormat(format), segment.link.format);
|
|
22441
|
+
}
|
|
22230
22442
|
});
|
|
22231
22443
|
if (applyDefaultFormatOption === 'keepSourceEmphasisFormat') {
|
|
22232
|
-
delete
|
|
22444
|
+
delete paragraph.decorator;
|
|
22233
22445
|
}
|
|
22234
22446
|
break;
|
|
22235
22447
|
}
|
|
@@ -22237,12 +22449,29 @@ function applyDefaultFormat(group, format, applyDefaultFormatOption) {
|
|
|
22237
22449
|
}
|
|
22238
22450
|
function mergeBlockFormat(applyDefaultFormatOption, block) {
|
|
22239
22451
|
if (applyDefaultFormatOption == 'keepSourceEmphasisFormat' && block.format.backgroundColor) {
|
|
22240
|
-
delete block.format.backgroundColor;
|
|
22452
|
+
delete (0, mutate_1.mutateBlock)(block).format.backgroundColor;
|
|
22241
22453
|
}
|
|
22242
22454
|
}
|
|
22243
|
-
|
|
22455
|
+
/**
|
|
22456
|
+
* Hyperlink format type definition only contains textColor, backgroundColor and underline.
|
|
22457
|
+
* So create a minimum object with the styles supported in Hyperlink to be used in merge.
|
|
22458
|
+
*/
|
|
22459
|
+
function getSegmentFormatInLinkFormat(targetFormat) {
|
|
22460
|
+
var result = {};
|
|
22461
|
+
if (targetFormat.textColor) {
|
|
22462
|
+
result.textColor = targetFormat.textColor;
|
|
22463
|
+
}
|
|
22464
|
+
if (targetFormat.backgroundColor) {
|
|
22465
|
+
result.backgroundColor = targetFormat.backgroundColor;
|
|
22466
|
+
}
|
|
22467
|
+
if (targetFormat.underline) {
|
|
22468
|
+
result.underline = targetFormat.underline;
|
|
22469
|
+
}
|
|
22470
|
+
return result;
|
|
22471
|
+
}
|
|
22472
|
+
function mergeSegmentFormat(applyDefaultFormatOption, targetFormat, sourceFormat) {
|
|
22244
22473
|
return applyDefaultFormatOption == 'mergeAll'
|
|
22245
|
-
? (0, tslib_1.__assign)((0, tslib_1.__assign)({},
|
|
22474
|
+
? (0, tslib_1.__assign)((0, tslib_1.__assign)({}, targetFormat), sourceFormat) : (0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)({}, getFormatWithoutSegmentFormat(sourceFormat)), targetFormat), getSemanticFormat(sourceFormat));
|
|
22246
22475
|
}
|
|
22247
22476
|
function getSemanticFormat(segmentFormat) {
|
|
22248
22477
|
var result = {};
|
|
@@ -22258,6 +22487,15 @@ function getSemanticFormat(segmentFormat) {
|
|
|
22258
22487
|
}
|
|
22259
22488
|
return result;
|
|
22260
22489
|
}
|
|
22490
|
+
/**
|
|
22491
|
+
* Segment format can also contain other type of metadata, for example in Images/Hyperlink,
|
|
22492
|
+
* we want to preserve these properties when merging format
|
|
22493
|
+
*/
|
|
22494
|
+
function getFormatWithoutSegmentFormat(sourceFormat) {
|
|
22495
|
+
var resultFormat = (0, tslib_1.__assign)({}, sourceFormat);
|
|
22496
|
+
KeysOfSegmentFormat.forEach(function (key) { return delete resultFormat[key]; });
|
|
22497
|
+
return resultFormat;
|
|
22498
|
+
}
|
|
22261
22499
|
|
|
22262
22500
|
|
|
22263
22501
|
/***/ }),
|
|
@@ -22277,6 +22515,7 @@ var addBlock_1 = __webpack_require__(/*! ../common/addBlock */ "./packages/roost
|
|
|
22277
22515
|
var addSegment_1 = __webpack_require__(/*! ../common/addSegment */ "./packages/roosterjs-content-model-dom/lib/modelApi/common/addSegment.ts");
|
|
22278
22516
|
var createBr_1 = __webpack_require__(/*! ../creators/createBr */ "./packages/roosterjs-content-model-dom/lib/modelApi/creators/createBr.ts");
|
|
22279
22517
|
var createParagraph_1 = __webpack_require__(/*! ../creators/createParagraph */ "./packages/roosterjs-content-model-dom/lib/modelApi/creators/createParagraph.ts");
|
|
22518
|
+
var mutate_1 = __webpack_require__(/*! ../common/mutate */ "./packages/roosterjs-content-model-dom/lib/modelApi/common/mutate.ts");
|
|
22280
22519
|
/**
|
|
22281
22520
|
* Minimum width for a table cell
|
|
22282
22521
|
*/
|
|
@@ -22285,16 +22524,17 @@ var MIN_HEIGHT = 22;
|
|
|
22285
22524
|
/**
|
|
22286
22525
|
* Normalize a Content Model table, make sure:
|
|
22287
22526
|
* 1. Fist cells are not spanned
|
|
22288
|
-
* 2.
|
|
22527
|
+
* 2. Only first column and row can have headers
|
|
22289
22528
|
* 3. All cells have content and width
|
|
22290
22529
|
* 4. Table and table row have correct width/height
|
|
22291
22530
|
* 5. Spanned cell has no child blocks
|
|
22292
22531
|
* 6. default format is correctly applied
|
|
22293
|
-
* @param
|
|
22532
|
+
* @param readonlyTable The table to normalize
|
|
22294
22533
|
* @param defaultSegmentFormat @optional Default segment format to apply to cell
|
|
22295
22534
|
*/
|
|
22296
|
-
function normalizeTable(
|
|
22535
|
+
function normalizeTable(readonlyTable, defaultSegmentFormat) {
|
|
22297
22536
|
var _a;
|
|
22537
|
+
var table = (0, mutate_1.mutateBlock)(readonlyTable);
|
|
22298
22538
|
// Always collapse border and use border box for table in roosterjs to make layout simpler
|
|
22299
22539
|
var format = table.format;
|
|
22300
22540
|
if (!format.borderCollapse || !format.useBorderBox) {
|
|
@@ -22305,7 +22545,8 @@ function normalizeTable(table, defaultSegmentFormat) {
|
|
|
22305
22545
|
// Make sure all inner cells are not header
|
|
22306
22546
|
// Make sure all cells have content and width
|
|
22307
22547
|
table.rows.forEach(function (row, rowIndex) {
|
|
22308
|
-
row.cells.forEach(function (
|
|
22548
|
+
row.cells.forEach(function (readonlyCell, colIndex) {
|
|
22549
|
+
var cell = (0, mutate_1.mutateBlock)(readonlyCell);
|
|
22309
22550
|
if (cell.blocks.length == 0) {
|
|
22310
22551
|
var format_1 = cell.format.textColor
|
|
22311
22552
|
? (0, tslib_1.__assign)((0, tslib_1.__assign)({}, defaultSegmentFormat), { textColor: cell.format.textColor }) : defaultSegmentFormat;
|
|
@@ -22315,7 +22556,7 @@ function normalizeTable(table, defaultSegmentFormat) {
|
|
|
22315
22556
|
if (rowIndex == 0) {
|
|
22316
22557
|
cell.spanAbove = false;
|
|
22317
22558
|
}
|
|
22318
|
-
else if (rowIndex > 0 && cell.isHeader) {
|
|
22559
|
+
else if (rowIndex > 0 && colIndex > 0 && cell.isHeader) {
|
|
22319
22560
|
cell.isHeader = false;
|
|
22320
22561
|
delete cell.cachedElement;
|
|
22321
22562
|
}
|
|
@@ -22391,8 +22632,8 @@ function tryMoveBlocks(targetCell, sourceCell) {
|
|
|
22391
22632
|
var _a;
|
|
22392
22633
|
var onlyHasEmptyOrBr = sourceCell.blocks.every(function (block) { return block.blockType == 'Paragraph' && hasOnlyBrSegment(block.segments); });
|
|
22393
22634
|
if (!onlyHasEmptyOrBr) {
|
|
22394
|
-
(_a = targetCell.blocks).push.apply(_a, (0, tslib_1.__spreadArray)([], (0, tslib_1.__read)(sourceCell.blocks), false));
|
|
22395
|
-
sourceCell.blocks = [];
|
|
22635
|
+
(_a = (0, mutate_1.mutateBlock)(targetCell).blocks).push.apply(_a, (0, tslib_1.__spreadArray)([], (0, tslib_1.__read)(sourceCell.blocks), false));
|
|
22636
|
+
(0, mutate_1.mutateBlock)(sourceCell).blocks = [];
|
|
22396
22637
|
}
|
|
22397
22638
|
}
|
|
22398
22639
|
function hasOnlyBrSegment(segments) {
|
|
@@ -22413,12 +22654,13 @@ function hasOnlyBrSegment(segments) {
|
|
|
22413
22654
|
|
|
22414
22655
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
22415
22656
|
exports.retrieveModelFormatState = void 0;
|
|
22657
|
+
var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.mjs");
|
|
22416
22658
|
var borderValues_1 = __webpack_require__(/*! ../../domUtils/style/borderValues */ "./packages/roosterjs-content-model-dom/lib/domUtils/style/borderValues.ts");
|
|
22417
22659
|
var getClosestAncestorBlockGroupIndex_1 = __webpack_require__(/*! ./getClosestAncestorBlockGroupIndex */ "./packages/roosterjs-content-model-dom/lib/modelApi/editing/getClosestAncestorBlockGroupIndex.ts");
|
|
22660
|
+
var updateTableMetadata_1 = __webpack_require__(/*! ../metadata/updateTableMetadata */ "./packages/roosterjs-content-model-dom/lib/modelApi/metadata/updateTableMetadata.ts");
|
|
22418
22661
|
var isBold_1 = __webpack_require__(/*! ../../domUtils/style/isBold */ "./packages/roosterjs-content-model-dom/lib/domUtils/style/isBold.ts");
|
|
22419
22662
|
var iterateSelections_1 = __webpack_require__(/*! ../selection/iterateSelections */ "./packages/roosterjs-content-model-dom/lib/modelApi/selection/iterateSelections.ts");
|
|
22420
22663
|
var parseValueWithUnit_1 = __webpack_require__(/*! ../../formatHandlers/utils/parseValueWithUnit */ "./packages/roosterjs-content-model-dom/lib/formatHandlers/utils/parseValueWithUnit.ts");
|
|
22421
|
-
var updateTableMetadata_1 = __webpack_require__(/*! ../metadata/updateTableMetadata */ "./packages/roosterjs-content-model-dom/lib/modelApi/metadata/updateTableMetadata.ts");
|
|
22422
22664
|
/**
|
|
22423
22665
|
* Retrieve format state from the given Content Model
|
|
22424
22666
|
* @param model The Content Model to retrieve format state from
|
|
@@ -22450,10 +22692,10 @@ function retrieveModelFormatState(model, pendingFormat, formatState) {
|
|
|
22450
22692
|
segments === null || segments === void 0 ? void 0 : segments.forEach(function (segment) {
|
|
22451
22693
|
var _a, _b, _c;
|
|
22452
22694
|
if (isFirstSegment || segment.segmentType != 'SelectionMarker') {
|
|
22453
|
-
var modelFormat =
|
|
22454
|
-
|
|
22455
|
-
|
|
22456
|
-
|
|
22695
|
+
var modelFormat = (0, tslib_1.__assign)({}, model.format);
|
|
22696
|
+
delete modelFormat.italic;
|
|
22697
|
+
delete modelFormat.underline;
|
|
22698
|
+
delete modelFormat.fontWeight;
|
|
22457
22699
|
retrieveSegmentFormat(formatState, isFirst, Object.assign({}, modelFormat, block.format, (_a = block.decorator) === null || _a === void 0 ? void 0 : _a.format, segment.format, (_b = segment.code) === null || _b === void 0 ? void 0 : _b.format, (_c = segment.link) === null || _c === void 0 ? void 0 : _c.format, pendingFormat));
|
|
22458
22700
|
mergeValue(formatState, 'isCodeInline', !!(segment === null || segment === void 0 ? void 0 : segment.code), isFirst);
|
|
22459
22701
|
}
|
|
@@ -22544,7 +22786,7 @@ function retrieveStructureFormat(result, path, isFirst) {
|
|
|
22544
22786
|
((_b = path[containerIndex]) === null || _b === void 0 ? void 0 : _b.tagName) == 'blockquote', isFirst);
|
|
22545
22787
|
}
|
|
22546
22788
|
function retrieveTableFormat(tableContext, result) {
|
|
22547
|
-
var tableFormat = (0, updateTableMetadata_1.
|
|
22789
|
+
var tableFormat = (0, updateTableMetadata_1.getTableMetadata)(tableContext.table);
|
|
22548
22790
|
result.isInTable = true;
|
|
22549
22791
|
result.tableHasHeader = tableContext.table.rows.some(function (row) {
|
|
22550
22792
|
return row.cells.some(function (cell) { return cell.isHeader; });
|
|
@@ -22602,6 +22844,7 @@ function px2Pt(px) {
|
|
|
22602
22844
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
22603
22845
|
exports.setTableCellBackgroundColor = void 0;
|
|
22604
22846
|
var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.mjs");
|
|
22847
|
+
var mutate_1 = __webpack_require__(/*! ../common/mutate */ "./packages/roosterjs-content-model-dom/lib/modelApi/common/mutate.ts");
|
|
22605
22848
|
var color_1 = __webpack_require__(/*! ../../formatHandlers/utils/color */ "./packages/roosterjs-content-model-dom/lib/formatHandlers/utils/color.ts");
|
|
22606
22849
|
var updateTableCellMetadata_1 = __webpack_require__(/*! ../metadata/updateTableCellMetadata */ "./packages/roosterjs-content-model-dom/lib/modelApi/metadata/updateTableCellMetadata.ts");
|
|
22607
22850
|
// Using the HSL (hue, saturation and lightness) representation for RGB color values.
|
|
@@ -22653,9 +22896,10 @@ function setTableCellBackgroundColor(cell, color, isColorOverride, applyToSegmen
|
|
|
22653
22896
|
}
|
|
22654
22897
|
exports.setTableCellBackgroundColor = setTableCellBackgroundColor;
|
|
22655
22898
|
function removeAdaptiveCellColor(cell) {
|
|
22656
|
-
cell.blocks.forEach(function (
|
|
22899
|
+
cell.blocks.forEach(function (readonlyBlock) {
|
|
22657
22900
|
var _a, _b;
|
|
22658
|
-
if (
|
|
22901
|
+
if (readonlyBlock.blockType == 'Paragraph') {
|
|
22902
|
+
var block = (0, mutate_1.mutateBlock)(readonlyBlock);
|
|
22659
22903
|
if (((_a = block.segmentFormat) === null || _a === void 0 ? void 0 : _a.textColor) &&
|
|
22660
22904
|
shouldRemoveColor((_b = block.segmentFormat) === null || _b === void 0 ? void 0 : _b.textColor, cell.format.backgroundColor || '')) {
|
|
22661
22905
|
delete block.segmentFormat.textColor;
|
|
@@ -22671,9 +22915,10 @@ function removeAdaptiveCellColor(cell) {
|
|
|
22671
22915
|
}
|
|
22672
22916
|
function setAdaptiveCellColor(cell) {
|
|
22673
22917
|
if (cell.format.textColor) {
|
|
22674
|
-
cell.blocks.forEach(function (
|
|
22918
|
+
cell.blocks.forEach(function (readonlyBlock) {
|
|
22675
22919
|
var _a;
|
|
22676
|
-
if (
|
|
22920
|
+
if (readonlyBlock.blockType == 'Paragraph') {
|
|
22921
|
+
var block = (0, mutate_1.mutateBlock)(readonlyBlock);
|
|
22677
22922
|
if (!((_a = block.segmentFormat) === null || _a === void 0 ? void 0 : _a.textColor)) {
|
|
22678
22923
|
block.segmentFormat = (0, tslib_1.__assign)((0, tslib_1.__assign)({}, block.segmentFormat), { textColor: cell.format.textColor });
|
|
22679
22924
|
}
|
|
@@ -23005,7 +23250,7 @@ exports.createObjectDefinition = createObjectDefinition;
|
|
|
23005
23250
|
"use strict";
|
|
23006
23251
|
|
|
23007
23252
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
23008
|
-
exports.updateImageMetadata = void 0;
|
|
23253
|
+
exports.updateImageMetadata = exports.getImageMetadata = void 0;
|
|
23009
23254
|
var updateMetadata_1 = __webpack_require__(/*! ./updateMetadata */ "./packages/roosterjs-content-model-dom/lib/modelApi/metadata/updateMetadata.ts");
|
|
23010
23255
|
var definitionCreators_1 = __webpack_require__(/*! ./definitionCreators */ "./packages/roosterjs-content-model-dom/lib/modelApi/metadata/definitionCreators.ts");
|
|
23011
23256
|
var NumberDefinition = (0, definitionCreators_1.createNumberDefinition)();
|
|
@@ -23021,6 +23266,14 @@ var ImageMetadataFormatDefinition = (0, definitionCreators_1.createObjectDefinit
|
|
|
23021
23266
|
naturalHeight: NumberDefinition,
|
|
23022
23267
|
naturalWidth: NumberDefinition,
|
|
23023
23268
|
});
|
|
23269
|
+
/**
|
|
23270
|
+
* Get image metadata
|
|
23271
|
+
* @param image The image Content Model
|
|
23272
|
+
*/
|
|
23273
|
+
function getImageMetadata(image) {
|
|
23274
|
+
return (0, updateMetadata_1.getMetadata)(image, ImageMetadataFormatDefinition);
|
|
23275
|
+
}
|
|
23276
|
+
exports.getImageMetadata = getImageMetadata;
|
|
23024
23277
|
/**
|
|
23025
23278
|
* Update image metadata with a callback
|
|
23026
23279
|
* @param image The image Content Model
|
|
@@ -23043,10 +23296,10 @@ exports.updateImageMetadata = updateImageMetadata;
|
|
|
23043
23296
|
"use strict";
|
|
23044
23297
|
|
|
23045
23298
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
23046
|
-
exports.updateListMetadata = exports.ListMetadataDefinition = void 0;
|
|
23299
|
+
exports.updateListMetadata = exports.getListMetadata = exports.ListMetadataDefinition = void 0;
|
|
23047
23300
|
var BulletListType_1 = __webpack_require__(/*! ../../constants/BulletListType */ "./packages/roosterjs-content-model-dom/lib/constants/BulletListType.ts");
|
|
23048
|
-
var NumberingListType_1 = __webpack_require__(/*! ../../constants/NumberingListType */ "./packages/roosterjs-content-model-dom/lib/constants/NumberingListType.ts");
|
|
23049
23301
|
var updateMetadata_1 = __webpack_require__(/*! ./updateMetadata */ "./packages/roosterjs-content-model-dom/lib/modelApi/metadata/updateMetadata.ts");
|
|
23302
|
+
var NumberingListType_1 = __webpack_require__(/*! ../../constants/NumberingListType */ "./packages/roosterjs-content-model-dom/lib/constants/NumberingListType.ts");
|
|
23050
23303
|
var definitionCreators_1 = __webpack_require__(/*! ./definitionCreators */ "./packages/roosterjs-content-model-dom/lib/modelApi/metadata/definitionCreators.ts");
|
|
23051
23304
|
/**
|
|
23052
23305
|
* Metadata definition for List
|
|
@@ -23056,6 +23309,14 @@ exports.ListMetadataDefinition = (0, definitionCreators_1.createObjectDefinition
|
|
|
23056
23309
|
unorderedStyleType: (0, definitionCreators_1.createNumberDefinition)(true /** isOptional */, undefined /** value **/, BulletListType_1.BulletListType.Min, BulletListType_1.BulletListType.Max),
|
|
23057
23310
|
applyListStyleFromLevel: (0, definitionCreators_1.createBooleanDefinition)(true /*isOptional*/),
|
|
23058
23311
|
}, true /** isOptional */, true /** allowNull */);
|
|
23312
|
+
/**
|
|
23313
|
+
* Get list metadata
|
|
23314
|
+
* @param list The list Content Model (metadata holder)
|
|
23315
|
+
*/
|
|
23316
|
+
function getListMetadata(list) {
|
|
23317
|
+
return (0, updateMetadata_1.getMetadata)(list, exports.ListMetadataDefinition);
|
|
23318
|
+
}
|
|
23319
|
+
exports.getListMetadata = getListMetadata;
|
|
23059
23320
|
/**
|
|
23060
23321
|
* Update list metadata with a callback
|
|
23061
23322
|
* @param list The list Content Model (metadata holder)
|
|
@@ -23078,26 +23339,34 @@ exports.updateListMetadata = updateListMetadata;
|
|
|
23078
23339
|
"use strict";
|
|
23079
23340
|
|
|
23080
23341
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
23081
|
-
exports.hasMetadata = exports.updateMetadata = void 0;
|
|
23342
|
+
exports.hasMetadata = exports.updateMetadata = exports.getMetadata = void 0;
|
|
23082
23343
|
var validate_1 = __webpack_require__(/*! ./validate */ "./packages/roosterjs-content-model-dom/lib/modelApi/metadata/validate.ts");
|
|
23083
23344
|
var EditingInfoDatasetName = 'editingInfo';
|
|
23084
23345
|
/**
|
|
23085
|
-
*
|
|
23086
|
-
* @param model The
|
|
23087
|
-
* @param
|
|
23088
|
-
* @
|
|
23089
|
-
* @returns The metadata object if any, or null
|
|
23346
|
+
* Retrieve metadata from the given model.
|
|
23347
|
+
* @param model The Content Model to retrieve metadata from
|
|
23348
|
+
* @param definition Definition of this metadata type, used for validate the metadata object
|
|
23349
|
+
* @returns Metadata of the model, or null if it does not contain a valid metadata
|
|
23090
23350
|
*/
|
|
23091
|
-
function
|
|
23351
|
+
function getMetadata(model, definition) {
|
|
23092
23352
|
var metadataString = model.dataset[EditingInfoDatasetName];
|
|
23093
23353
|
var obj = null;
|
|
23094
23354
|
try {
|
|
23095
23355
|
obj = JSON.parse(metadataString);
|
|
23096
23356
|
}
|
|
23097
23357
|
catch (_a) { }
|
|
23098
|
-
|
|
23099
|
-
|
|
23100
|
-
|
|
23358
|
+
return !definition || (0, validate_1.validate)(obj, definition) ? obj : null;
|
|
23359
|
+
}
|
|
23360
|
+
exports.getMetadata = getMetadata;
|
|
23361
|
+
/**
|
|
23362
|
+
* Update metadata of the given model
|
|
23363
|
+
* @param model The model to update metadata to
|
|
23364
|
+
* @param callback A callback function to update metadata
|
|
23365
|
+
* @param definition @optional Metadata definition used for verify the metadata object
|
|
23366
|
+
* @returns The metadata object if any, or null
|
|
23367
|
+
*/
|
|
23368
|
+
function updateMetadata(model, callback, definition) {
|
|
23369
|
+
var obj = getMetadata(model, definition);
|
|
23101
23370
|
if (callback) {
|
|
23102
23371
|
obj = callback(obj);
|
|
23103
23372
|
if (!obj) {
|
|
@@ -23131,7 +23400,7 @@ exports.hasMetadata = hasMetadata;
|
|
|
23131
23400
|
"use strict";
|
|
23132
23401
|
|
|
23133
23402
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
23134
|
-
exports.updateTableCellMetadata = void 0;
|
|
23403
|
+
exports.updateTableCellMetadata = exports.getTableCellMetadata = void 0;
|
|
23135
23404
|
var definitionCreators_1 = __webpack_require__(/*! ./definitionCreators */ "./packages/roosterjs-content-model-dom/lib/modelApi/metadata/definitionCreators.ts");
|
|
23136
23405
|
var updateMetadata_1 = __webpack_require__(/*! ./updateMetadata */ "./packages/roosterjs-content-model-dom/lib/modelApi/metadata/updateMetadata.ts");
|
|
23137
23406
|
var TableCellMetadataFormatDefinition = (0, definitionCreators_1.createObjectDefinition)({
|
|
@@ -23139,6 +23408,14 @@ var TableCellMetadataFormatDefinition = (0, definitionCreators_1.createObjectDef
|
|
|
23139
23408
|
vAlignOverride: (0, definitionCreators_1.createBooleanDefinition)(true /** isOptional */),
|
|
23140
23409
|
borderOverride: (0, definitionCreators_1.createBooleanDefinition)(true /** isOptional */),
|
|
23141
23410
|
}, false /* isOptional */, true /** allowNull */);
|
|
23411
|
+
/**
|
|
23412
|
+
* Get table cell metadata
|
|
23413
|
+
* @param cell The table cell Content Model
|
|
23414
|
+
*/
|
|
23415
|
+
function getTableCellMetadata(cell) {
|
|
23416
|
+
return (0, updateMetadata_1.getMetadata)(cell, TableCellMetadataFormatDefinition);
|
|
23417
|
+
}
|
|
23418
|
+
exports.getTableCellMetadata = getTableCellMetadata;
|
|
23142
23419
|
/**
|
|
23143
23420
|
* Update table cell metadata with a callback
|
|
23144
23421
|
* @param cell The table cell Content Model
|
|
@@ -23161,9 +23438,9 @@ exports.updateTableCellMetadata = updateTableCellMetadata;
|
|
|
23161
23438
|
"use strict";
|
|
23162
23439
|
|
|
23163
23440
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
23164
|
-
exports.updateTableMetadata = void 0;
|
|
23165
|
-
var TableBorderFormat_1 = __webpack_require__(/*! ../../constants/TableBorderFormat */ "./packages/roosterjs-content-model-dom/lib/constants/TableBorderFormat.ts");
|
|
23441
|
+
exports.updateTableMetadata = exports.getTableMetadata = void 0;
|
|
23166
23442
|
var updateMetadata_1 = __webpack_require__(/*! ./updateMetadata */ "./packages/roosterjs-content-model-dom/lib/modelApi/metadata/updateMetadata.ts");
|
|
23443
|
+
var TableBorderFormat_1 = __webpack_require__(/*! ../../constants/TableBorderFormat */ "./packages/roosterjs-content-model-dom/lib/constants/TableBorderFormat.ts");
|
|
23167
23444
|
var definitionCreators_1 = __webpack_require__(/*! ./definitionCreators */ "./packages/roosterjs-content-model-dom/lib/modelApi/metadata/definitionCreators.ts");
|
|
23168
23445
|
var NullStringDefinition = (0, definitionCreators_1.createStringDefinition)(false /** isOptional */, undefined /** value */, true /** allowNull */);
|
|
23169
23446
|
var BooleanDefinition = (0, definitionCreators_1.createBooleanDefinition)(false /** isOptional */);
|
|
@@ -23181,6 +23458,14 @@ var TableFormatDefinition = (0, definitionCreators_1.createObjectDefinition)({
|
|
|
23181
23458
|
tableBorderFormat: (0, definitionCreators_1.createNumberDefinition)(false /** isOptional */, undefined /* value */, TableBorderFormat_1.TableBorderFormat.Min /* first table border format */, TableBorderFormat_1.TableBorderFormat.Max /* last table border format */),
|
|
23182
23459
|
verticalAlign: NullStringDefinition,
|
|
23183
23460
|
}, false /* isOptional */, true /** allowNull */);
|
|
23461
|
+
/**
|
|
23462
|
+
* Get table metadata
|
|
23463
|
+
* @param table The table Content Model
|
|
23464
|
+
*/
|
|
23465
|
+
function getTableMetadata(table) {
|
|
23466
|
+
return (0, updateMetadata_1.getMetadata)(table, TableFormatDefinition);
|
|
23467
|
+
}
|
|
23468
|
+
exports.getTableMetadata = getTableMetadata;
|
|
23184
23469
|
/**
|
|
23185
23470
|
* Update table metadata with a callback
|
|
23186
23471
|
* @param table The table Content Model
|
|
@@ -23280,64 +23565,63 @@ var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.m
|
|
|
23280
23565
|
var getClosestAncestorBlockGroupIndex_1 = __webpack_require__(/*! ../editing/getClosestAncestorBlockGroupIndex */ "./packages/roosterjs-content-model-dom/lib/modelApi/editing/getClosestAncestorBlockGroupIndex.ts");
|
|
23281
23566
|
var isBlockGroupOfType_1 = __webpack_require__(/*! ../typeCheck/isBlockGroupOfType */ "./packages/roosterjs-content-model-dom/lib/modelApi/typeCheck/isBlockGroupOfType.ts");
|
|
23282
23567
|
var iterateSelections_1 = __webpack_require__(/*! ./iterateSelections */ "./packages/roosterjs-content-model-dom/lib/modelApi/selection/iterateSelections.ts");
|
|
23283
|
-
|
|
23284
|
-
|
|
23285
|
-
* @param model The Content Model to get selection from
|
|
23286
|
-
* @param includingFormatHolder True means also include format holder as segment from list item, in that case paragraph will be null
|
|
23287
|
-
*/
|
|
23288
|
-
function getSelectedSegmentsAndParagraphs(model, includingFormatHolder, includingEntity) {
|
|
23568
|
+
var mutate_1 = __webpack_require__(/*! ../common/mutate */ "./packages/roosterjs-content-model-dom/lib/modelApi/common/mutate.ts");
|
|
23569
|
+
function getSelectedSegmentsAndParagraphs(model, includingFormatHolder, includingEntity, mutate) {
|
|
23289
23570
|
var selections = collectSelections(model, {
|
|
23290
23571
|
includeListFormatHolder: includingFormatHolder ? 'allSegments' : 'never',
|
|
23291
23572
|
});
|
|
23292
23573
|
var result = [];
|
|
23293
23574
|
selections.forEach(function (_a) {
|
|
23294
23575
|
var segments = _a.segments, block = _a.block, path = _a.path;
|
|
23295
|
-
if (segments
|
|
23296
|
-
|
|
23297
|
-
|
|
23298
|
-
|
|
23299
|
-
|
|
23300
|
-
|
|
23576
|
+
if (segments) {
|
|
23577
|
+
if (includingFormatHolder &&
|
|
23578
|
+
!block &&
|
|
23579
|
+
segments.length == 1 &&
|
|
23580
|
+
path[0].blockGroupType == 'ListItem' &&
|
|
23581
|
+
segments[0] == path[0].formatHolder) {
|
|
23582
|
+
var list = path[0];
|
|
23583
|
+
if (mutate) {
|
|
23584
|
+
(0, mutate_1.mutateBlock)(list);
|
|
23301
23585
|
}
|
|
23302
|
-
|
|
23586
|
+
result.push([list.formatHolder, null, path]);
|
|
23587
|
+
}
|
|
23588
|
+
else if ((block === null || block === void 0 ? void 0 : block.blockType) == 'Paragraph') {
|
|
23589
|
+
if (mutate) {
|
|
23590
|
+
(0, mutate_1.mutateBlock)(block);
|
|
23591
|
+
}
|
|
23592
|
+
segments.forEach(function (segment) {
|
|
23593
|
+
if (includingEntity ||
|
|
23594
|
+
segment.segmentType != 'Entity' ||
|
|
23595
|
+
!segment.entityFormat.isReadonly) {
|
|
23596
|
+
result.push([segment, block, path]);
|
|
23597
|
+
}
|
|
23598
|
+
});
|
|
23599
|
+
}
|
|
23303
23600
|
}
|
|
23304
23601
|
});
|
|
23305
23602
|
return result;
|
|
23306
23603
|
}
|
|
23307
23604
|
exports.getSelectedSegmentsAndParagraphs = getSelectedSegmentsAndParagraphs;
|
|
23308
|
-
|
|
23309
|
-
|
|
23310
|
-
|
|
23311
|
-
|
|
23312
|
-
|
|
23313
|
-
function getSelectedSegments(model, includingFormatHolder) {
|
|
23314
|
-
return getSelectedSegmentsAndParagraphs(model, includingFormatHolder).map(function (x) { return x[0]; });
|
|
23605
|
+
function getSelectedSegments(model, includingFormatHolder, mutate) {
|
|
23606
|
+
var segments = mutate
|
|
23607
|
+
? getSelectedSegmentsAndParagraphs(model, includingFormatHolder, false /*includeEntity*/, true /*mutate*/)
|
|
23608
|
+
: getSelectedSegmentsAndParagraphs(model, includingFormatHolder);
|
|
23609
|
+
return segments.map(function (x) { return x[0]; });
|
|
23315
23610
|
}
|
|
23316
23611
|
exports.getSelectedSegments = getSelectedSegments;
|
|
23317
|
-
|
|
23318
|
-
* Get any array of selected paragraphs from a content model
|
|
23319
|
-
* @param model The Content Model to get selection from
|
|
23320
|
-
*/
|
|
23321
|
-
function getSelectedParagraphs(model) {
|
|
23612
|
+
function getSelectedParagraphs(model, mutate) {
|
|
23322
23613
|
var selections = collectSelections(model, { includeListFormatHolder: 'never' });
|
|
23323
23614
|
var result = [];
|
|
23324
23615
|
removeUnmeaningfulSelections(selections);
|
|
23325
23616
|
selections.forEach(function (_a) {
|
|
23326
23617
|
var block = _a.block;
|
|
23327
23618
|
if ((block === null || block === void 0 ? void 0 : block.blockType) == 'Paragraph') {
|
|
23328
|
-
result.push(block);
|
|
23619
|
+
result.push(mutate ? (0, mutate_1.mutateBlock)(block) : block);
|
|
23329
23620
|
}
|
|
23330
23621
|
});
|
|
23331
23622
|
return result;
|
|
23332
23623
|
}
|
|
23333
23624
|
exports.getSelectedParagraphs = getSelectedParagraphs;
|
|
23334
|
-
/**
|
|
23335
|
-
* Get an array of block group - block pair that is of the expected block group type from selection
|
|
23336
|
-
* @param group The root block group to search
|
|
23337
|
-
* @param blockGroupTypes The expected block group types
|
|
23338
|
-
* @param stopTypes Block group types that will stop searching when hit
|
|
23339
|
-
* @param deepFirst True means search in deep first, otherwise wide first
|
|
23340
|
-
*/
|
|
23341
23625
|
function getOperationalBlocks(group, blockGroupTypes, stopTypes, deepFirst) {
|
|
23342
23626
|
var result = [];
|
|
23343
23627
|
var findSequence = deepFirst ? blockGroupTypes.map(function (type) { return [type]; }) : [blockGroupTypes];
|
|
@@ -23378,10 +23662,6 @@ function getOperationalBlocks(group, blockGroupTypes, stopTypes, deepFirst) {
|
|
|
23378
23662
|
return result;
|
|
23379
23663
|
}
|
|
23380
23664
|
exports.getOperationalBlocks = getOperationalBlocks;
|
|
23381
|
-
/**
|
|
23382
|
-
* Get the first selected table from content model
|
|
23383
|
-
* @param model The Content Model to get selection from
|
|
23384
|
-
*/
|
|
23385
23665
|
function getFirstSelectedTable(model) {
|
|
23386
23666
|
var selections = collectSelections(model, { includeListFormatHolder: 'never' });
|
|
23387
23667
|
var table;
|
|
@@ -23405,10 +23685,6 @@ function getFirstSelectedTable(model) {
|
|
|
23405
23685
|
return [table, resultPath];
|
|
23406
23686
|
}
|
|
23407
23687
|
exports.getFirstSelectedTable = getFirstSelectedTable;
|
|
23408
|
-
/**
|
|
23409
|
-
* Get the first selected list item from content model
|
|
23410
|
-
* @param model The Content Model to get selection from
|
|
23411
|
-
*/
|
|
23412
23688
|
function getFirstSelectedListItem(model) {
|
|
23413
23689
|
var listItem;
|
|
23414
23690
|
getOperationalBlocks(model, ['ListItem'], ['TableCell']).forEach(function (r) {
|
|
@@ -23431,6 +23707,8 @@ function collectSelections(group, option) {
|
|
|
23431
23707
|
}, option);
|
|
23432
23708
|
return selections;
|
|
23433
23709
|
}
|
|
23710
|
+
//#endregion
|
|
23711
|
+
//#region utils
|
|
23434
23712
|
function removeUnmeaningfulSelections(selections) {
|
|
23435
23713
|
if (selections.length > 1 &&
|
|
23436
23714
|
isOnlySelectionMarkerSelected(selections, false /*checkFirstParagraph*/)) {
|
|
@@ -23458,6 +23736,7 @@ function isOnlySelectionMarkerSelected(selections, checkFirstParagraph) {
|
|
|
23458
23736
|
return false;
|
|
23459
23737
|
}
|
|
23460
23738
|
}
|
|
23739
|
+
//#endregion
|
|
23461
23740
|
|
|
23462
23741
|
|
|
23463
23742
|
/***/ }),
|
|
@@ -23605,12 +23884,6 @@ exports.hasSelectionInSegment = hasSelectionInSegment;
|
|
|
23605
23884
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
23606
23885
|
exports.iterateSelections = void 0;
|
|
23607
23886
|
var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.mjs");
|
|
23608
|
-
/**
|
|
23609
|
-
* Iterate all selected elements in a given model
|
|
23610
|
-
* @param group The given Content Model to iterate selection from
|
|
23611
|
-
* @param callback The callback function to access the selected element
|
|
23612
|
-
* @param option Option to determine how to iterate
|
|
23613
|
-
*/
|
|
23614
23887
|
function iterateSelections(group, callback, option) {
|
|
23615
23888
|
var internalCallback = function (path, tableContext, block, segments) {
|
|
23616
23889
|
var _a;
|
|
@@ -23760,6 +24033,7 @@ function internalIterateSelections(path, callback, option, table, treatAllAsSele
|
|
|
23760
24033
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
23761
24034
|
exports.setSelection = void 0;
|
|
23762
24035
|
var isGeneralSegment_1 = __webpack_require__(/*! ../typeCheck/isGeneralSegment */ "./packages/roosterjs-content-model-dom/lib/modelApi/typeCheck/isGeneralSegment.ts");
|
|
24036
|
+
var mutate_1 = __webpack_require__(/*! ../common/mutate */ "./packages/roosterjs-content-model-dom/lib/modelApi/common/mutate.ts");
|
|
23763
24037
|
/**
|
|
23764
24038
|
* Set selection into Content Model. If the Content Model already has selection, existing selection will be overwritten by the new one.
|
|
23765
24039
|
* @param group The root level group of Content Model
|
|
@@ -23772,8 +24046,8 @@ function setSelection(group, start, end) {
|
|
|
23772
24046
|
exports.setSelection = setSelection;
|
|
23773
24047
|
function setSelectionToBlockGroup(group, isInSelection, start, end) {
|
|
23774
24048
|
return handleSelection(isInSelection, group, start, end, function (isInSelection) {
|
|
23775
|
-
if ((0, isGeneralSegment_1.isGeneralSegment)(group)) {
|
|
23776
|
-
setIsSelected(group, isInSelection);
|
|
24049
|
+
if ((0, isGeneralSegment_1.isGeneralSegment)(group) && needToSetSelection(group, isInSelection)) {
|
|
24050
|
+
setIsSelected((0, mutate_1.mutateBlock)(group), isInSelection);
|
|
23777
24051
|
}
|
|
23778
24052
|
group.blocks.forEach(function (block) {
|
|
23779
24053
|
isInSelection = setSelectionToBlock(block, isInSelection, start, end);
|
|
@@ -23790,11 +24064,14 @@ function setSelectionToBlock(block, isInSelection, start, end) {
|
|
|
23790
24064
|
case 'Divider':
|
|
23791
24065
|
case 'Entity':
|
|
23792
24066
|
return handleSelection(isInSelection, block, start, end, function (isInSelection) {
|
|
23793
|
-
if (isInSelection) {
|
|
23794
|
-
|
|
23795
|
-
|
|
23796
|
-
|
|
23797
|
-
|
|
24067
|
+
if (needToSetSelection(block, isInSelection)) {
|
|
24068
|
+
var mutableBlock = (0, mutate_1.mutateBlock)(block);
|
|
24069
|
+
if (isInSelection) {
|
|
24070
|
+
mutableBlock.isSelected = true;
|
|
24071
|
+
}
|
|
24072
|
+
else {
|
|
24073
|
+
delete mutableBlock.isSelected;
|
|
24074
|
+
}
|
|
23798
24075
|
}
|
|
23799
24076
|
return isInSelection;
|
|
23800
24077
|
});
|
|
@@ -23802,13 +24079,13 @@ function setSelectionToBlock(block, isInSelection, start, end) {
|
|
|
23802
24079
|
var segmentsToDelete_1 = [];
|
|
23803
24080
|
block.segments.forEach(function (segment, i) {
|
|
23804
24081
|
isInSelection = handleSelection(isInSelection, segment, start, end, function (isInSelection) {
|
|
23805
|
-
return setSelectionToSegment(segment, isInSelection, segmentsToDelete_1, start, end, i);
|
|
24082
|
+
return setSelectionToSegment(block, segment, isInSelection, segmentsToDelete_1, start, end, i);
|
|
23806
24083
|
});
|
|
23807
24084
|
});
|
|
23808
|
-
|
|
23809
|
-
|
|
24085
|
+
var index = void 0;
|
|
24086
|
+
while ((index = segmentsToDelete_1.pop()) !== undefined) {
|
|
23810
24087
|
if (index >= 0) {
|
|
23811
|
-
block.segments.splice(index, 1);
|
|
24088
|
+
(0, mutate_1.mutateBlock)(block).segments.splice(index, 1);
|
|
23812
24089
|
}
|
|
23813
24090
|
}
|
|
23814
24091
|
return isInSelection;
|
|
@@ -23825,7 +24102,9 @@ function setSelectionToTable(table, isInSelection, start, end) {
|
|
|
23825
24102
|
for (var col = 0; col < currentRow.cells.length; col++) {
|
|
23826
24103
|
var currentCell = table.rows[row].cells[col];
|
|
23827
24104
|
var isSelected = row >= first.row && row <= last.row && col >= first.col && col <= last.col;
|
|
23828
|
-
|
|
24105
|
+
if (needToSetSelection(currentCell, isSelected)) {
|
|
24106
|
+
setIsSelected((0, mutate_1.mutateBlock)(currentCell), isSelected);
|
|
24107
|
+
}
|
|
23829
24108
|
if (!isSelected) {
|
|
23830
24109
|
setSelectionToBlockGroup(currentCell, false /*isInSelection*/, start, end);
|
|
23831
24110
|
}
|
|
@@ -23848,7 +24127,7 @@ function findCell(table, cell) {
|
|
|
23848
24127
|
: -1;
|
|
23849
24128
|
return { row: row, col: col };
|
|
23850
24129
|
}
|
|
23851
|
-
function setSelectionToSegment(segment, isInSelection, segmentsToDelete, start, end, i) {
|
|
24130
|
+
function setSelectionToSegment(paragraph, segment, isInSelection, segmentsToDelete, start, end, i) {
|
|
23852
24131
|
switch (segment.segmentType) {
|
|
23853
24132
|
case 'SelectionMarker':
|
|
23854
24133
|
if (!isInSelection || (segment != start && segment != end)) {
|
|
@@ -23859,19 +24138,32 @@ function setSelectionToSegment(segment, isInSelection, segmentsToDelete, start,
|
|
|
23859
24138
|
}
|
|
23860
24139
|
return isInSelection;
|
|
23861
24140
|
case 'General':
|
|
23862
|
-
|
|
24141
|
+
internalSetSelectionToSegment(paragraph, segment, isInSelection);
|
|
23863
24142
|
return segment != start && segment != end
|
|
23864
24143
|
? setSelectionToBlockGroup(segment, isInSelection, start, end)
|
|
23865
24144
|
: isInSelection;
|
|
23866
24145
|
case 'Image':
|
|
23867
|
-
|
|
23868
|
-
segment
|
|
24146
|
+
var isSelectedAsImageSelection_1 = start == segment && (!end || end == segment);
|
|
24147
|
+
internalSetSelectionToSegment(paragraph, segment, isInSelection, !segment.isSelectedAsImageSelection != !isSelectedAsImageSelection_1
|
|
24148
|
+
? function (image) { return (image.isSelectedAsImageSelection = isSelectedAsImageSelection_1); }
|
|
24149
|
+
: undefined);
|
|
23869
24150
|
return isInSelection;
|
|
23870
24151
|
default:
|
|
23871
|
-
|
|
24152
|
+
internalSetSelectionToSegment(paragraph, segment, isInSelection);
|
|
23872
24153
|
return isInSelection;
|
|
23873
24154
|
}
|
|
23874
24155
|
}
|
|
24156
|
+
function internalSetSelectionToSegment(paragraph, segment, isInSelection, additionAction) {
|
|
24157
|
+
if (additionAction || needToSetSelection(segment, isInSelection)) {
|
|
24158
|
+
(0, mutate_1.mutateSegment)(paragraph, segment, function (mutableSegment) {
|
|
24159
|
+
setIsSelected(mutableSegment, isInSelection);
|
|
24160
|
+
additionAction === null || additionAction === void 0 ? void 0 : additionAction(mutableSegment);
|
|
24161
|
+
});
|
|
24162
|
+
}
|
|
24163
|
+
}
|
|
24164
|
+
function needToSetSelection(selectable, isSelected) {
|
|
24165
|
+
return !selectable.isSelected != !isSelected;
|
|
24166
|
+
}
|
|
23875
24167
|
function setIsSelected(selectable, value) {
|
|
23876
24168
|
if (value) {
|
|
23877
24169
|
selectable.isSelected = true;
|
|
@@ -23900,11 +24192,6 @@ function handleSelection(isInSelection, model, start, end, callback) {
|
|
|
23900
24192
|
|
|
23901
24193
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
23902
24194
|
exports.isBlockGroupOfType = void 0;
|
|
23903
|
-
/**
|
|
23904
|
-
* Check if the given content model block or block group is of the expected block group type
|
|
23905
|
-
* @param input The object to check
|
|
23906
|
-
* @param type The expected type
|
|
23907
|
-
*/
|
|
23908
24195
|
function isBlockGroupOfType(input, type) {
|
|
23909
24196
|
var item = input;
|
|
23910
24197
|
return (item === null || item === void 0 ? void 0 : item.blockGroupType) == type;
|
|
@@ -23924,10 +24211,6 @@ exports.isBlockGroupOfType = isBlockGroupOfType;
|
|
|
23924
24211
|
|
|
23925
24212
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
23926
24213
|
exports.isGeneralSegment = void 0;
|
|
23927
|
-
/**
|
|
23928
|
-
* Check if the given block group is a general segment
|
|
23929
|
-
* @param group The group to check
|
|
23930
|
-
*/
|
|
23931
24214
|
function isGeneralSegment(group) {
|
|
23932
24215
|
return (group.blockGroupType == 'General' &&
|
|
23933
24216
|
group.segmentType == 'General');
|
|
@@ -25637,7 +25920,11 @@ var roosterjs_content_model_api_1 = __webpack_require__(/*! roosterjs-content-mo
|
|
|
25637
25920
|
* @internal
|
|
25638
25921
|
*/
|
|
25639
25922
|
function createLink(editor) {
|
|
25923
|
+
var anchorNode = null;
|
|
25640
25924
|
(0, roosterjs_content_model_api_1.formatTextSegmentBeforeSelectionMarker)(editor, function (_model, linkSegment, _paragraph) {
|
|
25925
|
+
if (linkSegment.link) {
|
|
25926
|
+
return true;
|
|
25927
|
+
}
|
|
25641
25928
|
var linkData = null;
|
|
25642
25929
|
if (!linkSegment.link && (linkData = (0, roosterjs_content_model_api_1.matchLink)(linkSegment.text))) {
|
|
25643
25930
|
(0, roosterjs_content_model_dom_1.addLink)(linkSegment, {
|
|
@@ -25652,6 +25939,12 @@ function createLink(editor) {
|
|
|
25652
25939
|
return false;
|
|
25653
25940
|
}, {
|
|
25654
25941
|
changeSource: roosterjs_content_model_dom_1.ChangeSource.AutoLink,
|
|
25942
|
+
onNodeCreated: function (_modelElement, node) {
|
|
25943
|
+
if (!anchorNode) {
|
|
25944
|
+
anchorNode = node;
|
|
25945
|
+
}
|
|
25946
|
+
},
|
|
25947
|
+
getChangeData: function () { return anchorNode; },
|
|
25655
25948
|
});
|
|
25656
25949
|
}
|
|
25657
25950
|
exports.createLink = createLink;
|
|
@@ -26392,6 +26685,7 @@ var EditPlugin = /** @class */ (function () {
|
|
|
26392
26685
|
this.editor = null;
|
|
26393
26686
|
this.disposer = null;
|
|
26394
26687
|
this.shouldHandleNextInputEvent = false;
|
|
26688
|
+
this.selectionAfterDelete = null;
|
|
26395
26689
|
}
|
|
26396
26690
|
/**
|
|
26397
26691
|
* Get name of this plugin
|
|
@@ -26439,6 +26733,12 @@ var EditPlugin = /** @class */ (function () {
|
|
|
26439
26733
|
case 'keyDown':
|
|
26440
26734
|
this.handleKeyDownEvent(this.editor, event);
|
|
26441
26735
|
break;
|
|
26736
|
+
case 'keyUp':
|
|
26737
|
+
if (this.selectionAfterDelete) {
|
|
26738
|
+
this.editor.setDOMSelection(this.selectionAfterDelete);
|
|
26739
|
+
this.selectionAfterDelete = null;
|
|
26740
|
+
}
|
|
26741
|
+
break;
|
|
26442
26742
|
}
|
|
26443
26743
|
}
|
|
26444
26744
|
};
|
|
@@ -26475,8 +26775,6 @@ var EditPlugin = /** @class */ (function () {
|
|
|
26475
26775
|
}
|
|
26476
26776
|
};
|
|
26477
26777
|
EditPlugin.prototype.handleBeforeInputEvent = function (editor, rawEvent) {
|
|
26478
|
-
var _this = this;
|
|
26479
|
-
var _a, _b;
|
|
26480
26778
|
// Some Android IMEs doesn't fire correct keydown event for BACKSPACE/DELETE key
|
|
26481
26779
|
// Here we translate input event to BACKSPACE/DELETE keydown event to be compatible with existing logic
|
|
26482
26780
|
if (!this.shouldHandleNextInputEvent ||
|
|
@@ -26504,15 +26802,9 @@ var EditPlugin = /** @class */ (function () {
|
|
|
26504
26802
|
}
|
|
26505
26803
|
if (handled) {
|
|
26506
26804
|
rawEvent.preventDefault();
|
|
26507
|
-
// Restore the selection to avoid the cursor jump issue
|
|
26805
|
+
// Restore the selection on keyup event to avoid the cursor jump issue
|
|
26508
26806
|
// See: https://issues.chromium.org/issues/330596261
|
|
26509
|
-
|
|
26510
|
-
var doc = (_a = this.editor) === null || _a === void 0 ? void 0 : _a.getDocument();
|
|
26511
|
-
(_b = doc === null || doc === void 0 ? void 0 : doc.defaultView) === null || _b === void 0 ? void 0 : _b.requestAnimationFrame(function () {
|
|
26512
|
-
if (_this.editor) {
|
|
26513
|
-
_this.editor.setDOMSelection(selection_1);
|
|
26514
|
-
}
|
|
26515
|
-
});
|
|
26807
|
+
this.selectionAfterDelete = editor.getDOMSelection();
|
|
26516
26808
|
}
|
|
26517
26809
|
};
|
|
26518
26810
|
return EditPlugin;
|
|
@@ -26596,8 +26888,9 @@ function getDeleteCollapsedSelection(direction) {
|
|
|
26596
26888
|
context.deleteResult = 'range';
|
|
26597
26889
|
}
|
|
26598
26890
|
else if ((blockToDelete = (0, getLeafSiblingBlock_1.getLeafSiblingBlock)(path, paragraph, isForward))) {
|
|
26599
|
-
var
|
|
26600
|
-
if (
|
|
26891
|
+
var readonlyBlock = blockToDelete.block, path_1 = blockToDelete.path, siblingSegment = blockToDelete.siblingSegment;
|
|
26892
|
+
if (readonlyBlock.blockType == 'Paragraph') {
|
|
26893
|
+
var block = (0, roosterjs_content_model_dom_1.mutateBlock)(readonlyBlock);
|
|
26601
26894
|
if (siblingSegment) {
|
|
26602
26895
|
// When selection is under general segment, need to check if it has a sibling sibling, and delete from it
|
|
26603
26896
|
if ((0, roosterjs_content_model_dom_1.deleteSegment)(block, siblingSegment, context.formatContext, direction)) {
|
|
@@ -26619,7 +26912,6 @@ function getDeleteCollapsedSelection(direction) {
|
|
|
26619
26912
|
tableContext: tableContext,
|
|
26620
26913
|
};
|
|
26621
26914
|
context.lastParagraph = paragraph;
|
|
26622
|
-
delete block.cachedElement;
|
|
26623
26915
|
}
|
|
26624
26916
|
context.deleteResult = 'range';
|
|
26625
26917
|
}
|
|
@@ -26627,7 +26919,7 @@ function getDeleteCollapsedSelection(direction) {
|
|
|
26627
26919
|
context.lastTableContext = tableContext;
|
|
26628
26920
|
}
|
|
26629
26921
|
else {
|
|
26630
|
-
if ((0, roosterjs_content_model_dom_1.deleteBlock)(path_1[0].blocks,
|
|
26922
|
+
if ((0, roosterjs_content_model_dom_1.deleteBlock)((0, roosterjs_content_model_dom_1.mutateBlock)(path_1[0]).blocks, readonlyBlock, undefined /*replacement*/, context.formatContext, direction)) {
|
|
26631
26923
|
context.deleteResult = 'range';
|
|
26632
26924
|
}
|
|
26633
26925
|
}
|
|
@@ -26740,7 +27032,7 @@ var insertNewLine = function (quote, parent, index) {
|
|
|
26740
27032
|
var marker = (0, roosterjs_content_model_dom_1.createSelectionMarker)();
|
|
26741
27033
|
var newParagraph = (0, roosterjs_content_model_dom_1.createParagraph)(false /* isImplicit */);
|
|
26742
27034
|
newParagraph.segments.push(marker);
|
|
26743
|
-
parent.blocks.splice(index + 1, 0, newParagraph);
|
|
27035
|
+
(0, roosterjs_content_model_dom_1.mutateBlock)(parent).blocks.splice(index + 1, 0, newParagraph);
|
|
26744
27036
|
};
|
|
26745
27037
|
|
|
26746
27038
|
|
|
@@ -27080,7 +27372,7 @@ var handleEnterOnList = function (context) {
|
|
|
27080
27372
|
lastParagraph.blockType === 'Paragraph' &&
|
|
27081
27373
|
lastParagraph.segments[lastParagraph.segments.length - 1].segmentType ===
|
|
27082
27374
|
'SelectionMarker') {
|
|
27083
|
-
lastParagraph.segments.pop();
|
|
27375
|
+
(0, roosterjs_content_model_dom_1.mutateBlock)(lastParagraph).segments.pop();
|
|
27084
27376
|
nextParagraph.segments.unshift((0, roosterjs_content_model_dom_1.createSelectionMarker)(insertPoint.marker.format));
|
|
27085
27377
|
}
|
|
27086
27378
|
context.lastParagraph = undefined;
|
|
@@ -27088,7 +27380,7 @@ var handleEnterOnList = function (context) {
|
|
|
27088
27380
|
}
|
|
27089
27381
|
else if (deleteResult !== 'range') {
|
|
27090
27382
|
if (isEmptyListItem(listItem_1)) {
|
|
27091
|
-
listItem_1.levels.pop();
|
|
27383
|
+
(0, roosterjs_content_model_dom_1.mutateBlock)(listItem_1).levels.pop();
|
|
27092
27384
|
}
|
|
27093
27385
|
else {
|
|
27094
27386
|
var newListItem = createNewListItem(context, listItem_1, listParent);
|
|
@@ -27121,7 +27413,7 @@ var createNewListItem = function (context, listItem, listParent) {
|
|
|
27121
27413
|
newListItem.blocks.push(newParagraph);
|
|
27122
27414
|
insertPoint.paragraph = newParagraph;
|
|
27123
27415
|
context.lastParagraph = newParagraph;
|
|
27124
|
-
listParent.blocks.splice(listIndex + 1, 0, newListItem);
|
|
27416
|
+
(0, roosterjs_content_model_dom_1.mutateBlock)(listParent).blocks.splice(listIndex + 1, 0, newListItem);
|
|
27125
27417
|
return newListItem;
|
|
27126
27418
|
};
|
|
27127
27419
|
var createNewListLevel = function (listItem) {
|
|
@@ -27615,9 +27907,6 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
|
27615
27907
|
exports.getLeafSiblingBlock = void 0;
|
|
27616
27908
|
var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.mjs");
|
|
27617
27909
|
var roosterjs_content_model_dom_1 = __webpack_require__(/*! roosterjs-content-model-dom */ "./packages/roosterjs-content-model-dom/lib/index.ts");
|
|
27618
|
-
/**
|
|
27619
|
-
* @internal
|
|
27620
|
-
*/
|
|
27621
27910
|
function getLeafSiblingBlock(path, block, isNext) {
|
|
27622
27911
|
var _a;
|
|
27623
27912
|
var newPath = (0, tslib_1.__spreadArray)([], (0, tslib_1.__read)(path), false);
|
|
@@ -31133,6 +31422,7 @@ exports.createCellResizer = exports.VERTICAL_RESIZER_ID = exports.HORIZONTAL_RES
|
|
|
31133
31422
|
var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.mjs");
|
|
31134
31423
|
var createElement_1 = __webpack_require__(/*! ../../../pluginUtils/CreateElement/createElement */ "./packages/roosterjs-content-model-plugins/lib/pluginUtils/CreateElement/createElement.ts");
|
|
31135
31424
|
var DragAndDropHelper_1 = __webpack_require__(/*! ../../../pluginUtils/DragAndDrop/DragAndDropHelper */ "./packages/roosterjs-content-model-plugins/lib/pluginUtils/DragAndDrop/DragAndDropHelper.ts");
|
|
31425
|
+
var getTableFromContentModel_1 = __webpack_require__(/*! ../utils/getTableFromContentModel */ "./packages/roosterjs-content-model-plugins/lib/tableEdit/editors/utils/getTableFromContentModel.ts");
|
|
31136
31426
|
var roosterjs_content_model_dom_1 = __webpack_require__(/*! roosterjs-content-model-dom */ "./packages/roosterjs-content-model-dom/lib/index.ts");
|
|
31137
31427
|
var CELL_RESIZER_WIDTH = 4;
|
|
31138
31428
|
/**
|
|
@@ -31185,21 +31475,8 @@ function onDragStart(context, event) {
|
|
|
31185
31475
|
}; // Just a fallback
|
|
31186
31476
|
}
|
|
31187
31477
|
var editor = context.editor, table = context.table;
|
|
31188
|
-
// Get
|
|
31189
|
-
var
|
|
31190
|
-
// Select first cell of the table
|
|
31191
|
-
editor.setDOMSelection({
|
|
31192
|
-
type: 'table',
|
|
31193
|
-
firstColumn: 0,
|
|
31194
|
-
firstRow: 0,
|
|
31195
|
-
lastColumn: 0,
|
|
31196
|
-
lastRow: 0,
|
|
31197
|
-
table: table,
|
|
31198
|
-
});
|
|
31199
|
-
// Get the table content model
|
|
31200
|
-
var cmTable = (0, roosterjs_content_model_dom_1.getFirstSelectedTable)(editor.getContentModelCopy('disconnected'))[0];
|
|
31201
|
-
// Restore selection
|
|
31202
|
-
editor.setDOMSelection(selection);
|
|
31478
|
+
// Get Table block in content model
|
|
31479
|
+
var cmTable = (0, getTableFromContentModel_1.getCMTableFromTable)(editor, table);
|
|
31203
31480
|
if (rect && cmTable) {
|
|
31204
31481
|
onStart();
|
|
31205
31482
|
return {
|
|
@@ -31476,6 +31753,7 @@ var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.m
|
|
|
31476
31753
|
var createElement_1 = __webpack_require__(/*! ../../../pluginUtils/CreateElement/createElement */ "./packages/roosterjs-content-model-plugins/lib/pluginUtils/CreateElement/createElement.ts");
|
|
31477
31754
|
var DragAndDropHelper_1 = __webpack_require__(/*! ../../../pluginUtils/DragAndDrop/DragAndDropHelper */ "./packages/roosterjs-content-model-plugins/lib/pluginUtils/DragAndDrop/DragAndDropHelper.ts");
|
|
31478
31755
|
var roosterjs_content_model_api_1 = __webpack_require__(/*! roosterjs-content-model-api */ "./packages/roosterjs-content-model-api/lib/index.ts");
|
|
31756
|
+
var getTableFromContentModel_1 = __webpack_require__(/*! ../utils/getTableFromContentModel */ "./packages/roosterjs-content-model-plugins/lib/tableEdit/editors/utils/getTableFromContentModel.ts");
|
|
31479
31757
|
var roosterjs_content_model_dom_1 = __webpack_require__(/*! roosterjs-content-model-dom */ "./packages/roosterjs-content-model-dom/lib/index.ts");
|
|
31480
31758
|
var TABLE_MOVER_LENGTH = 12;
|
|
31481
31759
|
/**
|
|
@@ -31609,21 +31887,10 @@ function onDragStart(context) {
|
|
|
31609
31887
|
tableRect.style.top = trect.top + "px";
|
|
31610
31888
|
tableRect.style.left = trect.left + "px";
|
|
31611
31889
|
(_a = div.parentNode) === null || _a === void 0 ? void 0 : _a.appendChild(tableRect);
|
|
31612
|
-
// Get
|
|
31890
|
+
// Get drag start selection
|
|
31613
31891
|
var initialSelection = editor.getDOMSelection();
|
|
31614
|
-
//
|
|
31615
|
-
|
|
31616
|
-
type: 'table',
|
|
31617
|
-
firstColumn: 0,
|
|
31618
|
-
firstRow: 0,
|
|
31619
|
-
lastColumn: 0,
|
|
31620
|
-
lastRow: 0,
|
|
31621
|
-
table: table,
|
|
31622
|
-
});
|
|
31623
|
-
// Get the table content model
|
|
31624
|
-
var _b = (0, tslib_1.__read)((0, roosterjs_content_model_dom_1.getFirstSelectedTable)(editor.getContentModelCopy('disconnected')), 1), cmTable = _b[0];
|
|
31625
|
-
// Restore selection
|
|
31626
|
-
editor.setDOMSelection(initialSelection);
|
|
31892
|
+
// Get Table block in content model
|
|
31893
|
+
var cmTable = (0, getTableFromContentModel_1.getCMTableFromTable)(editor, table);
|
|
31627
31894
|
return {
|
|
31628
31895
|
cmTable: cmTable,
|
|
31629
31896
|
initialSelection: initialSelection,
|
|
@@ -31756,6 +32023,7 @@ exports.createTableResizer = exports.TABLE_RESIZER_ID = void 0;
|
|
|
31756
32023
|
var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.mjs");
|
|
31757
32024
|
var createElement_1 = __webpack_require__(/*! ../../../pluginUtils/CreateElement/createElement */ "./packages/roosterjs-content-model-plugins/lib/pluginUtils/CreateElement/createElement.ts");
|
|
31758
32025
|
var DragAndDropHelper_1 = __webpack_require__(/*! ../../../pluginUtils/DragAndDrop/DragAndDropHelper */ "./packages/roosterjs-content-model-plugins/lib/pluginUtils/DragAndDrop/DragAndDropHelper.ts");
|
|
32026
|
+
var getTableFromContentModel_1 = __webpack_require__(/*! ../utils/getTableFromContentModel */ "./packages/roosterjs-content-model-plugins/lib/tableEdit/editors/utils/getTableFromContentModel.ts");
|
|
31759
32027
|
var roosterjs_content_model_dom_1 = __webpack_require__(/*! roosterjs-content-model-dom */ "./packages/roosterjs-content-model-dom/lib/index.ts");
|
|
31760
32028
|
var TABLE_RESIZER_LENGTH = 12;
|
|
31761
32029
|
/**
|
|
@@ -31819,21 +32087,8 @@ var TableResizer = /** @class */ (function (_super) {
|
|
|
31819
32087
|
function onDragStart(context, event) {
|
|
31820
32088
|
context.onStart();
|
|
31821
32089
|
var editor = context.editor, table = context.table;
|
|
31822
|
-
// Get
|
|
31823
|
-
var
|
|
31824
|
-
// Select first cell of the table
|
|
31825
|
-
editor.setDOMSelection({
|
|
31826
|
-
type: 'table',
|
|
31827
|
-
firstColumn: 0,
|
|
31828
|
-
firstRow: 0,
|
|
31829
|
-
lastColumn: 0,
|
|
31830
|
-
lastRow: 0,
|
|
31831
|
-
table: table,
|
|
31832
|
-
});
|
|
31833
|
-
// Get the table content model
|
|
31834
|
-
var cmTable = (0, roosterjs_content_model_dom_1.getFirstSelectedTable)(editor.getContentModelCopy('disconnected'))[0];
|
|
31835
|
-
// Restore selection
|
|
31836
|
-
editor.setDOMSelection(selection);
|
|
32090
|
+
// Get Table block in content model
|
|
32091
|
+
var cmTable = (0, getTableFromContentModel_1.getCMTableFromTable)(editor, table);
|
|
31837
32092
|
// Save original widths and heights
|
|
31838
32093
|
var heights = [];
|
|
31839
32094
|
cmTable === null || cmTable === void 0 ? void 0 : cmTable.rows.forEach(function (row) {
|
|
@@ -31935,6 +32190,45 @@ function isTableBottomVisible(editor, rect, contentDiv) {
|
|
|
31935
32190
|
}
|
|
31936
32191
|
|
|
31937
32192
|
|
|
32193
|
+
/***/ }),
|
|
32194
|
+
|
|
32195
|
+
/***/ "./packages/roosterjs-content-model-plugins/lib/tableEdit/editors/utils/getTableFromContentModel.ts":
|
|
32196
|
+
/*!**********************************************************************************************************!*\
|
|
32197
|
+
!*** ./packages/roosterjs-content-model-plugins/lib/tableEdit/editors/utils/getTableFromContentModel.ts ***!
|
|
32198
|
+
\**********************************************************************************************************/
|
|
32199
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
32200
|
+
|
|
32201
|
+
"use strict";
|
|
32202
|
+
|
|
32203
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
32204
|
+
exports.getCMTableFromTable = void 0;
|
|
32205
|
+
var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.mjs");
|
|
32206
|
+
var roosterjs_content_model_dom_1 = __webpack_require__(/*! roosterjs-content-model-dom */ "./packages/roosterjs-content-model-dom/lib/index.ts");
|
|
32207
|
+
/**
|
|
32208
|
+
* @internal
|
|
32209
|
+
* Get ContentModelTable from a table element if it is present in the content model
|
|
32210
|
+
*/
|
|
32211
|
+
function getCMTableFromTable(editor, table) {
|
|
32212
|
+
var cmTable;
|
|
32213
|
+
editor.formatContentModel(function (model) {
|
|
32214
|
+
var _a;
|
|
32215
|
+
_a = (0, tslib_1.__read)((0, roosterjs_content_model_dom_1.getFirstSelectedTable)(model), 1), cmTable = _a[0];
|
|
32216
|
+
return false;
|
|
32217
|
+
}, {
|
|
32218
|
+
selectionOverride: {
|
|
32219
|
+
type: 'table',
|
|
32220
|
+
firstColumn: 0,
|
|
32221
|
+
firstRow: 0,
|
|
32222
|
+
lastColumn: 0,
|
|
32223
|
+
lastRow: 0,
|
|
32224
|
+
table: table,
|
|
32225
|
+
},
|
|
32226
|
+
});
|
|
32227
|
+
return cmTable;
|
|
32228
|
+
}
|
|
32229
|
+
exports.getCMTableFromTable = getCMTableFromTable;
|
|
32230
|
+
|
|
32231
|
+
|
|
31938
32232
|
/***/ }),
|
|
31939
32233
|
|
|
31940
32234
|
/***/ "./packages/roosterjs-content-model-plugins/lib/watermark/WatermarkPlugin.ts":
|