@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
@@ -0,0 +1,17 @@
1
+ import { Plugin, type Transaction } from "../../../../../../pm/state.js";
2
+ import { DecorationSet } from "../../../../../../pm/view.js";
3
+ type HoverState = null | {
4
+ rowIdx: number;
5
+ columnIdx: number;
6
+ tablePos: number;
7
+ };
8
+ type PluginState = {
9
+ hover: HoverState;
10
+ activeTablePos: number | null;
11
+ decorations: DecorationSet;
12
+ };
13
+ export declare function hideHoverDecos(tr: Transaction): Transaction;
14
+ export declare const yfmTableFocusPlugin: (opts: {
15
+ dndEnabled: boolean;
16
+ }) => Plugin<PluginState>;
17
+ export {};
@@ -0,0 +1,153 @@
1
+ import { Plugin, PluginKey } from "../../../../../../pm/state.js";
2
+ import { findParentNode, findParentNodeClosestToPos, findSelectedNodeOfType } from "../../../../../../pm/utils.js";
3
+ import { Decoration, DecorationSet } from "../../../../../../pm/view.js";
4
+ import { throttle } from "../../../../../../lodash.js";
5
+ import { isTableCellNode, isTableNode } from "../../../../../../table-utils/index.js";
6
+ import { TableDesc } from "../../../../../../table-utils/table-desc.js";
7
+ import { YfmTableNode, yfmTableType } from "../../../YfmTableSpecs/index.js";
8
+ import { YfmTableDecorationType as DecoType, YfmTableDecorationTypeKey as decoTypeKey, } from "../const.js";
9
+ import { yfmTableCellView } from "../nodeviews/yfm-table-cell-view.js";
10
+ import { yfmTableView } from "../nodeviews/yfm-table-view.js";
11
+ const pluginKey = new PluginKey('TableControlsPlugin');
12
+ const FOCUSED_CLASSNAME = 'yfm-table-focused';
13
+ function shouldUpdateState(prev, curr) {
14
+ if (prev === null && curr === null)
15
+ return false;
16
+ if (prev === null || curr === null)
17
+ return true;
18
+ if (prev.rowIdx === curr.rowIdx &&
19
+ prev.columnIdx === curr.columnIdx &&
20
+ prev.tablePos === curr.tablePos)
21
+ return false;
22
+ return true;
23
+ }
24
+ export function hideHoverDecos(tr) {
25
+ const meta = { newState: null };
26
+ return tr.setMeta(pluginKey, meta);
27
+ }
28
+ export const yfmTableFocusPlugin = (opts) => {
29
+ return new Plugin({
30
+ key: pluginKey,
31
+ state: {
32
+ init(_config, state) {
33
+ return updateAfterChanges(state);
34
+ },
35
+ apply: (tr, prev) => {
36
+ if (tr.selectionSet || tr.docChanged) {
37
+ return updateAfterChanges(tr, prev);
38
+ }
39
+ const meta = tr.getMeta(pluginKey);
40
+ if (meta) {
41
+ const plState = { ...prev };
42
+ plState.decorations = plState.decorations.map(tr.mapping, tr.doc);
43
+ {
44
+ const decosToRemove = plState.decorations.find(undefined, undefined, (spec) => spec[decoTypeKey] === DecoType.ShowRowControl ||
45
+ spec[decoTypeKey] === DecoType.ShowColumnControl);
46
+ plState.decorations = plState.decorations.remove(decosToRemove);
47
+ }
48
+ plState.hover = meta.newState;
49
+ if (plState.hover && plState.activeTablePos === plState.hover.tablePos) {
50
+ const table = tr.doc.nodeAt(plState.activeTablePos);
51
+ const tableDesc = TableDesc.create(table);
52
+ const rowCell = tableDesc.getRelativePosForCell(plState.hover.rowIdx, 0);
53
+ const columnCell = tableDesc.getRelativePosForCell(0, plState.hover.columnIdx);
54
+ if (rowCell.type === 'real') {
55
+ plState.decorations = plState.decorations.add(tr.doc, [
56
+ Decoration.node(plState.activeTablePos + rowCell.from, plState.activeTablePos + rowCell.to, {}, { [decoTypeKey]: DecoType.ShowRowControl }),
57
+ ]);
58
+ }
59
+ if (columnCell.type === 'real') {
60
+ plState.decorations = plState.decorations.add(tr.doc, [
61
+ Decoration.node(plState.activeTablePos + columnCell.from, plState.activeTablePos + columnCell.to, {}, { [decoTypeKey]: DecoType.ShowColumnControl }),
62
+ ]);
63
+ }
64
+ }
65
+ return plState;
66
+ }
67
+ return { ...prev, decorations: prev.decorations.map(tr.mapping, tr.doc) };
68
+ },
69
+ },
70
+ props: {
71
+ nodeViews: {
72
+ [YfmTableNode.Table]: yfmTableView,
73
+ [YfmTableNode.Cell]: yfmTableCellView(opts),
74
+ },
75
+ decorations(state) {
76
+ return pluginKey.getState(state)?.decorations;
77
+ },
78
+ handleDOMEvents: {
79
+ mousemove: throttle((view, e) => {
80
+ let hover = null;
81
+ if (e.target instanceof Element &&
82
+ e.target.closest('td') &&
83
+ e.target.closest(`.${FOCUSED_CLASSNAME}`)) {
84
+ const $pos = (() => {
85
+ const td = e.target.closest('td');
86
+ const domPos = td && view.posAtDOM(td, 0);
87
+ return domPos === null ? null : view.state.doc.resolve(domPos);
88
+ })() ??
89
+ (() => {
90
+ const pos = view.posAtCoords({ left: e.x, top: e.y });
91
+ return pos && view.state.doc.resolve(pos.pos);
92
+ })();
93
+ const tcell = $pos && findParentNodeClosestToPos($pos, isTableCellNode);
94
+ const table = $pos && findParentNodeClosestToPos($pos, isTableNode);
95
+ const tableDesc = table && TableDesc.create(table.node);
96
+ const cellInfo = tcell && tableDesc?.getCellInfo(tcell.node);
97
+ if (cellInfo) {
98
+ hover = {
99
+ tablePos: table.pos,
100
+ rowIdx: cellInfo.row,
101
+ columnIdx: cellInfo.column,
102
+ };
103
+ {
104
+ const rowFirstCell = tableDesc.rowsDesc[hover.rowIdx].cells[0];
105
+ if (rowFirstCell.type === 'virtual')
106
+ hover.rowIdx = rowFirstCell.rowspan[0];
107
+ }
108
+ {
109
+ const colFirstCell = tableDesc.rowsDesc[0].cells[hover.columnIdx];
110
+ if (colFirstCell.type === 'virtual')
111
+ hover.columnIdx = colFirstCell.colspan[1];
112
+ }
113
+ }
114
+ }
115
+ if (shouldUpdateState(pluginKey.getState(view.state)?.hover || null, hover)) {
116
+ const meta = { newState: hover };
117
+ view.dispatch(view.state.tr.setMeta(pluginKey, meta));
118
+ }
119
+ }, 100),
120
+ },
121
+ },
122
+ });
123
+ };
124
+ function updateAfterChanges(tr, prev) {
125
+ const table = findParentNode(isTableNode)(tr.selection) ||
126
+ findSelectedNodeOfType(yfmTableType(tr.doc.type.schema))(tr.selection);
127
+ if (table) {
128
+ const tableFrom = table.pos;
129
+ const tableTo = tableFrom + table.node.nodeSize;
130
+ const decos = prev
131
+ ? prev.decorations
132
+ .map(tr.mapping, tr.doc)
133
+ .find(tableFrom, tableTo, (spec) => spec[decoTypeKey] === DecoType.ShowRowControl ||
134
+ spec[decoTypeKey] === DecoType.ShowColumnControl)
135
+ : [];
136
+ return {
137
+ hover: null,
138
+ activeTablePos: table.pos,
139
+ decorations: DecorationSet.create(tr.doc, [
140
+ ...decos,
141
+ Decoration.node(table.pos, table.pos + table.node.nodeSize, { class: FOCUSED_CLASSNAME }, { [decoTypeKey]: DecoType.FocusTable }),
142
+ ]),
143
+ };
144
+ }
145
+ else {
146
+ return {
147
+ hover: null,
148
+ activeTablePos: null,
149
+ decorations: DecorationSet.empty,
150
+ };
151
+ }
152
+ }
153
+ //# sourceMappingURL=focus-plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"focus-plugin.js","sourceRoot":"../../../../../../../../src","sources":["extensions/yfm/YfmTable/plugins/YfmTableControls/plugins/focus-plugin.ts"],"names":[],"mappings":"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","sourcesContent":["import {type EditorState, Plugin, PluginKey, type Transaction} from '#pm/state';\nimport {findParentNode, findParentNodeClosestToPos, findSelectedNodeOfType} from '#pm/utils';\nimport {Decoration, DecorationSet, type EditorView} from '#pm/view';\nimport {throttle} from 'src/lodash';\nimport {isTableCellNode, isTableNode} from 'src/table-utils';\nimport {TableDesc} from 'src/table-utils/table-desc';\n\nimport {YfmTableNode, yfmTableType} from '../../../YfmTableSpecs';\nimport {\n YfmTableDecorationType as DecoType,\n YfmTableDecorationTypeKey as decoTypeKey,\n} from '../const';\nimport {yfmTableCellView} from '../nodeviews/yfm-table-cell-view';\nimport {yfmTableView} from '../nodeviews/yfm-table-view';\n\nconst pluginKey = new PluginKey<PluginState>('TableControlsPlugin');\nconst FOCUSED_CLASSNAME = 'yfm-table-focused';\n\ntype Meta = {newState: HoverState} | undefined;\ntype HoverState = null | {\n rowIdx: number;\n columnIdx: number;\n tablePos: number;\n};\ntype PluginState = {\n hover: HoverState;\n activeTablePos: number | null;\n decorations: DecorationSet;\n};\n\nfunction shouldUpdateState(prev: HoverState, curr: HoverState): boolean {\n if (prev === null && curr === null) return false;\n if (prev === null || curr === null) return true;\n if (\n prev.rowIdx === curr.rowIdx &&\n prev.columnIdx === curr.columnIdx &&\n prev.tablePos === curr.tablePos\n )\n return false;\n return true;\n}\n\nexport function hideHoverDecos(tr: Transaction) {\n const meta: Meta = {newState: null};\n return tr.setMeta(pluginKey, meta);\n}\n\nexport const yfmTableFocusPlugin = (opts: {dndEnabled: boolean}) => {\n return new Plugin<PluginState>({\n key: pluginKey,\n state: {\n init(_config, state) {\n return updateAfterChanges(state);\n },\n apply: (tr, prev) => {\n if (tr.selectionSet || tr.docChanged) {\n return updateAfterChanges(tr, prev);\n }\n\n const meta: Meta = tr.getMeta(pluginKey);\n if (meta) {\n const plState = {...prev};\n plState.decorations = plState.decorations.map(tr.mapping, tr.doc);\n {\n const decosToRemove = plState.decorations.find(\n undefined,\n undefined,\n (spec) =>\n spec[decoTypeKey] === DecoType.ShowRowControl ||\n spec[decoTypeKey] === DecoType.ShowColumnControl,\n );\n plState.decorations = plState.decorations.remove(decosToRemove);\n }\n plState.hover = meta.newState;\n if (plState.hover && plState.activeTablePos === plState.hover.tablePos) {\n const table = tr.doc.nodeAt(plState.activeTablePos)!;\n const tableDesc = TableDesc.create(table)!;\n const rowCell = tableDesc.getRelativePosForCell(plState.hover.rowIdx, 0);\n const columnCell = tableDesc.getRelativePosForCell(\n 0,\n plState.hover.columnIdx,\n );\n\n if (rowCell.type === 'real') {\n plState.decorations = plState.decorations.add(tr.doc, [\n Decoration.node(\n plState.activeTablePos + rowCell.from,\n plState.activeTablePos + rowCell.to,\n {},\n {[decoTypeKey]: DecoType.ShowRowControl},\n ),\n ]);\n }\n\n if (columnCell.type === 'real') {\n plState.decorations = plState.decorations.add(tr.doc, [\n Decoration.node(\n plState.activeTablePos + columnCell.from,\n plState.activeTablePos + columnCell.to,\n {},\n {[decoTypeKey]: DecoType.ShowColumnControl},\n ),\n ]);\n }\n }\n return plState;\n }\n\n return {...prev, decorations: prev.decorations.map(tr.mapping, tr.doc)};\n },\n },\n props: {\n nodeViews: {\n [YfmTableNode.Table]: yfmTableView,\n [YfmTableNode.Cell]: yfmTableCellView(opts),\n },\n decorations(state) {\n return pluginKey.getState(state)?.decorations;\n },\n handleDOMEvents: {\n mousemove: throttle((view: EditorView, e: MouseEvent) => {\n let hover: HoverState = null;\n\n if (\n e.target instanceof Element &&\n e.target.closest('td') &&\n e.target.closest(`.${FOCUSED_CLASSNAME}`)\n ) {\n const $pos =\n (() => {\n const td = e.target.closest('td');\n const domPos = td && view.posAtDOM(td, 0);\n return domPos === null ? null : view.state.doc.resolve(domPos);\n })() ??\n (() => {\n const pos = view.posAtCoords({left: e.x, top: e.y});\n return pos && view.state.doc.resolve(pos.pos);\n })();\n\n const tcell = $pos && findParentNodeClosestToPos($pos, isTableCellNode);\n const table = $pos && findParentNodeClosestToPos($pos, isTableNode);\n\n const tableDesc = table && TableDesc.create(table.node);\n const cellInfo = tcell && tableDesc?.getCellInfo(tcell.node);\n\n if (cellInfo) {\n hover = {\n tablePos: table!.pos,\n rowIdx: cellInfo.row,\n columnIdx: cellInfo.column,\n } satisfies HoverState;\n\n {\n const rowFirstCell = tableDesc!.rowsDesc[hover.rowIdx].cells[0];\n if (rowFirstCell.type === 'virtual')\n hover.rowIdx = rowFirstCell.rowspan![0];\n }\n\n {\n const colFirstCell = tableDesc!.rowsDesc[0].cells[hover.columnIdx];\n if (colFirstCell.type === 'virtual')\n hover.columnIdx = colFirstCell.colspan![1];\n }\n }\n }\n\n if (shouldUpdateState(pluginKey.getState(view.state)?.hover || null, hover)) {\n const meta: Meta = {newState: hover};\n view.dispatch(view.state.tr.setMeta(pluginKey, meta));\n }\n }, 100),\n },\n },\n });\n};\n\nfunction updateAfterChanges(state: EditorState): PluginState;\nfunction updateAfterChanges(tr: Transaction, prev: PluginState): PluginState;\nfunction updateAfterChanges(tr: EditorState | Transaction, prev?: PluginState) {\n const table =\n findParentNode(isTableNode)(tr.selection) ||\n findSelectedNodeOfType(yfmTableType(tr.doc.type.schema))(tr.selection);\n if (table) {\n const tableFrom = table.pos;\n const tableTo = tableFrom + table.node.nodeSize;\n const decos = prev\n ? prev.decorations\n .map((tr as Transaction).mapping, tr.doc)\n .find(\n tableFrom,\n tableTo,\n (spec) =>\n spec[decoTypeKey] === DecoType.ShowRowControl ||\n spec[decoTypeKey] === DecoType.ShowColumnControl,\n )\n : [];\n return {\n hover: null,\n activeTablePos: table.pos,\n decorations: DecorationSet.create(tr.doc, [\n ...decos,\n Decoration.node(\n table.pos,\n table.pos + table.node.nodeSize,\n {class: FOCUSED_CLASSNAME},\n {[decoTypeKey]: DecoType.FocusTable},\n ),\n ]),\n };\n } else {\n return {\n hover: null,\n activeTablePos: null,\n decorations: DecorationSet.empty,\n };\n }\n}\n"]}
@@ -2,9 +2,12 @@
2
2
  "column.add.before": "Add column before",
3
3
  "column.add.after": "Add column after",
4
4
  "column.remove": "Remove column",
5
+ "column.remove.multiple": "Remove columns",
5
6
  "row.add.before": "Add row before",
6
7
  "row.add.after": "Add row after",
7
8
  "row.remove": "Remove row",
9
+ "row.remove.multiple": "Remove rows",
10
+ "cells.clear": "Clear cells",
8
11
  "table.remove": "Remove table",
9
12
  "table.menu.cell.align.left": "Align cell content to the left",
10
13
  "table.menu.cell.align.right": "Align cell content to the right",
@@ -1,12 +1,15 @@
1
- export declare const i18n: <G extends "column.add.before" | "column.add.after" | "column.remove" | "row.add.before" | "row.add.after" | "row.remove" | "table.remove" | "table.menu.cell.align.left" | "table.menu.cell.align.right" | "table.menu.cell.align.center" | "table.menu.row.add" | "table.menu.row.remove" | "table.menu.column.add" | "table.menu.column.remove" | "table.menu.convert.yfm" | "table.menu.table.remove", S extends string>(key: G | (string extends S ? S : never), params?: {
1
+ export declare const i18n: <G extends "column.add.before" | "column.add.after" | "column.remove" | "column.remove.multiple" | "row.add.before" | "row.add.after" | "row.remove" | "row.remove.multiple" | "cells.clear" | "table.remove" | "table.menu.cell.align.left" | "table.menu.cell.align.right" | "table.menu.cell.align.center" | "table.menu.row.add" | "table.menu.row.remove" | "table.menu.column.add" | "table.menu.column.remove" | "table.menu.convert.yfm" | "table.menu.table.remove", S extends string>(key: G | (string extends S ? S : never), params?: {
2
2
  [key: string]: any;
3
3
  }) => S extends G ? {
4
4
  "column.add.before": string;
5
5
  "column.add.after": string;
6
6
  "column.remove": string;
7
+ "column.remove.multiple": string;
7
8
  "row.add.before": string;
8
9
  "row.add.after": string;
9
10
  "row.remove": string;
11
+ "row.remove.multiple": string;
12
+ "cells.clear": string;
10
13
  "table.remove": string;
11
14
  "table.menu.cell.align.left": string;
12
15
  "table.menu.cell.align.right": string;
@@ -2,9 +2,12 @@
2
2
  "column.add.before": "Добавить столбец до",
3
3
  "column.add.after": "Добавить столбец после",
4
4
  "column.remove": "Удалить столбец",
5
+ "column.remove.multiple": "Удалить столбцы",
5
6
  "row.add.before": "Добавить строку до",
6
7
  "row.add.after": "Добавить строку после",
7
8
  "row.remove": "Удалить строку",
9
+ "row.remove.multiple": "Удалить строки",
10
+ "cells.clear": "Очистить ячейки",
8
11
  "table.remove": "Удалить таблицу",
9
12
  "table.menu.cell.align.left": "Выровнять контент ячейки по левому краю",
10
13
  "table.menu.cell.align.right": "Выровнять контент ячейки по правому краю",
@@ -1,7 +1,4 @@
1
1
  import GPTIcon from "./GPT.js";
2
2
  import GPTLoading from "./GPTLoading.js";
3
- import MermaidIcon from "./Mermaid.js";
4
- import MonoIcon from "./Mono.js";
5
- import TabsIcon from "./Tabs.js";
6
- export { MermaidIcon, MonoIcon, TabsIcon, GPTIcon, GPTLoading };
7
- export { ArrowUturnCcwLeft as UndoIcon, ArrowUturnCwRight as RedoIcon, Bold as BoldIcon, Italic as ItalicIcon, Underline as UnderlineIcon, Strikethrough as StrikethroughIcon, FontCursor as MarkIcon, Text as TextIcon, Heading as HeadingIcon, Heading1 as Heading1Icon, Heading2 as Heading2Icon, Heading3 as Heading3Icon, Heading4 as Heading4Icon, Heading5 as Heading5Icon, Heading6 as Heading6Icon, ListUl as ListBlIcon, ListOl as ListOlIcon, TextOutdent as LiftIcon, TextIndent as SinkIcon, Font as TextColorIcon, Link as LinkIcon, QuoteClose as QuoteIcon, Scissors as CutIcon, Sticker as NoteIcon, Paperclip as FileIcon, Minus as HRuleIcon, LayoutList as TableIcon, ChevronsExpandHorizontal as IframeIcon, SquareCheck as CheckListIcon, Picture as ImageIcon, Person as UserIcon, FaceSmile as EmojiIcon, Code as CodeInlineIcon, FileCode as CodeBlockIcon, Function as FunctionInlineIcon, CurlyBracketsFunction as FunctionBlockIcon, Hashtag as AnchorIcon, SquareDashedText as BlockIcon, LayoutColumns3 as LayoutIcon, Pencil as DrawIoIcon, FolderCode as HtmlBlockIcon, ArrowChevronRight as FoldingHeadingIcon, CircleLink as QuoteLinkIcon, } from '@gravity-ui/icons';
3
+ export { GPTIcon, GPTLoading };
4
+ export { ArrowUturnCcwLeft as UndoIcon, ArrowUturnCwRight as RedoIcon, Bold as BoldIcon, Italic as ItalicIcon, Underline as UnderlineIcon, Strikethrough as StrikethroughIcon, LetterM as MonoIcon, FontCursor as MarkIcon, Text as TextIcon, Heading as HeadingIcon, Heading1 as Heading1Icon, Heading2 as Heading2Icon, Heading3 as Heading3Icon, Heading4 as Heading4Icon, Heading5 as Heading5Icon, Heading6 as Heading6Icon, ListUl as ListBlIcon, ListOl as ListOlIcon, TextOutdent as LiftIcon, TextIndent as SinkIcon, Font as TextColorIcon, Link as LinkIcon, QuoteClose as QuoteIcon, Scissors as CutIcon, Sticker as NoteIcon, Paperclip as FileIcon, Minus as HRuleIcon, LayoutList as TableIcon, ChevronsExpandHorizontal as IframeIcon, SquareCheck as CheckListIcon, Picture as ImageIcon, Person as UserIcon, FaceSmile as EmojiIcon, LayoutTabs as TabsIcon, Code as CodeInlineIcon, FileCode as CodeBlockIcon, Function as FunctionInlineIcon, CurlyBracketsFunction as FunctionBlockIcon, Hashtag as AnchorIcon, SquareDashedText as BlockIcon, LayoutColumns3 as LayoutIcon, LogoDrawIo as DrawIoIcon, LogoMermaid as MermaidIcon, FolderCode as HtmlBlockIcon, ArrowChevronRight as FoldingHeadingIcon, CircleLink as QuoteLinkIcon, } from '@gravity-ui/icons';
@@ -1,12 +1,9 @@
1
1
  import GPTIcon from "./GPT.js";
2
2
  import GPTLoading from "./GPTLoading.js";
3
- import MermaidIcon from "./Mermaid.js";
4
- import MonoIcon from "./Mono.js";
5
- import TabsIcon from "./Tabs.js";
6
- export { MermaidIcon, MonoIcon, TabsIcon, GPTIcon, GPTLoading };
3
+ export { GPTIcon, GPTLoading };
7
4
  export { ArrowUturnCcwLeft as UndoIcon, ArrowUturnCwRight as RedoIcon,
8
5
  //
9
- Bold as BoldIcon, Italic as ItalicIcon, Underline as UnderlineIcon, Strikethrough as StrikethroughIcon, FontCursor as MarkIcon,
6
+ Bold as BoldIcon, Italic as ItalicIcon, Underline as UnderlineIcon, Strikethrough as StrikethroughIcon, LetterM as MonoIcon, FontCursor as MarkIcon,
10
7
  //
11
8
  Text as TextIcon, Heading as HeadingIcon, Heading1 as Heading1Icon, Heading2 as Heading2Icon, Heading3 as Heading3Icon, Heading4 as Heading4Icon, Heading5 as Heading5Icon, Heading6 as Heading6Icon,
12
9
  //
@@ -20,7 +17,7 @@ Link as LinkIcon, QuoteClose as QuoteIcon, Scissors as CutIcon, Sticker as NoteI
20
17
  //
21
18
  LayoutList as TableIcon,
22
19
  //
23
- ChevronsExpandHorizontal as IframeIcon, SquareCheck as CheckListIcon, Picture as ImageIcon, Person as UserIcon, FaceSmile as EmojiIcon,
20
+ ChevronsExpandHorizontal as IframeIcon, SquareCheck as CheckListIcon, Picture as ImageIcon, Person as UserIcon, FaceSmile as EmojiIcon, LayoutTabs as TabsIcon,
24
21
  //
25
22
  Code as CodeInlineIcon, FileCode as CodeBlockIcon,
26
23
  //
@@ -28,5 +25,5 @@ Function as FunctionInlineIcon, CurlyBracketsFunction as FunctionBlockIcon,
28
25
  //
29
26
  Hashtag as AnchorIcon, SquareDashedText as BlockIcon, LayoutColumns3 as LayoutIcon,
30
27
  //
31
- Pencil as DrawIoIcon, FolderCode as HtmlBlockIcon, ArrowChevronRight as FoldingHeadingIcon, CircleLink as QuoteLinkIcon, } from '@gravity-ui/icons';
28
+ LogoDrawIo as DrawIoIcon, LogoMermaid as MermaidIcon, FolderCode as HtmlBlockIcon, ArrowChevronRight as FoldingHeadingIcon, CircleLink as QuoteLinkIcon, } from '@gravity-ui/icons';
32
29
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"../../../src","sources":["icons/index.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,iBAAc;AAC5B,OAAO,UAAU,wBAAqB;AACtC,OAAO,WAAW,qBAAkB;AACpC,OAAO,QAAQ,kBAAe;AAC9B,OAAO,QAAQ,kBAAe;AAE9B,OAAO,EAAC,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAC,CAAC;AAE9D,OAAO,EACH,iBAAiB,IAAI,QAAQ,EAC7B,iBAAiB,IAAI,QAAQ;AAC7B,EAAE;AACF,IAAI,IAAI,QAAQ,EAChB,MAAM,IAAI,UAAU,EACpB,SAAS,IAAI,aAAa,EAC1B,aAAa,IAAI,iBAAiB,EAClC,UAAU,IAAI,QAAQ;AACtB,EAAE;AACF,IAAI,IAAI,QAAQ,EAChB,OAAO,IAAI,WAAW,EACtB,QAAQ,IAAI,YAAY,EACxB,QAAQ,IAAI,YAAY,EACxB,QAAQ,IAAI,YAAY,EACxB,QAAQ,IAAI,YAAY,EACxB,QAAQ,IAAI,YAAY,EACxB,QAAQ,IAAI,YAAY;AACxB,EAAE;AACF,MAAM,IAAI,UAAU,EACpB,MAAM,IAAI,UAAU;AACpB,EAAE;AACF,WAAW,IAAI,QAAQ,EACvB,UAAU,IAAI,QAAQ;AACtB,EAAE;AACF,IAAI,IAAI,aAAa;AACrB,EAAE;AACF,IAAI,IAAI,QAAQ,EAChB,UAAU,IAAI,SAAS,EACvB,QAAQ,IAAI,OAAO,EACnB,OAAO,IAAI,QAAQ,EACnB,SAAS,IAAI,QAAQ,EACrB,KAAK,IAAI,SAAS;AAClB,EAAE;AACF,UAAU,IAAI,SAAS;AACvB,EAAE;AACF,wBAAwB,IAAI,UAAU,EACtC,WAAW,IAAI,aAAa,EAC5B,OAAO,IAAI,SAAS,EACpB,MAAM,IAAI,QAAQ,EAClB,SAAS,IAAI,SAAS;AACtB,EAAE;AACF,IAAI,IAAI,cAAc,EACtB,QAAQ,IAAI,aAAa;AACzB,EAAE;AACF,QAAQ,IAAI,kBAAkB,EAC9B,qBAAqB,IAAI,iBAAiB;AAC1C,EAAE;AACF,OAAO,IAAI,UAAU,EACrB,gBAAgB,IAAI,SAAS,EAC7B,cAAc,IAAI,UAAU;AAC5B,EAAE;AACF,MAAM,IAAI,UAAU,EACpB,UAAU,IAAI,aAAa,EAC3B,iBAAiB,IAAI,kBAAkB,EACvC,UAAU,IAAI,aAAa,GAC9B,MAAM,mBAAmB,CAAC","sourcesContent":["import GPTIcon from './GPT';\nimport GPTLoading from './GPTLoading';\nimport MermaidIcon from './Mermaid';\nimport MonoIcon from './Mono';\nimport TabsIcon from './Tabs';\n\nexport {MermaidIcon, MonoIcon, TabsIcon, GPTIcon, GPTLoading};\n\nexport {\n ArrowUturnCcwLeft as UndoIcon,\n ArrowUturnCwRight as RedoIcon,\n //\n Bold as BoldIcon,\n Italic as ItalicIcon,\n Underline as UnderlineIcon,\n Strikethrough as StrikethroughIcon,\n FontCursor as MarkIcon,\n //\n Text as TextIcon,\n Heading as HeadingIcon,\n Heading1 as Heading1Icon,\n Heading2 as Heading2Icon,\n Heading3 as Heading3Icon,\n Heading4 as Heading4Icon,\n Heading5 as Heading5Icon,\n Heading6 as Heading6Icon,\n //\n ListUl as ListBlIcon,\n ListOl as ListOlIcon,\n //\n TextOutdent as LiftIcon,\n TextIndent as SinkIcon,\n //\n Font as TextColorIcon,\n //\n Link as LinkIcon,\n QuoteClose as QuoteIcon,\n Scissors as CutIcon,\n Sticker as NoteIcon,\n Paperclip as FileIcon,\n Minus as HRuleIcon,\n //\n LayoutList as TableIcon,\n //\n ChevronsExpandHorizontal as IframeIcon,\n SquareCheck as CheckListIcon,\n Picture as ImageIcon,\n Person as UserIcon,\n FaceSmile as EmojiIcon,\n //\n Code as CodeInlineIcon,\n FileCode as CodeBlockIcon,\n //\n Function as FunctionInlineIcon,\n CurlyBracketsFunction as FunctionBlockIcon,\n //\n Hashtag as AnchorIcon,\n SquareDashedText as BlockIcon,\n LayoutColumns3 as LayoutIcon,\n //\n Pencil as DrawIoIcon,\n FolderCode as HtmlBlockIcon,\n ArrowChevronRight as FoldingHeadingIcon,\n CircleLink as QuoteLinkIcon,\n} from '@gravity-ui/icons';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"../../../src","sources":["icons/index.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,iBAAc;AAC5B,OAAO,UAAU,wBAAqB;AAEtC,OAAO,EAAC,OAAO,EAAE,UAAU,EAAC,CAAC;AAE7B,OAAO,EACH,iBAAiB,IAAI,QAAQ,EAC7B,iBAAiB,IAAI,QAAQ;AAC7B,EAAE;AACF,IAAI,IAAI,QAAQ,EAChB,MAAM,IAAI,UAAU,EACpB,SAAS,IAAI,aAAa,EAC1B,aAAa,IAAI,iBAAiB,EAClC,OAAO,IAAI,QAAQ,EACnB,UAAU,IAAI,QAAQ;AACtB,EAAE;AACF,IAAI,IAAI,QAAQ,EAChB,OAAO,IAAI,WAAW,EACtB,QAAQ,IAAI,YAAY,EACxB,QAAQ,IAAI,YAAY,EACxB,QAAQ,IAAI,YAAY,EACxB,QAAQ,IAAI,YAAY,EACxB,QAAQ,IAAI,YAAY,EACxB,QAAQ,IAAI,YAAY;AACxB,EAAE;AACF,MAAM,IAAI,UAAU,EACpB,MAAM,IAAI,UAAU;AACpB,EAAE;AACF,WAAW,IAAI,QAAQ,EACvB,UAAU,IAAI,QAAQ;AACtB,EAAE;AACF,IAAI,IAAI,aAAa;AACrB,EAAE;AACF,IAAI,IAAI,QAAQ,EAChB,UAAU,IAAI,SAAS,EACvB,QAAQ,IAAI,OAAO,EACnB,OAAO,IAAI,QAAQ,EACnB,SAAS,IAAI,QAAQ,EACrB,KAAK,IAAI,SAAS;AAClB,EAAE;AACF,UAAU,IAAI,SAAS;AACvB,EAAE;AACF,wBAAwB,IAAI,UAAU,EACtC,WAAW,IAAI,aAAa,EAC5B,OAAO,IAAI,SAAS,EACpB,MAAM,IAAI,QAAQ,EAClB,SAAS,IAAI,SAAS,EACtB,UAAU,IAAI,QAAQ;AACtB,EAAE;AACF,IAAI,IAAI,cAAc,EACtB,QAAQ,IAAI,aAAa;AACzB,EAAE;AACF,QAAQ,IAAI,kBAAkB,EAC9B,qBAAqB,IAAI,iBAAiB;AAC1C,EAAE;AACF,OAAO,IAAI,UAAU,EACrB,gBAAgB,IAAI,SAAS,EAC7B,cAAc,IAAI,UAAU;AAC5B,EAAE;AACF,UAAU,IAAI,UAAU,EACxB,WAAW,IAAI,WAAW,EAC1B,UAAU,IAAI,aAAa,EAC3B,iBAAiB,IAAI,kBAAkB,EACvC,UAAU,IAAI,aAAa,GAC9B,MAAM,mBAAmB,CAAC","sourcesContent":["import GPTIcon from './GPT';\nimport GPTLoading from './GPTLoading';\n\nexport {GPTIcon, GPTLoading};\n\nexport {\n ArrowUturnCcwLeft as UndoIcon,\n ArrowUturnCwRight as RedoIcon,\n //\n Bold as BoldIcon,\n Italic as ItalicIcon,\n Underline as UnderlineIcon,\n Strikethrough as StrikethroughIcon,\n LetterM as MonoIcon,\n FontCursor as MarkIcon,\n //\n Text as TextIcon,\n Heading as HeadingIcon,\n Heading1 as Heading1Icon,\n Heading2 as Heading2Icon,\n Heading3 as Heading3Icon,\n Heading4 as Heading4Icon,\n Heading5 as Heading5Icon,\n Heading6 as Heading6Icon,\n //\n ListUl as ListBlIcon,\n ListOl as ListOlIcon,\n //\n TextOutdent as LiftIcon,\n TextIndent as SinkIcon,\n //\n Font as TextColorIcon,\n //\n Link as LinkIcon,\n QuoteClose as QuoteIcon,\n Scissors as CutIcon,\n Sticker as NoteIcon,\n Paperclip as FileIcon,\n Minus as HRuleIcon,\n //\n LayoutList as TableIcon,\n //\n ChevronsExpandHorizontal as IframeIcon,\n SquareCheck as CheckListIcon,\n Picture as ImageIcon,\n Person as UserIcon,\n FaceSmile as EmojiIcon,\n LayoutTabs as TabsIcon,\n //\n Code as CodeInlineIcon,\n FileCode as CodeBlockIcon,\n //\n Function as FunctionInlineIcon,\n CurlyBracketsFunction as FunctionBlockIcon,\n //\n Hashtag as AnchorIcon,\n SquareDashedText as BlockIcon,\n LayoutColumns3 as LayoutIcon,\n //\n LogoDrawIo as DrawIoIcon,\n LogoMermaid as MermaidIcon,\n FolderCode as HtmlBlockIcon,\n ArrowChevronRight as FoldingHeadingIcon,\n CircleLink as QuoteLinkIcon,\n} from '@gravity-ui/icons';\n"]}
@@ -9,6 +9,8 @@ import isString from "lodash/isString.js";
9
9
  import noop from "lodash/noop.js";
10
10
  import omit from "lodash/omit.js";
11
11
  import partial from "lodash/partial.js";
12
+ import range from "lodash/range.js";
12
13
  import throttle from "lodash/throttle.js";
14
+ import uniqWith from "lodash/uniqWith.js";
13
15
  import uniqueId from "lodash/uniqueId.js";
14
- export { noop, omit, clamp, groupBy, partial, debounce, throttle, uniqueId, isString, capitalize, isEqual, isFunction, cloneDeep, };
16
+ export { noop, omit, clamp, range, groupBy, partial, debounce, throttle, uniqWith, uniqueId, isString, capitalize, isEqual, isFunction, cloneDeep, };
@@ -9,7 +9,9 @@ import isString from "lodash/isString.js";
9
9
  import noop from "lodash/noop.js";
10
10
  import omit from "lodash/omit.js";
11
11
  import partial from "lodash/partial.js";
12
+ import range from "lodash/range.js";
12
13
  import throttle from "lodash/throttle.js";
14
+ import uniqWith from "lodash/uniqWith.js";
13
15
  import uniqueId from "lodash/uniqueId.js";
14
- export { noop, omit, clamp, groupBy, partial, debounce, throttle, uniqueId, isString, capitalize, isEqual, isFunction, cloneDeep, };
16
+ export { noop, omit, clamp, range, groupBy, partial, debounce, throttle, uniqWith, uniqueId, isString, capitalize, isEqual, isFunction, cloneDeep, };
15
17
  //# sourceMappingURL=lodash.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"lodash.js","sourceRoot":"../../src","sources":["lodash.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,6BAA0B;AAC3C,OAAO,KAAK,wBAAqB;AACjC,OAAO,SAAS,4BAAyB;AACzC,OAAO,QAAQ,2BAAwB;AACvC,OAAO,OAAO,0BAAuB;AACrC,OAAO,OAAO,0BAAuB;AACrC,OAAO,UAAU,6BAA0B;AAC3C,OAAO,QAAQ,2BAAwB;AACvC,OAAO,IAAI,uBAAoB;AAC/B,OAAO,IAAI,uBAAoB;AAC/B,OAAO,OAAO,0BAAuB;AACrC,OAAO,QAAQ,2BAAwB;AACvC,OAAO,QAAQ,2BAAwB;AAEvC,OAAO,EACH,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,OAAO,EACP,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,OAAO,EACP,UAAU,EACV,SAAS,GACZ,CAAC","sourcesContent":["import capitalize from 'lodash/capitalize';\nimport clamp from 'lodash/clamp';\nimport cloneDeep from 'lodash/cloneDeep';\nimport debounce from 'lodash/debounce';\nimport groupBy from 'lodash/groupBy';\nimport isEqual from 'lodash/isEqual';\nimport isFunction from 'lodash/isFunction';\nimport isString from 'lodash/isString';\nimport noop from 'lodash/noop';\nimport omit from 'lodash/omit';\nimport partial from 'lodash/partial';\nimport throttle from 'lodash/throttle';\nimport uniqueId from 'lodash/uniqueId';\n\nexport {\n noop,\n omit,\n clamp,\n groupBy,\n partial,\n debounce,\n throttle,\n uniqueId,\n isString,\n capitalize,\n isEqual,\n isFunction,\n cloneDeep,\n};\n"]}
1
+ {"version":3,"file":"lodash.js","sourceRoot":"../../src","sources":["lodash.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,6BAA0B;AAC3C,OAAO,KAAK,wBAAqB;AACjC,OAAO,SAAS,4BAAyB;AACzC,OAAO,QAAQ,2BAAwB;AACvC,OAAO,OAAO,0BAAuB;AACrC,OAAO,OAAO,0BAAuB;AACrC,OAAO,UAAU,6BAA0B;AAC3C,OAAO,QAAQ,2BAAwB;AACvC,OAAO,IAAI,uBAAoB;AAC/B,OAAO,IAAI,uBAAoB;AAC/B,OAAO,OAAO,0BAAuB;AACrC,OAAO,KAAK,wBAAqB;AACjC,OAAO,QAAQ,2BAAwB;AACvC,OAAO,QAAQ,2BAAwB;AACvC,OAAO,QAAQ,2BAAwB;AAEvC,OAAO,EACH,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,KAAK,EACL,OAAO,EACP,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,OAAO,EACP,UAAU,EACV,SAAS,GACZ,CAAC","sourcesContent":["import capitalize from 'lodash/capitalize';\nimport clamp from 'lodash/clamp';\nimport cloneDeep from 'lodash/cloneDeep';\nimport debounce from 'lodash/debounce';\nimport groupBy from 'lodash/groupBy';\nimport isEqual from 'lodash/isEqual';\nimport isFunction from 'lodash/isFunction';\nimport isString from 'lodash/isString';\nimport noop from 'lodash/noop';\nimport omit from 'lodash/omit';\nimport partial from 'lodash/partial';\nimport range from 'lodash/range';\nimport throttle from 'lodash/throttle';\nimport uniqWith from 'lodash/uniqWith';\nimport uniqueId from 'lodash/uniqueId';\n\nexport {\n noop,\n omit,\n clamp,\n range,\n groupBy,\n partial,\n debounce,\n throttle,\n uniqWith,\n uniqueId,\n isString,\n capitalize,\n isEqual,\n isFunction,\n cloneDeep,\n};\n"]}
@@ -1,12 +1,12 @@
1
1
  import type { Node } from 'prosemirror-model';
2
- type TableCellRealDesc = {
2
+ export type TableCellRealDesc = {
3
3
  type: 'real';
4
4
  offset: number;
5
5
  node: Node;
6
6
  colspan?: number;
7
7
  rowspan?: number;
8
8
  };
9
- type TableCellVirtualDesc = {
9
+ export type TableCellVirtualDesc = {
10
10
  type: 'virtual';
11
11
  /** Index of real cell, that prodeced this virtual cell */
12
12
  colspan?: [number, number];
@@ -17,13 +17,29 @@ type Pos = {
17
17
  from: number;
18
18
  to: number;
19
19
  };
20
- export type CellPos = ({
20
+ export type CellPos = RealCellPos | VirtualCellPos;
21
+ export type RealCellPos = {
21
22
  type: 'real';
22
- } & Pos) | {
23
+ } & Pos;
24
+ export type VirtualCellPos = {
23
25
  type: 'virtual';
24
26
  closestPos: number;
25
27
  };
26
- type TableCellDesc = TableCellRealDesc | TableCellVirtualDesc;
28
+ export type TableCellDesc = TableCellRealDesc | TableCellVirtualDesc;
29
+ export type TableRowRange = {
30
+ startIdx: number;
31
+ endIdx: number;
32
+ rowsCount: number;
33
+ safeTopBoundary: boolean;
34
+ safeBottomBoundary: boolean;
35
+ };
36
+ export type TableColumnRange = {
37
+ startIdx: number;
38
+ endIdx: number;
39
+ columnsCount: number;
40
+ safeLeftBoundary: boolean;
41
+ safeRightBoundary: boolean;
42
+ };
27
43
  type TableRowDesc = {
28
44
  node: Node;
29
45
  cells: TableCellDesc[];
@@ -38,7 +54,10 @@ export declare class TableDesc {
38
54
  readonly baseOffset: number;
39
55
  private static __cache;
40
56
  static create(table: Node): TableDesc | null;
57
+ private _rowRanges?;
58
+ private _columnRanges?;
41
59
  private constructor();
60
+ bind(pos: number): TableDescBinded;
42
61
  rowHasVirtualCells(rowIndex: number): boolean;
43
62
  columnHasVirtualCells(columnIndex: number): boolean;
44
63
  isSafeColumn(columnIndex: number): boolean;
@@ -46,8 +65,33 @@ export declare class TableDesc {
46
65
  getOffsetForRow(rowIndex: number): number;
47
66
  getRelativePosForRow(rowIndex: number): Pos;
48
67
  getRelativePosForCell(rowIndex: number, columnIndex: number): CellPos;
68
+ getRelativePosForRowCells(rowIndex: number): CellPos[];
49
69
  getRelativePosForColumn(columnIndex: number): CellPos[];
50
70
  getCellNodeType(): import("prosemirror-model").NodeType;
51
71
  getRowNodeType(): import("prosemirror-model").NodeType;
72
+ getCellInfo(node: Node): {
73
+ node: Node;
74
+ offset: number;
75
+ row: number;
76
+ column: number;
77
+ } | null;
78
+ getRowRanges(): readonly Readonly<TableRowRange>[];
79
+ getRowRangeByRowIdx(rowIdx: number): Readonly<TableRowRange>;
80
+ getRowRangeIdxByRowIdx(rowIdx: number): number;
81
+ getColumnRanges(): readonly Readonly<TableColumnRange>[];
82
+ getColumnRangeByColumnIdx(columnIdx: number): Readonly<TableColumnRange>;
83
+ getColumnRangeIdxByColumnIdx(columnIdx: number): number;
84
+ }
85
+ declare class TableDescBinded {
86
+ readonly pos: number;
87
+ readonly base: TableDesc;
88
+ get rows(): number;
89
+ get cols(): number;
90
+ constructor(pos: number, desc: TableDesc);
91
+ getRowIndexByPos(pos: number): number | null;
92
+ getPosForRow(rowIndex: number): Pos;
93
+ getPosForCell(rowIndex: number, columnIndex: number): CellPos;
94
+ getPosForRowCells(rowIndex: number): CellPos[];
95
+ getPosForColumn(columnIndex: number): CellPos[];
52
96
  }
53
- export {};
97
+ export type { TableDescBinded };