@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) 2022, John Lenz
3
3
 
4
4
  All rights reserved.
@@ -72,7 +72,9 @@ const ToolTableRow = styled(TableRow, { shouldForwardProp: (prop) => prop.toStri
72
72
  },
73
73
  backgroundColor: $highlightedRow ? "#BDBDBD" : $noticeRow ? "#E0E0E0" : undefined,
74
74
  }));
75
- const MachineDetailTableRow = styled(TableRow, { shouldForwardProp: (prop) => prop.toString()[0] !== "$" })(({ $borderBottom }) => ({
75
+ const MachineDetailTableRow = styled(TableRow, {
76
+ shouldForwardProp: (prop) => prop.toString()[0] !== "$",
77
+ })(({ $borderBottom }) => ({
76
78
  ...($borderBottom && {
77
79
  "&:not(:last-child)": {
78
80
  borderBottom: "2px solid black",
@@ -127,13 +129,14 @@ function MachineDetailTable({ machines }) {
127
129
  width: "auto",
128
130
  ml: "10em",
129
131
  mb: "1em",
130
- }, children: [_jsx(TableHead, { children: _jsxs(TableRow, { children: [_jsx(TableCell, { children: "Machine" }), _jsx(TableCell, { align: "right", children: "Pocket" }), showSerial ? _jsx(TableCell, { children: "Serial" }) : undefined, _jsx(TableCell, { align: "right", children: "Current Use " }), _jsx(TableCell, { align: "right", children: "Lifetime " }), _jsx(TableCell, { align: "right", children: "Remaining Use " })] }) }), _jsxs(TableBody, { children: [byMachine.toAscLazySeq().map(([mach, tools]) => (_jsxs(Fragment, { children: [tools.valuesToAscLazySeq().map((m, idx) => (_jsxs(MachineDetailTableRow, { "$borderBottom": anyHasSubtotal && tools.size === 1, children: [_jsx(TableCell, { children: m.machineName }), _jsx(TableCell, { align: "right", children: m.pocket }), showSerial ? _jsx(TableCell, { children: m.serial ?? "" }) : undefined, _jsx(TableCell, { align: "right", children: _jsx(FormatMinAndCnt, { min: m.currentUseMinutes, cnt: m.currentUseCnt }) }), _jsx(TableCell, { align: "right", children: _jsx(FormatMinAndCnt, { min: m.lifetimeMinutes, cnt: m.lifetimeCnt }) }), _jsx(TableCell, { align: "right", children: _jsx(FormatMinAndCnt, { min: m.remainingMinutes, cnt: m.remainingCnt, showZero: true }) })] }, idx))), byMachine.size > 1 && tools.size > 1 ? (_jsxs(MachineDetailTableRow, { "$borderBottom": true, children: [_jsx(TableCell, { colSpan: showSerial ? 4 : 3 }), _jsx(TableCell, { children: "Subtotal" }), _jsx(TableCell, { align: "right", children: _jsx(FormatMinAndCnt, { min: tools.valuesToAscLazySeq().sumBy((m) => m.remainingMinutes ?? 0), cnt: tools.valuesToAscLazySeq().sumBy((m) => m.remainingCnt ?? 0) }) })] })) : undefined] }, mach))), _jsxs(TableRow, { children: [_jsx(TableCell, { colSpan: showSerial ? 4 : 3 }), _jsx(TableCell, { children: "Total" }), _jsx(TableCell, { align: "right", children: _jsx(FormatMinAndCnt, { min: LazySeq.of(machines).sumBy((m) => m.remainingMinutes ?? 0), cnt: LazySeq.of(machines).sumBy((m) => m.remainingCnt ?? 0) }) })] })] })] }));
132
+ }, children: [_jsx(TableHead, { children: _jsxs(TableRow, { children: [_jsx(TableCell, { children: "Machine" }), _jsx(TableCell, { align: "right", children: "Pocket" }), showSerial ? _jsx(TableCell, { children: "Serial" }) : undefined, _jsx(TableCell, { align: "right", children: "Current Use " }), _jsx(TableCell, { align: "right", children: "Lifetime " }), _jsx(TableCell, { align: "right", children: "Remaining Use " })] }) }), _jsxs(TableBody, { children: [byMachine.toAscLazySeq().map(([mach, tools]) => (_jsxs(Fragment, { children: [tools.valuesToAscLazySeq().map((m, idx) => (_jsxs(MachineDetailTableRow, { $borderBottom: anyHasSubtotal && tools.size === 1, children: [_jsx(TableCell, { children: m.machineName }), _jsx(TableCell, { align: "right", children: m.pocket }), showSerial ? _jsx(TableCell, { children: m.serial ?? "" }) : undefined, _jsx(TableCell, { align: "right", children: _jsx(FormatMinAndCnt, { min: m.currentUseMinutes, cnt: m.currentUseCnt }) }), _jsx(TableCell, { align: "right", children: _jsx(FormatMinAndCnt, { min: m.lifetimeMinutes, cnt: m.lifetimeCnt }) }), _jsx(TableCell, { align: "right", children: _jsx(FormatMinAndCnt, { min: m.remainingMinutes, cnt: m.remainingCnt, showZero: true }) })] }, idx))), byMachine.size > 1 && tools.size > 1 ? (_jsxs(MachineDetailTableRow, { $borderBottom: true, children: [_jsx(TableCell, { colSpan: showSerial ? 4 : 3 }), _jsx(TableCell, { children: "Subtotal" }), _jsx(TableCell, { align: "right", children: _jsx(FormatMinAndCnt, { min: tools.valuesToAscLazySeq().sumBy((m) => m.remainingMinutes ?? 0), cnt: tools.valuesToAscLazySeq().sumBy((m) => m.remainingCnt ?? 0) }) })] })) : undefined] }, mach))), _jsxs(TableRow, { children: [_jsx(TableCell, { colSpan: showSerial ? 4 : 3 }), _jsx(TableCell, { children: "Total" }), _jsx(TableCell, { align: "right", children: _jsx(FormatMinAndCnt, { min: LazySeq.of(machines).sumBy((m) => m.remainingMinutes ?? 0), cnt: LazySeq.of(machines).sumBy((m) => m.remainingCnt ?? 0) }) })] })] })] }));
131
133
  }
132
134
  function ToolSummaryHeader() {
133
135
  const cntsWereEstimated = useAtomValue(toolReportEstimatedToolCounts);
134
136
  return (_jsxs(ToolTableRow, { children: [_jsx(TableCell, {}), _jsx(TableCell, { children: "Tool" }), _jsx(TableCell, { align: "right", children: _jsx(Tooltip, { title: "Expected use for all currently scheduled parts." +
135
137
  (cntsWereEstimated ? " Counts are estimates." : ""), children: _jsx("span", { children: "Scheduled Use" }) }) }), _jsx(TableCell, { align: "right", children: _jsx(Tooltip, { title: "Remaining use summed over all machines which have a scheduled part." +
136
- (cntsWereEstimated ? " Counts are estimates." : ""), children: _jsx("span", { children: "Total Remaining Use" }) }) }), _jsx(TableCell, { align: "right", children: _jsx(Tooltip, { title: "Machine with the least remaining use." + (cntsWereEstimated ? " Counts are estimates." : ""), children: _jsx("span", { children: "Smallest Remaining Use" }) }) }), _jsx(TableCell, {})] }));
138
+ (cntsWereEstimated ? " Counts are estimates." : ""), children: _jsx("span", { children: "Total Remaining Use" }) }) }), _jsx(TableCell, { align: "right", children: _jsx(Tooltip, { title: "Machine with the least remaining use." +
139
+ (cntsWereEstimated ? " Counts are estimates." : ""), children: _jsx("span", { children: "Smallest Remaining Use" }) }) }), _jsx(TableCell, {})] }));
137
140
  }
138
141
  function ToolSummaryRow({ tool }) {
139
142
  const [open, setOpen] = useState(false);
@@ -144,14 +147,20 @@ function ToolSummaryRow({ tool }) {
144
147
  const totalRemainCnt = machinesWithSomePart.sumBy((m) => m.remainingCnt ?? 0);
145
148
  const minRemainMin = machinesWithSomePart
146
149
  .groupBy((m) => m.machineName)
147
- .map(([mach, tools]) => ({ mach, remainMin: LazySeq.of(tools).sumBy((m) => m.remainingMinutes ?? 0) }))
150
+ .map(([mach, tools]) => ({
151
+ mach,
152
+ remainMin: LazySeq.of(tools).sumBy((m) => m.remainingMinutes ?? 0),
153
+ }))
148
154
  .minBy(({ remainMin }) => remainMin);
149
155
  const minRemainCnt = machinesWithSomePart
150
156
  .groupBy((m) => m.machineName)
151
- .map(([mach, tools]) => ({ mach, remainCnt: LazySeq.of(tools).sumBy((m) => m.remainingCnt ?? 0) }))
157
+ .map(([mach, tools]) => ({
158
+ mach,
159
+ remainCnt: LazySeq.of(tools).sumBy((m) => m.remainingCnt ?? 0),
160
+ }))
152
161
  .minBy(({ remainCnt }) => remainCnt);
153
162
  const numCols = 6;
154
- return (_jsxs(_Fragment, { children: [_jsxs(ToolTableRow, { "$noBorderBottom": true, "$highlightedRow": schUseMin > totalRemainMin || schUseCnt > totalRemainCnt, "$noticeRow": schUseMin <= totalRemainMin &&
163
+ return (_jsxs(_Fragment, { children: [_jsxs(ToolTableRow, { $noBorderBottom: true, $highlightedRow: schUseMin > totalRemainMin || schUseCnt > totalRemainCnt, $noticeRow: schUseMin <= totalRemainMin &&
155
164
  schUseCnt <= totalRemainCnt &&
156
165
  ((minRemainMin && schUseMin > minRemainMin.remainMin) ||
157
166
  (minRemainCnt && schUseCnt > minRemainCnt.remainCnt)), children: [_jsx(TableCell, { children: _jsx(IconButton, { size: "small", onClick: () => setOpen(!open), children: open ? _jsx(KeyboardArrowUpIcon, {}) : _jsx(KeyboardArrowDownIcon, {}) }) }), _jsx(TableCell, { children: tool.toolName }), _jsx(TableCell, { align: "right", children: _jsx(FormatMinAndCnt, { min: schUseMin, cnt: schUseCnt }) }), _jsx(TableCell, { align: "right", children: _jsx(FormatMinAndCnt, { min: totalRemainMin, cnt: totalRemainCnt }) }), _jsx(TableCell, { align: "right", children: _jsx(FormatMinAndCnt, { min: minRemainMin?.remainMin, cnt: minRemainCnt?.remainCnt, showZero: true, extraMin: minRemainMin?.mach, extraCnt: minRemainCnt?.mach }) }), _jsx(TableCell, {})] }), _jsx(TableRow, { children: _jsx(TableCell, { sx: { pb: "0", pt: "0" }, colSpan: numCols, children: _jsx(Collapse, { in: open, timeout: "auto", unmountOnExit: true, children: _jsxs(Box, { sx: {
@@ -166,7 +175,9 @@ function ToolMachineHeader({ machine }) {
166
175
  const cntsWereEstimated = useAtomValue(toolReportEstimatedToolCounts);
167
176
  const showSerial = useAtomValue(toolReportHasSerial);
168
177
  return (_jsxs(ToolTableRow, { children: [_jsx(TableCell, {}), _jsxs(TableCell, { children: ["Tool In ", machine] }), _jsx(TableCell, { align: "right", children: "Pocket" }), showSerial ? _jsx(TableCell, { children: "Serial" }) : undefined, _jsx(TableCell, { align: "right", children: _jsx(Tooltip, { title: "Expected use for all currently scheduled parts." +
169
- (cntsWereEstimated ? " Counts are estimates." : ""), children: _jsx("span", { children: "Scheduled Use" }) }) }), _jsx(TableCell, { align: "right", children: _jsx(Tooltip, { title: "Current recorded usage of this tool." + (cntsWereEstimated ? " Counts are estimates." : ""), children: _jsx("span", { children: "Current Use" }) }) }), _jsxs(TableCell, { align: "right", children: [_jsx(Tooltip, { title: "Current configured lifetime of this tool." + (cntsWereEstimated ? " Counts are estimates." : ""), children: _jsx("span", { children: "Lifetime" }) }), " "] }), _jsx(TableCell, { align: "right", children: _jsx(Tooltip, { title: "Lifetime minus current use." + (cntsWereEstimated ? " Counts are estimates." : ""), children: _jsx("span", { children: "Remaining Use" }) }) }), _jsx(TableCell, {})] }));
178
+ (cntsWereEstimated ? " Counts are estimates." : ""), children: _jsx("span", { children: "Scheduled Use" }) }) }), _jsx(TableCell, { align: "right", children: _jsx(Tooltip, { title: "Current recorded usage of this tool." +
179
+ (cntsWereEstimated ? " Counts are estimates." : ""), children: _jsx("span", { children: "Current Use" }) }) }), _jsxs(TableCell, { align: "right", children: [_jsx(Tooltip, { title: "Current configured lifetime of this tool." +
180
+ (cntsWereEstimated ? " Counts are estimates." : ""), children: _jsx("span", { children: "Lifetime" }) }), " "] }), _jsx(TableCell, { align: "right", children: _jsx(Tooltip, { title: "Lifetime minus current use." + (cntsWereEstimated ? " Counts are estimates." : ""), children: _jsx("span", { children: "Remaining Use" }) }) }), _jsx(TableCell, {})] }));
170
181
  }
171
182
  function ToolMachineRow({ report, pocket }) {
172
183
  const [open, setOpen] = useState(false);
@@ -178,7 +189,7 @@ function ToolMachineRow({ report, pocket }) {
178
189
  const schCnts = LazySeq.of(report.parts)
179
190
  .filter((p) => p.machines.has(pocket.machineName))
180
191
  .sumBy((p) => p.scheduledUseCnt * p.quantity);
181
- return (_jsxs(_Fragment, { children: [_jsxs(ToolTableRow, { "$noBorderBottom": true, children: [_jsx(TableCell, { children: _jsx(IconButton, { size: "small", onClick: () => setOpen(!open), children: open ? _jsx(KeyboardArrowUpIcon, {}) : _jsx(KeyboardArrowDownIcon, {}) }) }), _jsx(TableCell, { children: report.toolName }), _jsx(TableCell, { align: "right", children: pocket.pocket }), showSerial ? _jsx(TableCell, { children: pocket.serial ?? "" }) : undefined, _jsx(TableCell, { align: "right", children: _jsx(FormatMinAndCnt, { min: schMins, cnt: schCnts }) }), _jsx(TableCell, { align: "right", children: _jsx(FormatMinAndCnt, { min: pocket.currentUseMinutes, cnt: pocket.currentUseCnt }) }), _jsx(TableCell, { align: "right", children: _jsx(FormatMinAndCnt, { min: pocket.lifetimeMinutes, cnt: pocket.lifetimeCnt }) }), _jsx(TableCell, { align: "right", children: _jsx(FormatMinAndCnt, { min: pocket.remainingMinutes, cnt: pocket.remainingCnt }) }), _jsx(TableCell, {})] }), _jsx(TableRow, { children: _jsx(TableCell, { sx: { pb: "0", pt: "0" }, colSpan: numCols, children: _jsx(Collapse, { in: open, timeout: "auto", unmountOnExit: true, children: _jsx(PartDetailTable, { tool: report, machine: pocket.machineName }) }) }) })] }));
192
+ return (_jsxs(_Fragment, { children: [_jsxs(ToolTableRow, { $noBorderBottom: true, children: [_jsx(TableCell, { children: _jsx(IconButton, { size: "small", onClick: () => setOpen(!open), children: open ? _jsx(KeyboardArrowUpIcon, {}) : _jsx(KeyboardArrowDownIcon, {}) }) }), _jsx(TableCell, { children: report.toolName }), _jsx(TableCell, { align: "right", children: pocket.pocket }), showSerial ? _jsx(TableCell, { children: pocket.serial ?? "" }) : undefined, _jsx(TableCell, { align: "right", children: _jsx(FormatMinAndCnt, { min: schMins, cnt: schCnts }) }), _jsx(TableCell, { align: "right", children: _jsx(FormatMinAndCnt, { min: pocket.currentUseMinutes, cnt: pocket.currentUseCnt }) }), _jsx(TableCell, { align: "right", children: _jsx(FormatMinAndCnt, { min: pocket.lifetimeMinutes, cnt: pocket.lifetimeCnt }) }), _jsx(TableCell, { align: "right", children: _jsx(FormatMinAndCnt, { min: pocket.remainingMinutes, cnt: pocket.remainingCnt }) }), _jsx(TableCell, {})] }), _jsx(TableRow, { children: _jsx(TableCell, { sx: { pb: "0", pt: "0" }, colSpan: numCols, children: _jsx(Collapse, { in: open, timeout: "auto", unmountOnExit: true, children: _jsx(PartDetailTable, { tool: report, machine: pocket.machineName }) }) }) })] }));
182
193
  }
183
194
  const FilterAnyMachineKey = "__Insight__FilterAnyMachine__";
184
195
  const toolReportMachineFilter = atom(null);
@@ -188,7 +199,7 @@ export function ToolSummaryTable() {
188
199
  if (tools === null) {
189
200
  return _jsx("div", {});
190
201
  }
191
- return (_jsxs(Table, { stickyHeader: true, children: [_jsx(TableHead, { children: machineFilter === null ? _jsx(ToolSummaryHeader, {}) : _jsx(ToolMachineHeader, { machine: machineFilter }) }), _jsx(TableBody, { children: tools.map((tool) => machineFilter === null ? (_jsx(ToolSummaryRow, { tool: tool }, tool.toolName)) : (_jsx(Fragment, { children: tool.machines
202
+ return (_jsxs(Table, { stickyHeader: true, children: [_jsx(TableHead, { children: machineFilter === null ? (_jsx(ToolSummaryHeader, {})) : (_jsx(ToolMachineHeader, { machine: machineFilter })) }), _jsx(TableBody, { children: tools.map((tool) => machineFilter === null ? (_jsx(ToolSummaryRow, { tool: tool }, tool.toolName)) : (_jsx(Fragment, { children: tool.machines
192
203
  .filter((m) => m.machineName === machineFilter)
193
204
  .map((m) => (_jsx(ToolMachineRow, { report: tool, pocket: m }, m.pocket))) }, tool.toolName))) })] }));
194
205
  }
@@ -1 +1 @@
1
- export declare function WorkorderGantt(): import("react/jsx-runtime").JSX.Element;
1
+ export declare function WorkorderGantt(): import("react").JSX.Element;
@@ -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.
@@ -1,2 +1,2 @@
1
- export declare function PartLookupStepper(): import("react/jsx-runtime").JSX.Element;
2
- export declare function QualityMaterialPage(): import("react/jsx-runtime").JSX.Element;
1
+ export declare function PartLookupStepper(): import("react").JSX.Element;
2
+ export declare function QualityMaterialPage(): 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.
@@ -34,7 +34,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
34
34
  import { useState } from "react";
35
35
  import { CircularProgress, Stack, TextField, Button, Stepper, Step, StepLabel, Typography, } from "@mui/material";
36
36
  import * as matDetails from "../../cell-status/material-details.js";
37
- import { MaterialDetailTitle, MaterialDetailContent, MaterialLoading } from "../station-monitor/Material.js";
37
+ import { MaterialDetailTitle, MaterialDetailContent, MaterialLoading, } from "../station-monitor/Material.js";
38
38
  import { buildPathString, extractPath } from "../../data/results.inspection.js";
39
39
  import { startOfToday, addDays, startOfDay, endOfDay } from "date-fns";
40
40
  import { ApiException, LogType } from "../../network/api.js";
@@ -1 +1 @@
1
- export declare const QualityPaths: import("react").MemoExoticComponent<() => import("react/jsx-runtime").JSX.Element>;
1
+ export declare const QualityPaths: import("react").MemoExoticComponent<() => import("react").JSX.Element>;
@@ -1 +1 @@
1
- export declare function RecentFailedInspectionsTable(): import("react/jsx-runtime").JSX.Element;
1
+ export declare function RecentFailedInspectionsTable(): 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) 2023, John Lenz
3
3
 
4
4
  All rights reserved.
@@ -163,7 +163,7 @@ export declare const isDemoAtom: import("jotai").PrimitiveAtom<boolean> & {
163
163
  init: boolean;
164
164
  };
165
165
  export declare const currentRoute: import("jotai").WritableAtom<RouteState, [to: RouteState], void>;
166
- export declare function AppLink({ to, children }: {
166
+ export declare function AppLink({ to, children, }: {
167
167
  to: RouteState;
168
168
  children: React.ReactNode;
169
169
  }): React.ReactElement;
@@ -202,7 +202,7 @@ export const currentRoute = atom((get) => get(currentRouteLocation), (get, set,
202
202
  history.pushState(null, "", routeToUrl(to));
203
203
  }
204
204
  });
205
- export function AppLink({ to, children }) {
205
+ export function AppLink({ to, children, }) {
206
206
  const setRoute = useSetAtom(currentRoute);
207
207
  return createElement(Link, {
208
208
  href: routeToUrl(to),
@@ -2,10 +2,10 @@ import * as api from "../../network/api.js";
2
2
  export declare const bulkAddCastingToQueue: import("jotai").PrimitiveAtom<string | null> & {
3
3
  init: string | null;
4
4
  };
5
- export declare const BulkAddCastingWithoutSerialDialog: import("react").MemoExoticComponent<() => import("react/jsx-runtime").JSX.Element>;
5
+ export declare const BulkAddCastingWithoutSerialDialog: import("react").MemoExoticComponent<() => import("react").JSX.Element>;
6
6
  export interface MultiMaterialDialogProps {
7
7
  readonly material: ReadonlyArray<Readonly<api.IInProcessMaterial>> | null;
8
8
  readonly closeDialog: () => void;
9
9
  readonly operator: string | null;
10
10
  }
11
- export declare const MultiMaterialDialog: import("react").MemoExoticComponent<(props: MultiMaterialDialogProps) => import("react/jsx-runtime").JSX.Element>;
11
+ export declare const MultiMaterialDialog: import("react").MemoExoticComponent<(props: MultiMaterialDialogProps) => 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) 2023, John Lenz
3
3
 
4
4
  All rights reserved.
@@ -59,7 +59,9 @@ function WaitingForMaterialDialog() {
59
59
  onAfterPrint: () => setWaiting(null),
60
60
  ignoreGlobalStyles: true,
61
61
  });
62
- let materialToPrint = waiting ? st.material.filter((m) => waiting.materialIds.has(m.materialID)) : null;
62
+ let materialToPrint = waiting
63
+ ? st.material.filter((m) => waiting.materialIds.has(m.materialID))
64
+ : null;
63
65
  if (materialToPrint?.length !== waiting?.materialIds.size) {
64
66
  materialToPrint = null;
65
67
  }
@@ -142,7 +144,9 @@ export const BulkAddCastingWithoutSerialDialog = memo(function BulkAddCastingWit
142
144
  onNewMaterial: (mats) => {
143
145
  setWaitingToPrint({
144
146
  selectedCasting: selectedCasting,
145
- operator: fmsInfo.requireOperatorNamePromptWhenAddingMaterial ? enteredOperator : operator,
147
+ operator: fmsInfo.requireOperatorNamePromptWhenAddingMaterial
148
+ ? enteredOperator
149
+ : operator,
146
150
  materialIds: new Set(mats.map((m) => m.materialID)),
147
151
  });
148
152
  close();
@@ -168,11 +172,11 @@ export const BulkAddCastingWithoutSerialDialog = memo(function BulkAddCastingWit
168
172
  enteredQty === null ||
169
173
  isNaN(enteredQty) ||
170
174
  (fmsInfo.requireOperatorNamePromptWhenAddingMaterial &&
171
- (enteredOperator === null || enteredOperator === "")), onClick: addAndPrint, children: [adding ? _jsx(CircularProgress, { size: 10 }) : undefined, "Add ", enteredQty !== null && !isNaN(enteredQty) ? enteredQty.toString() + " " : "", "to ", queue] })) : (_jsxs(Button, { color: "primary", disabled: selectedCasting === null ||
175
+ (enteredOperator === null || enteredOperator === "")), onClick: addAndPrint, children: [adding ? _jsx(CircularProgress, { size: 10 }) : undefined, "Add ", enteredQty !== null && !isNaN(enteredQty) ? enteredQty.toString() + " " : "", "to", " ", queue] })) : (_jsxs(Button, { color: "primary", disabled: selectedCasting === null ||
172
176
  enteredQty === null ||
173
177
  isNaN(enteredQty) ||
174
178
  (fmsInfo.requireOperatorNamePromptWhenAddingMaterial &&
175
- (enteredOperator === null || enteredOperator === "")), onClick: add, children: ["Add ", enteredQty !== null && !isNaN(enteredQty) ? enteredQty.toString() + " " : "", "to ", queue] })), _jsx(Button, { color: "primary", disabled: adding && printOnAdd, onClick: close, children: "Cancel" })] })] }), _jsx(WaitingForMaterialDialog, {})] }));
179
+ (enteredOperator === null || enteredOperator === "")), onClick: add, children: ["Add ", enteredQty !== null && !isNaN(enteredQty) ? enteredQty.toString() + " " : "", "to", " ", queue] })), _jsx(Button, { color: "primary", disabled: adding && printOnAdd, onClick: close, children: "Cancel" })] })] }), _jsx(WaitingForMaterialDialog, {})] }));
176
180
  });
177
181
  export const MultiMaterialDialog = memo(function MultiMaterialDialog(props) {
178
182
  const fmsInfo = useAtomValue(fmsInformation);
@@ -242,7 +246,9 @@ export const MultiMaterialDialog = memo(function MultiMaterialDialog(props) {
242
246
  }
243
247
  const mat1 = props.material?.[0];
244
248
  return (_jsxs(Dialog, { open: props.material !== null, onClose: close, maxWidth: "md", children: [_jsx(DialogTitle, { children: mat1 && props.material && props.material.length > 0 ? (_jsx(MaterialDetailTitle, { partName: mat1.partName, subtitle: props.material.length.toString() +
245
- (mat1.jobUnique && mat1.jobUnique !== "" ? " assigned to " + mat1.jobUnique : " unassigned") })) : ("Material") }), _jsxs(DialogContent, { children: [loading ? _jsx(CircularProgress, { color: "secondary" }) : _jsx(LogEntries, { entries: events, copyToClipboard: true }), showRemove && props.material ? (_jsx("div", { style: { marginTop: "1em" }, children: _jsx(TextField, { type: "number", variant: "outlined", fullWidth: true, label: "Quantity to Remove", slotProps: { htmlInput: { min: "1", max: props.material.length.toString() } }, value: isNaN(removeCnt) ? "" : removeCnt, onChange: (e) => setRemoveCnt(parseInt(e.target.value)) }) })) : undefined] }), _jsxs(DialogActions, { children: [props.material && props.material.length > 0 && fmsInfo.usingLabelPrinterForSerials ? (fmsInfo.useClientPrinterForLabels ? (_jsx(PrintOnClientButton, { mat: props.material || [], materialName: rawMatName, operator: lastOperator })) : (_jsx(Button, { color: "primary", disabled: printingLabel, onClick: () => props.material && props.material.length > 0
249
+ (mat1.jobUnique && mat1.jobUnique !== ""
250
+ ? " assigned to " + mat1.jobUnique
251
+ : " unassigned") })) : ("Material") }), _jsxs(DialogContent, { children: [loading ? (_jsx(CircularProgress, { color: "secondary" })) : (_jsx(LogEntries, { entries: events, copyToClipboard: true })), showRemove && props.material ? (_jsx("div", { style: { marginTop: "1em" }, children: _jsx(TextField, { type: "number", variant: "outlined", fullWidth: true, label: "Quantity to Remove", slotProps: { htmlInput: { min: "1", max: props.material.length.toString() } }, value: isNaN(removeCnt) ? "" : removeCnt, onChange: (e) => setRemoveCnt(parseInt(e.target.value)) }) })) : undefined] }), _jsxs(DialogActions, { children: [props.material && props.material.length > 0 && fmsInfo.usingLabelPrinterForSerials ? (fmsInfo.useClientPrinterForLabels ? (_jsx(PrintOnClientButton, { mat: props.material || [], materialName: rawMatName, operator: lastOperator })) : (_jsx(Button, { color: "primary", disabled: printingLabel, onClick: () => props.material && props.material.length > 0
246
252
  ? printLabel({
247
253
  materialId: props.material[0].materialID,
248
254
  proc: 0,
@@ -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.
@@ -127,7 +127,9 @@ export function Closeout({ forceSingleColumn }) {
127
127
  const uncompleted = [];
128
128
  const closed = [];
129
129
  for (const m of matSummary.matsById.values()) {
130
- if (m.completed_last_proc_machining === true && m.last_unload_time && m.last_unload_time >= cutoff) {
130
+ if (m.completed_last_proc_machining === true &&
131
+ m.last_unload_time &&
132
+ m.last_unload_time >= cutoff) {
131
133
  if (m.closeout_completed === undefined) {
132
134
  uncompleted.push(m);
133
135
  }
@@ -151,7 +153,9 @@ export function Closeout({ forceSingleColumn }) {
151
153
  minHeight: forceSingleColumn ? undefined : { md: "calc(100vh - 64px)" },
152
154
  width: forceSingleColumn ? "100%" : { md: "50vw" },
153
155
  borderRight: forceSingleColumn ? undefined : { md: "1px solid black" },
154
- borderBottom: forceSingleColumn ? "1px solid black" : { sm: "1px solid black", md: "none" },
156
+ borderBottom: forceSingleColumn
157
+ ? "1px solid black"
158
+ : { sm: "1px solid black", md: "none" },
155
159
  }, children: [_jsx(Typography, { variant: "h4", children: "Recently Completed" }), _jsx(Box, { sx: {
156
160
  display: "flex",
157
161
  justifyContent: "flex-start",
@@ -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) 2021, John Lenz
3
3
 
4
4
  All rights reserved.
@@ -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.
@@ -100,7 +100,9 @@ export function Inspection({ focusInspectionType, forceSingleColumn }) {
100
100
  minHeight: forceSingleColumn ? undefined : { md: "calc(100vh - 64px)" },
101
101
  width: forceSingleColumn ? "100%" : { md: "50vw" },
102
102
  borderRight: forceSingleColumn ? undefined : { md: "1px solid black" },
103
- borderBottom: forceSingleColumn ? "1px solid black" : { sm: "1px solid black", md: "none" },
103
+ borderBottom: forceSingleColumn
104
+ ? "1px solid black"
105
+ : { sm: "1px solid black", md: "none" },
104
106
  }, children: [_jsx(Typography, { variant: "h4", children: "Parts to Inspect" }), _jsx(Box, { sx: {
105
107
  display: "flex",
106
108
  justifyContent: "flex-start",
@@ -10,12 +10,12 @@ export type InvalidateCycleProps = {
10
10
  readonly st: InvalidateCycleState | null;
11
11
  readonly setState: (s: InvalidateCycleState | null) => void;
12
12
  };
13
- export declare function InvalidateCycleDialogContent(props: InvalidateCycleProps): import("react/jsx-runtime").JSX.Element;
13
+ export declare function InvalidateCycleDialogContent(props: InvalidateCycleProps): import("react").JSX.Element;
14
14
  export declare function InvalidateCycleDialogButton(props: InvalidateCycleProps & {
15
15
  readonly onClose: () => void;
16
16
  readonly ignoreOperator?: boolean;
17
17
  readonly loadStation?: boolean;
18
- }): import("react/jsx-runtime").JSX.Element | null;
18
+ }): import("react").JSX.Element | null;
19
19
  interface SwapMaterial {
20
20
  readonly selectedMatToSwap: Readonly<IInProcessMaterial> | null;
21
21
  readonly updating: boolean;
@@ -29,5 +29,5 @@ export declare function SwapMaterialDialogContent(props: SwapMaterialProps): Rea
29
29
  export declare function SwapMaterialButtons(props: SwapMaterialProps & {
30
30
  readonly onClose: () => void;
31
31
  readonly ignoreOperator?: boolean;
32
- }): import("react/jsx-runtime").JSX.Element | null;
32
+ }): import("react").JSX.Element | null;
33
33
  export {};
@@ -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.
@@ -91,7 +91,9 @@ function InvalidateSelect(props) {
91
91
  .map((p) => (_jsxs(MenuItem, { value: "proc" + p.toString(), children: ["Invalidate Process ", p] }, p)))
92
92
  .toRArray()
93
93
  : [],
94
- hasProc && hasChangeMat ? [_jsx(ListSubheader, { children: "Change Material Type" }, "matheader")] : [],
94
+ hasProc && hasChangeMat
95
+ ? [_jsx(ListSubheader, { children: "Change Material Type" }, "matheader")]
96
+ : [],
95
97
  hasChangeMat
96
98
  ? [
97
99
  ...castings.map((c) => (_jsxs(MenuItem, { value: "rawMat" + c, children: ["Invalidate Everything And Change to ", c] }, "rawMat" + c))),
@@ -165,7 +167,9 @@ export function InvalidateCycleDialogButton(props) {
165
167
  }
166
168
  }
167
169
  return (_jsxs(_Fragment, { children: [props.st === null ? (_jsx(Button, { color: "primary", onClick: showInvalidate, children: "Invalidate Cycle" })) : undefined, props.st !== null ? (_jsx(Button, { color: "primary", onClick: invalidateCycle, disabled: props.st.updating ||
168
- (props.st.process === null && props.st.changeRawMat === null && props.st.changeJobUnique === null), children: props.st.process !== null
170
+ (props.st.process === null &&
171
+ props.st.changeRawMat === null &&
172
+ props.st.changeJobUnique === null), children: props.st.process !== null
169
173
  ? "Invalidate Process " + props.st.process.toString()
170
174
  : props.st.changeJobUnique !== null
171
175
  ? "Invalidate And Change To Job " + props.st.changeJobUnique
@@ -243,7 +247,10 @@ export function SwapMaterialButtons(props) {
243
247
  return null;
244
248
  }
245
249
  function swapMats() {
246
- if (curMat && props.st && props.st.selectedMatToSwap && curMat.location.type === LocType.OnPallet) {
250
+ if (curMat &&
251
+ props.st &&
252
+ props.st.selectedMatToSwap &&
253
+ curMat.location.type === LocType.OnPallet) {
247
254
  props.setState({ selectedMatToSwap: props.st.selectedMatToSwap, updating: true });
248
255
  JobsBackend.swapMaterialOnPallet(curMat.materialID, operator, {
249
256
  pallet: curMat.location.palletNum ?? 0,
@@ -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.
@@ -43,7 +43,7 @@ import { durationToMinutes } from "../../util/parseISODuration.js";
43
43
  import { materialDialogOpen } from "../../cell-status/material-details.js";
44
44
  import { currentStatus } from "../../cell-status/current-status.js";
45
45
  import { selectedAnalysisPeriod } from "../../network/load-specific-month.js";
46
- import { last30MaterialSummary, specificMonthMaterialSummary } from "../../cell-status/material-summary.js";
46
+ import { last30MaterialSummary, specificMonthMaterialSummary, } from "../../cell-status/material-summary.js";
47
47
  import { LazySeq, HashSet } from "@seedtactics/immutable-collections";
48
48
  import { basketDisplayName, loadStationDisplayName } from "../../cell-status/station-cycles.js";
49
49
  import { MoreHoriz } from "@mui/icons-material";
@@ -70,7 +70,9 @@ function JobDisplay(props) {
70
70
  const displayLoadStations = (stations) => stations.map((station) => loadStationDisplayName(station, fmsInfo.loadStationNames)).join(", ");
71
71
  return (_jsx("div", { children: _jsxs("dl", { children: [_jsx("dt", { children: "Job ID" }), _jsx("dd", { children: props.job.unique }), _jsx("dt", { children: "Time" }), _jsxs("dd", { children: [displayDate(props.job.routeStartUTC), " to ", displayDate(props.job.routeEndUTC)] }), props.job.cycles ? (_jsxs(_Fragment, { children: [_jsx("dt", { children: "Quantity" }), _jsx("dd", { children: props.job.cycles })] })) : undefined, props.job.comment !== undefined && props.job.comment !== "" ? (_jsxs(_Fragment, { children: [_jsx("dt", { children: "Comment" }), _jsx("dd", { children: props.job.comment })] })) : undefined, props.job.assignedWorkorders && props.job.assignedWorkorders.length > 0 ? (_jsxs(_Fragment, { children: [_jsx("dt", { children: "Workorders" }), _jsx("dd", { children: props.job.assignedWorkorders.join(", ") })] })) : undefined, props.job.procsAndPaths.map((proc, procIdx) => (_jsx(Fragment, { children: proc.paths.map((path, pathIdx) => (_jsxs(Fragment, { children: [_jsxs("dt", { children: ["Process ", procIdx + 1, proc.paths.length > 1 ? ", Path " + (pathIdx + 1).toString() : undefined] }), _jsxs("dd", { children: [_jsx(JobCompleted, { job: props.job, procIdx: procIdx, pathIdx: pathIdx }), _jsxs("div", { children: ["Estimated Start: ", displayDate(path.simulatedStartingUTC)] }), _jsxs("div", { children: ["Pallets: ", (path.palletNums ?? []).map((p) => p.toString()).join(",")] }), path.fixture ? (_jsxs("div", { children: ["Fixture: ", path.fixture, " ", path.face !== undefined ? ", Face: " + path.face.toString() : undefined] })) : undefined, path.inputQueue ? _jsxs("div", { children: ["Input Queue: ", path.inputQueue] }) : undefined, path.casting ? _jsxs("div", { children: ["Raw Material: ", path.casting] }) : undefined, proc.basketLoadStations &&
72
72
  proc.basketLoadStations.length > 0 &&
73
- proc.expectedBasketLoadTime ? (_jsxs("div", { children: ["Basket Load Stations: ", displayLoadStations(proc.basketLoadStations), " |", " ", durationToMinutes(proc.expectedBasketLoadTime).toFixed(1), " mins", path.partsPerPallet > 1 ? " per piece" : ""] })) : undefined, _jsxs("div", { children: ["Load Stations: ", displayLoadStations(path.load), " |", " ", durationToMinutes(path.expectedLoadTime).toFixed(1), " mins", path.partsPerPallet > 1 ? " per piece" : ""] }), path.stops.map((stop, stopIdx) => (_jsx(Fragment, { children: _jsxs("div", { children: [stop.stationGroup, ": ", (stop.stationNums ?? []).join(","), " | Program: ", stop.program, stop.programRevision ? " rev" + stop.programRevision.toString() : undefined, " |", " ", (durationToMinutes(stop.expectedCycleTime) / path.partsPerPallet).toFixed(1), " mins", path.partsPerPallet > 1 ? " per piece" : ""] }) }, stopIdx))), _jsxs("div", { children: ["Unload Stations: ", displayLoadStations(path.unload), " |", " ", durationToMinutes(path.expectedUnloadTime).toFixed(1), " mins", path.partsPerPallet > 1 ? " per piece" : ""] }), proc.basketUnloadStations &&
73
+ proc.expectedBasketLoadTime ? (_jsxs("div", { children: ["Basket Load Stations: ", displayLoadStations(proc.basketLoadStations), " |", " ", durationToMinutes(proc.expectedBasketLoadTime).toFixed(1), " mins", path.partsPerPallet > 1 ? " per piece" : ""] })) : undefined, _jsxs("div", { children: ["Load Stations: ", displayLoadStations(path.load), " |", " ", durationToMinutes(path.expectedLoadTime).toFixed(1), " mins", path.partsPerPallet > 1 ? " per piece" : ""] }), path.stops.map((stop, stopIdx) => (_jsx(Fragment, { children: _jsxs("div", { children: [stop.stationGroup, ": ", (stop.stationNums ?? []).join(","), " | Program:", " ", stop.program, stop.programRevision
74
+ ? " rev" + stop.programRevision.toString()
75
+ : undefined, " ", "|", " ", (durationToMinutes(stop.expectedCycleTime) / path.partsPerPallet).toFixed(1), " ", "mins", path.partsPerPallet > 1 ? " per piece" : ""] }) }, stopIdx))), _jsxs("div", { children: ["Unload Stations: ", displayLoadStations(path.unload), " |", " ", durationToMinutes(path.expectedUnloadTime).toFixed(1), " mins", path.partsPerPallet > 1 ? " per piece" : ""] }), proc.basketUnloadStations &&
74
76
  proc.basketUnloadStations.length > 0 &&
75
77
  proc.expectedBasketUnloadTime ? (_jsxs("div", { children: ["Basket Unload Stations: ", displayLoadStations(proc.basketUnloadStations), " |", " ", durationToMinutes(proc.expectedBasketUnloadTime).toFixed(1), " mins", path.partsPerPallet > 1 ? " per piece" : ""] })) : undefined, path.outputQueue ? _jsxs("div", { children: ["Output Queue: ", path.outputQueue] }) : undefined, path.inspections && path.inspections.length > 0 ? (_jsxs("div", { children: ["Inspections: ", path.inspections.map((i) => i.inspectionType).join(",")] })) : undefined] })] }, pathIdx))) }, procIdx)))] }) }));
76
78
  }
@@ -5,6 +5,6 @@ interface LoadStationProps {
5
5
  readonly completed: boolean;
6
6
  readonly whiteBackground?: boolean;
7
7
  }
8
- export declare function LoadStation(props: LoadStationProps): import("react/jsx-runtime").JSX.Element;
8
+ export declare function LoadStation(props: LoadStationProps): import("react").JSX.Element;
9
9
  declare function LoadStationCheckWidth(props: LoadStationProps): ReactNode;
10
10
  export default LoadStationCheckWidth;
@@ -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.
@@ -93,12 +93,12 @@ function selectLoadStationAndQueueProps(loadNum, queues, curSt, hideNonLoading)
93
93
  }
94
94
  }
95
95
  for (const basket of Object.values(curSt.baskets ?? {})) {
96
- if (basket.locationNum !== loadNum)
96
+ if (basket.position.locationNum !== loadNum)
97
97
  continue;
98
- if (basket.location === api.BasketLocationEnum.LoadUnload) {
98
+ if (basket.position.location === api.BasketLocationEnum.LoadUnload) {
99
99
  activeBasket = basket;
100
100
  }
101
- else if (basket.location === api.BasketLocationEnum.LoadStationStaging) {
101
+ else if (basket.position.location === api.BasketLocationEnum.LoadStationStaging) {
102
102
  basketsToShow.add(basket.basketId);
103
103
  }
104
104
  }
@@ -171,7 +171,8 @@ function selectLoadStationAndQueueProps(loadNum, queues, curSt, hideNonLoading)
171
171
  for (const m of curSt.material) {
172
172
  if (pal) {
173
173
  // if loading onto pallet, set elapsed load time, ensure face exists, and set free loading
174
- if (m.action.type === api.ActionType.Loading && m.action.loadOntoPalletNum === pal.palletNum) {
174
+ if (m.action.type === api.ActionType.Loading &&
175
+ m.action.loadOntoPalletNum === pal.palletNum) {
175
176
  if (m.action.elapsedLoadUnloadTime) {
176
177
  elapsedLoadingTime = m.action.elapsedLoadUnloadTime;
177
178
  }
@@ -204,7 +205,8 @@ function selectLoadStationAndQueueProps(loadNum, queues, curSt, hideNonLoading)
204
205
  if (isLoadingToDisplayedTarget(m, pal, activeBasket) && m.action.elapsedLoadUnloadTime) {
205
206
  elapsedLoadingTime = m.action.elapsedLoadUnloadTime;
206
207
  }
207
- if (m.location.type === api.LocType.InBasket && m.location.basketId === activeBasket.basketId) {
208
+ if (m.location.type === api.LocType.InBasket &&
209
+ m.location.basketId === activeBasket.basketId) {
208
210
  if ((m.action.type === api.ActionType.UnloadToCompletedMaterial ||
209
211
  m.action.type === api.ActionType.UnloadToInProcess) &&
210
212
  m.action.elapsedLoadUnloadTime) {
@@ -267,7 +269,7 @@ function selectLoadStationAndQueueProps(loadNum, queues, curSt, hideNonLoading)
267
269
  }
268
270
  }
269
271
  queueMat.forEach((queue) => queue.mats.sort(mkCompareByProperties((mat) => mat.location.queuePosition ?? 0)));
270
- basketMat.forEach((basket) => basket.mats.sort(mkCompareByProperties((mat) => mat.location.basketSubPosition ?? 0)));
272
+ basketMat.forEach((basket) => basket.mats.sort(mkCompareByProperties((mat) => mat.location.basketSlot ?? 0)));
271
273
  const matCount = freeLoading.length + palFaces.valuesToAscLazySeq().sumBy((x) => x.length);
272
274
  return {
273
275
  pallet: pal,
@@ -501,7 +503,8 @@ function InstructionButton({ pallet }) {
501
503
  if (material === null)
502
504
  return null;
503
505
  let type;
504
- if (material.action.type === api.ActionType.Loading && material.action.loadOntoPalletNum === pallet) {
506
+ if (material.action.type === api.ActionType.Loading &&
507
+ material.action.loadOntoPalletNum === pallet) {
505
508
  type = "load";
506
509
  }
507
510
  else if ((material.action.type === api.ActionType.UnloadToInProcess ||
@@ -5,7 +5,7 @@ export declare class PartIdenticon extends PureComponent<{
5
5
  part: string;
6
6
  size?: number;
7
7
  }> {
8
- render(): import("react/jsx-runtime").JSX.Element;
8
+ render(): import("react").JSX.Element;
9
9
  }
10
10
  export type MatCardFontSize = "normal" | "large" | "x-large";
11
11
  export declare function MaterialAction({ mat, displayActionForSinglePallet, fsize, }: {
@@ -13,7 +13,7 @@ export declare function MaterialAction({ mat, displayActionForSinglePallet, fsiz
13
13
  displayActionForSinglePallet?: number;
14
14
  fsize?: MatCardFontSize;
15
15
  }): ReactNode | null;
16
- export declare function WorkorderFromBarcode(): import("react/jsx-runtime").JSX.Element | null;
16
+ export declare function WorkorderFromBarcode(): import("react").JSX.Element | null;
17
17
  export interface MaterialSummaryProps {
18
18
  readonly mat: Readonly<MaterialSummaryAndCompletedData>;
19
19
  readonly inProcMat?: Readonly<api.IInProcessMaterial>;
@@ -43,12 +43,12 @@ export type ShakeProp = {
43
43
  };
44
44
  export declare const InProcMaterial: import("react").MemoExoticComponent<(props: InProcMaterialProps & ShakeProp & {
45
45
  readonly showHandle?: boolean;
46
- }) => import("react/jsx-runtime").JSX.Element>;
46
+ }) => import("react").JSX.Element>;
47
47
  export type SortableMatData = {
48
48
  readonly mat: Readonly<api.IInProcessMaterial>;
49
49
  };
50
- export declare const SortableInProcMaterial: import("react").MemoExoticComponent<(props: InProcMaterialProps & ShakeProp) => import("react/jsx-runtime").JSX.Element>;
51
- export declare function DragOverlayInProcMaterial(props: InProcMaterialProps): import("react/jsx-runtime").JSX.Element;
50
+ export declare const SortableInProcMaterial: import("react").MemoExoticComponent<(props: InProcMaterialProps & ShakeProp) => import("react").JSX.Element>;
51
+ export declare function DragOverlayInProcMaterial(props: InProcMaterialProps): import("react").JSX.Element;
52
52
  export interface MultiMaterialProps {
53
53
  readonly partOrCasting: string;
54
54
  readonly fsize?: MatCardFontSize;
@@ -56,17 +56,17 @@ export interface MultiMaterialProps {
56
56
  readonly material: ReadonlyArray<Readonly<api.IInProcessMaterial>>;
57
57
  onOpen: () => void;
58
58
  }
59
- export declare const MultiMaterial: import("react").MemoExoticComponent<(props: MultiMaterialProps) => import("react/jsx-runtime").JSX.Element>;
59
+ export declare const MultiMaterial: import("react").MemoExoticComponent<(props: MultiMaterialProps) => import("react").JSX.Element>;
60
60
  export declare const MaterialDetailTitle: import("react").MemoExoticComponent<({ partName, serial, subtitle, notes, }: {
61
61
  partName: string;
62
62
  serial?: string | null;
63
63
  subtitle?: string;
64
64
  notes?: boolean;
65
- }) => import("react/jsx-runtime").JSX.Element>;
65
+ }) => import("react").JSX.Element>;
66
66
  export declare const MaterialDetailContent: import("react").MemoExoticComponent<({ highlightProcsGreaterOrEqualTo, }: {
67
67
  highlightProcsGreaterOrEqualTo?: number;
68
- }) => import("react/jsx-runtime").JSX.Element | null>;
69
- export declare function MaterialLoading(): import("react/jsx-runtime").JSX.Element | null;
68
+ }) => import("react").JSX.Element | null>;
69
+ export declare function MaterialLoading(): import("react").JSX.Element | null;
70
70
  export interface MaterialDialogProps {
71
71
  buttons?: ReactNode;
72
72
  onClose?: () => void;
@@ -74,4 +74,4 @@ export interface MaterialDialogProps {
74
74
  extraDialogElements?: ReactNode;
75
75
  highlightProcsGreaterOrEqualTo?: number;
76
76
  }
77
- export declare const MaterialDialog: import("react").MemoExoticComponent<(props: MaterialDialogProps) => import("react/jsx-runtime").JSX.Element>;
77
+ export declare const MaterialDialog: import("react").MemoExoticComponent<(props: MaterialDialogProps) => import("react").JSX.Element>;