import * as React from "react"; import { FormElementProps, FormElementRegistration } from "@vertigis/workflow"; import CircularSlider from '@fseehawer/react-circular-slider'; // Cast to React Component to satisfy TypeScript interface Continuous { enabled: boolean; clicks: number; interval: number; } type KnobPosition = 'top' | 'right' | 'bottom' | 'left'; interface CircularSliderProps extends FormElementProps { width?: number; min?: number; max?: number; label?: string; knobPosition?: KnobPosition; // Fixed casing continuous?: Continuous; // Fixed spelling } function CircularSliderElement(props: CircularSliderProps): React.ReactElement { const { value, setValue, width = 280, min = 0, max = 360, label = "Value", knobPosition = 'top', // Fixed casing ...rest } = props; const handleChange = React.useCallback((newValue: string | number) => { setValue(typeof newValue === 'string' ? parseFloat(newValue) : newValue); }, [setValue]); return ( ); } const CircularSliderElementRegistration: FormElementRegistration = { component: CircularSliderElement, id: "CircularSlider", getInitialProperties: () => ({ value: 0, min: 0, max: 360, label: "Value", knobPosition: 'top', // Fixed casing width: 280 }) }; export default CircularSliderElementRegistration;