@adcops/autocore-react 3.0.39 → 3.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/additional-docs/AutoCoreTagContext.md +441 -0
- package/dist/assets/BlocklyLogo.d.ts +1 -0
- package/dist/assets/BlocklyLogo.d.ts.map +1 -0
- package/dist/assets/Distance.d.ts +1 -0
- package/dist/assets/Distance.d.ts.map +1 -0
- package/dist/assets/JogLong.d.ts +1 -0
- package/dist/assets/JogLong.d.ts.map +1 -0
- package/dist/assets/JogMedium.d.ts +1 -0
- package/dist/assets/JogMedium.d.ts.map +1 -0
- package/dist/assets/JogShort.d.ts +1 -0
- package/dist/assets/JogShort.d.ts.map +1 -0
- package/dist/assets/PythonLogo.d.ts +1 -0
- package/dist/assets/PythonLogo.d.ts.map +1 -0
- package/dist/assets/Rotation3D.d.ts +1 -0
- package/dist/assets/Rotation3D.d.ts.map +1 -0
- package/dist/assets/RotationCcw.d.ts +1 -0
- package/dist/assets/RotationCcw.d.ts.map +1 -0
- package/dist/assets/RotationCcwA.d.ts +1 -0
- package/dist/assets/RotationCcwA.d.ts.map +1 -0
- package/dist/assets/RotationCcwB.d.ts +1 -0
- package/dist/assets/RotationCcwB.d.ts.map +1 -0
- package/dist/assets/RotationCcwC.d.ts +1 -0
- package/dist/assets/RotationCcwC.d.ts.map +1 -0
- package/dist/assets/RotationCw.d.ts +1 -0
- package/dist/assets/RotationCw.d.ts.map +1 -0
- package/dist/assets/RotationCwA.d.ts +1 -0
- package/dist/assets/RotationCwA.d.ts.map +1 -0
- package/dist/assets/RotationCwB.d.ts +1 -0
- package/dist/assets/RotationCwB.d.ts.map +1 -0
- package/dist/assets/RotationCwC.d.ts +1 -0
- package/dist/assets/RotationCwC.d.ts.map +1 -0
- package/dist/assets/Run.d.ts +1 -0
- package/dist/assets/Run.d.ts.map +1 -0
- package/dist/assets/Speed.d.ts +1 -0
- package/dist/assets/Speed.d.ts.map +1 -0
- package/dist/assets/SpeedFast.d.ts +1 -0
- package/dist/assets/SpeedFast.d.ts.map +1 -0
- package/dist/assets/SpeedMedium.d.ts +1 -0
- package/dist/assets/SpeedMedium.d.ts.map +1 -0
- package/dist/assets/SpeedNone.d.ts +1 -0
- package/dist/assets/SpeedNone.d.ts.map +1 -0
- package/dist/assets/SpeedSlow.d.ts +1 -0
- package/dist/assets/SpeedSlow.d.ts.map +1 -0
- package/dist/assets/Walk.d.ts +1 -0
- package/dist/assets/Walk.d.ts.map +1 -0
- package/dist/assets/index.d.ts +1 -0
- package/dist/assets/index.d.ts.map +1 -0
- package/dist/components/AutoCoreDevPanel.d.ts +144 -0
- package/dist/components/AutoCoreDevPanel.d.ts.map +1 -0
- package/dist/components/AutoCoreDevPanel.js +1 -0
- package/dist/components/BlocklyEditor.d.ts +1 -0
- package/dist/components/BlocklyEditor.d.ts.map +1 -0
- package/dist/components/BlocklyEditor.js +1 -1
- package/dist/components/CodeEditor.d.ts +2 -1
- package/dist/components/CodeEditor.d.ts.map +1 -0
- package/dist/components/CodeEditor.js +1 -1
- package/dist/components/FileList.d.ts +1 -0
- package/dist/components/FileList.d.ts.map +1 -0
- package/dist/components/FileList.js +1 -1
- package/dist/components/FileSelect.d.ts +1 -0
- package/dist/components/FileSelect.d.ts.map +1 -0
- package/dist/components/FileSelect.js +1 -1
- package/dist/components/FitText.d.ts +1 -0
- package/dist/components/FitText.d.ts.map +1 -0
- package/dist/components/FitText.js +1 -1
- package/dist/components/Indicator.d.ts +2 -1
- package/dist/components/Indicator.d.ts.map +1 -0
- package/dist/components/Indicator.js +1 -1
- package/dist/components/IndicatorButton.d.ts +23 -137
- package/dist/components/IndicatorButton.d.ts.map +1 -0
- package/dist/components/IndicatorButton.js +1 -1
- package/dist/components/IndicatorRect.d.ts +2 -1
- package/dist/components/IndicatorRect.d.ts.map +1 -0
- package/dist/components/JogPanel.d.ts +1 -0
- package/dist/components/JogPanel.d.ts.map +1 -0
- package/dist/components/Lamp.d.ts +2 -1
- package/dist/components/Lamp.d.ts.map +1 -0
- package/dist/components/Lamp.js +1 -1
- package/dist/components/Osk.d.ts +1 -0
- package/dist/components/Osk.d.ts.map +1 -0
- package/dist/components/Osk.js +1 -1
- package/dist/components/OskDialog.d.ts +1 -0
- package/dist/components/OskDialog.d.ts.map +1 -0
- package/dist/components/ProgressBarWithValue.d.ts +1 -0
- package/dist/components/ProgressBarWithValue.d.ts.map +1 -0
- package/dist/components/ProgressBarWithValue.js +1 -1
- package/dist/components/TextInput.d.ts +62 -103
- package/dist/components/TextInput.d.ts.map +1 -0
- package/dist/components/TextInput.js +1 -1
- package/dist/components/ToggleGroup.d.ts +2 -1
- package/dist/components/ToggleGroup.d.ts.map +1 -0
- package/dist/components/ToggleGroup.js +1 -1
- package/dist/components/ValueDisplay.d.ts +3 -2
- package/dist/components/ValueDisplay.d.ts.map +1 -0
- package/dist/components/ValueDisplay.js +1 -1
- package/dist/components/ValueIndicator.d.ts +2 -1
- package/dist/components/ValueIndicator.d.ts.map +1 -0
- package/dist/components/ValueIndicator.js +1 -1
- package/dist/components/ValueInput.d.ts +2 -1
- package/dist/components/ValueInput.d.ts.map +1 -0
- package/dist/components/ValueInput.js +1 -1
- package/dist/core/ActionMode.d.ts +1 -0
- package/dist/core/ActionMode.d.ts.map +1 -0
- package/dist/core/AutoCoreTagContext.d.ts +224 -0
- package/dist/core/AutoCoreTagContext.d.ts.map +1 -0
- package/dist/core/AutoCoreTagContext.js +1 -0
- package/dist/core/AutoCoreTagTypes.d.ts +162 -0
- package/dist/core/AutoCoreTagTypes.d.ts.map +1 -0
- package/dist/core/AutoCoreTagTypes.js +1 -0
- package/dist/core/EventEmitterContext.d.ts +295 -2
- package/dist/core/EventEmitterContext.d.ts.map +1 -0
- package/dist/core/EventEmitterContext.js +1 -1
- package/dist/core/IndicatorButtonState.d.ts +1 -0
- package/dist/core/IndicatorButtonState.d.ts.map +1 -0
- package/dist/core/IndicatorColor.d.ts +1 -0
- package/dist/core/IndicatorColor.d.ts.map +1 -0
- package/dist/core/MaskPatterns.d.ts +1 -0
- package/dist/core/MaskPatterns.d.ts.map +1 -0
- package/dist/core/NumerableTypes.d.ts +1 -0
- package/dist/core/NumerableTypes.d.ts.map +1 -0
- package/dist/core/NumerableTypes.js +1 -1
- package/dist/core/PositionContext.d.ts +1 -1
- package/dist/core/PositionContext.d.ts.map +1 -0
- package/dist/core/UniqueId.d.ts +1 -0
- package/dist/core/UniqueId.d.ts.map +1 -0
- package/dist/core/ValueSimulator.d.ts +2 -1
- package/dist/core/ValueSimulator.d.ts.map +1 -0
- package/dist/core/ValueSimulator.js +1 -1
- package/dist/core/hoc.d.ts +1 -0
- package/dist/core/hoc.d.ts.map +1 -0
- package/dist/core/hoc.js +1 -1
- package/dist/hooks/adsHooks.d.ts +1 -0
- package/dist/hooks/adsHooks.d.ts.map +1 -0
- package/dist/hooks/adsHooks.js +1 -1
- package/dist/hooks/commandHooks.d.ts +1 -0
- package/dist/hooks/commandHooks.d.ts.map +1 -0
- package/dist/hooks/commandHooks.js +1 -1
- package/dist/hooks/index.d.ts +1 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/useAutoCoreTag.d.ts +26 -0
- package/dist/hooks/useAutoCoreTag.d.ts.map +1 -0
- package/dist/hooks/useAutoCoreTag.js +1 -0
- package/dist/hooks/useScaledValue.d.ts +1 -0
- package/dist/hooks/useScaledValue.d.ts.map +1 -0
- package/dist/hooks/useScaledValue.js +1 -1
- package/dist/hub/CommandMessage.d.ts +1 -0
- package/dist/hub/CommandMessage.d.ts.map +1 -0
- package/dist/hub/HubBase.d.ts +3 -2
- package/dist/hub/HubBase.d.ts.map +1 -0
- package/dist/hub/HubSimulate.d.ts +2 -1
- package/dist/hub/HubSimulate.d.ts.map +1 -0
- package/dist/hub/HubSimulate.js +1 -1
- package/dist/hub/HubTauri.d.ts +2 -1
- package/dist/hub/HubTauri.d.ts.map +1 -0
- package/dist/hub/HubTauri.js +1 -1
- package/dist/hub/HubWebSocket.d.ts +2 -1
- package/dist/hub/HubWebSocket.d.ts.map +1 -0
- package/dist/hub/HubWebSocket.js +1 -1
- package/dist/hub/index.d.ts +2 -1
- package/dist/hub/index.d.ts.map +1 -0
- package/dist/hub/index.js +1 -1
- package/docs/.nojekyll +1 -0
- package/docs/assets/hierarchy.js +1 -0
- package/docs/assets/highlight.css +134 -0
- package/docs/assets/icons.js +18 -0
- package/docs/assets/icons.svg +1 -0
- package/docs/assets/main.js +60 -0
- package/docs/assets/navigation.js +1 -0
- package/docs/assets/search.js +1 -0
- package/docs/assets/style.css +1633 -0
- package/docs/classes/components_CodeEditor.CodeEditor.html +108 -101
- package/docs/classes/components_Indicator.Indicator.html +122 -0
- package/docs/classes/components_IndicatorRect.IndicatorRect.html +121 -0
- package/docs/classes/components_JogPanel.JogPanel.html +104 -106
- package/docs/classes/components_Lamp.Lamp.html +96 -79
- package/docs/classes/components_OskDialog.OskDialog.html +125 -0
- package/docs/classes/components_TextInput.TextInput.html +99 -89
- package/docs/classes/components_ValueDisplay.ValueDisplay.html +148 -0
- package/docs/classes/components_ValueIndicator.ValueIndicator.html +98 -91
- package/docs/classes/core_ValueSimulator.ValueSimulator.html +51 -0
- package/docs/classes/hub_HubBase.HubBase.html +106 -0
- package/docs/classes/hub_HubSimulate.HubSimulate.html +75 -0
- package/docs/classes/hub_HubTauri.HubTauri.html +93 -0
- package/docs/classes/hub_HubWebSocket.HubWebSocket.html +75 -69
- package/docs/documents/core_AutoCoreTagContext.AutoCoreTagContext.html +148 -0
- package/docs/enums/components_JogPanel.JogDistanceAction.html +5 -5
- package/docs/enums/components_JogPanel.JogPanelAction.html +18 -18
- package/docs/enums/components_JogPanel.JogSpeedAction.html +5 -5
- package/docs/enums/core_ActionMode.ActionMode.html +6 -6
- package/docs/enums/core_IndicatorColor.IndicatorColor.html +22 -22
- package/docs/functions/assets.BlocklyLogo.html +1 -0
- package/docs/functions/assets.Distance.html +1 -0
- package/docs/functions/assets.JogLong.html +1 -0
- package/docs/functions/assets.JogMedium.html +1 -0
- package/docs/functions/assets.JogShort.html +1 -0
- package/docs/functions/assets.PythonLogo.html +1 -0
- package/docs/functions/assets.Rotation3D.html +1 -0
- package/docs/functions/assets.RotationCcw.html +1 -0
- package/docs/functions/assets.RotationCcwA.html +1 -0
- package/docs/functions/assets.RotationCcwB.html +1 -0
- package/docs/functions/assets.RotationCcwC.html +1 -0
- package/docs/functions/assets.RotationCw.html +1 -0
- package/docs/functions/assets.RotationCwA.html +1 -0
- package/docs/functions/assets.RotationCwB.html +1 -0
- package/docs/functions/assets.RotationCwC.html +1 -0
- package/docs/functions/assets.Run.html +1 -0
- package/docs/functions/assets.Speed.html +1 -0
- package/docs/functions/assets.SpeedFast.html +1 -0
- package/docs/functions/assets.SpeedMedium.html +1 -0
- package/docs/functions/assets.SpeedNone.html +1 -0
- package/docs/functions/assets.SpeedSlow.html +1 -0
- package/docs/functions/assets.Walk.html +1 -0
- package/docs/functions/components_BlocklyEditor.createCustomToolbox.html +5 -5
- package/docs/functions/core_UniqueId.UniqueId.html +9 -0
- package/docs/functions/core_hoc.hocAddSubscription.html +6 -0
- package/docs/functions/hooks_adsHooks.useAdsRegisterSymbols.html +16 -0
- package/docs/functions/hooks_adsHooks.useAdsTapValue.html +8 -0
- package/docs/functions/hooks_adsHooks.useAdsWriteScaledValue.html +18 -0
- package/docs/functions/hooks_adsHooks.useAdsWriteValue.html +9 -0
- package/docs/functions/hooks_commandHooks.useRegisterSymbols.html +16 -0
- package/docs/functions/hooks_commandHooks.useTapValue.html +10 -0
- package/docs/functions/hooks_commandHooks.useWriteScaledValue.html +18 -0
- package/docs/functions/hooks_commandHooks.useWriteValue.html +11 -0
- package/docs/functions/hooks_useAutoCoreTag.ts.makeAutoCoreTagHooks.html +12 -0
- package/docs/functions/hooks_useScaledValue.useScaledValue.html +18 -0
- package/docs/functions/hub.createHub.html +3 -0
- package/docs/hierarchy.html +1 -0
- package/docs/index.html +148 -0
- package/docs/interfaces/components_IndicatorButton.IndicatorButtonProps.html +654 -0
- package/docs/interfaces/components_IndicatorRect.IndicatorRectProps.html +37 -0
- package/docs/interfaces/components_JogPanel.JogPanelButtonDefinition.html +5 -5
- package/docs/interfaces/components_ToggleGroup.ToggleGroupProps.html +545 -519
- package/docs/interfaces/core_AutoCoreTagTypes.BaseContextValue.html +12 -0
- package/docs/interfaces/core_AutoCoreTagTypes.ScaleConfig.html +13 -0
- package/docs/interfaces/core_EventEmitterContext.Action.html +8 -0
- package/docs/interfaces/core_EventEmitterContext.EventEmitterContextType.html +33 -0
- package/docs/interfaces/core_EventEmitterContext.State.html +8 -0
- package/docs/interfaces/core_EventEmitterContext.Subscription.html +6 -0
- package/docs/interfaces/core_IndicatorButtonState.IndicatorButtonState.html +10 -10
- package/docs/interfaces/core_PositionContext.IPositionContext.html +17 -0
- package/docs/interfaces/hub_CommandMessage.CommandMessage.html +6 -6
- package/docs/interfaces/hub_CommandMessage.CommandMessageResult.html +4 -4
- package/docs/modules/assets.html +1 -23
- package/docs/modules/assets_BlocklyLogo.html +1 -2
- package/docs/modules/assets_Distance.html +1 -2
- package/docs/modules/assets_JogLong.html +1 -2
- package/docs/modules/assets_JogMedium.html +1 -2
- package/docs/modules/assets_JogShort.html +1 -2
- package/docs/modules/assets_PythonLogo.html +1 -2
- package/docs/modules/assets_Rotation3D.html +1 -2
- package/docs/modules/assets_RotationCcw.html +1 -2
- package/docs/modules/assets_RotationCcwA.html +1 -2
- package/docs/modules/assets_RotationCcwB.html +1 -2
- package/docs/modules/assets_RotationCcwC.html +1 -2
- package/docs/modules/assets_RotationCw.html +1 -2
- package/docs/modules/assets_RotationCwA.html +1 -2
- package/docs/modules/assets_RotationCwB.html +1 -2
- package/docs/modules/assets_RotationCwC.html +1 -2
- package/docs/modules/assets_Run.html +1 -2
- package/docs/modules/assets_Speed.html +1 -2
- package/docs/modules/assets_SpeedFast.html +1 -2
- package/docs/modules/assets_SpeedMedium.html +1 -2
- package/docs/modules/assets_SpeedNone.html +1 -2
- package/docs/modules/assets_SpeedSlow.html +1 -2
- package/docs/modules/assets_Walk.html +1 -2
- package/docs/modules/components_AutoCoreDevPanel.html +20 -0
- package/docs/modules/components_BlocklyEditor.html +1 -5
- package/docs/modules/components_CodeEditor.html +1 -3
- package/docs/modules/components_FileList.html +1 -3
- package/docs/modules/components_FileSelect.html +1 -0
- package/docs/modules/components_FitText.html +1 -3
- package/docs/modules/components_Indicator.html +1 -0
- package/docs/modules/components_IndicatorButton.html +1 -0
- package/docs/modules/components_IndicatorRect.html +1 -0
- package/docs/modules/components_JogPanel.html +1 -9
- package/docs/modules/components_Lamp.html +1 -4
- package/docs/modules/components_Osk.html +1 -0
- package/docs/modules/components_OskDialog.html +1 -0
- package/docs/modules/components_ProgressBarWithValue.html +1 -0
- package/docs/modules/components_TextInput.html +1 -2
- package/docs/modules/components_ToggleGroup.html +1 -6
- package/docs/modules/components_ValueDisplay.html +1 -0
- package/docs/modules/components_ValueIndicator.html +1 -4
- package/docs/modules/components_ValueInput.html +1 -2
- package/docs/modules/core_ActionMode.html +1 -2
- package/docs/modules/core_AutoCoreTagContext.html +11 -0
- package/docs/modules/core_AutoCoreTagTypes.html +1 -0
- package/docs/modules/core_EventEmitterContext.html +53 -0
- package/docs/modules/core_IndicatorButtonState.html +1 -2
- package/docs/modules/core_IndicatorColor.html +1 -2
- package/docs/modules/core_MaskPatterns.html +1 -0
- package/docs/modules/core_NumerableTypes.html +1 -0
- package/docs/modules/core_PositionContext.html +1 -0
- package/docs/modules/core_UniqueId.html +1 -0
- package/docs/modules/core_ValueSimulator.html +1 -0
- package/docs/modules/core_hoc.html +1 -0
- package/docs/modules/hooks.html +1 -0
- package/docs/modules/hooks_adsHooks.html +1 -0
- package/docs/modules/hooks_commandHooks.html +1 -0
- package/docs/modules/hooks_useAutoCoreTag.ts.html +52 -0
- package/docs/modules/hooks_useScaledValue.html +1 -0
- package/docs/modules/hub.html +1 -0
- package/docs/modules/hub_CommandMessage.html +1 -3
- package/docs/modules/hub_HubBase.html +1 -0
- package/docs/modules/hub_HubSimulate.html +1 -0
- package/docs/modules/hub_HubTauri.html +1 -0
- package/docs/modules/hub_HubWebSocket.html +1 -2
- package/docs/modules.html +23 -0
- package/docs/types/components_IndicatorButton.IndicatorButtonOptionsType.html +1 -1
- package/docs/types/core_AutoCoreTagTypes.ExtractByTag.html +2 -0
- package/docs/types/core_AutoCoreTagTypes.PrimitiveKind.html +1 -0
- package/docs/types/core_AutoCoreTagTypes.TagConfig.html +16 -0
- package/docs/types/core_AutoCoreTagTypes.TagValueMap.html +1 -0
- package/docs/types/core_AutoCoreTagTypes.TagValueOf.html +1 -0
- package/docs/types/core_EventEmitterContext.EmitterDispatchFunction.html +3 -0
- package/docs/types/core_EventEmitterContext.EmitterSubscribeFunction.html +3 -0
- package/docs/types/core_EventEmitterContext.EmitterUnsubscribeFunction.html +3 -0
- package/docs/types/core_NumerableTypes.NumerableFormatOptions.html +4 -0
- package/docs/types/core_hoc.HocAddSubscriptionProps.html +6 -0
- package/docs/variables/components_AutoCoreDevPanel.AutoCoreDevPanel.html +43 -0
- package/docs/variables/components_BlocklyEditor.BlocklyEditor.html +13 -0
- package/docs/variables/components_BlocklyEditor.StandardToolbox.html +1 -1
- package/docs/variables/components_FileList.FileList.html +23 -0
- package/docs/variables/components_FileSelect.FileSelect.html +1 -0
- package/docs/variables/components_FitText.FitText.html +4 -0
- package/docs/variables/components_IndicatorButton.IndicatorButton.html +1 -0
- package/docs/variables/components_JogPanel.DefaultLinearJogButtons.html +2 -2
- package/docs/variables/components_JogPanel.DefaultRotationJogButtons.html +2 -2
- package/docs/variables/components_Osk.Osk.html +1 -0
- package/docs/variables/components_ProgressBarWithValue.ProgressBarWithValue.html +1 -0
- package/docs/variables/components_ToggleGroup.ToggleGroup.html +1 -0
- package/docs/variables/components_ValueInput.ValueInput.html +4 -0
- package/docs/variables/core_AutoCoreTagContext.AutoCoreTagContext.html +1 -0
- package/docs/variables/core_AutoCoreTagContext.AutoCoreTagProvider.html +7 -0
- package/docs/variables/core_EventEmitterContext.EventEmitterContext.html +64 -0
- package/docs/variables/core_EventEmitterContext.EventEmitterProvider.html +10 -0
- package/docs/variables/core_MaskPatterns.PrimeReactMaskPatterns.html +14 -0
- package/docs/variables/core_MaskPatterns.RegExMaskPatterns.html +15 -0
- package/docs/variables/core_PositionContext.DimensionsContext.html +6 -0
- package/docs/variables/hooks_useScaledValue.kMillimeters2Inches.html +2 -0
- package/docs/variables/hooks_useScaledValue.kNewtons2Pounds.html +2 -0
- package/package.json +32 -27
- package/readme.md +193 -22
- package/src/components/AutoCoreDevPanel.tsx +411 -0
- package/src/components/CodeEditor.tsx +2 -2
- package/src/components/FileList.tsx +2 -2
- package/src/components/Indicator.tsx +2 -2
- package/src/components/IndicatorButton.tsx +187 -333
- package/src/components/IndicatorRect.tsx +2 -2
- package/src/components/Lamp.tsx +3 -3
- package/src/components/TextInput.tsx +159 -240
- package/src/components/ToggleGroup.tsx +3 -3
- package/src/components/ValueDisplay.tsx +4 -4
- package/src/components/ValueIndicator.tsx +2 -2
- package/src/components/ValueInput.tsx +2 -2
- package/src/core/AutoCoreTagContext.tsx +698 -0
- package/src/core/AutoCoreTagTypes.ts +202 -0
- package/src/core/EventEmitterContext.tsx +582 -225
- package/src/core/ValueSimulator.ts +2 -2
- package/src/hooks/useAutoCoreTag.ts +103 -0
- package/src/hub/HubBase.ts +3 -3
- package/src/hub/HubSimulate.ts +2 -2
- package/src/hub/HubTauri.ts +3 -3
- package/src/hub/HubWebSocket.ts +29 -32
- package/src/hub/index.ts +2 -2
- package/tsconfig.json +43 -28
- package/docs/classes/components_BlocklyEditor.BlocklyEditor.html +0 -124
- package/docs/classes/components_ValueInput.ValueInput.html +0 -113
- package/docs/functions/assets_BlocklyLogo.default.html +0 -1
- package/docs/functions/assets_Distance.default.html +0 -1
- package/docs/functions/assets_JogLong.default.html +0 -1
- package/docs/functions/assets_JogMedium.default.html +0 -1
- package/docs/functions/assets_JogShort.default.html +0 -1
- package/docs/functions/assets_PythonLogo.default.html +0 -1
- package/docs/functions/assets_Rotation3D.default.html +0 -1
- package/docs/functions/assets_RotationCcw.default.html +0 -1
- package/docs/functions/assets_RotationCcwA.default.html +0 -1
- package/docs/functions/assets_RotationCcwB.default.html +0 -1
- package/docs/functions/assets_RotationCcwC.default.html +0 -1
- package/docs/functions/assets_RotationCw.default.html +0 -1
- package/docs/functions/assets_RotationCwA.default.html +0 -1
- package/docs/functions/assets_RotationCwB.default.html +0 -1
- package/docs/functions/assets_RotationCwC.default.html +0 -1
- package/docs/functions/assets_Run.default.html +0 -1
- package/docs/functions/assets_Speed.default.html +0 -1
- package/docs/functions/assets_SpeedFast.default.html +0 -1
- package/docs/functions/assets_SpeedMedium.default.html +0 -1
- package/docs/functions/assets_SpeedNone.default.html +0 -1
- package/docs/functions/assets_SpeedSlow.default.html +0 -1
- package/docs/functions/assets_Walk.default.html +0 -1
- package/docs/functions/components_FileList.FileList.html +0 -21
- package/docs/functions/components_FitText.FitText.html +0 -8
- package/docs/functions/components_ToggleGroup.ToggleGroup.html +0 -5
package/dist/assets/Walk.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Walk.d.ts","sourceRoot":"","sources":["../../src/assets/Walk.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACtC,QAAA,MAAM,OAAO,GAAI,OAAO,QAAQ,CAAC,aAAa,CAAC,4CAU9C,CAAC;AACF,eAAe,OAAO,CAAC"}
|
package/dist/assets/index.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/assets/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,QAAQ,CAAC"}
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module components/AutoCoreDevPanel
|
|
3
|
+
*
|
|
4
|
+
* @summary
|
|
5
|
+
*
|
|
6
|
+
* A development and debugging panel for monitoring and manually interacting with AutoCore tags.
|
|
7
|
+
* This component provides real-time visibility into tag values and allows direct manipulation
|
|
8
|
+
* for testing and debugging purposes.
|
|
9
|
+
*
|
|
10
|
+
* @remarks
|
|
11
|
+
*
|
|
12
|
+
* The AutoCoreDevPanel is designed to be used during development to:
|
|
13
|
+
* - Monitor live tag values in real-time
|
|
14
|
+
* - Test write operations manually
|
|
15
|
+
* - Debug tag behavior and connectivity
|
|
16
|
+
* - Perform tap operations on boolean tags
|
|
17
|
+
* - Validate tag configurations
|
|
18
|
+
*
|
|
19
|
+
* The panel automatically connects to the global AutoCoreTagContext and displays all
|
|
20
|
+
* tags passed to it. No additional setup or factory functions are required.
|
|
21
|
+
*
|
|
22
|
+
* @example Basic Usage
|
|
23
|
+
* ```tsx
|
|
24
|
+
* import React from 'react';
|
|
25
|
+
* import { AutoCoreDevPanel } from "@adcops/autocore-react/components/AutoCoreDevPanel";
|
|
26
|
+
* import { acTagSpec } from "./AutoCoreTags";
|
|
27
|
+
*
|
|
28
|
+
* function App() {
|
|
29
|
+
* return (
|
|
30
|
+
* <div>
|
|
31
|
+
* <main>
|
|
32
|
+
* <YourMainContent />
|
|
33
|
+
* </main>
|
|
34
|
+
*
|
|
35
|
+
* {process.env.NODE_ENV === 'development' && (
|
|
36
|
+
* <AutoCoreDevPanel
|
|
37
|
+
* tags={acTagSpec}
|
|
38
|
+
* className="fixed bottom-4 right-4 bg-white shadow-lg"
|
|
39
|
+
* />
|
|
40
|
+
* )}
|
|
41
|
+
* </div>
|
|
42
|
+
* );
|
|
43
|
+
* }
|
|
44
|
+
* ```
|
|
45
|
+
*
|
|
46
|
+
* @example Styled Panel
|
|
47
|
+
* ```tsx
|
|
48
|
+
* import { AutoCoreDevPanel } from "@adcops/autocore-react/components/AutoCoreDevPanel";
|
|
49
|
+
* import { acTagSpec } from "./AutoCoreTags";
|
|
50
|
+
*
|
|
51
|
+
* // Custom styled panel
|
|
52
|
+
* <AutoCoreDevPanel
|
|
53
|
+
* tags={acTagSpec}
|
|
54
|
+
* title="Machine Status Monitor"
|
|
55
|
+
* className="
|
|
56
|
+
* fixed top-4 left-4
|
|
57
|
+
* bg-gray-900 text-white
|
|
58
|
+
* border border-gray-700
|
|
59
|
+
* shadow-2xl rounded-lg
|
|
60
|
+
* max-w-md
|
|
61
|
+
* "
|
|
62
|
+
* />
|
|
63
|
+
* ```
|
|
64
|
+
*
|
|
65
|
+
* @example Filtered Tags
|
|
66
|
+
* ```tsx
|
|
67
|
+
* import { AutoCoreDevPanel } from "@adcops/autocore-react/components/AutoCoreDevPanel";
|
|
68
|
+
* import { acTagSpec } from "./AutoCoreTags";
|
|
69
|
+
*
|
|
70
|
+
* // Show only specific tags for focused debugging
|
|
71
|
+
* const motorTags = acTagSpec.filter(tag =>
|
|
72
|
+
* tag.tagName.includes('motor') || tag.tagName.includes('axis')
|
|
73
|
+
* );
|
|
74
|
+
*
|
|
75
|
+
* <AutoCoreDevPanel
|
|
76
|
+
* tags={motorTags}
|
|
77
|
+
* title="Motor Control Debug"
|
|
78
|
+
* className="debug-panel"
|
|
79
|
+
* />
|
|
80
|
+
* ```
|
|
81
|
+
*/
|
|
82
|
+
import React from "react";
|
|
83
|
+
import type { TagConfig } from "../core/AutoCoreTagTypes";
|
|
84
|
+
/**
|
|
85
|
+
* Props for the AutoCoreDevPanel component.
|
|
86
|
+
*/
|
|
87
|
+
interface AutoCoreDevPanelProps {
|
|
88
|
+
/**
|
|
89
|
+
* Array of tag configurations to display in the panel.
|
|
90
|
+
* Each tag will show its current value and provide controls for writing new values.
|
|
91
|
+
*/
|
|
92
|
+
tags: readonly TagConfig[];
|
|
93
|
+
/**
|
|
94
|
+
* Optional title for the panel header.
|
|
95
|
+
* @defaultValue "AutoCore Dev Panel"
|
|
96
|
+
*/
|
|
97
|
+
title?: string;
|
|
98
|
+
/**
|
|
99
|
+
* Optional CSS class names for custom styling.
|
|
100
|
+
* The panel has default styling but can be customized with Tailwind or custom CSS.
|
|
101
|
+
*/
|
|
102
|
+
className?: string;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* AutoCoreDevPanel - Development and debugging panel for AutoCore tags.
|
|
106
|
+
*
|
|
107
|
+
* This component provides a real-time debugging interface for monitoring and manipulating
|
|
108
|
+
* AutoCore tags during development. It displays current tag values, provides input controls
|
|
109
|
+
* for writing new values, and includes tap functionality for boolean tags.
|
|
110
|
+
*
|
|
111
|
+
* ## Features
|
|
112
|
+
*
|
|
113
|
+
* - **Real-time monitoring**: Shows live tag values as they update from the server
|
|
114
|
+
* - **Direct writes**: Input controls to write new values directly to tags
|
|
115
|
+
* - **Type-aware inputs**: Automatically provides appropriate input types (checkbox for boolean, number input for numeric, etc.)
|
|
116
|
+
* - **Tap functionality**: Special "TAP" buttons for boolean tags that send momentary true→false signals
|
|
117
|
+
* - **Error handling**: Visual feedback for write failures and validation errors
|
|
118
|
+
* - **Live status**: Indicator showing whether the system is loading or live
|
|
119
|
+
* - **JSON support**: Proper formatting and editing for JSON-type tags
|
|
120
|
+
*
|
|
121
|
+
* ## Input Types
|
|
122
|
+
*
|
|
123
|
+
* - **Boolean tags**: Checkbox for direct true/false setting + TAP button for momentary signals
|
|
124
|
+
* - **Number tags**: Number input with validation
|
|
125
|
+
* - **String tags**: Text input
|
|
126
|
+
* - **JSON tags**: Text input with JSON validation and pretty-printing
|
|
127
|
+
*
|
|
128
|
+
* ## Keyboard Shortcuts
|
|
129
|
+
*
|
|
130
|
+
* - **Enter key**: In text/number inputs, immediately sends the value to the server
|
|
131
|
+
* - **Tab navigation**: Navigate between inputs using standard keyboard navigation
|
|
132
|
+
*
|
|
133
|
+
* ## Error Handling
|
|
134
|
+
*
|
|
135
|
+
* Write operations that fail will show error messages below the input field.
|
|
136
|
+
* Common errors include:
|
|
137
|
+
* - Invalid number formats
|
|
138
|
+
* - Malformed JSON
|
|
139
|
+
* - Network/server errors
|
|
140
|
+
* - Tag not found errors
|
|
141
|
+
*/
|
|
142
|
+
export declare const AutoCoreDevPanel: React.FC<AutoCoreDevPanelProps>;
|
|
143
|
+
export {};
|
|
144
|
+
//# sourceMappingURL=AutoCoreDevPanel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AutoCoreDevPanel.d.ts","sourceRoot":"","sources":["../../src/components/AutoCoreDevPanel.tsx"],"names":[],"mappings":"AASA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgFG;AAEH,OAAO,KAAqD,MAAM,OAAO,CAAC;AAC1E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAG1D;;GAEG;AACH,UAAU,qBAAqB;IAC7B;;;OAGG;IACH,IAAI,EAAE,SAAS,SAAS,EAAE,CAAC;IAE3B;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CAsK5D,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import React,{useContext,useMemo,useState,useCallback}from"react";import{AutoCoreTagContext}from"../core/AutoCoreTagContext";export const AutoCoreDevPanel=({tags:e,title:t="AutoCore Dev Panel",className:n=""})=>{const{values:a,rawValues:o,isLoading:l,write:r,tap:s,scales:i}=useContext(AutoCoreTagContext),[d,c]=useState({}),[u,h]=useState({}),m=useMemo(()=>e.map(e=>{const t=a[e.tagName],n=o[e.tagName],l=e.scale??"",r=l?i[l]:void 0;return{tag:e,display:t,raw:n,scaleName:l,factor:r?.scale,label:r?.label}}),[e,a,o,i]),x=useCallback((e,t)=>{c(n=>({...n,[e]:t})),h(t=>({...t,[e]:""}))},[]),p=useCallback((e,t)=>{h(n=>({...n,[e]:t}))},[]),g=useCallback(async e=>{const t=e.tagName,n=d[t];try{if("boolean"===e.valueType){const e="true"===n||"false"!==n&&!a[t];return await r(t,e),void x(t,"")}if("number"===e.valueType){if(null==n||""===n.trim())return void p(t,"Enter a number.");const e=Number(n);return Number.isNaN(e)?void p(t,"Invalid number."):(await r(t,e),void x(t,""))}if("string"===e.valueType)return await r(t,n??""),void x(t,"");try{const e=n?.trim()?JSON.parse(n):null;await r(t,e),x(t,"")}catch(e){p(t,"Invalid JSON.")}}catch(e){p(t,e?.message??String(e))}},[d,x,p,r,a]);return _jsxs("div",{className:`rounded-md border border-gray-200 bg-white text-sm ${n}`,style:{minWidth:680},children:[_jsx("div",{className:"flex items-center justify-between px-3 py-2",style:{borderBottom:"1px solid #eee"},children:_jsxs("div",{className:"flex items-center gap-2",children:[_jsx("strong",{children:t}),_jsx("span",{title:l?"Loading":"Live",style:{width:8,height:8,borderRadius:999,background:l?"#aaa":"#22c55e",display:"inline-block"}})]})}),_jsx("div",{style:{overflowX:"auto"},children:_jsxs("table",{style:{borderCollapse:"collapse",width:"100%"},children:[_jsx("thead",{children:_jsxs("tr",{children:[_jsx(Th,{children:"Tag"}),_jsx(Th,{children:"Kind"}),_jsx(Th,{children:"Domain"}),_jsx(Th,{children:"Symbol"}),_jsx(Th,{children:"Display"}),_jsx(Th,{children:"Raw"}),_jsx(Th,{children:"Scale"}),_jsx(Th,{children:"Units"}),_jsx(Th,{children:"Input"}),_jsx(Th,{children:"Actions"})]})}),_jsx("tbody",{children:m.map(({tag:e,display:t,raw:n,scaleName:a,factor:o,label:l})=>{const r=d[e.tagName]??"",i=u[e.tagName];return _jsxs("tr",{children:[_jsx(Td,{mono:!0,children:e.tagName}),_jsx(Td,{mono:!0,children:e.valueType}),_jsx(Td,{mono:!0,children:e.domain}),_jsx(Td,{mono:!0,children:e.symbolName}),_jsx(Td,{mono:!0,children:fmt(t)}),_jsx(Td,{mono:!0,children:fmt(n)}),_jsx(Td,{mono:!0,children:a?`${a} ×${o??1}`:"—"}),_jsx(Td,{mono:!0,children:a?l??"":"—"}),_jsxs(Td,{children:[_jsx(InputForTag,{tag:e,buf:r,setBuf:t=>x(e.tagName,t),onKeyDown:t=>((e,t)=>{"Enter"!==e.key||e.shiftKey||(e.preventDefault(),g(t))})(t,e)}),i&&_jsx("div",{style:{color:"#dc2626",marginTop:4},children:i})]}),_jsx(Td,{children:_jsxs("div",{style:{display:"flex",gap:6},children:[_jsx("button",{onClick:()=>g(e),children:"Write"}),"boolean"===e.valueType&&_jsx("button",{onClick:()=>s(e.tagName),children:"TAP"})]})})]},e.tagName)})})]})})]})};const Th=({children:e})=>_jsx("th",{style:{textAlign:"left",borderBottom:"1px solid #ddd",padding:"6px 8px",fontFamily:"ui-monospace, SFMono-Regular, Menlo, monospace"},children:e}),Td=({children:e,mono:t})=>_jsx("td",{style:{borderBottom:"1px solid #eee",padding:"6px 8px",whiteSpace:"nowrap",fontFamily:t?"ui-monospace, SFMono-Regular, Menlo, monospace":"inherit"},children:e}),InputForTag=({tag:e,buf:t,setBuf:n,onKeyDown:a})=>"boolean"===e.valueType?_jsxs("label",{style:{display:"inline-flex",alignItems:"center",gap:6},children:[_jsx("input",{type:"checkbox",checked:t?"true"===t:Boolean,onChange:e=>n(e.target.checked?"true":"false"),onKeyDown:a}),_jsx("span",{children:"set"})]}):"number"===e.valueType?_jsx("input",{type:"number",step:"any",value:t,onChange:e=>n(e.target.value),onKeyDown:a,style:{width:140},placeholder:"number…"}):"string"===e.valueType?_jsx("input",{type:"text",value:t,onChange:e=>n(e.target.value),onKeyDown:a,style:{width:180},placeholder:"text…"}):_jsx("textarea",{value:t,onChange:e=>n(e.target.value),onKeyDown:a,rows:2,style:{width:260,fontFamily:"ui-monospace, SFMono-Regular, Menlo, monospace"},placeholder:'{"foo": 42}'});function fmt(e){if(null==e)return"—";if("number"==typeof e)return Number.isFinite(e)?e.toString():String(e);if("string"==typeof e)return e;try{return JSON.stringify(e)}catch{return String(e)}}
|
|
@@ -116,3 +116,4 @@ export default BlocklyEditor;
|
|
|
116
116
|
*/
|
|
117
117
|
export declare const createCustomToolbox: (xmlBefore: string | undefined, xmlAfter: string | undefined) => string;
|
|
118
118
|
export declare const StandardToolbox = "\n <xml id=\"toolbox\" style=\"display: none\">\n <!-- BEGIN: Built-in Blockly Blocks //-->\n <category name=\"Logic\" categorystyle=\"logic_category\">\n <block type=\"controls_if\"></block>\n <block type=\"logic_compare\"></block>\n <block type=\"logic_operation\"></block>\n <block type=\"logic_negate\"></block>\n <block type=\"logic_boolean\"></block>\n <block type=\"logic_null\" disabled=\"true\"></block>\n <block type=\"logic_ternary\"></block>\n </category>\n <category name=\"Loops\" categorystyle=\"loop_category\">\n <block type=\"controls_repeat_ext\">\n <value name=\"TIMES\">\n <shadow type=\"math_number\">\n <field name=\"NUM\">10</field>\n </shadow>\n </value>\n </block>\n <block type=\"controls_repeat\" disabled=\"true\"></block>\n <block type=\"controls_whileUntil\"></block>\n <block type=\"controls_for\">\n <value name=\"FROM\">\n <shadow type=\"math_number\">\n <field name=\"NUM\">1</field>\n </shadow>\n </value>\n <value name=\"TO\">\n <shadow type=\"math_number\">\n <field name=\"NUM\">10</field>\n </shadow>\n </value>\n <value name=\"BY\">\n <shadow type=\"math_number\">\n <field name=\"NUM\">1</field>\n </shadow>\n </value>\n </block>\n <block type=\"controls_forEach\"></block>\n <block type=\"controls_flow_statements\"></block>\n </category>\n <category name=\"Math\" categorystyle=\"math_category\">\n <block type=\"math_number\" gap=\"32\">\n <field name=\"NUM\">123</field>\n </block>\n <block type=\"math_arithmetic\">\n <value name=\"A\">\n <shadow type=\"math_number\">\n <field name=\"NUM\">1</field>\n </shadow>\n </value>\n <value name=\"B\">\n <shadow type=\"math_number\">\n <field name=\"NUM\">1</field>\n </shadow>\n </value>\n </block>\n <block type=\"math_single\">\n <value name=\"NUM\">\n <shadow type=\"math_number\">\n <field name=\"NUM\">9</field>\n </shadow>\n </value>\n </block>\n <block type=\"math_trig\">\n <value name=\"NUM\">\n <shadow type=\"math_number\">\n <field name=\"NUM\">45</field>\n </shadow>\n </value>\n </block>\n <block type=\"math_constant\"></block>\n <block type=\"math_number_property\">\n <value name=\"NUMBER_TO_CHECK\">\n <shadow type=\"math_number\">\n <field name=\"NUM\">0</field>\n </shadow>\n </value>\n </block>\n <block type=\"math_round\">\n <value name=\"NUM\">\n <shadow type=\"math_number\">\n <field name=\"NUM\">3.1</field>\n </shadow>\n </value>\n </block>\n <block type=\"math_on_list\"></block>\n <block type=\"math_modulo\">\n <value name=\"DIVIDEND\">\n <shadow type=\"math_number\">\n <field name=\"NUM\">64</field>\n </shadow>\n </value>\n <value name=\"DIVISOR\">\n <shadow type=\"math_number\">\n <field name=\"NUM\">10</field>\n </shadow>\n </value>\n </block>\n <block type=\"math_constrain\">\n <value name=\"VALUE\">\n <shadow type=\"math_number\">\n <field name=\"NUM\">50</field>\n </shadow>\n </value>\n <value name=\"LOW\">\n <shadow type=\"math_number\">\n <field name=\"NUM\">1</field>\n </shadow>\n </value>\n <value name=\"HIGH\">\n <shadow type=\"math_number\">\n <field name=\"NUM\">100</field>\n </shadow>\n </value>\n </block>\n <block type=\"math_random_int\">\n <value name=\"FROM\">\n <shadow type=\"math_number\">\n <field name=\"NUM\">1</field>\n </shadow>\n </value>\n <value name=\"TO\">\n <shadow type=\"math_number\">\n <field name=\"NUM\">100</field>\n </shadow>\n </value>\n </block>\n <block type=\"math_random_float\"></block>\n <block type=\"math_atan2\">\n <value name=\"X\">\n <shadow type=\"math_number\">\n <field name=\"NUM\">1</field>\n </shadow>\n </value>\n <value name=\"Y\">\n <shadow type=\"math_number\">\n <field name=\"NUM\">1</field>\n </shadow>\n </value>\n </block>\n </category>\n <category name=\"Text\" categorystyle=\"text_category\">\n <block type=\"text\"></block>\n <block type=\"text_multiline\"></block>\n <block type=\"text_join\"></block>\n <block type=\"text_append\">\n <value name=\"TEXT\">\n <shadow type=\"text\"></shadow>\n </value>\n </block>\n <block type=\"text_length\">\n <value name=\"VALUE\">\n <shadow type=\"text\">\n <field name=\"TEXT\">abc</field>\n </shadow>\n </value>\n </block>\n <block type=\"text_isEmpty\">\n <value name=\"VALUE\">\n <shadow type=\"text\">\n <field name=\"TEXT\"></field>\n </shadow>\n </value>\n </block>\n <block type=\"text_indexOf\">\n <value name=\"VALUE\">\n <block type=\"variables_get\">\n <field name=\"VAR\">text</field>\n </block>\n </value>\n <value name=\"FIND\">\n <shadow type=\"text\">\n <field name=\"TEXT\">abc</field>\n </shadow>\n </value>\n </block>\n <block type=\"text_charAt\">\n <value name=\"VALUE\">\n <block type=\"variables_get\">\n <field name=\"VAR\">text</field>\n </block>\n </value>\n </block>\n <block type=\"text_getSubstring\">\n <value name=\"STRING\">\n <block type=\"variables_get\">\n <field name=\"VAR\">text</field>\n </block>\n </value>\n </block>\n <block type=\"text_changeCase\">\n <value name=\"TEXT\">\n <shadow type=\"text\">\n <field name=\"TEXT\">abc</field>\n </shadow>\n </value>\n </block>\n <block type=\"text_trim\">\n <value name=\"TEXT\">\n <shadow type=\"text\">\n <field name=\"TEXT\">abc</field>\n </shadow>\n </value>\n </block>\n <block type=\"text_count\">\n <value name=\"SUB\">\n <shadow type=\"text\"></shadow>\n </value>\n <value name=\"TEXT\">\n <shadow type=\"text\"></shadow>\n </value>\n </block>\n <block type=\"text_replace\">\n <value name=\"FROM\">\n <shadow type=\"text\"></shadow>\n </value>\n <value name=\"TO\">\n <shadow type=\"text\"></shadow>\n </value>\n <value name=\"TEXT\">\n <shadow type=\"text\"></shadow>\n </value>\n </block>\n <block type=\"text_reverse\">\n <value name=\"TEXT\">\n <shadow type=\"text\"></shadow>\n </value>\n </block>\n <label text=\"Input/Output:\" web-class=\"ioLabel\"></label>\n <block type=\"text_print\">\n <value name=\"TEXT\">\n <shadow type=\"text\">\n <field name=\"TEXT\">abc</field>\n </shadow>\n </value>\n </block>\n <block type=\"text_prompt_ext\">\n <value name=\"TEXT\">\n <shadow type=\"text\">\n <field name=\"TEXT\">abc</field>\n </shadow>\n </value>\n </block>\n </category>\n <category name=\"Lists\" categorystyle=\"list_category\">\n <block type=\"lists_create_with\">\n <mutation items=\"0\"></mutation>\n </block>\n <block type=\"lists_create_with\"></block>\n <block type=\"lists_repeat\">\n <value name=\"NUM\">\n <shadow type=\"math_number\">\n <field name=\"NUM\">5</field>\n </shadow>\n </value>\n </block>\n <block type=\"lists_length\"></block>\n <block type=\"lists_isEmpty\"></block>\n <block type=\"lists_indexOf\">\n <value name=\"VALUE\">\n <block type=\"variables_get\">\n <field name=\"VAR\">list</field>\n </block>\n </value>\n </block>\n <block type=\"lists_getIndex\">\n <value name=\"VALUE\">\n <block type=\"variables_get\">\n <field name=\"VAR\">list</field>\n </block>\n </value>\n </block>\n <block type=\"lists_setIndex\">\n <value name=\"LIST\">\n <block type=\"variables_get\">\n <field name=\"VAR\">list</field>\n </block>\n </value>\n </block>\n <block type=\"lists_getSublist\">\n <value name=\"LIST\">\n <block type=\"variables_get\">\n <field name=\"VAR\">list</field>\n </block>\n </value>\n </block>\n <block type=\"lists_split\">\n <value name=\"DELIM\">\n <shadow type=\"text\">\n <field name=\"TEXT\">,</field>\n </shadow>\n </value>\n </block>\n <block type=\"lists_sort\"></block>\n <block type=\"lists_reverse\"></block>\n </category>\n <category name=\"Variables\" categorystyle=\"variable_category\" custom=\"VARIABLE\"></category>\n <category name=\"Functions\" categorystyle=\"procedure_category\" custom=\"PROCEDURE\"></category>\n\n <!-- END: Built-in Blockly Blocks //-->\n\n </xml>\n";
|
|
119
|
+
//# sourceMappingURL=BlocklyEditor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BlocklyEditor.d.ts","sourceRoot":"","sources":["../../src/components/BlocklyEditor.tsx"],"names":[],"mappings":"AASA,OAAO,KAAiE,MAAM,OAAO,CAAC;AACtF,OAAO,OAAO,MAAM,SAAS,CAAC;AAM9B,OAAO,qBAAqB,CAAC;AAG7B;;GAEG;AACH,UAAU,kBAAkB;IACxB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAEhC;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC;IAGjD;;;;OAIG;IACH,eAAe,EAAE,MAAM,CAAC;IAGxB;;;;OAIG;IACH,gBAAgB,EAAE,MAAM,CAAC;IAEzB;;;OAGG;IACH,kBAAkB,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,YAAY,GAAG,SAAS,KAAK,IAAI,CAAC;IAE3E;;;OAGG;IACH,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAErC;;;OAGG;IACH,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAGvC;;;OAGG;IACH,OAAO,CAAC,EAAG,CAAC,OAAO,EAAG,MAAM,KAAK,IAAI,CAAC;CAEzC;AAGD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwDG;AACH,eAAO,MAAM,aAAa,oFA+HxB,CAAC;AAEH,eAAe,aAAa,CAAC;AAG7B;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,GAAI,WAAW,MAAM,GAAG,SAAS,EAAE,UAAU,MAAM,GAAG,SAAS,KAAG,MAuBjG,CAAA;AAKD,eAAO,MAAM,eAAe,8vVAgT3B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as _jsx}from"react/jsx-runtime";import React,{forwardRef,useImperativeHandle,useCallback,useState}from"react";import Blockly from"blockly";import{pythonGenerator}from"blockly/python";import{BlocklyWorkspace}from"react-blockly";import"./BlocklyEditor.css";export const BlocklyEditor=forwardRef(((e,n)=>{const[l,t]=useState(""),[a,o]=useState(""),[c,d]=useState(0),[s,i]=useState(0),[m,r]=useState(void 0),b=React.createRef();useImperativeHandle(n,(()=>({newBlockly(){m&&m.clear()},loadBlockly(n){if(m)try{m.clear();const e=Blockly.utils.xml.textToDom(n);Blockly.Xml.domToWorkspace(e,m)}catch(n){e.onError&&e.onError(`${n}`)}}}))),React.useEffect((()=>(y(),window.addEventListener("resize",y),()=>{window.removeEventListener("resize",y)})),[]);const y=useCallback((()=>{if(b.current){let n=0,l=0,t=b.current.parentElement;for(;null!==t&&(n=t.offsetWidth,l=t.offsetHeight,!(t.className.indexOf("blockly-container")>=0));)t=t.parentElement;n<300&&(n=300),l<300&&(l=300),d(.9*n+e.widthAdjustment),i(.9*l+e.heightAdjustment)}}),[e.widthAdjustment,e.heightAdjustment]);return _jsx("div",{ref:b,style:{width:c,height:s},children:_jsx(BlocklyWorkspace,{className:"fill-height",toolboxConfiguration:e.toolbox,initialXml:e.initialXml,onWorkspaceChange:n=>{const l=pythonGenerator.workspaceToCode(n);o(l),e.onWorkspaceChanged&&e.onWorkspaceChanged(n),e.onCodeChanged&&e.onCodeChanged(l)},onXmlChange:n=>{t(n),void 0!==e.onXmlChanged&&null!==e.onXmlChanged&&e.onXmlChanged(n)},onInject:e=>{r(e)},workspaceConfiguration:{grid:{spacing:20,length:3,colour:"#ccc",snap:!0}}})})}));export default BlocklyEditor;export const createCustomToolbox=(e,n)=>{const l="\x3c!-- END: Built-in Blockly Blocks //--\x3e",t=StandardToolbox.indexOf("\x3c!-- BEGIN: Built-in Blockly Blocks //--\x3e"),a=StandardToolbox.indexOf(l);if(-1===t||-1===a)throw new Error("Could not find markers in standard toolbox");return StandardToolbox.slice(0,t)+(e||"")+StandardToolbox.slice(t,a+39)+(n||"")+StandardToolbox.slice(a+39+1)};export const StandardToolbox='\n <xml id="toolbox" style="display: none">\n \x3c!-- BEGIN: Built-in Blockly Blocks //--\x3e\n <category name="Logic" categorystyle="logic_category">\n <block type="controls_if"></block>\n <block type="logic_compare"></block>\n <block type="logic_operation"></block>\n <block type="logic_negate"></block>\n <block type="logic_boolean"></block>\n <block type="logic_null" disabled="true"></block>\n <block type="logic_ternary"></block>\n </category>\n <category name="Loops" categorystyle="loop_category">\n <block type="controls_repeat_ext">\n <value name="TIMES">\n <shadow type="math_number">\n <field name="NUM">10</field>\n </shadow>\n </value>\n </block>\n <block type="controls_repeat" disabled="true"></block>\n <block type="controls_whileUntil"></block>\n <block type="controls_for">\n <value name="FROM">\n <shadow type="math_number">\n <field name="NUM">1</field>\n </shadow>\n </value>\n <value name="TO">\n <shadow type="math_number">\n <field name="NUM">10</field>\n </shadow>\n </value>\n <value name="BY">\n <shadow type="math_number">\n <field name="NUM">1</field>\n </shadow>\n </value>\n </block>\n <block type="controls_forEach"></block>\n <block type="controls_flow_statements"></block>\n </category>\n <category name="Math" categorystyle="math_category">\n <block type="math_number" gap="32">\n <field name="NUM">123</field>\n </block>\n <block type="math_arithmetic">\n <value name="A">\n <shadow type="math_number">\n <field name="NUM">1</field>\n </shadow>\n </value>\n <value name="B">\n <shadow type="math_number">\n <field name="NUM">1</field>\n </shadow>\n </value>\n </block>\n <block type="math_single">\n <value name="NUM">\n <shadow type="math_number">\n <field name="NUM">9</field>\n </shadow>\n </value>\n </block>\n <block type="math_trig">\n <value name="NUM">\n <shadow type="math_number">\n <field name="NUM">45</field>\n </shadow>\n </value>\n </block>\n <block type="math_constant"></block>\n <block type="math_number_property">\n <value name="NUMBER_TO_CHECK">\n <shadow type="math_number">\n <field name="NUM">0</field>\n </shadow>\n </value>\n </block>\n <block type="math_round">\n <value name="NUM">\n <shadow type="math_number">\n <field name="NUM">3.1</field>\n </shadow>\n </value>\n </block>\n <block type="math_on_list"></block>\n <block type="math_modulo">\n <value name="DIVIDEND">\n <shadow type="math_number">\n <field name="NUM">64</field>\n </shadow>\n </value>\n <value name="DIVISOR">\n <shadow type="math_number">\n <field name="NUM">10</field>\n </shadow>\n </value>\n </block>\n <block type="math_constrain">\n <value name="VALUE">\n <shadow type="math_number">\n <field name="NUM">50</field>\n </shadow>\n </value>\n <value name="LOW">\n <shadow type="math_number">\n <field name="NUM">1</field>\n </shadow>\n </value>\n <value name="HIGH">\n <shadow type="math_number">\n <field name="NUM">100</field>\n </shadow>\n </value>\n </block>\n <block type="math_random_int">\n <value name="FROM">\n <shadow type="math_number">\n <field name="NUM">1</field>\n </shadow>\n </value>\n <value name="TO">\n <shadow type="math_number">\n <field name="NUM">100</field>\n </shadow>\n </value>\n </block>\n <block type="math_random_float"></block>\n <block type="math_atan2">\n <value name="X">\n <shadow type="math_number">\n <field name="NUM">1</field>\n </shadow>\n </value>\n <value name="Y">\n <shadow type="math_number">\n <field name="NUM">1</field>\n </shadow>\n </value>\n </block>\n </category>\n <category name="Text" categorystyle="text_category">\n <block type="text"></block>\n <block type="text_multiline"></block>\n <block type="text_join"></block>\n <block type="text_append">\n <value name="TEXT">\n <shadow type="text"></shadow>\n </value>\n </block>\n <block type="text_length">\n <value name="VALUE">\n <shadow type="text">\n <field name="TEXT">abc</field>\n </shadow>\n </value>\n </block>\n <block type="text_isEmpty">\n <value name="VALUE">\n <shadow type="text">\n <field name="TEXT"></field>\n </shadow>\n </value>\n </block>\n <block type="text_indexOf">\n <value name="VALUE">\n <block type="variables_get">\n <field name="VAR">text</field>\n </block>\n </value>\n <value name="FIND">\n <shadow type="text">\n <field name="TEXT">abc</field>\n </shadow>\n </value>\n </block>\n <block type="text_charAt">\n <value name="VALUE">\n <block type="variables_get">\n <field name="VAR">text</field>\n </block>\n </value>\n </block>\n <block type="text_getSubstring">\n <value name="STRING">\n <block type="variables_get">\n <field name="VAR">text</field>\n </block>\n </value>\n </block>\n <block type="text_changeCase">\n <value name="TEXT">\n <shadow type="text">\n <field name="TEXT">abc</field>\n </shadow>\n </value>\n </block>\n <block type="text_trim">\n <value name="TEXT">\n <shadow type="text">\n <field name="TEXT">abc</field>\n </shadow>\n </value>\n </block>\n <block type="text_count">\n <value name="SUB">\n <shadow type="text"></shadow>\n </value>\n <value name="TEXT">\n <shadow type="text"></shadow>\n </value>\n </block>\n <block type="text_replace">\n <value name="FROM">\n <shadow type="text"></shadow>\n </value>\n <value name="TO">\n <shadow type="text"></shadow>\n </value>\n <value name="TEXT">\n <shadow type="text"></shadow>\n </value>\n </block>\n <block type="text_reverse">\n <value name="TEXT">\n <shadow type="text"></shadow>\n </value>\n </block>\n <label text="Input/Output:" web-class="ioLabel"></label>\n <block type="text_print">\n <value name="TEXT">\n <shadow type="text">\n <field name="TEXT">abc</field>\n </shadow>\n </value>\n </block>\n <block type="text_prompt_ext">\n <value name="TEXT">\n <shadow type="text">\n <field name="TEXT">abc</field>\n </shadow>\n </value>\n </block>\n </category>\n <category name="Lists" categorystyle="list_category">\n <block type="lists_create_with">\n <mutation items="0"></mutation>\n </block>\n <block type="lists_create_with"></block>\n <block type="lists_repeat">\n <value name="NUM">\n <shadow type="math_number">\n <field name="NUM">5</field>\n </shadow>\n </value>\n </block>\n <block type="lists_length"></block>\n <block type="lists_isEmpty"></block>\n <block type="lists_indexOf">\n <value name="VALUE">\n <block type="variables_get">\n <field name="VAR">list</field>\n </block>\n </value>\n </block>\n <block type="lists_getIndex">\n <value name="VALUE">\n <block type="variables_get">\n <field name="VAR">list</field>\n </block>\n </value>\n </block>\n <block type="lists_setIndex">\n <value name="LIST">\n <block type="variables_get">\n <field name="VAR">list</field>\n </block>\n </value>\n </block>\n <block type="lists_getSublist">\n <value name="LIST">\n <block type="variables_get">\n <field name="VAR">list</field>\n </block>\n </value>\n </block>\n <block type="lists_split">\n <value name="DELIM">\n <shadow type="text">\n <field name="TEXT">,</field>\n </shadow>\n </value>\n </block>\n <block type="lists_sort"></block>\n <block type="lists_reverse"></block>\n </category>\n <category name="Variables" categorystyle="variable_category" custom="VARIABLE"></category>\n <category name="Functions" categorystyle="procedure_category" custom="PROCEDURE"></category>\n\n \x3c!-- END: Built-in Blockly Blocks //--\x3e\n\n </xml>\n';
|
|
1
|
+
import{jsx as _jsx}from"react/jsx-runtime";import React,{forwardRef,useImperativeHandle,useCallback,useState}from"react";import Blockly from"blockly";import{pythonGenerator}from"blockly/python";import{BlocklyWorkspace}from"react-blockly";import"./BlocklyEditor.css";export const BlocklyEditor=forwardRef((e,n)=>{const[l,t]=useState(""),[a,o]=useState(""),[c,d]=useState(0),[s,i]=useState(0),[m,r]=useState(void 0),b=React.createRef();useImperativeHandle(n,()=>({newBlockly(){m&&m.clear()},loadBlockly(n){if(m)try{m.clear();const e=Blockly.utils.xml.textToDom(n);Blockly.Xml.domToWorkspace(e,m)}catch(n){e.onError&&e.onError(`${n}`)}}})),React.useEffect(()=>(y(),window.addEventListener("resize",y),()=>{window.removeEventListener("resize",y)}),[]);const y=useCallback(()=>{if(b.current){let n=0,l=0,t=b.current.parentElement;for(;null!==t&&(n=t.offsetWidth,l=t.offsetHeight,!(t.className.indexOf("blockly-container")>=0));)t=t.parentElement;n<300&&(n=300),l<300&&(l=300),d(.9*n+e.widthAdjustment),i(.9*l+e.heightAdjustment)}},[e.widthAdjustment,e.heightAdjustment]);return _jsx("div",{ref:b,style:{width:c,height:s},children:_jsx(BlocklyWorkspace,{className:"fill-height",toolboxConfiguration:e.toolbox,initialXml:e.initialXml,onWorkspaceChange:n=>{const l=pythonGenerator.workspaceToCode(n);o(l),e.onWorkspaceChanged&&e.onWorkspaceChanged(n),e.onCodeChanged&&e.onCodeChanged(l)},onXmlChange:n=>{t(n),void 0!==e.onXmlChanged&&null!==e.onXmlChanged&&e.onXmlChanged(n)},onInject:e=>{r(e)},workspaceConfiguration:{grid:{spacing:20,length:3,colour:"#ccc",snap:!0}}})})});export default BlocklyEditor;export const createCustomToolbox=(e,n)=>{const l="\x3c!-- END: Built-in Blockly Blocks //--\x3e",t=StandardToolbox.indexOf("\x3c!-- BEGIN: Built-in Blockly Blocks //--\x3e"),a=StandardToolbox.indexOf(l);if(-1===t||-1===a)throw new Error("Could not find markers in standard toolbox");return StandardToolbox.slice(0,t)+(e||"")+StandardToolbox.slice(t,a+39)+(n||"")+StandardToolbox.slice(a+39+1)};export const StandardToolbox='\n <xml id="toolbox" style="display: none">\n \x3c!-- BEGIN: Built-in Blockly Blocks //--\x3e\n <category name="Logic" categorystyle="logic_category">\n <block type="controls_if"></block>\n <block type="logic_compare"></block>\n <block type="logic_operation"></block>\n <block type="logic_negate"></block>\n <block type="logic_boolean"></block>\n <block type="logic_null" disabled="true"></block>\n <block type="logic_ternary"></block>\n </category>\n <category name="Loops" categorystyle="loop_category">\n <block type="controls_repeat_ext">\n <value name="TIMES">\n <shadow type="math_number">\n <field name="NUM">10</field>\n </shadow>\n </value>\n </block>\n <block type="controls_repeat" disabled="true"></block>\n <block type="controls_whileUntil"></block>\n <block type="controls_for">\n <value name="FROM">\n <shadow type="math_number">\n <field name="NUM">1</field>\n </shadow>\n </value>\n <value name="TO">\n <shadow type="math_number">\n <field name="NUM">10</field>\n </shadow>\n </value>\n <value name="BY">\n <shadow type="math_number">\n <field name="NUM">1</field>\n </shadow>\n </value>\n </block>\n <block type="controls_forEach"></block>\n <block type="controls_flow_statements"></block>\n </category>\n <category name="Math" categorystyle="math_category">\n <block type="math_number" gap="32">\n <field name="NUM">123</field>\n </block>\n <block type="math_arithmetic">\n <value name="A">\n <shadow type="math_number">\n <field name="NUM">1</field>\n </shadow>\n </value>\n <value name="B">\n <shadow type="math_number">\n <field name="NUM">1</field>\n </shadow>\n </value>\n </block>\n <block type="math_single">\n <value name="NUM">\n <shadow type="math_number">\n <field name="NUM">9</field>\n </shadow>\n </value>\n </block>\n <block type="math_trig">\n <value name="NUM">\n <shadow type="math_number">\n <field name="NUM">45</field>\n </shadow>\n </value>\n </block>\n <block type="math_constant"></block>\n <block type="math_number_property">\n <value name="NUMBER_TO_CHECK">\n <shadow type="math_number">\n <field name="NUM">0</field>\n </shadow>\n </value>\n </block>\n <block type="math_round">\n <value name="NUM">\n <shadow type="math_number">\n <field name="NUM">3.1</field>\n </shadow>\n </value>\n </block>\n <block type="math_on_list"></block>\n <block type="math_modulo">\n <value name="DIVIDEND">\n <shadow type="math_number">\n <field name="NUM">64</field>\n </shadow>\n </value>\n <value name="DIVISOR">\n <shadow type="math_number">\n <field name="NUM">10</field>\n </shadow>\n </value>\n </block>\n <block type="math_constrain">\n <value name="VALUE">\n <shadow type="math_number">\n <field name="NUM">50</field>\n </shadow>\n </value>\n <value name="LOW">\n <shadow type="math_number">\n <field name="NUM">1</field>\n </shadow>\n </value>\n <value name="HIGH">\n <shadow type="math_number">\n <field name="NUM">100</field>\n </shadow>\n </value>\n </block>\n <block type="math_random_int">\n <value name="FROM">\n <shadow type="math_number">\n <field name="NUM">1</field>\n </shadow>\n </value>\n <value name="TO">\n <shadow type="math_number">\n <field name="NUM">100</field>\n </shadow>\n </value>\n </block>\n <block type="math_random_float"></block>\n <block type="math_atan2">\n <value name="X">\n <shadow type="math_number">\n <field name="NUM">1</field>\n </shadow>\n </value>\n <value name="Y">\n <shadow type="math_number">\n <field name="NUM">1</field>\n </shadow>\n </value>\n </block>\n </category>\n <category name="Text" categorystyle="text_category">\n <block type="text"></block>\n <block type="text_multiline"></block>\n <block type="text_join"></block>\n <block type="text_append">\n <value name="TEXT">\n <shadow type="text"></shadow>\n </value>\n </block>\n <block type="text_length">\n <value name="VALUE">\n <shadow type="text">\n <field name="TEXT">abc</field>\n </shadow>\n </value>\n </block>\n <block type="text_isEmpty">\n <value name="VALUE">\n <shadow type="text">\n <field name="TEXT"></field>\n </shadow>\n </value>\n </block>\n <block type="text_indexOf">\n <value name="VALUE">\n <block type="variables_get">\n <field name="VAR">text</field>\n </block>\n </value>\n <value name="FIND">\n <shadow type="text">\n <field name="TEXT">abc</field>\n </shadow>\n </value>\n </block>\n <block type="text_charAt">\n <value name="VALUE">\n <block type="variables_get">\n <field name="VAR">text</field>\n </block>\n </value>\n </block>\n <block type="text_getSubstring">\n <value name="STRING">\n <block type="variables_get">\n <field name="VAR">text</field>\n </block>\n </value>\n </block>\n <block type="text_changeCase">\n <value name="TEXT">\n <shadow type="text">\n <field name="TEXT">abc</field>\n </shadow>\n </value>\n </block>\n <block type="text_trim">\n <value name="TEXT">\n <shadow type="text">\n <field name="TEXT">abc</field>\n </shadow>\n </value>\n </block>\n <block type="text_count">\n <value name="SUB">\n <shadow type="text"></shadow>\n </value>\n <value name="TEXT">\n <shadow type="text"></shadow>\n </value>\n </block>\n <block type="text_replace">\n <value name="FROM">\n <shadow type="text"></shadow>\n </value>\n <value name="TO">\n <shadow type="text"></shadow>\n </value>\n <value name="TEXT">\n <shadow type="text"></shadow>\n </value>\n </block>\n <block type="text_reverse">\n <value name="TEXT">\n <shadow type="text"></shadow>\n </value>\n </block>\n <label text="Input/Output:" web-class="ioLabel"></label>\n <block type="text_print">\n <value name="TEXT">\n <shadow type="text">\n <field name="TEXT">abc</field>\n </shadow>\n </value>\n </block>\n <block type="text_prompt_ext">\n <value name="TEXT">\n <shadow type="text">\n <field name="TEXT">abc</field>\n </shadow>\n </value>\n </block>\n </category>\n <category name="Lists" categorystyle="list_category">\n <block type="lists_create_with">\n <mutation items="0"></mutation>\n </block>\n <block type="lists_create_with"></block>\n <block type="lists_repeat">\n <value name="NUM">\n <shadow type="math_number">\n <field name="NUM">5</field>\n </shadow>\n </value>\n </block>\n <block type="lists_length"></block>\n <block type="lists_isEmpty"></block>\n <block type="lists_indexOf">\n <value name="VALUE">\n <block type="variables_get">\n <field name="VAR">list</field>\n </block>\n </value>\n </block>\n <block type="lists_getIndex">\n <value name="VALUE">\n <block type="variables_get">\n <field name="VAR">list</field>\n </block>\n </value>\n </block>\n <block type="lists_setIndex">\n <value name="LIST">\n <block type="variables_get">\n <field name="VAR">list</field>\n </block>\n </value>\n </block>\n <block type="lists_getSublist">\n <value name="LIST">\n <block type="variables_get">\n <field name="VAR">list</field>\n </block>\n </value>\n </block>\n <block type="lists_split">\n <value name="DELIM">\n <shadow type="text">\n <field name="TEXT">,</field>\n </shadow>\n </value>\n </block>\n <block type="lists_sort"></block>\n <block type="lists_reverse"></block>\n </category>\n <category name="Variables" categorystyle="variable_category" custom="VARIABLE"></category>\n <category name="Functions" categorystyle="procedure_category" custom="PROCEDURE"></category>\n\n \x3c!-- END: Built-in Blockly Blocks //--\x3e\n\n </xml>\n';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { editor } from 'monaco-editor';
|
|
3
|
-
import { Monaco } from '@monaco-editor/react';
|
|
3
|
+
import { type Monaco } from '@monaco-editor/react';
|
|
4
4
|
interface CodeEditorProps {
|
|
5
5
|
/**
|
|
6
6
|
* Code content of the editor
|
|
@@ -74,3 +74,4 @@ export declare class CodeEditor extends React.Component<CodeEditorProps> {
|
|
|
74
74
|
render(): import("react/jsx-runtime").JSX.Element;
|
|
75
75
|
}
|
|
76
76
|
export default CodeEditor;
|
|
77
|
+
//# sourceMappingURL=CodeEditor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CodeEditor.d.ts","sourceRoot":"","sources":["../../src/components/CodeEditor.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAEvC,OAAe,EAAE,KAAK,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAG3D,UAAU,eAAe;IAErB;;OAEG;IACH,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IAEzB;;;OAGG;IACH,QAAQ,EAAG,MAAM,CAAC;IAElB;;;OAGG;IACH,KAAK,EAAG,SAAS,GAAG,UAAU,CAAC;IAE/B;;;OAGG;IACH,QAAQ,EAAE,OAAO,CAAC;IAElB;;;OAGG;IACH,WAAW,EAAE,MAAM,GAAG,OAAO,GAAG,WAAW,GAAG,WAAW,GAAG,eAAe,GAAG,gBAAgB,GAAG,SAAS,CAAC;IAG3G,4DAA4D;IAC5D,aAAa,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;CAClD;AAGD;;GAEG;AACH,qBAAa,UAAW,SAAQ,KAAK,CAAC,SAAS,CAAC,eAAe,CAAC;IAG5D;;OAEG;IACH,MAAM,CAAC,YAAY;;;;;;;MAOlB;IAED;;;OAGG;gBACS,KAAK,EAAE,eAAe;IAKlC;;;;OAIG;IACH,cAAc,GAAI,QAAQ,MAAM,CAAC,qBAAqB,EAAE,QAAQ,MAAM,UAGpE;IAEF;;;OAGG;IACH,qBAAqB,GAAI,QAAQ,MAAM,UAEtC;IAGD;;;;OAIG;IACH,QAAQ,GAAI,UAAU,MAAM,GAAG,SAAS,EAAE,GAAG,GAAG,UAK9C;IAGF,sBAAsB,GAAI,SAAS,MAAM,CAAC,OAAO,EAAE,UAGlD;IAGD;;;OAGG;IACH,MAAM;CA8BT;AAED,eAAe,UAAU,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as _jsx}from"react/jsx-runtime";import*as React from"react";import Editor
|
|
1
|
+
import{jsx as _jsx}from"react/jsx-runtime";import*as React from"react";import{editor}from"monaco-editor";import Editor,{}from"@monaco-editor/react";export class CodeEditor extends React.Component{constructor(e){super(e),Object.defineProperty(this,"editorDidMount",{enumerable:!0,configurable:!0,writable:!0,value:(e,o)=>{e.focus()}}),Object.defineProperty(this,"handleEditorWillMount",{enumerable:!0,configurable:!0,writable:!0,value:e=>{}}),Object.defineProperty(this,"onChange",{enumerable:!0,configurable:!0,writable:!0,value:(e,o)=>{void 0!==this.props.onCodeChanged&&null!==this.props.onCodeChanged&&this.props.onCodeChanged(e)}}),Object.defineProperty(this,"handleEditorValidation",{enumerable:!0,configurable:!0,writable:!0,value:e=>{e.forEach(e=>{})}})}render(){const e={selectOnLineNumbers:!0,roundedSelection:!1,readOnly:this.props.readOnly,cursorStyle:this.props.cursorStyle,automaticLayout:!0,theme:this.props.theme,language:this.props.language,folding:!1};return _jsx(Editor,{value:this.props.code,height:"100%",width:"100%",defaultLanguage:"python",defaultValue:"",onChange:this.onChange,onMount:this.editorDidMount,beforeMount:this.handleEditorWillMount,onValidate:this.handleEditorValidation,theme:"vs-dark",options:e})}}Object.defineProperty(CodeEditor,"defaultProps",{enumerable:!0,configurable:!0,writable:!0,value:{code:void 0,language:"python",theme:"vs-dark",readOnly:!1,cursorStyle:"line",onCodeChanged:void 0}});export default CodeEditor;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FileList.d.ts","sourceRoot":"","sources":["../../src/components/FileList.tsx"],"names":[],"mappings":"AASA;;;;;;GAMG;AAEH,OAAO,KAA0C,MAAM,OAAO,CAAC;AAW/D;;GAEG;AACH;;GAEG;AACH,KAAK,aAAa,GAAG;IAGjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAGhB,YAAY,CAAC,EAAE,OAAO,CAAC;IAIvB,MAAM,CAAC,EAAE,MAAM,CAAA;IAEf;;;;;;;;;;;;;;;;;;;OAmBG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,SAAS,CAAC,EAAG,CAAC,OAAO,EAAC,MAAM,KAAK,IAAI,CAAC;IAEtC;;OAEG;IACH,OAAO,CAAC,EAAG,CAAC,OAAO,EAAC,MAAM,KAAK,IAAI,CAAC;CACvC,CAAA;AAWD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CA8Q5C,CAAC;AAEF,eAAe,QAAQ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";import React,{useState,useContext,useEffect}from"react";import{DataTable}from"primereact/datatable";import{Column}from"primereact/column";import{Toolbar}from"primereact/toolbar";import{Button}from"primereact/button";import{confirmPopup}from"primereact/confirmpopup";import{FileUpload}from"primereact/fileupload";import{EventEmitterContext}from"../core/EventEmitterContext";export const FileList=({domain:e="DATASTORE",enableUpload:t=!1,subdir:o,filter:a=".json",onSuccess:n,onError:i})=>{const[r,l]=useState(0),{invoke:s}=useContext(EventEmitterContext),[c,d]=useState(),m=e=>null!==e?void 0!==o?`${o}/${e}`:e:"",p=async()=>{try{const t=void 0!==o?{subdir:o}:{};let a=await s(e,"list_files",t),n=[];for(let e=0;e<a.data.length;++e){const t=a.data[e];n.push({id:e+1,name:t})}d(n)}catch(e){i&&i(`Failed to upload file list: ${e}`)}};const u=()=>{l(
|
|
1
|
+
import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";import React,{useState,useContext,useEffect}from"react";import{DataTable}from"primereact/datatable";import{Column}from"primereact/column";import{Toolbar}from"primereact/toolbar";import{Button}from"primereact/button";import{confirmPopup}from"primereact/confirmpopup";import{FileUpload}from"primereact/fileupload";import{EventEmitterContext}from"../core/EventEmitterContext";export const FileList=({domain:e="DATASTORE",enableUpload:t=!1,subdir:o,filter:a=".json",onSuccess:n,onError:i})=>{const[r,l]=useState(0),{invoke:s}=useContext(EventEmitterContext),[c,d]=useState(),m=e=>null!==e?void 0!==o?`${o}/${e}`:e:"",p=async()=>{try{const t=void 0!==o?{subdir:o}:{};let a=await s(e,"list_files",t),n=[];for(let e=0;e<a.data.length;++e){const t=a.data[e];n.push({id:e+1,name:t})}d(n)}catch(e){i&&i(`Failed to upload file list: ${e}`)}};const u=()=>{l(e=>e+1)},f=`File Listing [/${void 0!==o?o:""}]`,x=_jsx(React.Fragment,{children:_jsx("span",{style:{fontWeight:600},children:f})}),b=_jsxs(React.Fragment,{children:[t&&_jsx(FileUpload,{customUpload:!0,auto:!0,uploadHandler:async t=>{const o=t.files[0];let a=m(o.name);const r=new FileReader;r.onload=async t=>{const r=t.target?.result,l=function c(e){let t="",o=new Uint8Array(e),a=o.byteLength;for(let e=0;e<a;e++)t+=String.fromCharCode(o[e]);return window.btoa(t)}(r);try{await s(e,"write_file",{file_name:a,value:l,options:{base64:!0}}),n&&n(`Uploaded file ${o.name}`),p()}catch(e){i&&i(`Failed to upload file: ${e}`)}u()},r.onerror=e=>{i&&i(`Error reading file: ${e}`)},r.readAsArrayBuffer(o)},accept:a,maxFileSize:25e3,mode:"basic",chooseLabel:"",chooseOptions:{icon:"pi pi-upload",className:"p-button-icon-only p-button-text p-button-rounded p-mr-2"}},r),_jsx(Button,{icon:"pi pi-refresh",onClick:()=>{p()},className:"p-button-rounded p-mr-2","aria-label":"Refresh",size:"small",rounded:!0,text:!0})]}),h=(t,o)=>{confirmPopup({target:o.currentTarget,message:`Are you want to delete file ${t.name}?\nWARNING: This cannot be undone.`,icon:"pi pi-info-circle",defaultFocus:"reject",acceptClassName:"p-button-danger",accept:()=>(async t=>{let o=m(t);try{await s(e,"delete_file",{file_name:o}),n&&n(`Deleted file: ${t}`),p()}catch(e){i&&i(`Failed to delete file: ${e}`)}p()})(t.name)})};return useEffect(()=>(p(),()=>{}),[e,t]),_jsxs("div",{children:[_jsx(Toolbar,{start:x,end:b,style:{padding:"1mm"}}),_jsxs(DataTable,{value:c,children:[_jsx(Column,{field:"name",header:"Name"}),_jsx(Column,{body:t=>_jsxs(_Fragment,{children:[_jsx(Button,{icon:"pi pi-download",onClick:()=>(async t=>{let o=m(t.name);try{await s(e,"download_file",{file_name:o}),n&&n(`Downloaded file: ${t.name}`)}catch(e){i&&i(`Failed downloading file: ${e}`)}})(t),className:"p-button-rounded p-button-success p-mr-2",style:{marginRight:"2mm"},size:"small"}),_jsx(Button,{icon:"pi pi-trash",onClick:e=>h(t,e),className:"p-button-rounded p-button-danger",size:"small"})]}),header:"Actions"})]})]})};export default FileList;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FileSelect.d.ts","sourceRoot":"","sources":["../../src/components/FileSelect.tsx"],"names":[],"mappings":"AAUA,OAAO,KAA0C,MAAM,OAAO,CAAC;AAO/D,KAAK,eAAe,GAAG;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gDAAgD;IAChD,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,cAAc,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;CACxB,CAAA;AAOD,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CA0FhD,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{useState,useContext,useEffect}from"react";import{DataTable}from"primereact/datatable";import{Column}from"primereact/column";import{Button}from"primereact/button";import{EventEmitterContext}from"../core/EventEmitterContext";export const FileSelect=({domain:e="DATASTORE",subdir:t,filter:n,onFileSelected:l,onAccept:i,onCancel:o})=>{const{invoke:a}=useContext(EventEmitterContext),[s,c]=useState([]),[r,m]=useState(null),u=e=>{m(e),l&&l(e.name)};return useEffect((
|
|
1
|
+
import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import React,{useState,useContext,useEffect}from"react";import{DataTable}from"primereact/datatable";import{Column}from"primereact/column";import{Button}from"primereact/button";import{EventEmitterContext}from"../core/EventEmitterContext";export const FileSelect=({domain:e="DATASTORE",subdir:t,filter:n,onFileSelected:l,onAccept:i,onCancel:o})=>{const{invoke:a}=useContext(EventEmitterContext),[s,c]=useState([]),[r,m]=useState(null),u=e=>{m(e),l&&l(e.name)};return useEffect(()=>{(async()=>{try{let l;l=null!=n?t?{subdir:t,options:{filter:n}}:{options:{filter:n}}:t?{subdir:t}:{};const i=(await a(e,"list_files",l)).data.map((e,t)=>({id:t+1,name:e}));c(i)}catch(e){}})()},[e,t]),_jsxs("div",{children:[_jsxs(DataTable,{value:s,selectionMode:"single",selection:r,onSelectionChange:e=>u(e.value),children:[_jsx(Column,{field:"name",header:"File Name"}),_jsx(Column,{body:e=>_jsx(Button,{label:r?.name===e.name?"Selected":"Select",icon:r?.name===e.name?"pi pi-check-circle":"pi pi-circle-off",onClick:()=>u(e),className:"p-button-rounded "+(r?.name===e.name?"p-button-success":"p-button-outlined"),"aria-label":"Select",size:"small"}),header:"Select"})]}),_jsxs("div",{style:{display:"flex",justifyContent:"flex-end",marginTop:"10px"},children:[_jsx(Button,{label:"Cancel",icon:"pi pi-times",className:"p-button-text",onClick:o}),_jsx(Button,{label:"Accept",icon:"pi pi-check",className:"p-button",onClick:()=>{void 0!==i&&null!==r&&i(null!==r?void 0!==t?`${t}/${r.name}`:r.name:"")},disabled:!r})]})]})};export default FileSelect;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FitText.d.ts","sourceRoot":"","sources":["../../src/components/FitText.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,UAAU,YAAY;IACpB,sDAAsD;IACtD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED;;;;;GAKG;AACH,eAAO,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CAQ1C,CAAC;AAGF,eAAe,OAAO,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as _jsx}from"react/jsx-runtime";import useFitText from"use-fit-text";export const FitText=({children:t})=>{const{fontSize:e,ref:i}=useFitText();return _jsx("div",{ref:i,style:{width:"100%",height:"100%",display:"flex",justifyContent:"center",alignItems:"center"},children:_jsx("p",{style:{fontSize:e},children:t})})};export default FitText;
|
|
1
|
+
import{jsx as _jsx}from"react/jsx-runtime";import React from"react";import useFitText from"use-fit-text";export const FitText=({children:t})=>{const{fontSize:e,ref:i}=useFitText();return _jsx("div",{ref:i,style:{width:"100%",height:"100%",display:"flex",justifyContent:"center",alignItems:"center"},children:_jsx("p",{style:{fontSize:e},children:t})})};export default FitText;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React, { Component } from 'react';
|
|
2
|
-
import { EventEmitterContextType } from '../core/EventEmitterContext';
|
|
2
|
+
import { type EventEmitterContextType } from '../core/EventEmitterContext';
|
|
3
3
|
import { IndicatorColor } from "../core/IndicatorColor";
|
|
4
4
|
export { IndicatorColor };
|
|
5
5
|
interface IndicatorProps {
|
|
@@ -64,3 +64,4 @@ export declare class Indicator extends Component<IndicatorProps, IndicatorState>
|
|
|
64
64
|
render(): import("react/jsx-runtime").JSX.Element;
|
|
65
65
|
}
|
|
66
66
|
export default Indicator;
|
|
67
|
+
//# sourceMappingURL=Indicator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Indicator.d.ts","sourceRoot":"","sources":["../../src/components/Indicator.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEzC,OAAO,EAAuB,KAAK,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAEhG,OAAO,EAAC,cAAc,EAAC,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAC,cAAc,EAAC,CAAA;AAOvB,UAAU,cAAc;IAGpB;;;;;;;;;OASG;IACH,KAAK,CAAC,EAAG,KAAK,CAAC,SAAS,CAAC;IAGzB;;;;;;;;OAQG;IACH,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC5B;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAGlB;AAGD,UAAU,cAAc;IACpB,eAAe,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAGD,qBAAa,SAAU,SAAQ,SAAS,CAAC,cAAc,EAAE,cAAc,CAAC;IACpE,MAAM,CAAC,WAAW,yCAAuB;IACzC,SAAS,CAAC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAQ;IAGnD,MAAM,CAAC,YAAY;;;;MAIjB;gBAEU,KAAK,EAAE,cAAc;IAQjC,iBAAiB;IAUjB,kBAAkB,CAAC,SAAS,EAAE,cAAc;IAM5C,oBAAoB;IAQpB,MAAM;CA8DT;AAED,eAAe,SAAS,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{Component}from"react";import{EventEmitterContext}from"../core/EventEmitterContext";import{IndicatorColor}from"../core/IndicatorColor";export{IndicatorColor};export class Indicator extends Component{constructor(e){super(e),Object.defineProperty(this,"unsubscribeTopicId",{enumerable:!0,configurable:!0,writable:!0,value:null}),this.state={subscribedValue:e.value,fontSize:"100%"}}componentDidMount(){const{topic:e}=this.props;if(e&&null===this.unsubscribeTopicId){const{subscribe:t}=this.context;this.unsubscribeTopicId=t(e,
|
|
1
|
+
import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import React,{Component}from"react";import{EventEmitterContext}from"../core/EventEmitterContext";import{IndicatorColor}from"../core/IndicatorColor";export{IndicatorColor};export class Indicator extends Component{constructor(e){super(e),Object.defineProperty(this,"unsubscribeTopicId",{enumerable:!0,configurable:!0,writable:!0,value:null}),this.state={subscribedValue:e.value,fontSize:"100%"}}componentDidMount(){const{topic:e}=this.props;if(e&&null===this.unsubscribeTopicId){const{subscribe:t}=this.context;this.unsubscribeTopicId=t(e,e=>{this.setState({subscribedValue:e})})}}componentDidUpdate(e){e.value!==this.props.value&&this.setState({subscribedValue:this.props.value})}componentWillUnmount(){if(null!==this.unsubscribeTopicId){const{unsubscribe:e}=this.context;e(this.unsubscribeTopicId),this.unsubscribeTopicId=null}}render(){const{label:e,value:t,onColor:o,offColor:r,invalidColor:s}=this.props,{subscribedValue:i}=this.state;let n,a=i;switch(void 0!==t&&(a=t),a){case!0:n=o;break;case!1:n=r;break;default:n=s}return _jsxs("div",{className:"p-inputgroup flex-1",style:{alignItems:"center !important"},children:[_jsx("span",{className:"p-inputgroup-addon",style:{backgroundColor:n,width:"22px"},children:" "}),_jsx("span",{className:"p-inputgroup-addon",children:e})]})}}Object.defineProperty(Indicator,"contextType",{enumerable:!0,configurable:!0,writable:!0,value:EventEmitterContext}),Object.defineProperty(Indicator,"defaultProps",{enumerable:!0,configurable:!0,writable:!0,value:{onColor:"green",offColor:"gray",invalidColor:"black"}});export default Indicator;
|
|
@@ -1,156 +1,42 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { ButtonProps } from
|
|
3
|
-
import { EventEmitterContextType } from '../core/EventEmitterContext';
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { type ButtonProps } from "primereact/button";
|
|
4
3
|
import { IndicatorColor } from "../core/IndicatorColor";
|
|
5
4
|
export { IndicatorColor };
|
|
6
|
-
import { ActionMode } from
|
|
5
|
+
import { ActionMode } from "../core/ActionMode";
|
|
7
6
|
export { ActionMode };
|
|
8
|
-
import { IndicatorButtonState } from '../core/IndicatorButtonState';
|
|
9
7
|
export declare type IndicatorButtonOptionsType = string[] | undefined[] | undefined;
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
* These types of components both indicate a state and execute commands/signals.
|
|
13
|
-
* This type of component is very common in industrial HMIs.
|
|
14
|
-
*
|
|
15
|
-
* These properties support displaying values of boolean, number and string states.
|
|
16
|
-
*
|
|
17
|
-
* Available boolean states: **on**, **off** and **not available**:
|
|
18
|
-
*
|
|
19
|
-
* * `true` is treated as **on**
|
|
20
|
-
* * `false` is treated as **off**
|
|
21
|
-
* * `undefined` is treated as **not available**
|
|
22
|
-
*
|
|
23
|
-
* Numeric values can be used. When there is only 2 or less possible states,
|
|
24
|
-
* 0 will be considered false (OFF), anything else will be considered true (ON).
|
|
25
|
-
* Undefined will be treated as "not available.""
|
|
26
|
-
*
|
|
27
|
-
* When the indicator contains more than 2 states, then the number will be matched
|
|
28
|
-
* to the available state, in order. More than two states requires usage of the
|
|
29
|
-
* options field, and declaring more than two states there.
|
|
30
|
-
*
|
|
31
|
-
* If a string state is used, it will be matched exactly to the matching
|
|
32
|
-
* label in the `options` field.
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
* For more information on the AutoCore Button API Specification, see
|
|
36
|
-
* [Additional Documentation](../additional-docs/ButtonApiSpecs.md).
|
|
37
|
-
*/
|
|
38
|
-
export interface IndicatorButtonProps extends Omit<ButtonProps, 'value'> {
|
|
39
|
-
/**
|
|
40
|
-
* Topic name to monitor for state indication.
|
|
41
|
-
* If `value` field is not undefined, then that value is used instead.
|
|
42
|
-
*/
|
|
8
|
+
export interface IndicatorButtonProps extends Omit<ButtonProps, "value"> {
|
|
9
|
+
/** Topic name to monitor for state indication. If `value` is not undefined, that value is used instead. */
|
|
43
10
|
topic?: string;
|
|
44
|
-
/**
|
|
45
|
-
* State to be displayed.
|
|
46
|
-
*
|
|
47
|
-
*/
|
|
11
|
+
/** State to be displayed. */
|
|
48
12
|
value?: boolean | number | string;
|
|
49
|
-
/**
|
|
50
|
-
* Color for the button when the state is TRUE.
|
|
51
|
-
*/
|
|
13
|
+
/** Color for the button when the state is TRUE. */
|
|
52
14
|
onColor?: IndicatorColor;
|
|
53
|
-
/**
|
|
54
|
-
* Color for the button when the state is FALSE.
|
|
55
|
-
*/
|
|
15
|
+
/** Color for the button when the state is FALSE. */
|
|
56
16
|
offColor?: IndicatorColor;
|
|
57
|
-
/**
|
|
58
|
-
* An array of string labels to display as the available options.
|
|
59
|
-
*
|
|
60
|
-
* For items with 2 states or less:
|
|
61
|
-
* Index 0 is the label when value is OFF.
|
|
62
|
-
* Index 1 is the label when value is ON.
|
|
63
|
-
*
|
|
64
|
-
* If only only value is given (Index 0), then that value is used for all states.
|
|
65
|
-
* For many controls, this is the same as setting the `label` field and leaving this
|
|
66
|
-
* field undefined.
|
|
67
|
-
*/
|
|
17
|
+
/** Labels for available options (see docs). */
|
|
68
18
|
options?: IndicatorButtonOptionsType;
|
|
69
|
-
/**
|
|
70
|
-
* Icon to be displayed on the button. Overrideen by onIcon or offIcon if those
|
|
71
|
-
* are not undefined.
|
|
72
|
-
*/
|
|
19
|
+
/** Base icon class (overridden by onIcon/offIcon). */
|
|
73
20
|
icon?: string;
|
|
74
|
-
/**
|
|
75
|
-
* Icon displayed when the state is TRUE. Falls back to `icon` if undefined.
|
|
76
|
-
*/
|
|
21
|
+
/** Icon when TRUE. */
|
|
77
22
|
onIcon?: string;
|
|
78
|
-
/**
|
|
79
|
-
* Icon displayed when the state is FALSE. Falls back to `icon` if undefined.
|
|
80
|
-
*/
|
|
23
|
+
/** Icon when FALSE. */
|
|
81
24
|
offIcon?: string;
|
|
82
|
-
/**
|
|
83
|
-
* Name of the command to invoke on button events.
|
|
84
|
-
* If command is "*", then the commandTopic will be dispatched
|
|
85
|
-
* internally.
|
|
86
|
-
*/
|
|
25
|
+
/** Name of the command to invoke on button events. */
|
|
87
26
|
command?: string;
|
|
88
|
-
/**
|
|
89
|
-
* Optional topic parameter to send along with the command.
|
|
90
|
-
* If set, will automatically be included with commandArgs as
|
|
91
|
-
* the value of field 'topic.'
|
|
92
|
-
*/
|
|
27
|
+
/** Optional topic sent with the command payload. */
|
|
93
28
|
commandTopic?: string;
|
|
94
|
-
/**
|
|
95
|
-
* Optional arguments sent with the command.
|
|
96
|
-
*/
|
|
29
|
+
/** Optional args sent with the command payload. */
|
|
97
30
|
commandArgs?: any;
|
|
98
|
-
/**
|
|
99
|
-
* Topic to disable button interaction.
|
|
100
|
-
*/
|
|
101
|
-
disableTopic?: string;
|
|
102
|
-
/**
|
|
103
|
-
* Topic to control the visibility of the button.
|
|
104
|
-
*/
|
|
105
|
-
invisibleTopic?: string;
|
|
106
|
-
/**
|
|
107
|
-
* Mode of input for the button (e.g., TAP, TOGGLE).
|
|
108
|
-
*/
|
|
31
|
+
/** Input mode (Tap, Pressed, Released). */
|
|
109
32
|
actionMode?: ActionMode;
|
|
110
|
-
/**
|
|
111
|
-
* Inverts the signal values for TAP, PRESSED, and RELEASED modes.
|
|
112
|
-
*/
|
|
33
|
+
/** Inverts values for Tap/Pressed/Released dispatches. */
|
|
113
34
|
invert?: boolean;
|
|
35
|
+
/** Directly disables the button (replaces old disableTopic). */
|
|
36
|
+
disabled?: boolean;
|
|
37
|
+
/** Hides the button (replaces old invisibleTopic/hiddenTopic). */
|
|
38
|
+
hidden?: boolean;
|
|
114
39
|
}
|
|
115
|
-
export declare
|
|
116
|
-
static contextType: import("react").Context<EventEmitterContextType>;
|
|
117
|
-
static defaultProps: {
|
|
118
|
-
onColor: IndicatorColor;
|
|
119
|
-
offColor: string;
|
|
120
|
-
};
|
|
121
|
-
constructor(props: IndicatorButtonProps);
|
|
122
|
-
componentDidMount(): void;
|
|
123
|
-
componentDidUpdate(prevProps: IndicatorButtonProps): void;
|
|
124
|
-
componentWillUnmount(): void;
|
|
125
|
-
/**
|
|
126
|
-
* Sets up subscriptions based on provided topics.
|
|
127
|
-
*/
|
|
128
|
-
private setupSubscriptions;
|
|
129
|
-
/**
|
|
130
|
-
* Handles updates for the main topic.
|
|
131
|
-
*/
|
|
132
|
-
private handleTopicUpdate;
|
|
133
|
-
/**
|
|
134
|
-
* Handles updates for the disable topic.
|
|
135
|
-
*/
|
|
136
|
-
private handleDisableTopicUpdate;
|
|
137
|
-
/**
|
|
138
|
-
* Handles updates for the invisible topic.
|
|
139
|
-
*/
|
|
140
|
-
private handleInvisibleTopicUpdate;
|
|
141
|
-
/**
|
|
142
|
-
* Handle the button being pressed down. Used for TAP and PRESSED action modes.
|
|
143
|
-
*/
|
|
144
|
-
protected handleOnPressed(): void;
|
|
145
|
-
/**
|
|
146
|
-
* Handle the button being released. Used for TAP and RELEASED action modes.
|
|
147
|
-
*/
|
|
148
|
-
protected handleOnReleased(): void;
|
|
149
|
-
/**
|
|
150
|
-
* Dispatch a value to any listeners.
|
|
151
|
-
* @param value The value to dispatch as part of the payload.
|
|
152
|
-
*/
|
|
153
|
-
protected dispatchCommand(value: any): void;
|
|
154
|
-
render(): import("react/jsx-runtime").JSX.Element;
|
|
155
|
-
}
|
|
40
|
+
export declare const IndicatorButton: React.FC<IndicatorButtonProps>;
|
|
156
41
|
export default IndicatorButton;
|
|
42
|
+
//# sourceMappingURL=IndicatorButton.d.ts.map
|