@gravity-ui/markdown-editor 15.19.0 → 15.20.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 (264) hide show
  1. package/build/cjs/bundle/config/action-names.d.ts +1 -1
  2. package/build/cjs/bundle/toolbar/ToolbarButtonWithPopupMenu.d.ts +2 -2
  3. package/build/cjs/bundle/toolbar/ToolbarButtonWithPopupMenu.js.map +1 -1
  4. package/build/cjs/bundle/toolbar/custom/ToolbarColors.js +1 -1
  5. package/build/cjs/bundle/toolbar/custom/ToolbarColors.js.map +1 -1
  6. package/build/cjs/bundle/wysiwyg-preset.js +5 -1
  7. package/build/cjs/bundle/wysiwyg-preset.js.map +1 -1
  8. package/build/cjs/extensions/markdown/Lists/ListsSpecs/schema.js +2 -3
  9. package/build/cjs/extensions/markdown/Lists/ListsSpecs/schema.js.map +1 -1
  10. package/build/cjs/extensions/yfm/YfmTable/index.d.ts +15 -1
  11. package/build/cjs/extensions/yfm/YfmTable/index.js +4 -2
  12. package/build/cjs/extensions/yfm/YfmTable/index.js.map +1 -1
  13. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/actions.d.ts +6 -0
  14. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/actions.js +5 -8
  15. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/actions.js.map +1 -1
  16. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/commands/clear-cells.d.ts +7 -0
  17. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/commands/clear-cells.js +41 -0
  18. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/commands/clear-cells.js.map +1 -0
  19. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/commands/insert-empty-column.d.ts +6 -0
  20. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/commands/insert-empty-column.js +59 -0
  21. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/commands/insert-empty-column.js.map +1 -0
  22. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/commands/insert-empty-row.d.ts +6 -0
  23. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/commands/insert-empty-row.js +54 -0
  24. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/commands/insert-empty-row.js.map +1 -0
  25. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/commands/remove-column-range.d.ts +6 -0
  26. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/commands/remove-column-range.js +77 -0
  27. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/commands/remove-column-range.js.map +1 -0
  28. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/commands/remove-row-range.d.ts +6 -0
  29. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/commands/remove-row-range.js +74 -0
  30. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/commands/remove-row-range.js.map +1 -0
  31. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingMenu/FloatingMenu.d.ts +10 -0
  32. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingMenu/FloatingMenu.js +45 -0
  33. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingMenu/FloatingMenu.js.map +1 -0
  34. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingMenu/index.d.ts +1 -0
  35. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingMenu/index.js +5 -0
  36. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingMenu/index.js.map +1 -0
  37. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingMenuControl/FloatingMenuControl.d.ts +15 -0
  38. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingMenuControl/FloatingMenuControl.js +67 -0
  39. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingMenuControl/FloatingMenuControl.js.map +1 -0
  40. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingMenuControl/index.d.ts +1 -0
  41. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingMenuControl/index.js +5 -0
  42. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingMenuControl/index.js.map +1 -0
  43. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPlusButton/FloatingPlusButton.d.ts +4 -0
  44. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPlusButton/FloatingPlusButton.js +26 -0
  45. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPlusButton/FloatingPlusButton.js.map +1 -0
  46. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPlusButton/InsertCursor.d.ts +6 -0
  47. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPlusButton/InsertCursor.js +68 -0
  48. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPlusButton/InsertCursor.js.map +1 -0
  49. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPlusButton/PlusButton.d.ts +6 -0
  50. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPlusButton/PlusButton.js +26 -0
  51. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPlusButton/PlusButton.js.map +1 -0
  52. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPlusButton/index.d.ts +1 -0
  53. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPlusButton/index.js +5 -0
  54. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPlusButton/index.js.map +1 -0
  55. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPlusControl/FloatingPlusControl.d.ts +9 -0
  56. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPlusControl/FloatingPlusControl.js +38 -0
  57. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPlusControl/FloatingPlusControl.js.map +1 -0
  58. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPlusControl/index.d.ts +1 -0
  59. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPlusControl/index.js +5 -0
  60. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPlusControl/index.js.map +1 -0
  61. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPopup/FloatingPopup.css +14 -0
  62. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPopup/FloatingPopup.d.ts +13 -0
  63. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPopup/FloatingPopup.js +58 -0
  64. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPopup/FloatingPopup.js.map +1 -0
  65. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPopup/index.d.ts +1 -0
  66. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPopup/index.js +5 -0
  67. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPopup/index.js.map +1 -0
  68. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/const.d.ts +13 -0
  69. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/const.js +18 -0
  70. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/const.js.map +1 -0
  71. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/dnd/dnd-drop-cursor.d.ts +36 -0
  72. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/dnd/dnd-drop-cursor.js +144 -0
  73. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/dnd/dnd-drop-cursor.js.map +1 -0
  74. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/dnd/dnd.css +19 -0
  75. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/dnd/dnd.d.ts +31 -0
  76. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/dnd/dnd.js +467 -0
  77. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/dnd/dnd.js.map +1 -0
  78. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/index.d.ts +12 -0
  79. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/index.js +11 -0
  80. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/index.js.map +1 -0
  81. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/nodeviews/yfm-table-cell-view.d.ts +6 -0
  82. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/nodeviews/yfm-table-cell-view.js +288 -0
  83. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/nodeviews/yfm-table-cell-view.js.map +1 -0
  84. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/nodeviews/yfm-table-view.css +4 -0
  85. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/nodeviews/yfm-table-view.d.ts +3 -0
  86. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/nodeviews/yfm-table-view.js +100 -0
  87. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/nodeviews/yfm-table-view.js.map +1 -0
  88. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/plugins/dnd-plugin.d.ts +23 -0
  89. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/plugins/dnd-plugin.js +119 -0
  90. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/plugins/dnd-plugin.js.map +1 -0
  91. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/plugins/focus-plugin.d.ts +17 -0
  92. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/plugins/focus-plugin.js +158 -0
  93. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/plugins/focus-plugin.js.map +1 -0
  94. package/build/cjs/i18n/yfm-table/en.json +3 -0
  95. package/build/cjs/i18n/yfm-table/index.d.ts +4 -1
  96. package/build/cjs/i18n/yfm-table/ru.json +3 -0
  97. package/build/cjs/icons/index.d.ts +2 -5
  98. package/build/cjs/icons/index.js +5 -8
  99. package/build/cjs/icons/index.js.map +1 -1
  100. package/build/cjs/lodash.d.ts +3 -1
  101. package/build/cjs/lodash.js +5 -1
  102. package/build/cjs/lodash.js.map +1 -1
  103. package/build/cjs/table-utils/table-desc.d.ts +50 -6
  104. package/build/cjs/table-utils/table-desc.js +196 -3
  105. package/build/cjs/table-utils/table-desc.js.map +1 -1
  106. package/build/cjs/toolbar/ToolbarButtonPopup.js +2 -2
  107. package/build/cjs/toolbar/ToolbarButtonPopup.js.map +1 -1
  108. package/build/cjs/toolbar/ToolbarListButton.js +1 -1
  109. package/build/cjs/toolbar/ToolbarListButton.js.map +1 -1
  110. package/build/cjs/version.js +1 -1
  111. package/build/cjs/version.js.map +1 -1
  112. package/build/esm/bundle/config/action-names.d.ts +1 -1
  113. package/build/esm/bundle/toolbar/ToolbarButtonWithPopupMenu.d.ts +2 -2
  114. package/build/esm/bundle/toolbar/ToolbarButtonWithPopupMenu.js.map +1 -1
  115. package/build/esm/bundle/toolbar/custom/ToolbarColors.js +1 -1
  116. package/build/esm/bundle/toolbar/custom/ToolbarColors.js.map +1 -1
  117. package/build/esm/bundle/wysiwyg-preset.js +5 -1
  118. package/build/esm/bundle/wysiwyg-preset.js.map +1 -1
  119. package/build/esm/extensions/markdown/Lists/ListsSpecs/schema.js +2 -3
  120. package/build/esm/extensions/markdown/Lists/ListsSpecs/schema.js.map +1 -1
  121. package/build/esm/extensions/yfm/YfmTable/index.d.ts +15 -1
  122. package/build/esm/extensions/yfm/YfmTable/index.js +4 -2
  123. package/build/esm/extensions/yfm/YfmTable/index.js.map +1 -1
  124. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/actions.d.ts +7 -1
  125. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/actions.js +2 -6
  126. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/actions.js.map +1 -1
  127. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/commands/clear-cells.d.ts +7 -0
  128. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/commands/clear-cells.js +37 -0
  129. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/commands/clear-cells.js.map +1 -0
  130. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/commands/insert-empty-column.d.ts +6 -0
  131. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/commands/insert-empty-column.js +55 -0
  132. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/commands/insert-empty-column.js.map +1 -0
  133. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/commands/insert-empty-row.d.ts +6 -0
  134. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/commands/insert-empty-row.js +50 -0
  135. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/commands/insert-empty-row.js.map +1 -0
  136. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/commands/remove-column-range.d.ts +6 -0
  137. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/commands/remove-column-range.js +73 -0
  138. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/commands/remove-column-range.js.map +1 -0
  139. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/commands/remove-row-range.d.ts +6 -0
  140. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/commands/remove-row-range.js +70 -0
  141. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/commands/remove-row-range.js.map +1 -0
  142. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingMenu/FloatingMenu.d.ts +10 -0
  143. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingMenu/FloatingMenu.js +41 -0
  144. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingMenu/FloatingMenu.js.map +1 -0
  145. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingMenu/index.d.ts +1 -0
  146. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingMenu/index.js +2 -0
  147. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingMenu/index.js.map +1 -0
  148. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingMenuControl/FloatingMenuControl.d.ts +15 -0
  149. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingMenuControl/FloatingMenuControl.js +63 -0
  150. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingMenuControl/FloatingMenuControl.js.map +1 -0
  151. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingMenuControl/index.d.ts +1 -0
  152. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingMenuControl/index.js +2 -0
  153. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingMenuControl/index.js.map +1 -0
  154. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPlusButton/FloatingPlusButton.d.ts +4 -0
  155. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPlusButton/FloatingPlusButton.js +22 -0
  156. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPlusButton/FloatingPlusButton.js.map +1 -0
  157. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPlusButton/InsertCursor.d.ts +6 -0
  158. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPlusButton/InsertCursor.js +64 -0
  159. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPlusButton/InsertCursor.js.map +1 -0
  160. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPlusButton/PlusButton.d.ts +6 -0
  161. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPlusButton/PlusButton.js +22 -0
  162. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPlusButton/PlusButton.js.map +1 -0
  163. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPlusButton/index.d.ts +1 -0
  164. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPlusButton/index.js +2 -0
  165. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPlusButton/index.js.map +1 -0
  166. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPlusControl/FloatingPlusControl.d.ts +9 -0
  167. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPlusControl/FloatingPlusControl.js +35 -0
  168. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPlusControl/FloatingPlusControl.js.map +1 -0
  169. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPlusControl/index.d.ts +1 -0
  170. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPlusControl/index.js +2 -0
  171. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPlusControl/index.js.map +1 -0
  172. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPopup/FloatingPopup.css +14 -0
  173. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPopup/FloatingPopup.d.ts +13 -0
  174. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPopup/FloatingPopup.js +54 -0
  175. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPopup/FloatingPopup.js.map +1 -0
  176. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPopup/index.d.ts +1 -0
  177. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPopup/index.js +2 -0
  178. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPopup/index.js.map +1 -0
  179. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/const.d.ts +13 -0
  180. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/const.js +15 -0
  181. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/const.js.map +1 -0
  182. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/dnd/dnd-drop-cursor.d.ts +36 -0
  183. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/dnd/dnd-drop-cursor.js +139 -0
  184. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/dnd/dnd-drop-cursor.js.map +1 -0
  185. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/dnd/dnd.css +19 -0
  186. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/dnd/dnd.d.ts +31 -0
  187. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/dnd/dnd.js +463 -0
  188. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/dnd/dnd.js.map +1 -0
  189. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/index.d.ts +12 -0
  190. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/index.js +7 -0
  191. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/index.js.map +1 -0
  192. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/nodeviews/yfm-table-cell-view.d.ts +6 -0
  193. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/nodeviews/yfm-table-cell-view.js +284 -0
  194. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/nodeviews/yfm-table-cell-view.js.map +1 -0
  195. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/nodeviews/yfm-table-view.css +4 -0
  196. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/nodeviews/yfm-table-view.d.ts +3 -0
  197. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/nodeviews/yfm-table-view.js +96 -0
  198. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/nodeviews/yfm-table-view.js.map +1 -0
  199. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/plugins/dnd-plugin.d.ts +23 -0
  200. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/plugins/dnd-plugin.js +108 -0
  201. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/plugins/dnd-plugin.js.map +1 -0
  202. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/plugins/focus-plugin.d.ts +17 -0
  203. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/plugins/focus-plugin.js +153 -0
  204. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/plugins/focus-plugin.js.map +1 -0
  205. package/build/esm/i18n/yfm-table/en.json +3 -0
  206. package/build/esm/i18n/yfm-table/index.d.ts +4 -1
  207. package/build/esm/i18n/yfm-table/ru.json +3 -0
  208. package/build/esm/icons/index.d.ts +2 -5
  209. package/build/esm/icons/index.js +4 -7
  210. package/build/esm/icons/index.js.map +1 -1
  211. package/build/esm/lodash.d.ts +3 -1
  212. package/build/esm/lodash.js +3 -1
  213. package/build/esm/lodash.js.map +1 -1
  214. package/build/esm/table-utils/table-desc.d.ts +50 -6
  215. package/build/esm/table-utils/table-desc.js +196 -3
  216. package/build/esm/table-utils/table-desc.js.map +1 -1
  217. package/build/esm/toolbar/ToolbarButtonPopup.js +2 -2
  218. package/build/esm/toolbar/ToolbarButtonPopup.js.map +1 -1
  219. package/build/esm/toolbar/ToolbarListButton.js +1 -1
  220. package/build/esm/toolbar/ToolbarListButton.js.map +1 -1
  221. package/build/esm/version.js +1 -1
  222. package/build/esm/version.js.map +1 -1
  223. package/build/styles.css +31 -116
  224. package/package.json +2 -2
  225. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/buttons.d.ts +0 -14
  226. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/buttons.js +0 -97
  227. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/buttons.js.map +0 -1
  228. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/view.css +0 -85
  229. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/view.d.ts +0 -4
  230. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/view.js +0 -62
  231. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/view.js.map +0 -1
  232. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/yfmTableCellView.css +0 -37
  233. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/yfmTableCellView.d.ts +0 -4
  234. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/yfmTableCellView.js +0 -212
  235. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/yfmTableCellView.js.map +0 -1
  236. package/build/cjs/icons/Mermaid.d.ts +0 -3
  237. package/build/cjs/icons/Mermaid.js +0 -11
  238. package/build/cjs/icons/Mermaid.js.map +0 -1
  239. package/build/cjs/icons/Mono.d.ts +0 -3
  240. package/build/cjs/icons/Mono.js +0 -6
  241. package/build/cjs/icons/Mono.js.map +0 -1
  242. package/build/cjs/icons/Tabs.d.ts +0 -3
  243. package/build/cjs/icons/Tabs.js +0 -6
  244. package/build/cjs/icons/Tabs.js.map +0 -1
  245. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/buttons.d.ts +0 -14
  246. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/buttons.js +0 -95
  247. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/buttons.js.map +0 -1
  248. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/view.css +0 -85
  249. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/view.d.ts +0 -4
  250. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/view.js +0 -58
  251. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/view.js.map +0 -1
  252. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/yfmTableCellView.css +0 -37
  253. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/yfmTableCellView.d.ts +0 -4
  254. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/yfmTableCellView.js +0 -208
  255. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/yfmTableCellView.js.map +0 -1
  256. package/build/esm/icons/Mermaid.d.ts +0 -3
  257. package/build/esm/icons/Mermaid.js +0 -9
  258. package/build/esm/icons/Mermaid.js.map +0 -1
  259. package/build/esm/icons/Mono.d.ts +0 -3
  260. package/build/esm/icons/Mono.js +0 -4
  261. package/build/esm/icons/Mono.js.map +0 -1
  262. package/build/esm/icons/Tabs.d.ts +0 -3
  263. package/build/esm/icons/Tabs.js +0 -4
  264. package/build/esm/icons/Tabs.js.map +0 -1
@@ -1,97 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.yfmTableControlsPlugin = exports.tableControlsPluginKey = void 0;
4
- const prosemirror_model_1 = require("prosemirror-model");
5
- const prosemirror_state_1 = require("prosemirror-state");
6
- const prosemirror_utils_1 = require("prosemirror-utils");
7
- const prosemirror_view_1 = require("prosemirror-view");
8
- const lodash_1 = require("../../../../../lodash.js");
9
- const table_utils_1 = require("../../../../../table-utils/index.js");
10
- const utils_1 = require("../../../../../utils/index.js");
11
- const YfmTableSpecs_1 = require("../../YfmTableSpecs/index.js");
12
- const view_1 = require("./view.js");
13
- const yfmTableCellView_1 = require("./yfmTableCellView.js");
14
- exports.tableControlsPluginKey = new prosemirror_state_1.PluginKey('TableControlsPlugin');
15
- function shouldUpdateState(prev, curr) {
16
- if (prev === null && curr === null)
17
- return false;
18
- if (prev === null || curr === null)
19
- return true;
20
- if (prev.left.from === curr.left.from &&
21
- prev.left.to === curr.left.to &&
22
- prev.upper.from === curr.upper.from &&
23
- prev.upper.to === curr.upper.to)
24
- return false;
25
- return true;
26
- }
27
- // TODO: split: plus buttons extension & cell controls extension
28
- const yfmTableControlsPlugin = () => new prosemirror_state_1.Plugin({
29
- key: exports.tableControlsPluginKey,
30
- state: {
31
- init: () => null,
32
- apply: (tr, prev) => {
33
- const meta = tr.getMeta(exports.tableControlsPluginKey);
34
- return meta === undefined ? prev : meta;
35
- },
36
- },
37
- props: {
38
- nodeViews: {
39
- [YfmTableSpecs_1.YfmTableNode.Table]: view_1.yfmTableView,
40
- [YfmTableSpecs_1.YfmTableNode.Cell]: yfmTableCellView_1.yfmTableCellView,
41
- },
42
- decorations(state) {
43
- const pluginState = exports.tableControlsPluginKey.getState(state);
44
- const parent = (0, prosemirror_utils_1.findParentNode)(table_utils_1.isTableNode)(state.selection) ||
45
- (0, prosemirror_utils_1.findSelectedNodeOfType)(state.schema.nodes.yfm_table)(state.selection);
46
- if (!parent)
47
- return null;
48
- const decs = [
49
- prosemirror_view_1.Decoration.node(parent.pos, parent.pos + parent.node.nodeSize, {
50
- class: (0, view_1.viewB)('buttons-visible'),
51
- }),
52
- ];
53
- if (pluginState) {
54
- const { upper, left } = pluginState;
55
- decs.unshift(prosemirror_view_1.Decoration.node(left.from, left.to, {
56
- class: (0, yfmTableCellView_1.yfmTableCellCn)('left-visible'),
57
- }), prosemirror_view_1.Decoration.node(upper.from, upper.to, {
58
- class: (0, yfmTableCellView_1.yfmTableCellCn)('upper-visible'),
59
- }));
60
- }
61
- return prosemirror_view_1.DecorationSet.create(state.doc, decs);
62
- },
63
- handleDOMEvents: {
64
- mousemove: (0, lodash_1.throttle)((view, e) => {
65
- const prevState = exports.tableControlsPluginKey.getState(view.state);
66
- const pos = view.posAtCoords({ left: e.x, top: e.y });
67
- if (!pos)
68
- return false;
69
- const $pos = view.state.doc.resolve(pos.pos);
70
- const cell = (0, prosemirror_utils_1.findParentNodeClosestToPos)($pos, table_utils_1.isTableCellNode);
71
- const row = (0, prosemirror_utils_1.findParentNodeClosestToPos)($pos, table_utils_1.isTableRowNode);
72
- const tbody = (0, prosemirror_utils_1.findParentNodeClosestToPos)($pos, table_utils_1.isTableBodyNode);
73
- let state = null;
74
- if (cell && row && tbody) {
75
- const cellIndex = (0, utils_1.getChildrenOfNode)(row.node).findIndex((child) => child.node === cell.node);
76
- const firstRowCell = (0, utils_1.getChildrenOfNode)(tbody.node.firstChild || prosemirror_model_1.Fragment.empty)[cellIndex];
77
- if (firstRowCell) {
78
- const upperFrom = tbody.pos + 2 + firstRowCell.offset;
79
- const upperTo = upperFrom + firstRowCell.node.nodeSize;
80
- const leftFrom = row.pos;
81
- const leftTo = row.pos + row.node.nodeSize;
82
- state = {
83
- upper: { from: upperFrom, to: upperTo },
84
- left: { from: leftFrom, to: leftTo },
85
- };
86
- }
87
- }
88
- if (shouldUpdateState(prevState, state)) {
89
- view.dispatch(view.state.tr.setMeta(exports.tableControlsPluginKey, state));
90
- }
91
- return false;
92
- }, 100),
93
- },
94
- },
95
- });
96
- exports.yfmTableControlsPlugin = yfmTableControlsPlugin;
97
- //# sourceMappingURL=buttons.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"buttons.js","sourceRoot":"../../../../../../../src","sources":["extensions/yfm/YfmTable/plugins/YfmTableControls/buttons.tsx"],"names":[],"mappings":";;;AAAA,yDAA2C;AAC3C,yDAAoD;AACpD,yDAK2B;AAC3B,uDAA4E;AAE5E,qDAA+C;AAC/C,qEAKoC;AACpC,yDAAuD;AACvD,gEAAiD;AAEjD,oCAA2C;AAC3C,4DAAoE;AAEvD,QAAA,sBAAsB,GAAG,IAAI,6BAAS,CAAC,qBAAqB,CAAC,CAAC;AAQ3E,SAAS,iBAAiB,CAAC,IAAW,EAAE,IAAW;IAC/C,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IACjD,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAChD,IACI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI;QACjC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE;QAC7B,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI;QACnC,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,IAAI,CAAC,KAAK,CAAC,EAAE;QAE/B,OAAO,KAAK,CAAC;IACjB,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,gEAAgE;AACzD,MAAM,sBAAsB,GAAG,GAAG,EAAE,CACvC,IAAI,0BAAM,CAAQ;IACd,GAAG,EAAE,8BAAsB;IAC3B,KAAK,EAAE;QACH,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI;QAChB,KAAK,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE;YAChB,MAAM,IAAI,GAAS,EAAE,CAAC,OAAO,CAAC,8BAAsB,CAAC,CAAC;YACtD,OAAO,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QAC5C,CAAC;KACJ;IACD,KAAK,EAAE;QACH,SAAS,EAAE;YACP,CAAC,4BAAY,CAAC,KAAK,CAAC,EAAE,mBAAY;YAClC,CAAC,4BAAY,CAAC,IAAI,CAAC,EAAE,mCAAgB;SACxC;QACD,WAAW,CAAC,KAAK;YACb,MAAM,WAAW,GAAG,8BAAsB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC3D,MAAM,MAAM,GACR,IAAA,kCAAc,EAAC,yBAAW,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC;gBAC5C,IAAA,0CAAsB,EAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YAC1E,IAAI,CAAC,MAAM;gBAAE,OAAO,IAAI,CAAC;YAEzB,MAAM,IAAI,GAAG;gBACT,6BAAU,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE;oBAC3D,KAAK,EAAE,IAAA,YAAK,EAAC,iBAAiB,CAAC;iBAClC,CAAC;aACL,CAAC;YAEF,IAAI,WAAW,EAAE,CAAC;gBACd,MAAM,EAAC,KAAK,EAAE,IAAI,EAAC,GAAG,WAAW,CAAC;gBAClC,IAAI,CAAC,OAAO,CACR,6BAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE;oBAChC,KAAK,EAAE,IAAA,iCAAc,EAAC,cAAc,CAAC;iBACxC,CAAC,EACF,6BAAU,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE;oBAClC,KAAK,EAAE,IAAA,iCAAc,EAAC,eAAe,CAAC;iBACzC,CAAC,CACL,CAAC;YACN,CAAC;YAED,OAAO,gCAAa,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACjD,CAAC;QACD,eAAe,EAAE;YACb,SAAS,EAAE,IAAA,iBAAQ,EAAC,CAAC,IAAgB,EAAE,CAAa,EAAE,EAAE;gBACpD,MAAM,SAAS,GAAU,8BAAsB,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACrE,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,EAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC;gBACpD,IAAI,CAAC,GAAG;oBAAE,OAAO,KAAK,CAAC;gBAEvB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAC7C,MAAM,IAAI,GAAG,IAAA,8CAA0B,EAAC,IAAI,EAAE,6BAAe,CAAC,CAAC;gBAC/D,MAAM,GAAG,GAAG,IAAA,8CAA0B,EAAC,IAAI,EAAE,4BAAc,CAAC,CAAC;gBAC7D,MAAM,KAAK,GAAG,IAAA,8CAA0B,EAAC,IAAI,EAAE,6BAAe,CAAC,CAAC;gBAEhE,IAAI,KAAK,GAAU,IAAI,CAAC;gBAExB,IAAI,IAAI,IAAI,GAAG,IAAI,KAAK,EAAE,CAAC;oBACvB,MAAM,SAAS,GAAG,IAAA,yBAAiB,EAAC,GAAG,CAAC,IAAI,CAAC,CAAC,SAAS,CACnD,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CACtC,CAAC;oBACF,MAAM,YAAY,GAAG,IAAA,yBAAiB,EAClC,KAAK,CAAC,IAAI,CAAC,UAAU,IAAI,4BAAQ,CAAC,KAAK,CAC1C,CAAC,SAAS,CAAC,CAAC;oBAEb,IAAI,YAAY,EAAE,CAAC;wBACf,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC;wBACtD,MAAM,OAAO,GAAG,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC;wBAEvD,MAAM,QAAQ,GAAG,GAAG,CAAC,GAAG,CAAC;wBACzB,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;wBAE3C,KAAK,GAAG;4BACJ,KAAK,EAAE,EAAC,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,EAAC;4BACrC,IAAI,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAC;yBACrC,CAAC;oBACN,CAAC;gBACL,CAAC;gBAED,IAAI,iBAAiB,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC;oBACtC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,8BAAsB,EAAE,KAAK,CAAC,CAAC,CAAC;gBACxE,CAAC;gBAED,OAAO,KAAK,CAAC;YACjB,CAAC,EAAE,GAAG,CAAC;SACV;KACJ;CACJ,CAAC,CAAC;AArFM,QAAA,sBAAsB,0BAqF5B","sourcesContent":["import {Fragment} from 'prosemirror-model';\nimport {Plugin, PluginKey} from 'prosemirror-state';\nimport {\n findParentNode,\n findParentNodeClosestToPos,\n findSelectedNodeOfType,\n // @ts-ignore // TODO: fix cjs build\n} from 'prosemirror-utils';\nimport {Decoration, DecorationSet, type EditorView} from 'prosemirror-view';\n\nimport {throttle} from '../../../../../lodash';\nimport {\n isTableBodyNode,\n isTableCellNode,\n isTableNode,\n isTableRowNode,\n} from '../../../../../table-utils';\nimport {getChildrenOfNode} from '../../../../../utils';\nimport {YfmTableNode} from '../../YfmTableSpecs';\n\nimport {viewB, yfmTableView} from './view';\nimport {yfmTableCellCn, yfmTableCellView} from './yfmTableCellView';\n\nexport const tableControlsPluginKey = new PluginKey('TableControlsPlugin');\n\ntype Meta = State | undefined;\ntype State = null | {\n upper: {from: number; to: number};\n left: {from: number; to: number};\n};\n\nfunction shouldUpdateState(prev: State, curr: State): boolean {\n if (prev === null && curr === null) return false;\n if (prev === null || curr === null) return true;\n if (\n prev.left.from === curr.left.from &&\n prev.left.to === curr.left.to &&\n prev.upper.from === curr.upper.from &&\n prev.upper.to === curr.upper.to\n )\n return false;\n return true;\n}\n\n// TODO: split: plus buttons extension & cell controls extension\nexport const yfmTableControlsPlugin = () =>\n new Plugin<State>({\n key: tableControlsPluginKey,\n state: {\n init: () => null,\n apply: (tr, prev) => {\n const meta: Meta = tr.getMeta(tableControlsPluginKey);\n return meta === undefined ? prev : meta;\n },\n },\n props: {\n nodeViews: {\n [YfmTableNode.Table]: yfmTableView,\n [YfmTableNode.Cell]: yfmTableCellView,\n },\n decorations(state) {\n const pluginState = tableControlsPluginKey.getState(state);\n const parent =\n findParentNode(isTableNode)(state.selection) ||\n findSelectedNodeOfType(state.schema.nodes.yfm_table)(state.selection);\n if (!parent) return null;\n\n const decs = [\n Decoration.node(parent.pos, parent.pos + parent.node.nodeSize, {\n class: viewB('buttons-visible'),\n }),\n ];\n\n if (pluginState) {\n const {upper, left} = pluginState;\n decs.unshift(\n Decoration.node(left.from, left.to, {\n class: yfmTableCellCn('left-visible'),\n }),\n Decoration.node(upper.from, upper.to, {\n class: yfmTableCellCn('upper-visible'),\n }),\n );\n }\n\n return DecorationSet.create(state.doc, decs);\n },\n handleDOMEvents: {\n mousemove: throttle((view: EditorView, e: MouseEvent) => {\n const prevState: State = tableControlsPluginKey.getState(view.state);\n const pos = view.posAtCoords({left: e.x, top: e.y});\n if (!pos) return false;\n\n const $pos = view.state.doc.resolve(pos.pos);\n const cell = findParentNodeClosestToPos($pos, isTableCellNode);\n const row = findParentNodeClosestToPos($pos, isTableRowNode);\n const tbody = findParentNodeClosestToPos($pos, isTableBodyNode);\n\n let state: State = null;\n\n if (cell && row && tbody) {\n const cellIndex = getChildrenOfNode(row.node).findIndex(\n (child) => child.node === cell.node,\n );\n const firstRowCell = getChildrenOfNode(\n tbody.node.firstChild || Fragment.empty,\n )[cellIndex];\n\n if (firstRowCell) {\n const upperFrom = tbody.pos + 2 + firstRowCell.offset;\n const upperTo = upperFrom + firstRowCell.node.nodeSize;\n\n const leftFrom = row.pos;\n const leftTo = row.pos + row.node.nodeSize;\n\n state = {\n upper: {from: upperFrom, to: upperTo},\n left: {from: leftFrom, to: leftTo},\n };\n }\n }\n\n if (shouldUpdateState(prevState, state)) {\n view.dispatch(view.state.tr.setMeta(tableControlsPluginKey, state));\n }\n\n return false;\n }, 100),\n },\n },\n });\n"]}
@@ -1,85 +0,0 @@
1
- .g-md-table-view__hack-strip {
2
- position: absolute;
3
- left: -13px;
4
- display: block;
5
- width: 13px;
6
- height: 100%;
7
- background: transparent;
8
- }
9
- .g-md-table-view__wrapper {
10
- position: relative;
11
- display: inline-block;
12
- max-width: calc(100% - 16px);
13
- margin-right: 16px;
14
- /* stylelint-disable declaration-no-important */
15
- margin-bottom: 16px !important;
16
- }
17
- .g-md-table-view__buttons-visible .g-md-table-view__plus-button-controls {
18
- visibility: visible;
19
- pointer-events: initial;
20
- opacity: 1;
21
- }
22
- .g-md-table-view__plus-button-controls {
23
- visibility: hidden;
24
- pointer-events: none;
25
- opacity: 0;
26
- transition: opacity 150ms ease 50ms;
27
- }
28
- .g-md-table-view__plus-button-controls_right {
29
- position: absolute;
30
- z-index: 100;
31
- top: 0;
32
- right: -18px;
33
- display: flex;
34
- align-items: center;
35
- width: 16px;
36
- height: 100%;
37
- }
38
- .g-md-table-view__plus-button-controls_bottom {
39
- position: absolute;
40
- z-index: 100;
41
- bottom: -18px;
42
- display: flex;
43
- justify-content: center;
44
- width: 100%;
45
- height: 16px;
46
- }
47
- .g-md-table-view__plus-button {
48
- --_--padding: 8px;
49
- display: flex;
50
- justify-content: center;
51
- align-items: center;
52
- height: 100%;
53
- }
54
- .g-md-table-view__plus-button_right {
55
- width: 16px;
56
- height: 100%;
57
- }
58
- .g-md-table-view__plus-button_bottom {
59
- width: 100%;
60
- height: 16px;
61
- }
62
-
63
- .g-md-table-view.g-md-table-view {
64
- z-index: unset;
65
- display: block;
66
- overflow: auto;
67
- box-sizing: content-box;
68
- width: fit-content;
69
- margin: -13px 0 0 -13px;
70
- padding: 13px 0 0 13px;
71
- border: none;
72
- border-radius: 0;
73
- background: transparent !important;
74
- }
75
- .g-md-table-view.g-md-table-view tbody {
76
- border-radius: 8px;
77
- background: var(--g-color-base-background);
78
- box-shadow: inset 0 0 0 1px var(--g-color-line-generic);
79
- }
80
-
81
- .g-md-table-wrapper {
82
- display: inline-block;
83
- width: 100%;
84
- margin-right: 2px;
85
- }
@@ -1,4 +0,0 @@
1
- import { type NodeViewConstructor } from "../../../../../core/index.js";
2
- import "./view.css";
3
- export declare const viewB: import("@bem-react/classname").ClassNameFormatter;
4
- export declare const yfmTableView: NodeViewConstructor;
@@ -1,62 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.yfmTableView = exports.viewB = void 0;
4
- const jsx_runtime_1 = require("react/jsx-runtime");
5
- const uikit_1 = require("@gravity-ui/uikit");
6
- const classname_1 = require("../../../../../classname.js");
7
- const core_1 = require("../../../../../core/index.js");
8
- const ErrorBoundary_1 = require("../../../../../react-utils/ErrorBoundary.js");
9
- const table_utils_1 = require("../../../../../table-utils/index.js");
10
- const ReactRenderer_1 = require("../../../../behavior/ReactRenderer/index.js");
11
- const actions_1 = require("./actions.js");
12
- require("./view.css");
13
- const wrapperB = (0, classname_1.cn)('table-wrapper');
14
- exports.viewB = (0, classname_1.cn)('table-view');
15
- const yfmTableView = (node, view, getPos) => {
16
- const actions = (0, core_1.bindActions)(actions_1.controlActions)(view);
17
- const wrapperElem = document.createElement('div');
18
- wrapperElem.classList.add(wrapperB());
19
- wrapperElem.dataset.qa = 'g-md-yfm-table-wrapper';
20
- const tableElem = document.createElement('table');
21
- tableElem.classList.add((0, exports.viewB)());
22
- const viewElem = document.createElement('div');
23
- viewElem.classList.add((0, exports.viewB)('wrapper'));
24
- const controls = document.createElement('div');
25
- controls.setAttribute('contenteditable', 'false');
26
- const hackStrip = document.createElement('div');
27
- // this is a strip of a table height. it's a hack so that content of table doesn't get outside of editor borders
28
- // and thus editing buttons are not cropped
29
- hackStrip.classList.add((0, exports.viewB)('hack-strip'));
30
- viewElem.appendChild(hackStrip);
31
- viewElem.appendChild(tableElem);
32
- viewElem.appendChild(controls);
33
- wrapperElem.appendChild(viewElem);
34
- const components = [
35
- (0, jsx_runtime_1.jsx)("div", { className: (0, exports.viewB)('plus-button-controls', { bottom: true }), children: (0, jsx_runtime_1.jsx)(uikit_1.Button, { onClick: () => {
36
- actions.appendRow.run({ tablePos: getPos() });
37
- }, className: (0, exports.viewB)('plus-button', { bottom: true }), view: 'normal', qa: "g-md-yfm-table-plus-row", children: "+" }) }, 1),
38
- (0, jsx_runtime_1.jsx)("div", { className: (0, exports.viewB)('plus-button-controls', { right: true }), children: (0, jsx_runtime_1.jsx)(uikit_1.Button, { onClick: () => {
39
- actions.appendColumn.run({ tablePos: getPos() });
40
- }, className: (0, exports.viewB)('plus-button', { right: true }), view: 'normal', qa: "g-md-yfm-table-plus-column", children: "+" }) }, 2),
41
- ];
42
- const renderItem = (0, ReactRenderer_1.getReactRendererFromState)(view.state).createItem('yfm-table-plus-buttons', () => ((0, jsx_runtime_1.jsx)(uikit_1.Portal, { container: controls, children: (0, jsx_runtime_1.jsx)(ErrorBoundary_1.ErrorLoggerBoundary, { children: components }) })));
43
- return {
44
- dom: wrapperElem,
45
- contentDOM: tableElem,
46
- destroy() {
47
- renderItem.remove();
48
- viewElem.remove();
49
- },
50
- update(n) {
51
- const { rows: nRows, cols: nCols } = (0, table_utils_1.getTableDimensions)(n);
52
- const { rows, cols } = (0, table_utils_1.getTableDimensions)(node);
53
- return !(rows !== nRows || cols !== nCols);
54
- },
55
- ignoreMutation(mutation) {
56
- return (mutation.type === 'childList' &&
57
- (mutation.target === controls || controls.contains(mutation.target)));
58
- },
59
- };
60
- };
61
- exports.yfmTableView = yfmTableView;
62
- //# sourceMappingURL=view.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"view.js","sourceRoot":"../../../../../../../src","sources":["extensions/yfm/YfmTable/plugins/YfmTableControls/view.tsx"],"names":[],"mappings":"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","sourcesContent":["import {Button, Portal} from '@gravity-ui/uikit';\n\nimport {cn} from '../../../../../classname';\nimport {type NodeViewConstructor, bindActions} from '../../../../../core';\nimport {ErrorLoggerBoundary} from '../../../../../react-utils/ErrorBoundary';\nimport {getTableDimensions} from '../../../../../table-utils';\nimport {getReactRendererFromState} from '../../../../behavior/ReactRenderer';\n\nimport {controlActions} from './actions';\n\nimport './view.scss';\n\nconst wrapperB = cn('table-wrapper');\nexport const viewB = cn('table-view');\n\nexport const yfmTableView: NodeViewConstructor = (node, view, getPos) => {\n const actions = bindActions(controlActions)(view);\n\n const wrapperElem = document.createElement('div');\n wrapperElem.classList.add(wrapperB());\n wrapperElem.dataset.qa = 'g-md-yfm-table-wrapper';\n\n const tableElem = document.createElement('table');\n tableElem.classList.add(viewB());\n\n const viewElem = document.createElement('div');\n viewElem.classList.add(viewB('wrapper'));\n\n const controls = document.createElement('div');\n controls.setAttribute('contenteditable', 'false');\n\n const hackStrip = document.createElement('div');\n // this is a strip of a table height. it's a hack so that content of table doesn't get outside of editor borders\n // and thus editing buttons are not cropped\n hackStrip.classList.add(viewB('hack-strip'));\n\n viewElem.appendChild(hackStrip);\n viewElem.appendChild(tableElem);\n viewElem.appendChild(controls);\n wrapperElem.appendChild(viewElem);\n\n const components = [\n <div className={viewB('plus-button-controls', {bottom: true})} key={1}>\n <Button\n onClick={() => {\n actions.appendRow.run({tablePos: getPos()});\n }}\n className={viewB('plus-button', {bottom: true})}\n view={'normal'}\n qa=\"g-md-yfm-table-plus-row\"\n >\n +\n </Button>\n </div>,\n <div className={viewB('plus-button-controls', {right: true})} key={2}>\n <Button\n onClick={() => {\n actions.appendColumn.run({tablePos: getPos()});\n }}\n className={viewB('plus-button', {right: true})}\n view={'normal'}\n qa=\"g-md-yfm-table-plus-column\"\n >\n +\n </Button>\n </div>,\n ];\n\n const renderItem = getReactRendererFromState(view.state).createItem(\n 'yfm-table-plus-buttons',\n () => (\n <Portal container={controls}>\n <ErrorLoggerBoundary>{components}</ErrorLoggerBoundary>\n </Portal>\n ),\n );\n\n return {\n dom: wrapperElem,\n contentDOM: tableElem,\n destroy() {\n renderItem.remove();\n viewElem.remove();\n },\n update(n) {\n const {rows: nRows, cols: nCols} = getTableDimensions(n);\n const {rows, cols} = getTableDimensions(node);\n return !(rows !== nRows || cols !== nCols);\n },\n ignoreMutation(mutation) {\n return (\n mutation.type === 'childList' &&\n (mutation.target === controls || controls.contains(mutation.target))\n );\n },\n };\n};\n"]}
@@ -1,37 +0,0 @@
1
- .g-md-table-cell-view__left-button {
2
- position: absolute;
3
- z-index: 110;
4
- top: calc(50% - 14px);
5
- left: -13px;
6
- visibility: hidden;
7
- pointer-events: none;
8
- border-radius: var(--g-border-radius-s);
9
- background: var(--g-color-base-background);
10
- }
11
- .g-md-table-cell-view__left-button:hover {
12
- visibility: visible;
13
- pointer-events: initial;
14
- }
15
- .g-md-table-cell-view__upper-button {
16
- position: absolute;
17
- z-index: 110;
18
- top: -13px;
19
- left: calc(50% - 14px);
20
- visibility: hidden;
21
- pointer-events: none;
22
- border-radius: var(--g-border-radius-s);
23
- background: var(--g-color-base-background);
24
- transform: rotate(90deg);
25
- }
26
- .g-md-table-cell-view__upper-button:hover {
27
- visibility: visible;
28
- pointer-events: initial;
29
- }
30
- .g-md-table-cell-view__upper-visible .g-md-table-cell-view__upper-button {
31
- visibility: visible;
32
- pointer-events: initial;
33
- }
34
- .g-md-table-cell-view__left-visible .g-md-table-cell-view__left-button {
35
- visibility: visible;
36
- pointer-events: initial;
37
- }
@@ -1,4 +0,0 @@
1
- import type { NodeViewConstructor } from 'prosemirror-view';
2
- import "./yfmTableCellView.css";
3
- export declare const yfmTableCellCn: import("@bem-react/classname").ClassNameFormatter;
4
- export declare const yfmTableCellView: NodeViewConstructor;
@@ -1,212 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.yfmTableCellView = exports.yfmTableCellCn = void 0;
4
- const jsx_runtime_1 = require("react/jsx-runtime");
5
- const icons_1 = require("@gravity-ui/icons");
6
- const uikit_1 = require("@gravity-ui/uikit");
7
- // @ts-ignore // TODO: fix cjs build
8
- const prosemirror_utils_1 = require("prosemirror-utils");
9
- const classname_1 = require("../../../../../classname.js");
10
- const core_1 = require("../../../../../core/index.js");
11
- const yfm_table_1 = require("../../../../../i18n/yfm-table/index.js");
12
- const ErrorBoundary_1 = require("../../../../../react-utils/ErrorBoundary.js");
13
- const table_utils_1 = require("../../../../../table-utils/index.js");
14
- const node_children_1 = require("../../../../../utils/node-children.js");
15
- const nodes_1 = require("../../../../../utils/nodes.js");
16
- const ReactRenderer_1 = require("../../../../behavior/ReactRenderer/index.js");
17
- const const_1 = require("../../const.js");
18
- const actions_1 = require("./actions.js");
19
- require("./yfmTableCellView.css");
20
- exports.yfmTableCellCn = (0, classname_1.cn)('table-cell-view');
21
- const b = exports.yfmTableCellCn;
22
- const Controls = function Controls({ columnNumber, rowNumber, view, getParentTable, isInFirstRow, isFirstInRow, }) {
23
- const actions = (0, core_1.bindActions)(actions_1.controlActions)(view);
24
- const controls = [];
25
- if (isFirstInRow) {
26
- controls.push((0, jsx_runtime_1.jsx)(uikit_1.DropdownMenu, { switcherWrapperClassName: b('left-button'), renderSwitcher: (props) => ((0, jsx_runtime_1.jsx)(uikit_1.Button, { view: 'outlined', size: 's', qa: "g-md-yfm-table-row-btn", ...props, children: (0, jsx_runtime_1.jsx)(uikit_1.Icon, { data: icons_1.EllipsisVertical }) })), menuProps: { qa: 'g-md-yfm-table-row-menu' }, items: [
27
- {
28
- text: (0, yfm_table_1.i18n)('row.add.before'),
29
- qa: 'g-md-yfm-table-action-add-row-before',
30
- action: () => actions.appendRow.run({
31
- tablePos: getParentTable()?.pos,
32
- rowNumber,
33
- direction: 'before',
34
- }),
35
- iconStart: (0, jsx_runtime_1.jsx)(uikit_1.Icon, { data: icons_1.ArrowUp }),
36
- disabled: !actions.appendRow.isEnable({
37
- tablePos: getParentTable()?.pos,
38
- rowNumber,
39
- direction: 'before',
40
- }),
41
- },
42
- {
43
- text: (0, yfm_table_1.i18n)('row.add.after'),
44
- qa: 'g-md-yfm-table-action-add-row-after',
45
- action: () => actions.appendRow.run({
46
- tablePos: getParentTable()?.pos,
47
- rowNumber,
48
- direction: 'after',
49
- }),
50
- iconStart: (0, jsx_runtime_1.jsx)(uikit_1.Icon, { data: icons_1.ArrowDown }),
51
- disabled: !actions.appendRow.isEnable({
52
- tablePos: getParentTable()?.pos,
53
- rowNumber,
54
- direction: 'after',
55
- }),
56
- },
57
- {
58
- text: (0, yfm_table_1.i18n)('row.remove'),
59
- qa: 'g-md-yfm-table-action-remove-row',
60
- action: () => actions.deleteRow.run({
61
- rowNumber,
62
- tablePos: getParentTable()?.pos,
63
- }),
64
- iconStart: (0, jsx_runtime_1.jsx)(uikit_1.Icon, { data: icons_1.Xmark }),
65
- disabled: !actions.deleteRow.isEnable({
66
- rowNumber,
67
- tablePos: getParentTable()?.pos,
68
- }),
69
- },
70
- {
71
- theme: 'danger',
72
- text: (0, yfm_table_1.i18n)('table.remove'),
73
- qa: 'g-md-yfm-table-action-remove-table',
74
- action: () => actions.deleteTable.run({
75
- tablePos: getParentTable()?.pos,
76
- tableNode: getParentTable()?.node,
77
- }),
78
- iconStart: (0, jsx_runtime_1.jsx)(uikit_1.Icon, { data: icons_1.TrashBin }),
79
- disabled: !actions.deleteTable.isEnable({
80
- tablePos: getParentTable()?.pos,
81
- tableNode: getParentTable()?.node,
82
- }),
83
- },
84
- ] }, 1));
85
- }
86
- if (isInFirstRow) {
87
- controls.push((0, jsx_runtime_1.jsx)(uikit_1.DropdownMenu, { switcherWrapperClassName: b('upper-button'), renderSwitcher: (props) => ((0, jsx_runtime_1.jsx)(uikit_1.Button, { view: 'outlined', size: 's', qa: "g-md-yfm-table-column-btn", ...props, children: (0, jsx_runtime_1.jsx)(uikit_1.Icon, { data: icons_1.EllipsisVertical }) })), menuProps: { qa: 'g-md-yfm-table-column-menu' }, items: [
88
- {
89
- text: (0, yfm_table_1.i18n)('column.add.before'),
90
- qa: 'g-md-yfm-table-action-add-column-before',
91
- action: () => actions.appendColumn.run({
92
- tablePos: getParentTable()?.pos,
93
- columnNumber,
94
- direction: 'before',
95
- }),
96
- iconStart: (0, jsx_runtime_1.jsx)(uikit_1.Icon, { data: icons_1.ArrowLeft }),
97
- disabled: !actions.appendColumn.isEnable({
98
- tablePos: getParentTable()?.pos,
99
- columnNumber,
100
- direction: 'before',
101
- }),
102
- },
103
- {
104
- text: (0, yfm_table_1.i18n)('column.add.after'),
105
- qa: 'g-md-yfm-table-action-add-column-after',
106
- action: () => actions.appendColumn.run({
107
- tablePos: getParentTable()?.pos,
108
- columnNumber,
109
- direction: 'after',
110
- }),
111
- iconStart: (0, jsx_runtime_1.jsx)(uikit_1.Icon, { data: icons_1.ArrowRight }),
112
- disabled: !actions.appendColumn.isEnable({
113
- tablePos: getParentTable()?.pos,
114
- columnNumber,
115
- direction: 'after',
116
- }),
117
- },
118
- {
119
- text: (0, yfm_table_1.i18n)('column.remove'),
120
- qa: 'g-md-yfm-table-action-remove-column',
121
- action: () => actions.deleteColumn.run({
122
- columnNumber,
123
- tablePos: getParentTable()?.pos,
124
- }),
125
- iconStart: (0, jsx_runtime_1.jsx)(uikit_1.Icon, { data: icons_1.Xmark }),
126
- disabled: !actions.deleteColumn.isEnable({
127
- columnNumber,
128
- tablePos: getParentTable()?.pos,
129
- }),
130
- },
131
- {
132
- theme: 'danger',
133
- text: (0, yfm_table_1.i18n)('table.remove'),
134
- qa: 'g-md-yfm-table-action-remove-table',
135
- action: () => actions.deleteTable.run({
136
- tablePos: getParentTable()?.pos,
137
- tableNode: getParentTable()?.node,
138
- }),
139
- iconStart: (0, jsx_runtime_1.jsx)(uikit_1.Icon, { data: icons_1.TrashBin }),
140
- disabled: !actions.deleteTable.isEnable({
141
- tablePos: getParentTable()?.pos,
142
- tableNode: getParentTable()?.node,
143
- }),
144
- },
145
- ] }, 2));
146
- }
147
- return controls.length ? (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: controls }) : null;
148
- };
149
- const yfmTableCellView = (node, view, getPos) => {
150
- const getParentTable = () => (0, prosemirror_utils_1.findParentNodeClosestToPos)(view.state.doc.resolve(getPos()), table_utils_1.isTableNode);
151
- const parentTable = getParentTable();
152
- const cellCoords = parentTable ? findCellCoords(parentTable.node, node) : null;
153
- // @ts-expect-error
154
- if (!cellCoords)
155
- return {};
156
- const { cellIndex, rowIndex } = cellCoords;
157
- const isFirstRow = rowIndex === 0;
158
- const isFirstColumn = cellIndex === 0;
159
- if (!isFirstRow && !isFirstColumn) {
160
- // in this case, we don't need custom nodeView.
161
- // @ts-expect-error
162
- return {};
163
- }
164
- const dom = document.createElement('td');
165
- if (node.attrs[const_1.YfmTableAttr.Colspan])
166
- dom.setAttribute('colspan', node.attrs[const_1.YfmTableAttr.Colspan]);
167
- if (node.attrs[const_1.YfmTableAttr.Rowspan])
168
- dom.setAttribute('rowspan', node.attrs[const_1.YfmTableAttr.Rowspan]);
169
- if (node.attrs[const_1.YfmTableAttr.CellAlign]) {
170
- dom.classList.add(node.attrs[const_1.YfmTableAttr.CellAlign]);
171
- dom.setAttribute(const_1.YfmTableAttr.CellAlign, node.attrs[const_1.YfmTableAttr.Rowspan]);
172
- }
173
- const contentDOM = document.createElement('div');
174
- const control = document.createElement('span');
175
- control.setAttribute('style', 'width: 0; height: 0; float: left;');
176
- dom.setAttribute('style', 'position: relative; overflow: visible;');
177
- dom.appendChild(contentDOM);
178
- dom.appendChild(control);
179
- const renderItem = (0, ReactRenderer_1.getReactRendererFromState)(view.state).createItem('yfm-table-cell-view', () => ((0, jsx_runtime_1.jsx)(uikit_1.Portal, { container: control, children: (0, jsx_runtime_1.jsx)(ErrorBoundary_1.ErrorLoggerBoundary, { children: (0, jsx_runtime_1.jsx)(Controls, { columnNumber: cellIndex, rowNumber: rowIndex, isFirstInRow: isFirstColumn, isInFirstRow: isFirstRow, getParentTable: getParentTable, view: view }) }) })));
180
- return {
181
- dom,
182
- contentDOM,
183
- destroy() {
184
- renderItem.remove();
185
- },
186
- ignoreMutation(mutation) {
187
- return mutation.target === control || control.contains(mutation.target);
188
- },
189
- update(n) {
190
- const { rows: nRows, cols: nCols } = (0, table_utils_1.getTableDimensions)(n);
191
- const { rows, cols } = (0, table_utils_1.getTableDimensions)(node);
192
- return !(rows !== nRows || cols !== nCols);
193
- },
194
- };
195
- };
196
- exports.yfmTableCellView = yfmTableCellView;
197
- function findCellCoords(table, cell) {
198
- if (!table.lastChild)
199
- return null;
200
- const rows = (0, nodes_1.getChildrenOfNode)(table.lastChild); // children of tBody
201
- for (const row of rows) {
202
- const node = (0, node_children_1.getChildByNode)(row.node, cell);
203
- if (node) {
204
- return {
205
- rowIndex: row.index,
206
- cellIndex: node.index,
207
- };
208
- }
209
- }
210
- return null;
211
- }
212
- //# sourceMappingURL=yfmTableCellView.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"yfmTableCellView.js","sourceRoot":"../../../../../../../src","sources":["extensions/yfm/YfmTable/plugins/YfmTableControls/yfmTableCellView.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n ArrowDown,\n ArrowLeft,\n ArrowRight,\n ArrowUp,\n EllipsisVertical,\n TrashBin,\n Xmark,\n} from '@gravity-ui/icons';\nimport {Button, DropdownMenu, Icon, Portal} from '@gravity-ui/uikit';\nimport type {Node} from 'prosemirror-model';\n// @ts-ignore // TODO: fix cjs build\nimport {type NodeWithPos, findParentNodeClosestToPos} from 'prosemirror-utils';\nimport type {EditorView, NodeView, NodeViewConstructor} from 'prosemirror-view';\n\nimport {cn} from '../../../../../classname';\nimport {bindActions} from '../../../../../core';\nimport {i18n} from '../../../../../i18n/yfm-table';\nimport {ErrorLoggerBoundary} from '../../../../../react-utils/ErrorBoundary';\nimport {getTableDimensions, isTableNode} from '../../../../../table-utils';\nimport {getChildByNode} from '../../../../../utils/node-children';\nimport {getChildrenOfNode} from '../../../../../utils/nodes';\nimport {getReactRendererFromState} from '../../../../behavior/ReactRenderer';\nimport {YfmTableAttr} from '../../const';\n\nimport {controlActions} from './actions';\n\nimport './yfmTableCellView.scss';\n\nexport const yfmTableCellCn = cn('table-cell-view');\nconst b = yfmTableCellCn;\n\ninterface Props {\n columnNumber: number;\n rowNumber: number;\n view: EditorView;\n getParentTable: () => NodeWithPos | undefined;\n isInFirstRow: boolean;\n isFirstInRow: boolean;\n}\n\nconst Controls: React.FC<Props> = function Controls({\n columnNumber,\n rowNumber,\n view,\n getParentTable,\n isInFirstRow,\n isFirstInRow,\n}) {\n const actions = bindActions(controlActions)(view);\n\n const controls: React.ReactElement[] = [];\n\n if (isFirstInRow) {\n controls.push(\n <DropdownMenu\n key={1}\n switcherWrapperClassName={b('left-button')}\n renderSwitcher={(props) => (\n <Button view={'outlined'} size={'s'} qa=\"g-md-yfm-table-row-btn\" {...props}>\n <Icon data={EllipsisVertical} />\n </Button>\n )}\n menuProps={{qa: 'g-md-yfm-table-row-menu'}}\n items={[\n {\n text: i18n('row.add.before'),\n qa: 'g-md-yfm-table-action-add-row-before',\n action: () =>\n actions.appendRow.run({\n tablePos: getParentTable()?.pos,\n rowNumber,\n direction: 'before',\n }),\n iconStart: <Icon data={ArrowUp} />,\n disabled: !actions.appendRow.isEnable({\n tablePos: getParentTable()?.pos,\n rowNumber,\n direction: 'before',\n }),\n },\n {\n text: i18n('row.add.after'),\n qa: 'g-md-yfm-table-action-add-row-after',\n action: () =>\n actions.appendRow.run({\n tablePos: getParentTable()?.pos,\n rowNumber,\n direction: 'after',\n }),\n iconStart: <Icon data={ArrowDown} />,\n disabled: !actions.appendRow.isEnable({\n tablePos: getParentTable()?.pos,\n rowNumber,\n direction: 'after',\n }),\n },\n {\n text: i18n('row.remove'),\n qa: 'g-md-yfm-table-action-remove-row',\n action: () =>\n actions.deleteRow.run({\n rowNumber,\n tablePos: getParentTable()?.pos,\n }),\n iconStart: <Icon data={Xmark} />,\n disabled: !actions.deleteRow.isEnable({\n rowNumber,\n tablePos: getParentTable()?.pos,\n }),\n },\n {\n theme: 'danger',\n text: i18n('table.remove'),\n qa: 'g-md-yfm-table-action-remove-table',\n action: () =>\n actions.deleteTable.run({\n tablePos: getParentTable()?.pos,\n tableNode: getParentTable()?.node,\n }),\n iconStart: <Icon data={TrashBin} />,\n disabled: !actions.deleteTable.isEnable({\n tablePos: getParentTable()?.pos,\n tableNode: getParentTable()?.node,\n }),\n },\n ]}\n />,\n );\n }\n\n if (isInFirstRow) {\n controls.push(\n <DropdownMenu\n key={2}\n switcherWrapperClassName={b('upper-button')}\n renderSwitcher={(props) => (\n <Button view={'outlined'} size={'s'} qa=\"g-md-yfm-table-column-btn\" {...props}>\n <Icon data={EllipsisVertical} />\n </Button>\n )}\n menuProps={{qa: 'g-md-yfm-table-column-menu'}}\n items={[\n {\n text: i18n('column.add.before'),\n qa: 'g-md-yfm-table-action-add-column-before',\n action: () =>\n actions.appendColumn.run({\n tablePos: getParentTable()?.pos,\n columnNumber,\n direction: 'before',\n }),\n iconStart: <Icon data={ArrowLeft} />,\n disabled: !actions.appendColumn.isEnable({\n tablePos: getParentTable()?.pos,\n columnNumber,\n direction: 'before',\n }),\n },\n {\n text: i18n('column.add.after'),\n qa: 'g-md-yfm-table-action-add-column-after',\n action: () =>\n actions.appendColumn.run({\n tablePos: getParentTable()?.pos,\n columnNumber,\n direction: 'after',\n }),\n iconStart: <Icon data={ArrowRight} />,\n disabled: !actions.appendColumn.isEnable({\n tablePos: getParentTable()?.pos,\n columnNumber,\n direction: 'after',\n }),\n },\n {\n text: i18n('column.remove'),\n qa: 'g-md-yfm-table-action-remove-column',\n action: () =>\n actions.deleteColumn.run({\n columnNumber,\n tablePos: getParentTable()?.pos,\n }),\n iconStart: <Icon data={Xmark} />,\n disabled: !actions.deleteColumn.isEnable({\n columnNumber,\n tablePos: getParentTable()?.pos,\n }),\n },\n {\n theme: 'danger',\n text: i18n('table.remove'),\n qa: 'g-md-yfm-table-action-remove-table',\n action: () =>\n actions.deleteTable.run({\n tablePos: getParentTable()?.pos,\n tableNode: getParentTable()?.node,\n }),\n iconStart: <Icon data={TrashBin} />,\n disabled: !actions.deleteTable.isEnable({\n tablePos: getParentTable()?.pos,\n tableNode: getParentTable()?.node,\n }),\n },\n ]}\n />,\n );\n }\n\n return controls.length ? <>{controls}</> : null;\n};\n\nexport const yfmTableCellView: NodeViewConstructor = (node, view, getPos): NodeView => {\n const getParentTable = () =>\n findParentNodeClosestToPos(view.state.doc.resolve(getPos()!), isTableNode);\n\n const parentTable = getParentTable();\n\n const cellCoords = parentTable ? findCellCoords(parentTable.node, node) : null;\n\n // @ts-expect-error\n if (!cellCoords) return {};\n\n const {cellIndex, rowIndex} = cellCoords;\n const isFirstRow = rowIndex === 0;\n const isFirstColumn = cellIndex === 0;\n\n if (!isFirstRow && !isFirstColumn) {\n // in this case, we don't need custom nodeView.\n // @ts-expect-error\n return {};\n }\n\n const dom = document.createElement('td');\n if (node.attrs[YfmTableAttr.Colspan])\n dom.setAttribute('colspan', node.attrs[YfmTableAttr.Colspan]);\n if (node.attrs[YfmTableAttr.Rowspan])\n dom.setAttribute('rowspan', node.attrs[YfmTableAttr.Rowspan]);\n if (node.attrs[YfmTableAttr.CellAlign]) {\n dom.classList.add(node.attrs[YfmTableAttr.CellAlign]);\n dom.setAttribute(YfmTableAttr.CellAlign, node.attrs[YfmTableAttr.Rowspan]);\n }\n\n const contentDOM = document.createElement('div');\n const control = document.createElement('span');\n control.setAttribute('style', 'width: 0; height: 0; float: left;');\n dom.setAttribute('style', 'position: relative; overflow: visible;');\n\n dom.appendChild(contentDOM);\n dom.appendChild(control);\n\n const renderItem = getReactRendererFromState(view.state).createItem(\n 'yfm-table-cell-view',\n () => (\n <Portal container={control}>\n <ErrorLoggerBoundary>\n <Controls\n columnNumber={cellIndex}\n rowNumber={rowIndex}\n isFirstInRow={isFirstColumn}\n isInFirstRow={isFirstRow}\n getParentTable={getParentTable}\n view={view}\n />\n </ErrorLoggerBoundary>\n </Portal>\n ),\n );\n\n return {\n dom,\n contentDOM,\n destroy() {\n renderItem.remove();\n },\n ignoreMutation(mutation) {\n return mutation.target === control || control.contains(mutation.target);\n },\n update(n) {\n const {rows: nRows, cols: nCols} = getTableDimensions(n);\n const {rows, cols} = getTableDimensions(node);\n\n return !(rows !== nRows || cols !== nCols);\n },\n };\n};\n\nfunction findCellCoords(table: Node, cell: Node) {\n if (!table.lastChild) return null;\n const rows = getChildrenOfNode(table.lastChild); // children of tBody\n for (const row of rows) {\n const node = getChildByNode(row.node, cell);\n if (node) {\n return {\n rowIndex: row.index,\n cellIndex: node.index,\n };\n }\n }\n return null;\n}\n"]}
@@ -1,3 +0,0 @@
1
- import type { SVGProps } from 'react';
2
- declare const Mermaid: (props: SVGProps<SVGSVGElement>) => JSX.Element;
3
- export default Mermaid;
@@ -1,11 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const jsx_runtime_1 = require("react/jsx-runtime");
4
- const Mermaid = (props) => ((0, jsx_runtime_1.jsx)("svg", { xmlns: "http://www.w3.org/2000/svg", width: 491, height: 491, viewBox: "0 0 491 491", style: {
5
- fillRule: 'evenodd',
6
- clipRule: 'evenodd',
7
- strokeLinejoin: 'round',
8
- strokeMiterlimit: 2,
9
- }, ...props, children: (0, jsx_runtime_1.jsx)("path", { d: "M 490.16 405.55 C 490.16 452.248 452.248 490.16 405.55 490.16 L 84.61 490.16 C 37.912 490.16 0 452.248 0 405.55 L 0 84.61 C 0 37.912 37.912 0 84.61 0 L 405.55 0 C 452.248 0 490.16 37.912 490.16 84.61 Z M 407.48 111.18 C 335.587 108.103 269.573 152.338 245.08 220 C 220.587 152.338 154.573 108.103 82.68 111.18 C 80.285 168.229 107.577 222.632 154.74 254.82 C 178.908 271.419 193.35 298.951 193.27 328.27 L 193.27 379.13 L 296.9 379.13 L 296.9 328.27 C 296.816 298.953 311.255 271.42 335.42 254.82 C 382.596 222.644 409.892 168.233 407.48 111.18 Z", fill: "currentColor" }) }));
10
- exports.default = Mermaid;
11
- //# sourceMappingURL=Mermaid.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Mermaid.js","sourceRoot":"../../../src","sources":["icons/Mermaid.tsx"],"names":[],"mappings":";;;AACA,MAAM,OAAO,GAAG,CAAC,KAA8B,EAAE,EAAE,CAAC,CAChD,gCACI,KAAK,EAAC,4BAA4B,EAClC,KAAK,EAAE,GAAG,EACV,MAAM,EAAE,GAAG,EACX,OAAO,EAAC,aAAa,EACrB,KAAK,EAAE;QACH,QAAQ,EAAE,SAAS;QACnB,QAAQ,EAAE,SAAS;QACnB,cAAc,EAAE,OAAO;QACvB,gBAAgB,EAAE,CAAC;KACtB,KACG,KAAK,YAET,iCACI,CAAC,EAAC,oiBAAoiB,EACtiB,IAAI,EAAC,cAAc,GACrB,GACA,CACT,CAAC;AACF,kBAAe,OAAO,CAAC","sourcesContent":["import type {SVGProps} from 'react';\nconst Mermaid = (props: SVGProps<SVGSVGElement>) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={491}\n height={491}\n viewBox=\"0 0 491 491\"\n style={{\n fillRule: 'evenodd',\n clipRule: 'evenodd',\n strokeLinejoin: 'round',\n strokeMiterlimit: 2,\n }}\n {...props}\n >\n <path\n d=\"M 490.16 405.55 C 490.16 452.248 452.248 490.16 405.55 490.16 L 84.61 490.16 C 37.912 490.16 0 452.248 0 405.55 L 0 84.61 C 0 37.912 37.912 0 84.61 0 L 405.55 0 C 452.248 0 490.16 37.912 490.16 84.61 Z M 407.48 111.18 C 335.587 108.103 269.573 152.338 245.08 220 C 220.587 152.338 154.573 108.103 82.68 111.18 C 80.285 168.229 107.577 222.632 154.74 254.82 C 178.908 271.419 193.35 298.951 193.27 328.27 L 193.27 379.13 L 296.9 379.13 L 296.9 328.27 C 296.816 298.953 311.255 271.42 335.42 254.82 C 382.596 222.644 409.892 168.233 407.48 111.18 Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\nexport default Mermaid;\n"]}
@@ -1,3 +0,0 @@
1
- import type { SVGProps } from 'react';
2
- declare const Mono: (props: SVGProps<SVGSVGElement>) => JSX.Element;
3
- export default Mono;
@@ -1,6 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const jsx_runtime_1 = require("react/jsx-runtime");
4
- const Mono = (props) => ((0, jsx_runtime_1.jsx)("svg", { xmlns: "http://www.w3.org/2000/svg", width: 16, height: 16, fill: "none", viewBox: "0 0 16 16", ...props, children: (0, jsx_runtime_1.jsx)("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M3.5 3.88862V13.25C3.5 13.6642 3.16421 14 2.75 14C2.33579 14 2 13.6642 2 13.25V3.32392C2 2.59274 2.59274 2 3.32392 2C3.75884 2 4.16601 2.21361 4.41321 2.57145L8 7.76376L11.5868 2.57145C11.834 2.21361 12.2412 2 12.6761 2C13.4073 2 14 2.59274 14 3.32392V13.25C14 13.6642 13.6642 14 13.25 14C12.8358 14 12.5 13.6642 12.5 13.25V3.88862L8.61708 9.50961C8.47705 9.71232 8.24638 9.83333 8 9.83333C7.75362 9.83333 7.52295 9.71232 7.38292 9.50961L3.5 3.88862Z", fill: "currentColor" }) }));
5
- exports.default = Mono;
6
- //# sourceMappingURL=Mono.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Mono.js","sourceRoot":"../../../src","sources":["icons/Mono.tsx"],"names":[],"mappings":";;;AACA,MAAM,IAAI,GAAG,CAAC,KAA8B,EAAE,EAAE,CAAC,CAC7C,gCACI,KAAK,EAAC,4BAA4B,EAClC,KAAK,EAAE,EAAE,EACT,MAAM,EAAE,EAAE,EACV,IAAI,EAAC,MAAM,EACX,OAAO,EAAC,WAAW,KACf,KAAK,YAET,iCACI,QAAQ,EAAC,SAAS,EAClB,QAAQ,EAAC,SAAS,EAClB,CAAC,EAAC,ocAAoc,EACtc,IAAI,EAAC,cAAc,GACrB,GACA,CACT,CAAC;AACF,kBAAe,IAAI,CAAC","sourcesContent":["import type {SVGProps} from 'react';\nconst Mono = (props: SVGProps<SVGSVGElement>) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={16}\n height={16}\n fill=\"none\"\n viewBox=\"0 0 16 16\"\n {...props}\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M3.5 3.88862V13.25C3.5 13.6642 3.16421 14 2.75 14C2.33579 14 2 13.6642 2 13.25V3.32392C2 2.59274 2.59274 2 3.32392 2C3.75884 2 4.16601 2.21361 4.41321 2.57145L8 7.76376L11.5868 2.57145C11.834 2.21361 12.2412 2 12.6761 2C13.4073 2 14 2.59274 14 3.32392V13.25C14 13.6642 13.6642 14 13.25 14C12.8358 14 12.5 13.6642 12.5 13.25V3.88862L8.61708 9.50961C8.47705 9.71232 8.24638 9.83333 8 9.83333C7.75362 9.83333 7.52295 9.71232 7.38292 9.50961L3.5 3.88862Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\nexport default Mono;\n"]}