import {makeT} from 'app/client/lib/localization'; import {ITooltipControl, showTooltip, tooltipCloseButton} from 'app/client/ui/tooltips'; import {testId, theme} from 'app/client/ui2018/cssVars'; import {icon} from 'app/client/ui2018/icons'; import {cssLink} from 'app/client/ui2018/links'; import {dom, styled} from 'grainjs'; const t = makeT('EditorTooltip'); export function showTooltipToCreateFormula(editorDom: HTMLElement, convert: () => void) { function buildTooltip(ctl: ITooltipControl) { return cssConvertTooltip(icon('Convert'), cssLink(t('Convert column to formula'), dom.on('mousedown', (ev) => { ev.preventDefault(); convert(); }), testId('editor-tooltip-convert'), ), tooltipCloseButton(ctl), ); } const offerCtl = showTooltip(editorDom, buildTooltip, {key: 'col-to-formula'}); dom.onDisposeElem(editorDom, offerCtl.close); const lis = dom.onElem(editorDom, 'keydown', () => { lis.dispose(); offerCtl.close(); }); } const cssConvertTooltip = styled('div', ` display: flex; align-items: center; --icon-color: ${theme.controlFg}; & > .${cssLink.className} { margin-left: 8px; } `);