@kvaser/canking-api 7.1.0-beta.241 → 7.1.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.
Files changed (504) hide show
  1. package/README.md +98 -64
  2. package/REDISTRIBUTABLES.txt +86 -2
  3. package/dist/ElectronAPIFake.js +1 -1
  4. package/dist/ElectronAPIFake.mjs +16 -13
  5. package/dist/controls.js +1 -1
  6. package/dist/controls.mjs +1103 -1107
  7. package/dist/grpc.js +1 -1
  8. package/dist/grpc.mjs +69 -55
  9. package/dist/ipc/index.d.ts +6 -0
  10. package/dist/ipc.js +1 -1
  11. package/dist/ipc.mjs +28 -25
  12. package/dist/measurement_settings.js +1 -1
  13. package/dist/measurement_settings.mjs +229 -244
  14. package/dist/models/index.d.ts +4 -1
  15. package/dist/models.js +1 -1
  16. package/dist/models.mjs +188 -181
  17. package/dist/protos/app_params.d.ts +10 -0
  18. package/dist/protos/frame_params.d.ts +2 -6
  19. package/dist/protos/measurement_params.d.ts +9 -0
  20. package/dist/protos/measurement_service.d.ts +29 -1
  21. package/dist/protos/measurement_settings.d.ts +3 -3
  22. package/dist/protos/signal_params.d.ts +3 -0
  23. package/dist/status_params.js +1 -1
  24. package/dist/status_params.mjs +589 -491
  25. package/doc/assets/favicon.png +0 -0
  26. package/doc/assets/hierarchy.js +1 -0
  27. package/doc/assets/highlight.css +16 -16
  28. package/doc/assets/icons.js +1 -1
  29. package/doc/assets/icons.svg +1 -1
  30. package/doc/assets/main.js +5 -5
  31. package/doc/assets/navigation.js +1 -1
  32. package/doc/assets/search.js +1 -1
  33. package/doc/assets/style.css +1405 -1288
  34. package/doc/classes/controls.LocalizedStrings.html +3 -176
  35. package/doc/classes/models.DataBuffer.html +16 -189
  36. package/doc/classes/models.DataBufferView.html +11 -184
  37. package/doc/classes/models.Point.html +7 -180
  38. package/doc/enums/models.AccessMode.html +9 -182
  39. package/doc/enums/models.AppEvent.html +6 -179
  40. package/doc/enums/models.CanChannelCap.html +44 -217
  41. package/doc/enums/models.CanFrameFlag.html +27 -200
  42. package/doc/enums/models.CanMode.html +7 -180
  43. package/doc/enums/models.DecimalChar.html +5 -178
  44. package/doc/enums/models.DeviceEvent.html +6 -179
  45. package/doc/enums/models.FileConflictAction.html +7 -180
  46. package/doc/enums/models.FileType.html +7 -0
  47. package/doc/enums/models.LinFrameFlag.html +12 -185
  48. package/doc/enums/models.LogFileFormat.html +48 -221
  49. package/doc/enums/models.LogLevel.html +17 -190
  50. package/doc/enums/models.LogReplayState.html +6 -179
  51. package/doc/enums/models.MeasurementEvent.html +12 -185
  52. package/doc/enums/models.MessageLoggerState.html +7 -180
  53. package/doc/enums/models.Protocols.html +9 -182
  54. package/doc/enums/models.Separator.html +5 -178
  55. package/doc/enums/models.SignalEncoding.html +5 -178
  56. package/doc/enums/models.SignalType.html +12 -185
  57. package/doc/enums/models.SignalValueTriggerOperator.html +13 -186
  58. package/doc/enums/models.StatusLevel.html +7 -180
  59. package/doc/enums/models.TimeReference.html +5 -178
  60. package/doc/enums/models.TriggerOperator.html +6 -179
  61. package/doc/functions/controls.CanChannelSelectControl.html +2 -175
  62. package/doc/functions/controls.CanIdentifierControl.html +2 -175
  63. package/doc/functions/controls.CanIdentifierFrameControl.html +2 -175
  64. package/doc/functions/controls.CanIdentifierGeneratorControl.html +2 -175
  65. package/doc/functions/controls.CanIdentifierGeneratorSettingsControl.html +2 -175
  66. package/doc/functions/controls.CanKingDataProvider.html +5 -178
  67. package/doc/functions/controls.CheckboxControl.html +2 -175
  68. package/doc/functions/controls.ColumnItemControl.html +2 -175
  69. package/doc/functions/controls.ContextMenu.html +2 -175
  70. package/doc/functions/controls.DropdownButton.html +2 -175
  71. package/doc/functions/controls.DropdownButtonTextItems.html +2 -175
  72. package/doc/functions/controls.DropdownPanel.html +2 -175
  73. package/doc/functions/controls.FillBox.html +19 -192
  74. package/doc/functions/controls.FormControlRow.html +2 -175
  75. package/doc/functions/controls.InlineEditor.html +2 -175
  76. package/doc/functions/controls.NumberRangeControl.html +2 -175
  77. package/doc/functions/controls.OneLineButton.html +19 -192
  78. package/doc/functions/controls.RadioControl.html +2 -175
  79. package/doc/functions/controls.RadioGroupControl.html +2 -175
  80. package/doc/functions/controls.SectionControl.html +2 -175
  81. package/doc/functions/controls.SelectControl.html +2 -175
  82. package/doc/functions/controls.SizedBox.html +19 -192
  83. package/doc/functions/controls.TableControl.html +3 -176
  84. package/doc/functions/controls.TabsPanel.html +19 -192
  85. package/doc/functions/controls.TextControl.html +2 -175
  86. package/doc/functions/controls.ToolbarControl.html +2 -175
  87. package/doc/functions/controls.ValidateableTextControl.html +2 -175
  88. package/doc/functions/controls.useColumnItem.html +3 -176
  89. package/doc/functions/controls.useColumnItems.html +3 -176
  90. package/doc/functions/hooks.useDevices.html +3 -176
  91. package/doc/functions/hooks.useIsOnline.html +3 -176
  92. package/doc/functions/hooks.useLanguage.html +3 -176
  93. package/doc/functions/hooks.useLocalizedStrings.html +3 -176
  94. package/doc/functions/hooks.useLogMessages.html +3 -176
  95. package/doc/functions/hooks.useMaxDataBytes.html +2 -175
  96. package/doc/functions/hooks.useMeasurementSetup.html +3 -176
  97. package/doc/functions/hooks.useMeasurementStatus.html +3 -176
  98. package/doc/functions/hooks.useMessageLogFileFormats.html +2 -175
  99. package/doc/functions/hooks.useNewMeasurementData.html +5 -178
  100. package/doc/functions/hooks.useNodeStatus.html +3 -176
  101. package/doc/functions/hooks.useNumericRadix.html +3 -176
  102. package/doc/functions/hooks.useOnlineStatus.html +3 -176
  103. package/doc/functions/hooks.useOverallStatusLevel.html +3 -176
  104. package/doc/functions/hooks.useProjectData.html +5 -178
  105. package/doc/functions/hooks.useRecentProjectFiles.html +2 -175
  106. package/doc/functions/hooks.useRunningPeriodicTransmissions.html +3 -176
  107. package/doc/functions/hooks.useSessionData.html +5 -178
  108. package/doc/functions/hooks.useUserSettings.html +3 -176
  109. package/doc/functions/hooks.useWorkspacePaneWithId.html +2 -175
  110. package/doc/functions/icons.AddIcon.html +4 -175
  111. package/doc/functions/icons.ArrowDownIcon.html +4 -175
  112. package/doc/functions/icons.ArrowLeftIcon.html +4 -175
  113. package/doc/functions/icons.ArrowRightIcon.html +4 -175
  114. package/doc/functions/icons.ArrowUpIcon.html +4 -175
  115. package/doc/functions/icons.BusIsOffIcon.html +4 -175
  116. package/doc/functions/icons.BusIsOnIcon.html +4 -175
  117. package/doc/functions/icons.CloseIcon.html +4 -175
  118. package/doc/functions/icons.CopyIcon.html +4 -175
  119. package/doc/functions/icons.DarkModeIcon.html +4 -175
  120. package/doc/functions/icons.DeleteIcon.html +4 -175
  121. package/doc/functions/icons.DisableIcon.html +4 -175
  122. package/doc/functions/icons.EditIcon.html +4 -175
  123. package/doc/functions/icons.FilterIcon.html +4 -175
  124. package/doc/functions/icons.FixedPositionIcon.html +4 -175
  125. package/doc/functions/icons.LeaveFullScreenIcon.html +4 -175
  126. package/doc/functions/icons.LightModeIcon.html +4 -175
  127. package/doc/functions/icons.LineArrowDownIcon.html +4 -175
  128. package/doc/functions/icons.LineArrowUpIcon.html +4 -175
  129. package/doc/functions/icons.MaximizeWindowIcon.html +4 -175
  130. package/doc/functions/icons.MeasurementSetupIcon.html +4 -175
  131. package/doc/functions/icons.MoreHorizIcon.html +4 -175
  132. package/doc/functions/icons.MoreVertIcon.html +4 -175
  133. package/doc/functions/icons.NewIcon.html +4 -175
  134. package/doc/functions/icons.OpenExternallyIcon.html +4 -175
  135. package/doc/functions/icons.OpenIcon.html +4 -175
  136. package/doc/functions/icons.PauseIcon.html +4 -175
  137. package/doc/functions/icons.PlayIcon.html +4 -175
  138. package/doc/functions/icons.PlaySolidIcon.html +4 -175
  139. package/doc/functions/icons.SaveIcon.html +4 -175
  140. package/doc/functions/icons.SelectAllIcon.html +4 -175
  141. package/doc/functions/icons.ServiceIconActive.html +4 -175
  142. package/doc/functions/icons.ServiceIconInactive.html +4 -175
  143. package/doc/functions/icons.SettingsIcon.html +4 -175
  144. package/doc/functions/icons.StopIcon.html +4 -175
  145. package/doc/functions/icons.StopSolidIcon.html +4 -175
  146. package/doc/functions/icons.ToolsPanelHiddenIcon.html +4 -175
  147. package/doc/functions/icons.ToolsPanelVisibleIcon.html +4 -175
  148. package/doc/functions/icons.UnmaximizeWindowIcon.html +4 -175
  149. package/doc/functions/icons.WorkspacesIcon.html +4 -175
  150. package/doc/functions/ipc.addDataProcessor.html +3 -176
  151. package/doc/functions/ipc.addSource.html +3 -176
  152. package/doc/functions/ipc.addTarget.html +3 -176
  153. package/doc/functions/ipc.connectNodes.html +3 -176
  154. package/doc/functions/ipc.deleteDataProcessor.html +3 -176
  155. package/doc/functions/ipc.deleteSource.html +3 -176
  156. package/doc/functions/ipc.deleteTarget.html +3 -176
  157. package/doc/functions/ipc.disableNode.html +3 -176
  158. package/doc/functions/ipc.disconnectNodes.html +3 -176
  159. package/doc/functions/ipc.enableNode.html +3 -176
  160. package/doc/functions/ipc.getFrameDefinitions.html +3 -176
  161. package/doc/functions/ipc.getLogger.html +3 -176
  162. package/doc/functions/ipc.getMessageLogFileFormats.html +3 -176
  163. package/doc/functions/ipc.sendCanMessage.html +4 -177
  164. package/doc/functions/ipc.sendMessage.html +3 -176
  165. package/doc/functions/ipc.showMessageBox.html +3 -176
  166. package/doc/functions/ipc.showQuestionBox.html +3 -176
  167. package/doc/functions/ipc.startLogReplay.html +3 -176
  168. package/doc/functions/ipc.startMeasurement.html +2 -175
  169. package/doc/functions/ipc.startPeriodicTransmission.html +3 -176
  170. package/doc/functions/ipc.stopLogReplay.html +3 -176
  171. package/doc/functions/ipc.stopMeasurement.html +2 -175
  172. package/doc/functions/ipc.stopPeriodicTransmission.html +3 -176
  173. package/doc/functions/ipc.updateDataProcessor.html +3 -176
  174. package/doc/functions/ipc.updatePeriodicTransmission.html +4 -0
  175. package/doc/functions/ipc.updateSource.html +3 -176
  176. package/doc/functions/ipc.updateTarget.html +3 -176
  177. package/doc/functions/models.accessModeFromJSON.html +1 -174
  178. package/doc/functions/models.accessModeToJSON.html +1 -174
  179. package/doc/functions/models.appEventFromJSON.html +1 -174
  180. package/doc/functions/models.appEventToJSON.html +1 -174
  181. package/doc/functions/models.canChannelCapFromJSON.html +1 -174
  182. package/doc/functions/models.canChannelCapToJSON.html +1 -174
  183. package/doc/functions/models.canFrameFlagFromJSON.html +1 -174
  184. package/doc/functions/models.canFrameFlagToJSON.html +1 -174
  185. package/doc/functions/models.canModeFromJSON.html +1 -174
  186. package/doc/functions/models.canModeToJSON.html +1 -174
  187. package/doc/functions/models.createElectronApiFake.html +3 -176
  188. package/doc/functions/models.decimalCharFromJSON.html +1 -174
  189. package/doc/functions/models.decimalCharToJSON.html +1 -174
  190. package/doc/functions/models.decimalToFixed.html +1 -174
  191. package/doc/functions/models.decimalToHex.html +1 -174
  192. package/doc/functions/models.deviceEventFromJSON.html +1 -174
  193. package/doc/functions/models.deviceEventToJSON.html +1 -174
  194. package/doc/functions/models.fileConflictActionFromJSON.html +1 -174
  195. package/doc/functions/models.fileConflictActionToJSON.html +1 -174
  196. package/doc/functions/models.fileTypeFromJSON.html +1 -0
  197. package/doc/functions/models.fileTypeToJSON.html +1 -0
  198. package/doc/functions/models.linFrameFlagFromJSON.html +1 -174
  199. package/doc/functions/models.linFrameFlagToJSON.html +1 -174
  200. package/doc/functions/models.logFileFormatFromJSON.html +1 -174
  201. package/doc/functions/models.logFileFormatToJSON.html +1 -174
  202. package/doc/functions/models.logLevelFromJSON.html +1 -174
  203. package/doc/functions/models.logLevelToJSON.html +1 -174
  204. package/doc/functions/models.logReplayStateFromJSON.html +1 -174
  205. package/doc/functions/models.logReplayStateToJSON.html +1 -174
  206. package/doc/functions/models.longToNumber.html +1 -174
  207. package/doc/functions/models.measurementEventFromJSON.html +1 -174
  208. package/doc/functions/models.measurementEventToJSON.html +1 -174
  209. package/doc/functions/models.messageLoggerStateFromJSON.html +1 -174
  210. package/doc/functions/models.messageLoggerStateToJSON.html +1 -174
  211. package/doc/functions/models.protocolsFromJSON.html +1 -174
  212. package/doc/functions/models.protocolsToJSON.html +1 -174
  213. package/doc/functions/models.separatorFromJSON.html +1 -174
  214. package/doc/functions/models.separatorToJSON.html +1 -174
  215. package/doc/functions/models.signalEncodingFromJSON.html +1 -174
  216. package/doc/functions/models.signalEncodingToJSON.html +1 -174
  217. package/doc/functions/models.signalTypeFromJSON.html +1 -174
  218. package/doc/functions/models.signalTypeToJSON.html +1 -174
  219. package/doc/functions/models.signalValueTriggerOperatorFromJSON.html +1 -174
  220. package/doc/functions/models.signalValueTriggerOperatorToJSON.html +1 -174
  221. package/doc/functions/models.statusLevelFromJSON.html +1 -174
  222. package/doc/functions/models.statusLevelToJSON.html +1 -174
  223. package/doc/functions/models.timeReferenceFromJSON.html +1 -174
  224. package/doc/functions/models.timeReferenceToJSON.html +1 -174
  225. package/doc/functions/models.triggerOperatorFromJSON.html +1 -174
  226. package/doc/functions/models.triggerOperatorToJSON.html +1 -174
  227. package/doc/hierarchy.html +1 -174
  228. package/doc/index.html +65 -237
  229. package/doc/interfaces/controls.ButtonGroupProps.html +6 -179
  230. package/doc/interfaces/controls.ButtonProps.html +10 -183
  231. package/doc/interfaces/controls.CanChannelSelectControlProps.html +14 -187
  232. package/doc/interfaces/controls.CanIdentifierControlProps.html +16 -189
  233. package/doc/interfaces/controls.CanIdentifierFrameControlProps.html +14 -187
  234. package/doc/interfaces/controls.CanIdentifierGeneratorControlProps.html +27 -200
  235. package/doc/interfaces/controls.CanIdentifierGeneratorSettingsControlProps.html +17 -190
  236. package/doc/interfaces/controls.CheckboxControlProps.html +7 -180
  237. package/doc/interfaces/controls.ColumnItemControlProps.html +3 -176
  238. package/doc/interfaces/controls.ContextMenuProps.html +6 -179
  239. package/doc/interfaces/controls.DropdownButtonChildrenProps.html +4 -177
  240. package/doc/interfaces/controls.DropdownButtonProps.html +11 -184
  241. package/doc/interfaces/controls.DropdownButtonTextItemsProps.html +9 -182
  242. package/doc/interfaces/controls.DropdownPanelProps.html +15 -188
  243. package/doc/interfaces/controls.FormControlRowProps.html +7 -180
  244. package/doc/interfaces/controls.ILocalizedStrings.html +3 -176
  245. package/doc/interfaces/controls.InlineEditorProps.html +9 -182
  246. package/doc/interfaces/controls.LabelProps.html +3 -176
  247. package/doc/interfaces/controls.NumberRangeControlProps.html +41 -214
  248. package/doc/interfaces/controls.RadioControlProps.html +4 -177
  249. package/doc/interfaces/controls.RadioGroupControlProps.html +6 -179
  250. package/doc/interfaces/controls.SectionControlProps.html +8 -181
  251. package/doc/interfaces/controls.SelectControlProps.html +20 -193
  252. package/doc/interfaces/controls.TableColumn.html +10 -183
  253. package/doc/interfaces/controls.TableControlProps.html +18 -191
  254. package/doc/interfaces/controls.TextControlProps.html +24 -197
  255. package/doc/interfaces/controls.ToggleButtonGroupProps.html +9 -182
  256. package/doc/interfaces/controls.ToggleButtonProps.html +5 -178
  257. package/doc/interfaces/controls.ToolbarControlProps.html +9 -182
  258. package/doc/interfaces/controls.ValidateableTextControlProps.html +40 -213
  259. package/doc/interfaces/controls.toolbarItem.html +7 -180
  260. package/doc/interfaces/ipc.ILogger.html +3 -176
  261. package/doc/interfaces/models.AboutInformation.html +8 -181
  262. package/doc/interfaces/models.ActivateLicenseRequest.html +6 -179
  263. package/doc/interfaces/models.AddAllConnectedCanChannelsRequest.html +3 -176
  264. package/doc/interfaces/models.AddAllConnectedLinChannelsRequest.html +3 -176
  265. package/doc/interfaces/models.AddOrUpdateDataProcessorRequest.html +9 -182
  266. package/doc/interfaces/models.AddOrUpdateSourceRequest.html +5 -178
  267. package/doc/interfaces/models.AddOrUpdateTargetRequest.html +5 -178
  268. package/doc/interfaces/models.ApiPreferences.html +5 -178
  269. package/doc/interfaces/models.AppEventArgs.html +4 -177
  270. package/doc/interfaces/models.BaseNodeProperties.html +5 -178
  271. package/doc/interfaces/models.BusStatus.html +17 -190
  272. package/doc/interfaces/models.CanBusParamLimits.html +7 -180
  273. package/doc/interfaces/models.CanBusParams.html +3 -176
  274. package/doc/interfaces/models.CanBusSpeed.html +12 -185
  275. package/doc/interfaces/models.CanBusSpeedInfo.html +18 -191
  276. package/doc/interfaces/models.CanChannelCapacity.html +7 -180
  277. package/doc/interfaces/models.CanChannelConfiguration.html +12 -185
  278. package/doc/interfaces/models.CanFDBusSpeedCombination.html +4 -177
  279. package/doc/interfaces/models.CanFDBusSpeedInfo.html +14 -187
  280. package/doc/interfaces/models.CanFrameFlags.html +3 -176
  281. package/doc/interfaces/models.CanMessageFilterSettings.html +5 -178
  282. package/doc/interfaces/models.Channel.html +5 -178
  283. package/doc/interfaces/models.ChannelSettings.html +20 -193
  284. package/doc/interfaces/models.ClearLinMessageRequest.html +6 -179
  285. package/doc/interfaces/models.ConnectNodesRequest.html +4 -177
  286. package/doc/interfaces/models.DataProcessingStatus.html +6 -179
  287. package/doc/interfaces/models.DataProcessorNodeProperties.html +8 -181
  288. package/doc/interfaces/models.DatabasesSettings.html +3 -176
  289. package/doc/interfaces/models.Device.html +6 -179
  290. package/doc/interfaces/models.DeviceEventArgs.html +4 -177
  291. package/doc/interfaces/models.Devices.html +2 -175
  292. package/doc/interfaces/models.DisconnectNodesRequest.html +4 -177
  293. package/doc/interfaces/models.Empty.html +2 -175
  294. package/doc/interfaces/models.ErrorStatus.html +3 -176
  295. package/doc/interfaces/models.Frame.html +19 -192
  296. package/doc/interfaces/models.FrameDefinition.html +10 -181
  297. package/doc/interfaces/models.FrameDefinitions.html +2 -175
  298. package/doc/interfaces/models.FramePropertyValue.html +4 -177
  299. package/doc/interfaces/models.FrameReceivedTrigger.html +6 -179
  300. package/doc/interfaces/models.Frame_PropertiesEntry.html +2 -175
  301. package/doc/interfaces/models.Frames.html +2 -175
  302. package/doc/interfaces/models.GetCanChannelBusSpeedsRequest.html +3 -176
  303. package/doc/interfaces/models.GetCanChannelBusSpeedsResponse.html +6 -179
  304. package/doc/interfaces/models.GetCanFdBusSpeedsRequest.html +5 -178
  305. package/doc/interfaces/models.GetCanFdBusSpeedsResponse.html +4 -177
  306. package/doc/interfaces/models.GetChannelsFromLogFileRequest.html +4 -177
  307. package/doc/interfaces/models.GetChannelsFromLogFileResponse.html +3 -176
  308. package/doc/interfaces/models.GetClassicCanBusSpeedsRequest.html +4 -177
  309. package/doc/interfaces/models.GetClassicCanBusSpeedsResponse.html +4 -177
  310. package/doc/interfaces/models.GetDataProcessorResponse.html +3 -176
  311. package/doc/interfaces/models.GetDevicesRequest.html +3 -176
  312. package/doc/interfaces/models.GetDevicesResponse.html +3 -176
  313. package/doc/interfaces/models.GetFrameDefinitionsFromDatabaseFilesRequest.html +3 -176
  314. package/doc/interfaces/models.GetLicensesResponse.html +3 -176
  315. package/doc/interfaces/models.GetLogFileFormatsRequest.html +6 -179
  316. package/doc/interfaces/models.GetLogFileFormatsResponse.html +3 -176
  317. package/doc/interfaces/models.GetLogLevelResponse.html +4 -177
  318. package/doc/interfaces/models.GetScheduleTablesFromDatabaseFilesRequest.html +3 -176
  319. package/doc/interfaces/models.GetScheduleTablesFromDatabaseFilesResponse.html +3 -176
  320. package/doc/interfaces/models.GetServiceExtensionInfoRequest.html +4 -177
  321. package/doc/interfaces/models.GetServiceExtensionInfoResponse.html +7 -180
  322. package/doc/interfaces/models.GetSignalDataFromMessageDataRequest.html +5 -178
  323. package/doc/interfaces/models.GetSignalDataFromMessageDataResponse.html +4 -177
  324. package/doc/interfaces/models.GetSourceResponse.html +3 -176
  325. package/doc/interfaces/models.GetTargetResponse.html +3 -176
  326. package/doc/interfaces/models.ILogFileFormat.html +3 -176
  327. package/doc/interfaces/models.IProject.html +4 -177
  328. package/doc/interfaces/models.IUserSettings.html +13 -183
  329. package/doc/interfaces/models.IWorkspaceComponentPaneData.html +4 -177
  330. package/doc/interfaces/models.IWorkspaceContainerPaneData.html +4 -177
  331. package/doc/interfaces/models.IWorkspaceData.html +4 -177
  332. package/doc/interfaces/models.IWorkspacePaneData.html +4 -177
  333. package/doc/interfaces/models.IdentifierRequest.html +3 -176
  334. package/doc/interfaces/models.IdentifiersRequest.html +3 -176
  335. package/doc/interfaces/models.InstallServiceExtensionRequest.html +6 -179
  336. package/doc/interfaces/models.InterpreterSettings.html +4 -177
  337. package/doc/interfaces/models.J1939InterpreterSettings.html +2 -175
  338. package/doc/interfaces/models.LicenseInformation.html +18 -191
  339. package/doc/interfaces/models.Licenses.html +3 -176
  340. package/doc/interfaces/models.LinChannelConfiguration.html +12 -185
  341. package/doc/interfaces/models.LinFrameFlags.html +3 -176
  342. package/doc/interfaces/models.LogMessage.html +8 -181
  343. package/doc/interfaces/models.LogMessages.html +3 -176
  344. package/doc/interfaces/models.LogReplaySettings.html +24 -197
  345. package/doc/interfaces/models.LogReplaySettings_ChannelIdentifiersEntry.html +2 -175
  346. package/doc/interfaces/models.LogReplayStatus.html +3 -176
  347. package/doc/interfaces/models.MeasurementEventArgs.html +5 -178
  348. package/doc/interfaces/models.MeasurementSetup.html +3 -176
  349. package/doc/interfaces/models.MessageLoggerSettings.html +40 -213
  350. package/doc/interfaces/models.MessageLoggerStatus.html +3 -176
  351. package/doc/interfaces/models.NodeStatus.html +18 -191
  352. package/doc/interfaces/models.NodeStatuses.html +3 -176
  353. package/doc/interfaces/models.OnlineStatus.html +3 -176
  354. package/doc/interfaces/models.PeriodicTransmissionSettings.html +34 -207
  355. package/doc/interfaces/models.RequestLinMessageRequest.html +6 -179
  356. package/doc/interfaces/models.ScheduleTable.html +5 -178
  357. package/doc/interfaces/models.ScheduleTableEntry.html +5 -178
  358. package/doc/interfaces/models.SendLinWakeupFrameRequest.html +4 -177
  359. package/doc/interfaces/models.SendMessageRequest.html +3 -176
  360. package/doc/interfaces/models.ServiceExtensionSettings.html +4 -177
  361. package/doc/interfaces/models.SetLogLevelRequest.html +4 -177
  362. package/doc/interfaces/models.SetMeasurementSetupRequest.html +3 -176
  363. package/doc/interfaces/models.SetSignalDataToMessageDataRequest.html +7 -180
  364. package/doc/interfaces/models.SetSignalDataToMessageDataResponse.html +5 -178
  365. package/doc/interfaces/models.SignalDefinition.html +11 -181
  366. package/doc/interfaces/models.SignalDefinition_EnumValuesEntry.html +2 -175
  367. package/doc/interfaces/models.SignalDefinitions.html +2 -175
  368. package/doc/interfaces/models.SignalValue.html +5 -180
  369. package/doc/interfaces/models.SignalValueTrigger.html +14 -187
  370. package/doc/interfaces/models.SourceNodeProperties.html +7 -180
  371. package/doc/interfaces/models.StartPeriodicTransmissionRequest.html +3 -176
  372. package/doc/interfaces/models.StartPeriodicTransmissionResponse.html +3 -176
  373. package/doc/interfaces/models.TargetNodeProperties.html +5 -178
  374. package/doc/interfaces/models.TriggerSettings.html +8 -181
  375. package/doc/interfaces/models.UninstallServiceExtensionRequest.html +3 -176
  376. package/doc/interfaces/models.UpdateLinMessageRequest.html +4 -177
  377. package/doc/interfaces/models.UpdatePeriodicTransmissionRequest.html +7 -0
  378. package/doc/interfaces/models.WriteFrame.html +6 -183
  379. package/doc/modules/controls.html +3 -241
  380. package/doc/modules/hooks.html +3 -196
  381. package/doc/modules/icons.html +2 -216
  382. package/doc/modules/ipc.html +2 -202
  383. package/doc/modules/models.html +2 -478
  384. package/doc/modules.html +1 -179
  385. package/doc/types/controls.ContextMenuOption.html +6 -179
  386. package/doc/types/controls.SelectOption.html +4 -177
  387. package/doc/types/controls.StringsMap.html +2 -175
  388. package/doc/types/controls.canIdentifierType.html +2 -175
  389. package/doc/types/models.IReadOnlyDataBuffer.html +1 -174
  390. package/doc/types/models.themes.html +1 -174
  391. package/doc/variables/models.AboutInformation-1.html +1 -174
  392. package/doc/variables/models.ActivateLicenseRequest-1.html +1 -174
  393. package/doc/variables/models.AddAllConnectedCanChannelsRequest-1.html +1 -174
  394. package/doc/variables/models.AddAllConnectedLinChannelsRequest-1.html +1 -174
  395. package/doc/variables/models.AddOrUpdateDataProcessorRequest-1.html +1 -174
  396. package/doc/variables/models.AddOrUpdateSourceRequest-1.html +1 -174
  397. package/doc/variables/models.AddOrUpdateTargetRequest-1.html +1 -174
  398. package/doc/variables/models.ApiPreferences-1.html +1 -174
  399. package/doc/variables/models.AppEventArgs-1.html +1 -174
  400. package/doc/variables/models.BaseNodeProperties-1.html +1 -174
  401. package/doc/variables/models.BusStatus-1.html +1 -174
  402. package/doc/variables/models.CanBusParamLimits-1.html +1 -174
  403. package/doc/variables/models.CanBusParams-1.html +1 -174
  404. package/doc/variables/models.CanBusSpeed-1.html +1 -174
  405. package/doc/variables/models.CanBusSpeedInfo-1.html +1 -174
  406. package/doc/variables/models.CanChannelCapacity-1.html +1 -174
  407. package/doc/variables/models.CanChannelConfiguration-1.html +1 -174
  408. package/doc/variables/models.CanFDBusSpeedCombination-1.html +1 -174
  409. package/doc/variables/models.CanFDBusSpeedInfo-1.html +1 -174
  410. package/doc/variables/models.CanFrameFlags-1.html +1 -174
  411. package/doc/variables/models.CanMessageFilterSettings-1.html +1 -174
  412. package/doc/variables/models.Channel-1.html +1 -174
  413. package/doc/variables/models.ChannelSettings-1.html +1 -174
  414. package/doc/variables/models.ClearLinMessageRequest-1.html +1 -174
  415. package/doc/variables/models.ConnectNodesRequest-1.html +1 -174
  416. package/doc/variables/models.DataProcessingStatus-1.html +1 -174
  417. package/doc/variables/models.DataProcessorNodeProperties-1.html +1 -174
  418. package/doc/variables/models.DatabasesSettings-1.html +1 -174
  419. package/doc/variables/models.Device-1.html +1 -174
  420. package/doc/variables/models.DeviceEventArgs-1.html +1 -174
  421. package/doc/variables/models.Devices-1.html +1 -174
  422. package/doc/variables/models.DisconnectNodesRequest-1.html +1 -174
  423. package/doc/variables/models.Empty-1.html +1 -174
  424. package/doc/variables/models.ErrorStatus-1.html +1 -174
  425. package/doc/variables/models.Frame-1.html +1 -174
  426. package/doc/variables/models.FrameDefinition-1.html +1 -174
  427. package/doc/variables/models.FrameDefinitions-1.html +1 -174
  428. package/doc/variables/models.FramePropertyValue-1.html +1 -174
  429. package/doc/variables/models.FrameReceivedTrigger-1.html +1 -174
  430. package/doc/variables/models.Frame_PropertiesEntry-1.html +1 -174
  431. package/doc/variables/models.Frames-1.html +1 -174
  432. package/doc/variables/models.GetCanChannelBusSpeedsRequest-1.html +1 -174
  433. package/doc/variables/models.GetCanChannelBusSpeedsResponse-1.html +1 -174
  434. package/doc/variables/models.GetCanFdBusSpeedsRequest-1.html +1 -174
  435. package/doc/variables/models.GetCanFdBusSpeedsResponse-1.html +1 -174
  436. package/doc/variables/models.GetChannelsFromLogFileRequest-1.html +1 -174
  437. package/doc/variables/models.GetChannelsFromLogFileResponse-1.html +1 -174
  438. package/doc/variables/models.GetClassicCanBusSpeedsRequest-1.html +1 -174
  439. package/doc/variables/models.GetClassicCanBusSpeedsResponse-1.html +1 -174
  440. package/doc/variables/models.GetDataProcessorResponse-1.html +1 -174
  441. package/doc/variables/models.GetDevicesRequest-1.html +1 -174
  442. package/doc/variables/models.GetDevicesResponse-1.html +1 -174
  443. package/doc/variables/models.GetFrameDefinitionsFromDatabaseFilesRequest-1.html +1 -174
  444. package/doc/variables/models.GetLicensesResponse-1.html +1 -174
  445. package/doc/variables/models.GetLogFileFormatsRequest-1.html +1 -174
  446. package/doc/variables/models.GetLogFileFormatsResponse-1.html +1 -174
  447. package/doc/variables/models.GetLogLevelResponse-1.html +1 -174
  448. package/doc/variables/models.GetScheduleTablesFromDatabaseFilesRequest-1.html +1 -174
  449. package/doc/variables/models.GetScheduleTablesFromDatabaseFilesResponse-1.html +1 -174
  450. package/doc/variables/models.GetServiceExtensionInfoRequest-1.html +1 -174
  451. package/doc/variables/models.GetServiceExtensionInfoResponse-1.html +1 -174
  452. package/doc/variables/models.GetSignalDataFromMessageDataRequest-1.html +1 -174
  453. package/doc/variables/models.GetSignalDataFromMessageDataResponse-1.html +1 -174
  454. package/doc/variables/models.GetSourceResponse-1.html +1 -174
  455. package/doc/variables/models.GetTargetResponse-1.html +1 -174
  456. package/doc/variables/models.IdentifierRequest-1.html +1 -174
  457. package/doc/variables/models.IdentifiersRequest-1.html +1 -174
  458. package/doc/variables/models.InstallServiceExtensionRequest-1.html +1 -174
  459. package/doc/variables/models.InterpreterSettings-1.html +1 -174
  460. package/doc/variables/models.J1939InterpreterSettings-1.html +1 -174
  461. package/doc/variables/models.LicenseInformation-1.html +1 -174
  462. package/doc/variables/models.Licenses-1.html +1 -174
  463. package/doc/variables/models.LinChannelConfiguration-1.html +1 -174
  464. package/doc/variables/models.LinFrameFlags-1.html +1 -174
  465. package/doc/variables/models.LogMessage-1.html +1 -174
  466. package/doc/variables/models.LogMessages-1.html +1 -174
  467. package/doc/variables/models.LogReplaySettings-1.html +1 -174
  468. package/doc/variables/models.LogReplaySettings_ChannelIdentifiersEntry-1.html +1 -174
  469. package/doc/variables/models.LogReplayStatus-1.html +1 -174
  470. package/doc/variables/models.MeasurementEventArgs-1.html +1 -174
  471. package/doc/variables/models.MeasurementSetup-1.html +1 -174
  472. package/doc/variables/models.MessageLoggerSettings-1.html +1 -174
  473. package/doc/variables/models.MessageLoggerStatus-1.html +1 -174
  474. package/doc/variables/models.NodeStatus-1.html +1 -174
  475. package/doc/variables/models.NodeStatuses-1.html +1 -174
  476. package/doc/variables/models.OnlineStatus-1.html +1 -174
  477. package/doc/variables/models.PeriodicTransmissionSettings-1.html +1 -174
  478. package/doc/variables/models.RequestLinMessageRequest-1.html +1 -174
  479. package/doc/variables/models.ScheduleTable-1.html +1 -174
  480. package/doc/variables/models.ScheduleTableEntry-1.html +1 -174
  481. package/doc/variables/models.SendLinWakeupFrameRequest-1.html +1 -174
  482. package/doc/variables/models.SendMessageRequest-1.html +1 -174
  483. package/doc/variables/models.ServiceExtensionSettings-1.html +1 -174
  484. package/doc/variables/models.SetLogLevelRequest-1.html +1 -174
  485. package/doc/variables/models.SetMeasurementSetupRequest-1.html +1 -174
  486. package/doc/variables/models.SetSignalDataToMessageDataRequest-1.html +1 -174
  487. package/doc/variables/models.SetSignalDataToMessageDataResponse-1.html +1 -174
  488. package/doc/variables/models.SignalDefinition-1.html +1 -174
  489. package/doc/variables/models.SignalDefinition_EnumValuesEntry-1.html +1 -174
  490. package/doc/variables/models.SignalDefinitions-1.html +1 -174
  491. package/doc/variables/models.SignalValue-1.html +1 -174
  492. package/doc/variables/models.SignalValueTrigger-1.html +1 -174
  493. package/doc/variables/models.SourceNodeProperties-1.html +1 -174
  494. package/doc/variables/models.StartPeriodicTransmissionRequest-1.html +1 -174
  495. package/doc/variables/models.StartPeriodicTransmissionResponse-1.html +1 -174
  496. package/doc/variables/models.TargetNodeProperties-1.html +1 -174
  497. package/doc/variables/models.TriggerSettings-1.html +1 -174
  498. package/doc/variables/models.UninstallServiceExtensionRequest-1.html +1 -174
  499. package/doc/variables/models.UpdateLinMessageRequest-1.html +1 -174
  500. package/doc/variables/models.UpdatePeriodicTransmissionRequest-1.html +1 -0
  501. package/doc/variables/models.WriteFrame-1.html +1 -174
  502. package/doc/variables/models.defaultUserSettings.html +2 -175
  503. package/package.json +2 -3
  504. package/doc/assets/material-style.css +0 -338
package/README.md CHANGED
@@ -4,49 +4,61 @@
4
4
 
5
5
  The purpose with this package is to help developers to create user interface extensions for the Kvaser CanKing bus analysis tool.
6
6
 
7
- Kvaser CanKing is a free of charge, general-purpose CAN and LIN bus analysis software that is compatible with all Kvaser CAN and LIN interfaces and the Kvaser virtual CAN bus. It's available on Windows (x64) and Linux (x64 and ARM).
7
+ Kvaser CanKing is a free of charge, general-purpose CAN and LIN bus analysis software that is compatible with all Kvaser CAN
8
+ and LIN interfaces and the Kvaser virtual CAN bus. It's available on Windows (x64) and Linux (x64 and ARM).
8
9
 
9
- There are a lot of functionality already included in the base version of CanKing, but it is also possible to extend the functionality and the user interface by creating extensions.
10
+ There are a lot of functionality already included in the base version of CanKing, but it is also possible to extend the
11
+ functionality and the user interface by creating extensions.
10
12
 
11
- An extension is developed as a stand-alone [React](<https://react.dev/>) web application. The web application will be hosted by an express web server inside CanKing and it will be mounted into the CanKing user interface using a webview element.
13
+ An extension is developed as a stand-alone [React](<https://react.dev/>) web application. The web application will be hosted
14
+ by an express web server inside CanKing and it will be mounted into the CanKing user interface using a webview element.
12
15
 
13
- When an extension is mounted into CanKing, then a preload script will run to inject inter-process communication (IPC) functions. These functions will make it possible for the extension to communicate with CanKing to get information and to interact with the CAN/LIN bus.
16
+ When an extension is mounted into CanKing, then a preload script will run to inject inter-process communication (IPC)
17
+ functions. These functions will make it possible for the extension to communicate with CanKing to get information and to
18
+ interact with the CAN/LIN bus.
14
19
 
15
20
  The IPC functions are accessible by importing different modules from the @kvaser/canking-api package.
16
21
 
17
22
  To get or subscribe on CanKing data there are different React hooks to be used. All these can be found in the hooks module.
18
23
 
19
- import { useUserSetting, useMeasurementSetup } from '@kvaser/canking-api/hooks';
20
-
21
- ...
24
+ ```tsx
25
+ import { useUserSetting, useMeasurementSetup } from '@kvaser/canking-api/hooks';
22
26
 
23
- const userSettings = useUserSettings();
24
- const measurementSetup = useMeasurementSetup();
27
+ ...
28
+
29
+ const userSettings = useUserSettings();
30
+ const measurementSetup = useMeasurementSetup();
31
+ ```
25
32
 
26
33
  To interact with CanKing there are different functions that can be imported from the ipc module.
27
34
 
28
- import { sendCanMessage } from '@kvaser/canking-api/ipc';
35
+ ```tsx
36
+ import { sendCanMessage } from '@kvaser/canking-api/ipc';
37
+
38
+ ...
29
39
 
30
- ...
40
+ sendCanMessage(channelId, frameId, data, flags);
41
+ ```
31
42
 
32
- sendCanMessage(channelId, frameId, data, flags);
43
+ The @kvaser/canking-api package also includes some React components that you can use, e.g. there is a component for selecting
44
+ channel.
33
45
 
34
- The @kvaser/canking-api package also includes some React components that you can use, e.g. there is a component for selecting channel.
46
+ ```tsx
47
+ import { CanChannelSelectControl } from '@kvaser/canking-api/controls';
35
48
 
36
- import { CanChannelSelectControl } from '@kvaser/canking-api/controls';
37
-
38
- ...
49
+ ...
39
50
 
40
- function WorkspaceView() {
41
- const [channelId, setChannelId] = useState('');
42
- return (
43
- <CanChannelSelectControl
44
- channelIdentifier={channelId}
45
- onChannelIdentifierChange={setChannelId}
46
- hideSectionControl
47
- />
48
- );
49
- }
51
+ function WorkspaceView() {
52
+ const [channelId, setChannelId] = useState('');
53
+ return (
54
+ <CanChannelSelectControl
55
+ channelIdentifier={channelId}
56
+ onChannelIdentifierChange={setChannelId}
57
+ hideSectionControl
58
+ />
59
+ );
60
+ }
61
+ ```
50
62
 
51
63
  ## Prerequisites
52
64
 
@@ -56,59 +68,71 @@ Before creating a new CanKing Extension the following softwares need to be insta
56
68
  - Kvaser CanKing: <https://kvaser.com/canking/>
57
69
  - Kvaser Drivers: <https://resources.kvaser.com/7330130980013/latest/kvaser_drivers_setup.exe>
58
70
 
59
- You will also need an IDE (Integrated Development Environment) to edit and debug your code. We recommende that you're using [Visual Studio Code](https://code.visualstudio.com/).
71
+ You will also need an IDE (Integrated Development Environment) to edit and debug your code. We recommend that you're using
72
+ [Visual Studio Code](https://code.visualstudio.com/).
60
73
 
61
74
  With Visual Studio Code you might also want to install these extensions to help you with code formatting and code analysing:
62
75
 
63
- - ESLint (dbaeumer.vscode-eslint)
64
- - Prettier - Code formatter (esbenp.prettier-vscode)
65
- - EditorConfig for VS Code (editorconfig.editorconfig)
76
+ - [ESLint (dbaeumer.vscode-eslint)](<https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint>)
77
+ - [Prettier - Code formatter (esbenp.prettier-vscode)](<https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode>)
78
+ - [EditorConfig for VS Code (editorconfig.editorconfig)](<https://marketplace.visualstudio.com/items?itemName=EditorConfig.EditorConfig>)
66
79
 
67
80
  ## Generate a new CanKing Extension project
68
81
 
69
- The simplest way to create a new CanKing Extension project is to use the script that is included in the [@kvaser/create-canking-extension](<https://www.npmjs.com/package/@kvaser/create-canking-extension>) package. The script is used like this:
82
+ The simplest way to create a new CanKing Extension project is to use the script that is included in the
83
+ [@kvaser/create-canking-extension](<https://www.npmjs.com/package/@kvaser/create-canking-extension>) package. The script is
84
+ used like this:
70
85
 
71
- npm create @kvaser/canking-extension@latest
86
+ ```bash
87
+ npm create @kvaser/canking-extension@latest
88
+ ```
72
89
 
73
90
  Then follow the prompts.
74
91
 
75
- You can also directly specify a project name via a command line argument.
92
+ You can also specify a project name via a command line argument.
76
93
 
77
- npm create @kvaser/canking-extension@latest my-ck-extension
94
+ ```bash
95
+ npm create @kvaser/canking-extension@latest my-ck-extension
96
+ ```
78
97
 
79
- This command will create a new project in a new folder with the same name as the specified project name.
98
+ This command will create a new project in a new folder with the same name as the specified project name (my-ck-extension).
80
99
  You can use `.` for the project name to scaffold your project in the current directory.
81
100
 
82
101
  The command above will create a folder structure like this:
83
102
 
84
- my-ck-extension
85
- │ .gitignore
86
- │ .prettierrc
87
- eslint.config.mjs
88
- index.html
89
- package.json
90
- tsconfig.app.json
91
- │ tsconfig.json
92
- │ tsconfig.node.json
93
- vite.config.ts
103
+ ```text
104
+ my-ck-extension
105
+ │ .gitignore
106
+ │ .prettierrc
107
+ eslint.config.mjs
108
+ index.html
109
+ package.json
110
+ │ tsconfig.app.json
111
+ │ tsconfig.json
112
+ tsconfig.node.json
113
+ │ vite.config.ts
114
+
115
+ ├───.vscode
116
+ │ launch.json
117
+
118
+ └───src
119
+ │ App.tsx
120
+ │ main.tsx
121
+ │ vite-env.d.ts
94
122
 
95
- ├───.vscode
96
- launch.json
123
+ ├───assets
124
+ icon.png
97
125
 
98
- └───src
99
- │ App.tsx
100
- │ main.tsx
101
- │ vite-env.d.ts
102
-
103
- ├───assets
104
- │ icon.png
105
-
106
- └───WorkspaceView
107
- index.tsx
126
+ └───WorkspaceView
127
+ index.tsx
128
+ ```
108
129
 
109
- The project follows a similar file structure as the one that is created for a [Vite](<https://vite.dev/>) project created using the react-ts template. There are some extra information added to the package.json file that are needed for CanKing and the src files are modified to be used inside CanKing.
130
+ The project follows a similar file structure as the one that is created for a [Vite](<https://vite.dev/>) project created
131
+ using the react-ts template. There are some extra information added to the package.json file that are needed for CanKing and
132
+ the src files are modified to be used inside CanKing.
110
133
 
111
- The my-ck-extension/src/WorkspaceView/index.tsx file is the file that includes the React component that will be mounted into CanKing, so this is the file you should implement to create your extension.
134
+ The my-ck-extension/src/WorkspaceView/index.tsx file is the file that includes the React component that will be mounted into
135
+ CanKing, so this is the file you should implement to create your extension.
112
136
 
113
137
  ## Develop a CanKing Extension
114
138
 
@@ -120,7 +144,9 @@ so this is the component that should be implemented to implement the extension.
120
144
 
121
145
  To run the extension from command line enter:
122
146
 
123
- npm run start
147
+ ```bash
148
+ npm run start
149
+ ```
124
150
 
125
151
  To run the extension using Visual Studio Code debugger:
126
152
 
@@ -130,11 +156,15 @@ To run the extension using Visual Studio Code debugger:
130
156
 
131
157
  To run a production build of the extension you can enter this command:
132
158
 
133
- npm run startpreview
159
+ ```bash
160
+ npm run startpreview
161
+ ```
134
162
 
135
163
  If you need more information and help about how to interact with CanKing then you can run this command:
136
164
 
137
- npx @kvaser/canking-api --help
165
+ ```bash
166
+ npx @kvaser/canking-api --help
167
+ ```
138
168
 
139
169
  This will open up a help file in your web browser.
140
170
 
@@ -142,10 +172,14 @@ This will open up a help file in your web browser.
142
172
 
143
173
  To package your extension for distribution you should run this command from the command line:
144
174
 
145
- npm pack
175
+ ```bash
176
+ npm pack
177
+ ```
146
178
 
147
179
  This command will create a tarball file in the root folder of your project called:
148
180
 
149
- <project-name>-<version>.tgz
181
+ ```text
182
+ <project-name>-<version>.tgz
183
+ ```
150
184
 
151
185
  This tarball can then be installed in CanKing using the head menu 'More'->'Extensions'->'Install'.
@@ -1,5 +1,89 @@
1
1
  Redistributable files in Kvaser CanKing GUI Extensions SDK
2
2
  ===================================================================================================
3
3
 
4
- All files in the dist folder and in its sub-folders may be redistributed with your application,
5
- provided they are only used together with genuine Kvaser hardware.
4
+ The following files in the dist folder and in its sub-folders may be redistributed with your
5
+ application, provided they are only used together with genuine Kvaser hardware.
6
+
7
+ dist
8
+ │ controls.js
9
+ │ controls.mjs
10
+ │ ElectronAPIFake.js
11
+ │ ElectronAPIFake.mjs
12
+ │ grpc.js
13
+ │ grpc.mjs
14
+ │ hooks.js
15
+ │ hooks.mjs
16
+ │ icons.js
17
+ │ icons.mjs
18
+ │ index.d.ts
19
+ │ index.js
20
+ │ index.mjs
21
+ │ ipc.js
22
+ │ ipc.mjs
23
+ │ measurement_settings.js
24
+ │ measurement_settings.mjs
25
+ │ models.js
26
+ │ models.mjs
27
+ │ status_params.js
28
+ │ status_params.mjs
29
+
30
+ ├───controls
31
+ │ CanChannelSelectControl.d.ts
32
+ │ CanIdentifierControl.d.ts
33
+ │ CanKingDataProvider.d.ts
34
+ │ CheckboxControl.d.ts
35
+ │ ContextMenu.d.ts
36
+ │ DropdownButton.d.ts
37
+ │ DropdownPanel.d.ts
38
+ │ FillBox.d.ts
39
+ │ FormControlRow.d.ts
40
+ │ index.d.ts
41
+ │ InlineEditor.d.ts
42
+ │ LocalizedStrings.d.ts
43
+ │ NumberRangeControl.d.ts
44
+ │ OneLineButton.d.ts
45
+ │ RadioControl.d.ts
46
+ │ RadioGroupControl.d.ts
47
+ │ SectionControl.d.ts
48
+ │ SelectControl.d.ts
49
+ │ SizedBox.d.ts
50
+ │ TableControl.d.ts
51
+ │ TabsPanel.d.ts
52
+ │ TextControl.d.ts
53
+ │ ToolbarControl.d.ts
54
+ │ ValidateableTextControl.d.ts
55
+
56
+ ├───grpc
57
+ │ index.d.ts
58
+
59
+ ├───hooks
60
+ │ index.d.ts
61
+
62
+ ├───icons
63
+ │ index.d.ts
64
+
65
+ ├───ipc
66
+ │ index.d.ts
67
+
68
+ ├───models
69
+ │ DataBuffer.d.ts
70
+ │ ElectronAPIFake.d.ts
71
+ │ index.d.ts
72
+ │ Point.d.ts
73
+
74
+ └───protos
75
+ │ app_params.d.ts
76
+ │ app_service.d.ts
77
+ │ common_params.d.ts
78
+ │ device_params.d.ts
79
+ │ device_service.d.ts
80
+ │ frame_params.d.ts
81
+ │ measurement_params.d.ts
82
+ │ measurement_service.d.ts
83
+ │ measurement_settings.d.ts
84
+ │ signal_params.d.ts
85
+ │ status_params.d.ts
86
+
87
+ └───google
88
+ └───protobuf
89
+ empty.d.ts
@@ -1 +1 @@
1
- "use strict";var p=Object.defineProperty;var g=(r,e,s)=>e in r?p(r,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):r[e]=s;var t=(r,e,s)=>g(r,typeof e!="symbol"?e+"":e,s);require("long");const v=require("./measurement_settings.js");class d{constructor(e){t(this,"userSettings");this.userSettings=e}on(e,s){return()=>{}}once(e,s){return()=>{}}removeAllListeners(e){}removeListener(e,s){return this}send(e,...s){}invoke(e,...s){switch(e){case"rpc-get-devices":const n=[];return Promise.resolve(n);case"app-get-session-data":return Promise.resolve(null);case"app-get-user-settings":return Promise.resolve(this.userSettings);case"rpc-get-online-status":const o={isOnline:!1};return Promise.resolve(o);case"rpc-get-node-statuses":const c=[];return Promise.resolve(c);case"prj-get-meas-setup":return Promise.resolve(v.MeasurementSetup.create());case"prj-get-workspaces":const i=[];return Promise.resolve(i);case"prj-get-workspace-panes":const l=[];return Promise.resolve(l);case"app-get-workspace-view-session-data":case"rpc-start-periodic-transmission":return Promise.resolve("");case"rpc-get-message-log-file-formats":const u=[];return Promise.resolve(u);case"rpc-get-frame-definitions":const m=[];return Promise.resolve(m);case"mm-get-measurement-data-buffer":case"mm-get-latest-measurement-data":return Promise.resolve(frames);default:return Promise.resolve()}}postMessage(e,s,n){}sendSync(e,...s){}sendTo(e,s,...n){}sendToHost(e,...s){}}class P{insertCSS(e){return""}setZoomFactor(e){}setZoomLevel(e){}}class F{constructor(){t(this,"platform");t(this,"versions");t(this,"env")}}const a=r=>{const e={version:"1.0.0",theme:"light",language:"en",strings:{},showToolsPanel:!0,useHexNumericBase:!0,maxDataBytes:16,defaultProjectFolder:"",currentProjectFile:"",currentProjectFileName:"",recentProjectFiles:[],closeAppServiceAction:"prompt"};return{ipcRenderer:new d(r??e),webFrame:new P,process:new F}},f=a();exports.createElectronApiFake=a;exports.electronApiFake=f;
1
+ "use strict";var p=Object.defineProperty;var g=(r,e,s)=>e in r?p(r,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):r[e]=s;var t=(r,e,s)=>g(r,typeof e!="symbol"?e+"":e,s);require("long");const d=require("./measurement_settings.js");class v{constructor(e){t(this,"userSettings");this.userSettings=e}on(e,s){return()=>{}}once(e,s){return()=>{}}removeAllListeners(e){}removeListener(e,s){return this}send(e,...s){}invoke(e,...s){switch(e){case"rpc-get-devices":const n=[];return Promise.resolve(n);case"app-get-session-data":return Promise.resolve(null);case"app-get-user-settings":return Promise.resolve(this.userSettings);case"rpc-get-online-status":const o={isOnline:!1};return Promise.resolve(o);case"rpc-get-node-statuses":const c=[];return Promise.resolve(c);case"prj-get-meas-setup":return Promise.resolve(d.MeasurementSetup.create());case"prj-get-workspaces":const i=[];return Promise.resolve(i);case"prj-get-workspace-panes":const l=[];return Promise.resolve(l);case"app-get-workspace-view-session-data":case"rpc-start-periodic-transmission":return Promise.resolve("");case"rpc-get-message-log-file-formats":const u=[];return Promise.resolve(u);case"rpc-get-frame-definitions":const m=[];return Promise.resolve(m);case"mm-get-measurement-data-buffer":case"mm-get-latest-measurement-data":return Promise.resolve(frames);default:return Promise.resolve()}}postMessage(e,s,n){}sendSync(e,...s){}sendTo(e,s,...n){}sendToHost(e,...s){}}class F{insertCSS(e){return""}setZoomFactor(e){}setZoomLevel(e){}}class P{constructor(){t(this,"platform");t(this,"versions");t(this,"env")}}const a=r=>{const e={version:"1.0.0",theme:"light",language:"en",strings:{},showToolsPanel:!0,useHexNumericBase:!0,maxDataBytes:16,defaultProjectFolder:"",defaultLogFilesFolder:"",defaultCANDatabasesFolder:"",defaultLINDatabasesFolder:"",currentProjectFile:"",currentProjectFileName:"",recentProjectFiles:[],closeAppServiceAction:"prompt"};return{ipcRenderer:new v(r??e),webFrame:new F,process:new P}},f=a();exports.createElectronApiFake=a;exports.electronApiFake=f;
@@ -1,9 +1,9 @@
1
- var u = Object.defineProperty;
2
- var p = (r, e, s) => e in r ? u(r, e, { enumerable: !0, configurable: !0, writable: !0, value: s }) : r[e] = s;
1
+ var m = Object.defineProperty;
2
+ var p = (r, e, s) => e in r ? m(r, e, { enumerable: !0, configurable: !0, writable: !0, value: s }) : r[e] = s;
3
3
  var t = (r, e, s) => p(r, typeof e != "symbol" ? e + "" : e, s);
4
4
  import "long";
5
5
  import { ab as g } from "./measurement_settings.mjs";
6
- class v {
6
+ class d {
7
7
  /**
8
8
  * Creates a new IpcRendererFake.
9
9
  */
@@ -124,8 +124,8 @@ class v {
124
124
  const l = [];
125
125
  return Promise.resolve(l);
126
126
  case "rpc-get-frame-definitions":
127
- const m = [];
128
- return Promise.resolve(m);
127
+ const u = [];
128
+ return Promise.resolve(u);
129
129
  case "mm-get-measurement-data-buffer":
130
130
  case "mm-get-latest-measurement-data":
131
131
  return Promise.resolve(frames);
@@ -190,7 +190,7 @@ class v {
190
190
  sendToHost(e, ...s) {
191
191
  }
192
192
  }
193
- class d {
193
+ class v {
194
194
  /**
195
195
  * A key for the inserted CSS that can later be used to remove the CSS via
196
196
  * `webFrame.removeInsertedCSS(key)`.
@@ -222,7 +222,7 @@ class d {
222
222
  setZoomLevel(e) {
223
223
  }
224
224
  }
225
- class P {
225
+ class f {
226
226
  constructor() {
227
227
  /**
228
228
  * The process.platform property returns a string identifying the operating system platform
@@ -239,7 +239,7 @@ class P {
239
239
  t(this, "env");
240
240
  }
241
241
  }
242
- const f = (r) => {
242
+ const F = (r) => {
243
243
  const e = {
244
244
  version: "1.0.0",
245
245
  theme: "light",
@@ -249,18 +249,21 @@ const f = (r) => {
249
249
  useHexNumericBase: !0,
250
250
  maxDataBytes: 16,
251
251
  defaultProjectFolder: "",
252
+ defaultLogFilesFolder: "",
253
+ defaultCANDatabasesFolder: "",
254
+ defaultLINDatabasesFolder: "",
252
255
  currentProjectFile: "",
253
256
  currentProjectFileName: "",
254
257
  recentProjectFiles: [],
255
258
  closeAppServiceAction: "prompt"
256
259
  };
257
260
  return {
258
- ipcRenderer: new v(r ?? e),
259
- webFrame: new d(),
260
- process: new P()
261
+ ipcRenderer: new d(r ?? e),
262
+ webFrame: new v(),
263
+ process: new f()
261
264
  };
262
- }, w = f();
265
+ }, w = F();
263
266
  export {
264
- f as c,
267
+ F as c,
265
268
  w as e
266
269
  };
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 A=require("./index.js"),o=require("react/jsx-runtime"),l=require("react"),m=require("@mui/material"),ie=require("./icons.js"),de=require("fast-deep-equal");require("long");const K=require("./measurement_settings.js");function Pe(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const n in e)if(n!=="default"){const r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:()=>e[n]})}}return t.default=e,Object.freeze(t)}const V=Pe(l);function ce({id:e=void 0,label:t,checked:n,onChange:r,disabled:a=!1,size:i="small",sx:c=void 0}){const u=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:n,onChange:(s,d)=>r(d),onKeyDown:u}),label:t,slotProps:{typography:{noWrap:!0}},sx:c})}var ne=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Se(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function We(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var fe=We,Ue=typeof ne=="object"&&ne&&ne.Object===Object&&ne,De=Ue,ze=De,Ke=typeof self=="object"&&self&&self.Object===Object&&self,qe=ze||Ke||Function("return this")(),ve=qe,Ge=ve,Xe=function(){return Ge.Date.now()},He=Xe,Ye=/\s/;function Je(e){for(var t=e.length;t--&&Ye.test(e.charAt(t)););return t}var Qe=Je,Ze=Qe,Ve=/^\s+/;function et(e){return e&&e.slice(0,Ze(e)+1).replace(Ve,"")}var tt=et,nt=ve,rt=nt.Symbol,je=rt,ge=je,Ne=Object.prototype,at=Ne.hasOwnProperty,st=Ne.toString,Z=ge?ge.toStringTag:void 0;function lt(e){var t=at.call(e,Z),n=e[Z];try{e[Z]=void 0;var r=!0}catch{}var a=st.call(e);return r&&(t?e[Z]=n:delete e[Z]),a}var ot=lt,it=Object.prototype,ut=it.toString;function dt(e){return ut.call(e)}var ct=dt,me=je,ft=ot,bt=ct,gt="[object Null]",mt="[object Undefined]",he=me?me.toStringTag:void 0;function ht(e){return e==null?e===void 0?mt:gt:he&&he in Object(e)?ft(e):bt(e)}var xt=ht;function pt(e){return e!=null&&typeof e=="object"}var Ct=pt,St=xt,vt=Ct,jt="[object Symbol]";function Nt(e){return typeof e=="symbol"||vt(e)&&St(e)==jt}var Ft=Nt,kt=tt,xe=fe,yt=Ft,pe=NaN,Mt=/^[-+]0x[0-9a-f]+$/i,It=/^0b[01]+$/i,$t=/^0o[0-7]+$/i,Et=parseInt;function Rt(e){if(typeof e=="number")return e;if(yt(e))return pe;if(xe(e)){var t=typeof e.valueOf=="function"?e.valueOf():e;e=xe(t)?t+"":t}if(typeof e!="string")return e===0?e:+e;e=kt(e);var n=It.test(e);return n||$t.test(e)?Et(e.slice(2),n?2:8):Mt.test(e)?pe:+e}var wt=Rt,Tt=fe,oe=He,Ce=wt,_t="Expected a function",Lt=Math.max,At=Math.min;function Bt(e,t,n){var r,a,i,c,u,s,d=0,g=!1,p=!1,S=!0;if(typeof e!="function")throw new TypeError(_t);t=Ce(t)||0,Tt(n)&&(g=!!n.leading,p="maxWait"in n,i=p?Lt(Ce(n.maxWait)||0,t):i,S="trailing"in n?!!n.trailing:S);function j(f){var k=r,$=a;return r=a=void 0,d=f,c=e.apply($,k),c}function v(f){return d=f,u=setTimeout(E,t),g?j(f):c}function b(f){var k=f-s,$=f-d,U=t-k;return p?At(U,i-$):U}function y(f){var k=f-s,$=f-d;return s===void 0||k>=t||k<0||p&&$>=i}function E(){var f=oe();if(y(f))return N(f);u=setTimeout(E,b(f))}function N(f){return u=void 0,S&&r?j(f):(r=a=void 0,c)}function F(){u!==void 0&&clearTimeout(u),d=0,r=s=a=u=void 0}function h(){return u===void 0?c:N(oe())}function C(){var f=oe(),k=y(f);if(r=arguments,a=this,s=f,k){if(u===void 0)return v(s);if(p)return clearTimeout(u),u=setTimeout(E,t),j(s)}return u===void 0&&(u=setTimeout(E,t)),c}return C.cancel=F,C.flush=h,C}var Fe=Bt;const Ot=Se(Fe);var Pt=Fe,Wt=fe,Ut="Expected a function";function Dt(e,t,n){var r=!0,a=!0;if(typeof e!="function")throw new TypeError(Ut);return Wt(n)&&(r="leading"in n?!!n.leading:r,a="trailing"in n?!!n.trailing:a),Pt(e,t,{leading:r,maxWait:t,trailing:a})}var zt=Dt;const Kt=Se(zt),qt=(e,t,n,r)=>{switch(t){case"debounce":return Ot(e,n,r);case"throttle":return Kt(e,n,r);default:return e}},Gt=e=>{const t=V.useRef(e);return V.useEffect(()=>{t.current=e}),V.useMemo(()=>(...n)=>{var r;return(r=t.current)===null||r===void 0?void 0:r.call(t,...n)},[])},Xt=e=>{const[t,n]=V.useState((e==null?void 0:e.current)||null);return e&&setTimeout(()=>{e.current!==t&&n(e.current)},0),{refProxy:V.useMemo(()=>new Proxy(a=>{a!==t&&n(a)},{get(a,i){return i==="current"?t:a[i]},set(a,i,c){return i==="current"?n(c):a[i]=c,!0}}),[t]),refElement:t,setRefElement:n}},Ht=(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 Yt({skipOnMount:e=!1,refreshMode:t,refreshRate:n=1e3,refreshOptions:r,handleWidth:a=!0,handleHeight:i=!0,targetRef:c,observerOptions:u,onResize:s}={}){const d=l.useRef(e),g=Gt(s),[p,S]=l.useState({width:void 0,height:void 0}),{refProxy:j,refElement:v}=Xt(c),{box:b}=u||{},y=l.useCallback(N=>{if(!a&&!i)return;if(d.current){d.current=!1;return}const F=(h,C)=>a&&h.width!==C.width||i&&h.height!==C.height;N.forEach(h=>{const C=Ht(h,b);S(f=>F(f,C)?(g==null||g({width:C.width,height:C.height,entry:h}),C):f)})},[a,i,d,b]),E=l.useCallback(qt(y,t,n,r),[y,t,n,r]);return l.useEffect(()=>{let N;return v?(N=new window.ResizeObserver(E),N.observe(v,u)):(p.width||p.height)&&(g==null||g({width:null,height:null,entry:null}),S({width:void 0,height:void 0})),()=>{var F,h,C;(F=N==null?void 0:N.disconnect)===null||F===void 0||F.call(N),(C=(h=E).cancel)===null||C===void 0||C.call(h)}},[E,v]),Object.assign({ref:j},p)}const ke=()=>{const{ref:e,width:t}=Yt();return{ref:e,width:t}},ye=(...e)=>{const[t,n]=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);n(i=>i===void 0?a:i)}},[e]),t};function Me({columnItem:e,width:t=void 0,children:n=void 0}){return o.jsx("div",{ref:e.ref,children:o.jsx(m.Box,{sx:{width:t},children:n})})}const ee=m.styled(m.Button)(()=>({whiteSpace:"nowrap",minWidth:"max-content"}));function Jt({items:e,onSelect:t,onClose:n=void 0}){const r=l.useCallback(a=>{t(a),n&&n()},[n,t]);return o.jsx(o.Fragment,{children:e.map(a=>o.jsx(m.MenuItem,{onClick:()=>r(a.key),children:a.text},a.key))})}function Ie({id:e="dropdown-button",startIcon:t=void 0,endIcon:n=void 0,text:r=void 0,variant:a="outlined",color:i=void 0,size:c="medium",disabled:u=!1,children:s}){const[d,g]=l.useState(null),p=!!d,S=l.useCallback(b=>{g(b.currentTarget)},[]),j=l.useCallback(()=>{g(null)},[]),v=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":p?`${e}-popover`:void 0,"aria-haspopup":"true","aria-expanded":p?"true":void 0,onClick:S,size:c,color:i,disabled:u,children:t}),r&&o.jsx(ee,{id:e,"data-testid":e,"aria-controls":p?`${e}-popover`:void 0,"aria-haspopup":"true","aria-expanded":p?"true":void 0,variant:a,disableElevation:!0,onClick:S,startIcon:t,endIcon:n??o.jsx(ie.LineArrowDownIcon,{}),size:c,color:i,disabled:u,children:r}),o.jsx(m.Popover,{id:`${e}-popover`,"aria-labelledby":e,anchorEl:d,open:p,onClose:j,anchorOrigin:{vertical:"bottom",horizontal:"left"},transformOrigin:{vertical:"top",horizontal:"left"},children:v})]})}const Qt=m.styled("div")(({top:e,left:t,width:n,height:r})=>({top:e,left:t,width:n,height:r,position:"absolute",zIndex:1})),Zt=m.styled("div")(({top:e,left:t,width:n,height:r,position:a,theme:i})=>({top:e,left:t,width:n,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})),re=8;function Vt({id:e=void 0,position:t,parentWidth:n,parentHeight:r,maxLength:a,dropDownSize:i,autoHideTimeout:c=0,forceShow:u=!1,children:s=null}){const d=l.useMemo(()=>{switch(t){case"left":case"right":return Math.min(a,r);case"top":case"bottom":return Math.min(a,n);default:return a}},[a,r,n,t]),g=l.useMemo(()=>{switch(t){case"left":case"right":return(r-d)/2;case"top":return 0;case"bottom":return r-re;default:return 0}},[d,r,t]),p=l.useMemo(()=>{switch(t){case"left":return 0;case"right":return n-re;case"top":case"bottom":return(n-d)/2;default:return 0}},[d,n,t]),S=l.useMemo(()=>{switch(t){case"left":case"right":return re;case"top":case"bottom":return d;default:return 0}},[d,t]),j=l.useMemo(()=>{switch(t){case"left":case"right":return d;case"top":case"bottom":return re;default:return 0}},[d,t]),v=l.useMemo(()=>{switch(t){case"left":case"right":return(r-d)/2;case"top":return 0;case"bottom":return r-i;default:return 0}},[i,d,r,t]),b=l.useMemo(()=>{switch(t){case"left":return 0;case"right":return n-i;case"top":case"bottom":return(n-d)/2;default:return 0}},[i,d,n,t]),y=l.useMemo(()=>{switch(t){case"left":case"right":return i;case"top":case"bottom":return d;default:return 0}},[i,d,t]),E=l.useMemo(()=>{switch(t){case"left":case"right":return d;case"top":case"bottom":return i;default:return 0}},[i,d,t]),[N,F]=l.useState(!1),h=l.useCallback(f=>{f.buttons===0&&c&&F(!0)},[c]),C=l.useCallback(()=>{F(!1)},[]);return l.useEffect(()=>{let f;return N&&c&&(f=setTimeout(()=>F(!1),c)),()=>{f&&clearTimeout(f)}},[c,N]),o.jsxs(o.Fragment,{children:[o.jsx(Qt,{id:e,top:g,left:p,width:S,height:j,"aria-haspopup":"true",onMouseEnter:h}),(N||u===!0)&&o.jsx(Zt,{top:v,left:b,width:y,height:E,position:t,onMouseLeave:C,children:s})]})}function se({children:e,fullWidth:t=!0,spacing:n="4px",alignItems:r="center"}){return o.jsx(m.FormControl,{margin:"dense",fullWidth:t,variant:"standard",children:o.jsx(m.Stack,{direction:"row",spacing:n,alignItems:r,children:e})})}const en=m.styled("input")(({variant:e,theme:t})=>({...t.typography[e]})),tn=m.styled("span")(({variant:e,theme:t})=>({...t.typography[e]}));function nn({value:e,onChange:t,ariaLabel:n=void 0,variant:r="body1"}){const a=l.useRef(null),[i,c]=l.useState(e),u=l.useCallback(g=>c(g.target.value),[]),s=l.useCallback(g=>{(g.key==="Enter"||g.key==="Escape")&&(g.key==="Escape"&&(c(e),g.currentTarget.value=e),g.currentTarget.blur())},[e]),d=l.useCallback(g=>{t(g.target.value)},[t]);return l.useEffect(()=>{var g;(g=a.current)==null||g.focus()},[]),o.jsx(en,{ref:a,variant:r??"body1",type:"text","aria-label":n,value:i,onChange:u,onKeyDown:s,onBlur:d})}function rn({editMode:e,value:t,onValueChange:n,ariaLabel:r=void 0,variant:a="body1"}){return o.jsxs(o.Fragment,{children:[e&&o.jsx(nn,{ariaLabel:r,value:t,onChange:n,variant:a}),!e&&o.jsx(tn,{variant:a??"body1",children:t})]})}function $e({id:e=void 0,label:t=void 0,helperText:n="",value:r,onChange:a=void 0,onBlur:i=void 0,disabled:c=!1,error:u=!1,required:s=!1,margin:d="dense",size:g="small",fullWidth:p=!1,inputMode:S=void 0,pattern:j=void 0,startAdornment:v=void 0,endAdornment:b=void 0,sx:y=void 0,sxStartAdornment:E=void 0,sxEndAdornment:N=void 0}){const F=l.useCallback(k=>{a&&a(k.target.value)},[a]),h=l.useCallback(k=>{if(k.key==="Enter"&&!k.ctrlKey&&!k.altKey&&!k.shiftKey){k.preventDefault(),k.stopPropagation(),document.activeElement instanceof HTMLElement&&document.activeElement.blur();return}},[]),C=E??{marginBottom:1},f=N??{marginBottom:1};return o.jsx(m.TextField,{id:e,"aria-label":e,type:"text",label:t,helperText:n,margin:d,size:g,fullWidth:p,variant:"standard",value:r,onChange:F,onBlur:i,disabled:c,"aria-disabled":c,error:u,required:s,slotProps:{input:{startAdornment:v?o.jsx(m.InputAdornment,{position:"start",sx:{...C},children:v}):null,endAdornment:b?o.jsx(m.InputAdornment,{position:"end",sx:{...f},children:b}):null},htmlInput:{inputMode:S,pattern:j}},sx:y,onKeyDown:h})}function Q({id:e,label:t=void 0,helperText:n="",value:r,onChange:a=void 0,onBlur:i=void 0,disabled:c=!1,required:u=!1,margin:s="dense",size:d="small",fullWidth:g=!1,inputMode:p=void 0,pattern:S=void 0,startAdornment:j=void 0,endAdornment:v=void 0,sx:b=void 0,sxStartAdornment:y=void 0,sxEndAdornment:E=void 0,error:N=void 0,onErrorChange:F=void 0,onValidate:h=void 0,numberType:C=void 0,minValue:f=void 0,maxValue:k=void 0}){const[$,U]=l.useState(r),[D,B]=l.useState(N!==void 0?N:!1);l.useEffect(()=>{U(x=>r!==x?r:x)},[r]),l.useEffect(()=>{B(x=>N!==void 0&&N!==x?N:x)},[N]);const _=l.useCallback(x=>{const w=Number.parseInt(x,x.startsWith("0x")?16:10);let R=Number.isNaN(w);return R||(R=f!==void 0&&w<f),R||(R=k!==void 0&&w>k),{val:x,err:R}},[k,f]),q=l.useCallback(x=>{let w=!1;if(x.endsWith(",")||x.endsWith("."))return w=!0,{val:x,err:w};const R=Number.parseFloat(x.replace(",","."));return w=Number.isNaN(R),w||(w=f!==void 0&&R<f),w||(w=k!==void 0&&R>k),{val:R.toString(),err:w}},[k,f]),G=l.useCallback(x=>C==="int"?_(x):q(x),[C,q,_]),z=l.useCallback((x,w)=>{let R=x,X=!1;return!u&&(R===void 0||R==="")?{val:R,err:X}:(C!==void 0&&({val:R,err:X}=G(x)),!X&&h&&({val:R,err:X}=h(R,w)),{val:R,err:X})},[h,G]),M=l.useCallback(x=>{const{val:w,err:R}=z(x,"change");B(R),U(R?x:w),!R&&a&&a(w)},[a,z]),T=l.useCallback(()=>{const{val:x,err:w}=z($,"blur");B(w),!w&&i&&i(x)},[i,z,$]);return l.useEffect(()=>{F&&F(D)},[D,F]),l.useEffect(()=>{let x=!1;c||(x=z($,"blur").err),B(x)},[c]),o.jsx($e,{id:e,label:t,helperText:n,value:$,onChange:M,onBlur:T,disabled:c,error:D,required:u,margin:s,size:d,fullWidth:g,inputMode:p,pattern:S,startAdornment:j,endAdornment:v,sx:b,sxStartAdornment:y,sxEndAdornment:E})}function an({minValue:e,maxValue:t,onChange:n=void 0,onBlur:r=void 0,minError:a=void 0,onMinErrorChange:i=void 0,maxError:c=void 0,onMaxErrorChange:u=void 0,onMinValidate:s=void 0,onMaxValidate:d=void 0,minDisabled:g=!1,maxDisabled:p=!1,unit:S=void 0,lowerLimit:j=void 0,upperLimit:v=void 0}){const b=A.useLocalizedStrings(),y=Number.parseInt(e),E=Number.parseInt(t),[N,F]=l.useState(e.toString()),[h,C]=l.useState(t.toString()),[f,k]=l.useState(a===!0||Number.isNaN(y)||y<(j??0)||v&&y>v||!Number.isNaN(E)&&y>=E),[$,U]=l.useState(c===!0||Number.isNaN(E)||E<(j??0)||v&&E>v||!Number.isNaN(y)&&y>=E);l.useEffect(()=>{F(M=>e.toString()!==M?e.toString():M)},[e]),l.useEffect(()=>{k(M=>a!==void 0&&a!==M?a:M)},[a]),l.useEffect(()=>{C(M=>t.toString()!==M?t.toString():M)},[t]),l.useEffect(()=>{U(M=>c!==void 0&&c!==M?c:M)},[c]);const D=l.useCallback(M=>{const T=Number.parseInt(M,M.startsWith("0x")?16:10),x=Number.parseInt(h),w=Number.isNaN(T)||T<(j??0)||v&&T>v||!Number.isNaN(x)&&T>=x;return{val:M,err:w}},[h,j,v]),B=l.useCallback(M=>{const T=Number.parseInt(M,M.startsWith("0x")?16:10),x=Number.parseInt(N),w=Number.isNaN(T)||T<(j??0)||v&&T>v||!Number.isNaN(x)&&x>=T;return{val:M,err:w}},[N,j,v]),_=l.useCallback(M=>{let{val:T,err:x}=D(M);if(!x&&s&&({val:T,err:x}=s(M,"change")),(a===void 0||a===!1)&&k(x),x)n&&n(M,h);else{const w=Number.parseInt(T,T.startsWith("0x")?16:10).toString();F(w),n&&n(w,h)}},[D,s,a,n,h]),q=l.useCallback(M=>{let{val:T,err:x}=D(M);!x&&s&&({val:T,err:x}=s(T,"blur")),k(x),!x&&r&&r(T,h)},[D,s,r,h]),G=l.useCallback(M=>{let{val:T,err:x}=B(M);if(!x&&d&&({val:T,err:x}=d(M,"change")),(c===void 0||c===!1)&&U(x),x)n&&n(N,M);else{const w=Number.parseInt(T,T.startsWith("0x")?16:10).toString();C(w),n&&n(N,w)}},[B,d,c,n,N]),z=l.useCallback(M=>{let{val:T,err:x}=B(M);!x&&d&&({val:T,err:x}=d(T,"blur")),U(x),!x&&r&&r(N,T)},[B,d,r,N]);return l.useEffect(()=>{i&&i(f),u&&u($)},[$,f,u,i]),o.jsxs(o.Fragment,{children:[o.jsx(Q,{id:"min-value",disabled:g,inputMode:"numeric",fullWidth:!0,value:N,onChange:_,onBlur:q,startAdornment:b.getString("LabelFrom"),endAdornment:S,numberType:"int",error:f,onErrorChange:k}),o.jsx(Q,{id:"max-value",disabled:p,inputMode:"numeric",fullWidth:!0,value:h,onChange:G,onBlur:z,startAdornment:b.getString("LabelTo"),endAdornment:S,numberType:"int",error:$,onErrorChange:U})]})}function ae({id:e=void 0,label:t,value:n,disabled:r=!1,size:a="small",sx:i=void 0}){return o.jsx(m.FormControlLabel,{id:e,"aria-label":e,value:n,disabled:r,"aria-disabled":r,control:o.jsx(m.Radio,{size:a}),label:t,componentsProps:{typography:{noWrap:!0}},sx:i})}function Ee({children:e,id:t=void 0,value:n,onChange:r}){return o.jsx(m.RadioGroup,{id:t,"aria-label":t,value:n,onChange:(a,i)=>r(i),children:e})}const sn=m.styled(m.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}})),Re=m.styled("span")(({theme:e})=>({color:e.palette.divider})),ln=m.styled(Re)(()=>({"&:hover":{cursor:"pointer"}})),on=m.styled(m.IconButton)(({theme:e})=>({color:e.palette.divider,padding:"0px"}));function le({textAlign:e="left",text:t=void 0,summary:n=void 0,children:r=void 0,collapsible:a=!1,collapsed:i=!1,collapsedChange:c=void 0}){const u=A.useLanguage(),s=A.useLocalizedStrings(),[d,g]=l.useState(i);l.useEffect(()=>g(i),[i]);const p=l.useCallback(S=>{c?c(S):g(S)},[c]);return o.jsxs(sn,{collapsed:d,children:[t&&o.jsx(m.Divider,{textAlign:e,variant:"fullWidth",children:a?o.jsxs(m.Stack,{direction:"row",spacing:1,alignItems:"center",children:[o.jsxs(ln,{onClick:()=>p(!d),children:[t.toLocaleUpperCase(u),d&&n?` (${n})`:""]}),o.jsx(m.Tooltip,{title:d?s==null?void 0:s.getString("TooltipExpandSection",t):s==null?void 0:s.getString("TooltipCollapseSection",t),children:o.jsx(on,{onClick:()=>p(!d),children:d?o.jsx(ie.LineArrowDownIcon,{}):o.jsx(ie.LineArrowUpIcon,{})})})]}):o.jsx(Re,{children:t.toLocaleUpperCase(u)})}),!d&&r]})}function ue({id:e,label:t,showLabel:n=!1,helperText:r="",options:a,value:i,onChange:c,disabled:u=!1,required:s=!1,margin:d="dense",size:g="small",fullWidth:p=!1,minWidth:S=void 0,prefixTextWithValue:j=!1}){const v=l.useCallback(F=>{typeof F.target.value=="string"?c(""):c(F.target.value)},[c]),b=l.useCallback(F=>F.map(h=>o.jsx(m.MenuItem,{"aria-label":`menu-item-${h.value}`,value:h.value,children:j?`${h.value} - ${h.displayText}`:h.displayText},h.value)),[j]),y=l.useCallback((F,h)=>{const C=[o.jsx(m.ListSubheader,{color:"primary",children:F},F)];return C.push(...b(h)),C},[b]),E=l.useCallback(F=>{const h=[];return F.forEach((C,f)=>{h.push(...y(f,C))}),h},[y]),N=l.useCallback(F=>{let h="";if(a instanceof Map)a.forEach((C,f)=>{if(h===""){const k=C.find($=>$.value===F);k&&(h=j?`${k.value} - ${f} - ${k.displayText}`:`${f} - ${k.displayText}`)}});else{const C=a.find(f=>f.value===F);C&&(h=j?`${C.value} - ${C.displayText}`:C.displayText)}return h===""&&(h=s?`${t} *`:t),h},[t,a,j,s]);return o.jsxs(m.FormControl,{fullWidth:p,variant:"standard",sx:{minWidth:S},margin:d,size:g,children:[n&&o.jsx(m.InputLabel,{id:`${e}-label`,children:s?`${t} *`:t}),o.jsxs(m.Select,{labelId:`${e}-label`,"aria-label":e,id:e,value:i,renderValue:N,onChange:v,displayEmpty:!n,disabled:u,"aria-disabled":u,children:[a instanceof Map&&E(a),a instanceof Array&&b(a)]}),r&&o.jsx(m.FormHelperText,{children:r})]})}const un=m.styled(m.Box)(({height:e,width:t})=>({height:e,width:t,padding:"4px",overflow:"auto"}));function dn({label:e,variant:t="h6"}){return o.jsx(m.Toolbar,{children:o.jsx(m.Typography,{sx:{flex:"1 1 100%"},variant:t,id:"tableTitle",component:"div",children:e})})}function cn({data:e,dataKey:t,selectedKey:n=void 0,onClickRow:r=void 0,columns:a,label:i=void 0,labelVariant:c="h6",maxHeight:u=void 0,size:s="medium",stickyHeader:d=!1,hover:g=!1}){const p=l.useCallback(S=>{r&&r(S)},[r]);return o.jsxs(m.Box,{children:[i&&o.jsx(dn,{label:i,variant:c}),o.jsx(m.TableContainer,{children:o.jsxs(m.Table,{"aria-labelledby":"tableTitle",size:s,stickyHeader:d,sx:{maxHeight:u},padding:"none",children:[o.jsx(m.TableHead,{children:o.jsx(m.TableRow,{children:a.map(S=>o.jsx(m.TableCell,{...S.headProps,children:S.headCell},S.key))})}),o.jsx(m.TableBody,{children:e.map(S=>{const j=t(S);return o.jsx(m.TableRow,{hover:g,selected:j===n,onClick:()=>p(S),children:a.map(v=>o.jsx(m.TableCell,{...v.dataProps,children:v.dataCell(S)},`${j}-${v.key}`))},j)})})]})})]})}const fn=m.styled("div")(({theme:e})=>({borderBottom:"1px solid",borderColor:e.palette.divider})),bn=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}}})),gn=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 we({onClick:e,icon:t=void 0,text:n=void 0,size:r="small",variant:a=void 0,color:i="inherit",tooltip:c=void 0,ariaLabel:u=void 0,children:s=void 0,disabled:d=!1}){return s?o.jsx(Ie,{size:typeof r=="string"?r:"small",variant:a,color:i,startIcon:t,text:n,disabled:d,children:s}):n?o.jsxs(ee,{size:typeof r=="string"?r:"small",variant:a,color:i,"aria-label":u,onClick:e,startIcon:t,disabled:d,children:[c&&o.jsx(m.Tooltip,{placement:"bottom-start",title:c,children:o.jsx("span",{children:n})}),!c&&n]}):o.jsxs(ee,{size:typeof r=="string"?r:"small",variant:a,color:i,"aria-label":u,onClick:e,disabled:d,sx:{height:typeof r=="number"?`${r}px`:void 0,width:typeof r=="number"?`${r}px`:void 0},children:[c&&o.jsx(m.Tooltip,{placement:"bottom-start",title:c,children:o.jsx("span",{children:t})}),!c&&t]})}function mn({buttons:e,size:t="small",ariaLabel:n=void 0,orientation:r="horizontal"}){return o.jsx(gn,{size:t,"aria-label":n,orientation:r,children:e.map((a,i)=>o.jsx(we,{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 hn({value:e,onChange:t,size:n="small",ariaLabel:r=void 0,exclusive:a=void 0,buttons:i,orientation:c="horizontal"}){return o.jsx(bn,{size:n,value:e,onChange:(u,s)=>t(s),"aria-label":r,exclusive:a,orientation:c,children:i.map((u,s)=>o.jsxs(m.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&&o.jsx(m.Tooltip,{placement:"bottom-start",title:u.tooltip,children:o.jsx("span",{children:u.icon})}),!u.tooltip&&u.icon]},s))})}function xn({items:e,height:t=34,width:n=34,justifyContent:r="left",borderSize:a=1,padding:i=1,backgroundColor:c=void 0,orientation:u="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: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"?i:0,paddingRight:u==="horizontal"?i:0,paddingTop:u==="vertical"?i:0,paddingBottom:u==="vertical"?i:0,borderRadius:"0px",backgroundColor:c},children:e.map((s,d)=>s.label?o.jsx(m.Typography,{variant:s.label.variant,component:"div",children:s.label.text},d):s.toggleButtonGroup?o.jsx(hn,{value:s.toggleButtonGroup.value,onChange:s.toggleButtonGroup.onChange,ariaLabel:s.toggleButtonGroup.ariaLabel,exclusive:s.toggleButtonGroup.exclusive,buttons:s.toggleButtonGroup.buttons,orientation:u},d):s.button?o.jsx(we,{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},d):s.buttonGroup?o.jsx(mn,{ariaLabel:s.buttonGroup.ariaLabel,buttons:s.buttonGroup.buttons,orientation:u},d):s.other)})}function pn({options:e,onSelect:t,children:n=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]),c=l.useCallback(()=>{a(null)},[]),u=l.useCallback(s=>{t(s),c()},[c,t]);return o.jsxs("div",{onContextMenu:i,style:{cursor:"context-menu"},children:[n,o.jsx(m.Menu,{open:r!==null,onClose:c,anchorReference:"anchorPosition",anchorPosition:r!==null?{top:r.mouseY,left:r.mouseX}:void 0,children:e.map(s=>o.jsxs(m.MenuItem,{onClick:()=>u(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 Te({canIdentifier:e,canIdentifierType:t,onCanIdentifierChange:n,onErrorsChange:r=void 0,hideSection:a=!1,disabled:i=!1,collapsible:c=!1,collapsed:u=!1,collapsedChange:s=void 0}){const d=A.useLocalizedStrings(),g=A.useNumericRadix(),[p,S]=l.useState(!1);l.useEffect(()=>{r&&r(p)},[p,r]);const[j,v]=l.useState(!1),[b,y]=l.useState(t);l.useEffect(()=>{y(t)},[t]);const E=l.useCallback(f=>{y(f?"extended":"standard")},[]),N=l.useCallback(f=>{let k=f;const $=parseInt(k,k.startsWith("0x")?16:g);if(b==="extended"){if(Number.isNaN($)||$<0||$>536870911)return Number.isNaN($)||n(`${$.toString(g).toUpperCase()}`,b),{val:f,err:!0}}else if(b==="standard"&&(Number.isNaN($)||$<0||$>2047))return Number.isNaN($)||n(`${$.toString(g).toUpperCase()}`,b),{val:f,err:!0};return n(`${$.toString(g).toUpperCase()}`,b),v(k.startsWith("0x")),{val:f,err:!1}},[b,g,n]),F=l.useCallback(f=>{if(f!==b){let k=!1;const $=parseInt(e,e.startsWith("0x")?16:g);f==="standard"?(Number.isNaN($)||$<0||$>2047)&&(k=!0):f==="extended"&&(Number.isNaN($)||$<0||$>536870911)&&(k=!0),n(e,f),S(k)}},[b,e,n,g]),h=l.useMemo(()=>{const f=parseInt(e,e.startsWith("0x")?16:g);return j?`0x${f.toString(16).toUpperCase()}`:f.toString(g).toUpperCase()},[j,e,g]),C=l.useMemo(()=>o.jsxs(se,{spacing:4,children:[o.jsx(Q,{id:"constant-id",fullWidth:!0,value:h,error:p,onValidate:N,onErrorChange:S,disabled:i}),o.jsx(ce,{id:"id-type",label:d.getString("LabelUseExtendedIdentifier"),checked:b==="extended",onChange:f=>{E(f),F(f?"extended":"standard")},disabled:i})]}),[h,b,i,p,d,F,N]);return a?C:o.jsx(le,{text:d.getString("LabelCanIdentifier"),summary:e,collapsible:c,collapsed:u,collapsedChange:s,children:C})}function Cn({frame:e,onFrameChange:t,onErrorsChange:n=void 0,hideSection:r=!1,collapsible:a=!1,collapsed:i=!1,collapsedChange:c=void 0}){var p;const u=A.useNumericRadix(),s=l.useMemo(()=>{var S,j;return((j=(S=e.canFrameFlags)==null?void 0:S.flags)==null?void 0:j.includes(K.CanFrameFlag.CAN_FRAME_FLAG_EXT))===!0?"extended":"standard"},[(p=e.canFrameFlags)==null?void 0:p.flags]),d=l.useMemo(()=>`${(e.id??0).toString(u).toUpperCase()}`,[s,e.id,u]),g=l.useCallback((S,j)=>{var N;const v=parseInt(S,S.startsWith("0x")?16:u),b=(N=e.canFrameFlags)!=null&&N.flags?{flags:[...e.canFrameFlags.flags]}:{flags:[]},y=b.flags.indexOf(K.CanFrameFlag.CAN_FRAME_FLAG_STD);y!==-1&&b.flags.splice(y,1);const E=b.flags.indexOf(K.CanFrameFlag.CAN_FRAME_FLAG_EXT);if(E!==-1&&b.flags.splice(E,1),j==="extended"?b.flags.push(K.CanFrameFlag.CAN_FRAME_FLAG_EXT):j==="standard"&&b.flags.push(K.CanFrameFlag.CAN_FRAME_FLAG_STD),v!==e.id||!de(b,e.canFrameFlags)){const F={...e};F.id=v,F.canFrameFlags=b,t(F)}},[e,u,t]);return o.jsx(Te,{canIdentifier:d,canIdentifierType:s,onCanIdentifierChange:g,onErrorsChange:n,hideSection:r,collapsible:a,collapsed:i,collapsedChange:c})}function _e({canIdentifier:e,identifierGeneratorType:t,minCanIdentifier:n,maxCanIdentifier:r,canIdentifierType:a,onChange:i,onErrorsChange:c=void 0,canIdentifierGeneratorSettingsError:u=void 0,disabled:s=!1,collapsible:d=!1,collapsed:g=!1,collapsedChange:p=void 0,showSelectMessageDialogChange:S,showSignalValuesTable:j}){const v=A.useLocalizedStrings(),b=A.useNumericRadix(),[y,E]=l.useState(!1),[N,F]=l.useState(!1),[h,C]=l.useState(!1),[f,k]=l.useState(!1),[$,U]=l.useState(!1),[D,B]=l.useState(!1),[_,q]=l.useState(a);l.useEffect(()=>{q(a)},[a]);const G=l.useCallback(I=>{q(I?"extended":"standard")},[]),z=l.useCallback(I=>{let O=I;const L=parseInt(O,O.startsWith("0x")?16:b);if(_==="extended"){if(Number.isNaN(L)||L<0||L>536870911)return Number.isNaN(L)||i(`${L.toString(b).toUpperCase()}`,t,n,r,_),{val:I,err:!0}}else if(_==="standard"&&(Number.isNaN(L)||L<0||L>2047))return Number.isNaN(L)||i(`${L.toString(b).toUpperCase()}`,t,n,r,_),{val:I,err:!0};return i(`${L.toString(b).toUpperCase()}`,t,n,r,_),k(O.startsWith("0x")),{val:I,err:!1}},[_,t,r,n,b,i]),M=l.useCallback((I,O,L,W)=>{let H=I;const P=parseInt(H,H.startsWith("0x")?16:b);if(O==="extended"){if(Number.isNaN(P)||P<0||P>536870911)return Number.isNaN(P)||L(`${P.toString(b).toUpperCase()}`),{val:I,err:!0,id:P}}else if(O==="standard"&&(Number.isNaN(P)||P<0||P>2047))return Number.isNaN(P)||L(`${P.toString(b).toUpperCase()}`),{val:I,err:!0,id:P};return L(`${P.toString(b).toUpperCase()}`),W(H.startsWith("0x")),{val:I,err:!1,id:P}},[b]),T=l.useCallback(I=>{const O=M(I,_,W=>i(e,t,W,r,_),W=>U(W)),L=M(r,_,()=>{},()=>{});return O.id>=L.id?O.err=!0:L.err&&C(L.err),{val:O.val,err:O.err}},[e,_,t,r,i,M]),x=l.useCallback(I=>{const O=M(I,_,W=>i(e,t,n,W,_),W=>B(W)),L=M(n,_,()=>{},()=>{});return L.id>=O.id?O.err=!0:L.err&&F(L.err),{val:O.val,err:O.err}},[e,_,t,n,i,M]),w=l.useCallback(I=>{if(I!==_){let O=!1,L=e;const W=parseInt(L,L.startsWith("0x")?16:b);I==="standard"?((Number.isNaN(W)||W<0||W>2047)&&(O=!0),E(O)):I==="extended"&&((Number.isNaN(W)||W<0||W>536870911)&&(O=!0),E(O));let H=!1,P=n;const Y=parseInt(P,P.startsWith("0x")?16:b);I==="standard"?(Number.isNaN(Y)||Y<0||Y>2047)&&(H=!0):I==="extended"&&(Number.isNaN(Y)||Y<0||Y>536870911)&&(H=!0);let te=!1,be=r;const J=parseInt(be,be.startsWith("0x")?16:b);I==="standard"?(Number.isNaN(J)||J<0||J>2047)&&(te=!0):I==="extended"&&(Number.isNaN(J)||J<0||J>536870911)&&(te=!0),!Number.isNaN(Y)&&!Number.isNaN(J)&&Y>=J&&(H=!0,te=!0),F(H),C(te),i(e,t,n,r,I)}},[_,e,n,r,i,t,b]),R=l.useCallback(I=>{j(I==="constant"),i(e,I,n,r,_)},[_,e,n,r,i]);l.useEffect(()=>{c&&c(t==="constant"&&y||(t==="random"||t==="scan")&&(N||h)),u&&(u.current=t==="constant"&&y||(t==="random"||t==="scan")&&(N||h))},[y,u,t,h,N,c]);const X=ke(),Le=ye(X),Ae=l.useMemo(()=>{const I=parseInt(e,e.startsWith("0x")?16:b);return f?`0x${I.toString(16).toUpperCase()}`:I.toString(b).toUpperCase()},[f,e,b]),Be=l.useMemo(()=>{const I=parseInt(n,n.startsWith("0x")?16:b);return $?`0x${I.toString(16).toUpperCase()}`:I.toString(b).toUpperCase()},[$,n,b]),Oe=l.useMemo(()=>{const I=parseInt(r,r.startsWith("0x")?16:b);return D?`0x${I.toString(16).toUpperCase()}`:I.toString(b).toUpperCase()},[D,r,b]);return o.jsx(le,{text:v.getString("LabelCanIdentifier"),summary:t==="constant"?e:t==="random"?`${v.getString("LabelRandom")} ${n}-${r}`:`${v.getString("LabelScan")} ${n}-${r}`,collapsible:d,collapsed:g,collapsedChange:p,children:o.jsxs(Ee,{id:"identifier-radio-group",value:t,onChange:I=>{R(I)},children:[o.jsxs(se,{spacing:4,children:[o.jsx(ae,{id:"constant-id-radio",value:"constant",label:v.getString("LabelConstantIdentifier"),sx:{marginLeft:"-11px !important"},disabled:s}),o.jsx(Q,{id:"constant-id",fullWidth:!0,value:Ae,error:!s&&t==="constant"&&y,onErrorChange:E,onValidate:z,disabled:s||t!=="constant",required:t==="constant"}),o.jsx(ce,{id:"id-type",label:v.getString("LabelUseExtendedIdentifier"),checked:_==="extended",onChange:I=>{G(I),w(I?"extended":"standard")},disabled:s}),o.jsx(Me,{columnItem:X,width:Le,children:o.jsx(ee,{onClick:()=>S(!0),variant:"outlined",size:"large",children:v.getString("ButtonSelectMessage")})})]}),o.jsxs(se,{spacing:4,children:[o.jsx(ae,{id:"random-identifier-radio",value:"random",label:v.getString("LabelRandomIdentifier"),sx:{marginLeft:"-11px !important"},disabled:s}),o.jsx(ae,{id:"scan-identifier-radio",value:"scan",label:v.getString("LabelScanIdentifier"),disabled:s}),o.jsx(Q,{id:"identifier-min",disabled:s||t!=="random"&&t!=="scan",required:t==="random"||t==="scan",fullWidth:!0,value:Be,error:!s&&(t==="random"||t==="scan")&&N,onErrorChange:F,onValidate:T,startAdornment:v.getString("LabelFrom"),sxStartAdornment:{marginBottom:.8}}),o.jsx(Q,{id:"identifier-max",disabled:s||t!=="random"&&t!=="scan",required:t==="random"||t==="scan",fullWidth:!0,value:Oe,error:!s&&(t==="random"||t==="scan")&&h,onErrorChange:C,onValidate:x,startAdornment:v.getString("LabelTo"),sxStartAdornment:{marginBottom:.8}})]})]})})}function Sn({settings:e,onSettingsChange:t,onErrorsChange:n=void 0,canIdentifierGeneratorSettingsError:r=void 0,disabled:a=!1,collapsible:i=!1,collapsed:c=!1,collapsedChange:u=void 0,showSelectMessageDialogChange:s,showSignalValuesTable:d}){var E,N,F;const g=A.useNumericRadix(),p=l.useMemo(()=>{var h,C,f;return((f=(C=(h=e.frame)==null?void 0:h.canFrameFlags)==null?void 0:C.flags)==null?void 0:f.includes(K.CanFrameFlag.CAN_FRAME_FLAG_EXT))===!0?"extended":"standard"},[(N=(E=e.frame)==null?void 0:E.canFrameFlags)==null?void 0:N.flags]),S=l.useMemo(()=>{var C;return`${(((C=e.frame)==null?void 0:C.id)??0).toString(g).toUpperCase()}`},[g,(F=e.frame)==null?void 0:F.id]),j=l.useMemo(()=>`${(e.identifierMin??0).toString(g).toUpperCase()}`,[g,e.identifierMin]),v=l.useMemo(()=>`${(e.identifierMax??0).toString(g).toUpperCase()}`,[g,e.identifierMax]),b=l.useMemo(()=>e.randomIdentifier===!0?"random":e.scanIdentifier===!0?"scan":"constant",[e.randomIdentifier,e.scanIdentifier]),y=l.useCallback((h,C,f,k,$)=>{var M,T,x,w;const U=$,D=parseInt(h,h.startsWith("0x")?16:g),B=(T=(M=e.frame)==null?void 0:M.canFrameFlags)!=null&&T.flags?{flags:[...e.frame.canFrameFlags.flags]}:{flags:[]},_=B.flags.indexOf(K.CanFrameFlag.CAN_FRAME_FLAG_STD),q=parseInt(f,f.startsWith("0x")?16:g),G=parseInt(k,k.startsWith("0x")?16:g),z=B.flags.indexOf(K.CanFrameFlag.CAN_FRAME_FLAG_EXT);if(_!==-1&&B.flags.splice(_,1),z!==-1&&B.flags.splice(z,1),U==="extended"?B.flags.push(K.CanFrameFlag.CAN_FRAME_FLAG_EXT):U==="standard"&&B.flags.push(K.CanFrameFlag.CAN_FRAME_FLAG_STD),D!==((x=e.frame)==null?void 0:x.id)||!de(B,(w=e.frame)==null?void 0:w.canFrameFlags)||C!==b||q!==e.identifierMin||G!==e.identifierMax){const R={...e};R.frame=e.frame?{...e.frame}:K.WriteFrame.fromPartial({id:0,canFrameFlags:{flags:[K.CanFrameFlag.CAN_FRAME_FLAG_STD]},data:Array.from({length:8},()=>0)}),R.frame.id=D,R.frame.canFrameFlags=B,C==="constant"?(R.randomIdentifier=!1,R.scanIdentifier=!1):C==="random"?(R.randomIdentifier=!0,R.scanIdentifier=!1):C==="scan"&&(R.randomIdentifier=!1,R.scanIdentifier=!0),R.identifierMin=q,R.identifierMax=G,t(R)}},[b,g,t,e]);return o.jsx(_e,{canIdentifier:S,identifierGeneratorType:b,minCanIdentifier:j,maxCanIdentifier:v,canIdentifierType:p,onChange:y,onErrorsChange:n,canIdentifierGeneratorSettingsError:r,disabled:a,collapsible:i,collapsed:c,collapsedChange:u,showSelectMessageDialogChange:s,showSignalValuesTable:d})}function vn(e,t,n,r){const[a,i]=l.useState(""),[c,u]=l.useState([]);return l.useEffect(()=>{u(s=>{var g;const d=(g=n==null?void 0:n.sources)==null?void 0:g.filter(p=>{var j,v;const S=(v=(j=r==null?void 0:r.find(b=>{var y;return b.nodeId===((y=p.baseNode)==null?void 0:y.identifier)}))==null?void 0:j.errorStatus)==null?void 0:v.errors;return S===void 0||S===""?p.baseNode&&p.channelSettings&&p.channelSettings.canConfiguration&&(!t||p.channelSettings.canConfiguration.silentMode!==!0):!1}).map(p=>({value:p.channelSettings.channelNumber,displayText:p.baseNode.name,canFdMode:p.channelSettings.canConfiguration.canMode>0,identifier:p.baseNode.identifier}));return!d||de(s,d)?s:d})},[t,n==null?void 0:n.sources,r]),l.useEffect(()=>{const s=c.find(d=>d.identifier===e);i(s?d=>s.value===d?d:s.value:"")},[e,c]),{channelOptions:c,selectedChannelOption:a}}function jn({channelIdentifier:e,onChannelIdentifierChange:t,hideSilentChannels:n=!1,hideSectionControl:r=!1,disabled:a=!1,collapsible:i=!1,collapsed:c=!1,collapsedChange:u=void 0}){var v;const s=A.useMeasurementSetup(),d=A.useMeasurementStatus(),g=A.useLocalizedStrings(),{channelOptions:p,selectedChannelOption:S}=vn(e,n===!0,s,d),j=l.useCallback(b=>{const y=p.find(F=>F.value===b),E=(y==null?void 0:y.identifier)??"",N=(y==null?void 0:y.canFdMode)===!0;t(E,N)},[p,t]);return r===!0?o.jsx(ue,{id:"channel",label:g.getString("LabelChannel"),fullWidth:!0,value:S,onChange:j,options:p,required:!0,disabled:a}):o.jsx(le,{text:g.getString("LabelChannel"),summary:S===""||(v=p.find(b=>b.value===S))==null?void 0:v.displayText,collapsible:i,collapsed:c,collapsedChange:u,children:o.jsx(ue,{id:"channel",label:g.getString("LabelChannel"),fullWidth:!0,value:S,onChange:j,options:p,required:!0,disabled:a})})}const Nn=m.styled(m.Box)(()=>({height:"100%",width:"100%",padding:"4px",overflow:"auto"}));exports.CanKingDataProvider=A.CanKingDataProvider;exports.DevicesContext=A.DevicesContext;exports.LocalizedStrings=A.LocalizedStrings;exports.LogMessagesContext=A.LogMessagesContext;exports.MeasurementSetupContext=A.MeasurementSetupContext;exports.MeasurementStatusContext=A.MeasurementStatusContext;exports.OnlineStatusContext=A.OnlineStatusContext;exports.RunningPeriodicTransmissionsContext=A.RunningPeriodicTransmissionsContext;exports.UserSettingsContext=A.UserSettingsContext;exports.WorkspacePanesContext=A.WorkspacePanesContext;exports.addEventListener=A.addEventListener;exports.removeEventListener=A.removeEventListener;exports.CanChannelSelectControl=jn;exports.CanIdentifierControl=Te;exports.CanIdentifierFrameControl=Cn;exports.CanIdentifierGeneratorControl=_e;exports.CanIdentifierGeneratorSettingsControl=Sn;exports.CheckboxControl=ce;exports.ColumnItemControl=Me;exports.ContextMenu=pn;exports.DropdownButton=Ie;exports.DropdownButtonTextItems=Jt;exports.DropdownPanel=Vt;exports.FillBox=Nn;exports.FormControlRow=se;exports.InlineEditor=rn;exports.NumberRangeControl=an;exports.OneLineButton=ee;exports.RadioControl=ae;exports.RadioGroupControl=Ee;exports.SectionControl=le;exports.SelectControl=ue;exports.SizedBox=un;exports.TableControl=cn;exports.TabsPanel=fn;exports.TextControl=$e;exports.ToolbarControl=xn;exports.ValidateableTextControl=Q;exports.useColumnItem=ke;exports.useColumnItems=ye;