roosterjs-content-model-plugins 0.26.0 → 0.26.2
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/autoFormat/AutoFormatPlugin.d.ts +53 -53
- package/lib/autoFormat/AutoFormatPlugin.js +80 -80
- package/lib/autoFormat/AutoFormatPlugin.js.map +1 -1
- 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 -87
- 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 -153
- package/lib/autoFormat/utils/getNumberingListStyle.js.map +1 -1
- package/lib/edit/EditPlugin.d.ts +39 -39
- package/lib/edit/EditPlugin.js +128 -128
- package/lib/edit/EditPlugin.js.map +1 -1
- 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 -5
- package/lib/edit/inputSteps/handleEnterOnList.js +67 -67
- package/lib/edit/inputSteps/handleEnterOnList.js.map +1 -1
- package/lib/edit/keyboardDelete.d.ts +9 -9
- package/lib/edit/keyboardDelete.js +71 -71
- package/lib/edit/keyboardDelete.js.map +1 -1
- package/lib/edit/keyboardInput.d.ts +5 -5
- package/lib/edit/keyboardInput.js +58 -58
- package/lib/edit/keyboardInput.js.map +1 -1
- package/lib/edit/keyboardTab.d.ts +5 -5
- package/lib/edit/keyboardTab.js +34 -34
- package/lib/edit/keyboardTab.js.map +1 -1
- 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/paste/PastePlugin.d.ts +43 -43
- package/lib/paste/PastePlugin.js +130 -130
- package/lib/paste/PastePlugin.js.map +1 -1
- 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 -35
- package/lib/pluginUtils/CreateElement/CreateElementData.js +2 -2
- package/lib/pluginUtils/CreateElement/CreateElementData.js.map +1 -1
- package/lib/pluginUtils/CreateElement/createElement.d.ts +9 -9
- package/lib/pluginUtils/CreateElement/createElement.js +50 -50
- package/lib/pluginUtils/CreateElement/createElement.js.map +1 -1
- package/lib/pluginUtils/Disposable.d.ts +10 -10
- package/lib/pluginUtils/Disposable.js +2 -2
- package/lib/pluginUtils/Disposable.js.map +1 -1
- package/lib/pluginUtils/DragAndDrop/DragAndDropHandler.d.ts +45 -45
- package/lib/pluginUtils/DragAndDrop/DragAndDropHandler.js +2 -2
- package/lib/pluginUtils/DragAndDrop/DragAndDropHandler.js.map +1 -1
- package/lib/pluginUtils/DragAndDrop/DragAndDropHelper.d.ts +39 -39
- package/lib/pluginUtils/DragAndDrop/DragAndDropHelper.js +119 -119
- package/lib/pluginUtils/DragAndDrop/DragAndDropHelper.js.map +1 -1
- package/lib/pluginUtils/Rect/getIntersectedRect.d.ts +27 -27
- package/lib/pluginUtils/Rect/getIntersectedRect.js +44 -44
- package/lib/pluginUtils/Rect/getIntersectedRect.js.map +1 -1
- package/lib/pluginUtils/Rect/normalizeRect.d.ts +7 -7
- package/lib/pluginUtils/Rect/normalizeRect.js +19 -19
- package/lib/pluginUtils/Rect/normalizeRect.js.map +1 -1
- package/lib-amd/autoFormat/AutoFormatPlugin.d.ts +53 -53
- package/lib-amd/autoFormat/AutoFormatPlugin.js +81 -81
- package/lib-amd/autoFormat/AutoFormatPlugin.js.map +1 -1
- 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 -86
- 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 -153
- package/lib-amd/autoFormat/utils/getNumberingListStyle.js.map +1 -1
- package/lib-amd/edit/EditPlugin.d.ts +39 -39
- package/lib-amd/edit/EditPlugin.js +127 -127
- package/lib-amd/edit/EditPlugin.js.map +1 -1
- 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 -5
- package/lib-amd/edit/inputSteps/handleEnterOnList.js +66 -66
- package/lib-amd/edit/inputSteps/handleEnterOnList.js.map +1 -1
- package/lib-amd/edit/keyboardDelete.d.ts +9 -9
- package/lib-amd/edit/keyboardDelete.js +66 -66
- 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 -57
- package/lib-amd/edit/keyboardInput.js.map +1 -1
- package/lib-amd/edit/keyboardTab.d.ts +5 -5
- package/lib-amd/edit/keyboardTab.js +34 -34
- package/lib-amd/edit/keyboardTab.js.map +1 -1
- 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-amd/paste/PastePlugin.d.ts +43 -43
- package/lib-amd/paste/PastePlugin.js +122 -122
- package/lib-amd/paste/PastePlugin.js.map +1 -1
- 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 -35
- package/lib-amd/pluginUtils/CreateElement/CreateElementData.js +4 -4
- package/lib-amd/pluginUtils/CreateElement/CreateElementData.js.map +1 -1
- package/lib-amd/pluginUtils/CreateElement/createElement.d.ts +9 -9
- package/lib-amd/pluginUtils/CreateElement/createElement.js +51 -51
- package/lib-amd/pluginUtils/CreateElement/createElement.js.map +1 -1
- package/lib-amd/pluginUtils/Disposable.d.ts +10 -10
- package/lib-amd/pluginUtils/Disposable.js +4 -4
- package/lib-amd/pluginUtils/Disposable.js.map +1 -1
- package/lib-amd/pluginUtils/DragAndDrop/DragAndDropHandler.d.ts +45 -45
- package/lib-amd/pluginUtils/DragAndDrop/DragAndDropHandler.js +4 -4
- package/lib-amd/pluginUtils/DragAndDrop/DragAndDropHandler.js.map +1 -1
- package/lib-amd/pluginUtils/DragAndDrop/DragAndDropHelper.d.ts +39 -39
- package/lib-amd/pluginUtils/DragAndDrop/DragAndDropHelper.js +120 -120
- package/lib-amd/pluginUtils/DragAndDrop/DragAndDropHelper.js.map +1 -1
- package/lib-amd/pluginUtils/Rect/getIntersectedRect.d.ts +27 -27
- package/lib-amd/pluginUtils/Rect/getIntersectedRect.js +44 -44
- package/lib-amd/pluginUtils/Rect/getIntersectedRect.js.map +1 -1
- package/lib-amd/pluginUtils/Rect/normalizeRect.d.ts +7 -7
- package/lib-amd/pluginUtils/Rect/normalizeRect.js +21 -21
- package/lib-amd/pluginUtils/Rect/normalizeRect.js.map +1 -1
- package/lib-mjs/autoFormat/AutoFormatPlugin.d.ts +53 -53
- package/lib-mjs/autoFormat/AutoFormatPlugin.js +77 -77
- package/lib-mjs/autoFormat/AutoFormatPlugin.js.map +1 -1
- 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 -83
- 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 -149
- package/lib-mjs/autoFormat/utils/getNumberingListStyle.js.map +1 -1
- package/lib-mjs/edit/EditPlugin.d.ts +39 -39
- package/lib-mjs/edit/EditPlugin.js +125 -125
- package/lib-mjs/edit/EditPlugin.js.map +1 -1
- 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 -5
- package/lib-mjs/edit/inputSteps/handleEnterOnList.js +63 -63
- package/lib-mjs/edit/inputSteps/handleEnterOnList.js.map +1 -1
- package/lib-mjs/edit/keyboardDelete.d.ts +9 -9
- package/lib-mjs/edit/keyboardDelete.js +67 -67
- 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 -54
- package/lib-mjs/edit/keyboardInput.js.map +1 -1
- package/lib-mjs/edit/keyboardTab.d.ts +5 -5
- package/lib-mjs/edit/keyboardTab.js +30 -30
- package/lib-mjs/edit/keyboardTab.js.map +1 -1
- 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/PastePlugin.d.ts +43 -43
- package/lib-mjs/paste/PastePlugin.js +127 -127
- package/lib-mjs/paste/PastePlugin.js.map +1 -1
- 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 -35
- package/lib-mjs/pluginUtils/CreateElement/CreateElementData.js +1 -1
- package/lib-mjs/pluginUtils/CreateElement/CreateElementData.js.map +1 -1
- package/lib-mjs/pluginUtils/CreateElement/createElement.d.ts +9 -9
- package/lib-mjs/pluginUtils/CreateElement/createElement.js +47 -47
- package/lib-mjs/pluginUtils/CreateElement/createElement.js.map +1 -1
- package/lib-mjs/pluginUtils/Disposable.d.ts +10 -10
- package/lib-mjs/pluginUtils/Disposable.js +1 -1
- package/lib-mjs/pluginUtils/Disposable.js.map +1 -1
- package/lib-mjs/pluginUtils/DragAndDrop/DragAndDropHandler.d.ts +45 -45
- package/lib-mjs/pluginUtils/DragAndDrop/DragAndDropHandler.js +1 -1
- package/lib-mjs/pluginUtils/DragAndDrop/DragAndDropHandler.js.map +1 -1
- package/lib-mjs/pluginUtils/DragAndDrop/DragAndDropHelper.d.ts +39 -39
- package/lib-mjs/pluginUtils/DragAndDrop/DragAndDropHelper.js +117 -117
- package/lib-mjs/pluginUtils/DragAndDrop/DragAndDropHelper.js.map +1 -1
- package/lib-mjs/pluginUtils/Rect/getIntersectedRect.d.ts +27 -27
- package/lib-mjs/pluginUtils/Rect/getIntersectedRect.js +41 -41
- package/lib-mjs/pluginUtils/Rect/getIntersectedRect.js.map +1 -1
- package/lib-mjs/pluginUtils/Rect/normalizeRect.d.ts +7 -7
- package/lib-mjs/pluginUtils/Rect/normalizeRect.js +16 -16
- package/lib-mjs/pluginUtils/Rect/normalizeRect.js.map +1 -1
- package/package.json +5 -5
|
@@ -1,87 +1,87 @@
|
|
|
1
|
-
define(["require", "exports", "roosterjs-content-model-api", "./getNumberingListStyle", "roosterjs-content-model-core"], function (require, exports, roosterjs_content_model_api_1, getNumberingListStyle_1, roosterjs_content_model_core_1) {
|
|
2
|
-
"use strict";
|
|
3
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.getListTypeStyle = void 0;
|
|
5
|
-
/**
|
|
6
|
-
* @internal
|
|
7
|
-
*/
|
|
8
|
-
function getListTypeStyle(model, shouldSearchForBullet, shouldSearchForNumbering) {
|
|
9
|
-
if (shouldSearchForBullet === void 0) { shouldSearchForBullet = true; }
|
|
10
|
-
if (shouldSearchForNumbering === void 0) { shouldSearchForNumbering = true; }
|
|
11
|
-
var selectedSegmentsAndParagraphs = (0, roosterjs_content_model_core_1.getSelectedSegmentsAndParagraphs)(model, true);
|
|
12
|
-
var marker = selectedSegmentsAndParagraphs[0][0];
|
|
13
|
-
var paragraph = selectedSegmentsAndParagraphs[0][1];
|
|
14
|
-
var listMarkerSegment = paragraph === null || paragraph === void 0 ? void 0 : paragraph.segments[0];
|
|
15
|
-
if (marker &&
|
|
16
|
-
marker.segmentType == 'SelectionMarker' &&
|
|
17
|
-
listMarkerSegment &&
|
|
18
|
-
listMarkerSegment.segmentType == 'Text') {
|
|
19
|
-
var listMarker = listMarkerSegment.text;
|
|
20
|
-
var bulletType = bulletListType[listMarker];
|
|
21
|
-
if (bulletType && shouldSearchForBullet) {
|
|
22
|
-
return { listType: 'UL', styleType: bulletType };
|
|
23
|
-
}
|
|
24
|
-
else if (shouldSearchForNumbering) {
|
|
25
|
-
var previousList = getPreviousListLevel(model, paragraph);
|
|
26
|
-
var previousIndex = getPreviousListIndex(model, previousList);
|
|
27
|
-
var previousListStyle = getPreviousListStyle(previousList);
|
|
28
|
-
var numberingType = (0, getNumberingListStyle_1.getNumberingListStyle)(listMarker, previousIndex, previousListStyle);
|
|
29
|
-
if (numberingType) {
|
|
30
|
-
return {
|
|
31
|
-
listType: 'OL',
|
|
32
|
-
styleType: numberingType,
|
|
33
|
-
index: !isNewList(listMarker) &&
|
|
34
|
-
previousListStyle === numberingType &&
|
|
35
|
-
previousIndex
|
|
36
|
-
? previousIndex + 1
|
|
37
|
-
: undefined,
|
|
38
|
-
};
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
return undefined;
|
|
43
|
-
}
|
|
44
|
-
exports.getListTypeStyle = getListTypeStyle;
|
|
45
|
-
var getPreviousListIndex = function (model, previousListItem) {
|
|
46
|
-
return previousListItem ? (0, roosterjs_content_model_api_1.findListItemsInSameThread)(model, previousListItem).length : undefined;
|
|
47
|
-
};
|
|
48
|
-
var getPreviousListLevel = function (model, paragraph) {
|
|
49
|
-
var blocks = (0, roosterjs_content_model_core_1.getOperationalBlocks)(model, ['ListItem'], ['TableCell'])[0];
|
|
50
|
-
var listItem = undefined;
|
|
51
|
-
if (blocks) {
|
|
52
|
-
var listBlockIndex = blocks.parent.blocks.indexOf(paragraph);
|
|
53
|
-
if (listBlockIndex > -1) {
|
|
54
|
-
for (var i = listBlockIndex - 1; i > -1; i--) {
|
|
55
|
-
var item = blocks.parent.blocks[i];
|
|
56
|
-
if ((0, roosterjs_content_model_core_1.isBlockGroupOfType)(item, 'ListItem')) {
|
|
57
|
-
listItem = item;
|
|
58
|
-
break;
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
return listItem;
|
|
64
|
-
};
|
|
65
|
-
var getPreviousListStyle = function (list) {
|
|
66
|
-
var _a;
|
|
67
|
-
if (list === null || list === void 0 ? void 0 : list.levels[0].dataset) {
|
|
68
|
-
return (_a = (0, roosterjs_content_model_core_1.updateListMetadata)(list.levels[0])) === null || _a === void 0 ? void 0 : _a.orderedStyleType;
|
|
69
|
-
}
|
|
70
|
-
};
|
|
71
|
-
var bulletListType = {
|
|
72
|
-
'*': roosterjs_content_model_core_1.BulletListType.Disc,
|
|
73
|
-
'-': roosterjs_content_model_core_1.BulletListType.Dash,
|
|
74
|
-
'--': roosterjs_content_model_core_1.BulletListType.Square,
|
|
75
|
-
'->': roosterjs_content_model_core_1.BulletListType.LongArrow,
|
|
76
|
-
'-->': roosterjs_content_model_core_1.BulletListType.DoubleLongArrow,
|
|
77
|
-
'=>': roosterjs_content_model_core_1.BulletListType.UnfilledArrow,
|
|
78
|
-
'>': roosterjs_content_model_core_1.BulletListType.ShortArrow,
|
|
79
|
-
'—': roosterjs_content_model_core_1.BulletListType.Hyphen,
|
|
80
|
-
};
|
|
81
|
-
var isNewList = function (listMarker) {
|
|
82
|
-
var marker = listMarker.replace(/[^\w\s]/g, '');
|
|
83
|
-
var pattern = /^[1aAiI]$/;
|
|
84
|
-
return pattern.test(marker);
|
|
85
|
-
};
|
|
86
|
-
});
|
|
1
|
+
define(["require", "exports", "roosterjs-content-model-api", "./getNumberingListStyle", "roosterjs-content-model-core"], function (require, exports, roosterjs_content_model_api_1, getNumberingListStyle_1, roosterjs_content_model_core_1) {
|
|
2
|
+
"use strict";
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.getListTypeStyle = void 0;
|
|
5
|
+
/**
|
|
6
|
+
* @internal
|
|
7
|
+
*/
|
|
8
|
+
function getListTypeStyle(model, shouldSearchForBullet, shouldSearchForNumbering) {
|
|
9
|
+
if (shouldSearchForBullet === void 0) { shouldSearchForBullet = true; }
|
|
10
|
+
if (shouldSearchForNumbering === void 0) { shouldSearchForNumbering = true; }
|
|
11
|
+
var selectedSegmentsAndParagraphs = (0, roosterjs_content_model_core_1.getSelectedSegmentsAndParagraphs)(model, true);
|
|
12
|
+
var marker = selectedSegmentsAndParagraphs[0][0];
|
|
13
|
+
var paragraph = selectedSegmentsAndParagraphs[0][1];
|
|
14
|
+
var listMarkerSegment = paragraph === null || paragraph === void 0 ? void 0 : paragraph.segments[0];
|
|
15
|
+
if (marker &&
|
|
16
|
+
marker.segmentType == 'SelectionMarker' &&
|
|
17
|
+
listMarkerSegment &&
|
|
18
|
+
listMarkerSegment.segmentType == 'Text') {
|
|
19
|
+
var listMarker = listMarkerSegment.text;
|
|
20
|
+
var bulletType = bulletListType[listMarker];
|
|
21
|
+
if (bulletType && shouldSearchForBullet) {
|
|
22
|
+
return { listType: 'UL', styleType: bulletType };
|
|
23
|
+
}
|
|
24
|
+
else if (shouldSearchForNumbering) {
|
|
25
|
+
var previousList = getPreviousListLevel(model, paragraph);
|
|
26
|
+
var previousIndex = getPreviousListIndex(model, previousList);
|
|
27
|
+
var previousListStyle = getPreviousListStyle(previousList);
|
|
28
|
+
var numberingType = (0, getNumberingListStyle_1.getNumberingListStyle)(listMarker, previousIndex, previousListStyle);
|
|
29
|
+
if (numberingType) {
|
|
30
|
+
return {
|
|
31
|
+
listType: 'OL',
|
|
32
|
+
styleType: numberingType,
|
|
33
|
+
index: !isNewList(listMarker) &&
|
|
34
|
+
previousListStyle === numberingType &&
|
|
35
|
+
previousIndex
|
|
36
|
+
? previousIndex + 1
|
|
37
|
+
: undefined,
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return undefined;
|
|
43
|
+
}
|
|
44
|
+
exports.getListTypeStyle = getListTypeStyle;
|
|
45
|
+
var getPreviousListIndex = function (model, previousListItem) {
|
|
46
|
+
return previousListItem ? (0, roosterjs_content_model_api_1.findListItemsInSameThread)(model, previousListItem).length : undefined;
|
|
47
|
+
};
|
|
48
|
+
var getPreviousListLevel = function (model, paragraph) {
|
|
49
|
+
var blocks = (0, roosterjs_content_model_core_1.getOperationalBlocks)(model, ['ListItem'], ['TableCell'])[0];
|
|
50
|
+
var listItem = undefined;
|
|
51
|
+
if (blocks) {
|
|
52
|
+
var listBlockIndex = blocks.parent.blocks.indexOf(paragraph);
|
|
53
|
+
if (listBlockIndex > -1) {
|
|
54
|
+
for (var i = listBlockIndex - 1; i > -1; i--) {
|
|
55
|
+
var item = blocks.parent.blocks[i];
|
|
56
|
+
if ((0, roosterjs_content_model_core_1.isBlockGroupOfType)(item, 'ListItem')) {
|
|
57
|
+
listItem = item;
|
|
58
|
+
break;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
return listItem;
|
|
64
|
+
};
|
|
65
|
+
var getPreviousListStyle = function (list) {
|
|
66
|
+
var _a;
|
|
67
|
+
if (list === null || list === void 0 ? void 0 : list.levels[0].dataset) {
|
|
68
|
+
return (_a = (0, roosterjs_content_model_core_1.updateListMetadata)(list.levels[0])) === null || _a === void 0 ? void 0 : _a.orderedStyleType;
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
var bulletListType = {
|
|
72
|
+
'*': roosterjs_content_model_core_1.BulletListType.Disc,
|
|
73
|
+
'-': roosterjs_content_model_core_1.BulletListType.Dash,
|
|
74
|
+
'--': roosterjs_content_model_core_1.BulletListType.Square,
|
|
75
|
+
'->': roosterjs_content_model_core_1.BulletListType.LongArrow,
|
|
76
|
+
'-->': roosterjs_content_model_core_1.BulletListType.DoubleLongArrow,
|
|
77
|
+
'=>': roosterjs_content_model_core_1.BulletListType.UnfilledArrow,
|
|
78
|
+
'>': roosterjs_content_model_core_1.BulletListType.ShortArrow,
|
|
79
|
+
'—': roosterjs_content_model_core_1.BulletListType.Hyphen,
|
|
80
|
+
};
|
|
81
|
+
var isNewList = function (listMarker) {
|
|
82
|
+
var marker = listMarker.replace(/[^\w\s]/g, '');
|
|
83
|
+
var pattern = /^[1aAiI]$/;
|
|
84
|
+
return pattern.test(marker);
|
|
85
|
+
};
|
|
86
|
+
});
|
|
87
87
|
//# sourceMappingURL=getListTypeStyle.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getListTypeStyle.js","sourceRoot":"","sources":["../../../../../packages-content-model/roosterjs-content-model-plugins/lib/autoFormat/utils/getListTypeStyle.ts"],"names":[],"mappings":"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","sourcesContent":["import { findListItemsInSameThread } from 'roosterjs-content-model-api';\
|
|
1
|
+
{"version":3,"file":"getListTypeStyle.js","sourceRoot":"","sources":["../../../../../packages-content-model/roosterjs-content-model-plugins/lib/autoFormat/utils/getListTypeStyle.ts"],"names":[],"mappings":"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","sourcesContent":["import { findListItemsInSameThread } from 'roosterjs-content-model-api';\nimport { getNumberingListStyle } from './getNumberingListStyle';\nimport type {\n ContentModelDocument,\n ContentModelListItem,\n ContentModelParagraph,\n} from 'roosterjs-content-model-types';\nimport {\n BulletListType,\n isBlockGroupOfType,\n updateListMetadata,\n getOperationalBlocks,\n getSelectedSegmentsAndParagraphs,\n} from 'roosterjs-content-model-core';\n\n/**\n * @internal\n */\ninterface ListTypeStyle {\n listType: 'UL' | 'OL';\n styleType: number;\n index?: number;\n}\n\n/**\n * @internal\n */\nexport function getListTypeStyle(\n model: ContentModelDocument,\n shouldSearchForBullet: boolean = true,\n shouldSearchForNumbering: boolean = true\n): ListTypeStyle | undefined {\n const selectedSegmentsAndParagraphs = getSelectedSegmentsAndParagraphs(model, true);\n const marker = selectedSegmentsAndParagraphs[0][0];\n const paragraph = selectedSegmentsAndParagraphs[0][1];\n const listMarkerSegment = paragraph?.segments[0];\n\n if (\n marker &&\n marker.segmentType == 'SelectionMarker' &&\n listMarkerSegment &&\n listMarkerSegment.segmentType == 'Text'\n ) {\n const listMarker = listMarkerSegment.text;\n const bulletType = bulletListType[listMarker];\n\n if (bulletType && shouldSearchForBullet) {\n return { listType: 'UL', styleType: bulletType };\n } else if (shouldSearchForNumbering) {\n const previousList = getPreviousListLevel(model, paragraph);\n const previousIndex = getPreviousListIndex(model, previousList);\n const previousListStyle = getPreviousListStyle(previousList);\n const numberingType = getNumberingListStyle(\n listMarker,\n previousIndex,\n previousListStyle\n );\n if (numberingType) {\n return {\n listType: 'OL',\n styleType: numberingType,\n index:\n !isNewList(listMarker) &&\n previousListStyle === numberingType &&\n previousIndex\n ? previousIndex + 1\n : undefined,\n };\n }\n }\n }\n return undefined;\n}\n\nconst getPreviousListIndex = (\n model: ContentModelDocument,\n previousListItem?: ContentModelListItem\n) => {\n return previousListItem ? findListItemsInSameThread(model, previousListItem).length : undefined;\n};\n\nconst getPreviousListLevel = (model: ContentModelDocument, paragraph: ContentModelParagraph) => {\n const blocks = getOperationalBlocks<ContentModelListItem>(\n model,\n ['ListItem'],\n ['TableCell']\n )[0];\n let listItem: ContentModelListItem | undefined = undefined;\n if (blocks) {\n const listBlockIndex = blocks.parent.blocks.indexOf(paragraph);\n\n if (listBlockIndex > -1) {\n for (let i = listBlockIndex - 1; i > -1; i--) {\n const item = blocks.parent.blocks[i];\n if (isBlockGroupOfType<ContentModelListItem>(item, 'ListItem')) {\n listItem = item;\n break;\n }\n }\n }\n }\n\n return listItem;\n};\n\nconst getPreviousListStyle = (list?: ContentModelListItem) => {\n if (list?.levels[0].dataset) {\n return updateListMetadata(list.levels[0])?.orderedStyleType;\n }\n};\n\nconst bulletListType: Record<string, number> = {\n '*': BulletListType.Disc,\n '-': BulletListType.Dash,\n '--': BulletListType.Square,\n '->': BulletListType.LongArrow,\n '-->': BulletListType.DoubleLongArrow,\n '=>': BulletListType.UnfilledArrow,\n '>': BulletListType.ShortArrow,\n '—': BulletListType.Hyphen,\n};\n\nconst isNewList = (listMarker: string) => {\n const marker = listMarker.replace(/[^\\w\\s]/g, '');\n const pattern = /^[1aAiI]$/;\n return pattern.test(marker);\n};\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @internal
|
|
3
|
-
*/
|
|
4
|
-
export declare function getNumberingListStyle(textBeforeCursor: string, previousListIndex?: number, previousListStyle?: number): number | undefined;
|
|
1
|
+
/**
|
|
2
|
+
* @internal
|
|
3
|
+
*/
|
|
4
|
+
export declare function getNumberingListStyle(textBeforeCursor: string, previousListIndex?: number, previousListStyle?: number): number | undefined;
|
|
@@ -1,154 +1,154 @@
|
|
|
1
|
-
define(["require", "exports", "./getIndex", "roosterjs-content-model-core"], function (require, exports, getIndex_1, roosterjs_content_model_core_1) {
|
|
2
|
-
"use strict";
|
|
3
|
-
var _a, _b, _c, _d, _e, _f;
|
|
4
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
-
exports.getNumberingListStyle = void 0;
|
|
6
|
-
var NumberingTypes;
|
|
7
|
-
(function (NumberingTypes) {
|
|
8
|
-
NumberingTypes[NumberingTypes["Decimal"] = 1] = "Decimal";
|
|
9
|
-
NumberingTypes[NumberingTypes["LowerAlpha"] = 2] = "LowerAlpha";
|
|
10
|
-
NumberingTypes[NumberingTypes["UpperAlpha"] = 3] = "UpperAlpha";
|
|
11
|
-
NumberingTypes[NumberingTypes["LowerRoman"] = 4] = "LowerRoman";
|
|
12
|
-
NumberingTypes[NumberingTypes["UpperRoman"] = 5] = "UpperRoman";
|
|
13
|
-
})(NumberingTypes || (NumberingTypes = {}));
|
|
14
|
-
var Character;
|
|
15
|
-
(function (Character) {
|
|
16
|
-
Character[Character["Dot"] = 1] = "Dot";
|
|
17
|
-
Character[Character["Dash"] = 2] = "Dash";
|
|
18
|
-
Character[Character["Parenthesis"] = 3] = "Parenthesis";
|
|
19
|
-
Character[Character["DoubleParenthesis"] = 4] = "DoubleParenthesis";
|
|
20
|
-
})(Character || (Character = {}));
|
|
21
|
-
var characters = {
|
|
22
|
-
'.': 1 /* Dot */,
|
|
23
|
-
'-': 2 /* Dash */,
|
|
24
|
-
')': 3 /* Parenthesis */,
|
|
25
|
-
};
|
|
26
|
-
var lowerRomanTypes = [
|
|
27
|
-
roosterjs_content_model_core_1.NumberingListType.LowerRoman,
|
|
28
|
-
roosterjs_content_model_core_1.NumberingListType.LowerRomanDash,
|
|
29
|
-
roosterjs_content_model_core_1.NumberingListType.LowerRomanDoubleParenthesis,
|
|
30
|
-
roosterjs_content_model_core_1.NumberingListType.LowerRomanParenthesis,
|
|
31
|
-
];
|
|
32
|
-
var upperRomanTypes = [
|
|
33
|
-
roosterjs_content_model_core_1.NumberingListType.UpperRoman,
|
|
34
|
-
roosterjs_content_model_core_1.NumberingListType.UpperRomanDash,
|
|
35
|
-
roosterjs_content_model_core_1.NumberingListType.UpperRomanDoubleParenthesis,
|
|
36
|
-
roosterjs_content_model_core_1.NumberingListType.UpperRomanParenthesis,
|
|
37
|
-
];
|
|
38
|
-
var numberingTriggers = ['1', 'a', 'A', 'I', 'i'];
|
|
39
|
-
var lowerRomanNumbers = ['i', 'v', 'x', 'l', 'c', 'd', 'm'];
|
|
40
|
-
var upperRomanNumbers = ['I', 'V', 'X', 'L', 'C', 'D', 'M'];
|
|
41
|
-
var identifyNumberingType = function (text, previousListStyle) {
|
|
42
|
-
if (!isNaN(parseInt(text))) {
|
|
43
|
-
return 1 /* Decimal */;
|
|
44
|
-
}
|
|
45
|
-
else if (/[a-z]+/g.test(text)) {
|
|
46
|
-
if ((previousListStyle === 4 /* LowerRoman */ &&
|
|
47
|
-
lowerRomanTypes.indexOf(previousListStyle) > -1 &&
|
|
48
|
-
lowerRomanNumbers.indexOf(text[0]) > -1) ||
|
|
49
|
-
(!previousListStyle && text === 'i')) {
|
|
50
|
-
return 4 /* LowerRoman */;
|
|
51
|
-
}
|
|
52
|
-
else if (previousListStyle === 2 /* LowerAlpha */ ||
|
|
53
|
-
(!previousListStyle && text === 'a')) {
|
|
54
|
-
return 2 /* LowerAlpha */;
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
else if (/[A-Z]+/g.test(text)) {
|
|
58
|
-
if ((previousListStyle == 5 /* UpperRoman */ &&
|
|
59
|
-
upperRomanTypes.indexOf(previousListStyle) > -1 &&
|
|
60
|
-
upperRomanNumbers.indexOf(text[0]) > -1) ||
|
|
61
|
-
(!previousListStyle && text === 'I')) {
|
|
62
|
-
return 5 /* UpperRoman */;
|
|
63
|
-
}
|
|
64
|
-
else if (previousListStyle == 3 /* UpperAlpha */ ||
|
|
65
|
-
(!previousListStyle && text === 'A')) {
|
|
66
|
-
return 3 /* UpperAlpha */;
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
};
|
|
70
|
-
var numberingListTypes = (_a = {},
|
|
71
|
-
_a[1 /* Decimal */] = function (char) { return DecimalsTypes[char] || undefined; },
|
|
72
|
-
_a[2 /* LowerAlpha */] = function (char) { return LowerAlphaTypes[char] || undefined; },
|
|
73
|
-
_a[3 /* UpperAlpha */] = function (char) { return UpperAlphaTypes[char] || undefined; },
|
|
74
|
-
_a[4 /* LowerRoman */] = function (char) { return LowerRomanTypes[char] || undefined; },
|
|
75
|
-
_a[5 /* UpperRoman */] = function (char) { return UpperRomanTypes[char] || undefined; },
|
|
76
|
-
_a);
|
|
77
|
-
var UpperRomanTypes = (_b = {},
|
|
78
|
-
_b[1 /* Dot */] = roosterjs_content_model_core_1.NumberingListType.UpperRoman,
|
|
79
|
-
_b[2 /* Dash */] = roosterjs_content_model_core_1.NumberingListType.UpperRomanDash,
|
|
80
|
-
_b[3 /* Parenthesis */] = roosterjs_content_model_core_1.NumberingListType.UpperRomanParenthesis,
|
|
81
|
-
_b[4 /* DoubleParenthesis */] = roosterjs_content_model_core_1.NumberingListType.UpperRomanDoubleParenthesis,
|
|
82
|
-
_b);
|
|
83
|
-
var LowerRomanTypes = (_c = {},
|
|
84
|
-
_c[1 /* Dot */] = roosterjs_content_model_core_1.NumberingListType.LowerRoman,
|
|
85
|
-
_c[2 /* Dash */] = roosterjs_content_model_core_1.NumberingListType.LowerRomanDash,
|
|
86
|
-
_c[3 /* Parenthesis */] = roosterjs_content_model_core_1.NumberingListType.LowerRomanParenthesis,
|
|
87
|
-
_c[4 /* DoubleParenthesis */] = roosterjs_content_model_core_1.NumberingListType.LowerRomanDoubleParenthesis,
|
|
88
|
-
_c);
|
|
89
|
-
var UpperAlphaTypes = (_d = {},
|
|
90
|
-
_d[1 /* Dot */] = roosterjs_content_model_core_1.NumberingListType.UpperAlpha,
|
|
91
|
-
_d[2 /* Dash */] = roosterjs_content_model_core_1.NumberingListType.UpperAlphaDash,
|
|
92
|
-
_d[3 /* Parenthesis */] = roosterjs_content_model_core_1.NumberingListType.UpperAlphaParenthesis,
|
|
93
|
-
_d[4 /* DoubleParenthesis */] = roosterjs_content_model_core_1.NumberingListType.UpperAlphaDoubleParenthesis,
|
|
94
|
-
_d);
|
|
95
|
-
var LowerAlphaTypes = (_e = {},
|
|
96
|
-
_e[1 /* Dot */] = roosterjs_content_model_core_1.NumberingListType.LowerAlpha,
|
|
97
|
-
_e[2 /* Dash */] = roosterjs_content_model_core_1.NumberingListType.LowerAlphaDash,
|
|
98
|
-
_e[3 /* Parenthesis */] = roosterjs_content_model_core_1.NumberingListType.LowerAlphaParenthesis,
|
|
99
|
-
_e[4 /* DoubleParenthesis */] = roosterjs_content_model_core_1.NumberingListType.LowerAlphaDoubleParenthesis,
|
|
100
|
-
_e);
|
|
101
|
-
var DecimalsTypes = (_f = {},
|
|
102
|
-
_f[1 /* Dot */] = roosterjs_content_model_core_1.NumberingListType.Decimal,
|
|
103
|
-
_f[2 /* Dash */] = roosterjs_content_model_core_1.NumberingListType.DecimalDash,
|
|
104
|
-
_f[3 /* Parenthesis */] = roosterjs_content_model_core_1.NumberingListType.DecimalParenthesis,
|
|
105
|
-
_f[4 /* DoubleParenthesis */] = roosterjs_content_model_core_1.NumberingListType.DecimalDoubleParenthesis,
|
|
106
|
-
_f);
|
|
107
|
-
var identifyNumberingListType = function (numbering, isDoubleParenthesis, previousListStyle) {
|
|
108
|
-
var separatorCharacter = isDoubleParenthesis
|
|
109
|
-
? 4 /* DoubleParenthesis */
|
|
110
|
-
: characters[numbering[numbering.length - 1]];
|
|
111
|
-
// if separator is not valid, no need to check if the number is valid.
|
|
112
|
-
if (separatorCharacter) {
|
|
113
|
-
var number = isDoubleParenthesis ? numbering.slice(1, -1) : numbering.slice(0, -1);
|
|
114
|
-
var numberingType = identifyNumberingType(number, previousListStyle);
|
|
115
|
-
return numberingType ? numberingListTypes[numberingType](separatorCharacter) : undefined;
|
|
116
|
-
}
|
|
117
|
-
return undefined;
|
|
118
|
-
};
|
|
119
|
-
/**
|
|
120
|
-
* @internal
|
|
121
|
-
*/
|
|
122
|
-
function getNumberingListStyle(textBeforeCursor, previousListIndex, previousListStyle) {
|
|
123
|
-
var trigger = textBeforeCursor.trim();
|
|
124
|
-
var isDoubleParenthesis = trigger[0] === '(' && trigger[trigger.length - 1] === ')';
|
|
125
|
-
//Only the staring items ['1', 'a', 'A', 'I', 'i'] must trigger a new list. All the other triggers is used to keep the list chain.
|
|
126
|
-
//The index is always the characters before the last character
|
|
127
|
-
var listIndex = isDoubleParenthesis ? trigger.slice(1, -1) : trigger.slice(0, -1);
|
|
128
|
-
var index = (0, getIndex_1.getIndex)(listIndex);
|
|
129
|
-
var isContinuosList = numberingTriggers.indexOf(listIndex) < 0;
|
|
130
|
-
if (!index ||
|
|
131
|
-
index < 1 ||
|
|
132
|
-
(!previousListIndex && isContinuosList) ||
|
|
133
|
-
(previousListIndex && isContinuosList && !canAppendList(index, previousListIndex))) {
|
|
134
|
-
return undefined;
|
|
135
|
-
}
|
|
136
|
-
var numberingType = isValidNumbering(listIndex)
|
|
137
|
-
? identifyNumberingListType(trigger, isDoubleParenthesis, isContinuosList ? previousListStyle : undefined)
|
|
138
|
-
: undefined;
|
|
139
|
-
return numberingType;
|
|
140
|
-
}
|
|
141
|
-
exports.getNumberingListStyle = getNumberingListStyle;
|
|
142
|
-
/**
|
|
143
|
-
* Check if index has only numbers or only letters to avoid sequence of character such 1:1. trigger a list.
|
|
144
|
-
* @param index
|
|
145
|
-
* @returns
|
|
146
|
-
*/
|
|
147
|
-
function isValidNumbering(index) {
|
|
148
|
-
return Number(index) || /^[A-Za-z\s]*$/.test(index);
|
|
149
|
-
}
|
|
150
|
-
function canAppendList(index, previousListIndex) {
|
|
151
|
-
return previousListIndex && index && previousListIndex + 1 === index;
|
|
152
|
-
}
|
|
153
|
-
});
|
|
1
|
+
define(["require", "exports", "./getIndex", "roosterjs-content-model-core"], function (require, exports, getIndex_1, roosterjs_content_model_core_1) {
|
|
2
|
+
"use strict";
|
|
3
|
+
var _a, _b, _c, _d, _e, _f;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.getNumberingListStyle = void 0;
|
|
6
|
+
var NumberingTypes;
|
|
7
|
+
(function (NumberingTypes) {
|
|
8
|
+
NumberingTypes[NumberingTypes["Decimal"] = 1] = "Decimal";
|
|
9
|
+
NumberingTypes[NumberingTypes["LowerAlpha"] = 2] = "LowerAlpha";
|
|
10
|
+
NumberingTypes[NumberingTypes["UpperAlpha"] = 3] = "UpperAlpha";
|
|
11
|
+
NumberingTypes[NumberingTypes["LowerRoman"] = 4] = "LowerRoman";
|
|
12
|
+
NumberingTypes[NumberingTypes["UpperRoman"] = 5] = "UpperRoman";
|
|
13
|
+
})(NumberingTypes || (NumberingTypes = {}));
|
|
14
|
+
var Character;
|
|
15
|
+
(function (Character) {
|
|
16
|
+
Character[Character["Dot"] = 1] = "Dot";
|
|
17
|
+
Character[Character["Dash"] = 2] = "Dash";
|
|
18
|
+
Character[Character["Parenthesis"] = 3] = "Parenthesis";
|
|
19
|
+
Character[Character["DoubleParenthesis"] = 4] = "DoubleParenthesis";
|
|
20
|
+
})(Character || (Character = {}));
|
|
21
|
+
var characters = {
|
|
22
|
+
'.': 1 /* Dot */,
|
|
23
|
+
'-': 2 /* Dash */,
|
|
24
|
+
')': 3 /* Parenthesis */,
|
|
25
|
+
};
|
|
26
|
+
var lowerRomanTypes = [
|
|
27
|
+
roosterjs_content_model_core_1.NumberingListType.LowerRoman,
|
|
28
|
+
roosterjs_content_model_core_1.NumberingListType.LowerRomanDash,
|
|
29
|
+
roosterjs_content_model_core_1.NumberingListType.LowerRomanDoubleParenthesis,
|
|
30
|
+
roosterjs_content_model_core_1.NumberingListType.LowerRomanParenthesis,
|
|
31
|
+
];
|
|
32
|
+
var upperRomanTypes = [
|
|
33
|
+
roosterjs_content_model_core_1.NumberingListType.UpperRoman,
|
|
34
|
+
roosterjs_content_model_core_1.NumberingListType.UpperRomanDash,
|
|
35
|
+
roosterjs_content_model_core_1.NumberingListType.UpperRomanDoubleParenthesis,
|
|
36
|
+
roosterjs_content_model_core_1.NumberingListType.UpperRomanParenthesis,
|
|
37
|
+
];
|
|
38
|
+
var numberingTriggers = ['1', 'a', 'A', 'I', 'i'];
|
|
39
|
+
var lowerRomanNumbers = ['i', 'v', 'x', 'l', 'c', 'd', 'm'];
|
|
40
|
+
var upperRomanNumbers = ['I', 'V', 'X', 'L', 'C', 'D', 'M'];
|
|
41
|
+
var identifyNumberingType = function (text, previousListStyle) {
|
|
42
|
+
if (!isNaN(parseInt(text))) {
|
|
43
|
+
return 1 /* Decimal */;
|
|
44
|
+
}
|
|
45
|
+
else if (/[a-z]+/g.test(text)) {
|
|
46
|
+
if ((previousListStyle === 4 /* LowerRoman */ &&
|
|
47
|
+
lowerRomanTypes.indexOf(previousListStyle) > -1 &&
|
|
48
|
+
lowerRomanNumbers.indexOf(text[0]) > -1) ||
|
|
49
|
+
(!previousListStyle && text === 'i')) {
|
|
50
|
+
return 4 /* LowerRoman */;
|
|
51
|
+
}
|
|
52
|
+
else if (previousListStyle === 2 /* LowerAlpha */ ||
|
|
53
|
+
(!previousListStyle && text === 'a')) {
|
|
54
|
+
return 2 /* LowerAlpha */;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
else if (/[A-Z]+/g.test(text)) {
|
|
58
|
+
if ((previousListStyle == 5 /* UpperRoman */ &&
|
|
59
|
+
upperRomanTypes.indexOf(previousListStyle) > -1 &&
|
|
60
|
+
upperRomanNumbers.indexOf(text[0]) > -1) ||
|
|
61
|
+
(!previousListStyle && text === 'I')) {
|
|
62
|
+
return 5 /* UpperRoman */;
|
|
63
|
+
}
|
|
64
|
+
else if (previousListStyle == 3 /* UpperAlpha */ ||
|
|
65
|
+
(!previousListStyle && text === 'A')) {
|
|
66
|
+
return 3 /* UpperAlpha */;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
var numberingListTypes = (_a = {},
|
|
71
|
+
_a[1 /* Decimal */] = function (char) { return DecimalsTypes[char] || undefined; },
|
|
72
|
+
_a[2 /* LowerAlpha */] = function (char) { return LowerAlphaTypes[char] || undefined; },
|
|
73
|
+
_a[3 /* UpperAlpha */] = function (char) { return UpperAlphaTypes[char] || undefined; },
|
|
74
|
+
_a[4 /* LowerRoman */] = function (char) { return LowerRomanTypes[char] || undefined; },
|
|
75
|
+
_a[5 /* UpperRoman */] = function (char) { return UpperRomanTypes[char] || undefined; },
|
|
76
|
+
_a);
|
|
77
|
+
var UpperRomanTypes = (_b = {},
|
|
78
|
+
_b[1 /* Dot */] = roosterjs_content_model_core_1.NumberingListType.UpperRoman,
|
|
79
|
+
_b[2 /* Dash */] = roosterjs_content_model_core_1.NumberingListType.UpperRomanDash,
|
|
80
|
+
_b[3 /* Parenthesis */] = roosterjs_content_model_core_1.NumberingListType.UpperRomanParenthesis,
|
|
81
|
+
_b[4 /* DoubleParenthesis */] = roosterjs_content_model_core_1.NumberingListType.UpperRomanDoubleParenthesis,
|
|
82
|
+
_b);
|
|
83
|
+
var LowerRomanTypes = (_c = {},
|
|
84
|
+
_c[1 /* Dot */] = roosterjs_content_model_core_1.NumberingListType.LowerRoman,
|
|
85
|
+
_c[2 /* Dash */] = roosterjs_content_model_core_1.NumberingListType.LowerRomanDash,
|
|
86
|
+
_c[3 /* Parenthesis */] = roosterjs_content_model_core_1.NumberingListType.LowerRomanParenthesis,
|
|
87
|
+
_c[4 /* DoubleParenthesis */] = roosterjs_content_model_core_1.NumberingListType.LowerRomanDoubleParenthesis,
|
|
88
|
+
_c);
|
|
89
|
+
var UpperAlphaTypes = (_d = {},
|
|
90
|
+
_d[1 /* Dot */] = roosterjs_content_model_core_1.NumberingListType.UpperAlpha,
|
|
91
|
+
_d[2 /* Dash */] = roosterjs_content_model_core_1.NumberingListType.UpperAlphaDash,
|
|
92
|
+
_d[3 /* Parenthesis */] = roosterjs_content_model_core_1.NumberingListType.UpperAlphaParenthesis,
|
|
93
|
+
_d[4 /* DoubleParenthesis */] = roosterjs_content_model_core_1.NumberingListType.UpperAlphaDoubleParenthesis,
|
|
94
|
+
_d);
|
|
95
|
+
var LowerAlphaTypes = (_e = {},
|
|
96
|
+
_e[1 /* Dot */] = roosterjs_content_model_core_1.NumberingListType.LowerAlpha,
|
|
97
|
+
_e[2 /* Dash */] = roosterjs_content_model_core_1.NumberingListType.LowerAlphaDash,
|
|
98
|
+
_e[3 /* Parenthesis */] = roosterjs_content_model_core_1.NumberingListType.LowerAlphaParenthesis,
|
|
99
|
+
_e[4 /* DoubleParenthesis */] = roosterjs_content_model_core_1.NumberingListType.LowerAlphaDoubleParenthesis,
|
|
100
|
+
_e);
|
|
101
|
+
var DecimalsTypes = (_f = {},
|
|
102
|
+
_f[1 /* Dot */] = roosterjs_content_model_core_1.NumberingListType.Decimal,
|
|
103
|
+
_f[2 /* Dash */] = roosterjs_content_model_core_1.NumberingListType.DecimalDash,
|
|
104
|
+
_f[3 /* Parenthesis */] = roosterjs_content_model_core_1.NumberingListType.DecimalParenthesis,
|
|
105
|
+
_f[4 /* DoubleParenthesis */] = roosterjs_content_model_core_1.NumberingListType.DecimalDoubleParenthesis,
|
|
106
|
+
_f);
|
|
107
|
+
var identifyNumberingListType = function (numbering, isDoubleParenthesis, previousListStyle) {
|
|
108
|
+
var separatorCharacter = isDoubleParenthesis
|
|
109
|
+
? 4 /* DoubleParenthesis */
|
|
110
|
+
: characters[numbering[numbering.length - 1]];
|
|
111
|
+
// if separator is not valid, no need to check if the number is valid.
|
|
112
|
+
if (separatorCharacter) {
|
|
113
|
+
var number = isDoubleParenthesis ? numbering.slice(1, -1) : numbering.slice(0, -1);
|
|
114
|
+
var numberingType = identifyNumberingType(number, previousListStyle);
|
|
115
|
+
return numberingType ? numberingListTypes[numberingType](separatorCharacter) : undefined;
|
|
116
|
+
}
|
|
117
|
+
return undefined;
|
|
118
|
+
};
|
|
119
|
+
/**
|
|
120
|
+
* @internal
|
|
121
|
+
*/
|
|
122
|
+
function getNumberingListStyle(textBeforeCursor, previousListIndex, previousListStyle) {
|
|
123
|
+
var trigger = textBeforeCursor.trim();
|
|
124
|
+
var isDoubleParenthesis = trigger[0] === '(' && trigger[trigger.length - 1] === ')';
|
|
125
|
+
//Only the staring items ['1', 'a', 'A', 'I', 'i'] must trigger a new list. All the other triggers is used to keep the list chain.
|
|
126
|
+
//The index is always the characters before the last character
|
|
127
|
+
var listIndex = isDoubleParenthesis ? trigger.slice(1, -1) : trigger.slice(0, -1);
|
|
128
|
+
var index = (0, getIndex_1.getIndex)(listIndex);
|
|
129
|
+
var isContinuosList = numberingTriggers.indexOf(listIndex) < 0;
|
|
130
|
+
if (!index ||
|
|
131
|
+
index < 1 ||
|
|
132
|
+
(!previousListIndex && isContinuosList) ||
|
|
133
|
+
(previousListIndex && isContinuosList && !canAppendList(index, previousListIndex))) {
|
|
134
|
+
return undefined;
|
|
135
|
+
}
|
|
136
|
+
var numberingType = isValidNumbering(listIndex)
|
|
137
|
+
? identifyNumberingListType(trigger, isDoubleParenthesis, isContinuosList ? previousListStyle : undefined)
|
|
138
|
+
: undefined;
|
|
139
|
+
return numberingType;
|
|
140
|
+
}
|
|
141
|
+
exports.getNumberingListStyle = getNumberingListStyle;
|
|
142
|
+
/**
|
|
143
|
+
* Check if index has only numbers or only letters to avoid sequence of character such 1:1. trigger a list.
|
|
144
|
+
* @param index
|
|
145
|
+
* @returns
|
|
146
|
+
*/
|
|
147
|
+
function isValidNumbering(index) {
|
|
148
|
+
return Number(index) || /^[A-Za-z\s]*$/.test(index);
|
|
149
|
+
}
|
|
150
|
+
function canAppendList(index, previousListIndex) {
|
|
151
|
+
return previousListIndex && index && previousListIndex + 1 === index;
|
|
152
|
+
}
|
|
153
|
+
});
|
|
154
154
|
//# sourceMappingURL=getNumberingListStyle.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getNumberingListStyle.js","sourceRoot":"","sources":["../../../../../packages-content-model/roosterjs-content-model-plugins/lib/autoFormat/utils/getNumberingListStyle.ts"],"names":[],"mappings":"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","sourcesContent":["import { getIndex } from './getIndex';\r\nimport { NumberingListType } from 'roosterjs-content-model-core';\r\n\r\nconst enum NumberingTypes {\r\n Decimal = 1,\r\n LowerAlpha = 2,\r\n UpperAlpha = 3,\r\n LowerRoman = 4,\r\n UpperRoman = 5,\r\n}\r\n\r\nconst enum Character {\r\n Dot = 1,\r\n Dash = 2,\r\n Parenthesis = 3,\r\n DoubleParenthesis = 4,\r\n}\r\n\r\nconst characters: Record<string, number> = {\r\n '.': Character.Dot,\r\n '-': Character.Dash,\r\n ')': Character.Parenthesis,\r\n};\r\n\r\nconst lowerRomanTypes = [\r\n NumberingListType.LowerRoman,\r\n NumberingListType.LowerRomanDash,\r\n NumberingListType.LowerRomanDoubleParenthesis,\r\n NumberingListType.LowerRomanParenthesis,\r\n];\r\nconst upperRomanTypes = [\r\n NumberingListType.UpperRoman,\r\n NumberingListType.UpperRomanDash,\r\n NumberingListType.UpperRomanDoubleParenthesis,\r\n NumberingListType.UpperRomanParenthesis,\r\n];\r\nconst numberingTriggers = ['1', 'a', 'A', 'I', 'i'];\r\nconst lowerRomanNumbers = ['i', 'v', 'x', 'l', 'c', 'd', 'm'];\r\nconst upperRomanNumbers = ['I', 'V', 'X', 'L', 'C', 'D', 'M'];\r\n\r\nconst identifyNumberingType = (text: string, previousListStyle?: number) => {\r\n if (!isNaN(parseInt(text))) {\r\n return NumberingTypes.Decimal;\r\n } else if (/[a-z]+/g.test(text)) {\r\n if (\r\n (previousListStyle === NumberingTypes.LowerRoman &&\r\n lowerRomanTypes.indexOf(previousListStyle) > -1 &&\r\n lowerRomanNumbers.indexOf(text[0]) > -1) ||\r\n (!previousListStyle && text === 'i')\r\n ) {\r\n return NumberingTypes.LowerRoman;\r\n } else if (\r\n previousListStyle === NumberingTypes.LowerAlpha ||\r\n (!previousListStyle && text === 'a')\r\n ) {\r\n return NumberingTypes.LowerAlpha;\r\n }\r\n } else if (/[A-Z]+/g.test(text)) {\r\n if (\r\n (previousListStyle == NumberingTypes.UpperRoman &&\r\n upperRomanTypes.indexOf(previousListStyle) > -1 &&\r\n upperRomanNumbers.indexOf(text[0]) > -1) ||\r\n (!previousListStyle && text === 'I')\r\n ) {\r\n return NumberingTypes.UpperRoman;\r\n } else if (\r\n previousListStyle == NumberingTypes.UpperAlpha ||\r\n (!previousListStyle && text === 'A')\r\n ) {\r\n return NumberingTypes.UpperAlpha;\r\n }\r\n }\r\n};\r\n\r\nconst numberingListTypes: Record<number, (char: number) => number | undefined> = {\r\n [NumberingTypes.Decimal]: char => DecimalsTypes[char] || undefined,\r\n [NumberingTypes.LowerAlpha]: char => LowerAlphaTypes[char] || undefined,\r\n [NumberingTypes.UpperAlpha]: char => UpperAlphaTypes[char] || undefined,\r\n [NumberingTypes.LowerRoman]: char => LowerRomanTypes[char] || undefined,\r\n [NumberingTypes.UpperRoman]: char => UpperRomanTypes[char] || undefined,\r\n};\r\n\r\nconst UpperRomanTypes: Record<number, number> = {\r\n [Character.Dot]: NumberingListType.UpperRoman,\r\n [Character.Dash]: NumberingListType.UpperRomanDash,\r\n [Character.Parenthesis]: NumberingListType.UpperRomanParenthesis,\r\n [Character.DoubleParenthesis]: NumberingListType.UpperRomanDoubleParenthesis,\r\n};\r\n\r\nconst LowerRomanTypes: Record<number, number> = {\r\n [Character.Dot]: NumberingListType.LowerRoman,\r\n [Character.Dash]: NumberingListType.LowerRomanDash,\r\n [Character.Parenthesis]: NumberingListType.LowerRomanParenthesis,\r\n [Character.DoubleParenthesis]: NumberingListType.LowerRomanDoubleParenthesis,\r\n};\r\n\r\nconst UpperAlphaTypes: Record<number, number> = {\r\n [Character.Dot]: NumberingListType.UpperAlpha,\r\n [Character.Dash]: NumberingListType.UpperAlphaDash,\r\n [Character.Parenthesis]: NumberingListType.UpperAlphaParenthesis,\r\n [Character.DoubleParenthesis]: NumberingListType.UpperAlphaDoubleParenthesis,\r\n};\r\n\r\nconst LowerAlphaTypes: Record<number, number> = {\r\n [Character.Dot]: NumberingListType.LowerAlpha,\r\n [Character.Dash]: NumberingListType.LowerAlphaDash,\r\n [Character.Parenthesis]: NumberingListType.LowerAlphaParenthesis,\r\n [Character.DoubleParenthesis]: NumberingListType.LowerAlphaDoubleParenthesis,\r\n};\r\n\r\nconst DecimalsTypes: Record<number, number> = {\r\n [Character.Dot]: NumberingListType.Decimal,\r\n [Character.Dash]: NumberingListType.DecimalDash,\r\n [Character.Parenthesis]: NumberingListType.DecimalParenthesis,\r\n [Character.DoubleParenthesis]: NumberingListType.DecimalDoubleParenthesis,\r\n};\r\n\r\nconst identifyNumberingListType = (\r\n numbering: string,\r\n isDoubleParenthesis: boolean,\r\n previousListStyle?: number\r\n): number | undefined => {\r\n const separatorCharacter = isDoubleParenthesis\r\n ? Character.DoubleParenthesis\r\n : characters[numbering[numbering.length - 1]];\r\n // if separator is not valid, no need to check if the number is valid.\r\n if (separatorCharacter) {\r\n const number = isDoubleParenthesis ? numbering.slice(1, -1) : numbering.slice(0, -1);\r\n const numberingType = identifyNumberingType(number, previousListStyle);\r\n return numberingType ? numberingListTypes[numberingType](separatorCharacter) : undefined;\r\n }\r\n return undefined;\r\n};\r\n\r\n/**\r\n * @internal\r\n */\r\nexport function getNumberingListStyle(\r\n textBeforeCursor: string,\r\n previousListIndex?: number,\r\n previousListStyle?: number\r\n): number | undefined {\r\n const trigger = textBeforeCursor.trim();\r\n const isDoubleParenthesis = trigger[0] === '(' && trigger[trigger.length - 1] === ')';\r\n //Only the staring items ['1', 'a', 'A', 'I', 'i'] must trigger a new list. All the other triggers is used to keep the list chain.\r\n //The index is always the characters before the last character\r\n const listIndex = isDoubleParenthesis ? trigger.slice(1, -1) : trigger.slice(0, -1);\r\n const index = getIndex(listIndex);\r\n const isContinuosList = numberingTriggers.indexOf(listIndex) < 0;\r\n\r\n if (\r\n !index ||\r\n index < 1 ||\r\n (!previousListIndex && isContinuosList) ||\r\n (previousListIndex && isContinuosList && !canAppendList(index, previousListIndex))\r\n ) {\r\n return undefined;\r\n }\r\n\r\n const numberingType = isValidNumbering(listIndex)\r\n ? identifyNumberingListType(\r\n trigger,\r\n isDoubleParenthesis,\r\n isContinuosList ? previousListStyle : undefined\r\n )\r\n : undefined;\r\n return numberingType;\r\n}\r\n\r\n/**\r\n * Check if index has only numbers or only letters to avoid sequence of character such 1:1. trigger a list.\r\n * @param index\r\n * @returns\r\n */\r\nfunction isValidNumbering(index: string) {\r\n return Number(index) || /^[A-Za-z\\s]*$/.test(index);\r\n}\r\n\r\nfunction canAppendList(index?: number, previousListIndex?: number) {\r\n return previousListIndex && index && previousListIndex + 1 === index;\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"getNumberingListStyle.js","sourceRoot":"","sources":["../../../../../packages-content-model/roosterjs-content-model-plugins/lib/autoFormat/utils/getNumberingListStyle.ts"],"names":[],"mappings":"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","sourcesContent":["import { getIndex } from './getIndex';\nimport { NumberingListType } from 'roosterjs-content-model-core';\n\nconst enum NumberingTypes {\n Decimal = 1,\n LowerAlpha = 2,\n UpperAlpha = 3,\n LowerRoman = 4,\n UpperRoman = 5,\n}\n\nconst enum Character {\n Dot = 1,\n Dash = 2,\n Parenthesis = 3,\n DoubleParenthesis = 4,\n}\n\nconst characters: Record<string, number> = {\n '.': Character.Dot,\n '-': Character.Dash,\n ')': Character.Parenthesis,\n};\n\nconst lowerRomanTypes = [\n NumberingListType.LowerRoman,\n NumberingListType.LowerRomanDash,\n NumberingListType.LowerRomanDoubleParenthesis,\n NumberingListType.LowerRomanParenthesis,\n];\nconst upperRomanTypes = [\n NumberingListType.UpperRoman,\n NumberingListType.UpperRomanDash,\n NumberingListType.UpperRomanDoubleParenthesis,\n NumberingListType.UpperRomanParenthesis,\n];\nconst numberingTriggers = ['1', 'a', 'A', 'I', 'i'];\nconst lowerRomanNumbers = ['i', 'v', 'x', 'l', 'c', 'd', 'm'];\nconst upperRomanNumbers = ['I', 'V', 'X', 'L', 'C', 'D', 'M'];\n\nconst identifyNumberingType = (text: string, previousListStyle?: number) => {\n if (!isNaN(parseInt(text))) {\n return NumberingTypes.Decimal;\n } else if (/[a-z]+/g.test(text)) {\n if (\n (previousListStyle === NumberingTypes.LowerRoman &&\n lowerRomanTypes.indexOf(previousListStyle) > -1 &&\n lowerRomanNumbers.indexOf(text[0]) > -1) ||\n (!previousListStyle && text === 'i')\n ) {\n return NumberingTypes.LowerRoman;\n } else if (\n previousListStyle === NumberingTypes.LowerAlpha ||\n (!previousListStyle && text === 'a')\n ) {\n return NumberingTypes.LowerAlpha;\n }\n } else if (/[A-Z]+/g.test(text)) {\n if (\n (previousListStyle == NumberingTypes.UpperRoman &&\n upperRomanTypes.indexOf(previousListStyle) > -1 &&\n upperRomanNumbers.indexOf(text[0]) > -1) ||\n (!previousListStyle && text === 'I')\n ) {\n return NumberingTypes.UpperRoman;\n } else if (\n previousListStyle == NumberingTypes.UpperAlpha ||\n (!previousListStyle && text === 'A')\n ) {\n return NumberingTypes.UpperAlpha;\n }\n }\n};\n\nconst numberingListTypes: Record<number, (char: number) => number | undefined> = {\n [NumberingTypes.Decimal]: char => DecimalsTypes[char] || undefined,\n [NumberingTypes.LowerAlpha]: char => LowerAlphaTypes[char] || undefined,\n [NumberingTypes.UpperAlpha]: char => UpperAlphaTypes[char] || undefined,\n [NumberingTypes.LowerRoman]: char => LowerRomanTypes[char] || undefined,\n [NumberingTypes.UpperRoman]: char => UpperRomanTypes[char] || undefined,\n};\n\nconst UpperRomanTypes: Record<number, number> = {\n [Character.Dot]: NumberingListType.UpperRoman,\n [Character.Dash]: NumberingListType.UpperRomanDash,\n [Character.Parenthesis]: NumberingListType.UpperRomanParenthesis,\n [Character.DoubleParenthesis]: NumberingListType.UpperRomanDoubleParenthesis,\n};\n\nconst LowerRomanTypes: Record<number, number> = {\n [Character.Dot]: NumberingListType.LowerRoman,\n [Character.Dash]: NumberingListType.LowerRomanDash,\n [Character.Parenthesis]: NumberingListType.LowerRomanParenthesis,\n [Character.DoubleParenthesis]: NumberingListType.LowerRomanDoubleParenthesis,\n};\n\nconst UpperAlphaTypes: Record<number, number> = {\n [Character.Dot]: NumberingListType.UpperAlpha,\n [Character.Dash]: NumberingListType.UpperAlphaDash,\n [Character.Parenthesis]: NumberingListType.UpperAlphaParenthesis,\n [Character.DoubleParenthesis]: NumberingListType.UpperAlphaDoubleParenthesis,\n};\n\nconst LowerAlphaTypes: Record<number, number> = {\n [Character.Dot]: NumberingListType.LowerAlpha,\n [Character.Dash]: NumberingListType.LowerAlphaDash,\n [Character.Parenthesis]: NumberingListType.LowerAlphaParenthesis,\n [Character.DoubleParenthesis]: NumberingListType.LowerAlphaDoubleParenthesis,\n};\n\nconst DecimalsTypes: Record<number, number> = {\n [Character.Dot]: NumberingListType.Decimal,\n [Character.Dash]: NumberingListType.DecimalDash,\n [Character.Parenthesis]: NumberingListType.DecimalParenthesis,\n [Character.DoubleParenthesis]: NumberingListType.DecimalDoubleParenthesis,\n};\n\nconst identifyNumberingListType = (\n numbering: string,\n isDoubleParenthesis: boolean,\n previousListStyle?: number\n): number | undefined => {\n const separatorCharacter = isDoubleParenthesis\n ? Character.DoubleParenthesis\n : characters[numbering[numbering.length - 1]];\n // if separator is not valid, no need to check if the number is valid.\n if (separatorCharacter) {\n const number = isDoubleParenthesis ? numbering.slice(1, -1) : numbering.slice(0, -1);\n const numberingType = identifyNumberingType(number, previousListStyle);\n return numberingType ? numberingListTypes[numberingType](separatorCharacter) : undefined;\n }\n return undefined;\n};\n\n/**\n * @internal\n */\nexport function getNumberingListStyle(\n textBeforeCursor: string,\n previousListIndex?: number,\n previousListStyle?: number\n): number | undefined {\n const trigger = textBeforeCursor.trim();\n const isDoubleParenthesis = trigger[0] === '(' && trigger[trigger.length - 1] === ')';\n //Only the staring items ['1', 'a', 'A', 'I', 'i'] must trigger a new list. All the other triggers is used to keep the list chain.\n //The index is always the characters before the last character\n const listIndex = isDoubleParenthesis ? trigger.slice(1, -1) : trigger.slice(0, -1);\n const index = getIndex(listIndex);\n const isContinuosList = numberingTriggers.indexOf(listIndex) < 0;\n\n if (\n !index ||\n index < 1 ||\n (!previousListIndex && isContinuosList) ||\n (previousListIndex && isContinuosList && !canAppendList(index, previousListIndex))\n ) {\n return undefined;\n }\n\n const numberingType = isValidNumbering(listIndex)\n ? identifyNumberingListType(\n trigger,\n isDoubleParenthesis,\n isContinuosList ? previousListStyle : undefined\n )\n : undefined;\n return numberingType;\n}\n\n/**\n * Check if index has only numbers or only letters to avoid sequence of character such 1:1. trigger a list.\n * @param index\n * @returns\n */\nfunction isValidNumbering(index: string) {\n return Number(index) || /^[A-Za-z\\s]*$/.test(index);\n}\n\nfunction canAppendList(index?: number, previousListIndex?: number) {\n return previousListIndex && index && previousListIndex + 1 === index;\n}\n"]}
|