import { useTranslation } from 'next-i18next' import { Tr, KeyTd, ValTd, Attributes, pointCoords, pathInfo } from './path.mjs' const textInfo = (props) => props.point ? (
Text info
Coordinates{pointCoords(props.point)}Name{props.pointName}Part{props.partName}Attributes
) : null const XrayText = (props) => ( { evt.stopPropagation() props.showInfo(textInfo(props)) }} /> ) const TextSpans = ({ point, className = '', style = {}, onClick = null }) => { const { t } = useTranslation(['plugin']) let text = [] // Handle translation let translated = '' for (const string of point.attributes.getAsArray('data-text')) { if (string) translated += t(string.toString()).replace(/"/g, '"') + ' ' } // Handle muti-line text if (translated.indexOf('\n') !== -1) { let key = 0 let lines = translated.split('\n') text.push({lines.shift()}) for (let line of lines) { key++ text.push( {line.toString().replace(/"/g, '"')} ) } } else text.push( {translated} ) return text } export const Text = (props) => { const attr = props.point.attributes.asPropsIfPrefixIs('data-text-') return ( <> {props.gist._state?.xray?.enabled && } ) } const XrayTextOnPath = (props) => ( { evt.stopPropagation() props.showInfo(pathInfo(props)) }} /> ) export const TextOnPath = (props) => { const { t } = useTranslation(['plugin']) // Handle translation (and spaces) let translated = '' for (let string of props.path.attributes.getAsArray('data-text')) { translated += t(string).replace(/"/g, '"') + ' ' } const textPathProps = { xlinkHref: '#' + props.pathId, startOffset: '0%', } const align = props.path.attributes.get('data-text-class') if (align && align.indexOf('center') > -1) textPathProps.startOffset = '50%' else if (align && align.indexOf('right') > -1) textPathProps.startOffset = '100%' const attr = props.path.attributes.asPropsIfPrefixIs('data-text-') return ( {props.gist._state?.xray?.enabled && ( )} ) }