@seedtactics/insight-client 17.0.1-beta.14 → 17.0.1-beta.15

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.
@@ -143,6 +143,7 @@ export function BasketLoadStationWorkflow({ basket, material, fsize, }) {
143
143
  const [submission, setSubmission] = useState();
144
144
  const workState = useMemo(() => stationWork(material, basket), [basket, material]);
145
145
  const blockedReason = basket.loadStationWork?.confirmationBlockedReason?.trim();
146
+ const instructionWarning = basket.loadStationWork?.instructionWarning?.trim();
146
147
  const work = workState.type === "active" ? workState.work : undefined;
147
148
  const submissionState = submission !== undefined &&
148
149
  submission.workId === work?.workId &&
@@ -205,7 +206,7 @@ export function BasketLoadStationWorkflow({ basket, material, fsize, }) {
205
206
  }, children: _jsxs(Box, { component: "section", "data-testid": `basket-load-station-slot-${slot}`, sx: { border: "1px solid", borderColor: "text.primary", p: 2 }, children: [_jsxs(Typography, { variant: "h6", children: ["Slot ", basketSlotLabel(slot)] }), loads.length > 0 &&
206
207
  slotMaterial.some((mat) => mat.action.type === api.ActionType.UnloadToInProcess ||
207
208
  mat.action.type === api.ActionType.UnloadToCompletedMaterial) && (_jsx(Typography, { children: "Unload the current material before preparing the replacement." })), slotMaterial.length > 0 ? (_jsx(SlotMaterial, { material: slotMaterial, fsize: fsize })) : (_jsx(Typography, { color: isUnknown ? "warning.main" : "text.secondary", children: isUnknown ? "Unknown" : "Empty" })), loads.map((mat, index) => (_jsxs(Box, { sx: { mt: 1 }, children: [_jsx(Typography, { children: loadingInstruction(mat) }), _jsxs(Typography, { variant: "body2", color: "text.secondary", children: [mat.partName, " \u00B7 Process ", mat.action.processAfterLoad ?? mat.process] })] }, `${mat.jobUnique}-${mat.process}-${index}`)))] }) }, slot));
208
- }) }), work?.confirmEmpty && _jsxs(Typography, { children: ["Confirm basket ", basket.basketId, " is empty."] }), work && !work.ready && (_jsx(Alert, { severity: "info", children: blockedReason ||
209
+ }) }), work?.confirmEmpty && _jsxs(Typography, { children: ["Confirm basket ", basket.basketId, " is empty."] }), instructionWarning && _jsx(Alert, { severity: "warning", children: instructionWarning }), work && !work.ready && (_jsx(Alert, { severity: "info", children: blockedReason ||
209
210
  (work.awaitingSlots.length > 0
210
211
  ? `Waiting for material for slots ${work.awaitingSlots.map(basketSlotLabel).join(", ")}.`
211
212
  : "Basket work is not ready for confirmation.") })), work ? (_jsx(Box, { sx: { display: "flex", justifyContent: "flex-end" }, children: _jsx(Button, { variant: "contained", disabled: submissionDisabled, onClick: () => void submit(), children: "Confirm" }) })) : workState.type === "inconsistent" ? (_jsx(Alert, { severity: "warning", children: "Basket work is inconsistent. Wait for refreshed material actions before confirming." })) : null, submissionState === "accepted" ? (_jsx(Alert, { severity: "success", children: "Confirmation accepted. Waiting for refreshed work." })) : submissionState === "conflict" ? (_jsx(Alert, { severity: "warning", children: "Basket work changed before confirmation. Review the refreshed slots and try again." })) : submissionState === "error" ? (_jsx(Alert, { severity: "error", children: "Unable to confirm basket work. No work was assumed complete." })) : null] }));
package/dist/index.html CHANGED
@@ -6,7 +6,7 @@
6
6
  <link rel="shortcut icon" href="/assets/favicon-gWFxiJK2.ico" />
7
7
  <title>SeedTactic FMS Insight</title>
8
8
  <style type="text/css">.download-loader{width:100px;height:100px;display:inline-block}.download-circular{width:100px;height:100px;animation:2s linear infinite rotate}.download-path{stroke-dasharray:1 200;stroke-dashoffset:0;stroke-linecap:round;stroke:#8d6e63;animation:1.5s ease-out infinite dash}@keyframes rotate{to{transform:rotate(360deg)}}@keyframes dash{0%{stroke-dasharray:1 200;stroke-dashoffset:0}50%{stroke-dasharray:89 200;stroke-dashoffset:-35px}to{stroke-dasharray:89 200;stroke-dashoffset:-124px}}</style>
9
- <script type="module" crossorigin src="/assets/index-DWZg8nkq.js"></script>
9
+ <script type="module" crossorigin src="/assets/index-Z6GAS_qc.js"></script>
10
10
  <link rel="stylesheet" crossorigin href="/assets/index-DXfAwuj-.css">
11
11
  </head>
12
12
  <body>
@@ -1079,6 +1079,7 @@ export declare class BasketLoadStationWork implements IBasketLoadStationWork {
1079
1079
  type: BasketLoadStationWorkType;
1080
1080
  readyToConfirm: boolean;
1081
1081
  confirmationBlockedReason?: string | undefined;
1082
+ instructionWarning?: string | undefined;
1082
1083
  awaitingMaterialSlots?: number[];
1083
1084
  constructor(data?: IBasketLoadStationWork);
1084
1085
  init(_data?: any): void;
@@ -1090,6 +1091,7 @@ export interface IBasketLoadStationWork {
1090
1091
  type: BasketLoadStationWorkType;
1091
1092
  readyToConfirm: boolean;
1092
1093
  confirmationBlockedReason?: string | undefined;
1094
+ instructionWarning?: string | undefined;
1093
1095
  awaitingMaterialSlots?: number[];
1094
1096
  }
1095
1097
  export declare enum BasketLoadStationWorkType {
@@ -4452,6 +4452,7 @@ export class BasketLoadStationWork {
4452
4452
  this.type = _data["Type"];
4453
4453
  this.readyToConfirm = _data["ReadyToConfirm"];
4454
4454
  this.confirmationBlockedReason = _data["ConfirmationBlockedReason"];
4455
+ this.instructionWarning = _data["InstructionWarning"];
4455
4456
  if (Array.isArray(_data["AwaitingMaterialSlots"])) {
4456
4457
  this.awaitingMaterialSlots = [];
4457
4458
  for (let item of _data["AwaitingMaterialSlots"])
@@ -4471,6 +4472,7 @@ export class BasketLoadStationWork {
4471
4472
  data["Type"] = this.type;
4472
4473
  data["ReadyToConfirm"] = this.readyToConfirm;
4473
4474
  data["ConfirmationBlockedReason"] = this.confirmationBlockedReason;
4475
+ data["InstructionWarning"] = this.instructionWarning;
4474
4476
  if (Array.isArray(this.awaitingMaterialSlots)) {
4475
4477
  data["AwaitingMaterialSlots"] = [];
4476
4478
  for (let item of this.awaitingMaterialSlots)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@seedtactics/insight-client",
3
- "version": "17.0.1-beta.14",
3
+ "version": "17.0.1-beta.15",
4
4
  "license": "BSD-3-Clause",
5
5
  "repository": {
6
6
  "url": "https://github.com/SeedTactics/fms-insight"
@@ -63,7 +63,7 @@
63
63
  "@types/react-dom": "^19.3.0",
64
64
  "@vitejs/plugin-react": "^6.1.1",
65
65
  "@vitest/browser-playwright": "^5.0.2",
66
- "jotai": "^3.0.0",
66
+ "jotai": "^3.0.1",
67
67
  "jsdom": "^30.1.1",
68
68
  "nswag": "^14.7.1",
69
69
  "oxfmt": "^0.71.0",
@@ -78,7 +78,7 @@
78
78
  "vitest-browser-react": "^2.3.0"
79
79
  },
80
80
  "peerDependencies": {
81
- "jotai": "^3.0.0",
81
+ "jotai": "^3.0.1",
82
82
  "react": "^19.3.0",
83
83
  "react-dom": "^19.3.0"
84
84
  },