roosterjs-content-model-plugins 0.25.0 → 0.26.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (463) hide show
  1. package/{lib-mjs/autoFormat/ContentModelAutoFormatPlugin.d.ts → lib/autoFormat/AutoFormatPlugin.d.ts} +53 -53
  2. package/lib/autoFormat/{ContentModelAutoFormatPlugin.js → AutoFormatPlugin.js} +81 -81
  3. package/lib/autoFormat/AutoFormatPlugin.js.map +1 -0
  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 -79
  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 -152
  18. package/lib/autoFormat/utils/getNumberingListStyle.js.map +1 -1
  19. package/{lib-amd/edit/ContentModelEditPlugin.d.ts → lib/edit/EditPlugin.d.ts} +39 -35
  20. package/lib/edit/EditPlugin.js +129 -0
  21. package/lib/edit/EditPlugin.js.map +1 -0
  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 -0
  38. package/lib/edit/inputSteps/handleEnterOnList.js +68 -0
  39. package/lib/edit/inputSteps/handleEnterOnList.js.map +1 -0
  40. package/lib/edit/keyboardDelete.d.ts +9 -8
  41. package/lib/edit/keyboardDelete.js +71 -74
  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 -50
  45. package/lib/edit/keyboardInput.js.map +1 -1
  46. package/lib/edit/keyboardTab.d.ts +5 -0
  47. package/lib/edit/keyboardTab.js +35 -0
  48. package/lib/edit/keyboardTab.js.map +1 -0
  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-amd/paste/ContentModelPastePlugin.d.ts → lib/paste/PastePlugin.d.ts} +43 -43
  59. package/lib/paste/{ContentModelPastePlugin.js → PastePlugin.js} +131 -131
  60. package/lib/paste/PastePlugin.js.map +1 -0
  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 -0
  131. package/lib/pluginUtils/CreateElement/CreateElementData.js +3 -0
  132. package/lib/pluginUtils/CreateElement/CreateElementData.js.map +1 -0
  133. package/lib/pluginUtils/CreateElement/createElement.d.ts +9 -0
  134. package/lib/pluginUtils/CreateElement/createElement.js +51 -0
  135. package/lib/pluginUtils/CreateElement/createElement.js.map +1 -0
  136. package/lib/pluginUtils/Disposable.d.ts +10 -0
  137. package/lib/pluginUtils/Disposable.js +3 -0
  138. package/lib/pluginUtils/Disposable.js.map +1 -0
  139. package/lib/pluginUtils/DragAndDrop/DragAndDropHandler.d.ts +45 -0
  140. package/lib/pluginUtils/DragAndDrop/DragAndDropHandler.js +3 -0
  141. package/lib/pluginUtils/DragAndDrop/DragAndDropHandler.js.map +1 -0
  142. package/lib/pluginUtils/DragAndDrop/DragAndDropHelper.d.ts +39 -0
  143. package/lib/pluginUtils/DragAndDrop/DragAndDropHelper.js +120 -0
  144. package/lib/pluginUtils/DragAndDrop/DragAndDropHelper.js.map +1 -0
  145. package/lib/pluginUtils/Rect/getIntersectedRect.d.ts +27 -0
  146. package/lib/pluginUtils/Rect/getIntersectedRect.js +45 -0
  147. package/lib/pluginUtils/Rect/getIntersectedRect.js.map +1 -0
  148. package/lib/pluginUtils/Rect/normalizeRect.d.ts +7 -0
  149. package/lib/pluginUtils/Rect/normalizeRect.js +20 -0
  150. package/lib/pluginUtils/Rect/normalizeRect.js.map +1 -0
  151. package/lib-amd/autoFormat/{ContentModelAutoFormatPlugin.d.ts → AutoFormatPlugin.d.ts} +53 -53
  152. package/lib-amd/autoFormat/{ContentModelAutoFormatPlugin.js → AutoFormatPlugin.js} +82 -82
  153. package/lib-amd/autoFormat/AutoFormatPlugin.js.map +1 -0
  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 -78
  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 -152
  168. package/lib-amd/autoFormat/utils/getNumberingListStyle.js.map +1 -1
  169. package/{lib-mjs/edit/ContentModelEditPlugin.d.ts → lib-amd/edit/EditPlugin.d.ts} +39 -35
  170. package/lib-amd/edit/EditPlugin.js +128 -0
  171. package/lib-amd/edit/EditPlugin.js.map +1 -0
  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 -0
  188. package/lib-amd/edit/inputSteps/handleEnterOnList.js +67 -0
  189. package/lib-amd/edit/inputSteps/handleEnterOnList.js.map +1 -0
  190. package/lib-amd/edit/keyboardDelete.d.ts +9 -8
  191. package/lib-amd/edit/keyboardDelete.js +66 -69
  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 -50
  195. package/lib-amd/edit/keyboardInput.js.map +1 -1
  196. package/lib-amd/edit/keyboardTab.d.ts +5 -0
  197. package/lib-amd/edit/keyboardTab.js +35 -0
  198. package/lib-amd/edit/keyboardTab.js.map +1 -0
  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/paste/ContentModelPastePlugin.d.ts → lib-amd/paste/PastePlugin.d.ts} +43 -43
  209. package/lib-amd/paste/{ContentModelPastePlugin.js → PastePlugin.js} +123 -123
  210. package/lib-amd/paste/PastePlugin.js.map +1 -0
  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 -0
  281. package/lib-amd/pluginUtils/CreateElement/CreateElementData.js +5 -0
  282. package/lib-amd/pluginUtils/CreateElement/CreateElementData.js.map +1 -0
  283. package/lib-amd/pluginUtils/CreateElement/createElement.d.ts +9 -0
  284. package/lib-amd/pluginUtils/CreateElement/createElement.js +52 -0
  285. package/lib-amd/pluginUtils/CreateElement/createElement.js.map +1 -0
  286. package/lib-amd/pluginUtils/Disposable.d.ts +10 -0
  287. package/lib-amd/pluginUtils/Disposable.js +5 -0
  288. package/lib-amd/pluginUtils/Disposable.js.map +1 -0
  289. package/lib-amd/pluginUtils/DragAndDrop/DragAndDropHandler.d.ts +45 -0
  290. package/lib-amd/pluginUtils/DragAndDrop/DragAndDropHandler.js +5 -0
  291. package/lib-amd/pluginUtils/DragAndDrop/DragAndDropHandler.js.map +1 -0
  292. package/lib-amd/pluginUtils/DragAndDrop/DragAndDropHelper.d.ts +39 -0
  293. package/lib-amd/pluginUtils/DragAndDrop/DragAndDropHelper.js +121 -0
  294. package/lib-amd/pluginUtils/DragAndDrop/DragAndDropHelper.js.map +1 -0
  295. package/lib-amd/pluginUtils/Rect/getIntersectedRect.d.ts +27 -0
  296. package/lib-amd/pluginUtils/Rect/getIntersectedRect.js +45 -0
  297. package/lib-amd/pluginUtils/Rect/getIntersectedRect.js.map +1 -0
  298. package/lib-amd/pluginUtils/Rect/normalizeRect.d.ts +7 -0
  299. package/lib-amd/pluginUtils/Rect/normalizeRect.js +22 -0
  300. package/lib-amd/pluginUtils/Rect/normalizeRect.js.map +1 -0
  301. package/{lib/autoFormat/ContentModelAutoFormatPlugin.d.ts → lib-mjs/autoFormat/AutoFormatPlugin.d.ts} +53 -53
  302. package/lib-mjs/autoFormat/{ContentModelAutoFormatPlugin.js → AutoFormatPlugin.js} +78 -78
  303. package/lib-mjs/autoFormat/AutoFormatPlugin.js.map +1 -0
  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 -75
  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 -148
  318. package/lib-mjs/autoFormat/utils/getNumberingListStyle.js.map +1 -1
  319. package/{lib/edit/ContentModelEditPlugin.d.ts → lib-mjs/edit/EditPlugin.d.ts} +39 -35
  320. package/lib-mjs/edit/EditPlugin.js +126 -0
  321. package/lib-mjs/edit/EditPlugin.js.map +1 -0
  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 -0
  338. package/lib-mjs/edit/inputSteps/handleEnterOnList.js +64 -0
  339. package/lib-mjs/edit/inputSteps/handleEnterOnList.js.map +1 -0
  340. package/lib-mjs/edit/keyboardDelete.d.ts +9 -8
  341. package/lib-mjs/edit/keyboardDelete.js +67 -70
  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 -46
  345. package/lib-mjs/edit/keyboardInput.js.map +1 -1
  346. package/lib-mjs/edit/keyboardTab.d.ts +5 -0
  347. package/lib-mjs/edit/keyboardTab.js +31 -0
  348. package/lib-mjs/edit/keyboardTab.js.map +1 -0
  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/{ContentModelPastePlugin.d.ts → PastePlugin.d.ts} +43 -43
  359. package/lib-mjs/paste/{ContentModelPastePlugin.js → PastePlugin.js} +128 -128
  360. package/lib-mjs/paste/PastePlugin.js.map +1 -0
  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 -0
  431. package/lib-mjs/pluginUtils/CreateElement/CreateElementData.js +2 -0
  432. package/lib-mjs/pluginUtils/CreateElement/CreateElementData.js.map +1 -0
  433. package/lib-mjs/pluginUtils/CreateElement/createElement.d.ts +9 -0
  434. package/lib-mjs/pluginUtils/CreateElement/createElement.js +48 -0
  435. package/lib-mjs/pluginUtils/CreateElement/createElement.js.map +1 -0
  436. package/lib-mjs/pluginUtils/Disposable.d.ts +10 -0
  437. package/lib-mjs/pluginUtils/Disposable.js +2 -0
  438. package/lib-mjs/pluginUtils/Disposable.js.map +1 -0
  439. package/lib-mjs/pluginUtils/DragAndDrop/DragAndDropHandler.d.ts +45 -0
  440. package/lib-mjs/pluginUtils/DragAndDrop/DragAndDropHandler.js +2 -0
  441. package/lib-mjs/pluginUtils/DragAndDrop/DragAndDropHandler.js.map +1 -0
  442. package/lib-mjs/pluginUtils/DragAndDrop/DragAndDropHelper.d.ts +39 -0
  443. package/lib-mjs/pluginUtils/DragAndDrop/DragAndDropHelper.js +118 -0
  444. package/lib-mjs/pluginUtils/DragAndDrop/DragAndDropHelper.js.map +1 -0
  445. package/lib-mjs/pluginUtils/Rect/getIntersectedRect.d.ts +27 -0
  446. package/lib-mjs/pluginUtils/Rect/getIntersectedRect.js +42 -0
  447. package/lib-mjs/pluginUtils/Rect/getIntersectedRect.js.map +1 -0
  448. package/lib-mjs/pluginUtils/Rect/normalizeRect.d.ts +7 -0
  449. package/lib-mjs/pluginUtils/Rect/normalizeRect.js +17 -0
  450. package/lib-mjs/pluginUtils/Rect/normalizeRect.js.map +1 -0
  451. package/package.json +5 -5
  452. package/lib/autoFormat/ContentModelAutoFormatPlugin.js.map +0 -1
  453. package/lib/edit/ContentModelEditPlugin.js +0 -74
  454. package/lib/edit/ContentModelEditPlugin.js.map +0 -1
  455. package/lib/paste/ContentModelPastePlugin.js.map +0 -1
  456. package/lib-amd/autoFormat/ContentModelAutoFormatPlugin.js.map +0 -1
  457. package/lib-amd/edit/ContentModelEditPlugin.js +0 -74
  458. package/lib-amd/edit/ContentModelEditPlugin.js.map +0 -1
  459. package/lib-amd/paste/ContentModelPastePlugin.js.map +0 -1
  460. package/lib-mjs/autoFormat/ContentModelAutoFormatPlugin.js.map +0 -1
  461. package/lib-mjs/edit/ContentModelEditPlugin.js +0 -71
  462. package/lib-mjs/edit/ContentModelEditPlugin.js.map +0 -1
  463. package/lib-mjs/paste/ContentModelPastePlugin.js.map +0 -1
@@ -1,80 +1,88 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getListTypeStyle = void 0;
4
- var getIndex_1 = require("./getIndex");
5
- var getNumberingListStyle_1 = require("./getNumberingListStyle");
6
- var roosterjs_content_model_core_1 = require("roosterjs-content-model-core");
7
- /**
8
- * @internal
9
- */
10
- function getListTypeStyle(model, shouldSearchForBullet, shouldSearchForNumbering) {
11
- var _a, _b;
12
- if (shouldSearchForBullet === void 0) { shouldSearchForBullet = true; }
13
- if (shouldSearchForNumbering === void 0) { shouldSearchForNumbering = true; }
14
- var selectedSegmentsAndParagraphs = (0, roosterjs_content_model_core_1.getSelectedSegmentsAndParagraphs)(model, true);
15
- var marker = selectedSegmentsAndParagraphs[0][0];
16
- var paragraph = selectedSegmentsAndParagraphs[0][1];
17
- var listMarkerSegment = paragraph === null || paragraph === void 0 ? void 0 : paragraph.segments[0];
18
- if (marker &&
19
- marker.segmentType == 'SelectionMarker' &&
20
- listMarkerSegment &&
21
- listMarkerSegment.segmentType == 'Text') {
22
- var listMarker = listMarkerSegment.text;
23
- var bulletType = bulletListType[listMarker];
24
- if (bulletType && shouldSearchForBullet) {
25
- return { listType: 'UL', styleType: bulletType };
26
- }
27
- else if (shouldSearchForNumbering) {
28
- var previousList = getPreviousListLevel(model, paragraph);
29
- var previousListStyle = getPreviousListStyle(previousList);
30
- var numberingType = (0, getNumberingListStyle_1.getNumberingListStyle)(listMarker, ((_a = previousList === null || previousList === void 0 ? void 0 : previousList.format) === null || _a === void 0 ? void 0 : _a.listStyleType)
31
- ? (0, getIndex_1.getIndex)(previousList.format.listStyleType)
32
- : undefined, previousListStyle);
33
- if (numberingType) {
34
- return {
35
- listType: 'OL',
36
- styleType: numberingType,
37
- index: ((_b = previousList === null || previousList === void 0 ? void 0 : previousList.format) === null || _b === void 0 ? void 0 : _b.listStyleType) ? (0, getIndex_1.getIndex)(listMarker) : undefined,
38
- };
39
- }
40
- }
41
- }
42
- return undefined;
43
- }
44
- exports.getListTypeStyle = getListTypeStyle;
45
- var getPreviousListLevel = function (model, paragraph) {
46
- var blocks = (0, roosterjs_content_model_core_1.getOperationalBlocks)(model, ['ListItem'], ['TableCell']);
47
- var listItem = undefined;
48
- var listBlock = blocks.filter(function (_a) {
49
- var block = _a.block, parent = _a.parent;
50
- return parent.blocks.indexOf(paragraph) > -1;
51
- })[0];
52
- if (listBlock) {
53
- var length_1 = listBlock.parent.blocks.length;
54
- for (var i = length_1 - 1; i > -1; i--) {
55
- var item = listBlock.parent.blocks[i];
56
- if ((0, roosterjs_content_model_core_1.isBlockGroupOfType)(item, 'ListItem')) {
57
- listItem = item;
58
- break;
59
- }
60
- }
61
- }
62
- return listItem;
63
- };
64
- var getPreviousListStyle = function (list) {
65
- var _a;
66
- if (list === null || list === void 0 ? void 0 : list.levels[0].dataset) {
67
- return (_a = (0, roosterjs_content_model_core_1.updateListMetadata)(list.levels[0])) === null || _a === void 0 ? void 0 : _a.orderedStyleType;
68
- }
69
- };
70
- var bulletListType = {
71
- '*': roosterjs_content_model_core_1.BulletListType.Disc,
72
- '-': roosterjs_content_model_core_1.BulletListType.Dash,
73
- '--': roosterjs_content_model_core_1.BulletListType.Square,
74
- '->': roosterjs_content_model_core_1.BulletListType.LongArrow,
75
- '-->': roosterjs_content_model_core_1.BulletListType.DoubleLongArrow,
76
- '=>': roosterjs_content_model_core_1.BulletListType.UnfilledArrow,
77
- '>': roosterjs_content_model_core_1.BulletListType.ShortArrow,
78
- '': roosterjs_content_model_core_1.BulletListType.Hyphen,
79
- };
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getListTypeStyle = void 0;
4
+ var roosterjs_content_model_api_1 = require("roosterjs-content-model-api");
5
+ var getNumberingListStyle_1 = require("./getNumberingListStyle");
6
+ var roosterjs_content_model_core_1 = require("roosterjs-content-model-core");
7
+ /**
8
+ * @internal
9
+ */
10
+ function getListTypeStyle(model, shouldSearchForBullet, shouldSearchForNumbering) {
11
+ if (shouldSearchForBullet === void 0) { shouldSearchForBullet = true; }
12
+ if (shouldSearchForNumbering === void 0) { shouldSearchForNumbering = true; }
13
+ var selectedSegmentsAndParagraphs = (0, roosterjs_content_model_core_1.getSelectedSegmentsAndParagraphs)(model, true);
14
+ var marker = selectedSegmentsAndParagraphs[0][0];
15
+ var paragraph = selectedSegmentsAndParagraphs[0][1];
16
+ var listMarkerSegment = paragraph === null || paragraph === void 0 ? void 0 : paragraph.segments[0];
17
+ if (marker &&
18
+ marker.segmentType == 'SelectionMarker' &&
19
+ listMarkerSegment &&
20
+ listMarkerSegment.segmentType == 'Text') {
21
+ var listMarker = listMarkerSegment.text;
22
+ var bulletType = bulletListType[listMarker];
23
+ if (bulletType && shouldSearchForBullet) {
24
+ return { listType: 'UL', styleType: bulletType };
25
+ }
26
+ else if (shouldSearchForNumbering) {
27
+ var previousList = getPreviousListLevel(model, paragraph);
28
+ var previousIndex = getPreviousListIndex(model, previousList);
29
+ var previousListStyle = getPreviousListStyle(previousList);
30
+ var numberingType = (0, getNumberingListStyle_1.getNumberingListStyle)(listMarker, previousIndex, previousListStyle);
31
+ if (numberingType) {
32
+ return {
33
+ listType: 'OL',
34
+ styleType: numberingType,
35
+ index: !isNewList(listMarker) &&
36
+ previousListStyle === numberingType &&
37
+ previousIndex
38
+ ? previousIndex + 1
39
+ : undefined,
40
+ };
41
+ }
42
+ }
43
+ }
44
+ return undefined;
45
+ }
46
+ exports.getListTypeStyle = getListTypeStyle;
47
+ var getPreviousListIndex = function (model, previousListItem) {
48
+ return previousListItem ? (0, roosterjs_content_model_api_1.findListItemsInSameThread)(model, previousListItem).length : undefined;
49
+ };
50
+ var getPreviousListLevel = function (model, paragraph) {
51
+ var blocks = (0, roosterjs_content_model_core_1.getOperationalBlocks)(model, ['ListItem'], ['TableCell'])[0];
52
+ var listItem = undefined;
53
+ if (blocks) {
54
+ var listBlockIndex = blocks.parent.blocks.indexOf(paragraph);
55
+ if (listBlockIndex > -1) {
56
+ for (var i = listBlockIndex - 1; i > -1; i--) {
57
+ var item = blocks.parent.blocks[i];
58
+ if ((0, roosterjs_content_model_core_1.isBlockGroupOfType)(item, 'ListItem')) {
59
+ listItem = item;
60
+ break;
61
+ }
62
+ }
63
+ }
64
+ }
65
+ return listItem;
66
+ };
67
+ var getPreviousListStyle = function (list) {
68
+ var _a;
69
+ if (list === null || list === void 0 ? void 0 : list.levels[0].dataset) {
70
+ return (_a = (0, roosterjs_content_model_core_1.updateListMetadata)(list.levels[0])) === null || _a === void 0 ? void 0 : _a.orderedStyleType;
71
+ }
72
+ };
73
+ var bulletListType = {
74
+ '*': roosterjs_content_model_core_1.BulletListType.Disc,
75
+ '-': roosterjs_content_model_core_1.BulletListType.Dash,
76
+ '--': roosterjs_content_model_core_1.BulletListType.Square,
77
+ '->': roosterjs_content_model_core_1.BulletListType.LongArrow,
78
+ '-->': roosterjs_content_model_core_1.BulletListType.DoubleLongArrow,
79
+ '=>': roosterjs_content_model_core_1.BulletListType.UnfilledArrow,
80
+ '>': roosterjs_content_model_core_1.BulletListType.ShortArrow,
81
+ '—': roosterjs_content_model_core_1.BulletListType.Hyphen,
82
+ };
83
+ var isNewList = function (listMarker) {
84
+ var marker = listMarker.replace(/[^\w\s]/g, '');
85
+ var pattern = /^[1aAiI]$/;
86
+ return pattern.test(marker);
87
+ };
80
88
  //# 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 { getIndex } from './getIndex';\nimport { getNumberingListStyle } from './getNumberingListStyle';\n\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 previousListStyle = getPreviousListStyle(previousList);\n const numberingType = getNumberingListStyle(\n listMarker,\n previousList?.format?.listStyleType\n ? getIndex(previousList.format.listStyleType)\n : undefined,\n previousListStyle\n );\n if (numberingType) {\n return {\n listType: 'OL',\n styleType: numberingType,\n index: previousList?.format?.listStyleType ? getIndex(listMarker) : undefined,\n };\n }\n }\n }\n return undefined;\n}\n\nconst getPreviousListLevel = (model: ContentModelDocument, paragraph: ContentModelParagraph) => {\n const blocks = getOperationalBlocks(model, ['ListItem'], ['TableCell']);\n let listItem: ContentModelListItem | undefined = undefined;\n const listBlock = blocks.filter(({ block, parent }) => {\n return parent.blocks.indexOf(paragraph) > -1;\n })[0];\n if (listBlock) {\n const length = listBlock.parent.blocks.length;\n for (let i = length - 1; i > -1; i--) {\n const item = listBlock.parent.blocks[i];\n if (isBlockGroupOfType<ContentModelListItem>(item, 'ListItem')) {\n listItem = item;\n break;\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"]}
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';\r\nimport { getNumberingListStyle } from './getNumberingListStyle';\r\nimport type {\r\n ContentModelDocument,\r\n ContentModelListItem,\r\n ContentModelParagraph,\r\n} from 'roosterjs-content-model-types';\r\nimport {\r\n BulletListType,\r\n isBlockGroupOfType,\r\n updateListMetadata,\r\n getOperationalBlocks,\r\n getSelectedSegmentsAndParagraphs,\r\n} from 'roosterjs-content-model-core';\r\n\r\n/**\r\n * @internal\r\n */\r\ninterface ListTypeStyle {\r\n listType: 'UL' | 'OL';\r\n styleType: number;\r\n index?: number;\r\n}\r\n\r\n/**\r\n * @internal\r\n */\r\nexport function getListTypeStyle(\r\n model: ContentModelDocument,\r\n shouldSearchForBullet: boolean = true,\r\n shouldSearchForNumbering: boolean = true\r\n): ListTypeStyle | undefined {\r\n const selectedSegmentsAndParagraphs = getSelectedSegmentsAndParagraphs(model, true);\r\n const marker = selectedSegmentsAndParagraphs[0][0];\r\n const paragraph = selectedSegmentsAndParagraphs[0][1];\r\n const listMarkerSegment = paragraph?.segments[0];\r\n\r\n if (\r\n marker &&\r\n marker.segmentType == 'SelectionMarker' &&\r\n listMarkerSegment &&\r\n listMarkerSegment.segmentType == 'Text'\r\n ) {\r\n const listMarker = listMarkerSegment.text;\r\n const bulletType = bulletListType[listMarker];\r\n\r\n if (bulletType && shouldSearchForBullet) {\r\n return { listType: 'UL', styleType: bulletType };\r\n } else if (shouldSearchForNumbering) {\r\n const previousList = getPreviousListLevel(model, paragraph);\r\n const previousIndex = getPreviousListIndex(model, previousList);\r\n const previousListStyle = getPreviousListStyle(previousList);\r\n const numberingType = getNumberingListStyle(\r\n listMarker,\r\n previousIndex,\r\n previousListStyle\r\n );\r\n if (numberingType) {\r\n return {\r\n listType: 'OL',\r\n styleType: numberingType,\r\n index:\r\n !isNewList(listMarker) &&\r\n previousListStyle === numberingType &&\r\n previousIndex\r\n ? previousIndex + 1\r\n : undefined,\r\n };\r\n }\r\n }\r\n }\r\n return undefined;\r\n}\r\n\r\nconst getPreviousListIndex = (\r\n model: ContentModelDocument,\r\n previousListItem?: ContentModelListItem\r\n) => {\r\n return previousListItem ? findListItemsInSameThread(model, previousListItem).length : undefined;\r\n};\r\n\r\nconst getPreviousListLevel = (model: ContentModelDocument, paragraph: ContentModelParagraph) => {\r\n const blocks = getOperationalBlocks<ContentModelListItem>(\r\n model,\r\n ['ListItem'],\r\n ['TableCell']\r\n )[0];\r\n let listItem: ContentModelListItem | undefined = undefined;\r\n if (blocks) {\r\n const listBlockIndex = blocks.parent.blocks.indexOf(paragraph);\r\n\r\n if (listBlockIndex > -1) {\r\n for (let i = listBlockIndex - 1; i > -1; i--) {\r\n const item = blocks.parent.blocks[i];\r\n if (isBlockGroupOfType<ContentModelListItem>(item, 'ListItem')) {\r\n listItem = item;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return listItem;\r\n};\r\n\r\nconst getPreviousListStyle = (list?: ContentModelListItem) => {\r\n if (list?.levels[0].dataset) {\r\n return updateListMetadata(list.levels[0])?.orderedStyleType;\r\n }\r\n};\r\n\r\nconst bulletListType: Record<string, number> = {\r\n '*': BulletListType.Disc,\r\n '-': BulletListType.Dash,\r\n '--': BulletListType.Square,\r\n '->': BulletListType.LongArrow,\r\n '-->': BulletListType.DoubleLongArrow,\r\n '=>': BulletListType.UnfilledArrow,\r\n '>': BulletListType.ShortArrow,\r\n '—': BulletListType.Hyphen,\r\n};\r\n\r\nconst isNewList = (listMarker: string) => {\r\n const marker = listMarker.replace(/[^\\w\\s]/g, '');\r\n const pattern = /^[1aAiI]$/;\r\n return pattern.test(marker);\r\n};\r\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,153 +1,154 @@
1
- "use strict";
2
- var _a, _b, _c, _d, _e, _f;
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.getNumberingListStyle = void 0;
5
- var getIndex_1 = require("./getIndex");
6
- var roosterjs_content_model_core_1 = require("roosterjs-content-model-core");
7
- var NumberingTypes;
8
- (function (NumberingTypes) {
9
- NumberingTypes[NumberingTypes["Decimal"] = 1] = "Decimal";
10
- NumberingTypes[NumberingTypes["LowerAlpha"] = 2] = "LowerAlpha";
11
- NumberingTypes[NumberingTypes["UpperAlpha"] = 3] = "UpperAlpha";
12
- NumberingTypes[NumberingTypes["LowerRoman"] = 4] = "LowerRoman";
13
- NumberingTypes[NumberingTypes["UpperRoman"] = 5] = "UpperRoman";
14
- })(NumberingTypes || (NumberingTypes = {}));
15
- var Character;
16
- (function (Character) {
17
- Character[Character["Dot"] = 1] = "Dot";
18
- Character[Character["Dash"] = 2] = "Dash";
19
- Character[Character["Parenthesis"] = 3] = "Parenthesis";
20
- Character[Character["DoubleParenthesis"] = 4] = "DoubleParenthesis";
21
- })(Character || (Character = {}));
22
- var characters = {
23
- '.': 1 /* Dot */,
24
- '-': 2 /* Dash */,
25
- ')': 3 /* Parenthesis */,
26
- };
27
- var lowerRomanTypes = [
28
- roosterjs_content_model_core_1.NumberingListType.LowerRoman,
29
- roosterjs_content_model_core_1.NumberingListType.LowerRomanDash,
30
- roosterjs_content_model_core_1.NumberingListType.LowerRomanDoubleParenthesis,
31
- roosterjs_content_model_core_1.NumberingListType.LowerRomanParenthesis,
32
- ];
33
- var upperRomanTypes = [
34
- roosterjs_content_model_core_1.NumberingListType.UpperRoman,
35
- roosterjs_content_model_core_1.NumberingListType.UpperRomanDash,
36
- roosterjs_content_model_core_1.NumberingListType.UpperRomanDoubleParenthesis,
37
- roosterjs_content_model_core_1.NumberingListType.UpperRomanParenthesis,
38
- ];
39
- var numberingTriggers = ['1', 'a', 'A', 'I', 'i'];
40
- var lowerRomanNumbers = ['i', 'v', 'x', 'l', 'c', 'd', 'm'];
41
- var upperRomanNumbers = ['I', 'V', 'X', 'L', 'C', 'D', 'M'];
42
- var identifyNumberingType = function (text, previousListStyle) {
43
- if (!isNaN(parseInt(text))) {
44
- return 1 /* Decimal */;
45
- }
46
- else if (/[a-z]+/g.test(text)) {
47
- if ((previousListStyle != undefined &&
48
- lowerRomanTypes.indexOf(previousListStyle) > -1 &&
49
- lowerRomanNumbers.indexOf(text[0]) > -1) ||
50
- (!previousListStyle && text === 'i')) {
51
- return 4 /* LowerRoman */;
52
- }
53
- else if (previousListStyle || (!previousListStyle && text === 'a')) {
54
- return 2 /* LowerAlpha */;
55
- }
56
- }
57
- else if (/[A-Z]+/g.test(text)) {
58
- if ((previousListStyle != undefined &&
59
- upperRomanTypes.indexOf(previousListStyle) > -1 &&
60
- upperRomanNumbers.indexOf(text[0]) > -1) ||
61
- (!previousListStyle && text === 'I')) {
62
- return 5 /* UpperRoman */;
63
- }
64
- else if (previousListStyle || (!previousListStyle && text === 'A')) {
65
- return 3 /* UpperAlpha */;
66
- }
67
- }
68
- };
69
- var numberingListTypes = (_a = {},
70
- _a[1 /* Decimal */] = function (char) { return DecimalsTypes[char] || undefined; },
71
- _a[2 /* LowerAlpha */] = function (char) { return LowerAlphaTypes[char] || undefined; },
72
- _a[3 /* UpperAlpha */] = function (char) { return UpperAlphaTypes[char] || undefined; },
73
- _a[4 /* LowerRoman */] = function (char) { return LowerRomanTypes[char] || undefined; },
74
- _a[5 /* UpperRoman */] = function (char) { return UpperRomanTypes[char] || undefined; },
75
- _a);
76
- var UpperRomanTypes = (_b = {},
77
- _b[1 /* Dot */] = roosterjs_content_model_core_1.NumberingListType.UpperRoman,
78
- _b[2 /* Dash */] = roosterjs_content_model_core_1.NumberingListType.UpperRomanDash,
79
- _b[3 /* Parenthesis */] = roosterjs_content_model_core_1.NumberingListType.UpperRomanParenthesis,
80
- _b[4 /* DoubleParenthesis */] = roosterjs_content_model_core_1.NumberingListType.UpperRomanDoubleParenthesis,
81
- _b);
82
- var LowerRomanTypes = (_c = {},
83
- _c[1 /* Dot */] = roosterjs_content_model_core_1.NumberingListType.LowerRoman,
84
- _c[2 /* Dash */] = roosterjs_content_model_core_1.NumberingListType.LowerRomanDash,
85
- _c[3 /* Parenthesis */] = roosterjs_content_model_core_1.NumberingListType.LowerRomanParenthesis,
86
- _c[4 /* DoubleParenthesis */] = roosterjs_content_model_core_1.NumberingListType.LowerRomanDoubleParenthesis,
87
- _c);
88
- var UpperAlphaTypes = (_d = {},
89
- _d[1 /* Dot */] = roosterjs_content_model_core_1.NumberingListType.UpperAlpha,
90
- _d[2 /* Dash */] = roosterjs_content_model_core_1.NumberingListType.UpperAlphaDash,
91
- _d[3 /* Parenthesis */] = roosterjs_content_model_core_1.NumberingListType.UpperAlphaParenthesis,
92
- _d[4 /* DoubleParenthesis */] = roosterjs_content_model_core_1.NumberingListType.UpperAlphaDoubleParenthesis,
93
- _d);
94
- var LowerAlphaTypes = (_e = {},
95
- _e[1 /* Dot */] = roosterjs_content_model_core_1.NumberingListType.LowerAlpha,
96
- _e[2 /* Dash */] = roosterjs_content_model_core_1.NumberingListType.LowerAlphaDash,
97
- _e[3 /* Parenthesis */] = roosterjs_content_model_core_1.NumberingListType.LowerAlphaParenthesis,
98
- _e[4 /* DoubleParenthesis */] = roosterjs_content_model_core_1.NumberingListType.LowerAlphaDoubleParenthesis,
99
- _e);
100
- var DecimalsTypes = (_f = {},
101
- _f[1 /* Dot */] = roosterjs_content_model_core_1.NumberingListType.Decimal,
102
- _f[2 /* Dash */] = roosterjs_content_model_core_1.NumberingListType.DecimalDash,
103
- _f[3 /* Parenthesis */] = roosterjs_content_model_core_1.NumberingListType.DecimalParenthesis,
104
- _f[4 /* DoubleParenthesis */] = roosterjs_content_model_core_1.NumberingListType.DecimalDoubleParenthesis,
105
- _f);
106
- var identifyNumberingListType = function (numbering, isDoubleParenthesis, previousListStyle) {
107
- var separatorCharacter = isDoubleParenthesis
108
- ? 4 /* DoubleParenthesis */
109
- : characters[numbering[numbering.length - 1]];
110
- // if separator is not valid, no need to check if the number is valid.
111
- if (separatorCharacter) {
112
- var number = isDoubleParenthesis ? numbering.slice(1, -1) : numbering.slice(0, -1);
113
- var numberingType = identifyNumberingType(number, previousListStyle);
114
- return numberingType ? numberingListTypes[numberingType](separatorCharacter) : undefined;
115
- }
116
- return undefined;
117
- };
118
- /**
119
- * @internal
120
- */
121
- function getNumberingListStyle(textBeforeCursor, previousListIndex, previousListStyle) {
122
- var trigger = textBeforeCursor.trim();
123
- var isDoubleParenthesis = trigger[0] === '(' && trigger[trigger.length - 1] === ')';
124
- //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.
125
- //The index is always the characters before the last character
126
- var listIndex = isDoubleParenthesis ? trigger.slice(1, -1) : trigger.slice(0, -1);
127
- var index = (0, getIndex_1.getIndex)(listIndex);
128
- if (!index ||
129
- index < 1 ||
130
- (!previousListIndex && numberingTriggers.indexOf(listIndex) < 0) ||
131
- (previousListIndex &&
132
- numberingTriggers.indexOf(listIndex) < 0 &&
133
- !canAppendList(index, previousListIndex))) {
134
- return undefined;
135
- }
136
- var numberingType = isValidNumbering(listIndex)
137
- ? identifyNumberingListType(trigger, isDoubleParenthesis, previousListStyle)
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
- }
1
+ "use strict";
2
+ var _a, _b, _c, _d, _e, _f;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.getNumberingListStyle = void 0;
5
+ var getIndex_1 = require("./getIndex");
6
+ var roosterjs_content_model_core_1 = require("roosterjs-content-model-core");
7
+ var NumberingTypes;
8
+ (function (NumberingTypes) {
9
+ NumberingTypes[NumberingTypes["Decimal"] = 1] = "Decimal";
10
+ NumberingTypes[NumberingTypes["LowerAlpha"] = 2] = "LowerAlpha";
11
+ NumberingTypes[NumberingTypes["UpperAlpha"] = 3] = "UpperAlpha";
12
+ NumberingTypes[NumberingTypes["LowerRoman"] = 4] = "LowerRoman";
13
+ NumberingTypes[NumberingTypes["UpperRoman"] = 5] = "UpperRoman";
14
+ })(NumberingTypes || (NumberingTypes = {}));
15
+ var Character;
16
+ (function (Character) {
17
+ Character[Character["Dot"] = 1] = "Dot";
18
+ Character[Character["Dash"] = 2] = "Dash";
19
+ Character[Character["Parenthesis"] = 3] = "Parenthesis";
20
+ Character[Character["DoubleParenthesis"] = 4] = "DoubleParenthesis";
21
+ })(Character || (Character = {}));
22
+ var characters = {
23
+ '.': 1 /* Dot */,
24
+ '-': 2 /* Dash */,
25
+ ')': 3 /* Parenthesis */,
26
+ };
27
+ var lowerRomanTypes = [
28
+ roosterjs_content_model_core_1.NumberingListType.LowerRoman,
29
+ roosterjs_content_model_core_1.NumberingListType.LowerRomanDash,
30
+ roosterjs_content_model_core_1.NumberingListType.LowerRomanDoubleParenthesis,
31
+ roosterjs_content_model_core_1.NumberingListType.LowerRomanParenthesis,
32
+ ];
33
+ var upperRomanTypes = [
34
+ roosterjs_content_model_core_1.NumberingListType.UpperRoman,
35
+ roosterjs_content_model_core_1.NumberingListType.UpperRomanDash,
36
+ roosterjs_content_model_core_1.NumberingListType.UpperRomanDoubleParenthesis,
37
+ roosterjs_content_model_core_1.NumberingListType.UpperRomanParenthesis,
38
+ ];
39
+ var numberingTriggers = ['1', 'a', 'A', 'I', 'i'];
40
+ var lowerRomanNumbers = ['i', 'v', 'x', 'l', 'c', 'd', 'm'];
41
+ var upperRomanNumbers = ['I', 'V', 'X', 'L', 'C', 'D', 'M'];
42
+ var identifyNumberingType = function (text, previousListStyle) {
43
+ if (!isNaN(parseInt(text))) {
44
+ return 1 /* Decimal */;
45
+ }
46
+ else if (/[a-z]+/g.test(text)) {
47
+ if ((previousListStyle === 4 /* LowerRoman */ &&
48
+ lowerRomanTypes.indexOf(previousListStyle) > -1 &&
49
+ lowerRomanNumbers.indexOf(text[0]) > -1) ||
50
+ (!previousListStyle && text === 'i')) {
51
+ return 4 /* LowerRoman */;
52
+ }
53
+ else if (previousListStyle === 2 /* LowerAlpha */ ||
54
+ (!previousListStyle && text === 'a')) {
55
+ return 2 /* LowerAlpha */;
56
+ }
57
+ }
58
+ else if (/[A-Z]+/g.test(text)) {
59
+ if ((previousListStyle == 5 /* UpperRoman */ &&
60
+ upperRomanTypes.indexOf(previousListStyle) > -1 &&
61
+ upperRomanNumbers.indexOf(text[0]) > -1) ||
62
+ (!previousListStyle && text === 'I')) {
63
+ return 5 /* UpperRoman */;
64
+ }
65
+ else if (previousListStyle == 3 /* UpperAlpha */ ||
66
+ (!previousListStyle && text === 'A')) {
67
+ return 3 /* UpperAlpha */;
68
+ }
69
+ }
70
+ };
71
+ var numberingListTypes = (_a = {},
72
+ _a[1 /* Decimal */] = function (char) { return DecimalsTypes[char] || undefined; },
73
+ _a[2 /* LowerAlpha */] = function (char) { return LowerAlphaTypes[char] || undefined; },
74
+ _a[3 /* UpperAlpha */] = function (char) { return UpperAlphaTypes[char] || undefined; },
75
+ _a[4 /* LowerRoman */] = function (char) { return LowerRomanTypes[char] || undefined; },
76
+ _a[5 /* UpperRoman */] = function (char) { return UpperRomanTypes[char] || undefined; },
77
+ _a);
78
+ var UpperRomanTypes = (_b = {},
79
+ _b[1 /* Dot */] = roosterjs_content_model_core_1.NumberingListType.UpperRoman,
80
+ _b[2 /* Dash */] = roosterjs_content_model_core_1.NumberingListType.UpperRomanDash,
81
+ _b[3 /* Parenthesis */] = roosterjs_content_model_core_1.NumberingListType.UpperRomanParenthesis,
82
+ _b[4 /* DoubleParenthesis */] = roosterjs_content_model_core_1.NumberingListType.UpperRomanDoubleParenthesis,
83
+ _b);
84
+ var LowerRomanTypes = (_c = {},
85
+ _c[1 /* Dot */] = roosterjs_content_model_core_1.NumberingListType.LowerRoman,
86
+ _c[2 /* Dash */] = roosterjs_content_model_core_1.NumberingListType.LowerRomanDash,
87
+ _c[3 /* Parenthesis */] = roosterjs_content_model_core_1.NumberingListType.LowerRomanParenthesis,
88
+ _c[4 /* DoubleParenthesis */] = roosterjs_content_model_core_1.NumberingListType.LowerRomanDoubleParenthesis,
89
+ _c);
90
+ var UpperAlphaTypes = (_d = {},
91
+ _d[1 /* Dot */] = roosterjs_content_model_core_1.NumberingListType.UpperAlpha,
92
+ _d[2 /* Dash */] = roosterjs_content_model_core_1.NumberingListType.UpperAlphaDash,
93
+ _d[3 /* Parenthesis */] = roosterjs_content_model_core_1.NumberingListType.UpperAlphaParenthesis,
94
+ _d[4 /* DoubleParenthesis */] = roosterjs_content_model_core_1.NumberingListType.UpperAlphaDoubleParenthesis,
95
+ _d);
96
+ var LowerAlphaTypes = (_e = {},
97
+ _e[1 /* Dot */] = roosterjs_content_model_core_1.NumberingListType.LowerAlpha,
98
+ _e[2 /* Dash */] = roosterjs_content_model_core_1.NumberingListType.LowerAlphaDash,
99
+ _e[3 /* Parenthesis */] = roosterjs_content_model_core_1.NumberingListType.LowerAlphaParenthesis,
100
+ _e[4 /* DoubleParenthesis */] = roosterjs_content_model_core_1.NumberingListType.LowerAlphaDoubleParenthesis,
101
+ _e);
102
+ var DecimalsTypes = (_f = {},
103
+ _f[1 /* Dot */] = roosterjs_content_model_core_1.NumberingListType.Decimal,
104
+ _f[2 /* Dash */] = roosterjs_content_model_core_1.NumberingListType.DecimalDash,
105
+ _f[3 /* Parenthesis */] = roosterjs_content_model_core_1.NumberingListType.DecimalParenthesis,
106
+ _f[4 /* DoubleParenthesis */] = roosterjs_content_model_core_1.NumberingListType.DecimalDoubleParenthesis,
107
+ _f);
108
+ var identifyNumberingListType = function (numbering, isDoubleParenthesis, previousListStyle) {
109
+ var separatorCharacter = isDoubleParenthesis
110
+ ? 4 /* DoubleParenthesis */
111
+ : characters[numbering[numbering.length - 1]];
112
+ // if separator is not valid, no need to check if the number is valid.
113
+ if (separatorCharacter) {
114
+ var number = isDoubleParenthesis ? numbering.slice(1, -1) : numbering.slice(0, -1);
115
+ var numberingType = identifyNumberingType(number, previousListStyle);
116
+ return numberingType ? numberingListTypes[numberingType](separatorCharacter) : undefined;
117
+ }
118
+ return undefined;
119
+ };
120
+ /**
121
+ * @internal
122
+ */
123
+ function getNumberingListStyle(textBeforeCursor, previousListIndex, previousListStyle) {
124
+ var trigger = textBeforeCursor.trim();
125
+ var isDoubleParenthesis = trigger[0] === '(' && trigger[trigger.length - 1] === ')';
126
+ //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.
127
+ //The index is always the characters before the last character
128
+ var listIndex = isDoubleParenthesis ? trigger.slice(1, -1) : trigger.slice(0, -1);
129
+ var index = (0, getIndex_1.getIndex)(listIndex);
130
+ var isContinuosList = numberingTriggers.indexOf(listIndex) < 0;
131
+ if (!index ||
132
+ index < 1 ||
133
+ (!previousListIndex && isContinuosList) ||
134
+ (previousListIndex && isContinuosList && !canAppendList(index, previousListIndex))) {
135
+ return undefined;
136
+ }
137
+ var numberingType = isValidNumbering(listIndex)
138
+ ? identifyNumberingListType(trigger, isDoubleParenthesis, isContinuosList ? previousListStyle : undefined)
139
+ : undefined;
140
+ return numberingType;
141
+ }
142
+ exports.getNumberingListStyle = getNumberingListStyle;
143
+ /**
144
+ * Check if index has only numbers or only letters to avoid sequence of character such 1:1. trigger a list.
145
+ * @param index
146
+ * @returns
147
+ */
148
+ function isValidNumbering(index) {
149
+ return Number(index) || /^[A-Za-z\s]*$/.test(index);
150
+ }
151
+ function canAppendList(index, previousListIndex) {
152
+ return previousListIndex && index && previousListIndex + 1 === index;
153
+ }
153
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":";;;;AAAA,uCAAsC;AACtC,6EAAiE;AAEjE,IAAW,cAMV;AAND,WAAW,cAAc;IACrB,yDAAW,CAAA;IACX,+DAAc,CAAA;IACd,+DAAc,CAAA;IACd,+DAAc,CAAA;IACd,+DAAc,CAAA;AAClB,CAAC,EANU,cAAc,KAAd,cAAc,QAMxB;AAED,IAAW,SAKV;AALD,WAAW,SAAS;IAChB,uCAAO,CAAA;IACP,yCAAQ,CAAA;IACR,uDAAe,CAAA;IACf,mEAAqB,CAAA;AACzB,CAAC,EALU,SAAS,KAAT,SAAS,QAKnB;AAED,IAAM,UAAU,GAA2B;IACvC,GAAG,aAAe;IAClB,GAAG,cAAgB;IACnB,GAAG,qBAAuB;CAC7B,CAAC;AAEF,IAAM,eAAe,GAAG;IACpB,gDAAiB,CAAC,UAAU;IAC5B,gDAAiB,CAAC,cAAc;IAChC,gDAAiB,CAAC,2BAA2B;IAC7C,gDAAiB,CAAC,qBAAqB;CAC1C,CAAC;AACF,IAAM,eAAe,GAAG;IACpB,gDAAiB,CAAC,UAAU;IAC5B,gDAAiB,CAAC,cAAc;IAChC,gDAAiB,CAAC,2BAA2B;IAC7C,gDAAiB,CAAC,qBAAqB;CAC1C,CAAC;AACF,IAAM,iBAAiB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AACpD,IAAM,iBAAiB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAC9D,IAAM,iBAAiB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAE9D,IAAM,qBAAqB,GAAG,UAAC,IAAY,EAAE,iBAA0B;IACnE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE;QACxB,uBAA8B;KACjC;SAAM,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QAC7B,IACI,CAAC,iBAAiB,IAAI,SAAS;YAC3B,eAAe,CAAC,OAAO,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;YAC/C,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAC5C,CAAC,CAAC,iBAAiB,IAAI,IAAI,KAAK,GAAG,CAAC,EACtC;YACE,0BAAiC;SACpC;aAAM,IAAI,iBAAiB,IAAI,CAAC,CAAC,iBAAiB,IAAI,IAAI,KAAK,GAAG,CAAC,EAAE;YAClE,0BAAiC;SACpC;KACJ;SAAM,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QAC7B,IACI,CAAC,iBAAiB,IAAI,SAAS;YAC3B,eAAe,CAAC,OAAO,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;YAC/C,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAC5C,CAAC,CAAC,iBAAiB,IAAI,IAAI,KAAK,GAAG,CAAC,EACtC;YACE,0BAAiC;SACpC;aAAM,IAAI,iBAAiB,IAAI,CAAC,CAAC,iBAAiB,IAAI,IAAI,KAAK,GAAG,CAAC,EAAE;YAClE,0BAAiC;SACpC;KACJ;AACL,CAAC,CAAC;AAEF,IAAM,kBAAkB;IACpB,sBAA0B,UAAA,IAAI,IAAI,OAAA,aAAa,CAAC,IAAI,CAAC,IAAI,SAAS,EAAhC,CAAgC;IAClE,yBAA6B,UAAA,IAAI,IAAI,OAAA,eAAe,CAAC,IAAI,CAAC,IAAI,SAAS,EAAlC,CAAkC;IACvE,yBAA6B,UAAA,IAAI,IAAI,OAAA,eAAe,CAAC,IAAI,CAAC,IAAI,SAAS,EAAlC,CAAkC;IACvE,yBAA6B,UAAA,IAAI,IAAI,OAAA,eAAe,CAAC,IAAI,CAAC,IAAI,SAAS,EAAlC,CAAkC;IACvE,yBAA6B,UAAA,IAAI,IAAI,OAAA,eAAe,CAAC,IAAI,CAAC,IAAI,SAAS,EAAlC,CAAkC;OAC1E,CAAC;AAEF,IAAM,eAAe;IACjB,kBAAiB,gDAAiB,CAAC,UAAU;IAC7C,mBAAkB,gDAAiB,CAAC,cAAc;IAClD,0BAAyB,gDAAiB,CAAC,qBAAqB;IAChE,gCAA+B,gDAAiB,CAAC,2BAA2B;OAC/E,CAAC;AAEF,IAAM,eAAe;IACjB,kBAAiB,gDAAiB,CAAC,UAAU;IAC7C,mBAAkB,gDAAiB,CAAC,cAAc;IAClD,0BAAyB,gDAAiB,CAAC,qBAAqB;IAChE,gCAA+B,gDAAiB,CAAC,2BAA2B;OAC/E,CAAC;AAEF,IAAM,eAAe;IACjB,kBAAiB,gDAAiB,CAAC,UAAU;IAC7C,mBAAkB,gDAAiB,CAAC,cAAc;IAClD,0BAAyB,gDAAiB,CAAC,qBAAqB;IAChE,gCAA+B,gDAAiB,CAAC,2BAA2B;OAC/E,CAAC;AAEF,IAAM,eAAe;IACjB,kBAAiB,gDAAiB,CAAC,UAAU;IAC7C,mBAAkB,gDAAiB,CAAC,cAAc;IAClD,0BAAyB,gDAAiB,CAAC,qBAAqB;IAChE,gCAA+B,gDAAiB,CAAC,2BAA2B;OAC/E,CAAC;AAEF,IAAM,aAAa;IACf,kBAAiB,gDAAiB,CAAC,OAAO;IAC1C,mBAAkB,gDAAiB,CAAC,WAAW;IAC/C,0BAAyB,gDAAiB,CAAC,kBAAkB;IAC7D,gCAA+B,gDAAiB,CAAC,wBAAwB;OAC5E,CAAC;AAEF,IAAM,yBAAyB,GAAG,UAC9B,SAAiB,EACjB,mBAA4B,EAC5B,iBAA0B;IAE1B,IAAM,kBAAkB,GAAG,mBAAmB;QAC1C,CAAC;QACD,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;IAClD,sEAAsE;IACtE,IAAI,kBAAkB,EAAE;QACpB,IAAM,MAAM,GAAG,mBAAmB,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACrF,IAAM,aAAa,GAAG,qBAAqB,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;QACvE,OAAO,aAAa,CAAC,CAAC,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;KAC5F;IACD,OAAO,SAAS,CAAC;AACrB,CAAC,CAAC;AAEF;;GAEG;AACH,SAAgB,qBAAqB,CACjC,gBAAwB,EACxB,iBAA0B,EAC1B,iBAA0B;IAE1B,IAAM,OAAO,GAAG,gBAAgB,CAAC,IAAI,EAAE,CAAC;IACxC,IAAM,mBAAmB,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC;IACtF,kIAAkI;IAClI,8DAA8D;IAC9D,IAAM,SAAS,GAAG,mBAAmB,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACpF,IAAM,KAAK,GAAG,IAAA,mBAAQ,EAAC,SAAS,CAAC,CAAC;IAElC,IACI,CAAC,KAAK;QACN,KAAK,GAAG,CAAC;QACT,CAAC,CAAC,iBAAiB,IAAI,iBAAiB,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAChE,CAAC,iBAAiB;YACd,iBAAiB,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC;YACxC,CAAC,aAAa,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC,EAC/C;QACE,OAAO,SAAS,CAAC;KACpB;IAED,IAAM,aAAa,GAAG,gBAAgB,CAAC,SAAS,CAAC;QAC7C,CAAC,CAAC,yBAAyB,CAAC,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,CAAC;QAC5E,CAAC,CAAC,SAAS,CAAC;IAChB,OAAO,aAAa,CAAC;AACzB,CAAC;AA3BD,sDA2BC;AAED;;;;GAIG;AACH,SAAS,gBAAgB,CAAC,KAAa;IACnC,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACxD,CAAC;AAED,SAAS,aAAa,CAAC,KAAc,EAAE,iBAA0B;IAC7D,OAAO,iBAAiB,IAAI,KAAK,IAAI,iBAAiB,GAAG,CAAC,KAAK,KAAK,CAAC;AACzE,CAAC","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 != undefined &&\n lowerRomanTypes.indexOf(previousListStyle) > -1 &&\n lowerRomanNumbers.indexOf(text[0]) > -1) ||\n (!previousListStyle && text === 'i')\n ) {\n return NumberingTypes.LowerRoman;\n } else if (previousListStyle || (!previousListStyle && text === 'a')) {\n return NumberingTypes.LowerAlpha;\n }\n } else if (/[A-Z]+/g.test(text)) {\n if (\n (previousListStyle != undefined &&\n upperRomanTypes.indexOf(previousListStyle) > -1 &&\n upperRomanNumbers.indexOf(text[0]) > -1) ||\n (!previousListStyle && text === 'I')\n ) {\n return NumberingTypes.UpperRoman;\n } else if (previousListStyle || (!previousListStyle && text === 'A')) {\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\n if (\n !index ||\n index < 1 ||\n (!previousListIndex && numberingTriggers.indexOf(listIndex) < 0) ||\n (previousListIndex &&\n numberingTriggers.indexOf(listIndex) < 0 &&\n !canAppendList(index, previousListIndex))\n ) {\n return undefined;\n }\n\n const numberingType = isValidNumbering(listIndex)\n ? identifyNumberingListType(trigger, isDoubleParenthesis, previousListStyle)\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"]}
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"]}