@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,3 +0,0 @@
1
- import type { SVGProps } from 'react';
2
- declare const Tabs: (props: SVGProps<SVGSVGElement>) => JSX.Element;
3
- export default Tabs;
@@ -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 Tabs = (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: "M5.25 3.5L4 3.5C3.17157 3.5 2.5 4.17157 2.5 5L2.5 11C2.5 11.8284 3.17157 12.5 4 12.5L12 12.5C12.8284 12.5 13.5 11.8284 13.5 11L13.5 7L10 7L6 7C5.80109 7 5.61032 6.92098 5.46967 6.78033C5.32902 6.63968 5.25 6.44891 5.25 6.25L5.25 3.5ZM6.75 3.5L9.25 3.5L9.25 5.5L6.75 5.5L6.75 3.5ZM10.75 3.5L12 3.5C12.8284 3.5 13.5 4.17157 13.5 5L13.5 5.5L10.75 5.5L10.75 3.5ZM15 5C15 3.34315 13.6569 2 12 2L4 2C2.34315 2 0.999999 3.34314 0.999999 5L0.999998 11C0.999998 12.6569 2.34314 14 4 14L12 14C13.6569 14 15 12.6569 15 11L15 5Z", fill: "currentColor" }) }));
5
- exports.default = Tabs;
6
- //# sourceMappingURL=Tabs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Tabs.js","sourceRoot":"../../../src","sources":["icons/Tabs.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,sgBAAsgB,EACxgB,IAAI,EAAC,cAAc,GACrB,GACA,CACT,CAAC;AACF,kBAAe,IAAI,CAAC","sourcesContent":["import type {SVGProps} from 'react';\nconst Tabs = (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=\"M5.25 3.5L4 3.5C3.17157 3.5 2.5 4.17157 2.5 5L2.5 11C2.5 11.8284 3.17157 12.5 4 12.5L12 12.5C12.8284 12.5 13.5 11.8284 13.5 11L13.5 7L10 7L6 7C5.80109 7 5.61032 6.92098 5.46967 6.78033C5.32902 6.63968 5.25 6.44891 5.25 6.25L5.25 3.5ZM6.75 3.5L9.25 3.5L9.25 5.5L6.75 5.5L6.75 3.5ZM10.75 3.5L12 3.5C12.8284 3.5 13.5 4.17157 13.5 5L13.5 5.5L10.75 5.5L10.75 3.5ZM15 5C15 3.34315 13.6569 2 12 2L4 2C2.34315 2 0.999999 3.34314 0.999999 5L0.999998 11C0.999998 12.6569 2.34314 14 4 14L12 14C13.6569 14 15 12.6569 15 11L15 5Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\nexport default Tabs;\n"]}
@@ -1,14 +0,0 @@
1
- import { Plugin, PluginKey } from 'prosemirror-state';
2
- export declare const tableControlsPluginKey: PluginKey<any>;
3
- type State = null | {
4
- upper: {
5
- from: number;
6
- to: number;
7
- };
8
- left: {
9
- from: number;
10
- to: number;
11
- };
12
- };
13
- export declare const yfmTableControlsPlugin: () => Plugin<State>;
14
- export {};
@@ -1,95 +0,0 @@
1
- import { Fragment } from 'prosemirror-model';
2
- import { Plugin, PluginKey } from 'prosemirror-state';
3
- import { findParentNode, findParentNodeClosestToPos, findSelectedNodeOfType,
4
- // @ts-ignore // TODO: fix cjs build
5
- } from 'prosemirror-utils';
6
- import { Decoration, DecorationSet } from 'prosemirror-view';
7
- import { throttle } from "../../../../../lodash.js";
8
- import { isTableBodyNode, isTableCellNode, isTableNode, isTableRowNode, } from "../../../../../table-utils/index.js";
9
- import { getChildrenOfNode } from "../../../../../utils/index.js";
10
- import { YfmTableNode } from "../../YfmTableSpecs/index.js";
11
- import { viewB, yfmTableView } from "./view.js";
12
- import { yfmTableCellCn, yfmTableCellView } from "./yfmTableCellView.js";
13
- export const tableControlsPluginKey = new PluginKey('TableControlsPlugin');
14
- function shouldUpdateState(prev, curr) {
15
- if (prev === null && curr === null)
16
- return false;
17
- if (prev === null || curr === null)
18
- return true;
19
- if (prev.left.from === curr.left.from &&
20
- prev.left.to === curr.left.to &&
21
- prev.upper.from === curr.upper.from &&
22
- prev.upper.to === curr.upper.to)
23
- return false;
24
- return true;
25
- }
26
- // TODO: split: plus buttons extension & cell controls extension
27
- export const yfmTableControlsPlugin = () => new Plugin({
28
- key: tableControlsPluginKey,
29
- state: {
30
- init: () => null,
31
- apply: (tr, prev) => {
32
- const meta = tr.getMeta(tableControlsPluginKey);
33
- return meta === undefined ? prev : meta;
34
- },
35
- },
36
- props: {
37
- nodeViews: {
38
- [YfmTableNode.Table]: yfmTableView,
39
- [YfmTableNode.Cell]: yfmTableCellView,
40
- },
41
- decorations(state) {
42
- const pluginState = tableControlsPluginKey.getState(state);
43
- const parent = findParentNode(isTableNode)(state.selection) ||
44
- findSelectedNodeOfType(state.schema.nodes.yfm_table)(state.selection);
45
- if (!parent)
46
- return null;
47
- const decs = [
48
- Decoration.node(parent.pos, parent.pos + parent.node.nodeSize, {
49
- class: viewB('buttons-visible'),
50
- }),
51
- ];
52
- if (pluginState) {
53
- const { upper, left } = pluginState;
54
- decs.unshift(Decoration.node(left.from, left.to, {
55
- class: yfmTableCellCn('left-visible'),
56
- }), Decoration.node(upper.from, upper.to, {
57
- class: yfmTableCellCn('upper-visible'),
58
- }));
59
- }
60
- return DecorationSet.create(state.doc, decs);
61
- },
62
- handleDOMEvents: {
63
- mousemove: throttle((view, e) => {
64
- const prevState = tableControlsPluginKey.getState(view.state);
65
- const pos = view.posAtCoords({ left: e.x, top: e.y });
66
- if (!pos)
67
- return false;
68
- const $pos = view.state.doc.resolve(pos.pos);
69
- const cell = findParentNodeClosestToPos($pos, isTableCellNode);
70
- const row = findParentNodeClosestToPos($pos, isTableRowNode);
71
- const tbody = findParentNodeClosestToPos($pos, isTableBodyNode);
72
- let state = null;
73
- if (cell && row && tbody) {
74
- const cellIndex = getChildrenOfNode(row.node).findIndex((child) => child.node === cell.node);
75
- const firstRowCell = getChildrenOfNode(tbody.node.firstChild || Fragment.empty)[cellIndex];
76
- if (firstRowCell) {
77
- const upperFrom = tbody.pos + 2 + firstRowCell.offset;
78
- const upperTo = upperFrom + firstRowCell.node.nodeSize;
79
- const leftFrom = row.pos;
80
- const leftTo = row.pos + row.node.nodeSize;
81
- state = {
82
- upper: { from: upperFrom, to: upperTo },
83
- left: { from: leftFrom, to: leftTo },
84
- };
85
- }
86
- }
87
- if (shouldUpdateState(prevState, state)) {
88
- view.dispatch(view.state.tr.setMeta(tableControlsPluginKey, state));
89
- }
90
- return false;
91
- }, 100),
92
- },
93
- },
94
- });
95
- //# 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":"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","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,58 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { Button, Portal } from '@gravity-ui/uikit';
3
- import { cn } from "../../../../../classname.js";
4
- import { bindActions } from "../../../../../core/index.js";
5
- import { ErrorLoggerBoundary } from "../../../../../react-utils/ErrorBoundary.js";
6
- import { getTableDimensions } from "../../../../../table-utils/index.js";
7
- import { getReactRendererFromState } from "../../../../behavior/ReactRenderer/index.js";
8
- import { controlActions } from "./actions.js";
9
- import "./view.css";
10
- const wrapperB = cn('table-wrapper');
11
- export const viewB = cn('table-view');
12
- export const yfmTableView = (node, view, getPos) => {
13
- const actions = bindActions(controlActions)(view);
14
- const wrapperElem = document.createElement('div');
15
- wrapperElem.classList.add(wrapperB());
16
- wrapperElem.dataset.qa = 'g-md-yfm-table-wrapper';
17
- const tableElem = document.createElement('table');
18
- tableElem.classList.add(viewB());
19
- const viewElem = document.createElement('div');
20
- viewElem.classList.add(viewB('wrapper'));
21
- const controls = document.createElement('div');
22
- controls.setAttribute('contenteditable', 'false');
23
- const hackStrip = document.createElement('div');
24
- // this is a strip of a table height. it's a hack so that content of table doesn't get outside of editor borders
25
- // and thus editing buttons are not cropped
26
- hackStrip.classList.add(viewB('hack-strip'));
27
- viewElem.appendChild(hackStrip);
28
- viewElem.appendChild(tableElem);
29
- viewElem.appendChild(controls);
30
- wrapperElem.appendChild(viewElem);
31
- const components = [
32
- _jsx("div", { className: viewB('plus-button-controls', { bottom: true }), children: _jsx(Button, { onClick: () => {
33
- actions.appendRow.run({ tablePos: getPos() });
34
- }, className: viewB('plus-button', { bottom: true }), view: 'normal', qa: "g-md-yfm-table-plus-row", children: "+" }) }, 1),
35
- _jsx("div", { className: viewB('plus-button-controls', { right: true }), children: _jsx(Button, { onClick: () => {
36
- actions.appendColumn.run({ tablePos: getPos() });
37
- }, className: viewB('plus-button', { right: true }), view: 'normal', qa: "g-md-yfm-table-plus-column", children: "+" }) }, 2),
38
- ];
39
- const renderItem = getReactRendererFromState(view.state).createItem('yfm-table-plus-buttons', () => (_jsx(Portal, { container: controls, children: _jsx(ErrorLoggerBoundary, { children: components }) })));
40
- return {
41
- dom: wrapperElem,
42
- contentDOM: tableElem,
43
- destroy() {
44
- renderItem.remove();
45
- viewElem.remove();
46
- },
47
- update(n) {
48
- const { rows: nRows, cols: nCols } = getTableDimensions(n);
49
- const { rows, cols } = getTableDimensions(node);
50
- return !(rows !== nRows || cols !== nCols);
51
- },
52
- ignoreMutation(mutation) {
53
- return (mutation.type === 'childList' &&
54
- (mutation.target === controls || controls.contains(mutation.target)));
55
- },
56
- };
57
- };
58
- //# 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,208 +0,0 @@
1
- import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
2
- import { ArrowDown, ArrowLeft, ArrowRight, ArrowUp, EllipsisVertical, TrashBin, Xmark, } from '@gravity-ui/icons';
3
- import { Button, DropdownMenu, Icon, Portal } from '@gravity-ui/uikit';
4
- // @ts-ignore // TODO: fix cjs build
5
- import { findParentNodeClosestToPos } from 'prosemirror-utils';
6
- import { cn } from "../../../../../classname.js";
7
- import { bindActions } from "../../../../../core/index.js";
8
- import { i18n } from "../../../../../i18n/yfm-table/index.js";
9
- import { ErrorLoggerBoundary } from "../../../../../react-utils/ErrorBoundary.js";
10
- import { getTableDimensions, isTableNode } from "../../../../../table-utils/index.js";
11
- import { getChildByNode } from "../../../../../utils/node-children.js";
12
- import { getChildrenOfNode } from "../../../../../utils/nodes.js";
13
- import { getReactRendererFromState } from "../../../../behavior/ReactRenderer/index.js";
14
- import { YfmTableAttr } from "../../const.js";
15
- import { controlActions } from "./actions.js";
16
- import "./yfmTableCellView.css";
17
- export const yfmTableCellCn = cn('table-cell-view');
18
- const b = yfmTableCellCn;
19
- const Controls = function Controls({ columnNumber, rowNumber, view, getParentTable, isInFirstRow, isFirstInRow, }) {
20
- const actions = bindActions(controlActions)(view);
21
- const controls = [];
22
- if (isFirstInRow) {
23
- controls.push(_jsx(DropdownMenu, { switcherWrapperClassName: b('left-button'), renderSwitcher: (props) => (_jsx(Button, { view: 'outlined', size: 's', qa: "g-md-yfm-table-row-btn", ...props, children: _jsx(Icon, { data: EllipsisVertical }) })), menuProps: { qa: 'g-md-yfm-table-row-menu' }, items: [
24
- {
25
- text: i18n('row.add.before'),
26
- qa: 'g-md-yfm-table-action-add-row-before',
27
- action: () => actions.appendRow.run({
28
- tablePos: getParentTable()?.pos,
29
- rowNumber,
30
- direction: 'before',
31
- }),
32
- iconStart: _jsx(Icon, { data: ArrowUp }),
33
- disabled: !actions.appendRow.isEnable({
34
- tablePos: getParentTable()?.pos,
35
- rowNumber,
36
- direction: 'before',
37
- }),
38
- },
39
- {
40
- text: i18n('row.add.after'),
41
- qa: 'g-md-yfm-table-action-add-row-after',
42
- action: () => actions.appendRow.run({
43
- tablePos: getParentTable()?.pos,
44
- rowNumber,
45
- direction: 'after',
46
- }),
47
- iconStart: _jsx(Icon, { data: ArrowDown }),
48
- disabled: !actions.appendRow.isEnable({
49
- tablePos: getParentTable()?.pos,
50
- rowNumber,
51
- direction: 'after',
52
- }),
53
- },
54
- {
55
- text: i18n('row.remove'),
56
- qa: 'g-md-yfm-table-action-remove-row',
57
- action: () => actions.deleteRow.run({
58
- rowNumber,
59
- tablePos: getParentTable()?.pos,
60
- }),
61
- iconStart: _jsx(Icon, { data: Xmark }),
62
- disabled: !actions.deleteRow.isEnable({
63
- rowNumber,
64
- tablePos: getParentTable()?.pos,
65
- }),
66
- },
67
- {
68
- theme: 'danger',
69
- text: i18n('table.remove'),
70
- qa: 'g-md-yfm-table-action-remove-table',
71
- action: () => actions.deleteTable.run({
72
- tablePos: getParentTable()?.pos,
73
- tableNode: getParentTable()?.node,
74
- }),
75
- iconStart: _jsx(Icon, { data: TrashBin }),
76
- disabled: !actions.deleteTable.isEnable({
77
- tablePos: getParentTable()?.pos,
78
- tableNode: getParentTable()?.node,
79
- }),
80
- },
81
- ] }, 1));
82
- }
83
- if (isInFirstRow) {
84
- controls.push(_jsx(DropdownMenu, { switcherWrapperClassName: b('upper-button'), renderSwitcher: (props) => (_jsx(Button, { view: 'outlined', size: 's', qa: "g-md-yfm-table-column-btn", ...props, children: _jsx(Icon, { data: EllipsisVertical }) })), menuProps: { qa: 'g-md-yfm-table-column-menu' }, items: [
85
- {
86
- text: i18n('column.add.before'),
87
- qa: 'g-md-yfm-table-action-add-column-before',
88
- action: () => actions.appendColumn.run({
89
- tablePos: getParentTable()?.pos,
90
- columnNumber,
91
- direction: 'before',
92
- }),
93
- iconStart: _jsx(Icon, { data: ArrowLeft }),
94
- disabled: !actions.appendColumn.isEnable({
95
- tablePos: getParentTable()?.pos,
96
- columnNumber,
97
- direction: 'before',
98
- }),
99
- },
100
- {
101
- text: i18n('column.add.after'),
102
- qa: 'g-md-yfm-table-action-add-column-after',
103
- action: () => actions.appendColumn.run({
104
- tablePos: getParentTable()?.pos,
105
- columnNumber,
106
- direction: 'after',
107
- }),
108
- iconStart: _jsx(Icon, { data: ArrowRight }),
109
- disabled: !actions.appendColumn.isEnable({
110
- tablePos: getParentTable()?.pos,
111
- columnNumber,
112
- direction: 'after',
113
- }),
114
- },
115
- {
116
- text: i18n('column.remove'),
117
- qa: 'g-md-yfm-table-action-remove-column',
118
- action: () => actions.deleteColumn.run({
119
- columnNumber,
120
- tablePos: getParentTable()?.pos,
121
- }),
122
- iconStart: _jsx(Icon, { data: Xmark }),
123
- disabled: !actions.deleteColumn.isEnable({
124
- columnNumber,
125
- tablePos: getParentTable()?.pos,
126
- }),
127
- },
128
- {
129
- theme: 'danger',
130
- text: i18n('table.remove'),
131
- qa: 'g-md-yfm-table-action-remove-table',
132
- action: () => actions.deleteTable.run({
133
- tablePos: getParentTable()?.pos,
134
- tableNode: getParentTable()?.node,
135
- }),
136
- iconStart: _jsx(Icon, { data: TrashBin }),
137
- disabled: !actions.deleteTable.isEnable({
138
- tablePos: getParentTable()?.pos,
139
- tableNode: getParentTable()?.node,
140
- }),
141
- },
142
- ] }, 2));
143
- }
144
- return controls.length ? _jsx(_Fragment, { children: controls }) : null;
145
- };
146
- export const yfmTableCellView = (node, view, getPos) => {
147
- const getParentTable = () => findParentNodeClosestToPos(view.state.doc.resolve(getPos()), isTableNode);
148
- const parentTable = getParentTable();
149
- const cellCoords = parentTable ? findCellCoords(parentTable.node, node) : null;
150
- // @ts-expect-error
151
- if (!cellCoords)
152
- return {};
153
- const { cellIndex, rowIndex } = cellCoords;
154
- const isFirstRow = rowIndex === 0;
155
- const isFirstColumn = cellIndex === 0;
156
- if (!isFirstRow && !isFirstColumn) {
157
- // in this case, we don't need custom nodeView.
158
- // @ts-expect-error
159
- return {};
160
- }
161
- const dom = document.createElement('td');
162
- if (node.attrs[YfmTableAttr.Colspan])
163
- dom.setAttribute('colspan', node.attrs[YfmTableAttr.Colspan]);
164
- if (node.attrs[YfmTableAttr.Rowspan])
165
- dom.setAttribute('rowspan', node.attrs[YfmTableAttr.Rowspan]);
166
- if (node.attrs[YfmTableAttr.CellAlign]) {
167
- dom.classList.add(node.attrs[YfmTableAttr.CellAlign]);
168
- dom.setAttribute(YfmTableAttr.CellAlign, node.attrs[YfmTableAttr.Rowspan]);
169
- }
170
- const contentDOM = document.createElement('div');
171
- const control = document.createElement('span');
172
- control.setAttribute('style', 'width: 0; height: 0; float: left;');
173
- dom.setAttribute('style', 'position: relative; overflow: visible;');
174
- dom.appendChild(contentDOM);
175
- dom.appendChild(control);
176
- const renderItem = getReactRendererFromState(view.state).createItem('yfm-table-cell-view', () => (_jsx(Portal, { container: control, children: _jsx(ErrorLoggerBoundary, { children: _jsx(Controls, { columnNumber: cellIndex, rowNumber: rowIndex, isFirstInRow: isFirstColumn, isInFirstRow: isFirstRow, getParentTable: getParentTable, view: view }) }) })));
177
- return {
178
- dom,
179
- contentDOM,
180
- destroy() {
181
- renderItem.remove();
182
- },
183
- ignoreMutation(mutation) {
184
- return mutation.target === control || control.contains(mutation.target);
185
- },
186
- update(n) {
187
- const { rows: nRows, cols: nCols } = getTableDimensions(n);
188
- const { rows, cols } = getTableDimensions(node);
189
- return !(rows !== nRows || cols !== nCols);
190
- },
191
- };
192
- };
193
- function findCellCoords(table, cell) {
194
- if (!table.lastChild)
195
- return null;
196
- const rows = getChildrenOfNode(table.lastChild); // children of tBody
197
- for (const row of rows) {
198
- const node = getChildByNode(row.node, cell);
199
- if (node) {
200
- return {
201
- rowIndex: row.index,
202
- cellIndex: node.index,
203
- };
204
- }
205
- }
206
- return null;
207
- }
208
- //# 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,9 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- const Mermaid = (props) => (_jsx("svg", { xmlns: "http://www.w3.org/2000/svg", width: 491, height: 491, viewBox: "0 0 491 491", style: {
3
- fillRule: 'evenodd',
4
- clipRule: 'evenodd',
5
- strokeLinejoin: 'round',
6
- strokeMiterlimit: 2,
7
- }, ...props, children: _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" }) }));
8
- export default Mermaid;
9
- //# 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,cACI,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,eACI,CAAC,EAAC,oiBAAoiB,EACtiB,IAAI,EAAC,cAAc,GACrB,GACA,CACT,CAAC;AACF,eAAe,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"]}