@gravity-ui/markdown-editor 15.4.2 → 15.6.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 (196) hide show
  1. package/build/cjs/bundle/MarkdownEditorView.d.ts +3 -2
  2. package/build/cjs/bundle/MarkdownEditorView.js +3 -3
  3. package/build/cjs/bundle/MarkdownEditorView.js.map +1 -1
  4. package/build/cjs/bundle/MarkupEditorView.d.ts +2 -1
  5. package/build/cjs/bundle/MarkupEditorView.js +2 -2
  6. package/build/cjs/bundle/MarkupEditorView.js.map +1 -1
  7. package/build/cjs/bundle/WysiwygEditorView.d.ts +2 -1
  8. package/build/cjs/bundle/WysiwygEditorView.js +2 -2
  9. package/build/cjs/bundle/WysiwygEditorView.js.map +1 -1
  10. package/build/cjs/bundle/config/action-names.d.ts +1 -1
  11. package/build/cjs/bundle/config/action-names.js +1 -0
  12. package/build/cjs/bundle/config/action-names.js.map +1 -1
  13. package/build/cjs/bundle/config/icons.d.ts +1 -1
  14. package/build/cjs/bundle/config/icons.js +1 -0
  15. package/build/cjs/bundle/config/icons.js.map +1 -1
  16. package/build/cjs/bundle/config/w-heading-config.js +1 -0
  17. package/build/cjs/bundle/config/w-heading-config.js.map +1 -1
  18. package/build/cjs/bundle/settings/index.js +3 -3
  19. package/build/cjs/bundle/settings/index.js.map +1 -1
  20. package/build/cjs/bundle/toolbar/utils/toolbarsConfigs.js +4 -1
  21. package/build/cjs/bundle/toolbar/utils/toolbarsConfigs.js.map +1 -1
  22. package/build/cjs/bundle/types.d.ts +6 -0
  23. package/build/cjs/bundle/types.js.map +1 -1
  24. package/build/cjs/bundle/useMarkdownEditor.js +1 -0
  25. package/build/cjs/bundle/useMarkdownEditor.js.map +1 -1
  26. package/build/cjs/bundle/wysiwyg-preset.d.ts +1 -0
  27. package/build/cjs/bundle/wysiwyg-preset.js +1 -0
  28. package/build/cjs/bundle/wysiwyg-preset.js.map +1 -1
  29. package/build/cjs/extensions/additional/QuoteLink/PlaceholderWidget/commands.d.ts +3 -0
  30. package/build/cjs/extensions/additional/QuoteLink/PlaceholderWidget/commands.js +10 -0
  31. package/build/cjs/extensions/additional/QuoteLink/PlaceholderWidget/commands.js.map +1 -0
  32. package/build/cjs/extensions/additional/QuoteLink/PlaceholderWidget/descriptor.d.ts +16 -0
  33. package/build/cjs/extensions/additional/QuoteLink/PlaceholderWidget/descriptor.js +72 -0
  34. package/build/cjs/extensions/additional/QuoteLink/PlaceholderWidget/descriptor.js.map +1 -0
  35. package/build/cjs/extensions/additional/QuoteLink/QuoteLinkSpecs/index.d.ts +10 -0
  36. package/build/cjs/extensions/additional/QuoteLink/QuoteLinkSpecs/index.js +71 -0
  37. package/build/cjs/extensions/additional/QuoteLink/QuoteLinkSpecs/index.js.map +1 -0
  38. package/build/cjs/extensions/additional/QuoteLink/QuoteLinkSpecs/md/moveLinkToQuoteAttributes.d.ts +2 -0
  39. package/build/cjs/extensions/additional/QuoteLink/QuoteLinkSpecs/md/moveLinkToQuoteAttributes.js +41 -0
  40. package/build/cjs/extensions/additional/QuoteLink/QuoteLinkSpecs/md/moveLinkToQuoteAttributes.js.map +1 -0
  41. package/build/cjs/extensions/additional/QuoteLink/QuoteLinkSpecs/md/utils.d.ts +6 -0
  42. package/build/cjs/extensions/additional/QuoteLink/QuoteLinkSpecs/md/utils.js +24 -0
  43. package/build/cjs/extensions/additional/QuoteLink/QuoteLinkSpecs/md/utils.js.map +1 -0
  44. package/build/cjs/extensions/additional/QuoteLink/commands.d.ts +4 -0
  45. package/build/cjs/extensions/additional/QuoteLink/commands.js +45 -0
  46. package/build/cjs/extensions/additional/QuoteLink/commands.js.map +1 -0
  47. package/build/cjs/extensions/additional/QuoteLink/index.css +32 -0
  48. package/build/cjs/extensions/additional/QuoteLink/index.d.ts +16 -0
  49. package/build/cjs/extensions/additional/QuoteLink/index.js +42 -0
  50. package/build/cjs/extensions/additional/QuoteLink/index.js.map +1 -0
  51. package/build/cjs/extensions/additional/YfmHtmlBlock/utils.js +2 -12
  52. package/build/cjs/extensions/additional/YfmHtmlBlock/utils.js.map +1 -1
  53. package/build/cjs/extensions/behavior/Clipboard/utils.d.ts +8 -1
  54. package/build/cjs/extensions/behavior/Clipboard/utils.js +3 -3
  55. package/build/cjs/extensions/behavior/Clipboard/utils.js.map +1 -1
  56. package/build/cjs/extensions/markdown/Html/schema.js +3 -3
  57. package/build/cjs/extensions/markdown/Html/schema.js.map +1 -1
  58. package/build/cjs/extensions/markdown/Lists/actions.js +2 -2
  59. package/build/cjs/extensions/markdown/Lists/actions.js.map +1 -1
  60. package/build/cjs/extensions/markdown/Lists/commands.d.ts +2 -1
  61. package/build/cjs/extensions/markdown/Lists/commands.js +64 -0
  62. package/build/cjs/extensions/markdown/Lists/commands.js.map +1 -1
  63. package/build/cjs/extensions/markdown/Lists/index.js +2 -2
  64. package/build/cjs/extensions/markdown/Lists/index.js.map +1 -1
  65. package/build/cjs/extensions/yfm/YfmConfigs/YfmConfigsSpecs/index.d.ts +2 -0
  66. package/build/cjs/extensions/yfm/YfmConfigs/YfmConfigsSpecs/index.js +5 -2
  67. package/build/cjs/extensions/yfm/YfmConfigs/YfmConfigsSpecs/index.js.map +1 -1
  68. package/build/cjs/extensions/yfm/YfmHeading/YfmHeadingSpecs/index.d.ts +1 -1
  69. package/build/cjs/extensions/yfm/YfmHeading/YfmHeadingSpecs/index.js +2 -0
  70. package/build/cjs/extensions/yfm/YfmHeading/YfmHeadingSpecs/index.js.map +1 -1
  71. package/build/cjs/extensions/yfm/YfmHeading/YfmHeadingSpecs/markdown/heading-attrs.d.ts +9 -0
  72. package/build/cjs/extensions/yfm/YfmHeading/YfmHeadingSpecs/markdown/heading-attrs.js +46 -0
  73. package/build/cjs/extensions/yfm/YfmHeading/YfmHeadingSpecs/markdown/heading-attrs.js.map +1 -0
  74. package/build/cjs/i18n/menubar/en.json +1 -0
  75. package/build/cjs/i18n/menubar/index.d.ts +2 -1
  76. package/build/cjs/i18n/menubar/ru.json +1 -0
  77. package/build/cjs/icons/index.d.ts +1 -1
  78. package/build/cjs/icons/index.js +2 -1
  79. package/build/cjs/icons/index.js.map +1 -1
  80. package/build/cjs/markup/commands/blocks.d.ts +1 -0
  81. package/build/cjs/markup/commands/blocks.js +8 -1
  82. package/build/cjs/markup/commands/blocks.js.map +1 -1
  83. package/build/cjs/modules/toolbars/items.d.ts +3 -0
  84. package/build/cjs/modules/toolbars/items.js +23 -3
  85. package/build/cjs/modules/toolbars/items.js.map +1 -1
  86. package/build/cjs/modules/toolbars/types.d.ts +2 -0
  87. package/build/cjs/modules/toolbars/types.js.map +1 -1
  88. package/build/cjs/toolbar/ToolbarListButton.d.ts +1 -1
  89. package/build/cjs/toolbar/ToolbarListButton.js +6 -4
  90. package/build/cjs/toolbar/ToolbarListButton.js.map +1 -1
  91. package/build/cjs/toolbar/types.d.ts +2 -0
  92. package/build/cjs/toolbar/types.js.map +1 -1
  93. package/build/cjs/utils/getSanitize.d.ts +4 -0
  94. package/build/cjs/utils/getSanitize.js +16 -0
  95. package/build/cjs/utils/getSanitize.js.map +1 -0
  96. package/build/cjs/version.js +1 -1
  97. package/build/cjs/version.js.map +1 -1
  98. package/build/esm/bundle/MarkdownEditorView.d.ts +3 -2
  99. package/build/esm/bundle/MarkdownEditorView.js +3 -3
  100. package/build/esm/bundle/MarkdownEditorView.js.map +1 -1
  101. package/build/esm/bundle/MarkupEditorView.d.ts +2 -1
  102. package/build/esm/bundle/MarkupEditorView.js +2 -2
  103. package/build/esm/bundle/MarkupEditorView.js.map +1 -1
  104. package/build/esm/bundle/WysiwygEditorView.d.ts +2 -1
  105. package/build/esm/bundle/WysiwygEditorView.js +2 -2
  106. package/build/esm/bundle/WysiwygEditorView.js.map +1 -1
  107. package/build/esm/bundle/config/action-names.d.ts +1 -1
  108. package/build/esm/bundle/config/action-names.js +1 -0
  109. package/build/esm/bundle/config/action-names.js.map +1 -1
  110. package/build/esm/bundle/config/icons.d.ts +1 -1
  111. package/build/esm/bundle/config/icons.js +2 -1
  112. package/build/esm/bundle/config/icons.js.map +1 -1
  113. package/build/esm/bundle/config/w-heading-config.js +1 -0
  114. package/build/esm/bundle/config/w-heading-config.js.map +1 -1
  115. package/build/esm/bundle/settings/index.js +3 -3
  116. package/build/esm/bundle/settings/index.js.map +1 -1
  117. package/build/esm/bundle/toolbar/utils/toolbarsConfigs.js +4 -1
  118. package/build/esm/bundle/toolbar/utils/toolbarsConfigs.js.map +1 -1
  119. package/build/esm/bundle/types.d.ts +6 -0
  120. package/build/esm/bundle/types.js.map +1 -1
  121. package/build/esm/bundle/useMarkdownEditor.js +1 -0
  122. package/build/esm/bundle/useMarkdownEditor.js.map +1 -1
  123. package/build/esm/bundle/wysiwyg-preset.d.ts +1 -0
  124. package/build/esm/bundle/wysiwyg-preset.js +1 -0
  125. package/build/esm/bundle/wysiwyg-preset.js.map +1 -1
  126. package/build/esm/extensions/additional/QuoteLink/PlaceholderWidget/commands.d.ts +3 -0
  127. package/build/esm/extensions/additional/QuoteLink/PlaceholderWidget/commands.js +6 -0
  128. package/build/esm/extensions/additional/QuoteLink/PlaceholderWidget/commands.js.map +1 -0
  129. package/build/esm/extensions/additional/QuoteLink/PlaceholderWidget/descriptor.d.ts +16 -0
  130. package/build/esm/extensions/additional/QuoteLink/PlaceholderWidget/descriptor.js +67 -0
  131. package/build/esm/extensions/additional/QuoteLink/PlaceholderWidget/descriptor.js.map +1 -0
  132. package/build/esm/extensions/additional/QuoteLink/QuoteLinkSpecs/index.d.ts +10 -0
  133. package/build/esm/extensions/additional/QuoteLink/QuoteLinkSpecs/index.js +66 -0
  134. package/build/esm/extensions/additional/QuoteLink/QuoteLinkSpecs/index.js.map +1 -0
  135. package/build/esm/extensions/additional/QuoteLink/QuoteLinkSpecs/md/moveLinkToQuoteAttributes.d.ts +2 -0
  136. package/build/esm/extensions/additional/QuoteLink/QuoteLinkSpecs/md/moveLinkToQuoteAttributes.js +37 -0
  137. package/build/esm/extensions/additional/QuoteLink/QuoteLinkSpecs/md/moveLinkToQuoteAttributes.js.map +1 -0
  138. package/build/esm/extensions/additional/QuoteLink/QuoteLinkSpecs/md/utils.d.ts +6 -0
  139. package/build/esm/extensions/additional/QuoteLink/QuoteLinkSpecs/md/utils.js +21 -0
  140. package/build/esm/extensions/additional/QuoteLink/QuoteLinkSpecs/md/utils.js.map +1 -0
  141. package/build/esm/extensions/additional/QuoteLink/commands.d.ts +4 -0
  142. package/build/esm/extensions/additional/QuoteLink/commands.js +41 -0
  143. package/build/esm/extensions/additional/QuoteLink/commands.js.map +1 -0
  144. package/build/esm/extensions/additional/QuoteLink/index.css +32 -0
  145. package/build/esm/extensions/additional/QuoteLink/index.d.ts +16 -0
  146. package/build/esm/extensions/additional/QuoteLink/index.js +38 -0
  147. package/build/esm/extensions/additional/QuoteLink/index.js.map +1 -0
  148. package/build/esm/extensions/additional/YfmHtmlBlock/utils.js +2 -11
  149. package/build/esm/extensions/additional/YfmHtmlBlock/utils.js.map +1 -1
  150. package/build/esm/extensions/behavior/Clipboard/utils.d.ts +8 -1
  151. package/build/esm/extensions/behavior/Clipboard/utils.js +3 -3
  152. package/build/esm/extensions/behavior/Clipboard/utils.js.map +1 -1
  153. package/build/esm/extensions/markdown/Html/schema.js +2 -1
  154. package/build/esm/extensions/markdown/Html/schema.js.map +1 -1
  155. package/build/esm/extensions/markdown/Lists/actions.js +4 -4
  156. package/build/esm/extensions/markdown/Lists/actions.js.map +1 -1
  157. package/build/esm/extensions/markdown/Lists/commands.d.ts +2 -1
  158. package/build/esm/extensions/markdown/Lists/commands.js +63 -0
  159. package/build/esm/extensions/markdown/Lists/commands.js.map +1 -1
  160. package/build/esm/extensions/markdown/Lists/index.js +4 -4
  161. package/build/esm/extensions/markdown/Lists/index.js.map +1 -1
  162. package/build/esm/extensions/yfm/YfmConfigs/YfmConfigsSpecs/index.d.ts +2 -0
  163. package/build/esm/extensions/yfm/YfmConfigs/YfmConfigsSpecs/index.js +5 -2
  164. package/build/esm/extensions/yfm/YfmConfigs/YfmConfigsSpecs/index.js.map +1 -1
  165. package/build/esm/extensions/yfm/YfmHeading/YfmHeadingSpecs/index.d.ts +1 -1
  166. package/build/esm/extensions/yfm/YfmHeading/YfmHeadingSpecs/index.js +2 -0
  167. package/build/esm/extensions/yfm/YfmHeading/YfmHeadingSpecs/index.js.map +1 -1
  168. package/build/esm/extensions/yfm/YfmHeading/YfmHeadingSpecs/markdown/heading-attrs.d.ts +9 -0
  169. package/build/esm/extensions/yfm/YfmHeading/YfmHeadingSpecs/markdown/heading-attrs.js +42 -0
  170. package/build/esm/extensions/yfm/YfmHeading/YfmHeadingSpecs/markdown/heading-attrs.js.map +1 -0
  171. package/build/esm/i18n/menubar/en.json +1 -0
  172. package/build/esm/i18n/menubar/index.d.ts +2 -1
  173. package/build/esm/i18n/menubar/ru.json +1 -0
  174. package/build/esm/icons/index.d.ts +1 -1
  175. package/build/esm/icons/index.js +1 -1
  176. package/build/esm/icons/index.js.map +1 -1
  177. package/build/esm/markup/commands/blocks.d.ts +1 -0
  178. package/build/esm/markup/commands/blocks.js +6 -0
  179. package/build/esm/markup/commands/blocks.js.map +1 -1
  180. package/build/esm/modules/toolbars/items.d.ts +3 -0
  181. package/build/esm/modules/toolbars/items.js +21 -1
  182. package/build/esm/modules/toolbars/items.js.map +1 -1
  183. package/build/esm/modules/toolbars/types.d.ts +2 -0
  184. package/build/esm/modules/toolbars/types.js.map +1 -1
  185. package/build/esm/toolbar/ToolbarListButton.d.ts +1 -1
  186. package/build/esm/toolbar/ToolbarListButton.js +6 -4
  187. package/build/esm/toolbar/ToolbarListButton.js.map +1 -1
  188. package/build/esm/toolbar/types.d.ts +2 -0
  189. package/build/esm/toolbar/types.js.map +1 -1
  190. package/build/esm/utils/getSanitize.d.ts +4 -0
  191. package/build/esm/utils/getSanitize.js +11 -0
  192. package/build/esm/utils/getSanitize.js.map +1 -0
  193. package/build/esm/version.js +1 -1
  194. package/build/esm/version.js.map +1 -1
  195. package/build/styles.css +32 -0
  196. package/package.json +9 -1
@@ -1,3 +1,4 @@
1
+ import { type QAProps } from '@gravity-ui/uikit';
1
2
  import { type ClassNameProps } from "../classname.js";
2
3
  import type { ToolbarsPreset } from "../modules/toolbars/types.js";
3
4
  import type { Editor } from "./Editor.js";
@@ -5,7 +6,7 @@ import type { MToolbarData, MToolbarItemData, WToolbarData, WToolbarItemData } f
5
6
  import "../styles/styles.css";
6
7
  import "./MarkdownEditorView.css";
7
8
  export declare const cnEditorComponent: import("@bem-react/classname").ClassNameFormatter;
8
- export type MarkdownEditorViewProps = ClassNameProps & {
9
+ export type MarkdownEditorViewProps = ClassNameProps & QAProps & {
9
10
  editor?: Editor;
10
11
  autofocus?: boolean;
11
12
  toolbarsPreset?: ToolbarsPreset;
@@ -31,7 +32,7 @@ export type MarkdownEditorViewProps = ClassNameProps & {
31
32
  enableSubmitInPreview?: boolean;
32
33
  hidePreviewAfterSubmit?: boolean;
33
34
  };
34
- export declare const MarkdownEditorView: import("react").ForwardRefExoticComponent<ClassNameProps & {
35
+ export declare const MarkdownEditorView: import("react").ForwardRefExoticComponent<ClassNameProps & QAProps & {
35
36
  editor?: Editor;
36
37
  autofocus?: boolean;
37
38
  toolbarsPreset?: ToolbarsPreset;
@@ -34,7 +34,7 @@ exports.MarkdownEditorView = (0, react_1.forwardRef)((props, ref) => {
34
34
  const editor = (props.editor ?? context);
35
35
  if (!editor)
36
36
  throw new Error('[MarkdownEditorView]: an instance of the editor must be passed through the props or context');
37
- const { autofocus, className, settingsVisible = true, toolbarsPreset, stickyToolbar, wysiwygToolbarConfig: initialWysiwygToolbarConfig, markupToolbarConfig: initialMarkupToolbarConfig, wysiwygHiddenActionsConfig: initialWysiwygHiddenActionsConfig, markupHiddenActionsConfig: initialMarkupHiddenActionsConfig, enableSubmitInPreview = true, hidePreviewAfterSubmit = false, } = props;
37
+ const { qa, autofocus, className, settingsVisible = true, toolbarsPreset, stickyToolbar, wysiwygToolbarConfig: initialWysiwygToolbarConfig, markupToolbarConfig: initialMarkupToolbarConfig, wysiwygHiddenActionsConfig: initialWysiwygHiddenActionsConfig, markupHiddenActionsConfig: initialMarkupHiddenActionsConfig, enableSubmitInPreview = true, hidePreviewAfterSubmit = false, } = props;
38
38
  const { wysiwygToolbarConfig, markupToolbarConfig, wysiwygHiddenActionsConfig, markupHiddenActionsConfig, } = (0, react_1.useMemo)(() => (0, toolbarsConfigs_1.getToolbarsConfigs)({
39
39
  toolbarsPreset,
40
40
  props: {
@@ -132,7 +132,7 @@ exports.MarkdownEditorView = (0, react_1.forwardRef)((props, ref) => {
132
132
  });
133
133
  });
134
134
  return null;
135
- }, children: (0, jsx_runtime_1.jsxs)("div", { ref: divRef, className: b({
135
+ }, children: (0, jsx_runtime_1.jsxs)("div", { ref: divRef, "data-qa": qa, className: b({
136
136
  settings: settingsVisible,
137
137
  split: markupSplitMode && editor.splitMode,
138
138
  }, [className]), role: "button", tabIndex: 0, children: [(0, jsx_runtime_1.jsx)("div", { className: b('editor-wrapper'), ref: editorWrapperRef, children: showPreview ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("div", { className: b('preview-wrapper'), children: editor.renderPreview?.({
@@ -140,7 +140,7 @@ exports.MarkdownEditorView = (0, react_1.forwardRef)((props, ref) => {
140
140
  mode: 'preview',
141
141
  md: editor.mdOptions,
142
142
  directiveSyntax: editor.directiveSyntax,
143
- }) }), settings] })) : ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [editorMode === 'wysiwyg' && ((0, jsx_runtime_1.jsx)(WysiwygEditorView_1.WysiwygEditorView, { editor: editor, autofocus: autofocus, settingsVisible: settingsVisible, toolbarConfig: wysiwygToolbarConfig, toolbarVisible: editor.toolbarVisible, hiddenActionsConfig: wysiwygHiddenActionsConfig, className: b('editor', { mode: editorMode }), toolbarClassName: b('toolbar'), stickyToolbar: stickyToolbar, children: editor.toolbarVisible && settingsVisible && settings })), editorMode === 'markup' && ((0, jsx_runtime_1.jsx)(MarkupEditorView_1.MarkupEditorView, { editor: editor, autofocus: autofocus, settingsVisible: settingsVisible, toolbarConfig: markupToolbarConfig, toolbarVisible: editor.toolbarVisible, splitMode: editor.splitMode, splitModeEnabled: editor.splitModeEnabled, hiddenActionsConfig: markupHiddenActionsConfig, className: b('editor', { mode: editorMode }), toolbarClassName: b('toolbar'), stickyToolbar: stickyToolbar, children: editor.toolbarVisible && settings })), !editor.toolbarVisible && settings] })) }), markupSplitMode && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [editor.splitMode === 'horizontal' ? ((0, jsx_runtime_1.jsx)(HorizontalDrag_1.HorizontalDrag, { editor: editor, isMounted: isMounted, leftElRef: editorWrapperRef, rightElRef: splitModeViewWrapperRef, wrapperRef: divRef })) : ((0, jsx_runtime_1.jsx)("div", { className: b('resizer') })), (0, jsx_runtime_1.jsx)(SplitModeView_1.SplitModeView, { editor: editor, ref: splitModeViewWrapperRef })] }))] }) }));
143
+ }) }), settings] })) : ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [editorMode === 'wysiwyg' && ((0, jsx_runtime_1.jsx)(WysiwygEditorView_1.WysiwygEditorView, { editor: editor, autofocus: autofocus, settingsVisible: settingsVisible, toolbarConfig: wysiwygToolbarConfig, toolbarVisible: editor.toolbarVisible, hiddenActionsConfig: wysiwygHiddenActionsConfig, qa: "g-md-editor-mode", className: b('editor', { mode: editorMode }), toolbarClassName: b('toolbar'), stickyToolbar: stickyToolbar, children: editor.toolbarVisible && settingsVisible && settings })), editorMode === 'markup' && ((0, jsx_runtime_1.jsx)(MarkupEditorView_1.MarkupEditorView, { editor: editor, autofocus: autofocus, settingsVisible: settingsVisible, toolbarConfig: markupToolbarConfig, toolbarVisible: editor.toolbarVisible, splitMode: editor.splitMode, splitModeEnabled: editor.splitModeEnabled, hiddenActionsConfig: markupHiddenActionsConfig, qa: "g-md-editor-mode", className: b('editor', { mode: editorMode }), toolbarClassName: b('toolbar'), stickyToolbar: stickyToolbar, children: editor.toolbarVisible && settings })), !editor.toolbarVisible && settings] })) }), markupSplitMode && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [editor.splitMode === 'horizontal' ? ((0, jsx_runtime_1.jsx)(HorizontalDrag_1.HorizontalDrag, { editor: editor, isMounted: isMounted, leftElRef: editorWrapperRef, rightElRef: splitModeViewWrapperRef, wrapperRef: divRef })) : ((0, jsx_runtime_1.jsx)("div", { className: b('resizer') })), (0, jsx_runtime_1.jsx)(SplitModeView_1.SplitModeView, { editor: editor, ref: splitModeViewWrapperRef })] }))] }) }));
144
144
  });
145
145
  exports.MarkdownEditorView.displayName = 'MarkdownEditorView';
146
146
  const MarkupSearchAnchor = ({ mode }) => ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: mode === 'markup' && (0, jsx_runtime_1.jsx)("div", { className: "g-md-search-anchor" }) }));
@@ -1 +1 @@
1
- {"version":3,"file":"MarkdownEditorView.js","sourceRoot":"../../../src","sources":["bundle/MarkdownEditorView.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n forwardRef,\n useCallback,\n useEffect,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\n\nimport {useToaster} from '@gravity-ui/uikit';\nimport {ErrorBoundary} from 'react-error-boundary';\nimport {useEnsuredForwardedRef, useKey, useUpdate} from 'react-use';\n\nimport {type ClassNameProps, cn} from '../classname';\nimport {i18n} from '../i18n/bundle';\nimport {globalLogger} from '../logger';\nimport type {ToolbarsPreset} from '../modules/toolbars/types';\nimport {useBooleanState, useSticky} from '../react-utils';\nimport {isMac} from '../utils';\n\nimport type {Editor, EditorInt} from './Editor';\nimport {HorizontalDrag} from './HorizontalDrag';\nimport {MarkupEditorView} from './MarkupEditorView';\nimport {SplitModeView} from './SplitModeView';\nimport {WysiwygEditorView} from './WysiwygEditorView';\nimport {useMarkdownEditorContext} from './context';\nimport {EditorSettings, type EditorSettingsProps} from './settings';\nimport {stickyCn} from './sticky';\nimport type {MToolbarData, MToolbarItemData, WToolbarData, WToolbarItemData} from './toolbar/types';\nimport {getToolbarsConfigs} from './toolbar/utils/toolbarsConfigs';\nimport type {MarkdownEditorMode} from './types';\n\nimport '../styles/styles.scss';\nimport './MarkdownEditorView.scss'; // eslint-disable-line import/order\n\nexport const cnEditorComponent = cn('editor-component');\nconst b = cnEditorComponent;\n\nexport type MarkdownEditorViewProps = ClassNameProps & {\n editor?: Editor;\n autofocus?: boolean;\n toolbarsPreset?: ToolbarsPreset;\n /**\n * @deprecated use `toolbarsPreset` instead\n */\n markupToolbarConfig?: MToolbarData;\n /**\n * @deprecated use `toolbarsPreset` instead\n */\n wysiwygToolbarConfig?: WToolbarData;\n /**\n * @deprecated use `toolbarsPreset` instead\n */\n markupHiddenActionsConfig?: MToolbarItemData[];\n /**\n * @deprecated use `toolbarsPreset` instead\n */\n wysiwygHiddenActionsConfig?: WToolbarItemData[];\n /** @default true */\n settingsVisible?: boolean;\n stickyToolbar: boolean;\n enableSubmitInPreview?: boolean;\n hidePreviewAfterSubmit?: boolean;\n};\n\nexport const MarkdownEditorView = forwardRef<HTMLDivElement, MarkdownEditorViewProps>(\n (props, ref) => {\n const divRef = useEnsuredForwardedRef(ref as React.MutableRefObject<HTMLDivElement>);\n\n const [isMounted, setIsMounted] = useState(false);\n useEffect(() => {\n setIsMounted(true);\n }, []);\n\n const [showPreview, , unsetShowPreview, toggleShowPreview] = useBooleanState(false);\n\n const context = useMarkdownEditorContext();\n const editor = (props.editor ?? context) as EditorInt;\n if (!editor)\n throw new Error(\n '[MarkdownEditorView]: an instance of the editor must be passed through the props or context',\n );\n\n const {\n autofocus,\n className,\n settingsVisible = true,\n toolbarsPreset,\n stickyToolbar,\n wysiwygToolbarConfig: initialWysiwygToolbarConfig,\n markupToolbarConfig: initialMarkupToolbarConfig,\n wysiwygHiddenActionsConfig: initialWysiwygHiddenActionsConfig,\n markupHiddenActionsConfig: initialMarkupHiddenActionsConfig,\n enableSubmitInPreview = true,\n hidePreviewAfterSubmit = false,\n } = props;\n\n const {\n wysiwygToolbarConfig,\n markupToolbarConfig,\n wysiwygHiddenActionsConfig,\n markupHiddenActionsConfig,\n } = useMemo(\n () =>\n getToolbarsConfigs({\n toolbarsPreset,\n props: {\n wysiwygToolbarConfig: initialWysiwygToolbarConfig,\n markupToolbarConfig: initialMarkupToolbarConfig,\n wysiwygHiddenActionsConfig: initialWysiwygHiddenActionsConfig,\n markupHiddenActionsConfig: initialMarkupHiddenActionsConfig,\n },\n preset: editor.preset,\n }),\n [\n toolbarsPreset,\n initialWysiwygToolbarConfig,\n initialMarkupToolbarConfig,\n initialWysiwygHiddenActionsConfig,\n initialMarkupHiddenActionsConfig,\n editor.preset,\n ],\n );\n\n const rerender = useUpdate();\n useLayoutEffect(() => {\n editor.on('rerender', rerender);\n return () => {\n editor.off('rerender', rerender);\n };\n }, [editor, rerender]);\n\n const onModeChange = useCallback(\n (type: MarkdownEditorMode) => {\n editor.changeEditorMode({mode: type, reason: 'settings'});\n unsetShowPreview();\n },\n [editor, unsetShowPreview],\n );\n const onToolbarVisibilityChange = useCallback(\n (visible: boolean) => {\n editor.changeToolbarVisibility({visible});\n },\n [editor],\n );\n const onSplitModeChange = useCallback(\n (splitModeEnabled: boolean) => {\n unsetShowPreview();\n editor.changeSplitModeEnabled({splitModeEnabled});\n },\n [editor, unsetShowPreview],\n );\n\n const onShowPreviewChange = useCallback(\n (showPreviewValue: boolean) => {\n editor.changeSplitModeEnabled({splitModeEnabled: false});\n if (showPreviewValue !== showPreview) toggleShowPreview();\n },\n [editor, showPreview, toggleShowPreview],\n );\n\n const editorMode = editor.currentMode;\n const markupSplitMode =\n editor.splitModeEnabled && editor.splitMode && editorMode === 'markup';\n const canRenderPreview = Boolean(\n editor.renderPreview && editorMode === 'markup' && !editor.splitModeEnabled,\n );\n\n useKey(\n (e) => canRenderPreview && isPreviewKeyDown(e),\n (e) => {\n e.preventDefault();\n onShowPreviewChange(!showPreview);\n },\n {event: 'keydown'},\n [showPreview, editorMode, onShowPreviewChange, canRenderPreview],\n );\n\n const editorWrapperRef = useRef(null);\n const splitModeViewWrapperRef = useRef(null);\n\n useEffect(() => {\n if (showPreview) {\n divRef.current.focus();\n }\n }, [divRef, showPreview]);\n\n useKey(\n (e) =>\n enableSubmitInPreview &&\n showPreview &&\n isWrapperFocused(divRef) &&\n isSubmitKeyDown(e),\n () => {\n editor.emit('submit', null);\n\n if (hidePreviewAfterSubmit) {\n onShowPreviewChange(false);\n }\n },\n {event: 'keydown'},\n [hidePreviewAfterSubmit, enableSubmitInPreview, showPreview, showPreview],\n );\n\n const settings = useMemo(\n () => (\n <Settings\n mode={editorMode}\n settingsVisible={settingsVisible}\n onModeChange={onModeChange}\n toolbarVisibility={editor.toolbarVisible && !showPreview}\n onToolbarVisibilityChange={onToolbarVisibilityChange}\n onSplitModeChange={onSplitModeChange}\n splitModeEnabled={editor.splitModeEnabled}\n splitMode={editor.splitMode}\n stickyToolbar={stickyToolbar}\n onShowPreviewChange={onShowPreviewChange}\n showPreview={showPreview}\n renderPreviewButton={canRenderPreview}\n />\n ),\n [\n editorMode,\n settingsVisible,\n editor.toolbarVisible,\n editor.splitModeEnabled,\n editor.splitMode,\n onModeChange,\n showPreview,\n onToolbarVisibilityChange,\n onSplitModeChange,\n stickyToolbar,\n onShowPreviewChange,\n canRenderPreview,\n ],\n );\n\n const toaster = useToaster();\n\n return (\n <ErrorBoundary\n onError={(e) => {\n globalLogger.error(e);\n editor.logger.error(e);\n }}\n fallbackRender={({error, resetErrorBoundary}) => {\n toaster.add({\n theme: 'danger',\n name: 'g-md-editor-error',\n title: i18n('error-title'),\n content: error.message,\n });\n setTimeout(() => {\n resetErrorBoundary();\n editor.changeEditorMode({\n mode: 'markup',\n reason: 'error-boundary',\n emit: false,\n });\n });\n return null;\n }}\n >\n <div\n ref={divRef}\n className={b(\n {\n settings: settingsVisible,\n split: markupSplitMode && editor.splitMode,\n },\n [className],\n )}\n role=\"button\"\n tabIndex={0}\n >\n <div className={b('editor-wrapper')} ref={editorWrapperRef}>\n {showPreview ? (\n <>\n <div className={b('preview-wrapper')}>\n {editor.renderPreview?.({\n getValue: editor.getValue,\n mode: 'preview',\n md: editor.mdOptions,\n directiveSyntax: editor.directiveSyntax,\n })}\n </div>\n {settings}\n </>\n ) : (\n <>\n {editorMode === 'wysiwyg' && (\n <WysiwygEditorView\n editor={editor}\n autofocus={autofocus}\n settingsVisible={settingsVisible}\n toolbarConfig={wysiwygToolbarConfig}\n toolbarVisible={editor.toolbarVisible}\n hiddenActionsConfig={wysiwygHiddenActionsConfig}\n className={b('editor', {mode: editorMode})}\n toolbarClassName={b('toolbar')}\n stickyToolbar={stickyToolbar}\n >\n {editor.toolbarVisible && settingsVisible && settings}\n </WysiwygEditorView>\n )}\n {editorMode === 'markup' && (\n <MarkupEditorView\n editor={editor}\n autofocus={autofocus}\n settingsVisible={settingsVisible}\n toolbarConfig={markupToolbarConfig}\n toolbarVisible={editor.toolbarVisible}\n splitMode={editor.splitMode}\n splitModeEnabled={editor.splitModeEnabled}\n hiddenActionsConfig={markupHiddenActionsConfig}\n className={b('editor', {mode: editorMode})}\n toolbarClassName={b('toolbar')}\n stickyToolbar={stickyToolbar}\n >\n {editor.toolbarVisible && settings}\n </MarkupEditorView>\n )}\n {!editor.toolbarVisible && settings}\n </>\n )}\n </div>\n\n {markupSplitMode && (\n <>\n {editor.splitMode === 'horizontal' ? (\n <HorizontalDrag\n editor={editor}\n isMounted={isMounted}\n leftElRef={editorWrapperRef}\n rightElRef={splitModeViewWrapperRef}\n wrapperRef={divRef}\n />\n ) : (\n <div className={b('resizer')} />\n )}\n <SplitModeView editor={editor} ref={splitModeViewWrapperRef} />\n </>\n )}\n </div>\n </ErrorBoundary>\n );\n },\n);\nMarkdownEditorView.displayName = 'MarkdownEditorView';\n\ninterface MarkupSearchAnchorProps extends Pick<EditorSettingsProps, 'mode'> {}\n\nconst MarkupSearchAnchor: React.FC<MarkupSearchAnchorProps> = ({mode}) => (\n <>{mode === 'markup' && <div className=\"g-md-search-anchor\"></div>}</>\n);\n\nfunction Settings(props: EditorSettingsProps & {stickyToolbar: boolean}) {\n const wrapperRef = useRef<HTMLDivElement>(null);\n const isSticky = useSticky(wrapperRef) && props.toolbarVisibility && props.stickyToolbar;\n\n return (\n <>\n {(props.renderPreviewButton || props.settingsVisible) && (\n <div className={b('settings-wrapper')}>\n <div\n ref={wrapperRef}\n className={stickyCn.settings({\n withToolbar: props.toolbarVisibility,\n stickyActive: isSticky,\n })}\n >\n <EditorSettings {...props} />\n <MarkupSearchAnchor {...props} />\n </div>\n </div>\n )}\n </>\n );\n}\n\nfunction isPreviewKeyDown(e: KeyboardEvent) {\n const modKey = isMac() ? e.metaKey : e.ctrlKey;\n return modKey && e.shiftKey && e.code === 'KeyP';\n}\n\nfunction isWrapperFocused(divRef: React.RefObject<HTMLDivElement>) {\n return document.activeElement === divRef.current;\n}\n\nfunction isSubmitKeyDown(e: KeyboardEvent) {\n const modKey = isMac() ? e.metaKey : e.ctrlKey;\n return modKey && e.code === 'Enter';\n}\n"]}
1
+ {"version":3,"file":"MarkdownEditorView.js","sourceRoot":"../../../src","sources":["bundle/MarkdownEditorView.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n forwardRef,\n useCallback,\n useEffect,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\n\nimport {type QAProps, useToaster} from '@gravity-ui/uikit';\nimport {ErrorBoundary} from 'react-error-boundary';\nimport {useEnsuredForwardedRef, useKey, useUpdate} from 'react-use';\n\nimport {type ClassNameProps, cn} from '../classname';\nimport {i18n} from '../i18n/bundle';\nimport {globalLogger} from '../logger';\nimport type {ToolbarsPreset} from '../modules/toolbars/types';\nimport {useBooleanState, useSticky} from '../react-utils';\nimport {isMac} from '../utils';\n\nimport type {Editor, EditorInt} from './Editor';\nimport {HorizontalDrag} from './HorizontalDrag';\nimport {MarkupEditorView} from './MarkupEditorView';\nimport {SplitModeView} from './SplitModeView';\nimport {WysiwygEditorView} from './WysiwygEditorView';\nimport {useMarkdownEditorContext} from './context';\nimport {EditorSettings, type EditorSettingsProps} from './settings';\nimport {stickyCn} from './sticky';\nimport type {MToolbarData, MToolbarItemData, WToolbarData, WToolbarItemData} from './toolbar/types';\nimport {getToolbarsConfigs} from './toolbar/utils/toolbarsConfigs';\nimport type {MarkdownEditorMode} from './types';\n\nimport '../styles/styles.scss';\nimport './MarkdownEditorView.scss'; // eslint-disable-line import/order\n\nexport const cnEditorComponent = cn('editor-component');\nconst b = cnEditorComponent;\n\nexport type MarkdownEditorViewProps = ClassNameProps &\n QAProps & {\n editor?: Editor;\n autofocus?: boolean;\n toolbarsPreset?: ToolbarsPreset;\n /**\n * @deprecated use `toolbarsPreset` instead\n */\n markupToolbarConfig?: MToolbarData;\n /**\n * @deprecated use `toolbarsPreset` instead\n */\n wysiwygToolbarConfig?: WToolbarData;\n /**\n * @deprecated use `toolbarsPreset` instead\n */\n markupHiddenActionsConfig?: MToolbarItemData[];\n /**\n * @deprecated use `toolbarsPreset` instead\n */\n wysiwygHiddenActionsConfig?: WToolbarItemData[];\n /** @default true */\n settingsVisible?: boolean;\n stickyToolbar: boolean;\n enableSubmitInPreview?: boolean;\n hidePreviewAfterSubmit?: boolean;\n };\n\nexport const MarkdownEditorView = forwardRef<HTMLDivElement, MarkdownEditorViewProps>(\n (props, ref) => {\n const divRef = useEnsuredForwardedRef(ref as React.MutableRefObject<HTMLDivElement>);\n\n const [isMounted, setIsMounted] = useState(false);\n useEffect(() => {\n setIsMounted(true);\n }, []);\n\n const [showPreview, , unsetShowPreview, toggleShowPreview] = useBooleanState(false);\n\n const context = useMarkdownEditorContext();\n const editor = (props.editor ?? context) as EditorInt;\n if (!editor)\n throw new Error(\n '[MarkdownEditorView]: an instance of the editor must be passed through the props or context',\n );\n\n const {\n qa,\n autofocus,\n className,\n settingsVisible = true,\n toolbarsPreset,\n stickyToolbar,\n wysiwygToolbarConfig: initialWysiwygToolbarConfig,\n markupToolbarConfig: initialMarkupToolbarConfig,\n wysiwygHiddenActionsConfig: initialWysiwygHiddenActionsConfig,\n markupHiddenActionsConfig: initialMarkupHiddenActionsConfig,\n enableSubmitInPreview = true,\n hidePreviewAfterSubmit = false,\n } = props;\n\n const {\n wysiwygToolbarConfig,\n markupToolbarConfig,\n wysiwygHiddenActionsConfig,\n markupHiddenActionsConfig,\n } = useMemo(\n () =>\n getToolbarsConfigs({\n toolbarsPreset,\n props: {\n wysiwygToolbarConfig: initialWysiwygToolbarConfig,\n markupToolbarConfig: initialMarkupToolbarConfig,\n wysiwygHiddenActionsConfig: initialWysiwygHiddenActionsConfig,\n markupHiddenActionsConfig: initialMarkupHiddenActionsConfig,\n },\n preset: editor.preset,\n }),\n [\n toolbarsPreset,\n initialWysiwygToolbarConfig,\n initialMarkupToolbarConfig,\n initialWysiwygHiddenActionsConfig,\n initialMarkupHiddenActionsConfig,\n editor.preset,\n ],\n );\n\n const rerender = useUpdate();\n useLayoutEffect(() => {\n editor.on('rerender', rerender);\n return () => {\n editor.off('rerender', rerender);\n };\n }, [editor, rerender]);\n\n const onModeChange = useCallback(\n (type: MarkdownEditorMode) => {\n editor.changeEditorMode({mode: type, reason: 'settings'});\n unsetShowPreview();\n },\n [editor, unsetShowPreview],\n );\n const onToolbarVisibilityChange = useCallback(\n (visible: boolean) => {\n editor.changeToolbarVisibility({visible});\n },\n [editor],\n );\n const onSplitModeChange = useCallback(\n (splitModeEnabled: boolean) => {\n unsetShowPreview();\n editor.changeSplitModeEnabled({splitModeEnabled});\n },\n [editor, unsetShowPreview],\n );\n\n const onShowPreviewChange = useCallback(\n (showPreviewValue: boolean) => {\n editor.changeSplitModeEnabled({splitModeEnabled: false});\n if (showPreviewValue !== showPreview) toggleShowPreview();\n },\n [editor, showPreview, toggleShowPreview],\n );\n\n const editorMode = editor.currentMode;\n const markupSplitMode =\n editor.splitModeEnabled && editor.splitMode && editorMode === 'markup';\n const canRenderPreview = Boolean(\n editor.renderPreview && editorMode === 'markup' && !editor.splitModeEnabled,\n );\n\n useKey(\n (e) => canRenderPreview && isPreviewKeyDown(e),\n (e) => {\n e.preventDefault();\n onShowPreviewChange(!showPreview);\n },\n {event: 'keydown'},\n [showPreview, editorMode, onShowPreviewChange, canRenderPreview],\n );\n\n const editorWrapperRef = useRef(null);\n const splitModeViewWrapperRef = useRef(null);\n\n useEffect(() => {\n if (showPreview) {\n divRef.current.focus();\n }\n }, [divRef, showPreview]);\n\n useKey(\n (e) =>\n enableSubmitInPreview &&\n showPreview &&\n isWrapperFocused(divRef) &&\n isSubmitKeyDown(e),\n () => {\n editor.emit('submit', null);\n\n if (hidePreviewAfterSubmit) {\n onShowPreviewChange(false);\n }\n },\n {event: 'keydown'},\n [hidePreviewAfterSubmit, enableSubmitInPreview, showPreview, showPreview],\n );\n\n const settings = useMemo(\n () => (\n <Settings\n mode={editorMode}\n settingsVisible={settingsVisible}\n onModeChange={onModeChange}\n toolbarVisibility={editor.toolbarVisible && !showPreview}\n onToolbarVisibilityChange={onToolbarVisibilityChange}\n onSplitModeChange={onSplitModeChange}\n splitModeEnabled={editor.splitModeEnabled}\n splitMode={editor.splitMode}\n stickyToolbar={stickyToolbar}\n onShowPreviewChange={onShowPreviewChange}\n showPreview={showPreview}\n renderPreviewButton={canRenderPreview}\n />\n ),\n [\n editorMode,\n settingsVisible,\n editor.toolbarVisible,\n editor.splitModeEnabled,\n editor.splitMode,\n onModeChange,\n showPreview,\n onToolbarVisibilityChange,\n onSplitModeChange,\n stickyToolbar,\n onShowPreviewChange,\n canRenderPreview,\n ],\n );\n\n const toaster = useToaster();\n\n return (\n <ErrorBoundary\n onError={(e) => {\n globalLogger.error(e);\n editor.logger.error(e);\n }}\n fallbackRender={({error, resetErrorBoundary}) => {\n toaster.add({\n theme: 'danger',\n name: 'g-md-editor-error',\n title: i18n('error-title'),\n content: error.message,\n });\n setTimeout(() => {\n resetErrorBoundary();\n editor.changeEditorMode({\n mode: 'markup',\n reason: 'error-boundary',\n emit: false,\n });\n });\n return null;\n }}\n >\n <div\n ref={divRef}\n data-qa={qa}\n className={b(\n {\n settings: settingsVisible,\n split: markupSplitMode && editor.splitMode,\n },\n [className],\n )}\n role=\"button\"\n tabIndex={0}\n >\n <div className={b('editor-wrapper')} ref={editorWrapperRef}>\n {showPreview ? (\n <>\n <div className={b('preview-wrapper')}>\n {editor.renderPreview?.({\n getValue: editor.getValue,\n mode: 'preview',\n md: editor.mdOptions,\n directiveSyntax: editor.directiveSyntax,\n })}\n </div>\n {settings}\n </>\n ) : (\n <>\n {editorMode === 'wysiwyg' && (\n <WysiwygEditorView\n editor={editor}\n autofocus={autofocus}\n settingsVisible={settingsVisible}\n toolbarConfig={wysiwygToolbarConfig}\n toolbarVisible={editor.toolbarVisible}\n hiddenActionsConfig={wysiwygHiddenActionsConfig}\n qa=\"g-md-editor-mode\"\n className={b('editor', {mode: editorMode})}\n toolbarClassName={b('toolbar')}\n stickyToolbar={stickyToolbar}\n >\n {editor.toolbarVisible && settingsVisible && settings}\n </WysiwygEditorView>\n )}\n {editorMode === 'markup' && (\n <MarkupEditorView\n editor={editor}\n autofocus={autofocus}\n settingsVisible={settingsVisible}\n toolbarConfig={markupToolbarConfig}\n toolbarVisible={editor.toolbarVisible}\n splitMode={editor.splitMode}\n splitModeEnabled={editor.splitModeEnabled}\n hiddenActionsConfig={markupHiddenActionsConfig}\n qa=\"g-md-editor-mode\"\n className={b('editor', {mode: editorMode})}\n toolbarClassName={b('toolbar')}\n stickyToolbar={stickyToolbar}\n >\n {editor.toolbarVisible && settings}\n </MarkupEditorView>\n )}\n {!editor.toolbarVisible && settings}\n </>\n )}\n </div>\n\n {markupSplitMode && (\n <>\n {editor.splitMode === 'horizontal' ? (\n <HorizontalDrag\n editor={editor}\n isMounted={isMounted}\n leftElRef={editorWrapperRef}\n rightElRef={splitModeViewWrapperRef}\n wrapperRef={divRef}\n />\n ) : (\n <div className={b('resizer')} />\n )}\n <SplitModeView editor={editor} ref={splitModeViewWrapperRef} />\n </>\n )}\n </div>\n </ErrorBoundary>\n );\n },\n);\nMarkdownEditorView.displayName = 'MarkdownEditorView';\n\ninterface MarkupSearchAnchorProps extends Pick<EditorSettingsProps, 'mode'> {}\n\nconst MarkupSearchAnchor: React.FC<MarkupSearchAnchorProps> = ({mode}) => (\n <>{mode === 'markup' && <div className=\"g-md-search-anchor\"></div>}</>\n);\n\nfunction Settings(props: EditorSettingsProps & {stickyToolbar: boolean}) {\n const wrapperRef = useRef<HTMLDivElement>(null);\n const isSticky = useSticky(wrapperRef) && props.toolbarVisibility && props.stickyToolbar;\n\n return (\n <>\n {(props.renderPreviewButton || props.settingsVisible) && (\n <div className={b('settings-wrapper')}>\n <div\n ref={wrapperRef}\n className={stickyCn.settings({\n withToolbar: props.toolbarVisibility,\n stickyActive: isSticky,\n })}\n >\n <EditorSettings {...props} />\n <MarkupSearchAnchor {...props} />\n </div>\n </div>\n )}\n </>\n );\n}\n\nfunction isPreviewKeyDown(e: KeyboardEvent) {\n const modKey = isMac() ? e.metaKey : e.ctrlKey;\n return modKey && e.shiftKey && e.code === 'KeyP';\n}\n\nfunction isWrapperFocused(divRef: React.RefObject<HTMLDivElement>) {\n return document.activeElement === divRef.current;\n}\n\nfunction isSubmitKeyDown(e: KeyboardEvent) {\n const modKey = isMac() ? e.metaKey : e.ctrlKey;\n return modKey && e.code === 'Enter';\n}\n"]}
@@ -1,9 +1,10 @@
1
+ import type { QAProps } from '@gravity-ui/uikit';
1
2
  import { type ClassNameProps } from "../classname.js";
2
3
  import type { EditorInt } from "./Editor.js";
3
4
  import type { MToolbarData, MToolbarItemData } from "./toolbar/types.js";
4
5
  import type { MarkdownEditorSplitMode } from "./types.js";
5
6
  import "./MarkupEditorView.css";
6
- export type MarkupEditorViewProps = ClassNameProps & {
7
+ export type MarkupEditorViewProps = ClassNameProps & QAProps & {
7
8
  editor: EditorInt;
8
9
  autofocus?: boolean;
9
10
  toolbarConfig: MToolbarData;
@@ -13,7 +13,7 @@ const context_1 = require("./toolbar/markup/context.js");
13
13
  require("./MarkupEditorView.css");
14
14
  const b = (0, classname_1.cn)('markup-editor');
15
15
  exports.MarkupEditorView = (0, react_1.memo)((props) => {
16
- const { editor, autofocus, settingsVisible, toolbarVisible, toolbarConfig, hiddenActionsConfig, className, toolbarClassName, children, stickyToolbar = true, } = props;
16
+ const { editor, autofocus, settingsVisible, toolbarVisible, toolbarConfig, hiddenActionsConfig, qa, className, toolbarClassName, children, stickyToolbar = true, } = props;
17
17
  (0, hooks_1.useRenderTime)((time) => {
18
18
  logger_1.globalLogger.metrics({
19
19
  component: 'markup-editor',
@@ -26,7 +26,7 @@ exports.MarkupEditorView = (0, react_1.memo)((props) => {
26
26
  duration: time,
27
27
  });
28
28
  });
29
- return ((0, jsx_runtime_1.jsxs)("div", { className: b({ toolbar: toolbarVisible }, [className]), children: [toolbarVisible ? ((0, jsx_runtime_1.jsx)(context_1.MarkupToolbarContextProvider, { value: {
29
+ return ((0, jsx_runtime_1.jsxs)("div", { className: b({ toolbar: toolbarVisible }, [className]), "data-mode": editor.currentMode, "data-qa": qa, children: [toolbarVisible ? ((0, jsx_runtime_1.jsx)(context_1.MarkupToolbarContextProvider, { value: {
30
30
  uploadHandler: editor.fileUploadHandler,
31
31
  needToSetDimensionsForUploadedImages: editor.needToSetDimensionsForUploadedImages,
32
32
  }, children: (0, jsx_runtime_1.jsx)(ToolbarView_1.ToolbarView, { editor: editor, editorMode: "markup", toolbarEditor: editor, hiddenActionsConfig: hiddenActionsConfig, stickyToolbar: stickyToolbar, toolbarConfig: toolbarConfig, toolbarFocus: () => editor.focus(), settingsVisible: settingsVisible, className: b('toolbar', [toolbarClassName]), children: children }) })) : null, (0, jsx_runtime_1.jsx)(MarkupEditorComponent_1.MarkupEditorComponent, { autofocus: autofocus, editor: editor, className: b('editor', { 'toolbar-visible': toolbarVisible }), children: (0, jsx_runtime_1.jsx)(extensions_1.ReactRendererComponent, { storage: editor.renderStorage }) })] }));
@@ -1 +1 @@
1
- {"version":3,"file":"MarkupEditorView.js","sourceRoot":"../../../src","sources":["bundle/MarkupEditorView.tsx"],"names":[],"mappings":";;;;AAAA,iCAA2B;AAE3B,+CAAqD;AACrD,uDAAqD;AACrD,yCAAuC;AACvC,mDAAmD;AAGnD,sEAA8D;AAC9D,kDAA0C;AAC1C,yDAAsE;AAItE,kCAAiC;AAEjC,MAAM,CAAC,GAAG,IAAA,cAAE,EAAC,eAAe,CAAC,CAAC;AAgBjB,QAAA,gBAAgB,GAAG,IAAA,YAAI,EAAwB,CAAC,KAAK,EAAE,EAAE;IAClE,MAAM,EACF,MAAM,EACN,SAAS,EACT,eAAe,EACf,cAAc,EACd,aAAa,EACb,mBAAmB,EACnB,SAAS,EACT,gBAAgB,EAChB,QAAQ,EACR,aAAa,GAAG,IAAI,GACvB,GAAG,KAAK,CAAC;IACV,IAAA,qBAAa,EAAC,CAAC,IAAI,EAAE,EAAE;QACnB,qBAAY,CAAC,OAAO,CAAC;YACjB,SAAS,EAAE,eAAe;YAC1B,KAAK,EAAE,QAAQ;YACf,QAAQ,EAAE,IAAI;SACjB,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;YAClB,SAAS,EAAE,eAAe;YAC1B,KAAK,EAAE,QAAQ;YACf,QAAQ,EAAE,IAAI;SACjB,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,OAAO,CACH,iCAAK,SAAS,EAAE,CAAC,CAAC,EAAC,OAAO,EAAE,cAAc,EAAC,EAAE,CAAC,SAAS,CAAC,CAAC,aACpD,cAAc,CAAC,CAAC,CAAC,CACd,uBAAC,sCAA4B,IACzB,KAAK,EAAE;oBACH,aAAa,EAAE,MAAM,CAAC,iBAAiB;oBACvC,oCAAoC,EAChC,MAAM,CAAC,oCAAoC;iBAClD,YAED,uBAAC,yBAAW,IACR,MAAM,EAAE,MAAM,EACd,UAAU,EAAC,QAAQ,EACnB,aAAa,EAAE,MAAM,EACrB,mBAAmB,EAAE,mBAAmB,EACxC,aAAa,EAAE,aAAa,EAC5B,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,EAClC,eAAe,EAAE,eAAe,EAChC,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,gBAAgB,CAAC,CAAC,YAE1C,QAAQ,GACC,GACa,CAClC,CAAC,CAAC,CAAC,IAAI,EACR,uBAAC,6CAAqB,IAClB,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAC,iBAAiB,EAAE,cAAc,EAAC,CAAC,YAE3D,uBAAC,mCAAsB,IAAC,OAAO,EAAE,MAAM,CAAC,aAAa,GAAI,GACrC,IACtB,CACT,CAAC;AACN,CAAC,CAAC,CAAC;AACH,wBAAgB,CAAC,WAAW,GAAG,0BAA0B,CAAC","sourcesContent":["import {memo} from 'react';\n\nimport {type ClassNameProps, cn} from '../classname';\nimport {ReactRendererComponent} from '../extensions';\nimport {globalLogger} from '../logger';\nimport {useRenderTime} from '../react-utils/hooks';\n\nimport type {EditorInt} from './Editor';\nimport {MarkupEditorComponent} from './MarkupEditorComponent';\nimport {ToolbarView} from './ToolbarView';\nimport {MarkupToolbarContextProvider} from './toolbar/markup/context';\nimport type {MToolbarData, MToolbarItemData} from './toolbar/types';\nimport type {MarkdownEditorSplitMode} from './types';\n\nimport './MarkupEditorView.scss';\n\nconst b = cn('markup-editor');\n\nexport type MarkupEditorViewProps = ClassNameProps & {\n editor: EditorInt;\n autofocus?: boolean;\n toolbarConfig: MToolbarData;\n settingsVisible?: boolean;\n toolbarVisible?: boolean;\n stickyToolbar?: boolean;\n toolbarClassName?: string;\n splitMode?: MarkdownEditorSplitMode;\n splitModeEnabled: boolean;\n hiddenActionsConfig?: MToolbarItemData[];\n children?: React.ReactNode;\n};\n\nexport const MarkupEditorView = memo<MarkupEditorViewProps>((props) => {\n const {\n editor,\n autofocus,\n settingsVisible,\n toolbarVisible,\n toolbarConfig,\n hiddenActionsConfig,\n className,\n toolbarClassName,\n children,\n stickyToolbar = true,\n } = props;\n useRenderTime((time) => {\n globalLogger.metrics({\n component: 'markup-editor',\n event: 'render',\n duration: time,\n });\n editor.logger.metrics({\n component: 'markup-editor',\n event: 'render',\n duration: time,\n });\n });\n\n return (\n <div className={b({toolbar: toolbarVisible}, [className])}>\n {toolbarVisible ? (\n <MarkupToolbarContextProvider\n value={{\n uploadHandler: editor.fileUploadHandler,\n needToSetDimensionsForUploadedImages:\n editor.needToSetDimensionsForUploadedImages,\n }}\n >\n <ToolbarView\n editor={editor}\n editorMode=\"markup\"\n toolbarEditor={editor}\n hiddenActionsConfig={hiddenActionsConfig}\n stickyToolbar={stickyToolbar}\n toolbarConfig={toolbarConfig}\n toolbarFocus={() => editor.focus()}\n settingsVisible={settingsVisible}\n className={b('toolbar', [toolbarClassName])}\n >\n {children}\n </ToolbarView>\n </MarkupToolbarContextProvider>\n ) : null}\n <MarkupEditorComponent\n autofocus={autofocus}\n editor={editor}\n className={b('editor', {'toolbar-visible': toolbarVisible})}\n >\n <ReactRendererComponent storage={editor.renderStorage} />\n </MarkupEditorComponent>\n </div>\n );\n});\nMarkupEditorView.displayName = 'MarkdownMarkupEditorView';\n"]}
1
+ {"version":3,"file":"MarkupEditorView.js","sourceRoot":"../../../src","sources":["bundle/MarkupEditorView.tsx"],"names":[],"mappings":";;;;AAAA,iCAA2B;AAI3B,+CAAqD;AACrD,uDAAqD;AACrD,yCAAuC;AACvC,mDAAmD;AAGnD,sEAA8D;AAC9D,kDAA0C;AAC1C,yDAAsE;AAItE,kCAAiC;AAEjC,MAAM,CAAC,GAAG,IAAA,cAAE,EAAC,eAAe,CAAC,CAAC;AAiBjB,QAAA,gBAAgB,GAAG,IAAA,YAAI,EAAwB,CAAC,KAAK,EAAE,EAAE;IAClE,MAAM,EACF,MAAM,EACN,SAAS,EACT,eAAe,EACf,cAAc,EACd,aAAa,EACb,mBAAmB,EACnB,EAAE,EACF,SAAS,EACT,gBAAgB,EAChB,QAAQ,EACR,aAAa,GAAG,IAAI,GACvB,GAAG,KAAK,CAAC;IACV,IAAA,qBAAa,EAAC,CAAC,IAAI,EAAE,EAAE;QACnB,qBAAY,CAAC,OAAO,CAAC;YACjB,SAAS,EAAE,eAAe;YAC1B,KAAK,EAAE,QAAQ;YACf,QAAQ,EAAE,IAAI;SACjB,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;YAClB,SAAS,EAAE,eAAe;YAC1B,KAAK,EAAE,QAAQ;YACf,QAAQ,EAAE,IAAI;SACjB,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,OAAO,CACH,iCACI,SAAS,EAAE,CAAC,CAAC,EAAC,OAAO,EAAE,cAAc,EAAC,EAAE,CAAC,SAAS,CAAC,CAAC,eACzC,MAAM,CAAC,WAAW,aACpB,EAAE,aAEV,cAAc,CAAC,CAAC,CAAC,CACd,uBAAC,sCAA4B,IACzB,KAAK,EAAE;oBACH,aAAa,EAAE,MAAM,CAAC,iBAAiB;oBACvC,oCAAoC,EAChC,MAAM,CAAC,oCAAoC;iBAClD,YAED,uBAAC,yBAAW,IACR,MAAM,EAAE,MAAM,EACd,UAAU,EAAC,QAAQ,EACnB,aAAa,EAAE,MAAM,EACrB,mBAAmB,EAAE,mBAAmB,EACxC,aAAa,EAAE,aAAa,EAC5B,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,EAClC,eAAe,EAAE,eAAe,EAChC,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,gBAAgB,CAAC,CAAC,YAE1C,QAAQ,GACC,GACa,CAClC,CAAC,CAAC,CAAC,IAAI,EACR,uBAAC,6CAAqB,IAClB,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAC,iBAAiB,EAAE,cAAc,EAAC,CAAC,YAE3D,uBAAC,mCAAsB,IAAC,OAAO,EAAE,MAAM,CAAC,aAAa,GAAI,GACrC,IACtB,CACT,CAAC;AACN,CAAC,CAAC,CAAC;AACH,wBAAgB,CAAC,WAAW,GAAG,0BAA0B,CAAC","sourcesContent":["import {memo} from 'react';\n\nimport type {QAProps} from '@gravity-ui/uikit';\n\nimport {type ClassNameProps, cn} from '../classname';\nimport {ReactRendererComponent} from '../extensions';\nimport {globalLogger} from '../logger';\nimport {useRenderTime} from '../react-utils/hooks';\n\nimport type {EditorInt} from './Editor';\nimport {MarkupEditorComponent} from './MarkupEditorComponent';\nimport {ToolbarView} from './ToolbarView';\nimport {MarkupToolbarContextProvider} from './toolbar/markup/context';\nimport type {MToolbarData, MToolbarItemData} from './toolbar/types';\nimport type {MarkdownEditorSplitMode} from './types';\n\nimport './MarkupEditorView.scss';\n\nconst b = cn('markup-editor');\n\nexport type MarkupEditorViewProps = ClassNameProps &\n QAProps & {\n editor: EditorInt;\n autofocus?: boolean;\n toolbarConfig: MToolbarData;\n settingsVisible?: boolean;\n toolbarVisible?: boolean;\n stickyToolbar?: boolean;\n toolbarClassName?: string;\n splitMode?: MarkdownEditorSplitMode;\n splitModeEnabled: boolean;\n hiddenActionsConfig?: MToolbarItemData[];\n children?: React.ReactNode;\n };\n\nexport const MarkupEditorView = memo<MarkupEditorViewProps>((props) => {\n const {\n editor,\n autofocus,\n settingsVisible,\n toolbarVisible,\n toolbarConfig,\n hiddenActionsConfig,\n qa,\n className,\n toolbarClassName,\n children,\n stickyToolbar = true,\n } = props;\n useRenderTime((time) => {\n globalLogger.metrics({\n component: 'markup-editor',\n event: 'render',\n duration: time,\n });\n editor.logger.metrics({\n component: 'markup-editor',\n event: 'render',\n duration: time,\n });\n });\n\n return (\n <div\n className={b({toolbar: toolbarVisible}, [className])}\n data-mode={editor.currentMode}\n data-qa={qa}\n >\n {toolbarVisible ? (\n <MarkupToolbarContextProvider\n value={{\n uploadHandler: editor.fileUploadHandler,\n needToSetDimensionsForUploadedImages:\n editor.needToSetDimensionsForUploadedImages,\n }}\n >\n <ToolbarView\n editor={editor}\n editorMode=\"markup\"\n toolbarEditor={editor}\n hiddenActionsConfig={hiddenActionsConfig}\n stickyToolbar={stickyToolbar}\n toolbarConfig={toolbarConfig}\n toolbarFocus={() => editor.focus()}\n settingsVisible={settingsVisible}\n className={b('toolbar', [toolbarClassName])}\n >\n {children}\n </ToolbarView>\n </MarkupToolbarContextProvider>\n ) : null}\n <MarkupEditorComponent\n autofocus={autofocus}\n editor={editor}\n className={b('editor', {'toolbar-visible': toolbarVisible})}\n >\n <ReactRendererComponent storage={editor.renderStorage} />\n </MarkupEditorComponent>\n </div>\n );\n});\nMarkupEditorView.displayName = 'MarkdownMarkupEditorView';\n"]}
@@ -1,8 +1,9 @@
1
+ import type { QAProps } from '@gravity-ui/uikit';
1
2
  import { type ClassNameProps } from "../classname.js";
2
3
  import type { EditorInt } from "./Editor.js";
3
4
  import type { WToolbarData, WToolbarItemData } from "./toolbar/types.js";
4
5
  import "./WysiwygEditorView.css";
5
- export type WysiwygEditorViewProps = ClassNameProps & {
6
+ export type WysiwygEditorViewProps = ClassNameProps & QAProps & {
6
7
  editor: EditorInt;
7
8
  autofocus?: boolean;
8
9
  settingsVisible?: boolean;
@@ -12,7 +12,7 @@ const WysiwygEditorComponent_1 = require("./WysiwygEditorComponent.js");
12
12
  require("./WysiwygEditorView.css");
13
13
  const b = (0, classname_1.cn)('wysiwyg-editor');
14
14
  exports.WysiwygEditorView = (0, react_1.memo)((props) => {
15
- const { editor, autofocus, settingsVisible, toolbarVisible, toolbarConfig, hiddenActionsConfig, className, toolbarClassName, children, stickyToolbar = true, } = props;
15
+ const { editor, autofocus, settingsVisible, toolbarVisible, toolbarConfig, hiddenActionsConfig, qa, className, toolbarClassName, children, stickyToolbar = true, } = props;
16
16
  (0, hooks_1.useRenderTime)((time) => {
17
17
  logger_1.globalLogger.metrics({
18
18
  component: 'wysiwyg-editor',
@@ -25,7 +25,7 @@ exports.WysiwygEditorView = (0, react_1.memo)((props) => {
25
25
  duration: time,
26
26
  });
27
27
  });
28
- return ((0, jsx_runtime_1.jsxs)("div", { className: b({ toolbar: toolbarVisible }, [className]), children: [toolbarVisible ? ((0, jsx_runtime_1.jsx)(ToolbarView_1.ToolbarView, { editor: editor, editorMode: "wysiwyg", toolbarEditor: editor, stickyToolbar: stickyToolbar, toolbarConfig: toolbarConfig, toolbarFocus: () => editor.focus(), hiddenActionsConfig: hiddenActionsConfig, settingsVisible: settingsVisible, className: b('toolbar', [toolbarClassName]), children: children })) : null, (0, jsx_runtime_1.jsx)(WysiwygEditorComponent_1.WysiwygEditorComponent, { autofocus: autofocus, editor: editor, className: b('editor'), children: (0, jsx_runtime_1.jsx)(extensions_1.ReactRendererComponent, { storage: editor.renderStorage }) })] }));
28
+ return ((0, jsx_runtime_1.jsxs)("div", { className: b({ toolbar: toolbarVisible }, [className]), "data-mode": editor.currentMode, "data-qa": qa, children: [toolbarVisible ? ((0, jsx_runtime_1.jsx)(ToolbarView_1.ToolbarView, { editor: editor, editorMode: "wysiwyg", toolbarEditor: editor, stickyToolbar: stickyToolbar, toolbarConfig: toolbarConfig, toolbarFocus: () => editor.focus(), hiddenActionsConfig: hiddenActionsConfig, settingsVisible: settingsVisible, className: b('toolbar', [toolbarClassName]), children: children })) : null, (0, jsx_runtime_1.jsx)(WysiwygEditorComponent_1.WysiwygEditorComponent, { autofocus: autofocus, editor: editor, className: b('editor'), children: (0, jsx_runtime_1.jsx)(extensions_1.ReactRendererComponent, { storage: editor.renderStorage }) })] }));
29
29
  });
30
30
  exports.WysiwygEditorView.displayName = 'MarkdownWysiwgEditorView';
31
31
  //# sourceMappingURL=WysiwygEditorView.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"WysiwygEditorView.js","sourceRoot":"../../../src","sources":["bundle/WysiwygEditorView.tsx"],"names":[],"mappings":";;;;AAAA,iCAA2B;AAE3B,+CAAqD;AACrD,uDAAqD;AACrD,yCAAuC;AACvC,mDAAmD;AAGnD,kDAA0C;AAC1C,wEAAgE;AAGhE,mCAAkC;AAElC,MAAM,CAAC,GAAG,IAAA,cAAE,EAAC,gBAAgB,CAAC,CAAC;AAclB,QAAA,iBAAiB,GAAG,IAAA,YAAI,EAAyB,CAAC,KAAK,EAAE,EAAE;IACpE,MAAM,EACF,MAAM,EACN,SAAS,EACT,eAAe,EACf,cAAc,EACd,aAAa,EACb,mBAAmB,EACnB,SAAS,EACT,gBAAgB,EAChB,QAAQ,EACR,aAAa,GAAG,IAAI,GACvB,GAAG,KAAK,CAAC;IACV,IAAA,qBAAa,EAAC,CAAC,IAAI,EAAE,EAAE;QACnB,qBAAY,CAAC,OAAO,CAAC;YACjB,SAAS,EAAE,gBAAgB;YAC3B,KAAK,EAAE,QAAQ;YACf,QAAQ,EAAE,IAAI;SACjB,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;YAClB,SAAS,EAAE,gBAAgB;YAC3B,KAAK,EAAE,QAAQ;YACf,QAAQ,EAAE,IAAI;SACjB,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IACH,OAAO,CACH,iCAAK,SAAS,EAAE,CAAC,CAAC,EAAC,OAAO,EAAE,cAAc,EAAC,EAAE,CAAC,SAAS,CAAC,CAAC,aACpD,cAAc,CAAC,CAAC,CAAC,CACd,uBAAC,yBAAW,IACR,MAAM,EAAE,MAAM,EACd,UAAU,EAAC,SAAS,EACpB,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,aAAa,EAC5B,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,EAClC,mBAAmB,EAAE,mBAAmB,EACxC,eAAe,EAAE,eAAe,EAChC,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,gBAAgB,CAAC,CAAC,YAE1C,QAAQ,GACC,CACjB,CAAC,CAAC,CAAC,IAAI,EACR,uBAAC,+CAAsB,IAAC,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,YAChF,uBAAC,mCAAsB,IAAC,OAAO,EAAE,MAAM,CAAC,aAAa,GAAI,GACpC,IACvB,CACT,CAAC;AACN,CAAC,CAAC,CAAC;AACH,yBAAiB,CAAC,WAAW,GAAG,0BAA0B,CAAC","sourcesContent":["import {memo} from 'react';\n\nimport {type ClassNameProps, cn} from '../classname';\nimport {ReactRendererComponent} from '../extensions';\nimport {globalLogger} from '../logger';\nimport {useRenderTime} from '../react-utils/hooks';\n\nimport type {EditorInt} from './Editor';\nimport {ToolbarView} from './ToolbarView';\nimport {WysiwygEditorComponent} from './WysiwygEditorComponent';\nimport type {WToolbarData, WToolbarItemData} from './toolbar/types';\n\nimport './WysiwygEditorView.scss';\n\nconst b = cn('wysiwyg-editor');\n\nexport type WysiwygEditorViewProps = ClassNameProps & {\n editor: EditorInt;\n autofocus?: boolean;\n settingsVisible?: boolean;\n toolbarConfig: WToolbarData;\n toolbarVisible?: boolean;\n stickyToolbar?: boolean;\n toolbarClassName?: string;\n hiddenActionsConfig?: WToolbarItemData[];\n children?: React.ReactNode;\n};\n\nexport const WysiwygEditorView = memo<WysiwygEditorViewProps>((props) => {\n const {\n editor,\n autofocus,\n settingsVisible,\n toolbarVisible,\n toolbarConfig,\n hiddenActionsConfig,\n className,\n toolbarClassName,\n children,\n stickyToolbar = true,\n } = props;\n useRenderTime((time) => {\n globalLogger.metrics({\n component: 'wysiwyg-editor',\n event: 'render',\n duration: time,\n });\n editor.logger.metrics({\n component: 'wysiwyg-editor',\n event: 'render',\n duration: time,\n });\n });\n return (\n <div className={b({toolbar: toolbarVisible}, [className])}>\n {toolbarVisible ? (\n <ToolbarView\n editor={editor}\n editorMode=\"wysiwyg\"\n toolbarEditor={editor}\n stickyToolbar={stickyToolbar}\n toolbarConfig={toolbarConfig}\n toolbarFocus={() => editor.focus()}\n hiddenActionsConfig={hiddenActionsConfig}\n settingsVisible={settingsVisible}\n className={b('toolbar', [toolbarClassName])}\n >\n {children}\n </ToolbarView>\n ) : null}\n <WysiwygEditorComponent autofocus={autofocus} editor={editor} className={b('editor')}>\n <ReactRendererComponent storage={editor.renderStorage} />\n </WysiwygEditorComponent>\n </div>\n );\n});\nWysiwygEditorView.displayName = 'MarkdownWysiwgEditorView';\n"]}
1
+ {"version":3,"file":"WysiwygEditorView.js","sourceRoot":"../../../src","sources":["bundle/WysiwygEditorView.tsx"],"names":[],"mappings":";;;;AAAA,iCAA2B;AAI3B,+CAAqD;AACrD,uDAAqD;AACrD,yCAAuC;AACvC,mDAAmD;AAGnD,kDAA0C;AAC1C,wEAAgE;AAGhE,mCAAkC;AAElC,MAAM,CAAC,GAAG,IAAA,cAAE,EAAC,gBAAgB,CAAC,CAAC;AAelB,QAAA,iBAAiB,GAAG,IAAA,YAAI,EAAyB,CAAC,KAAK,EAAE,EAAE;IACpE,MAAM,EACF,MAAM,EACN,SAAS,EACT,eAAe,EACf,cAAc,EACd,aAAa,EACb,mBAAmB,EACnB,EAAE,EACF,SAAS,EACT,gBAAgB,EAChB,QAAQ,EACR,aAAa,GAAG,IAAI,GACvB,GAAG,KAAK,CAAC;IACV,IAAA,qBAAa,EAAC,CAAC,IAAI,EAAE,EAAE;QACnB,qBAAY,CAAC,OAAO,CAAC;YACjB,SAAS,EAAE,gBAAgB;YAC3B,KAAK,EAAE,QAAQ;YACf,QAAQ,EAAE,IAAI;SACjB,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;YAClB,SAAS,EAAE,gBAAgB;YAC3B,KAAK,EAAE,QAAQ;YACf,QAAQ,EAAE,IAAI;SACjB,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IACH,OAAO,CACH,iCACI,SAAS,EAAE,CAAC,CAAC,EAAC,OAAO,EAAE,cAAc,EAAC,EAAE,CAAC,SAAS,CAAC,CAAC,eACzC,MAAM,CAAC,WAAW,aACpB,EAAE,aAEV,cAAc,CAAC,CAAC,CAAC,CACd,uBAAC,yBAAW,IACR,MAAM,EAAE,MAAM,EACd,UAAU,EAAC,SAAS,EACpB,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,aAAa,EAC5B,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,EAClC,mBAAmB,EAAE,mBAAmB,EACxC,eAAe,EAAE,eAAe,EAChC,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,gBAAgB,CAAC,CAAC,YAE1C,QAAQ,GACC,CACjB,CAAC,CAAC,CAAC,IAAI,EACR,uBAAC,+CAAsB,IAAC,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,YAChF,uBAAC,mCAAsB,IAAC,OAAO,EAAE,MAAM,CAAC,aAAa,GAAI,GACpC,IACvB,CACT,CAAC;AACN,CAAC,CAAC,CAAC;AACH,yBAAiB,CAAC,WAAW,GAAG,0BAA0B,CAAC","sourcesContent":["import {memo} from 'react';\n\nimport type {QAProps} from '@gravity-ui/uikit';\n\nimport {type ClassNameProps, cn} from '../classname';\nimport {ReactRendererComponent} from '../extensions';\nimport {globalLogger} from '../logger';\nimport {useRenderTime} from '../react-utils/hooks';\n\nimport type {EditorInt} from './Editor';\nimport {ToolbarView} from './ToolbarView';\nimport {WysiwygEditorComponent} from './WysiwygEditorComponent';\nimport type {WToolbarData, WToolbarItemData} from './toolbar/types';\n\nimport './WysiwygEditorView.scss';\n\nconst b = cn('wysiwyg-editor');\n\nexport type WysiwygEditorViewProps = ClassNameProps &\n QAProps & {\n editor: EditorInt;\n autofocus?: boolean;\n settingsVisible?: boolean;\n toolbarConfig: WToolbarData;\n toolbarVisible?: boolean;\n stickyToolbar?: boolean;\n toolbarClassName?: string;\n hiddenActionsConfig?: WToolbarItemData[];\n children?: React.ReactNode;\n };\n\nexport const WysiwygEditorView = memo<WysiwygEditorViewProps>((props) => {\n const {\n editor,\n autofocus,\n settingsVisible,\n toolbarVisible,\n toolbarConfig,\n hiddenActionsConfig,\n qa,\n className,\n toolbarClassName,\n children,\n stickyToolbar = true,\n } = props;\n useRenderTime((time) => {\n globalLogger.metrics({\n component: 'wysiwyg-editor',\n event: 'render',\n duration: time,\n });\n editor.logger.metrics({\n component: 'wysiwyg-editor',\n event: 'render',\n duration: time,\n });\n });\n return (\n <div\n className={b({toolbar: toolbarVisible}, [className])}\n data-mode={editor.currentMode}\n data-qa={qa}\n >\n {toolbarVisible ? (\n <ToolbarView\n editor={editor}\n editorMode=\"wysiwyg\"\n toolbarEditor={editor}\n stickyToolbar={stickyToolbar}\n toolbarConfig={toolbarConfig}\n toolbarFocus={() => editor.focus()}\n hiddenActionsConfig={hiddenActionsConfig}\n settingsVisible={settingsVisible}\n className={b('toolbar', [toolbarClassName])}\n >\n {children}\n </ToolbarView>\n ) : null}\n <WysiwygEditorComponent autofocus={autofocus} editor={editor} className={b('editor')}>\n <ReactRendererComponent storage={editor.renderStorage} />\n </WysiwygEditorComponent>\n </div>\n );\n});\nWysiwygEditorView.displayName = 'MarkdownWysiwgEditorView';\n"]}
@@ -1,3 +1,3 @@
1
- declare const namesObj: Record<"bold" | "link" | "italic" | "strike" | "underline" | "mark" | "quote" | "colorify" | "mono" | "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" | "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>;
2
2
  export declare const ActionName: Readonly<typeof namesObj>;
3
3
  export {};
@@ -44,6 +44,7 @@ const names = [
44
44
  'orderedList',
45
45
  'paragraph',
46
46
  'quote',
47
+ 'quoteLink',
47
48
  'redo',
48
49
  'sinkListItem',
49
50
  'strike',
@@ -1 +1 @@
1
- {"version":3,"file":"action-names.js","sourceRoot":"../../../../src","sources":["bundle/config/action-names.ts"],"names":[],"mappings":";;;AAAA,MAAM,KAAK,GAAG;IACV,QAAQ;IACR,MAAM;IACN,YAAY;IACZ,UAAU;IACV,gCAAgC;IAChC,YAAY;IACZ,WAAW;IACX,iCAAiC;IACjC,aAAa;IACb,YAAY;IACZ,UAAU;IACV,OAAO;IACP,MAAM;IACN,WAAW;IACX,KAAK;IACL,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,qCAAqC;IACrC,gBAAgB;IAChB,gBAAgB;IAChB,OAAO;IACP,YAAY;IACZ,QAAQ;IACR,cAAc;IACd,MAAM;IACN,MAAM;IACN,gCAAgC;IAChC,YAAY;IACZ,WAAW;IACX,iCAAiC;IACjC,aAAa;IACb,YAAY;IACZ,SAAS;IACT,MAAM;IACN,aAAa;IACb,WAAW;IACX,OAAO;IACP,MAAM;IACN,cAAc;IACd,QAAQ;IACR,OAAO;IACP,MAAM;IACN,WAAW;IACX,MAAM;IACN,4BAA4B;IAC5B,WAAW;IACX,OAAO;IACP,0BAA0B;IAC1B,SAAS;IACT,KAAK;IACL,gCAAgC;IAChC,gBAAgB;IAChB,WAAW;IACX,6BAA6B;IAC7B,YAAY;IACZ,QAAQ;IACR,2BAA2B;IAC3B,UAAU;IACV,MAAM;CACA,CAAC;AAIX,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CACzB,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;IACT,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;IACf,OAAO,GAAG,CAAC;AACf,CAAC,EACD,EAA6C,CAChD,CAAC;AAEW,QAAA,UAAU,GAA8B,QAAQ,CAAC","sourcesContent":["const names = [\n 'anchor',\n 'bold',\n 'bulletList',\n 'checkbox',\n /** @deprecated use codeBlock */\n 'code_block',\n 'codeBlock',\n /** @deprecated use codeInline */\n 'code_inline',\n 'codeInline',\n 'colorify',\n 'emoji',\n 'file',\n 'filePopup',\n 'gpt',\n 'heading1',\n 'heading2',\n 'heading3',\n 'heading4',\n 'heading5',\n 'heading6',\n 'emptyRow',\n /** @deprecated use horizontalRule */\n 'horizontalrule',\n 'horizontalRule',\n 'image',\n 'imagePopup',\n 'italic',\n 'liftListItem',\n 'link',\n 'mark',\n /** @deprecated use mathBlock */\n 'math_block',\n 'mathBlock',\n /** @deprecated use mathInline */\n 'math_inline',\n 'mathInline',\n 'mermaid',\n 'mono',\n 'orderedList',\n 'paragraph',\n 'quote',\n 'redo',\n 'sinkListItem',\n 'strike',\n 'table',\n 'tabs',\n 'underline',\n 'undo',\n /** @deprecated use block */\n 'yfm_block',\n 'block',\n /** @deprecated use cut */\n 'yfm_cut',\n 'cut',\n /** @deprecated use htmlBlock */\n 'yfm_html_block',\n 'htmlBlock',\n /** @deprecated use layout */\n 'yfm_layout',\n 'layout',\n /** @deprecated use note */\n 'yfm_note',\n 'note',\n] as const;\n\ntype ItemsType<L extends readonly string[]> = L extends readonly (infer T)[] ? T : never;\n\nconst namesObj = names.reduce<Record<ItemsType<typeof names>, string>>(\n (obj, val) => {\n obj[val] = val;\n return obj;\n },\n {} as Record<ItemsType<typeof names>, string>,\n);\n\nexport const ActionName: Readonly<typeof namesObj> = namesObj;\n"]}
1
+ {"version":3,"file":"action-names.js","sourceRoot":"../../../../src","sources":["bundle/config/action-names.ts"],"names":[],"mappings":";;;AAAA,MAAM,KAAK,GAAG;IACV,QAAQ;IACR,MAAM;IACN,YAAY;IACZ,UAAU;IACV,gCAAgC;IAChC,YAAY;IACZ,WAAW;IACX,iCAAiC;IACjC,aAAa;IACb,YAAY;IACZ,UAAU;IACV,OAAO;IACP,MAAM;IACN,WAAW;IACX,KAAK;IACL,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,qCAAqC;IACrC,gBAAgB;IAChB,gBAAgB;IAChB,OAAO;IACP,YAAY;IACZ,QAAQ;IACR,cAAc;IACd,MAAM;IACN,MAAM;IACN,gCAAgC;IAChC,YAAY;IACZ,WAAW;IACX,iCAAiC;IACjC,aAAa;IACb,YAAY;IACZ,SAAS;IACT,MAAM;IACN,aAAa;IACb,WAAW;IACX,OAAO;IACP,WAAW;IACX,MAAM;IACN,cAAc;IACd,QAAQ;IACR,OAAO;IACP,MAAM;IACN,WAAW;IACX,MAAM;IACN,4BAA4B;IAC5B,WAAW;IACX,OAAO;IACP,0BAA0B;IAC1B,SAAS;IACT,KAAK;IACL,gCAAgC;IAChC,gBAAgB;IAChB,WAAW;IACX,6BAA6B;IAC7B,YAAY;IACZ,QAAQ;IACR,2BAA2B;IAC3B,UAAU;IACV,MAAM;CACA,CAAC;AAIX,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CACzB,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;IACT,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;IACf,OAAO,GAAG,CAAC;AACf,CAAC,EACD,EAA6C,CAChD,CAAC;AAEW,QAAA,UAAU,GAA8B,QAAQ,CAAC","sourcesContent":["const names = [\n 'anchor',\n 'bold',\n 'bulletList',\n 'checkbox',\n /** @deprecated use codeBlock */\n 'code_block',\n 'codeBlock',\n /** @deprecated use codeInline */\n 'code_inline',\n 'codeInline',\n 'colorify',\n 'emoji',\n 'file',\n 'filePopup',\n 'gpt',\n 'heading1',\n 'heading2',\n 'heading3',\n 'heading4',\n 'heading5',\n 'heading6',\n 'emptyRow',\n /** @deprecated use horizontalRule */\n 'horizontalrule',\n 'horizontalRule',\n 'image',\n 'imagePopup',\n 'italic',\n 'liftListItem',\n 'link',\n 'mark',\n /** @deprecated use mathBlock */\n 'math_block',\n 'mathBlock',\n /** @deprecated use mathInline */\n 'math_inline',\n 'mathInline',\n 'mermaid',\n 'mono',\n 'orderedList',\n 'paragraph',\n 'quote',\n 'quoteLink',\n 'redo',\n 'sinkListItem',\n 'strike',\n 'table',\n 'tabs',\n 'underline',\n 'undo',\n /** @deprecated use block */\n 'yfm_block',\n 'block',\n /** @deprecated use cut */\n 'yfm_cut',\n 'cut',\n /** @deprecated use htmlBlock */\n 'yfm_html_block',\n 'htmlBlock',\n /** @deprecated use layout */\n 'yfm_layout',\n 'layout',\n /** @deprecated use note */\n 'yfm_note',\n 'note',\n] as const;\n\ntype ItemsType<L extends readonly string[]> = L extends readonly (infer T)[] ? T : never;\n\nconst namesObj = names.reduce<Record<ItemsType<typeof names>, string>>(\n (obj, val) => {\n obj[val] = val;\n return obj;\n },\n {} as Record<ItemsType<typeof names>, string>,\n);\n\nexport const ActionName: Readonly<typeof namesObj> = namesObj;\n"]}
@@ -1,5 +1,5 @@
1
1
  import type { ToolbarIconData } from "../../toolbar/types.js";
2
- type Icon = 'undo' | 'redo' | 'bold' | 'italic' | 'underline' | 'strikethrough' | 'mono' | 'mark' | 'textColor' | 'text' | 'headline' | 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'bulletList' | 'orderedList' | 'sink' | 'lift' | 'cut' | 'note' | 'code' | 'codeBlock' | 'link' | 'image' | 'table' | 'quote' | 'checklist' | 'horizontalRule' | 'file' | 'functionInline' | 'functionBlock' | 'emoji' | 'tabs' | 'mermaid' | 'html' | 'foldingHeading' | 'gpt';
2
+ type Icon = 'undo' | 'redo' | 'bold' | 'italic' | 'underline' | 'strikethrough' | 'mono' | 'mark' | 'textColor' | 'text' | 'headline' | 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'bulletList' | 'orderedList' | 'sink' | 'lift' | 'cut' | 'note' | 'code' | 'codeBlock' | 'link' | 'image' | 'table' | 'quote' | 'quoteLink' | 'checklist' | 'horizontalRule' | 'file' | 'functionInline' | 'functionBlock' | 'emoji' | 'tabs' | 'mermaid' | 'html' | 'foldingHeading' | 'gpt';
3
3
  type Icons = Record<Icon, ToolbarIconData>;
4
4
  export declare const icons: Icons;
5
5
  export {};
@@ -34,6 +34,7 @@ exports.icons = {
34
34
  image: { data: icons_1.ImageIcon },
35
35
  table: { data: icons_1.TableIcon },
36
36
  quote: { data: icons_1.QuoteIcon },
37
+ quoteLink: { data: icons_1.QuoteLinkIcon },
37
38
  checklist: { data: icons_1.CheckListIcon },
38
39
  html: { data: icons_1.HtmlBlockIcon },
39
40
  horizontalRule: { data: icons_1.HRuleIcon },
@@ -1 +1 @@
1
- {"version":3,"file":"icons.js","sourceRoot":"../../../../src","sources":["bundle/config/icons.ts"],"names":[],"mappings":";;;;AAAA,gDAwCqB;AACrB,qEAAsC;AA+CzB,QAAA,KAAK,GAAU;IACxB,IAAI,EAAE,EAAC,IAAI,EAAE,gBAAQ,EAAC;IACtB,IAAI,EAAE,EAAC,IAAI,EAAE,gBAAQ,EAAC;IAEtB,IAAI,EAAE,EAAC,IAAI,EAAE,gBAAQ,EAAC;IACtB,MAAM,EAAE,EAAC,IAAI,EAAE,kBAAU,EAAC;IAC1B,SAAS,EAAE,EAAC,IAAI,EAAE,qBAAa,EAAC;IAChC,aAAa,EAAE,EAAC,IAAI,EAAE,yBAAiB,EAAC;IACxC,IAAI,EAAE,EAAC,IAAI,EAAE,gBAAQ,EAAC;IACtB,IAAI,EAAE,EAAC,IAAI,EAAE,gBAAQ,EAAC;IAEtB,SAAS,EAAE,EAAC,IAAI,EAAE,qBAAa,EAAC;IAEhC,IAAI,EAAE,EAAC,IAAI,EAAE,gBAAQ,EAAC;IACtB,QAAQ,EAAE,EAAC,IAAI,EAAE,mBAAW,EAAC;IAC7B,EAAE,EAAE,EAAC,IAAI,EAAE,oBAAY,EAAC;IACxB,EAAE,EAAE,EAAC,IAAI,EAAE,oBAAY,EAAC;IACxB,EAAE,EAAE,EAAC,IAAI,EAAE,oBAAY,EAAC;IACxB,EAAE,EAAE,EAAC,IAAI,EAAE,oBAAY,EAAC;IACxB,EAAE,EAAE,EAAC,IAAI,EAAE,oBAAY,EAAC;IACxB,EAAE,EAAE,EAAC,IAAI,EAAE,oBAAY,EAAC;IAExB,UAAU,EAAE,EAAC,IAAI,EAAE,kBAAU,EAAC;IAC9B,WAAW,EAAE,EAAC,IAAI,EAAE,kBAAU,EAAC;IAE/B,IAAI,EAAE,EAAC,IAAI,EAAE,gBAAQ,EAAC;IACtB,IAAI,EAAE,EAAC,IAAI,EAAE,gBAAQ,EAAC;IAEtB,GAAG,EAAE,EAAC,IAAI,EAAE,eAAO,EAAC;IACpB,IAAI,EAAE,EAAC,IAAI,EAAE,gBAAQ,EAAC;IAEtB,IAAI,EAAE,EAAC,IAAI,EAAE,sBAAc,EAAC;IAC5B,SAAS,EAAE,EAAC,IAAI,EAAE,qBAAa,EAAC;IAEhC,IAAI,EAAE,EAAC,IAAI,EAAE,gBAAQ,EAAC;IACtB,KAAK,EAAE,EAAC,IAAI,EAAE,iBAAS,EAAC;IAExB,KAAK,EAAE,EAAC,IAAI,EAAE,iBAAS,EAAC;IACxB,KAAK,EAAE,EAAC,IAAI,EAAE,iBAAS,EAAC;IACxB,SAAS,EAAE,EAAC,IAAI,EAAE,qBAAa,EAAC;IAEhC,IAAI,EAAE,EAAC,IAAI,EAAE,qBAAa,EAAC;IAC3B,cAAc,EAAE,EAAC,IAAI,EAAE,iBAAS,EAAC;IAEjC,IAAI,EAAE,EAAC,IAAI,EAAE,gBAAQ,EAAC;IAEtB,cAAc,EAAE,EAAC,IAAI,EAAE,0BAAkB,EAAC;IAC1C,aAAa,EAAE,EAAC,IAAI,EAAE,yBAAiB,EAAC;IAExC,KAAK,EAAE,EAAC,IAAI,EAAE,iBAAS,EAAC;IAExB,IAAI,EAAE,EAAC,IAAI,EAAE,gBAAQ,EAAC;IACtB,OAAO,EAAE,EAAC,IAAI,EAAE,mBAAW,EAAC;IAE5B,cAAc,EAAE,EAAC,IAAI,EAAE,0BAAkB,EAAC;IAE1C,GAAG,EAAE,EAAC,IAAI,EAAE,aAAO,EAAC;CACvB,CAAC","sourcesContent":["import {\n BoldIcon,\n CheckListIcon,\n CodeBlockIcon,\n CodeInlineIcon,\n CutIcon,\n EmojiIcon,\n FileIcon,\n FoldingHeadingIcon,\n FunctionBlockIcon,\n FunctionInlineIcon,\n HRuleIcon,\n Heading1Icon,\n Heading2Icon,\n Heading3Icon,\n Heading4Icon,\n Heading5Icon,\n Heading6Icon,\n HeadingIcon,\n HtmlBlockIcon,\n ImageIcon,\n ItalicIcon,\n LiftIcon,\n LinkIcon,\n ListBlIcon,\n ListOlIcon,\n MarkIcon,\n MermaidIcon,\n MonoIcon,\n NoteIcon,\n QuoteIcon,\n RedoIcon,\n SinkIcon,\n StrikethroughIcon,\n TableIcon,\n TabsIcon,\n TextColorIcon,\n TextIcon,\n UnderlineIcon,\n UndoIcon,\n} from '../../icons';\nimport GPTIcon from '../../icons/GPT';\nimport type {ToolbarIconData} from '../../toolbar/types';\n\ntype Icon =\n | 'undo'\n | 'redo'\n | 'bold'\n | 'italic'\n | 'underline'\n | 'strikethrough'\n | 'mono'\n | 'mark'\n | 'textColor'\n | 'text'\n | 'headline'\n | 'h1'\n | 'h2'\n | 'h3'\n | 'h4'\n | 'h5'\n | 'h6'\n | 'bulletList'\n | 'orderedList'\n | 'sink'\n | 'lift'\n | 'cut'\n | 'note'\n | 'code'\n | 'codeBlock'\n | 'link'\n | 'image'\n | 'table'\n | 'quote'\n | 'checklist'\n | 'horizontalRule'\n | 'file'\n | 'functionInline'\n | 'functionBlock'\n | 'emoji'\n | 'tabs'\n | 'mermaid'\n | 'html'\n | 'foldingHeading'\n | 'gpt';\n\ntype Icons = Record<Icon, ToolbarIconData>;\n\nexport const icons: Icons = {\n undo: {data: UndoIcon},\n redo: {data: RedoIcon},\n\n bold: {data: BoldIcon},\n italic: {data: ItalicIcon},\n underline: {data: UnderlineIcon},\n strikethrough: {data: StrikethroughIcon},\n mono: {data: MonoIcon},\n mark: {data: MarkIcon},\n\n textColor: {data: TextColorIcon},\n\n text: {data: TextIcon},\n headline: {data: HeadingIcon},\n h1: {data: Heading1Icon},\n h2: {data: Heading2Icon},\n h3: {data: Heading3Icon},\n h4: {data: Heading4Icon},\n h5: {data: Heading5Icon},\n h6: {data: Heading6Icon},\n\n bulletList: {data: ListBlIcon},\n orderedList: {data: ListOlIcon},\n\n sink: {data: SinkIcon},\n lift: {data: LiftIcon},\n\n cut: {data: CutIcon},\n note: {data: NoteIcon},\n\n code: {data: CodeInlineIcon},\n codeBlock: {data: CodeBlockIcon},\n\n link: {data: LinkIcon},\n image: {data: ImageIcon},\n\n table: {data: TableIcon},\n quote: {data: QuoteIcon},\n checklist: {data: CheckListIcon},\n\n html: {data: HtmlBlockIcon},\n horizontalRule: {data: HRuleIcon},\n\n file: {data: FileIcon},\n\n functionInline: {data: FunctionInlineIcon},\n functionBlock: {data: FunctionBlockIcon},\n\n emoji: {data: EmojiIcon},\n\n tabs: {data: TabsIcon},\n mermaid: {data: MermaidIcon},\n\n foldingHeading: {data: FoldingHeadingIcon},\n\n gpt: {data: GPTIcon},\n};\n"]}
1
+ {"version":3,"file":"icons.js","sourceRoot":"../../../../src","sources":["bundle/config/icons.ts"],"names":[],"mappings":";;;;AAAA,gDAyCqB;AACrB,qEAAsC;AAgDzB,QAAA,KAAK,GAAU;IACxB,IAAI,EAAE,EAAC,IAAI,EAAE,gBAAQ,EAAC;IACtB,IAAI,EAAE,EAAC,IAAI,EAAE,gBAAQ,EAAC;IAEtB,IAAI,EAAE,EAAC,IAAI,EAAE,gBAAQ,EAAC;IACtB,MAAM,EAAE,EAAC,IAAI,EAAE,kBAAU,EAAC;IAC1B,SAAS,EAAE,EAAC,IAAI,EAAE,qBAAa,EAAC;IAChC,aAAa,EAAE,EAAC,IAAI,EAAE,yBAAiB,EAAC;IACxC,IAAI,EAAE,EAAC,IAAI,EAAE,gBAAQ,EAAC;IACtB,IAAI,EAAE,EAAC,IAAI,EAAE,gBAAQ,EAAC;IAEtB,SAAS,EAAE,EAAC,IAAI,EAAE,qBAAa,EAAC;IAEhC,IAAI,EAAE,EAAC,IAAI,EAAE,gBAAQ,EAAC;IACtB,QAAQ,EAAE,EAAC,IAAI,EAAE,mBAAW,EAAC;IAC7B,EAAE,EAAE,EAAC,IAAI,EAAE,oBAAY,EAAC;IACxB,EAAE,EAAE,EAAC,IAAI,EAAE,oBAAY,EAAC;IACxB,EAAE,EAAE,EAAC,IAAI,EAAE,oBAAY,EAAC;IACxB,EAAE,EAAE,EAAC,IAAI,EAAE,oBAAY,EAAC;IACxB,EAAE,EAAE,EAAC,IAAI,EAAE,oBAAY,EAAC;IACxB,EAAE,EAAE,EAAC,IAAI,EAAE,oBAAY,EAAC;IAExB,UAAU,EAAE,EAAC,IAAI,EAAE,kBAAU,EAAC;IAC9B,WAAW,EAAE,EAAC,IAAI,EAAE,kBAAU,EAAC;IAE/B,IAAI,EAAE,EAAC,IAAI,EAAE,gBAAQ,EAAC;IACtB,IAAI,EAAE,EAAC,IAAI,EAAE,gBAAQ,EAAC;IAEtB,GAAG,EAAE,EAAC,IAAI,EAAE,eAAO,EAAC;IACpB,IAAI,EAAE,EAAC,IAAI,EAAE,gBAAQ,EAAC;IAEtB,IAAI,EAAE,EAAC,IAAI,EAAE,sBAAc,EAAC;IAC5B,SAAS,EAAE,EAAC,IAAI,EAAE,qBAAa,EAAC;IAEhC,IAAI,EAAE,EAAC,IAAI,EAAE,gBAAQ,EAAC;IACtB,KAAK,EAAE,EAAC,IAAI,EAAE,iBAAS,EAAC;IAExB,KAAK,EAAE,EAAC,IAAI,EAAE,iBAAS,EAAC;IACxB,KAAK,EAAE,EAAC,IAAI,EAAE,iBAAS,EAAC;IACxB,SAAS,EAAE,EAAC,IAAI,EAAE,qBAAa,EAAC;IAChC,SAAS,EAAE,EAAC,IAAI,EAAE,qBAAa,EAAC;IAEhC,IAAI,EAAE,EAAC,IAAI,EAAE,qBAAa,EAAC;IAC3B,cAAc,EAAE,EAAC,IAAI,EAAE,iBAAS,EAAC;IAEjC,IAAI,EAAE,EAAC,IAAI,EAAE,gBAAQ,EAAC;IAEtB,cAAc,EAAE,EAAC,IAAI,EAAE,0BAAkB,EAAC;IAC1C,aAAa,EAAE,EAAC,IAAI,EAAE,yBAAiB,EAAC;IAExC,KAAK,EAAE,EAAC,IAAI,EAAE,iBAAS,EAAC;IAExB,IAAI,EAAE,EAAC,IAAI,EAAE,gBAAQ,EAAC;IACtB,OAAO,EAAE,EAAC,IAAI,EAAE,mBAAW,EAAC;IAE5B,cAAc,EAAE,EAAC,IAAI,EAAE,0BAAkB,EAAC;IAE1C,GAAG,EAAE,EAAC,IAAI,EAAE,aAAO,EAAC;CACvB,CAAC","sourcesContent":["import {\n BoldIcon,\n CheckListIcon,\n CodeBlockIcon,\n CodeInlineIcon,\n CutIcon,\n EmojiIcon,\n FileIcon,\n FoldingHeadingIcon,\n FunctionBlockIcon,\n FunctionInlineIcon,\n HRuleIcon,\n Heading1Icon,\n Heading2Icon,\n Heading3Icon,\n Heading4Icon,\n Heading5Icon,\n Heading6Icon,\n HeadingIcon,\n HtmlBlockIcon,\n ImageIcon,\n ItalicIcon,\n LiftIcon,\n LinkIcon,\n ListBlIcon,\n ListOlIcon,\n MarkIcon,\n MermaidIcon,\n MonoIcon,\n NoteIcon,\n QuoteIcon,\n QuoteLinkIcon,\n RedoIcon,\n SinkIcon,\n StrikethroughIcon,\n TableIcon,\n TabsIcon,\n TextColorIcon,\n TextIcon,\n UnderlineIcon,\n UndoIcon,\n} from '../../icons';\nimport GPTIcon from '../../icons/GPT';\nimport type {ToolbarIconData} from '../../toolbar/types';\n\ntype Icon =\n | 'undo'\n | 'redo'\n | 'bold'\n | 'italic'\n | 'underline'\n | 'strikethrough'\n | 'mono'\n | 'mark'\n | 'textColor'\n | 'text'\n | 'headline'\n | 'h1'\n | 'h2'\n | 'h3'\n | 'h4'\n | 'h5'\n | 'h6'\n | 'bulletList'\n | 'orderedList'\n | 'sink'\n | 'lift'\n | 'cut'\n | 'note'\n | 'code'\n | 'codeBlock'\n | 'link'\n | 'image'\n | 'table'\n | 'quote'\n | 'quoteLink'\n | 'checklist'\n | 'horizontalRule'\n | 'file'\n | 'functionInline'\n | 'functionBlock'\n | 'emoji'\n | 'tabs'\n | 'mermaid'\n | 'html'\n | 'foldingHeading'\n | 'gpt';\n\ntype Icons = Record<Icon, ToolbarIconData>;\n\nexport const icons: Icons = {\n undo: {data: UndoIcon},\n redo: {data: RedoIcon},\n\n bold: {data: BoldIcon},\n italic: {data: ItalicIcon},\n underline: {data: UnderlineIcon},\n strikethrough: {data: StrikethroughIcon},\n mono: {data: MonoIcon},\n mark: {data: MarkIcon},\n\n textColor: {data: TextColorIcon},\n\n text: {data: TextIcon},\n headline: {data: HeadingIcon},\n h1: {data: Heading1Icon},\n h2: {data: Heading2Icon},\n h3: {data: Heading3Icon},\n h4: {data: Heading4Icon},\n h5: {data: Heading5Icon},\n h6: {data: Heading6Icon},\n\n bulletList: {data: ListBlIcon},\n orderedList: {data: ListOlIcon},\n\n sink: {data: SinkIcon},\n lift: {data: LiftIcon},\n\n cut: {data: CutIcon},\n note: {data: NoteIcon},\n\n code: {data: CodeInlineIcon},\n codeBlock: {data: CodeBlockIcon},\n\n link: {data: LinkIcon},\n image: {data: ImageIcon},\n\n table: {data: TableIcon},\n quote: {data: QuoteIcon},\n quoteLink: {data: QuoteLinkIcon},\n checklist: {data: CheckListIcon},\n\n html: {data: HtmlBlockIcon},\n horizontalRule: {data: HRuleIcon},\n\n file: {data: FileIcon},\n\n functionInline: {data: FunctionInlineIcon},\n functionBlock: {data: FunctionBlockIcon},\n\n emoji: {data: EmojiIcon},\n\n tabs: {data: TabsIcon},\n mermaid: {data: MermaidIcon},\n\n foldingHeading: {data: FoldingHeadingIcon},\n\n gpt: {data: GPTIcon},\n};\n"]}
@@ -82,6 +82,7 @@ exports.wHeading6ItemData = {
82
82
  exports.wHeadingListConfig = {
83
83
  icon: icons_1.icons.headline,
84
84
  withArrow: true,
85
+ replaceActiveIcon: true,
85
86
  title: menubar_1.i18n.bind(null, 'heading'),
86
87
  data: [
87
88
  exports.wTextItemData,
@@ -1 +1 @@
1
- {"version":3,"file":"w-heading-config.js","sourceRoot":"../../../../src","sources":["bundle/config/w-heading-config.tsx"],"names":[],"mappings":"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","sourcesContent":["import {i18n} from '../../i18n/menubar';\nimport {Action as A, formatter as f} from '../../shortcuts';\nimport type {WToolbarListButtonData, WToolbarListButtonItemData} from '../toolbar/types';\n\nimport {ActionName} from './action-names';\nimport {icons} from './icons';\nimport {HeadingPreview} from './previews/HeadingPreview';\nimport {TextPreview} from './previews/TextPreview';\n\nexport const wTextItemData: WToolbarListButtonItemData = {\n id: ActionName.paragraph,\n title: i18n.bind(null, 'text'),\n icon: icons.text,\n hotkey: f.toView(A.Text),\n exec: (e) => e.actions.toParagraph.run(),\n isActive: (e) => e.actions.toParagraph.isActive(),\n isEnable: (e) => e.actions.toParagraph.isEnable(),\n doNotActivateList: true,\n preview: <TextPreview />,\n};\nexport const wHeading1ItemData: WToolbarListButtonItemData = {\n id: ActionName.heading1,\n title: i18n.bind(null, 'heading1'),\n icon: icons.h1,\n hotkey: f.toView(A.Heading1),\n exec: (e) => e.actions.toH1.run(),\n isActive: (e) => e.actions.toH1.isActive(),\n isEnable: (e) => e.actions.toH1.isEnable(),\n preview: <HeadingPreview level={1} />,\n};\nexport const wHeading2ItemData: WToolbarListButtonItemData = {\n id: ActionName.heading2,\n title: i18n.bind(null, 'heading2'),\n icon: icons.h2,\n hotkey: f.toView(A.Heading2),\n exec: (e) => e.actions.toH2.run(),\n isActive: (e) => e.actions.toH2.isActive(),\n isEnable: (e) => e.actions.toH2.isEnable(),\n preview: <HeadingPreview level={2} />,\n};\nexport const wHeading3ItemData: WToolbarListButtonItemData = {\n id: ActionName.heading3,\n title: i18n.bind(null, 'heading3'),\n icon: icons.h3,\n hotkey: f.toView(A.Heading3),\n exec: (e) => e.actions.toH3.run(),\n isActive: (e) => e.actions.toH3.isActive(),\n isEnable: (e) => e.actions.toH3.isEnable(),\n preview: <HeadingPreview level={3} />,\n};\nexport const wHeading4ItemData: WToolbarListButtonItemData = {\n id: ActionName.heading4,\n title: i18n.bind(null, 'heading4'),\n icon: icons.h4, // Предполагается, что icon исправлен для h4\n hotkey: f.toView(A.Heading4),\n exec: (e) => e.actions.toH4.run(),\n isActive: (e) => e.actions.toH4.isActive(),\n isEnable: (e) => e.actions.toH4.isEnable(),\n preview: <HeadingPreview level={4} />,\n};\nexport const wHeading5ItemData: WToolbarListButtonItemData = {\n id: ActionName.heading5,\n title: i18n.bind(null, 'heading5'),\n icon: icons.h5, // Предполагается, что icon исправлен для h5\n hotkey: f.toView(A.Heading5),\n exec: (e) => e.actions.toH5.run(),\n isActive: (e) => e.actions.toH5.isActive(),\n isEnable: (e) => e.actions.toH5.isEnable(),\n preview: <HeadingPreview level={5} />,\n};\nexport const wHeading6ItemData: WToolbarListButtonItemData = {\n id: ActionName.heading6,\n title: i18n.bind(null, 'heading6'),\n icon: icons.h6, // Предполагается, что icon исправлен для h6\n hotkey: f.toView(A.Heading6),\n exec: (e) => e.actions.toH6.run(),\n isActive: (e) => e.actions.toH6.isActive(),\n isEnable: (e) => e.actions.toH6.isEnable(),\n preview: <HeadingPreview level={6} />,\n};\n\nexport const wHeadingListConfig: WToolbarListButtonData = {\n icon: icons.headline,\n withArrow: true,\n title: i18n.bind(null, 'heading'),\n data: [\n wTextItemData,\n wHeading1ItemData,\n wHeading2ItemData,\n wHeading3ItemData,\n wHeading4ItemData,\n wHeading5ItemData,\n wHeading6ItemData,\n ],\n};\n"]}
1
+ {"version":3,"file":"w-heading-config.js","sourceRoot":"../../../../src","sources":["bundle/config/w-heading-config.tsx"],"names":[],"mappings":"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","sourcesContent":["import {i18n} from '../../i18n/menubar';\nimport {Action as A, formatter as f} from '../../shortcuts';\nimport type {WToolbarListButtonData, WToolbarListButtonItemData} from '../toolbar/types';\n\nimport {ActionName} from './action-names';\nimport {icons} from './icons';\nimport {HeadingPreview} from './previews/HeadingPreview';\nimport {TextPreview} from './previews/TextPreview';\n\nexport const wTextItemData: WToolbarListButtonItemData = {\n id: ActionName.paragraph,\n title: i18n.bind(null, 'text'),\n icon: icons.text,\n hotkey: f.toView(A.Text),\n exec: (e) => e.actions.toParagraph.run(),\n isActive: (e) => e.actions.toParagraph.isActive(),\n isEnable: (e) => e.actions.toParagraph.isEnable(),\n doNotActivateList: true,\n preview: <TextPreview />,\n};\nexport const wHeading1ItemData: WToolbarListButtonItemData = {\n id: ActionName.heading1,\n title: i18n.bind(null, 'heading1'),\n icon: icons.h1,\n hotkey: f.toView(A.Heading1),\n exec: (e) => e.actions.toH1.run(),\n isActive: (e) => e.actions.toH1.isActive(),\n isEnable: (e) => e.actions.toH1.isEnable(),\n preview: <HeadingPreview level={1} />,\n};\nexport const wHeading2ItemData: WToolbarListButtonItemData = {\n id: ActionName.heading2,\n title: i18n.bind(null, 'heading2'),\n icon: icons.h2,\n hotkey: f.toView(A.Heading2),\n exec: (e) => e.actions.toH2.run(),\n isActive: (e) => e.actions.toH2.isActive(),\n isEnable: (e) => e.actions.toH2.isEnable(),\n preview: <HeadingPreview level={2} />,\n};\nexport const wHeading3ItemData: WToolbarListButtonItemData = {\n id: ActionName.heading3,\n title: i18n.bind(null, 'heading3'),\n icon: icons.h3,\n hotkey: f.toView(A.Heading3),\n exec: (e) => e.actions.toH3.run(),\n isActive: (e) => e.actions.toH3.isActive(),\n isEnable: (e) => e.actions.toH3.isEnable(),\n preview: <HeadingPreview level={3} />,\n};\nexport const wHeading4ItemData: WToolbarListButtonItemData = {\n id: ActionName.heading4,\n title: i18n.bind(null, 'heading4'),\n icon: icons.h4, // Предполагается, что icon исправлен для h4\n hotkey: f.toView(A.Heading4),\n exec: (e) => e.actions.toH4.run(),\n isActive: (e) => e.actions.toH4.isActive(),\n isEnable: (e) => e.actions.toH4.isEnable(),\n preview: <HeadingPreview level={4} />,\n};\nexport const wHeading5ItemData: WToolbarListButtonItemData = {\n id: ActionName.heading5,\n title: i18n.bind(null, 'heading5'),\n icon: icons.h5, // Предполагается, что icon исправлен для h5\n hotkey: f.toView(A.Heading5),\n exec: (e) => e.actions.toH5.run(),\n isActive: (e) => e.actions.toH5.isActive(),\n isEnable: (e) => e.actions.toH5.isEnable(),\n preview: <HeadingPreview level={5} />,\n};\nexport const wHeading6ItemData: WToolbarListButtonItemData = {\n id: ActionName.heading6,\n title: i18n.bind(null, 'heading6'),\n icon: icons.h6, // Предполагается, что icon исправлен для h6\n hotkey: f.toView(A.Heading6),\n exec: (e) => e.actions.toH6.run(),\n isActive: (e) => e.actions.toH6.isActive(),\n isEnable: (e) => e.actions.toH6.isEnable(),\n preview: <HeadingPreview level={6} />,\n};\n\nexport const wHeadingListConfig: WToolbarListButtonData = {\n icon: icons.headline,\n withArrow: true,\n replaceActiveIcon: true,\n title: i18n.bind(null, 'heading'),\n data: [\n wTextItemData,\n wHeading1ItemData,\n wHeading2ItemData,\n wHeading3ItemData,\n wHeading4ItemData,\n wHeading5ItemData,\n wHeading6ItemData,\n ],\n};\n"]}
@@ -24,14 +24,14 @@ exports.EditorSettings = (0, react_1.memo)(function EditorSettings(props) {
24
24
  const { className, onShowPreviewChange, showPreview, renderPreviewButton, settingsVisible } = props;
25
25
  const [chevronElement, setChevronElement] = (0, react_1.useState)(null);
26
26
  const [popupShown, , hidePopup, togglePopup] = (0, hooks_1.useBooleanState)(false);
27
- return ((0, jsx_runtime_1.jsxs)("div", { className: bSettings(null, [className]), children: [renderPreviewButton && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(uikit_1.ActionTooltip, { openDelay: toolbar_1.ToolbarTooltipDelay.Open, closeDelay: toolbar_1.ToolbarTooltipDelay.Close, title: (0, bundle_1.i18n)('preview_hint'), hotkey: "mod+shift+p", children: (0, jsx_runtime_1.jsx)(uikit_1.Button, { size: "m", view: "flat", pin: "round-round", className: bSettings('preview-button'), onClick: () => onShowPreviewChange?.(!showPreview), selected: showPreview, children: (0, jsx_runtime_1.jsx)(uikit_1.Icon, { data: icons_1.Eye }) }) }), settingsVisible && (0, jsx_runtime_1.jsx)("div", { className: bSettings('separator') })] })), settingsVisible && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(uikit_1.Button, { size: "m", view: "flat", pin: "round-round", onClick: togglePopup, ref: setChevronElement, className: bSettings('dropdown-button'), children: (0, jsx_runtime_1.jsx)(uikit_1.Icon, { data: icons_1.Gear }) }), (0, jsx_runtime_1.jsx)(uikit_1.Popup, { open: popupShown, anchorElement: chevronElement, placement: placement, onOpenChange: hidePopup, children: (0, jsx_runtime_1.jsx)(SettingsContent, { ...props, onClose: hidePopup, className: bSettings('content') }) })] }))] }));
27
+ return ((0, jsx_runtime_1.jsxs)("div", { className: bSettings(null, [className]), children: [renderPreviewButton && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(uikit_1.ActionTooltip, { openDelay: toolbar_1.ToolbarTooltipDelay.Open, closeDelay: toolbar_1.ToolbarTooltipDelay.Close, title: (0, bundle_1.i18n)('preview_hint'), hotkey: "mod+shift+p", children: (0, jsx_runtime_1.jsx)(uikit_1.Button, { size: "m", view: "flat", pin: "round-round", className: bSettings('preview-button'), onClick: () => onShowPreviewChange?.(!showPreview), selected: showPreview, children: (0, jsx_runtime_1.jsx)(uikit_1.Icon, { data: icons_1.Eye }) }) }), settingsVisible && (0, jsx_runtime_1.jsx)("div", { className: bSettings('separator') })] })), settingsVisible && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(uikit_1.Button, { size: "m", view: "flat", pin: "round-round", onClick: togglePopup, ref: setChevronElement, qa: "g-md-settings-button", className: bSettings('dropdown-button'), children: (0, jsx_runtime_1.jsx)(uikit_1.Icon, { data: icons_1.Gear }) }), (0, jsx_runtime_1.jsx)(uikit_1.Popup, { open: popupShown, anchorElement: chevronElement, placement: placement, onOpenChange: hidePopup, children: (0, jsx_runtime_1.jsx)(SettingsContent, { ...props, onClose: hidePopup, className: bSettings('content') }) })] }))] }));
28
28
  });
29
29
  const mdHelpPlacement = ['bottom', 'bottom-end', 'right-start', 'right', 'left'];
30
30
  const SettingsContent = function SettingsContent({ mode, onClose, onModeChange, toolbarVisibility, onToolbarVisibilityChange, onSplitModeChange, splitMode = false, splitModeEnabled, className, showPreview, }) {
31
- return ((0, jsx_runtime_1.jsxs)("div", { className: bContent(null, [className]), children: [(0, jsx_runtime_1.jsxs)(uikit_1.Menu, { size: "l", className: bContent('mode'), children: [(0, jsx_runtime_1.jsx)(uikit_1.Menu.Item, { active: mode === 'wysiwyg', onClick: () => {
31
+ return ((0, jsx_runtime_1.jsxs)("div", { className: bContent(null, [className]), "data-qa": "g-md-settings-content", children: [(0, jsx_runtime_1.jsxs)(uikit_1.Menu, { size: "l", className: bContent('mode'), children: [(0, jsx_runtime_1.jsx)(uikit_1.Menu.Item, { qa: "md-settings-mode-wysiwyg", active: mode === 'wysiwyg', onClick: () => {
32
32
  onModeChange('wysiwyg');
33
33
  onClose();
34
- }, iconStart: (0, jsx_runtime_1.jsx)(uikit_1.Icon, { data: WysiwygMode_1.default }), children: (0, bundle_1.i18n)('settings_wysiwyg') }), (0, jsx_runtime_1.jsxs)(uikit_1.Menu.Item, { active: mode === 'markup', onClick: () => {
34
+ }, iconStart: (0, jsx_runtime_1.jsx)(uikit_1.Icon, { data: WysiwygMode_1.default }), children: (0, bundle_1.i18n)('settings_wysiwyg') }), (0, jsx_runtime_1.jsxs)(uikit_1.Menu.Item, { qa: "md-settings-mode-markup", active: mode === 'markup', onClick: () => {
35
35
  onModeChange('markup');
36
36
  onClose();
37
37
  }, iconStart: (0, jsx_runtime_1.jsx)(uikit_1.Icon, { data: icons_1.LogoMarkdown }), children: [(0, bundle_1.i18n)('settings_markup'), (0, jsx_runtime_1.jsx)(uikit_1.HelpMark, { popoverProps: {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"../../../../src","sources":["bundle/settings/index.tsx"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable jsx-a11y/no-static-element-interactions */\n/* eslint-disable jsx-a11y/click-events-have-key-events */\nimport {memo, useState} from 'react';\n\nimport {Eye, Gear, LogoMarkdown} from '@gravity-ui/icons';\nimport {\n ActionTooltip,\n Button,\n Checkbox,\n HelpMark,\n Icon,\n Menu,\n Popup,\n type PopupPlacement,\n} from '@gravity-ui/uikit';\n\nimport {type ClassNameProps, cn} from '../../classname';\nimport {i18n} from '../../i18n/bundle';\nimport WysiwygModeIcon from '../../icons/WysiwygMode';\nimport {noop} from '../../lodash';\nimport {useBooleanState} from '../../react-utils/hooks';\nimport {ToolbarTooltipDelay} from '../../toolbar';\nimport {VERSION} from '../../version';\nimport type {MarkdownEditorMode, MarkdownEditorSplitMode} from '../types';\n\nimport {MarkdownHints} from './MarkdownHints';\n\nimport './index.scss';\n\nconst placement: PopupPlacement = ['bottom-end', 'top-end'];\n\nconst bSettings = cn('editor-settings');\nconst bContent = cn('settings-content');\n\nexport type EditorSettingsProps = Omit<SettingsContentProps, 'onClose'> & {\n renderPreviewButton?: boolean;\n settingsVisible?: boolean;\n};\n\nexport const EditorSettings = memo<EditorSettingsProps>(function EditorSettings(props) {\n const {className, onShowPreviewChange, showPreview, renderPreviewButton, settingsVisible} =\n props;\n const [chevronElement, setChevronElement] = useState<HTMLButtonElement | null>(null);\n const [popupShown, , hidePopup, togglePopup] = useBooleanState(false);\n\n return (\n <div className={bSettings(null, [className])}>\n {renderPreviewButton && (\n <>\n <ActionTooltip\n openDelay={ToolbarTooltipDelay.Open}\n closeDelay={ToolbarTooltipDelay.Close}\n title={i18n('preview_hint')}\n hotkey=\"mod+shift+p\"\n >\n <Button\n size=\"m\"\n view=\"flat\"\n pin=\"round-round\"\n className={bSettings('preview-button')}\n onClick={() => onShowPreviewChange?.(!showPreview)}\n selected={showPreview}\n >\n <Icon data={Eye} />\n </Button>\n </ActionTooltip>\n {settingsVisible && <div className={bSettings('separator')} />}\n </>\n )}\n {settingsVisible && (\n <>\n <Button\n size=\"m\"\n view=\"flat\"\n pin=\"round-round\"\n onClick={togglePopup}\n ref={setChevronElement}\n className={bSettings('dropdown-button')}\n >\n <Icon data={Gear} />\n </Button>\n <Popup\n open={popupShown}\n anchorElement={chevronElement}\n placement={placement}\n onOpenChange={hidePopup}\n >\n <SettingsContent\n {...props}\n onClose={hidePopup}\n className={bSettings('content')}\n />\n </Popup>\n </>\n )}\n </div>\n );\n});\n\ntype SettingsContentProps = ClassNameProps & {\n mode: MarkdownEditorMode;\n onClose: () => void;\n onModeChange: (mode: MarkdownEditorMode) => void;\n onShowPreviewChange: (showPreview: boolean) => void;\n showPreview: boolean;\n toolbarVisibility: boolean;\n onToolbarVisibilityChange: (val: boolean) => void;\n splitMode?: MarkdownEditorSplitMode;\n splitModeEnabled?: boolean;\n onSplitModeChange?: (splitModeEnabled: boolean) => void;\n};\n\nconst mdHelpPlacement: PopupPlacement = ['bottom', 'bottom-end', 'right-start', 'right', 'left'];\n\nconst SettingsContent: React.FC<SettingsContentProps> = function SettingsContent({\n mode,\n onClose,\n onModeChange,\n toolbarVisibility,\n onToolbarVisibilityChange,\n onSplitModeChange,\n splitMode = false,\n splitModeEnabled,\n className,\n showPreview,\n}) {\n return (\n <div className={bContent(null, [className])}>\n <Menu size=\"l\" className={bContent('mode')}>\n <Menu.Item\n active={mode === 'wysiwyg'}\n onClick={() => {\n onModeChange('wysiwyg');\n onClose();\n }}\n iconStart={<Icon data={WysiwygModeIcon} />}\n >\n {i18n('settings_wysiwyg')}\n </Menu.Item>\n <Menu.Item\n active={mode === 'markup'}\n onClick={() => {\n onModeChange('markup');\n onClose();\n }}\n iconStart={<Icon data={LogoMarkdown} />}\n >\n {i18n('settings_markup')}\n <HelpMark\n popoverProps={{\n placement: mdHelpPlacement,\n modal: false,\n }}\n className={bContent('mode-help')}\n >\n <div\n onClick={(e) => {\n // stop clicks propagation\n // because otherwise click in MarkdownHints handled as click on MenuItem\n e.stopPropagation();\n }}\n >\n <MarkdownHints />\n </div>\n </HelpMark>\n </Menu.Item>\n </Menu>\n <div className={bContent('separator')} />\n {!showPreview && (\n <div className={bContent('toolbar')}>\n <Checkbox\n size=\"m\"\n checked={toolbarVisibility}\n onUpdate={onToolbarVisibilityChange}\n >\n {i18n('settings_menubar')}\n </Checkbox>\n <div className={bContent('toolbar-hint')}>{i18n('settings_hint')}</div>\n </div>\n )}\n {splitMode && (\n <div className={bContent('split-mode')}>\n <Checkbox\n size=\"m\"\n disabled={mode !== 'markup'}\n checked={splitModeEnabled}\n onUpdate={onSplitModeChange ?? noop}\n >\n {i18n('settings_split-mode')}\n </Checkbox>\n <div className={bContent('toolbar-hint')}>\n {i18n('settings_split-mode-hint')}\n </div>\n </div>\n )}\n <span className={bContent('version')}>{VERSION}</span>\n </div>\n );\n};\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"../../../../src","sources":["bundle/settings/index.tsx"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable jsx-a11y/no-static-element-interactions */\n/* eslint-disable jsx-a11y/click-events-have-key-events */\nimport {memo, useState} from 'react';\n\nimport {Eye, Gear, LogoMarkdown} from '@gravity-ui/icons';\nimport {\n ActionTooltip,\n Button,\n Checkbox,\n HelpMark,\n Icon,\n Menu,\n Popup,\n type PopupPlacement,\n} from '@gravity-ui/uikit';\n\nimport {type ClassNameProps, cn} from '../../classname';\nimport {i18n} from '../../i18n/bundle';\nimport WysiwygModeIcon from '../../icons/WysiwygMode';\nimport {noop} from '../../lodash';\nimport {useBooleanState} from '../../react-utils/hooks';\nimport {ToolbarTooltipDelay} from '../../toolbar';\nimport {VERSION} from '../../version';\nimport type {MarkdownEditorMode, MarkdownEditorSplitMode} from '../types';\n\nimport {MarkdownHints} from './MarkdownHints';\n\nimport './index.scss';\n\nconst placement: PopupPlacement = ['bottom-end', 'top-end'];\n\nconst bSettings = cn('editor-settings');\nconst bContent = cn('settings-content');\n\nexport type EditorSettingsProps = Omit<SettingsContentProps, 'onClose'> & {\n renderPreviewButton?: boolean;\n settingsVisible?: boolean;\n};\n\nexport const EditorSettings = memo<EditorSettingsProps>(function EditorSettings(props) {\n const {className, onShowPreviewChange, showPreview, renderPreviewButton, settingsVisible} =\n props;\n const [chevronElement, setChevronElement] = useState<HTMLButtonElement | null>(null);\n const [popupShown, , hidePopup, togglePopup] = useBooleanState(false);\n\n return (\n <div className={bSettings(null, [className])}>\n {renderPreviewButton && (\n <>\n <ActionTooltip\n openDelay={ToolbarTooltipDelay.Open}\n closeDelay={ToolbarTooltipDelay.Close}\n title={i18n('preview_hint')}\n hotkey=\"mod+shift+p\"\n >\n <Button\n size=\"m\"\n view=\"flat\"\n pin=\"round-round\"\n className={bSettings('preview-button')}\n onClick={() => onShowPreviewChange?.(!showPreview)}\n selected={showPreview}\n >\n <Icon data={Eye} />\n </Button>\n </ActionTooltip>\n {settingsVisible && <div className={bSettings('separator')} />}\n </>\n )}\n {settingsVisible && (\n <>\n <Button\n size=\"m\"\n view=\"flat\"\n pin=\"round-round\"\n onClick={togglePopup}\n ref={setChevronElement}\n qa=\"g-md-settings-button\"\n className={bSettings('dropdown-button')}\n >\n <Icon data={Gear} />\n </Button>\n <Popup\n open={popupShown}\n anchorElement={chevronElement}\n placement={placement}\n onOpenChange={hidePopup}\n >\n <SettingsContent\n {...props}\n onClose={hidePopup}\n className={bSettings('content')}\n />\n </Popup>\n </>\n )}\n </div>\n );\n});\n\ntype SettingsContentProps = ClassNameProps & {\n mode: MarkdownEditorMode;\n onClose: () => void;\n onModeChange: (mode: MarkdownEditorMode) => void;\n onShowPreviewChange: (showPreview: boolean) => void;\n showPreview: boolean;\n toolbarVisibility: boolean;\n onToolbarVisibilityChange: (val: boolean) => void;\n splitMode?: MarkdownEditorSplitMode;\n splitModeEnabled?: boolean;\n onSplitModeChange?: (splitModeEnabled: boolean) => void;\n};\n\nconst mdHelpPlacement: PopupPlacement = ['bottom', 'bottom-end', 'right-start', 'right', 'left'];\n\nconst SettingsContent: React.FC<SettingsContentProps> = function SettingsContent({\n mode,\n onClose,\n onModeChange,\n toolbarVisibility,\n onToolbarVisibilityChange,\n onSplitModeChange,\n splitMode = false,\n splitModeEnabled,\n className,\n showPreview,\n}) {\n return (\n <div className={bContent(null, [className])} data-qa=\"g-md-settings-content\">\n <Menu size=\"l\" className={bContent('mode')}>\n <Menu.Item\n qa=\"md-settings-mode-wysiwyg\"\n active={mode === 'wysiwyg'}\n onClick={() => {\n onModeChange('wysiwyg');\n onClose();\n }}\n iconStart={<Icon data={WysiwygModeIcon} />}\n >\n {i18n('settings_wysiwyg')}\n </Menu.Item>\n <Menu.Item\n qa=\"md-settings-mode-markup\"\n active={mode === 'markup'}\n onClick={() => {\n onModeChange('markup');\n onClose();\n }}\n iconStart={<Icon data={LogoMarkdown} />}\n >\n {i18n('settings_markup')}\n <HelpMark\n popoverProps={{\n placement: mdHelpPlacement,\n modal: false,\n }}\n className={bContent('mode-help')}\n >\n <div\n onClick={(e) => {\n // stop clicks propagation\n // because otherwise click in MarkdownHints handled as click on MenuItem\n e.stopPropagation();\n }}\n >\n <MarkdownHints />\n </div>\n </HelpMark>\n </Menu.Item>\n </Menu>\n <div className={bContent('separator')} />\n {!showPreview && (\n <div className={bContent('toolbar')}>\n <Checkbox\n size=\"m\"\n checked={toolbarVisibility}\n onUpdate={onToolbarVisibilityChange}\n >\n {i18n('settings_menubar')}\n </Checkbox>\n <div className={bContent('toolbar-hint')}>{i18n('settings_hint')}</div>\n </div>\n )}\n {splitMode && (\n <div className={bContent('split-mode')}>\n <Checkbox\n size=\"m\"\n disabled={mode !== 'markup'}\n checked={splitModeEnabled}\n onUpdate={onSplitModeChange ?? noop}\n >\n {i18n('settings_split-mode')}\n </Checkbox>\n <div className={bContent('toolbar-hint')}>\n {i18n('settings_split-mode-hint')}\n </div>\n </div>\n )}\n <span className={bContent('version')}>{VERSION}</span>\n </div>\n );\n};\n"]}
@@ -28,7 +28,10 @@ const transformItem = (type, item, id = 'unknown') => {
28
28
  hotkey: item.view.hotkey,
29
29
  doNotActivateList: item.view.doNotActivateList,
30
30
  ...(isSingleButton && { preview: item.view.preview }),
31
- ...(isListButton && { withArrow: item.view.withArrow }),
31
+ ...(isListButton && {
32
+ withArrow: item.view.withArrow,
33
+ replaceActiveIcon: item.view.replaceActiveIcon,
34
+ }),
32
35
  ...(type === 'wysiwyg' && item.wysiwyg && { ...item.wysiwyg }),
33
36
  ...(type === 'markup' && item.markup && { ...item.markup }),
34
37
  };
@@ -1 +1 @@
1
- {"version":3,"file":"toolbarsConfigs.js","sourceRoot":"../../../../../src","sources":["bundle/toolbar/utils/toolbarsConfigs.ts"],"names":[],"mappings":"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","sourcesContent":["import {ToolbarName} from '../../../modules/toolbars/constants';\nimport {commonmark, defaultPreset, full, yfm, zero} from '../../../modules/toolbars/presets';\nimport type {\n ToolbarItem,\n ToolbarItemMarkup,\n ToolbarItemWysiwyg,\n ToolbarsPreset,\n} from '../../../modules/toolbars/types';\nimport type {MarkdownEditorViewProps} from '../../MarkdownEditorView';\nimport type {MarkdownEditorPreset} from '../../types';\nimport {ToolbarDataType} from '../types';\nimport type {MToolbarData, ToolbarIconData, WToolbarData} from '../types';\n\nimport {flattenPreset} from './flattenPreset';\n\nconst defaultPresets: Record<MarkdownEditorPreset, ToolbarsPreset> = {\n zero,\n commonmark,\n default: defaultPreset,\n yfm,\n full,\n};\n\ninterface TransformedItem {\n type: ToolbarDataType;\n id: string;\n title?: string | (() => string);\n hint?: string | (() => string);\n icon?: ToolbarIconData;\n hotkey?: string;\n withArrow?: boolean;\n doNotActivateList?: boolean;\n preview?: React.ReactNode;\n wysiwyg?: ToolbarItemWysiwyg<ToolbarDataType>;\n markup?: ToolbarItemMarkup<ToolbarDataType>;\n}\n\nconst transformItem = (\n type: 'wysiwyg' | 'markup',\n item?: ToolbarItem<ToolbarDataType.SingleButton | ToolbarDataType.ListButton>,\n id = 'unknown',\n): TransformedItem => {\n if (!item) {\n console.warn(\n `Toolbar item \"${id}\" not found, it might not have been added to the items dictionary.`,\n );\n return {} as TransformedItem;\n }\n\n const isListButton = item.view.type === ToolbarDataType.ListButton;\n const isSingleButton = item.view.type === ToolbarDataType.SingleButton;\n\n return {\n type: item.view.type ?? ToolbarDataType.SingleButton,\n id,\n title: item.view.title,\n hint: item.view.hint,\n icon: item.view.icon,\n hotkey: item.view.hotkey,\n doNotActivateList: item.view.doNotActivateList,\n ...(isSingleButton && {preview: (item.view as any).preview}),\n ...(isListButton && {withArrow: (item.view as any).withArrow}),\n ...(type === 'wysiwyg' && item.wysiwyg && {...item.wysiwyg}),\n ...(type === 'markup' && item.markup && {...item.markup}),\n };\n};\n\nexport const createToolbarConfig = <T extends WToolbarData | MToolbarData>(\n editorType: 'wysiwyg' | 'markup',\n toolbarPreset: ToolbarsPreset | MarkdownEditorPreset,\n toolbarName: string,\n): T => {\n const preset =\n typeof toolbarPreset === 'string'\n ? defaultPresets[toolbarPreset] || defaultPresets.default\n : toolbarPreset;\n const orders = preset.orders[toolbarName] ?? [[]];\n const {items} = preset;\n\n const toolbarData = orders.map((group) =>\n group.map((action) => {\n return typeof action === 'string'\n ? transformItem(editorType, items[action], action)\n : {\n ...transformItem(editorType, items[action.id], action.id),\n data: action.items.map((id) => transformItem(editorType, items[id], id)),\n };\n }),\n );\n\n return toolbarData as T;\n};\n\ninterface GetToolbarsConfigsArgs {\n toolbarsPreset?: ToolbarsPreset;\n props: Pick<\n MarkdownEditorViewProps,\n | 'markupToolbarConfig'\n | 'wysiwygToolbarConfig'\n | 'wysiwygHiddenActionsConfig'\n | 'markupHiddenActionsConfig'\n >;\n preset: MarkdownEditorPreset;\n}\nexport const getToolbarsConfigs = ({toolbarsPreset, props, preset}: GetToolbarsConfigsArgs) => {\n const wysiwygToolbarConfig = toolbarsPreset\n ? createToolbarConfig<WToolbarData>('wysiwyg', toolbarsPreset, ToolbarName.wysiwygMain)\n : props.wysiwygToolbarConfig ??\n createToolbarConfig<WToolbarData>('wysiwyg', preset, ToolbarName.wysiwygMain);\n\n const markupToolbarConfig = toolbarsPreset\n ? createToolbarConfig<MToolbarData>('markup', toolbarsPreset, ToolbarName.markupMain)\n : props.markupToolbarConfig ??\n createToolbarConfig<MToolbarData>('markup', preset, ToolbarName.markupMain);\n\n const wysiwygHiddenActionsConfig = toolbarsPreset\n ? flattenPreset(\n createToolbarConfig<WToolbarData>(\n 'wysiwyg',\n toolbarsPreset,\n ToolbarName.wysiwygHidden,\n ),\n )\n : props.wysiwygHiddenActionsConfig ??\n flattenPreset(\n createToolbarConfig<WToolbarData>('wysiwyg', preset, ToolbarName.wysiwygHidden),\n );\n\n const markupHiddenActionsConfig = toolbarsPreset\n ? flattenPreset(\n createToolbarConfig<MToolbarData>('markup', toolbarsPreset, ToolbarName.markupHidden),\n )\n : props.markupHiddenActionsConfig ??\n flattenPreset(\n createToolbarConfig<MToolbarData>('markup', preset, ToolbarName.markupHidden),\n );\n\n return {\n wysiwygToolbarConfig,\n markupToolbarConfig,\n wysiwygHiddenActionsConfig,\n markupHiddenActionsConfig,\n };\n};\n"]}
1
+ {"version":3,"file":"toolbarsConfigs.js","sourceRoot":"../../../../../src","sources":["bundle/toolbar/utils/toolbarsConfigs.ts"],"names":[],"mappings":"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","sourcesContent":["import {ToolbarName} from '../../../modules/toolbars/constants';\nimport {commonmark, defaultPreset, full, yfm, zero} from '../../../modules/toolbars/presets';\nimport type {\n ToolbarItem,\n ToolbarItemMarkup,\n ToolbarItemWysiwyg,\n ToolbarsPreset,\n} from '../../../modules/toolbars/types';\nimport type {MarkdownEditorViewProps} from '../../MarkdownEditorView';\nimport type {MarkdownEditorPreset} from '../../types';\nimport {ToolbarDataType} from '../types';\nimport type {MToolbarData, ToolbarIconData, WToolbarData} from '../types';\n\nimport {flattenPreset} from './flattenPreset';\n\nconst defaultPresets: Record<MarkdownEditorPreset, ToolbarsPreset> = {\n zero,\n commonmark,\n default: defaultPreset,\n yfm,\n full,\n};\n\ninterface TransformedItem {\n type: ToolbarDataType;\n id: string;\n title?: string | (() => string);\n hint?: string | (() => string);\n icon?: ToolbarIconData;\n hotkey?: string;\n withArrow?: boolean;\n replaceActiveIcon?: true;\n doNotActivateList?: boolean;\n preview?: React.ReactNode;\n wysiwyg?: ToolbarItemWysiwyg<ToolbarDataType>;\n markup?: ToolbarItemMarkup<ToolbarDataType>;\n}\n\nconst transformItem = (\n type: 'wysiwyg' | 'markup',\n item?: ToolbarItem<ToolbarDataType.SingleButton | ToolbarDataType.ListButton>,\n id = 'unknown',\n): TransformedItem => {\n if (!item) {\n console.warn(\n `Toolbar item \"${id}\" not found, it might not have been added to the items dictionary.`,\n );\n return {} as TransformedItem;\n }\n\n const isListButton = item.view.type === ToolbarDataType.ListButton;\n const isSingleButton = item.view.type === ToolbarDataType.SingleButton;\n\n return {\n type: item.view.type ?? ToolbarDataType.SingleButton,\n id,\n title: item.view.title,\n hint: item.view.hint,\n icon: item.view.icon,\n hotkey: item.view.hotkey,\n doNotActivateList: item.view.doNotActivateList,\n ...(isSingleButton && {preview: (item.view as any).preview}),\n ...(isListButton && {\n withArrow: (item.view as any).withArrow,\n replaceActiveIcon: (item.view as any).replaceActiveIcon,\n }),\n ...(type === 'wysiwyg' && item.wysiwyg && {...item.wysiwyg}),\n ...(type === 'markup' && item.markup && {...item.markup}),\n };\n};\n\nexport const createToolbarConfig = <T extends WToolbarData | MToolbarData>(\n editorType: 'wysiwyg' | 'markup',\n toolbarPreset: ToolbarsPreset | MarkdownEditorPreset,\n toolbarName: string,\n): T => {\n const preset =\n typeof toolbarPreset === 'string'\n ? defaultPresets[toolbarPreset] || defaultPresets.default\n : toolbarPreset;\n const orders = preset.orders[toolbarName] ?? [[]];\n const {items} = preset;\n\n const toolbarData = orders.map((group) =>\n group.map((action) => {\n return typeof action === 'string'\n ? transformItem(editorType, items[action], action)\n : {\n ...transformItem(editorType, items[action.id], action.id),\n data: action.items.map((id) => transformItem(editorType, items[id], id)),\n };\n }),\n );\n\n return toolbarData as T;\n};\n\ninterface GetToolbarsConfigsArgs {\n toolbarsPreset?: ToolbarsPreset;\n props: Pick<\n MarkdownEditorViewProps,\n | 'markupToolbarConfig'\n | 'wysiwygToolbarConfig'\n | 'wysiwygHiddenActionsConfig'\n | 'markupHiddenActionsConfig'\n >;\n preset: MarkdownEditorPreset;\n}\nexport const getToolbarsConfigs = ({toolbarsPreset, props, preset}: GetToolbarsConfigsArgs) => {\n const wysiwygToolbarConfig = toolbarsPreset\n ? createToolbarConfig<WToolbarData>('wysiwyg', toolbarsPreset, ToolbarName.wysiwygMain)\n : props.wysiwygToolbarConfig ??\n createToolbarConfig<WToolbarData>('wysiwyg', preset, ToolbarName.wysiwygMain);\n\n const markupToolbarConfig = toolbarsPreset\n ? createToolbarConfig<MToolbarData>('markup', toolbarsPreset, ToolbarName.markupMain)\n : props.markupToolbarConfig ??\n createToolbarConfig<MToolbarData>('markup', preset, ToolbarName.markupMain);\n\n const wysiwygHiddenActionsConfig = toolbarsPreset\n ? flattenPreset(\n createToolbarConfig<WToolbarData>(\n 'wysiwyg',\n toolbarsPreset,\n ToolbarName.wysiwygHidden,\n ),\n )\n : props.wysiwygHiddenActionsConfig ??\n flattenPreset(\n createToolbarConfig<WToolbarData>('wysiwyg', preset, ToolbarName.wysiwygHidden),\n );\n\n const markupHiddenActionsConfig = toolbarsPreset\n ? flattenPreset(\n createToolbarConfig<MToolbarData>('markup', toolbarsPreset, ToolbarName.markupHidden),\n )\n : props.markupHiddenActionsConfig ??\n flattenPreset(\n createToolbarConfig<MToolbarData>('markup', preset, ToolbarName.markupHidden),\n );\n\n return {\n wysiwygToolbarConfig,\n markupToolbarConfig,\n wysiwygHiddenActionsConfig,\n markupHiddenActionsConfig,\n };\n};\n"]}