roosterjs 9.24.0 → 9.26.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -0
- package/dist/rooster-amd-min.js +1 -1
- package/dist/rooster-amd-min.js.map +1 -1
- package/dist/rooster-amd.d.ts +36 -3
- package/dist/rooster-amd.js +1638 -109
- 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 +55 -55
- package/dist/rooster-react-amd.js.map +1 -1
- package/dist/rooster-react.js +53 -53
- package/dist/rooster-react.js.map +1 -1
- package/dist/rooster.d.ts +36 -3
- package/dist/rooster.js +1638 -109
- package/dist/rooster.js.map +1 -1
- package/lib/index.d.ts +1 -0
- package/lib/index.js +1 -0
- package/lib/index.js.map +1 -1
- package/lib-amd/index.d.ts +1 -0
- package/lib-amd/index.js +2 -1
- package/lib-amd/index.js.map +1 -1
- package/lib-mjs/index.d.ts +1 -0
- package/lib-mjs/index.js +1 -0
- package/lib-mjs/index.js.map +1 -1
- package/package.json +8 -7
package/dist/rooster-amd.js
CHANGED
|
@@ -4301,16 +4301,18 @@ var roosterjs_content_model_dom_1 = __webpack_require__(/*! roosterjs-content-mo
|
|
|
4301
4301
|
function clearSelectedCells(table, sel) {
|
|
4302
4302
|
if (sel.firstColumn >= 0 &&
|
|
4303
4303
|
sel.firstRow >= 0 &&
|
|
4304
|
-
sel.
|
|
4305
|
-
sel.
|
|
4304
|
+
sel.lastRow < table.rows.length &&
|
|
4305
|
+
sel.lastColumn < table.rows[sel.lastRow].cells.length) {
|
|
4306
4306
|
for (var i = sel.firstRow; i <= sel.lastRow; i++) {
|
|
4307
4307
|
var row = table.rows[i];
|
|
4308
4308
|
for (var j = sel.firstColumn; j <= sel.lastColumn; j++) {
|
|
4309
4309
|
var cell = row.cells[j];
|
|
4310
|
-
if (cell
|
|
4311
|
-
|
|
4310
|
+
if (cell) {
|
|
4311
|
+
if (cell.isSelected) {
|
|
4312
|
+
(0, roosterjs_content_model_dom_1.mutateBlock)(cell).isSelected = false;
|
|
4313
|
+
}
|
|
4314
|
+
(0, roosterjs_content_model_dom_1.setSelection)(cell);
|
|
4312
4315
|
}
|
|
4313
|
-
(0, roosterjs_content_model_dom_1.setSelection)(cell);
|
|
4314
4316
|
}
|
|
4315
4317
|
}
|
|
4316
4318
|
}
|
|
@@ -4752,7 +4754,9 @@ function splitTableCellHorizontally(table) {
|
|
|
4752
4754
|
table.rows.forEach(function (row, rowIndex) {
|
|
4753
4755
|
var cell = row.cells[colIndex];
|
|
4754
4756
|
if (cell) {
|
|
4755
|
-
var
|
|
4757
|
+
var mutableCell = (0, roosterjs_content_model_dom_1.mutateBlock)(cell);
|
|
4758
|
+
delete mutableCell.format.width;
|
|
4759
|
+
var newCell = (0, roosterjs_content_model_dom_1.createTableCell)(cell.spanLeft, cell.spanAbove, cell.isHeader, mutableCell.format);
|
|
4756
4760
|
newCell.dataset = (0, tslib_1.__assign)({}, cell.dataset);
|
|
4757
4761
|
if (rowIndex < sel.firstRow || rowIndex > sel.lastRow) {
|
|
4758
4762
|
newCell.spanLeft = true;
|
|
@@ -4818,7 +4822,9 @@ function splitTableCellVertically(table) {
|
|
|
4818
4822
|
format: (0, tslib_1.__assign)({}, row.format),
|
|
4819
4823
|
height: newHeight,
|
|
4820
4824
|
cells: row.cells.map(function (cell, colIndex) {
|
|
4821
|
-
var
|
|
4825
|
+
var mutableCell = (0, roosterjs_content_model_dom_1.mutateBlock)(cell);
|
|
4826
|
+
delete mutableCell.format.height;
|
|
4827
|
+
var newCell = (0, roosterjs_content_model_dom_1.createTableCell)(cell.spanLeft, cell.spanAbove, cell.isHeader, mutableCell.format);
|
|
4822
4828
|
newCell.dataset = (0, tslib_1.__assign)({}, cell.dataset);
|
|
4823
4829
|
if (colIndex < sel.firstColumn || colIndex > sel.lastColumn) {
|
|
4824
4830
|
newCell.spanAbove = true;
|
|
@@ -5267,7 +5273,7 @@ function getFormatState(editor, conflictSolution) {
|
|
|
5267
5273
|
isDarkMode: editor.isDarkMode(),
|
|
5268
5274
|
};
|
|
5269
5275
|
editor.formatContentModel(function (model) {
|
|
5270
|
-
(0, roosterjs_content_model_dom_1.retrieveModelFormatState)(model, pendingFormat, result, conflictSolution);
|
|
5276
|
+
(0, roosterjs_content_model_dom_1.retrieveModelFormatState)(model, pendingFormat, result, conflictSolution, editor.getDOMHelper());
|
|
5271
5277
|
return false;
|
|
5272
5278
|
}, undefined /*options*/, {
|
|
5273
5279
|
processorOverride: {
|
|
@@ -7383,6 +7389,8 @@ function formatTableWithContentModel(editor, apiName, callback, selectionOverrid
|
|
|
7383
7389
|
}, {
|
|
7384
7390
|
apiName: apiName,
|
|
7385
7391
|
selectionOverride: selectionOverride,
|
|
7392
|
+
}, {
|
|
7393
|
+
recalculateTableSize: 'selected',
|
|
7386
7394
|
});
|
|
7387
7395
|
}
|
|
7388
7396
|
exports.formatTableWithContentModel = formatTableWithContentModel;
|
|
@@ -8891,7 +8899,8 @@ var createContentModel = function (core, option, selectionOverride) {
|
|
|
8891
8899
|
var _a;
|
|
8892
8900
|
// Flush all mutations if any, so that we can get an up-to-date Content Model
|
|
8893
8901
|
(_a = core.cache.textMutationObserver) === null || _a === void 0 ? void 0 : _a.flushMutations();
|
|
8894
|
-
|
|
8902
|
+
var tryGetFromCache = !option || (option.tryGetFromCache && typeof option.recalculateTableSize === 'undefined');
|
|
8903
|
+
if (!selectionOverride && tryGetFromCache) {
|
|
8895
8904
|
var cachedModel = core.cache.cachedModel;
|
|
8896
8905
|
if (cachedModel) {
|
|
8897
8906
|
// When in shadow edit, use a cloned model so we won't pollute the cached one
|
|
@@ -8905,6 +8914,7 @@ var createContentModel = function (core, option, selectionOverride) {
|
|
|
8905
8914
|
: selectionOverride || core.api.getDOMSelection(core) || undefined;
|
|
8906
8915
|
var saveIndex = !option && !selectionOverride;
|
|
8907
8916
|
var editorContext = core.api.createEditorContext(core, saveIndex);
|
|
8917
|
+
editorContext.recalculateTableSize = option === null || option === void 0 ? void 0 : option.recalculateTableSize;
|
|
8908
8918
|
var settings = core.environment.domToModelSettings;
|
|
8909
8919
|
var domToModelContext = option
|
|
8910
8920
|
? (0, roosterjs_content_model_dom_1.createDomToModelContext)(editorContext, settings.builtIn, settings.customized, option)
|
|
@@ -9816,13 +9826,12 @@ var areSameSelections_1 = __webpack_require__(/*! ../../corePlugin/cache/areSame
|
|
|
9816
9826
|
var ensureUniqueId_1 = __webpack_require__(/*! ../setEditorStyle/ensureUniqueId */ "./packages/roosterjs-content-model-core/lib/coreApi/setEditorStyle/ensureUniqueId.ts");
|
|
9817
9827
|
var findLastedCoInMergedCell_1 = __webpack_require__(/*! ./findLastedCoInMergedCell */ "./packages/roosterjs-content-model-core/lib/coreApi/setDOMSelection/findLastedCoInMergedCell.ts");
|
|
9818
9828
|
var findTableCellElement_1 = __webpack_require__(/*! ./findTableCellElement */ "./packages/roosterjs-content-model-core/lib/coreApi/setDOMSelection/findTableCellElement.ts");
|
|
9829
|
+
var toggleCaret_1 = __webpack_require__(/*! ./toggleCaret */ "./packages/roosterjs-content-model-core/lib/coreApi/setDOMSelection/toggleCaret.ts");
|
|
9819
9830
|
var roosterjs_content_model_dom_1 = __webpack_require__(/*! roosterjs-content-model-dom */ "./packages/roosterjs-content-model-dom/lib/index.ts");
|
|
9820
9831
|
var DOM_SELECTION_CSS_KEY = '_DOMSelection';
|
|
9821
|
-
var HIDE_CURSOR_CSS_KEY = '_DOMSelectionHideCursor';
|
|
9822
9832
|
var HIDE_SELECTION_CSS_KEY = '_DOMSelectionHideSelection';
|
|
9823
9833
|
var IMAGE_ID = 'image';
|
|
9824
9834
|
var TABLE_ID = 'table';
|
|
9825
|
-
var CARET_CSS_RULE = 'caret-color: transparent';
|
|
9826
9835
|
var TRANSPARENT_SELECTION_CSS_RULE = 'background-color: transparent !important;';
|
|
9827
9836
|
var SELECTION_SELECTOR = '*::selection';
|
|
9828
9837
|
var DEFAULT_SELECTION_BORDER_COLOR = '#DB626C';
|
|
@@ -9842,8 +9851,8 @@ var setDOMSelection = function (core, selection, skipSelectionChangedEvent) {
|
|
|
9842
9851
|
var isDarkMode = core.lifecycle.isDarkMode;
|
|
9843
9852
|
core.selection.skipReselectOnFocus = true;
|
|
9844
9853
|
core.api.setEditorStyle(core, DOM_SELECTION_CSS_KEY, null /*cssRule*/);
|
|
9845
|
-
core.api.setEditorStyle(core, HIDE_CURSOR_CSS_KEY, null /*cssRule*/);
|
|
9846
9854
|
core.api.setEditorStyle(core, HIDE_SELECTION_CSS_KEY, null /*cssRule*/);
|
|
9855
|
+
(0, toggleCaret_1.toggleCaret)(core, false /* hide */);
|
|
9847
9856
|
try {
|
|
9848
9857
|
switch (selection === null || selection === void 0 ? void 0 : selection.type) {
|
|
9849
9858
|
case 'image':
|
|
@@ -9897,8 +9906,8 @@ var setDOMSelection = function (core, selection, skipSelectionChangedEvent) {
|
|
|
9897
9906
|
? core.selection.tableCellSelectionBackgroundColorDark
|
|
9898
9907
|
: core.selection.tableCellSelectionBackgroundColor;
|
|
9899
9908
|
core.api.setEditorStyle(core, DOM_SELECTION_CSS_KEY, "background-color:" + tableSelectionColor + "!important;", tableSelectors);
|
|
9900
|
-
core.api.setEditorStyle(core, HIDE_CURSOR_CSS_KEY, CARET_CSS_RULE);
|
|
9901
9909
|
core.api.setEditorStyle(core, HIDE_SELECTION_CSS_KEY, TRANSPARENT_SELECTION_CSS_RULE, [SELECTION_SELECTOR]);
|
|
9910
|
+
(0, toggleCaret_1.toggleCaret)(core, true /* hide */);
|
|
9902
9911
|
var nodeToSelect = ((_c = firstCell.cell) === null || _c === void 0 ? void 0 : _c.firstElementChild) || firstCell.cell;
|
|
9903
9912
|
if (nodeToSelect) {
|
|
9904
9913
|
setRangeSelection(doc, nodeToSelect || undefined, true /* collapse */);
|
|
@@ -9990,6 +9999,31 @@ function setRangeSelection(doc, element, collapse) {
|
|
|
9990
9999
|
}
|
|
9991
10000
|
|
|
9992
10001
|
|
|
10002
|
+
/***/ }),
|
|
10003
|
+
|
|
10004
|
+
/***/ "./packages/roosterjs-content-model-core/lib/coreApi/setDOMSelection/toggleCaret.ts":
|
|
10005
|
+
/*!******************************************************************************************!*\
|
|
10006
|
+
!*** ./packages/roosterjs-content-model-core/lib/coreApi/setDOMSelection/toggleCaret.ts ***!
|
|
10007
|
+
\******************************************************************************************/
|
|
10008
|
+
/***/ ((__unused_webpack_module, exports) => {
|
|
10009
|
+
|
|
10010
|
+
"use strict";
|
|
10011
|
+
|
|
10012
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
10013
|
+
exports.toggleCaret = void 0;
|
|
10014
|
+
var CARET_CSS_RULE = 'caret-color: transparent';
|
|
10015
|
+
var HIDE_CURSOR_CSS_KEY = '_DOMSelectionHideCursor';
|
|
10016
|
+
/**
|
|
10017
|
+
* @internal Show/Hide caret in editor
|
|
10018
|
+
* @param core The editor core
|
|
10019
|
+
* @param isHiding True to hide caret, false to show caret
|
|
10020
|
+
*/
|
|
10021
|
+
function toggleCaret(core, isHiding) {
|
|
10022
|
+
core.api.setEditorStyle(core, HIDE_CURSOR_CSS_KEY, isHiding ? CARET_CSS_RULE : null);
|
|
10023
|
+
}
|
|
10024
|
+
exports.toggleCaret = toggleCaret;
|
|
10025
|
+
|
|
10026
|
+
|
|
9993
10027
|
/***/ }),
|
|
9994
10028
|
|
|
9995
10029
|
/***/ "./packages/roosterjs-content-model-core/lib/coreApi/setEditorStyle/ensureUniqueId.ts":
|
|
@@ -10150,6 +10184,7 @@ exports.setLogicalRoot = setLogicalRoot;
|
|
|
10150
10184
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
10151
10185
|
exports.switchShadowEdit = void 0;
|
|
10152
10186
|
var roosterjs_content_model_dom_1 = __webpack_require__(/*! roosterjs-content-model-dom */ "./packages/roosterjs-content-model-dom/lib/index.ts");
|
|
10187
|
+
var toggleCaret_1 = __webpack_require__(/*! ../setDOMSelection/toggleCaret */ "./packages/roosterjs-content-model-core/lib/coreApi/setDOMSelection/toggleCaret.ts");
|
|
10153
10188
|
/**
|
|
10154
10189
|
* @internal
|
|
10155
10190
|
* Switch the Shadow Edit mode of editor On/Off
|
|
@@ -10172,10 +10207,12 @@ var switchShadowEdit = function (editorCore, isOn) {
|
|
|
10172
10207
|
if (!core.cache.cachedModel && model) {
|
|
10173
10208
|
core.cache.cachedModel = model;
|
|
10174
10209
|
}
|
|
10210
|
+
(0, toggleCaret_1.toggleCaret)(core, true /* hide */);
|
|
10175
10211
|
core.lifecycle.shadowEditFragment = fragment;
|
|
10176
10212
|
}
|
|
10177
10213
|
else {
|
|
10178
10214
|
core.lifecycle.shadowEditFragment = null;
|
|
10215
|
+
(0, toggleCaret_1.toggleCaret)(core, false /* hide */);
|
|
10179
10216
|
core.api.triggerEvent(core, {
|
|
10180
10217
|
eventType: 'leavingShadowEdit',
|
|
10181
10218
|
}, false /*broadcast*/);
|
|
@@ -12566,8 +12603,13 @@ function handleInputOnDelimiter(editor, range, focusedNode, rawEvent) {
|
|
|
12566
12603
|
}
|
|
12567
12604
|
else {
|
|
12568
12605
|
if (isEnter) {
|
|
12569
|
-
|
|
12570
|
-
|
|
12606
|
+
editor.formatContentModel(function (model, context) {
|
|
12607
|
+
var result = (0, exports.handleEnterInlineEntity)(model, context);
|
|
12608
|
+
if (result) {
|
|
12609
|
+
rawEvent.preventDefault();
|
|
12610
|
+
}
|
|
12611
|
+
return result;
|
|
12612
|
+
});
|
|
12571
12613
|
}
|
|
12572
12614
|
else {
|
|
12573
12615
|
editor.takeSnapshot();
|
|
@@ -12611,9 +12653,13 @@ var handleEnterInlineEntity = function (model) {
|
|
|
12611
12653
|
(0, roosterjs_content_model_dom_1.iterateSelections)(model, function (path, _tableContext, block) {
|
|
12612
12654
|
if ((block === null || block === void 0 ? void 0 : block.blockType) == 'Paragraph') {
|
|
12613
12655
|
readonlySelectionBlock = block;
|
|
12614
|
-
selectionBlockParent = path[
|
|
12656
|
+
selectionBlockParent = path[0];
|
|
12615
12657
|
}
|
|
12616
12658
|
});
|
|
12659
|
+
if ((selectionBlockParent === null || selectionBlockParent === void 0 ? void 0 : selectionBlockParent.blockGroupType) == 'ListItem') {
|
|
12660
|
+
// No need to handle list item since it will be handled by common enter handler code
|
|
12661
|
+
return false;
|
|
12662
|
+
}
|
|
12617
12663
|
if (readonlySelectionBlock && selectionBlockParent) {
|
|
12618
12664
|
var markerIndex = readonlySelectionBlock.segments.findIndex(function (segment) { return segment.segmentType == 'SelectionMarker'; });
|
|
12619
12665
|
if (markerIndex >= 0) {
|
|
@@ -14729,6 +14775,29 @@ var DOMHelperImpl = /** @class */ (function () {
|
|
|
14729
14775
|
DOMHelperImpl.prototype.getClonedRoot = function () {
|
|
14730
14776
|
return this.contentDiv.cloneNode(true /*deep*/);
|
|
14731
14777
|
};
|
|
14778
|
+
/**
|
|
14779
|
+
* Get format of the container element
|
|
14780
|
+
*/
|
|
14781
|
+
DOMHelperImpl.prototype.getContainerFormat = function () {
|
|
14782
|
+
var _a, _b;
|
|
14783
|
+
var window = this.contentDiv.ownerDocument.defaultView;
|
|
14784
|
+
var style = window === null || window === void 0 ? void 0 : window.getComputedStyle(this.contentDiv);
|
|
14785
|
+
return style
|
|
14786
|
+
? {
|
|
14787
|
+
fontSize: style.fontSize,
|
|
14788
|
+
fontFamily: style.fontFamily,
|
|
14789
|
+
fontWeight: style.fontWeight,
|
|
14790
|
+
textColor: style.color,
|
|
14791
|
+
backgroundColor: style.backgroundColor,
|
|
14792
|
+
italic: style.fontStyle == 'italic',
|
|
14793
|
+
letterSpacing: style.letterSpacing,
|
|
14794
|
+
lineHeight: style.lineHeight,
|
|
14795
|
+
strikethrough: (_a = style.textDecoration) === null || _a === void 0 ? void 0 : _a.includes('line-through'),
|
|
14796
|
+
superOrSubScriptSequence: style.verticalAlign,
|
|
14797
|
+
underline: (_b = style.textDecoration) === null || _b === void 0 ? void 0 : _b.includes('underline'),
|
|
14798
|
+
}
|
|
14799
|
+
: {};
|
|
14800
|
+
};
|
|
14732
14801
|
return DOMHelperImpl;
|
|
14733
14802
|
}());
|
|
14734
14803
|
/**
|
|
@@ -17196,6 +17265,7 @@ var addBlock_1 = __webpack_require__(/*! ../../modelApi/common/addBlock */ "./pa
|
|
|
17196
17265
|
var createTable_1 = __webpack_require__(/*! ../../modelApi/creators/createTable */ "./packages/roosterjs-content-model-dom/lib/modelApi/creators/createTable.ts");
|
|
17197
17266
|
var createTableCell_1 = __webpack_require__(/*! ../../modelApi/creators/createTableCell */ "./packages/roosterjs-content-model-dom/lib/modelApi/creators/createTableCell.ts");
|
|
17198
17267
|
var getBoundingClientRect_1 = __webpack_require__(/*! ../utils/getBoundingClientRect */ "./packages/roosterjs-content-model-dom/lib/domToModel/utils/getBoundingClientRect.ts");
|
|
17268
|
+
var getSelectionRootNode_1 = __webpack_require__(/*! ../../domUtils/selection/getSelectionRootNode */ "./packages/roosterjs-content-model-dom/lib/domUtils/selection/getSelectionRootNode.ts");
|
|
17199
17269
|
var isElementOfType_1 = __webpack_require__(/*! ../../domUtils/isElementOfType */ "./packages/roosterjs-content-model-dom/lib/domUtils/isElementOfType.ts");
|
|
17200
17270
|
var isNodeOfType_1 = __webpack_require__(/*! ../../domUtils/isNodeOfType */ "./packages/roosterjs-content-model-dom/lib/domUtils/isNodeOfType.ts");
|
|
17201
17271
|
var parseFormat_1 = __webpack_require__(/*! ../utils/parseFormat */ "./packages/roosterjs-content-model-dom/lib/domToModel/utils/parseFormat.ts");
|
|
@@ -17226,6 +17296,7 @@ var tableProcessor = function (group, tableElement, context) {
|
|
|
17226
17296
|
var tableSelection = ((_a = context.selection) === null || _a === void 0 ? void 0 : _a.type) == 'table' ? context.selection : null;
|
|
17227
17297
|
var selectedTable = tableSelection === null || tableSelection === void 0 ? void 0 : tableSelection.table;
|
|
17228
17298
|
var hasTableSelection = selectedTable == tableElement;
|
|
17299
|
+
var recalculateTableSize = shouldRecalculateTableSize(tableElement, context);
|
|
17229
17300
|
if (context.allowCacheElement) {
|
|
17230
17301
|
table.cachedElement = tableElement;
|
|
17231
17302
|
}
|
|
@@ -17268,21 +17339,24 @@ var tableProcessor = function (group, tableElement, context) {
|
|
|
17268
17339
|
for (; tableRow.cells[targetCol]; targetCol++) { }
|
|
17269
17340
|
var td = tr.cells[sourceCol];
|
|
17270
17341
|
var hasSelectionBeforeCell = context.isInSelection;
|
|
17271
|
-
|
|
17272
|
-
|
|
17273
|
-
|
|
17274
|
-
|
|
17275
|
-
|
|
17276
|
-
|
|
17277
|
-
|
|
17278
|
-
if (
|
|
17279
|
-
|
|
17280
|
-
|
|
17281
|
-
|
|
17282
|
-
|
|
17283
|
-
|
|
17284
|
-
|
|
17285
|
-
|
|
17342
|
+
if (recalculateTableSize) {
|
|
17343
|
+
var colEnd = targetCol + td.colSpan;
|
|
17344
|
+
var rowEnd = row + td.rowSpan;
|
|
17345
|
+
var needCalcWidth = columnPositions[colEnd] === undefined;
|
|
17346
|
+
var needCalcHeight = rowPositions[rowEnd] === undefined;
|
|
17347
|
+
if (needCalcWidth || needCalcHeight) {
|
|
17348
|
+
var rect = (0, getBoundingClientRect_1.getBoundingClientRect)(td);
|
|
17349
|
+
if (rect.width > 0 || rect.height > 0) {
|
|
17350
|
+
if (needCalcWidth) {
|
|
17351
|
+
var pos = columnPositions[targetCol];
|
|
17352
|
+
columnPositions[colEnd] =
|
|
17353
|
+
(typeof pos == 'number' ? pos : 0) +
|
|
17354
|
+
rect.width / zoomScale;
|
|
17355
|
+
}
|
|
17356
|
+
if (needCalcHeight) {
|
|
17357
|
+
rowPositions[rowEnd] =
|
|
17358
|
+
rowPositions[row] + rect.height / zoomScale;
|
|
17359
|
+
}
|
|
17286
17360
|
}
|
|
17287
17361
|
}
|
|
17288
17362
|
}
|
|
@@ -17409,6 +17483,21 @@ function processColGroup(table, context, result) {
|
|
|
17409
17483
|
}
|
|
17410
17484
|
return hasColGroup;
|
|
17411
17485
|
}
|
|
17486
|
+
function shouldRecalculateTableSize(table, context) {
|
|
17487
|
+
switch (context.recalculateTableSize) {
|
|
17488
|
+
case true:
|
|
17489
|
+
case 'all':
|
|
17490
|
+
return true;
|
|
17491
|
+
case 'selected':
|
|
17492
|
+
var selectionRoot = (0, getSelectionRootNode_1.getSelectionRootNode)(context.selection);
|
|
17493
|
+
return (!!selectionRoot &&
|
|
17494
|
+
(selectionRoot == table ||
|
|
17495
|
+
table.contains(selectionRoot) ||
|
|
17496
|
+
selectionRoot.contains(table)));
|
|
17497
|
+
default:
|
|
17498
|
+
return false;
|
|
17499
|
+
}
|
|
17500
|
+
}
|
|
17412
17501
|
|
|
17413
17502
|
|
|
17414
17503
|
/***/ }),
|
|
@@ -18549,15 +18638,20 @@ exports.readFile = void 0;
|
|
|
18549
18638
|
* If fail to read, dataUrl will be null
|
|
18550
18639
|
*/
|
|
18551
18640
|
function readFile(file, callback) {
|
|
18552
|
-
|
|
18553
|
-
|
|
18554
|
-
|
|
18555
|
-
|
|
18556
|
-
|
|
18557
|
-
|
|
18558
|
-
|
|
18559
|
-
|
|
18560
|
-
|
|
18641
|
+
try {
|
|
18642
|
+
if (file) {
|
|
18643
|
+
var reader_1 = new FileReader();
|
|
18644
|
+
reader_1.onload = function () {
|
|
18645
|
+
callback(reader_1.result);
|
|
18646
|
+
};
|
|
18647
|
+
reader_1.onerror = function () {
|
|
18648
|
+
callback(null);
|
|
18649
|
+
};
|
|
18650
|
+
reader_1.readAsDataURL(file);
|
|
18651
|
+
}
|
|
18652
|
+
}
|
|
18653
|
+
catch (_a) {
|
|
18654
|
+
callback(null);
|
|
18561
18655
|
}
|
|
18562
18656
|
}
|
|
18563
18657
|
exports.readFile = readFile;
|
|
@@ -24370,13 +24464,18 @@ var parseValueWithUnit_1 = __webpack_require__(/*! ../../formatHandlers/utils/pa
|
|
|
24370
24464
|
* @param formatState Existing format state object, used for receiving the result
|
|
24371
24465
|
* @param conflictSolution The strategy for handling format conflicts
|
|
24372
24466
|
*/
|
|
24373
|
-
function retrieveModelFormatState(model, pendingFormat, formatState, conflictSolution) {
|
|
24467
|
+
function retrieveModelFormatState(model, pendingFormat, formatState, conflictSolution, domHelper) {
|
|
24374
24468
|
if (conflictSolution === void 0) { conflictSolution = 'remove'; }
|
|
24375
24469
|
var firstTableContext;
|
|
24376
24470
|
var firstBlock;
|
|
24377
24471
|
var isFirst = true;
|
|
24378
24472
|
var isFirstImage = true;
|
|
24379
24473
|
var isFirstSegment = true;
|
|
24474
|
+
var containerFormat = undefined;
|
|
24475
|
+
var modelFormat = (0, tslib_1.__assign)({}, model.format);
|
|
24476
|
+
delete modelFormat.italic;
|
|
24477
|
+
delete modelFormat.underline;
|
|
24478
|
+
delete modelFormat.fontWeight;
|
|
24380
24479
|
(0, iterateSelections_1.iterateSelections)(model, function (path, tableContext, block, segments) {
|
|
24381
24480
|
// Structure formats
|
|
24382
24481
|
retrieveStructureFormat(formatState, path, isFirst, conflictSolution);
|
|
@@ -24394,13 +24493,19 @@ function retrieveModelFormatState(model, pendingFormat, formatState, conflictSol
|
|
|
24394
24493
|
retrieveParagraphFormat(formatState, block, isFirst, conflictSolution);
|
|
24395
24494
|
// Segment formats
|
|
24396
24495
|
segments === null || segments === void 0 ? void 0 : segments.forEach(function (segment) {
|
|
24397
|
-
var _a, _b, _c;
|
|
24496
|
+
var _a, _b, _c, _d;
|
|
24398
24497
|
if (isFirstSegment || segment.segmentType != 'SelectionMarker') {
|
|
24399
|
-
var
|
|
24400
|
-
|
|
24401
|
-
|
|
24402
|
-
|
|
24403
|
-
|
|
24498
|
+
var currentFormat = Object.assign({}, 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);
|
|
24499
|
+
// Sometimes the content may not specify all required format but just leverage the container format to do so.
|
|
24500
|
+
// In this case, we need to merge the container format into the current format
|
|
24501
|
+
// to make sure the current format contains all required format.
|
|
24502
|
+
if (!hasAllRequiredFormat(currentFormat)) {
|
|
24503
|
+
if (!containerFormat) {
|
|
24504
|
+
containerFormat = (_d = domHelper === null || domHelper === void 0 ? void 0 : domHelper.getContainerFormat()) !== null && _d !== void 0 ? _d : modelFormat;
|
|
24505
|
+
}
|
|
24506
|
+
currentFormat = Object.assign({}, containerFormat, currentFormat);
|
|
24507
|
+
}
|
|
24508
|
+
retrieveSegmentFormat(formatState, isFirst, currentFormat, conflictSolution);
|
|
24404
24509
|
mergeValue(formatState, 'isCodeInline', !!(segment === null || segment === void 0 ? void 0 : segment.code), isFirst, conflictSolution);
|
|
24405
24510
|
}
|
|
24406
24511
|
// We only care the format of selection marker when it is the first selected segment. This is because when selection marker
|
|
@@ -24544,13 +24649,19 @@ function mergeValue(format, key, newValue, isFirst, conflictSolution, parseFn) {
|
|
|
24544
24649
|
}
|
|
24545
24650
|
}
|
|
24546
24651
|
function px2Pt(px) {
|
|
24547
|
-
if (px
|
|
24548
|
-
|
|
24549
|
-
|
|
24550
|
-
|
|
24652
|
+
if (px) {
|
|
24653
|
+
var index = px.indexOf('px');
|
|
24654
|
+
if (index !== -1 && index === px.length - 2) {
|
|
24655
|
+
// Edge may not handle the floating computing well which causes the calculated value to be a little less than the actual value
|
|
24656
|
+
// So add 0.05 to fix it
|
|
24657
|
+
return Math.round(parseFloat(px) * 75 + 0.05) / 100 + 'pt';
|
|
24658
|
+
}
|
|
24551
24659
|
}
|
|
24552
24660
|
return px;
|
|
24553
24661
|
}
|
|
24662
|
+
function hasAllRequiredFormat(format) {
|
|
24663
|
+
return !!format.fontFamily && !!format.fontSize && !!format.textColor;
|
|
24664
|
+
}
|
|
24554
24665
|
|
|
24555
24666
|
|
|
24556
24667
|
/***/ }),
|
|
@@ -26712,7 +26823,7 @@ var applyMetadata_1 = __webpack_require__(/*! ../utils/applyMetadata */ "./packa
|
|
|
26712
26823
|
* @internal
|
|
26713
26824
|
*/
|
|
26714
26825
|
var handleList = function (doc, parent, listItem, context, refNode) {
|
|
26715
|
-
var _a, _b;
|
|
26826
|
+
var _a, _b, _c;
|
|
26716
26827
|
var layer = 0;
|
|
26717
26828
|
var nodeStack = context.listFormat.nodeStack;
|
|
26718
26829
|
if (nodeStack.length == 0) {
|
|
@@ -26726,7 +26837,10 @@ var handleList = function (doc, parent, listItem, context, refNode) {
|
|
|
26726
26837
|
var itemLevel = listItem.levels[layer];
|
|
26727
26838
|
if (stackLevel.listType != itemLevel.listType ||
|
|
26728
26839
|
((_a = stackLevel.dataset) === null || _a === void 0 ? void 0 : _a.editingInfo) != itemLevel.dataset.editingInfo ||
|
|
26729
|
-
(itemLevel.listType == 'OL' &&
|
|
26840
|
+
(itemLevel.listType == 'OL' &&
|
|
26841
|
+
typeof itemLevel.format.startNumberOverride === 'number') ||
|
|
26842
|
+
(itemLevel.listType == 'UL' &&
|
|
26843
|
+
itemLevel.format.listStyleType != ((_b = stackLevel.format) === null || _b === void 0 ? void 0 : _b.listStyleType))) {
|
|
26730
26844
|
break;
|
|
26731
26845
|
}
|
|
26732
26846
|
}
|
|
@@ -26745,7 +26859,7 @@ var handleList = function (doc, parent, listItem, context, refNode) {
|
|
|
26745
26859
|
// Need to apply listItemElement formats after applying metadata since the list numbers value relies on the result of metadata handling
|
|
26746
26860
|
(0, applyFormat_1.applyFormat)(newList, context.formatAppliers.listLevel, level.format, context);
|
|
26747
26861
|
(0, applyFormat_1.applyFormat)(newList, context.formatAppliers.dataset, level.dataset, context);
|
|
26748
|
-
(
|
|
26862
|
+
(_c = context.onNodeCreated) === null || _c === void 0 ? void 0 : _c.call(context, level, newList);
|
|
26749
26863
|
}
|
|
26750
26864
|
return refNode;
|
|
26751
26865
|
};
|
|
@@ -27543,6 +27657,1245 @@ function contentModelToTextArray(group, textArray, callbacks) {
|
|
|
27543
27657
|
}
|
|
27544
27658
|
|
|
27545
27659
|
|
|
27660
|
+
/***/ }),
|
|
27661
|
+
|
|
27662
|
+
/***/ "./packages/roosterjs-content-model-markdown/lib/constants/headings.ts":
|
|
27663
|
+
/*!*****************************************************************************!*\
|
|
27664
|
+
!*** ./packages/roosterjs-content-model-markdown/lib/constants/headings.ts ***!
|
|
27665
|
+
\*****************************************************************************/
|
|
27666
|
+
/***/ ((__unused_webpack_module, exports) => {
|
|
27667
|
+
|
|
27668
|
+
"use strict";
|
|
27669
|
+
|
|
27670
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
27671
|
+
exports.MarkdownHeadings = exports.headingLevels = void 0;
|
|
27672
|
+
var HeaderFontSizes = {
|
|
27673
|
+
h1: '2em',
|
|
27674
|
+
h2: '1.5em',
|
|
27675
|
+
h3: '1.17em',
|
|
27676
|
+
h4: '1em',
|
|
27677
|
+
h5: '0.83em',
|
|
27678
|
+
h6: '0.67em',
|
|
27679
|
+
};
|
|
27680
|
+
/**
|
|
27681
|
+
* @internal
|
|
27682
|
+
*/
|
|
27683
|
+
exports.headingLevels = [
|
|
27684
|
+
{ prefix: '# ', tagName: 'h1', fontSize: HeaderFontSizes.h1 },
|
|
27685
|
+
{ prefix: '## ', tagName: 'h2', fontSize: HeaderFontSizes.h2 },
|
|
27686
|
+
{ prefix: '### ', tagName: 'h3', fontSize: HeaderFontSizes.h3 },
|
|
27687
|
+
{ prefix: '#### ', tagName: 'h4', fontSize: HeaderFontSizes.h4 },
|
|
27688
|
+
{ prefix: '##### ', tagName: 'h5', fontSize: HeaderFontSizes.h5 },
|
|
27689
|
+
{ prefix: '###### ', tagName: 'h6', fontSize: HeaderFontSizes.h6 },
|
|
27690
|
+
];
|
|
27691
|
+
/**
|
|
27692
|
+
* @internal
|
|
27693
|
+
*/
|
|
27694
|
+
exports.MarkdownHeadings = {
|
|
27695
|
+
h1: '# ',
|
|
27696
|
+
h2: '## ',
|
|
27697
|
+
h3: '### ',
|
|
27698
|
+
h4: '#### ',
|
|
27699
|
+
h5: '##### ',
|
|
27700
|
+
h6: '###### ',
|
|
27701
|
+
};
|
|
27702
|
+
|
|
27703
|
+
|
|
27704
|
+
/***/ }),
|
|
27705
|
+
|
|
27706
|
+
/***/ "./packages/roosterjs-content-model-markdown/lib/index.ts":
|
|
27707
|
+
/*!****************************************************************!*\
|
|
27708
|
+
!*** ./packages/roosterjs-content-model-markdown/lib/index.ts ***!
|
|
27709
|
+
\****************************************************************/
|
|
27710
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
27711
|
+
|
|
27712
|
+
"use strict";
|
|
27713
|
+
|
|
27714
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
27715
|
+
exports.convertContentModelToMarkdown = exports.convertMarkdownToContentModel = void 0;
|
|
27716
|
+
var convertMarkdownToContentModel_1 = __webpack_require__(/*! ./markdownToModel/convertMarkdownToContentModel */ "./packages/roosterjs-content-model-markdown/lib/markdownToModel/convertMarkdownToContentModel.ts");
|
|
27717
|
+
Object.defineProperty(exports, "convertMarkdownToContentModel", ({ enumerable: true, get: function () { return convertMarkdownToContentModel_1.convertMarkdownToContentModel; } }));
|
|
27718
|
+
var convertContentModelToMarkdown_1 = __webpack_require__(/*! ./modelToMarkdown/convertContentModelToMarkdown */ "./packages/roosterjs-content-model-markdown/lib/modelToMarkdown/convertContentModelToMarkdown.ts");
|
|
27719
|
+
Object.defineProperty(exports, "convertContentModelToMarkdown", ({ enumerable: true, get: function () { return convertContentModelToMarkdown_1.convertContentModelToMarkdown; } }));
|
|
27720
|
+
|
|
27721
|
+
|
|
27722
|
+
/***/ }),
|
|
27723
|
+
|
|
27724
|
+
/***/ "./packages/roosterjs-content-model-markdown/lib/markdownToModel/appliers/applyLink.ts":
|
|
27725
|
+
/*!*********************************************************************************************!*\
|
|
27726
|
+
!*** ./packages/roosterjs-content-model-markdown/lib/markdownToModel/appliers/applyLink.ts ***!
|
|
27727
|
+
\*********************************************************************************************/
|
|
27728
|
+
/***/ ((__unused_webpack_module, exports) => {
|
|
27729
|
+
|
|
27730
|
+
"use strict";
|
|
27731
|
+
|
|
27732
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
27733
|
+
exports.applyLink = void 0;
|
|
27734
|
+
/**
|
|
27735
|
+
* @internal
|
|
27736
|
+
*/
|
|
27737
|
+
function applyLink(textSegment, text, url) {
|
|
27738
|
+
textSegment.text = text;
|
|
27739
|
+
textSegment.link = {
|
|
27740
|
+
dataset: {},
|
|
27741
|
+
format: {
|
|
27742
|
+
href: url,
|
|
27743
|
+
underline: true,
|
|
27744
|
+
},
|
|
27745
|
+
};
|
|
27746
|
+
return textSegment;
|
|
27747
|
+
}
|
|
27748
|
+
exports.applyLink = applyLink;
|
|
27749
|
+
|
|
27750
|
+
|
|
27751
|
+
/***/ }),
|
|
27752
|
+
|
|
27753
|
+
/***/ "./packages/roosterjs-content-model-markdown/lib/markdownToModel/appliers/applySegmentFormatting.ts":
|
|
27754
|
+
/*!**********************************************************************************************************!*\
|
|
27755
|
+
!*** ./packages/roosterjs-content-model-markdown/lib/markdownToModel/appliers/applySegmentFormatting.ts ***!
|
|
27756
|
+
\**********************************************************************************************************/
|
|
27757
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
27758
|
+
|
|
27759
|
+
"use strict";
|
|
27760
|
+
|
|
27761
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
27762
|
+
exports.applySegmentFormatting = void 0;
|
|
27763
|
+
var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.mjs");
|
|
27764
|
+
var adjustHeading_1 = __webpack_require__(/*! ../utils/adjustHeading */ "./packages/roosterjs-content-model-markdown/lib/markdownToModel/utils/adjustHeading.ts");
|
|
27765
|
+
var applyLink_1 = __webpack_require__(/*! ./applyLink */ "./packages/roosterjs-content-model-markdown/lib/markdownToModel/appliers/applyLink.ts");
|
|
27766
|
+
var applyTextFormatting_1 = __webpack_require__(/*! ./applyTextFormatting */ "./packages/roosterjs-content-model-markdown/lib/markdownToModel/appliers/applyTextFormatting.ts");
|
|
27767
|
+
var roosterjs_content_model_dom_1 = __webpack_require__(/*! roosterjs-content-model-dom */ "./packages/roosterjs-content-model-dom/lib/index.ts");
|
|
27768
|
+
var createImageSegment_1 = __webpack_require__(/*! ../creators/createImageSegment */ "./packages/roosterjs-content-model-markdown/lib/markdownToModel/creators/createImageSegment.ts");
|
|
27769
|
+
var splitParagraphSegments_1 = __webpack_require__(/*! ../utils/splitParagraphSegments */ "./packages/roosterjs-content-model-markdown/lib/markdownToModel/utils/splitParagraphSegments.ts");
|
|
27770
|
+
/**
|
|
27771
|
+
* @internal
|
|
27772
|
+
*/
|
|
27773
|
+
function applySegmentFormatting(text, paragraph, decorator) {
|
|
27774
|
+
var e_1, _a, _b;
|
|
27775
|
+
if (text.length === 0) {
|
|
27776
|
+
var br = (0, roosterjs_content_model_dom_1.createBr)();
|
|
27777
|
+
paragraph.segments.push(br);
|
|
27778
|
+
}
|
|
27779
|
+
else {
|
|
27780
|
+
var textSegments = (0, splitParagraphSegments_1.splitParagraphSegments)(text);
|
|
27781
|
+
try {
|
|
27782
|
+
for (var textSegments_1 = (0, tslib_1.__values)(textSegments), textSegments_1_1 = textSegments_1.next(); !textSegments_1_1.done; textSegments_1_1 = textSegments_1.next()) {
|
|
27783
|
+
var segment = textSegments_1_1.value;
|
|
27784
|
+
var formattedSegment = (0, roosterjs_content_model_dom_1.createText)(segment.text);
|
|
27785
|
+
if (segment.type === 'image') {
|
|
27786
|
+
var image = (0, createImageSegment_1.createImageSegment)(segment.text, segment.url);
|
|
27787
|
+
paragraph.segments.push(image);
|
|
27788
|
+
}
|
|
27789
|
+
else {
|
|
27790
|
+
if (segment.type === 'link') {
|
|
27791
|
+
(0, applyLink_1.applyLink)(formattedSegment, segment.text, segment.url);
|
|
27792
|
+
}
|
|
27793
|
+
(0, adjustHeading_1.adjustHeading)(formattedSegment, decorator);
|
|
27794
|
+
var formattedSegments = (0, applyTextFormatting_1.applyTextFormatting)(formattedSegment);
|
|
27795
|
+
(_b = paragraph.segments).push.apply(_b, (0, tslib_1.__spreadArray)([], (0, tslib_1.__read)(formattedSegments), false));
|
|
27796
|
+
}
|
|
27797
|
+
}
|
|
27798
|
+
}
|
|
27799
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
27800
|
+
finally {
|
|
27801
|
+
try {
|
|
27802
|
+
if (textSegments_1_1 && !textSegments_1_1.done && (_a = textSegments_1.return)) _a.call(textSegments_1);
|
|
27803
|
+
}
|
|
27804
|
+
finally { if (e_1) throw e_1.error; }
|
|
27805
|
+
}
|
|
27806
|
+
}
|
|
27807
|
+
return paragraph;
|
|
27808
|
+
}
|
|
27809
|
+
exports.applySegmentFormatting = applySegmentFormatting;
|
|
27810
|
+
|
|
27811
|
+
|
|
27812
|
+
/***/ }),
|
|
27813
|
+
|
|
27814
|
+
/***/ "./packages/roosterjs-content-model-markdown/lib/markdownToModel/appliers/applyTextFormatting.ts":
|
|
27815
|
+
/*!*******************************************************************************************************!*\
|
|
27816
|
+
!*** ./packages/roosterjs-content-model-markdown/lib/markdownToModel/appliers/applyTextFormatting.ts ***!
|
|
27817
|
+
\*******************************************************************************************************/
|
|
27818
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
27819
|
+
|
|
27820
|
+
"use strict";
|
|
27821
|
+
|
|
27822
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
27823
|
+
exports.applyTextFormatting = void 0;
|
|
27824
|
+
var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.mjs");
|
|
27825
|
+
var roosterjs_content_model_dom_1 = __webpack_require__(/*! roosterjs-content-model-dom */ "./packages/roosterjs-content-model-dom/lib/index.ts");
|
|
27826
|
+
var SPLIT_PATTERN = /(\*\*\*.*?\*\*\*|\*\*.*?\*\*|\*.*?\*)/;
|
|
27827
|
+
/**
|
|
27828
|
+
* @internal
|
|
27829
|
+
*/
|
|
27830
|
+
function applyTextFormatting(textSegment) {
|
|
27831
|
+
var e_1, _a;
|
|
27832
|
+
var texts = splitSegments(textSegment.text);
|
|
27833
|
+
var textSegments = [];
|
|
27834
|
+
try {
|
|
27835
|
+
for (var texts_1 = (0, tslib_1.__values)(texts), texts_1_1 = texts_1.next(); !texts_1_1.done; texts_1_1 = texts_1.next()) {
|
|
27836
|
+
var text = texts_1_1.value;
|
|
27837
|
+
textSegments.push(createFormattedSegment(text, textSegment.format, textSegment.link));
|
|
27838
|
+
}
|
|
27839
|
+
}
|
|
27840
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
27841
|
+
finally {
|
|
27842
|
+
try {
|
|
27843
|
+
if (texts_1_1 && !texts_1_1.done && (_a = texts_1.return)) _a.call(texts_1);
|
|
27844
|
+
}
|
|
27845
|
+
finally { if (e_1) throw e_1.error; }
|
|
27846
|
+
}
|
|
27847
|
+
return textSegments;
|
|
27848
|
+
}
|
|
27849
|
+
exports.applyTextFormatting = applyTextFormatting;
|
|
27850
|
+
function splitSegments(text) {
|
|
27851
|
+
return text.split(SPLIT_PATTERN).filter(function (s) { return s.trim().length > 0; });
|
|
27852
|
+
}
|
|
27853
|
+
function createFormattedSegment(text, format, link) {
|
|
27854
|
+
if (text.startsWith('***') && text.endsWith('***')) {
|
|
27855
|
+
format = (0, tslib_1.__assign)((0, tslib_1.__assign)({}, format), { fontWeight: 'bold', italic: true });
|
|
27856
|
+
text = text.replace(/\*\*\*/g, '');
|
|
27857
|
+
text = text + ' ';
|
|
27858
|
+
}
|
|
27859
|
+
else if (text.startsWith('**') && text.endsWith('**')) {
|
|
27860
|
+
format = (0, tslib_1.__assign)((0, tslib_1.__assign)({}, format), { fontWeight: 'bold' });
|
|
27861
|
+
text = text.replace(/\*\*/g, '');
|
|
27862
|
+
text = text + ' ';
|
|
27863
|
+
}
|
|
27864
|
+
else if (text.startsWith('*') && text.endsWith('*')) {
|
|
27865
|
+
format = (0, tslib_1.__assign)((0, tslib_1.__assign)({}, format), { italic: true });
|
|
27866
|
+
text = text.replace(/\*/g, '');
|
|
27867
|
+
text = text + ' ';
|
|
27868
|
+
}
|
|
27869
|
+
return (0, roosterjs_content_model_dom_1.createText)(text, format, link);
|
|
27870
|
+
}
|
|
27871
|
+
|
|
27872
|
+
|
|
27873
|
+
/***/ }),
|
|
27874
|
+
|
|
27875
|
+
/***/ "./packages/roosterjs-content-model-markdown/lib/markdownToModel/convertMarkdownToContentModel.ts":
|
|
27876
|
+
/*!********************************************************************************************************!*\
|
|
27877
|
+
!*** ./packages/roosterjs-content-model-markdown/lib/markdownToModel/convertMarkdownToContentModel.ts ***!
|
|
27878
|
+
\********************************************************************************************************/
|
|
27879
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
27880
|
+
|
|
27881
|
+
"use strict";
|
|
27882
|
+
|
|
27883
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
27884
|
+
exports.convertMarkdownToContentModel = void 0;
|
|
27885
|
+
var markdownProcessor_1 = __webpack_require__(/*! ./processor/markdownProcessor */ "./packages/roosterjs-content-model-markdown/lib/markdownToModel/processor/markdownProcessor.ts");
|
|
27886
|
+
/**
|
|
27887
|
+
* Convert the whole content to ContentModel with the given plain text
|
|
27888
|
+
* @param editor The editor instance
|
|
27889
|
+
* @param text The markdown text
|
|
27890
|
+
* @param splitLinesPattern The pattern to split lines. Default is /\r\n|\r|\\n|\n/
|
|
27891
|
+
* @returns The ContentModelDocument
|
|
27892
|
+
*/
|
|
27893
|
+
function convertMarkdownToContentModel(text, splitLinesPattern) {
|
|
27894
|
+
var pattern = splitLinesPattern || /\r\n|\r|\\n|\n/;
|
|
27895
|
+
return (0, markdownProcessor_1.markdownProcessor)(text, pattern);
|
|
27896
|
+
}
|
|
27897
|
+
exports.convertMarkdownToContentModel = convertMarkdownToContentModel;
|
|
27898
|
+
|
|
27899
|
+
|
|
27900
|
+
/***/ }),
|
|
27901
|
+
|
|
27902
|
+
/***/ "./packages/roosterjs-content-model-markdown/lib/markdownToModel/creators/createBlockGroupFromMarkdown.ts":
|
|
27903
|
+
/*!****************************************************************************************************************!*\
|
|
27904
|
+
!*** ./packages/roosterjs-content-model-markdown/lib/markdownToModel/creators/createBlockGroupFromMarkdown.ts ***!
|
|
27905
|
+
\****************************************************************************************************************/
|
|
27906
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
27907
|
+
|
|
27908
|
+
"use strict";
|
|
27909
|
+
|
|
27910
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
27911
|
+
exports.createBlockGroupFromMarkdown = void 0;
|
|
27912
|
+
var createBlockQuoteFromMarkdown_1 = __webpack_require__(/*! ./createBlockQuoteFromMarkdown */ "./packages/roosterjs-content-model-markdown/lib/markdownToModel/creators/createBlockQuoteFromMarkdown.ts");
|
|
27913
|
+
var createListFromMarkdown_1 = __webpack_require__(/*! ./createListFromMarkdown */ "./packages/roosterjs-content-model-markdown/lib/markdownToModel/creators/createListFromMarkdown.ts");
|
|
27914
|
+
var MarkdownBlockGroupType = {
|
|
27915
|
+
unordered_list: 'ListItem',
|
|
27916
|
+
ordered_list: 'ListItem',
|
|
27917
|
+
blockquote: 'FormatContainer',
|
|
27918
|
+
};
|
|
27919
|
+
/**
|
|
27920
|
+
* @internal
|
|
27921
|
+
*/
|
|
27922
|
+
function createBlockGroupFromMarkdown(text, patternName, group) {
|
|
27923
|
+
if (MarkdownBlockGroupType[patternName] === 'ListItem') {
|
|
27924
|
+
return (0, createListFromMarkdown_1.createListFromMarkdown)(text, patternName === 'ordered_list' ? 'OL' : 'UL');
|
|
27925
|
+
}
|
|
27926
|
+
else {
|
|
27927
|
+
return (0, createBlockQuoteFromMarkdown_1.createBlockQuoteFromMarkdown)(text, group);
|
|
27928
|
+
}
|
|
27929
|
+
}
|
|
27930
|
+
exports.createBlockGroupFromMarkdown = createBlockGroupFromMarkdown;
|
|
27931
|
+
|
|
27932
|
+
|
|
27933
|
+
/***/ }),
|
|
27934
|
+
|
|
27935
|
+
/***/ "./packages/roosterjs-content-model-markdown/lib/markdownToModel/creators/createBlockQuoteFromMarkdown.ts":
|
|
27936
|
+
/*!****************************************************************************************************************!*\
|
|
27937
|
+
!*** ./packages/roosterjs-content-model-markdown/lib/markdownToModel/creators/createBlockQuoteFromMarkdown.ts ***!
|
|
27938
|
+
\****************************************************************************************************************/
|
|
27939
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
27940
|
+
|
|
27941
|
+
"use strict";
|
|
27942
|
+
|
|
27943
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
27944
|
+
exports.createBlockQuoteFromMarkdown = void 0;
|
|
27945
|
+
var roosterjs_content_model_dom_1 = __webpack_require__(/*! roosterjs-content-model-dom */ "./packages/roosterjs-content-model-dom/lib/index.ts");
|
|
27946
|
+
var createParagraphFromMarkdown_1 = __webpack_require__(/*! ./createParagraphFromMarkdown */ "./packages/roosterjs-content-model-markdown/lib/markdownToModel/creators/createParagraphFromMarkdown.ts");
|
|
27947
|
+
var QuoteFormat = {
|
|
27948
|
+
borderLeft: '3px solid rgb(200, 200, 200)',
|
|
27949
|
+
textColor: 'rgb(102, 102, 102)',
|
|
27950
|
+
marginTop: '1em',
|
|
27951
|
+
marginBottom: '1em',
|
|
27952
|
+
marginLeft: '40px',
|
|
27953
|
+
marginRight: '40px',
|
|
27954
|
+
paddingLeft: '10px',
|
|
27955
|
+
};
|
|
27956
|
+
/**
|
|
27957
|
+
* @internal
|
|
27958
|
+
*/
|
|
27959
|
+
function createBlockQuoteFromMarkdown(text, blockquote) {
|
|
27960
|
+
text = text.replace('>', '');
|
|
27961
|
+
var paragraph = (0, createParagraphFromMarkdown_1.createParagraphFromMarkdown)(text);
|
|
27962
|
+
var quote = blockquote || (0, roosterjs_content_model_dom_1.createFormatContainer)('blockquote', QuoteFormat);
|
|
27963
|
+
quote.blocks.push(paragraph);
|
|
27964
|
+
return quote;
|
|
27965
|
+
}
|
|
27966
|
+
exports.createBlockQuoteFromMarkdown = createBlockQuoteFromMarkdown;
|
|
27967
|
+
|
|
27968
|
+
|
|
27969
|
+
/***/ }),
|
|
27970
|
+
|
|
27971
|
+
/***/ "./packages/roosterjs-content-model-markdown/lib/markdownToModel/creators/createImageSegment.ts":
|
|
27972
|
+
/*!******************************************************************************************************!*\
|
|
27973
|
+
!*** ./packages/roosterjs-content-model-markdown/lib/markdownToModel/creators/createImageSegment.ts ***!
|
|
27974
|
+
\******************************************************************************************************/
|
|
27975
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
27976
|
+
|
|
27977
|
+
"use strict";
|
|
27978
|
+
|
|
27979
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
27980
|
+
exports.createImageSegment = void 0;
|
|
27981
|
+
var roosterjs_content_model_dom_1 = __webpack_require__(/*! roosterjs-content-model-dom */ "./packages/roosterjs-content-model-dom/lib/index.ts");
|
|
27982
|
+
/**
|
|
27983
|
+
* @internal
|
|
27984
|
+
*/
|
|
27985
|
+
function createImageSegment(text, url) {
|
|
27986
|
+
var image = (0, roosterjs_content_model_dom_1.createImage)(url);
|
|
27987
|
+
image.alt = text;
|
|
27988
|
+
return image;
|
|
27989
|
+
}
|
|
27990
|
+
exports.createImageSegment = createImageSegment;
|
|
27991
|
+
|
|
27992
|
+
|
|
27993
|
+
/***/ }),
|
|
27994
|
+
|
|
27995
|
+
/***/ "./packages/roosterjs-content-model-markdown/lib/markdownToModel/creators/createListFromMarkdown.ts":
|
|
27996
|
+
/*!**********************************************************************************************************!*\
|
|
27997
|
+
!*** ./packages/roosterjs-content-model-markdown/lib/markdownToModel/creators/createListFromMarkdown.ts ***!
|
|
27998
|
+
\**********************************************************************************************************/
|
|
27999
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
28000
|
+
|
|
28001
|
+
"use strict";
|
|
28002
|
+
|
|
28003
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
28004
|
+
exports.createListFromMarkdown = void 0;
|
|
28005
|
+
var roosterjs_content_model_dom_1 = __webpack_require__(/*! roosterjs-content-model-dom */ "./packages/roosterjs-content-model-dom/lib/index.ts");
|
|
28006
|
+
var createParagraphFromMarkdown_1 = __webpack_require__(/*! ./createParagraphFromMarkdown */ "./packages/roosterjs-content-model-markdown/lib/markdownToModel/creators/createParagraphFromMarkdown.ts");
|
|
28007
|
+
/**
|
|
28008
|
+
* @internal
|
|
28009
|
+
*/
|
|
28010
|
+
function createListFromMarkdown(text, listType) {
|
|
28011
|
+
var marker = text.trim().split(' ')[0];
|
|
28012
|
+
var isDummy = isDummyListItem(marker);
|
|
28013
|
+
var itemText = isDummy ? text : text.trim().substring(marker.length);
|
|
28014
|
+
var paragraph = (0, createParagraphFromMarkdown_1.createParagraphFromMarkdown)(itemText.trim());
|
|
28015
|
+
var levels = createLevels(text, listType, isDummy);
|
|
28016
|
+
var listModel = (0, roosterjs_content_model_dom_1.createListItem)(levels);
|
|
28017
|
+
listModel.blocks.push(paragraph);
|
|
28018
|
+
return listModel;
|
|
28019
|
+
}
|
|
28020
|
+
exports.createListFromMarkdown = createListFromMarkdown;
|
|
28021
|
+
function createLevels(text, listType, isDummy) {
|
|
28022
|
+
var level = (0, roosterjs_content_model_dom_1.createListLevel)(listType);
|
|
28023
|
+
if (isDummy) {
|
|
28024
|
+
level.format.displayForDummyItem = 'block';
|
|
28025
|
+
}
|
|
28026
|
+
var levels = [level];
|
|
28027
|
+
if (isSubListItem(text)) {
|
|
28028
|
+
levels.push(level);
|
|
28029
|
+
}
|
|
28030
|
+
return levels;
|
|
28031
|
+
}
|
|
28032
|
+
function isSubListItem(item) {
|
|
28033
|
+
return item.startsWith(' ');
|
|
28034
|
+
}
|
|
28035
|
+
var isDummyListItem = function (item) {
|
|
28036
|
+
return item != '-' && item != '+' && item != '*' && !item.endsWith('.');
|
|
28037
|
+
};
|
|
28038
|
+
|
|
28039
|
+
|
|
28040
|
+
/***/ }),
|
|
28041
|
+
|
|
28042
|
+
/***/ "./packages/roosterjs-content-model-markdown/lib/markdownToModel/creators/createParagraphFromMarkdown.ts":
|
|
28043
|
+
/*!***************************************************************************************************************!*\
|
|
28044
|
+
!*** ./packages/roosterjs-content-model-markdown/lib/markdownToModel/creators/createParagraphFromMarkdown.ts ***!
|
|
28045
|
+
\***************************************************************************************************************/
|
|
28046
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
28047
|
+
|
|
28048
|
+
"use strict";
|
|
28049
|
+
|
|
28050
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
28051
|
+
exports.createParagraphFromMarkdown = void 0;
|
|
28052
|
+
var applySegmentFormatting_1 = __webpack_require__(/*! ../appliers/applySegmentFormatting */ "./packages/roosterjs-content-model-markdown/lib/markdownToModel/appliers/applySegmentFormatting.ts");
|
|
28053
|
+
var roosterjs_content_model_dom_1 = __webpack_require__(/*! roosterjs-content-model-dom */ "./packages/roosterjs-content-model-dom/lib/index.ts");
|
|
28054
|
+
var getHeadingDecorator_1 = __webpack_require__(/*! ../utils/getHeadingDecorator */ "./packages/roosterjs-content-model-markdown/lib/markdownToModel/utils/getHeadingDecorator.ts");
|
|
28055
|
+
/**
|
|
28056
|
+
* @internal
|
|
28057
|
+
*/
|
|
28058
|
+
function createParagraphFromMarkdown(text) {
|
|
28059
|
+
var paragraph = (0, roosterjs_content_model_dom_1.createParagraph)();
|
|
28060
|
+
var headingType = (0, getHeadingDecorator_1.getHeadingDecorator)(text);
|
|
28061
|
+
if (headingType) {
|
|
28062
|
+
paragraph.decorator = headingType;
|
|
28063
|
+
}
|
|
28064
|
+
(0, applySegmentFormatting_1.applySegmentFormatting)(text, paragraph, headingType);
|
|
28065
|
+
return paragraph;
|
|
28066
|
+
}
|
|
28067
|
+
exports.createParagraphFromMarkdown = createParagraphFromMarkdown;
|
|
28068
|
+
|
|
28069
|
+
|
|
28070
|
+
/***/ }),
|
|
28071
|
+
|
|
28072
|
+
/***/ "./packages/roosterjs-content-model-markdown/lib/markdownToModel/creators/createTableFromMarkdown.ts":
|
|
28073
|
+
/*!***********************************************************************************************************!*\
|
|
28074
|
+
!*** ./packages/roosterjs-content-model-markdown/lib/markdownToModel/creators/createTableFromMarkdown.ts ***!
|
|
28075
|
+
\***********************************************************************************************************/
|
|
28076
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
28077
|
+
|
|
28078
|
+
"use strict";
|
|
28079
|
+
|
|
28080
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
28081
|
+
exports.createTableFromMarkdown = void 0;
|
|
28082
|
+
var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.mjs");
|
|
28083
|
+
var createParagraphFromMarkdown_1 = __webpack_require__(/*! ./createParagraphFromMarkdown */ "./packages/roosterjs-content-model-markdown/lib/markdownToModel/creators/createParagraphFromMarkdown.ts");
|
|
28084
|
+
var roosterjs_content_model_dom_1 = __webpack_require__(/*! roosterjs-content-model-dom */ "./packages/roosterjs-content-model-dom/lib/index.ts");
|
|
28085
|
+
/**
|
|
28086
|
+
* @internal
|
|
28087
|
+
*/
|
|
28088
|
+
function createTableFromMarkdown(tableLines) {
|
|
28089
|
+
var e_1, _a;
|
|
28090
|
+
var tableDivider = tableLines[1].split('|').filter(function (content) { return content.trim() !== ''; });
|
|
28091
|
+
tableLines.splice(1, 1);
|
|
28092
|
+
var table = (0, roosterjs_content_model_dom_1.createTable)(0, { borderCollapse: true });
|
|
28093
|
+
try {
|
|
28094
|
+
for (var tableLines_1 = (0, tslib_1.__values)(tableLines), tableLines_1_1 = tableLines_1.next(); !tableLines_1_1.done; tableLines_1_1 = tableLines_1.next()) {
|
|
28095
|
+
var line = tableLines_1_1.value;
|
|
28096
|
+
createTableModel(line, table, tableDivider);
|
|
28097
|
+
}
|
|
28098
|
+
}
|
|
28099
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
28100
|
+
finally {
|
|
28101
|
+
try {
|
|
28102
|
+
if (tableLines_1_1 && !tableLines_1_1.done && (_a = tableLines_1.return)) _a.call(tableLines_1);
|
|
28103
|
+
}
|
|
28104
|
+
finally { if (e_1) throw e_1.error; }
|
|
28105
|
+
}
|
|
28106
|
+
(0, roosterjs_content_model_dom_1.applyTableFormat)(table, {
|
|
28107
|
+
hasHeaderRow: true,
|
|
28108
|
+
});
|
|
28109
|
+
return table;
|
|
28110
|
+
}
|
|
28111
|
+
exports.createTableFromMarkdown = createTableFromMarkdown;
|
|
28112
|
+
function createTableModel(markdown, table, tableDivider) {
|
|
28113
|
+
var contents = markdown.split('|');
|
|
28114
|
+
if (contents[0].trim() === '') {
|
|
28115
|
+
contents.shift();
|
|
28116
|
+
}
|
|
28117
|
+
if (contents[contents.length - 1].trim() === '') {
|
|
28118
|
+
contents.pop();
|
|
28119
|
+
}
|
|
28120
|
+
addTableRow(table, contents, tableDivider);
|
|
28121
|
+
}
|
|
28122
|
+
function addTableRow(table, contents, tableDivider) {
|
|
28123
|
+
var e_2, _a;
|
|
28124
|
+
var row = (0, roosterjs_content_model_dom_1.createTableRow)();
|
|
28125
|
+
var index = 0;
|
|
28126
|
+
try {
|
|
28127
|
+
for (var contents_1 = (0, tslib_1.__values)(contents), contents_1_1 = contents_1.next(); !contents_1_1.done; contents_1_1 = contents_1.next()) {
|
|
28128
|
+
var content = contents_1_1.value;
|
|
28129
|
+
var paragraph = (0, createParagraphFromMarkdown_1.createParagraphFromMarkdown)(content);
|
|
28130
|
+
var cell = (0, roosterjs_content_model_dom_1.createTableCell)();
|
|
28131
|
+
cell.blocks.push(paragraph);
|
|
28132
|
+
if (tableDivider[index]) {
|
|
28133
|
+
cell.format.textAlign = getCellAlignment(tableDivider[index]);
|
|
28134
|
+
}
|
|
28135
|
+
row.cells.push(cell);
|
|
28136
|
+
index++;
|
|
28137
|
+
}
|
|
28138
|
+
}
|
|
28139
|
+
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
28140
|
+
finally {
|
|
28141
|
+
try {
|
|
28142
|
+
if (contents_1_1 && !contents_1_1.done && (_a = contents_1.return)) _a.call(contents_1);
|
|
28143
|
+
}
|
|
28144
|
+
finally { if (e_2) throw e_2.error; }
|
|
28145
|
+
}
|
|
28146
|
+
table.rows.push(row);
|
|
28147
|
+
}
|
|
28148
|
+
function getCellAlignment(content) {
|
|
28149
|
+
if (content.startsWith(':') && content.endsWith(':')) {
|
|
28150
|
+
return 'center';
|
|
28151
|
+
}
|
|
28152
|
+
if (content.endsWith(':')) {
|
|
28153
|
+
return 'end';
|
|
28154
|
+
}
|
|
28155
|
+
return 'start';
|
|
28156
|
+
}
|
|
28157
|
+
|
|
28158
|
+
|
|
28159
|
+
/***/ }),
|
|
28160
|
+
|
|
28161
|
+
/***/ "./packages/roosterjs-content-model-markdown/lib/markdownToModel/processor/markdownProcessor.ts":
|
|
28162
|
+
/*!******************************************************************************************************!*\
|
|
28163
|
+
!*** ./packages/roosterjs-content-model-markdown/lib/markdownToModel/processor/markdownProcessor.ts ***!
|
|
28164
|
+
\******************************************************************************************************/
|
|
28165
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
28166
|
+
|
|
28167
|
+
"use strict";
|
|
28168
|
+
|
|
28169
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
28170
|
+
exports.markdownProcessor = void 0;
|
|
28171
|
+
var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.mjs");
|
|
28172
|
+
var createBlockGroupFromMarkdown_1 = __webpack_require__(/*! ../creators/createBlockGroupFromMarkdown */ "./packages/roosterjs-content-model-markdown/lib/markdownToModel/creators/createBlockGroupFromMarkdown.ts");
|
|
28173
|
+
var roosterjs_content_model_dom_1 = __webpack_require__(/*! roosterjs-content-model-dom */ "./packages/roosterjs-content-model-dom/lib/index.ts");
|
|
28174
|
+
var createParagraphFromMarkdown_1 = __webpack_require__(/*! ../creators/createParagraphFromMarkdown */ "./packages/roosterjs-content-model-markdown/lib/markdownToModel/creators/createParagraphFromMarkdown.ts");
|
|
28175
|
+
var createTableFromMarkdown_1 = __webpack_require__(/*! ../creators/createTableFromMarkdown */ "./packages/roosterjs-content-model-markdown/lib/markdownToModel/creators/createTableFromMarkdown.ts");
|
|
28176
|
+
var isMarkdownTable_1 = __webpack_require__(/*! ../utils/isMarkdownTable */ "./packages/roosterjs-content-model-markdown/lib/markdownToModel/utils/isMarkdownTable.ts");
|
|
28177
|
+
var MarkdownPattern = {
|
|
28178
|
+
heading: /^#{1,6} .*/,
|
|
28179
|
+
horizontal_line: /^---$/,
|
|
28180
|
+
table: /^\|.*\|\s*$/,
|
|
28181
|
+
blockquote: /^>\s.*$/,
|
|
28182
|
+
unordered_list: /^\s*[\*\-\+] .*/,
|
|
28183
|
+
ordered_list: /^\s*\d+\. .*/,
|
|
28184
|
+
space: /^\s*$/,
|
|
28185
|
+
paragraph: /^[^#\-\*\d\|].*/,
|
|
28186
|
+
};
|
|
28187
|
+
var MarkdownBlockType = {
|
|
28188
|
+
heading: 'Paragraph',
|
|
28189
|
+
horizontal_line: 'Divider',
|
|
28190
|
+
paragraph: 'Paragraph',
|
|
28191
|
+
unordered_list: 'BlockGroup',
|
|
28192
|
+
ordered_list: 'BlockGroup',
|
|
28193
|
+
table: 'Table',
|
|
28194
|
+
blockquote: 'BlockGroup',
|
|
28195
|
+
space: 'Paragraph',
|
|
28196
|
+
};
|
|
28197
|
+
/**
|
|
28198
|
+
* @internal
|
|
28199
|
+
* Process markdown text and convert it to ContentModelDocument
|
|
28200
|
+
* @param text The markdown text
|
|
28201
|
+
* @param splitLinesPattern The pattern to split lines. Default is /\r\n|\r|\\n|\n/
|
|
28202
|
+
* @returns The ContentModelDocument
|
|
28203
|
+
*/
|
|
28204
|
+
function markdownProcessor(text, splitLinesPattern) {
|
|
28205
|
+
var markdownText = text.split(splitLinesPattern);
|
|
28206
|
+
markdownText.push(''); // Add an empty line to make sure the last block is processed
|
|
28207
|
+
var doc = (0, roosterjs_content_model_dom_1.createContentModelDocument)();
|
|
28208
|
+
return convertMarkdownText(doc, markdownText);
|
|
28209
|
+
}
|
|
28210
|
+
exports.markdownProcessor = markdownProcessor;
|
|
28211
|
+
function addMarkdownBlockToModel(model, blockType, markdown, patternName, markdownContext) {
|
|
28212
|
+
var e_1, _a;
|
|
28213
|
+
if (blockType !== 'Table' &&
|
|
28214
|
+
markdownContext.tableLines &&
|
|
28215
|
+
markdownContext.tableLines.length > 0) {
|
|
28216
|
+
if (markdownContext.tableLines.length > 2 &&
|
|
28217
|
+
markdownContext.tableLines[1].trim().length > 0 &&
|
|
28218
|
+
(0, isMarkdownTable_1.isMarkdownTable)(markdownContext.tableLines[1]) &&
|
|
28219
|
+
markdownContext.tableLines.length > 1) {
|
|
28220
|
+
var tableModel = (0, createTableFromMarkdown_1.createTableFromMarkdown)(markdownContext.tableLines);
|
|
28221
|
+
model.blocks.push(tableModel);
|
|
28222
|
+
}
|
|
28223
|
+
else {
|
|
28224
|
+
try {
|
|
28225
|
+
for (var _b = (0, tslib_1.__values)(markdownContext.tableLines), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
28226
|
+
var line = _c.value;
|
|
28227
|
+
var paragraph = (0, createParagraphFromMarkdown_1.createParagraphFromMarkdown)(line);
|
|
28228
|
+
model.blocks.push(paragraph);
|
|
28229
|
+
}
|
|
28230
|
+
}
|
|
28231
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
28232
|
+
finally {
|
|
28233
|
+
try {
|
|
28234
|
+
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
28235
|
+
}
|
|
28236
|
+
finally { if (e_1) throw e_1.error; }
|
|
28237
|
+
}
|
|
28238
|
+
}
|
|
28239
|
+
markdownContext.tableLines.length = 0;
|
|
28240
|
+
}
|
|
28241
|
+
if (patternName == 'space') {
|
|
28242
|
+
markdownContext.tableLines = [];
|
|
28243
|
+
markdownContext.lastQuote = undefined;
|
|
28244
|
+
markdownContext.lastList = undefined;
|
|
28245
|
+
return;
|
|
28246
|
+
}
|
|
28247
|
+
if (blockType == 'Paragraph' && (markdownContext.lastList || markdownContext.lastQuote)) {
|
|
28248
|
+
blockType = 'BlockGroup';
|
|
28249
|
+
patternName = markdownContext.lastList
|
|
28250
|
+
? markdownContext.lastList.levels[0].listType == 'OL'
|
|
28251
|
+
? 'ordered_list'
|
|
28252
|
+
: 'unordered_list'
|
|
28253
|
+
: 'blockquote';
|
|
28254
|
+
}
|
|
28255
|
+
switch (blockType) {
|
|
28256
|
+
case 'Paragraph':
|
|
28257
|
+
var paragraph = (0, createParagraphFromMarkdown_1.createParagraphFromMarkdown)(markdown);
|
|
28258
|
+
model.blocks.push(paragraph);
|
|
28259
|
+
break;
|
|
28260
|
+
case 'Divider':
|
|
28261
|
+
var divider = (0, roosterjs_content_model_dom_1.createDivider)('hr');
|
|
28262
|
+
model.blocks.push(divider);
|
|
28263
|
+
break;
|
|
28264
|
+
case 'BlockGroup':
|
|
28265
|
+
var blockGroup = (0, createBlockGroupFromMarkdown_1.createBlockGroupFromMarkdown)(markdown, patternName, markdownContext.lastQuote);
|
|
28266
|
+
if (!markdownContext.lastQuote) {
|
|
28267
|
+
model.blocks.push(blockGroup);
|
|
28268
|
+
}
|
|
28269
|
+
markdownContext.lastQuote =
|
|
28270
|
+
blockGroup.blockGroupType == 'FormatContainer' ? blockGroup : undefined;
|
|
28271
|
+
markdownContext.lastList =
|
|
28272
|
+
blockGroup.blockGroupType == 'ListItem' ? blockGroup : undefined;
|
|
28273
|
+
break;
|
|
28274
|
+
case 'Table':
|
|
28275
|
+
markdownContext.tableLines = markdownContext.tableLines || [];
|
|
28276
|
+
markdownContext.tableLines.push(markdown);
|
|
28277
|
+
break;
|
|
28278
|
+
}
|
|
28279
|
+
if (blockType !== 'BlockGroup') {
|
|
28280
|
+
markdownContext.lastQuote = undefined;
|
|
28281
|
+
markdownContext.lastList = undefined;
|
|
28282
|
+
}
|
|
28283
|
+
}
|
|
28284
|
+
function convertMarkdownText(model, lines) {
|
|
28285
|
+
var e_2, _a;
|
|
28286
|
+
var markdownContext = {
|
|
28287
|
+
lastQuote: undefined,
|
|
28288
|
+
lastList: undefined,
|
|
28289
|
+
tableLines: [],
|
|
28290
|
+
};
|
|
28291
|
+
try {
|
|
28292
|
+
for (var lines_1 = (0, tslib_1.__values)(lines), lines_1_1 = lines_1.next(); !lines_1_1.done; lines_1_1 = lines_1.next()) {
|
|
28293
|
+
var line = lines_1_1.value;
|
|
28294
|
+
var matched = false;
|
|
28295
|
+
for (var patternName in MarkdownPattern) {
|
|
28296
|
+
if (MarkdownPattern.hasOwnProperty(patternName)) {
|
|
28297
|
+
var pattern = MarkdownPattern[patternName];
|
|
28298
|
+
if (pattern.test(line)) {
|
|
28299
|
+
addMarkdownBlockToModel(model, MarkdownBlockType[patternName], line, patternName, markdownContext);
|
|
28300
|
+
matched = true;
|
|
28301
|
+
break;
|
|
28302
|
+
}
|
|
28303
|
+
}
|
|
28304
|
+
}
|
|
28305
|
+
if (!matched) {
|
|
28306
|
+
addMarkdownBlockToModel(model, 'Paragraph', line, 'paragraph', markdownContext);
|
|
28307
|
+
}
|
|
28308
|
+
}
|
|
28309
|
+
}
|
|
28310
|
+
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
28311
|
+
finally {
|
|
28312
|
+
try {
|
|
28313
|
+
if (lines_1_1 && !lines_1_1.done && (_a = lines_1.return)) _a.call(lines_1);
|
|
28314
|
+
}
|
|
28315
|
+
finally { if (e_2) throw e_2.error; }
|
|
28316
|
+
}
|
|
28317
|
+
return model;
|
|
28318
|
+
}
|
|
28319
|
+
|
|
28320
|
+
|
|
28321
|
+
/***/ }),
|
|
28322
|
+
|
|
28323
|
+
/***/ "./packages/roosterjs-content-model-markdown/lib/markdownToModel/utils/adjustHeading.ts":
|
|
28324
|
+
/*!**********************************************************************************************!*\
|
|
28325
|
+
!*** ./packages/roosterjs-content-model-markdown/lib/markdownToModel/utils/adjustHeading.ts ***!
|
|
28326
|
+
\**********************************************************************************************/
|
|
28327
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
28328
|
+
|
|
28329
|
+
"use strict";
|
|
28330
|
+
|
|
28331
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
28332
|
+
exports.adjustHeading = void 0;
|
|
28333
|
+
var headings_1 = __webpack_require__(/*! ../../constants/headings */ "./packages/roosterjs-content-model-markdown/lib/constants/headings.ts");
|
|
28334
|
+
/**
|
|
28335
|
+
* @internal
|
|
28336
|
+
*/
|
|
28337
|
+
function adjustHeading(textSegment, decorator) {
|
|
28338
|
+
var markdownToBeRemoved = headings_1.MarkdownHeadings[(decorator === null || decorator === void 0 ? void 0 : decorator.tagName) || ''];
|
|
28339
|
+
if (markdownToBeRemoved) {
|
|
28340
|
+
textSegment.text = textSegment.text.replace(markdownToBeRemoved, '');
|
|
28341
|
+
}
|
|
28342
|
+
return textSegment;
|
|
28343
|
+
}
|
|
28344
|
+
exports.adjustHeading = adjustHeading;
|
|
28345
|
+
|
|
28346
|
+
|
|
28347
|
+
/***/ }),
|
|
28348
|
+
|
|
28349
|
+
/***/ "./packages/roosterjs-content-model-markdown/lib/markdownToModel/utils/getHeadingDecorator.ts":
|
|
28350
|
+
/*!****************************************************************************************************!*\
|
|
28351
|
+
!*** ./packages/roosterjs-content-model-markdown/lib/markdownToModel/utils/getHeadingDecorator.ts ***!
|
|
28352
|
+
\****************************************************************************************************/
|
|
28353
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
28354
|
+
|
|
28355
|
+
"use strict";
|
|
28356
|
+
|
|
28357
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
28358
|
+
exports.getHeadingDecorator = void 0;
|
|
28359
|
+
var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.mjs");
|
|
28360
|
+
var headings_1 = __webpack_require__(/*! ../../constants/headings */ "./packages/roosterjs-content-model-markdown/lib/constants/headings.ts");
|
|
28361
|
+
/**
|
|
28362
|
+
* @internal
|
|
28363
|
+
*/
|
|
28364
|
+
function getHeadingDecorator(text) {
|
|
28365
|
+
var e_1, _a;
|
|
28366
|
+
try {
|
|
28367
|
+
for (var headingLevels_1 = (0, tslib_1.__values)(headings_1.headingLevels), headingLevels_1_1 = headingLevels_1.next(); !headingLevels_1_1.done; headingLevels_1_1 = headingLevels_1.next()) {
|
|
28368
|
+
var level = headingLevels_1_1.value;
|
|
28369
|
+
if (text.startsWith(level.prefix)) {
|
|
28370
|
+
return {
|
|
28371
|
+
tagName: level.tagName,
|
|
28372
|
+
format: {
|
|
28373
|
+
fontWeight: 'bold',
|
|
28374
|
+
fontSize: level.fontSize,
|
|
28375
|
+
},
|
|
28376
|
+
};
|
|
28377
|
+
}
|
|
28378
|
+
}
|
|
28379
|
+
}
|
|
28380
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
28381
|
+
finally {
|
|
28382
|
+
try {
|
|
28383
|
+
if (headingLevels_1_1 && !headingLevels_1_1.done && (_a = headingLevels_1.return)) _a.call(headingLevels_1);
|
|
28384
|
+
}
|
|
28385
|
+
finally { if (e_1) throw e_1.error; }
|
|
28386
|
+
}
|
|
28387
|
+
return undefined;
|
|
28388
|
+
}
|
|
28389
|
+
exports.getHeadingDecorator = getHeadingDecorator;
|
|
28390
|
+
|
|
28391
|
+
|
|
28392
|
+
/***/ }),
|
|
28393
|
+
|
|
28394
|
+
/***/ "./packages/roosterjs-content-model-markdown/lib/markdownToModel/utils/isMarkdownTable.ts":
|
|
28395
|
+
/*!************************************************************************************************!*\
|
|
28396
|
+
!*** ./packages/roosterjs-content-model-markdown/lib/markdownToModel/utils/isMarkdownTable.ts ***!
|
|
28397
|
+
\************************************************************************************************/
|
|
28398
|
+
/***/ ((__unused_webpack_module, exports) => {
|
|
28399
|
+
|
|
28400
|
+
"use strict";
|
|
28401
|
+
|
|
28402
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
28403
|
+
exports.isMarkdownTable = void 0;
|
|
28404
|
+
/**
|
|
28405
|
+
* @internal
|
|
28406
|
+
*/
|
|
28407
|
+
function isMarkdownTable(text) {
|
|
28408
|
+
var columns = text.split('|').filter(function (s) { return s !== ''; });
|
|
28409
|
+
var pattern = /^:?-+:?$/;
|
|
28410
|
+
return columns.length > 0 && columns.every(function (c) { return pattern.test(c.trim()); });
|
|
28411
|
+
}
|
|
28412
|
+
exports.isMarkdownTable = isMarkdownTable;
|
|
28413
|
+
|
|
28414
|
+
|
|
28415
|
+
/***/ }),
|
|
28416
|
+
|
|
28417
|
+
/***/ "./packages/roosterjs-content-model-markdown/lib/markdownToModel/utils/splitParagraphSegments.ts":
|
|
28418
|
+
/*!*******************************************************************************************************!*\
|
|
28419
|
+
!*** ./packages/roosterjs-content-model-markdown/lib/markdownToModel/utils/splitParagraphSegments.ts ***!
|
|
28420
|
+
\*******************************************************************************************************/
|
|
28421
|
+
/***/ ((__unused_webpack_module, exports) => {
|
|
28422
|
+
|
|
28423
|
+
"use strict";
|
|
28424
|
+
|
|
28425
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
28426
|
+
exports.splitParagraphSegments = void 0;
|
|
28427
|
+
var linkRegex = /(\[([^\[]+)\]\((https?:\/\/[^\)]+)\))|(\!\[([^\[]+)\]\((https?:\/\/[^\)]+)\))/g;
|
|
28428
|
+
var isValidUrl = function (url) {
|
|
28429
|
+
try {
|
|
28430
|
+
new URL(url);
|
|
28431
|
+
return true;
|
|
28432
|
+
}
|
|
28433
|
+
catch (_) {
|
|
28434
|
+
return false;
|
|
28435
|
+
}
|
|
28436
|
+
};
|
|
28437
|
+
/**
|
|
28438
|
+
* @internal
|
|
28439
|
+
*/
|
|
28440
|
+
function splitParagraphSegments(text) {
|
|
28441
|
+
var result = [];
|
|
28442
|
+
var lastIndex = 0;
|
|
28443
|
+
var match = null;
|
|
28444
|
+
while ((match = linkRegex.exec(text)) !== null) {
|
|
28445
|
+
if (match.index > lastIndex) {
|
|
28446
|
+
result.push({ type: 'text', text: text.slice(lastIndex, match.index), url: '' });
|
|
28447
|
+
}
|
|
28448
|
+
if (match[2] && match[3]) {
|
|
28449
|
+
result.push(isValidUrl(match[3])
|
|
28450
|
+
? { type: 'link', text: match[2], url: match[3] }
|
|
28451
|
+
: { type: 'text', text: match[0], url: '' });
|
|
28452
|
+
}
|
|
28453
|
+
else if (match[5] && match[6]) {
|
|
28454
|
+
result.push(isValidUrl(match[6])
|
|
28455
|
+
? { type: 'image', text: match[5], url: match[6] }
|
|
28456
|
+
: { type: 'text', text: match[0], url: '' });
|
|
28457
|
+
}
|
|
28458
|
+
lastIndex = linkRegex.lastIndex;
|
|
28459
|
+
}
|
|
28460
|
+
if (lastIndex < text.length) {
|
|
28461
|
+
result.push({ type: 'text', text: text.slice(lastIndex), url: '' });
|
|
28462
|
+
}
|
|
28463
|
+
return result;
|
|
28464
|
+
}
|
|
28465
|
+
exports.splitParagraphSegments = splitParagraphSegments;
|
|
28466
|
+
|
|
28467
|
+
|
|
28468
|
+
/***/ }),
|
|
28469
|
+
|
|
28470
|
+
/***/ "./packages/roosterjs-content-model-markdown/lib/modelToMarkdown/convertContentModelToMarkdown.ts":
|
|
28471
|
+
/*!********************************************************************************************************!*\
|
|
28472
|
+
!*** ./packages/roosterjs-content-model-markdown/lib/modelToMarkdown/convertContentModelToMarkdown.ts ***!
|
|
28473
|
+
\********************************************************************************************************/
|
|
28474
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
28475
|
+
|
|
28476
|
+
"use strict";
|
|
28477
|
+
|
|
28478
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
28479
|
+
exports.convertContentModelToMarkdown = void 0;
|
|
28480
|
+
var modelProcessor_1 = __webpack_require__(/*! ./processor/modelProcessor */ "./packages/roosterjs-content-model-markdown/lib/modelToMarkdown/processor/modelProcessor.ts");
|
|
28481
|
+
/**
|
|
28482
|
+
* Export content model document to markdown
|
|
28483
|
+
* @param selection The editor selection
|
|
28484
|
+
* @param newLine The new line string to use. Default is '\n\n'
|
|
28485
|
+
* @returns The markdown string
|
|
28486
|
+
*/
|
|
28487
|
+
function convertContentModelToMarkdown(model, newLine) {
|
|
28488
|
+
return (0, modelProcessor_1.modelProcessor)(model, newLine);
|
|
28489
|
+
}
|
|
28490
|
+
exports.convertContentModelToMarkdown = convertContentModelToMarkdown;
|
|
28491
|
+
|
|
28492
|
+
|
|
28493
|
+
/***/ }),
|
|
28494
|
+
|
|
28495
|
+
/***/ "./packages/roosterjs-content-model-markdown/lib/modelToMarkdown/creators/createMarkdownBlock.ts":
|
|
28496
|
+
/*!*******************************************************************************************************!*\
|
|
28497
|
+
!*** ./packages/roosterjs-content-model-markdown/lib/modelToMarkdown/creators/createMarkdownBlock.ts ***!
|
|
28498
|
+
\*******************************************************************************************************/
|
|
28499
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
28500
|
+
|
|
28501
|
+
"use strict";
|
|
28502
|
+
|
|
28503
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
28504
|
+
exports.createMarkdownBlock = void 0;
|
|
28505
|
+
var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.mjs");
|
|
28506
|
+
var createMarkdownBlockGroup_1 = __webpack_require__(/*! ./createMarkdownBlockGroup */ "./packages/roosterjs-content-model-markdown/lib/modelToMarkdown/creators/createMarkdownBlockGroup.ts");
|
|
28507
|
+
var createMarkdownParagraph_1 = __webpack_require__(/*! ./createMarkdownParagraph */ "./packages/roosterjs-content-model-markdown/lib/modelToMarkdown/creators/createMarkdownParagraph.ts");
|
|
28508
|
+
var createMarkdownTable_1 = __webpack_require__(/*! ./createMarkdownTable */ "./packages/roosterjs-content-model-markdown/lib/modelToMarkdown/creators/createMarkdownTable.ts");
|
|
28509
|
+
var DEFAULT_NEW_LINE = {
|
|
28510
|
+
table: '',
|
|
28511
|
+
paragraph: '',
|
|
28512
|
+
divider: '\n\n',
|
|
28513
|
+
};
|
|
28514
|
+
/**
|
|
28515
|
+
* @internal
|
|
28516
|
+
*/
|
|
28517
|
+
function createMarkdownBlock(block, newLinePattern, listCounter, newLines, paragraphContext) {
|
|
28518
|
+
var markdownString = '';
|
|
28519
|
+
var lines = (0, tslib_1.__assign)((0, tslib_1.__assign)({}, DEFAULT_NEW_LINE), newLines);
|
|
28520
|
+
switch (block.blockType) {
|
|
28521
|
+
case 'Paragraph':
|
|
28522
|
+
markdownString += (0, createMarkdownParagraph_1.createMarkdownParagraph)(block, paragraphContext) + lines.paragraph;
|
|
28523
|
+
break;
|
|
28524
|
+
case 'BlockGroup':
|
|
28525
|
+
markdownString += (0, createMarkdownBlockGroup_1.createMarkdownBlockGroup)(block, newLinePattern, listCounter);
|
|
28526
|
+
break;
|
|
28527
|
+
case 'Table':
|
|
28528
|
+
markdownString += (0, createMarkdownTable_1.createMarkdownTable)(block, newLinePattern, listCounter) + lines.table;
|
|
28529
|
+
break;
|
|
28530
|
+
case 'Divider':
|
|
28531
|
+
if (!(paragraphContext === null || paragraphContext === void 0 ? void 0 : paragraphContext.ignoreLineBreaks)) {
|
|
28532
|
+
markdownString += '---' + lines.divider;
|
|
28533
|
+
}
|
|
28534
|
+
break;
|
|
28535
|
+
case 'Entity':
|
|
28536
|
+
break;
|
|
28537
|
+
default:
|
|
28538
|
+
break;
|
|
28539
|
+
}
|
|
28540
|
+
return markdownString;
|
|
28541
|
+
}
|
|
28542
|
+
exports.createMarkdownBlock = createMarkdownBlock;
|
|
28543
|
+
|
|
28544
|
+
|
|
28545
|
+
/***/ }),
|
|
28546
|
+
|
|
28547
|
+
/***/ "./packages/roosterjs-content-model-markdown/lib/modelToMarkdown/creators/createMarkdownBlockGroup.ts":
|
|
28548
|
+
/*!************************************************************************************************************!*\
|
|
28549
|
+
!*** ./packages/roosterjs-content-model-markdown/lib/modelToMarkdown/creators/createMarkdownBlockGroup.ts ***!
|
|
28550
|
+
\************************************************************************************************************/
|
|
28551
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
28552
|
+
|
|
28553
|
+
"use strict";
|
|
28554
|
+
|
|
28555
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
28556
|
+
exports.createMarkdownBlockGroup = void 0;
|
|
28557
|
+
var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.mjs");
|
|
28558
|
+
var createMarkdownBlock_1 = __webpack_require__(/*! ./createMarkdownBlock */ "./packages/roosterjs-content-model-markdown/lib/modelToMarkdown/creators/createMarkdownBlock.ts");
|
|
28559
|
+
/**
|
|
28560
|
+
* @internal
|
|
28561
|
+
*/
|
|
28562
|
+
function createMarkdownBlockGroup(blockGroup, newLinePattern, listCounter) {
|
|
28563
|
+
var e_1, _a;
|
|
28564
|
+
var markdownString = '';
|
|
28565
|
+
switch (blockGroup.blockGroupType) {
|
|
28566
|
+
case 'ListItem':
|
|
28567
|
+
if (listCounter) {
|
|
28568
|
+
markdownString += createMarkdownListItem(blockGroup, newLinePattern, listCounter);
|
|
28569
|
+
}
|
|
28570
|
+
break;
|
|
28571
|
+
case 'FormatContainer':
|
|
28572
|
+
markdownString += createMarkdownBlockQuote(blockGroup, newLinePattern, listCounter);
|
|
28573
|
+
break;
|
|
28574
|
+
default:
|
|
28575
|
+
var blocks = blockGroup.blocks;
|
|
28576
|
+
try {
|
|
28577
|
+
for (var blocks_1 = (0, tslib_1.__values)(blocks), blocks_1_1 = blocks_1.next(); !blocks_1_1.done; blocks_1_1 = blocks_1.next()) {
|
|
28578
|
+
var block = blocks_1_1.value;
|
|
28579
|
+
markdownString += (0, createMarkdownBlock_1.createMarkdownBlock)(block, newLinePattern, listCounter);
|
|
28580
|
+
}
|
|
28581
|
+
}
|
|
28582
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
28583
|
+
finally {
|
|
28584
|
+
try {
|
|
28585
|
+
if (blocks_1_1 && !blocks_1_1.done && (_a = blocks_1.return)) _a.call(blocks_1);
|
|
28586
|
+
}
|
|
28587
|
+
finally { if (e_1) throw e_1.error; }
|
|
28588
|
+
}
|
|
28589
|
+
break;
|
|
28590
|
+
}
|
|
28591
|
+
return markdownString;
|
|
28592
|
+
}
|
|
28593
|
+
exports.createMarkdownBlockGroup = createMarkdownBlockGroup;
|
|
28594
|
+
function createMarkdownListItem(listItem, newLinePattern, listCounter) {
|
|
28595
|
+
var e_2, _a;
|
|
28596
|
+
var markdownString = '';
|
|
28597
|
+
var blocks = listItem.blocks;
|
|
28598
|
+
try {
|
|
28599
|
+
for (var blocks_2 = (0, tslib_1.__values)(blocks), blocks_2_1 = blocks_2.next(); !blocks_2_1.done; blocks_2_1 = blocks_2.next()) {
|
|
28600
|
+
var block = blocks_2_1.value;
|
|
28601
|
+
markdownString += (0, createMarkdownBlock_1.createMarkdownBlock)(block, newLinePattern, listCounter, undefined /* newLines */, {
|
|
28602
|
+
ignoreLineBreaks: true,
|
|
28603
|
+
});
|
|
28604
|
+
}
|
|
28605
|
+
}
|
|
28606
|
+
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
28607
|
+
finally {
|
|
28608
|
+
try {
|
|
28609
|
+
if (blocks_2_1 && !blocks_2_1.done && (_a = blocks_2.return)) _a.call(blocks_2);
|
|
28610
|
+
}
|
|
28611
|
+
finally { if (e_2) throw e_2.error; }
|
|
28612
|
+
}
|
|
28613
|
+
var lastIndex = listItem.levels.length - 1;
|
|
28614
|
+
var isSubList = lastIndex + 1 > 1;
|
|
28615
|
+
var dummyFormat = listItem.levels[lastIndex].format.displayForDummyItem;
|
|
28616
|
+
if (dummyFormat && dummyFormat !== 'listItem') {
|
|
28617
|
+
return (markdownString = " " + markdownString);
|
|
28618
|
+
}
|
|
28619
|
+
if (isSubList) {
|
|
28620
|
+
listCounter.subListItemCount++;
|
|
28621
|
+
if (listItem.levels[lastIndex].listType == 'OL') {
|
|
28622
|
+
markdownString = " " + listCounter.subListItemCount + ". " + markdownString;
|
|
28623
|
+
}
|
|
28624
|
+
else {
|
|
28625
|
+
markdownString = " - " + markdownString;
|
|
28626
|
+
}
|
|
28627
|
+
}
|
|
28628
|
+
else {
|
|
28629
|
+
listCounter.listItemCount++;
|
|
28630
|
+
if (listItem.levels[lastIndex].listType == 'OL') {
|
|
28631
|
+
markdownString = listCounter.listItemCount + ". " + markdownString;
|
|
28632
|
+
}
|
|
28633
|
+
else {
|
|
28634
|
+
markdownString = "- " + markdownString;
|
|
28635
|
+
}
|
|
28636
|
+
}
|
|
28637
|
+
return markdownString + newLinePattern.newLine;
|
|
28638
|
+
}
|
|
28639
|
+
function createMarkdownBlockQuote(blockquote, newLinePattern, listCounter) {
|
|
28640
|
+
var e_3, _a;
|
|
28641
|
+
var markdownString = '';
|
|
28642
|
+
if (blockquote.tagName == 'blockquote') {
|
|
28643
|
+
var blocks = blockquote.blocks;
|
|
28644
|
+
try {
|
|
28645
|
+
for (var blocks_3 = (0, tslib_1.__values)(blocks), blocks_3_1 = blocks_3.next(); !blocks_3_1.done; blocks_3_1 = blocks_3.next()) {
|
|
28646
|
+
var block = blocks_3_1.value;
|
|
28647
|
+
markdownString +=
|
|
28648
|
+
'> ' +
|
|
28649
|
+
(0, createMarkdownBlock_1.createMarkdownBlock)(block, newLinePattern, listCounter, undefined /* newLines */, {
|
|
28650
|
+
ignoreLineBreaks: true,
|
|
28651
|
+
}) +
|
|
28652
|
+
newLinePattern.newLine;
|
|
28653
|
+
}
|
|
28654
|
+
}
|
|
28655
|
+
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
28656
|
+
finally {
|
|
28657
|
+
try {
|
|
28658
|
+
if (blocks_3_1 && !blocks_3_1.done && (_a = blocks_3.return)) _a.call(blocks_3);
|
|
28659
|
+
}
|
|
28660
|
+
finally { if (e_3) throw e_3.error; }
|
|
28661
|
+
}
|
|
28662
|
+
}
|
|
28663
|
+
return markdownString + "\n";
|
|
28664
|
+
}
|
|
28665
|
+
|
|
28666
|
+
|
|
28667
|
+
/***/ }),
|
|
28668
|
+
|
|
28669
|
+
/***/ "./packages/roosterjs-content-model-markdown/lib/modelToMarkdown/creators/createMarkdownParagraph.ts":
|
|
28670
|
+
/*!***********************************************************************************************************!*\
|
|
28671
|
+
!*** ./packages/roosterjs-content-model-markdown/lib/modelToMarkdown/creators/createMarkdownParagraph.ts ***!
|
|
28672
|
+
\***********************************************************************************************************/
|
|
28673
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
28674
|
+
|
|
28675
|
+
"use strict";
|
|
28676
|
+
|
|
28677
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
28678
|
+
exports.createMarkdownParagraph = void 0;
|
|
28679
|
+
var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.mjs");
|
|
28680
|
+
var headings_1 = __webpack_require__(/*! ../../constants/headings */ "./packages/roosterjs-content-model-markdown/lib/constants/headings.ts");
|
|
28681
|
+
/**
|
|
28682
|
+
* @internal
|
|
28683
|
+
*/
|
|
28684
|
+
function createMarkdownParagraph(paragraph, context) {
|
|
28685
|
+
var e_1, _a;
|
|
28686
|
+
var segments = paragraph.segments;
|
|
28687
|
+
var markdownString = '';
|
|
28688
|
+
try {
|
|
28689
|
+
for (var segments_1 = (0, tslib_1.__values)(segments), segments_1_1 = segments_1.next(); !segments_1_1.done; segments_1_1 = segments_1.next()) {
|
|
28690
|
+
var segment = segments_1_1.value;
|
|
28691
|
+
switch (segment.segmentType) {
|
|
28692
|
+
case 'Text':
|
|
28693
|
+
markdownString += textProcessor(segment);
|
|
28694
|
+
break;
|
|
28695
|
+
case 'Image':
|
|
28696
|
+
markdownString += "";
|
|
28697
|
+
break;
|
|
28698
|
+
case 'Br':
|
|
28699
|
+
if (!(context === null || context === void 0 ? void 0 : context.ignoreLineBreaks)) {
|
|
28700
|
+
markdownString += '\n';
|
|
28701
|
+
}
|
|
28702
|
+
break;
|
|
28703
|
+
default:
|
|
28704
|
+
break;
|
|
28705
|
+
}
|
|
28706
|
+
}
|
|
28707
|
+
}
|
|
28708
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
28709
|
+
finally {
|
|
28710
|
+
try {
|
|
28711
|
+
if (segments_1_1 && !segments_1_1.done && (_a = segments_1.return)) _a.call(segments_1);
|
|
28712
|
+
}
|
|
28713
|
+
finally { if (e_1) throw e_1.error; }
|
|
28714
|
+
}
|
|
28715
|
+
if (paragraph.decorator) {
|
|
28716
|
+
var tagName = paragraph.decorator.tagName;
|
|
28717
|
+
var prefix = headings_1.MarkdownHeadings[tagName];
|
|
28718
|
+
markdownString = "" + prefix + markdownString;
|
|
28719
|
+
}
|
|
28720
|
+
return markdownString;
|
|
28721
|
+
}
|
|
28722
|
+
exports.createMarkdownParagraph = createMarkdownParagraph;
|
|
28723
|
+
function textProcessor(text) {
|
|
28724
|
+
var markdownString = text.text;
|
|
28725
|
+
if (text.link) {
|
|
28726
|
+
markdownString = "[" + text.text + "](" + text.link.format.href + ")";
|
|
28727
|
+
}
|
|
28728
|
+
if (text.format.fontWeight == 'bold') {
|
|
28729
|
+
markdownString = "**" + markdownString + "**";
|
|
28730
|
+
}
|
|
28731
|
+
if (text.format.italic) {
|
|
28732
|
+
markdownString = "*" + markdownString + "*";
|
|
28733
|
+
}
|
|
28734
|
+
return markdownString;
|
|
28735
|
+
}
|
|
28736
|
+
|
|
28737
|
+
|
|
28738
|
+
/***/ }),
|
|
28739
|
+
|
|
28740
|
+
/***/ "./packages/roosterjs-content-model-markdown/lib/modelToMarkdown/creators/createMarkdownTable.ts":
|
|
28741
|
+
/*!*******************************************************************************************************!*\
|
|
28742
|
+
!*** ./packages/roosterjs-content-model-markdown/lib/modelToMarkdown/creators/createMarkdownTable.ts ***!
|
|
28743
|
+
\*******************************************************************************************************/
|
|
28744
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
28745
|
+
|
|
28746
|
+
"use strict";
|
|
28747
|
+
|
|
28748
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
28749
|
+
exports.createMarkdownTable = void 0;
|
|
28750
|
+
var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.mjs");
|
|
28751
|
+
var createMarkdownBlock_1 = __webpack_require__(/*! ./createMarkdownBlock */ "./packages/roosterjs-content-model-markdown/lib/modelToMarkdown/creators/createMarkdownBlock.ts");
|
|
28752
|
+
/**
|
|
28753
|
+
* @internal
|
|
28754
|
+
*/
|
|
28755
|
+
function createMarkdownTable(table, newLinePattern, listCounter) {
|
|
28756
|
+
var e_1, _a, e_2, _b, e_3, _c;
|
|
28757
|
+
var markdownString = '';
|
|
28758
|
+
var rows = table.rows;
|
|
28759
|
+
var firstRow = true;
|
|
28760
|
+
try {
|
|
28761
|
+
for (var rows_1 = (0, tslib_1.__values)(rows), rows_1_1 = rows_1.next(); !rows_1_1.done; rows_1_1 = rows_1.next()) {
|
|
28762
|
+
var row = rows_1_1.value;
|
|
28763
|
+
markdownString += '|';
|
|
28764
|
+
try {
|
|
28765
|
+
for (var _d = (e_2 = void 0, (0, tslib_1.__values)(row.cells)), _e = _d.next(); !_e.done; _e = _d.next()) {
|
|
28766
|
+
var cell = _e.value;
|
|
28767
|
+
try {
|
|
28768
|
+
for (var _f = (e_3 = void 0, (0, tslib_1.__values)(cell.blocks)), _g = _f.next(); !_g.done; _g = _f.next()) {
|
|
28769
|
+
var block = _g.value;
|
|
28770
|
+
markdownString += (0, createMarkdownBlock_1.createMarkdownBlock)(block, newLinePattern, listCounter, {
|
|
28771
|
+
divider: '',
|
|
28772
|
+
}, {
|
|
28773
|
+
ignoreLineBreaks: true,
|
|
28774
|
+
});
|
|
28775
|
+
}
|
|
28776
|
+
}
|
|
28777
|
+
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
28778
|
+
finally {
|
|
28779
|
+
try {
|
|
28780
|
+
if (_g && !_g.done && (_c = _f.return)) _c.call(_f);
|
|
28781
|
+
}
|
|
28782
|
+
finally { if (e_3) throw e_3.error; }
|
|
28783
|
+
}
|
|
28784
|
+
markdownString += '|';
|
|
28785
|
+
}
|
|
28786
|
+
}
|
|
28787
|
+
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
28788
|
+
finally {
|
|
28789
|
+
try {
|
|
28790
|
+
if (_e && !_e.done && (_b = _d.return)) _b.call(_d);
|
|
28791
|
+
}
|
|
28792
|
+
finally { if (e_2) throw e_2.error; }
|
|
28793
|
+
}
|
|
28794
|
+
markdownString += newLinePattern.newLine;
|
|
28795
|
+
if (firstRow) {
|
|
28796
|
+
markdownString += addTableDivider(row);
|
|
28797
|
+
firstRow = false;
|
|
28798
|
+
}
|
|
28799
|
+
}
|
|
28800
|
+
}
|
|
28801
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
28802
|
+
finally {
|
|
28803
|
+
try {
|
|
28804
|
+
if (rows_1_1 && !rows_1_1.done && (_a = rows_1.return)) _a.call(rows_1);
|
|
28805
|
+
}
|
|
28806
|
+
finally { if (e_1) throw e_1.error; }
|
|
28807
|
+
}
|
|
28808
|
+
return markdownString;
|
|
28809
|
+
}
|
|
28810
|
+
exports.createMarkdownTable = createMarkdownTable;
|
|
28811
|
+
function addTableDivider(headerRow) {
|
|
28812
|
+
var e_4, _a;
|
|
28813
|
+
var divider = '|';
|
|
28814
|
+
var cells = headerRow.cells;
|
|
28815
|
+
try {
|
|
28816
|
+
for (var cells_1 = (0, tslib_1.__values)(cells), cells_1_1 = cells_1.next(); !cells_1_1.done; cells_1_1 = cells_1.next()) {
|
|
28817
|
+
var cell = cells_1_1.value;
|
|
28818
|
+
switch (cell.format.textAlign) {
|
|
28819
|
+
case 'center':
|
|
28820
|
+
divider += ':----:|';
|
|
28821
|
+
break;
|
|
28822
|
+
case 'end':
|
|
28823
|
+
divider += '----:|';
|
|
28824
|
+
break;
|
|
28825
|
+
default:
|
|
28826
|
+
divider += '----|';
|
|
28827
|
+
break;
|
|
28828
|
+
}
|
|
28829
|
+
}
|
|
28830
|
+
}
|
|
28831
|
+
catch (e_4_1) { e_4 = { error: e_4_1 }; }
|
|
28832
|
+
finally {
|
|
28833
|
+
try {
|
|
28834
|
+
if (cells_1_1 && !cells_1_1.done && (_a = cells_1.return)) _a.call(cells_1);
|
|
28835
|
+
}
|
|
28836
|
+
finally { if (e_4) throw e_4.error; }
|
|
28837
|
+
}
|
|
28838
|
+
return divider + '\n';
|
|
28839
|
+
}
|
|
28840
|
+
|
|
28841
|
+
|
|
28842
|
+
/***/ }),
|
|
28843
|
+
|
|
28844
|
+
/***/ "./packages/roosterjs-content-model-markdown/lib/modelToMarkdown/processor/modelProcessor.ts":
|
|
28845
|
+
/*!***************************************************************************************************!*\
|
|
28846
|
+
!*** ./packages/roosterjs-content-model-markdown/lib/modelToMarkdown/processor/modelProcessor.ts ***!
|
|
28847
|
+
\***************************************************************************************************/
|
|
28848
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
28849
|
+
|
|
28850
|
+
"use strict";
|
|
28851
|
+
|
|
28852
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
28853
|
+
exports.modelProcessor = void 0;
|
|
28854
|
+
var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.mjs");
|
|
28855
|
+
var createMarkdownBlock_1 = __webpack_require__(/*! ../creators/createMarkdownBlock */ "./packages/roosterjs-content-model-markdown/lib/modelToMarkdown/creators/createMarkdownBlock.ts");
|
|
28856
|
+
var DEFAULT_NEW_LINE = {
|
|
28857
|
+
lineBreak: '\n\n',
|
|
28858
|
+
newLine: '\n',
|
|
28859
|
+
};
|
|
28860
|
+
/**
|
|
28861
|
+
* @internal
|
|
28862
|
+
*/
|
|
28863
|
+
function modelProcessor(model, newLine) {
|
|
28864
|
+
var e_1, _a;
|
|
28865
|
+
if (newLine === void 0) { newLine = DEFAULT_NEW_LINE; }
|
|
28866
|
+
var markdown = '';
|
|
28867
|
+
var listCounter = {
|
|
28868
|
+
listItemCount: 0,
|
|
28869
|
+
subListItemCount: 0,
|
|
28870
|
+
};
|
|
28871
|
+
try {
|
|
28872
|
+
for (var _b = (0, tslib_1.__values)(model.blocks), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
28873
|
+
var block = _c.value;
|
|
28874
|
+
var isListItem = block.blockType === 'BlockGroup' && block.blockGroupType === 'ListItem';
|
|
28875
|
+
if (!isListItem && (listCounter.listItemCount > 0 || listCounter.subListItemCount > 0)) {
|
|
28876
|
+
listCounter.listItemCount = 0;
|
|
28877
|
+
listCounter.subListItemCount = 0;
|
|
28878
|
+
markdown += newLine.newLine;
|
|
28879
|
+
}
|
|
28880
|
+
markdown += (0, createMarkdownBlock_1.createMarkdownBlock)(block, newLine, listCounter, {
|
|
28881
|
+
table: newLine.newLine,
|
|
28882
|
+
paragraph: newLine.lineBreak,
|
|
28883
|
+
divider: newLine.lineBreak,
|
|
28884
|
+
});
|
|
28885
|
+
}
|
|
28886
|
+
}
|
|
28887
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
28888
|
+
finally {
|
|
28889
|
+
try {
|
|
28890
|
+
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
28891
|
+
}
|
|
28892
|
+
finally { if (e_1) throw e_1.error; }
|
|
28893
|
+
}
|
|
28894
|
+
return markdown;
|
|
28895
|
+
}
|
|
28896
|
+
exports.modelProcessor = modelProcessor;
|
|
28897
|
+
|
|
28898
|
+
|
|
27546
28899
|
/***/ }),
|
|
27547
28900
|
|
|
27548
28901
|
/***/ "./packages/roosterjs-content-model-plugins/lib/autoFormat/AutoFormatPlugin.ts":
|
|
@@ -30159,9 +31512,10 @@ function handleTabOnTable(model, rawEvent) {
|
|
|
30159
31512
|
}
|
|
30160
31513
|
exports.handleTabOnTable = handleTabOnTable;
|
|
30161
31514
|
function isWholeTableSelected(tableModel) {
|
|
30162
|
-
var _a, _b
|
|
30163
|
-
|
|
30164
|
-
|
|
31515
|
+
var _a, _b;
|
|
31516
|
+
var lastRow = tableModel.rows[tableModel.rows.length - 1];
|
|
31517
|
+
var lastCell = lastRow === null || lastRow === void 0 ? void 0 : lastRow.cells[lastRow.cells.length - 1];
|
|
31518
|
+
return ((_b = (_a = tableModel.rows[0]) === null || _a === void 0 ? void 0 : _a.cells[0]) === null || _b === void 0 ? void 0 : _b.isSelected) && (lastCell === null || lastCell === void 0 ? void 0 : lastCell.isSelected);
|
|
30165
31519
|
}
|
|
30166
31520
|
|
|
30167
31521
|
|
|
@@ -30184,32 +31538,35 @@ var roosterjs_content_model_dom_1 = __webpack_require__(/*! roosterjs-content-mo
|
|
|
30184
31538
|
* @internal
|
|
30185
31539
|
*/
|
|
30186
31540
|
function handleTabOnTableCell(model, cell, rawEvent) {
|
|
30187
|
-
var _a, _b
|
|
31541
|
+
var _a, _b;
|
|
30188
31542
|
var readonlyTableModel = (0, roosterjs_content_model_dom_1.getFirstSelectedTable)(model)[0];
|
|
30189
|
-
|
|
30190
|
-
|
|
30191
|
-
readonlyTableModel
|
|
30192
|
-
|
|
30193
|
-
var
|
|
30194
|
-
(
|
|
30195
|
-
|
|
30196
|
-
|
|
30197
|
-
|
|
30198
|
-
|
|
30199
|
-
|
|
30200
|
-
|
|
30201
|
-
|
|
30202
|
-
|
|
30203
|
-
|
|
30204
|
-
|
|
30205
|
-
|
|
30206
|
-
var
|
|
30207
|
-
|
|
30208
|
-
|
|
30209
|
-
|
|
31543
|
+
if (readonlyTableModel) {
|
|
31544
|
+
// Check if cursor is on last cell of the table
|
|
31545
|
+
var lastRow = readonlyTableModel.rows[readonlyTableModel.rows.length - 1];
|
|
31546
|
+
var lastColumn = lastRow ? lastRow.cells.length - 1 : -1;
|
|
31547
|
+
var lastCell = lastRow === null || lastRow === void 0 ? void 0 : lastRow.cells[lastColumn];
|
|
31548
|
+
if (!rawEvent.shiftKey && lastCell && lastCell === cell) {
|
|
31549
|
+
var tableModel = (0, roosterjs_content_model_dom_1.mutateBlock)(readonlyTableModel);
|
|
31550
|
+
(0, roosterjs_content_model_api_1.insertTableRow)(tableModel, 'insertBelow');
|
|
31551
|
+
// Clear Table selection
|
|
31552
|
+
(0, roosterjs_content_model_api_1.clearSelectedCells)(tableModel, {
|
|
31553
|
+
firstRow: tableModel.rows.length - 1,
|
|
31554
|
+
firstColumn: 0,
|
|
31555
|
+
lastRow: tableModel.rows.length - 1,
|
|
31556
|
+
lastColumn: lastColumn,
|
|
31557
|
+
});
|
|
31558
|
+
(0, roosterjs_content_model_dom_1.normalizeTable)(tableModel, model.format);
|
|
31559
|
+
// Add selection marker to the first cell of the new row
|
|
31560
|
+
var markerParagraph = (_b = (_a = tableModel.rows[tableModel.rows.length - 1]) === null || _a === void 0 ? void 0 : _a.cells[0]) === null || _b === void 0 ? void 0 : _b.blocks[0];
|
|
31561
|
+
if (markerParagraph.blockType == 'Paragraph') {
|
|
31562
|
+
var marker = (0, roosterjs_content_model_dom_1.createSelectionMarker)(model.format);
|
|
31563
|
+
(0, roosterjs_content_model_dom_1.mutateBlock)(markerParagraph).segments.unshift(marker);
|
|
31564
|
+
(0, roosterjs_content_model_dom_1.setParagraphNotImplicit)(markerParagraph);
|
|
31565
|
+
(0, roosterjs_content_model_dom_1.setSelection)(tableModel.rows[tableModel.rows.length - 1].cells[0], marker);
|
|
31566
|
+
}
|
|
31567
|
+
rawEvent.preventDefault();
|
|
31568
|
+
return true;
|
|
30210
31569
|
}
|
|
30211
|
-
rawEvent.preventDefault();
|
|
30212
|
-
return true;
|
|
30213
31570
|
}
|
|
30214
31571
|
return false;
|
|
30215
31572
|
}
|
|
@@ -30872,7 +32229,7 @@ var ImageEditPlugin = /** @class */ (function () {
|
|
|
30872
32229
|
this.disposer = editor.attachDomEvent({
|
|
30873
32230
|
blur: {
|
|
30874
32231
|
beforeDispatch: function () {
|
|
30875
|
-
if (_this.editor) {
|
|
32232
|
+
if (_this.isEditing && _this.editor && !_this.editor.isDisposed()) {
|
|
30876
32233
|
_this.applyFormatWithContentModel(_this.editor, _this.isCropMode, true /* shouldSelectImage */);
|
|
30877
32234
|
}
|
|
30878
32235
|
},
|
|
@@ -30905,13 +32262,13 @@ var ImageEditPlugin = /** @class */ (function () {
|
|
|
30905
32262
|
* called, plugin should not call to any editor method since it will result in error.
|
|
30906
32263
|
*/
|
|
30907
32264
|
ImageEditPlugin.prototype.dispose = function () {
|
|
30908
|
-
this.editor = null;
|
|
30909
|
-
this.isEditing = false;
|
|
30910
|
-
this.cleanInfo();
|
|
30911
32265
|
if (this.disposer) {
|
|
30912
32266
|
this.disposer();
|
|
30913
32267
|
this.disposer = null;
|
|
30914
32268
|
}
|
|
32269
|
+
this.isEditing = false;
|
|
32270
|
+
this.cleanInfo();
|
|
32271
|
+
this.editor = null;
|
|
30915
32272
|
};
|
|
30916
32273
|
/**
|
|
30917
32274
|
* Core method for a plugin. Once an event happens in editor, editor will call this
|
|
@@ -30971,7 +32328,8 @@ var ImageEditPlugin = /** @class */ (function () {
|
|
|
30971
32328
|
ImageEditPlugin.prototype.mouseDownHandler = function (editor, event) {
|
|
30972
32329
|
if (this.isEditing &&
|
|
30973
32330
|
this.isImageSelection(event.rawEvent.target) &&
|
|
30974
|
-
event.rawEvent.button !== MouseRightButton
|
|
32331
|
+
event.rawEvent.button !== MouseRightButton &&
|
|
32332
|
+
!this.isCropMode) {
|
|
30975
32333
|
this.applyFormatWithContentModel(editor, this.isCropMode, this.shadowSpan === event.rawEvent.target);
|
|
30976
32334
|
}
|
|
30977
32335
|
};
|
|
@@ -31007,6 +32365,9 @@ var ImageEditPlugin = /** @class */ (function () {
|
|
|
31007
32365
|
this.cleanInfo();
|
|
31008
32366
|
}
|
|
31009
32367
|
else {
|
|
32368
|
+
if (event.rawEvent.key == 'Enter' && this.isCropMode) {
|
|
32369
|
+
event.rawEvent.preventDefault();
|
|
32370
|
+
}
|
|
31010
32371
|
this.applyFormatWithContentModel(editor, this.isCropMode, true /** should selectImage */, false /* isApiOperation */);
|
|
31011
32372
|
}
|
|
31012
32373
|
}
|
|
@@ -32769,13 +34130,14 @@ function updateWrapper(editInfo, options, image, clonedImage, wrapper, resizers,
|
|
|
32769
34130
|
if (croppers && croppers.length > 0) {
|
|
32770
34131
|
var cropContainer = croppers[0];
|
|
32771
34132
|
var cropOverlays = croppers.filter(function (cropper) { return cropper.className === ImageEditElementClass_1.ImageEditElementClass.CropOverlay; });
|
|
34133
|
+
var cropHandles = (0, roosterjs_content_model_dom_1.toArray)(cropContainer.querySelectorAll("." + ImageEditElementClass_1.ImageEditElementClass.CropHandle));
|
|
32772
34134
|
(0, imageEditUtils_1.setSize)(cropContainer, cropLeftPx, cropTopPx, cropRightPx, cropBottomPx, undefined, undefined);
|
|
32773
34135
|
(0, imageEditUtils_1.setSize)(cropOverlays[0], 0, 0, cropRightPx, undefined, undefined, cropTopPx);
|
|
32774
34136
|
(0, imageEditUtils_1.setSize)(cropOverlays[1], undefined, 0, 0, cropBottomPx, cropRightPx, undefined);
|
|
32775
34137
|
(0, imageEditUtils_1.setSize)(cropOverlays[2], cropLeftPx, undefined, 0, 0, undefined, cropBottomPx);
|
|
32776
34138
|
(0, imageEditUtils_1.setSize)(cropOverlays[3], 0, cropTopPx, undefined, 0, cropLeftPx, undefined);
|
|
32777
34139
|
if (angleRad !== undefined) {
|
|
32778
|
-
(0, updateHandleCursor_1.updateHandleCursor)(
|
|
34140
|
+
(0, updateHandleCursor_1.updateHandleCursor)(cropHandles, angleRad);
|
|
32779
34141
|
}
|
|
32780
34142
|
}
|
|
32781
34143
|
if (resizers) {
|
|
@@ -33331,6 +34693,7 @@ var getPasteSource_1 = __webpack_require__(/*! ./pasteSourceValidations/getPaste
|
|
|
33331
34693
|
var linkParser_1 = __webpack_require__(/*! ./utils/linkParser */ "./packages/roosterjs-content-model-plugins/lib/paste/utils/linkParser.ts");
|
|
33332
34694
|
var constants_1 = __webpack_require__(/*! ./pasteSourceValidations/constants */ "./packages/roosterjs-content-model-plugins/lib/paste/pasteSourceValidations/constants.ts");
|
|
33333
34695
|
var processPastedContentFromExcel_1 = __webpack_require__(/*! ./Excel/processPastedContentFromExcel */ "./packages/roosterjs-content-model-plugins/lib/paste/Excel/processPastedContentFromExcel.ts");
|
|
34696
|
+
var processPastedContentFromOneNote_1 = __webpack_require__(/*! ./oneNote/processPastedContentFromOneNote */ "./packages/roosterjs-content-model-plugins/lib/paste/oneNote/processPastedContentFromOneNote.ts");
|
|
33334
34697
|
var processPastedContentFromPowerPoint_1 = __webpack_require__(/*! ./PowerPoint/processPastedContentFromPowerPoint */ "./packages/roosterjs-content-model-plugins/lib/paste/PowerPoint/processPastedContentFromPowerPoint.ts");
|
|
33335
34698
|
var processPastedContentFromWordDesktop_1 = __webpack_require__(/*! ./WordDesktop/processPastedContentFromWordDesktop */ "./packages/roosterjs-content-model-plugins/lib/paste/WordDesktop/processPastedContentFromWordDesktop.ts");
|
|
33336
34699
|
var processPastedContentWacComponents_1 = __webpack_require__(/*! ./WacComponents/processPastedContentWacComponents */ "./packages/roosterjs-content-model-plugins/lib/paste/WacComponents/processPastedContentWacComponents.ts");
|
|
@@ -33417,6 +34780,9 @@ var PastePlugin = /** @class */ (function () {
|
|
|
33417
34780
|
case 'powerPointDesktop':
|
|
33418
34781
|
(0, processPastedContentFromPowerPoint_1.processPastedContentFromPowerPoint)(event, this.editor.getDOMCreator());
|
|
33419
34782
|
break;
|
|
34783
|
+
case 'oneNoteDesktop':
|
|
34784
|
+
(0, processPastedContentFromOneNote_1.processPastedContentFromOneNote)(event);
|
|
34785
|
+
break;
|
|
33420
34786
|
}
|
|
33421
34787
|
(0, addParser_1.addParser)(event.domToModelOption, 'link', linkParser_1.parseLink);
|
|
33422
34788
|
(0, addParser_1.addParser)(event.domToModelOption, 'tableCell', deprecatedColorParser_1.deprecatedBorderColorParser);
|
|
@@ -34074,7 +35440,7 @@ function processAsListItem(listFormat, context, element, group, listMetadata) {
|
|
|
34074
35440
|
var listItem = (0, roosterjs_content_model_dom_1.createListItem)(listFormat.levels, context.segmentFormat);
|
|
34075
35441
|
(0, roosterjs_content_model_dom_1.parseFormat)(element, context.formatParsers.segmentOnBlock, context.segmentFormat, context);
|
|
34076
35442
|
(0, roosterjs_content_model_dom_1.parseFormat)(element, context.formatParsers.listItemElement, listItem.format, context);
|
|
34077
|
-
(0, roosterjs_content_model_dom_1.parseFormat)(element, [removeNegativeTextIndentParser_1.removeNegativeTextIndentParser], listItem.format, context);
|
|
35443
|
+
(0, roosterjs_content_model_dom_1.parseFormat)(element, [removeNegativeTextIndentParser_1.removeNegativeTextIndentParser, nonListElementParser], listItem.format, context);
|
|
34078
35444
|
if (listType == 'OL') {
|
|
34079
35445
|
setStartNumber(listItem, context, listMetadata);
|
|
34080
35446
|
}
|
|
@@ -34162,6 +35528,19 @@ function getLastNotEmptyBlock(listParent) {
|
|
|
34162
35528
|
}
|
|
34163
35529
|
return undefined;
|
|
34164
35530
|
}
|
|
35531
|
+
var nonListElementParser = function (format, element, _context, defaultStyle) {
|
|
35532
|
+
if (!(0, roosterjs_content_model_dom_1.isElementOfType)(element, 'li')) {
|
|
35533
|
+
Object.keys(defaultStyle).forEach(function (keyInput) {
|
|
35534
|
+
var key = keyInput;
|
|
35535
|
+
var formatKey = keyInput;
|
|
35536
|
+
if (key != 'display' &&
|
|
35537
|
+
format[formatKey] != undefined &&
|
|
35538
|
+
format[formatKey] == defaultStyle[key]) {
|
|
35539
|
+
delete format[formatKey];
|
|
35540
|
+
}
|
|
35541
|
+
});
|
|
35542
|
+
}
|
|
35543
|
+
};
|
|
34165
35544
|
|
|
34166
35545
|
|
|
34167
35546
|
/***/ }),
|
|
@@ -34188,6 +35567,130 @@ var removeNegativeTextIndentParser = function (format, element) {
|
|
|
34188
35567
|
exports.removeNegativeTextIndentParser = removeNegativeTextIndentParser;
|
|
34189
35568
|
|
|
34190
35569
|
|
|
35570
|
+
/***/ }),
|
|
35571
|
+
|
|
35572
|
+
/***/ "./packages/roosterjs-content-model-plugins/lib/paste/oneNote/processPastedContentFromOneNote.ts":
|
|
35573
|
+
/*!*******************************************************************************************************!*\
|
|
35574
|
+
!*** ./packages/roosterjs-content-model-plugins/lib/paste/oneNote/processPastedContentFromOneNote.ts ***!
|
|
35575
|
+
\*******************************************************************************************************/
|
|
35576
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
35577
|
+
|
|
35578
|
+
"use strict";
|
|
35579
|
+
|
|
35580
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
35581
|
+
exports.processListItem = exports.processUnorderedList = exports.processOrderedList = exports.processPastedContentFromOneNote = void 0;
|
|
35582
|
+
var setProcessor_1 = __webpack_require__(/*! ../utils/setProcessor */ "./packages/roosterjs-content-model-plugins/lib/paste/utils/setProcessor.ts");
|
|
35583
|
+
var OrderedListStyleMap = {
|
|
35584
|
+
1: 'decimal',
|
|
35585
|
+
a: 'lower-alpha',
|
|
35586
|
+
A: 'upper-alpha',
|
|
35587
|
+
i: 'lower-roman',
|
|
35588
|
+
I: 'upper-roman',
|
|
35589
|
+
};
|
|
35590
|
+
var UnorderedListStyleMap = {
|
|
35591
|
+
disc: 'disc',
|
|
35592
|
+
circle: 'circle',
|
|
35593
|
+
square: 'square',
|
|
35594
|
+
};
|
|
35595
|
+
/**
|
|
35596
|
+
* @internal
|
|
35597
|
+
* Processes the content pasted from OneNote by setting up custom processors
|
|
35598
|
+
* for ordered lists (`<ol>`) and list items (`<li>`). These processors handle
|
|
35599
|
+
* specific list styles and numbering overrides that may be present in OneNote
|
|
35600
|
+
* content.
|
|
35601
|
+
*
|
|
35602
|
+
* @param event - The `BeforePasteEvent` containing the DOM-to-model options
|
|
35603
|
+
* and other context information for the paste operation.
|
|
35604
|
+
*/
|
|
35605
|
+
function processPastedContentFromOneNote(event) {
|
|
35606
|
+
(0, setProcessor_1.setProcessor)(event.domToModelOption, 'ol', exports.processOrderedList);
|
|
35607
|
+
(0, setProcessor_1.setProcessor)(event.domToModelOption, 'ul', exports.processUnorderedList);
|
|
35608
|
+
(0, setProcessor_1.setProcessor)(event.domToModelOption, 'li', exports.processListItem);
|
|
35609
|
+
}
|
|
35610
|
+
exports.processPastedContentFromOneNote = processPastedContentFromOneNote;
|
|
35611
|
+
/**
|
|
35612
|
+
* @internal exported only for unit test
|
|
35613
|
+
* Content from OneNote may have ordered lists with specific styles and start numbers.
|
|
35614
|
+
* This function processes the `<ol>` elements, extracting the `type` and `start` custom attributes
|
|
35615
|
+
* to set the appropriate list style and starting number in the `oneNoteListContext` of the provided context.
|
|
35616
|
+
* Which is then used to format the list items within the list.
|
|
35617
|
+
*/
|
|
35618
|
+
var processOrderedList = function (group, element, cmContext) {
|
|
35619
|
+
var _a, _b;
|
|
35620
|
+
var context = ensureOneNoteListContext(cmContext);
|
|
35621
|
+
if (context.oneNoteListContext) {
|
|
35622
|
+
var typeOfList = element.getAttribute('type');
|
|
35623
|
+
if (typeOfList) {
|
|
35624
|
+
var listStyle = OrderedListStyleMap[typeOfList];
|
|
35625
|
+
var startNumberOverride = parseInt(element.getAttribute('start') || '1') || 1;
|
|
35626
|
+
context.oneNoteListContext.listStyleType = listStyle;
|
|
35627
|
+
context.oneNoteListContext.startNumberOverride = startNumberOverride;
|
|
35628
|
+
}
|
|
35629
|
+
}
|
|
35630
|
+
(_b = (_a = context.defaultElementProcessors).ol) === null || _b === void 0 ? void 0 : _b.call(_a, group, element, context);
|
|
35631
|
+
};
|
|
35632
|
+
exports.processOrderedList = processOrderedList;
|
|
35633
|
+
/**
|
|
35634
|
+
* @internal exported only for unit test
|
|
35635
|
+
* Content from OneNote may have ordered lists with specific styles and start numbers.
|
|
35636
|
+
* This function processes the `<ul>` elements, extracting the `type` custom attribute
|
|
35637
|
+
* to set the appropriate list style in the `oneNoteListContext` of the provided context.
|
|
35638
|
+
* Which is then used to format the list items within the list.
|
|
35639
|
+
*/
|
|
35640
|
+
var processUnorderedList = function (group, element, cmContext) {
|
|
35641
|
+
var _a, _b;
|
|
35642
|
+
var context = ensureOneNoteListContext(cmContext);
|
|
35643
|
+
if (context.oneNoteListContext) {
|
|
35644
|
+
var typeOfList = element.getAttribute('type');
|
|
35645
|
+
if (typeOfList) {
|
|
35646
|
+
var listStyle = UnorderedListStyleMap[typeOfList];
|
|
35647
|
+
context.oneNoteListContext.listStyleType = listStyle;
|
|
35648
|
+
}
|
|
35649
|
+
}
|
|
35650
|
+
(_b = (_a = context.defaultElementProcessors).ul) === null || _b === void 0 ? void 0 : _b.call(_a, group, element, context);
|
|
35651
|
+
};
|
|
35652
|
+
exports.processUnorderedList = processUnorderedList;
|
|
35653
|
+
/**
|
|
35654
|
+
* @internal exported only for unit test
|
|
35655
|
+
* Processes the `<li>` elements within a list. It checks if the `oneNoteListContext`
|
|
35656
|
+
* is present in the provided context. If so, it applies the list style type and
|
|
35657
|
+
* start number override to the last level of the list format.
|
|
35658
|
+
* This ensures that the list items are formatted correctly according to the
|
|
35659
|
+
* OneNote list context.
|
|
35660
|
+
*/
|
|
35661
|
+
var processListItem = function (group, element, cmContext) {
|
|
35662
|
+
var _a, _b;
|
|
35663
|
+
var context = ensureOneNoteListContext(cmContext);
|
|
35664
|
+
var removeStartNumberOverride = false;
|
|
35665
|
+
if (context.oneNoteListContext) {
|
|
35666
|
+
var _c = context.oneNoteListContext, listStyleType = _c.listStyleType, startNumberOverride = _c.startNumberOverride;
|
|
35667
|
+
if (listStyleType) {
|
|
35668
|
+
var lastLevel = context.listFormat.levels[context.listFormat.levels.length - 1];
|
|
35669
|
+
lastLevel.format.listStyleType = listStyleType;
|
|
35670
|
+
if (startNumberOverride) {
|
|
35671
|
+
removeStartNumberOverride = true;
|
|
35672
|
+
lastLevel.format.startNumberOverride = startNumberOverride;
|
|
35673
|
+
delete context.oneNoteListContext.startNumberOverride;
|
|
35674
|
+
}
|
|
35675
|
+
delete context.oneNoteListContext.listStyleType;
|
|
35676
|
+
}
|
|
35677
|
+
}
|
|
35678
|
+
(_b = (_a = context.defaultElementProcessors).li) === null || _b === void 0 ? void 0 : _b.call(_a, group, element, context);
|
|
35679
|
+
if (removeStartNumberOverride) {
|
|
35680
|
+
delete context.listFormat.levels[context.listFormat.levels.length - 1].format
|
|
35681
|
+
.startNumberOverride;
|
|
35682
|
+
}
|
|
35683
|
+
};
|
|
35684
|
+
exports.processListItem = processListItem;
|
|
35685
|
+
function ensureOneNoteListContext(cmContext) {
|
|
35686
|
+
var context = cmContext;
|
|
35687
|
+
if (!context.oneNoteListContext) {
|
|
35688
|
+
context.oneNoteListContext = {};
|
|
35689
|
+
}
|
|
35690
|
+
return context;
|
|
35691
|
+
}
|
|
35692
|
+
|
|
35693
|
+
|
|
34191
35694
|
/***/ }),
|
|
34192
35695
|
|
|
34193
35696
|
/***/ "./packages/roosterjs-content-model-plugins/lib/paste/pasteSourceValidations/constants.ts":
|
|
@@ -34262,6 +35765,7 @@ var isExcelDesktopDocument_1 = __webpack_require__(/*! ./isExcelDesktopDocument
|
|
|
34262
35765
|
var isExcelNonNativeEvent_1 = __webpack_require__(/*! ./isExcelNonNativeEvent */ "./packages/roosterjs-content-model-plugins/lib/paste/pasteSourceValidations/isExcelNonNativeEvent.ts");
|
|
34263
35766
|
var isExcelOnlineDocument_1 = __webpack_require__(/*! ./isExcelOnlineDocument */ "./packages/roosterjs-content-model-plugins/lib/paste/pasteSourceValidations/isExcelOnlineDocument.ts");
|
|
34264
35767
|
var isGoogleSheetDocument_1 = __webpack_require__(/*! ./isGoogleSheetDocument */ "./packages/roosterjs-content-model-plugins/lib/paste/pasteSourceValidations/isGoogleSheetDocument.ts");
|
|
35768
|
+
var isOneNoteDocument_1 = __webpack_require__(/*! ./isOneNoteDocument */ "./packages/roosterjs-content-model-plugins/lib/paste/pasteSourceValidations/isOneNoteDocument.ts");
|
|
34265
35769
|
var isPowerPointDesktopDocument_1 = __webpack_require__(/*! ./isPowerPointDesktopDocument */ "./packages/roosterjs-content-model-plugins/lib/paste/pasteSourceValidations/isPowerPointDesktopDocument.ts");
|
|
34266
35770
|
var isWordDesktopDocument_1 = __webpack_require__(/*! ./isWordDesktopDocument */ "./packages/roosterjs-content-model-plugins/lib/paste/pasteSourceValidations/isWordDesktopDocument.ts");
|
|
34267
35771
|
var shouldConvertToSingleImage_1 = __webpack_require__(/*! ./shouldConvertToSingleImage */ "./packages/roosterjs-content-model-plugins/lib/paste/pasteSourceValidations/shouldConvertToSingleImage.ts");
|
|
@@ -34274,6 +35778,7 @@ var getSourceFunctions = new Map([
|
|
|
34274
35778
|
['googleSheets', isGoogleSheetDocument_1.isGoogleSheetDocument],
|
|
34275
35779
|
['singleImage', shouldConvertToSingleImage_1.shouldConvertToSingleImage],
|
|
34276
35780
|
['excelNonNativeEvent', isExcelNonNativeEvent_1.isExcelNotNativeEvent],
|
|
35781
|
+
['oneNoteDesktop', isOneNoteDocument_1.isOneNoteDesktopDocument],
|
|
34277
35782
|
]);
|
|
34278
35783
|
/**
|
|
34279
35784
|
* @internal
|
|
@@ -34413,6 +35918,34 @@ var isGoogleSheetDocument = function (props) {
|
|
|
34413
35918
|
exports.isGoogleSheetDocument = isGoogleSheetDocument;
|
|
34414
35919
|
|
|
34415
35920
|
|
|
35921
|
+
/***/ }),
|
|
35922
|
+
|
|
35923
|
+
/***/ "./packages/roosterjs-content-model-plugins/lib/paste/pasteSourceValidations/isOneNoteDocument.ts":
|
|
35924
|
+
/*!********************************************************************************************************!*\
|
|
35925
|
+
!*** ./packages/roosterjs-content-model-plugins/lib/paste/pasteSourceValidations/isOneNoteDocument.ts ***!
|
|
35926
|
+
\********************************************************************************************************/
|
|
35927
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
35928
|
+
|
|
35929
|
+
"use strict";
|
|
35930
|
+
|
|
35931
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
35932
|
+
exports.isOneNoteDesktopDocument = void 0;
|
|
35933
|
+
var constants_1 = __webpack_require__(/*! ./constants */ "./packages/roosterjs-content-model-plugins/lib/paste/pasteSourceValidations/constants.ts");
|
|
35934
|
+
var ONE_NOTE_ATTRIBUTE_VALUE = 'OneNote.File';
|
|
35935
|
+
/**
|
|
35936
|
+
* @internal
|
|
35937
|
+
* Checks whether the provided HTML attributes identify a OneNote Desktop document
|
|
35938
|
+
* @param props Properties related to the PasteEvent
|
|
35939
|
+
* @returns True if the document is identified as a OneNote Desktop document, otherwise false
|
|
35940
|
+
*/
|
|
35941
|
+
var isOneNoteDesktopDocument = function (props) {
|
|
35942
|
+
var htmlAttributes = props.htmlAttributes;
|
|
35943
|
+
// The presence of this attribute confirms its origin from OneNote Desktop
|
|
35944
|
+
return htmlAttributes[constants_1.PastePropertyNames.PROG_ID_NAME] == ONE_NOTE_ATTRIBUTE_VALUE;
|
|
35945
|
+
};
|
|
35946
|
+
exports.isOneNoteDesktopDocument = isOneNoteDesktopDocument;
|
|
35947
|
+
|
|
35948
|
+
|
|
34416
35949
|
/***/ }),
|
|
34417
35950
|
|
|
34418
35951
|
/***/ "./packages/roosterjs-content-model-plugins/lib/paste/pasteSourceValidations/isPowerPointDesktopDocument.ts":
|
|
@@ -36326,6 +37859,7 @@ function onDraggingHorizontal(context, event, initValue, deltaX, deltaY) {
|
|
|
36326
37859
|
for (var col = 0; col < tableRow.cells.length; col++) {
|
|
36327
37860
|
var td = tableRow.cells[col];
|
|
36328
37861
|
td.style.height = newHeight + 'px';
|
|
37862
|
+
td.style.boxSizing = 'border-box';
|
|
36329
37863
|
}
|
|
36330
37864
|
return true;
|
|
36331
37865
|
}
|
|
@@ -36369,7 +37903,9 @@ function onDraggingVertical(context, event, initValue, deltaX) {
|
|
|
36369
37903
|
for (var row = 0; row < table.rows.length; row++) {
|
|
36370
37904
|
var tableRow = table.rows[row];
|
|
36371
37905
|
for (var col = 0; col < tableRow.cells.length; col++) {
|
|
36372
|
-
|
|
37906
|
+
var td = tableRow.cells[col];
|
|
37907
|
+
td.style.width = cmTable.widths[col] + 'px';
|
|
37908
|
+
td.style.boxSizing = 'border-box';
|
|
36373
37909
|
}
|
|
36374
37910
|
}
|
|
36375
37911
|
if (context.originalWidth > 0) {
|
|
@@ -36794,7 +38330,7 @@ function onDragEnd(context, event, initValue) {
|
|
|
36794
38330
|
if (ip && (initValue === null || initValue === void 0 ? void 0 : initValue.cmTable)) {
|
|
36795
38331
|
// Insert new table
|
|
36796
38332
|
var doc = (0, roosterjs_content_model_dom_1.createContentModelDocument)();
|
|
36797
|
-
doc.blocks.push((0, roosterjs_content_model_dom_1.mutateBlock)(initValue.cmTable));
|
|
38333
|
+
doc.blocks.push(oldTable !== null && oldTable !== void 0 ? oldTable : (0, roosterjs_content_model_dom_1.mutateBlock)(initValue.cmTable));
|
|
36798
38334
|
insertionSuccess_1 = !!(0, roosterjs_content_model_dom_1.mergeModel)(model, (0, roosterjs_content_model_dom_1.cloneModel)(doc), context, {
|
|
36799
38335
|
mergeFormat: 'none',
|
|
36800
38336
|
insertPosition: ip,
|
|
@@ -36804,13 +38340,13 @@ function onDragEnd(context, event, initValue) {
|
|
|
36804
38340
|
var finalTable = (_a = (0, roosterjs_content_model_dom_1.getFirstSelectedTable)(model)[0]) !== null && _a !== void 0 ? _a : initValue.cmTable;
|
|
36805
38341
|
if (finalTable) {
|
|
36806
38342
|
// Add selection marker to the first cell of the table
|
|
36807
|
-
var
|
|
36808
|
-
var markerParagraph =
|
|
38343
|
+
var firstCell = finalTable.rows[0].cells[0];
|
|
38344
|
+
var markerParagraph = firstCell === null || firstCell === void 0 ? void 0 : firstCell.blocks[0];
|
|
36809
38345
|
if ((markerParagraph === null || markerParagraph === void 0 ? void 0 : markerParagraph.blockType) == 'Paragraph') {
|
|
36810
38346
|
var marker = (0, roosterjs_content_model_dom_1.createSelectionMarker)(model.format);
|
|
36811
38347
|
(0, roosterjs_content_model_dom_1.mutateBlock)(markerParagraph).segments.unshift(marker);
|
|
36812
38348
|
(0, roosterjs_content_model_dom_1.setParagraphNotImplicit)(markerParagraph);
|
|
36813
|
-
(0, roosterjs_content_model_dom_1.setSelection)(
|
|
38349
|
+
(0, roosterjs_content_model_dom_1.setSelection)(model, marker);
|
|
36814
38350
|
}
|
|
36815
38351
|
}
|
|
36816
38352
|
}
|
|
@@ -36990,6 +38526,7 @@ function onDragging(context, event, initValue, deltaX, deltaY) {
|
|
|
36990
38526
|
var newWidth = Math.max(cmTable.widths[col], roosterjs_content_model_dom_1.MIN_ALLOWED_TABLE_CELL_HEIGHT);
|
|
36991
38527
|
td.style.width = newWidth + 'px';
|
|
36992
38528
|
td.style.height = newHeight + 'px';
|
|
38529
|
+
td.style.boxSizing = 'border-box';
|
|
36993
38530
|
}
|
|
36994
38531
|
}
|
|
36995
38532
|
return true;
|
|
@@ -37052,29 +38589,20 @@ function isTableBottomVisible(editor, rect, contentDiv) {
|
|
|
37052
38589
|
|
|
37053
38590
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
37054
38591
|
exports.getCMTableFromTable = void 0;
|
|
37055
|
-
var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.mjs");
|
|
37056
38592
|
var roosterjs_content_model_dom_1 = __webpack_require__(/*! roosterjs-content-model-dom */ "./packages/roosterjs-content-model-dom/lib/index.ts");
|
|
37057
38593
|
/**
|
|
37058
38594
|
* @internal
|
|
37059
38595
|
* Get ContentModelTable from a table element if it is present in the content model
|
|
37060
38596
|
*/
|
|
37061
38597
|
function getCMTableFromTable(editor, table) {
|
|
37062
|
-
var
|
|
37063
|
-
|
|
37064
|
-
|
|
37065
|
-
|
|
37066
|
-
return false;
|
|
37067
|
-
}, {
|
|
37068
|
-
selectionOverride: {
|
|
37069
|
-
type: 'table',
|
|
37070
|
-
firstColumn: 0,
|
|
37071
|
-
firstRow: 0,
|
|
37072
|
-
lastColumn: 0,
|
|
37073
|
-
lastRow: 0,
|
|
37074
|
-
table: table,
|
|
37075
|
-
},
|
|
38598
|
+
var model = (0, roosterjs_content_model_dom_1.createContentModelDocument)();
|
|
38599
|
+
var context = (0, roosterjs_content_model_dom_1.createDomToModelContext)({
|
|
38600
|
+
zoomScale: editor.getDOMHelper().calculateZoomScale(),
|
|
38601
|
+
recalculateTableSize: true,
|
|
37076
38602
|
});
|
|
37077
|
-
|
|
38603
|
+
context.elementProcessors.element(model, table, context);
|
|
38604
|
+
var firstBlock = model.blocks[0];
|
|
38605
|
+
return (firstBlock === null || firstBlock === void 0 ? void 0 : firstBlock.blockType) == 'Table' ? firstBlock : undefined;
|
|
37078
38606
|
}
|
|
37079
38607
|
exports.getCMTableFromTable = getCMTableFromTable;
|
|
37080
38608
|
|
|
@@ -37352,6 +38880,7 @@ Object.defineProperty(exports, "createEditor", ({ enumerable: true, get: functio
|
|
|
37352
38880
|
(0, tslib_1.__exportStar)(__webpack_require__(/*! roosterjs-content-model-api */ "./packages/roosterjs-content-model-api/lib/index.ts"), exports);
|
|
37353
38881
|
(0, tslib_1.__exportStar)(__webpack_require__(/*! roosterjs-content-model-plugins */ "./packages/roosterjs-content-model-plugins/lib/index.ts"), exports);
|
|
37354
38882
|
(0, tslib_1.__exportStar)(__webpack_require__(/*! roosterjs-color-utils */ "./packages/roosterjs-color-utils/lib/index.ts"), exports);
|
|
38883
|
+
(0, tslib_1.__exportStar)(__webpack_require__(/*! roosterjs-content-model-markdown */ "./packages/roosterjs-content-model-markdown/lib/index.ts"), exports);
|
|
37355
38884
|
|
|
37356
38885
|
|
|
37357
38886
|
/***/ }),
|