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 dflt = props.pattern.config.options[props.option].bool const current = props.gist?.options?.[props.option] return ( {props.gist?.options?.[props.option] ? props.t('app.yes') : props.t('app.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 = `options.${props.pattern.config.name}.${props.option}.options.` 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 => { return

No constant val yet

}, } const Tmp = props =>

not yet

const inputs = { pct: PctDegOption, count: CountOption, deg: props => , list: ListOption, mm:

Mm options are not supported. Please report this.

, constant: Tmp, } const Option = props => { const { t } = useTranslation(['app']) 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') ? (
  • { t(`options.${props.pattern.config.name}.${props.option}.title`) }
  • ) : (
  • { t(`options.${props.pattern.config.name}.${props.option}.title`) }
  • ) } export default Option