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