@kvaser/canking-api 7.1.0-beta.241 → 7.2.0
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/README.md +98 -64
- package/REDISTRIBUTABLES.txt +88 -2
- package/dist/ElectronAPIFake.js +1 -1
- package/dist/ElectronAPIFake.mjs +20 -14
- package/dist/controls/CanIdentifierControl.d.ts +45 -8
- package/dist/controls/ColumnItemControl.d.ts +1 -1
- package/dist/controls/DropdownButton.d.ts +1 -1
- package/dist/controls/LinChannelSelectControl.d.ts +34 -0
- package/dist/controls/LinIdentifierControl.d.ts +224 -0
- package/dist/controls/SelectMessageDialog.d.ts +28 -0
- package/dist/controls/SelectSignalControl.d.ts +11 -0
- package/dist/controls/SelectSignalDialog.d.ts +21 -0
- package/dist/controls/TableControl.d.ts +7 -1
- package/dist/controls/index.d.ts +10 -0
- package/dist/controls.js +1 -1
- package/dist/controls.mjs +1862 -1054
- package/dist/grpc.js +1 -1
- package/dist/grpc.mjs +123 -95
- package/dist/hooks/index.d.ts +6 -1
- package/dist/hooks.js +1 -1
- package/dist/hooks.mjs +17 -16
- package/dist/icons/index.d.ts +6 -0
- package/dist/icons.js +1 -1
- package/dist/icons.mjs +87 -75
- package/dist/index.js +1 -1
- package/dist/index.mjs +48 -42
- package/dist/ipc/index.d.ts +30 -0
- package/dist/ipc.js +1 -1
- package/dist/ipc.mjs +64 -51
- package/dist/measurement_settings.js +1 -1
- package/dist/measurement_settings.mjs +3196 -1353
- package/dist/models/index.d.ts +4 -1
- package/dist/models.js +1 -1
- package/dist/models.mjs +235 -223
- package/dist/protos/app_params.d.ts +10 -0
- package/dist/protos/device_params.d.ts +14 -25
- package/dist/protos/frame_params.d.ts +10 -6
- package/dist/protos/measurement_params.d.ts +11 -0
- package/dist/protos/measurement_service.d.ts +58 -2
- package/dist/protos/measurement_settings.d.ts +106 -35
- package/dist/protos/signal_params.d.ts +3 -0
- package/dist/protos/status_params.d.ts +9 -9
- package/dist/status_params.js +1 -1
- package/dist/status_params.mjs +699 -2115
- package/doc/assets/favicon.png +0 -0
- package/doc/assets/hierarchy.js +1 -0
- package/doc/assets/highlight.css +16 -16
- package/doc/assets/icons.js +1 -1
- package/doc/assets/icons.svg +1 -1
- package/doc/assets/main.js +5 -5
- package/doc/assets/navigation.js +1 -1
- package/doc/assets/search.js +1 -1
- package/doc/assets/style.css +1405 -1288
- package/doc/classes/controls.LocalizedStrings.html +3 -176
- package/doc/classes/models.DataBuffer.html +16 -189
- package/doc/classes/models.DataBufferView.html +11 -184
- package/doc/classes/models.Point.html +7 -180
- package/doc/enums/models.AccessMode.html +9 -182
- package/doc/enums/models.AppEvent.html +6 -179
- package/doc/enums/models.CanChannelCap.html +44 -217
- package/doc/enums/models.CanFrameFlag.html +27 -200
- package/doc/enums/models.CanMessageFilterType.html +6 -0
- package/doc/enums/models.CanMode.html +7 -180
- package/doc/enums/models.DecimalChar.html +5 -178
- package/doc/enums/models.DeviceEvent.html +6 -179
- package/doc/enums/models.FileConflictAction.html +7 -180
- package/doc/enums/models.FileType.html +7 -0
- package/doc/enums/models.LinFrameFlag.html +12 -185
- package/doc/enums/models.LogFileFormat.html +48 -221
- package/doc/enums/models.LogLevel.html +17 -190
- package/doc/enums/models.LogReplayState.html +6 -179
- package/doc/enums/models.LoggerState.html +7 -0
- package/doc/enums/models.MeasurementEvent.html +12 -185
- package/doc/enums/models.Protocols.html +9 -182
- package/doc/enums/models.Separator.html +5 -178
- package/doc/enums/models.SignalEncoding.html +5 -178
- package/doc/enums/models.SignalType.html +12 -185
- package/doc/enums/models.SignalValueTriggerOperator.html +13 -186
- package/doc/enums/models.StatusLevel.html +7 -180
- package/doc/enums/models.TimeReference.html +5 -178
- package/doc/enums/models.TriggerOperator.html +6 -179
- package/doc/functions/controls.CanChannelSelectControl.html +2 -175
- package/doc/functions/controls.CanIdentifierControl.html +2 -175
- package/doc/functions/controls.CanIdentifierFrameControl.html +2 -175
- package/doc/functions/controls.CanIdentifierGeneratorControl.html +2 -175
- package/doc/functions/controls.CanIdentifierGeneratorSettingsControl.html +2 -175
- package/doc/functions/controls.CanKingDataProvider.html +5 -178
- package/doc/functions/controls.CheckboxControl.html +2 -175
- package/doc/functions/controls.ColumnItemControl.html +2 -175
- package/doc/functions/controls.ContextMenu.html +2 -175
- package/doc/functions/controls.DropdownButton.html +2 -175
- package/doc/functions/controls.DropdownButtonTextItems.html +2 -175
- package/doc/functions/controls.DropdownPanel.html +2 -175
- package/doc/functions/controls.FillBox.html +19 -192
- package/doc/functions/controls.FormControlRow.html +2 -175
- package/doc/functions/controls.InlineEditor.html +2 -175
- package/doc/functions/controls.LinChannelSelectControl.html +4 -0
- package/doc/functions/controls.LinIdentifierControl.html +4 -0
- package/doc/functions/controls.LinIdentifierFrameControl.html +4 -0
- package/doc/functions/controls.LinIdentifierGeneratorControl.html +4 -0
- package/doc/functions/controls.LinIdentifierGeneratorSettingsControl.html +5 -0
- package/doc/functions/controls.NumberRangeControl.html +2 -175
- package/doc/functions/controls.OneLineButton.html +19 -192
- package/doc/functions/controls.RadioControl.html +2 -175
- package/doc/functions/controls.RadioGroupControl.html +2 -175
- package/doc/functions/controls.SectionControl.html +2 -175
- package/doc/functions/controls.SelectControl.html +2 -175
- package/doc/functions/controls.SelectMessageDialog.html +2 -0
- package/doc/functions/controls.SelectSignalControl.html +1 -0
- package/doc/functions/controls.SelectSignalDialog.html +2 -0
- package/doc/functions/controls.SizedBox.html +19 -192
- package/doc/functions/controls.TableControl.html +3 -176
- package/doc/functions/controls.TabsPanel.html +19 -192
- package/doc/functions/controls.TextControl.html +2 -175
- package/doc/functions/controls.ToolbarControl.html +2 -175
- package/doc/functions/controls.ValidateableTextControl.html +2 -175
- package/doc/functions/controls.useColumnItem.html +3 -176
- package/doc/functions/controls.useColumnItems.html +3 -176
- package/doc/functions/controls.useMessageDatabases.html +2 -0
- package/doc/functions/hooks.useDevices.html +3 -176
- package/doc/functions/hooks.useIsOnline.html +3 -176
- package/doc/functions/hooks.useLanguage.html +3 -176
- package/doc/functions/hooks.useLocalizedStrings.html +3 -176
- package/doc/functions/hooks.useLogMessages.html +3 -176
- package/doc/functions/hooks.useMaxDataBytes.html +2 -175
- package/doc/functions/hooks.useMeasurementSetup.html +3 -176
- package/doc/functions/hooks.useMeasurementStatus.html +3 -176
- package/doc/functions/hooks.useMessageLogFileFormats.html +3 -175
- package/doc/functions/hooks.useNewMeasurementData.html +5 -178
- package/doc/functions/hooks.useNodeStatus.html +3 -176
- package/doc/functions/hooks.useNumericRadix.html +3 -176
- package/doc/functions/hooks.useOnlineStatus.html +3 -176
- package/doc/functions/hooks.useOverallStatusLevel.html +3 -176
- package/doc/functions/hooks.useProjectData.html +5 -178
- package/doc/functions/hooks.useRecentProjectFiles.html +2 -175
- package/doc/functions/hooks.useRunningPeriodicTransmissions.html +3 -176
- package/doc/functions/hooks.useSessionData.html +5 -178
- package/doc/functions/hooks.useSignalLogFileFormats.html +2 -0
- package/doc/functions/hooks.useUserSettings.html +3 -176
- package/doc/functions/hooks.useWorkspacePaneWithId.html +2 -175
- package/doc/functions/icons.AddIcon.html +4 -175
- package/doc/functions/icons.ArrowDownIcon.html +4 -175
- package/doc/functions/icons.ArrowLeftIcon.html +4 -175
- package/doc/functions/icons.ArrowRightIcon.html +4 -175
- package/doc/functions/icons.ArrowUpIcon.html +4 -175
- package/doc/functions/icons.BusIsOffIcon.html +4 -175
- package/doc/functions/icons.BusIsOnIcon.html +4 -175
- package/doc/functions/icons.CloseIcon.html +4 -175
- package/doc/functions/icons.ColumnSettingsIcon.html +4 -0
- package/doc/functions/icons.CopyIcon.html +4 -175
- package/doc/functions/icons.DarkModeIcon.html +4 -175
- package/doc/functions/icons.DeleteIcon.html +4 -175
- package/doc/functions/icons.DisableIcon.html +4 -175
- package/doc/functions/icons.EditIcon.html +4 -175
- package/doc/functions/icons.EnableIcon.html +4 -0
- package/doc/functions/icons.FilterIcon.html +4 -175
- package/doc/functions/icons.FixedPositionIcon.html +4 -175
- package/doc/functions/icons.LeaveFullScreenIcon.html +4 -175
- package/doc/functions/icons.LightModeIcon.html +4 -175
- package/doc/functions/icons.LineArrowDownIcon.html +4 -175
- package/doc/functions/icons.LineArrowUpIcon.html +4 -175
- package/doc/functions/icons.MaximizeWindowIcon.html +4 -175
- package/doc/functions/icons.MeasurementSetupIcon.html +4 -175
- package/doc/functions/icons.MoreHorizIcon.html +4 -175
- package/doc/functions/icons.MoreVertIcon.html +4 -175
- package/doc/functions/icons.NewIcon.html +4 -175
- package/doc/functions/icons.OpenExternallyIcon.html +4 -175
- package/doc/functions/icons.OpenIcon.html +4 -175
- package/doc/functions/icons.PauseIcon.html +4 -175
- package/doc/functions/icons.PlayIcon.html +4 -175
- package/doc/functions/icons.PlaySolidIcon.html +4 -175
- package/doc/functions/icons.SaveIcon.html +4 -175
- package/doc/functions/icons.SelectAllIcon.html +4 -175
- package/doc/functions/icons.ServiceIconActive.html +4 -175
- package/doc/functions/icons.ServiceIconInactive.html +4 -175
- package/doc/functions/icons.SettingsIcon.html +4 -175
- package/doc/functions/icons.StopIcon.html +4 -175
- package/doc/functions/icons.StopSolidIcon.html +4 -175
- package/doc/functions/icons.ToolsPanelHiddenIcon.html +4 -175
- package/doc/functions/icons.ToolsPanelVisibleIcon.html +4 -175
- package/doc/functions/icons.UnmaximizeWindowIcon.html +4 -175
- package/doc/functions/icons.WorkspacesIcon.html +4 -175
- package/doc/functions/ipc.addDataProcessor.html +3 -176
- package/doc/functions/ipc.addSource.html +3 -176
- package/doc/functions/ipc.addTarget.html +3 -176
- package/doc/functions/ipc.clearLinMessage.html +4 -0
- package/doc/functions/ipc.connectNodes.html +3 -176
- package/doc/functions/ipc.deleteDataProcessor.html +3 -176
- package/doc/functions/ipc.deleteSource.html +3 -176
- package/doc/functions/ipc.deleteTarget.html +3 -176
- package/doc/functions/ipc.disableNode.html +3 -176
- package/doc/functions/ipc.disconnectNodes.html +3 -176
- package/doc/functions/ipc.enableNode.html +3 -176
- package/doc/functions/ipc.getFrameDefinitions.html +3 -176
- package/doc/functions/ipc.getLogger.html +3 -176
- package/doc/functions/ipc.getMessageLogFileFormats.html +3 -176
- package/doc/functions/ipc.getSignalLogFileFormats.html +3 -0
- package/doc/functions/ipc.requestLinMessage.html +5 -0
- package/doc/functions/ipc.sendCanMessage.html +4 -177
- package/doc/functions/ipc.sendMessage.html +3 -176
- package/doc/functions/ipc.showMessageBox.html +3 -176
- package/doc/functions/ipc.showQuestionBox.html +3 -176
- package/doc/functions/ipc.startLogReplay.html +3 -176
- package/doc/functions/ipc.startMeasurement.html +2 -175
- package/doc/functions/ipc.startPeriodicTransmission.html +3 -176
- package/doc/functions/ipc.stopLogReplay.html +3 -176
- package/doc/functions/ipc.stopMeasurement.html +2 -175
- package/doc/functions/ipc.stopPeriodicTransmission.html +3 -176
- package/doc/functions/ipc.updateDataProcessor.html +3 -176
- package/doc/functions/ipc.updateLinMessage.html +4 -0
- package/doc/functions/ipc.updatePeriodicTransmission.html +4 -0
- package/doc/functions/ipc.updateSource.html +3 -176
- package/doc/functions/ipc.updateTarget.html +3 -176
- package/doc/functions/models.accessModeFromJSON.html +1 -174
- package/doc/functions/models.accessModeToJSON.html +1 -174
- package/doc/functions/models.appEventFromJSON.html +1 -174
- package/doc/functions/models.appEventToJSON.html +1 -174
- package/doc/functions/models.canChannelCapFromJSON.html +1 -174
- package/doc/functions/models.canChannelCapToJSON.html +1 -174
- package/doc/functions/models.canFrameFlagFromJSON.html +1 -174
- package/doc/functions/models.canFrameFlagToJSON.html +1 -174
- package/doc/functions/models.canMessageFilterTypeFromJSON.html +1 -0
- package/doc/functions/models.canMessageFilterTypeToJSON.html +1 -0
- package/doc/functions/models.canModeFromJSON.html +1 -174
- package/doc/functions/models.canModeToJSON.html +1 -174
- package/doc/functions/models.createElectronApiFake.html +3 -176
- package/doc/functions/models.decimalCharFromJSON.html +1 -174
- package/doc/functions/models.decimalCharToJSON.html +1 -174
- package/doc/functions/models.decimalToFixed.html +1 -174
- package/doc/functions/models.decimalToHex.html +1 -174
- package/doc/functions/models.deviceEventFromJSON.html +1 -174
- package/doc/functions/models.deviceEventToJSON.html +1 -174
- package/doc/functions/models.fileConflictActionFromJSON.html +1 -174
- package/doc/functions/models.fileConflictActionToJSON.html +1 -174
- package/doc/functions/models.fileTypeFromJSON.html +1 -0
- package/doc/functions/models.fileTypeToJSON.html +1 -0
- package/doc/functions/models.linFrameFlagFromJSON.html +1 -174
- package/doc/functions/models.linFrameFlagToJSON.html +1 -174
- package/doc/functions/models.logFileFormatFromJSON.html +1 -174
- package/doc/functions/models.logFileFormatToJSON.html +1 -174
- package/doc/functions/models.logLevelFromJSON.html +1 -174
- package/doc/functions/models.logLevelToJSON.html +1 -174
- package/doc/functions/models.logReplayStateFromJSON.html +1 -174
- package/doc/functions/models.logReplayStateToJSON.html +1 -174
- package/doc/functions/models.loggerStateFromJSON.html +1 -0
- package/doc/functions/models.loggerStateToJSON.html +1 -0
- package/doc/functions/models.longToNumber.html +1 -174
- package/doc/functions/models.measurementEventFromJSON.html +1 -174
- package/doc/functions/models.measurementEventToJSON.html +1 -174
- package/doc/functions/models.protocolsFromJSON.html +1 -174
- package/doc/functions/models.protocolsToJSON.html +1 -174
- package/doc/functions/models.separatorFromJSON.html +1 -174
- package/doc/functions/models.separatorToJSON.html +1 -174
- package/doc/functions/models.signalEncodingFromJSON.html +1 -174
- package/doc/functions/models.signalEncodingToJSON.html +1 -174
- package/doc/functions/models.signalTypeFromJSON.html +1 -174
- package/doc/functions/models.signalTypeToJSON.html +1 -174
- package/doc/functions/models.signalValueTriggerOperatorFromJSON.html +1 -174
- package/doc/functions/models.signalValueTriggerOperatorToJSON.html +1 -174
- package/doc/functions/models.statusLevelFromJSON.html +1 -174
- package/doc/functions/models.statusLevelToJSON.html +1 -174
- package/doc/functions/models.timeReferenceFromJSON.html +1 -174
- package/doc/functions/models.timeReferenceToJSON.html +1 -174
- package/doc/functions/models.triggerOperatorFromJSON.html +1 -174
- package/doc/functions/models.triggerOperatorToJSON.html +1 -174
- package/doc/hierarchy.html +1 -174
- package/doc/index.html +65 -237
- package/doc/interfaces/controls.ButtonGroupProps.html +6 -179
- package/doc/interfaces/controls.ButtonProps.html +10 -183
- package/doc/interfaces/controls.CanChannelSelectControlProps.html +14 -187
- package/doc/interfaces/controls.CanIdentifierControlProps.html +32 -189
- package/doc/interfaces/controls.CanIdentifierFrameControlProps.html +28 -187
- package/doc/interfaces/controls.CanIdentifierGeneratorControlProps.html +28 -201
- package/doc/interfaces/controls.CanIdentifierGeneratorSettingsControlProps.html +17 -190
- package/doc/interfaces/controls.CheckboxControlProps.html +7 -180
- package/doc/interfaces/controls.ColumnItem.html +3 -0
- package/doc/interfaces/controls.ColumnItemControlProps.html +3 -176
- package/doc/interfaces/controls.ContextMenuProps.html +6 -179
- package/doc/interfaces/controls.DropdownButtonChildrenProps.html +4 -177
- package/doc/interfaces/controls.DropdownButtonProps.html +11 -184
- package/doc/interfaces/controls.DropdownButtonTextItemsProps.html +9 -182
- package/doc/interfaces/controls.DropdownPanelProps.html +15 -188
- package/doc/interfaces/controls.FormControlRowProps.html +7 -180
- package/doc/interfaces/controls.ILocalizedStrings.html +3 -176
- package/doc/interfaces/controls.IMessageDatabase.html +4 -0
- package/doc/interfaces/controls.InlineEditorProps.html +9 -182
- package/doc/interfaces/controls.LabelProps.html +3 -176
- package/doc/interfaces/controls.LinChannelSelectControlProps.html +20 -0
- package/doc/interfaces/controls.LinIdentifierControlProps.html +35 -0
- package/doc/interfaces/controls.LinIdentifierFrameControlProps.html +33 -0
- package/doc/interfaces/controls.LinIdentifierGeneratorControlProps.html +37 -0
- package/doc/interfaces/controls.LinIdentifierGeneratorSettingsControlProps.html +25 -0
- package/doc/interfaces/controls.NumberRangeControlProps.html +41 -214
- package/doc/interfaces/controls.RadioControlProps.html +4 -177
- package/doc/interfaces/controls.RadioGroupControlProps.html +6 -179
- package/doc/interfaces/controls.SectionControlProps.html +8 -181
- package/doc/interfaces/controls.SelectControlProps.html +20 -193
- package/doc/interfaces/controls.SelectMessageDialogProps.html +8 -0
- package/doc/interfaces/controls.SelectSignalDialogProps.html +12 -0
- package/doc/interfaces/controls.TableColumn.html +10 -183
- package/doc/interfaces/controls.TableControlProps.html +24 -191
- package/doc/interfaces/controls.TextControlProps.html +24 -197
- package/doc/interfaces/controls.ToggleButtonGroupProps.html +9 -182
- package/doc/interfaces/controls.ToggleButtonProps.html +5 -178
- package/doc/interfaces/controls.ToolbarControlProps.html +9 -182
- package/doc/interfaces/controls.ValidateableTextControlProps.html +40 -213
- package/doc/interfaces/controls.toolbarItem.html +7 -180
- package/doc/interfaces/ipc.ILogger.html +3 -176
- package/doc/interfaces/models.AboutInformation.html +8 -181
- package/doc/interfaces/models.ActivateLicenseRequest.html +6 -179
- package/doc/interfaces/models.AddAllConnectedCanChannelsRequest.html +3 -176
- package/doc/interfaces/models.AddAllConnectedLinChannelsRequest.html +3 -176
- package/doc/interfaces/models.AddOrUpdateDataProcessorRequest.html +9 -182
- package/doc/interfaces/models.AddOrUpdateSourceRequest.html +5 -178
- package/doc/interfaces/models.AddOrUpdateTargetRequest.html +5 -178
- package/doc/interfaces/models.ApiPreferences.html +5 -178
- package/doc/interfaces/models.AppEventArgs.html +4 -177
- package/doc/interfaces/models.BaseNodeProperties.html +5 -178
- package/doc/interfaces/models.BusStatus.html +17 -190
- package/doc/interfaces/models.CanBusParamLimits.html +7 -180
- package/doc/interfaces/models.CanBusParams.html +3 -176
- package/doc/interfaces/models.CanBusSpeedInfo.html +12 -191
- package/doc/interfaces/models.CanChannelCapacity.html +7 -180
- package/doc/interfaces/models.CanChannelConfiguration.html +16 -185
- package/doc/interfaces/models.CanFDBusSpeedCombination.html +4 -177
- package/doc/interfaces/models.CanFDBusSpeedInfo.html +8 -189
- package/doc/interfaces/models.CanFrameFlags.html +3 -176
- package/doc/interfaces/models.CanMessageFilterSettings.html +5 -178
- package/doc/interfaces/models.Channel.html +5 -178
- package/doc/interfaces/models.ChannelSettings.html +20 -193
- package/doc/interfaces/models.ClearLinMessageRequest.html +6 -179
- package/doc/interfaces/models.ConnectNodesRequest.html +4 -177
- package/doc/interfaces/models.DataProcessingStatus.html +6 -179
- package/doc/interfaces/models.DataProcessorNodeProperties.html +8 -181
- package/doc/interfaces/models.DatabaseFiles.html +6 -0
- package/doc/interfaces/models.DatabasesSettings.html +3 -176
- package/doc/interfaces/models.Device.html +6 -179
- package/doc/interfaces/models.DeviceEventArgs.html +4 -177
- package/doc/interfaces/models.Devices.html +2 -175
- package/doc/interfaces/models.DisconnectNodesRequest.html +4 -177
- package/doc/interfaces/models.Empty.html +2 -175
- package/doc/interfaces/models.ErrorStatus.html +3 -176
- package/doc/interfaces/models.Frame.html +19 -192
- package/doc/interfaces/models.FrameDefinition.html +10 -181
- package/doc/interfaces/models.FrameDefinitions.html +2 -175
- package/doc/interfaces/models.FramePropertyValue.html +4 -177
- package/doc/interfaces/models.FrameReceivedTrigger.html +6 -179
- package/doc/interfaces/models.Frame_PropertiesEntry.html +2 -175
- package/doc/interfaces/models.Frames.html +2 -175
- package/doc/interfaces/models.GetCanChannelBusSpeedsRequest.html +6 -176
- package/doc/interfaces/models.GetCanChannelBusSpeedsResponse.html +6 -179
- package/doc/interfaces/models.GetCanFdBusSpeedsRequest.html +5 -178
- package/doc/interfaces/models.GetCanFdBusSpeedsResponse.html +4 -177
- package/doc/interfaces/models.GetChannelsFromLogFileRequest.html +4 -177
- package/doc/interfaces/models.GetChannelsFromLogFileResponse.html +3 -176
- package/doc/interfaces/models.GetClassicCanBusSpeedsRequest.html +4 -177
- package/doc/interfaces/models.GetClassicCanBusSpeedsResponse.html +4 -177
- package/doc/interfaces/models.GetDataProcessorResponse.html +3 -176
- package/doc/interfaces/models.GetDevicesRequest.html +3 -176
- package/doc/interfaces/models.GetDevicesResponse.html +3 -176
- package/doc/interfaces/models.GetFrameDefinitionsFromDatabaseFilesRequest.html +3 -176
- package/doc/interfaces/models.GetLicensesResponse.html +3 -176
- package/doc/interfaces/models.GetLogFileFormatsRequest.html +8 -179
- package/doc/interfaces/models.GetLogFileFormatsResponse.html +3 -176
- package/doc/interfaces/models.GetLogLevelResponse.html +4 -177
- package/doc/interfaces/models.GetScheduleTablesFromDatabaseFilesRequest.html +3 -176
- package/doc/interfaces/models.GetScheduleTablesFromDatabaseFilesResponse.html +3 -176
- package/doc/interfaces/models.GetServiceExtensionInfoRequest.html +4 -177
- package/doc/interfaces/models.GetServiceExtensionInfoResponse.html +7 -180
- package/doc/interfaces/models.GetSignalDataFromMessageDataRequest.html +5 -178
- package/doc/interfaces/models.GetSignalDataFromMessageDataResponse.html +4 -177
- package/doc/interfaces/models.GetSourceResponse.html +3 -176
- package/doc/interfaces/models.GetTargetResponse.html +3 -176
- package/doc/interfaces/models.ILogFileFormat.html +3 -176
- package/doc/interfaces/models.IProject.html +4 -177
- package/doc/interfaces/models.IUserSettings.html +13 -183
- package/doc/interfaces/models.IWorkspaceComponentPaneData.html +4 -177
- package/doc/interfaces/models.IWorkspaceContainerPaneData.html +4 -177
- package/doc/interfaces/models.IWorkspaceData.html +4 -177
- package/doc/interfaces/models.IWorkspacePaneData.html +4 -177
- package/doc/interfaces/models.IdentifierRequest.html +3 -176
- package/doc/interfaces/models.IdentifiersRequest.html +3 -176
- package/doc/interfaces/models.InstallServiceExtensionRequest.html +6 -179
- package/doc/interfaces/models.InterpreterSettings.html +4 -177
- package/doc/interfaces/models.J1939InterpreterSettings.html +2 -175
- package/doc/interfaces/models.LicenseInformation.html +18 -191
- package/doc/interfaces/models.Licenses.html +3 -176
- package/doc/interfaces/models.LinChannelConfiguration.html +14 -185
- package/doc/interfaces/models.LinFrameFlags.html +3 -176
- package/doc/interfaces/models.LogMessage.html +8 -181
- package/doc/interfaces/models.LogMessages.html +3 -176
- package/doc/interfaces/models.LogReplaySettings.html +24 -197
- package/doc/interfaces/models.LogReplaySettings_ChannelIdentifiersEntry.html +2 -175
- package/doc/interfaces/models.LogReplayStatus.html +3 -176
- package/doc/interfaces/models.LoggerStatus.html +3 -0
- package/doc/interfaces/models.MeasurementEventArgs.html +5 -178
- package/doc/interfaces/models.MeasurementSetup.html +3 -176
- package/doc/interfaces/models.MessageLoggerSettings.html +44 -213
- package/doc/interfaces/models.NodeStatus.html +18 -191
- package/doc/interfaces/models.NodeStatuses.html +3 -176
- package/doc/interfaces/models.OnlineStatus.html +3 -176
- package/doc/interfaces/models.PeriodicTransmissionSettings.html +34 -207
- package/doc/interfaces/models.RequestLinMessageRequest.html +6 -179
- package/doc/interfaces/models.ScheduleTable.html +5 -178
- package/doc/interfaces/models.ScheduleTableEntry.html +5 -178
- package/doc/interfaces/models.SendLinWakeupFrameRequest.html +4 -177
- package/doc/interfaces/models.SendMessageRequest.html +3 -176
- package/doc/interfaces/models.ServiceExtensionSettings.html +4 -177
- package/doc/interfaces/models.SetLogLevelRequest.html +4 -177
- package/doc/interfaces/models.SetMeasurementSetupRequest.html +3 -176
- package/doc/interfaces/models.SetSignalDataToMessageDataRequest.html +7 -180
- package/doc/interfaces/models.SetSignalDataToMessageDataResponse.html +5 -178
- package/doc/interfaces/models.SignalDefinition.html +11 -181
- package/doc/interfaces/models.SignalDefinition_EnumValuesEntry.html +2 -175
- package/doc/interfaces/models.SignalDefinitions.html +2 -175
- package/doc/interfaces/models.SignalFilterSettings.html +4 -0
- package/doc/interfaces/models.SignalLoggerSettings.html +56 -0
- package/doc/interfaces/models.SignalValue.html +5 -180
- package/doc/interfaces/models.SignalValueTrigger.html +14 -187
- package/doc/interfaces/models.SourceNodeProperties.html +7 -180
- package/doc/interfaces/models.StartPeriodicTransmissionRequest.html +3 -176
- package/doc/interfaces/models.StartPeriodicTransmissionResponse.html +3 -176
- package/doc/interfaces/models.TargetNodeProperties.html +6 -178
- package/doc/interfaces/models.TriggerSettings.html +8 -181
- package/doc/interfaces/models.UninstallServiceExtensionRequest.html +3 -176
- package/doc/interfaces/models.UpdateLinMessageRequest.html +4 -177
- package/doc/interfaces/models.UpdatePeriodicTransmissionRequest.html +7 -0
- package/doc/interfaces/models.WriteFrame.html +6 -183
- package/doc/modules/controls.html +3 -241
- package/doc/modules/hooks.html +3 -196
- package/doc/modules/icons.html +2 -216
- package/doc/modules/ipc.html +2 -202
- package/doc/modules/models.html +2 -478
- package/doc/modules.html +1 -179
- package/doc/types/controls.ContextMenuOption.html +6 -179
- package/doc/types/controls.SelectOption.html +4 -177
- package/doc/types/controls.StringsMap.html +2 -175
- package/doc/types/controls.canIdentifierGeneratorType.html +2 -0
- package/doc/types/controls.canIdentifierType.html +2 -175
- package/doc/types/controls.linIdentifierGeneratorType.html +2 -0
- package/doc/types/models.IReadOnlyDataBuffer.html +1 -174
- package/doc/types/models.themes.html +1 -174
- package/doc/variables/models.AboutInformation-1.html +1 -174
- package/doc/variables/models.ActivateLicenseRequest-1.html +1 -174
- package/doc/variables/models.AddAllConnectedCanChannelsRequest-1.html +1 -174
- package/doc/variables/models.AddAllConnectedLinChannelsRequest-1.html +1 -174
- package/doc/variables/models.AddOrUpdateDataProcessorRequest-1.html +1 -174
- package/doc/variables/models.AddOrUpdateSourceRequest-1.html +1 -174
- package/doc/variables/models.AddOrUpdateTargetRequest-1.html +1 -174
- package/doc/variables/models.ApiPreferences-1.html +1 -174
- package/doc/variables/models.AppEventArgs-1.html +1 -174
- package/doc/variables/models.BaseNodeProperties-1.html +1 -174
- package/doc/variables/models.BusStatus-1.html +1 -174
- package/doc/variables/models.CanBusParamLimits-1.html +1 -174
- package/doc/variables/models.CanBusParams-1.html +1 -174
- package/doc/variables/models.CanBusSpeedInfo-1.html +1 -174
- package/doc/variables/models.CanChannelCapacity-1.html +1 -174
- package/doc/variables/models.CanChannelConfiguration-1.html +1 -174
- package/doc/variables/models.CanFDBusSpeedCombination-1.html +1 -174
- package/doc/variables/models.CanFDBusSpeedInfo-1.html +1 -174
- package/doc/variables/models.CanFrameFlags-1.html +1 -174
- package/doc/variables/models.CanMessageFilterSettings-1.html +1 -174
- package/doc/variables/models.Channel-1.html +1 -174
- package/doc/variables/models.ChannelSettings-1.html +1 -174
- package/doc/variables/models.ClearLinMessageRequest-1.html +1 -174
- package/doc/variables/models.ConnectNodesRequest-1.html +1 -174
- package/doc/variables/models.DataProcessingStatus-1.html +1 -174
- package/doc/variables/models.DataProcessorNodeProperties-1.html +1 -174
- package/doc/variables/models.DatabaseFiles-1.html +1 -0
- package/doc/variables/models.DatabasesSettings-1.html +1 -174
- package/doc/variables/models.Device-1.html +1 -174
- package/doc/variables/models.DeviceEventArgs-1.html +1 -174
- package/doc/variables/models.Devices-1.html +1 -174
- package/doc/variables/models.DisconnectNodesRequest-1.html +1 -174
- package/doc/variables/models.Empty-1.html +1 -174
- package/doc/variables/models.ErrorStatus-1.html +1 -174
- package/doc/variables/models.Frame-1.html +1 -174
- package/doc/variables/models.FrameDefinition-1.html +1 -174
- package/doc/variables/models.FrameDefinitions-1.html +1 -174
- package/doc/variables/models.FramePropertyValue-1.html +1 -174
- package/doc/variables/models.FrameReceivedTrigger-1.html +1 -174
- package/doc/variables/models.Frame_PropertiesEntry-1.html +1 -174
- package/doc/variables/models.Frames-1.html +1 -174
- package/doc/variables/models.GetCanChannelBusSpeedsRequest-1.html +1 -174
- package/doc/variables/models.GetCanChannelBusSpeedsResponse-1.html +1 -174
- package/doc/variables/models.GetCanFdBusSpeedsRequest-1.html +1 -174
- package/doc/variables/models.GetCanFdBusSpeedsResponse-1.html +1 -174
- package/doc/variables/models.GetChannelsFromLogFileRequest-1.html +1 -174
- package/doc/variables/models.GetChannelsFromLogFileResponse-1.html +1 -174
- package/doc/variables/models.GetClassicCanBusSpeedsRequest-1.html +1 -174
- package/doc/variables/models.GetClassicCanBusSpeedsResponse-1.html +1 -174
- package/doc/variables/models.GetDataProcessorResponse-1.html +1 -174
- package/doc/variables/models.GetDevicesRequest-1.html +1 -174
- package/doc/variables/models.GetDevicesResponse-1.html +1 -174
- package/doc/variables/models.GetFrameDefinitionsFromDatabaseFilesRequest-1.html +1 -174
- package/doc/variables/models.GetLicensesResponse-1.html +1 -174
- package/doc/variables/models.GetLogFileFormatsRequest-1.html +1 -174
- package/doc/variables/models.GetLogFileFormatsResponse-1.html +1 -174
- package/doc/variables/models.GetLogLevelResponse-1.html +1 -174
- package/doc/variables/models.GetScheduleTablesFromDatabaseFilesRequest-1.html +1 -174
- package/doc/variables/models.GetScheduleTablesFromDatabaseFilesResponse-1.html +1 -174
- package/doc/variables/models.GetServiceExtensionInfoRequest-1.html +1 -174
- package/doc/variables/models.GetServiceExtensionInfoResponse-1.html +1 -174
- package/doc/variables/models.GetSignalDataFromMessageDataRequest-1.html +1 -174
- package/doc/variables/models.GetSignalDataFromMessageDataResponse-1.html +1 -174
- package/doc/variables/models.GetSourceResponse-1.html +1 -174
- package/doc/variables/models.GetTargetResponse-1.html +1 -174
- package/doc/variables/models.IdentifierRequest-1.html +1 -174
- package/doc/variables/models.IdentifiersRequest-1.html +1 -174
- package/doc/variables/models.InstallServiceExtensionRequest-1.html +1 -174
- package/doc/variables/models.InterpreterSettings-1.html +1 -174
- package/doc/variables/models.J1939InterpreterSettings-1.html +1 -174
- package/doc/variables/models.LicenseInformation-1.html +1 -174
- package/doc/variables/models.Licenses-1.html +1 -174
- package/doc/variables/models.LinChannelConfiguration-1.html +1 -174
- package/doc/variables/models.LinFrameFlags-1.html +1 -174
- package/doc/variables/models.LogMessage-1.html +1 -174
- package/doc/variables/models.LogMessages-1.html +1 -174
- package/doc/variables/models.LogReplaySettings-1.html +1 -174
- package/doc/variables/models.LogReplaySettings_ChannelIdentifiersEntry-1.html +1 -174
- package/doc/variables/models.LogReplayStatus-1.html +1 -174
- package/doc/variables/models.LoggerStatus-1.html +1 -0
- package/doc/variables/models.MeasurementEventArgs-1.html +1 -174
- package/doc/variables/models.MeasurementSetup-1.html +1 -174
- package/doc/variables/models.MessageLoggerSettings-1.html +1 -174
- package/doc/variables/models.NodeStatus-1.html +1 -174
- package/doc/variables/models.NodeStatuses-1.html +1 -174
- package/doc/variables/models.OnlineStatus-1.html +1 -174
- package/doc/variables/models.PeriodicTransmissionSettings-1.html +1 -174
- package/doc/variables/models.RequestLinMessageRequest-1.html +1 -174
- package/doc/variables/models.ScheduleTable-1.html +1 -174
- package/doc/variables/models.ScheduleTableEntry-1.html +1 -174
- package/doc/variables/models.SendLinWakeupFrameRequest-1.html +1 -174
- package/doc/variables/models.SendMessageRequest-1.html +1 -174
- package/doc/variables/models.ServiceExtensionSettings-1.html +1 -174
- package/doc/variables/models.SetLogLevelRequest-1.html +1 -174
- package/doc/variables/models.SetMeasurementSetupRequest-1.html +1 -174
- package/doc/variables/models.SetSignalDataToMessageDataRequest-1.html +1 -174
- package/doc/variables/models.SetSignalDataToMessageDataResponse-1.html +1 -174
- package/doc/variables/models.SignalDefinition-1.html +1 -174
- package/doc/variables/models.SignalDefinition_EnumValuesEntry-1.html +1 -174
- package/doc/variables/models.SignalDefinitions-1.html +1 -174
- package/doc/variables/models.SignalFilterSettings-1.html +1 -0
- package/doc/variables/models.SignalLoggerSettings-1.html +1 -0
- package/doc/variables/models.SignalValue-1.html +1 -174
- package/doc/variables/models.SignalValueTrigger-1.html +1 -174
- package/doc/variables/models.SourceNodeProperties-1.html +1 -174
- package/doc/variables/models.StartPeriodicTransmissionRequest-1.html +1 -174
- package/doc/variables/models.StartPeriodicTransmissionResponse-1.html +1 -174
- package/doc/variables/models.TargetNodeProperties-1.html +1 -174
- package/doc/variables/models.TriggerSettings-1.html +1 -174
- package/doc/variables/models.UninstallServiceExtensionRequest-1.html +1 -174
- package/doc/variables/models.UpdateLinMessageRequest-1.html +1 -174
- package/doc/variables/models.UpdatePeriodicTransmissionRequest-1.html +1 -0
- package/doc/variables/models.WriteFrame-1.html +1 -174
- package/doc/variables/models.defaultUserSettings.html +2 -175
- package/package.json +15 -3
- package/doc/assets/material-style.css +0 -338
- package/doc/enums/models.MessageLoggerState.html +0 -180
- package/doc/functions/models.messageLoggerStateFromJSON.html +0 -174
- package/doc/functions/models.messageLoggerStateToJSON.html +0 -174
- package/doc/interfaces/models.CanBusSpeed.html +0 -187
- package/doc/interfaces/models.MessageLoggerStatus.html +0 -176
- package/doc/variables/models.CanBusSpeed-1.html +0 -174
- package/doc/variables/models.MessageLoggerStatus-1.html +0 -174
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This module includes UI controls for editing LIN identifiers.
|
|
3
|
+
*
|
|
4
|
+
* To be able to use these controls the CanKingDataProvider component must be present in the
|
|
5
|
+
* component tree above your component. Normally the CanKingDataProvider is added
|
|
6
|
+
* at the root of the component tree.
|
|
7
|
+
*
|
|
8
|
+
* @packageDocumentation
|
|
9
|
+
*/
|
|
10
|
+
import React from 'react';
|
|
11
|
+
import { PeriodicTransmissionSettings, WriteFrame } from '../models';
|
|
12
|
+
/** Possible LIN identifier generator types. */
|
|
13
|
+
export type linIdentifierGeneratorType = 'constant' | 'random' | 'scan';
|
|
14
|
+
/**
|
|
15
|
+
* Properties of the LinIdentifierControl React component.
|
|
16
|
+
*/
|
|
17
|
+
interface LinIdentifierControlProps {
|
|
18
|
+
/** The current LIN identifier. */
|
|
19
|
+
linIdentifier: string;
|
|
20
|
+
/**
|
|
21
|
+
* Callback that will be called when the LIN identifier has changed.
|
|
22
|
+
* @param identifier The new LIN identifier.
|
|
23
|
+
*/
|
|
24
|
+
onLinIdentifierChange: (identifier: string) => void;
|
|
25
|
+
/**
|
|
26
|
+
* Callback that will be called when the errors state has changed.
|
|
27
|
+
* @param errors The new errors state.
|
|
28
|
+
*/
|
|
29
|
+
onErrorsChange?: (errors: boolean) => void;
|
|
30
|
+
/**
|
|
31
|
+
* Callback that will be called when the select message dialog has been opened or closed.
|
|
32
|
+
* @param value The new show select message dialog state.
|
|
33
|
+
*/
|
|
34
|
+
showSelectMessageDialogChange?: (value: boolean) => void;
|
|
35
|
+
/**
|
|
36
|
+
* Callback that will be called when the select signal dialog has been opened or closed.
|
|
37
|
+
* @param value The new show select signal dialog state.
|
|
38
|
+
*/
|
|
39
|
+
showSelectSignalDialogChange?: (value: boolean) => void;
|
|
40
|
+
/** Set to true to disable this control. */
|
|
41
|
+
disabled?: boolean;
|
|
42
|
+
/** Set to true if the select message button should be disabled. */
|
|
43
|
+
disableSelectMessageButton?: boolean;
|
|
44
|
+
/** Set to true if the select signal button should be disabled. */
|
|
45
|
+
disableSelectSignalButton?: boolean;
|
|
46
|
+
/** Set to true if this control shouldn't be encapsulated inside a SectionControl. */
|
|
47
|
+
hideSection?: boolean;
|
|
48
|
+
/** Set to true if the select message button shouldn't be visible. */
|
|
49
|
+
hideSelectMessageButton?: boolean;
|
|
50
|
+
/** Set to true if the select signal button should be visible. */
|
|
51
|
+
showSelectSignalButton?: boolean;
|
|
52
|
+
/** Set to true if the SectionControl should be collapsible, ignored if hideSectionControl is true. */
|
|
53
|
+
collapsible?: boolean;
|
|
54
|
+
/** Current collapse state of the SectionControl. */
|
|
55
|
+
collapsed?: boolean;
|
|
56
|
+
/**
|
|
57
|
+
* Callback that will be called when collapse state has changed.
|
|
58
|
+
* @param value The new collapse state.
|
|
59
|
+
*/
|
|
60
|
+
collapsedChange?: (value: boolean) => void;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Creates an UI control for editing a LIN identifier.
|
|
64
|
+
* @param props Component properties.
|
|
65
|
+
* @returns The LinIdentifierControl React component.
|
|
66
|
+
*/
|
|
67
|
+
declare function LinIdentifierControl({ linIdentifier, onLinIdentifierChange, onErrorsChange, showSelectMessageDialogChange, showSelectSignalDialogChange, disabled, disableSelectMessageButton, disableSelectSignalButton, hideSection, hideSelectMessageButton, showSelectSignalButton, collapsible, collapsed, collapsedChange, }: LinIdentifierControlProps): import("react/jsx-runtime").JSX.Element;
|
|
68
|
+
/**
|
|
69
|
+
* Properties of the LinIdentifierFrameControl React component.
|
|
70
|
+
*/
|
|
71
|
+
interface LinIdentifierFrameControlProps {
|
|
72
|
+
/** The frame object that holds the LIN identifier. */
|
|
73
|
+
frame: WriteFrame;
|
|
74
|
+
/**
|
|
75
|
+
* Callback that will be called when the frame is updated after the LIN identifier has changed.
|
|
76
|
+
* @param value The new frame object.
|
|
77
|
+
*/
|
|
78
|
+
onFrameChange: (value: WriteFrame) => void;
|
|
79
|
+
/**
|
|
80
|
+
* Callback that will be called when the errors state has changed.
|
|
81
|
+
* @param errors The new errors state.
|
|
82
|
+
*/
|
|
83
|
+
onErrorsChange?: (errors: boolean) => void;
|
|
84
|
+
/**
|
|
85
|
+
* Callback that will be called when the select message dialog has been opened or closed.
|
|
86
|
+
* @param value The new show select message dialog state.
|
|
87
|
+
*/
|
|
88
|
+
showSelectMessageDialogChange?: (value: boolean) => void;
|
|
89
|
+
/**
|
|
90
|
+
* Callback that will be called when the select signal dialog has been opened or closed.
|
|
91
|
+
* @param value The new show select signal dialog state.
|
|
92
|
+
*/
|
|
93
|
+
showSelectSignalDialogChange?: (value: boolean) => void;
|
|
94
|
+
/** Set to true if the select message button should be disabled. */
|
|
95
|
+
disableSelectMessageButton?: boolean;
|
|
96
|
+
/** Set to true if the select signal button should be disabled. */
|
|
97
|
+
disableSelectSignalButton?: boolean;
|
|
98
|
+
/** Set to true if this control shouldn't be encapsulated inside a SectionControl. */
|
|
99
|
+
hideSection?: boolean;
|
|
100
|
+
/** Set to true if the select message button shouldn't be visible. */
|
|
101
|
+
hideSelectMessageButton?: boolean;
|
|
102
|
+
/** Set to true if the select signal button shouldn't be visible. */
|
|
103
|
+
showSelectSignalButton?: boolean;
|
|
104
|
+
/** Set to true if the SectionControl should be collapsible. */
|
|
105
|
+
collapsible?: boolean;
|
|
106
|
+
/** Current collapse state of the SectionControl. */
|
|
107
|
+
collapsed?: boolean;
|
|
108
|
+
/**
|
|
109
|
+
* Callback that will be called when collapse state has changed.
|
|
110
|
+
* @param value The new collapse state.
|
|
111
|
+
*/
|
|
112
|
+
collapsedChange?: (value: boolean) => void;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Creates an UI control for editing a LIN identifier using a Frame as source.
|
|
116
|
+
* @param props Component properties.
|
|
117
|
+
* @returns The LinIdentifierFrameControl React component.
|
|
118
|
+
*/
|
|
119
|
+
declare function LinIdentifierFrameControl({ frame, onFrameChange, onErrorsChange, showSelectMessageDialogChange, showSelectSignalDialogChange, disableSelectMessageButton, disableSelectSignalButton, hideSection, hideSelectMessageButton, showSelectSignalButton, collapsible, collapsed, collapsedChange, }: LinIdentifierFrameControlProps): import("react/jsx-runtime").JSX.Element;
|
|
120
|
+
/**
|
|
121
|
+
* Properties of the LinIdentifierGeneratorControl React component.
|
|
122
|
+
*/
|
|
123
|
+
interface LinIdentifierGeneratorControlProps {
|
|
124
|
+
/** The LIN identifier. */
|
|
125
|
+
linIdentifier: string;
|
|
126
|
+
/**
|
|
127
|
+
* The generator type: 'constant' | 'random' | 'scan'
|
|
128
|
+
* 'constant': The LIN identifier set to linIdentifier will be used for all generated messages.
|
|
129
|
+
* 'random': A random LIN identifier between minLinIdentifier and maxLinIdentifier will be used.
|
|
130
|
+
* 'scan': A LIN identifier will be picked from minLinIdentifier to maxLinIdentifier.
|
|
131
|
+
*/
|
|
132
|
+
identifierGeneratorType: linIdentifierGeneratorType;
|
|
133
|
+
/** The min LIN identifier that will be used if identifierGeneratorType is 'random' or 'scan'. */
|
|
134
|
+
minLinIdentifier: string;
|
|
135
|
+
/** The max LIN identifier that will be used if identifierGeneratorType is 'random' or 'scan'. */
|
|
136
|
+
maxLinIdentifier: string;
|
|
137
|
+
/**
|
|
138
|
+
* Callback that will be called when the LIN identifier(s) has changed.
|
|
139
|
+
* @param newLinIdentifier The new constant LIN identifier.
|
|
140
|
+
* @param newIdentifierGeneratorType The new generator type.
|
|
141
|
+
* @param newMinLinIdentifier The new min LIN identifier.
|
|
142
|
+
* @param newMaxLinIdentifier The new max LIN identifier.
|
|
143
|
+
*/
|
|
144
|
+
onChange: (newLinIdentifier: string, newIdentifierGeneratorType: linIdentifierGeneratorType, newMinLinIdentifier: string, newMaxLinIdentifier: string) => void;
|
|
145
|
+
/**
|
|
146
|
+
* Callback that will be called when the errors state has changed.
|
|
147
|
+
* @param errors The new errors state.
|
|
148
|
+
*/
|
|
149
|
+
onErrorsChange?: (errors: boolean) => void;
|
|
150
|
+
/** The current error state. */
|
|
151
|
+
linIdentifierGeneratorSettingsError?: React.MutableRefObject<boolean>;
|
|
152
|
+
/** Set to true to disable this control. */
|
|
153
|
+
disabled?: boolean;
|
|
154
|
+
/** Set to true if the SectionControl should be collapsible. */
|
|
155
|
+
collapsible?: boolean;
|
|
156
|
+
/** Current collapse state of the SectionControl. */
|
|
157
|
+
collapsed?: boolean;
|
|
158
|
+
/**
|
|
159
|
+
* Callback that will be called when collapse state has changed.
|
|
160
|
+
* @param value The new collapse state.
|
|
161
|
+
*/
|
|
162
|
+
collapsedChange?: (value: boolean) => void;
|
|
163
|
+
/**
|
|
164
|
+
* Callback for specifying if the select message dialog should be visible.
|
|
165
|
+
*/
|
|
166
|
+
showSelectMessageDialogChange: (value: boolean) => void;
|
|
167
|
+
/**
|
|
168
|
+
* Callback for specifying if the signal values table should be visible.
|
|
169
|
+
*/
|
|
170
|
+
showSignalValuesTable: (value: boolean) => void;
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Creates an UI control for editing LIN identifier(s) used by a message generator.
|
|
174
|
+
* @param props Component properties.
|
|
175
|
+
* @returns The LinIdentifierGeneratorControl React component.
|
|
176
|
+
*/
|
|
177
|
+
declare function LinIdentifierGeneratorControl({ linIdentifier, identifierGeneratorType, minLinIdentifier, maxLinIdentifier, onChange, onErrorsChange, linIdentifierGeneratorSettingsError, disabled, collapsible, collapsed, collapsedChange, showSelectMessageDialogChange, showSignalValuesTable, }: LinIdentifierGeneratorControlProps): import("react/jsx-runtime").JSX.Element;
|
|
178
|
+
/**
|
|
179
|
+
* Properties of the LinIdentifierGeneratorSettingsControl React component.
|
|
180
|
+
*/
|
|
181
|
+
interface LinIdentifierGeneratorSettingsControlProps {
|
|
182
|
+
/** The settings object that holds the LIN identifier(s) generator settings. */
|
|
183
|
+
settings: PeriodicTransmissionSettings;
|
|
184
|
+
/**
|
|
185
|
+
* Callback that will be called when the settings are updated after the LIN identifiers have changed.
|
|
186
|
+
* @param value The new settings object.
|
|
187
|
+
*/
|
|
188
|
+
onSettingsChange: (value: PeriodicTransmissionSettings) => void;
|
|
189
|
+
/**
|
|
190
|
+
* Callback that will be called when the errors state has changed.
|
|
191
|
+
* @param errors The new errors state.
|
|
192
|
+
*/
|
|
193
|
+
onErrorsChange?: (errors: boolean) => void;
|
|
194
|
+
/** The current error state. */
|
|
195
|
+
linIdentifierGeneratorSettingsError?: React.MutableRefObject<boolean>;
|
|
196
|
+
/** Set to true to disable this control. */
|
|
197
|
+
disabled?: boolean;
|
|
198
|
+
/** Set to true if the SectionControl should be collapsible. */
|
|
199
|
+
collapsible?: boolean;
|
|
200
|
+
/** Current collapse state of the SectionControl. */
|
|
201
|
+
collapsed?: boolean;
|
|
202
|
+
/**
|
|
203
|
+
* Callback that will be called when collapse state has changed.
|
|
204
|
+
* @param value The new collapse state.
|
|
205
|
+
*/
|
|
206
|
+
collapsedChange?: (value: boolean) => void;
|
|
207
|
+
/**
|
|
208
|
+
* Callback for specifying if the select message dialog should be visible.
|
|
209
|
+
*/
|
|
210
|
+
showSelectMessageDialogChange: (value: boolean) => void;
|
|
211
|
+
/**
|
|
212
|
+
* Callback for specifying if the signal values table should be visible.
|
|
213
|
+
*/
|
|
214
|
+
showSignalValuesTable: (value: boolean) => void;
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* Creates an UI control for editing LIN identifier(s) used by a message generator
|
|
218
|
+
* using a PeriodicTransmissionSettings as source.
|
|
219
|
+
* @param props Component properties.
|
|
220
|
+
* @returns The LinIdentifierGeneratorSettingsControl React component.
|
|
221
|
+
*/
|
|
222
|
+
declare function LinIdentifierGeneratorSettingsControl({ settings, onSettingsChange, onErrorsChange, linIdentifierGeneratorSettingsError, disabled, collapsible, collapsed, collapsedChange, showSelectMessageDialogChange, showSignalValuesTable, }: LinIdentifierGeneratorSettingsControlProps): import("react/jsx-runtime").JSX.Element;
|
|
223
|
+
export default LinIdentifierControl;
|
|
224
|
+
export { type LinIdentifierControlProps, LinIdentifierControl, type LinIdentifierFrameControlProps, LinIdentifierFrameControl, type LinIdentifierGeneratorControlProps, LinIdentifierGeneratorControl, type LinIdentifierGeneratorSettingsControlProps, LinIdentifierGeneratorSettingsControl, };
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { FrameDefinition } from '../models';
|
|
2
|
+
/**
|
|
3
|
+
* Properties of the MessageDatabase React component which can be retrieved using the useMessageDatabases hook.
|
|
4
|
+
*/
|
|
5
|
+
export interface IMessageDatabase {
|
|
6
|
+
name: string;
|
|
7
|
+
messages: FrameDefinition[];
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Gets a MessageDatabase object that can be used for retrieving CAN and LIN databases.
|
|
11
|
+
*/
|
|
12
|
+
export declare const useMessageDatabases: (nodeIdentifier?: string) => IMessageDatabase[];
|
|
13
|
+
/**
|
|
14
|
+
* Properties of the SelectMessageDialog React component.
|
|
15
|
+
*/
|
|
16
|
+
export interface SelectMessageDialogProps {
|
|
17
|
+
parentDialogTitle?: string;
|
|
18
|
+
open: boolean;
|
|
19
|
+
onSelect: (message: FrameDefinition) => void;
|
|
20
|
+
nodeIdentifier?: string;
|
|
21
|
+
onClose: () => void;
|
|
22
|
+
modal?: boolean;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* A react component to be used for opening a select database message dialog.
|
|
26
|
+
*/
|
|
27
|
+
declare function SelectMessageDialog({ parentDialogTitle, open, onSelect, nodeIdentifier, onClose, modal, }: SelectMessageDialogProps): import("react/jsx-runtime").JSX.Element;
|
|
28
|
+
export default SelectMessageDialog;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
interface SelectSignalControlProps {
|
|
2
|
+
selectedSignals: string[];
|
|
3
|
+
onSelectedSignalseChange: (selectedSignalse: string[]) => void;
|
|
4
|
+
onErrorsChange?: (errors: boolean) => void;
|
|
5
|
+
signalFilterError?: React.MutableRefObject<boolean>;
|
|
6
|
+
parentDialogTitle?: string;
|
|
7
|
+
nodeIdentifier?: string;
|
|
8
|
+
disabled?: boolean;
|
|
9
|
+
}
|
|
10
|
+
declare function SelectSignalControl({ selectedSignals, onSelectedSignalseChange, onErrorsChange, signalFilterError, parentDialogTitle, nodeIdentifier, disabled, }: SelectSignalControlProps): import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
export default SelectSignalControl;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { FrameDefinition, SignalDefinition } from '../models';
|
|
2
|
+
/**
|
|
3
|
+
* Properties of the SelectSignalDialog React component.
|
|
4
|
+
*/
|
|
5
|
+
export interface SelectSignalDialogProps {
|
|
6
|
+
parentDialogTitle?: string;
|
|
7
|
+
nodeIdentifier?: string;
|
|
8
|
+
open: boolean;
|
|
9
|
+
selectedMessages?: string[];
|
|
10
|
+
selectedSignals?: string[];
|
|
11
|
+
multiSelect?: boolean;
|
|
12
|
+
checkboxSelection?: boolean;
|
|
13
|
+
onSelect?: (message: FrameDefinition, signal: SignalDefinition) => void;
|
|
14
|
+
onMultiSelect?: (messages: FrameDefinition[], signals: SignalDefinition[]) => void;
|
|
15
|
+
onClose: () => void;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* A react component to be used for opening a select database message signal(s) dialog.
|
|
19
|
+
*/
|
|
20
|
+
declare function SelectSignalDialog({ parentDialogTitle, nodeIdentifier, open, multiSelect, checkboxSelection, onSelect, onMultiSelect, onClose, selectedMessages, selectedSignals, }: SelectSignalDialogProps): import("react/jsx-runtime").JSX.Element;
|
|
21
|
+
export default SelectSignalDialog;
|
|
@@ -33,6 +33,12 @@ export interface TableControlProps<T> {
|
|
|
33
33
|
data: T[];
|
|
34
34
|
/** Callback to get a unique data key for the specified row. */
|
|
35
35
|
dataKey: (row: T) => React.Key;
|
|
36
|
+
/** If each row should have a remove button */
|
|
37
|
+
hasRemoveButton?: boolean;
|
|
38
|
+
/** A title for the remove button */
|
|
39
|
+
removeButtonTitle?: string;
|
|
40
|
+
/** Callback to be run when clicking on the remove button */
|
|
41
|
+
onRemoveRow?: (row: T) => void;
|
|
36
42
|
/** The key of the currently selected data row. */
|
|
37
43
|
selectedKey?: React.Key;
|
|
38
44
|
/** Callback to inform that a data row has been clicked. */
|
|
@@ -57,5 +63,5 @@ export interface TableControlProps<T> {
|
|
|
57
63
|
* @param props Component properties.
|
|
58
64
|
* @returns The TableControl React component.
|
|
59
65
|
*/
|
|
60
|
-
declare function TableControl<T>({ data, dataKey, selectedKey, onClickRow, columns, label, labelVariant, maxHeight, size, stickyHeader, hover, }: TableControlProps<T>): import("react/jsx-runtime").JSX.Element;
|
|
66
|
+
declare function TableControl<T>({ data, dataKey, hasRemoveButton, removeButtonTitle, onRemoveRow, selectedKey, onClickRow, columns, label, labelVariant, maxHeight, size, stickyHeader, hover, }: TableControlProps<T>): import("react/jsx-runtime").JSX.Element;
|
|
61
67
|
export default TableControl;
|
package/dist/controls/index.d.ts
CHANGED
|
@@ -81,6 +81,12 @@ export * from './SectionControl';
|
|
|
81
81
|
export { default as SectionControl } from './SectionControl';
|
|
82
82
|
export * from './SelectControl';
|
|
83
83
|
export { default as SelectControl } from './SelectControl';
|
|
84
|
+
export * from './SelectMessageDialog';
|
|
85
|
+
export { default as SelectMessageDialog } from './SelectMessageDialog';
|
|
86
|
+
export * from './SelectSignalDialog';
|
|
87
|
+
export { default as SelectSignalDialog } from './SelectSignalDialog';
|
|
88
|
+
export * from './SelectSignalControl';
|
|
89
|
+
export { default as SelectSignalControl } from './SelectSignalControl';
|
|
84
90
|
export * from './SizedBox';
|
|
85
91
|
export { default as SizedBox } from './SizedBox';
|
|
86
92
|
export * from './TableControl';
|
|
@@ -99,6 +105,10 @@ export * from './CanIdentifierControl';
|
|
|
99
105
|
export { default as CanIdentifierControl } from './CanIdentifierControl';
|
|
100
106
|
export * from './CanChannelSelectControl';
|
|
101
107
|
export { default as CanChannelSelectControl } from './CanChannelSelectControl';
|
|
108
|
+
export * from './LinChannelSelectControl';
|
|
109
|
+
export { default as LinChannelSelectControl } from './LinChannelSelectControl';
|
|
110
|
+
export * from './LinIdentifierControl';
|
|
111
|
+
export { default as LinIdentifierControl } from './LinIdentifierControl';
|
|
102
112
|
export * from './FillBox';
|
|
103
113
|
export { default as FillBox } from './FillBox';
|
|
104
114
|
export * from './CanKingDataProvider';
|
package/dist/controls.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const E=require("./index.js"),o=require("react/jsx-runtime"),l=require("react"),m=require("@mui/material"),ee=require("./icons.js"),te=require("fast-deep-equal");require("long");const P=require("./measurement_settings.js");function ke(e){const n=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const t in e)if(t!=="default"){const r=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(n,t,r.get?r:{enumerable:!0,get:()=>e[t]})}}return n.default=e,Object.freeze(n)}const K=ke(l);function re({id:e=void 0,label:n,checked:t,onChange:r,disabled:a=!1,size:i="small",sx:b=void 0}){const d=l.useCallback(s=>{if(s.key==="Enter"&&!s.ctrlKey&&!s.altKey&&!s.shiftKey){s.preventDefault();return}},[]);return o.jsx(m.FormControlLabel,{id:e,"aria-label":e,disabled:a,"aria-disabled":a,control:o.jsx(m.Checkbox,{size:i,checked:t,onChange:(s,c)=>r(c),onKeyDown:d}),label:n,slotProps:{typography:{noWrap:!0}},sx:b})}var X=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function ce(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function Ie(e){var n=typeof e;return e!=null&&(n=="object"||n=="function")}var ae=Ie,Me=typeof X=="object"&&X&&X.Object===Object&&X,Te=Me,$e=Te,we=typeof self=="object"&&self&&self.Object===Object&&self,Re=$e||we||Function("return this")(),fe=Re,Ee=fe,Le=function(){return Ee.Date.now()},_e=Le,Ae=/\s/;function Be(e){for(var n=e.length;n--&&Ae.test(e.charAt(n)););return n}var Oe=Be,Pe=Oe,De=/^\s+/;function We(e){return e&&e.slice(0,Pe(e)+1).replace(De,"")}var Ue=We,ze=fe,Ge=ze.Symbol,be=Ge,se=be,ge=Object.prototype,Ke=ge.hasOwnProperty,qe=ge.toString,G=se?se.toStringTag:void 0;function Xe(e){var n=Ke.call(e,G),t=e[G];try{e[G]=void 0;var r=!0}catch{}var a=qe.call(e);return r&&(n?e[G]=t:delete e[G]),a}var Ye=Xe,He=Object.prototype,Je=He.toString;function Qe(e){return Je.call(e)}var Ze=Qe,le=be,Ve=Ye,en=Ze,nn="[object Null]",tn="[object Undefined]",oe=le?le.toStringTag:void 0;function rn(e){return e==null?e===void 0?tn:nn:oe&&oe in Object(e)?Ve(e):en(e)}var an=rn;function sn(e){return e!=null&&typeof e=="object"}var ln=sn,on=an,un=ln,dn="[object Symbol]";function cn(e){return typeof e=="symbol"||un(e)&&on(e)==dn}var fn=cn,bn=Ue,ie=ae,gn=fn,ue=NaN,mn=/^[-+]0x[0-9a-f]+$/i,hn=/^0b[01]+$/i,xn=/^0o[0-7]+$/i,pn=parseInt;function Cn(e){if(typeof e=="number")return e;if(gn(e))return ue;if(ie(e)){var n=typeof e.valueOf=="function"?e.valueOf():e;e=ie(n)?n+"":n}if(typeof e!="string")return e===0?e:+e;e=bn(e);var t=hn.test(e);return t||xn.test(e)?pn(e.slice(2),t?2:8):mn.test(e)?ue:+e}var vn=Cn,Sn=ae,V=_e,de=vn,jn="Expected a function",Fn=Math.max,yn=Math.min;function Nn(e,n,t){var r,a,i,b,d,s,c=0,h=!1,S=!1,N=!0;if(typeof e!="function")throw new TypeError(jn);n=de(n)||0,Sn(t)&&(h=!!t.leading,S="maxWait"in t,i=S?Fn(de(t.maxWait)||0,n):i,N="trailing"in t?!!t.trailing:N);function j(u){var T=r,L=a;return r=a=void 0,c=u,b=e.apply(L,T),b}function F(u){return c=u,d=setTimeout(w,n),h?j(u):b}function k(u){var T=u-s,L=u-c,B=n-T;return S?yn(B,i-L):B}function M(u){var T=u-s,L=u-c;return s===void 0||T>=n||T<0||S&&L>=i}function w(){var u=V();if(M(u))return y(u);d=setTimeout(w,k(u))}function y(u){return d=void 0,N&&r?j(u):(r=a=void 0,b)}function p(){d!==void 0&&clearTimeout(d),c=0,r=s=a=d=void 0}function g(){return d===void 0?b:y(V())}function v(){var u=V(),T=M(u);if(r=arguments,a=this,s=u,T){if(d===void 0)return F(s);if(S)return clearTimeout(d),d=setTimeout(w,n),j(s)}return d===void 0&&(d=setTimeout(w,n)),b}return v.cancel=p,v.flush=g,v}var me=Nn;const kn=ce(me);var In=me,Mn=ae,Tn="Expected a function";function $n(e,n,t){var r=!0,a=!0;if(typeof e!="function")throw new TypeError(Tn);return Mn(t)&&(r="leading"in t?!!t.leading:r,a="trailing"in t?!!t.trailing:a),In(e,n,{leading:r,maxWait:n,trailing:a})}var wn=$n;const Rn=ce(wn),En=(e,n,t,r)=>{switch(n){case"debounce":return kn(e,t,r);case"throttle":return Rn(e,t,r);default:return e}},Ln=e=>{const n=K.useRef(e);return K.useEffect(()=>{n.current=e}),K.useMemo(()=>(...t)=>{var r;return(r=n.current)===null||r===void 0?void 0:r.call(n,...t)},[])},_n=e=>{const[n,t]=K.useState((e==null?void 0:e.current)||null);return e&&setTimeout(()=>{e.current!==n&&t(e.current)},0),{refProxy:K.useMemo(()=>new Proxy(a=>{a!==n&&t(a)},{get(a,i){return i==="current"?n:a[i]},set(a,i,b){return i==="current"?t(b):a[i]=b,!0}}),[n]),refElement:n,setRefElement:t}},An=(e,n)=>n==="border-box"?{width:e.borderBoxSize[0].inlineSize,height:e.borderBoxSize[0].blockSize}:n==="content-box"?{width:e.contentBoxSize[0].inlineSize,height:e.contentBoxSize[0].blockSize}:{width:e.contentRect.width,height:e.contentRect.height};function Bn({skipOnMount:e=!1,refreshMode:n,refreshRate:t=1e3,refreshOptions:r,handleWidth:a=!0,handleHeight:i=!0,targetRef:b,observerOptions:d,onResize:s}={}){const c=l.useRef(e),h=Ln(s),[S,N]=l.useState({width:void 0,height:void 0}),{refProxy:j,refElement:F}=_n(b),{box:k}=d||{},M=l.useCallback(y=>{if(!a&&!i)return;if(c.current){c.current=!1;return}const p=(g,v)=>a&&g.width!==v.width||i&&g.height!==v.height;y.forEach(g=>{const v=An(g,k);N(u=>p(u,v)?(h==null||h({width:v.width,height:v.height,entry:g}),v):u)})},[a,i,c,k]),w=l.useCallback(En(M,n,t,r),[M,n,t,r]);return l.useEffect(()=>{let y;return F?(y=new window.ResizeObserver(w),y.observe(F,d)):(S.width||S.height)&&(h==null||h({width:null,height:null,entry:null}),N({width:void 0,height:void 0})),()=>{var p,g,v;(p=y==null?void 0:y.disconnect)===null||p===void 0||p.call(y),(v=(g=w).cancel)===null||v===void 0||v.call(g)}},[w,F]),Object.assign({ref:j},S)}const he=()=>{const{ref:e,width:n}=Bn();return{ref:e,width:n}},xe=(...e)=>{const[n,t]=l.useState();return l.useEffect(()=>{const r=e.filter(a=>a.width!==void 0).map(a=>Number(a.width.toFixed(1)));if(r.length===e.length){const a=Math.max(...r);t(i=>i===void 0?a:i)}},[e]),n};function pe({columnItem:e,width:n=void 0,children:t=void 0}){return o.jsx("div",{ref:e.ref,children:o.jsx(m.Box,{sx:{width:n},children:t})})}const q=m.styled(m.Button)(()=>({whiteSpace:"nowrap",minWidth:"max-content"}));function On({items:e,onSelect:n,onClose:t=void 0}){const r=l.useCallback(a=>{n(a),t&&t()},[t,n]);return o.jsx(o.Fragment,{children:e.map(a=>o.jsx(m.MenuItem,{onClick:()=>r(a.key),children:a.text},a.key))})}function Ce({id:e="dropdown-button",startIcon:n=void 0,endIcon:t=void 0,text:r=void 0,variant:a="outlined",color:i=void 0,size:b="medium",disabled:d=!1,children:s}){const[c,h]=l.useState(null),S=!!c,N=l.useCallback(k=>{h(k.currentTarget)},[]),j=l.useCallback(()=>{h(null)},[]),F=l.cloneElement(l.Children.only(s),{onClose:j});return o.jsxs(o.Fragment,{children:[!r&&o.jsx(m.IconButton,{id:e,"data-testid":e,"aria-controls":S?`${e}-popover`:void 0,"aria-haspopup":"true","aria-expanded":S?"true":void 0,onClick:N,size:b,color:i,disabled:d,children:n}),r&&o.jsx(q,{id:e,"data-testid":e,"aria-controls":S?`${e}-popover`:void 0,"aria-haspopup":"true","aria-expanded":S?"true":void 0,variant:a,disableElevation:!0,onClick:N,startIcon:n,endIcon:t??o.jsx(ee.LineArrowDownIcon,{}),size:b,color:i,disabled:d,children:r}),o.jsx(m.Popover,{id:`${e}-popover`,"aria-labelledby":e,anchorEl:c,open:S,onClose:j,anchorOrigin:{vertical:"bottom",horizontal:"left"},transformOrigin:{vertical:"top",horizontal:"left"},children:F})]})}const Pn=m.styled("div")(({top:e,left:n,width:t,height:r})=>({top:e,left:n,width:t,height:r,position:"absolute",zIndex:1})),Dn=m.styled("div")(({top:e,left:n,width:t,height:r,position:a,theme:i})=>({top:e,left:n,width:t,height:r,position:"absolute",zIndex:2,color:i.palette.primary.contrastText,backgroundColor:i.palette.primary.main,display:"flex",flexDirection:a==="left"||a==="right"?"column":"row",borderTopLeftRadius:a==="top"||a==="left"?0:8,borderTopRightRadius:a==="top"||a==="right"?0:8,borderBottomRightRadius:a==="bottom"||a==="right"?0:8,borderBottomLeftRadius:a==="bottom"||a==="left"?0:8})),Y=8;function Wn({id:e=void 0,position:n,parentWidth:t,parentHeight:r,maxLength:a,dropDownSize:i,autoHideTimeout:b=0,forceShow:d=!1,children:s=null}){const c=l.useMemo(()=>{switch(n){case"left":case"right":return Math.min(a,r);case"top":case"bottom":return Math.min(a,t);default:return a}},[a,r,t,n]),h=l.useMemo(()=>{switch(n){case"left":case"right":return(r-c)/2;case"top":return 0;case"bottom":return r-Y;default:return 0}},[c,r,n]),S=l.useMemo(()=>{switch(n){case"left":return 0;case"right":return t-Y;case"top":case"bottom":return(t-c)/2;default:return 0}},[c,t,n]),N=l.useMemo(()=>{switch(n){case"left":case"right":return Y;case"top":case"bottom":return c;default:return 0}},[c,n]),j=l.useMemo(()=>{switch(n){case"left":case"right":return c;case"top":case"bottom":return Y;default:return 0}},[c,n]),F=l.useMemo(()=>{switch(n){case"left":case"right":return(r-c)/2;case"top":return 0;case"bottom":return r-i;default:return 0}},[i,c,r,n]),k=l.useMemo(()=>{switch(n){case"left":return 0;case"right":return t-i;case"top":case"bottom":return(t-c)/2;default:return 0}},[i,c,t,n]),M=l.useMemo(()=>{switch(n){case"left":case"right":return i;case"top":case"bottom":return c;default:return 0}},[i,c,n]),w=l.useMemo(()=>{switch(n){case"left":case"right":return c;case"top":case"bottom":return i;default:return 0}},[i,c,n]),[y,p]=l.useState(!1),g=l.useCallback(u=>{u.buttons===0&&b&&p(!0)},[b]),v=l.useCallback(()=>{p(!1)},[]);return l.useEffect(()=>{let u;return y&&b&&(u=setTimeout(()=>p(!1),b)),()=>{u&&clearTimeout(u)}},[b,y]),o.jsxs(o.Fragment,{children:[o.jsx(Pn,{id:e,top:h,left:S,width:N,height:j,"aria-haspopup":"true",onMouseEnter:g}),(y||d===!0)&&o.jsx(Dn,{top:F,left:k,width:M,height:w,position:n,onMouseLeave:v,children:s})]})}function J({children:e,fullWidth:n=!0,spacing:t="4px",alignItems:r="center"}){return o.jsx(m.FormControl,{margin:"dense",fullWidth:n,variant:"standard",children:o.jsx(m.Stack,{direction:"row",spacing:t,alignItems:r,children:e})})}const Un=m.styled("input")(({variant:e,theme:n})=>({...n.typography[e]})),zn=m.styled("span")(({variant:e,theme:n})=>({...n.typography[e]}));function Gn({value:e,onChange:n,ariaLabel:t=void 0,variant:r="body1"}){const a=l.useRef(null),[i,b]=l.useState(e),d=l.useCallback(h=>b(h.target.value),[]),s=l.useCallback(h=>{(h.key==="Enter"||h.key==="Escape")&&(h.key==="Escape"&&(b(e),h.currentTarget.value=e),h.currentTarget.blur())},[e]),c=l.useCallback(h=>{n(h.target.value)},[n]);return l.useEffect(()=>{var h;(h=a.current)==null||h.focus()},[]),o.jsx(Un,{ref:a,variant:r??"body1",type:"text","aria-label":t,value:i,onChange:d,onKeyDown:s,onBlur:c})}function Kn({editMode:e,value:n,onValueChange:t,ariaLabel:r=void 0,variant:a="body1"}){return o.jsxs(o.Fragment,{children:[e&&o.jsx(Gn,{ariaLabel:r,value:n,onChange:t,variant:a}),!e&&o.jsx(zn,{variant:a??"body1",children:n})]})}function ve({id:e=void 0,label:n=void 0,helperText:t="",value:r,onChange:a=void 0,onBlur:i=void 0,disabled:b=!1,error:d=!1,required:s=!1,margin:c="dense",size:h="small",fullWidth:S=!1,inputMode:N=void 0,pattern:j=void 0,startAdornment:F=void 0,endAdornment:k=void 0,sx:M=void 0,sxStartAdornment:w=void 0,sxEndAdornment:y=void 0}){const p=l.useCallback(T=>{a&&a(T.target.value)},[a]),g=l.useCallback(T=>{if(T.key==="Enter"&&!T.ctrlKey&&!T.altKey&&!T.shiftKey){T.preventDefault(),T.stopPropagation(),document.activeElement instanceof HTMLElement&&document.activeElement.blur();return}},[]),v=w??{marginBottom:1},u=y??{marginBottom:1};return o.jsx(m.TextField,{id:e,"aria-label":e,type:"text",label:n,helperText:t,margin:c,size:h,fullWidth:S,variant:"standard",value:r,onChange:p,onBlur:i,disabled:b,"aria-disabled":b,error:d,required:s,slotProps:{input:{startAdornment:F?o.jsx(m.InputAdornment,{position:"start",sx:{...v},children:F}):null,endAdornment:k?o.jsx(m.InputAdornment,{position:"end",sx:{...u},children:k}):null},htmlInput:{inputMode:N,pattern:j}},sx:M,onKeyDown:g})}function z({id:e,label:n=void 0,helperText:t="",value:r,onChange:a=void 0,onBlur:i=void 0,disabled:b=!1,required:d=!1,margin:s="dense",size:c="small",fullWidth:h=!1,inputMode:S=void 0,pattern:N=void 0,startAdornment:j=void 0,endAdornment:F=void 0,sx:k=void 0,sxStartAdornment:M=void 0,sxEndAdornment:w=void 0,error:y=void 0,onErrorChange:p=void 0,onValidate:g=void 0,numberType:v="int",minValue:u=void 0,maxValue:T=void 0}){const[L,B]=l.useState(r),[R,_]=l.useState(y!==void 0?y:!1);l.useEffect(()=>{B(f=>r!==f?r:f)},[r]),l.useEffect(()=>{_(f=>y!==void 0&&y!==f?y:f)},[y]);const D=l.useCallback(f=>{const I=Number.parseInt(f,f.startsWith("0x")?16:10);let x=Number.isNaN(I);return x||(x=u!==void 0&&I<u),x||(x=T!==void 0&&I>T),{val:f,err:x}},[T,u]),W=l.useCallback(f=>{let I=!1;if(f.endsWith(",")||f.endsWith("."))return I=!0,{val:f,err:I};const x=Number.parseFloat(f.replace(",","."));return I=Number.isNaN(x),I||(I=u!==void 0&&x<u),I||(I=T!==void 0&&x>T),{val:x.toString(),err:I}},[T,u]),U=l.useCallback(f=>v==="int"?D(f):W(f),[v,W,D]),O=l.useCallback((f,I)=>{let x=f,A=!1;return!d&&(x===void 0||x==="")?{val:x,err:A}:(v!==void 0&&({val:x,err:A}=U(f)),!A&&g&&({val:x,err:A}=g(x,I)),{val:x,err:A})},[g,U]),$=l.useCallback(f=>{const{val:I,err:x}=O(f,"change");(y===void 0||y===!1)&&_(x),B(x?f:I),!x&&a&&a(I)},[a,O]),C=l.useCallback(()=>{const{val:f,err:I}=O(L,"blur");(y===void 0||y===!1)&&_(I),!I&&i&&i(f)},[i,O,L]);return l.useEffect(()=>{p&&p(R)},[R,p]),o.jsx(ve,{id:e,label:n,helperText:t,value:L,onChange:$,onBlur:C,disabled:b,error:R,required:d,margin:s,size:c,fullWidth:h,inputMode:S,pattern:N,startAdornment:j,endAdornment:F,sx:k,sxStartAdornment:M,sxEndAdornment:w})}function qn({minValue:e,maxValue:n,onChange:t=void 0,onBlur:r=void 0,minError:a=void 0,onMinErrorChange:i=void 0,maxError:b=void 0,onMaxErrorChange:d=void 0,onMinValidate:s=void 0,onMaxValidate:c=void 0,minDisabled:h=!1,maxDisabled:S=!1,unit:N=void 0,lowerLimit:j=void 0,upperLimit:F=void 0}){const k=E.useLocalizedStrings(),M=Number.parseInt(e),w=Number.parseInt(n),[y,p]=l.useState(e.toString()),[g,v]=l.useState(n.toString()),[u,T]=l.useState(a===!0||Number.isNaN(M)||M<(j??0)||F&&M>F||!Number.isNaN(w)&&M>=w),[L,B]=l.useState(b===!0||Number.isNaN(w)||w<(j??0)||F&&w>F||!Number.isNaN(M)&&M>=w);l.useEffect(()=>{p($=>e.toString()!==$?e.toString():$)},[e]),l.useEffect(()=>{T($=>a!==void 0&&a!==$?a:$)},[a]),l.useEffect(()=>{v($=>n.toString()!==$?n.toString():$)},[n]),l.useEffect(()=>{B($=>b!==void 0&&b!==$?b:$)},[b]);const R=l.useCallback($=>{const C=Number.parseInt($,$.startsWith("0x")?16:10),f=Number.parseInt(g),I=Number.isNaN(C)||C<(j??0)||F&&C>F||!Number.isNaN(f)&&C>=f;return{val:$,err:I}},[g,j,F]),_=l.useCallback($=>{const C=Number.parseInt($,$.startsWith("0x")?16:10),f=Number.parseInt(y),I=Number.isNaN(C)||C<(j??0)||F&&C>F||!Number.isNaN(f)&&f>=C;return{val:$,err:I}},[y,j,F]),D=l.useCallback($=>{let{val:C,err:f}=R($);if(!f&&s&&({val:C,err:f}=s($,"change")),(a===void 0||a===!1)&&T(f),f)t&&t($,g);else{const I=Number.parseInt(C,C.startsWith("0x")?16:10).toString();p(I),t&&t(I,g)}},[R,s,a,t,g]),W=l.useCallback($=>{let{val:C,err:f}=R($);!f&&s&&({val:C,err:f}=s(C,"blur")),T(f),!f&&r&&r(C,g)},[R,s,r,g]),U=l.useCallback($=>{let{val:C,err:f}=_($);if(!f&&c&&({val:C,err:f}=c($,"change")),(b===void 0||b===!1)&&B(f),f)t&&t(y,$);else{const I=Number.parseInt(C,C.startsWith("0x")?16:10).toString();v(I),t&&t(y,I)}},[_,c,b,t,y]),O=l.useCallback($=>{let{val:C,err:f}=_($);!f&&c&&({val:C,err:f}=c(C,"blur")),B(f),!f&&r&&r(y,C)},[_,c,r,y]);return l.useEffect(()=>{i&&i(u),d&&d(L)},[L,u,d,i]),o.jsxs(o.Fragment,{children:[o.jsx(z,{id:"min-value",disabled:h,inputMode:"numeric",fullWidth:!0,value:y,onChange:D,onBlur:W,startAdornment:k.getString("LabelFrom"),endAdornment:N,numberType:"int",error:u,onErrorChange:T}),o.jsx(z,{id:"max-value",disabled:S,inputMode:"numeric",fullWidth:!0,value:g,onChange:U,onBlur:O,startAdornment:k.getString("LabelTo"),endAdornment:N,numberType:"int",error:L,onErrorChange:B})]})}function H({id:e=void 0,label:n,value:t,disabled:r=!1,size:a="small",sx:i=void 0}){return o.jsx(m.FormControlLabel,{id:e,"aria-label":e,value:t,disabled:r,"aria-disabled":r,control:o.jsx(m.Radio,{size:a}),label:n,componentsProps:{typography:{noWrap:!0}},sx:i})}function Se({children:e,id:n=void 0,value:t,onChange:r}){return o.jsx(m.RadioGroup,{id:n,"aria-label":n,value:t,onChange:(a,i)=>r(i),children:e})}const Xn=m.styled(m.Box,{shouldForwardProp:e=>e!=="collapsed"})(({collapsed:e,theme:n})=>({paddingTop:e?"4px":"8px",paddingLeft:"2px",paddingRight:"2px",paddingBottom:e?"0px":"2px",marginTop:"2px","&:hover, &:focus-within":{background:n.palette.action.hover}})),je=m.styled("span")(({theme:e})=>({color:e.palette.divider})),Yn=m.styled(je)(()=>({"&:hover":{cursor:"pointer"}})),Hn=m.styled(m.IconButton)(({theme:e})=>({color:e.palette.divider,padding:"0px"}));function Q({textAlign:e="left",text:n=void 0,summary:t=void 0,children:r=void 0,collapsible:a=!1,collapsed:i=!1,collapsedChange:b=void 0}){const d=E.useLanguage(),s=E.useLocalizedStrings(),[c,h]=l.useState(i);l.useEffect(()=>h(i),[i]);const S=l.useCallback(N=>{b?b(N):h(N)},[b]);return o.jsxs(Xn,{collapsed:c,children:[n&&o.jsx(m.Divider,{textAlign:e,variant:"fullWidth",children:a?o.jsxs(m.Stack,{direction:"row",spacing:1,alignItems:"center",children:[o.jsxs(Yn,{onClick:()=>S(!c),children:[n.toLocaleUpperCase(d),c&&t?` (${t})`:""]}),o.jsx(m.Tooltip,{title:c?s==null?void 0:s.getString("TooltipExpandSection",n):s==null?void 0:s.getString("TooltipCollapseSection",n),children:o.jsx(Hn,{onClick:()=>S(!c),children:c?o.jsx(ee.LineArrowDownIcon,{}):o.jsx(ee.LineArrowUpIcon,{})})})]}):o.jsx(je,{children:n.toLocaleUpperCase(d)})}),!c&&r]})}function ne({id:e,label:n,showLabel:t=!1,helperText:r="",options:a,value:i,onChange:b,disabled:d=!1,required:s=!1,margin:c="dense",size:h="small",fullWidth:S=!1,minWidth:N=void 0,prefixTextWithValue:j=!1}){const F=l.useCallback(p=>{typeof p.target.value=="string"?b(""):b(p.target.value)},[b]),k=l.useCallback(p=>p.map(g=>o.jsx(m.MenuItem,{"aria-label":`menu-item-${g.value}`,value:g.value,children:j?`${g.value} - ${g.displayText}`:g.displayText},g.value)),[j]),M=l.useCallback((p,g)=>{const v=[o.jsx(m.ListSubheader,{color:"primary",children:p},p)];return v.push(...k(g)),v},[k]),w=l.useCallback(p=>{const g=[];return p.forEach((v,u)=>{g.push(...M(u,v))}),g},[M]),y=l.useCallback(p=>{let g="";if(a instanceof Map)a.forEach((v,u)=>{if(g===""){const T=v.find(L=>L.value===p);T&&(g=j?`${T.value} - ${u} - ${T.displayText}`:`${u} - ${T.displayText}`)}});else{const v=a.find(u=>u.value===p);v&&(g=j?`${v.value} - ${v.displayText}`:v.displayText)}return g===""&&(g=s?`${n} *`:n),g},[n,a,j,s]);return o.jsxs(m.FormControl,{fullWidth:S,variant:"standard",sx:{minWidth:N},margin:c,size:h,children:[t&&o.jsx(m.InputLabel,{id:`${e}-label`,children:s?`${n} *`:n}),o.jsxs(m.Select,{labelId:`${e}-label`,"aria-label":e,id:e,value:i,renderValue:y,onChange:F,displayEmpty:!t,disabled:d,"aria-disabled":d,children:[a instanceof Map&&w(a),a instanceof Array&&k(a)]}),r&&o.jsx(m.FormHelperText,{children:r})]})}const Jn=m.styled(m.Box)(({height:e,width:n})=>({height:e,width:n,padding:"4px",overflow:"auto"}));function Qn({label:e,variant:n="h6"}){return o.jsx(m.Toolbar,{children:o.jsx(m.Typography,{sx:{flex:"1 1 100%"},variant:n,id:"tableTitle",component:"div",children:e})})}function Zn({data:e,dataKey:n,selectedKey:t=void 0,onClickRow:r=void 0,columns:a,label:i=void 0,labelVariant:b="h6",maxHeight:d=void 0,size:s="medium",stickyHeader:c=!1,hover:h=!1}){const S=l.useCallback(N=>{r&&r(N)},[r]);return o.jsxs(m.Box,{children:[i&&o.jsx(Qn,{label:i,variant:b}),o.jsx(m.TableContainer,{children:o.jsxs(m.Table,{"aria-labelledby":"tableTitle",size:s,stickyHeader:c,sx:{maxHeight:d},padding:"none",children:[o.jsx(m.TableHead,{children:o.jsx(m.TableRow,{children:a.map(N=>o.jsx(m.TableCell,{...N.headProps,children:N.headCell},N.key))})}),o.jsx(m.TableBody,{children:e.map(N=>{const j=n(N);return o.jsx(m.TableRow,{hover:h,selected:j===t,onClick:()=>S(N),children:a.map(F=>o.jsx(m.TableCell,{...F.dataProps,children:F.dataCell(N)},`${j}-${F.key}`))},j)})})]})})]})}const Vn=m.styled("div")(({theme:e})=>({borderBottom:"1px solid",borderColor:e.palette.divider})),et=m.styled(m.ToggleButtonGroup)(({theme:e})=>({[`& .${m.toggleButtonGroupClasses.grouped}`]:{margin:e.spacing(.5),padding:e.spacing(1.25),minWidth:24,color:e.palette.action.active,border:0,borderRadius:e.shape.borderRadius,[`&.${m.toggleButtonGroupClasses.disabled}`]:{border:0}}})),nt=m.styled(m.ButtonGroup)(({theme:e})=>({[`& .${m.buttonGroupClasses.grouped}`]:{margin:e.spacing(.5),padding:e.spacing(1.25),minWidth:24,color:e.palette.action.active,border:0,borderRadius:e.shape.borderRadius,[`&.${m.buttonGroupClasses.disabled}`]:{border:0}},[`& .${m.buttonGroupClasses.middleButton},& .${m.buttonGroupClasses.lastButton}`]:{marginLeft:-1,borderLeft:"1px solid transparent"}}));function Fe({onClick:e,icon:n=void 0,text:t=void 0,size:r="small",variant:a=void 0,color:i="inherit",tooltip:b=void 0,ariaLabel:d=void 0,children:s=void 0,disabled:c=!1}){return s?o.jsx(Ce,{size:typeof r=="string"?r:"small",variant:a,color:i,startIcon:n,text:t,disabled:c,children:s}):t?o.jsxs(q,{size:typeof r=="string"?r:"small",variant:a,color:i,"aria-label":d,onClick:e,startIcon:n,disabled:c,children:[b&&o.jsx(m.Tooltip,{placement:"bottom-start",title:b,children:o.jsx("span",{children:t})}),!b&&t]}):o.jsxs(q,{size:typeof r=="string"?r:"small",variant:a,color:i,"aria-label":d,onClick:e,disabled:c,sx:{height:typeof r=="number"?`${r}px`:void 0,width:typeof r=="number"?`${r}px`:void 0},children:[b&&o.jsx(m.Tooltip,{placement:"bottom-start",title:b,children:o.jsx("span",{children:n})}),!b&&n]})}function tt({buttons:e,size:n="small",ariaLabel:t=void 0,orientation:r="horizontal"}){return o.jsx(nt,{size:n,"aria-label":t,orientation:r,children:e.map((a,i)=>o.jsx(Fe,{onClick:a.onClick,icon:a.icon,text:a.text,size:a.size,variant:a.variant,color:a.color,tooltip:a.tooltip,ariaLabel:a.ariaLabel,disabled:a.disabled,children:a.children},i))})}function rt({value:e,onChange:n,size:t="small",ariaLabel:r=void 0,exclusive:a=void 0,buttons:i,orientation:b="horizontal"}){return o.jsx(et,{size:t,value:e,onChange:(d,s)=>n(s),"aria-label":r,exclusive:a,orientation:b,children:i.map((d,s)=>o.jsxs(m.ToggleButton,{size:typeof t=="string"?t:"small",value:d.value,"aria-label":d.ariaLabel,sx:{height:typeof t=="number"?`${t}px`:void 0,width:typeof t=="number"?`${t}px`:void 0,padding:d.size==="small"||typeof t=="number"?1:void 0,margin:d.size==="small"||typeof t=="number"?0:void 0},disabled:d.disabled,children:[d.tooltip&&o.jsx(m.Tooltip,{placement:"bottom-start",title:d.tooltip,children:o.jsx("span",{children:d.icon})}),!d.tooltip&&d.icon]},s))})}function at({items:e,height:n=34,width:t=34,justifyContent:r="left",borderSize:a=1,padding:i=1,backgroundColor:b=void 0,orientation:d="horizontal"}){return o.jsx(m.Paper,{elevation:0,sx:{display:"flex",alignItems:"center",justifyContent:r,border:s=>`${a}px solid ${s.palette.divider}`,flexWrap:"wrap",height:d==="horizontal"?`${n}px`:"100%",minHeight:d==="horizontal"?`${n}px`:void 0,width:d==="vertical"?`${t}px`:"100%",minWidth:d==="vertical"?`${t}px`:void 0,paddingLeft:d==="horizontal"?i:0,paddingRight:d==="horizontal"?i:0,paddingTop:d==="vertical"?i:0,paddingBottom:d==="vertical"?i:0,borderRadius:"0px",backgroundColor:b},children:e.map((s,c)=>s.label?o.jsx(m.Typography,{variant:s.label.variant,component:"div",children:s.label.text},c):s.toggleButtonGroup?o.jsx(rt,{value:s.toggleButtonGroup.value,onChange:s.toggleButtonGroup.onChange,ariaLabel:s.toggleButtonGroup.ariaLabel,exclusive:s.toggleButtonGroup.exclusive,buttons:s.toggleButtonGroup.buttons,orientation:d},c):s.button?o.jsx(Fe,{onClick:s.button.onClick,icon:s.button.icon,text:s.button.text,variant:s.button.variant,color:s.button.color,tooltip:s.button.tooltip,ariaLabel:s.button.ariaLabel,disabled:s.button.disabled},c):s.buttonGroup?o.jsx(tt,{ariaLabel:s.buttonGroup.ariaLabel,buttons:s.buttonGroup.buttons,orientation:d},c):s.other)})}function st({options:e,onSelect:n,children:t=void 0}){const[r,a]=l.useState(null),i=l.useCallback(s=>{e.length!==0&&(s.preventDefault(),a(r===null?{mouseX:s.clientX+2,mouseY:s.clientY-6}:null))},[r,e.length]),b=l.useCallback(()=>{a(null)},[]),d=l.useCallback(s=>{n(s),b()},[b,n]);return o.jsxs("div",{onContextMenu:i,style:{cursor:"context-menu"},children:[t,o.jsx(m.Menu,{open:r!==null,onClose:b,anchorReference:"anchorPosition",anchorPosition:r!==null?{top:r.mouseY,left:r.mouseX}:void 0,children:e.map(s=>o.jsxs(m.MenuItem,{onClick:()=>d(s.value),children:[s.icon&&o.jsx(m.ListItemIcon,{children:s.icon}),o.jsx(m.ListItemText,{children:s.displayText}),s.shortcut&&o.jsx(m.ListItemText,{sx:{pl:2,textAlign:"right"},children:s.shortcut})]},s.value))})]})}function ye({canIdentifier:e,canIdentifierType:n,onCanIdentifierChange:t,onErrorsChange:r=void 0,hideSection:a=!1,disabled:i=!1,collapsible:b=!1,collapsed:d=!1,collapsedChange:s=void 0}){const c=E.useLocalizedStrings(),h=E.useNumericRadix(),[S,N]=l.useState(!1);l.useEffect(()=>{r&&r(S)},[S,r]);const[j,F]=l.useState(n);l.useEffect(()=>{F(n)},[n]);const k=l.useCallback(p=>{F(p?"extended":"standard")},[]),M=l.useCallback(p=>{let g=p,v=!1;if(g.length>2&&g.toLowerCase().startsWith("0x")&&(g=g.substring(2),v=!0),g=g.toUpperCase(),j==="extended"){const u=parseInt(g,v?16:h);if(Number.isNaN(u)||u<0||u>536870911)return t(p,j),{val:p,err:!0};g=`${u.toString(h).toUpperCase()}`}else if(j==="standard"){const u=parseInt(g,v?16:h);if(Number.isNaN(u)||u<0||u>2047)return t(p,j),{val:p,err:!0};g=`${u.toString(h).toUpperCase()}`}return t(g,j),{val:p,err:!1}},[j,h,t]),w=l.useCallback(p=>{if(p!==j){let g=!1,v=e;if(p==="standard"){const u=parseInt(v,h);(Number.isNaN(u)||u<0||u>2047)&&(g=!0)}else if(p==="extended"){const u=parseInt(v,h);(Number.isNaN(u)||u<0||u>536870911)&&(g=!0)}t(v,p),N(g)}},[j,e,t,h]),y=l.useMemo(()=>o.jsxs(J,{spacing:4,children:[o.jsx(z,{id:"constant-id",fullWidth:!0,value:e,onBlur:M,error:S,onErrorChange:N,disabled:i}),o.jsx(re,{id:"id-type",label:c.getString("LabelUseExtendedIdentifier"),checked:j==="extended",onChange:p=>{k(p),w(p?"extended":"standard")},disabled:i})]}),[e,j,i,S,c,w,M]);return a?y:o.jsx(Q,{text:c.getString("LabelCanIdentifier"),summary:e,collapsible:b,collapsed:d,collapsedChange:s,children:y})}function lt({frame:e,onFrameChange:n,onErrorsChange:t=void 0,hideSection:r=!1,collapsible:a=!1,collapsed:i=!1,collapsedChange:b=void 0}){var S;const d=E.useNumericRadix(),s=l.useMemo(()=>{var N,j;return((j=(N=e.canFrameFlags)==null?void 0:N.flags)==null?void 0:j.includes(P.CanFrameFlag.CAN_FRAME_FLAG_EXT))===!0?"extended":"standard"},[(S=e.canFrameFlags)==null?void 0:S.flags]),c=l.useMemo(()=>`${(e.id??0).toString(d).toUpperCase()}`,[s,e.id,d]),h=l.useCallback((N,j)=>{var y;let F=e.id??0;F=parseInt(N,d);const k=(y=e.canFrameFlags)!=null&&y.flags?{flags:[...e.canFrameFlags.flags]}:{flags:[]},M=k.flags.indexOf(P.CanFrameFlag.CAN_FRAME_FLAG_STD);M!==-1&&k.flags.splice(M,1);const w=k.flags.indexOf(P.CanFrameFlag.CAN_FRAME_FLAG_EXT);if(w!==-1&&k.flags.splice(w,1),j==="extended"?k.flags.push(P.CanFrameFlag.CAN_FRAME_FLAG_EXT):j==="standard"&&k.flags.push(P.CanFrameFlag.CAN_FRAME_FLAG_STD),F!==e.id||!te(k,e.canFrameFlags)){const p={...e};p.id=F,p.canFrameFlags=k,n(p)}},[e,d,n]);return o.jsx(ye,{canIdentifier:c,canIdentifierType:s,onCanIdentifierChange:h,onErrorsChange:t,hideSection:r,collapsible:a,collapsed:i,collapsedChange:b})}function Ne({canIdentifier:e,identifierGeneratorType:n,minCanIdentifier:t,maxCanIdentifier:r,canIdentifierType:a,onChange:i,onErrorsChange:b=void 0,canIdentifierGeneratorSettingsError:d=void 0,disabled:s=!1,collapsible:c=!1,collapsed:h=!1,collapsedChange:S=void 0,showSelectMessageDialogChange:N,showSignalValuesTable:j}){const F=E.useLocalizedStrings(),k=E.useNumericRadix(),[M,w]=l.useState(!1),[y,p]=l.useState(!1),[g,v]=l.useState(!1),[u,T]=l.useState(a);l.useEffect(()=>{T(a)},[a]);const L=l.useCallback(C=>{T(C?"extended":"standard")},[]),B=l.useCallback(C=>{let f=C,I=!1;if(f.length>2&&f.toLowerCase().startsWith("0x")&&(f=f.substring(2),I=!0),f=f.toUpperCase(),u==="extended"){const x=parseInt(f,I?16:k);if(Number.isNaN(x)||x<0||x>536870911)return i(C,n,t,r,u),{val:C,err:!0};f=`${x.toString(k).toUpperCase()}`}else if(u==="standard"){const x=parseInt(f,I?16:k);if(Number.isNaN(x)||x<0||x>2047)return i(C,n,t,r,u),{val:C,err:!0};f=`${x.toString(k).toUpperCase()}`}return i(f,n,t,r,u),{val:C,err:!1}},[u,n,r,t,k,i]),R=l.useCallback((C,f,I)=>{let x=C,A=-1,Z=!1;if(x.length>2&&x.toLowerCase().startsWith("0x")&&(x=x.substring(2),Z=!0),x=x.toUpperCase(),f==="extended"){if(A=parseInt(x,Z?16:k),Number.isNaN(A)||A<0||A>536870911)return I(C),{val:C,err:!0,id:A};x=`${A.toString(k).toUpperCase()}`}else if(f==="standard"){if(A=parseInt(x,Z?16:k),Number.isNaN(A)||A<0||A>2047)return I(C),{val:C,err:!0,id:A};x=`${A.toString(k).toUpperCase()}`}return I(x),{val:x,err:!1,id:A}},[k]),_=l.useCallback(C=>{const f=R(C,u,x=>i(e,n,x,r,u)),I=R(r,u,()=>{});return!f.err&&!I.err&&(f.id>=I.id?(f.err=!0,p(!0)):p(!1)),{val:f.val,err:f.err}},[e,u,n,r,i,R]),D=l.useCallback(C=>{const f=R(C,u,x=>i(e,n,t,x,u)),I=R(t,u,()=>{});return!I.err&&!f.err&&(I.id>=f.id?(f.err=!0,v(!0)):v(!1)),{val:f.val,err:f.err}},[e,u,n,t,i,R]),W=l.useCallback(C=>{if(C!==u){let f=e;const I=R(t,C,()=>{}),x=R(r,C,()=>{});i(f,n,I.val,x.val,C)}},[u,e,R,t,r,i,n,k]),U=l.useCallback(C=>{let f=e;const I=R(t,u,()=>{}),x=R(r,u,()=>{});j(C==="constant"),i(f,C,I.val,x.val,u)},[u,e,R,t,r,i,n,k]);l.useEffect(()=>{b&&b(n==="constant"&&M||(n==="random"||n==="scan")&&(y||g)),d&&(d.current=n==="constant"&&M||(n==="random"||n==="scan")&&(y||g))},[M,d,n,g,y,b]);const O=he(),$=xe(O);return o.jsx(Q,{text:F.getString("LabelCanIdentifier"),summary:n==="constant"?e:n==="random"?`${F.getString("LabelRandom")} ${t}-${r}`:`${F.getString("LabelScan")} ${t}-${r}`,collapsible:c,collapsed:h,collapsedChange:S,children:o.jsxs(Se,{id:"identifier-radio-group",value:n,onChange:C=>{U(C)},children:[o.jsxs(J,{spacing:4,children:[o.jsx(H,{id:"constant-id-radio",value:"constant",label:F.getString("LabelConstantIdentifier"),sx:{marginLeft:"-11px !important"},disabled:s}),o.jsx(z,{id:"constant-id",fullWidth:!0,value:e,error:M,onErrorChange:w,disabled:s||n!=="constant",required:n==="constant",onBlur:B}),o.jsx(re,{id:"id-type",label:F.getString("LabelUseExtendedIdentifier"),checked:u==="extended",onChange:C=>{L(C),W(C?"extended":"standard")},disabled:s}),o.jsx(pe,{columnItem:O,width:$,children:o.jsx(q,{onClick:()=>N(!0),variant:"outlined",size:"large",children:F.getString("ButtonSelectMessage")})})]}),o.jsxs(J,{spacing:4,children:[o.jsx(H,{id:"random-identifier-radio",value:"random",label:F.getString("LabelRandomIdentifier"),sx:{marginLeft:"-11px !important"},disabled:s}),o.jsx(H,{id:"scan-identifier-radio",value:"scan",label:F.getString("LabelScanIdentifier"),disabled:s}),o.jsx(z,{id:"identifier-min",disabled:s||n!=="random"&&n!=="scan",required:n==="random"||n==="scan",fullWidth:!0,value:t??"",error:y,onErrorChange:p,startAdornment:F.getString("LabelFrom"),onBlur:_,sxStartAdornment:{marginBottom:.8}}),o.jsx(z,{id:"identifier-max",disabled:s||n!=="random"&&n!=="scan",required:n==="random"||n==="scan",fullWidth:!0,value:r??"",error:g,onErrorChange:v,startAdornment:F.getString("LabelTo"),onBlur:D,sxStartAdornment:{marginBottom:.8}})]})]})})}function ot({settings:e,onSettingsChange:n,onErrorsChange:t=void 0,canIdentifierGeneratorSettingsError:r=void 0,disabled:a=!1,collapsible:i=!1,collapsed:b=!1,collapsedChange:d=void 0,showSelectMessageDialogChange:s,showSignalValuesTable:c}){var w,y,p;const h=E.useNumericRadix(),S=l.useMemo(()=>{var g,v,u;return((u=(v=(g=e.frame)==null?void 0:g.canFrameFlags)==null?void 0:v.flags)==null?void 0:u.includes(P.CanFrameFlag.CAN_FRAME_FLAG_EXT))===!0?"extended":"standard"},[(y=(w=e.frame)==null?void 0:w.canFrameFlags)==null?void 0:y.flags]),N=l.useMemo(()=>{var v;return`${(((v=e.frame)==null?void 0:v.id)??0).toString(h).toUpperCase()}`},[h,(p=e.frame)==null?void 0:p.id]),j=l.useMemo(()=>`${(e.identifierMin??0).toString(h).toUpperCase()}`,[h,e.identifierMin]),F=l.useMemo(()=>`${(e.identifierMax??0).toString(h).toUpperCase()}`,[h,e.identifierMax]),k=l.useMemo(()=>e.randomIdentifier===!0?"random":e.scanIdentifier===!0?"scan":"constant",[e.randomIdentifier,e.scanIdentifier]),M=l.useCallback((g,v,u,T,L)=>{var $,C,f,I;const B=L,R=parseInt(g,h),_=(C=($=e.frame)==null?void 0:$.canFrameFlags)!=null&&C.flags?{flags:[...e.frame.canFrameFlags.flags]}:{flags:[]},D=_.flags.indexOf(P.CanFrameFlag.CAN_FRAME_FLAG_STD),W=parseInt(u,h),U=parseInt(T,h),O=_.flags.indexOf(P.CanFrameFlag.CAN_FRAME_FLAG_EXT);if(D!==-1&&_.flags.splice(D,1),O!==-1&&_.flags.splice(O,1),B==="extended"?_.flags.push(P.CanFrameFlag.CAN_FRAME_FLAG_EXT):B==="standard"&&_.flags.push(P.CanFrameFlag.CAN_FRAME_FLAG_STD),R!==((f=e.frame)==null?void 0:f.id)||!te(_,(I=e.frame)==null?void 0:I.canFrameFlags)||v!==k||W!==e.identifierMin||U!==e.identifierMax){const x={...e};x.frame=e.frame?{...e.frame}:P.WriteFrame.fromPartial({id:0,canFrameFlags:{flags:[P.CanFrameFlag.CAN_FRAME_FLAG_STD]},data:Array.from({length:8},()=>0)}),x.frame.id=R,x.frame.canFrameFlags=_,v==="constant"?(x.randomIdentifier=!1,x.scanIdentifier=!1):v==="random"?(x.randomIdentifier=!0,x.scanIdentifier=!1):v==="scan"&&(x.randomIdentifier=!1,x.scanIdentifier=!0),x.identifierMin=W,x.identifierMax=U,n(x)}},[k,h,n,e]);return o.jsx(Ne,{canIdentifier:N,identifierGeneratorType:k,minCanIdentifier:j,maxCanIdentifier:F,canIdentifierType:S,onChange:M,onErrorsChange:t,canIdentifierGeneratorSettingsError:r,disabled:a,collapsible:i,collapsed:b,collapsedChange:d,showSelectMessageDialogChange:s,showSignalValuesTable:c})}function it(e,n,t,r){const[a,i]=l.useState(""),[b,d]=l.useState([]);return l.useEffect(()=>{d(s=>{var h;const c=(h=t==null?void 0:t.sources)==null?void 0:h.filter(S=>{var j,F;const N=(F=(j=r==null?void 0:r.find(k=>{var M;return k.nodeId===((M=S.baseNode)==null?void 0:M.identifier)}))==null?void 0:j.errorStatus)==null?void 0:F.errors;return N===void 0||N===""?S.baseNode&&S.channelSettings&&S.channelSettings.canConfiguration&&(!n||S.channelSettings.canConfiguration.silentMode!==!0):!1}).map(S=>({value:S.channelSettings.channelNumber,displayText:S.baseNode.name,canFdMode:S.channelSettings.canConfiguration.canMode>0,identifier:S.baseNode.identifier}));return!c||te(s,c)?s:c})},[n,t==null?void 0:t.sources,r]),l.useEffect(()=>{const s=b.find(c=>c.identifier===e);i(s?c=>s.value===c?c:s.value:"")},[e,b]),{channelOptions:b,selectedChannelOption:a}}function ut({channelIdentifier:e,onChannelIdentifierChange:n,hideSilentChannels:t=!1,hideSectionControl:r=!1,disabled:a=!1,collapsible:i=!1,collapsed:b=!1,collapsedChange:d=void 0}){var F;const s=E.useMeasurementSetup(),c=E.useMeasurementStatus(),h=E.useLocalizedStrings(),{channelOptions:S,selectedChannelOption:N}=it(e,t===!0,s,c),j=l.useCallback(k=>{const M=S.find(p=>p.value===k),w=(M==null?void 0:M.identifier)??"",y=(M==null?void 0:M.canFdMode)===!0;n(w,y)},[S,n]);return r===!0?o.jsx(ne,{id:"channel",label:h.getString("LabelChannel"),fullWidth:!0,value:N,onChange:j,options:S,required:!0,disabled:a}):o.jsx(Q,{text:h.getString("LabelChannel"),summary:N===""||(F=S.find(k=>k.value===N))==null?void 0:F.displayText,collapsible:i,collapsed:b,collapsedChange:d,children:o.jsx(ne,{id:"channel",label:h.getString("LabelChannel"),fullWidth:!0,value:N,onChange:j,options:S,required:!0,disabled:a})})}const dt=m.styled(m.Box)(()=>({height:"100%",width:"100%",padding:"4px",overflow:"auto"}));exports.CanKingDataProvider=E.CanKingDataProvider;exports.DevicesContext=E.DevicesContext;exports.LocalizedStrings=E.LocalizedStrings;exports.LogMessagesContext=E.LogMessagesContext;exports.MeasurementSetupContext=E.MeasurementSetupContext;exports.MeasurementStatusContext=E.MeasurementStatusContext;exports.OnlineStatusContext=E.OnlineStatusContext;exports.RunningPeriodicTransmissionsContext=E.RunningPeriodicTransmissionsContext;exports.UserSettingsContext=E.UserSettingsContext;exports.WorkspacePanesContext=E.WorkspacePanesContext;exports.addEventListener=E.addEventListener;exports.removeEventListener=E.removeEventListener;exports.CanChannelSelectControl=ut;exports.CanIdentifierControl=ye;exports.CanIdentifierFrameControl=lt;exports.CanIdentifierGeneratorControl=Ne;exports.CanIdentifierGeneratorSettingsControl=ot;exports.CheckboxControl=re;exports.ColumnItemControl=pe;exports.ContextMenu=st;exports.DropdownButton=Ce;exports.DropdownButtonTextItems=On;exports.DropdownPanel=Wn;exports.FillBox=dt;exports.FormControlRow=J;exports.InlineEditor=Kn;exports.NumberRangeControl=qn;exports.OneLineButton=q;exports.RadioControl=H;exports.RadioGroupControl=Se;exports.SectionControl=Q;exports.SelectControl=ne;exports.SizedBox=Jn;exports.TableControl=Zn;exports.TabsPanel=Vn;exports.TextControl=ve;exports.ToolbarControl=at;exports.ValidateableTextControl=z;exports.useColumnItem=he;exports.useColumnItems=xe;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const _=require("./index.js"),r=require("react/jsx-runtime"),s=require("react"),b=require("@mui/material"),be=require("./icons.js"),qe=require("uuid"),le=require("@mui/x-tree-view"),He=require("./ipc.js"),ue=require("fast-deep-equal");require("long");const Z=require("./measurement_settings.js");function Ke(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const n in e)if(n!=="default"){const a=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,a.get?a:{enumerable:!0,get:()=>e[n]})}}return t.default=e,Object.freeze(t)}const fe=Ke(s);function Ce({id:e=void 0,label:t,checked:n,onChange:a,disabled:l=!1,size:o="small",sx:c=void 0}){const u=s.useCallback(i=>{if(i.key==="Enter"&&!i.ctrlKey&&!i.altKey&&!i.shiftKey){i.preventDefault();return}},[]);return r.jsx(b.FormControlLabel,{id:e,"aria-label":e,disabled:l,"aria-disabled":l,control:r.jsx(b.Checkbox,{size:o,checked:n,onChange:(i,d)=>a(d),onKeyDown:u}),label:t,slotProps:{typography:{noWrap:!0}},sx:c})}var xe=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Ee(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function Qe(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var je=Qe,Xe=typeof xe=="object"&&xe&&xe.Object===Object&&xe,Ye=Xe,Je=Ye,Ze=typeof self=="object"&&self&&self.Object===Object&&self,Ve=Je||Ze||Function("return this")(),Re=Ve,Ge=Re,et=function(){return Ge.Date.now()},tt=et,nt=/\s/;function at(e){for(var t=e.length;t--&&nt.test(e.charAt(t)););return t}var st=at,rt=st,lt=/^\s+/;function it(e){return e&&e.slice(0,rt(e)+1).replace(lt,"")}var ot=it,ut=Re,dt=ut.Symbol,we=dt,Me=we,ye=Object.prototype,ct=ye.hasOwnProperty,ft=ye.toString,ce=Me?Me.toStringTag:void 0;function mt(e){var t=ct.call(e,ce),n=e[ce];try{e[ce]=void 0;var a=!0}catch{}var l=ft.call(e);return a&&(t?e[ce]=n:delete e[ce]),l}var gt=mt,xt=Object.prototype,ht=xt.toString;function bt(e){return ht.call(e)}var St=bt,Ie=we,pt=gt,Ct=St,jt="[object Null]",Nt="[object Undefined]",Fe=Ie?Ie.toStringTag:void 0;function vt(e){return e==null?e===void 0?Nt:jt:Fe&&Fe in Object(e)?pt(e):Ct(e)}var Mt=vt;function It(e){return e!=null&&typeof e=="object"}var Ft=It,kt=Mt,$t=Ft,Lt="[object Symbol]";function Et(e){return typeof e=="symbol"||$t(e)&&kt(e)==Lt}var Rt=Et,wt=ot,ke=je,yt=Rt,$e=NaN,At=/^[-+]0x[0-9a-f]+$/i,Wt=/^0b[01]+$/i,Bt=/^0o[0-7]+$/i,_t=parseInt;function Ot(e){if(typeof e=="number")return e;if(yt(e))return $e;if(ke(e)){var t=typeof e.valueOf=="function"?e.valueOf():e;e=ke(t)?t+"":t}if(typeof e!="string")return e===0?e:+e;e=wt(e);var n=Wt.test(e);return n||Bt.test(e)?_t(e.slice(2),n?2:8):At.test(e)?$e:+e}var Pt=Ot,Ut=je,pe=tt,Le=Pt,Tt="Expected a function",Dt=Math.max,zt=Math.min;function qt(e,t,n){var a,l,o,c,u,i,d=0,g=!1,f=!1,I=!0;if(typeof e!="function")throw new TypeError(Tt);t=Le(t)||0,Ut(n)&&(g=!!n.leading,f="maxWait"in n,o=f?Dt(Le(n.maxWait)||0,t):o,I="trailing"in n?!!n.trailing:I);function N(k){var S=a,F=l;return a=l=void 0,d=k,c=e.apply(F,S),c}function x(k){return d=k,u=setTimeout($,t),g?N(k):c}function m(k){var S=k-i,F=k-d,E=t-S;return f?zt(E,o-F):E}function h(k){var S=k-i,F=k-d;return i===void 0||S>=t||S<0||f&&F>=o}function $(){var k=pe();if(h(k))return p(k);u=setTimeout($,m(k))}function p(k){return u=void 0,I&&a?N(k):(a=l=void 0,c)}function L(){u!==void 0&&clearTimeout(u),d=0,a=i=l=u=void 0}function C(){return u===void 0?c:p(pe())}function v(){var k=pe(),S=h(k);if(a=arguments,l=this,i=k,S){if(u===void 0)return x(i);if(f)return clearTimeout(u),u=setTimeout($,t),N(i)}return u===void 0&&(u=setTimeout($,t)),c}return v.cancel=L,v.flush=C,v}var Ae=qt;const Ht=Ee(Ae);var Kt=Ae,Qt=je,Xt="Expected a function";function Yt(e,t,n){var a=!0,l=!0;if(typeof e!="function")throw new TypeError(Xt);return Qt(n)&&(a="leading"in n?!!n.leading:a,l="trailing"in n?!!n.trailing:l),Kt(e,t,{leading:a,maxWait:t,trailing:l})}var Jt=Yt;const Zt=Ee(Jt),Vt=(e,t,n,a)=>{switch(t){case"debounce":return Ht(e,n,a);case"throttle":return Zt(e,n,a);default:return e}},Gt=e=>{const t=fe.useRef(e);return fe.useEffect(()=>{t.current=e}),fe.useMemo(()=>(...n)=>{var a;return(a=t.current)===null||a===void 0?void 0:a.call(t,...n)},[])},en=e=>{const[t,n]=fe.useState((e==null?void 0:e.current)||null);return e&&setTimeout(()=>{e.current!==t&&n(e.current)},0),{refProxy:fe.useMemo(()=>new Proxy(l=>{l!==t&&n(l)},{get(l,o){return o==="current"?t:l[o]},set(l,o,c){return o==="current"?n(c):l[o]=c,!0}}),[t]),refElement:t,setRefElement:n}},tn=(e,t)=>t==="border-box"?{width:e.borderBoxSize[0].inlineSize,height:e.borderBoxSize[0].blockSize}:t==="content-box"?{width:e.contentBoxSize[0].inlineSize,height:e.contentBoxSize[0].blockSize}:{width:e.contentRect.width,height:e.contentRect.height};function nn({skipOnMount:e=!1,refreshMode:t,refreshRate:n=1e3,refreshOptions:a,handleWidth:l=!0,handleHeight:o=!0,targetRef:c,observerOptions:u,onResize:i}={}){const d=s.useRef(e),g=Gt(i),[f,I]=s.useState({width:void 0,height:void 0}),{refProxy:N,refElement:x}=en(c),{box:m}=u||{},h=s.useCallback(p=>{if(!l&&!o)return;if(d.current){d.current=!1;return}const L=(C,v)=>l&&C.width!==v.width||o&&C.height!==v.height;p.forEach(C=>{const v=tn(C,m);I(k=>L(k,v)?(g==null||g({width:v.width,height:v.height,entry:C}),v):k)})},[l,o,d,m]),$=s.useCallback(Vt(h,t,n,a),[h,t,n,a]);return s.useEffect(()=>{let p;return x?(p=new window.ResizeObserver($),p.observe(x,u)):(f.width||f.height)&&(g==null||g({width:null,height:null,entry:null}),I({width:void 0,height:void 0})),()=>{var L,C,v;(L=p==null?void 0:p.disconnect)===null||L===void 0||L.call(p),(v=(C=$).cancel)===null||v===void 0||v.call(C)}},[$,x]),Object.assign({ref:N},f)}const ae=()=>{const{ref:e,width:t}=nn();return{ref:e,width:t}},de=(...e)=>{const[t,n]=s.useState();return s.useEffect(()=>{const a=e.filter(l=>l.width!==void 0).map(l=>Number(l.width.toFixed(1)));if(a.length===e.length){const l=Math.max(...a);n(o=>o===void 0?l:o)}},[e]),t};function se({columnItem:e,width:t=void 0,children:n=void 0}){return r.jsx("div",{ref:e.ref,children:r.jsx(b.Box,{sx:{width:t},children:n})})}const Y=b.styled(b.Button)(()=>({whiteSpace:"nowrap",minWidth:"max-content"}));function an({items:e,onSelect:t,onClose:n=void 0}){const a=s.useCallback((l,o)=>{t(l,o),n&&n()},[n,t]);return r.jsx(r.Fragment,{children:e.map(l=>r.jsx(b.MenuItem,{onClick:()=>a(l.key,l.text),children:l.text},l.key))})}function We({id:e="dropdown-button",startIcon:t=void 0,endIcon:n=void 0,text:a=void 0,variant:l="outlined",color:o=void 0,size:c="medium",disabled:u=!1,children:i}){const[d,g]=s.useState(null),f=!!d,I=s.useCallback(m=>{g(m.currentTarget)},[]),N=s.useCallback(()=>{g(null)},[]),x=s.cloneElement(s.Children.only(i),{onClose:N});return r.jsxs(r.Fragment,{children:[!a&&r.jsx(b.IconButton,{id:e,"data-testid":e,"aria-controls":f?`${e}-popover`:void 0,"aria-haspopup":"true","aria-expanded":f?"true":void 0,onClick:I,size:c,color:o,disabled:u,children:t}),a&&r.jsx(Y,{id:e,"data-testid":e,"aria-controls":f?`${e}-popover`:void 0,"aria-haspopup":"true","aria-expanded":f?"true":void 0,variant:l,disableElevation:!0,onClick:I,startIcon:t,endIcon:n??r.jsx(be.LineArrowDownIcon,{}),size:c,color:o,disabled:u,children:a}),r.jsx(b.Popover,{id:`${e}-popover`,"aria-labelledby":e,anchorEl:d,open:f,onClose:N,anchorOrigin:{vertical:"bottom",horizontal:"left"},transformOrigin:{vertical:"top",horizontal:"left"},children:x})]})}const sn=b.styled("div")(({top:e,left:t,width:n,height:a})=>({top:e,left:t,width:n,height:a,position:"absolute",zIndex:1})),rn=b.styled("div")(({top:e,left:t,width:n,height:a,position:l,theme:o})=>({top:e,left:t,width:n,height:a,position:"absolute",zIndex:2,color:o.palette.primary.contrastText,backgroundColor:o.palette.primary.main,display:"flex",flexDirection:l==="left"||l==="right"?"column":"row",borderTopLeftRadius:l==="top"||l==="left"?0:8,borderTopRightRadius:l==="top"||l==="right"?0:8,borderBottomRightRadius:l==="bottom"||l==="right"?0:8,borderBottomLeftRadius:l==="bottom"||l==="left"?0:8})),he=8;function ln({id:e=void 0,position:t,parentWidth:n,parentHeight:a,maxLength:l,dropDownSize:o,autoHideTimeout:c=0,forceShow:u=!1,children:i=null}){const d=s.useMemo(()=>{switch(t){case"left":case"right":return Math.min(l,a);case"top":case"bottom":return Math.min(l,n);default:return l}},[l,a,n,t]),g=s.useMemo(()=>{switch(t){case"left":case"right":return(a-d)/2;case"top":return 0;case"bottom":return a-he;default:return 0}},[d,a,t]),f=s.useMemo(()=>{switch(t){case"left":return 0;case"right":return n-he;case"top":case"bottom":return(n-d)/2;default:return 0}},[d,n,t]),I=s.useMemo(()=>{switch(t){case"left":case"right":return he;case"top":case"bottom":return d;default:return 0}},[d,t]),N=s.useMemo(()=>{switch(t){case"left":case"right":return d;case"top":case"bottom":return he;default:return 0}},[d,t]),x=s.useMemo(()=>{switch(t){case"left":case"right":return(a-d)/2;case"top":return 0;case"bottom":return a-o;default:return 0}},[o,d,a,t]),m=s.useMemo(()=>{switch(t){case"left":return 0;case"right":return n-o;case"top":case"bottom":return(n-d)/2;default:return 0}},[o,d,n,t]),h=s.useMemo(()=>{switch(t){case"left":case"right":return o;case"top":case"bottom":return d;default:return 0}},[o,d,t]),$=s.useMemo(()=>{switch(t){case"left":case"right":return d;case"top":case"bottom":return o;default:return 0}},[o,d,t]),[p,L]=s.useState(!1),C=s.useCallback(k=>{k.buttons===0&&c&&L(!0)},[c]),v=s.useCallback(()=>{L(!1)},[]);return s.useEffect(()=>{let k;return p&&c&&(k=setTimeout(()=>L(!1),c)),()=>{k&&clearTimeout(k)}},[c,p]),r.jsxs(r.Fragment,{children:[r.jsx(sn,{id:e,top:g,left:f,width:I,height:N,"aria-haspopup":"true",onMouseEnter:C}),(p||u===!0)&&r.jsx(rn,{top:x,left:m,width:h,height:$,position:t,onMouseLeave:v,children:i})]})}function re({children:e,fullWidth:t=!0,spacing:n="4px",alignItems:a="center"}){return r.jsx(b.FormControl,{margin:"dense",fullWidth:t,variant:"standard",children:r.jsx(b.Stack,{direction:"row",spacing:n,alignItems:a,children:e})})}const on=b.styled("input")(({variant:e,theme:t})=>({...t.typography[e]})),un=b.styled("span")(({variant:e,theme:t})=>({...t.typography[e]}));function dn({value:e,onChange:t,ariaLabel:n=void 0,variant:a="body1"}){const l=s.useRef(null),[o,c]=s.useState(e),u=s.useCallback(g=>c(g.target.value),[]),i=s.useCallback(g=>{(g.key==="Enter"||g.key==="Escape")&&(g.key==="Escape"&&(c(e),g.currentTarget.value=e),g.currentTarget.blur())},[e]),d=s.useCallback(g=>{t(g.target.value)},[t]);return s.useEffect(()=>{var g;(g=l.current)==null||g.focus()},[]),r.jsx(on,{ref:l,variant:a??"body1",type:"text","aria-label":n,value:o,onChange:u,onKeyDown:i,onBlur:d})}function cn({editMode:e,value:t,onValueChange:n,ariaLabel:a=void 0,variant:l="body1"}){return r.jsxs(r.Fragment,{children:[e&&r.jsx(dn,{ariaLabel:a,value:t,onChange:n,variant:l}),!e&&r.jsx(un,{variant:l??"body1",children:t})]})}function Be({id:e=void 0,label:t=void 0,helperText:n="",value:a,onChange:l=void 0,onBlur:o=void 0,disabled:c=!1,error:u=!1,required:i=!1,margin:d="dense",size:g="small",fullWidth:f=!1,inputMode:I=void 0,pattern:N=void 0,startAdornment:x=void 0,endAdornment:m=void 0,sx:h=void 0,sxStartAdornment:$=void 0,sxEndAdornment:p=void 0}){const L=s.useCallback(S=>{l&&l(S.target.value)},[l]),C=s.useCallback(S=>{if(S.key==="Enter"&&!S.ctrlKey&&!S.altKey&&!S.shiftKey){S.preventDefault(),S.stopPropagation(),document.activeElement instanceof HTMLElement&&document.activeElement.blur();return}},[]),v=$??{marginBottom:1},k=p??{marginBottom:1};return r.jsx(b.TextField,{id:e,"aria-label":e,type:"text",label:t,helperText:n,margin:d,size:g,fullWidth:f,variant:"standard",value:a,onChange:L,onBlur:o,disabled:c,"aria-disabled":c,error:u,required:i,slotProps:{input:{startAdornment:x?r.jsx(b.InputAdornment,{position:"start",sx:{...v},children:x}):null,endAdornment:m?r.jsx(b.InputAdornment,{position:"end",sx:{...k},children:m}):null},htmlInput:{inputMode:I,pattern:N}},sx:h,onKeyDown:C})}function V({id:e,label:t=void 0,helperText:n="",value:a,onChange:l=void 0,onBlur:o=void 0,disabled:c=!1,required:u=!1,margin:i="dense",size:d="small",fullWidth:g=!1,inputMode:f=void 0,pattern:I=void 0,startAdornment:N=void 0,endAdornment:x=void 0,sx:m=void 0,sxStartAdornment:h=void 0,sxEndAdornment:$=void 0,error:p=void 0,onErrorChange:L=void 0,onValidate:C=void 0,numberType:v=void 0,minValue:k=void 0,maxValue:S=void 0}){const[F,E]=s.useState(a),[A,y]=s.useState(p!==void 0?p:!1);s.useEffect(()=>{E(j=>a!==j?a:j)},[a]),s.useEffect(()=>{y(j=>p!==void 0&&p!==j?p:j)},[p]);const R=s.useCallback(j=>{const B=Number.parseInt(j,j.startsWith("0x")?16:10);let O=Number.isNaN(B);return O||(O=k!==void 0&&B<k),O||(O=S!==void 0&&B>S),{val:j,err:O}},[S,k]),U=s.useCallback(j=>{let B=!1;if(j.endsWith(",")||j.endsWith("."))return B=!0,{val:j,err:B};const O=Number.parseFloat(j.replace(",","."));return B=Number.isNaN(O),B||(B=k!==void 0&&O<k),B||(B=S!==void 0&&O>S),{val:O.toString(),err:B}},[S,k]),K=s.useCallback(j=>v==="int"?R(j):U(j),[v,U,R]),P=s.useCallback((j,B)=>{let O=j,T=!1;return!u&&(O===void 0||O==="")?{val:O,err:T}:(v!==void 0&&({val:O,err:T}=K(j)),!T&&C&&({val:O,err:T}=C(O,B)),{val:O,err:T})},[C,K]),w=s.useCallback(j=>{const{val:B,err:O}=P(j,"change");y(O),E(O?j:B),!O&&l&&l(B)},[l,P]),M=s.useCallback(()=>{const{val:j,err:B}=P(F,"blur");y(B),!B&&o&&o(j)},[o,P,F]);return s.useEffect(()=>{L&&L(A)},[A,L]),s.useEffect(()=>{let j=!1;c||(j=P(F,"blur").err),y(j)},[c]),r.jsx(Be,{id:e,label:t,helperText:n,value:F,onChange:w,onBlur:M,disabled:c,error:A,required:u,margin:i,size:d,fullWidth:g,inputMode:f,pattern:I,startAdornment:N,endAdornment:x,sx:m,sxStartAdornment:h,sxEndAdornment:$})}function fn({minValue:e,maxValue:t,onChange:n=void 0,onBlur:a=void 0,minError:l=void 0,onMinErrorChange:o=void 0,maxError:c=void 0,onMaxErrorChange:u=void 0,onMinValidate:i=void 0,onMaxValidate:d=void 0,minDisabled:g=!1,maxDisabled:f=!1,unit:I=void 0,lowerLimit:N=void 0,upperLimit:x=void 0}){const m=_.useLocalizedStrings(),h=Number.parseInt(e),$=Number.parseInt(t),[p,L]=s.useState(e.toString()),[C,v]=s.useState(t.toString()),[k,S]=s.useState(l===!0||Number.isNaN(h)||h<(N??0)||x&&h>x||!Number.isNaN($)&&h>=$),[F,E]=s.useState(c===!0||Number.isNaN($)||$<(N??0)||x&&$>x||!Number.isNaN(h)&&h>=$);s.useEffect(()=>{L(w=>e.toString()!==w?e.toString():w)},[e]),s.useEffect(()=>{S(w=>l!==void 0&&l!==w?l:w)},[l]),s.useEffect(()=>{v(w=>t.toString()!==w?t.toString():w)},[t]),s.useEffect(()=>{E(w=>c!==void 0&&c!==w?c:w)},[c]);const A=s.useCallback(w=>{const M=Number.parseInt(w,w.startsWith("0x")?16:10),j=Number.parseInt(C),B=Number.isNaN(M)||M<(N??0)||x&&M>x||!Number.isNaN(j)&&M>=j;return{val:w,err:B}},[C,N,x]),y=s.useCallback(w=>{const M=Number.parseInt(w,w.startsWith("0x")?16:10),j=Number.parseInt(p),B=Number.isNaN(M)||M<(N??0)||x&&M>x||!Number.isNaN(j)&&j>=M;return{val:w,err:B}},[p,N,x]),R=s.useCallback(w=>{let{val:M,err:j}=A(w);if(!j&&i&&({val:M,err:j}=i(w,"change")),(l===void 0||l===!1)&&S(j),j)n&&n(w,C);else{const B=Number.parseInt(M,M.startsWith("0x")?16:10).toString();L(B),n&&n(B,C)}},[A,i,l,n,C]),U=s.useCallback(w=>{let{val:M,err:j}=A(w);!j&&i&&({val:M,err:j}=i(M,"blur")),S(j),!j&&a&&a(M,C)},[A,i,a,C]),K=s.useCallback(w=>{let{val:M,err:j}=y(w);if(!j&&d&&({val:M,err:j}=d(w,"change")),(c===void 0||c===!1)&&E(j),j)n&&n(p,w);else{const B=Number.parseInt(M,M.startsWith("0x")?16:10).toString();v(B),n&&n(p,B)}},[y,d,c,n,p]),P=s.useCallback(w=>{let{val:M,err:j}=y(w);!j&&d&&({val:M,err:j}=d(M,"blur")),E(j),!j&&a&&a(p,M)},[y,d,a,p]);return s.useEffect(()=>{o&&o(k),u&&u(F)},[F,k,u,o]),r.jsxs(r.Fragment,{children:[r.jsx(V,{id:"min-value",disabled:g,inputMode:"numeric",fullWidth:!0,value:p,onChange:R,onBlur:U,startAdornment:m.getString("LabelFrom"),endAdornment:I,numberType:"int",error:k,onErrorChange:S}),r.jsx(V,{id:"max-value",disabled:f,inputMode:"numeric",fullWidth:!0,value:C,onChange:K,onBlur:P,startAdornment:m.getString("LabelTo"),endAdornment:I,numberType:"int",error:F,onErrorChange:E})]})}function ie({id:e=void 0,label:t,value:n,disabled:a=!1,size:l="small",sx:o=void 0}){return r.jsx(b.FormControlLabel,{id:e,"aria-label":e,value:n,disabled:a,"aria-disabled":a,control:r.jsx(b.Radio,{size:l}),label:t,componentsProps:{typography:{noWrap:!0}},sx:o})}function Ne({children:e,id:t=void 0,value:n,onChange:a}){return r.jsx(b.RadioGroup,{id:t,"aria-label":t,value:n,onChange:(l,o)=>a(o),children:e})}const mn=b.styled(b.Box,{shouldForwardProp:e=>e!=="collapsed"})(({collapsed:e,theme:t})=>({paddingTop:e?"4px":"8px",paddingLeft:"2px",paddingRight:"2px",paddingBottom:e?"0px":"2px",marginTop:"2px","&:hover, &:focus-within":{background:t.palette.action.hover}})),_e=b.styled("span")(({theme:e})=>({color:e.palette.divider})),gn=b.styled(_e)(()=>({"&:hover":{cursor:"pointer"}})),xn=b.styled(b.IconButton)(({theme:e})=>({color:e.palette.divider,padding:"0px"}));function oe({textAlign:e="left",text:t=void 0,summary:n=void 0,children:a=void 0,collapsible:l=!1,collapsed:o=!1,collapsedChange:c=void 0}){const u=_.useLanguage(),i=_.useLocalizedStrings(),[d,g]=s.useState(o);s.useEffect(()=>g(o),[o]);const f=s.useCallback(I=>{c?c(I):g(I)},[c]);return r.jsxs(mn,{collapsed:d,children:[t&&r.jsx(b.Divider,{textAlign:e,variant:"fullWidth",children:l?r.jsxs(b.Stack,{direction:"row",spacing:1,alignItems:"center",children:[r.jsxs(gn,{onClick:()=>f(!d),children:[t.toLocaleUpperCase(u),d&&n?` (${n})`:""]}),r.jsx(b.Tooltip,{title:d?i==null?void 0:i.getString("TooltipExpandSection",t):i==null?void 0:i.getString("TooltipCollapseSection",t),children:r.jsx(xn,{onClick:()=>f(!d),children:d?r.jsx(be.LineArrowDownIcon,{}):r.jsx(be.LineArrowUpIcon,{})})})]}):r.jsx(_e,{children:t.toLocaleUpperCase(u)})}),!d&&a]})}function me({id:e,label:t,showLabel:n=!1,helperText:a="",options:l,value:o,onChange:c,disabled:u=!1,required:i=!1,margin:d="dense",size:g="small",fullWidth:f=!1,minWidth:I=void 0,prefixTextWithValue:N=!1}){const x=s.useCallback(L=>{typeof L.target.value=="string"?c(""):c(L.target.value)},[c]),m=s.useCallback(L=>L.map(C=>r.jsx(b.MenuItem,{"aria-label":`menu-item-${C.value}`,value:C.value,children:N?`${C.value} - ${C.displayText}`:C.displayText},C.value)),[N]),h=s.useCallback((L,C)=>{const v=[r.jsx(b.ListSubheader,{color:"primary",children:L},L)];return v.push(...m(C)),v},[m]),$=s.useCallback(L=>{const C=[];return L.forEach((v,k)=>{C.push(...h(k,v))}),C},[h]),p=s.useCallback(L=>{let C="";if(l instanceof Map)l.forEach((v,k)=>{if(C===""){const S=v.find(F=>F.value===L);S&&(C=N?`${S.value} - ${k} - ${S.displayText}`:`${k} - ${S.displayText}`)}});else{const v=l.find(k=>k.value===L);v&&(C=N?`${v.value} - ${v.displayText}`:v.displayText)}return C===""&&(C=i?`${t} *`:t),C},[t,l,N,i]);return r.jsxs(b.FormControl,{fullWidth:f,variant:"standard",sx:{minWidth:I},margin:d,size:g,children:[n&&r.jsx(b.InputLabel,{id:`${e}-label`,children:i?`${t} *`:t}),r.jsxs(b.Select,{labelId:`${e}-label`,"aria-label":e,id:e,value:o,renderValue:p,onChange:x,displayEmpty:!n,disabled:u,"aria-disabled":u,children:[l instanceof Map&&$(l),l instanceof Array&&m(l)]}),a&&r.jsx(b.FormHelperText,{children:a})]})}const Se=e=>{const[t,n]=s.useState([]);return s.useEffect(()=>{const a=()=>{He.getFrameDefinitions(e).then(o=>{const c=[];for(let u=0;u<o.length;u+=1){let i;const d=o[u];if(d.messageQualifiedName!==void 0){const g=d.messageQualifiedName.indexOf(".");if(g!==-1){const f=d.messageQualifiedName.substring(0,g);i=c.find(I=>I.name===f),i||(i={name:f,messages:[]},c.push(i))}}i&&i.messages.push(d)}return n(c),c})},l=qe.v4();return _.addEventListener(l,"meas-setup-changed",a),a(),()=>{_.removeEventListener(l,"meas-setup-changed")}},[e]),t};function hn({parentDialogTitle:e=void 0,open:t,onSelect:n,nodeIdentifier:a=void 0,onClose:l,modal:o=!1}){const c=_.useLocalizedStrings(),u=Se(a),i=s.useMemo(()=>e?`${e} > ${c.getString("DialogHeaderSelectMessage")}`:c.getString("DialogHeaderSelectMessage"),[c,e]),d=s.useCallback(f=>{if(f!==null)for(let I=0;I<u.length;I+=1){const x=u[I].messages.find(m=>m.messageQualifiedName===f);x&&(n(x),l&&l())}},[u,l,n]),g=s.useMemo(()=>u.map(f=>f.name),[u]);return r.jsxs(b.Dialog,{open:t,fullScreen:o!==!0,fullWidth:o===!0,maxWidth:o===!0?"md":void 0,children:[r.jsx(b.DialogTitle,{className:"draggable",children:i}),r.jsx(b.DialogContent,{dividers:!0,children:r.jsx(le.SimpleTreeView,{"aria-label":"frame-selector",onSelectedItemsChange:(f,I)=>d(I),multiSelect:!1,defaultExpandedItems:g,sx:{height:400},children:u.map(f=>r.jsx(le.TreeItem,{itemId:f.name,label:f.name,children:f.messages.map(I=>r.jsx(le.TreeItem,{itemId:I.messageQualifiedName,label:I.messageName},I.messageQualifiedName))},f.name))})}),r.jsx(b.DialogActions,{children:r.jsx(Y,{onClick:l,variant:"outlined",size:"large",children:c.getString("ButtonBack")})})]})}function Oe({parentDialogTitle:e=void 0,nodeIdentifier:t=void 0,open:n,multiSelect:a=!1,checkboxSelection:l=!1,onSelect:o=void 0,onMultiSelect:c=void 0,onClose:u,selectedMessages:i=void 0,selectedSignals:d=void 0}){const g=_.useLocalizedStrings(),f=Se(t),I=s.useMemo(()=>e?`${e} > ${g.getString("DialogHeaderSelectSignal")}`:g.getString("DialogHeaderSelectSignal"),[g,e]),[N,x]=s.useState(()=>i?f.map(S=>S.messages.filter(F=>i.includes(F.messageQualifiedName))).flat():[]);s.useEffect(()=>{if(i){const S=f.map(F=>F.messages.filter(E=>i.includes(E.messageQualifiedName))).flat();x(S)}},[i,f]);const[m,h]=s.useState(()=>d?f.map(S=>S.messages.filter(F=>F.signals&&F.signals.find(E=>d.includes(E.qualifiedName)))).flat().map(S=>S.signals.filter(F=>d.includes(F.qualifiedName))).flat():[]);s.useEffect(()=>{if(d){const S=f.map(F=>F.messages.filter(E=>E.signals&&E.signals.find(A=>d.includes(A.qualifiedName)))).flat().map(F=>F.signals.filter(E=>d.includes(E.qualifiedName))).flat();h(S)}},[d,f]);const[$,p]=s.useState(!1),L=s.useMemo(()=>{if(a)return[...N.map(S=>S.messageQualifiedName),...m.map(S=>S.qualifiedName)]},[a,N,m]),C=s.useCallback(S=>{if(S===null)return;if(!a)for(let E=0;E<f.length;E+=1){const y=f[E].messages.find(R=>R.signals&&R.signals.findIndex(U=>U.qualifiedName===S)!==-1);if(y!=null&&y.signals){const R=y.signals.find(U=>U.qualifiedName===S);if(R&&o&&(o(y,R),u)){u();return}}}let F=[];x(E=>{let A=[];for(let y=0;y<f.length;y+=1){const R=f[y],U=R.messages.filter(M=>M.signals&&M.signals.length>0&&M.signals.every(j=>S.includes(j.qualifiedName))),K=R.messages.filter(M=>M.signals&&M.signals.some(j=>S.includes(j.qualifiedName)));if(K){const M=K.map(j=>j.signals).flat().filter(j=>S.includes(j.qualifiedName));M&&(A=[...new Set(A.concat(U))],F=[...new Set(F.concat(M))])}const P=R.messages.filter(M=>M.signals.length>0&&S.includes(M.messageQualifiedName)&&!E.some(j=>j.messageQualifiedName===M.messageQualifiedName));if(P.length>0){const M=P.map(j=>j.signals).flat();M&&(A=[...new Set(A.concat(P))],F=[...new Set(F.concat(M))])}const w=R.messages.filter(M=>!S.includes(M.messageQualifiedName)&&E.some(j=>j.messageQualifiedName===M.messageQualifiedName));if(w.length>0){const M=w.map(j=>j.signals).flat();M&&(A=A.filter(j=>!w.some(B=>B.messageQualifiedName===j.messageQualifiedName)),F=F.filter(j=>!M.some(B=>B.qualifiedName===j.qualifiedName)))}}return A}),h(F)},[f,a,u,o]),v=s.useCallback(()=>{c&&(c(N,m),x([]),h([])),u&&u()},[u,c,N,m]);s.useEffect(()=>{p(m.length===0)},[m.length]);const k=s.useMemo(()=>{const S=f.map(E=>E.name),F=f.map(E=>E.messages).flat().filter(E=>E.signals&&E.signals.some(A=>m.some(y=>y.qualifiedName===A.qualifiedName))).map(E=>E.messageQualifiedName);return[...S,...F]},[f,m]);return r.jsxs(b.Dialog,{open:n,fullScreen:!0,children:[r.jsx(b.DialogTitle,{className:"draggable",children:I}),r.jsx(b.DialogContent,{dividers:!0,children:r.jsx(le.SimpleTreeView,{"aria-label":"signal-selector",multiSelect:a,checkboxSelection:l,selectedItems:L,onSelectedItemsChange:(S,F)=>C(F),defaultExpandedItems:k,children:f.map(S=>r.jsx(le.TreeItem,{itemId:S.name,label:S.name,children:S.messages.map(F=>r.jsx(le.TreeItem,{itemId:F.messageQualifiedName,label:F.messageName,children:F.signals&&F.signals.map(E=>r.jsx(le.TreeItem,{itemId:E.qualifiedName,label:E.name},E.qualifiedName))},F.messageQualifiedName))},S.name))})}),a&&r.jsxs(b.DialogActions,{children:[r.jsx(Y,{onClick:v,variant:"contained",size:"large",disabled:$,children:g.getString("ButtonSave")}),r.jsx(Y,{onClick:u,variant:"outlined",size:"large",children:g.getString("ButtonCancel")})]}),!a&&r.jsx(b.DialogActions,{children:r.jsx(Y,{onClick:u,variant:"outlined",size:"large",children:g.getString("ButtonBack")})})]})}function bn({selectedSignals:e,onSelectedSignalseChange:t,onErrorsChange:n=void 0,signalFilterError:a=void 0,parentDialogTitle:l=void 0,nodeIdentifier:o=void 0,disabled:c=!1}){const u=_.useLocalizedStrings(),i=ae(),d=de(i),g=Se(o),f=s.useMemo(()=>{const h=new Set;return g.forEach($=>{$.messages.forEach(p=>{p.signals.length>0&&p.signals.every(L=>e.includes(L.qualifiedName))&&h.add(p.messageQualifiedName)})}),Array.from(h)},[g,e]),I=s.useCallback((h,$)=>{t($.map(p=>p.qualifiedName))},[t]),N=s.useCallback((h,$)=>{t($)},[t]);s.useEffect(()=>{a&&(a.current=e.length===0),n&&n(e.length===0)},[n,e,a]);const[x,m]=s.useState(!1);return r.jsx(r.Fragment,{children:r.jsxs(re,{children:[r.jsx(b.Autocomplete,{id:"selected-signals",multiple:!0,limitTags:3,freeSolo:!0,options:[],value:e,renderInput:h=>r.jsx(b.TextField,{...h,label:u.getString("LabelSelectedSignals")}),size:"small",fullWidth:!0,onChange:N,inputValue:""}),r.jsx(se,{columnItem:i,width:d,children:r.jsx(b.Tooltip,{title:u.getString("TooltipSelectSignals"),children:r.jsx(Y,{disabled:c,onClick:()=>m(!0),variant:"outlined",size:"large",children:u.getString("ButtonSelectSignals")})})}),r.jsx(Oe,{parentDialogTitle:l,open:x,onClose:()=>m(!1),nodeIdentifier:o,onMultiSelect:I,multiSelect:!0,selectedMessages:f,selectedSignals:e,checkboxSelection:!0})]})})}const Sn=b.styled(b.Box)(({height:e,width:t})=>({height:e,width:t,padding:"4px",overflow:"auto"}));function pn({label:e,variant:t="h6"}){return r.jsx(b.Toolbar,{children:r.jsx(b.Typography,{sx:{flex:"1 1 100%"},variant:t,id:"tableTitle",component:"div",children:e})})}function Cn({data:e,dataKey:t,hasRemoveButton:n=!1,removeButtonTitle:a=void 0,onRemoveRow:l=void 0,selectedKey:o=void 0,onClickRow:c=void 0,columns:u,label:i=void 0,labelVariant:d="h6",maxHeight:g=void 0,size:f="medium",stickyHeader:I=!1,hover:N=!1}){const x=s.useCallback(m=>{c&&c(m)},[c]);return r.jsxs(b.Box,{children:[i&&r.jsx(pn,{label:i,variant:d}),r.jsx(b.TableContainer,{children:r.jsxs(b.Table,{"aria-labelledby":"tableTitle",size:f,stickyHeader:I,sx:{maxHeight:g},padding:"none",children:[r.jsx(b.TableHead,{children:r.jsx(b.TableRow,{children:u.map(m=>r.jsx(b.TableCell,{...m.headProps,children:m.headCell},m.key))})}),r.jsx(b.TableBody,{children:e.map(m=>{const h=t(m);return r.jsx(b.TableRow,{hover:N,selected:h===o,children:u.map($=>r.jsxs(s.Fragment,{children:[r.jsx(b.TableCell,{onClick:()=>x(m),...$.dataProps,children:$.dataCell(m)},`${h}-${$.key}-project-file`),n&&r.jsx(b.TableCell,{children:r.jsx(Y,{size:"small",title:a,onClick:()=>l(m),children:r.jsx(be.CloseIcon,{fontSize:"small"})})},`${h}-${$.key}-remove-button`)]},`${h}-${$.key}`))},h)})})]})})]})}const jn=b.styled("div")(({theme:e})=>({borderBottom:"1px solid",borderColor:e.palette.divider})),Nn=b.styled(b.ToggleButtonGroup)(({theme:e})=>({[`& .${b.toggleButtonGroupClasses.grouped}`]:{margin:e.spacing(.5),padding:e.spacing(1.25),minWidth:24,color:e.palette.action.active,border:0,borderRadius:e.shape.borderRadius,[`&.${b.toggleButtonGroupClasses.disabled}`]:{border:0}}})),vn=b.styled(b.ButtonGroup)(({theme:e})=>({[`& .${b.buttonGroupClasses.grouped}`]:{margin:e.spacing(.5),padding:e.spacing(1.25),minWidth:24,color:e.palette.action.active,border:0,borderRadius:e.shape.borderRadius,[`&.${b.buttonGroupClasses.disabled}`]:{border:0}},[`& .${b.buttonGroupClasses.middleButton},& .${b.buttonGroupClasses.lastButton}`]:{marginLeft:-1,borderLeft:"1px solid transparent"}}));function Pe({onClick:e,icon:t=void 0,text:n=void 0,size:a="small",variant:l=void 0,color:o="inherit",tooltip:c=void 0,ariaLabel:u=void 0,children:i=void 0,disabled:d=!1}){return i?r.jsx(We,{size:typeof a=="string"?a:"small",variant:l,color:o,startIcon:t,text:n,disabled:d,children:i}):n?r.jsxs(Y,{size:typeof a=="string"?a:"small",variant:l,color:o,"aria-label":u,onClick:e,startIcon:t,disabled:d,children:[c&&r.jsx(b.Tooltip,{placement:"bottom-start",title:c,children:r.jsx("span",{children:n})}),!c&&n]}):r.jsxs(Y,{size:typeof a=="string"?a:"small",variant:l,color:o,"aria-label":u,onClick:e,disabled:d,sx:{height:typeof a=="number"?`${a}px`:void 0,width:typeof a=="number"?`${a}px`:void 0},children:[c&&r.jsx(b.Tooltip,{placement:"bottom-start",title:c,children:r.jsx("span",{children:t})}),!c&&t]})}function Mn({buttons:e,size:t="small",ariaLabel:n=void 0,orientation:a="horizontal"}){return r.jsx(vn,{size:t,"aria-label":n,orientation:a,children:e.map((l,o)=>r.jsx(Pe,{onClick:l.onClick,icon:l.icon,text:l.text,size:l.size,variant:l.variant,color:l.color,tooltip:l.tooltip,ariaLabel:l.ariaLabel,disabled:l.disabled,children:l.children},o))})}function In({value:e,onChange:t,size:n="small",ariaLabel:a=void 0,exclusive:l=void 0,buttons:o,orientation:c="horizontal"}){return r.jsx(Nn,{size:n,value:e,onChange:(u,i)=>t(i),"aria-label":a,exclusive:l,orientation:c,children:o.map((u,i)=>r.jsxs(b.ToggleButton,{size:typeof n=="string"?n:"small",value:u.value,"aria-label":u.ariaLabel,sx:{height:typeof n=="number"?`${n}px`:void 0,width:typeof n=="number"?`${n}px`:void 0,padding:u.size==="small"||typeof n=="number"?1:void 0,margin:u.size==="small"||typeof n=="number"?0:void 0},disabled:u.disabled,children:[u.tooltip&&r.jsx(b.Tooltip,{placement:"bottom-start",title:u.tooltip,children:r.jsx("span",{children:u.icon})}),!u.tooltip&&u.icon]},i))})}function Fn({items:e,height:t=34,width:n=34,justifyContent:a="left",borderSize:l=1,padding:o=1,backgroundColor:c=void 0,orientation:u="horizontal"}){return r.jsx(b.Paper,{elevation:0,sx:{display:"flex",alignItems:"center",justifyContent:a,border:i=>`${l}px solid ${i.palette.divider}`,flexWrap:"wrap",height:u==="horizontal"?`${t}px`:"100%",minHeight:u==="horizontal"?`${t}px`:void 0,width:u==="vertical"?`${n}px`:"100%",minWidth:u==="vertical"?`${n}px`:void 0,paddingLeft:u==="horizontal"?o:0,paddingRight:u==="horizontal"?o:0,paddingTop:u==="vertical"?o:0,paddingBottom:u==="vertical"?o:0,borderRadius:"0px",backgroundColor:c},children:e.map((i,d)=>i.label?r.jsx(b.Typography,{variant:i.label.variant,component:"div",children:i.label.text},d):i.toggleButtonGroup?r.jsx(In,{value:i.toggleButtonGroup.value,onChange:i.toggleButtonGroup.onChange,ariaLabel:i.toggleButtonGroup.ariaLabel,exclusive:i.toggleButtonGroup.exclusive,buttons:i.toggleButtonGroup.buttons,orientation:u},d):i.button?r.jsx(Pe,{onClick:i.button.onClick,icon:i.button.icon,text:i.button.text,variant:i.button.variant,color:i.button.color,tooltip:i.button.tooltip,ariaLabel:i.button.ariaLabel,disabled:i.button.disabled},d):i.buttonGroup?r.jsx(Mn,{ariaLabel:i.buttonGroup.ariaLabel,buttons:i.buttonGroup.buttons,orientation:u},d):i.other)})}function kn({options:e,onSelect:t,children:n=void 0}){const[a,l]=s.useState(null),o=s.useCallback(i=>{e.length!==0&&(i.preventDefault(),l(a===null?{mouseX:i.clientX+2,mouseY:i.clientY-6}:null))},[a,e.length]),c=s.useCallback(()=>{l(null)},[]),u=s.useCallback(i=>{t(i),c()},[c,t]);return r.jsxs("div",{onContextMenu:o,style:{cursor:"context-menu"},children:[n,r.jsx(b.Menu,{open:a!==null,onClose:c,anchorReference:"anchorPosition",anchorPosition:a!==null?{top:a.mouseY,left:a.mouseX}:void 0,children:e.map(i=>r.jsxs(b.MenuItem,{onClick:()=>u(i.value),children:[i.icon&&r.jsx(b.ListItemIcon,{children:i.icon}),r.jsx(b.ListItemText,{children:i.displayText}),i.shortcut&&r.jsx(b.ListItemText,{sx:{pl:2,textAlign:"right"},children:i.shortcut})]},i.value))})]})}function Ue({canIdentifier:e,canIdentifierType:t,onCanIdentifierChange:n,onErrorsChange:a=void 0,showSelectMessageDialogChange:l=void 0,showSelectSignalDialogChange:o=void 0,disabled:c=!1,disableSelectMessageButton:u=!1,disableSelectSignalButton:i=!1,hideSection:d=!1,hideSelectMessageButton:g=!1,showSelectSignalButton:f=!1,collapsible:I=!1,collapsed:N=!1,collapsedChange:x=void 0}){const m=_.useLocalizedStrings(),h=_.useNumericRadix(),$=ae(),p=ae(),L=de($,p),[C,v]=s.useState(!1);s.useEffect(()=>{a&&a(C)},[C,a]);const[k,S]=s.useState(!1),[F,E]=s.useState(t);s.useEffect(()=>{E(t)},[t]);const A=s.useCallback(P=>{E(P?"extended":"standard")},[]),y=s.useCallback(P=>{let w=P;const M=parseInt(w,w.startsWith("0x")?16:h);if(F==="extended"){if(Number.isNaN(M)||M<0||M>536870911)return Number.isNaN(M)||n(`${M.toString(h).toUpperCase()}`,F),{val:P,err:!0}}else if(F==="standard"&&(Number.isNaN(M)||M<0||M>2047))return Number.isNaN(M)||n(`${M.toString(h).toUpperCase()}`,F),{val:P,err:!0};return n(`${M.toString(h).toUpperCase()}`,F),S(w.startsWith("0x")),{val:P,err:!1}},[F,h,n]),R=s.useCallback(P=>{if(P!==F){let w=!1;const M=parseInt(e,e.startsWith("0x")?16:h);P==="standard"?(Number.isNaN(M)||M<0||M>2047)&&(w=!0):P==="extended"&&(Number.isNaN(M)||M<0||M>536870911)&&(w=!0),n(e,P),v(w)}},[F,e,n,h]),U=s.useMemo(()=>{const P=parseInt(e,e.startsWith("0x")?16:h);return k?`0x${P.toString(16).toUpperCase()}`:P.toString(h).toUpperCase()},[k,e,h]),K=s.useMemo(()=>r.jsxs(re,{spacing:4,children:[r.jsx(V,{id:"constant-id",fullWidth:!0,value:U,error:C,onValidate:y,onErrorChange:v,disabled:c}),r.jsx(Ce,{id:"id-type",label:m.getString("LabelUseExtendedIdentifier"),checked:F==="extended",onChange:P=>{A(P),R(P?"extended":"standard")},disabled:c}),!g&&r.jsx(se,{columnItem:$,width:L,children:r.jsx(Y,{disabled:u,onClick:()=>{l&&l(!0)},variant:"outlined",size:"large",children:m.getString("ButtonSelectMessage")})}),f&&r.jsx(se,{columnItem:p,width:L,children:r.jsx(Y,{disabled:i,onClick:()=>{o&&o(!0)},variant:"outlined",size:"large",children:m.getString("ButtonSelectSignal")})})]}),[U,F,c,C,m,R,y]);return d?K:r.jsx(oe,{text:m.getString("LabelCanIdentifier"),summary:e,collapsible:I,collapsed:N,collapsedChange:x,children:K})}function $n({frame:e,onFrameChange:t,onErrorsChange:n=void 0,showSelectMessageDialogChange:a=void 0,showSelectSignalDialogChange:l=void 0,disableSelectMessageButton:o=!1,disableSelectSignalButton:c=!1,hideSection:u=!1,hideSelectMessageButton:i=!1,showSelectSignalButton:d=!1,collapsible:g=!1,collapsed:f=!1,collapsedChange:I=void 0}){var $;const N=_.useNumericRadix(),x=s.useMemo(()=>{var p,L;return((L=(p=e.canFrameFlags)==null?void 0:p.flags)==null?void 0:L.includes(Z.CanFrameFlag.CAN_FRAME_FLAG_EXT))===!0?"extended":"standard"},[($=e.canFrameFlags)==null?void 0:$.flags]),m=s.useMemo(()=>`${(e.id??0).toString(N).toUpperCase()}`,[x,e.id,N]),h=s.useCallback((p,L)=>{var F;const C=parseInt(p,p.startsWith("0x")?16:N),v=(F=e.canFrameFlags)!=null&&F.flags?{flags:[...e.canFrameFlags.flags]}:{flags:[]},k=v.flags.indexOf(Z.CanFrameFlag.CAN_FRAME_FLAG_STD);k!==-1&&v.flags.splice(k,1);const S=v.flags.indexOf(Z.CanFrameFlag.CAN_FRAME_FLAG_EXT);if(S!==-1&&v.flags.splice(S,1),L==="extended"?v.flags.push(Z.CanFrameFlag.CAN_FRAME_FLAG_EXT):L==="standard"&&v.flags.push(Z.CanFrameFlag.CAN_FRAME_FLAG_STD),C!==e.id||!ue(v,e.canFrameFlags)){const E={...e};E.id=C,E.canFrameFlags=v,t(E)}},[e,N,t]);return r.jsx(Ue,{canIdentifier:m,canIdentifierType:x,onCanIdentifierChange:h,onErrorsChange:n,showSelectMessageDialogChange:a,showSelectSignalDialogChange:l,disableSelectMessageButton:o,disableSelectSignalButton:c,hideSection:u,hideSelectMessageButton:i,showSelectSignalButton:d,collapsible:g,collapsed:f,collapsedChange:I})}function Te({canIdentifier:e,identifierGeneratorType:t,minCanIdentifier:n,maxCanIdentifier:a,canIdentifierType:l,onChange:o,onErrorsChange:c=void 0,canIdentifierGeneratorSettingsError:u=void 0,disabled:i=!1,collapsible:d=!1,collapsed:g=!1,collapsedChange:f=void 0,showSelectMessageDialogChange:I,showSignalValuesTable:N}){const x=_.useLocalizedStrings(),m=_.useNumericRadix(),[h,$]=s.useState(!1),[p,L]=s.useState(!1),[C,v]=s.useState(!1),[k,S]=s.useState(!1),[F,E]=s.useState(!1),[A,y]=s.useState(!1),[R,U]=s.useState(l);s.useEffect(()=>{U(l)},[l]);const K=s.useCallback(W=>{U(W?"extended":"standard")},[]),P=s.useCallback(W=>{let z=W;const D=parseInt(z,z.startsWith("0x")?16:m);if(R==="extended"){if(Number.isNaN(D)||D<0||D>536870911)return Number.isNaN(D)||o(`${D.toString(m).toUpperCase()}`,t,n,a,R),{val:W,err:!0}}else if(R==="standard"&&(Number.isNaN(D)||D<0||D>2047))return Number.isNaN(D)||o(`${D.toString(m).toUpperCase()}`,t,n,a,R),{val:W,err:!0};return o(`${D.toString(m).toUpperCase()}`,t,n,a,R),S(z.startsWith("0x")),{val:W,err:!1}},[R,t,a,n,m,o]),w=s.useCallback((W,z,D,X)=>{let ee=W;const Q=parseInt(ee,ee.startsWith("0x")?16:m);if(z==="extended"){if(Number.isNaN(Q)||Q<0||Q>536870911)return Number.isNaN(Q)||D(`${Q.toString(m).toUpperCase()}`),{val:W,err:!0,id:Q}}else if(z==="standard"&&(Number.isNaN(Q)||Q<0||Q>2047))return Number.isNaN(Q)||D(`${Q.toString(m).toUpperCase()}`),{val:W,err:!0,id:Q};return D(`${Q.toString(m).toUpperCase()}`),X(ee.startsWith("0x")),{val:W,err:!1,id:Q}},[m]),M=s.useCallback(W=>{const z=w(W,R,X=>o(e,t,X,a,R),X=>E(X)),D=w(a,R,()=>{},()=>{});return z.id>=D.id?z.err=!0:D.err&&v(D.err),{val:z.val,err:z.err}},[e,R,t,a,o,w]),j=s.useCallback(W=>{const z=w(W,R,X=>o(e,t,n,X,R),X=>y(X)),D=w(n,R,()=>{},()=>{});return D.id>=z.id?z.err=!0:D.err&&L(D.err),{val:z.val,err:z.err}},[e,R,t,n,o,w]),B=s.useCallback(W=>{if(W!==R){let z=!1,D=e;const X=parseInt(D,D.startsWith("0x")?16:m);W==="standard"?((Number.isNaN(X)||X<0||X>2047)&&(z=!0),$(z)):W==="extended"&&((Number.isNaN(X)||X<0||X>536870911)&&(z=!0),$(z));let ee=!1,Q=n;const te=parseInt(Q,Q.startsWith("0x")?16:m);W==="standard"?(Number.isNaN(te)||te<0||te>2047)&&(ee=!0):W==="extended"&&(Number.isNaN(te)||te<0||te>536870911)&&(ee=!0);let ge=!1,ve=a;const ne=parseInt(ve,ve.startsWith("0x")?16:m);W==="standard"?(Number.isNaN(ne)||ne<0||ne>2047)&&(ge=!0):W==="extended"&&(Number.isNaN(ne)||ne<0||ne>536870911)&&(ge=!0),!Number.isNaN(te)&&!Number.isNaN(ne)&&te>=ne&&(ee=!0,ge=!0),L(ee),v(ge),o(e,t,n,a,W)}},[R,e,n,a,o,t,m]),O=s.useCallback(W=>{N(W==="constant"),o(e,W,n,a,R)},[R,e,n,a,o]);s.useEffect(()=>{c&&c(t==="constant"&&h||(t==="random"||t==="scan")&&(p||C)),u&&(u.current=t==="constant"&&h||(t==="random"||t==="scan")&&(p||C))},[h,u,t,C,p,c]);const T=ae(),q=de(T),H=s.useMemo(()=>{const W=parseInt(e,e.startsWith("0x")?16:m);return k?`0x${W.toString(16).toUpperCase()}`:W.toString(m).toUpperCase()},[k,e,m]),J=s.useMemo(()=>{const W=parseInt(n,n.startsWith("0x")?16:m);return F?`0x${W.toString(16).toUpperCase()}`:W.toString(m).toUpperCase()},[F,n,m]),G=s.useMemo(()=>{const W=parseInt(a,a.startsWith("0x")?16:m);return A?`0x${W.toString(16).toUpperCase()}`:W.toString(m).toUpperCase()},[A,a,m]);return r.jsx(oe,{text:x.getString("LabelCanIdentifier"),summary:t==="constant"?e:t==="random"?`${x.getString("LabelRandom")} ${n}-${a}`:`${x.getString("LabelScan")} ${n}-${a}`,collapsible:d,collapsed:g,collapsedChange:f,children:r.jsxs(Ne,{id:"identifier-radio-group",value:t,onChange:W=>{O(W)},children:[r.jsxs(re,{spacing:4,children:[r.jsx(ie,{id:"constant-id-radio",value:"constant",label:x.getString("LabelConstantIdentifier"),sx:{marginLeft:"-11px !important"},disabled:i}),r.jsx(V,{id:"constant-id",fullWidth:!0,value:H,error:!i&&t==="constant"&&h,onErrorChange:$,onValidate:P,disabled:i||t!=="constant",required:t==="constant"}),r.jsx(Ce,{id:"id-type",label:x.getString("LabelUseExtendedIdentifier"),checked:R==="extended",onChange:W=>{K(W),B(W?"extended":"standard")},disabled:i}),r.jsx(se,{columnItem:T,width:q,children:r.jsx(Y,{onClick:()=>I(!0),variant:"outlined",size:"large",children:x.getString("ButtonSelectMessage")})})]}),r.jsxs(re,{spacing:4,children:[r.jsx(ie,{id:"random-identifier-radio",value:"random",label:x.getString("LabelRandomIdentifier"),sx:{marginLeft:"-11px !important"},disabled:i}),r.jsx(ie,{id:"scan-identifier-radio",value:"scan",label:x.getString("LabelScanIdentifier"),disabled:i}),r.jsx(V,{id:"identifier-min",disabled:i||t!=="random"&&t!=="scan",required:t==="random"||t==="scan",fullWidth:!0,value:J,error:!i&&(t==="random"||t==="scan")&&p,onErrorChange:L,onValidate:M,startAdornment:x.getString("LabelFrom"),sxStartAdornment:{marginBottom:.8}}),r.jsx(V,{id:"identifier-max",disabled:i||t!=="random"&&t!=="scan",required:t==="random"||t==="scan",fullWidth:!0,value:G,error:!i&&(t==="random"||t==="scan")&&C,onErrorChange:v,onValidate:j,startAdornment:x.getString("LabelTo"),sxStartAdornment:{marginBottom:.8}})]})]})})}function Ln({settings:e,onSettingsChange:t,onErrorsChange:n=void 0,canIdentifierGeneratorSettingsError:a=void 0,disabled:l=!1,collapsible:o=!1,collapsed:c=!1,collapsedChange:u=void 0,showSelectMessageDialogChange:i,showSignalValuesTable:d}){var $,p,L;const g=_.useNumericRadix(),f=s.useMemo(()=>{var C,v,k;return((k=(v=(C=e.frame)==null?void 0:C.canFrameFlags)==null?void 0:v.flags)==null?void 0:k.includes(Z.CanFrameFlag.CAN_FRAME_FLAG_EXT))===!0?"extended":"standard"},[(p=($=e.frame)==null?void 0:$.canFrameFlags)==null?void 0:p.flags]),I=s.useMemo(()=>{var v;return`${(((v=e.frame)==null?void 0:v.id)??0).toString(g).toUpperCase()}`},[g,(L=e.frame)==null?void 0:L.id]),N=s.useMemo(()=>`${(e.identifierMin??0).toString(g).toUpperCase()}`,[g,e.identifierMin]),x=s.useMemo(()=>`${(e.identifierMax??0).toString(g).toUpperCase()}`,[g,e.identifierMax]),m=s.useMemo(()=>e.randomIdentifier===!0?"random":e.scanIdentifier===!0?"scan":"constant",[e.randomIdentifier,e.scanIdentifier]),h=s.useCallback((C,v,k,S,F)=>{var w,M,j,B;const E=F,A=parseInt(C,C.startsWith("0x")?16:g),y=(M=(w=e.frame)==null?void 0:w.canFrameFlags)!=null&&M.flags?{flags:[...e.frame.canFrameFlags.flags]}:{flags:[]},R=y.flags.indexOf(Z.CanFrameFlag.CAN_FRAME_FLAG_STD),U=parseInt(k,k.startsWith("0x")?16:g),K=parseInt(S,S.startsWith("0x")?16:g),P=y.flags.indexOf(Z.CanFrameFlag.CAN_FRAME_FLAG_EXT);if(R!==-1&&y.flags.splice(R,1),P!==-1&&y.flags.splice(P,1),E==="extended"?y.flags.push(Z.CanFrameFlag.CAN_FRAME_FLAG_EXT):E==="standard"&&y.flags.push(Z.CanFrameFlag.CAN_FRAME_FLAG_STD),A!==((j=e.frame)==null?void 0:j.id)||!ue(y,(B=e.frame)==null?void 0:B.canFrameFlags)||v!==m||U!==e.identifierMin||K!==e.identifierMax){const O={...e};O.frame=e.frame?{...e.frame}:Z.WriteFrame.fromPartial({id:0,canFrameFlags:{flags:[Z.CanFrameFlag.CAN_FRAME_FLAG_STD]},data:Array.from({length:8},()=>0)}),O.frame.id=A,O.frame.canFrameFlags=y,v==="constant"?(O.randomIdentifier=!1,O.scanIdentifier=!1):v==="random"?(O.randomIdentifier=!0,O.scanIdentifier=!1):v==="scan"&&(O.randomIdentifier=!1,O.scanIdentifier=!0),O.identifierMin=U,O.identifierMax=K,t(O)}},[m,g,t,e]);return r.jsx(Te,{canIdentifier:I,identifierGeneratorType:m,minCanIdentifier:N,maxCanIdentifier:x,canIdentifierType:f,onChange:h,onErrorsChange:n,canIdentifierGeneratorSettingsError:a,disabled:l,collapsible:o,collapsed:c,collapsedChange:u,showSelectMessageDialogChange:i,showSignalValuesTable:d})}function En(e,t,n,a){const[l,o]=s.useState(""),[c,u]=s.useState([]);return s.useEffect(()=>{u(i=>{var g;const d=(g=n==null?void 0:n.sources)==null?void 0:g.filter(f=>{var N,x;const I=(x=(N=a==null?void 0:a.find(m=>{var h;return m.nodeId===((h=f.baseNode)==null?void 0:h.identifier)}))==null?void 0:N.errorStatus)==null?void 0:x.errors;return I===void 0||I===""?f.baseNode&&f.channelSettings&&f.channelSettings.canConfiguration&&(!t||f.channelSettings.canConfiguration.silentMode!==!0):!1}).map(f=>({value:f.channelSettings.channelNumber,displayText:f.baseNode.name,canFdMode:f.channelSettings.canConfiguration.canMode>0,identifier:f.baseNode.identifier}));return!d||ue(i,d)?i:d})},[t,n==null?void 0:n.sources,a]),s.useEffect(()=>{const i=c.find(d=>d.identifier===e);o(i?d=>i.value===d?d:i.value:"")},[e,c]),{channelOptions:c,selectedChannelOption:l}}function Rn({channelIdentifier:e,onChannelIdentifierChange:t,hideSilentChannels:n=!1,hideSectionControl:a=!1,disabled:l=!1,collapsible:o=!1,collapsed:c=!1,collapsedChange:u=void 0}){var x;const i=_.useMeasurementSetup(),d=_.useMeasurementStatus(),g=_.useLocalizedStrings(),{channelOptions:f,selectedChannelOption:I}=En(e,n===!0,i,d),N=s.useCallback(m=>{const h=f.find(L=>L.value===m),$=(h==null?void 0:h.identifier)??"",p=(h==null?void 0:h.canFdMode)===!0;t($,p)},[f,t]);return a===!0?r.jsx(me,{id:"channel",label:g.getString("LabelChannel"),fullWidth:!0,value:I,onChange:N,options:f,required:!0,disabled:l}):r.jsx(oe,{text:g.getString("LabelChannel"),summary:I===""||(x=f.find(m=>m.value===I))==null?void 0:x.displayText,collapsible:o,collapsed:c,collapsedChange:u,children:r.jsx(me,{id:"channel",label:g.getString("LabelChannel"),fullWidth:!0,value:I,onChange:N,options:f,required:!0,disabled:l})})}function wn(e,t,n,a){const[l,o]=s.useState(""),[c,u]=s.useState([]);return s.useEffect(()=>{u(i=>{var g;const d=(g=n==null?void 0:n.sources)==null?void 0:g.filter(f=>{var N,x;const I=(x=(N=a==null?void 0:a.find(m=>{var h;return m.nodeId===((h=f.baseNode)==null?void 0:h.identifier)}))==null?void 0:N.errorStatus)==null?void 0:x.errors;return(I===void 0||I==="")&&f.channelSettings!==void 0&&f.channelSettings.linConfiguration!==void 0&&f.channelSettings.linConfiguration.masterMode===t?f.baseNode&&f.channelSettings&&f.channelSettings.linConfiguration:!1}).map(f=>({value:f.channelSettings.channelNumber,displayText:f.baseNode.name,identifier:f.baseNode.identifier}));return!d||ue(i,d)?i:d})},[n==null?void 0:n.sources,a]),s.useEffect(()=>{const i=c.find(d=>d.identifier===e);o(i?d=>i.value===d?d:i.value:"")},[e,c]),{channelOptions:c,selectedChannelOption:l}}function yn({channelIdentifier:e,selectMasterChannels:t,onChannelIdentifierChange:n,hideSectionControl:a=!1,disabled:l=!1,collapsible:o=!1,collapsed:c=!1,collapsedChange:u=void 0}){var x;const i=_.useMeasurementSetup(),d=_.useMeasurementStatus(),g=_.useLocalizedStrings(),{channelOptions:f,selectedChannelOption:I}=wn(e,t,i,d),N=s.useCallback(m=>{const h=f.find(p=>p.value===m),$=(h==null?void 0:h.identifier)??"";n($)},[f,n]);return a===!0?r.jsx(me,{id:"channel",label:t?g.getString("LabelChannelLinModeMaster"):g.getString("LabelChannelLinModeSlave"),fullWidth:!0,value:I,onChange:N,options:f,required:!0,disabled:l}):r.jsx(oe,{text:t?g.getString("LabelChannelLinModeMaster"):g.getString("LabelChannelLinModeSlave"),summary:I===""||(x=f.find(m=>m.value===I))==null?void 0:x.displayText,collapsible:o,collapsed:c,collapsedChange:u,children:r.jsx(me,{id:"channel",label:t?g.getString("LabelChannelLinModeMaster"):g.getString("LabelChannelLinModeSlave"),fullWidth:!0,value:I,onChange:N,options:f,required:!0,disabled:l})})}function De({linIdentifier:e,onLinIdentifierChange:t,onErrorsChange:n=void 0,showSelectMessageDialogChange:a=void 0,showSelectSignalDialogChange:l=void 0,disabled:o=!1,disableSelectMessageButton:c=!1,disableSelectSignalButton:u=!1,hideSection:i=!1,hideSelectMessageButton:d=!1,showSelectSignalButton:g=!1,collapsible:f=!1,collapsed:I=!1,collapsedChange:N=void 0}){const x=_.useLocalizedStrings(),m=_.useNumericRadix(),h=ae(),$=ae(),p=de(h,$),[L,C]=s.useState(!1);s.useEffect(()=>{n&&n(L)},[L,n]);const[v,k]=s.useState(!1),S=s.useCallback(A=>{let y=A;const R=parseInt(y,y.startsWith("0x")?16:m);return Number.isNaN(R)||R<0||R>63?(Number.isNaN(R)||t(`${R.toString(m).toUpperCase()}`),{val:A,err:!0}):(t(`${R.toString(m).toUpperCase()}`),k(y.startsWith("0x")),{val:A,err:!1})},[m,t]),F=s.useMemo(()=>{const A=parseInt(e,e.startsWith("0x")?16:m);return v?`0x${A.toString(16).toUpperCase()}`:A.toString(m).toUpperCase()},[v,e,m]),E=s.useMemo(()=>r.jsxs(re,{spacing:4,children:[r.jsx(V,{id:"constant-id",fullWidth:!0,value:F,error:L,onValidate:S,onErrorChange:C,disabled:o}),!d&&r.jsx(se,{columnItem:h,width:p,children:r.jsx(Y,{disabled:c,onClick:()=>{a&&a(!0)},variant:"outlined",size:"large",children:x.getString("ButtonSelectMessage")})}),g&&r.jsx(se,{columnItem:$,width:p,children:r.jsx(Y,{disabled:u,onClick:()=>{l&&l(!0)},variant:"outlined",size:"large",children:x.getString("ButtonSelectSignal")})})]}),[F,o,L,x,S]);return i?E:r.jsx(oe,{text:x.getString("LabelLinIdentifier"),summary:e,collapsible:f,collapsed:I,collapsedChange:N,children:E})}function An({frame:e,onFrameChange:t,onErrorsChange:n=void 0,showSelectMessageDialogChange:a=void 0,showSelectSignalDialogChange:l=void 0,disableSelectMessageButton:o=!1,disableSelectSignalButton:c=!1,hideSection:u=!1,hideSelectMessageButton:i=!1,showSelectSignalButton:d=!1,collapsible:g=!1,collapsed:f=!1,collapsedChange:I=void 0}){const N=_.useNumericRadix(),x=s.useMemo(()=>`${(e.id??0).toString(N).toUpperCase()}`,[e.id,N]),m=s.useCallback(h=>{var L;const $=parseInt(h,h.startsWith("0x")?16:N),p=(L=e.linFrameFlags)!=null&&L.flags?{flags:[...e.linFrameFlags.flags]}:{flags:[]};if($!==e.id||!ue(p,e.linFrameFlags)){const C={...e};C.id=$,C.linFrameFlags=p,t(C)}},[e,N,t]);return r.jsx(r.Fragment,{children:r.jsx(De,{linIdentifier:x,onLinIdentifierChange:m,onErrorsChange:n,showSelectMessageDialogChange:a,showSelectSignalDialogChange:l,disableSelectMessageButton:o,disableSelectSignalButton:c,hideSection:u,hideSelectMessageButton:i,showSelectSignalButton:d,collapsible:g,collapsed:f,collapsedChange:I})})}function ze({linIdentifier:e,identifierGeneratorType:t,minLinIdentifier:n,maxLinIdentifier:a,onChange:l,onErrorsChange:o=void 0,linIdentifierGeneratorSettingsError:c=void 0,disabled:u=!1,collapsible:i=!1,collapsed:d=!1,collapsedChange:g=void 0,showSelectMessageDialogChange:f,showSignalValuesTable:I}){const N=_.useLocalizedStrings(),x=_.useNumericRadix(),[m,h]=s.useState(!1),[$,p]=s.useState(!1),[L,C]=s.useState(!1),[v,k]=s.useState(!1),[S,F]=s.useState(!1),[E,A]=s.useState(!1),y=s.useCallback(T=>{let q=T;const H=parseInt(q,q.startsWith("0x")?16:x);return Number.isNaN(H)||H<0||H>63?(Number.isNaN(H)||l(`${H.toString(x).toUpperCase()}`,t,n,a),{val:T,err:!0}):(l(`${H.toString(x).toUpperCase()}`,t,n,a),k(q.startsWith("0x")),{val:T,err:!1})},[t,a,n,x,l]),R=s.useCallback((T,q,H)=>{let J=T;const G=parseInt(J,J.startsWith("0x")?16:x);return Number.isNaN(G)||G<0||G>63?(Number.isNaN(G)||q(`${G.toString(x).toUpperCase()}`),{val:T,err:!0,id:G}):(q(`${G.toString(x).toUpperCase()}`),H(J.startsWith("0x")),{val:T,err:!1,id:G})},[x]),U=s.useCallback(T=>{const q=R(T,J=>l(e,t,J,a),J=>F(J)),H=R(a,()=>{},()=>{});return q.id>=H.id?q.err=!0:H.err&&C(H.err),{val:q.val,err:q.err}},[e,t,a,l,R]),K=s.useCallback(T=>{const q=R(T,J=>l(e,t,n,J),J=>A(J)),H=R(n,()=>{},()=>{});return H.id>=q.id?q.err=!0:H.err&&p(H.err),{val:q.val,err:q.err}},[e,t,n,l,R]),P=s.useCallback(T=>{I(T==="constant"),l(e,T,n,a)},[e,n,a,l]);s.useEffect(()=>{o&&o(t==="constant"&&m||(t==="random"||t==="scan")&&($||L)),c&&(c.current=t==="constant"&&m||(t==="random"||t==="scan")&&($||L))},[m,c,t,L,$,o]);const w=ae(),M=de(w),j=s.useMemo(()=>{const T=parseInt(e,e.startsWith("0x")?16:x);return v?`0x${T.toString(16).toUpperCase()}`:T.toString(x).toUpperCase()},[v,e,x]),B=s.useMemo(()=>{const T=parseInt(n,n.startsWith("0x")?16:x);return S?`0x${T.toString(16).toUpperCase()}`:T.toString(x).toUpperCase()},[S,n,x]),O=s.useMemo(()=>{const T=parseInt(a,a.startsWith("0x")?16:x);return E?`0x${T.toString(16).toUpperCase()}`:T.toString(x).toUpperCase()},[E,a,x]);return r.jsx(oe,{text:N.getString("LabelLinIdentifier"),summary:t==="constant"?e:t==="random"?`${N.getString("LabelRandom")} ${n}-${a}`:`${N.getString("LabelScan")} ${n}-${a}`,collapsible:i,collapsed:d,collapsedChange:g,children:r.jsxs(Ne,{id:"identifier-radio-group",value:t,onChange:T=>{P(T)},children:[r.jsxs(re,{spacing:4,children:[r.jsx(ie,{id:"constant-id-radio",value:"constant",label:N.getString("LabelConstantIdentifier"),sx:{marginLeft:"-11px !important"},disabled:u}),r.jsx(V,{id:"constant-id",fullWidth:!0,value:j,error:!u&&t==="constant"&&m,onErrorChange:h,onValidate:y,disabled:u||t!=="constant",required:t==="constant"}),r.jsx(se,{columnItem:w,width:M,children:r.jsx(Y,{onClick:()=>f(!0),variant:"outlined",size:"large",children:N.getString("ButtonSelectMessage")})})]}),r.jsxs(re,{spacing:4,children:[r.jsx(ie,{id:"random-identifier-radio",value:"random",label:N.getString("LabelRandomIdentifier"),sx:{marginLeft:"-11px !important"},disabled:u}),r.jsx(ie,{id:"scan-identifier-radio",value:"scan",label:N.getString("LabelScanIdentifier"),disabled:u}),r.jsx(V,{id:"identifier-min",disabled:u||t!=="random"&&t!=="scan",required:t==="random"||t==="scan",fullWidth:!0,value:B,error:!u&&(t==="random"||t==="scan")&&$,onErrorChange:p,onValidate:U,startAdornment:N.getString("LabelFrom"),sxStartAdornment:{marginBottom:.8}}),r.jsx(V,{id:"identifier-max",disabled:u||t!=="random"&&t!=="scan",required:t==="random"||t==="scan",fullWidth:!0,value:O,error:!u&&(t==="random"||t==="scan")&&L,onErrorChange:C,onValidate:K,startAdornment:N.getString("LabelTo"),sxStartAdornment:{marginBottom:.8}})]})]})})}function Wn({settings:e,onSettingsChange:t,onErrorsChange:n=void 0,linIdentifierGeneratorSettingsError:a=void 0,disabled:l=!1,collapsible:o=!1,collapsed:c=!1,collapsedChange:u=void 0,showSelectMessageDialogChange:i,showSignalValuesTable:d}){var h;const g=_.useNumericRadix(),f=s.useMemo(()=>{var p;return`${(((p=e.frame)==null?void 0:p.id)??0).toString(g).toUpperCase()}`},[g,(h=e.frame)==null?void 0:h.id]),I=s.useMemo(()=>`${(e.identifierMin??0).toString(g).toUpperCase()}`,[g,e.identifierMin]),N=s.useMemo(()=>`${(e.identifierMax??0).toString(g).toUpperCase()}`,[g,e.identifierMax]),x=s.useMemo(()=>e.randomIdentifier===!0?"random":e.scanIdentifier===!0?"scan":"constant",[e.randomIdentifier,e.scanIdentifier]),m=s.useCallback(($,p,L,C)=>{var E,A,y,R;const v=parseInt($,$.startsWith("0x")?16:g),k=(A=(E=e.frame)==null?void 0:E.linFrameFlags)!=null&&A.flags?{flags:[...e.frame.linFrameFlags.flags]}:{flags:[]},S=parseInt(L,L.startsWith("0x")?16:g),F=parseInt(C,C.startsWith("0x")?16:g);if(v!==((y=e.frame)==null?void 0:y.id)||!ue(k,(R=e.frame)==null?void 0:R.linFrameFlags)||p!==x||S!==e.identifierMin||F!==e.identifierMax){const U={...e};U.frame=e.frame?{...e.frame}:Z.WriteFrame.fromPartial({id:0,linFrameFlags:void 0,data:Array.from({length:8},()=>0)}),U.frame.id=v,U.frame.linFrameFlags=k,p==="constant"?(U.randomIdentifier=!1,U.scanIdentifier=!1):p==="random"?(U.randomIdentifier=!0,U.scanIdentifier=!1):p==="scan"&&(U.randomIdentifier=!1,U.scanIdentifier=!0),U.identifierMin=S,U.identifierMax=F,t(U)}},[x,g,t,e]);return r.jsx(ze,{linIdentifier:f,identifierGeneratorType:x,minLinIdentifier:I,maxLinIdentifier:N,onChange:m,onErrorsChange:n,linIdentifierGeneratorSettingsError:a,disabled:l,collapsible:o,collapsed:c,collapsedChange:u,showSelectMessageDialogChange:i,showSignalValuesTable:d})}const Bn=b.styled(b.Box)(()=>({height:"100%",width:"100%",padding:"4px",overflow:"auto"}));exports.CanKingDataProvider=_.CanKingDataProvider;exports.DevicesContext=_.DevicesContext;exports.LocalizedStrings=_.LocalizedStrings;exports.LogMessagesContext=_.LogMessagesContext;exports.MeasurementSetupContext=_.MeasurementSetupContext;exports.MeasurementStatusContext=_.MeasurementStatusContext;exports.OnlineStatusContext=_.OnlineStatusContext;exports.RunningPeriodicTransmissionsContext=_.RunningPeriodicTransmissionsContext;exports.UserSettingsContext=_.UserSettingsContext;exports.WorkspacePanesContext=_.WorkspacePanesContext;exports.addEventListener=_.addEventListener;exports.removeEventListener=_.removeEventListener;exports.CanChannelSelectControl=Rn;exports.CanIdentifierControl=Ue;exports.CanIdentifierFrameControl=$n;exports.CanIdentifierGeneratorControl=Te;exports.CanIdentifierGeneratorSettingsControl=Ln;exports.CheckboxControl=Ce;exports.ColumnItemControl=se;exports.ContextMenu=kn;exports.DropdownButton=We;exports.DropdownButtonTextItems=an;exports.DropdownPanel=ln;exports.FillBox=Bn;exports.FormControlRow=re;exports.InlineEditor=cn;exports.LinChannelSelectControl=yn;exports.LinIdentifierControl=De;exports.LinIdentifierFrameControl=An;exports.LinIdentifierGeneratorControl=ze;exports.LinIdentifierGeneratorSettingsControl=Wn;exports.NumberRangeControl=fn;exports.OneLineButton=Y;exports.RadioControl=ie;exports.RadioGroupControl=Ne;exports.SectionControl=oe;exports.SelectControl=me;exports.SelectMessageDialog=hn;exports.SelectSignalControl=bn;exports.SelectSignalDialog=Oe;exports.SizedBox=Sn;exports.TableControl=Cn;exports.TabsPanel=jn;exports.TextControl=Be;exports.ToolbarControl=Fn;exports.ValidateableTextControl=V;exports.useColumnItem=ae;exports.useColumnItems=de;exports.useMessageDatabases=Se;
|