@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.
- package/README.md +23 -29
- package/dist/assets/index-BGjv3-QV.js +388 -0
- package/dist/cell-status/current-status.js +4 -1
- package/dist/cell-status/estimated-cycle-times.js +2 -1
- package/dist/cell-status/inspections.js +1 -1
- package/dist/cell-status/loading.js +1 -1
- package/dist/cell-status/material-summary.js +4 -2
- package/dist/cell-status/names.js +1 -1
- package/dist/cell-status/rebookings.js +3 -1
- package/dist/cell-status/scheduled-jobs.js +1 -1
- package/dist/cell-status/sim-production.js +6 -2
- package/dist/cell-status/station-cycles.js +3 -1
- package/dist/cell-status/tool-replacements.js +21 -7
- package/dist/cell-status/tool-usage.js +7 -2
- package/dist/components/App.d.ts +2 -2
- package/dist/components/App.js +13 -5
- package/dist/components/AxisAndGrid.d.ts +6 -6
- package/dist/components/BarcodeScanning.d.ts +2 -2
- package/dist/components/BarcodeScanning.js +8 -2
- package/dist/components/ChartTooltip.d.ts +2 -2
- package/dist/components/ChooseMode.js +6 -1
- package/dist/components/ChooseOperator.d.ts +1 -1
- package/dist/components/ErrorsAndLoading.d.ts +3 -3
- package/dist/components/LoadingIcon.d.ts +1 -1
- package/dist/components/LoadingIcon.js +1 -1
- package/dist/components/LogEntry.d.ts +2 -2
- package/dist/components/LogEntry.js +10 -8
- package/dist/components/ManualSerialEntry.d.ts +2 -2
- package/dist/components/MonthSelect.d.ts +1 -1
- package/dist/components/MonthSelect.js +3 -1
- package/dist/components/Navigation.d.ts +2 -2
- package/dist/components/Navigation.js +1 -1
- package/dist/components/VerboseLogging.d.ts +1 -1
- package/dist/components/analysis/AnalysisSelectToolbar.d.ts +1 -1
- package/dist/components/analysis/BasketCycleCards.d.ts +1 -1
- package/dist/components/analysis/BasketCycleCards.js +1 -1
- package/dist/components/analysis/BufferChart.d.ts +1 -1
- package/dist/components/analysis/BufferChart.js +23 -4
- package/dist/components/analysis/CostPerPiece.d.ts +2 -2
- package/dist/components/analysis/CostPerPiece.js +2 -2
- package/dist/components/analysis/CycleChart.d.ts +1 -1
- package/dist/components/analysis/CycleChart.js +17 -4
- package/dist/components/analysis/DataTable.js +4 -2
- package/dist/components/analysis/EfficiencyPage.d.ts +2 -2
- package/dist/components/analysis/EfficiencyPage.js +1 -1
- package/dist/components/analysis/HeatChart.d.ts +1 -1
- package/dist/components/analysis/HeatChart.js +12 -3
- package/dist/components/analysis/InspectionDataTable.d.ts +1 -1
- package/dist/components/analysis/InspectionDataTable.js +6 -1
- package/dist/components/analysis/InspectionSankey.d.ts +1 -1
- package/dist/components/analysis/InspectionSankey.js +16 -6
- package/dist/components/analysis/PalletCycleCards.d.ts +1 -1
- package/dist/components/analysis/PalletCycleCards.js +5 -3
- package/dist/components/analysis/PartCycleCards.d.ts +2 -2
- package/dist/components/analysis/PartCycleCards.js +16 -6
- package/dist/components/analysis/QualityPage.d.ts +1 -1
- package/dist/components/analysis/ScheduleHistory.d.ts +1 -1
- package/dist/components/analysis/ScheduleHistory.js +1 -1
- package/dist/components/analysis/StationDataTable.d.ts +1 -1
- package/dist/components/analysis/ToolReplacements.d.ts +1 -1
- package/dist/components/analysis/ToolReplacements.js +7 -3
- package/dist/components/operations/AllMaterial.d.ts +1 -1
- package/dist/components/operations/ChartRangeEdit.d.ts +1 -1
- package/dist/components/operations/ChartRangeEdit.js +13 -4
- package/dist/components/operations/CloseoutReport.js +1 -1
- package/dist/components/operations/CompletedParts.js +2 -2
- package/dist/components/operations/CurrentWorkorders.js +2 -2
- package/dist/components/operations/Dashboard.d.ts +2 -2
- package/dist/components/operations/OEEChart.d.ts +4 -4
- package/dist/components/operations/OEEChart.js +7 -2
- package/dist/components/operations/Outliers.d.ts +1 -1
- package/dist/components/operations/Programs.js +9 -4
- package/dist/components/operations/Rebookings.d.ts +1 -1
- package/dist/components/operations/Rebookings.js +3 -1
- package/dist/components/operations/RecentCycleChart.d.ts +1 -1
- package/dist/components/operations/RecentCycleChart.js +2 -2
- package/dist/components/operations/RecentProduction.js +3 -3
- package/dist/components/operations/RecentSchedules.js +3 -1
- package/dist/components/operations/RecentStationCycles.d.ts +1 -1
- package/dist/components/operations/RecentStationCycles.js +1 -1
- package/dist/components/operations/ShiftSettings.d.ts +1 -1
- package/dist/components/operations/SimDayUsage.d.ts +1 -1
- package/dist/components/operations/ToolReport.js +17 -6
- package/dist/components/operations/WorkorderGantt.d.ts +1 -1
- package/dist/components/quality/QualityMaterial.d.ts +2 -2
- package/dist/components/quality/QualityMaterial.js +1 -1
- package/dist/components/quality/QualityPaths.d.ts +1 -1
- package/dist/components/quality/RecentFailedInspections.d.ts +1 -1
- package/dist/components/routes.d.ts +1 -1
- package/dist/components/routes.js +1 -1
- package/dist/components/station-monitor/BulkRawMaterial.d.ts +2 -2
- package/dist/components/station-monitor/BulkRawMaterial.js +11 -5
- package/dist/components/station-monitor/Closeout.js +6 -2
- package/dist/components/station-monitor/Inspection.js +3 -1
- package/dist/components/station-monitor/InvalidateCycle.d.ts +3 -3
- package/dist/components/station-monitor/InvalidateCycle.js +10 -3
- package/dist/components/station-monitor/JobDetails.js +4 -2
- package/dist/components/station-monitor/LoadStation.d.ts +1 -1
- package/dist/components/station-monitor/LoadStation.js +6 -3
- package/dist/components/station-monitor/Material.d.ts +10 -10
- package/dist/components/station-monitor/Material.js +28 -20
- package/dist/components/station-monitor/Material.test.js +1 -1
- package/dist/components/station-monitor/MoveMaterialArrows.d.ts +2 -2
- package/dist/components/station-monitor/PrintedLabel.d.ts +3 -3
- package/dist/components/station-monitor/PrintedLabel.js +9 -4
- package/dist/components/station-monitor/QuarantineButton.d.ts +1 -1
- package/dist/components/station-monitor/QuarantineButton.js +4 -2
- package/dist/components/station-monitor/Queues.d.ts +2 -2
- package/dist/components/station-monitor/Queues.js +6 -4
- package/dist/components/station-monitor/QueuesAddMaterial.d.ts +3 -3
- package/dist/components/station-monitor/QueuesAddMaterial.js +20 -7
- package/dist/components/station-monitor/SelectInspType.d.ts +2 -2
- package/dist/components/station-monitor/SelectWorkorder.d.ts +1 -1
- package/dist/components/station-monitor/StationToolbar.d.ts +1 -1
- package/dist/components/station-monitor/StationToolbar.js +13 -3
- package/dist/components/station-monitor/SystemOverview.d.ts +4 -4
- package/dist/components/station-monitor/SystemOverview.js +36 -16
- package/dist/components/station-monitor/Whiteboard.d.ts +1 -1
- package/dist/data/all-material-bins.js +2 -1
- package/dist/data/cost-per-piece.js +3 -1
- package/dist/data/move-arrows.js +3 -1
- package/dist/data/part-summary.js +1 -1
- package/dist/data/results.cycles.js +13 -4
- package/dist/data/tools-programs.js +3 -2
- package/dist/index.html +1 -1
- package/dist/network/api.d.ts +18 -0
- package/dist/network/api.js +502 -371
- package/dist/util/chart-colors.js +12 -1
- package/docs/client-efficiency.md +226 -263
- package/docs/client-engineering.md +27 -28
- package/docs/client-launch.md +32 -33
- package/docs/client-operations.md +50 -53
- package/docs/client-quality.md +39 -43
- package/docs/client-sales.md +36 -40
- package/docs/client-scanners.md +27 -27
- package/docs/client-station-monitor.md +86 -96
- package/docs/client-tools-programs.md +47 -44
- package/docs/improve-fms.md +73 -78
- package/docs/makino.md +21 -25
- package/docs/material-quarantine.md +50 -64
- package/docs/material-tracking.md +162 -195
- package/docs/mazak.md +78 -91
- package/docs/niigata.md +145 -168
- package/docs/operator-procedures.md +72 -76
- package/docs/part-instructions.md +36 -36
- package/docs/security.md +87 -81
- package/docs/server-config.md +36 -45
- package/docs/server-errors.md +21 -22
- package/package.json +25 -24
- 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 &&
|
|
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 ||
|
|
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: {
|
|
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 &&
|
|
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
|
|
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
|
|
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
|
|
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
|
|
29
|
-
export declare function PrintLabelButton(): import("react
|
|
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: {
|
|
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) {
|
|
@@ -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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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, {
|
|
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 &&
|
|
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
|
|
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 &&
|
|
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 &&
|
|
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 &&
|
|
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
|
|
2
|
-
export declare const SelectInspTypeDialog: import("react").MemoExoticComponent<() => import("react
|
|
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
|
|
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
|
|
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({
|
|
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({
|
|
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
|
|
56
|
+
}) => import("react").JSX.Element>;
|
|
57
57
|
export declare function SystemOverviewPage({ ignoreOperator, whiteBackground, }: {
|
|
58
58
|
ignoreOperator?: boolean;
|
|
59
59
|
whiteBackground?: boolean;
|
|
60
|
-
}): import("react
|
|
60
|
+
}): import("react").JSX.Element;
|
|
61
61
|
export declare const SystemOverviewDialogButton: import("react").MemoExoticComponent<({ full, }: {
|
|
62
62
|
full: boolean;
|
|
63
|
-
}) => import("react
|
|
63
|
+
}) => import("react").JSX.Element>;
|
|
64
64
|
export {};
|