roosterjs-content-model-plugins 0.28.1 → 9.0.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 (200) hide show
  1. package/README.md +47 -37
  2. package/lib/autoFormat/AutoFormatPlugin.d.ts +5 -2
  3. package/lib/autoFormat/AutoFormatPlugin.js +23 -11
  4. package/lib/autoFormat/AutoFormatPlugin.js.map +1 -1
  5. package/lib/autoFormat/link/createLinkAfterSpace.js +28 -22
  6. package/lib/autoFormat/link/createLinkAfterSpace.js.map +1 -1
  7. package/lib/autoFormat/link/getLinkSegment.js +2 -2
  8. package/lib/autoFormat/link/getLinkSegment.js.map +1 -1
  9. package/lib/autoFormat/list/getListTypeStyle.js +14 -14
  10. package/lib/autoFormat/list/getListTypeStyle.js.map +1 -1
  11. package/lib/autoFormat/list/getNumberingListStyle.js +29 -29
  12. package/lib/autoFormat/list/getNumberingListStyle.js.map +1 -1
  13. package/lib/autoFormat/list/keyboardListTrigger.d.ts +1 -1
  14. package/lib/autoFormat/list/keyboardListTrigger.js +10 -11
  15. package/lib/autoFormat/list/keyboardListTrigger.js.map +1 -1
  16. package/lib/edit/deleteSteps/deleteAllSegmentBefore.js +2 -2
  17. package/lib/edit/deleteSteps/deleteAllSegmentBefore.js.map +1 -1
  18. package/lib/edit/deleteSteps/deleteCollapsedSelection.js +4 -5
  19. package/lib/edit/deleteSteps/deleteCollapsedSelection.js.map +1 -1
  20. package/lib/edit/deleteSteps/deleteEmptyQuote.js +2 -3
  21. package/lib/edit/deleteSteps/deleteEmptyQuote.js.map +1 -1
  22. package/lib/edit/deleteSteps/deleteList.js +3 -5
  23. package/lib/edit/deleteSteps/deleteList.js.map +1 -1
  24. package/lib/edit/deleteSteps/deleteWordSelection.js +3 -4
  25. package/lib/edit/deleteSteps/deleteWordSelection.js.map +1 -1
  26. package/lib/edit/inputSteps/handleEnterOnList.js +2 -3
  27. package/lib/edit/inputSteps/handleEnterOnList.js.map +1 -1
  28. package/lib/edit/keyboardDelete.js +4 -5
  29. package/lib/edit/keyboardDelete.js.map +1 -1
  30. package/lib/edit/keyboardInput.js +3 -4
  31. package/lib/edit/keyboardInput.js.map +1 -1
  32. package/lib/edit/keyboardTab.js +3 -3
  33. package/lib/edit/keyboardTab.js.map +1 -1
  34. package/lib/index.d.ts +3 -0
  35. package/lib/index.js +5 -1
  36. package/lib/index.js.map +1 -1
  37. package/lib/markdown/MarkdownPlugin.d.ts +55 -0
  38. package/lib/markdown/MarkdownPlugin.js +177 -0
  39. package/lib/markdown/MarkdownPlugin.js.map +1 -0
  40. package/lib/markdown/utils/setFormat.d.ts +5 -0
  41. package/lib/markdown/utils/setFormat.js +46 -0
  42. package/lib/markdown/utils/setFormat.js.map +1 -0
  43. package/lib/paste/Excel/processPastedContentFromExcel.d.ts +6 -1
  44. package/lib/paste/Excel/processPastedContentFromExcel.js +20 -12
  45. package/lib/paste/Excel/processPastedContentFromExcel.js.map +1 -1
  46. package/lib/paste/WordDesktop/processWordLists.js +2 -3
  47. package/lib/paste/WordDesktop/processWordLists.js.map +1 -1
  48. package/lib/pluginUtils/splitTextSegment.d.ts +5 -0
  49. package/lib/pluginUtils/splitTextSegment.js +26 -0
  50. package/lib/pluginUtils/splitTextSegment.js.map +1 -0
  51. package/lib/shortcut/ShortcutPlugin.js +2 -2
  52. package/lib/shortcut/ShortcutPlugin.js.map +1 -1
  53. package/lib/shortcut/utils/setShortcutIndentationCommand.js +2 -2
  54. package/lib/shortcut/utils/setShortcutIndentationCommand.js.map +1 -1
  55. package/lib/tableEdit/editors/features/CellResizer.js +5 -6
  56. package/lib/tableEdit/editors/features/CellResizer.js.map +1 -1
  57. package/lib/tableEdit/editors/features/TableResizer.js +2 -3
  58. package/lib/tableEdit/editors/features/TableResizer.js.map +1 -1
  59. package/lib/watermark/WatermarkFormat.d.ts +5 -0
  60. package/lib/watermark/WatermarkFormat.js +3 -0
  61. package/lib/watermark/WatermarkFormat.js.map +1 -0
  62. package/lib/watermark/WatermarkPlugin.d.ts +37 -0
  63. package/lib/watermark/WatermarkPlugin.js +99 -0
  64. package/lib/watermark/WatermarkPlugin.js.map +1 -0
  65. package/lib/watermark/isModelEmptyFast.d.ts +6 -0
  66. package/lib/watermark/isModelEmptyFast.js +35 -0
  67. package/lib/watermark/isModelEmptyFast.js.map +1 -0
  68. package/lib-amd/autoFormat/AutoFormatPlugin.d.ts +5 -2
  69. package/lib-amd/autoFormat/AutoFormatPlugin.js +23 -11
  70. package/lib-amd/autoFormat/AutoFormatPlugin.js.map +1 -1
  71. package/lib-amd/autoFormat/link/createLinkAfterSpace.js +28 -22
  72. package/lib-amd/autoFormat/link/createLinkAfterSpace.js.map +1 -1
  73. package/lib-amd/autoFormat/link/getLinkSegment.js +2 -2
  74. package/lib-amd/autoFormat/link/getLinkSegment.js.map +1 -1
  75. package/lib-amd/autoFormat/list/getListTypeStyle.js +14 -14
  76. package/lib-amd/autoFormat/list/getListTypeStyle.js.map +1 -1
  77. package/lib-amd/autoFormat/list/getNumberingListStyle.js +29 -29
  78. package/lib-amd/autoFormat/list/getNumberingListStyle.js.map +1 -1
  79. package/lib-amd/autoFormat/list/keyboardListTrigger.d.ts +1 -1
  80. package/lib-amd/autoFormat/list/keyboardListTrigger.js +11 -11
  81. package/lib-amd/autoFormat/list/keyboardListTrigger.js.map +1 -1
  82. package/lib-amd/edit/deleteSteps/deleteAllSegmentBefore.js +2 -2
  83. package/lib-amd/edit/deleteSteps/deleteAllSegmentBefore.js.map +1 -1
  84. package/lib-amd/edit/deleteSteps/deleteCollapsedSelection.js +5 -5
  85. package/lib-amd/edit/deleteSteps/deleteCollapsedSelection.js.map +1 -1
  86. package/lib-amd/edit/deleteSteps/deleteEmptyQuote.js +3 -3
  87. package/lib-amd/edit/deleteSteps/deleteEmptyQuote.js.map +1 -1
  88. package/lib-amd/edit/deleteSteps/deleteList.js +3 -5
  89. package/lib-amd/edit/deleteSteps/deleteList.js.map +1 -1
  90. package/lib-amd/edit/deleteSteps/deleteWordSelection.js +4 -4
  91. package/lib-amd/edit/deleteSteps/deleteWordSelection.js.map +1 -1
  92. package/lib-amd/edit/inputSteps/handleEnterOnList.js +3 -3
  93. package/lib-amd/edit/inputSteps/handleEnterOnList.js.map +1 -1
  94. package/lib-amd/edit/keyboardDelete.js +4 -4
  95. package/lib-amd/edit/keyboardDelete.js.map +1 -1
  96. package/lib-amd/edit/keyboardInput.js +3 -3
  97. package/lib-amd/edit/keyboardInput.js.map +1 -1
  98. package/lib-amd/edit/keyboardTab.js +3 -3
  99. package/lib-amd/edit/keyboardTab.js.map +1 -1
  100. package/lib-amd/index.d.ts +3 -0
  101. package/lib-amd/index.js +4 -2
  102. package/lib-amd/index.js.map +1 -1
  103. package/lib-amd/markdown/MarkdownPlugin.d.ts +55 -0
  104. package/lib-amd/markdown/MarkdownPlugin.js +178 -0
  105. package/lib-amd/markdown/MarkdownPlugin.js.map +1 -0
  106. package/lib-amd/markdown/utils/setFormat.d.ts +5 -0
  107. package/lib-amd/markdown/utils/setFormat.js +45 -0
  108. package/lib-amd/markdown/utils/setFormat.js.map +1 -0
  109. package/lib-amd/paste/Excel/processPastedContentFromExcel.d.ts +6 -1
  110. package/lib-amd/paste/Excel/processPastedContentFromExcel.js +20 -12
  111. package/lib-amd/paste/Excel/processPastedContentFromExcel.js.map +1 -1
  112. package/lib-amd/paste/WordDesktop/processWordLists.js +3 -3
  113. package/lib-amd/paste/WordDesktop/processWordLists.js.map +1 -1
  114. package/lib-amd/pluginUtils/splitTextSegment.d.ts +5 -0
  115. package/lib-amd/pluginUtils/splitTextSegment.js +26 -0
  116. package/lib-amd/pluginUtils/splitTextSegment.js.map +1 -0
  117. package/lib-amd/shortcut/ShortcutPlugin.js +2 -2
  118. package/lib-amd/shortcut/ShortcutPlugin.js.map +1 -1
  119. package/lib-amd/shortcut/utils/setShortcutIndentationCommand.js +2 -2
  120. package/lib-amd/shortcut/utils/setShortcutIndentationCommand.js.map +1 -1
  121. package/lib-amd/tableEdit/editors/features/CellResizer.js +6 -6
  122. package/lib-amd/tableEdit/editors/features/CellResizer.js.map +1 -1
  123. package/lib-amd/tableEdit/editors/features/TableResizer.js +3 -3
  124. package/lib-amd/tableEdit/editors/features/TableResizer.js.map +1 -1
  125. package/lib-amd/watermark/WatermarkFormat.d.ts +5 -0
  126. package/lib-amd/watermark/WatermarkFormat.js +5 -0
  127. package/lib-amd/watermark/WatermarkFormat.js.map +1 -0
  128. package/lib-amd/watermark/WatermarkPlugin.d.ts +37 -0
  129. package/lib-amd/watermark/WatermarkPlugin.js +99 -0
  130. package/lib-amd/watermark/WatermarkPlugin.js.map +1 -0
  131. package/lib-amd/watermark/isModelEmptyFast.d.ts +6 -0
  132. package/lib-amd/watermark/isModelEmptyFast.js +37 -0
  133. package/lib-amd/watermark/isModelEmptyFast.js.map +1 -0
  134. package/lib-mjs/autoFormat/AutoFormatPlugin.d.ts +5 -2
  135. package/lib-mjs/autoFormat/AutoFormatPlugin.js +23 -11
  136. package/lib-mjs/autoFormat/AutoFormatPlugin.js.map +1 -1
  137. package/lib-mjs/autoFormat/link/createLinkAfterSpace.js +28 -22
  138. package/lib-mjs/autoFormat/link/createLinkAfterSpace.js.map +1 -1
  139. package/lib-mjs/autoFormat/link/getLinkSegment.js +1 -1
  140. package/lib-mjs/autoFormat/link/getLinkSegment.js.map +1 -1
  141. package/lib-mjs/autoFormat/list/getListTypeStyle.js +2 -2
  142. package/lib-mjs/autoFormat/list/getListTypeStyle.js.map +1 -1
  143. package/lib-mjs/autoFormat/list/getNumberingListStyle.js +1 -1
  144. package/lib-mjs/autoFormat/list/getNumberingListStyle.js.map +1 -1
  145. package/lib-mjs/autoFormat/list/keyboardListTrigger.d.ts +1 -1
  146. package/lib-mjs/autoFormat/list/keyboardListTrigger.js +11 -12
  147. package/lib-mjs/autoFormat/list/keyboardListTrigger.js.map +1 -1
  148. package/lib-mjs/edit/deleteSteps/deleteAllSegmentBefore.js +1 -1
  149. package/lib-mjs/edit/deleteSteps/deleteAllSegmentBefore.js.map +1 -1
  150. package/lib-mjs/edit/deleteSteps/deleteCollapsedSelection.js +1 -2
  151. package/lib-mjs/edit/deleteSteps/deleteCollapsedSelection.js.map +1 -1
  152. package/lib-mjs/edit/deleteSteps/deleteEmptyQuote.js +1 -2
  153. package/lib-mjs/edit/deleteSteps/deleteEmptyQuote.js.map +1 -1
  154. package/lib-mjs/edit/deleteSteps/deleteList.js +2 -4
  155. package/lib-mjs/edit/deleteSteps/deleteList.js.map +1 -1
  156. package/lib-mjs/edit/deleteSteps/deleteWordSelection.js +1 -2
  157. package/lib-mjs/edit/deleteSteps/deleteWordSelection.js.map +1 -1
  158. package/lib-mjs/edit/inputSteps/handleEnterOnList.js +1 -2
  159. package/lib-mjs/edit/inputSteps/handleEnterOnList.js.map +1 -1
  160. package/lib-mjs/edit/keyboardDelete.js +1 -2
  161. package/lib-mjs/edit/keyboardDelete.js.map +1 -1
  162. package/lib-mjs/edit/keyboardInput.js +1 -2
  163. package/lib-mjs/edit/keyboardInput.js.map +1 -1
  164. package/lib-mjs/edit/keyboardTab.js +1 -1
  165. package/lib-mjs/edit/keyboardTab.js.map +1 -1
  166. package/lib-mjs/index.d.ts +3 -0
  167. package/lib-mjs/index.js +2 -0
  168. package/lib-mjs/index.js.map +1 -1
  169. package/lib-mjs/markdown/MarkdownPlugin.d.ts +55 -0
  170. package/lib-mjs/markdown/MarkdownPlugin.js +174 -0
  171. package/lib-mjs/markdown/MarkdownPlugin.js.map +1 -0
  172. package/lib-mjs/markdown/utils/setFormat.d.ts +5 -0
  173. package/lib-mjs/markdown/utils/setFormat.js +42 -0
  174. package/lib-mjs/markdown/utils/setFormat.js.map +1 -0
  175. package/lib-mjs/paste/Excel/processPastedContentFromExcel.d.ts +6 -1
  176. package/lib-mjs/paste/Excel/processPastedContentFromExcel.js +18 -11
  177. package/lib-mjs/paste/Excel/processPastedContentFromExcel.js.map +1 -1
  178. package/lib-mjs/paste/WordDesktop/processWordLists.js +1 -2
  179. package/lib-mjs/paste/WordDesktop/processWordLists.js.map +1 -1
  180. package/lib-mjs/pluginUtils/splitTextSegment.d.ts +5 -0
  181. package/lib-mjs/pluginUtils/splitTextSegment.js +22 -0
  182. package/lib-mjs/pluginUtils/splitTextSegment.js.map +1 -0
  183. package/lib-mjs/shortcut/ShortcutPlugin.js +1 -1
  184. package/lib-mjs/shortcut/ShortcutPlugin.js.map +1 -1
  185. package/lib-mjs/shortcut/utils/setShortcutIndentationCommand.js +1 -1
  186. package/lib-mjs/shortcut/utils/setShortcutIndentationCommand.js.map +1 -1
  187. package/lib-mjs/tableEdit/editors/features/CellResizer.js +1 -2
  188. package/lib-mjs/tableEdit/editors/features/CellResizer.js.map +1 -1
  189. package/lib-mjs/tableEdit/editors/features/TableResizer.js +1 -2
  190. package/lib-mjs/tableEdit/editors/features/TableResizer.js.map +1 -1
  191. package/lib-mjs/watermark/WatermarkFormat.d.ts +5 -0
  192. package/lib-mjs/watermark/WatermarkFormat.js +2 -0
  193. package/lib-mjs/watermark/WatermarkFormat.js.map +1 -0
  194. package/lib-mjs/watermark/WatermarkPlugin.d.ts +37 -0
  195. package/lib-mjs/watermark/WatermarkPlugin.js +96 -0
  196. package/lib-mjs/watermark/WatermarkPlugin.js.map +1 -0
  197. package/lib-mjs/watermark/isModelEmptyFast.d.ts +6 -0
  198. package/lib-mjs/watermark/isModelEmptyFast.js +31 -0
  199. package/lib-mjs/watermark/isModelEmptyFast.js.map +1 -0
  200. package/package.json +6 -6
@@ -0,0 +1,31 @@
1
+ /**
2
+ * @internal
3
+ * A fast way to check if content model is empty
4
+ */
5
+ export function isModelEmptyFast(model) {
6
+ var firstBlock = model.blocks[0];
7
+ if (model.blocks.length > 1) {
8
+ return false; // Multiple blocks, treat as not empty
9
+ }
10
+ else if (!firstBlock) {
11
+ return true; // No block, it is empty
12
+ }
13
+ else if (firstBlock.blockType != 'Paragraph') {
14
+ return false; // First block is not paragraph, treat as not empty
15
+ }
16
+ else if (firstBlock.segments.length == 0) {
17
+ return true; // No segment, it is empty
18
+ }
19
+ else if (firstBlock.segments.some(function (x) {
20
+ return x.segmentType == 'Entity' ||
21
+ x.segmentType == 'Image' ||
22
+ x.segmentType == 'General' ||
23
+ (x.segmentType == 'Text' && x.text);
24
+ })) {
25
+ return false; // Has meaningful segments, it is not empty
26
+ }
27
+ else {
28
+ return firstBlock.segments.filter(function (x) { return x.segmentType == 'Br'; }).length <= 1; // If there are more than one BR, it is not empty, otherwise it is empty
29
+ }
30
+ }
31
+ //# sourceMappingURL=isModelEmptyFast.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isModelEmptyFast.js","sourceRoot":"","sources":["../../../../packages/roosterjs-content-model-plugins/lib/watermark/isModelEmptyFast.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAA2B;IACxD,IAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAEnC,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;QACzB,OAAO,KAAK,CAAC,CAAC,sCAAsC;KACvD;SAAM,IAAI,CAAC,UAAU,EAAE;QACpB,OAAO,IAAI,CAAC,CAAC,wBAAwB;KACxC;SAAM,IAAI,UAAU,CAAC,SAAS,IAAI,WAAW,EAAE;QAC5C,OAAO,KAAK,CAAC,CAAC,mDAAmD;KACpE;SAAM,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,EAAE;QACxC,OAAO,IAAI,CAAC,CAAC,0BAA0B;KAC1C;SAAM,IACH,UAAU,CAAC,QAAQ,CAAC,IAAI,CACpB,UAAA,CAAC;QACG,OAAA,CAAC,CAAC,WAAW,IAAI,QAAQ;YACzB,CAAC,CAAC,WAAW,IAAI,OAAO;YACxB,CAAC,CAAC,WAAW,IAAI,SAAS;YAC1B,CAAC,CAAC,CAAC,WAAW,IAAI,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC;IAHnC,CAGmC,CAC1C,EACH;QACE,OAAO,KAAK,CAAC,CAAC,2CAA2C;KAC5D;SAAM;QACH,OAAO,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,WAAW,IAAI,IAAI,EAArB,CAAqB,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,wEAAwE;KACtJ;AACL,CAAC","sourcesContent":["import type { ContentModelDocument } from 'roosterjs-content-model-types';\n\n/**\n * @internal\n * A fast way to check if content model is empty\n */\nexport function isModelEmptyFast(model: ContentModelDocument): boolean {\n const firstBlock = model.blocks[0];\n\n if (model.blocks.length > 1) {\n return false; // Multiple blocks, treat as not empty\n } else if (!firstBlock) {\n return true; // No block, it is empty\n } else if (firstBlock.blockType != 'Paragraph') {\n return false; // First block is not paragraph, treat as not empty\n } else if (firstBlock.segments.length == 0) {\n return true; // No segment, it is empty\n } else if (\n firstBlock.segments.some(\n x =>\n x.segmentType == 'Entity' ||\n x.segmentType == 'Image' ||\n x.segmentType == 'General' ||\n (x.segmentType == 'Text' && x.text)\n )\n ) {\n return false; // Has meaningful segments, it is not empty\n } else {\n return firstBlock.segments.filter(x => x.segmentType == 'Br').length <= 1; // If there are more than one BR, it is not empty, otherwise it is empty\n }\n}\n"]}
package/package.json CHANGED
@@ -1,14 +1,14 @@
1
1
  {
2
2
  "name": "roosterjs-content-model-plugins",
3
- "description": "Content Model for roosterjs (Under development)",
3
+ "description": "Plugins for roosterjs",
4
4
  "dependencies": {
5
5
  "tslib": "^2.3.1",
6
- "roosterjs-content-model-core": "^0.28.1",
7
- "roosterjs-content-model-dom": "^0.28.0",
8
- "roosterjs-content-model-types": "^0.28.0",
9
- "roosterjs-content-model-api": "^0.28.0"
6
+ "roosterjs-content-model-core": "^9.0.0",
7
+ "roosterjs-content-model-dom": "^9.0.0",
8
+ "roosterjs-content-model-types": "^9.0.0",
9
+ "roosterjs-content-model-api": "^9.0.0"
10
10
  },
11
- "version": "0.28.1",
11
+ "version": "9.0.0",
12
12
  "main": "./lib/index.js",
13
13
  "typings": "./lib/index.d.ts",
14
14
  "module": "./lib-mjs/index.js",