roosterjs-content-model-dom 0.11.0 → 0.13.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/domToModel/processors/delimiterProcessor.d.ts +1 -1
- package/lib/domToModel/processors/delimiterProcessor.js +1 -0
- package/lib/domToModel/processors/delimiterProcessor.js.map +1 -1
- package/lib/domToModel/processors/listItemProcessor.js +1 -1
- package/lib/domToModel/processors/listItemProcessor.js.map +1 -1
- package/lib/domToModel/processors/listProcessor.js +15 -12
- package/lib/domToModel/processors/listProcessor.js.map +1 -1
- package/lib/domToModel/processors/textProcessor.js +2 -2
- package/lib/domToModel/processors/textProcessor.js.map +1 -1
- package/lib/domUtils/metadata/updateListMetadata.d.ts +0 -1
- package/lib/domUtils/metadata/updateListMetadata.js +0 -1
- package/lib/domUtils/metadata/updateListMetadata.js.map +1 -1
- package/lib/formatHandlers/defaultFormatHandlers.js +1 -9
- package/lib/formatHandlers/defaultFormatHandlers.js.map +1 -1
- package/lib/formatHandlers/list/listItemThreadFormatHandler.js +1 -1
- package/lib/formatHandlers/list/listItemThreadFormatHandler.js.map +1 -1
- package/lib/index.d.ts +2 -1
- package/lib/index.js +5 -5
- package/lib/index.js.map +1 -1
- package/lib/modelApi/common/hasSpacesOnly.d.ts +6 -0
- package/lib/modelApi/common/hasSpacesOnly.js +16 -0
- package/lib/modelApi/common/hasSpacesOnly.js.map +1 -0
- package/lib/modelApi/common/hasSpacesOnlyTest.d.ts +1 -0
- package/lib/modelApi/common/hasSpacesOnlyTest.js +38 -0
- package/lib/modelApi/common/hasSpacesOnlyTest.js.map +1 -0
- package/lib/modelApi/common/normalizeSegment.js +2 -2
- package/lib/modelApi/common/normalizeSegment.js.map +1 -1
- package/lib/modelApi/creators/createListItem.d.ts +2 -2
- package/lib/modelApi/creators/createListItem.js +4 -2
- package/lib/modelApi/creators/createListItem.js.map +1 -1
- package/lib/modelApi/creators/createListLevel.d.ts +8 -0
- package/lib/modelApi/creators/createListLevel.js +19 -0
- package/lib/modelApi/creators/createListLevel.js.map +1 -0
- package/lib/modelToDom/handlers/handleList.js +22 -21
- package/lib/modelToDom/handlers/handleList.js.map +1 -1
- package/lib/modelToDom/handlers/handleListItem.js +8 -1
- package/lib/modelToDom/handlers/handleListItem.js.map +1 -1
- package/lib-amd/domToModel/processors/delimiterProcessor.d.ts +1 -1
- package/lib-amd/domToModel/processors/delimiterProcessor.js +1 -0
- package/lib-amd/domToModel/processors/delimiterProcessor.js.map +1 -1
- package/lib-amd/domToModel/processors/listItemProcessor.js +1 -1
- package/lib-amd/domToModel/processors/listItemProcessor.js.map +1 -1
- package/lib-amd/domToModel/processors/listProcessor.js +14 -12
- package/lib-amd/domToModel/processors/listProcessor.js.map +1 -1
- package/lib-amd/domToModel/processors/textProcessor.js +2 -2
- package/lib-amd/domToModel/processors/textProcessor.js.map +1 -1
- package/lib-amd/domUtils/metadata/updateListMetadata.d.ts +0 -1
- package/lib-amd/domUtils/metadata/updateListMetadata.js +0 -1
- package/lib-amd/domUtils/metadata/updateListMetadata.js.map +1 -1
- package/lib-amd/formatHandlers/defaultFormatHandlers.js +2 -7
- package/lib-amd/formatHandlers/defaultFormatHandlers.js.map +1 -1
- package/lib-amd/formatHandlers/list/listItemThreadFormatHandler.js +1 -1
- package/lib-amd/formatHandlers/list/listItemThreadFormatHandler.js.map +1 -1
- package/lib-amd/index.d.ts +2 -1
- package/lib-amd/index.js +4 -5
- package/lib-amd/index.js.map +1 -1
- package/lib-amd/modelApi/common/hasSpacesOnly.d.ts +6 -0
- package/lib-amd/modelApi/common/hasSpacesOnly.js +18 -0
- package/lib-amd/modelApi/common/hasSpacesOnly.js.map +1 -0
- package/lib-amd/modelApi/common/hasSpacesOnlyTest.d.ts +1 -0
- package/lib-amd/modelApi/common/hasSpacesOnlyTest.js +39 -0
- package/lib-amd/modelApi/common/hasSpacesOnlyTest.js.map +1 -0
- package/lib-amd/modelApi/common/normalizeSegment.js +2 -2
- package/lib-amd/modelApi/common/normalizeSegment.js.map +1 -1
- package/lib-amd/modelApi/creators/createListItem.d.ts +2 -2
- package/lib-amd/modelApi/creators/createListItem.js +4 -2
- package/lib-amd/modelApi/creators/createListItem.js.map +1 -1
- package/lib-amd/modelApi/creators/createListLevel.d.ts +8 -0
- package/lib-amd/modelApi/creators/createListLevel.js +20 -0
- package/lib-amd/modelApi/creators/createListLevel.js.map +1 -0
- package/lib-amd/modelToDom/handlers/handleList.js +22 -22
- package/lib-amd/modelToDom/handlers/handleList.js.map +1 -1
- package/lib-amd/modelToDom/handlers/handleListItem.js +7 -2
- package/lib-amd/modelToDom/handlers/handleListItem.js.map +1 -1
- package/lib-mjs/domToModel/processors/delimiterProcessor.d.ts +1 -1
- package/lib-mjs/domToModel/processors/delimiterProcessor.js +1 -0
- package/lib-mjs/domToModel/processors/delimiterProcessor.js.map +1 -1
- package/lib-mjs/domToModel/processors/listItemProcessor.js +1 -1
- package/lib-mjs/domToModel/processors/listItemProcessor.js.map +1 -1
- package/lib-mjs/domToModel/processors/listProcessor.js +15 -12
- package/lib-mjs/domToModel/processors/listProcessor.js.map +1 -1
- package/lib-mjs/domToModel/processors/textProcessor.js +1 -1
- package/lib-mjs/domToModel/processors/textProcessor.js.map +1 -1
- package/lib-mjs/domUtils/metadata/updateListMetadata.d.ts +0 -1
- package/lib-mjs/domUtils/metadata/updateListMetadata.js +0 -1
- package/lib-mjs/domUtils/metadata/updateListMetadata.js.map +1 -1
- package/lib-mjs/formatHandlers/defaultFormatHandlers.js +1 -9
- package/lib-mjs/formatHandlers/defaultFormatHandlers.js.map +1 -1
- package/lib-mjs/formatHandlers/list/listItemThreadFormatHandler.js +1 -1
- package/lib-mjs/formatHandlers/list/listItemThreadFormatHandler.js.map +1 -1
- package/lib-mjs/index.d.ts +2 -1
- package/lib-mjs/index.js +2 -1
- package/lib-mjs/index.js.map +1 -1
- package/lib-mjs/modelApi/common/hasSpacesOnly.d.ts +6 -0
- package/lib-mjs/modelApi/common/hasSpacesOnly.js +12 -0
- package/lib-mjs/modelApi/common/hasSpacesOnly.js.map +1 -0
- package/lib-mjs/modelApi/common/hasSpacesOnlyTest.d.ts +1 -0
- package/lib-mjs/modelApi/common/hasSpacesOnlyTest.js +36 -0
- package/lib-mjs/modelApi/common/hasSpacesOnlyTest.js.map +1 -0
- package/lib-mjs/modelApi/common/normalizeSegment.js +1 -1
- package/lib-mjs/modelApi/common/normalizeSegment.js.map +1 -1
- package/lib-mjs/modelApi/creators/createListItem.d.ts +2 -2
- package/lib-mjs/modelApi/creators/createListItem.js +4 -2
- package/lib-mjs/modelApi/creators/createListItem.js.map +1 -1
- package/lib-mjs/modelApi/creators/createListLevel.d.ts +8 -0
- package/lib-mjs/modelApi/creators/createListLevel.js +15 -0
- package/lib-mjs/modelApi/creators/createListLevel.js.map +1 -0
- package/lib-mjs/modelToDom/handlers/handleList.js +22 -21
- package/lib-mjs/modelToDom/handlers/handleList.js.map +1 -1
- package/lib-mjs/modelToDom/handlers/handleListItem.js +8 -1
- package/lib-mjs/modelToDom/handlers/handleListItem.js.map +1 -1
- package/package.json +4 -4
- package/lib/domUtils/stringUtil.d.ts +0 -24
- package/lib/domUtils/stringUtil.js +0 -47
- package/lib/domUtils/stringUtil.js.map +0 -1
- package/lib/formatHandlers/list/listTypeFormatHandler.d.ts +0 -6
- package/lib/formatHandlers/list/listTypeFormatHandler.js +0 -17
- package/lib/formatHandlers/list/listTypeFormatHandler.js.map +0 -1
- package/lib-amd/domUtils/stringUtil.d.ts +0 -24
- package/lib-amd/domUtils/stringUtil.js +0 -49
- package/lib-amd/domUtils/stringUtil.js.map +0 -1
- package/lib-amd/formatHandlers/list/listTypeFormatHandler.d.ts +0 -6
- package/lib-amd/formatHandlers/list/listTypeFormatHandler.js +0 -18
- package/lib-amd/formatHandlers/list/listTypeFormatHandler.js.map +0 -1
- package/lib-mjs/domUtils/stringUtil.d.ts +0 -24
- package/lib-mjs/domUtils/stringUtil.js +0 -40
- package/lib-mjs/domUtils/stringUtil.js.map +0 -1
- package/lib-mjs/formatHandlers/list/listTypeFormatHandler.d.ts +0 -6
- package/lib-mjs/formatHandlers/list/listTypeFormatHandler.js +0 -14
- package/lib-mjs/formatHandlers/list/listTypeFormatHandler.js.map +0 -1
|
@@ -15,6 +15,7 @@ var delimiterProcessor = function (group, element, context) {
|
|
|
15
15
|
var _a = (0, tslib_1.__read)((0, getRegularSelectionOffsets_1.getRegularSelectionOffsets)(context, element), 2), nodeStartOffset = _a[0], nodeEndOffset = _a[1];
|
|
16
16
|
for (var child = element.firstChild; child; child = child.nextSibling) {
|
|
17
17
|
(0, childProcessor_1.handleRegularSelection)(index, context, group, nodeStartOffset, nodeEndOffset);
|
|
18
|
+
(0, exports.delimiterProcessor)(group, child, context);
|
|
18
19
|
index++;
|
|
19
20
|
}
|
|
20
21
|
(0, childProcessor_1.handleRegularSelection)(index, context, group, nodeStartOffset, nodeEndOffset);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delimiterProcessor.js","sourceRoot":"","sources":["../../../../../packages-content-model/roosterjs-content-model-dom/lib/domToModel/processors/delimiterProcessor.ts"],"names":[],"mappings":";;;;AACA,kFAAiF;AACjF,mDAA0D;AAE1D;;;;;GAKG;AACI,IAAM,kBAAkB,
|
|
1
|
+
{"version":3,"file":"delimiterProcessor.js","sourceRoot":"","sources":["../../../../../packages-content-model/roosterjs-content-model-dom/lib/domToModel/processors/delimiterProcessor.ts"],"names":[],"mappings":";;;;AACA,kFAAiF;AACjF,mDAA0D;AAE1D;;;;;GAKG;AACI,IAAM,kBAAkB,GAA2B,UAAC,KAAK,EAAE,OAAO,EAAE,OAAO;IAC9E,IAAI,KAAK,GAAG,CAAC,CAAC;IACR,IAAA,KAAA,oBAAmC,IAAA,uDAA0B,EAAC,OAAO,EAAE,OAAO,CAAC,IAAA,EAA9E,eAAe,QAAA,EAAE,aAAa,QAAgD,CAAC;IAEtF,KAAK,IAAI,KAAK,GAAG,OAAO,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE;QACnE,IAAA,uCAAsB,EAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,aAAa,CAAC,CAAC;QAE9E,IAAA,0BAAkB,EAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QAC1C,KAAK,EAAE,CAAC;KACX;IAED,IAAA,uCAAsB,EAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,aAAa,CAAC,CAAC;AAClF,CAAC,CAAC;AAZW,QAAA,kBAAkB,sBAY7B","sourcesContent":["import { ElementProcessor } from 'roosterjs-content-model-types';\nimport { getRegularSelectionOffsets } from '../utils/getRegularSelectionOffsets';\nimport { handleRegularSelection } from './childProcessor';\n\n/**\n * @internal\n * @param group\n * @param element\n * @param context\n */\nexport const delimiterProcessor: ElementProcessor<Node> = (group, element, context) => {\n let index = 0;\n const [nodeStartOffset, nodeEndOffset] = getRegularSelectionOffsets(context, element);\n\n for (let child = element.firstChild; child; child = child.nextSibling) {\n handleRegularSelection(index, context, group, nodeStartOffset, nodeEndOffset);\n\n delimiterProcessor(group, child, context);\n index++;\n }\n\n handleRegularSelection(index, context, group, nodeStartOffset, nodeEndOffset);\n};\n"]}
|
|
@@ -18,7 +18,7 @@ var listItemProcessor = function (group, element, context) {
|
|
|
18
18
|
var listItem = (0, createListItem_1.createListItem)(listFormat.levels, context.segmentFormat);
|
|
19
19
|
(0, parseFormat_1.parseFormat)(element, context.formatParsers.listItemElement, listItem.format, context);
|
|
20
20
|
listFormat.listParent.blocks.push(listItem);
|
|
21
|
-
(0, parseFormat_1.parseFormat)(element, context.formatParsers.listItem, listItem.levels[listItem.levels.length - 1], context);
|
|
21
|
+
(0, parseFormat_1.parseFormat)(element, context.formatParsers.listItem, listItem.levels[listItem.levels.length - 1].format, context);
|
|
22
22
|
context.elementProcessors.child(listItem, element, context);
|
|
23
23
|
var firstChild = listItem.blocks[0];
|
|
24
24
|
if (listItem.blocks.length == 1 &&
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listItemProcessor.js","sourceRoot":"","sources":["../../../../../packages-content-model/roosterjs-content-model-dom/lib/domToModel/processors/listItemProcessor.ts"],"names":[],"mappings":";;;AAAA,yEAAwE;AAExE,oDAAmD;AACnD,oDAAmD;AAEnD;;GAEG;AACI,IAAM,iBAAiB,GAAoC,UAAC,KAAK,EAAE,OAAO,EAAE,OAAO;;IAC9E,IAAA,UAAU,GAAK,OAAO,WAAZ,CAAa;IAE/B,IAAI,UAAU,CAAC,UAAU,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;QACvD,IAAA,yBAAW,EACP,OAAO,EACP;YACI,OAAO,EAAE,sBAAsB;SAClC,EACD;YACI,IAAA,yBAAW,EACP,OAAO,EACP,OAAO,CAAC,aAAa,CAAC,cAAc,EACpC,OAAO,CAAC,aAAa,EACrB,OAAO,CACV,CAAC;YAEF,IAAM,QAAQ,GAAG,IAAA,+BAAc,EAAC,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;YAC1E,IAAA,yBAAW,EACP,OAAO,EACP,OAAO,CAAC,aAAa,CAAC,eAAe,EACrC,QAAQ,CAAC,MAAM,EACf,OAAO,CACV,CAAC;YAEF,UAAU,CAAC,UAAW,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAE7C,IAAA,yBAAW,EACP,OAAO,EACP,OAAO,CAAC,aAAa,CAAC,QAAQ,EAC9B,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"listItemProcessor.js","sourceRoot":"","sources":["../../../../../packages-content-model/roosterjs-content-model-dom/lib/domToModel/processors/listItemProcessor.ts"],"names":[],"mappings":";;;AAAA,yEAAwE;AAExE,oDAAmD;AACnD,oDAAmD;AAEnD;;GAEG;AACI,IAAM,iBAAiB,GAAoC,UAAC,KAAK,EAAE,OAAO,EAAE,OAAO;;IAC9E,IAAA,UAAU,GAAK,OAAO,WAAZ,CAAa;IAE/B,IAAI,UAAU,CAAC,UAAU,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;QACvD,IAAA,yBAAW,EACP,OAAO,EACP;YACI,OAAO,EAAE,sBAAsB;SAClC,EACD;YACI,IAAA,yBAAW,EACP,OAAO,EACP,OAAO,CAAC,aAAa,CAAC,cAAc,EACpC,OAAO,CAAC,aAAa,EACrB,OAAO,CACV,CAAC;YAEF,IAAM,QAAQ,GAAG,IAAA,+BAAc,EAAC,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;YAC1E,IAAA,yBAAW,EACP,OAAO,EACP,OAAO,CAAC,aAAa,CAAC,eAAe,EACrC,QAAQ,CAAC,MAAM,EACf,OAAO,CACV,CAAC;YAEF,UAAU,CAAC,UAAW,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAE7C,IAAA,yBAAW,EACP,OAAO,EACP,OAAO,CAAC,aAAa,CAAC,QAAQ,EAC9B,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM,EAClD,OAAO,CACV,CAAC;YAEF,OAAO,CAAC,iBAAiB,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;YAE5D,IAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAEtC,IACI,QAAQ,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC;gBAC3B,UAAU,CAAC,SAAS,IAAI,WAAW;gBACnC,UAAU,CAAC,UAAU,EACvB;gBACE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;gBAClD,UAAU,CAAC,MAAM,GAAG,EAAE,CAAC;aAC1B;QACL,CAAC,CACJ,CAAC;KACL;SAAM;QACH,IAAM,aAAa,GAAG,MAAA,UAAU,CAAC,UAAU,0CAAE,MAAM,CAAC;QACpD,IAAM,QAAQ,GAAG,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAG,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,MAAM,IAAG,CAAC,CAAC,CAAC;QAE5D,OAAO,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAC1B,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,SAAS,KAAI,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,EACtD,OAAO,EACP,OAAO,CACV,CAAC;KACL;AACL,CAAC,CAAC;AA1DW,QAAA,iBAAiB,qBA0D5B","sourcesContent":["import { createListItem } from '../../modelApi/creators/createListItem';\nimport { ElementProcessor } from 'roosterjs-content-model-types';\nimport { parseFormat } from '../utils/parseFormat';\nimport { stackFormat } from '../utils/stackFormat';\n\n/**\n * @internal\n */\nexport const listItemProcessor: ElementProcessor<HTMLLIElement> = (group, element, context) => {\n const { listFormat } = context;\n\n if (listFormat.listParent && listFormat.levels.length > 0) {\n stackFormat(\n context,\n {\n segment: 'shallowCloneForBlock',\n },\n () => {\n parseFormat(\n element,\n context.formatParsers.segmentOnBlock,\n context.segmentFormat,\n context\n );\n\n const listItem = createListItem(listFormat.levels, context.segmentFormat);\n parseFormat(\n element,\n context.formatParsers.listItemElement,\n listItem.format,\n context\n );\n\n listFormat.listParent!.blocks.push(listItem);\n\n parseFormat(\n element,\n context.formatParsers.listItem,\n listItem.levels[listItem.levels.length - 1].format,\n context\n );\n\n context.elementProcessors.child(listItem, element, context);\n\n const firstChild = listItem.blocks[0];\n\n if (\n listItem.blocks.length == 1 &&\n firstChild.blockType == 'Paragraph' &&\n firstChild.isImplicit\n ) {\n Object.assign(listItem.format, firstChild.format);\n firstChild.format = {};\n }\n }\n );\n } else {\n const currentBlocks = listFormat.listParent?.blocks;\n const lastItem = currentBlocks?.[currentBlocks?.length - 1];\n\n context.elementProcessors['*'](\n lastItem?.blockType == 'BlockGroup' ? lastItem : group,\n element,\n context\n );\n }\n};\n"]}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.listProcessor = void 0;
|
|
4
|
-
var
|
|
4
|
+
var createListLevel_1 = require("../../modelApi/creators/createListLevel");
|
|
5
|
+
var listLevelMetadataFormatHandler_1 = require("../../formatHandlers/list/listLevelMetadataFormatHandler");
|
|
5
6
|
var parseFormat_1 = require("../utils/parseFormat");
|
|
6
7
|
var stackFormat_1 = require("../utils/stackFormat");
|
|
7
8
|
var updateListMetadata_1 = require("../../domUtils/metadata/updateListMetadata");
|
|
@@ -13,10 +14,20 @@ var listProcessor = function (group, element, context) {
|
|
|
13
14
|
segment: 'shallowCloneForBlock',
|
|
14
15
|
paragraph: 'shallowCloneForGroup',
|
|
15
16
|
}, function () {
|
|
16
|
-
var level = (0,
|
|
17
|
+
var level = (0, createListLevel_1.createListLevel)(element.tagName, context.blockFormat);
|
|
17
18
|
var listFormat = context.listFormat;
|
|
18
|
-
|
|
19
|
-
(0, parseFormat_1.parseFormat)(element, context.formatParsers.listLevel, level, context);
|
|
19
|
+
(0, parseFormat_1.parseFormat)(element, context.formatParsers.dataset, level.dataset, context);
|
|
20
|
+
(0, parseFormat_1.parseFormat)(element, context.formatParsers.listLevel, level.format, context);
|
|
21
|
+
// TODO: Move this out into roosterjs-content-model-editor package
|
|
22
|
+
(0, updateListMetadata_1.updateListMetadata)(level, function (metadata) {
|
|
23
|
+
metadata = metadata || {};
|
|
24
|
+
(0, parseFormat_1.parseFormat)(element, [listLevelMetadataFormatHandler_1.listLevelMetadataFormatHandler.parse], metadata, context);
|
|
25
|
+
if (typeof metadata.orderedStyleType == 'undefined' &&
|
|
26
|
+
typeof metadata.unorderedStyleType == 'undefined') {
|
|
27
|
+
metadata = null;
|
|
28
|
+
}
|
|
29
|
+
return metadata;
|
|
30
|
+
});
|
|
20
31
|
(0, parseFormat_1.parseFormat)(element, context.formatParsers.segment, context.segmentFormat, context);
|
|
21
32
|
var originalListParent = listFormat.listParent;
|
|
22
33
|
listFormat.listParent = listFormat.listParent || group;
|
|
@@ -31,12 +42,4 @@ var listProcessor = function (group, element, context) {
|
|
|
31
42
|
});
|
|
32
43
|
};
|
|
33
44
|
exports.listProcessor = listProcessor;
|
|
34
|
-
function processMetadata(element, context, level) {
|
|
35
|
-
var dataset = {};
|
|
36
|
-
(0, parseFormat_1.parseFormat)(element, context.formatParsers.dataset, dataset, context);
|
|
37
|
-
(0, updateListMetadata_1.updateListMetadata)({ dataset: dataset }, function (metadata) {
|
|
38
|
-
Object.assign(level, metadata || {});
|
|
39
|
-
return null;
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
45
|
//# sourceMappingURL=listProcessor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listProcessor.js","sourceRoot":"","sources":["../../../../../packages-content-model/roosterjs-content-model-dom/lib/domToModel/processors/listProcessor.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"listProcessor.js","sourceRoot":"","sources":["../../../../../packages-content-model/roosterjs-content-model-dom/lib/domToModel/processors/listProcessor.ts"],"names":[],"mappings":";;;AACA,2EAA0E;AAC1E,2GAA0G;AAC1G,oDAAmD;AACnD,oDAAmD;AACnD,iFAAgF;AAEhF;;GAEG;AACI,IAAM,aAAa,GAA0D,UAChF,KAAK,EACL,OAAO,EACP,OAAO;IAEP,IAAA,yBAAW,EACP,OAAO,EACP;QACI,OAAO,EAAE,sBAAsB;QAC/B,SAAS,EAAE,sBAAsB;KACpC,EACD;QACI,IAAM,KAAK,GAA0B,IAAA,iCAAe,EAChD,OAAO,CAAC,OAAsB,EAC9B,OAAO,CAAC,WAAW,CACtB,CAAC;QACM,IAAA,UAAU,GAAK,OAAO,WAAZ,CAAa;QAE/B,IAAA,yBAAW,EAAC,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC5E,IAAA,yBAAW,EAAC,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,SAAS,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAE7E,kEAAkE;QAClE,IAAA,uCAAkB,EAAC,KAAK,EAAE,UAAA,QAAQ;YAC9B,QAAQ,GAAG,QAAQ,IAAI,EAAE,CAAC;YAC1B,IAAA,yBAAW,EAAC,OAAO,EAAE,CAAC,+DAA8B,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;YAEhF,IACI,OAAO,QAAQ,CAAC,gBAAgB,IAAI,WAAW;gBAC/C,OAAO,QAAQ,CAAC,kBAAkB,IAAI,WAAW,EACnD;gBACE,QAAQ,GAAG,IAAI,CAAC;aACnB;YAED,OAAO,QAAQ,CAAC;QACpB,CAAC,CAAC,CAAC;QAEH,IAAA,yBAAW,EAAC,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QAEpF,IAAM,kBAAkB,GAAG,UAAU,CAAC,UAAU,CAAC;QAEjD,UAAU,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,IAAI,KAAK,CAAC;QACvD,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAE9B,IAAI;YACA,OAAO,CAAC,iBAAiB,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;SAC5D;gBAAS;YACN,UAAU,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;YACxB,UAAU,CAAC,UAAU,GAAG,kBAAkB,CAAC;SAC9C;IACL,CAAC,CACJ,CAAC;AACN,CAAC,CAAC;AAnDW,QAAA,aAAa,iBAmDxB","sourcesContent":["import { ContentModelListLevel, ElementProcessor } from 'roosterjs-content-model-types';\nimport { createListLevel } from '../../modelApi/creators/createListLevel';\nimport { listLevelMetadataFormatHandler } from '../../formatHandlers/list/listLevelMetadataFormatHandler';\nimport { parseFormat } from '../utils/parseFormat';\nimport { stackFormat } from '../utils/stackFormat';\nimport { updateListMetadata } from '../../domUtils/metadata/updateListMetadata';\n\n/**\n * @internal\n */\nexport const listProcessor: ElementProcessor<HTMLOListElement | HTMLUListElement> = (\n group,\n element,\n context\n) => {\n stackFormat(\n context,\n {\n segment: 'shallowCloneForBlock',\n paragraph: 'shallowCloneForGroup',\n },\n () => {\n const level: ContentModelListLevel = createListLevel(\n element.tagName as 'OL' | 'UL',\n context.blockFormat\n );\n const { listFormat } = context;\n\n parseFormat(element, context.formatParsers.dataset, level.dataset, context);\n parseFormat(element, context.formatParsers.listLevel, level.format, context);\n\n // TODO: Move this out into roosterjs-content-model-editor package\n updateListMetadata(level, metadata => {\n metadata = metadata || {};\n parseFormat(element, [listLevelMetadataFormatHandler.parse], metadata, context);\n\n if (\n typeof metadata.orderedStyleType == 'undefined' &&\n typeof metadata.unorderedStyleType == 'undefined'\n ) {\n metadata = null;\n }\n\n return metadata;\n });\n\n parseFormat(element, context.formatParsers.segment, context.segmentFormat, context);\n\n const originalListParent = listFormat.listParent;\n\n listFormat.listParent = listFormat.listParent || group;\n listFormat.levels.push(level);\n\n try {\n context.elementProcessors.child(group, element, context);\n } finally {\n listFormat.levels.pop();\n listFormat.listParent = originalListParent;\n }\n }\n );\n};\n"]}
|
|
@@ -8,7 +8,7 @@ var addSelectionMarker_1 = require("../utils/addSelectionMarker");
|
|
|
8
8
|
var areSameFormats_1 = require("../utils/areSameFormats");
|
|
9
9
|
var createText_1 = require("../../modelApi/creators/createText");
|
|
10
10
|
var getRegularSelectionOffsets_1 = require("../utils/getRegularSelectionOffsets");
|
|
11
|
-
var
|
|
11
|
+
var hasSpacesOnly_1 = require("../../modelApi/common/hasSpacesOnly");
|
|
12
12
|
/**
|
|
13
13
|
* @internal
|
|
14
14
|
*/
|
|
@@ -47,7 +47,7 @@ function addTextSegment(group, text, context) {
|
|
|
47
47
|
(0, areSameFormats_1.areSameFormats)(lastSegment.code || {}, context.code.format || {})) {
|
|
48
48
|
lastSegment.text += text;
|
|
49
49
|
}
|
|
50
|
-
else if (!(0,
|
|
50
|
+
else if (!(0, hasSpacesOnly_1.hasSpacesOnly)(text) ||
|
|
51
51
|
(paragraph === null || paragraph === void 0 ? void 0 : paragraph.segments.length) > 0 ||
|
|
52
52
|
WhiteSpaceValuesNeedToHandle.indexOf((paragraph === null || paragraph === void 0 ? void 0 : paragraph.format.whiteSpace) || '') >= 0) {
|
|
53
53
|
var textModel = (0, createText_1.createText)(text, context.segmentFormat);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"textProcessor.js","sourceRoot":"","sources":["../../../../../packages-content-model/roosterjs-content-model-dom/lib/domToModel/processors/textProcessor.ts"],"names":[],"mappings":";;;;AAAA,qEAAoE;AACpE,+DAA8D;AAC9D,kEAAiE;AACjE,0DAAyD;AACzD,iEAAgE;AAChE,kFAAiF;AACjF,
|
|
1
|
+
{"version":3,"file":"textProcessor.js","sourceRoot":"","sources":["../../../../../packages-content-model/roosterjs-content-model-dom/lib/domToModel/processors/textProcessor.ts"],"names":[],"mappings":"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","sourcesContent":["import { addDecorators } from '../../modelApi/common/addDecorators';\nimport { addSegment } from '../../modelApi/common/addSegment';\nimport { addSelectionMarker } from '../utils/addSelectionMarker';\nimport { areSameFormats } from '../utils/areSameFormats';\nimport { createText } from '../../modelApi/creators/createText';\nimport { getRegularSelectionOffsets } from '../utils/getRegularSelectionOffsets';\nimport { hasSpacesOnly } from '../../modelApi/common/hasSpacesOnly';\nimport {\n ContentModelBlockGroup,\n DomToModelContext,\n ElementProcessor,\n} from 'roosterjs-content-model-types';\n\n/**\n * @internal\n */\nexport const textProcessor: ElementProcessor<Text> = (\n group: ContentModelBlockGroup,\n textNode: Text,\n context: DomToModelContext\n) => {\n let txt = textNode.nodeValue || '';\n let [txtStartOffset, txtEndOffset] = getRegularSelectionOffsets(context, textNode);\n\n if (txtStartOffset >= 0) {\n addTextSegment(group, txt.substring(0, txtStartOffset), context);\n context.isInSelection = true;\n\n addSelectionMarker(group, context);\n\n txt = txt.substring(txtStartOffset);\n txtEndOffset -= txtStartOffset;\n }\n\n if (txtEndOffset >= 0) {\n addTextSegment(group, txt.substring(0, txtEndOffset), context);\n\n if (context.rangeEx && !context.rangeEx.areAllCollapsed) {\n addSelectionMarker(group, context);\n }\n\n context.isInSelection = false;\n txt = txt.substring(txtEndOffset);\n }\n\n addTextSegment(group, txt, context);\n};\n\n// When we see these values of white-space style, need to preserve spaces and line-breaks and let browser handle it for us.\nconst WhiteSpaceValuesNeedToHandle = ['pre', 'pre-wrap', 'pre-line', 'break-spaces'];\n\nfunction addTextSegment(group: ContentModelBlockGroup, text: string, context: DomToModelContext) {\n if (text) {\n const lastBlock = group.blocks[group.blocks.length - 1];\n const paragraph = lastBlock?.blockType == 'Paragraph' ? lastBlock : null;\n const lastSegment = paragraph?.segments[paragraph.segments.length - 1];\n\n if (\n lastSegment?.segmentType == 'Text' &&\n !!lastSegment.isSelected == !!context.isInSelection &&\n areSameFormats(lastSegment.format, context.segmentFormat) &&\n areSameFormats(lastSegment.link || {}, context.link.format || {}) &&\n areSameFormats(lastSegment.code || {}, context.code.format || {})\n ) {\n lastSegment.text += text;\n } else if (\n !hasSpacesOnly(text) ||\n paragraph?.segments.length! > 0 ||\n WhiteSpaceValuesNeedToHandle.indexOf(paragraph?.format.whiteSpace || '') >= 0\n ) {\n const textModel = createText(text, context.segmentFormat);\n\n if (context.isInSelection) {\n textModel.isSelected = true;\n }\n\n addDecorators(textModel, context);\n\n addSegment(group, textModel, context.blockFormat);\n }\n }\n}\n"]}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { ContentModelWithDataset, ListMetadataFormat } from 'roosterjs-content-model-types';
|
|
2
2
|
/**
|
|
3
|
-
* @internal
|
|
4
3
|
* Update list metadata with a callback
|
|
5
4
|
* @param list The list Content Model (metadata holder)
|
|
6
5
|
* @param callback The callback function used for updating metadata
|
|
@@ -8,7 +8,6 @@ var ListStyleDefinitionMetadata = (0, roosterjs_editor_dom_1.createObjectDefinit
|
|
|
8
8
|
unorderedStyleType: (0, roosterjs_editor_dom_1.createNumberDefinition)(true /** isOptional */, undefined /** value **/, 1 /* Min */, 9 /* Max */),
|
|
9
9
|
}, true /** isOptional */, true /** allowNull */);
|
|
10
10
|
/**
|
|
11
|
-
* @internal
|
|
12
11
|
* Update list metadata with a callback
|
|
13
12
|
* @param list The list Content Model (metadata holder)
|
|
14
13
|
* @param callback The callback function used for updating metadata
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"updateListMetadata.js","sourceRoot":"","sources":["../../../../../packages-content-model/roosterjs-content-model-dom/lib/domUtils/metadata/updateListMetadata.ts"],"names":[],"mappings":";;;AAEA,6DAAsF;AACtF,mDAAkD;AAElD,IAAM,2BAA2B,GAAG,IAAA,6CAAsB,EACtD;IACI,gBAAgB,EAAE,IAAA,6CAAsB,EACpC,IAAI,CAAC,iBAAiB,EACtB,SAAS,CAAC,aAAa,4BAG1B;IACD,kBAAkB,EAAE,IAAA,6CAAsB,EACtC,IAAI,CAAC,iBAAiB,EACtB,SAAS,CAAC,aAAa,2BAG1B;CACJ,EACD,IAAI,CAAC,iBAAiB,EACtB,IAAI,CAAC,gBAAgB,CACxB,CAAC;AAEF
|
|
1
|
+
{"version":3,"file":"updateListMetadata.js","sourceRoot":"","sources":["../../../../../packages-content-model/roosterjs-content-model-dom/lib/domUtils/metadata/updateListMetadata.ts"],"names":[],"mappings":";;;AAEA,6DAAsF;AACtF,mDAAkD;AAElD,IAAM,2BAA2B,GAAG,IAAA,6CAAsB,EACtD;IACI,gBAAgB,EAAE,IAAA,6CAAsB,EACpC,IAAI,CAAC,iBAAiB,EACtB,SAAS,CAAC,aAAa,4BAG1B;IACD,kBAAkB,EAAE,IAAA,6CAAsB,EACtC,IAAI,CAAC,iBAAiB,EACtB,SAAS,CAAC,aAAa,2BAG1B;CACJ,EACD,IAAI,CAAC,iBAAiB,EACtB,IAAI,CAAC,gBAAgB,CACxB,CAAC;AAEF;;;;GAIG;AACH,SAAgB,kBAAkB,CAC9B,IAAiD,EACjD,QAA2E;IAE3E,OAAO,IAAA,+BAAc,EAAC,IAAI,EAAE,QAAQ,EAAE,2BAA2B,CAAC,CAAC;AACvE,CAAC;AALD,gDAKC","sourcesContent":["import { BulletListType, NumberingListType } from 'roosterjs-editor-types';\nimport { ContentModelWithDataset, ListMetadataFormat } from 'roosterjs-content-model-types';\nimport { createNumberDefinition, createObjectDefinition } from 'roosterjs-editor-dom';\nimport { updateMetadata } from './updateMetadata';\n\nconst ListStyleDefinitionMetadata = createObjectDefinition<ListMetadataFormat>(\n {\n orderedStyleType: createNumberDefinition(\n true /** isOptional */,\n undefined /** value **/,\n NumberingListType.Min,\n NumberingListType.Max\n ),\n unorderedStyleType: createNumberDefinition(\n true /** isOptional */,\n undefined /** value **/,\n BulletListType.Min,\n BulletListType.Max\n ),\n },\n true /** isOptional */,\n true /** allowNull */\n);\n\n/**\n * Update list metadata with a callback\n * @param list The list Content Model (metadata holder)\n * @param callback The callback function used for updating metadata\n */\nexport function updateListMetadata(\n list: ContentModelWithDataset<ListMetadataFormat>,\n callback?: (format: ListMetadataFormat | null) => ListMetadataFormat | null\n): ListMetadataFormat | null {\n return updateMetadata(list, callback, ListStyleDefinitionMetadata);\n}\n"]}
|
|
@@ -19,12 +19,9 @@ var italicFormatHandler_1 = require("./segment/italicFormatHandler");
|
|
|
19
19
|
var letterSpacingFormatHandler_1 = require("./segment/letterSpacingFormatHandler");
|
|
20
20
|
var lineHeightFormatHandler_1 = require("./block/lineHeightFormatHandler");
|
|
21
21
|
var linkFormatHandler_1 = require("./segment/linkFormatHandler");
|
|
22
|
-
var listItemMetadataFormatHandler_1 = require("./list/listItemMetadataFormatHandler");
|
|
23
22
|
var listItemThreadFormatHandler_1 = require("./list/listItemThreadFormatHandler");
|
|
24
|
-
var listLevelMetadataFormatHandler_1 = require("./list/listLevelMetadataFormatHandler");
|
|
25
23
|
var listLevelThreadFormatHandler_1 = require("./list/listLevelThreadFormatHandler");
|
|
26
24
|
var listStylePositionFormatHandler_1 = require("./list/listStylePositionFormatHandler");
|
|
27
|
-
var listTypeFormatHandler_1 = require("./list/listTypeFormatHandler");
|
|
28
25
|
var marginFormatHandler_1 = require("./block/marginFormatHandler");
|
|
29
26
|
var paddingFormatHandler_1 = require("./block/paddingFormatHandler");
|
|
30
27
|
var sizeFormatHandler_1 = require("./common/sizeFormatHandler");
|
|
@@ -56,12 +53,9 @@ var defaultFormatHandlerMap = {
|
|
|
56
53
|
letterSpacing: letterSpacingFormatHandler_1.letterSpacingFormatHandler,
|
|
57
54
|
lineHeight: lineHeightFormatHandler_1.lineHeightFormatHandler,
|
|
58
55
|
link: linkFormatHandler_1.linkFormatHandler,
|
|
59
|
-
listItemMetadata: listItemMetadataFormatHandler_1.listItemMetadataFormatHandler,
|
|
60
56
|
listItemThread: listItemThreadFormatHandler_1.listItemThreadFormatHandler,
|
|
61
|
-
listLevelMetadata: listLevelMetadataFormatHandler_1.listLevelMetadataFormatHandler,
|
|
62
57
|
listLevelThread: listLevelThreadFormatHandler_1.listLevelThreadFormatHandler,
|
|
63
58
|
listStylePosition: listStylePositionFormatHandler_1.listStylePositionFormatHandler,
|
|
64
|
-
listType: listTypeFormatHandler_1.listTypeFormatHandler,
|
|
65
59
|
margin: marginFormatHandler_1.marginFormatHandler,
|
|
66
60
|
padding: paddingFormatHandler_1.paddingFormatHandler,
|
|
67
61
|
size: sizeFormatHandler_1.sizeFormatHandler,
|
|
@@ -103,12 +97,10 @@ var sharedContainerFormats = [
|
|
|
103
97
|
];
|
|
104
98
|
var defaultFormatKeysPerCategory = {
|
|
105
99
|
block: sharedBlockFormats,
|
|
106
|
-
listItem: ['listItemThread'
|
|
100
|
+
listItem: ['listItemThread'],
|
|
107
101
|
listItemElement: (0, tslib_1.__spreadArray)((0, tslib_1.__spreadArray)([], (0, tslib_1.__read)(sharedBlockFormats), false), ['direction', 'textAlign', 'lineHeight', 'margin'], false),
|
|
108
102
|
listLevel: [
|
|
109
|
-
'listType',
|
|
110
103
|
'listLevelThread',
|
|
111
|
-
'listLevelMetadata',
|
|
112
104
|
'direction',
|
|
113
105
|
'textAlign',
|
|
114
106
|
'margin',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaultFormatHandlers.js","sourceRoot":"","sources":["../../../../packages-content-model/roosterjs-content-model-dom/lib/formatHandlers/defaultFormatHandlers.ts"],"names":[],"mappings":"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","sourcesContent":["import { backgroundColorFormatHandler } from './common/backgroundColorFormatHandler';\nimport { boldFormatHandler } from './segment/boldFormatHandler';\nimport { borderBoxFormatHandler } from './common/borderBoxFormatHandler';\nimport { borderFormatHandler } from './common/borderFormatHandler';\nimport { boxShadowFormatHandler } from './common/boxShadowFormatHandler';\nimport { datasetFormatHandler } from './common/datasetFormatHandler';\nimport { directionFormatHandler } from './block/directionFormatHandler';\nimport { displayFormatHandler } from './block/displayFormatHandler';\nimport { fontFamilyFormatHandler } from './segment/fontFamilyFormatHandler';\nimport { fontSizeFormatHandler } from './segment/fontSizeFormatHandler';\nimport { FormatHandler } from './FormatHandler';\nimport { getObjectKeys } from 'roosterjs-editor-dom';\nimport { htmlAlignFormatHandler } from './block/htmlAlignFormatHandler';\nimport { idFormatHandler } from './common/idFormatHandler';\nimport { italicFormatHandler } from './segment/italicFormatHandler';\nimport { letterSpacingFormatHandler } from './segment/letterSpacingFormatHandler';\nimport { lineHeightFormatHandler } from './block/lineHeightFormatHandler';\nimport { linkFormatHandler } from './segment/linkFormatHandler';\nimport { listItemMetadataFormatHandler } from './list/listItemMetadataFormatHandler';\nimport { listItemThreadFormatHandler } from './list/listItemThreadFormatHandler';\nimport { listLevelMetadataFormatHandler } from './list/listLevelMetadataFormatHandler';\nimport { listLevelThreadFormatHandler } from './list/listLevelThreadFormatHandler';\nimport { listStylePositionFormatHandler } from './list/listStylePositionFormatHandler';\nimport { listTypeFormatHandler } from './list/listTypeFormatHandler';\nimport { marginFormatHandler } from './block/marginFormatHandler';\nimport { paddingFormatHandler } from './block/paddingFormatHandler';\nimport { sizeFormatHandler } from './common/sizeFormatHandler';\nimport { strikeFormatHandler } from './segment/strikeFormatHandler';\nimport { superOrSubScriptFormatHandler } from './segment/superOrSubScriptFormatHandler';\nimport { tableLayoutFormatHandler } from './table/tableLayoutFormatHandler';\nimport { tableSpacingFormatHandler } from './table/tableSpacingFormatHandler';\nimport { textAlignFormatHandler } from './block/textAlignFormatHandler';\nimport { textColorFormatHandler } from './segment/textColorFormatHandler';\nimport { textColorOnTableCellFormatHandler } from './table/textColorOnTableCellFormatHandler';\nimport { underlineFormatHandler } from './segment/underlineFormatHandler';\nimport { verticalAlignFormatHandler } from './common/verticalAlignFormatHandler';\nimport { whiteSpaceFormatHandler } from './block/whiteSpaceFormatHandler';\nimport { wordBreakFormatHandler } from './common/wordBreakFormatHandler';\nimport {\n ContentModelFormatMap,\n FormatHandlerTypeMap,\n FormatKey,\n FormatApplier,\n FormatAppliers,\n FormatAppliersPerCategory,\n FormatParser,\n FormatParsers,\n FormatParsersPerCategory,\n} from 'roosterjs-content-model-types';\n\ntype FormatHandlers = {\n [Key in FormatKey]: FormatHandler<FormatHandlerTypeMap[Key]>;\n};\n\nconst defaultFormatHandlerMap: FormatHandlers = {\n backgroundColor: backgroundColorFormatHandler,\n bold: boldFormatHandler,\n border: borderFormatHandler,\n borderBox: borderBoxFormatHandler,\n boxShadow: boxShadowFormatHandler,\n dataset: datasetFormatHandler,\n direction: directionFormatHandler,\n display: displayFormatHandler,\n fontFamily: fontFamilyFormatHandler,\n fontSize: fontSizeFormatHandler,\n htmlAlign: htmlAlignFormatHandler,\n id: idFormatHandler,\n italic: italicFormatHandler,\n letterSpacing: letterSpacingFormatHandler,\n lineHeight: lineHeightFormatHandler,\n link: linkFormatHandler,\n listItemMetadata: listItemMetadataFormatHandler,\n listItemThread: listItemThreadFormatHandler,\n listLevelMetadata: listLevelMetadataFormatHandler,\n listLevelThread: listLevelThreadFormatHandler,\n listStylePosition: listStylePositionFormatHandler,\n listType: listTypeFormatHandler,\n margin: marginFormatHandler,\n padding: paddingFormatHandler,\n size: sizeFormatHandler,\n strike: strikeFormatHandler,\n superOrSubScript: superOrSubScriptFormatHandler,\n tableLayout: tableLayoutFormatHandler,\n tableSpacing: tableSpacingFormatHandler,\n textAlign: textAlignFormatHandler,\n textColor: textColorFormatHandler,\n textColorOnTableCell: textColorOnTableCellFormatHandler,\n underline: underlineFormatHandler,\n verticalAlign: verticalAlignFormatHandler,\n whiteSpace: whiteSpaceFormatHandler,\n wordBreak: wordBreakFormatHandler,\n};\n\nconst styleBasedSegmentFormats: (keyof FormatHandlerTypeMap)[] = [\n 'letterSpacing',\n 'fontFamily',\n 'fontSize',\n];\n\nconst elementBasedSegmentFormats: (keyof FormatHandlerTypeMap)[] = [\n 'strike',\n 'underline',\n 'superOrSubScript',\n 'italic',\n 'bold',\n];\nconst sharedBlockFormats: (keyof FormatHandlerTypeMap)[] = [\n 'direction',\n 'textAlign',\n 'lineHeight',\n 'whiteSpace',\n];\nconst sharedContainerFormats: (keyof FormatHandlerTypeMap)[] = [\n 'backgroundColor',\n 'margin',\n 'padding',\n 'border',\n];\n\nconst defaultFormatKeysPerCategory: {\n [key in keyof ContentModelFormatMap]: (keyof FormatHandlerTypeMap)[];\n} = {\n block: sharedBlockFormats,\n listItem: ['listItemThread', 'listItemMetadata'],\n listItemElement: [...sharedBlockFormats, 'direction', 'textAlign', 'lineHeight', 'margin'],\n listLevel: [\n 'listType',\n 'listLevelThread',\n 'listLevelMetadata',\n 'direction',\n 'textAlign',\n 'margin',\n 'padding',\n 'listStylePosition',\n 'backgroundColor',\n ],\n styleBasedSegment: [...styleBasedSegmentFormats, 'textColor', 'backgroundColor', 'lineHeight'],\n elementBasedSegment: elementBasedSegmentFormats,\n segment: [\n ...styleBasedSegmentFormats,\n ...elementBasedSegmentFormats,\n 'textColor',\n 'backgroundColor',\n 'lineHeight',\n ],\n segmentOnBlock: [...styleBasedSegmentFormats, ...elementBasedSegmentFormats, 'textColor'],\n segmentOnTableCell: [\n ...styleBasedSegmentFormats,\n ...elementBasedSegmentFormats,\n 'textColorOnTableCell',\n ],\n tableCell: [\n 'border',\n 'backgroundColor',\n 'padding',\n 'verticalAlign',\n 'wordBreak',\n 'textColor',\n 'htmlAlign',\n 'size',\n ],\n tableRow: ['backgroundColor'],\n table: [\n 'id',\n 'border',\n 'backgroundColor',\n 'display',\n 'htmlAlign',\n 'margin',\n 'size',\n 'tableLayout',\n ],\n tableBorder: ['borderBox', 'tableSpacing'],\n tableCellBorder: ['borderBox'],\n image: ['id', 'size', 'margin', 'padding', 'borderBox', 'border', 'boxShadow', 'display'],\n link: [\n 'link',\n 'textColor',\n 'underline',\n 'display',\n 'margin',\n 'padding',\n 'backgroundColor',\n 'border',\n 'size',\n 'textAlign',\n ],\n segmentUnderLink: ['textColor'],\n code: ['fontFamily', 'display'],\n dataset: ['dataset'],\n divider: [...sharedBlockFormats, ...sharedContainerFormats, 'display', 'size', 'htmlAlign'],\n container: [...sharedContainerFormats, 'htmlAlign', 'size', 'display'],\n};\n\n/**\n * @internal\n */\nexport const defaultFormatParsers: FormatParsers = getObjectKeys(defaultFormatHandlerMap).reduce(\n (result, key) => {\n result[key] = defaultFormatHandlerMap[key].parse as FormatParser<any>;\n return result;\n },\n <FormatParsers>{}\n);\n\n/**\n * @internal\n */\nexport const defaultFormatAppliers: FormatAppliers = getObjectKeys(defaultFormatHandlerMap).reduce(\n (result, key) => {\n result[key] = defaultFormatHandlerMap[key].apply as FormatApplier<any>;\n return result;\n },\n <FormatAppliers>{}\n);\n\n/**\n * @internal\n */\nexport function getFormatParsers(\n override: Partial<FormatParsers> = {},\n additionalParsers: Partial<FormatParsersPerCategory> = {}\n): FormatParsersPerCategory {\n return getObjectKeys(defaultFormatKeysPerCategory).reduce((result, key) => {\n const value = defaultFormatKeysPerCategory[key]\n .map(\n formatKey =>\n (override[formatKey] === undefined\n ? defaultFormatParsers[formatKey]\n : override[formatKey]) as FormatParser<any>\n )\n .concat((additionalParsers[key] as FormatParser<any>[]) || []);\n\n result[key] = value;\n\n return result;\n }, {} as FormatParsersPerCategory);\n}\n\n/**\n * @internal\n */\nexport function getFormatAppliers(\n override: Partial<FormatAppliers> = {},\n additionalAppliers: Partial<FormatAppliersPerCategory> = {}\n): FormatAppliersPerCategory {\n return getObjectKeys(defaultFormatKeysPerCategory).reduce((result, key) => {\n const value = defaultFormatKeysPerCategory[key]\n .map(\n formatKey =>\n (override[formatKey] === undefined\n ? defaultFormatAppliers[formatKey]\n : override[formatKey]) as FormatApplier<any>\n )\n .concat((additionalAppliers[key] as FormatApplier<any>[]) || []);\n\n result[key] = value;\n\n return result;\n }, {} as FormatAppliersPerCategory);\n}\n"]}
|
|
1
|
+
{"version":3,"file":"defaultFormatHandlers.js","sourceRoot":"","sources":["../../../../packages-content-model/roosterjs-content-model-dom/lib/formatHandlers/defaultFormatHandlers.ts"],"names":[],"mappings":"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","sourcesContent":["import { backgroundColorFormatHandler } from './common/backgroundColorFormatHandler';\nimport { boldFormatHandler } from './segment/boldFormatHandler';\nimport { borderBoxFormatHandler } from './common/borderBoxFormatHandler';\nimport { borderFormatHandler } from './common/borderFormatHandler';\nimport { boxShadowFormatHandler } from './common/boxShadowFormatHandler';\nimport { datasetFormatHandler } from './common/datasetFormatHandler';\nimport { directionFormatHandler } from './block/directionFormatHandler';\nimport { displayFormatHandler } from './block/displayFormatHandler';\nimport { fontFamilyFormatHandler } from './segment/fontFamilyFormatHandler';\nimport { fontSizeFormatHandler } from './segment/fontSizeFormatHandler';\nimport { FormatHandler } from './FormatHandler';\nimport { getObjectKeys } from 'roosterjs-editor-dom';\nimport { htmlAlignFormatHandler } from './block/htmlAlignFormatHandler';\nimport { idFormatHandler } from './common/idFormatHandler';\nimport { italicFormatHandler } from './segment/italicFormatHandler';\nimport { letterSpacingFormatHandler } from './segment/letterSpacingFormatHandler';\nimport { lineHeightFormatHandler } from './block/lineHeightFormatHandler';\nimport { linkFormatHandler } from './segment/linkFormatHandler';\nimport { listItemThreadFormatHandler } from './list/listItemThreadFormatHandler';\nimport { listLevelThreadFormatHandler } from './list/listLevelThreadFormatHandler';\nimport { listStylePositionFormatHandler } from './list/listStylePositionFormatHandler';\nimport { marginFormatHandler } from './block/marginFormatHandler';\nimport { paddingFormatHandler } from './block/paddingFormatHandler';\nimport { sizeFormatHandler } from './common/sizeFormatHandler';\nimport { strikeFormatHandler } from './segment/strikeFormatHandler';\nimport { superOrSubScriptFormatHandler } from './segment/superOrSubScriptFormatHandler';\nimport { tableLayoutFormatHandler } from './table/tableLayoutFormatHandler';\nimport { tableSpacingFormatHandler } from './table/tableSpacingFormatHandler';\nimport { textAlignFormatHandler } from './block/textAlignFormatHandler';\nimport { textColorFormatHandler } from './segment/textColorFormatHandler';\nimport { textColorOnTableCellFormatHandler } from './table/textColorOnTableCellFormatHandler';\nimport { underlineFormatHandler } from './segment/underlineFormatHandler';\nimport { verticalAlignFormatHandler } from './common/verticalAlignFormatHandler';\nimport { whiteSpaceFormatHandler } from './block/whiteSpaceFormatHandler';\nimport { wordBreakFormatHandler } from './common/wordBreakFormatHandler';\nimport {\n ContentModelFormatMap,\n FormatHandlerTypeMap,\n FormatKey,\n FormatApplier,\n FormatAppliers,\n FormatAppliersPerCategory,\n FormatParser,\n FormatParsers,\n FormatParsersPerCategory,\n} from 'roosterjs-content-model-types';\n\ntype FormatHandlers = {\n [Key in FormatKey]: FormatHandler<FormatHandlerTypeMap[Key]>;\n};\n\nconst defaultFormatHandlerMap: FormatHandlers = {\n backgroundColor: backgroundColorFormatHandler,\n bold: boldFormatHandler,\n border: borderFormatHandler,\n borderBox: borderBoxFormatHandler,\n boxShadow: boxShadowFormatHandler,\n dataset: datasetFormatHandler,\n direction: directionFormatHandler,\n display: displayFormatHandler,\n fontFamily: fontFamilyFormatHandler,\n fontSize: fontSizeFormatHandler,\n htmlAlign: htmlAlignFormatHandler,\n id: idFormatHandler,\n italic: italicFormatHandler,\n letterSpacing: letterSpacingFormatHandler,\n lineHeight: lineHeightFormatHandler,\n link: linkFormatHandler,\n listItemThread: listItemThreadFormatHandler,\n listLevelThread: listLevelThreadFormatHandler,\n listStylePosition: listStylePositionFormatHandler,\n margin: marginFormatHandler,\n padding: paddingFormatHandler,\n size: sizeFormatHandler,\n strike: strikeFormatHandler,\n superOrSubScript: superOrSubScriptFormatHandler,\n tableLayout: tableLayoutFormatHandler,\n tableSpacing: tableSpacingFormatHandler,\n textAlign: textAlignFormatHandler,\n textColor: textColorFormatHandler,\n textColorOnTableCell: textColorOnTableCellFormatHandler,\n underline: underlineFormatHandler,\n verticalAlign: verticalAlignFormatHandler,\n whiteSpace: whiteSpaceFormatHandler,\n wordBreak: wordBreakFormatHandler,\n};\n\nconst styleBasedSegmentFormats: (keyof FormatHandlerTypeMap)[] = [\n 'letterSpacing',\n 'fontFamily',\n 'fontSize',\n];\n\nconst elementBasedSegmentFormats: (keyof FormatHandlerTypeMap)[] = [\n 'strike',\n 'underline',\n 'superOrSubScript',\n 'italic',\n 'bold',\n];\nconst sharedBlockFormats: (keyof FormatHandlerTypeMap)[] = [\n 'direction',\n 'textAlign',\n 'lineHeight',\n 'whiteSpace',\n];\nconst sharedContainerFormats: (keyof FormatHandlerTypeMap)[] = [\n 'backgroundColor',\n 'margin',\n 'padding',\n 'border',\n];\n\nconst defaultFormatKeysPerCategory: {\n [key in keyof ContentModelFormatMap]: (keyof FormatHandlerTypeMap)[];\n} = {\n block: sharedBlockFormats,\n listItem: ['listItemThread'],\n listItemElement: [...sharedBlockFormats, 'direction', 'textAlign', 'lineHeight', 'margin'],\n listLevel: [\n 'listLevelThread',\n 'direction',\n 'textAlign',\n 'margin',\n 'padding',\n 'listStylePosition',\n 'backgroundColor',\n ],\n styleBasedSegment: [...styleBasedSegmentFormats, 'textColor', 'backgroundColor', 'lineHeight'],\n elementBasedSegment: elementBasedSegmentFormats,\n segment: [\n ...styleBasedSegmentFormats,\n ...elementBasedSegmentFormats,\n 'textColor',\n 'backgroundColor',\n 'lineHeight',\n ],\n segmentOnBlock: [...styleBasedSegmentFormats, ...elementBasedSegmentFormats, 'textColor'],\n segmentOnTableCell: [\n ...styleBasedSegmentFormats,\n ...elementBasedSegmentFormats,\n 'textColorOnTableCell',\n ],\n tableCell: [\n 'border',\n 'backgroundColor',\n 'padding',\n 'verticalAlign',\n 'wordBreak',\n 'textColor',\n 'htmlAlign',\n 'size',\n ],\n tableRow: ['backgroundColor'],\n table: [\n 'id',\n 'border',\n 'backgroundColor',\n 'display',\n 'htmlAlign',\n 'margin',\n 'size',\n 'tableLayout',\n ],\n tableBorder: ['borderBox', 'tableSpacing'],\n tableCellBorder: ['borderBox'],\n image: ['id', 'size', 'margin', 'padding', 'borderBox', 'border', 'boxShadow', 'display'],\n link: [\n 'link',\n 'textColor',\n 'underline',\n 'display',\n 'margin',\n 'padding',\n 'backgroundColor',\n 'border',\n 'size',\n 'textAlign',\n ],\n segmentUnderLink: ['textColor'],\n code: ['fontFamily', 'display'],\n dataset: ['dataset'],\n divider: [...sharedBlockFormats, ...sharedContainerFormats, 'display', 'size', 'htmlAlign'],\n container: [...sharedContainerFormats, 'htmlAlign', 'size', 'display'],\n};\n\n/**\n * @internal\n */\nexport const defaultFormatParsers: FormatParsers = getObjectKeys(defaultFormatHandlerMap).reduce(\n (result, key) => {\n result[key] = defaultFormatHandlerMap[key].parse as FormatParser<any>;\n return result;\n },\n <FormatParsers>{}\n);\n\n/**\n * @internal\n */\nexport const defaultFormatAppliers: FormatAppliers = getObjectKeys(defaultFormatHandlerMap).reduce(\n (result, key) => {\n result[key] = defaultFormatHandlerMap[key].apply as FormatApplier<any>;\n return result;\n },\n <FormatAppliers>{}\n);\n\n/**\n * @internal\n */\nexport function getFormatParsers(\n override: Partial<FormatParsers> = {},\n additionalParsers: Partial<FormatParsersPerCategory> = {}\n): FormatParsersPerCategory {\n return getObjectKeys(defaultFormatKeysPerCategory).reduce((result, key) => {\n const value = defaultFormatKeysPerCategory[key]\n .map(\n formatKey =>\n (override[formatKey] === undefined\n ? defaultFormatParsers[formatKey]\n : override[formatKey]) as FormatParser<any>\n )\n .concat((additionalParsers[key] as FormatParser<any>[]) || []);\n\n result[key] = value;\n\n return result;\n }, {} as FormatParsersPerCategory);\n}\n\n/**\n * @internal\n */\nexport function getFormatAppliers(\n override: Partial<FormatAppliers> = {},\n additionalAppliers: Partial<FormatAppliersPerCategory> = {}\n): FormatAppliersPerCategory {\n return getObjectKeys(defaultFormatKeysPerCategory).reduce((result, key) => {\n const value = defaultFormatKeysPerCategory[key]\n .map(\n formatKey =>\n (override[formatKey] === undefined\n ? defaultFormatAppliers[formatKey]\n : override[formatKey]) as FormatApplier<any>\n )\n .concat((additionalAppliers[key] as FormatApplier<any>[]) || []);\n\n result[key] = value;\n\n return result;\n }, {} as FormatAppliersPerCategory);\n}\n"]}
|
|
@@ -19,7 +19,7 @@ exports.listItemThreadFormatHandler = {
|
|
|
19
19
|
listFormat.levels.forEach(function (level) {
|
|
20
20
|
// Delete restart number so next list item doesn't need to have this value.
|
|
21
21
|
// Then it will be treated as a continuous list item to the previous one
|
|
22
|
-
delete level.startNumberOverride;
|
|
22
|
+
delete level.format.startNumberOverride;
|
|
23
23
|
});
|
|
24
24
|
}
|
|
25
25
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listItemThreadFormatHandler.js","sourceRoot":"","sources":["../../../../../packages-content-model/roosterjs-content-model-dom/lib/formatHandlers/list/listItemThreadFormatHandler.ts"],"names":[],"mappings":";;;AAEA,6DAAsD;AAEtD;;GAEG;AACU,QAAA,2BAA2B,GAAoC;IACxE,KAAK,EAAE,UAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa;QACnC,IAAA,UAAU,GAAK,OAAO,WAAZ,CAAa;QAC/B,IAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC;QACvC,IAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,IAAI,aAAa,CAAC,OAAO,CAAC;QAE/D,IAAI,OAAO,IAAI,OAAO,IAAI,WAAW,EAAE;YACnC,MAAM,CAAC,mBAAmB,GAAG,OAAO,CAAC;SACxC;aAAM,IAAI,WAAW,CAAC,OAAO,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE;YAC1C,UAAU,CAAC,gBAAgB,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC;YACzC,UAAU,CAAC,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC1C,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,UAAA,KAAK;gBAC3B,2EAA2E;gBAC3E,wEAAwE;gBACxE,OAAO,KAAK,CAAC,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"listItemThreadFormatHandler.js","sourceRoot":"","sources":["../../../../../packages-content-model/roosterjs-content-model-dom/lib/formatHandlers/list/listItemThreadFormatHandler.ts"],"names":[],"mappings":";;;AAEA,6DAAsD;AAEtD;;GAEG;AACU,QAAA,2BAA2B,GAAoC;IACxE,KAAK,EAAE,UAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa;QACnC,IAAA,UAAU,GAAK,OAAO,WAAZ,CAAa;QAC/B,IAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC;QACvC,IAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,IAAI,aAAa,CAAC,OAAO,CAAC;QAE/D,IAAI,OAAO,IAAI,OAAO,IAAI,WAAW,EAAE;YACnC,MAAM,CAAC,mBAAmB,GAAG,OAAO,CAAC;SACxC;aAAM,IAAI,WAAW,CAAC,OAAO,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE;YAC1C,UAAU,CAAC,gBAAgB,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC;YACzC,UAAU,CAAC,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC1C,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,UAAA,KAAK;gBAC3B,2EAA2E;gBAC3E,wEAAwE;gBACxE,OAAO,KAAK,CAAC,MAAM,CAAC,mBAAmB,CAAC;YAC5C,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IACD,KAAK,EAAE,UAAC,MAAM,EAAE,OAAO,EAAE,OAAO;;QAC5B,IAAI,MAAM,CAAC,mBAAmB,EAAE;YAC5B,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,mBAAmB,CAAC;SACtD;aAAM,IAAI,WAAW,CAAC,OAAO,CAAC,EAAE;YACrB,IAAA,UAAU,GAAK,OAAO,WAAZ,CAAa;YACvB,IAAA,gBAAgB,GAAK,UAAU,iBAAf,CAAgB;YACxC,IAAM,KAAK,GAAG,UAAU,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,8FAA8F;YAE7I,IAAI,KAAK,IAAI,CAAC,EAAE;gBACZ,gBAAgB,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;gBACnC,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,MAAA,gBAAgB,CAAC,KAAK,CAAC,mCAAI,CAAC,CAAC,GAAG,CAAC,CAAC;aAChE;SACJ;IACL,CAAC;CACJ,CAAC;AAEF,SAAS,WAAW,CAAC,OAAoB;IACrC,OAAO,CACH,IAAA,qCAAc,EAAC,OAAO,EAAE,eAAe,CAAC;QACxC,IAAA,qCAAc,EAAC,OAAO,CAAC,UAAU,EAAE,kBAAkB,CAAC,CACzD,CAAC;AACN,CAAC","sourcesContent":["import { FormatHandler } from '../FormatHandler';\nimport { ListThreadFormat } from 'roosterjs-content-model-types';\nimport { safeInstanceOf } from 'roosterjs-editor-dom';\n\n/**\n * @internal\n */\nexport const listItemThreadFormatHandler: FormatHandler<ListThreadFormat> = {\n parse: (format, element, context, defaultStyles) => {\n const { listFormat } = context;\n const depth = listFormat.levels.length;\n const display = element.style.display || defaultStyles.display;\n\n if (display && display != 'list-item') {\n format.displayForDummyItem = display;\n } else if (isLiUnderOl(element) && depth > 0) {\n listFormat.threadItemCounts[depth - 1]++;\n listFormat.threadItemCounts.splice(depth);\n listFormat.levels.forEach(level => {\n // Delete restart number so next list item doesn't need to have this value.\n // Then it will be treated as a continuous list item to the previous one\n delete level.format.startNumberOverride;\n });\n }\n },\n apply: (format, element, context) => {\n if (format.displayForDummyItem) {\n element.style.display = format.displayForDummyItem;\n } else if (isLiUnderOl(element)) {\n const { listFormat } = context;\n const { threadItemCounts } = listFormat;\n const index = listFormat.nodeStack.length - 2; // The first one is always the parent of list, then minus another 1 to convert length to index\n\n if (index >= 0) {\n threadItemCounts.splice(index + 1);\n threadItemCounts[index] = (threadItemCounts[index] ?? 0) + 1;\n }\n }\n },\n};\n\nfunction isLiUnderOl(element: HTMLElement) {\n return (\n safeInstanceOf(element, 'HTMLLIElement') &&\n safeInstanceOf(element.parentNode, 'HTMLOListElement')\n );\n}\n"]}
|
package/lib/index.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ export { getRegularSelectionOffsets } from './domToModel/utils/getRegularSelecti
|
|
|
7
7
|
export { parseFormat } from './domToModel/utils/parseFormat';
|
|
8
8
|
export { areSameFormats } from './domToModel/utils/areSameFormats';
|
|
9
9
|
export { updateMetadata, hasMetadata } from './domUtils/metadata/updateMetadata';
|
|
10
|
+
export { updateListMetadata } from './domUtils/metadata/updateListMetadata';
|
|
10
11
|
export { isNodeOfType, NodeTypeMap } from './domUtils/isNodeOfType';
|
|
11
12
|
export { createBr } from './modelApi/creators/createBr';
|
|
12
13
|
export { createListItem } from './modelApi/creators/createListItem';
|
|
@@ -23,6 +24,7 @@ export { createGeneralSegment } from './modelApi/creators/createGeneralSegment';
|
|
|
23
24
|
export { createGeneralBlock } from './modelApi/creators/createGeneralBlock';
|
|
24
25
|
export { createEntity } from './modelApi/creators/createEntity';
|
|
25
26
|
export { createDivider } from './modelApi/creators/createDivider';
|
|
27
|
+
export { createListLevel } from './modelApi/creators/createListLevel';
|
|
26
28
|
export { addBlock } from './modelApi/common/addBlock';
|
|
27
29
|
export { addCode } from './modelApi/common/addDecorators';
|
|
28
30
|
export { addLink } from './modelApi/common/addDecorators';
|
|
@@ -36,5 +38,4 @@ export { setParagraphNotImplicit } from './modelApi/block/setParagraphNotImplici
|
|
|
36
38
|
export { parseValueWithUnit } from './formatHandlers/utils/parseValueWithUnit';
|
|
37
39
|
export { BorderKeys } from './formatHandlers/common/borderFormatHandler';
|
|
38
40
|
export { defaultImplicitFormatMap } from './formatHandlers/utils/defaultStyles';
|
|
39
|
-
export { isPunctuation, isSpace, normalizeText } from './domUtils/stringUtil';
|
|
40
41
|
export { createDomToModelContext } from './domToModel/context/createDomToModelContext';
|
package/lib/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createDomToModelContext = exports.
|
|
3
|
+
exports.createDomToModelContext = exports.defaultImplicitFormatMap = exports.BorderKeys = exports.parseValueWithUnit = exports.setParagraphNotImplicit = exports.normalizeSingleSegment = exports.isWhiteSpacePreserved = exports.addSegment = exports.unwrapBlock = exports.isGeneralSegment = exports.normalizeContentModel = exports.addLink = exports.addCode = exports.addBlock = 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.isNodeOfType = exports.updateListMetadata = exports.hasMetadata = exports.updateMetadata = exports.areSameFormats = exports.parseFormat = exports.getRegularSelectionOffsets = exports.tableProcessor = exports.entityProcessor = exports.processChildNode = exports.handleRegularSelection = exports.childProcessor = exports.contentModelToDom = exports.domToContentModel = void 0;
|
|
4
4
|
var domToContentModel_1 = require("./domToModel/domToContentModel");
|
|
5
5
|
Object.defineProperty(exports, "domToContentModel", { enumerable: true, get: function () { return domToContentModel_1.domToContentModel; } });
|
|
6
6
|
var contentModelToDom_1 = require("./modelToDom/contentModelToDom");
|
|
@@ -22,6 +22,8 @@ Object.defineProperty(exports, "areSameFormats", { enumerable: true, get: functi
|
|
|
22
22
|
var updateMetadata_1 = require("./domUtils/metadata/updateMetadata");
|
|
23
23
|
Object.defineProperty(exports, "updateMetadata", { enumerable: true, get: function () { return updateMetadata_1.updateMetadata; } });
|
|
24
24
|
Object.defineProperty(exports, "hasMetadata", { enumerable: true, get: function () { return updateMetadata_1.hasMetadata; } });
|
|
25
|
+
var updateListMetadata_1 = require("./domUtils/metadata/updateListMetadata");
|
|
26
|
+
Object.defineProperty(exports, "updateListMetadata", { enumerable: true, get: function () { return updateListMetadata_1.updateListMetadata; } });
|
|
25
27
|
var isNodeOfType_1 = require("./domUtils/isNodeOfType");
|
|
26
28
|
Object.defineProperty(exports, "isNodeOfType", { enumerable: true, get: function () { return isNodeOfType_1.isNodeOfType; } });
|
|
27
29
|
var createBr_1 = require("./modelApi/creators/createBr");
|
|
@@ -54,6 +56,8 @@ var createEntity_1 = require("./modelApi/creators/createEntity");
|
|
|
54
56
|
Object.defineProperty(exports, "createEntity", { enumerable: true, get: function () { return createEntity_1.createEntity; } });
|
|
55
57
|
var createDivider_1 = require("./modelApi/creators/createDivider");
|
|
56
58
|
Object.defineProperty(exports, "createDivider", { enumerable: true, get: function () { return createDivider_1.createDivider; } });
|
|
59
|
+
var createListLevel_1 = require("./modelApi/creators/createListLevel");
|
|
60
|
+
Object.defineProperty(exports, "createListLevel", { enumerable: true, get: function () { return createListLevel_1.createListLevel; } });
|
|
57
61
|
var addBlock_1 = require("./modelApi/common/addBlock");
|
|
58
62
|
Object.defineProperty(exports, "addBlock", { enumerable: true, get: function () { return addBlock_1.addBlock; } });
|
|
59
63
|
var addDecorators_1 = require("./modelApi/common/addDecorators");
|
|
@@ -80,10 +84,6 @@ var borderFormatHandler_1 = require("./formatHandlers/common/borderFormatHandler
|
|
|
80
84
|
Object.defineProperty(exports, "BorderKeys", { enumerable: true, get: function () { return borderFormatHandler_1.BorderKeys; } });
|
|
81
85
|
var defaultStyles_1 = require("./formatHandlers/utils/defaultStyles");
|
|
82
86
|
Object.defineProperty(exports, "defaultImplicitFormatMap", { enumerable: true, get: function () { return defaultStyles_1.defaultImplicitFormatMap; } });
|
|
83
|
-
var stringUtil_1 = require("./domUtils/stringUtil");
|
|
84
|
-
Object.defineProperty(exports, "isPunctuation", { enumerable: true, get: function () { return stringUtil_1.isPunctuation; } });
|
|
85
|
-
Object.defineProperty(exports, "isSpace", { enumerable: true, get: function () { return stringUtil_1.isSpace; } });
|
|
86
|
-
Object.defineProperty(exports, "normalizeText", { enumerable: true, get: function () { return stringUtil_1.normalizeText; } });
|
|
87
87
|
var createDomToModelContext_1 = require("./domToModel/context/createDomToModelContext");
|
|
88
88
|
Object.defineProperty(exports, "createDomToModelContext", { enumerable: true, get: function () { return createDomToModelContext_1.createDomToModelContext; } });
|
|
89
89
|
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../packages-content-model/roosterjs-content-model-dom/lib/index.ts"],"names":[],"mappings":";;;AAAA,oEAAmE;AAA1D,sHAAA,iBAAiB,OAAA;AAC1B,oEAAmE;AAA1D,sHAAA,iBAAiB,OAAA;AAE1B,yEAIgD;AAH5C,gHAAA,cAAc,OAAA;AACd,wHAAA,sBAAsB,OAAA;AACtB,kHAAA,gBAAgB,OAAA;AAEpB,2EAA0E;AAAjE,kHAAA,eAAe,OAAA;AACxB,yEAAwE;AAA/D,gHAAA,cAAc,OAAA;AACvB,4FAA2F;AAAlF,wIAAA,0BAA0B,OAAA;AACnC,8DAA6D;AAApD,0GAAA,WAAW,OAAA;AACpB,oEAAmE;AAA1D,gHAAA,cAAc,OAAA;AAEvB,qEAAiF;AAAxE,gHAAA,cAAc,OAAA;AAAE,6GAAA,WAAW,OAAA;AACpC,wDAAoE;AAA3D,4GAAA,YAAY,OAAA;AAErB,yDAAwD;AAA/C,oGAAA,QAAQ,OAAA;AACjB,qEAAoE;AAA3D,gHAAA,cAAc,OAAA;AACvB,mFAAkF;AAAzE,8HAAA,qBAAqB,OAAA;AAC9B,uEAAsE;AAA7D,kHAAA,eAAe,OAAA;AACxB,mFAAkF;AAAzE,8HAAA,qBAAqB,OAAA;AAC9B,+DAA8D;AAArD,0GAAA,WAAW,OAAA;AACpB,uEAAsE;AAA7D,kHAAA,eAAe,OAAA;AACxB,6DAA4D;AAAnD,wGAAA,UAAU,OAAA;AACnB,+DAA8D;AAArD,0GAAA,WAAW,OAAA;AACpB,6FAA4F;AAAnF,wIAAA,0BAA0B,OAAA;AACnC,yFAAwF;AAA/E,oIAAA,wBAAwB,OAAA;AACjC,iFAAgF;AAAvE,4HAAA,oBAAoB,OAAA;AAC7B,6EAA4E;AAAnE,wHAAA,kBAAkB,OAAA;AAC3B,iEAAgE;AAAvD,4GAAA,YAAY,OAAA;AACrB,mEAAkE;AAAzD,8GAAA,aAAa,OAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../packages-content-model/roosterjs-content-model-dom/lib/index.ts"],"names":[],"mappings":";;;AAAA,oEAAmE;AAA1D,sHAAA,iBAAiB,OAAA;AAC1B,oEAAmE;AAA1D,sHAAA,iBAAiB,OAAA;AAE1B,yEAIgD;AAH5C,gHAAA,cAAc,OAAA;AACd,wHAAA,sBAAsB,OAAA;AACtB,kHAAA,gBAAgB,OAAA;AAEpB,2EAA0E;AAAjE,kHAAA,eAAe,OAAA;AACxB,yEAAwE;AAA/D,gHAAA,cAAc,OAAA;AACvB,4FAA2F;AAAlF,wIAAA,0BAA0B,OAAA;AACnC,8DAA6D;AAApD,0GAAA,WAAW,OAAA;AACpB,oEAAmE;AAA1D,gHAAA,cAAc,OAAA;AAEvB,qEAAiF;AAAxE,gHAAA,cAAc,OAAA;AAAE,6GAAA,WAAW,OAAA;AACpC,6EAA4E;AAAnE,wHAAA,kBAAkB,OAAA;AAC3B,wDAAoE;AAA3D,4GAAA,YAAY,OAAA;AAErB,yDAAwD;AAA/C,oGAAA,QAAQ,OAAA;AACjB,qEAAoE;AAA3D,gHAAA,cAAc,OAAA;AACvB,mFAAkF;AAAzE,8HAAA,qBAAqB,OAAA;AAC9B,uEAAsE;AAA7D,kHAAA,eAAe,OAAA;AACxB,mFAAkF;AAAzE,8HAAA,qBAAqB,OAAA;AAC9B,+DAA8D;AAArD,0GAAA,WAAW,OAAA;AACpB,uEAAsE;AAA7D,kHAAA,eAAe,OAAA;AACxB,6DAA4D;AAAnD,wGAAA,UAAU,OAAA;AACnB,+DAA8D;AAArD,0GAAA,WAAW,OAAA;AACpB,6FAA4F;AAAnF,wIAAA,0BAA0B,OAAA;AACnC,yFAAwF;AAA/E,oIAAA,wBAAwB,OAAA;AACjC,iFAAgF;AAAvE,4HAAA,oBAAoB,OAAA;AAC7B,6EAA4E;AAAnE,wHAAA,kBAAkB,OAAA;AAC3B,iEAAgE;AAAvD,4GAAA,YAAY,OAAA;AACrB,mEAAkE;AAAzD,8GAAA,aAAa,OAAA;AACtB,uEAAsE;AAA7D,kHAAA,eAAe,OAAA;AAExB,uDAAsD;AAA7C,oGAAA,QAAQ,OAAA;AACjB,iEAA0D;AAAjD,wGAAA,OAAO,OAAA;AAChB,iEAA0D;AAAjD,wGAAA,OAAO,OAAA;AAChB,iFAAgF;AAAvE,8HAAA,qBAAqB,OAAA;AAC9B,uEAAsE;AAA7D,oHAAA,gBAAgB,OAAA;AACzB,6DAA4D;AAAnD,0GAAA,WAAW,OAAA;AACpB,2DAA0D;AAAjD,wGAAA,UAAU,OAAA;AACnB,iFAAgF;AAAvE,8HAAA,qBAAqB,OAAA;AAC9B,uEAA4E;AAAnE,0HAAA,sBAAsB,OAAA;AAE/B,oFAAmF;AAA1E,kIAAA,uBAAuB,OAAA;AAEhC,gFAA+E;AAAtE,wHAAA,kBAAkB,OAAA;AAC3B,mFAAyE;AAAhE,iHAAA,UAAU,OAAA;AACnB,sEAAgF;AAAvE,yHAAA,wBAAwB,OAAA;AAEjC,wFAAuF;AAA9E,kIAAA,uBAAuB,OAAA","sourcesContent":["export { domToContentModel } from './domToModel/domToContentModel';\nexport { contentModelToDom } from './modelToDom/contentModelToDom';\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 { getRegularSelectionOffsets } from './domToModel/utils/getRegularSelectionOffsets';\nexport { parseFormat } from './domToModel/utils/parseFormat';\nexport { areSameFormats } from './domToModel/utils/areSameFormats';\n\nexport { updateMetadata, hasMetadata } from './domUtils/metadata/updateMetadata';\nexport { updateListMetadata } from './domUtils/metadata/updateListMetadata';\nexport { isNodeOfType, NodeTypeMap } from './domUtils/isNodeOfType';\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';\n\nexport { addBlock } from './modelApi/common/addBlock';\nexport { addCode } from './modelApi/common/addDecorators';\nexport { addLink } from './modelApi/common/addDecorators';\nexport { normalizeContentModel } from './modelApi/common/normalizeContentModel';\nexport { isGeneralSegment } from './modelApi/common/isGeneralSegment';\nexport { unwrapBlock } from './modelApi/common/unwrapBlock';\nexport { addSegment } from './modelApi/common/addSegment';\nexport { isWhiteSpacePreserved } from './modelApi/common/isWhiteSpacePreserved';\nexport { normalizeSingleSegment } from './modelApi/common/normalizeSegment';\n\nexport { setParagraphNotImplicit } from './modelApi/block/setParagraphNotImplicit';\n\nexport { parseValueWithUnit } from './formatHandlers/utils/parseValueWithUnit';\nexport { BorderKeys } from './formatHandlers/common/borderFormatHandler';\nexport { defaultImplicitFormatMap } from './formatHandlers/utils/defaultStyles';\n\nexport { createDomToModelContext } from './domToModel/context/createDomToModelContext';\n"]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.hasSpacesOnly = void 0;
|
|
4
|
+
// A regex to match text that only has space and CR
|
|
5
|
+
// We use real space char " " (\u0020) here but not "\s" since "\s" will also match " " (\u00A0) which is something we need to keep
|
|
6
|
+
var SPACE_TEXT_REGEX = /^[\r\n\t ]*$/;
|
|
7
|
+
/**
|
|
8
|
+
* @internal
|
|
9
|
+
* Check if the given string only has space, including line breaks.
|
|
10
|
+
* @param txt The string to check
|
|
11
|
+
*/
|
|
12
|
+
function hasSpacesOnly(txt) {
|
|
13
|
+
return SPACE_TEXT_REGEX.test(txt);
|
|
14
|
+
}
|
|
15
|
+
exports.hasSpacesOnly = hasSpacesOnly;
|
|
16
|
+
//# sourceMappingURL=hasSpacesOnly.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hasSpacesOnly.js","sourceRoot":"","sources":["../../../../../packages-content-model/roosterjs-content-model-dom/lib/modelApi/common/hasSpacesOnly.ts"],"names":[],"mappings":";;;AAAA,mDAAmD;AACnD,wIAAwI;AACxI,IAAM,gBAAgB,GAAG,cAAc,CAAC;AAExC;;;;GAIG;AACH,SAAgB,aAAa,CAAC,GAAW;IACrC,OAAO,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACtC,CAAC;AAFD,sCAEC","sourcesContent":["// A regex to match text that only has space and CR\n// We use real space char \" \" (\\u0020) here but not \"\\s\" since \"\\s\" will also match \" \" (\\u00A0) which is something we need to keep\nconst SPACE_TEXT_REGEX = /^[\\r\\n\\t ]*$/;\n\n/**\n * @internal\n * Check if the given string only has space, including line breaks.\n * @param txt The string to check\n */\nexport function hasSpacesOnly(txt: string): boolean {\n return SPACE_TEXT_REGEX.test(txt);\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var hasSpacesOnly_1 = require("../../../lib/modelApi/common/hasSpacesOnly");
|
|
4
|
+
describe('hasSpacesOnly', function () {
|
|
5
|
+
it('Empty string', function () {
|
|
6
|
+
var result = (0, hasSpacesOnly_1.hasSpacesOnly)('');
|
|
7
|
+
expect(result).toBeTrue();
|
|
8
|
+
});
|
|
9
|
+
it('Normal space', function () {
|
|
10
|
+
var result = (0, hasSpacesOnly_1.hasSpacesOnly)(' ');
|
|
11
|
+
expect(result).toBeTrue();
|
|
12
|
+
});
|
|
13
|
+
it('CR', function () {
|
|
14
|
+
var result = (0, hasSpacesOnly_1.hasSpacesOnly)('\r\n');
|
|
15
|
+
expect(result).toBeTrue();
|
|
16
|
+
});
|
|
17
|
+
it('Text', function () {
|
|
18
|
+
var result = (0, hasSpacesOnly_1.hasSpacesOnly)('text');
|
|
19
|
+
expect(result).toBeFalse();
|
|
20
|
+
});
|
|
21
|
+
it(' ', function () {
|
|
22
|
+
var result = (0, hasSpacesOnly_1.hasSpacesOnly)('\u00a0');
|
|
23
|
+
expect(result).toBeFalse();
|
|
24
|
+
});
|
|
25
|
+
it('Combination 1', function () {
|
|
26
|
+
var result = (0, hasSpacesOnly_1.hasSpacesOnly)(' \r\n\t ');
|
|
27
|
+
expect(result).toBeTrue();
|
|
28
|
+
});
|
|
29
|
+
it('Combination 2', function () {
|
|
30
|
+
var result = (0, hasSpacesOnly_1.hasSpacesOnly)(' test ');
|
|
31
|
+
expect(result).toBeFalse();
|
|
32
|
+
});
|
|
33
|
+
it('Combination 3', function () {
|
|
34
|
+
var result = (0, hasSpacesOnly_1.hasSpacesOnly)(' \u00a0 ');
|
|
35
|
+
expect(result).toBeFalse();
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
//# sourceMappingURL=hasSpacesOnlyTest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hasSpacesOnlyTest.js","sourceRoot":"","sources":["../../../../../packages-content-model/roosterjs-content-model-dom/lib/modelApi/common/hasSpacesOnlyTest.ts"],"names":[],"mappings":";;AAAA,4EAA2E;AAE3E,QAAQ,CAAC,eAAe,EAAE;IACtB,EAAE,CAAC,cAAc,EAAE;QACf,IAAM,MAAM,GAAG,IAAA,6BAAa,EAAC,EAAE,CAAC,CAAC;QACjC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,cAAc,EAAE;QACf,IAAM,MAAM,GAAG,IAAA,6BAAa,EAAC,GAAG,CAAC,CAAC;QAClC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,IAAI,EAAE;QACL,IAAM,MAAM,GAAG,IAAA,6BAAa,EAAC,MAAM,CAAC,CAAC;QACrC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,MAAM,EAAE;QACP,IAAM,MAAM,GAAG,IAAA,6BAAa,EAAC,MAAM,CAAC,CAAC;QACrC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,QAAQ,EAAE;QACT,IAAM,MAAM,GAAG,IAAA,6BAAa,EAAC,QAAQ,CAAC,CAAC;QACvC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,eAAe,EAAE;QAChB,IAAM,MAAM,GAAG,IAAA,6BAAa,EAAC,YAAY,CAAC,CAAC;QAC3C,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,eAAe,EAAE;QAChB,IAAM,MAAM,GAAG,IAAA,6BAAa,EAAC,SAAS,CAAC,CAAC;QACxC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,eAAe,EAAE;QAChB,IAAM,MAAM,GAAG,IAAA,6BAAa,EAAC,YAAY,CAAC,CAAC;QAC3C,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,CAAC;IAC/B,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC","sourcesContent":["import { hasSpacesOnly } from '../../../lib/modelApi/common/hasSpacesOnly';\n\ndescribe('hasSpacesOnly', () => {\n it('Empty string', () => {\n const result = hasSpacesOnly('');\n expect(result).toBeTrue();\n });\n\n it('Normal space', () => {\n const result = hasSpacesOnly(' ');\n expect(result).toBeTrue();\n });\n\n it('CR', () => {\n const result = hasSpacesOnly('\\r\\n');\n expect(result).toBeTrue();\n });\n\n it('Text', () => {\n const result = hasSpacesOnly('text');\n expect(result).toBeFalse();\n });\n\n it(' ', () => {\n const result = hasSpacesOnly('\\u00a0');\n expect(result).toBeFalse();\n });\n\n it('Combination 1', () => {\n const result = hasSpacesOnly(' \\r\\n\\t ');\n expect(result).toBeTrue();\n });\n\n it('Combination 2', () => {\n const result = hasSpacesOnly(' test ');\n expect(result).toBeFalse();\n });\n\n it('Combination 3', () => {\n const result = hasSpacesOnly(' \\u00a0 ');\n expect(result).toBeFalse();\n });\n});\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.normalizeSegment = exports.createNormalizeSegmentContext = exports.normalizeSingleSegment = exports.normalizeAllSegments = void 0;
|
|
4
|
-
var
|
|
4
|
+
var hasSpacesOnly_1 = require("./hasSpacesOnly");
|
|
5
5
|
var SPACE = '\u0020';
|
|
6
6
|
var NONE_BREAK_SPACE = '\u00A0';
|
|
7
7
|
var LEADING_SPACE_REGEX = /^\u0020+/;
|
|
@@ -72,7 +72,7 @@ function normalizeSegment(segment, context) {
|
|
|
72
72
|
context.lastTextSegment = segment;
|
|
73
73
|
var first = segment.text.substring(0, 1);
|
|
74
74
|
var last = segment.text.substr(-1);
|
|
75
|
-
if (!(0,
|
|
75
|
+
if (!(0, hasSpacesOnly_1.hasSpacesOnly)(segment.text)) {
|
|
76
76
|
if (first == SPACE) {
|
|
77
77
|
// 1. Multiple leading space => single or empty (depends on if previous segment ends with space)
|
|
78
78
|
segment.text = segment.text.replace(LEADING_SPACE_REGEX, context.ignoreLeadingSpaces ? '' : NONE_BREAK_SPACE);
|