@seedtactics/insight-client 16.8.0 → 16.8.1

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 (150) hide show
  1. package/README.md +23 -29
  2. package/dist/assets/index-BGjv3-QV.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 +8 -2
  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/ErrorsAndLoading.d.ts +3 -3
  24. package/dist/components/LoadingIcon.d.ts +1 -1
  25. package/dist/components/LoadingIcon.js +1 -1
  26. package/dist/components/LogEntry.d.ts +2 -2
  27. package/dist/components/LogEntry.js +10 -8
  28. package/dist/components/ManualSerialEntry.d.ts +2 -2
  29. package/dist/components/MonthSelect.d.ts +1 -1
  30. package/dist/components/MonthSelect.js +3 -1
  31. package/dist/components/Navigation.d.ts +2 -2
  32. package/dist/components/Navigation.js +1 -1
  33. package/dist/components/VerboseLogging.d.ts +1 -1
  34. package/dist/components/analysis/AnalysisSelectToolbar.d.ts +1 -1
  35. package/dist/components/analysis/BasketCycleCards.d.ts +1 -1
  36. package/dist/components/analysis/BasketCycleCards.js +1 -1
  37. package/dist/components/analysis/BufferChart.d.ts +1 -1
  38. package/dist/components/analysis/BufferChart.js +23 -4
  39. package/dist/components/analysis/CostPerPiece.d.ts +2 -2
  40. package/dist/components/analysis/CostPerPiece.js +2 -2
  41. package/dist/components/analysis/CycleChart.d.ts +1 -1
  42. package/dist/components/analysis/CycleChart.js +17 -4
  43. package/dist/components/analysis/DataTable.js +4 -2
  44. package/dist/components/analysis/EfficiencyPage.d.ts +2 -2
  45. package/dist/components/analysis/EfficiencyPage.js +1 -1
  46. package/dist/components/analysis/HeatChart.d.ts +1 -1
  47. package/dist/components/analysis/HeatChart.js +12 -3
  48. package/dist/components/analysis/InspectionDataTable.d.ts +1 -1
  49. package/dist/components/analysis/InspectionDataTable.js +6 -1
  50. package/dist/components/analysis/InspectionSankey.d.ts +1 -1
  51. package/dist/components/analysis/InspectionSankey.js +16 -6
  52. package/dist/components/analysis/PalletCycleCards.d.ts +1 -1
  53. package/dist/components/analysis/PalletCycleCards.js +5 -3
  54. package/dist/components/analysis/PartCycleCards.d.ts +2 -2
  55. package/dist/components/analysis/PartCycleCards.js +16 -6
  56. package/dist/components/analysis/QualityPage.d.ts +1 -1
  57. package/dist/components/analysis/ScheduleHistory.d.ts +1 -1
  58. package/dist/components/analysis/ScheduleHistory.js +1 -1
  59. package/dist/components/analysis/StationDataTable.d.ts +1 -1
  60. package/dist/components/analysis/ToolReplacements.d.ts +1 -1
  61. package/dist/components/analysis/ToolReplacements.js +7 -3
  62. package/dist/components/operations/AllMaterial.d.ts +1 -1
  63. package/dist/components/operations/ChartRangeEdit.d.ts +1 -1
  64. package/dist/components/operations/ChartRangeEdit.js +13 -4
  65. package/dist/components/operations/CloseoutReport.js +1 -1
  66. package/dist/components/operations/CompletedParts.js +2 -2
  67. package/dist/components/operations/CurrentWorkorders.js +2 -2
  68. package/dist/components/operations/Dashboard.d.ts +2 -2
  69. package/dist/components/operations/OEEChart.d.ts +4 -4
  70. package/dist/components/operations/OEEChart.js +7 -2
  71. package/dist/components/operations/Outliers.d.ts +1 -1
  72. package/dist/components/operations/Programs.js +9 -4
  73. package/dist/components/operations/Rebookings.d.ts +1 -1
  74. package/dist/components/operations/Rebookings.js +3 -1
  75. package/dist/components/operations/RecentCycleChart.d.ts +1 -1
  76. package/dist/components/operations/RecentCycleChart.js +2 -2
  77. package/dist/components/operations/RecentProduction.js +3 -3
  78. package/dist/components/operations/RecentSchedules.js +3 -1
  79. package/dist/components/operations/RecentStationCycles.d.ts +1 -1
  80. package/dist/components/operations/RecentStationCycles.js +1 -1
  81. package/dist/components/operations/ShiftSettings.d.ts +1 -1
  82. package/dist/components/operations/SimDayUsage.d.ts +1 -1
  83. package/dist/components/operations/ToolReport.js +17 -6
  84. package/dist/components/operations/WorkorderGantt.d.ts +1 -1
  85. package/dist/components/quality/QualityMaterial.d.ts +2 -2
  86. package/dist/components/quality/QualityMaterial.js +1 -1
  87. package/dist/components/quality/QualityPaths.d.ts +1 -1
  88. package/dist/components/quality/RecentFailedInspections.d.ts +1 -1
  89. package/dist/components/routes.d.ts +1 -1
  90. package/dist/components/routes.js +1 -1
  91. package/dist/components/station-monitor/BulkRawMaterial.d.ts +2 -2
  92. package/dist/components/station-monitor/BulkRawMaterial.js +11 -5
  93. package/dist/components/station-monitor/Closeout.js +6 -2
  94. package/dist/components/station-monitor/Inspection.js +3 -1
  95. package/dist/components/station-monitor/InvalidateCycle.d.ts +3 -3
  96. package/dist/components/station-monitor/InvalidateCycle.js +10 -3
  97. package/dist/components/station-monitor/JobDetails.js +4 -2
  98. package/dist/components/station-monitor/LoadStation.d.ts +1 -1
  99. package/dist/components/station-monitor/LoadStation.js +6 -3
  100. package/dist/components/station-monitor/Material.d.ts +10 -10
  101. package/dist/components/station-monitor/Material.js +28 -20
  102. package/dist/components/station-monitor/Material.test.js +1 -1
  103. package/dist/components/station-monitor/MoveMaterialArrows.d.ts +2 -2
  104. package/dist/components/station-monitor/PrintedLabel.d.ts +3 -3
  105. package/dist/components/station-monitor/PrintedLabel.js +9 -4
  106. package/dist/components/station-monitor/QuarantineButton.d.ts +1 -1
  107. package/dist/components/station-monitor/QuarantineButton.js +4 -2
  108. package/dist/components/station-monitor/Queues.d.ts +2 -2
  109. package/dist/components/station-monitor/Queues.js +6 -4
  110. package/dist/components/station-monitor/QueuesAddMaterial.d.ts +3 -3
  111. package/dist/components/station-monitor/QueuesAddMaterial.js +20 -7
  112. package/dist/components/station-monitor/SelectInspType.d.ts +2 -2
  113. package/dist/components/station-monitor/SelectWorkorder.d.ts +1 -1
  114. package/dist/components/station-monitor/StationToolbar.d.ts +1 -1
  115. package/dist/components/station-monitor/StationToolbar.js +13 -3
  116. package/dist/components/station-monitor/SystemOverview.d.ts +4 -4
  117. package/dist/components/station-monitor/SystemOverview.js +36 -16
  118. package/dist/components/station-monitor/Whiteboard.d.ts +1 -1
  119. package/dist/data/all-material-bins.js +2 -1
  120. package/dist/data/cost-per-piece.js +3 -1
  121. package/dist/data/move-arrows.js +3 -1
  122. package/dist/data/part-summary.js +1 -1
  123. package/dist/data/results.cycles.js +13 -4
  124. package/dist/data/tools-programs.js +3 -2
  125. package/dist/index.html +1 -1
  126. package/dist/network/api.d.ts +18 -0
  127. package/dist/network/api.js +502 -371
  128. package/dist/util/chart-colors.js +12 -1
  129. package/docs/client-efficiency.md +226 -263
  130. package/docs/client-engineering.md +27 -28
  131. package/docs/client-launch.md +32 -33
  132. package/docs/client-operations.md +50 -53
  133. package/docs/client-quality.md +39 -43
  134. package/docs/client-sales.md +36 -40
  135. package/docs/client-scanners.md +27 -27
  136. package/docs/client-station-monitor.md +86 -96
  137. package/docs/client-tools-programs.md +47 -44
  138. package/docs/improve-fms.md +73 -78
  139. package/docs/makino.md +21 -25
  140. package/docs/material-quarantine.md +50 -64
  141. package/docs/material-tracking.md +162 -195
  142. package/docs/mazak.md +78 -91
  143. package/docs/niigata.md +145 -168
  144. package/docs/operator-procedures.md +72 -76
  145. package/docs/part-instructions.md +36 -36
  146. package/docs/security.md +87 -81
  147. package/docs/server-config.md +36 -45
  148. package/docs/server-errors.md +21 -22
  149. package/package.json +25 -24
  150. package/dist/assets/index-BwbaiELK.js +0 -364
@@ -53,7 +53,7 @@ export class PartIdenticon extends PureComponent {
53
53
  render() {
54
54
  const iconSize = this.props.size || 50;
55
55
  const icon = jdenticon.toSvg(this.props.part, iconSize);
56
- return _jsx("div", { style: { width: iconSize, height: iconSize }, dangerouslySetInnerHTML: { __html: icon } });
56
+ return (_jsx("div", { style: { width: iconSize, height: iconSize }, dangerouslySetInnerHTML: { __html: icon } }));
57
57
  }
58
58
  }
59
59
  const shakeSize = 2;
@@ -74,15 +74,15 @@ function isCssAnimation(animation) {
74
74
  // the start time can drift due to the pause on hover, so to keep it in sync always
75
75
  // round the start time down to be a multiple of the duration (1s)
76
76
  function shakeAnimationIteration(event) {
77
- const anim = event.currentTarget
78
- .getAnimations()
79
- .find((animation) => {
77
+ const anim = event.currentTarget.getAnimations().find((animation) => {
80
78
  return isCssAnimation(animation) && animation.animationName === shakeHorizKeyframes.name;
81
79
  });
82
80
  if (anim && typeof anim.startTime === "number") {
83
81
  anim.startTime = anim.startTime - (anim.startTime % 1000);
84
82
  }
85
- else if (anim && typeof anim.startTime === "object" && anim.startTime instanceof CSSNumericValue) {
83
+ else if (anim &&
84
+ typeof anim.startTime === "object" &&
85
+ anim.startTime instanceof CSSNumericValue) {
86
86
  const msecs = anim.startTime.to("ms").value;
87
87
  anim.startTime = CSS.ms(msecs - (msecs % 1000));
88
88
  }
@@ -174,14 +174,14 @@ export function MaterialAction({ mat, displayActionForSinglePallet, fsize, }) {
174
174
  return (_jsxs(MatCardDetail, { fsize: fsize, children: ["Load into ", basketName, " ", mat.action.loadFromBasketId] }));
175
175
  }
176
176
  else if (displayActionForSinglePallet === undefined) {
177
- return (_jsxs(MatCardDetail, { fsize: fsize, children: ["Load from ", basketName, " ", mat.action.loadFromBasketId, " to pal ", mat.action.loadOntoPalletNum ?? ""] }));
177
+ return (_jsxs(MatCardDetail, { fsize: fsize, children: ["Load from ", basketName, " ", mat.action.loadFromBasketId, " to pal", " ", mat.action.loadOntoPalletNum ?? ""] }));
178
178
  }
179
179
  else if (displayActionForSinglePallet === mat.action.loadOntoPalletNum) {
180
180
  const faceNum = mat.action.loadOntoFace ?? 0;
181
181
  const faceName = mat.action.loadOntoPalletNum
182
182
  ? curSt.pallets[mat.action.loadOntoPalletNum]?.faceNames?.[faceNum - 1]
183
183
  : null;
184
- return (_jsxs(MatCardDetail, { fsize: fsize, children: ["Load from ", basketName, " ", mat.action.loadFromBasketId, " to ", faceName ?? `face ${faceNum}`] }));
184
+ return (_jsxs(MatCardDetail, { fsize: fsize, children: ["Load from ", basketName, " ", mat.action.loadFromBasketId, " to", " ", faceName ?? `face ${faceNum}`] }));
185
185
  }
186
186
  else {
187
187
  return null;
@@ -191,7 +191,8 @@ export function MaterialAction({ mat, displayActionForSinglePallet, fsize, }) {
191
191
  case api.LocType.OnPallet:
192
192
  if (displayActionForSinglePallet === undefined ||
193
193
  displayActionForSinglePallet === mat.location.palletNum) {
194
- if (mat.action.loadOntoFace === undefined || mat.action.loadOntoFace === mat.location.face) {
194
+ if (mat.action.loadOntoFace === undefined ||
195
+ mat.action.loadOntoFace === mat.location.face) {
195
196
  // material is not moving, just having some manual work done on it
196
197
  if (mat.action.processAfterLoad && mat.action.processAfterLoad !== mat.process) {
197
198
  return (_jsxs(MatCardDetail, { fsize: fsize, children: ["Reclamp material to process # ", mat.action.processAfterLoad] }));
@@ -205,7 +206,7 @@ export function MaterialAction({ mat, displayActionForSinglePallet, fsize, }) {
205
206
  const faceName = mat.location.palletNum
206
207
  ? curSt.pallets[mat.location.palletNum]?.faceNames?.[faceNum - 1]
207
208
  : null;
208
- return _jsxs(MatCardDetail, { fsize: fsize, children: ["Transfer to ", faceName ?? `face ${faceNum}`] });
209
+ return (_jsxs(MatCardDetail, { fsize: fsize, children: ["Transfer to ", faceName ?? `face ${faceNum}`] }));
209
210
  }
210
211
  }
211
212
  else {
@@ -220,7 +221,7 @@ export function MaterialAction({ mat, displayActionForSinglePallet, fsize, }) {
220
221
  return (_jsxs(MatCardDetail, { fsize: fsize, children: ["Load to ", faceName ?? `face ${faceNum}`, " of pal ", mat.action.loadOntoPalletNum ?? ""] }));
221
222
  }
222
223
  else if (displayActionForSinglePallet === mat.action.loadOntoPalletNum) {
223
- return _jsxs(MatCardDetail, { fsize: fsize, children: ["Load to ", faceName ?? `face ${faceNum}`] });
224
+ return (_jsxs(MatCardDetail, { fsize: fsize, children: ["Load to ", faceName ?? `face ${faceNum}`] }));
224
225
  }
225
226
  else {
226
227
  return null;
@@ -235,14 +236,14 @@ export function MaterialAction({ mat, displayActionForSinglePallet, fsize, }) {
235
236
  : ""] }));
236
237
  }
237
238
  else if (mat.action.unloadIntoQueue) {
238
- return _jsxs(MatCardDetail, { fsize: fsize, children: ["Unload into queue ", mat.action.unloadIntoQueue] });
239
+ return (_jsxs(MatCardDetail, { fsize: fsize, children: ["Unload into queue ", mat.action.unloadIntoQueue] }));
239
240
  }
240
241
  else {
241
242
  return _jsx(MatCardDetail, { fsize: fsize, children: "Unload from pallet" });
242
243
  }
243
244
  case api.ActionType.Waiting:
244
245
  if (mat.location.type === api.LocType.InQueue && !!mat.jobUnique && mat.jobUnique !== "") {
245
- return _jsxs(MatCardDetail, { fsize: fsize, children: ["Waiting; next process is #", mat.process + 1] });
246
+ return (_jsxs(MatCardDetail, { fsize: fsize, children: ["Waiting; next process is #", mat.process + 1] }));
246
247
  }
247
248
  else if (mat.location.type === api.LocType.InBasket) {
248
249
  return (_jsxs(MatCardDetail, { fsize: fsize, children: ["In ", basketName, " ", mat.location.basketId] }));
@@ -254,7 +255,7 @@ export function MaterialAction({ mat, displayActionForSinglePallet, fsize, }) {
254
255
  }
255
256
  break;
256
257
  case api.ActionType.Machining:
257
- return _jsxs(MatCardDetail, { fsize: fsize, children: ["Machining program ", mat.action.program ?? ""] });
258
+ return (_jsxs(MatCardDetail, { fsize: fsize, children: ["Machining program ", mat.action.program ?? ""] }));
258
259
  }
259
260
  return null;
260
261
  }
@@ -278,7 +279,7 @@ function Warning({ mat }) {
278
279
  return (_jsx(Tooltip, { title: tooltip, children: _jsx(WarningIcon, {}) }));
279
280
  }
280
281
  }
281
- function JobRawMaterial({ fsize, mat }) {
282
+ function JobRawMaterial({ fsize, mat, }) {
282
283
  const job = useAtomValue(currentStatus).jobs[mat.jobUnique];
283
284
  let path = mat.path;
284
285
  if (mat.action.type === api.ActionType.Loading && mat.action.pathAfterLoad) {
@@ -301,7 +302,12 @@ function RebookingNoteElipsis({ fsize, uniq }) {
301
302
  if (job && job.bookings && job.bookings.length > 0) {
302
303
  const b = rebookings.get(job.bookings[0]);
303
304
  if (b && b.notes && b.notes !== "") {
304
- return (_jsx(MatCardDetail, { fsize: fsize, style: { textOverflow: "ellipsis", overflow: "hidden", whiteSpace: "nowrap", maxWidth: "10em" }, children: b.notes }));
305
+ return (_jsx(MatCardDetail, { fsize: fsize, style: {
306
+ textOverflow: "ellipsis",
307
+ overflow: "hidden",
308
+ whiteSpace: "nowrap",
309
+ maxWidth: "10em",
310
+ }, children: b.notes }));
305
311
  }
306
312
  }
307
313
  return null;
@@ -407,7 +413,9 @@ export const MultiMaterial = memo(function MultiMaterial(props) {
407
413
  flexGrow: 1,
408
414
  }, children: [_jsx(Typography, { variant: "h6", children: props.partOrCasting }), _jsx(MatCardDetail, { fsize: props.fsize, children: props.assignedJobUnique && props.assignedJobUnique !== ""
409
415
  ? "Assigned to " + props.assignedJobUnique
410
- : "Unassigned material" })] }), props.material.length > 0 && props.material[0].serial && props.material[0].serial.length >= 1 ? (_jsx("div", { children: _jsx(Avatar, { style: { width: "30px", height: "30px" }, children: props.material[0].serial.slice(-1) }) })) : undefined] }) }) }) }));
416
+ : "Unassigned material" })] }), props.material.length > 0 &&
417
+ props.material[0].serial &&
418
+ props.material[0].serial.length >= 1 ? (_jsx("div", { children: _jsx(Avatar, { style: { width: "30px", height: "30px" }, children: props.material[0].serial.slice(-1) }) })) : undefined] }) }) }) }));
411
419
  });
412
420
  export const MaterialDetailTitle = memo(function MaterialDetailTitle({ partName, serial, subtitle, notes, }) {
413
421
  let title;
@@ -495,7 +503,7 @@ function MaterialInspections() {
495
503
  return (_jsxs("small", { children: ["Inspections:", " ", insps.signaledInspections.map((type, i) => (_jsxs("span", { children: [i === 0 ? "" : ", ", _jsx("span", { style: { color: colorForInspType(type) }, children: type })] }, i)))] }));
496
504
  }
497
505
  }
498
- function MaterialEvents({ highlightProcsGreaterOrEqualTo }) {
506
+ function MaterialEvents({ highlightProcsGreaterOrEqualTo, }) {
499
507
  const events = useAtomValue(matDetails.materialInDialogEvents);
500
508
  return (_jsx(LogEntries, { entries: events, copyToClipboard: true, highlightProcsGreaterOrEqualTo: highlightProcsGreaterOrEqualTo }));
501
509
  }
@@ -520,14 +528,14 @@ export const MaterialDetailContent = memo(function MaterialDetailContent({ highl
520
528
  return null;
521
529
  if (mat === null) {
522
530
  if (toShow.type === "AddMatWithEnteredSerial" || toShow.type === "ManuallyEnteredSerial") {
523
- return _jsxs("div", { style: { marginLeft: "1em" }, children: ["Material with serial ", toShow.serial, " not found."] });
531
+ return (_jsxs("div", { style: { marginLeft: "1em" }, children: ["Material with serial ", toShow.serial, " not found."] }));
524
532
  }
525
533
  else if (toShow.type === "Barcode") {
526
534
  if (barcodeNewMat) {
527
535
  return (_jsxs("div", { style: { marginLeft: "1em" }, children: ["Material with barcode ", toShow.barcode, " does not yet exist in the cell."] }));
528
536
  }
529
537
  else {
530
- return _jsxs("div", { style: { marginLeft: "1em" }, children: ["Material with barcode ", toShow.barcode, " not found."] });
538
+ return (_jsxs("div", { style: { marginLeft: "1em" }, children: ["Material with barcode ", toShow.barcode, " not found."] }));
531
539
  }
532
540
  }
533
541
  else {
@@ -588,7 +596,7 @@ export const MaterialDialog = memo(function MaterialDialog(props) {
588
596
  let body;
589
597
  let notesBody;
590
598
  if (dialogOpen) {
591
- body = (_jsxs(_Fragment, { children: [_jsx(DialogTitle, { children: _jsx(MaterialDialogTitle, {}) }), _jsx(DialogContent, { children: _jsxs(DisplayLoadingAndError, { fallback: _jsx(MaterialLoading, {}), children: [_jsx(MaterialDetailContent, { highlightProcsGreaterOrEqualTo: props.highlightProcsGreaterOrEqualTo }), _jsx(DisplayLoadingAndError, { fallback: _jsx(CircularProgress, {}), children: props.extraDialogElements })] }) }), _jsxs(DialogActions, { children: [dialogOpen && (props.buttons || props.allowNote) ? (_jsx(ErrorBoundary, { fallback: _jsx("div", {}), children: _jsxs(Suspense, { fallback: _jsx("div", {}), children: [dialogOpen && props.allowNote ? _jsx(AddNoteButton, { setNotesOpen: setNotesOpen }) : undefined, props.buttons] }) })) : null, _jsx(Button, { onClick: close, color: "secondary", children: "Close" })] })] }));
599
+ body = (_jsxs(_Fragment, { children: [_jsx(DialogTitle, { children: _jsx(MaterialDialogTitle, {}) }), _jsx(DialogContent, { children: _jsxs(DisplayLoadingAndError, { fallback: _jsx(MaterialLoading, {}), children: [_jsx(MaterialDetailContent, { highlightProcsGreaterOrEqualTo: props.highlightProcsGreaterOrEqualTo }), _jsx(DisplayLoadingAndError, { fallback: _jsx(CircularProgress, {}), children: props.extraDialogElements })] }) }), _jsxs(DialogActions, { children: [dialogOpen && (props.buttons || props.allowNote) ? (_jsx(ErrorBoundary, { fallback: _jsx("div", {}), children: _jsxs(Suspense, { fallback: _jsx("div", {}), children: [dialogOpen && props.allowNote ? (_jsx(AddNoteButton, { setNotesOpen: setNotesOpen })) : undefined, props.buttons] }) })) : null, _jsx(Button, { onClick: close, color: "secondary", children: "Close" })] })] }));
592
600
  if (props.allowNote) {
593
601
  notesBody = (_jsxs(_Fragment, { children: [_jsx(DialogTitle, { children: _jsx(MaterialDialogTitle, { notes: true }) }), _jsxs(DisplayLoadingAndError, { fallback: _jsx(DialogContent, { children: _jsx(CircularProgress, {}) }), children: [_jsx(NotesDialogBody, { setNotesOpen: setNotesOpen }), ";"] })] }));
594
602
  }
@@ -38,7 +38,7 @@ import { afterEach, expect, it, vi } from "vitest";
38
38
  import { MaterialDialog } from "./Material.js";
39
39
  import { materialDialogOpen } from "../../cell-status/material-details.js";
40
40
  import { ApiException } from "../../network/api.js";
41
- import { registerBackend } from "../../network/backend.js";
41
+ import { registerBackend, } from "../../network/backend.js";
42
42
  const barcode = "1111222|SO100100|10000";
43
43
  const barcodeError = "Serial 1111222 is assigned to sales order SO100100 line 10000 which is not currently scheduled";
44
44
  function unexpectedCall(name) {
@@ -4,9 +4,9 @@ export declare const MoveMaterialArrowContainer: import("react").MemoExoticCompo
4
4
  children?: ReactNode;
5
5
  hideArrows?: boolean;
6
6
  whiteBackground?: boolean;
7
- }) => import("react/jsx-runtime").JSX.Element>;
7
+ }) => import("react").JSX.Element>;
8
8
  export declare function useMoveMaterialArrowRef(kind: MoveMaterialNodeKind): RefObject<HTMLDivElement | null>;
9
9
  export declare function MoveMaterialArrowNode({ kind, children, }: {
10
10
  kind: MoveMaterialNodeKind;
11
11
  children?: React.ReactNode;
12
- }): import("react/jsx-runtime").JSX.Element;
12
+ }): import("react").JSX.Element;
@@ -20,10 +20,10 @@ export interface SinglePageProps {
20
20
  readonly serial1: string | undefined;
21
21
  readonly serial2: string | undefined;
22
22
  }
23
- export declare function PrintedLabel(props: PrintedLabelProps): import("react/jsx-runtime").JSX.Element;
23
+ export declare function PrintedLabel(props: PrintedLabelProps): import("react").JSX.Element;
24
24
  export declare function PrintOnClientButton({ mat, materialName, operator, }: {
25
25
  mat: PrintMaterial | ReadonlyArray<PrintMaterial>;
26
26
  materialName?: string | null;
27
27
  operator?: string | null;
28
- }): import("react/jsx-runtime").JSX.Element;
29
- export declare function PrintLabelButton(): import("react/jsx-runtime").JSX.Element | null;
28
+ }): import("react").JSX.Element;
29
+ export declare function PrintLabelButton(): import("react").JSX.Element | null;
@@ -69,7 +69,7 @@ function SinglePage(props) {
69
69
  hour: "numeric",
70
70
  minute: "2-digit",
71
71
  second: "2-digit",
72
- }) }) }), _jsxs("div", { style: { marginTop: "2em", display: "flex", justifyContent: "space-around" }, children: [_jsx(Barcode, { text: props.materialName ?? props.partName }), props.count >= 2 ? _jsx(Barcode, { text: props.count.toString() }) : undefined] }), props.serial1 && props.serial1 !== "" ? (_jsxs("div", { style: { marginTop: "2em", display: "flex", justifyContent: "space-around" }, children: [_jsx(Barcode, { text: props.serial1 }), props.serial2 && props.serial2 !== "" ? _jsx(Barcode, { text: props.serial2 || "" }) : undefined] })) : undefined, _jsx("div", { style: { marginTop: "2em", marginLeft: "4em", marginRight: "4em", marginBottom: "9em" }, children: props.uniq === null || props.uniq === "" ? (_jsx("p", { style: { fontSize: "x-large" }, children: "Not currently assigned to any jobs" })) : (_jsxs(_Fragment, { children: [_jsx("p", { style: { fontSize: "x-large" }, children: "Assigned To" }), _jsxs("div", { style: { marginTop: "1em", marginLeft: "2em", display: "flex", alignItems: "center" }, children: [_jsx(Barcode, { text: props.partName }), _jsxs("h3", { style: { marginLeft: "4em" }, children: ["assigned to ", props.uniq, props.jobCycles && props.jobCycles > 0
72
+ }) }) }), _jsxs("div", { style: { marginTop: "2em", display: "flex", justifyContent: "space-around" }, children: [_jsx(Barcode, { text: props.materialName ?? props.partName }), props.count >= 2 ? _jsx(Barcode, { text: props.count.toString() }) : undefined] }), props.serial1 && props.serial1 !== "" ? (_jsxs("div", { style: { marginTop: "2em", display: "flex", justifyContent: "space-around" }, children: [_jsx(Barcode, { text: props.serial1 }), props.serial2 && props.serial2 !== "" ? (_jsx(Barcode, { text: props.serial2 || "" })) : undefined] })) : undefined, _jsx("div", { style: { marginTop: "2em", marginLeft: "4em", marginRight: "4em", marginBottom: "9em" }, children: props.uniq === null || props.uniq === "" ? (_jsx("p", { style: { fontSize: "x-large" }, children: "Not currently assigned to any jobs" })) : (_jsxs(_Fragment, { children: [_jsx("p", { style: { fontSize: "x-large" }, children: "Assigned To" }), _jsxs("div", { style: { marginTop: "1em", marginLeft: "2em", display: "flex", alignItems: "center" }, children: [_jsx(Barcode, { text: props.partName }), _jsxs("h3", { style: { marginLeft: "4em" }, children: ["assigned to ", props.uniq, props.jobCycles && props.jobCycles > 0
73
73
  ? " (" + props.jobCycles.toString() + " scheduled)"
74
74
  : ""] })] })] })) }), props.note ? (_jsx("div", { style: { marginBottom: "2em" }, children: _jsx("p", { style: { fontSize: "xxx-large", textAlign: "center" }, children: props.note }) })) : undefined, _jsx("div", { style: { display: "flex", justifyContent: "center" }, children: props.operator ? _jsx("p", { style: { fontSize: "x-large" }, children: props.operator }) : undefined })] }));
75
75
  }
@@ -97,7 +97,7 @@ function OneJobPerPage(props) {
97
97
  return (_jsx(SinglePage, { partName: props.material[0].partName, materialName: props.materialName, count: props.material.length, uniq: null, note: null, operator: props.operator, serial1: props.material[0].serial, serial2: props.material[props.material.length - 1]?.serial }));
98
98
  }
99
99
  else {
100
- return (_jsx("div", { children: assignments.map(([uniq, a], idx) => (_jsxs(Fragment, { children: [_jsx(SinglePage, { partName: a.part, materialName: props.materialName, count: a.length, uniq: uniq, jobCycles: a.cycles, note: a.comment, operator: props.operator, serial1: a.serial1, serial2: a.serial2 }), idx < assignments.length - 1 ? _jsx("div", { style: { pageBreakAfter: "always" } }) : undefined] }, idx))) }));
100
+ return (_jsx("div", { children: assignments.map(([uniq, a], idx) => (_jsxs(Fragment, { children: [_jsx(SinglePage, { partName: a.part, materialName: props.materialName, count: a.length, uniq: uniq, jobCycles: a.cycles, note: a.comment, operator: props.operator, serial1: a.serial1, serial2: a.serial2 }), idx < assignments.length - 1 ? (_jsx("div", { style: { pageBreakAfter: "always" } })) : undefined] }, idx))) }));
101
101
  }
102
102
  }
103
103
  function CombinedToOnePage(props) {
@@ -122,9 +122,14 @@ function CombinedToOnePage(props) {
122
122
  hour: "numeric",
123
123
  minute: "2-digit",
124
124
  second: "2-digit",
125
- }) }) }), _jsxs("div", { style: { marginTop: "2em", display: "flex", justifyContent: "space-around" }, children: [_jsx(Barcode, { text: props.materialName ?? props.material[0].partName }), props.material.length >= 2 ? _jsx(Barcode, { text: props.material.length.toString() }) : undefined] }), props.material[0].serial && props.material[0].serial !== "" ? (_jsxs("div", { style: { marginTop: "2em", display: "flex", justifyContent: "space-around" }, children: [_jsx(Barcode, { text: props.material[0].serial }), props.material.length >= 2 &&
125
+ }) }) }), _jsxs("div", { style: { marginTop: "2em", display: "flex", justifyContent: "space-around" }, children: [_jsx(Barcode, { text: props.materialName ?? props.material[0].partName }), props.material.length >= 2 ? (_jsx(Barcode, { text: props.material.length.toString() })) : undefined] }), props.material[0].serial && props.material[0].serial !== "" ? (_jsxs("div", { style: { marginTop: "2em", display: "flex", justifyContent: "space-around" }, children: [_jsx(Barcode, { text: props.material[0].serial }), props.material.length >= 2 &&
126
126
  props.material[props.material.length - 1].serial &&
127
- props.material[props.material.length - 1].serial !== "" ? (_jsx(Barcode, { text: props.material[props.material.length - 1].serial || "" })) : undefined] })) : undefined, _jsx("div", { style: { marginTop: "2em", marginLeft: "4em", marginRight: "4em", marginBottom: "9em" }, children: assignments.length === 0 ? (_jsx("p", { style: { fontSize: "x-large" }, children: "Not currently assigned to any jobs" })) : props.materialName ? (_jsxs(_Fragment, { children: [_jsx("p", { style: { fontSize: "x-large" }, children: "Assigned To" }), assignments.map(([uniq, part], idx) => (_jsxs("div", { style: { marginTop: "1em", marginLeft: "2em", display: "flex", alignItems: "center" }, children: [_jsx(Barcode, { text: part.part }), _jsxs("h3", { style: { marginLeft: "4em" }, children: ["x", part.length] }), _jsxs("h3", { style: { marginLeft: "4em" }, children: ["assigned to ", uniq] })] }, idx)))] })) : assignments.length === 1 ? (_jsx("div", { style: { marginTop: "1em", display: "flex", justifyContent: "space-around" }, children: _jsxs("p", { style: { fontSize: "x-large" }, children: [_jsxs("span", { children: ["Assigned to ", assignments[0][0]] }), assignments[0][1].length > 1 ? (_jsxs("span", { style: { marginLeft: "1em" }, children: ["x", assignments[0][1].length] })) : undefined] }) })) : (_jsxs(_Fragment, { children: [_jsx("p", { style: { fontSize: "x-large" }, children: "Assigned To" }), assignments.map(([uniq, part], idx) => (_jsxs("h3", { style: { marginTop: "1em", marginLeft: "2em" }, children: [_jsx("span", { children: uniq }), part.length > 1 ? _jsxs("span", { style: { marginLeft: "1em" }, children: ["x", part.length] }) : undefined] }, idx)))] })) }), notes.length > 0 ? (_jsx("div", { style: { marginBottom: "2em" }, children: notes.map((n, idx) => (_jsx("p", { style: { fontSize: "xxx-large", textAlign: "center" }, children: n }, idx))) })) : undefined, _jsx("div", { style: { display: "flex", justifyContent: "center" }, children: props.operator ? _jsx("p", { style: { fontSize: "x-large" }, children: props.operator }) : undefined })] }));
127
+ props.material[props.material.length - 1].serial !== "" ? (_jsx(Barcode, { text: props.material[props.material.length - 1].serial || "" })) : undefined] })) : undefined, _jsx("div", { style: { marginTop: "2em", marginLeft: "4em", marginRight: "4em", marginBottom: "9em" }, children: assignments.length === 0 ? (_jsx("p", { style: { fontSize: "x-large" }, children: "Not currently assigned to any jobs" })) : props.materialName ? (_jsxs(_Fragment, { children: [_jsx("p", { style: { fontSize: "x-large" }, children: "Assigned To" }), assignments.map(([uniq, part], idx) => (_jsxs("div", { style: {
128
+ marginTop: "1em",
129
+ marginLeft: "2em",
130
+ display: "flex",
131
+ alignItems: "center",
132
+ }, children: [_jsx(Barcode, { text: part.part }), _jsxs("h3", { style: { marginLeft: "4em" }, children: ["x", part.length] }), _jsxs("h3", { style: { marginLeft: "4em" }, children: ["assigned to ", uniq] })] }, idx)))] })) : assignments.length === 1 ? (_jsx("div", { style: { marginTop: "1em", display: "flex", justifyContent: "space-around" }, children: _jsxs("p", { style: { fontSize: "x-large" }, children: [_jsxs("span", { children: ["Assigned to ", assignments[0][0]] }), assignments[0][1].length > 1 ? (_jsxs("span", { style: { marginLeft: "1em" }, children: ["x", assignments[0][1].length] })) : undefined] }) })) : (_jsxs(_Fragment, { children: [_jsx("p", { style: { fontSize: "x-large" }, children: "Assigned To" }), assignments.map(([uniq, part], idx) => (_jsxs("h3", { style: { marginTop: "1em", marginLeft: "2em" }, children: [_jsx("span", { children: uniq }), part.length > 1 ? (_jsxs("span", { style: { marginLeft: "1em" }, children: ["x", part.length] })) : undefined] }, idx)))] })) }), notes.length > 0 ? (_jsx("div", { style: { marginBottom: "2em" }, children: notes.map((n, idx) => (_jsx("p", { style: { fontSize: "xxx-large", textAlign: "center" }, children: n }, idx))) })) : undefined, _jsx("div", { style: { display: "flex", justifyContent: "center" }, children: props.operator ? _jsx("p", { style: { fontSize: "x-large" }, children: props.operator }) : undefined })] }));
128
133
  }
129
134
  export function PrintedLabel(props) {
130
135
  if (props.oneJobPerPage) {
@@ -1,4 +1,4 @@
1
1
  export declare function QuarantineMatButton({ onClose, ignoreOperator, }: {
2
2
  onClose?: () => void;
3
3
  ignoreOperator?: boolean;
4
- }): import("react/jsx-runtime").JSX.Element | null;
4
+ }): import("react").JSX.Element | null;
@@ -32,7 +32,7 @@ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
32
32
  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33
33
  */
34
34
  import { useState } from "react";
35
- import { Button, Dialog, DialogActions, DialogContent, DialogTitle, TextField, Tooltip } from "@mui/material";
35
+ import { Button, Dialog, DialogActions, DialogContent, DialogTitle, TextField, Tooltip, } from "@mui/material";
36
36
  import { LazySeq } from "@seedtactics/immutable-collections";
37
37
  import { currentStatus } from "../../cell-status/current-status.js";
38
38
  import { inProcessMaterialInDialog, materialDialogOpen, useRemoveFromQueue, useSignalForQuarantine, } from "../../cell-status/material-details.js";
@@ -168,7 +168,9 @@ export function QuarantineMatButton({ onClose, ignoreOperator, }) {
168
168
  btnTxt = "Remove";
169
169
  break;
170
170
  case "Scrap":
171
- title = q.quarantineQueueDestination ? `Move to ${q.quarantineQueueDestination}` : "Remove from queue";
171
+ title = q.quarantineQueueDestination
172
+ ? `Move to ${q.quarantineQueueDestination}`
173
+ : "Remove from queue";
172
174
  btnTxt = q.quarantineQueueDestination ? "Quarantine" : "Remove";
173
175
  break;
174
176
  case "SignalForScrap":
@@ -14,10 +14,10 @@ interface EditNoteDialogProps {
14
14
  } | null;
15
15
  readonly closeDialog: () => void;
16
16
  }
17
- export declare const EditNoteDialog: import("react").MemoExoticComponent<(props: EditNoteDialogProps) => import("react/jsx-runtime").JSX.Element>;
17
+ export declare const EditNoteDialog: import("react").MemoExoticComponent<(props: EditNoteDialogProps) => import("react").JSX.Element>;
18
18
  interface QueueProps {
19
19
  readonly queues: ReadonlyArray<string>;
20
20
  }
21
- export declare const Queues: (props: QueueProps) => import("react/jsx-runtime").JSX.Element;
21
+ export declare const Queues: (props: QueueProps) => import("react").JSX.Element;
22
22
  export default function QueuesPage(props: QueueProps): ReactNode;
23
23
  export {};
@@ -52,12 +52,12 @@ import { CircularProgress } from "@mui/material";
52
52
  import { Add as AddIcon, AssignmentReturn as AssignIcon, KeyboardArrowDown as KeyboardArrowDownIcon, Edit as EditIcon, KeyboardArrowUp as KeyboardArrowUpIcon, } from "@mui/icons-material";
53
53
  import { SortableInProcMaterial, PartIdenticon, MultiMaterial, InProcMaterial, DragOverlayInProcMaterial, MaterialDialog, } from "./Material.js";
54
54
  import * as api from "../../network/api.js";
55
- import { selectQueueData, extractJobRawMaterial } from "../../data/queue-material.js";
55
+ import { selectQueueData, extractJobRawMaterial, } from "../../data/queue-material.js";
56
56
  import { LazySeq } from "@seedtactics/immutable-collections";
57
57
  import { currentOperator } from "../../data/operators.js";
58
58
  import { JobDetails } from "./JobDetails.js";
59
59
  import { fmsInformation } from "../../network/server-settings.js";
60
- import { addWorkorderComment, currentStatus, setJobComment } from "../../cell-status/current-status.js";
60
+ import { addWorkorderComment, currentStatus, setJobComment, } from "../../cell-status/current-status.js";
61
61
  import { Collapse } from "@mui/material";
62
62
  import { inProcessQueues, rawMaterialQueues } from "../../cell-status/names.js";
63
63
  import { SortableRegion } from "./Whiteboard.js";
@@ -67,7 +67,7 @@ import { bulkAddCastingToQueue, BulkAddCastingWithoutSerialDialog, MultiMaterial
67
67
  import { AddBySerialDialog, enterSerialForNewMaterialDialog } from "../ManualSerialEntry.js";
68
68
  import { materialDialogOpen } from "../../cell-status/material-details.js";
69
69
  import { PrintLabelButton } from "./PrintedLabel.js";
70
- import { AddToQueueButton, AddToQueueMaterialDialogCt } from "./QueuesAddMaterial.js";
70
+ import { AddToQueueButton, AddToQueueMaterialDialogCt, } from "./QueuesAddMaterial.js";
71
71
  import { QuarantineMatButton } from "./QuarantineButton.js";
72
72
  import { AddByBarcodeDialog, scanBarcodeToAddToQueueDialog } from "../BarcodeScanning.js";
73
73
  import { InvalidateCycleDialogButton, InvalidateCycleDialogContent, } from "./InvalidateCycle.js";
@@ -101,7 +101,9 @@ function RawMaterialJobRow(props) {
101
101
  alignItems: "center",
102
102
  }, children: [_jsx(Box, { sx: { mr: "0.2em" }, children: _jsx(PartIdenticon, { part: j.rawMatName, size: 25 }) }), _jsx(Typography, { variant: "body2", sx: {
103
103
  display: "block",
104
- }, children: j.rawMatName })] })) }), _jsxs(TableCell, { children: [j.job.comment, _jsx(Tooltip, { title: "Edit", children: _jsx(IconButton, { size: "small", onClick: () => props.editNote(j.job), children: _jsx(EditIcon, {}) }) })] }), _jsxs(TableCell, { align: "right", children: [j.job.cycles ?? 0, allowEditQty ? (_jsx(Tooltip, { title: "Edit", children: _jsx(IconButton, { size: "small", onClick: () => props.editQty(j), children: _jsx(EditIcon, {}) }) })) : undefined] }), _jsx(TableCell, { align: "right", children: j.remainingToStart }), _jsx(TableCell, { align: "right", children: j.assignedRaw }), _jsx(TableCell, { align: "right", children: _jsx(Tooltip, { title: j.remainingToStart > 0 || j.assignedRaw > 0 ? `${j.remainingToStart} - ${j.assignedRaw}` : "", children: _jsx("span", { children: Math.max(j.remainingToStart - j.assignedRaw, 0) }) }) }), _jsx(TableCell, { align: "right", children: j.availableUnassigned }), _jsx(TableCell, { children: _jsx(Tooltip, { title: "Show Details", children: _jsx(IconButton, { size: "small", onClick: () => setOpen(!open), children: open ? _jsx(KeyboardArrowUpIcon, {}) : _jsx(KeyboardArrowDownIcon, {}) }) }) })] }), _jsx(JobTableRow, { "$highlightedRow": highlRow, "$noncompletedRow": j.remainingToStart - j.assignedRaw > 0, children: _jsx(TableCell, { sx: { pb: "0", pt: "0" }, colSpan: 10, children: _jsx(Collapse, { in: open, timeout: "auto", unmountOnExit: true, children: _jsx(JobDetails, { job: j.job, checkAnalysisMonth: false }) }) }) })] }));
104
+ }, children: j.rawMatName })] })) }), _jsxs(TableCell, { children: [j.job.comment, _jsx(Tooltip, { title: "Edit", children: _jsx(IconButton, { size: "small", onClick: () => props.editNote(j.job), children: _jsx(EditIcon, {}) }) })] }), _jsxs(TableCell, { align: "right", children: [j.job.cycles ?? 0, allowEditQty ? (_jsx(Tooltip, { title: "Edit", children: _jsx(IconButton, { size: "small", onClick: () => props.editQty(j), children: _jsx(EditIcon, {}) }) })) : undefined] }), _jsx(TableCell, { align: "right", children: j.remainingToStart }), _jsx(TableCell, { align: "right", children: j.assignedRaw }), _jsx(TableCell, { align: "right", children: _jsx(Tooltip, { title: j.remainingToStart > 0 || j.assignedRaw > 0
105
+ ? `${j.remainingToStart} - ${j.assignedRaw}`
106
+ : "", children: _jsx("span", { children: Math.max(j.remainingToStart - j.assignedRaw, 0) }) }) }), _jsx(TableCell, { align: "right", children: j.availableUnassigned }), _jsx(TableCell, { children: _jsx(Tooltip, { title: "Show Details", children: _jsx(IconButton, { size: "small", onClick: () => setOpen(!open), children: open ? _jsx(KeyboardArrowUpIcon, {}) : _jsx(KeyboardArrowDownIcon, {}) }) }) })] }), _jsx(JobTableRow, { "$highlightedRow": highlRow, "$noncompletedRow": j.remainingToStart - j.assignedRaw > 0, children: _jsx(TableCell, { sx: { pb: "0", pt: "0" }, colSpan: 10, children: _jsx(Collapse, { in: open, timeout: "auto", unmountOnExit: true, children: _jsx(JobDetails, { job: j.job, checkAnalysisMonth: false }) }) }) })] }));
105
107
  }
106
108
  function RawMaterialJobTable(props) {
107
109
  const currentSt = useAtomValue(currentStatus);
@@ -16,15 +16,15 @@ export declare function PromptForQueue({ selectedQueue, setSelectedQueue, queueN
16
16
  selectedQueue: string | null;
17
17
  setSelectedQueue: (queue: string) => void;
18
18
  queueNames: ReadonlyArray<string>;
19
- }): import("react/jsx-runtime").JSX.Element;
19
+ }): import("react").JSX.Element;
20
20
  export declare function AddToQueueMaterialDialogCt({ st, queueNames, setState, }: {
21
21
  st: AddMaterialState;
22
22
  queueNames: ReadonlyArray<string>;
23
23
  setState: (st: AddMaterialState) => void;
24
- }): import("react/jsx-runtime").JSX.Element | null;
24
+ }): import("react").JSX.Element | null;
25
25
  export declare function AddToQueueButton({ st: { enteredOperator, newMaterialTy, toQueue }, queueNames, onClose, }: {
26
26
  st: AddMaterialState;
27
27
  queueNames: ReadonlyArray<string>;
28
28
  onClose: () => void;
29
- }): import("react/jsx-runtime").JSX.Element | null;
29
+ }): import("react").JSX.Element | null;
30
30
  export {};
@@ -61,7 +61,9 @@ function useAllowAddToQueue(queueNames) {
61
61
  }
62
62
  return true;
63
63
  }
64
- const ExpandMore = styled(ExpandMoreIcon, { shouldForwardProp: (prop) => prop.toString()[0] !== "$" })(({ theme, $expandedOpen }) => ({
64
+ const ExpandMore = styled(ExpandMoreIcon, {
65
+ shouldForwardProp: (prop) => prop.toString()[0] !== "$",
66
+ })(({ theme, $expandedOpen }) => ({
65
67
  transform: $expandedOpen ? "rotate(0deg)" : "rotate(-90deg)",
66
68
  transition: theme.transitions.create("transform", {
67
69
  duration: theme.transitions.duration.shortest,
@@ -82,20 +84,26 @@ function SelectJob({ newMaterialTy, setNewMaterialTy, curCollapse, setCurCollaps
82
84
  workorder: j.workorder,
83
85
  }), children: [j.job ? (_jsx(ListItemIcon, { children: _jsx(PartIdenticon, { part: j.job.partName }) })) : undefined, _jsx(ListItemText, { primary: (j.job?.partName ?? "") + " (" + j.jobUnique + ")", slotProps: { primary: { variant: "h4" } }, secondary: _jsxs(Typography, { variant: "body2", children: [j.machinedProcs[0].lastProc === 0
84
86
  ? "Raw Material"
85
- : "Last machined process " + j.machinedProcs[0].lastProc.toString(), ", ", j.job?.routeStartUTC.toLocaleDateString() ?? "", ", ", j.machinedProcs[0].details] }) })] }) }) }, idx)) : (_jsxs(Fragment, { children: [_jsx(ListItem, { children: _jsxs(ListItemButton, { onClick: () => {
87
+ : "Last machined process " + j.machinedProcs[0].lastProc.toString(), ", ", j.job?.routeStartUTC.toLocaleDateString() ?? "", ",", " ", j.machinedProcs[0].details] }) })] }) }) }, idx)) : (_jsxs(Fragment, { children: [_jsx(ListItem, { children: _jsxs(ListItemButton, { onClick: () => {
86
88
  if (newMaterialTy)
87
89
  setNewMaterialTy(null);
88
90
  setCurCollapse(curCollapse && curCollapse.kind === "Job" && curCollapse.unique === j.jobUnique
89
91
  ? null
90
92
  : { kind: "Job", unique: j.jobUnique });
91
- }, children: [_jsx(ListItemIcon, { children: _jsx(ExpandMore, { "$expandedOpen": curCollapse !== null && curCollapse.kind === "Job" && curCollapse.unique === j.jobUnique }) }), j.job ? (_jsx(ListItemIcon, { children: _jsx(PartIdenticon, { part: j.job.partName }) })) : undefined, _jsx(ListItemText, { primary: (j.job?.partName ?? "") + " (" + j.jobUnique + ")", slotProps: { primary: { variant: "h4" } }, secondary: j.job?.routeStartUTC.toLocaleDateString() })] }) }), _jsx(Collapse, { in: curCollapse !== null && curCollapse.kind === "Job" && curCollapse.unique === j.jobUnique, timeout: "auto", children: j.machinedProcs.map((p, procIdx) => (_jsx("div", { children: _jsx(ListItem, { sx: (theme) => ({ pl: theme.spacing(indent ? 8 : 4) }), children: _jsx(ListItemButton, { selected: newMaterialTy?.kind === "JobAndProc" &&
93
+ }, children: [_jsx(ListItemIcon, { children: _jsx(ExpandMore, { "$expandedOpen": curCollapse !== null &&
94
+ curCollapse.kind === "Job" &&
95
+ curCollapse.unique === j.jobUnique }) }), j.job ? (_jsx(ListItemIcon, { children: _jsx(PartIdenticon, { part: j.job.partName }) })) : undefined, _jsx(ListItemText, { primary: (j.job?.partName ?? "") + " (" + j.jobUnique + ")", slotProps: { primary: { variant: "h4" } }, secondary: j.job?.routeStartUTC.toLocaleDateString() })] }) }), _jsx(Collapse, { in: curCollapse !== null &&
96
+ curCollapse.kind === "Job" &&
97
+ curCollapse.unique === j.jobUnique, timeout: "auto", children: j.machinedProcs.map((p, procIdx) => (_jsx("div", { children: _jsx(ListItem, { sx: (theme) => ({ pl: theme.spacing(indent ? 8 : 4) }), children: _jsx(ListItemButton, { selected: newMaterialTy?.kind === "JobAndProc" &&
92
98
  newMaterialTy?.jobUnique === j.jobUnique &&
93
99
  newMaterialTy?.last_proc === p.lastProc, onClick: () => setNewMaterialTy({
94
100
  kind: "JobAndProc",
95
101
  jobUnique: j.jobUnique,
96
102
  last_proc: p.lastProc,
97
103
  workorder: j.workorder,
98
- }), children: _jsx(ListItemText, { primary: p.lastProc === 0 ? "Raw Material" : "Last machined process " + p.lastProc.toString(), secondary: p.details }) }) }) }, procIdx))) })] }, idx))) }));
104
+ }), children: _jsx(ListItemText, { primary: p.lastProc === 0
105
+ ? "Raw Material"
106
+ : "Last machined process " + p.lastProc.toString(), secondary: p.details }) }) }) }, procIdx))) })] }, idx))) }));
99
107
  }
100
108
  function SelectRawMatAndJob({ newMaterialTy, options, setNewMaterialTy, curCollapse, setCurCollapse, }) {
101
109
  return (_jsxs(List, { children: [_jsx(ListItem, { children: _jsxs(ListItemButton, { onClick: () => {
@@ -108,7 +116,8 @@ function SelectRawMatAndJob({ newMaterialTy, options, setNewMaterialTy, curColla
108
116
  setCurCollapse(curCollapse && (curCollapse.kind === "AllJobs" || curCollapse.kind === "Job")
109
117
  ? null
110
118
  : { kind: "AllJobs" });
111
- }, children: [_jsx(ListItemIcon, { children: _jsx(ExpandMore, { "$expandedOpen": curCollapse !== null && (curCollapse.kind === "AllJobs" || curCollapse.kind === "Job") }) }), _jsx(ListItemText, { primary: "Specify Job" })] }) }), _jsx(Collapse, { in: curCollapse !== null && (curCollapse.kind === "AllJobs" || curCollapse.kind === "Job"), timeout: "auto", children: _jsx(SelectJob, { newMaterialTy: newMaterialTy, jobs: options.jobs, setNewMaterialTy: setNewMaterialTy, curCollapse: curCollapse, setCurCollapse: setCurCollapse, indent: true }) })] }));
119
+ }, children: [_jsx(ListItemIcon, { children: _jsx(ExpandMore, { "$expandedOpen": curCollapse !== null &&
120
+ (curCollapse.kind === "AllJobs" || curCollapse.kind === "Job") }) }), _jsx(ListItemText, { primary: "Specify Job" })] }) }), _jsx(Collapse, { in: curCollapse !== null && (curCollapse.kind === "AllJobs" || curCollapse.kind === "Job"), timeout: "auto", children: _jsx(SelectJob, { newMaterialTy: newMaterialTy, jobs: options.jobs, setNewMaterialTy: setNewMaterialTy, curCollapse: curCollapse, setCurCollapse: setCurCollapse, indent: true }) })] }));
112
121
  }
113
122
  function PromptForMaterialType({ newMaterialTy, setNewMaterialTy, toQueue, }) {
114
123
  const serial = useAtomValue(matDetails.serialInMaterialDialog);
@@ -223,7 +232,9 @@ export function AddToQueueButton({ st: { enteredOperator, newMaterialTy, toQueue
223
232
  operator: enteredOperator ?? operator,
224
233
  });
225
234
  }
226
- else if (newMaterialTy && newMaterialTy.kind === "JobAndProc" && newMaterialTy.jobUnique) {
235
+ else if (newMaterialTy &&
236
+ newMaterialTy.kind === "JobAndProc" &&
237
+ newMaterialTy.jobUnique) {
227
238
  addNewMat({
228
239
  jobUnique: newMaterialTy.jobUnique,
229
240
  lastCompletedProcess: newMaterialTy.last_proc,
@@ -234,7 +245,9 @@ export function AddToQueueButton({ st: { enteredOperator, newMaterialTy, toQueue
234
245
  operator: enteredOperator ?? operator,
235
246
  });
236
247
  }
237
- else if (newMaterialTy && newMaterialTy.kind === "RawMat" && newMaterialTy.rawMatName) {
248
+ else if (newMaterialTy &&
249
+ newMaterialTy.kind === "RawMat" &&
250
+ newMaterialTy.rawMatName) {
238
251
  addNewCasting({
239
252
  casting: newMaterialTy.rawMatName,
240
253
  quantity: 1,
@@ -1,2 +1,2 @@
1
- export declare function SignalInspectionButton(): import("react/jsx-runtime").JSX.Element | null;
2
- export declare const SelectInspTypeDialog: import("react").MemoExoticComponent<() => import("react/jsx-runtime").JSX.Element>;
1
+ export declare function SignalInspectionButton(): import("react").JSX.Element | null;
2
+ export declare const SelectInspTypeDialog: import("react").MemoExoticComponent<() => import("react").JSX.Element>;
@@ -1,4 +1,4 @@
1
1
  export declare const selectWorkorderDialogOpen: import("jotai").PrimitiveAtom<boolean> & {
2
2
  init: boolean;
3
3
  };
4
- export declare const SelectWorkorderDialog: import("react").MemoExoticComponent<() => import("react/jsx-runtime").JSX.Element>;
4
+ export declare const SelectWorkorderDialog: import("react").MemoExoticComponent<() => import("react").JSX.Element>;
@@ -1,3 +1,3 @@
1
1
  import { ReactNode } from "react";
2
2
  export declare function StationToolbar(): ReactNode;
3
- export declare function StationToolbarOverviewButton(): import("react/jsx-runtime").JSX.Element;
3
+ export declare function StationToolbarOverviewButton(): import("react").JSX.Element;
@@ -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 { Box, Checkbox, Divider, FormControlLabel, Select, useMediaQuery, useTheme } from "@mui/material";
34
+ import { Box, Checkbox, Divider, FormControlLabel, Select, useMediaQuery, useTheme, } from "@mui/material";
35
35
  import { MenuItem } from "@mui/material";
36
36
  import { Input } from "@mui/material";
37
37
  import { FormControl } from "@mui/material";
@@ -93,7 +93,12 @@ export function StationToolbar() {
93
93
  });
94
94
  }
95
95
  else {
96
- setRoute({ route: RouteLocation.Station_LoadMonitor, loadNum: val, queues: [], completed: false });
96
+ setRoute({
97
+ route: RouteLocation.Station_LoadMonitor,
98
+ loadNum: val,
99
+ queues: [],
100
+ completed: false,
101
+ });
97
102
  }
98
103
  }
99
104
  }
@@ -117,7 +122,12 @@ export function StationToolbar() {
117
122
  });
118
123
  }
119
124
  else {
120
- setRoute({ route: RouteLocation.Station_LoadMonitor, loadNum: 1, queues: newQueues, completed });
125
+ setRoute({
126
+ route: RouteLocation.Station_LoadMonitor,
127
+ loadNum: 1,
128
+ queues: newQueues,
129
+ completed,
130
+ });
121
131
  }
122
132
  }
123
133
  function setStandaloneQueues(newQueues) {
@@ -51,14 +51,14 @@ type CellOverview = {
51
51
  readonly maxNumSourceRows: number;
52
52
  };
53
53
  export declare function formatSeconds(totalSeconds: number): string;
54
- export declare const SystemOverview: import("react").MemoExoticComponent<({ overview }: {
54
+ export declare const SystemOverview: import("react").MemoExoticComponent<({ overview, }: {
55
55
  overview: CellOverview;
56
- }) => import("react/jsx-runtime").JSX.Element>;
56
+ }) => import("react").JSX.Element>;
57
57
  export declare function SystemOverviewPage({ ignoreOperator, whiteBackground, }: {
58
58
  ignoreOperator?: boolean;
59
59
  whiteBackground?: boolean;
60
- }): import("react/jsx-runtime").JSX.Element;
60
+ }): import("react").JSX.Element;
61
61
  export declare const SystemOverviewDialogButton: import("react").MemoExoticComponent<({ full, }: {
62
62
  full: boolean;
63
- }) => import("react/jsx-runtime").JSX.Element>;
63
+ }) => import("react").JSX.Element>;
64
64
  export {};