import { Chevron } from 'shared/components/navigation/primary.js' import PctDegOption from 'shared/components/workbench/inputs/design-option-pct-deg' import CountOption from 'shared/components/workbench/inputs/design-option-count' import ListOption from 'shared/components/workbench/inputs/design-option-list' import { formatMm, formatPercentage, optionType } from 'shared/utils.js' import { Li, Ul, Details, Summary, SumButton, SumDiv, Deg } from 'shared/components/workbench/menu' import { useTranslation } from 'next-i18next' const values = { pct: props => { const val = (typeof props.gist?.options?.[props.option] === 'undefined') ? props.pattern.config.options[props.option].pct/100 : props.gist.options[props.option] return ( {formatPercentage(val)} {props.pattern.config.options[props.option]?.toAbs ? ' | ' +formatMm(props.pattern.config.options[props.option]?.toAbs(val, props.gist)) : null } ) }, bool: props => { const { t } = useTranslation(['app']) const dflt = props.pattern.config.options[props.option].bool const current = props.gist?.options?.[props.option] return ( {props.gist?.options?.[props.option] ? t('yes') : t('no') } ) }, count: props => { const dflt = props.pattern.config.options[props.option].count const current = props.gist?.options?.[props.option] return (dflt==current || typeof current === 'undefined') ? {dflt} : {current} }, list: props => { const dflt = props.pattern.config.options[props.option].dflt const current = props.gist?.options?.[props.option] const prefix = `${props.option}.o.` return (dflt==current || typeof current === 'undefined') ? {props.t(prefix+dflt)} : {props.t(prefix+current)} }, deg: props => { const dflt = props.pattern.config.options[props.option].deg const current = props.gist?.options?.[props.option] return (dflt==current || typeof current === 'undefined') ? {dflt}° : {current}° }, mm: props => { return
No mm val yet
}, constant: props => { returnNo constant val yet
}, } const Tmp = props =>not yet
const inputs = { pct: PctDegOption, count: CountOption, deg: props =>Mm options are not supported. Please report this.
, constant: Tmp, } const Option = props => { const { t } = useTranslation([`o_${props.pattern.config.name}`]) const type = optionType(props.pattern.config.options[props.option]) const Input = inputs[type] const Value = values[type] const toggleBoolean = () => { const dflt = props.pattern.config.options[props.option].bool const current = props.gist?.options?.[props.option] if (typeof current === 'undefined') props.updateGist(['options', props.option], !dflt) else props.unsetGist(['options', props.option]) } return (type === 'bool') ? (