@gravity-ui/markdown-editor 15.13.2 → 15.14.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.
- package/build/cjs/extensions/yfm/YfmNote/commands.js +8 -5
- package/build/cjs/extensions/yfm/YfmNote/commands.js.map +1 -1
- package/build/cjs/toolbar/ToolbarButton.d.ts +1 -0
- package/build/cjs/toolbar/ToolbarButton.js +2 -2
- package/build/cjs/toolbar/ToolbarButton.js.map +1 -1
- package/build/cjs/version.js +1 -1
- package/build/cjs/version.js.map +1 -1
- package/build/esm/extensions/yfm/YfmNote/commands.js +8 -5
- package/build/esm/extensions/yfm/YfmNote/commands.js.map +1 -1
- package/build/esm/toolbar/ToolbarButton.d.ts +1 -0
- package/build/esm/toolbar/ToolbarButton.js +2 -2
- package/build/esm/toolbar/ToolbarButton.js.map +1 -1
- package/build/esm/version.js +1 -1
- package/build/esm/version.js.map +1 -1
- package/package.json +1 -1
|
@@ -77,7 +77,8 @@ const removeNote = (state, dispatch, view) => {
|
|
|
77
77
|
if (dispatch) {
|
|
78
78
|
const noteTitleNode = $cursor.parent;
|
|
79
79
|
const noteNode = $cursor.node(-1);
|
|
80
|
-
const
|
|
80
|
+
const noteContentNode = noteNode.lastChild;
|
|
81
|
+
const content = prosemirror_model_1.Fragment.from((0, base_1.pType)(schema).create(null, noteTitleNode.content)).append(noteContentNode.content);
|
|
81
82
|
const from = $cursor.before(-1);
|
|
82
83
|
const to = from + noteNode.nodeSize;
|
|
83
84
|
const tr = state.tr.replaceWith(from, to, content);
|
|
@@ -100,16 +101,18 @@ const backToNoteTitle = (state, dispatch, view) => {
|
|
|
100
101
|
if (!$cursor)
|
|
101
102
|
return false;
|
|
102
103
|
if (!(0, schema_1.isSameNodeType)($cursor.parent, (0, base_1.pType)(schema)) ||
|
|
103
|
-
!(0, schema_1.isSameNodeType)($cursor.node(-1), (0, utils_1.
|
|
104
|
+
!(0, schema_1.isSameNodeType)($cursor.node(-1), (0, utils_1.noteContentType)(schema)) ||
|
|
105
|
+
!(0, schema_1.isSameNodeType)($cursor.node(-2), (0, utils_1.noteType)(schema))) {
|
|
104
106
|
return false;
|
|
105
107
|
}
|
|
106
|
-
const noteNode = $cursor.node(-
|
|
107
|
-
|
|
108
|
+
const noteNode = $cursor.node(-2);
|
|
109
|
+
const noteContentNode = $cursor.node(-1);
|
|
110
|
+
if ($cursor.parent !== noteContentNode.firstChild)
|
|
108
111
|
return false;
|
|
109
112
|
if (view?.endOfTextblock('backward', state)) {
|
|
110
113
|
if (dispatch) {
|
|
111
114
|
const noteTitleNode = noteNode.firstChild;
|
|
112
|
-
dispatch(state.tr.setSelection(prosemirror_state_1.TextSelection.create(state.doc, $cursor.before(-
|
|
115
|
+
dispatch(state.tr.setSelection(prosemirror_state_1.TextSelection.create(state.doc, $cursor.before(-2) + noteTitleNode.nodeSize)));
|
|
113
116
|
}
|
|
114
117
|
return true;
|
|
115
118
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commands.js","sourceRoot":"../../../../../src","sources":["extensions/yfm/YfmNote/commands.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"commands.js","sourceRoot":"../../../../../src","sources":["extensions/yfm/YfmNote/commands.ts"],"names":[],"mappings":"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","sourcesContent":["import {Fragment, type Node} from 'prosemirror-model';\nimport type {Command} from 'prosemirror-state';\nimport {TextSelection} from 'prosemirror-state';\n\nimport {findFirstTextblockChild} from '../../../utils/nodes';\nimport {isSameNodeType} from '../../../utils/schema';\nimport {isTextSelection} from '../../../utils/selection';\nimport {pType} from '../../base';\n\nimport {noteContentType, noteTitleType, noteType} from './utils';\n\nexport const exitFromNoteTitle: Command = (state, dispatch) => {\n const {selection, schema} = state;\n if (!isTextSelection(selection)) return false;\n const {$cursor} = selection;\n if (!$cursor) return false;\n if (\n !isSameNodeType($cursor.parent, noteTitleType(schema)) ||\n !isSameNodeType($cursor.node(-1), noteType(schema))\n ) {\n return false;\n }\n\n const noteNode = $cursor.node(-1);\n const noteContentFirstTextblockChild = findFirstTextblockChild(getNoteContent(noteNode));\n if (!noteContentFirstTextblockChild) return false;\n\n const noteContentPos = $cursor.start(-1) + noteNode.firstChild!.nodeSize;\n const targetPos = noteContentPos + noteContentFirstTextblockChild.offset;\n dispatch?.(state.tr.setSelection(TextSelection.create(state.doc, targetPos)));\n return true;\n};\n\nexport const liftEmptyBlockFromNote: Command = (state, dispatch) => {\n const {selection, schema} = state;\n if (!isTextSelection(selection)) return false;\n\n const {$cursor} = selection;\n // cursor should be inside an empty textblock\n if (!$cursor || $cursor.parent.content.size) return false;\n\n if (\n $cursor.depth > 2 && // depth must be at least 3\n isSameNodeType($cursor.node(-1), noteContentType(schema)) &&\n isSameNodeType($cursor.node(-2), noteType(schema)) &&\n $cursor.node(-1).childCount > 1\n ) {\n // current texblock is last child\n if ($cursor.after() === $cursor.end(-1)) {\n if (dispatch) {\n dispatch(state.tr.lift($cursor.blockRange()!, $cursor.depth - 3).scrollIntoView());\n }\n return true;\n }\n }\n return false;\n};\n\nfunction getNoteContent(noteNode: Node): Fragment {\n const noteChildren: Node[] = [];\n noteNode.forEach((node) => noteChildren.push(node));\n // first child node is note title\n return Fragment.from(noteChildren.slice(1));\n}\n\n/**\n * Deletes the note if the cursor is at the beginning of the title.\n * Note will be replaced with his title converted to paragraph and his content.\n */\nexport const removeNote: Command = (state, dispatch, view) => {\n const {selection, schema} = state;\n if (!isTextSelection(selection)) return false;\n const {$cursor} = selection;\n if (!$cursor) return false;\n if (\n !isSameNodeType($cursor.parent, noteTitleType(schema)) ||\n !isSameNodeType($cursor.node(-1), noteType(schema))\n ) {\n return false;\n }\n if (view?.endOfTextblock('backward', state)) {\n if (dispatch) {\n const noteTitleNode = $cursor.parent;\n const noteNode = $cursor.node(-1);\n\n const noteContentNode = noteNode.lastChild!;\n const content = Fragment.from(pType(schema).create(null, noteTitleNode.content)).append(\n noteContentNode.content,\n );\n\n const from = $cursor.before(-1);\n const to = from + noteNode.nodeSize;\n const tr = state.tr.replaceWith(from, to, content);\n dispatch(tr.setSelection(TextSelection.create(tr.doc, from + 1)));\n }\n return true;\n }\n return false;\n};\n\n/**\n * If the cursor is at the beginning of the first paragraph in note's content,\n * moves the cursor to the end of the note's title.\n */\nexport const backToNoteTitle: Command = (state, dispatch, view) => {\n const {selection, schema} = state;\n if (!isTextSelection(selection)) return false;\n const {$cursor} = selection;\n if (!$cursor) return false;\n if (\n !isSameNodeType($cursor.parent, pType(schema)) ||\n !isSameNodeType($cursor.node(-1), noteContentType(schema)) ||\n !isSameNodeType($cursor.node(-2), noteType(schema))\n ) {\n return false;\n }\n\n const noteNode = $cursor.node(-2);\n const noteContentNode = $cursor.node(-1);\n if ($cursor.parent !== noteContentNode.firstChild) return false;\n\n if (view?.endOfTextblock('backward', state)) {\n if (dispatch) {\n const noteTitleNode = noteNode.firstChild!;\n dispatch(\n state.tr.setSelection(\n TextSelection.create(state.doc, $cursor.before(-2) + noteTitleNode.nodeSize),\n ),\n );\n }\n return true;\n }\n return false;\n};\n"]}
|
|
@@ -12,7 +12,7 @@ const const_1 = require("./const.js");
|
|
|
12
12
|
require("./ToolbarButton.css");
|
|
13
13
|
const b = (0, classname_1.cn)('toolbar-button');
|
|
14
14
|
const DEFAULT_ICON_SIZE = 16;
|
|
15
|
-
exports.ToolbarButtonView = (0, react_1.forwardRef)(function ToolbarButtonView({ title, hint, hotkey, hintWhenDisabled, active, enabled, onClick, className, qa, ...props }, ref) {
|
|
15
|
+
exports.ToolbarButtonView = (0, react_1.forwardRef)(function ToolbarButtonView({ title, hint, hotkey, hintWhenDisabled, active, enabled, onClick, className, qa, id, ...props }, ref) {
|
|
16
16
|
const disabled = !active && !enabled;
|
|
17
17
|
const titleText = (0, lodash_1.isFunction)(title) ? title() : title;
|
|
18
18
|
const hintText = (0, lodash_1.isFunction)(hint) ? hint() : hint;
|
|
@@ -26,7 +26,7 @@ exports.ToolbarButtonView = (0, react_1.forwardRef)(function ToolbarButtonView({
|
|
|
26
26
|
(0, uikit_1.setRef)(ref, elem);
|
|
27
27
|
(0, uikit_1.setRef)(refForPopover, elem);
|
|
28
28
|
(0, uikit_1.setRef)(refForTooltip, elem);
|
|
29
|
-
}, selected: active, disabled: disabled, view: active ? 'normal' : 'flat', onClick: onClick, className: b(null, [className]), "aria-label": titleText, children: 'icon' in props ? ((0, jsx_runtime_1.jsx)(uikit_1.Icon, { data: props.icon.data, size: props.icon.size ?? DEFAULT_ICON_SIZE })) : (props.children) })) })) }));
|
|
29
|
+
}, selected: active, disabled: disabled, view: active ? 'normal' : 'flat', onClick: onClick, className: b(null, [className]), "aria-label": titleText, "data-toolbar-item": id, children: 'icon' in props ? ((0, jsx_runtime_1.jsx)(uikit_1.Icon, { data: props.icon.data, size: props.icon.size ?? DEFAULT_ICON_SIZE })) : (props.children) })) })) }));
|
|
30
30
|
});
|
|
31
31
|
function ToolbarButton(props) {
|
|
32
32
|
const { id, editor, focus, isActive, isEnable, exec, onClick } = props;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToolbarButton.js","sourceRoot":"../../../src","sources":["toolbar/ToolbarButton.tsx"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"ToolbarButton.js","sourceRoot":"../../../src","sources":["toolbar/ToolbarButton.tsx"],"names":[],"mappings":"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","sourcesContent":["import {type ReactNode, forwardRef} from 'react';\n\nimport {ActionTooltip, Button, Icon, Popover, setRef} from '@gravity-ui/uikit';\n\nimport {cn} from '../classname';\nimport {i18n} from '../i18n/common';\nimport {isFunction} from '../lodash';\n\nimport {ToolbarTooltipDelay} from './const';\nimport type {ToolbarBaseProps, ToolbarItemData} from './types';\n\nimport './ToolbarButton.scss';\n\nconst b = cn('toolbar-button');\n\nexport type ToolbarButtonProps<E> = ToolbarBaseProps<E> & ToolbarItemData<E>;\n\nexport type ToolbarButtonViewProps = Pick<\n ToolbarItemData<unknown>,\n 'title' | 'hint' | 'hotkey' | 'hintWhenDisabled' | 'qa'\n> & {\n active: boolean;\n enabled: boolean;\n onClick: () => void;\n id?: string;\n className?: string;\n} & (Pick<ToolbarItemData<unknown>, 'icon'> | {children: ReactNode});\n\nconst DEFAULT_ICON_SIZE = 16;\n\nexport const ToolbarButtonView = forwardRef<HTMLButtonElement, ToolbarButtonViewProps>(\n function ToolbarButtonView(\n {\n title,\n hint,\n hotkey,\n hintWhenDisabled,\n active,\n enabled,\n onClick,\n className,\n qa,\n id,\n ...props\n },\n ref,\n ) {\n const disabled = !active && !enabled;\n const titleText: string = isFunction(title) ? title() : title;\n const hintText: string | undefined = isFunction(hint) ? hint() : hint;\n const hideHintWhenDisabled = hintWhenDisabled === false || !disabled;\n const hintWhenDisabledText =\n typeof hintWhenDisabled === 'string'\n ? hintWhenDisabled\n : typeof hintWhenDisabled === 'function'\n ? hintWhenDisabled()\n : i18n('toolbar_action_disabled');\n\n return (\n <Popover\n content={<div className={b('action-disabled-tooltip')}>{hintWhenDisabledText}</div>}\n disabled={hideHintWhenDisabled}\n placement={['bottom']}\n >\n {(_, refForPopover) => (\n <ActionTooltip\n openDelay={ToolbarTooltipDelay.Open}\n closeDelay={ToolbarTooltipDelay.Close}\n description={hintText}\n title={titleText}\n hotkey={hotkey}\n >\n {(__, refForTooltip) => (\n <Button\n qa={qa}\n size=\"m\"\n ref={(elem: HTMLButtonElement) => {\n setRef(ref, elem);\n setRef(refForPopover, elem);\n setRef(refForTooltip, elem);\n }}\n selected={active}\n disabled={disabled}\n view={active ? 'normal' : 'flat'}\n onClick={onClick}\n className={b(null, [className])}\n aria-label={titleText}\n data-toolbar-item={id}\n >\n {'icon' in props ? (\n <Icon\n data={props.icon.data}\n size={props.icon.size ?? DEFAULT_ICON_SIZE}\n />\n ) : (\n props.children\n )}\n </Button>\n )}\n </ActionTooltip>\n )}\n </Popover>\n );\n },\n);\n\nexport function ToolbarButton<E>(props: ToolbarButtonProps<E>) {\n const {id, editor, focus, isActive, isEnable, exec, onClick} = props;\n\n const active = isActive(editor);\n const enabled = isEnable(editor);\n\n const handleClick = () => {\n focus();\n exec(editor);\n onClick?.(id);\n };\n\n return <ToolbarButtonView {...props} active={active} enabled={enabled} onClick={handleClick} />;\n}\n"]}
|
package/build/cjs/version.js
CHANGED
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.VERSION = void 0;
|
|
4
4
|
/** During build process, the current version will be injected here */
|
|
5
|
-
exports.VERSION = typeof '15.
|
|
5
|
+
exports.VERSION = typeof '15.14.0' !== 'undefined' ? '15.14.0' : 'unknown';
|
|
6
6
|
//# sourceMappingURL=version.js.map
|
package/build/cjs/version.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","sourceRoot":"../../src","sources":["version.ts"],"names":[],"mappings":";;;AAAA,sEAAsE;AACzD,QAAA,OAAO,GAAG,OAAO,WAAW,KAAK,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC","sourcesContent":["/** During build process, the current version will be injected here */\nexport const VERSION = typeof '15.
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"../../src","sources":["version.ts"],"names":[],"mappings":";;;AAAA,sEAAsE;AACzD,QAAA,OAAO,GAAG,OAAO,WAAW,KAAK,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC","sourcesContent":["/** During build process, the current version will be injected here */\nexport const VERSION = typeof '15.14.0' !== 'undefined' ? '15.14.0' : 'unknown';\n"]}
|
|
@@ -72,7 +72,8 @@ export const removeNote = (state, dispatch, view) => {
|
|
|
72
72
|
if (dispatch) {
|
|
73
73
|
const noteTitleNode = $cursor.parent;
|
|
74
74
|
const noteNode = $cursor.node(-1);
|
|
75
|
-
const
|
|
75
|
+
const noteContentNode = noteNode.lastChild;
|
|
76
|
+
const content = Fragment.from(pType(schema).create(null, noteTitleNode.content)).append(noteContentNode.content);
|
|
76
77
|
const from = $cursor.before(-1);
|
|
77
78
|
const to = from + noteNode.nodeSize;
|
|
78
79
|
const tr = state.tr.replaceWith(from, to, content);
|
|
@@ -94,16 +95,18 @@ export const backToNoteTitle = (state, dispatch, view) => {
|
|
|
94
95
|
if (!$cursor)
|
|
95
96
|
return false;
|
|
96
97
|
if (!isSameNodeType($cursor.parent, pType(schema)) ||
|
|
97
|
-
!isSameNodeType($cursor.node(-1),
|
|
98
|
+
!isSameNodeType($cursor.node(-1), noteContentType(schema)) ||
|
|
99
|
+
!isSameNodeType($cursor.node(-2), noteType(schema))) {
|
|
98
100
|
return false;
|
|
99
101
|
}
|
|
100
|
-
const noteNode = $cursor.node(-
|
|
101
|
-
|
|
102
|
+
const noteNode = $cursor.node(-2);
|
|
103
|
+
const noteContentNode = $cursor.node(-1);
|
|
104
|
+
if ($cursor.parent !== noteContentNode.firstChild)
|
|
102
105
|
return false;
|
|
103
106
|
if (view?.endOfTextblock('backward', state)) {
|
|
104
107
|
if (dispatch) {
|
|
105
108
|
const noteTitleNode = noteNode.firstChild;
|
|
106
|
-
dispatch(state.tr.setSelection(TextSelection.create(state.doc, $cursor.before(-
|
|
109
|
+
dispatch(state.tr.setSelection(TextSelection.create(state.doc, $cursor.before(-2) + noteTitleNode.nodeSize)));
|
|
107
110
|
}
|
|
108
111
|
return true;
|
|
109
112
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commands.js","sourceRoot":"../../../../../src","sources":["extensions/yfm/YfmNote/commands.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"commands.js","sourceRoot":"../../../../../src","sources":["extensions/yfm/YfmNote/commands.ts"],"names":[],"mappings":"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","sourcesContent":["import {Fragment, type Node} from 'prosemirror-model';\nimport type {Command} from 'prosemirror-state';\nimport {TextSelection} from 'prosemirror-state';\n\nimport {findFirstTextblockChild} from '../../../utils/nodes';\nimport {isSameNodeType} from '../../../utils/schema';\nimport {isTextSelection} from '../../../utils/selection';\nimport {pType} from '../../base';\n\nimport {noteContentType, noteTitleType, noteType} from './utils';\n\nexport const exitFromNoteTitle: Command = (state, dispatch) => {\n const {selection, schema} = state;\n if (!isTextSelection(selection)) return false;\n const {$cursor} = selection;\n if (!$cursor) return false;\n if (\n !isSameNodeType($cursor.parent, noteTitleType(schema)) ||\n !isSameNodeType($cursor.node(-1), noteType(schema))\n ) {\n return false;\n }\n\n const noteNode = $cursor.node(-1);\n const noteContentFirstTextblockChild = findFirstTextblockChild(getNoteContent(noteNode));\n if (!noteContentFirstTextblockChild) return false;\n\n const noteContentPos = $cursor.start(-1) + noteNode.firstChild!.nodeSize;\n const targetPos = noteContentPos + noteContentFirstTextblockChild.offset;\n dispatch?.(state.tr.setSelection(TextSelection.create(state.doc, targetPos)));\n return true;\n};\n\nexport const liftEmptyBlockFromNote: Command = (state, dispatch) => {\n const {selection, schema} = state;\n if (!isTextSelection(selection)) return false;\n\n const {$cursor} = selection;\n // cursor should be inside an empty textblock\n if (!$cursor || $cursor.parent.content.size) return false;\n\n if (\n $cursor.depth > 2 && // depth must be at least 3\n isSameNodeType($cursor.node(-1), noteContentType(schema)) &&\n isSameNodeType($cursor.node(-2), noteType(schema)) &&\n $cursor.node(-1).childCount > 1\n ) {\n // current texblock is last child\n if ($cursor.after() === $cursor.end(-1)) {\n if (dispatch) {\n dispatch(state.tr.lift($cursor.blockRange()!, $cursor.depth - 3).scrollIntoView());\n }\n return true;\n }\n }\n return false;\n};\n\nfunction getNoteContent(noteNode: Node): Fragment {\n const noteChildren: Node[] = [];\n noteNode.forEach((node) => noteChildren.push(node));\n // first child node is note title\n return Fragment.from(noteChildren.slice(1));\n}\n\n/**\n * Deletes the note if the cursor is at the beginning of the title.\n * Note will be replaced with his title converted to paragraph and his content.\n */\nexport const removeNote: Command = (state, dispatch, view) => {\n const {selection, schema} = state;\n if (!isTextSelection(selection)) return false;\n const {$cursor} = selection;\n if (!$cursor) return false;\n if (\n !isSameNodeType($cursor.parent, noteTitleType(schema)) ||\n !isSameNodeType($cursor.node(-1), noteType(schema))\n ) {\n return false;\n }\n if (view?.endOfTextblock('backward', state)) {\n if (dispatch) {\n const noteTitleNode = $cursor.parent;\n const noteNode = $cursor.node(-1);\n\n const noteContentNode = noteNode.lastChild!;\n const content = Fragment.from(pType(schema).create(null, noteTitleNode.content)).append(\n noteContentNode.content,\n );\n\n const from = $cursor.before(-1);\n const to = from + noteNode.nodeSize;\n const tr = state.tr.replaceWith(from, to, content);\n dispatch(tr.setSelection(TextSelection.create(tr.doc, from + 1)));\n }\n return true;\n }\n return false;\n};\n\n/**\n * If the cursor is at the beginning of the first paragraph in note's content,\n * moves the cursor to the end of the note's title.\n */\nexport const backToNoteTitle: Command = (state, dispatch, view) => {\n const {selection, schema} = state;\n if (!isTextSelection(selection)) return false;\n const {$cursor} = selection;\n if (!$cursor) return false;\n if (\n !isSameNodeType($cursor.parent, pType(schema)) ||\n !isSameNodeType($cursor.node(-1), noteContentType(schema)) ||\n !isSameNodeType($cursor.node(-2), noteType(schema))\n ) {\n return false;\n }\n\n const noteNode = $cursor.node(-2);\n const noteContentNode = $cursor.node(-1);\n if ($cursor.parent !== noteContentNode.firstChild) return false;\n\n if (view?.endOfTextblock('backward', state)) {\n if (dispatch) {\n const noteTitleNode = noteNode.firstChild!;\n dispatch(\n state.tr.setSelection(\n TextSelection.create(state.doc, $cursor.before(-2) + noteTitleNode.nodeSize),\n ),\n );\n }\n return true;\n }\n return false;\n};\n"]}
|
|
@@ -8,7 +8,7 @@ import { ToolbarTooltipDelay } from "./const.js";
|
|
|
8
8
|
import "./ToolbarButton.css";
|
|
9
9
|
const b = cn('toolbar-button');
|
|
10
10
|
const DEFAULT_ICON_SIZE = 16;
|
|
11
|
-
export const ToolbarButtonView = forwardRef(function ToolbarButtonView({ title, hint, hotkey, hintWhenDisabled, active, enabled, onClick, className, qa, ...props }, ref) {
|
|
11
|
+
export const ToolbarButtonView = forwardRef(function ToolbarButtonView({ title, hint, hotkey, hintWhenDisabled, active, enabled, onClick, className, qa, id, ...props }, ref) {
|
|
12
12
|
const disabled = !active && !enabled;
|
|
13
13
|
const titleText = isFunction(title) ? title() : title;
|
|
14
14
|
const hintText = isFunction(hint) ? hint() : hint;
|
|
@@ -22,7 +22,7 @@ export const ToolbarButtonView = forwardRef(function ToolbarButtonView({ title,
|
|
|
22
22
|
setRef(ref, elem);
|
|
23
23
|
setRef(refForPopover, elem);
|
|
24
24
|
setRef(refForTooltip, elem);
|
|
25
|
-
}, selected: active, disabled: disabled, view: active ? 'normal' : 'flat', onClick: onClick, className: b(null, [className]), "aria-label": titleText, children: 'icon' in props ? (_jsx(Icon, { data: props.icon.data, size: props.icon.size ?? DEFAULT_ICON_SIZE })) : (props.children) })) })) }));
|
|
25
|
+
}, selected: active, disabled: disabled, view: active ? 'normal' : 'flat', onClick: onClick, className: b(null, [className]), "aria-label": titleText, "data-toolbar-item": id, children: 'icon' in props ? (_jsx(Icon, { data: props.icon.data, size: props.icon.size ?? DEFAULT_ICON_SIZE })) : (props.children) })) })) }));
|
|
26
26
|
});
|
|
27
27
|
export function ToolbarButton(props) {
|
|
28
28
|
const { id, editor, focus, isActive, isEnable, exec, onClick } = props;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToolbarButton.js","sourceRoot":"../../../src","sources":["toolbar/ToolbarButton.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAiB,UAAU,EAAC,MAAM,OAAO,CAAC;AAEjD,OAAO,EAAC,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAC,MAAM,mBAAmB,CAAC;AAE/E,OAAO,EAAC,EAAE,EAAC,wBAAqB;AAChC,OAAO,EAAC,IAAI,EAAC,gCAAuB;AACpC,OAAO,EAAC,UAAU,EAAC,qBAAkB;AAErC,OAAO,EAAC,mBAAmB,EAAC,mBAAgB;AAG5C,6BAA8B;AAE9B,MAAM,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"ToolbarButton.js","sourceRoot":"../../../src","sources":["toolbar/ToolbarButton.tsx"],"names":[],"mappings":"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","sourcesContent":["import {type ReactNode, forwardRef} from 'react';\n\nimport {ActionTooltip, Button, Icon, Popover, setRef} from '@gravity-ui/uikit';\n\nimport {cn} from '../classname';\nimport {i18n} from '../i18n/common';\nimport {isFunction} from '../lodash';\n\nimport {ToolbarTooltipDelay} from './const';\nimport type {ToolbarBaseProps, ToolbarItemData} from './types';\n\nimport './ToolbarButton.scss';\n\nconst b = cn('toolbar-button');\n\nexport type ToolbarButtonProps<E> = ToolbarBaseProps<E> & ToolbarItemData<E>;\n\nexport type ToolbarButtonViewProps = Pick<\n ToolbarItemData<unknown>,\n 'title' | 'hint' | 'hotkey' | 'hintWhenDisabled' | 'qa'\n> & {\n active: boolean;\n enabled: boolean;\n onClick: () => void;\n id?: string;\n className?: string;\n} & (Pick<ToolbarItemData<unknown>, 'icon'> | {children: ReactNode});\n\nconst DEFAULT_ICON_SIZE = 16;\n\nexport const ToolbarButtonView = forwardRef<HTMLButtonElement, ToolbarButtonViewProps>(\n function ToolbarButtonView(\n {\n title,\n hint,\n hotkey,\n hintWhenDisabled,\n active,\n enabled,\n onClick,\n className,\n qa,\n id,\n ...props\n },\n ref,\n ) {\n const disabled = !active && !enabled;\n const titleText: string = isFunction(title) ? title() : title;\n const hintText: string | undefined = isFunction(hint) ? hint() : hint;\n const hideHintWhenDisabled = hintWhenDisabled === false || !disabled;\n const hintWhenDisabledText =\n typeof hintWhenDisabled === 'string'\n ? hintWhenDisabled\n : typeof hintWhenDisabled === 'function'\n ? hintWhenDisabled()\n : i18n('toolbar_action_disabled');\n\n return (\n <Popover\n content={<div className={b('action-disabled-tooltip')}>{hintWhenDisabledText}</div>}\n disabled={hideHintWhenDisabled}\n placement={['bottom']}\n >\n {(_, refForPopover) => (\n <ActionTooltip\n openDelay={ToolbarTooltipDelay.Open}\n closeDelay={ToolbarTooltipDelay.Close}\n description={hintText}\n title={titleText}\n hotkey={hotkey}\n >\n {(__, refForTooltip) => (\n <Button\n qa={qa}\n size=\"m\"\n ref={(elem: HTMLButtonElement) => {\n setRef(ref, elem);\n setRef(refForPopover, elem);\n setRef(refForTooltip, elem);\n }}\n selected={active}\n disabled={disabled}\n view={active ? 'normal' : 'flat'}\n onClick={onClick}\n className={b(null, [className])}\n aria-label={titleText}\n data-toolbar-item={id}\n >\n {'icon' in props ? (\n <Icon\n data={props.icon.data}\n size={props.icon.size ?? DEFAULT_ICON_SIZE}\n />\n ) : (\n props.children\n )}\n </Button>\n )}\n </ActionTooltip>\n )}\n </Popover>\n );\n },\n);\n\nexport function ToolbarButton<E>(props: ToolbarButtonProps<E>) {\n const {id, editor, focus, isActive, isEnable, exec, onClick} = props;\n\n const active = isActive(editor);\n const enabled = isEnable(editor);\n\n const handleClick = () => {\n focus();\n exec(editor);\n onClick?.(id);\n };\n\n return <ToolbarButtonView {...props} active={active} enabled={enabled} onClick={handleClick} />;\n}\n"]}
|
package/build/esm/version.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
/** During build process, the current version will be injected here */
|
|
2
|
-
export const VERSION = typeof '15.
|
|
2
|
+
export const VERSION = typeof '15.14.0' !== 'undefined' ? '15.14.0' : 'unknown';
|
|
3
3
|
//# sourceMappingURL=version.js.map
|
package/build/esm/version.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","sourceRoot":"../../src","sources":["version.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,WAAW,KAAK,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC","sourcesContent":["/** During build process, the current version will be injected here */\nexport const VERSION = typeof '15.
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"../../src","sources":["version.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,WAAW,KAAK,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC","sourcesContent":["/** During build process, the current version will be injected here */\nexport const VERSION = typeof '15.14.0' !== 'undefined' ? '15.14.0' : 'unknown';\n"]}
|