@seedtactics/insight-client 17.0.1-beta.1 → 17.0.1-beta.11

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 (44) hide show
  1. package/dist/assets/ProgramHighlight-C6zSEXCX.js +3 -0
  2. package/dist/assets/index-kk-GRa5i.js +388 -0
  3. package/dist/cell-status/inspections.js +0 -20
  4. package/dist/cell-status/material-details.js +7 -1
  5. package/dist/cell-status/material-summary.js +1 -87
  6. package/dist/cell-status/station-cycles.d.ts +1 -0
  7. package/dist/cell-status/station-cycles.js +11 -14
  8. package/dist/components/LogEntry.js +0 -71
  9. package/dist/components/log-entry-container-name.d.ts +2 -2
  10. package/dist/components/log-entry-container-name.js +1 -7
  11. package/dist/components/operations/AllMaterial.js +2 -4
  12. package/dist/components/operations/CompletedParts.js +10 -10
  13. package/dist/components/operations/Programs.js +24 -17
  14. package/dist/components/operations/Rebookings.js +1 -1
  15. package/dist/components/quality/RecentFailedInspections.js +1 -1
  16. package/dist/components/routes.js +1 -2
  17. package/dist/components/station-monitor/BasketLoadStationWork.js +66 -16
  18. package/dist/components/station-monitor/BasketMovementArrival.d.ts +4 -2
  19. package/dist/components/station-monitor/BasketMovementArrival.js +23 -33
  20. package/dist/components/station-monitor/BulkRawMaterial.js +25 -14
  21. package/dist/components/station-monitor/CancelLoadButton.js +3 -1
  22. package/dist/components/station-monitor/InvalidateCycle.d.ts +1 -17
  23. package/dist/components/station-monitor/InvalidateCycle.js +2 -92
  24. package/dist/components/station-monitor/LoadStation.js +36 -18
  25. package/dist/components/station-monitor/Material.js +33 -31
  26. package/dist/components/station-monitor/PrintedLabel.js +2 -2
  27. package/dist/components/station-monitor/QuarantineButton.js +4 -4
  28. package/dist/components/station-monitor/SystemOverview.js +33 -31
  29. package/dist/data/all-material-bins.js +15 -11
  30. package/dist/data/current-cycles.js +6 -3
  31. package/dist/data/inspection-sankey.js +1 -1
  32. package/dist/data/results.completed-parts.js +1 -1
  33. package/dist/data/results.cycles.js +1 -1
  34. package/dist/data/results.schedules.js +1 -1
  35. package/dist/index.html +1 -1
  36. package/dist/network/api.d.ts +33 -50
  37. package/dist/network/api.js +57 -141
  38. package/dist/network/backend-mock.js +0 -3
  39. package/dist/network/backend.d.ts +0 -1
  40. package/docs/mazak.md +13 -0
  41. package/docs/operator-procedures.md +6 -6
  42. package/package.json +20 -20
  43. package/dist/assets/ProgramHighlight-DPTeZ8Si.js +0 -3
  44. package/dist/assets/index-C4HZdhRu.js +0 -388
@@ -59,8 +59,6 @@ export declare class JobsClient {
59
59
  protected processCancelLoad(response: Response): Promise<void>;
60
60
  invalidatePalletCycle(materialId: number, operName: string | null | undefined, changeCastingTo: string | null | undefined, changeJobUniqueTo: string | null | undefined, process: number, signal?: AbortSignal): Promise<MaterialDetails>;
61
61
  protected processInvalidatePalletCycle(response: Response): Promise<MaterialDetails>;
62
- swapMaterialOnPallet(materialId: number, operName: string | null | undefined, mat: MatToPutOnPallet, signal?: AbortSignal): Promise<void>;
63
- protected processSwapMaterialOnPallet(response: Response): Promise<void>;
64
62
  bulkRemoveMaterialFromQueues(operName: string | null | undefined, id: number[], signal?: AbortSignal): Promise<void>;
65
63
  protected processBulkRemoveMaterialFromQueues(response: Response): Promise<void>;
66
64
  decrementQuantities(loadDecrementsStrictlyAfterDecrementId: number | null | undefined, loadDecrementsAfterTimeUTC: Date | null | undefined, signal?: AbortSignal): Promise<JobAndDecrementQuantity[]>;
@@ -148,7 +146,6 @@ export declare class FMSInfo implements IFMSInfo {
148
146
  customStationMonitorDialogUrl?: string | undefined;
149
147
  supportsRebookings?: string | undefined;
150
148
  allowChangeWorkorderAtLoadStation?: boolean | undefined;
151
- allowSwapSerialAtLoadStation?: boolean | undefined;
152
149
  allowInvalidateMaterialAtLoadStation?: boolean | undefined;
153
150
  loadStationNames?: {
154
151
  [key: string]: string;
@@ -179,7 +176,6 @@ export interface IFMSInfo {
179
176
  customStationMonitorDialogUrl?: string | undefined;
180
177
  supportsRebookings?: string | undefined;
181
178
  allowChangeWorkorderAtLoadStation?: boolean | undefined;
182
- allowSwapSerialAtLoadStation?: boolean | undefined;
183
179
  allowInvalidateMaterialAtLoadStation?: boolean | undefined;
184
180
  loadStationNames?: {
185
181
  [key: string]: string;
@@ -202,7 +198,6 @@ export declare class ServerEvent implements IServerEvent {
202
198
  logEntry?: LogEntry | undefined;
203
199
  newJobs?: NewJobs | undefined;
204
200
  newCurrentStatus?: CurrentStatus | undefined;
205
- editMaterialInLog?: EditMaterialInLogEvents | undefined;
206
201
  constructor(data?: IServerEvent);
207
202
  init(_data?: any): void;
208
203
  static fromJS(data: any): ServerEvent;
@@ -212,7 +207,6 @@ export interface IServerEvent {
212
207
  logEntry?: LogEntry | undefined;
213
208
  newJobs?: NewJobs | undefined;
214
209
  newCurrentStatus?: CurrentStatus | undefined;
215
- editMaterialInLog?: EditMaterialInLogEvents | undefined;
216
210
  }
217
211
  export declare class LogEntry implements ILogEntry {
218
212
  counter: number;
@@ -223,8 +217,6 @@ export declare class LogEntry implements ILogEntry {
223
217
  loc: string;
224
218
  locnum: number;
225
219
  pal: number;
226
- basketContentEpisodeId?: string | undefined;
227
- basketCycleEndContentEpisodeIds?: string[] | undefined;
228
220
  program: string;
229
221
  result: string;
230
222
  elapsed: string;
@@ -247,8 +239,6 @@ export interface ILogEntry {
247
239
  loc: string;
248
240
  locnum: number;
249
241
  pal: number;
250
- basketContentEpisodeId?: string | undefined;
251
- basketCycleEndContentEpisodeIds?: string[] | undefined;
252
242
  program: string;
253
243
  result: string;
254
244
  elapsed: string;
@@ -306,14 +296,7 @@ export declare enum LogType {
306
296
  Rebooking = "Rebooking",
307
297
  CancelRebooking = "CancelRebooking",
308
298
  BasketLoadUnload = "BasketLoadUnload",
309
- BasketCycle = "BasketCycle",
310
- BasketInLocation = "BasketInLocation",
311
- BasketContentSnapshot = "BasketContentSnapshot",
312
- BasketRegionSurvey = "BasketRegionSurvey",
313
- BasketMisload = "BasketMisload",
314
- BasketMisloadResolution = "BasketMisloadResolution",
315
- BasketObservation = "BasketObservation",
316
- BasketObservationCorrection = "BasketObservationCorrection"
299
+ BasketCycle = "BasketCycle"
317
300
  }
318
301
  export declare class ToolUse implements IToolUse {
319
302
  tool: string;
@@ -1071,7 +1054,9 @@ export declare enum WorkorderSerialCloseout {
1071
1054
  }
1072
1055
  export declare class BasketStatus implements IBasketStatus {
1073
1056
  basketId: number;
1074
- position: BasketPosition;
1057
+ slotCount?: number | undefined;
1058
+ loadStationWork?: BasketLoadStationWork | undefined;
1059
+ position?: BasketPosition | undefined;
1075
1060
  emptySlots?: number[];
1076
1061
  unknownSlots?: number[];
1077
1062
  constructor(data?: IBasketStatus);
@@ -1081,10 +1066,34 @@ export declare class BasketStatus implements IBasketStatus {
1081
1066
  }
1082
1067
  export interface IBasketStatus {
1083
1068
  basketId: number;
1084
- position: BasketPosition;
1069
+ slotCount?: number | undefined;
1070
+ loadStationWork?: BasketLoadStationWork | undefined;
1071
+ position?: BasketPosition | undefined;
1085
1072
  emptySlots?: number[];
1086
1073
  unknownSlots?: number[];
1087
1074
  }
1075
+ export declare class BasketLoadStationWork implements IBasketLoadStationWork {
1076
+ workId: string;
1077
+ type: BasketLoadStationWorkType;
1078
+ readyToConfirm: boolean;
1079
+ confirmationBlockedReason?: string | undefined;
1080
+ awaitingMaterialSlots?: number[];
1081
+ constructor(data?: IBasketLoadStationWork);
1082
+ init(_data?: any): void;
1083
+ static fromJS(data: any): BasketLoadStationWork;
1084
+ toJSON(data?: any): any;
1085
+ }
1086
+ export interface IBasketLoadStationWork {
1087
+ workId: string;
1088
+ type: BasketLoadStationWorkType;
1089
+ readyToConfirm: boolean;
1090
+ confirmationBlockedReason?: string | undefined;
1091
+ awaitingMaterialSlots?: number[];
1092
+ }
1093
+ export declare enum BasketLoadStationWorkType {
1094
+ Material = "Material",
1095
+ ConfirmEmptyBasket = "ConfirmEmptyBasket"
1096
+ }
1088
1097
  export declare class BasketPosition implements IBasketPosition {
1089
1098
  location: BasketLocationEnum;
1090
1099
  locationNum: number;
@@ -1109,8 +1118,8 @@ export declare enum BasketLocationEnum {
1109
1118
  }
1110
1119
  export declare class BasketMoveInstruction implements IBasketMoveInstruction {
1111
1120
  instructionId: string;
1112
- basketId?: number | undefined;
1113
- source: BasketPosition;
1121
+ basketId: number;
1122
+ source?: BasketPosition | undefined;
1114
1123
  destination: BasketPosition;
1115
1124
  reason: BasketMoveReason;
1116
1125
  displayText: string;
@@ -1122,8 +1131,8 @@ export declare class BasketMoveInstruction implements IBasketMoveInstruction {
1122
1131
  }
1123
1132
  export interface IBasketMoveInstruction {
1124
1133
  instructionId: string;
1125
- basketId?: number | undefined;
1126
- source: BasketPosition;
1134
+ basketId: number;
1135
+ source?: BasketPosition | undefined;
1127
1136
  destination: BasketPosition;
1128
1137
  reason: BasketMoveReason;
1129
1138
  displayText: string;
@@ -1139,20 +1148,6 @@ export declare enum BasketMoveReason {
1139
1148
  RemoveForCorrection = "RemoveForCorrection",
1140
1149
  Other = "Other"
1141
1150
  }
1142
- export declare class EditMaterialInLogEvents implements IEditMaterialInLogEvents {
1143
- oldMaterialID: number;
1144
- newMaterialID: number;
1145
- editedEvents: LogEntry[];
1146
- constructor(data?: IEditMaterialInLogEvents);
1147
- init(_data?: any): void;
1148
- static fromJS(data: any): EditMaterialInLogEvents;
1149
- toJSON(data?: any): any;
1150
- }
1151
- export interface IEditMaterialInLogEvents {
1152
- oldMaterialID: number;
1153
- newMaterialID: number;
1154
- editedEvents: LogEntry[];
1155
- }
1156
1151
  export declare class ProblemDetails implements IProblemDetails {
1157
1152
  type?: string | undefined;
1158
1153
  title?: string | undefined;
@@ -1389,18 +1384,6 @@ export interface ICancelLoadRequest {
1389
1384
  expectedLoadCancellationId: string;
1390
1385
  reason?: string | undefined;
1391
1386
  }
1392
- export declare class MatToPutOnPallet implements IMatToPutOnPallet {
1393
- pallet: number;
1394
- materialIDToSetOnPallet: number;
1395
- constructor(data?: IMatToPutOnPallet);
1396
- init(_data?: any): void;
1397
- static fromJS(data: any): MatToPutOnPallet;
1398
- toJSON(data?: any): any;
1399
- }
1400
- export interface IMatToPutOnPallet {
1401
- pallet: number;
1402
- materialIDToSetOnPallet: number;
1403
- }
1404
1387
  export declare class JobAndDecrementQuantity implements IJobAndDecrementQuantity {
1405
1388
  decrementId: number;
1406
1389
  jobUnique: string;
@@ -1033,45 +1033,6 @@ export class JobsClient {
1033
1033
  }
1034
1034
  return Promise.resolve(null);
1035
1035
  }
1036
- swapMaterialOnPallet(materialId, operName, mat, signal) {
1037
- let url_ = this.baseUrl + "/api/v1/jobs/material/{materialId}/swap-off-pallet?";
1038
- if (materialId === undefined || materialId === null)
1039
- throw new globalThis.Error("The parameter 'materialId' must be defined.");
1040
- url_ = url_.replace("{materialId}", encodeURIComponent("" + materialId));
1041
- if (operName !== undefined && operName !== null)
1042
- url_ += "operName=" + encodeURIComponent("" + operName) + "&";
1043
- url_ = url_.replace(/[?&]$/, "");
1044
- const content_ = JSON.stringify(mat);
1045
- let options_ = {
1046
- body: content_,
1047
- method: "PUT",
1048
- signal,
1049
- headers: {
1050
- "Content-Type": "application/json",
1051
- },
1052
- };
1053
- return this.http.fetch(url_, options_).then((_response) => {
1054
- return this.processSwapMaterialOnPallet(_response);
1055
- });
1056
- }
1057
- processSwapMaterialOnPallet(response) {
1058
- const status = response.status;
1059
- let _headers = {};
1060
- if (response.headers && response.headers.forEach) {
1061
- response.headers.forEach((v, k) => (_headers[k] = v));
1062
- }
1063
- if (status === 200) {
1064
- return response.text().then((_responseText) => {
1065
- return;
1066
- });
1067
- }
1068
- else if (status !== 200 && status !== 204) {
1069
- return response.text().then((_responseText) => {
1070
- return throwException("An unexpected server error occurred.", status, _responseText, _headers);
1071
- });
1072
- }
1073
- return Promise.resolve(null);
1074
- }
1075
1036
  bulkRemoveMaterialFromQueues(operName, id, signal) {
1076
1037
  let url_ = this.baseUrl + "/api/v1/jobs/material?";
1077
1038
  if (operName !== undefined && operName !== null)
@@ -2376,7 +2337,6 @@ export class FMSInfo {
2376
2337
  this.customStationMonitorDialogUrl = _data["CustomStationMonitorDialogUrl"];
2377
2338
  this.supportsRebookings = _data["SupportsRebookings"];
2378
2339
  this.allowChangeWorkorderAtLoadStation = _data["AllowChangeWorkorderAtLoadStation"];
2379
- this.allowSwapSerialAtLoadStation = _data["AllowSwapSerialAtLoadStation"];
2380
2340
  this.allowInvalidateMaterialAtLoadStation = _data["AllowInvalidateMaterialAtLoadStation"];
2381
2341
  if (_data["LoadStationNames"]) {
2382
2342
  this.loadStationNames = {};
@@ -2423,7 +2383,6 @@ export class FMSInfo {
2423
2383
  data["CustomStationMonitorDialogUrl"] = this.customStationMonitorDialogUrl;
2424
2384
  data["SupportsRebookings"] = this.supportsRebookings;
2425
2385
  data["AllowChangeWorkorderAtLoadStation"] = this.allowChangeWorkorderAtLoadStation;
2426
- data["AllowSwapSerialAtLoadStation"] = this.allowSwapSerialAtLoadStation;
2427
2386
  data["AllowInvalidateMaterialAtLoadStation"] = this.allowInvalidateMaterialAtLoadStation;
2428
2387
  if (this.loadStationNames) {
2429
2388
  data["LoadStationNames"] = {};
@@ -2467,9 +2426,6 @@ export class ServerEvent {
2467
2426
  this.newCurrentStatus = _data["NewCurrentStatus"]
2468
2427
  ? CurrentStatus.fromJS(_data["NewCurrentStatus"])
2469
2428
  : undefined;
2470
- this.editMaterialInLog = _data["EditMaterialInLog"]
2471
- ? EditMaterialInLogEvents.fromJS(_data["EditMaterialInLog"])
2472
- : undefined;
2473
2429
  }
2474
2430
  }
2475
2431
  static fromJS(data) {
@@ -2485,9 +2441,6 @@ export class ServerEvent {
2485
2441
  data["NewCurrentStatus"] = this.newCurrentStatus
2486
2442
  ? this.newCurrentStatus.toJSON()
2487
2443
  : undefined;
2488
- data["EditMaterialInLog"] = this.editMaterialInLog
2489
- ? this.editMaterialInLog.toJSON()
2490
- : undefined;
2491
2444
  return data;
2492
2445
  }
2493
2446
  }
@@ -2517,12 +2470,6 @@ export class LogEntry {
2517
2470
  this.loc = _data["loc"];
2518
2471
  this.locnum = _data["locnum"];
2519
2472
  this.pal = _data["pal"];
2520
- this.basketContentEpisodeId = _data["basketContentEpisodeId"];
2521
- if (Array.isArray(_data["basketCycleEndContentEpisodeIds"])) {
2522
- this.basketCycleEndContentEpisodeIds = [];
2523
- for (let item of _data["basketCycleEndContentEpisodeIds"])
2524
- this.basketCycleEndContentEpisodeIds.push(item);
2525
- }
2526
2473
  this.program = _data["program"];
2527
2474
  this.result = _data["result"];
2528
2475
  this.elapsed = _data["elapsed"];
@@ -2561,12 +2508,6 @@ export class LogEntry {
2561
2508
  data["loc"] = this.loc;
2562
2509
  data["locnum"] = this.locnum;
2563
2510
  data["pal"] = this.pal;
2564
- data["basketContentEpisodeId"] = this.basketContentEpisodeId;
2565
- if (Array.isArray(this.basketCycleEndContentEpisodeIds)) {
2566
- data["basketCycleEndContentEpisodeIds"] = [];
2567
- for (let item of this.basketCycleEndContentEpisodeIds)
2568
- data["basketCycleEndContentEpisodeIds"].push(item);
2569
- }
2570
2511
  data["program"] = this.program;
2571
2512
  data["result"] = this.result;
2572
2513
  data["elapsed"] = this.elapsed;
@@ -2652,13 +2593,6 @@ export var LogType;
2652
2593
  LogType["CancelRebooking"] = "CancelRebooking";
2653
2594
  LogType["BasketLoadUnload"] = "BasketLoadUnload";
2654
2595
  LogType["BasketCycle"] = "BasketCycle";
2655
- LogType["BasketInLocation"] = "BasketInLocation";
2656
- LogType["BasketContentSnapshot"] = "BasketContentSnapshot";
2657
- LogType["BasketRegionSurvey"] = "BasketRegionSurvey";
2658
- LogType["BasketMisload"] = "BasketMisload";
2659
- LogType["BasketMisloadResolution"] = "BasketMisloadResolution";
2660
- LogType["BasketObservation"] = "BasketObservation";
2661
- LogType["BasketObservationCorrection"] = "BasketObservationCorrection";
2662
2596
  })(LogType || (LogType = {}));
2663
2597
  export class ToolUse {
2664
2598
  constructor(data) {
@@ -4427,16 +4361,17 @@ export class BasketStatus {
4427
4361
  this[property] = data[property];
4428
4362
  }
4429
4363
  }
4430
- if (!data) {
4431
- this.position = new BasketPosition();
4432
- }
4433
4364
  }
4434
4365
  init(_data) {
4435
4366
  if (_data) {
4436
4367
  this.basketId = _data["BasketId"];
4368
+ this.slotCount = _data["SlotCount"];
4369
+ this.loadStationWork = _data["LoadStationWork"]
4370
+ ? BasketLoadStationWork.fromJS(_data["LoadStationWork"])
4371
+ : undefined;
4437
4372
  this.position = _data["Position"]
4438
4373
  ? BasketPosition.fromJS(_data["Position"])
4439
- : new BasketPosition();
4374
+ : undefined;
4440
4375
  if (Array.isArray(_data["EmptySlots"])) {
4441
4376
  this.emptySlots = [];
4442
4377
  for (let item of _data["EmptySlots"])
@@ -4458,6 +4393,10 @@ export class BasketStatus {
4458
4393
  toJSON(data) {
4459
4394
  data = typeof data === "object" ? data : {};
4460
4395
  data["BasketId"] = this.basketId;
4396
+ data["SlotCount"] = this.slotCount;
4397
+ data["LoadStationWork"] = this.loadStationWork
4398
+ ? this.loadStationWork.toJSON()
4399
+ : undefined;
4461
4400
  data["Position"] = this.position ? this.position.toJSON() : undefined;
4462
4401
  if (Array.isArray(this.emptySlots)) {
4463
4402
  data["EmptySlots"] = [];
@@ -4472,6 +4411,53 @@ export class BasketStatus {
4472
4411
  return data;
4473
4412
  }
4474
4413
  }
4414
+ export class BasketLoadStationWork {
4415
+ constructor(data) {
4416
+ if (data) {
4417
+ for (var property in data) {
4418
+ if (data.hasOwnProperty(property))
4419
+ this[property] = data[property];
4420
+ }
4421
+ }
4422
+ }
4423
+ init(_data) {
4424
+ if (_data) {
4425
+ this.workId = _data["WorkId"];
4426
+ this.type = _data["Type"];
4427
+ this.readyToConfirm = _data["ReadyToConfirm"];
4428
+ this.confirmationBlockedReason = _data["ConfirmationBlockedReason"];
4429
+ if (Array.isArray(_data["AwaitingMaterialSlots"])) {
4430
+ this.awaitingMaterialSlots = [];
4431
+ for (let item of _data["AwaitingMaterialSlots"])
4432
+ this.awaitingMaterialSlots.push(item);
4433
+ }
4434
+ }
4435
+ }
4436
+ static fromJS(data) {
4437
+ data = typeof data === "object" ? data : {};
4438
+ let result = new BasketLoadStationWork();
4439
+ result.init(data);
4440
+ return result;
4441
+ }
4442
+ toJSON(data) {
4443
+ data = typeof data === "object" ? data : {};
4444
+ data["WorkId"] = this.workId;
4445
+ data["Type"] = this.type;
4446
+ data["ReadyToConfirm"] = this.readyToConfirm;
4447
+ data["ConfirmationBlockedReason"] = this.confirmationBlockedReason;
4448
+ if (Array.isArray(this.awaitingMaterialSlots)) {
4449
+ data["AwaitingMaterialSlots"] = [];
4450
+ for (let item of this.awaitingMaterialSlots)
4451
+ data["AwaitingMaterialSlots"].push(item);
4452
+ }
4453
+ return data;
4454
+ }
4455
+ }
4456
+ export var BasketLoadStationWorkType;
4457
+ (function (BasketLoadStationWorkType) {
4458
+ BasketLoadStationWorkType["Material"] = "Material";
4459
+ BasketLoadStationWorkType["ConfirmEmptyBasket"] = "ConfirmEmptyBasket";
4460
+ })(BasketLoadStationWorkType || (BasketLoadStationWorkType = {}));
4475
4461
  export class BasketPosition {
4476
4462
  constructor(data) {
4477
4463
  if (data) {
@@ -4520,7 +4506,6 @@ export class BasketMoveInstruction {
4520
4506
  }
4521
4507
  }
4522
4508
  if (!data) {
4523
- this.source = new BasketPosition();
4524
4509
  this.destination = new BasketPosition();
4525
4510
  }
4526
4511
  }
@@ -4528,7 +4513,7 @@ export class BasketMoveInstruction {
4528
4513
  if (_data) {
4529
4514
  this.instructionId = _data["InstructionId"];
4530
4515
  this.basketId = _data["BasketId"];
4531
- this.source = _data["Source"] ? BasketPosition.fromJS(_data["Source"]) : new BasketPosition();
4516
+ this.source = _data["Source"] ? BasketPosition.fromJS(_data["Source"]) : undefined;
4532
4517
  this.destination = _data["Destination"]
4533
4518
  ? BasketPosition.fromJS(_data["Destination"])
4534
4519
  : new BasketPosition();
@@ -4566,47 +4551,6 @@ export var BasketMoveReason;
4566
4551
  BasketMoveReason["RemoveForCorrection"] = "RemoveForCorrection";
4567
4552
  BasketMoveReason["Other"] = "Other";
4568
4553
  })(BasketMoveReason || (BasketMoveReason = {}));
4569
- export class EditMaterialInLogEvents {
4570
- constructor(data) {
4571
- if (data) {
4572
- for (var property in data) {
4573
- if (data.hasOwnProperty(property))
4574
- this[property] = data[property];
4575
- }
4576
- }
4577
- if (!data) {
4578
- this.editedEvents = [];
4579
- }
4580
- }
4581
- init(_data) {
4582
- if (_data) {
4583
- this.oldMaterialID = _data["OldMaterialID"];
4584
- this.newMaterialID = _data["NewMaterialID"];
4585
- if (Array.isArray(_data["EditedEvents"])) {
4586
- this.editedEvents = [];
4587
- for (let item of _data["EditedEvents"])
4588
- this.editedEvents.push(LogEntry.fromJS(item));
4589
- }
4590
- }
4591
- }
4592
- static fromJS(data) {
4593
- data = typeof data === "object" ? data : {};
4594
- let result = new EditMaterialInLogEvents();
4595
- result.init(data);
4596
- return result;
4597
- }
4598
- toJSON(data) {
4599
- data = typeof data === "object" ? data : {};
4600
- data["OldMaterialID"] = this.oldMaterialID;
4601
- data["NewMaterialID"] = this.newMaterialID;
4602
- if (Array.isArray(this.editedEvents)) {
4603
- data["EditedEvents"] = [];
4604
- for (let item of this.editedEvents)
4605
- data["EditedEvents"].push(item ? item.toJSON() : undefined);
4606
- }
4607
- return data;
4608
- }
4609
- }
4610
4554
  export class ProblemDetails {
4611
4555
  constructor(data) {
4612
4556
  if (data) {
@@ -5223,34 +5167,6 @@ export class CancelLoadRequest {
5223
5167
  return data;
5224
5168
  }
5225
5169
  }
5226
- export class MatToPutOnPallet {
5227
- constructor(data) {
5228
- if (data) {
5229
- for (var property in data) {
5230
- if (data.hasOwnProperty(property))
5231
- this[property] = data[property];
5232
- }
5233
- }
5234
- }
5235
- init(_data) {
5236
- if (_data) {
5237
- this.pallet = _data["Pallet"];
5238
- this.materialIDToSetOnPallet = _data["MaterialIDToSetOnPallet"];
5239
- }
5240
- }
5241
- static fromJS(data) {
5242
- data = typeof data === "object" ? data : {};
5243
- let result = new MatToPutOnPallet();
5244
- result.init(data);
5245
- return result;
5246
- }
5247
- toJSON(data) {
5248
- data = typeof data === "object" ? data : {};
5249
- data["Pallet"] = this.pallet;
5250
- data["MaterialIDToSetOnPallet"] = this.materialIDToSetOnPallet;
5251
- return data;
5252
- }
5253
- }
5254
5170
  export class JobAndDecrementQuantity {
5255
5171
  constructor(data) {
5256
5172
  if (data) {
@@ -232,9 +232,6 @@ export function registerMockBackend(offsetSeconds, mockD, mockEvts) {
232
232
  cancelLoad() {
233
233
  return Promise.resolve();
234
234
  },
235
- swapMaterialOnPallet() {
236
- return Promise.resolve();
237
- },
238
235
  invalidatePalletCycle() {
239
236
  return Promise.resolve(null);
240
237
  },
@@ -13,7 +13,6 @@ export interface JobAPI {
13
13
  signalMaterialForQuarantine(materialId: number, operName: string | null, reason: string | undefined): Promise<void>;
14
14
  quarantineQueuedMaterial(materialId: number, operName: string | null, reason: string | undefined): Promise<void>;
15
15
  cancelLoad(materialId: number, operName: string | null, request: Readonly<api.ICancelLoadRequest>): Promise<void>;
16
- swapMaterialOnPallet(materialId: number, operName: string | null, mat: Readonly<api.IMatToPutOnPallet>): Promise<void>;
17
16
  invalidatePalletCycle(materialId: number, operName: string | null | undefined, changeCastingTo: string | null | undefined, changeJobUniqueTo: string | null | undefined, process: number): Promise<Readonly<api.IMaterialDetails> | null | undefined>;
18
17
  unscheduledRebookings(signal?: AbortSignal): Promise<ReadonlyArray<Readonly<api.IRebooking>> | null>;
19
18
  }
package/docs/mazak.md CHANGED
@@ -13,6 +13,19 @@ FMS Insight works with all Palletech cell controller versions from Mazak: Versio
13
13
  and Smooth PMC. FMS Insight can read all events from the cell controller and can also edit almost
14
14
  all the data in the cell controller.
15
15
 
16
+ ## Load station numbering
17
+
18
+ In the Mazak configuration section, Load Station Numbers = 10,30 maps controller L/U 1 to Insight
19
+ station 10 and controller L/U 2 to Insight station 30. This works like Machine Numbers: list
20
+ positions identify controller equipment, while values identify equipment in jobs, logs and APIs.
21
+ Both job downloads and status/event reads translate through the same map. Station display names are
22
+ maintained separately.
23
+
24
+ Omitting the list preserves identity numbering. Explicit lists must contain unique positive IDs and
25
+ cover every controller L/U station used. Job routes outside the map are rejected. The old Starting
26
+ Load Station Number setting has been removed and is rejected; replace it with an explicit list when
27
+ updating configuration.
28
+
16
29
  ## Open Database Kit
17
30
 
18
31
  To facilitate the communication between FMS Insight and the Mazak cell controller, you must acquire
@@ -94,9 +94,9 @@ quarantine queue. That material can then be re-introduced back into the queue so
94
94
  FMS Insight matches the material on the shop floor. In addition, FMS Insight allows the ability to
95
95
  invalidate the inadvertent load events that were created.
96
96
 
97
- Finally, in certain situations depending on the specific configuration of the jobs and queues, FMS
98
- Insight supports a serial swap. FMS Insight assumes the material that is loaded is the first
99
- material in the queue which matches the job the cell controller expects. If the serial actually
100
- loaded is different but the job and details match, the supervisor can swap the two serials on the
101
- supervisor's material page. This is a data-only change and no change is made to the cell controller.
102
- If a swap cannot be performed, the material must be quarantined and invalidated as described above.
97
+ Insight does not reassign recorded pallet manufacturing history from one material identity to
98
+ another. If machining was attributed to the wrong identity, record an explanatory operator note and
99
+ use the installation's traceability exception procedure. Quarantine, invalidation, and readmission
100
+ do not transfer that manufacturing result to a different identity. Do not repeat machining solely to
101
+ repair the record. Ordinary serial-label assignment remains available when the tracked material
102
+ identity is correct and only its label needs correction.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@seedtactics/insight-client",
3
- "version": "17.0.1-beta.1",
3
+ "version": "17.0.1-beta.11",
4
4
  "license": "BSD-3-Clause",
5
5
  "repository": {
6
6
  "url": "https://github.com/SeedTactics/fms-insight"
@@ -28,8 +28,8 @@
28
28
  "@emotion/react": "^11.14.0",
29
29
  "@emotion/styled": "^11.14.1",
30
30
  "@fontsource/roboto": "^5.3.0",
31
- "@mui/icons-material": "^9.2.0",
32
- "@mui/material": "^9.2.0",
31
+ "@mui/icons-material": "^9.4.0",
32
+ "@mui/material": "^9.4.0",
33
33
  "@react-spring/rafz": "^10.1.2",
34
34
  "@react-spring/web": "^10.1.2",
35
35
  "@seedtactics/immutable-collections": "^1.1.1",
@@ -40,41 +40,41 @@
40
40
  "d3-scale": "^4.0.2",
41
41
  "d3-shape": "^3.2.0",
42
42
  "date-fns": "^4.4.0",
43
- "highlight.js": "^11.11.1",
43
+ "highlight.js": "^11.12.0",
44
44
  "jdenticon": "^3.3.0",
45
- "jotai": "^2.20.2",
46
- "jotai-family": "^1.0.2",
45
+ "jotai": "^2.20.3",
46
+ "jotai-family": "^1.1.0",
47
47
  "jsbarcode": "^3.12.3",
48
48
  "oidc-client-ts": "^3.5.0",
49
49
  "react": "^19.2.8",
50
50
  "react-calendar": "^6.0.1",
51
51
  "react-dom": "^19.2.8",
52
- "react-error-boundary": "^6.1.2",
52
+ "react-error-boundary": "^6.1.4",
53
53
  "react-resize-detector": "^12.3.0",
54
54
  "react-timeago": "^8.3.0",
55
55
  "react-to-print": "^3.3.0",
56
56
  "urlpattern-polyfill": "^10.1.0"
57
57
  },
58
58
  "devDependencies": {
59
- "@faker-js/faker": "^10.5.0",
59
+ "@faker-js/faker": "^10.6.0",
60
60
  "@types/d3-interpolate-path": "^2.0.3",
61
61
  "@types/d3-sankey": "^0.12.5",
62
62
  "@types/d3-scale": "^4.0.9",
63
- "@types/d3-shape": "^3.1.8",
64
- "@types/node": "^26.1.2",
65
- "@types/react": "^19.2.17",
66
- "@types/react-dom": "^19.2.3",
67
- "@vitejs/plugin-react": "^6.0.4",
68
- "@vitest/browser-playwright": "^4.1.10",
63
+ "@types/d3-shape": "^3.2.0",
64
+ "@types/node": "^26.4.1",
65
+ "@types/react": "^19.2.18",
66
+ "@types/react-dom": "^19.2.5",
67
+ "@vitejs/plugin-react": "^6.1.1",
68
+ "@vitest/browser-playwright": "^4.1.11",
69
69
  "jsdom": "^30.0.1",
70
70
  "nswag": "^14.7.1",
71
- "oxfmt": "^0.61.0",
72
- "oxlint": "^1.76.0",
71
+ "oxfmt": "^0.66.0",
72
+ "oxlint": "^1.81.0",
73
73
  "oxlint-tsgolint": "^7.0.2001",
74
- "playwright": "^1.62.0",
74
+ "playwright": "^1.62.1",
75
75
  "typescript": "^7.0.2",
76
- "vite": "^8.1.5",
77
- "vitest": "^4.1.10",
76
+ "vite": "^8.2.2",
77
+ "vitest": "^4.1.11",
78
78
  "vitest-browser-react": "^2.2.0"
79
79
  },
80
80
  "scripts": {
@@ -85,6 +85,6 @@
85
85
  "start": "vite",
86
86
  "test:unit": "vitest run --project unit",
87
87
  "test:integration": "vitest run --browser.headless --project integration",
88
- "nswag": "./node_modules/nswag/bin/nswag.js aspnetcore2openapi /project:../../server/debug-mock /output:../../server/fms-insight-api.json && ./node_modules/nswag/bin/nswag.js openapi2tsclient /UseAbortSignal:true /input:../../server/fms-insight-api.json /output:src/network/api.ts"
88
+ "nswag": "./node_modules/nswag/bin/nswag.js aspnetcore2openapi /project:../../server/debug-mock /output:../../server/fms-insight-api.json && ./node_modules/nswag/bin/nswag.js openapi2tsclient /UseAbortSignal:true /input:../../server/fms-insight-api.json /output:src/network/api.ts && node scripts/normalize-generated-api.mjs"
89
89
  }
90
90
  }