@gravity-ui/markdown-editor 15.14.1 → 15.15.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/bundle/toolbar/ToolbarButtonWithPopupMenu.d.ts +1 -0
- package/build/cjs/bundle/toolbar/ToolbarButtonWithPopupMenu.js +2 -2
- package/build/cjs/bundle/toolbar/ToolbarButtonWithPopupMenu.js.map +1 -1
- package/build/cjs/bundle/toolbar/ToolbarSelect.js +2 -2
- package/build/cjs/bundle/toolbar/ToolbarSelect.js.map +1 -1
- package/build/cjs/bundle/toolbar/custom/ToolbarColors.js +1 -1
- package/build/cjs/bundle/toolbar/custom/ToolbarColors.js.map +1 -1
- package/build/cjs/bundle/toolbar/wysiwyg/WToolbarTextSelect.js +1 -1
- package/build/cjs/bundle/toolbar/wysiwyg/WToolbarTextSelect.js.map +1 -1
- package/build/cjs/extensions/markdown/Link/paste-plugin.js +8 -2
- package/build/cjs/extensions/markdown/Link/paste-plugin.js.map +1 -1
- package/build/cjs/extensions/yfm/ImgSize/plugins/ImgSizeNodeView/ImgSettingsButton.js +1 -1
- package/build/cjs/extensions/yfm/ImgSize/plugins/ImgSizeNodeView/ImgSettingsButton.js.map +1 -1
- package/build/cjs/extensions/yfm/ImgSize/plugins/ImgSizeNodeView/NodeView.js +1 -1
- package/build/cjs/extensions/yfm/ImgSize/plugins/ImgSizeNodeView/NodeView.js.map +1 -1
- package/build/cjs/extensions/yfm/YfmNote/YfmNoteSpecs/index.js +2 -1
- package/build/cjs/extensions/yfm/YfmNote/YfmNoteSpecs/index.js.map +1 -1
- package/build/cjs/extensions/yfm/YfmNote/plugins/YfmNoteTooltipPlugin/index.js +1 -1
- package/build/cjs/extensions/yfm/YfmNote/plugins/YfmNoteTooltipPlugin/index.js.map +1 -1
- package/build/cjs/extensions/yfm/YfmTable/YfmTableSpecs/index.d.ts +2 -1
- package/build/cjs/extensions/yfm/YfmTable/YfmTableSpecs/index.js +12 -1
- package/build/cjs/extensions/yfm/YfmTable/YfmTableSpecs/index.js.map +1 -1
- package/build/cjs/forms/TextInput.js +1 -1
- package/build/cjs/forms/TextInput.js.map +1 -1
- package/build/cjs/toolbar/ToolbarGroup.js +1 -1
- package/build/cjs/toolbar/ToolbarGroup.js.map +1 -1
- package/build/cjs/toolbar/ToolbarListButton.js +2 -1
- package/build/cjs/toolbar/ToolbarListButton.js.map +1 -1
- package/build/cjs/version.js +1 -1
- package/build/cjs/version.js.map +1 -1
- package/build/cjs/view/hooks/useYfmShowElemWithId/useYfmShowElemWithId.js +1 -1
- package/build/cjs/view/hooks/useYfmShowElemWithId/useYfmShowElemWithId.js.map +1 -1
- package/build/esm/bundle/toolbar/ToolbarButtonWithPopupMenu.d.ts +1 -0
- package/build/esm/bundle/toolbar/ToolbarButtonWithPopupMenu.js +2 -2
- package/build/esm/bundle/toolbar/ToolbarButtonWithPopupMenu.js.map +1 -1
- package/build/esm/bundle/toolbar/ToolbarSelect.js +2 -2
- package/build/esm/bundle/toolbar/ToolbarSelect.js.map +1 -1
- package/build/esm/bundle/toolbar/custom/ToolbarColors.js +1 -1
- package/build/esm/bundle/toolbar/custom/ToolbarColors.js.map +1 -1
- package/build/esm/bundle/toolbar/wysiwyg/WToolbarTextSelect.js +1 -1
- package/build/esm/bundle/toolbar/wysiwyg/WToolbarTextSelect.js.map +1 -1
- package/build/esm/extensions/markdown/Link/paste-plugin.js +8 -2
- package/build/esm/extensions/markdown/Link/paste-plugin.js.map +1 -1
- package/build/esm/extensions/yfm/ImgSize/plugins/ImgSizeNodeView/ImgSettingsButton.js +1 -1
- package/build/esm/extensions/yfm/ImgSize/plugins/ImgSizeNodeView/ImgSettingsButton.js.map +1 -1
- package/build/esm/extensions/yfm/ImgSize/plugins/ImgSizeNodeView/NodeView.js +1 -1
- package/build/esm/extensions/yfm/ImgSize/plugins/ImgSizeNodeView/NodeView.js.map +1 -1
- package/build/esm/extensions/yfm/YfmNote/YfmNoteSpecs/index.js +2 -1
- package/build/esm/extensions/yfm/YfmNote/YfmNoteSpecs/index.js.map +1 -1
- package/build/esm/extensions/yfm/YfmNote/plugins/YfmNoteTooltipPlugin/index.js +1 -1
- package/build/esm/extensions/yfm/YfmNote/plugins/YfmNoteTooltipPlugin/index.js.map +1 -1
- package/build/esm/extensions/yfm/YfmTable/YfmTableSpecs/index.d.ts +2 -1
- package/build/esm/extensions/yfm/YfmTable/YfmTableSpecs/index.js +12 -1
- package/build/esm/extensions/yfm/YfmTable/YfmTableSpecs/index.js.map +1 -1
- package/build/esm/forms/TextInput.js +1 -1
- package/build/esm/forms/TextInput.js.map +1 -1
- package/build/esm/toolbar/ToolbarGroup.js +1 -1
- package/build/esm/toolbar/ToolbarGroup.js.map +1 -1
- package/build/esm/toolbar/ToolbarListButton.js +2 -1
- package/build/esm/toolbar/ToolbarListButton.js.map +1 -1
- package/build/esm/version.js +1 -1
- package/build/esm/version.js.map +1 -1
- package/build/esm/view/hooks/useYfmShowElemWithId/useYfmShowElemWithId.js +1 -1
- package/build/esm/view/hooks/useYfmShowElemWithId/useYfmShowElemWithId.js.map +1 -1
- package/package.json +2 -2
|
@@ -20,5 +20,6 @@ export type ToolbarButtonWithPopupMenuProps = Omit<ToolbarBaseProps<never> & Pic
|
|
|
20
20
|
menuItems: MenuItem[];
|
|
21
21
|
/** @default 'classic' */
|
|
22
22
|
_selectionType?: 'classic' | 'light';
|
|
23
|
+
qaMenu?: string;
|
|
23
24
|
}, 'editor'>;
|
|
24
25
|
export declare const ToolbarButtonWithPopupMenu: React.FC<ToolbarButtonWithPopupMenuProps>;
|
|
@@ -11,7 +11,7 @@ const hooks_1 = require("../../react-utils/hooks.js");
|
|
|
11
11
|
const toolbar_1 = require("../../toolbar/index.js");
|
|
12
12
|
require("./ToolbarButtonWithPopupMenu.css");
|
|
13
13
|
const b = (0, classname_1.cn)('toolbar-button-with-popup-menu');
|
|
14
|
-
const ToolbarButtonWithPopupMenu = ({ disablePortal, className, focus, onClick, icon, iconClassName, chevronIconClassName, title, menuItems, _selectionType, qa, ...props }) => {
|
|
14
|
+
const ToolbarButtonWithPopupMenu = ({ disablePortal, className, focus, onClick, icon, iconClassName, chevronIconClassName, title, menuItems, _selectionType, qa, qaMenu, ...props }) => {
|
|
15
15
|
const [anchorElement, setAnchorElement] = (0, hooks_1.useElementState)();
|
|
16
16
|
const [open, , hide, toggleOpen] = (0, hooks_1.useBooleanState)(false);
|
|
17
17
|
const groups = (0, react_1.useMemo)(() => (0, lodash_1.groupBy)(menuItems.map((i) => ({ ...i, group: i.group || '' })), 'group'), [menuItems]);
|
|
@@ -34,7 +34,7 @@ const ToolbarButtonWithPopupMenu = ({ disablePortal, className, focus, onClick,
|
|
|
34
34
|
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(uikit_1.ActionTooltip, { disabled: popupOpen, openDelay: toolbar_1.ToolbarTooltipDelay.Open, closeDelay: toolbar_1.ToolbarTooltipDelay.Close, title: textTitle, children: (0, jsx_runtime_1.jsxs)(uikit_1.Button, { size: "m", ref: setAnchorElement, view: btnView, selected: btnSelected, disabled: everyDisabled, className: b(null, [className]), onClick: toggleOpen, "aria-label": textTitle, qa: qa, ...props, children: [(0, jsx_runtime_1.jsx)(uikit_1.Icon, { data: icon.data, size: icon.size, className: iconClassName }), '', (0, jsx_runtime_1.jsx)(uikit_1.Icon, { data: icons_1.ChevronDown, className: chevronIconClassName })] }) }), (0, jsx_runtime_1.jsx)(uikit_1.Popup, { open: popupOpen, disablePortal: disablePortal, anchorElement: anchorElement, onOpenChange: (open) => {
|
|
35
35
|
if (!open)
|
|
36
36
|
hide();
|
|
37
|
-
}, children: (0, jsx_runtime_1.jsx)(uikit_1.Menu, { size: "l", children: Object.entries(groups).map(([label, items], key) => {
|
|
37
|
+
}, children: (0, jsx_runtime_1.jsx)(uikit_1.Menu, { size: "l", qa: qaMenu, "data-toolbar-menu-for": textTitle, children: Object.entries(groups).map(([label, items], key) => {
|
|
38
38
|
return ((0, jsx_runtime_1.jsx)(uikit_1.Menu.Group, { label: label, className: b('menu-group'), children: items.map(({ id, icon, iconSize = 16, action, text, iconClassname }) => ((0, jsx_runtime_1.jsx)(uikit_1.Menu.Item, { iconStart: (0, jsx_runtime_1.jsx)(uikit_1.Icon, { data: icon, size: iconSize, className: iconClassname }), active: action.isActive(), disabled: !action.isEnable(), onClick: () => {
|
|
39
39
|
hide();
|
|
40
40
|
focus();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToolbarButtonWithPopupMenu.js","sourceRoot":"../../../../src","sources":["bundle/toolbar/ToolbarButtonWithPopupMenu.tsx"],"names":[],"mappings":";;;;AAAA,iCAAyC;AAEzC,6CAA8C;AAC9C,6CAQ2B;AAE3B,kDAAmC;AAEnC,4CAAiD;AACjD,sDAAyE;AACzE,oDAA+F;AAE/F,4CAA2C;AAC3C,MAAM,CAAC,GAAG,IAAA,cAAE,EAAC,gCAAgC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"ToolbarButtonWithPopupMenu.js","sourceRoot":"../../../../src","sources":["bundle/toolbar/ToolbarButtonWithPopupMenu.tsx"],"names":[],"mappings":";;;;AAAA,iCAAyC;AAEzC,6CAA8C;AAC9C,6CAQ2B;AAE3B,kDAAmC;AAEnC,4CAAiD;AACjD,sDAAyE;AACzE,oDAA+F;AAE/F,4CAA2C;AAC3C,MAAM,CAAC,GAAG,IAAA,cAAE,EAAC,gCAAgC,CAAC,CAAC;AA4BxC,MAAM,0BAA0B,GAA8C,CAAC,EAClF,aAAa,EACb,SAAS,EACT,KAAK,EACL,OAAO,EACP,IAAI,EACJ,aAAa,EACb,oBAAoB,EACpB,KAAK,EACL,SAAS,EACT,cAAc,EACd,EAAE,EACF,MAAM,EACN,GAAG,KAAK,EACX,EAAE,EAAE;IACD,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,IAAA,uBAAe,GAAE,CAAC;IAC5D,MAAM,CAAC,IAAI,EAAE,AAAD,EAAG,IAAI,EAAE,UAAU,CAAC,GAAG,IAAA,uBAAe,EAAC,KAAK,CAAC,CAAC;IAC1D,MAAM,MAAM,GAAG,IAAA,eAAO,EAClB,GAAG,EAAE,CACD,IAAA,gBAAO,EACH,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,EAAC,CAAC,CAAC,EACpD,OAAO,CACV,EACL,CAAC,SAAS,CAAC,CACd,CAAC;IAEF,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,CAC7B,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,IAAI,CAClE,CAAC;IACF,MAAM,aAAa,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,KAAK,CAAC,CAAC;IAElF,MAAM,SAAS,GAAG,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IAC/C,MAAM,eAAe,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC;IAC3C,IAAA,iBAAS,EAAC,GAAG,EAAE;QACX,IAAI,eAAe,EAAE,CAAC;YAClB,IAAI,EAAE,CAAC;QACX,CAAC;IACL,CAAC,EAAE,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC;IAE5B,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,GACxB,cAAc,KAAK,OAAO;QACtB,CAAC,CAAE;YACG,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM;YAC1D,SAAS,IAAI,UAAU;SAChB;QACb,CAAC,CAAE,CAAC,UAAU,IAAI,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,UAAU,CAAW,CAAC;IAE/E,MAAM,SAAS,GAAG,IAAA,mBAAU,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;IAEtD,OAAO,CACH,6DACI,uBAAC,qBAAa,IACV,QAAQ,EAAE,SAAS,EACnB,SAAS,EAAE,6BAAmB,CAAC,IAAI,EACnC,UAAU,EAAE,6BAAmB,CAAC,KAAK,EACrC,KAAK,EAAE,SAAS,YAEhB,wBAAC,cAAM,IACH,IAAI,EAAC,GAAG,EACR,GAAG,EAAE,gBAAgB,EACrB,IAAI,EAAE,OAAO,EACb,QAAQ,EAAE,WAAW,EACrB,QAAQ,EAAE,aAAa,EACvB,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC,EAC/B,OAAO,EAAE,UAAU,gBACP,SAAS,EACrB,EAAE,EAAE,EAAE,KACF,KAAK,aAET,uBAAC,YAAI,IAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,aAAa,GAAI,EACnE,EAAE,EACH,uBAAC,YAAI,IAAC,IAAI,EAAE,mBAAW,EAAE,SAAS,EAAE,oBAAoB,GAAI,IACvD,GACG,EAChB,uBAAC,aAAK,IACF,IAAI,EAAE,SAAS,EACf,aAAa,EAAE,aAAa,EAC5B,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE;oBACnB,IAAI,CAAC,IAAI;wBAAE,IAAI,EAAE,CAAC;gBACtB,CAAC,YAED,uBAAC,YAAI,IAAC,IAAI,EAAC,GAAG,EAAC,EAAE,EAAE,MAAM,2BAAyB,SAAS,YACtD,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE;wBAChD,OAAO,CACH,uBAAC,YAAI,CAAC,KAAK,IAAC,KAAK,EAAE,KAAK,EAAY,SAAS,EAAE,CAAC,CAAC,YAAY,CAAC,YACzD,KAAK,CAAC,GAAG,CACN,CAAC,EAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,GAAG,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAC,EAAE,EAAE,CAAC,CACxD,uBAAC,YAAI,CAAC,IAAI,IAEN,SAAS,EACL,uBAAC,YAAI,IACD,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,QAAQ,EACd,SAAS,EAAE,aAAa,GAC1B,EAEN,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE,EACzB,QAAQ,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,EAC5B,OAAO,EAAE,GAAG,EAAE;oCACV,IAAI,EAAE,CAAC;oCACP,KAAK,EAAE,CAAC;oCACR,MAAM,CAAC,GAAG,EAAE,CAAC;oCACb,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;gCAClB,CAAC,EACD,UAAU,EAAE,EAAC,YAAY,EAAE,IAAI,EAAC,YAE/B,IAAI,IAlBA,EAAE,CAmBC,CACf,CACJ,IAzB0B,GAAG,CA0BrB,CAChB,CAAC;oBACN,CAAC,CAAC,GACC,GACH,IACT,CACN,CAAC;AACN,CAAC,CAAC;AAtHW,QAAA,0BAA0B,8BAsHrC","sourcesContent":["import {useEffect, useMemo} from 'react';\n\nimport {ChevronDown} from '@gravity-ui/icons';\nimport {\n ActionTooltip,\n Button,\n Icon,\n type IconProps,\n Menu,\n Popup,\n type PopupProps,\n} from '@gravity-ui/uikit';\n\nimport {cn} from '../../classname';\nimport type {Action} from '../../core';\nimport {groupBy, isFunction} from '../../lodash';\nimport {useBooleanState, useElementState} from '../../react-utils/hooks';\nimport {type ToolbarBaseProps, type ToolbarIconData, ToolbarTooltipDelay} from '../../toolbar';\n\nimport './ToolbarButtonWithPopupMenu.scss';\nconst b = cn('toolbar-button-with-popup-menu');\n\nexport type MenuItem = {\n id: string;\n action: Action;\n icon: IconProps['data'];\n text: string;\n iconSize?: IconProps['size'];\n iconClassname?: string;\n group?: string;\n ignoreActive?: boolean;\n};\n\nexport type ToolbarButtonWithPopupMenuProps = Omit<\n ToolbarBaseProps<never> &\n Pick<PopupProps, 'disablePortal'> & {\n icon: ToolbarIconData;\n iconClassName?: string;\n chevronIconClassName?: string;\n title: string | (() => string);\n menuItems: MenuItem[];\n /** @default 'classic' */\n _selectionType?: 'classic' | 'light';\n qaMenu?: string;\n },\n 'editor'\n>;\n\nexport const ToolbarButtonWithPopupMenu: React.FC<ToolbarButtonWithPopupMenuProps> = ({\n disablePortal,\n className,\n focus,\n onClick,\n icon,\n iconClassName,\n chevronIconClassName,\n title,\n menuItems,\n _selectionType,\n qa,\n qaMenu,\n ...props\n}) => {\n const [anchorElement, setAnchorElement] = useElementState();\n const [open, , hide, toggleOpen] = useBooleanState(false);\n const groups = useMemo(\n () =>\n groupBy(\n menuItems.map((i) => ({...i, group: i.group || ''})),\n 'group',\n ),\n [menuItems],\n );\n\n const someActive = menuItems.some(\n (item) => !item.ignoreActive && item.action.isActive() === true,\n );\n const everyDisabled = menuItems.every((item) => item.action.isEnable() === false);\n\n const popupOpen = everyDisabled ? false : open;\n const shouldForceHide = open && !popupOpen;\n useEffect(() => {\n if (shouldForceHide) {\n hide();\n }\n }, [hide, shouldForceHide]);\n\n const [btnView, btnSelected] =\n _selectionType === 'light'\n ? ([\n popupOpen ? 'normal' : someActive ? 'flat-action' : 'flat',\n popupOpen && someActive,\n ] as const)\n : ([someActive || popupOpen ? 'normal' : 'flat', someActive] as const);\n\n const textTitle = isFunction(title) ? title() : title;\n\n return (\n <>\n <ActionTooltip\n disabled={popupOpen}\n openDelay={ToolbarTooltipDelay.Open}\n closeDelay={ToolbarTooltipDelay.Close}\n title={textTitle}\n >\n <Button\n size=\"m\"\n ref={setAnchorElement}\n view={btnView}\n selected={btnSelected}\n disabled={everyDisabled}\n className={b(null, [className])}\n onClick={toggleOpen}\n aria-label={textTitle}\n qa={qa}\n {...props}\n >\n <Icon data={icon.data} size={icon.size} className={iconClassName} />\n {''}\n <Icon data={ChevronDown} className={chevronIconClassName} />\n </Button>\n </ActionTooltip>\n <Popup\n open={popupOpen}\n disablePortal={disablePortal}\n anchorElement={anchorElement}\n onOpenChange={(open) => {\n if (!open) hide();\n }}\n >\n <Menu size=\"l\" qa={qaMenu} data-toolbar-menu-for={textTitle}>\n {Object.entries(groups).map(([label, items], key) => {\n return (\n <Menu.Group label={label} key={key} className={b('menu-group')}>\n {items.map(\n ({id, icon, iconSize = 16, action, text, iconClassname}) => (\n <Menu.Item\n key={id}\n iconStart={\n <Icon\n data={icon}\n size={iconSize}\n className={iconClassname}\n />\n }\n active={action.isActive()}\n disabled={!action.isEnable()}\n onClick={() => {\n hide();\n focus();\n action.run();\n onClick?.(id);\n }}\n extraProps={{'aria-label': text}}\n >\n {text}\n </Menu.Item>\n ),\n )}\n </Menu.Group>\n );\n })}\n </Menu>\n </Popup>\n </>\n );\n};\n"]}
|
|
@@ -8,9 +8,9 @@ const lodash_1 = require("../../lodash.js");
|
|
|
8
8
|
const PreviewTooltip_1 = require("../../toolbar/PreviewTooltip.js");
|
|
9
9
|
require("./ToolbarSelect.css");
|
|
10
10
|
const b = (0, classname_1.cn)('toolbar-select');
|
|
11
|
-
const ToolbarSelect = ({ disablePortal, className, editor, focus, onClick, items, }) => {
|
|
11
|
+
const ToolbarSelect = ({ disablePortal, className, editor, focus, onClick, items, qa, }) => {
|
|
12
12
|
const activeItem = items.find((item) => item.isActive(editor));
|
|
13
|
-
return ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: (0, jsx_runtime_1.jsx)(uikit_1.Select, { size: "m", view: "clear", className: className, disablePortal: disablePortal, onOpenChange: focus, value: activeItem ? [activeItem.id] : undefined, options: items.map((item) => ({
|
|
13
|
+
return ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: (0, jsx_runtime_1.jsx)(uikit_1.Select, { qa: qa, size: "m", view: "clear", className: className, disablePortal: disablePortal, onOpenChange: focus, value: activeItem ? [activeItem.id] : undefined, options: items.map((item) => ({
|
|
14
14
|
data: item,
|
|
15
15
|
value: item.id,
|
|
16
16
|
text: (0, lodash_1.isFunction)(item.title) ? item.title() : item.title,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToolbarSelect.js","sourceRoot":"../../../../src","sources":["bundle/toolbar/ToolbarSelect.tsx"],"names":[],"mappings":";;;;AAAA,6CAO2B;AAE3B,kDAAmC;AACnC,4CAAwC;AACxC,oEAA4D;AAI5D,+BAA8B;AAE9B,MAAM,CAAC,GAAG,IAAA,cAAE,EAAC,gBAAgB,CAAC,CAAC;AAOxB,MAAM,aAAa,GAAiC,CAAC,EACxD,aAAa,EACb,SAAS,EACT,MAAM,EACN,KAAK,EACL,OAAO,EACP,KAAK,
|
|
1
|
+
{"version":3,"file":"ToolbarSelect.js","sourceRoot":"../../../../src","sources":["bundle/toolbar/ToolbarSelect.tsx"],"names":[],"mappings":";;;;AAAA,6CAO2B;AAE3B,kDAAmC;AACnC,4CAAwC;AACxC,oEAA4D;AAI5D,+BAA8B;AAE9B,MAAM,CAAC,GAAG,IAAA,cAAE,EAAC,gBAAgB,CAAC,CAAC;AAOxB,MAAM,aAAa,GAAiC,CAAC,EACxD,aAAa,EACb,SAAS,EACT,MAAM,EACN,KAAK,EACL,OAAO,EACP,KAAK,EACL,EAAE,GACL,EAAE,EAAE;IACD,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IAE/D,OAAO,CACH,2DACI,uBAAC,cAAM,IACH,EAAE,EAAE,EAAE,EACN,IAAI,EAAC,GAAG,EACR,IAAI,EAAC,OAAO,EACZ,SAAS,EAAE,SAAS,EACpB,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,KAAK,EACnB,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,EAC/C,OAAO,EAAE,KAAK,CAAC,GAAG,CAAe,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBACxC,IAAI,EAAE,IAAI;gBACV,KAAK,EAAE,IAAI,CAAC,EAAE;gBACd,IAAI,EAAE,IAAA,mBAAU,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK;aAC3D,CAAC,CAAC,EACH,YAAY,EAAE,CAAC,EAAC,IAAI,EAAE,IAAI,EAAC,EAAE,EAAE;gBAC3B,MAAM,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAC,GAAG,IAAwB,CAAC;gBAC/D,MAAM,QAAQ,GAAG,IAAA,mBAAU,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;gBAClD,OAAO,CACH,uBAAC,+BAAc,IAAC,OAAO,EAAE,OAAO,YAC5B,+CAAiB,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,aACvC,gCAAK,SAAS,EAAE,CAAC,CAAC,WAAW,CAAC,YAC1B,uBAAC,YAAI,IAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,GAAG,CAAC,GAAI,GAC1D,EACN,iCAAK,SAAS,EAAE,CAAC,CAAC,cAAc,CAAC,aAC5B,IAAI,EACL,iCAAK,SAAS,EAAE,CAAC,CAAC,YAAY,CAAC,aAC1B,MAAM,IAAI,uBAAC,cAAM,IAAC,KAAK,EAAE,MAAM,GAAI,EACnC,QAAQ,IAAI,CACT,uBAAC,gBAAQ,IACL,YAAY,EAAE,EAAC,KAAK,EAAE,KAAK,EAAC,EAC5B,SAAS,EAAE,CAAC,CAAC,WAAW,CAAC,YAExB,QAAQ,GACF,CACd,IACC,IACJ,IACJ,GACO,CACpB,CAAC;YACN,CAAC,EACD,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBACf,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;gBACnD,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;gBACd,KAAK,EAAE,CAAC;YACZ,CAAC,GACH,GACH,CACN,CAAC;AACN,CAAC,CAAC;AA7DW,QAAA,aAAa,iBA6DxB","sourcesContent":["import {\n HelpMark,\n Hotkey,\n Icon,\n Select,\n type SelectOption,\n type SelectProps,\n} from '@gravity-ui/uikit';\n\nimport {cn} from '../../classname';\nimport {isFunction} from '../../lodash';\nimport {PreviewTooltip} from '../../toolbar/PreviewTooltip';\n\nimport type {WToolbarBaseProps, WToolbarItemData} from './types';\n\nimport './ToolbarSelect.scss';\n\nconst b = cn('toolbar-select');\n\nexport type ToolbarSelectProps = WToolbarBaseProps &\n Pick<SelectProps, 'disablePortal'> & {\n items: WToolbarItemData[];\n };\n\nexport const ToolbarSelect: React.FC<ToolbarSelectProps> = ({\n disablePortal,\n className,\n editor,\n focus,\n onClick,\n items,\n qa,\n}) => {\n const activeItem = items.find((item) => item.isActive(editor));\n\n return (\n <>\n <Select\n qa={qa}\n size=\"m\"\n view=\"clear\"\n className={className}\n disablePortal={disablePortal}\n onOpenChange={focus}\n value={activeItem ? [activeItem.id] : undefined}\n options={items.map<SelectOption>((item) => ({\n data: item,\n value: item.id,\n text: isFunction(item.title) ? item.title() : item.title,\n }))}\n renderOption={({text, data}) => {\n const {icon, hotkey, hint, preview} = data as WToolbarItemData;\n const hintText = isFunction(hint) ? hint() : hint;\n return (\n <PreviewTooltip preview={preview}>\n <div aria-label={text} className={b('item')}>\n <div className={b('item-icon')}>\n <Icon data={icon.data} size={Number(icon.size ?? 16) + 2} />\n </div>\n <div className={b('item-content')}>\n {text}\n <div className={b('item-extra')}>\n {hotkey && <Hotkey value={hotkey} />}\n {hintText && (\n <HelpMark\n popoverProps={{modal: false}}\n className={b('item-hint')}\n >\n {hintText}\n </HelpMark>\n )}\n </div>\n </div>\n </div>\n </PreviewTooltip>\n );\n }}\n onUpdate={([id]) => {\n items.find((item) => item.id === id)?.exec(editor);\n onClick?.(id);\n focus();\n }}\n />\n </>\n );\n};\n"]}
|
|
@@ -58,7 +58,7 @@ const ToolbarColors = (props) => {
|
|
|
58
58
|
},
|
|
59
59
|
});
|
|
60
60
|
}
|
|
61
|
-
return ((0, jsx_runtime_1.jsx)(ToolbarButtonWithPopupMenu_1.ToolbarButtonWithPopupMenu, { ...props, title: (0, menubar_1.i18n)('colorify'), menuItems: items, icon: textColorIcon, _selectionType: "light", iconClassName: b('menu-icon', { color: currentColor }), chevronIconClassName: b('chevron-icon', { color: currentColor }), "data-selected-color": currentColor ?? 'default' }));
|
|
61
|
+
return ((0, jsx_runtime_1.jsx)(ToolbarButtonWithPopupMenu_1.ToolbarButtonWithPopupMenu, { ...props, qaMenu: "g-md-toolbar-menu", title: (0, menubar_1.i18n)('colorify'), menuItems: items, icon: textColorIcon, _selectionType: "light", iconClassName: b('menu-icon', { color: currentColor }), chevronIconClassName: b('chevron-icon', { color: currentColor }), "data-selected-color": currentColor ?? 'default' }));
|
|
62
62
|
};
|
|
63
63
|
exports.ToolbarColors = ToolbarColors;
|
|
64
64
|
//# sourceMappingURL=ToolbarColors.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToolbarColors.js","sourceRoot":"../../../../../src","sources":["bundle/toolbar/custom/ToolbarColors.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ToolbarColors.js","sourceRoot":"../../../../../src","sources":["bundle/toolbar/custom/ToolbarColors.tsx"],"names":[],"mappings":"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","sourcesContent":["import {cn} from '../../../classname';\nimport {Colors} from '../../../extensions';\nimport {i18n} from '../../../i18n/menubar';\nimport type {ToolbarBaseProps} from '../../../toolbar';\nimport {icons} from '../../config/icons';\nimport {\n type MenuItem,\n ToolbarButtonWithPopupMenu,\n type ToolbarButtonWithPopupMenuProps,\n} from '../ToolbarButtonWithPopupMenu';\n\nimport './ToolbarColors.scss';\n\nconst b = cn('toolbar-colors');\nconst textColorIcon = icons.textColor;\n\nexport type ToolbarColorsProps = Omit<ToolbarBaseProps<never>, 'editor'> &\n Pick<ToolbarButtonWithPopupMenuProps, 'disablePortal'> & {\n active?: boolean;\n enable?: boolean;\n currentColor?: string;\n withDefault?: boolean;\n exec(color: string): void;\n };\n\nexport const ToolbarColors: React.FC<ToolbarColorsProps> = (props) => {\n const {exec, onClick, enable, currentColor, withDefault} = props;\n const isDefault = currentColor === undefined;\n\n const onItemClick = (color: string) => () => {\n // do not exec when current color is default and clicked to default item\n if (!(isDefault && color === '')) exec(color);\n onClick?.('colorify', {color: color === '' ? 'default' : color});\n };\n\n const items = [\n Colors.Gray,\n Colors.Yellow,\n Colors.Orange,\n Colors.Red,\n Colors.Green,\n Colors.Blue,\n Colors.Violet,\n ].map<MenuItem>((color) => ({\n id: color,\n icon: textColorIcon.data,\n iconSize: textColorIcon.size ?? 16,\n text: i18n(`colorify__color_${color}`),\n iconClassname: b('item-icon', {color}),\n action: {\n run: onItemClick(color),\n isEnable: () => Boolean(enable),\n isActive: () => color === currentColor,\n meta() {},\n },\n group: i18n(`colorify__group_text`),\n }));\n\n if (withDefault) {\n items.unshift({\n id: 'default',\n icon: textColorIcon.data,\n iconSize: textColorIcon.size ?? 16,\n text: i18n(`colorify__color_default`),\n iconClassname: b('item-icon', {color: 'default'}),\n group: i18n(`colorify__group_text`),\n ignoreActive: true,\n action: {\n run: onItemClick(''),\n isEnable: () => Boolean(enable),\n isActive: () => isDefault,\n meta() {},\n },\n });\n }\n\n return (\n <ToolbarButtonWithPopupMenu\n {...props}\n qaMenu=\"g-md-toolbar-menu\"\n title={i18n('colorify')}\n menuItems={items}\n icon={textColorIcon}\n _selectionType=\"light\"\n iconClassName={b('menu-icon', {color: currentColor})}\n chevronIconClassName={b('chevron-icon', {color: currentColor})}\n data-selected-color={currentColor ?? 'default'}\n />\n );\n};\n"]}
|
|
@@ -5,7 +5,7 @@ const jsx_runtime_1 = require("react/jsx-runtime");
|
|
|
5
5
|
const w_heading_config_1 = require("../../config/w-heading-config.js");
|
|
6
6
|
const ToolbarSelect_1 = require("../ToolbarSelect.js");
|
|
7
7
|
const WToolbarTextSelect = ({ focus, onClick, editor, className, disablePortal, }) => {
|
|
8
|
-
return ((0, jsx_runtime_1.jsx)(ToolbarSelect_1.ToolbarSelect, { items: w_heading_config_1.wHeadingListConfig.data, focus: focus, editor: editor, onClick: onClick, className: className, disablePortal: disablePortal }));
|
|
8
|
+
return ((0, jsx_runtime_1.jsx)(ToolbarSelect_1.ToolbarSelect, { qa: "g-md-toolbar-text-select", items: w_heading_config_1.wHeadingListConfig.data, focus: focus, editor: editor, onClick: onClick, className: className, disablePortal: disablePortal }));
|
|
9
9
|
};
|
|
10
10
|
exports.WToolbarTextSelect = WToolbarTextSelect;
|
|
11
11
|
//# sourceMappingURL=WToolbarTextSelect.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WToolbarTextSelect.js","sourceRoot":"../../../../../src","sources":["bundle/toolbar/wysiwyg/WToolbarTextSelect.tsx"],"names":[],"mappings":";;;;AAAA,uEAAiE;AACjE,uDAAwE;AAKjE,MAAM,kBAAkB,GAAsC,CAAC,EAClE,KAAK,EACL,OAAO,EACP,MAAM,EACN,SAAS,EACT,aAAa,GAChB,EAAE,EAAE;IACD,OAAO,CACH,uBAAC,6BAAa,IACV,KAAK,EAAE,qCAAkB,CAAC,IAAI,EAC9B,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,SAAS,EACpB,aAAa,EAAE,aAAa,GAC9B,CACL,CAAC;AACN,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"WToolbarTextSelect.js","sourceRoot":"../../../../../src","sources":["bundle/toolbar/wysiwyg/WToolbarTextSelect.tsx"],"names":[],"mappings":";;;;AAAA,uEAAiE;AACjE,uDAAwE;AAKjE,MAAM,kBAAkB,GAAsC,CAAC,EAClE,KAAK,EACL,OAAO,EACP,MAAM,EACN,SAAS,EACT,aAAa,GAChB,EAAE,EAAE;IACD,OAAO,CACH,uBAAC,6BAAa,IACV,EAAE,EAAC,0BAA0B,EAC7B,KAAK,EAAE,qCAAkB,CAAC,IAAI,EAC9B,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,SAAS,EACpB,aAAa,EAAE,aAAa,GAC9B,CACL,CAAC;AACN,CAAC,CAAC;AAlBW,QAAA,kBAAkB,sBAkB7B","sourcesContent":["import {wHeadingListConfig} from '../../config/w-heading-config';\nimport {ToolbarSelect, type ToolbarSelectProps} from '../ToolbarSelect';\nimport type {WToolbarBaseProps} from '../types';\n\nexport type WToolbarTextSelectProps = WToolbarBaseProps & Pick<ToolbarSelectProps, 'disablePortal'>;\n\nexport const WToolbarTextSelect: React.FC<WToolbarTextSelectProps> = ({\n focus,\n onClick,\n editor,\n className,\n disablePortal,\n}) => {\n return (\n <ToolbarSelect\n qa=\"g-md-toolbar-text-select\"\n items={wHeadingListConfig.data}\n focus={focus}\n editor={editor}\n onClick={onClick}\n className={className}\n disablePortal={disablePortal}\n />\n );\n};\n"]}
|
|
@@ -69,8 +69,14 @@ function getUrl(data, parser) {
|
|
|
69
69
|
// TODO: should we process HTML here?
|
|
70
70
|
const text = data.getData(utils_1.DataTransferType.Text);
|
|
71
71
|
const match = parser.matchLinks(text);
|
|
72
|
-
if (match?.[0]
|
|
73
|
-
|
|
72
|
+
if (match?.[0]) {
|
|
73
|
+
const { raw, url } = match[0];
|
|
74
|
+
if (raw === text)
|
|
75
|
+
return url;
|
|
76
|
+
if (text.endsWith('?') && raw + '?' === text && parser.validateLink(text)) {
|
|
77
|
+
return parser.normalizeLink(text);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
74
80
|
return null;
|
|
75
81
|
}
|
|
76
82
|
//# sourceMappingURL=paste-plugin.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paste-plugin.js","sourceRoot":"../../../../../src","sources":["extensions/markdown/Link/paste-plugin.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"paste-plugin.js","sourceRoot":"../../../../../src","sources":["extensions/markdown/Link/paste-plugin.ts"],"names":[],"mappings":"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","sourcesContent":["import {Plugin, TextSelection, type Transaction} from 'prosemirror-state';\n\nimport {type ExtensionDeps, type Parser, getLoggerFromState} from '../../../core';\nimport {isNodeSelection, isTextSelection} from '../../../utils/selection';\nimport {DataTransferType, isIosSafariShare} from '../../behavior/Clipboard/utils';\nimport {imageType} from '../Image';\n\nimport {LinkAttr, linkType} from './index';\n\nexport function linkPasteEnhance({markupParser: parser}: ExtensionDeps) {\n return new Plugin({\n props: {\n handleDOMEvents: {\n paste(view, e): boolean {\n const logger = getLoggerFromState(view.state).nested({\n plugin: 'link-paste-enhance',\n domEvent: 'paste',\n });\n\n const {state, dispatch} = view;\n const sel = state.selection;\n let tr: Transaction | null = null;\n\n if (\n isTextSelection(sel) ||\n (isNodeSelection(sel) && sel.node.type === imageType(state.schema))\n ) {\n const {$from, $to} = sel;\n if ($from.pos === $to.pos) {\n const url = getUrl(e.clipboardData, parser);\n if (url) {\n const linkMarkType = linkType(state.schema);\n tr = state.tr.replaceSelectionWith(\n state.schema.text(url, [\n ...$from\n .marks()\n .filter((mark) => mark.type !== linkMarkType),\n linkMarkType.create({[LinkAttr.Href]: url}),\n ]),\n false,\n );\n logger.event({\n event: 'paste-url',\n });\n }\n } else if ($from.sameParent($to)) {\n const url = getUrl(e.clipboardData, parser);\n if (url) {\n tr = state.tr.addMark(\n $from.pos,\n $to.pos,\n linkType(state.schema).create({\n [LinkAttr.Href]: url,\n }),\n );\n tr.setSelection(TextSelection.create(tr.doc, $to.pos));\n logger.event({\n event: 'paste-url-on-text',\n });\n }\n }\n }\n\n if (tr) {\n dispatch(tr.scrollIntoView());\n e.preventDefault();\n return true;\n }\n\n return false;\n },\n },\n },\n });\n}\n\nfunction getUrl(data: DataTransfer | null, parser: Parser): string | null {\n if (!data || data.types.includes(DataTransferType.Yfm)) return null;\n if (isIosSafariShare(data)) return data.getData(DataTransferType.UriList);\n // TODO: should we process HTML here?\n const text = data.getData(DataTransferType.Text);\n const match = parser.matchLinks(text);\n if (match?.[0]) {\n const {raw, url} = match[0];\n if (raw === text) return url;\n if (text.endsWith('?') && raw + '?' === text && parser.validateLink(text)) {\n return parser.normalizeLink(text);\n }\n }\n return null;\n}\n"]}
|
|
@@ -22,7 +22,7 @@ const ImgSettingsButton = function ({ node, view, updateAttributes, visible, edi
|
|
|
22
22
|
const isVisibleImageForm = edit;
|
|
23
23
|
const isVisibleEditButton = !edit && (visible || popupOpen);
|
|
24
24
|
const isVisiblePopup = !edit && popupOpen;
|
|
25
|
-
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [isVisibleImageForm && ((0, jsx_runtime_1.jsx)(ImageForm_1.ImageForm, { node: node, view: view, updateAttributes: updateAttributes, anchorElement: nodeElement, unsetEdit: unsetEdit })), isVisibleEditButton && ((0, jsx_runtime_1.jsx)(uikit_1.Button, { onClick: togglePopup, ref: setAnchorElement, size: "s", view: 'raised', className: b(null, react_node_view_1.ReactNodeStopEventCn), children: (0, jsx_runtime_1.jsx)(uikit_1.Icon, { data: icons_1.Ellipsis, className: react_node_view_1.ReactNodeStopEventCn }) })), (0, jsx_runtime_1.jsx)(uikit_1.Popup, { open: isVisiblePopup, anchorElement: anchorElement, onOpenChange: unsetPopupOpen, placement: placement, children: (0, jsx_runtime_1.jsxs)(uikit_1.Menu, { children: [(0, jsx_runtime_1.jsx)(uikit_1.Menu.Item, { onClick: handleEdit, children: (0, common_1.i18n)('edit') }), (0, jsx_runtime_1.jsx)(uikit_1.Menu.Item, { onClick: onDelete, children: (0, common_1.i18n)('delete') })] }) })] }));
|
|
25
|
+
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [isVisibleImageForm && ((0, jsx_runtime_1.jsx)(ImageForm_1.ImageForm, { node: node, view: view, updateAttributes: updateAttributes, anchorElement: nodeElement, unsetEdit: unsetEdit })), isVisibleEditButton && ((0, jsx_runtime_1.jsx)(uikit_1.Button, { qa: "g-md-image-settings-button", onClick: togglePopup, ref: setAnchorElement, size: "s", view: 'raised', className: b(null, react_node_view_1.ReactNodeStopEventCn), children: (0, jsx_runtime_1.jsx)(uikit_1.Icon, { data: icons_1.Ellipsis, className: react_node_view_1.ReactNodeStopEventCn }) })), (0, jsx_runtime_1.jsx)(uikit_1.Popup, { open: isVisiblePopup, anchorElement: anchorElement, onOpenChange: unsetPopupOpen, placement: placement, children: (0, jsx_runtime_1.jsxs)(uikit_1.Menu, { qa: "g-md-image-settings-menu", children: [(0, jsx_runtime_1.jsx)(uikit_1.Menu.Item, { extraProps: { 'aria-label': (0, common_1.i18n)('edit') }, onClick: handleEdit, children: (0, common_1.i18n)('edit') }), (0, jsx_runtime_1.jsx)(uikit_1.Menu.Item, { extraProps: { 'aria-label': (0, common_1.i18n)('delete') }, onClick: onDelete, children: (0, common_1.i18n)('delete') })] }) })] }));
|
|
26
26
|
};
|
|
27
27
|
exports.ImgSettingsButton = ImgSettingsButton;
|
|
28
28
|
//# sourceMappingURL=ImgSettingsButton.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ImgSettingsButton.js","sourceRoot":"../../../../../../../src","sources":["extensions/yfm/ImgSize/plugins/ImgSizeNodeView/ImgSettingsButton.tsx"],"names":[],"mappings":";;;;AAAA,6CAA2C;AAC3C,6CAAiF;AAIjF,2DAA4C;AAC5C,gEAA8D;AAC9D,+DAAkF;AAClF,mFAAgF;AAEhF,oDAAsC;AAEtC,mCAAkC;AAElC,MAAM,CAAC,GAAG,IAAA,cAAE,EAAC,qBAAqB,CAAC,CAAC;AAE7B,MAAM,iBAAiB,GAWzB,UAAU,EACX,IAAI,EACJ,IAAI,EACJ,gBAAgB,EAChB,OAAO,EACP,IAAI,EACJ,UAAU,EACV,WAAW,EACX,SAAS,EACT,QAAQ,GACX;IACG,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,IAAA,uBAAe,GAAE,CAAC;IAC5D,MAAM,CAAC,SAAS,EAAE,aAAa,EAAE,cAAc,EAAE,WAAW,CAAC,GAAG,IAAA,uBAAe,EAAC,KAAK,CAAC,CAAC;IACvF,MAAM,SAAS,GAAmB,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;IAEjE,MAAM,UAAU,GAAG,GAAG,EAAE;QACpB,UAAU,EAAE,CAAC;QACb,cAAc,EAAE,CAAC;IACrB,CAAC,CAAC;IAEF,MAAM,kBAAkB,GAAG,IAAI,CAAC;IAChC,MAAM,mBAAmB,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO,IAAI,SAAS,CAAC,CAAC;IAC5D,MAAM,cAAc,GAAG,CAAC,IAAI,IAAI,SAAS,CAAC;IAE1C,OAAO,CACH,6DACK,kBAAkB,IAAI,CACnB,uBAAC,qBAAS,IACN,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,IAAI,EACV,gBAAgB,EAAE,gBAAgB,EAClC,aAAa,EAAE,WAAW,EAC1B,SAAS,EAAE,SAAS,GACtB,CACL,EAEA,mBAAmB,IAAI,CACpB,uBAAC,cAAM,IACH,OAAO,EAAE,WAAW,EACpB,GAAG,EAAE,gBAAgB,EACrB,IAAI,EAAC,GAAG,EACR,IAAI,EAAE,QAAQ,EACd,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE,sCAAoB,CAAC,YAExC,uBAAC,YAAI,IAAC,IAAI,EAAE,gBAAQ,EAAE,SAAS,EAAE,sCAAoB,GAAI,GACpD,CACZ,EAED,uBAAC,aAAK,IACF,IAAI,EAAE,cAAc,EACpB,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,cAAc,EAC5B,SAAS,EAAE,SAAS,YAEpB,wBAAC,YAAI,
|
|
1
|
+
{"version":3,"file":"ImgSettingsButton.js","sourceRoot":"../../../../../../../src","sources":["extensions/yfm/ImgSize/plugins/ImgSizeNodeView/ImgSettingsButton.tsx"],"names":[],"mappings":";;;;AAAA,6CAA2C;AAC3C,6CAAiF;AAIjF,2DAA4C;AAC5C,gEAA8D;AAC9D,+DAAkF;AAClF,mFAAgF;AAEhF,oDAAsC;AAEtC,mCAAkC;AAElC,MAAM,CAAC,GAAG,IAAA,cAAE,EAAC,qBAAqB,CAAC,CAAC;AAE7B,MAAM,iBAAiB,GAWzB,UAAU,EACX,IAAI,EACJ,IAAI,EACJ,gBAAgB,EAChB,OAAO,EACP,IAAI,EACJ,UAAU,EACV,WAAW,EACX,SAAS,EACT,QAAQ,GACX;IACG,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,IAAA,uBAAe,GAAE,CAAC;IAC5D,MAAM,CAAC,SAAS,EAAE,aAAa,EAAE,cAAc,EAAE,WAAW,CAAC,GAAG,IAAA,uBAAe,EAAC,KAAK,CAAC,CAAC;IACvF,MAAM,SAAS,GAAmB,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;IAEjE,MAAM,UAAU,GAAG,GAAG,EAAE;QACpB,UAAU,EAAE,CAAC;QACb,cAAc,EAAE,CAAC;IACrB,CAAC,CAAC;IAEF,MAAM,kBAAkB,GAAG,IAAI,CAAC;IAChC,MAAM,mBAAmB,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO,IAAI,SAAS,CAAC,CAAC;IAC5D,MAAM,cAAc,GAAG,CAAC,IAAI,IAAI,SAAS,CAAC;IAE1C,OAAO,CACH,6DACK,kBAAkB,IAAI,CACnB,uBAAC,qBAAS,IACN,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,IAAI,EACV,gBAAgB,EAAE,gBAAgB,EAClC,aAAa,EAAE,WAAW,EAC1B,SAAS,EAAE,SAAS,GACtB,CACL,EAEA,mBAAmB,IAAI,CACpB,uBAAC,cAAM,IACH,EAAE,EAAC,4BAA4B,EAC/B,OAAO,EAAE,WAAW,EACpB,GAAG,EAAE,gBAAgB,EACrB,IAAI,EAAC,GAAG,EACR,IAAI,EAAE,QAAQ,EACd,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE,sCAAoB,CAAC,YAExC,uBAAC,YAAI,IAAC,IAAI,EAAE,gBAAQ,EAAE,SAAS,EAAE,sCAAoB,GAAI,GACpD,CACZ,EAED,uBAAC,aAAK,IACF,IAAI,EAAE,cAAc,EACpB,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,cAAc,EAC5B,SAAS,EAAE,SAAS,YAEpB,wBAAC,YAAI,IAAC,EAAE,EAAC,0BAA0B,aAC/B,uBAAC,YAAI,CAAC,IAAI,IAAC,UAAU,EAAE,EAAC,YAAY,EAAE,IAAA,aAAU,EAAC,MAAM,CAAC,EAAC,EAAE,OAAO,EAAE,UAAU,YACzE,IAAA,aAAU,EAAC,MAAM,CAAC,GACX,EACZ,uBAAC,YAAI,CAAC,IAAI,IAAC,UAAU,EAAE,EAAC,YAAY,EAAE,IAAA,aAAU,EAAC,QAAQ,CAAC,EAAC,EAAE,OAAO,EAAE,QAAQ,YACzE,IAAA,aAAU,EAAC,QAAQ,CAAC,GACb,IACT,GACH,IACT,CACN,CAAC;AACN,CAAC,CAAC;AA7EW,QAAA,iBAAiB,qBA6E5B","sourcesContent":["import {Ellipsis} from '@gravity-ui/icons';\nimport {Button, Icon, Menu, Popup, type PopupPlacement} from '@gravity-ui/uikit';\nimport type {Node} from 'prosemirror-model';\nimport type {EditorView} from 'prosemirror-view';\n\nimport {cn} from '../../../../../classname';\nimport {i18n as i18nCommon} from '../../../../../i18n/common';\nimport {useBooleanState, useElementState} from '../../../../../react-utils/hooks';\nimport {ReactNodeStopEventCn} from '../../../../../react-utils/react-node-view';\n\nimport {ImageForm} from './ImageForm';\n\nimport './ImgSettingsButton.scss';\n\nconst b = cn('img-settings-button');\n\nexport const ImgSettingsButton: React.FC<{\n node: Node;\n view: EditorView;\n getPos: () => number | undefined;\n updateAttributes: (o: object) => void;\n nodeElement: HTMLElement | null;\n visible: boolean;\n toggleEdit: () => void;\n edit: boolean;\n unsetEdit: () => void;\n onDelete: () => void;\n}> = function ({\n node,\n view,\n updateAttributes,\n visible,\n edit,\n toggleEdit,\n nodeElement,\n unsetEdit,\n onDelete,\n}) {\n const [anchorElement, setAnchorElement] = useElementState();\n const [popupOpen, _setPopupOpen, unsetPopupOpen, togglePopup] = useBooleanState(false);\n const placement: PopupPlacement = ['bottom-end', 'bottom-start'];\n\n const handleEdit = () => {\n toggleEdit();\n unsetPopupOpen();\n };\n\n const isVisibleImageForm = edit;\n const isVisibleEditButton = !edit && (visible || popupOpen);\n const isVisiblePopup = !edit && popupOpen;\n\n return (\n <>\n {isVisibleImageForm && (\n <ImageForm\n node={node}\n view={view}\n updateAttributes={updateAttributes}\n anchorElement={nodeElement}\n unsetEdit={unsetEdit}\n />\n )}\n\n {isVisibleEditButton && (\n <Button\n qa=\"g-md-image-settings-button\"\n onClick={togglePopup}\n ref={setAnchorElement}\n size=\"s\"\n view={'raised'}\n className={b(null, ReactNodeStopEventCn)}\n >\n <Icon data={Ellipsis} className={ReactNodeStopEventCn} />\n </Button>\n )}\n\n <Popup\n open={isVisiblePopup}\n anchorElement={anchorElement}\n onOpenChange={unsetPopupOpen}\n placement={placement}\n >\n <Menu qa=\"g-md-image-settings-menu\">\n <Menu.Item extraProps={{'aria-label': i18nCommon('edit')}} onClick={handleEdit}>\n {i18nCommon('edit')}\n </Menu.Item>\n <Menu.Item extraProps={{'aria-label': i18nCommon('delete')}} onClick={onDelete}>\n {i18nCommon('delete')}\n </Menu.Item>\n </Menu>\n </Popup>\n </>\n );\n};\n"]}
|
|
@@ -79,7 +79,7 @@ const ImageNodeView = ({ node, view, getPos, updateAttributes, }) => {
|
|
|
79
79
|
(0, uikit_1.setRef)(imageRef, elem);
|
|
80
80
|
setImageElement(elem);
|
|
81
81
|
}, [setImageElement]);
|
|
82
|
-
return ((0, jsx_runtime_1.jsx)("div", { ref: imageContainerRef, children: (0, jsx_runtime_1.jsxs)(Resizable_1.Resizable, { hover: isNodeHovered, resizing: state.resizing, onResizeLeft: createHandleResize('left'), onResizeRight: createHandleResize('right'), children: [(0, jsx_runtime_1.jsx)(ImgSettingsButton_1.ImgSettingsButton, { node: node, view: view, getPos: getPos, updateAttributes: updateAttributes, visible: isNodeHovered && !edit && !state.resizing, edit: edit, toggleEdit: toggleEdit, nodeElement: imageElement, onDelete: handleDelete, unsetEdit: unsetEdit }), (0, jsx_runtime_1.jsx)("img", { ref: refFn, src: src, alt: alt, style: style })] }) }));
|
|
82
|
+
return ((0, jsx_runtime_1.jsx)("div", { ref: imageContainerRef, "data-qa": "g-md-image", children: (0, jsx_runtime_1.jsxs)(Resizable_1.Resizable, { hover: isNodeHovered, resizing: state.resizing, onResizeLeft: createHandleResize('left'), onResizeRight: createHandleResize('right'), children: [(0, jsx_runtime_1.jsx)(ImgSettingsButton_1.ImgSettingsButton, { node: node, view: view, getPos: getPos, updateAttributes: updateAttributes, visible: isNodeHovered && !edit && !state.resizing, edit: edit, toggleEdit: toggleEdit, nodeElement: imageElement, onDelete: handleDelete, unsetEdit: unsetEdit }), (0, jsx_runtime_1.jsx)("img", { ref: refFn, src: src, alt: alt, style: style })] }) }));
|
|
83
83
|
};
|
|
84
84
|
exports.ImageNodeView = ImageNodeView;
|
|
85
85
|
//# sourceMappingURL=NodeView.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeView.js","sourceRoot":"../../../../../../../src","sources":["extensions/yfm/ImgSize/plugins/ImgSizeNodeView/NodeView.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"NodeView.js","sourceRoot":"../../../../../../../src","sources":["extensions/yfm/ImgSize/plugins/ImgSizeNodeView/NodeView.tsx"],"names":[],"mappings":"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","sourcesContent":["import {useCallback, useEffect, useRef} from 'react';\n\nimport {setRef} from '@gravity-ui/uikit';\n\nimport {cn} from '../../../../../classname';\nimport {\n type ReactNodeViewProps,\n useElementState,\n useNodeEditing,\n useNodeHovered,\n} from '../../../../../react-utils';\nimport {type ResizeDirection, useNodeResizing} from '../../../../../react-utils/useNodeResizing';\nimport {removeNode} from '../../../../../utils';\nimport {Resizable} from '../../../../behavior/Resizable/Resizable';\nimport {ImgSizeAttr} from '../../ImgSizeSpecs';\nimport {imageRendererKey} from '../../const';\n\nimport {ImgSettingsButton} from './ImgSettingsButton';\n\nimport './ImgNodeView.scss';\n\nexport const cnImgSizeNodeView = cn('img-size-node-view');\n\nexport const ImageNodeView: React.FC<ReactNodeViewProps> = ({\n node,\n view,\n getPos,\n updateAttributes,\n}) => {\n const imageContainerRef = useRef<HTMLDivElement>(null);\n const imageRef = useRef<HTMLImageElement>(null);\n const [imageElement, setImageElement] = useElementState();\n\n const alt = node.attrs[ImgSizeAttr.Alt] || '';\n const initialHeight = node.attrs[ImgSizeAttr.Height];\n const initialWidth = node.attrs[ImgSizeAttr.Width];\n const src = node.attrs[ImgSizeAttr.Src] || '';\n const title = node.attrs[ImgSizeAttr.Title] || '';\n\n const isNodeHovered = useNodeHovered(imageContainerRef);\n const [edit, setEditing, unsetEdit, toggleEdit] = useNodeEditing({\n nodeRef: imageContainerRef,\n view,\n });\n\n const handleResize = useCallback(\n ({width, height}: {width?: number; height?: number}) => {\n updateAttributes({\n width: width === undefined ? undefined : String(Math.round(width)),\n height: height === undefined ? undefined : String(Math.round(height)),\n name: title,\n alt,\n });\n },\n [alt, title, updateAttributes],\n );\n\n const {state, startResizing} = useNodeResizing({\n width: initialWidth,\n height: initialHeight,\n ref: imageRef,\n onResize: handleResize,\n });\n\n const style: React.HTMLAttributes<HTMLImageElement>['style'] = {\n transition: 'width 0.15s ease-out, height 0.15s ease-out',\n };\n\n if (state.width) {\n style.width = `${state.width}px`;\n\n if (state.height) {\n style.aspectRatio = state.width / state.height;\n style.height = 'auto;';\n }\n } else if (state.height) {\n style.height = `${state.height}px`;\n }\n\n const handleDelete = useCallback(() => {\n const pos = getPos();\n if (pos === undefined) return;\n removeNode({\n node,\n pos,\n tr: view.state.tr,\n dispatch: view.dispatch,\n });\n view.focus();\n }, [getPos, node, view]);\n\n const createHandleResize =\n (direction: ResizeDirection) => (event: React.MouseEvent<HTMLElement>) => {\n startResizing(event, direction);\n };\n\n useEffect(() => {\n if (imageRendererKey.getState(view.state)?.linkAdded) {\n setEditing();\n }\n }, [view, setEditing]);\n\n const refFn = useCallback(\n (elem: HTMLImageElement | null) => {\n setRef(imageRef, elem);\n setImageElement(elem);\n },\n [setImageElement],\n );\n\n return (\n <div ref={imageContainerRef} data-qa=\"g-md-image\">\n <Resizable\n hover={isNodeHovered}\n resizing={state.resizing}\n onResizeLeft={createHandleResize('left')}\n onResizeRight={createHandleResize('right')}\n >\n <ImgSettingsButton\n node={node}\n view={view}\n getPos={getPos}\n updateAttributes={updateAttributes}\n visible={isNodeHovered && !edit && !state.resizing}\n edit={edit}\n toggleEdit={toggleEdit}\n nodeElement={imageElement}\n onDelete={handleDelete}\n unsetEdit={unsetEdit}\n />\n <img ref={refFn} src={src} alt={alt} style={style} />\n </Resizable>\n </div>\n );\n};\n"]}
|
|
@@ -4,6 +4,7 @@ exports.YfmNoteSpecs = exports.noteTitleType = exports.noteType = exports.YfmNot
|
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const log_js_1 = require("@diplodoc/transform/lib/log.js");
|
|
6
6
|
const index_js_1 = tslib_1.__importDefault(require("@diplodoc/transform/lib/plugins/notes/index.js"));
|
|
7
|
+
const configure_1 = require("../../../../configure.js");
|
|
7
8
|
const const_1 = require("./const.js");
|
|
8
9
|
const parser_1 = require("./parser.js");
|
|
9
10
|
const schema_1 = require("./schema.js");
|
|
@@ -16,7 +17,7 @@ Object.defineProperty(exports, "noteTitleType", { enumerable: true, get: functio
|
|
|
16
17
|
const YfmNoteSpecs = (builder, opts) => {
|
|
17
18
|
const schemaSpecs = (0, schema_1.getSchemaSpecs)(opts, builder.context.get('placeholder'));
|
|
18
19
|
builder
|
|
19
|
-
.configureMd((md) => md.use(index_js_1.default, { log: log_js_1.log }))
|
|
20
|
+
.configureMd((md) => md.use(index_js_1.default, { log: log_js_1.log, lang: (0, configure_1.getConfig)().lang || 'en' }))
|
|
20
21
|
.addNode(const_1.NoteNode.Note, () => ({
|
|
21
22
|
spec: schemaSpecs[const_1.NoteNode.Note],
|
|
22
23
|
toMd: serializer_1.serializerTokens[const_1.NoteNode.Note],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"../../../../../../src","sources":["extensions/yfm/YfmNote/YfmNoteSpecs/index.ts"],"names":[],"mappings":";;;;AAAA,2DAAmD;AACnD,sGAAuE;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"../../../../../../src","sources":["extensions/yfm/YfmNote/YfmNoteSpecs/index.ts"],"names":[],"mappings":";;;;AAAA,2DAAmD;AACnD,sGAAuE;AAGvE,wDAAwC;AAGxC,sCAAiC;AACjC,wCAAsC;AACtC,wCAAwC;AACxC,gDAA8C;AAE9C,oCAAgD;AAAxC,oGAAA,QAAQ,OAAe;AAC/B,oCAAgD;AAAxC,iGAAA,QAAQ,OAAA;AAAE,sGAAA,aAAa,OAAA;AASxB,MAAM,YAAY,GAAuC,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE;IAC9E,MAAM,WAAW,GAAG,IAAA,uBAAc,EAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC;IAE7E,OAAO;SACF,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,kBAAS,EAAE,EAAC,GAAG,EAAH,YAAG,EAAE,IAAI,EAAE,IAAA,qBAAS,GAAE,CAAC,IAAI,IAAI,IAAI,EAAC,CAAC,CAAC;SAC7E,OAAO,CAAC,gBAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;QAC3B,IAAI,EAAE,WAAW,CAAC,gBAAQ,CAAC,IAAI,CAAC;QAChC,IAAI,EAAE,6BAAgB,CAAC,gBAAQ,CAAC,IAAI,CAAC;QACrC,MAAM,EAAE;YACJ,SAAS,EAAE,qBAAY,CAAC,gBAAQ,CAAC,IAAI,CAAC;SACzC;KACJ,CAAC,CAAC;SACF,OAAO,CAAC,gBAAQ,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;QAChC,IAAI,EAAE,WAAW,CAAC,gBAAQ,CAAC,SAAS,CAAC;QACrC,IAAI,EAAE,6BAAgB,CAAC,gBAAQ,CAAC,SAAS,CAAC;QAC1C,MAAM,EAAE;YACJ,SAAS,EAAE,qBAAY,CAAC,gBAAQ,CAAC,SAAS,CAAC;SAC9C;KACJ,CAAC,CAAC;SACF,OAAO,CAAC,gBAAQ,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC;QAClC,IAAI,EAAE,WAAW,CAAC,gBAAQ,CAAC,WAAW,CAAC;QACvC,IAAI,EAAE,6BAAgB,CAAC,gBAAQ,CAAC,WAAW,CAAC;QAC5C,MAAM,EAAE;YACJ,SAAS,EAAE,qBAAY,CAAC,gBAAQ,CAAC,WAAW,CAAC;SAChD;KACJ,CAAC,CAAC,CAAC;AACZ,CAAC,CAAC;AA1BW,QAAA,YAAY,gBA0BvB","sourcesContent":["import {log} from '@diplodoc/transform/lib/log.js';\nimport yfmPlugin from '@diplodoc/transform/lib/plugins/notes/index.js';\nimport type {NodeSpec} from 'prosemirror-model';\n\nimport {getConfig} from 'src/configure';\nimport type {ExtensionAuto} from 'src/core';\n\nimport {NoteNode} from './const';\nimport {parserTokens} from './parser';\nimport {getSchemaSpecs} from './schema';\nimport {serializerTokens} from './serializer';\n\nexport {NoteNode as YfmNoteNode} from './const';\nexport {noteType, noteTitleType} from './utils';\n\nexport type YfmNoteSpecsOptions = {\n /**\n * @deprecated: use placeholder option in BehaviorPreset instead.\n */\n yfmNoteTitlePlaceholder?: NonNullable<NodeSpec['placeholder']>['content'];\n};\n\nexport const YfmNoteSpecs: ExtensionAuto<YfmNoteSpecsOptions> = (builder, opts) => {\n const schemaSpecs = getSchemaSpecs(opts, builder.context.get('placeholder'));\n\n builder\n .configureMd((md) => md.use(yfmPlugin, {log, lang: getConfig().lang || 'en'}))\n .addNode(NoteNode.Note, () => ({\n spec: schemaSpecs[NoteNode.Note],\n toMd: serializerTokens[NoteNode.Note],\n fromMd: {\n tokenSpec: parserTokens[NoteNode.Note],\n },\n }))\n .addNode(NoteNode.NoteTitle, () => ({\n spec: schemaSpecs[NoteNode.NoteTitle],\n toMd: serializerTokens[NoteNode.NoteTitle],\n fromMd: {\n tokenSpec: parserTokens[NoteNode.NoteTitle],\n },\n }))\n .addNode(NoteNode.NoteContent, () => ({\n spec: schemaSpecs[NoteNode.NoteContent],\n toMd: serializerTokens[NoteNode.NoteContent],\n fromMd: {\n tokenSpec: parserTokens[NoteNode.NoteContent],\n },\n }));\n};\n"]}
|
|
@@ -35,7 +35,7 @@ const yfmNoteTooltipPlugin = ({ actions, schema }) => new prosemirror_state_1.Pl
|
|
|
35
35
|
content: (view, { node, pos }) => ((0, jsx_runtime_1.jsx)(toolbar_1.Toolbar, { editor: actions, focus: () => view.focus(),
|
|
36
36
|
// the yfm class allows to access css variables
|
|
37
37
|
// https://github.com/diplodoc-platform/transform/blob/master/src/scss/_common.scss#L17
|
|
38
|
-
className: "yfm g-md-yfm-note-toolbar", data: [
|
|
38
|
+
className: "yfm g-md-yfm-note-toolbar", qa: "g-md-toolbar-yfm-note", data: [
|
|
39
39
|
[
|
|
40
40
|
YfmNoteType.info,
|
|
41
41
|
YfmNoteType.tip,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"../../../../../../../src","sources":["extensions/yfm/YfmNote/plugins/YfmNoteTooltipPlugin/index.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"../../../../../../../src","sources":["extensions/yfm/YfmNote/plugins/YfmNoteTooltipPlugin/index.tsx"],"names":[],"mappings":"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","sourcesContent":["import {CircleInfo, TrashBin} from '@gravity-ui/icons';\nimport type {Node, Schema} from 'prosemirror-model';\nimport {Plugin, type Transaction} from 'prosemirror-state';\nimport type {EditorView} from 'prosemirror-view';\n\nimport type {ExtensionDeps} from '../../../../../core';\nimport {i18n} from '../../../../../i18n/yfm-note';\nimport {BaseTooltipPluginView} from '../../../../../plugins/BaseTooltip';\nimport {Toolbar, ToolbarDataType} from '../../../../../toolbar';\nimport {removeNode} from '../../../../../utils/remove-node';\nimport {noteType} from '../../../index';\n\nimport './index.scss';\n\nenum YfmNoteType {\n tip = 'tip',\n info = 'info',\n warning = 'warning',\n alert = 'alert',\n}\n\nconst isEnable = () => true;\nconst isActive = () => false;\n\nconst changeType: (\n type: YfmNoteType,\n) => (params: {\n schema: Schema;\n node: Node;\n pos: number;\n dispatch: EditorView['dispatch'];\n tr: Transaction;\n}) => void =\n (type) =>\n ({node, pos, dispatch, tr}) => {\n dispatch(\n tr.setNodeMarkup(pos, null, {\n ...node.attrs,\n class: `yfm-note yfm-accent-${type}`,\n 'note-type': type,\n }),\n );\n };\n\nexport const yfmNoteTooltipPlugin = ({actions, schema}: ExtensionDeps) =>\n new Plugin({\n view(view) {\n return new BaseTooltipPluginView(view, {\n idPrefix: 'yfm-note-tooltip',\n nodeType: noteType(view.state.schema),\n popupPlacement: ['bottom', 'top'],\n content: (view, {node, pos}) => (\n <Toolbar\n editor={actions}\n focus={() => view.focus()}\n // the yfm class allows to access css variables\n // https://github.com/diplodoc-platform/transform/blob/master/src/scss/_common.scss#L17\n className=\"yfm g-md-yfm-note-toolbar\"\n qa=\"g-md-toolbar-yfm-note\"\n data={[\n [\n YfmNoteType.info,\n YfmNoteType.tip,\n YfmNoteType.warning,\n YfmNoteType.alert,\n ].map((type) => ({\n id: `note-type-${type}`,\n icon: {data: CircleInfo},\n title: i18n(type),\n type: ToolbarDataType.SingleButton,\n isActive,\n isEnable,\n exec: () =>\n changeType(type)({\n schema,\n pos: pos,\n node: node,\n tr: view.state.tr,\n dispatch: view.dispatch.bind(view),\n }),\n })),\n [\n {\n id: 'note-remove',\n icon: {data: TrashBin},\n title: i18n('remove'),\n type: ToolbarDataType.SingleButton,\n isActive,\n isEnable,\n exec: () =>\n removeNode({\n pos: pos,\n node: node,\n tr: view.state.tr,\n dispatch: view.dispatch.bind(view),\n }),\n },\n ],\n ]}\n />\n ),\n });\n },\n });\n"]}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import type { YfmTablePluginOptions } from '@diplodoc/transform/lib/plugins/table/types.js';
|
|
1
2
|
import type { ExtensionWithOptions } from "../../../../core/index.js";
|
|
2
3
|
import { type YfmTableSchemaOptions } from "./schema.js";
|
|
3
4
|
export { YfmTableNode } from "./const.js";
|
|
4
5
|
export { yfmTableType, yfmTableBodyType, yfmTableRowType, yfmTableCellType } from "./utils.js";
|
|
5
|
-
export type YfmTableSpecsOptions = YfmTableSchemaOptions & {};
|
|
6
|
+
export type YfmTableSpecsOptions = YfmTableSchemaOptions & Pick<YfmTablePluginOptions, 'table_ignoreSplittersInBlockCode' | 'table_ignoreSplittersInBlockMath' | 'table_ignoreSplittersInInlineCode' | 'table_ignoreSplittersInInlineMath'> & {};
|
|
6
7
|
export declare const YfmTableSpecs: ExtensionWithOptions<YfmTableSpecsOptions>;
|
|
@@ -17,8 +17,19 @@ Object.defineProperty(exports, "yfmTableRowType", { enumerable: true, get: funct
|
|
|
17
17
|
Object.defineProperty(exports, "yfmTableCellType", { enumerable: true, get: function () { return utils_1.yfmTableCellType; } });
|
|
18
18
|
const YfmTableSpecs = (builder, options) => {
|
|
19
19
|
const schemaSpecs = (0, schema_1.getSchemaSpecs)(options, builder.context.get('placeholder'));
|
|
20
|
+
/* eslint-disable camelcase */
|
|
21
|
+
const { table_ignoreSplittersInBlockCode, table_ignoreSplittersInBlockMath, table_ignoreSplittersInInlineCode, table_ignoreSplittersInInlineMath, } = options;
|
|
22
|
+
/* eslint-enable camelcase */
|
|
20
23
|
builder
|
|
21
|
-
.configureMd((md) => md.use(index_js_1.default, {
|
|
24
|
+
.configureMd((md) => md.use(index_js_1.default, {
|
|
25
|
+
log: log_js_1.log,
|
|
26
|
+
/* eslint-disable camelcase */
|
|
27
|
+
table_ignoreSplittersInBlockCode,
|
|
28
|
+
table_ignoreSplittersInBlockMath,
|
|
29
|
+
table_ignoreSplittersInInlineCode,
|
|
30
|
+
table_ignoreSplittersInInlineMath,
|
|
31
|
+
/* eslint-enable camelcase */
|
|
32
|
+
}))
|
|
22
33
|
.addNode(const_1.YfmTableNode.Table, () => ({
|
|
23
34
|
spec: schemaSpecs[const_1.YfmTableNode.Table],
|
|
24
35
|
toMd: serializer_1.serializerTokens[const_1.YfmTableNode.Table],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"../../../../../../src","sources":["extensions/yfm/YfmTable/YfmTableSpecs/index.ts"],"names":[],"mappings":";;;;AAAA,2DAAmD;AACnD,sGAAsE;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"../../../../../../src","sources":["extensions/yfm/YfmTable/YfmTableSpecs/index.ts"],"names":[],"mappings":";;;;AAAA,2DAAmD;AACnD,sGAAsE;AAKtE,sCAAqC;AACrC,wCAAsC;AACtC,wCAAoE;AACpE,gDAA8C;AAE9C,oCAAqC;AAA7B,qGAAA,YAAY,OAAA;AACpB,oCAA0F;AAAlF,qGAAA,YAAY,OAAA;AAAE,yGAAA,gBAAgB,OAAA;AAAE,wGAAA,eAAe,OAAA;AAAE,yGAAA,gBAAgB,OAAA;AAWlE,MAAM,aAAa,GAA+C,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;IAC1F,MAAM,WAAW,GAAG,IAAA,uBAAc,EAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC;IAEhF,8BAA8B;IAC9B,MAAM,EACF,gCAAgC,EAChC,gCAAgC,EAChC,iCAAiC,EACjC,iCAAiC,GACpC,GAAG,OAAO,CAAC;IACZ,6BAA6B;IAE7B,OAAO;SACF,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,CAChB,EAAE,CAAC,GAAG,CAAC,kBAAQ,EAAE;QACb,GAAG,EAAH,YAAG;QACH,8BAA8B;QAC9B,gCAAgC;QAChC,gCAAgC;QAChC,iCAAiC;QACjC,iCAAiC;QACjC,6BAA6B;KAChC,CAAC,CACL;SACA,OAAO,CAAC,oBAAY,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;QAChC,IAAI,EAAE,WAAW,CAAC,oBAAY,CAAC,KAAK,CAAC;QACrC,IAAI,EAAE,6BAAgB,CAAC,oBAAY,CAAC,KAAK,CAAC;QAC1C,MAAM,EAAE,EAAC,SAAS,EAAE,qBAAY,CAAC,oBAAY,CAAC,KAAK,CAAC,EAAC;KACxD,CAAC,CAAC;SACF,OAAO,CAAC,oBAAY,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;QAC/B,IAAI,EAAE,WAAW,CAAC,oBAAY,CAAC,IAAI,CAAC;QACpC,IAAI,EAAE,6BAAgB,CAAC,oBAAY,CAAC,IAAI,CAAC;QACzC,MAAM,EAAE,EAAC,SAAS,EAAE,qBAAY,CAAC,oBAAY,CAAC,IAAI,CAAC,EAAC;KACvD,CAAC,CAAC;SACF,OAAO,CAAC,oBAAY,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;QAC9B,IAAI,EAAE,WAAW,CAAC,oBAAY,CAAC,GAAG,CAAC;QACnC,IAAI,EAAE,6BAAgB,CAAC,oBAAY,CAAC,GAAG,CAAC;QACxC,MAAM,EAAE,EAAC,SAAS,EAAE,qBAAY,CAAC,oBAAY,CAAC,GAAG,CAAC,EAAC;KACtD,CAAC,CAAC;SACF,OAAO,CAAC,oBAAY,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;QAC/B,IAAI,EAAE,WAAW,CAAC,oBAAY,CAAC,IAAI,CAAC;QACpC,IAAI,EAAE,6BAAgB,CAAC,oBAAY,CAAC,IAAI,CAAC;QACzC,MAAM,EAAE,EAAC,SAAS,EAAE,qBAAY,CAAC,oBAAY,CAAC,IAAI,CAAC,EAAC;KACvD,CAAC,CAAC,CAAC;AACZ,CAAC,CAAC;AA5CW,QAAA,aAAa,iBA4CxB","sourcesContent":["import {log} from '@diplodoc/transform/lib/log.js';\nimport yfmTable from '@diplodoc/transform/lib/plugins/table/index.js';\nimport type {YfmTablePluginOptions} from '@diplodoc/transform/lib/plugins/table/types.js';\n\nimport type {ExtensionWithOptions} from '../../../../core';\n\nimport {YfmTableNode} from './const';\nimport {parserTokens} from './parser';\nimport {type YfmTableSchemaOptions, getSchemaSpecs} from './schema';\nimport {serializerTokens} from './serializer';\n\nexport {YfmTableNode} from './const';\nexport {yfmTableType, yfmTableBodyType, yfmTableRowType, yfmTableCellType} from './utils';\n\nexport type YfmTableSpecsOptions = YfmTableSchemaOptions &\n Pick<\n YfmTablePluginOptions,\n | 'table_ignoreSplittersInBlockCode'\n | 'table_ignoreSplittersInBlockMath'\n | 'table_ignoreSplittersInInlineCode'\n | 'table_ignoreSplittersInInlineMath'\n > & {};\n\nexport const YfmTableSpecs: ExtensionWithOptions<YfmTableSpecsOptions> = (builder, options) => {\n const schemaSpecs = getSchemaSpecs(options, builder.context.get('placeholder'));\n\n /* eslint-disable camelcase */\n const {\n table_ignoreSplittersInBlockCode,\n table_ignoreSplittersInBlockMath,\n table_ignoreSplittersInInlineCode,\n table_ignoreSplittersInInlineMath,\n } = options;\n /* eslint-enable camelcase */\n\n builder\n .configureMd((md) =>\n md.use(yfmTable, {\n log,\n /* eslint-disable camelcase */\n table_ignoreSplittersInBlockCode,\n table_ignoreSplittersInBlockMath,\n table_ignoreSplittersInInlineCode,\n table_ignoreSplittersInInlineMath,\n /* eslint-enable camelcase */\n }),\n )\n .addNode(YfmTableNode.Table, () => ({\n spec: schemaSpecs[YfmTableNode.Table],\n toMd: serializerTokens[YfmTableNode.Table],\n fromMd: {tokenSpec: parserTokens[YfmTableNode.Table]},\n }))\n .addNode(YfmTableNode.Body, () => ({\n spec: schemaSpecs[YfmTableNode.Body],\n toMd: serializerTokens[YfmTableNode.Body],\n fromMd: {tokenSpec: parserTokens[YfmTableNode.Body]},\n }))\n .addNode(YfmTableNode.Row, () => ({\n spec: schemaSpecs[YfmTableNode.Row],\n toMd: serializerTokens[YfmTableNode.Row],\n fromMd: {tokenSpec: parserTokens[YfmTableNode.Row]},\n }))\n .addNode(YfmTableNode.Cell, () => ({\n spec: schemaSpecs[YfmTableNode.Cell],\n toMd: serializerTokens[YfmTableNode.Cell],\n fromMd: {tokenSpec: parserTokens[YfmTableNode.Cell]},\n }));\n};\n"]}
|
|
@@ -33,5 +33,5 @@ exports.TextAreaFixed = (0, react_1.forwardRef)((props, ref) => {
|
|
|
33
33
|
});
|
|
34
34
|
return (0, jsx_runtime_1.jsx)(uikit_1.TextArea, { ref: ref, ...props, controlRef: controlRef, autoFocus: false });
|
|
35
35
|
});
|
|
36
|
-
exports.TextAreaFixed.displayName = '
|
|
36
|
+
exports.TextAreaFixed.displayName = 'TextAreaFixed';
|
|
37
37
|
//# sourceMappingURL=TextInput.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextInput.js","sourceRoot":"../../../src","sources":["forms/TextInput.tsx"],"names":[],"mappings":";;;;AAAA,iCAAyC;AAEzC,6CAK2B;AAC3B,yCAAwC;AAExC,0EAA0E;AAC7D,QAAA,cAAc,GAAG,IAAA,kBAAU,EAAkC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;IACrF,MAAM,QAAQ,GAAG,IAAA,cAAM,EAAmB,IAAI,CAAC,CAAC;IAChD,MAAM,UAAU,GAAI,KAAK,CAAC,UAAgD,IAAI,QAAQ,CAAC;IAEvF,IAAA,yBAAa,EAAC,GAAG,EAAE;QACf,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;YAClB,UAAU,CAAC,GAAG,EAAE;gBACZ,UAAU,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;YAChC,CAAC,EAAE,EAAE,CAAC,CAAC;QACX,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,iDAAiD;IACjD,OAAO,uBAAC,iBAAc,IAAC,GAAG,EAAE,GAAG,KAAM,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,GAAI,CAAC;AAC7F,CAAC,CAAC,CAAC;AAEH,sBAAc,CAAC,WAAW,GAAG,gBAAgB,CAAC;AAE9C,0EAA0E;AAC7D,QAAA,aAAa,GAAG,IAAA,kBAAU,EAAiC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;IACnF,MAAM,QAAQ,GAAG,IAAA,cAAM,EAAsB,IAAI,CAAC,CAAC;IACnD,MAAM,UAAU,GAAI,KAAK,CAAC,UAAmD,IAAI,QAAQ,CAAC;IAE1F,IAAA,yBAAa,EAAC,GAAG,EAAE;QACf,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;YAClB,UAAU,CAAC,GAAG,EAAE;gBACZ,UAAU,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;YAChC,CAAC,EAAE,EAAE,CAAC,CAAC;QACX,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,uBAAC,gBAAa,IAAC,GAAG,EAAE,GAAG,KAAM,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,GAAI,CAAC;AAC5F,CAAC,CAAC,CAAC;AAEH,qBAAa,CAAC,WAAW,GAAG,
|
|
1
|
+
{"version":3,"file":"TextInput.js","sourceRoot":"../../../src","sources":["forms/TextInput.tsx"],"names":[],"mappings":";;;;AAAA,iCAAyC;AAEzC,6CAK2B;AAC3B,yCAAwC;AAExC,0EAA0E;AAC7D,QAAA,cAAc,GAAG,IAAA,kBAAU,EAAkC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;IACrF,MAAM,QAAQ,GAAG,IAAA,cAAM,EAAmB,IAAI,CAAC,CAAC;IAChD,MAAM,UAAU,GAAI,KAAK,CAAC,UAAgD,IAAI,QAAQ,CAAC;IAEvF,IAAA,yBAAa,EAAC,GAAG,EAAE;QACf,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;YAClB,UAAU,CAAC,GAAG,EAAE;gBACZ,UAAU,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;YAChC,CAAC,EAAE,EAAE,CAAC,CAAC;QACX,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,iDAAiD;IACjD,OAAO,uBAAC,iBAAc,IAAC,GAAG,EAAE,GAAG,KAAM,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,GAAI,CAAC;AAC7F,CAAC,CAAC,CAAC;AAEH,sBAAc,CAAC,WAAW,GAAG,gBAAgB,CAAC;AAE9C,0EAA0E;AAC7D,QAAA,aAAa,GAAG,IAAA,kBAAU,EAAiC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;IACnF,MAAM,QAAQ,GAAG,IAAA,cAAM,EAAsB,IAAI,CAAC,CAAC;IACnD,MAAM,UAAU,GAAI,KAAK,CAAC,UAAmD,IAAI,QAAQ,CAAC;IAE1F,IAAA,yBAAa,EAAC,GAAG,EAAE;QACf,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;YAClB,UAAU,CAAC,GAAG,EAAE;gBACZ,UAAU,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;YAChC,CAAC,EAAE,EAAE,CAAC,CAAC;QACX,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,uBAAC,gBAAa,IAAC,GAAG,EAAE,GAAG,KAAM,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,GAAI,CAAC;AAC5F,CAAC,CAAC,CAAC;AAEH,qBAAa,CAAC,WAAW,GAAG,eAAe,CAAC","sourcesContent":["import {forwardRef, useRef} from 'react';\n\nimport {\n type TextAreaProps,\n TextArea as TextAreaUIKit,\n type TextInputProps,\n TextInput as TextInputUIKit,\n} from '@gravity-ui/uikit';\nimport {useEffectOnce} from 'react-use';\n\n// TODO: remove after fix https://github.com/yandex-cloud/uikit/issues/133\nexport const TextInputFixed = forwardRef<HTMLSpanElement, TextInputProps>((props, ref) => {\n const inputRef = useRef<HTMLInputElement>(null);\n const controlRef = (props.controlRef as React.RefObject<HTMLInputElement>) ?? inputRef;\n\n useEffectOnce(() => {\n if (props.autoFocus) {\n setTimeout(() => {\n controlRef.current?.focus();\n }, 30);\n }\n });\n\n // eslint-disable-next-line jsx-a11y/no-autofocus\n return <TextInputUIKit ref={ref} {...props} controlRef={controlRef} autoFocus={false} />;\n});\n\nTextInputFixed.displayName = 'TextInputFixed';\n\n// TODO: remove after fix https://github.com/yandex-cloud/uikit/issues/133\nexport const TextAreaFixed = forwardRef<HTMLSpanElement, TextAreaProps>((props, ref) => {\n const inputRef = useRef<HTMLTextAreaElement>(null);\n const controlRef = (props.controlRef as React.RefObject<HTMLTextAreaElement>) ?? inputRef;\n\n useEffectOnce(() => {\n if (props.autoFocus) {\n setTimeout(() => {\n controlRef.current?.focus();\n }, 30);\n }\n });\n\n return <TextAreaUIKit ref={ref} {...props} controlRef={controlRef} autoFocus={false} />;\n});\n\nTextAreaFixed.displayName = 'TextAreaFixed';\n"]}
|
|
@@ -20,7 +20,7 @@ function ToolbarButtonGroup({ className, editor, data, focus, onClick, }) {
|
|
|
20
20
|
return ((0, react_1.createElement)(ToolbarButtonPopup_1.ToolbarButtonPopup, { ...item, key: item.id, editor: editor, focus: focus, onClick: onClick, className: b(item.type, { id: item.id }, item.className) }));
|
|
21
21
|
}
|
|
22
22
|
if (item.type === types_1.ToolbarDataType.ListButton) {
|
|
23
|
-
return ((0, react_1.createElement)(ToolbarListButton_1.ToolbarListButton, { ...item, key: item.id, editor: editor, focus: focus, onClick: onClick, className: b(item.type, { id: item.id }, [item.className]) }));
|
|
23
|
+
return ((0, react_1.createElement)(ToolbarListButton_1.ToolbarListButton, { ...item, qaMenu: "g-md-toolbar-menu", key: item.id, editor: editor, focus: focus, onClick: onClick, className: b(item.type, { id: item.id }, [item.className]) }));
|
|
24
24
|
}
|
|
25
25
|
if (item.type === types_1.ToolbarDataType.ReactComponent) {
|
|
26
26
|
const Component = item.component;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToolbarGroup.js","sourceRoot":"../../../src","sources":["toolbar/ToolbarGroup.tsx"],"names":[],"mappings":";;AAmBA,
|
|
1
|
+
{"version":3,"file":"ToolbarGroup.js","sourceRoot":"../../../src","sources":["toolbar/ToolbarGroup.tsx"],"names":[],"mappings":"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","sourcesContent":["import {Fragment} from 'react';\n\nimport {cn} from '../classname';\n\nimport {ToolbarButton} from './ToolbarButton';\nimport {ToolbarButtonPopup} from './ToolbarButtonPopup';\nimport {ToolbarListButton} from './ToolbarListButton';\nimport {type ToolbarBaseProps, ToolbarDataType, type ToolbarGroupData} from './types';\n\nimport './ToolbarGroup.scss';\n\nconst b = cn('toolbar-group');\n\nexport type {ToolbarGroupData};\n\nexport type ToolbarGroupProps<E> = ToolbarBaseProps<E> & {\n data: ToolbarGroupData<E>;\n};\n\nexport function ToolbarButtonGroup<E>({\n className,\n editor,\n data,\n focus,\n onClick,\n}: ToolbarGroupProps<E>) {\n return (\n <div className={b(null, [className])}>\n {data.map((item) => {\n if (item.type === ToolbarDataType.SingleButton) {\n return (\n <ToolbarButton\n {...item}\n key={item.id}\n editor={editor}\n focus={focus}\n onClick={onClick}\n className={b(item.type, {id: item.id}, [item.className])}\n />\n );\n }\n\n if (item.type === ToolbarDataType.ButtonPopup) {\n return (\n <ToolbarButtonPopup\n {...item}\n key={item.id}\n editor={editor}\n focus={focus}\n onClick={onClick}\n className={b(item.type, {id: item.id}, item.className)}\n />\n );\n }\n\n if (item.type === ToolbarDataType.ListButton) {\n return (\n <ToolbarListButton\n {...item}\n qaMenu=\"g-md-toolbar-menu\"\n key={item.id}\n editor={editor}\n focus={focus}\n onClick={onClick}\n className={b(item.type, {id: item.id}, [item.className])}\n />\n );\n }\n\n if (item.type === ToolbarDataType.ReactComponent) {\n const Component = item.component;\n return (\n <Component\n {...item.props}\n key={item.id}\n editor={editor}\n focus={focus}\n onClick={onClick}\n className={b(item.type, {id: item.id}, [item.className])}\n />\n );\n }\n\n if (item.type === ToolbarDataType.ReactNode) {\n return <Fragment key={item.id}>{item.content}</Fragment>;\n }\n\n if (item.type === ToolbarDataType.ReactNodeFn) {\n return <Fragment key={item.id}>{item.content(editor)}</Fragment>;\n }\n\n return null;\n })}\n </div>\n );\n}\n"]}
|
|
@@ -37,12 +37,13 @@ function ToolbarListButton({ className, editor, focus, onClick, icon, title, wit
|
|
|
37
37
|
buttonContent.push((0, jsx_runtime_1.jsx)(react_1.Fragment, { children: '' }, 2));
|
|
38
38
|
buttonContent.push((0, jsx_runtime_1.jsx)(uikit_1.Icon, { data: icons_1.ChevronDown, size: 16 }, 3));
|
|
39
39
|
}
|
|
40
|
+
const titleText = (0, lodash_1.isFunction)(title) ? title() : title;
|
|
40
41
|
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(ToolbarButton_1.ToolbarButtonView, { qa: qa, ref: setAnchorElement, active: someActive, enabled: !everyDisabled, title: title, className: b({ arrow: withArrow }, [className]), onClick: () => {
|
|
41
42
|
if (popupItem)
|
|
42
43
|
setPopupItem(undefined);
|
|
43
44
|
else
|
|
44
45
|
toggleOpen();
|
|
45
|
-
}, children: buttonContent }), (0, jsx_runtime_1.jsx)(uikit_1.Popup, { anchorElement: anchorElement, open: popupOpen, onOpenChange: hide, children: (0, jsx_runtime_1.jsx)(uikit_1.Menu, { size: "l", className: b('menu'), qa: qaMenu, children: data
|
|
46
|
+
}, children: buttonContent }), (0, jsx_runtime_1.jsx)(uikit_1.Popup, { anchorElement: anchorElement, open: popupOpen, onOpenChange: hide, children: (0, jsx_runtime_1.jsx)(uikit_1.Menu, { size: "l", className: b('menu'), qa: qaMenu, "data-toolbar-menu-for": titleText, children: data
|
|
46
47
|
.map((data) => {
|
|
47
48
|
const { id, title, icon, hotkey, isActive, isEnable, exec, hint, hintWhenDisabled, preview, } = data;
|
|
48
49
|
const titleText = (0, lodash_1.isFunction)(title) ? title() : title;
|