@seedtactics/insight-client 16.8.0 → 16.8.2

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 (167) hide show
  1. package/README.md +23 -29
  2. package/dist/assets/index-BDPKYaRT.js +388 -0
  3. package/dist/cell-status/current-status.js +4 -1
  4. package/dist/cell-status/estimated-cycle-times.js +2 -1
  5. package/dist/cell-status/inspections.js +1 -1
  6. package/dist/cell-status/loading.js +1 -1
  7. package/dist/cell-status/material-summary.js +4 -2
  8. package/dist/cell-status/names.js +1 -1
  9. package/dist/cell-status/rebookings.js +3 -1
  10. package/dist/cell-status/scheduled-jobs.js +1 -1
  11. package/dist/cell-status/sim-production.js +6 -2
  12. package/dist/cell-status/station-cycles.js +3 -1
  13. package/dist/cell-status/tool-replacements.js +21 -7
  14. package/dist/cell-status/tool-usage.js +7 -2
  15. package/dist/components/App.d.ts +2 -2
  16. package/dist/components/App.js +13 -5
  17. package/dist/components/AxisAndGrid.d.ts +6 -6
  18. package/dist/components/BarcodeScanning.d.ts +2 -2
  19. package/dist/components/BarcodeScanning.js +9 -3
  20. package/dist/components/ChartTooltip.d.ts +2 -2
  21. package/dist/components/ChooseMode.js +6 -1
  22. package/dist/components/ChooseOperator.d.ts +1 -1
  23. package/dist/components/ChooseOperator.js +1 -1
  24. package/dist/components/ErrorsAndLoading.d.ts +3 -3
  25. package/dist/components/ErrorsAndLoading.js +1 -1
  26. package/dist/components/LoadingIcon.d.ts +1 -1
  27. package/dist/components/LoadingIcon.js +2 -2
  28. package/dist/components/LogEntry.d.ts +2 -2
  29. package/dist/components/LogEntry.js +31 -29
  30. package/dist/components/ManualSerialEntry.d.ts +2 -2
  31. package/dist/components/ManualSerialEntry.js +1 -1
  32. package/dist/components/MonthSelect.d.ts +1 -1
  33. package/dist/components/MonthSelect.js +4 -2
  34. package/dist/components/Navigation.d.ts +2 -2
  35. package/dist/components/Navigation.js +2 -2
  36. package/dist/components/VerboseLogging.d.ts +1 -1
  37. package/dist/components/analysis/AnalysisSelectToolbar.d.ts +1 -1
  38. package/dist/components/analysis/BasketCycleCards.d.ts +1 -1
  39. package/dist/components/analysis/BasketCycleCards.js +2 -2
  40. package/dist/components/analysis/BufferChart.d.ts +1 -1
  41. package/dist/components/analysis/BufferChart.js +23 -4
  42. package/dist/components/analysis/CostPerPiece.d.ts +2 -2
  43. package/dist/components/analysis/CostPerPiece.js +3 -3
  44. package/dist/components/analysis/CycleChart.d.ts +1 -1
  45. package/dist/components/analysis/CycleChart.js +19 -6
  46. package/dist/components/analysis/DataTable.js +5 -3
  47. package/dist/components/analysis/EfficiencyPage.d.ts +2 -2
  48. package/dist/components/analysis/EfficiencyPage.js +1 -1
  49. package/dist/components/analysis/HeatChart.d.ts +1 -1
  50. package/dist/components/analysis/HeatChart.js +13 -4
  51. package/dist/components/analysis/InspectionDataTable.d.ts +1 -1
  52. package/dist/components/analysis/InspectionDataTable.js +6 -1
  53. package/dist/components/analysis/InspectionSankey.d.ts +1 -1
  54. package/dist/components/analysis/InspectionSankey.js +16 -6
  55. package/dist/components/analysis/PalletCycleCards.d.ts +1 -1
  56. package/dist/components/analysis/PalletCycleCards.js +5 -3
  57. package/dist/components/analysis/PartCycleCards.d.ts +2 -2
  58. package/dist/components/analysis/PartCycleCards.js +16 -6
  59. package/dist/components/analysis/QualityPage.d.ts +1 -1
  60. package/dist/components/analysis/ScheduleHistory.d.ts +1 -1
  61. package/dist/components/analysis/ScheduleHistory.js +2 -2
  62. package/dist/components/analysis/StationDataTable.d.ts +1 -1
  63. package/dist/components/analysis/ToolReplacements.d.ts +1 -1
  64. package/dist/components/analysis/ToolReplacements.js +8 -4
  65. package/dist/components/operations/AllMaterial.d.ts +1 -1
  66. package/dist/components/operations/AllMaterial.js +1 -1
  67. package/dist/components/operations/ChartRangeEdit.d.ts +1 -1
  68. package/dist/components/operations/ChartRangeEdit.js +14 -5
  69. package/dist/components/operations/CloseoutReport.js +2 -2
  70. package/dist/components/operations/CompletedParts.js +3 -3
  71. package/dist/components/operations/CurrentWorkorders.js +3 -3
  72. package/dist/components/operations/Dashboard.d.ts +2 -2
  73. package/dist/components/operations/Dashboard.js +1 -1
  74. package/dist/components/operations/OEEChart.d.ts +4 -4
  75. package/dist/components/operations/OEEChart.js +7 -2
  76. package/dist/components/operations/Outliers.d.ts +1 -1
  77. package/dist/components/operations/Outliers.js +1 -1
  78. package/dist/components/operations/Programs.js +10 -5
  79. package/dist/components/operations/Rebookings.d.ts +1 -1
  80. package/dist/components/operations/Rebookings.js +4 -2
  81. package/dist/components/operations/RecentCycleChart.d.ts +1 -1
  82. package/dist/components/operations/RecentCycleChart.js +3 -3
  83. package/dist/components/operations/RecentProduction.js +3 -3
  84. package/dist/components/operations/RecentSchedules.js +6 -4
  85. package/dist/components/operations/RecentStationCycles.d.ts +1 -1
  86. package/dist/components/operations/RecentStationCycles.js +2 -2
  87. package/dist/components/operations/ShiftSettings.d.ts +1 -1
  88. package/dist/components/operations/SimDayUsage.d.ts +1 -1
  89. package/dist/components/operations/SimDayUsage.js +1 -1
  90. package/dist/components/operations/ToolReport.js +21 -10
  91. package/dist/components/operations/WorkorderGantt.d.ts +1 -1
  92. package/dist/components/operations/WorkorderGantt.js +1 -1
  93. package/dist/components/quality/QualityMaterial.d.ts +2 -2
  94. package/dist/components/quality/QualityMaterial.js +2 -2
  95. package/dist/components/quality/QualityPaths.d.ts +1 -1
  96. package/dist/components/quality/RecentFailedInspections.d.ts +1 -1
  97. package/dist/components/quality/RecentFailedInspections.js +1 -1
  98. package/dist/components/routes.d.ts +1 -1
  99. package/dist/components/routes.js +1 -1
  100. package/dist/components/station-monitor/BulkRawMaterial.d.ts +2 -2
  101. package/dist/components/station-monitor/BulkRawMaterial.js +12 -6
  102. package/dist/components/station-monitor/Closeout.js +7 -3
  103. package/dist/components/station-monitor/CustomStationMonitorDialog.js +1 -1
  104. package/dist/components/station-monitor/Inspection.js +4 -2
  105. package/dist/components/station-monitor/InvalidateCycle.d.ts +3 -3
  106. package/dist/components/station-monitor/InvalidateCycle.js +11 -4
  107. package/dist/components/station-monitor/JobDetails.js +5 -3
  108. package/dist/components/station-monitor/LoadStation.d.ts +1 -1
  109. package/dist/components/station-monitor/LoadStation.js +11 -8
  110. package/dist/components/station-monitor/Material.d.ts +10 -10
  111. package/dist/components/station-monitor/Material.js +31 -23
  112. package/dist/components/station-monitor/Material.test.js +1 -1
  113. package/dist/components/station-monitor/MoveMaterialArrows.d.ts +2 -2
  114. package/dist/components/station-monitor/PrintedLabel.d.ts +3 -3
  115. package/dist/components/station-monitor/PrintedLabel.js +10 -5
  116. package/dist/components/station-monitor/QuarantineButton.d.ts +1 -1
  117. package/dist/components/station-monitor/QuarantineButton.js +5 -3
  118. package/dist/components/station-monitor/Queues.d.ts +2 -2
  119. package/dist/components/station-monitor/Queues.js +8 -6
  120. package/dist/components/station-monitor/QueuesAddMaterial.d.ts +3 -3
  121. package/dist/components/station-monitor/QueuesAddMaterial.js +22 -9
  122. package/dist/components/station-monitor/SelectInspType.d.ts +2 -2
  123. package/dist/components/station-monitor/SelectInspType.js +1 -1
  124. package/dist/components/station-monitor/SelectWorkorder.d.ts +1 -1
  125. package/dist/components/station-monitor/SelectWorkorder.js +1 -1
  126. package/dist/components/station-monitor/StationToolbar.d.ts +1 -1
  127. package/dist/components/station-monitor/StationToolbar.js +13 -3
  128. package/dist/components/station-monitor/SystemOverview.d.ts +4 -4
  129. package/dist/components/station-monitor/SystemOverview.js +45 -23
  130. package/dist/components/station-monitor/Whiteboard.d.ts +1 -1
  131. package/dist/data/all-material-bins.d.ts +1 -1
  132. package/dist/data/all-material-bins.js +7 -6
  133. package/dist/data/chart-times.d.ts +1 -1
  134. package/dist/data/cost-per-piece.js +3 -1
  135. package/dist/data/current-cycles.js +3 -3
  136. package/dist/data/move-arrows.js +3 -1
  137. package/dist/data/operators.d.ts +1 -1
  138. package/dist/data/part-summary.js +1 -1
  139. package/dist/data/results.cycles.js +13 -4
  140. package/dist/data/tools-programs.d.ts +2 -2
  141. package/dist/data/tools-programs.js +3 -2
  142. package/dist/index.html +1 -1
  143. package/dist/network/api.d.ts +75 -9
  144. package/dist/network/api.js +626 -379
  145. package/dist/util/chart-colors.js +12 -1
  146. package/docs/client-efficiency.md +226 -263
  147. package/docs/client-engineering.md +27 -28
  148. package/docs/client-launch.md +32 -33
  149. package/docs/client-operations.md +50 -53
  150. package/docs/client-quality.md +39 -43
  151. package/docs/client-sales.md +36 -40
  152. package/docs/client-scanners.md +27 -27
  153. package/docs/client-station-monitor.md +86 -96
  154. package/docs/client-tools-programs.md +47 -44
  155. package/docs/improve-fms.md +73 -78
  156. package/docs/makino.md +21 -25
  157. package/docs/material-quarantine.md +50 -64
  158. package/docs/material-tracking.md +162 -195
  159. package/docs/mazak.md +78 -91
  160. package/docs/niigata.md +145 -168
  161. package/docs/operator-procedures.md +72 -76
  162. package/docs/part-instructions.md +36 -36
  163. package/docs/security.md +87 -81
  164. package/docs/server-config.md +36 -45
  165. package/docs/server-errors.md +21 -22
  166. package/package.json +27 -26
  167. package/dist/assets/index-BwbaiELK.js +0 -364
@@ -1,4 +1,4 @@
1
- import { jsxs as _jsxs, jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
1
+ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  /* Copyright (c) 2020, John Lenz
3
3
 
4
4
  All rights reserved.
@@ -71,10 +71,10 @@ function logType(entry, fmsInfo) {
71
71
  switch (entry.type) {
72
72
  case api.LogType.LoadUnloadCycle:
73
73
  if (entry.startofcycle) {
74
- return "Start " + entry.result.charAt(0).toUpperCase() + entry.result.substring(1).toLowerCase();
74
+ return ("Start " + entry.result.charAt(0).toUpperCase() + entry.result.substring(1).toLowerCase());
75
75
  }
76
76
  else {
77
- return "End " + entry.result.charAt(0).toUpperCase() + entry.result.substring(1).toLowerCase();
77
+ return ("End " + entry.result.charAt(0).toUpperCase() + entry.result.substring(1).toLowerCase());
78
78
  }
79
79
  case api.LogType.BasketLoadUnload:
80
80
  if (entry.program === "LOAD") {
@@ -179,10 +179,10 @@ function display(props, fmsInfo) {
179
179
  const entry = props.entry;
180
180
  switch (entry.type) {
181
181
  case api.LogType.LoadUnloadCycle:
182
- return (_jsxs("span", { children: [displayMat(entry.material), " on ", _jsxs(ColoredSpan, { "$type": "pallet", children: ["pallet ", entry.pal] }), " at", " ", _jsx(ColoredSpan, { "$type": "loadStation", children: loadStationDisplayName(entry.locnum, fmsInfo.loadStationNames) })] }));
182
+ return (_jsxs("span", { children: [displayMat(entry.material), " on", " ", _jsxs(ColoredSpan, { $type: "pallet", children: ["pallet ", entry.pal] }), " at", " ", _jsx(ColoredSpan, { $type: "loadStation", children: loadStationDisplayName(entry.locnum, fmsInfo.loadStationNames) })] }));
183
183
  case api.LogType.BasketLoadUnload: {
184
184
  const basketName = basketDisplayName(fmsInfo.basketName);
185
- return (_jsxs("span", { children: [displayMat(entry.material), " ", entry.program === "LOAD" ? "loaded onto" : "unloaded from", " ", _jsxs(ColoredSpan, { "$type": "pallet", children: [basketName, " ", entry.pal] }), " ", "at", " ", _jsx(ColoredSpan, { "$type": "loadStation", children: loadStationDisplayName(entry.locnum, fmsInfo.loadStationNames) })] }));
185
+ return (_jsxs("span", { children: [displayMat(entry.material), " ", entry.program === "LOAD" ? "loaded onto" : "unloaded from", " ", _jsxs(ColoredSpan, { $type: "pallet", children: [basketName, " ", entry.pal] }), " ", "at", " ", _jsx(ColoredSpan, { $type: "loadStation", children: loadStationDisplayName(entry.locnum, fmsInfo.loadStationNames) })] }));
186
186
  }
187
187
  case api.LogType.BasketCycle: {
188
188
  const basketName = basketDisplayName(fmsInfo.basketName);
@@ -203,7 +203,7 @@ function display(props, fmsInfo) {
203
203
  }
204
204
  }
205
205
  case api.LogType.MachineCycle:
206
- return (_jsxs("span", { children: [displayMat(entry.material), " on ", _jsxs(ColoredSpan, { "$type": "pallet", children: ["pallet ", entry.pal] }), " at", " ", _jsxs(ColoredSpan, { "$type": "machine", children: [entry.loc, " ", entry.locnum.toString()] }), entry.program && entry.program !== "" ? _jsxs("span", { children: [" with program ", entry.program] }) : undefined] }));
206
+ return (_jsxs("span", { children: [displayMat(entry.material), " on", " ", _jsxs(ColoredSpan, { $type: "pallet", children: ["pallet ", entry.pal] }), " at", " ", _jsxs(ColoredSpan, { $type: "machine", children: [entry.loc, " ", entry.locnum.toString()] }), entry.program && entry.program !== "" ? (_jsxs("span", { children: [" with program ", entry.program] })) : undefined] }));
207
207
  case api.LogType.PartMark:
208
208
  return (_jsxs("span", { children: [displayMat(entry.material), " marked with ", entry.result] }));
209
209
  case api.LogType.OrderAssignment:
@@ -219,71 +219,71 @@ function display(props, fmsInfo) {
219
219
  const inspName = (entry.details || {}).InspectionType || "";
220
220
  const inspected = entry.result.toLowerCase() === "true" || entry.result === "1";
221
221
  if (inspected) {
222
- return (_jsxs("span", { children: [displayMat(entry.material), " signaled for inspection", " ", _jsx(ColoredSpan, { "$type": "inspectionSignaled", children: inspName })] }));
222
+ return (_jsxs("span", { children: [displayMat(entry.material), " signaled for inspection", " ", _jsx(ColoredSpan, { $type: "inspectionSignaled", children: inspName })] }));
223
223
  }
224
224
  else {
225
- return (_jsxs("span", { children: [displayMat(entry.material), " skipped inspection", " ", _jsx(ColoredSpan, { "$type": "inspectionNotSignaled", children: inspName })] }));
225
+ return (_jsxs("span", { children: [displayMat(entry.material), " skipped inspection", " ", _jsx(ColoredSpan, { $type: "inspectionNotSignaled", children: inspName })] }));
226
226
  }
227
227
  }
228
228
  case api.LogType.InspectionForce: {
229
229
  const forceInspName = entry.program;
230
230
  const forced = entry.result.toLowerCase() === "true" || entry.result === "1";
231
231
  if (forced) {
232
- return (_jsxs("span", { children: [displayMat(entry.material), " declared for inspection", " ", _jsx(ColoredSpan, { "$type": "inspectionSignaled", children: forceInspName })] }));
232
+ return (_jsxs("span", { children: [displayMat(entry.material), " declared for inspection", " ", _jsx(ColoredSpan, { $type: "inspectionSignaled", children: forceInspName })] }));
233
233
  }
234
234
  else {
235
- return (_jsxs("span", { children: [displayMat(entry.material), " passed over for inspection", " ", _jsx(ColoredSpan, { "$type": "inspectionNotSignaled", children: forceInspName })] }));
235
+ return (_jsxs("span", { children: [displayMat(entry.material), " passed over for inspection", " ", _jsx(ColoredSpan, { $type: "inspectionNotSignaled", children: forceInspName })] }));
236
236
  }
237
237
  }
238
238
  case api.LogType.WorkorderComment:
239
239
  return _jsxs("span", { children: ["Workorder ", entry.result, " Comment"] });
240
240
  case api.LogType.InspectionResult:
241
241
  if (entry.result.toLowerCase() === "false") {
242
- return _jsxs(ColoredSpan, { "$type": "inspectionSignaled", children: [entry.program, " Failed"] });
242
+ return _jsxs(ColoredSpan, { $type: "inspectionSignaled", children: [entry.program, " Failed"] });
243
243
  }
244
244
  else {
245
- return _jsxs(ColoredSpan, { "$type": "inspectionSignaled", children: [entry.program, " Succeeded"] });
245
+ return _jsxs(ColoredSpan, { $type: "inspectionSignaled", children: [entry.program, " Succeeded"] });
246
246
  }
247
247
  case api.LogType.CloseOut:
248
248
  if (entry.result.toLowerCase() === "failed") {
249
- return (_jsxs(ColoredSpan, { "$type": "closeoutFailed", children: [entry.program && entry.program !== "" ? entry.program : "CloseOut", " Failed"] }));
249
+ return (_jsxs(ColoredSpan, { $type: "closeoutFailed", children: [entry.program && entry.program !== "" ? entry.program : "CloseOut", " Failed"] }));
250
250
  }
251
251
  else {
252
- return _jsxs("span", { children: [entry.program && entry.program !== "" ? entry.program : "CloseOut", " Completed"] });
252
+ return (_jsxs("span", { children: [entry.program && entry.program !== "" ? entry.program : "CloseOut", " Completed"] }));
253
253
  }
254
254
  case api.LogType.AddToQueue:
255
255
  switch (entry.program) {
256
256
  case "Unloaded":
257
- return (_jsxs("span", { children: [displayQueueMat(entry.material), " unloaded into queue", " ", _jsx(ColoredSpan, { "$type": "queue", children: entry.loc })] }));
257
+ return (_jsxs("span", { children: [displayQueueMat(entry.material), " unloaded into queue", " ", _jsx(ColoredSpan, { $type: "queue", children: entry.loc })] }));
258
258
  case "SetByOperator":
259
- return (_jsxs("span", { children: [displayQueueMat(entry.material), " set manually into queue", " ", _jsx(ColoredSpan, { "$type": "queue", children: entry.loc })] }));
259
+ return (_jsxs("span", { children: [displayQueueMat(entry.material), " set manually into queue", " ", _jsx(ColoredSpan, { $type: "queue", children: entry.loc })] }));
260
260
  case "Quarantine":
261
- return (_jsxs("span", { children: [displayQueueMat(entry.material), " quarantined into queue", " ", _jsx(ColoredSpan, { "$type": "queue", children: entry.loc })] }));
261
+ return (_jsxs("span", { children: [displayQueueMat(entry.material), " quarantined into queue", " ", _jsx(ColoredSpan, { $type: "queue", children: entry.loc })] }));
262
262
  case "SwapMaterial":
263
- return (_jsxs("span", { children: [displayQueueMat(entry.material), " swapped off pallet into queue", " ", _jsx(ColoredSpan, { "$type": "queue", children: entry.loc })] }));
263
+ return (_jsxs("span", { children: [displayQueueMat(entry.material), " swapped off pallet into queue", " ", _jsx(ColoredSpan, { $type: "queue", children: entry.loc })] }));
264
264
  case "MaterialMissingOnPallet":
265
- return (_jsxs("span", { children: [displayQueueMat(entry.material), " removed from cell controller, added to queue", " ", _jsx(ColoredSpan, { "$type": "queue", children: entry.loc })] }));
265
+ return (_jsxs("span", { children: [displayQueueMat(entry.material), " removed from cell controller, added to queue", " ", _jsx(ColoredSpan, { $type: "queue", children: entry.loc })] }));
266
266
  default:
267
- return (_jsxs("span", { children: [displayQueueMat(entry.material), " added to queue", " ", _jsx(ColoredSpan, { "$type": "queue", children: entry.loc }), entry.program && entry.program !== "" ? " (" + entry.program + ")" : undefined] }));
267
+ return (_jsxs("span", { children: [displayQueueMat(entry.material), " added to queue", " ", _jsx(ColoredSpan, { $type: "queue", children: entry.loc }), entry.program && entry.program !== "" ? " (" + entry.program + ")" : undefined] }));
268
268
  }
269
269
  case api.LogType.RemoveFromQueue:
270
- return (_jsxs("span", { children: [displayQueueMat(entry.material), " removed from queue", " ", _jsx(ColoredSpan, { "$type": "queue", children: entry.loc })] }));
270
+ return (_jsxs("span", { children: [displayQueueMat(entry.material), " removed from queue", " ", _jsx(ColoredSpan, { $type: "queue", children: entry.loc })] }));
271
271
  case api.LogType.PalletInStocker:
272
272
  if (entry.startofcycle) {
273
- return (_jsxs("span", { children: [_jsxs(ColoredSpan, { "$type": "pallet", children: ["Pallet ", entry.pal] }), " arrived at stocker ", entry.locnum] }));
273
+ return (_jsxs("span", { children: [_jsxs(ColoredSpan, { $type: "pallet", children: ["Pallet ", entry.pal] }), " arrived at stocker", " ", entry.locnum] }));
274
274
  }
275
275
  else {
276
- return (_jsxs("span", { children: [_jsxs(ColoredSpan, { "$type": "pallet", children: ["Pallet ", entry.pal] }), " departed stocker ", entry.locnum] }));
276
+ return (_jsxs("span", { children: [_jsxs(ColoredSpan, { $type: "pallet", children: ["Pallet ", entry.pal] }), " departed stocker", " ", entry.locnum] }));
277
277
  }
278
278
  case api.LogType.PalletOnRotaryInbound:
279
279
  if (entry.startofcycle) {
280
- return (_jsxs("span", { children: [_jsxs(ColoredSpan, { "$type": "pallet", children: ["Pallet ", entry.pal] }), " arrived at", " ", _jsxs(ColoredSpan, { "$type": "machine", children: [entry.loc, " ", entry.locnum.toString()] })] }));
280
+ return (_jsxs("span", { children: [_jsxs(ColoredSpan, { $type: "pallet", children: ["Pallet ", entry.pal] }), " arrived at", " ", _jsxs(ColoredSpan, { $type: "machine", children: [entry.loc, " ", entry.locnum.toString()] })] }));
281
281
  }
282
282
  else if (entry.result == "RotateIntoWorktable") {
283
- return (_jsxs("span", { children: [_jsxs(ColoredSpan, { "$type": "pallet", children: ["Pallet ", entry.pal] }), " rotated into", " ", _jsxs(ColoredSpan, { "$type": "machine", children: [entry.loc, " ", entry.locnum.toString()] }), " ", "worktable"] }));
283
+ return (_jsxs("span", { children: [_jsxs(ColoredSpan, { $type: "pallet", children: ["Pallet ", entry.pal] }), " rotated into", " ", _jsxs(ColoredSpan, { $type: "machine", children: [entry.loc, " ", entry.locnum.toString()] }), " ", "worktable"] }));
284
284
  }
285
285
  else {
286
- return (_jsxs("span", { children: [_jsxs(ColoredSpan, { "$type": "pallet", children: ["Pallet ", entry.pal] }), " left", " ", _jsxs(ColoredSpan, { "$type": "machine", children: [entry.loc, " ", entry.locnum.toString()] })] }));
286
+ return (_jsxs("span", { children: [_jsxs(ColoredSpan, { $type: "pallet", children: ["Pallet ", entry.pal] }), " left", " ", _jsxs(ColoredSpan, { $type: "machine", children: [entry.loc, " ", entry.locnum.toString()] })] }));
287
287
  }
288
288
  case api.LogType.SignalQuarantine:
289
289
  return _jsxs("span", { children: [displayMat(entry.material), " signaled for quarantine after unload"] });
@@ -358,7 +358,9 @@ const logTypesToHighlight = [
358
358
  api.LogType.BasketLoadUnload,
359
359
  api.LogType.MachineCycle,
360
360
  ];
361
- const LogEntryTableRow = styled(TableRow, { shouldForwardProp: (prop) => prop.toString()[0] !== "$" })(({ $highlightProc, $invalidCycle }) => ({
361
+ const LogEntryTableRow = styled(TableRow, {
362
+ shouldForwardProp: (prop) => prop.toString()[0] !== "$",
363
+ })(({ $highlightProc, $invalidCycle }) => ({
362
364
  ...($highlightProc && { backgroundColor: "#eeeeee" }),
363
365
  ...($invalidCycle && { textDecoration: "line-through" }),
364
366
  }));
@@ -366,9 +368,9 @@ export const LogEntry = memo(function LogEntry(props) {
366
368
  const details = detailsForEntry(props.entry);
367
369
  const highlight = props.highlightProcsGreaterOrEqualTo;
368
370
  const fmsInfo = useAtomValue(fmsInformation);
369
- return (_jsxs(_Fragment, { children: [_jsxs(LogEntryTableRow, { "$highlightProc": highlight !== undefined &&
371
+ return (_jsxs(_Fragment, { children: [_jsxs(LogEntryTableRow, { $highlightProc: highlight !== undefined &&
370
372
  props.entry.material.findIndex((m) => m.proc >= highlight) >= 0 &&
371
- logTypesToHighlight.indexOf(props.entry.type) >= 0, "$invalidCycle": isLogEntryInvalidated(props.entry), children: [_jsx(TableCell, { size: "small", children: props.entry.endUTC.toLocaleDateString(undefined, {
373
+ logTypesToHighlight.indexOf(props.entry.type) >= 0, $invalidCycle: isLogEntryInvalidated(props.entry), children: [_jsx(TableCell, { size: "small", children: props.entry.endUTC.toLocaleDateString(undefined, {
372
374
  month: "short",
373
375
  day: "numeric",
374
376
  year: "2-digit",
@@ -1,5 +1,5 @@
1
- export declare const ManualSerialEntryButton: import("react").MemoExoticComponent<() => import("react/jsx-runtime").JSX.Element>;
1
+ export declare const ManualSerialEntryButton: import("react").MemoExoticComponent<() => import("react").JSX.Element>;
2
2
  export declare const enterSerialForNewMaterialDialog: import("jotai").PrimitiveAtom<string | null> & {
3
3
  init: string | null;
4
4
  };
5
- export declare const AddBySerialDialog: import("react").MemoExoticComponent<() => import("react/jsx-runtime").JSX.Element>;
5
+ export declare const AddBySerialDialog: import("react").MemoExoticComponent<() => import("react").JSX.Element>;
@@ -1,4 +1,4 @@
1
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
1
+ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  /* Copyright (c) 2022, John Lenz
3
3
 
4
4
  All rights reserved.
@@ -2,5 +2,5 @@ export interface MonthSelectProps {
2
2
  curMonth: Date;
3
3
  onSelectMonth: (d: Date) => void;
4
4
  }
5
- declare const _default: import("react").MemoExoticComponent<(props: MonthSelectProps) => import("react/jsx-runtime").JSX.Element>;
5
+ declare const _default: import("react").MemoExoticComponent<(props: MonthSelectProps) => import("react").JSX.Element>;
6
6
  export default _default;
@@ -1,4 +1,4 @@
1
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
1
+ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  /* Copyright (c) 2019, John Lenz
3
3
 
4
4
  All rights reserved.
@@ -59,7 +59,9 @@ export default memo(function MonthSelect(props) {
59
59
  }, size: "large", children: _jsx(CalendarIcon, {}) }) }) }), _jsx(Dialog, { open: dialogOpen, onClose: () => {
60
60
  setDialogOpen(false);
61
61
  setTempDialogCurMonth(undefined);
62
- }, children: _jsxs(DialogContent, { children: [_jsxs("div", { style: { display: "flex", alignItems: "center" }, children: [_jsx(IconButton, { "data-testid": "select-month-dialog-previous-year", onClick: () => setTempDialogCurMonth(addYears(tempDialogCurMonth || props.curMonth, -1)), size: "large", children: _jsx(LeftArrowIcon, {}) }), _jsx("div", { style: { flexGrow: 1 }, children: _jsx(Typography, { variant: "h5", align: "center", "data-testid": "select-month-dialog-current-year", children: (tempDialogCurMonth || props.curMonth).toLocaleDateString(undefined, { year: "numeric" }) }) }), _jsx(IconButton, { onClick: () => setTempDialogCurMonth(addYears(tempDialogCurMonth || props.curMonth, 1)), size: "large", children: _jsx(RightArrowIcon, {}) })] }), _jsx("div", { "data-testid": "select-month-dialog-choose-month", children: months.map((monthRow, monthRowIdx) => (_jsx("div", { style: monthRowIdx > 0 ? { marginTop: "1.2em" } : undefined, children: monthRow.map((month, monthIdx) => (_jsx(Button, { color: "primary", style: monthIdx > 0 ? { marginLeft: "1.2em" } : undefined, onClick: () => {
62
+ }, children: _jsxs(DialogContent, { children: [_jsxs("div", { style: { display: "flex", alignItems: "center" }, children: [_jsx(IconButton, { "data-testid": "select-month-dialog-previous-year", onClick: () => setTempDialogCurMonth(addYears(tempDialogCurMonth || props.curMonth, -1)), size: "large", children: _jsx(LeftArrowIcon, {}) }), _jsx("div", { style: { flexGrow: 1 }, children: _jsx(Typography, { variant: "h5", align: "center", "data-testid": "select-month-dialog-current-year", children: (tempDialogCurMonth || props.curMonth).toLocaleDateString(undefined, {
63
+ year: "numeric",
64
+ }) }) }), _jsx(IconButton, { onClick: () => setTempDialogCurMonth(addYears(tempDialogCurMonth || props.curMonth, 1)), size: "large", children: _jsx(RightArrowIcon, {}) })] }), _jsx("div", { "data-testid": "select-month-dialog-choose-month", children: months.map((monthRow, monthRowIdx) => (_jsx("div", { style: monthRowIdx > 0 ? { marginTop: "1.2em" } : undefined, children: monthRow.map((month, monthIdx) => (_jsx(Button, { color: "primary", style: monthIdx > 0 ? { marginLeft: "1.2em" } : undefined, onClick: () => {
63
65
  props.onSelectMonth(new Date((tempDialogCurMonth || props.curMonth).getFullYear(), month.getMonth(), 1));
64
66
  setTempDialogCurMonth(undefined);
65
67
  setDialogOpen(false);
@@ -17,7 +17,7 @@ export declare function Header({ showAlarms, showLogout, showSearch, showOperato
17
17
  Nav1: ComponentType | undefined;
18
18
  Nav2: ComponentType | undefined;
19
19
  menuNavs?: ReadonlyArray<MenuNavItem>;
20
- }): import("react/jsx-runtime").JSX.Element;
20
+ }): import("react").JSX.Element;
21
21
  export declare function SideMenu({ menuItems }: {
22
22
  menuItems?: ReadonlyArray<MenuNavItem>;
23
- }): import("react/jsx-runtime").JSX.Element | null;
23
+ }): import("react").JSX.Element | null;
@@ -1,4 +1,4 @@
1
- import { jsxs as _jsxs, jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
1
+ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  /* Copyright (c) 2023, John Lenz
3
3
 
4
4
  All rights reserved.
@@ -95,7 +95,7 @@ function MenuNavSelect({ menuNavs }) {
95
95
  return;
96
96
  setCurrentRoute(item.route);
97
97
  }), renderValue: () => {
98
- const item = menuNavs.find((i) => ("separator" in i ? false : i.route.route === curRoute.route));
98
+ const item = menuNavs.find((i) => "separator" in i ? false : i.route.route === curRoute.route);
99
99
  if (!item || "separator" in item)
100
100
  return null;
101
101
  return (_jsxs(Box, { sx: {
@@ -1 +1 @@
1
- export declare function VerboseLoggingPage(): import("react/jsx-runtime").JSX.Element;
1
+ export declare function VerboseLoggingPage(): import("react").JSX.Element;
@@ -1 +1 @@
1
- export declare const AnalysisSelectToolbar: import("react").MemoExoticComponent<() => import("react/jsx-runtime").JSX.Element>;
1
+ export declare const AnalysisSelectToolbar: import("react").MemoExoticComponent<() => import("react").JSX.Element>;
@@ -1 +1 @@
1
- export declare function BasketCycleChart(): import("react/jsx-runtime").JSX.Element;
1
+ export declare function BasketCycleChart(): import("react").JSX.Element;
@@ -1,4 +1,4 @@
1
- import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  /* Copyright (c) 2026, John Lenz
3
3
 
4
4
  All rights reserved.
@@ -134,7 +134,7 @@ export function BasketCycleChart() {
134
134
  minHeight: "2.5em",
135
135
  alignItems: "center",
136
136
  maxWidth: "calc(100vw - 24px - 24px)",
137
- }, children: [_jsxs(Typography, { variant: "subtitle1", children: [basketName, " Cycles"] }), _jsx(Box, { sx: { flexGrow: 1 } }), _jsx(FormControl, { size: "small", children: _jsxs(Select, { autoWidth: true, displayEmpty: true, value: selectedBasket ?? -1, onChange: (e) => setSelectedBasket(e.target.value === -1 ? undefined : (e.target.value)), children: [_jsx(MenuItem, { value: -1, children: _jsxs("em", { children: ["Any ", basketName] }) }, 0), basketCycles
137
+ }, children: [_jsxs(Typography, { variant: "subtitle1", children: [basketName, " Cycles"] }), _jsx(Box, { sx: { flexGrow: 1 } }), _jsx(FormControl, { size: "small", children: _jsxs(Select, { autoWidth: true, displayEmpty: true, value: selectedBasket ?? -1, onChange: (e) => setSelectedBasket(e.target.value === -1 ? undefined : e.target.value), children: [_jsx(MenuItem, { value: -1, children: _jsxs("em", { children: ["Any ", basketName] }) }, 0), basketCycles
138
138
  .keysToLazySeq()
139
139
  .sortBy((x) => x)
140
140
  .map((n) => (_jsx(MenuItem, { value: n, children: _jsx("div", { style: { display: "flex", alignItems: "center" }, children: _jsx("span", { style: { marginRight: "1em" }, children: n }) }) }, n)))] }) }), partNames.length > 0 ? (_jsx(FormControl, { size: "small", children: _jsxs(Select, { autoWidth: true, displayEmpty: true, value: selectedPart
@@ -1 +1 @@
1
- export declare function BufferOccupancyChart(): import("react/jsx-runtime").JSX.Element;
1
+ export declare function BufferOccupancyChart(): import("react").JSX.Element;
@@ -34,7 +34,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
34
34
  import { memo, useState, useMemo, useRef, useCallback } from "react";
35
35
  import { addDays, startOfToday, addMonths } from "date-fns";
36
36
  import { curveCatmullRom, line } from "d3-shape";
37
- import { buildBufferChart } from "../../data/results.bufferchart.js";
37
+ import { buildBufferChart, } from "../../data/results.bufferchart.js";
38
38
  import { seriesColor } from "../../util/chart-colors.js";
39
39
  import { rawMaterialQueues } from "../../cell-status/names.js";
40
40
  import { selectedAnalysisPeriod } from "../../network/load-specific-month.js";
@@ -114,15 +114,34 @@ const BufferChart = memo(function BufferChart(props) {
114
114
  const [disabledBuffers, setDisabledBuffers] = useState(HashSet.empty());
115
115
  const defaultDateRangeStart = defaultDateRange[0];
116
116
  const defaultDateRangeEnd = defaultDateRange[1];
117
- const series = useMemo(() => buildBufferChart(defaultDateRangeStart, defaultDateRangeEnd, props.movingAverageDistanceInHours, rawMatQueues, entries.valuesToLazySeq()), [defaultDateRangeStart, defaultDateRangeEnd, entries, props.movingAverageDistanceInHours, rawMatQueues]);
117
+ const series = useMemo(() => buildBufferChart(defaultDateRangeStart, defaultDateRangeEnd, props.movingAverageDistanceInHours, rawMatQueues, entries.valuesToLazySeq()), [
118
+ defaultDateRangeStart,
119
+ defaultDateRangeEnd,
120
+ entries,
121
+ props.movingAverageDistanceInHours,
122
+ rawMatQueues,
123
+ ]);
118
124
  const { width, height, ref: chartRef, } = useResizeDetector({
119
125
  refreshMode: "debounce",
120
126
  refreshRate: 100,
121
127
  });
122
128
  return (_jsxs("div", { children: [_jsx(Box, { ref: chartRef, sx: {
123
- height: { xs: "calc(100vh - 350px)", md: "calc(100vh - 285px)", xl: "calc(100vh - 220px)" },
129
+ height: {
130
+ xs: "calc(100vh - 350px)",
131
+ md: "calc(100vh - 285px)",
132
+ xl: "calc(100vh - 220px)",
133
+ },
124
134
  overflow: "hidden",
125
- }, children: width && height && width > 0 && height > 0 && (_jsx(BufferChartSVG, { width: width, height: height, series: series, disabled: disabledBuffers })) }), _jsx("div", { style: { marginTop: "1em", display: "flex", flexWrap: "wrap", justifyContent: "space-around" }, children: series.map((s, idx) => (_jsx(ToggleButton, { selected: !disabledBuffers.has(s.label), value: s.label, onChange: () => setDisabledBuffers((db) => (db.has(s.label) ? db.delete(s.label) : db.add(s.label))), children: _jsxs("div", { style: { display: "flex", alignItems: "center" }, children: [_jsx("div", { style: { width: "14px", height: "14px", backgroundColor: seriesColor(idx, series.length) } }), _jsx("div", { style: { marginLeft: "1em" }, children: s.label })] }) }, s.label))) })] }));
135
+ }, children: width && height && width > 0 && height > 0 && (_jsx(BufferChartSVG, { width: width, height: height, series: series, disabled: disabledBuffers })) }), _jsx("div", { style: {
136
+ marginTop: "1em",
137
+ display: "flex",
138
+ flexWrap: "wrap",
139
+ justifyContent: "space-around",
140
+ }, children: series.map((s, idx) => (_jsx(ToggleButton, { selected: !disabledBuffers.has(s.label), value: s.label, onChange: () => setDisabledBuffers((db) => (db.has(s.label) ? db.delete(s.label) : db.add(s.label))), children: _jsxs("div", { style: { display: "flex", alignItems: "center" }, children: [_jsx("div", { style: {
141
+ width: "14px",
142
+ height: "14px",
143
+ backgroundColor: seriesColor(idx, series.length),
144
+ } }), _jsx("div", { style: { marginLeft: "1em" }, children: s.label })] }) }, s.label))) })] }));
126
145
  });
127
146
  // https://github.com/mui-org/material-ui/issues/20191
128
147
  // oxlint-disable-next-line typescript/no-explicit-any
@@ -1,2 +1,2 @@
1
- export declare function CostBreakdownPage(): import("react/jsx-runtime").JSX.Element;
2
- export declare const CostPerPiecePage: import("react").MemoExoticComponent<() => import("react/jsx-runtime").JSX.Element>;
1
+ export declare function CostBreakdownPage(): import("react").JSX.Element;
2
+ export declare const CostPerPiecePage: import("react").MemoExoticComponent<() => import("react").JSX.Element>;
@@ -1,4 +1,4 @@
1
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
1
+ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  /* Copyright (c) 2021, John Lenz
3
3
 
4
4
  All rights reserved.
@@ -48,8 +48,8 @@ import { Tooltip } from "@mui/material";
48
48
  import { IconButton } from "@mui/material";
49
49
  import { PartIdenticon } from "../station-monitor/Material.js";
50
50
  import { Typography } from "@mui/material";
51
- import { last30MaterialSummary, specificMonthMaterialSummary } from "../../cell-status/material-summary.js";
52
- import { last30StationCycles, specificMonthStationCycles } from "../../cell-status/station-cycles.js";
51
+ import { last30MaterialSummary, specificMonthMaterialSummary, } from "../../cell-status/material-summary.js";
52
+ import { last30StationCycles, specificMonthStationCycles, } from "../../cell-status/station-cycles.js";
53
53
  import { useSetTitle } from "../routes.js";
54
54
  import { atom, useAtom, useAtomValue } from "jotai";
55
55
  import { atomWithStorage } from "jotai/utils";
@@ -39,4 +39,4 @@ export interface YZoomRange {
39
39
  readonly y_low: number;
40
40
  readonly y_high: number;
41
41
  }
42
- export declare const CycleChart: import("react").MemoExoticComponent<(props: CycleChartProps) => import("react/jsx-runtime").JSX.Element>;
42
+ export declare const CycleChart: import("react").MemoExoticComponent<(props: CycleChartProps) => import("react").JSX.Element>;
@@ -1,4 +1,4 @@
1
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
1
+ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  /* Copyright (c) 2022, John Lenz
3
3
 
4
4
  All rights reserved.
@@ -31,7 +31,7 @@ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31
31
  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
32
32
  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33
33
  */
34
- import { useMemo, memo, useState, useCallback } from "react";
34
+ import { useMemo, memo, useState, useCallback, } from "react";
35
35
  import { Dialog, DialogContent, DialogActions, TextField, IconButton, Button, styled, ToggleButton, Stack, } from "@mui/material";
36
36
  import { ZoomIn } from "@mui/icons-material";
37
37
  import { seriesColor } from "../../util/chart-colors.js";
@@ -172,7 +172,12 @@ const AllPointsSeries = memo(function AllPointsSeries({ series, xScale, yScale,
172
172
  .map((s) => (_jsx(SingleSeries, { points: s.points, seriesName: s.name, color: s.color, xScale: xScale, yScale: yScale, showTooltip: showTooltip }, s.name))) }));
173
173
  });
174
174
  const Legend = memo(function Legend({ series, disabledSeries, adjustDisabled, }) {
175
- return (_jsx("div", { style: { marginTop: "1em", display: "flex", flexWrap: "wrap", justifyContent: "space-around" }, children: series.map((s) => (_jsx(ToggleButton, { selected: !disabledSeries.has(s.name), value: s, onChange: () => adjustDisabled((b) => (b.has(s.name) ? b.delete(s.name) : b.add(s.name))), children: _jsxs("div", { style: { display: "flex", alignItems: "center" }, children: [_jsx("div", { style: { width: "14px", height: "14px", backgroundColor: s.color } }), _jsx("div", { style: { marginLeft: "1em" }, children: s.name })] }) }, s.name))) }));
175
+ return (_jsx("div", { style: {
176
+ marginTop: "1em",
177
+ display: "flex",
178
+ flexWrap: "wrap",
179
+ justifyContent: "space-around",
180
+ }, children: series.map((s) => (_jsx(ToggleButton, { selected: !disabledSeries.has(s.name), value: s, onChange: () => adjustDisabled((b) => (b.has(s.name) ? b.delete(s.name) : b.add(s.name))), children: _jsxs("div", { style: { display: "flex", alignItems: "center" }, children: [_jsx("div", { style: { width: "14px", height: "14px", backgroundColor: s.color } }), _jsx("div", { style: { marginLeft: "1em" }, children: s.name })] }) }, s.name))) }));
176
181
  });
177
182
  const NoPointerEvents = styled("g", { shouldForwardProp: (prop) => prop.toString()[0] !== "$" })(({ $noPtrEvents }) => $noPtrEvents
178
183
  ? {
@@ -210,7 +215,9 @@ const ChartMouseEvents = memo(function ChartMouseEvents({ setYZoom, setXZoom, se
210
215
  const y2 = yScale.invert(p.y - marginTop);
211
216
  setYZoom(y1 < y2 ? { y_low: y1, y_high: y2 } : { y_low: y2, y_high: y1 });
212
217
  setXZoom?.({
213
- zoom: time1.getTime() < time2.getTime() ? { start: time1, end: time2 } : { start: time2, end: time1 },
218
+ zoom: time1.getTime() < time2.getTime()
219
+ ? { start: time1, end: time2 }
220
+ : { start: time2, end: time1 },
214
221
  });
215
222
  }
216
223
  }
@@ -260,7 +267,7 @@ function CycleChartSvg(props) {
260
267
  containerWidth: props.containerWidth,
261
268
  containerHeight: props.containerHeight,
262
269
  });
263
- return (_jsx("svg", { width: width, height: height, children: _jsxs("g", { transform: `translate(${marginLeft}, ${marginTop})`, children: [_jsx(AxisAndGrid, { xScale: xScale, yScale: yScale }), _jsx(StatsSeries, { median: props.median, plannedMinutes: props.plannedTimeMinutes, xScale: xScale, yScale: yScale }), _jsx(ChartMouseEvents, { setYZoom: props.setYZoom, setXZoom: props.set_date_zoom_range, xScale: xScale, setTooltip: props.showTooltip, yScale: yScale, highlightStart: props.highlightStart, setHighlightStart: props.setHighlightStart }), _jsx(NoPointerEvents, { "$noPtrEvents": props.highlightStart !== null, children: _jsx(AllPointsSeries, { series: props.series, disabledSeries: props.disabledSeries, xScale: xScale, yScale: yScale, showTooltip: props.showTooltip }) })] }) }));
270
+ return (_jsx("svg", { width: width, height: height, children: _jsxs("g", { transform: `translate(${marginLeft}, ${marginTop})`, children: [_jsx(AxisAndGrid, { xScale: xScale, yScale: yScale }), _jsx(StatsSeries, { median: props.median, plannedMinutes: props.plannedTimeMinutes, xScale: xScale, yScale: yScale }), _jsx(ChartMouseEvents, { setYZoom: props.setYZoom, setXZoom: props.set_date_zoom_range, xScale: xScale, setTooltip: props.showTooltip, yScale: yScale, highlightStart: props.highlightStart, setHighlightStart: props.setHighlightStart }), _jsx(NoPointerEvents, { $noPtrEvents: props.highlightStart !== null, children: _jsx(AllPointsSeries, { series: props.series, disabledSeries: props.disabledSeries, xScale: xScale, yScale: yScale, showTooltip: props.showTooltip }) })] }) }));
264
271
  }
265
272
  export const CycleChart = memo(function CycleChart(props) {
266
273
  // the state of the chart
@@ -277,5 +284,11 @@ export const CycleChart = memo(function CycleChart(props) {
277
284
  setTooltip(null);
278
285
  setHighlightStart(null);
279
286
  }, [setTooltip, setHighlightStart]);
280
- return (_jsxs("div", { onPointerLeave: pointerLeave, children: [_jsx(ChartWithTooltip, { sx: { height: { xs: "calc(100vh - 320px)", md: "calc(100vh - 280px)", xl: "calc(100vh - 220px)" } }, tooltipAtom: tooltipAtom, TooltipContent: ({ tooltip }) => (_jsx(CycleChartTooltip, { tooltip: tooltip, seriesLabel: props.series_label, extraTooltip: props.extra_tooltip })), chart: ({ width, height }) => (_jsx(CycleChartSvg, { ...props, containerHeight: height, containerWidth: width, series: series, median: median, yZoom: props.yZoom, setYZoom: props.setYZoom, highlightStart: highlightStart, setHighlightStart: setHighlightStart, showTooltip: setTooltip, disabledSeries: disabledSeries })) }), _jsxs("div", { style: { display: "flex", flexWrap: "wrap" }, children: [_jsx("div", { style: { color: "#6b6b76" }, children: "Click on a point for details" }), _jsx("div", { style: { flexGrow: 1 } }), _jsx(ChartZoomButtons, { set_date_zoom_range: props.set_date_zoom_range, current_date_zoom: props.current_date_zoom, yZoom: props.yZoom, setYZoom: props.setYZoom, median: median })] }), _jsx(Legend, { series: series, disabledSeries: disabledSeries, adjustDisabled: setDisabled })] }));
287
+ return (_jsxs("div", { onPointerLeave: pointerLeave, children: [_jsx(ChartWithTooltip, { sx: {
288
+ height: {
289
+ xs: "calc(100vh - 320px)",
290
+ md: "calc(100vh - 280px)",
291
+ xl: "calc(100vh - 220px)",
292
+ },
293
+ }, tooltipAtom: tooltipAtom, TooltipContent: ({ tooltip }) => (_jsx(CycleChartTooltip, { tooltip: tooltip, seriesLabel: props.series_label, extraTooltip: props.extra_tooltip })), chart: ({ width, height }) => (_jsx(CycleChartSvg, { ...props, containerHeight: height, containerWidth: width, series: series, median: median, yZoom: props.yZoom, setYZoom: props.setYZoom, highlightStart: highlightStart, setHighlightStart: setHighlightStart, showTooltip: setTooltip, disabledSeries: disabledSeries })) }), _jsxs("div", { style: { display: "flex", flexWrap: "wrap" }, children: [_jsx("div", { style: { color: "#6b6b76" }, children: "Click on a point for details" }), _jsx("div", { style: { flexGrow: 1 } }), _jsx(ChartZoomButtons, { set_date_zoom_range: props.set_date_zoom_range, current_date_zoom: props.current_date_zoom, yZoom: props.yZoom, setYZoom: props.setYZoom, median: median })] }), _jsx(Legend, { series: series, disabledSeries: disabledSeries, adjustDisabled: setDisabled })] }));
281
294
  });
@@ -1,4 +1,4 @@
1
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
1
+ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  /* Copyright (c) 2025, John Lenz
3
3
 
4
4
  All rights reserved.
@@ -86,7 +86,9 @@ function SelectDateRange(props) {
86
86
  const start = props.zoom.current_date_zoom
87
87
  ? props.zoom.current_date_zoom.start
88
88
  : props.zoom.default_date_range[0];
89
- const end = addDays(props.zoom.current_date_zoom ? props.zoom.current_date_zoom.end : props.zoom.default_date_range[1], -1);
89
+ const end = addDays(props.zoom.current_date_zoom
90
+ ? props.zoom.current_date_zoom.end
91
+ : props.zoom.default_date_range[1], -1);
90
92
  function onChange(d) {
91
93
  props.zoom.set_date_zoom_range({
92
94
  start: d[0],
@@ -99,7 +101,7 @@ function SelectDateRange(props) {
99
101
  onChange([value[0], value[1]]);
100
102
  }
101
103
  };
102
- return (_jsxs(_Fragment, { children: [_jsxs("span", { children: [dateFormat.format(props.zoom.current_date_zoom?.start ?? props.zoom.default_date_range[0]), " -", " ", dateFormat.format(props.zoom.current_date_zoom?.end ?? props.zoom.default_date_range[1])] }), _jsx(Tooltip, { title: "Zoom To Date Range", children: _jsx(IconButton, { onClick: () => setOpen(true), size: "large", children: _jsx(ZoomInIcon, {}) }) }), _jsx(Tooltip, { title: "Reset Date Range", children: _jsx(IconButton, { onClick: () => props.zoom.set_date_zoom_range(undefined), size: "large", children: _jsx(ZoomOutIcon, {}) }) }), _jsxs(Dialog, { open: open, onClose: () => setOpen(false), children: [_jsxs(DialogTitle, { children: ["Select Date Range ", monthFormat.format(props.zoom.default_date_range[0])] }), _jsx(DialogContent, { children: _jsx(StyledCalendar, { minDate: props.zoom.default_date_range[0], maxDate: props.zoom.default_date_range[1], calendarType: "gregory", selectRange: true, showNavigation: false, showNeighboringMonth: false, value: [start, end], onChange: matchingOnChange }) }), _jsx(DialogActions, { children: _jsx(Button, { onClick: () => setOpen(false), children: "Close" }) })] })] }));
104
+ return (_jsxs(_Fragment, { children: [_jsxs("span", { children: [dateFormat.format(props.zoom.current_date_zoom?.start ?? props.zoom.default_date_range[0]), " ", "- ", dateFormat.format(props.zoom.current_date_zoom?.end ?? props.zoom.default_date_range[1])] }), _jsx(Tooltip, { title: "Zoom To Date Range", children: _jsx(IconButton, { onClick: () => setOpen(true), size: "large", children: _jsx(ZoomInIcon, {}) }) }), _jsx(Tooltip, { title: "Reset Date Range", children: _jsx(IconButton, { onClick: () => props.zoom.set_date_zoom_range(undefined), size: "large", children: _jsx(ZoomOutIcon, {}) }) }), _jsxs(Dialog, { open: open, onClose: () => setOpen(false), children: [_jsxs(DialogTitle, { children: ["Select Date Range ", monthFormat.format(props.zoom.default_date_range[0])] }), _jsx(DialogContent, { children: _jsx(StyledCalendar, { minDate: props.zoom.default_date_range[0], maxDate: props.zoom.default_date_range[1], calendarType: "gregory", selectRange: true, showNavigation: false, showNeighboringMonth: false, value: [start, end], onChange: matchingOnChange }) }), _jsx(DialogActions, { children: _jsx(Button, { onClick: () => setOpen(false), children: "Close" }) })] })] }));
103
105
  }
104
106
  export const DataTableActions = memo(function DataTableActions({ zoom, tpage, count, }) {
105
107
  let zoomCtrl;
@@ -1,2 +1,2 @@
1
- export declare function StationOeeHeatmap(): import("react/jsx-runtime").JSX.Element;
2
- export declare function CompletedCountHeatmap(): import("react/jsx-runtime").JSX.Element;
1
+ export declare function StationOeeHeatmap(): import("react").JSX.Element;
2
+ export declare function CompletedCountHeatmap(): import("react").JSX.Element;
@@ -37,7 +37,7 @@ import { selectedAnalysisPeriod } from "../../network/load-specific-month.js";
37
37
  import { SelectableHeatChart } from "./HeatChart.js";
38
38
  import { binSimStationUseByDayAndStat, copyOeeHeatmapToClipboard, binActiveCyclesByDayAndStat, binOccupiedCyclesByDayAndStat, binDowntimeToDayAndStat, } from "../../data/results.oee.js";
39
39
  import { binCyclesByDayAndPart, binSimProductionByDayAndPart, copyCompletedPartsHeatmapToClipboard, } from "../../data/results.completed-parts.js";
40
- import { last30SimStationUse, specificMonthSimStationUse } from "../../cell-status/sim-station-use.js";
40
+ import { last30SimStationUse, specificMonthSimStationUse, } from "../../cell-status/sim-station-use.js";
41
41
  import { last30SimProduction, specificMonthSimProduction, } from "../../cell-status/sim-production.js";
42
42
  import { last30MaterialSummary, specificMonthMaterialSummary, } from "../../cell-status/material-summary.js";
43
43
  import { last30StationCycles, specificMonthStationCycles, } from "../../cell-status/station-cycles.js";
@@ -19,4 +19,4 @@ export interface SelectableHeatCardProps<T extends string> {
19
19
  readonly options: ReadonlyArray<T>;
20
20
  }
21
21
  export type SelectableHeatChartProps<T extends string> = HeatChartProps & SelectableHeatCardProps<T>;
22
- export declare function SelectableHeatChart<T extends string>(props: SelectableHeatChartProps<T>): import("react/jsx-runtime").JSX.Element;
22
+ export declare function SelectableHeatChart<T extends string>(props: SelectableHeatChartProps<T>): import("react").JSX.Element;
@@ -1,4 +1,4 @@
1
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
1
+ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  /* Copyright (c) 2022, John Lenz
3
3
 
4
4
  All rights reserved.
@@ -33,7 +33,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33
33
  */
34
34
  import { useMemo, memo, useRef, useCallback } from "react";
35
35
  import { addDays } from "date-fns";
36
- import { Select, MenuItem, Tooltip, IconButton, Stack, Box, Typography, FormControl } from "@mui/material";
36
+ import { Select, MenuItem, Tooltip, IconButton, Stack, Box, Typography, FormControl, } from "@mui/material";
37
37
  import { ImportExport } from "@mui/icons-material";
38
38
  import { scaleBand, scaleLinear } from "d3-scale";
39
39
  import { LazySeq } from "@seedtactics/immutable-collections";
@@ -51,7 +51,9 @@ const marginRight = 2;
51
51
  const color1 = "#E8F5E9";
52
52
  const color2 = "#1B5E20";
53
53
  function useScales({ yType, dateRange, containerWidth, points, }) {
54
- const width = containerWidth === null || containerWidth === undefined || containerWidth === 0 ? 400 : containerWidth;
54
+ const width = containerWidth === null || containerWidth === undefined || containerWidth === 0
55
+ ? 400
56
+ : containerWidth;
55
57
  const maxStatLen = useMemo(() => LazySeq.of(points)
56
58
  .map((p) => p.y)
57
59
  .distinct()
@@ -98,7 +100,14 @@ function useScales({ yType, dateRange, containerWidth, points, }) {
98
100
  }
99
101
  return { yScale: nextBandScale, height: nextChartHeight, colorScale: nextFillScale };
100
102
  }, [points, yType]);
101
- return { height: chartHeight, width, xScale, yScale: bandScale, colorScale: fillScale, marginLeft };
103
+ return {
104
+ height: chartHeight,
105
+ width,
106
+ xScale,
107
+ yScale: bandScale,
108
+ colorScale: fillScale,
109
+ marginLeft,
110
+ };
102
111
  }
103
112
  const HeatAxis = memo(function HeatAxis({ xScale, yScale }) {
104
113
  return (_jsxs(_Fragment, { children: [_jsx(AxisBottom, { scale: xScale, top: yScale.range()[1], tickFormat: (d) => d.toLocaleDateString(undefined, { month: "short", day: "numeric" }) }), _jsx(AxisLeft, { scale: yScale, left: xScale.range()[0] })] }));
@@ -6,5 +6,5 @@ export interface InspectionDataTableProps {
6
6
  readonly extendDateRange?: (numDays: number) => void;
7
7
  readonly hideOpenDetailColumn?: boolean;
8
8
  }
9
- declare const _default: import("react").MemoExoticComponent<(props: InspectionDataTableProps) => import("react/jsx-runtime").JSX.Element>;
9
+ declare const _default: import("react").MemoExoticComponent<(props: InspectionDataTableProps) => import("react").JSX.Element>;
10
10
  export default _default;
@@ -143,6 +143,11 @@ export default memo(function InspDataTable(props) {
143
143
  serial: row.serial,
144
144
  workorderId: row.workorder,
145
145
  },
146
- }) })] }), _jsx(DataTableActions, { tpage: { page, rowsPerPage, setPage: (p) => setPages(pages.set(path, p)), setRowsPerPage }, count: points.material.length, zoom: tzoom.zoom })] }) })] }, path));
146
+ }) })] }), _jsx(DataTableActions, { tpage: {
147
+ page,
148
+ rowsPerPage,
149
+ setPage: (p) => setPages(pages.set(path, p)),
150
+ setRowsPerPage,
151
+ }, count: points.material.length, zoom: tzoom.zoom })] }) })] }, path));
147
152
  }) }));
148
153
  });
@@ -9,4 +9,4 @@ export interface InspectionSankeyProps {
9
9
  readonly extendDateRange?: (numDays: number) => void;
10
10
  readonly hideOpenDetailColumn?: boolean;
11
11
  }
12
- export declare function InspectionSankey(props: InspectionSankeyProps): import("react/jsx-runtime").JSX.Element;
12
+ export declare function InspectionSankey(props: InspectionSankeyProps): import("react").JSX.Element;
@@ -68,7 +68,10 @@ function LinkDisplay({ link, path, strokeWidth, setTooltip, }) {
68
68
  return (_jsx("path", { d: path, stroke: over ? green[600] : green[300], strokeWidth: strokeWidth, opacity: 0.2, fill: "none", onMouseMove: pointerOver, onMouseLeave: pointerOut }));
69
69
  }
70
70
  function NodeDisplay({ node }) {
71
- if (node.x1 === undefined || node.x0 === undefined || node.y1 === undefined || node.y0 === undefined)
71
+ if (node.x1 === undefined ||
72
+ node.x0 === undefined ||
73
+ node.y1 === undefined ||
74
+ node.y0 === undefined)
72
75
  return null;
73
76
  return (_jsxs("g", { transform: `translate(${node.x0}, ${node.y0})`, children: [_jsx("rect", { width: node.x1 - node.x0, height: node.y1 - node.y0, fill: green[800], opacity: 0.8, stroke: "none" }), _jsx("text", { x: 18, y: (node.y1 - node.y0) / 2, children: node.name })] }));
74
77
  }
@@ -89,7 +92,9 @@ const SankeyDisplay = memo(function InspectionSankeyDiagram({ data, setTooltip,
89
92
  const layout = generator({ nodes: sankeyData.nodes, links: sankeyData.links });
90
93
  return {
91
94
  nodes: layout.nodes,
92
- links: layout.links.flatMap((link) => typeof link.source === "object" && typeof link.target === "object" && link.width !== undefined
95
+ links: layout.links.flatMap((link) => typeof link.source === "object" &&
96
+ typeof link.target === "object" &&
97
+ link.width !== undefined
93
98
  ? [{ ...link, source: link.source, target: link.target, width: link.width }]
94
99
  : []),
95
100
  };
@@ -106,11 +111,15 @@ const InspectionDiagram = memo(function InspectionDiagram({ data, }) {
106
111
  const tooltipAtom = useMemo(() => atom(null), []);
107
112
  const setTooltip = useSetAtom(tooltipAtom);
108
113
  return (_jsx("div", { style: { position: "relative" }, children: _jsx(ChartWithTooltip, { sx: {
109
- height: { xs: "calc(100vh - 230px)", md: "calc(100vh - 182px)", xl: "calc(100vh - 130px)" },
114
+ height: {
115
+ xs: "calc(100vh - 230px)",
116
+ md: "calc(100vh - 182px)",
117
+ xl: "calc(100vh - 130px)",
118
+ },
110
119
  width: "100%",
111
120
  }, chart: ({ height, width }) => (_jsx(SankeyDisplay, { data: data, setTooltip: setTooltip, parentHeight: height, parentWidth: width })), tooltipAtom: tooltipAtom, TooltipContent: LinkTooltip }) }));
112
121
  });
113
- const selectedPartAtom = atomWithDefault((get) => (get(isDemoAtom) ? "aaa" : undefined));
122
+ const selectedPartAtom = atomWithDefault((get) => get(isDemoAtom) ? "aaa" : undefined);
114
123
  const selectedInspTypeAtom = atomWithDefault((get) => get(isDemoAtom) ? "CMM" : undefined);
115
124
  const showTableAtom = atom(false);
116
125
  export function InspectionSankey(props) {
@@ -121,8 +130,9 @@ export function InspectionSankey(props) {
121
130
  const selectedPart = props.restrictToPart || curPart;
122
131
  if (selectedPart && selectedInspectType) {
123
132
  curData =
124
- props.inspectionlogs.get(new PartAndInspType(selectedPart, selectedInspectType))?.valuesToLazySeq() ??
125
- [];
133
+ props.inspectionlogs
134
+ .get(new PartAndInspType(selectedPart, selectedInspectType))
135
+ ?.valuesToLazySeq() ?? [];
126
136
  }
127
137
  const parts = props.inspectionlogs
128
138
  .keysToLazySeq()