@kvaser/canking-api 7.1.0-beta.241 → 7.2.0

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