@gravity-ui/markdown-editor 15.19.1 → 15.21.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 (268) hide show
  1. package/build/cjs/bundle/config/action-names.d.ts +1 -1
  2. package/build/cjs/bundle/wysiwyg-preset.js +5 -1
  3. package/build/cjs/bundle/wysiwyg-preset.js.map +1 -1
  4. package/build/cjs/extensions/yfm/YfmConfigs/index.d.ts +5 -1
  5. package/build/cjs/extensions/yfm/YfmConfigs/index.js +7 -1
  6. package/build/cjs/extensions/yfm/YfmConfigs/index.js.map +1 -1
  7. package/build/cjs/extensions/yfm/YfmTable/index.d.ts +15 -1
  8. package/build/cjs/extensions/yfm/YfmTable/index.js +4 -2
  9. package/build/cjs/extensions/yfm/YfmTable/index.js.map +1 -1
  10. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/actions.d.ts +6 -0
  11. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/actions.js +5 -8
  12. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/actions.js.map +1 -1
  13. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/commands/clear-cells.d.ts +7 -0
  14. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/commands/clear-cells.js +41 -0
  15. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/commands/clear-cells.js.map +1 -0
  16. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/commands/insert-empty-column.d.ts +6 -0
  17. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/commands/insert-empty-column.js +59 -0
  18. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/commands/insert-empty-column.js.map +1 -0
  19. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/commands/insert-empty-row.d.ts +6 -0
  20. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/commands/insert-empty-row.js +54 -0
  21. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/commands/insert-empty-row.js.map +1 -0
  22. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/commands/remove-column-range.d.ts +6 -0
  23. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/commands/remove-column-range.js +77 -0
  24. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/commands/remove-column-range.js.map +1 -0
  25. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/commands/remove-row-range.d.ts +6 -0
  26. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/commands/remove-row-range.js +74 -0
  27. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/commands/remove-row-range.js.map +1 -0
  28. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingMenu/FloatingMenu.d.ts +10 -0
  29. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingMenu/FloatingMenu.js +45 -0
  30. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingMenu/FloatingMenu.js.map +1 -0
  31. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingMenu/index.d.ts +1 -0
  32. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingMenu/index.js +5 -0
  33. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingMenu/index.js.map +1 -0
  34. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingMenuControl/FloatingMenuControl.d.ts +15 -0
  35. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingMenuControl/FloatingMenuControl.js +67 -0
  36. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingMenuControl/FloatingMenuControl.js.map +1 -0
  37. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingMenuControl/index.d.ts +1 -0
  38. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingMenuControl/index.js +5 -0
  39. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingMenuControl/index.js.map +1 -0
  40. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPlusButton/FloatingPlusButton.d.ts +4 -0
  41. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPlusButton/FloatingPlusButton.js +26 -0
  42. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPlusButton/FloatingPlusButton.js.map +1 -0
  43. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPlusButton/InsertCursor.d.ts +6 -0
  44. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPlusButton/InsertCursor.js +68 -0
  45. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPlusButton/InsertCursor.js.map +1 -0
  46. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPlusButton/PlusButton.d.ts +6 -0
  47. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPlusButton/PlusButton.js +26 -0
  48. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPlusButton/PlusButton.js.map +1 -0
  49. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPlusButton/index.d.ts +1 -0
  50. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPlusButton/index.js +5 -0
  51. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPlusButton/index.js.map +1 -0
  52. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPlusControl/FloatingPlusControl.d.ts +9 -0
  53. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPlusControl/FloatingPlusControl.js +38 -0
  54. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPlusControl/FloatingPlusControl.js.map +1 -0
  55. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPlusControl/index.d.ts +1 -0
  56. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPlusControl/index.js +5 -0
  57. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPlusControl/index.js.map +1 -0
  58. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPopup/FloatingPopup.css +14 -0
  59. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPopup/FloatingPopup.d.ts +13 -0
  60. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPopup/FloatingPopup.js +58 -0
  61. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPopup/FloatingPopup.js.map +1 -0
  62. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPopup/index.d.ts +1 -0
  63. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPopup/index.js +5 -0
  64. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPopup/index.js.map +1 -0
  65. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/const.d.ts +13 -0
  66. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/const.js +18 -0
  67. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/const.js.map +1 -0
  68. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/dnd/dnd-drop-cursor.d.ts +36 -0
  69. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/dnd/dnd-drop-cursor.js +144 -0
  70. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/dnd/dnd-drop-cursor.js.map +1 -0
  71. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/dnd/dnd.css +19 -0
  72. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/dnd/dnd.d.ts +31 -0
  73. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/dnd/dnd.js +468 -0
  74. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/dnd/dnd.js.map +1 -0
  75. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/index.d.ts +12 -0
  76. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/index.js +11 -0
  77. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/index.js.map +1 -0
  78. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/nodeviews/yfm-table-cell-view.d.ts +6 -0
  79. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/nodeviews/yfm-table-cell-view.js +288 -0
  80. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/nodeviews/yfm-table-cell-view.js.map +1 -0
  81. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/nodeviews/yfm-table-view.css +4 -0
  82. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/nodeviews/yfm-table-view.d.ts +3 -0
  83. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/nodeviews/yfm-table-view.js +100 -0
  84. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/nodeviews/yfm-table-view.js.map +1 -0
  85. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/plugins/dnd-plugin.d.ts +23 -0
  86. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/plugins/dnd-plugin.js +119 -0
  87. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/plugins/dnd-plugin.js.map +1 -0
  88. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/plugins/focus-plugin.d.ts +17 -0
  89. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/plugins/focus-plugin.js +158 -0
  90. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/plugins/focus-plugin.js.map +1 -0
  91. package/build/cjs/i18n/yfm-table/en.json +3 -0
  92. package/build/cjs/i18n/yfm-table/index.d.ts +4 -1
  93. package/build/cjs/i18n/yfm-table/ru.json +3 -0
  94. package/build/cjs/icons/index.d.ts +2 -5
  95. package/build/cjs/icons/index.js +5 -8
  96. package/build/cjs/icons/index.js.map +1 -1
  97. package/build/cjs/lodash.d.ts +3 -1
  98. package/build/cjs/lodash.js +5 -1
  99. package/build/cjs/lodash.js.map +1 -1
  100. package/build/cjs/table-utils/table-desc.d.ts +50 -6
  101. package/build/cjs/table-utils/table-desc.js +196 -3
  102. package/build/cjs/table-utils/table-desc.js.map +1 -1
  103. package/build/cjs/toolbar/ToolbarButtonPopup.js +2 -2
  104. package/build/cjs/toolbar/ToolbarButtonPopup.js.map +1 -1
  105. package/build/cjs/toolbar/ToolbarListButton.js +1 -1
  106. package/build/cjs/toolbar/ToolbarListButton.js.map +1 -1
  107. package/build/cjs/version.js +1 -1
  108. package/build/cjs/version.js.map +1 -1
  109. package/build/cjs/view/components/YfmHtml/YfmStaticView.d.ts +13 -0
  110. package/build/cjs/view/components/YfmHtml/YfmStaticView.js +10 -4
  111. package/build/cjs/view/components/YfmHtml/YfmStaticView.js.map +1 -1
  112. package/build/cjs/view/components/YfmHtml/index.d.ts +1 -1
  113. package/build/cjs/view/components/YfmHtml/index.js.map +1 -1
  114. package/build/esm/bundle/config/action-names.d.ts +1 -1
  115. package/build/esm/bundle/wysiwyg-preset.js +5 -1
  116. package/build/esm/bundle/wysiwyg-preset.js.map +1 -1
  117. package/build/esm/extensions/yfm/YfmConfigs/index.d.ts +5 -1
  118. package/build/esm/extensions/yfm/YfmConfigs/index.js +7 -1
  119. package/build/esm/extensions/yfm/YfmConfigs/index.js.map +1 -1
  120. package/build/esm/extensions/yfm/YfmTable/index.d.ts +15 -1
  121. package/build/esm/extensions/yfm/YfmTable/index.js +4 -2
  122. package/build/esm/extensions/yfm/YfmTable/index.js.map +1 -1
  123. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/actions.d.ts +7 -1
  124. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/actions.js +2 -6
  125. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/actions.js.map +1 -1
  126. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/commands/clear-cells.d.ts +7 -0
  127. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/commands/clear-cells.js +37 -0
  128. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/commands/clear-cells.js.map +1 -0
  129. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/commands/insert-empty-column.d.ts +6 -0
  130. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/commands/insert-empty-column.js +55 -0
  131. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/commands/insert-empty-column.js.map +1 -0
  132. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/commands/insert-empty-row.d.ts +6 -0
  133. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/commands/insert-empty-row.js +50 -0
  134. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/commands/insert-empty-row.js.map +1 -0
  135. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/commands/remove-column-range.d.ts +6 -0
  136. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/commands/remove-column-range.js +73 -0
  137. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/commands/remove-column-range.js.map +1 -0
  138. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/commands/remove-row-range.d.ts +6 -0
  139. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/commands/remove-row-range.js +70 -0
  140. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/commands/remove-row-range.js.map +1 -0
  141. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingMenu/FloatingMenu.d.ts +10 -0
  142. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingMenu/FloatingMenu.js +41 -0
  143. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingMenu/FloatingMenu.js.map +1 -0
  144. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingMenu/index.d.ts +1 -0
  145. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingMenu/index.js +2 -0
  146. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingMenu/index.js.map +1 -0
  147. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingMenuControl/FloatingMenuControl.d.ts +15 -0
  148. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingMenuControl/FloatingMenuControl.js +63 -0
  149. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingMenuControl/FloatingMenuControl.js.map +1 -0
  150. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingMenuControl/index.d.ts +1 -0
  151. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingMenuControl/index.js +2 -0
  152. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingMenuControl/index.js.map +1 -0
  153. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPlusButton/FloatingPlusButton.d.ts +4 -0
  154. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPlusButton/FloatingPlusButton.js +22 -0
  155. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPlusButton/FloatingPlusButton.js.map +1 -0
  156. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPlusButton/InsertCursor.d.ts +6 -0
  157. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPlusButton/InsertCursor.js +64 -0
  158. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPlusButton/InsertCursor.js.map +1 -0
  159. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPlusButton/PlusButton.d.ts +6 -0
  160. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPlusButton/PlusButton.js +22 -0
  161. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPlusButton/PlusButton.js.map +1 -0
  162. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPlusButton/index.d.ts +1 -0
  163. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPlusButton/index.js +2 -0
  164. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPlusButton/index.js.map +1 -0
  165. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPlusControl/FloatingPlusControl.d.ts +9 -0
  166. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPlusControl/FloatingPlusControl.js +35 -0
  167. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPlusControl/FloatingPlusControl.js.map +1 -0
  168. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPlusControl/index.d.ts +1 -0
  169. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPlusControl/index.js +2 -0
  170. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPlusControl/index.js.map +1 -0
  171. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPopup/FloatingPopup.css +14 -0
  172. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPopup/FloatingPopup.d.ts +13 -0
  173. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPopup/FloatingPopup.js +54 -0
  174. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPopup/FloatingPopup.js.map +1 -0
  175. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPopup/index.d.ts +1 -0
  176. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPopup/index.js +2 -0
  177. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPopup/index.js.map +1 -0
  178. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/const.d.ts +13 -0
  179. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/const.js +15 -0
  180. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/const.js.map +1 -0
  181. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/dnd/dnd-drop-cursor.d.ts +36 -0
  182. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/dnd/dnd-drop-cursor.js +139 -0
  183. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/dnd/dnd-drop-cursor.js.map +1 -0
  184. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/dnd/dnd.css +19 -0
  185. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/dnd/dnd.d.ts +31 -0
  186. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/dnd/dnd.js +464 -0
  187. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/dnd/dnd.js.map +1 -0
  188. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/index.d.ts +12 -0
  189. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/index.js +7 -0
  190. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/index.js.map +1 -0
  191. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/nodeviews/yfm-table-cell-view.d.ts +6 -0
  192. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/nodeviews/yfm-table-cell-view.js +284 -0
  193. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/nodeviews/yfm-table-cell-view.js.map +1 -0
  194. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/nodeviews/yfm-table-view.css +4 -0
  195. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/nodeviews/yfm-table-view.d.ts +3 -0
  196. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/nodeviews/yfm-table-view.js +96 -0
  197. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/nodeviews/yfm-table-view.js.map +1 -0
  198. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/plugins/dnd-plugin.d.ts +23 -0
  199. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/plugins/dnd-plugin.js +108 -0
  200. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/plugins/dnd-plugin.js.map +1 -0
  201. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/plugins/focus-plugin.d.ts +17 -0
  202. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/plugins/focus-plugin.js +153 -0
  203. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/plugins/focus-plugin.js.map +1 -0
  204. package/build/esm/i18n/yfm-table/en.json +3 -0
  205. package/build/esm/i18n/yfm-table/index.d.ts +4 -1
  206. package/build/esm/i18n/yfm-table/ru.json +3 -0
  207. package/build/esm/icons/index.d.ts +2 -5
  208. package/build/esm/icons/index.js +4 -7
  209. package/build/esm/icons/index.js.map +1 -1
  210. package/build/esm/lodash.d.ts +3 -1
  211. package/build/esm/lodash.js +3 -1
  212. package/build/esm/lodash.js.map +1 -1
  213. package/build/esm/table-utils/table-desc.d.ts +50 -6
  214. package/build/esm/table-utils/table-desc.js +196 -3
  215. package/build/esm/table-utils/table-desc.js.map +1 -1
  216. package/build/esm/toolbar/ToolbarButtonPopup.js +2 -2
  217. package/build/esm/toolbar/ToolbarButtonPopup.js.map +1 -1
  218. package/build/esm/toolbar/ToolbarListButton.js +1 -1
  219. package/build/esm/toolbar/ToolbarListButton.js.map +1 -1
  220. package/build/esm/version.js +1 -1
  221. package/build/esm/version.js.map +1 -1
  222. package/build/esm/view/components/YfmHtml/YfmStaticView.d.ts +13 -0
  223. package/build/esm/view/components/YfmHtml/YfmStaticView.js +9 -3
  224. package/build/esm/view/components/YfmHtml/YfmStaticView.js.map +1 -1
  225. package/build/esm/view/components/YfmHtml/index.d.ts +1 -1
  226. package/build/esm/view/components/YfmHtml/index.js.map +1 -1
  227. package/build/styles.css +31 -116
  228. package/package.json +1 -1
  229. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/buttons.d.ts +0 -14
  230. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/buttons.js +0 -97
  231. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/buttons.js.map +0 -1
  232. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/view.css +0 -85
  233. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/view.d.ts +0 -4
  234. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/view.js +0 -62
  235. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/view.js.map +0 -1
  236. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/yfmTableCellView.css +0 -37
  237. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/yfmTableCellView.d.ts +0 -4
  238. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/yfmTableCellView.js +0 -212
  239. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/yfmTableCellView.js.map +0 -1
  240. package/build/cjs/icons/Mermaid.d.ts +0 -3
  241. package/build/cjs/icons/Mermaid.js +0 -11
  242. package/build/cjs/icons/Mermaid.js.map +0 -1
  243. package/build/cjs/icons/Mono.d.ts +0 -3
  244. package/build/cjs/icons/Mono.js +0 -6
  245. package/build/cjs/icons/Mono.js.map +0 -1
  246. package/build/cjs/icons/Tabs.d.ts +0 -3
  247. package/build/cjs/icons/Tabs.js +0 -6
  248. package/build/cjs/icons/Tabs.js.map +0 -1
  249. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/buttons.d.ts +0 -14
  250. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/buttons.js +0 -95
  251. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/buttons.js.map +0 -1
  252. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/view.css +0 -85
  253. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/view.d.ts +0 -4
  254. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/view.js +0 -58
  255. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/view.js.map +0 -1
  256. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/yfmTableCellView.css +0 -37
  257. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/yfmTableCellView.d.ts +0 -4
  258. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/yfmTableCellView.js +0 -208
  259. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/yfmTableCellView.js.map +0 -1
  260. package/build/esm/icons/Mermaid.d.ts +0 -3
  261. package/build/esm/icons/Mermaid.js +0 -9
  262. package/build/esm/icons/Mermaid.js.map +0 -1
  263. package/build/esm/icons/Mono.d.ts +0 -3
  264. package/build/esm/icons/Mono.js +0 -4
  265. package/build/esm/icons/Mono.js.map +0 -1
  266. package/build/esm/icons/Tabs.d.ts +0 -3
  267. package/build/esm/icons/Tabs.js +0 -4
  268. package/build/esm/icons/Tabs.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"wysiwyg-preset.js","sourceRoot":"../../../src","sources":["bundle/wysiwyg-preset.ts"],"names":[],"mappings":"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","sourcesContent":["import type {Node} from 'prosemirror-model';\n\nimport type {ExtensionAuto} from '../core';\nimport {BehaviorPreset, type BehaviorPresetOptions} from '../extensions/behavior';\nimport {\n EditorModeKeymap,\n type EditorModeKeymapOptions,\n} from '../extensions/behavior/EditorModeKeymap';\nimport {BaseNode, YfmHeadingAttr, YfmNoteNode} from '../extensions/specs';\nimport {i18n as i18nPlaceholder} from '../i18n/placeholder';\nimport {CommonMarkPreset, type CommonMarkPresetOptions} from '../presets/commonmark';\nimport {DefaultPreset, type DefaultPresetOptions} from '../presets/default';\nimport {FullPreset, type FullPresetOptions} from '../presets/full';\nimport {YfmPreset, type YfmPresetOptions} from '../presets/yfm';\nimport {ZeroPreset, type ZeroPresetOptions} from '../presets/zero';\nimport {Action as A, formatter as f} from '../shortcuts';\nimport type {DirectiveSyntaxContext} from '../utils/directive';\nimport type {FileUploadHandler} from '../utils/upload';\n\nimport {wCommandMenuConfigByPreset, wSelectionMenuConfigByPreset} from './config/wysiwyg';\nimport {emojiDefs} from './emoji';\nimport type {MarkdownEditorPreset, WysiwygPlaceholderOptions} from './types';\n\nconst DEFAULT_IGNORED_KEYS = ['Tab', 'Shift-Tab'] as const;\n\nexport type ExtensionsOptions = BehaviorPresetOptions & FullPresetOptions;\n\nexport type BundlePresetOptions = ExtensionsOptions &\n EditorModeKeymapOptions & {\n preset: MarkdownEditorPreset;\n mdBreaks?: boolean;\n preserveEmptyRows?: boolean;\n fileUploadHandler?: FileUploadHandler;\n placeholderOptions?: WysiwygPlaceholderOptions;\n /**\n * If we need to set dimensions for uploaded images\n *\n * @default false\n */\n needToSetDimensionsForUploadedImages?: boolean;\n enableNewImageSizeCalculation?: boolean;\n directiveSyntax: DirectiveSyntaxContext;\n // MAJOR: remove markdown-it-attrs\n disableMdAttrs?: boolean;\n mobile?: boolean;\n };\n\ndeclare global {\n namespace WysiwygEditor {\n interface Context {\n directiveSyntax: DirectiveSyntaxContext;\n }\n }\n}\n\nexport const BundlePreset: ExtensionAuto<BundlePresetOptions> = (builder, opts) => {\n builder.context.set('directiveSyntax', opts.directiveSyntax);\n\n const dropCursor: NonNullable<BundlePresetOptions['cursor']>['dropOptions'] = {\n color: 'var(--g-color-line-brand)',\n width: 2,\n };\n\n const zeroOptions: BehaviorPresetOptions & ZeroPresetOptions = {\n ...opts,\n baseStyles: {\n attributes: {\n // for disable setting attrs inside pm-view from floating-ui from uikit\n // see https://github.com/floating-ui/floating-ui/discussions/3213\n // and https://github.com/floating-ui/floating-ui/pull/3202\n 'aria-live': '',\n ...opts.baseStyles?.attributes,\n },\n },\n cursor: {dropOptions: dropCursor},\n clipboard: {pasteFileHandler: opts.fileUploadHandler, ...opts.clipboard},\n selectionContext: {config: wSelectionMenuConfigByPreset.zero, ...opts.selectionContext},\n commandMenu: {actions: wCommandMenuConfigByPreset.zero, ...opts.commandMenu},\n history: {undoKey: f.toPM(A.Undo), redoKey: f.toPM(A.Redo), ...opts.history},\n baseSchema: {\n paragraphKey: f.toPM(A.Text),\n paragraphPlaceholder: (node: Node, parent?: Node | null) => {\n const {value, behavior} = opts.placeholderOptions || {};\n\n const emptyEntries = {\n 'empty-row': !node.text,\n 'empty-row-top-level': !node.text && parent?.type.name === BaseNode.Doc,\n 'empty-doc':\n !node.text && parent?.type.name === BaseNode.Doc && parent.childCount === 1,\n };\n\n const showPlaceholder = emptyEntries[behavior || 'empty-doc'];\n\n if (!showPlaceholder) return null;\n\n return typeof value === 'function'\n ? value()\n : value ?? i18nPlaceholder(opts.mobile ? 'doc_empty_mobile' : 'doc_empty');\n },\n preserveEmptyRows: opts.preserveEmptyRows,\n ...opts.baseSchema,\n },\n };\n const commonMarkOptions: BehaviorPresetOptions & CommonMarkPresetOptions = {\n ...zeroOptions,\n selectionContext: {\n config: wSelectionMenuConfigByPreset.commonmark,\n ...opts.selectionContext,\n },\n commandMenu: {actions: wCommandMenuConfigByPreset.commonmark, ...opts.commandMenu},\n breaks: {\n preferredBreak: (opts.mdBreaks ? 'soft' : 'hard') as 'soft' | 'hard',\n ...opts.breaks,\n },\n bold: {boldKey: f.toPM(A.Bold), ...opts.bold},\n italic: {italicKey: f.toPM(A.Italic), ...opts.italic},\n code: {codeKey: f.toPM(A.Code), ...opts.code},\n codeBlock: {\n codeBlockKey: f.toPM(A.CodeBlock),\n ...opts.codeBlock,\n },\n blockquote: {qouteKey: f.toPM(A.Quote), ...opts.blockquote},\n link: {linkKey: f.toPM(A.Link), ...opts.link},\n lists: {\n ulKey: f.toPM(A.BulletList),\n olKey: f.toPM(A.OrderedList),\n ulInputRules: {plus: false},\n ...opts.lists,\n },\n image: {\n parseInsertedUrlAsImage: opts.imgSize?.parseInsertedUrlAsImage,\n },\n };\n const defaultOptions: BehaviorPresetOptions & DefaultPresetOptions = {\n ...commonMarkOptions,\n selectionContext: {config: wSelectionMenuConfigByPreset.default, ...opts.selectionContext},\n commandMenu: {actions: wCommandMenuConfigByPreset.default, ...opts.commandMenu},\n strike: {strikeKey: f.toPM(A.Strike), ...opts.strike},\n };\n const yfmOptions: BehaviorPresetOptions & YfmPresetOptions = {\n ...defaultOptions,\n yfmConfigs: {disableAttrs: opts.disableMdAttrs, ...opts.yfmConfigs},\n selectionContext: {config: wSelectionMenuConfigByPreset.yfm, ...opts.selectionContext},\n commandMenu: {actions: wCommandMenuConfigByPreset.yfm, ...opts.commandMenu},\n underline: {underlineKey: f.toPM(A.Underline), ...opts.underline},\n imgSize: {\n imageUploadHandler: opts.fileUploadHandler,\n needToSetDimensionsForUploadedImages: opts.needToSetDimensionsForUploadedImages,\n enableNewImageSizeCalculation: opts.enableNewImageSizeCalculation,\n ...opts.imgSize,\n },\n checkbox: {checkboxLabelPlaceholder: () => i18nPlaceholder('checkbox'), ...opts.checkbox},\n deflist: {\n deflistTermPlaceholder: () => i18nPlaceholder('deflist_term'),\n deflistDescPlaceholder: () => i18nPlaceholder('deflist_desc'),\n },\n yfmCut: {\n yfmCutKey: f.toPM(A.Cut),\n yfmCutTitlePlaceholder: () => i18nPlaceholder('cut_title'),\n yfmCutContentPlaceholder: () => i18nPlaceholder('cut_content'),\n ...opts.yfmCut,\n },\n yfmNote: {\n yfmNoteKey: f.toPM(A.Note),\n yfmNoteTitlePlaceholder: () => i18nPlaceholder('note_title'),\n ...opts.yfmNote,\n },\n yfmTable: {yfmTableCellPlaceholder: () => i18nPlaceholder('table_cell'), ...opts.yfmTable},\n yfmFile: {\n fileUploadHandler: opts.fileUploadHandler,\n needToSetDimensionsForUploadedImages: opts.needToSetDimensionsForUploadedImages,\n ...opts.yfmFile,\n },\n yfmHeading: {\n h1Key: f.toPM(A.Heading1),\n h2Key: f.toPM(A.Heading2),\n h3Key: f.toPM(A.Heading3),\n h4Key: f.toPM(A.Heading4),\n h5Key: f.toPM(A.Heading5),\n h6Key: f.toPM(A.Heading6),\n headingPlaceholder: (node: Node) =>\n `${i18nPlaceholder('heading')} ${node.attrs[YfmHeadingAttr.Level]}`, // todo: remove attrs import\n ...opts.yfmHeading,\n },\n placeholder: {\n [YfmNoteNode.NoteContent]: () => i18nPlaceholder('note_content'),\n },\n };\n const fullOptions: BehaviorPresetOptions & FullPresetOptions = {\n ...yfmOptions,\n selectionContext: {config: wSelectionMenuConfigByPreset.full, ...opts.selectionContext},\n commandMenu: {actions: wCommandMenuConfigByPreset.full, ...opts.commandMenu},\n emoji: {defs: emojiDefs, ...opts.emoji},\n };\n\n const zeroIgnoreActions = [A.Undo, A.Redo];\n const commonMarkIgnoreActions = zeroIgnoreActions.concat(\n A.Bold,\n A.Italic,\n A.Code,\n A.Link,\n\n A.Text,\n A.Heading1,\n A.Heading2,\n A.Heading3,\n A.Heading4,\n A.Heading5,\n A.Heading6,\n\n A.BulletList,\n A.OrderedList,\n\n A.Quote,\n A.CodeBlock,\n );\n const defaultIgnoreActions = commonMarkIgnoreActions.concat(A.Strike);\n const yfmIgnoreActions = defaultIgnoreActions.concat(\n A.Underline,\n\n A.Note,\n A.Cut,\n );\n const fullIgnoreActions = yfmIgnoreActions.concat();\n\n let ignoreActions;\n\n switch (opts.preset) {\n case 'zero': {\n ignoreActions = zeroIgnoreActions;\n builder.use(BehaviorPreset, zeroOptions).use(ZeroPreset, zeroOptions);\n break;\n }\n case 'commonmark': {\n ignoreActions = commonMarkIgnoreActions;\n builder.use(BehaviorPreset, commonMarkOptions).use(CommonMarkPreset, commonMarkOptions);\n break;\n }\n case 'default': {\n ignoreActions = defaultIgnoreActions;\n builder.use(BehaviorPreset, defaultOptions).use(DefaultPreset, defaultOptions);\n break;\n }\n case 'yfm': {\n ignoreActions = yfmIgnoreActions;\n builder.use(BehaviorPreset, yfmOptions).use(YfmPreset, yfmOptions);\n break;\n }\n default: {\n ignoreActions = fullIgnoreActions;\n builder.use(BehaviorPreset, fullOptions).use(FullPreset, fullOptions);\n break;\n }\n }\n\n const ignoreKeysList = opts.ignoreKeysList?.slice() ?? [];\n ignoreKeysList.push(...DEFAULT_IGNORED_KEYS);\n for (const action of ignoreActions) {\n const key = f.toPM(action);\n if (key) ignoreKeysList.push(key);\n }\n\n builder.use(EditorModeKeymap, {\n onSubmit: opts.onSubmit,\n onCancel: opts.onCancel,\n ignoreKeysList,\n });\n};\n"]}
1
+ {"version":3,"file":"wysiwyg-preset.js","sourceRoot":"../../../src","sources":["bundle/wysiwyg-preset.ts"],"names":[],"mappings":"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","sourcesContent":["import type {Node} from 'prosemirror-model';\n\nimport type {ExtensionAuto} from '../core';\nimport {BehaviorPreset, type BehaviorPresetOptions} from '../extensions/behavior';\nimport {\n EditorModeKeymap,\n type EditorModeKeymapOptions,\n} from '../extensions/behavior/EditorModeKeymap';\nimport {BaseNode, YfmHeadingAttr, YfmNoteNode} from '../extensions/specs';\nimport {i18n as i18nPlaceholder} from '../i18n/placeholder';\nimport {CommonMarkPreset, type CommonMarkPresetOptions} from '../presets/commonmark';\nimport {DefaultPreset, type DefaultPresetOptions} from '../presets/default';\nimport {FullPreset, type FullPresetOptions} from '../presets/full';\nimport {YfmPreset, type YfmPresetOptions} from '../presets/yfm';\nimport {ZeroPreset, type ZeroPresetOptions} from '../presets/zero';\nimport {Action as A, formatter as f} from '../shortcuts';\nimport type {DirectiveSyntaxContext} from '../utils/directive';\nimport type {FileUploadHandler} from '../utils/upload';\n\nimport {wCommandMenuConfigByPreset, wSelectionMenuConfigByPreset} from './config/wysiwyg';\nimport {emojiDefs} from './emoji';\nimport type {MarkdownEditorPreset, WysiwygPlaceholderOptions} from './types';\n\nconst DEFAULT_IGNORED_KEYS = ['Tab', 'Shift-Tab'] as const;\n\nexport type ExtensionsOptions = BehaviorPresetOptions & FullPresetOptions;\n\nexport type BundlePresetOptions = ExtensionsOptions &\n EditorModeKeymapOptions & {\n preset: MarkdownEditorPreset;\n mdBreaks?: boolean;\n preserveEmptyRows?: boolean;\n fileUploadHandler?: FileUploadHandler;\n placeholderOptions?: WysiwygPlaceholderOptions;\n /**\n * If we need to set dimensions for uploaded images\n *\n * @default false\n */\n needToSetDimensionsForUploadedImages?: boolean;\n enableNewImageSizeCalculation?: boolean;\n directiveSyntax: DirectiveSyntaxContext;\n // MAJOR: remove markdown-it-attrs\n disableMdAttrs?: boolean;\n mobile?: boolean;\n };\n\ndeclare global {\n namespace WysiwygEditor {\n interface Context {\n directiveSyntax: DirectiveSyntaxContext;\n }\n }\n}\n\nexport const BundlePreset: ExtensionAuto<BundlePresetOptions> = (builder, opts) => {\n builder.context.set('directiveSyntax', opts.directiveSyntax);\n\n const dropCursor: NonNullable<BundlePresetOptions['cursor']>['dropOptions'] = {\n color: 'var(--g-color-line-brand)',\n width: 2,\n };\n\n const zeroOptions: BehaviorPresetOptions & ZeroPresetOptions = {\n ...opts,\n baseStyles: {\n attributes: {\n // for disable setting attrs inside pm-view from floating-ui from uikit\n // see https://github.com/floating-ui/floating-ui/discussions/3213\n // and https://github.com/floating-ui/floating-ui/pull/3202\n 'aria-live': '',\n ...opts.baseStyles?.attributes,\n },\n },\n cursor: {dropOptions: dropCursor},\n clipboard: {pasteFileHandler: opts.fileUploadHandler, ...opts.clipboard},\n selectionContext: {config: wSelectionMenuConfigByPreset.zero, ...opts.selectionContext},\n commandMenu: {actions: wCommandMenuConfigByPreset.zero, ...opts.commandMenu},\n history: {undoKey: f.toPM(A.Undo), redoKey: f.toPM(A.Redo), ...opts.history},\n baseSchema: {\n paragraphKey: f.toPM(A.Text),\n paragraphPlaceholder: (node: Node, parent?: Node | null) => {\n const {value, behavior} = opts.placeholderOptions || {};\n\n const emptyEntries = {\n 'empty-row': !node.text,\n 'empty-row-top-level': !node.text && parent?.type.name === BaseNode.Doc,\n 'empty-doc':\n !node.text && parent?.type.name === BaseNode.Doc && parent.childCount === 1,\n };\n\n const showPlaceholder = emptyEntries[behavior || 'empty-doc'];\n\n if (!showPlaceholder) return null;\n\n return typeof value === 'function'\n ? value()\n : value ?? i18nPlaceholder(opts.mobile ? 'doc_empty_mobile' : 'doc_empty');\n },\n preserveEmptyRows: opts.preserveEmptyRows,\n ...opts.baseSchema,\n },\n };\n const commonMarkOptions: BehaviorPresetOptions & CommonMarkPresetOptions = {\n ...zeroOptions,\n selectionContext: {\n config: wSelectionMenuConfigByPreset.commonmark,\n ...opts.selectionContext,\n },\n commandMenu: {actions: wCommandMenuConfigByPreset.commonmark, ...opts.commandMenu},\n breaks: {\n preferredBreak: (opts.mdBreaks ? 'soft' : 'hard') as 'soft' | 'hard',\n ...opts.breaks,\n },\n bold: {boldKey: f.toPM(A.Bold), ...opts.bold},\n italic: {italicKey: f.toPM(A.Italic), ...opts.italic},\n code: {codeKey: f.toPM(A.Code), ...opts.code},\n codeBlock: {\n codeBlockKey: f.toPM(A.CodeBlock),\n ...opts.codeBlock,\n },\n blockquote: {qouteKey: f.toPM(A.Quote), ...opts.blockquote},\n link: {linkKey: f.toPM(A.Link), ...opts.link},\n lists: {\n ulKey: f.toPM(A.BulletList),\n olKey: f.toPM(A.OrderedList),\n ulInputRules: {plus: false},\n ...opts.lists,\n },\n image: {\n parseInsertedUrlAsImage: opts.imgSize?.parseInsertedUrlAsImage,\n },\n };\n const defaultOptions: BehaviorPresetOptions & DefaultPresetOptions = {\n ...commonMarkOptions,\n selectionContext: {config: wSelectionMenuConfigByPreset.default, ...opts.selectionContext},\n commandMenu: {actions: wCommandMenuConfigByPreset.default, ...opts.commandMenu},\n strike: {strikeKey: f.toPM(A.Strike), ...opts.strike},\n };\n const yfmOptions: BehaviorPresetOptions & YfmPresetOptions = {\n ...defaultOptions,\n yfmConfigs: {disableAttrs: opts.disableMdAttrs, ...opts.yfmConfigs},\n selectionContext: {config: wSelectionMenuConfigByPreset.yfm, ...opts.selectionContext},\n commandMenu: {actions: wCommandMenuConfigByPreset.yfm, ...opts.commandMenu},\n underline: {underlineKey: f.toPM(A.Underline), ...opts.underline},\n imgSize: {\n imageUploadHandler: opts.fileUploadHandler,\n needToSetDimensionsForUploadedImages: opts.needToSetDimensionsForUploadedImages,\n enableNewImageSizeCalculation: opts.enableNewImageSizeCalculation,\n ...opts.imgSize,\n },\n checkbox: {checkboxLabelPlaceholder: () => i18nPlaceholder('checkbox'), ...opts.checkbox},\n deflist: {\n deflistTermPlaceholder: () => i18nPlaceholder('deflist_term'),\n deflistDescPlaceholder: () => i18nPlaceholder('deflist_desc'),\n },\n yfmCut: {\n yfmCutKey: f.toPM(A.Cut),\n yfmCutTitlePlaceholder: () => i18nPlaceholder('cut_title'),\n yfmCutContentPlaceholder: () => i18nPlaceholder('cut_content'),\n ...opts.yfmCut,\n },\n yfmNote: {\n yfmNoteKey: f.toPM(A.Note),\n yfmNoteTitlePlaceholder: () => i18nPlaceholder('note_title'),\n ...opts.yfmNote,\n },\n yfmTable: {\n yfmTableCellPlaceholder: () => i18nPlaceholder('table_cell'),\n ...opts.yfmTable,\n controls: opts.mobile ? false : opts.yfmTable?.controls,\n },\n yfmFile: {\n fileUploadHandler: opts.fileUploadHandler,\n needToSetDimensionsForUploadedImages: opts.needToSetDimensionsForUploadedImages,\n ...opts.yfmFile,\n },\n yfmHeading: {\n h1Key: f.toPM(A.Heading1),\n h2Key: f.toPM(A.Heading2),\n h3Key: f.toPM(A.Heading3),\n h4Key: f.toPM(A.Heading4),\n h5Key: f.toPM(A.Heading5),\n h6Key: f.toPM(A.Heading6),\n headingPlaceholder: (node: Node) =>\n `${i18nPlaceholder('heading')} ${node.attrs[YfmHeadingAttr.Level]}`, // todo: remove attrs import\n ...opts.yfmHeading,\n },\n placeholder: {\n [YfmNoteNode.NoteContent]: () => i18nPlaceholder('note_content'),\n },\n };\n const fullOptions: BehaviorPresetOptions & FullPresetOptions = {\n ...yfmOptions,\n selectionContext: {config: wSelectionMenuConfigByPreset.full, ...opts.selectionContext},\n commandMenu: {actions: wCommandMenuConfigByPreset.full, ...opts.commandMenu},\n emoji: {defs: emojiDefs, ...opts.emoji},\n };\n\n const zeroIgnoreActions = [A.Undo, A.Redo];\n const commonMarkIgnoreActions = zeroIgnoreActions.concat(\n A.Bold,\n A.Italic,\n A.Code,\n A.Link,\n\n A.Text,\n A.Heading1,\n A.Heading2,\n A.Heading3,\n A.Heading4,\n A.Heading5,\n A.Heading6,\n\n A.BulletList,\n A.OrderedList,\n\n A.Quote,\n A.CodeBlock,\n );\n const defaultIgnoreActions = commonMarkIgnoreActions.concat(A.Strike);\n const yfmIgnoreActions = defaultIgnoreActions.concat(\n A.Underline,\n\n A.Note,\n A.Cut,\n );\n const fullIgnoreActions = yfmIgnoreActions.concat();\n\n let ignoreActions;\n\n switch (opts.preset) {\n case 'zero': {\n ignoreActions = zeroIgnoreActions;\n builder.use(BehaviorPreset, zeroOptions).use(ZeroPreset, zeroOptions);\n break;\n }\n case 'commonmark': {\n ignoreActions = commonMarkIgnoreActions;\n builder.use(BehaviorPreset, commonMarkOptions).use(CommonMarkPreset, commonMarkOptions);\n break;\n }\n case 'default': {\n ignoreActions = defaultIgnoreActions;\n builder.use(BehaviorPreset, defaultOptions).use(DefaultPreset, defaultOptions);\n break;\n }\n case 'yfm': {\n ignoreActions = yfmIgnoreActions;\n builder.use(BehaviorPreset, yfmOptions).use(YfmPreset, yfmOptions);\n break;\n }\n default: {\n ignoreActions = fullIgnoreActions;\n builder.use(BehaviorPreset, fullOptions).use(FullPreset, fullOptions);\n break;\n }\n }\n\n const ignoreKeysList = opts.ignoreKeysList?.slice() ?? [];\n ignoreKeysList.push(...DEFAULT_IGNORED_KEYS);\n for (const action of ignoreActions) {\n const key = f.toPM(action);\n if (key) ignoreKeysList.push(key);\n }\n\n builder.use(EditorModeKeymap, {\n onSubmit: opts.onSubmit,\n onCancel: opts.onCancel,\n ignoreKeysList,\n });\n};\n"]}
@@ -1,9 +1,13 @@
1
1
  import '@diplodoc/transform/dist/js/base.js';
2
2
  import '@diplodoc/transform/dist/js/_yfm-only.js';
3
3
  import type { ExtensionAuto } from "../../../core/index.js";
4
+ import { type YfmMods } from "../../../view/components/YfmHtml/YfmStaticView.js";
4
5
  import { type YfmConfigsSpecsOptions } from "./YfmConfigsSpecs/index.js";
5
6
  import '@diplodoc/transform/dist/css/base.css';
6
7
  import '@diplodoc/transform/dist/css/_yfm-only.css';
7
8
  import "./yfm.css";
8
- export type YfmConfigsOptions = YfmConfigsSpecsOptions & {};
9
+ export type YfmConfigsOptions = YfmConfigsSpecsOptions & {
10
+ mods?: YfmMods;
11
+ mix?: string;
12
+ };
9
13
  export declare const YfmConfigs: ExtensionAuto<YfmConfigsOptions>;
@@ -1,6 +1,7 @@
1
1
  import '@diplodoc/transform/dist/js/base.js';
2
2
  import '@diplodoc/transform/dist/js/_yfm-only.js'; // eslint-disable-line import/order
3
3
  import { Plugin } from 'prosemirror-state';
4
+ import { b } from "../../../view/components/YfmHtml/YfmStaticView.js";
4
5
  import { YfmConfigsSpecs } from "./YfmConfigsSpecs/index.js";
5
6
  import '@diplodoc/transform/dist/css/base.css';
6
7
  import '@diplodoc/transform/dist/css/_yfm-only.css'; // eslint-disable-line import/order
@@ -8,10 +9,15 @@ import "./yfm.css"; // eslint-disable-line import/order
8
9
  export const YfmConfigs = (builder, opts) => {
9
10
  // apply md-it-attrs plugin and ignore yfm lint token
10
11
  builder.use(YfmConfigsSpecs, opts);
12
+ const { mix } = opts;
13
+ const mods = { ...opts.mods };
14
+ // by default mods['no-list-reset']===true
15
+ if (mods['no-list-reset'] !== false)
16
+ mods['no-list-reset'] = true;
11
17
  builder.addPlugin(() => new Plugin({
12
18
  props: {
13
19
  attributes: {
14
- class: 'yfm yfm_no-list-reset yfm-editor',
20
+ class: `${b(mods, mix)} yfm-editor`,
15
21
  },
16
22
  },
17
23
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"../../../../../src","sources":["extensions/yfm/YfmConfigs/index.ts"],"names":[],"mappings":"AAAA,OAAO,qCAAqC,CAAC;AAC7C,OAAO,0CAA0C,CAAC,CAAC,mCAAmC;AACtF,OAAO,EAAC,MAAM,EAAC,MAAM,mBAAmB,CAAC;AAIzC,OAAO,EAAC,eAAe,EAA8B,mCAA0B;AAE/E,OAAO,uCAAuC,CAAC;AAC/C,OAAO,4CAA4C,CAAC,CAAC,mCAAmC;AACxF,mBAAoB,CAAC,mCAAmC;AAIxD,MAAM,CAAC,MAAM,UAAU,GAAqC,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE;IAC1E,qDAAqD;IACrD,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;IAEnC,OAAO,CAAC,SAAS,CACb,GAAG,EAAE,CACD,IAAI,MAAM,CAAC;QACP,KAAK,EAAE;YACH,UAAU,EAAE;gBACR,KAAK,EAAE,kCAAkC;aAC5C;SACJ;KACJ,CAAC,CACT,CAAC;AACN,CAAC,CAAC","sourcesContent":["import '@diplodoc/transform/dist/js/base.js';\nimport '@diplodoc/transform/dist/js/_yfm-only.js'; // eslint-disable-line import/order\nimport {Plugin} from 'prosemirror-state';\n\nimport type {ExtensionAuto} from '../../../core';\n\nimport {YfmConfigsSpecs, type YfmConfigsSpecsOptions} from './YfmConfigsSpecs';\n\nimport '@diplodoc/transform/dist/css/base.css';\nimport '@diplodoc/transform/dist/css/_yfm-only.css'; // eslint-disable-line import/order\nimport './yfm.scss'; // eslint-disable-line import/order\n\nexport type YfmConfigsOptions = YfmConfigsSpecsOptions & {};\n\nexport const YfmConfigs: ExtensionAuto<YfmConfigsOptions> = (builder, opts) => {\n // apply md-it-attrs plugin and ignore yfm lint token\n builder.use(YfmConfigsSpecs, opts);\n\n builder.addPlugin(\n () =>\n new Plugin({\n props: {\n attributes: {\n class: 'yfm yfm_no-list-reset yfm-editor',\n },\n },\n }),\n );\n};\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"../../../../../src","sources":["extensions/yfm/YfmConfigs/index.ts"],"names":[],"mappings":"AAAA,OAAO,qCAAqC,CAAC;AAC7C,OAAO,0CAA0C,CAAC,CAAC,mCAAmC;AACtF,OAAO,EAAC,MAAM,EAAC,MAAM,mBAAmB,CAAC;AAGzC,OAAO,EAAe,CAAC,EAAC,0DAAkD;AAE1E,OAAO,EAAC,eAAe,EAA8B,mCAA0B;AAE/E,OAAO,uCAAuC,CAAC;AAC/C,OAAO,4CAA4C,CAAC,CAAC,mCAAmC;AACxF,mBAAoB,CAAC,mCAAmC;AAOxD,MAAM,CAAC,MAAM,UAAU,GAAqC,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE;IAC1E,qDAAqD;IACrD,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;IAEnC,MAAM,EAAC,GAAG,EAAC,GAAG,IAAI,CAAC;IACnB,MAAM,IAAI,GAAG,EAAC,GAAG,IAAI,CAAC,IAAI,EAAC,CAAC;IAC5B,0CAA0C;IAC1C,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,KAAK;QAAE,IAAI,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC;IAElE,OAAO,CAAC,SAAS,CACb,GAAG,EAAE,CACD,IAAI,MAAM,CAAC;QACP,KAAK,EAAE;YACH,UAAU,EAAE;gBACR,KAAK,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,aAAa;aACtC;SACJ;KACJ,CAAC,CACT,CAAC;AACN,CAAC,CAAC","sourcesContent":["import '@diplodoc/transform/dist/js/base.js';\nimport '@diplodoc/transform/dist/js/_yfm-only.js'; // eslint-disable-line import/order\nimport {Plugin} from 'prosemirror-state';\n\nimport type {ExtensionAuto} from '#core';\nimport {type YfmMods, b} from 'src/view/components/YfmHtml/YfmStaticView';\n\nimport {YfmConfigsSpecs, type YfmConfigsSpecsOptions} from './YfmConfigsSpecs';\n\nimport '@diplodoc/transform/dist/css/base.css';\nimport '@diplodoc/transform/dist/css/_yfm-only.css'; // eslint-disable-line import/order\nimport './yfm.scss'; // eslint-disable-line import/order\n\nexport type YfmConfigsOptions = YfmConfigsSpecsOptions & {\n mods?: YfmMods;\n mix?: string;\n};\n\nexport const YfmConfigs: ExtensionAuto<YfmConfigsOptions> = (builder, opts) => {\n // apply md-it-attrs plugin and ignore yfm lint token\n builder.use(YfmConfigsSpecs, opts);\n\n const {mix} = opts;\n const mods = {...opts.mods};\n // by default mods['no-list-reset']===true\n if (mods['no-list-reset'] !== false) mods['no-list-reset'] = true;\n\n builder.addPlugin(\n () =>\n new Plugin({\n props: {\n attributes: {\n class: `${b(mods, mix)} yfm-editor`,\n },\n },\n }),\n );\n};\n"]}
@@ -3,7 +3,21 @@ import { type YfmTableSpecsOptions } from "./YfmTableSpecs/index.js";
3
3
  declare const action = "createYfmTable";
4
4
  export { convertToYfmTable } from "./commands/convert-table.js";
5
5
  export { YfmTableNode, yfmTableType, yfmTableBodyType, yfmTableRowType, yfmTableCellType, } from "./YfmTableSpecs/index.js";
6
- export type YfmTableOptions = YfmTableSpecsOptions & {};
6
+ export type YfmTableOptions = YfmTableSpecsOptions & {
7
+ /**
8
+ * Enables floating controls for table.
9
+ *
10
+ * @default true
11
+ */
12
+ controls?: boolean;
13
+ /**
14
+ * Enables drag-d-drop rows and columns in table.
15
+ * The `controls` property must also be `true`.
16
+ *
17
+ * @default true
18
+ */
19
+ dnd?: boolean;
20
+ };
7
21
  export declare const YfmTable: ExtensionWithOptions<YfmTableOptions>;
8
22
  declare global {
9
23
  namespace WysiwygEditor {
@@ -3,7 +3,7 @@ import { YfmTableSpecs } from "./YfmTableSpecs/index.js";
3
3
  import { createYfmTable } from "./actions.js";
4
4
  import { backspaceCommand } from "./commands/backspace.js";
5
5
  import { goToNextRow } from "./commands/goToNextRow.js";
6
- import { yfmTableControlsPlugin } from "./plugins/YfmTableControls/buttons.js";
6
+ import { yfmTableControlsPlugins } from "./plugins/YfmTableControls/index.js";
7
7
  import { yfmTableTransformPastedPlugin } from "./plugins/yfmTableTransformPastedPlugin.js";
8
8
  const action = 'createYfmTable';
9
9
  export { convertToYfmTable } from "./commands/convert-table.js";
@@ -19,6 +19,8 @@ export const YfmTable = (builder, options) => {
19
19
  }));
20
20
  builder.addAction(action, () => createYfmTable);
21
21
  builder.addPlugin(yfmTableTransformPastedPlugin);
22
- builder.addPlugin(yfmTableControlsPlugin);
22
+ if (options.controls !== false) {
23
+ builder.addPlugin(yfmTableControlsPlugins({ dndEnabled: options.dnd !== false }));
24
+ }
23
25
  };
24
26
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"../../../../../src","sources":["extensions/yfm/YfmTable/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,YAAY,EAAC,sCAA6B;AAElD,OAAO,EAAC,aAAa,EAA4B,iCAAwB;AACzE,OAAO,EAAC,cAAc,EAAC,qBAAkB;AACzC,OAAO,EAAC,gBAAgB,EAAC,gCAA6B;AACtD,OAAO,EAAC,WAAW,EAAC,kCAA+B;AACnD,OAAO,EAAC,sBAAsB,EAAC,8CAA2C;AAC1E,OAAO,EAAC,6BAA6B,EAAC,mDAAgD;AAEtF,MAAM,MAAM,GAAG,gBAAgB,CAAC;AAEhC,OAAO,EAAC,iBAAiB,EAAC,oCAAiC;AAC3D,OAAO,EACH,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,gBAAgB,GACnB,iCAAwB;AAIzB,MAAM,CAAC,MAAM,QAAQ,GAA0C,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;IAChF,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IAEpC,OAAO,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC;QACrB,GAAG,EAAE,YAAY,CAAC,MAAM,CAAC;QACzB,WAAW,EAAE,YAAY,CAAC,MAAM,CAAC;QACjC,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC;QAC9B,OAAO,EAAE,WAAW,CAAC,IAAI,CAAC;QAC1B,SAAS,EAAE,gBAAgB;KAC9B,CAAC,CAAC,CAAC;IACJ,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,CAAC;IAChD,OAAO,CAAC,SAAS,CAAC,6BAA6B,CAAC,CAAC;IACjD,OAAO,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;AAC9C,CAAC,CAAC","sourcesContent":["import type {Action, ExtensionWithOptions} from '../../../core';\nimport {goToNextCell} from '../../../table-utils';\n\nimport {YfmTableSpecs, type YfmTableSpecsOptions} from './YfmTableSpecs';\nimport {createYfmTable} from './actions';\nimport {backspaceCommand} from './commands/backspace';\nimport {goToNextRow} from './commands/goToNextRow';\nimport {yfmTableControlsPlugin} from './plugins/YfmTableControls/buttons';\nimport {yfmTableTransformPastedPlugin} from './plugins/yfmTableTransformPastedPlugin';\n\nconst action = 'createYfmTable';\n\nexport {convertToYfmTable} from './commands/convert-table';\nexport {\n YfmTableNode,\n yfmTableType,\n yfmTableBodyType,\n yfmTableRowType,\n yfmTableCellType,\n} from './YfmTableSpecs';\n\nexport type YfmTableOptions = YfmTableSpecsOptions & {};\n\nexport const YfmTable: ExtensionWithOptions<YfmTableOptions> = (builder, options) => {\n builder.use(YfmTableSpecs, options);\n\n builder.addKeymap(() => ({\n Tab: goToNextCell('next'),\n 'Shift-Tab': goToNextCell('prev'),\n ArrowDown: goToNextRow('down'),\n ArrowUp: goToNextRow('up'),\n Backspace: backspaceCommand,\n }));\n builder.addAction(action, () => createYfmTable);\n builder.addPlugin(yfmTableTransformPastedPlugin);\n builder.addPlugin(yfmTableControlsPlugin);\n};\n\ndeclare global {\n namespace WysiwygEditor {\n interface Actions {\n [action]: Action;\n }\n }\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"../../../../../src","sources":["extensions/yfm/YfmTable/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,YAAY,EAAC,sCAA6B;AAElD,OAAO,EAAC,aAAa,EAA4B,iCAAwB;AACzE,OAAO,EAAC,cAAc,EAAC,qBAAkB;AACzC,OAAO,EAAC,gBAAgB,EAAC,gCAA6B;AACtD,OAAO,EAAC,WAAW,EAAC,kCAA+B;AACnD,OAAO,EAAC,uBAAuB,EAAC,4CAAmC;AACnE,OAAO,EAAC,6BAA6B,EAAC,mDAAgD;AAEtF,MAAM,MAAM,GAAG,gBAAgB,CAAC;AAEhC,OAAO,EAAC,iBAAiB,EAAC,oCAAiC;AAC3D,OAAO,EACH,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,gBAAgB,GACnB,iCAAwB;AAkBzB,MAAM,CAAC,MAAM,QAAQ,GAA0C,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;IAChF,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IAEpC,OAAO,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC;QACrB,GAAG,EAAE,YAAY,CAAC,MAAM,CAAC;QACzB,WAAW,EAAE,YAAY,CAAC,MAAM,CAAC;QACjC,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC;QAC9B,OAAO,EAAE,WAAW,CAAC,IAAI,CAAC;QAC1B,SAAS,EAAE,gBAAgB;KAC9B,CAAC,CAAC,CAAC;IACJ,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,CAAC;IAChD,OAAO,CAAC,SAAS,CAAC,6BAA6B,CAAC,CAAC;IAEjD,IAAI,OAAO,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;QAC7B,OAAO,CAAC,SAAS,CAAC,uBAAuB,CAAC,EAAC,UAAU,EAAE,OAAO,CAAC,GAAG,KAAK,KAAK,EAAC,CAAC,CAAC,CAAC;IACpF,CAAC;AACL,CAAC,CAAC","sourcesContent":["import type {Action, ExtensionWithOptions} from '../../../core';\nimport {goToNextCell} from '../../../table-utils';\n\nimport {YfmTableSpecs, type YfmTableSpecsOptions} from './YfmTableSpecs';\nimport {createYfmTable} from './actions';\nimport {backspaceCommand} from './commands/backspace';\nimport {goToNextRow} from './commands/goToNextRow';\nimport {yfmTableControlsPlugins} from './plugins/YfmTableControls';\nimport {yfmTableTransformPastedPlugin} from './plugins/yfmTableTransformPastedPlugin';\n\nconst action = 'createYfmTable';\n\nexport {convertToYfmTable} from './commands/convert-table';\nexport {\n YfmTableNode,\n yfmTableType,\n yfmTableBodyType,\n yfmTableRowType,\n yfmTableCellType,\n} from './YfmTableSpecs';\n\nexport type YfmTableOptions = YfmTableSpecsOptions & {\n /**\n * Enables floating controls for table.\n *\n * @default true\n */\n controls?: boolean;\n /**\n * Enables drag-d-drop rows and columns in table.\n * The `controls` property must also be `true`.\n *\n * @default true\n */\n dnd?: boolean;\n};\n\nexport const YfmTable: ExtensionWithOptions<YfmTableOptions> = (builder, options) => {\n builder.use(YfmTableSpecs, options);\n\n builder.addKeymap(() => ({\n Tab: goToNextCell('next'),\n 'Shift-Tab': goToNextCell('prev'),\n ArrowDown: goToNextRow('down'),\n ArrowUp: goToNextRow('up'),\n Backspace: backspaceCommand,\n }));\n builder.addAction(action, () => createYfmTable);\n builder.addPlugin(yfmTableTransformPastedPlugin);\n\n if (options.controls !== false) {\n builder.addPlugin(yfmTableControlsPlugins({dndEnabled: options.dnd !== false}));\n }\n};\n\ndeclare global {\n namespace WysiwygEditor {\n interface Actions {\n [action]: Action;\n }\n }\n}\n"]}
@@ -1 +1,7 @@
1
- export declare const controlActions: Record<"deleteTable" | "deleteRow" | "deleteColumn" | "appendColumn" | "appendRow", import("../../../../../index.js").ActionSpec>;
1
+ import type { CommandWithAttrs } from "../../../../../core/index.js";
2
+ import type { Node } from "../../../../../pm/model.js";
3
+ export declare const removeYfmTable: CommandWithAttrs<{
4
+ tablePos: number;
5
+ tableNode: Node;
6
+ }>;
7
+ export declare const controlActions: Record<"deleteTable" | "deleteRow" | "deleteColumn" | "appendColumn" | "appendRow", import("../../../../../core/index.js").ActionSpec>;
@@ -1,19 +1,15 @@
1
1
  import { appendColumn, appendRow, removeColumn, removeRow } from "../../../../../table-utils/index.js";
2
2
  import { defineActions } from "../../../../../utils/actions.js";
3
3
  import { removeNode } from "../../../../../utils/remove-node.js";
4
- import { tableControlsPluginKey } from "./buttons.js";
5
- const removeYfmTable = (state, dispatch, _, attrs) => {
4
+ export const removeYfmTable = (state, dispatch, _, attrs) => {
6
5
  if (!attrs)
7
6
  return false;
8
7
  const { tablePos, tableNode } = attrs;
9
8
  if (dispatch) {
10
- const tr = state.tr;
11
- // After removing node plugin state doesn't change and it crashes
12
- tr.setMeta(tableControlsPluginKey, null);
13
9
  removeNode({
14
10
  node: tableNode,
15
11
  pos: tablePos,
16
- tr: tr,
12
+ tr: state.tr,
17
13
  dispatch,
18
14
  });
19
15
  }
@@ -1 +1 @@
1
- {"version":3,"file":"actions.js","sourceRoot":"../../../../../../../src","sources":["extensions/yfm/YfmTable/plugins/YfmTableControls/actions.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAC,4CAAmC;AAC5F,OAAO,EAAC,aAAa,EAAC,wCAAqC;AAC3D,OAAO,EAAC,UAAU,EAAC,4CAAyC;AAE5D,OAAO,EAAC,sBAAsB,EAAC,qBAAkB;AAEjD,MAAM,cAAc,GAGf,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE;IAC/B,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IACzB,MAAM,EAAC,QAAQ,EAAE,SAAS,EAAC,GAAG,KAAK,CAAC;IAEpC,IAAI,QAAQ,EAAE,CAAC;QACX,MAAM,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;QACpB,iEAAiE;QACjE,EAAE,CAAC,OAAO,CAAC,sBAAsB,EAAE,IAAI,CAAC,CAAC;QACzC,UAAU,CAAC;YACP,IAAI,EAAE,SAAS;YACf,GAAG,EAAE,QAAQ;YACb,EAAE,EAAE,EAAE;YACN,QAAQ;SACX,CAAC,CAAC;IACP,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC,CAAC;AACF,MAAM,CAAC,MAAM,cAAc,GAAG,aAAa,CAAC;IACxC,SAAS,EAAE;QACP,QAAQ,EAAE,SAAS;QACnB,GAAG,EAAE,SAAS;KACjB;IACD,YAAY,EAAE;QACV,QAAQ,EAAE,YAAY;QACtB,GAAG,EAAE,YAAY;KACpB;IACD,YAAY,EAAE;QACV,QAAQ,EAAE,YAAY;QACtB,GAAG,EAAE,YAAY;KACpB;IACD,SAAS,EAAE;QACP,QAAQ,EAAE,SAAS;QACnB,GAAG,EAAE,SAAS;KACjB;IACD,WAAW,EAAE;QACT,QAAQ,EAAE,cAAc;QACxB,GAAG,EAAE,cAAc;KACtB;CACJ,CAAC,CAAC","sourcesContent":["import type {Node} from 'prosemirror-model';\n\nimport type {CommandWithAttrs} from '../../../../../core';\nimport {appendColumn, appendRow, removeColumn, removeRow} from '../../../../../table-utils';\nimport {defineActions} from '../../../../../utils/actions';\nimport {removeNode} from '../../../../../utils/remove-node';\n\nimport {tableControlsPluginKey} from './buttons';\n\nconst removeYfmTable: CommandWithAttrs<{\n tablePos: number;\n tableNode: Node;\n}> = (state, dispatch, _, attrs) => {\n if (!attrs) return false;\n const {tablePos, tableNode} = attrs;\n\n if (dispatch) {\n const tr = state.tr;\n // After removing node plugin state doesn't change and it crashes\n tr.setMeta(tableControlsPluginKey, null);\n removeNode({\n node: tableNode,\n pos: tablePos,\n tr: tr,\n dispatch,\n });\n }\n\n return true;\n};\nexport const controlActions = defineActions({\n deleteRow: {\n isEnable: removeRow,\n run: removeRow,\n },\n deleteColumn: {\n isEnable: removeColumn,\n run: removeColumn,\n },\n appendColumn: {\n isEnable: appendColumn,\n run: appendColumn,\n },\n appendRow: {\n isEnable: appendRow,\n run: appendRow,\n },\n deleteTable: {\n isEnable: removeYfmTable,\n run: removeYfmTable,\n },\n});\n"]}
1
+ {"version":3,"file":"actions.js","sourceRoot":"../../../../../../../src","sources":["extensions/yfm/YfmTable/plugins/YfmTableControls/actions.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAC,4CAAwB;AACjF,OAAO,EAAC,aAAa,EAAC,wCAA0B;AAChD,OAAO,EAAC,UAAU,EAAC,4CAA8B;AAEjD,MAAM,CAAC,MAAM,cAAc,GAGtB,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE;IAC/B,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IACzB,MAAM,EAAC,QAAQ,EAAE,SAAS,EAAC,GAAG,KAAK,CAAC;IAEpC,IAAI,QAAQ,EAAE,CAAC;QACX,UAAU,CAAC;YACP,IAAI,EAAE,SAAS;YACf,GAAG,EAAE,QAAQ;YACb,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,QAAQ;SACX,CAAC,CAAC;IACP,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC,CAAC;AACF,MAAM,CAAC,MAAM,cAAc,GAAG,aAAa,CAAC;IACxC,SAAS,EAAE;QACP,QAAQ,EAAE,SAAS;QACnB,GAAG,EAAE,SAAS;KACjB;IACD,YAAY,EAAE;QACV,QAAQ,EAAE,YAAY;QACtB,GAAG,EAAE,YAAY;KACpB;IACD,YAAY,EAAE;QACV,QAAQ,EAAE,YAAY;QACtB,GAAG,EAAE,YAAY;KACpB;IACD,SAAS,EAAE;QACP,QAAQ,EAAE,SAAS;QACnB,GAAG,EAAE,SAAS;KACjB;IACD,WAAW,EAAE;QACT,QAAQ,EAAE,cAAc;QACxB,GAAG,EAAE,cAAc;KACtB;CACJ,CAAC,CAAC","sourcesContent":["import type {CommandWithAttrs} from '#core';\nimport type {Node} from '#pm/model';\nimport {appendColumn, appendRow, removeColumn, removeRow} from 'src/table-utils';\nimport {defineActions} from 'src/utils/actions';\nimport {removeNode} from 'src/utils/remove-node';\n\nexport const removeYfmTable: CommandWithAttrs<{\n tablePos: number;\n tableNode: Node;\n}> = (state, dispatch, _, attrs) => {\n if (!attrs) return false;\n const {tablePos, tableNode} = attrs;\n\n if (dispatch) {\n removeNode({\n node: tableNode,\n pos: tablePos,\n tr: state.tr,\n dispatch,\n });\n }\n\n return true;\n};\nexport const controlActions = defineActions({\n deleteRow: {\n isEnable: removeRow,\n run: removeRow,\n },\n deleteColumn: {\n isEnable: removeColumn,\n run: removeColumn,\n },\n appendColumn: {\n isEnable: appendColumn,\n run: appendColumn,\n },\n appendRow: {\n isEnable: appendRow,\n run: appendRow,\n },\n deleteTable: {\n isEnable: removeYfmTable,\n run: removeYfmTable,\n },\n});\n"]}
@@ -0,0 +1,7 @@
1
+ import type { Command } from "../../../../../../pm/state.js";
2
+ export type ClearCellsParams = {
3
+ tablePos: number;
4
+ rows?: number[];
5
+ cols?: number[];
6
+ };
7
+ export declare const clearCells: (params: ClearCellsParams) => Command;
@@ -0,0 +1,37 @@
1
+ import { pType } from "../../../../../base/specs.js";
2
+ import { TableDesc } from "../../../../../../table-utils/table-desc.js";
3
+ export const clearCells = (params) => {
4
+ return (state, dispatch) => {
5
+ const table = state.doc.nodeAt(params.tablePos);
6
+ const tableDesc = table && TableDesc.create(table)?.bind(params.tablePos);
7
+ if (!tableDesc)
8
+ return false;
9
+ if (!dispatch)
10
+ return true;
11
+ const { tr } = state;
12
+ const paragraph = pType(state.schema);
13
+ const clear = (cells) => {
14
+ for (const pos of cells) {
15
+ if (pos.type !== 'real')
16
+ continue;
17
+ tr.replaceWith(tr.mapping.map(pos.from + 1), tr.mapping.map(pos.to - 1), paragraph.create());
18
+ }
19
+ };
20
+ if (params.rows) {
21
+ for (const rowIdx of params.rows) {
22
+ const cellsPos = tableDesc.getPosForRowCells(rowIdx);
23
+ clear(cellsPos);
24
+ }
25
+ }
26
+ if (params.cols) {
27
+ for (const colIdx of params.cols) {
28
+ const cellsPos = tableDesc.getPosForColumn(colIdx);
29
+ clear(cellsPos);
30
+ }
31
+ }
32
+ if (tr.docChanged)
33
+ dispatch(tr);
34
+ return true;
35
+ };
36
+ };
37
+ //# sourceMappingURL=clear-cells.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clear-cells.js","sourceRoot":"../../../../../../../../src","sources":["extensions/yfm/YfmTable/plugins/YfmTableControls/commands/clear-cells.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,KAAK,EAAC,qCAAkC;AAChD,OAAO,EAAe,SAAS,EAAC,oDAAmC;AAQnE,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,MAAwB,EAAW,EAAE;IAC5D,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;QACvB,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAChD,MAAM,SAAS,GAAG,KAAK,IAAI,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC1E,IAAI,CAAC,SAAS;YAAE,OAAO,KAAK,CAAC;QAE7B,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAC;QAE3B,MAAM,EAAC,EAAE,EAAC,GAAG,KAAK,CAAC;QACnB,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAEtC,MAAM,KAAK,GAAG,CAAC,KAAgB,EAAE,EAAE;YAC/B,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;gBACtB,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM;oBAAE,SAAS;gBAClC,EAAE,CAAC,WAAW,CACV,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,EAC5B,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,EAC1B,SAAS,CAAC,MAAM,EAAE,CACrB,CAAC;YACN,CAAC;QACL,CAAC,CAAC;QAEF,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YACd,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;gBAC/B,MAAM,QAAQ,GAAG,SAAS,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;gBACrD,KAAK,CAAC,QAAQ,CAAC,CAAC;YACpB,CAAC;QACL,CAAC;QACD,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YACd,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;gBAC/B,MAAM,QAAQ,GAAG,SAAS,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;gBACnD,KAAK,CAAC,QAAQ,CAAC,CAAC;YACpB,CAAC;QACL,CAAC;QAED,IAAI,EAAE,CAAC,UAAU;YAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;QAEhC,OAAO,IAAI,CAAC;IAChB,CAAC,CAAC;AACN,CAAC,CAAC","sourcesContent":["import type {Command} from '#pm/state';\nimport {pType} from 'src/extensions/base/specs';\nimport {type CellPos, TableDesc} from 'src/table-utils/table-desc';\n\nexport type ClearCellsParams = {\n tablePos: number;\n rows?: number[];\n cols?: number[];\n};\n\nexport const clearCells = (params: ClearCellsParams): Command => {\n return (state, dispatch) => {\n const table = state.doc.nodeAt(params.tablePos);\n const tableDesc = table && TableDesc.create(table)?.bind(params.tablePos);\n if (!tableDesc) return false;\n\n if (!dispatch) return true;\n\n const {tr} = state;\n const paragraph = pType(state.schema);\n\n const clear = (cells: CellPos[]) => {\n for (const pos of cells) {\n if (pos.type !== 'real') continue;\n tr.replaceWith(\n tr.mapping.map(pos.from + 1),\n tr.mapping.map(pos.to - 1),\n paragraph.create(),\n );\n }\n };\n\n if (params.rows) {\n for (const rowIdx of params.rows) {\n const cellsPos = tableDesc.getPosForRowCells(rowIdx);\n clear(cellsPos);\n }\n }\n if (params.cols) {\n for (const colIdx of params.cols) {\n const cellsPos = tableDesc.getPosForColumn(colIdx);\n clear(cellsPos);\n }\n }\n\n if (tr.docChanged) dispatch(tr);\n\n return true;\n };\n};\n"]}
@@ -0,0 +1,6 @@
1
+ import { type Command } from "../../../../../../pm/state.js";
2
+ export type InsertEmptyColumnParams = {
3
+ tablePos: number;
4
+ colIndex: number;
5
+ };
6
+ export declare const insertEmptyColumn: (params: InsertEmptyColumnParams) => Command;
@@ -0,0 +1,55 @@
1
+ import { TextSelection } from "../../../../../../pm/state.js";
2
+ import { isEqual, uniqWith } from "../../../../../../lodash.js";
3
+ import { TableDesc, } from "../../../../../../table-utils/table-desc.js";
4
+ import { yfmTableCellType } from "../../../YfmTableSpecs/index.js";
5
+ export const insertEmptyColumn = (params) => {
6
+ return (state, dispatch) => {
7
+ const table = state.doc.nodeAt(params.tablePos);
8
+ const tableDesc = table && TableDesc.create(table)?.bind(params.tablePos);
9
+ if (!tableDesc)
10
+ return false;
11
+ const colIdx = Math.min(Math.max(params.colIndex, 0), tableDesc.cols);
12
+ if (dispatch) {
13
+ const posToInsert = [];
14
+ const incrementColspan = [];
15
+ if (colIdx === 0) {
16
+ posToInsert.push(...tableDesc.getPosForColumn(0).map((pos) => getCellPos(pos, 'start')));
17
+ }
18
+ else if (colIdx === tableDesc.cols) {
19
+ posToInsert.push(...tableDesc
20
+ .getPosForColumn(tableDesc.cols - 1)
21
+ .map((pos) => getCellPos(pos, 'end')));
22
+ }
23
+ else {
24
+ for (let rowIdx = 0; rowIdx < tableDesc.rows; rowIdx++) {
25
+ const cell = tableDesc.base.rowsDesc[rowIdx].cells[colIdx];
26
+ if (cell.type === 'virtual' && cell.colspan && cell.colspan[1] !== colIdx) {
27
+ incrementColspan.push(cell.colspan);
28
+ }
29
+ else {
30
+ posToInsert.push(getCellPos(tableDesc.getPosForCell(rowIdx, colIdx), 'start'));
31
+ }
32
+ }
33
+ }
34
+ const { tr } = state;
35
+ const td = yfmTableCellType(state.schema);
36
+ for (const [rowIdx, colIdx] of uniqWith(incrementColspan, isEqual)) {
37
+ const cell = tableDesc.base.rowsDesc[rowIdx].cells[colIdx];
38
+ const cellPos = tableDesc.getPosForCell(rowIdx, colIdx);
39
+ tr.setNodeAttribute(cellPos.from, 'colspan', cell.colspan + 1);
40
+ }
41
+ for (const pos of posToInsert) {
42
+ tr.insert(tr.mapping.map(pos), td.createAndFill());
43
+ }
44
+ tr.setSelection(TextSelection.near(tr.doc.resolve(posToInsert[0]), 1));
45
+ dispatch(tr.scrollIntoView());
46
+ }
47
+ return true;
48
+ };
49
+ };
50
+ function getCellPos(pos, dir) {
51
+ if (pos.type === 'virtual')
52
+ return pos.closestPos;
53
+ return dir === 'start' ? pos.from : pos.to;
54
+ }
55
+ //# sourceMappingURL=insert-empty-column.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"insert-empty-column.js","sourceRoot":"../../../../../../../../src","sources":["extensions/yfm/YfmTable/plugins/YfmTableControls/commands/insert-empty-column.ts"],"names":[],"mappings":"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","sourcesContent":["import {type Command, TextSelection} from '#pm/state';\nimport {isEqual, uniqWith} from 'src/lodash';\nimport {\n type CellPos,\n type RealCellPos,\n type TableCellRealDesc,\n TableDesc,\n} from 'src/table-utils/table-desc';\n\nimport {yfmTableCellType} from '../../../YfmTableSpecs';\n\nexport type InsertEmptyColumnParams = {\n tablePos: number;\n colIndex: number;\n};\n\nexport const insertEmptyColumn = (params: InsertEmptyColumnParams): Command => {\n return (state, dispatch) => {\n const table = state.doc.nodeAt(params.tablePos);\n const tableDesc = table && TableDesc.create(table)?.bind(params.tablePos);\n if (!tableDesc) return false;\n\n const colIdx = Math.min(Math.max(params.colIndex, 0), tableDesc.cols);\n\n if (dispatch) {\n const posToInsert: number[] = [];\n const incrementColspan: [number, number][] = [];\n\n if (colIdx === 0) {\n posToInsert.push(\n ...tableDesc.getPosForColumn(0).map((pos) => getCellPos(pos, 'start')),\n );\n } else if (colIdx === tableDesc.cols) {\n posToInsert.push(\n ...tableDesc\n .getPosForColumn(tableDesc.cols - 1)\n .map((pos) => getCellPos(pos, 'end')),\n );\n } else {\n for (let rowIdx = 0; rowIdx < tableDesc.rows; rowIdx++) {\n const cell = tableDesc.base.rowsDesc[rowIdx].cells[colIdx];\n if (cell.type === 'virtual' && cell.colspan && cell.colspan[1] !== colIdx) {\n incrementColspan.push(cell.colspan);\n } else {\n posToInsert.push(\n getCellPos(tableDesc.getPosForCell(rowIdx, colIdx), 'start'),\n );\n }\n }\n }\n\n const {tr} = state;\n const td = yfmTableCellType(state.schema);\n for (const [rowIdx, colIdx] of uniqWith(incrementColspan, isEqual)) {\n const cell = tableDesc.base.rowsDesc[rowIdx].cells[colIdx] as TableCellRealDesc;\n const cellPos = tableDesc.getPosForCell(rowIdx, colIdx) as RealCellPos;\n tr.setNodeAttribute(cellPos.from, 'colspan', cell.colspan! + 1);\n }\n for (const pos of posToInsert) {\n tr.insert(tr.mapping.map(pos), td.createAndFill()!);\n }\n tr.setSelection(TextSelection.near(tr.doc.resolve(posToInsert[0]), 1));\n dispatch(tr.scrollIntoView());\n }\n\n return true;\n };\n};\n\nfunction getCellPos(pos: CellPos, dir: 'start' | 'end'): number {\n if (pos.type === 'virtual') return pos.closestPos;\n return dir === 'start' ? pos.from : pos.to;\n}\n"]}
@@ -0,0 +1,6 @@
1
+ import { type Command } from "../../../../../../pm/state.js";
2
+ export type InsertEmptyRowParams = {
3
+ tablePos: number;
4
+ rowIndex: number;
5
+ };
6
+ export declare const insertEmptyRow: (params: InsertEmptyRowParams) => Command;
@@ -0,0 +1,50 @@
1
+ import { TextSelection } from "../../../../../../pm/state.js";
2
+ import { isEqual, range, uniqWith } from "../../../../../../lodash.js";
3
+ import { TableDesc } from "../../../../../../table-utils/table-desc.js";
4
+ import { yfmTableCellType, yfmTableRowType } from "../../../YfmTableSpecs/index.js";
5
+ export const insertEmptyRow = (params) => {
6
+ return (state, dispatch) => {
7
+ const table = state.doc.nodeAt(params.tablePos);
8
+ const tableDesc = table && TableDesc.create(table)?.bind(params.tablePos);
9
+ if (!tableDesc)
10
+ return false;
11
+ const rowIdx = Math.min(Math.max(params.rowIndex, 0), tableDesc.rows);
12
+ if (dispatch) {
13
+ let posToInsert;
14
+ let newCellsCount = tableDesc.cols;
15
+ const incrementRowspan = [];
16
+ if (rowIdx === 0 || rowIdx === tableDesc.rows) {
17
+ posToInsert =
18
+ rowIdx === 0
19
+ ? tableDesc.getPosForRow(0).from
20
+ : tableDesc.getPosForRow(tableDesc.rows - 1).to;
21
+ }
22
+ else {
23
+ posToInsert = tableDesc.getPosForRow(rowIdx).from;
24
+ for (let colIdx = 0; colIdx < tableDesc.cols; colIdx++) {
25
+ const cell = tableDesc.base.rowsDesc[rowIdx].cells[colIdx];
26
+ if (cell.type === 'virtual' && cell.rowspan) {
27
+ newCellsCount--;
28
+ incrementRowspan.push(cell.rowspan);
29
+ }
30
+ }
31
+ }
32
+ const { tr } = state;
33
+ for (const [rowIdx, colIdx] of uniqWith(incrementRowspan, isEqual)) {
34
+ const cell = tableDesc.base.rowsDesc[rowIdx].cells[colIdx];
35
+ const cellPos = tableDesc.getPosForCell(rowIdx, colIdx);
36
+ tr.setNodeAttribute(cellPos.from, 'rowspan', cell.rowspan + 1);
37
+ }
38
+ tr.insert(posToInsert, createSimpleRow(state.schema, newCellsCount));
39
+ tr.setSelection(TextSelection.near(tr.doc.resolve(posToInsert), 1));
40
+ dispatch(tr.scrollIntoView());
41
+ }
42
+ return true;
43
+ };
44
+ };
45
+ const createSimpleRow = (schema, cols) => {
46
+ const tr = yfmTableRowType(schema);
47
+ const td = yfmTableCellType(schema);
48
+ return tr.create(null, range(0, cols).map(() => td.createAndFill()));
49
+ };
50
+ //# sourceMappingURL=insert-empty-row.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"insert-empty-row.js","sourceRoot":"../../../../../../../../src","sources":["extensions/yfm/YfmTable/plugins/YfmTableControls/commands/insert-empty-row.ts"],"names":[],"mappings":"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","sourcesContent":["import type {Schema} from '#pm/model';\nimport {type Command, TextSelection} from '#pm/state';\nimport {isEqual, range, uniqWith} from 'src/lodash';\nimport {type RealCellPos, type TableCellRealDesc, TableDesc} from 'src/table-utils/table-desc';\n\nimport {yfmTableCellType, yfmTableRowType} from '../../../YfmTableSpecs';\n\nexport type InsertEmptyRowParams = {\n tablePos: number;\n rowIndex: number;\n};\n\nexport const insertEmptyRow = (params: InsertEmptyRowParams): Command => {\n return (state, dispatch) => {\n const table = state.doc.nodeAt(params.tablePos);\n const tableDesc = table && TableDesc.create(table)?.bind(params.tablePos);\n if (!tableDesc) return false;\n\n const rowIdx = Math.min(Math.max(params.rowIndex, 0), tableDesc.rows);\n\n if (dispatch) {\n let posToInsert: number;\n let newCellsCount: number = tableDesc.cols;\n const incrementRowspan: [number, number][] = [];\n\n if (rowIdx === 0 || rowIdx === tableDesc.rows) {\n posToInsert =\n rowIdx === 0\n ? tableDesc.getPosForRow(0).from\n : tableDesc.getPosForRow(tableDesc.rows - 1).to;\n } else {\n posToInsert = tableDesc.getPosForRow(rowIdx).from;\n\n for (let colIdx = 0; colIdx < tableDesc.cols; colIdx++) {\n const cell = tableDesc.base.rowsDesc[rowIdx].cells[colIdx];\n if (cell.type === 'virtual' && cell.rowspan) {\n newCellsCount--;\n incrementRowspan.push(cell.rowspan);\n }\n }\n }\n\n const {tr} = state;\n for (const [rowIdx, colIdx] of uniqWith(incrementRowspan, isEqual)) {\n const cell = tableDesc.base.rowsDesc[rowIdx].cells[colIdx] as TableCellRealDesc;\n const cellPos = tableDesc.getPosForCell(rowIdx, colIdx) as RealCellPos;\n tr.setNodeAttribute(cellPos.from, 'rowspan', cell.rowspan! + 1);\n }\n tr.insert(posToInsert, createSimpleRow(state.schema, newCellsCount));\n tr.setSelection(TextSelection.near(tr.doc.resolve(posToInsert), 1));\n dispatch(tr.scrollIntoView());\n }\n\n return true;\n };\n};\n\nconst createSimpleRow = (schema: Schema, cols: number) => {\n const tr = yfmTableRowType(schema);\n const td = yfmTableCellType(schema);\n return tr.create(\n null,\n range(0, cols).map(() => td.createAndFill()!),\n );\n};\n"]}
@@ -0,0 +1,6 @@
1
+ import type { Command } from "../../../../../../pm/state.js";
2
+ export type RemoveColumnRangeParams = {
3
+ tablePos: number;
4
+ rangeIdx: number;
5
+ };
6
+ export declare const removeColumnRange: (params: RemoveColumnRangeParams) => Command;
@@ -0,0 +1,73 @@
1
+ import { Fragment } from "../../../../../../pm/model.js";
2
+ import { TableDesc, } from "../../../../../../table-utils/table-desc.js";
3
+ import { yfmTableCellType } from "../../../YfmTableSpecs/utils.js";
4
+ export const removeColumnRange = (params) => {
5
+ return (state, dispatch) => {
6
+ const table = state.doc.nodeAt(params.tablePos);
7
+ const tableDesc = table && TableDesc.create(table)?.bind(params.tablePos);
8
+ if (!tableDesc || tableDesc.cols < 2)
9
+ return false;
10
+ const range = tableDesc.base.getColumnRanges()[params.rangeIdx];
11
+ if (!range)
12
+ return false;
13
+ if (dispatch) {
14
+ const { tr } = state;
15
+ const diffColspan = {};
16
+ for (let rowIdx = 0; rowIdx < tableDesc.rows; rowIdx++) {
17
+ // calculate colspan diff for merged cells that end in this range
18
+ for (let colIdx = range.startIdx; colIdx <= range.endIdx; colIdx++) {
19
+ const cell = tableDesc.base.rowsDesc[rowIdx].cells[colIdx];
20
+ if (cell.type === 'virtual' &&
21
+ cell.colspan?.[0] === rowIdx &&
22
+ cell.colspan[1] < range.startIdx) {
23
+ diffColspan[`${cell.colspan[0]},${cell.colspan[1]}`] ??= 0;
24
+ diffColspan[`${cell.colspan[0]},${cell.colspan[1]}`]--;
25
+ }
26
+ }
27
+ const from = getCellPos(tableDesc.getPosForCell(rowIdx, range.startIdx), 'start');
28
+ const to = getCellPos(tableDesc.getPosForCell(rowIdx, range.endIdx), 'end');
29
+ tr.replaceWith(tr.mapping.map(from), tr.mapping.map(to), Fragment.empty);
30
+ // insert new cells into the resulting gaps after current range
31
+ if (range.endIdx + 1 < tableDesc.cols) {
32
+ const cell = tableDesc.base.rowsDesc[rowIdx].cells[range.endIdx + 1];
33
+ if (cell.type === 'virtual' &&
34
+ cell.colspan?.[0] === rowIdx &&
35
+ cell.colspan[1] >= range.startIdx) {
36
+ const insertPos = tableDesc.getPosForCell(rowIdx, range.endIdx + 1).closestPos;
37
+ const realCell = tableDesc.base.rowsDesc[cell.colspan[0]].cells[cell.colspan[1]];
38
+ const newColspan = realCell.colspan - (range.endIdx + 1 - cell.colspan[1]);
39
+ tr.insert(tr.mapping.map(insertPos), yfmTableCellType(state.schema).createAndFill({
40
+ colspan: newColspan > 1 ? newColspan : null,
41
+ rowspan: realCell.rowspan ? realCell.rowspan : null,
42
+ }));
43
+ }
44
+ }
45
+ }
46
+ updateColspan(tr, tableDesc, diffColspan);
47
+ dispatch(tr);
48
+ }
49
+ return true;
50
+ };
51
+ };
52
+ function getCellPos(pos, dir) {
53
+ if (pos.type === 'virtual')
54
+ return pos.closestPos;
55
+ return dir === 'start' ? pos.from : pos.to;
56
+ }
57
+ function updateColspan(tr, tableDesc, diffMap) {
58
+ for (const key of keys(diffMap)) {
59
+ const [row, col] = key.split(',');
60
+ const rowIdx = Number.parseInt(row, 10);
61
+ const colIdx = Number.parseInt(col, 10);
62
+ const cell = tableDesc.base.rowsDesc[rowIdx].cells[colIdx];
63
+ if (cell.type === 'real' && cell.colspan) {
64
+ const pos = tableDesc.getPosForCell(rowIdx, colIdx);
65
+ const newColspan = cell.colspan + diffMap[key];
66
+ tr.setNodeAttribute(tr.mapping.map(pos.from), 'colspan', newColspan > 1 ? newColspan : null);
67
+ }
68
+ }
69
+ }
70
+ function keys(obj) {
71
+ return Object.keys(obj);
72
+ }
73
+ //# sourceMappingURL=remove-column-range.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remove-column-range.js","sourceRoot":"../../../../../../../../src","sources":["extensions/yfm/YfmTable/plugins/YfmTableControls/commands/remove-column-range.ts"],"names":[],"mappings":"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","sourcesContent":["import {Fragment} from '#pm/model';\nimport type {Command, Transaction} from '#pm/state';\nimport {\n type CellPos,\n type RealCellPos,\n type TableCellRealDesc,\n TableDesc,\n type TableDescBinded,\n type VirtualCellPos,\n} from 'src/table-utils/table-desc';\n\nimport {yfmTableCellType} from '../../../YfmTableSpecs/utils';\n\nexport type RemoveColumnRangeParams = {\n tablePos: number;\n rangeIdx: number;\n};\n\nexport const removeColumnRange = (params: RemoveColumnRangeParams): Command => {\n return (state, dispatch) => {\n const table = state.doc.nodeAt(params.tablePos);\n const tableDesc = table && TableDesc.create(table)?.bind(params.tablePos);\n if (!tableDesc || tableDesc.cols < 2) return false;\n\n const range = tableDesc.base.getColumnRanges()[params.rangeIdx];\n if (!range) return false;\n\n if (dispatch) {\n const {tr} = state;\n const diffColspan: Record<`${number},${number}`, number> = {};\n\n for (let rowIdx = 0; rowIdx < tableDesc.rows; rowIdx++) {\n // calculate colspan diff for merged cells that end in this range\n for (let colIdx = range.startIdx; colIdx <= range.endIdx; colIdx++) {\n const cell = tableDesc.base.rowsDesc[rowIdx].cells[colIdx];\n if (\n cell.type === 'virtual' &&\n cell.colspan?.[0] === rowIdx &&\n cell.colspan[1] < range.startIdx\n ) {\n diffColspan[`${cell.colspan[0]},${cell.colspan[1]}`] ??= 0;\n diffColspan[`${cell.colspan[0]},${cell.colspan[1]}`]--;\n }\n }\n\n const from = getCellPos(tableDesc.getPosForCell(rowIdx, range.startIdx), 'start');\n const to = getCellPos(tableDesc.getPosForCell(rowIdx, range.endIdx), 'end');\n tr.replaceWith(tr.mapping.map(from), tr.mapping.map(to), Fragment.empty);\n\n // insert new cells into the resulting gaps after current range\n if (range.endIdx + 1 < tableDesc.cols) {\n const cell = tableDesc.base.rowsDesc[rowIdx].cells[range.endIdx + 1];\n if (\n cell.type === 'virtual' &&\n cell.colspan?.[0] === rowIdx &&\n cell.colspan[1] >= range.startIdx\n ) {\n const insertPos = (\n tableDesc.getPosForCell(rowIdx, range.endIdx + 1) as VirtualCellPos\n ).closestPos;\n const realCell = tableDesc.base.rowsDesc[cell.colspan[0]].cells[\n cell.colspan[1]\n ] as TableCellRealDesc;\n const newColspan = realCell.colspan! - (range.endIdx + 1 - cell.colspan[1]);\n tr.insert(\n tr.mapping.map(insertPos),\n yfmTableCellType(state.schema).createAndFill({\n colspan: newColspan > 1 ? newColspan : null,\n rowspan: realCell.rowspan ? realCell.rowspan : null,\n })!,\n );\n }\n }\n }\n\n updateColspan(tr, tableDesc, diffColspan);\n\n dispatch(tr);\n }\n\n return true;\n };\n};\n\nfunction getCellPos(pos: CellPos, dir: 'start' | 'end'): number {\n if (pos.type === 'virtual') return pos.closestPos;\n return dir === 'start' ? pos.from : pos.to;\n}\n\nfunction updateColspan(\n tr: Transaction,\n tableDesc: TableDescBinded,\n diffMap: Record<`${number},${number}`, number>,\n) {\n for (const key of keys(diffMap)) {\n const [row, col] = key.split(',');\n const rowIdx = Number.parseInt(row, 10);\n const colIdx = Number.parseInt(col, 10);\n\n const cell = tableDesc.base.rowsDesc[rowIdx].cells[colIdx];\n if (cell.type === 'real' && cell.colspan) {\n const pos = tableDesc.getPosForCell(rowIdx, colIdx) as RealCellPos;\n const newColspan = cell.colspan + diffMap[key];\n tr.setNodeAttribute(\n tr.mapping.map(pos.from),\n 'colspan',\n newColspan > 1 ? newColspan : null,\n );\n }\n }\n}\n\nfunction keys<O extends object>(obj: O): (keyof O)[] {\n return Object.keys(obj) as (keyof O)[];\n}\n"]}
@@ -0,0 +1,6 @@
1
+ import type { Command } from "../../../../../../pm/state.js";
2
+ export type RemoveRowRangeParams = {
3
+ tablePos: number;
4
+ rangeIdx: number;
5
+ };
6
+ export declare const removeRowRange: (params: RemoveRowRangeParams) => Command;