@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 +1,3 @@
1
- declare const namesObj: Record<"bold" | "link" | "italic" | "strike" | "underline" | "mark" | "quote" | "colorify" | "mono" | "quoteLink" | "block" | "paragraph" | "cut" | "yfm_cut" | "anchor" | "table" | "image" | "checkbox" | "note" | "code_inline" | "code_block" | "undo" | "redo" | "file" | "sinkListItem" | "liftListItem" | "bulletList" | "orderedList" | "heading1" | "heading2" | "heading3" | "heading4" | "heading5" | "heading6" | "emoji" | "yfm_note" | "tabs" | "gpt" | "layout" | "codeBlock" | "math_inline" | "math_block" | "mermaid" | "horizontalRule" | "codeInline" | "filePopup" | "emptyRow" | "horizontalrule" | "imagePopup" | "mathBlock" | "mathInline" | "yfm_block" | "yfm_html_block" | "htmlBlock" | "yfm_layout", string>;
1
+ declare const namesObj: Record<"bold" | "link" | "italic" | "strike" | "underline" | "mark" | "quote" | "colorify" | "mono" | "quoteLink" | "block" | "paragraph" | "cut" | "yfm_cut" | "anchor" | "table" | "image" | "checkbox" | "note" | "code_inline" | "code_block" | "undo" | "redo" | "file" | "sinkListItem" | "liftListItem" | "bulletList" | "orderedList" | "heading1" | "heading2" | "heading3" | "heading4" | "heading5" | "heading6" | "emoji" | "yfm_note" | "tabs" | "layout" | "gpt" | "codeBlock" | "math_inline" | "math_block" | "mermaid" | "horizontalRule" | "codeInline" | "filePopup" | "emptyRow" | "horizontalrule" | "imagePopup" | "mathBlock" | "mathInline" | "yfm_block" | "yfm_html_block" | "htmlBlock" | "yfm_layout", string>;
2
2
  export declare const ActionName: Readonly<typeof namesObj>;
3
3
  export {};
@@ -12,7 +12,7 @@ export type MenuItem = {
12
12
  group?: string;
13
13
  ignoreActive?: boolean;
14
14
  };
15
- export type ToolbarButtonWithPopupMenuProps = Omit<ToolbarBaseProps<never> & Pick<PopupProps, 'disablePortal'> & {
15
+ export type ToolbarButtonWithPopupMenuProps = Pick<ToolbarBaseProps<never>, 'className' | 'focus' | 'onClick' | 'qa'> & Pick<PopupProps, 'disablePortal'> & {
16
16
  icon: ToolbarIconData;
17
17
  iconClassName?: string;
18
18
  chevronIconClassName?: string;
@@ -21,5 +21,5 @@ export type ToolbarButtonWithPopupMenuProps = Omit<ToolbarBaseProps<never> & Pic
21
21
  /** @default 'classic' */
22
22
  _selectionType?: 'classic' | 'light';
23
23
  qaMenu?: string;
24
- }, 'editor'>;
24
+ };
25
25
  export declare const ToolbarButtonWithPopupMenu: React.FC<ToolbarButtonWithPopupMenuProps>;
@@ -1 +1 @@
1
- {"version":3,"file":"ToolbarButtonWithPopupMenu.js","sourceRoot":"../../../../src","sources":["bundle/toolbar/ToolbarButtonWithPopupMenu.tsx"],"names":[],"mappings":"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","sourcesContent":["import {useEffect, useMemo} from 'react';\n\nimport {ChevronDown} from '@gravity-ui/icons';\nimport {\n ActionTooltip,\n Button,\n Icon,\n type IconProps,\n Menu,\n Popup,\n type PopupProps,\n} from '@gravity-ui/uikit';\n\nimport {cn} from '../../classname';\nimport type {Action} from '../../core';\nimport {groupBy, isFunction} from '../../lodash';\nimport {useBooleanState, useElementState} from '../../react-utils/hooks';\nimport {type ToolbarBaseProps, type ToolbarIconData, ToolbarTooltipDelay} from '../../toolbar';\n\nimport './ToolbarButtonWithPopupMenu.scss';\nconst b = cn('toolbar-button-with-popup-menu');\n\nexport type MenuItem = {\n id: string;\n action: Action;\n icon: IconProps['data'];\n text: string;\n iconSize?: IconProps['size'];\n iconClassname?: string;\n group?: string;\n ignoreActive?: boolean;\n};\n\nexport type ToolbarButtonWithPopupMenuProps = Omit<\n ToolbarBaseProps<never> &\n Pick<PopupProps, 'disablePortal'> & {\n icon: ToolbarIconData;\n iconClassName?: string;\n chevronIconClassName?: string;\n title: string | (() => string);\n menuItems: MenuItem[];\n /** @default 'classic' */\n _selectionType?: 'classic' | 'light';\n qaMenu?: string;\n },\n 'editor'\n>;\n\nexport const ToolbarButtonWithPopupMenu: React.FC<ToolbarButtonWithPopupMenuProps> = ({\n disablePortal,\n className,\n focus,\n onClick,\n icon,\n iconClassName,\n chevronIconClassName,\n title,\n menuItems,\n _selectionType,\n qa,\n qaMenu,\n ...props\n}) => {\n const [anchorElement, setAnchorElement] = useElementState();\n const [open, , hide, toggleOpen] = useBooleanState(false);\n const groups = useMemo(\n () =>\n groupBy(\n menuItems.map((i) => ({...i, group: i.group || ''})),\n 'group',\n ),\n [menuItems],\n );\n\n const someActive = menuItems.some(\n (item) => !item.ignoreActive && item.action.isActive() === true,\n );\n const everyDisabled = menuItems.every((item) => item.action.isEnable() === false);\n\n const popupOpen = everyDisabled ? false : open;\n const shouldForceHide = open && !popupOpen;\n useEffect(() => {\n if (shouldForceHide) {\n hide();\n }\n }, [hide, shouldForceHide]);\n\n const [btnView, btnSelected] =\n _selectionType === 'light'\n ? ([\n popupOpen ? 'normal' : someActive ? 'flat-action' : 'flat',\n popupOpen && someActive,\n ] as const)\n : ([someActive || popupOpen ? 'normal' : 'flat', someActive] as const);\n\n const textTitle = isFunction(title) ? title() : title;\n\n return (\n <>\n <ActionTooltip\n disabled={popupOpen}\n openDelay={ToolbarTooltipDelay.Open}\n closeDelay={ToolbarTooltipDelay.Close}\n title={textTitle}\n >\n <Button\n size=\"m\"\n ref={setAnchorElement}\n view={btnView}\n selected={btnSelected}\n disabled={everyDisabled}\n className={b(null, [className])}\n onClick={toggleOpen}\n aria-label={textTitle}\n qa={qa}\n {...props}\n >\n <Icon data={icon.data} size={icon.size} className={iconClassName} />\n {''}\n <Icon data={ChevronDown} className={chevronIconClassName} />\n </Button>\n </ActionTooltip>\n <Popup\n open={popupOpen}\n disablePortal={disablePortal}\n anchorElement={anchorElement}\n onOpenChange={(open) => {\n if (!open) hide();\n }}\n >\n <Menu size=\"l\" qa={qaMenu} data-toolbar-menu-for={textTitle}>\n {Object.entries(groups).map(([label, items], key) => {\n return (\n <Menu.Group label={label} key={key} className={b('menu-group')}>\n {items.map(\n ({id, icon, iconSize = 16, action, text, iconClassname}) => (\n <Menu.Item\n key={id}\n iconStart={\n <Icon\n data={icon}\n size={iconSize}\n className={iconClassname}\n />\n }\n active={action.isActive()}\n disabled={!action.isEnable()}\n onClick={() => {\n hide();\n focus();\n action.run();\n onClick?.(id);\n }}\n extraProps={{'aria-label': text}}\n >\n {text}\n </Menu.Item>\n ),\n )}\n </Menu.Group>\n );\n })}\n </Menu>\n </Popup>\n </>\n );\n};\n"]}
1
+ {"version":3,"file":"ToolbarButtonWithPopupMenu.js","sourceRoot":"../../../../src","sources":["bundle/toolbar/ToolbarButtonWithPopupMenu.tsx"],"names":[],"mappings":"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","sourcesContent":["import {useEffect, useMemo} from 'react';\n\nimport {ChevronDown} from '@gravity-ui/icons';\nimport {\n ActionTooltip,\n Button,\n Icon,\n type IconProps,\n Menu,\n Popup,\n type PopupProps,\n} from '@gravity-ui/uikit';\n\nimport {cn} from '../../classname';\nimport type {Action} from '../../core';\nimport {groupBy, isFunction} from '../../lodash';\nimport {useBooleanState, useElementState} from '../../react-utils/hooks';\nimport {type ToolbarBaseProps, type ToolbarIconData, ToolbarTooltipDelay} from '../../toolbar';\n\nimport './ToolbarButtonWithPopupMenu.scss';\nconst b = cn('toolbar-button-with-popup-menu');\n\nexport type MenuItem = {\n id: string;\n action: Action;\n icon: IconProps['data'];\n text: string;\n iconSize?: IconProps['size'];\n iconClassname?: string;\n group?: string;\n ignoreActive?: boolean;\n};\n\nexport type ToolbarButtonWithPopupMenuProps = Pick<\n ToolbarBaseProps<never>,\n 'className' | 'focus' | 'onClick' | 'qa'\n> &\n Pick<PopupProps, 'disablePortal'> & {\n icon: ToolbarIconData;\n iconClassName?: string;\n chevronIconClassName?: string;\n title: string | (() => string);\n menuItems: MenuItem[];\n /** @default 'classic' */\n _selectionType?: 'classic' | 'light';\n qaMenu?: string;\n };\n\nexport const ToolbarButtonWithPopupMenu: React.FC<ToolbarButtonWithPopupMenuProps> = ({\n disablePortal,\n className,\n focus,\n onClick,\n icon,\n iconClassName,\n chevronIconClassName,\n title,\n menuItems,\n _selectionType,\n qa,\n qaMenu,\n ...props\n}) => {\n const [anchorElement, setAnchorElement] = useElementState();\n const [open, , hide, toggleOpen] = useBooleanState(false);\n const groups = useMemo(\n () =>\n groupBy(\n menuItems.map((i) => ({...i, group: i.group || ''})),\n 'group',\n ),\n [menuItems],\n );\n\n const someActive = menuItems.some(\n (item) => !item.ignoreActive && item.action.isActive() === true,\n );\n const everyDisabled = menuItems.every((item) => item.action.isEnable() === false);\n\n const popupOpen = everyDisabled ? false : open;\n const shouldForceHide = open && !popupOpen;\n useEffect(() => {\n if (shouldForceHide) {\n hide();\n }\n }, [hide, shouldForceHide]);\n\n const [btnView, btnSelected] =\n _selectionType === 'light'\n ? ([\n popupOpen ? 'normal' : someActive ? 'flat-action' : 'flat',\n popupOpen && someActive,\n ] as const)\n : ([someActive || popupOpen ? 'normal' : 'flat', someActive] as const);\n\n const textTitle = isFunction(title) ? title() : title;\n\n return (\n <>\n <ActionTooltip\n disabled={popupOpen}\n openDelay={ToolbarTooltipDelay.Open}\n closeDelay={ToolbarTooltipDelay.Close}\n title={textTitle}\n >\n <Button\n size=\"m\"\n ref={setAnchorElement}\n view={btnView}\n selected={btnSelected}\n disabled={everyDisabled}\n className={b(null, [className])}\n onClick={toggleOpen}\n aria-label={textTitle}\n qa={qa}\n {...props}\n >\n <Icon data={icon.data} size={icon.size} className={iconClassName} />\n {''}\n <Icon data={ChevronDown} className={chevronIconClassName} />\n </Button>\n </ActionTooltip>\n <Popup\n open={popupOpen}\n disablePortal={disablePortal}\n anchorElement={anchorElement}\n onOpenChange={(open) => {\n if (!open) hide();\n }}\n >\n <Menu size=\"l\" qa={qaMenu} data-toolbar-menu-for={textTitle}>\n {Object.entries(groups).map(([label, items], key) => {\n return (\n <Menu.Group label={label} key={key} className={b('menu-group')}>\n {items.map(\n ({id, icon, iconSize = 16, action, text, iconClassname}) => (\n <Menu.Item\n key={id}\n iconStart={\n <Icon\n data={icon}\n size={iconSize}\n className={iconClassname}\n />\n }\n active={action.isActive()}\n disabled={!action.isEnable()}\n onClick={() => {\n hide();\n focus();\n action.run();\n onClick?.(id);\n }}\n extraProps={{'aria-label': text}}\n >\n {text}\n </Menu.Item>\n ),\n )}\n </Menu.Group>\n );\n })}\n </Menu>\n </Popup>\n </>\n );\n};\n"]}
@@ -58,7 +58,7 @@ const ToolbarColors = (props) => {
58
58
  },
59
59
  });
60
60
  }
61
- return ((0, jsx_runtime_1.jsx)(ToolbarButtonWithPopupMenu_1.ToolbarButtonWithPopupMenu, { ...props, qaMenu: "g-md-toolbar-menu", title: (0, menubar_1.i18n)('colorify'), menuItems: items, icon: textColorIcon, _selectionType: "light", iconClassName: b('menu-icon', { color: currentColor }), chevronIconClassName: b('chevron-icon', { color: currentColor }), "data-selected-color": currentColor ?? 'default' }));
61
+ return ((0, jsx_runtime_1.jsx)(ToolbarButtonWithPopupMenu_1.ToolbarButtonWithPopupMenu, { qa: props.qa, focus: props.focus, onClick: props.onClick, className: props.className, qaMenu: "g-md-toolbar-menu", title: (0, menubar_1.i18n)('colorify'), menuItems: items, icon: textColorIcon, _selectionType: "light", iconClassName: b('menu-icon', { color: currentColor }), chevronIconClassName: b('chevron-icon', { color: currentColor }), "data-selected-color": currentColor ?? 'default' }));
62
62
  };
63
63
  exports.ToolbarColors = ToolbarColors;
64
64
  //# sourceMappingURL=ToolbarColors.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ToolbarColors.js","sourceRoot":"../../../../../src","sources":["bundle/toolbar/custom/ToolbarColors.tsx"],"names":[],"mappings":"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","sourcesContent":["import {cn} from '../../../classname';\nimport {Colors} from '../../../extensions';\nimport {i18n} from '../../../i18n/menubar';\nimport type {ToolbarBaseProps} from '../../../toolbar';\nimport {icons} from '../../config/icons';\nimport {\n type MenuItem,\n ToolbarButtonWithPopupMenu,\n type ToolbarButtonWithPopupMenuProps,\n} from '../ToolbarButtonWithPopupMenu';\n\nimport './ToolbarColors.scss';\n\nconst b = cn('toolbar-colors');\nconst textColorIcon = icons.textColor;\n\nexport type ToolbarColorsProps = Omit<ToolbarBaseProps<never>, 'editor'> &\n Pick<ToolbarButtonWithPopupMenuProps, 'disablePortal'> & {\n active?: boolean;\n enable?: boolean;\n currentColor?: string;\n withDefault?: boolean;\n exec(color: string): void;\n };\n\nexport const ToolbarColors: React.FC<ToolbarColorsProps> = (props) => {\n const {exec, onClick, enable, currentColor, withDefault} = props;\n const isDefault = currentColor === undefined;\n\n const onItemClick = (color: string) => () => {\n // do not exec when current color is default and clicked to default item\n if (!(isDefault && color === '')) exec(color);\n onClick?.('colorify', {color: color === '' ? 'default' : color});\n };\n\n const items = [\n Colors.Gray,\n Colors.Yellow,\n Colors.Orange,\n Colors.Red,\n Colors.Green,\n Colors.Blue,\n Colors.Violet,\n ].map<MenuItem>((color) => ({\n id: color,\n icon: textColorIcon.data,\n iconSize: textColorIcon.size ?? 16,\n text: i18n(`colorify__color_${color}`),\n iconClassname: b('item-icon', {color}),\n action: {\n run: onItemClick(color),\n isEnable: () => Boolean(enable),\n isActive: () => color === currentColor,\n meta() {},\n },\n group: i18n(`colorify__group_text`),\n }));\n\n if (withDefault) {\n items.unshift({\n id: 'default',\n icon: textColorIcon.data,\n iconSize: textColorIcon.size ?? 16,\n text: i18n(`colorify__color_default`),\n iconClassname: b('item-icon', {color: 'default'}),\n group: i18n(`colorify__group_text`),\n ignoreActive: true,\n action: {\n run: onItemClick(''),\n isEnable: () => Boolean(enable),\n isActive: () => isDefault,\n meta() {},\n },\n });\n }\n\n return (\n <ToolbarButtonWithPopupMenu\n {...props}\n qaMenu=\"g-md-toolbar-menu\"\n title={i18n('colorify')}\n menuItems={items}\n icon={textColorIcon}\n _selectionType=\"light\"\n iconClassName={b('menu-icon', {color: currentColor})}\n chevronIconClassName={b('chevron-icon', {color: currentColor})}\n data-selected-color={currentColor ?? 'default'}\n />\n );\n};\n"]}
1
+ {"version":3,"file":"ToolbarColors.js","sourceRoot":"../../../../../src","sources":["bundle/toolbar/custom/ToolbarColors.tsx"],"names":[],"mappings":"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","sourcesContent":["import {cn} from '../../../classname';\nimport {Colors} from '../../../extensions';\nimport {i18n} from '../../../i18n/menubar';\nimport type {ToolbarBaseProps} from '../../../toolbar';\nimport {icons} from '../../config/icons';\nimport {\n type MenuItem,\n ToolbarButtonWithPopupMenu,\n type ToolbarButtonWithPopupMenuProps,\n} from '../ToolbarButtonWithPopupMenu';\n\nimport './ToolbarColors.scss';\n\nconst b = cn('toolbar-colors');\nconst textColorIcon = icons.textColor;\n\nexport type ToolbarColorsProps = Omit<ToolbarBaseProps<never>, 'editor'> &\n Pick<ToolbarButtonWithPopupMenuProps, 'disablePortal'> & {\n active?: boolean;\n enable?: boolean;\n currentColor?: string;\n withDefault?: boolean;\n exec(color: string): void;\n };\n\nexport const ToolbarColors: React.FC<ToolbarColorsProps> = (props) => {\n const {exec, onClick, enable, currentColor, withDefault} = props;\n const isDefault = currentColor === undefined;\n\n const onItemClick = (color: string) => () => {\n // do not exec when current color is default and clicked to default item\n if (!(isDefault && color === '')) exec(color);\n onClick?.('colorify', {color: color === '' ? 'default' : color});\n };\n\n const items = [\n Colors.Gray,\n Colors.Yellow,\n Colors.Orange,\n Colors.Red,\n Colors.Green,\n Colors.Blue,\n Colors.Violet,\n ].map<MenuItem>((color) => ({\n id: color,\n icon: textColorIcon.data,\n iconSize: textColorIcon.size ?? 16,\n text: i18n(`colorify__color_${color}`),\n iconClassname: b('item-icon', {color}),\n action: {\n run: onItemClick(color),\n isEnable: () => Boolean(enable),\n isActive: () => color === currentColor,\n meta() {},\n },\n group: i18n(`colorify__group_text`),\n }));\n\n if (withDefault) {\n items.unshift({\n id: 'default',\n icon: textColorIcon.data,\n iconSize: textColorIcon.size ?? 16,\n text: i18n(`colorify__color_default`),\n iconClassname: b('item-icon', {color: 'default'}),\n group: i18n(`colorify__group_text`),\n ignoreActive: true,\n action: {\n run: onItemClick(''),\n isEnable: () => Boolean(enable),\n isActive: () => isDefault,\n meta() {},\n },\n });\n }\n\n return (\n <ToolbarButtonWithPopupMenu\n qa={props.qa}\n focus={props.focus}\n onClick={props.onClick}\n className={props.className}\n qaMenu=\"g-md-toolbar-menu\"\n title={i18n('colorify')}\n menuItems={items}\n icon={textColorIcon}\n _selectionType=\"light\"\n iconClassName={b('menu-icon', {color: currentColor})}\n chevronIconClassName={b('chevron-icon', {color: currentColor})}\n data-selected-color={currentColor ?? 'default'}\n />\n );\n};\n"]}
@@ -120,7 +120,11 @@ const BundlePreset = (builder, opts) => {
120
120
  yfmNoteTitlePlaceholder: () => (0, placeholder_1.i18n)('note_title'),
121
121
  ...opts.yfmNote,
122
122
  },
123
- yfmTable: { yfmTableCellPlaceholder: () => (0, placeholder_1.i18n)('table_cell'), ...opts.yfmTable },
123
+ yfmTable: {
124
+ yfmTableCellPlaceholder: () => (0, placeholder_1.i18n)('table_cell'),
125
+ ...opts.yfmTable,
126
+ controls: opts.mobile ? false : opts.yfmTable?.controls,
127
+ },
124
128
  yfmFile: {
125
129
  fileUploadHandler: opts.fileUploadHandler,
126
130
  needToSetDimensionsForUploadedImages: opts.needToSetDimensionsForUploadedImages,
@@ -1 +1 @@
1
- {"version":3,"file":"wysiwyg-preset.js","sourceRoot":"../../../src","sources":["bundle/wysiwyg-preset.ts"],"names":[],"mappings":"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","sourcesContent":["import type {Node} from 'prosemirror-model';\n\nimport type {ExtensionAuto} from '../core';\nimport {BehaviorPreset, type BehaviorPresetOptions} from '../extensions/behavior';\nimport {\n EditorModeKeymap,\n type EditorModeKeymapOptions,\n} from '../extensions/behavior/EditorModeKeymap';\nimport {BaseNode, YfmHeadingAttr, YfmNoteNode} from '../extensions/specs';\nimport {i18n as i18nPlaceholder} from '../i18n/placeholder';\nimport {CommonMarkPreset, type CommonMarkPresetOptions} from '../presets/commonmark';\nimport {DefaultPreset, type DefaultPresetOptions} from '../presets/default';\nimport {FullPreset, type FullPresetOptions} from '../presets/full';\nimport {YfmPreset, type YfmPresetOptions} from '../presets/yfm';\nimport {ZeroPreset, type ZeroPresetOptions} from '../presets/zero';\nimport {Action as A, formatter as f} from '../shortcuts';\nimport type {DirectiveSyntaxContext} from '../utils/directive';\nimport type {FileUploadHandler} from '../utils/upload';\n\nimport {wCommandMenuConfigByPreset, wSelectionMenuConfigByPreset} from './config/wysiwyg';\nimport {emojiDefs} from './emoji';\nimport type {MarkdownEditorPreset, WysiwygPlaceholderOptions} from './types';\n\nconst DEFAULT_IGNORED_KEYS = ['Tab', 'Shift-Tab'] as const;\n\nexport type ExtensionsOptions = BehaviorPresetOptions & FullPresetOptions;\n\nexport type BundlePresetOptions = ExtensionsOptions &\n EditorModeKeymapOptions & {\n preset: MarkdownEditorPreset;\n mdBreaks?: boolean;\n preserveEmptyRows?: boolean;\n fileUploadHandler?: FileUploadHandler;\n placeholderOptions?: WysiwygPlaceholderOptions;\n /**\n * If we need to set dimensions for uploaded images\n *\n * @default false\n */\n needToSetDimensionsForUploadedImages?: boolean;\n enableNewImageSizeCalculation?: boolean;\n directiveSyntax: DirectiveSyntaxContext;\n // MAJOR: remove markdown-it-attrs\n disableMdAttrs?: boolean;\n mobile?: boolean;\n };\n\ndeclare global {\n namespace WysiwygEditor {\n interface Context {\n directiveSyntax: DirectiveSyntaxContext;\n }\n }\n}\n\nexport const BundlePreset: ExtensionAuto<BundlePresetOptions> = (builder, opts) => {\n builder.context.set('directiveSyntax', opts.directiveSyntax);\n\n const dropCursor: NonNullable<BundlePresetOptions['cursor']>['dropOptions'] = {\n color: 'var(--g-color-line-brand)',\n width: 2,\n };\n\n const zeroOptions: BehaviorPresetOptions & ZeroPresetOptions = {\n ...opts,\n baseStyles: {\n attributes: {\n // for disable setting attrs inside pm-view from floating-ui from uikit\n // see https://github.com/floating-ui/floating-ui/discussions/3213\n // and https://github.com/floating-ui/floating-ui/pull/3202\n 'aria-live': '',\n ...opts.baseStyles?.attributes,\n },\n },\n cursor: {dropOptions: dropCursor},\n clipboard: {pasteFileHandler: opts.fileUploadHandler, ...opts.clipboard},\n selectionContext: {config: wSelectionMenuConfigByPreset.zero, ...opts.selectionContext},\n commandMenu: {actions: wCommandMenuConfigByPreset.zero, ...opts.commandMenu},\n history: {undoKey: f.toPM(A.Undo), redoKey: f.toPM(A.Redo), ...opts.history},\n baseSchema: {\n paragraphKey: f.toPM(A.Text),\n paragraphPlaceholder: (node: Node, parent?: Node | null) => {\n const {value, behavior} = opts.placeholderOptions || {};\n\n const emptyEntries = {\n 'empty-row': !node.text,\n 'empty-row-top-level': !node.text && parent?.type.name === BaseNode.Doc,\n 'empty-doc':\n !node.text && parent?.type.name === BaseNode.Doc && parent.childCount === 1,\n };\n\n const showPlaceholder = emptyEntries[behavior || 'empty-doc'];\n\n if (!showPlaceholder) return null;\n\n return typeof value === 'function'\n ? value()\n : value ?? i18nPlaceholder(opts.mobile ? 'doc_empty_mobile' : 'doc_empty');\n },\n preserveEmptyRows: opts.preserveEmptyRows,\n ...opts.baseSchema,\n },\n };\n const commonMarkOptions: BehaviorPresetOptions & CommonMarkPresetOptions = {\n ...zeroOptions,\n selectionContext: {\n config: wSelectionMenuConfigByPreset.commonmark,\n ...opts.selectionContext,\n },\n commandMenu: {actions: wCommandMenuConfigByPreset.commonmark, ...opts.commandMenu},\n breaks: {\n preferredBreak: (opts.mdBreaks ? 'soft' : 'hard') as 'soft' | 'hard',\n ...opts.breaks,\n },\n bold: {boldKey: f.toPM(A.Bold), ...opts.bold},\n italic: {italicKey: f.toPM(A.Italic), ...opts.italic},\n code: {codeKey: f.toPM(A.Code), ...opts.code},\n codeBlock: {\n codeBlockKey: f.toPM(A.CodeBlock),\n ...opts.codeBlock,\n },\n blockquote: {qouteKey: f.toPM(A.Quote), ...opts.blockquote},\n link: {linkKey: f.toPM(A.Link), ...opts.link},\n lists: {\n ulKey: f.toPM(A.BulletList),\n olKey: f.toPM(A.OrderedList),\n ulInputRules: {plus: false},\n ...opts.lists,\n },\n image: {\n parseInsertedUrlAsImage: opts.imgSize?.parseInsertedUrlAsImage,\n },\n };\n const defaultOptions: BehaviorPresetOptions & DefaultPresetOptions = {\n ...commonMarkOptions,\n selectionContext: {config: wSelectionMenuConfigByPreset.default, ...opts.selectionContext},\n commandMenu: {actions: wCommandMenuConfigByPreset.default, ...opts.commandMenu},\n strike: {strikeKey: f.toPM(A.Strike), ...opts.strike},\n };\n const yfmOptions: BehaviorPresetOptions & YfmPresetOptions = {\n ...defaultOptions,\n yfmConfigs: {disableAttrs: opts.disableMdAttrs, ...opts.yfmConfigs},\n selectionContext: {config: wSelectionMenuConfigByPreset.yfm, ...opts.selectionContext},\n commandMenu: {actions: wCommandMenuConfigByPreset.yfm, ...opts.commandMenu},\n underline: {underlineKey: f.toPM(A.Underline), ...opts.underline},\n imgSize: {\n imageUploadHandler: opts.fileUploadHandler,\n needToSetDimensionsForUploadedImages: opts.needToSetDimensionsForUploadedImages,\n enableNewImageSizeCalculation: opts.enableNewImageSizeCalculation,\n ...opts.imgSize,\n },\n checkbox: {checkboxLabelPlaceholder: () => i18nPlaceholder('checkbox'), ...opts.checkbox},\n deflist: {\n deflistTermPlaceholder: () => i18nPlaceholder('deflist_term'),\n deflistDescPlaceholder: () => i18nPlaceholder('deflist_desc'),\n },\n yfmCut: {\n yfmCutKey: f.toPM(A.Cut),\n yfmCutTitlePlaceholder: () => i18nPlaceholder('cut_title'),\n yfmCutContentPlaceholder: () => i18nPlaceholder('cut_content'),\n ...opts.yfmCut,\n },\n yfmNote: {\n yfmNoteKey: f.toPM(A.Note),\n yfmNoteTitlePlaceholder: () => i18nPlaceholder('note_title'),\n ...opts.yfmNote,\n },\n yfmTable: {yfmTableCellPlaceholder: () => i18nPlaceholder('table_cell'), ...opts.yfmTable},\n yfmFile: {\n fileUploadHandler: opts.fileUploadHandler,\n needToSetDimensionsForUploadedImages: opts.needToSetDimensionsForUploadedImages,\n ...opts.yfmFile,\n },\n yfmHeading: {\n h1Key: f.toPM(A.Heading1),\n h2Key: f.toPM(A.Heading2),\n h3Key: f.toPM(A.Heading3),\n h4Key: f.toPM(A.Heading4),\n h5Key: f.toPM(A.Heading5),\n h6Key: f.toPM(A.Heading6),\n headingPlaceholder: (node: Node) =>\n `${i18nPlaceholder('heading')} ${node.attrs[YfmHeadingAttr.Level]}`, // todo: remove attrs import\n ...opts.yfmHeading,\n },\n placeholder: {\n [YfmNoteNode.NoteContent]: () => i18nPlaceholder('note_content'),\n },\n };\n const fullOptions: BehaviorPresetOptions & FullPresetOptions = {\n ...yfmOptions,\n selectionContext: {config: wSelectionMenuConfigByPreset.full, ...opts.selectionContext},\n commandMenu: {actions: wCommandMenuConfigByPreset.full, ...opts.commandMenu},\n emoji: {defs: emojiDefs, ...opts.emoji},\n };\n\n const zeroIgnoreActions = [A.Undo, A.Redo];\n const commonMarkIgnoreActions = zeroIgnoreActions.concat(\n A.Bold,\n A.Italic,\n A.Code,\n A.Link,\n\n A.Text,\n A.Heading1,\n A.Heading2,\n A.Heading3,\n A.Heading4,\n A.Heading5,\n A.Heading6,\n\n A.BulletList,\n A.OrderedList,\n\n A.Quote,\n A.CodeBlock,\n );\n const defaultIgnoreActions = commonMarkIgnoreActions.concat(A.Strike);\n const yfmIgnoreActions = defaultIgnoreActions.concat(\n A.Underline,\n\n A.Note,\n A.Cut,\n );\n const fullIgnoreActions = yfmIgnoreActions.concat();\n\n let ignoreActions;\n\n switch (opts.preset) {\n case 'zero': {\n ignoreActions = zeroIgnoreActions;\n builder.use(BehaviorPreset, zeroOptions).use(ZeroPreset, zeroOptions);\n break;\n }\n case 'commonmark': {\n ignoreActions = commonMarkIgnoreActions;\n builder.use(BehaviorPreset, commonMarkOptions).use(CommonMarkPreset, commonMarkOptions);\n break;\n }\n case 'default': {\n ignoreActions = defaultIgnoreActions;\n builder.use(BehaviorPreset, defaultOptions).use(DefaultPreset, defaultOptions);\n break;\n }\n case 'yfm': {\n ignoreActions = yfmIgnoreActions;\n builder.use(BehaviorPreset, yfmOptions).use(YfmPreset, yfmOptions);\n break;\n }\n default: {\n ignoreActions = fullIgnoreActions;\n builder.use(BehaviorPreset, fullOptions).use(FullPreset, fullOptions);\n break;\n }\n }\n\n const ignoreKeysList = opts.ignoreKeysList?.slice() ?? [];\n ignoreKeysList.push(...DEFAULT_IGNORED_KEYS);\n for (const action of ignoreActions) {\n const key = f.toPM(action);\n if (key) ignoreKeysList.push(key);\n }\n\n builder.use(EditorModeKeymap, {\n onSubmit: opts.onSubmit,\n onCancel: opts.onCancel,\n ignoreKeysList,\n });\n};\n"]}
1
+ {"version":3,"file":"wysiwyg-preset.js","sourceRoot":"../../../src","sources":["bundle/wysiwyg-preset.ts"],"names":[],"mappings":"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","sourcesContent":["import type {Node} from 'prosemirror-model';\n\nimport type {ExtensionAuto} from '../core';\nimport {BehaviorPreset, type BehaviorPresetOptions} from '../extensions/behavior';\nimport {\n EditorModeKeymap,\n type EditorModeKeymapOptions,\n} from '../extensions/behavior/EditorModeKeymap';\nimport {BaseNode, YfmHeadingAttr, YfmNoteNode} from '../extensions/specs';\nimport {i18n as i18nPlaceholder} from '../i18n/placeholder';\nimport {CommonMarkPreset, type CommonMarkPresetOptions} from '../presets/commonmark';\nimport {DefaultPreset, type DefaultPresetOptions} from '../presets/default';\nimport {FullPreset, type FullPresetOptions} from '../presets/full';\nimport {YfmPreset, type YfmPresetOptions} from '../presets/yfm';\nimport {ZeroPreset, type ZeroPresetOptions} from '../presets/zero';\nimport {Action as A, formatter as f} from '../shortcuts';\nimport type {DirectiveSyntaxContext} from '../utils/directive';\nimport type {FileUploadHandler} from '../utils/upload';\n\nimport {wCommandMenuConfigByPreset, wSelectionMenuConfigByPreset} from './config/wysiwyg';\nimport {emojiDefs} from './emoji';\nimport type {MarkdownEditorPreset, WysiwygPlaceholderOptions} from './types';\n\nconst DEFAULT_IGNORED_KEYS = ['Tab', 'Shift-Tab'] as const;\n\nexport type ExtensionsOptions = BehaviorPresetOptions & FullPresetOptions;\n\nexport type BundlePresetOptions = ExtensionsOptions &\n EditorModeKeymapOptions & {\n preset: MarkdownEditorPreset;\n mdBreaks?: boolean;\n preserveEmptyRows?: boolean;\n fileUploadHandler?: FileUploadHandler;\n placeholderOptions?: WysiwygPlaceholderOptions;\n /**\n * If we need to set dimensions for uploaded images\n *\n * @default false\n */\n needToSetDimensionsForUploadedImages?: boolean;\n enableNewImageSizeCalculation?: boolean;\n directiveSyntax: DirectiveSyntaxContext;\n // MAJOR: remove markdown-it-attrs\n disableMdAttrs?: boolean;\n mobile?: boolean;\n };\n\ndeclare global {\n namespace WysiwygEditor {\n interface Context {\n directiveSyntax: DirectiveSyntaxContext;\n }\n }\n}\n\nexport const BundlePreset: ExtensionAuto<BundlePresetOptions> = (builder, opts) => {\n builder.context.set('directiveSyntax', opts.directiveSyntax);\n\n const dropCursor: NonNullable<BundlePresetOptions['cursor']>['dropOptions'] = {\n color: 'var(--g-color-line-brand)',\n width: 2,\n };\n\n const zeroOptions: BehaviorPresetOptions & ZeroPresetOptions = {\n ...opts,\n baseStyles: {\n attributes: {\n // for disable setting attrs inside pm-view from floating-ui from uikit\n // see https://github.com/floating-ui/floating-ui/discussions/3213\n // and https://github.com/floating-ui/floating-ui/pull/3202\n 'aria-live': '',\n ...opts.baseStyles?.attributes,\n },\n },\n cursor: {dropOptions: dropCursor},\n clipboard: {pasteFileHandler: opts.fileUploadHandler, ...opts.clipboard},\n selectionContext: {config: wSelectionMenuConfigByPreset.zero, ...opts.selectionContext},\n commandMenu: {actions: wCommandMenuConfigByPreset.zero, ...opts.commandMenu},\n history: {undoKey: f.toPM(A.Undo), redoKey: f.toPM(A.Redo), ...opts.history},\n baseSchema: {\n paragraphKey: f.toPM(A.Text),\n paragraphPlaceholder: (node: Node, parent?: Node | null) => {\n const {value, behavior} = opts.placeholderOptions || {};\n\n const emptyEntries = {\n 'empty-row': !node.text,\n 'empty-row-top-level': !node.text && parent?.type.name === BaseNode.Doc,\n 'empty-doc':\n !node.text && parent?.type.name === BaseNode.Doc && parent.childCount === 1,\n };\n\n const showPlaceholder = emptyEntries[behavior || 'empty-doc'];\n\n if (!showPlaceholder) return null;\n\n return typeof value === 'function'\n ? value()\n : value ?? i18nPlaceholder(opts.mobile ? 'doc_empty_mobile' : 'doc_empty');\n },\n preserveEmptyRows: opts.preserveEmptyRows,\n ...opts.baseSchema,\n },\n };\n const commonMarkOptions: BehaviorPresetOptions & CommonMarkPresetOptions = {\n ...zeroOptions,\n selectionContext: {\n config: wSelectionMenuConfigByPreset.commonmark,\n ...opts.selectionContext,\n },\n commandMenu: {actions: wCommandMenuConfigByPreset.commonmark, ...opts.commandMenu},\n breaks: {\n preferredBreak: (opts.mdBreaks ? 'soft' : 'hard') as 'soft' | 'hard',\n ...opts.breaks,\n },\n bold: {boldKey: f.toPM(A.Bold), ...opts.bold},\n italic: {italicKey: f.toPM(A.Italic), ...opts.italic},\n code: {codeKey: f.toPM(A.Code), ...opts.code},\n codeBlock: {\n codeBlockKey: f.toPM(A.CodeBlock),\n ...opts.codeBlock,\n },\n blockquote: {qouteKey: f.toPM(A.Quote), ...opts.blockquote},\n link: {linkKey: f.toPM(A.Link), ...opts.link},\n lists: {\n ulKey: f.toPM(A.BulletList),\n olKey: f.toPM(A.OrderedList),\n ulInputRules: {plus: false},\n ...opts.lists,\n },\n image: {\n parseInsertedUrlAsImage: opts.imgSize?.parseInsertedUrlAsImage,\n },\n };\n const defaultOptions: BehaviorPresetOptions & DefaultPresetOptions = {\n ...commonMarkOptions,\n selectionContext: {config: wSelectionMenuConfigByPreset.default, ...opts.selectionContext},\n commandMenu: {actions: wCommandMenuConfigByPreset.default, ...opts.commandMenu},\n strike: {strikeKey: f.toPM(A.Strike), ...opts.strike},\n };\n const yfmOptions: BehaviorPresetOptions & YfmPresetOptions = {\n ...defaultOptions,\n yfmConfigs: {disableAttrs: opts.disableMdAttrs, ...opts.yfmConfigs},\n selectionContext: {config: wSelectionMenuConfigByPreset.yfm, ...opts.selectionContext},\n commandMenu: {actions: wCommandMenuConfigByPreset.yfm, ...opts.commandMenu},\n underline: {underlineKey: f.toPM(A.Underline), ...opts.underline},\n imgSize: {\n imageUploadHandler: opts.fileUploadHandler,\n needToSetDimensionsForUploadedImages: opts.needToSetDimensionsForUploadedImages,\n enableNewImageSizeCalculation: opts.enableNewImageSizeCalculation,\n ...opts.imgSize,\n },\n checkbox: {checkboxLabelPlaceholder: () => i18nPlaceholder('checkbox'), ...opts.checkbox},\n deflist: {\n deflistTermPlaceholder: () => i18nPlaceholder('deflist_term'),\n deflistDescPlaceholder: () => i18nPlaceholder('deflist_desc'),\n },\n yfmCut: {\n yfmCutKey: f.toPM(A.Cut),\n yfmCutTitlePlaceholder: () => i18nPlaceholder('cut_title'),\n yfmCutContentPlaceholder: () => i18nPlaceholder('cut_content'),\n ...opts.yfmCut,\n },\n yfmNote: {\n yfmNoteKey: f.toPM(A.Note),\n yfmNoteTitlePlaceholder: () => i18nPlaceholder('note_title'),\n ...opts.yfmNote,\n },\n yfmTable: {\n yfmTableCellPlaceholder: () => i18nPlaceholder('table_cell'),\n ...opts.yfmTable,\n controls: opts.mobile ? false : opts.yfmTable?.controls,\n },\n yfmFile: {\n fileUploadHandler: opts.fileUploadHandler,\n needToSetDimensionsForUploadedImages: opts.needToSetDimensionsForUploadedImages,\n ...opts.yfmFile,\n },\n yfmHeading: {\n h1Key: f.toPM(A.Heading1),\n h2Key: f.toPM(A.Heading2),\n h3Key: f.toPM(A.Heading3),\n h4Key: f.toPM(A.Heading4),\n h5Key: f.toPM(A.Heading5),\n h6Key: f.toPM(A.Heading6),\n headingPlaceholder: (node: Node) =>\n `${i18nPlaceholder('heading')} ${node.attrs[YfmHeadingAttr.Level]}`, // todo: remove attrs import\n ...opts.yfmHeading,\n },\n placeholder: {\n [YfmNoteNode.NoteContent]: () => i18nPlaceholder('note_content'),\n },\n };\n const fullOptions: BehaviorPresetOptions & FullPresetOptions = {\n ...yfmOptions,\n selectionContext: {config: wSelectionMenuConfigByPreset.full, ...opts.selectionContext},\n commandMenu: {actions: wCommandMenuConfigByPreset.full, ...opts.commandMenu},\n emoji: {defs: emojiDefs, ...opts.emoji},\n };\n\n const zeroIgnoreActions = [A.Undo, A.Redo];\n const commonMarkIgnoreActions = zeroIgnoreActions.concat(\n A.Bold,\n A.Italic,\n A.Code,\n A.Link,\n\n A.Text,\n A.Heading1,\n A.Heading2,\n A.Heading3,\n A.Heading4,\n A.Heading5,\n A.Heading6,\n\n A.BulletList,\n A.OrderedList,\n\n A.Quote,\n A.CodeBlock,\n );\n const defaultIgnoreActions = commonMarkIgnoreActions.concat(A.Strike);\n const yfmIgnoreActions = defaultIgnoreActions.concat(\n A.Underline,\n\n A.Note,\n A.Cut,\n );\n const fullIgnoreActions = yfmIgnoreActions.concat();\n\n let ignoreActions;\n\n switch (opts.preset) {\n case 'zero': {\n ignoreActions = zeroIgnoreActions;\n builder.use(BehaviorPreset, zeroOptions).use(ZeroPreset, zeroOptions);\n break;\n }\n case 'commonmark': {\n ignoreActions = commonMarkIgnoreActions;\n builder.use(BehaviorPreset, commonMarkOptions).use(CommonMarkPreset, commonMarkOptions);\n break;\n }\n case 'default': {\n ignoreActions = defaultIgnoreActions;\n builder.use(BehaviorPreset, defaultOptions).use(DefaultPreset, defaultOptions);\n break;\n }\n case 'yfm': {\n ignoreActions = yfmIgnoreActions;\n builder.use(BehaviorPreset, yfmOptions).use(YfmPreset, yfmOptions);\n break;\n }\n default: {\n ignoreActions = fullIgnoreActions;\n builder.use(BehaviorPreset, fullOptions).use(FullPreset, fullOptions);\n break;\n }\n }\n\n const ignoreKeysList = opts.ignoreKeysList?.slice() ?? [];\n ignoreKeysList.push(...DEFAULT_IGNORED_KEYS);\n for (const action of ignoreActions) {\n const key = f.toPM(action);\n if (key) ignoreKeysList.push(key);\n }\n\n builder.use(EditorModeKeymap, {\n onSubmit: opts.onSubmit,\n onCancel: opts.onCancel,\n ignoreKeysList,\n });\n};\n"]}
@@ -5,7 +5,6 @@ const const_1 = require("./const.js");
5
5
  exports.schemaSpecs = {
6
6
  [const_1.ListNode.ListItem]: {
7
7
  attrs: {
8
- [const_1.ListsAttr.Tight]: { default: false },
9
8
  [const_1.ListsAttr.Markup]: { default: null },
10
9
  },
11
10
  content: '(paragraph|block)+',
@@ -23,7 +22,7 @@ exports.schemaSpecs = {
23
22
  content: `${const_1.ListNode.ListItem}+`,
24
23
  group: 'block',
25
24
  attrs: {
26
- [const_1.ListsAttr.Tight]: { default: false },
25
+ [const_1.ListsAttr.Tight]: { default: true },
27
26
  [const_1.ListsAttr.Markup]: { default: const_1.Markup.bullet.default },
28
27
  },
29
28
  parseDOM: [
@@ -44,7 +43,7 @@ exports.schemaSpecs = {
44
43
  [const_1.ListNode.OrderedList]: {
45
44
  attrs: {
46
45
  [const_1.ListsAttr.Order]: { default: 1 },
47
- [const_1.ListsAttr.Tight]: { default: false },
46
+ [const_1.ListsAttr.Tight]: { default: true },
48
47
  [const_1.ListsAttr.Markup]: { default: const_1.Markup.ordered.default },
49
48
  },
50
49
  content: `${const_1.ListNode.ListItem}+`,
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"../../../../../../src","sources":["extensions/markdown/Lists/ListsSpecs/schema.ts"],"names":[],"mappings":"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","sourcesContent":["import type {NodeSpec} from 'prosemirror-model';\n\nimport {ListNode, ListsAttr, Markup} from './const';\n\nexport const schemaSpecs: Record<ListNode, NodeSpec> = {\n [ListNode.ListItem]: {\n attrs: {\n [ListsAttr.Tight]: {default: false},\n [ListsAttr.Markup]: {default: null},\n },\n content: '(paragraph|block)+',\n defining: true,\n parseDOM: [{tag: 'li'}],\n toDOM() {\n return ['li', 0];\n },\n selectable: true,\n allowSelection: false,\n disableGapCursor: true,\n complex: 'leaf',\n },\n\n [ListNode.BulletList]: {\n content: `${ListNode.ListItem}+`,\n group: 'block',\n attrs: {\n [ListsAttr.Tight]: {default: false},\n [ListsAttr.Markup]: {default: Markup.bullet.default},\n },\n parseDOM: [\n {\n tag: 'ul',\n getAttrs: (dom) => ({\n [ListsAttr.Tight]: (dom as HTMLElement).hasAttribute('data-tight'),\n }),\n },\n ],\n toDOM(node) {\n return ['ul', {'data-tight': node.attrs[ListsAttr.Tight] ? 'true' : null}, 0];\n },\n selectable: false,\n allowSelection: false,\n complex: 'root',\n },\n\n [ListNode.OrderedList]: {\n attrs: {\n [ListsAttr.Order]: {default: 1},\n [ListsAttr.Tight]: {default: false},\n [ListsAttr.Markup]: {default: Markup.ordered.default},\n },\n content: `${ListNode.ListItem}+`,\n group: 'block',\n parseDOM: [\n {\n tag: 'ol',\n getAttrs(dom) {\n return {\n [ListsAttr.Order]: (dom as HTMLElement).hasAttribute('start')\n ? Number((dom as HTMLElement).getAttribute('start')!)\n : 1,\n [ListsAttr.Tight]: (dom as HTMLElement).hasAttribute('data-tight'),\n };\n },\n },\n ],\n toDOM(node) {\n return [\n 'ol',\n {\n start: node.attrs[ListsAttr.Order] === 1 ? null : node.attrs[ListsAttr.Order],\n 'data-tight': node.attrs[ListsAttr.Tight] ? 'true' : null,\n },\n 0,\n ];\n },\n selectable: false,\n allowSelection: false,\n complex: 'root',\n },\n};\n"]}
1
+ {"version":3,"file":"schema.js","sourceRoot":"../../../../../../src","sources":["extensions/markdown/Lists/ListsSpecs/schema.ts"],"names":[],"mappings":"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","sourcesContent":["import type {NodeSpec} from 'prosemirror-model';\n\nimport {ListNode, ListsAttr, Markup} from './const';\n\nexport const schemaSpecs: Record<ListNode, NodeSpec> = {\n [ListNode.ListItem]: {\n attrs: {\n [ListsAttr.Markup]: {default: null},\n },\n content: '(paragraph|block)+',\n defining: true,\n parseDOM: [{tag: 'li'}],\n toDOM() {\n return ['li', 0];\n },\n selectable: true,\n allowSelection: false,\n disableGapCursor: true,\n complex: 'leaf',\n },\n\n [ListNode.BulletList]: {\n content: `${ListNode.ListItem}+`,\n group: 'block',\n attrs: {\n [ListsAttr.Tight]: {default: true},\n [ListsAttr.Markup]: {default: Markup.bullet.default},\n },\n parseDOM: [\n {\n tag: 'ul',\n getAttrs: (dom) => ({\n [ListsAttr.Tight]: (dom as HTMLElement).hasAttribute('data-tight'),\n }),\n },\n ],\n toDOM(node) {\n return ['ul', {'data-tight': node.attrs[ListsAttr.Tight] ? 'true' : null}, 0];\n },\n selectable: false,\n allowSelection: false,\n complex: 'root',\n },\n\n [ListNode.OrderedList]: {\n attrs: {\n [ListsAttr.Order]: {default: 1},\n [ListsAttr.Tight]: {default: true},\n [ListsAttr.Markup]: {default: Markup.ordered.default},\n },\n content: `${ListNode.ListItem}+`,\n group: 'block',\n parseDOM: [\n {\n tag: 'ol',\n getAttrs(dom) {\n return {\n [ListsAttr.Order]: (dom as HTMLElement).hasAttribute('start')\n ? Number((dom as HTMLElement).getAttribute('start')!)\n : 1,\n [ListsAttr.Tight]: (dom as HTMLElement).hasAttribute('data-tight'),\n };\n },\n },\n ],\n toDOM(node) {\n return [\n 'ol',\n {\n start: node.attrs[ListsAttr.Order] === 1 ? null : node.attrs[ListsAttr.Order],\n 'data-tight': node.attrs[ListsAttr.Tight] ? 'true' : null,\n },\n 0,\n ];\n },\n selectable: false,\n allowSelection: false,\n complex: 'root',\n },\n};\n"]}
@@ -3,7 +3,21 @@ import { type YfmTableSpecsOptions } from "./YfmTableSpecs/index.js";
3
3
  declare const action = "createYfmTable";
4
4
  export { convertToYfmTable } from "./commands/convert-table.js";
5
5
  export { YfmTableNode, yfmTableType, yfmTableBodyType, yfmTableRowType, yfmTableCellType, } from "./YfmTableSpecs/index.js";
6
- export type YfmTableOptions = YfmTableSpecsOptions & {};
6
+ export type YfmTableOptions = YfmTableSpecsOptions & {
7
+ /**
8
+ * Enables floating controls for table.
9
+ *
10
+ * @default true
11
+ */
12
+ controls?: boolean;
13
+ /**
14
+ * Enables drag-d-drop rows and columns in table.
15
+ * The `controls` property must also be `true`.
16
+ *
17
+ * @default true
18
+ */
19
+ dnd?: boolean;
20
+ };
7
21
  export declare const YfmTable: ExtensionWithOptions<YfmTableOptions>;
8
22
  declare global {
9
23
  namespace WysiwygEditor {
@@ -6,7 +6,7 @@ const YfmTableSpecs_1 = require("./YfmTableSpecs/index.js");
6
6
  const actions_1 = require("./actions.js");
7
7
  const backspace_1 = require("./commands/backspace.js");
8
8
  const goToNextRow_1 = require("./commands/goToNextRow.js");
9
- const buttons_1 = require("./plugins/YfmTableControls/buttons.js");
9
+ const YfmTableControls_1 = require("./plugins/YfmTableControls/index.js");
10
10
  const yfmTableTransformPastedPlugin_1 = require("./plugins/yfmTableTransformPastedPlugin.js");
11
11
  const action = 'createYfmTable';
12
12
  var convert_table_1 = require("./commands/convert-table.js");
@@ -28,7 +28,9 @@ const YfmTable = (builder, options) => {
28
28
  }));
29
29
  builder.addAction(action, () => actions_1.createYfmTable);
30
30
  builder.addPlugin(yfmTableTransformPastedPlugin_1.yfmTableTransformPastedPlugin);
31
- builder.addPlugin(buttons_1.yfmTableControlsPlugin);
31
+ if (options.controls !== false) {
32
+ builder.addPlugin((0, YfmTableControls_1.yfmTableControlsPlugins)({ dndEnabled: options.dnd !== false }));
33
+ }
32
34
  };
33
35
  exports.YfmTable = YfmTable;
34
36
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"../../../../../src","sources":["extensions/yfm/YfmTable/index.ts"],"names":[],"mappings":";;;AACA,+DAAkD;AAElD,4DAAyE;AACzE,0CAAyC;AACzC,uDAAsD;AACtD,2DAAmD;AACnD,mEAA0E;AAC1E,8FAAsF;AAEtF,MAAM,MAAM,GAAG,gBAAgB,CAAC;AAEhC,6DAA2D;AAAnD,kHAAA,iBAAiB,OAAA;AACzB,0DAMyB;AALrB,6GAAA,YAAY,OAAA;AACZ,6GAAA,YAAY,OAAA;AACZ,iHAAA,gBAAgB,OAAA;AAChB,gHAAA,eAAe,OAAA;AACf,iHAAA,gBAAgB,OAAA;AAKb,MAAM,QAAQ,GAA0C,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;IAChF,OAAO,CAAC,GAAG,CAAC,6BAAa,EAAE,OAAO,CAAC,CAAC;IAEpC,OAAO,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC;QACrB,GAAG,EAAE,IAAA,0BAAY,EAAC,MAAM,CAAC;QACzB,WAAW,EAAE,IAAA,0BAAY,EAAC,MAAM,CAAC;QACjC,SAAS,EAAE,IAAA,yBAAW,EAAC,MAAM,CAAC;QAC9B,OAAO,EAAE,IAAA,yBAAW,EAAC,IAAI,CAAC;QAC1B,SAAS,EAAE,4BAAgB;KAC9B,CAAC,CAAC,CAAC;IACJ,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,wBAAc,CAAC,CAAC;IAChD,OAAO,CAAC,SAAS,CAAC,6DAA6B,CAAC,CAAC;IACjD,OAAO,CAAC,SAAS,CAAC,gCAAsB,CAAC,CAAC;AAC9C,CAAC,CAAC;AAbW,QAAA,QAAQ,YAanB","sourcesContent":["import type {Action, ExtensionWithOptions} from '../../../core';\nimport {goToNextCell} from '../../../table-utils';\n\nimport {YfmTableSpecs, type YfmTableSpecsOptions} from './YfmTableSpecs';\nimport {createYfmTable} from './actions';\nimport {backspaceCommand} from './commands/backspace';\nimport {goToNextRow} from './commands/goToNextRow';\nimport {yfmTableControlsPlugin} from './plugins/YfmTableControls/buttons';\nimport {yfmTableTransformPastedPlugin} from './plugins/yfmTableTransformPastedPlugin';\n\nconst action = 'createYfmTable';\n\nexport {convertToYfmTable} from './commands/convert-table';\nexport {\n YfmTableNode,\n yfmTableType,\n yfmTableBodyType,\n yfmTableRowType,\n yfmTableCellType,\n} from './YfmTableSpecs';\n\nexport type YfmTableOptions = YfmTableSpecsOptions & {};\n\nexport const YfmTable: ExtensionWithOptions<YfmTableOptions> = (builder, options) => {\n builder.use(YfmTableSpecs, options);\n\n builder.addKeymap(() => ({\n Tab: goToNextCell('next'),\n 'Shift-Tab': goToNextCell('prev'),\n ArrowDown: goToNextRow('down'),\n ArrowUp: goToNextRow('up'),\n Backspace: backspaceCommand,\n }));\n builder.addAction(action, () => createYfmTable);\n builder.addPlugin(yfmTableTransformPastedPlugin);\n builder.addPlugin(yfmTableControlsPlugin);\n};\n\ndeclare global {\n namespace WysiwygEditor {\n interface Actions {\n [action]: Action;\n }\n }\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"../../../../../src","sources":["extensions/yfm/YfmTable/index.ts"],"names":[],"mappings":";;;AACA,+DAAkD;AAElD,4DAAyE;AACzE,0CAAyC;AACzC,uDAAsD;AACtD,2DAAmD;AACnD,0EAAmE;AACnE,8FAAsF;AAEtF,MAAM,MAAM,GAAG,gBAAgB,CAAC;AAEhC,6DAA2D;AAAnD,kHAAA,iBAAiB,OAAA;AACzB,0DAMyB;AALrB,6GAAA,YAAY,OAAA;AACZ,6GAAA,YAAY,OAAA;AACZ,iHAAA,gBAAgB,OAAA;AAChB,gHAAA,eAAe,OAAA;AACf,iHAAA,gBAAgB,OAAA;AAmBb,MAAM,QAAQ,GAA0C,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;IAChF,OAAO,CAAC,GAAG,CAAC,6BAAa,EAAE,OAAO,CAAC,CAAC;IAEpC,OAAO,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC;QACrB,GAAG,EAAE,IAAA,0BAAY,EAAC,MAAM,CAAC;QACzB,WAAW,EAAE,IAAA,0BAAY,EAAC,MAAM,CAAC;QACjC,SAAS,EAAE,IAAA,yBAAW,EAAC,MAAM,CAAC;QAC9B,OAAO,EAAE,IAAA,yBAAW,EAAC,IAAI,CAAC;QAC1B,SAAS,EAAE,4BAAgB;KAC9B,CAAC,CAAC,CAAC;IACJ,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,wBAAc,CAAC,CAAC;IAChD,OAAO,CAAC,SAAS,CAAC,6DAA6B,CAAC,CAAC;IAEjD,IAAI,OAAO,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;QAC7B,OAAO,CAAC,SAAS,CAAC,IAAA,0CAAuB,EAAC,EAAC,UAAU,EAAE,OAAO,CAAC,GAAG,KAAK,KAAK,EAAC,CAAC,CAAC,CAAC;IACpF,CAAC;AACL,CAAC,CAAC;AAhBW,QAAA,QAAQ,YAgBnB","sourcesContent":["import type {Action, ExtensionWithOptions} from '../../../core';\nimport {goToNextCell} from '../../../table-utils';\n\nimport {YfmTableSpecs, type YfmTableSpecsOptions} from './YfmTableSpecs';\nimport {createYfmTable} from './actions';\nimport {backspaceCommand} from './commands/backspace';\nimport {goToNextRow} from './commands/goToNextRow';\nimport {yfmTableControlsPlugins} from './plugins/YfmTableControls';\nimport {yfmTableTransformPastedPlugin} from './plugins/yfmTableTransformPastedPlugin';\n\nconst action = 'createYfmTable';\n\nexport {convertToYfmTable} from './commands/convert-table';\nexport {\n YfmTableNode,\n yfmTableType,\n yfmTableBodyType,\n yfmTableRowType,\n yfmTableCellType,\n} from './YfmTableSpecs';\n\nexport type YfmTableOptions = YfmTableSpecsOptions & {\n /**\n * Enables floating controls for table.\n *\n * @default true\n */\n controls?: boolean;\n /**\n * Enables drag-d-drop rows and columns in table.\n * The `controls` property must also be `true`.\n *\n * @default true\n */\n dnd?: boolean;\n};\n\nexport const YfmTable: ExtensionWithOptions<YfmTableOptions> = (builder, options) => {\n builder.use(YfmTableSpecs, options);\n\n builder.addKeymap(() => ({\n Tab: goToNextCell('next'),\n 'Shift-Tab': goToNextCell('prev'),\n ArrowDown: goToNextRow('down'),\n ArrowUp: goToNextRow('up'),\n Backspace: backspaceCommand,\n }));\n builder.addAction(action, () => createYfmTable);\n builder.addPlugin(yfmTableTransformPastedPlugin);\n\n if (options.controls !== false) {\n builder.addPlugin(yfmTableControlsPlugins({dndEnabled: options.dnd !== false}));\n }\n};\n\ndeclare global {\n namespace WysiwygEditor {\n interface Actions {\n [action]: Action;\n }\n }\n}\n"]}
@@ -1 +1,7 @@
1
+ import type { CommandWithAttrs } from "../../../../../core/index.js";
2
+ import type { Node } from "../../../../../pm/model.js";
3
+ export declare const removeYfmTable: CommandWithAttrs<{
4
+ tablePos: number;
5
+ tableNode: Node;
6
+ }>;
1
7
  export declare const controlActions: Record<"deleteTable" | "deleteRow" | "deleteColumn" | "appendColumn" | "appendRow", import("../../../../../core/index.js").ActionSpec>;
@@ -1,27 +1,24 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.controlActions = void 0;
3
+ exports.controlActions = exports.removeYfmTable = void 0;
4
4
  const table_utils_1 = require("../../../../../table-utils/index.js");
5
5
  const actions_1 = require("../../../../../utils/actions.js");
6
6
  const remove_node_1 = require("../../../../../utils/remove-node.js");
7
- const buttons_1 = require("./buttons.js");
8
7
  const removeYfmTable = (state, dispatch, _, attrs) => {
9
8
  if (!attrs)
10
9
  return false;
11
10
  const { tablePos, tableNode } = attrs;
12
11
  if (dispatch) {
13
- const tr = state.tr;
14
- // After removing node plugin state doesn't change and it crashes
15
- tr.setMeta(buttons_1.tableControlsPluginKey, null);
16
12
  (0, remove_node_1.removeNode)({
17
13
  node: tableNode,
18
14
  pos: tablePos,
19
- tr: tr,
15
+ tr: state.tr,
20
16
  dispatch,
21
17
  });
22
18
  }
23
19
  return true;
24
20
  };
21
+ exports.removeYfmTable = removeYfmTable;
25
22
  exports.controlActions = (0, actions_1.defineActions)({
26
23
  deleteRow: {
27
24
  isEnable: table_utils_1.removeRow,
@@ -40,8 +37,8 @@ exports.controlActions = (0, actions_1.defineActions)({
40
37
  run: table_utils_1.appendRow,
41
38
  },
42
39
  deleteTable: {
43
- isEnable: removeYfmTable,
44
- run: removeYfmTable,
40
+ isEnable: exports.removeYfmTable,
41
+ run: exports.removeYfmTable,
45
42
  },
46
43
  });
47
44
  //# sourceMappingURL=actions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"actions.js","sourceRoot":"../../../../../../../src","sources":["extensions/yfm/YfmTable/plugins/YfmTableControls/actions.ts"],"names":[],"mappings":";;;AAGA,qEAA4F;AAC5F,6DAA2D;AAC3D,qEAA4D;AAE5D,0CAAiD;AAEjD,MAAM,cAAc,GAGf,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE;IAC/B,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IACzB,MAAM,EAAC,QAAQ,EAAE,SAAS,EAAC,GAAG,KAAK,CAAC;IAEpC,IAAI,QAAQ,EAAE,CAAC;QACX,MAAM,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;QACpB,iEAAiE;QACjE,EAAE,CAAC,OAAO,CAAC,gCAAsB,EAAE,IAAI,CAAC,CAAC;QACzC,IAAA,wBAAU,EAAC;YACP,IAAI,EAAE,SAAS;YACf,GAAG,EAAE,QAAQ;YACb,EAAE,EAAE,EAAE;YACN,QAAQ;SACX,CAAC,CAAC;IACP,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC,CAAC;AACW,QAAA,cAAc,GAAG,IAAA,uBAAa,EAAC;IACxC,SAAS,EAAE;QACP,QAAQ,EAAE,uBAAS;QACnB,GAAG,EAAE,uBAAS;KACjB;IACD,YAAY,EAAE;QACV,QAAQ,EAAE,0BAAY;QACtB,GAAG,EAAE,0BAAY;KACpB;IACD,YAAY,EAAE;QACV,QAAQ,EAAE,0BAAY;QACtB,GAAG,EAAE,0BAAY;KACpB;IACD,SAAS,EAAE;QACP,QAAQ,EAAE,uBAAS;QACnB,GAAG,EAAE,uBAAS;KACjB;IACD,WAAW,EAAE;QACT,QAAQ,EAAE,cAAc;QACxB,GAAG,EAAE,cAAc;KACtB;CACJ,CAAC,CAAC","sourcesContent":["import type {Node} from 'prosemirror-model';\n\nimport type {CommandWithAttrs} from '../../../../../core';\nimport {appendColumn, appendRow, removeColumn, removeRow} from '../../../../../table-utils';\nimport {defineActions} from '../../../../../utils/actions';\nimport {removeNode} from '../../../../../utils/remove-node';\n\nimport {tableControlsPluginKey} from './buttons';\n\nconst removeYfmTable: CommandWithAttrs<{\n tablePos: number;\n tableNode: Node;\n}> = (state, dispatch, _, attrs) => {\n if (!attrs) return false;\n const {tablePos, tableNode} = attrs;\n\n if (dispatch) {\n const tr = state.tr;\n // After removing node plugin state doesn't change and it crashes\n tr.setMeta(tableControlsPluginKey, null);\n removeNode({\n node: tableNode,\n pos: tablePos,\n tr: tr,\n dispatch,\n });\n }\n\n return true;\n};\nexport const controlActions = defineActions({\n deleteRow: {\n isEnable: removeRow,\n run: removeRow,\n },\n deleteColumn: {\n isEnable: removeColumn,\n run: removeColumn,\n },\n appendColumn: {\n isEnable: appendColumn,\n run: appendColumn,\n },\n appendRow: {\n isEnable: appendRow,\n run: appendRow,\n },\n deleteTable: {\n isEnable: removeYfmTable,\n run: removeYfmTable,\n },\n});\n"]}
1
+ {"version":3,"file":"actions.js","sourceRoot":"../../../../../../../src","sources":["extensions/yfm/YfmTable/plugins/YfmTableControls/actions.ts"],"names":[],"mappings":";;;AAEA,qEAAiF;AACjF,6DAAgD;AAChD,qEAAiD;AAE1C,MAAM,cAAc,GAGtB,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE;IAC/B,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IACzB,MAAM,EAAC,QAAQ,EAAE,SAAS,EAAC,GAAG,KAAK,CAAC;IAEpC,IAAI,QAAQ,EAAE,CAAC;QACX,IAAA,wBAAU,EAAC;YACP,IAAI,EAAE,SAAS;YACf,GAAG,EAAE,QAAQ;YACb,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,QAAQ;SACX,CAAC,CAAC;IACP,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC,CAAC;AAjBW,QAAA,cAAc,kBAiBzB;AACW,QAAA,cAAc,GAAG,IAAA,uBAAa,EAAC;IACxC,SAAS,EAAE;QACP,QAAQ,EAAE,uBAAS;QACnB,GAAG,EAAE,uBAAS;KACjB;IACD,YAAY,EAAE;QACV,QAAQ,EAAE,0BAAY;QACtB,GAAG,EAAE,0BAAY;KACpB;IACD,YAAY,EAAE;QACV,QAAQ,EAAE,0BAAY;QACtB,GAAG,EAAE,0BAAY;KACpB;IACD,SAAS,EAAE;QACP,QAAQ,EAAE,uBAAS;QACnB,GAAG,EAAE,uBAAS;KACjB;IACD,WAAW,EAAE;QACT,QAAQ,EAAE,sBAAc;QACxB,GAAG,EAAE,sBAAc;KACtB;CACJ,CAAC,CAAC","sourcesContent":["import type {CommandWithAttrs} from '#core';\nimport type {Node} from '#pm/model';\nimport {appendColumn, appendRow, removeColumn, removeRow} from 'src/table-utils';\nimport {defineActions} from 'src/utils/actions';\nimport {removeNode} from 'src/utils/remove-node';\n\nexport const removeYfmTable: CommandWithAttrs<{\n tablePos: number;\n tableNode: Node;\n}> = (state, dispatch, _, attrs) => {\n if (!attrs) return false;\n const {tablePos, tableNode} = attrs;\n\n if (dispatch) {\n removeNode({\n node: tableNode,\n pos: tablePos,\n tr: state.tr,\n dispatch,\n });\n }\n\n return true;\n};\nexport const controlActions = defineActions({\n deleteRow: {\n isEnable: removeRow,\n run: removeRow,\n },\n deleteColumn: {\n isEnable: removeColumn,\n run: removeColumn,\n },\n appendColumn: {\n isEnable: appendColumn,\n run: appendColumn,\n },\n appendRow: {\n isEnable: appendRow,\n run: appendRow,\n },\n deleteTable: {\n isEnable: removeYfmTable,\n run: removeYfmTable,\n },\n});\n"]}
@@ -0,0 +1,7 @@
1
+ import type { Command } from "../../../../../../pm/state.js";
2
+ export type ClearCellsParams = {
3
+ tablePos: number;
4
+ rows?: number[];
5
+ cols?: number[];
6
+ };
7
+ export declare const clearCells: (params: ClearCellsParams) => Command;
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.clearCells = void 0;
4
+ const specs_1 = require("../../../../../base/specs.js");
5
+ const table_desc_1 = require("../../../../../../table-utils/table-desc.js");
6
+ const clearCells = (params) => {
7
+ return (state, dispatch) => {
8
+ const table = state.doc.nodeAt(params.tablePos);
9
+ const tableDesc = table && table_desc_1.TableDesc.create(table)?.bind(params.tablePos);
10
+ if (!tableDesc)
11
+ return false;
12
+ if (!dispatch)
13
+ return true;
14
+ const { tr } = state;
15
+ const paragraph = (0, specs_1.pType)(state.schema);
16
+ const clear = (cells) => {
17
+ for (const pos of cells) {
18
+ if (pos.type !== 'real')
19
+ continue;
20
+ tr.replaceWith(tr.mapping.map(pos.from + 1), tr.mapping.map(pos.to - 1), paragraph.create());
21
+ }
22
+ };
23
+ if (params.rows) {
24
+ for (const rowIdx of params.rows) {
25
+ const cellsPos = tableDesc.getPosForRowCells(rowIdx);
26
+ clear(cellsPos);
27
+ }
28
+ }
29
+ if (params.cols) {
30
+ for (const colIdx of params.cols) {
31
+ const cellsPos = tableDesc.getPosForColumn(colIdx);
32
+ clear(cellsPos);
33
+ }
34
+ }
35
+ if (tr.docChanged)
36
+ dispatch(tr);
37
+ return true;
38
+ };
39
+ };
40
+ exports.clearCells = clearCells;
41
+ //# sourceMappingURL=clear-cells.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clear-cells.js","sourceRoot":"../../../../../../../../src","sources":["extensions/yfm/YfmTable/plugins/YfmTableControls/commands/clear-cells.ts"],"names":[],"mappings":";;;AACA,wDAAgD;AAChD,4EAAmE;AAQ5D,MAAM,UAAU,GAAG,CAAC,MAAwB,EAAW,EAAE;IAC5D,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;QACvB,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAChD,MAAM,SAAS,GAAG,KAAK,IAAI,sBAAS,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC1E,IAAI,CAAC,SAAS;YAAE,OAAO,KAAK,CAAC;QAE7B,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAC;QAE3B,MAAM,EAAC,EAAE,EAAC,GAAG,KAAK,CAAC;QACnB,MAAM,SAAS,GAAG,IAAA,aAAK,EAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAEtC,MAAM,KAAK,GAAG,CAAC,KAAgB,EAAE,EAAE;YAC/B,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;gBACtB,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM;oBAAE,SAAS;gBAClC,EAAE,CAAC,WAAW,CACV,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,EAC5B,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,EAC1B,SAAS,CAAC,MAAM,EAAE,CACrB,CAAC;YACN,CAAC;QACL,CAAC,CAAC;QAEF,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YACd,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;gBAC/B,MAAM,QAAQ,GAAG,SAAS,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;gBACrD,KAAK,CAAC,QAAQ,CAAC,CAAC;YACpB,CAAC;QACL,CAAC;QACD,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YACd,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;gBAC/B,MAAM,QAAQ,GAAG,SAAS,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;gBACnD,KAAK,CAAC,QAAQ,CAAC,CAAC;YACpB,CAAC;QACL,CAAC;QAED,IAAI,EAAE,CAAC,UAAU;YAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;QAEhC,OAAO,IAAI,CAAC;IAChB,CAAC,CAAC;AACN,CAAC,CAAC;AAvCW,QAAA,UAAU,cAuCrB","sourcesContent":["import type {Command} from '#pm/state';\nimport {pType} from 'src/extensions/base/specs';\nimport {type CellPos, TableDesc} from 'src/table-utils/table-desc';\n\nexport type ClearCellsParams = {\n tablePos: number;\n rows?: number[];\n cols?: number[];\n};\n\nexport const clearCells = (params: ClearCellsParams): Command => {\n return (state, dispatch) => {\n const table = state.doc.nodeAt(params.tablePos);\n const tableDesc = table && TableDesc.create(table)?.bind(params.tablePos);\n if (!tableDesc) return false;\n\n if (!dispatch) return true;\n\n const {tr} = state;\n const paragraph = pType(state.schema);\n\n const clear = (cells: CellPos[]) => {\n for (const pos of cells) {\n if (pos.type !== 'real') continue;\n tr.replaceWith(\n tr.mapping.map(pos.from + 1),\n tr.mapping.map(pos.to - 1),\n paragraph.create(),\n );\n }\n };\n\n if (params.rows) {\n for (const rowIdx of params.rows) {\n const cellsPos = tableDesc.getPosForRowCells(rowIdx);\n clear(cellsPos);\n }\n }\n if (params.cols) {\n for (const colIdx of params.cols) {\n const cellsPos = tableDesc.getPosForColumn(colIdx);\n clear(cellsPos);\n }\n }\n\n if (tr.docChanged) dispatch(tr);\n\n return true;\n };\n};\n"]}
@@ -0,0 +1,6 @@
1
+ import { type Command } from "../../../../../../pm/state.js";
2
+ export type InsertEmptyColumnParams = {
3
+ tablePos: number;
4
+ colIndex: number;
5
+ };
6
+ export declare const insertEmptyColumn: (params: InsertEmptyColumnParams) => Command;
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.insertEmptyColumn = void 0;
4
+ const state_1 = require("../../../../../../pm/state.js");
5
+ const lodash_1 = require("../../../../../../lodash.js");
6
+ const table_desc_1 = require("../../../../../../table-utils/table-desc.js");
7
+ const YfmTableSpecs_1 = require("../../../YfmTableSpecs/index.js");
8
+ const insertEmptyColumn = (params) => {
9
+ return (state, dispatch) => {
10
+ const table = state.doc.nodeAt(params.tablePos);
11
+ const tableDesc = table && table_desc_1.TableDesc.create(table)?.bind(params.tablePos);
12
+ if (!tableDesc)
13
+ return false;
14
+ const colIdx = Math.min(Math.max(params.colIndex, 0), tableDesc.cols);
15
+ if (dispatch) {
16
+ const posToInsert = [];
17
+ const incrementColspan = [];
18
+ if (colIdx === 0) {
19
+ posToInsert.push(...tableDesc.getPosForColumn(0).map((pos) => getCellPos(pos, 'start')));
20
+ }
21
+ else if (colIdx === tableDesc.cols) {
22
+ posToInsert.push(...tableDesc
23
+ .getPosForColumn(tableDesc.cols - 1)
24
+ .map((pos) => getCellPos(pos, 'end')));
25
+ }
26
+ else {
27
+ for (let rowIdx = 0; rowIdx < tableDesc.rows; rowIdx++) {
28
+ const cell = tableDesc.base.rowsDesc[rowIdx].cells[colIdx];
29
+ if (cell.type === 'virtual' && cell.colspan && cell.colspan[1] !== colIdx) {
30
+ incrementColspan.push(cell.colspan);
31
+ }
32
+ else {
33
+ posToInsert.push(getCellPos(tableDesc.getPosForCell(rowIdx, colIdx), 'start'));
34
+ }
35
+ }
36
+ }
37
+ const { tr } = state;
38
+ const td = (0, YfmTableSpecs_1.yfmTableCellType)(state.schema);
39
+ for (const [rowIdx, colIdx] of (0, lodash_1.uniqWith)(incrementColspan, lodash_1.isEqual)) {
40
+ const cell = tableDesc.base.rowsDesc[rowIdx].cells[colIdx];
41
+ const cellPos = tableDesc.getPosForCell(rowIdx, colIdx);
42
+ tr.setNodeAttribute(cellPos.from, 'colspan', cell.colspan + 1);
43
+ }
44
+ for (const pos of posToInsert) {
45
+ tr.insert(tr.mapping.map(pos), td.createAndFill());
46
+ }
47
+ tr.setSelection(state_1.TextSelection.near(tr.doc.resolve(posToInsert[0]), 1));
48
+ dispatch(tr.scrollIntoView());
49
+ }
50
+ return true;
51
+ };
52
+ };
53
+ exports.insertEmptyColumn = insertEmptyColumn;
54
+ function getCellPos(pos, dir) {
55
+ if (pos.type === 'virtual')
56
+ return pos.closestPos;
57
+ return dir === 'start' ? pos.from : pos.to;
58
+ }
59
+ //# sourceMappingURL=insert-empty-column.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"insert-empty-column.js","sourceRoot":"../../../../../../../../src","sources":["extensions/yfm/YfmTable/plugins/YfmTableControls/commands/insert-empty-column.ts"],"names":[],"mappings":"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","sourcesContent":["import {type Command, TextSelection} from '#pm/state';\nimport {isEqual, uniqWith} from 'src/lodash';\nimport {\n type CellPos,\n type RealCellPos,\n type TableCellRealDesc,\n TableDesc,\n} from 'src/table-utils/table-desc';\n\nimport {yfmTableCellType} from '../../../YfmTableSpecs';\n\nexport type InsertEmptyColumnParams = {\n tablePos: number;\n colIndex: number;\n};\n\nexport const insertEmptyColumn = (params: InsertEmptyColumnParams): Command => {\n return (state, dispatch) => {\n const table = state.doc.nodeAt(params.tablePos);\n const tableDesc = table && TableDesc.create(table)?.bind(params.tablePos);\n if (!tableDesc) return false;\n\n const colIdx = Math.min(Math.max(params.colIndex, 0), tableDesc.cols);\n\n if (dispatch) {\n const posToInsert: number[] = [];\n const incrementColspan: [number, number][] = [];\n\n if (colIdx === 0) {\n posToInsert.push(\n ...tableDesc.getPosForColumn(0).map((pos) => getCellPos(pos, 'start')),\n );\n } else if (colIdx === tableDesc.cols) {\n posToInsert.push(\n ...tableDesc\n .getPosForColumn(tableDesc.cols - 1)\n .map((pos) => getCellPos(pos, 'end')),\n );\n } else {\n for (let rowIdx = 0; rowIdx < tableDesc.rows; rowIdx++) {\n const cell = tableDesc.base.rowsDesc[rowIdx].cells[colIdx];\n if (cell.type === 'virtual' && cell.colspan && cell.colspan[1] !== colIdx) {\n incrementColspan.push(cell.colspan);\n } else {\n posToInsert.push(\n getCellPos(tableDesc.getPosForCell(rowIdx, colIdx), 'start'),\n );\n }\n }\n }\n\n const {tr} = state;\n const td = yfmTableCellType(state.schema);\n for (const [rowIdx, colIdx] of uniqWith(incrementColspan, isEqual)) {\n const cell = tableDesc.base.rowsDesc[rowIdx].cells[colIdx] as TableCellRealDesc;\n const cellPos = tableDesc.getPosForCell(rowIdx, colIdx) as RealCellPos;\n tr.setNodeAttribute(cellPos.from, 'colspan', cell.colspan! + 1);\n }\n for (const pos of posToInsert) {\n tr.insert(tr.mapping.map(pos), td.createAndFill()!);\n }\n tr.setSelection(TextSelection.near(tr.doc.resolve(posToInsert[0]), 1));\n dispatch(tr.scrollIntoView());\n }\n\n return true;\n };\n};\n\nfunction getCellPos(pos: CellPos, dir: 'start' | 'end'): number {\n if (pos.type === 'virtual') return pos.closestPos;\n return dir === 'start' ? pos.from : pos.to;\n}\n"]}
@@ -0,0 +1,6 @@
1
+ import { type Command } from "../../../../../../pm/state.js";
2
+ export type InsertEmptyRowParams = {
3
+ tablePos: number;
4
+ rowIndex: number;
5
+ };
6
+ export declare const insertEmptyRow: (params: InsertEmptyRowParams) => Command;