oceanhelm 0.0.6 → 0.0.8

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.
@@ -1,4 +1,4 @@
1
- import { openBlock as o, createElementBlock as l, normalizeClass as g, createElementVNode as e, toDisplayString as r, createCommentVNode as m, Fragment as p, renderList as f, withModifiers as D, createTextVNode as _, renderSlot as O, withDirectives as v, vShow as P, normalizeStyle as E, createStaticVNode as x, vModelText as w, vModelSelect as C, vModelCheckbox as N } from "vue";
1
+ import { openBlock as o, createElementBlock as l, normalizeClass as g, createElementVNode as e, toDisplayString as r, createCommentVNode as m, Fragment as p, renderList as h, withModifiers as D, createTextVNode as _, renderSlot as O, withDirectives as v, vShow as P, normalizeStyle as E, createStaticVNode as x, vModelText as k, vModelSelect as C, vModelCheckbox as N } from "vue";
2
2
  const S = (s, t) => {
3
3
  const u = s.__vccOpts || s;
4
4
  for (const [b, n] of t)
@@ -52,13 +52,17 @@ const S = (s, t) => {
52
52
  return this.customClasses;
53
53
  },
54
54
  filteredMenuItems() {
55
- return this.menuItems.filter((s) => this.hasPermission(s));
55
+ return this.menuItems.filter((s) => this.hasPermission(s) ? s.type === "dropdown" && s.children ? s.children.some((t) => this.hasPermission(t)) : !0 : !1);
56
56
  }
57
57
  },
58
58
  mounted() {
59
59
  this.responsive && this.initializeResponsiveBehavior();
60
60
  },
61
61
  methods: {
62
+ // Get filtered children for dropdown items
63
+ getFilteredChildren(s) {
64
+ return s.children ? s.children.filter((t) => this.hasPermission(t)) : [];
65
+ },
62
66
  // Permission checking
63
67
  hasPermission(s) {
64
68
  return this.permissionChecker ? this.permissionChecker(s, this.userProfile) : !s.roles || s.roles.length === 0 ? !0 : s.roles.includes(this.userProfile.role);
@@ -91,7 +95,7 @@ const S = (s, t) => {
91
95
  }, L = {
92
96
  key: 0,
93
97
  class: "logo d-flex align-items-center left"
94
- }, j = { class: "list-unstyled components mt-4" }, $ = ["onClick"], B = ["href", "onClick"], H = ["onClick"], Q = {
98
+ }, $ = { class: "list-unstyled components mt-4" }, j = ["onClick"], B = ["href", "onClick"], H = ["onClick"], Q = {
95
99
  class: "dropdown-toggle",
96
100
  type: "button",
97
101
  "data-bs-toggle": "dropdown",
@@ -114,16 +118,16 @@ function Y(s, t, u, b, n, a) {
114
118
  }, null, 2),
115
119
  e("span", null, r(u.brandName), 1)
116
120
  ])) : m("", !0),
117
- e("ul", j, [
118
- (o(!0), l(p, null, f(a.filteredMenuItems, (i, h) => (o(), l("li", {
119
- key: h,
121
+ e("ul", $, [
122
+ (o(!0), l(p, null, h(a.filteredMenuItems, (i, f) => (o(), l("li", {
123
+ key: f,
120
124
  class: g({ active: i.active, dropdown: i.type === "dropdown" }),
121
- onClick: (k) => a.handleItemClick(i)
125
+ onClick: (y) => a.handleItemClick(i)
122
126
  }, [
123
127
  i.type === "link" ? (o(), l("a", {
124
128
  key: 0,
125
129
  href: i.href || "#",
126
- onClick: D((k) => a.handleNavigation(i), ["prevent"])
130
+ onClick: D((y) => a.handleNavigation(i), ["prevent"])
127
131
  }, [
128
132
  i.icon ? (o(), l("i", {
129
133
  key: 0,
@@ -132,7 +136,7 @@ function Y(s, t, u, b, n, a) {
132
136
  _(" " + r(i.label), 1)
133
137
  ], 8, B)) : i.type === "button" ? (o(), l("a", {
134
138
  key: 1,
135
- onClick: D((k) => a.handleAction(i), ["prevent"]),
139
+ onClick: D((y) => a.handleAction(i), ["prevent"]),
136
140
  style: { cursor: "pointer" }
137
141
  }, [
138
142
  i.icon ? (o(), l("i", {
@@ -149,15 +153,15 @@ function Y(s, t, u, b, n, a) {
149
153
  _(" " + r(i.label), 1)
150
154
  ]),
151
155
  e("div", J, [
152
- (o(!0), l(p, null, f(i.children, (k, A) => (o(), l("a", {
156
+ (o(!0), l(p, null, h(a.getFilteredChildren(i), (y, A) => (o(), l("a", {
153
157
  key: A,
154
158
  class: "dropdown-item black",
155
- onClick: D((q) => a.handleAction(k), ["prevent"]),
159
+ onClick: D((q) => a.handleAction(y), ["prevent"]),
156
160
  style: { cursor: "pointer" }
157
- }, r(k.label), 9, W))), 128))
161
+ }, r(y.label), 9, W))), 128))
158
162
  ])
159
163
  ], 64)) : i.type === "separator" ? (o(), l("div", G)) : i.type === "text" ? (o(), l("a", z, r(i.label), 1)) : m("", !0)
160
- ], 10, $))), 128))
164
+ ], 10, j))), 128))
161
165
  ]),
162
166
  O(s.$slots, "footer")
163
167
  ], 2);
@@ -206,7 +210,8 @@ const X = {
206
210
  "vessel-delete",
207
211
  "vessel-toggle-status",
208
212
  "vessel-navigate",
209
- "access-denied"
213
+ "access-denied",
214
+ "date-change"
210
215
  ],
211
216
  computed: {
212
217
  activeVesselsCount() {
@@ -235,7 +240,7 @@ const X = {
235
240
  id: s.registrationNumber,
236
241
  name: s.name
237
242
  };
238
- this.currentRoute === "dashboard" ? this.$emit("vessel-click", s) : this.$emit("vessel-navigate", t);
243
+ this.grantAccess(s) ? this.currentRoute === "dashboard" ? this.$emit("vessel-click", s) : this.$emit("vessel-navigate", t) : this.handleAccessDenied("this protected route");
239
244
  },
240
245
  handleDeleteVessel(s) {
241
246
  if (!this.grantAccess(s)) {
@@ -265,6 +270,17 @@ const X = {
265
270
  statusClass(s) {
266
271
  return `status-${(s == null ? void 0 : s.toLowerCase()) || ""}`;
267
272
  },
273
+ getDuration(s, t) {
274
+ const u = /* @__PURE__ */ new Date(), b = new Date(s), n = u - b;
275
+ if (n < 0)
276
+ return "Invalid (future date)";
277
+ const a = Math.floor(n / (1e3 * 60 * 60)), i = Math.floor(a / 24), f = a % 24;
278
+ let y = "";
279
+ return i > 0 && (y += `${i} day${i > 1 ? "s" : ""}`), f > 0 && (y += (y ? " " : "") + `${f} hr${f > 1 ? "s" : ""}`), y || "0 hr";
280
+ },
281
+ setVesselDate(s) {
282
+ this.$emit("date-change", s);
283
+ },
268
284
  grantAccess(s) {
269
285
  const { role: t, vessel: u } = this.userProfile;
270
286
  return t === "owner" || t === "staff" || t === "captain" && u === s.name;
@@ -293,8 +309,14 @@ const X = {
293
309
  }, ce = {
294
310
  key: 2,
295
311
  class: "row"
296
- }, me = ["onClick"], ve = { class: "card-body d-flex align-items-center" }, pe = { class: "flex-grow-1" }, fe = { class: "d-flex justify-content-between align-items-center mb-2" }, he = { class: "card-title mb-0" }, ge = { class: "row" }, be = { class: "col-6" }, ye = { class: "mb-0" }, we = { class: "col-6" }, ke = { class: "mb-0" }, _e = { class: "action-icon v-left delete" }, Ce = ["onClick"], De = ["onClick"];
297
- function xe(s, t, u, b, n, a) {
312
+ }, me = ["onClick"], ve = { class: "card-body d-flex align-items-center" }, pe = { class: "flex-grow-1" }, fe = { class: "d-flex justify-content-between align-items-center mb-2" }, he = { class: "card-title mb-0" }, ge = { class: "row" }, be = { class: "col-6" }, ye = { class: "mb-0" }, we = {
313
+ key: 0,
314
+ class: "col-6"
315
+ }, ke = { class: "mb-0" }, _e = { class: "mb-0" }, Ce = {
316
+ key: 1,
317
+ class: "col-6"
318
+ }, De = { class: "text-muted" }, xe = ["onClick"], Se = { class: "action-icon v-left delete" }, Pe = ["onClick"], Ae = ["onClick"];
319
+ function qe(s, t, u, b, n, a) {
298
320
  return o(), l(p, null, [
299
321
  e("div", Z, [
300
322
  e("div", ee, [
@@ -339,7 +361,7 @@ function xe(s, t, u, b, n, a) {
339
361
  ]))
340
362
  ])) : m("", !0)
341
363
  ]),
342
- t[11] || (t[11] = e("h4", { class: "mb-4" }, [
364
+ t[12] || (t[12] = e("h4", { class: "mb-4" }, [
343
365
  e("i", { class: "bi bi-ship me-2" }),
344
366
  _("Registered Vessels")
345
367
  ], -1)),
@@ -352,16 +374,16 @@ function xe(s, t, u, b, n, a) {
352
374
  ], -1),
353
375
  e("p", { class: "mt-2" }, "Loading vessels...", -1)
354
376
  ]))) : u.vessels.length ? (o(), l("div", ce, [
355
- (o(!0), l(p, null, f(u.vessels, (i) => (o(), l("div", {
377
+ (o(!0), l(p, null, h(u.vessels, (i) => (o(), l("div", {
356
378
  class: "col-lg-6",
357
379
  key: i.registrationNumber || i.id
358
380
  }, [
359
381
  e("div", {
360
382
  class: "vessel-card",
361
- onClick: (h) => a.handleVesselClick(i)
383
+ onClick: (f) => a.handleVesselClick(i)
362
384
  }, [
363
385
  e("div", ve, [
364
- t[10] || (t[10] = e("div", { class: "vessel-icon v-left" }, [
386
+ t[11] || (t[11] = e("div", { class: "vessel-icon v-left" }, [
365
387
  e("i", { class: "fas fa-ship" })
366
388
  ], -1)),
367
389
  e("div", pe, [
@@ -376,23 +398,35 @@ function xe(s, t, u, b, n, a) {
376
398
  t[8] || (t[8] = e("small", { class: "text-muted" }, "Registration #:", -1)),
377
399
  e("p", ye, r(i.registrationNumber), 1)
378
400
  ]),
379
- e("div", we, [
380
- t[9] || (t[9] = e("small", { class: "text-muted" }, "Next Maintenance:", -1)),
381
- e("p", ke, r(i.nextMaintenance || "Not scheduled"), 1)
382
- ])
401
+ i.date ? (o(), l("div", we, [
402
+ i.status === "Active" ? (o(), l(p, { key: 0 }, [
403
+ t[9] || (t[9] = e("small", { class: "text-muted" }, "Active Duration:", -1)),
404
+ e("p", ke, r(a.getDuration(i.date, i.registrationNumber)), 1)
405
+ ], 64)) : (o(), l(p, { key: 1 }, [
406
+ t[10] || (t[10] = e("small", { class: "text-muted" }, "Inactive Duration:", -1)),
407
+ e("p", _e, r(a.getDuration(i.date, i.registrationNumber)), 1)
408
+ ], 64))
409
+ ])) : (o(), l("div", Ce, [
410
+ e("small", De, r(i.status) + " Duration:", 1),
411
+ e("button", {
412
+ type: "button",
413
+ class: "btn btn-outline-primary btn-sm mt-1",
414
+ onClick: D((f) => a.setVesselDate(i.registrationNumber), ["stop"])
415
+ }, " Set Date ", 8, xe)
416
+ ]))
383
417
  ])
384
418
  ])
385
419
  ]),
386
- e("div", _e, [
420
+ e("div", Se, [
387
421
  e("i", {
388
422
  class: "bi bi-trash",
389
- onClick: D((h) => a.handleDeleteVessel(i), ["stop"])
390
- }, null, 8, Ce)
423
+ onClick: D((f) => a.handleDeleteVessel(i), ["stop"])
424
+ }, null, 8, Pe)
391
425
  ]),
392
426
  e("button", {
393
427
  class: "btn btn-primary",
394
- onClick: D((h) => a.handleToggleStatus(i), ["stop"])
395
- }, r(i.status === "Active" ? "Mark Inactive" : "Mark Active"), 9, De)
428
+ onClick: D((f) => a.handleToggleStatus(i), ["stop"])
429
+ }, r(i.status === "Active" ? "Mark Inactive" : "Mark Active"), 9, Ae)
396
430
  ], 8, me)
397
431
  ]))), 128))
398
432
  ])) : (o(), l("div", ue, t[7] || (t[7] = [
@@ -403,8 +437,8 @@ function xe(s, t, u, b, n, a) {
403
437
  ])))
404
438
  ], 64);
405
439
  }
406
- const Se = /* @__PURE__ */ S(X, [["render", xe]]);
407
- const Pe = {
440
+ const Te = /* @__PURE__ */ S(X, [["render", qe]]);
441
+ const Ie = {
408
442
  name: "DashHead",
409
443
  props: {
410
444
  name: {
@@ -429,11 +463,11 @@ const Pe = {
429
463
  this.$emit("logged-in");
430
464
  }
431
465
  }
432
- }, Ae = { class: "page-header d-flex justify-content-between align-items-center" }, qe = { style: { "margin-left": "20px" } }, Te = { class: "d-flex" };
433
- function Re(s, t, u, b, n, a) {
434
- return o(), l("div", Ae, [
435
- e("h2", qe, r(u.name), 1),
436
- e("div", Te, [
466
+ }, Re = { class: "page-header d-flex justify-content-between align-items-center" }, Me = { style: { "margin-left": "20px" } }, Ve = { class: "d-flex" };
467
+ function Fe(s, t, u, b, n, a) {
468
+ return o(), l("div", Re, [
469
+ e("h2", Me, r(u.name), 1),
470
+ e("div", Ve, [
437
471
  this.userProfile.role == "owner" ? (o(), l("button", {
438
472
  key: 0,
439
473
  class: "btn btn-outline-primary me-2",
@@ -451,7 +485,7 @@ function Re(s, t, u, b, n, a) {
451
485
  ])
452
486
  ]);
453
487
  }
454
- const Ie = /* @__PURE__ */ S(Pe, [["render", Re]]), Me = {
488
+ const Ee = /* @__PURE__ */ S(Ie, [["render", Fe]]), Ne = {
455
489
  name: "OceanHelmMaintenance",
456
490
  props: {
457
491
  vesselInfo: {
@@ -818,52 +852,52 @@ const Ie = /* @__PURE__ */ S(Pe, [["render", Re]]), Me = {
818
852
  });
819
853
  }
820
854
  }
821
- }, Ve = { key: 0 }, Fe = ["onClick"], Ee = { class: "content" }, Ne = {
855
+ }, Oe = { key: 0 }, Ue = ["onClick"], Le = { class: "content" }, $e = {
822
856
  key: 0,
823
857
  class: "loading-container"
824
- }, Oe = { key: 1 }, Ue = { class: "container" }, Le = { class: "d-flex justify-content-between align-items-center" }, je = { class: "progress-container" }, $e = { class: "progress-info" }, Be = { class: "progress-bar" }, He = { class: "checklist" }, Qe = ["onClick"], Je = { key: 0 }, We = ["onClick"], Ge = ["onClick"], ze = { key: 0 }, Ye = { class: "checklist" }, Ke = { class: "checklist-item" }, Xe = { class: "attachment-area" }, Ze = {
858
+ }, je = { key: 1 }, Be = { class: "container" }, He = { class: "d-flex justify-content-between align-items-center" }, Qe = { class: "progress-container" }, Je = { class: "progress-info" }, We = { class: "progress-bar" }, Ge = { class: "checklist" }, ze = ["onClick"], Ye = { key: 0 }, Ke = ["onClick"], Xe = ["onClick"], Ze = { key: 0 }, et = { class: "checklist" }, tt = { class: "checklist-item" }, st = { class: "attachment-area" }, it = {
825
859
  key: 2,
826
860
  class: "status"
827
- }, et = { class: "form-group" }, tt = { class: "form-group" }, st = { class: "input-group" }, it = { class: "form-group" }, nt = { class: "form-group" }, ot = { class: "input-group" }, lt = { class: "form-group" }, rt = { class: "form-group" }, at = { class: "input-group" }, dt = { class: "form-group" }, ut = { class: "form-group" }, ct = ["value"], mt = { class: "input-group" }, vt = { class: "form-group" }, pt = { class: "input-group" }, ft = { class: "form-group" }, ht = { class: "form-group" }, gt = { class: "form-group" }, bt = { class: "checkbox-group" }, yt = { class: "checkbox-item" }, wt = { class: "checkbox-item" }, kt = { class: "input-group" }, _t = { class: "form-group" }, Ct = { class: "form-group" }, Dt = { class: "form-group" }, xt = { class: "attachment-area" }, St = { class: "action-buttons" }, Pt = ["disabled"], At = { class: "task-table-wrapper" }, qt = { class: "table-controls" }, Tt = { class: "filters" }, Rt = { class: "task-table" }, It = ["onClick"], Mt = ["onClick"], Vt = { key: 0 }, Ft = {
861
+ }, nt = { class: "form-group" }, ot = { class: "form-group" }, lt = { class: "input-group" }, rt = { class: "form-group" }, at = { class: "form-group" }, dt = { class: "input-group" }, ut = { class: "form-group" }, ct = { class: "form-group" }, mt = { class: "input-group" }, vt = { class: "form-group" }, pt = { class: "form-group" }, ft = ["value"], ht = { class: "input-group" }, gt = { class: "form-group" }, bt = { class: "input-group" }, yt = { class: "form-group" }, wt = { class: "form-group" }, kt = { class: "form-group" }, _t = { class: "checkbox-group" }, Ct = { class: "checkbox-item" }, Dt = { class: "checkbox-item" }, xt = { class: "input-group" }, St = { class: "form-group" }, Pt = { class: "form-group" }, At = { class: "form-group" }, qt = { class: "attachment-area" }, Tt = { class: "action-buttons" }, It = ["disabled"], Rt = { class: "task-table-wrapper" }, Mt = { class: "table-controls" }, Vt = { class: "filters" }, Ft = { class: "task-table" }, Et = ["onClick"], Nt = ["onClick"], Ot = { key: 0 }, Ut = {
828
862
  class: "alert alert-primary",
829
863
  role: "alert"
830
- }, Et = { class: "mb-0" }, Nt = {
864
+ }, Lt = { class: "mb-0" }, $t = {
831
865
  class: "report-container",
832
866
  ref: "reportContainer"
833
- }, Ot = { class: "report-info" }, Ut = { class: "info-box" }, Lt = { class: "info-box" }, jt = { class: "info-box" }, $t = { class: "section" }, Bt = { class: "summary-grid" }, Ht = { class: "summary-card" }, Qt = { class: "summary-number" }, Jt = { class: "section" }, Wt = { class: "task-header" }, Gt = { class: "task-title" }, zt = { class: "task-component" }, Yt = { class: "task-details" }, Kt = { class: "detail-item" }, Xt = { class: "detail-value" }, Zt = { class: "detail-item" }, es = { class: "detail-value" }, ts = { class: "detail-item" }, ss = { class: "detail-value" }, is = { class: "detail-item" }, ns = { class: "detail-value" }, os = { class: "detail-item" }, ls = { class: "detail-value" }, rs = { class: "detail-item" }, as = { class: "detail-value" }, ds = {
867
+ }, jt = { class: "report-info" }, Bt = { class: "info-box" }, Ht = { class: "info-box" }, Qt = { class: "info-box" }, Jt = { class: "section" }, Wt = { class: "summary-grid" }, Gt = { class: "summary-card" }, zt = { class: "summary-number" }, Yt = { class: "section" }, Kt = { class: "task-header" }, Xt = { class: "task-title" }, Zt = { class: "task-component" }, es = { class: "task-details" }, ts = { class: "detail-item" }, ss = { class: "detail-value" }, is = { class: "detail-item" }, ns = { class: "detail-value" }, os = { class: "detail-item" }, ls = { class: "detail-value" }, rs = { class: "detail-item" }, as = { class: "detail-value" }, ds = { class: "detail-item" }, us = { class: "detail-value" }, cs = { class: "detail-item" }, ms = { class: "detail-value" }, vs = {
834
868
  key: 0,
835
869
  style: { margin: "15px 0", padding: "10px", background: "white", "border-radius": "5px" }
836
- }, us = { class: "detail-value" }, cs = {
870
+ }, ps = { class: "detail-value" }, fs = {
837
871
  key: 1,
838
872
  style: { margin: "15px 0", padding: "10px", background: "white", "border-radius": "5px" }
839
- }, ms = { class: "detail-value" }, vs = {
873
+ }, hs = { class: "detail-value" }, gs = {
840
874
  key: 2,
841
875
  class: "checklist-progress"
842
- }, ps = { class: "progress-bar" }, fs = { style: { "font-size": "0.9em", color: "#666", "margin-top": "5px" } }, hs = { class: "checklist-items" }, gs = { class: "checklist-icon" }, bs = { class: "section" }, ys = { class: "info-box" }, ws = { class: "signature-section" }, ks = { class: "signature-box" }, _s = { style: { "margin-top": "10px", color: "#666" } };
843
- function Cs(s, t, u, b, n, a) {
844
- return n.ready ? (o(), l("div", Ve, [
876
+ }, bs = { class: "progress-bar" }, ys = { style: { "font-size": "0.9em", color: "#666", "margin-top": "5px" } }, ws = { class: "checklist-items" }, ks = { class: "checklist-icon" }, _s = { class: "section" }, Cs = { class: "info-box" }, Ds = { class: "signature-section" }, xs = { class: "signature-box" }, Ss = { style: { "margin-top": "10px", color: "#666" } };
877
+ function Ps(s, t, u, b, n, a) {
878
+ return n.ready ? (o(), l("div", Oe, [
845
879
  e("div", null, [
846
880
  v(e("nav", null, [
847
- (o(!0), l(p, null, f(n.sections, (i) => (o(), l("button", {
881
+ (o(!0), l(p, null, h(n.sections, (i) => (o(), l("button", {
848
882
  key: i.id,
849
883
  class: g(["nav-btn", { active: n.activeSection === i.id }]),
850
- onClick: (h) => a.handleSectionClick(i)
851
- }, r(i.icon) + " " + r(i.name), 11, Fe))), 128))
884
+ onClick: (f) => a.handleSectionClick(i)
885
+ }, r(i.icon) + " " + r(i.name), 11, Ue))), 128))
852
886
  ], 512), [
853
887
  [P, !n.showReport]
854
888
  ]),
855
- v(e("div", Ee, [
889
+ v(e("div", Le, [
856
890
  v(e("section", {
857
891
  class: g(["form-section", { active: n.activeSection === "maintenance" }])
858
892
  }, [
859
893
  t[37] || (t[37] = e("h2", null, "🛠️ Maintenance Tasks", -1)),
860
- n.isLoading ? (o(), l("div", Ne, t[27] || (t[27] = [
894
+ n.isLoading ? (o(), l("div", $e, t[27] || (t[27] = [
861
895
  e("div", { class: "loading-spinner" }, null, -1),
862
896
  e("p", null, "Loading checklist...", -1)
863
897
  ]))) : m("", !0),
864
- n.isLoading ? m("", !0) : (o(), l("form", Oe, [
865
- e("div", Ue, [
866
- e("div", Le, [
898
+ n.isLoading ? m("", !0) : (o(), l("form", je, [
899
+ e("div", Be, [
900
+ e("div", He, [
867
901
  t[29] || (t[29] = e("h1", null, "Maintenance Checklist", -1)),
868
902
  a.showAddTaskButton ? (o(), l("button", {
869
903
  key: 0,
@@ -874,44 +908,44 @@ function Cs(s, t, u, b, n, a) {
874
908
  e("i", { class: "fas fa-plus" }, null, -1)
875
909
  ]))) : m("", !0)
876
910
  ]),
877
- e("div", je, [
878
- e("div", $e, " Progress: " + r(a.progress) + "% (" + r(a.completedCount.length) + "/" + r(n.checklists.length) + ") ", 1),
879
- e("div", Be, [
911
+ e("div", Qe, [
912
+ e("div", Je, " Progress: " + r(a.progress) + "% (" + r(a.completedCount.length) + "/" + r(n.checklists.length) + ") ", 1),
913
+ e("div", We, [
880
914
  e("div", {
881
915
  class: "progress-fill",
882
916
  style: E({ width: a.progress + "%" })
883
917
  }, null, 4)
884
918
  ])
885
919
  ]),
886
- e("ul", He, [
887
- (o(!0), l(p, null, f(n.checklists, (i) => (o(), l("li", {
920
+ e("ul", Ge, [
921
+ (o(!0), l(p, null, h(n.checklists, (i) => (o(), l("li", {
888
922
  key: i.id,
889
923
  class: "checklist-item"
890
924
  }, [
891
925
  e("div", {
892
926
  class: g(["checkbox", { checked: i.completed }]),
893
- onClick: (h) => a.toggleTask(i)
927
+ onClick: (f) => a.toggleTask(i)
894
928
  }, [
895
- i.completed ? (o(), l("span", Je, "✓")) : m("", !0)
896
- ], 10, Qe),
929
+ i.completed ? (o(), l("span", Ye, "✓")) : m("", !0)
930
+ ], 10, ze),
897
931
  e("span", {
898
932
  class: g(["task-text", { completed: i.completed }]),
899
- onClick: (h) => a.toggleTask(i)
900
- }, r(i.text), 11, We),
933
+ onClick: (f) => a.toggleTask(i)
934
+ }, r(i.text), 11, Ke),
901
935
  a.showAddTaskButton ? (o(), l("button", {
902
936
  key: 0,
903
937
  class: "delete-btn",
904
- onClick: (h) => a.deleteTask(i.id),
938
+ onClick: (f) => a.deleteTask(i.id),
905
939
  title: "Delete task"
906
940
  }, t[30] || (t[30] = [
907
941
  x('<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="3,6 5,6 21,6"></polyline><path d="m19,6v14a2,2 0 0,1 -2,2H7a2,2 0 0,1 -2,-2V6m3,0V4a2,2 0 0,1 2,-2h4a2,2 0 0,1 2,2v2"></path><line x1="10" y1="11" x2="10" y2="17"></line><line x1="14" y1="11" x2="14" y2="17"></line></svg>', 1)
908
- ]), 8, Ge)) : m("", !0)
942
+ ]), 8, Xe)) : m("", !0)
909
943
  ]))), 128))
910
944
  ]),
911
- n.after ? (o(), l("div", ze, [
945
+ n.after ? (o(), l("div", Ze, [
912
946
  t[33] || (t[33] = e("label", null, "Upload Image Evidence", -1)),
913
- e("ul", Ye, [
914
- e("li", Ke, [
947
+ e("ul", et, [
948
+ e("li", tt, [
915
949
  t[32] || (t[32] = e("span", { class: "task-text" }, " Image Evidence Already Uploaded ", -1)),
916
950
  e("button", {
917
951
  type: "button",
@@ -929,7 +963,7 @@ function Cs(s, t, u, b, n, a) {
929
963
  }, [
930
964
  t[35] || (t[35] = e("label", null, "Upload Image Evidence", -1)),
931
965
  t[36] || (t[36] = e("p", null, "You can only upload one image evidence here.", -1)),
932
- e("div", Xe, [
966
+ e("div", st, [
933
967
  e("p", null, r(n.fileText), 1),
934
968
  e("input", {
935
969
  type: "file",
@@ -943,7 +977,7 @@ function Cs(s, t, u, b, n, a) {
943
977
  }, "Browse Files", -1))
944
978
  ])
945
979
  ])),
946
- a.completedCount === n.checklists.length ? (o(), l("div", Ze, " All tasks completed! ✅ ")) : m("", !0),
980
+ a.completedCount === n.checklists.length ? (o(), l("div", it, " All tasks completed! ✅ ")) : m("", !0),
947
981
  e("button", {
948
982
  class: "reset-button",
949
983
  onClick: t[3] || (t[3] = D((...i) => a.resetTasks && a.resetTasks(...i), ["prevent"]))
@@ -958,7 +992,7 @@ function Cs(s, t, u, b, n, a) {
958
992
  }, [
959
993
  t[62] || (t[62] = e("h2", null, "📅 Maintenance Schedule", -1)),
960
994
  e("form", null, [
961
- e("div", et, [
995
+ e("div", nt, [
962
996
  t[38] || (t[38] = e("label", { for: "task-name" }, "Task Name", -1)),
963
997
  v(e("input", {
964
998
  type: "text",
@@ -966,21 +1000,21 @@ function Cs(s, t, u, b, n, a) {
966
1000
  "onUpdate:modelValue": t[4] || (t[4] = (i) => n.form.taskName = i),
967
1001
  required: ""
968
1002
  }, null, 512), [
969
- [w, n.form.taskName]
1003
+ [k, n.form.taskName]
970
1004
  ])
971
1005
  ]),
972
- e("div", tt, [
1006
+ e("div", ot, [
973
1007
  t[39] || (t[39] = e("label", { for: "task-description" }, "Description", -1)),
974
1008
  v(e("textarea", {
975
1009
  id: "task-description",
976
1010
  "onUpdate:modelValue": t[5] || (t[5] = (i) => n.form.description = i),
977
1011
  required: ""
978
1012
  }, null, 512), [
979
- [w, n.form.description]
1013
+ [k, n.form.description]
980
1014
  ])
981
1015
  ]),
982
- e("div", st, [
983
- e("div", it, [
1016
+ e("div", lt, [
1017
+ e("div", rt, [
984
1018
  t[41] || (t[41] = e("label", { for: "maintenance-type" }, "Maintenance Type", -1)),
985
1019
  v(e("select", {
986
1020
  id: "maintenance-type",
@@ -992,7 +1026,7 @@ function Cs(s, t, u, b, n, a) {
992
1026
  [C, n.form.maintenanceType]
993
1027
  ])
994
1028
  ]),
995
- e("div", nt, [
1029
+ e("div", at, [
996
1030
  t[43] || (t[43] = e("label", { for: "component" }, "Component/System", -1)),
997
1031
  v(e("select", {
998
1032
  id: "component",
@@ -1010,12 +1044,12 @@ function Cs(s, t, u, b, n, a) {
1010
1044
  "onUpdate:modelValue": t[8] || (t[8] = (i) => n.form.customComponent = i),
1011
1045
  style: { "margin-top": "8px" }
1012
1046
  }, null, 512)), [
1013
- [w, n.form.customComponent]
1047
+ [k, n.form.customComponent]
1014
1048
  ]) : m("", !0)
1015
1049
  ])
1016
1050
  ]),
1017
- e("div", ot, [
1018
- e("div", lt, [
1051
+ e("div", dt, [
1052
+ e("div", ut, [
1019
1053
  t[45] || (t[45] = e("label", { for: "priority" }, "Priority", -1)),
1020
1054
  v(e("select", {
1021
1055
  id: "priority",
@@ -1030,7 +1064,7 @@ function Cs(s, t, u, b, n, a) {
1030
1064
  [C, n.form.priority]
1031
1065
  ])
1032
1066
  ]),
1033
- e("div", rt, [
1067
+ e("div", ct, [
1034
1068
  t[46] || (t[46] = e("label", { for: "status" }, "Status", -1)),
1035
1069
  v(e("input", {
1036
1070
  type: "text",
@@ -1038,12 +1072,12 @@ function Cs(s, t, u, b, n, a) {
1038
1072
  "onUpdate:modelValue": t[10] || (t[10] = (i) => n.form.status = i),
1039
1073
  readonly: ""
1040
1074
  }, null, 512), [
1041
- [w, n.form.status]
1075
+ [k, n.form.status]
1042
1076
  ])
1043
1077
  ])
1044
1078
  ]),
1045
- e("div", at, [
1046
- e("div", dt, [
1079
+ e("div", mt, [
1080
+ e("div", vt, [
1047
1081
  t[47] || (t[47] = e("label", { for: "estimated-hours" }, "Estimated Hours", -1)),
1048
1082
  v(e("input", {
1049
1083
  type: "number",
@@ -1052,27 +1086,27 @@ function Cs(s, t, u, b, n, a) {
1052
1086
  min: "0",
1053
1087
  step: "0.5"
1054
1088
  }, null, 512), [
1055
- [w, n.form.estimatedHours]
1089
+ [k, n.form.estimatedHours]
1056
1090
  ])
1057
1091
  ])
1058
1092
  ]),
1059
- e("div", ut, [
1093
+ e("div", pt, [
1060
1094
  t[49] || (t[49] = e("label", { for: "assigned-to" }, "Assigned To", -1)),
1061
1095
  v(e("select", {
1062
1096
  id: "assigned-to",
1063
1097
  "onUpdate:modelValue": t[12] || (t[12] = (i) => n.form.assignedTo = i)
1064
1098
  }, [
1065
1099
  t[48] || (t[48] = e("option", { value: "" }, "-- Select Personnel --", -1)),
1066
- (o(!0), l(p, null, f(u.vesselCrew, (i) => (o(), l("option", {
1100
+ (o(!0), l(p, null, h(u.vesselCrew, (i) => (o(), l("option", {
1067
1101
  key: i.id,
1068
1102
  value: `${i.name} - ${i.role}`
1069
- }, r(i.name) + " - " + r(i.role), 9, ct))), 128))
1103
+ }, r(i.name) + " - " + r(i.role), 9, ft))), 128))
1070
1104
  ], 512), [
1071
1105
  [C, n.form.assignedTo]
1072
1106
  ])
1073
1107
  ]),
1074
- e("div", mt, [
1075
- e("div", vt, [
1108
+ e("div", ht, [
1109
+ e("div", gt, [
1076
1110
  t[51] || (t[51] = e("label", { for: "recurrence-type" }, "Recurrence", -1)),
1077
1111
  v(e("select", {
1078
1112
  id: "recurrence-type",
@@ -1085,18 +1119,18 @@ function Cs(s, t, u, b, n, a) {
1085
1119
  ])
1086
1120
  ])
1087
1121
  ]),
1088
- e("div", pt, [
1089
- e("div", ft, [
1122
+ e("div", bt, [
1123
+ e("div", yt, [
1090
1124
  t[52] || (t[52] = e("label", { for: "last-performed" }, "Last Performed Date", -1)),
1091
1125
  v(e("input", {
1092
1126
  type: "date",
1093
1127
  id: "last-performed",
1094
1128
  "onUpdate:modelValue": t[14] || (t[14] = (i) => n.form.lastPerformed = i)
1095
1129
  }, null, 512), [
1096
- [w, n.form.lastPerformed]
1130
+ [k, n.form.lastPerformed]
1097
1131
  ])
1098
1132
  ]),
1099
- e("div", ht, [
1133
+ e("div", wt, [
1100
1134
  t[53] || (t[53] = e("label", { for: "next-due" }, "Due Date", -1)),
1101
1135
  v(e("input", {
1102
1136
  type: "date",
@@ -1104,14 +1138,14 @@ function Cs(s, t, u, b, n, a) {
1104
1138
  "onUpdate:modelValue": t[15] || (t[15] = (i) => n.form.nextDue = i),
1105
1139
  required: ""
1106
1140
  }, null, 512), [
1107
- [w, n.form.nextDue]
1141
+ [k, n.form.nextDue]
1108
1142
  ])
1109
1143
  ])
1110
1144
  ]),
1111
- e("div", gt, [
1145
+ e("div", kt, [
1112
1146
  t[56] || (t[56] = e("label", null, "Notifications", -1)),
1113
- e("div", bt, [
1114
- e("div", yt, [
1147
+ e("div", _t, [
1148
+ e("div", Ct, [
1115
1149
  v(e("input", {
1116
1150
  type: "checkbox",
1117
1151
  id: "notify-email",
@@ -1121,7 +1155,7 @@ function Cs(s, t, u, b, n, a) {
1121
1155
  ]),
1122
1156
  t[54] || (t[54] = e("label", { for: "notify-email" }, "Email Notification", -1))
1123
1157
  ]),
1124
- e("div", wt, [
1158
+ e("div", Dt, [
1125
1159
  v(e("input", {
1126
1160
  type: "checkbox",
1127
1161
  id: "notify-sms",
@@ -1133,8 +1167,8 @@ function Cs(s, t, u, b, n, a) {
1133
1167
  ])
1134
1168
  ])
1135
1169
  ]),
1136
- e("div", kt, [
1137
- e("div", _t, [
1170
+ e("div", xt, [
1171
+ e("div", St, [
1138
1172
  t[58] || (t[58] = e("label", { for: "reminder-days" }, "Reminder (Days Before)", -1)),
1139
1173
  v(e("select", {
1140
1174
  id: "reminder-days",
@@ -1146,18 +1180,18 @@ function Cs(s, t, u, b, n, a) {
1146
1180
  ])
1147
1181
  ])
1148
1182
  ]),
1149
- e("div", Ct, [
1183
+ e("div", Pt, [
1150
1184
  t[59] || (t[59] = e("label", { for: "schedule-notes" }, "Notes", -1)),
1151
1185
  v(e("textarea", {
1152
1186
  id: "schedule-notes",
1153
1187
  "onUpdate:modelValue": t[19] || (t[19] = (i) => n.form.notes = i)
1154
1188
  }, null, 512), [
1155
- [w, n.form.notes]
1189
+ [k, n.form.notes]
1156
1190
  ])
1157
1191
  ]),
1158
- e("div", Dt, [
1192
+ e("div", At, [
1159
1193
  t[61] || (t[61] = e("label", null, "Attachments", -1)),
1160
- e("div", xt, [
1194
+ e("div", qt, [
1161
1195
  e("p", null, r(n.imgText), 1),
1162
1196
  e("input", {
1163
1197
  type: "file",
@@ -1172,13 +1206,13 @@ function Cs(s, t, u, b, n, a) {
1172
1206
  }, "Browse Files", -1))
1173
1207
  ])
1174
1208
  ]),
1175
- e("div", St, [
1209
+ e("div", Tt, [
1176
1210
  e("button", {
1177
1211
  type: "button",
1178
1212
  class: "btn btn-primary",
1179
1213
  onClick: t[21] || (t[21] = D((...i) => a.saveSchedule && a.saveSchedule(...i), ["prevent"])),
1180
1214
  disabled: n.isSaving
1181
- }, r(n.isSaving ? "Saving..." : "Save Schedule"), 9, Pt)
1215
+ }, r(n.isSaving ? "Saving..." : "Save Schedule"), 9, It)
1182
1216
  ])
1183
1217
  ])
1184
1218
  ], 2), [
@@ -1188,9 +1222,9 @@ function Cs(s, t, u, b, n, a) {
1188
1222
  class: g(["form-section", { active: n.activeSection === "inventory" }])
1189
1223
  }, [
1190
1224
  t[68] || (t[68] = e("h2", null, "All Maintenance", -1)),
1191
- e("div", At, [
1192
- e("div", qt, [
1193
- e("div", Tt, [
1225
+ e("div", Rt, [
1226
+ e("div", Mt, [
1227
+ e("div", Vt, [
1194
1228
  e("button", {
1195
1229
  class: g({ active: n.activeFilter === "due" }),
1196
1230
  onClick: t[22] || (t[22] = (i) => a.setFilter("due"))
@@ -1208,11 +1242,11 @@ function Cs(s, t, u, b, n, a) {
1208
1242
  "onUpdate:modelValue": t[25] || (t[25] = (i) => n.searchQuery = i),
1209
1243
  placeholder: "Search..."
1210
1244
  }, null, 512), [
1211
- [w, n.searchQuery]
1245
+ [k, n.searchQuery]
1212
1246
  ])
1213
1247
  ])
1214
1248
  ]),
1215
- e("table", Rt, [
1249
+ e("table", Ft, [
1216
1250
  t[63] || (t[63] = e("thead", null, [
1217
1251
  e("tr", null, [
1218
1252
  e("th", null, "Equipment"),
@@ -1226,7 +1260,7 @@ function Cs(s, t, u, b, n, a) {
1226
1260
  ])
1227
1261
  ], -1)),
1228
1262
  e("tbody", null, [
1229
- (o(!0), l(p, null, f(a.filteredTasks, (i) => (o(), l("tr", {
1263
+ (o(!0), l(p, null, h(a.filteredTasks, (i) => (o(), l("tr", {
1230
1264
  key: i.id
1231
1265
  }, [
1232
1266
  e("td", null, r(i.component), 1),
@@ -1243,23 +1277,23 @@ function Cs(s, t, u, b, n, a) {
1243
1277
  e("td", null, [
1244
1278
  i.status === "Completed" ? (o(), l("button", {
1245
1279
  key: 0,
1246
- onClick: (h) => a.printMaintenance(i.component),
1280
+ onClick: (f) => a.printMaintenance(i.component),
1247
1281
  class: "status-action"
1248
- }, "Print", 8, It)) : (o(), l("button", {
1282
+ }, "Print", 8, Et)) : (o(), l("button", {
1249
1283
  key: 1,
1250
- onClick: (h) => a.showMaintenance(i.component),
1284
+ onClick: (f) => a.showMaintenance(i.component),
1251
1285
  class: "status-action"
1252
- }, "Start", 8, Mt))
1286
+ }, "Start", 8, Nt))
1253
1287
  ])
1254
1288
  ]))), 128))
1255
1289
  ])
1256
1290
  ]),
1257
- u.tasks.length ? m("", !0) : (o(), l("div", Vt, [
1258
- e("div", Ft, [
1291
+ u.tasks.length ? m("", !0) : (o(), l("div", Ot, [
1292
+ e("div", Ut, [
1259
1293
  t[65] || (t[65] = e("h4", { class: "alert-heading" }, "Such Empty!!!", -1)),
1260
1294
  t[66] || (t[66] = e("p", null, "You have no maintenance, because you have not scheduled any for this ship.", -1)),
1261
1295
  t[67] || (t[67] = e("hr", null, null, -1)),
1262
- e("p", Et, [
1296
+ e("p", Lt, [
1263
1297
  t[64] || (t[64] = _("Navigate to the schedule tab, to start scheduling. Or click on this button to ", -1)),
1264
1298
  e("button", {
1265
1299
  type: "button",
@@ -1276,20 +1310,20 @@ function Cs(s, t, u, b, n, a) {
1276
1310
  ], 512), [
1277
1311
  [P, !n.showReport]
1278
1312
  ]),
1279
- v(e("div", Nt, [
1313
+ v(e("div", $t, [
1280
1314
  t[89] || (t[89] = e("div", { class: "header" }, [
1281
1315
  e("div", { class: "report-title" }, "MAINTENANCE TASK REPORT")
1282
1316
  ], -1)),
1283
- e("div", Ot, [
1284
- e("div", Ut, [
1317
+ e("div", jt, [
1318
+ e("div", Bt, [
1285
1319
  t[69] || (t[69] = e("div", { class: "info-label" }, "Report Generated:", -1)),
1286
1320
  e("div", null, r(n.reportDate), 1)
1287
1321
  ]),
1288
- e("div", Lt, [
1322
+ e("div", Ht, [
1289
1323
  t[70] || (t[70] = e("div", { class: "info-label" }, "Report ID:", -1)),
1290
1324
  e("div", null, r(n.reportId), 1)
1291
1325
  ]),
1292
- e("div", jt, [
1326
+ e("div", Qt, [
1293
1327
  t[71] || (t[71] = e("div", { class: "info-label" }, "Total Tasks:", -1)),
1294
1328
  e("div", null, r(n.maintenanceTasks.length), 1)
1295
1329
  ]),
@@ -1298,111 +1332,111 @@ function Cs(s, t, u, b, n, a) {
1298
1332
  e("div", null, "OceanHelm System")
1299
1333
  ], -1))
1300
1334
  ]),
1301
- e("div", $t, [
1335
+ e("div", Jt, [
1302
1336
  t[75] || (t[75] = e("div", { class: "section-title" }, "📊 Task Summary", -1)),
1303
- e("div", Bt, [
1337
+ e("div", Wt, [
1304
1338
  t[74] || (t[74] = x('<div class="summary-card"><div class="summary-number">1</div><div class="summary-label">Completed</div></div><div class="summary-card"><div class="summary-number">0</div><div class="summary-label">Pending</div></div><div class="summary-card"><div class="summary-number">0</div><div class="summary-label">Overdue</div></div>', 3)),
1305
- e("div", Ht, [
1306
- e("div", Qt, r(a.totalEstimatedHours), 1),
1339
+ e("div", Gt, [
1340
+ e("div", zt, r(a.totalEstimatedHours), 1),
1307
1341
  t[73] || (t[73] = e("div", { class: "summary-label" }, "Total Hours", -1))
1308
1342
  ])
1309
1343
  ])
1310
1344
  ]),
1311
- e("div", Jt, [
1345
+ e("div", Yt, [
1312
1346
  t[85] || (t[85] = e("div", { class: "section-title" }, "🔧 Maintenance Tasks", -1)),
1313
- (o(!0), l(p, null, f(n.maintenanceTasks, (i) => (o(), l("div", {
1347
+ (o(!0), l(p, null, h(n.maintenanceTasks, (i) => (o(), l("div", {
1314
1348
  key: i.taskName,
1315
1349
  class: g(["task-item", a.getTaskStatusClass(i)])
1316
1350
  }, [
1317
- e("div", Wt, [
1351
+ e("div", Kt, [
1318
1352
  e("div", null, [
1319
- e("div", Gt, [
1353
+ e("div", Xt, [
1320
1354
  _(r(i.taskName) + " ", 1),
1321
1355
  e("span", {
1322
1356
  class: g(["maintenance-type", "type-" + i.maintenanceType])
1323
1357
  }, r(i.maintenanceType), 3)
1324
1358
  ]),
1325
- e("div", zt, "Component: " + r(i.component), 1)
1359
+ e("div", Zt, "Component: " + r(i.component), 1)
1326
1360
  ]),
1327
1361
  e("span", {
1328
1362
  class: g(["status-badge", "status-" + i.status.toLowerCase().replace(" ", "-")])
1329
1363
  }, r(i.status), 3)
1330
1364
  ]),
1331
- e("div", Yt, [
1332
- e("div", Kt, [
1365
+ e("div", es, [
1366
+ e("div", ts, [
1333
1367
  t[76] || (t[76] = e("div", { class: "detail-label" }, "Assigned To", -1)),
1334
- e("div", Xt, r(i.assignedTo), 1)
1368
+ e("div", ss, r(i.assignedTo), 1)
1335
1369
  ]),
1336
- e("div", Zt, [
1370
+ e("div", is, [
1337
1371
  t[77] || (t[77] = e("div", { class: "detail-label" }, "Estimated Hours", -1)),
1338
- e("div", es, r(i.estimatedHours) + " hours", 1)
1372
+ e("div", ns, r(i.estimatedHours) + " hours", 1)
1339
1373
  ]),
1340
- e("div", ts, [
1374
+ e("div", os, [
1341
1375
  t[78] || (t[78] = e("div", { class: "detail-label" }, "Last Performed", -1)),
1342
- e("div", ss, r(a.formatDate(i.lastPerformed)), 1)
1376
+ e("div", ls, r(a.formatDate(i.lastPerformed)), 1)
1343
1377
  ]),
1344
- e("div", is, [
1378
+ e("div", rs, [
1345
1379
  t[79] || (t[79] = e("div", { class: "detail-label" }, "Next Due", -1)),
1346
- e("div", ns, r(a.formatDate(i.nextDue)), 1)
1380
+ e("div", as, r(a.formatDate(i.nextDue)), 1)
1347
1381
  ]),
1348
- e("div", os, [
1382
+ e("div", ds, [
1349
1383
  t[80] || (t[80] = e("div", { class: "detail-label" }, "Recurrence", -1)),
1350
- e("div", ls, r(i.recurrence), 1)
1384
+ e("div", us, r(i.recurrence), 1)
1351
1385
  ]),
1352
- e("div", rs, [
1386
+ e("div", cs, [
1353
1387
  t[81] || (t[81] = e("div", { class: "detail-label" }, "Remaining Days", -1)),
1354
- e("div", as, r(i.remainingDays) + " days", 1)
1388
+ e("div", ms, r(i.remainingDays) + " days", 1)
1355
1389
  ])
1356
1390
  ]),
1357
- i.description ? (o(), l("div", ds, [
1391
+ i.description ? (o(), l("div", vs, [
1358
1392
  t[82] || (t[82] = e("div", { class: "detail-label" }, "Description", -1)),
1359
- e("div", us, r(i.description), 1)
1393
+ e("div", ps, r(i.description), 1)
1360
1394
  ])) : m("", !0),
1361
- i.notes ? (o(), l("div", cs, [
1395
+ i.notes ? (o(), l("div", fs, [
1362
1396
  t[83] || (t[83] = e("div", { class: "detail-label" }, "Notes", -1)),
1363
- e("div", ms, r(i.notes), 1)
1397
+ e("div", hs, r(i.notes), 1)
1364
1398
  ])) : m("", !0),
1365
- i.checklistProgress && i.checklistProgress.length > 0 ? (o(), l("div", vs, [
1399
+ i.checklistProgress && i.checklistProgress.length > 0 ? (o(), l("div", gs, [
1366
1400
  t[84] || (t[84] = e("div", { class: "detail-label" }, "Checklist Progress", -1)),
1367
- e("div", ps, [
1401
+ e("div", bs, [
1368
1402
  e("div", {
1369
1403
  class: "progress-fill",
1370
1404
  style: E({ width: a.getChecklistProgress(i) + "%" })
1371
1405
  }, null, 4)
1372
1406
  ]),
1373
- e("div", fs, r(a.getCompletedChecklistItems(i)) + " of " + r(i.checklistProgress.length) + " items completed (" + r(a.getChecklistProgress(i)) + "%) ", 1),
1374
- e("div", hs, [
1375
- (o(!0), l(p, null, f(i.checklistProgress, (h, k) => (o(), l("div", {
1376
- key: k,
1407
+ e("div", ys, r(a.getCompletedChecklistItems(i)) + " of " + r(i.checklistProgress.length) + " items completed (" + r(a.getChecklistProgress(i)) + "%) ", 1),
1408
+ e("div", ws, [
1409
+ (o(!0), l(p, null, h(i.checklistProgress, (f, y) => (o(), l("div", {
1410
+ key: y,
1377
1411
  class: "checklist-item"
1378
1412
  }, [
1379
- e("span", gs, r(h.completed ? "✅" : "⭕"), 1),
1380
- e("span", null, r(h.text || "Checklist Item " + (k + 1)), 1)
1413
+ e("span", ks, r(f.completed ? "✅" : "⭕"), 1),
1414
+ e("span", null, r(f.text || "Checklist Item " + (y + 1)), 1)
1381
1415
  ]))), 128))
1382
1416
  ])
1383
1417
  ])) : m("", !0)
1384
1418
  ], 2))), 128))
1385
1419
  ]),
1386
- e("div", bs, [
1420
+ e("div", _s, [
1387
1421
  t[86] || (t[86] = e("div", { class: "section-title" }, "📋 Recommendations", -1)),
1388
- e("div", ys, [
1422
+ e("div", Cs, [
1389
1423
  e("ul", null, [
1390
- (o(!0), l(p, null, f(a.generateRecommendations(), (i) => (o(), l("li", { key: i }, r(i), 1))), 128))
1424
+ (o(!0), l(p, null, h(a.generateRecommendations(), (i) => (o(), l("li", { key: i }, r(i), 1))), 128))
1391
1425
  ])
1392
1426
  ])
1393
1427
  ]),
1394
- e("div", ws, [
1428
+ e("div", Ds, [
1395
1429
  t[88] || (t[88] = e("div", { class: "signature-box" }, [
1396
1430
  e("div", null, [
1397
1431
  e("strong", null, "Report Generated By")
1398
1432
  ]),
1399
1433
  e("div", { style: { "margin-top": "10px", color: "#666" } }, "OceanHelm Maintenance System")
1400
1434
  ], -1)),
1401
- e("div", ks, [
1435
+ e("div", xs, [
1402
1436
  t[87] || (t[87] = e("div", null, [
1403
1437
  e("strong", null, "Date")
1404
1438
  ], -1)),
1405
- e("div", _s, r(n.reportDate), 1)
1439
+ e("div", Ss, r(n.reportDate), 1)
1406
1440
  ])
1407
1441
  ])
1408
1442
  ], 512), [
@@ -1411,8 +1445,8 @@ function Cs(s, t, u, b, n, a) {
1411
1445
  ])
1412
1446
  ])) : m("", !0);
1413
1447
  }
1414
- const Ds = /* @__PURE__ */ S(Me, [["render", Cs]]);
1415
- const xs = {
1448
+ const As = /* @__PURE__ */ S(Ne, [["render", Ps]]);
1449
+ const qs = {
1416
1450
  name: "ActivityLogs",
1417
1451
  props: {
1418
1452
  loading: Boolean,
@@ -1442,23 +1476,23 @@ const xs = {
1442
1476
  }[s] || "badge-view";
1443
1477
  }
1444
1478
  }
1445
- }, Ss = { class: "activity-logs" }, Ps = { class: "a-controls" }, As = { class: "a-search-box" }, qs = ["value"], Ts = ["value"], Rs = { class: "stats-grid" }, Is = { class: "stat-card" }, Ms = { class: "value" }, Vs = { class: "stat-card" }, Fs = { class: "value" }, Es = { class: "stat-card" }, Ns = { class: "value" }, Os = { class: "logs-container" }, Us = {
1479
+ }, Ts = { class: "activity-logs" }, Is = { class: "a-controls" }, Rs = { class: "a-search-box" }, Ms = ["value"], Vs = ["value"], Fs = { class: "stats-grid" }, Es = { class: "stat-card" }, Ns = { class: "value" }, Os = { class: "stat-card" }, Us = { class: "value" }, Ls = { class: "stat-card" }, $s = { class: "value" }, js = { class: "logs-container" }, Bs = {
1446
1480
  key: 0,
1447
1481
  class: "loading"
1448
- }, Ls = {
1482
+ }, Hs = {
1449
1483
  key: 1,
1450
1484
  class: "no-logs"
1451
- }, js = { key: 2 }, $s = { class: "logs-table" }, Bs = { style: { color: "gray" } }, Hs = { style: { color: "gray" } }, Qs = { class: "pagination" }, Js = ["disabled"], Ws = ["onClick"], Gs = ["disabled"];
1452
- function zs(s, t, u, b, n, a) {
1453
- return o(), l("div", Ss, [
1454
- e("div", Ps, [
1455
- e("div", As, [
1485
+ }, Qs = { key: 2 }, Js = { class: "logs-table" }, Ws = { style: { color: "gray" } }, Gs = { style: { color: "gray" } }, zs = { class: "pagination" }, Ys = ["disabled"], Ks = ["onClick"], Xs = ["disabled"];
1486
+ function Zs(s, t, u, b, n, a) {
1487
+ return o(), l("div", Ts, [
1488
+ e("div", Is, [
1489
+ e("div", Rs, [
1456
1490
  e("input", {
1457
1491
  type: "text",
1458
1492
  placeholder: "Search activities, users, or actions...",
1459
1493
  value: u.searchTerm,
1460
1494
  onInput: t[0] || (t[0] = (i) => s.$emit("update:searchTerm", i.target.value))
1461
- }, null, 40, qs)
1495
+ }, null, 40, Ms)
1462
1496
  ]),
1463
1497
  e("select", {
1464
1498
  class: "filter-select",
@@ -1466,7 +1500,7 @@ function zs(s, t, u, b, n, a) {
1466
1500
  onChange: t[1] || (t[1] = (i) => s.$emit("update:selectedFilter", i.target.value))
1467
1501
  }, t[6] || (t[6] = [
1468
1502
  x('<option value="all">All Activities</option><option value="login">Login</option><option value="logout">Logout</option><option value="create">Create</option><option value="update">Update</option><option value="delete">Delete</option><option value="view">View</option>', 7)
1469
- ]), 40, Ts),
1503
+ ]), 40, Vs),
1470
1504
  e("button", {
1471
1505
  class: "btn btn-primary",
1472
1506
  onClick: t[2] || (t[2] = (i) => s.$emit("refresh"))
@@ -1476,33 +1510,33 @@ function zs(s, t, u, b, n, a) {
1476
1510
  onClick: t[3] || (t[3] = (i) => s.$emit("download"))
1477
1511
  }, "📥 Download Report")
1478
1512
  ]),
1479
- e("div", Rs, [
1480
- e("div", Is, [
1513
+ e("div", Fs, [
1514
+ e("div", Es, [
1481
1515
  t[7] || (t[7] = e("h3", null, "Total Activities", -1)),
1482
- e("div", Ms, r(u.totalActivities), 1)
1516
+ e("div", Ns, r(u.totalActivities), 1)
1483
1517
  ]),
1484
- e("div", Vs, [
1518
+ e("div", Os, [
1485
1519
  t[8] || (t[8] = e("h3", null, "Today's Activities", -1)),
1486
- e("div", Fs, r(u.todayActivities), 1)
1520
+ e("div", Us, r(u.todayActivities), 1)
1487
1521
  ]),
1488
- e("div", Es, [
1522
+ e("div", Ls, [
1489
1523
  t[9] || (t[9] = e("h3", null, "Active Users", -1)),
1490
- e("div", Ns, r(u.activeUsers), 1)
1524
+ e("div", $s, r(u.activeUsers), 1)
1491
1525
  ]),
1492
1526
  t[10] || (t[10] = e("div", { class: "stat-card" }, [
1493
1527
  e("h3", null, "Important"),
1494
1528
  e("div", { class: "badge-danger" }, " Logs are deleted at the end of every month, please download a copy ")
1495
1529
  ], -1))
1496
1530
  ]),
1497
- e("div", Os, [
1498
- u.loading ? (o(), l("div", Us, t[11] || (t[11] = [
1531
+ e("div", js, [
1532
+ u.loading ? (o(), l("div", Bs, t[11] || (t[11] = [
1499
1533
  e("div", { class: "spinner" }, null, -1),
1500
1534
  e("p", null, "Loading activity logs...", -1)
1501
- ]))) : u.logs.length === 0 ? (o(), l("div", Ls, t[12] || (t[12] = [
1535
+ ]))) : u.logs.length === 0 ? (o(), l("div", Hs, t[12] || (t[12] = [
1502
1536
  e("h3", null, "No activities found", -1),
1503
1537
  e("p", null, "Try adjusting your search or filter criteria", -1)
1504
- ]))) : (o(), l("div", js, [
1505
- e("table", $s, [
1538
+ ]))) : (o(), l("div", Qs, [
1539
+ e("table", Js, [
1506
1540
  t[13] || (t[13] = e("thead", null, [
1507
1541
  e("tr", null, [
1508
1542
  e("th", null, "Timestamp"),
@@ -1513,13 +1547,13 @@ function zs(s, t, u, b, n, a) {
1513
1547
  ])
1514
1548
  ], -1)),
1515
1549
  e("tbody", null, [
1516
- (o(!0), l(p, null, f(u.paginatedLogs, (i) => (o(), l("tr", {
1550
+ (o(!0), l(p, null, h(u.paginatedLogs, (i) => (o(), l("tr", {
1517
1551
  key: i.id
1518
1552
  }, [
1519
1553
  e("td", null, r(a.formatDate(i.timestamp)), 1),
1520
1554
  e("td", null, [
1521
1555
  e("div", null, r(i.user_name), 1),
1522
- e("small", Bs, r(i.email), 1)
1556
+ e("small", Ws, r(i.email), 1)
1523
1557
  ]),
1524
1558
  e("td", null, [
1525
1559
  e("span", {
@@ -1528,36 +1562,36 @@ function zs(s, t, u, b, n, a) {
1528
1562
  ]),
1529
1563
  e("td", null, [
1530
1564
  _(r(i.details.status) + " ", 1),
1531
- (o(!0), l(p, null, f(i.details.information, (h, k) => (o(), l("div", { key: k }, [
1532
- e("strong", null, r(k) + ": ", 1),
1533
- e("small", Hs, r(h.from || "") + " → " + r(h.to || h), 1)
1565
+ (o(!0), l(p, null, h(i.details.information, (f, y) => (o(), l("div", { key: y }, [
1566
+ e("strong", null, r(y) + ": ", 1),
1567
+ e("small", Gs, r(f.from || "") + " → " + r(f.to || f), 1)
1534
1568
  ]))), 128))
1535
1569
  ]),
1536
1570
  e("td", null, r(i.table_name), 1)
1537
1571
  ]))), 128))
1538
1572
  ])
1539
1573
  ]),
1540
- e("div", Qs, [
1574
+ e("div", zs, [
1541
1575
  e("button", {
1542
1576
  onClick: t[4] || (t[4] = (i) => s.$emit("change-page", u.currentPage - 1)),
1543
1577
  disabled: u.currentPage === 1
1544
- }, " Previous ", 8, Js),
1545
- (o(!0), l(p, null, f(u.totalPages, (i) => (o(), l("button", {
1578
+ }, " Previous ", 8, Ys),
1579
+ (o(!0), l(p, null, h(u.totalPages, (i) => (o(), l("button", {
1546
1580
  key: i,
1547
- onClick: (h) => s.$emit("change-page", i),
1581
+ onClick: (f) => s.$emit("change-page", i),
1548
1582
  class: g({ active: u.currentPage === i })
1549
- }, r(i), 11, Ws))), 128)),
1583
+ }, r(i), 11, Ks))), 128)),
1550
1584
  e("button", {
1551
1585
  onClick: t[5] || (t[5] = (i) => s.$emit("change-page", u.currentPage + 1)),
1552
1586
  disabled: u.currentPage === u.totalPages
1553
- }, " Next ", 8, Gs)
1587
+ }, " Next ", 8, Xs)
1554
1588
  ])
1555
1589
  ]))
1556
1590
  ])
1557
1591
  ]);
1558
1592
  }
1559
- const Ys = /* @__PURE__ */ S(xs, [["render", zs]]);
1560
- const Ks = {
1593
+ const ei = /* @__PURE__ */ S(qs, [["render", Zs]]);
1594
+ const ti = {
1561
1595
  name: "CrewManagement",
1562
1596
  props: {
1563
1597
  // Required props
@@ -1652,14 +1686,15 @@ const Ks = {
1652
1686
  methods: {
1653
1687
  // Permission checking
1654
1688
  hasPermission(s) {
1655
- var b;
1656
- const { role: t } = this.userProfile;
1657
- return ((b = {
1689
+ const { role: t, vessel: u } = this.userProfile, b = u === this.vesselName;
1690
+ let a = {
1658
1691
  owner: ["add", "edit", "delete", "assign", "view"],
1659
1692
  staff: ["add", "edit", "assign", "view"],
1660
1693
  captain: ["assign", "view"],
1694
+ // default for captain
1661
1695
  viewer: ["view"]
1662
- }[t]) == null ? void 0 : b.includes(s)) || !1;
1696
+ }[t] || [];
1697
+ return t === "captain" && b && (a = [...a, "add"]), a.includes(s);
1663
1698
  },
1664
1699
  // Event handlers
1665
1700
  handleToggleAddForm() {
@@ -1779,39 +1814,39 @@ const Ks = {
1779
1814
  return b.setMonth(u.getMonth() + 1), t <= u ? "expired" : t <= b ? "expiringSoon" : "valid";
1780
1815
  }
1781
1816
  }
1782
- }, Xs = { class: "crew-management" }, Zs = {
1817
+ }, si = { class: "crew-management" }, ii = {
1783
1818
  key: 0,
1784
1819
  class: "wave-bg"
1785
- }, ei = { class: "crew-section" }, ti = { class: "crew-section-header" }, si = { class: "search-filter" }, ii = {
1820
+ }, ni = { class: "crew-section" }, oi = { class: "crew-section-header" }, li = { class: "search-filter" }, ri = {
1786
1821
  key: 0,
1787
1822
  class: "loading-state"
1788
- }, ni = {
1823
+ }, ai = {
1789
1824
  key: 1,
1790
1825
  class: "crew-grid"
1791
- }, oi = { class: "crew-name" }, li = { class: "crew-role" }, ri = { class: "crew-certifications" }, ai = ["onClick"], di = ["onClick"], ui = { class: "crew-availability" }, ci = { class: "crew-availability" }, mi = { class: "action-buttons" }, vi = {
1826
+ }, di = { class: "crew-name" }, ui = { class: "crew-role" }, ci = { class: "crew-certifications" }, mi = ["onClick"], vi = ["onClick"], pi = { class: "crew-availability" }, fi = { class: "crew-availability" }, hi = { class: "action-buttons" }, gi = {
1792
1827
  key: 0,
1793
1828
  class: "status-available crew-availability vcard"
1794
- }, pi = {
1829
+ }, bi = {
1795
1830
  key: 1,
1796
1831
  class: "status-unavailable crew-availability vcard"
1797
- }, fi = ["onClick"], hi = ["onClick"], gi = {
1832
+ }, yi = ["onClick"], wi = ["onClick"], ki = {
1798
1833
  key: 2,
1799
1834
  class: "no-results"
1800
- }, bi = {
1835
+ }, _i = {
1801
1836
  key: 3,
1802
1837
  class: "add-crew-form"
1803
- }, yi = { class: "form-row" }, wi = { class: "form-group" }, ki = {
1838
+ }, Ci = { class: "form-row" }, Di = { class: "form-group" }, xi = {
1804
1839
  key: 0,
1805
1840
  class: "error-message"
1806
- }, _i = { class: "form-group" }, Ci = ["value"], Di = { class: "form-row" }, xi = { class: "form-group" }, Si = { class: "form-group" }, Pi = {
1841
+ }, Si = { class: "form-group" }, Pi = ["value"], Ai = { class: "form-row" }, qi = { class: "form-group" }, Ti = { class: "form-group" }, Ii = {
1807
1842
  key: 0,
1808
1843
  class: "error-message"
1809
- }, Ai = { class: "certification-section" }, qi = { class: "form-row" }, Ti = { class: "form-group" }, Ri = ["onUpdate:modelValue"], Ii = { class: "form-group" }, Mi = ["onUpdate:modelValue"], Vi = { class: "form-group" }, Fi = ["onClick"], Ei = { class: "form-row" }, Ni = { class: "form-group" }, Oi = { class: "form-actions" };
1810
- function Ui(s, t, u, b, n, a) {
1811
- return o(), l("div", Xs, [
1812
- u.config.showWaveBackground ? (o(), l("div", Zs)) : m("", !0),
1813
- e("div", ei, [
1814
- e("div", ti, [
1844
+ }, Ri = { class: "certification-section" }, Mi = { class: "form-row" }, Vi = { class: "form-group" }, Fi = ["onUpdate:modelValue"], Ei = { class: "form-group" }, Ni = ["onUpdate:modelValue"], Oi = { class: "form-group" }, Ui = ["onClick"], Li = { class: "form-row" }, $i = { class: "form-group" }, ji = { class: "form-actions" };
1845
+ function Bi(s, t, u, b, n, a) {
1846
+ return o(), l("div", si, [
1847
+ u.config.showWaveBackground ? (o(), l("div", ii)) : m("", !0),
1848
+ e("div", ni, [
1849
+ e("div", oi, [
1815
1850
  e("h2", null, r(a.sectionTitle), 1),
1816
1851
  a.canAddCrew ? (o(), l("button", {
1817
1852
  key: 0,
@@ -1819,14 +1854,14 @@ function Ui(s, t, u, b, n, a) {
1819
1854
  onClick: t[0] || (t[0] = (...i) => a.handleToggleAddForm && a.handleToggleAddForm(...i))
1820
1855
  }, r(n.showAddForm ? "Cancel" : "+ Add Crew Member"), 1)) : m("", !0)
1821
1856
  ]),
1822
- e("div", si, [
1857
+ e("div", li, [
1823
1858
  v(e("input", {
1824
1859
  type: "text",
1825
1860
  placeholder: "Search crew by name or role...",
1826
1861
  "onUpdate:modelValue": t[1] || (t[1] = (i) => n.searchQuery = i),
1827
1862
  onInput: t[2] || (t[2] = (...i) => a.handleSearch && a.handleSearch(...i))
1828
1863
  }, null, 544), [
1829
- [w, n.searchQuery]
1864
+ [k, n.searchQuery]
1830
1865
  ]),
1831
1866
  v(e("select", {
1832
1867
  "onUpdate:modelValue": t[3] || (t[3] = (i) => n.filterStatus = i),
@@ -1840,7 +1875,7 @@ function Ui(s, t, u, b, n, a) {
1840
1875
  [C, n.filterStatus]
1841
1876
  ])
1842
1877
  ]),
1843
- u.loading ? (o(), l("div", ii, t[15] || (t[15] = [
1878
+ u.loading ? (o(), l("div", ri, t[15] || (t[15] = [
1844
1879
  e("div", {
1845
1880
  class: "spinner-border text-primary",
1846
1881
  role: "status"
@@ -1848,55 +1883,55 @@ function Ui(s, t, u, b, n, a) {
1848
1883
  e("span", { class: "visually-hidden" }, "Loading crew...")
1849
1884
  ], -1),
1850
1885
  e("p", null, "Loading crew members...", -1)
1851
- ]))) : a.filteredCrew.length > 0 ? (o(), l("div", ni, [
1852
- (o(!0), l(p, null, f(a.filteredCrew, (i) => (o(), l("div", {
1886
+ ]))) : a.filteredCrew.length > 0 ? (o(), l("div", ai, [
1887
+ (o(!0), l(p, null, h(a.filteredCrew, (i) => (o(), l("div", {
1853
1888
  key: i.id,
1854
1889
  class: g(["crew-card", { unavailable: i.status === "unavailable" }])
1855
1890
  }, [
1856
1891
  e("div", {
1857
1892
  class: g(["crew-status-badge", a.getStatusClass(i.status)])
1858
1893
  }, r(a.formatStatus(i.status)), 3),
1859
- e("div", oi, r(i.name), 1),
1860
- e("div", li, r(i.role), 1),
1861
- e("div", ri, [
1862
- (o(!0), l(p, null, f(i.certifications, (h) => (o(), l("div", {
1863
- key: h.name,
1864
- class: g(["certification-tag", a.getCertificationClass(h.expiryDate)]),
1865
- onClick: (k) => a.handleViewCertification(h, i)
1866
- }, r(h.name), 11, ai))), 128)),
1894
+ e("div", di, r(i.name), 1),
1895
+ e("div", ui, r(i.role), 1),
1896
+ e("div", ci, [
1897
+ (o(!0), l(p, null, h(i.certifications, (f) => (o(), l("div", {
1898
+ key: f.name,
1899
+ class: g(["certification-tag", a.getCertificationClass(f.expiryDate)]),
1900
+ onClick: (y) => a.handleViewCertification(f, i)
1901
+ }, r(f.name), 11, mi))), 128)),
1867
1902
  a.canEditCrew ? (o(), l("i", {
1868
1903
  key: 0,
1869
1904
  class: "bi bi-patch-plus-fill icon",
1870
- onClick: (h) => a.handleAddCertification(i)
1871
- }, null, 8, di)) : m("", !0)
1905
+ onClick: (f) => a.handleAddCertification(i)
1906
+ }, null, 8, vi)) : m("", !0)
1872
1907
  ]),
1873
- e("div", ui, [
1908
+ e("div", pi, [
1874
1909
  t[16] || (t[16] = e("strong", null, "Embarkation Date:", -1)),
1875
1910
  _(" " + r(i.nextShift || "Not Scheduled"), 1)
1876
1911
  ]),
1877
- e("div", ci, [
1912
+ e("div", fi, [
1878
1913
  t[17] || (t[17] = e("strong", null, "Expected Days Onboard (in days):", -1)),
1879
1914
  _(" " + r(i.onBoard || "Not Scheduled"), 1)
1880
1915
  ]),
1881
- e("div", mi, [
1882
- i.vessel ? (o(), l("div", vi, " Vessel: " + r(i.vessel), 1)) : (o(), l("div", pi, " Vessel: Unassigned ")),
1916
+ e("div", hi, [
1917
+ i.vessel ? (o(), l("div", gi, " Vessel: " + r(i.vessel), 1)) : (o(), l("div", bi, " Vessel: Unassigned ")),
1883
1918
  a.canAssignShift ? (o(), l("button", {
1884
1919
  key: 2,
1885
1920
  class: "btn btn-primary",
1886
- onClick: (h) => a.handleAssignShift(i)
1887
- }, " Assign Shift ", 8, fi)) : m("", !0)
1921
+ onClick: (f) => a.handleAssignShift(i)
1922
+ }, " Assign Shift ", 8, yi)) : m("", !0)
1888
1923
  ]),
1889
1924
  a.canDeleteCrew ? (o(), l("i", {
1890
1925
  key: 0,
1891
1926
  class: "bi bi-trash icon delete-icon",
1892
- onClick: (h) => a.handleDeleteCrew(i)
1893
- }, null, 8, hi)) : m("", !0)
1927
+ onClick: (f) => a.handleDeleteCrew(i)
1928
+ }, null, 8, wi)) : m("", !0)
1894
1929
  ], 2))), 128))
1895
- ])) : u.loading ? m("", !0) : (o(), l("div", gi, r(u.crew.length === 0 ? "No crew members found." : "No crew members found matching your search criteria."), 1)),
1896
- n.showAddForm ? (o(), l("div", bi, [
1930
+ ])) : u.loading ? m("", !0) : (o(), l("div", ki, r(u.crew.length === 0 ? "No crew members found." : "No crew members found matching your search criteria."), 1)),
1931
+ n.showAddForm ? (o(), l("div", _i, [
1897
1932
  t[28] || (t[28] = e("h2", null, "Add New Crew Member", -1)),
1898
- e("div", yi, [
1899
- e("div", wi, [
1933
+ e("div", Ci, [
1934
+ e("div", Di, [
1900
1935
  t[18] || (t[18] = e("label", { for: "crew-name" }, "Full Name *", -1)),
1901
1936
  v(e("input", {
1902
1937
  type: "text",
@@ -1904,20 +1939,20 @@ function Ui(s, t, u, b, n, a) {
1904
1939
  "onUpdate:modelValue": t[5] || (t[5] = (i) => n.newCrew.name = i),
1905
1940
  class: g({ error: n.formErrors.name })
1906
1941
  }, null, 2), [
1907
- [w, n.newCrew.name]
1942
+ [k, n.newCrew.name]
1908
1943
  ]),
1909
- n.formErrors.name ? (o(), l("div", ki, r(n.formErrors.name), 1)) : m("", !0)
1944
+ n.formErrors.name ? (o(), l("div", xi, r(n.formErrors.name), 1)) : m("", !0)
1910
1945
  ]),
1911
- e("div", _i, [
1946
+ e("div", Si, [
1912
1947
  t[20] || (t[20] = e("label", { for: "crew-role" }, "Role/Position *", -1)),
1913
1948
  v(e("select", {
1914
1949
  id: "crew-role",
1915
1950
  "onUpdate:modelValue": t[6] || (t[6] = (i) => n.newCrew.role = i)
1916
1951
  }, [
1917
- (o(!0), l(p, null, f(u.availableRoles, (i) => (o(), l("option", {
1952
+ (o(!0), l(p, null, h(u.availableRoles, (i) => (o(), l("option", {
1918
1953
  key: i,
1919
1954
  value: i
1920
- }, r(i), 9, Ci))), 128)),
1955
+ }, r(i), 9, Pi))), 128)),
1921
1956
  t[19] || (t[19] = e("option", { value: "Other" }, "Other", -1))
1922
1957
  ], 512), [
1923
1958
  [C, n.newCrew.role]
@@ -1929,12 +1964,12 @@ function Ui(s, t, u, b, n, a) {
1929
1964
  "onUpdate:modelValue": t[7] || (t[7] = (i) => n.newCrew.customRole = i),
1930
1965
  style: { "margin-top": "8px" }
1931
1966
  }, null, 512)), [
1932
- [w, n.newCrew.customRole]
1967
+ [k, n.newCrew.customRole]
1933
1968
  ]) : m("", !0)
1934
1969
  ])
1935
1970
  ]),
1936
- e("div", Di, [
1937
- e("div", xi, [
1971
+ e("div", Ai, [
1972
+ e("div", qi, [
1938
1973
  t[22] || (t[22] = e("label", { for: "crew-status" }, "Status *", -1)),
1939
1974
  v(e("select", {
1940
1975
  id: "crew-status",
@@ -1947,7 +1982,7 @@ function Ui(s, t, u, b, n, a) {
1947
1982
  [C, n.newCrew.status]
1948
1983
  ])
1949
1984
  ]),
1950
- e("div", Si, [
1985
+ e("div", Ti, [
1951
1986
  t[23] || (t[23] = e("label", { for: "crew-email" }, "Email Address *", -1)),
1952
1987
  v(e("input", {
1953
1988
  type: "email",
@@ -1955,44 +1990,44 @@ function Ui(s, t, u, b, n, a) {
1955
1990
  "onUpdate:modelValue": t[9] || (t[9] = (i) => n.newCrew.email = i),
1956
1991
  class: g({ error: n.formErrors.email })
1957
1992
  }, null, 2), [
1958
- [w, n.newCrew.email]
1993
+ [k, n.newCrew.email]
1959
1994
  ]),
1960
- n.formErrors.email ? (o(), l("div", Pi, r(n.formErrors.email), 1)) : m("", !0)
1995
+ n.formErrors.email ? (o(), l("div", Ii, r(n.formErrors.email), 1)) : m("", !0)
1961
1996
  ])
1962
1997
  ]),
1963
- e("div", Ai, [
1998
+ e("div", Ri, [
1964
1999
  t[26] || (t[26] = e("h3", null, "Certifications", -1)),
1965
- (o(!0), l(p, null, f(n.newCrew.certifications, (i, h) => (o(), l("div", {
1966
- key: h,
2000
+ (o(!0), l(p, null, h(n.newCrew.certifications, (i, f) => (o(), l("div", {
2001
+ key: f,
1967
2002
  class: "certification-entry"
1968
2003
  }, [
1969
- e("div", qi, [
1970
- e("div", Ti, [
2004
+ e("div", Mi, [
2005
+ e("div", Vi, [
1971
2006
  t[24] || (t[24] = e("label", null, "Certification Name", -1)),
1972
2007
  v(e("input", {
1973
2008
  type: "text",
1974
- "onUpdate:modelValue": (k) => i.name = k,
2009
+ "onUpdate:modelValue": (y) => i.name = y,
1975
2010
  placeholder: "Enter certification name"
1976
- }, null, 8, Ri), [
1977
- [w, i.name]
2011
+ }, null, 8, Fi), [
2012
+ [k, i.name]
1978
2013
  ])
1979
2014
  ]),
1980
- e("div", Ii, [
2015
+ e("div", Ei, [
1981
2016
  t[25] || (t[25] = e("label", null, "Expiry Date", -1)),
1982
2017
  v(e("input", {
1983
2018
  type: "date",
1984
- "onUpdate:modelValue": (k) => i.expiryDate = k
1985
- }, null, 8, Mi), [
1986
- [w, i.expiryDate]
2019
+ "onUpdate:modelValue": (y) => i.expiryDate = y
2020
+ }, null, 8, Ni), [
2021
+ [k, i.expiryDate]
1987
2022
  ])
1988
2023
  ]),
1989
- e("div", Vi, [
2024
+ e("div", Oi, [
1990
2025
  n.newCrew.certifications.length > 1 ? (o(), l("button", {
1991
2026
  key: 0,
1992
2027
  type: "button",
1993
2028
  class: "btn btn-danger btn-sm",
1994
- onClick: (k) => a.removeCertification(h)
1995
- }, " Remove ", 8, Fi)) : m("", !0)
2029
+ onClick: (y) => a.removeCertification(f)
2030
+ }, " Remove ", 8, Ui)) : m("", !0)
1996
2031
  ])
1997
2032
  ])
1998
2033
  ]))), 128)),
@@ -2002,19 +2037,19 @@ function Ui(s, t, u, b, n, a) {
2002
2037
  onClick: t[10] || (t[10] = (...i) => a.addCertificationEntry && a.addCertificationEntry(...i))
2003
2038
  }, " + Add More Certification ")
2004
2039
  ]),
2005
- e("div", Ei, [
2006
- e("div", Ni, [
2040
+ e("div", Li, [
2041
+ e("div", $i, [
2007
2042
  t[27] || (t[27] = e("label", { for: "crew-notes" }, "Notes", -1)),
2008
2043
  v(e("textarea", {
2009
2044
  id: "crew-notes",
2010
2045
  rows: "3",
2011
2046
  "onUpdate:modelValue": t[11] || (t[11] = (i) => n.newCrew.notes = i)
2012
2047
  }, null, 512), [
2013
- [w, n.newCrew.notes]
2048
+ [k, n.newCrew.notes]
2014
2049
  ])
2015
2050
  ])
2016
2051
  ]),
2017
- e("div", Oi, [
2052
+ e("div", ji, [
2018
2053
  e("button", {
2019
2054
  class: "btn btn-secondary",
2020
2055
  onClick: t[12] || (t[12] = (...i) => a.handleCancelForm && a.handleCancelForm(...i))
@@ -2028,8 +2063,8 @@ function Ui(s, t, u, b, n, a) {
2028
2063
  ])
2029
2064
  ]);
2030
2065
  }
2031
- const Li = /* @__PURE__ */ S(Ks, [["render", Ui]]);
2032
- const ji = {
2066
+ const Hi = /* @__PURE__ */ S(ti, [["render", Bi]]);
2067
+ const Qi = {
2033
2068
  name: "RequisitionSystem",
2034
2069
  props: {
2035
2070
  userProfile: {
@@ -2277,75 +2312,75 @@ const ji = {
2277
2312
  created() {
2278
2313
  this.addItem();
2279
2314
  }
2280
- }, $i = { class: "s-container container" }, Bi = { class: "nav-tabs" }, Hi = ["onClick"], Qi = {
2315
+ }, Ji = { class: "s-container container" }, Wi = { class: "nav-tabs" }, Gi = ["onClick"], zi = {
2281
2316
  key: 0,
2282
2317
  class: "tab-content active"
2283
- }, Ji = { class: "form-grid" }, Wi = { class: "form-group" }, Gi = ["value"], zi = { class: "form-group" }, Yi = ["value"], Ki = { class: "form-group" }, Xi = ["value"], Zi = { class: "form-group" }, en = { class: "form-group" }, tn = { class: "items-section" }, sn = { class: "items-header" }, nn = { class: "form-group" }, on = ["onUpdate:modelValue"], ln = { class: "form-group" }, rn = ["onUpdate:modelValue"], an = { class: "form-group" }, dn = ["onUpdate:modelValue"], un = { class: "form-group" }, cn = ["onUpdate:modelValue"], mn = ["value"], vn = { class: "form-group" }, pn = ["onUpdate:modelValue"], fn = ["onClick"], hn = {
2318
+ }, Yi = { class: "form-grid" }, Ki = { class: "form-group" }, Xi = ["value"], Zi = { class: "form-group" }, en = ["value"], tn = { class: "form-group" }, sn = ["value"], nn = { class: "form-group" }, on = { class: "form-group" }, ln = { class: "items-section" }, rn = { class: "items-header" }, an = { class: "form-group" }, dn = ["onUpdate:modelValue"], un = { class: "form-group" }, cn = ["onUpdate:modelValue"], mn = { class: "form-group" }, vn = ["onUpdate:modelValue"], pn = { class: "form-group" }, fn = ["onUpdate:modelValue"], hn = ["value"], gn = { class: "form-group" }, bn = ["onUpdate:modelValue"], yn = ["onClick"], wn = {
2284
2319
  key: 1,
2285
2320
  class: "tab-content active"
2286
- }, gn = { class: "requisition-list" }, bn = { class: "requisition-header" }, yn = { class: "requisition-id" }, wn = { class: "requisition-details" }, kn = { class: "detail-label" }, _n = { class: "detail-value" }, Cn = {
2321
+ }, kn = { class: "requisition-list" }, _n = { class: "requisition-header" }, Cn = { class: "requisition-id" }, Dn = { class: "requisition-details" }, xn = { class: "detail-label" }, Sn = { class: "detail-value" }, Pn = {
2287
2322
  key: 0,
2288
2323
  class: "form-group comments-section"
2289
- }, Dn = ["onClick"], xn = {
2324
+ }, An = ["onClick"], qn = {
2290
2325
  key: 2,
2291
2326
  class: "tab-content active"
2292
- }, Sn = { class: "requisition-list" }, Pn = { class: "requisition-header" }, An = { class: "requisition-id" }, qn = { class: "requisition-details" }, Tn = { class: "detail-label" }, Rn = { class: "detail-value" }, In = {
2327
+ }, Tn = { class: "requisition-list" }, In = { class: "requisition-header" }, Rn = { class: "requisition-id" }, Mn = { class: "requisition-details" }, Vn = { class: "detail-label" }, Fn = { class: "detail-value" }, En = {
2293
2328
  key: 0,
2294
2329
  class: "form-group comments-section"
2295
- }, Mn = ["onClick"], Vn = {
2330
+ }, Nn = ["onClick"], On = {
2296
2331
  key: 3,
2297
2332
  class: "tab-content active"
2298
- }, Fn = {
2333
+ }, Un = {
2299
2334
  class: "requisition-list",
2300
2335
  id: "approvalsQueue"
2301
- }, En = { class: "requisition-header" }, Nn = { class: "requisition-id" }, On = { class: "requisition-details" }, Un = { class: "detail-label" }, Ln = { class: "detail-value" }, jn = { class: "detail-item" }, $n = { class: "detail-value" }, Bn = { class: "detail-item" }, Hn = { class: "item-list" }, Qn = ["onClick"], Jn = ["onClick"], Wn = ["onClick"], Gn = {
2336
+ }, Ln = { class: "requisition-header" }, $n = { class: "requisition-id" }, jn = { class: "requisition-details" }, Bn = { class: "detail-label" }, Hn = { class: "detail-value" }, Qn = { class: "detail-item" }, Jn = { class: "detail-value" }, Wn = { class: "detail-item" }, Gn = { class: "item-list" }, zn = ["onClick"], Yn = ["onClick"], Kn = ["onClick"], Xn = {
2302
2337
  key: 4,
2303
2338
  class: "tab-content active"
2304
- }, zn = {
2339
+ }, Zn = {
2305
2340
  class: "requisition-list",
2306
2341
  id: "purchasingQueue"
2307
- }, Yn = { class: "requisition-header" }, Kn = { class: "requisition-id" }, Xn = { class: "requisition-details" }, Zn = { class: "detail-label" }, eo = { class: "detail-value" }, to = { class: "detail-item" }, so = { class: "detail-value" }, io = { class: "detail-item" }, no = { class: "item-list" }, oo = ["onClick"], lo = {
2342
+ }, eo = { class: "requisition-header" }, to = { class: "requisition-id" }, so = { class: "requisition-details" }, io = { class: "detail-label" }, no = { class: "detail-value" }, oo = { class: "detail-item" }, lo = { class: "detail-value" }, ro = { class: "detail-item" }, ao = { class: "item-list" }, uo = ["onClick"], co = {
2308
2343
  key: 5,
2309
2344
  class: "tab-content active"
2310
- }, ro = {
2345
+ }, mo = {
2311
2346
  class: "requisition-list",
2312
2347
  id: "receivingQueue"
2313
- }, ao = { class: "requisition-header" }, uo = { class: "requisition-id" }, co = { class: "requisition-details" }, mo = { class: "detail-label" }, vo = { class: "detail-value" }, po = { class: "detail-item" }, fo = { class: "detail-value" }, ho = { class: "detail-item" }, go = { class: "item-list" }, bo = ["onClick"], yo = {
2348
+ }, vo = { class: "requisition-header" }, po = { class: "requisition-id" }, fo = { class: "requisition-details" }, ho = { class: "detail-label" }, go = { class: "detail-value" }, bo = { class: "detail-item" }, yo = { class: "detail-value" }, wo = { class: "detail-item" }, ko = { class: "item-list" }, _o = ["onClick"], Co = {
2314
2349
  key: 6,
2315
2350
  class: "tab-content active"
2316
- }, wo = {
2351
+ }, Do = {
2317
2352
  class: "po-content",
2318
2353
  id: "po-content"
2319
- }, ko = { class: "po-header" }, _o = { class: "company-info" }, Co = { class: "info-row" }, Do = { class: "info-value" }, xo = { class: "info-row" }, So = { class: "info-value" }, Po = { class: "info-row" }, Ao = { class: "info-value" }, qo = { class: "info-row" }, To = { class: "info-value" }, Ro = { class: "info-row" }, Io = { class: "info-value" }, Mo = { class: "company-info" }, Vo = { class: "info-row" }, Fo = { class: "info-value" }, Eo = { class: "info-row" }, No = { class: "info-value" }, Oo = { class: "info-row" }, Uo = { class: "info-value" }, Lo = { class: "info-row" }, jo = { class: "info-value" }, $o = { class: "info-row" }, Bo = { class: "info-value" }, Ho = { class: "items-section" }, Qo = { class: "items-table" }, Jo = { key: 0 }, Wo = { key: 0 }, Go = {
2354
+ }, xo = { class: "po-header" }, So = { class: "company-info" }, Po = { class: "info-row" }, Ao = { class: "info-value" }, qo = { class: "info-row" }, To = { class: "info-value" }, Io = { class: "info-row" }, Ro = { class: "info-value" }, Mo = { class: "info-row" }, Vo = { class: "info-value" }, Fo = { class: "info-row" }, Eo = { class: "info-value" }, No = { class: "company-info" }, Oo = { class: "info-row" }, Uo = { class: "info-value" }, Lo = { class: "info-row" }, $o = { class: "info-value" }, jo = { class: "info-row" }, Bo = { class: "info-value" }, Ho = { class: "info-row" }, Qo = { class: "info-value" }, Jo = { class: "info-row" }, Wo = { class: "info-value" }, Go = { class: "items-section" }, zo = { class: "items-table" }, Yo = { key: 0 }, Ko = { key: 0 }, Xo = {
2320
2355
  key: 0,
2321
2356
  class: "price-change-indicator"
2322
- }, zo = ["onUpdate:modelValue"], Yo = { key: 0 }, Ko = ["onClick"], Xo = { key: 1 }, Zo = ["onClick"], el = ["onClick"], tl = {
2357
+ }, Zo = ["onUpdate:modelValue"], el = { key: 0 }, tl = ["onClick"], sl = { key: 1 }, il = ["onClick"], nl = ["onClick"], ol = {
2323
2358
  key: 0,
2324
2359
  class: "justification-note"
2325
- }, sl = { class: "totals" }, il = { class: "total-row" }, nl = { class: "total-row" }, ol = { class: "total-row" }, ll = { class: "total-row grand-total" }, rl = { class: "modal-content" }, al = { style: { "margin-bottom": "15px", color: "#666" } }, dl = { class: "modal-buttons" }, ul = ["disabled"], cl = {
2360
+ }, ll = { class: "totals" }, rl = { class: "total-row" }, al = { class: "total-row" }, dl = { class: "total-row" }, ul = { class: "total-row grand-total" }, cl = { class: "modal-content" }, ml = { style: { "margin-bottom": "15px", color: "#666" } }, vl = { class: "modal-buttons" }, pl = ["disabled"], fl = {
2326
2361
  key: 7,
2327
2362
  class: "tab-content active"
2328
2363
  };
2329
- function ml(s, t, u, b, n, a) {
2330
- var i, h, k, A, q, T, R, I, M, V, F;
2331
- return o(), l("div", $i, [
2364
+ function hl(s, t, u, b, n, a) {
2365
+ var i, f, y, A, q, T, I, R, M, V, F;
2366
+ return o(), l("div", Ji, [
2332
2367
  t[62] || (t[62] = e("div", { class: "header" }, [
2333
2368
  e("h1", null, "OceanHelm Requisition System"),
2334
2369
  e("p", null, "Streamlined Material Request & Ordering Process")
2335
2370
  ], -1)),
2336
- e("div", Bi, [
2337
- (o(!0), l(p, null, f(a.visibleTabs, (d) => (o(), l("button", {
2371
+ e("div", Wi, [
2372
+ (o(!0), l(p, null, h(a.visibleTabs, (d) => (o(), l("button", {
2338
2373
  key: d.name,
2339
2374
  class: g(["nav-tab", { active: n.activeTab === d.name }]),
2340
2375
  onClick: (c) => a.setActiveTab(d.name)
2341
- }, r(d.label), 11, Hi))), 128))
2376
+ }, r(d.label), 11, Gi))), 128))
2342
2377
  ]),
2343
- n.activeTab === "new-requisition" ? (o(), l("div", Qi, [
2378
+ n.activeTab === "new-requisition" ? (o(), l("div", zi, [
2344
2379
  e("form", {
2345
2380
  onSubmit: t[5] || (t[5] = D((...d) => a.handleSubmitRequisition && a.handleSubmitRequisition(...d), ["prevent"]))
2346
2381
  }, [
2347
- e("div", Ji, [
2348
- e("div", Wi, [
2382
+ e("div", Yi, [
2383
+ e("div", Ki, [
2349
2384
  t[12] || (t[12] = e("label", null, "Requestor Name *", -1)),
2350
2385
  e("input", {
2351
2386
  type: "text",
@@ -2353,24 +2388,24 @@ function ml(s, t, u, b, n, a) {
2353
2388
  readonly: "",
2354
2389
  required: "",
2355
2390
  class: "form-control"
2356
- }, null, 8, Gi)
2391
+ }, null, 8, Xi)
2357
2392
  ]),
2358
- e("div", zi, [
2393
+ e("div", Zi, [
2359
2394
  t[14] || (t[14] = e("label", null, "Department *", -1)),
2360
2395
  v(e("select", {
2361
2396
  "onUpdate:modelValue": t[0] || (t[0] = (d) => n.form.department = d),
2362
2397
  required: ""
2363
2398
  }, [
2364
2399
  t[13] || (t[13] = e("option", { value: "" }, "Select Department", -1)),
2365
- (o(!0), l(p, null, f(n.departments, (d) => (o(), l("option", {
2400
+ (o(!0), l(p, null, h(n.departments, (d) => (o(), l("option", {
2366
2401
  key: d,
2367
2402
  value: d
2368
- }, r(d), 9, Yi))), 128))
2403
+ }, r(d), 9, en))), 128))
2369
2404
  ], 512), [
2370
2405
  [C, n.form.department]
2371
2406
  ])
2372
2407
  ]),
2373
- e("div", Ki, [
2408
+ e("div", tn, [
2374
2409
  t[16] || (t[16] = e("label", null, "Vessel *", -1)),
2375
2410
  v(e("select", {
2376
2411
  "onUpdate:modelValue": t[1] || (t[1] = (d) => n.form.project = d),
@@ -2381,37 +2416,37 @@ function ml(s, t, u, b, n, a) {
2381
2416
  disabled: "",
2382
2417
  value: ""
2383
2418
  }, "Select a vessel", -1)),
2384
- (o(!0), l(p, null, f(u.vessels, (d) => (o(), l("option", {
2419
+ (o(!0), l(p, null, h(u.vessels, (d) => (o(), l("option", {
2385
2420
  key: d.id,
2386
2421
  value: d.name
2387
- }, r(d.name), 9, Xi))), 128))
2422
+ }, r(d.name), 9, sn))), 128))
2388
2423
  ], 512), [
2389
2424
  [C, n.form.project]
2390
2425
  ])
2391
2426
  ]),
2392
- e("div", Zi, [
2427
+ e("div", nn, [
2393
2428
  t[17] || (t[17] = e("label", null, "Date Needed *", -1)),
2394
2429
  v(e("input", {
2395
2430
  type: "date",
2396
2431
  "onUpdate:modelValue": t[2] || (t[2] = (d) => n.form.neededDate = d),
2397
2432
  required: ""
2398
2433
  }, null, 512), [
2399
- [w, n.form.neededDate]
2434
+ [k, n.form.neededDate]
2400
2435
  ])
2401
2436
  ])
2402
2437
  ]),
2403
- e("div", en, [
2438
+ e("div", on, [
2404
2439
  t[18] || (t[18] = e("label", null, "Business Justification *", -1)),
2405
2440
  v(e("textarea", {
2406
2441
  "onUpdate:modelValue": t[3] || (t[3] = (d) => n.form.justification = d),
2407
2442
  placeholder: "Explain why these materials are needed...",
2408
2443
  required: ""
2409
2444
  }, null, 512), [
2410
- [w, n.form.justification]
2445
+ [k, n.form.justification]
2411
2446
  ])
2412
2447
  ]),
2413
- e("div", tn, [
2414
- e("div", sn, [
2448
+ e("div", ln, [
2449
+ e("div", rn, [
2415
2450
  t[19] || (t[19] = e("h3", null, "Requested Items", -1)),
2416
2451
  e("button", {
2417
2452
  type: "button",
@@ -2420,71 +2455,71 @@ function ml(s, t, u, b, n, a) {
2420
2455
  }, "+ Add Item")
2421
2456
  ]),
2422
2457
  e("div", null, [
2423
- (o(!0), l(p, null, f(n.form.items, (d, c) => (o(), l("div", {
2458
+ (o(!0), l(p, null, h(n.form.items, (d, c) => (o(), l("div", {
2424
2459
  key: c,
2425
2460
  class: "item-row"
2426
2461
  }, [
2427
- e("div", nn, [
2462
+ e("div", an, [
2428
2463
  t[20] || (t[20] = e("label", null, "Item Code *", -1)),
2429
2464
  v(e("input", {
2430
2465
  type: "text",
2431
- "onUpdate:modelValue": (y) => d.id = y,
2466
+ "onUpdate:modelValue": (w) => d.id = w,
2432
2467
  required: ""
2433
- }, null, 8, on), [
2434
- [w, d.id]
2468
+ }, null, 8, dn), [
2469
+ [k, d.id]
2435
2470
  ])
2436
2471
  ]),
2437
- e("div", ln, [
2472
+ e("div", un, [
2438
2473
  t[21] || (t[21] = e("label", null, "Item Description *", -1)),
2439
2474
  v(e("input", {
2440
2475
  type: "text",
2441
- "onUpdate:modelValue": (y) => d.desc = y,
2476
+ "onUpdate:modelValue": (w) => d.desc = w,
2442
2477
  required: ""
2443
- }, null, 8, rn), [
2444
- [w, d.desc]
2478
+ }, null, 8, cn), [
2479
+ [k, d.desc]
2445
2480
  ])
2446
2481
  ]),
2447
- e("div", an, [
2482
+ e("div", mn, [
2448
2483
  t[22] || (t[22] = e("label", null, "Quantity *", -1)),
2449
2484
  v(e("input", {
2450
2485
  type: "number",
2451
- "onUpdate:modelValue": (y) => d.qty = y,
2486
+ "onUpdate:modelValue": (w) => d.qty = w,
2452
2487
  min: "1",
2453
2488
  required: ""
2454
- }, null, 8, dn), [
2489
+ }, null, 8, vn), [
2455
2490
  [
2456
- w,
2491
+ k,
2457
2492
  d.qty,
2458
2493
  void 0,
2459
2494
  { number: !0 }
2460
2495
  ]
2461
2496
  ])
2462
2497
  ]),
2463
- e("div", un, [
2498
+ e("div", pn, [
2464
2499
  t[23] || (t[23] = e("label", null, "Unit *", -1)),
2465
2500
  v(e("select", {
2466
- "onUpdate:modelValue": (y) => d.unit = y,
2501
+ "onUpdate:modelValue": (w) => d.unit = w,
2467
2502
  required: ""
2468
2503
  }, [
2469
- (o(!0), l(p, null, f(n.units, (y) => (o(), l("option", {
2470
- key: y,
2471
- value: y
2472
- }, r(y), 9, mn))), 128))
2473
- ], 8, cn), [
2504
+ (o(!0), l(p, null, h(n.units, (w) => (o(), l("option", {
2505
+ key: w,
2506
+ value: w
2507
+ }, r(w), 9, hn))), 128))
2508
+ ], 8, fn), [
2474
2509
  [C, d.unit]
2475
2510
  ])
2476
2511
  ]),
2477
- e("div", vn, [
2512
+ e("div", gn, [
2478
2513
  t[24] || (t[24] = e("label", null, "Est. Unit Cost *", -1)),
2479
2514
  v(e("input", {
2480
2515
  type: "number",
2481
- "onUpdate:modelValue": (y) => d.cost = y,
2516
+ "onUpdate:modelValue": (w) => d.cost = w,
2482
2517
  step: "0.01",
2483
2518
  placeholder: "0.00",
2484
2519
  required: ""
2485
- }, null, 8, pn), [
2520
+ }, null, 8, bn), [
2486
2521
  [
2487
- w,
2522
+ k,
2488
2523
  d.cost,
2489
2524
  void 0,
2490
2525
  { number: !0 }
@@ -2494,8 +2529,8 @@ function ml(s, t, u, b, n, a) {
2494
2529
  e("button", {
2495
2530
  type: "button",
2496
2531
  class: "remove-item-btn",
2497
- onClick: (y) => a.removeItem(c)
2498
- }, "Remove", 8, fn)
2532
+ onClick: (w) => a.removeItem(c)
2533
+ }, "Remove", 8, yn)
2499
2534
  ]))), 128))
2500
2535
  ])
2501
2536
  ]),
@@ -2507,75 +2542,75 @@ function ml(s, t, u, b, n, a) {
2507
2542
  ], -1))
2508
2543
  ], 32)
2509
2544
  ])) : m("", !0),
2510
- n.activeTab === "all-requisitions" ? (o(), l("div", hn, [
2511
- e("div", gn, [
2512
- (o(!0), l(p, null, f(u.requisitions, (d) => (o(), l("div", {
2545
+ n.activeTab === "all-requisitions" ? (o(), l("div", wn, [
2546
+ e("div", kn, [
2547
+ (o(!0), l(p, null, h(u.requisitions, (d) => (o(), l("div", {
2513
2548
  key: d.id,
2514
2549
  class: "requisition-card"
2515
2550
  }, [
2516
- e("div", bn, [
2517
- e("div", yn, r(d.id), 1),
2551
+ e("div", _n, [
2552
+ e("div", Cn, r(d.id), 1),
2518
2553
  e("div", {
2519
2554
  class: g(["status-badge", `status-${d.status}`])
2520
2555
  }, r(d.status), 3)
2521
2556
  ]),
2522
- e("div", wn, [
2523
- (o(!0), l(p, null, f(a.getRequisitionFields(d), (c) => (o(), l("div", {
2557
+ e("div", Dn, [
2558
+ (o(!0), l(p, null, h(a.getRequisitionFields(d), (c) => (o(), l("div", {
2524
2559
  class: "detail-item",
2525
2560
  key: c.label
2526
2561
  }, [
2527
- e("div", kn, r(c.label), 1),
2528
- e("div", _n, r(c.value(d)), 1)
2562
+ e("div", xn, r(c.label), 1),
2563
+ e("div", Sn, r(c.value(d)), 1)
2529
2564
  ]))), 128))
2530
2565
  ]),
2531
- d.status === "po-created" || d.status === "delivered" ? (o(), l("div", Cn, [
2566
+ d.status === "po-created" || d.status === "delivered" ? (o(), l("div", Pn, [
2532
2567
  e("button", {
2533
2568
  onClick: (c) => a.handleOpenPO(d.id),
2534
2569
  class: "add-item-btn comments-section"
2535
- }, " Print PO ", 8, Dn)
2570
+ }, " Print PO ", 8, An)
2536
2571
  ])) : m("", !0)
2537
2572
  ]))), 128))
2538
2573
  ])
2539
2574
  ])) : m("", !0),
2540
- n.activeTab === "my-requisitions" ? (o(), l("div", xn, [
2541
- e("div", Sn, [
2542
- (o(!0), l(p, null, f(a.myRequisitions, (d) => (o(), l("div", {
2575
+ n.activeTab === "my-requisitions" ? (o(), l("div", qn, [
2576
+ e("div", Tn, [
2577
+ (o(!0), l(p, null, h(a.myRequisitions, (d) => (o(), l("div", {
2543
2578
  key: d.id,
2544
2579
  class: "requisition-card"
2545
2580
  }, [
2546
- e("div", Pn, [
2547
- e("div", An, r(d.id), 1),
2581
+ e("div", In, [
2582
+ e("div", Rn, r(d.id), 1),
2548
2583
  e("div", {
2549
2584
  class: g(["status-badge", `status-${d.status}`])
2550
2585
  }, r(d.status), 3)
2551
2586
  ]),
2552
- e("div", qn, [
2553
- (o(!0), l(p, null, f(a.getRequisitionFields(d), (c) => (o(), l("div", {
2587
+ e("div", Mn, [
2588
+ (o(!0), l(p, null, h(a.getRequisitionFields(d), (c) => (o(), l("div", {
2554
2589
  class: "detail-item",
2555
2590
  key: c.label
2556
2591
  }, [
2557
- e("div", Tn, r(c.label), 1),
2558
- e("div", Rn, r(c.value(d)), 1)
2592
+ e("div", Vn, r(c.label), 1),
2593
+ e("div", Fn, r(c.value(d)), 1)
2559
2594
  ]))), 128))
2560
2595
  ]),
2561
- d.status === "info-requested" ? (o(), l("div", In, [
2596
+ d.status === "info-requested" ? (o(), l("div", En, [
2562
2597
  t[26] || (t[26] = e("label", { class: "detail-label" }, "Your Response", -1)),
2563
2598
  v(e("textarea", {
2564
2599
  "onUpdate:modelValue": t[6] || (t[6] = (c) => n.infoResponse = c),
2565
2600
  class: "response-textarea",
2566
2601
  placeholder: "Submit more info..."
2567
2602
  }, null, 512), [
2568
- [w, n.infoResponse]
2603
+ [k, n.infoResponse]
2569
2604
  ]),
2570
2605
  e("button", {
2571
2606
  onClick: (c) => a.handleSubmitInfoResponse(d),
2572
2607
  class: "add-item-btn comments-section"
2573
- }, " Submit Info ", 8, Mn)
2608
+ }, " Submit Info ", 8, Nn)
2574
2609
  ])) : m("", !0)
2575
2610
  ]))), 128))
2576
2611
  ])
2577
2612
  ])) : m("", !0),
2578
- n.activeTab === "approvals" ? (o(), l("div", Vn, [
2613
+ n.activeTab === "approvals" ? (o(), l("div", On, [
2579
2614
  t[29] || (t[29] = e("div", { style: { "margin-bottom": "20px" } }, [
2580
2615
  e("h3", { style: { color: "#1e40af", "margin-bottom": "15px" } }, "Department Supervisor Dashboard"),
2581
2616
  e("div", { style: { background: "#fef3c7", padding: "15px", "border-radius": "10px", "border-left": "4px solid #f59e0b" } }, [
@@ -2583,52 +2618,52 @@ function ml(s, t, u, b, n, a) {
2583
2618
  _(" Department Supervisor - Review requests for accuracy, necessity, and budget compliance ")
2584
2619
  ])
2585
2620
  ], -1)),
2586
- e("div", Fn, [
2587
- (o(!0), l(p, null, f(a.reviewRequisitions, (d) => (o(), l("div", {
2621
+ e("div", Un, [
2622
+ (o(!0), l(p, null, h(a.reviewRequisitions, (d) => (o(), l("div", {
2588
2623
  key: d.id,
2589
2624
  class: "requisition-card"
2590
2625
  }, [
2591
- e("div", En, [
2592
- e("div", Nn, r(d.id), 1)
2626
+ e("div", Ln, [
2627
+ e("div", $n, r(d.id), 1)
2593
2628
  ]),
2594
- e("div", On, [
2595
- (o(!0), l(p, null, f(n.requisitionFields, (c) => (o(), l("div", {
2629
+ e("div", jn, [
2630
+ (o(!0), l(p, null, h(n.requisitionFields, (c) => (o(), l("div", {
2596
2631
  class: "detail-item",
2597
2632
  key: c.label
2598
2633
  }, [
2599
- e("div", Un, r(c.label), 1),
2600
- e("div", Ln, r(c.value(d)), 1)
2634
+ e("div", Bn, r(c.label), 1),
2635
+ e("div", Hn, r(c.value(d)), 1)
2601
2636
  ]))), 128))
2602
2637
  ]),
2603
- e("div", jn, [
2638
+ e("div", Qn, [
2604
2639
  t[27] || (t[27] = e("div", { class: "detail-label" }, "Justification", -1)),
2605
- e("div", $n, r(d.justification || "N/A"), 1)
2640
+ e("div", Jn, r(d.justification || "N/A"), 1)
2606
2641
  ]),
2607
- e("div", Bn, [
2642
+ e("div", Wn, [
2608
2643
  t[28] || (t[28] = e("div", { class: "detail-label" }, "Items", -1)),
2609
- e("ul", Hn, [
2610
- (o(!0), l(p, null, f(d.items, (c, y) => (o(), l("li", { key: y }, r(c.desc) + " - " + r(c.qty) + " " + r(c.unit) + " @ ₦" + r(c.cost.toFixed(2)) + " each ", 1))), 128))
2644
+ e("ul", Gn, [
2645
+ (o(!0), l(p, null, h(d.items, (c, w) => (o(), l("li", { key: w }, r(c.desc) + " - " + r(c.qty) + " " + r(c.unit) + " @ ₦" + r(c.cost.toFixed(2)) + " each ", 1))), 128))
2611
2646
  ])
2612
2647
  ]),
2613
2648
  e("button", {
2614
2649
  type: "button",
2615
2650
  class: "add-item-btn",
2616
2651
  onClick: (c) => a.handleApproveRequisition(d.id)
2617
- }, "Approve", 8, Qn),
2652
+ }, "Approve", 8, zn),
2618
2653
  e("button", {
2619
2654
  type: "button",
2620
2655
  class: "marginbox btn-reject",
2621
2656
  onClick: (c) => a.handleDeclineRequisition(d.id)
2622
- }, "Decline", 8, Jn),
2657
+ }, "Decline", 8, Yn),
2623
2658
  e("button", {
2624
2659
  type: "button",
2625
2660
  class: "marginbox btn-request",
2626
2661
  onClick: (c) => a.handleInfoRequisition(d.id)
2627
- }, "Request Info", 8, Wn)
2662
+ }, "Request Info", 8, Kn)
2628
2663
  ]))), 128))
2629
2664
  ])
2630
2665
  ])) : m("", !0),
2631
- n.activeTab === "purchasing" ? (o(), l("div", Gn, [
2666
+ n.activeTab === "purchasing" ? (o(), l("div", Xn, [
2632
2667
  t[32] || (t[32] = e("div", { style: { "margin-bottom": "20px" } }, [
2633
2668
  e("h3", { style: { color: "#1e40af", "margin-bottom": "15px" } }, "Purchasing Department Dashboard"),
2634
2669
  e("div", { style: { background: "#dbeafe", padding: "15px", "border-radius": "10px", "border-left": "4px solid #3b82f6" } }, [
@@ -2636,42 +2671,42 @@ function ml(s, t, u, b, n, a) {
2636
2671
  _(" Purchasing Team - Convert approved requisitions to Purchase Orders ")
2637
2672
  ])
2638
2673
  ], -1)),
2639
- e("div", zn, [
2640
- (o(!0), l(p, null, f(a.poRequisitions, (d) => (o(), l("div", {
2674
+ e("div", Zn, [
2675
+ (o(!0), l(p, null, h(a.poRequisitions, (d) => (o(), l("div", {
2641
2676
  key: d.id,
2642
2677
  class: "requisition-card"
2643
2678
  }, [
2644
- e("div", Yn, [
2645
- e("div", Kn, r(d.id), 1)
2679
+ e("div", eo, [
2680
+ e("div", to, r(d.id), 1)
2646
2681
  ]),
2647
- e("div", Xn, [
2648
- (o(!0), l(p, null, f(n.requisitionFields, (c) => (o(), l("div", {
2682
+ e("div", so, [
2683
+ (o(!0), l(p, null, h(n.requisitionFields, (c) => (o(), l("div", {
2649
2684
  class: "detail-item",
2650
2685
  key: c.label
2651
2686
  }, [
2652
- e("div", Zn, r(c.label), 1),
2653
- e("div", eo, r(c.value(d)), 1)
2687
+ e("div", io, r(c.label), 1),
2688
+ e("div", no, r(c.value(d)), 1)
2654
2689
  ]))), 128))
2655
2690
  ]),
2656
- e("div", to, [
2691
+ e("div", oo, [
2657
2692
  t[30] || (t[30] = e("div", { class: "detail-label" }, "Justification", -1)),
2658
- e("div", so, r(d.justification || "N/A"), 1)
2693
+ e("div", lo, r(d.justification || "N/A"), 1)
2659
2694
  ]),
2660
- e("div", io, [
2695
+ e("div", ro, [
2661
2696
  t[31] || (t[31] = e("div", { class: "detail-label" }, "Items", -1)),
2662
- e("ul", no, [
2663
- (o(!0), l(p, null, f(d.items, (c, y) => (o(), l("li", { key: y }, r(c.desc) + " - " + r(c.qty) + " " + r(c.unit) + " @ ₦" + r(c.cost.toFixed(2)) + " each ", 1))), 128))
2697
+ e("ul", ao, [
2698
+ (o(!0), l(p, null, h(d.items, (c, w) => (o(), l("li", { key: w }, r(c.desc) + " - " + r(c.qty) + " " + r(c.unit) + " @ ₦" + r(c.cost.toFixed(2)) + " each ", 1))), 128))
2664
2699
  ])
2665
2700
  ]),
2666
2701
  e("button", {
2667
2702
  type: "button",
2668
2703
  class: "add-item-btn",
2669
2704
  onClick: (c) => a.handleCreatePO(d.id)
2670
- }, "Create PO", 8, oo)
2705
+ }, "Create PO", 8, uo)
2671
2706
  ]))), 128))
2672
2707
  ])
2673
2708
  ])) : m("", !0),
2674
- n.activeTab === "receiving" ? (o(), l("div", lo, [
2709
+ n.activeTab === "receiving" ? (o(), l("div", co, [
2675
2710
  t[35] || (t[35] = e("div", { style: { "margin-bottom": "20px" } }, [
2676
2711
  e("h3", { style: { color: "#1e40af", "margin-bottom": "15px" } }, "Receiving & Inventory Dashboard"),
2677
2712
  e("div", { style: { background: "#dcfce7", padding: "15px", "border-radius": "10px", "border-left": "4px solid #10b981" } }, [
@@ -2679,94 +2714,94 @@ function ml(s, t, u, b, n, a) {
2679
2714
  _(" Warehouse Team - Process incoming deliveries and update inventory ")
2680
2715
  ])
2681
2716
  ], -1)),
2682
- e("div", ro, [
2683
- (o(!0), l(p, null, f(a.awaitingDelivery, (d) => (o(), l("div", {
2717
+ e("div", mo, [
2718
+ (o(!0), l(p, null, h(a.awaitingDelivery, (d) => (o(), l("div", {
2684
2719
  key: d.id,
2685
2720
  class: "requisition-card"
2686
2721
  }, [
2687
- e("div", ao, [
2688
- e("div", uo, r(d.id), 1)
2722
+ e("div", vo, [
2723
+ e("div", po, r(d.id), 1)
2689
2724
  ]),
2690
- e("div", co, [
2691
- (o(!0), l(p, null, f(n.requisitionFields, (c) => (o(), l("div", {
2725
+ e("div", fo, [
2726
+ (o(!0), l(p, null, h(n.requisitionFields, (c) => (o(), l("div", {
2692
2727
  class: "detail-item",
2693
2728
  key: c.label
2694
2729
  }, [
2695
- e("div", mo, r(c.label), 1),
2696
- e("div", vo, r(c.value(d)), 1)
2730
+ e("div", ho, r(c.label), 1),
2731
+ e("div", go, r(c.value(d)), 1)
2697
2732
  ]))), 128))
2698
2733
  ]),
2699
- e("div", po, [
2734
+ e("div", bo, [
2700
2735
  t[33] || (t[33] = e("div", { class: "detail-label" }, "Justification", -1)),
2701
- e("div", fo, r(d.justification || "N/A"), 1)
2736
+ e("div", yo, r(d.justification || "N/A"), 1)
2702
2737
  ]),
2703
- e("div", ho, [
2738
+ e("div", wo, [
2704
2739
  t[34] || (t[34] = e("div", { class: "detail-label" }, "Items", -1)),
2705
- e("ul", go, [
2706
- (o(!0), l(p, null, f(d.items, (c, y) => (o(), l("li", { key: y }, r(c.desc) + " - " + r(c.qty) + " " + r(c.unit) + " @ ₦" + r(c.cost.toFixed(2)) + " each ", 1))), 128))
2740
+ e("ul", ko, [
2741
+ (o(!0), l(p, null, h(d.items, (c, w) => (o(), l("li", { key: w }, r(c.desc) + " - " + r(c.qty) + " " + r(c.unit) + " @ ₦" + r(c.cost.toFixed(2)) + " each ", 1))), 128))
2707
2742
  ])
2708
2743
  ]),
2709
2744
  e("button", {
2710
2745
  type: "button",
2711
2746
  class: "add-item-btn",
2712
2747
  onClick: (c) => a.handleAcceptDelivery(d.id)
2713
- }, "Accept Delivery", 8, bo)
2748
+ }, "Accept Delivery", 8, _o)
2714
2749
  ]))), 128))
2715
2750
  ])
2716
2751
  ])) : m("", !0),
2717
- n.activeTab === "po" ? (o(), l("div", yo, [
2718
- e("div", wo, [
2719
- e("div", ko, [
2720
- e("div", _o, [
2752
+ n.activeTab === "po" ? (o(), l("div", Co, [
2753
+ e("div", Do, [
2754
+ e("div", xo, [
2755
+ e("div", So, [
2721
2756
  t[41] || (t[41] = e("h3", null, "Vendor Information", -1)),
2722
- e("div", Co, [
2757
+ e("div", Po, [
2723
2758
  t[36] || (t[36] = e("span", { class: "info-label" }, "Company:", -1)),
2724
- e("span", Do, r(n.vendorInfo.company || ((i = n.poDetails.vendorInfo) == null ? void 0 : i.company)), 1)
2759
+ e("span", Ao, r(n.vendorInfo.company || ((i = n.poDetails.vendorInfo) == null ? void 0 : i.company)), 1)
2725
2760
  ]),
2726
- e("div", xo, [
2761
+ e("div", qo, [
2727
2762
  t[37] || (t[37] = e("span", { class: "info-label" }, "Contact:", -1)),
2728
- e("span", So, r(n.vendorInfo.contact || ((h = n.poDetails.vendorInfo) == null ? void 0 : h.contact)), 1)
2763
+ e("span", To, r(n.vendorInfo.contact || ((f = n.poDetails.vendorInfo) == null ? void 0 : f.contact)), 1)
2729
2764
  ]),
2730
- e("div", Po, [
2765
+ e("div", Io, [
2731
2766
  t[38] || (t[38] = e("span", { class: "info-label" }, "Email:", -1)),
2732
- e("span", Ao, r(n.vendorInfo.email || ((k = n.poDetails.vendorInfo) == null ? void 0 : k.email)), 1)
2767
+ e("span", Ro, r(n.vendorInfo.email || ((y = n.poDetails.vendorInfo) == null ? void 0 : y.email)), 1)
2733
2768
  ]),
2734
- e("div", qo, [
2769
+ e("div", Mo, [
2735
2770
  t[39] || (t[39] = e("span", { class: "info-label" }, "Phone:", -1)),
2736
- e("span", To, r(n.vendorInfo.phone || ((A = n.poDetails.vendorInfo) == null ? void 0 : A.phone)), 1)
2771
+ e("span", Vo, r(n.vendorInfo.phone || ((A = n.poDetails.vendorInfo) == null ? void 0 : A.phone)), 1)
2737
2772
  ]),
2738
- e("div", Ro, [
2773
+ e("div", Fo, [
2739
2774
  t[40] || (t[40] = e("span", { class: "info-label" }, "Address:", -1)),
2740
- e("span", Io, r(n.vendorInfo.address || ((q = n.poDetails.vendorInfo) == null ? void 0 : q.address)), 1)
2775
+ e("span", Eo, r(n.vendorInfo.address || ((q = n.poDetails.vendorInfo) == null ? void 0 : q.address)), 1)
2741
2776
  ])
2742
2777
  ]),
2743
- e("div", Mo, [
2778
+ e("div", No, [
2744
2779
  t[47] || (t[47] = e("h3", null, "Purchase Order Details", -1)),
2745
- e("div", Vo, [
2780
+ e("div", Oo, [
2746
2781
  t[42] || (t[42] = e("span", { class: "info-label" }, "PO Number:", -1)),
2747
- e("span", Fo, r(n.poDetails.id), 1)
2782
+ e("span", Uo, r(n.poDetails.id), 1)
2748
2783
  ]),
2749
- e("div", Eo, [
2784
+ e("div", Lo, [
2750
2785
  t[43] || (t[43] = e("span", { class: "info-label" }, "Date:", -1)),
2751
- e("span", No, r(n.vendorInfo.poDate || ((T = n.poDetails.vendorInfo) == null ? void 0 : T.poDate)), 1)
2786
+ e("span", $o, r(n.vendorInfo.poDate || ((T = n.poDetails.vendorInfo) == null ? void 0 : T.poDate)), 1)
2752
2787
  ]),
2753
- e("div", Oo, [
2788
+ e("div", jo, [
2754
2789
  t[44] || (t[44] = e("span", { class: "info-label" }, "Requested By:", -1)),
2755
- e("span", Uo, r(n.vendorInfo.poApproved || ((R = n.poDetails.vendorInfo) == null ? void 0 : R.poApproved)), 1)
2790
+ e("span", Bo, r(n.vendorInfo.poApproved || ((I = n.poDetails.vendorInfo) == null ? void 0 : I.poApproved)), 1)
2756
2791
  ]),
2757
- e("div", Lo, [
2792
+ e("div", Ho, [
2758
2793
  t[45] || (t[45] = e("span", { class: "info-label" }, "Department:", -1)),
2759
- e("span", jo, "PO-" + r(n.poDetails.department), 1)
2794
+ e("span", Qo, "PO-" + r(n.poDetails.department), 1)
2760
2795
  ]),
2761
- e("div", $o, [
2796
+ e("div", Jo, [
2762
2797
  t[46] || (t[46] = e("span", { class: "info-label" }, "Delivery Date:", -1)),
2763
- e("span", Bo, r(n.poDetails.neededDate), 1)
2798
+ e("span", Wo, r(n.poDetails.neededDate), 1)
2764
2799
  ])
2765
2800
  ])
2766
2801
  ]),
2767
- e("div", Ho, [
2802
+ e("div", Go, [
2768
2803
  t[57] || (t[57] = e("h2", { class: "section-title" }, "Order Items", -1)),
2769
- e("table", Qo, [
2804
+ e("table", zo, [
2770
2805
  e("thead", null, [
2771
2806
  e("tr", null, [
2772
2807
  t[48] || (t[48] = e("th", null, "Item #", -1)),
@@ -2774,75 +2809,75 @@ function ml(s, t, u, b, n, a) {
2774
2809
  t[50] || (t[50] = e("th", null, "Quantity", -1)),
2775
2810
  t[51] || (t[51] = e("th", null, "Unit Price", -1)),
2776
2811
  t[52] || (t[52] = e("th", null, "Total", -1)),
2777
- n.isPrinting ? m("", !0) : (o(), l("th", Jo, "Actions"))
2812
+ n.isPrinting ? m("", !0) : (o(), l("th", Yo, "Actions"))
2778
2813
  ])
2779
2814
  ]),
2780
2815
  e("tbody", null, [
2781
- (o(!0), l(p, null, f(n.poDetails.items || [], (d, c) => (o(), l("tr", { key: c }, [
2816
+ (o(!0), l(p, null, h(n.poDetails.items || [], (d, c) => (o(), l("tr", { key: c }, [
2782
2817
  e("td", null, r(d.itemNumber), 1),
2783
2818
  e("td", null, r(d.desc), 1),
2784
2819
  e("td", null, r(d.qty), 1),
2785
2820
  e("td", null, [
2786
2821
  d.editing ? v((o(), l("input", {
2787
2822
  key: 1,
2788
- "onUpdate:modelValue": (y) => d.tempPrice = y,
2823
+ "onUpdate:modelValue": (w) => d.tempPrice = w,
2789
2824
  type: "number",
2790
2825
  step: "0.01",
2791
2826
  class: g(["price-input", { "price-changed": d.cost !== d.tempPrice }])
2792
- }, null, 10, zo)), [
2827
+ }, null, 10, Zo)), [
2793
2828
  [
2794
- w,
2829
+ k,
2795
2830
  d.tempPrice,
2796
2831
  void 0,
2797
2832
  { number: !0 }
2798
2833
  ]
2799
- ]) : (o(), l("span", Wo, [
2834
+ ]) : (o(), l("span", Ko, [
2800
2835
  _(" $" + r(d.cost.toFixed(2)) + " ", 1),
2801
- d.cost !== d.unitPrice ? (o(), l("span", Go, "!")) : m("", !0)
2836
+ d.cost !== d.unitPrice ? (o(), l("span", Xo, "!")) : m("", !0)
2802
2837
  ]))
2803
2838
  ]),
2804
2839
  e("td", null, "$" + r((d.unitPrice * d.qty).toFixed(2)), 1),
2805
- n.isPrinting ? m("", !0) : (o(), l("td", Yo, [
2806
- d.editing ? (o(), l("div", Xo, [
2840
+ n.isPrinting ? m("", !0) : (o(), l("td", el, [
2841
+ d.editing ? (o(), l("div", sl, [
2807
2842
  e("button", {
2808
- onClick: (y) => a.savePrice(c),
2843
+ onClick: (w) => a.savePrice(c),
2809
2844
  class: "save-btn"
2810
- }, "Save", 8, Zo),
2845
+ }, "Save", 8, il),
2811
2846
  e("button", {
2812
- onClick: (y) => a.cancelEdit(c),
2847
+ onClick: (w) => a.cancelEdit(c),
2813
2848
  class: "cancel-btn"
2814
- }, "Cancel", 8, el)
2849
+ }, "Cancel", 8, nl)
2815
2850
  ])) : (o(), l("button", {
2816
2851
  key: 0,
2817
- onClick: (y) => a.startEdit(c),
2852
+ onClick: (w) => a.startEdit(c),
2818
2853
  class: "edit-btn"
2819
- }, " Edit Price ", 8, Ko))
2854
+ }, " Edit Price ", 8, tl))
2820
2855
  ]))
2821
2856
  ]))), 128))
2822
2857
  ])
2823
2858
  ]),
2824
- (o(!0), l(p, null, f(n.poDetails.items || [], (d, c) => (o(), l("div", {
2859
+ (o(!0), l(p, null, h(n.poDetails.items || [], (d, c) => (o(), l("div", {
2825
2860
  key: "note-" + c
2826
2861
  }, [
2827
- d.justification ? (o(), l("div", tl, [
2862
+ d.justification ? (o(), l("div", ol, [
2828
2863
  e("strong", null, "Price Change Justification (Item " + r(d.itemNumber) + "):", 1),
2829
2864
  _(" " + r(d.justification), 1)
2830
2865
  ])) : m("", !0)
2831
2866
  ]))), 128)),
2832
- e("div", sl, [
2833
- e("div", il, [
2867
+ e("div", ll, [
2868
+ e("div", rl, [
2834
2869
  t[53] || (t[53] = e("span", null, "Subtotal:", -1)),
2835
2870
  e("span", null, "$" + r(a.subTotal.toFixed(2)), 1)
2836
2871
  ]),
2837
- e("div", nl, [
2872
+ e("div", al, [
2838
2873
  t[54] || (t[54] = e("span", null, "Tax (%):", -1)),
2839
2874
  e("span", null, "$" + r(a.getOptional(n.vendorInfo.tax)), 1)
2840
2875
  ]),
2841
- e("div", ol, [
2876
+ e("div", dl, [
2842
2877
  t[55] || (t[55] = e("span", null, "Shipping:", -1)),
2843
2878
  e("span", null, "$" + r(a.getOptional(n.vendorInfo.shipping)), 1)
2844
2879
  ]),
2845
- e("div", ll, [
2880
+ e("div", ul, [
2846
2881
  t[56] || (t[56] = e("span", null, "Grand Total:", -1)),
2847
2882
  e("span", null, "$" + r((a.subTotal + a.getOptional(n.vendorInfo.tax) + a.getOptional(n.vendorInfo.shipping)).toFixed(2)), 1)
2848
2883
  ])
@@ -2854,11 +2889,11 @@ function ml(s, t, u, b, n, a) {
2854
2889
  class: "justification-modal",
2855
2890
  onClick: t[10] || (t[10] = D((...d) => a.closeJustificationModal && a.closeJustificationModal(...d), ["self"]))
2856
2891
  }, [
2857
- e("div", rl, [
2892
+ e("div", cl, [
2858
2893
  t[60] || (t[60] = e("h3", null, "Price Change Justification Required", -1)),
2859
- e("p", al, [
2894
+ e("p", ml, [
2860
2895
  t[58] || (t[58] = _(" Please provide a justification for changing the price from ", -1)),
2861
- e("strong", null, "$" + r((M = (I = a.currentItem) == null ? void 0 : I.cost) == null ? void 0 : M.toFixed(2)), 1),
2896
+ e("strong", null, "$" + r((M = (R = a.currentItem) == null ? void 0 : R.cost) == null ? void 0 : M.toFixed(2)), 1),
2862
2897
  t[59] || (t[59] = _(" to ", -1)),
2863
2898
  e("strong", null, "$" + r((F = (V = a.currentItem) == null ? void 0 : V.tempPrice) == null ? void 0 : F.toFixed(2)), 1)
2864
2899
  ]),
@@ -2868,9 +2903,9 @@ function ml(s, t, u, b, n, a) {
2868
2903
  placeholder: "Enter justification for price change...",
2869
2904
  required: ""
2870
2905
  }, null, 512), [
2871
- [w, n.justificationText]
2906
+ [k, n.justificationText]
2872
2907
  ]),
2873
- e("div", dl, [
2908
+ e("div", vl, [
2874
2909
  e("button", {
2875
2910
  onClick: t[8] || (t[8] = (...d) => a.closeJustificationModal && a.closeJustificationModal(...d)),
2876
2911
  class: "cancel-btn"
@@ -2879,7 +2914,7 @@ function ml(s, t, u, b, n, a) {
2879
2914
  onClick: t[9] || (t[9] = (...d) => a.confirmPriceChange && a.confirmPriceChange(...d)),
2880
2915
  class: "save-btn",
2881
2916
  disabled: !n.justificationText.trim()
2882
- }, " Confirm Change ", 8, ul)
2917
+ }, " Confirm Change ", 8, pl)
2883
2918
  ])
2884
2919
  ])
2885
2920
  ])) : m("", !0),
@@ -2890,18 +2925,18 @@ function ml(s, t, u, b, n, a) {
2890
2925
  onClick: t[11] || (t[11] = (d) => a.handleFinishPO(n.poDetails.id))
2891
2926
  }, "Approve PO"))
2892
2927
  ])) : m("", !0),
2893
- n.activeTab === "workflow" ? (o(), l("div", cl, t[61] || (t[61] = [
2928
+ n.activeTab === "workflow" ? (o(), l("div", fl, t[61] || (t[61] = [
2894
2929
  x('<div class="workflow-steps"><div class="workflow-step"><div class="step-icon completed">1</div><div class="step-title">Request Submitted</div></div><div class="workflow-step"><div class="step-icon active">2</div><div class="step-title">Department Review</div></div><div class="workflow-step"><div class="step-icon">3</div><div class="step-title">Management Approval</div></div><div class="workflow-step"><div class="step-icon">4</div><div class="step-title">Purchase Order Created</div></div><div class="workflow-step"><div class="step-icon">5</div><div class="step-title">Order Fulfilled</div></div></div><div style="background:white;padding:30px;border-radius:15px;margin-top:20px;"><h3 style="color:#1e40af;margin-bottom:20px;">Requisition Workflow Process</h3><div style="line-height:1.8;color:#374151;"><p><strong>Step 1: Request Identification</strong><br> Department or individual identifies need for materials, equipment, or services.</p><p><strong>Step 2: Requisition Creation</strong><br> Complete requisition form with detailed specifications, quantities, and business justification.</p><p><strong>Step 3: Department Review</strong><br> Department supervisor reviews request for accuracy, necessity, and budget compliance.</p><p><strong>Step 4: Management Approval</strong><br> Based on cost thresholds, appropriate management level provides approval.</p><p><strong>Step 5: Purchase Order Generation</strong><br> Purchasing team converts approved requisition into formal Purchase Order (PO).</p><p><strong>Step 6: Vendor Processing</strong><br> PO sent to vendor, order processed, and delivery scheduled.</p><p><strong>Step 7: Receipt &amp; Inventory</strong><br> Goods received, inspected, and entered into inventory system.</p></div></div>', 2)
2895
2930
  ]))) : m("", !0)
2896
2931
  ]);
2897
2932
  }
2898
- const vl = /* @__PURE__ */ S(ji, [["render", ml]]), fl = (s = {}) => ({
2933
+ const gl = /* @__PURE__ */ S(Qi, [["render", hl]]), yl = (s = {}) => ({
2899
2934
  brandName: s.brandName || "OceanHelm",
2900
2935
  logoIcon: s.logoIcon || "bi bi-water",
2901
2936
  showLogo: s.showLogo !== !1,
2902
2937
  responsive: s.responsive !== !1,
2903
2938
  ...s
2904
- }), hl = [
2939
+ }), wl = [
2905
2940
  {
2906
2941
  type: "link",
2907
2942
  label: "Dashboard",
@@ -2964,6 +2999,12 @@ const vl = /* @__PURE__ */ S(ji, [["render", ml]]), fl = (s = {}) => ({
2964
2999
  icon: "fas fa-ship",
2965
3000
  action: "coming-soon"
2966
3001
  },
3002
+ {
3003
+ type: "button",
3004
+ label: "Vessel Log",
3005
+ icon: "bi bi-file-ruled",
3006
+ action: "vessel-log"
3007
+ },
2967
3008
  {
2968
3009
  type: "button",
2969
3010
  label: "Settings",
@@ -2977,22 +3018,22 @@ const vl = /* @__PURE__ */ S(ji, [["render", ml]]), fl = (s = {}) => ({
2977
3018
  icon: "bi bi-question-circle",
2978
3019
  action: "help"
2979
3020
  }
2980
- ], gl = (s, t) => !s.roles || s.roles.length === 0 ? !0 : s.roles.includes(t == null ? void 0 : t.role), bl = {
3021
+ ], kl = (s, t) => !s.roles || s.roles.length === 0 ? !0 : s.roles.includes(t == null ? void 0 : t.role), _l = {
2981
3022
  install(s, t = {}) {
2982
- s.component("ConfigurableSidebar", K), s.component("VesselLists", Se), s.component("DashHead", Ie), s.component("ActivityLogs", Ys), s.component("CrewManagement", Li), s.component("RequisitionSystem", vl), s.component("OceanHelmMaintenance", Ds), s.provide("sidebarConfig", t);
3023
+ s.component("ConfigurableSidebar", K), s.component("VesselLists", Te), s.component("DashHead", Ee), s.component("ActivityLogs", ei), s.component("CrewManagement", Hi), s.component("RequisitionSystem", gl), s.component("OceanHelmMaintenance", As), s.provide("sidebarConfig", t);
2983
3024
  }
2984
3025
  };
2985
3026
  export {
2986
- Ys as ActivityLogs,
3027
+ ei as ActivityLogs,
2987
3028
  K as ConfigurableSidebar,
2988
- Li as CrewManagement,
2989
- Ie as DashHead,
2990
- Ds as OceanHelmMaintenance,
2991
- vl as RequisitionSystem,
2992
- Se as VesselList,
2993
- fl as createSidebarConfig,
2994
- bl as default,
2995
- hl as defaultMenuItems,
2996
- gl as defaultPermissionChecker
3029
+ Hi as CrewManagement,
3030
+ Ee as DashHead,
3031
+ As as OceanHelmMaintenance,
3032
+ gl as RequisitionSystem,
3033
+ Te as VesselList,
3034
+ yl as createSidebarConfig,
3035
+ _l as default,
3036
+ wl as defaultMenuItems,
3037
+ kl as defaultPermissionChecker
2997
3038
  };
2998
3039
  //# sourceMappingURL=oceanhelm.es.js.map