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.
Files changed (451) hide show
  1. package/lib/autoFormat/AutoFormatPlugin.d.ts +53 -53
  2. package/lib/autoFormat/AutoFormatPlugin.js +80 -80
  3. package/lib/autoFormat/AutoFormatPlugin.js.map +1 -1
  4. package/lib/autoFormat/keyboardListTrigger.d.ts +5 -5
  5. package/lib/autoFormat/keyboardListTrigger.js +45 -45
  6. package/lib/autoFormat/keyboardListTrigger.js.map +1 -1
  7. package/lib/autoFormat/utils/convertAlphaToDecimals.d.ts +7 -7
  8. package/lib/autoFormat/utils/convertAlphaToDecimals.js +22 -22
  9. package/lib/autoFormat/utils/convertAlphaToDecimals.js.map +1 -1
  10. package/lib/autoFormat/utils/getIndex.d.ts +4 -4
  11. package/lib/autoFormat/utils/getIndex.js +13 -13
  12. package/lib/autoFormat/utils/getIndex.js.map +1 -1
  13. package/lib/autoFormat/utils/getListTypeStyle.d.ts +14 -14
  14. package/lib/autoFormat/utils/getListTypeStyle.js +87 -87
  15. package/lib/autoFormat/utils/getListTypeStyle.js.map +1 -1
  16. package/lib/autoFormat/utils/getNumberingListStyle.d.ts +4 -4
  17. package/lib/autoFormat/utils/getNumberingListStyle.js +153 -153
  18. package/lib/autoFormat/utils/getNumberingListStyle.js.map +1 -1
  19. package/lib/edit/EditPlugin.d.ts +39 -39
  20. package/lib/edit/EditPlugin.js +128 -128
  21. package/lib/edit/EditPlugin.js.map +1 -1
  22. package/lib/edit/deleteSteps/deleteAllSegmentBefore.d.ts +5 -5
  23. package/lib/edit/deleteSteps/deleteAllSegmentBefore.js +22 -22
  24. package/lib/edit/deleteSteps/deleteAllSegmentBefore.js.map +1 -1
  25. package/lib/edit/deleteSteps/deleteCollapsedSelection.d.ts +9 -9
  26. package/lib/edit/deleteSteps/deleteCollapsedSelection.js +93 -93
  27. package/lib/edit/deleteSteps/deleteCollapsedSelection.js.map +1 -1
  28. package/lib/edit/deleteSteps/deleteList.d.ts +5 -5
  29. package/lib/edit/deleteSteps/deleteList.js +23 -23
  30. package/lib/edit/deleteSteps/deleteList.js.map +1 -1
  31. package/lib/edit/deleteSteps/deleteWordSelection.d.ts +9 -9
  32. package/lib/edit/deleteSteps/deleteWordSelection.js +173 -173
  33. package/lib/edit/deleteSteps/deleteWordSelection.js.map +1 -1
  34. package/lib/edit/handleKeyboardEventCommon.d.ts +14 -14
  35. package/lib/edit/handleKeyboardEventCommon.js +54 -54
  36. package/lib/edit/handleKeyboardEventCommon.js.map +1 -1
  37. package/lib/edit/inputSteps/handleEnterOnList.d.ts +5 -5
  38. package/lib/edit/inputSteps/handleEnterOnList.js +67 -67
  39. package/lib/edit/inputSteps/handleEnterOnList.js.map +1 -1
  40. package/lib/edit/keyboardDelete.d.ts +9 -9
  41. package/lib/edit/keyboardDelete.js +71 -71
  42. package/lib/edit/keyboardDelete.js.map +1 -1
  43. package/lib/edit/keyboardInput.d.ts +5 -5
  44. package/lib/edit/keyboardInput.js +58 -58
  45. package/lib/edit/keyboardInput.js.map +1 -1
  46. package/lib/edit/keyboardTab.d.ts +5 -5
  47. package/lib/edit/keyboardTab.js +34 -34
  48. package/lib/edit/keyboardTab.js.map +1 -1
  49. package/lib/edit/utils/getLeafSiblingBlock.d.ts +23 -23
  50. package/lib/edit/utils/getLeafSiblingBlock.js +75 -75
  51. package/lib/edit/utils/getLeafSiblingBlock.js.map +1 -1
  52. package/lib/index.d.ts +3 -3
  53. package/lib/index.js +9 -9
  54. package/lib/index.js.map +1 -1
  55. package/lib/paste/Excel/processPastedContentFromExcel.d.ts +12 -12
  56. package/lib/paste/Excel/processPastedContentFromExcel.js +82 -82
  57. package/lib/paste/Excel/processPastedContentFromExcel.js.map +1 -1
  58. package/lib/paste/PastePlugin.d.ts +43 -43
  59. package/lib/paste/PastePlugin.js +130 -130
  60. package/lib/paste/PastePlugin.js.map +1 -1
  61. package/lib/paste/PowerPoint/processPastedContentFromPowerPoint.d.ts +7 -7
  62. package/lib/paste/PowerPoint/processPastedContentFromPowerPoint.js +19 -19
  63. package/lib/paste/PowerPoint/processPastedContentFromPowerPoint.js.map +1 -1
  64. package/lib/paste/WacComponents/constants.d.ts +48 -48
  65. package/lib/paste/WacComponents/constants.js +62 -62
  66. package/lib/paste/WacComponents/constants.js.map +1 -1
  67. package/lib/paste/WacComponents/processPastedContentWacComponents.d.ts +9 -9
  68. package/lib/paste/WacComponents/processPastedContentWacComponents.js +188 -188
  69. package/lib/paste/WacComponents/processPastedContentWacComponents.js.map +1 -1
  70. package/lib/paste/WordDesktop/WordMetadata.d.ts +9 -9
  71. package/lib/paste/WordDesktop/WordMetadata.js +2 -2
  72. package/lib/paste/WordDesktop/WordMetadata.js.map +1 -1
  73. package/lib/paste/WordDesktop/getStyleMetadata.d.ts +23 -23
  74. package/lib/paste/WordDesktop/getStyleMetadata.js +78 -78
  75. package/lib/paste/WordDesktop/getStyleMetadata.js.map +1 -1
  76. package/lib/paste/WordDesktop/processPastedContentFromWordDesktop.d.ts +7 -7
  77. package/lib/paste/WordDesktop/processPastedContentFromWordDesktop.js +58 -58
  78. package/lib/paste/WordDesktop/processPastedContentFromWordDesktop.js.map +1 -1
  79. package/lib/paste/WordDesktop/processWordComments.d.ts +7 -7
  80. package/lib/paste/WordDesktop/processWordComments.js +21 -21
  81. package/lib/paste/WordDesktop/processWordComments.js.map +1 -1
  82. package/lib/paste/WordDesktop/processWordLists.d.ts +11 -11
  83. package/lib/paste/WordDesktop/processWordLists.js +179 -179
  84. package/lib/paste/WordDesktop/processWordLists.js.map +1 -1
  85. package/lib/paste/WordDesktop/removeNegativeTextIndentParser.d.ts +5 -5
  86. package/lib/paste/WordDesktop/removeNegativeTextIndentParser.js +13 -13
  87. package/lib/paste/WordDesktop/removeNegativeTextIndentParser.js.map +1 -1
  88. package/lib/paste/pasteSourceValidations/constants.d.ts +17 -17
  89. package/lib/paste/pasteSourceValidations/constants.js +20 -20
  90. package/lib/paste/pasteSourceValidations/constants.js.map +1 -1
  91. package/lib/paste/pasteSourceValidations/documentContainWacElements.d.ts +8 -8
  92. package/lib/paste/pasteSourceValidations/documentContainWacElements.js +15 -15
  93. package/lib/paste/pasteSourceValidations/documentContainWacElements.js.map +1 -1
  94. package/lib/paste/pasteSourceValidations/getPasteSource.d.ts +27 -27
  95. package/lib/paste/pasteSourceValidations/getPasteSource.js +43 -43
  96. package/lib/paste/pasteSourceValidations/getPasteSource.js.map +1 -1
  97. package/lib/paste/pasteSourceValidations/isExcelDesktopDocument.d.ts +8 -8
  98. package/lib/paste/pasteSourceValidations/isExcelDesktopDocument.js +17 -17
  99. package/lib/paste/pasteSourceValidations/isExcelDesktopDocument.js.map +1 -1
  100. package/lib/paste/pasteSourceValidations/isExcelOnlineDocument.d.ts +8 -8
  101. package/lib/paste/pasteSourceValidations/isExcelOnlineDocument.js +19 -19
  102. package/lib/paste/pasteSourceValidations/isExcelOnlineDocument.js.map +1 -1
  103. package/lib/paste/pasteSourceValidations/isGoogleSheetDocument.d.ts +8 -8
  104. package/lib/paste/pasteSourceValidations/isGoogleSheetDocument.js +15 -15
  105. package/lib/paste/pasteSourceValidations/isGoogleSheetDocument.js.map +1 -1
  106. package/lib/paste/pasteSourceValidations/isPowerPointDesktopDocument.d.ts +8 -8
  107. package/lib/paste/pasteSourceValidations/isPowerPointDesktopDocument.js +15 -15
  108. package/lib/paste/pasteSourceValidations/isPowerPointDesktopDocument.js.map +1 -1
  109. package/lib/paste/pasteSourceValidations/isWordDesktopDocument.d.ts +8 -8
  110. package/lib/paste/pasteSourceValidations/isWordDesktopDocument.js +19 -19
  111. package/lib/paste/pasteSourceValidations/isWordDesktopDocument.js.map +1 -1
  112. package/lib/paste/pasteSourceValidations/shouldConvertToSingleImage.d.ts +9 -9
  113. package/lib/paste/pasteSourceValidations/shouldConvertToSingleImage.js +18 -18
  114. package/lib/paste/pasteSourceValidations/shouldConvertToSingleImage.js.map +1 -1
  115. package/lib/paste/utils/addParser.d.ts +5 -5
  116. package/lib/paste/utils/addParser.js +16 -16
  117. package/lib/paste/utils/addParser.js.map +1 -1
  118. package/lib/paste/utils/deprecatedColorParser.d.ts +5 -5
  119. package/lib/paste/utils/deprecatedColorParser.js +19 -19
  120. package/lib/paste/utils/deprecatedColorParser.js.map +1 -1
  121. package/lib/paste/utils/getStyles.d.ts +6 -6
  122. package/lib/paste/utils/getStyles.js +22 -22
  123. package/lib/paste/utils/getStyles.js.map +1 -1
  124. package/lib/paste/utils/linkParser.d.ts +5 -5
  125. package/lib/paste/utils/linkParser.js +27 -27
  126. package/lib/paste/utils/linkParser.js.map +1 -1
  127. package/lib/paste/utils/setProcessor.d.ts +5 -5
  128. package/lib/paste/utils/setProcessor.js +13 -13
  129. package/lib/paste/utils/setProcessor.js.map +1 -1
  130. package/lib/pluginUtils/CreateElement/CreateElementData.d.ts +35 -35
  131. package/lib/pluginUtils/CreateElement/CreateElementData.js +2 -2
  132. package/lib/pluginUtils/CreateElement/CreateElementData.js.map +1 -1
  133. package/lib/pluginUtils/CreateElement/createElement.d.ts +9 -9
  134. package/lib/pluginUtils/CreateElement/createElement.js +50 -50
  135. package/lib/pluginUtils/CreateElement/createElement.js.map +1 -1
  136. package/lib/pluginUtils/Disposable.d.ts +10 -10
  137. package/lib/pluginUtils/Disposable.js +2 -2
  138. package/lib/pluginUtils/Disposable.js.map +1 -1
  139. package/lib/pluginUtils/DragAndDrop/DragAndDropHandler.d.ts +45 -45
  140. package/lib/pluginUtils/DragAndDrop/DragAndDropHandler.js +2 -2
  141. package/lib/pluginUtils/DragAndDrop/DragAndDropHandler.js.map +1 -1
  142. package/lib/pluginUtils/DragAndDrop/DragAndDropHelper.d.ts +39 -39
  143. package/lib/pluginUtils/DragAndDrop/DragAndDropHelper.js +119 -119
  144. package/lib/pluginUtils/DragAndDrop/DragAndDropHelper.js.map +1 -1
  145. package/lib/pluginUtils/Rect/getIntersectedRect.d.ts +27 -27
  146. package/lib/pluginUtils/Rect/getIntersectedRect.js +44 -44
  147. package/lib/pluginUtils/Rect/getIntersectedRect.js.map +1 -1
  148. package/lib/pluginUtils/Rect/normalizeRect.d.ts +7 -7
  149. package/lib/pluginUtils/Rect/normalizeRect.js +19 -19
  150. package/lib/pluginUtils/Rect/normalizeRect.js.map +1 -1
  151. package/lib-amd/autoFormat/AutoFormatPlugin.d.ts +53 -53
  152. package/lib-amd/autoFormat/AutoFormatPlugin.js +81 -81
  153. package/lib-amd/autoFormat/AutoFormatPlugin.js.map +1 -1
  154. package/lib-amd/autoFormat/keyboardListTrigger.d.ts +5 -5
  155. package/lib-amd/autoFormat/keyboardListTrigger.js +43 -43
  156. package/lib-amd/autoFormat/keyboardListTrigger.js.map +1 -1
  157. package/lib-amd/autoFormat/utils/convertAlphaToDecimals.d.ts +7 -7
  158. package/lib-amd/autoFormat/utils/convertAlphaToDecimals.js +24 -24
  159. package/lib-amd/autoFormat/utils/convertAlphaToDecimals.js.map +1 -1
  160. package/lib-amd/autoFormat/utils/getIndex.d.ts +4 -4
  161. package/lib-amd/autoFormat/utils/getIndex.js +14 -14
  162. package/lib-amd/autoFormat/utils/getIndex.js.map +1 -1
  163. package/lib-amd/autoFormat/utils/getListTypeStyle.d.ts +14 -14
  164. package/lib-amd/autoFormat/utils/getListTypeStyle.js +86 -86
  165. package/lib-amd/autoFormat/utils/getListTypeStyle.js.map +1 -1
  166. package/lib-amd/autoFormat/utils/getNumberingListStyle.d.ts +4 -4
  167. package/lib-amd/autoFormat/utils/getNumberingListStyle.js +153 -153
  168. package/lib-amd/autoFormat/utils/getNumberingListStyle.js.map +1 -1
  169. package/lib-amd/edit/EditPlugin.d.ts +39 -39
  170. package/lib-amd/edit/EditPlugin.js +127 -127
  171. package/lib-amd/edit/EditPlugin.js.map +1 -1
  172. package/lib-amd/edit/deleteSteps/deleteAllSegmentBefore.d.ts +5 -5
  173. package/lib-amd/edit/deleteSteps/deleteAllSegmentBefore.js +23 -23
  174. package/lib-amd/edit/deleteSteps/deleteAllSegmentBefore.js.map +1 -1
  175. package/lib-amd/edit/deleteSteps/deleteCollapsedSelection.d.ts +9 -9
  176. package/lib-amd/edit/deleteSteps/deleteCollapsedSelection.js +92 -92
  177. package/lib-amd/edit/deleteSteps/deleteCollapsedSelection.js.map +1 -1
  178. package/lib-amd/edit/deleteSteps/deleteList.d.ts +5 -5
  179. package/lib-amd/edit/deleteSteps/deleteList.js +24 -24
  180. package/lib-amd/edit/deleteSteps/deleteList.js.map +1 -1
  181. package/lib-amd/edit/deleteSteps/deleteWordSelection.d.ts +9 -9
  182. package/lib-amd/edit/deleteSteps/deleteWordSelection.js +172 -172
  183. package/lib-amd/edit/deleteSteps/deleteWordSelection.js.map +1 -1
  184. package/lib-amd/edit/handleKeyboardEventCommon.d.ts +14 -14
  185. package/lib-amd/edit/handleKeyboardEventCommon.js +55 -55
  186. package/lib-amd/edit/handleKeyboardEventCommon.js.map +1 -1
  187. package/lib-amd/edit/inputSteps/handleEnterOnList.d.ts +5 -5
  188. package/lib-amd/edit/inputSteps/handleEnterOnList.js +66 -66
  189. package/lib-amd/edit/inputSteps/handleEnterOnList.js.map +1 -1
  190. package/lib-amd/edit/keyboardDelete.d.ts +9 -9
  191. package/lib-amd/edit/keyboardDelete.js +66 -66
  192. package/lib-amd/edit/keyboardDelete.js.map +1 -1
  193. package/lib-amd/edit/keyboardInput.d.ts +5 -5
  194. package/lib-amd/edit/keyboardInput.js +57 -57
  195. package/lib-amd/edit/keyboardInput.js.map +1 -1
  196. package/lib-amd/edit/keyboardTab.d.ts +5 -5
  197. package/lib-amd/edit/keyboardTab.js +34 -34
  198. package/lib-amd/edit/keyboardTab.js.map +1 -1
  199. package/lib-amd/edit/utils/getLeafSiblingBlock.d.ts +23 -23
  200. package/lib-amd/edit/utils/getLeafSiblingBlock.js +75 -75
  201. package/lib-amd/edit/utils/getLeafSiblingBlock.js.map +1 -1
  202. package/lib-amd/index.d.ts +3 -3
  203. package/lib-amd/index.js +8 -8
  204. package/lib-amd/index.js.map +1 -1
  205. package/lib-amd/paste/Excel/processPastedContentFromExcel.d.ts +12 -12
  206. package/lib-amd/paste/Excel/processPastedContentFromExcel.js +80 -80
  207. package/lib-amd/paste/Excel/processPastedContentFromExcel.js.map +1 -1
  208. package/lib-amd/paste/PastePlugin.d.ts +43 -43
  209. package/lib-amd/paste/PastePlugin.js +122 -122
  210. package/lib-amd/paste/PastePlugin.js.map +1 -1
  211. package/lib-amd/paste/PowerPoint/processPastedContentFromPowerPoint.d.ts +7 -7
  212. package/lib-amd/paste/PowerPoint/processPastedContentFromPowerPoint.js +20 -20
  213. package/lib-amd/paste/PowerPoint/processPastedContentFromPowerPoint.js.map +1 -1
  214. package/lib-amd/paste/WacComponents/constants.d.ts +48 -48
  215. package/lib-amd/paste/WacComponents/constants.js +63 -63
  216. package/lib-amd/paste/WacComponents/constants.js.map +1 -1
  217. package/lib-amd/paste/WacComponents/processPastedContentWacComponents.d.ts +9 -9
  218. package/lib-amd/paste/WacComponents/processPastedContentWacComponents.js +185 -185
  219. package/lib-amd/paste/WacComponents/processPastedContentWacComponents.js.map +1 -1
  220. package/lib-amd/paste/WordDesktop/WordMetadata.d.ts +9 -9
  221. package/lib-amd/paste/WordDesktop/WordMetadata.js +4 -4
  222. package/lib-amd/paste/WordDesktop/WordMetadata.js.map +1 -1
  223. package/lib-amd/paste/WordDesktop/getStyleMetadata.d.ts +23 -23
  224. package/lib-amd/paste/WordDesktop/getStyleMetadata.js +78 -78
  225. package/lib-amd/paste/WordDesktop/getStyleMetadata.js.map +1 -1
  226. package/lib-amd/paste/WordDesktop/processPastedContentFromWordDesktop.d.ts +7 -7
  227. package/lib-amd/paste/WordDesktop/processPastedContentFromWordDesktop.js +53 -53
  228. package/lib-amd/paste/WordDesktop/processPastedContentFromWordDesktop.js.map +1 -1
  229. package/lib-amd/paste/WordDesktop/processWordComments.d.ts +7 -7
  230. package/lib-amd/paste/WordDesktop/processWordComments.js +22 -22
  231. package/lib-amd/paste/WordDesktop/processWordComments.js.map +1 -1
  232. package/lib-amd/paste/WordDesktop/processWordLists.d.ts +11 -11
  233. package/lib-amd/paste/WordDesktop/processWordLists.js +177 -177
  234. package/lib-amd/paste/WordDesktop/processWordLists.js.map +1 -1
  235. package/lib-amd/paste/WordDesktop/removeNegativeTextIndentParser.d.ts +5 -5
  236. package/lib-amd/paste/WordDesktop/removeNegativeTextIndentParser.js +15 -15
  237. package/lib-amd/paste/WordDesktop/removeNegativeTextIndentParser.js.map +1 -1
  238. package/lib-amd/paste/pasteSourceValidations/constants.d.ts +17 -17
  239. package/lib-amd/paste/pasteSourceValidations/constants.js +22 -22
  240. package/lib-amd/paste/pasteSourceValidations/constants.js.map +1 -1
  241. package/lib-amd/paste/pasteSourceValidations/documentContainWacElements.d.ts +8 -8
  242. package/lib-amd/paste/pasteSourceValidations/documentContainWacElements.js +16 -16
  243. package/lib-amd/paste/pasteSourceValidations/documentContainWacElements.js.map +1 -1
  244. package/lib-amd/paste/pasteSourceValidations/getPasteSource.d.ts +27 -27
  245. package/lib-amd/paste/pasteSourceValidations/getPasteSource.js +38 -38
  246. package/lib-amd/paste/pasteSourceValidations/getPasteSource.js.map +1 -1
  247. package/lib-amd/paste/pasteSourceValidations/isExcelDesktopDocument.d.ts +8 -8
  248. package/lib-amd/paste/pasteSourceValidations/isExcelDesktopDocument.js +18 -18
  249. package/lib-amd/paste/pasteSourceValidations/isExcelDesktopDocument.js.map +1 -1
  250. package/lib-amd/paste/pasteSourceValidations/isExcelOnlineDocument.d.ts +8 -8
  251. package/lib-amd/paste/pasteSourceValidations/isExcelOnlineDocument.js +20 -20
  252. package/lib-amd/paste/pasteSourceValidations/isExcelOnlineDocument.js.map +1 -1
  253. package/lib-amd/paste/pasteSourceValidations/isGoogleSheetDocument.d.ts +8 -8
  254. package/lib-amd/paste/pasteSourceValidations/isGoogleSheetDocument.js +16 -16
  255. package/lib-amd/paste/pasteSourceValidations/isGoogleSheetDocument.js.map +1 -1
  256. package/lib-amd/paste/pasteSourceValidations/isPowerPointDesktopDocument.d.ts +8 -8
  257. package/lib-amd/paste/pasteSourceValidations/isPowerPointDesktopDocument.js +16 -16
  258. package/lib-amd/paste/pasteSourceValidations/isPowerPointDesktopDocument.js.map +1 -1
  259. package/lib-amd/paste/pasteSourceValidations/isWordDesktopDocument.d.ts +8 -8
  260. package/lib-amd/paste/pasteSourceValidations/isWordDesktopDocument.js +20 -20
  261. package/lib-amd/paste/pasteSourceValidations/isWordDesktopDocument.js.map +1 -1
  262. package/lib-amd/paste/pasteSourceValidations/shouldConvertToSingleImage.d.ts +9 -9
  263. package/lib-amd/paste/pasteSourceValidations/shouldConvertToSingleImage.js +20 -20
  264. package/lib-amd/paste/pasteSourceValidations/shouldConvertToSingleImage.js.map +1 -1
  265. package/lib-amd/paste/utils/addParser.d.ts +5 -5
  266. package/lib-amd/paste/utils/addParser.js +18 -18
  267. package/lib-amd/paste/utils/addParser.js.map +1 -1
  268. package/lib-amd/paste/utils/deprecatedColorParser.d.ts +5 -5
  269. package/lib-amd/paste/utils/deprecatedColorParser.js +20 -20
  270. package/lib-amd/paste/utils/deprecatedColorParser.js.map +1 -1
  271. package/lib-amd/paste/utils/getStyles.d.ts +6 -6
  272. package/lib-amd/paste/utils/getStyles.js +24 -24
  273. package/lib-amd/paste/utils/getStyles.js.map +1 -1
  274. package/lib-amd/paste/utils/linkParser.d.ts +5 -5
  275. package/lib-amd/paste/utils/linkParser.js +28 -28
  276. package/lib-amd/paste/utils/linkParser.js.map +1 -1
  277. package/lib-amd/paste/utils/setProcessor.d.ts +5 -5
  278. package/lib-amd/paste/utils/setProcessor.js +15 -15
  279. package/lib-amd/paste/utils/setProcessor.js.map +1 -1
  280. package/lib-amd/pluginUtils/CreateElement/CreateElementData.d.ts +35 -35
  281. package/lib-amd/pluginUtils/CreateElement/CreateElementData.js +4 -4
  282. package/lib-amd/pluginUtils/CreateElement/CreateElementData.js.map +1 -1
  283. package/lib-amd/pluginUtils/CreateElement/createElement.d.ts +9 -9
  284. package/lib-amd/pluginUtils/CreateElement/createElement.js +51 -51
  285. package/lib-amd/pluginUtils/CreateElement/createElement.js.map +1 -1
  286. package/lib-amd/pluginUtils/Disposable.d.ts +10 -10
  287. package/lib-amd/pluginUtils/Disposable.js +4 -4
  288. package/lib-amd/pluginUtils/Disposable.js.map +1 -1
  289. package/lib-amd/pluginUtils/DragAndDrop/DragAndDropHandler.d.ts +45 -45
  290. package/lib-amd/pluginUtils/DragAndDrop/DragAndDropHandler.js +4 -4
  291. package/lib-amd/pluginUtils/DragAndDrop/DragAndDropHandler.js.map +1 -1
  292. package/lib-amd/pluginUtils/DragAndDrop/DragAndDropHelper.d.ts +39 -39
  293. package/lib-amd/pluginUtils/DragAndDrop/DragAndDropHelper.js +120 -120
  294. package/lib-amd/pluginUtils/DragAndDrop/DragAndDropHelper.js.map +1 -1
  295. package/lib-amd/pluginUtils/Rect/getIntersectedRect.d.ts +27 -27
  296. package/lib-amd/pluginUtils/Rect/getIntersectedRect.js +44 -44
  297. package/lib-amd/pluginUtils/Rect/getIntersectedRect.js.map +1 -1
  298. package/lib-amd/pluginUtils/Rect/normalizeRect.d.ts +7 -7
  299. package/lib-amd/pluginUtils/Rect/normalizeRect.js +21 -21
  300. package/lib-amd/pluginUtils/Rect/normalizeRect.js.map +1 -1
  301. package/lib-mjs/autoFormat/AutoFormatPlugin.d.ts +53 -53
  302. package/lib-mjs/autoFormat/AutoFormatPlugin.js +77 -77
  303. package/lib-mjs/autoFormat/AutoFormatPlugin.js.map +1 -1
  304. package/lib-mjs/autoFormat/keyboardListTrigger.d.ts +5 -5
  305. package/lib-mjs/autoFormat/keyboardListTrigger.js +41 -41
  306. package/lib-mjs/autoFormat/keyboardListTrigger.js.map +1 -1
  307. package/lib-mjs/autoFormat/utils/convertAlphaToDecimals.d.ts +7 -7
  308. package/lib-mjs/autoFormat/utils/convertAlphaToDecimals.js +18 -18
  309. package/lib-mjs/autoFormat/utils/convertAlphaToDecimals.js.map +1 -1
  310. package/lib-mjs/autoFormat/utils/getIndex.d.ts +4 -4
  311. package/lib-mjs/autoFormat/utils/getIndex.js +9 -9
  312. package/lib-mjs/autoFormat/utils/getIndex.js.map +1 -1
  313. package/lib-mjs/autoFormat/utils/getListTypeStyle.d.ts +14 -14
  314. package/lib-mjs/autoFormat/utils/getListTypeStyle.js +83 -83
  315. package/lib-mjs/autoFormat/utils/getListTypeStyle.js.map +1 -1
  316. package/lib-mjs/autoFormat/utils/getNumberingListStyle.d.ts +4 -4
  317. package/lib-mjs/autoFormat/utils/getNumberingListStyle.js +149 -149
  318. package/lib-mjs/autoFormat/utils/getNumberingListStyle.js.map +1 -1
  319. package/lib-mjs/edit/EditPlugin.d.ts +39 -39
  320. package/lib-mjs/edit/EditPlugin.js +125 -125
  321. package/lib-mjs/edit/EditPlugin.js.map +1 -1
  322. package/lib-mjs/edit/deleteSteps/deleteAllSegmentBefore.d.ts +5 -5
  323. package/lib-mjs/edit/deleteSteps/deleteAllSegmentBefore.js +18 -18
  324. package/lib-mjs/edit/deleteSteps/deleteAllSegmentBefore.js.map +1 -1
  325. package/lib-mjs/edit/deleteSteps/deleteCollapsedSelection.d.ts +9 -9
  326. package/lib-mjs/edit/deleteSteps/deleteCollapsedSelection.js +90 -90
  327. package/lib-mjs/edit/deleteSteps/deleteCollapsedSelection.js.map +1 -1
  328. package/lib-mjs/edit/deleteSteps/deleteList.d.ts +5 -5
  329. package/lib-mjs/edit/deleteSteps/deleteList.js +19 -19
  330. package/lib-mjs/edit/deleteSteps/deleteList.js.map +1 -1
  331. package/lib-mjs/edit/deleteSteps/deleteWordSelection.d.ts +9 -9
  332. package/lib-mjs/edit/deleteSteps/deleteWordSelection.js +170 -170
  333. package/lib-mjs/edit/deleteSteps/deleteWordSelection.js.map +1 -1
  334. package/lib-mjs/edit/handleKeyboardEventCommon.d.ts +14 -14
  335. package/lib-mjs/edit/handleKeyboardEventCommon.js +48 -48
  336. package/lib-mjs/edit/handleKeyboardEventCommon.js.map +1 -1
  337. package/lib-mjs/edit/inputSteps/handleEnterOnList.d.ts +5 -5
  338. package/lib-mjs/edit/inputSteps/handleEnterOnList.js +63 -63
  339. package/lib-mjs/edit/inputSteps/handleEnterOnList.js.map +1 -1
  340. package/lib-mjs/edit/keyboardDelete.d.ts +9 -9
  341. package/lib-mjs/edit/keyboardDelete.js +67 -67
  342. package/lib-mjs/edit/keyboardDelete.js.map +1 -1
  343. package/lib-mjs/edit/keyboardInput.d.ts +5 -5
  344. package/lib-mjs/edit/keyboardInput.js +54 -54
  345. package/lib-mjs/edit/keyboardInput.js.map +1 -1
  346. package/lib-mjs/edit/keyboardTab.d.ts +5 -5
  347. package/lib-mjs/edit/keyboardTab.js +30 -30
  348. package/lib-mjs/edit/keyboardTab.js.map +1 -1
  349. package/lib-mjs/edit/utils/getLeafSiblingBlock.d.ts +23 -23
  350. package/lib-mjs/edit/utils/getLeafSiblingBlock.js +71 -71
  351. package/lib-mjs/edit/utils/getLeafSiblingBlock.js.map +1 -1
  352. package/lib-mjs/index.d.ts +3 -3
  353. package/lib-mjs/index.js +3 -3
  354. package/lib-mjs/index.js.map +1 -1
  355. package/lib-mjs/paste/Excel/processPastedContentFromExcel.d.ts +12 -12
  356. package/lib-mjs/paste/Excel/processPastedContentFromExcel.js +77 -77
  357. package/lib-mjs/paste/Excel/processPastedContentFromExcel.js.map +1 -1
  358. package/lib-mjs/paste/PastePlugin.d.ts +43 -43
  359. package/lib-mjs/paste/PastePlugin.js +127 -127
  360. package/lib-mjs/paste/PastePlugin.js.map +1 -1
  361. package/lib-mjs/paste/PowerPoint/processPastedContentFromPowerPoint.d.ts +7 -7
  362. package/lib-mjs/paste/PowerPoint/processPastedContentFromPowerPoint.js +15 -15
  363. package/lib-mjs/paste/PowerPoint/processPastedContentFromPowerPoint.js.map +1 -1
  364. package/lib-mjs/paste/WacComponents/constants.d.ts +48 -48
  365. package/lib-mjs/paste/WacComponents/constants.js +59 -59
  366. package/lib-mjs/paste/WacComponents/constants.js.map +1 -1
  367. package/lib-mjs/paste/WacComponents/processPastedContentWacComponents.d.ts +9 -9
  368. package/lib-mjs/paste/WacComponents/processPastedContentWacComponents.js +184 -184
  369. package/lib-mjs/paste/WacComponents/processPastedContentWacComponents.js.map +1 -1
  370. package/lib-mjs/paste/WordDesktop/WordMetadata.d.ts +9 -9
  371. package/lib-mjs/paste/WordDesktop/WordMetadata.js +1 -1
  372. package/lib-mjs/paste/WordDesktop/WordMetadata.js.map +1 -1
  373. package/lib-mjs/paste/WordDesktop/getStyleMetadata.d.ts +23 -23
  374. package/lib-mjs/paste/WordDesktop/getStyleMetadata.js +75 -75
  375. package/lib-mjs/paste/WordDesktop/getStyleMetadata.js.map +1 -1
  376. package/lib-mjs/paste/WordDesktop/processPastedContentFromWordDesktop.d.ts +7 -7
  377. package/lib-mjs/paste/WordDesktop/processPastedContentFromWordDesktop.js +54 -54
  378. package/lib-mjs/paste/WordDesktop/processPastedContentFromWordDesktop.js.map +1 -1
  379. package/lib-mjs/paste/WordDesktop/processWordComments.d.ts +7 -7
  380. package/lib-mjs/paste/WordDesktop/processWordComments.js +17 -17
  381. package/lib-mjs/paste/WordDesktop/processWordComments.js.map +1 -1
  382. package/lib-mjs/paste/WordDesktop/processWordLists.d.ts +11 -11
  383. package/lib-mjs/paste/WordDesktop/processWordLists.js +175 -175
  384. package/lib-mjs/paste/WordDesktop/processWordLists.js.map +1 -1
  385. package/lib-mjs/paste/WordDesktop/removeNegativeTextIndentParser.d.ts +5 -5
  386. package/lib-mjs/paste/WordDesktop/removeNegativeTextIndentParser.js +9 -9
  387. package/lib-mjs/paste/WordDesktop/removeNegativeTextIndentParser.js.map +1 -1
  388. package/lib-mjs/paste/pasteSourceValidations/constants.d.ts +17 -17
  389. package/lib-mjs/paste/pasteSourceValidations/constants.js +17 -17
  390. package/lib-mjs/paste/pasteSourceValidations/constants.js.map +1 -1
  391. package/lib-mjs/paste/pasteSourceValidations/documentContainWacElements.d.ts +8 -8
  392. package/lib-mjs/paste/pasteSourceValidations/documentContainWacElements.js +11 -11
  393. package/lib-mjs/paste/pasteSourceValidations/documentContainWacElements.js.map +1 -1
  394. package/lib-mjs/paste/pasteSourceValidations/getPasteSource.d.ts +27 -27
  395. package/lib-mjs/paste/pasteSourceValidations/getPasteSource.js +39 -39
  396. package/lib-mjs/paste/pasteSourceValidations/getPasteSource.js.map +1 -1
  397. package/lib-mjs/paste/pasteSourceValidations/isExcelDesktopDocument.d.ts +8 -8
  398. package/lib-mjs/paste/pasteSourceValidations/isExcelDesktopDocument.js +13 -13
  399. package/lib-mjs/paste/pasteSourceValidations/isExcelDesktopDocument.js.map +1 -1
  400. package/lib-mjs/paste/pasteSourceValidations/isExcelOnlineDocument.d.ts +8 -8
  401. package/lib-mjs/paste/pasteSourceValidations/isExcelOnlineDocument.js +15 -15
  402. package/lib-mjs/paste/pasteSourceValidations/isExcelOnlineDocument.js.map +1 -1
  403. package/lib-mjs/paste/pasteSourceValidations/isGoogleSheetDocument.d.ts +8 -8
  404. package/lib-mjs/paste/pasteSourceValidations/isGoogleSheetDocument.js +11 -11
  405. package/lib-mjs/paste/pasteSourceValidations/isGoogleSheetDocument.js.map +1 -1
  406. package/lib-mjs/paste/pasteSourceValidations/isPowerPointDesktopDocument.d.ts +8 -8
  407. package/lib-mjs/paste/pasteSourceValidations/isPowerPointDesktopDocument.js +11 -11
  408. package/lib-mjs/paste/pasteSourceValidations/isPowerPointDesktopDocument.js.map +1 -1
  409. package/lib-mjs/paste/pasteSourceValidations/isWordDesktopDocument.d.ts +8 -8
  410. package/lib-mjs/paste/pasteSourceValidations/isWordDesktopDocument.js +15 -15
  411. package/lib-mjs/paste/pasteSourceValidations/isWordDesktopDocument.js.map +1 -1
  412. package/lib-mjs/paste/pasteSourceValidations/shouldConvertToSingleImage.d.ts +9 -9
  413. package/lib-mjs/paste/pasteSourceValidations/shouldConvertToSingleImage.js +14 -14
  414. package/lib-mjs/paste/pasteSourceValidations/shouldConvertToSingleImage.js.map +1 -1
  415. package/lib-mjs/paste/utils/addParser.d.ts +5 -5
  416. package/lib-mjs/paste/utils/addParser.js +13 -13
  417. package/lib-mjs/paste/utils/addParser.js.map +1 -1
  418. package/lib-mjs/paste/utils/deprecatedColorParser.d.ts +5 -5
  419. package/lib-mjs/paste/utils/deprecatedColorParser.js +15 -15
  420. package/lib-mjs/paste/utils/deprecatedColorParser.js.map +1 -1
  421. package/lib-mjs/paste/utils/getStyles.d.ts +6 -6
  422. package/lib-mjs/paste/utils/getStyles.js +18 -18
  423. package/lib-mjs/paste/utils/getStyles.js.map +1 -1
  424. package/lib-mjs/paste/utils/linkParser.d.ts +5 -5
  425. package/lib-mjs/paste/utils/linkParser.js +23 -23
  426. package/lib-mjs/paste/utils/linkParser.js.map +1 -1
  427. package/lib-mjs/paste/utils/setProcessor.d.ts +5 -5
  428. package/lib-mjs/paste/utils/setProcessor.js +9 -9
  429. package/lib-mjs/paste/utils/setProcessor.js.map +1 -1
  430. package/lib-mjs/pluginUtils/CreateElement/CreateElementData.d.ts +35 -35
  431. package/lib-mjs/pluginUtils/CreateElement/CreateElementData.js +1 -1
  432. package/lib-mjs/pluginUtils/CreateElement/CreateElementData.js.map +1 -1
  433. package/lib-mjs/pluginUtils/CreateElement/createElement.d.ts +9 -9
  434. package/lib-mjs/pluginUtils/CreateElement/createElement.js +47 -47
  435. package/lib-mjs/pluginUtils/CreateElement/createElement.js.map +1 -1
  436. package/lib-mjs/pluginUtils/Disposable.d.ts +10 -10
  437. package/lib-mjs/pluginUtils/Disposable.js +1 -1
  438. package/lib-mjs/pluginUtils/Disposable.js.map +1 -1
  439. package/lib-mjs/pluginUtils/DragAndDrop/DragAndDropHandler.d.ts +45 -45
  440. package/lib-mjs/pluginUtils/DragAndDrop/DragAndDropHandler.js +1 -1
  441. package/lib-mjs/pluginUtils/DragAndDrop/DragAndDropHandler.js.map +1 -1
  442. package/lib-mjs/pluginUtils/DragAndDrop/DragAndDropHelper.d.ts +39 -39
  443. package/lib-mjs/pluginUtils/DragAndDrop/DragAndDropHelper.js +117 -117
  444. package/lib-mjs/pluginUtils/DragAndDrop/DragAndDropHelper.js.map +1 -1
  445. package/lib-mjs/pluginUtils/Rect/getIntersectedRect.d.ts +27 -27
  446. package/lib-mjs/pluginUtils/Rect/getIntersectedRect.js +41 -41
  447. package/lib-mjs/pluginUtils/Rect/getIntersectedRect.js.map +1 -1
  448. package/lib-mjs/pluginUtils/Rect/normalizeRect.d.ts +7 -7
  449. package/lib-mjs/pluginUtils/Rect/normalizeRect.js +16 -16
  450. package/lib-mjs/pluginUtils/Rect/normalizeRect.js.map +1 -1
  451. package/package.json +5 -5
@@ -1,173 +1,173 @@
1
- define(["require", "exports", "tslib", "roosterjs-content-model-core", "roosterjs-content-model-dom"], function (require, exports, tslib_1, roosterjs_content_model_core_1, roosterjs_content_model_dom_1) {
2
- "use strict";
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.backwardDeleteWordSelection = exports.forwardDeleteWordSelection = void 0;
5
- var DeleteWordState;
6
- (function (DeleteWordState) {
7
- DeleteWordState[DeleteWordState["Start"] = 0] = "Start";
8
- DeleteWordState[DeleteWordState["Punctuation"] = 1] = "Punctuation";
9
- DeleteWordState[DeleteWordState["Text"] = 2] = "Text";
10
- DeleteWordState[DeleteWordState["NonText"] = 3] = "NonText";
11
- DeleteWordState[DeleteWordState["Space"] = 4] = "Space";
12
- DeleteWordState[DeleteWordState["End"] = 5] = "End";
13
- })(DeleteWordState || (DeleteWordState = {}));
14
- function getDeleteWordSelection(direction) {
15
- return function (context) {
16
- if (context.deleteResult != 'notDeleted') {
17
- return;
18
- }
19
- var _a = context.insertPoint, marker = _a.marker, paragraph = _a.paragraph;
20
- var startIndex = paragraph.segments.indexOf(marker);
21
- var deleteNext = direction == 'forward';
22
- var iterator = iterateSegments(paragraph, startIndex, deleteNext, context);
23
- var curr = iterator.next();
24
- for (var state = 0 /* Start */; state != 5 /* End */ && !curr.done;) {
25
- var _b = curr.value, punctuation = _b.punctuation, space = _b.space, text = _b.text;
26
- // This is a state machine of how to delete a whole word together with space and punctuations.
27
- // For a full state machine chart, see
28
- // Forward delete: https://github.com/microsoft/roosterjs/blob/master/assets/design-charts/ForwardDeleteWord.png
29
- // Backward delete: https://github.com/microsoft/roosterjs/blob/master/assets/design-charts/BackwardDeleteWord.png
30
- switch (state) {
31
- case 0 /* Start */:
32
- state = space
33
- ? 4 /* Space */
34
- : punctuation
35
- ? 1 /* Punctuation */
36
- : 2 /* Text */;
37
- curr = iterator.next(true /*delete*/);
38
- break;
39
- case 1 /* Punctuation */:
40
- if (deleteNext && space) {
41
- state = 3 /* NonText */;
42
- curr = iterator.next(true /*delete*/);
43
- }
44
- else if (punctuation) {
45
- curr = iterator.next(true /*delete*/);
46
- }
47
- else {
48
- state = 5 /* End */;
49
- }
50
- break;
51
- case 2 /* Text */:
52
- if (deleteNext && space) {
53
- state = 3 /* NonText */;
54
- curr = iterator.next(true /*delete*/);
55
- }
56
- else if (text) {
57
- curr = iterator.next(true /*delete*/);
58
- }
59
- else {
60
- state = 5 /* End */;
61
- }
62
- break;
63
- case 3 /* NonText */:
64
- if (punctuation || !space) {
65
- state = 5 /* End */;
66
- }
67
- else {
68
- curr = iterator.next(true /*delete*/);
69
- }
70
- break;
71
- case 4 /* Space */:
72
- if (space) {
73
- curr = iterator.next(true /*delete*/);
74
- }
75
- else if (punctuation) {
76
- state = deleteNext ? 3 /* NonText */ : 1 /* Punctuation */;
77
- curr = iterator.next(true /*delete*/);
78
- }
79
- else {
80
- state = deleteNext ? 5 /* End */ : 2 /* Text */;
81
- }
82
- break;
83
- }
84
- }
85
- };
86
- }
87
- function iterateSegments(paragraph, markerIndex, forward, context) {
88
- var step, segments, preserveWhiteSpace, i, segment, _a, j, c, punctuation, space, text, newText;
89
- return (0, tslib_1.__generator)(this, function (_b) {
90
- switch (_b.label) {
91
- case 0:
92
- step = forward ? 1 : -1;
93
- segments = paragraph.segments;
94
- preserveWhiteSpace = (0, roosterjs_content_model_dom_1.isWhiteSpacePreserved)(paragraph.format.whiteSpace);
95
- i = markerIndex + step;
96
- _b.label = 1;
97
- case 1:
98
- if (!(i >= 0 && i < segments.length)) return [3 /*break*/, 12];
99
- segment = segments[i];
100
- _a = segment.segmentType;
101
- switch (_a) {
102
- case 'Text': return [3 /*break*/, 2];
103
- case 'Image': return [3 /*break*/, 7];
104
- case 'SelectionMarker': return [3 /*break*/, 9];
105
- }
106
- return [3 /*break*/, 10];
107
- case 2:
108
- j = forward ? 0 : segment.text.length - 1;
109
- _b.label = 3;
110
- case 3:
111
- if (!(j >= 0 && j < segment.text.length)) return [3 /*break*/, 6];
112
- c = segment.text[j];
113
- punctuation = (0, roosterjs_content_model_core_1.isPunctuation)(c);
114
- space = (0, roosterjs_content_model_core_1.isSpace)(c);
115
- text = !punctuation && !space;
116
- return [4 /*yield*/, { punctuation: punctuation, space: space, text: text }];
117
- case 4:
118
- if (_b.sent()) {
119
- newText = segment.text;
120
- newText = newText.substring(0, j) + newText.substring(j + 1);
121
- if (!preserveWhiteSpace) {
122
- newText = (0, roosterjs_content_model_core_1.normalizeText)(newText, forward);
123
- }
124
- context.deleteResult = 'range';
125
- if (newText) {
126
- segment.text = newText;
127
- if (step > 0) {
128
- j -= step;
129
- }
130
- }
131
- else {
132
- segments.splice(i, 1);
133
- if (step > 0) {
134
- i -= step;
135
- }
136
- return [3 /*break*/, 6];
137
- }
138
- }
139
- _b.label = 5;
140
- case 5:
141
- j += step;
142
- return [3 /*break*/, 3];
143
- case 6: return [3 /*break*/, 11];
144
- case 7: return [4 /*yield*/, { punctuation: true, space: false, text: false }]; // Treat image as punctuation since they have the same behavior.
145
- case 8:
146
- if (_b.sent() // Treat image as punctuation since they have the same behavior.
147
- ) {
148
- segments.splice(i, 1);
149
- if (step > 0) {
150
- i -= step;
151
- }
152
- context.deleteResult = 'range';
153
- }
154
- return [3 /*break*/, 11];
155
- case 9: return [3 /*break*/, 11];
156
- case 10: return [2 /*return*/, null];
157
- case 11:
158
- i += step;
159
- return [3 /*break*/, 1];
160
- case 12: return [2 /*return*/, null];
161
- }
162
- });
163
- }
164
- /**
165
- * @internal
166
- */
167
- exports.forwardDeleteWordSelection = getDeleteWordSelection('forward');
168
- /**
169
- * @internal
170
- */
171
- exports.backwardDeleteWordSelection = getDeleteWordSelection('backward');
172
- });
1
+ define(["require", "exports", "tslib", "roosterjs-content-model-core", "roosterjs-content-model-dom"], function (require, exports, tslib_1, roosterjs_content_model_core_1, roosterjs_content_model_dom_1) {
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.backwardDeleteWordSelection = exports.forwardDeleteWordSelection = void 0;
5
+ var DeleteWordState;
6
+ (function (DeleteWordState) {
7
+ DeleteWordState[DeleteWordState["Start"] = 0] = "Start";
8
+ DeleteWordState[DeleteWordState["Punctuation"] = 1] = "Punctuation";
9
+ DeleteWordState[DeleteWordState["Text"] = 2] = "Text";
10
+ DeleteWordState[DeleteWordState["NonText"] = 3] = "NonText";
11
+ DeleteWordState[DeleteWordState["Space"] = 4] = "Space";
12
+ DeleteWordState[DeleteWordState["End"] = 5] = "End";
13
+ })(DeleteWordState || (DeleteWordState = {}));
14
+ function getDeleteWordSelection(direction) {
15
+ return function (context) {
16
+ if (context.deleteResult != 'notDeleted') {
17
+ return;
18
+ }
19
+ var _a = context.insertPoint, marker = _a.marker, paragraph = _a.paragraph;
20
+ var startIndex = paragraph.segments.indexOf(marker);
21
+ var deleteNext = direction == 'forward';
22
+ var iterator = iterateSegments(paragraph, startIndex, deleteNext, context);
23
+ var curr = iterator.next();
24
+ for (var state = 0 /* Start */; state != 5 /* End */ && !curr.done;) {
25
+ var _b = curr.value, punctuation = _b.punctuation, space = _b.space, text = _b.text;
26
+ // This is a state machine of how to delete a whole word together with space and punctuations.
27
+ // For a full state machine chart, see
28
+ // Forward delete: https://github.com/microsoft/roosterjs/blob/master/assets/design-charts/ForwardDeleteWord.png
29
+ // Backward delete: https://github.com/microsoft/roosterjs/blob/master/assets/design-charts/BackwardDeleteWord.png
30
+ switch (state) {
31
+ case 0 /* Start */:
32
+ state = space
33
+ ? 4 /* Space */
34
+ : punctuation
35
+ ? 1 /* Punctuation */
36
+ : 2 /* Text */;
37
+ curr = iterator.next(true /*delete*/);
38
+ break;
39
+ case 1 /* Punctuation */:
40
+ if (deleteNext && space) {
41
+ state = 3 /* NonText */;
42
+ curr = iterator.next(true /*delete*/);
43
+ }
44
+ else if (punctuation) {
45
+ curr = iterator.next(true /*delete*/);
46
+ }
47
+ else {
48
+ state = 5 /* End */;
49
+ }
50
+ break;
51
+ case 2 /* Text */:
52
+ if (deleteNext && space) {
53
+ state = 3 /* NonText */;
54
+ curr = iterator.next(true /*delete*/);
55
+ }
56
+ else if (text) {
57
+ curr = iterator.next(true /*delete*/);
58
+ }
59
+ else {
60
+ state = 5 /* End */;
61
+ }
62
+ break;
63
+ case 3 /* NonText */:
64
+ if (punctuation || !space) {
65
+ state = 5 /* End */;
66
+ }
67
+ else {
68
+ curr = iterator.next(true /*delete*/);
69
+ }
70
+ break;
71
+ case 4 /* Space */:
72
+ if (space) {
73
+ curr = iterator.next(true /*delete*/);
74
+ }
75
+ else if (punctuation) {
76
+ state = deleteNext ? 3 /* NonText */ : 1 /* Punctuation */;
77
+ curr = iterator.next(true /*delete*/);
78
+ }
79
+ else {
80
+ state = deleteNext ? 5 /* End */ : 2 /* Text */;
81
+ }
82
+ break;
83
+ }
84
+ }
85
+ };
86
+ }
87
+ function iterateSegments(paragraph, markerIndex, forward, context) {
88
+ var step, segments, preserveWhiteSpace, i, segment, _a, j, c, punctuation, space, text, newText;
89
+ return (0, tslib_1.__generator)(this, function (_b) {
90
+ switch (_b.label) {
91
+ case 0:
92
+ step = forward ? 1 : -1;
93
+ segments = paragraph.segments;
94
+ preserveWhiteSpace = (0, roosterjs_content_model_dom_1.isWhiteSpacePreserved)(paragraph.format.whiteSpace);
95
+ i = markerIndex + step;
96
+ _b.label = 1;
97
+ case 1:
98
+ if (!(i >= 0 && i < segments.length)) return [3 /*break*/, 12];
99
+ segment = segments[i];
100
+ _a = segment.segmentType;
101
+ switch (_a) {
102
+ case 'Text': return [3 /*break*/, 2];
103
+ case 'Image': return [3 /*break*/, 7];
104
+ case 'SelectionMarker': return [3 /*break*/, 9];
105
+ }
106
+ return [3 /*break*/, 10];
107
+ case 2:
108
+ j = forward ? 0 : segment.text.length - 1;
109
+ _b.label = 3;
110
+ case 3:
111
+ if (!(j >= 0 && j < segment.text.length)) return [3 /*break*/, 6];
112
+ c = segment.text[j];
113
+ punctuation = (0, roosterjs_content_model_core_1.isPunctuation)(c);
114
+ space = (0, roosterjs_content_model_core_1.isSpace)(c);
115
+ text = !punctuation && !space;
116
+ return [4 /*yield*/, { punctuation: punctuation, space: space, text: text }];
117
+ case 4:
118
+ if (_b.sent()) {
119
+ newText = segment.text;
120
+ newText = newText.substring(0, j) + newText.substring(j + 1);
121
+ if (!preserveWhiteSpace) {
122
+ newText = (0, roosterjs_content_model_core_1.normalizeText)(newText, forward);
123
+ }
124
+ context.deleteResult = 'range';
125
+ if (newText) {
126
+ segment.text = newText;
127
+ if (step > 0) {
128
+ j -= step;
129
+ }
130
+ }
131
+ else {
132
+ segments.splice(i, 1);
133
+ if (step > 0) {
134
+ i -= step;
135
+ }
136
+ return [3 /*break*/, 6];
137
+ }
138
+ }
139
+ _b.label = 5;
140
+ case 5:
141
+ j += step;
142
+ return [3 /*break*/, 3];
143
+ case 6: return [3 /*break*/, 11];
144
+ case 7: return [4 /*yield*/, { punctuation: true, space: false, text: false }]; // Treat image as punctuation since they have the same behavior.
145
+ case 8:
146
+ if (_b.sent() // Treat image as punctuation since they have the same behavior.
147
+ ) {
148
+ segments.splice(i, 1);
149
+ if (step > 0) {
150
+ i -= step;
151
+ }
152
+ context.deleteResult = 'range';
153
+ }
154
+ return [3 /*break*/, 11];
155
+ case 9: return [3 /*break*/, 11];
156
+ case 10: return [2 /*return*/, null];
157
+ case 11:
158
+ i += step;
159
+ return [3 /*break*/, 1];
160
+ case 12: return [2 /*return*/, null];
161
+ }
162
+ });
163
+ }
164
+ /**
165
+ * @internal
166
+ */
167
+ exports.forwardDeleteWordSelection = getDeleteWordSelection('forward');
168
+ /**
169
+ * @internal
170
+ */
171
+ exports.backwardDeleteWordSelection = getDeleteWordSelection('backward');
172
+ });
173
173
  //# sourceMappingURL=deleteWordSelection.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"deleteWordSelection.js","sourceRoot":"","sources":["../../../../../packages-content-model/roosterjs-content-model-plugins/lib/edit/deleteSteps/deleteWordSelection.ts"],"names":[],"mappings":"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","sourcesContent":["import { isPunctuation, isSpace, normalizeText } from 'roosterjs-content-model-core';\r\nimport { isWhiteSpacePreserved } from 'roosterjs-content-model-dom';\r\nimport type {\r\n ContentModelParagraph,\r\n DeleteSelectionContext,\r\n DeleteSelectionStep,\r\n} from 'roosterjs-content-model-types';\r\n\r\nconst enum DeleteWordState {\r\n Start,\r\n Punctuation,\r\n Text,\r\n NonText,\r\n Space,\r\n End,\r\n}\r\n\r\ninterface CharInfo {\r\n text: boolean;\r\n space: boolean;\r\n punctuation: boolean;\r\n}\r\n\r\nfunction getDeleteWordSelection(direction: 'forward' | 'backward'): DeleteSelectionStep {\r\n return context => {\r\n if (context.deleteResult != 'notDeleted') {\r\n return;\r\n }\r\n\r\n const { marker, paragraph } = context.insertPoint;\r\n const startIndex = paragraph.segments.indexOf(marker);\r\n const deleteNext = direction == 'forward';\r\n\r\n const iterator = iterateSegments(paragraph, startIndex, deleteNext, context);\r\n let curr = iterator.next();\r\n\r\n for (let state = DeleteWordState.Start; state != DeleteWordState.End && !curr.done; ) {\r\n const { punctuation, space, text } = curr.value;\r\n\r\n // This is a state machine of how to delete a whole word together with space and punctuations.\r\n // For a full state machine chart, see\r\n // Forward delete: https://github.com/microsoft/roosterjs/blob/master/assets/design-charts/ForwardDeleteWord.png\r\n // Backward delete: https://github.com/microsoft/roosterjs/blob/master/assets/design-charts/BackwardDeleteWord.png\r\n switch (state) {\r\n case DeleteWordState.Start:\r\n state = space\r\n ? DeleteWordState.Space\r\n : punctuation\r\n ? DeleteWordState.Punctuation\r\n : DeleteWordState.Text;\r\n curr = iterator.next(true /*delete*/);\r\n break;\r\n\r\n case DeleteWordState.Punctuation:\r\n if (deleteNext && space) {\r\n state = DeleteWordState.NonText;\r\n curr = iterator.next(true /*delete*/);\r\n } else if (punctuation) {\r\n curr = iterator.next(true /*delete*/);\r\n } else {\r\n state = DeleteWordState.End;\r\n }\r\n break;\r\n\r\n case DeleteWordState.Text:\r\n if (deleteNext && space) {\r\n state = DeleteWordState.NonText;\r\n curr = iterator.next(true /*delete*/);\r\n } else if (text) {\r\n curr = iterator.next(true /*delete*/);\r\n } else {\r\n state = DeleteWordState.End;\r\n }\r\n break;\r\n\r\n case DeleteWordState.NonText:\r\n if (punctuation || !space) {\r\n state = DeleteWordState.End;\r\n } else {\r\n curr = iterator.next(true /*delete*/);\r\n }\r\n break;\r\n\r\n case DeleteWordState.Space:\r\n if (space) {\r\n curr = iterator.next(true /*delete*/);\r\n } else if (punctuation) {\r\n state = deleteNext ? DeleteWordState.NonText : DeleteWordState.Punctuation;\r\n curr = iterator.next(true /*delete*/);\r\n } else {\r\n state = deleteNext ? DeleteWordState.End : DeleteWordState.Text;\r\n }\r\n break;\r\n }\r\n }\r\n };\r\n}\r\n\r\nfunction* iterateSegments(\r\n paragraph: ContentModelParagraph,\r\n markerIndex: number,\r\n forward: boolean,\r\n context: DeleteSelectionContext\r\n): Generator<CharInfo, null, boolean> {\r\n const step = forward ? 1 : -1;\r\n const segments = paragraph.segments;\r\n const preserveWhiteSpace = isWhiteSpacePreserved(paragraph.format.whiteSpace);\r\n\r\n for (let i = markerIndex + step; i >= 0 && i < segments.length; i += step) {\r\n const segment = segments[i];\r\n\r\n switch (segment.segmentType) {\r\n case 'Text':\r\n for (\r\n let j = forward ? 0 : segment.text.length - 1;\r\n j >= 0 && j < segment.text.length;\r\n j += step\r\n ) {\r\n const c = segment.text[j];\r\n const punctuation = isPunctuation(c);\r\n const space = isSpace(c);\r\n const text = !punctuation && !space;\r\n\r\n if (yield { punctuation, space, text }) {\r\n let newText = segment.text;\r\n\r\n newText = newText.substring(0, j) + newText.substring(j + 1);\r\n\r\n if (!preserveWhiteSpace) {\r\n newText = normalizeText(newText, forward);\r\n }\r\n\r\n context.deleteResult = 'range';\r\n\r\n if (newText) {\r\n segment.text = newText;\r\n\r\n if (step > 0) {\r\n j -= step;\r\n }\r\n } else {\r\n segments.splice(i, 1);\r\n\r\n if (step > 0) {\r\n i -= step;\r\n }\r\n\r\n break;\r\n }\r\n }\r\n }\r\n break;\r\n\r\n case 'Image':\r\n if (\r\n yield { punctuation: true, space: false, text: false } // Treat image as punctuation since they have the same behavior.\r\n ) {\r\n segments.splice(i, 1);\r\n\r\n if (step > 0) {\r\n i -= step;\r\n }\r\n\r\n context.deleteResult = 'range';\r\n }\r\n break;\r\n\r\n case 'SelectionMarker':\r\n break;\r\n\r\n default:\r\n return null;\r\n }\r\n }\r\n\r\n return null;\r\n}\r\n\r\n/**\r\n * @internal\r\n */\r\nexport const forwardDeleteWordSelection = getDeleteWordSelection('forward');\r\n\r\n/**\r\n * @internal\r\n */\r\nexport const backwardDeleteWordSelection = getDeleteWordSelection('backward');\r\n"]}
1
+ {"version":3,"file":"deleteWordSelection.js","sourceRoot":"","sources":["../../../../../packages-content-model/roosterjs-content-model-plugins/lib/edit/deleteSteps/deleteWordSelection.ts"],"names":[],"mappings":"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","sourcesContent":["import { isPunctuation, isSpace, normalizeText } from 'roosterjs-content-model-core';\nimport { isWhiteSpacePreserved } from 'roosterjs-content-model-dom';\nimport type {\n ContentModelParagraph,\n DeleteSelectionContext,\n DeleteSelectionStep,\n} from 'roosterjs-content-model-types';\n\nconst enum DeleteWordState {\n Start,\n Punctuation,\n Text,\n NonText,\n Space,\n End,\n}\n\ninterface CharInfo {\n text: boolean;\n space: boolean;\n punctuation: boolean;\n}\n\nfunction getDeleteWordSelection(direction: 'forward' | 'backward'): DeleteSelectionStep {\n return context => {\n if (context.deleteResult != 'notDeleted') {\n return;\n }\n\n const { marker, paragraph } = context.insertPoint;\n const startIndex = paragraph.segments.indexOf(marker);\n const deleteNext = direction == 'forward';\n\n const iterator = iterateSegments(paragraph, startIndex, deleteNext, context);\n let curr = iterator.next();\n\n for (let state = DeleteWordState.Start; state != DeleteWordState.End && !curr.done; ) {\n const { punctuation, space, text } = curr.value;\n\n // This is a state machine of how to delete a whole word together with space and punctuations.\n // For a full state machine chart, see\n // Forward delete: https://github.com/microsoft/roosterjs/blob/master/assets/design-charts/ForwardDeleteWord.png\n // Backward delete: https://github.com/microsoft/roosterjs/blob/master/assets/design-charts/BackwardDeleteWord.png\n switch (state) {\n case DeleteWordState.Start:\n state = space\n ? DeleteWordState.Space\n : punctuation\n ? DeleteWordState.Punctuation\n : DeleteWordState.Text;\n curr = iterator.next(true /*delete*/);\n break;\n\n case DeleteWordState.Punctuation:\n if (deleteNext && space) {\n state = DeleteWordState.NonText;\n curr = iterator.next(true /*delete*/);\n } else if (punctuation) {\n curr = iterator.next(true /*delete*/);\n } else {\n state = DeleteWordState.End;\n }\n break;\n\n case DeleteWordState.Text:\n if (deleteNext && space) {\n state = DeleteWordState.NonText;\n curr = iterator.next(true /*delete*/);\n } else if (text) {\n curr = iterator.next(true /*delete*/);\n } else {\n state = DeleteWordState.End;\n }\n break;\n\n case DeleteWordState.NonText:\n if (punctuation || !space) {\n state = DeleteWordState.End;\n } else {\n curr = iterator.next(true /*delete*/);\n }\n break;\n\n case DeleteWordState.Space:\n if (space) {\n curr = iterator.next(true /*delete*/);\n } else if (punctuation) {\n state = deleteNext ? DeleteWordState.NonText : DeleteWordState.Punctuation;\n curr = iterator.next(true /*delete*/);\n } else {\n state = deleteNext ? DeleteWordState.End : DeleteWordState.Text;\n }\n break;\n }\n }\n };\n}\n\nfunction* iterateSegments(\n paragraph: ContentModelParagraph,\n markerIndex: number,\n forward: boolean,\n context: DeleteSelectionContext\n): Generator<CharInfo, null, boolean> {\n const step = forward ? 1 : -1;\n const segments = paragraph.segments;\n const preserveWhiteSpace = isWhiteSpacePreserved(paragraph.format.whiteSpace);\n\n for (let i = markerIndex + step; i >= 0 && i < segments.length; i += step) {\n const segment = segments[i];\n\n switch (segment.segmentType) {\n case 'Text':\n for (\n let j = forward ? 0 : segment.text.length - 1;\n j >= 0 && j < segment.text.length;\n j += step\n ) {\n const c = segment.text[j];\n const punctuation = isPunctuation(c);\n const space = isSpace(c);\n const text = !punctuation && !space;\n\n if (yield { punctuation, space, text }) {\n let newText = segment.text;\n\n newText = newText.substring(0, j) + newText.substring(j + 1);\n\n if (!preserveWhiteSpace) {\n newText = normalizeText(newText, forward);\n }\n\n context.deleteResult = 'range';\n\n if (newText) {\n segment.text = newText;\n\n if (step > 0) {\n j -= step;\n }\n } else {\n segments.splice(i, 1);\n\n if (step > 0) {\n i -= step;\n }\n\n break;\n }\n }\n }\n break;\n\n case 'Image':\n if (\n yield { punctuation: true, space: false, text: false } // Treat image as punctuation since they have the same behavior.\n ) {\n segments.splice(i, 1);\n\n if (step > 0) {\n i -= step;\n }\n\n context.deleteResult = 'range';\n }\n break;\n\n case 'SelectionMarker':\n break;\n\n default:\n return null;\n }\n }\n\n return null;\n}\n\n/**\n * @internal\n */\nexport const forwardDeleteWordSelection = getDeleteWordSelection('forward');\n\n/**\n * @internal\n */\nexport const backwardDeleteWordSelection = getDeleteWordSelection('backward');\n"]}
@@ -1,14 +1,14 @@
1
- import type { ContentModelDocument, DeleteResult, FormatContentModelContext, IStandaloneEditor } from 'roosterjs-content-model-types';
2
- /**
3
- * @internal
4
- * @return True means content is changed, so need to rewrite content model to editor. Otherwise false
5
- */
6
- export declare function handleKeyboardEventResult(editor: IStandaloneEditor, model: ContentModelDocument, rawEvent: KeyboardEvent, result: DeleteResult, context: FormatContentModelContext): boolean;
7
- /**
8
- * @internal
9
- */
10
- export declare function shouldDeleteWord(rawEvent: KeyboardEvent, isMac: boolean): boolean;
11
- /**
12
- * @internal
13
- */
14
- export declare function shouldDeleteAllSegmentsBefore(rawEvent: KeyboardEvent): boolean;
1
+ import type { ContentModelDocument, DeleteResult, FormatContentModelContext, IStandaloneEditor } from 'roosterjs-content-model-types';
2
+ /**
3
+ * @internal
4
+ * @return True means content is changed, so need to rewrite content model to editor. Otherwise false
5
+ */
6
+ export declare function handleKeyboardEventResult(editor: IStandaloneEditor, model: ContentModelDocument, rawEvent: KeyboardEvent, result: DeleteResult, context: FormatContentModelContext): boolean;
7
+ /**
8
+ * @internal
9
+ */
10
+ export declare function shouldDeleteWord(rawEvent: KeyboardEvent, isMac: boolean): boolean;
11
+ /**
12
+ * @internal
13
+ */
14
+ export declare function shouldDeleteAllSegmentsBefore(rawEvent: KeyboardEvent): boolean;
@@ -1,56 +1,56 @@
1
- define(["require", "exports", "roosterjs-content-model-dom"], function (require, exports, roosterjs_content_model_dom_1) {
2
- "use strict";
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.shouldDeleteAllSegmentsBefore = exports.shouldDeleteWord = exports.handleKeyboardEventResult = void 0;
5
- /**
6
- * @internal
7
- * @return True means content is changed, so need to rewrite content model to editor. Otherwise false
8
- */
9
- function handleKeyboardEventResult(editor, model, rawEvent, result, context) {
10
- context.skipUndoSnapshot = true;
11
- context.clearModelCache = false;
12
- switch (result) {
13
- case 'notDeleted':
14
- // We have not delete anything, we will let browser handle this event, so that current cached model may be invalid
15
- context.clearModelCache = true;
16
- // Return false here since we didn't do any change to Content Model, so no need to rewrite with Content Model
17
- return false;
18
- case 'nothingToDelete':
19
- // We known there is nothing to delete, no need to let browser keep handling the event
20
- rawEvent.preventDefault();
21
- return false;
22
- case 'range':
23
- case 'singleChar':
24
- // We have deleted what we need from content model, no need to let browser keep handling the event
25
- rawEvent.preventDefault();
26
- (0, roosterjs_content_model_dom_1.normalizeContentModel)(model);
27
- if (result == 'range') {
28
- // A range is about to be deleted, so add an undo snapshot immediately
29
- context.skipUndoSnapshot = false;
30
- }
31
- // Trigger an event to let plugins know the content is about to be changed by Content Model keyboard editing.
32
- // So plugins can do proper handling. e.g. UndoPlugin can decide whether take a snapshot before this change happens.
33
- editor.triggerEvent('beforeKeyboardEditing', {
34
- rawEvent: rawEvent,
35
- });
36
- return true;
37
- }
38
- }
39
- exports.handleKeyboardEventResult = handleKeyboardEventResult;
40
- /**
41
- * @internal
42
- */
43
- function shouldDeleteWord(rawEvent, isMac) {
44
- return ((isMac && rawEvent.altKey && !rawEvent.metaKey) ||
45
- (!isMac && rawEvent.ctrlKey && !rawEvent.altKey));
46
- }
47
- exports.shouldDeleteWord = shouldDeleteWord;
48
- /**
49
- * @internal
50
- */
51
- function shouldDeleteAllSegmentsBefore(rawEvent) {
52
- return rawEvent.metaKey && !rawEvent.altKey;
53
- }
54
- exports.shouldDeleteAllSegmentsBefore = shouldDeleteAllSegmentsBefore;
55
- });
1
+ define(["require", "exports", "roosterjs-content-model-dom"], function (require, exports, roosterjs_content_model_dom_1) {
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.shouldDeleteAllSegmentsBefore = exports.shouldDeleteWord = exports.handleKeyboardEventResult = void 0;
5
+ /**
6
+ * @internal
7
+ * @return True means content is changed, so need to rewrite content model to editor. Otherwise false
8
+ */
9
+ function handleKeyboardEventResult(editor, model, rawEvent, result, context) {
10
+ context.skipUndoSnapshot = true;
11
+ context.clearModelCache = false;
12
+ switch (result) {
13
+ case 'notDeleted':
14
+ // We have not delete anything, we will let browser handle this event, so that current cached model may be invalid
15
+ context.clearModelCache = true;
16
+ // Return false here since we didn't do any change to Content Model, so no need to rewrite with Content Model
17
+ return false;
18
+ case 'nothingToDelete':
19
+ // We known there is nothing to delete, no need to let browser keep handling the event
20
+ rawEvent.preventDefault();
21
+ return false;
22
+ case 'range':
23
+ case 'singleChar':
24
+ // We have deleted what we need from content model, no need to let browser keep handling the event
25
+ rawEvent.preventDefault();
26
+ (0, roosterjs_content_model_dom_1.normalizeContentModel)(model);
27
+ if (result == 'range') {
28
+ // A range is about to be deleted, so add an undo snapshot immediately
29
+ context.skipUndoSnapshot = false;
30
+ }
31
+ // Trigger an event to let plugins know the content is about to be changed by Content Model keyboard editing.
32
+ // So plugins can do proper handling. e.g. UndoPlugin can decide whether take a snapshot before this change happens.
33
+ editor.triggerEvent('beforeKeyboardEditing', {
34
+ rawEvent: rawEvent,
35
+ });
36
+ return true;
37
+ }
38
+ }
39
+ exports.handleKeyboardEventResult = handleKeyboardEventResult;
40
+ /**
41
+ * @internal
42
+ */
43
+ function shouldDeleteWord(rawEvent, isMac) {
44
+ return ((isMac && rawEvent.altKey && !rawEvent.metaKey) ||
45
+ (!isMac && rawEvent.ctrlKey && !rawEvent.altKey));
46
+ }
47
+ exports.shouldDeleteWord = shouldDeleteWord;
48
+ /**
49
+ * @internal
50
+ */
51
+ function shouldDeleteAllSegmentsBefore(rawEvent) {
52
+ return rawEvent.metaKey && !rawEvent.altKey;
53
+ }
54
+ exports.shouldDeleteAllSegmentsBefore = shouldDeleteAllSegmentsBefore;
55
+ });
56
56
  //# sourceMappingURL=handleKeyboardEventCommon.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"handleKeyboardEventCommon.js","sourceRoot":"","sources":["../../../../packages-content-model/roosterjs-content-model-plugins/lib/edit/handleKeyboardEventCommon.ts"],"names":[],"mappings":";;;;IAQA;;;OAGG;IACH,SAAgB,yBAAyB,CACrC,MAAyB,EACzB,KAA2B,EAC3B,QAAuB,EACvB,MAAoB,EACpB,OAAkC;QAElC,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAChC,OAAO,CAAC,eAAe,GAAG,KAAK,CAAC;QAEhC,QAAQ,MAAM,EAAE;YACZ,KAAK,YAAY;gBACb,kHAAkH;gBAClH,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;gBAE/B,6GAA6G;gBAC7G,OAAO,KAAK,CAAC;YAEjB,KAAK,iBAAiB;gBAClB,sFAAsF;gBACtF,QAAQ,CAAC,cAAc,EAAE,CAAC;gBAC1B,OAAO,KAAK,CAAC;YAEjB,KAAK,OAAO,CAAC;YACb,KAAK,YAAY;gBACb,kGAAkG;gBAClG,QAAQ,CAAC,cAAc,EAAE,CAAC;gBAC1B,IAAA,mDAAqB,EAAC,KAAK,CAAC,CAAC;gBAE7B,IAAI,MAAM,IAAI,OAAO,EAAE;oBACnB,sEAAsE;oBACtE,OAAO,CAAC,gBAAgB,GAAG,KAAK,CAAC;iBACpC;gBAED,6GAA6G;gBAC7G,oHAAoH;gBACpH,MAAM,CAAC,YAAY,CAAC,uBAAuB,EAAE;oBACzC,QAAQ,UAAA;iBACX,CAAC,CAAC;gBAEH,OAAO,IAAI,CAAC;SACnB;IACL,CAAC;IA1CD,8DA0CC;IAED;;OAEG;IACH,SAAgB,gBAAgB,CAAC,QAAuB,EAAE,KAAc;QACpE,OAAO,CACH,CAAC,KAAK,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;YAC/C,CAAC,CAAC,KAAK,IAAI,QAAQ,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CACnD,CAAC;IACN,CAAC;IALD,4CAKC;IAED;;OAEG;IACH,SAAgB,6BAA6B,CAAC,QAAuB;QACjE,OAAO,QAAQ,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;IAChD,CAAC;IAFD,sEAEC","sourcesContent":["import { normalizeContentModel } from 'roosterjs-content-model-dom';\r\nimport type {\r\n ContentModelDocument,\r\n DeleteResult,\r\n FormatContentModelContext,\r\n IStandaloneEditor,\r\n} from 'roosterjs-content-model-types';\r\n\r\n/**\r\n * @internal\r\n * @return True means content is changed, so need to rewrite content model to editor. Otherwise false\r\n */\r\nexport function handleKeyboardEventResult(\r\n editor: IStandaloneEditor,\r\n model: ContentModelDocument,\r\n rawEvent: KeyboardEvent,\r\n result: DeleteResult,\r\n context: FormatContentModelContext\r\n): boolean {\r\n context.skipUndoSnapshot = true;\r\n context.clearModelCache = false;\r\n\r\n switch (result) {\r\n case 'notDeleted':\r\n // We have not delete anything, we will let browser handle this event, so that current cached model may be invalid\r\n context.clearModelCache = true;\r\n\r\n // Return false here since we didn't do any change to Content Model, so no need to rewrite with Content Model\r\n return false;\r\n\r\n case 'nothingToDelete':\r\n // We known there is nothing to delete, no need to let browser keep handling the event\r\n rawEvent.preventDefault();\r\n return false;\r\n\r\n case 'range':\r\n case 'singleChar':\r\n // We have deleted what we need from content model, no need to let browser keep handling the event\r\n rawEvent.preventDefault();\r\n normalizeContentModel(model);\r\n\r\n if (result == 'range') {\r\n // A range is about to be deleted, so add an undo snapshot immediately\r\n context.skipUndoSnapshot = false;\r\n }\r\n\r\n // Trigger an event to let plugins know the content is about to be changed by Content Model keyboard editing.\r\n // So plugins can do proper handling. e.g. UndoPlugin can decide whether take a snapshot before this change happens.\r\n editor.triggerEvent('beforeKeyboardEditing', {\r\n rawEvent,\r\n });\r\n\r\n return true;\r\n }\r\n}\r\n\r\n/**\r\n * @internal\r\n */\r\nexport function shouldDeleteWord(rawEvent: KeyboardEvent, isMac: boolean) {\r\n return (\r\n (isMac && rawEvent.altKey && !rawEvent.metaKey) ||\r\n (!isMac && rawEvent.ctrlKey && !rawEvent.altKey)\r\n );\r\n}\r\n\r\n/**\r\n * @internal\r\n */\r\nexport function shouldDeleteAllSegmentsBefore(rawEvent: KeyboardEvent) {\r\n return rawEvent.metaKey && !rawEvent.altKey;\r\n}\r\n"]}
1
+ {"version":3,"file":"handleKeyboardEventCommon.js","sourceRoot":"","sources":["../../../../packages-content-model/roosterjs-content-model-plugins/lib/edit/handleKeyboardEventCommon.ts"],"names":[],"mappings":";;;;IAQA;;;OAGG;IACH,SAAgB,yBAAyB,CACrC,MAAyB,EACzB,KAA2B,EAC3B,QAAuB,EACvB,MAAoB,EACpB,OAAkC;QAElC,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAChC,OAAO,CAAC,eAAe,GAAG,KAAK,CAAC;QAEhC,QAAQ,MAAM,EAAE;YACZ,KAAK,YAAY;gBACb,kHAAkH;gBAClH,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;gBAE/B,6GAA6G;gBAC7G,OAAO,KAAK,CAAC;YAEjB,KAAK,iBAAiB;gBAClB,sFAAsF;gBACtF,QAAQ,CAAC,cAAc,EAAE,CAAC;gBAC1B,OAAO,KAAK,CAAC;YAEjB,KAAK,OAAO,CAAC;YACb,KAAK,YAAY;gBACb,kGAAkG;gBAClG,QAAQ,CAAC,cAAc,EAAE,CAAC;gBAC1B,IAAA,mDAAqB,EAAC,KAAK,CAAC,CAAC;gBAE7B,IAAI,MAAM,IAAI,OAAO,EAAE;oBACnB,sEAAsE;oBACtE,OAAO,CAAC,gBAAgB,GAAG,KAAK,CAAC;iBACpC;gBAED,6GAA6G;gBAC7G,oHAAoH;gBACpH,MAAM,CAAC,YAAY,CAAC,uBAAuB,EAAE;oBACzC,QAAQ,UAAA;iBACX,CAAC,CAAC;gBAEH,OAAO,IAAI,CAAC;SACnB;IACL,CAAC;IA1CD,8DA0CC;IAED;;OAEG;IACH,SAAgB,gBAAgB,CAAC,QAAuB,EAAE,KAAc;QACpE,OAAO,CACH,CAAC,KAAK,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;YAC/C,CAAC,CAAC,KAAK,IAAI,QAAQ,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CACnD,CAAC;IACN,CAAC;IALD,4CAKC;IAED;;OAEG;IACH,SAAgB,6BAA6B,CAAC,QAAuB;QACjE,OAAO,QAAQ,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;IAChD,CAAC;IAFD,sEAEC","sourcesContent":["import { normalizeContentModel } from 'roosterjs-content-model-dom';\nimport type {\n ContentModelDocument,\n DeleteResult,\n FormatContentModelContext,\n IStandaloneEditor,\n} from 'roosterjs-content-model-types';\n\n/**\n * @internal\n * @return True means content is changed, so need to rewrite content model to editor. Otherwise false\n */\nexport function handleKeyboardEventResult(\n editor: IStandaloneEditor,\n model: ContentModelDocument,\n rawEvent: KeyboardEvent,\n result: DeleteResult,\n context: FormatContentModelContext\n): boolean {\n context.skipUndoSnapshot = true;\n context.clearModelCache = false;\n\n switch (result) {\n case 'notDeleted':\n // We have not delete anything, we will let browser handle this event, so that current cached model may be invalid\n context.clearModelCache = true;\n\n // Return false here since we didn't do any change to Content Model, so no need to rewrite with Content Model\n return false;\n\n case 'nothingToDelete':\n // We known there is nothing to delete, no need to let browser keep handling the event\n rawEvent.preventDefault();\n return false;\n\n case 'range':\n case 'singleChar':\n // We have deleted what we need from content model, no need to let browser keep handling the event\n rawEvent.preventDefault();\n normalizeContentModel(model);\n\n if (result == 'range') {\n // A range is about to be deleted, so add an undo snapshot immediately\n context.skipUndoSnapshot = false;\n }\n\n // Trigger an event to let plugins know the content is about to be changed by Content Model keyboard editing.\n // So plugins can do proper handling. e.g. UndoPlugin can decide whether take a snapshot before this change happens.\n editor.triggerEvent('beforeKeyboardEditing', {\n rawEvent,\n });\n\n return true;\n }\n}\n\n/**\n * @internal\n */\nexport function shouldDeleteWord(rawEvent: KeyboardEvent, isMac: boolean) {\n return (\n (isMac && rawEvent.altKey && !rawEvent.metaKey) ||\n (!isMac && rawEvent.ctrlKey && !rawEvent.altKey)\n );\n}\n\n/**\n * @internal\n */\nexport function shouldDeleteAllSegmentsBefore(rawEvent: KeyboardEvent) {\n return rawEvent.metaKey && !rawEvent.altKey;\n}\n"]}
@@ -1,5 +1,5 @@
1
- import type { DeleteSelectionStep } from 'roosterjs-content-model-types';
2
- /**
3
- * @internal
4
- */
5
- export declare const handleEnterOnList: DeleteSelectionStep;
1
+ import type { DeleteSelectionStep } from 'roosterjs-content-model-types';
2
+ /**
3
+ * @internal
4
+ */
5
+ export declare const handleEnterOnList: DeleteSelectionStep;