roosterjs-content-model-plugins 0.25.0 → 0.26.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/{lib-mjs/autoFormat/ContentModelAutoFormatPlugin.d.ts → lib/autoFormat/AutoFormatPlugin.d.ts} +53 -53
- package/lib/autoFormat/{ContentModelAutoFormatPlugin.js → AutoFormatPlugin.js} +81 -81
- package/lib/autoFormat/AutoFormatPlugin.js.map +1 -0
- package/lib/autoFormat/keyboardListTrigger.d.ts +5 -5
- package/lib/autoFormat/keyboardListTrigger.js +45 -45
- package/lib/autoFormat/keyboardListTrigger.js.map +1 -1
- package/lib/autoFormat/utils/convertAlphaToDecimals.d.ts +7 -7
- package/lib/autoFormat/utils/convertAlphaToDecimals.js +22 -22
- package/lib/autoFormat/utils/convertAlphaToDecimals.js.map +1 -1
- package/lib/autoFormat/utils/getIndex.d.ts +4 -4
- package/lib/autoFormat/utils/getIndex.js +13 -13
- package/lib/autoFormat/utils/getIndex.js.map +1 -1
- package/lib/autoFormat/utils/getListTypeStyle.d.ts +14 -14
- package/lib/autoFormat/utils/getListTypeStyle.js +87 -79
- package/lib/autoFormat/utils/getListTypeStyle.js.map +1 -1
- package/lib/autoFormat/utils/getNumberingListStyle.d.ts +4 -4
- package/lib/autoFormat/utils/getNumberingListStyle.js +153 -152
- package/lib/autoFormat/utils/getNumberingListStyle.js.map +1 -1
- package/{lib-amd/edit/ContentModelEditPlugin.d.ts → lib/edit/EditPlugin.d.ts} +39 -35
- package/lib/edit/EditPlugin.js +129 -0
- package/lib/edit/EditPlugin.js.map +1 -0
- package/lib/edit/deleteSteps/deleteAllSegmentBefore.d.ts +5 -5
- package/lib/edit/deleteSteps/deleteAllSegmentBefore.js +22 -22
- package/lib/edit/deleteSteps/deleteAllSegmentBefore.js.map +1 -1
- package/lib/edit/deleteSteps/deleteCollapsedSelection.d.ts +9 -9
- package/lib/edit/deleteSteps/deleteCollapsedSelection.js +93 -93
- package/lib/edit/deleteSteps/deleteCollapsedSelection.js.map +1 -1
- package/lib/edit/deleteSteps/deleteList.d.ts +5 -5
- package/lib/edit/deleteSteps/deleteList.js +23 -23
- package/lib/edit/deleteSteps/deleteList.js.map +1 -1
- package/lib/edit/deleteSteps/deleteWordSelection.d.ts +9 -9
- package/lib/edit/deleteSteps/deleteWordSelection.js +173 -173
- package/lib/edit/deleteSteps/deleteWordSelection.js.map +1 -1
- package/lib/edit/handleKeyboardEventCommon.d.ts +14 -14
- package/lib/edit/handleKeyboardEventCommon.js +54 -54
- package/lib/edit/handleKeyboardEventCommon.js.map +1 -1
- package/lib/edit/inputSteps/handleEnterOnList.d.ts +5 -0
- package/lib/edit/inputSteps/handleEnterOnList.js +68 -0
- package/lib/edit/inputSteps/handleEnterOnList.js.map +1 -0
- package/lib/edit/keyboardDelete.d.ts +9 -8
- package/lib/edit/keyboardDelete.js +71 -74
- package/lib/edit/keyboardDelete.js.map +1 -1
- package/lib/edit/keyboardInput.d.ts +5 -5
- package/lib/edit/keyboardInput.js +58 -50
- package/lib/edit/keyboardInput.js.map +1 -1
- package/lib/edit/keyboardTab.d.ts +5 -0
- package/lib/edit/keyboardTab.js +35 -0
- package/lib/edit/keyboardTab.js.map +1 -0
- package/lib/edit/utils/getLeafSiblingBlock.d.ts +23 -23
- package/lib/edit/utils/getLeafSiblingBlock.js +75 -75
- package/lib/edit/utils/getLeafSiblingBlock.js.map +1 -1
- package/lib/index.d.ts +3 -3
- package/lib/index.js +9 -9
- package/lib/index.js.map +1 -1
- package/lib/paste/Excel/processPastedContentFromExcel.d.ts +12 -12
- package/lib/paste/Excel/processPastedContentFromExcel.js +82 -82
- package/lib/paste/Excel/processPastedContentFromExcel.js.map +1 -1
- package/{lib-amd/paste/ContentModelPastePlugin.d.ts → lib/paste/PastePlugin.d.ts} +43 -43
- package/lib/paste/{ContentModelPastePlugin.js → PastePlugin.js} +131 -131
- package/lib/paste/PastePlugin.js.map +1 -0
- package/lib/paste/PowerPoint/processPastedContentFromPowerPoint.d.ts +7 -7
- package/lib/paste/PowerPoint/processPastedContentFromPowerPoint.js +19 -19
- package/lib/paste/PowerPoint/processPastedContentFromPowerPoint.js.map +1 -1
- package/lib/paste/WacComponents/constants.d.ts +48 -48
- package/lib/paste/WacComponents/constants.js +62 -62
- package/lib/paste/WacComponents/constants.js.map +1 -1
- package/lib/paste/WacComponents/processPastedContentWacComponents.d.ts +9 -9
- package/lib/paste/WacComponents/processPastedContentWacComponents.js +188 -188
- package/lib/paste/WacComponents/processPastedContentWacComponents.js.map +1 -1
- package/lib/paste/WordDesktop/WordMetadata.d.ts +9 -9
- package/lib/paste/WordDesktop/WordMetadata.js +2 -2
- package/lib/paste/WordDesktop/WordMetadata.js.map +1 -1
- package/lib/paste/WordDesktop/getStyleMetadata.d.ts +23 -23
- package/lib/paste/WordDesktop/getStyleMetadata.js +78 -78
- package/lib/paste/WordDesktop/getStyleMetadata.js.map +1 -1
- package/lib/paste/WordDesktop/processPastedContentFromWordDesktop.d.ts +7 -7
- package/lib/paste/WordDesktop/processPastedContentFromWordDesktop.js +58 -58
- package/lib/paste/WordDesktop/processPastedContentFromWordDesktop.js.map +1 -1
- package/lib/paste/WordDesktop/processWordComments.d.ts +7 -7
- package/lib/paste/WordDesktop/processWordComments.js +21 -21
- package/lib/paste/WordDesktop/processWordComments.js.map +1 -1
- package/lib/paste/WordDesktop/processWordLists.d.ts +11 -11
- package/lib/paste/WordDesktop/processWordLists.js +179 -179
- package/lib/paste/WordDesktop/processWordLists.js.map +1 -1
- package/lib/paste/WordDesktop/removeNegativeTextIndentParser.d.ts +5 -5
- package/lib/paste/WordDesktop/removeNegativeTextIndentParser.js +13 -13
- package/lib/paste/WordDesktop/removeNegativeTextIndentParser.js.map +1 -1
- package/lib/paste/pasteSourceValidations/constants.d.ts +17 -17
- package/lib/paste/pasteSourceValidations/constants.js +20 -20
- package/lib/paste/pasteSourceValidations/constants.js.map +1 -1
- package/lib/paste/pasteSourceValidations/documentContainWacElements.d.ts +8 -8
- package/lib/paste/pasteSourceValidations/documentContainWacElements.js +15 -15
- package/lib/paste/pasteSourceValidations/documentContainWacElements.js.map +1 -1
- package/lib/paste/pasteSourceValidations/getPasteSource.d.ts +27 -27
- package/lib/paste/pasteSourceValidations/getPasteSource.js +43 -43
- package/lib/paste/pasteSourceValidations/getPasteSource.js.map +1 -1
- package/lib/paste/pasteSourceValidations/isExcelDesktopDocument.d.ts +8 -8
- package/lib/paste/pasteSourceValidations/isExcelDesktopDocument.js +17 -17
- package/lib/paste/pasteSourceValidations/isExcelDesktopDocument.js.map +1 -1
- package/lib/paste/pasteSourceValidations/isExcelOnlineDocument.d.ts +8 -8
- package/lib/paste/pasteSourceValidations/isExcelOnlineDocument.js +19 -19
- package/lib/paste/pasteSourceValidations/isExcelOnlineDocument.js.map +1 -1
- package/lib/paste/pasteSourceValidations/isGoogleSheetDocument.d.ts +8 -8
- package/lib/paste/pasteSourceValidations/isGoogleSheetDocument.js +15 -15
- package/lib/paste/pasteSourceValidations/isGoogleSheetDocument.js.map +1 -1
- package/lib/paste/pasteSourceValidations/isPowerPointDesktopDocument.d.ts +8 -8
- package/lib/paste/pasteSourceValidations/isPowerPointDesktopDocument.js +15 -15
- package/lib/paste/pasteSourceValidations/isPowerPointDesktopDocument.js.map +1 -1
- package/lib/paste/pasteSourceValidations/isWordDesktopDocument.d.ts +8 -8
- package/lib/paste/pasteSourceValidations/isWordDesktopDocument.js +19 -19
- package/lib/paste/pasteSourceValidations/isWordDesktopDocument.js.map +1 -1
- package/lib/paste/pasteSourceValidations/shouldConvertToSingleImage.d.ts +9 -9
- package/lib/paste/pasteSourceValidations/shouldConvertToSingleImage.js +18 -18
- package/lib/paste/pasteSourceValidations/shouldConvertToSingleImage.js.map +1 -1
- package/lib/paste/utils/addParser.d.ts +5 -5
- package/lib/paste/utils/addParser.js +16 -16
- package/lib/paste/utils/addParser.js.map +1 -1
- package/lib/paste/utils/deprecatedColorParser.d.ts +5 -5
- package/lib/paste/utils/deprecatedColorParser.js +19 -19
- package/lib/paste/utils/deprecatedColorParser.js.map +1 -1
- package/lib/paste/utils/getStyles.d.ts +6 -6
- package/lib/paste/utils/getStyles.js +22 -22
- package/lib/paste/utils/getStyles.js.map +1 -1
- package/lib/paste/utils/linkParser.d.ts +5 -5
- package/lib/paste/utils/linkParser.js +27 -27
- package/lib/paste/utils/linkParser.js.map +1 -1
- package/lib/paste/utils/setProcessor.d.ts +5 -5
- package/lib/paste/utils/setProcessor.js +13 -13
- package/lib/paste/utils/setProcessor.js.map +1 -1
- package/lib/pluginUtils/CreateElement/CreateElementData.d.ts +35 -0
- package/lib/pluginUtils/CreateElement/CreateElementData.js +3 -0
- package/lib/pluginUtils/CreateElement/CreateElementData.js.map +1 -0
- package/lib/pluginUtils/CreateElement/createElement.d.ts +9 -0
- package/lib/pluginUtils/CreateElement/createElement.js +51 -0
- package/lib/pluginUtils/CreateElement/createElement.js.map +1 -0
- package/lib/pluginUtils/Disposable.d.ts +10 -0
- package/lib/pluginUtils/Disposable.js +3 -0
- package/lib/pluginUtils/Disposable.js.map +1 -0
- package/lib/pluginUtils/DragAndDrop/DragAndDropHandler.d.ts +45 -0
- package/lib/pluginUtils/DragAndDrop/DragAndDropHandler.js +3 -0
- package/lib/pluginUtils/DragAndDrop/DragAndDropHandler.js.map +1 -0
- package/lib/pluginUtils/DragAndDrop/DragAndDropHelper.d.ts +39 -0
- package/lib/pluginUtils/DragAndDrop/DragAndDropHelper.js +120 -0
- package/lib/pluginUtils/DragAndDrop/DragAndDropHelper.js.map +1 -0
- package/lib/pluginUtils/Rect/getIntersectedRect.d.ts +27 -0
- package/lib/pluginUtils/Rect/getIntersectedRect.js +45 -0
- package/lib/pluginUtils/Rect/getIntersectedRect.js.map +1 -0
- package/lib/pluginUtils/Rect/normalizeRect.d.ts +7 -0
- package/lib/pluginUtils/Rect/normalizeRect.js +20 -0
- package/lib/pluginUtils/Rect/normalizeRect.js.map +1 -0
- package/lib-amd/autoFormat/{ContentModelAutoFormatPlugin.d.ts → AutoFormatPlugin.d.ts} +53 -53
- package/lib-amd/autoFormat/{ContentModelAutoFormatPlugin.js → AutoFormatPlugin.js} +82 -82
- package/lib-amd/autoFormat/AutoFormatPlugin.js.map +1 -0
- package/lib-amd/autoFormat/keyboardListTrigger.d.ts +5 -5
- package/lib-amd/autoFormat/keyboardListTrigger.js +43 -43
- package/lib-amd/autoFormat/keyboardListTrigger.js.map +1 -1
- package/lib-amd/autoFormat/utils/convertAlphaToDecimals.d.ts +7 -7
- package/lib-amd/autoFormat/utils/convertAlphaToDecimals.js +24 -24
- package/lib-amd/autoFormat/utils/convertAlphaToDecimals.js.map +1 -1
- package/lib-amd/autoFormat/utils/getIndex.d.ts +4 -4
- package/lib-amd/autoFormat/utils/getIndex.js +14 -14
- package/lib-amd/autoFormat/utils/getIndex.js.map +1 -1
- package/lib-amd/autoFormat/utils/getListTypeStyle.d.ts +14 -14
- package/lib-amd/autoFormat/utils/getListTypeStyle.js +86 -78
- package/lib-amd/autoFormat/utils/getListTypeStyle.js.map +1 -1
- package/lib-amd/autoFormat/utils/getNumberingListStyle.d.ts +4 -4
- package/lib-amd/autoFormat/utils/getNumberingListStyle.js +153 -152
- package/lib-amd/autoFormat/utils/getNumberingListStyle.js.map +1 -1
- package/{lib-mjs/edit/ContentModelEditPlugin.d.ts → lib-amd/edit/EditPlugin.d.ts} +39 -35
- package/lib-amd/edit/EditPlugin.js +128 -0
- package/lib-amd/edit/EditPlugin.js.map +1 -0
- package/lib-amd/edit/deleteSteps/deleteAllSegmentBefore.d.ts +5 -5
- package/lib-amd/edit/deleteSteps/deleteAllSegmentBefore.js +23 -23
- package/lib-amd/edit/deleteSteps/deleteAllSegmentBefore.js.map +1 -1
- package/lib-amd/edit/deleteSteps/deleteCollapsedSelection.d.ts +9 -9
- package/lib-amd/edit/deleteSteps/deleteCollapsedSelection.js +92 -92
- package/lib-amd/edit/deleteSteps/deleteCollapsedSelection.js.map +1 -1
- package/lib-amd/edit/deleteSteps/deleteList.d.ts +5 -5
- package/lib-amd/edit/deleteSteps/deleteList.js +24 -24
- package/lib-amd/edit/deleteSteps/deleteList.js.map +1 -1
- package/lib-amd/edit/deleteSteps/deleteWordSelection.d.ts +9 -9
- package/lib-amd/edit/deleteSteps/deleteWordSelection.js +172 -172
- package/lib-amd/edit/deleteSteps/deleteWordSelection.js.map +1 -1
- package/lib-amd/edit/handleKeyboardEventCommon.d.ts +14 -14
- package/lib-amd/edit/handleKeyboardEventCommon.js +55 -55
- package/lib-amd/edit/handleKeyboardEventCommon.js.map +1 -1
- package/lib-amd/edit/inputSteps/handleEnterOnList.d.ts +5 -0
- package/lib-amd/edit/inputSteps/handleEnterOnList.js +67 -0
- package/lib-amd/edit/inputSteps/handleEnterOnList.js.map +1 -0
- package/lib-amd/edit/keyboardDelete.d.ts +9 -8
- package/lib-amd/edit/keyboardDelete.js +66 -69
- package/lib-amd/edit/keyboardDelete.js.map +1 -1
- package/lib-amd/edit/keyboardInput.d.ts +5 -5
- package/lib-amd/edit/keyboardInput.js +57 -50
- package/lib-amd/edit/keyboardInput.js.map +1 -1
- package/lib-amd/edit/keyboardTab.d.ts +5 -0
- package/lib-amd/edit/keyboardTab.js +35 -0
- package/lib-amd/edit/keyboardTab.js.map +1 -0
- package/lib-amd/edit/utils/getLeafSiblingBlock.d.ts +23 -23
- package/lib-amd/edit/utils/getLeafSiblingBlock.js +75 -75
- package/lib-amd/edit/utils/getLeafSiblingBlock.js.map +1 -1
- package/lib-amd/index.d.ts +3 -3
- package/lib-amd/index.js +8 -8
- package/lib-amd/index.js.map +1 -1
- package/lib-amd/paste/Excel/processPastedContentFromExcel.d.ts +12 -12
- package/lib-amd/paste/Excel/processPastedContentFromExcel.js +80 -80
- package/lib-amd/paste/Excel/processPastedContentFromExcel.js.map +1 -1
- package/{lib/paste/ContentModelPastePlugin.d.ts → lib-amd/paste/PastePlugin.d.ts} +43 -43
- package/lib-amd/paste/{ContentModelPastePlugin.js → PastePlugin.js} +123 -123
- package/lib-amd/paste/PastePlugin.js.map +1 -0
- package/lib-amd/paste/PowerPoint/processPastedContentFromPowerPoint.d.ts +7 -7
- package/lib-amd/paste/PowerPoint/processPastedContentFromPowerPoint.js +20 -20
- package/lib-amd/paste/PowerPoint/processPastedContentFromPowerPoint.js.map +1 -1
- package/lib-amd/paste/WacComponents/constants.d.ts +48 -48
- package/lib-amd/paste/WacComponents/constants.js +63 -63
- package/lib-amd/paste/WacComponents/constants.js.map +1 -1
- package/lib-amd/paste/WacComponents/processPastedContentWacComponents.d.ts +9 -9
- package/lib-amd/paste/WacComponents/processPastedContentWacComponents.js +185 -185
- package/lib-amd/paste/WacComponents/processPastedContentWacComponents.js.map +1 -1
- package/lib-amd/paste/WordDesktop/WordMetadata.d.ts +9 -9
- package/lib-amd/paste/WordDesktop/WordMetadata.js +4 -4
- package/lib-amd/paste/WordDesktop/WordMetadata.js.map +1 -1
- package/lib-amd/paste/WordDesktop/getStyleMetadata.d.ts +23 -23
- package/lib-amd/paste/WordDesktop/getStyleMetadata.js +78 -78
- package/lib-amd/paste/WordDesktop/getStyleMetadata.js.map +1 -1
- package/lib-amd/paste/WordDesktop/processPastedContentFromWordDesktop.d.ts +7 -7
- package/lib-amd/paste/WordDesktop/processPastedContentFromWordDesktop.js +53 -53
- package/lib-amd/paste/WordDesktop/processPastedContentFromWordDesktop.js.map +1 -1
- package/lib-amd/paste/WordDesktop/processWordComments.d.ts +7 -7
- package/lib-amd/paste/WordDesktop/processWordComments.js +22 -22
- package/lib-amd/paste/WordDesktop/processWordComments.js.map +1 -1
- package/lib-amd/paste/WordDesktop/processWordLists.d.ts +11 -11
- package/lib-amd/paste/WordDesktop/processWordLists.js +177 -177
- package/lib-amd/paste/WordDesktop/processWordLists.js.map +1 -1
- package/lib-amd/paste/WordDesktop/removeNegativeTextIndentParser.d.ts +5 -5
- package/lib-amd/paste/WordDesktop/removeNegativeTextIndentParser.js +15 -15
- package/lib-amd/paste/WordDesktop/removeNegativeTextIndentParser.js.map +1 -1
- package/lib-amd/paste/pasteSourceValidations/constants.d.ts +17 -17
- package/lib-amd/paste/pasteSourceValidations/constants.js +22 -22
- package/lib-amd/paste/pasteSourceValidations/constants.js.map +1 -1
- package/lib-amd/paste/pasteSourceValidations/documentContainWacElements.d.ts +8 -8
- package/lib-amd/paste/pasteSourceValidations/documentContainWacElements.js +16 -16
- package/lib-amd/paste/pasteSourceValidations/documentContainWacElements.js.map +1 -1
- package/lib-amd/paste/pasteSourceValidations/getPasteSource.d.ts +27 -27
- package/lib-amd/paste/pasteSourceValidations/getPasteSource.js +38 -38
- package/lib-amd/paste/pasteSourceValidations/getPasteSource.js.map +1 -1
- package/lib-amd/paste/pasteSourceValidations/isExcelDesktopDocument.d.ts +8 -8
- package/lib-amd/paste/pasteSourceValidations/isExcelDesktopDocument.js +18 -18
- package/lib-amd/paste/pasteSourceValidations/isExcelDesktopDocument.js.map +1 -1
- package/lib-amd/paste/pasteSourceValidations/isExcelOnlineDocument.d.ts +8 -8
- package/lib-amd/paste/pasteSourceValidations/isExcelOnlineDocument.js +20 -20
- package/lib-amd/paste/pasteSourceValidations/isExcelOnlineDocument.js.map +1 -1
- package/lib-amd/paste/pasteSourceValidations/isGoogleSheetDocument.d.ts +8 -8
- package/lib-amd/paste/pasteSourceValidations/isGoogleSheetDocument.js +16 -16
- package/lib-amd/paste/pasteSourceValidations/isGoogleSheetDocument.js.map +1 -1
- package/lib-amd/paste/pasteSourceValidations/isPowerPointDesktopDocument.d.ts +8 -8
- package/lib-amd/paste/pasteSourceValidations/isPowerPointDesktopDocument.js +16 -16
- package/lib-amd/paste/pasteSourceValidations/isPowerPointDesktopDocument.js.map +1 -1
- package/lib-amd/paste/pasteSourceValidations/isWordDesktopDocument.d.ts +8 -8
- package/lib-amd/paste/pasteSourceValidations/isWordDesktopDocument.js +20 -20
- package/lib-amd/paste/pasteSourceValidations/isWordDesktopDocument.js.map +1 -1
- package/lib-amd/paste/pasteSourceValidations/shouldConvertToSingleImage.d.ts +9 -9
- package/lib-amd/paste/pasteSourceValidations/shouldConvertToSingleImage.js +20 -20
- package/lib-amd/paste/pasteSourceValidations/shouldConvertToSingleImage.js.map +1 -1
- package/lib-amd/paste/utils/addParser.d.ts +5 -5
- package/lib-amd/paste/utils/addParser.js +18 -18
- package/lib-amd/paste/utils/addParser.js.map +1 -1
- package/lib-amd/paste/utils/deprecatedColorParser.d.ts +5 -5
- package/lib-amd/paste/utils/deprecatedColorParser.js +20 -20
- package/lib-amd/paste/utils/deprecatedColorParser.js.map +1 -1
- package/lib-amd/paste/utils/getStyles.d.ts +6 -6
- package/lib-amd/paste/utils/getStyles.js +24 -24
- package/lib-amd/paste/utils/getStyles.js.map +1 -1
- package/lib-amd/paste/utils/linkParser.d.ts +5 -5
- package/lib-amd/paste/utils/linkParser.js +28 -28
- package/lib-amd/paste/utils/linkParser.js.map +1 -1
- package/lib-amd/paste/utils/setProcessor.d.ts +5 -5
- package/lib-amd/paste/utils/setProcessor.js +15 -15
- package/lib-amd/paste/utils/setProcessor.js.map +1 -1
- package/lib-amd/pluginUtils/CreateElement/CreateElementData.d.ts +35 -0
- package/lib-amd/pluginUtils/CreateElement/CreateElementData.js +5 -0
- package/lib-amd/pluginUtils/CreateElement/CreateElementData.js.map +1 -0
- package/lib-amd/pluginUtils/CreateElement/createElement.d.ts +9 -0
- package/lib-amd/pluginUtils/CreateElement/createElement.js +52 -0
- package/lib-amd/pluginUtils/CreateElement/createElement.js.map +1 -0
- package/lib-amd/pluginUtils/Disposable.d.ts +10 -0
- package/lib-amd/pluginUtils/Disposable.js +5 -0
- package/lib-amd/pluginUtils/Disposable.js.map +1 -0
- package/lib-amd/pluginUtils/DragAndDrop/DragAndDropHandler.d.ts +45 -0
- package/lib-amd/pluginUtils/DragAndDrop/DragAndDropHandler.js +5 -0
- package/lib-amd/pluginUtils/DragAndDrop/DragAndDropHandler.js.map +1 -0
- package/lib-amd/pluginUtils/DragAndDrop/DragAndDropHelper.d.ts +39 -0
- package/lib-amd/pluginUtils/DragAndDrop/DragAndDropHelper.js +121 -0
- package/lib-amd/pluginUtils/DragAndDrop/DragAndDropHelper.js.map +1 -0
- package/lib-amd/pluginUtils/Rect/getIntersectedRect.d.ts +27 -0
- package/lib-amd/pluginUtils/Rect/getIntersectedRect.js +45 -0
- package/lib-amd/pluginUtils/Rect/getIntersectedRect.js.map +1 -0
- package/lib-amd/pluginUtils/Rect/normalizeRect.d.ts +7 -0
- package/lib-amd/pluginUtils/Rect/normalizeRect.js +22 -0
- package/lib-amd/pluginUtils/Rect/normalizeRect.js.map +1 -0
- package/{lib/autoFormat/ContentModelAutoFormatPlugin.d.ts → lib-mjs/autoFormat/AutoFormatPlugin.d.ts} +53 -53
- package/lib-mjs/autoFormat/{ContentModelAutoFormatPlugin.js → AutoFormatPlugin.js} +78 -78
- package/lib-mjs/autoFormat/AutoFormatPlugin.js.map +1 -0
- package/lib-mjs/autoFormat/keyboardListTrigger.d.ts +5 -5
- package/lib-mjs/autoFormat/keyboardListTrigger.js +41 -41
- package/lib-mjs/autoFormat/keyboardListTrigger.js.map +1 -1
- package/lib-mjs/autoFormat/utils/convertAlphaToDecimals.d.ts +7 -7
- package/lib-mjs/autoFormat/utils/convertAlphaToDecimals.js +18 -18
- package/lib-mjs/autoFormat/utils/convertAlphaToDecimals.js.map +1 -1
- package/lib-mjs/autoFormat/utils/getIndex.d.ts +4 -4
- package/lib-mjs/autoFormat/utils/getIndex.js +9 -9
- package/lib-mjs/autoFormat/utils/getIndex.js.map +1 -1
- package/lib-mjs/autoFormat/utils/getListTypeStyle.d.ts +14 -14
- package/lib-mjs/autoFormat/utils/getListTypeStyle.js +83 -75
- package/lib-mjs/autoFormat/utils/getListTypeStyle.js.map +1 -1
- package/lib-mjs/autoFormat/utils/getNumberingListStyle.d.ts +4 -4
- package/lib-mjs/autoFormat/utils/getNumberingListStyle.js +149 -148
- package/lib-mjs/autoFormat/utils/getNumberingListStyle.js.map +1 -1
- package/{lib/edit/ContentModelEditPlugin.d.ts → lib-mjs/edit/EditPlugin.d.ts} +39 -35
- package/lib-mjs/edit/EditPlugin.js +126 -0
- package/lib-mjs/edit/EditPlugin.js.map +1 -0
- package/lib-mjs/edit/deleteSteps/deleteAllSegmentBefore.d.ts +5 -5
- package/lib-mjs/edit/deleteSteps/deleteAllSegmentBefore.js +18 -18
- package/lib-mjs/edit/deleteSteps/deleteAllSegmentBefore.js.map +1 -1
- package/lib-mjs/edit/deleteSteps/deleteCollapsedSelection.d.ts +9 -9
- package/lib-mjs/edit/deleteSteps/deleteCollapsedSelection.js +90 -90
- package/lib-mjs/edit/deleteSteps/deleteCollapsedSelection.js.map +1 -1
- package/lib-mjs/edit/deleteSteps/deleteList.d.ts +5 -5
- package/lib-mjs/edit/deleteSteps/deleteList.js +19 -19
- package/lib-mjs/edit/deleteSteps/deleteList.js.map +1 -1
- package/lib-mjs/edit/deleteSteps/deleteWordSelection.d.ts +9 -9
- package/lib-mjs/edit/deleteSteps/deleteWordSelection.js +170 -170
- package/lib-mjs/edit/deleteSteps/deleteWordSelection.js.map +1 -1
- package/lib-mjs/edit/handleKeyboardEventCommon.d.ts +14 -14
- package/lib-mjs/edit/handleKeyboardEventCommon.js +48 -48
- package/lib-mjs/edit/handleKeyboardEventCommon.js.map +1 -1
- package/lib-mjs/edit/inputSteps/handleEnterOnList.d.ts +5 -0
- package/lib-mjs/edit/inputSteps/handleEnterOnList.js +64 -0
- package/lib-mjs/edit/inputSteps/handleEnterOnList.js.map +1 -0
- package/lib-mjs/edit/keyboardDelete.d.ts +9 -8
- package/lib-mjs/edit/keyboardDelete.js +67 -70
- package/lib-mjs/edit/keyboardDelete.js.map +1 -1
- package/lib-mjs/edit/keyboardInput.d.ts +5 -5
- package/lib-mjs/edit/keyboardInput.js +54 -46
- package/lib-mjs/edit/keyboardInput.js.map +1 -1
- package/lib-mjs/edit/keyboardTab.d.ts +5 -0
- package/lib-mjs/edit/keyboardTab.js +31 -0
- package/lib-mjs/edit/keyboardTab.js.map +1 -0
- package/lib-mjs/edit/utils/getLeafSiblingBlock.d.ts +23 -23
- package/lib-mjs/edit/utils/getLeafSiblingBlock.js +71 -71
- package/lib-mjs/edit/utils/getLeafSiblingBlock.js.map +1 -1
- package/lib-mjs/index.d.ts +3 -3
- package/lib-mjs/index.js +3 -3
- package/lib-mjs/index.js.map +1 -1
- package/lib-mjs/paste/Excel/processPastedContentFromExcel.d.ts +12 -12
- package/lib-mjs/paste/Excel/processPastedContentFromExcel.js +77 -77
- package/lib-mjs/paste/Excel/processPastedContentFromExcel.js.map +1 -1
- package/lib-mjs/paste/{ContentModelPastePlugin.d.ts → PastePlugin.d.ts} +43 -43
- package/lib-mjs/paste/{ContentModelPastePlugin.js → PastePlugin.js} +128 -128
- package/lib-mjs/paste/PastePlugin.js.map +1 -0
- package/lib-mjs/paste/PowerPoint/processPastedContentFromPowerPoint.d.ts +7 -7
- package/lib-mjs/paste/PowerPoint/processPastedContentFromPowerPoint.js +15 -15
- package/lib-mjs/paste/PowerPoint/processPastedContentFromPowerPoint.js.map +1 -1
- package/lib-mjs/paste/WacComponents/constants.d.ts +48 -48
- package/lib-mjs/paste/WacComponents/constants.js +59 -59
- package/lib-mjs/paste/WacComponents/constants.js.map +1 -1
- package/lib-mjs/paste/WacComponents/processPastedContentWacComponents.d.ts +9 -9
- package/lib-mjs/paste/WacComponents/processPastedContentWacComponents.js +184 -184
- package/lib-mjs/paste/WacComponents/processPastedContentWacComponents.js.map +1 -1
- package/lib-mjs/paste/WordDesktop/WordMetadata.d.ts +9 -9
- package/lib-mjs/paste/WordDesktop/WordMetadata.js +1 -1
- package/lib-mjs/paste/WordDesktop/WordMetadata.js.map +1 -1
- package/lib-mjs/paste/WordDesktop/getStyleMetadata.d.ts +23 -23
- package/lib-mjs/paste/WordDesktop/getStyleMetadata.js +75 -75
- package/lib-mjs/paste/WordDesktop/getStyleMetadata.js.map +1 -1
- package/lib-mjs/paste/WordDesktop/processPastedContentFromWordDesktop.d.ts +7 -7
- package/lib-mjs/paste/WordDesktop/processPastedContentFromWordDesktop.js +54 -54
- package/lib-mjs/paste/WordDesktop/processPastedContentFromWordDesktop.js.map +1 -1
- package/lib-mjs/paste/WordDesktop/processWordComments.d.ts +7 -7
- package/lib-mjs/paste/WordDesktop/processWordComments.js +17 -17
- package/lib-mjs/paste/WordDesktop/processWordComments.js.map +1 -1
- package/lib-mjs/paste/WordDesktop/processWordLists.d.ts +11 -11
- package/lib-mjs/paste/WordDesktop/processWordLists.js +175 -175
- package/lib-mjs/paste/WordDesktop/processWordLists.js.map +1 -1
- package/lib-mjs/paste/WordDesktop/removeNegativeTextIndentParser.d.ts +5 -5
- package/lib-mjs/paste/WordDesktop/removeNegativeTextIndentParser.js +9 -9
- package/lib-mjs/paste/WordDesktop/removeNegativeTextIndentParser.js.map +1 -1
- package/lib-mjs/paste/pasteSourceValidations/constants.d.ts +17 -17
- package/lib-mjs/paste/pasteSourceValidations/constants.js +17 -17
- package/lib-mjs/paste/pasteSourceValidations/constants.js.map +1 -1
- package/lib-mjs/paste/pasteSourceValidations/documentContainWacElements.d.ts +8 -8
- package/lib-mjs/paste/pasteSourceValidations/documentContainWacElements.js +11 -11
- package/lib-mjs/paste/pasteSourceValidations/documentContainWacElements.js.map +1 -1
- package/lib-mjs/paste/pasteSourceValidations/getPasteSource.d.ts +27 -27
- package/lib-mjs/paste/pasteSourceValidations/getPasteSource.js +39 -39
- package/lib-mjs/paste/pasteSourceValidations/getPasteSource.js.map +1 -1
- package/lib-mjs/paste/pasteSourceValidations/isExcelDesktopDocument.d.ts +8 -8
- package/lib-mjs/paste/pasteSourceValidations/isExcelDesktopDocument.js +13 -13
- package/lib-mjs/paste/pasteSourceValidations/isExcelDesktopDocument.js.map +1 -1
- package/lib-mjs/paste/pasteSourceValidations/isExcelOnlineDocument.d.ts +8 -8
- package/lib-mjs/paste/pasteSourceValidations/isExcelOnlineDocument.js +15 -15
- package/lib-mjs/paste/pasteSourceValidations/isExcelOnlineDocument.js.map +1 -1
- package/lib-mjs/paste/pasteSourceValidations/isGoogleSheetDocument.d.ts +8 -8
- package/lib-mjs/paste/pasteSourceValidations/isGoogleSheetDocument.js +11 -11
- package/lib-mjs/paste/pasteSourceValidations/isGoogleSheetDocument.js.map +1 -1
- package/lib-mjs/paste/pasteSourceValidations/isPowerPointDesktopDocument.d.ts +8 -8
- package/lib-mjs/paste/pasteSourceValidations/isPowerPointDesktopDocument.js +11 -11
- package/lib-mjs/paste/pasteSourceValidations/isPowerPointDesktopDocument.js.map +1 -1
- package/lib-mjs/paste/pasteSourceValidations/isWordDesktopDocument.d.ts +8 -8
- package/lib-mjs/paste/pasteSourceValidations/isWordDesktopDocument.js +15 -15
- package/lib-mjs/paste/pasteSourceValidations/isWordDesktopDocument.js.map +1 -1
- package/lib-mjs/paste/pasteSourceValidations/shouldConvertToSingleImage.d.ts +9 -9
- package/lib-mjs/paste/pasteSourceValidations/shouldConvertToSingleImage.js +14 -14
- package/lib-mjs/paste/pasteSourceValidations/shouldConvertToSingleImage.js.map +1 -1
- package/lib-mjs/paste/utils/addParser.d.ts +5 -5
- package/lib-mjs/paste/utils/addParser.js +13 -13
- package/lib-mjs/paste/utils/addParser.js.map +1 -1
- package/lib-mjs/paste/utils/deprecatedColorParser.d.ts +5 -5
- package/lib-mjs/paste/utils/deprecatedColorParser.js +15 -15
- package/lib-mjs/paste/utils/deprecatedColorParser.js.map +1 -1
- package/lib-mjs/paste/utils/getStyles.d.ts +6 -6
- package/lib-mjs/paste/utils/getStyles.js +18 -18
- package/lib-mjs/paste/utils/getStyles.js.map +1 -1
- package/lib-mjs/paste/utils/linkParser.d.ts +5 -5
- package/lib-mjs/paste/utils/linkParser.js +23 -23
- package/lib-mjs/paste/utils/linkParser.js.map +1 -1
- package/lib-mjs/paste/utils/setProcessor.d.ts +5 -5
- package/lib-mjs/paste/utils/setProcessor.js +9 -9
- package/lib-mjs/paste/utils/setProcessor.js.map +1 -1
- package/lib-mjs/pluginUtils/CreateElement/CreateElementData.d.ts +35 -0
- package/lib-mjs/pluginUtils/CreateElement/CreateElementData.js +2 -0
- package/lib-mjs/pluginUtils/CreateElement/CreateElementData.js.map +1 -0
- package/lib-mjs/pluginUtils/CreateElement/createElement.d.ts +9 -0
- package/lib-mjs/pluginUtils/CreateElement/createElement.js +48 -0
- package/lib-mjs/pluginUtils/CreateElement/createElement.js.map +1 -0
- package/lib-mjs/pluginUtils/Disposable.d.ts +10 -0
- package/lib-mjs/pluginUtils/Disposable.js +2 -0
- package/lib-mjs/pluginUtils/Disposable.js.map +1 -0
- package/lib-mjs/pluginUtils/DragAndDrop/DragAndDropHandler.d.ts +45 -0
- package/lib-mjs/pluginUtils/DragAndDrop/DragAndDropHandler.js +2 -0
- package/lib-mjs/pluginUtils/DragAndDrop/DragAndDropHandler.js.map +1 -0
- package/lib-mjs/pluginUtils/DragAndDrop/DragAndDropHelper.d.ts +39 -0
- package/lib-mjs/pluginUtils/DragAndDrop/DragAndDropHelper.js +118 -0
- package/lib-mjs/pluginUtils/DragAndDrop/DragAndDropHelper.js.map +1 -0
- package/lib-mjs/pluginUtils/Rect/getIntersectedRect.d.ts +27 -0
- package/lib-mjs/pluginUtils/Rect/getIntersectedRect.js +42 -0
- package/lib-mjs/pluginUtils/Rect/getIntersectedRect.js.map +1 -0
- package/lib-mjs/pluginUtils/Rect/normalizeRect.d.ts +7 -0
- package/lib-mjs/pluginUtils/Rect/normalizeRect.js +17 -0
- package/lib-mjs/pluginUtils/Rect/normalizeRect.js.map +1 -0
- package/package.json +5 -5
- package/lib/autoFormat/ContentModelAutoFormatPlugin.js.map +0 -1
- package/lib/edit/ContentModelEditPlugin.js +0 -74
- package/lib/edit/ContentModelEditPlugin.js.map +0 -1
- package/lib/paste/ContentModelPastePlugin.js.map +0 -1
- package/lib-amd/autoFormat/ContentModelAutoFormatPlugin.js.map +0 -1
- package/lib-amd/edit/ContentModelEditPlugin.js +0 -74
- package/lib-amd/edit/ContentModelEditPlugin.js.map +0 -1
- package/lib-amd/paste/ContentModelPastePlugin.js.map +0 -1
- package/lib-mjs/autoFormat/ContentModelAutoFormatPlugin.js.map +0 -1
- package/lib-mjs/edit/ContentModelEditPlugin.js +0 -71
- package/lib-mjs/edit/ContentModelEditPlugin.js.map +0 -1
- package/lib-mjs/paste/ContentModelPastePlugin.js.map +0 -1
|
@@ -1,180 +1,180 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.processWordList = void 0;
|
|
4
|
-
var tslib_1 = require("tslib");
|
|
5
|
-
var roosterjs_content_model_core_1 = require("roosterjs-content-model-core");
|
|
6
|
-
var removeNegativeTextIndentParser_1 = require("./removeNegativeTextIndentParser");
|
|
7
|
-
var roosterjs_content_model_dom_1 = require("roosterjs-content-model-dom");
|
|
8
|
-
/** Word list metadata style name */
|
|
9
|
-
var MSO_LIST = 'mso-list';
|
|
10
|
-
var MSO_LIST_IGNORE = 'ignore';
|
|
11
|
-
var WORD_FIRST_LIST = 'l0';
|
|
12
|
-
var TEMPLATE_VALUE_REGEX = /%[0-9a-zA-Z]+/g;
|
|
13
|
-
var BULLET_METADATA = 'bullet';
|
|
14
|
-
/**
|
|
15
|
-
* @internal
|
|
16
|
-
* @param styles
|
|
17
|
-
* @param group
|
|
18
|
-
* @param element
|
|
19
|
-
* @param context
|
|
20
|
-
* @returns
|
|
21
|
-
*/
|
|
22
|
-
function processWordList(styles, group, element, context, metadata) {
|
|
23
|
-
var _a;
|
|
24
|
-
var listFormat = context.listFormat;
|
|
25
|
-
if (!listFormat.wordKnownLevels) {
|
|
26
|
-
listFormat.wordKnownLevels = new Map();
|
|
27
|
-
}
|
|
28
|
-
var wordListStyle = styles[MSO_LIST] || '';
|
|
29
|
-
// If the element contains Ignore style, do not process it,
|
|
30
|
-
// Usually this element contains the fake bullet used in Word Desktop.
|
|
31
|
-
if (wordListStyle.toLowerCase() === MSO_LIST_IGNORE) {
|
|
32
|
-
return true;
|
|
33
|
-
}
|
|
34
|
-
var _b = (0, tslib_1.__read)(wordListStyle.split(' '), 2), lNumber = _b[0], level = _b[1];
|
|
35
|
-
// Try get the list metadata from word, which follows this format: l1 level1 lfo2
|
|
36
|
-
// If we are able to get the level property means we can process this element to be a list
|
|
37
|
-
listFormat.wordLevel = level && parseInt(level.substr('level'.length));
|
|
38
|
-
listFormat.wordList = lNumber || WORD_FIRST_LIST;
|
|
39
|
-
if (listFormat.levels.length == 0) {
|
|
40
|
-
listFormat.levels =
|
|
41
|
-
(listFormat.wordList && listFormat.wordKnownLevels.get(listFormat.wordList)) || [];
|
|
42
|
-
}
|
|
43
|
-
if (wordListStyle && group && typeof listFormat.wordLevel === 'number') {
|
|
44
|
-
var wordLevel = listFormat.wordLevel, wordList = listFormat.wordList;
|
|
45
|
-
// Retrieve the Fake bullet on the element and also the list type
|
|
46
|
-
var listMetadata = metadata.get(lNumber + ":" + level);
|
|
47
|
-
var listType = ((_a = listMetadata === null || listMetadata === void 0 ? void 0 : listMetadata['mso-level-number-format']) === null || _a === void 0 ? void 0 : _a.toLowerCase()) != BULLET_METADATA
|
|
48
|
-
? 'OL'
|
|
49
|
-
: 'UL';
|
|
50
|
-
// Create the new level of the list item and parse the format
|
|
51
|
-
var newLevel = (0, roosterjs_content_model_dom_1.createListLevel)(listType);
|
|
52
|
-
(0, roosterjs_content_model_dom_1.parseFormat)(element, (0, tslib_1.__spreadArray)((0, tslib_1.__spreadArray)([], (0, tslib_1.__read)(context.formatParsers.listLevel), false), [wordListPaddingParser], false), newLevel.format, context);
|
|
53
|
-
// If the list format is in a different level, update the array so we get the new item
|
|
54
|
-
// To be in the same level as the provided level metadata.
|
|
55
|
-
if (wordLevel > listFormat.levels.length) {
|
|
56
|
-
while (wordLevel != listFormat.levels.length) {
|
|
57
|
-
listFormat.levels.push(newLevel);
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
else {
|
|
61
|
-
listFormat.levels.splice(wordLevel, listFormat.levels.length - 1);
|
|
62
|
-
listFormat.levels[wordLevel - 1] = newLevel;
|
|
63
|
-
}
|
|
64
|
-
listFormat.levels[listFormat.levels.length - 1]
|
|
65
|
-
.format.wordList = wordList;
|
|
66
|
-
listFormat.listParent = group;
|
|
67
|
-
processAsListItem(listFormat, context, element, group, listMetadata);
|
|
68
|
-
if (listFormat.levels.length > 0 &&
|
|
69
|
-
listFormat.wordKnownLevels.get(wordList) != listFormat.levels) {
|
|
70
|
-
listFormat.wordKnownLevels.set(wordList, (0, tslib_1.__spreadArray)([], (0, tslib_1.__read)(listFormat.levels), false));
|
|
71
|
-
}
|
|
72
|
-
return true;
|
|
73
|
-
}
|
|
74
|
-
return false;
|
|
75
|
-
}
|
|
76
|
-
exports.processWordList = processWordList;
|
|
77
|
-
function processAsListItem(listFormat, context, element, group, listMetadata) {
|
|
78
|
-
var listLevel = listFormat.levels[listFormat.levels.length - 1];
|
|
79
|
-
var listType = listLevel.listType;
|
|
80
|
-
var bullet = getBulletFromMetadata(listMetadata, listType);
|
|
81
|
-
if (bullet) {
|
|
82
|
-
(0, roosterjs_content_model_core_1.updateListMetadata)(listFormat.levels[listFormat.levels.length - 1], function (metadata) {
|
|
83
|
-
return Object.assign({}, metadata, {
|
|
84
|
-
unorderedStyleType: listType == 'UL' ? bullet : undefined,
|
|
85
|
-
orderedStyleType: listType == 'OL' ? bullet : undefined,
|
|
86
|
-
});
|
|
87
|
-
});
|
|
88
|
-
}
|
|
89
|
-
var listItem = (0, roosterjs_content_model_dom_1.createListItem)(listFormat.levels, context.segmentFormat);
|
|
90
|
-
(0, roosterjs_content_model_dom_1.parseFormat)(element, context.formatParsers.segmentOnBlock, context.segmentFormat, context);
|
|
91
|
-
(0, roosterjs_content_model_dom_1.parseFormat)(element, context.formatParsers.listItemElement, listItem.format, context);
|
|
92
|
-
(0, roosterjs_content_model_dom_1.parseFormat)(element, [removeNegativeTextIndentParser_1.removeNegativeTextIndentParser], listItem.format, context);
|
|
93
|
-
if (listType == 'OL') {
|
|
94
|
-
setStartNumber(listItem, context, listMetadata);
|
|
95
|
-
}
|
|
96
|
-
context.elementProcessors.child(listItem, element, context);
|
|
97
|
-
(0, roosterjs_content_model_dom_1.addBlock)(group, listItem);
|
|
98
|
-
}
|
|
99
|
-
function getBulletFromMetadata(listMetadata, listType) {
|
|
100
|
-
var templateType = (listMetadata === null || listMetadata === void 0 ? void 0 : listMetadata['mso-level-number-format']) || 'decimal';
|
|
101
|
-
var templateFinal;
|
|
102
|
-
if (listMetadata === null || listMetadata === void 0 ? void 0 : listMetadata['mso-level-text']) {
|
|
103
|
-
var templateValue = '';
|
|
104
|
-
switch (templateType) {
|
|
105
|
-
case 'alpha-upper':
|
|
106
|
-
templateValue = 'UpperAlpha';
|
|
107
|
-
break;
|
|
108
|
-
case 'alpha-lower':
|
|
109
|
-
templateValue = 'LowerAlpha';
|
|
110
|
-
break;
|
|
111
|
-
case 'roman-lower':
|
|
112
|
-
templateValue = 'LowerRoman';
|
|
113
|
-
break;
|
|
114
|
-
case 'roman-upper':
|
|
115
|
-
templateValue = 'UpperRoman';
|
|
116
|
-
break;
|
|
117
|
-
default:
|
|
118
|
-
templateValue = 'Number';
|
|
119
|
-
break;
|
|
120
|
-
}
|
|
121
|
-
var template = (listMetadata['mso-level-text'] || '')
|
|
122
|
-
.replace('\\', '')
|
|
123
|
-
.replace('"', '')
|
|
124
|
-
.replace(TEMPLATE_VALUE_REGEX, '${' + templateValue + '}');
|
|
125
|
-
templateFinal = '"' + template + ' "';
|
|
126
|
-
}
|
|
127
|
-
else {
|
|
128
|
-
switch (templateType) {
|
|
129
|
-
case 'alpha-lower':
|
|
130
|
-
templateFinal = 'lower-alpha';
|
|
131
|
-
break;
|
|
132
|
-
case 'roman-lower':
|
|
133
|
-
templateFinal = 'lower-roman';
|
|
134
|
-
break;
|
|
135
|
-
case 'roman-upper':
|
|
136
|
-
templateFinal = 'upper-roman';
|
|
137
|
-
break;
|
|
138
|
-
default:
|
|
139
|
-
templateFinal = 'decimal';
|
|
140
|
-
break;
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
return (0, roosterjs_content_model_core_1.getListStyleTypeFromString)(listType, templateFinal);
|
|
144
|
-
}
|
|
145
|
-
function wordListPaddingParser(format, element) {
|
|
146
|
-
if (element.style.marginLeft && element.style.marginLeft != '0in') {
|
|
147
|
-
format.paddingLeft = '0px';
|
|
148
|
-
}
|
|
149
|
-
if (element.style.marginRight && element.style.marginRight != '0in') {
|
|
150
|
-
format.paddingRight = '0px';
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
function setStartNumber(listItem, context, listMetadata) {
|
|
154
|
-
var _a, _b;
|
|
155
|
-
var _c = context.listFormat, listParent = _c.listParent, wordList = _c.wordList, wordKnownLevels = _c.wordKnownLevels, wordLevel = _c.wordLevel, levels = _c.levels;
|
|
156
|
-
var block = getLastNotEmptyBlock(listParent);
|
|
157
|
-
if (((block === null || block === void 0 ? void 0 : block.blockType) != 'BlockGroup' ||
|
|
158
|
-
block.blockGroupType != 'ListItem' ||
|
|
159
|
-
(wordLevel &&
|
|
160
|
-
((_b = (_a = block.levels[wordLevel]) === null || _a === void 0 ? void 0 : _a.format) === null || _b === void 0 ? void 0 : _b.wordList) != wordList)) &&
|
|
161
|
-
wordList) {
|
|
162
|
-
var start = (listMetadata === null || listMetadata === void 0 ? void 0 : listMetadata['mso-level-start-at'])
|
|
163
|
-
? parseInt(listMetadata['mso-level-start-at'])
|
|
164
|
-
: NaN;
|
|
165
|
-
var knownLevel = (wordKnownLevels === null || wordKnownLevels === void 0 ? void 0 : wordKnownLevels.get(wordList)) || [];
|
|
166
|
-
if (start != undefined && !isNaN(start) && knownLevel.length != levels.length) {
|
|
167
|
-
listItem.levels[listItem.levels.length - 1].format.startNumberOverride = start;
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
function getLastNotEmptyBlock(listParent) {
|
|
172
|
-
for (var index = ((listParent === null || listParent === void 0 ? void 0 : listParent.blocks.length) || 0) - 1; index > 0; index--) {
|
|
173
|
-
var result = listParent === null || listParent === void 0 ? void 0 : listParent.blocks[index];
|
|
174
|
-
if (result && !(0, roosterjs_content_model_dom_1.isEmpty)(result)) {
|
|
175
|
-
return result;
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
return undefined;
|
|
179
|
-
}
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.processWordList = void 0;
|
|
4
|
+
var tslib_1 = require("tslib");
|
|
5
|
+
var roosterjs_content_model_core_1 = require("roosterjs-content-model-core");
|
|
6
|
+
var removeNegativeTextIndentParser_1 = require("./removeNegativeTextIndentParser");
|
|
7
|
+
var roosterjs_content_model_dom_1 = require("roosterjs-content-model-dom");
|
|
8
|
+
/** Word list metadata style name */
|
|
9
|
+
var MSO_LIST = 'mso-list';
|
|
10
|
+
var MSO_LIST_IGNORE = 'ignore';
|
|
11
|
+
var WORD_FIRST_LIST = 'l0';
|
|
12
|
+
var TEMPLATE_VALUE_REGEX = /%[0-9a-zA-Z]+/g;
|
|
13
|
+
var BULLET_METADATA = 'bullet';
|
|
14
|
+
/**
|
|
15
|
+
* @internal
|
|
16
|
+
* @param styles
|
|
17
|
+
* @param group
|
|
18
|
+
* @param element
|
|
19
|
+
* @param context
|
|
20
|
+
* @returns
|
|
21
|
+
*/
|
|
22
|
+
function processWordList(styles, group, element, context, metadata) {
|
|
23
|
+
var _a;
|
|
24
|
+
var listFormat = context.listFormat;
|
|
25
|
+
if (!listFormat.wordKnownLevels) {
|
|
26
|
+
listFormat.wordKnownLevels = new Map();
|
|
27
|
+
}
|
|
28
|
+
var wordListStyle = styles[MSO_LIST] || '';
|
|
29
|
+
// If the element contains Ignore style, do not process it,
|
|
30
|
+
// Usually this element contains the fake bullet used in Word Desktop.
|
|
31
|
+
if (wordListStyle.toLowerCase() === MSO_LIST_IGNORE) {
|
|
32
|
+
return true;
|
|
33
|
+
}
|
|
34
|
+
var _b = (0, tslib_1.__read)(wordListStyle.split(' '), 2), lNumber = _b[0], level = _b[1];
|
|
35
|
+
// Try get the list metadata from word, which follows this format: l1 level1 lfo2
|
|
36
|
+
// If we are able to get the level property means we can process this element to be a list
|
|
37
|
+
listFormat.wordLevel = level && parseInt(level.substr('level'.length));
|
|
38
|
+
listFormat.wordList = lNumber || WORD_FIRST_LIST;
|
|
39
|
+
if (listFormat.levels.length == 0) {
|
|
40
|
+
listFormat.levels =
|
|
41
|
+
(listFormat.wordList && listFormat.wordKnownLevels.get(listFormat.wordList)) || [];
|
|
42
|
+
}
|
|
43
|
+
if (wordListStyle && group && typeof listFormat.wordLevel === 'number') {
|
|
44
|
+
var wordLevel = listFormat.wordLevel, wordList = listFormat.wordList;
|
|
45
|
+
// Retrieve the Fake bullet on the element and also the list type
|
|
46
|
+
var listMetadata = metadata.get(lNumber + ":" + level);
|
|
47
|
+
var listType = ((_a = listMetadata === null || listMetadata === void 0 ? void 0 : listMetadata['mso-level-number-format']) === null || _a === void 0 ? void 0 : _a.toLowerCase()) != BULLET_METADATA
|
|
48
|
+
? 'OL'
|
|
49
|
+
: 'UL';
|
|
50
|
+
// Create the new level of the list item and parse the format
|
|
51
|
+
var newLevel = (0, roosterjs_content_model_dom_1.createListLevel)(listType);
|
|
52
|
+
(0, roosterjs_content_model_dom_1.parseFormat)(element, (0, tslib_1.__spreadArray)((0, tslib_1.__spreadArray)([], (0, tslib_1.__read)(context.formatParsers.listLevel), false), [wordListPaddingParser], false), newLevel.format, context);
|
|
53
|
+
// If the list format is in a different level, update the array so we get the new item
|
|
54
|
+
// To be in the same level as the provided level metadata.
|
|
55
|
+
if (wordLevel > listFormat.levels.length) {
|
|
56
|
+
while (wordLevel != listFormat.levels.length) {
|
|
57
|
+
listFormat.levels.push(newLevel);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
listFormat.levels.splice(wordLevel, listFormat.levels.length - 1);
|
|
62
|
+
listFormat.levels[wordLevel - 1] = newLevel;
|
|
63
|
+
}
|
|
64
|
+
listFormat.levels[listFormat.levels.length - 1]
|
|
65
|
+
.format.wordList = wordList;
|
|
66
|
+
listFormat.listParent = group;
|
|
67
|
+
processAsListItem(listFormat, context, element, group, listMetadata);
|
|
68
|
+
if (listFormat.levels.length > 0 &&
|
|
69
|
+
listFormat.wordKnownLevels.get(wordList) != listFormat.levels) {
|
|
70
|
+
listFormat.wordKnownLevels.set(wordList, (0, tslib_1.__spreadArray)([], (0, tslib_1.__read)(listFormat.levels), false));
|
|
71
|
+
}
|
|
72
|
+
return true;
|
|
73
|
+
}
|
|
74
|
+
return false;
|
|
75
|
+
}
|
|
76
|
+
exports.processWordList = processWordList;
|
|
77
|
+
function processAsListItem(listFormat, context, element, group, listMetadata) {
|
|
78
|
+
var listLevel = listFormat.levels[listFormat.levels.length - 1];
|
|
79
|
+
var listType = listLevel.listType;
|
|
80
|
+
var bullet = getBulletFromMetadata(listMetadata, listType);
|
|
81
|
+
if (bullet) {
|
|
82
|
+
(0, roosterjs_content_model_core_1.updateListMetadata)(listFormat.levels[listFormat.levels.length - 1], function (metadata) {
|
|
83
|
+
return Object.assign({}, metadata, {
|
|
84
|
+
unorderedStyleType: listType == 'UL' ? bullet : undefined,
|
|
85
|
+
orderedStyleType: listType == 'OL' ? bullet : undefined,
|
|
86
|
+
});
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
var listItem = (0, roosterjs_content_model_dom_1.createListItem)(listFormat.levels, context.segmentFormat);
|
|
90
|
+
(0, roosterjs_content_model_dom_1.parseFormat)(element, context.formatParsers.segmentOnBlock, context.segmentFormat, context);
|
|
91
|
+
(0, roosterjs_content_model_dom_1.parseFormat)(element, context.formatParsers.listItemElement, listItem.format, context);
|
|
92
|
+
(0, roosterjs_content_model_dom_1.parseFormat)(element, [removeNegativeTextIndentParser_1.removeNegativeTextIndentParser], listItem.format, context);
|
|
93
|
+
if (listType == 'OL') {
|
|
94
|
+
setStartNumber(listItem, context, listMetadata);
|
|
95
|
+
}
|
|
96
|
+
context.elementProcessors.child(listItem, element, context);
|
|
97
|
+
(0, roosterjs_content_model_dom_1.addBlock)(group, listItem);
|
|
98
|
+
}
|
|
99
|
+
function getBulletFromMetadata(listMetadata, listType) {
|
|
100
|
+
var templateType = (listMetadata === null || listMetadata === void 0 ? void 0 : listMetadata['mso-level-number-format']) || 'decimal';
|
|
101
|
+
var templateFinal;
|
|
102
|
+
if (listMetadata === null || listMetadata === void 0 ? void 0 : listMetadata['mso-level-text']) {
|
|
103
|
+
var templateValue = '';
|
|
104
|
+
switch (templateType) {
|
|
105
|
+
case 'alpha-upper':
|
|
106
|
+
templateValue = 'UpperAlpha';
|
|
107
|
+
break;
|
|
108
|
+
case 'alpha-lower':
|
|
109
|
+
templateValue = 'LowerAlpha';
|
|
110
|
+
break;
|
|
111
|
+
case 'roman-lower':
|
|
112
|
+
templateValue = 'LowerRoman';
|
|
113
|
+
break;
|
|
114
|
+
case 'roman-upper':
|
|
115
|
+
templateValue = 'UpperRoman';
|
|
116
|
+
break;
|
|
117
|
+
default:
|
|
118
|
+
templateValue = 'Number';
|
|
119
|
+
break;
|
|
120
|
+
}
|
|
121
|
+
var template = (listMetadata['mso-level-text'] || '')
|
|
122
|
+
.replace('\\', '')
|
|
123
|
+
.replace('"', '')
|
|
124
|
+
.replace(TEMPLATE_VALUE_REGEX, '${' + templateValue + '}');
|
|
125
|
+
templateFinal = '"' + template + ' "';
|
|
126
|
+
}
|
|
127
|
+
else {
|
|
128
|
+
switch (templateType) {
|
|
129
|
+
case 'alpha-lower':
|
|
130
|
+
templateFinal = 'lower-alpha';
|
|
131
|
+
break;
|
|
132
|
+
case 'roman-lower':
|
|
133
|
+
templateFinal = 'lower-roman';
|
|
134
|
+
break;
|
|
135
|
+
case 'roman-upper':
|
|
136
|
+
templateFinal = 'upper-roman';
|
|
137
|
+
break;
|
|
138
|
+
default:
|
|
139
|
+
templateFinal = 'decimal';
|
|
140
|
+
break;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
return (0, roosterjs_content_model_core_1.getListStyleTypeFromString)(listType, templateFinal);
|
|
144
|
+
}
|
|
145
|
+
function wordListPaddingParser(format, element) {
|
|
146
|
+
if (element.style.marginLeft && element.style.marginLeft != '0in') {
|
|
147
|
+
format.paddingLeft = '0px';
|
|
148
|
+
}
|
|
149
|
+
if (element.style.marginRight && element.style.marginRight != '0in') {
|
|
150
|
+
format.paddingRight = '0px';
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
function setStartNumber(listItem, context, listMetadata) {
|
|
154
|
+
var _a, _b;
|
|
155
|
+
var _c = context.listFormat, listParent = _c.listParent, wordList = _c.wordList, wordKnownLevels = _c.wordKnownLevels, wordLevel = _c.wordLevel, levels = _c.levels;
|
|
156
|
+
var block = getLastNotEmptyBlock(listParent);
|
|
157
|
+
if (((block === null || block === void 0 ? void 0 : block.blockType) != 'BlockGroup' ||
|
|
158
|
+
block.blockGroupType != 'ListItem' ||
|
|
159
|
+
(wordLevel &&
|
|
160
|
+
((_b = (_a = block.levels[wordLevel]) === null || _a === void 0 ? void 0 : _a.format) === null || _b === void 0 ? void 0 : _b.wordList) != wordList)) &&
|
|
161
|
+
wordList) {
|
|
162
|
+
var start = (listMetadata === null || listMetadata === void 0 ? void 0 : listMetadata['mso-level-start-at'])
|
|
163
|
+
? parseInt(listMetadata['mso-level-start-at'])
|
|
164
|
+
: NaN;
|
|
165
|
+
var knownLevel = (wordKnownLevels === null || wordKnownLevels === void 0 ? void 0 : wordKnownLevels.get(wordList)) || [];
|
|
166
|
+
if (start != undefined && !isNaN(start) && knownLevel.length != levels.length) {
|
|
167
|
+
listItem.levels[listItem.levels.length - 1].format.startNumberOverride = start;
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
function getLastNotEmptyBlock(listParent) {
|
|
172
|
+
for (var index = ((listParent === null || listParent === void 0 ? void 0 : listParent.blocks.length) || 0) - 1; index > 0; index--) {
|
|
173
|
+
var result = listParent === null || listParent === void 0 ? void 0 : listParent.blocks[index];
|
|
174
|
+
if (result && !(0, roosterjs_content_model_dom_1.isEmpty)(result)) {
|
|
175
|
+
return result;
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
return undefined;
|
|
179
|
+
}
|
|
180
180
|
//# sourceMappingURL=processWordLists.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processWordLists.js","sourceRoot":"","sources":["../../../../../packages-content-model/roosterjs-content-model-plugins/lib/paste/WordDesktop/processWordLists.ts"],"names":[],"mappings":"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","sourcesContent":["import { getListStyleTypeFromString, updateListMetadata } from 'roosterjs-content-model-core';\nimport { removeNegativeTextIndentParser } from './removeNegativeTextIndentParser';\nimport type { WordMetadata } from './WordMetadata';\nimport {\n addBlock,\n createListItem,\n createListLevel,\n isEmpty,\n parseFormat,\n} from 'roosterjs-content-model-dom';\nimport type {\n ContentModelBlockGroup,\n ContentModelListItem,\n ContentModelListItemFormat,\n ContentModelListItemLevelFormat,\n ContentModelListLevel,\n DomToModelContext,\n DomToModelListFormat,\n} from 'roosterjs-content-model-types';\n\n/** Word list metadata style name */\nconst MSO_LIST = 'mso-list';\nconst MSO_LIST_IGNORE = 'ignore';\nconst WORD_FIRST_LIST = 'l0';\nconst TEMPLATE_VALUE_REGEX = /%[0-9a-zA-Z]+/g;\n\ninterface WordDesktopListFormat extends DomToModelListFormat {\n wordLevel?: number | '';\n wordList?: string;\n wordKnownLevels?: Map<string, ContentModelListLevel[]>;\n}\n\ninterface WordListFormat extends ContentModelListItemFormat {\n wordList?: string;\n}\n\nconst BULLET_METADATA = 'bullet';\n/**\n * @internal\n * @param styles\n * @param group\n * @param element\n * @param context\n * @returns\n */\nexport function processWordList(\n styles: Record<string, string>,\n group: ContentModelBlockGroup,\n element: HTMLElement,\n context: DomToModelContext,\n metadata: Map<string, WordMetadata>\n) {\n const listFormat = context.listFormat as WordDesktopListFormat;\n if (!listFormat.wordKnownLevels) {\n listFormat.wordKnownLevels = new Map<string, ContentModelListLevel[]>();\n }\n const wordListStyle = styles[MSO_LIST] || '';\n\n // If the element contains Ignore style, do not process it,\n // Usually this element contains the fake bullet used in Word Desktop.\n if (wordListStyle.toLowerCase() === MSO_LIST_IGNORE) {\n return true;\n }\n\n const [lNumber, level] = wordListStyle.split(' ');\n // Try get the list metadata from word, which follows this format: l1 level1 lfo2\n // If we are able to get the level property means we can process this element to be a list\n listFormat.wordLevel = level && parseInt(level.substr('level'.length));\n\n listFormat.wordList = lNumber || WORD_FIRST_LIST;\n if (listFormat.levels.length == 0) {\n listFormat.levels =\n (listFormat.wordList && listFormat.wordKnownLevels.get(listFormat.wordList)) || [];\n }\n\n if (wordListStyle && group && typeof listFormat.wordLevel === 'number') {\n const { wordLevel, wordList } = listFormat;\n // Retrieve the Fake bullet on the element and also the list type\n const listMetadata = metadata.get(`${lNumber}:${level}`);\n const listType =\n listMetadata?.['mso-level-number-format']?.toLowerCase() != BULLET_METADATA\n ? 'OL'\n : 'UL';\n\n // Create the new level of the list item and parse the format\n const newLevel: ContentModelListLevel = createListLevel(listType);\n parseFormat(\n element,\n [...context.formatParsers.listLevel, wordListPaddingParser],\n newLevel.format,\n context\n );\n\n // If the list format is in a different level, update the array so we get the new item\n // To be in the same level as the provided level metadata.\n if (wordLevel > listFormat.levels.length) {\n while (wordLevel != listFormat.levels.length) {\n listFormat.levels.push(newLevel);\n }\n } else {\n listFormat.levels.splice(wordLevel, listFormat.levels.length - 1);\n listFormat.levels[wordLevel - 1] = newLevel;\n }\n (listFormat.levels[listFormat.levels.length - 1]\n .format as WordListFormat).wordList = wordList;\n\n listFormat.listParent = group;\n\n processAsListItem(listFormat, context, element, group, listMetadata);\n\n if (\n listFormat.levels.length > 0 &&\n listFormat.wordKnownLevels.get(wordList) != listFormat.levels\n ) {\n listFormat.wordKnownLevels.set(wordList, [...listFormat.levels]);\n }\n return true;\n }\n\n return false;\n}\n\nfunction processAsListItem(\n listFormat: WordDesktopListFormat,\n context: DomToModelContext,\n element: HTMLElement,\n group: ContentModelBlockGroup,\n listMetadata: WordMetadata | undefined\n) {\n const listLevel = listFormat.levels[listFormat.levels.length - 1];\n const { listType } = listLevel;\n const bullet = getBulletFromMetadata(listMetadata, listType);\n if (bullet) {\n updateListMetadata(listFormat.levels[listFormat.levels.length - 1], metadata =>\n Object.assign({}, metadata, {\n unorderedStyleType: listType == 'UL' ? bullet : undefined,\n orderedStyleType: listType == 'OL' ? bullet : undefined,\n })\n );\n }\n\n const listItem = createListItem(listFormat.levels, context.segmentFormat);\n\n parseFormat(element, context.formatParsers.segmentOnBlock, context.segmentFormat, context);\n parseFormat(element, context.formatParsers.listItemElement, listItem.format, context);\n parseFormat(element, [removeNegativeTextIndentParser], listItem.format, context);\n\n if (listType == 'OL') {\n setStartNumber(listItem, context, listMetadata);\n }\n\n context.elementProcessors.child(listItem, element, context);\n addBlock(group, listItem);\n}\n\nfunction getBulletFromMetadata(listMetadata: WordMetadata | undefined, listType: 'OL' | 'UL') {\n const templateType = listMetadata?.['mso-level-number-format'] || 'decimal';\n let templateFinal: string;\n\n if (listMetadata?.['mso-level-text']) {\n let templateValue: string = '';\n switch (templateType) {\n case 'alpha-upper':\n templateValue = 'UpperAlpha';\n break;\n case 'alpha-lower':\n templateValue = 'LowerAlpha';\n break;\n case 'roman-lower':\n templateValue = 'LowerRoman';\n break;\n case 'roman-upper':\n templateValue = 'UpperRoman';\n break;\n default:\n templateValue = 'Number';\n break;\n }\n const template = (listMetadata['mso-level-text'] || '')\n .replace('\\\\', '')\n .replace('\"', '')\n .replace(TEMPLATE_VALUE_REGEX, '${' + templateValue + '}');\n\n templateFinal = '\"' + template + ' \"';\n } else {\n switch (templateType) {\n case 'alpha-lower':\n templateFinal = 'lower-alpha';\n break;\n case 'roman-lower':\n templateFinal = 'lower-roman';\n break;\n case 'roman-upper':\n templateFinal = 'upper-roman';\n break;\n default:\n templateFinal = 'decimal';\n break;\n }\n }\n\n return getListStyleTypeFromString(listType, templateFinal);\n}\n\nfunction wordListPaddingParser(\n format: ContentModelListItemLevelFormat,\n element: HTMLElement\n): void {\n if (element.style.marginLeft && element.style.marginLeft != '0in') {\n format.paddingLeft = '0px';\n }\n if (element.style.marginRight && element.style.marginRight != '0in') {\n format.paddingRight = '0px';\n }\n}\n\nfunction setStartNumber(\n listItem: ContentModelListItem,\n context: DomToModelContext,\n listMetadata: WordMetadata | undefined\n) {\n const {\n listParent,\n wordList,\n wordKnownLevels,\n wordLevel,\n levels,\n } = context.listFormat as WordDesktopListFormat;\n\n const block = getLastNotEmptyBlock(listParent);\n if (\n (block?.blockType != 'BlockGroup' ||\n block.blockGroupType != 'ListItem' ||\n (wordLevel &&\n (block.levels[wordLevel]?.format as WordListFormat)?.wordList != wordList)) &&\n wordList\n ) {\n const start = listMetadata?.['mso-level-start-at']\n ? parseInt(listMetadata['mso-level-start-at'])\n : NaN;\n const knownLevel = wordKnownLevels?.get(wordList) || [];\n\n if (start != undefined && !isNaN(start) && knownLevel.length != levels.length) {\n listItem.levels[listItem.levels.length - 1].format.startNumberOverride = start;\n }\n }\n}\n\nfunction getLastNotEmptyBlock(listParent: ContentModelBlockGroup | undefined) {\n for (let index = (listParent?.blocks.length || 0) - 1; index > 0; index--) {\n const result = listParent?.blocks[index];\n if (result && !isEmpty(result)) {\n return result;\n }\n }\n\n return undefined;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"processWordLists.js","sourceRoot":"","sources":["../../../../../packages-content-model/roosterjs-content-model-plugins/lib/paste/WordDesktop/processWordLists.ts"],"names":[],"mappings":"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","sourcesContent":["import { getListStyleTypeFromString, updateListMetadata } from 'roosterjs-content-model-core';\r\nimport { removeNegativeTextIndentParser } from './removeNegativeTextIndentParser';\r\nimport type { WordMetadata } from './WordMetadata';\r\nimport {\r\n addBlock,\r\n createListItem,\r\n createListLevel,\r\n isEmpty,\r\n parseFormat,\r\n} from 'roosterjs-content-model-dom';\r\nimport type {\r\n ContentModelBlockGroup,\r\n ContentModelListItem,\r\n ContentModelListItemFormat,\r\n ContentModelListItemLevelFormat,\r\n ContentModelListLevel,\r\n DomToModelContext,\r\n DomToModelListFormat,\r\n} from 'roosterjs-content-model-types';\r\n\r\n/** Word list metadata style name */\r\nconst MSO_LIST = 'mso-list';\r\nconst MSO_LIST_IGNORE = 'ignore';\r\nconst WORD_FIRST_LIST = 'l0';\r\nconst TEMPLATE_VALUE_REGEX = /%[0-9a-zA-Z]+/g;\r\n\r\ninterface WordDesktopListFormat extends DomToModelListFormat {\r\n wordLevel?: number | '';\r\n wordList?: string;\r\n wordKnownLevels?: Map<string, ContentModelListLevel[]>;\r\n}\r\n\r\ninterface WordListFormat extends ContentModelListItemFormat {\r\n wordList?: string;\r\n}\r\n\r\nconst BULLET_METADATA = 'bullet';\r\n/**\r\n * @internal\r\n * @param styles\r\n * @param group\r\n * @param element\r\n * @param context\r\n * @returns\r\n */\r\nexport function processWordList(\r\n styles: Record<string, string>,\r\n group: ContentModelBlockGroup,\r\n element: HTMLElement,\r\n context: DomToModelContext,\r\n metadata: Map<string, WordMetadata>\r\n) {\r\n const listFormat = context.listFormat as WordDesktopListFormat;\r\n if (!listFormat.wordKnownLevels) {\r\n listFormat.wordKnownLevels = new Map<string, ContentModelListLevel[]>();\r\n }\r\n const wordListStyle = styles[MSO_LIST] || '';\r\n\r\n // If the element contains Ignore style, do not process it,\r\n // Usually this element contains the fake bullet used in Word Desktop.\r\n if (wordListStyle.toLowerCase() === MSO_LIST_IGNORE) {\r\n return true;\r\n }\r\n\r\n const [lNumber, level] = wordListStyle.split(' ');\r\n // Try get the list metadata from word, which follows this format: l1 level1 lfo2\r\n // If we are able to get the level property means we can process this element to be a list\r\n listFormat.wordLevel = level && parseInt(level.substr('level'.length));\r\n\r\n listFormat.wordList = lNumber || WORD_FIRST_LIST;\r\n if (listFormat.levels.length == 0) {\r\n listFormat.levels =\r\n (listFormat.wordList && listFormat.wordKnownLevels.get(listFormat.wordList)) || [];\r\n }\r\n\r\n if (wordListStyle && group && typeof listFormat.wordLevel === 'number') {\r\n const { wordLevel, wordList } = listFormat;\r\n // Retrieve the Fake bullet on the element and also the list type\r\n const listMetadata = metadata.get(`${lNumber}:${level}`);\r\n const listType =\r\n listMetadata?.['mso-level-number-format']?.toLowerCase() != BULLET_METADATA\r\n ? 'OL'\r\n : 'UL';\r\n\r\n // Create the new level of the list item and parse the format\r\n const newLevel: ContentModelListLevel = createListLevel(listType);\r\n parseFormat(\r\n element,\r\n [...context.formatParsers.listLevel, wordListPaddingParser],\r\n newLevel.format,\r\n context\r\n );\r\n\r\n // If the list format is in a different level, update the array so we get the new item\r\n // To be in the same level as the provided level metadata.\r\n if (wordLevel > listFormat.levels.length) {\r\n while (wordLevel != listFormat.levels.length) {\r\n listFormat.levels.push(newLevel);\r\n }\r\n } else {\r\n listFormat.levels.splice(wordLevel, listFormat.levels.length - 1);\r\n listFormat.levels[wordLevel - 1] = newLevel;\r\n }\r\n (listFormat.levels[listFormat.levels.length - 1]\r\n .format as WordListFormat).wordList = wordList;\r\n\r\n listFormat.listParent = group;\r\n\r\n processAsListItem(listFormat, context, element, group, listMetadata);\r\n\r\n if (\r\n listFormat.levels.length > 0 &&\r\n listFormat.wordKnownLevels.get(wordList) != listFormat.levels\r\n ) {\r\n listFormat.wordKnownLevels.set(wordList, [...listFormat.levels]);\r\n }\r\n return true;\r\n }\r\n\r\n return false;\r\n}\r\n\r\nfunction processAsListItem(\r\n listFormat: WordDesktopListFormat,\r\n context: DomToModelContext,\r\n element: HTMLElement,\r\n group: ContentModelBlockGroup,\r\n listMetadata: WordMetadata | undefined\r\n) {\r\n const listLevel = listFormat.levels[listFormat.levels.length - 1];\r\n const { listType } = listLevel;\r\n const bullet = getBulletFromMetadata(listMetadata, listType);\r\n if (bullet) {\r\n updateListMetadata(listFormat.levels[listFormat.levels.length - 1], metadata =>\r\n Object.assign({}, metadata, {\r\n unorderedStyleType: listType == 'UL' ? bullet : undefined,\r\n orderedStyleType: listType == 'OL' ? bullet : undefined,\r\n })\r\n );\r\n }\r\n\r\n const listItem = createListItem(listFormat.levels, context.segmentFormat);\r\n\r\n parseFormat(element, context.formatParsers.segmentOnBlock, context.segmentFormat, context);\r\n parseFormat(element, context.formatParsers.listItemElement, listItem.format, context);\r\n parseFormat(element, [removeNegativeTextIndentParser], listItem.format, context);\r\n\r\n if (listType == 'OL') {\r\n setStartNumber(listItem, context, listMetadata);\r\n }\r\n\r\n context.elementProcessors.child(listItem, element, context);\r\n addBlock(group, listItem);\r\n}\r\n\r\nfunction getBulletFromMetadata(listMetadata: WordMetadata | undefined, listType: 'OL' | 'UL') {\r\n const templateType = listMetadata?.['mso-level-number-format'] || 'decimal';\r\n let templateFinal: string;\r\n\r\n if (listMetadata?.['mso-level-text']) {\r\n let templateValue: string = '';\r\n switch (templateType) {\r\n case 'alpha-upper':\r\n templateValue = 'UpperAlpha';\r\n break;\r\n case 'alpha-lower':\r\n templateValue = 'LowerAlpha';\r\n break;\r\n case 'roman-lower':\r\n templateValue = 'LowerRoman';\r\n break;\r\n case 'roman-upper':\r\n templateValue = 'UpperRoman';\r\n break;\r\n default:\r\n templateValue = 'Number';\r\n break;\r\n }\r\n const template = (listMetadata['mso-level-text'] || '')\r\n .replace('\\\\', '')\r\n .replace('\"', '')\r\n .replace(TEMPLATE_VALUE_REGEX, '${' + templateValue + '}');\r\n\r\n templateFinal = '\"' + template + ' \"';\r\n } else {\r\n switch (templateType) {\r\n case 'alpha-lower':\r\n templateFinal = 'lower-alpha';\r\n break;\r\n case 'roman-lower':\r\n templateFinal = 'lower-roman';\r\n break;\r\n case 'roman-upper':\r\n templateFinal = 'upper-roman';\r\n break;\r\n default:\r\n templateFinal = 'decimal';\r\n break;\r\n }\r\n }\r\n\r\n return getListStyleTypeFromString(listType, templateFinal);\r\n}\r\n\r\nfunction wordListPaddingParser(\r\n format: ContentModelListItemLevelFormat,\r\n element: HTMLElement\r\n): void {\r\n if (element.style.marginLeft && element.style.marginLeft != '0in') {\r\n format.paddingLeft = '0px';\r\n }\r\n if (element.style.marginRight && element.style.marginRight != '0in') {\r\n format.paddingRight = '0px';\r\n }\r\n}\r\n\r\nfunction setStartNumber(\r\n listItem: ContentModelListItem,\r\n context: DomToModelContext,\r\n listMetadata: WordMetadata | undefined\r\n) {\r\n const {\r\n listParent,\r\n wordList,\r\n wordKnownLevels,\r\n wordLevel,\r\n levels,\r\n } = context.listFormat as WordDesktopListFormat;\r\n\r\n const block = getLastNotEmptyBlock(listParent);\r\n if (\r\n (block?.blockType != 'BlockGroup' ||\r\n block.blockGroupType != 'ListItem' ||\r\n (wordLevel &&\r\n (block.levels[wordLevel]?.format as WordListFormat)?.wordList != wordList)) &&\r\n wordList\r\n ) {\r\n const start = listMetadata?.['mso-level-start-at']\r\n ? parseInt(listMetadata['mso-level-start-at'])\r\n : NaN;\r\n const knownLevel = wordKnownLevels?.get(wordList) || [];\r\n\r\n if (start != undefined && !isNaN(start) && knownLevel.length != levels.length) {\r\n listItem.levels[listItem.levels.length - 1].format.startNumberOverride = start;\r\n }\r\n }\r\n}\r\n\r\nfunction getLastNotEmptyBlock(listParent: ContentModelBlockGroup | undefined) {\r\n for (let index = (listParent?.blocks.length || 0) - 1; index > 0; index--) {\r\n const result = listParent?.blocks[index];\r\n if (result && !isEmpty(result)) {\r\n return result;\r\n }\r\n }\r\n\r\n return undefined;\r\n}\r\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { FormatParser, TextIndentFormat } from 'roosterjs-content-model-types';
|
|
2
|
-
/**
|
|
3
|
-
* @internal
|
|
4
|
-
*/
|
|
5
|
-
export declare const removeNegativeTextIndentParser: FormatParser<TextIndentFormat>;
|
|
1
|
+
import type { FormatParser, TextIndentFormat } from 'roosterjs-content-model-types';
|
|
2
|
+
/**
|
|
3
|
+
* @internal
|
|
4
|
+
*/
|
|
5
|
+
export declare const removeNegativeTextIndentParser: FormatParser<TextIndentFormat>;
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.removeNegativeTextIndentParser = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* @internal
|
|
6
|
-
*/
|
|
7
|
-
var removeNegativeTextIndentParser = function (format, element) {
|
|
8
|
-
var _a;
|
|
9
|
-
if ((_a = format.textIndent) === null || _a === void 0 ? void 0 : _a.startsWith('-')) {
|
|
10
|
-
delete format.textIndent;
|
|
11
|
-
}
|
|
12
|
-
};
|
|
13
|
-
exports.removeNegativeTextIndentParser = removeNegativeTextIndentParser;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.removeNegativeTextIndentParser = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* @internal
|
|
6
|
+
*/
|
|
7
|
+
var removeNegativeTextIndentParser = function (format, element) {
|
|
8
|
+
var _a;
|
|
9
|
+
if ((_a = format.textIndent) === null || _a === void 0 ? void 0 : _a.startsWith('-')) {
|
|
10
|
+
delete format.textIndent;
|
|
11
|
+
}
|
|
12
|
+
};
|
|
13
|
+
exports.removeNegativeTextIndentParser = removeNegativeTextIndentParser;
|
|
14
14
|
//# sourceMappingURL=removeNegativeTextIndentParser.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"removeNegativeTextIndentParser.js","sourceRoot":"","sources":["../../../../../packages-content-model/roosterjs-content-model-plugins/lib/paste/WordDesktop/removeNegativeTextIndentParser.ts"],"names":[],"mappings":";;;AAEA;;GAEG;AACI,IAAM,8BAA8B,GAAmC,UAAC,MAAM,EAAE,OAAO;;IAC1F,IAAI,MAAA,MAAM,CAAC,UAAU,0CAAE,UAAU,CAAC,GAAG,CAAC,EAAE;QACpC,OAAO,MAAM,CAAC,UAAU,CAAC;KAC5B;AACL,CAAC,CAAC;AAJW,QAAA,8BAA8B,kCAIzC","sourcesContent":["import type { FormatParser, TextIndentFormat } from 'roosterjs-content-model-types';\n\n/**\n * @internal\n */\nexport const removeNegativeTextIndentParser: FormatParser<TextIndentFormat> = (format, element) => {\n if (format.textIndent?.startsWith('-')) {\n delete format.textIndent;\n }\n};\n"]}
|
|
1
|
+
{"version":3,"file":"removeNegativeTextIndentParser.js","sourceRoot":"","sources":["../../../../../packages-content-model/roosterjs-content-model-plugins/lib/paste/WordDesktop/removeNegativeTextIndentParser.ts"],"names":[],"mappings":";;;AAEA;;GAEG;AACI,IAAM,8BAA8B,GAAmC,UAAC,MAAM,EAAE,OAAO;;IAC1F,IAAI,MAAA,MAAM,CAAC,UAAU,0CAAE,UAAU,CAAC,GAAG,CAAC,EAAE;QACpC,OAAO,MAAM,CAAC,UAAU,CAAC;KAC5B;AACL,CAAC,CAAC;AAJW,QAAA,8BAA8B,kCAIzC","sourcesContent":["import type { FormatParser, TextIndentFormat } from 'roosterjs-content-model-types';\r\n\r\n/**\r\n * @internal\r\n */\r\nexport const removeNegativeTextIndentParser: FormatParser<TextIndentFormat> = (format, element) => {\r\n if (format.textIndent?.startsWith('-')) {\r\n delete format.textIndent;\r\n }\r\n};\r\n"]}
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @internal
|
|
3
|
-
*/
|
|
4
|
-
export declare const PastePropertyNames: {
|
|
5
|
-
/**
|
|
6
|
-
* Node attribute used to identify if the content is from Google Sheets.
|
|
7
|
-
*/
|
|
8
|
-
GOOGLE_SHEET_NODE_NAME: string;
|
|
9
|
-
/**
|
|
10
|
-
* Name of the HTMLMeta Property that provides the Office App Source of the pasted content
|
|
11
|
-
*/
|
|
12
|
-
PROG_ID_NAME: string;
|
|
13
|
-
/**
|
|
14
|
-
* Name of the HTMLMeta Property that identifies pated content as from Excel Desktop
|
|
15
|
-
*/
|
|
16
|
-
EXCEL_DESKTOP_ATTRIBUTE_NAME: string;
|
|
17
|
-
};
|
|
1
|
+
/**
|
|
2
|
+
* @internal
|
|
3
|
+
*/
|
|
4
|
+
export declare const PastePropertyNames: {
|
|
5
|
+
/**
|
|
6
|
+
* Node attribute used to identify if the content is from Google Sheets.
|
|
7
|
+
*/
|
|
8
|
+
GOOGLE_SHEET_NODE_NAME: string;
|
|
9
|
+
/**
|
|
10
|
+
* Name of the HTMLMeta Property that provides the Office App Source of the pasted content
|
|
11
|
+
*/
|
|
12
|
+
PROG_ID_NAME: string;
|
|
13
|
+
/**
|
|
14
|
+
* Name of the HTMLMeta Property that identifies pated content as from Excel Desktop
|
|
15
|
+
*/
|
|
16
|
+
EXCEL_DESKTOP_ATTRIBUTE_NAME: string;
|
|
17
|
+
};
|
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.PastePropertyNames = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* @internal
|
|
6
|
-
*/
|
|
7
|
-
exports.PastePropertyNames = {
|
|
8
|
-
/**
|
|
9
|
-
* Node attribute used to identify if the content is from Google Sheets.
|
|
10
|
-
*/
|
|
11
|
-
GOOGLE_SHEET_NODE_NAME: 'google-sheets-html-origin',
|
|
12
|
-
/**
|
|
13
|
-
* Name of the HTMLMeta Property that provides the Office App Source of the pasted content
|
|
14
|
-
*/
|
|
15
|
-
PROG_ID_NAME: 'ProgId',
|
|
16
|
-
/**
|
|
17
|
-
* Name of the HTMLMeta Property that identifies pated content as from Excel Desktop
|
|
18
|
-
*/
|
|
19
|
-
EXCEL_DESKTOP_ATTRIBUTE_NAME: 'xmlns:x',
|
|
20
|
-
};
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PastePropertyNames = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* @internal
|
|
6
|
+
*/
|
|
7
|
+
exports.PastePropertyNames = {
|
|
8
|
+
/**
|
|
9
|
+
* Node attribute used to identify if the content is from Google Sheets.
|
|
10
|
+
*/
|
|
11
|
+
GOOGLE_SHEET_NODE_NAME: 'google-sheets-html-origin',
|
|
12
|
+
/**
|
|
13
|
+
* Name of the HTMLMeta Property that provides the Office App Source of the pasted content
|
|
14
|
+
*/
|
|
15
|
+
PROG_ID_NAME: 'ProgId',
|
|
16
|
+
/**
|
|
17
|
+
* Name of the HTMLMeta Property that identifies pated content as from Excel Desktop
|
|
18
|
+
*/
|
|
19
|
+
EXCEL_DESKTOP_ATTRIBUTE_NAME: 'xmlns:x',
|
|
20
|
+
};
|
|
21
21
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../packages-content-model/roosterjs-content-model-plugins/lib/paste/pasteSourceValidations/constants.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACU,QAAA,kBAAkB,GAAG;IAC9B;;OAEG;IACH,sBAAsB,EAAE,2BAA2B;IAEnD;;OAEG;IACH,YAAY,EAAE,QAAQ;IAEtB;;OAEG;IACH,4BAA4B,EAAE,SAAS;CAC1C,CAAC","sourcesContent":["/**\n * @internal\n */\nexport const PastePropertyNames = {\n /**\n * Node attribute used to identify if the content is from Google Sheets.\n */\n GOOGLE_SHEET_NODE_NAME: 'google-sheets-html-origin',\n\n /**\n * Name of the HTMLMeta Property that provides the Office App Source of the pasted content\n */\n PROG_ID_NAME: 'ProgId',\n\n /**\n * Name of the HTMLMeta Property that identifies pated content as from Excel Desktop\n */\n EXCEL_DESKTOP_ATTRIBUTE_NAME: 'xmlns:x',\n};\n"]}
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../packages-content-model/roosterjs-content-model-plugins/lib/paste/pasteSourceValidations/constants.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACU,QAAA,kBAAkB,GAAG;IAC9B;;OAEG;IACH,sBAAsB,EAAE,2BAA2B;IAEnD;;OAEG;IACH,YAAY,EAAE,QAAQ;IAEtB;;OAEG;IACH,4BAA4B,EAAE,SAAS;CAC1C,CAAC","sourcesContent":["/**\r\n * @internal\r\n */\r\nexport const PastePropertyNames = {\r\n /**\r\n * Node attribute used to identify if the content is from Google Sheets.\r\n */\r\n GOOGLE_SHEET_NODE_NAME: 'google-sheets-html-origin',\r\n\r\n /**\r\n * Name of the HTMLMeta Property that provides the Office App Source of the pasted content\r\n */\r\n PROG_ID_NAME: 'ProgId',\r\n\r\n /**\r\n * Name of the HTMLMeta Property that identifies pated content as from Excel Desktop\r\n */\r\n EXCEL_DESKTOP_ATTRIBUTE_NAME: 'xmlns:x',\r\n};\r\n"]}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import type { GetSourceFunction } from './getPasteSource';
|
|
2
|
-
/**
|
|
3
|
-
* @internal
|
|
4
|
-
* Check whether the fragment provided contain Wac Elements
|
|
5
|
-
* @param props Properties related to the PasteEvent
|
|
6
|
-
* @returns
|
|
7
|
-
*/
|
|
8
|
-
export declare const documentContainWacElements: GetSourceFunction;
|
|
1
|
+
import type { GetSourceFunction } from './getPasteSource';
|
|
2
|
+
/**
|
|
3
|
+
* @internal
|
|
4
|
+
* Check whether the fragment provided contain Wac Elements
|
|
5
|
+
* @param props Properties related to the PasteEvent
|
|
6
|
+
* @returns
|
|
7
|
+
*/
|
|
8
|
+
export declare const documentContainWacElements: GetSourceFunction;
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.documentContainWacElements = void 0;
|
|
4
|
-
var constants_1 = require("../WacComponents/constants");
|
|
5
|
-
/**
|
|
6
|
-
* @internal
|
|
7
|
-
* Check whether the fragment provided contain Wac Elements
|
|
8
|
-
* @param props Properties related to the PasteEvent
|
|
9
|
-
* @returns
|
|
10
|
-
*/
|
|
11
|
-
var documentContainWacElements = function (props) {
|
|
12
|
-
var fragment = props.fragment;
|
|
13
|
-
return !!fragment.querySelector(constants_1.WAC_IDENTIFY_SELECTOR);
|
|
14
|
-
};
|
|
15
|
-
exports.documentContainWacElements = documentContainWacElements;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.documentContainWacElements = void 0;
|
|
4
|
+
var constants_1 = require("../WacComponents/constants");
|
|
5
|
+
/**
|
|
6
|
+
* @internal
|
|
7
|
+
* Check whether the fragment provided contain Wac Elements
|
|
8
|
+
* @param props Properties related to the PasteEvent
|
|
9
|
+
* @returns
|
|
10
|
+
*/
|
|
11
|
+
var documentContainWacElements = function (props) {
|
|
12
|
+
var fragment = props.fragment;
|
|
13
|
+
return !!fragment.querySelector(constants_1.WAC_IDENTIFY_SELECTOR);
|
|
14
|
+
};
|
|
15
|
+
exports.documentContainWacElements = documentContainWacElements;
|
|
16
16
|
//# sourceMappingURL=documentContainWacElements.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"documentContainWacElements.js","sourceRoot":"","sources":["../../../../../packages-content-model/roosterjs-content-model-plugins/lib/paste/pasteSourceValidations/documentContainWacElements.ts"],"names":[],"mappings":";;;AAAA,wDAAmE;AAGnE;;;;;GAKG;AACI,IAAM,0BAA0B,GAAsB,UAAA,KAAK;IACtD,IAAA,QAAQ,GAAK,KAAK,SAAV,CAAW;IAC3B,OAAO,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,iCAAqB,CAAC,CAAC;AAC3D,CAAC,CAAC;AAHW,QAAA,0BAA0B,8BAGrC","sourcesContent":["import { WAC_IDENTIFY_SELECTOR } from '../WacComponents/constants';\nimport type { GetSourceFunction } from './getPasteSource';\n\n/**\n * @internal\n * Check whether the fragment provided contain Wac Elements\n * @param props Properties related to the PasteEvent\n * @returns\n */\nexport const documentContainWacElements: GetSourceFunction = props => {\n const { fragment } = props;\n return !!fragment.querySelector(WAC_IDENTIFY_SELECTOR);\n};\n"]}
|
|
1
|
+
{"version":3,"file":"documentContainWacElements.js","sourceRoot":"","sources":["../../../../../packages-content-model/roosterjs-content-model-plugins/lib/paste/pasteSourceValidations/documentContainWacElements.ts"],"names":[],"mappings":";;;AAAA,wDAAmE;AAGnE;;;;;GAKG;AACI,IAAM,0BAA0B,GAAsB,UAAA,KAAK;IACtD,IAAA,QAAQ,GAAK,KAAK,SAAV,CAAW;IAC3B,OAAO,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,iCAAqB,CAAC,CAAC;AAC3D,CAAC,CAAC;AAHW,QAAA,0BAA0B,8BAGrC","sourcesContent":["import { WAC_IDENTIFY_SELECTOR } from '../WacComponents/constants';\r\nimport type { GetSourceFunction } from './getPasteSource';\r\n\r\n/**\r\n * @internal\r\n * Check whether the fragment provided contain Wac Elements\r\n * @param props Properties related to the PasteEvent\r\n * @returns\r\n */\r\nexport const documentContainWacElements: GetSourceFunction = props => {\r\n const { fragment } = props;\r\n return !!fragment.querySelector(WAC_IDENTIFY_SELECTOR);\r\n};\r\n"]}
|