config-editor-base 2.9.1 → 2.9.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -11,6 +11,7 @@ var Files = _interopDefault(require('react-files'));
11
11
  var applyNav = require('rjsf-tabs');
12
12
  var applyNav__default = _interopDefault(applyNav);
13
13
  var reactGhLikeDiff = require('react-gh-like-diff');
14
+ var Ajv = _interopDefault(require('ajv'));
14
15
 
15
16
  function _arrayLikeToArray(r, a) {
16
17
  (null == a || a > r.length) && (a = r.length);
@@ -979,8 +980,6 @@ var checkConfigFilterLimits = function checkConfigFilterLimits(content) {
979
980
  count11Bit++;
980
981
  }
981
982
  }
982
- console.log("count11Bit", count11Bit);
983
- console.log("count29Bit", count29Bit);
984
983
  if (count11Bit > MAX_11BIT_FILTERS) {
985
984
  dispatch(set({
986
985
  type: "warning",
@@ -19594,7 +19593,7 @@ var EditorSection = /*#__PURE__*/function (_React$Component) {
19594
19593
  transition: 'opacity 1s ease-out',
19595
19594
  opacity: this.state.showNewToolsHighlight ? 1 : 0
19596
19595
  }
19597
- }, "New: OBD & filter builder tools"))))))), /*#__PURE__*/React.createElement("div", {
19596
+ }, "Tip: New editor tools added"))))))), /*#__PURE__*/React.createElement("div", {
19598
19597
  className: "config-bar-background"
19599
19598
  }));
19600
19599
  };
@@ -21895,7 +21894,6 @@ function extractSupportedPidsFromBitmap(rangeStart, bitmapHex, supportedSet) {
21895
21894
  }
21896
21895
 
21897
21896
  var merge$1 = require("deepmerge");
21898
- var yourForm$1;
21899
21897
  var modeOptions = [{
21900
21898
  value: "all",
21901
21899
  label: "Select from all PIDs"
@@ -22206,6 +22204,7 @@ var OBDTool = /*#__PURE__*/function (_React$Component) {
22206
22204
  }
22207
22205
  };
22208
22206
  _proto.testMergedFile = function testMergedFile() {
22207
+ var _this8 = this;
22209
22208
  var _this$state4 = this.state,
22210
22209
  generatedConfig = _this$state4.generatedConfig,
22211
22210
  enableControlSignal = _this$state4.enableControlSignal,
@@ -22276,8 +22275,24 @@ var OBDTool = /*#__PURE__*/function (_React$Component) {
22276
22275
  this.setState({
22277
22276
  mergedConfig: mergedConfigTemp
22278
22277
  }, function () {
22279
- if (yourForm$1) {
22280
- yourForm$1.submit();
22278
+ var schemaContent = _this8.props.schemaContent;
22279
+ if (schemaContent && mergedConfigTemp) {
22280
+ try {
22281
+ var ajv = new Ajv({
22282
+ allErrors: true,
22283
+ strict: false,
22284
+ logger: false
22285
+ });
22286
+ var validate = ajv.compile(schemaContent);
22287
+ var valid = validate(mergedConfigTemp);
22288
+ _this8.setState({
22289
+ mergedConfigValid: valid
22290
+ });
22291
+ } catch (e) {
22292
+ _this8.setState({
22293
+ mergedConfigValid: false
22294
+ });
22295
+ }
22281
22296
  }
22282
22297
  });
22283
22298
  };
@@ -22325,7 +22340,7 @@ var OBDTool = /*#__PURE__*/function (_React$Component) {
22325
22340
  linkElement.click();
22326
22341
  };
22327
22342
  _proto.render = function render() {
22328
- var _this8 = this;
22343
+ var _this9 = this;
22329
22344
  var _this$state6 = this.state,
22330
22345
  toolMode = _this$state6.toolMode,
22331
22346
  channel = _this$state6.channel,
@@ -22336,7 +22351,6 @@ var OBDTool = /*#__PURE__*/function (_React$Component) {
22336
22351
  searchQuery = _this$state6.searchQuery,
22337
22352
  supportedPids = _this$state6.supportedPids,
22338
22353
  generatedConfig = _this$state6.generatedConfig,
22339
- mergedConfig = _this$state6.mergedConfig,
22340
22354
  mergedConfigValid = _this$state6.mergedConfigValid,
22341
22355
  csvFileName = _this$state6.csvFileName,
22342
22356
  mixedWarning = _this$state6.mixedWarning,
@@ -22346,7 +22360,6 @@ var OBDTool = /*#__PURE__*/function (_React$Component) {
22346
22360
  combinedConfig = _this$state6.combinedConfig;
22347
22361
  var _this$props = this.props,
22348
22362
  formData = _this$props.formData,
22349
- schemaContent = _this$props.schemaContent,
22350
22363
  editorConfigFiles = _this$props.editorConfigFiles;
22351
22364
  var configFileName = editorConfigFiles && editorConfigFiles.length > 0 ? editorConfigFiles[0].name : "";
22352
22365
  var isVersion0109 = configFileName.includes("01.09");
@@ -22390,7 +22403,7 @@ var OBDTool = /*#__PURE__*/function (_React$Component) {
22390
22403
  }, /*#__PURE__*/React.createElement(Files, {
22391
22404
  onChange: this.handleCsvUpload,
22392
22405
  onError: function onError(error) {
22393
- return _this8.props.showAlert("danger", error.message);
22406
+ return _this9.props.showAlert("danger", error.message);
22394
22407
  },
22395
22408
  accepts: [".csv"],
22396
22409
  multiple: false,
@@ -22417,7 +22430,7 @@ var OBDTool = /*#__PURE__*/function (_React$Component) {
22417
22430
  options: channelOptions,
22418
22431
  value: channel,
22419
22432
  onChange: function onChange(opt) {
22420
- return _this8.handleSettingChange("channel", opt);
22433
+ return _this9.handleSettingChange("channel", opt);
22421
22434
  },
22422
22435
  comment: "Select which CAN channel should be used to transmit the OBD requests."
22423
22436
  })), /*#__PURE__*/React.createElement("div", {
@@ -22427,7 +22440,7 @@ var OBDTool = /*#__PURE__*/function (_React$Component) {
22427
22440
  options: bitRateOptions,
22428
22441
  value: bitRate,
22429
22442
  onChange: function onChange(opt) {
22430
- return _this8.handleSettingChange("bitRate", opt);
22443
+ return _this9.handleSettingChange("bitRate", opt);
22431
22444
  },
22432
22445
  comment: "Cars typically use 500K, trucks/buses may use 250K or 500K."
22433
22446
  }))), toolMode !== "test" && /*#__PURE__*/React.createElement("div", {
@@ -22439,7 +22452,7 @@ var OBDTool = /*#__PURE__*/function (_React$Component) {
22439
22452
  options: canIdOptions,
22440
22453
  value: canId,
22441
22454
  onChange: function onChange(opt) {
22442
- return _this8.handleSettingChange("canId", opt);
22455
+ return _this9.handleSettingChange("canId", opt);
22443
22456
  },
22444
22457
  comment: "Cars typically use 7DF, trucks/buses typically use 18DB33F1."
22445
22458
  })), /*#__PURE__*/React.createElement("div", {
@@ -22449,7 +22462,7 @@ var OBDTool = /*#__PURE__*/function (_React$Component) {
22449
22462
  options: obdModeOptions,
22450
22463
  value: obdMode,
22451
22464
  onChange: function onChange(opt) {
22452
- return _this8.handleSettingChange("obdMode", opt);
22465
+ return _this9.handleSettingChange("obdMode", opt);
22453
22466
  },
22454
22467
  comment: "Cars use OBD2, trucks/buses may use OBD2 or WWH-OBD."
22455
22468
  }))), toolMode !== "test" && /*#__PURE__*/React.createElement("div", {
@@ -22462,17 +22475,17 @@ var OBDTool = /*#__PURE__*/function (_React$Component) {
22462
22475
  max: 10000,
22463
22476
  onChange: function onChange(e) {
22464
22477
  var val = parseInt(e.target.value) || 0;
22465
- _this8.setState({
22478
+ _this9.setState({
22466
22479
  spacing: val
22467
22480
  });
22468
22481
  },
22469
22482
  onBlur: function onBlur(e) {
22470
22483
  var val = Math.min(10000, Math.max(100, parseInt(e.target.value) || 100));
22471
- _this8.setState({
22484
+ _this9.setState({
22472
22485
  spacing: val
22473
22486
  }, function () {
22474
- if (_this8.getSelectedPids().length > 0) {
22475
- _this8.generateTransmitList();
22487
+ if (_this9.getSelectedPids().length > 0) {
22488
+ _this9.generateTransmitList();
22476
22489
  }
22477
22490
  });
22478
22491
  }
@@ -22523,7 +22536,7 @@ var OBDTool = /*#__PURE__*/function (_React$Component) {
22523
22536
  key: pid.uniqueId,
22524
22537
  className: "checkbox-white-space",
22525
22538
  onClick: function onClick() {
22526
- return !pid.disabled && _this8.handlePidToggle(pid.uniqueId);
22539
+ return !pid.disabled && _this9.handlePidToggle(pid.uniqueId);
22527
22540
  },
22528
22541
  style: {
22529
22542
  display: "flex",
@@ -22549,7 +22562,7 @@ var OBDTool = /*#__PURE__*/function (_React$Component) {
22549
22562
  checked: pid.selected,
22550
22563
  disabled: pid.disabled,
22551
22564
  onChange: function onChange() {
22552
- return !pid.disabled && _this8.handlePidToggle(pid.uniqueId);
22565
+ return !pid.disabled && _this9.handlePidToggle(pid.uniqueId);
22553
22566
  }
22554
22567
  }), /*#__PURE__*/React.createElement("span", null))), /*#__PURE__*/React.createElement("span", {
22555
22568
  className: "binary-text-alt-2",
@@ -22592,11 +22605,11 @@ var OBDTool = /*#__PURE__*/function (_React$Component) {
22592
22605
  type: "checkbox",
22593
22606
  checked: enableOBDFilter,
22594
22607
  onChange: function onChange() {
22595
- _this8.setState({
22608
+ _this9.setState({
22596
22609
  enableOBDFilter: !enableOBDFilter
22597
22610
  }, function () {
22598
- if (_this8.getSelectedPids().length > 0) {
22599
- _this8.generateTransmitList();
22611
+ if (_this9.getSelectedPids().length > 0) {
22612
+ _this9.generateTransmitList();
22600
22613
  }
22601
22614
  });
22602
22615
  },
@@ -22621,11 +22634,11 @@ var OBDTool = /*#__PURE__*/function (_React$Component) {
22621
22634
  type: "checkbox",
22622
22635
  checked: enableControlSignal,
22623
22636
  onChange: function onChange() {
22624
- _this8.setState({
22637
+ _this9.setState({
22625
22638
  enableControlSignal: !enableControlSignal
22626
22639
  }, function () {
22627
- if (_this8.getSelectedPids().length > 0) {
22628
- _this8.generateTransmitList();
22640
+ if (_this9.getSelectedPids().length > 0) {
22641
+ _this9.generateTransmitList();
22629
22642
  }
22630
22643
  });
22631
22644
  },
@@ -22670,7 +22683,7 @@ var OBDTool = /*#__PURE__*/function (_React$Component) {
22670
22683
  type: "checkbox",
22671
22684
  checked: showPreview,
22672
22685
  onChange: function onChange() {
22673
- return _this8.setState({
22686
+ return _this9.setState({
22674
22687
  showPreview: !showPreview
22675
22688
  });
22676
22689
  },
@@ -22684,20 +22697,7 @@ var OBDTool = /*#__PURE__*/function (_React$Component) {
22684
22697
  }
22685
22698
  }, /*#__PURE__*/React.createElement("pre", {
22686
22699
  className: "browse-file-preview"
22687
- }, JSON.stringify(combinedConfig, null, 2))))), /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("br", null), /*#__PURE__*/React.createElement("br", null), /*#__PURE__*/React.createElement("br", null), /*#__PURE__*/React.createElement("br", null), /*#__PURE__*/React.createElement("br", null), /*#__PURE__*/React.createElement("br", null)), /*#__PURE__*/React.createElement("div", {
22688
- style: {
22689
- display: "none"
22690
- }
22691
- }, /*#__PURE__*/React.createElement(Form, {
22692
- validator: validator,
22693
- onError: this.onValidationError,
22694
- schema: schemaContent ? schemaContent : {},
22695
- formData: mergedConfig ? mergedConfig : {},
22696
- onSubmit: this.onSubmit,
22697
- ref: function ref(form) {
22698
- yourForm$1 = form;
22699
- }
22700
- })));
22700
+ }, JSON.stringify(combinedConfig, null, 2))))), /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("br", null), /*#__PURE__*/React.createElement("br", null), /*#__PURE__*/React.createElement("br", null), /*#__PURE__*/React.createElement("br", null), /*#__PURE__*/React.createElement("br", null), /*#__PURE__*/React.createElement("br", null)));
22701
22701
  };
22702
22702
  return OBDTool;
22703
22703
  }(React.Component);
@@ -23123,7 +23123,6 @@ function evaluateFilters(frames, configData, detectedDeviceType) {
23123
23123
  var _excluded = ["name"],
23124
23124
  _excluded2 = ["name"];
23125
23125
  var merge$2 = require("deepmerge");
23126
- var yourForm$2;
23127
23126
  var prescalerOptions = [{
23128
23127
  value: "none",
23129
23128
  label: "None"
@@ -24051,6 +24050,7 @@ var FilterBuilderTool = /*#__PURE__*/function (_React$Component) {
24051
24050
  return filterConfig;
24052
24051
  };
24053
24052
  _proto.testMergedFile = function testMergedFile() {
24053
+ var _this11 = this;
24054
24054
  var _this$state7 = this.state,
24055
24055
  generatedFilterConfig = _this$state7.generatedFilterConfig,
24056
24056
  filterMergeMode = _this$state7.filterMergeMode;
@@ -24084,8 +24084,24 @@ var FilterBuilderTool = /*#__PURE__*/function (_React$Component) {
24084
24084
  this.setState({
24085
24085
  mergedConfig: mergedConfigTemp
24086
24086
  }, function () {
24087
- if (yourForm$2) {
24088
- yourForm$2.submit();
24087
+ var schemaContent = _this11.props.schemaContent;
24088
+ if (schemaContent && mergedConfigTemp) {
24089
+ try {
24090
+ var ajv = new Ajv({
24091
+ allErrors: true,
24092
+ strict: false,
24093
+ logger: false
24094
+ });
24095
+ var validate = ajv.compile(schemaContent);
24096
+ var valid = validate(mergedConfigTemp);
24097
+ _this11.setState({
24098
+ mergedConfigValid: valid
24099
+ });
24100
+ } catch (e) {
24101
+ _this11.setState({
24102
+ mergedConfigValid: false
24103
+ });
24104
+ }
24089
24105
  }
24090
24106
  });
24091
24107
  };
@@ -24293,7 +24309,7 @@ var FilterBuilderTool = /*#__PURE__*/function (_React$Component) {
24293
24309
  });
24294
24310
  };
24295
24311
  _proto.render = function render() {
24296
- var _this11 = this;
24312
+ var _this12 = this;
24297
24313
  var _this$state10 = this.state,
24298
24314
  csvFileName = _this$state10.csvFileName,
24299
24315
  dbcFileNames = _this$state10.dbcFileNames,
@@ -24332,7 +24348,7 @@ var FilterBuilderTool = /*#__PURE__*/function (_React$Component) {
24332
24348
  }, /*#__PURE__*/React.createElement(Files, {
24333
24349
  onChange: this.handleCsvUpload,
24334
24350
  onError: function onError(error) {
24335
- return _this11.props.showAlert("danger", error.message);
24351
+ return _this12.props.showAlert("danger", error.message);
24336
24352
  },
24337
24353
  accepts: [".csv"],
24338
24354
  multiple: false,
@@ -24346,7 +24362,7 @@ var FilterBuilderTool = /*#__PURE__*/function (_React$Component) {
24346
24362
  }, /*#__PURE__*/React.createElement(Files, {
24347
24363
  onChange: this.handleDbcUpload,
24348
24364
  onError: function onError(error) {
24349
- return _this11.props.showAlert("danger", error.message);
24365
+ return _this12.props.showAlert("danger", error.message);
24350
24366
  },
24351
24367
  accepts: [".dbc"],
24352
24368
  multiple: true,
@@ -24381,10 +24397,10 @@ var FilterBuilderTool = /*#__PURE__*/function (_React$Component) {
24381
24397
  type: "checkbox",
24382
24398
  checked: groupJ1939Pgns,
24383
24399
  onChange: function onChange() {
24384
- _this11.setState({
24400
+ _this12.setState({
24385
24401
  groupJ1939Pgns: !groupJ1939Pgns
24386
24402
  }, function () {
24387
- _this11.mergeData();
24403
+ _this12.mergeData();
24388
24404
  });
24389
24405
  },
24390
24406
  style: {
@@ -24394,7 +24410,7 @@ var FilterBuilderTool = /*#__PURE__*/function (_React$Component) {
24394
24410
  }), "Group 29-bit IDs as PGNs"), /*#__PURE__*/React.createElement("p", {
24395
24411
  className: "field-description field-description-shift"
24396
24412
  }, "In J1939/ISOBUS/NMEA protocol use cases it can be relevant to evaluate messages at the 18-bit PGN level instead of the 29-bit ID level.")), csvData && function () {
24397
- var isEnabled = _this11.props.formData && _this11.isFirmwareVersionSupported();
24413
+ var isEnabled = _this12.props.formData && _this12.isFirmwareVersionSupported();
24398
24414
  return /*#__PURE__*/React.createElement("div", {
24399
24415
  className: "form-group pl0 field-string",
24400
24416
  style: {
@@ -24411,9 +24427,9 @@ var FilterBuilderTool = /*#__PURE__*/function (_React$Component) {
24411
24427
  }
24412
24428
  }, /*#__PURE__*/React.createElement("input", {
24413
24429
  type: "checkbox",
24414
- checked: _this11.state.showFilteredSummary,
24430
+ checked: _this12.state.showFilteredSummary,
24415
24431
  onChange: function onChange() {
24416
- return _this11.toggleFilteredSummary();
24432
+ return _this12.toggleFilteredSummary();
24417
24433
  },
24418
24434
  disabled: !isEnabled,
24419
24435
  style: {
@@ -24462,10 +24478,10 @@ var FilterBuilderTool = /*#__PURE__*/function (_React$Component) {
24462
24478
  }, label, ":"), /*#__PURE__*/React.createElement("input", {
24463
24479
  type: "text",
24464
24480
  className: "form-control encryption-input",
24465
- value: _this11.state["channelMap" + label],
24481
+ value: _this12.state["channelMap" + label],
24466
24482
  onChange: function onChange(e) {
24467
- var _this11$setState;
24468
- return _this11.setState((_this11$setState = {}, _this11$setState["channelMap" + label] = e.target.value, _this11$setState));
24483
+ var _this12$setState;
24484
+ return _this12.setState((_this12$setState = {}, _this12$setState["channelMap" + label] = e.target.value, _this12$setState));
24469
24485
  },
24470
24486
  style: {
24471
24487
  width: "36px",
@@ -24581,11 +24597,11 @@ var FilterBuilderTool = /*#__PURE__*/function (_React$Component) {
24581
24597
  marginLeft: "8px"
24582
24598
  }
24583
24599
  }, "Signals")), filteredEntries.map(function (entry) {
24584
- var isChannelValid = _this11.props.deviceType === "CANmod" ? _this11.isChannelValid(entry.channel) : true;
24600
+ var isChannelValid = _this12.props.deviceType === "CANmod" ? _this12.isChannelValid(entry.channel) : true;
24585
24601
  return /*#__PURE__*/React.createElement("div", {
24586
24602
  key: entry.uniqueId,
24587
24603
  onClick: function onClick() {
24588
- return isChannelValid && _this11.handleEntryToggle(entry.uniqueId);
24604
+ return isChannelValid && _this12.handleEntryToggle(entry.uniqueId);
24589
24605
  },
24590
24606
  style: {
24591
24607
  display: "flex",
@@ -24613,7 +24629,7 @@ var FilterBuilderTool = /*#__PURE__*/function (_React$Component) {
24613
24629
  checked: entry.selected,
24614
24630
  disabled: !isChannelValid,
24615
24631
  onChange: function onChange() {
24616
- return isChannelValid && _this11.handleEntryToggle(entry.uniqueId);
24632
+ return isChannelValid && _this12.handleEntryToggle(entry.uniqueId);
24617
24633
  }
24618
24634
  }), /*#__PURE__*/React.createElement("span", null))), /*#__PURE__*/React.createElement("span", {
24619
24635
  className: "binary-text-alt-2",
@@ -24650,7 +24666,7 @@ var FilterBuilderTool = /*#__PURE__*/function (_React$Component) {
24650
24666
  display: "flex",
24651
24667
  alignItems: "center"
24652
24668
  }
24653
- }, _this11.renderBarChart(entry.isGroup ? entry.groupedPercentage : entry.percentage, maxPercentage), /*#__PURE__*/React.createElement("span", {
24669
+ }, _this12.renderBarChart(entry.isGroup ? entry.groupedPercentage : entry.percentage, maxPercentage), /*#__PURE__*/React.createElement("span", {
24654
24670
  style: {
24655
24671
  marginLeft: "4px",
24656
24672
  fontFamily: "monospace",
@@ -24741,7 +24757,7 @@ var FilterBuilderTool = /*#__PURE__*/function (_React$Component) {
24741
24757
  marginLeft: "4px"
24742
24758
  },
24743
24759
  onClick: function onClick() {
24744
- return _this11.selectTop(30);
24760
+ return _this12.selectTop(30);
24745
24761
  }
24746
24762
  }, "Top 30"), /*#__PURE__*/React.createElement("span", {
24747
24763
  style: {
@@ -24754,7 +24770,7 @@ var FilterBuilderTool = /*#__PURE__*/function (_React$Component) {
24754
24770
  cursor: "pointer"
24755
24771
  },
24756
24772
  onClick: function onClick() {
24757
- return _this11.selectTop(50);
24773
+ return _this12.selectTop(50);
24758
24774
  }
24759
24775
  }, "Top 50"), /*#__PURE__*/React.createElement("span", {
24760
24776
  style: {
@@ -24767,7 +24783,7 @@ var FilterBuilderTool = /*#__PURE__*/function (_React$Component) {
24767
24783
  cursor: "pointer"
24768
24784
  },
24769
24785
  onClick: function onClick() {
24770
- return _this11.selectMatched(true);
24786
+ return _this12.selectMatched(true);
24771
24787
  }
24772
24788
  }, "Matched"), /*#__PURE__*/React.createElement("span", {
24773
24789
  style: {
@@ -24780,13 +24796,13 @@ var FilterBuilderTool = /*#__PURE__*/function (_React$Component) {
24780
24796
  cursor: "pointer"
24781
24797
  },
24782
24798
  onClick: function onClick() {
24783
- return _this11.selectMatched(false);
24799
+ return _this12.selectMatched(false);
24784
24800
  }
24785
24801
  }, "Unmatched")), csvData && function () {
24786
- var activeCsvData = _this11.state.showFilteredSummary && _this11.state.filteredCsvData ? _this11.state.filteredCsvData : csvData;
24787
- var isFiltered = _this11.state.showFilteredSummary && _this11.state.filteredCsvData;
24788
- var originalFileSize = _this11.csvFileSize / (1024 * 1024);
24789
- var filteredFileSize = isFiltered ? originalFileSize * (1 - _this11.state.filterReductionPercent / 100) : originalFileSize;
24802
+ var activeCsvData = _this12.state.showFilteredSummary && _this12.state.filteredCsvData ? _this12.state.filteredCsvData : csvData;
24803
+ var isFiltered = _this12.state.showFilteredSummary && _this12.state.filteredCsvData;
24804
+ var originalFileSize = _this12.csvFileSize / (1024 * 1024);
24805
+ var filteredFileSize = isFiltered ? originalFileSize * (1 - _this12.state.filterReductionPercent / 100) : originalFileSize;
24790
24806
  return /*#__PURE__*/React.createElement("div", {
24791
24807
  style: {
24792
24808
  fontSize: "12px",
@@ -24813,7 +24829,7 @@ var FilterBuilderTool = /*#__PURE__*/function (_React$Component) {
24813
24829
  color: "#5cb85c",
24814
24830
  marginTop: "4px"
24815
24831
  }
24816
- }, "Showing filtered summary (reduction: ", /*#__PURE__*/React.createElement("strong", null, _this11.state.filterReductionPercent.toFixed(1), "%"), ")"));
24832
+ }, "Showing filtered summary (reduction: ", /*#__PURE__*/React.createElement("strong", null, _this12.state.filterReductionPercent.toFixed(1), "%"), ")"));
24817
24833
  }(), function () {
24818
24834
  var hasSelection = mergedEntries.some(function (e) {
24819
24835
  return e.selected;
@@ -24839,8 +24855,8 @@ var FilterBuilderTool = /*#__PURE__*/function (_React$Component) {
24839
24855
  }, /*#__PURE__*/React.createElement("div", {
24840
24856
  className: "col-xs-6",
24841
24857
  style: {
24842
- opacity: _this11.props.deviceType === "CANmod" ? 0.5 : 1,
24843
- pointerEvents: _this11.props.deviceType === "CANmod" ? "none" : "auto"
24858
+ opacity: _this12.props.deviceType === "CANmod" ? 0.5 : 1,
24859
+ pointerEvents: _this12.props.deviceType === "CANmod" ? "none" : "auto"
24844
24860
  }
24845
24861
  }, /*#__PURE__*/React.createElement(SimpleDropdown, {
24846
24862
  name: "Type",
@@ -24851,59 +24867,59 @@ var FilterBuilderTool = /*#__PURE__*/function (_React$Component) {
24851
24867
  value: "rejection",
24852
24868
  label: "Rejection"
24853
24869
  }],
24854
- value: _this11.state.filterType,
24870
+ value: _this12.state.filterType,
24855
24871
  onChange: function onChange(opt) {
24856
- return _this11.setState({
24872
+ return _this12.setState({
24857
24873
  filterType: opt.value
24858
24874
  }, function () {
24859
- return _this11.generateFilterConfig();
24875
+ return _this12.generateFilterConfig();
24860
24876
  });
24861
24877
  }
24862
- }), _this11.props.deviceType === "CANmod" && /*#__PURE__*/React.createElement("span", {
24878
+ }), _this12.props.deviceType === "CANmod" && /*#__PURE__*/React.createElement("span", {
24863
24879
  className: "field-description",
24864
24880
  style: {
24865
24881
  fontSize: "11px",
24866
24882
  color: "#999"
24867
24883
  }
24868
- }, "CANmod only supports acceptance filters")), _this11.state.filterType === "acceptance" && /*#__PURE__*/React.createElement("div", {
24884
+ }, "CANmod only supports acceptance filters")), _this12.state.filterType === "acceptance" && /*#__PURE__*/React.createElement("div", {
24869
24885
  className: "col-xs-6"
24870
24886
  }, /*#__PURE__*/React.createElement(SimpleDropdown, {
24871
24887
  name: "Prescaler",
24872
24888
  options: prescalerOptions,
24873
- value: _this11.state.prescalerType,
24889
+ value: _this12.state.prescalerType,
24874
24890
  onChange: function onChange(opt) {
24875
- return _this11.setState({
24891
+ return _this12.setState({
24876
24892
  prescalerType: opt.value
24877
24893
  }, function () {
24878
- return _this11.generateFilterConfig();
24894
+ return _this12.generateFilterConfig();
24879
24895
  });
24880
24896
  }
24881
- }))), _this11.state.filterType === "acceptance" && _this11.state.prescalerType !== "none" && /*#__PURE__*/React.createElement("div", {
24897
+ }))), _this12.state.filterType === "acceptance" && _this12.state.prescalerType !== "none" && /*#__PURE__*/React.createElement("div", {
24882
24898
  className: "form-group pl0 field-string"
24883
- }, _this11.state.prescalerType === "count" && "Count value", _this11.state.prescalerType === "time" && "Time interval (ms)", _this11.state.prescalerType === "data" && "Data mask (hex)", (_this11.state.prescalerType === "count" || _this11.state.prescalerType === "time") && /*#__PURE__*/React.createElement("input", {
24899
+ }, _this12.state.prescalerType === "count" && "Count value", _this12.state.prescalerType === "time" && "Time interval (ms)", _this12.state.prescalerType === "data" && "Data mask (hex)", (_this12.state.prescalerType === "count" || _this12.state.prescalerType === "time") && /*#__PURE__*/React.createElement("input", {
24884
24900
  type: "number",
24885
24901
  className: "form-control encryption-input",
24886
24902
  min: "1",
24887
- max: _this11.state.prescalerType === "count" ? 256 : 4194304,
24888
- value: _this11.state.prescalerValue,
24903
+ max: _this12.state.prescalerType === "count" ? 256 : 4194304,
24904
+ value: _this12.state.prescalerValue,
24889
24905
  onChange: function onChange(e) {
24890
- return _this11.setState({
24906
+ return _this12.setState({
24891
24907
  prescalerValue: parseInt(e.target.value) || 1
24892
24908
  }, function () {
24893
- return _this11.generateFilterConfig();
24909
+ return _this12.generateFilterConfig();
24894
24910
  });
24895
24911
  }
24896
- }), _this11.state.prescalerType === "data" && /*#__PURE__*/React.createElement("input", {
24912
+ }), _this12.state.prescalerType === "data" && /*#__PURE__*/React.createElement("input", {
24897
24913
  type: "text",
24898
24914
  className: "form-control encryption-input",
24899
- value: _this11.state.dataPrescalerMask,
24915
+ value: _this12.state.dataPrescalerMask,
24900
24916
  onChange: function onChange(e) {
24901
24917
  var val = e.target.value.toUpperCase();
24902
24918
  if (/^[a-fA-F0-9]*$/.test(val) && val.length <= 16) {
24903
- _this11.setState({
24919
+ _this12.setState({
24904
24920
  dataPrescalerMask: val
24905
24921
  }, function () {
24906
- return _this11.generateFilterConfig();
24922
+ return _this12.generateFilterConfig();
24907
24923
  });
24908
24924
  }
24909
24925
  },
@@ -24914,7 +24930,7 @@ var FilterBuilderTool = /*#__PURE__*/function (_React$Component) {
24914
24930
  }
24915
24931
  }), /*#__PURE__*/React.createElement("span", {
24916
24932
  className: "field-description field-description-shift"
24917
- }, _this11.state.prescalerType === "count" && "Accept every Nth message (1-256)", _this11.state.prescalerType === "time" && "Minimum time between messages (1-4194304 ms)", _this11.state.prescalerType === "data" && "Hex mask for data change detection")), /*#__PURE__*/React.createElement("div", {
24933
+ }, _this12.state.prescalerType === "count" && "Accept every Nth message (1-256)", _this12.state.prescalerType === "time" && "Minimum time between messages (1-4194304 ms)", _this12.state.prescalerType === "data" && "Hex mask for data change detection")), /*#__PURE__*/React.createElement("div", {
24918
24934
  style: {
24919
24935
  display: "flex",
24920
24936
  alignItems: "center",
@@ -24934,12 +24950,12 @@ var FilterBuilderTool = /*#__PURE__*/function (_React$Component) {
24934
24950
  type: "radio",
24935
24951
  name: "filterMergeMode",
24936
24952
  value: "replace",
24937
- checked: _this11.state.filterMergeMode === "replace",
24953
+ checked: _this12.state.filterMergeMode === "replace",
24938
24954
  onChange: function onChange(e) {
24939
- return _this11.setState({
24955
+ return _this12.setState({
24940
24956
  filterMergeMode: e.target.value
24941
24957
  }, function () {
24942
- return _this11.generateFilterConfig();
24958
+ return _this12.generateFilterConfig();
24943
24959
  });
24944
24960
  },
24945
24961
  style: {
@@ -24962,12 +24978,12 @@ var FilterBuilderTool = /*#__PURE__*/function (_React$Component) {
24962
24978
  type: "radio",
24963
24979
  name: "filterMergeMode",
24964
24980
  value: "append_top",
24965
- checked: _this11.state.filterMergeMode === "append_top",
24981
+ checked: _this12.state.filterMergeMode === "append_top",
24966
24982
  onChange: function onChange(e) {
24967
- return _this11.setState({
24983
+ return _this12.setState({
24968
24984
  filterMergeMode: e.target.value
24969
24985
  }, function () {
24970
- return _this11.generateFilterConfig();
24986
+ return _this12.generateFilterConfig();
24971
24987
  });
24972
24988
  },
24973
24989
  style: {
@@ -24990,12 +25006,12 @@ var FilterBuilderTool = /*#__PURE__*/function (_React$Component) {
24990
25006
  type: "radio",
24991
25007
  name: "filterMergeMode",
24992
25008
  value: "append_bottom",
24993
- checked: _this11.state.filterMergeMode === "append_bottom",
25009
+ checked: _this12.state.filterMergeMode === "append_bottom",
24994
25010
  onChange: function onChange(e) {
24995
- return _this11.setState({
25011
+ return _this12.setState({
24996
25012
  filterMergeMode: e.target.value
24997
25013
  }, function () {
24998
- return _this11.generateFilterConfig();
25014
+ return _this12.generateFilterConfig();
24999
25015
  });
25000
25016
  },
25001
25017
  style: {
@@ -25029,9 +25045,9 @@ var FilterBuilderTool = /*#__PURE__*/function (_React$Component) {
25029
25045
  }, 0);
25030
25046
  return " (" + count11Bit + " 11-bit, " + count29Bit + " 29-bit) | " + sizePercent.toFixed(1) + "%";
25031
25047
  }()), function () {
25032
- var isFirmwareSupported = _this11.isFirmwareVersionSupported();
25033
- var isCanmod = _this11.props.deviceType === "CANmod";
25034
- var isCanmodRouter = isCanmod && _this11.isCanmodRouter();
25048
+ var isFirmwareSupported = _this12.isFirmwareVersionSupported();
25049
+ var isCanmod = _this12.props.deviceType === "CANmod";
25050
+ var isCanmodRouter = isCanmod && _this12.isCanmodRouter();
25035
25051
  var minFirmware = isCanmod ? MIN_FIRMWARE_CANMOD_ROUTER : MIN_FIRMWARE_CANEDGE;
25036
25052
  var isDeviceSupported = !isCanmod || isCanmodRouter;
25037
25053
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
@@ -25042,20 +25058,20 @@ var FilterBuilderTool = /*#__PURE__*/function (_React$Component) {
25042
25058
  }
25043
25059
  }, /*#__PURE__*/React.createElement("button", {
25044
25060
  className: "btn btn-primary",
25045
- onClick: _this11.onMerge,
25046
- disabled: !_this11.props.formData || Object.keys(_this11.props.formData).length === 0 || _this11.state.mergedConfigValid !== true || !isFirmwareSupported || !isDeviceSupported
25061
+ onClick: _this12.onMerge,
25062
+ disabled: !_this12.props.formData || Object.keys(_this12.props.formData).length === 0 || _this12.state.mergedConfigValid !== true || !isFirmwareSupported || !isDeviceSupported
25047
25063
  }, "Merge files"), /*#__PURE__*/React.createElement("button", {
25048
25064
  className: "btn btn-default",
25049
- onClick: _this11.onDownload,
25050
- disabled: Object.keys(_this11.state.generatedFilterConfig).length === 0
25051
- }, "Download JSON")), _this11.props.formData && Object.keys(_this11.props.formData).length > 0 && isDeviceSupported && !isFirmwareSupported && /*#__PURE__*/React.createElement("div", {
25065
+ onClick: _this12.onDownload,
25066
+ disabled: Object.keys(_this12.state.generatedFilterConfig).length === 0
25067
+ }, "Download JSON")), _this12.props.formData && Object.keys(_this12.props.formData).length > 0 && isDeviceSupported && !isFirmwareSupported && /*#__PURE__*/React.createElement("div", {
25052
25068
  style: {
25053
25069
  fontSize: "12px",
25054
25070
  color: "#666",
25055
25071
  marginTop: "8px"
25056
25072
  }
25057
25073
  }, "Merging requires firmware ", minFirmware, ".XX+ - please update your device"));
25058
- }(), Object.keys(_this11.state.generatedFilterConfig).length > 0 && /*#__PURE__*/React.createElement("div", {
25074
+ }(), Object.keys(_this12.state.generatedFilterConfig).length > 0 && /*#__PURE__*/React.createElement("div", {
25059
25075
  style: {
25060
25076
  marginTop: "10px"
25061
25077
  }
@@ -25068,17 +25084,17 @@ var FilterBuilderTool = /*#__PURE__*/function (_React$Component) {
25068
25084
  }
25069
25085
  }, /*#__PURE__*/React.createElement("input", {
25070
25086
  type: "checkbox",
25071
- checked: _this11.state.showFilterPreview,
25087
+ checked: _this12.state.showFilterPreview,
25072
25088
  onChange: function onChange() {
25073
- return _this11.setState({
25074
- showFilterPreview: !_this11.state.showFilterPreview
25089
+ return _this12.setState({
25090
+ showFilterPreview: !_this12.state.showFilterPreview
25075
25091
  });
25076
25092
  },
25077
25093
  style: {
25078
25094
  marginRight: "6px",
25079
25095
  marginBottom: "4px"
25080
25096
  }
25081
- }), "Show partial config preview"), _this11.state.showFilterPreview && /*#__PURE__*/React.createElement("div", {
25097
+ }), "Show partial config preview"), _this12.state.showFilterPreview && /*#__PURE__*/React.createElement("div", {
25082
25098
  style: {
25083
25099
  marginTop: "10px"
25084
25100
  }
@@ -25089,21 +25105,8 @@ var FilterBuilderTool = /*#__PURE__*/function (_React$Component) {
25089
25105
  overflow: "auto",
25090
25106
  fontSize: "11px"
25091
25107
  }
25092
- }, JSON.stringify(_this11.state.generatedFilterConfig, null, 2)))));
25093
- }()), /*#__PURE__*/React.createElement("div", {
25094
- style: {
25095
- display: "none"
25096
- }
25097
- }, /*#__PURE__*/React.createElement(Form, {
25098
- validator: validator,
25099
- onError: this.onValidationError,
25100
- schema: this.props.schemaContent ? this.props.schemaContent : {},
25101
- formData: this.state.mergedConfig ? this.state.mergedConfig : {},
25102
- onSubmit: this.onSubmit,
25103
- ref: function ref(form) {
25104
- yourForm$2 = form;
25105
- }
25106
- })), /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("br", null), /*#__PURE__*/React.createElement("br", null), /*#__PURE__*/React.createElement("br", null), /*#__PURE__*/React.createElement("br", null), /*#__PURE__*/React.createElement("br", null), /*#__PURE__*/React.createElement("br", null)));
25108
+ }, JSON.stringify(_this12.state.generatedFilterConfig, null, 2)))));
25109
+ }()), /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("br", null), /*#__PURE__*/React.createElement("br", null), /*#__PURE__*/React.createElement("br", null), /*#__PURE__*/React.createElement("br", null), /*#__PURE__*/React.createElement("br", null), /*#__PURE__*/React.createElement("br", null)));
25107
25110
  };
25108
25111
  return FilterBuilderTool;
25109
25112
  }(React.Component);