All Downloads are FREE. Search and download functionalities are using the official Maven repository.

rabbit-client.static.js.main.3c08e7ef.chunk.js.map Maven / Gradle / Ivy

{"version":3,"sources":["ElementWrapper.tsx","ParameterButton.tsx","ParameterCheckbox.tsx","ParameterColorInput.tsx","ParameterFoldableGroup.tsx","ParameterHTMLSelect.tsx","ParameterNumberInput.tsx","ParameterSlider.tsx","ParameterTextInput.tsx","ParameterTextWithLabel.tsx","ParameterSlider3.tsx","ParameterNumberInput3.tsx","ParameterSlider2.tsx","ParameterNumberInput2.tsx","ParameterSlider4.tsx","ParameterNumberInput4.tsx","ParameterRangeSlider.tsx","ParameterTabsGroup.tsx","ParameterRadio.tsx","ParameterWidget.tsx","Globals.ts","ConnectionDialog.tsx","App.tsx","serviceWorker.ts","index.tsx"],"names":["parameterWrapped","config","Component","_class","_temp","_React$Component","ParameterComponentWrapper","props","_this","Object","classCallCheck","this","possibleConstructorReturn","getPrototypeOf","call","ignoreReadonly","undefined","handleValue","value","param","state","parameter","ValueParameter","onSubmitCb","BangParameter","doBang","setState","handleParameterValueChange","App","VERBOSE_LOG","console","log","concat","userid","handleParameterChange","label","description","readonly","inherits","createClass","key","registerElement","unregisterParameterHandlers","unregisterElement","registerParameterHandlers","error","react","assign","disabled","addValueChangeListener","addChangeListener","removeValueChangedListener","removeChangedListener","React","displayName","name","ParameterButtonC","handleClick","event","confirmation","widget","needsConfirmation","handleDialogOpen","doSendBang","isOpen","handleDialogConfirm","handleDialogCancel","ld","labelDisabled","_this$props","filteredProps","objectWithoutProperties","components","style","whiteSpace","text","onClick","className","canEscapeKeyCancel","cancelButtonText","confirmButtonText","icon","intent","Intent","DANGER","onCancel","onConfirm","confirmationText","ParameterCheckboxC","handleChange","target","checked","readOnly","onChange","alignIndicator","Position","LEFT","large","ParameterColorInputC","RGBAParameter","length","handleSubmit","preventDefault","setStringValue","substr","defaultValue","type","ParameterFoldableGroupC","onSubmit","handleButtonClick","_this2","children","sort","a","b","order","map","p","ParameterWidget_ParameterWidget","id","marginBottom","vertical","marginLeft","renderChildren","COMPONENT_DEFAULT_COLOR","Colors","GRAY1","ParameterHTMLSelectC","entries","EnumParameter","enumDefinition","renderOptions","sel","e","ParameterNumericInputC","valueAsString","step","isFloat","NONE","numdef","typeDefinition","min","typeMin","max","typeMax","datatype","RcpTypes","Datatype","FLOAT32","FLOAT64","minimum","maximum","multipleof","stepSize","minorStepSize","onValueChange","selectAllOnFocus","buttonPosition","RIGHT","placeholder","ParameterSliderC","continuous","handleRelease","renderLabel","val","unit","toFixed","dimensions","width","height","valueRange","react_measure_default","onResize","contentRect","entry","_ref","measureRef","ref","labelPrecision","labelStepSize","onRelease","labelRenderer","ParameterTextInputC","ParameterTextWithLabelC","NumberParameter","td","fixedNumber","display","flexDirection","justifyContent","alignItems","margin","labelWidth","color","LIGHT_GRAY5","background","DARK_GRAY1","flex","flexGrow","ParameterSlider3C","handleChangeX","vec3","clone","x","handleChangeY","y","handleChangeZ","z","Vector3","sub","VECTOR2F32","VECTOR3F32","VECTOR4F32","ParameterNumericInput3C","vec","ParameterSlider2C","Vector2","ParameterNumericInput2C","ParameterSlider4C","handleChangeT","t","Vector4","ParameterNumericInput4C","ParameterRangeSliderC","Range","element_type","elementType","value1","value2","ParameterTabsGroupC","handleTabChange","navbarTabId","TabsWidget","filter","is_group","GroupParameter","is_tabs","parent_tabs","parent","_this3","_this4","index","g_param","title","panel","border","createChildWidgets","borderTop","renderActiveTabPanelOnly","selectedTabId","createTabWidgets","ParameterRadioC","multiselect","selectedValue","ParameterWidget","getWidth","handleValueChange","handleValueSubmit","valueConstrained","setDirty","enabled","SliderWidget","NumberboxWidget","ParameterNumberInput_ParameterNumericInputC","ParameterSlider_ParameterSliderC","defaultWidget","Vector2F32Parameter","Vector2I32Parameter","def","ParameterNumberInput2_ParameterNumericInput2C","ParameterSlider2_ParameterSlider2C","Vector3F32Parameter","Vector3I32Parameter","ParameterNumberInput3_ParameterNumericInput3C","ParameterSlider3_ParameterSlider3C","Vector4F32Parameter","Vector4I32Parameter","ParameterNumberInput4_ParameterNumericInput4C","ParameterSlider4_ParameterSlider4C","BooleanParameter","ParameterCheckbox_ParameterCheckboxC","RGBParameter","ParameterColorInput_ParameterColorInputC","RadiobuttonWidget","ParameterRadio_ParameterRadioC","ParameterHTMLSelect_ParameterHTMLSelectC","ImageParameter","blob","Blob","url","window","URL","createObjectURL","src","alt","RangeParameter","ParameterRangeSlider_ParameterRangeSliderC","ParameterTextInput_ParameterTextInputC","ParameterButton_ParameterButtonC","ParameterTabsGroup_ParameterTabsGroupC","ListWidget","ListPageWidget","ParameterFoldableGroup_ParameterFoldableGroupC","renderValue","DARK_GRAY3","ParameterTextWithLabel_ParameterTextWithLabelC","toString","SSL_INFO_TEXT","ConnectionDialog","componentDidMount","location","hash","_location$hash$replac","replace","split","_location$hash$replac2","slicedToArray","host","port","portAsInt","parseInt","doConnect","updateClient","client","update","setHost","currentTarget","setPort","setTabsInRoot","rootWithTabs","handleAlertConfirm","doDisconnect","connected","disconnected","onError","parameterAdded","parameterRemoved","dispose","resetUI","isNaN","Client","WebSocketClientTransporter","setRootWidget","_assertThisInitialize","assertThisInitialized","onServerInfo","connect","isConnected","JSON","stringify","reason","Error","message","version","applicationId","serverVersion","serverApplicationId","parameterChangeListener","onlyValueChanged","parentChanged","parameters","getRootGroup","forceUpdate","addTimer","clearTimeout","setTimeout","removeFromParent","removeTimer","VERBOSE","createParameterWidget","createWidgets","returnSSLInfo","isSSL","document","startsWith","isFirefox","navigator","userAgent","indexOf","stopTimers","onWindowResize","innerHeight","addEventListener","removeEventListener","react_default","createElement","minHeight","ConnectionDialog_ConnectionDialog","textDecoration","href","Boolean","hostname","match","ReactDOM","render","src_App_0","getElementById","serviceWorker","ready","then","registration","unregister"],"mappings":"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","file":"static/js/main.3c08e7ef.chunk.js","sourcesContent":["import * as React from 'react';\nimport { Parameter, ValueParameter } from 'rabbitcontrol';\nimport {BangParameter} from 'rabbitcontrol';\nimport App from './App';\n\ninterface ExternalProps {\n    label: string;\n    userid: string;\n    registerElement: (element:RegisterCB) => void;\n    unregisterElement: (element:RegisterCB) => void;\n    onSubmitCb: () => void;\n}\n\nexport interface InjectedProps {\n    value: any;\n    parameter?: Parameter;\n    disabled?: boolean;    \n    handleValue?: (value: any) => void;\n    onSubmitCb?: () => void;\n}\n\ntype State = {\n    parameter?: Parameter;\n    label?: string;\n    description?: string;\n    value: any;\n    readonly?: boolean;\n};\n\n\nexport interface RegisterCB {\n    setParameter(parameter: Parameter): void;\n    removeParameter(parameter: Parameter): void;\n    getUserid(): string;\n}\n\n\ninterface Config {\n    ignoreReadonly?: boolean;\n};\n\nexport const parameterWrapped = (config?: Config) =>\n    (\n        Component: (React.ComponentClass\n                  | React.StatelessComponent)\n    ) => {\n\n        type ResultProps = TOriginalProps & ExternalProps;\n\n        const result = class ParameterComponentWrapper extends React.Component implements RegisterCB {\n            \n            static displayName = `ParameterComponentWrapper(${Component.displayName || Component.name})`;\n            private ignoreReadonly = config ? config.ignoreReadonly : undefined;\n\n            constructor(props: ResultProps) {\n                super(props);\n                this.state = {\n                    label: this.props.label,\n                    value: null,\n                    parameter: undefined,            \n                };\n            }\n\n            // override\n            componentDidMount() {\n                this.props.registerElement(this);\n            }\n\n            // override\n            componentWillUnmount() {\n                const param = this.state.parameter;\n                if (param) {\n                    this.unregisterParameterHandlers(param);\n                }\n        \n                this.props.unregisterElement(this);\n            }\n\n            /**\n             * RegisterCB interface\n             * \n             * @param parameter \n             */\n            setParameter(parameter: Parameter): void {\n\n                if (parameter.userid !== this.props.userid) {\n                    console.error(`userid mismatch! parameter: ${parameter.userid} - widget: ${this.props.userid}`);\n                    return;\n                }\n\n                if (App.VERBOSE_LOG) {\n                    console.log(`set parameter for widget (${this.props.userid})`);\n                }\n\n                this.registerParameterHandlers(parameter);\n                this.setState({\n                    parameter: parameter,\n                    label: parameter.label,\n                    readonly: parameter.readonly,\n                });\n            }\n\n            removeParameter(param: Parameter): void {\n                this.unregisterParameterHandlers(param);\n                this.setState({\n                    parameter: undefined,\n                });\n            }\n\n            getUserid(): string {\n                return this.props.userid;\n            }\n\n            /**\n             * handle value\n             */\n            handleValue = (value: any) => {\n                const param = this.state.parameter;\n                if (param instanceof ValueParameter) {\n                    param.value = value;\n                    this.props.onSubmitCb();\n                } else if (param instanceof BangParameter) {\n                    param.doBang();\n                    this.props.onSubmitCb();\n                }\n\n                this.setState({\n                    value: value,\n                })\n            };\n\n            // --------------------------------------------\n            // render\n            // --------------------------------------------\n            render(): JSX.Element {\n\n                const param = this.state.parameter;\n                const readonly = this.state.readonly;\n\n                return (\n                        \n                );\n            }\n\n\n            // --------------------------------------------\n            // --------------------------------------------\n            private handleParameterValueChange = (parameter: Parameter) => {\n\n                if (parameter instanceof ValueParameter) {\n\n                    if (App.VERBOSE_LOG) {\n                        console.log(`setting widget value (${parameter.userid}): ${parameter.value as string}`);                \n                    }\n\n                    this.setState({\n                        value: parameter.value\n                    });\n                }\n            }\n        \n            private handleParameterChange = (parameter: Parameter) => {\n                this.setState({\n                    label: parameter.label,\n                    description: parameter.description,\n                    readonly: parameter.readonly,\n                });\n            }\n        \n            private registerParameterHandlers(parameter: Parameter) {\n\n                if (parameter instanceof ValueParameter) {                    \n                    parameter.addValueChangeListener(this.handleParameterValueChange);                    \n                    this.setState({                        \n                        value: parameter.value,\n                    });\n                }\n        \n                parameter.addChangeListener(this.handleParameterChange); \n            }\n        \n            private unregisterParameterHandlers(parameter: Parameter) {\n                if (parameter instanceof ValueParameter) {\n                    parameter.removeValueChangedListener(this.handleParameterValueChange);\n                }\n                \n                parameter.removeChangedListener(this.handleParameterChange);\n            }\n        };\n\n        return result;\n    };\n\n","import * as React from 'react';\nimport { InjectedProps, parameterWrapped } from './ElementWrapper';\nimport { Button, Intent, Alert, IButtonProps } from '@blueprintjs/core';\n\ninterface Props extends IButtonProps {\n    className?: string;\n    label?: string;\n    labelDisabled?: boolean;\n    confirmationText?: string;\n};\n\ntype State = {\n    isOpen: boolean;\n};\n\nexport class ParameterButtonC extends React.Component {\n\n    constructor(props: Props & InjectedProps) {\n        super(props);\n    \n        this.state = {\n            isOpen: false,\n        };\n    }\n    \n    handleClick = (event: React.MouseEvent) => {\n\n        const parameter = this.props.parameter;\n        let confirmation = false;\n\n        if (parameter && parameter.widget) {\n            confirmation = parameter.widget.needsConfirmation ? true : false;\n        }\n\n        if (confirmation) {\n            // open dialog\n            this.handleDialogOpen();\n        } else {\n            // directly send\n            this.doSendBang();        \n        }\n    }\n\n    render() {\n\n        const ld = this.props.labelDisabled;\n        let label = this.props.label;\n\n        if (this.props.parameter) {\n            label = this.props.parameter.label;\n        }\n\n        const { onSubmitCb, handleValue, ...filteredProps } = this.props;\n\n        return (\n            
\n
\n );\n\n }\n\n private handleDialogOpen = () => this.setState({ isOpen: true });\n private handleDialogConfirm = () => {\n this.setState({ isOpen: false });\n this.doSendBang();\n };\n private handleDialogCancel = () => this.setState({ isOpen: false });\n\n private doSendBang() {\n if (this.props.handleValue) {\n this.props.handleValue(null);\n }\n }\n};\n\nexport const ParameterButton = parameterWrapped()(ParameterButtonC);\n","import * as React from 'react';\nimport { parameterWrapped, InjectedProps } from './ElementWrapper';\nimport { INumericInputProps, Position, Checkbox } from '@blueprintjs/core';\n\ninterface Props extends INumericInputProps {\n};\n\ninterface State {\n};\n\nexport class ParameterCheckboxC extends React.Component {\n\n constructor(props: Props & InjectedProps) {\n super(props);\n \n this.state = { \n };\n } \n\n handleChange = (event: React.FormEvent) => {\n\n if (this.props.handleValue) {\n this.props.handleValue((event.target as HTMLInputElement).checked);\n }\n\n if (this.props.onSubmitCb) {\n this.props.onSubmitCb();\n }\n }\n\n render() {\n const value = this.props.value as boolean; \n let readOnly:boolean|undefined;\n\n\n const param = this.props.parameter;\n if (param) {\n readOnly = param.readonly; \n }\n\n const { onSubmitCb, handleValue, ...filteredProps } = this.props;\n\n return (\n \n );\n }\n};\n\nexport const ParameterCheckbox = parameterWrapped()(ParameterCheckboxC);","import * as React from 'react';\nimport { parameterWrapped, InjectedProps } from './ElementWrapper';\nimport { INumericInputProps, InputGroup } from '@blueprintjs/core';\nimport { ValueParameter, RGBAParameter } from 'rabbitcontrol';\n\ninterface Props extends INumericInputProps {\n};\n\ninterface State {\n};\n\nexport class ParameterColorInputC extends React.Component {\n\n constructor(props: Props & InjectedProps) {\n super(props);\n \n this.state = { \n };\n } \n\n handleChange = (event: React.FormEvent) => {\n\n if (this.props.handleValue) {\n let value = (event.target as HTMLInputElement).value;\n\n // we only can handle RGB values, add alpha if needed\n if (this.props.parameter instanceof RGBAParameter) {\n while (value.length < 9) {\n value += \"f\";\n }\n }\n this.props.handleValue(value);\n }\n\n if (this.props.onSubmitCb) {\n this.props.onSubmitCb();\n }\n }\n \n handleSubmit = (event: any) => {\n \n if (event && event.preventDefault) {\n event.preventDefault();\n }\n\n if (this.props.parameter instanceof ValueParameter) {\n if (this.props.parameter.setStringValue(this.props.value)) {\n if (this.props.onSubmitCb) {\n this.props.onSubmitCb();\n }\n } else {\n console.error(\"could not set stringvalue...\");\n }\n }\n }\n\n render() {\n let value = this.props.value as string;\n let readOnly:boolean|undefined;\n\n // we only can handle RGB values\n if (value.length > 7) {\n value = value.substr(0, 7);\n }\n\n const param = this.props.parameter;\n if (param) {\n readOnly = param.readonly; \n }\n\n const { onSubmitCb, handleValue, defaultValue, ...filteredProps } = this.props;\n\n return ( \n \n );\n }\n \n};\n\nexport const ParameterColorInput = parameterWrapped()(ParameterColorInputC);","import * as React from 'react';\nimport { InjectedProps, parameterWrapped } from './ElementWrapper';\nimport { Colors, Text, Collapse, ControlGroup, Icon } from '@blueprintjs/core';\nimport { GroupParameter, Parameter } from 'rabbitcontrol';\nimport ParameterWidget from './ParameterWidget';\n\ninterface Props {\n style?: React.CSSProperties;\n};\n\ninterface State {\n isOpen: boolean;\n};\n\nexport class ParameterFoldableGroupC extends React.Component {\n\n static readonly COMPONENT_DEFAULT_COLOR = Colors.GRAY1;\n\n constructor(props: Props & InjectedProps) {\n super(props);\n \n this.state = {\n isOpen: false,\n };\n } \n\n onSubmit = () =>\n {\n if (this.props.onSubmitCb)\n {\n this.props.onSubmitCb();\n }\n }\n\n renderChildren()\n {\n const parameter = this.props.parameter;\n\n if (parameter === undefined)\n {\n return (\"\");\n }\n\n return (parameter as GroupParameter).children\n .sort((a: Parameter, b: Parameter): number => \n {\n return ((a.order || 0) - (b.order || 0));\n }).\n map( (p) => { \n return (\n \n );\n });\n }\n \n render()\n {\n let label = \"no label\";\n const param = this.props.parameter;\n if (param && param.label !== undefined) {\n label = param.label;\n }\n\n return (\n
\n \n \n
\n {label}\n \n \n {this.renderChildren()}\n \n
\n );\n }\n\n private handleButtonClick = () => {\n this.setState({\n isOpen: !this.state.isOpen,\n });\n }\n};\n\nexport const ParameterFoldableGroup = parameterWrapped({ignoreReadonly: true})(ParameterFoldableGroupC);","import * as React from 'react';\nimport { parameterWrapped, InjectedProps } from './ElementWrapper';\nimport { INumericInputProps, HTMLSelect } from '@blueprintjs/core';\nimport { EnumParameter } from 'rabbitcontrol';\n\ninterface Props extends INumericInputProps {\n};\n\ninterface State {\n};\n\nexport class ParameterHTMLSelectC extends React.Component {\n\n constructor(props: Props & InjectedProps) {\n super(props); \n } \n\n handleChange = (event: React.FormEvent) => {\n\n if (this.props.handleValue) {\n this.props.handleValue((event.target as HTMLInputElement).value);\n }\n\n if (this.props.onSubmitCb) {\n this.props.onSubmitCb();\n }\n }\n\n render() {\n const value = this.props.value as string; \n let readOnly:boolean|undefined;\n let entries:string[]|undefined;\n let multiSelect:boolean|undefined;\n\n const param = this.props.parameter;\n if (param) {\n readOnly = param.readonly;\n }\n\n if (param instanceof EnumParameter) {\n entries = param.enumDefinition.entries;\n }\n\n const { onSubmitCb, handleValue, ...filteredProps } = this.props;\n\n return (\n \n {this.renderOptions(value, entries)} \n \n );\n }\n\n private renderOptions(sel: string, entries?: string[]) {\n if (entries) {\n return entries.map( e => \n { \n return \n });\n }\n }\n};\n\nexport const ParameterHTMLSelect = parameterWrapped()(ParameterHTMLSelectC);","import * as React from 'react';\nimport { parameterWrapped, InjectedProps } from './ElementWrapper';\nimport { NumericInput, INumericInputProps, Position, Intent } from '@blueprintjs/core';\nimport { NumberDefinition, RcpTypes } from 'rabbitcontrol';\n\ninterface Props extends INumericInputProps {\n};\n\ninterface State {\n};\n\nexport class ParameterNumericInputC extends React.Component {\n\n constructor(props: Props & InjectedProps) {\n super(props);\n \n this.state = { \n };\n } \n\n handleChange = (value: number, valueAsString: string) => {\n if (this.props.handleValue) {\n this.props.handleValue(value);\n }\n\n if (this.props.onSubmitCb) {\n this.props.onSubmitCb();\n }\n }\n\n render() {\n const value = this.props.value as number;\n let step = 1;\n let isFloat:boolean = false; \n let readOnly:boolean = false;\n let intent:Intent = Intent.NONE;\n\n const numdef = this.props.parameter ? this.props.parameter.typeDefinition as NumberDefinition : undefined;\n\n let min:number|undefined = numdef ? numdef.typeMin() : undefined;\n let max:number|undefined = numdef ? numdef.typeMax() : undefined;\n\n const param = this.props.parameter;\n if (param) {\n readOnly = param.readonly || false;\n isFloat = param.typeDefinition.datatype === RcpTypes.Datatype.FLOAT32 ||\n param.typeDefinition.datatype === RcpTypes.Datatype.FLOAT64;\n\n if (numdef !== undefined) {\n\n if (numdef.minimum !== undefined && \n numdef.maximum !== undefined)\n {\n if (numdef.minimum < numdef.maximum) {\n min = numdef.minimum;\n max = numdef.maximum;\n } else {\n // error on min/max\n console.error(\"NumberInput: minimum >= maximum\"); \n intent = Intent.DANGER;\n } \n }\n\n if (numdef.multipleof) {\n step = numdef.multipleof;\n } else if (isFloat) {\n step = 0.1;\n }\n }\n }\n\n const { onSubmitCb, handleValue, ...filteredProps } = this.props;\n \n return ( \n \n );\n }\n};\n\nexport const ParameterNumericInput = parameterWrapped()(ParameterNumericInputC);","import * as React from 'react';\nimport { parameterWrapped, InjectedProps } from './ElementWrapper';\nimport { Slider, ISliderProps } from '@blueprintjs/core';\nimport { NumberDefinition, RcpTypes } from 'rabbitcontrol';\nimport Measure from 'react-measure';\n\ninterface Props extends ISliderProps {\n continuous?: boolean;\n};\n\ninterface State {\n dimensions: {\n width: -1,\n height: -1\n }; \n};\n\nexport class ParameterSliderC extends React.Component {\n\n constructor(props: Props & InjectedProps) {\n super(props);\n \n this.state = {\n dimensions: {\n width: -1,\n height: -1\n },\n };\n } \n\n handleChange = (value: number) => {\n if (this.props.handleValue) {\n this.props.handleValue(value);\n }\n\n if (this.props.continuous) {\n this.handleRelease(value);\n }\n }\n\n handleRelease = (value: number) => {\n if (this.props.onSubmitCb) {\n this.props.onSubmitCb();\n }\n }\n\n render() {\n const value = this.props.value as number;\n let step = 1;\n let isFloat:boolean = false;\n let min:number|undefined = undefined;\n let max:number|undefined = undefined;\n let readOnly:boolean = false;\n\n const param = this.props.parameter;\n if (param) {\n readOnly = param.readonly || false;\n const numdef = param.typeDefinition as NumberDefinition;\n if (numdef !== undefined && \n numdef.minimum !== undefined && \n numdef.maximum !== undefined)\n {\n min = numdef.minimum;\n max = numdef.maximum;\n\n const valueRange = (numdef.maximum - numdef.minimum); \n isFloat = param.typeDefinition.datatype === RcpTypes.Datatype.FLOAT32 ||\n param.typeDefinition.datatype === RcpTypes.Datatype.FLOAT64;\n\n if (numdef.multipleof) {\n step = numdef.multipleof;\n } else if (isFloat) {\n if (this.state !== undefined && this.state.dimensions !== undefined) { \n step = valueRange > 0 && this.state.dimensions.width > 0 ? valueRange / this.state.dimensions.width : 1\n }\n }\n }\n }\n\n const { onSubmitCb, handleValue, ...filteredProps } = this.props;\n\n return ( \n {\n this.setState({ dimensions: contentRect.entry })\n }}\n >\n {({ measureRef }) =>\n
\n \n
\n }\n \n );\n }\n\n private renderLabel = (val: number) => {\n const param = this.props.parameter\n const value = val.toFixed(2);\n let unit;\n if (param) {\n unit = (param.typeDefinition as NumberDefinition).unit\n }\n\n return
{unit ? `${value} ${unit}`: value}
\n }\n};\n\nexport const ParameterSlider = parameterWrapped()(ParameterSliderC);","import * as React from 'react';\nimport { parameterWrapped, InjectedProps } from './ElementWrapper';\nimport { InputGroup } from '@blueprintjs/core';\nimport { ValueParameter } from 'rabbitcontrol';\n\ninterface Props {\n};\n\ninterface State {\n};\n\nexport class ParameterTextInputC extends React.Component {\n\n constructor(props: Props & InjectedProps) {\n super(props);\n \n this.state = { \n };\n } \n\n handleChange = (event: React.FormEvent) => {\n\n if (this.props.handleValue) {\n this.props.handleValue((event.target as HTMLInputElement).value);\n }\n }\n \n handleSubmit = (event: any) => {\n \n if (event && event.preventDefault) {\n event.preventDefault();\n }\n\n if (this.props.parameter instanceof ValueParameter) {\n if (this.props.parameter.setStringValue(this.props.value)) {\n if (this.props.onSubmitCb) {\n this.props.onSubmitCb();\n }\n } else {\n console.error(\"could not set stringvalue...\");\n }\n }\n }\n\n render() {\n const value = this.props.value as string;\n let readOnly:boolean|undefined;\n\n const param = this.props.parameter;\n if (param) {\n readOnly = param.readonly; \n }\n\n const { onSubmitCb, handleValue, ...filteredProps } = this.props;\n\n return ( \n
\n \n \n );\n }\n \n};\n\nexport const ParameterTextInput = parameterWrapped()(ParameterTextInputC);","import * as React from 'react';\nimport { InjectedProps, parameterWrapped } from './ElementWrapper';\nimport { Colors } from '@blueprintjs/core';\nimport { NumberParameter } from 'rabbitcontrol';\nimport { NumberDefinition } from 'rabbitcontrol';\nimport { isBuffer } from 'util';\n\ninterface Props {\n style?: React.CSSProperties;\n label?: string;\n labelDisabled?: boolean;\n labelWidth?: number;\n large?: boolean;\n fixedNumber?: number;\n defaultValue?: any;\n};\n\ninterface State {\n};\n\nexport class ParameterTextWithLabelC extends React.Component {\n\n constructor(props: Props & InjectedProps) {\n super(props);\n \n this.state = {\n };\n } \n\n render() {\n\n const param = this.props.parameter;\n let unit = \"\";\n let value = this.props.defaultValue;\n let label = this.props.label;\n\n if (param) {\n label = param.label;\n }\n \n if (this.props.value !== undefined && this.props.value !== null) {\n value = this.props.value as string;\n }\n\n if (param instanceof NumberParameter) {\n const td = (param.typeDefinition as NumberDefinition);\n\n if (this.props.fixedNumber !== undefined) {\n value = this.props.value.toFixed(this.props.fixedNumber) as string;\n }\n\n if (td.unit) {\n unit = (param.typeDefinition as NumberDefinition).unit as string;\n value += \" \" + unit;\n }\n\n if (td.maximum && td.minimum) {\n if (param.value < td.minimum || param.value > td.maximum) {\n value = \"Err\";\n }\n }\n \n }\n\n return (\n \n
\n \n
\n\n
\n {this.props.labelDisabled ? \"\" : label}\n
\n\n\n
\n\n
\n {value}\n
\n
\n\n
\n\n
\n );\n }\n};\n\nexport const ParameterTextWithLabel = parameterWrapped({ignoreReadonly:true})(ParameterTextWithLabelC);","import * as React from 'react';\nimport { parameterWrapped, InjectedProps } from './ElementWrapper';\nimport { Slider, ISliderProps } from '@blueprintjs/core';\nimport { RcpTypes, Vector3, Vector3F32Definition } from 'rabbitcontrol';\nimport Measure from 'react-measure';\n\ninterface Props extends ISliderProps {\n continuous?: boolean;\n};\n\ninterface State {\n dimensions: {\n width: -1,\n height: -1\n }; \n};\n\nexport class ParameterSlider3C extends React.Component {\n\n constructor(props: Props & InjectedProps) {\n super(props);\n \n this.state = {\n dimensions: {\n width: -1,\n height: -1\n },\n };\n } \n\n handleChangeX = (value: number) => {\n\n const vec3 = (this.props.value as Vector3).clone();\n vec3.x = value;\n\n if (this.props.handleValue) {\n this.props.handleValue(vec3);\n }\n\n if (this.props.continuous) {\n this.handleRelease(0);\n }\n }\n handleChangeY = (value: number) => {\n\n const vec3 = (this.props.value as Vector3).clone();\n vec3.y = value;\n\n if (this.props.handleValue) {\n this.props.handleValue(vec3);\n }\n\n if (this.props.continuous) {\n this.handleRelease(0);\n }\n }\n handleChangeZ = (value: number) => {\n\n const vec3 = (this.props.value as Vector3).clone();\n vec3.z = value;\n\n if (this.props.handleValue) {\n this.props.handleValue(vec3);\n }\n\n if (this.props.continuous) {\n this.handleRelease(0);\n }\n }\n\n handleRelease = (value: number) => {\n if (this.props.onSubmitCb) {\n this.props.onSubmitCb();\n }\n }\n\n render() {\n const value = this.props.value as Vector3;\n let step = new Vector3(1, 1, 1);\n let isFloat:boolean = false;\n let min:Vector3|undefined = undefined;\n let max:Vector3|undefined = undefined;\n let readOnly:boolean = false;\n\n const param = this.props.parameter;\n if (param) {\n readOnly = param.readonly || false;\n const numdef = param.typeDefinition as Vector3F32Definition;\n if (numdef !== undefined && \n numdef.minimum !== undefined && \n numdef.maximum !== undefined)\n {\n min = numdef.minimum;\n max = numdef.maximum;\n\n const valueRange = numdef.maximum.clone().sub(numdef.minimum);\n \n isFloat = param.typeDefinition.datatype === RcpTypes.Datatype.VECTOR2F32 ||\n param.typeDefinition.datatype === RcpTypes.Datatype.VECTOR3F32 ||\n param.typeDefinition.datatype === RcpTypes.Datatype.VECTOR4F32;\n\n if (numdef.multipleof) {\n step = numdef.multipleof;\n } else if (isFloat) {\n if (this.state !== undefined && this.state.dimensions !== undefined) { \n step.x = valueRange.x > 0 && this.state.dimensions.width > 0 ? valueRange.x / this.state.dimensions.width : 1;\n step.y = valueRange.y > 0 && this.state.dimensions.width > 0 ? valueRange.y / this.state.dimensions.width : 1;\n step.z = valueRange.z > 0 && this.state.dimensions.width > 0 ? valueRange.z / this.state.dimensions.width : 1;\n }\n }\n }\n }\n\n const { onSubmitCb, handleValue, ...filteredProps } = this.props;\n\n return ( \n {\n this.setState({ dimensions: contentRect.entry })\n }}\n >\n {({ measureRef }) =>\n
\n \n \n \n
\n }\n \n );\n }\n\n private renderLabel = (val: number) => {\n const param = this.props.parameter\n const value = val.toFixed(2); // fixme for small numbers!\n let unit;\n if (param) {\n unit = (param.typeDefinition as Vector3F32Definition).unit\n }\n \n return
{unit ? `${value} ${unit}`: value}
\n }\n};\n\nexport const ParameterSlider3 = parameterWrapped()(ParameterSlider3C);","import * as React from 'react';\nimport { parameterWrapped, InjectedProps } from './ElementWrapper';\nimport { NumericInput, INumericInputProps, Position, Intent } from '@blueprintjs/core';\nimport { RcpTypes, Vector3, Vector3F32Definition } from 'rabbitcontrol';\n\ninterface Props extends INumericInputProps {\n};\n\ninterface State {\n};\n\nexport class ParameterNumericInput3C extends React.Component {\n\n constructor(props: Props & InjectedProps) {\n super(props);\n \n this.state = { \n };\n } \n\n handleChangeX = (value: number, valueAsString: string) => {\n\n const vec = (this.props.value as Vector3).clone();\n vec.x = value;\n\n if (this.props.handleValue) {\n this.props.handleValue(vec);\n }\n\n if (this.props.onSubmitCb) {\n this.props.onSubmitCb();\n }\n }\n handleChangeY = (value: number, valueAsString: string) => {\n\n const vec = (this.props.value as Vector3).clone();\n vec.y = value;\n\n if (this.props.handleValue) {\n this.props.handleValue(vec);\n }\n\n if (this.props.onSubmitCb) {\n this.props.onSubmitCb();\n }\n }\n handleChangeZ = (value: number, valueAsString: string) => {\n\n const vec = (this.props.value as Vector3).clone();\n vec.z = value;\n\n if (this.props.handleValue) {\n this.props.handleValue(vec);\n }\n\n if (this.props.onSubmitCb) {\n this.props.onSubmitCb();\n }\n }\n\n render() {\n const value = this.props.value as Vector3;\n let step = new Vector3(1, 1, 1);\n let isFloat:boolean = false;\n let min:Vector3|undefined = undefined;\n let max:Vector3|undefined = undefined; \n let readOnly:boolean = false;\n let intent:Intent = Intent.NONE;\n\n const param = this.props.parameter;\n if (param) {\n\n readOnly = param.readonly || false;\n\n isFloat = param.typeDefinition.datatype === RcpTypes.Datatype.VECTOR2F32 ||\n param.typeDefinition.datatype === RcpTypes.Datatype.VECTOR3F32 ||\n param.typeDefinition.datatype === RcpTypes.Datatype.VECTOR4F32;\n\n const numdef = param.typeDefinition as Vector3F32Definition;\n\n if (numdef !== undefined) {\n\n if (numdef.minimum !== undefined && \n numdef.maximum !== undefined)\n {\n\n if (numdef.minimum.x < numdef.maximum.x &&\n numdef.minimum.y < numdef.maximum.y &&\n numdef.minimum.z < numdef.maximum.z)\n {\n min = numdef.minimum;\n max = numdef.maximum;\n } else {\n // error on min/max\n console.error(\"NumberInput: minimum >= maximum\"); \n intent = Intent.DANGER;\n }\n }\n\n if (numdef.multipleof) {\n step = numdef.multipleof;\n } else if (isFloat) {\n step.x = 0.1;\n step.y = 0.1;\n step.z = 0.1;\n }\n }\n }\n\n const { onSubmitCb, handleValue, ...filteredProps } = this.props;\n\n return (\n
\n \n \n \n
\n );\n }\n};\n\nexport const ParameterNumericInput3 = parameterWrapped()(ParameterNumericInput3C);","import * as React from 'react';\nimport { parameterWrapped, InjectedProps } from './ElementWrapper';\nimport { Slider, ISliderProps } from '@blueprintjs/core';\nimport { RcpTypes, Vector3F32Definition, Vector2, Vector2F32Definition } from 'rabbitcontrol';\nimport Measure from 'react-measure';\n\ninterface Props extends ISliderProps {\n continuous?: boolean;\n};\n\ninterface State {\n dimensions: {\n width: -1,\n height: -1\n }; \n};\n\nexport class ParameterSlider2C extends React.Component {\n\n constructor(props: Props & InjectedProps) {\n super(props);\n \n this.state = {\n dimensions: {\n width: -1,\n height: -1\n },\n };\n } \n\n handleChangeX = (value: number) => {\n\n const vec = (this.props.value as Vector2).clone();\n vec.x = value;\n\n if (this.props.handleValue) {\n this.props.handleValue(vec);\n }\n\n if (this.props.continuous) {\n this.handleRelease(0);\n }\n }\n handleChangeY = (value: number) => {\n\n const vec = (this.props.value as Vector2).clone();\n vec.y = value;\n\n if (this.props.handleValue) {\n this.props.handleValue(vec);\n }\n\n if (this.props.continuous) {\n this.handleRelease(0);\n }\n }\n\n handleRelease = (value: number) => {\n if (this.props.onSubmitCb) {\n this.props.onSubmitCb();\n }\n }\n\n render() {\n const value = this.props.value as Vector2;\n let step = new Vector2(1, 1);\n let isFloat:boolean = false;\n let min:Vector2|undefined = undefined;\n let max:Vector2|undefined = undefined; \n let readOnly:boolean = false;\n\n const param = this.props.parameter;\n if (param) {\n readOnly = param.readonly || false;\n const numdef = param.typeDefinition as Vector2F32Definition;\n if (numdef !== undefined && \n numdef.minimum !== undefined && \n numdef.maximum !== undefined)\n {\n min = numdef.minimum;\n max = numdef.maximum;\n\n const valueRange = numdef.maximum.clone().sub(numdef.minimum);\n \n isFloat = param.typeDefinition.datatype === RcpTypes.Datatype.VECTOR2F32 ||\n param.typeDefinition.datatype === RcpTypes.Datatype.VECTOR3F32 ||\n param.typeDefinition.datatype === RcpTypes.Datatype.VECTOR4F32;\n\n if (numdef.multipleof) {\n step = numdef.multipleof;\n } else if (isFloat) {\n if (this.state !== undefined && this.state.dimensions !== undefined) { \n step.x = valueRange.x > 0 && this.state.dimensions.width > 0 ? valueRange.x / this.state.dimensions.width : 1;\n step.y = valueRange.y > 0 && this.state.dimensions.width > 0 ? valueRange.y / this.state.dimensions.width : 1;\n }\n }\n }\n }\n\n const { onSubmitCb, handleValue, ...filteredProps } = this.props;\n\n return ( \n {\n this.setState({ dimensions: contentRect.entry })\n }}\n >\n {({ measureRef }) =>\n
\n \n \n
\n }\n \n );\n }\n\n private renderLabel = (val: number) => {\n const param = this.props.parameter\n const value = val.toFixed(2); // fixme for small numbers!\n let unit;\n if (param) {\n unit = (param.typeDefinition as Vector3F32Definition).unit\n }\n \n return
{unit ? `${value} ${unit}`: value}
\n }\n};\n\nexport const ParameterSlider2 = parameterWrapped()(ParameterSlider2C);","import * as React from 'react';\nimport { parameterWrapped, InjectedProps } from './ElementWrapper';\nimport { NumericInput, INumericInputProps, Position, Intent } from '@blueprintjs/core';\nimport { RcpTypes, Vector3, Vector3F32Definition, Vector2 } from 'rabbitcontrol';\n\ninterface Props extends INumericInputProps {\n};\n\ninterface State {\n};\n\nexport class ParameterNumericInput2C extends React.Component {\n\n constructor(props: Props & InjectedProps) {\n super(props);\n \n this.state = { \n };\n } \n\n handleChangeX = (value: number, valueAsString: string) => {\n\n const vec = (this.props.value as Vector2).clone();\n vec.x = value;\n\n if (this.props.handleValue) {\n this.props.handleValue(vec);\n }\n\n if (this.props.onSubmitCb) {\n this.props.onSubmitCb();\n }\n }\n handleChangeY = (value: number, valueAsString: string) => {\n\n const vec = (this.props.value as Vector2).clone();\n vec.y = value;\n\n if (this.props.handleValue) {\n this.props.handleValue(vec);\n }\n\n if (this.props.onSubmitCb) {\n this.props.onSubmitCb();\n }\n }\n\n render() {\n const value = this.props.value as Vector2;\n let step = new Vector2(1, 1);\n let isFloat:boolean = false;\n let min:Vector2|undefined = undefined;\n let max:Vector2|undefined = undefined; \n let readOnly:boolean = false;\n let intent:Intent = Intent.NONE;\n\n const param = this.props.parameter;\n if (param) {\n\n readOnly = param.readonly || false;\n\n isFloat = param.typeDefinition.datatype === RcpTypes.Datatype.VECTOR2F32 ||\n param.typeDefinition.datatype === RcpTypes.Datatype.VECTOR3F32 ||\n param.typeDefinition.datatype === RcpTypes.Datatype.VECTOR4F32;\n\n const numdef = param.typeDefinition as Vector3F32Definition;\n\n if (numdef !== undefined) {\n\n if (numdef.minimum !== undefined && \n numdef.maximum !== undefined)\n {\n\n if (numdef.minimum.x < numdef.maximum.x &&\n numdef.minimum.y < numdef.maximum.y)\n {\n min = numdef.minimum;\n max = numdef.maximum;\n } else {\n // error on min/max\n console.error(\"NumberInput: minimum >= maximum\"); \n intent = Intent.DANGER;\n }\n }\n\n if (numdef.multipleof) {\n step = numdef.multipleof;\n } else if (isFloat) {\n step.x = 0.1;\n step.y = 0.1;\n }\n }\n }\n\n const { onSubmitCb, handleValue, ...filteredProps } = this.props;\n\n return (\n
\n \n \n
\n );\n }\n};\n\nexport const ParameterNumericInput2 = parameterWrapped()(ParameterNumericInput2C);","import * as React from 'react';\nimport { parameterWrapped, InjectedProps } from './ElementWrapper';\nimport { Slider, ISliderProps } from '@blueprintjs/core';\nimport { RcpTypes, Vector3F32Definition, Vector4, Vector4F32Definition } from 'rabbitcontrol';\nimport Measure from 'react-measure';\n\ninterface Props extends ISliderProps {\n continuous?: boolean;\n};\n\ninterface State {\n dimensions: {\n width: -1,\n height: -1\n }; \n};\n\nexport class ParameterSlider4C extends React.Component {\n\n constructor(props: Props & InjectedProps) {\n super(props);\n \n this.state = {\n dimensions: {\n width: -1,\n height: -1\n },\n };\n } \n\n handleChangeX = (value: number) => {\n\n const vec = (this.props.value as Vector4).clone();\n vec.x = value;\n\n if (this.props.handleValue) {\n this.props.handleValue(vec);\n }\n\n if (this.props.continuous) {\n this.handleRelease(0);\n }\n }\n handleChangeY = (value: number) => {\n\n const vec = (this.props.value as Vector4).clone();\n vec.y = value;\n\n if (this.props.handleValue) {\n this.props.handleValue(vec);\n }\n\n if (this.props.continuous) {\n this.handleRelease(0);\n }\n }\n handleChangeZ = (value: number) => {\n\n const vec = (this.props.value as Vector4).clone();\n vec.z = value;\n\n if (this.props.handleValue) {\n this.props.handleValue(vec);\n }\n\n if (this.props.continuous) {\n this.handleRelease(0);\n }\n }\n handleChangeT = (value: number) => {\n\n const vec = (this.props.value as Vector4).clone();\n vec.t = value;\n\n if (this.props.handleValue) {\n this.props.handleValue(vec);\n }\n\n if (this.props.continuous) {\n this.handleRelease(0);\n }\n }\n\n handleRelease = (value: number) => {\n if (this.props.onSubmitCb) {\n this.props.onSubmitCb();\n }\n }\n\n render() {\n const value = this.props.value as Vector4;\n let step = new Vector4(1, 1, 1, 1);\n let isFloat:boolean = false;\n let min:Vector4|undefined = undefined;\n let max:Vector4|undefined = undefined; \n let readOnly:boolean = false;\n\n const param = this.props.parameter;\n if (param) {\n readOnly = param.readonly || false;\n const numdef = param.typeDefinition as Vector4F32Definition;\n if (numdef !== undefined && \n numdef.minimum !== undefined && \n numdef.maximum !== undefined)\n {\n min = numdef.minimum;\n max = numdef.maximum;\n\n const valueRange = numdef.maximum.clone().sub(numdef.minimum);\n \n isFloat = param.typeDefinition.datatype === RcpTypes.Datatype.VECTOR2F32 ||\n param.typeDefinition.datatype === RcpTypes.Datatype.VECTOR3F32 ||\n param.typeDefinition.datatype === RcpTypes.Datatype.VECTOR4F32;\n\n if (numdef.multipleof) {\n step = numdef.multipleof;\n } else if (isFloat) {\n if (this.state !== undefined && this.state.dimensions !== undefined) { \n step.x = valueRange.x > 0 && this.state.dimensions.width > 0 ? valueRange.x / this.state.dimensions.width : 1;\n step.y = valueRange.y > 0 && this.state.dimensions.width > 0 ? valueRange.y / this.state.dimensions.width : 1;\n step.z = valueRange.z > 0 && this.state.dimensions.width > 0 ? valueRange.z / this.state.dimensions.width : 1;\n step.t = valueRange.t > 0 && this.state.dimensions.width > 0 ? valueRange.t / this.state.dimensions.width : 1;\n }\n }\n }\n }\n\n const { onSubmitCb, handleValue, ...filteredProps } = this.props;\n\n return ( \n {\n this.setState({ dimensions: contentRect.entry })\n }}\n >\n {({ measureRef }) =>\n
\n \n \n \n \n
\n }\n \n );\n }\n\n private renderLabel = (val: number) => {\n const param = this.props.parameter\n const value = val.toFixed(2); // fixme for small numbers!\n let unit;\n if (param) {\n unit = (param.typeDefinition as Vector3F32Definition).unit\n }\n \n return
{unit ? `${value} ${unit}`: value}
\n }\n};\n\nexport const ParameterSlider4 = parameterWrapped()(ParameterSlider4C);","import * as React from 'react';\nimport { parameterWrapped, InjectedProps } from './ElementWrapper';\nimport { NumericInput, INumericInputProps, Position, Intent } from '@blueprintjs/core';\nimport { RcpTypes, Vector3, Vector3F32Definition, Vector4, Vector4F32Definition } from 'rabbitcontrol';\n\ninterface Props extends INumericInputProps {\n};\n\ninterface State {\n};\n\nexport class ParameterNumericInput4C extends React.Component {\n\n constructor(props: Props & InjectedProps) {\n super(props);\n \n this.state = { \n };\n } \n\n handleChangeX = (value: number, valueAsString: string) => {\n\n const vec = (this.props.value as Vector4).clone();\n vec.x = value;\n\n if (this.props.handleValue) {\n this.props.handleValue(vec);\n }\n\n if (this.props.onSubmitCb) {\n this.props.onSubmitCb();\n }\n }\n handleChangeY = (value: number, valueAsString: string) => {\n\n const vec = (this.props.value as Vector4).clone();\n vec.y = value;\n\n if (this.props.handleValue) {\n this.props.handleValue(vec);\n }\n\n if (this.props.onSubmitCb) {\n this.props.onSubmitCb();\n }\n }\n handleChangeZ = (value: number, valueAsString: string) => {\n\n const vec = (this.props.value as Vector4).clone();\n vec.z = value;\n\n if (this.props.handleValue) {\n this.props.handleValue(vec);\n }\n\n if (this.props.onSubmitCb) {\n this.props.onSubmitCb();\n }\n }\n handleChangeT = (value: number, valueAsString: string) => {\n\n const vec = (this.props.value as Vector4).clone();\n vec.t = value;\n\n if (this.props.handleValue) {\n this.props.handleValue(vec);\n }\n\n if (this.props.onSubmitCb) {\n this.props.onSubmitCb();\n }\n }\n\n render() {\n const value = this.props.value as Vector4;\n let step = new Vector4(1, 1, 1, 1);\n let isFloat:boolean = false;\n let min:Vector4|undefined = undefined;\n let max:Vector4|undefined = undefined; \n let readOnly:boolean = false;\n let intent:Intent = Intent.NONE;\n\n const param = this.props.parameter;\n if (param) {\n\n readOnly = param.readonly || false;\n\n isFloat = param.typeDefinition.datatype === RcpTypes.Datatype.VECTOR2F32 ||\n param.typeDefinition.datatype === RcpTypes.Datatype.VECTOR3F32 ||\n param.typeDefinition.datatype === RcpTypes.Datatype.VECTOR4F32;\n\n const numdef = param.typeDefinition as Vector4F32Definition;\n\n if (numdef !== undefined) {\n\n if (numdef.minimum !== undefined && \n numdef.maximum !== undefined)\n {\n\n if (numdef.minimum.x < numdef.maximum.x &&\n numdef.minimum.y < numdef.maximum.y &&\n numdef.minimum.z < numdef.maximum.z &&\n numdef.minimum.t < numdef.maximum.t)\n {\n min = numdef.minimum;\n max = numdef.maximum;\n } else {\n // error on min/max\n console.error(\"NumberInput: minimum >= maximum\"); \n intent = Intent.DANGER;\n }\n }\n\n if (numdef.multipleof) {\n step = numdef.multipleof;\n } else if (isFloat) {\n step.x = 0.1;\n step.y = 0.1;\n step.z = 0.1;\n step.t = 0.1;\n }\n }\n }\n\n const { onSubmitCb, handleValue, ...filteredProps } = this.props;\n\n return (\n
\n \n \n \n \n
\n );\n }\n};\n\nexport const ParameterNumericInput4 = parameterWrapped()(ParameterNumericInput4C);","import * as React from 'react';\nimport { parameterWrapped, InjectedProps } from './ElementWrapper';\nimport { RangeSlider, IRangeSliderProps, NumberRange } from '@blueprintjs/core';\nimport { NumberDefinition, RcpTypes, Range, RangeDefinition, ValueParameter, RangeParameter } from 'rabbitcontrol';\nimport Measure from 'react-measure';\n\ninterface Props extends IRangeSliderProps {\n continuous?: boolean;\n rangeValue?: Range;\n};\n\ninterface State {\n dimensions: {\n width: -1,\n height: -1\n }; \n};\n\nexport class ParameterRangeSliderC extends React.Component {\n\n constructor(props: Props & InjectedProps) {\n super(props);\n \n this.state = {\n dimensions: {\n width: -1,\n height: -1\n },\n };\n } \n\n handleChange = (value: NumberRange) => {\n if (this.props.handleValue) {\n this.props.handleValue(new Range(value[0], value[1]));\n }\n\n if (this.props.continuous) {\n this.handleRelease(value);\n }\n }\n\n handleRelease = (value: NumberRange) => {\n if (this.props.onSubmitCb) {\n this.props.onSubmitCb();\n }\n }\n\n render() {\n \n const value = this.props.value as Range;\n let step = 1;\n let isFloat:boolean = false;\n let min:number|undefined = undefined;\n let max:number|undefined = undefined;\n let default_value:NumberRange;\n let readOnly:boolean = false;\n\n const param = this.props.parameter;\n if (param) {\n readOnly = param.readonly || false;\n const numdef = param.typeDefinition as RangeDefinition;\n const element_type = numdef.elementType as NumberDefinition;\n if (numdef !== undefined && \n element_type.minimum !== undefined && \n element_type.maximum !== undefined)\n {\n min = element_type.minimum;\n max = element_type.maximum;\n\n const valueRange = (max - min); \n isFloat = param.typeDefinition.datatype === RcpTypes.Datatype.FLOAT32 ||\n param.typeDefinition.datatype === RcpTypes.Datatype.FLOAT64;\n\n if (element_type.multipleof) {\n step = element_type.multipleof;\n } else if (isFloat) {\n if (this.state !== undefined && this.state.dimensions !== undefined) { \n step = valueRange > 0 && this.state.dimensions.width > 0 ? valueRange / this.state.dimensions.width : 1\n }\n }\n }\n }\n\n const { onSubmitCb, handleValue, ...filteredProps } = this.props;\n\n return ( \n {\n this.setState({ dimensions: contentRect.entry })\n }}\n >\n {({ measureRef }) =>\n
\n \n
\n }\n \n );\n }\n\n private renderLabel = (val: number) => {\n const param = this.props.parameter\n const value = val.toFixed(2);\n let unit;\n if (param) {\n unit = (param.typeDefinition as NumberDefinition).unit\n }\n\n return
{unit ? `${value} ${unit}`: value}
\n }\n};\n\nexport const ParameterRangeSlider = parameterWrapped()(ParameterRangeSliderC);","import * as React from 'react';\nimport { InjectedProps, parameterWrapped } from './ElementWrapper';\nimport { Colors, Tabs, Tab, TabId } from '@blueprintjs/core';\nimport { Parameter, GroupParameter, TabsWidget } from 'rabbitcontrol';\nimport ParameterWidget from './ParameterWidget';\n\ninterface Props {\n style?: React.CSSProperties;\n};\n\ninterface State {\n navbarTabId: TabId;\n};\n\nexport class ParameterTabsGroupC extends React.Component {\n\n static readonly COMPONENT_DEFAULT_COLOR = Colors.GRAY1;\n\n constructor(props: Props & InjectedProps) {\n super(props);\n\n this.state = {navbarTabId: 0};\n } \n\n handleTabChange = (navbarTabId: TabId) => \n {\n this.setState({ navbarTabId });\n }\n\n onSubmit = () =>\n {\n if (this.props.onSubmitCb)\n {\n this.props.onSubmitCb();\n }\n }\n \n createChildWidgets(parameter: GroupParameter) \n {\n if (parameter.widget instanceof TabsWidget) \n {\n return ();\n }\n\n\n return parameter.children\n .filter(param => \n {\n const is_group = (param instanceof GroupParameter);\n var is_tabs = false;\n var parent_tabs = false;\n\n if (is_group)\n {\n is_tabs = param.widget instanceof TabsWidget;\n }\n\n if (param.parent !== undefined)\n {\n parent_tabs = param.parent.widget instanceof TabsWidget;\n }\n\n return !is_group || (!parent_tabs && !is_tabs);\n })\n .sort((a: Parameter, b: Parameter): number =>\n { \n return ((a.order || 0) - (b.order || 0)); \n })\n .map((param) =>\n {\n return ;\n });\n }\n\n renderChildren()\n {\n // render non-group chilren of this GroupParameter\n const parameter = this.props.parameter;\n\n if (parameter !== undefined)\n {\n return (parameter as GroupParameter).children\n .filter(param => !(param instanceof GroupParameter))\n .sort((a: Parameter, b: Parameter): number => ((a.order || 0) - (b.order || 0)))\n .map((p) =>\n { \n return (\n \n );\n });\n } \n \n return (\"\");\n }\n\n createTabWidgets(parameter: Parameter[])\n {\n if (parameter === undefined)\n {\n return \"\";\n }\n\n // each parameter gets a tab\n\n return parameter\n .filter(param => param instanceof GroupParameter)\n .sort((a: Parameter, b: Parameter): number => ((a.order || 0) - (b.order || 0)))\n .map((param, index) => \n {\n const g_param = (param as GroupParameter);\n\n if (this.state.navbarTabId === 0\n && index === 0\n && param.label !== undefined)\n {\n // set this delayed!\n this.setState({navbarTabId: (param.label as string)});\n }\n\n return \n
\n {this.createChildWidgets(g_param)}\n
\n\n {g_param.children.length > 0 ?\n
\n
\n {this.renderChildren()}\n
\n : \"\"\n } \n
}\n />;\n });\n }\n \n render() \n {\n let label = \"\";\n const param = this.props.parameter;\n \n if (param \n && param.label !== undefined) \n {\n label = param.label;\n }\n\n return (\n
\n\n \n {/* {this.props.labelDisabled !== true ? :
} */}\n {this.createTabWidgets((this.props.parameter as GroupParameter).children)}\n
\n
\n );\n }\n\n};\n\nexport const ParameterTabsGroup = parameterWrapped({ignoreReadonly: true})(ParameterTabsGroupC);","import * as React from 'react';\nimport { parameterWrapped, InjectedProps } from './ElementWrapper';\nimport { RadioGroup, Radio } from '@blueprintjs/core';\nimport { EnumParameter } from 'rabbitcontrol';\n\ninterface Props {\n};\n\ninterface State {\n};\n\nexport class ParameterRadioC extends React.Component {\n\n constructor(props: Props & InjectedProps)\n {\n \n super(props); \n console.log(\"create radio parameter\");\n } \n\n handleChange = (event: React.FormEvent) => \n {\n console.log(\"radio changed: \"+ (event.target as HTMLInputElement).value);\n \n if (this.props.handleValue) {\n this.props.handleValue((event.target as HTMLInputElement).value);\n }\n\n if (this.props.onSubmitCb) {\n this.props.onSubmitCb();\n }\n }\n\n render() {\n const value = this.props.value as string; \n let readOnly:boolean|undefined;\n let entries:string[]|undefined;\n let multiSelect:boolean|undefined;\n\n const param = this.props.parameter;\n if (param) {\n readOnly = param.readonly;\n }\n\n if (param instanceof EnumParameter) {\n entries = param.enumDefinition.entries;\n\n // TODO: use a multiselectable RadioGroup\n multiSelect = param.enumDefinition.multiselect;\n }\n\n const { onSubmitCb, handleValue, ...filteredProps } = this.props;\n\n return ( \n \n {this.renderOptions(value, entries)} \n \n );\n }\n\n private renderOptions(sel: string, entries?: string[]) {\n if (entries) { \n return entries.map( e => \n {\n return \n });\n }\n }\n};\n\nexport const ParameterRadio = parameterWrapped()(ParameterRadioC);","import { Colors } from '@blueprintjs/core';\nimport { BangParameter, BooleanParameter, EnumParameter, GroupParameter, ImageParameter, NumberDefinition, NumberParameter, Parameter, RGBAParameter, RGBParameter, SliderWidget, ValueParameter, Vector3F32Parameter, NumberboxWidget, Vector3F32Definition, Vector3I32Parameter, Vector2I32Parameter, Vector2F32Parameter, Vector2F32Definition, Vector4F32Parameter, Vector4I32Parameter, Vector4F32Definition, Range, RangeParameter, RangeDefinition, RcpTypes, TabsWidget, ListWidget, ListPageWidget, RadiobuttonWidget } from 'rabbitcontrol';\nimport * as React from 'react';\nimport { ParameterButtonC } from './ParameterButton';\nimport { ParameterCheckboxC } from './ParameterCheckbox';\nimport { ParameterColorInputC } from './ParameterColorInput';\nimport { ParameterFoldableGroupC } from './ParameterFoldableGroup';\nimport { ParameterHTMLSelectC } from './ParameterHTMLSelect';\nimport { ParameterNumericInputC } from './ParameterNumberInput';\nimport { ParameterSliderC } from './ParameterSlider';\nimport { ParameterTextInputC } from './ParameterTextInput';\nimport { ParameterTextWithLabelC } from './ParameterTextWithLabel';\nimport { ParameterSlider3C } from './ParameterSlider3';\nimport { ParameterNumericInput3C } from './ParameterNumberInput3';\nimport { ParameterSlider2C } from './ParameterSlider2';\nimport { ParameterNumericInput2C } from './ParameterNumberInput2';\nimport { ParameterSlider4C } from './ParameterSlider4';\nimport { ParameterNumericInput4C } from './ParameterNumberInput4';\nimport { ParameterRangeSliderC } from './ParameterRangeSlider'\nimport { ParameterTabsGroupC } from './ParameterTabsGroup';\nimport { ParameterRadioC } from './ParameterRadio';\n\n\ninterface Props {\n parameter: Parameter;\n onSubmitCb: () => void;\n};\n\ninterface State {\n enabled: boolean;\n label?: string;\n description?: string;\n value: any; \n dimensions: {\n width: -1,\n height: -1\n }; \n};\n\nexport default class ParameterWidget extends React.Component {\n\n constructor(props: Props) {\n super(props);\n\n let value;\n if (this.props.parameter instanceof ValueParameter && \n this.props.parameter.value != null)\n {\n value = this.props.parameter.valueConstrained();\n }\n\n this.state = {\n enabled: true,\n label: this.props.parameter.label,\n description: this.props.parameter.description,\n value: value,\n dimensions: {\n width: -1,\n height: -1\n }\n };\n }\n\n componentDidMount() {\n\n // setup callbacks\n const param = this.props.parameter;\n\n if (param instanceof ValueParameter) {\n\n param.addValueChangeListener((p) => \n {\n if (p instanceof ValueParameter)\n {\n this.setState({\n value: p.valueConstrained()\n });\n }\n });\n }\n\n param.addChangeListener((p) => {\n this.setState({\n label: p.label,\n description: p.description,\n })\n });\n }\n\n getWidth = () => {\n return 1;\n }\n\n handleValueChange = (value: any) => {\n\n // set parameter value\n if (this.props.parameter instanceof ValueParameter) {\n this.props.parameter.value = value;\n }\n\n this.setState({ value: value });\n }\n\n handleValueSubmit = (event: any) =>\n {\n //\n if (event && event.preventDefault) {\n event.preventDefault();\n } \n if (this.props.parameter instanceof ValueParameter) {\n if (this.props.parameter.setStringValue(this.state.value)) {\n // call onsubmitcb to update client\n this.props.onSubmitCb();\n } else {\n // set string value failed... \n console.error(\"could not set stringvalue...\"); \n this.setState({ value: this.props.parameter.valueConstrained() });\n }\n }\n }\n\n handleButtonClick = () => {\n this.props.parameter.setDirty();\n this.props.onSubmitCb(); \n }\n\n renderValue(parameter: Parameter)\n {\n const widget = parameter.widget; \n \n if (widget instanceof SliderWidget) {\n console.log(\"SLIDER WIDGET\");\n } else if (widget instanceof NumberboxWidget) {\n console.log(\"NUMBERBOX WIDGET\");\n }\n\n \n if (parameter instanceof ValueParameter) {\n\n if (parameter instanceof NumberParameter) {\n\n const numdef = parameter.typeDefinition as NumberDefinition;\n if (!(widget instanceof NumberboxWidget) &&\n numdef !== undefined && \n numdef.minimum !== undefined && \n numdef.maximum !== undefined)\n { \n if (numdef.minimum < numdef.maximum) {\n\n return ( \n
\n
{parameter.label}
\n \n
\n );\n } else {\n console.error(\"ParameterWidget: minimum >= maximum\");\n return this.defaultWidget();\n }\n } else {\n\n // numeric input\n return (\n
\n
{parameter.label}
\n \n
\n );\n }\n }\n else if (parameter instanceof Vector2F32Parameter ||\n parameter instanceof Vector2I32Parameter) {\n\n const def = parameter.typeDefinition as Vector2F32Definition;\n \n if (!(widget instanceof NumberboxWidget) &&\n def !== undefined && \n def.minimum !== undefined && \n def.maximum !== undefined)\n { \n if (def.minimum.x < def.maximum.x &&\n def.minimum.y < def.maximum.y)\n {\n return ( \n
\n
{parameter.label}
\n \n
\n );\n } else {\n console.error(\"ParameterWidget: minimum >= maximum\");\n return this.defaultWidget();\n }\n } else {\n // numeric input\n return (\n
\n
{parameter.label}
\n \n
\n );\n }\n }\n else if (parameter instanceof Vector3F32Parameter ||\n parameter instanceof Vector3I32Parameter) {\n\n const def = parameter.typeDefinition as Vector3F32Definition;\n \n if (!(widget instanceof NumberboxWidget) &&\n def !== undefined && \n def.minimum !== undefined && \n def.maximum !== undefined)\n { \n if (def.minimum.x < def.maximum.x &&\n def.minimum.y < def.maximum.y &&\n def.minimum.z < def.maximum.z)\n {\n return ( \n
\n
{parameter.label}
\n \n
\n );\n } else {\n console.error(\"ParameterWidget: minimum >= maximum\");\n return this.defaultWidget();\n }\n } else {\n // numeric input\n return (\n
\n
{parameter.label}
\n \n
\n );\n }\n }\n else if (parameter instanceof Vector4F32Parameter ||\n parameter instanceof Vector4I32Parameter) {\n\n const def = parameter.typeDefinition as Vector4F32Definition;\n \n if (!(widget instanceof NumberboxWidget) &&\n def !== undefined && \n def.minimum !== undefined && \n def.maximum !== undefined)\n { \n if (def.minimum.x < def.maximum.x &&\n def.minimum.y < def.maximum.y &&\n def.minimum.z < def.maximum.z &&\n def.minimum.t < def.maximum.t)\n {\n return ( \n
\n
{parameter.label}
\n \n
\n );\n } else {\n console.error(\"ParameterWidget: minimum >= maximum\");\n return this.defaultWidget();\n }\n } else {\n // numeric input\n return (\n
\n
{parameter.label}
\n \n
\n );\n }\n }\n else if (parameter instanceof BooleanParameter) {\n return (\n
\n
{parameter.label}
\n \n
\n );\n } \n else if (parameter instanceof RGBAParameter ||\n parameter instanceof RGBParameter)\n {\n return (\n
\n
{parameter.label}
\n \n
\n );\n } \n else if (parameter instanceof EnumParameter)\n {\n if (parameter.widget instanceof RadiobuttonWidget)\n {\n return (\n
\n
\n {parameter.label}\n
\n \n
\n );\n }\n else\n {\n return (\n
\n
{parameter.label}
\n \n
\n );\n }\n\n }\n else if (parameter instanceof ImageParameter) {\n \n const blob = new Blob([parameter.value]);\n const url = window.URL.createObjectURL(blob);\n\n return (\n
\n
{parameter.label}
\n \"IMAGE\"\n
\n );\n }\n else if (parameter instanceof RangeParameter) {\n \n const Range = parameter.value;\n\n return (\n
\n
{parameter.label}
\n \n
\n );\n }\n else {\n // everything else...\n return (\n
\n
{parameter.label}
\n \n
\n );\n }\n\n // end: value parameter\n }\n else if (parameter instanceof BangParameter)\n {\n return (\n \n );\n }\n else if (parameter instanceof GroupParameter) \n {\n if (parameter.widget instanceof TabsWidget)\n {\n return (\n \n );\n }\n else if (parameter.widget instanceof ListWidget)\n {\n // TODO\n }\n else if (parameter.widget instanceof ListPageWidget)\n {\n // ?\n }\n\n // default: foldable group\n return (\n \n );\n }\n\n return;\n }\n\n render()\n {\n const parameter = this.props.parameter;\n\n if (!parameter) {\n console.error(\"no parameter\"); \n return (\n
no parameter
\n );\n }\n\n // less framing for tabs widgets\n if (parameter.widget instanceof TabsWidget)\n {\n return ( \n
\n {this.renderValue(parameter)}\n
\n );\n }\n\n // default framing\n return ( \n
\n \n
\n {this.renderValue(parameter)}\n
\n
\n );\n }\n\n private defaultWidget() {\n return (\n \n );\n }\n\n}","import { Colors } from \"@blueprintjs/core\";\n\nexport const SSL_INFO_TEXT = \"Connecting to unsecure websocket from secure context. You may need to adjust your browser settings.\";\nexport const SSL_INFO_TEXT_FIREFOX = \"To allow this please set: 'network.websocket.allowInsecureFromHTTPS' in 'about:config' to 'true'.\";","import * as React from 'react';\nimport ParameterWidget from './ParameterWidget'\nimport { Alert, Intent, InputGroup, ControlGroup, Text, Colors, Checkbox } from '@blueprintjs/core';\nimport { Parameter, Client, WebSocketClientTransporter, GroupParameter, TabsWidget } from 'rabbitcontrol';\nimport { SSL_INFO_TEXT, SSL_INFO_TEXT_FIREFOX } from './Globals';\n\ntype Props = {\n};\n\ntype State = {\n isConnected: boolean;\n error?: string;\n client?: Client;\n host: string;\n port: number;\n parameters: Parameter[];\n serverVersion: string;\n serverApplicationId: string;\n rootWithTabs: boolean;\n};\n\nexport default class ConnectionDialog extends React.Component {\n \n private addTimer?: number;\n private removeTimer?: number; \n\n constructor(props: Props) {\n super(props);\n\n this.state = {\n isConnected: false,\n host: 'localhost',\n port: 10000,\n parameters: [],\n serverVersion: \"\",\n serverApplicationId: \"\",\n rootWithTabs: false,\n };\n\n Client.VERBOSE = true;\n }\n\n componentDidMount = () => {\n \n /**\n * If a hash is provided, try to connect right away\n */\n if (location.hash !== '') {\n const [host, port] = location.hash.replace('#', '').split(':');\n const portAsInt = parseInt(port, 10); \n\n console.log(\"autoconnect: \" + host + \":\" + portAsInt);\n this.doConnect(host, portAsInt);\n }\n }\n\n updateClient = () => {\n if (this.state.client) {\n this.state.client.update();\n }\n }\n\n createParameterWidget(parameter: Parameter)\n {\n return ;\n }\n\n createWidgets(parameter: Parameter[])\n {\n return parameter\n .filter(param => this.state.rootWithTabs === false || !(param instanceof GroupParameter))\n .sort((a: Parameter, b: Parameter): number => \n {\n return ((a.order || 0) - (b.order || 0));\n })\n .map((param) => \n { \n return this.createParameterWidget(param); \n });\n }\n\n setHost = (e: any) => {\n this.setState({\n host: e.currentTarget.value as string,\n });\n }\n\n setPort = (e: any) => {\n this.setState({\n port: parseInt(e.currentTarget.value, 10),\n });\n }\n\n setTabsInRoot = (e: React.FormEvent) => {\n this.setState({\n rootWithTabs: (e.target as HTMLInputElement).checked,\n });\n }\n\n\n render() \n {\n return
\n\n
\n {\n this.state.client ?\n\n this.state.rootWithTabs === true ?\n\n \n :\n this.createWidgets(this.state.parameters)\n\n :\n \"\"\n }\n
\n\n\n
\n {this.state.serverApplicationId !== \"\" ? `connected to: ${this.state.serverApplicationId} - ` : \"\"}{this.state.serverVersion !== \"\" ? `rcp: ${this.state.serverVersion}` : \"\"}\n
\n\n \n Connect to a RabbitControl server\n
\n
\n \n Host: \n \n \n
\n \n Port:  \n \n \n
\n\n \n Tabs in Root\n \n\n
\n {this.state.error ? this.state.error : undefined}\n {this.returnSSLInfo()}\n
\n\n \n \n
;\n }\n\n private returnSSLInfo() {\n const isSSL = document.location ? document.location.toString().startsWith(\"https\") : false;\n const isFirefox = navigator.userAgent.indexOf(\"Firefox\") != -1;\n\n if (isSSL && isFirefox) {\n return (\n
\n
\n {SSL_INFO_TEXT}\n

\n {SSL_INFO_TEXT_FIREFOX}\n
\n );\n } else if (isSSL) {\n return (\n
\n
\n {SSL_INFO_TEXT}\n
\n );\n }\n }\n\n private handleAlertConfirm = () => {\n\n this.setState({\n error: undefined\n });\n\n this.doConnect(this.state.host, this.state.port);\n }\n\n private resetUI()\n {\n console.log(\"reset UI\");\n\n this.stopTimers();\n\n this.setState({\n isConnected: false, \n client: undefined, \n parameters: [],\n serverVersion: \"\",\n serverApplicationId: \"\",\n });\n }\n\n private doDisconnect = () => {\n \n const client = this.state.client;\n\n if (client) {\n // clear callbacks\n // TODO: do this in client\n client.connected = undefined;\n client.disconnected = undefined; \n client.onError = undefined;\n client.parameterAdded = undefined;\n client.parameterRemoved = undefined;\n\n // dispose client\n client.dispose();\n }\n\n this.resetUI();\n }\n\n private doConnect = (host: string, port: number) => {\n\n if (host !== undefined &&\n host !== \"\" &&\n !isNaN(port))\n {\n // disconnect first\n this.doDisconnect();\n\n // set info\n this.setState({\n host: host,\n port: port,\n error: undefined\n });\n\n const client = new Client(new WebSocketClientTransporter())\n\n // NOTE: needed??\n client.setRootWidget(new TabsWidget());\n \n const { connected, disconnected, parameterAdded, parameterRemoved, onError, onServerInfo } = this;\n Object.assign(client, { connected, disconnected, parameterAdded, parameterRemoved, onError, onServerInfo });\n \n try {\n client.connect(host, port);\n\n this.setState({\n client: client\n });\n\n } catch (e) {\n console.log(e);\n }\n }\n }\n\n /**\n * client callbacks - socket\n */\n private connected = () => \n {\n this.setState({\n isConnected: true,\n });\n\n console.log(\"ConnectionDialog connected!\");\n }\n\n private disconnected = (event: CloseEvent) => \n {\n console.log(\"ConnectionDialog disconneted: \" + JSON.stringify(event));\n\n this.setState({\n error: `disconnected${event.reason ? \": \" + JSON.stringify(event.reason) : \"\"}`\n });\n\n this.resetUI();\n }\n\n private onError = (error: any) => {\n\n if (error instanceof Error) {\n console.error(error.message);\n } else {\n this.setState({\n error: error.toString(),\n });\n this.resetUI();\n }\n\n }\n\n /**\n * client callbacks info\n */\n private onServerInfo = (version: string, applicationId: string) => \n {\n this.setState({\n serverVersion: version,\n serverApplicationId: applicationId\n });\n }\n\n private parameterChangeListener = (parameter: Parameter) => \n {\n if (!parameter.onlyValueChanged())\n {\n if (parameter.parent !== undefined)\n {\n console.log(\"parameter changed: \" + parameter.parent.label);\n }\n else if (parameter.parentChanged())\n {\n if (this.state.client)\n {\n this.setState({\n parameters: this.state.client.getRootGroup().children,\n });\n }\n }\n else\n {\n console.log(\"paraemter changed: no parent\"); \n }\n \n //force redraw\n this.forceUpdate();\n }\n }\n\n /**\n * client callbacks parameter\n */\n private parameterAdded = (parameter: Parameter) => \n {\n parameter.addChangeListener(this.parameterChangeListener);\n\n // delay setting parameter\n // more paramater might arrive in quick succession\n if (this.addTimer !== undefined) {\n window.clearTimeout(this.addTimer);\n this.addTimer = undefined;\n }\n\n this.addTimer = window.setTimeout(() => {\n if (this.state.client)\n {\n this.setState({\n parameters: this.state.client.getRootGroup().children,\n });\n }\n }, 100);\n }\n\n private parameterRemoved = (parameter: Parameter) =>\n {\n // this.rootParam.removeChild(parameter);\n parameter.removeFromParent();\n\n parameter.removeChangedListener(this.parameterChangeListener);\n \n if (this.removeTimer!== undefined) {\n window.clearTimeout(this.removeTimer);\n this.removeTimer = undefined;\n }\n\n this.removeTimer = window.setTimeout(() => {\n if (this.state.client)\n {\n this.setState({\n parameters: this.state.client.getRootGroup().children,\n });\n }\n }, 100);\n }\n\n /**\n * \n */\n private stopTimers() {\n\n if (this.addTimer !== undefined) {\n window.clearTimeout(this.addTimer);\n this.addTimer = undefined;\n }\n\n if (this.removeTimer!== undefined) {\n window.clearTimeout(this.removeTimer);\n this.removeTimer = undefined;\n }\n\n }\n\n} \n","import React, { Component } from 'react';\nimport './App.css';\nimport ConnectionDialog from './ConnectionDialog';\nimport { Colors } from '@blueprintjs/core';\n\n/*\n use with local tcp-ts:\n $ npm link ../rcp-ts\n\n unlink with:\n $ npm unlink rabbitcontrol\n $ npm install\n*/\n\n\ninterface Props {\n};\n\ninterface State {\n height: number;\n};\n\nclass App extends React.Component {\n\n static VERBOSE_LOG = false;\n\n constructor(props: Props) {\n super(props);\n\n this.state = {\n height: window.innerHeight,\n };\n }\n\n componentDidMount() \n {\n window.addEventListener('resize', this.onWindowResize);\n }\n\n componentWillUnmount() \n {\n window.removeEventListener('resize', this.onWindowResize);\n }\n\n onWindowResize = () => \n {\n this.setState({ height: window.innerHeight });\n }\n\n render() {\n\n return (\n
\n\n
\n\n \n\n
\n\n
\n \n rcp-ts-client\n \n  written by \n \n i-n-g-o\n \n   |  \n \n rabbitControl\n \n
\n uses \n \n blueprintjs\n \n
\n
\n\n
\n );\n }\n}\n\nexport default App;\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read http://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.1/8 is considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\ntype Config = {\n onSuccess?: (registration: ServiceWorkerRegistration) => void;\n onUpdate?: (registration: ServiceWorkerRegistration) => void;\n};\n\nexport function register(config?: Config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(\n (process as { env: { [key: string]: string } }).env.PUBLIC_URL,\n window.location.href\n );\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit http://bit.ly/CRA-PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl: string, config?: Config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See http://bit.ly/CRA-PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl: string, config?: Config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl)\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister();\n });\n }\n}\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport 'normalize.css/normalize.css'\nimport '@blueprintjs/icons/lib/css/blueprint-icons.css'\nimport '@blueprintjs/core/lib/css/blueprint.css'\nimport './index.css';\nimport App from './App';\nimport * as serviceWorker from './serviceWorker';\n\nReactDOM.render(, document.getElementById('root'));\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: http://bit.ly/CRA-PWA\nserviceWorker.unregister();\n"],"sourceRoot":""}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy