roosterjs-content-model-dom 9.46.0 → 9.47.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/lib/domUtils/event/getNodePositionFromEvent.d.ts +9 -0
- package/lib/domUtils/event/getNodePositionFromEvent.js +36 -0
- package/lib/domUtils/event/getNodePositionFromEvent.js.map +1 -0
- package/lib/index.d.ts +1 -0
- package/lib/index.js +4 -2
- package/lib/index.js.map +1 -1
- package/lib/modelToDom/handlers/handleParagraph.js +40 -8
- package/lib/modelToDom/handlers/handleParagraph.js.map +1 -1
- package/lib/modelToDom/handlers/handleText.js +5 -1
- package/lib/modelToDom/handlers/handleText.js.map +1 -1
- package/lib-amd/domUtils/event/getNodePositionFromEvent.d.ts +9 -0
- package/lib-amd/domUtils/event/getNodePositionFromEvent.js +38 -0
- package/lib-amd/domUtils/event/getNodePositionFromEvent.js.map +1 -0
- package/lib-amd/index.d.ts +1 -0
- package/lib-amd/index.js +3 -2
- package/lib-amd/index.js.map +1 -1
- package/lib-amd/modelToDom/handlers/handleParagraph.js +40 -8
- package/lib-amd/modelToDom/handlers/handleParagraph.js.map +1 -1
- package/lib-amd/modelToDom/handlers/handleText.js +5 -1
- package/lib-amd/modelToDom/handlers/handleText.js.map +1 -1
- package/lib-mjs/domUtils/event/getNodePositionFromEvent.d.ts +9 -0
- package/lib-mjs/domUtils/event/getNodePositionFromEvent.js +32 -0
- package/lib-mjs/domUtils/event/getNodePositionFromEvent.js.map +1 -0
- package/lib-mjs/index.d.ts +1 -0
- package/lib-mjs/index.js +1 -0
- package/lib-mjs/index.js.map +1 -1
- package/lib-mjs/modelToDom/handlers/handleParagraph.js +41 -9
- package/lib-mjs/modelToDom/handlers/handleParagraph.js.map +1 -1
- package/lib-mjs/modelToDom/handlers/handleText.js +5 -1
- package/lib-mjs/modelToDom/handlers/handleText.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { DOMHelper, DOMInsertPoint } from 'roosterjs-content-model-types';
|
|
2
|
+
/**
|
|
3
|
+
* Get insertion point from coordinate.
|
|
4
|
+
* @param doc Parent document object
|
|
5
|
+
* @param domHelper The DOM helper of the editor
|
|
6
|
+
* @param x The cursor coordinate for the x-axis
|
|
7
|
+
* @param y The cursor coordinate for the y-axis
|
|
8
|
+
*/
|
|
9
|
+
export declare function getNodePositionFromEvent(doc: Document, domHelper: DOMHelper, x: number, y: number): DOMInsertPoint | null;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getNodePositionFromEvent = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Get insertion point from coordinate.
|
|
6
|
+
* @param doc Parent document object
|
|
7
|
+
* @param domHelper The DOM helper of the editor
|
|
8
|
+
* @param x The cursor coordinate for the x-axis
|
|
9
|
+
* @param y The cursor coordinate for the y-axis
|
|
10
|
+
*/
|
|
11
|
+
function getNodePositionFromEvent(doc, domHelper, x, y) {
|
|
12
|
+
if ('caretPositionFromPoint' in doc) {
|
|
13
|
+
// Firefox, Chrome, Edge, Safari, Opera
|
|
14
|
+
var pos = doc.caretPositionFromPoint(x, y);
|
|
15
|
+
if (pos && domHelper.isNodeInEditor(pos.offsetNode)) {
|
|
16
|
+
return { node: pos.offsetNode, offset: pos.offset };
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
if (doc.caretRangeFromPoint) {
|
|
20
|
+
// Safari
|
|
21
|
+
var range = doc.caretRangeFromPoint(x, y);
|
|
22
|
+
if (range && domHelper.isNodeInEditor(range.startContainer)) {
|
|
23
|
+
return { node: range.startContainer, offset: range.startOffset };
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
if (doc.elementFromPoint) {
|
|
27
|
+
// Fallback
|
|
28
|
+
var element = doc.elementFromPoint(x, y);
|
|
29
|
+
if (element && domHelper.isNodeInEditor(element)) {
|
|
30
|
+
return { node: element, offset: 0 };
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
return null;
|
|
34
|
+
}
|
|
35
|
+
exports.getNodePositionFromEvent = getNodePositionFromEvent;
|
|
36
|
+
//# sourceMappingURL=getNodePositionFromEvent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getNodePositionFromEvent.js","sourceRoot":"","sources":["../../../../../packages/roosterjs-content-model-dom/lib/domUtils/event/getNodePositionFromEvent.ts"],"names":[],"mappings":";;;AAEA;;;;;;GAMG;AACH,SAAgB,wBAAwB,CACpC,GAAa,EACb,SAAoB,EACpB,CAAS,EACT,CAAS;IAET,IAAI,wBAAwB,IAAI,GAAG,EAAE;QACjC,uCAAuC;QACvC,IAAM,GAAG,GAAI,GAAW,CAAC,sBAAsB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACtD,IAAI,GAAG,IAAI,SAAS,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;YACjD,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC;SACvD;KACJ;IAED,IAAI,GAAG,CAAC,mBAAmB,EAAE;QACzB,SAAS;QACT,IAAM,KAAK,GAAG,GAAG,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5C,IAAI,KAAK,IAAI,SAAS,CAAC,cAAc,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE;YACzD,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,cAAc,EAAE,MAAM,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC;SACpE;KACJ;IAED,IAAI,GAAG,CAAC,gBAAgB,EAAE;QACtB,WAAW;QACX,IAAM,OAAO,GAAG,GAAG,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3C,IAAI,OAAO,IAAI,SAAS,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE;YAC9C,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;SACvC;KACJ;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AA/BD,4DA+BC","sourcesContent":["import type { DOMHelper, DOMInsertPoint } from 'roosterjs-content-model-types';\n\n/**\n * Get insertion point from coordinate.\n * @param doc Parent document object\n * @param domHelper The DOM helper of the editor\n * @param x The cursor coordinate for the x-axis\n * @param y The cursor coordinate for the y-axis\n */\nexport function getNodePositionFromEvent(\n doc: Document,\n domHelper: DOMHelper,\n x: number,\n y: number\n): DOMInsertPoint | null {\n if ('caretPositionFromPoint' in doc) {\n // Firefox, Chrome, Edge, Safari, Opera\n const pos = (doc as any).caretPositionFromPoint(x, y);\n if (pos && domHelper.isNodeInEditor(pos.offsetNode)) {\n return { node: pos.offsetNode, offset: pos.offset };\n }\n }\n\n if (doc.caretRangeFromPoint) {\n // Safari\n const range = doc.caretRangeFromPoint(x, y);\n if (range && domHelper.isNodeInEditor(range.startContainer)) {\n return { node: range.startContainer, offset: range.startOffset };\n }\n }\n\n if (doc.elementFromPoint) {\n // Fallback\n const element = doc.elementFromPoint(x, y);\n if (element && domHelper.isNodeInEditor(element)) {\n return { node: element, offset: 0 };\n }\n }\n\n return null;\n}\n"]}
|
package/lib/index.d.ts
CHANGED
|
@@ -71,6 +71,7 @@ export { getSelectionRootNode } from './domUtils/selection/getSelectionRootNode'
|
|
|
71
71
|
export { getDOMInsertPointRect } from './domUtils/selection/getDOMInsertPointRect';
|
|
72
72
|
export { trimModelForSelection } from './domUtils/selection/trimModelForSelection';
|
|
73
73
|
export { isCharacterValue, isModifierKey, isCursorMovingKey } from './domUtils/event/eventUtils';
|
|
74
|
+
export { getNodePositionFromEvent } from './domUtils/event/getNodePositionFromEvent';
|
|
74
75
|
export { combineBorderValue, extractBorderValues } from './domUtils/style/borderValues';
|
|
75
76
|
export { isPunctuation, isSpace, normalizeText } from './domUtils/stringUtil';
|
|
76
77
|
export { parseTableCells } from './domUtils/table/parseTableCells';
|
package/lib/index.js
CHANGED
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.createImage = exports.createText = exports.createTableCell = exports.createTable = exports.createSelectionMarker = exports.createParagraph = exports.createFormatContainer = exports.createListItem = exports.createBr = exports.isLinkUndeletable = exports.setLinkUndeletable = exports.scrollRectIntoView = exports.normalizeRect = exports.isWhiteSpacePreserved = exports.reuseCachedElement = exports.findClosestBlockEntityContainer = exports.isBlockEntityContainer = exports.isEntityDelimiter = exports.addDelimiters = exports.generateEntityClassNames = exports.parseEntityFormat = exports.getAllEntityWrappers = exports.findClosestEntityWrapper = exports.isEntityElement = exports.unwrap = exports.wrap = exports.wrapAllChildNodes = exports.moveChildNodes = exports.toArray = exports.getSafeIdSelector = exports.getObjectKeys = exports.isElementOfType = exports.isNodeOfType = exports.hasMetadata = exports.getMetadata = exports.updateMetadata = exports.buildSelectionMarker = exports.isBlockElement = exports.areSameFormats = exports.parseFormat = exports.getRegularSelectionOffsets = exports.formatContainerProcessor = exports.tableProcessor = exports.entityProcessor = exports.processChildNode = exports.handleRegularSelection = exports.childProcessor = exports.contentModelToText = exports.contentModelToDom = exports.domToContentModel = void 0;
|
|
4
4
|
exports.trimModelForSelection = exports.getDOMInsertPointRect = exports.getSelectionRootNode = exports.isBold = exports.createModelToDomConfig = exports.createModelToDomContextWithConfig = exports.createModelToDomContext = exports.createDomToModelConfig = exports.createDomToModelContextWithConfig = exports.createDomToModelContext = exports.defaultGenerateColorKey = exports.parseColor = exports.setColor = exports.getColor = exports.DeprecatedColors = exports.BorderKeys = exports.parseValueWithUnit = exports.getAutoListStyleType = exports.getOrderedListNumberStr = exports.ParagraphFormats = exports.ListFormatsToMove = exports.ListFormatsToKeep = exports.ListFormats = exports.copyFormat = exports.setParagraphNotImplicit = exports.normalizeSegmentFormat = exports.mergeTextSegments = exports.normalizeSingleSegment = exports.isEmpty = exports.addSegment = exports.unwrapBlock = exports.isGeneralSegment = exports.normalizeContentModel = exports.normalizeParagraph = exports.addTextSegment = exports.addLink = exports.addCode = exports.addBlock = exports.mutateSegment = exports.mutateSegments = exports.mutateBlock = exports.createTableRow = exports.createEmptyModel = exports.createListLevel = exports.createDivider = exports.createEntity = exports.createGeneralBlock = exports.createGeneralSegment = exports.createParagraphDecorator = exports.createContentModelDocument = void 0;
|
|
5
|
-
exports.
|
|
6
|
-
exports.EmptySegmentFormat = exports.UnorderedListStyleMap = exports.OrderedListStyleMap = exports.TableBorderFormat = exports.NumberingListType = exports.BulletListType = exports.ChangeSource = exports.ListMetadataDefinition = exports.getListMetadata = exports.updateListMetadata = exports.getTableMetadata = exports.updateTableMetadata = exports.getTableCellMetadata = exports.updateTableCellMetadata = exports.getImageMetadata = void 0;
|
|
5
|
+
exports.runEditSteps = exports.getClosestAncestorBlockGroupIndex = exports.getSegmentTextFormat = exports.getListStyleTypeFromString = exports.retrieveModelFormatState = exports.setTableCellBackgroundColor = exports.MIN_ALLOWED_TABLE_CELL_HEIGHT = exports.MIN_ALLOWED_TABLE_CELL_WIDTH = exports.normalizeTable = exports.setFirstColumnFormatBorders = exports.applyTableFormat = exports.deleteBlock = exports.deleteSegment = exports.deleteSelection = exports.mergeModel = exports.cloneModel = exports.setSelection = exports.hasSelectionInBlockGroup = exports.hasSelectionInSegment = exports.hasSelectionInBlock = exports.getSelectedCells = exports.getSelectedSegmentsAndParagraphs = exports.getSelectedSegments = exports.getSelectedParagraphs = exports.getOperationalBlocks = exports.getFirstSelectedTable = exports.getFirstSelectedListItem = exports.iterateSelections = exports.isBlockGroupOfType = exports.getRangesByText = exports.getImageState = exports.setImageState = exports.getParagraphMarker = exports.setParagraphMarker = exports.cacheGetEventData = exports.extractClipboardItems = exports.normalizeFontFamily = exports.transformColor = exports.retrieveDocumentMetadata = exports.readFile = exports.parseTableCells = exports.normalizeText = exports.isSpace = exports.isPunctuation = exports.extractBorderValues = exports.combineBorderValue = exports.getNodePositionFromEvent = exports.isCursorMovingKey = exports.isModifierKey = exports.isCharacterValue = void 0;
|
|
6
|
+
exports.EmptySegmentFormat = exports.UnorderedListStyleMap = exports.OrderedListStyleMap = exports.TableBorderFormat = exports.NumberingListType = exports.BulletListType = exports.ChangeSource = exports.ListMetadataDefinition = exports.getListMetadata = exports.updateListMetadata = exports.getTableMetadata = exports.updateTableMetadata = exports.getTableCellMetadata = exports.updateTableCellMetadata = exports.getImageMetadata = exports.updateImageMetadata = void 0;
|
|
7
7
|
var domToContentModel_1 = require("./domToModel/domToContentModel");
|
|
8
8
|
Object.defineProperty(exports, "domToContentModel", { enumerable: true, get: function () { return domToContentModel_1.domToContentModel; } });
|
|
9
9
|
var contentModelToDom_1 = require("./modelToDom/contentModelToDom");
|
|
@@ -180,6 +180,8 @@ var eventUtils_1 = require("./domUtils/event/eventUtils");
|
|
|
180
180
|
Object.defineProperty(exports, "isCharacterValue", { enumerable: true, get: function () { return eventUtils_1.isCharacterValue; } });
|
|
181
181
|
Object.defineProperty(exports, "isModifierKey", { enumerable: true, get: function () { return eventUtils_1.isModifierKey; } });
|
|
182
182
|
Object.defineProperty(exports, "isCursorMovingKey", { enumerable: true, get: function () { return eventUtils_1.isCursorMovingKey; } });
|
|
183
|
+
var getNodePositionFromEvent_1 = require("./domUtils/event/getNodePositionFromEvent");
|
|
184
|
+
Object.defineProperty(exports, "getNodePositionFromEvent", { enumerable: true, get: function () { return getNodePositionFromEvent_1.getNodePositionFromEvent; } });
|
|
183
185
|
var borderValues_1 = require("./domUtils/style/borderValues");
|
|
184
186
|
Object.defineProperty(exports, "combineBorderValue", { enumerable: true, get: function () { return borderValues_1.combineBorderValue; } });
|
|
185
187
|
Object.defineProperty(exports, "extractBorderValues", { enumerable: true, get: function () { return borderValues_1.extractBorderValues; } });
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../packages/roosterjs-content-model-dom/lib/index.ts"],"names":[],"mappings":"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","sourcesContent":["export { domToContentModel } from './domToModel/domToContentModel';\nexport { contentModelToDom } from './modelToDom/contentModelToDom';\nexport { contentModelToText } from './modelToText/contentModelToText';\n\nexport {\n childProcessor,\n handleRegularSelection,\n processChildNode,\n} from './domToModel/processors/childProcessor';\nexport { entityProcessor } from './domToModel/processors/entityProcessor';\nexport { tableProcessor } from './domToModel/processors/tableProcessor';\nexport { formatContainerProcessor } from './domToModel/processors/formatContainerProcessor';\nexport { getRegularSelectionOffsets } from './domToModel/utils/getRegularSelectionOffsets';\nexport { parseFormat } from './domToModel/utils/parseFormat';\nexport { areSameFormats } from './domToModel/utils/areSameFormats';\nexport { isBlockElement } from './domToModel/utils/isBlockElement';\nexport { buildSelectionMarker } from './domToModel/utils/buildSelectionMarker';\n\nexport { updateMetadata, getMetadata, hasMetadata } from './modelApi/metadata/updateMetadata';\nexport { isNodeOfType } from './domUtils/isNodeOfType';\nexport { isElementOfType } from './domUtils/isElementOfType';\nexport { getObjectKeys } from './domUtils/getObjectKeys';\nexport { getSafeIdSelector } from './domUtils/getSafeIdSelector';\nexport { toArray } from './domUtils/toArray';\nexport { moveChildNodes, wrapAllChildNodes } from './domUtils/moveChildNodes';\nexport { wrap } from './domUtils/wrap';\nexport { unwrap } from './domUtils/unwrap';\nexport {\n isEntityElement,\n findClosestEntityWrapper,\n getAllEntityWrappers,\n parseEntityFormat,\n generateEntityClassNames,\n addDelimiters,\n isEntityDelimiter,\n isBlockEntityContainer,\n findClosestBlockEntityContainer,\n} from './domUtils/entityUtils';\nexport { reuseCachedElement } from './domUtils/reuseCachedElement';\nexport { isWhiteSpacePreserved } from './domUtils/isWhiteSpacePreserved';\nexport { normalizeRect } from './domUtils/normalizeRect';\nexport { scrollRectIntoView } from './domUtils/scrollRectIntoView';\n\nexport { setLinkUndeletable, isLinkUndeletable } from './domUtils/hiddenProperties/undeletableLink';\n\nexport { createBr } from './modelApi/creators/createBr';\nexport { createListItem } from './modelApi/creators/createListItem';\nexport { createFormatContainer } from './modelApi/creators/createFormatContainer';\nexport { createParagraph } from './modelApi/creators/createParagraph';\nexport { createSelectionMarker } from './modelApi/creators/createSelectionMarker';\nexport { createTable } from './modelApi/creators/createTable';\nexport { createTableCell } from './modelApi/creators/createTableCell';\nexport { createText } from './modelApi/creators/createText';\nexport { createImage } from './modelApi/creators/createImage';\nexport { createContentModelDocument } from './modelApi/creators/createContentModelDocument';\nexport { createParagraphDecorator } from './modelApi/creators/createParagraphDecorator';\nexport { createGeneralSegment } from './modelApi/creators/createGeneralSegment';\nexport { createGeneralBlock } from './modelApi/creators/createGeneralBlock';\nexport { createEntity } from './modelApi/creators/createEntity';\nexport { createDivider } from './modelApi/creators/createDivider';\nexport { createListLevel } from './modelApi/creators/createListLevel';\nexport { createEmptyModel } from './modelApi/creators/createEmptyModel';\nexport { createTableRow } from './modelApi/creators/createTableRow';\n\nexport { mutateBlock, mutateSegments, mutateSegment } from './modelApi/common/mutate';\nexport { addBlock } from './modelApi/common/addBlock';\nexport { addCode } from './modelApi/common/addDecorators';\nexport { addLink } from './modelApi/common/addDecorators';\nexport { addTextSegment } from './modelApi/common/addTextSegment';\nexport { normalizeParagraph } from './modelApi/common/normalizeParagraph';\n\nexport { normalizeContentModel } from './modelApi/common/normalizeContentModel';\nexport { isGeneralSegment } from './modelApi/typeCheck/isGeneralSegment';\nexport { unwrapBlock } from './modelApi/common/unwrapBlock';\nexport { addSegment } from './modelApi/common/addSegment';\nexport { isEmpty } from './modelApi/common/isEmpty';\nexport { normalizeSingleSegment } from './modelApi/common/normalizeSegment';\nexport { mergeTextSegments } from './modelApi/common/mergeTextSegments';\nexport { normalizeSegmentFormat } from './modelApi/common/normalizeSegmentFormat';\n\nexport { setParagraphNotImplicit } from './modelApi/block/setParagraphNotImplicit';\nexport {\n copyFormat,\n ListFormats,\n ListFormatsToKeep,\n ListFormatsToMove,\n ParagraphFormats,\n} from './modelApi/block/copyFormat';\nexport { getOrderedListNumberStr } from './modelApi/list/getOrderedListNumberStr';\nexport { getAutoListStyleType } from './modelApi/list/getAutoListStyleType';\n\nexport { parseValueWithUnit } from './formatHandlers/utils/parseValueWithUnit';\nexport { BorderKeys } from './formatHandlers/utils/borderKeys';\nexport {\n DeprecatedColors,\n getColor,\n setColor,\n parseColor,\n defaultGenerateColorKey,\n} from './formatHandlers/utils/color';\n\nexport {\n createDomToModelContext,\n createDomToModelContextWithConfig,\n createDomToModelConfig,\n} from './domToModel/context/createDomToModelContext';\nexport {\n createModelToDomContext,\n createModelToDomContextWithConfig,\n createModelToDomConfig,\n} from './modelToDom/context/createModelToDomContext';\n\nexport { isBold } from './domUtils/style/isBold';\nexport { getSelectionRootNode } from './domUtils/selection/getSelectionRootNode';\nexport { getDOMInsertPointRect } from './domUtils/selection/getDOMInsertPointRect';\nexport { trimModelForSelection } from './domUtils/selection/trimModelForSelection';\nexport { isCharacterValue, isModifierKey, isCursorMovingKey } from './domUtils/event/eventUtils';\nexport { combineBorderValue, extractBorderValues } from './domUtils/style/borderValues';\nexport { isPunctuation, isSpace, normalizeText } from './domUtils/stringUtil';\nexport { parseTableCells } from './domUtils/table/parseTableCells';\nexport { readFile } from './domUtils/readFile';\nexport { retrieveDocumentMetadata } from './domUtils/retrieveDocumentMetadata';\nexport { transformColor, TransformColorOptions } from './domUtils/style/transformColor';\nexport { normalizeFontFamily } from './domUtils/style/normalizeFontFamily';\nexport { extractClipboardItems } from './domUtils/event/extractClipboardItems';\nexport { cacheGetEventData } from './domUtils/event/cacheGetEventData';\nexport {\n setParagraphMarker,\n getParagraphMarker,\n} from './domUtils/hiddenProperties/paragraphMarker';\nexport { setImageState, getImageState } from './domUtils/hiddenProperties/imageState';\nexport { getRangesByText } from './domUtils/getRangesByText';\n\nexport { isBlockGroupOfType } from './modelApi/typeCheck/isBlockGroupOfType';\n\nexport { iterateSelections } from './modelApi/selection/iterateSelections';\nexport {\n getFirstSelectedListItem,\n getFirstSelectedTable,\n getOperationalBlocks,\n getSelectedParagraphs,\n getSelectedSegments,\n getSelectedSegmentsAndParagraphs,\n} from './modelApi/selection/collectSelections';\nexport { getSelectedCells } from './modelApi/selection/getSelectedCells';\nexport { hasSelectionInBlock } from './modelApi/selection/hasSelectionInBlock';\nexport { hasSelectionInSegment } from './modelApi/selection/hasSelectionInSegment';\nexport { hasSelectionInBlockGroup } from './modelApi/selection/hasSelectionInBlockGroup';\nexport { setSelection } from './modelApi/selection/setSelection';\n\nexport { cloneModel } from './modelApi/editing/cloneModel';\nexport { mergeModel } from './modelApi/editing/mergeModel';\nexport { deleteSelection } from './modelApi/editing/deleteSelection';\nexport { deleteSegment } from './modelApi/editing/deleteSegment';\nexport { deleteBlock } from './modelApi/editing/deleteBlock';\nexport { applyTableFormat, setFirstColumnFormatBorders } from './modelApi/editing/applyTableFormat';\nexport {\n normalizeTable,\n MIN_ALLOWED_TABLE_CELL_WIDTH,\n MIN_ALLOWED_TABLE_CELL_HEIGHT,\n} from './modelApi/editing/normalizeTable';\nexport { setTableCellBackgroundColor } from './modelApi/editing/setTableCellBackgroundColor';\nexport { retrieveModelFormatState } from './modelApi/editing/retrieveModelFormatState';\nexport { getListStyleTypeFromString } from './modelApi/editing/getListStyleTypeFromString';\nexport { getSegmentTextFormat } from './modelApi/editing/getSegmentTextFormat';\nexport { getClosestAncestorBlockGroupIndex } from './modelApi/editing/getClosestAncestorBlockGroupIndex';\nexport { runEditSteps } from './modelApi/editing/runEditSteps';\n\nexport { updateImageMetadata, getImageMetadata } from './modelApi/metadata/updateImageMetadata';\nexport {\n updateTableCellMetadata,\n getTableCellMetadata,\n} from './modelApi/metadata/updateTableCellMetadata';\nexport { updateTableMetadata, getTableMetadata } from './modelApi/metadata/updateTableMetadata';\nexport {\n updateListMetadata,\n getListMetadata,\n ListMetadataDefinition,\n} from './modelApi/metadata/updateListMetadata';\n\nexport { ChangeSource } from './constants/ChangeSource';\nexport { BulletListType } from './constants/BulletListType';\nexport { NumberingListType } from './constants/NumberingListType';\nexport { TableBorderFormat } from './constants/TableBorderFormat';\nexport { OrderedListStyleMap } from './constants/OrderedListStyleMap';\nexport { UnorderedListStyleMap } from './constants/UnorderedListStyleMap';\nexport { EmptySegmentFormat } from './constants/EmptySegmentFormat';\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../packages/roosterjs-content-model-dom/lib/index.ts"],"names":[],"mappings":"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","sourcesContent":["export { domToContentModel } from './domToModel/domToContentModel';\nexport { contentModelToDom } from './modelToDom/contentModelToDom';\nexport { contentModelToText } from './modelToText/contentModelToText';\n\nexport {\n childProcessor,\n handleRegularSelection,\n processChildNode,\n} from './domToModel/processors/childProcessor';\nexport { entityProcessor } from './domToModel/processors/entityProcessor';\nexport { tableProcessor } from './domToModel/processors/tableProcessor';\nexport { formatContainerProcessor } from './domToModel/processors/formatContainerProcessor';\nexport { getRegularSelectionOffsets } from './domToModel/utils/getRegularSelectionOffsets';\nexport { parseFormat } from './domToModel/utils/parseFormat';\nexport { areSameFormats } from './domToModel/utils/areSameFormats';\nexport { isBlockElement } from './domToModel/utils/isBlockElement';\nexport { buildSelectionMarker } from './domToModel/utils/buildSelectionMarker';\n\nexport { updateMetadata, getMetadata, hasMetadata } from './modelApi/metadata/updateMetadata';\nexport { isNodeOfType } from './domUtils/isNodeOfType';\nexport { isElementOfType } from './domUtils/isElementOfType';\nexport { getObjectKeys } from './domUtils/getObjectKeys';\nexport { getSafeIdSelector } from './domUtils/getSafeIdSelector';\nexport { toArray } from './domUtils/toArray';\nexport { moveChildNodes, wrapAllChildNodes } from './domUtils/moveChildNodes';\nexport { wrap } from './domUtils/wrap';\nexport { unwrap } from './domUtils/unwrap';\nexport {\n isEntityElement,\n findClosestEntityWrapper,\n getAllEntityWrappers,\n parseEntityFormat,\n generateEntityClassNames,\n addDelimiters,\n isEntityDelimiter,\n isBlockEntityContainer,\n findClosestBlockEntityContainer,\n} from './domUtils/entityUtils';\nexport { reuseCachedElement } from './domUtils/reuseCachedElement';\nexport { isWhiteSpacePreserved } from './domUtils/isWhiteSpacePreserved';\nexport { normalizeRect } from './domUtils/normalizeRect';\nexport { scrollRectIntoView } from './domUtils/scrollRectIntoView';\n\nexport { setLinkUndeletable, isLinkUndeletable } from './domUtils/hiddenProperties/undeletableLink';\n\nexport { createBr } from './modelApi/creators/createBr';\nexport { createListItem } from './modelApi/creators/createListItem';\nexport { createFormatContainer } from './modelApi/creators/createFormatContainer';\nexport { createParagraph } from './modelApi/creators/createParagraph';\nexport { createSelectionMarker } from './modelApi/creators/createSelectionMarker';\nexport { createTable } from './modelApi/creators/createTable';\nexport { createTableCell } from './modelApi/creators/createTableCell';\nexport { createText } from './modelApi/creators/createText';\nexport { createImage } from './modelApi/creators/createImage';\nexport { createContentModelDocument } from './modelApi/creators/createContentModelDocument';\nexport { createParagraphDecorator } from './modelApi/creators/createParagraphDecorator';\nexport { createGeneralSegment } from './modelApi/creators/createGeneralSegment';\nexport { createGeneralBlock } from './modelApi/creators/createGeneralBlock';\nexport { createEntity } from './modelApi/creators/createEntity';\nexport { createDivider } from './modelApi/creators/createDivider';\nexport { createListLevel } from './modelApi/creators/createListLevel';\nexport { createEmptyModel } from './modelApi/creators/createEmptyModel';\nexport { createTableRow } from './modelApi/creators/createTableRow';\n\nexport { mutateBlock, mutateSegments, mutateSegment } from './modelApi/common/mutate';\nexport { addBlock } from './modelApi/common/addBlock';\nexport { addCode } from './modelApi/common/addDecorators';\nexport { addLink } from './modelApi/common/addDecorators';\nexport { addTextSegment } from './modelApi/common/addTextSegment';\nexport { normalizeParagraph } from './modelApi/common/normalizeParagraph';\n\nexport { normalizeContentModel } from './modelApi/common/normalizeContentModel';\nexport { isGeneralSegment } from './modelApi/typeCheck/isGeneralSegment';\nexport { unwrapBlock } from './modelApi/common/unwrapBlock';\nexport { addSegment } from './modelApi/common/addSegment';\nexport { isEmpty } from './modelApi/common/isEmpty';\nexport { normalizeSingleSegment } from './modelApi/common/normalizeSegment';\nexport { mergeTextSegments } from './modelApi/common/mergeTextSegments';\nexport { normalizeSegmentFormat } from './modelApi/common/normalizeSegmentFormat';\n\nexport { setParagraphNotImplicit } from './modelApi/block/setParagraphNotImplicit';\nexport {\n copyFormat,\n ListFormats,\n ListFormatsToKeep,\n ListFormatsToMove,\n ParagraphFormats,\n} from './modelApi/block/copyFormat';\nexport { getOrderedListNumberStr } from './modelApi/list/getOrderedListNumberStr';\nexport { getAutoListStyleType } from './modelApi/list/getAutoListStyleType';\n\nexport { parseValueWithUnit } from './formatHandlers/utils/parseValueWithUnit';\nexport { BorderKeys } from './formatHandlers/utils/borderKeys';\nexport {\n DeprecatedColors,\n getColor,\n setColor,\n parseColor,\n defaultGenerateColorKey,\n} from './formatHandlers/utils/color';\n\nexport {\n createDomToModelContext,\n createDomToModelContextWithConfig,\n createDomToModelConfig,\n} from './domToModel/context/createDomToModelContext';\nexport {\n createModelToDomContext,\n createModelToDomContextWithConfig,\n createModelToDomConfig,\n} from './modelToDom/context/createModelToDomContext';\n\nexport { isBold } from './domUtils/style/isBold';\nexport { getSelectionRootNode } from './domUtils/selection/getSelectionRootNode';\nexport { getDOMInsertPointRect } from './domUtils/selection/getDOMInsertPointRect';\nexport { trimModelForSelection } from './domUtils/selection/trimModelForSelection';\nexport { isCharacterValue, isModifierKey, isCursorMovingKey } from './domUtils/event/eventUtils';\nexport { getNodePositionFromEvent } from './domUtils/event/getNodePositionFromEvent';\nexport { combineBorderValue, extractBorderValues } from './domUtils/style/borderValues';\nexport { isPunctuation, isSpace, normalizeText } from './domUtils/stringUtil';\nexport { parseTableCells } from './domUtils/table/parseTableCells';\nexport { readFile } from './domUtils/readFile';\nexport { retrieveDocumentMetadata } from './domUtils/retrieveDocumentMetadata';\nexport { transformColor, TransformColorOptions } from './domUtils/style/transformColor';\nexport { normalizeFontFamily } from './domUtils/style/normalizeFontFamily';\nexport { extractClipboardItems } from './domUtils/event/extractClipboardItems';\nexport { cacheGetEventData } from './domUtils/event/cacheGetEventData';\nexport {\n setParagraphMarker,\n getParagraphMarker,\n} from './domUtils/hiddenProperties/paragraphMarker';\nexport { setImageState, getImageState } from './domUtils/hiddenProperties/imageState';\nexport { getRangesByText } from './domUtils/getRangesByText';\n\nexport { isBlockGroupOfType } from './modelApi/typeCheck/isBlockGroupOfType';\n\nexport { iterateSelections } from './modelApi/selection/iterateSelections';\nexport {\n getFirstSelectedListItem,\n getFirstSelectedTable,\n getOperationalBlocks,\n getSelectedParagraphs,\n getSelectedSegments,\n getSelectedSegmentsAndParagraphs,\n} from './modelApi/selection/collectSelections';\nexport { getSelectedCells } from './modelApi/selection/getSelectedCells';\nexport { hasSelectionInBlock } from './modelApi/selection/hasSelectionInBlock';\nexport { hasSelectionInSegment } from './modelApi/selection/hasSelectionInSegment';\nexport { hasSelectionInBlockGroup } from './modelApi/selection/hasSelectionInBlockGroup';\nexport { setSelection } from './modelApi/selection/setSelection';\n\nexport { cloneModel } from './modelApi/editing/cloneModel';\nexport { mergeModel } from './modelApi/editing/mergeModel';\nexport { deleteSelection } from './modelApi/editing/deleteSelection';\nexport { deleteSegment } from './modelApi/editing/deleteSegment';\nexport { deleteBlock } from './modelApi/editing/deleteBlock';\nexport { applyTableFormat, setFirstColumnFormatBorders } from './modelApi/editing/applyTableFormat';\nexport {\n normalizeTable,\n MIN_ALLOWED_TABLE_CELL_WIDTH,\n MIN_ALLOWED_TABLE_CELL_HEIGHT,\n} from './modelApi/editing/normalizeTable';\nexport { setTableCellBackgroundColor } from './modelApi/editing/setTableCellBackgroundColor';\nexport { retrieveModelFormatState } from './modelApi/editing/retrieveModelFormatState';\nexport { getListStyleTypeFromString } from './modelApi/editing/getListStyleTypeFromString';\nexport { getSegmentTextFormat } from './modelApi/editing/getSegmentTextFormat';\nexport { getClosestAncestorBlockGroupIndex } from './modelApi/editing/getClosestAncestorBlockGroupIndex';\nexport { runEditSteps } from './modelApi/editing/runEditSteps';\n\nexport { updateImageMetadata, getImageMetadata } from './modelApi/metadata/updateImageMetadata';\nexport {\n updateTableCellMetadata,\n getTableCellMetadata,\n} from './modelApi/metadata/updateTableCellMetadata';\nexport { updateTableMetadata, getTableMetadata } from './modelApi/metadata/updateTableMetadata';\nexport {\n updateListMetadata,\n getListMetadata,\n ListMetadataDefinition,\n} from './modelApi/metadata/updateListMetadata';\n\nexport { ChangeSource } from './constants/ChangeSource';\nexport { BulletListType } from './constants/BulletListType';\nexport { NumberingListType } from './constants/NumberingListType';\nexport { TableBorderFormat } from './constants/TableBorderFormat';\nexport { OrderedListStyleMap } from './constants/OrderedListStyleMap';\nexport { UnorderedListStyleMap } from './constants/UnorderedListStyleMap';\nexport { EmptySegmentFormat } from './constants/EmptySegmentFormat';\n"]}
|
|
@@ -34,23 +34,40 @@ var handleParagraph = function (doc, parent, paragraph, context, refNode) {
|
|
|
34
34
|
segment: null,
|
|
35
35
|
};
|
|
36
36
|
var handleSegments = function () {
|
|
37
|
+
var e_1, _a;
|
|
38
|
+
var _b;
|
|
37
39
|
var parent = container;
|
|
38
40
|
if (parent) {
|
|
39
41
|
var firstSegment = paragraph.segments[0];
|
|
42
|
+
var segmentContext = context;
|
|
40
43
|
if ((firstSegment === null || firstSegment === void 0 ? void 0 : firstSegment.segmentType) == 'SelectionMarker') {
|
|
41
44
|
// Make sure there is a segment created before selection marker.
|
|
42
45
|
// If selection marker is the first selected segment in a paragraph, create a dummy text node,
|
|
43
46
|
// so after rewrite, the regularSelection object can have a valid segment object set to the text node.
|
|
44
|
-
context.modelHandlers.text(doc, parent, (0, tslib_1.__assign)((0, tslib_1.__assign)({}, firstSegment), { segmentType: 'Text', text: '' }),
|
|
47
|
+
context.modelHandlers.text(doc, parent, (0, tslib_1.__assign)((0, tslib_1.__assign)({}, firstSegment), { segmentType: 'Text', text: '' }), segmentContext, []);
|
|
45
48
|
}
|
|
46
|
-
paragraph.segments.
|
|
49
|
+
for (var i = 0; i < paragraph.segments.length; i++) {
|
|
50
|
+
var segment = paragraph.segments[i];
|
|
51
|
+
segmentContext.noFollowingTextSegmentOrLast =
|
|
52
|
+
i === paragraph.segments.length - 1 ||
|
|
53
|
+
!hasTextSegmentAfter(paragraph.segments, i);
|
|
47
54
|
var newSegments = [];
|
|
48
|
-
context.modelHandlers.segment(doc, parent, segment,
|
|
49
|
-
|
|
50
|
-
var
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
55
|
+
context.modelHandlers.segment(doc, parent, segment, segmentContext, newSegments);
|
|
56
|
+
try {
|
|
57
|
+
for (var newSegments_1 = (e_1 = void 0, (0, tslib_1.__values)(newSegments)), newSegments_1_1 = newSegments_1.next(); !newSegments_1_1.done; newSegments_1_1 = newSegments_1.next()) {
|
|
58
|
+
var node = newSegments_1_1.value;
|
|
59
|
+
(_b = context.domIndexer) === null || _b === void 0 ? void 0 : _b.onSegment(node, paragraph, [segment]);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
63
|
+
finally {
|
|
64
|
+
try {
|
|
65
|
+
if (newSegments_1_1 && !newSegments_1_1.done && (_a = newSegments_1.return)) _a.call(newSegments_1);
|
|
66
|
+
}
|
|
67
|
+
finally { if (e_1) throw e_1.error; }
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
delete segmentContext.noFollowingTextSegmentOrLast;
|
|
54
71
|
}
|
|
55
72
|
};
|
|
56
73
|
if (needParagraphWrapper) {
|
|
@@ -90,4 +107,19 @@ var handleParagraph = function (doc, parent, paragraph, context, refNode) {
|
|
|
90
107
|
return refNode;
|
|
91
108
|
};
|
|
92
109
|
exports.handleParagraph = handleParagraph;
|
|
110
|
+
function hasTextSegmentAfter(segments, index) {
|
|
111
|
+
for (var i = index + 1; i < segments.length; i++) {
|
|
112
|
+
var type = segments[i].segmentType;
|
|
113
|
+
if (type === 'SelectionMarker') {
|
|
114
|
+
continue;
|
|
115
|
+
}
|
|
116
|
+
if (type === 'Text') {
|
|
117
|
+
return true;
|
|
118
|
+
}
|
|
119
|
+
else {
|
|
120
|
+
return false;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
return false;
|
|
124
|
+
}
|
|
93
125
|
//# sourceMappingURL=handleParagraph.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handleParagraph.js","sourceRoot":"","sources":["../../../../../packages/roosterjs-content-model-dom/lib/modelToDom/handlers/handleParagraph.ts"],"names":[],"mappings":"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","sourcesContent":["import { applyFormat } from '../utils/applyFormat';\nimport { getObjectKeys } from '../../domUtils/getObjectKeys';\nimport { optimize } from '../optimizers/optimize';\nimport { reuseCachedElement } from '../../domUtils/reuseCachedElement';\nimport { stackFormat } from '../utils/stackFormat';\nimport { unwrap } from '../../domUtils/unwrap';\nimport type {\n ContentModelBlockHandler,\n ContentModelParagraph,\n ModelToDomContext,\n} from 'roosterjs-content-model-types';\n\nconst DefaultParagraphTag = 'div';\n\n/**\n * @internal\n */\nexport const handleParagraph: ContentModelBlockHandler<ContentModelParagraph> = (\n doc: Document,\n parent: Node,\n paragraph: ContentModelParagraph,\n context: ModelToDomContext,\n refNode: Node | null\n) => {\n let container = context.allowCacheElement ? paragraph.cachedElement : undefined;\n\n if (container && paragraph.segments.every(x => x.segmentType != 'General' && !x.isSelected)) {\n refNode = reuseCachedElement(parent, container, refNode, context.rewriteFromModel);\n } else {\n stackFormat(context, paragraph.decorator?.tagName || null, () => {\n const needParagraphWrapper =\n !paragraph.isImplicit ||\n !!paragraph.decorator ||\n (getObjectKeys(paragraph.format).length > 0 &&\n paragraph.segments.some(segment => segment.segmentType != 'SelectionMarker'));\n const formatOnWrapper = needParagraphWrapper\n ? {\n ...(paragraph.decorator?.format || {}),\n ...paragraph.segmentFormat,\n }\n : {};\n\n container = doc.createElement(paragraph.decorator?.tagName || DefaultParagraphTag);\n\n parent.insertBefore(container, refNode);\n\n context.regularSelection.current = {\n block: needParagraphWrapper ? container : container.parentNode,\n segment: null,\n };\n\n const handleSegments = () => {\n const parent = container;\n\n if (parent) {\n const firstSegment = paragraph.segments[0];\n\n if (firstSegment?.segmentType == 'SelectionMarker') {\n // Make sure there is a segment created before selection marker.\n // If selection marker is the first selected segment in a paragraph, create a dummy text node,\n // so after rewrite, the regularSelection object can have a valid segment object set to the text node.\n context.modelHandlers.text(\n doc,\n parent,\n {\n ...firstSegment,\n segmentType: 'Text',\n text: '',\n },\n context,\n []\n );\n }\n\n paragraph.segments.forEach(segment => {\n const newSegments: Node[] = [];\n context.modelHandlers.segment(doc, parent, segment, context, newSegments);\n\n newSegments.forEach(node => {\n context.domIndexer?.onSegment(node, paragraph, [segment]);\n });\n });\n }\n };\n\n if (needParagraphWrapper) {\n stackFormat(context, formatOnWrapper, handleSegments);\n\n applyFormat(container, context.formatAppliers.block, paragraph.format, context);\n applyFormat(container, context.formatAppliers.container, paragraph.format, context);\n applyFormat(\n container,\n context.formatAppliers.segmentOnBlock,\n formatOnWrapper,\n context\n );\n\n context.paragraphMap?.applyMarkerToDom(container, paragraph);\n } else {\n handleSegments();\n }\n\n optimize(container, context);\n\n // It is possible the next sibling node is changed during processing child segments\n // e.g. When this paragraph is an implicit paragraph and it contains an inline entity segment\n // The segment will be appended to container as child then the container will be removed\n // since this paragraph it is implicit. In that case container.nextSibling will become original\n // inline entity's next sibling. So reset refNode to its real next sibling (after change) here\n // to make sure the value is correct.\n refNode = container.nextSibling;\n\n if (container) {\n context.onNodeCreated?.(paragraph, container);\n context.domIndexer?.onParagraph(container);\n }\n\n if (needParagraphWrapper) {\n if (context.allowCacheElement) {\n paragraph.cachedElement = container;\n }\n\n context.rewriteFromModel.addedBlockElements.push(container);\n } else {\n unwrap(container);\n container = undefined;\n }\n });\n }\n\n return refNode;\n};\n"]}
|
|
1
|
+
{"version":3,"file":"handleParagraph.js","sourceRoot":"","sources":["../../../../../packages/roosterjs-content-model-dom/lib/modelToDom/handlers/handleParagraph.ts"],"names":[],"mappings":"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","sourcesContent":["import { applyFormat } from '../utils/applyFormat';\nimport { getObjectKeys } from '../../domUtils/getObjectKeys';\nimport { optimize } from '../optimizers/optimize';\nimport { reuseCachedElement } from '../../domUtils/reuseCachedElement';\nimport { stackFormat } from '../utils/stackFormat';\nimport { unwrap } from '../../domUtils/unwrap';\nimport type {\n ContentModelBlockHandler,\n ContentModelParagraph,\n ContentModelSegment,\n ModelToDomContext,\n ModelToDomSegmentContext,\n} from 'roosterjs-content-model-types';\n\nconst DefaultParagraphTag = 'div';\n\n/**\n * @internal\n */\nexport const handleParagraph: ContentModelBlockHandler<ContentModelParagraph> = (\n doc: Document,\n parent: Node,\n paragraph: ContentModelParagraph,\n context: ModelToDomContext,\n refNode: Node | null\n) => {\n let container = context.allowCacheElement ? paragraph.cachedElement : undefined;\n\n if (container && paragraph.segments.every(x => x.segmentType != 'General' && !x.isSelected)) {\n refNode = reuseCachedElement(parent, container, refNode, context.rewriteFromModel);\n } else {\n stackFormat(context, paragraph.decorator?.tagName || null, () => {\n const needParagraphWrapper =\n !paragraph.isImplicit ||\n !!paragraph.decorator ||\n (getObjectKeys(paragraph.format).length > 0 &&\n paragraph.segments.some(segment => segment.segmentType != 'SelectionMarker'));\n const formatOnWrapper = needParagraphWrapper\n ? {\n ...(paragraph.decorator?.format || {}),\n ...paragraph.segmentFormat,\n }\n : {};\n\n container = doc.createElement(paragraph.decorator?.tagName || DefaultParagraphTag);\n\n parent.insertBefore(container, refNode);\n\n context.regularSelection.current = {\n block: needParagraphWrapper ? container : container.parentNode,\n segment: null,\n };\n\n const handleSegments = () => {\n const parent = container;\n\n if (parent) {\n const firstSegment = paragraph.segments[0];\n\n const segmentContext: ModelToDomSegmentContext = context;\n\n if (firstSegment?.segmentType == 'SelectionMarker') {\n // Make sure there is a segment created before selection marker.\n // If selection marker is the first selected segment in a paragraph, create a dummy text node,\n // so after rewrite, the regularSelection object can have a valid segment object set to the text node.\n context.modelHandlers.text(\n doc,\n parent,\n {\n ...firstSegment,\n segmentType: 'Text',\n text: '',\n },\n segmentContext,\n []\n );\n }\n\n for (let i = 0; i < paragraph.segments.length; i++) {\n const segment = paragraph.segments[i];\n\n segmentContext.noFollowingTextSegmentOrLast =\n i === paragraph.segments.length - 1 ||\n !hasTextSegmentAfter(paragraph.segments, i);\n\n const newSegments: Node[] = [];\n context.modelHandlers.segment(\n doc,\n parent,\n segment,\n segmentContext,\n newSegments\n );\n\n for (const node of newSegments) {\n context.domIndexer?.onSegment(node, paragraph, [segment]);\n }\n }\n\n delete segmentContext.noFollowingTextSegmentOrLast;\n }\n };\n\n if (needParagraphWrapper) {\n stackFormat(context, formatOnWrapper, handleSegments);\n\n applyFormat(container, context.formatAppliers.block, paragraph.format, context);\n applyFormat(container, context.formatAppliers.container, paragraph.format, context);\n applyFormat(\n container,\n context.formatAppliers.segmentOnBlock,\n formatOnWrapper,\n context\n );\n\n context.paragraphMap?.applyMarkerToDom(container, paragraph);\n } else {\n handleSegments();\n }\n\n optimize(container, context);\n\n // It is possible the next sibling node is changed during processing child segments\n // e.g. When this paragraph is an implicit paragraph and it contains an inline entity segment\n // The segment will be appended to container as child then the container will be removed\n // since this paragraph it is implicit. In that case container.nextSibling will become original\n // inline entity's next sibling. So reset refNode to its real next sibling (after change) here\n // to make sure the value is correct.\n refNode = container.nextSibling;\n\n if (container) {\n context.onNodeCreated?.(paragraph, container);\n context.domIndexer?.onParagraph(container);\n }\n\n if (needParagraphWrapper) {\n if (context.allowCacheElement) {\n paragraph.cachedElement = container;\n }\n\n context.rewriteFromModel.addedBlockElements.push(container);\n } else {\n unwrap(container);\n container = undefined;\n }\n });\n }\n\n return refNode;\n};\n\nfunction hasTextSegmentAfter(segments: ReadonlyArray<ContentModelSegment>, index: number): boolean {\n for (let i = index + 1; i < segments.length; i++) {\n const type = segments[i].segmentType;\n if (type === 'SelectionMarker') {\n continue;\n }\n if (type === 'Text') {\n return true;\n } else {\n return false;\n }\n }\n return false;\n}\n"]}
|
|
@@ -2,11 +2,15 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.handleText = void 0;
|
|
4
4
|
var handleSegmentCommon_1 = require("../utils/handleSegmentCommon");
|
|
5
|
+
var nonBreakingSpace = '\u00A0';
|
|
5
6
|
/**
|
|
6
7
|
* @internal
|
|
7
8
|
*/
|
|
8
9
|
var handleText = function (doc, parent, segment, context, segmentNodes) {
|
|
9
|
-
var
|
|
10
|
+
var textContent = context.noFollowingTextSegmentOrLast && segment.text.endsWith(' ')
|
|
11
|
+
? segment.text.slice(0, -1) + nonBreakingSpace
|
|
12
|
+
: segment.text;
|
|
13
|
+
var txt = doc.createTextNode(textContent);
|
|
10
14
|
var element = doc.createElement('span');
|
|
11
15
|
parent.appendChild(element);
|
|
12
16
|
element.appendChild(txt);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handleText.js","sourceRoot":"","sources":["../../../../../packages/roosterjs-content-model-dom/lib/modelToDom/handlers/handleText.ts"],"names":[],"mappings":";;;AAAA,oEAAmE;AAGnE;;GAEG;AACI,IAAM,UAAU,GAAiD,UACpE,GAAG,EACH,MAAM,EACN,OAAO,EACP,OAAO,EACP,YAAY;IAEZ,IAAM,
|
|
1
|
+
{"version":3,"file":"handleText.js","sourceRoot":"","sources":["../../../../../packages/roosterjs-content-model-dom/lib/modelToDom/handlers/handleText.ts"],"names":[],"mappings":";;;AAAA,oEAAmE;AAGnE,IAAM,gBAAgB,GAAG,QAAQ,CAAC;AAElC;;GAEG;AACI,IAAM,UAAU,GAAiD,UACpE,GAAG,EACH,MAAM,EACN,OAAO,EACP,OAAO,EACP,YAAY;IAEZ,IAAM,WAAW,GACb,OAAO,CAAC,4BAA4B,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;QAC9D,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,gBAAgB;QAC9C,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;IACvB,IAAM,GAAG,GAAG,GAAG,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;IAC5C,IAAM,OAAO,GAAG,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IAE1C,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC5B,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAEzB,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,UAAA,OAAO,IAAI,OAAA,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,EAArC,CAAqC,CAAC,CAAC;IAEtF,IAAA,yCAAmB,EAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;AAC3E,CAAC,CAAC;AApBW,QAAA,UAAU,cAoBrB","sourcesContent":["import { handleSegmentCommon } from '../utils/handleSegmentCommon';\nimport type { ContentModelSegmentHandler, ContentModelText } from 'roosterjs-content-model-types';\n\nconst nonBreakingSpace = '\\u00A0';\n\n/**\n * @internal\n */\nexport const handleText: ContentModelSegmentHandler<ContentModelText> = (\n doc,\n parent,\n segment,\n context,\n segmentNodes\n) => {\n const textContent =\n context.noFollowingTextSegmentOrLast && segment.text.endsWith(' ')\n ? segment.text.slice(0, -1) + nonBreakingSpace\n : segment.text;\n const txt = doc.createTextNode(textContent);\n const element = doc.createElement('span');\n\n parent.appendChild(element);\n element.appendChild(txt);\n\n context.formatAppliers.text.forEach(applier => applier(segment.format, txt, context));\n\n handleSegmentCommon(doc, txt, element, segment, context, segmentNodes);\n};\n"]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { DOMHelper, DOMInsertPoint } from 'roosterjs-content-model-types';
|
|
2
|
+
/**
|
|
3
|
+
* Get insertion point from coordinate.
|
|
4
|
+
* @param doc Parent document object
|
|
5
|
+
* @param domHelper The DOM helper of the editor
|
|
6
|
+
* @param x The cursor coordinate for the x-axis
|
|
7
|
+
* @param y The cursor coordinate for the y-axis
|
|
8
|
+
*/
|
|
9
|
+
export declare function getNodePositionFromEvent(doc: Document, domHelper: DOMHelper, x: number, y: number): DOMInsertPoint | null;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
define(["require", "exports"], function (require, exports) {
|
|
2
|
+
"use strict";
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.getNodePositionFromEvent = void 0;
|
|
5
|
+
/**
|
|
6
|
+
* Get insertion point from coordinate.
|
|
7
|
+
* @param doc Parent document object
|
|
8
|
+
* @param domHelper The DOM helper of the editor
|
|
9
|
+
* @param x The cursor coordinate for the x-axis
|
|
10
|
+
* @param y The cursor coordinate for the y-axis
|
|
11
|
+
*/
|
|
12
|
+
function getNodePositionFromEvent(doc, domHelper, x, y) {
|
|
13
|
+
if ('caretPositionFromPoint' in doc) {
|
|
14
|
+
// Firefox, Chrome, Edge, Safari, Opera
|
|
15
|
+
var pos = doc.caretPositionFromPoint(x, y);
|
|
16
|
+
if (pos && domHelper.isNodeInEditor(pos.offsetNode)) {
|
|
17
|
+
return { node: pos.offsetNode, offset: pos.offset };
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
if (doc.caretRangeFromPoint) {
|
|
21
|
+
// Safari
|
|
22
|
+
var range = doc.caretRangeFromPoint(x, y);
|
|
23
|
+
if (range && domHelper.isNodeInEditor(range.startContainer)) {
|
|
24
|
+
return { node: range.startContainer, offset: range.startOffset };
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
if (doc.elementFromPoint) {
|
|
28
|
+
// Fallback
|
|
29
|
+
var element = doc.elementFromPoint(x, y);
|
|
30
|
+
if (element && domHelper.isNodeInEditor(element)) {
|
|
31
|
+
return { node: element, offset: 0 };
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
return null;
|
|
35
|
+
}
|
|
36
|
+
exports.getNodePositionFromEvent = getNodePositionFromEvent;
|
|
37
|
+
});
|
|
38
|
+
//# sourceMappingURL=getNodePositionFromEvent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getNodePositionFromEvent.js","sourceRoot":"","sources":["../../../../../packages/roosterjs-content-model-dom/lib/domUtils/event/getNodePositionFromEvent.ts"],"names":[],"mappings":";;;;IAEA;;;;;;OAMG;IACH,SAAgB,wBAAwB,CACpC,GAAa,EACb,SAAoB,EACpB,CAAS,EACT,CAAS;QAET,IAAI,wBAAwB,IAAI,GAAG,EAAE;YACjC,uCAAuC;YACvC,IAAM,GAAG,GAAI,GAAW,CAAC,sBAAsB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACtD,IAAI,GAAG,IAAI,SAAS,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;gBACjD,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC;aACvD;SACJ;QAED,IAAI,GAAG,CAAC,mBAAmB,EAAE;YACzB,SAAS;YACT,IAAM,KAAK,GAAG,GAAG,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC5C,IAAI,KAAK,IAAI,SAAS,CAAC,cAAc,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE;gBACzD,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,cAAc,EAAE,MAAM,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC;aACpE;SACJ;QAED,IAAI,GAAG,CAAC,gBAAgB,EAAE;YACtB,WAAW;YACX,IAAM,OAAO,GAAG,GAAG,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC3C,IAAI,OAAO,IAAI,SAAS,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE;gBAC9C,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;aACvC;SACJ;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IA/BD,4DA+BC","sourcesContent":["import type { DOMHelper, DOMInsertPoint } from 'roosterjs-content-model-types';\n\n/**\n * Get insertion point from coordinate.\n * @param doc Parent document object\n * @param domHelper The DOM helper of the editor\n * @param x The cursor coordinate for the x-axis\n * @param y The cursor coordinate for the y-axis\n */\nexport function getNodePositionFromEvent(\n doc: Document,\n domHelper: DOMHelper,\n x: number,\n y: number\n): DOMInsertPoint | null {\n if ('caretPositionFromPoint' in doc) {\n // Firefox, Chrome, Edge, Safari, Opera\n const pos = (doc as any).caretPositionFromPoint(x, y);\n if (pos && domHelper.isNodeInEditor(pos.offsetNode)) {\n return { node: pos.offsetNode, offset: pos.offset };\n }\n }\n\n if (doc.caretRangeFromPoint) {\n // Safari\n const range = doc.caretRangeFromPoint(x, y);\n if (range && domHelper.isNodeInEditor(range.startContainer)) {\n return { node: range.startContainer, offset: range.startOffset };\n }\n }\n\n if (doc.elementFromPoint) {\n // Fallback\n const element = doc.elementFromPoint(x, y);\n if (element && domHelper.isNodeInEditor(element)) {\n return { node: element, offset: 0 };\n }\n }\n\n return null;\n}\n"]}
|
package/lib-amd/index.d.ts
CHANGED
|
@@ -71,6 +71,7 @@ export { getSelectionRootNode } from './domUtils/selection/getSelectionRootNode'
|
|
|
71
71
|
export { getDOMInsertPointRect } from './domUtils/selection/getDOMInsertPointRect';
|
|
72
72
|
export { trimModelForSelection } from './domUtils/selection/trimModelForSelection';
|
|
73
73
|
export { isCharacterValue, isModifierKey, isCursorMovingKey } from './domUtils/event/eventUtils';
|
|
74
|
+
export { getNodePositionFromEvent } from './domUtils/event/getNodePositionFromEvent';
|
|
74
75
|
export { combineBorderValue, extractBorderValues } from './domUtils/style/borderValues';
|
|
75
76
|
export { isPunctuation, isSpace, normalizeText } from './domUtils/stringUtil';
|
|
76
77
|
export { parseTableCells } from './domUtils/table/parseTableCells';
|
package/lib-amd/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
define(["require", "exports", "./domToModel/domToContentModel", "./modelToDom/contentModelToDom", "./modelToText/contentModelToText", "./domToModel/processors/childProcessor", "./domToModel/processors/entityProcessor", "./domToModel/processors/tableProcessor", "./domToModel/processors/formatContainerProcessor", "./domToModel/utils/getRegularSelectionOffsets", "./domToModel/utils/parseFormat", "./domToModel/utils/areSameFormats", "./domToModel/utils/isBlockElement", "./domToModel/utils/buildSelectionMarker", "./modelApi/metadata/updateMetadata", "./domUtils/isNodeOfType", "./domUtils/isElementOfType", "./domUtils/getObjectKeys", "./domUtils/getSafeIdSelector", "./domUtils/toArray", "./domUtils/moveChildNodes", "./domUtils/wrap", "./domUtils/unwrap", "./domUtils/entityUtils", "./domUtils/reuseCachedElement", "./domUtils/isWhiteSpacePreserved", "./domUtils/normalizeRect", "./domUtils/scrollRectIntoView", "./domUtils/hiddenProperties/undeletableLink", "./modelApi/creators/createBr", "./modelApi/creators/createListItem", "./modelApi/creators/createFormatContainer", "./modelApi/creators/createParagraph", "./modelApi/creators/createSelectionMarker", "./modelApi/creators/createTable", "./modelApi/creators/createTableCell", "./modelApi/creators/createText", "./modelApi/creators/createImage", "./modelApi/creators/createContentModelDocument", "./modelApi/creators/createParagraphDecorator", "./modelApi/creators/createGeneralSegment", "./modelApi/creators/createGeneralBlock", "./modelApi/creators/createEntity", "./modelApi/creators/createDivider", "./modelApi/creators/createListLevel", "./modelApi/creators/createEmptyModel", "./modelApi/creators/createTableRow", "./modelApi/common/mutate", "./modelApi/common/addBlock", "./modelApi/common/addDecorators", "./modelApi/common/addDecorators", "./modelApi/common/addTextSegment", "./modelApi/common/normalizeParagraph", "./modelApi/common/normalizeContentModel", "./modelApi/typeCheck/isGeneralSegment", "./modelApi/common/unwrapBlock", "./modelApi/common/addSegment", "./modelApi/common/isEmpty", "./modelApi/common/normalizeSegment", "./modelApi/common/mergeTextSegments", "./modelApi/common/normalizeSegmentFormat", "./modelApi/block/setParagraphNotImplicit", "./modelApi/block/copyFormat", "./modelApi/list/getOrderedListNumberStr", "./modelApi/list/getAutoListStyleType", "./formatHandlers/utils/parseValueWithUnit", "./formatHandlers/utils/borderKeys", "./formatHandlers/utils/color", "./domToModel/context/createDomToModelContext", "./modelToDom/context/createModelToDomContext", "./domUtils/style/isBold", "./domUtils/selection/getSelectionRootNode", "./domUtils/selection/getDOMInsertPointRect", "./domUtils/selection/trimModelForSelection", "./domUtils/event/eventUtils", "./domUtils/style/borderValues", "./domUtils/stringUtil", "./domUtils/table/parseTableCells", "./domUtils/readFile", "./domUtils/retrieveDocumentMetadata", "./domUtils/style/transformColor", "./domUtils/style/normalizeFontFamily", "./domUtils/event/extractClipboardItems", "./domUtils/event/cacheGetEventData", "./domUtils/hiddenProperties/paragraphMarker", "./domUtils/hiddenProperties/imageState", "./domUtils/getRangesByText", "./modelApi/typeCheck/isBlockGroupOfType", "./modelApi/selection/iterateSelections", "./modelApi/selection/collectSelections", "./modelApi/selection/getSelectedCells", "./modelApi/selection/hasSelectionInBlock", "./modelApi/selection/hasSelectionInSegment", "./modelApi/selection/hasSelectionInBlockGroup", "./modelApi/selection/setSelection", "./modelApi/editing/cloneModel", "./modelApi/editing/mergeModel", "./modelApi/editing/deleteSelection", "./modelApi/editing/deleteSegment", "./modelApi/editing/deleteBlock", "./modelApi/editing/applyTableFormat", "./modelApi/editing/normalizeTable", "./modelApi/editing/setTableCellBackgroundColor", "./modelApi/editing/retrieveModelFormatState", "./modelApi/editing/getListStyleTypeFromString", "./modelApi/editing/getSegmentTextFormat", "./modelApi/editing/getClosestAncestorBlockGroupIndex", "./modelApi/editing/runEditSteps", "./modelApi/metadata/updateImageMetadata", "./modelApi/metadata/updateTableCellMetadata", "./modelApi/metadata/updateTableMetadata", "./modelApi/metadata/updateListMetadata", "./constants/ChangeSource", "./constants/BulletListType", "./constants/NumberingListType", "./constants/TableBorderFormat", "./constants/OrderedListStyleMap", "./constants/UnorderedListStyleMap", "./constants/EmptySegmentFormat"], function (require, exports, domToContentModel_1, contentModelToDom_1, contentModelToText_1, childProcessor_1, entityProcessor_1, tableProcessor_1, formatContainerProcessor_1, getRegularSelectionOffsets_1, parseFormat_1, areSameFormats_1, isBlockElement_1, buildSelectionMarker_1, updateMetadata_1, isNodeOfType_1, isElementOfType_1, getObjectKeys_1, getSafeIdSelector_1, toArray_1, moveChildNodes_1, wrap_1, unwrap_1, entityUtils_1, reuseCachedElement_1, isWhiteSpacePreserved_1, normalizeRect_1, scrollRectIntoView_1, undeletableLink_1, createBr_1, createListItem_1, createFormatContainer_1, createParagraph_1, createSelectionMarker_1, createTable_1, createTableCell_1, createText_1, createImage_1, createContentModelDocument_1, createParagraphDecorator_1, createGeneralSegment_1, createGeneralBlock_1, createEntity_1, createDivider_1, createListLevel_1, createEmptyModel_1, createTableRow_1, mutate_1, addBlock_1, addDecorators_1, addDecorators_2, addTextSegment_1, normalizeParagraph_1, normalizeContentModel_1, isGeneralSegment_1, unwrapBlock_1, addSegment_1, isEmpty_1, normalizeSegment_1, mergeTextSegments_1, normalizeSegmentFormat_1, setParagraphNotImplicit_1, copyFormat_1, getOrderedListNumberStr_1, getAutoListStyleType_1, parseValueWithUnit_1, borderKeys_1, color_1, createDomToModelContext_1, createModelToDomContext_1, isBold_1, getSelectionRootNode_1, getDOMInsertPointRect_1, trimModelForSelection_1, eventUtils_1, borderValues_1, stringUtil_1, parseTableCells_1, readFile_1, retrieveDocumentMetadata_1, transformColor_1, normalizeFontFamily_1, extractClipboardItems_1, cacheGetEventData_1, paragraphMarker_1, imageState_1, getRangesByText_1, isBlockGroupOfType_1, iterateSelections_1, collectSelections_1, getSelectedCells_1, hasSelectionInBlock_1, hasSelectionInSegment_1, hasSelectionInBlockGroup_1, setSelection_1, cloneModel_1, mergeModel_1, deleteSelection_1, deleteSegment_1, deleteBlock_1, applyTableFormat_1, normalizeTable_1, setTableCellBackgroundColor_1, retrieveModelFormatState_1, getListStyleTypeFromString_1, getSegmentTextFormat_1, getClosestAncestorBlockGroupIndex_1, runEditSteps_1, updateImageMetadata_1, updateTableCellMetadata_1, updateTableMetadata_1, updateListMetadata_1, ChangeSource_1, BulletListType_1, NumberingListType_1, TableBorderFormat_1, OrderedListStyleMap_1, UnorderedListStyleMap_1, EmptySegmentFormat_1) {
|
|
1
|
+
define(["require", "exports", "./domToModel/domToContentModel", "./modelToDom/contentModelToDom", "./modelToText/contentModelToText", "./domToModel/processors/childProcessor", "./domToModel/processors/entityProcessor", "./domToModel/processors/tableProcessor", "./domToModel/processors/formatContainerProcessor", "./domToModel/utils/getRegularSelectionOffsets", "./domToModel/utils/parseFormat", "./domToModel/utils/areSameFormats", "./domToModel/utils/isBlockElement", "./domToModel/utils/buildSelectionMarker", "./modelApi/metadata/updateMetadata", "./domUtils/isNodeOfType", "./domUtils/isElementOfType", "./domUtils/getObjectKeys", "./domUtils/getSafeIdSelector", "./domUtils/toArray", "./domUtils/moveChildNodes", "./domUtils/wrap", "./domUtils/unwrap", "./domUtils/entityUtils", "./domUtils/reuseCachedElement", "./domUtils/isWhiteSpacePreserved", "./domUtils/normalizeRect", "./domUtils/scrollRectIntoView", "./domUtils/hiddenProperties/undeletableLink", "./modelApi/creators/createBr", "./modelApi/creators/createListItem", "./modelApi/creators/createFormatContainer", "./modelApi/creators/createParagraph", "./modelApi/creators/createSelectionMarker", "./modelApi/creators/createTable", "./modelApi/creators/createTableCell", "./modelApi/creators/createText", "./modelApi/creators/createImage", "./modelApi/creators/createContentModelDocument", "./modelApi/creators/createParagraphDecorator", "./modelApi/creators/createGeneralSegment", "./modelApi/creators/createGeneralBlock", "./modelApi/creators/createEntity", "./modelApi/creators/createDivider", "./modelApi/creators/createListLevel", "./modelApi/creators/createEmptyModel", "./modelApi/creators/createTableRow", "./modelApi/common/mutate", "./modelApi/common/addBlock", "./modelApi/common/addDecorators", "./modelApi/common/addDecorators", "./modelApi/common/addTextSegment", "./modelApi/common/normalizeParagraph", "./modelApi/common/normalizeContentModel", "./modelApi/typeCheck/isGeneralSegment", "./modelApi/common/unwrapBlock", "./modelApi/common/addSegment", "./modelApi/common/isEmpty", "./modelApi/common/normalizeSegment", "./modelApi/common/mergeTextSegments", "./modelApi/common/normalizeSegmentFormat", "./modelApi/block/setParagraphNotImplicit", "./modelApi/block/copyFormat", "./modelApi/list/getOrderedListNumberStr", "./modelApi/list/getAutoListStyleType", "./formatHandlers/utils/parseValueWithUnit", "./formatHandlers/utils/borderKeys", "./formatHandlers/utils/color", "./domToModel/context/createDomToModelContext", "./modelToDom/context/createModelToDomContext", "./domUtils/style/isBold", "./domUtils/selection/getSelectionRootNode", "./domUtils/selection/getDOMInsertPointRect", "./domUtils/selection/trimModelForSelection", "./domUtils/event/eventUtils", "./domUtils/event/getNodePositionFromEvent", "./domUtils/style/borderValues", "./domUtils/stringUtil", "./domUtils/table/parseTableCells", "./domUtils/readFile", "./domUtils/retrieveDocumentMetadata", "./domUtils/style/transformColor", "./domUtils/style/normalizeFontFamily", "./domUtils/event/extractClipboardItems", "./domUtils/event/cacheGetEventData", "./domUtils/hiddenProperties/paragraphMarker", "./domUtils/hiddenProperties/imageState", "./domUtils/getRangesByText", "./modelApi/typeCheck/isBlockGroupOfType", "./modelApi/selection/iterateSelections", "./modelApi/selection/collectSelections", "./modelApi/selection/getSelectedCells", "./modelApi/selection/hasSelectionInBlock", "./modelApi/selection/hasSelectionInSegment", "./modelApi/selection/hasSelectionInBlockGroup", "./modelApi/selection/setSelection", "./modelApi/editing/cloneModel", "./modelApi/editing/mergeModel", "./modelApi/editing/deleteSelection", "./modelApi/editing/deleteSegment", "./modelApi/editing/deleteBlock", "./modelApi/editing/applyTableFormat", "./modelApi/editing/normalizeTable", "./modelApi/editing/setTableCellBackgroundColor", "./modelApi/editing/retrieveModelFormatState", "./modelApi/editing/getListStyleTypeFromString", "./modelApi/editing/getSegmentTextFormat", "./modelApi/editing/getClosestAncestorBlockGroupIndex", "./modelApi/editing/runEditSteps", "./modelApi/metadata/updateImageMetadata", "./modelApi/metadata/updateTableCellMetadata", "./modelApi/metadata/updateTableMetadata", "./modelApi/metadata/updateListMetadata", "./constants/ChangeSource", "./constants/BulletListType", "./constants/NumberingListType", "./constants/TableBorderFormat", "./constants/OrderedListStyleMap", "./constants/UnorderedListStyleMap", "./constants/EmptySegmentFormat"], function (require, exports, domToContentModel_1, contentModelToDom_1, contentModelToText_1, childProcessor_1, entityProcessor_1, tableProcessor_1, formatContainerProcessor_1, getRegularSelectionOffsets_1, parseFormat_1, areSameFormats_1, isBlockElement_1, buildSelectionMarker_1, updateMetadata_1, isNodeOfType_1, isElementOfType_1, getObjectKeys_1, getSafeIdSelector_1, toArray_1, moveChildNodes_1, wrap_1, unwrap_1, entityUtils_1, reuseCachedElement_1, isWhiteSpacePreserved_1, normalizeRect_1, scrollRectIntoView_1, undeletableLink_1, createBr_1, createListItem_1, createFormatContainer_1, createParagraph_1, createSelectionMarker_1, createTable_1, createTableCell_1, createText_1, createImage_1, createContentModelDocument_1, createParagraphDecorator_1, createGeneralSegment_1, createGeneralBlock_1, createEntity_1, createDivider_1, createListLevel_1, createEmptyModel_1, createTableRow_1, mutate_1, addBlock_1, addDecorators_1, addDecorators_2, addTextSegment_1, normalizeParagraph_1, normalizeContentModel_1, isGeneralSegment_1, unwrapBlock_1, addSegment_1, isEmpty_1, normalizeSegment_1, mergeTextSegments_1, normalizeSegmentFormat_1, setParagraphNotImplicit_1, copyFormat_1, getOrderedListNumberStr_1, getAutoListStyleType_1, parseValueWithUnit_1, borderKeys_1, color_1, createDomToModelContext_1, createModelToDomContext_1, isBold_1, getSelectionRootNode_1, getDOMInsertPointRect_1, trimModelForSelection_1, eventUtils_1, getNodePositionFromEvent_1, borderValues_1, stringUtil_1, parseTableCells_1, readFile_1, retrieveDocumentMetadata_1, transformColor_1, normalizeFontFamily_1, extractClipboardItems_1, cacheGetEventData_1, paragraphMarker_1, imageState_1, getRangesByText_1, isBlockGroupOfType_1, iterateSelections_1, collectSelections_1, getSelectedCells_1, hasSelectionInBlock_1, hasSelectionInSegment_1, hasSelectionInBlockGroup_1, setSelection_1, cloneModel_1, mergeModel_1, deleteSelection_1, deleteSegment_1, deleteBlock_1, applyTableFormat_1, normalizeTable_1, setTableCellBackgroundColor_1, retrieveModelFormatState_1, getListStyleTypeFromString_1, getSegmentTextFormat_1, getClosestAncestorBlockGroupIndex_1, runEditSteps_1, updateImageMetadata_1, updateTableCellMetadata_1, updateTableMetadata_1, updateListMetadata_1, ChangeSource_1, BulletListType_1, NumberingListType_1, TableBorderFormat_1, OrderedListStyleMap_1, UnorderedListStyleMap_1, EmptySegmentFormat_1) {
|
|
2
2
|
"use strict";
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.EmptySegmentFormat = exports.UnorderedListStyleMap = exports.OrderedListStyleMap = exports.TableBorderFormat = exports.NumberingListType = exports.BulletListType = exports.ChangeSource = exports.ListMetadataDefinition = exports.getListMetadata = exports.updateListMetadata = exports.getTableMetadata = exports.updateTableMetadata = exports.getTableCellMetadata = exports.updateTableCellMetadata = exports.getImageMetadata = exports.updateImageMetadata = exports.runEditSteps = exports.getClosestAncestorBlockGroupIndex = exports.getSegmentTextFormat = exports.getListStyleTypeFromString = exports.retrieveModelFormatState = exports.setTableCellBackgroundColor = exports.MIN_ALLOWED_TABLE_CELL_HEIGHT = exports.MIN_ALLOWED_TABLE_CELL_WIDTH = exports.normalizeTable = exports.setFirstColumnFormatBorders = exports.applyTableFormat = exports.deleteBlock = exports.deleteSegment = exports.deleteSelection = exports.mergeModel = exports.cloneModel = exports.setSelection = exports.hasSelectionInBlockGroup = exports.hasSelectionInSegment = exports.hasSelectionInBlock = exports.getSelectedCells = exports.getSelectedSegmentsAndParagraphs = exports.getSelectedSegments = exports.getSelectedParagraphs = exports.getOperationalBlocks = exports.getFirstSelectedTable = exports.getFirstSelectedListItem = exports.iterateSelections = exports.isBlockGroupOfType = exports.getRangesByText = exports.getImageState = exports.setImageState = exports.getParagraphMarker = exports.setParagraphMarker = exports.cacheGetEventData = exports.extractClipboardItems = exports.normalizeFontFamily = exports.transformColor = exports.retrieveDocumentMetadata = exports.readFile = exports.parseTableCells = exports.normalizeText = exports.isSpace = exports.isPunctuation = exports.extractBorderValues = exports.combineBorderValue = exports.isCursorMovingKey = exports.isModifierKey = exports.isCharacterValue = exports.trimModelForSelection = exports.getDOMInsertPointRect = exports.getSelectionRootNode = exports.isBold = exports.createModelToDomConfig = exports.createModelToDomContextWithConfig = exports.createModelToDomContext = exports.createDomToModelConfig = exports.createDomToModelContextWithConfig = exports.createDomToModelContext = exports.defaultGenerateColorKey = exports.parseColor = exports.setColor = exports.getColor = exports.DeprecatedColors = exports.BorderKeys = exports.parseValueWithUnit = exports.getAutoListStyleType = exports.getOrderedListNumberStr = exports.ParagraphFormats = exports.ListFormatsToMove = exports.ListFormatsToKeep = exports.ListFormats = exports.copyFormat = exports.setParagraphNotImplicit = exports.normalizeSegmentFormat = exports.mergeTextSegments = exports.normalizeSingleSegment = exports.isEmpty = exports.addSegment = exports.unwrapBlock = exports.isGeneralSegment = exports.normalizeContentModel = exports.normalizeParagraph = exports.addTextSegment = exports.addLink = exports.addCode = exports.addBlock = exports.mutateSegment = exports.mutateSegments = exports.mutateBlock = exports.createTableRow = exports.createEmptyModel = exports.createListLevel = exports.createDivider = exports.createEntity = exports.createGeneralBlock = exports.createGeneralSegment = exports.createParagraphDecorator = exports.createContentModelDocument = exports.createImage = exports.createText = exports.createTableCell = exports.createTable = exports.createSelectionMarker = exports.createParagraph = exports.createFormatContainer = exports.createListItem = exports.createBr = exports.isLinkUndeletable = exports.setLinkUndeletable = exports.scrollRectIntoView = exports.normalizeRect = exports.isWhiteSpacePreserved = exports.reuseCachedElement = exports.findClosestBlockEntityContainer = exports.isBlockEntityContainer = exports.isEntityDelimiter = exports.addDelimiters = exports.generateEntityClassNames = exports.parseEntityFormat = exports.getAllEntityWrappers = exports.findClosestEntityWrapper = exports.isEntityElement = exports.unwrap = exports.wrap = exports.wrapAllChildNodes = exports.moveChildNodes = exports.toArray = exports.getSafeIdSelector = exports.getObjectKeys = exports.isElementOfType = exports.isNodeOfType = exports.hasMetadata = exports.getMetadata = exports.updateMetadata = exports.buildSelectionMarker = exports.isBlockElement = exports.areSameFormats = exports.parseFormat = exports.getRegularSelectionOffsets = exports.formatContainerProcessor = exports.tableProcessor = exports.entityProcessor = exports.processChildNode = exports.handleRegularSelection = exports.childProcessor = exports.contentModelToText = exports.contentModelToDom = exports.domToContentModel = void 0;
|
|
4
|
+
exports.EmptySegmentFormat = exports.UnorderedListStyleMap = exports.OrderedListStyleMap = exports.TableBorderFormat = exports.NumberingListType = exports.BulletListType = exports.ChangeSource = exports.ListMetadataDefinition = exports.getListMetadata = exports.updateListMetadata = exports.getTableMetadata = exports.updateTableMetadata = exports.getTableCellMetadata = exports.updateTableCellMetadata = exports.getImageMetadata = exports.updateImageMetadata = exports.runEditSteps = exports.getClosestAncestorBlockGroupIndex = exports.getSegmentTextFormat = exports.getListStyleTypeFromString = exports.retrieveModelFormatState = exports.setTableCellBackgroundColor = exports.MIN_ALLOWED_TABLE_CELL_HEIGHT = exports.MIN_ALLOWED_TABLE_CELL_WIDTH = exports.normalizeTable = exports.setFirstColumnFormatBorders = exports.applyTableFormat = exports.deleteBlock = exports.deleteSegment = exports.deleteSelection = exports.mergeModel = exports.cloneModel = exports.setSelection = exports.hasSelectionInBlockGroup = exports.hasSelectionInSegment = exports.hasSelectionInBlock = exports.getSelectedCells = exports.getSelectedSegmentsAndParagraphs = exports.getSelectedSegments = exports.getSelectedParagraphs = exports.getOperationalBlocks = exports.getFirstSelectedTable = exports.getFirstSelectedListItem = exports.iterateSelections = exports.isBlockGroupOfType = exports.getRangesByText = exports.getImageState = exports.setImageState = exports.getParagraphMarker = exports.setParagraphMarker = exports.cacheGetEventData = exports.extractClipboardItems = exports.normalizeFontFamily = exports.transformColor = exports.retrieveDocumentMetadata = exports.readFile = exports.parseTableCells = exports.normalizeText = exports.isSpace = exports.isPunctuation = exports.extractBorderValues = exports.combineBorderValue = exports.getNodePositionFromEvent = exports.isCursorMovingKey = exports.isModifierKey = exports.isCharacterValue = exports.trimModelForSelection = exports.getDOMInsertPointRect = exports.getSelectionRootNode = exports.isBold = exports.createModelToDomConfig = exports.createModelToDomContextWithConfig = exports.createModelToDomContext = exports.createDomToModelConfig = exports.createDomToModelContextWithConfig = exports.createDomToModelContext = exports.defaultGenerateColorKey = exports.parseColor = exports.setColor = exports.getColor = exports.DeprecatedColors = exports.BorderKeys = exports.parseValueWithUnit = exports.getAutoListStyleType = exports.getOrderedListNumberStr = exports.ParagraphFormats = exports.ListFormatsToMove = exports.ListFormatsToKeep = exports.ListFormats = exports.copyFormat = exports.setParagraphNotImplicit = exports.normalizeSegmentFormat = exports.mergeTextSegments = exports.normalizeSingleSegment = exports.isEmpty = exports.addSegment = exports.unwrapBlock = exports.isGeneralSegment = exports.normalizeContentModel = exports.normalizeParagraph = exports.addTextSegment = exports.addLink = exports.addCode = exports.addBlock = exports.mutateSegment = exports.mutateSegments = exports.mutateBlock = exports.createTableRow = exports.createEmptyModel = exports.createListLevel = exports.createDivider = exports.createEntity = exports.createGeneralBlock = exports.createGeneralSegment = exports.createParagraphDecorator = exports.createContentModelDocument = exports.createImage = exports.createText = exports.createTableCell = exports.createTable = exports.createSelectionMarker = exports.createParagraph = exports.createFormatContainer = exports.createListItem = exports.createBr = exports.isLinkUndeletable = exports.setLinkUndeletable = exports.scrollRectIntoView = exports.normalizeRect = exports.isWhiteSpacePreserved = exports.reuseCachedElement = exports.findClosestBlockEntityContainer = exports.isBlockEntityContainer = exports.isEntityDelimiter = exports.addDelimiters = exports.generateEntityClassNames = exports.parseEntityFormat = exports.getAllEntityWrappers = exports.findClosestEntityWrapper = exports.isEntityElement = exports.unwrap = exports.wrap = exports.wrapAllChildNodes = exports.moveChildNodes = exports.toArray = exports.getSafeIdSelector = exports.getObjectKeys = exports.isElementOfType = exports.isNodeOfType = exports.hasMetadata = exports.getMetadata = exports.updateMetadata = exports.buildSelectionMarker = exports.isBlockElement = exports.areSameFormats = exports.parseFormat = exports.getRegularSelectionOffsets = exports.formatContainerProcessor = exports.tableProcessor = exports.entityProcessor = exports.processChildNode = exports.handleRegularSelection = exports.childProcessor = exports.contentModelToText = exports.contentModelToDom = exports.domToContentModel = void 0;
|
|
5
5
|
Object.defineProperty(exports, "domToContentModel", { enumerable: true, get: function () { return domToContentModel_1.domToContentModel; } });
|
|
6
6
|
Object.defineProperty(exports, "contentModelToDom", { enumerable: true, get: function () { return contentModelToDom_1.contentModelToDom; } });
|
|
7
7
|
Object.defineProperty(exports, "contentModelToText", { enumerable: true, get: function () { return contentModelToText_1.contentModelToText; } });
|
|
@@ -105,6 +105,7 @@ define(["require", "exports", "./domToModel/domToContentModel", "./modelToDom/co
|
|
|
105
105
|
Object.defineProperty(exports, "isCharacterValue", { enumerable: true, get: function () { return eventUtils_1.isCharacterValue; } });
|
|
106
106
|
Object.defineProperty(exports, "isModifierKey", { enumerable: true, get: function () { return eventUtils_1.isModifierKey; } });
|
|
107
107
|
Object.defineProperty(exports, "isCursorMovingKey", { enumerable: true, get: function () { return eventUtils_1.isCursorMovingKey; } });
|
|
108
|
+
Object.defineProperty(exports, "getNodePositionFromEvent", { enumerable: true, get: function () { return getNodePositionFromEvent_1.getNodePositionFromEvent; } });
|
|
108
109
|
Object.defineProperty(exports, "combineBorderValue", { enumerable: true, get: function () { return borderValues_1.combineBorderValue; } });
|
|
109
110
|
Object.defineProperty(exports, "extractBorderValues", { enumerable: true, get: function () { return borderValues_1.extractBorderValues; } });
|
|
110
111
|
Object.defineProperty(exports, "isPunctuation", { enumerable: true, get: function () { return stringUtil_1.isPunctuation; } });
|
package/lib-amd/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../packages/roosterjs-content-model-dom/lib/index.ts"],"names":[],"mappings":"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","sourcesContent":["export { domToContentModel } from './domToModel/domToContentModel';\nexport { contentModelToDom } from './modelToDom/contentModelToDom';\nexport { contentModelToText } from './modelToText/contentModelToText';\n\nexport {\n childProcessor,\n handleRegularSelection,\n processChildNode,\n} from './domToModel/processors/childProcessor';\nexport { entityProcessor } from './domToModel/processors/entityProcessor';\nexport { tableProcessor } from './domToModel/processors/tableProcessor';\nexport { formatContainerProcessor } from './domToModel/processors/formatContainerProcessor';\nexport { getRegularSelectionOffsets } from './domToModel/utils/getRegularSelectionOffsets';\nexport { parseFormat } from './domToModel/utils/parseFormat';\nexport { areSameFormats } from './domToModel/utils/areSameFormats';\nexport { isBlockElement } from './domToModel/utils/isBlockElement';\nexport { buildSelectionMarker } from './domToModel/utils/buildSelectionMarker';\n\nexport { updateMetadata, getMetadata, hasMetadata } from './modelApi/metadata/updateMetadata';\nexport { isNodeOfType } from './domUtils/isNodeOfType';\nexport { isElementOfType } from './domUtils/isElementOfType';\nexport { getObjectKeys } from './domUtils/getObjectKeys';\nexport { getSafeIdSelector } from './domUtils/getSafeIdSelector';\nexport { toArray } from './domUtils/toArray';\nexport { moveChildNodes, wrapAllChildNodes } from './domUtils/moveChildNodes';\nexport { wrap } from './domUtils/wrap';\nexport { unwrap } from './domUtils/unwrap';\nexport {\n isEntityElement,\n findClosestEntityWrapper,\n getAllEntityWrappers,\n parseEntityFormat,\n generateEntityClassNames,\n addDelimiters,\n isEntityDelimiter,\n isBlockEntityContainer,\n findClosestBlockEntityContainer,\n} from './domUtils/entityUtils';\nexport { reuseCachedElement } from './domUtils/reuseCachedElement';\nexport { isWhiteSpacePreserved } from './domUtils/isWhiteSpacePreserved';\nexport { normalizeRect } from './domUtils/normalizeRect';\nexport { scrollRectIntoView } from './domUtils/scrollRectIntoView';\n\nexport { setLinkUndeletable, isLinkUndeletable } from './domUtils/hiddenProperties/undeletableLink';\n\nexport { createBr } from './modelApi/creators/createBr';\nexport { createListItem } from './modelApi/creators/createListItem';\nexport { createFormatContainer } from './modelApi/creators/createFormatContainer';\nexport { createParagraph } from './modelApi/creators/createParagraph';\nexport { createSelectionMarker } from './modelApi/creators/createSelectionMarker';\nexport { createTable } from './modelApi/creators/createTable';\nexport { createTableCell } from './modelApi/creators/createTableCell';\nexport { createText } from './modelApi/creators/createText';\nexport { createImage } from './modelApi/creators/createImage';\nexport { createContentModelDocument } from './modelApi/creators/createContentModelDocument';\nexport { createParagraphDecorator } from './modelApi/creators/createParagraphDecorator';\nexport { createGeneralSegment } from './modelApi/creators/createGeneralSegment';\nexport { createGeneralBlock } from './modelApi/creators/createGeneralBlock';\nexport { createEntity } from './modelApi/creators/createEntity';\nexport { createDivider } from './modelApi/creators/createDivider';\nexport { createListLevel } from './modelApi/creators/createListLevel';\nexport { createEmptyModel } from './modelApi/creators/createEmptyModel';\nexport { createTableRow } from './modelApi/creators/createTableRow';\n\nexport { mutateBlock, mutateSegments, mutateSegment } from './modelApi/common/mutate';\nexport { addBlock } from './modelApi/common/addBlock';\nexport { addCode } from './modelApi/common/addDecorators';\nexport { addLink } from './modelApi/common/addDecorators';\nexport { addTextSegment } from './modelApi/common/addTextSegment';\nexport { normalizeParagraph } from './modelApi/common/normalizeParagraph';\n\nexport { normalizeContentModel } from './modelApi/common/normalizeContentModel';\nexport { isGeneralSegment } from './modelApi/typeCheck/isGeneralSegment';\nexport { unwrapBlock } from './modelApi/common/unwrapBlock';\nexport { addSegment } from './modelApi/common/addSegment';\nexport { isEmpty } from './modelApi/common/isEmpty';\nexport { normalizeSingleSegment } from './modelApi/common/normalizeSegment';\nexport { mergeTextSegments } from './modelApi/common/mergeTextSegments';\nexport { normalizeSegmentFormat } from './modelApi/common/normalizeSegmentFormat';\n\nexport { setParagraphNotImplicit } from './modelApi/block/setParagraphNotImplicit';\nexport {\n copyFormat,\n ListFormats,\n ListFormatsToKeep,\n ListFormatsToMove,\n ParagraphFormats,\n} from './modelApi/block/copyFormat';\nexport { getOrderedListNumberStr } from './modelApi/list/getOrderedListNumberStr';\nexport { getAutoListStyleType } from './modelApi/list/getAutoListStyleType';\n\nexport { parseValueWithUnit } from './formatHandlers/utils/parseValueWithUnit';\nexport { BorderKeys } from './formatHandlers/utils/borderKeys';\nexport {\n DeprecatedColors,\n getColor,\n setColor,\n parseColor,\n defaultGenerateColorKey,\n} from './formatHandlers/utils/color';\n\nexport {\n createDomToModelContext,\n createDomToModelContextWithConfig,\n createDomToModelConfig,\n} from './domToModel/context/createDomToModelContext';\nexport {\n createModelToDomContext,\n createModelToDomContextWithConfig,\n createModelToDomConfig,\n} from './modelToDom/context/createModelToDomContext';\n\nexport { isBold } from './domUtils/style/isBold';\nexport { getSelectionRootNode } from './domUtils/selection/getSelectionRootNode';\nexport { getDOMInsertPointRect } from './domUtils/selection/getDOMInsertPointRect';\nexport { trimModelForSelection } from './domUtils/selection/trimModelForSelection';\nexport { isCharacterValue, isModifierKey, isCursorMovingKey } from './domUtils/event/eventUtils';\nexport { combineBorderValue, extractBorderValues } from './domUtils/style/borderValues';\nexport { isPunctuation, isSpace, normalizeText } from './domUtils/stringUtil';\nexport { parseTableCells } from './domUtils/table/parseTableCells';\nexport { readFile } from './domUtils/readFile';\nexport { retrieveDocumentMetadata } from './domUtils/retrieveDocumentMetadata';\nexport { transformColor, TransformColorOptions } from './domUtils/style/transformColor';\nexport { normalizeFontFamily } from './domUtils/style/normalizeFontFamily';\nexport { extractClipboardItems } from './domUtils/event/extractClipboardItems';\nexport { cacheGetEventData } from './domUtils/event/cacheGetEventData';\nexport {\n setParagraphMarker,\n getParagraphMarker,\n} from './domUtils/hiddenProperties/paragraphMarker';\nexport { setImageState, getImageState } from './domUtils/hiddenProperties/imageState';\nexport { getRangesByText } from './domUtils/getRangesByText';\n\nexport { isBlockGroupOfType } from './modelApi/typeCheck/isBlockGroupOfType';\n\nexport { iterateSelections } from './modelApi/selection/iterateSelections';\nexport {\n getFirstSelectedListItem,\n getFirstSelectedTable,\n getOperationalBlocks,\n getSelectedParagraphs,\n getSelectedSegments,\n getSelectedSegmentsAndParagraphs,\n} from './modelApi/selection/collectSelections';\nexport { getSelectedCells } from './modelApi/selection/getSelectedCells';\nexport { hasSelectionInBlock } from './modelApi/selection/hasSelectionInBlock';\nexport { hasSelectionInSegment } from './modelApi/selection/hasSelectionInSegment';\nexport { hasSelectionInBlockGroup } from './modelApi/selection/hasSelectionInBlockGroup';\nexport { setSelection } from './modelApi/selection/setSelection';\n\nexport { cloneModel } from './modelApi/editing/cloneModel';\nexport { mergeModel } from './modelApi/editing/mergeModel';\nexport { deleteSelection } from './modelApi/editing/deleteSelection';\nexport { deleteSegment } from './modelApi/editing/deleteSegment';\nexport { deleteBlock } from './modelApi/editing/deleteBlock';\nexport { applyTableFormat, setFirstColumnFormatBorders } from './modelApi/editing/applyTableFormat';\nexport {\n normalizeTable,\n MIN_ALLOWED_TABLE_CELL_WIDTH,\n MIN_ALLOWED_TABLE_CELL_HEIGHT,\n} from './modelApi/editing/normalizeTable';\nexport { setTableCellBackgroundColor } from './modelApi/editing/setTableCellBackgroundColor';\nexport { retrieveModelFormatState } from './modelApi/editing/retrieveModelFormatState';\nexport { getListStyleTypeFromString } from './modelApi/editing/getListStyleTypeFromString';\nexport { getSegmentTextFormat } from './modelApi/editing/getSegmentTextFormat';\nexport { getClosestAncestorBlockGroupIndex } from './modelApi/editing/getClosestAncestorBlockGroupIndex';\nexport { runEditSteps } from './modelApi/editing/runEditSteps';\n\nexport { updateImageMetadata, getImageMetadata } from './modelApi/metadata/updateImageMetadata';\nexport {\n updateTableCellMetadata,\n getTableCellMetadata,\n} from './modelApi/metadata/updateTableCellMetadata';\nexport { updateTableMetadata, getTableMetadata } from './modelApi/metadata/updateTableMetadata';\nexport {\n updateListMetadata,\n getListMetadata,\n ListMetadataDefinition,\n} from './modelApi/metadata/updateListMetadata';\n\nexport { ChangeSource } from './constants/ChangeSource';\nexport { BulletListType } from './constants/BulletListType';\nexport { NumberingListType } from './constants/NumberingListType';\nexport { TableBorderFormat } from './constants/TableBorderFormat';\nexport { OrderedListStyleMap } from './constants/OrderedListStyleMap';\nexport { UnorderedListStyleMap } from './constants/UnorderedListStyleMap';\nexport { EmptySegmentFormat } from './constants/EmptySegmentFormat';\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../packages/roosterjs-content-model-dom/lib/index.ts"],"names":[],"mappings":"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","sourcesContent":["export { domToContentModel } from './domToModel/domToContentModel';\nexport { contentModelToDom } from './modelToDom/contentModelToDom';\nexport { contentModelToText } from './modelToText/contentModelToText';\n\nexport {\n childProcessor,\n handleRegularSelection,\n processChildNode,\n} from './domToModel/processors/childProcessor';\nexport { entityProcessor } from './domToModel/processors/entityProcessor';\nexport { tableProcessor } from './domToModel/processors/tableProcessor';\nexport { formatContainerProcessor } from './domToModel/processors/formatContainerProcessor';\nexport { getRegularSelectionOffsets } from './domToModel/utils/getRegularSelectionOffsets';\nexport { parseFormat } from './domToModel/utils/parseFormat';\nexport { areSameFormats } from './domToModel/utils/areSameFormats';\nexport { isBlockElement } from './domToModel/utils/isBlockElement';\nexport { buildSelectionMarker } from './domToModel/utils/buildSelectionMarker';\n\nexport { updateMetadata, getMetadata, hasMetadata } from './modelApi/metadata/updateMetadata';\nexport { isNodeOfType } from './domUtils/isNodeOfType';\nexport { isElementOfType } from './domUtils/isElementOfType';\nexport { getObjectKeys } from './domUtils/getObjectKeys';\nexport { getSafeIdSelector } from './domUtils/getSafeIdSelector';\nexport { toArray } from './domUtils/toArray';\nexport { moveChildNodes, wrapAllChildNodes } from './domUtils/moveChildNodes';\nexport { wrap } from './domUtils/wrap';\nexport { unwrap } from './domUtils/unwrap';\nexport {\n isEntityElement,\n findClosestEntityWrapper,\n getAllEntityWrappers,\n parseEntityFormat,\n generateEntityClassNames,\n addDelimiters,\n isEntityDelimiter,\n isBlockEntityContainer,\n findClosestBlockEntityContainer,\n} from './domUtils/entityUtils';\nexport { reuseCachedElement } from './domUtils/reuseCachedElement';\nexport { isWhiteSpacePreserved } from './domUtils/isWhiteSpacePreserved';\nexport { normalizeRect } from './domUtils/normalizeRect';\nexport { scrollRectIntoView } from './domUtils/scrollRectIntoView';\n\nexport { setLinkUndeletable, isLinkUndeletable } from './domUtils/hiddenProperties/undeletableLink';\n\nexport { createBr } from './modelApi/creators/createBr';\nexport { createListItem } from './modelApi/creators/createListItem';\nexport { createFormatContainer } from './modelApi/creators/createFormatContainer';\nexport { createParagraph } from './modelApi/creators/createParagraph';\nexport { createSelectionMarker } from './modelApi/creators/createSelectionMarker';\nexport { createTable } from './modelApi/creators/createTable';\nexport { createTableCell } from './modelApi/creators/createTableCell';\nexport { createText } from './modelApi/creators/createText';\nexport { createImage } from './modelApi/creators/createImage';\nexport { createContentModelDocument } from './modelApi/creators/createContentModelDocument';\nexport { createParagraphDecorator } from './modelApi/creators/createParagraphDecorator';\nexport { createGeneralSegment } from './modelApi/creators/createGeneralSegment';\nexport { createGeneralBlock } from './modelApi/creators/createGeneralBlock';\nexport { createEntity } from './modelApi/creators/createEntity';\nexport { createDivider } from './modelApi/creators/createDivider';\nexport { createListLevel } from './modelApi/creators/createListLevel';\nexport { createEmptyModel } from './modelApi/creators/createEmptyModel';\nexport { createTableRow } from './modelApi/creators/createTableRow';\n\nexport { mutateBlock, mutateSegments, mutateSegment } from './modelApi/common/mutate';\nexport { addBlock } from './modelApi/common/addBlock';\nexport { addCode } from './modelApi/common/addDecorators';\nexport { addLink } from './modelApi/common/addDecorators';\nexport { addTextSegment } from './modelApi/common/addTextSegment';\nexport { normalizeParagraph } from './modelApi/common/normalizeParagraph';\n\nexport { normalizeContentModel } from './modelApi/common/normalizeContentModel';\nexport { isGeneralSegment } from './modelApi/typeCheck/isGeneralSegment';\nexport { unwrapBlock } from './modelApi/common/unwrapBlock';\nexport { addSegment } from './modelApi/common/addSegment';\nexport { isEmpty } from './modelApi/common/isEmpty';\nexport { normalizeSingleSegment } from './modelApi/common/normalizeSegment';\nexport { mergeTextSegments } from './modelApi/common/mergeTextSegments';\nexport { normalizeSegmentFormat } from './modelApi/common/normalizeSegmentFormat';\n\nexport { setParagraphNotImplicit } from './modelApi/block/setParagraphNotImplicit';\nexport {\n copyFormat,\n ListFormats,\n ListFormatsToKeep,\n ListFormatsToMove,\n ParagraphFormats,\n} from './modelApi/block/copyFormat';\nexport { getOrderedListNumberStr } from './modelApi/list/getOrderedListNumberStr';\nexport { getAutoListStyleType } from './modelApi/list/getAutoListStyleType';\n\nexport { parseValueWithUnit } from './formatHandlers/utils/parseValueWithUnit';\nexport { BorderKeys } from './formatHandlers/utils/borderKeys';\nexport {\n DeprecatedColors,\n getColor,\n setColor,\n parseColor,\n defaultGenerateColorKey,\n} from './formatHandlers/utils/color';\n\nexport {\n createDomToModelContext,\n createDomToModelContextWithConfig,\n createDomToModelConfig,\n} from './domToModel/context/createDomToModelContext';\nexport {\n createModelToDomContext,\n createModelToDomContextWithConfig,\n createModelToDomConfig,\n} from './modelToDom/context/createModelToDomContext';\n\nexport { isBold } from './domUtils/style/isBold';\nexport { getSelectionRootNode } from './domUtils/selection/getSelectionRootNode';\nexport { getDOMInsertPointRect } from './domUtils/selection/getDOMInsertPointRect';\nexport { trimModelForSelection } from './domUtils/selection/trimModelForSelection';\nexport { isCharacterValue, isModifierKey, isCursorMovingKey } from './domUtils/event/eventUtils';\nexport { getNodePositionFromEvent } from './domUtils/event/getNodePositionFromEvent';\nexport { combineBorderValue, extractBorderValues } from './domUtils/style/borderValues';\nexport { isPunctuation, isSpace, normalizeText } from './domUtils/stringUtil';\nexport { parseTableCells } from './domUtils/table/parseTableCells';\nexport { readFile } from './domUtils/readFile';\nexport { retrieveDocumentMetadata } from './domUtils/retrieveDocumentMetadata';\nexport { transformColor, TransformColorOptions } from './domUtils/style/transformColor';\nexport { normalizeFontFamily } from './domUtils/style/normalizeFontFamily';\nexport { extractClipboardItems } from './domUtils/event/extractClipboardItems';\nexport { cacheGetEventData } from './domUtils/event/cacheGetEventData';\nexport {\n setParagraphMarker,\n getParagraphMarker,\n} from './domUtils/hiddenProperties/paragraphMarker';\nexport { setImageState, getImageState } from './domUtils/hiddenProperties/imageState';\nexport { getRangesByText } from './domUtils/getRangesByText';\n\nexport { isBlockGroupOfType } from './modelApi/typeCheck/isBlockGroupOfType';\n\nexport { iterateSelections } from './modelApi/selection/iterateSelections';\nexport {\n getFirstSelectedListItem,\n getFirstSelectedTable,\n getOperationalBlocks,\n getSelectedParagraphs,\n getSelectedSegments,\n getSelectedSegmentsAndParagraphs,\n} from './modelApi/selection/collectSelections';\nexport { getSelectedCells } from './modelApi/selection/getSelectedCells';\nexport { hasSelectionInBlock } from './modelApi/selection/hasSelectionInBlock';\nexport { hasSelectionInSegment } from './modelApi/selection/hasSelectionInSegment';\nexport { hasSelectionInBlockGroup } from './modelApi/selection/hasSelectionInBlockGroup';\nexport { setSelection } from './modelApi/selection/setSelection';\n\nexport { cloneModel } from './modelApi/editing/cloneModel';\nexport { mergeModel } from './modelApi/editing/mergeModel';\nexport { deleteSelection } from './modelApi/editing/deleteSelection';\nexport { deleteSegment } from './modelApi/editing/deleteSegment';\nexport { deleteBlock } from './modelApi/editing/deleteBlock';\nexport { applyTableFormat, setFirstColumnFormatBorders } from './modelApi/editing/applyTableFormat';\nexport {\n normalizeTable,\n MIN_ALLOWED_TABLE_CELL_WIDTH,\n MIN_ALLOWED_TABLE_CELL_HEIGHT,\n} from './modelApi/editing/normalizeTable';\nexport { setTableCellBackgroundColor } from './modelApi/editing/setTableCellBackgroundColor';\nexport { retrieveModelFormatState } from './modelApi/editing/retrieveModelFormatState';\nexport { getListStyleTypeFromString } from './modelApi/editing/getListStyleTypeFromString';\nexport { getSegmentTextFormat } from './modelApi/editing/getSegmentTextFormat';\nexport { getClosestAncestorBlockGroupIndex } from './modelApi/editing/getClosestAncestorBlockGroupIndex';\nexport { runEditSteps } from './modelApi/editing/runEditSteps';\n\nexport { updateImageMetadata, getImageMetadata } from './modelApi/metadata/updateImageMetadata';\nexport {\n updateTableCellMetadata,\n getTableCellMetadata,\n} from './modelApi/metadata/updateTableCellMetadata';\nexport { updateTableMetadata, getTableMetadata } from './modelApi/metadata/updateTableMetadata';\nexport {\n updateListMetadata,\n getListMetadata,\n ListMetadataDefinition,\n} from './modelApi/metadata/updateListMetadata';\n\nexport { ChangeSource } from './constants/ChangeSource';\nexport { BulletListType } from './constants/BulletListType';\nexport { NumberingListType } from './constants/NumberingListType';\nexport { TableBorderFormat } from './constants/TableBorderFormat';\nexport { OrderedListStyleMap } from './constants/OrderedListStyleMap';\nexport { UnorderedListStyleMap } from './constants/UnorderedListStyleMap';\nexport { EmptySegmentFormat } from './constants/EmptySegmentFormat';\n"]}
|
|
@@ -28,23 +28,40 @@ define(["require", "exports", "tslib", "../utils/applyFormat", "../../domUtils/g
|
|
|
28
28
|
segment: null,
|
|
29
29
|
};
|
|
30
30
|
var handleSegments = function () {
|
|
31
|
+
var e_1, _a;
|
|
32
|
+
var _b;
|
|
31
33
|
var parent = container;
|
|
32
34
|
if (parent) {
|
|
33
35
|
var firstSegment = paragraph.segments[0];
|
|
36
|
+
var segmentContext = context;
|
|
34
37
|
if ((firstSegment === null || firstSegment === void 0 ? void 0 : firstSegment.segmentType) == 'SelectionMarker') {
|
|
35
38
|
// Make sure there is a segment created before selection marker.
|
|
36
39
|
// If selection marker is the first selected segment in a paragraph, create a dummy text node,
|
|
37
40
|
// so after rewrite, the regularSelection object can have a valid segment object set to the text node.
|
|
38
|
-
context.modelHandlers.text(doc, parent, (0, tslib_1.__assign)((0, tslib_1.__assign)({}, firstSegment), { segmentType: 'Text', text: '' }),
|
|
41
|
+
context.modelHandlers.text(doc, parent, (0, tslib_1.__assign)((0, tslib_1.__assign)({}, firstSegment), { segmentType: 'Text', text: '' }), segmentContext, []);
|
|
39
42
|
}
|
|
40
|
-
paragraph.segments.
|
|
43
|
+
for (var i = 0; i < paragraph.segments.length; i++) {
|
|
44
|
+
var segment = paragraph.segments[i];
|
|
45
|
+
segmentContext.noFollowingTextSegmentOrLast =
|
|
46
|
+
i === paragraph.segments.length - 1 ||
|
|
47
|
+
!hasTextSegmentAfter(paragraph.segments, i);
|
|
41
48
|
var newSegments = [];
|
|
42
|
-
context.modelHandlers.segment(doc, parent, segment,
|
|
43
|
-
|
|
44
|
-
var
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
49
|
+
context.modelHandlers.segment(doc, parent, segment, segmentContext, newSegments);
|
|
50
|
+
try {
|
|
51
|
+
for (var newSegments_1 = (e_1 = void 0, (0, tslib_1.__values)(newSegments)), newSegments_1_1 = newSegments_1.next(); !newSegments_1_1.done; newSegments_1_1 = newSegments_1.next()) {
|
|
52
|
+
var node = newSegments_1_1.value;
|
|
53
|
+
(_b = context.domIndexer) === null || _b === void 0 ? void 0 : _b.onSegment(node, paragraph, [segment]);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
57
|
+
finally {
|
|
58
|
+
try {
|
|
59
|
+
if (newSegments_1_1 && !newSegments_1_1.done && (_a = newSegments_1.return)) _a.call(newSegments_1);
|
|
60
|
+
}
|
|
61
|
+
finally { if (e_1) throw e_1.error; }
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
delete segmentContext.noFollowingTextSegmentOrLast;
|
|
48
65
|
}
|
|
49
66
|
};
|
|
50
67
|
if (needParagraphWrapper) {
|
|
@@ -84,5 +101,20 @@ define(["require", "exports", "tslib", "../utils/applyFormat", "../../domUtils/g
|
|
|
84
101
|
return refNode;
|
|
85
102
|
};
|
|
86
103
|
exports.handleParagraph = handleParagraph;
|
|
104
|
+
function hasTextSegmentAfter(segments, index) {
|
|
105
|
+
for (var i = index + 1; i < segments.length; i++) {
|
|
106
|
+
var type = segments[i].segmentType;
|
|
107
|
+
if (type === 'SelectionMarker') {
|
|
108
|
+
continue;
|
|
109
|
+
}
|
|
110
|
+
if (type === 'Text') {
|
|
111
|
+
return true;
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
return false;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
return false;
|
|
118
|
+
}
|
|
87
119
|
});
|
|
88
120
|
//# sourceMappingURL=handleParagraph.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handleParagraph.js","sourceRoot":"","sources":["../../../../../packages/roosterjs-content-model-dom/lib/modelToDom/handlers/handleParagraph.ts"],"names":[],"mappings":"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","sourcesContent":["import { applyFormat } from '../utils/applyFormat';\nimport { getObjectKeys } from '../../domUtils/getObjectKeys';\nimport { optimize } from '../optimizers/optimize';\nimport { reuseCachedElement } from '../../domUtils/reuseCachedElement';\nimport { stackFormat } from '../utils/stackFormat';\nimport { unwrap } from '../../domUtils/unwrap';\nimport type {\n ContentModelBlockHandler,\n ContentModelParagraph,\n ModelToDomContext,\n} from 'roosterjs-content-model-types';\n\nconst DefaultParagraphTag = 'div';\n\n/**\n * @internal\n */\nexport const handleParagraph: ContentModelBlockHandler<ContentModelParagraph> = (\n doc: Document,\n parent: Node,\n paragraph: ContentModelParagraph,\n context: ModelToDomContext,\n refNode: Node | null\n) => {\n let container = context.allowCacheElement ? paragraph.cachedElement : undefined;\n\n if (container && paragraph.segments.every(x => x.segmentType != 'General' && !x.isSelected)) {\n refNode = reuseCachedElement(parent, container, refNode, context.rewriteFromModel);\n } else {\n stackFormat(context, paragraph.decorator?.tagName || null, () => {\n const needParagraphWrapper =\n !paragraph.isImplicit ||\n !!paragraph.decorator ||\n (getObjectKeys(paragraph.format).length > 0 &&\n paragraph.segments.some(segment => segment.segmentType != 'SelectionMarker'));\n const formatOnWrapper = needParagraphWrapper\n ? {\n ...(paragraph.decorator?.format || {}),\n ...paragraph.segmentFormat,\n }\n : {};\n\n container = doc.createElement(paragraph.decorator?.tagName || DefaultParagraphTag);\n\n parent.insertBefore(container, refNode);\n\n context.regularSelection.current = {\n block: needParagraphWrapper ? container : container.parentNode,\n segment: null,\n };\n\n const handleSegments = () => {\n const parent = container;\n\n if (parent) {\n const firstSegment = paragraph.segments[0];\n\n if (firstSegment?.segmentType == 'SelectionMarker') {\n // Make sure there is a segment created before selection marker.\n // If selection marker is the first selected segment in a paragraph, create a dummy text node,\n // so after rewrite, the regularSelection object can have a valid segment object set to the text node.\n context.modelHandlers.text(\n doc,\n parent,\n {\n ...firstSegment,\n segmentType: 'Text',\n text: '',\n },\n context,\n []\n );\n }\n\n paragraph.segments.forEach(segment => {\n const newSegments: Node[] = [];\n context.modelHandlers.segment(doc, parent, segment, context, newSegments);\n\n newSegments.forEach(node => {\n context.domIndexer?.onSegment(node, paragraph, [segment]);\n });\n });\n }\n };\n\n if (needParagraphWrapper) {\n stackFormat(context, formatOnWrapper, handleSegments);\n\n applyFormat(container, context.formatAppliers.block, paragraph.format, context);\n applyFormat(container, context.formatAppliers.container, paragraph.format, context);\n applyFormat(\n container,\n context.formatAppliers.segmentOnBlock,\n formatOnWrapper,\n context\n );\n\n context.paragraphMap?.applyMarkerToDom(container, paragraph);\n } else {\n handleSegments();\n }\n\n optimize(container, context);\n\n // It is possible the next sibling node is changed during processing child segments\n // e.g. When this paragraph is an implicit paragraph and it contains an inline entity segment\n // The segment will be appended to container as child then the container will be removed\n // since this paragraph it is implicit. In that case container.nextSibling will become original\n // inline entity's next sibling. So reset refNode to its real next sibling (after change) here\n // to make sure the value is correct.\n refNode = container.nextSibling;\n\n if (container) {\n context.onNodeCreated?.(paragraph, container);\n context.domIndexer?.onParagraph(container);\n }\n\n if (needParagraphWrapper) {\n if (context.allowCacheElement) {\n paragraph.cachedElement = container;\n }\n\n context.rewriteFromModel.addedBlockElements.push(container);\n } else {\n unwrap(container);\n container = undefined;\n }\n });\n }\n\n return refNode;\n};\n"]}
|
|
1
|
+
{"version":3,"file":"handleParagraph.js","sourceRoot":"","sources":["../../../../../packages/roosterjs-content-model-dom/lib/modelToDom/handlers/handleParagraph.ts"],"names":[],"mappings":";;;;IAcA,IAAM,mBAAmB,GAAG,KAAK,CAAC;IAElC;;OAEG;IACI,IAAM,eAAe,GAAoD,UAC5E,GAAa,EACb,MAAY,EACZ,SAAgC,EAChC,OAA0B,EAC1B,OAAoB;;QAEpB,IAAI,SAAS,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC;QAEhF,IAAI,SAAS,IAAI,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,WAAW,IAAI,SAAS,IAAI,CAAC,CAAC,CAAC,UAAU,EAA3C,CAA2C,CAAC,EAAE;YACzF,OAAO,GAAG,IAAA,uCAAkB,EAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;SACtF;aAAM;YACH,IAAA,yBAAW,EAAC,OAAO,EAAE,CAAA,MAAA,SAAS,CAAC,SAAS,0CAAE,OAAO,KAAI,IAAI,EAAE;;gBACvD,IAAM,oBAAoB,GACtB,CAAC,SAAS,CAAC,UAAU;oBACrB,CAAC,CAAC,SAAS,CAAC,SAAS;oBACrB,CAAC,IAAA,6BAAa,EAAC,SAAS,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC;wBACvC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAA,OAAO,IAAI,OAAA,OAAO,CAAC,WAAW,IAAI,iBAAiB,EAAxC,CAAwC,CAAC,CAAC,CAAC;gBACtF,IAAM,eAAe,GAAG,oBAAoB;oBACxC,CAAC,iDACQ,CAAC,CAAA,MAAA,SAAS,CAAC,SAAS,0CAAE,MAAM,KAAI,EAAE,CAAC,GACnC,SAAS,CAAC,aAAa,EAEhC,CAAC,CAAC,EAAE,CAAC;gBAET,SAAS,GAAG,GAAG,CAAC,aAAa,CAAC,CAAA,MAAA,SAAS,CAAC,SAAS,0CAAE,OAAO,KAAI,mBAAmB,CAAC,CAAC;gBAEnF,MAAM,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;gBAExC,OAAO,CAAC,gBAAgB,CAAC,OAAO,GAAG;oBAC/B,KAAK,EAAE,oBAAoB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU;oBAC9D,OAAO,EAAE,IAAI;iBAChB,CAAC;gBAEF,IAAM,cAAc,GAAG;;;oBACnB,IAAM,MAAM,GAAG,SAAS,CAAC;oBAEzB,IAAI,MAAM,EAAE;wBACR,IAAM,YAAY,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;wBAE3C,IAAM,cAAc,GAA6B,OAAO,CAAC;wBAEzD,IAAI,CAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,WAAW,KAAI,iBAAiB,EAAE;4BAChD,gEAAgE;4BAChE,8FAA8F;4BAC9F,sGAAsG;4BACtG,OAAO,CAAC,aAAa,CAAC,IAAI,CACtB,GAAG,EACH,MAAM,kDAEC,YAAY,KACf,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,EAAE,KAEZ,cAAc,EACd,EAAE,CACL,CAAC;yBACL;wBAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;4BAChD,IAAM,OAAO,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;4BAEtC,cAAc,CAAC,4BAA4B;gCACvC,CAAC,KAAK,SAAS,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;oCACnC,CAAC,mBAAmB,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;4BAEhD,IAAM,WAAW,GAAW,EAAE,CAAC;4BAC/B,OAAO,CAAC,aAAa,CAAC,OAAO,CACzB,GAAG,EACH,MAAM,EACN,OAAO,EACP,cAAc,EACd,WAAW,CACd,CAAC;;gCAEF,KAAmB,IAAA,+BAAA,sBAAA,WAAW,CAAA,CAAA,wCAAA,iEAAE;oCAA3B,IAAM,IAAI,wBAAA;oCACX,MAAA,OAAO,CAAC,UAAU,0CAAE,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;iCAC7D;;;;;;;;;yBACJ;wBAED,OAAO,cAAc,CAAC,4BAA4B,CAAC;qBACtD;gBACL,CAAC,CAAC;gBAEF,IAAI,oBAAoB,EAAE;oBACtB,IAAA,yBAAW,EAAC,OAAO,EAAE,eAAe,EAAE,cAAc,CAAC,CAAC;oBAEtD,IAAA,yBAAW,EAAC,SAAS,EAAE,OAAO,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;oBAChF,IAAA,yBAAW,EAAC,SAAS,EAAE,OAAO,CAAC,cAAc,CAAC,SAAS,EAAE,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;oBACpF,IAAA,yBAAW,EACP,SAAS,EACT,OAAO,CAAC,cAAc,CAAC,cAAc,EACrC,eAAe,EACf,OAAO,CACV,CAAC;oBAEF,MAAA,OAAO,CAAC,YAAY,0CAAE,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;iBAChE;qBAAM;oBACH,cAAc,EAAE,CAAC;iBACpB;gBAED,IAAA,mBAAQ,EAAC,SAAS,EAAE,OAAO,CAAC,CAAC;gBAE7B,mFAAmF;gBACnF,6FAA6F;gBAC7F,wFAAwF;gBACxF,+FAA+F;gBAC/F,8FAA8F;gBAC9F,qCAAqC;gBACrC,OAAO,GAAG,SAAS,CAAC,WAAW,CAAC;gBAEhC,IAAI,SAAS,EAAE;oBACX,MAAA,OAAO,CAAC,aAAa,+CAArB,OAAO,EAAiB,SAAS,EAAE,SAAS,CAAC,CAAC;oBAC9C,MAAA,OAAO,CAAC,UAAU,0CAAE,WAAW,CAAC,SAAS,CAAC,CAAC;iBAC9C;gBAED,IAAI,oBAAoB,EAAE;oBACtB,IAAI,OAAO,CAAC,iBAAiB,EAAE;wBAC3B,SAAS,CAAC,aAAa,GAAG,SAAS,CAAC;qBACvC;oBAED,OAAO,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;iBAC/D;qBAAM;oBACH,IAAA,eAAM,EAAC,SAAS,CAAC,CAAC;oBAClB,SAAS,GAAG,SAAS,CAAC;iBACzB;YACL,CAAC,CAAC,CAAC;SACN;QAED,OAAO,OAAO,CAAC;IACnB,CAAC,CAAC;IAlIW,QAAA,eAAe,mBAkI1B;IAEF,SAAS,mBAAmB,CAAC,QAA4C,EAAE,KAAa;QACpF,KAAK,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC9C,IAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;YACrC,IAAI,IAAI,KAAK,iBAAiB,EAAE;gBAC5B,SAAS;aACZ;YACD,IAAI,IAAI,KAAK,MAAM,EAAE;gBACjB,OAAO,IAAI,CAAC;aACf;iBAAM;gBACH,OAAO,KAAK,CAAC;aAChB;SACJ;QACD,OAAO,KAAK,CAAC;IACjB,CAAC","sourcesContent":["import { applyFormat } from '../utils/applyFormat';\nimport { getObjectKeys } from '../../domUtils/getObjectKeys';\nimport { optimize } from '../optimizers/optimize';\nimport { reuseCachedElement } from '../../domUtils/reuseCachedElement';\nimport { stackFormat } from '../utils/stackFormat';\nimport { unwrap } from '../../domUtils/unwrap';\nimport type {\n ContentModelBlockHandler,\n ContentModelParagraph,\n ContentModelSegment,\n ModelToDomContext,\n ModelToDomSegmentContext,\n} from 'roosterjs-content-model-types';\n\nconst DefaultParagraphTag = 'div';\n\n/**\n * @internal\n */\nexport const handleParagraph: ContentModelBlockHandler<ContentModelParagraph> = (\n doc: Document,\n parent: Node,\n paragraph: ContentModelParagraph,\n context: ModelToDomContext,\n refNode: Node | null\n) => {\n let container = context.allowCacheElement ? paragraph.cachedElement : undefined;\n\n if (container && paragraph.segments.every(x => x.segmentType != 'General' && !x.isSelected)) {\n refNode = reuseCachedElement(parent, container, refNode, context.rewriteFromModel);\n } else {\n stackFormat(context, paragraph.decorator?.tagName || null, () => {\n const needParagraphWrapper =\n !paragraph.isImplicit ||\n !!paragraph.decorator ||\n (getObjectKeys(paragraph.format).length > 0 &&\n paragraph.segments.some(segment => segment.segmentType != 'SelectionMarker'));\n const formatOnWrapper = needParagraphWrapper\n ? {\n ...(paragraph.decorator?.format || {}),\n ...paragraph.segmentFormat,\n }\n : {};\n\n container = doc.createElement(paragraph.decorator?.tagName || DefaultParagraphTag);\n\n parent.insertBefore(container, refNode);\n\n context.regularSelection.current = {\n block: needParagraphWrapper ? container : container.parentNode,\n segment: null,\n };\n\n const handleSegments = () => {\n const parent = container;\n\n if (parent) {\n const firstSegment = paragraph.segments[0];\n\n const segmentContext: ModelToDomSegmentContext = context;\n\n if (firstSegment?.segmentType == 'SelectionMarker') {\n // Make sure there is a segment created before selection marker.\n // If selection marker is the first selected segment in a paragraph, create a dummy text node,\n // so after rewrite, the regularSelection object can have a valid segment object set to the text node.\n context.modelHandlers.text(\n doc,\n parent,\n {\n ...firstSegment,\n segmentType: 'Text',\n text: '',\n },\n segmentContext,\n []\n );\n }\n\n for (let i = 0; i < paragraph.segments.length; i++) {\n const segment = paragraph.segments[i];\n\n segmentContext.noFollowingTextSegmentOrLast =\n i === paragraph.segments.length - 1 ||\n !hasTextSegmentAfter(paragraph.segments, i);\n\n const newSegments: Node[] = [];\n context.modelHandlers.segment(\n doc,\n parent,\n segment,\n segmentContext,\n newSegments\n );\n\n for (const node of newSegments) {\n context.domIndexer?.onSegment(node, paragraph, [segment]);\n }\n }\n\n delete segmentContext.noFollowingTextSegmentOrLast;\n }\n };\n\n if (needParagraphWrapper) {\n stackFormat(context, formatOnWrapper, handleSegments);\n\n applyFormat(container, context.formatAppliers.block, paragraph.format, context);\n applyFormat(container, context.formatAppliers.container, paragraph.format, context);\n applyFormat(\n container,\n context.formatAppliers.segmentOnBlock,\n formatOnWrapper,\n context\n );\n\n context.paragraphMap?.applyMarkerToDom(container, paragraph);\n } else {\n handleSegments();\n }\n\n optimize(container, context);\n\n // It is possible the next sibling node is changed during processing child segments\n // e.g. When this paragraph is an implicit paragraph and it contains an inline entity segment\n // The segment will be appended to container as child then the container will be removed\n // since this paragraph it is implicit. In that case container.nextSibling will become original\n // inline entity's next sibling. So reset refNode to its real next sibling (after change) here\n // to make sure the value is correct.\n refNode = container.nextSibling;\n\n if (container) {\n context.onNodeCreated?.(paragraph, container);\n context.domIndexer?.onParagraph(container);\n }\n\n if (needParagraphWrapper) {\n if (context.allowCacheElement) {\n paragraph.cachedElement = container;\n }\n\n context.rewriteFromModel.addedBlockElements.push(container);\n } else {\n unwrap(container);\n container = undefined;\n }\n });\n }\n\n return refNode;\n};\n\nfunction hasTextSegmentAfter(segments: ReadonlyArray<ContentModelSegment>, index: number): boolean {\n for (let i = index + 1; i < segments.length; i++) {\n const type = segments[i].segmentType;\n if (type === 'SelectionMarker') {\n continue;\n }\n if (type === 'Text') {\n return true;\n } else {\n return false;\n }\n }\n return false;\n}\n"]}
|
|
@@ -2,11 +2,15 @@ define(["require", "exports", "../utils/handleSegmentCommon"], function (require
|
|
|
2
2
|
"use strict";
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
exports.handleText = void 0;
|
|
5
|
+
var nonBreakingSpace = '\u00A0';
|
|
5
6
|
/**
|
|
6
7
|
* @internal
|
|
7
8
|
*/
|
|
8
9
|
var handleText = function (doc, parent, segment, context, segmentNodes) {
|
|
9
|
-
var
|
|
10
|
+
var textContent = context.noFollowingTextSegmentOrLast && segment.text.endsWith(' ')
|
|
11
|
+
? segment.text.slice(0, -1) + nonBreakingSpace
|
|
12
|
+
: segment.text;
|
|
13
|
+
var txt = doc.createTextNode(textContent);
|
|
10
14
|
var element = doc.createElement('span');
|
|
11
15
|
parent.appendChild(element);
|
|
12
16
|
element.appendChild(txt);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handleText.js","sourceRoot":"","sources":["../../../../../packages/roosterjs-content-model-dom/lib/modelToDom/handlers/handleText.ts"],"names":[],"mappings":";;;;IAGA;;OAEG;IACI,IAAM,UAAU,GAAiD,UACpE,GAAG,EACH,MAAM,EACN,OAAO,EACP,OAAO,EACP,YAAY;QAEZ,IAAM,
|
|
1
|
+
{"version":3,"file":"handleText.js","sourceRoot":"","sources":["../../../../../packages/roosterjs-content-model-dom/lib/modelToDom/handlers/handleText.ts"],"names":[],"mappings":";;;;IAGA,IAAM,gBAAgB,GAAG,QAAQ,CAAC;IAElC;;OAEG;IACI,IAAM,UAAU,GAAiD,UACpE,GAAG,EACH,MAAM,EACN,OAAO,EACP,OAAO,EACP,YAAY;QAEZ,IAAM,WAAW,GACb,OAAO,CAAC,4BAA4B,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;YAC9D,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,gBAAgB;YAC9C,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;QACvB,IAAM,GAAG,GAAG,GAAG,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QAC5C,IAAM,OAAO,GAAG,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAE1C,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAC5B,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAEzB,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,UAAA,OAAO,IAAI,OAAA,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,EAArC,CAAqC,CAAC,CAAC;QAEtF,IAAA,yCAAmB,EAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;IAC3E,CAAC,CAAC;IApBW,QAAA,UAAU,cAoBrB","sourcesContent":["import { handleSegmentCommon } from '../utils/handleSegmentCommon';\nimport type { ContentModelSegmentHandler, ContentModelText } from 'roosterjs-content-model-types';\n\nconst nonBreakingSpace = '\\u00A0';\n\n/**\n * @internal\n */\nexport const handleText: ContentModelSegmentHandler<ContentModelText> = (\n doc,\n parent,\n segment,\n context,\n segmentNodes\n) => {\n const textContent =\n context.noFollowingTextSegmentOrLast && segment.text.endsWith(' ')\n ? segment.text.slice(0, -1) + nonBreakingSpace\n : segment.text;\n const txt = doc.createTextNode(textContent);\n const element = doc.createElement('span');\n\n parent.appendChild(element);\n element.appendChild(txt);\n\n context.formatAppliers.text.forEach(applier => applier(segment.format, txt, context));\n\n handleSegmentCommon(doc, txt, element, segment, context, segmentNodes);\n};\n"]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { DOMHelper, DOMInsertPoint } from 'roosterjs-content-model-types';
|
|
2
|
+
/**
|
|
3
|
+
* Get insertion point from coordinate.
|
|
4
|
+
* @param doc Parent document object
|
|
5
|
+
* @param domHelper The DOM helper of the editor
|
|
6
|
+
* @param x The cursor coordinate for the x-axis
|
|
7
|
+
* @param y The cursor coordinate for the y-axis
|
|
8
|
+
*/
|
|
9
|
+
export declare function getNodePositionFromEvent(doc: Document, domHelper: DOMHelper, x: number, y: number): DOMInsertPoint | null;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Get insertion point from coordinate.
|
|
3
|
+
* @param doc Parent document object
|
|
4
|
+
* @param domHelper The DOM helper of the editor
|
|
5
|
+
* @param x The cursor coordinate for the x-axis
|
|
6
|
+
* @param y The cursor coordinate for the y-axis
|
|
7
|
+
*/
|
|
8
|
+
export function getNodePositionFromEvent(doc, domHelper, x, y) {
|
|
9
|
+
if ('caretPositionFromPoint' in doc) {
|
|
10
|
+
// Firefox, Chrome, Edge, Safari, Opera
|
|
11
|
+
var pos = doc.caretPositionFromPoint(x, y);
|
|
12
|
+
if (pos && domHelper.isNodeInEditor(pos.offsetNode)) {
|
|
13
|
+
return { node: pos.offsetNode, offset: pos.offset };
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
if (doc.caretRangeFromPoint) {
|
|
17
|
+
// Safari
|
|
18
|
+
var range = doc.caretRangeFromPoint(x, y);
|
|
19
|
+
if (range && domHelper.isNodeInEditor(range.startContainer)) {
|
|
20
|
+
return { node: range.startContainer, offset: range.startOffset };
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
if (doc.elementFromPoint) {
|
|
24
|
+
// Fallback
|
|
25
|
+
var element = doc.elementFromPoint(x, y);
|
|
26
|
+
if (element && domHelper.isNodeInEditor(element)) {
|
|
27
|
+
return { node: element, offset: 0 };
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
return null;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=getNodePositionFromEvent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getNodePositionFromEvent.js","sourceRoot":"","sources":["../../../../../packages/roosterjs-content-model-dom/lib/domUtils/event/getNodePositionFromEvent.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,MAAM,UAAU,wBAAwB,CACpC,GAAa,EACb,SAAoB,EACpB,CAAS,EACT,CAAS;IAET,IAAI,wBAAwB,IAAI,GAAG,EAAE;QACjC,uCAAuC;QACvC,IAAM,GAAG,GAAI,GAAW,CAAC,sBAAsB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACtD,IAAI,GAAG,IAAI,SAAS,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;YACjD,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC;SACvD;KACJ;IAED,IAAI,GAAG,CAAC,mBAAmB,EAAE;QACzB,SAAS;QACT,IAAM,KAAK,GAAG,GAAG,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5C,IAAI,KAAK,IAAI,SAAS,CAAC,cAAc,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE;YACzD,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,cAAc,EAAE,MAAM,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC;SACpE;KACJ;IAED,IAAI,GAAG,CAAC,gBAAgB,EAAE;QACtB,WAAW;QACX,IAAM,OAAO,GAAG,GAAG,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3C,IAAI,OAAO,IAAI,SAAS,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE;YAC9C,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;SACvC;KACJ;IAED,OAAO,IAAI,CAAC;AAChB,CAAC","sourcesContent":["import type { DOMHelper, DOMInsertPoint } from 'roosterjs-content-model-types';\n\n/**\n * Get insertion point from coordinate.\n * @param doc Parent document object\n * @param domHelper The DOM helper of the editor\n * @param x The cursor coordinate for the x-axis\n * @param y The cursor coordinate for the y-axis\n */\nexport function getNodePositionFromEvent(\n doc: Document,\n domHelper: DOMHelper,\n x: number,\n y: number\n): DOMInsertPoint | null {\n if ('caretPositionFromPoint' in doc) {\n // Firefox, Chrome, Edge, Safari, Opera\n const pos = (doc as any).caretPositionFromPoint(x, y);\n if (pos && domHelper.isNodeInEditor(pos.offsetNode)) {\n return { node: pos.offsetNode, offset: pos.offset };\n }\n }\n\n if (doc.caretRangeFromPoint) {\n // Safari\n const range = doc.caretRangeFromPoint(x, y);\n if (range && domHelper.isNodeInEditor(range.startContainer)) {\n return { node: range.startContainer, offset: range.startOffset };\n }\n }\n\n if (doc.elementFromPoint) {\n // Fallback\n const element = doc.elementFromPoint(x, y);\n if (element && domHelper.isNodeInEditor(element)) {\n return { node: element, offset: 0 };\n }\n }\n\n return null;\n}\n"]}
|
package/lib-mjs/index.d.ts
CHANGED
|
@@ -71,6 +71,7 @@ export { getSelectionRootNode } from './domUtils/selection/getSelectionRootNode'
|
|
|
71
71
|
export { getDOMInsertPointRect } from './domUtils/selection/getDOMInsertPointRect';
|
|
72
72
|
export { trimModelForSelection } from './domUtils/selection/trimModelForSelection';
|
|
73
73
|
export { isCharacterValue, isModifierKey, isCursorMovingKey } from './domUtils/event/eventUtils';
|
|
74
|
+
export { getNodePositionFromEvent } from './domUtils/event/getNodePositionFromEvent';
|
|
74
75
|
export { combineBorderValue, extractBorderValues } from './domUtils/style/borderValues';
|
|
75
76
|
export { isPunctuation, isSpace, normalizeText } from './domUtils/stringUtil';
|
|
76
77
|
export { parseTableCells } from './domUtils/table/parseTableCells';
|
package/lib-mjs/index.js
CHANGED
|
@@ -71,6 +71,7 @@ export { getSelectionRootNode } from './domUtils/selection/getSelectionRootNode'
|
|
|
71
71
|
export { getDOMInsertPointRect } from './domUtils/selection/getDOMInsertPointRect';
|
|
72
72
|
export { trimModelForSelection } from './domUtils/selection/trimModelForSelection';
|
|
73
73
|
export { isCharacterValue, isModifierKey, isCursorMovingKey } from './domUtils/event/eventUtils';
|
|
74
|
+
export { getNodePositionFromEvent } from './domUtils/event/getNodePositionFromEvent';
|
|
74
75
|
export { combineBorderValue, extractBorderValues } from './domUtils/style/borderValues';
|
|
75
76
|
export { isPunctuation, isSpace, normalizeText } from './domUtils/stringUtil';
|
|
76
77
|
export { parseTableCells } from './domUtils/table/parseTableCells';
|
package/lib-mjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../packages/roosterjs-content-model-dom/lib/index.ts"],"names":[],"mappings":"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","sourcesContent":["export { domToContentModel } from './domToModel/domToContentModel';\nexport { contentModelToDom } from './modelToDom/contentModelToDom';\nexport { contentModelToText } from './modelToText/contentModelToText';\n\nexport {\n childProcessor,\n handleRegularSelection,\n processChildNode,\n} from './domToModel/processors/childProcessor';\nexport { entityProcessor } from './domToModel/processors/entityProcessor';\nexport { tableProcessor } from './domToModel/processors/tableProcessor';\nexport { formatContainerProcessor } from './domToModel/processors/formatContainerProcessor';\nexport { getRegularSelectionOffsets } from './domToModel/utils/getRegularSelectionOffsets';\nexport { parseFormat } from './domToModel/utils/parseFormat';\nexport { areSameFormats } from './domToModel/utils/areSameFormats';\nexport { isBlockElement } from './domToModel/utils/isBlockElement';\nexport { buildSelectionMarker } from './domToModel/utils/buildSelectionMarker';\n\nexport { updateMetadata, getMetadata, hasMetadata } from './modelApi/metadata/updateMetadata';\nexport { isNodeOfType } from './domUtils/isNodeOfType';\nexport { isElementOfType } from './domUtils/isElementOfType';\nexport { getObjectKeys } from './domUtils/getObjectKeys';\nexport { getSafeIdSelector } from './domUtils/getSafeIdSelector';\nexport { toArray } from './domUtils/toArray';\nexport { moveChildNodes, wrapAllChildNodes } from './domUtils/moveChildNodes';\nexport { wrap } from './domUtils/wrap';\nexport { unwrap } from './domUtils/unwrap';\nexport {\n isEntityElement,\n findClosestEntityWrapper,\n getAllEntityWrappers,\n parseEntityFormat,\n generateEntityClassNames,\n addDelimiters,\n isEntityDelimiter,\n isBlockEntityContainer,\n findClosestBlockEntityContainer,\n} from './domUtils/entityUtils';\nexport { reuseCachedElement } from './domUtils/reuseCachedElement';\nexport { isWhiteSpacePreserved } from './domUtils/isWhiteSpacePreserved';\nexport { normalizeRect } from './domUtils/normalizeRect';\nexport { scrollRectIntoView } from './domUtils/scrollRectIntoView';\n\nexport { setLinkUndeletable, isLinkUndeletable } from './domUtils/hiddenProperties/undeletableLink';\n\nexport { createBr } from './modelApi/creators/createBr';\nexport { createListItem } from './modelApi/creators/createListItem';\nexport { createFormatContainer } from './modelApi/creators/createFormatContainer';\nexport { createParagraph } from './modelApi/creators/createParagraph';\nexport { createSelectionMarker } from './modelApi/creators/createSelectionMarker';\nexport { createTable } from './modelApi/creators/createTable';\nexport { createTableCell } from './modelApi/creators/createTableCell';\nexport { createText } from './modelApi/creators/createText';\nexport { createImage } from './modelApi/creators/createImage';\nexport { createContentModelDocument } from './modelApi/creators/createContentModelDocument';\nexport { createParagraphDecorator } from './modelApi/creators/createParagraphDecorator';\nexport { createGeneralSegment } from './modelApi/creators/createGeneralSegment';\nexport { createGeneralBlock } from './modelApi/creators/createGeneralBlock';\nexport { createEntity } from './modelApi/creators/createEntity';\nexport { createDivider } from './modelApi/creators/createDivider';\nexport { createListLevel } from './modelApi/creators/createListLevel';\nexport { createEmptyModel } from './modelApi/creators/createEmptyModel';\nexport { createTableRow } from './modelApi/creators/createTableRow';\n\nexport { mutateBlock, mutateSegments, mutateSegment } from './modelApi/common/mutate';\nexport { addBlock } from './modelApi/common/addBlock';\nexport { addCode } from './modelApi/common/addDecorators';\nexport { addLink } from './modelApi/common/addDecorators';\nexport { addTextSegment } from './modelApi/common/addTextSegment';\nexport { normalizeParagraph } from './modelApi/common/normalizeParagraph';\n\nexport { normalizeContentModel } from './modelApi/common/normalizeContentModel';\nexport { isGeneralSegment } from './modelApi/typeCheck/isGeneralSegment';\nexport { unwrapBlock } from './modelApi/common/unwrapBlock';\nexport { addSegment } from './modelApi/common/addSegment';\nexport { isEmpty } from './modelApi/common/isEmpty';\nexport { normalizeSingleSegment } from './modelApi/common/normalizeSegment';\nexport { mergeTextSegments } from './modelApi/common/mergeTextSegments';\nexport { normalizeSegmentFormat } from './modelApi/common/normalizeSegmentFormat';\n\nexport { setParagraphNotImplicit } from './modelApi/block/setParagraphNotImplicit';\nexport {\n copyFormat,\n ListFormats,\n ListFormatsToKeep,\n ListFormatsToMove,\n ParagraphFormats,\n} from './modelApi/block/copyFormat';\nexport { getOrderedListNumberStr } from './modelApi/list/getOrderedListNumberStr';\nexport { getAutoListStyleType } from './modelApi/list/getAutoListStyleType';\n\nexport { parseValueWithUnit } from './formatHandlers/utils/parseValueWithUnit';\nexport { BorderKeys } from './formatHandlers/utils/borderKeys';\nexport {\n DeprecatedColors,\n getColor,\n setColor,\n parseColor,\n defaultGenerateColorKey,\n} from './formatHandlers/utils/color';\n\nexport {\n createDomToModelContext,\n createDomToModelContextWithConfig,\n createDomToModelConfig,\n} from './domToModel/context/createDomToModelContext';\nexport {\n createModelToDomContext,\n createModelToDomContextWithConfig,\n createModelToDomConfig,\n} from './modelToDom/context/createModelToDomContext';\n\nexport { isBold } from './domUtils/style/isBold';\nexport { getSelectionRootNode } from './domUtils/selection/getSelectionRootNode';\nexport { getDOMInsertPointRect } from './domUtils/selection/getDOMInsertPointRect';\nexport { trimModelForSelection } from './domUtils/selection/trimModelForSelection';\nexport { isCharacterValue, isModifierKey, isCursorMovingKey } from './domUtils/event/eventUtils';\nexport { combineBorderValue, extractBorderValues } from './domUtils/style/borderValues';\nexport { isPunctuation, isSpace, normalizeText } from './domUtils/stringUtil';\nexport { parseTableCells } from './domUtils/table/parseTableCells';\nexport { readFile } from './domUtils/readFile';\nexport { retrieveDocumentMetadata } from './domUtils/retrieveDocumentMetadata';\nexport { transformColor, TransformColorOptions } from './domUtils/style/transformColor';\nexport { normalizeFontFamily } from './domUtils/style/normalizeFontFamily';\nexport { extractClipboardItems } from './domUtils/event/extractClipboardItems';\nexport { cacheGetEventData } from './domUtils/event/cacheGetEventData';\nexport {\n setParagraphMarker,\n getParagraphMarker,\n} from './domUtils/hiddenProperties/paragraphMarker';\nexport { setImageState, getImageState } from './domUtils/hiddenProperties/imageState';\nexport { getRangesByText } from './domUtils/getRangesByText';\n\nexport { isBlockGroupOfType } from './modelApi/typeCheck/isBlockGroupOfType';\n\nexport { iterateSelections } from './modelApi/selection/iterateSelections';\nexport {\n getFirstSelectedListItem,\n getFirstSelectedTable,\n getOperationalBlocks,\n getSelectedParagraphs,\n getSelectedSegments,\n getSelectedSegmentsAndParagraphs,\n} from './modelApi/selection/collectSelections';\nexport { getSelectedCells } from './modelApi/selection/getSelectedCells';\nexport { hasSelectionInBlock } from './modelApi/selection/hasSelectionInBlock';\nexport { hasSelectionInSegment } from './modelApi/selection/hasSelectionInSegment';\nexport { hasSelectionInBlockGroup } from './modelApi/selection/hasSelectionInBlockGroup';\nexport { setSelection } from './modelApi/selection/setSelection';\n\nexport { cloneModel } from './modelApi/editing/cloneModel';\nexport { mergeModel } from './modelApi/editing/mergeModel';\nexport { deleteSelection } from './modelApi/editing/deleteSelection';\nexport { deleteSegment } from './modelApi/editing/deleteSegment';\nexport { deleteBlock } from './modelApi/editing/deleteBlock';\nexport { applyTableFormat, setFirstColumnFormatBorders } from './modelApi/editing/applyTableFormat';\nexport {\n normalizeTable,\n MIN_ALLOWED_TABLE_CELL_WIDTH,\n MIN_ALLOWED_TABLE_CELL_HEIGHT,\n} from './modelApi/editing/normalizeTable';\nexport { setTableCellBackgroundColor } from './modelApi/editing/setTableCellBackgroundColor';\nexport { retrieveModelFormatState } from './modelApi/editing/retrieveModelFormatState';\nexport { getListStyleTypeFromString } from './modelApi/editing/getListStyleTypeFromString';\nexport { getSegmentTextFormat } from './modelApi/editing/getSegmentTextFormat';\nexport { getClosestAncestorBlockGroupIndex } from './modelApi/editing/getClosestAncestorBlockGroupIndex';\nexport { runEditSteps } from './modelApi/editing/runEditSteps';\n\nexport { updateImageMetadata, getImageMetadata } from './modelApi/metadata/updateImageMetadata';\nexport {\n updateTableCellMetadata,\n getTableCellMetadata,\n} from './modelApi/metadata/updateTableCellMetadata';\nexport { updateTableMetadata, getTableMetadata } from './modelApi/metadata/updateTableMetadata';\nexport {\n updateListMetadata,\n getListMetadata,\n ListMetadataDefinition,\n} from './modelApi/metadata/updateListMetadata';\n\nexport { ChangeSource } from './constants/ChangeSource';\nexport { BulletListType } from './constants/BulletListType';\nexport { NumberingListType } from './constants/NumberingListType';\nexport { TableBorderFormat } from './constants/TableBorderFormat';\nexport { OrderedListStyleMap } from './constants/OrderedListStyleMap';\nexport { UnorderedListStyleMap } from './constants/UnorderedListStyleMap';\nexport { EmptySegmentFormat } from './constants/EmptySegmentFormat';\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../packages/roosterjs-content-model-dom/lib/index.ts"],"names":[],"mappings":"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","sourcesContent":["export { domToContentModel } from './domToModel/domToContentModel';\nexport { contentModelToDom } from './modelToDom/contentModelToDom';\nexport { contentModelToText } from './modelToText/contentModelToText';\n\nexport {\n childProcessor,\n handleRegularSelection,\n processChildNode,\n} from './domToModel/processors/childProcessor';\nexport { entityProcessor } from './domToModel/processors/entityProcessor';\nexport { tableProcessor } from './domToModel/processors/tableProcessor';\nexport { formatContainerProcessor } from './domToModel/processors/formatContainerProcessor';\nexport { getRegularSelectionOffsets } from './domToModel/utils/getRegularSelectionOffsets';\nexport { parseFormat } from './domToModel/utils/parseFormat';\nexport { areSameFormats } from './domToModel/utils/areSameFormats';\nexport { isBlockElement } from './domToModel/utils/isBlockElement';\nexport { buildSelectionMarker } from './domToModel/utils/buildSelectionMarker';\n\nexport { updateMetadata, getMetadata, hasMetadata } from './modelApi/metadata/updateMetadata';\nexport { isNodeOfType } from './domUtils/isNodeOfType';\nexport { isElementOfType } from './domUtils/isElementOfType';\nexport { getObjectKeys } from './domUtils/getObjectKeys';\nexport { getSafeIdSelector } from './domUtils/getSafeIdSelector';\nexport { toArray } from './domUtils/toArray';\nexport { moveChildNodes, wrapAllChildNodes } from './domUtils/moveChildNodes';\nexport { wrap } from './domUtils/wrap';\nexport { unwrap } from './domUtils/unwrap';\nexport {\n isEntityElement,\n findClosestEntityWrapper,\n getAllEntityWrappers,\n parseEntityFormat,\n generateEntityClassNames,\n addDelimiters,\n isEntityDelimiter,\n isBlockEntityContainer,\n findClosestBlockEntityContainer,\n} from './domUtils/entityUtils';\nexport { reuseCachedElement } from './domUtils/reuseCachedElement';\nexport { isWhiteSpacePreserved } from './domUtils/isWhiteSpacePreserved';\nexport { normalizeRect } from './domUtils/normalizeRect';\nexport { scrollRectIntoView } from './domUtils/scrollRectIntoView';\n\nexport { setLinkUndeletable, isLinkUndeletable } from './domUtils/hiddenProperties/undeletableLink';\n\nexport { createBr } from './modelApi/creators/createBr';\nexport { createListItem } from './modelApi/creators/createListItem';\nexport { createFormatContainer } from './modelApi/creators/createFormatContainer';\nexport { createParagraph } from './modelApi/creators/createParagraph';\nexport { createSelectionMarker } from './modelApi/creators/createSelectionMarker';\nexport { createTable } from './modelApi/creators/createTable';\nexport { createTableCell } from './modelApi/creators/createTableCell';\nexport { createText } from './modelApi/creators/createText';\nexport { createImage } from './modelApi/creators/createImage';\nexport { createContentModelDocument } from './modelApi/creators/createContentModelDocument';\nexport { createParagraphDecorator } from './modelApi/creators/createParagraphDecorator';\nexport { createGeneralSegment } from './modelApi/creators/createGeneralSegment';\nexport { createGeneralBlock } from './modelApi/creators/createGeneralBlock';\nexport { createEntity } from './modelApi/creators/createEntity';\nexport { createDivider } from './modelApi/creators/createDivider';\nexport { createListLevel } from './modelApi/creators/createListLevel';\nexport { createEmptyModel } from './modelApi/creators/createEmptyModel';\nexport { createTableRow } from './modelApi/creators/createTableRow';\n\nexport { mutateBlock, mutateSegments, mutateSegment } from './modelApi/common/mutate';\nexport { addBlock } from './modelApi/common/addBlock';\nexport { addCode } from './modelApi/common/addDecorators';\nexport { addLink } from './modelApi/common/addDecorators';\nexport { addTextSegment } from './modelApi/common/addTextSegment';\nexport { normalizeParagraph } from './modelApi/common/normalizeParagraph';\n\nexport { normalizeContentModel } from './modelApi/common/normalizeContentModel';\nexport { isGeneralSegment } from './modelApi/typeCheck/isGeneralSegment';\nexport { unwrapBlock } from './modelApi/common/unwrapBlock';\nexport { addSegment } from './modelApi/common/addSegment';\nexport { isEmpty } from './modelApi/common/isEmpty';\nexport { normalizeSingleSegment } from './modelApi/common/normalizeSegment';\nexport { mergeTextSegments } from './modelApi/common/mergeTextSegments';\nexport { normalizeSegmentFormat } from './modelApi/common/normalizeSegmentFormat';\n\nexport { setParagraphNotImplicit } from './modelApi/block/setParagraphNotImplicit';\nexport {\n copyFormat,\n ListFormats,\n ListFormatsToKeep,\n ListFormatsToMove,\n ParagraphFormats,\n} from './modelApi/block/copyFormat';\nexport { getOrderedListNumberStr } from './modelApi/list/getOrderedListNumberStr';\nexport { getAutoListStyleType } from './modelApi/list/getAutoListStyleType';\n\nexport { parseValueWithUnit } from './formatHandlers/utils/parseValueWithUnit';\nexport { BorderKeys } from './formatHandlers/utils/borderKeys';\nexport {\n DeprecatedColors,\n getColor,\n setColor,\n parseColor,\n defaultGenerateColorKey,\n} from './formatHandlers/utils/color';\n\nexport {\n createDomToModelContext,\n createDomToModelContextWithConfig,\n createDomToModelConfig,\n} from './domToModel/context/createDomToModelContext';\nexport {\n createModelToDomContext,\n createModelToDomContextWithConfig,\n createModelToDomConfig,\n} from './modelToDom/context/createModelToDomContext';\n\nexport { isBold } from './domUtils/style/isBold';\nexport { getSelectionRootNode } from './domUtils/selection/getSelectionRootNode';\nexport { getDOMInsertPointRect } from './domUtils/selection/getDOMInsertPointRect';\nexport { trimModelForSelection } from './domUtils/selection/trimModelForSelection';\nexport { isCharacterValue, isModifierKey, isCursorMovingKey } from './domUtils/event/eventUtils';\nexport { getNodePositionFromEvent } from './domUtils/event/getNodePositionFromEvent';\nexport { combineBorderValue, extractBorderValues } from './domUtils/style/borderValues';\nexport { isPunctuation, isSpace, normalizeText } from './domUtils/stringUtil';\nexport { parseTableCells } from './domUtils/table/parseTableCells';\nexport { readFile } from './domUtils/readFile';\nexport { retrieveDocumentMetadata } from './domUtils/retrieveDocumentMetadata';\nexport { transformColor, TransformColorOptions } from './domUtils/style/transformColor';\nexport { normalizeFontFamily } from './domUtils/style/normalizeFontFamily';\nexport { extractClipboardItems } from './domUtils/event/extractClipboardItems';\nexport { cacheGetEventData } from './domUtils/event/cacheGetEventData';\nexport {\n setParagraphMarker,\n getParagraphMarker,\n} from './domUtils/hiddenProperties/paragraphMarker';\nexport { setImageState, getImageState } from './domUtils/hiddenProperties/imageState';\nexport { getRangesByText } from './domUtils/getRangesByText';\n\nexport { isBlockGroupOfType } from './modelApi/typeCheck/isBlockGroupOfType';\n\nexport { iterateSelections } from './modelApi/selection/iterateSelections';\nexport {\n getFirstSelectedListItem,\n getFirstSelectedTable,\n getOperationalBlocks,\n getSelectedParagraphs,\n getSelectedSegments,\n getSelectedSegmentsAndParagraphs,\n} from './modelApi/selection/collectSelections';\nexport { getSelectedCells } from './modelApi/selection/getSelectedCells';\nexport { hasSelectionInBlock } from './modelApi/selection/hasSelectionInBlock';\nexport { hasSelectionInSegment } from './modelApi/selection/hasSelectionInSegment';\nexport { hasSelectionInBlockGroup } from './modelApi/selection/hasSelectionInBlockGroup';\nexport { setSelection } from './modelApi/selection/setSelection';\n\nexport { cloneModel } from './modelApi/editing/cloneModel';\nexport { mergeModel } from './modelApi/editing/mergeModel';\nexport { deleteSelection } from './modelApi/editing/deleteSelection';\nexport { deleteSegment } from './modelApi/editing/deleteSegment';\nexport { deleteBlock } from './modelApi/editing/deleteBlock';\nexport { applyTableFormat, setFirstColumnFormatBorders } from './modelApi/editing/applyTableFormat';\nexport {\n normalizeTable,\n MIN_ALLOWED_TABLE_CELL_WIDTH,\n MIN_ALLOWED_TABLE_CELL_HEIGHT,\n} from './modelApi/editing/normalizeTable';\nexport { setTableCellBackgroundColor } from './modelApi/editing/setTableCellBackgroundColor';\nexport { retrieveModelFormatState } from './modelApi/editing/retrieveModelFormatState';\nexport { getListStyleTypeFromString } from './modelApi/editing/getListStyleTypeFromString';\nexport { getSegmentTextFormat } from './modelApi/editing/getSegmentTextFormat';\nexport { getClosestAncestorBlockGroupIndex } from './modelApi/editing/getClosestAncestorBlockGroupIndex';\nexport { runEditSteps } from './modelApi/editing/runEditSteps';\n\nexport { updateImageMetadata, getImageMetadata } from './modelApi/metadata/updateImageMetadata';\nexport {\n updateTableCellMetadata,\n getTableCellMetadata,\n} from './modelApi/metadata/updateTableCellMetadata';\nexport { updateTableMetadata, getTableMetadata } from './modelApi/metadata/updateTableMetadata';\nexport {\n updateListMetadata,\n getListMetadata,\n ListMetadataDefinition,\n} from './modelApi/metadata/updateListMetadata';\n\nexport { ChangeSource } from './constants/ChangeSource';\nexport { BulletListType } from './constants/BulletListType';\nexport { NumberingListType } from './constants/NumberingListType';\nexport { TableBorderFormat } from './constants/TableBorderFormat';\nexport { OrderedListStyleMap } from './constants/OrderedListStyleMap';\nexport { UnorderedListStyleMap } from './constants/UnorderedListStyleMap';\nexport { EmptySegmentFormat } from './constants/EmptySegmentFormat';\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { __assign } from "tslib";
|
|
1
|
+
import { __assign, __values } from "tslib";
|
|
2
2
|
import { applyFormat } from '../utils/applyFormat';
|
|
3
3
|
import { getObjectKeys } from '../../domUtils/getObjectKeys';
|
|
4
4
|
import { optimize } from '../optimizers/optimize';
|
|
@@ -31,23 +31,40 @@ export var handleParagraph = function (doc, parent, paragraph, context, refNode)
|
|
|
31
31
|
segment: null,
|
|
32
32
|
};
|
|
33
33
|
var handleSegments = function () {
|
|
34
|
+
var e_1, _a;
|
|
35
|
+
var _b;
|
|
34
36
|
var parent = container;
|
|
35
37
|
if (parent) {
|
|
36
38
|
var firstSegment = paragraph.segments[0];
|
|
39
|
+
var segmentContext = context;
|
|
37
40
|
if ((firstSegment === null || firstSegment === void 0 ? void 0 : firstSegment.segmentType) == 'SelectionMarker') {
|
|
38
41
|
// Make sure there is a segment created before selection marker.
|
|
39
42
|
// If selection marker is the first selected segment in a paragraph, create a dummy text node,
|
|
40
43
|
// so after rewrite, the regularSelection object can have a valid segment object set to the text node.
|
|
41
|
-
context.modelHandlers.text(doc, parent, __assign(__assign({}, firstSegment), { segmentType: 'Text', text: '' }),
|
|
44
|
+
context.modelHandlers.text(doc, parent, __assign(__assign({}, firstSegment), { segmentType: 'Text', text: '' }), segmentContext, []);
|
|
42
45
|
}
|
|
43
|
-
paragraph.segments.
|
|
46
|
+
for (var i = 0; i < paragraph.segments.length; i++) {
|
|
47
|
+
var segment = paragraph.segments[i];
|
|
48
|
+
segmentContext.noFollowingTextSegmentOrLast =
|
|
49
|
+
i === paragraph.segments.length - 1 ||
|
|
50
|
+
!hasTextSegmentAfter(paragraph.segments, i);
|
|
44
51
|
var newSegments = [];
|
|
45
|
-
context.modelHandlers.segment(doc, parent, segment,
|
|
46
|
-
|
|
47
|
-
var
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
52
|
+
context.modelHandlers.segment(doc, parent, segment, segmentContext, newSegments);
|
|
53
|
+
try {
|
|
54
|
+
for (var newSegments_1 = (e_1 = void 0, __values(newSegments)), newSegments_1_1 = newSegments_1.next(); !newSegments_1_1.done; newSegments_1_1 = newSegments_1.next()) {
|
|
55
|
+
var node = newSegments_1_1.value;
|
|
56
|
+
(_b = context.domIndexer) === null || _b === void 0 ? void 0 : _b.onSegment(node, paragraph, [segment]);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
60
|
+
finally {
|
|
61
|
+
try {
|
|
62
|
+
if (newSegments_1_1 && !newSegments_1_1.done && (_a = newSegments_1.return)) _a.call(newSegments_1);
|
|
63
|
+
}
|
|
64
|
+
finally { if (e_1) throw e_1.error; }
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
delete segmentContext.noFollowingTextSegmentOrLast;
|
|
51
68
|
}
|
|
52
69
|
};
|
|
53
70
|
if (needParagraphWrapper) {
|
|
@@ -86,4 +103,19 @@ export var handleParagraph = function (doc, parent, paragraph, context, refNode)
|
|
|
86
103
|
}
|
|
87
104
|
return refNode;
|
|
88
105
|
};
|
|
106
|
+
function hasTextSegmentAfter(segments, index) {
|
|
107
|
+
for (var i = index + 1; i < segments.length; i++) {
|
|
108
|
+
var type = segments[i].segmentType;
|
|
109
|
+
if (type === 'SelectionMarker') {
|
|
110
|
+
continue;
|
|
111
|
+
}
|
|
112
|
+
if (type === 'Text') {
|
|
113
|
+
return true;
|
|
114
|
+
}
|
|
115
|
+
else {
|
|
116
|
+
return false;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
return false;
|
|
120
|
+
}
|
|
89
121
|
//# sourceMappingURL=handleParagraph.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handleParagraph.js","sourceRoot":"","sources":["../../../../../packages/roosterjs-content-model-dom/lib/modelToDom/handlers/handleParagraph.ts"],"names":[],"mappings":"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","sourcesContent":["import { applyFormat } from '../utils/applyFormat';\nimport { getObjectKeys } from '../../domUtils/getObjectKeys';\nimport { optimize } from '../optimizers/optimize';\nimport { reuseCachedElement } from '../../domUtils/reuseCachedElement';\nimport { stackFormat } from '../utils/stackFormat';\nimport { unwrap } from '../../domUtils/unwrap';\nimport type {\n ContentModelBlockHandler,\n ContentModelParagraph,\n ModelToDomContext,\n} from 'roosterjs-content-model-types';\n\nconst DefaultParagraphTag = 'div';\n\n/**\n * @internal\n */\nexport const handleParagraph: ContentModelBlockHandler<ContentModelParagraph> = (\n doc: Document,\n parent: Node,\n paragraph: ContentModelParagraph,\n context: ModelToDomContext,\n refNode: Node | null\n) => {\n let container = context.allowCacheElement ? paragraph.cachedElement : undefined;\n\n if (container && paragraph.segments.every(x => x.segmentType != 'General' && !x.isSelected)) {\n refNode = reuseCachedElement(parent, container, refNode, context.rewriteFromModel);\n } else {\n stackFormat(context, paragraph.decorator?.tagName || null, () => {\n const needParagraphWrapper =\n !paragraph.isImplicit ||\n !!paragraph.decorator ||\n (getObjectKeys(paragraph.format).length > 0 &&\n paragraph.segments.some(segment => segment.segmentType != 'SelectionMarker'));\n const formatOnWrapper = needParagraphWrapper\n ? {\n ...(paragraph.decorator?.format || {}),\n ...paragraph.segmentFormat,\n }\n : {};\n\n container = doc.createElement(paragraph.decorator?.tagName || DefaultParagraphTag);\n\n parent.insertBefore(container, refNode);\n\n context.regularSelection.current = {\n block: needParagraphWrapper ? container : container.parentNode,\n segment: null,\n };\n\n const handleSegments = () => {\n const parent = container;\n\n if (parent) {\n const firstSegment = paragraph.segments[0];\n\n if (firstSegment?.segmentType == 'SelectionMarker') {\n // Make sure there is a segment created before selection marker.\n // If selection marker is the first selected segment in a paragraph, create a dummy text node,\n // so after rewrite, the regularSelection object can have a valid segment object set to the text node.\n context.modelHandlers.text(\n doc,\n parent,\n {\n ...firstSegment,\n segmentType: 'Text',\n text: '',\n },\n context,\n []\n );\n }\n\n paragraph.segments.forEach(segment => {\n const newSegments: Node[] = [];\n context.modelHandlers.segment(doc, parent, segment, context, newSegments);\n\n newSegments.forEach(node => {\n context.domIndexer?.onSegment(node, paragraph, [segment]);\n });\n });\n }\n };\n\n if (needParagraphWrapper) {\n stackFormat(context, formatOnWrapper, handleSegments);\n\n applyFormat(container, context.formatAppliers.block, paragraph.format, context);\n applyFormat(container, context.formatAppliers.container, paragraph.format, context);\n applyFormat(\n container,\n context.formatAppliers.segmentOnBlock,\n formatOnWrapper,\n context\n );\n\n context.paragraphMap?.applyMarkerToDom(container, paragraph);\n } else {\n handleSegments();\n }\n\n optimize(container, context);\n\n // It is possible the next sibling node is changed during processing child segments\n // e.g. When this paragraph is an implicit paragraph and it contains an inline entity segment\n // The segment will be appended to container as child then the container will be removed\n // since this paragraph it is implicit. In that case container.nextSibling will become original\n // inline entity's next sibling. So reset refNode to its real next sibling (after change) here\n // to make sure the value is correct.\n refNode = container.nextSibling;\n\n if (container) {\n context.onNodeCreated?.(paragraph, container);\n context.domIndexer?.onParagraph(container);\n }\n\n if (needParagraphWrapper) {\n if (context.allowCacheElement) {\n paragraph.cachedElement = container;\n }\n\n context.rewriteFromModel.addedBlockElements.push(container);\n } else {\n unwrap(container);\n container = undefined;\n }\n });\n }\n\n return refNode;\n};\n"]}
|
|
1
|
+
{"version":3,"file":"handleParagraph.js","sourceRoot":"","sources":["../../../../../packages/roosterjs-content-model-dom/lib/modelToDom/handlers/handleParagraph.ts"],"names":[],"mappings":"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","sourcesContent":["import { applyFormat } from '../utils/applyFormat';\nimport { getObjectKeys } from '../../domUtils/getObjectKeys';\nimport { optimize } from '../optimizers/optimize';\nimport { reuseCachedElement } from '../../domUtils/reuseCachedElement';\nimport { stackFormat } from '../utils/stackFormat';\nimport { unwrap } from '../../domUtils/unwrap';\nimport type {\n ContentModelBlockHandler,\n ContentModelParagraph,\n ContentModelSegment,\n ModelToDomContext,\n ModelToDomSegmentContext,\n} from 'roosterjs-content-model-types';\n\nconst DefaultParagraphTag = 'div';\n\n/**\n * @internal\n */\nexport const handleParagraph: ContentModelBlockHandler<ContentModelParagraph> = (\n doc: Document,\n parent: Node,\n paragraph: ContentModelParagraph,\n context: ModelToDomContext,\n refNode: Node | null\n) => {\n let container = context.allowCacheElement ? paragraph.cachedElement : undefined;\n\n if (container && paragraph.segments.every(x => x.segmentType != 'General' && !x.isSelected)) {\n refNode = reuseCachedElement(parent, container, refNode, context.rewriteFromModel);\n } else {\n stackFormat(context, paragraph.decorator?.tagName || null, () => {\n const needParagraphWrapper =\n !paragraph.isImplicit ||\n !!paragraph.decorator ||\n (getObjectKeys(paragraph.format).length > 0 &&\n paragraph.segments.some(segment => segment.segmentType != 'SelectionMarker'));\n const formatOnWrapper = needParagraphWrapper\n ? {\n ...(paragraph.decorator?.format || {}),\n ...paragraph.segmentFormat,\n }\n : {};\n\n container = doc.createElement(paragraph.decorator?.tagName || DefaultParagraphTag);\n\n parent.insertBefore(container, refNode);\n\n context.regularSelection.current = {\n block: needParagraphWrapper ? container : container.parentNode,\n segment: null,\n };\n\n const handleSegments = () => {\n const parent = container;\n\n if (parent) {\n const firstSegment = paragraph.segments[0];\n\n const segmentContext: ModelToDomSegmentContext = context;\n\n if (firstSegment?.segmentType == 'SelectionMarker') {\n // Make sure there is a segment created before selection marker.\n // If selection marker is the first selected segment in a paragraph, create a dummy text node,\n // so after rewrite, the regularSelection object can have a valid segment object set to the text node.\n context.modelHandlers.text(\n doc,\n parent,\n {\n ...firstSegment,\n segmentType: 'Text',\n text: '',\n },\n segmentContext,\n []\n );\n }\n\n for (let i = 0; i < paragraph.segments.length; i++) {\n const segment = paragraph.segments[i];\n\n segmentContext.noFollowingTextSegmentOrLast =\n i === paragraph.segments.length - 1 ||\n !hasTextSegmentAfter(paragraph.segments, i);\n\n const newSegments: Node[] = [];\n context.modelHandlers.segment(\n doc,\n parent,\n segment,\n segmentContext,\n newSegments\n );\n\n for (const node of newSegments) {\n context.domIndexer?.onSegment(node, paragraph, [segment]);\n }\n }\n\n delete segmentContext.noFollowingTextSegmentOrLast;\n }\n };\n\n if (needParagraphWrapper) {\n stackFormat(context, formatOnWrapper, handleSegments);\n\n applyFormat(container, context.formatAppliers.block, paragraph.format, context);\n applyFormat(container, context.formatAppliers.container, paragraph.format, context);\n applyFormat(\n container,\n context.formatAppliers.segmentOnBlock,\n formatOnWrapper,\n context\n );\n\n context.paragraphMap?.applyMarkerToDom(container, paragraph);\n } else {\n handleSegments();\n }\n\n optimize(container, context);\n\n // It is possible the next sibling node is changed during processing child segments\n // e.g. When this paragraph is an implicit paragraph and it contains an inline entity segment\n // The segment will be appended to container as child then the container will be removed\n // since this paragraph it is implicit. In that case container.nextSibling will become original\n // inline entity's next sibling. So reset refNode to its real next sibling (after change) here\n // to make sure the value is correct.\n refNode = container.nextSibling;\n\n if (container) {\n context.onNodeCreated?.(paragraph, container);\n context.domIndexer?.onParagraph(container);\n }\n\n if (needParagraphWrapper) {\n if (context.allowCacheElement) {\n paragraph.cachedElement = container;\n }\n\n context.rewriteFromModel.addedBlockElements.push(container);\n } else {\n unwrap(container);\n container = undefined;\n }\n });\n }\n\n return refNode;\n};\n\nfunction hasTextSegmentAfter(segments: ReadonlyArray<ContentModelSegment>, index: number): boolean {\n for (let i = index + 1; i < segments.length; i++) {\n const type = segments[i].segmentType;\n if (type === 'SelectionMarker') {\n continue;\n }\n if (type === 'Text') {\n return true;\n } else {\n return false;\n }\n }\n return false;\n}\n"]}
|
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
import { handleSegmentCommon } from '../utils/handleSegmentCommon';
|
|
2
|
+
var nonBreakingSpace = '\u00A0';
|
|
2
3
|
/**
|
|
3
4
|
* @internal
|
|
4
5
|
*/
|
|
5
6
|
export var handleText = function (doc, parent, segment, context, segmentNodes) {
|
|
6
|
-
var
|
|
7
|
+
var textContent = context.noFollowingTextSegmentOrLast && segment.text.endsWith(' ')
|
|
8
|
+
? segment.text.slice(0, -1) + nonBreakingSpace
|
|
9
|
+
: segment.text;
|
|
10
|
+
var txt = doc.createTextNode(textContent);
|
|
7
11
|
var element = doc.createElement('span');
|
|
8
12
|
parent.appendChild(element);
|
|
9
13
|
element.appendChild(txt);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handleText.js","sourceRoot":"","sources":["../../../../../packages/roosterjs-content-model-dom/lib/modelToDom/handlers/handleText.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAGnE;;GAEG;AACH,MAAM,CAAC,IAAM,UAAU,GAAiD,UACpE,GAAG,EACH,MAAM,EACN,OAAO,EACP,OAAO,EACP,YAAY;IAEZ,IAAM,
|
|
1
|
+
{"version":3,"file":"handleText.js","sourceRoot":"","sources":["../../../../../packages/roosterjs-content-model-dom/lib/modelToDom/handlers/handleText.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAGnE,IAAM,gBAAgB,GAAG,QAAQ,CAAC;AAElC;;GAEG;AACH,MAAM,CAAC,IAAM,UAAU,GAAiD,UACpE,GAAG,EACH,MAAM,EACN,OAAO,EACP,OAAO,EACP,YAAY;IAEZ,IAAM,WAAW,GACb,OAAO,CAAC,4BAA4B,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;QAC9D,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,gBAAgB;QAC9C,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;IACvB,IAAM,GAAG,GAAG,GAAG,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;IAC5C,IAAM,OAAO,GAAG,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IAE1C,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC5B,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAEzB,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,UAAA,OAAO,IAAI,OAAA,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,EAArC,CAAqC,CAAC,CAAC;IAEtF,mBAAmB,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;AAC3E,CAAC,CAAC","sourcesContent":["import { handleSegmentCommon } from '../utils/handleSegmentCommon';\nimport type { ContentModelSegmentHandler, ContentModelText } from 'roosterjs-content-model-types';\n\nconst nonBreakingSpace = '\\u00A0';\n\n/**\n * @internal\n */\nexport const handleText: ContentModelSegmentHandler<ContentModelText> = (\n doc,\n parent,\n segment,\n context,\n segmentNodes\n) => {\n const textContent =\n context.noFollowingTextSegmentOrLast && segment.text.endsWith(' ')\n ? segment.text.slice(0, -1) + nonBreakingSpace\n : segment.text;\n const txt = doc.createTextNode(textContent);\n const element = doc.createElement('span');\n\n parent.appendChild(element);\n element.appendChild(txt);\n\n context.formatAppliers.text.forEach(applier => applier(segment.format, txt, context));\n\n handleSegmentCommon(doc, txt, element, segment, context, segmentNodes);\n};\n"]}
|
package/package.json
CHANGED
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
"description": "Content Model for roosterjs",
|
|
4
4
|
"dependencies": {
|
|
5
5
|
"tslib": "^2.3.1",
|
|
6
|
-
"roosterjs-content-model-types": "^9.
|
|
6
|
+
"roosterjs-content-model-types": "^9.47.0"
|
|
7
7
|
},
|
|
8
|
-
"version": "9.
|
|
8
|
+
"version": "9.47.0",
|
|
9
9
|
"main": "./lib/index.js",
|
|
10
10
|
"typings": "./lib/index.d.ts",
|
|
11
11
|
"module": "./lib-mjs/index.js",
|