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