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

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-BaeSfExJ.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 +31 -50
  37. package/dist/network/api.js +55 -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,8 @@ export declare enum WorkorderSerialCloseout {
1071
1054
  }
1072
1055
  export declare class BasketStatus implements IBasketStatus {
1073
1056
  basketId: number;
1074
- position: BasketPosition;
1057
+ loadStationWork?: BasketLoadStationWork | undefined;
1058
+ position?: BasketPosition | undefined;
1075
1059
  emptySlots?: number[];
1076
1060
  unknownSlots?: number[];
1077
1061
  constructor(data?: IBasketStatus);
@@ -1081,10 +1065,33 @@ export declare class BasketStatus implements IBasketStatus {
1081
1065
  }
1082
1066
  export interface IBasketStatus {
1083
1067
  basketId: number;
1084
- position: BasketPosition;
1068
+ loadStationWork?: BasketLoadStationWork | undefined;
1069
+ position?: BasketPosition | undefined;
1085
1070
  emptySlots?: number[];
1086
1071
  unknownSlots?: number[];
1087
1072
  }
1073
+ export declare class BasketLoadStationWork implements IBasketLoadStationWork {
1074
+ workId: string;
1075
+ type: BasketLoadStationWorkType;
1076
+ readyToConfirm: boolean;
1077
+ confirmationBlockedReason?: string | undefined;
1078
+ awaitingMaterialSlots?: number[];
1079
+ constructor(data?: IBasketLoadStationWork);
1080
+ init(_data?: any): void;
1081
+ static fromJS(data: any): BasketLoadStationWork;
1082
+ toJSON(data?: any): any;
1083
+ }
1084
+ export interface IBasketLoadStationWork {
1085
+ workId: string;
1086
+ type: BasketLoadStationWorkType;
1087
+ readyToConfirm: boolean;
1088
+ confirmationBlockedReason?: string | undefined;
1089
+ awaitingMaterialSlots?: number[];
1090
+ }
1091
+ export declare enum BasketLoadStationWorkType {
1092
+ Material = "Material",
1093
+ ConfirmEmptyBasket = "ConfirmEmptyBasket"
1094
+ }
1088
1095
  export declare class BasketPosition implements IBasketPosition {
1089
1096
  location: BasketLocationEnum;
1090
1097
  locationNum: number;
@@ -1109,8 +1116,8 @@ export declare enum BasketLocationEnum {
1109
1116
  }
1110
1117
  export declare class BasketMoveInstruction implements IBasketMoveInstruction {
1111
1118
  instructionId: string;
1112
- basketId?: number | undefined;
1113
- source: BasketPosition;
1119
+ basketId: number;
1120
+ source?: BasketPosition | undefined;
1114
1121
  destination: BasketPosition;
1115
1122
  reason: BasketMoveReason;
1116
1123
  displayText: string;
@@ -1122,8 +1129,8 @@ export declare class BasketMoveInstruction implements IBasketMoveInstruction {
1122
1129
  }
1123
1130
  export interface IBasketMoveInstruction {
1124
1131
  instructionId: string;
1125
- basketId?: number | undefined;
1126
- source: BasketPosition;
1132
+ basketId: number;
1133
+ source?: BasketPosition | undefined;
1127
1134
  destination: BasketPosition;
1128
1135
  reason: BasketMoveReason;
1129
1136
  displayText: string;
@@ -1139,20 +1146,6 @@ export declare enum BasketMoveReason {
1139
1146
  RemoveForCorrection = "RemoveForCorrection",
1140
1147
  Other = "Other"
1141
1148
  }
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
1149
  export declare class ProblemDetails implements IProblemDetails {
1157
1150
  type?: string | undefined;
1158
1151
  title?: string | undefined;
@@ -1389,18 +1382,6 @@ export interface ICancelLoadRequest {
1389
1382
  expectedLoadCancellationId: string;
1390
1383
  reason?: string | undefined;
1391
1384
  }
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
1385
  export declare class JobAndDecrementQuantity implements IJobAndDecrementQuantity {
1405
1386
  decrementId: number;
1406
1387
  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,16 @@ 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.loadStationWork = _data["LoadStationWork"]
4369
+ ? BasketLoadStationWork.fromJS(_data["LoadStationWork"])
4370
+ : undefined;
4437
4371
  this.position = _data["Position"]
4438
4372
  ? BasketPosition.fromJS(_data["Position"])
4439
- : new BasketPosition();
4373
+ : undefined;
4440
4374
  if (Array.isArray(_data["EmptySlots"])) {
4441
4375
  this.emptySlots = [];
4442
4376
  for (let item of _data["EmptySlots"])
@@ -4458,6 +4392,9 @@ export class BasketStatus {
4458
4392
  toJSON(data) {
4459
4393
  data = typeof data === "object" ? data : {};
4460
4394
  data["BasketId"] = this.basketId;
4395
+ data["LoadStationWork"] = this.loadStationWork
4396
+ ? this.loadStationWork.toJSON()
4397
+ : undefined;
4461
4398
  data["Position"] = this.position ? this.position.toJSON() : undefined;
4462
4399
  if (Array.isArray(this.emptySlots)) {
4463
4400
  data["EmptySlots"] = [];
@@ -4472,6 +4409,53 @@ export class BasketStatus {
4472
4409
  return data;
4473
4410
  }
4474
4411
  }
4412
+ export class BasketLoadStationWork {
4413
+ constructor(data) {
4414
+ if (data) {
4415
+ for (var property in data) {
4416
+ if (data.hasOwnProperty(property))
4417
+ this[property] = data[property];
4418
+ }
4419
+ }
4420
+ }
4421
+ init(_data) {
4422
+ if (_data) {
4423
+ this.workId = _data["WorkId"];
4424
+ this.type = _data["Type"];
4425
+ this.readyToConfirm = _data["ReadyToConfirm"];
4426
+ this.confirmationBlockedReason = _data["ConfirmationBlockedReason"];
4427
+ if (Array.isArray(_data["AwaitingMaterialSlots"])) {
4428
+ this.awaitingMaterialSlots = [];
4429
+ for (let item of _data["AwaitingMaterialSlots"])
4430
+ this.awaitingMaterialSlots.push(item);
4431
+ }
4432
+ }
4433
+ }
4434
+ static fromJS(data) {
4435
+ data = typeof data === "object" ? data : {};
4436
+ let result = new BasketLoadStationWork();
4437
+ result.init(data);
4438
+ return result;
4439
+ }
4440
+ toJSON(data) {
4441
+ data = typeof data === "object" ? data : {};
4442
+ data["WorkId"] = this.workId;
4443
+ data["Type"] = this.type;
4444
+ data["ReadyToConfirm"] = this.readyToConfirm;
4445
+ data["ConfirmationBlockedReason"] = this.confirmationBlockedReason;
4446
+ if (Array.isArray(this.awaitingMaterialSlots)) {
4447
+ data["AwaitingMaterialSlots"] = [];
4448
+ for (let item of this.awaitingMaterialSlots)
4449
+ data["AwaitingMaterialSlots"].push(item);
4450
+ }
4451
+ return data;
4452
+ }
4453
+ }
4454
+ export var BasketLoadStationWorkType;
4455
+ (function (BasketLoadStationWorkType) {
4456
+ BasketLoadStationWorkType["Material"] = "Material";
4457
+ BasketLoadStationWorkType["ConfirmEmptyBasket"] = "ConfirmEmptyBasket";
4458
+ })(BasketLoadStationWorkType || (BasketLoadStationWorkType = {}));
4475
4459
  export class BasketPosition {
4476
4460
  constructor(data) {
4477
4461
  if (data) {
@@ -4520,7 +4504,6 @@ export class BasketMoveInstruction {
4520
4504
  }
4521
4505
  }
4522
4506
  if (!data) {
4523
- this.source = new BasketPosition();
4524
4507
  this.destination = new BasketPosition();
4525
4508
  }
4526
4509
  }
@@ -4528,7 +4511,7 @@ export class BasketMoveInstruction {
4528
4511
  if (_data) {
4529
4512
  this.instructionId = _data["InstructionId"];
4530
4513
  this.basketId = _data["BasketId"];
4531
- this.source = _data["Source"] ? BasketPosition.fromJS(_data["Source"]) : new BasketPosition();
4514
+ this.source = _data["Source"] ? BasketPosition.fromJS(_data["Source"]) : undefined;
4532
4515
  this.destination = _data["Destination"]
4533
4516
  ? BasketPosition.fromJS(_data["Destination"])
4534
4517
  : new BasketPosition();
@@ -4566,47 +4549,6 @@ export var BasketMoveReason;
4566
4549
  BasketMoveReason["RemoveForCorrection"] = "RemoveForCorrection";
4567
4550
  BasketMoveReason["Other"] = "Other";
4568
4551
  })(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
4552
  export class ProblemDetails {
4611
4553
  constructor(data) {
4612
4554
  if (data) {
@@ -5223,34 +5165,6 @@ export class CancelLoadRequest {
5223
5165
  return data;
5224
5166
  }
5225
5167
  }
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
5168
  export class JobAndDecrementQuantity {
5255
5169
  constructor(data) {
5256
5170
  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.10",
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
  }